summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-12-23 12:57:46 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2017-12-23 12:57:46 -0500
commitfdd7e7cb848747a1e0ace8a63d29aaa22dfd1140 (patch)
tree6ddaed4de52bfcc517d573a8f30c5bd0a1650782
parentbb8f652504f886af296ffcaac57bf76cdc893c97 (diff)
parent1c1ce902515ccb3ccecde29611711c9b1a3ce955 (diff)
Merge branch 'master' into cable_car
-rw-r--r--.gitattributes17
-rw-r--r--Makefile10
-rw-r--r--asm-de/contest_link_80C2020.s245
-rw-r--r--asm-de/contest_link_80C857C.s41
-rw-r--r--asm-de/easy_chat.s275
-rw-r--r--asm/battle_1.s18
-rw-r--r--asm/battle_2.s185
-rw-r--r--asm/battle_9.s71
-rw-r--r--asm/battle_anim_80CA710.s55077
-rw-r--r--asm/battle_anim_81258BC.s13
-rw-r--r--asm/battle_anim_812C144.s95
-rw-r--r--asm/battle_anim_813F0F4.s79
-rwxr-xr-xasm/battle_intro.s1667
-rw-r--r--asm/battle_tower.s3663
-rwxr-xr-xasm/bug.s825
-rw-r--r--asm/cable_car.s1
-rw-r--r--asm/cable_car_util.s1
-rw-r--r--asm/contest.s731
-rw-r--r--asm/contest_ai.s587
-rw-r--r--asm/contest_effect.s271
-rw-r--r--asm/contest_link_80C2020.s245
-rw-r--r--asm/contest_link_80C857C.s37
-rwxr-xr-xasm/current.s2389
-rw-r--r--asm/cute_sketch.s1
-rwxr-xr-xasm/dark.s2013
-rwxr-xr-xasm/dragon.s1214
-rw-r--r--asm/easy_chat.s275
-rw-r--r--asm/field_weather.s7579
-rwxr-xr-xasm/fight.s1749
-rwxr-xr-xasm/fire.s360
-rwxr-xr-xasm/fire_2.s955
-rw-r--r--asm/fldeff_80C5CD4.s2766
-rwxr-xr-xasm/flying.s3057
-rwxr-xr-xasm/ghost.s3383
-rwxr-xr-xasm/ground.s1789
-rwxr-xr-xasm/heated_rock.s10
-rwxr-xr-xasm/ice.s3221
-rw-r--r--asm/libagbsyscall.s3
-rw-r--r--asm/macros/ec.inc19
-rw-r--r--asm/macros/event.inc708
-rw-r--r--asm/macros/map.inc41
-rwxr-xr-xasm/normal.s5030
-rwxr-xr-xasm/pc_screen_effect.s546
-rwxr-xr-xasm/poison.s364
-rw-r--r--asm/pokedex_area_screen.s125
-rw-r--r--asm/pokedex_cry_screen.s79
-rw-r--r--asm/pokemon_item_effect.s5
-rw-r--r--asm/pokemon_storage_system.s633
-rw-r--r--asm/pokemon_summary_screen.s8776
-rw-r--r--asm/pokenav.s9264
-rwxr-xr-xasm/psychic.s2183
-rwxr-xr-xasm/rock.s1643
-rw-r--r--asm/roulette.s525
-rw-r--r--asm/roulette_util.s1
-rw-r--r--asm/secret_base.s2528
-rw-r--r--asm/slot_machine.s661
-rwxr-xr-xasm/unk_text_8095904.s256
-rwxr-xr-xasm/water.s2541
-rwxr-xr-xasm/wisp_fire.s678
-rw-r--r--common_syms/engine/random.txt (renamed from common_syms/engine/rng.txt)0
-rw-r--r--constants/ability_constants.inc78
-rw-r--r--constants/battle.inc46
-rw-r--r--constants/battle_move_effects.inc215
-rw-r--r--constants/battle_tower_constants.inc70
-rw-r--r--constants/constants.inc16
-rw-r--r--constants/decorations.inc121
-rw-r--r--constants/easy_chat_constants.inc1051
-rw-r--r--constants/game_stat.inc50
-rw-r--r--constants/hold_effects.inc67
-rw-r--r--constants/item_constants.inc385
-rw-r--r--constants/map_constants.inc464
-rw-r--r--constants/map_object_constants.inc230
-rw-r--r--constants/move_constants.inc355
-rw-r--r--constants/opponent_constants.inc694
-rw-r--r--constants/region_map_sections.inc52
-rw-r--r--constants/songs.inc369
-rw-r--r--constants/species_constants.inc448
-rw-r--r--data-de/battle_tower/trainers.inc1301
-rw-r--r--data-de/event_scripts.s946
-rw-r--r--data-de/field_move_scripts.inc52
-rw-r--r--data-de/text/battle_strings.inc2315
-rw-r--r--data-de/text/contest_strings.inc2
-rw-r--r--data-de/text/credits.inc975
-rw-r--r--data-de/text/easy_chat/words_by_letter.inc3728
-rw-r--r--data-de/text/move_descriptions.inc1771
-rw-r--r--data-de/text/nature_names.inc102
-rw-r--r--data/battle_ai_scripts.s5
-rw-r--r--data/battle_anim_80CA710.s4
-rw-r--r--data/battle_anim_scripts.s168
-rw-r--r--data/battle_message.s131
-rw-r--r--data/battle_moves.s1
-rw-r--r--data/battle_scripts_1.s877
-rw-r--r--data/battle_scripts_2.s18
-rw-r--r--data/battle_tower.s159
-rw-r--r--data/battle_tower/held_items.inc65
-rw-r--r--data/battle_tower/level_100_mons.inc2701
-rw-r--r--data/battle_tower/level_50_mons.inc2701
-rw-r--r--data/battle_tower/trainers.inc1301
-rw-r--r--data/cable_club.s32
-rw-r--r--data/contest.s10
-rw-r--r--data/credits.s159
-rw-r--r--data/data2a.s35
-rw-r--r--data/data2b.s8
-rw-r--r--data/easy_chat.s97
-rw-r--r--data/event_scripts.s946
-rw-r--r--data/field_door.s416
-rw-r--r--data/field_effect_scripts.s6
-rw-r--r--data/field_move_scripts.inc52
-rw-r--r--data/field_special_scene.s41
-rw-r--r--data/field_weather.s490
-rw-r--r--data/fldeff_80C5CD4.s320
-rw-r--r--data/fldeff_cut.s31
-rw-r--r--data/fldeff_flash.s71
-rw-r--r--data/graphics.s7
-rw-r--r--data/item_ball_scripts.inc270
-rw-r--r--data/landmark.s561
-rw-r--r--data/mail.s178
-rw-r--r--data/main_menu.s59
-rw-r--r--data/map_events.s17
-rw-r--r--data/maps.s2
-rw-r--r--data/maps/DewfordTown/connections.inc4
-rw-r--r--data/maps/EverGrandeCity/connections.inc2
-rw-r--r--data/maps/FallarborTown/connections.inc4
-rw-r--r--data/maps/FortreeCity/connections.inc4
-rw-r--r--data/maps/LavaridgeTown/connections.inc2
-rw-r--r--data/maps/LilycoveCity/connections.inc4
-rw-r--r--data/maps/LittlerootTown/connections.inc2
-rw-r--r--data/maps/MauvilleCity/connections.inc8
-rw-r--r--data/maps/MossdeepCity/connections.inc6
-rw-r--r--data/maps/OldaleTown/connections.inc6
-rw-r--r--data/maps/PacifidlogTown/connections.inc4
-rw-r--r--data/maps/PetalburgCity/connections.inc4
-rw-r--r--data/maps/Route101/connections.inc4
-rw-r--r--data/maps/Route102/connections.inc4
-rw-r--r--data/maps/Route103/connections.inc4
-rw-r--r--data/maps/Route104/connections.inc6
-rw-r--r--data/maps/Route105/connections.inc4
-rw-r--r--data/maps/Route106/connections.inc4
-rw-r--r--data/maps/Route107/connections.inc4
-rw-r--r--data/maps/Route108/connections.inc4
-rw-r--r--data/maps/Route109/connections.inc4
-rw-r--r--data/maps/Route110/connections.inc6
-rw-r--r--data/maps/Route111/connections.inc6
-rw-r--r--data/maps/Route112/connections.inc6
-rw-r--r--data/maps/Route113/connections.inc6
-rw-r--r--data/maps/Route114/connections.inc4
-rw-r--r--data/maps/Route115/connections.inc4
-rw-r--r--data/maps/Route116/connections.inc4
-rw-r--r--data/maps/Route117/connections.inc4
-rw-r--r--data/maps/Route118/connections.inc6
-rw-r--r--data/maps/Route119/connections.inc4
-rw-r--r--data/maps/Route120/connections.inc4
-rw-r--r--data/maps/Route121/connections.inc6
-rw-r--r--data/maps/Route122/connections.inc4
-rw-r--r--data/maps/Route123/connections.inc4
-rw-r--r--data/maps/Route124/connections.inc10
-rw-r--r--data/maps/Route125/connections.inc4
-rw-r--r--data/maps/Route126/connections.inc6
-rw-r--r--data/maps/Route127/connections.inc8
-rw-r--r--data/maps/Route128/connections.inc8
-rw-r--r--data/maps/Route129/connections.inc4
-rw-r--r--data/maps/Route130/connections.inc4
-rw-r--r--data/maps/Route131/connections.inc4
-rw-r--r--data/maps/Route132/connections.inc4
-rw-r--r--data/maps/Route133/connections.inc4
-rw-r--r--data/maps/Route134/connections.inc4
-rw-r--r--data/maps/RustboroCity/connections.inc6
-rw-r--r--data/maps/SafariZone_Northeast/connections.inc4
-rw-r--r--data/maps/SafariZone_Northwest/connections.inc4
-rw-r--r--data/maps/SafariZone_Southeast/connections.inc4
-rw-r--r--data/maps/SafariZone_Southwest/connections.inc4
-rw-r--r--data/maps/SlateportCity/connections.inc6
-rw-r--r--data/maps/Underwater1/connections.inc4
-rw-r--r--data/maps/Underwater2/connections.inc6
-rw-r--r--data/maps/Underwater3/connections.inc6
-rw-r--r--data/maps/Underwater4/connections.inc4
-rw-r--r--data/maps/VerdanturfTown/connections.inc4
-rw-r--r--data/maps/events/AbandonedShip_CaptainsOffice.inc6
-rw-r--r--data/maps/events/AbandonedShip_Corridors_1F.inc24
-rw-r--r--data/maps/events/AbandonedShip_Corridors_B1F.inc16
-rw-r--r--data/maps/events/AbandonedShip_Deck.inc10
-rw-r--r--data/maps/events/AbandonedShip_HiddenFloorCorridors.inc12
-rw-r--r--data/maps/events/AbandonedShip_HiddenFloorRooms.inc26
-rw-r--r--data/maps/events/AbandonedShip_Room_B1F.inc6
-rw-r--r--data/maps/events/AbandonedShip_Rooms2_1F.inc8
-rw-r--r--data/maps/events/AbandonedShip_Rooms2_B1F.inc10
-rw-r--r--data/maps/events/AbandonedShip_Rooms_1F.inc14
-rw-r--r--data/maps/events/AbandonedShip_Rooms_B1F.inc8
-rw-r--r--data/maps/events/AbandonedShip_Underwater1.inc4
-rw-r--r--data/maps/events/AbandonedShip_Underwater2.inc2
-rw-r--r--data/maps/events/AncientTomb.inc8
-rw-r--r--data/maps/events/AquaHideout_1F.inc12
-rw-r--r--data/maps/events/AquaHideout_B1F.inc66
-rw-r--r--data/maps/events/AquaHideout_B2F.inc30
-rw-r--r--data/maps/events/BattleTower_BattleRoom.inc6
-rw-r--r--data/maps/events/BattleTower_Lobby.inc10
-rw-r--r--data/maps/events/BattleTower_Outside.inc2
-rw-r--r--data/maps/events/CaveOfOrigin_1F.inc4
-rw-r--r--data/maps/events/CaveOfOrigin_B1F.inc4
-rw-r--r--data/maps/events/CaveOfOrigin_B2F.inc4
-rw-r--r--data/maps/events/CaveOfOrigin_B3F.inc6
-rw-r--r--data/maps/events/CaveOfOrigin_B4F.inc4
-rw-r--r--data/maps/events/CaveOfOrigin_Entrance.inc4
-rw-r--r--data/maps/events/DesertRuins.inc8
-rw-r--r--data/maps/events/DewfordTown.inc14
-rw-r--r--data/maps/events/DewfordTown_Gym.inc4
-rw-r--r--data/maps/events/DewfordTown_Hall.inc6
-rw-r--r--data/maps/events/DewfordTown_House1.inc4
-rw-r--r--data/maps/events/DewfordTown_House2.inc4
-rw-r--r--data/maps/events/DewfordTown_PokemonCenter_1F.inc6
-rw-r--r--data/maps/events/DewfordTown_PokemonCenter_2F.inc10
-rw-r--r--data/maps/events/DoubleBattleColosseum.inc8
-rw-r--r--data/maps/events/EverGrandeCity.inc8
-rw-r--r--data/maps/events/EverGrandeCity_ChampionsRoom.inc8
-rw-r--r--data/maps/events/EverGrandeCity_Corridor1.inc8
-rw-r--r--data/maps/events/EverGrandeCity_Corridor2.inc8
-rw-r--r--data/maps/events/EverGrandeCity_Corridor3.inc8
-rw-r--r--data/maps/events/EverGrandeCity_Corridor4.inc4
-rw-r--r--data/maps/events/EverGrandeCity_Corridor5.inc8
-rw-r--r--data/maps/events/EverGrandeCity_DrakesRoom.inc4
-rw-r--r--data/maps/events/EverGrandeCity_GlaciasRoom.inc4
-rw-r--r--data/maps/events/EverGrandeCity_HallOfFame.inc2
-rw-r--r--data/maps/events/EverGrandeCity_PhoebesRoom.inc4
-rw-r--r--data/maps/events/EverGrandeCity_PokemonCenter_1F.inc6
-rw-r--r--data/maps/events/EverGrandeCity_PokemonCenter_2F.inc10
-rw-r--r--data/maps/events/EverGrandeCity_PokemonLeague.inc8
-rw-r--r--data/maps/events/EverGrandeCity_SidneysRoom.inc4
-rw-r--r--data/maps/events/FallarborTown.inc12
-rw-r--r--data/maps/events/FallarborTown_ContestHall.inc4
-rw-r--r--data/maps/events/FallarborTown_ContestLobby.inc8
-rw-r--r--data/maps/events/FallarborTown_House1.inc6
-rw-r--r--data/maps/events/FallarborTown_House2.inc4
-rw-r--r--data/maps/events/FallarborTown_Mart.inc4
-rw-r--r--data/maps/events/FallarborTown_PokemonCenter_1F.inc8
-rw-r--r--data/maps/events/FallarborTown_PokemonCenter_2F.inc10
-rw-r--r--data/maps/events/FieryPath.inc20
-rw-r--r--data/maps/events/FortreeCity.inc20
-rw-r--r--data/maps/events/FortreeCity_DecorationShop.inc4
-rw-r--r--data/maps/events/FortreeCity_Gym.inc4
-rw-r--r--data/maps/events/FortreeCity_House1.inc4
-rw-r--r--data/maps/events/FortreeCity_House2.inc4
-rw-r--r--data/maps/events/FortreeCity_House3.inc4
-rw-r--r--data/maps/events/FortreeCity_House4.inc6
-rw-r--r--data/maps/events/FortreeCity_House5.inc4
-rw-r--r--data/maps/events/FortreeCity_Mart.inc4
-rw-r--r--data/maps/events/FortreeCity_PokemonCenter_1F.inc6
-rw-r--r--data/maps/events/FortreeCity_PokemonCenter_2F.inc10
-rw-r--r--data/maps/events/GraniteCave_1F.inc10
-rw-r--r--data/maps/events/GraniteCave_B1F.inc16
-rw-r--r--data/maps/events/GraniteCave_B2F.inc28
-rw-r--r--data/maps/events/GraniteCave_StevensRoom.inc4
-rw-r--r--data/maps/events/InsideOfTruck.inc6
-rw-r--r--data/maps/events/IslandCave.inc8
-rw-r--r--data/maps/events/JaggedPass.inc10
-rw-r--r--data/maps/events/LavaridgeTown.inc16
-rw-r--r--data/maps/events/LavaridgeTown_Gym_1F.inc44
-rw-r--r--data/maps/events/LavaridgeTown_Gym_B1F.inc40
-rw-r--r--data/maps/events/LavaridgeTown_HerbShop.inc4
-rw-r--r--data/maps/events/LavaridgeTown_House.inc4
-rw-r--r--data/maps/events/LavaridgeTown_Mart.inc4
-rw-r--r--data/maps/events/LavaridgeTown_PokemonCenter_1F.inc8
-rw-r--r--data/maps/events/LavaridgeTown_PokemonCenter_2F.inc10
-rw-r--r--data/maps/events/LilycoveCity.inc44
-rw-r--r--data/maps/events/LilycoveCity_ContestHall.inc8
-rw-r--r--data/maps/events/LilycoveCity_ContestLobby.inc14
-rw-r--r--data/maps/events/LilycoveCity_CoveLilyMotel_1F.inc6
-rw-r--r--data/maps/events/LilycoveCity_CoveLilyMotel_2F.inc14
-rw-r--r--data/maps/events/LilycoveCity_DepartmentStoreElevator.inc4
-rw-r--r--data/maps/events/LilycoveCity_DepartmentStoreRooftop.inc4
-rw-r--r--data/maps/events/LilycoveCity_DepartmentStore_1F.inc8
-rw-r--r--data/maps/events/LilycoveCity_DepartmentStore_2F.inc6
-rw-r--r--data/maps/events/LilycoveCity_DepartmentStore_3F.inc6
-rw-r--r--data/maps/events/LilycoveCity_DepartmentStore_4F.inc6
-rw-r--r--data/maps/events/LilycoveCity_DepartmentStore_5F.inc6
-rw-r--r--data/maps/events/LilycoveCity_EmptyMap.inc2
-rw-r--r--data/maps/events/LilycoveCity_Harbor.inc14
-rw-r--r--data/maps/events/LilycoveCity_House1.inc4
-rw-r--r--data/maps/events/LilycoveCity_House2.inc4
-rw-r--r--data/maps/events/LilycoveCity_House3.inc4
-rw-r--r--data/maps/events/LilycoveCity_House4.inc4
-rw-r--r--data/maps/events/LilycoveCity_LilycoveMuseum_1F.inc16
-rw-r--r--data/maps/events/LilycoveCity_LilycoveMuseum_2F.inc8
-rw-r--r--data/maps/events/LilycoveCity_MoveDeletersHouse.inc4
-rw-r--r--data/maps/events/LilycoveCity_PokemonCenter_1F.inc6
-rw-r--r--data/maps/events/LilycoveCity_PokemonCenter_2F.inc10
-rw-r--r--data/maps/events/LilycoveCity_PokemonTrainerFanClub.inc12
-rw-r--r--data/maps/events/LilycoveCity_UnusedMart.inc4
-rw-r--r--data/maps/events/LinkContestRoom1.inc2
-rw-r--r--data/maps/events/LittlerootTown.inc14
-rw-r--r--data/maps/events/LittlerootTown_BrendansHouse_1F.inc16
-rw-r--r--data/maps/events/LittlerootTown_BrendansHouse_2F.inc30
-rw-r--r--data/maps/events/LittlerootTown_MaysHouse_1F.inc16
-rw-r--r--data/maps/events/LittlerootTown_MaysHouse_2F.inc32
-rw-r--r--data/maps/events/LittlerootTown_ProfessorBirchsLab.inc8
-rw-r--r--data/maps/events/MagmaHideout_1F.inc8
-rw-r--r--data/maps/events/MagmaHideout_B1F.inc68
-rw-r--r--data/maps/events/MagmaHideout_B2F.inc26
-rw-r--r--data/maps/events/MauvilleCity.inc22
-rw-r--r--data/maps/events/MauvilleCity_BikeShop.inc4
-rw-r--r--data/maps/events/MauvilleCity_GameCorner.inc4
-rw-r--r--data/maps/events/MauvilleCity_Gym.inc6
-rw-r--r--data/maps/events/MauvilleCity_House1.inc4
-rw-r--r--data/maps/events/MauvilleCity_House2.inc4
-rw-r--r--data/maps/events/MauvilleCity_Mart.inc4
-rw-r--r--data/maps/events/MauvilleCity_PokemonCenter_1F.inc6
-rw-r--r--data/maps/events/MauvilleCity_PokemonCenter_2F.inc10
-rw-r--r--data/maps/events/MeteorFalls_1F_1R.inc30
-rw-r--r--data/maps/events/MeteorFalls_1F_2R.inc8
-rw-r--r--data/maps/events/MeteorFalls_B1F_1R.inc12
-rw-r--r--data/maps/events/MeteorFalls_B1F_2R.inc4
-rw-r--r--data/maps/events/MossdeepCity.inc22
-rw-r--r--data/maps/events/MossdeepCity_GameCorner_1F.inc6
-rw-r--r--data/maps/events/MossdeepCity_GameCorner_B1F.inc2
-rw-r--r--data/maps/events/MossdeepCity_Gym.inc4
-rw-r--r--data/maps/events/MossdeepCity_House1.inc4
-rw-r--r--data/maps/events/MossdeepCity_House2.inc6
-rw-r--r--data/maps/events/MossdeepCity_House3.inc4
-rw-r--r--data/maps/events/MossdeepCity_House4.inc4
-rw-r--r--data/maps/events/MossdeepCity_Mart.inc4
-rw-r--r--data/maps/events/MossdeepCity_PokemonCenter_1F.inc6
-rw-r--r--data/maps/events/MossdeepCity_PokemonCenter_2F.inc10
-rw-r--r--data/maps/events/MossdeepCity_SpaceCenter_1F.inc6
-rw-r--r--data/maps/events/MossdeepCity_SpaceCenter_2F.inc2
-rw-r--r--data/maps/events/MossdeepCity_StevensHouse.inc12
-rw-r--r--data/maps/events/MtChimney.inc64
-rw-r--r--data/maps/events/MtChimney_CableCarStation.inc4
-rw-r--r--data/maps/events/MtPyre_1F.inc12
-rw-r--r--data/maps/events/MtPyre_2F.inc12
-rw-r--r--data/maps/events/MtPyre_3F.inc14
-rw-r--r--data/maps/events/MtPyre_4F.inc14
-rw-r--r--data/maps/events/MtPyre_5F.inc12
-rw-r--r--data/maps/events/MtPyre_6F.inc6
-rw-r--r--data/maps/events/MtPyre_Exterior.inc10
-rw-r--r--data/maps/events/MtPyre_Summit.inc14
-rw-r--r--data/maps/events/NewMauville_Entrance.inc4
-rw-r--r--data/maps/events/NewMauville_Inside.inc18
-rw-r--r--data/maps/events/OldaleTown.inc10
-rw-r--r--data/maps/events/OldaleTown_House1.inc4
-rw-r--r--data/maps/events/OldaleTown_House2.inc4
-rw-r--r--data/maps/events/OldaleTown_Mart.inc4
-rw-r--r--data/maps/events/OldaleTown_PokemonCenter_1F.inc6
-rw-r--r--data/maps/events/OldaleTown_PokemonCenter_2F.inc10
-rw-r--r--data/maps/events/PacifidlogTown.inc12
-rw-r--r--data/maps/events/PacifidlogTown_House1.inc4
-rw-r--r--data/maps/events/PacifidlogTown_House2.inc4
-rw-r--r--data/maps/events/PacifidlogTown_House3.inc4
-rw-r--r--data/maps/events/PacifidlogTown_House4.inc4
-rw-r--r--data/maps/events/PacifidlogTown_House5.inc4
-rw-r--r--data/maps/events/PacifidlogTown_PokemonCenter_1F.inc6
-rw-r--r--data/maps/events/PacifidlogTown_PokemonCenter_2F.inc10
-rw-r--r--data/maps/events/PetalburgCity.inc24
-rw-r--r--data/maps/events/PetalburgCity_Gym.inc82
-rw-r--r--data/maps/events/PetalburgCity_House1.inc4
-rw-r--r--data/maps/events/PetalburgCity_House2.inc4
-rw-r--r--data/maps/events/PetalburgCity_Mart.inc4
-rw-r--r--data/maps/events/PetalburgCity_PokemonCenter_1F.inc6
-rw-r--r--data/maps/events/PetalburgCity_PokemonCenter_2F.inc10
-rw-r--r--data/maps/events/PetalburgCity_WallysHouse.inc4
-rw-r--r--data/maps/events/PetalburgWoods.inc28
-rw-r--r--data/maps/events/RecordCorner.inc8
-rw-r--r--data/maps/events/Route101.inc10
-rw-r--r--data/maps/events/Route102.inc2
-rw-r--r--data/maps/events/Route103.inc10
-rw-r--r--data/maps/events/Route104.inc32
-rw-r--r--data/maps/events/Route104_MrBrineysHouse.inc8
-rw-r--r--data/maps/events/Route104_PrettyPetalFlowerShop.inc4
-rw-r--r--data/maps/events/Route104_Prototype.inc2
-rw-r--r--data/maps/events/Route104_PrototypePrettyPetalFlowerShop.inc4
-rw-r--r--data/maps/events/Route105.inc4
-rw-r--r--data/maps/events/Route106.inc4
-rw-r--r--data/maps/events/Route108.inc2
-rw-r--r--data/maps/events/Route109.inc8
-rw-r--r--data/maps/events/Route109_SeashoreHouse.inc4
-rw-r--r--data/maps/events/Route110.inc30
-rw-r--r--data/maps/events/Route110_SeasideCyclingRoadNorthEntrance.inc8
-rw-r--r--data/maps/events/Route110_SeasideCyclingRoadSouthEntrance.inc8
-rw-r--r--data/maps/events/Route110_TrickHouseCorridor.inc8
-rw-r--r--data/maps/events/Route110_TrickHouseEnd.inc6
-rw-r--r--data/maps/events/Route110_TrickHouseEntrance.inc8
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle1.inc38
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle2.inc10
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle3.inc22
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle4.inc30
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle5.inc6
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle6.inc8
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle7.inc8
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle8.inc8
-rw-r--r--data/maps/events/Route111.inc44
-rw-r--r--data/maps/events/Route111_OldLadysRestStop.inc4
-rw-r--r--data/maps/events/Route111_WinstrateFamilysHouse.inc4
-rw-r--r--data/maps/events/Route112.inc18
-rw-r--r--data/maps/events/Route112_CableCarStation.inc4
-rw-r--r--data/maps/events/Route113.inc6
-rw-r--r--data/maps/events/Route113_GlassWorkshop.inc4
-rw-r--r--data/maps/events/Route114.inc20
-rw-r--r--data/maps/events/Route114_FossilManiacsHouse.inc6
-rw-r--r--data/maps/events/Route114_FossilManiacsTunnel.inc4
-rw-r--r--data/maps/events/Route114_LanettesHouse.inc6
-rw-r--r--data/maps/events/Route115.inc12
-rw-r--r--data/maps/events/Route116.inc30
-rw-r--r--data/maps/events/Route116_TunnelersRestHouse.inc4
-rw-r--r--data/maps/events/Route117.inc8
-rw-r--r--data/maps/events/Route117_PokemonDayCare.inc4
-rw-r--r--data/maps/events/Route118.inc18
-rw-r--r--data/maps/events/Route119.inc30
-rw-r--r--data/maps/events/Route119_House.inc4
-rw-r--r--data/maps/events/Route119_WeatherInstitute_1F.inc14
-rw-r--r--data/maps/events/Route119_WeatherInstitute_2F.inc12
-rw-r--r--data/maps/events/Route120.inc42
-rw-r--r--data/maps/events/Route121.inc16
-rw-r--r--data/maps/events/Route121_SafariZoneEntrance.inc8
-rw-r--r--data/maps/events/Route122.inc2
-rw-r--r--data/maps/events/Route123.inc16
-rw-r--r--data/maps/events/Route123_BerryMastersHouse.inc4
-rw-r--r--data/maps/events/Route124.inc8
-rwxr-xr-xdata/maps/events/Route124_DivingTreasureHuntersHouse.inc12
-rw-r--r--data/maps/events/Route125.inc2
-rw-r--r--data/maps/events/Route126.inc2
-rw-r--r--data/maps/events/Route127.inc4
-rw-r--r--data/maps/events/Route128.inc6
-rw-r--r--data/maps/events/Route130.inc2
-rw-r--r--data/maps/events/Route131.inc2
-rw-r--r--data/maps/events/Route132.inc2
-rw-r--r--data/maps/events/Route133.inc4
-rw-r--r--data/maps/events/RustboroCity.inc32
-rw-r--r--data/maps/events/RustboroCity_CuttersHouse.inc4
-rw-r--r--data/maps/events/RustboroCity_DevonCorp_1F.inc6
-rw-r--r--data/maps/events/RustboroCity_DevonCorp_2F.inc4
-rw-r--r--data/maps/events/RustboroCity_DevonCorp_3F.inc4
-rw-r--r--data/maps/events/RustboroCity_Flat1_1F.inc6
-rw-r--r--data/maps/events/RustboroCity_Flat1_2F.inc2
-rw-r--r--data/maps/events/RustboroCity_Flat2_1F.inc6
-rw-r--r--data/maps/events/RustboroCity_Flat2_2F.inc4
-rw-r--r--data/maps/events/RustboroCity_Flat2_3F.inc2
-rw-r--r--data/maps/events/RustboroCity_Gym.inc4
-rw-r--r--data/maps/events/RustboroCity_House1.inc4
-rw-r--r--data/maps/events/RustboroCity_House2.inc4
-rw-r--r--data/maps/events/RustboroCity_House3.inc4
-rw-r--r--data/maps/events/RustboroCity_Mart.inc4
-rw-r--r--data/maps/events/RustboroCity_PokemonCenter_1F.inc6
-rw-r--r--data/maps/events/RustboroCity_PokemonCenter_2F.inc10
-rw-r--r--data/maps/events/RustboroCity_PokemonSchool.inc4
-rw-r--r--data/maps/events/RusturfTunnel.inc24
-rw-r--r--data/maps/events/SSTidalCorridor.inc22
-rw-r--r--data/maps/events/SSTidalLowerDeck.inc2
-rw-r--r--data/maps/events/SSTidalRooms.inc26
-rw-r--r--data/maps/events/SafariZone_Northeast.inc14
-rw-r--r--data/maps/events/SafariZone_Northwest.inc2
-rw-r--r--data/maps/events/SafariZone_RestHouse.inc4
-rw-r--r--data/maps/events/SafariZone_Southeast.inc2
-rw-r--r--data/maps/events/SafariZone_Southwest.inc4
-rw-r--r--data/maps/events/ScorchedSlab.inc4
-rw-r--r--data/maps/events/SeafloorCavern_Entrance.inc4
-rw-r--r--data/maps/events/SeafloorCavern_Room1.inc16
-rw-r--r--data/maps/events/SeafloorCavern_Room2.inc26
-rw-r--r--data/maps/events/SeafloorCavern_Room3.inc26
-rw-r--r--data/maps/events/SeafloorCavern_Room4.inc10
-rw-r--r--data/maps/events/SeafloorCavern_Room5.inc18
-rw-r--r--data/maps/events/SeafloorCavern_Room6.inc6
-rw-r--r--data/maps/events/SeafloorCavern_Room7.inc4
-rw-r--r--data/maps/events/SeafloorCavern_Room8.inc28
-rw-r--r--data/maps/events/SeafloorCavern_Room9.inc16
-rw-r--r--data/maps/events/SealedChamber_InnerRoom.inc2
-rw-r--r--data/maps/events/SealedChamber_OuterRoom.inc2
-rw-r--r--data/maps/events/SecretBase_BlueCave1.inc32
-rw-r--r--data/maps/events/SecretBase_BlueCave2.inc32
-rw-r--r--data/maps/events/SecretBase_BlueCave3.inc32
-rw-r--r--data/maps/events/SecretBase_BlueCave4.inc32
-rw-r--r--data/maps/events/SecretBase_BrownCave1.inc32
-rw-r--r--data/maps/events/SecretBase_BrownCave2.inc32
-rw-r--r--data/maps/events/SecretBase_BrownCave3.inc32
-rw-r--r--data/maps/events/SecretBase_BrownCave4.inc32
-rw-r--r--data/maps/events/SecretBase_RedCave1.inc32
-rw-r--r--data/maps/events/SecretBase_RedCave2.inc32
-rw-r--r--data/maps/events/SecretBase_RedCave3.inc32
-rw-r--r--data/maps/events/SecretBase_RedCave4.inc32
-rw-r--r--data/maps/events/SecretBase_Shrub1.inc32
-rw-r--r--data/maps/events/SecretBase_Shrub2.inc32
-rw-r--r--data/maps/events/SecretBase_Shrub3.inc32
-rw-r--r--data/maps/events/SecretBase_Shrub4.inc32
-rw-r--r--data/maps/events/SecretBase_Tree1.inc32
-rw-r--r--data/maps/events/SecretBase_Tree2.inc32
-rw-r--r--data/maps/events/SecretBase_Tree3.inc32
-rw-r--r--data/maps/events/SecretBase_Tree4.inc32
-rw-r--r--data/maps/events/SecretBase_YellowCave1.inc32
-rw-r--r--data/maps/events/SecretBase_YellowCave2.inc32
-rw-r--r--data/maps/events/SecretBase_YellowCave3.inc32
-rw-r--r--data/maps/events/SecretBase_YellowCave4.inc32
-rw-r--r--data/maps/events/ShoalCave_LowTideEntranceRoom.inc10
-rw-r--r--data/maps/events/ShoalCave_LowTideIceRoom.inc6
-rw-r--r--data/maps/events/ShoalCave_LowTideInnerRoom.inc18
-rw-r--r--data/maps/events/ShoalCave_LowTideLowerRoom.inc10
-rw-r--r--data/maps/events/ShoalCave_LowTideStairsRoom.inc6
-rw-r--r--data/maps/events/SingleBattleColosseum.inc4
-rw-r--r--data/maps/events/SkyPillar_1F.inc6
-rw-r--r--data/maps/events/SkyPillar_2F.inc4
-rw-r--r--data/maps/events/SkyPillar_3F.inc6
-rw-r--r--data/maps/events/SkyPillar_4F.inc6
-rw-r--r--data/maps/events/SkyPillar_5F.inc4
-rw-r--r--data/maps/events/SkyPillar_Entrance.inc4
-rw-r--r--data/maps/events/SkyPillar_Outside.inc4
-rw-r--r--data/maps/events/SkyPillar_Top.inc4
-rw-r--r--data/maps/events/SlateportCity.inc46
-rw-r--r--data/maps/events/SlateportCity_ContestHall.inc4
-rw-r--r--data/maps/events/SlateportCity_ContestLobby.inc8
-rw-r--r--data/maps/events/SlateportCity_Harbor.inc24
-rw-r--r--data/maps/events/SlateportCity_House1.inc4
-rw-r--r--data/maps/events/SlateportCity_House2.inc4
-rw-r--r--data/maps/events/SlateportCity_Mart.inc4
-rw-r--r--data/maps/events/SlateportCity_OceanicMuseum_1F.inc30
-rw-r--r--data/maps/events/SlateportCity_OceanicMuseum_2F.inc16
-rw-r--r--data/maps/events/SlateportCity_PokemonCenter_1F.inc6
-rw-r--r--data/maps/events/SlateportCity_PokemonCenter_2F.inc10
-rw-r--r--data/maps/events/SlateportCity_PokemonFanClub.inc4
-rw-r--r--data/maps/events/SlateportCity_SternsShipyard_1F.inc8
-rw-r--r--data/maps/events/SlateportCity_SternsShipyard_2F.inc2
-rw-r--r--data/maps/events/SootopolisCity.inc46
-rw-r--r--data/maps/events/SootopolisCity_Gym_1F.inc8
-rw-r--r--data/maps/events/SootopolisCity_Gym_B1F.inc2
-rw-r--r--data/maps/events/SootopolisCity_House1.inc4
-rw-r--r--data/maps/events/SootopolisCity_House2.inc4
-rw-r--r--data/maps/events/SootopolisCity_House3.inc4
-rw-r--r--data/maps/events/SootopolisCity_House4.inc4
-rw-r--r--data/maps/events/SootopolisCity_House5.inc4
-rw-r--r--data/maps/events/SootopolisCity_House6.inc4
-rw-r--r--data/maps/events/SootopolisCity_House7.inc4
-rw-r--r--data/maps/events/SootopolisCity_House8.inc4
-rw-r--r--data/maps/events/SootopolisCity_Mart.inc4
-rw-r--r--data/maps/events/SootopolisCity_PokemonCenter_1F.inc6
-rw-r--r--data/maps/events/SootopolisCity_PokemonCenter_2F.inc10
-rw-r--r--data/maps/events/SouthernIsland_Exterior.inc4
-rw-r--r--data/maps/events/SouthernIsland_Interior.inc8
-rw-r--r--data/maps/events/TradeCenter.inc4
-rw-r--r--data/maps/events/Underwater2.inc2
-rw-r--r--data/maps/events/Underwater4.inc2
-rw-r--r--data/maps/events/Underwater_Route134.inc2
-rw-r--r--data/maps/events/Underwater_SeafloorCavern.inc10
-rw-r--r--data/maps/events/Underwater_SealedChamber.inc2
-rw-r--r--data/maps/events/Underwater_SootopolisCity.inc4
-rw-r--r--data/maps/events/VerdanturfTown.inc14
-rw-r--r--data/maps/events/VerdanturfTown_ContestHall.inc4
-rw-r--r--data/maps/events/VerdanturfTown_ContestLobby.inc8
-rw-r--r--data/maps/events/VerdanturfTown_FriendshipRatersHouse.inc4
-rw-r--r--data/maps/events/VerdanturfTown_House.inc4
-rw-r--r--data/maps/events/VerdanturfTown_Mart.inc4
-rw-r--r--data/maps/events/VerdanturfTown_PokemonCenter_1F.inc6
-rw-r--r--data/maps/events/VerdanturfTown_PokemonCenter_2F.inc10
-rw-r--r--data/maps/events/VerdanturfTown_WandasHouse.inc12
-rw-r--r--data/maps/events/VictoryRoad_1F.inc18
-rw-r--r--data/maps/events/VictoryRoad_B1F.inc46
-rw-r--r--data/maps/events/VictoryRoad_B2F.inc10
-rw-r--r--data/matsuda_debug_menu.s201
-rw-r--r--data/mon_markings.s207
-rw-r--r--data/money.s31
-rw-r--r--data/mori_debug_menu.s72
-rwxr-xr-xdata/pc_screen_effect.s27
-rw-r--r--data/pokedex_area_screen.s8
-rw-r--r--data/pokedex_cry_screen.s2
-rw-r--r--data/pokemon_storage_system.s6
-rw-r--r--data/pokemon_summary_screen.s393
-rw-r--r--data/pokenav.s2
-rw-r--r--data/reset_rtc_screen.s67
-rw-r--r--data/roulette.s26
-rw-r--r--data/script_cmd_table.inc86
-rw-r--r--data/scripts/berry_tree.inc36
-rw-r--r--data/scripts/cable_club.inc82
-rw-r--r--data/scripts/contest_hall.inc38
-rw-r--r--data/scripts/day_care.inc50
-rw-r--r--data/scripts/gabby_and_ty.inc40
-rw-r--r--data/scripts/magma_chimney.inc16
-rw-r--r--data/scripts/maps/AbandonedShip_CaptainsOffice.inc4
-rw-r--r--data/scripts/maps/AbandonedShip_Corridors_B1F.inc16
-rw-r--r--data/scripts/maps/AbandonedShip_Deck.inc2
-rw-r--r--data/scripts/maps/AbandonedShip_HiddenFloorCorridors.inc58
-rw-r--r--data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc60
-rw-r--r--data/scripts/maps/AbandonedShip_Rooms_B1F.inc2
-rw-r--r--data/scripts/maps/AbandonedShip_Underwater1.inc2
-rw-r--r--data/scripts/maps/AbandonedShip_Underwater2.inc2
-rw-r--r--data/scripts/maps/AncientTomb.inc34
-rw-r--r--data/scripts/maps/AquaHideout_1F.inc4
-rw-r--r--data/scripts/maps/AquaHideout_B1F.inc2
-rw-r--r--data/scripts/maps/AquaHideout_B2F.inc4
-rw-r--r--data/scripts/maps/BattleTower_BattleRoom.inc10
-rw-r--r--data/scripts/maps/BattleTower_Corridor.inc10
-rw-r--r--data/scripts/maps/BattleTower_Elevator.inc2
-rw-r--r--data/scripts/maps/BattleTower_Lobby.inc40
-rw-r--r--data/scripts/maps/BattleTower_Outside.inc10
-rw-r--r--data/scripts/maps/CaveOfOrigin_1F.inc2
-rw-r--r--data/scripts/maps/CaveOfOrigin_B1F.inc2
-rw-r--r--data/scripts/maps/CaveOfOrigin_B2F.inc2
-rw-r--r--data/scripts/maps/CaveOfOrigin_B3F.inc2
-rw-r--r--data/scripts/maps/CaveOfOrigin_B4F.inc34
-rw-r--r--data/scripts/maps/DesertRuins.inc34
-rw-r--r--data/scripts/maps/DewfordTown.inc60
-rw-r--r--data/scripts/maps/DewfordTown_Gym.inc34
-rw-r--r--data/scripts/maps/DewfordTown_Hall.inc6
-rw-r--r--data/scripts/maps/DewfordTown_House1.inc4
-rw-r--r--data/scripts/maps/DewfordTown_House2.inc6
-rw-r--r--data/scripts/maps/DewfordTown_PokemonCenter_1F.inc4
-rw-r--r--data/scripts/maps/EverGrandeCity.inc4
-rw-r--r--data/scripts/maps/EverGrandeCity_ChampionsRoom.inc8
-rw-r--r--data/scripts/maps/EverGrandeCity_DrakesRoom.inc6
-rw-r--r--data/scripts/maps/EverGrandeCity_GlaciasRoom.inc6
-rw-r--r--data/scripts/maps/EverGrandeCity_HallOfFame.inc8
-rw-r--r--data/scripts/maps/EverGrandeCity_PhoebesRoom.inc6
-rw-r--r--data/scripts/maps/EverGrandeCity_PokemonCenter_1F.inc4
-rw-r--r--data/scripts/maps/EverGrandeCity_PokemonLeague.inc14
-rw-r--r--data/scripts/maps/EverGrandeCity_SidneysRoom.inc6
-rw-r--r--data/scripts/maps/FallarborTown.inc12
-rw-r--r--data/scripts/maps/FallarborTown_ContestLobby.inc14
-rw-r--r--data/scripts/maps/FallarborTown_House1.inc16
-rw-r--r--data/scripts/maps/FallarborTown_House2.inc6
-rw-r--r--data/scripts/maps/FallarborTown_Mart.inc4
-rw-r--r--data/scripts/maps/FallarborTown_PokemonCenter_1F.inc6
-rw-r--r--data/scripts/maps/FieryPath.inc2
-rw-r--r--data/scripts/maps/FortreeCity.inc12
-rw-r--r--data/scripts/maps/FortreeCity_DecorationShop.inc4
-rw-r--r--data/scripts/maps/FortreeCity_Gym.inc16
-rw-r--r--data/scripts/maps/FortreeCity_House1.inc12
-rw-r--r--data/scripts/maps/FortreeCity_House2.inc10
-rw-r--r--data/scripts/maps/FortreeCity_House4.inc18
-rw-r--r--data/scripts/maps/FortreeCity_House5.inc4
-rw-r--r--data/scripts/maps/FortreeCity_PokemonCenter_1F.inc4
-rw-r--r--data/scripts/maps/GraniteCave_1F.inc6
-rw-r--r--data/scripts/maps/GraniteCave_B1F.inc4
-rw-r--r--data/scripts/maps/GraniteCave_StevensRoom.inc6
-rw-r--r--data/scripts/maps/InsideOfTruck.inc32
-rw-r--r--data/scripts/maps/IslandCave.inc48
-rw-r--r--data/scripts/maps/JaggedPass.inc2
-rw-r--r--data/scripts/maps/LavaridgeTown.inc20
-rw-r--r--data/scripts/maps/LavaridgeTown_Gym_1F.inc18
-rw-r--r--data/scripts/maps/LavaridgeTown_HerbShop.inc6
-rw-r--r--data/scripts/maps/LavaridgeTown_House.inc4
-rw-r--r--data/scripts/maps/LavaridgeTown_PokemonCenter_1F.inc4
-rw-r--r--data/scripts/maps/LilycoveCity.inc128
-rw-r--r--data/scripts/maps/LilycoveCity_ContestLobby.inc80
-rw-r--r--data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.inc4
-rw-r--r--data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.inc6
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStoreElevator.inc14
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc26
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStore_1F.inc14
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStore_5F.inc8
-rw-r--r--data/scripts/maps/LilycoveCity_Harbor.inc26
-rw-r--r--data/scripts/maps/LilycoveCity_House1.inc4
-rw-r--r--data/scripts/maps/LilycoveCity_House2.inc6
-rw-r--r--data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.inc6
-rw-r--r--data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.inc46
-rw-r--r--data/scripts/maps/LilycoveCity_PokemonCenter_1F.inc6
-rw-r--r--data/scripts/maps/LittlerootTown.inc50
-rw-r--r--data/scripts/maps/LittlerootTown_BrendansHouse_1F.inc12
-rw-r--r--data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc2
-rw-r--r--data/scripts/maps/LittlerootTown_MaysHouse_1F.inc16
-rw-r--r--data/scripts/maps/LittlerootTown_MaysHouse_2F.inc10
-rw-r--r--data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc18
-rw-r--r--data/scripts/maps/MagmaHideout_B1F.inc2
-rw-r--r--data/scripts/maps/MauvilleCity.inc42
-rw-r--r--data/scripts/maps/MauvilleCity_BikeShop.inc20
-rw-r--r--data/scripts/maps/MauvilleCity_GameCorner.inc74
-rw-r--r--data/scripts/maps/MauvilleCity_Gym.inc84
-rw-r--r--data/scripts/maps/MauvilleCity_House1.inc6
-rw-r--r--data/scripts/maps/MauvilleCity_House2.inc8
-rw-r--r--data/scripts/maps/MauvilleCity_PokemonCenter_1F.inc4
-rw-r--r--data/scripts/maps/MeteorFalls_1F_1R.inc6
-rw-r--r--data/scripts/maps/MossdeepCity.inc18
-rw-r--r--data/scripts/maps/MossdeepCity_GameCorner_1F.inc10
-rw-r--r--data/scripts/maps/MossdeepCity_GameCorner_B1F.inc12
-rw-r--r--data/scripts/maps/MossdeepCity_Gym.inc104
-rw-r--r--data/scripts/maps/MossdeepCity_House1.inc2
-rw-r--r--data/scripts/maps/MossdeepCity_House2.inc8
-rw-r--r--data/scripts/maps/MossdeepCity_House3.inc6
-rw-r--r--data/scripts/maps/MossdeepCity_House4.inc6
-rw-r--r--data/scripts/maps/MossdeepCity_PokemonCenter_1F.inc4
-rw-r--r--data/scripts/maps/MossdeepCity_SpaceCenter_1F.inc8
-rw-r--r--data/scripts/maps/MossdeepCity_StevensHouse.inc26
-rw-r--r--data/scripts/maps/MtChimney.inc12
-rw-r--r--data/scripts/maps/MtPyre_1F.inc6
-rw-r--r--data/scripts/maps/MtPyre_2F.inc4
-rw-r--r--data/scripts/maps/MtPyre_Summit.inc22
-rw-r--r--data/scripts/maps/NewMauville_Entrance.inc26
-rw-r--r--data/scripts/maps/NewMauville_Inside.inc198
-rw-r--r--data/scripts/maps/OldaleTown.inc22
-rw-r--r--data/scripts/maps/OldaleTown_Mart.inc4
-rw-r--r--data/scripts/maps/OldaleTown_PokemonCenter_1F.inc6
-rw-r--r--data/scripts/maps/PacifidlogTown.inc4
-rw-r--r--data/scripts/maps/PacifidlogTown_House2.inc30
-rw-r--r--data/scripts/maps/PacifidlogTown_House3.inc8
-rw-r--r--data/scripts/maps/PacifidlogTown_PokemonCenter_1F.inc4
-rw-r--r--data/scripts/maps/PetalburgCity.inc4
-rw-r--r--data/scripts/maps/PetalburgCity_Gym.inc104
-rw-r--r--data/scripts/maps/PetalburgCity_Mart.inc2
-rw-r--r--data/scripts/maps/PetalburgCity_PokemonCenter_1F.inc4
-rw-r--r--data/scripts/maps/PetalburgCity_WallysHouse.inc20
-rw-r--r--data/scripts/maps/PetalburgWoods.inc8
-rw-r--r--data/scripts/maps/Route101.inc12
-rw-r--r--data/scripts/maps/Route103.inc6
-rw-r--r--data/scripts/maps/Route104.inc52
-rw-r--r--data/scripts/maps/Route104_MrBrineysHouse.inc26
-rw-r--r--data/scripts/maps/Route104_PrettyPetalFlowerShop.inc30
-rw-r--r--data/scripts/maps/Route104_Prototype.inc8
-rw-r--r--data/scripts/maps/Route105.inc6
-rw-r--r--data/scripts/maps/Route109.inc34
-rw-r--r--data/scripts/maps/Route109_SeashoreHouse.inc18
-rw-r--r--data/scripts/maps/Route110.inc2
-rw-r--r--data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.inc4
-rw-r--r--data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.inc4
-rw-r--r--data/scripts/maps/Route110_TrickHouseEnd.inc22
-rw-r--r--data/scripts/maps/Route110_TrickHouseEntrance.inc80
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle1.inc2
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle2.inc16
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle3.inc356
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle5.inc2
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle7.inc122
-rw-r--r--data/scripts/maps/Route111.inc34
-rw-r--r--data/scripts/maps/Route111_OldLadysRestStop.inc2
-rw-r--r--data/scripts/maps/Route111_WinstrateFamilysHouse.inc10
-rw-r--r--data/scripts/maps/Route112_CableCarStation.inc2
-rw-r--r--data/scripts/maps/Route113.inc2
-rw-r--r--data/scripts/maps/Route113_GlassWorkshop.inc40
-rw-r--r--data/scripts/maps/Route114.inc16
-rw-r--r--data/scripts/maps/Route114_FossilManiacsHouse.inc8
-rw-r--r--data/scripts/maps/Route114_FossilManiacsTunnel.inc2
-rw-r--r--data/scripts/maps/Route114_LanettesHouse.inc12
-rw-r--r--data/scripts/maps/Route116.inc16
-rw-r--r--data/scripts/maps/Route116_TunnelersRestHouse.inc4
-rw-r--r--data/scripts/maps/Route117.inc2
-rw-r--r--data/scripts/maps/Route117_PokemonDayCare.inc2
-rw-r--r--data/scripts/maps/Route118.inc6
-rw-r--r--data/scripts/maps/Route119.inc10
-rw-r--r--data/scripts/maps/Route119_House.inc4
-rw-r--r--data/scripts/maps/Route119_WeatherInstitute_2F.inc12
-rw-r--r--data/scripts/maps/Route120.inc62
-rw-r--r--data/scripts/maps/Route121_SafariZoneEntrance.inc4
-rw-r--r--data/scripts/maps/Route123.inc6
-rw-r--r--data/scripts/maps/Route123_BerryMastersHouse.inc48
-rw-r--r--data/scripts/maps/Route124.inc2
-rw-r--r--data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc14
-rw-r--r--data/scripts/maps/Route125.inc2
-rw-r--r--data/scripts/maps/Route126.inc2
-rw-r--r--data/scripts/maps/Route127.inc2
-rw-r--r--data/scripts/maps/Route128.inc6
-rw-r--r--data/scripts/maps/Route130.inc32
-rw-r--r--data/scripts/maps/Route131.inc2
-rw-r--r--data/scripts/maps/Route134.inc2
-rw-r--r--data/scripts/maps/RustboroCity.inc40
-rw-r--r--data/scripts/maps/RustboroCity_CuttersHouse.inc6
-rw-r--r--data/scripts/maps/RustboroCity_DevonCorp_1F.inc18
-rw-r--r--data/scripts/maps/RustboroCity_DevonCorp_2F.inc28
-rw-r--r--data/scripts/maps/RustboroCity_DevonCorp_3F.inc28
-rw-r--r--data/scripts/maps/RustboroCity_Flat2_1F.inc4
-rw-r--r--data/scripts/maps/RustboroCity_Flat2_2F.inc6
-rw-r--r--data/scripts/maps/RustboroCity_Gym.inc16
-rw-r--r--data/scripts/maps/RustboroCity_House1.inc6
-rw-r--r--data/scripts/maps/RustboroCity_House3.inc4
-rw-r--r--data/scripts/maps/RustboroCity_Mart.inc4
-rw-r--r--data/scripts/maps/RustboroCity_PokemonCenter_1F.inc4
-rw-r--r--data/scripts/maps/RustboroCity_PokemonSchool.inc6
-rw-r--r--data/scripts/maps/RusturfTunnel.inc26
-rw-r--r--data/scripts/maps/SSTidalCorridor.inc22
-rw-r--r--data/scripts/maps/SSTidalRooms.inc6
-rw-r--r--data/scripts/maps/SafariZone_Southeast.inc2
-rw-r--r--data/scripts/maps/ScorchedSlab.inc2
-rw-r--r--data/scripts/maps/SeafloorCavern_Entrance.inc4
-rw-r--r--data/scripts/maps/SeafloorCavern_Room9.inc38
-rw-r--r--data/scripts/maps/SealedChamber_InnerRoom.inc18
-rw-r--r--data/scripts/maps/SealedChamber_OuterRoom.inc46
-rw-r--r--data/scripts/maps/SecretBase_YellowCave4.inc2
-rw-r--r--data/scripts/maps/ShoalCave_LowTideEntranceRoom.inc30
-rw-r--r--data/scripts/maps/ShoalCave_LowTideInnerRoom.inc78
-rw-r--r--data/scripts/maps/ShoalCave_LowTideLowerRoom.inc18
-rw-r--r--data/scripts/maps/ShoalCave_LowTideStairsRoom.inc12
-rw-r--r--data/scripts/maps/SkyPillar_2F.inc4
-rw-r--r--data/scripts/maps/SkyPillar_4F.inc4
-rw-r--r--data/scripts/maps/SkyPillar_Entrance.inc2
-rw-r--r--data/scripts/maps/SkyPillar_Top.inc12
-rw-r--r--data/scripts/maps/SlateportCity.inc36
-rw-r--r--data/scripts/maps/SlateportCity_ContestHall.inc6
-rw-r--r--data/scripts/maps/SlateportCity_ContestLobby.inc18
-rw-r--r--data/scripts/maps/SlateportCity_Harbor.inc44
-rw-r--r--data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc10
-rw-r--r--data/scripts/maps/SlateportCity_OceanicMuseum_2F.inc10
-rw-r--r--data/scripts/maps/SlateportCity_PokemonCenter_1F.inc4
-rw-r--r--data/scripts/maps/SlateportCity_PokemonFanClub.inc60
-rw-r--r--data/scripts/maps/SlateportCity_SternsShipyard_1F.inc12
-rw-r--r--data/scripts/maps/SootopolisCity.inc60
-rw-r--r--data/scripts/maps/SootopolisCity_Gym_1F.inc34
-rw-r--r--data/scripts/maps/SootopolisCity_House1.inc10
-rw-r--r--data/scripts/maps/SootopolisCity_House4.inc4
-rw-r--r--data/scripts/maps/SootopolisCity_House6.inc8
-rw-r--r--data/scripts/maps/SootopolisCity_House8.inc4
-rw-r--r--data/scripts/maps/SootopolisCity_Mart.inc8
-rw-r--r--data/scripts/maps/SootopolisCity_PokemonCenter_1F.inc12
-rw-r--r--data/scripts/maps/SouthernIsland_Exterior.inc6
-rw-r--r--data/scripts/maps/SouthernIsland_Interior.inc18
-rw-r--r--data/scripts/maps/Underwater_Route134.inc2
-rw-r--r--data/scripts/maps/Underwater_SeafloorCavern.inc34
-rw-r--r--data/scripts/maps/Underwater_SealedChamber.inc6
-rw-r--r--data/scripts/maps/Underwater_SootopolisCity.inc2
-rw-r--r--data/scripts/maps/UnknownMap_25_34.inc12
-rw-r--r--data/scripts/maps/VerdanturfTown.inc8
-rw-r--r--data/scripts/maps/VerdanturfTown_ContestLobby.inc18
-rw-r--r--data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.inc4
-rw-r--r--data/scripts/maps/VerdanturfTown_PokemonCenter_1F.inc4
-rw-r--r--data/scripts/maps/VerdanturfTown_WandasHouse.inc18
-rw-r--r--data/scripts/maps/VictoryRoad_1F.inc8
-rw-r--r--data/scripts/mauville_man.inc13
-rw-r--r--data/scripts/mystery_event_club.inc8
-rw-r--r--data/scripts/players_house.inc32
-rw-r--r--data/scripts/pokeblocks.inc12
-rw-r--r--data/scripts/safari_zone.inc12
-rw-r--r--data/scripts/secret_power_tm.inc6
-rw-r--r--data/scripts/tv.inc16
-rw-r--r--data/secret_base.s77
-rw-r--r--data/slot_machine.s70
-rw-r--r--data/specials.inc40
-rw-r--r--data/text/battle_strings.inc1830
-rw-r--r--data/text/contest_strings.inc2
-rw-r--r--data/text/credits.inc1011
-rw-r--r--data/text/easy_chat/words_by_letter.inc3716
-rw-r--r--data/text/move_descriptions.inc1772
-rw-r--r--data/text/nature_names.inc102
-rw-r--r--data/text_window.s31
-rw-r--r--data/tileset_anim.s637
-rw-r--r--data/tv.s205
-rw-r--r--data/wild_encounter.s18
-rw-r--r--data/wild_mons.inc688
-rw-r--r--graphics/battle_anims/backgrounds/fog.bin (renamed from graphics/weather/fog1.bin)bin2048 -> 2048 bytes
-rwxr-xr-xgraphics/birch_speech/blank_pal.pal11
-rw-r--r--graphics/trade/gba.pngbin1039 -> 895 bytes
-rw-r--r--graphics/unknown/unknown_E94550.binbin128 -> 64 bytes
-rw-r--r--graphics/unknown/unknown_E94590.binbin0 -> 64 bytes
-rw-r--r--graphics/weather/fog2.png (renamed from graphics/weather/fog0.png)bin928 -> 928 bytes
-rw-r--r--include/abilities.h86
-rw-r--r--include/battle.h148
-rw-r--r--include/battle_ai.h5
-rw-r--r--include/battle_anim.h16
-rw-r--r--include/battle_anim_80CA710.h2
-rw-r--r--include/battle_move_effects.h222
-rw-r--r--include/battle_party_menu.h3
-rw-r--r--include/battle_tower.h98
-rw-r--r--include/berry.h29
-rw-r--r--include/bike.h53
-rw-r--r--include/constants/abilities.h83
-rw-r--r--include/constants/battle_move_effects.h219
-rw-r--r--include/constants/decorations.h126
-rw-r--r--include/constants/easy_chat.h1064
-rw-r--r--include/constants/flags.h804
-rw-r--r--include/constants/game_stat.h (renamed from include/game_stat.h)6
-rw-r--r--include/constants/hold_effects.h (renamed from include/hold_effects.h)6
-rw-r--r--include/constants/items.h389
-rw-r--r--include/constants/map_objects.h232
-rw-r--r--include/constants/maps.h474
-rw-r--r--include/constants/mauville_man.h10
-rw-r--r--include/constants/moves.h360
-rw-r--r--include/constants/opponents.h699
-rw-r--r--include/constants/songs.h373
-rw-r--r--include/constants/species.h450
-rw-r--r--include/constants/vars.h (renamed from include/vars.h)8
-rw-r--r--include/daycare.h20
-rw-r--r--include/decoration.h129
-rw-r--r--include/dewford_trend.h3
-rw-r--r--include/easy_chat.h1065
-rw-r--r--include/event_data.h12
-rwxr-xr-xinclude/ewram.h261
-rw-r--r--include/field_control_avatar.h2
-rw-r--r--include/field_door.h4
-rw-r--r--include/field_effect.h4
-rw-r--r--include/field_map_obj.h13
-rw-r--r--include/field_player_avatar.h26
-rw-r--r--include/field_special_scene.h4
-rw-r--r--include/field_specials.h1
-rw-r--r--include/field_weather.h198
-rw-r--r--include/flags.h91
-rw-r--r--include/fldeff_80C5CD4.h9
-rw-r--r--include/fldeff_decoration.h9
-rw-r--r--include/fldeff_poison.h7
-rw-r--r--include/fldeff_recordmixing.h7
-rw-r--r--include/gba/defines.h9
-rw-r--r--include/gba/flash_internal.h10
-rw-r--r--include/gba/io_reg.h23
-rw-r--r--include/gba/macro.h16
-rw-r--r--include/global.berry.h71
-rw-r--r--include/global.fieldmap.h53
-rw-r--r--include/global.h134
-rw-r--r--include/graphics.h38
-rw-r--r--include/item_use.h2
-rw-r--r--include/items.h392
-rw-r--r--include/landmark.h2
-rw-r--r--include/learn_move.h15
-rw-r--r--include/map_constants.h1098
-rw-r--r--include/map_object_constants.h239
-rw-r--r--include/matsuda_debug_menu.h26
-rw-r--r--include/mauville_man.h10
-rw-r--r--include/mori_debug_menu.h16
-rw-r--r--include/moves.h363
-rw-r--r--include/opponent_constants.h702
-rw-r--r--include/party_menu.h7
-rw-r--r--include/player_pc.h1
-rw-r--r--include/pokemon.h64
-rw-r--r--include/pokemon_summary_screen.h61
-rw-r--r--include/pokenav.h60
-rw-r--r--include/random.h (renamed from include/rng.h)7
-rw-r--r--include/record_mixing.h2
-rw-r--r--include/region_map.h8
-rwxr-xr-xinclude/region_map_sections.h60
-rw-r--r--include/rom3.h8
-rw-r--r--include/rom6.h2
-rw-r--r--include/rom_8077ABC.h47
-rw-r--r--include/save.h2
-rw-r--r--include/script_movement.h2
-rw-r--r--include/script_pokemon_80F9.h2
-rw-r--r--include/secret_base.h23
-rw-r--r--include/songs.h374
-rw-r--r--include/species.h453
-rw-r--r--include/sprite.h19
-rw-r--r--include/string_util.h2
-rw-r--r--include/text_window.h4
-rw-r--r--include/tv.h3
-rw-r--r--include/unknown_task.h18
-rw-r--r--include/use_pokeblock.h13
-rw-r--r--include/wild_encounter.h10
-rw-r--r--ld_script.txt206
-rw-r--r--shared_syms.txt43
-rwxr-xr-xsrc/battle/anim/alert.c33
-rwxr-xr-xsrc/battle/anim/angel.c37
-rwxr-xr-xsrc/battle/anim/angel_kiss.c87
-rwxr-xr-xsrc/battle/anim/anger.c34
-rw-r--r--src/battle/anim/aurora.c72
-rw-r--r--src/battle/anim/beta_beat_up.c34
-rwxr-xr-xsrc/battle/anim/blow_kiss.c39
-rwxr-xr-xsrc/battle/anim/bottle.c125
-rwxr-xr-xsrc/battle/anim/brace.c45
-rwxr-xr-xsrc/battle/anim/breath.c36
-rw-r--r--src/battle/anim/bubble.c102
-rwxr-xr-xsrc/battle/anim/bullet.c69
-rwxr-xr-xsrc/battle/anim/copy_orb.c46
-rwxr-xr-xsrc/battle/anim/cube.c52
-rwxr-xr-xsrc/battle/anim/curtain.c82
-rwxr-xr-xsrc/battle/anim/cutter.c130
-rwxr-xr-xsrc/battle/anim/cyclone.c28
-rw-r--r--src/battle/anim/devil.c37
-rwxr-xr-xsrc/battle/anim/draw.c292
-rwxr-xr-xsrc/battle/anim/drum.c32
-rwxr-xr-xsrc/battle/anim/egg.c122
-rw-r--r--src/battle/anim/energy_wave.c162
-rwxr-xr-xsrc/battle/anim/espeed.c241
-rwxr-xr-xsrc/battle/anim/evasion.c95
-rwxr-xr-xsrc/battle/anim/fang.c19
-rwxr-xr-xsrc/battle/anim/flash.c123
-rwxr-xr-xsrc/battle/anim/flying_hearts.c40
-rwxr-xr-xsrc/battle/anim/flying_path.c296
-rwxr-xr-xsrc/battle/anim/flying_petals.c83
-rw-r--r--src/battle/anim/fury_cutter_count.c20
-rwxr-xr-xsrc/battle/anim/glitter.c63
-rwxr-xr-xsrc/battle/anim/glow.c55
-rwxr-xr-xsrc/battle/anim/grip.c44
-rwxr-xr-xsrc/battle/anim/grow.c31
-rw-r--r--src/battle/anim/guard.c34
-rwxr-xr-xsrc/battle/anim/guillotine.c90
-rwxr-xr-xsrc/battle/anim/heal.c27
-rwxr-xr-xsrc/battle/anim/heart_1.c25
-rw-r--r--src/battle/anim/heated_rock.c205
-rwxr-xr-xsrc/battle/anim/homing.c86
-rwxr-xr-xsrc/battle/anim/hop.c160
-rwxr-xr-xsrc/battle/anim/hop_2.c70
-rwxr-xr-xsrc/battle/anim/kiss_fountain.c38
-rwxr-xr-xsrc/battle/anim/leaf.c74
-rwxr-xr-xsrc/battle/anim/love_bg.c121
-rwxr-xr-xsrc/battle/anim/lunge_1.c124
-rwxr-xr-xsrc/battle/anim/lunge_2.c163
-rwxr-xr-xsrc/battle/anim/money.c62
-rwxr-xr-xsrc/battle/anim/moon.c39
-rw-r--r--src/battle/anim/noise.c56
-rwxr-xr-xsrc/battle/anim/note_rain.c37
-rwxr-xr-xsrc/battle/anim/note_scatter.c54
-rwxr-xr-xsrc/battle/anim/note_scatter_2.c57
-rw-r--r--src/battle/anim/note_spin.c110
-rwxr-xr-xsrc/battle/anim/note_wave.c143
-rwxr-xr-xsrc/battle/anim/orbit.c147
-rwxr-xr-xsrc/battle/anim/orbit_fast.c62
-rwxr-xr-xsrc/battle/anim/orbit_scatter.c31
-rwxr-xr-xsrc/battle/anim/orbs.c162
-rwxr-xr-xsrc/battle/anim/osmose.c29
-rwxr-xr-xsrc/battle/anim/perceive.c24
-rwxr-xr-xsrc/battle/anim/powder.c48
-rw-r--r--src/battle/anim/rain.c56
-rwxr-xr-xsrc/battle/anim/ring.c156
-rwxr-xr-xsrc/battle/anim/roots.c67
-rwxr-xr-xsrc/battle/anim/scan.c200
-rwxr-xr-xsrc/battle/anim/scary_face.c129
-rwxr-xr-xsrc/battle/anim/seed.c50
-rwxr-xr-xsrc/battle/anim/shadow_enlarge.c35
-rwxr-xr-xsrc/battle/anim/shadow_minimize.c262
-rwxr-xr-xsrc/battle/anim/shield.c81
-rwxr-xr-xsrc/battle/anim/shimmer.c48
-rw-r--r--src/battle/anim/shock.c106
-rwxr-xr-xsrc/battle/anim/silhouette.c77
-rwxr-xr-xsrc/battle/anim/slash.c83
-rwxr-xr-xsrc/battle/anim/sleep.c44
-rwxr-xr-xsrc/battle/anim/slice.c111
-rwxr-xr-xsrc/battle/anim/smoke.c22
-rwxr-xr-xsrc/battle/anim/sonic.c136
-rwxr-xr-xsrc/battle/anim/sonic_task.c152
-rwxr-xr-xsrc/battle/anim/spin_finger.c73
-rwxr-xr-xsrc/battle/anim/spit.c30
-rwxr-xr-xsrc/battle/anim/splash.c87
-rwxr-xr-xsrc/battle/anim/startle.c56
-rwxr-xr-xsrc/battle/anim/strike.c77
-rw-r--r--src/battle/anim/struggle.c52
-rw-r--r--src/battle/anim/sunlight.c17
-rw-r--r--src/battle/anim/swipe.c20
-rwxr-xr-xsrc/battle/anim/switch.c128
-rwxr-xr-xsrc/battle/anim/sword.c30
-rwxr-xr-xsrc/battle/anim/taunt_finger.c56
-rwxr-xr-xsrc/battle/anim/tendrils.c67
-rwxr-xr-xsrc/battle/anim/thought.c52
-rwxr-xr-xsrc/battle/anim/thrashing.c111
-rw-r--r--src/battle/anim/thunder.c36
-rwxr-xr-xsrc/battle/anim/tile_in.c51
-rwxr-xr-xsrc/battle/anim/tile_out.c81
-rwxr-xr-xsrc/battle/anim/twinkle.c42
-rwxr-xr-xsrc/battle/anim/unused_1.c25
-rwxr-xr-xsrc/battle/anim/unused_2.c80
-rwxr-xr-xsrc/battle/anim/unused_3.c45
-rwxr-xr-xsrc/battle/anim/unused_4.c58
-rwxr-xr-xsrc/battle/anim/unused_5.c25
-rwxr-xr-xsrc/battle/anim/unused_6.c49
-rwxr-xr-xsrc/battle/anim/unused_7.c51
-rwxr-xr-xsrc/battle/anim/unused_8.c41
-rwxr-xr-xsrc/battle/anim/unused_9.c113
-rw-r--r--src/battle/anim/uproar.c25
-rw-r--r--src/battle/anim/water.c371
-rwxr-xr-xsrc/battle/anim/wave_finger.c39
-rwxr-xr-xsrc/battle/anim/whip.c46
-rw-r--r--src/battle/anim/wisp_orb.c105
-rwxr-xr-xsrc/battle/anim/withdraw.c69
-rw-r--r--src/battle/battle_2.c394
-rw-r--r--src/battle/battle_3.c3495
-rw-r--r--src/battle/battle_4.c1269
-rw-r--r--src/battle/battle_7.c89
-rw-r--r--src/battle/battle_ai.c223
-rw-r--r--src/battle/battle_anim.c220
-rw-r--r--src/battle/battle_anim_807B69C.c39
-rw-r--r--src/battle/battle_anim_80A7E7C.c128
-rw-r--r--src/battle/battle_controller_linkopponent.c134
-rw-r--r--src/battle/battle_controller_linkpartner.c133
-rw-r--r--src/battle/battle_controller_opponent.c162
-rw-r--r--src/battle/battle_controller_player.c210
-rw-r--r--src/battle/battle_controller_safari.c17
-rw-r--r--src/battle/battle_controller_wally.c181
-rw-r--r--src/battle/battle_interface.c237
-rw-r--r--src/battle/battle_message.c358
-rw-r--r--src/battle/battle_party_menu.c18
-rw-r--r--src/battle/battle_records.c21
-rw-r--r--src/battle/battle_setup.c287
-rw-r--r--src/battle/battle_transition.c99
-rw-r--r--src/battle/calculate_base_damage.c24
-rw-r--r--src/battle/pokeball.c359
-rw-r--r--src/battle/post_battle_event_funcs.c6
-rw-r--r--src/battle/reshow_battle_screen.c16
-rw-r--r--src/battle/smokescreen.c24
-rwxr-xr-xsrc/data/battle_strings_de.h1612
-rwxr-xr-xsrc/data/battle_strings_en.h1612
-rw-r--r--src/data/battle_tower/level_100_mons.h3903
-rw-r--r--src/data/battle_tower/level_50_mons.h3903
-rw-r--r--src/data/battle_tower/trainers.h1503
-rw-r--r--src/data/battle_tower/trainers_de.h1503
-rwxr-xr-xsrc/data/credits_de.h624
-rwxr-xr-xsrc/data/credits_en.h654
-rw-r--r--src/data/field_map_obj/anim_func_ptrs.h (renamed from include/data/field_map_obj/anim_func_ptrs.h)0
-rw-r--r--src/data/field_map_obj/base_oam.h (renamed from include/data/field_map_obj/base_oam.h)0
-rw-r--r--src/data/field_map_obj/berry_tree_graphics_tables.h (renamed from include/data/field_map_obj/berry_tree_graphics_tables.h)0
-rw-r--r--src/data/field_map_obj/callback_subroutine_pointers.h (renamed from include/data/field_map_obj/callback_subroutine_pointers.h)0
-rw-r--r--src/data/field_map_obj/field_effect_object_template_pointers.h (renamed from include/data/field_map_obj/field_effect_object_template_pointers.h)0
-rw-r--r--src/data/field_map_obj/field_effect_objects.h (renamed from include/data/field_map_obj/field_effect_objects.h)0
-rw-r--r--src/data/field_map_obj/map_object_anims.h (renamed from include/data/field_map_obj/map_object_anims.h)0
-rw-r--r--src/data/field_map_obj/map_object_graphics_info.h (renamed from include/data/field_map_obj/map_object_graphics_info.h)0
-rw-r--r--src/data/field_map_obj/map_object_graphics_info_pointers.h (renamed from include/data/field_map_obj/map_object_graphics_info_pointers.h)0
-rw-r--r--src/data/field_map_obj/map_object_pic_tables.h (renamed from include/data/field_map_obj/map_object_pic_tables.h)0
-rw-r--r--src/data/field_map_obj/map_object_subsprites.h (renamed from include/data/field_map_obj/map_object_subsprites.h)0
-rw-r--r--src/data/pokemon/base_stats.h (renamed from include/data/pokemon/base_stats.h)0
-rw-r--r--src/data/pokemon/cry_ids.h (renamed from include/data/pokemon/cry_ids.h)0
-rw-r--r--src/data/pokemon/dex_order.h (renamed from include/data/pokemon/dex_order.h)0
-rw-r--r--src/data/pokemon/egg_moves.h (renamed from include/data/pokemon/egg_moves.h)0
-rw-r--r--src/data/pokemon/evolution.h (renamed from include/data/pokemon/evolution.h)0
-rw-r--r--src/data/pokemon/experience_tables.h (renamed from include/data/pokemon/experience_tables.h)0
-rw-r--r--src/data/pokemon/item_effects.h (renamed from include/data/pokemon/item_effects.h)0
-rw-r--r--src/data/pokemon/level_up_learnset_pointers.h (renamed from include/data/pokemon/level_up_learnset_pointers.h)0
-rw-r--r--src/data/pokemon/level_up_learnsets.h (renamed from include/data/pokemon/level_up_learnsets.h)0
-rw-r--r--src/data/pokemon/nature_stats.h (renamed from include/data/pokemon/nature_stats.h)0
-rw-r--r--src/data/pokemon/spinda_spots.h (renamed from include/data/pokemon/spinda_spots.h)0
-rw-r--r--src/data/pokemon/tmhm_learnsets.h (renamed from include/data/pokemon/tmhm_learnsets.h)0
-rw-r--r--src/data/pokemon/trainer_class_lookups.h (renamed from include/data/pokemon/trainer_class_lookups.h)0
-rw-r--r--src/data/text/move_descriptions_de.h1771
-rw-r--r--src/data/text/move_descriptions_en.h1772
-rw-r--r--src/data/text/nature_names_de.h53
-rw-r--r--src/data/text/nature_names_en.h53
-rw-r--r--src/de_rom_8040FE0.c15
-rw-r--r--src/debug/matsuda_debug_menu.c448
-rw-r--r--src/debug/mori_debug_menu.c87
-rw-r--r--src/debug/sound_check_menu.c2
-rw-r--r--src/debug/unknown_debug_menu.c13
-rw-r--r--src/engine/cable_club.c49
-rw-r--r--src/engine/clear_save_data_menu.c2
-rw-r--r--src/engine/clock.c23
-rw-r--r--src/engine/decompress.c5
-rw-r--r--src/engine/link.c15
-rw-r--r--src/engine/main.c3
-rw-r--r--src/engine/main_menu.c70
-rw-r--r--src/engine/menu.c2
-rw-r--r--src/engine/mystery_event_menu.c9
-rw-r--r--src/engine/mystery_event_script.c8
-rw-r--r--src/engine/naming_screen.c117
-rw-r--r--src/engine/random.c (renamed from src/engine/rng.c)2
-rw-r--r--src/engine/record_mixing.c75
-rw-r--r--src/engine/reset_rtc_screen.c145
-rw-r--r--src/engine/save.c28
-rw-r--r--src/engine/save_failed_screen.c7
-rw-r--r--src/engine/save_menu_util.c6
-rw-r--r--src/engine/sound.c2
-rw-r--r--src/engine/sprite.c28
-rw-r--r--src/engine/string_util.c34
-rw-r--r--src/engine/text.c232
-rw-r--r--src/engine/text_window.c76
-rw-r--r--src/engine/tileset_anim.c465
-rw-r--r--src/engine/time_events.c6
-rw-r--r--src/engine/trade.c218
-rw-r--r--src/engine/trainer_card.c323
-rw-r--r--src/field/battle_tower.c2373
-rw-r--r--src/field/berry.c539
-rw-r--r--src/field/berry_tag_screen.c40
-rw-r--r--src/field/bike.c602
-rw-r--r--src/field/birch_pc.c2
-rw-r--r--src/field/braille_puzzles.c26
-rw-r--r--src/field/choose_party.c22
-rw-r--r--src/field/daycare.c816
-rw-r--r--src/field/decoration.c86
-rw-r--r--src/field/decoration_inventory.c7
-rw-r--r--src/field/dewford_trend.c18
-rw-r--r--src/field/easy_chat.c15
-rw-r--r--src/field/event_data.c38
-rw-r--r--src/field/field_camera.c11
-rw-r--r--src/field/field_control_avatar.c38
-rw-r--r--src/field/field_door.c413
-rw-r--r--src/field/field_effect.c278
-rw-r--r--src/field/field_effect_helpers.c366
-rw-r--r--src/field/field_fadetransition.c2
-rw-r--r--src/field/field_ground_effect.c38
-rw-r--r--src/field/field_map_obj.c661
-rw-r--r--src/field/field_map_obj_helpers.c74
-rw-r--r--src/field/field_player_avatar.c212
-rw-r--r--src/field/field_poison.c10
-rw-r--r--src/field/field_region_map.c26
-rw-r--r--src/field/field_screen_effect.c20
-rw-r--r--src/field/field_special_scene.c87
-rw-r--r--src/field/field_specials.c138
-rw-r--r--src/field/field_tasks.c16
-rw-r--r--src/field/field_weather.c1081
-rw-r--r--src/field/field_weather_effects.c2383
-rw-r--r--src/field/fldeff_berrytree.c56
-rw-r--r--src/field/fldeff_cut.c86
-rw-r--r--src/field/fldeff_decoration.c364
-rw-r--r--src/field/fldeff_flash.c46
-rw-r--r--src/field/fldeff_poison.c44
-rw-r--r--src/field/fldeff_recordmixing.c83
-rw-r--r--src/field/fldeff_secret_base_pc.c69
-rw-r--r--src/field/fldeff_secretpower.c484
-rw-r--r--src/field/fldeff_softboiled.c17
-rw-r--r--src/field/fldeff_strength.c6
-rw-r--r--src/field/heal_location.c46
-rw-r--r--src/field/item.c4
-rw-r--r--src/field/item_menu.c156
-rw-r--r--src/field/item_use.c70
-rw-r--r--src/field/landmark.c366
-rw-r--r--src/field/lottery_corner.c14
-rw-r--r--src/field/map_obj_lock.c6
-rw-r--r--src/field/mauville_man.c29
-rw-r--r--src/field/menu_helpers.c56
-rw-r--r--src/field/money.c49
-rw-r--r--src/field/overworld.c128
-rw-r--r--src/field/party_menu.c332
-rw-r--r--src/field/pc_screen_effect.c128
-rw-r--r--src/field/player_pc.c77
-rw-r--r--src/field/pokeblock.c76
-rw-r--r--src/field/region_map.c257
-rw-r--r--src/field/roamer.c18
-rw-r--r--src/field/rotating_gate.c24
-rw-r--r--src/field/safari_zone.c28
-rw-r--r--src/field/scrcmd.c164
-rw-r--r--src/field/script_menu.c34
-rw-r--r--src/field/script_movement.c20
-rw-r--r--src/field/secret_base.c1557
-rw-r--r--src/field/shop.c13
-rw-r--r--src/field/slot_machine.c19
-rw-r--r--src/field/start_menu.c16
-rw-r--r--src/field/starter_choose.c32
-rw-r--r--src/field/trader.c13
-rw-r--r--src/field/trainer_see.c26
-rw-r--r--src/field/tv.c523
-rw-r--r--src/field/use_pokeblock.c20
-rw-r--r--src/field/wallclock.c74
-rw-r--r--src/field/wild_encounter.c838
-rw-r--r--src/libs/agb_flash.c12
-rw-r--r--src/libs/agb_flash_mx.c2
-rw-r--r--src/pokemon/learn_move.c58
-rw-r--r--src/pokemon/mail.c294
-rw-r--r--src/pokemon/mail_data.c4
-rw-r--r--src/pokemon/mon_markings.c301
-rw-r--r--src/pokemon/pokeblock_feed.c77
-rw-r--r--src/pokemon/pokedex.c251
-rw-r--r--src/pokemon/pokedex_cry_screen.c7
-rw-r--r--src/pokemon/pokemon_1.c126
-rw-r--r--src/pokemon/pokemon_2.c49
-rw-r--r--src/pokemon/pokemon_3.c43
-rw-r--r--src/pokemon/pokemon_data.c36
-rw-r--r--src/pokemon/pokemon_icon.c9
-rw-r--r--src/pokemon/pokemon_menu.c46
-rw-r--r--src/pokemon/pokemon_size_record.c16
-rw-r--r--src/pokemon/pokemon_storage_system.c8
-rw-r--r--src/pokemon/pokemon_summary_screen.c5425
-rw-r--r--src/pokenav_after.c (renamed from src/field/pokenav.c)2
-rw-r--r--src/pokenav_before.c5005
-rw-r--r--src/rom3.c70
-rw-r--r--src/rom6.c10
-rw-r--r--src/rom_800D42C.c1
-rw-r--r--src/rom_8077ABC.c568
-rw-r--r--src/scene/berry_blender.c154
-rw-r--r--src/scene/cable_car.c174
-rw-r--r--src/scene/contest_painting.c24
-rw-r--r--src/scene/credits.c357
-rw-r--r--src/scene/egg_hatch.c120
-rw-r--r--src/scene/evolution_graphics.c84
-rw-r--r--src/scene/evolution_scene.c276
-rw-r--r--src/scene/hall_of_fame.c138
-rw-r--r--src/scene/intro.c713
-rwxr-xr-xsrc/scene/intro_credits_graphics.c44
-rw-r--r--src/scene/new_game.c8
-rw-r--r--src/scene/title_screen.c38
-rw-r--r--src/script_pokemon_util_80C4BF0.c43
-rw-r--r--src/script_pokemon_util_80F99CC.c17
-rw-r--r--src/strings.c2
-rw-r--r--src/unknown_task.c16
-rw-r--r--sym_bss.txt2
-rw-r--r--sym_common.txt2
-rw-r--r--sym_ewram.txt6
-rw-r--r--tools/gbagfx/convert_png.c48
-rw-r--r--tools/preproc/c_file.cpp2
-rw-r--r--tools/preproc/preproc.cpp4
-rw-r--r--tools/scaninc/c_file.cpp6
1248 files changed, 113929 insertions, 148938 deletions
diff --git a/.gitattributes b/.gitattributes
index b447e32c3..3bbd49fbf 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -16,3 +16,20 @@ Makefile text eol=lf
*.h linguist-language=C
*.inc linguist-language=Assembly
+docs/* linguist-vendored
+# most of the assembly count comes from huge amounts of script include files: it is not fair to count these as assembly. as such, we will instead vendor these. Note that they do take up the majority of the repository.
+data/maps/** linguist-vendored
+data/scripts/** linguist-vendored
+data/battle_ai_scripts.s linguist-vendored
+data/battle_anim_scripts.s linguist-vendored
+data/battle_scripts_1.s linguist-vendored
+data/battle_scripts_2.s linguist-vendored
+data/contest_ai_scripts.s linguist-vendored
+data/field_move_scripts.inc linguist-vendored
+data/field_effect_scripts.s linguist-vendored
+data/event_scripts.s linguist-vendored
+data-de/maps/** linguist-vendored
+data-de/event_scripts.s linguist-vendored
+data-de/field_move_scripts.s linguist-vendored
+# sound data
+sound/songs/*.s linguist-vendored
diff --git a/Makefile b/Makefile
index f471a1626..e7e2a7156 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@ 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
+CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef -Werror -Wno-trigraphs
LD := $(DEVKITARM)/bin/arm-none-eabi-ld
@@ -40,9 +40,9 @@ VERSIONS := ruby sapphire ruby_rev1 sapphire_rev1 ruby_rev2 sapphire_rev2 ruby_d
$(VERSIONS) $(VERSIONS:%=compare_%)
-$(shell mkdir -p build/ $(VERSIONS:%=build/%/{,asm,data,src{,/battle,/field,/debug,/scene,/pokemon,/engine,/libs}}))
+$(shell mkdir -p build/ $(VERSIONS:%=build/%/{,asm,data,src{,/battle{,/anim},/field,/debug,/scene,/pokemon,/engine,/libs}}))
-C_SRCS := $(wildcard src/*/*.c) $(wildcard src/*.c)
+C_SRCS := $(shell find src -iname "*.c")
ASM_SRCS := $(wildcard asm/*.s)
DATA_ASM_SRCS := $(wildcard data/*.s)
@@ -143,7 +143,7 @@ $$($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 | $$(AS) $$(ASFLAGS) --defsym $$(VERSION)=1 --defsym REVISION=$$(REVISION) --defsym $$(LANGUAGE)=1 -o $$@
+ $$(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
@@ -161,7 +161,7 @@ build/$1/ld_script.ld: ld_script.txt build/$1/sym_bss.ld build/$1/sym_common.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 -T ../../shared_syms.txt -Map ../../poke$1.map -o ../../$$@ $$($1_OBJS_REL) ../../$$(LIBGCC)
+ 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 $$< $$@
diff --git a/asm-de/contest_link_80C2020.s b/asm-de/contest_link_80C2020.s
index 65bbf0f22..0c07937f8 100644
--- a/asm-de/contest_link_80C2020.s
+++ b/asm-de/contest_link_80C2020.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -408,7 +407,7 @@ sub_80C2358: @ 80C2358
movs r1, 0x1
bl sub_80C30D4
bl sub_80C2340
- ldr r4, _080C2410 @ =0x02018000
+ ldr r4, _080C2410 @ =gSharedMem + 0x18000
adds r0, r4, 0
movs r1, 0
movs r2, 0x18
@@ -458,7 +457,7 @@ sub_80C2358: @ 80C2358
bx r0
.align 2, 0
_080C240C: .4byte gPaletteFade
-_080C2410: .4byte 0x02018000
+_080C2410: .4byte gSharedMem + 0x18000
_080C2414: .4byte sub_80C24F4
_080C2418: .4byte sub_80C2430
_080C241C: .4byte gUnknown_03004200
@@ -665,7 +664,7 @@ sub_80C25C0: @ 80C25C0
adds r0, r4, 0
bl DestroyTask
ldr r2, _080C25F4 @ =gTasks
- ldr r0, _080C25F8 @ =0x02018000
+ ldr r0, _080C25F8 @ =gSharedMem + 0x18000
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
@@ -680,7 +679,7 @@ _080C25EC:
bx r0
.align 2, 0
_080C25F4: .4byte gTasks
-_080C25F8: .4byte 0x02018000
+_080C25F8: .4byte gSharedMem + 0x18000
_080C25FC: .4byte sub_80C2600
thumb_func_end sub_80C25C0
@@ -703,7 +702,7 @@ sub_80C2600: @ 80C2600
movs r1, 0x14
bl CreateTask
ldr r4, _080C264C @ =gContestText_AnnounceResults
- ldr r0, _080C2650 @ =0x02018000
+ ldr r0, _080C2650 @ =gSharedMem + 0x18000
ldrb r1, [r0]
adds r0, r4, 0
bl sub_80C3158
@@ -720,17 +719,17 @@ sub_80C2600: @ 80C2600
_080C2644: .4byte gTasks
_080C2648: .4byte sub_80C2F64
_080C264C: .4byte gContestText_AnnounceResults
-_080C2650: .4byte 0x02018000
+_080C2650: .4byte gSharedMem + 0x18000
_080C2654:
cmp r0, 0x1
bne _080C2668
- ldr r0, _080C2664 @ =0x02018000
+ ldr r0, _080C2664 @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x4]
cmp r0, 0
bne _080C26D4
b _080C267C
.align 2, 0
-_080C2664: .4byte 0x02018000
+_080C2664: .4byte gSharedMem + 0x18000
_080C2668:
cmp r0, 0x2
bne _080C2684
@@ -751,7 +750,7 @@ _080C2684:
cmp r0, 0x3
bne _080C26C0
ldr r4, _080C26B4 @ =gContestText_PreliminaryResults
- ldr r0, _080C26B8 @ =0x02018000
+ ldr r0, _080C26B8 @ =gSharedMem + 0x18000
ldrb r1, [r0]
adds r0, r4, 0
bl sub_80C3158
@@ -771,12 +770,12 @@ _080C26A6:
b _080C26D4
.align 2, 0
_080C26B4: .4byte gContestText_PreliminaryResults
-_080C26B8: .4byte 0x02018000
+_080C26B8: .4byte gSharedMem + 0x18000
_080C26BC: .4byte 0x0000ffff
_080C26C0:
cmp r0, 0x4
bne _080C26D4
- ldr r0, _080C26DC @ =0x02018000
+ ldr r0, _080C26DC @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x4]
cmp r0, 0x2
bne _080C26D4
@@ -789,7 +788,7 @@ _080C26D4:
pop {r0}
bx r0
.align 2, 0
-_080C26DC: .4byte 0x02018000
+_080C26DC: .4byte gSharedMem + 0x18000
_080C26E0: .4byte sub_80C26E4
thumb_func_end sub_80C2600
@@ -819,7 +818,7 @@ _080C270C:
beq _080C2754
b _080C2766
_080C2712:
- ldr r5, _080C2738 @ =0x02018000
+ ldr r5, _080C2738 @ =gSharedMem + 0x18000
ldrb r0, [r5, 0xA]
cmp r0, 0
bne _080C2766
@@ -837,21 +836,21 @@ _080C2712:
strh r0, [r4, 0x8]
b _080C2766
.align 2, 0
-_080C2738: .4byte 0x02018000
+_080C2738: .4byte gSharedMem + 0x18000
_080C273C:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080C2766
_080C2744:
- ldr r0, _080C2750 @ =0x02018000
+ 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 0x02018000
+_080C2750: .4byte gSharedMem + 0x18000
_080C2754:
movs r0, 0x88
lsls r0, 3
@@ -875,7 +874,7 @@ sub_80C2770: @ 80C2770
lsls r0, 24
lsrs r2, r0, 24
adds r4, r2, 0
- ldr r5, _080C27BC @ =0x02018000
+ ldr r5, _080C27BC @ =gSharedMem + 0x18000
ldrb r3, [r5, 0x4]
cmp r3, 0
bne _080C27CC
@@ -907,7 +906,7 @@ sub_80C2770: @ 80C2770
bl sub_80C34CC
b _080C27DE
.align 2, 0
-_080C27BC: .4byte 0x02018000
+_080C27BC: .4byte gSharedMem + 0x18000
_080C27C0: .4byte gTasks
_080C27C4: .4byte gContestText_Round2Results
_080C27C8: .4byte 0x0000ffff
@@ -956,7 +955,7 @@ _080C2814:
beq _080C285C
b _080C286C
_080C281A:
- ldr r5, _080C2840 @ =0x02018000
+ ldr r5, _080C2840 @ =gSharedMem + 0x18000
ldrb r0, [r5, 0xA]
cmp r0, 0
bne _080C286C
@@ -974,21 +973,21 @@ _080C281A:
strh r0, [r4, 0x8]
b _080C286C
.align 2, 0
-_080C2840: .4byte 0x02018000
+_080C2840: .4byte gSharedMem + 0x18000
_080C2844:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080C286C
_080C284C:
- ldr r0, _080C2858 @ =0x02018000
+ 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 0x02018000
+_080C2858: .4byte gSharedMem + 0x18000
_080C285C:
movs r0, 0x88
lsls r0, 3
@@ -1040,7 +1039,7 @@ _080C28A8:
.4byte _080C299C
.4byte _080C2A70
_080C28C0:
- ldr r0, _080C28DC @ =0x02018000
+ ldr r0, _080C28DC @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _080C28CA
@@ -1055,7 +1054,7 @@ _080C28CA:
strh r1, [r0, 0x8]
b _080C2A80
.align 2, 0
-_080C28DC: .4byte 0x02018000
+_080C28DC: .4byte gSharedMem + 0x18000
_080C28E0:
lsls r0, r5, 2
adds r0, r5
@@ -1101,7 +1100,7 @@ _080C292C: .4byte gTasks
_080C2930: .4byte sub_80C3A5C
_080C2934: .4byte gUnknown_02038690
_080C2938:
- ldr r0, _080C2990 @ =0x02018000
+ ldr r0, _080C2990 @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x5]
cmp r0, 0x4
beq _080C2942
@@ -1148,7 +1147,7 @@ _080C2984:
bl sub_80C3E60
b _080C2A80
.align 2, 0
-_080C2990: .4byte 0x02018000
+_080C2990: .4byte gSharedMem + 0x18000
_080C2994: .4byte sub_80C3B30
_080C2998: .4byte gUnknown_02038690
_080C299C:
@@ -1215,7 +1214,7 @@ _080C2A10:
ldr r1, _080C2A60 @ =gContestText_PokeWon
mov r0, sp
bl StringExpandPlaceholders
- ldr r0, _080C2A64 @ =0x02018000
+ ldr r0, _080C2A64 @ =gSharedMem + 0x18000
ldrb r1, [r0]
mov r0, sp
bl sub_80C3158
@@ -1243,7 +1242,7 @@ _080C2A54: .4byte gUnknown_0203857D
_080C2A58: .4byte gStringVar2
_080C2A5C: .4byte gContestMons + 0x2
_080C2A60: .4byte gContestText_PokeWon
-_080C2A64: .4byte 0x02018000
+_080C2A64: .4byte gSharedMem + 0x18000
_080C2A68: .4byte 0x0000ffff
_080C2A6C: .4byte gTasks
_080C2A70:
@@ -1356,7 +1355,7 @@ _080C2B14:
str r3, [sp]
str r6, [sp, 0x4]
str r4, [sp, 0x8]
- ldr r3, _080C2BE4 @ =0x02000000
+ ldr r3, _080C2BE4 @ =gSharedMem
bl HandleLoadSpecialPokePic
adds r0, r6, 0
ldr r1, [sp, 0xC]
@@ -1392,7 +1391,7 @@ _080C2B14:
adds r2, r5
ldr r1, _080C2BF0 @ =sub_80C3C44
str r1, [r2]
- ldr r2, _080C2BE4 @ =0x02000000
+ ldr r2, _080C2BE4 @ =gSharedMem
movs r3, 0xC0
lsls r3, 9
adds r1, r2, r3
@@ -1422,7 +1421,7 @@ _080C2BD4: .4byte gContestMons
_080C2BD8: .4byte gMonFrontPicTable
_080C2BDC: .4byte gMonFrontPicCoords
_080C2BE0: .4byte gUnknown_081FAF4C
-_080C2BE4: .4byte 0x02000000
+_080C2BE4: .4byte gSharedMem
_080C2BE8: .4byte gUnknown_02024E8C
_080C2BEC: .4byte gSprites
_080C2BF0: .4byte sub_80C3C44
@@ -1472,13 +1471,13 @@ _080C2C30:
.align 2, 0
_080C2C50: .4byte gUnknown_03004240
_080C2C54:
- ldr r0, _080C2C60 @ =0x02018000
+ ldr r0, _080C2C60 @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x6]
cmp r0, 0x1
bne _080C2D04
b _080C2CD0
.align 2, 0
-_080C2C60: .4byte 0x02018000
+_080C2C60: .4byte gSharedMem + 0x18000
_080C2C64:
lsls r0, r7, 2
adds r0, r7
@@ -1494,7 +1493,7 @@ _080C2C64:
movs r0, 0
strh r0, [r3, 0xA]
ldr r2, _080C2C9C @ =gSprites
- ldr r0, _080C2CA0 @ =0x02018000
+ ldr r0, _080C2CA0 @ =gSharedMem + 0x18000
ldrb r1, [r0, 0x8]
lsls r0, r1, 4
adds r0, r1
@@ -1509,10 +1508,10 @@ _080C2C64:
b _080C2D04
.align 2, 0
_080C2C9C: .4byte gSprites
-_080C2CA0: .4byte 0x02018000
+_080C2CA0: .4byte gSharedMem + 0x18000
_080C2CA4: .4byte sub_80C3CB8
_080C2CA8:
- ldr r0, _080C2CE0 @ =0x02018000
+ ldr r0, _080C2CE0 @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x6]
cmp r0, 0x2
bne _080C2D04
@@ -1543,10 +1542,10 @@ _080C2CD0:
strh r1, [r0, 0x8]
b _080C2D04
.align 2, 0
-_080C2CE0: .4byte 0x02018000
+_080C2CE0: .4byte gSharedMem + 0x18000
_080C2CE4: .4byte gUnknown_03004240
_080C2CE8:
- ldr r2, _080C2D14 @ =0x02018000
+ ldr r2, _080C2D14 @ =gSharedMem + 0x18000
ldrb r0, [r2, 0x6]
cmp r0, 0x2
bne _080C2D04
@@ -1570,7 +1569,7 @@ _080C2D04:
pop {r0}
bx r0
.align 2, 0
-_080C2D14: .4byte 0x02018000
+_080C2D14: .4byte gSharedMem + 0x18000
_080C2D18: .4byte sub_80C2D1C
thumb_func_end sub_80C2A8C
@@ -1714,12 +1713,12 @@ sub_80C2E14: @ 80C2E14
bl sub_80BE284
movs r0, 0x2
bl sub_810FB10
- ldr r0, _080C2E88 @ =gScriptContestRank
+ ldr r0, _080C2E88 @ =gSpecialVar_ContestRank
ldrb r0, [r0]
bl sub_80B2A7C
movs r0, 0xFE
bl sub_80B2A7C
- ldr r4, _080C2E8C @ =0x02000000
+ ldr r4, _080C2E8C @ =gSharedMem
ldr r0, _080C2E90 @ =0x00015ddf
adds r1, r4, r0
movs r6, 0
@@ -1751,8 +1750,8 @@ sub_80C2E14: @ 80C2E14
.align 2, 0
_080C2E80: .4byte gUnknown_02038690
_080C2E84: .4byte gContestPlayerMonIndex
-_080C2E88: .4byte gScriptContestRank
-_080C2E8C: .4byte 0x02000000
+_080C2E88: .4byte gSpecialVar_ContestRank
+_080C2E8C: .4byte gSharedMem
_080C2E90: .4byte 0x00015ddf
_080C2E94: .4byte 0x00015dde
_080C2E98: .4byte gTasks
@@ -1782,7 +1781,7 @@ sub_80C2EA0: @ 80C2EA0
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080C2EE8
- ldr r0, _080C2EE0 @ =0x02018000
+ ldr r0, _080C2EE0 @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x3]
bl DestroyTask
ldr r0, _080C2EE4 @ =0x0000ffff
@@ -1790,7 +1789,7 @@ sub_80C2EA0: @ 80C2EA0
.align 2, 0
_080C2ED8: .4byte gPaletteFade
_080C2EDC: .4byte gTasks
-_080C2EE0: .4byte 0x02018000
+_080C2EE0: .4byte gSharedMem + 0x18000
_080C2EE4: .4byte 0x0000ffff
_080C2EE8:
cmp r0, 0x1
@@ -1938,7 +1937,7 @@ _080C2FE6:
ldrsh r4, [r0, r3]
cmp r4, 0
bne _080C3014
- ldr r0, _080C3010 @ =0x02018000
+ ldr r0, _080C3010 @ =gSharedMem + 0x18000
strb r4, [r0, 0xA]
b _080C301A
.align 2, 0
@@ -1946,9 +1945,9 @@ _080C3000: .4byte gTasks
_080C3004: .4byte 0x00002ede
_080C3008: .4byte 0x00007fff
_080C300C: .4byte 0x000077be
-_080C3010: .4byte 0x02018000
+_080C3010: .4byte gSharedMem + 0x18000
_080C3014:
- ldr r1, _080C3020 @ =0x02018000
+ ldr r1, _080C3020 @ =gSharedMem + 0x18000
movs r0, 0x1
strb r0, [r1, 0xA]
_080C301A:
@@ -1956,7 +1955,7 @@ _080C301A:
pop {r0}
bx r0
.align 2, 0
-_080C3020: .4byte 0x02018000
+_080C3020: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C2F64
thumb_func_start sub_80C3024
@@ -2235,7 +2234,7 @@ _080C3218:
strb r5, [r2, 0x2]
movs r0, 0xFF
strb r0, [r2, 0x3]
- ldr r0, _080C32DC @ =0x02018068
+ ldr r0, _080C32DC @ =gSharedMem + 0x18068
mov r10, r0
ldr r1, _080C32D4 @ =gDisplayedStringBattle
bl sub_80034D4
@@ -2303,7 +2302,7 @@ _080C32CC: .4byte 0x040000d4
_080C32D0: .4byte 0x85000100
_080C32D4: .4byte gDisplayedStringBattle
_080C32D8: .4byte gUnknown_083D17E2
-_080C32DC: .4byte 0x02018068
+_080C32DC: .4byte gSharedMem + 0x18068
_080C32E0: .4byte gUnknown_083D1624
_080C32E4: .4byte REG_BG0CNT
_080C32E8: .4byte 0x06010100
@@ -2501,7 +2500,7 @@ _080C340A:
adds r0, r2
ldrb r1, [r5, 0x7]
strh r1, [r0, 0x32]
- ldr r1, _080C34A8 @ =0x02018000
+ ldr r1, _080C34A8 @ =gSharedMem + 0x18000
ldrb r0, [r5]
strb r0, [r1]
strb r3, [r1, 0x4]
@@ -2517,7 +2516,7 @@ _080C3498: .4byte gSpriteTemplate_83D174C
_080C349C: .4byte gUnknown_083D1764
_080C34A0: .4byte gUnknown_083D17A4
_080C34A4: .4byte gSprites
-_080C34A8: .4byte 0x02018000
+_080C34A8: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C33DC
thumb_func_start sub_80C34AC
@@ -2543,7 +2542,7 @@ sub_80C34CC: @ 80C34CC
push {r4-r6,lr}
mov r6, r8
push {r6}
- ldr r4, _080C3514 @ =0x02018000
+ ldr r4, _080C3514 @ =gSharedMem + 0x18000
mov r8, r4
ldrb r5, [r4]
lsls r4, r5, 4
@@ -2576,7 +2575,7 @@ sub_80C34CC: @ 80C34CC
pop {r0}
bx r0
.align 2, 0
-_080C3514: .4byte 0x02018000
+_080C3514: .4byte gSharedMem + 0x18000
_080C3518: .4byte gSprites
_080C351C: .4byte sub_80C3588
thumb_func_end sub_80C34CC
@@ -2584,7 +2583,7 @@ _080C351C: .4byte sub_80C3588
thumb_func_start sub_80C3520
sub_80C3520: @ 80C3520
push {r4,r5,lr}
- ldr r4, _080C3558 @ =0x02018000
+ ldr r4, _080C3558 @ =gSharedMem + 0x18000
ldrb r2, [r4]
lsls r1, r2, 4
adds r1, r2
@@ -2612,7 +2611,7 @@ sub_80C3520: @ 80C3520
pop {r0}
bx r0
.align 2, 0
-_080C3558: .4byte 0x02018000
+_080C3558: .4byte gSharedMem + 0x18000
_080C355C: .4byte gSprites
_080C3560: .4byte sub_80C3630
thumb_func_end sub_80C3520
@@ -2630,12 +2629,12 @@ sub_80C3564: @ 80C3564
strh r2, [r0, 0x24]
ldr r1, _080C3580 @ =SpriteCallbackDummy
str r1, [r0, 0x1C]
- ldr r0, _080C3584 @ =0x02018000
+ ldr r0, _080C3584 @ =gSharedMem + 0x18000
strb r3, [r0, 0x4]
bx lr
.align 2, 0
_080C3580: .4byte SpriteCallbackDummy
-_080C3584: .4byte 0x02018000
+_080C3584: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C3564
thumb_func_start sub_80C3588
@@ -2705,7 +2704,7 @@ _080C35F8: .4byte sub_80C35FC
sub_80C35FC: @ 80C35FC
push {lr}
adds r2, r0, 0
- ldr r0, _080C3628 @ =0x02018000
+ ldr r0, _080C3628 @ =gSharedMem + 0x18000
movs r1, 0x2
strb r1, [r0, 0x4]
ldrh r3, [r2, 0x38]
@@ -2726,7 +2725,7 @@ _080C3624:
pop {r0}
bx r0
.align 2, 0
-_080C3628: .4byte 0x02018000
+_080C3628: .4byte gSharedMem + 0x18000
_080C362C: .4byte 0xffff0000
thumb_func_end sub_80C35FC
@@ -2790,7 +2789,7 @@ _080C3694: .4byte gSprites
sub_80C3698: @ 80C3698
push {r4-r7,lr}
adds r4, r0, 0
- ldr r5, _080C374C @ =0x02018000
+ ldr r5, _080C374C @ =gSharedMem + 0x18000
ldrb r1, [r5, 0x1]
bl sub_80C3158
adds r0, r4, 0
@@ -2877,7 +2876,7 @@ _080C36DA:
pop {r0}
bx r0
.align 2, 0
-_080C374C: .4byte 0x02018000
+_080C374C: .4byte gSharedMem + 0x18000
_080C3750: .4byte gSprites
_080C3754: .4byte gUnknown_030042C4
_080C3758: .4byte gUnknown_03004240
@@ -2888,7 +2887,7 @@ _080C3760: .4byte 0x00003f3e
thumb_func_start sub_80C3764
sub_80C3764: @ 80C3764
push {r4-r7,lr}
- ldr r0, _080C37C8 @ =0x02018000
+ ldr r0, _080C37C8 @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x1]
lsls r2, r0, 4
adds r2, r0
@@ -2939,7 +2938,7 @@ _080C3790:
pop {r0}
bx r0
.align 2, 0
-_080C37C8: .4byte 0x02018000
+_080C37C8: .4byte gSharedMem + 0x18000
_080C37CC: .4byte gSprites
_080C37D0: .4byte gUnknown_030042C4
_080C37D4: .4byte gUnknown_03004240
@@ -2979,7 +2978,7 @@ _de_080C39DC: .4byte gIsLinkContest
_de_080C39E0: .4byte 0x0600e000
_de_080C39E4: .4byte gUnknown_08E964B8
_de_080C39E8:
- ldr r0, _de_080C3A08 @ =gScriptContestRank
+ ldr r0, _de_080C3A08 @ =gSpecialVar_ContestRank
ldrh r0, [r0]
cmp r0, 0
bne _de_080C3A14
@@ -2995,7 +2994,7 @@ _de_080C39E8:
str r2, [sp, 0xC]
b _de_080C3A6C
.align 2, 0
-_de_080C3A08: .4byte gScriptContestRank
+_de_080C3A08: .4byte gSpecialVar_ContestRank
_de_080C3A0C: .4byte 0x0600e000
_de_080C3A10: .4byte gUnknown_08E964B8
_de_080C3A14:
@@ -3062,7 +3061,7 @@ de_sub_80C3A84: @ 80C3A84
push {r4,lr}
sub sp, 0x10
adds r2, r0, 0
- ldr r0, _de_080C3AAC @ =gScriptContestCategory
+ ldr r0, _de_080C3AAC @ =gSpecialVar_ContestCategory
ldrh r4, [r0]
cmp r4, 0
bne _de_080C3AB8
@@ -3080,7 +3079,7 @@ de_sub_80C3A84: @ 80C3A84
str r4, [sp, 0xC]
b _de_080C3AD6
.align 2, 0
-_de_080C3AAC: .4byte gScriptContestCategory
+_de_080C3AAC: .4byte gSpecialVar_ContestCategory
_de_080C3AB0: .4byte 0x0600e000
_de_080C3AB4: .4byte gUnknown_08E964B8
_de_080C3AB8:
@@ -3413,7 +3412,7 @@ _080C3A94:
adds r0, r1
adds r2, 0x11
strh r2, [r0]
- ldr r1, _080C3B2C @ =0x02018000
+ ldr r1, _080C3B2C @ =gSharedMem + 0x18000
ldrb r0, [r1, 0x5]
adds r0, 0x1
strb r0, [r1, 0x5]
@@ -3431,7 +3430,7 @@ _080C3B1C: .4byte 0x0600e142
_080C3B20: .4byte 0x0600e144
_080C3B24: .4byte 0x0600e182
_080C3B28: .4byte 0x0600e184
-_080C3B2C: .4byte 0x02018000
+_080C3B2C: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C3A5C
thumb_func_start sub_80C3B30
@@ -3503,7 +3502,7 @@ _080C3B82:
ldr r2, _080C3BD0 @ =sub_80C3BD8
str r2, [r0]
mov r1, r12
- ldr r0, _080C3BD4 @ =0x02018000
+ ldr r0, _080C3BD4 @ =gSharedMem + 0x18000
strb r1, [r0, 0x3]
pop {r3-r5}
mov r8, r3
@@ -3518,7 +3517,7 @@ _080C3BC4: .4byte gTasks
_080C3BC8: .4byte 0x00000fff
_080C3BCC: .4byte 0x0600e100
_080C3BD0: .4byte sub_80C3BD8
-_080C3BD4: .4byte 0x02018000
+_080C3BD4: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C3B30
thumb_func_start sub_80C3BD8
@@ -3628,7 +3627,7 @@ _080C3C92:
str r0, [r4, 0x1C]
movs r0, 0
strh r0, [r4, 0x30]
- ldr r1, _080C3CB4 @ =0x02018000
+ ldr r1, _080C3CB4 @ =gSharedMem + 0x18000
movs r0, 0x1
strb r0, [r1, 0x6]
_080C3CA8:
@@ -3637,7 +3636,7 @@ _080C3CA8:
bx r0
.align 2, 0
_080C3CB0: .4byte SpriteCallbackDummy
-_080C3CB4: .4byte 0x02018000
+_080C3CB4: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C3C44
thumb_func_start sub_80C3CB8
@@ -3671,7 +3670,7 @@ sub_80C3CB8: @ 80C3CB8
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r1, _080C3D00 @ =0x02018000
+ ldr r1, _080C3D00 @ =gSharedMem + 0x18000
movs r0, 0x2
strb r0, [r1, 0x6]
_080C3CF8:
@@ -3679,7 +3678,7 @@ _080C3CF8:
bx r0
.align 2, 0
_080C3CFC: .4byte SpriteCallbackDummy
-_080C3D00: .4byte 0x02018000
+_080C3D00: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C3CB8
thumb_func_start sub_80C3D04
@@ -3703,7 +3702,7 @@ sub_80C3D04: @ 80C3D04
bne _080C3DBE
movs r0, 0
strh r0, [r1, 0x8]
- ldr r0, _080C3DDC @ =0x02018000
+ ldr r0, _080C3DDC @ =gSharedMem + 0x18000
mov r8, r0
ldrb r0, [r0, 0x7]
cmp r0, 0x27
@@ -3769,7 +3768,7 @@ sub_80C3D04: @ 80C3D04
adds r0, 0x1
strb r0, [r1, 0x7]
_080C3DBE:
- ldr r0, _080C3DDC @ =0x02018000
+ ldr r0, _080C3DDC @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x9]
cmp r0, 0
beq _080C3DCC
@@ -3783,7 +3782,7 @@ _080C3DCC:
bx r0
.align 2, 0
_080C3DD8: .4byte gTasks
-_080C3DDC: .4byte 0x02018000
+_080C3DDC: .4byte gSharedMem + 0x18000
_080C3DE0: .4byte gSpriteTemplate_83D17B4
_080C3DE4: .4byte gSprites
_080C3DE8: .4byte 0x000003ff
@@ -3818,7 +3817,7 @@ sub_80C3DF0: @ 80C3DF0
ldrh r0, [r4, 0x22]
adds r0, 0x1
strh r0, [r4, 0x22]
- ldr r5, _080C3E5C @ =0x02018000
+ ldr r5, _080C3E5C @ =gSharedMem + 0x18000
ldrb r0, [r5, 0x9]
cmp r0, 0
beq _080C3E3A
@@ -3848,7 +3847,7 @@ _080C3E56:
pop {r0}
bx r0
.align 2, 0
-_080C3E5C: .4byte 0x02018000
+_080C3E5C: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C3DF0
thumb_func_start sub_80C3E60
@@ -4020,7 +4019,7 @@ _080C3F8A:
ble _080C3F9C
adds r4, 0xA
_080C3F9C:
- ldr r0, _080C40A0 @ =0x02018018
+ ldr r0, _080C40A0 @ =gSharedMem + 0x18018
mov r1, r10
adds r5, r1, r0
adds r0, r4, 0
@@ -4149,7 +4148,7 @@ _080C4080:
.align 2, 0
_080C4098: .4byte gUnknown_02038678
_080C409C: .4byte gUnknown_02038670
-_080C40A0: .4byte 0x02018018
+_080C40A0: .4byte gSharedMem + 0x18018
_080C40A4: .4byte gUnknown_02038688
_080C40A8: .4byte gUnknown_02038690
_080C40AC:
@@ -4194,7 +4193,7 @@ sub_80C40D4: @ 80C40D4
cmp r0, 0
bne _080C4198
mov r8, r2
- ldr r0, _080C417C @ =0x02018018
+ ldr r0, _080C417C @ =gSharedMem + 0x18018
subs r1, 0x18
adds r1, r0
mov r9, r1
@@ -4263,7 +4262,7 @@ _080C416A:
ble _080C4102
b _080C4292
.align 2, 0
-_080C417C: .4byte 0x02018018
+_080C417C: .4byte gSharedMem + 0x18018
_080C4180: .4byte 0x0600bffe
_080C4184: .4byte 0x000060b3
_080C4188: .4byte sub_80C42C0
@@ -4273,7 +4272,7 @@ _080C4194: .4byte gTasks
_080C4198:
movs r2, 0
mov r8, r2
- ldr r0, _080C4220 @ =0x02018018
+ ldr r0, _080C4220 @ =gSharedMem + 0x18018
mov r12, r0
mov r9, r2
movs r1, 0xC0
@@ -4341,7 +4340,7 @@ _080C41FA:
str r0, [sp]
b _080C4246
.align 2, 0
-_080C4220: .4byte 0x02018018
+_080C4220: .4byte gSharedMem + 0x18018
_080C4224: .4byte 0x000060a3
_080C4228: .4byte 0x0600bffe
_080C422C: .4byte sub_80C42C0
@@ -4355,7 +4354,7 @@ _080C423C:
lsrs r0, 24
mov r10, r0
_080C4246:
- ldr r0, _080C4264 @ =0x02018018
+ ldr r0, _080C4264 @ =gSharedMem + 0x18018
mov r1, r9
adds r4, r1, r0
ldrb r1, [r4, 0x10]
@@ -4370,7 +4369,7 @@ _080C4246:
subs r1, r2
b _080C4274
.align 2, 0
-_080C4264: .4byte 0x02018018
+_080C4264: .4byte gSharedMem + 0x18018
_080C4268:
adds r0, r2, r5
lsls r0, 3
@@ -4380,7 +4379,7 @@ _080C4268:
adds r1, r2
_080C4274:
strh r1, [r0, 0xA]
- ldr r1, _080C42BC @ =0x02018000
+ ldr r1, _080C42BC @ =gSharedMem + 0x18000
ldrb r0, [r1, 0x14]
adds r0, 0x1
strb r0, [r1, 0x14]
@@ -4417,7 +4416,7 @@ _080C42AA:
pop {r0}
bx r0
.align 2, 0
-_080C42BC: .4byte 0x02018000
+_080C42BC: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C40D4
thumb_func_start sub_80C42C0
@@ -4445,7 +4444,7 @@ sub_80C42C0: @ 80C42C0
ldrsh r0, [r0, r2]
cmp r0, 0
beq _080C4310
- ldr r1, _080C430C @ =0x02018000
+ ldr r1, _080C430C @ =gSharedMem + 0x18000
lsls r2, r5, 1
adds r0, r1, 0
adds r0, 0xC
@@ -4459,9 +4458,9 @@ sub_80C42C0: @ 80C42C0
b _080C4326
.align 2, 0
_080C4308: .4byte gTasks
-_080C430C: .4byte 0x02018000
+_080C430C: .4byte gSharedMem + 0x18000
_080C4310:
- ldr r1, _080C4350 @ =0x02018000
+ ldr r1, _080C4350 @ =gSharedMem + 0x18000
lsls r2, r5, 1
adds r0, r1, 0
adds r0, 0xC
@@ -4496,7 +4495,7 @@ _080C4340:
strh r7, [r3]
b _080C4362
.align 2, 0
-_080C4350: .4byte 0x02018000
+_080C4350: .4byte gSharedMem + 0x18000
_080C4354:
mov r1, r8
cmp r1, 0
@@ -4514,7 +4513,7 @@ _080C4362:
cmp r2, 0
bne _080C43CE
movs r2, 0
- ldr r0, _080C4388 @ =0x0201800c
+ ldr r0, _080C4388 @ =gSharedMem + 0x1800C
adds r6, r4, r0
adds r0, r4, r5
lsls r5, r0, 5
@@ -4529,7 +4528,7 @@ _080C4376:
movs r0, 0x8
b _080C43A8
.align 2, 0
-_080C4388: .4byte 0x0201800c
+_080C4388: .4byte gSharedMem + 0x1800C
_080C438C:
lsls r0, r2, 3
cmp r3, r0
@@ -4605,15 +4604,15 @@ sub_80C43F4: @ 80C43F4
adds r5, r0, 0
cmp r5, 0
beq _080C4422
- ldr r4, _080C4434 @ =gScriptContestCategory
+ ldr r4, _080C4434 @ =gSpecialVar_ContestCategory
ldrb r0, [r4]
- ldr r1, _080C4438 @ =gScriptContestRank
+ ldr r1, _080C4438 @ =gSpecialVar_ContestRank
ldrb r1, [r1]
bl sub_80AE398
ldrb r0, [r4]
bl sub_80AE82C
_080C4422:
- ldr r0, _080C443C @ =gScriptResult
+ ldr r0, _080C443C @ =gSpecialVar_Result
strh r5, [r0]
pop {r4,r5}
pop {r0}
@@ -4621,9 +4620,9 @@ _080C4422:
.align 2, 0
_080C442C: .4byte gUnknown_02038694
_080C4430: .4byte gPlayerParty
-_080C4434: .4byte gScriptContestCategory
-_080C4438: .4byte gScriptContestRank
-_080C443C: .4byte gScriptResult
+_080C4434: .4byte gSpecialVar_ContestCategory
+_080C4438: .4byte gSpecialVar_ContestRank
+_080C443C: .4byte gSpecialVar_Result
thumb_func_end sub_80C43F4
thumb_func_start sub_80C4440
@@ -4636,7 +4635,7 @@ sub_80C4440: @ 80C4440
muls r1, r0
ldr r0, _080C4468 @ =gPlayerParty
adds r2, r1, r0
- ldr r0, _080C446C @ =gScriptContestCategory
+ ldr r0, _080C446C @ =gSpecialVar_ContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bhi _080C44B2
@@ -4648,7 +4647,7 @@ sub_80C4440: @ 80C4440
.align 2, 0
_080C4464: .4byte gUnknown_02038694
_080C4468: .4byte gPlayerParty
-_080C446C: .4byte gScriptContestCategory
+_080C446C: .4byte gSpecialVar_ContestCategory
_080C4470: .4byte _080C4474
.align 2, 0
_080C4474:
@@ -4678,7 +4677,7 @@ _080C44A0:
movs r1, 0x36
_080C44A4:
bl GetMonData
- ldr r1, _080C44BC @ =gScriptContestRank
+ ldr r1, _080C44BC @ =gSpecialVar_ContestRank
ldrh r1, [r1]
cmp r0, r1
bls _080C44B2
@@ -4689,7 +4688,7 @@ _080C44B2:
pop {r1}
bx r1
.align 2, 0
-_080C44BC: .4byte gScriptContestRank
+_080C44BC: .4byte gSpecialVar_ContestRank
thumb_func_end sub_80C4440
thumb_func_start sub_80C44C0
@@ -4705,7 +4704,7 @@ sub_80C44C0: @ 80C44C0
beq _080C44D4
b _080C465E
_080C44D4:
- ldr r0, _080C44F0 @ =gScriptContestCategory
+ ldr r0, _080C44F0 @ =gSpecialVar_ContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bls _080C44DE
@@ -4719,7 +4718,7 @@ _080C44DE:
.align 2, 0
_080C44E8: .4byte gUnknown_02038690
_080C44EC: .4byte gContestPlayerMonIndex
-_080C44F0: .4byte gScriptContestCategory
+_080C44F0: .4byte gSpecialVar_ContestCategory
_080C44F4: .4byte _080C44F8
.align 2, 0
_080C44F8:
@@ -4741,7 +4740,7 @@ _080C450C:
lsrs r1, r0, 24
mov r0, sp
strb r1, [r0]
- ldr r0, _080C4550 @ =gScriptContestRank
+ ldr r0, _080C4550 @ =gSpecialVar_ContestRank
ldrh r0, [r0]
cmp r1, r0
bls _080C4530
@@ -4763,7 +4762,7 @@ _080C4538:
.align 2, 0
_080C4548: .4byte gUnknown_02038694
_080C454C: .4byte gPlayerParty
-_080C4550: .4byte gScriptContestRank
+_080C4550: .4byte gSpecialVar_ContestRank
_080C4554:
mov r4, sp
ldr r7, _080C458C @ =gUnknown_02038694
@@ -4777,7 +4776,7 @@ _080C4554:
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
- ldr r0, _080C4594 @ =gScriptContestRank
+ ldr r0, _080C4594 @ =gSpecialVar_ContestRank
ldrh r0, [r0]
cmp r2, r0
bhi _080C465E
@@ -4794,7 +4793,7 @@ _080C4554:
.align 2, 0
_080C458C: .4byte gUnknown_02038694
_080C4590: .4byte gPlayerParty
-_080C4594: .4byte gScriptContestRank
+_080C4594: .4byte gSpecialVar_ContestRank
_080C4598:
mov r4, sp
ldr r7, _080C45D0 @ =gUnknown_02038694
@@ -4808,7 +4807,7 @@ _080C4598:
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
- ldr r0, _080C45D8 @ =gScriptContestRank
+ ldr r0, _080C45D8 @ =gSpecialVar_ContestRank
ldrh r0, [r0]
cmp r2, r0
bhi _080C465E
@@ -4825,7 +4824,7 @@ _080C4598:
.align 2, 0
_080C45D0: .4byte gUnknown_02038694
_080C45D4: .4byte gPlayerParty
-_080C45D8: .4byte gScriptContestRank
+_080C45D8: .4byte gSpecialVar_ContestRank
_080C45DC:
mov r4, sp
ldr r7, _080C4618 @ =gUnknown_02038694
@@ -4839,7 +4838,7 @@ _080C45DC:
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
- ldr r0, _080C4620 @ =gScriptContestRank
+ ldr r0, _080C4620 @ =gSpecialVar_ContestRank
ldrh r0, [r0]
cmp r2, r0
bhi _080C465E
@@ -4859,7 +4858,7 @@ _080C4610:
.align 2, 0
_080C4618: .4byte gUnknown_02038694
_080C461C: .4byte gPlayerParty
-_080C4620: .4byte gScriptContestRank
+_080C4620: .4byte gSpecialVar_ContestRank
_080C4624:
mov r4, sp
ldr r7, _080C4668 @ =gUnknown_02038694
@@ -4873,7 +4872,7 @@ _080C4624:
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
- ldr r0, _080C4670 @ =gScriptContestRank
+ ldr r0, _080C4670 @ =gSpecialVar_ContestRank
ldrh r0, [r0]
cmp r2, r0
bhi _080C465E
@@ -4896,7 +4895,7 @@ _080C465E:
.align 2, 0
_080C4668: .4byte gUnknown_02038694
_080C466C: .4byte gPlayerParty
-_080C4670: .4byte gScriptContestRank
+_080C4670: .4byte gSpecialVar_ContestRank
thumb_func_end sub_80C44C0
thumb_func_start sub_80C4674
@@ -5492,7 +5491,7 @@ _080C4AB8:
bl sub_80C4B34
ldr r1, _080C4AFC @ =gUnknown_0203869B
strb r0, [r1]
- ldr r0, _080C4B00 @ =gScriptContestCategory
+ ldr r0, _080C4B00 @ =gSpecialVar_ContestCategory
ldrb r0, [r0]
bl sub_80AE82C
ldr r1, _080C4B04 @ =sub_80C8EBC
@@ -5508,7 +5507,7 @@ _080C4AB8:
.align 2, 0
_080C4AF8: .4byte gTasks + 0x8
_080C4AFC: .4byte gUnknown_0203869B
-_080C4B00: .4byte gScriptContestCategory
+_080C4B00: .4byte gSpecialVar_ContestCategory
_080C4B04: .4byte sub_80C8EBC
_080C4B08: .4byte sub_80C4B0C
thumb_func_end sub_80C4A44
diff --git a/asm-de/contest_link_80C857C.s b/asm-de/contest_link_80C857C.s
index f898f177f..cf1ef216d 100644
--- a/asm-de/contest_link_80C857C.s
+++ b/asm-de/contest_link_80C857C.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -12,7 +11,7 @@ sub_80C857C: @ 80C857C
adds r2, r0, 0
lsls r4, r1, 16
lsrs r4, 16
- ldr r5, _080C85A8 @ =0x0201e000
+ ldr r5, _080C85A8 @ =gSharedMem + 0x1E000
adds r0, r5, 0
adds r1, r2, 0
adds r2, r4, 0
@@ -27,7 +26,7 @@ sub_80C857C: @ 80C857C
pop {r0}
bx r0
.align 2, 0
-_080C85A8: .4byte 0x0201e000
+_080C85A8: .4byte gSharedMem + 0x1E000
thumb_func_end sub_80C857C
thumb_func_start sub_80C85AC
@@ -352,7 +351,7 @@ _080C881C:
mov r0, r10
movs r2, 0x40
bl memcpy
- ldr r1, _080C8858 @ =0x02038572
+ ldr r1, _080C8858 @ =gContestMons + 0x2
adds r4, r6, r1
ldrh r0, [r7, 0x1A]
cmp r0, 0x1
@@ -369,7 +368,7 @@ _080C881C:
_080C884C: .4byte gContestMons
_080C8850: .4byte gLinkPlayers
_080C8854: .4byte gBlockRecvBuffer
-_080C8858: .4byte 0x02038572
+_080C8858: .4byte gContestMons + 0x2
_080C885C:
ldrb r0, [r4, 0xA]
cmp r0, 0xFC
@@ -729,7 +728,7 @@ _080C8A64:
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
- ldr r1, _080C8A90 @ =0x02019266
+ ldr r1, _080C8A90 @ =gSharedMem + 0x19266
adds r0, r1
movs r1, 0x2
bl sub_80C857C
@@ -739,14 +738,14 @@ _080C8A64:
b _080C8AC2
.align 2, 0
_080C8A8C: .4byte gContestPlayerMonIndex
-_080C8A90: .4byte 0x02019266
+_080C8A90: .4byte gSharedMem + 0x19266
_080C8A94:
bl sub_80C85D8
lsls r0, 24
cmp r0, 0
beq _080C8AC2
ldr r1, _080C8AC8 @ =gBlockRecvBuffer
- ldr r3, _080C8ACC @ =0x02019266
+ ldr r3, _080C8ACC @ =gSharedMem + 0x19266
movs r4, 0x80
lsls r4, 1
movs r2, 0x3
@@ -770,7 +769,7 @@ _080C8AC2:
bx r0
.align 2, 0
_080C8AC8: .4byte gBlockRecvBuffer
-_080C8ACC: .4byte 0x02019266
+_080C8ACC: .4byte gSharedMem + 0x19266
thumb_func_end sub_80C8A38
thumb_func_start sub_80C8AD0
@@ -1017,12 +1016,12 @@ _080C8CE0:
bne _080C8CEC
b _080C8E16
_080C8CEC:
- ldr r0, _080C8CF8 @ =0x02019260
+ ldr r0, _080C8CF8 @ =gSharedMem + 0x19260
movs r1, 0x70
bl sub_80C857C
b _080C8DE8
.align 2, 0
-_080C8CF8: .4byte 0x02019260
+_080C8CF8: .4byte gSharedMem + 0x19260
_080C8CFC:
bl sub_80C85D8
lsls r0, 24
@@ -1030,7 +1029,7 @@ _080C8CFC:
bne _080C8D08
b _080C8E16
_080C8D08:
- ldr r0, _080C8D18 @ =0x02019260
+ ldr r0, _080C8D18 @ =gSharedMem + 0x19260
ldr r1, _080C8D1C @ =gUnknown_0203869B
ldrb r1, [r1]
lsls r1, 8
@@ -1039,7 +1038,7 @@ _080C8D08:
movs r2, 0x70
b _080C8DE4
.align 2, 0
-_080C8D18: .4byte 0x02019260
+_080C8D18: .4byte gSharedMem + 0x19260
_080C8D1C: .4byte gUnknown_0203869B
_080C8D20: .4byte gBlockRecvBuffer
_080C8D24:
@@ -1065,18 +1064,18 @@ _080C8D46:
lsls r0, 24
cmp r0, 0
beq _080C8E16
- ldr r0, _080C8D5C @ =0x020192d0
+ ldr r0, _080C8D5C @ =gSharedMem + 0x192D0
movs r1, 0x14
bl sub_80C857C
b _080C8DE8
.align 2, 0
-_080C8D5C: .4byte 0x020192d0
+_080C8D5C: .4byte gSharedMem + 0x192D0
_080C8D60:
bl sub_80C85D8
lsls r0, 24
cmp r0, 0
beq _080C8E16
- ldr r0, _080C8D7C @ =0x020192d0
+ ldr r0, _080C8D7C @ =gSharedMem + 0x192D0
ldr r1, _080C8D80 @ =gUnknown_0203869B
ldrb r1, [r1]
lsls r1, 8
@@ -1085,7 +1084,7 @@ _080C8D60:
movs r2, 0x14
b _080C8DE4
.align 2, 0
-_080C8D7C: .4byte 0x020192d0
+_080C8D7C: .4byte gSharedMem + 0x192D0
_080C8D80: .4byte gUnknown_0203869B
_080C8D84: .4byte gBlockRecvBuffer
_080C8D88:
@@ -1093,21 +1092,21 @@ _080C8D88:
lsls r0, 24
cmp r0, 0
beq _080C8E16
- ldr r0, _080C8D9C @ =0x02019328
+ ldr r0, _080C8D9C @ =gSharedMem + 0x19328
movs r1, 0x4
bl sub_80C857C
b _080C8DE8
.align 2, 0
-_080C8D9C: .4byte 0x02019328
+_080C8D9C: .4byte gSharedMem + 0x19328
_080C8DA0:
bl sub_80C85D8
lsls r0, 24
cmp r0, 0
beq _080C8E16
- ldr r0, _080C8DB0 @ =0x02019328
+ ldr r0, _080C8DB0 @ =gSharedMem + 0x19328
b _080C8DD8
.align 2, 0
-_080C8DB0: .4byte 0x02019328
+_080C8DB0: .4byte gSharedMem + 0x19328
_080C8DB4:
bl sub_8007ECC
lsls r0, 24
diff --git a/asm-de/easy_chat.s b/asm-de/easy_chat.s
index 1d93e36b4..89ea03b69 100644
--- a/asm-de/easy_chat.s
+++ b/asm-de/easy_chat.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -192,7 +191,7 @@ _080E6254: .4byte gSpecialVar_0x8005
_080E6258: .4byte gSaveBlock1 + 0x2750
_080E625C: .4byte sub_80546B8
_080E6260:
- ldr r1, _080E628C @ =0x02001000
+ ldr r1, _080E628C @ =gSharedMem + 0x1000
ldr r0, _080E6290 @ =0x00009fa8
adds r2, r1, r0
ldr r0, _080E6294 @ =0x0000ffff
@@ -216,7 +215,7 @@ _080E6284:
pop {r0}
bx r0
.align 2, 0
-_080E628C: .4byte 0x02001000
+_080E628C: .4byte gSharedMem + 0x1000
_080E6290: .4byte 0x00009fa8
_080E6294: .4byte 0x0000ffff
_080E6298: .4byte 0x00009faa
@@ -228,7 +227,7 @@ sub_80E62A0: @ 80E62A0
push {r4,lr}
lsls r0, 24
lsrs r0, 24
- ldr r4, _080E62DC @ =0x02001000
+ ldr r4, _080E62DC @ =gSharedMem + 0x1000
str r2, [r4]
str r1, [r4, 0x4]
strb r0, [r4, 0x8]
@@ -256,7 +255,7 @@ _080E62D0:
pop {r0}
bx r0
.align 2, 0
-_080E62DC: .4byte 0x02001000
+_080E62DC: .4byte gSharedMem + 0x1000
_080E62E0: .4byte 0x00009fa8
_080E62E4: .4byte gSaveBlock1
_080E62E8: .4byte 0x00002dd8
@@ -393,7 +392,7 @@ _080E6420: .4byte 0x0000043c
thumb_func_start sub_80E6424
sub_80E6424: @ 80E6424
push {lr}
- ldr r2, _080E6444 @ =0x02001000
+ ldr r2, _080E6444 @ =gSharedMem + 0x1000
ldr r0, _080E6448 @ =gUnknown_083DB6A4
ldrb r1, [r2, 0x8]
adds r1, r0
@@ -409,7 +408,7 @@ sub_80E6424: @ 80E6424
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E6444: .4byte 0x02001000
+_080E6444: .4byte gSharedMem + 0x1000
_080E6448: .4byte gUnknown_083DB6A4
_080E644C: .4byte _080E6450
.align 2, 0
@@ -550,11 +549,11 @@ sub_80E6554: @ 80E6554
sub sp, 0x4
movs r4, 0
movs r7, 0
- ldr r0, _080E6564 @ =0x02001000
+ ldr r0, _080E6564 @ =gSharedMem + 0x1000
mov r12, r0
b _080E656E
.align 2, 0
-_080E6564: .4byte 0x02001000
+_080E6564: .4byte gSharedMem + 0x1000
_080E6568:
adds r0, r7, 0x1
lsls r0, 16
@@ -640,7 +639,7 @@ _080E65FC:
subs r0, 0x11
adds r0, r2
strb r1, [r0]
- ldr r0, _080E662C @ =0x02001000
+ ldr r0, _080E662C @ =gSharedMem + 0x1000
mov r12, r0
_080E6608:
adds r0, r4, 0x1
@@ -662,7 +661,7 @@ _080E6612:
pop {r0}
bx r0
.align 2, 0
-_080E662C: .4byte 0x02001000
+_080E662C: .4byte gSharedMem + 0x1000
thumb_func_end sub_80E6554
thumb_func_start sub_80E6630
@@ -683,7 +682,7 @@ _080E6638:
lsls r0, r1, 3
subs r0, r1
lsls r4, r0, 1
- ldr r6, _080E6668 @ =0x02001040
+ ldr r6, _080E6668 @ =gSharedMem + 0x1040
_080E6650:
adds r0, r5, r3
ldrb r1, [r0]
@@ -697,7 +696,7 @@ _080E6650:
b _080E6672
.align 2, 0
_080E6664: .4byte gUnknown_083DB6B2
-_080E6668: .4byte 0x02001040
+_080E6668: .4byte gSharedMem + 0x1040
_080E666C:
adds r0, r3, r4
adds r0, r6
@@ -733,7 +732,7 @@ sub_80E6690: @ 80E6690
movs r5, 0
ldr r6, _080E66E4 @ =gUnknown_083DB7C0
_080E66A4:
- ldr r0, _080E66E8 @ =0x02001000
+ ldr r0, _080E66E8 @ =gSharedMem + 0x1000
ldrb r0, [r0, 0x8]
lsls r0, 1
adds r0, r5, r0
@@ -764,7 +763,7 @@ _080E66A4:
.align 2, 0
_080E66E0: .4byte gUnknown_083DB7DC
_080E66E4: .4byte gUnknown_083DB7C0
-_080E66E8: .4byte 0x02001000
+_080E66E8: .4byte gSharedMem + 0x1000
_080E66EC: .4byte gUnknown_083DB6F4
_080E66F0:
strb r0, [r3]
@@ -786,7 +785,7 @@ _080E670A:
cmp r5, 0x1
bls _080E66A4
movs r5, 0
- ldr r3, _080E6758 @ =0x02001000
+ ldr r3, _080E6758 @ =gSharedMem + 0x1000
ldr r0, _080E675C @ =0x0000a0d0
adds r2, r3, r0
movs r1, 0
@@ -820,7 +819,7 @@ _080E671E:
pop {r0}
bx r0
.align 2, 0
-_080E6758: .4byte 0x02001000
+_080E6758: .4byte gSharedMem + 0x1000
_080E675C: .4byte 0x0000a0d0
_080E6760: .4byte 0x0000a29a
thumb_func_end sub_80E6690
@@ -930,19 +929,19 @@ _080E6828: .4byte gSaveBlock1 + 0x2D8C
thumb_func_start sub_80E682C
sub_80E682C: @ 80E682C
- ldr r1, _080E6838 @ =0x02001000
+ ldr r1, _080E6838 @ =gSharedMem + 0x1000
str r0, [r1, 0x20]
movs r0, 0
strh r0, [r1, 0x24]
bx lr
.align 2, 0
-_080E6838: .4byte 0x02001000
+_080E6838: .4byte gSharedMem + 0x1000
thumb_func_end sub_80E682C
thumb_func_start sub_80E683C
sub_80E683C: @ 80E683C
push {r4,r5,lr}
- ldr r1, _080E6890 @ =0x02001000
+ ldr r1, _080E6890 @ =gSharedMem + 0x1000
adds r0, r1, 0
adds r0, 0x26
ldrb r0, [r0]
@@ -985,7 +984,7 @@ _080E6876:
strb r0, [r3]
b _080E68B8
.align 2, 0
-_080E6890: .4byte 0x02001000
+_080E6890: .4byte gSharedMem + 0x1000
_080E6894: .4byte 0x000001a9
_080E6898:
movs r3, 0xD5
@@ -1032,7 +1031,7 @@ _080E68E4: .4byte 0x000001a9
sub_80E68E8: @ 80E68E8
push {r4-r6,lr}
bl sub_80EB0B0
- ldr r3, _080E694C @ =0x02001000
+ ldr r3, _080E694C @ =gSharedMem + 0x1000
adds r0, r3, 0
adds r0, 0x26
ldrb r0, [r0]
@@ -1082,7 +1081,7 @@ _080E693A:
ldr r3, _080E6950 @ =0x000044a2
b _080E69AC
.align 2, 0
-_080E694C: .4byte 0x02001000
+_080E694C: .4byte gSharedMem + 0x1000
_080E6950: .4byte 0x000044a2
_080E6954: .4byte 0x00009d54
_080E6958: .4byte 0x00009cd2
@@ -1167,7 +1166,7 @@ _080E69F4: .4byte 0x00009d55
thumb_func_start sub_80E69F8
sub_80E69F8: @ 80E69F8
push {r4,lr}
- ldr r0, _080E6A10 @ =0x02001000
+ ldr r0, _080E6A10 @ =gSharedMem + 0x1000
ldrb r1, [r0, 0x8]
adds r4, r0, 0
cmp r1, 0xD
@@ -1178,7 +1177,7 @@ sub_80E69F8: @ 80E69F8
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E6A10: .4byte 0x02001000
+_080E6A10: .4byte gSharedMem + 0x1000
_080E6A14: .4byte _080E6A18
.align 2, 0
_080E6A18:
@@ -1227,7 +1226,7 @@ sub_80E6A6C: @ 80E6A6C
thumb_func_start sub_80E6A88
sub_80E6A88: @ 80E6A88
push {lr}
- ldr r0, _080E6AA4 @ =0x02001000
+ ldr r0, _080E6AA4 @ =gSharedMem + 0x1000
ldr r0, [r0, 0x20]
bl _call_via_r0
bl AnimateSprites
@@ -1236,7 +1235,7 @@ sub_80E6A88: @ 80E6A88
pop {r0}
bx r0
.align 2, 0
-_080E6AA4: .4byte 0x02001000
+_080E6AA4: .4byte gSharedMem + 0x1000
thumb_func_end sub_80E6A88
thumb_func_start sub_80E6AA8
@@ -1275,7 +1274,7 @@ _080E6AE0: .4byte sub_80E6AE4
sub_80E6AE4: @ 80E6AE4
push {r4,r5,lr}
bl sub_80E75D8
- ldr r4, _080E6B44 @ =0x02001000
+ ldr r4, _080E6B44 @ =gSharedMem + 0x1000
adds r1, r4, 0
adds r1, 0x87
strb r0, [r1]
@@ -1320,7 +1319,7 @@ _080E6AFE:
beq _080E6B52
b _080E6BA4
.align 2, 0
-_080E6B44: .4byte 0x02001000
+_080E6B44: .4byte gSharedMem + 0x1000
_080E6B48: .4byte gMain
_080E6B4C:
cmp r0, 0x2
@@ -1383,7 +1382,7 @@ _080E6BBC: .4byte sub_80E6C84
thumb_func_start sub_80E6BC0
sub_80E6BC0: @ 80E6BC0
push {r4,lr}
- ldr r4, _080E6BD4 @ =0x02001000
+ ldr r4, _080E6BD4 @ =gSharedMem + 0x1000
ldrh r0, [r4, 0x24]
cmp r0, 0x1
beq _080E6C12
@@ -1393,7 +1392,7 @@ sub_80E6BC0: @ 80E6BC0
beq _080E6BE2
b _080E6C76
.align 2, 0
-_080E6BD4: .4byte 0x02001000
+_080E6BD4: .4byte gSharedMem + 0x1000
_080E6BD8:
cmp r0, 0x2
beq _080E6C54
@@ -1448,13 +1447,13 @@ _080E6C3E:
strh r0, [r4, 0x24]
b _080E6C76
_080E6C46:
- ldr r1, _080E6C50 @ =0x02001000
+ ldr r1, _080E6C50 @ =gSharedMem + 0x1000
ldrh r0, [r1, 0x24]
adds r0, 0x1
strh r0, [r1, 0x24]
b _080E6C76
.align 2, 0
-_080E6C50: .4byte 0x02001000
+_080E6C50: .4byte gSharedMem + 0x1000
_080E6C54:
bl sub_80E81FC
ldr r0, _080E6C60 @ =sub_80E6AC4
@@ -1483,7 +1482,7 @@ _080E6C80: .4byte sub_80E6AC4
thumb_func_start sub_80E6C84
sub_80E6C84: @ 80E6C84
push {r4,lr}
- ldr r4, _080E6C98 @ =0x02001000
+ ldr r4, _080E6C98 @ =gSharedMem + 0x1000
ldrh r0, [r4, 0x24]
cmp r0, 0x1
beq _080E6CF4
@@ -1493,7 +1492,7 @@ sub_80E6C84: @ 80E6C84
beq _080E6CA6
b _080E6D72
.align 2, 0
-_080E6C98: .4byte 0x02001000
+_080E6C98: .4byte gSharedMem + 0x1000
_080E6C9C:
cmp r0, 0x2
beq _080E6D24
@@ -1531,12 +1530,12 @@ _080E6CA6:
cmp r0, 0xD
bne _080E6D1C
_080E6CE8:
- ldr r1, _080E6CF0 @ =0x02001000
+ ldr r1, _080E6CF0 @ =gSharedMem + 0x1000
movs r0, 0x2
strh r0, [r1, 0x24]
b _080E6D72
.align 2, 0
-_080E6CF0: .4byte 0x02001000
+_080E6CF0: .4byte gSharedMem + 0x1000
_080E6CF4:
bl ProcessMenuInputNoWrap_
lsls r0, 24
@@ -1579,21 +1578,21 @@ _080E6D3E:
beq _080E6D58
b _080E6D72
_080E6D44:
- ldr r0, _080E6D50 @ =gScriptResult
+ ldr r0, _080E6D50 @ =gSpecialVar_Result
strh r1, [r0]
ldr r0, _080E6D54 @ =sub_80E752C
bl sub_80E682C
b _080E6D72
.align 2, 0
-_080E6D50: .4byte gScriptResult
+_080E6D50: .4byte gSpecialVar_Result
_080E6D54: .4byte sub_80E752C
_080E6D58:
- ldr r1, _080E6D60 @ =0x02001000
+ ldr r1, _080E6D60 @ =gSharedMem + 0x1000
movs r0, 0xFF
strh r0, [r1, 0x24]
b _080E6D72
.align 2, 0
-_080E6D60: .4byte 0x02001000
+_080E6D60: .4byte gSharedMem + 0x1000
_080E6D64:
bl HandleDestroyMenuCursors
bl sub_80E81FC
@@ -1610,7 +1609,7 @@ _080E6D78: .4byte sub_80E6AC4
thumb_func_start sub_80E6D7C
sub_80E6D7C: @ 80E6D7C
push {r4-r7,lr}
- ldr r5, _080E6D98 @ =0x02001000
+ ldr r5, _080E6D98 @ =gSharedMem + 0x1000
ldrh r0, [r5, 0x24]
cmp r0, 0xA
bne _080E6D88
@@ -1624,7 +1623,7 @@ _080E6D88:
beq _080E6E3C
b _080E6F5E
.align 2, 0
-_080E6D98: .4byte 0x02001000
+_080E6D98: .4byte gSharedMem + 0x1000
_080E6D9C:
cmp r0, 0x65
bne _080E6DA2
@@ -1680,7 +1679,7 @@ _080E6DEE:
.align 2, 0
_080E6DF8: .4byte 0x0000ffff
_080E6DFC:
- ldr r0, _080E6E18 @ =0x02001000
+ ldr r0, _080E6E18 @ =gSharedMem + 0x1000
ldrb r0, [r0, 0x8]
cmp r0, 0x4
bne _080E6E20
@@ -1692,7 +1691,7 @@ _080E6DFC:
bl sub_80E682C
b _080E6F5E
.align 2, 0
-_080E6E18: .4byte 0x02001000
+_080E6E18: .4byte gSharedMem + 0x1000
_080E6E1C: .4byte sub_80E6C84
_080E6E20:
movs r0, 0x1
@@ -1723,7 +1722,7 @@ _080E6E56:
beq _080E6EDC
b _080E6F5E
_080E6E5C:
- ldr r7, _080E6EC8 @ =gScriptResult
+ ldr r7, _080E6EC8 @ =gSpecialVar_Result
bl sub_80E7FA8
lsls r0, 24
lsrs r0, 24
@@ -1775,7 +1774,7 @@ _080E6EBE:
bl sub_80E682C
b _080E6F5E
.align 2, 0
-_080E6EC8: .4byte gScriptResult
+_080E6EC8: .4byte gSpecialVar_Result
_080E6ECC: .4byte gSpecialVar_0x8004
_080E6ED0: .4byte 0x00009fa8
_080E6ED4: .4byte 0x0000ffff
@@ -1783,7 +1782,7 @@ _080E6ED8: .4byte sub_80E752C
_080E6EDC:
bl HandleDestroyMenuCursors
bl sub_80E81FC
- ldr r4, _080E6EFC @ =0x02001000
+ ldr r4, _080E6EFC @ =gSharedMem + 0x1000
ldrb r0, [r4, 0x8]
cmp r0, 0x6
bne _080E6F00
@@ -1795,7 +1794,7 @@ _080E6EDC:
strh r0, [r4, 0x24]
b _080E6F5E
.align 2, 0
-_080E6EFC: .4byte 0x02001000
+_080E6EFC: .4byte gSharedMem + 0x1000
_080E6F00:
bl sub_80E95A4
b _080E6F12
@@ -1827,14 +1826,14 @@ _080E6F30:
cmp r0, 0
beq _080E6F5E
_080E6F3C:
- ldr r1, _080E6F4C @ =0x02001000
+ 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 0x02001000
+_080E6F4C: .4byte gSharedMem + 0x1000
_080E6F50:
bl sub_80E7E50
bl sub_80E95A4
@@ -1851,7 +1850,7 @@ _080E6F64: .4byte sub_80E6AC4
thumb_func_start sub_80E6F68
sub_80E6F68: @ 80E6F68
push {r4,lr}
- ldr r4, _080E6F78 @ =0x02001000
+ ldr r4, _080E6F78 @ =gSharedMem + 0x1000
ldrh r0, [r4, 0x24]
cmp r0, 0
beq _080E6F7C
@@ -1859,7 +1858,7 @@ sub_80E6F68: @ 80E6F68
beq _080E6F9C
b _080E6FBC
.align 2, 0
-_080E6F78: .4byte 0x02001000
+_080E6F78: .4byte gSharedMem + 0x1000
_080E6F7C:
movs r0, 0x1
bl sub_80E8398
@@ -1897,7 +1896,7 @@ sub_80E6FC8: @ 80E6FC8
push {r4,lr}
bl sub_80E77C8
adds r1, r0, 0
- ldr r4, _080E7000 @ =0x02001000
+ ldr r4, _080E7000 @ =gSharedMem + 0x1000
adds r0, r4, 0
adds r0, 0x96
strb r1, [r0]
@@ -1920,7 +1919,7 @@ sub_80E6FC8: @ 80E6FC8
bl sub_80E682C
b _080E710A
.align 2, 0
-_080E7000: .4byte 0x02001000
+_080E7000: .4byte gSharedMem + 0x1000
_080E7004: .4byte sub_80E6FC8
_080E7008: .4byte sub_80E7458
_080E700C:
@@ -2055,7 +2054,7 @@ _080E7110: .4byte sub_80E718C
thumb_func_start sub_80E7114
sub_80E7114: @ 80E7114
push {lr}
- ldr r0, _080E712C @ =0x02001000
+ ldr r0, _080E712C @ =gSharedMem + 0x1000
ldrh r1, [r0, 0x24]
adds r2, r0, 0
cmp r1, 0x4
@@ -2066,7 +2065,7 @@ sub_80E7114: @ 80E7114
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E712C: .4byte 0x02001000
+_080E712C: .4byte gSharedMem + 0x1000
_080E7130: .4byte _080E7134
.align 2, 0
_080E7134:
@@ -2093,13 +2092,13 @@ _080E7164:
cmp r0, 0
beq _080E7182
_080E716E:
- ldr r1, _080E7178 @ =0x02001000
+ ldr r1, _080E7178 @ =gSharedMem + 0x1000
ldrh r0, [r1, 0x24]
adds r0, 0x1
strh r0, [r1, 0x24]
b _080E7182
.align 2, 0
-_080E7178: .4byte 0x02001000
+_080E7178: .4byte gSharedMem + 0x1000
_080E717C:
ldr r0, _080E7188 @ =sub_80E6AC4
bl sub_80E682C
@@ -2113,7 +2112,7 @@ _080E7188: .4byte sub_80E6AC4
thumb_func_start sub_80E718C
sub_80E718C: @ 80E718C
push {r4,lr}
- ldr r0, _080E71A4 @ =0x02001000
+ ldr r0, _080E71A4 @ =gSharedMem + 0x1000
ldrh r1, [r0, 0x24]
adds r4, r0, 0
cmp r1, 0x1
@@ -2124,7 +2123,7 @@ sub_80E718C: @ 80E718C
beq _080E71AE
b _080E71EC
.align 2, 0
-_080E71A4: .4byte 0x02001000
+_080E71A4: .4byte gSharedMem + 0x1000
_080E71A8:
cmp r1, 0x8
beq _080E71F4
@@ -2181,7 +2180,7 @@ _080E7214: .4byte sub_80E6FC8
thumb_func_start sub_80E7218
sub_80E7218: @ 80E7218
push {r4,lr}
- ldr r4, _080E7230 @ =0x02001000
+ ldr r4, _080E7230 @ =gSharedMem + 0x1000
ldrh r0, [r4, 0x24]
adds r1, r4, 0
cmp r0, 0x9
@@ -2192,7 +2191,7 @@ sub_80E7218: @ 80E7218
beq _080E7244
b _080E723C
.align 2, 0
-_080E7230: .4byte 0x02001000
+_080E7230: .4byte gSharedMem + 0x1000
_080E7234:
cmp r0, 0xA
beq _080E7276
@@ -2243,7 +2242,7 @@ sub_80E7294: @ 80E7294
push {r4,lr}
bl sub_80E7B40
adds r1, r0, 0
- ldr r4, _080E72CC @ =0x02001000
+ ldr r4, _080E72CC @ =gSharedMem + 0x1000
ldr r2, _080E72D0 @ =0x000001b9
adds r0, r4, r2
strb r1, [r0]
@@ -2265,7 +2264,7 @@ sub_80E7294: @ 80E7294
bl sub_80E682C
b _080E731A
.align 2, 0
-_080E72CC: .4byte 0x02001000
+_080E72CC: .4byte gSharedMem + 0x1000
_080E72D0: .4byte 0x000001b9
_080E72D4: .4byte sub_80E7294
_080E72D8: .4byte sub_80E7458
@@ -2308,7 +2307,7 @@ _080E7320: .4byte sub_80E73D0
thumb_func_start sub_80E7324
sub_80E7324: @ 80E7324
push {lr}
- ldr r0, _080E733C @ =0x02001000
+ ldr r0, _080E733C @ =gSharedMem + 0x1000
ldrh r1, [r0, 0x24]
adds r2, r0, 0
cmp r1, 0x4
@@ -2319,7 +2318,7 @@ sub_80E7324: @ 80E7324
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E733C: .4byte 0x02001000
+_080E733C: .4byte gSharedMem + 0x1000
_080E7340: .4byte _080E7344
.align 2, 0
_080E7344:
@@ -2357,13 +2356,13 @@ _080E738A:
cmp r0, 0
beq _080E73C6
_080E7394:
- ldr r1, _080E73A0 @ =0x02001000
+ ldr r1, _080E73A0 @ =gSharedMem + 0x1000
ldrh r0, [r1, 0x24]
adds r0, 0x1
strh r0, [r1, 0x24]
b _080E73C6
.align 2, 0
-_080E73A0: .4byte 0x02001000
+_080E73A0: .4byte gSharedMem + 0x1000
_080E73A4:
ldrb r0, [r2, 0x8]
cmp r0, 0x6
@@ -2390,7 +2389,7 @@ _080E73CC: .4byte sub_80E6AC4
thumb_func_start sub_80E73D0
sub_80E73D0: @ 80E73D0
push {lr}
- ldr r0, _080E73E4 @ =0x02001000
+ ldr r0, _080E73E4 @ =gSharedMem + 0x1000
ldrh r0, [r0, 0x24]
cmp r0, 0x4
bhi _080E744E
@@ -2400,7 +2399,7 @@ sub_80E73D0: @ 80E73D0
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E73E4: .4byte 0x02001000
+_080E73E4: .4byte gSharedMem + 0x1000
_080E73E8: .4byte _080E73EC
.align 2, 0
_080E73EC:
@@ -2432,13 +2431,13 @@ _080E742C:
movs r0, 0
bl sub_80E8958
_080E7436:
- ldr r1, _080E7440 @ =0x02001000
+ ldr r1, _080E7440 @ =gSharedMem + 0x1000
ldrh r0, [r1, 0x24]
adds r0, 0x1
strh r0, [r1, 0x24]
b _080E744E
.align 2, 0
-_080E7440: .4byte 0x02001000
+_080E7440: .4byte gSharedMem + 0x1000
_080E7444:
bl sub_80E9974
ldr r0, _080E7454 @ =sub_80E6FC8
@@ -2453,7 +2452,7 @@ _080E7454: .4byte sub_80E6FC8
thumb_func_start sub_80E7458
sub_80E7458: @ 80E7458
push {r4,r5,lr}
- ldr r4, _080E7468 @ =0x02001000
+ ldr r4, _080E7468 @ =gSharedMem + 0x1000
ldrh r5, [r4, 0x24]
cmp r5, 0
beq _080E746C
@@ -2461,7 +2460,7 @@ sub_80E7458: @ 80E7458
beq _080E74A4
b _080E7518
.align 2, 0
-_080E7468: .4byte 0x02001000
+_080E7468: .4byte gSharedMem + 0x1000
_080E746C:
movs r1, 0xE2
lsls r1, 1
@@ -2477,7 +2476,7 @@ _080E7480: .4byte sub_80E6FC8
_080E7484:
bl sub_80E9D00
_080E7488:
- ldr r4, _080E74A0 @ =0x02001000
+ ldr r4, _080E74A0 @ =gSharedMem + 0x1000
movs r2, 0xDF
lsls r2, 1
adds r0, r4, r2
@@ -2488,7 +2487,7 @@ _080E7488:
strh r0, [r4, 0x24]
b _080E7518
.align 2, 0
-_080E74A0: .4byte 0x02001000
+_080E74A0: .4byte gSharedMem + 0x1000
_080E74A4:
bl sub_80E9E54
lsls r0, 24
@@ -2532,7 +2531,7 @@ _080E74E4:
adds r0, r4, r1
_080E74FE:
strb r5, [r0]
- ldr r1, _080E7528 @ =0x02001000
+ ldr r1, _080E7528 @ =gSharedMem + 0x1000
movs r0, 0xDF
lsls r0, 1
adds r2, r1, r0
@@ -2550,14 +2549,14 @@ _080E7518:
.align 2, 0
_080E7520: .4byte 0x00009d55
_080E7524: .4byte 0x000001b9
-_080E7528: .4byte 0x02001000
+_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 @ =0x02001000
+ ldr r4, _080E7540 @ =gSharedMem + 0x1000
ldrh r1, [r4, 0x24]
cmp r1, 0
beq _080E7544
@@ -2565,7 +2564,7 @@ sub_80E752C: @ 80E752C
beq _080E755C
b _080E756C
.align 2, 0
-_080E7540: .4byte 0x02001000
+_080E7540: .4byte gSharedMem + 0x1000
_080E7544:
movs r0, 0x1
negs r0, r0
@@ -2595,7 +2594,7 @@ _080E756C:
thumb_func_start sub_80E7574
sub_80E7574: @ 80E7574
push {r4,r5,lr}
- ldr r4, _080E75B8 @ =0x02001000
+ ldr r4, _080E75B8 @ =gSharedMem + 0x1000
ldrb r5, [r4, 0x8]
cmp r5, 0x1
bne _080E75BC
@@ -2628,9 +2627,9 @@ sub_80E7574: @ 80E7574
adds r1, r4, 0
b _080E75C6
.align 2, 0
-_080E75B8: .4byte 0x02001000
+_080E75B8: .4byte gSharedMem + 0x1000
_080E75BC:
- ldr r1, _080E75D4 @ =0x02001000
+ ldr r1, _080E75D4 @ =gSharedMem + 0x1000
adds r2, r1, 0
adds r2, 0x7D
movs r0, 0
@@ -2643,7 +2642,7 @@ _080E75C6:
pop {r0}
bx r0
.align 2, 0
-_080E75D4: .4byte 0x02001000
+_080E75D4: .4byte gSharedMem + 0x1000
thumb_func_end sub_80E7574
thumb_func_start sub_80E75D8
@@ -2656,7 +2655,7 @@ sub_80E75D8: @ 80E75D8
ands r0, r1
cmp r0, 0
beq _080E7604
- ldr r1, _080E7600 @ =0x02001000
+ ldr r1, _080E7600 @ =gSharedMem + 0x1000
adds r0, r1, 0
adds r0, 0x84
ldrb r0, [r0]
@@ -2668,14 +2667,14 @@ sub_80E75D8: @ 80E75D8
b _080E768E
.align 2, 0
_080E75FC: .4byte gMain
-_080E7600: .4byte 0x02001000
+_080E7600: .4byte gSharedMem + 0x1000
_080E7604:
ldrh r1, [r2, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _080E7630
- ldr r2, _080E762C @ =0x02001000
+ ldr r2, _080E762C @ =gSharedMem + 0x1000
adds r1, r2, 0
adds r1, 0x86
ldrb r0, [r1]
@@ -2690,13 +2689,13 @@ _080E7604:
strb r0, [r1]
b _080E765C
.align 2, 0
-_080E762C: .4byte 0x02001000
+_080E762C: .4byte gSharedMem + 0x1000
_080E7630:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _080E7658
- ldr r0, _080E7684 @ =0x02001000
+ ldr r0, _080E7684 @ =gSharedMem + 0x1000
adds r3, r0, 0
adds r3, 0x86
ldrb r1, [r3]
@@ -2717,7 +2716,7 @@ _080E7658:
cmp r4, 0
beq _080E76EA
_080E765C:
- ldr r2, _080E7684 @ =0x02001000
+ ldr r2, _080E7684 @ =gSharedMem + 0x1000
ldrb r3, [r2, 0x9]
cmp r3, 0x2
bne _080E7692
@@ -2738,7 +2737,7 @@ _080E765C:
strb r3, [r0]
b _080E77BC
.align 2, 0
-_080E7684: .4byte 0x02001000
+_080E7684: .4byte gSharedMem + 0x1000
_080E7688:
adds r1, r2, 0
adds r1, 0x85
@@ -2800,7 +2799,7 @@ _080E76EA:
lsrs r4, r0, 16
cmp r4, 0
beq _080E7744
- ldr r2, _080E7728 @ =0x02001000
+ ldr r2, _080E7728 @ =gSharedMem + 0x1000
adds r3, r2, 0
adds r3, 0x85
ldrb r0, [r3]
@@ -2825,7 +2824,7 @@ _080E76EA:
movs r0, 0x2
b _080E77BA
.align 2, 0
-_080E7728: .4byte 0x02001000
+_080E7728: .4byte gSharedMem + 0x1000
_080E772C:
adds r0, r2, 0
adds r0, 0x83
@@ -2844,7 +2843,7 @@ _080E7744:
ands r0, r2
cmp r0, 0
beq _080E77C0
- ldr r2, _080E777C @ =0x02001000
+ ldr r2, _080E777C @ =gSharedMem + 0x1000
adds r5, r2, 0
adds r5, 0x86
adds r0, r2, 0
@@ -2868,7 +2867,7 @@ _080E7744:
strb r4, [r1]
b _080E77BC
.align 2, 0
-_080E777C: .4byte 0x02001000
+_080E777C: .4byte gSharedMem + 0x1000
_080E7780:
adds r3, r2, 0
adds r3, 0x85
@@ -2921,7 +2920,7 @@ sub_80E77C8: @ 80E77C8
mov r6, r8
push {r6,r7}
movs r7, 0
- ldr r1, _080E780C @ =0x02001000
+ ldr r1, _080E780C @ =gSharedMem + 0x1000
ldr r2, _080E7810 @ =0x000001b7
adds r0, r1, r2
ldrb r0, [r0]
@@ -2952,7 +2951,7 @@ _080E7806:
strb r0, [r1]
b _080E7948
.align 2, 0
-_080E780C: .4byte 0x02001000
+_080E780C: .4byte gSharedMem + 0x1000
_080E7810: .4byte 0x000001b7
_080E7814: .4byte gMain
_080E7818:
@@ -3301,7 +3300,7 @@ _080E7A8A:
thumb_func_start sub_80E7A98
sub_80E7A98: @ 80E7A98
push {lr}
- ldr r1, _080E7ACC @ =0x02001000
+ ldr r1, _080E7ACC @ =gSharedMem + 0x1000
ldr r0, _080E7AD0 @ =0x000001a9
adds r3, r1, r0
movs r2, 0xD4
@@ -3327,14 +3326,14 @@ _080E7AC6:
pop {r0}
bx r0
.align 2, 0
-_080E7ACC: .4byte 0x02001000
+_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 @ =0x02001000
+ ldr r3, _080E7B08 @ =gSharedMem + 0x1000
adds r0, r3, 0
adds r0, 0x26
ldrb r0, [r0]
@@ -3359,7 +3358,7 @@ sub_80E7AD4: @ 80E7AD4
adds r2, 0x10
b _080E7B34
.align 2, 0
-_080E7B08: .4byte 0x02001000
+_080E7B08: .4byte gSharedMem + 0x1000
_080E7B0C: .4byte 0x000001a9
_080E7B10:
ldr r1, _080E7B3C @ =0x000001a9
@@ -3393,7 +3392,7 @@ _080E7B3C: .4byte 0x000001a9
sub_80E7B40: @ 80E7B40
push {r4-r7,lr}
movs r5, 0
- ldr r2, _080E7B8C @ =0x02001000
+ ldr r2, _080E7B8C @ =gSharedMem + 0x1000
movs r0, 0xE0
lsls r0, 1
adds r6, r2, r0
@@ -3430,7 +3429,7 @@ _080E7B6E:
strb r0, [r6]
b _080E7D1A
.align 2, 0
-_080E7B8C: .4byte 0x02001000
+_080E7B8C: .4byte gSharedMem + 0x1000
_080E7B90: .4byte gMain
_080E7B94: .4byte 0x00009cd0
_080E7B98: .4byte 0x00009d55
@@ -3646,7 +3645,7 @@ _080E7D2C: .4byte 0x00009cd0
thumb_func_start sub_80E7D30
sub_80E7D30: @ 80E7D30
push {r4,lr}
- ldr r0, _080E7D60 @ =0x02001000
+ ldr r0, _080E7D60 @ =gSharedMem + 0x1000
ldr r1, _080E7D64 @ =0x00009cd1
adds r4, r0, r1
ldr r2, _080E7D68 @ =0x00009cd0
@@ -3671,7 +3670,7 @@ _080E7D5A:
pop {r0}
bx r0
.align 2, 0
-_080E7D60: .4byte 0x02001000
+_080E7D60: .4byte gSharedMem + 0x1000
_080E7D64: .4byte 0x00009cd1
_080E7D68: .4byte 0x00009cd0
thumb_func_end sub_80E7D30
@@ -3680,7 +3679,7 @@ _080E7D68: .4byte 0x00009cd0
sub_80E7D6C: @ 80E7D6C
push {r4,r5,lr}
movs r4, 0
- ldr r0, _080E7D94 @ =0x02001000
+ ldr r0, _080E7D94 @ =gSharedMem + 0x1000
ldrb r1, [r0, 0xA]
cmp r4, r1
bcs _080E7D8E
@@ -3700,7 +3699,7 @@ _080E7D8E:
pop {r0}
bx r0
.align 2, 0
-_080E7D94: .4byte 0x02001000
+_080E7D94: .4byte gSharedMem + 0x1000
_080E7D98: .4byte 0x0000ffff
thumb_func_end sub_80E7D6C
@@ -3708,7 +3707,7 @@ _080E7D98: .4byte 0x0000ffff
sub_80E7D9C: @ 80E7D9C
push {r4,r5,lr}
movs r2, 0
- ldr r0, _080E7DCC @ =0x02001000
+ ldr r0, _080E7DCC @ =gSharedMem + 0x1000
ldrb r1, [r0, 0xA]
cmp r2, r1
bcs _080E7DC6
@@ -3733,13 +3732,13 @@ _080E7DC6:
pop {r0}
bx r0
.align 2, 0
-_080E7DCC: .4byte 0x02001000
+_080E7DCC: .4byte gSharedMem + 0x1000
thumb_func_end sub_80E7D9C
thumb_func_start sub_80E7DD0
sub_80E7DD0: @ 80E7DD0
push {r4,lr}
- ldr r2, _080E7E28 @ =0x02001000
+ ldr r2, _080E7E28 @ =gSharedMem + 0x1000
ldr r1, _080E7E2C @ =0x00009cd1
adds r0, r2, r1
movs r1, 0
@@ -3781,11 +3780,11 @@ sub_80E7DD0: @ 80E7DD0
movs r0, 0
b _080E7E46
.align 2, 0
-_080E7E28: .4byte 0x02001000
+_080E7E28: .4byte gSharedMem + 0x1000
_080E7E2C: .4byte 0x00009cd1
_080E7E30: .4byte 0x00009cd0
_080E7E34:
- ldr r0, _080E7E4C @ =0x02001000
+ ldr r0, _080E7E4C @ =gSharedMem + 0x1000
adds r0, 0x27
ldrb r0, [r0]
adds r1, r4, 0
@@ -3797,7 +3796,7 @@ _080E7E46:
pop {r1}
bx r1
.align 2, 0
-_080E7E4C: .4byte 0x02001000
+_080E7E4C: .4byte gSharedMem + 0x1000
thumb_func_end sub_80E7DD0
thumb_func_start sub_80E7E50
@@ -3810,7 +3809,7 @@ sub_80E7E50: @ 80E7E50
sub sp, 0x8
movs r5, 0
movs r2, 0
- ldr r1, _080E7EF0 @ =0x02001000
+ ldr r1, _080E7EF0 @ =gSharedMem + 0x1000
adds r3, r1, 0
adds r3, 0x84
movs r0, 0
@@ -3827,7 +3826,7 @@ _080E7E74:
movs r1, 0
strb r1, [r0]
movs r3, 0
- ldr r6, _080E7EF4 @ =0x02001083
+ ldr r6, _080E7EF4 @ =gSharedMem + 0x1083
movs r0, 0
ldrsb r0, [r6, r0]
adds r1, r2, 0x1
@@ -3838,9 +3837,9 @@ _080E7E74:
mov r12, r6
movs r0, 0
mov r10, r0
- ldr r1, _080E7EF4 @ =0x02001083
+ ldr r1, _080E7EF4 @ =gSharedMem + 0x1083
mov r9, r1
- ldr r7, _080E7EF8 @ =0x0200100c
+ ldr r7, _080E7EF8 @ =gSharedMem + 0x100C
lsls r4, r2, 1
_080E7E9E:
lsls r1, r5, 1
@@ -3871,7 +3870,7 @@ _080E7ECE:
ldr r1, [sp, 0x4]
lsls r0, r1, 16
lsrs r2, r0, 16
- ldr r6, _080E7EFC @ =0x02001084
+ ldr r6, _080E7EFC @ =gSharedMem + 0x1084
movs r0, 0
ldrsb r0, [r6, r0]
cmp r2, r0
@@ -3886,10 +3885,10 @@ _080E7EDE:
pop {r0}
bx r0
.align 2, 0
-_080E7EF0: .4byte 0x02001000
-_080E7EF4: .4byte 0x02001083
-_080E7EF8: .4byte 0x0200100c
-_080E7EFC: .4byte 0x02001084
+_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
@@ -3903,7 +3902,7 @@ sub_80E7F00: @ 80E7F00
lsls r1, 16
lsrs r1, 16
mov r9, r1
- ldr r7, _080E7F68 @ =0x02001000
+ ldr r7, _080E7F68 @ =gSharedMem + 0x1000
adds r0, r7, 0
adds r0, 0x83
movs r4, 0
@@ -3943,7 +3942,7 @@ sub_80E7F00: @ 80E7F00
subs r0, 0x1
b _080E7F7A
.align 2, 0
-_080E7F68: .4byte 0x02001000
+_080E7F68: .4byte gSharedMem + 0x1000
_080E7F6C:
cmp r3, 0x7
bne _080E7F7C
@@ -3956,7 +3955,7 @@ _080E7F7A:
strb r0, [r1]
_080E7F7C:
movs r3, 0
- ldr r2, _080E7FA4 @ =0x02001000
+ ldr r2, _080E7FA4 @ =gSharedMem + 0x1000
lsls r0, r5, 1
add r0, r8
adds r1, r2, 0
@@ -3975,7 +3974,7 @@ _080E7F7C:
pop {r0}
bx r0
.align 2, 0
-_080E7FA4: .4byte 0x02001000
+_080E7FA4: .4byte gSharedMem + 0x1000
thumb_func_end sub_80E7F00
thumb_func_start sub_80E7FA8
@@ -3987,7 +3986,7 @@ sub_80E7FA8: @ 80E7FA8
movs r0, 0
mov r8, r0
movs r5, 0
- ldr r0, _080E8040 @ =0x02001000
+ ldr r0, _080E8040 @ =gSharedMem + 0x1000
ldrb r1, [r0, 0xA]
cmp r8, r1
bcs _080E802E
@@ -4043,7 +4042,7 @@ _080E8018:
lsls r0, 16
lsrs r0, 16
mov r8, r0
- ldr r3, _080E8040 @ =0x02001000
+ ldr r3, _080E8040 @ =gSharedMem + 0x1000
_080E8024:
lsls r0, r4, 16
lsrs r5, r0, 16
@@ -4061,7 +4060,7 @@ _080E802E:
pop {r1}
bx r1
.align 2, 0
-_080E8040: .4byte 0x02001000
+_080E8040: .4byte gSharedMem + 0x1000
_080E8044: .4byte 0x0000a140
_080E8048: .4byte 0x0000a16d
_080E804C: .4byte 0xffff5ec0
@@ -4072,7 +4071,7 @@ _080E8050: .4byte 0xffff5ecc
sub_80E8054: @ 80E8054
push {r4,lr}
movs r1, 0
- ldr r2, _080E8078 @ =0x02001000
+ ldr r2, _080E8078 @ =gSharedMem + 0x1000
ldrb r0, [r2, 0xA]
cmp r1, r0
bcs _080E808A
@@ -4089,7 +4088,7 @@ _080E8068:
movs r0, 0
b _080E808C
.align 2, 0
-_080E8078: .4byte 0x02001000
+_080E8078: .4byte gSharedMem + 0x1000
_080E807C: .4byte 0x0000ffff
_080E8080:
adds r0, r1, 0x1
@@ -4109,7 +4108,7 @@ _080E808C:
sub_80E8094: @ 80E8094
push {r4-r7,lr}
movs r5, 0
- ldr r6, _080E80C4 @ =0x0200b140
+ ldr r6, _080E80C4 @ =gSharedMem + 0xB140
adds r7, r6, 0
adds r7, 0x2D
_080E809E:
@@ -4131,7 +4130,7 @@ _080E809E:
adds r4, r7, 0
b _080E80D8
.align 2, 0
-_080E80C4: .4byte 0x0200b140
+_080E80C4: .4byte gSharedMem + 0xB140
_080E80C8: .4byte 0xffff5ecc
_080E80CC: .4byte gMysteryEventPhrase
_080E80D0:
@@ -4179,7 +4178,7 @@ sub_80E810C: @ 80E810C
mov r5, r8
push {r5-r7}
movs r5, 0
- ldr r6, _080E8198 @ =0x0200b19a
+ ldr r6, _080E8198 @ =gSharedMem + 0xB19A
ldr r0, _080E819C @ =0xffff5e66
adds r0, r6
mov r9, r0
@@ -4243,7 +4242,7 @@ _080E818A:
lsrs r0, 24
b _080E81B2
.align 2, 0
-_080E8198: .4byte 0x0200b19a
+_080E8198: .4byte gSharedMem + 0xB19A
_080E819C: .4byte 0xffff5e66
_080E81A0: .4byte gBerryMasterWifePhrases
_080E81A4: .4byte gBerryMasterWifePhrases + 0x2
@@ -4267,7 +4266,7 @@ _080E81B2:
sub_80E81C0: @ 80E81C0
push {r4,lr}
ldr r0, _080E81EC @ =gStringVar2
- ldr r4, _080E81F0 @ =0x02001000
+ ldr r4, _080E81F0 @ =gSharedMem + 0x1000
ldr r2, _080E81F4 @ =0x00009fa8
adds r1, r4, r2
ldrh r1, [r1]
@@ -4286,7 +4285,7 @@ sub_80E81C0: @ 80E81C0
bx r0
.align 2, 0
_080E81EC: .4byte gStringVar2
-_080E81F0: .4byte 0x02001000
+_080E81F0: .4byte gSharedMem + 0x1000
_080E81F4: .4byte 0x00009fa8
_080E81F8: .4byte 0x00009faa
thumb_func_end sub_80E81C0
diff --git a/asm/battle_1.s b/asm/battle_1.s
index 44d0b245f..c37418e5c 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
+
.include "asm/macros.inc"
.syntax unified
@@ -928,7 +928,7 @@ _0800DB8E:
.align 2, 0
_0800DBB0: .4byte 0x00006001
_0800DBB4:
- ldr r0, _0800DBD0 @ =0x02000000
+ ldr r0, _0800DBD0 @ =gSharedMem
ldr r1, _0800DBD4 @ =0x000160cb
adds r0, r1
ldrb r0, [r0]
@@ -942,7 +942,7 @@ _0800DBB4:
ldrh r4, [r0, 0xE]
b _0800DBE8
.align 2, 0
-_0800DBD0: .4byte 0x02000000
+_0800DBD0: .4byte gSharedMem
_0800DBD4: .4byte 0x000160cb
_0800DBD8: .4byte gTasks
_0800DBDC:
@@ -1075,7 +1075,7 @@ _0800DED4: .4byte gLinkPlayers
_0800DED8: .4byte gUnknown_081F9680
_0800DEDC: .4byte gUnknown_081F9680 + 0x8
_0800DEE0:
- ldr r0, _0800DF84 @ =0x02000000
+ ldr r0, _0800DF84 @ =gSharedMem
ldr r5, _0800DF88 @ =0x000160cb
adds r0, r5
ldrb r7, [r0]
@@ -1153,7 +1153,7 @@ _0800DF70:
strh r0, [r1, 0x8]
b _0800E212
.align 2, 0
-_0800DF84: .4byte 0x02000000
+_0800DF84: .4byte gSharedMem
_0800DF88: .4byte 0x000160cb
_0800DF8C: .4byte gLinkPlayers
_0800DF90: .4byte gUnknown_081F9680
@@ -1178,7 +1178,7 @@ _0800DF9C:
movs r2, 0x50
movs r3, 0
bl CreateSprite
- ldr r4, _0800E028 @ =0x02000000
+ ldr r4, _0800E028 @ =gSharedMem
ldr r2, _0800E02C @ =0x0001608a
adds r7, r4, r2
strb r0, [r7]
@@ -1221,7 +1221,7 @@ _0800E018: .4byte 0x0000021e
_0800E01C: .4byte gPlttBufferFaded
_0800E020: .4byte 0x00007fff
_0800E024: .4byte gSpriteTemplate_81F9574
-_0800E028: .4byte 0x02000000
+_0800E028: .4byte gSharedMem
_0800E02C: .4byte 0x0001608a
_0800E030: .4byte gSpriteTemplate_81F958C
_0800E034: .4byte 0x0001608b
@@ -1365,7 +1365,7 @@ _0800E154:
mov r0, r9
bl DestroyTask
ldr r4, _0800E224 @ =gSprites
- ldr r0, _0800E228 @ =0x02000000
+ ldr r0, _0800E228 @ =gSharedMem
mov r8, r0
ldr r1, _0800E22C @ =0x0001608a
add r1, r8
@@ -1464,7 +1464,7 @@ _0800E212:
bx r0
.align 2, 0
_0800E224: .4byte gSprites
-_0800E228: .4byte 0x02000000
+_0800E228: .4byte gSharedMem
_0800E22C: .4byte 0x0001608a
_0800E230: .4byte 0x0001608b
_0800E234: .4byte 0x000003ff
diff --git a/asm/battle_2.s b/asm/battle_2.s
index f252e5716..dd720ec79 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -58,7 +57,7 @@ _08012380:
.4byte _08012E94
.4byte _08012F38
_0801239C:
- ldr r4, _08012434 @ =0x02000000
+ ldr r4, _08012434 @ =gSharedMem
ldr r0, _08012438 @ =gActiveBank
ldrb r0, [r0]
ldr r1, _0801243C @ =0x00016068
@@ -102,7 +101,7 @@ _0801239C:
beq _080123F8
bl _08012F66
_080123F8:
- ldr r0, _08012434 @ =0x02000000
+ ldr r0, _08012434 @ =gSharedMem
ldr r3, _08012444 @ =0x000160a6
adds r0, r3
ldrb r3, [r0]
@@ -132,7 +131,7 @@ _080123F8:
strb r0, [r1]
bl _08012F66
.align 2, 0
-_08012434: .4byte 0x02000000
+_08012434: .4byte gSharedMem
_08012438: .4byte gActiveBank
_0801243C: .4byte 0x00016068
_08012440: .4byte gBattleTypeFlags
@@ -273,7 +272,7 @@ _0801256C:
movs r4, 0
movs r0, 0x5
strb r0, [r1]
- ldr r3, _080125BC @ =0x02000000
+ ldr r3, _080125BC @ =gSharedMem
ldrb r0, [r2]
ldr r1, _080125C0 @ =0x00016060
adds r0, r1
@@ -299,7 +298,7 @@ _0801256C:
.align 2, 0
_080125B4: .4byte gBattleCommunication
_080125B8: .4byte gActiveBank
-_080125BC: .4byte 0x02000000
+_080125BC: .4byte gSharedMem
_080125C0: .4byte 0x00016060
_080125C4: .4byte 0x00016094
_080125C8: .4byte 0x00016010
@@ -435,7 +434,7 @@ _080126D4: .4byte 0x00000902
_080126D8: .4byte gUnknown_02024C1C
_080126DC: .4byte gUnknown_081D9B29
_080126E0:
- ldr r3, _08012738 @ =0x02000000
+ ldr r3, _08012738 @ =gSharedMem
ldr r5, _0801273C @ =gActiveBank
ldrb r0, [r5]
ldr r4, _08012740 @ =0x00016064
@@ -480,7 +479,7 @@ _08012722:
movs r2, 0x6
b _0801286C
.align 2, 0
-_08012738: .4byte 0x02000000
+_08012738: .4byte gSharedMem
_0801273C: .4byte gActiveBank
_08012740: .4byte 0x00016064
_08012744: .4byte gBattlePartyID
@@ -568,7 +567,7 @@ _080127E0:
ldrb r2, [r0]
lsls r0, r2, 1
adds r0, r2
- ldr r2, _08012814 @ =0x0201606c
+ ldr r2, _08012814 @ =gSharedMem + 0x1606C
adds r0, r2
str r0, [sp]
movs r0, 0
@@ -579,7 +578,7 @@ _080127E0:
_08012808: .4byte gActiveBank
_0801280C: .4byte gBattleMons
_08012810: .4byte gLastUsedAbility
-_08012814: .4byte 0x0201606c
+_08012814: .4byte gSharedMem + 0x1606C
_08012818:
ldr r0, _08012830 @ =gActiveBank
ldrb r1, [r0]
@@ -590,13 +589,13 @@ _08012818:
ldrb r0, [r0]
cmp r0, 0x2
bne _08012840
- ldr r3, _08012838 @ =0x02000000
+ ldr r3, _08012838 @ =gSharedMem
ldr r4, _0801283C @ =0x00016068
b _08012854
.align 2, 0
_08012830: .4byte gActiveBank
_08012834: .4byte gActionForBanks
-_08012838: .4byte 0x02000000
+_08012838: .4byte gSharedMem
_0801283C: .4byte 0x00016068
_08012840:
mov r2, r8
@@ -607,7 +606,7 @@ _08012840:
ldrb r0, [r0, 0x1]
cmp r0, 0x2
bne _08012884
- ldr r3, _08012878 @ =0x02000000
+ ldr r3, _08012878 @ =gSharedMem
ldr r4, _0801287C @ =0x00016069
_08012854:
adds r0, r3, r4
@@ -628,7 +627,7 @@ _0801286C:
b _0801289E
.align 2, 0
_08012874: .4byte gActionForBanks
-_08012878: .4byte 0x02000000
+_08012878: .4byte gSharedMem
_0801287C: .4byte 0x00016069
_08012880: .4byte 0x0001606c
_08012884:
@@ -636,7 +635,7 @@ _08012884:
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r1
- ldr r1, _080128AC @ =0x0201606c
+ ldr r1, _080128AC @ =gSharedMem + 0x1606C
adds r0, r1
str r0, [sp]
movs r0, 0
@@ -651,7 +650,7 @@ _0801289E:
b _08012968
.align 2, 0
_080128A8: .4byte gActiveBank
-_080128AC: .4byte 0x0201606c
+_080128AC: .4byte gSharedMem + 0x1606C
_080128B0:
bl PlayerPartyAndPokemonStorageFull
lsls r0, 24
@@ -670,7 +669,7 @@ _080128B0:
movs r3, 0
movs r0, 0x5
strb r0, [r1]
- ldr r1, _080128FC @ =0x02000000
+ ldr r1, _080128FC @ =gSharedMem
ldrb r0, [r2]
ldr r4, _08012900 @ =0x00016060
adds r0, r4
@@ -687,7 +686,7 @@ _080128EC: .4byte gUnknown_02024C1C
_080128F0: .4byte gActiveBank
_080128F4: .4byte gUnknown_081D8E4A
_080128F8: .4byte gBattleCommunication
-_080128FC: .4byte 0x02000000
+_080128FC: .4byte gSharedMem
_08012900: .4byte 0x00016060
_08012904: .4byte 0x00016094
_08012908:
@@ -695,7 +694,7 @@ _08012908:
ldrb r0, [r4]
lsls r1, r0, 1
adds r1, r0
- ldr r0, _08012928 @ =0x0201606c
+ ldr r0, _08012928 @ =gSharedMem + 0x1606C
adds r1, r0
movs r0, 0
bl EmitOpenBag
@@ -704,7 +703,7 @@ _08012908:
b _08012968
.align 2, 0
_08012924: .4byte gActiveBank
-_08012928: .4byte 0x0201606c
+_08012928: .4byte gSharedMem + 0x1606C
_0801292C:
ldr r4, _08012964 @ =gBattleCommunication
mov r3, r8
@@ -786,7 +785,7 @@ _080129CC:
movs r2, 0
movs r0, 0x5
strb r0, [r1]
- ldr r1, _08012A08 @ =0x02000000
+ ldr r1, _08012A08 @ =gSharedMem
ldrb r0, [r3]
ldr r4, _08012A0C @ =0x00016060
adds r0, r4
@@ -804,7 +803,7 @@ _080129F8: .4byte gActiveBank
_080129FC: .4byte gUnknown_02024C1C
_08012A00: .4byte gUnknown_081D8E44
_08012A04: .4byte gBattleCommunication
-_08012A08: .4byte 0x02000000
+_08012A08: .4byte gSharedMem
_08012A0C: .4byte 0x00016060
_08012A10: .4byte 0x00016094
_08012A14:
@@ -923,7 +922,7 @@ _08012AFC:
movs r2, 0
movs r0, 0x5
strb r0, [r1]
- ldr r3, _08012B3C @ =0x02000000
+ ldr r3, _08012B3C @ =gSharedMem
ldrb r0, [r5]
ldr r4, _08012B40 @ =0x00016060
adds r0, r4
@@ -943,11 +942,11 @@ _08012AFC:
b _08012F90
.align 2, 0
_08012B38: .4byte gBattleCommunication
-_08012B3C: .4byte 0x02000000
+_08012B3C: .4byte gSharedMem
_08012B40: .4byte 0x00016060
_08012B44: .4byte 0x00016094
_08012B48:
- ldr r6, _08012B98 @ =0x02000000
+ ldr r6, _08012B98 @ =gSharedMem
mov r2, r8
ldrb r0, [r2]
ldr r2, _08012B9C @ =0x0001608c
@@ -988,7 +987,7 @@ _08012B48:
ldrb r1, [r3]
b _08012E3C
.align 2, 0
-_08012B98: .4byte 0x02000000
+_08012B98: .4byte gSharedMem
_08012B9C: .4byte 0x0001608c
_08012BA0: .4byte gChosenMovesByBanks
_08012BA4: .4byte gBattleMons
@@ -1042,7 +1041,7 @@ _08012C04: .4byte gBattleBufferB
_08012C08: .4byte gActiveBank
_08012C0C: .4byte gBattleCommunication
_08012C10:
- ldr r0, _08012CC4 @ =0x02000000
+ ldr r0, _08012CC4 @ =gSharedMem
mov r12, r0
ldr r3, _08012CC8 @ =0x00016068
adds r0, r2, r3
@@ -1134,7 +1133,7 @@ _08012CBE:
ldrb r1, [r7]
b _08012E3C
.align 2, 0
-_08012CC4: .4byte 0x02000000
+_08012CC4: .4byte gSharedMem
_08012CC8: .4byte 0x00016068
_08012CCC: .4byte gBattleTypeFlags
_08012CD0: .4byte 0x0001606c
@@ -1270,7 +1269,7 @@ _08012DD2:
adds r0, r5, 0
eors r0, r1
bl GetBankByPlayerAI
- ldr r1, _08012E20 @ =0x02000000
+ ldr r1, _08012E20 @ =gSharedMem
ldr r2, _08012E24 @ =0x000160a6
adds r1, r2
ldrb r1, [r1]
@@ -1291,7 +1290,7 @@ _08012E10: .4byte gBattleExecBuffer
_08012E14: .4byte gBitTable
_08012E18: .4byte gActiveBank
_08012E1C: .4byte gBattleTypeFlags
-_08012E20: .4byte 0x02000000
+_08012E20: .4byte gSharedMem
_08012E24: .4byte 0x000160a6
_08012E28:
movs r0, 0
@@ -1346,7 +1345,7 @@ _08012E88: .4byte gBitTable
_08012E8C: .4byte gActiveBank
_08012E90: .4byte gBattleCommunication
_08012E94:
- ldr r2, _08012EB8 @ =0x02000000
+ ldr r2, _08012EB8 @ =gSharedMem
ldr r5, _08012EBC @ =gActiveBank
ldrb r1, [r5]
ldr r3, _08012EC0 @ =0x00016060
@@ -1364,7 +1363,7 @@ _08012E94:
strb r1, [r0]
b _08012F66
.align 2, 0
-_08012EB8: .4byte 0x02000000
+_08012EB8: .4byte gSharedMem
_08012EBC: .4byte gActiveBank
_08012EC0: .4byte 0x00016060
_08012EC4: .4byte gBattleCommunication
@@ -1863,7 +1862,7 @@ _08013290:
_080132B0: .4byte gActionForBanks
_080132B4: .4byte gProtectStructs
_080132B8:
- ldr r1, _080132D8 @ =0x02000000
+ ldr r1, _080132D8 @ =gSharedMem
ldr r0, _080132DC @ =0x0001608c
add r0, r9
adds r0, r1
@@ -1880,7 +1879,7 @@ _080132B8:
ldrh r3, [r0]
b _080132E6
.align 2, 0
-_080132D8: .4byte 0x02000000
+_080132D8: .4byte gSharedMem
_080132DC: .4byte 0x0001608c
_080132E0: .4byte gBattleMons
_080132E4:
@@ -1903,7 +1902,7 @@ _080132E6:
.align 2, 0
_08013304: .4byte gProtectStructs
_08013308:
- ldr r1, _08013328 @ =0x02000000
+ ldr r1, _08013328 @ =gSharedMem
ldr r0, _0801332C @ =0x0001608c
add r0, r10
adds r0, r1
@@ -1920,7 +1919,7 @@ _08013308:
ldrh r2, [r0]
b _08013336
.align 2, 0
-_08013328: .4byte 0x02000000
+_08013328: .4byte gSharedMem
_0801332C: .4byte 0x0001608c
_08013330: .4byte gBattleMons
_08013334:
@@ -2127,7 +2126,7 @@ _08013494:
mov r9, r7
ldr r0, _08013510 @ =bc_80154A0
mov r12, r0
- ldr r1, _08013514 @ =0x02000000
+ ldr r1, _08013514 @ =gSharedMem
mov r10, r1
ldr r7, _08013518 @ =gNoOfAllBanks
ldrb r7, [r7]
@@ -2170,7 +2169,7 @@ _08013504: .4byte gUnknown_02024A76
_08013508: .4byte gTurnOrder
_0801350C: .4byte gBattleMainFunc
_08013510: .4byte bc_80154A0
-_08013514: .4byte 0x02000000
+_08013514: .4byte gSharedMem
_08013518: .4byte gNoOfAllBanks
_0801351C: .4byte 0x0001601d
_08013520:
@@ -2312,7 +2311,7 @@ _08013622:
ldr r1, _0801364C @ =gBattleMainFunc
ldr r0, _08013650 @ =bc_80154A0
str r0, [r1]
- ldr r0, _08013654 @ =0x02000000
+ ldr r0, _08013654 @ =gSharedMem
ldr r7, _08013658 @ =0x0001601d
adds r0, r7
movs r1, 0
@@ -2331,7 +2330,7 @@ _08013644: .4byte gTurnOrder
_08013648: .4byte gNoOfAllBanks
_0801364C: .4byte gBattleMainFunc
_08013650: .4byte bc_80154A0
-_08013654: .4byte 0x02000000
+_08013654: .4byte gSharedMem
_08013658: .4byte 0x0001601d
thumb_func_end sub_80133C8
@@ -2536,7 +2535,7 @@ bc_80154A0: @ 80137CC
ands r0, r1
cmp r0, 0
bne _08013884
- ldr r0, _08013854 @ =0x02000000
+ ldr r0, _08013854 @ =gSharedMem
ldr r1, _08013858 @ =0x0001601d
adds r2, r0, r1
ldr r0, _0801385C @ =gNoOfAllBanks
@@ -2591,12 +2590,12 @@ _080137FA:
lsls r0, 29
cmp r0, 0
blt _0801387C
- ldr r0, _08013878 @ =gUnknown_081D94DA
+ ldr r0, _08013878 @ =BattleScript_FocusPunchSetUp
bl b_call_bc_move_exec
b _080138BE
.align 2, 0
_08013850: .4byte gHitMarker
-_08013854: .4byte 0x02000000
+_08013854: .4byte gSharedMem
_08013858: .4byte 0x0001601d
_0801385C: .4byte gNoOfAllBanks
_08013860: .4byte gActiveBank
@@ -2605,7 +2604,7 @@ _08013868: .4byte gChosenMovesByBanks
_0801386C: .4byte gBattleMons
_08013870: .4byte gDisableStructs
_08013874: .4byte gProtectStructs
-_08013878: .4byte gUnknown_081D94DA
+_08013878: .4byte BattleScript_FocusPunchSetUp
_0801387C:
ldrb r0, [r4]
ldrb r2, [r7]
@@ -2624,7 +2623,7 @@ _08013884:
ldr r0, _080138D0 @ =gDynamicBasePower
movs r3, 0
strh r2, [r0]
- ldr r1, _080138D4 @ =0x02000000
+ ldr r1, _080138D4 @ =gSharedMem
ldr r2, _080138D8 @ =0x0001601c
adds r0, r1, r2
strb r3, [r0]
@@ -2649,7 +2648,7 @@ _080138C4: .4byte gCurrentMoveTurn
_080138C8: .4byte gFightStateTracker
_080138CC: .4byte gUnknown_02024A76
_080138D0: .4byte gDynamicBasePower
-_080138D4: .4byte 0x02000000
+_080138D4: .4byte gSharedMem
_080138D8: .4byte 0x0001601c
_080138DC: .4byte gBattleMainFunc
_080138E0: .4byte sub_80138F0
@@ -2669,7 +2668,7 @@ sub_80138F0: @ 80138F0
movs r0, 0xC
strb r0, [r2]
_08013900:
- ldr r1, _0801394C @ =0x02000000
+ ldr r1, _0801394C @ =gSharedMem
ldr r4, _08013950 @ =gCurrentMoveTurn
ldrb r0, [r4]
ldr r3, _08013954 @ =0x00016057
@@ -2704,7 +2703,7 @@ _08013900:
.align 2, 0
_08013944: .4byte gBattleOutcome
_08013948: .4byte gFightStateTracker
-_0801394C: .4byte 0x02000000
+_0801394C: .4byte gSharedMem
_08013950: .4byte gCurrentMoveTurn
_08013954: .4byte 0x00016057
_08013958: .4byte gUnknown_081FA640
@@ -3337,7 +3336,7 @@ _08013ECE:
cmp r0, 0
bne _08013F2A
_08013EE0:
- ldr r1, _08013F3C @ =gScriptResult
+ ldr r1, _08013F3C @ =gSpecialVar_Result
ldr r5, _08013F40 @ =gBattleOutcome
ldrb r0, [r5]
strh r0, [r1]
@@ -3380,7 +3379,7 @@ _08013F2A:
_08013F30: .4byte gBattleTypeFlags
_08013F34: .4byte gPlayerParty
_08013F38: .4byte gReceivedRemoteLinkPlayers
-_08013F3C: .4byte gScriptResult
+_08013F3C: .4byte gSpecialVar_Result
_08013F40: .4byte gBattleOutcome
_08013F44: .4byte gMain
_08013F48: .4byte 0x0000043d
@@ -3398,7 +3397,7 @@ sub_8013F54: @ 8013F54
lsrs r0, 24
cmp r0, 0x1
bhi _08013F90
- ldr r2, _08013F88 @ =0x02017140
+ ldr r2, _08013F88 @ =gSharedMem + 0x17140
adds r1, r2, 0
adds r1, 0x20
ldrb r0, [r1]
@@ -3416,7 +3415,7 @@ _08013F74:
b _08013FAA
.align 2, 0
_08013F84: .4byte gFightStateTracker
-_08013F88: .4byte 0x02017140
+_08013F88: .4byte gSharedMem + 0x17140
_08013F8C: .4byte gBattleMainFunc
_08013F90:
ldr r0, _08013FB0 @ =gBattleExecBuffer
@@ -3481,7 +3480,7 @@ sub_8013FE8: @ 8013FE8
adds r0, r1
ldrb r0, [r0]
strb r0, [r7]
- ldr r1, _08014034 @ =0x02000000
+ ldr r1, _08014034 @ =gSharedMem
mov r10, r1
ldr r0, _08014038 @ =0x000160a6
add r0, r10
@@ -3501,7 +3500,7 @@ sub_8013FE8: @ 8013FE8
_08014028: .4byte gBankAttacker
_0801402C: .4byte gTurnOrder
_08014030: .4byte gCurrentMoveTurn
-_08014034: .4byte 0x02000000
+_08014034: .4byte gSharedMem
_08014038: .4byte 0x000160a6
_0801403C: .4byte gBitTable
_08014040: .4byte gFightStateTracker
@@ -3741,7 +3740,7 @@ _08014218:
ldrh r0, [r1]
movs r1, 0
bl GetMoveTarget
- ldr r2, _08014270 @ =0x02000000
+ ldr r2, _08014270 @ =gSharedMem
ldrb r1, [r4]
ldr r3, _08014274 @ =0x00016010
adds r1, r3
@@ -3754,7 +3753,7 @@ _08014260: .4byte gBattleMons
_08014264: .4byte gChosenMovesByBanks
_08014268: .4byte gCurrentMove
_0801426C: .4byte gUnknown_02024BE8
-_08014270: .4byte 0x02000000
+_08014270: .4byte gSharedMem
_08014274: .4byte 0x00016010
_08014278:
ldr r1, _08014298 @ =gCurrentMove
@@ -3875,7 +3874,7 @@ _08014354:
b _08014570
_08014370:
ldr r3, _08014468 @ =gBattleMons
- ldr r0, _0801446C @ =0x02000000
+ ldr r0, _0801446C @ =gSharedMem
mov r8, r0
ldr r2, _08014458 @ =gBankAttacker
ldrb r5, [r2]
@@ -3995,7 +3994,7 @@ _0801445C: .4byte gSideTimer
_08014460: .4byte gBattleMoves
_08014464: .4byte gCurrentMove
_08014468: .4byte gBattleMons
-_0801446C: .4byte 0x02000000
+_0801446C: .4byte gSharedMem
_08014470: .4byte 0x00016010
_08014474: .4byte gActiveBank
_08014478: .4byte gNoOfAllBanks
@@ -4022,7 +4021,7 @@ _08014496:
_080144A0: .4byte gBankTarget
_080144A4:
ldr r2, _080144EC @ =gBankTarget
- ldr r1, _080144F0 @ =0x02000000
+ ldr r1, _080144F0 @ =gSharedMem
ldr r0, _080144F4 @ =gBankAttacker
ldrb r0, [r0]
ldr r4, _080144F8 @ =0x00016010
@@ -4059,7 +4058,7 @@ _080144D0:
b _0801469A
.align 2, 0
_080144EC: .4byte gBankTarget
-_080144F0: .4byte 0x02000000
+_080144F0: .4byte gSharedMem
_080144F4: .4byte gBankAttacker
_080144F8: .4byte 0x00016010
_080144FC: .4byte gAbsentBankFlags
@@ -4195,7 +4194,7 @@ _08014614: .4byte gBitTable
_08014618: .4byte gBankAttacker
_0801461C:
ldr r5, _08014660 @ =gBankTarget
- ldr r1, _08014664 @ =0x02000000
+ ldr r1, _08014664 @ =gSharedMem
adds r2, r3, 0
ldrb r0, [r2]
ldr r4, _08014668 @ =0x00016010
@@ -4228,7 +4227,7 @@ _0801461C:
b _0801469A
.align 2, 0
_08014660: .4byte gBankTarget
-_08014664: .4byte 0x02000000
+_08014664: .4byte gSharedMem
_08014668: .4byte 0x00016010
_0801466C: .4byte gAbsentBankFlags
_08014670: .4byte gBitTable
@@ -4324,7 +4323,7 @@ sub_80146F4: @ 80146F4
strb r0, [r2, 0x1]
ldrb r4, [r3]
strb r4, [r2, 0x2]
- ldr r1, _08014784 @ =0x02000000
+ ldr r1, _08014784 @ =gSharedMem
ldrb r0, [r3]
ldr r3, _08014788 @ =0x00016064
adds r0, r3
@@ -4361,7 +4360,7 @@ _08014774: .4byte gUnknown_030042A0
_08014778: .4byte gActionSelectionCursor
_0801477C: .4byte gMoveSelectionCursor
_08014780: .4byte gBattleTextBuff1
-_08014784: .4byte 0x02000000
+_08014784: .4byte gSharedMem
_08014788: .4byte 0x00016064
_0801478C: .4byte 0x00016003
_08014790: .4byte gBattlescriptCurrInstr
@@ -4414,7 +4413,7 @@ sub_80147A0: @ 80147A0
cmp r3, 0xC
bhi _08014830
ldr r2, _08014828 @ =gBattlescriptCurrInstr
- ldr r1, _0801482C @ =gUnknown_081D9E48
+ ldr r1, _0801482C @ =gBattlescriptsForBallThrow
ldrh r0, [r5]
lsls r0, 2
adds r0, r1
@@ -4432,7 +4431,7 @@ _0801481C: .4byte gDisableStructs
_08014820: .4byte gLastUsedItem
_08014824: .4byte gBattleBufferB
_08014828: .4byte gBattlescriptCurrInstr
-_0801482C: .4byte gUnknown_081D9E48
+_0801482C: .4byte gBattlescriptsForBallThrow
_08014830:
adds r0, r3, 0
subs r0, 0x50
@@ -4441,11 +4440,11 @@ _08014830:
cmp r0, 0x1
bhi _0801484C
ldr r0, _08014844 @ =gBattlescriptCurrInstr
- ldr r1, _08014848 @ =gUnknown_081D9E94
+ ldr r1, _08014848 @ =gBattlescriptsForRunningByItem
b _0801485C
.align 2, 0
_08014844: .4byte gBattlescriptCurrInstr
-_08014848: .4byte gUnknown_081D9E94
+_08014848: .4byte gBattlescriptsForRunningByItem
_0801484C:
ldrb r0, [r4]
bl GetBankSide
@@ -4462,7 +4461,7 @@ _0801485C:
_08014864: .4byte gBattlescriptCurrInstr
_08014868: .4byte gUnknown_081D9E7C
_0801486C:
- ldr r2, _080148A0 @ =0x02000000
+ ldr r2, _080148A0 @ =gSharedMem
ldrb r0, [r4]
ldr r3, _080148A4 @ =0x00016003
adds r1, r2, r3
@@ -4490,7 +4489,7 @@ _08014896:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080148A0: .4byte 0x02000000
+_080148A0: .4byte gSharedMem
_080148A4: .4byte 0x00016003
_080148A8: .4byte 0x000160d8
_080148AC: .4byte gBattlescriptCurrInstr
@@ -4842,7 +4841,7 @@ _08014B68:
ldrh r1, [r2, 0x6]
bl __divsi3
adds r4, r0, 0
- ldr r0, _08014BE0 @ =0x02000000
+ ldr r0, _08014BE0 @ =gSharedMem
ldr r1, _08014BE4 @ =0x00016078
adds r0, r1
ldrb r1, [r0]
@@ -4862,7 +4861,7 @@ _08014BB0:
lsls r0, 24
lsrs r5, r0, 24
_08014BB6:
- ldr r1, _08014BE0 @ =0x02000000
+ ldr r1, _08014BE0 @ =gSharedMem
ldr r0, _08014BE4 @ =0x00016078
adds r1, r0
ldrb r0, [r1]
@@ -4885,7 +4884,7 @@ _08014BD4:
bx r1
.align 2, 0
_08014BDC: .4byte gBattleTypeFlags
-_08014BE0: .4byte 0x02000000
+_08014BE0: .4byte gSharedMem
_08014BE4: .4byte 0x00016078
_08014BE8: .4byte gCurrentMoveTurn
_08014BEC: .4byte gNoOfAllBanks
@@ -5071,7 +5070,7 @@ sub_8014D50: @ 8014D50
ldr r0, _08014D88 @ =gUnknown_030042A0
strh r1, [r0]
ldr r1, _08014D8C @ =gBattlescriptCurrInstr
- ldr r0, _08014D90 @ =gUnknown_081D9E98
+ ldr r0, _08014D90 @ =gBattlescriptsForSafariActions
ldr r0, [r0]
str r0, [r1]
ldr r1, _08014D94 @ =gFightStateTracker
@@ -5085,7 +5084,7 @@ _08014D80: .4byte gCurrentMoveTurn
_08014D84: .4byte gUnknown_030042A4
_08014D88: .4byte gUnknown_030042A0
_08014D8C: .4byte gBattlescriptCurrInstr
-_08014D90: .4byte gUnknown_081D9E98
+_08014D90: .4byte gBattlescriptsForSafariActions
_08014D94: .4byte gFightStateTracker
thumb_func_end sub_8014D50
@@ -5111,7 +5110,7 @@ sub_8014D98: @ 8014D98
movs r0, 0x5
strh r0, [r1]
ldr r1, _08014DEC @ =gBattlescriptCurrInstr
- ldr r0, _08014DF0 @ =gUnknown_081D9E48
+ ldr r0, _08014DF0 @ =gBattlescriptsForBallThrow
ldr r0, [r0, 0x14]
str r0, [r1]
ldr r1, _08014DF4 @ =gFightStateTracker
@@ -5127,7 +5126,7 @@ _08014DE0: .4byte gUnknown_030042A0
_08014DE4: .4byte gNumSafariBalls
_08014DE8: .4byte gLastUsedItem
_08014DEC: .4byte gBattlescriptCurrInstr
-_08014DF0: .4byte gUnknown_081D9E48
+_08014DF0: .4byte gBattlescriptsForBallThrow
_08014DF4: .4byte gFightStateTracker
thumb_func_end sub_8014D98
@@ -5162,7 +5161,7 @@ sub_8014DF8: @ 8014DF8
adds r0, r2
ldrb r0, [r0]
strh r0, [r1]
- ldr r2, _08014E88 @ =0x02000000
+ ldr r2, _08014E88 @ =gSharedMem
ldr r0, _08014E8C @ =0x00016087
adds r1, r2, r0
ldrb r0, [r1]
@@ -5198,7 +5197,7 @@ _08014E78: .4byte gUnknown_030042A0
_08014E7C: .4byte gBattleCommunication
_08014E80: .4byte gBattleBufferB
_08014E84: .4byte gLastUsedItem
-_08014E88: .4byte 0x02000000
+_08014E88: .4byte gSharedMem
_08014E8C: .4byte 0x00016087
_08014E90: .4byte 0x00016088
_08014E94: .4byte gUnknown_081FA70C
@@ -5208,7 +5207,7 @@ _08014E9A:
strb r0, [r4]
_08014E9C:
ldr r1, _08014EB0 @ =gBattlescriptCurrInstr
- ldr r0, _08014EB4 @ =gUnknown_081D9E98
+ ldr r0, _08014EB4 @ =gBattlescriptsForSafariActions
ldr r0, [r0, 0x8]
str r0, [r1]
ldr r1, _08014EB8 @ =gFightStateTracker
@@ -5219,7 +5218,7 @@ _08014E9C:
bx r0
.align 2, 0
_08014EB0: .4byte gBattlescriptCurrInstr
-_08014EB4: .4byte gUnknown_081D9E98
+_08014EB4: .4byte gBattlescriptsForSafariActions
_08014EB8: .4byte gFightStateTracker
thumb_func_end sub_8014DF8
@@ -5238,7 +5237,7 @@ sub_8014EBC: @ 8014EBC
strh r5, [r0]
ldr r0, _08014F38 @ =gUnknown_030042A0
strh r5, [r0]
- ldr r3, _08014F3C @ =0x02000000
+ ldr r3, _08014F3C @ =gSharedMem
ldr r0, _08014F40 @ =0x00016089
adds r2, r3, r0
ldr r1, _08014F44 @ =gUnknown_081FA71B
@@ -5287,7 +5286,7 @@ _08014F2C: .4byte gTurnOrder
_08014F30: .4byte gCurrentMoveTurn
_08014F34: .4byte gUnknown_030042A4
_08014F38: .4byte gUnknown_030042A0
-_08014F3C: .4byte 0x02000000
+_08014F3C: .4byte gSharedMem
_08014F40: .4byte 0x00016089
_08014F44: .4byte gUnknown_081FA71B
_08014F48: .4byte 0x00016088
@@ -5299,7 +5298,7 @@ _08014F54:
strb r0, [r1, 0x5]
_08014F5A:
ldr r1, _08014F74 @ =gBattlescriptCurrInstr
- ldr r0, _08014F78 @ =gUnknown_081D9E98
+ ldr r0, _08014F78 @ =gBattlescriptsForSafariActions
ldr r0, [r0, 0x4]
str r0, [r1]
ldr r1, _08014F7C @ =gFightStateTracker
@@ -5311,7 +5310,7 @@ _08014F5A:
.align 2, 0
_08014F70: .4byte gBattleCommunication
_08014F74: .4byte gBattlescriptCurrInstr
-_08014F78: .4byte gUnknown_081D9E98
+_08014F78: .4byte gBattlescriptsForSafariActions
_08014F7C: .4byte gFightStateTracker
thumb_func_end sub_8014EBC
@@ -5373,7 +5372,7 @@ sub_8014FBC: @ 8014FBC
movs r0, 0xFF
strb r0, [r1, 0x4]
ldr r1, _08015024 @ =gBattlescriptCurrInstr
- ldr r0, _08015028 @ =gUnknown_081D9E98
+ ldr r0, _08015028 @ =gBattlescriptsForSafariActions
ldr r0, [r0, 0xC]
str r0, [r1]
ldr r1, _0801502C @ =gFightStateTracker
@@ -5392,7 +5391,7 @@ _08015018: .4byte gUnknown_030042A0
_0801501C: .4byte gBattleTextBuff1
_08015020: .4byte gBattlePartyID
_08015024: .4byte gBattlescriptCurrInstr
-_08015028: .4byte gUnknown_081D9E98
+_08015028: .4byte gBattlescriptsForSafariActions
_0801502C: .4byte gFightStateTracker
_08015030: .4byte gUnknown_02024A76
thumb_func_end sub_8014FBC
@@ -5405,7 +5404,7 @@ bsB_exit_by_move: @ 8015034
lsrs r1, r0, 24
cmp r1, 0
bne _08015050
- ldr r0, _08015054 @ =0x02000000
+ ldr r0, _08015054 @ =gSharedMem
ldr r2, _08015058 @ =0x00016059
adds r0, r2
strb r1, [r0]
@@ -5416,7 +5415,7 @@ _08015050:
pop {r0}
bx r0
.align 2, 0
-_08015054: .4byte 0x02000000
+_08015054: .4byte gSharedMem
_08015058: .4byte 0x00016059
_0801505C: .4byte gFightStateTracker
thumb_func_end bsB_exit_by_move
@@ -5469,7 +5468,7 @@ bsC_8016D70: @ 8015094
ldr r0, _08015120 @ =gBattleMoveDamage
movs r4, 0
str r4, [r0]
- ldr r1, _08015124 @ =0x02000000
+ ldr r1, _08015124 @ =gSharedMem
ldr r2, _08015128 @ =0x00016002
adds r0, r1, r2
strb r4, [r0]
@@ -5515,7 +5514,7 @@ _08015114: .4byte gUnknown_02024A76
_08015118: .4byte gHitMarker
_0801511C: .4byte 0xf1e892af
_08015120: .4byte gBattleMoveDamage
-_08015124: .4byte 0x02000000
+_08015124: .4byte gSharedMem
_08015128: .4byte 0x00016002
_0801512C: .4byte 0x000160a1
_08015130: .4byte gMoveHitWith
@@ -5575,12 +5574,12 @@ _080151B0:
movs r2, 0
b _080151C8
_080151B4:
- ldr r0, _080151BC @ =0x02000000
+ ldr r0, _080151BC @ =gSharedMem
ldr r1, _080151C0 @ =0x00016003
adds r0, r1
b _080151C6
.align 2, 0
-_080151BC: .4byte 0x02000000
+_080151BC: .4byte gSharedMem
_080151C0: .4byte 0x00016003
_080151C4:
ldr r0, _080151D0 @ =gBank1
diff --git a/asm/battle_9.s b/asm/battle_9.s
index e92c2db33..dce32d076 100644
--- a/asm/battle_9.s
+++ b/asm/battle_9.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -30,7 +29,7 @@ AI_SwitchIfPerishSong: @ 8035FEC
bne _0803604C
adds r0, r2, 0
bl GetBankIdentity
- ldr r1, _08036044 @ =0x02000000
+ ldr r1, _08036044 @ =gSharedMem
lsls r0, 24
lsrs r0, 25
ldr r2, _08036048 @ =0x000160c8
@@ -48,7 +47,7 @@ AI_SwitchIfPerishSong: @ 8035FEC
_08036038: .4byte gStatuses3
_0803603C: .4byte gActiveBank
_08036040: .4byte gDisableStructs
-_08036044: .4byte 0x02000000
+_08036044: .4byte gSharedMem
_08036048: .4byte 0x000160c8
_0803604C:
movs r0, 0
@@ -76,7 +75,7 @@ _08036070:
ldr r0, _08036094 @ =gActiveBank
ldrb r0, [r0]
bl GetBankIdentity
- ldr r1, _08036098 @ =0x02000000
+ ldr r1, _08036098 @ =gSharedMem
lsls r0, 24
lsrs r0, 25
ldr r2, _0803609C @ =0x000160c8
@@ -91,7 +90,7 @@ _08036070:
b _080361CA
.align 2, 0
_08036094: .4byte gActiveBank
-_08036098: .4byte 0x02000000
+_08036098: .4byte gSharedMem
_0803609C: .4byte 0x000160c8
_080360A0:
ldr r4, _080361D8 @ =gBattleMons
@@ -400,7 +399,7 @@ _0803630C:
ldr r0, _08036330 @ =gActiveBank
ldrb r0, [r0]
bl GetBankIdentity
- ldr r1, _08036334 @ =0x02000000
+ ldr r1, _08036334 @ =gSharedMem
lsls r0, 24
lsrs r0, 25
ldr r2, _08036338 @ =0x000160c8
@@ -415,7 +414,7 @@ _0803630C:
b _08036402
.align 2, 0
_08036330: .4byte gActiveBank
-_08036334: .4byte 0x02000000
+_08036334: .4byte gSharedMem
_08036338: .4byte 0x000160c8
_0803633C:
movs r6, 0
@@ -456,7 +455,7 @@ _08036342:
ldrh r0, [r0]
cmp r6, r0
beq _080363FA
- ldr r1, _080363D8 @ =0x02000000
+ ldr r1, _080363D8 @ =gSharedMem
ldr r0, _080363DC @ =0x00016068
add r0, r8
adds r0, r1
@@ -489,7 +488,7 @@ _08036342:
_080363CC: .4byte gBaseStats
_080363D0: .4byte gEnemyParty
_080363D4: .4byte gBattlePartyID
-_080363D8: .4byte 0x02000000
+_080363D8: .4byte gSharedMem
_080363DC: .4byte 0x00016068
_080363E0:
lsls r0, r4, 3
@@ -623,7 +622,7 @@ _080364DC:
ldrb r0, [r0]
_080364E0:
bl GetBankIdentity
- ldr r1, _0803650C @ =0x02000000
+ ldr r1, _0803650C @ =gSharedMem
lsls r0, 24
lsrs r0, 25
ldr r2, _08036510 @ =0x000160c8
@@ -643,7 +642,7 @@ _08036500:
bx r1
.align 2, 0
_08036508: .4byte gActiveBank
-_0803650C: .4byte 0x02000000
+_0803650C: .4byte gSharedMem
_08036510: .4byte 0x000160c8
thumb_func_end AI_SwitchIfNaturalCure
@@ -948,7 +947,7 @@ _08036768:
ldr r0, _0803678C @ =gActiveBank
ldrb r0, [r0]
bl GetBankIdentity
- ldr r1, _08036790 @ =0x02000000
+ ldr r1, _08036790 @ =gSharedMem
lsls r0, 24
lsrs r0, 25
ldr r2, _08036794 @ =0x000160c8
@@ -963,7 +962,7 @@ _08036768:
b _080368DA
.align 2, 0
_0803678C: .4byte gActiveBank
-_08036790: .4byte 0x02000000
+_08036790: .4byte gSharedMem
_08036794: .4byte 0x000160c8
_08036798:
mov r9, r3
@@ -1010,7 +1009,7 @@ _080367C4:
ldrh r0, [r0]
cmp r6, r0
beq _080368D0
- ldr r1, _08036838 @ =0x02000000
+ ldr r1, _08036838 @ =gSharedMem
ldr r0, _0803683C @ =0x00016068
add r0, r9
adds r0, r1
@@ -1043,7 +1042,7 @@ _080367C4:
.align 2, 0
_08036830: .4byte gEnemyParty
_08036834: .4byte gBattlePartyID
-_08036838: .4byte 0x02000000
+_08036838: .4byte gSharedMem
_0803683C: .4byte 0x00016068
_08036840: .4byte gBaseStats
_08036844:
@@ -1310,7 +1309,7 @@ _08036A1A:
ldrh r0, [r0]
cmp r5, r0
beq _08036A7E
- ldr r1, _08036AF4 @ =0x02000000
+ ldr r1, _08036AF4 @ =gSharedMem
ldr r2, _08036AF8 @ =0x00016068
adds r0, r7, r2
adds r0, r1
@@ -1375,7 +1374,7 @@ _08036AE4:
_08036AE8: .4byte gActiveBank
_08036AEC: .4byte gEnemyParty
_08036AF0: .4byte gBattlePartyID
-_08036AF4: .4byte 0x02000000
+_08036AF4: .4byte gSharedMem
_08036AF8: .4byte 0x00016068
_08036AFC:
movs r0, 0
@@ -1405,7 +1404,7 @@ _08036B1C:
bne _08036B28
b _08036C24
_08036B28:
- ldr r4, _08036B6C @ =0x02000000
+ ldr r4, _08036B6C @ =gSharedMem
ldr r0, _08036B70 @ =gActiveBank
ldrb r0, [r0]
bl GetBankIdentity
@@ -1435,7 +1434,7 @@ _08036B28:
b _08036B8C
.align 2, 0
_08036B68: .4byte gBattleTypeFlags
-_08036B6C: .4byte 0x02000000
+_08036B6C: .4byte gSharedMem
_08036B70: .4byte gActiveBank
_08036B74: .4byte 0x000160c8
_08036B78:
@@ -1469,7 +1468,7 @@ _08036B8E:
ldrh r0, [r0]
cmp r4, r0
beq _08036BCE
- ldr r1, _08036C14 @ =0x02000000
+ ldr r1, _08036C14 @ =gSharedMem
ldr r2, _08036C18 @ =0x00016068
adds r0, r6, r2
adds r0, r1
@@ -1489,7 +1488,7 @@ _08036BD4:
ldr r0, _08036C1C @ =gActiveBank
ldrb r0, [r0]
bl GetBankIdentity
- ldr r1, _08036C14 @ =0x02000000
+ ldr r1, _08036C14 @ =gSharedMem
lsls r0, 24
lsrs r0, 25
ldr r3, _08036C20 @ =0x000160c8
@@ -1500,7 +1499,7 @@ _08036BEA:
ldr r4, _08036C1C @ =gActiveBank
ldrb r0, [r4]
bl GetBankIdentity
- ldr r2, _08036C14 @ =0x02000000
+ ldr r2, _08036C14 @ =gSharedMem
ldrb r1, [r4]
ldr r3, _08036C18 @ =0x00016068
adds r1, r3
@@ -1516,7 +1515,7 @@ _08036BEA:
.align 2, 0
_08036C0C: .4byte gEnemyParty
_08036C10: .4byte gBattlePartyID
-_08036C14: .4byte 0x02000000
+_08036C14: .4byte gSharedMem
_08036C18: .4byte 0x00016068
_08036C1C: .4byte gActiveBank
_08036C20: .4byte 0x000160c8
@@ -1751,7 +1750,7 @@ _08036DA2:
ldrh r0, [r0]
cmp r0, r7
beq _08036E7C
- ldr r1, _08036E6C @ =0x02000000
+ ldr r1, _08036E6C @ =gSharedMem
ldr r2, _08036E70 @ =0x00016068
adds r0, r3, r2
adds r0, r1
@@ -1808,7 +1807,7 @@ _08036E5C: .4byte gActiveBank
_08036E60: .4byte gBitTable
_08036E64: .4byte gEnemyParty
_08036E68: .4byte gBattlePartyID
-_08036E6C: .4byte 0x02000000
+_08036E6C: .4byte gSharedMem
_08036E70: .4byte 0x00016068
_08036E74: .4byte gBaseStats
_08036E78: .4byte gBattleMons
@@ -1887,7 +1886,7 @@ _08036F04:
ldr r0, _08037000 @ =gDynamicBasePower
movs r2, 0
strh r2, [r0]
- ldr r0, _08037004 @ =0x02000000
+ ldr r0, _08037004 @ =gSharedMem
ldr r3, _08037008 @ =0x0001601c
adds r1, r0, r3
strb r2, [r1]
@@ -1936,7 +1935,7 @@ _08036F2C:
ldrh r0, [r0]
cmp r0, r7
beq _08036FE8
- ldr r1, _08037004 @ =0x02000000
+ ldr r1, _08037004 @ =gSharedMem
ldr r3, _08037020 @ =0x00016068
adds r0, r4, r3
adds r0, r1
@@ -2013,7 +2012,7 @@ _08036FEE:
bx r1
.align 2, 0
_08037000: .4byte gDynamicBasePower
-_08037004: .4byte 0x02000000
+_08037004: .4byte gSharedMem
_08037008: .4byte 0x0001601c
_0803700C: .4byte 0x0001601f
_08037010: .4byte gBattleMoveFlags
@@ -2132,7 +2131,7 @@ _080370DC:
movs r3, 0
mov r9, r3
_080370EA:
- ldr r4, _08037174 @ =0x02016a00
+ ldr r4, _08037174 @ =gSharedMem + 0x16A00
mov r0, r9
cmp r0, 0
beq _08037106
@@ -2205,7 +2204,7 @@ _08037166:
mov pc, r0
.align 2, 0
_08037170: .4byte gEnemyParty
-_08037174: .4byte 0x02016a00
+_08037174: .4byte gSharedMem + 0x16A00
_08037178: .4byte gItemEffectTable
_0803717C: .4byte gSaveBlock1 + 0x3676
_08037180: .4byte 0xfffe9600
@@ -2283,7 +2282,7 @@ _08037210:
_08037214: .4byte gBattleMons
_08037218: .4byte gActiveBank
_0803721C:
- ldr r2, _08037378 @ =0x02000000
+ ldr r2, _08037378 @ =gSharedMem
ldr r3, _0803737C @ =gActiveBank
ldrb r0, [r3]
lsrs r0, 1
@@ -2465,12 +2464,12 @@ _08037362:
mov r8, r2
b _080374AE
.align 2, 0
-_08037378: .4byte 0x02000000
+_08037378: .4byte gSharedMem
_0803737C: .4byte gActiveBank
_08037380: .4byte 0x000160da
_08037384: .4byte gBattleMons
_08037388:
- ldr r6, _08037458 @ =0x02000000
+ ldr r6, _08037458 @ =gSharedMem
ldr r4, _0803745C @ =gActiveBank
ldrb r0, [r4]
lsrs r0, 1
@@ -2580,7 +2579,7 @@ _08037450:
mov r8, r3
b _080374AE
.align 2, 0
-_08037458: .4byte 0x02000000
+_08037458: .4byte gSharedMem
_0803745C: .4byte gActiveBank
_08037460: .4byte 0x000160da
_08037464: .4byte gDisableStructs
@@ -2624,7 +2623,7 @@ _080374AE:
movs r1, 0x1
movs r2, 0
bl Emitcmd33
- ldr r1, _080374DC @ =0x02000000
+ ldr r1, _080374DC @ =gSharedMem
ldr r0, _080374E0 @ =gActiveBank
ldrb r0, [r0]
lsrs r0, 1
@@ -2643,7 +2642,7 @@ _080374AE:
mov r0, r8
b _080374FA
.align 2, 0
-_080374DC: .4byte 0x02000000
+_080374DC: .4byte gSharedMem
_080374E0: .4byte gActiveBank
_080374E4: .4byte 0x000160d4
_080374E8: .4byte 0x00016a24
diff --git a/asm/battle_anim_80CA710.s b/asm/battle_anim_80CA710.s
deleted file mode 100644
index 7b506ac24..000000000
--- a/asm/battle_anim_80CA710.s
+++ /dev/null
@@ -1,55077 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80CA710
-sub_80CA710: @ 80CA710
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080CA744 @ =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]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080CA748 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080CA74C
- ldrh r0, [r5, 0x8]
- negs r0, r0
- b _080CA74E
- .align 2, 0
-_080CA744: .4byte gBattleAnimArgs
-_080CA748: .4byte gBattleAnimBankAttacker
-_080CA74C:
- ldrh r0, [r5, 0x8]
-_080CA74E:
- strh r0, [r4, 0x34]
- ldr r0, _080CA760 @ =gBattleAnimArgs
- ldrh r0, [r0, 0xA]
- strh r0, [r4, 0x36]
- ldr r0, _080CA764 @ =sub_80CA768
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA760: .4byte gBattleAnimArgs
-_080CA764: .4byte sub_80CA768
- thumb_func_end sub_80CA710
-
- thumb_func_start sub_80CA768
-sub_80CA768: @ 80CA768
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080CA7A4
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r1, r0
- strh r1, [r4, 0x32]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080CA7AA
-_080CA7A4:
- adds r0, r4, 0
- bl move_anim_8072740
-_080CA7AA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CA768
-
- thumb_func_start sub_80CA7B0
-sub_80CA7B0: @ 80CA7B0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080CA7F0 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r5, _080CA7F4 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080CA7F8 @ =sub_8078B34
- str r0, [r4, 0x1C]
- ldr r1, _080CA7FC @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA7F0: .4byte gBattleAnimArgs
-_080CA7F4: .4byte gBattleAnimBankAttacker
-_080CA7F8: .4byte sub_8078B34
-_080CA7FC: .4byte move_anim_8074EE0
- thumb_func_end sub_80CA7B0
-
- thumb_func_start sub_80CA800
-sub_80CA800: @ 80CA800
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r5, _080CA848 @ =gBattleAnimArgs
- ldrb r1, [r5, 0x6]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldr r5, _080CA84C @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080CA850 @ =sub_8078B34
- str r0, [r4, 0x1C]
- ldr r1, _080CA854 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA848: .4byte gBattleAnimArgs
-_080CA84C: .4byte gBattleAnimBankTarget
-_080CA850: .4byte sub_8078B34
-_080CA854: .4byte move_anim_8072740
- thumb_func_end sub_80CA800
-
- thumb_func_start sub_80CA858
-sub_80CA858: @ 80CA858
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r6, _080CA8A8 @ =gBattleAnimArgs
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080CA8AC @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r6, 0x6]
- strh r0, [r4, 0x38]
- ldr r1, _080CA8B0 @ =sub_80CA8B4
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA8A8: .4byte gBattleAnimArgs
-_080CA8AC: .4byte gBattleAnimBankTarget
-_080CA8B0: .4byte sub_80CA8B4
- thumb_func_end sub_80CA858
-
- thumb_func_start sub_80CA8B4
-sub_80CA8B4: @ 80CA8B4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080CA8CA
- adds r0, r4, 0
- bl DestroySprite
- b _080CA91E
-_080CA8CA:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _080CA8E4
- ldr r0, _080CA8E0 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl sub_8079E90
- adds r0, 0x1
- b _080CA8EE
- .align 2, 0
-_080CA8E0: .4byte gBattleAnimBankTarget
-_080CA8E4:
- ldr r0, _080CA924 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl sub_8079E90
- adds r0, 0x6
-_080CA8EE:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0xF
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
-_080CA91E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA924: .4byte gBattleAnimBankTarget
- thumb_func_end sub_80CA8B4
-
- thumb_func_start sub_80CA928
-sub_80CA928: @ 80CA928
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080CA998 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- subs r0, 0x1
- movs r2, 0
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080CA982
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- movs r0, 0x6
- strh r0, [r5, 0x8]
- ldr r1, _080CA99C @ =gBattleAnimArgs
- movs r0, 0xF
- strh r0, [r1]
- strh r2, [r1, 0x2]
- movs r0, 0x50
- strh r0, [r1, 0x4]
- strh r2, [r1, 0x6]
- ldr r4, _080CA9A0 @ =gSpriteTemplate_83D631C
- ldr r0, _080CA9A4 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl sub_8079E90
- adds r3, r0, 0
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl CreateSpriteAndAnimate
-_080CA982:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0xF
- bne _080CA990
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080CA990:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA998: .4byte gTasks
-_080CA99C: .4byte gBattleAnimArgs
-_080CA9A0: .4byte gSpriteTemplate_83D631C
-_080CA9A4: .4byte gBattleAnimBankTarget
- thumb_func_end sub_80CA928
-
- thumb_func_start sub_80CA9A8
-sub_80CA9A8: @ 80CA9A8
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r6, _080CA9EC @ =gBattleAnimArgs
- ldrh r0, [r6, 0x6]
- strh r0, [r4, 0x2E]
- ldr r5, _080CA9F0 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _080CA9F4 @ =sub_80CA9F8
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA9EC: .4byte gBattleAnimArgs
-_080CA9F0: .4byte gBattleAnimBankAttacker
-_080CA9F4: .4byte sub_80CA9F8
- thumb_func_end sub_80CA9A8
-
- thumb_func_start sub_80CA9F8
-sub_80CA9F8: @ 80CA9F8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080CAA0C
- adds r0, r4, 0
- bl move_anim_8072740
-_080CAA0C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CA9F8
-
- thumb_func_start sub_80CAA14
-sub_80CAA14: @ 80CAA14
- push {r4,r5,lr}
- adds r5, r0, 0
- bl Random
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x7
- ands r1, r0
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r4, _080CAA5C @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080CAA60
- ldrh r0, [r5, 0x20]
- subs r0, 0x14
- b _080CAA64
- .align 2, 0
-_080CAA5C: .4byte gBattleAnimBankAttacker
-_080CAA60:
- ldrh r0, [r5, 0x20]
- adds r0, 0x14
-_080CAA64:
- strh r0, [r5, 0x20]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1F
- ands r0, r1
- adds r0, 0x40
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080CAAC4 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078D60
- bl Random
- movs r1, 0xFF
- ands r1, r0
- strh r1, [r5, 0x38]
- adds r0, r5, 0
- adds r0, 0x43
- ldrb r0, [r0]
- strh r0, [r5, 0x3A]
- ldr r1, _080CAAC8 @ =sub_80CAACC
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAAC4: .4byte gBattleAnimBankTarget
-_080CAAC8: .4byte sub_80CAACC
- thumb_func_end sub_80CAA14
-
- thumb_func_start sub_80CAACC
-sub_80CAACC: @ 80CAACC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078CE8
- lsls r0, 24
- cmp r0, 0
- beq _080CAAE2
- adds r0, r4, 0
- bl move_anim_8072740
- b _080CAB12
-_080CAAE2:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xC
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7E
- bgt _080CAAFE
- ldrh r0, [r4, 0x3A]
- b _080CAB02
-_080CAAFE:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
-_080CAB02:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- adds r0, 0x18
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
-_080CAB12:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CAACC
-
- thumb_func_start sub_80CAB18
-sub_80CAB18: @ 80CAB18
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080CAB78 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080CAB38
- ldr r1, _080CAB7C @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080CAB38:
- ldr r4, _080CAB7C @ =gBattleAnimArgs
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, _080CAB80 @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- 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, _080CAB84 @ =sub_80CAB88
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAB78: .4byte gBattleAnimBankAttacker
-_080CAB7C: .4byte gBattleAnimArgs
-_080CAB80: .4byte gBattleAnimBankTarget
-_080CAB84: .4byte sub_80CAB88
- thumb_func_end sub_80CAB18
-
- thumb_func_start sub_80CAB88
-sub_80CAB88: @ 80CAB88
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080CABB2
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- ldr r0, _080CABB8 @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _080CABBC @ =sub_80CABC0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
-_080CABB2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CABB8: .4byte sub_80782D8
-_080CABBC: .4byte sub_80CABC0
- thumb_func_end sub_80CAB88
-
- thumb_func_start sub_80CABC0
-sub_80CABC0: @ 80CABC0
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x3C
- strh r0, [r4, 0x2E]
- ldr r0, _080CABF0 @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _080CABF4 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CABF0: .4byte sub_80782D8
-_080CABF4: .4byte move_anim_8072740
- thumb_func_end sub_80CABC0
-
- thumb_func_start sub_80CABF8
-sub_80CABF8: @ 80CABF8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r5, _080CAC3C @ =gBattleAnimArgs
- ldrb r1, [r5, 0x8]
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080CAC22
- ldrb r0, [r4, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x1]
-_080CAC22:
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldr r1, _080CAC40 @ =sub_80CAC44
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAC3C: .4byte gBattleAnimArgs
-_080CAC40: .4byte sub_80CAC44
- thumb_func_end sub_80CABF8
-
- thumb_func_start sub_80CAC44
-sub_80CAC44: @ 80CAC44
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x32]
- adds r1, 0x18
- strh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080CAC98
- ldr r0, _080CAC94 @ =gBattleAnimBankTarget
- 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
- b _080CACBC
- .align 2, 0
-_080CAC94: .4byte gBattleAnimBankTarget
-_080CAC98:
- ldr r0, _080CACE8 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl sub_8079ED4
- adds r0, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080CACAC
- movs r2, 0x3
-_080CACAC:
- movs r0, 0x3
- ands r2, r0
- lsls r2, 2
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
-_080CACBC:
- strb r0, [r4, 0x5]
- ldrh r0, [r4, 0x30]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- 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 _080CACE0
- adds r0, r4, 0
- bl move_anim_8072740
-_080CACE0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CACE8: .4byte gBattleAnimBankTarget
- thumb_func_end sub_80CAC44
-
- thumb_func_start sub_80CACEC
-sub_80CACEC: @ 80CACEC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080CAD06
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- bne _080CAD0E
-_080CAD06:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080CAD4A
-_080CAD0E:
- ldr r0, _080CAD2C @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CAD34
- ldr r0, _080CAD30 @ =REG_BG2CNT
- ldrb r1, [r0]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0]
- b _080CAD44
- .align 2, 0
-_080CAD2C: .4byte gBattleAnimBankTarget
-_080CAD30: .4byte REG_BG2CNT
-_080CAD34:
- ldr r2, _080CAD50 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080CAD44:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080CAD4A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAD50: .4byte REG_BG1CNT
- thumb_func_end sub_80CACEC
-
- thumb_func_start sub_80CAD54
-sub_80CAD54: @ 80CAD54
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r5, _080CAD9C @ =gBattleAnimArgs
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldr r0, _080CADA0 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x4]
- adds r0, r5
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x40
- strh r0, [r4, 0x38]
- ldr r1, _080CADA4 @ =sub_80CADA8
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAD9C: .4byte gBattleAnimArgs
-_080CADA0: .4byte gBattleAnimBankAttacker
-_080CADA4: .4byte sub_80CADA8
- thumb_func_end sub_80CAD54
-
- thumb_func_start sub_80CADA8
-sub_80CADA8: @ 80CADA8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080CAE14
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080CADF4
- ldr r0, _080CADF0 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl sub_8079E90
- subs r0, 0x1
- b _080CADFE
- .align 2, 0
-_080CADF0: .4byte gBattleAnimBankAttacker
-_080CADF4:
- ldr r0, _080CAE10 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl sub_8079E90
- adds r0, 0x1
-_080CADFE:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080CAE1A
- .align 2, 0
-_080CAE10: .4byte gBattleAnimBankAttacker
-_080CAE14:
- adds r0, r4, 0
- bl move_anim_8072740
-_080CAE1A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CADA8
-
- thumb_func_start sub_80CAE20
-sub_80CAE20: @ 80CAE20
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r5, _080CAE68 @ =gBattleAnimArgs
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldr r0, _080CAE6C @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x4]
- adds r0, r5
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x40
- strh r0, [r4, 0x38]
- ldr r1, _080CAE70 @ =sub_80CAE74
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAE68: .4byte gBattleAnimArgs
-_080CAE6C: .4byte gBattleAnimBankAttacker
-_080CAE70: .4byte sub_80CAE74
- thumb_func_end sub_80CAE20
-
- thumb_func_start sub_80CAE74
-sub_80CAE74: @ 80CAE74
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080CAECC
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldrh r1, [r4, 0x38]
- adds r0, r1, 0
- subs r0, 0x3B
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _080CAEAC
- adds r0, r1, 0
- subs r0, 0xBB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _080CAEC0
-_080CAEAC:
- ldrb r2, [r4, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- eors r1, r0
- lsls r1, 1
- subs r0, 0x47
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
-_080CAEC0:
- ldrh r0, [r4, 0x38]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080CAED2
-_080CAECC:
- adds r0, r4, 0
- bl move_anim_8072740
-_080CAED2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CAE74
-
- thumb_func_start sub_80CAED8
-sub_80CAED8: @ 80CAED8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080CAF14 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, _080CAF18 @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldr r0, _080CAF1C @ =sub_80CAF20
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAF14: .4byte gBattleAnimBankAttacker
-_080CAF18: .4byte gBattleAnimArgs
-_080CAF1C: .4byte sub_80CAF20
- thumb_func_end sub_80CAED8
-
- thumb_func_start sub_80CAF20
-sub_80CAF20: @ 80CAF20
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x32]
- movs r2, 0x32
- ldrsh r3, [r1, r2]
- cmp r3, 0
- bne _080CAF54
- ldrh r0, [r1, 0x30]
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- beq _080CAF42
- movs r0, 0x80
- strh r0, [r1, 0x2E]
- strh r3, [r1, 0x30]
- strh r3, [r1, 0x32]
- b _080CAF48
-_080CAF42:
- strh r2, [r1, 0x2E]
- strh r2, [r1, 0x30]
- strh r2, [r1, 0x32]
-_080CAF48:
- ldr r0, _080CAF50 @ =sub_80CAF6C
- str r0, [r1, 0x1C]
- b _080CAF68
- .align 2, 0
-_080CAF50: .4byte sub_80CAF6C
-_080CAF54:
- subs r0, 0x1
- strh r0, [r1, 0x32]
- ldrh r0, [r1, 0x2E]
- ldrh r2, [r1, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0x30]
- ldrh r2, [r1, 0x22]
- adds r0, r2
- strh r0, [r1, 0x22]
-_080CAF68:
- pop {r0}
- bx r0
- thumb_func_end sub_80CAF20
-
- thumb_func_start sub_80CAF6C
-sub_80CAF6C: @ 80CAF6C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CAF8C @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080CAF90
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x19
- bl Sin
- negs r0, r0
- b _080CAF9A
- .align 2, 0
-_080CAF8C: .4byte gBattleAnimBankAttacker
-_080CAF90:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x19
- bl Sin
-_080CAF9A:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080CAFBA
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
-_080CAFBA:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x50
- ble _080CAFC8
- adds r0, r4, 0
- bl move_anim_8072740
-_080CAFC8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CAF6C
-
- thumb_func_start sub_80CAFD0
-sub_80CAFD0: @ 80CAFD0
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080CB024 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080CAFF0
- ldr r1, _080CB028 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080CAFF0:
- ldr r6, _080CB028 @ =gBattleAnimArgs
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CB030
- ldr r4, _080CB02C @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- b _080CB050
- .align 2, 0
-_080CB024: .4byte gBattleAnimBankAttacker
-_080CB028: .4byte gBattleAnimArgs
-_080CB02C: .4byte gBattleAnimBankTarget
-_080CB030:
- ldr r0, _080CB07C @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_807A3FC
- ldrh r0, [r6, 0x4]
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r6, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
-_080CB050:
- strh r0, [r5, 0x36]
- ldr r0, _080CB080 @ =gBattleAnimArgs
- ldrh r0, [r0, 0xA]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80786EC
- ldr r0, _080CB084 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- adds r4, r0, 0
- ldr r0, _080CB07C @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080CB088
- movs r0, 0x1
- b _080CB08A
- .align 2, 0
-_080CB07C: .4byte gBattleAnimBankTarget
-_080CB080: .4byte gBattleAnimArgs
-_080CB084: .4byte gBattleAnimBankAttacker
-_080CB088:
- movs r0, 0
-_080CB08A:
- strh r0, [r5, 0x2E]
- ldr r0, _080CB098 @ =sub_80CB09C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB098: .4byte sub_80CB09C
- thumb_func_end sub_80CAFD0
-
- thumb_func_start sub_80CB09C
-sub_80CB09C: @ 80CB09C
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r7, 0
- ldrh r5, [r6, 0x2E]
- ldrh r4, [r6, 0x3C]
- movs r0, 0x1
- strh r0, [r6, 0x2E]
- adds r0, r6, 0
- bl sub_8078718
- ldrh r0, [r6, 0x3C]
- strh r5, [r6, 0x2E]
- lsls r4, 16
- asrs r4, 16
- cmp r4, 0xC8
- ble _080CB0CE
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x37
- bgt _080CB0CE
- ldrh r0, [r6, 0x6]
- cmp r0, 0
- bne _080CB0D4
- adds r0, 0x1
- strh r0, [r6, 0x6]
-_080CB0CE:
- ldrh r0, [r6, 0x6]
- cmp r0, 0
- beq _080CB106
-_080CB0D4:
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080CB106
- adds r3, r6, 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]
- ldrh r0, [r6, 0x6]
- adds r0, 0x1
- strh r0, [r6, 0x6]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1E
- bne _080CB106
- movs r7, 0x1
-_080CB106:
- movs r2, 0x20
- ldrsh r0, [r6, r2]
- movs r2, 0x24
- ldrsh r1, [r6, r2]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080CB130
- movs r0, 0x22
- ldrsh r1, [r6, r0]
- movs r2, 0x26
- ldrsh r0, [r6, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080CB130
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080CB132
-_080CB130:
- movs r7, 0x1
-_080CB132:
- cmp r7, 0
- beq _080CB13C
- adds r0, r6, 0
- bl move_anim_8072740
-_080CB13C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB09C
-
- thumb_func_start sub_80CB144
-sub_80CB144: @ 80CB144
- push {r4,lr}
- adds r4, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080CB170
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CB170
- ldr r0, _080CB198 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl sub_807A3FC
-_080CB170:
- ldrh r0, [r4, 0x22]
- adds r0, 0x20
- strh r0, [r4, 0x22]
- ldr r1, _080CB19C @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x36]
- ldr r0, _080CB1A0 @ =sub_80CB1A4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB198: .4byte gBattleAnimBankTarget
-_080CB19C: .4byte gBattleAnimArgs
-_080CB1A0: .4byte sub_80CB1A4
- thumb_func_end sub_80CB144
-
- thumb_func_start sub_80CB1A4
-sub_80CB1A4: @ 80CB1A4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- bne _080CB1BA
- ldrh r0, [r4, 0x22]
- subs r0, 0x2
- strh r0, [r4, 0x22]
- b _080CB1C8
-_080CB1BA:
- cmp r0, 0
- ble _080CB1C8
- ldrh r0, [r4, 0x22]
- subs r0, 0x2
- strh r0, [r4, 0x22]
- subs r0, r1, 0x2
- strh r0, [r4, 0x30]
-_080CB1C8:
- ldrh r3, [r4, 0x32]
- ldrh r5, [r4, 0x38]
- adds r2, r3, r5
- strh r2, [r4, 0x38]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r5, 0x36
- ldrsh r0, [r4, r5]
- cmp r1, r0
- bge _080CB1E0
- adds r0, r2, r3
- strh r0, [r4, 0x38]
-_080CB1E0:
- ldrh r1, [r4, 0x38]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r5, 0x38
- ldrsh r0, [r4, r5]
- movs r1, 0x5
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _080CB220
- ldr r0, _080CB21C @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- b _080CB22E
- .align 2, 0
-_080CB21C: .4byte gBattleAnimBankTarget
-_080CB220:
- ldr r0, _080CB258 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
-_080CB22E:
- 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]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080CB252
- adds r0, r4, 0
- bl move_anim_8072740
-_080CB252:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB258: .4byte gBattleAnimBankTarget
- thumb_func_end sub_80CB1A4
-
- thumb_func_start sub_80CB25C
-sub_80CB25C: @ 80CB25C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_8078764
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r4, _080CB290 @ =gBattleAnimArgs
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAffineAnim
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x3A]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x3C]
- ldr r0, _080CB294 @ =sub_80CB298
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB290: .4byte gBattleAnimArgs
-_080CB294: .4byte sub_80CB298
- thumb_func_end sub_80CB25C
-
- thumb_func_start sub_80CB298
-sub_80CB298: @ 80CB298
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CB2C8 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080CB2CC @ =0x0000ffff
- cmp r1, r0
- bne _080CB2C2
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- bl GetAnimBankSpriteId
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x2E]
- ldr r0, _080CB2D0 @ =sub_80CB2D4
- str r0, [r4, 0x1C]
-_080CB2C2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB2C8: .4byte gBattleAnimArgs
-_080CB2CC: .4byte 0x0000ffff
-_080CB2D0: .4byte sub_80CB2D4
- thumb_func_end sub_80CB298
-
- thumb_func_start sub_80CB2D4
-sub_80CB2D4: @ 80CB2D4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- bl GetAnimBankSpriteId
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CB2EC
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- b _080CB2F0
-_080CB2EC:
- ldrh r0, [r4, 0x2E]
- subs r0, 0xB
-_080CB2F0:
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _080CB30C
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x32]
-_080CB30C:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080CB33A
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- cmp r0, 0
- ble _080CB334
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- b _080CB33A
-_080CB334:
- adds r0, r4, 0
- bl move_anim_8072740
-_080CB33A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB2D4
-
- thumb_func_start sub_80CB340
-sub_80CB340: @ 80CB340
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080CB36C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _080CB370
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080CB396
- .align 2, 0
-_080CB36C: .4byte gSprites
-_080CB370:
- adds r0, r2, 0
- movs r1, 0x1
- bl sub_8078E70
- ldr r1, _080CB39C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, _080CB3A0 @ =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r0, 0x8]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0xA]
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r0, 0x1E]
- ldr r1, _080CB3A4 @ =sub_80CB3A8
- str r1, [r0]
-_080CB396:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB39C: .4byte gTasks
-_080CB3A0: .4byte gBattleAnimArgs
-_080CB3A4: .4byte sub_80CB3A8
- thumb_func_end sub_80CB340
-
- thumb_func_start sub_80CB3A8
-sub_80CB3A8: @ 80CB3A8
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080CB428 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x8]
- ldrh r0, [r4, 0x1C]
- adds r1, r0
- strh r1, [r4, 0x1C]
- ldr r2, _080CB42C @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r2
- lsls r1, 16
- asrs r1, 24
- strh r1, [r5, 0x24]
- ldr r0, _080CB430 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080CB3F2
- ldrh r0, [r5, 0x24]
- negs r0, r0
- strh r0, [r5, 0x24]
-_080CB3F2:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x10
- strh r0, [r4, 0x1E]
- movs r0, 0x1E
- ldrsh r2, [r4, r0]
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- adds r0, r6, 0
- bl sub_8079A64
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080CB420
- strh r0, [r4, 0x8]
- ldr r0, _080CB434 @ =sub_80CB438
- str r0, [r4]
-_080CB420:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB428: .4byte gTasks
-_080CB42C: .4byte gSprites
-_080CB430: .4byte gBattleAnimBankTarget
-_080CB434: .4byte sub_80CB438
- thumb_func_end sub_80CB3A8
-
- thumb_func_start sub_80CB438
-sub_80CB438: @ 80CB438
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080CB484 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080CB488 @ =0x0000ffff
- cmp r1, r0
- bne _080CB494
- ldr r0, _080CB48C @ =gTasks
- lsls r2, r3, 2
- adds r1, r2, r3
- lsls r1, 3
- adds r6, r1, r0
- movs r1, 0x8
- ldrsh r5, [r6, r1]
- adds r4, r0, 0
- cmp r5, 0
- bne _080CB4A8
- movs r0, 0x1
- bl GetAnimBankSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8078F40
- ldr r1, _080CB490 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- strh r5, [r0, 0x24]
- strh r5, [r0, 0x26]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _080CB4C2
- .align 2, 0
-_080CB484: .4byte gBattleAnimArgs
-_080CB488: .4byte 0x0000ffff
-_080CB48C: .4byte gTasks
-_080CB490: .4byte gSprites
-_080CB494:
- ldr r1, _080CB4C8 @ =gTasks
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- movs r4, 0x8
- ldrsh r0, [r0, r4]
- adds r4, r1, 0
- cmp r0, 0
- beq _080CB4C2
-_080CB4A8:
- adds r1, r2, r3
- lsls r1, 3
- adds r1, r4
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080CB4C2
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_080CB4C2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB4C8: .4byte gTasks
- thumb_func_end sub_80CB438
-
- thumb_func_start sub_80CB4CC
-sub_80CB4CC: @ 80CB4CC
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080CB4DE
- cmp r0, 0x1
- beq _080CB538
- b _080CB58A
-_080CB4DE:
- ldr r6, _080CB530 @ =gBattleAnimBankTarget
- ldrb r0, [r6]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080CB4F6
- ldr r1, _080CB534 @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1]
-_080CB4F6:
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080CB534 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- 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]
- b _080CB58A
- .align 2, 0
-_080CB530: .4byte gBattleAnimBankTarget
-_080CB534: .4byte gBattleAnimArgs
-_080CB538:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080CB58A
- adds r0, r5, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- movs r0, 0x19
- strh r0, [r5, 0x2E]
- ldr r4, _080CB590 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080CB594 @ =sub_8078CC0
- str r0, [r5, 0x1C]
- ldr r1, _080CB598 @ =move_anim_8072740
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080CB58A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB590: .4byte gBattleAnimBankAttacker
-_080CB594: .4byte sub_8078CC0
-_080CB598: .4byte move_anim_8072740
- thumb_func_end sub_80CB4CC
-
- thumb_func_start sub_80CB59C
-sub_80CB59C: @ 80CB59C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080CB608
- ldr r4, _080CB614 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080CB618 @ =gBattleAnimArgs
- ldrh r0, [r4]
- strh r0, [r5, 0x24]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x26]
- ldrb r0, [r4, 0x4]
- adds r0, 0x1E
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r4, 0x6]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r2, 0x22
- ldrsh r0, [r5, r2]
- movs r2, 0x26
- ldrsh r1, [r5, r2]
- adds r0, r1
- cmp r0, 0x78
- ble _080CB608
- ldrh r0, [r5, 0x22]
- adds r1, r0, 0
- subs r1, 0x78
- ldrh r2, [r5, 0x26]
- adds r0, r2
- adds r1, r0
- strh r1, [r5, 0x22]
-_080CB608:
- ldr r0, _080CB61C @ =sub_80CB710
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB614: .4byte gBattleAnimBankAttacker
-_080CB618: .4byte gBattleAnimArgs
-_080CB61C: .4byte sub_80CB710
- thumb_func_end sub_80CB59C
-
- thumb_func_start sub_80CB620
-sub_80CB620: @ 80CB620
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- mov r9, r0
- ldr r4, _080CB6FC @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r6, _080CB700 @ =gBattleAnimBankTarget
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- adds r2, r0, 0
- lsls r2, 24
- subs r4, r5
- lsls r4, 16
- lsrs r2, 24
- mov r1, r8
- subs r2, r1
- lsls r2, 16
- lsrs r2, 16
- lsrs r3, r4, 16
- mov r10, r3
- asrs r4, 16
- ldr r6, _080CB704 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- muls r0, r4
- movs r1, 0x64
- str r2, [sp]
- bl __divsi3
- adds r5, r0
- mov r3, r9
- strh r5, [r3, 0x20]
- ldr r2, [sp]
- lsls r0, r2, 16
- asrs r0, 16
- movs r3, 0
- ldrsh r1, [r6, r3]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- add r8, r0
- mov r1, r8
- mov r0, r9
- strh r1, [r0, 0x22]
- ldrh r0, [r6, 0x2]
- mov r3, r9
- strh r0, [r3, 0x24]
- ldrh r0, [r6, 0x4]
- strh r0, [r3, 0x26]
- ldrb r0, [r6, 0x6]
- adds r0, 0x1E
- mov r1, r9
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0x8]
- mov r0, r9
- bl StartSpriteAnim
- ldrh r0, [r6, 0xA]
- mov r1, r9
- strh r0, [r1, 0x32]
- ldr r0, _080CB708 @ =sub_80CB710
- str r0, [r1, 0x1C]
- ldr r1, _080CB70C @ =gUnknown_03000728
- mov r3, r9
- ldrh r0, [r3, 0x20]
- strh r0, [r1]
- ldrh r0, [r3, 0x22]
- strh r0, [r1, 0x2]
- mov r0, r10
- strh r0, [r1, 0x4]
- ldr r2, [sp]
- strh r2, [r1, 0x6]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB6FC: .4byte gBattleAnimBankAttacker
-_080CB700: .4byte gBattleAnimBankTarget
-_080CB704: .4byte gBattleAnimArgs
-_080CB708: .4byte sub_80CB710
-_080CB70C: .4byte gUnknown_03000728
- thumb_func_end sub_80CB620
-
- thumb_func_start sub_80CB710
-sub_80CB710: @ 80CB710
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x2E]
- adds r1, 0x1
- strh r1, [r3, 0x2E]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- subs r0, 0xA
- cmp r1, r0
- ble _080CB750
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- movs r2, 0x3E
- adds r2, r3
- mov r12, r2
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_080CB750:
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r1, r0
- ble _080CB762
- adds r0, r3, 0
- bl move_anim_8072740
-_080CB762:
- pop {r0}
- bx r0
- thumb_func_end sub_80CB710
-
- thumb_func_start sub_80CB768
-sub_80CB768: @ 80CB768
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CB7A8
- ldr r5, _080CB7E4 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080CB7E8 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r2, [r4]
- adds r0, r2
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x30]
- ldrh r0, [r4, 0x6]
- strh r0, [r6, 0x32]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x34]
-_080CB7A8:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- strh r0, [r6, 0x2E]
- ldrh r1, [r6, 0x30]
- muls r0, r1
- strh r0, [r6, 0x24]
- movs r2, 0x2E
- ldrsh r1, [r6, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r1, 0xFF
- ands r0, r1
- movs r2, 0x32
- ldrsh r1, [r6, r2]
- bl Sin
- strh r0, [r6, 0x26]
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- movs r2, 0x34
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _080CB7DE
- adds r0, r6, 0
- bl move_anim_8072740
-_080CB7DE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB7E4: .4byte gBattleAnimBankAttacker
-_080CB7E8: .4byte gBattleAnimArgs
- thumb_func_end sub_80CB768
-
- thumb_func_start sub_80CB7EC
-sub_80CB7EC: @ 80CB7EC
- push {r4,r5,lr}
- movs r2, 0x20
- ldrsh r4, [r0, r2]
- lsls r4, 8
- movs r3, 0x22
- ldrsh r2, [r0, r3]
- orrs r4, r2
- movs r5, 0x3A
- ldrsh r2, [r0, r5]
- lsls r2, 8
- movs r5, 0x3C
- ldrsh r3, [r0, r5]
- orrs r2, r3
- lsls r1, 8
- strh r4, [r0, 0x38]
- strh r2, [r0, 0x3A]
- strh r1, [r0, 0x3C]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB7EC
-
- thumb_func_start sub_80CB814
-sub_80CB814: @ 80CB814
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r0
- ldrh r0, [r0, 0x38]
- lsrs r1, r0, 8
- mov r10, r1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r1, r8
- ldrh r0, [r1, 0x3A]
- lsrs r2, r0, 8
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r1, [r1, 0x3C]
- lsls r0, r1, 16
- asrs r0, 24
- lsls r0, 16
- lsrs r6, r0, 16
- movs r3, 0xFF
- ands r3, r1
- cmp r2, 0
- bne _080CB84E
- movs r2, 0x20
- negs r2, r2
- b _080CB856
-_080CB84E:
- cmp r2, 0xFF
- bne _080CB856
- movs r2, 0x88
- lsls r2, 1
-_080CB856:
- mov r0, r9
- subs r4, r0
- lsls r4, 16
- lsrs r4, 16
- mov r1, r10
- subs r0, r2, r1
- lsls r5, r3, 16
- asrs r5, 16
- muls r0, r5
- lsls r1, r6, 16
- asrs r7, r1, 16
- adds r1, r7, 0
- bl __divsi3
- adds r6, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- muls r0, r5
- adds r1, r7, 0
- bl __divsi3
- add r6, r10
- mov r1, r8
- strh r6, [r1, 0x20]
- add r0, r9
- strh r0, [r1, 0x22]
- adds r5, 0x1
- lsls r5, 16
- lsrs r3, r5, 16
- asrs r5, 16
- cmp r5, r7
- beq _080CB8A8
- lsls r1, r7, 8
- lsls r0, r3, 16
- asrs r0, 16
- orrs r0, r1
- mov r1, r8
- strh r0, [r1, 0x3C]
- movs r0, 0
- b _080CB8AA
-_080CB8A8:
- movs r0, 0x1
-_080CB8AA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80CB814
-
- thumb_func_start sub_80CB8B8
-sub_80CB8B8: @ 80CB8B8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _080CB8CC
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080CB8CC:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- ble _080CB8E0
- adds r0, r4, 0
- bl move_anim_8072740
-_080CB8E0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB8B8
-
- thumb_func_start sub_80CB8E8
-sub_80CB8E8: @ 80CB8E8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080CB912
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080CB912:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- bl sub_80CB814
- lsls r0, 24
- cmp r0, 0
- beq _080CB942
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- ldr r0, _080CB948 @ =sub_80CB8B8
- str r0, [r4, 0x1C]
-_080CB942:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB948: .4byte sub_80CB8B8
- thumb_func_end sub_80CB8E8
-
- thumb_func_start sub_80CB94C
-sub_80CB94C: @ 80CB94C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r4, _080CB994 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080CB998 @ =gBattleAnimBankAttacker
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080CB99C
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80CB7EC
- movs r0, 0x1
- b _080CB9AE
- .align 2, 0
-_080CB994: .4byte gBattleAnimBankTarget
-_080CB998: .4byte gBattleAnimBankAttacker
-_080CB99C:
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80CB7EC
- movs r0, 0x3
-_080CB9AE:
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080CB9C0 @ =sub_80CB8E8
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB9C0: .4byte sub_80CB8E8
- thumb_func_end sub_80CB94C
-
- thumb_func_start sub_80CB9C4
-sub_80CB9C4: @ 80CB9C4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080CB9EE
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080CB9EE:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- bl sub_80CB814
- lsls r0, 24
- cmp r0, 0
- beq _080CBA20
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- adds r0, r4, 0
- bl move_anim_8072740
-_080CBA20:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB9C4
-
- thumb_func_start sub_80CBA28
-sub_80CBA28: @ 80CBA28
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080CBA64 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080CBA6C
- strh r0, [r5, 0x3A]
- adds r0, r6, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x28
- bl sub_80CB7EC
- movs r0, 0x3
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080CBA68 @ =sub_80CB8E8
- b _080CBA96
- .align 2, 0
-_080CBA64: .4byte gBattleAnimBankTarget
-_080CBA68: .4byte sub_80CB8E8
-_080CBA6C:
- movs r0, 0xFF
- strh r0, [r5, 0x3A]
- adds r0, r6, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080CBA84
- movs r0, 0
- strh r0, [r5, 0x3A]
-_080CBA84:
- adds r0, r5, 0
- movs r1, 0x28
- bl sub_80CB7EC
- movs r0, 0x3
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080CBAA0 @ =sub_80CB9C4
-_080CBA96:
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBAA0: .4byte sub_80CB9C4
- thumb_func_end sub_80CBA28
-
- thumb_func_start sub_80CBAA4
-sub_80CBAA4: @ 80CBAA4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CBABE
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
- ldr r0, _080CBAE4 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x30]
-_080CBABE:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- muls r0, r1
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080CBADE
- adds r0, r4, 0
- bl move_anim_8072740
-_080CBADE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBAE4: .4byte gBattleAnimArgs
- thumb_func_end sub_80CBAA4
-
- thumb_func_start sub_80CBAE8
-sub_80CBAE8: @ 80CBAE8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_8078764
- ldr r4, _080CBB30 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080CBB34 @ =gBattleAnimBankTarget
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080CBB38
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80CB7EC
- movs r0, 0x1
- b _080CBB4A
- .align 2, 0
-_080CBB30: .4byte gBattleAnimBankAttacker
-_080CBB34: .4byte gBattleAnimBankTarget
-_080CBB38:
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80CB7EC
- movs r0, 0x3
-_080CBB4A:
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080CBB5C @ =sub_80CBB60
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBB5C: .4byte sub_80CBB60
- thumb_func_end sub_80CBAE8
-
- thumb_func_start sub_80CBB60
-sub_80CBB60: @ 80CBB60
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080CBB8A
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080CBB8A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- bne _080CBBBE
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
-_080CBBBE:
- adds r0, r4, 0
- bl sub_80CB814
- lsls r0, 24
- cmp r0, 0
- beq _080CBBE6
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- ldr r0, _080CBBEC @ =sub_80CB8B8
- str r0, [r4, 0x1C]
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
-_080CBBE6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBBEC: .4byte sub_80CB8B8
- thumb_func_end sub_80CBB60
-
- thumb_func_start sub_80CBBF0
-sub_80CBBF0: @ 80CBBF0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CBC84
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080CBC18
- ldr r0, _080CBC14 @ =gBattleAnimArgs
- ldrh r1, [r0, 0x2]
- strh r1, [r4, 0x30]
- movs r1, 0x78
- strh r1, [r4, 0x20]
- adds r5, r0, 0
- b _080CBC3A
- .align 2, 0
-_080CBC14: .4byte gBattleAnimArgs
-_080CBC18:
- ldr r0, _080CBC74 @ =gBattleAnimArgs
- movs r1, 0x2
- ldrsh r3, [r0, r1]
- adds r1, r3, 0
- subs r1, 0x20
- adds r2, r1, 0
- adds r5, r0, 0
- cmp r1, 0
- bge _080CBC2E
- adds r2, r3, 0
- adds r2, 0xDF
-_080CBC2E:
- asrs r0, r2, 8
- lsls r0, 8
- subs r0, r1, r0
- strh r0, [r4, 0x30]
- movs r0, 0x46
- strh r0, [r4, 0x20]
-_080CBC3A:
- ldrh r0, [r5]
- strh r0, [r4, 0x22]
- strh r0, [r4, 0x32]
- movs r0, 0x14
- strh r0, [r4, 0x36]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3C
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- ldr r0, _080CBC78 @ =sub_80CBC8C
- str r0, [r4, 0x1C]
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _080CBC7C
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
- b _080CBC82
- .align 2, 0
-_080CBC74: .4byte gBattleAnimArgs
-_080CBC78: .4byte sub_80CBC8C
-_080CBC7C:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
-_080CBC82:
- strb r0, [r1]
-_080CBC84:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CBBF0
-
- thumb_func_start sub_80CBC8C
-sub_80CBC8C: @ 80CBC8C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080CBC9E
- cmp r0, 0x1
- beq _080CBCCE
- b _080CBCEE
-_080CBC9E:
- ldrh r5, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x4E
- ble _080CBCB6
- movs r0, 0x1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080CBCEE
-_080CBCB6:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- adds r0, r5, r0
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x36]
- adds r1, 0x3
- strh r1, [r4, 0x36]
- strh r0, [r4, 0x22]
- b _080CBCEE
-_080CBCCE:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080CBCEE
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080CBCEE
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x32]
- ldr r0, _080CBCF4 @ =sub_80CBCF8
- str r0, [r4, 0x1C]
-_080CBCEE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBCF4: .4byte sub_80CBCF8
- thumb_func_end sub_80CBC8C
-
- thumb_func_start sub_80CBCF8
-sub_80CBCF8: @ 80CBCF8
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080CBD3C @ =gUnknown_083D680C
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r3, r0, r1
- adds r0, r5, 0x1
- adds r0, r3, r0
- ldrh r2, [r4, 0x32]
- movs r6, 0x32
- ldrsh r1, [r4, r6]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080CBD44
- adds r0, r5, 0x2
- adds r0, r3, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x7F
- bne _080CBD30
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080CBD40 @ =sub_80CBDB0
- str r0, [r4, 0x1C]
-_080CBD30:
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080CBDAA
- .align 2, 0
-_080CBD3C: .4byte gUnknown_083D680C
-_080CBD40: .4byte sub_80CBDB0
-_080CBD44:
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r1, r0, r5
- movs r2, 0
- ldrsb r2, [r1, r2]
- adds r1, r5, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- muls r0, r2
- ldrh r1, [r4, 0x30]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080CBD92
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _080CBD8A
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
- b _080CBD90
-_080CBD8A:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
-_080CBD90:
- strb r0, [r1]
-_080CBD92:
- movs r6, 0x30
- ldrsh r0, [r4, r6]
- movs r1, 0x3C
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
-_080CBDAA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80CBCF8
-
- thumb_func_start sub_80CBDB0
-sub_80CBDB0: @ 80CBDB0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- ble _080CBDC2
- adds r0, r4, 0
- bl move_anim_8072740
-_080CBDC2:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CBDB0
-
- thumb_func_start sub_80CBDF4
-sub_80CBDF4: @ 80CBDF4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080CBF48 @ =gTasks
- adds r5, r0, r1
- ldr r4, _080CBF4C @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- strh r0, [r5, 0x10]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_807A100
- strh r0, [r5, 0x1C]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_807A100
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0x1
- bne _080CBE5C
- movs r1, 0x1
-_080CBE5C:
- strh r1, [r5, 0x12]
- movs r3, 0x12
- ldrsh r0, [r5, r3]
- lsls r0, 6
- movs r1, 0x38
- subs r1, r0
- strh r1, [r5, 0x1A]
- ldrh r0, [r5, 0x16]
- subs r0, r1
- ldrh r1, [r5, 0x14]
- adds r0, r1
- strh r0, [r5, 0x18]
- ldr r0, _080CBF50 @ =gSpriteTemplate_83D6884
- movs r2, 0x18
- ldrsh r1, [r5, r2]
- movs r3, 0x1A
- ldrsh r2, [r5, r3]
- ldrb r3, [r5, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xC]
- cmp r0, 0x40
- bne _080CBE94
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080CBE94:
- ldr r4, _080CBF54 @ =gSprites
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xA
- strh r1, [r0, 0x2E]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x18]
- strh r1, [r0, 0x30]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r5, r3]
- muls r1, r0
- ldrh r0, [r5, 0x14]
- subs r0, r1
- strh r0, [r2, 0x32]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x1A]
- strh r1, [r0, 0x34]
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- lsrs r2, r0, 31
- adds r0, r2
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r2, [r5, r3]
- muls r0, r2
- ldrh r2, [r5, 0x16]
- adds r0, r2
- strh r0, [r1, 0x36]
- movs r3, 0xC
- ldrsh r1, [r5, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl sub_80CC338
- movs r1, 0xC
- ldrsh r2, [r5, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x38]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl sub_80786EC
- ldr r0, _080CBF58 @ =sub_80CBF5C
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBF48: .4byte gTasks
-_080CBF4C: .4byte gBattleAnimBankTarget
-_080CBF50: .4byte gSpriteTemplate_83D6884
-_080CBF54: .4byte gSprites
-_080CBF58: .4byte sub_80CBF5C
- thumb_func_end sub_80CBDF4
-
- thumb_func_start sub_80CBF5C
-sub_80CBF5C: @ 80CBF5C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080CBFA0 @ =gTasks
- adds r6, r0, r1
- movs r0, 0xC
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080CBFA4 @ =gSprites
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r5, [r6, r1]
- cmp r5, 0x7
- bne _080CBF84
- b _080CC1B4
-_080CBF84:
- cmp r5, 0x7
- bgt _080CBFD2
- cmp r5, 0x3
- bne _080CBF8E
- b _080CC0A6
-_080CBF8E:
- cmp r5, 0x3
- bgt _080CBFA8
- cmp r5, 0x1
- beq _080CC038
- cmp r5, 0x1
- bgt _080CC088
- cmp r5, 0
- beq _080CC01A
- b _080CC330
- .align 2, 0
-_080CBFA0: .4byte gTasks
-_080CBFA4: .4byte gSprites
-_080CBFA8:
- cmp r5, 0x5
- bne _080CBFAE
- b _080CC11C
-_080CBFAE:
- cmp r5, 0x5
- ble _080CBFB4
- b _080CC196
-_080CBFB4:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080CBFCA
- b _080CC330
-_080CBFCA:
- movs r0, 0x5
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CBFD2:
- cmp r5, 0xB
- bne _080CBFD8
- b _080CC298
-_080CBFD8:
- cmp r5, 0xB
- bgt _080CC006
- cmp r5, 0x9
- bne _080CBFE2
- b _080CC206
-_080CBFE2:
- cmp r5, 0x9
- ble _080CBFE8
- b _080CC27C
-_080CBFE8:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080CBFFE
- b _080CC330
-_080CBFFE:
- movs r0, 0x9
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CC006:
- cmp r5, 0xD
- bne _080CC00C
- b _080CC30A
-_080CC00C:
- cmp r5, 0xD
- bge _080CC012
- b _080CC2EA
-_080CC012:
- cmp r5, 0xFF
- bne _080CC018
- b _080CC31A
-_080CC018:
- b _080CC330
-_080CC01A:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080CC030
- b _080CC330
-_080CC030:
- movs r0, 0x1
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CC038:
- ldrh r2, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r2, r3
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x14]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x16]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- ldrh r0, [r6, 0x10]
- adds r0, 0x2
- strh r0, [r6, 0x10]
- strh r5, [r6, 0xE]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC088:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080CC09E
- b _080CC330
-_080CC09E:
- movs r0, 0x3
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CC0A6:
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- movs r0, 0
- strh r1, [r4, 0x20]
- ldrh r2, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r2, r3
- strh r2, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r1, r0
- ldrh r0, [r6, 0x14]
- subs r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- muls r1, r0
- ldrh r0, [r6, 0x16]
- subs r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- movs r0, 0x2
- strh r0, [r6, 0xE]
- ldrh r0, [r6, 0x10]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC11C:
- ldrh r1, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r1, r3
- movs r0, 0
- strh r1, [r4, 0x20]
- ldrh r2, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r2, r3
- strh r2, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r0, r1
- ldrh r1, [r6, 0x14]
- adds r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r2, 0x1E
- ldrsh r0, [r6, r2]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r0, r1
- ldrh r1, [r6, 0x16]
- adds r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- subs r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x3
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC196:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080CC1AC
- b _080CC330
-_080CC1AC:
- movs r0, 0x7
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CC1B4:
- ldrh r2, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r2, r3
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x14]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x16]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- adds r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x4
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC206:
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- movs r0, 0
- strh r1, [r4, 0x20]
- ldrh r2, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r2, r3
- strh r2, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r1, r0
- ldrh r0, [r6, 0x14]
- subs r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- muls r0, r1
- ldrh r3, [r6, 0x16]
- adds r0, r3
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- movs r0, 0x5
- strh r0, [r6, 0xE]
- ldrh r0, [r6, 0x10]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC27C:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080CC330
- movs r0, 0xB
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CC298:
- ldrh r2, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r2, r0
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x18]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x1A]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- subs r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x6
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC2EA:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080CC330
- adds r0, r4, 0
- bl DestroySprite
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC30A:
- movs r1, 0x20
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CC330
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _080CC330
-_080CC31A:
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080CC330
- movs r0, 0
- strh r0, [r6, 0xA]
- ldrh r0, [r6, 0x26]
-_080CC32E:
- strh r0, [r6, 0x8]
-_080CC330:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80CBF5C
-
- thumb_func_start sub_80CC338
-sub_80CC338: @ 80CC338
- push {lr}
- movs r2, 0x8
- movs r3, 0x36
- ldrsh r1, [r0, r3]
- movs r3, 0x22
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bge _080CC34E
- negs r0, r2
- lsls r0, 16
- lsrs r2, r0, 16
-_080CC34E:
- lsls r0, r2, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80CC338
-
- thumb_func_start sub_80CC358
-sub_80CC358: @ 80CC358
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- ldrh r0, [r6, 0x24]
- adds r0, 0x1
- strh r0, [r6, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _080CC3EE
- movs r0, 0
- strh r0, [r6, 0x24]
- ldr r0, _080CC3F8 @ =gSprites
- mov r8, r0
- movs r2, 0xC
- ldrsh r1, [r6, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrh r1, [r0, 0x24]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- ldrh r2, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r2, r0
- ldr r0, _080CC3FC @ =gSpriteTemplate_83D6884
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- ldrb r3, [r6, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080CC3EE
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- mov r0, r8
- adds r4, r5, r0
- strh r7, [r4, 0x3A]
- movs r0, 0xC
- strh r0, [r4, 0x3C]
- ldr r0, _080CC400 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldrh r2, [r6, 0x22]
- movs r0, 0x1
- ands r0, r2
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r6, 0x10]
- adds r4, 0x43
- strb r0, [r4]
- mov r0, r8
- adds r0, 0x1C
- adds r5, r0
- ldr r0, _080CC404 @ =sub_80CC408
- str r0, [r5]
-_080CC3EE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC3F8: .4byte gSprites
-_080CC3FC: .4byte gSpriteTemplate_83D6884
-_080CC400: .4byte gTasks
-_080CC404: .4byte sub_80CC408
- thumb_func_end sub_80CC358
-
- thumb_func_start sub_80CC408
-sub_80CC408: @ 80CC408
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CC46A
- movs r0, 0
- strh r0, [r4, 0x2E]
- 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]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080CC46A
- ldr r3, _080CC470 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080CC46A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC470: .4byte gTasks
- thumb_func_end sub_80CC408
-
- thumb_func_start sub_80CC474
-sub_80CC474: @ 80CC474
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _080CC488 @ =gBattleAnimArgs
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CC490
- ldr r0, _080CC48C @ =gBattleAnimBankAttacker
- b _080CC492
- .align 2, 0
-_080CC488: .4byte gBattleAnimArgs
-_080CC48C: .4byte gBattleAnimBankAttacker
-_080CC490:
- ldr r0, _080CC4B0 @ =gBattleAnimBankTarget
-_080CC492:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080CC4BC
- movs r0, 0
- strh r0, [r4, 0x36]
- ldr r1, _080CC4B4 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x32]
- ldr r0, _080CC4B8 @ =0x0000fff0
- b _080CC4CC
- .align 2, 0
-_080CC4B0: .4byte gBattleAnimBankTarget
-_080CC4B4: .4byte gBattleAnimArgs
-_080CC4B8: .4byte 0x0000fff0
-_080CC4BC:
- movs r0, 0x1
- strh r0, [r4, 0x36]
- ldr r1, _080CC4F0 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r4, 0x32]
- movs r0, 0x80
- lsls r0, 1
-_080CC4CC:
- strh r0, [r4, 0x20]
- adds r7, r1, 0
- adds r5, r7, 0
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x34]
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080CC502
- cmp r0, 0x1
- bgt _080CC4F4
- cmp r0, 0
- beq _080CC4FE
- b _080CC56C
- .align 2, 0
-_080CC4F0: .4byte gBattleAnimArgs
-_080CC4F4:
- cmp r0, 0x2
- beq _080CC508
- cmp r0, 0x3
- beq _080CC534
- b _080CC56C
-_080CC4FE:
- ldrh r0, [r5]
- b _080CC518
-_080CC502:
- ldrh r0, [r5]
- strh r0, [r4, 0x22]
- b _080CC54E
-_080CC508:
- adds r0, r6, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5]
- adds r0, r5
-_080CC518:
- strh r0, [r4, 0x22]
- adds r0, r6, 0
- 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 _080CC56C
-_080CC534:
- ldr r0, _080CC578 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r7, [r7]
- adds r0, r7
- strh r0, [r4, 0x22]
- movs r0, 0x1
- bl GetAnimBankSpriteId
-_080CC54E:
- adds r0, r6, 0
- 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]
-_080CC56C:
- ldr r0, _080CC57C @ =sub_80CC580
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC578: .4byte gBattleAnimBankTarget
-_080CC57C: .4byte sub_80CC580
- thumb_func_end sub_80CC474
-
- thumb_func_start sub_80CC580
-sub_80CC580: @ 80CC580
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- ldrsh r3, [r4, r0]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- ldr r1, _080CC5D4 @ =gSineTable
- movs r5, 0x2E
- ldrsh r0, [r4, r5]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- muls r0, r2
- asrs r0, 8
- strh r0, [r4, 0x26]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- muls r0, r3
- strh r0, [r4, 0x24]
- movs r5, 0x34
- ldrsh r0, [r4, r5]
- muls r0, r3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CC5D8
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- movs r5, 0x20
- ldrsh r1, [r4, r5]
- adds r0, r1
- cmp r0, 0xF7
- ble _080CC5F0
- b _080CC5EA
- .align 2, 0
-_080CC5D4: .4byte gSineTable
-_080CC5D8:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bgt _080CC5F0
-_080CC5EA:
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080CC5F0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CC580
-
- thumb_func_start sub_80CC5F8
-sub_80CC5F8: @ 80CC5F8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080CC618 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080CC61C
- cmp r0, 0x1
- beq _080CC650
- b _080CC6AA
- .align 2, 0
-_080CC618: .4byte gTasks
-_080CC61C:
- ldr r0, _080CC648 @ =0x0000274f
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r2, 0x80
- lsls r2, 1
- adds r4, r2, 0
- adds r0, r4
- strh r0, [r5, 0x18]
- ldr r0, _080CC64C @ =0x000027b0
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- adds r0, r4
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080CC6AA
- .align 2, 0
-_080CC648: .4byte 0x0000274f
-_080CC64C: .4byte 0x000027b0
-_080CC650:
- ldrh r0, [r5, 0x1A]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r5, 0x1A]
- lsls r0, 16
- cmp r0, 0
- blt _080CC6AA
- strh r7, [r5, 0x1A]
- ldrh r0, [r5, 0x18]
- ldrb r2, [r5, 0x1C]
- ldr r4, _080CC6C4 @ =gUnknown_083D6984
- movs r3, 0x1E
- ldrsh r1, [r5, r3]
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r5, 0x20]
- ldrb r2, [r5, 0x1C]
- movs r3, 0x1E
- ldrsh r1, [r5, r3]
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x11
- bne _080CC6AA
- strh r7, [r5, 0x1C]
- ldrh r0, [r5, 0x1E]
- adds r0, 0x1
- strh r0, [r5, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bne _080CC6AA
- strh r7, [r5, 0x1E]
-_080CC6AA:
- ldr r0, _080CC6C8 @ =gBattleAnimArgs
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080CC6BE
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080CC6BE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC6C4: .4byte gUnknown_083D6984
-_080CC6C8: .4byte gBattleAnimArgs
- thumb_func_end sub_80CC5F8
-
- thumb_func_start sub_80CC6CC
-sub_80CC6CC: @ 80CC6CC
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r1, _080CC6E4 @ =gBattleAnimArgs
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080CC6E8
- adds r0, r6, 0
- bl move_anim_8072740
- b _080CC7C2
- .align 2, 0
-_080CC6E4: .4byte gBattleAnimArgs
-_080CC6E8:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080CC6F8
- ldr r4, _080CC6F4 @ =gBattleAnimBankAttacker
- b _080CC6FA
- .align 2, 0
-_080CC6F4: .4byte gBattleAnimBankAttacker
-_080CC6F8:
- ldr r4, _080CC734 @ =gBattleAnimBankTarget
-_080CC6FA:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080CC738 @ =gBattleAnimArgs
- ldrh r1, [r0, 0x8]
- strh r1, [r6, 0x2E]
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- adds r7, r0, 0
- cmp r1, 0
- bne _080CC73C
- ldrh r0, [r7, 0x4]
- adds r0, r5
- strh r0, [r6, 0x20]
- ldrh r0, [r7, 0x6]
- adds r0, r2
- strh r0, [r6, 0x22]
- strh r5, [r6, 0x38]
- strh r2, [r6, 0x3A]
- b _080CC74C
- .align 2, 0
-_080CC734: .4byte gBattleAnimBankTarget
-_080CC738: .4byte gBattleAnimArgs
-_080CC73C:
- strh r5, [r6, 0x20]
- strh r2, [r6, 0x22]
- ldrh r0, [r7, 0x4]
- adds r0, r5
- strh r0, [r6, 0x38]
- ldrh r0, [r7, 0x6]
- adds r0, r2
- strh r0, [r6, 0x3A]
-_080CC74C:
- ldrh r4, [r6, 0x20]
- lsls r0, r4, 4
- strh r0, [r6, 0x30]
- ldrh r5, [r6, 0x22]
- lsls r0, r5, 4
- strh r0, [r6, 0x32]
- movs r1, 0x38
- ldrsh r0, [r6, r1]
- movs r2, 0x20
- ldrsh r1, [r6, r2]
- subs r0, r1
- lsls r0, 4
- movs r3, 0x8
- ldrsh r1, [r7, r3]
- bl __divsi3
- strh r0, [r6, 0x34]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x22
- ldrsh r1, [r6, r2]
- subs r0, r1
- lsls r0, 4
- movs r3, 0x8
- ldrsh r1, [r7, r3]
- bl __divsi3
- strh r0, [r6, 0x36]
- ldrh r0, [r6, 0x38]
- subs r0, r4
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r6, 0x3A]
- subs r1, r5
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- lsrs r4, r0, 16
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080CC7AE
- ldr r1, _080CC7CC @ =0xffff8000
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_080CC7AE:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r6, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- ldr r0, _080CC7D0 @ =sub_80CC7D4
- str r0, [r6, 0x1C]
-_080CC7C2:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC7CC: .4byte 0xffff8000
-_080CC7D0: .4byte sub_80CC7D4
- thumb_func_end sub_80CC6CC
-
- thumb_func_start sub_80CC7D4
-sub_80CC7D4: @ 80CC7D4
- push {r4,lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080CC804
- ldrh r0, [r2, 0x34]
- ldrh r4, [r2, 0x30]
- adds r0, r4
- strh r0, [r2, 0x30]
- ldrh r1, [r2, 0x36]
- ldrh r4, [r2, 0x32]
- adds r1, r4
- strh r1, [r2, 0x32]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r2, 0x22]
- subs r0, r3, 0x1
- strh r0, [r2, 0x2E]
- b _080CC80A
-_080CC804:
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080CC80A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CC7D4
-
- thumb_func_start sub_80CC810
-sub_80CC810: @ 80CC810
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080CC826
- adds r0, r2, 0
- bl move_anim_8072740
-_080CC826:
- pop {r0}
- bx r0
- thumb_func_end sub_80CC810
-
- thumb_func_start sub_80CC82C
-sub_80CC82C: @ 80CC82C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CC84C @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080CC854
- ldr r2, _080CC850 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- b _080CC860
- .align 2, 0
-_080CC84C: .4byte gBattleAnimBankAttacker
-_080CC850: .4byte gBattleAnimArgs
-_080CC854:
- ldr r0, _080CC878 @ =gBattleAnimArgs
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
-_080CC860:
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080CC87C @ =sub_8078600
- str r0, [r4, 0x1C]
- ldr r1, _080CC880 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC878: .4byte gBattleAnimArgs
-_080CC87C: .4byte sub_8078600
-_080CC880: .4byte move_anim_8072740
- thumb_func_end sub_80CC82C
-
- thumb_func_start sub_80CC884
-sub_80CC884: @ 80CC884
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080CC8BC @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080CC89E
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080CC89E:
- ldr r0, _080CC8C0 @ =sub_80CC810
- str r0, [r5, 0x1C]
- ldr r4, _080CC8C4 @ =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_807867C
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC8BC: .4byte gBattleAnimBankAttacker
-_080CC8C0: .4byte sub_80CC810
-_080CC8C4: .4byte gBattleAnimArgs
- thumb_func_end sub_80CC884
-
- thumb_func_start sub_80CC8C8
-sub_80CC8C8: @ 80CC8C8
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080CC908 @ =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]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x38]
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- ldr r1, _080CC90C @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080CC910 @ =sub_8078504
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC908: .4byte gBattleAnimArgs
-_080CC90C: .4byte move_anim_8074EE0
-_080CC910: .4byte sub_8078504
- thumb_func_end sub_80CC8C8
-
- thumb_func_start sub_80CC914
-sub_80CC914: @ 80CC914
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080CC964 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080CC948
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
-_080CC948:
- ldr r0, _080CC968 @ =sub_80CCB00
- str r0, [r5, 0x1C]
- ldr r0, _080CC96C @ =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _080CC970
- ldrh r0, [r3]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- b _080CC984
- .align 2, 0
-_080CC964: .4byte gBattleAnimBankTarget
-_080CC968: .4byte sub_80CCB00
-_080CC96C: .4byte gBattleAnimArgs
-_080CC970:
- ldrh r0, [r5, 0x20]
- ldrh r1, [r3]
- subs r0, r1
- strh r0, [r5, 0x20]
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080CC984:
- ldrh r0, [r3, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldr r1, _080CC9B8 @ =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r5, 0x30]
- adds r1, r0, r2
- strh r1, [r5, 0x30]
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
- ldrh r0, [r3, 0x4]
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080CC9B2
- negs r0, r1
- strh r0, [r5, 0x30]
-_080CC9B2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC9B8: .4byte 0xfffffc00
- thumb_func_end sub_80CC914
-
- thumb_func_start sub_80CC9BC
-sub_80CC9BC: @ 80CC9BC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r0, _080CC9D8 @ =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080CC9DC
- cmp r0, 0x1
- ble _080CCA58
- cmp r0, 0x2
- beq _080CC9FC
- b _080CCA58
- .align 2, 0
-_080CC9D8: .4byte gBattleAnimArgs
-_080CC9DC:
- ldr r5, _080CC9F8 @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r5]
- eors r4, r0
- adds r0, r4, 0
- b _080CCA68
- .align 2, 0
-_080CC9F8: .4byte gBattleAnimBankTarget
-_080CC9FC:
- ldr r5, _080CCA54 @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r5]
- movs r2, 0x2
- mov r8, r2
- mov r1, r8
- eors r0, r1
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080CCA72
- ldrb r0, [r5]
- mov r2, r8
- eors r0, r2
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- lsrs r7, r0, 1
- ldrb r0, [r5]
- mov r1, r8
- eors r0, r1
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- lsrs r4, r0, 1
- b _080CCA72
- .align 2, 0
-_080CCA54: .4byte gBattleAnimBankTarget
-_080CCA58:
- ldr r4, _080CCAA4 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r4]
-_080CCA68:
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r4, r0, 24
-_080CCA72:
- strh r7, [r6, 0x20]
- strh r4, [r6, 0x22]
- ldr r0, _080CCAA4 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080CCA8A
- ldrh r0, [r6, 0x22]
- adds r0, 0x8
- strh r0, [r6, 0x22]
-_080CCA8A:
- ldr r0, _080CCAA8 @ =sub_80CCB00
- str r0, [r6, 0x1C]
- ldr r0, _080CCAAC @ =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _080CCAB0
- ldrh r0, [r3]
- ldrh r1, [r6, 0x20]
- adds r0, r1
- strh r0, [r6, 0x20]
- b _080CCAC4
- .align 2, 0
-_080CCAA4: .4byte gBattleAnimBankTarget
-_080CCAA8: .4byte sub_80CCB00
-_080CCAAC: .4byte gBattleAnimArgs
-_080CCAB0:
- ldrh r0, [r6, 0x20]
- ldrh r1, [r3]
- subs r0, r1
- strh r0, [r6, 0x20]
- adds r2, r6, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080CCAC4:
- ldrh r0, [r3, 0x2]
- ldrh r2, [r6, 0x22]
- adds r0, r2
- strh r0, [r6, 0x22]
- ldr r1, _080CCAFC @ =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r6, 0x30]
- adds r1, r0, r2
- strh r1, [r6, 0x30]
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- ldrh r2, [r6, 0x32]
- adds r0, r2
- strh r0, [r6, 0x32]
- ldrh r0, [r3, 0x4]
- strh r0, [r6, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080CCAF2
- negs r0, r1
- strh r0, [r6, 0x30]
-_080CCAF2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCAFC: .4byte 0xfffffc00
- thumb_func_end sub_80CC9BC
-
- thumb_func_start sub_80CCB00
-sub_80CCB00: @ 80CCB00
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x34]
- adds r0, r1, r2
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080CCB22
- adds r0, r1, 0
- adds r0, 0x18
- b _080CCB26
-_080CCB22:
- adds r0, r1, 0
- subs r0, 0x18
-_080CCB26:
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- subs r0, 0x18
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080CCB5C
- ldr r1, _080CCB64 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- ldr r0, _080CCB68 @ =sub_80782D8
- str r0, [r4, 0x1C]
-_080CCB5C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCB64: .4byte move_anim_8072740
-_080CCB68: .4byte sub_80782D8
- thumb_func_end sub_80CCB00
-
- thumb_func_start unref_sub_80CCB6C
-unref_sub_80CCB6C: @ 80CCB6C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x32]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- ble _080CCC10
- ldrh r1, [r5, 0x34]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CCBC8
- adds r3, r5, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r1
- strb r0, [r3]
- ldr r4, _080CCBC4 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r3, [r0]
- adds r1, r2, 0
- ands r1, r3
- strb r1, [r0]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- b _080CCBFE
- .align 2, 0
-_080CCBC4: .4byte gSprites
-_080CCBC8:
- adds r1, r5, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r3, _080CCC0C @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
-_080CCBFE:
- movs r0, 0
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- b _080CCC14
- .align 2, 0
-_080CCC0C: .4byte gSprites
-_080CCC10:
- adds r0, r1, 0x1
- strh r0, [r5, 0x32]
-_080CCC14:
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0xA
- bne _080CCC44
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080CCC4C @ =gSprites
- adds r0, r4
- bl DestroySprite
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r0, r5, 0
- bl move_anim_8072740
-_080CCC44:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCC4C: .4byte gSprites
- thumb_func_end unref_sub_80CCB6C
-
- thumb_func_start sub_80CCC50
-sub_80CCC50: @ 80CCC50
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080CCC70 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, _080CCC74 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080CCC78
- ldrh r0, [r5, 0x20]
- ldrh r1, [r4]
- subs r0, r1
- b _080CCC7E
- .align 2, 0
-_080CCC70: .4byte gBattleAnimArgs
-_080CCC74: .4byte gBattleAnimBankAttacker
-_080CCC78:
- ldrh r0, [r4]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080CCC7E:
- strh r0, [r5, 0x20]
- ldr r4, _080CCCAC @ =gBattleAnimArgs
- ldrb r1, [r4, 0xA]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x6]
- negs r0, r0
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x34]
- ldr r1, _080CCCB0 @ =sub_80CCCB4
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCCAC: .4byte gBattleAnimArgs
-_080CCCB0: .4byte sub_80CCCB4
- thumb_func_end sub_80CCC50
-
- thumb_func_start sub_80CCCB4
-sub_80CCCB4: @ 80CCCB4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x64
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _080CCCE0
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0
- b _080CCCE6
-_080CCCE0:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0xE
-_080CCCE6:
- strb r0, [r1]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x2E]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- adds r0, 0x82
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080CCD1C
- adds r0, r4, 0
- bl move_anim_8072740
-_080CCD1C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CCCB4
-
- thumb_func_start sub_80CCD24
-sub_80CCD24: @ 80CCD24
- push {r4-r6,lr}
- adds r5, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080CCD3A
- ldr r1, _080CCD98 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- adds r0, 0x8
- strh r0, [r1, 0x2]
-_080CCD3A:
- ldr r6, _080CCD9C @ =gBattleAnimBankAttacker
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077EE4
- lsls r0, 24
- ldr r4, _080CCD98 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldrb r0, [r6]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080CCD78
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080CCDA0
-_080CCD78:
- ldrb r0, [r6]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r5, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
- b _080CCDB8
- .align 2, 0
-_080CCD98: .4byte gBattleAnimArgs
-_080CCD9C: .4byte gBattleAnimBankAttacker
-_080CCDA0:
- ldrb r0, [r6]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
-_080CCDB8:
- ldr r0, _080CCDF8 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, _080CCDFC @ =0x00002828
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3
- strh r0, [r5, 0x32]
- movs r2, 0x10
- movs r0, 0x10
- strh r0, [r5, 0x3C]
- ldr r1, _080CCE00 @ =REG_BLDCNT
- movs r3, 0xFD
- lsls r3, 6
- adds r0, r3, 0
- strh r0, [r1]
- ldr r3, _080CCE04 @ =REG_BLDALPHA
- ldrh r1, [r5, 0x3C]
- lsls r0, r1, 8
- subs r2, r1
- orrs r0, r2
- strh r0, [r3]
- ldr r0, _080CCE08 @ =sub_80CCE0C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCDF8: .4byte gBattleAnimArgs
-_080CCDFC: .4byte 0x00002828
-_080CCE00: .4byte REG_BLDCNT
-_080CCE04: .4byte REG_BLDALPHA
-_080CCE08: .4byte sub_80CCE0C
- thumb_func_end sub_80CCD24
-
- thumb_func_start sub_80CCE0C
-sub_80CCE0C: @ 80CCE0C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x60
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CCE6A
- movs r0, 0
- strh r0, [r4, 0x30]
- ldr r1, _080CCEB0 @ =gPlttBufferFaded
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- adds r0, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r5, [r0]
- movs r2, 0
- adds r6, r1, 0
- adds r3, r6, 0
-_080CCE44:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- adds r2, 0x1
- adds r0, r2
- lsls r1, r0, 1
- adds r1, r3
- adds r0, 0x1
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- cmp r2, 0x5
- ble _080CCE44
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- adds r0, 0x7
- lsls r0, 1
- adds r0, r6
- strh r5, [r0]
-_080CCE6A:
- ldrh r2, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- ble _080CCE9E
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- ble _080CCEB8
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CCE9E
- movs r0, 0
- strh r0, [r4, 0x3A]
- subs r2, 0x1
- strh r2, [r4, 0x3C]
- ldr r3, _080CCEB4 @ =REG_BLDALPHA
- lsls r1, r2, 8
- movs r0, 0x10
- subs r0, r2
- orrs r1, r0
- strh r1, [r3]
-_080CCE9E:
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080CCEB8
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _080CCEF4
- .align 2, 0
-_080CCEB0: .4byte gPlttBufferFaded
-_080CCEB4: .4byte REG_BLDALPHA
-_080CCEB8:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CCEF4
- movs r0, 0
- strh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- adds r1, 0x1
- strh r1, [r4, 0x3C]
- ldr r3, _080CCEFC @ =REG_BLDALPHA
- lsls r2, r1, 8
- movs r0, 0x10
- subs r0, r1
- orrs r2, r0
- strh r2, [r3]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080CCEF4
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080CCF00 @ =sub_807861C
- str r0, [r4, 0x1C]
-_080CCEF4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCEFC: .4byte REG_BLDALPHA
-_080CCF00: .4byte sub_807861C
- thumb_func_end sub_80CCE0C
-
- thumb_func_start sub_80CCF04
-sub_80CCF04: @ 80CCF04
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080CCF5C @ =gBattleAnimBankTarget
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080CCF60 @ =0x0000ffe8
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x32]
- strh r5, [r4, 0x34]
- strh r5, [r4, 0x36]
- strh r5, [r4, 0x3A]
- movs r0, 0x10
- strh r0, [r4, 0x3C]
- ldr r1, _080CCF64 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080CCF68 @ =REG_BLDALPHA
- ldrh r0, [r4, 0x3C]
- lsls r0, 8
- ldrh r1, [r4, 0x3A]
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _080CCF6C @ =sub_80CCF70
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCF5C: .4byte gBattleAnimBankTarget
-_080CCF60: .4byte 0x0000ffe8
-_080CCF64: .4byte REG_BLDCNT
-_080CCF68: .4byte REG_BLDALPHA
-_080CCF6C: .4byte sub_80CCF70
- thumb_func_end sub_80CCF04
-
- thumb_func_start sub_80CCF70
-sub_80CCF70: @ 80CCF70
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080CCF7E
- b _080CD0C0
-_080CCF7E:
- lsls r0, 2
- ldr r1, _080CCF88 @ =_080CCF8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CCF88: .4byte _080CCF8C
- .align 2, 0
-_080CCF8C:
- .4byte _080CCFA0
- .4byte _080CD004
- .4byte _080CD020
- .4byte _080CD09C
- .4byte _080CD0B0
-_080CCFA0:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- bgt _080CCFAE
- b _080CD0C0
-_080CCFAE:
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CCFD0
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080CCFDE
- adds r0, r1, 0x1
- strh r0, [r4, 0x3A]
- b _080CCFDE
-_080CCFD0:
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080CCFDE
- subs r0, r1, 0x1
- strh r0, [r4, 0x3C]
-_080CCFDE:
- ldr r2, _080CD000 @ =REG_BLDALPHA
- ldrh r0, [r4, 0x3C]
- lsls r0, 8
- ldrh r1, [r4, 0x3A]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080CD0C0
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080CD0C0
- strh r0, [r4, 0x30]
- b _080CD0A8
- .align 2, 0
-_080CD000: .4byte REG_BLDALPHA
-_080CD004:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080CD0C0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080CD0A8
-_080CD020:
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x4
- bl sub_80CD0CC
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080CD042
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
-_080CD042:
- ldrh r0, [r4, 0x32]
- adds r1, r0, 0x1
- strh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _080CD0C0
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080CD068
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080CD076
- subs r0, r1, 0x1
- strh r0, [r4, 0x3A]
- b _080CD076
-_080CD068:
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080CD076
- adds r0, r1, 0x1
- strh r0, [r4, 0x3C]
-_080CD076:
- ldr r0, _080CD098 @ =REG_BLDALPHA
- ldrh r1, [r4, 0x3C]
- lsls r1, 8
- ldrh r2, [r4, 0x3A]
- orrs r1, r2
- strh r1, [r0]
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _080CD0C0
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bne _080CD0C0
- strh r1, [r4, 0x30]
- strh r1, [r4, 0x32]
- b _080CD0A8
- .align 2, 0
-_080CD098: .4byte REG_BLDALPHA
-_080CD09C:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080CD0A8:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080CD0C0
-_080CD0B0:
- ldr r0, _080CD0C8 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r4, 0
- bl move_anim_8072740
-_080CD0C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD0C8: .4byte REG_BLDCNT
- thumb_func_end sub_80CCF70
-
- thumb_func_start sub_80CD0CC
-sub_80CD0CC: @ 80CD0CC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0xB
- bgt _080CD0DE
- ldrh r0, [r4, 0x36]
- adds r0, 0x2
- strh r0, [r4, 0x36]
-_080CD0DE:
- ldrh r5, [r4, 0x34]
- adds r0, r5, 0
- subs r0, 0x12
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- cmp r0, 0x17
- bhi _080CD0F4
- ldrh r0, [r4, 0x36]
- subs r0, 0x2
- strh r0, [r4, 0x36]
-_080CD0F4:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2F
- ble _080CD102
- ldrh r0, [r4, 0x36]
- adds r0, 0x2
- strh r0, [r4, 0x36]
-_080CD102:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0x9
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl __divsi3
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- bge _080CD128
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x26]
-_080CD128:
- adds r0, r5, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _080CD138
- movs r0, 0
- strh r0, [r4, 0x34]
-_080CD138:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD0CC
-
- thumb_func_start sub_80CD140
-sub_80CD140: @ 80CD140
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080CD184 @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080CD154
- adds r0, r4, 0
- bl sub_8078650
-_080CD154:
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_807867C
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x32]
- ldr r1, _080CD188 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080CD18C @ =sub_8078394
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD184: .4byte gBattleAnimArgs
-_080CD188: .4byte move_anim_8072740
-_080CD18C: .4byte sub_8078394
- thumb_func_end sub_80CD140
-
- thumb_func_start sub_80CD190
-sub_80CD190: @ 80CD190
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080CD1A4 @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CD1AC
- ldr r0, _080CD1A8 @ =gBattleAnimBankAttacker
- b _080CD1AE
- .align 2, 0
-_080CD1A4: .4byte gBattleAnimArgs
-_080CD1A8: .4byte gBattleAnimBankAttacker
-_080CD1AC:
- ldr r0, _080CD1F0 @ =gBattleAnimBankTarget
-_080CD1AE:
- ldrb r6, [r0]
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _080CD1F8
- movs r1, 0x2
- adds r0, r6, 0
- eors r0, r1
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080CD1F8
- ldr r4, _080CD1F4 @ =gBattleAnimArgs
- ldrb r1, [r4, 0xC]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- adds r0, r6, 0
- bl sub_807A3FC
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r0, r5, 0
- bl sub_807867C
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- b _080CD248
- .align 2, 0
-_080CD1F0: .4byte gBattleAnimBankTarget
-_080CD1F4: .4byte gBattleAnimArgs
-_080CD1F8:
- ldr r4, _080CD218 @ =gBattleAnimArgs
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080CD21C
- adds r0, r6, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x1
- b _080CD22E
- .align 2, 0
-_080CD218: .4byte gBattleAnimArgs
-_080CD21C:
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
-_080CD22E:
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldr r0, _080CD268 @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r5, 0
- bl sub_807867C
-_080CD248:
- ldr r1, _080CD268 @ =gBattleAnimArgs
- ldrh r0, [r1, 0xA]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x32]
- ldr r1, _080CD26C @ =move_anim_8072740
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080CD270 @ =sub_8078394
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD268: .4byte gBattleAnimArgs
-_080CD26C: .4byte move_anim_8072740
-_080CD270: .4byte sub_8078394
- thumb_func_end sub_80CD190
-
- thumb_func_start sub_80CD274
-sub_80CD274: @ 80CD274
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r0, _080CD2A0 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080CD2A8
- ldr r0, _080CD2A4 @ =gBattleAnimArgs
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- b _080CD2C2
- .align 2, 0
-_080CD2A0: .4byte gBattleAnimBankAttacker
-_080CD2A4: .4byte gBattleAnimArgs
-_080CD2A8:
- ldr r2, _080CD2CC @ =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080CD2C2:
- ldr r0, _080CD2D0 @ =sub_80CD2D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD2CC: .4byte gBattleAnimArgs
-_080CD2D0: .4byte sub_80CD2D4
- thumb_func_end sub_80CD274
-
- thumb_func_start sub_80CD2D4
-sub_80CD2D4: @ 80CD2D4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080CD30C
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r0, 0x1E
- subs r0, r1
- movs r1, 0x3
- bl __divsi3
- strh r0, [r4, 0x26]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- lsls r0, 18
- asrs r0, 16
- movs r1, 0x3
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_080CD30C:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080CD320
- adds r0, r4, 0
- bl move_anim_8072740
-_080CD320:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD2D4
-
- thumb_func_start sub_80CD328
-sub_80CD328: @ 80CD328
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r0, _080CD358 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080CD360
- ldr r1, _080CD35C @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x1
- strh r0, [r4, 0x34]
- b _080CD37E
- .align 2, 0
-_080CD358: .4byte gBattleAnimBankAttacker
-_080CD35C: .4byte gBattleAnimArgs
-_080CD360:
- ldr r2, _080CD388 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldr r0, _080CD38C @ =0x0000ffff
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080CD37E:
- ldr r0, _080CD390 @ =sub_80CD394
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD388: .4byte gBattleAnimArgs
-_080CD38C: .4byte 0x0000ffff
-_080CD390: .4byte sub_80CD394
- thumb_func_end sub_80CD328
-
- thumb_func_start sub_80CD394
-sub_80CD394: @ 80CD394
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x28
- bl __divsi3
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 1
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080CD3D8
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080CD3D8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD394
-
- thumb_func_start sub_80CD3E0
-sub_80CD3E0: @ 80CD3E0
- push {lr}
- ldrh r1, [r0, 0x20]
- subs r1, 0x20
- strh r1, [r0, 0x20]
- ldrh r1, [r0, 0x22]
- subs r1, 0x20
- strh r1, [r0, 0x22]
- movs r1, 0x14
- strh r1, [r0, 0x2E]
- ldr r1, _080CD400 @ =sub_80782D8
- str r1, [r0, 0x1C]
- ldr r1, _080CD404 @ =sub_80CD408
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080CD400: .4byte sub_80782D8
-_080CD404: .4byte sub_80CD408
- thumb_func_end sub_80CD3E0
-
- thumb_func_start sub_80CD408
-sub_80CD408: @ 80CD408
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r6, [r5, 0x38]
- movs r1, 0x1
- adds r0, r1, 0
- ands r0, r6
- cmp r0, 0
- beq _080CD41E
- cmp r0, 0x1
- beq _080CD438
- b _080CD49E
-_080CD41E:
- strh r1, [r5, 0x2E]
- ldr r0, _080CD430 @ =sub_80782D8
- str r0, [r5, 0x1C]
- ldr r1, _080CD434 @ =sub_80CD408
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- b _080CD49E
- .align 2, 0
-_080CD430: .4byte sub_80782D8
-_080CD434: .4byte sub_80CD408
-_080CD438:
- ldrh r3, [r5, 0x24]
- ldrh r0, [r5, 0x20]
- adds r3, r0
- movs r0, 0
- strh r3, [r5, 0x20]
- ldrh r4, [r5, 0x26]
- ldrh r1, [r5, 0x22]
- adds r4, r1
- strh r4, [r5, 0x22]
- strh r0, [r5, 0x26]
- strh r0, [r5, 0x24]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- ldr r2, _080CD4AC @ =gUnknown_083D6DDC
- lsls r0, r6, 16
- asrs r0, 24
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- adds r3, r1
- strh r3, [r5, 0x32]
- adds r2, 0x1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r4, r0
- strh r4, [r5, 0x36]
- ldr r0, _080CD4B0 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080CD4B4 @ =sub_80CD4B8
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xD2
- bl PlaySE12WithPanning
-_080CD49E:
- ldrh r0, [r5, 0x38]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x38]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD4AC: .4byte gUnknown_083D6DDC
-_080CD4B0: .4byte sub_8078B34
-_080CD4B4: .4byte sub_80CD4B8
- thumb_func_end sub_80CD408
-
- thumb_func_start sub_80CD4B8
-sub_80CD4B8: @ 80CD4B8
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x38]
- lsls r0, 16
- asrs r0, 24
- cmp r0, 0x4
- bne _080CD4E0
- movs r0, 0xA
- strh r0, [r2, 0x2E]
- ldr r0, _080CD4D8 @ =sub_80782D8
- str r0, [r2, 0x1C]
- ldr r1, _080CD4DC @ =sub_80CD4EC
- adds r0, r2, 0
- bl StoreSpriteCallbackInData6
- b _080CD4E4
- .align 2, 0
-_080CD4D8: .4byte sub_80782D8
-_080CD4DC: .4byte sub_80CD4EC
-_080CD4E0:
- ldr r0, _080CD4E8 @ =sub_80CD408
- str r0, [r2, 0x1C]
-_080CD4E4:
- pop {r0}
- bx r0
- .align 2, 0
-_080CD4E8: .4byte sub_80CD408
- thumb_func_end sub_80CD4B8
-
- thumb_func_start sub_80CD4EC
-sub_80CD4EC: @ 80CD4EC
- push {r4-r7,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x6]
- cmp r1, 0
- bne _080CD514
- movs r0, 0x3
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- strh r1, [r5, 0x32]
- ldr r0, _080CD50C @ =sub_80782D8
- str r0, [r5, 0x1C]
- ldr r1, _080CD510 @ =sub_80CD5A8
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- b _080CD594
- .align 2, 0
-_080CD50C: .4byte sub_80782D8
-_080CD510: .4byte sub_80CD5A8
-_080CD514:
- ldrh r0, [r5, 0x6]
- cmp r0, 0x2
- beq _080CD534
- cmp r0, 0x2
- bgt _080CD524
- cmp r0, 0x1
- beq _080CD52A
- b _080CD548
-_080CD524:
- cmp r0, 0x3
- beq _080CD53C
- b _080CD548
-_080CD52A:
- ldr r6, _080CD530 @ =0x0000fff8
- adds r7, r6, 0
- b _080CD54C
- .align 2, 0
-_080CD530: .4byte 0x0000fff8
-_080CD534:
- ldr r7, _080CD538 @ =0x0000fff8
- b _080CD54A
- .align 2, 0
-_080CD538: .4byte 0x0000fff8
-_080CD53C:
- movs r7, 0x8
- ldr r6, _080CD544 @ =0x0000fff8
- b _080CD54C
- .align 2, 0
-_080CD544: .4byte 0x0000fff8
-_080CD548:
- movs r7, 0x8
-_080CD54A:
- movs r6, 0x8
-_080CD54C:
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, _080CD59C @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- ldr r0, _080CD5A0 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080CD5A4 @ =sub_80CD654
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080CD594:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD59C: .4byte gBattleAnimBankTarget
-_080CD5A0: .4byte sub_8078B34
-_080CD5A4: .4byte sub_80CD654
- thumb_func_end sub_80CD4EC
-
- thumb_func_start sub_80CD5A8
-sub_80CD5A8: @ 80CD5A8
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CD5C8
- ldrh r0, [r4, 0x30]
- adds r0, 0x3
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080CD5D8
- movs r0, 0x10
- b _080CD5D6
-_080CD5C8:
- ldrh r0, [r4, 0x30]
- subs r0, 0x3
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _080CD5D8
- movs r0, 0
-_080CD5D6:
- strh r0, [r4, 0x30]
-_080CD5D8:
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80791A8
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080CD634 @ =0x00007fff
- bl BlendPalettes
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bne _080CD640
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- lsls r0, r1, 5
- ldr r2, _080CD638 @ =gPlttBufferUnfaded + 0x210
- adds r0, r2
- lsls r1, 4
- ldr r3, _080CD63C @ =0x00000101
- adds r2, r3, 0
- orrs r1, r2
- movs r2, 0x4
- bl LoadPalette
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC0
- bl PlaySE12WithPanning
- b _080CD648
- .align 2, 0
-_080CD634: .4byte 0x00007fff
-_080CD638: .4byte gPlttBufferUnfaded + 0x210
-_080CD63C: .4byte 0x00000101
-_080CD640:
- cmp r0, 0
- bne _080CD648
- ldr r0, _080CD650 @ =sub_80CD654
- str r0, [r4, 0x1C]
-_080CD648:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD650: .4byte sub_80CD654
- thumb_func_end sub_80CD5A8
-
- thumb_func_start sub_80CD654
-sub_80CD654: @ 80CD654
- push {lr}
- adds r2, r0, 0
- ldr r0, _080CD670 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080CD674 @ =0x0000ffff
- cmp r1, r0
- bne _080CD66C
- movs r0, 0
- strh r0, [r2, 0x30]
- strh r0, [r2, 0x2E]
- ldr r0, _080CD678 @ =sub_80CD67C
- str r0, [r2, 0x1C]
-_080CD66C:
- pop {r0}
- bx r0
- .align 2, 0
-_080CD670: .4byte gBattleAnimArgs
-_080CD674: .4byte 0x0000ffff
-_080CD678: .4byte sub_80CD67C
- thumb_func_end sub_80CD654
-
- thumb_func_start sub_80CD67C
-sub_80CD67C: @ 80CD67C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080CD6B0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- 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]
-_080CD6B0:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _080CD6C4
- adds r0, r4, 0
- bl move_anim_8072740
-_080CD6C4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD67C
-
- thumb_func_start sub_80CD6CC
-sub_80CD6CC: @ 80CD6CC
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _080CD6EC @ =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r3, 0x6]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080CD6F0
- ldrh r0, [r3, 0x20]
- subs r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- subs r0, 0x18
- strh r0, [r3, 0x22]
- b _080CD742
- .align 2, 0
-_080CD6EC: .4byte gBattleAnimArgs
-_080CD6F0:
- cmp r0, 0x2
- bne _080CD70C
- ldrh r0, [r3, 0x20]
- subs r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- adds r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x20
- b _080CD73E
-_080CD70C:
- cmp r0, 0x3
- bne _080CD728
- ldrh r0, [r3, 0x20]
- adds r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- subs r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- b _080CD73E
-_080CD728:
- ldrh r0, [r3, 0x20]
- adds r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- adds r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x30
-_080CD73E:
- orrs r0, r1
- strb r0, [r3, 0x3]
-_080CD742:
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r4, _080CD768 @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080CD76C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldr r1, _080CD770 @ =sub_80CD3E0
- str r1, [r3, 0x1C]
- adds r0, r3, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD768: .4byte 0x000003ff
-_080CD76C: .4byte 0xfffffc00
-_080CD770: .4byte sub_80CD3E0
- thumb_func_end sub_80CD6CC
-
- thumb_func_start sub_80CD774
-sub_80CD774: @ 80CD774
- push {lr}
- adds r3, r0, 0
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- strh r0, [r3, 0x2E]
- ldr r0, _080CD79C @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080CD7B0
- cmp r0, 0x1
- bgt _080CD7A0
- cmp r0, 0
- beq _080CD7A6
- b _080CD7C0
- .align 2, 0
-_080CD79C: .4byte gBattleAnimArgs
-_080CD7A0:
- cmp r0, 0x2
- beq _080CD7B8
- b _080CD7C0
-_080CD7A6:
- ldr r0, _080CD7AC @ =sub_80CD7CC
- b _080CD7C2
- .align 2, 0
-_080CD7AC: .4byte sub_80CD7CC
-_080CD7B0:
- ldr r0, _080CD7B4 @ =sub_80CD8A8
- b _080CD7C2
- .align 2, 0
-_080CD7B4: .4byte sub_80CD8A8
-_080CD7B8:
- ldr r0, _080CD7BC @ =sub_80CD8F8
- b _080CD7C2
- .align 2, 0
-_080CD7BC: .4byte sub_80CD8F8
-_080CD7C0:
- ldr r0, _080CD7C8 @ =sub_80CD9B8
-_080CD7C2:
- str r0, [r3, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_080CD7C8: .4byte sub_80CD9B8
- thumb_func_end sub_80CD774
-
- thumb_func_start sub_80CD7CC
-sub_80CD7CC: @ 80CD7CC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x6
- strh r0, [r4, 0x2E]
- ldr r5, _080CD80C @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- movs r2, 0x2
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- beq _080CD7EA
- movs r1, 0x2
-_080CD7EA:
- strh r1, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080CD810 @ =gObjectBankIDs
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- ldr r1, _080CD814 @ =sub_80CD81C
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080CD818 @ =sub_8078458
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD80C: .4byte gBattleAnimBankAttacker
-_080CD810: .4byte gObjectBankIDs
-_080CD814: .4byte sub_80CD81C
-_080CD818: .4byte sub_8078458
- thumb_func_end sub_80CD7CC
-
- thumb_func_start sub_80CD81C
-sub_80CD81C: @ 80CD81C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0x2E
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _080CD858
- ldr r1, _080CD898 @ =gObjectBankIDs
- ldr r4, _080CD89C @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5, 0x34]
- movs r1, 0
- bl sub_8078E70
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- ldr r2, _080CD8A0 @ =0xfffffd00
- adds r1, r2, 0
- cmp r0, 0
- beq _080CD854
- movs r0, 0xC0
- lsls r0, 2
- adds r1, r0, 0
-_080CD854:
- strh r1, [r5, 0x36]
- strh r6, [r5, 0x38]
-_080CD858:
- ldrh r0, [r5, 0x36]
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r5, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080CD892
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080CD8A4 @ =sub_80CD9B8
- str r0, [r5, 0x1C]
-_080CD892:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD898: .4byte gObjectBankIDs
-_080CD89C: .4byte gBattleAnimBankAttacker
-_080CD8A0: .4byte 0xfffffd00
-_080CD8A4: .4byte sub_80CD9B8
- thumb_func_end sub_80CD81C
-
- thumb_func_start sub_80CD8A8
-sub_80CD8A8: @ 80CD8A8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x4
- strh r0, [r4, 0x2E]
- ldr r5, _080CD8E8 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- movs r1, 0x3
- cmp r0, 0
- beq _080CD8C6
- movs r0, 0x3
- negs r0, r0
- adds r1, r0, 0
-_080CD8C6:
- strh r1, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080CD8EC @ =gObjectBankIDs
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- ldr r1, _080CD8F0 @ =sub_80CD9B8
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080CD8F4 @ =sub_8078458
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD8E8: .4byte gBattleAnimBankAttacker
-_080CD8EC: .4byte gObjectBankIDs
-_080CD8F0: .4byte sub_80CD9B8
-_080CD8F4: .4byte sub_8078458
- thumb_func_end sub_80CD8A8
-
- thumb_func_start sub_80CD8F8
-sub_80CD8F8: @ 80CD8F8
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080CD912
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080CD918 @ =sub_80CD91C
- str r0, [r1, 0x1C]
-_080CD912:
- pop {r0}
- bx r0
- .align 2, 0
-_080CD918: .4byte sub_80CD91C
- thumb_func_end sub_80CD8F8
-
- thumb_func_start sub_80CD91C
-sub_80CD91C: @ 80CD91C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080CD96C
- ldr r1, _080CD958 @ =gObjectBankIDs
- ldr r4, _080CD95C @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080CD960
- movs r0, 0xFC
- lsls r0, 8
- strh r0, [r5, 0x36]
- movs r0, 0xC0
- lsls r0, 4
- b _080CD96A
- .align 2, 0
-_080CD958: .4byte gObjectBankIDs
-_080CD95C: .4byte gBattleAnimBankAttacker
-_080CD960:
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r5, 0x36]
- movs r0, 0xF4
- lsls r0, 8
-_080CD96A:
- strh r0, [r5, 0x38]
-_080CD96C:
- ldrh r0, [r5, 0x36]
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r5, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080CD9AC
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- ldr r0, _080CD9B4 @ =sub_80CD9B8
- str r0, [r5, 0x1C]
-_080CD9AC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD9B4: .4byte sub_80CD9B8
- thumb_func_end sub_80CD91C
-
- thumb_func_start sub_80CD9B8
-sub_80CD9B8: @ 80CD9B8
- push {lr}
- bl move_anim_8072740
- pop {r0}
- bx r0
- thumb_func_end sub_80CD9B8
-
- thumb_func_start sub_80CD9C4
-sub_80CD9C4: @ 80CD9C4
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r1, _080CD9D0 @ =sub_80CD9D4
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080CD9D0: .4byte sub_80CD9D4
- thumb_func_end sub_80CD9C4
-
- thumb_func_start sub_80CD9D4
-sub_80CD9D4: @ 80CD9D4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080CDA2E
- cmp r5, 0x1
- bgt _080CD9EA
- cmp r5, 0
- beq _080CD9F0
- b _080CDAC2
-_080CD9EA:
- cmp r5, 0x2
- beq _080CDA80
- b _080CDAC2
-_080CD9F0:
- strh r5, [r4, 0x30]
- ldr r1, _080CDA74 @ =gObjectBankIDs
- ldr r2, _080CDA78 @ =gBattleAnimBankAttacker
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x32]
- ldrb r0, [r2]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x34]
- ldr r2, _080CDA7C @ =0xfffffe00
- adds r1, r2, 0
- cmp r0, 0
- beq _080CDA18
- movs r0, 0x80
- lsls r0, 2
- adds r1, r0, 0
-_080CDA18:
- strh r1, [r4, 0x36]
- strh r5, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8078E70
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_080CDA2E:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080CDAC2
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080CDAC2
- .align 2, 0
-_080CDA74: .4byte gObjectBankIDs
-_080CDA78: .4byte gBattleAnimBankAttacker
-_080CDA7C: .4byte 0xfffffe00
-_080CDA80:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080CDAC2
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- adds r0, r4, 0
- bl move_anim_8072740
-_080CDAC2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD9D4
-
- thumb_func_start sub_80CDAC8
-sub_80CDAC8: @ 80CDAC8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080CDB0C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldr r1, _080CDB10 @ =gObjectBankIDs
- ldr r2, _080CDB14 @ =gBattleAnimBankAttacker
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0
- strh r0, [r5, 0x8]
- ldrb r0, [r2]
- bl GetBankSide
- lsls r0, 24
- lsrs r2, r0, 24
- strh r2, [r5, 0xA]
- strh r4, [r5, 0xC]
- ldr r0, _080CDB18 @ =gBattleAnimArgs
- movs r3, 0
- ldrsh r1, [r0, r3]
- cmp r1, 0
- beq _080CDB1C
- cmp r1, 0x1
- beq _080CDB38
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- b _080CDB56
- .align 2, 0
-_080CDB0C: .4byte gTasks
-_080CDB10: .4byte gObjectBankIDs
-_080CDB14: .4byte gBattleAnimBankAttacker
-_080CDB18: .4byte gBattleAnimArgs
-_080CDB1C:
- strh r1, [r5, 0xC]
- movs r0, 0x8
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
- movs r0, 0x3
- strh r0, [r5, 0x12]
- cmp r2, 0
- bne _080CDB30
- negs r0, r0
- strh r0, [r5, 0x12]
-_080CDB30:
- ldr r0, _080CDB34 @ =sub_80CDB60
- b _080CDB54
- .align 2, 0
-_080CDB34: .4byte sub_80CDB60
-_080CDB38:
- movs r0, 0x8
- strh r0, [r5, 0xE]
- movs r0, 0xC0
- lsls r0, 3
- strh r0, [r5, 0x10]
- movs r1, 0xC0
- strh r1, [r5, 0x12]
- cmp r2, 0
- bne _080CDB52
- negs r0, r0
- strh r0, [r5, 0x10]
- negs r0, r1
- strh r0, [r5, 0x12]
-_080CDB52:
- ldr r0, _080CDB5C @ =sub_80CDD20
-_080CDB54:
- str r0, [r5]
-_080CDB56:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDB5C: .4byte sub_80CDD20
- thumb_func_end sub_80CDAC8
-
- thumb_func_start sub_80CDB60
-sub_80CDB60: @ 80CDB60
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080CDB84 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080CDB7A
- b _080CDD1A
-_080CDB7A:
- lsls r0, 2
- ldr r1, _080CDB88 @ =_080CDB8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CDB84: .4byte gTasks
-_080CDB88: .4byte _080CDB8C
- .align 2, 0
-_080CDB8C:
- .4byte _080CDBA0
- .4byte _080CDBD2
- .4byte _080CDC2C
- .4byte _080CDCA4
- .4byte _080CDCE8
-_080CDBA0:
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _080CDBB0
- ldrh r2, [r4, 0x12]
- ldrh r3, [r4, 0x10]
- adds r2, r3
- b _080CDCF6
-_080CDBB0:
- movs r0, 0x8
- strh r0, [r4, 0xE]
- strh r1, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r1, 0xC0
- cmp r0, 0
- bne _080CDBC6
- movs r2, 0xC0
- negs r2, r2
- adds r1, r2, 0
-_080CDBC6:
- strh r1, [r4, 0x12]
- ldrb r0, [r4, 0x8]
- movs r1, 0
- bl sub_8078E70
- b _080CDCDC
-_080CDBD2:
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080CDBF8
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x10]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8078F9C
- b _080CDD08
-_080CDBF8:
- movs r0, 0x8
- strh r0, [r4, 0xE]
- ldr r2, _080CDC28 @ =gSprites
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x24]
- strh r0, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080CDC1E
- movs r1, 0x2
-_080CDC1E:
- strh r1, [r4, 0x12]
- movs r0, 0x1
- strh r0, [r4, 0x14]
- b _080CDCDC
- .align 2, 0
-_080CDC28: .4byte gSprites
-_080CDC2C:
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080CDC88
- ldrh r1, [r4, 0x14]
- movs r3, 0x14
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080CDC46
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- b _080CDD1A
-_080CDC46:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _080CDC68
- ldr r2, _080CDC64 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r4, 0x10]
- adds r1, r2
- b _080CDC7C
- .align 2, 0
-_080CDC64: .4byte gSprites
-_080CDC68:
- ldr r2, _080CDC84 @ =gSprites
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- ldrh r2, [r4, 0x12]
- subs r1, r2
-_080CDC7C:
- strh r1, [r0, 0x24]
- movs r0, 0x1
- strh r0, [r4, 0x14]
- b _080CDD08
- .align 2, 0
-_080CDC84: .4byte gSprites
-_080CDC88:
- ldr r2, _080CDCA0 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- strh r1, [r0, 0x24]
- movs r0, 0xC
- strh r0, [r4, 0xE]
- b _080CDCDC
- .align 2, 0
-_080CDCA0: .4byte gSprites
-_080CDCA4:
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080CDCB4
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _080CDD1A
-_080CDCB4:
- movs r0, 0x3
- strh r0, [r4, 0xE]
- ldr r2, _080CDCE4 @ =gSprites
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x24]
- strh r0, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x8
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080CDCDA
- movs r1, 0x8
-_080CDCDA:
- strh r1, [r4, 0x12]
-_080CDCDC:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _080CDD1A
- .align 2, 0
-_080CDCE4: .4byte gSprites
-_080CDCE8:
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080CDD14
- ldrh r2, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r2, r0
-_080CDCF6:
- strh r2, [r4, 0x10]
- ldr r3, _080CDD10 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x24]
-_080CDD08:
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080CDD1A
- .align 2, 0
-_080CDD10: .4byte gSprites
-_080CDD14:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080CDD1A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CDB60
-
- thumb_func_start sub_80CDD20
-sub_80CDD20: @ 80CDD20
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080CDD5C @ =gTasks
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080CDD60
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x10]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8078F9C
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080CDD6C
- .align 2, 0
-_080CDD5C: .4byte gTasks
-_080CDD60:
- ldrb r0, [r4, 0x8]
- bl sub_8078F40
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080CDD6C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CDD20
-
- thumb_func_start sub_80CDD74
-sub_80CDD74: @ 80CDD74
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080CDD88 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CDD90
- ldr r4, _080CDD8C @ =gBattleAnimBankAttacker
- b _080CDD92
- .align 2, 0
-_080CDD88: .4byte gBattleAnimArgs
-_080CDD8C: .4byte gBattleAnimBankAttacker
-_080CDD90:
- ldr r4, _080CDDD0 @ =gBattleAnimBankTarget
-_080CDD92:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x4]
- adds r0, r6
- strh r0, [r5, 0x22]
- movs r0, 0
- strh r0, [r5, 0x2E]
- strh r0, [r5, 0x30]
- ldr r1, _080CDDD4 @ =sub_80CDEC0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080CDDD8 @ =sub_8078600
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDDD0: .4byte gBattleAnimBankTarget
-_080CDDD4: .4byte sub_80CDEC0
-_080CDDD8: .4byte sub_8078600
- thumb_func_end sub_80CDD74
-
- thumb_func_start sub_80CDDDC
-sub_80CDDDC: @ 80CDDDC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080CDE14 @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080CDE18 @ =0x0000ffd0
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, _080CDE1C @ =sub_80CDE78
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080CDE20 @ =sub_8078600
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDE14: .4byte gBattleAnimBankTarget
-_080CDE18: .4byte 0x0000ffd0
-_080CDE1C: .4byte sub_80CDE78
-_080CDE20: .4byte sub_8078600
- thumb_func_end sub_80CDDDC
-
- thumb_func_start sub_80CDE24
-sub_80CDE24: @ 80CDE24
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080CDE68 @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080CDE6C @ =gBattleAnimArgs
- ldr r2, _080CDE70 @ =0x0000ffd0
- adds r0, r2
- ldrh r1, [r1]
- adds r0, r1
- movs r6, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- strh r6, [r4, 0x2E]
- strh r6, [r4, 0x30]
- ldr r0, _080CDE74 @ =sub_80CDEC0
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDE68: .4byte gBattleAnimBankTarget
-_080CDE6C: .4byte gBattleAnimArgs
-_080CDE70: .4byte 0x0000ffd0
-_080CDE74: .4byte sub_80CDEC0
- thumb_func_end sub_80CDE24
-
- thumb_func_start sub_80CDE78
-sub_80CDE78: @ 80CDE78
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080CDEA2
- movs r0, 0xC
- strh r0, [r4, 0x2E]
- movs r0, 0x8
- strh r0, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080CDEA8 @ =sub_80CDEB0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080CDEAC @ =sub_8078364
- str r0, [r4, 0x1C]
-_080CDEA2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDEA8: .4byte sub_80CDEB0
-_080CDEAC: .4byte sub_8078364
- thumb_func_end sub_80CDE78
-
- thumb_func_start sub_80CDEB0
-sub_80CDEB0: @ 80CDEB0
- movs r1, 0
- strh r1, [r0, 0x2E]
- strh r1, [r0, 0x30]
- ldr r1, _080CDEBC @ =sub_80CDEC0
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080CDEBC: .4byte sub_80CDEC0
- thumb_func_end sub_80CDEB0
-
- thumb_func_start sub_80CDEC0
-sub_80CDEC0: @ 80CDEC0
- 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, 0x1
- ble _080CDF08
- movs r0, 0
- strh r0, [r3, 0x2E]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands 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, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080CDF08
- adds r0, r3, 0
- bl move_anim_8072740
-_080CDF08:
- pop {r0}
- bx r0
- thumb_func_end sub_80CDEC0
-
- thumb_func_start sub_80CDF0C
-sub_80CDF0C: @ 80CDF0C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080CDF20 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CDF28
- ldr r4, _080CDF24 @ =gBattleAnimBankAttacker
- b _080CDF2A
- .align 2, 0
-_080CDF20: .4byte gBattleAnimArgs
-_080CDF24: .4byte gBattleAnimBankAttacker
-_080CDF28:
- ldr r4, _080CDF64 @ =gBattleAnimBankTarget
-_080CDF2A:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x4]
- adds r0, r6
- strh r0, [r5, 0x22]
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080CDF68 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x6]
- strh r0, [r5, 0x30]
- ldr r0, _080CDF6C @ =sub_80CDF70
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDF64: .4byte gBattleAnimBankTarget
-_080CDF68: .4byte gBattleAnimArgs
-_080CDF6C: .4byte sub_80CDF70
- thumb_func_end sub_80CDF0C
-
- thumb_func_start sub_80CDF70
-sub_80CDF70: @ 80CDF70
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x30
- ldrsh r1, [r2, r3]
- cmp r0, r1
- ble _080CDF90
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldrh r0, [r2, 0x22]
- subs r0, 0x1
- strh r0, [r2, 0x22]
-_080CDF90:
- ldrh r0, [r2, 0x22]
- ldrh r1, [r2, 0x2E]
- subs r0, r1
- strh r0, [r2, 0x22]
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080CDFAC
- adds r0, r2, 0
- bl move_anim_8072740
-_080CDFAC:
- pop {r0}
- bx r0
- thumb_func_end sub_80CDF70
-
- thumb_func_start sub_80CDFB0
-sub_80CDFB0: @ 80CDFB0
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080CDFF8 @ =gBattleAnimBankAttacker
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0xC
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- movs r0, 0x2
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x32]
- strh r5, [r4, 0x34]
- strh r5, [r4, 0x36]
- subs r0, 0x42
- bl sub_8076F98
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x38]
- ldr r0, _080CDFFC @ =sub_80CE000
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDFF8: .4byte gBattleAnimBankAttacker
-_080CDFFC: .4byte sub_80CE000
- thumb_func_end sub_80CDFB0
-
- thumb_func_start sub_80CE000
-sub_80CE000: @ 80CE000
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080CE06C
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r1, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080CE052
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080CE052
- ldrh r1, [r4, 0x38]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC2
- bl PlaySE12WithPanning
-_080CE052:
- movs r1, 0
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CE06C
- strh r1, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_080CE06C:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080CE096
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- ble _080CE096
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080CE096
- adds r0, r4, 0
- bl move_anim_8072740
-_080CE096:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CE000
-
- thumb_func_start sub_80CE09C
-sub_80CE09C: @ 80CE09C
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CE0E6
- ldr r4, _080CE0FC @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r5, _080CE100 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x2]
- adds r0, r5
- strh r0, [r6, 0x22]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080CE0E0
- ldrh r0, [r6, 0x22]
- adds r0, 0xA
- strh r0, [r6, 0x22]
-_080CE0E0:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- strh r0, [r6, 0x2E]
-_080CE0E6:
- ldr r0, _080CE100 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080CE104 @ =0x0000ffff
- cmp r1, r0
- bne _080CE0F6
- adds r0, r6, 0
- bl move_anim_8072740
-_080CE0F6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE0FC: .4byte gBattleAnimBankAttacker
-_080CE100: .4byte gBattleAnimArgs
-_080CE104: .4byte 0x0000ffff
- thumb_func_end sub_80CE09C
-
- thumb_func_start sub_80CE108
-sub_80CE108: @ 80CE108
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080CE128 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080CE134
- ldr r1, _080CE12C @ =gBattleAnimArgs
- ldr r0, _080CE130 @ =0x0000ffff
- strh r0, [r1, 0xE]
- b _080CE16C
- .align 2, 0
-_080CE128: .4byte gTasks
-_080CE12C: .4byte gBattleAnimArgs
-_080CE130: .4byte 0x0000ffff
-_080CE134:
- cmp r0, 0x2
- bne _080CE140
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _080CE172
-_080CE140:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080CE172
- movs r0, 0
- strh r0, [r4, 0x8]
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- ldr r3, _080CE178 @ =REG_BLDALPHA
- lsls r2, r1, 8
- movs r0, 0x10
- subs r0, r1
- orrs r2, r0
- strh r2, [r3]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080CE172
-_080CE16C:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_080CE172:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE178: .4byte REG_BLDALPHA
- thumb_func_end sub_80CE108
-
- thumb_func_start sub_80CE17C
-sub_80CE17C: @ 80CE17C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8078764
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080CE1A4 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080CE1A8 @ =sub_80CE1AC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE1A4: .4byte gBattleAnimArgs
-_080CE1A8: .4byte sub_80CE1AC
- thumb_func_end sub_80CE17C
-
- thumb_func_start sub_80CE1AC
-sub_80CE1AC: @ 80CE1AC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080CE1C0
- subs r0, r1, 0x1
- strh r0, [r5, 0x2E]
- b _080CE1FC
-_080CE1C0:
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1E
- strh r0, [r5, 0x2E]
- ldr r4, _080CE204 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080CE208 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080CE20C @ =move_anim_8072740
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080CE1FC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE204: .4byte gBattleAnimBankAttacker
-_080CE208: .4byte sub_8078B34
-_080CE20C: .4byte move_anim_8072740
- thumb_func_end sub_80CE1AC
-
- thumb_func_start sub_80CE210
-sub_80CE210: @ 80CE210
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080CE258 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080CE252
- movs r0, 0
- strh r0, [r3, 0x8]
- ldrh r1, [r3, 0xA]
- adds r1, 0x1
- strh r1, [r3, 0xA]
- ldr r2, _080CE25C @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0x10
- bne _080CE252
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080CE252:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE258: .4byte gTasks
-_080CE25C: .4byte REG_BLDALPHA
- thumb_func_end sub_80CE210
-
- thumb_func_start unref_sub_80CE260
-unref_sub_80CE260: @ 80CE260
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- ldr r0, _080CE2C8 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- bcs _080CE2BC
- ldr r6, _080CE2CC @ =gBattleAnimArgs
- ldr r5, _080CE2D0 @ =gHealthboxIDs
-_080CE274:
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _080CE290
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080CE290
- adds r0, r4, r5
- ldrb r0, [r0]
- bl sub_8043DB0
-_080CE290:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _080CE2AE
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CE2AE
- adds r0, r4, r5
- ldrb r0, [r0]
- bl sub_8043DB0
-_080CE2AE:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CE2C8 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080CE274
-_080CE2BC:
- adds r0, r7, 0
- bl DestroyAnimVisualTask
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE2C8: .4byte gNoOfAllBanks
-_080CE2CC: .4byte gBattleAnimArgs
-_080CE2D0: .4byte gHealthboxIDs
- thumb_func_end unref_sub_80CE260
-
- thumb_func_start unref_sub_80CE2D4
-unref_sub_80CE2D4: @ 80CE2D4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- b _080CE2EE
-_080CE2DE:
- ldr r0, _080CE304 @ =gHealthboxIDs
- adds r0, r4, r0
- ldrb r0, [r0]
- bl sub_8043DFC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080CE2EE:
- ldr r0, _080CE308 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080CE2DE
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE304: .4byte gHealthboxIDs
-_080CE308: .4byte gNoOfAllBanks
- thumb_func_end unref_sub_80CE2D4
-
- thumb_func_start sub_80CE30C
-sub_80CE30C: @ 80CE30C
- push {r4,lr}
- adds r4, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080CE322
- movs r0, 0x30
- strh r0, [r4, 0x20]
- movs r0, 0x28
- b _080CE32A
-_080CE322:
- ldr r0, _080CE34C @ =gBattleAnimArgs
- ldrh r1, [r0]
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
-_080CE32A:
- strh r0, [r4, 0x22]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080CE350 @ =sub_80CE354
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE34C: .4byte gBattleAnimArgs
-_080CE350: .4byte sub_80CE354
- thumb_func_end sub_80CE30C
-
- thumb_func_start sub_80CE354
-sub_80CE354: @ 80CE354
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080CE366
- adds r0, r1, 0
- bl move_anim_8072740
-_080CE366:
- pop {r0}
- bx r0
- thumb_func_end sub_80CE354
-
- thumb_func_start sub_80CE36C
-sub_80CE36C: @ 80CE36C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CE3A4 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r2, _080CE3A8 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r2]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x30]
- strh r1, [r4, 0x32]
- strh r1, [r4, 0x34]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- ldr r0, _080CE3AC @ =sub_80CE3B0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE3A4: .4byte gBattleAnimBankAttacker
-_080CE3A8: .4byte gBattleAnimArgs
-_080CE3AC: .4byte sub_80CE3B0
- thumb_func_end sub_80CE36C
-
- thumb_func_start sub_80CE3B0
-sub_80CE3B0: @ 80CE3B0
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CE3DA
- movs r0, 0
- strh r0, [r1, 0x30]
- ldrh r2, [r1, 0x32]
- movs r3, 0x32
- ldrsh r0, [r1, r3]
- cmp r0, 0x77
- bgt _080CE3DA
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
- adds r0, r2, 0x1
- strh r0, [r1, 0x32]
-_080CE3DA:
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080CE3E8
- adds r0, r1, 0
- bl move_anim_8072740
-_080CE3E8:
- pop {r0}
- bx r0
- thumb_func_end sub_80CE3B0
-
- thumb_func_start sub_80CE3EC
-sub_80CE3EC: @ 80CE3EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- mov r8, r0
- ldr r0, _080CE4BC @ =0x0000ffff
- mov r1, r8
- ands r1, r0
- mov r8, r1
- ldr r0, _080CE4C0 @ =gTasks
- mov r9, r0
- lsls r5, r7, 2
- adds r5, r7
- lsls r5, 3
- adds r6, r5, r0
- strh r4, [r6, 0x8]
- strh r4, [r6, 0xA]
- strh r4, [r6, 0xC]
- strh r1, [r6, 0xE]
- strh r4, [r6, 0x10]
- strh r4, [r6, 0x12]
- strh r4, [r6, 0x14]
- movs r0, 0xD
- strh r0, [r6, 0x16]
- movs r0, 0xE
- strh r0, [r6, 0x18]
- movs r0, 0xF
- strh r0, [r6, 0x1A]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80792C0
- mov r10, r0
- mov r1, r8
- orrs r1, r0
- mov r8, r1
- movs r0, 0x8
- add r9, r0
- add r5, r9
- adds r0, r5, 0
- adds r0, 0x1C
- adds r5, 0x1E
- adds r1, r5, 0
- mov r2, r8
- bl sub_8079BF4
- ldr r0, _080CE4C4 @ =0x000027d2
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0x80
- lsls r4, 9
- adds r1, r4, 0
- lsls r1, r0
- mov r0, r10
- orrs r0, r1
- mov r10, r0
- ldr r0, _080CE4C8 @ =0x000027d3
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0
- mov r1, r10
- orrs r4, r1
- ldr r0, _080CE4CC @ =0x00007fbb
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080CE4D0 @ =sub_80CE4D4
- str r1, [r6]
- adds r0, r7, 0
- bl _call_via_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
-_080CE4BC: .4byte 0x0000ffff
-_080CE4C0: .4byte gTasks
-_080CE4C4: .4byte 0x000027d2
-_080CE4C8: .4byte 0x000027d3
-_080CE4CC: .4byte 0x00007fbb
-_080CE4D0: .4byte sub_80CE4D4
- thumb_func_end sub_80CE3EC
-
- thumb_func_start sub_80CE4D4
-sub_80CE4D4: @ 80CE4D4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080CE4FC @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080CE5C0
- cmp r1, 0x1
- bgt _080CE500
- cmp r1, 0
- beq _080CE50E
- b _080CE65E
- .align 2, 0
-_080CE4FC: .4byte gTasks
-_080CE500:
- cmp r1, 0x2
- bne _080CE506
- b _080CE618
-_080CE506:
- cmp r1, 0x3
- bne _080CE50C
- b _080CE64C
-_080CE50C:
- b _080CE65E
-_080CE50E:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bgt _080CE51C
- b _080CE65E
-_080CE51C:
- strh r1, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _080CE568
- ldrh r0, [r4, 0x16]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrh r2, [r4, 0x18]
- ldrh r3, [r4, 0x12]
- adds r2, r3
- strh r2, [r4, 0x12]
- ldrh r1, [r4, 0x1A]
- ldrh r5, [r4, 0x14]
- adds r1, r5
- strh r1, [r4, 0x14]
- lsls r0, 16
- asrs r0, 19
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- asrs r2, 19
- lsls r2, 16
- lsls r1, 16
- asrs r1, 19
- lsls r1, 16
- lsrs r2, 11
- orrs r0, r2
- lsrs r1, 6
- orrs r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- b _080CE572
-_080CE568:
- ldr r7, _080CE5B8 @ =0x00007fbb
- mov r12, r7
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080CE572:
- movs r2, 0x1
- movs r3, 0
- movs r1, 0
-_080CE578:
- movs r5, 0xE
- ldrsh r0, [r4, r5]
- ands r0, r2
- lsls r5, r2, 17
- adds r6, r3, 0
- adds r6, 0x10
- adds r1, 0x1
- mov r8, r1
- cmp r0, 0
- beq _080CE5A4
- movs r1, 0x1
- ldr r2, _080CE5BC @ =gPlttBufferFaded
-_080CE590:
- adds r0, r3, r1
- lsls r0, 1
- adds r0, r2
- mov r7, r12
- strh r7, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _080CE590
-_080CE5A4:
- lsrs r2, r5, 16
- lsls r0, r6, 16
- lsrs r3, r0, 16
- mov r1, r8
- lsls r0, r1, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _080CE578
- b _080CE65E
- .align 2, 0
-_080CE5B8: .4byte 0x00007fbb
-_080CE5BC: .4byte gPlttBufferFaded
-_080CE5C0:
- ldr r0, _080CE608 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CE65E
- movs r2, 0
- ldr r3, _080CE60C @ =gSprites
- movs r5, 0x14
- adds r5, r3
- mov r12, r5
- ldr r7, _080CE610 @ =gBattleAnimSpriteTemplate_83D6FC8
- mov r8, r7
- ldr r6, _080CE614 @ =gBattleAnimSpriteTemplate_83D6FF8
- movs r5, 0x1
-_080CE5DE:
- lsls r0, r2, 4
- adds r0, r2
- lsls r1, r0, 2
- mov r7, r12
- adds r0, r1, r7
- ldr r0, [r0]
- cmp r0, r8
- beq _080CE5F2
- cmp r0, r6
- bne _080CE5F6
-_080CE5F2:
- adds r0, r1, r3
- strh r5, [r0, 0x2E]
-_080CE5F6:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _080CE5DE
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080CE640
- .align 2, 0
-_080CE608: .4byte gPaletteFade
-_080CE60C: .4byte gSprites
-_080CE610: .4byte gBattleAnimSpriteTemplate_83D6FC8
-_080CE614: .4byte gBattleAnimSpriteTemplate_83D6FF8
-_080CE618:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080CE65E
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- bl sub_8079BFC
- ldr r1, _080CE648 @ =0x00007fbb
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_080CE640:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080CE65E
- .align 2, 0
-_080CE648: .4byte 0x00007fbb
-_080CE64C:
- ldr r0, _080CE66C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CE65E
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080CE65E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE66C: .4byte gPaletteFade
- thumb_func_end sub_80CE4D4
-
- thumb_func_start sub_80CE670
-sub_80CE670: @ 80CE670
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080CE6F4 @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bgt _080CE682
- movs r0, 0x2
- strh r0, [r6, 0x4]
-_080CE682:
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0x7F
- ble _080CE68E
- movs r0, 0x7F
- strh r0, [r6, 0x4]
-_080CE68E:
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x30]
- ldr r4, _080CE6F8 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x2]
- adds r0, r6
- strh r0, [r5, 0x22]
- ldrh r1, [r5, 0x20]
- strh r1, [r5, 0x3A]
- strh r0, [r5, 0x3C]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080CE700
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- adds r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, _080CE6FC @ =0xffffec00
- b _080CE726
- .align 2, 0
-_080CE6F4: .4byte gBattleAnimArgs
-_080CE6F8: .4byte gBattleAnimBankTarget
-_080CE6FC: .4byte 0xffffec00
-_080CE700:
- ldr r0, _080CE740 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080CE748
- ldrh r0, [r5, 0x20]
- subs r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- adds r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- movs r0, 0xA0
- lsls r0, 5
-_080CE726:
- bl __divsi3
- strh r0, [r5, 0x34]
- lsls r4, 7
- strh r4, [r5, 0x36]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, _080CE744 @ =0xfffff600
- bl __divsi3
- strh r0, [r5, 0x38]
- b _080CE784
- .align 2, 0
-_080CE740: .4byte gBattleAnimBankAttacker
-_080CE744: .4byte 0xfffff600
-_080CE748:
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- subs r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, _080CE790 @ =0xffffec00
- bl __divsi3
- strh r0, [r5, 0x34]
- lsls r4, 7
- strh r4, [r5, 0x36]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- movs r0, 0xA0
- lsls r0, 4
- bl __divsi3
- strh r0, [r5, 0x38]
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x30
- orrs r0, r1
- strb r0, [r5, 0x3]
-_080CE784:
- ldr r0, _080CE794 @ =sub_80CE798
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE790: .4byte 0xffffec00
-_080CE794: .4byte sub_80CE798
- thumb_func_end sub_80CE670
-
- thumb_func_start sub_80CE798
-sub_80CE798: @ 80CE798
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r2, 0x38]
- ldrh r3, [r2, 0x36]
- adds r1, r3
- strh r1, [r2, 0x36]
- lsls r0, 16
- asrs r0, 23
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 23
- strh r1, [r2, 0x22]
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080CE7CE
- ldrh r0, [r2, 0x3A]
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x3C]
- strh r0, [r2, 0x22]
-_080CE7CE:
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080CE7DC
- adds r0, r2, 0
- bl move_anim_8072740
-_080CE7DC:
- pop {r0}
- bx r0
- thumb_func_end sub_80CE798
-
- thumb_func_start sub_80CE7E0
-sub_80CE7E0: @ 80CE7E0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, _080CE870 @ =gTasks
- adds r6, r0, r1
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x8]
- ldr r0, _080CE874 @ =0x00002771
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0xA]
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- lsls r0, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- ldr r2, _080CE878 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- lsls r4, r0, 4
- movs r5, 0x1
- ldr r2, _080CE87C @ =gPlttBufferUnfaded
-_080CE838:
- adds r1, r3, r5
- lsls r1, 1
- adds r1, r2
- adds r0, r4, r5
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xF
- bls _080CE838
- adds r0, r3, 0
- movs r1, 0x10
- movs r2, 0xB
- movs r3, 0
- bl BlendPalette
- movs r0, 0
- strh r0, [r6, 0xE]
- movs r5, 0
- ldr r7, _080CE878 @ =gSprites
- movs r1, 0x1C
- adds r1, r7
- mov r9, r1
- b _080CE8B4
- .align 2, 0
-_080CE870: .4byte gTasks
-_080CE874: .4byte 0x00002771
-_080CE878: .4byte gSprites
-_080CE87C: .4byte gPlttBufferUnfaded
-_080CE880:
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r4, r2, r7
- ldrb r1, [r6, 0xA]
- lsls r1, 4
- ldrb r3, [r4, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r1
- strb r0, [r4, 0x5]
- movs r0, 0
- strh r0, [r4, 0x2E]
- lsls r0, r5, 7
- strh r0, [r4, 0x30]
- mov r0, r8
- strh r0, [r4, 0x32]
- add r2, r9
- ldr r0, _080CE8E4 @ =sub_80CE974
- str r0, [r2]
- ldrh r0, [r6, 0xE]
- adds r0, 0x1
- strh r0, [r6, 0xE]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080CE8B4:
- cmp r5, 0x1
- bhi _080CE8C6
- movs r0, 0
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080CE880
-_080CE8C6:
- ldr r0, _080CE8E8 @ =sub_80CE910
- str r0, [r6]
- ldr r0, _080CE8EC @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CE8F4
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080CE8F0 @ =0x0000fdff
- b _080CE8FC
- .align 2, 0
-_080CE8E4: .4byte sub_80CE974
-_080CE8E8: .4byte sub_80CE910
-_080CE8EC: .4byte gBattleAnimBankAttacker
-_080CE8F0: .4byte 0x0000fdff
-_080CE8F4:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080CE90C @ =0x0000fbff
-_080CE8FC:
- ands r0, r1
- strh r0, [r2]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE90C: .4byte 0x0000fbff
- thumb_func_end sub_80CE7E0
-
- thumb_func_start sub_80CE910
-sub_80CE910: @ 80CE910
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080CE944 @ =gTasks
- adds r0, r1
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CE968
- ldr r0, _080CE948 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CE94C
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 2
- b _080CE956
- .align 2, 0
-_080CE944: .4byte gTasks
-_080CE948: .4byte gBattleAnimBankAttacker
-_080CE94C:
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 3
-_080CE956:
- adds r2, r3, 0
- orrs r1, r2
- strh r1, [r0]
- ldr r0, _080CE970 @ =0x00002771
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080CE968:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE970: .4byte 0x00002771
- thumb_func_end sub_80CE910
-
- thumb_func_start sub_80CE974
-sub_80CE974: @ 80CE974
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CE990
- movs r0, 0
- strh r0, [r5, 0x34]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_080CE990:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x40
- ble _080CE9B8
- ldr r2, _080CE9B4 @ =gTasks
- movs r0, 0x32
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0xE]
- subs r1, 0x1
- strh r1, [r0, 0xE]
- adds r0, r5, 0
- bl obj_delete_but_dont_free_vram
- b _080CE9FA
- .align 2, 0
-_080CE9B4: .4byte gTasks
-_080CE9B8:
- ldr r4, _080CEA00 @ =gSineTable
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r0, 1
- adds r0, r4
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0x6
- bl __divsi3
- strh r0, [r5, 0x36]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r0, 1
- adds r0, r4
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0xD
- bl __divsi3
- strh r0, [r5, 0x38]
- ldrh r1, [r5, 0x30]
- adds r1, r0
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r5, 0x30]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
-_080CE9FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEA00: .4byte gSineTable
- thumb_func_end sub_80CE974
-
- thumb_func_start sub_80CEA04
-sub_80CEA04: @ 80CEA04
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080CEA18 @ =move_anim_8072740
- bl StoreSpriteCallbackInData6
- ldr r0, _080CEA1C @ =sub_8078600
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEA18: .4byte move_anim_8072740
-_080CEA1C: .4byte sub_8078600
- thumb_func_end sub_80CEA04
-
- thumb_func_start sub_80CEA20
-sub_80CEA20: @ 80CEA20
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r4, _080CEAD0 @ =gUnknown_083D712C
- ldrh r0, [r4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- beq _080CEA64
- lsls r0, r3, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- movs r2, 0x1
- ldr r5, _080CEAD4 @ =gPlttBufferFaded
-_080CEA4C:
- adds r1, r3, r2
- lsls r1, 1
- adds r1, r5
- lsls r0, r2, 1
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080CEA4C
-_080CEA64:
- movs r4, 0x1
- ldr r0, _080CEAD0 @ =gUnknown_083D712C
- mov r8, r0
-_080CEA6A:
- lsls r0, r4, 1
- adds r0, r4
- lsls r5, r0, 2
- mov r1, r8
- adds r0, r5, r1
- ldrh r0, [r0]
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, 0x1
- mov r12, r4
- cmp r3, 0xFF
- beq _080CEAB2
- lsls r0, r3, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- movs r2, 0x1
- ldr r7, _080CEAD4 @ =gPlttBufferFaded
- ldr r6, _080CEAD0 @ =gUnknown_083D712C
- adds r4, r5, 0
-_080CEA98:
- adds r1, r3, r2
- lsls r1, 1
- adds r1, r7
- lsls r0, r2, 1
- adds r0, r4
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080CEA98
-_080CEAB2:
- mov r1, r12
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080CEA6A
- mov r0, r9
- bl DestroyAnimVisualTask
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEAD0: .4byte gUnknown_083D712C
-_080CEAD4: .4byte gPlttBufferFaded
- thumb_func_end sub_80CEA20
-
- thumb_func_start sub_80CEAD8
-sub_80CEAD8: @ 80CEAD8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0x1
- ldr r6, _080CEB08 @ =gUnknown_083D712C
-_080CEAE2:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r6
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080CEAE2
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEB08: .4byte gUnknown_083D712C
- thumb_func_end sub_80CEAD8
-
- thumb_func_start sub_80CEB0C
-sub_80CEB0C: @ 80CEB0C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- bl sub_8078650
- ldr r4, _080CEB64 @ =gBattleAnimArgs
- ldrb r1, [r4]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r2, _080CEB68 @ =gUnknown_083D712C
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080CEB48
- lsls r2, r0, 4
- ldrb r1, [r5, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
-_080CEB48:
- ldrh r0, [r4, 0x2]
- movs r1, 0
- strh r0, [r5, 0x30]
- strh r1, [r5, 0x32]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x34]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080CEB6C
- movs r6, 0x30
- movs r3, 0x28
- b _080CEB86
- .align 2, 0
-_080CEB64: .4byte gBattleAnimArgs
-_080CEB68: .4byte gUnknown_083D712C
-_080CEB6C:
- ldr r4, _080CEBBC @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r3, r0, 24
-_080CEB86:
- ldrh r0, [r5, 0x20]
- lsls r1, r0, 4
- strh r1, [r5, 0x36]
- ldrh r1, [r5, 0x22]
- lsls r2, r1, 4
- strh r2, [r5, 0x38]
- subs r0, r6, r0
- lsls r0, 16
- asrs r0, 16
- subs r1, r3, r1
- lsls r1, 16
- asrs r1, 16
- adds r2, r5, 0
- adds r2, 0x3A
- adds r3, r5, 0
- adds r3, 0x3C
- movs r4, 0x28
- str r4, [sp]
- bl sub_80CEBC4
- ldr r0, _080CEBC0 @ =sub_80CEC1C
- str r0, [r5, 0x1C]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEBBC: .4byte gBattleAnimBankTarget
-_080CEBC0: .4byte sub_80CEC1C
- thumb_func_end sub_80CEB0C
-
- thumb_func_start sub_80CEBC4
-sub_80CEBC4: @ 80CEBC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r2, 0
- mov r8, r3
- ldr r2, [sp, 0x18]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r1, r2, 24
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bge _080CEBE6
- lsls r0, r1, 24
- negs r0, r0
- lsrs r1, r0, 24
-_080CEBE6:
- lsls r5, r2, 8
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl __divsi3
- adds r4, r0, 0
- cmp r4, 0
- bne _080CEBFA
- movs r4, 0x1
-_080CEBFA:
- adds r0, r5, 0
- adds r1, r4, 0
- bl __divsi3
- strh r0, [r7]
- lsls r0, r6, 16
- asrs r0, 8
- adds r1, r4, 0
- bl __divsi3
- mov r1, r8
- strh r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80CEBC4
-
- thumb_func_start sub_80CEC1C
-sub_80CEC1C: @ 80CEC1C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x2E]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r1, r0, r1
- adds r0, r1, 0
- cmp r1, 0
- bge _080CEC38
- adds r0, 0xFF
-_080CEC38:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- ldrh r1, [r4, 0x3A]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- ldrh r2, [r4, 0x3C]
- ldrh r3, [r4, 0x38]
- adds r2, r3
- strh r2, [r4, 0x38]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r4, 0x20]
- lsls r2, 16
- asrs r2, 20
- strh r2, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0xF
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- ldrh r0, [r4, 0x20]
- adds r0, 0x10
- lsls r0, 16
- movs r1, 0x88
- lsls r1, 17
- cmp r0, r1
- bhi _080CEC86
- lsls r0, r2, 16
- asrs r1, r0, 16
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- blt _080CEC86
- cmp r1, 0x80
- ble _080CEC8E
-_080CEC86:
- adds r0, r4, 0
- bl move_anim_8074EE0
- b _080CECDE
-_080CEC8E:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _080CECDE
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, r1
- ble _080CECDE
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080CECB6
- strh r5, [r4, 0x30]
-_080CECB6:
- ldr r2, _080CECE4 @ =gUnknown_083D712C
- movs r3, 0x30
- ldrsh r1, [r4, r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080CECDE
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
-_080CECDE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CECE4: .4byte gUnknown_083D712C
- thumb_func_end sub_80CEC1C
-
- thumb_func_start sub_80CECE8
-sub_80CECE8: @ 80CECE8
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r7, _080CED6C @ =gBattleAnimBankAttacker
- ldrb r0, [r7]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CED06
- ldr r1, _080CED70 @ =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080CED06:
- ldrb r0, [r7]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080CED70 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- movs r5, 0
- strh r0, [r6, 0x20]
- ldrb r0, [r7]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r4, 0x4]
- adds r0, r2
- strh r0, [r6, 0x22]
- ldrb r1, [r4]
- adds r0, r6, 0
- bl StartSpriteAnim
- strh r5, [r6, 0x32]
- strh r5, [r6, 0x34]
- ldrh r0, [r6, 0x20]
- lsls r0, 4
- strh r0, [r6, 0x36]
- ldrh r0, [r6, 0x22]
- lsls r0, 4
- strh r0, [r6, 0x38]
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- lsls r0, 4
- movs r1, 0x5
- bl __divsi3
- strh r0, [r6, 0x3A]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- lsls r0, 7
- movs r1, 0x5
- bl __divsi3
- strh r0, [r6, 0x3C]
- ldr r0, _080CED74 @ =sub_80CED78
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CED6C: .4byte gBattleAnimBankAttacker
-_080CED70: .4byte gBattleAnimArgs
-_080CED74: .4byte sub_80CED78
- thumb_func_end sub_80CECE8
-
- thumb_func_start sub_80CED78
-sub_80CED78: @ 80CED78
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldrh r1, [r4, 0x3C]
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r4, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r4, 0x22]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- ble _080CEDD6
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080CEDD6
- ldrh r0, [r4, 0x32]
- adds r0, 0x10
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x12
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x12
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CEDD6
- movs r0, 0x1
- strh r0, [r4, 0x34]
-_080CEDD6:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x30
- bne _080CEDEA
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080CEDEA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CED78
-
- thumb_func_start sub_80CEDF0
-sub_80CEDF0: @ 80CEDF0
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080CEE10 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _080CEE14
- ldrb r0, [r5, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r5, 0x3]
- movs r6, 0x10
- b _080CEE16
- .align 2, 0
-_080CEE10: .4byte gBattleAnimArgs
-_080CEE14:
- ldr r6, _080CEE50 @ =0x0000fff0
-_080CEE16:
- ldr r4, _080CEE54 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x8
- strh r0, [r5, 0x22]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- ldr r0, _080CEE58 @ =sub_80782D8
- str r0, [r5, 0x1C]
- ldr r1, _080CEE5C @ =move_anim_8072740
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEE50: .4byte 0x0000fff0
-_080CEE54: .4byte gBattleAnimBankAttacker
-_080CEE58: .4byte sub_80782D8
-_080CEE5C: .4byte move_anim_8072740
- thumb_func_end sub_80CEDF0
-
- thumb_func_start sub_80CEE60
-sub_80CEE60: @ 80CEE60
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldrh r0, [r4, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
- ldr r5, _080CEED8 @ =gBattleAnimArgs
- ldrb r1, [r5, 0x2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r2, _080CEEDC @ =gUnknown_083D712C
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080CEEA0
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
-_080CEEA0:
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- cmp r0, 0
- bne _080CEEAC
- ldr r2, _080CEEE0 @ =0x0000ffe0
-_080CEEAC:
- movs r0, 0x28
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x20]
- strh r1, [r4, 0x30]
- lsls r0, r2, 16
- asrs r0, 16
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- subs r0, 0x28
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x38]
- ldr r0, _080CEEE4 @ =sub_80CEEE8
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEED8: .4byte gBattleAnimArgs
-_080CEEDC: .4byte gUnknown_083D712C
-_080CEEE0: .4byte 0x0000ffe0
-_080CEEE4: .4byte sub_80CEEE8
- thumb_func_end sub_80CEE60
-
- thumb_func_start sub_80CEEE8
-sub_80CEEE8: @ 80CEEE8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080CEF38
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r2, [r4, 0x24]
- movs r3, 0x24
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _080CEF14
- lsls r0, r1, 16
- negs r0, r0
- lsrs r1, r0, 16
-_080CEF14:
- lsls r0, r1, 16
- asrs r0, 16
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- ldrh r3, [r4, 0x26]
- adds r0, r3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080CEF3E
-_080CEF38:
- adds r0, r4, 0
- bl move_anim_8072740
-_080CEF3E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CEEE8
-
- thumb_func_start sub_80CEF44
-sub_80CEF44: @ 80CEF44
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080CEF64
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_807A100
- adds r0, 0x8
- b _080CEF6E
-_080CEF64:
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_807A100
- subs r0, 0x8
-_080CEF6E:
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8077ABC
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0
- bl sub_807A100
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080CEF90
- adds r0, 0x3
-_080CEF90:
- asrs r0, 2
- subs r0, r4, r0
- strh r0, [r6, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80CEF44
-
- thumb_func_start sub_80CEF9C
-sub_80CEF9C: @ 80CEF9C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080CEFB0 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CEFB8
- ldr r0, _080CEFB4 @ =gBattleAnimBankAttacker
- b _080CEFBA
- .align 2, 0
-_080CEFB0: .4byte gBattleAnimArgs
-_080CEFB4: .4byte gBattleAnimBankAttacker
-_080CEFB8:
- ldr r0, _080CEFF8 @ =gBattleAnimBankTarget
-_080CEFBA:
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80CEF44
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- ldr r0, _080CEFFC @ =gBattleAnimArgs
- ldrh r0, [r0, 0x2]
- strh r0, [r5, 0x2E]
- adds r0, r1, 0x2
- strh r0, [r5, 0x30]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r1, _080CF000 @ =sub_80CF008
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080CF004 @ =sub_8078600
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEFF8: .4byte gBattleAnimBankTarget
-_080CEFFC: .4byte gBattleAnimArgs
-_080CF000: .4byte sub_80CF008
-_080CF004: .4byte sub_8078600
- thumb_func_end sub_80CEF9C
-
- thumb_func_start sub_80CF008
-sub_80CF008: @ 80CF008
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080CF030
- ldr r1, _080CF038 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080CF03C @ =sub_8078600
- str r0, [r4, 0x1C]
-_080CF030:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF038: .4byte move_anim_8072740
-_080CF03C: .4byte sub_8078600
- thumb_func_end sub_80CF008
-
- thumb_func_start sub_80CF040
-sub_80CF040: @ 80CF040
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CF054 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CF05C
- ldr r0, _080CF058 @ =gBattleAnimBankAttacker
- b _080CF05E
- .align 2, 0
-_080CF054: .4byte gBattleAnimArgs
-_080CF058: .4byte gBattleAnimBankAttacker
-_080CF05C:
- ldr r0, _080CF07C @ =gBattleAnimBankTarget
-_080CF05E:
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_80CEF44
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r1, _080CF080 @ =sub_80CF088
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080CF084 @ =sub_80785E4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF07C: .4byte gBattleAnimBankTarget
-_080CF080: .4byte sub_80CF088
-_080CF084: .4byte sub_80785E4
- thumb_func_end sub_80CF040
-
- thumb_func_start sub_80CF088
-sub_80CF088: @ 80CF088
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080CF0AE
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, _080CF0B4 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080CF0B8 @ =sub_80785E4
- str r0, [r4, 0x1C]
-_080CF0AE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF0B4: .4byte move_anim_8074EE0
-_080CF0B8: .4byte sub_80785E4
- thumb_func_end sub_80CF088
-
- thumb_func_start sub_80CF0BC
-sub_80CF0BC: @ 80CF0BC
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r0, _080CF0D0 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CF0D8
- ldr r0, _080CF0D4 @ =gBattleAnimBankAttacker
- b _080CF0DA
- .align 2, 0
-_080CF0D0: .4byte gBattleAnimArgs
-_080CF0D4: .4byte gBattleAnimBankAttacker
-_080CF0D8:
- ldr r0, _080CF12C @ =gBattleAnimBankTarget
-_080CF0DA:
- ldrb r5, [r0]
- adds r0, r5, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_807A100
- strh r0, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bgt _080CF102
- movs r0, 0xA
- strh r0, [r4, 0x22]
-_080CF102:
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- strh r6, [r4, 0x30]
- adds r1, r4, 0
- adds r1, 0x43
- ldrb r0, [r1]
- strh r0, [r4, 0x32]
- ldrb r0, [r1]
- adds r0, 0x4
- strh r0, [r4, 0x34]
- strh r6, [r4, 0x36]
- ldr r1, _080CF130 @ =sub_80CF138
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080CF134 @ =sub_80785E4
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF12C: .4byte gBattleAnimBankTarget
-_080CF130: .4byte sub_80CF138
-_080CF134: .4byte sub_80785E4
- thumb_func_end sub_80CF0BC
-
- thumb_func_start sub_80CF138
-sub_80CF138: @ 80CF138
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x36]
- adds r0, 0x1
- strh r0, [r1, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080CF14E
- ldr r0, _080CF154 @ =sub_80CF158
- str r0, [r1, 0x1C]
-_080CF14E:
- pop {r0}
- bx r0
- .align 2, 0
-_080CF154: .4byte sub_80CF158
- thumb_func_end sub_80CF138
-
- thumb_func_start sub_80CF158
-sub_80CF158: @ 80CF158
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0x4
- strh r1, [r2, 0x30]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFE
- ble _080CF18A
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080CF184
- strh r0, [r2, 0x24]
- ldr r0, _080CF180 @ =sub_80CF088
- str r0, [r2, 0x1C]
- b _080CF1C0
- .align 2, 0
-_080CF180: .4byte sub_80CF088
-_080CF184:
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2, 0x30]
-_080CF18A:
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0x4F
- ble _080CF19A
- ldrh r0, [r2, 0x34]
- adds r1, r2, 0
- adds r1, 0x43
- strb r0, [r1]
-_080CF19A:
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0x9F
- ble _080CF1AA
- ldrh r0, [r2, 0x32]
- adds r1, r2, 0
- adds r1, 0x43
- strb r0, [r1]
-_080CF1AA:
- ldr r1, _080CF1C4 @ =gSineTable
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- asrs r1, r0, 1
- adds r0, r1
- strh r0, [r2, 0x24]
-_080CF1C0:
- pop {r0}
- bx r0
- .align 2, 0
-_080CF1C4: .4byte gSineTable
- thumb_func_end sub_80CF158
-
- thumb_func_start sub_80CF1C8
-sub_80CF1C8: @ 80CF1C8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080CF1DC @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CF1E4
- ldr r0, _080CF1E0 @ =gBattleAnimBankAttacker
- b _080CF1E6
- .align 2, 0
-_080CF1DC: .4byte gBattleAnimArgs
-_080CF1E0: .4byte gBattleAnimBankAttacker
-_080CF1E4:
- ldr r0, _080CF208 @ =gBattleAnimBankTarget
-_080CF1E6:
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80CEF44
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080CF20C
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0x2
- b _080CF216
- .align 2, 0
-_080CF208: .4byte gBattleAnimBankTarget
-_080CF20C:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x3
-_080CF216:
- strh r0, [r5, 0x2E]
- ldr r0, _080CF224 @ =sub_80CF228
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF224: .4byte sub_80CF228
- thumb_func_end sub_80CF1C8
-
- thumb_func_start sub_80CF228
-sub_80CF228: @ 80CF228
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _080CF256
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r1, _080CF25C @ =sub_80CF264
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080CF260 @ =sub_8078600
- str r0, [r4, 0x1C]
-_080CF256:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF25C: .4byte sub_80CF264
-_080CF260: .4byte sub_8078600
- thumb_func_end sub_80CF228
-
- thumb_func_start sub_80CF264
-sub_80CF264: @ 80CF264
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080CF27C
- adds r0, r1, 0
- bl move_anim_8072740
-_080CF27C:
- pop {r0}
- bx r0
- thumb_func_end sub_80CF264
-
- thumb_func_start sub_80CF280
-sub_80CF280: @ 80CF280
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r5, _080CF2C4 @ =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_807867C
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x34]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x36]
- ldr r1, _080CF2C8 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, _080CF2CC @ =sub_8078278
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF2C4: .4byte gBattleAnimArgs
-_080CF2C8: .4byte move_anim_8074EE0
-_080CF2CC: .4byte sub_8078278
- thumb_func_end sub_80CF280
-
- thumb_func_start sub_80CF2D0
-sub_80CF2D0: @ 80CF2D0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CF2E4 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CF2EC
- ldr r0, _080CF2E8 @ =gBattleAnimBankAttacker
- b _080CF2EE
- .align 2, 0
-_080CF2E4: .4byte gBattleAnimArgs
-_080CF2E8: .4byte gBattleAnimBankAttacker
-_080CF2EC:
- ldr r0, _080CF308 @ =gBattleAnimBankTarget
-_080CF2EE:
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_80CEF44
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x30]
- ldr r0, _080CF30C @ =sub_80CF310
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF308: .4byte gBattleAnimBankTarget
-_080CF30C: .4byte sub_80CF310
- thumb_func_end sub_80CF2D0
-
- thumb_func_start sub_80CF310
-sub_80CF310: @ 80CF310
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _080CF342
- cmp r0, 0x1
- bgt _080CF326
- cmp r0, 0
- beq _080CF32C
- b _080CF370
-_080CF326:
- cmp r0, 0x2
- beq _080CF35C
- b _080CF370
-_080CF32C:
- ldrh r0, [r1, 0x26]
- subs r0, 0x3
- strh r0, [r1, 0x26]
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _080CF370
- b _080CF354
-_080CF342:
- ldrh r0, [r1, 0x26]
- adds r0, 0x3
- strh r0, [r1, 0x26]
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080CF370
-_080CF354:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _080CF370
-_080CF35C:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- bne _080CF370
- adds r0, r1, 0
- bl move_anim_8072740
-_080CF370:
- pop {r0}
- bx r0
- thumb_func_end sub_80CF310
-
- thumb_func_start sub_80CF374
-sub_80CF374: @ 80CF374
- push {r4,lr}
- adds r4, r0, 0
- ldr r3, _080CF3C0 @ =gSprites
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r4, 0x30]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x30]
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _080CF3B2
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x24]
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080CF3B2:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF3C0: .4byte gSprites
- thumb_func_end sub_80CF374
-
- thumb_func_start sub_80CF3C4
-sub_80CF3C4: @ 80CF3C4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080CF40C @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080CF410 @ =gObjectBankIDs
- ldr r0, _080CF414 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- adds r0, r1
- ldrb r6, [r0]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080CF41C
- ldr r0, _080CF418 @ =gBattleAnimArgs
- ldrh r1, [r5, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r5, 0x20]
- adds r1, r0, 0
- b _080CF426
- .align 2, 0
-_080CF40C: .4byte gBattleAnimBankAttacker
-_080CF410: .4byte gObjectBankIDs
-_080CF414: .4byte gBattleAnimBankTarget
-_080CF418: .4byte gBattleAnimArgs
-_080CF41C:
- ldr r1, _080CF450 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
-_080CF426:
- 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]
- strh r6, [r5, 0x32]
- ldr r0, _080CF454 @ =sub_80CF374
- str r0, [r5, 0x1C]
- adds r2, r5, 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
-_080CF450: .4byte gBattleAnimArgs
-_080CF454: .4byte sub_80CF374
- thumb_func_end sub_80CF3C4
-
- thumb_func_start sub_80CF458
-sub_80CF458: @ 80CF458
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080CF484 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x38]
- ldr r0, _080CF488 @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _080CF48C @ =sub_80CF490
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF484: .4byte gBattleAnimArgs
-_080CF488: .4byte sub_80782D8
-_080CF48C: .4byte sub_80CF490
- thumb_func_end sub_80CF458
-
- thumb_func_start sub_80CF490
-sub_80CF490: @ 80CF490
- push {lr}
- ldrh r1, [r0, 0x30]
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- adds r1, 0xF
- strh r1, [r0, 0x36]
- ldr r1, _080CF4B0 @ =sub_8078B34
- str r1, [r0, 0x1C]
- ldr r1, _080CF4B4 @ =sub_80CF4B8
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080CF4B0: .4byte sub_8078B34
-_080CF4B4: .4byte sub_80CF4B8
- thumb_func_end sub_80CF490
-
- thumb_func_start sub_80CF4B8
-sub_80CF4B8: @ 80CF4B8
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x38]
- movs r3, 0x38
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080CF4CE
- adds r0, r1, 0
- bl move_anim_8072740
- b _080CF4D2
-_080CF4CE:
- subs r0, r2, 0x1
- strh r0, [r1, 0x38]
-_080CF4D2:
- pop {r0}
- bx r0
- thumb_func_end sub_80CF4B8
-
- thumb_func_start sub_80CF4D8
-sub_80CF4D8: @ 80CF4D8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080CF504 @ =gObjectBankIDs
- ldr r0, _080CF508 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8078E70
- ldr r1, _080CF50C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080CF510 @ =sub_80CF514
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF504: .4byte gObjectBankIDs
-_080CF508: .4byte gBattleAnimBankAttacker
-_080CF50C: .4byte gTasks
-_080CF510: .4byte sub_80CF514
- thumb_func_end sub_80CF4D8
-
- thumb_func_start sub_80CF514
-sub_80CF514: @ 80CF514
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080CF544 @ =gObjectBankIDs
- ldr r0, _080CF548 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- adds r1, r0, r1
- ldrb r4, [r1]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080CF550
- ldr r1, _080CF54C @ =gTasks
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- negs r0, r0
- lsls r0, 16
- lsrs r3, r0, 16
- adds r6, r2, 0
- b _080CF55E
- .align 2, 0
-_080CF544: .4byte gObjectBankIDs
-_080CF548: .4byte gBattleAnimBankAttacker
-_080CF54C: .4byte gTasks
-_080CF550:
- ldr r2, _080CF590 @ =gTasks
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r0, r2
- ldrh r3, [r0, 0x8]
- adds r6, r1, 0
-_080CF55E:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldr r1, _080CF590 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080CF598
- ldrh r0, [r1, 0x8]
- adds r0, 0xB0
- strh r0, [r1, 0x8]
- ldr r1, _080CF594 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- b _080CF5C2
- .align 2, 0
-_080CF590: .4byte gTasks
-_080CF594: .4byte gSprites
-_080CF598:
- cmp r0, 0x1
- bne _080CF5AE
- ldrh r0, [r1, 0xE]
- adds r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- bne _080CF608
- movs r0, 0x2
- b _080CF606
-_080CF5AE:
- ldrh r0, [r1, 0x8]
- subs r0, 0xB0
- strh r0, [r1, 0x8]
- ldr r1, _080CF5FC @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- subs r1, 0x1
-_080CF5C2:
- strh r1, [r0, 0x26]
- adds r0, r4, 0
- bl sub_8078F9C
- ldr r0, _080CF600 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- movs r3, 0x8
- ldrsh r2, [r1, r3]
- movs r0, 0xF2
- lsls r0, 4
- cmp r2, r0
- beq _080CF5E2
- cmp r2, 0
- bne _080CF608
-_080CF5E2:
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bne _080CF604
- adds r0, r4, 0
- bl sub_8078F40
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _080CF608
- .align 2, 0
-_080CF5FC: .4byte gSprites
-_080CF600: .4byte gTasks
-_080CF604:
- adds r0, r2, 0x1
-_080CF606:
- strh r0, [r1, 0xA]
-_080CF608:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80CF514
-
- thumb_func_start sub_80CF610
-sub_80CF610: @ 80CF610
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r5, _080CF658 @ =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_807867C
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080CF65C @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080CF660
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r1, r0
- strb r1, [r2]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _080CF674
- movs r0, 0x2
- orrs r1, r0
- strb r1, [r2]
- b _080CF674
- .align 2, 0
-_080CF658: .4byte gBattleAnimArgs
-_080CF65C: .4byte gBattleAnimBankAttacker
-_080CF660:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080CF674
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
-_080CF674:
- ldr r0, _080CF688 @ =sub_8078600
- str r0, [r4, 0x1C]
- ldr r1, _080CF68C @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF688: .4byte sub_8078600
-_080CF68C: .4byte move_anim_8072740
- thumb_func_end sub_80CF610
-
- thumb_func_start sub_80CF690
-sub_80CF690: @ 80CF690
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r0, _080CF6AC @ =sub_80785E4
- str r0, [r4, 0x1C]
- ldr r1, _080CF6B0 @ =sub_80CF6B4
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF6AC: .4byte sub_80785E4
-_080CF6B0: .4byte sub_80CF6B4
- thumb_func_end sub_80CF690
-
- thumb_func_start sub_80CF6B4
-sub_80CF6B4: @ 80CF6B4
- push {lr}
- movs r1, 0x6
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- subs r1, 0x20
- strh r1, [r0, 0x36]
- ldr r1, _080CF6D4 @ =sub_8078B34
- str r1, [r0, 0x1C]
- ldr r1, _080CF6D8 @ =move_anim_8072740
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080CF6D4: .4byte sub_8078B34
-_080CF6D8: .4byte move_anim_8072740
- thumb_func_end sub_80CF6B4
-
- thumb_func_start sub_80CF6DC
-sub_80CF6DC: @ 80CF6DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080CF700
- ldr r1, _080CF6FC @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- b _080CF722
- .align 2, 0
-_080CF6FC: .4byte gBattleAnimArgs
-_080CF700:
- ldr r0, _080CF7C8 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080CF722
- ldr r1, _080CF7CC @ =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]
-_080CF722:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r4, _080CF7D0 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r6, _080CF7CC @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x6]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- adds r7, r0, 0
- ldrh r1, [r5, 0x20]
- mov r2, r8
- lsls r0, r2, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- movs r1, 0xF0
- lsls r1, 24
- adds r0, r1
- lsrs r4, r0, 16
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080CF794
- ldr r2, _080CF7D4 @ =0xffffa000
- adds r0, r4, r2
- lsls r0, 16
- lsrs r4, r0, 16
-_080CF794:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- mov r0, r8
- strh r0, [r5, 0x32]
- strh r7, [r5, 0x36]
- ldr r0, _080CF7D8 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080CF7DC @ =move_anim_8072740
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF7C8: .4byte gBattleAnimBankAttacker
-_080CF7CC: .4byte gBattleAnimArgs
-_080CF7D0: .4byte gBattleAnimBankTarget
-_080CF7D4: .4byte 0xffffa000
-_080CF7D8: .4byte sub_8078B34
-_080CF7DC: .4byte move_anim_8072740
- thumb_func_end sub_80CF6DC
-
- thumb_func_start sub_80CF7E0
-sub_80CF7E0: @ 80CF7E0
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r3, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080CF80A
- ldr r2, _080CF810 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0xA]
- subs r1, 0x1
- strh r1, [r0, 0xA]
- adds r0, r3, 0
- bl DestroySprite
-_080CF80A:
- pop {r0}
- bx r0
- .align 2, 0
-_080CF810: .4byte gTasks
- thumb_func_end sub_80CF7E0
-
- thumb_func_start sub_80CF814
-sub_80CF814: @ 80CF814
- push {r4,lr}
- adds r2, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080CF844 @ =gTasks
- adds r4, r0, r1
- movs r3, 0x2E
- ldrsh r1, [r2, r3]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- ble _080CF848
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x38]
- adds r0, r1
- strh r0, [r2, 0x38]
- ldrh r0, [r2, 0x36]
- ldrh r3, [r2, 0x3A]
- adds r0, r3
- b _080CF856
- .align 2, 0
-_080CF844: .4byte gTasks
-_080CF848:
- ldrh r0, [r2, 0x38]
- ldrh r1, [r2, 0x34]
- subs r0, r1
- strh r0, [r2, 0x38]
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x36]
- subs r0, r1
-_080CF856:
- strh r0, [r2, 0x3A]
- ldrh r0, [r2, 0x38]
- ldrh r1, [r2, 0x30]
- adds r3, r0, r1
- strh r3, [r2, 0x30]
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r4, 0x16]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CF87A
- lsls r0, r3, 16
- lsrs r0, 24
- negs r0, r0
- b _080CF87E
-_080CF87A:
- lsls r0, r3, 16
- lsrs r0, 24
-_080CF87E:
- strh r0, [r2, 0x24]
- ldrh r1, [r4, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CF892
- ldrh r0, [r2, 0x32]
- lsrs r0, 8
- negs r0, r0
- b _080CF896
-_080CF892:
- ldrh r0, [r2, 0x32]
- lsrs r0, 8
-_080CF896:
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r2, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080CF8AC
- movs r0, 0x1E
- strh r0, [r2, 0x2E]
- ldr r0, _080CF8B4 @ =sub_80CF7E0
- str r0, [r2, 0x1C]
-_080CF8AC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF8B4: .4byte sub_80CF7E0
- thumb_func_end sub_80CF814
-
- thumb_func_start sub_80CF8B8
-sub_80CF8B8: @ 80CF8B8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080CF8FC @ =gTasks
- adds r6, r0, r1
- ldrh r2, [r6, 0x16]
- movs r1, 0x2
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- ldrh r3, [r7, 0x30]
- adds r2, r0, r3
- strh r2, [r7, 0x30]
- ldrh r0, [r6, 0x18]
- ands r1, r0
- ldrh r0, [r7, 0x32]
- adds r1, r0
- strh r1, [r7, 0x32]
- ldrh r1, [r6, 0x16]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CF900
- lsls r0, r2, 16
- lsrs r0, 24
- negs r0, r0
- b _080CF904
- .align 2, 0
-_080CF8FC: .4byte gTasks
-_080CF900:
- lsls r0, r2, 16
- lsrs r0, 24
-_080CF904:
- strh r0, [r7, 0x24]
- ldrh r1, [r6, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CF918
- ldrh r0, [r7, 0x32]
- lsrs r0, 8
- negs r0, r0
- b _080CF91C
-_080CF918:
- ldrh r0, [r7, 0x32]
- lsrs r0, 8
-_080CF91C:
- strh r0, [r7, 0x26]
- ldrh r0, [r7, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r7, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080CF9E8
- movs r4, 0
- movs r0, 0x8
- strh r0, [r7, 0x2E]
- movs r0, 0x4
- strh r0, [r6, 0x12]
- movs r0, 0x80
- lsls r0, 5
- bl sub_81174E0
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r7, 0x24]
- ldrh r1, [r7, 0x20]
- adds r2, r0, r1
- strh r2, [r7, 0x20]
- ldrh r0, [r7, 0x26]
- ldrh r3, [r7, 0x22]
- adds r0, r3
- strh r0, [r7, 0x22]
- strh r4, [r7, 0x26]
- strh r4, [r7, 0x24]
- ldrh r3, [r6, 0x1E]
- movs r0, 0x1E
- ldrsh r1, [r6, r0]
- lsls r0, r2, 16
- asrs r0, 16
- cmp r1, r0
- blt _080CF966
- subs r0, r3, r2
- b _080CF968
-_080CF966:
- subs r0, r2, r3
-_080CF968:
- lsls r0, 24
- lsrs r4, r0, 16
- ldrh r3, [r6, 0x20]
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- ldrh r2, [r7, 0x22]
- movs r6, 0x22
- ldrsh r0, [r7, r6]
- cmp r1, r0
- blt _080CF980
- subs r0, r3, r2
- b _080CF982
-_080CF980:
- subs r0, r2, r3
-_080CF982:
- lsls r0, 24
- lsrs r0, 16
- mov r8, r0
- movs r0, 0
- strh r0, [r7, 0x32]
- strh r0, [r7, 0x30]
- strh r0, [r7, 0x3A]
- strh r0, [r7, 0x38]
- lsls r0, r4, 16
- asrs r0, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r5, 0
- bl sub_81174C4
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- movs r6, 0xE0
- lsls r6, 1
- adds r0, r6, 0
- bl sub_81174E0
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_81174C4
- strh r0, [r7, 0x34]
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- adds r1, r5, 0
- bl sub_81174C4
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r6, 0
- bl sub_81174E0
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_81174C4
- strh r0, [r7, 0x36]
- ldr r0, _080CF9F4 @ =sub_80CF814
- str r0, [r7, 0x1C]
-_080CF9E8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF9F4: .4byte sub_80CF814
- thumb_func_end sub_80CF8B8
-
- thumb_func_start sub_80CF9F8
-sub_80CF9F8: @ 80CF9F8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080CFA1C @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CFA16
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080CFA16:
- pop {r0}
- bx r0
- .align 2, 0
-_080CFA1C: .4byte gTasks
- thumb_func_end sub_80CF9F8
-
- thumb_func_start sub_80CFA20
-sub_80CFA20: @ 80CFA20
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080CFA74 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- subs r1, r0, 0x1
- strh r1, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bgt _080CFAF4
- ldr r0, _080CFA78 @ =gSpriteTemplate_83D74BC
- movs r2, 0x1A
- ldrsh r1, [r5, r2]
- movs r3, 0x1C
- ldrsh r2, [r5, r3]
- ldrb r3, [r5, 0xC]
- ldrb r4, [r5, 0xA]
- subs r3, r4
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r0, 4
- add r0, r12
- lsls r0, 2
- ldr r1, _080CFA7C @ =gSprites
- adds r6, r0, r1
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080CFA80
- cmp r0, 0x2
- beq _080CFA96
- b _080CFAA4
- .align 2, 0
-_080CFA74: .4byte gTasks
-_080CFA78: .4byte gSpriteTemplate_83D74BC
-_080CFA7C: .4byte gSprites
-_080CFA80:
- ldrb r2, [r6, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x18
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x57
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x3]
- b _080CFAA4
-_080CFA96:
- ldrb r0, [r6, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r6, 0x3]
-_080CFAA4:
- ldr r3, _080CFAFC @ =gTasks
- lsls r2, r7, 2
- adds r2, r7
- lsls r2, 3
- adds r4, r2, r3
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x14]
- subs r0, r1
- strh r0, [r6, 0x2E]
- strh r7, [r6, 0x3C]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- adds r0, 0xD
- lsls r0, 1
- adds r0, r2
- adds r3, 0x8
- adds r0, r3
- mov r2, r12
- strh r2, [r0]
- ldrh r0, [r4, 0xE]
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r0, 0x3F
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x9A
- bl PlaySE12WithPanning
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0x2
- ble _080CFAF4
- ldr r0, _080CFB00 @ =sub_80CF9F8
- str r0, [r4]
-_080CFAF4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFAFC: .4byte gTasks
-_080CFB00: .4byte sub_80CF9F8
- thumb_func_end sub_80CFA20
-
- thumb_func_start sub_80CFB04
-sub_80CFB04: @ 80CFB04
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r9, r0
- movs r5, 0
- mov r0, sp
- mov r1, r9
- strh r1, [r0]
- mov r4, sp
- adds r4, 0x2
- strh r1, [r4]
- bl IsContest
- lsls r0, 24
- mov r10, r4
- cmp r0, 0
- beq _080CFB70
- ldr r1, _080CFB60 @ =gTasks
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x10]
- ldr r3, _080CFB64 @ =gBattleAnimArgs
- ldrh r0, [r3]
- negs r0, r0
- strh r0, [r3]
- ldrh r1, [r3, 0x4]
- movs r0, 0x1
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _080CFB68
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strh r0, [r3, 0x4]
- b _080CFBCA
- .align 2, 0
-_080CFB60: .4byte gTasks
-_080CFB64: .4byte gBattleAnimArgs
-_080CFB68:
- movs r0, 0x1
- orrs r0, r1
- strh r0, [r3, 0x4]
- b _080CFBCA
-_080CFB70:
- ldr r1, _080CFBB4 @ =gBanksBySide
- ldr r0, _080CFBB8 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- lsls r2, r7, 2
- mov r8, r2
- cmp r0, 0
- bne _080CFBCA
- ldr r1, _080CFBBC @ =gTasks
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x10]
- ldr r2, _080CFBC0 @ =gBattleAnimArgs
- ldrh r0, [r2]
- negs r0, r0
- strh r0, [r2]
- ldrh r0, [r2, 0x2]
- negs r0, r0
- strh r0, [r2, 0x2]
- ldrh r1, [r2, 0x4]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080CFBC4
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- b _080CFBC8
- .align 2, 0
-_080CFBB4: .4byte gBanksBySide
-_080CFBB8: .4byte gBattleAnimBankTarget
-_080CFBBC: .4byte gTasks
-_080CFBC0: .4byte gBattleAnimArgs
-_080CFBC4:
- movs r0, 0x1
- orrs r0, r1
-_080CFBC8:
- strh r0, [r2, 0x4]
-_080CFBCA:
- ldr r5, _080CFC24 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- ldr r1, _080CFC28 @ =gTasks
- mov r3, r8
- adds r4, r3, r7
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1A]
- adds r6, r0, 0
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- mov r9, r0
- ldr r0, _080CFC2C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CFC34
- ldr r4, _080CFC30 @ =gBattleAnimBankTarget
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080CFC34
- ldrb r0, [r4]
- movs r1, 0
- mov r2, sp
- mov r3, r10
- bl sub_807A3FC
- b _080CFC56
- .align 2, 0
-_080CFC24: .4byte gBattleAnimBankAttacker
-_080CFC28: .4byte gTasks
-_080CFC2C: .4byte gBattleTypeFlags
-_080CFC30: .4byte gBattleAnimBankTarget
-_080CFC34:
- mov r5, sp
- ldr r4, _080CFC90 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r1, r10
- strh r0, [r1]
-_080CFC56:
- mov r4, sp
- ldr r0, _080CFC94 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- mov r2, sp
- ldr r3, _080CFC98 @ =gBattleAnimArgs
- ldrh r0, [r3]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r1, 0x1E]
- strh r0, [r4]
- ldrh r0, [r3, 0x2]
- mov r3, r10
- ldrh r3, [r3]
- adds r0, r3
- strh r0, [r1, 0x20]
- mov r1, r10
- strh r0, [r1]
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r0, [r0, r3]
- adds r1, r6, 0
- cmp r0, r1
- blt _080CFC9C
- subs r0, r2, r1
- b _080CFC9E
- .align 2, 0
-_080CFC90: .4byte gBattleAnimBankTarget
-_080CFC94: .4byte gTasks
-_080CFC98: .4byte gBattleAnimArgs
-_080CFC9C:
- subs r0, r1, r2
-_080CFC9E:
- lsls r0, 16
- lsrs r0, 16
- lsls r4, r0, 16
- asrs r4, 16
- ldr r5, _080CFD14 @ =gBattleAnimArgs
- ldrh r1, [r5, 0x4]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- lsls r0, 16
- asrs r0, 16
- bl sub_81174E0
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_81174C4
- ldr r2, _080CFD18 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r6, r1, r2
- strh r0, [r6, 0x12]
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- movs r1, 0x80
- bl sub_81174C4
- strh r0, [r6, 0x14]
- ldrh r0, [r5, 0x4]
- strh r0, [r6, 0x16]
- mov r2, r10
- ldrh r1, [r2]
- movs r3, 0
- ldrsh r0, [r2, r3]
- mov r4, r9
- cmp r0, r4
- blt _080CFD1C
- subs r4, r1, r4
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- bl sub_81174E0
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_81174C4
- movs r1, 0x2
- negs r1, r1
- ands r1, r0
- strh r1, [r6, 0x18]
- b _080CFD3C
- .align 2, 0
-_080CFD14: .4byte gBattleAnimArgs
-_080CFD18: .4byte gTasks
-_080CFD1C:
- subs r4, r1
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- bl sub_81174E0
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_81174C4
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r6, 0x18]
-_080CFD3C:
- ldr r1, _080CFD7C @ =gTasks
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r5, r0, r1
- ldr r4, _080CFD80 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0xE]
- ldrh r1, [r4, 0x8]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080CFD8C
- movs r0, 0x80
- eors r0, r1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _080CFDB4
- ldr r0, _080CFD84 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CFD88 @ =0x0000ffc0
- adds r1, r2, 0
- ldrh r4, [r4, 0x8]
- adds r1, r4
- adds r0, r1
- b _080CFDC4
- .align 2, 0
-_080CFD7C: .4byte gTasks
-_080CFD80: .4byte gBattleAnimArgs
-_080CFD84: .4byte gBattleAnimBankTarget
-_080CFD88: .4byte 0x0000ffc0
-_080CFD8C:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _080CFDB4
- ldr r0, _080CFDAC @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080CFDB0 @ =0x0000ffc0
- adds r1, r3, 0
- ldrh r4, [r4, 0x8]
- adds r1, r4
- adds r0, r1
- b _080CFDC4
- .align 2, 0
-_080CFDAC: .4byte gBattleAnimBankTarget
-_080CFDB0: .4byte 0x0000ffc0
-_080CFDB4:
- ldr r0, _080CFDF0 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x8]
- subs r0, r1
-_080CFDC4:
- strh r0, [r5, 0xC]
- ldr r0, _080CFDF4 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bgt _080CFDDC
- movs r0, 0x3
- strh r0, [r1, 0xC]
-_080CFDDC:
- ldr r0, _080CFDF8 @ =sub_80CFA20
- str r0, [r1]
- 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
-_080CFDF0: .4byte gBattleAnimBankTarget
-_080CFDF4: .4byte gTasks
-_080CFDF8: .4byte sub_80CFA20
- thumb_func_end sub_80CFB04
-
- thumb_func_start sub_80CFDFC
-sub_80CFDFC: @ 80CFDFC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r0, _080CFE24 @ =gSpriteTemplate_83D75AC
- ldrh r0, [r0, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0x2E]
- ldr r0, _080CFE28 @ =sub_80CFE2C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFE24: .4byte gSpriteTemplate_83D75AC
-_080CFE28: .4byte sub_80CFE2C
- thumb_func_end sub_80CFDFC
-
- thumb_func_start sub_80CFE2C
-sub_80CFE2C: @ 80CFE2C
- push {r4-r7,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080CFE90
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r5, [r4, 0x2E]
- ldr r1, _080CFE98 @ =gPlttBufferFaded
- adds r0, r5, 0
- adds r0, 0x8
- lsls r0, 1
- adds r0, r1
- ldrh r7, [r0]
- adds r6, r1, 0
- adds r1, r5, 0
- adds r1, 0x9
- lsls r0, r5, 1
- adds r0, r6
- adds r2, r0, 0
- adds r2, 0x10
- movs r3, 0x7
- lsls r1, 1
- adds r1, r6
-_080CFE64:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080CFE64
- adds r0, r5, 0
- adds r0, 0xF
- lsls r0, 1
- adds r0, r6
- strh r7, [r0]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- bne _080CFE90
- adds r0, r4, 0
- bl move_anim_8072740
-_080CFE90:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFE98: .4byte gPlttBufferFaded
- thumb_func_end sub_80CFE2C
-
- thumb_func_start sub_80CFE9C
-sub_80CFE9C: @ 80CFE9C
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r4, _080CFF3C @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080CFF40 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, _080CFF44 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080CFEE0
- ldrh r0, [r4, 0x4]
- negs r0, r0
- strh r0, [r4, 0x4]
-_080CFEE0:
- lsls r0, r6, 16
- asrs r0, 16
- ldrh r1, [r4, 0x4]
- adds r0, r1
- lsls r0, 16
- ldrh r1, [r5, 0x20]
- lsrs r6, r0, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- lsls r1, r7, 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, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x2E]
- strh r6, [r5, 0x32]
- strh r7, [r5, 0x36]
- ldr r0, _080CFF48 @ =sub_8078C00
- str r0, [r5, 0x1C]
- ldr r1, _080CFF4C @ =move_anim_8072740
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFF3C: .4byte gBattleAnimBankTarget
-_080CFF40: .4byte gBattleAnimArgs
-_080CFF44: .4byte gBattleAnimBankAttacker
-_080CFF48: .4byte sub_8078C00
-_080CFF4C: .4byte move_anim_8072740
- thumb_func_end sub_80CFE9C
-
- thumb_func_start sub_80CFF50
-sub_80CFF50: @ 80CFF50
- ldr r1, _080CFF60 @ =0x0000fff0
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- ldr r1, _080CFF64 @ =sub_80CFF68
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080CFF60: .4byte 0x0000fff0
-_080CFF64: .4byte sub_80CFF68
- thumb_func_end sub_80CFF50
-
- thumb_func_start sub_80CFF68
-sub_80CFF68: @ 80CFF68
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldr r0, _080CFFD4 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080CFF8C
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
-_080CFF8C:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x5
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7E
- ble _080CFFCC
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080CFFCC
- adds r0, r4, 0
- bl move_anim_8072740
-_080CFFCC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFFD4: .4byte gBattleAnimBankAttacker
- thumb_func_end sub_80CFF68
-
- thumb_func_start sub_80CFFD8
-sub_80CFFD8: @ 80CFFD8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r5, _080D0024 @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080D0028 @ =sub_8078B34
- str r0, [r4, 0x1C]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080D002C @ =sub_80D0030
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0024: .4byte gBattleAnimBankTarget
-_080D0028: .4byte sub_8078B34
-_080D002C: .4byte sub_80D0030
- thumb_func_end sub_80CFFD8
-
- thumb_func_start sub_80D0030
-sub_80D0030: @ 80D0030
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xA6
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- movs r2, 0
- movs r1, 0x7
- adds r0, r4, 0
- adds r0, 0x3C
-_080D0064:
- strh r2, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080D0064
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- ands r0, r1
- ldr r2, _080D00AC @ =0x0000fff4
- adds r1, r2, 0
- subs r1, r0
- strh r1, [r4, 0x3A]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA0
- bl __umodsi3
- adds r0, 0xA0
- strh r0, [r4, 0x3C]
- ldr r0, _080D00B0 @ =sub_80D00B4
- str r0, [r4, 0x1C]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D00AC: .4byte 0x0000fff4
-_080D00B0: .4byte sub_80D00B4
- thumb_func_end sub_80D0030
-
- thumb_func_start sub_80D00B4
-sub_80D00B4: @ 80D00B4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- ldrh r2, [r4, 0x2E]
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r2, r0, 24
- strh r2, [r4, 0x24]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D00D2
- negs r0, r2
- strh r0, [r4, 0x24]
-_080D00D2:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x8
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7E
- ble _080D0112
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080D0112
- adds r0, r4, 0
- bl move_anim_8072740
-_080D0112:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D00B4
-
- thumb_func_start sub_80D0118
-sub_80D0118: @ 80D0118
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r0, _080D0168 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080D0136
- ldrh r0, [r4, 0x22]
- adds r0, 0x10
- strh r0, [r4, 0x22]
-_080D0136:
- ldr r1, _080D016C @ =gBattleAnimArgs
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0xC]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldr r0, _080D0170 @ =sub_8078114
- str r0, [r4, 0x1C]
- ldr r1, _080D0174 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0168: .4byte gBattleAnimBankAttacker
-_080D016C: .4byte gBattleAnimArgs
-_080D0170: .4byte sub_8078114
-_080D0174: .4byte move_anim_8072740
- thumb_func_end sub_80D0118
-
- thumb_func_start sub_80D0178
-sub_80D0178: @ 80D0178
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- movs r7, 0x20
- ldr r4, _080D01F4 @ =0x0000ffe0
- movs r0, 0x10
- mov r8, r0
- ldr r6, _080D01F8 @ =0x0000fff0
- ldr r0, _080D01FC @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080D01A4
- adds r7, r4, 0
- movs r4, 0x20
- mov r8, r6
- movs r6, 0x10
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080D01A4:
- lsls r0, r7, 16
- asrs r0, 16
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, _080D0200 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- add r0, r8
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- ldr r0, _080D0204 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080D0208 @ =sub_80D020C
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D01F4: .4byte 0x0000ffe0
-_080D01F8: .4byte 0x0000fff0
-_080D01FC: .4byte gBattleAnimArgs
-_080D0200: .4byte gBattleAnimBankTarget
-_080D0204: .4byte sub_8078B34
-_080D0208: .4byte sub_80D020C
- thumb_func_end sub_80D0178
-
- thumb_func_start sub_80D020C
-sub_80D020C: @ 80D020C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D0222
- adds r0, r2, 0
- bl move_anim_8072740
-_080D0222:
- pop {r0}
- bx r0
- thumb_func_end sub_80D020C
-
- thumb_func_start sub_80D0228
-sub_80D0228: @ 80D0228
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- movs r0, 0x20
- mov r8, r0
- ldr r4, _080D02BC @ =0x0000ffe0
- movs r2, 0x10
- mov r9, r2
- ldr r6, _080D02C0 @ =0x0000fff0
- ldr r7, _080D02C4 @ =gBattleAnimArgs
- ldrh r1, [r7]
- movs r2, 0
- ldrsh r0, [r7, r2]
- cmp r0, 0
- beq _080D025C
- mov r8, r4
- movs r4, 0x20
- mov r9, r6
- movs r6, 0x10
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
-_080D025C:
- mov r0, r8
- lsls r1, r0, 16
- asrs r1, 16
- ldrh r2, [r5, 0x20]
- adds r1, r2
- strh r1, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- ldr r4, _080D02C8 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- add r0, r9
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r7]
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x2E]
- strh r0, [r5, 0x3A]
- ldr r0, _080D02CC @ =sub_80D02D0
- str r0, [r5, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D02BC: .4byte 0x0000ffe0
-_080D02C0: .4byte 0x0000fff0
-_080D02C4: .4byte gBattleAnimArgs
-_080D02C8: .4byte gBattleAnimBankTarget
-_080D02CC: .4byte sub_80D02D0
- thumb_func_end sub_80D0228
-
- thumb_func_start sub_80D02D0
-sub_80D02D0: @ 80D02D0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D0334
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D0334
- adds r0, r4, 0
- movs r1, 0
- bl SeekSpriteAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r2, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x2
- strh r0, [r4, 0x24]
- ldr r0, _080D033C @ =0x0000fffe
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- eors r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x36]
- strh r2, [r4, 0x34]
- ldr r0, _080D0340 @ =sub_80D0344
- str r0, [r4, 0x1C]
-_080D0334:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D033C: .4byte 0x0000fffe
-_080D0340: .4byte sub_80D0344
- thumb_func_end sub_80D02D0
-
- thumb_func_start sub_80D0344
-sub_80D0344: @ 80D0344
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D035C
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
-_080D035C:
- ldrh r0, [r4, 0x34]
- movs r1, 0x1
- eors r0, r1
- movs r1, 0
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080D039E
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x36]
- strh r1, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- movs r1, 0x1
- eors r1, r0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080D03A4 @ =sub_80D03A8
- str r0, [r4, 0x1C]
-_080D039E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D03A4: .4byte sub_80D03A8
- thumb_func_end sub_80D0344
-
- thumb_func_start sub_80D03A8
-sub_80D03A8: @ 80D03A8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D03BC
- adds r0, r4, 0
- bl move_anim_8072740
-_080D03BC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D03A8
-
- thumb_func_start sub_80D03C4
-sub_80D03C4: @ 80D03C4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- bl GetAnimBankSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078E70
- adds r0, r4, 0
- movs r1, 0xD0
- movs r2, 0xD0
- movs r3, 0
- bl obj_id_set_rotscale
- ldr r1, _080D041C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0
- bl sub_8079108
- ldr r1, _080D0420 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x50
- strh r1, [r0, 0x8]
- ldr r1, _080D0424 @ =sub_80D0428
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D041C: .4byte gSprites
-_080D0420: .4byte gTasks
-_080D0424: .4byte sub_80D0428
- thumb_func_end sub_80D03C4
-
- thumb_func_start sub_80D0428
-sub_80D0428: @ 80D0428
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D0480 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080D0478
- movs r0, 0x1
- bl GetAnimBankSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8078F40
- ldr r1, _080D0484 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0x1
- bl sub_8079108
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080D0478:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0480: .4byte gTasks
-_080D0484: .4byte gSprites
- thumb_func_end sub_80D0428
-
- thumb_func_start sub_80D0488
-sub_80D0488: @ 80D0488
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D04D4 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x8]
- movs r1, 0
- bl sub_8078E70
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x10]
- strh r5, [r4, 0x12]
- strh r5, [r4, 0x14]
- ldr r0, _080D04D8 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x16]
- ldr r0, _080D04DC @ =sub_80D04E0
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D04D4: .4byte gTasks
-_080D04D8: .4byte gBattleAnimBankAttacker
-_080D04DC: .4byte sub_80D04E0
- thumb_func_end sub_80D0488
-
- thumb_func_start sub_80D04E0
-sub_80D04E0: @ 80D04E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080D0504 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _080D04FA
- b _080D060A
-_080D04FA:
- lsls r0, 2
- ldr r1, _080D0508 @ =_080D050C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D0504: .4byte gTasks
-_080D0508: .4byte _080D050C
- .align 2, 0
-_080D050C:
- .4byte _080D0524
- .4byte _080D056C
- .4byte _080D05A2
- .4byte _080D05A8
- .4byte _080D05B8
- .4byte _080D05EC
-_080D0524:
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080D0534
- cmp r0, 0x3
- beq _080D0534
- cmp r0, 0x6
- bne _080D053C
-_080D0534:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80D0614
-_080D053C:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- adds r0, 0x28
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r1, 0x10
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8079A64
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _080D060A
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- b _080D05E4
-_080D056C:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D060A
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- cmp r1, 0x3
- bne _080D0582
- strh r0, [r4, 0xC]
- strh r1, [r4, 0xA]
- b _080D060A
-_080D0582:
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r2, 0x80
- lsls r2, 1
- strh r2, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8079A64
- movs r0, 0x2
- strh r0, [r4, 0xA]
- b _080D060A
-_080D05A2:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080D060A
-_080D05A8:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _080D060A
- b _080D05E0
-_080D05B8:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- subs r0, 0x50
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r1, 0x10
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8079A64
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _080D060A
-_080D05E0:
- movs r0, 0
- strh r0, [r4, 0xC]
-_080D05E4:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080D060A
-_080D05EC:
- ldrb r0, [r4, 0x8]
- bl sub_8078F40
- ldr r2, _080D0610 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x26]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080D060A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0610: .4byte gSprites
- thumb_func_end sub_80D04E0
-
- thumb_func_start sub_80D0614
-sub_80D0614: @ 80D0614
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r0, 0
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r0, 16
- asrs r4, r0, 16
- cmp r4, 0
- blt _080D06EE
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xFF
- bne _080D0658
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _080D0654 @ =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
- b _080D06EE
- .align 2, 0
-_080D0654: .4byte gSprites
-_080D0658:
- ldr r5, _080D06FC @ =gSprites
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- adds r4, r3, r5
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- 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]
- ldrb r0, [r7, 0x16]
- ldrb r1, [r7, 0xE]
- subs r0, r1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r7, 0xE]
- adds r0, 0x1
- strh r0, [r7, 0xE]
- ldrh r0, [r7, 0x14]
- adds r0, 0x1
- strh r0, [r7, 0x14]
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- movs r0, 0x6
- strh r0, [r4, 0x32]
- adds r5, 0x1C
- adds r3, r5
- ldr r0, _080D0700 @ =sub_80D0704
- str r0, [r3]
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
- movs r1, 0x10
- ldrsh r2, [r7, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x1]
- movs r3, 0x4
- negs r3, r3
- ands r3, r0
- movs r0, 0x1
- orrs r3, r0
- strb 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
-_080D06EE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D06FC: .4byte gSprites
-_080D0700: .4byte sub_80D0704
- thumb_func_end sub_80D0614
-
- thumb_func_start sub_80D0704
-sub_80D0704: @ 80D0704
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080D0742
- ldr r3, _080D0748 @ =gTasks
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl obj_delete_but_dont_free_vram
-_080D0742:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0748: .4byte gTasks
- thumb_func_end sub_80D0704
-
- thumb_func_start sub_80D074C
-sub_80D074C: @ 80D074C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D0770 @ =gTasks
- adds r4, r0, r1
- ldr r5, _080D0774 @ =gBattleAnimArgs
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D0778
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _080D079E
- .align 2, 0
-_080D0770: .4byte gTasks
-_080D0774: .4byte gBattleAnimArgs
-_080D0778:
- ldrb r0, [r5]
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- strh r1, [r4, 0x8]
- strh r2, [r4, 0xA]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0xC]
- strh r2, [r4, 0xE]
- strh r2, [r4, 0x10]
- ldr r2, _080D07A4 @ =gUnknown_083D76F4
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080D07A8 @ =sub_80D07AC
- str r0, [r4]
-_080D079E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D07A4: .4byte gUnknown_083D76F4
-_080D07A8: .4byte sub_80D07AC
- thumb_func_end sub_80D074C
-
- thumb_func_start sub_80D07AC
-sub_80D07AC: @ 80D07AC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080D07D0 @ =gTasks
- adds r4, r0, r1
- movs r0, 0xA
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080D0814
- cmp r5, 0x1
- bgt _080D07D4
- cmp r5, 0
- beq _080D07DE
- b _080D08BC
- .align 2, 0
-_080D07D0: .4byte gTasks
-_080D07D4:
- cmp r5, 0x2
- beq _080D0848
- cmp r5, 0x3
- beq _080D0878
- b _080D08BC
-_080D07DE:
- adds r0, r4, 0
- bl sub_807992C
- ldrh r2, [r4, 0x10]
- adds r2, 0x3
- strh r2, [r4, 0x10]
- ldr r3, _080D0810 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x26]
- adds r1, r2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080D08BC
- strh r5, [r4, 0xE]
- b _080D0870
- .align 2, 0
-_080D0810: .4byte gSprites
-_080D0814:
- adds r0, r4, 0
- bl sub_807992C
- ldr r2, _080D0844 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- ldrh r2, [r0, 0x26]
- adds r1, r2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080D08BC
- movs r0, 0
- strh r0, [r4, 0xE]
- b _080D0870
- .align 2, 0
-_080D0844: .4byte gSprites
-_080D0848:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D0870
- ldr r2, _080D086C @ =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, 0x2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0x10]
- subs r0, 0x2
- strh r0, [r4, 0x10]
- b _080D08BC
- .align 2, 0
-_080D086C: .4byte gSprites
-_080D0870:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080D08BC
-_080D0878:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080D08BC
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080D08B0
- ldr r2, _080D08AC @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- b _080D08BC
- .align 2, 0
-_080D08AC: .4byte gSprites
-_080D08B0:
- ldrb r1, [r4, 0x8]
- ldr r2, _080D08C4 @ =gUnknown_083D76F4
- adds r0, r4, 0
- bl sub_80798F4
- strh r5, [r4, 0xA]
-_080D08BC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D08C4: .4byte gUnknown_083D76F4
- thumb_func_end sub_80D07AC
-
- thumb_func_start sub_80D08C8
-sub_80D08C8: @ 80D08C8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D08F8 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080D08FC @ =gUnknown_083D7714
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080D0900 @ =sub_80D0904
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D08F8: .4byte gTasks
-_080D08FC: .4byte gUnknown_083D7714
-_080D0900: .4byte sub_80D0904
- thumb_func_end sub_80D08C8
-
- thumb_func_start sub_80D0904
-sub_80D0904: @ 80D0904
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D092C @ =gTasks
- adds r0, r1
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _080D0924
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080D0924:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D092C: .4byte gTasks
- thumb_func_end sub_80D0904
-
- thumb_func_start sub_80D0930
-sub_80D0930: @ 80D0930
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D0960 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080D0964
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r4, 0x20]
- movs r0, 0x40
- b _080D097E
- .align 2, 0
-_080D0960: .4byte gBattleAnimBankAttacker
-_080D0964:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x20
- strh r0, [r4, 0x20]
- ldr r0, _080D09B0 @ =0x0000ffc0
-_080D097E:
- strh r0, [r4, 0x30]
- ldr r0, _080D09B4 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r4, 0x22]
- movs r0, 0x34
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x32]
- strh r1, [r4, 0x34]
- strh r1, [r4, 0x36]
- ldr r1, _080D09B8 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080D09BC @ =sub_8078394
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D09B0: .4byte 0x0000ffc0
-_080D09B4: .4byte gBattleAnimBankAttacker
-_080D09B8: .4byte move_anim_8072740
-_080D09BC: .4byte sub_8078394
- thumb_func_end sub_80D0930
-
- thumb_func_start sub_80D09C0
-sub_80D09C0: @ 80D09C0
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080D09D4 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D09DC
- ldr r0, _080D09D8 @ =gBattleAnimBankAttacker
- b _080D09DE
- .align 2, 0
-_080D09D4: .4byte gBattleAnimArgs
-_080D09D8: .4byte gBattleAnimBankAttacker
-_080D09DC:
- ldr r0, _080D0A3C @ =gBattleAnimBankTarget
-_080D09DE:
- ldrb r5, [r0]
- adds r0, r5, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D09F8
- ldr r1, _080D0A40 @ =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080D09F8:
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080D0A40 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x4]
- adds r0, r4
- strh r0, [r6, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bgt _080D0A2A
- movs r0, 0x8
- strh r0, [r6, 0x22]
-_080D0A2A:
- ldr r1, _080D0A44 @ =move_anim_8074EE0
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080D0A48 @ =sub_80785E4
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0A3C: .4byte gBattleAnimBankTarget
-_080D0A40: .4byte gBattleAnimArgs
-_080D0A44: .4byte move_anim_8074EE0
-_080D0A48: .4byte sub_80785E4
- thumb_func_end sub_80D09C0
-
- thumb_func_start sub_80D0A4C
-sub_80D0A4C: @ 80D0A4C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D0A80 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- strh r1, [r4, 0x8]
- strh r0, [r4, 0xA]
- ldr r2, _080D0A84 @ =gUnknown_083D77B0
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080D0A88 @ =sub_80D0A8C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0A80: .4byte gTasks
-_080D0A84: .4byte gUnknown_083D77B0
-_080D0A88: .4byte sub_80D0A8C
- thumb_func_end sub_80D0A4C
-
- thumb_func_start sub_80D0A8C
-sub_80D0A8C: @ 80D0A8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D0AB4 @ =gTasks
- adds r0, r1
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _080D0AAC
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080D0AAC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0AB4: .4byte gTasks
- thumb_func_end sub_80D0A8C
-
- thumb_func_start sub_80D0AB8
-sub_80D0AB8: @ 80D0AB8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D0B2C @ =gTasks
- adds r4, r1, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- strh r0, [r4, 0x8]
- strh r2, [r4, 0xA]
- movs r0, 0x4
- strh r0, [r4, 0xC]
- movs r0, 0x7
- strh r0, [r4, 0xE]
- movs r0, 0x3
- strh r0, [r4, 0x10]
- ldr r3, _080D0B30 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x12]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x14]
- strh r2, [r4, 0x16]
- strh r2, [r4, 0x18]
- movs r0, 0x2
- strh r0, [r4, 0x1A]
- ldr r0, _080D0B34 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D0B22
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0xC]
-_080D0B22:
- ldr r0, _080D0B38 @ =sub_80D0B3C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0B2C: .4byte gTasks
-_080D0B30: .4byte gSprites
-_080D0B34: .4byte gBattleAnimBankAttacker
-_080D0B38: .4byte sub_80D0B3C
- thumb_func_end sub_80D0AB8
-
- thumb_func_start sub_80D0B3C
-sub_80D0B3C: @ 80D0B3C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D0B84 @ =gTasks
- adds r3, r0, r1
- ldrh r0, [r3, 0x16]
- adds r0, 0x1
- strh r0, [r3, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080D0BA2
- movs r0, 0
- strh r0, [r3, 0x16]
- ldrh r0, [r3, 0x18]
- adds r0, 0x1
- strh r0, [r3, 0x18]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D0B8C
- ldr r2, _080D0B88 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x1A]
- ldrh r2, [r0, 0x22]
- adds r1, r2
- b _080D0BA0
- .align 2, 0
-_080D0B84: .4byte gTasks
-_080D0B88: .4byte gSprites
-_080D0B8C:
- ldr r2, _080D0BB4 @ =gSprites
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- ldrh r2, [r3, 0x1A]
- subs r1, r2
-_080D0BA0:
- strh r1, [r0, 0x22]
-_080D0BA2:
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _080D0BF0
- cmp r0, 0x1
- bgt _080D0BB8
- cmp r0, 0
- beq _080D0BBE
- b _080D0C80
- .align 2, 0
-_080D0BB4: .4byte gSprites
-_080D0BB8:
- cmp r0, 0x2
- beq _080D0C20
- b _080D0C80
-_080D0BBE:
- ldr r2, _080D0BEC @ =gSprites
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0xC]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _080D0C80
- movs r0, 0xE
- strh r0, [r3, 0xE]
- movs r0, 0x1
- strh r0, [r3, 0xA]
- b _080D0C80
- .align 2, 0
-_080D0BEC: .4byte gSprites
-_080D0BF0:
- ldr r2, _080D0C1C @ =gSprites
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x20]
- ldrh r2, [r3, 0xC]
- subs r1, r2
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _080D0C80
- movs r0, 0x7
- strh r0, [r3, 0xE]
- movs r0, 0x2
- strh r0, [r3, 0xA]
- b _080D0C80
- .align 2, 0
-_080D0C1C: .4byte gSprites
-_080D0C20:
- ldr r2, _080D0C58 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0xC]
- ldrh r5, [r0, 0x20]
- adds r1, r5
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _080D0C80
- ldrh r0, [r3, 0x10]
- subs r0, 0x1
- strh r0, [r3, 0x10]
- lsls r0, 16
- cmp r0, 0
- beq _080D0C5C
- movs r0, 0x7
- strh r0, [r3, 0xE]
- strh r1, [r3, 0xA]
- b _080D0C80
- .align 2, 0
-_080D0C58: .4byte gSprites
-_080D0C5C:
- ldrh r1, [r3, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D0C7A
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- ldrh r2, [r3, 0x1A]
- subs r1, r2
- strh r1, [r0, 0x22]
-_080D0C7A:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080D0C80:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D0B3C
-
- thumb_func_start sub_80D0C88
-sub_80D0C88: @ 80D0C88
- 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, _080D0CD8 @ =gTasks
- adds r5, r1, r0
- ldr r4, _080D0CDC @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- movs r1, 0
- strh r0, [r5, 0x8]
- movs r0, 0x4
- strh r0, [r5, 0xA]
- strh r1, [r5, 0xC]
- strh r1, [r5, 0xE]
- strh r1, [r5, 0x10]
- strh r1, [r5, 0x12]
- ldrb r0, [r4]
- bl sub_807A100
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D0CE8
- ldr r0, _080D0CE0 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r5, 0x14]
- ldr r0, _080D0CE4 @ =REG_BG1HOFS
- b _080D0CF0
- .align 2, 0
-_080D0CD8: .4byte gTasks
-_080D0CDC: .4byte gBattleAnimBankTarget
-_080D0CE0: .4byte gUnknown_030042C0
-_080D0CE4: .4byte REG_BG1HOFS
-_080D0CE8:
- ldr r0, _080D0D54 @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r5, 0x14]
- ldr r0, _080D0D58 @ =REG_BG2HOFS
-_080D0CF0:
- str r0, [sp]
- ldrh r0, [r5, 0x8]
- adds r1, r0, 0
- subs r1, 0x40
- lsls r2, r1, 16
- lsls r0, 16
- cmp r2, r0
- bgt _080D0D2E
- ldr r4, _080D0D5C @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r4, r0
-_080D0D08:
- asrs r3, r2, 16
- cmp r3, 0
- blt _080D0D20
- lsls r1, r3, 1
- adds r2, r1, r4
- ldrh r0, [r5, 0x14]
- adds r0, 0xF0
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r5, 0x14]
- adds r0, 0xF0
- strh r0, [r1]
-_080D0D20:
- adds r0, r3, 0x1
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- cmp r1, r0
- ble _080D0D08
-_080D0D2E:
- ldr r0, _080D0D60 @ =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, _080D0D64 @ =sub_80D0D68
- str r0, [r5]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0D54: .4byte gUnknown_03004288
-_080D0D58: .4byte REG_BG2HOFS
-_080D0D5C: .4byte gUnknown_03004DE0
-_080D0D60: .4byte 0xa2600001
-_080D0D64: .4byte sub_80D0D68
- thumb_func_end sub_80D0C88
-
- thumb_func_start sub_80D0D68
-sub_80D0D68: @ 80D0D68
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D0D88 @ =gTasks
- adds r3, r0, r1
- movs r1, 0x10
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _080D0D8C
- cmp r0, 0x1
- beq _080D0DA2
- b _080D0E22
- .align 2, 0
-_080D0D88: .4byte gTasks
-_080D0D8C:
- ldrh r0, [r3, 0x12]
- adds r0, 0x1
- strh r0, [r3, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080D0E22
- ldrh r0, [r3, 0x10]
- adds r0, 0x1
- strh r0, [r3, 0x10]
- b _080D0E22
-_080D0DA2:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080D0E22
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r1, [r3, 0xE]
- movs r0, 0x3
- ands r0, r1
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x8]
- subs r0, r1
- strh r0, [r3, 0x12]
- movs r2, 0xC
- ldrsh r1, [r3, r2]
- cmp r1, 0x1
- beq _080D0DD8
- cmp r1, 0x1
- ble _080D0DE0
- cmp r1, 0x2
- beq _080D0DDC
- cmp r1, 0x3
- beq _080D0DDC
- b _080D0DE0
-_080D0DD8:
- subs r0, 0x2
- b _080D0DDE
-_080D0DDC:
- adds r0, 0x1
-_080D0DDE:
- strh r0, [r3, 0x12]
-_080D0DE0:
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- cmp r0, 0
- blt _080D0E04
- ldr r2, _080D0E28 @ =gUnknown_03004DE0
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r3, 0x14]
- strh r1, [r0]
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- lsls r0, 1
- movs r1, 0xF0
- lsls r1, 3
- adds r2, r1
- adds r0, r2
- ldrh r1, [r3, 0x14]
- strh r1, [r0]
-_080D0E04:
- ldrh r0, [r3, 0xE]
- adds r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x26
- ldrsh r1, [r3, r2]
- cmp r0, r1
- blt _080D0E22
- ldr r1, _080D0E2C @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080D0E22:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0E28: .4byte gUnknown_03004DE0
-_080D0E2C: .4byte gUnknown_03004DC0
- thumb_func_end sub_80D0D68
-
- thumb_func_start sub_80D0E30
-sub_80D0E30: @ 80D0E30
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080D0E84 @ =gBattleAnimBankTarget
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x32]
- movs r0, 0x10
- strh r0, [r4, 0x34]
- strh r5, [r4, 0x36]
- ldrb r0, [r6]
- movs r1, 0
- bl sub_807A100
- adds r0, 0x2
- strh r0, [r4, 0x38]
- movs r0, 0x3F
- bl sub_8076F98
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x3A]
- ldr r0, _080D0E88 @ =sub_80D0E8C
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0E84: .4byte gBattleAnimBankTarget
-_080D0E88: .4byte sub_80D0E8C
- thumb_func_end sub_80D0E30
-
- thumb_func_start sub_80D0E8C
-sub_80D0E8C: @ 80D0E8C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080D0EF0
- cmp r1, 0x1
- bgt _080D0EA2
- cmp r1, 0
- beq _080D0EA8
- b _080D0FD0
-_080D0EA2:
- cmp r1, 0x2
- beq _080D0F82
- b _080D0FD0
-_080D0EA8:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D0ED2
- strh r1, [r4, 0x32]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D0ED2:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080D0FD0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- b _080D0F7A
-_080D0EF0:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080D0F36
- ldrh r2, [r4, 0x32]
- movs r3, 0x32
- ldrsh r1, [r4, r3]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080D0F36
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080D0F36
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCD
- bl PlaySE12WithPanning
-_080D0F36:
- ldrh r0, [r4, 0x34]
- ldrh r2, [r4, 0x36]
- adds r1, r0, r2
- strh r1, [r4, 0x36]
- lsls r0, r1, 16
- asrs r2, r0, 16
- cmp r2, 0x1F
- ble _080D0F4A
- movs r0, 0x40
- b _080D0F58
-_080D0F4A:
- movs r0, 0x20
- negs r0, r0
- cmp r2, r0
- bgt _080D0F64
- movs r2, 0x40
- negs r2, r2
- adds r0, r2, 0
-_080D0F58:
- subs r0, r1
- strh r0, [r4, 0x36]
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- negs r0, r0
- strh r0, [r4, 0x34]
-_080D0F64:
- ldrh r0, [r4, 0x36]
- movs r2, 0
- strh r0, [r4, 0x24]
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- movs r3, 0x32
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _080D0FD0
- strh r2, [r4, 0x30]
- strh r2, [r4, 0x32]
-_080D0F7A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D0FD0
-_080D0F82:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D0FAE
- movs r0, 0
- strh r0, [r4, 0x32]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D0FAE:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080D0FD0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- bl move_anim_8072740
-_080D0FD0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D0E8C
-
- thumb_func_start sub_80D0FD8
-sub_80D0FD8: @ 80D0FD8
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- movs r5, 0
- mov r0, sp
- strh r5, [r0]
- mov r1, sp
- adds r1, 0x2
- strh r5, [r1]
- ldr r0, _080D0FFC @ =gBattleAnimArgs
- movs r3, 0x4
- ldrsh r2, [r0, r3]
- adds r7, r1, 0
- adds r1, r0, 0
- cmp r2, 0
- bne _080D1004
- ldr r0, _080D1000 @ =gBattleAnimBankAttacker
- b _080D1006
- .align 2, 0
-_080D0FFC: .4byte gBattleAnimArgs
-_080D1000: .4byte gBattleAnimBankAttacker
-_080D1004:
- ldr r0, _080D1040 @ =gBattleAnimBankTarget
-_080D1006:
- ldrb r5, [r0]
- ldrb r1, [r1, 0x6]
- movs r0, 0x1
- adds r4, r0, 0
- eors r4, r1
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _080D107E
- movs r1, 0x2
- adds r0, r5, 0
- eors r0, r1
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080D107E
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, sp
- adds r3, r7, 0
- bl sub_807A3FC
- cmp r4, 0
- bne _080D1044
- adds r0, r5, 0
- movs r1, 0
- b _080D1048
- .align 2, 0
-_080D1040: .4byte gBattleAnimBankTarget
-_080D1044:
- adds r0, r5, 0
- movs r1, 0x2
-_080D1048:
- bl sub_8077ABC
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D1074
- ldr r2, _080D1070 @ =gBattleAnimArgs
- mov r0, sp
- ldrh r1, [r0]
- subs r1, r4
- ldrh r0, [r2]
- subs r1, r0
- subs r0, r1
- strh r0, [r2]
- b _080D107E
- .align 2, 0
-_080D1070: .4byte gBattleAnimArgs
-_080D1074:
- ldr r1, _080D1090 @ =gBattleAnimArgs
- mov r0, sp
- ldrh r0, [r0]
- subs r0, r4
- strh r0, [r1]
-_080D107E:
- ldr r1, _080D1094 @ =sub_80793C4
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1090: .4byte gBattleAnimArgs
-_080D1094: .4byte sub_80793C4
- thumb_func_end sub_80D0FD8
-
- thumb_func_start sub_80D1098
-sub_80D1098: @ 80D1098
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D10B2
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl move_anim_8072740
-_080D10B2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1098
-
- thumb_func_start sub_80D10B8
-sub_80D10B8: @ 80D10B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r0, 0
- movs r6, 0
- mov r0, sp
- strh r6, [r0]
- mov r1, sp
- adds r1, 0x2
- strh r6, [r1]
- ldr r0, _080D10E4 @ =gBattleAnimArgs
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080D10F0
- ldr r0, _080D10E8 @ =gBattleAnimBankAttacker
- ldrb r7, [r0]
- ldr r0, _080D10EC @ =gBattleAnimBankTarget
- b _080D10F6
- .align 2, 0
-_080D10E4: .4byte gBattleAnimArgs
-_080D10E8: .4byte gBattleAnimBankAttacker
-_080D10EC: .4byte gBattleAnimBankTarget
-_080D10F0:
- ldr r0, _080D1110 @ =gBattleAnimBankTarget
- ldrb r7, [r0]
- ldr r0, _080D1114 @ =gBattleAnimBankAttacker
-_080D10F6:
- ldrb r0, [r0]
- mov r8, r0
- ldr r0, _080D1118 @ =gBattleAnimArgs
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _080D111C
- movs r0, 0
- mov r10, r0
- movs r1, 0x1
- str r1, [sp, 0x4]
- b _080D1124
- .align 2, 0
-_080D1110: .4byte gBattleAnimBankTarget
-_080D1114: .4byte gBattleAnimBankAttacker
-_080D1118: .4byte gBattleAnimArgs
-_080D111C:
- movs r2, 0x2
- mov r10, r2
- movs r3, 0x3
- str r3, [sp, 0x4]
-_080D1124:
- adds r0, r7, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D1180
- adds r0, r7, 0
- mov r1, r10
- bl sub_8077ABC
- lsls r0, 24
- ldr r1, _080D1164 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r0, 0x2
- mov r4, r8
- eors r4, r0
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080D1170
- ldr r2, _080D1168 @ =gSprites
- ldr r0, _080D116C @ =gObjectBankIDs
- adds r0, r4, r0
- b _080D120A
- .align 2, 0
-_080D1164: .4byte gBattleAnimArgs
-_080D1168: .4byte gSprites
-_080D116C: .4byte gObjectBankIDs
-_080D1170:
- ldr r2, _080D1178 @ =gSprites
- ldr r0, _080D117C @ =gObjectBankIDs
- add r0, r8
- b _080D120A
- .align 2, 0
-_080D1178: .4byte gSprites
-_080D117C: .4byte gObjectBankIDs
-_080D1180:
- adds r0, r7, 0
- mov r1, r10
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080D11EC @ =gBattleAnimArgs
- ldrh r1, [r1]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r0, _080D11F0 @ =gMain
- ldr r1, _080D11F4 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D1204
- adds r4, r7, 0
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080D1204
- ldr r3, _080D11F8 @ =gSprites
- ldr r2, _080D11FC @ =gObjectBankIDs
- adds r0, r7, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r6, r0, r3
- adds r2, r4, r2
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r3
- movs r3, 0x20
- ldrsh r1, [r6, r3]
- movs r3, 0x20
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _080D1200
- adds r0, r2, 0
- adds r0, 0x43
- ldrb r0, [r0]
- adds r0, 0x1
- b _080D121A
- .align 2, 0
-_080D11EC: .4byte gBattleAnimArgs
-_080D11F0: .4byte gMain
-_080D11F4: .4byte 0x0000043d
-_080D11F8: .4byte gSprites
-_080D11FC: .4byte gObjectBankIDs
-_080D1200:
- adds r0, r6, 0
- b _080D1214
-_080D1204:
- ldr r2, _080D1268 @ =gSprites
- ldr r0, _080D126C @ =gObjectBankIDs
- adds r0, r7, r0
-_080D120A:
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
-_080D1214:
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
-_080D121A:
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r7, 0
- ldr r1, [sp, 0x4]
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080D1270 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _080D1274 @ =gMain
- ldr r2, _080D1278 @ =0x0000043d
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D127C
- mov r0, r8
- movs r1, 0x2
- eors r0, r1
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080D127C
- ldrb r1, [r4, 0xC]
- mov r0, r8
- mov r2, sp
- mov r3, sp
- adds r3, 0x2
- bl sub_807A3FC
- b _080D129C
- .align 2, 0
-_080D1268: .4byte gSprites
-_080D126C: .4byte gObjectBankIDs
-_080D1270: .4byte gBattleAnimArgs
-_080D1274: .4byte gMain
-_080D1278: .4byte 0x0000043d
-_080D127C:
- mov r4, sp
- mov r0, r8
- mov r1, r10
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- mov r0, r8
- ldr r1, [sp, 0x4]
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r3, sp
- strh r0, [r3, 0x2]
-_080D129C:
- mov r0, r8
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D12C0
- mov r3, sp
- mov r2, sp
- ldr r1, _080D12BC @ =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r3]
- adds r2, r1, 0
- b _080D12CE
- .align 2, 0
-_080D12BC: .4byte gBattleAnimArgs
-_080D12C0:
- mov r3, sp
- mov r0, sp
- ldr r2, _080D1310 @ =gBattleAnimArgs
- ldrh r0, [r0]
- ldrh r1, [r2, 0x6]
- subs r0, r1
- strh r0, [r3]
-_080D12CE:
- ldrh r1, [r2, 0x8]
- mov r0, sp
- ldrh r0, [r0, 0x2]
- adds r1, r0
- mov r3, sp
- strh r1, [r3, 0x2]
- mov r0, r9
- strh r0, [r5, 0x30]
- strh r0, [r5, 0x20]
- strh r6, [r5, 0x34]
- strh r6, [r5, 0x22]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x36]
- ldrh r0, [r2]
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080D1314 @ =sub_80D1098
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1310: .4byte gBattleAnimArgs
-_080D1314: .4byte sub_80D1098
- thumb_func_end sub_80D10B8
-
- thumb_func_start sub_80D1318
-sub_80D1318: @ 80D1318
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D1358 @ =0x000027db
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080D133E
- lsls r0, 20
- ldr r1, _080D135C @ =0x01010000
- adds r0, r1
- lsrs r0, 16
- ldr r1, _080D1360 @ =gBattleAnimArgs
- ldrb r2, [r1, 0xA]
- ldrh r3, [r1, 0x8]
- movs r1, 0xF
- bl BlendPalette
-_080D133E:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, _080D1364 @ =sub_80793C4
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1358: .4byte 0x000027db
-_080D135C: .4byte 0x01010000
-_080D1360: .4byte gBattleAnimArgs
-_080D1364: .4byte sub_80793C4
- thumb_func_end sub_80D1318
-
- thumb_func_start sub_80D1368
-sub_80D1368: @ 80D1368
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r0, _080D139C @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- movs r1, 0xA0
- cmp r0, 0
- beq _080D1384
- ldr r1, _080D13A0 @ =0x0000ff60
-_080D1384:
- movs r0, 0xE0
- lsls r0, 2
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- ldr r0, _080D13A4 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x3C]
- ldr r0, _080D13A8 @ =sub_80D13AC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D139C: .4byte gBattleAnimBankAttacker
-_080D13A0: .4byte 0x0000ff60
-_080D13A4: .4byte gBattleAnimArgs
-_080D13A8: .4byte sub_80D13AC
- thumb_func_end sub_80D1368
-
- thumb_func_start sub_80D13AC
-sub_80D13AC: @ 80D13AC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- subs r1, r0
- movs r5, 0
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- subs r2, 0x20
- strh r2, [r4, 0x2E]
- ldr r0, _080D1418 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- movs r1, 0xA0
- cmp r0, 0
- beq _080D13DC
- ldr r1, _080D141C @ =0x0000ff60
-_080D13DC:
- lsls r0, r1, 16
- asrs r0, 16
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x26]
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080D1410
- ldrh r2, [r4, 0x22]
- adds r0, r1, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x24]
- strh r5, [r4, 0x2E]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _080D1420 @ =sub_80D1424
- str r0, [r4, 0x1C]
-_080D1410:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1418: .4byte gBattleAnimBankAttacker
-_080D141C: .4byte 0x0000ff60
-_080D1420: .4byte sub_80D1424
- thumb_func_end sub_80D13AC
-
- thumb_func_start sub_80D1424
-sub_80D1424: @ 80D1424
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080D1442
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, _080D1448 @ =sub_80D144C
- str r0, [r4, 0x1C]
-_080D1442:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1448: .4byte sub_80D144C
- thumb_func_end sub_80D1424
-
- thumb_func_start sub_80D144C
-sub_80D144C: @ 80D144C
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D14B2
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r0, 0
- strh r0, [r4, 0x2E]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D1498
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, _080D148C @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D1490 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, _080D1494 @ =sub_80D14C4
- b _080D14B0
- .align 2, 0
-_080D148C: .4byte 0x000003ff
-_080D1490: .4byte 0xfffffc00
-_080D1494: .4byte sub_80D14C4
-_080D1498:
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x20
- ldr r3, _080D14B8 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D14BC @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, _080D14C0 @ =sub_80D154C
-_080D14B0:
- str r0, [r4, 0x1C]
-_080D14B2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D14B8: .4byte 0x000003ff
-_080D14BC: .4byte 0xfffffc00
-_080D14C0: .4byte sub_80D154C
- thumb_func_end sub_80D144C
-
- thumb_func_start sub_80D14C4
-sub_80D14C4: @ 80D14C4
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x26]
- subs r0, 0x2
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _080D14F8
- movs r0, 0x10
- strh r0, [r2, 0x2E]
- movs r0, 0
- strh r0, [r2, 0x30]
- ldr r1, _080D14FC @ =REG_BLDCNT
- movs r3, 0xFD
- lsls r3, 6
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x2E]
- strh r0, [r1]
- ldr r0, _080D1500 @ =sub_80D1504
- str r0, [r2, 0x1C]
-_080D14F8:
- pop {r0}
- bx r0
- .align 2, 0
-_080D14FC: .4byte REG_BLDCNT
-_080D1500: .4byte sub_80D1504
- thumb_func_end sub_80D14C4
-
- thumb_func_start sub_80D1504
-sub_80D1504: @ 80D1504
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080D153C
- ldrh r1, [r4, 0x2E]
- subs r1, 0x1
- strh r1, [r4, 0x2E]
- ldr r2, _080D1544 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D153C
- ldr r0, _080D1548 @ =sub_80D154C
- str r0, [r4, 0x1C]
-_080D153C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1544: .4byte REG_BLDALPHA
-_080D1548: .4byte sub_80D154C
- thumb_func_end sub_80D1504
-
- thumb_func_start sub_80D154C
-sub_80D154C: @ 80D154C
- push {lr}
- adds r3, r0, 0
- ldr r0, _080D1574 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080D1578 @ =0x0000ffff
- cmp r1, r0
- bne _080D1584
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x3C
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080D1580
- ldr r0, _080D157C @ =sub_80D158C
- b _080D1582
- .align 2, 0
-_080D1574: .4byte gBattleAnimArgs
-_080D1578: .4byte 0x0000ffff
-_080D157C: .4byte sub_80D158C
-_080D1580:
- ldr r0, _080D1588 @ =move_anim_8072740
-_080D1582:
- str r0, [r3, 0x1C]
-_080D1584:
- pop {r0}
- bx r0
- .align 2, 0
-_080D1588: .4byte move_anim_8072740
- thumb_func_end sub_80D154C
-
- thumb_func_start sub_80D158C
-sub_80D158C: @ 80D158C
- push {lr}
- ldr r1, _080D15A0 @ =REG_BLDCNT
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- bl move_anim_8072740
- pop {r0}
- bx r0
- .align 2, 0
-_080D15A0: .4byte REG_BLDCNT
- thumb_func_end sub_80D158C
-
- thumb_func_start sub_80D15A4
-sub_80D15A4: @ 80D15A4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D15D4 @ =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, _080D15D8 @ =gUnknown_083D79BC
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080D15DC @ =sub_80D15E0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D15D4: .4byte gTasks
-_080D15D8: .4byte gUnknown_083D79BC
-_080D15DC: .4byte sub_80D15E0
- thumb_func_end sub_80D15A4
-
- thumb_func_start sub_80D15E0
-sub_80D15E0: @ 80D15E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080D1630 @ =gTasks
- adds r4, r0, r1
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _080D162A
- ldr r2, _080D1634 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
- movs r0, 0x8
- ldrsh r1, [r4, 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
-_080D162A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1630: .4byte gTasks
-_080D1634: .4byte gSprites
- thumb_func_end sub_80D15E0
-
- thumb_func_start sub_80D1638
-sub_80D1638: @ 80D1638
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D166C @ =gTasks
- adds r4, r1, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x3
- strh r0, [r4, 0x20]
- ldr r0, _080D1670 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080D1678
- ldr r0, _080D1674 @ =0x0000ffff
- strh r0, [r4, 0x22]
- movs r0, 0x8
- b _080D167E
- .align 2, 0
-_080D166C: .4byte gTasks
-_080D1670: .4byte gBattleAnimBankTarget
-_080D1674: .4byte 0x0000ffff
-_080D1678:
- movs r0, 0x1
- strh r0, [r4, 0x22]
- ldr r0, _080D1698 @ =0x0000fff8
-_080D167E:
- strh r0, [r4, 0x24]
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080D169C @ =sub_80D16A0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1698: .4byte 0x0000fff8
-_080D169C: .4byte sub_80D16A0
- thumb_func_end sub_80D1638
-
- thumb_func_start sub_80D16A0
-sub_80D16A0: @ 80D16A0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080D16C4 @ =gTasks
- adds r3, r0, r1
- movs r0, 0x8
- ldrsh r4, [r3, r0]
- cmp r4, 0x1
- beq _080D16F4
- cmp r4, 0x1
- bgt _080D16C8
- cmp r4, 0
- beq _080D16D2
- b _080D17BA
- .align 2, 0
-_080D16C4: .4byte gTasks
-_080D16C8:
- cmp r4, 0x2
- beq _080D1770
- cmp r4, 0x3
- beq _080D178A
- b _080D17BA
-_080D16D2:
- ldr r2, _080D16F0 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x24]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- strh r4, [r3, 0xA]
- strh r4, [r3, 0xC]
- strh r4, [r3, 0xE]
- b _080D1782
- .align 2, 0
-_080D16F0: .4byte gSprites
-_080D16F4:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D17BA
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- ands r0, r4
- lsls r0, 16
- cmp r0, 0
- beq _080D172C
- ldr r2, _080D1728 @ =gSprites
- movs r4, 0x26
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- adds r1, 0x6
- b _080D173E
- .align 2, 0
-_080D1728: .4byte gSprites
-_080D172C:
- ldr r2, _080D176C @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- subs r1, 0x6
-_080D173E:
- strh r1, [r0, 0x24]
- ldrh r0, [r3, 0xE]
- adds r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080D17BA
- ldrh r1, [r3, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D1782
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x24]
- subs r0, 0x6
- strh r0, [r1, 0x24]
- b _080D1782
- .align 2, 0
-_080D176C: .4byte gSprites
-_080D1770:
- ldrh r0, [r3, 0x20]
- subs r0, 0x1
- strh r0, [r3, 0x20]
- lsls r0, 16
- cmp r0, 0
- beq _080D1782
- movs r0, 0
- strh r0, [r3, 0x8]
- b _080D17BA
-_080D1782:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _080D17BA
-_080D178A:
- ldr r2, _080D17C0 @ =gSprites
- movs r4, 0x26
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x22]
- ldrh r4, [r0, 0x24]
- adds r1, r4
- strh r1, [r0, 0x24]
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D17BA
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080D17BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D17C0: .4byte gSprites
- thumb_func_end sub_80D16A0
-
- thumb_func_start sub_80D17C4
-sub_80D17C4: @ 80D17C4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D1800 @ =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x1
- strh r0, [r4, 0x10]
- movs r0, 0xE
- strh r0, [r4, 0x22]
- movs r0, 0x2
- strh r0, [r4, 0x24]
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080D1804 @ =sub_80D1808
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1800: .4byte gTasks
-_080D1804: .4byte sub_80D1808
- thumb_func_end sub_80D17C4
-
- thumb_func_start sub_80D1808
-sub_80D1808: @ 80D1808
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080D185C @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _080D18CE
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x10
- ldrsh r1, [r4, r3]
- cmp r0, r1
- ble _080D18CE
- strh r2, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D1864
- ldr r3, _080D1860 @ =gSprites
- movs r6, 0x26
- ldrsh r1, [r4, r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- b _080D187A
- .align 2, 0
-_080D185C: .4byte gTasks
-_080D1860: .4byte gSprites
-_080D1864:
- ldr r3, _080D18AC @ =gSprites
- movs r0, 0x26
- 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
-_080D187A:
- strb r1, [r0]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r6, 0x22
- ldrsh r1, [r4, r6]
- cmp r0, r1
- blt _080D18CE
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- movs r6, 0x24
- ldrsh r1, [r4, r6]
- cmp r0, r1
- bge _080D18B0
- strh r2, [r4, 0xA]
- strh r2, [r4, 0xC]
- strh r2, [r4, 0xE]
- b _080D18CE
- .align 2, 0
-_080D18AC: .4byte gSprites
-_080D18B0:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080D18CE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1808
-
- thumb_func_start sub_80D18D4
-sub_80D18D4: @ 80D18D4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D1924 @ =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- movs r1, 0x4
- strh r1, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- strh r0, [r4, 0x12]
- strh r0, [r4, 0x14]
- strh r0, [r4, 0x16]
- strh r0, [r4, 0x18]
- strh r0, [r4, 0x22]
- ldr r5, _080D1928 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080D192C @ =sub_80D1930
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1924: .4byte gTasks
-_080D1928: .4byte gBattleAnimBankAttacker
-_080D192C: .4byte sub_80D1930
- thumb_func_end sub_80D18D4
-
- thumb_func_start sub_80D1930
-sub_80D1930: @ 80D1930
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080D1954 @ =gTasks
- adds r4, r0, r1
- movs r0, 0x18
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _080D199C
- cmp r2, 0x1
- bgt _080D1958
- cmp r2, 0
- beq _080D195E
- b _080D19B8
- .align 2, 0
-_080D1954: .4byte gTasks
-_080D1958:
- cmp r2, 0x2
- beq _080D19B4
- b _080D19B8
-_080D195E:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D19B8
- strh r2, [r4, 0x10]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080D19B8
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D1996
- strh r2, [r4, 0x14]
- movs r0, 0x1
- strh r0, [r4, 0x18]
- b _080D19B8
-_080D1996:
- movs r0, 0x2
- strh r0, [r4, 0x18]
- b _080D19B8
-_080D199C:
- movs r1, 0
- strh r1, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080D19B8
- strh r2, [r4, 0x16]
- strh r1, [r4, 0x18]
- b _080D19B8
-_080D19B4:
- movs r0, 0x1
- strh r0, [r4, 0x12]
-_080D19B8:
- movs r2, 0x8
- ldrsh r5, [r4, r2]
- cmp r5, 0
- beq _080D19C6
- cmp r5, 0x1
- beq _080D1A5C
- b _080D1A6A
-_080D19C6:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080D1A6A
- strh r5, [r4, 0xA]
- ldr r0, _080D1A50 @ =gSpriteTemplate_83D79E8
- movs r3, 0x24
- ldrsh r1, [r4, r3]
- movs r3, 0x26
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080D1A6A
- ldr r0, _080D1A54 @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- strh r6, [r1, 0x2E]
- movs r0, 0xD
- strh r0, [r1, 0x30]
- ldr r2, _080D1A58 @ =gUnknown_083D7A00
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0x24]
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r2, 0x1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080D1A6A
- strh r5, [r4, 0xC]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080D1A6A
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D1A6A
- .align 2, 0
-_080D1A50: .4byte gSpriteTemplate_83D79E8
-_080D1A54: .4byte gSprites
-_080D1A58: .4byte gUnknown_083D7A00
-_080D1A5C:
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D1A6A
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080D1A6A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1930
-
- thumb_func_start sub_80D1A70
-sub_80D1A70: @ 80D1A70
- push {r4,lr}
- adds r3, r0, 0
- ldr r4, _080D1AD8 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r2, 0x1
- ldrb r1, [r0, 0x12]
- ands r1, r2
- lsls r1, 2
- mov r0, r12
- ldrb r2, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D1AD2
- movs r0, 0x30
- ldrsh r1, [r3, r0]
- lsls r1, 1
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x8
- adds r1, r0
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r3, 0
- bl DestroySprite
-_080D1AD2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1AD8: .4byte gTasks
- thumb_func_end sub_80D1A70
-
- thumb_func_start sub_80D1ADC
-sub_80D1ADC: @ 80D1ADC
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080D1B34 @ =0x000027de
- bl IndexOfSpritePaletteTag
- mov r1, sp
- strb r0, [r1]
- movs r5, 0x1
- ldr r0, _080D1B38 @ =0x00002710
- adds r4, r0, 0
-_080D1AF4:
- subs r0, r4, r5
- lsls r0, 16
- lsrs r0, 16
- bl AllocSpritePalette
- mov r2, sp
- adds r1, r2, r5
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x4
- ble _080D1AF4
- ldr r4, _080D1B3C @ =gBattleAnimSpritePalette_206
- bl IsContest
- lsls r0, 24
- ldr r1, _080D1B40 @ =0x02018000
- cmp r0, 0
- beq _080D1B1C
- ldr r0, _080D1B44 @ =0xffffc800
- adds r1, r0
-_080D1B1C:
- adds r0, r4, 0
- bl LZDecompressWram
- movs r5, 0
-_080D1B24:
- lsls r4, r5, 5
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080D1B4C
- ldr r0, _080D1B48 @ =0x02014800
- b _080D1B4E
- .align 2, 0
-_080D1B34: .4byte 0x000027de
-_080D1B38: .4byte 0x00002710
-_080D1B3C: .4byte gBattleAnimSpritePalette_206
-_080D1B40: .4byte 0x02018000
-_080D1B44: .4byte 0xffffc800
-_080D1B48: .4byte 0x02014800
-_080D1B4C:
- ldr r0, _080D1B7C @ =0x02018000
-_080D1B4E:
- adds r2, r4, r0
- mov r1, sp
- adds r0, r1, r5
- ldrb r1, [r0]
- lsls r1, 20
- movs r0, 0x80
- lsls r0, 17
- adds r1, r0
- lsrs r1, 16
- adds r0, r2, 0
- movs r2, 0x20
- bl LoadPalette
- adds r5, 0x1
- cmp r5, 0x4
- ble _080D1B24
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1B7C: .4byte 0x02018000
- thumb_func_end sub_80D1ADC
-
- thumb_func_start sub_80D1B80
-sub_80D1B80: @ 80D1B80
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _080D1BA4 @ =gUnknown_083D7A5C
- movs r4, 0x4
-_080D1B8A:
- ldrh r0, [r5]
- bl FreeSpritePaletteByTag
- adds r5, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080D1B8A
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1BA4: .4byte gUnknown_083D7A5C
- thumb_func_end sub_80D1B80
-
- thumb_func_start sub_80D1BA8
-sub_80D1BA8: @ 80D1BA8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsls r2, 24
- lsrs r3, r2, 24
- movs r0, 0x1
- ands r3, r0
- negs r0, r3
- orrs r0, r3
- asrs r0, 31
- movs r3, 0x20
- ands r0, r3
- ldrh r4, [r5, 0x4]
- lsls r3, r4, 22
- lsrs r3, 22
- lsrs r1, 22
- adds r0, r1
- adds r3, r0
- ldr r1, _080D1BFC @ =0x000003ff
- adds r0, r1, 0
- ands r3, r0
- ldr r0, _080D1C00 @ =0xfffffc00
- ands r0, r4
- orrs r0, r3
- strh r0, [r5, 0x4]
- ldr r0, _080D1C04 @ =gUnknown_083D7A5C
- lsrs r2, 25
- lsls r2, 1
- adds r2, r0
- ldrh r0, [r2]
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r5, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1BFC: .4byte 0x000003ff
-_080D1C00: .4byte 0xfffffc00
-_080D1C04: .4byte gUnknown_083D7A5C
- thumb_func_end sub_80D1BA8
-
- thumb_func_start sub_80D1C08
-sub_80D1C08: @ 80D1C08
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r6, _080D1C70 @ =gBattleAnimBankAttacker
- ldrb r0, [r6]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D1C28
- ldr r1, _080D1C74 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080D1C28:
- ldr r4, _080D1C74 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x2E]
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldr r0, _080D1C78 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080D1C7C @ =move_anim_8072740
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldrb r1, [r4, 0xA]
- ldrb r2, [r4, 0xC]
- adds r0, r5, 0
- bl sub_80D1BA8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1C70: .4byte gBattleAnimBankAttacker
-_080D1C74: .4byte gBattleAnimArgs
-_080D1C78: .4byte sub_8078B34
-_080D1C7C: .4byte move_anim_8072740
- thumb_func_end sub_80D1C08
-
- thumb_func_start sub_80D1C80
-sub_80D1C80: @ 80D1C80
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080D1C9A
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
-_080D1C9A:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x32]
- lsls r0, r2, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x7
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- subs r2, 0x80
- strh r2, [r4, 0x32]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x3C
- bne _080D1CCA
- adds r0, r4, 0
- bl move_anim_8072740
-_080D1CCA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1C80
-
- thumb_func_start sub_80D1CD0
-sub_80D1CD0: @ 80D1CD0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsContest
- lsls r0, 24
- movs r2, 0xF0
- cmp r0, 0
- beq _080D1CE4
- movs r2, 0x98
-_080D1CE4:
- movs r3, 0
- ldr r0, _080D1D2C @ =gUnknown_030042C4
- strh r2, [r0]
- ldr r0, _080D1D30 @ =gUnknown_03004240
- movs r1, 0xA0
- strh r1, [r0]
- ldr r0, _080D1D34 @ =REG_WIN0H
- strh r2, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldr r1, _080D1D38 @ =REG_WININ
- ldr r5, _080D1D3C @ =0x00003f1f
- adds r0, r5, 0
- strh r0, [r1]
- adds r1, 0x2
- adds r5, 0x20
- adds r0, r5, 0
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0xC8
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x10
- strh r0, [r1]
- ldr r1, _080D1D40 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x8]
- strh r2, [r0, 0xA]
- ldr r1, _080D1D44 @ =sub_80D1D48
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1D2C: .4byte gUnknown_030042C4
-_080D1D30: .4byte gUnknown_03004240
-_080D1D34: .4byte REG_WIN0H
-_080D1D38: .4byte REG_WININ
-_080D1D3C: .4byte 0x00003f1f
-_080D1D40: .4byte gTasks
-_080D1D44: .4byte sub_80D1D48
- thumb_func_end sub_80D1CD0
-
- thumb_func_start sub_80D1D48
-sub_80D1D48: @ 80D1D48
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080D1D7C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0x8]
- adds r4, r0, 0
- adds r4, 0xD
- strh r4, [r3, 0x8]
- ldrh r0, [r3, 0xA]
- adds r2, r0, 0
- subs r2, 0xD
- strh r2, [r3, 0xA]
- lsls r1, r4, 16
- lsls r0, r2, 16
- cmp r1, r0
- blt _080D1D88
- ldr r0, _080D1D80 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080D1D84 @ =sub_80D1D9C
- str r0, [r3]
- b _080D1D90
- .align 2, 0
-_080D1D7C: .4byte gTasks
-_080D1D80: .4byte gUnknown_030042C4
-_080D1D84: .4byte sub_80D1D9C
-_080D1D88:
- ldr r1, _080D1D98 @ =gUnknown_030042C4
- lsls r0, r4, 8
- orrs r2, r0
- strh r2, [r1]
-_080D1D90:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1D98: .4byte gUnknown_030042C4
- thumb_func_end sub_80D1D48
-
- thumb_func_start sub_80D1D9C
-sub_80D1D9C: @ 80D1D9C
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- ldr r5, _080D1DEC @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r3, r0, 3
- adds r1, r3, r5
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r1, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080D1DF8
- movs r0, 0x88
- strh r0, [r1, 0x1E]
- adds r0, r5, r3
- adds r0, 0x1E
- ldr r1, _080D1DF0 @ =REG_BLDCNT
- movs r2, 0x2
- bl RequestSpriteCopy
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- ldr r2, _080D1DF4 @ =0x00007fff
- movs r1, 0x10
- bl BlendPalettes
- b _080D1E1E
- .align 2, 0
-_080D1DEC: .4byte gTasks
-_080D1DF0: .4byte REG_BLDCNT
-_080D1DF4: .4byte 0x00007fff
-_080D1DF8:
- cmp r0, 0x4
- ble _080D1E1E
- ldr r0, _080D1E28 @ =gUnknown_030042C4
- strh r4, [r0]
- ldr r0, _080D1E2C @ =gUnknown_03004240
- strh r4, [r0]
- ldr r0, _080D1E30 @ =REG_WININ
- ldr r3, _080D1E34 @ =0x00003f3f
- adds r1, r3, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x6
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080D1E1E:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1E28: .4byte gUnknown_030042C4
-_080D1E2C: .4byte gUnknown_03004240
-_080D1E30: .4byte REG_WININ
-_080D1E34: .4byte 0x00003f3f
- thumb_func_end sub_80D1D9C
-
- thumb_func_start sub_80D1E38
-sub_80D1E38: @ 80D1E38
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080D1E88 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080D1E94
- movs r0, 0x1
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080D1E8C @ =gUnknown_083D7A98
- adds r0, r5, 0
- bl sub_80798F4
- ldr r1, _080D1E90 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x24]
- b _080D1EBC
- .align 2, 0
-_080D1E88: .4byte gTasks
-_080D1E8C: .4byte gUnknown_083D7A98
-_080D1E90: .4byte gSprites
-_080D1E94:
- ldr r1, _080D1EC4 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r4, r0, r1
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- adds r0, r5, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080D1EBC
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080D1EBC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1EC4: .4byte gSprites
- thumb_func_end sub_80D1E38
-
- thumb_func_start sub_80D1EC8
-sub_80D1EC8: @ 80D1EC8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080D1F18 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080D1F24
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080D1F1C @ =gUnknown_083D7A98
- adds r0, r5, 0
- bl sub_80798F4
- ldr r1, _080D1F20 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x24]
- b _080D1F4C
- .align 2, 0
-_080D1F18: .4byte gTasks
-_080D1F1C: .4byte gUnknown_083D7A98
-_080D1F20: .4byte gSprites
-_080D1F24:
- ldr r1, _080D1F54 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r4, r0, r1
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- adds r0, r5, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080D1F4C
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080D1F4C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1F54: .4byte gSprites
- thumb_func_end sub_80D1EC8
-
- thumb_func_start sub_80D1F58
-sub_80D1F58: @ 80D1F58
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- movs r0, 0x5F
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080D1F9C @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080D1FA0 @ =sub_80D1FA4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1F9C: .4byte gBattleAnimBankTarget
-_080D1FA0: .4byte sub_80D1FA4
- thumb_func_end sub_80D1F58
-
- thumb_func_start sub_80D1FA4
-sub_80D1FA4: @ 80D1FA4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080D1FCE
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080D1FD4
-_080D1FCE:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D1FD4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1FA4
-
- thumb_func_start sub_80D1FDC
-sub_80D1FDC: @ 80D1FDC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2000
- ldr r1, _080D1FFC @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- adds r0, r2, 0x1
- strh r0, [r4, 0x2E]
- b _080D205C
- .align 2, 0
-_080D1FFC: .4byte gBattleAnimArgs
-_080D2000:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x64
- ble _080D204E
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D204E:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- ble _080D205C
- adds r0, r4, 0
- bl move_anim_8072740
-_080D205C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1FDC
-
- thumb_func_start sub_80D2064
-sub_80D2064: @ 80D2064
- push {lr}
- ldr r2, _080D2088 @ =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r0, 0x20]
- movs r1, 0xA0
- strh r1, [r0, 0x22]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x2E]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x30]
- ldr r1, _080D208C @ =sub_80782D8
- str r1, [r0, 0x1C]
- ldr r1, _080D2090 @ =sub_80D2094
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080D2088: .4byte gBattleAnimArgs
-_080D208C: .4byte sub_80782D8
-_080D2090: .4byte sub_80D2094
- thumb_func_end sub_80D2064
-
- thumb_func_start sub_80D2094
-sub_80D2094: @ 80D2094
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- lsls r0, 16
- lsrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- lsls r0, 16
- asrs r5, r0, 16
- cmp r5, 0x48
- bgt _080D20FA
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- cmp r5, 0x40
- bgt _080D20FA
- adds r0, r4, 0
- bl move_anim_8072740
-_080D20FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D2094
-
- thumb_func_start sub_80D2100
-sub_80D2100: @ 80D2100
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D21BC @ =REG_BLDCNT
- ldr r2, _080D21C0 @ =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, _080D21C4 @ =REG_BG1CNT
- ldrb r0, [r4]
- movs r1, 0x3
- 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 _080D2144
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080D2144:
- ldr r0, _080D21C8 @ =gUnknown_030042C0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080D21CC @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _080D21D0 @ =REG_BG1HOFS
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r2, _080D21D4 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080D21D8 @ =0x85000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080D21DC @ =gAttractTilemap
- bl LZDecompressVram
- ldr r0, _080D21E0 @ =gAttractGfx
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080D21E4 @ =gAttractPal
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080D21A4
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080D21A4:
- ldr r0, _080D21E8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080D21EC @ =sub_80D21F0
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D21BC: .4byte REG_BLDCNT
-_080D21C0: .4byte 0x00003f42
-_080D21C4: .4byte REG_BG1CNT
-_080D21C8: .4byte gUnknown_030042C0
-_080D21CC: .4byte gUnknown_030041B4
-_080D21D0: .4byte REG_BG1HOFS
-_080D21D4: .4byte 0x040000d4
-_080D21D8: .4byte 0x85000400
-_080D21DC: .4byte gAttractTilemap
-_080D21E0: .4byte gAttractGfx
-_080D21E4: .4byte gAttractPal
-_080D21E8: .4byte gTasks
-_080D21EC: .4byte sub_80D21F0
- thumb_func_end sub_80D2100
-
- thumb_func_start sub_80D21F0
-sub_80D21F0: @ 80D21F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D2220 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080D2216
- b _080D238C
-_080D2216:
- lsls r0, 2
- ldr r1, _080D2224 @ =_080D2228
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D2220: .4byte gTasks
-_080D2224: .4byte _080D2228
- .align 2, 0
-_080D2228:
- .4byte _080D223C
- .4byte _080D2284
- .4byte _080D22A6
- .4byte _080D22E8
- .4byte _080D236C
-_080D223C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _080D2256
- b _080D238C
-_080D2256:
- strh r4, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- adds r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080D2280 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x1E
- ldrsh r0, [r3, r1]
- cmp r0, 0x10
- beq _080D2274
- b _080D238C
-_080D2274:
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r4, [r3, 0x1E]
- b _080D238C
- .align 2, 0
-_080D2280: .4byte REG_BLDALPHA
-_080D2284:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8D
- bne _080D238C
- movs r0, 0x10
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080D238C
-_080D22A6:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080D238C
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- subs r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080D22E4 @ =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 _080D238C
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r1, [r3, 0x1E]
- b _080D238C
- .align 2, 0
-_080D22E4: .4byte REG_BLDALPHA
-_080D22E8:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- lsls r0, r5, 2
- mov r10, r0
- add r6, sp, 0xC
- movs r7, 0
- ldr r1, _080D239C @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r8, r6
- ldr r0, _080D23A0 @ =0x85000400
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D230E:
- str r7, [sp, 0xC]
- mov r0, r8
- 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 _080D230E
- str r7, [sp, 0xC]
- str r6, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D239C @ =0x040000d4
- str r6, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D23A4 @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080D235C
- ldr r2, _080D23A8 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D235C:
- ldr r0, _080D23AC @ =gTasks
- mov r2, r10
- adds r1, r2, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
-_080D236C:
- ldr r0, _080D23B0 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _080D23A8 @ =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, r5, 0
- bl DestroyAnimVisualTask
-_080D238C:
- 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
-_080D239C: .4byte 0x040000d4
-_080D23A0: .4byte 0x85000400
-_080D23A4: .4byte 0x85000200
-_080D23A8: .4byte REG_BG1CNT
-_080D23AC: .4byte gTasks
-_080D23B0: .4byte REG_BLDCNT
- thumb_func_end sub_80D21F0
-
- thumb_func_start sub_80D23B4
-sub_80D23B4: @ 80D23B4
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D2438 @ =REG_BLDCNT
- ldr r2, _080D243C @ =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, _080D2440 @ =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 _080D23FE
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080D23FE:
- ldr r0, _080D2444 @ =gUnknown_030042C0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080D2448 @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _080D244C @ =REG_BG1HOFS
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r1, _080D2450 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _080D2454 @ =0x85000400
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080D245C
- ldr r0, _080D2458 @ =gBattleAnimBackgroundTilemap_ScaryFaceContest
- b _080D246E
- .align 2, 0
-_080D2438: .4byte REG_BLDCNT
-_080D243C: .4byte 0x00003f42
-_080D2440: .4byte REG_BG1CNT
-_080D2444: .4byte gUnknown_030042C0
-_080D2448: .4byte gUnknown_030041B4
-_080D244C: .4byte REG_BG1HOFS
-_080D2450: .4byte 0x040000d4
-_080D2454: .4byte 0x85000400
-_080D2458: .4byte gBattleAnimBackgroundTilemap_ScaryFaceContest
-_080D245C:
- ldr r0, _080D2478 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D2480
- ldr r0, _080D247C @ =gBattleAnimBackgroundTilemap_ScaryFacePlayer
-_080D246E:
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- b _080D2488
- .align 2, 0
-_080D2478: .4byte gBattleAnimBankTarget
-_080D247C: .4byte gBattleAnimBackgroundTilemap_ScaryFacePlayer
-_080D2480:
- ldr r0, _080D24CC @ =gBattleAnimBackgroundTilemap_ScaryFaceOpponent
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
-_080D2488:
- ldr r0, _080D24D0 @ =gBattleAnimBackgroundImage_ScaryFace
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080D24D4 @ =gBattleAnimBackgroundPalette_ScaryFace
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080D24B6
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080D24B6:
- ldr r0, _080D24D8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080D24DC @ =sub_80D24E0
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D24CC: .4byte gBattleAnimBackgroundTilemap_ScaryFaceOpponent
-_080D24D0: .4byte gBattleAnimBackgroundImage_ScaryFace
-_080D24D4: .4byte gBattleAnimBackgroundPalette_ScaryFace
-_080D24D8: .4byte gTasks
-_080D24DC: .4byte sub_80D24E0
- thumb_func_end sub_80D23B4
-
- thumb_func_start sub_80D24E0
-sub_80D24E0: @ 80D24E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D2510 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080D2506
- b _080D267C
-_080D2506:
- lsls r0, 2
- ldr r1, _080D2514 @ =_080D2518
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D2510: .4byte gTasks
-_080D2514: .4byte _080D2518
- .align 2, 0
-_080D2518:
- .4byte _080D252C
- .4byte _080D2574
- .4byte _080D2596
- .4byte _080D25D8
- .4byte _080D265C
-_080D252C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- beq _080D2546
- b _080D267C
-_080D2546:
- strh r4, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- adds r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080D2570 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x1E
- ldrsh r0, [r3, r1]
- cmp r0, 0xE
- beq _080D2564
- b _080D267C
-_080D2564:
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r4, [r3, 0x1E]
- b _080D267C
- .align 2, 0
-_080D2570: .4byte REG_BLDALPHA
-_080D2574:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080D267C
- movs r0, 0xE
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080D267C
-_080D2596:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080D267C
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- subs r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080D25D4 @ =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 _080D267C
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r1, [r3, 0x1E]
- b _080D267C
- .align 2, 0
-_080D25D4: .4byte REG_BLDALPHA
-_080D25D8:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- lsls r0, r5, 2
- mov r10, r0
- add r6, sp, 0xC
- movs r7, 0
- ldr r1, _080D268C @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r8, r6
- ldr r0, _080D2690 @ =0x85000400
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D25FE:
- str r7, [sp, 0xC]
- mov r0, r8
- 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 _080D25FE
- str r7, [sp, 0xC]
- str r6, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D268C @ =0x040000d4
- str r6, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D2694 @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080D264C
- ldr r2, _080D2698 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D264C:
- ldr r0, _080D269C @ =gTasks
- mov r2, r10
- adds r1, r2, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
-_080D265C:
- ldr r0, _080D26A0 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _080D2698 @ =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, r5, 0
- bl DestroyAnimVisualTask
-_080D267C:
- 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
-_080D268C: .4byte 0x040000d4
-_080D2690: .4byte 0x85000400
-_080D2694: .4byte 0x85000200
-_080D2698: .4byte REG_BG1CNT
-_080D269C: .4byte gTasks
-_080D26A0: .4byte REG_BLDCNT
- thumb_func_end sub_80D24E0
-
- thumb_func_start sub_80D26A4
-sub_80D26A4: @ 80D26A4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D26F8 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080D26FC @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrb r0, [r5]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x3C]
- ldr r1, _080D2700 @ =sub_80D2704
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D26F8: .4byte gBattleAnimBankAttacker
-_080D26FC: .4byte gBattleAnimArgs
-_080D2700: .4byte sub_80D2704
- thumb_func_end sub_80D26A4
-
- thumb_func_start sub_80D2704
-sub_80D2704: @ 80D2704
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080D271A
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- b _080D271E
-_080D271A:
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
-_080D271E:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- ldrh r1, [r4, 0x34]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x9
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r3, 0x38
- ldrsh r2, [r4, r3]
- cmp r2, 0
- beq _080D2790
- cmp r2, 0x1
- bne _080D27C0
- ldr r1, _080D2788 @ =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldr r3, _080D278C @ =0xffffff00
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080D27C0
- movs r0, 0x2
- strh r0, [r4, 0x38]
- b _080D27D0
- .align 2, 0
-_080D2788: .4byte 0xfffffc00
-_080D278C: .4byte 0xffffff00
-_080D2790:
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3, 0
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _080D27C0
- strh r2, [r4, 0x36]
- movs r0, 0x1
- strh r0, [r4, 0x38]
-_080D27C0:
- ldr r0, _080D27D8 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080D27DC @ =0x0000ffff
- cmp r1, r0
- bne _080D27D0
- adds r0, r4, 0
- bl move_anim_8072740
-_080D27D0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D27D8: .4byte gBattleAnimArgs
-_080D27DC: .4byte 0x0000ffff
- thumb_func_end sub_80D2704
-
- thumb_func_start sub_80D27E0
-sub_80D27E0: @ 80D27E0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D2828 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080D282C @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- strh r0, [r5, 0x2E]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x7
- bl Cos
- strh r0, [r5, 0x30]
- ldr r0, _080D2830 @ =sub_80D2834
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2828: .4byte gBattleAnimBankAttacker
-_080D282C: .4byte gBattleAnimArgs
-_080D2830: .4byte sub_80D2834
- thumb_func_end sub_80D27E0
-
- thumb_func_start sub_80D2834
-sub_80D2834: @ 80D2834
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- movs r3, 0x24
- ldrsh r1, [r2, r3]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080D2872
- movs r0, 0x22
- ldrsh r1, [r2, r0]
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080D2872
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080D2878
-_080D2872:
- adds r0, r2, 0
- bl move_anim_8072740
-_080D2878:
- pop {r0}
- bx r0
- thumb_func_end sub_80D2834
-
- thumb_func_start sub_80D287C
-sub_80D287C: @ 80D287C
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r1, r0, 0x1
- strh r1, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _080D28A8
- adds r0, r2, 0
- bl move_anim_8072740
-_080D28A8:
- pop {r0}
- bx r0
- thumb_func_end sub_80D287C
-
- thumb_func_start sub_80D28AC
-sub_80D28AC: @ 80D28AC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D28F8 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080D28FC @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- strh r0, [r5, 0x2E]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x7
- bl Cos
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x32]
- ldr r0, _080D2900 @ =sub_80D287C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D28F8: .4byte gBattleAnimBankAttacker
-_080D28FC: .4byte gBattleAnimArgs
-_080D2900: .4byte sub_80D287C
- thumb_func_end sub_80D28AC
-
- thumb_func_start sub_80D2904
-sub_80D2904: @ 80D2904
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D291A
- adds r0, r2, 0
- bl move_anim_8072740
-_080D291A:
- pop {r0}
- bx r0
- thumb_func_end sub_80D2904
-
- thumb_func_start sub_80D2920
-sub_80D2920: @ 80D2920
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080D2934 @ =sub_80D2904
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2934: .4byte sub_80D2904
- thumb_func_end sub_80D2920
-
- thumb_func_start sub_80D2938
-sub_80D2938: @ 80D2938
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2956
- ldr r0, _080D29C8 @ =gBattleAnimArgs
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_080D2956:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r5, r0, 1
- movs r0, 0xFF
- ands r5, r0
- adds r0, r5, 0
- movs r1, 0x50
- bl Sin
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4F
- bgt _080D299A
- adds r0, r5, 0
- movs r1, 0x50
- bl Cos
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- lsls r0, 16
- asrs r0, 24
- adds r1, r0
- strh r1, [r4, 0x26]
-_080D299A:
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- cmp r2, 0x5A
- ble _080D29B8
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
-_080D29B8:
- cmp r2, 0x64
- ble _080D29C2
- adds r0, r4, 0
- bl move_anim_8072740
-_080D29C2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D29C8: .4byte gBattleAnimArgs
- thumb_func_end sub_80D2938
-
- thumb_func_start sub_80D29CC
-sub_80D29CC: @ 80D29CC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- ble _080D2A22
- adds r1, r0, 0
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D2A22:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x1E
- ble _080D2A30
- adds r0, r4, 0
- bl move_anim_8072740
-_080D2A30:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D29CC
-
- thumb_func_start sub_80D2A38
-sub_80D2A38: @ 80D2A38
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2A5C
- ldr r1, _080D2A58 @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- adds r0, r2, 0x1
- strh r0, [r4, 0x2E]
- b _080D2AB0
- .align 2, 0
-_080D2A58: .4byte gBattleAnimArgs
-_080D2A5C:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- movs r5, 0
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- adds r2, r0, 0
- strh r2, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x46
- ble _080D2AB0
- ldr r0, _080D2AB8 @ =sub_80D29CC
- str r0, [r4, 0x1C]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r0, r2, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x24]
- strh r5, [r4, 0x26]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB4
- bl __umodsi3
- strh r0, [r4, 0x34]
-_080D2AB0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2AB8: .4byte sub_80D29CC
- thumb_func_end sub_80D2A38
-
- thumb_func_start sub_80D2ABC
-sub_80D2ABC: @ 80D2ABC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2AF6
- ldr r1, _080D2BB8 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- ldr r0, _080D2BBC @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl sub_8079E90
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r0, 0x1
- strh r0, [r4, 0x32]
-_080D2AF6:
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r0, r2
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r1, r0, 2
- adds r0, r1, 0
- cmp r1, 0
- bge _080D2B0C
- adds r0, 0xFF
-_080D2B0C:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _080D2B1E
- movs r0, 0
- strh r0, [r4, 0x30]
-_080D2B1E:
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080D2B2C
- adds r0, 0x3
-_080D2B2C:
- asrs r0, 2
- movs r1, 0x1E
- subs r1, r0
- adds r0, r2, 0
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080D2B48
- adds r0, 0x7
-_080D2B48:
- asrs r0, 3
- movs r1, 0xA
- subs r1, r0
- adds r0, r2, 0
- bl Sin
- strh r0, [r4, 0x26]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x80
- ble _080D2B6C
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080D2B6C
- ldr r0, _080D2BC0 @ =0x0000ffff
- strh r0, [r4, 0x32]
-_080D2B6C:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2B80
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _080D2B80
- movs r0, 0x1
- strh r0, [r4, 0x32]
-_080D2B80:
- ldrh r0, [r4, 0x34]
- adds r1, r0, 0x1
- strh r1, [r4, 0x34]
- subs r0, 0x9
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x46
- bls _080D2BC4
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _080D2BD2
- .align 2, 0
-_080D2BB8: .4byte gBattleAnimArgs
-_080D2BBC: .4byte gBattleAnimBankTarget
-_080D2BC0: .4byte 0x0000ffff
-_080D2BC4:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D2BD2:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x5A
- ble _080D2BE0
- adds r0, r4, 0
- bl move_anim_8072740
-_080D2BE0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D2ABC
-
- thumb_func_start sub_80D2BE8
-sub_80D2BE8: @ 80D2BE8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2C1C
- ldr r1, _080D2C18 @ =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
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D2C30
- .align 2, 0
-_080D2C18: .4byte gBattleAnimArgs
-_080D2C1C:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D2C30
- adds r0, r4, 0
- bl move_anim_8072740
-_080D2C30:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D2BE8
-
- thumb_func_start sub_80D2C38
-sub_80D2C38: @ 80D2C38
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, _080D2C50 @ =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080D2C54
- adds r0, r5, 0
- bl move_anim_8072740
- b _080D2CB8
- .align 2, 0
-_080D2C50: .4byte gBattleAnimArgs
-_080D2C54:
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080D2C64
- ldr r4, _080D2C60 @ =gBattleAnimBankAttacker
- b _080D2C66
- .align 2, 0
-_080D2C60: .4byte gBattleAnimBankAttacker
-_080D2C64:
- ldr r4, _080D2C94 @ =gBattleAnimBankTarget
-_080D2C66:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080D2C98 @ =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0
- bne _080D2C9C
- ldrh r0, [r5, 0x20]
- adds r0, 0x20
- b _080D2CA0
- .align 2, 0
-_080D2C94: .4byte gBattleAnimBankTarget
-_080D2C98: .4byte gBattleAnimArgs
-_080D2C9C:
- ldrh r0, [r5, 0x20]
- subs r0, 0x20
-_080D2CA0:
- strh r0, [r5, 0x20]
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r1, [r2, 0x2]
- strh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r0, _080D2CC0 @ =sub_80D2CC4
- str r0, [r5, 0x1C]
-_080D2CB8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2CC0: .4byte sub_80D2CC4
- thumb_func_end sub_80D2C38
-
- thumb_func_start sub_80D2CC4
-sub_80D2CC4: @ 80D2CC4
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D2CF4
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- cmp r0, 0
- beq _080D2CEE
- ldrh r1, [r2, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
- b _080D2CF4
-_080D2CEE:
- adds r0, r2, 0
- bl move_anim_8072740
-_080D2CF4:
- pop {r0}
- bx r0
- thumb_func_end sub_80D2CC4
-
- thumb_func_start sub_80D2CF8
-sub_80D2CF8: @ 80D2CF8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080D2D2C @ =gBattleAnimArgs
- ldrb r0, [r0]
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _080D2D30 @ =gTasks
- adds r4, r0
- ldr r2, _080D2D34 @ =gUnknown_083D7CA8
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080D2D38 @ =sub_80D2D3C
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2D2C: .4byte gBattleAnimArgs
-_080D2D30: .4byte gTasks
-_080D2D34: .4byte gUnknown_083D7CA8
-_080D2D38: .4byte sub_80D2D3C
- thumb_func_end sub_80D2CF8
-
- thumb_func_start sub_80D2D3C
-sub_80D2D3C: @ 80D2D3C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D2D64 @ =gTasks
- adds r0, r1
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _080D2D5C
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080D2D5C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2D64: .4byte gTasks
- thumb_func_end sub_80D2D3C
-
- thumb_func_start sub_80D2D68
-sub_80D2D68: @ 80D2D68
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _080D2D7C @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D2D84
- ldr r0, _080D2D80 @ =gBattleAnimBankAttacker
- b _080D2D86
- .align 2, 0
-_080D2D7C: .4byte gBattleAnimArgs
-_080D2D80: .4byte gBattleAnimBankAttacker
-_080D2D84:
- ldr r0, _080D2E1C @ =gBattleAnimBankTarget
-_080D2D86:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D2DA0
- ldr r1, _080D2E20 @ =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080D2DA0:
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r7, _080D2E20 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r3, [r7, 0x2]
- adds r0, r3
- movs r4, 0
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r7, 0x4]
- adds r0, r1
- strh r0, [r5, 0x22]
- strh r4, [r5, 0x2E]
- ldrh r1, [r5, 0x20]
- lsls r1, 3
- strh r1, [r5, 0x30]
- lsls r0, 3
- strh r0, [r5, 0x32]
- movs r2, 0x2
- ldrsh r0, [r7, r2]
- lsls r0, 3
- cmp r0, 0
- bge _080D2DE0
- adds r0, 0x7
-_080D2DE0:
- asrs r0, 3
- strh r0, [r5, 0x34]
- movs r3, 0x4
- ldrsh r0, [r7, r3]
- lsls r0, 3
- cmp r0, 0
- bge _080D2DF0
- adds r0, 0x7
-_080D2DF0:
- asrs r0, 3
- strh r0, [r5, 0x36]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0x6
- ldrsh r0, [r7, r3]
- lsls r0, 4
- adds r1, r0
- ldr r3, _080D2E24 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D2E28 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r0, _080D2E2C @ =sub_80D2E30
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2E1C: .4byte gBattleAnimBankTarget
-_080D2E20: .4byte gBattleAnimArgs
-_080D2E24: .4byte 0x000003ff
-_080D2E28: .4byte 0xfffffc00
-_080D2E2C: .4byte sub_80D2E30
- thumb_func_end sub_80D2D68
-
- thumb_func_start sub_80D2E30
-sub_80D2E30: @ 80D2E30
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- strh r0, [r2, 0x30]
- ldrh r1, [r2, 0x36]
- ldrh r3, [r2, 0x32]
- adds r1, r3
- strh r1, [r2, 0x32]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 19
- strh r1, [r2, 0x22]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080D2E64
- adds r0, r2, 0
- bl move_anim_8072740
-_080D2E64:
- pop {r0}
- bx r0
- thumb_func_end sub_80D2E30
-
- thumb_func_start sub_80D2E68
-sub_80D2E68: @ 80D2E68
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2E8A
- ldr r0, _080D2EC4 @ =gBattleAnimArgs
- ldrh r1, [r0]
- movs r0, 0x78
- subs r0, r1
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080D2E8A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080D2EA8
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0
- bl sub_8079108
-_080D2EA8:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- adds r0, 0x50
- cmp r1, r0
- bne _080D2EBC
- adds r0, r4, 0
- bl move_anim_8072740
-_080D2EBC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2EC4: .4byte gBattleAnimArgs
- thumb_func_end sub_80D2E68
-
- thumb_func_start sub_80D2EC8
-sub_80D2EC8: @ 80D2EC8
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D2EF6
- movs r5, 0x78
- strh r5, [r6, 0x20]
- ldr r4, _080D2F78 @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r0, [r4, r2]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- subs r0, 0xF
- strh r0, [r6, 0x22]
- ldrb r1, [r4, 0x2]
- adds r0, r6, 0
- bl StartSpriteAnim
- strh r5, [r6, 0x38]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x34]
-_080D2EF6:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r6, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r6, 0x30]
- movs r2, 0x2E
- ldrsh r0, [r6, r2]
- lsls r4, r0, 1
- adds r4, r0
- ldrh r0, [r6, 0x34]
- adds r4, r0
- movs r2, 0xFF
- ldrh r0, [r6, 0x3A]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6, 0x3A]
- ands r4, r2
- adds r0, r4, 0
- movs r1, 0x64
- bl Cos
- strh r0, [r6, 0x24]
- adds r0, r4, 0
- movs r1, 0xA
- bl Sin
- adds r4, r0, 0
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r1, 0x4
- bl Cos
- ldrh r2, [r6, 0x30]
- adds r4, r2
- adds r0, r4
- strh r0, [r6, 0x26]
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- movs r2, 0x38
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _080D2F72
- ldr r0, _080D2F7C @ =sub_80D2F80
- str r0, [r6, 0x1C]
- strh r5, [r6, 0x2E]
- adds r0, r6, 0
- bl oamt_add_pos2_onto_pos1
- movs r0, 0x5
- strh r0, [r6, 0x32]
- strh r5, [r6, 0x36]
- strh r5, [r6, 0x34]
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080D2F72:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2F78: .4byte gBattleAnimArgs
-_080D2F7C: .4byte sub_80D2F80
- thumb_func_end sub_80D2EC8
-
- thumb_func_start sub_80D2F80
-sub_80D2F80: @ 80D2F80
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _080D2F9A
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080D2FA0 @ =sub_80D2FA4
- str r0, [r1, 0x1C]
-_080D2F9A:
- pop {r0}
- bx r0
- .align 2, 0
-_080D2FA0: .4byte sub_80D2FA4
- thumb_func_end sub_80D2F80
-
- thumb_func_start sub_80D2FA4
-sub_80D2FA4: @ 80D2FA4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x34]
- adds r0, r1, r2
- strh r0, [r4, 0x34]
- strh r0, [r4, 0x26]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x30
- ble _080D2FCE
- lsls r0, r1, 16
- cmp r0, 0
- ble _080D2FCE
- ldrh r0, [r4, 0x36]
- subs r1, r0, 0x5
- strh r1, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x36]
-_080D2FCE:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _080D3000
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r0, r4, 0
- bl move_anim_8072740
-_080D3000:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bne _080D300E
- adds r0, r4, 0
- bl move_anim_8072740
-_080D300E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D2FA4
-
- thumb_func_start sub_80D3014
-sub_80D3014: @ 80D3014
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D3058 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D3060
- ldr r4, _080D305C @ =gBattleAnimBankAttacker
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080D3060
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
- ldrh r0, [r5, 0x22]
- adds r0, 0x28
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080D3080
- .align 2, 0
-_080D3058: .4byte gBattleTypeFlags
-_080D305C: .4byte gBattleAnimBankAttacker
-_080D3060:
- ldr r4, _080D30A0 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x28
- strh r0, [r5, 0x22]
-_080D3080:
- movs r0, 0xD
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- subs r0, 0x48
- strh r0, [r5, 0x36]
- ldr r0, _080D30A4 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080D30A8 @ =move_anim_8072740
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D30A0: .4byte gBattleAnimBankAttacker
-_080D30A4: .4byte sub_8078B34
-_080D30A8: .4byte move_anim_8072740
- thumb_func_end sub_80D3014
-
- thumb_func_start sub_80D30AC
-sub_80D30AC: @ 80D30AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080D30C8 @ =gBattleAnimArgs
- ldr r1, _080D30CC @ =gDisableStructMoveAnim
- ldr r1, [r1]
- ldrb r2, [r1, 0x10]
- movs r1, 0x1
- ands r1, r2
- strh r1, [r3, 0xE]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080D30C8: .4byte gBattleAnimArgs
-_080D30CC: .4byte gDisableStructMoveAnim
- thumb_func_end sub_80D30AC
-
- thumb_func_start update_fury_cutter_counter_copy
-update_fury_cutter_counter_copy: @ 80D30D0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080D30E8 @ =gBattleAnimArgs
- ldr r1, _080D30EC @ =gDisableStructMoveAnim
- ldr r1, [r1]
- ldrb r1, [r1, 0x10]
- strh r1, [r2, 0xE]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080D30E8: .4byte gBattleAnimArgs
-_080D30EC: .4byte gDisableStructMoveAnim
- thumb_func_end update_fury_cutter_counter_copy
-
- thumb_func_start sub_80D30F0
-sub_80D30F0: @ 80D30F0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080D3178 @ =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 _080D3118
- ldr r1, _080D317C @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r5, 0xA]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0xC]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0xE]
-_080D3118:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl __modsi3
- cmp r0, 0x1
- bne _080D3160
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF0
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x50
- bl __umodsi3
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _080D3180 @ =gSpriteTemplate_83D9130
- adds r1, r4, 0
- movs r3, 0x4
- bl CreateSprite
-_080D3160:
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _080D3172
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080D3172:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3178: .4byte gTasks
-_080D317C: .4byte gBattleAnimArgs
-_080D3180: .4byte gSpriteTemplate_83D9130
- thumb_func_end sub_80D30F0
-
- thumb_func_start sub_80D3184
-sub_80D3184: @ 80D3184
- ldr r1, _080D318C @ =sub_80D3190
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080D318C: .4byte sub_80D3190
- thumb_func_end sub_80D3184
-
- thumb_func_start sub_80D3190
-sub_80D3190: @ 80D3190
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bgt _080D31AE
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x26]
- adds r0, 0x4
- strh r0, [r2, 0x26]
-_080D31AE:
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D31C2
- adds r0, r2, 0
- bl DestroySprite
-_080D31C2:
- pop {r0}
- bx r0
- thumb_func_end sub_80D3190
-
- thumb_func_start sub_80D31C8
-sub_80D31C8: @ 80D31C8
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, _080D31F0 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D31F8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080D31F4 @ =gBattleAnimArgs
- ldrh r1, [r4]
- subs r0, r1
- b _080D320A
- .align 2, 0
-_080D31F0: .4byte gBattleAnimBankAttacker
-_080D31F4: .4byte gBattleAnimArgs
-_080D31F8:
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080D32D0 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
-_080D320A:
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r6, 0x22]
- adds r2, r6, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080D32D4 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D3240
- ldr r1, _080D32D0 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080D3240:
- ldr r5, _080D32D0 @ =gBattleAnimArgs
- ldrh r0, [r5, 0xC]
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldr r4, _080D32D8 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x32]
- ldrh r0, [r6, 0x22]
- strh r0, [r6, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080D32DC @ =SpriteCallbackDummy
- bl CreateInvisibleSpriteWithCallback
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- strh r4, [r6, 0x38]
- ldrb r0, [r5, 0x8]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl Sin
- ldrh r1, [r6, 0x20]
- subs r1, r0
- strh r1, [r6, 0x20]
- ldrb r0, [r5, 0x8]
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl Cos
- ldrh r1, [r6, 0x22]
- subs r1, r0
- strh r1, [r6, 0x22]
- ldr r0, _080D32E0 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r5, 0x4]
- strh r0, [r1, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r1, 0x30]
- ldrh r0, [r5, 0xA]
- strh r0, [r1, 0x32]
- ldrb r0, [r5, 0x8]
- lsls r0, 8
- strh r0, [r1, 0x34]
- ldrh r0, [r5, 0xC]
- strh r0, [r1, 0x36]
- ldr r1, _080D32E4 @ =sub_80D32E8
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D32D0: .4byte gBattleAnimArgs
-_080D32D4: .4byte gBattleAnimBankAttacker
-_080D32D8: .4byte gBattleAnimBankTarget
-_080D32DC: .4byte SpriteCallbackDummy
-_080D32E0: .4byte gSprites
-_080D32E4: .4byte sub_80D32E8
- thumb_func_end sub_80D31C8
-
- thumb_func_start sub_80D32E8
-sub_80D32E8: @ 80D32E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r1, [r5, 0x38]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080D3350 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r7, r0, r2
- ldrh r4, [r7, 0x36]
- lsls r4, 24
- lsrs r4, 24
- ldrh r0, [r7, 0x34]
- mov r8, r0
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_8078B5C
- mov r1, r8
- lsrs r6, r1, 8
- movs r0, 0x2E
- ldrsh r1, [r7, r0]
- adds r0, r6, 0
- bl Sin
- ldrh r1, [r5, 0x24]
- adds r0, r1
- strh r0, [r5, 0x24]
- movs r0, 0x30
- ldrsh r1, [r7, r0]
- adds r0, r6, 0
- bl Cos
- ldrh r1, [r5, 0x26]
- adds r0, r1
- strh r0, [r5, 0x26]
- ldrh r0, [r7, 0x32]
- mov r1, r8
- adds r1, r0
- strh r1, [r7, 0x34]
- subs r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- cmp r4, 0
- beq _080D3354
- strh r4, [r7, 0x36]
- b _080D335E
- .align 2, 0
-_080D3350: .4byte gSprites
-_080D3354:
- ldr r0, _080D336C @ =sub_80D3370
- str r0, [r5, 0x1C]
- adds r0, r7, 0
- bl DestroySprite
-_080D335E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D336C: .4byte sub_80D3370
- thumb_func_end sub_80D32E8
-
- thumb_func_start sub_80D3370
-sub_80D3370: @ 80D3370
- push {lr}
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r2, [r3]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- strb r1, [r3]
- ldr r1, _080D3390 @ =sub_8078600
- str r1, [r0, 0x1C]
- ldr r1, _080D3394 @ =sub_80D3398
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080D3390: .4byte sub_8078600
-_080D3394: .4byte sub_80D3398
- thumb_func_end sub_80D3370
-
- thumb_func_start sub_80D3398
-sub_80D3398: @ 80D3398
- push {lr}
- movs r1, 0xA
- strh r1, [r0, 0x2E]
- ldr r1, _080D33AC @ =sub_80782D8
- str r1, [r0, 0x1C]
- ldr r1, _080D33B0 @ =move_anim_8074EE0
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080D33AC: .4byte sub_80782D8
-_080D33B0: .4byte move_anim_8074EE0
- thumb_func_end sub_80D3398
-
- thumb_func_start sub_80D33B4
-sub_80D33B4: @ 80D33B4
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080D33DC @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D33E4
- ldr r1, _080D33E0 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- lsls r0, 16
- lsrs r6, r0, 16
- adds r7, r1, 0
- b _080D33EA
- .align 2, 0
-_080D33DC: .4byte gBattleAnimBankAttacker
-_080D33E0: .4byte gBattleAnimArgs
-_080D33E4:
- ldr r0, _080D3440 @ =gBattleAnimArgs
- ldrh r6, [r0, 0x4]
- adds r7, r0, 0
-_080D33EA:
- ldrh r0, [r7, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080D3444 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r7, [r7, 0x6]
- adds r0, r7
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080D3448 @ =sub_80D344C
- str r0, [r5, 0x1C]
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3440: .4byte gBattleAnimArgs
-_080D3444: .4byte gBattleAnimBankTarget
-_080D3448: .4byte sub_80D344C
- thumb_func_end sub_80D33B4
-
- thumb_func_start sub_80D344C
-sub_80D344C: @ 80D344C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D3488 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080D348C @ =0x0000ffff
- cmp r1, r0
- bne _080D346E
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
-_080D346E:
- adds r0, r4, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D3480
- adds r0, r4, 0
- bl move_anim_8072740
-_080D3480:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3488: .4byte gBattleAnimArgs
-_080D348C: .4byte 0x0000ffff
- thumb_func_end sub_80D344C
-
- thumb_func_start sub_80D3490
-sub_80D3490: @ 80D3490
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080D34C4 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r0, _080D34C8 @ =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r4, 0x8]
- ldr r0, _080D34CC @ =0x0000279c
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0xC]
- ldr r0, _080D34D0 @ =sub_80D34D4
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D34C4: .4byte gTasks
-_080D34C8: .4byte gBattleAnimArgs
-_080D34CC: .4byte 0x0000279c
-_080D34D0: .4byte sub_80D34D4
- thumb_func_end sub_80D3490
-
- thumb_func_start sub_80D34D4
-sub_80D34D4: @ 80D34D4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080D354C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x1C]
- adds r0, 0x1
- strh r0, [r2, 0x1C]
- lsls r0, 16
- asrs r0, 16
- mov r12, r1
- cmp r0, 0x3
- bne _080D3526
- movs r0, 0
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _080D3550 @ =gPlttBufferFaded
- lsls r0, r5, 1
- adds r0, r1
- ldrh r6, [r0]
- adds r7, r1, 0
- adds r3, r0, 0x2
- movs r1, 0x6
- adds r2, r0, 0
-_080D3510:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080D3510
- adds r0, r5, 0x7
- lsls r0, 1
- adds r0, r7
- strh r6, [r0]
-_080D3526:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r12
- ldrh r1, [r0, 0x1E]
- adds r1, 0x1
- strh r1, [r0, 0x1E]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- cmp r1, r0
- bne _080D3546
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080D3546:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D354C: .4byte gTasks
-_080D3550: .4byte gPlttBufferFaded
- thumb_func_end sub_80D34D4
-
- thumb_func_start sub_80D3554
-sub_80D3554: @ 80D3554
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- movs r0, 0x1E
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080D35BC @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- movs r0, 0xD2
- lsls r0, 8
- bl __divsi3
- strh r0, [r5, 0x38]
- ldr r0, _080D35C0 @ =gBattleAnimArgs
- ldrh r2, [r0, 0x6]
- strh r2, [r5, 0x3C]
- ldrh r1, [r0, 0xE]
- movs r3, 0xE
- ldrsh r0, [r0, r3]
- cmp r0, 0x7F
- ble _080D35C4
- adds r0, r1, 0
- subs r0, 0x7F
- lsls r0, 8
- strh r0, [r5, 0x3A]
- negs r0, r2
- strh r0, [r5, 0x3C]
- b _080D35C8
- .align 2, 0
-_080D35BC: .4byte gBattleAnimBankTarget
-_080D35C0: .4byte gBattleAnimArgs
-_080D35C4:
- lsls r0, r1, 8
- strh r0, [r5, 0x3A]
-_080D35C8:
- ldr r1, _080D35D8 @ =sub_80D35DC
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D35D8: .4byte sub_80D35DC
- thumb_func_end sub_80D3554
-
- thumb_func_start sub_80D35DC
-sub_80D35DC: @ 80D35DC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D35F0
- adds r0, r4, 0
- bl move_anim_8072740
-_080D35F0:
- ldrh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- adds r0, r1
- asrs r0, 8
- cmp r0, 0x7F
- ble _080D3620
- movs r0, 0
- strh r0, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- negs r0, r0
- strh r0, [r4, 0x3C]
- b _080D3628
-_080D3620:
- ldrh r0, [r4, 0x38]
- ldrh r1, [r4, 0x3A]
- adds r0, r1
- strh r0, [r4, 0x3A]
-_080D3628:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D35DC
-
- thumb_func_start sub_80D3630
-sub_80D3630: @ 80D3630
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080D3650 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080D3654 @ =gBattleAnimArgs
- ldrh r0, [r3]
- movs r2, 0
- strh r0, [r1, 0x8]
- strh r2, [r3, 0xE]
- ldr r0, _080D3658 @ =sub_80D365C
- str r0, [r1]
- bx lr
- .align 2, 0
-_080D3650: .4byte gTasks
-_080D3654: .4byte gBattleAnimArgs
-_080D3658: .4byte sub_80D365C
- thumb_func_end sub_80D3630
-
- thumb_func_start sub_80D365C
-sub_80D365C: @ 80D365C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080D3690 @ =gBattleAnimArgs
- ldrh r0, [r2, 0xE]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r2, 0xE]
- ldr r1, _080D3694 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- cmp r1, 0
- bne _080D368A
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_080D368A:
- pop {r0}
- bx r0
- .align 2, 0
-_080D3690: .4byte gBattleAnimArgs
-_080D3694: .4byte gTasks
- thumb_func_end sub_80D365C
-
- thumb_func_start sub_80D3698
-sub_80D3698: @ 80D3698
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r7, _080D36E4 @ =gBattleAnimBankAttacker
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r7]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r6, _080D36E8 @ =0x0000fff6
- strh r6, [r4, 0x26]
- ldrb r0, [r7]
- bl sub_8079E90
- lsls r0, 24
- lsrs r5, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080D36F2
- ldrb r0, [r7]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080D36EC
- movs r0, 0xA
- strh r0, [r4, 0x24]
- b _080D36F4
- .align 2, 0
-_080D36E4: .4byte gBattleAnimBankAttacker
-_080D36E8: .4byte 0x0000fff6
-_080D36EC:
- strh r6, [r4, 0x24]
- subs r0, r5, 0x2
- b _080D36F6
-_080D36F2:
- strh r6, [r4, 0x24]
-_080D36F4:
- adds r0, r5, 0x2
-_080D36F6:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r0, _080D3708 @ =sub_80D370C
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3708: .4byte sub_80D370C
- thumb_func_end sub_80D3698
-
- thumb_func_start sub_80D370C
-sub_80D370C: @ 80D370C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D3722
- adds r0, r2, 0
- bl move_anim_8072740
-_080D3722:
- pop {r0}
- bx r0
- thumb_func_end sub_80D370C
-
- thumb_func_start sub_80D3728
-sub_80D3728: @ 80D3728
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r5, _080D37E8 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- bl GetBankSide
- adds r4, r0, 0
- ldr r0, _080D37EC @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080D3772
- ldr r4, _080D37F0 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4]
- ldrb r0, [r5]
- bl GetBankIdentity
- lsls r0, 24
- cmp r0, 0
- beq _080D376A
- ldrb r0, [r5]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D3772
-_080D376A:
- movs r1, 0
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4]
-_080D3772:
- ldr r5, _080D37F0 @ =gBattleAnimArgs
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0
- cmp r0, 0
- bne _080D3786
- movs r1, 0x1
-_080D3786:
- ldrb r0, [r5, 0xA]
- movs r7, 0x1
- cmp r0, 0
- bne _080D3790
- movs r7, 0x3
-_080D3790:
- adds r0, r6, 0
- bl sub_80787B0
- ldr r0, _080D37E8 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D37AA
- ldrh r0, [r5, 0x4]
- negs r0, r0
- strh r0, [r5, 0x4]
-_080D37AA:
- ldrh r0, [r5, 0x8]
- strh r0, [r6, 0x2E]
- ldr r4, _080D37EC @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r4]
- adds r1, r7, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- strh r0, [r6, 0x36]
- ldr r0, _080D37F4 @ =sub_8078B34
- str r0, [r6, 0x1C]
- ldr r1, _080D37F8 @ =move_anim_8072740
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D37E8: .4byte gBattleAnimBankAttacker
-_080D37EC: .4byte gBattleAnimBankTarget
-_080D37F0: .4byte gBattleAnimArgs
-_080D37F4: .4byte sub_8078B34
-_080D37F8: .4byte move_anim_8072740
- thumb_func_end sub_80D3728
-
- thumb_func_start sub_80D37FC
-sub_80D37FC: @ 80D37FC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r0, _080D382C @ =gBattleAnimArgs
- ldrh r1, [r0, 0x8]
- strh r1, [r4, 0x2E]
- ldrh r0, [r0, 0x4]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- strh r1, [r4, 0x36]
- ldr r0, _080D3830 @ =sub_8078B34
- str r0, [r4, 0x1C]
- ldr r1, _080D3834 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D382C: .4byte gBattleAnimArgs
-_080D3830: .4byte sub_8078B34
-_080D3834: .4byte move_anim_8072740
- thumb_func_end sub_80D37FC
-
- thumb_func_start sub_80D3838
-sub_80D3838: @ 80D3838
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D3850 @ =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080D3854
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- b _080D385C
- .align 2, 0
-_080D3850: .4byte gBattleAnimArgs
-_080D3854:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80787B0
-_080D385C:
- ldr r0, _080D386C @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x3C]
- ldr r0, _080D3870 @ =sub_80D3874
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D386C: .4byte gBattleAnimArgs
-_080D3870: .4byte sub_80D3874
- thumb_func_end sub_80D3838
-
- thumb_func_start sub_80D3874
-sub_80D3874: @ 80D3874
- 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]
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080D38B4
- adds r0, r4, 0
- bl move_anim_8072740
-_080D38B4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D3874
-
- thumb_func_start sub_80D38BC
-sub_80D38BC: @ 80D38BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r1, _080D398C @ =REG_BLDCNT
- ldr r2, _080D3990 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r2, _080D3994 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x1]
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- add r6, sp, 0x10
- add r0, sp, 0xC
- mov r12, r0
- movs r5, 0
- ldr r1, _080D3998 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r8, r6
- ldr r7, _080D399C @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D3920:
- str r5, [sp, 0x10]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080D3920
- str r5, [sp, 0x10]
- str r6, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0
- mov r3, r12
- strb r0, [r3]
- strb r0, [r3]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x10]
- ldr r0, _080D3998 @ =0x040000d4
- str r6, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D399C @ =0x85000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080D39B8
- ldr r2, _080D3994 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080D39A0 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D39A8
- ldr r0, _080D39A4 @ =gUnknown_08E70968
- b _080D39AA
- .align 2, 0
-_080D398C: .4byte REG_BLDCNT
-_080D3990: .4byte 0x00003f42
-_080D3994: .4byte REG_BG1CNT
-_080D3998: .4byte 0x040000d4
-_080D399C: .4byte 0x85000400
-_080D39A0: .4byte gBattleAnimBankAttacker
-_080D39A4: .4byte gUnknown_08E70968
-_080D39A8:
- ldr r0, _080D39B4 @ =gUnknown_08E70C38
-_080D39AA:
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- b _080D39CE
- .align 2, 0
-_080D39B4: .4byte gUnknown_08E70C38
-_080D39B8:
- ldr r0, _080D39F0 @ =gUnknown_08E70F0C
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0x1
- bl sub_80763FC
-_080D39CE:
- ldr r0, _080D39F4 @ =gBattleAnimBackgroundImage_Surf
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080D39F8 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D3A00
- ldr r0, _080D39FC @ =gBattleAnimBackgroundPalette_Surf
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- b _080D3A0E
- .align 2, 0
-_080D39F0: .4byte gUnknown_08E70F0C
-_080D39F4: .4byte gBattleAnimBackgroundImage_Surf
-_080D39F8: .4byte gBattleAnimArgs
-_080D39FC: .4byte gBattleAnimBackgroundPalette_Surf
-_080D3A00:
- ldr r0, _080D3A78 @ =gBattleAnimBackgroundImageMuddyWater_Pal
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
-_080D3A0E:
- ldr r0, _080D3A7C @ =sub_80D3D68
- ldr r4, _080D3A80 @ =gTasks
- mov r2, r10
- lsls r5, r2, 2
- adds r1, r5, r2
- lsls r1, 3
- adds r6, r1, r4
- ldrb r1, [r6, 0x7]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r3, 0
- mov r9, r3
- mov r0, r8
- strh r0, [r6, 0x26]
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r7, r0, r4
- mov r2, r9
- strh r2, [r7, 0x8]
- movs r0, 0x80
- lsls r0, 5
- strh r0, [r7, 0xA]
- strh r0, [r7, 0xC]
- bl IsContest
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080D3A94
- ldr r3, _080D3A84 @ =0x0000ffb0
- adds r0, r3, 0
- ldr r1, _080D3A88 @ =gUnknown_030042C0
- strh r0, [r1]
- ldr r2, _080D3A8C @ =0x0000ffd0
- adds r0, r2, 0
- ldr r3, _080D3A90 @ =gUnknown_030041B4
- strh r0, [r3]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- movs r0, 0x1
- strh r0, [r6, 0xA]
- mov r0, r9
- strh r0, [r7, 0xE]
- b _080D3AEE
- .align 2, 0
-_080D3A78: .4byte gBattleAnimBackgroundImageMuddyWater_Pal
-_080D3A7C: .4byte sub_80D3D68
-_080D3A80: .4byte gTasks
-_080D3A84: .4byte 0x0000ffb0
-_080D3A88: .4byte gUnknown_030042C0
-_080D3A8C: .4byte 0x0000ffd0
-_080D3A90: .4byte gUnknown_030041B4
-_080D3A94:
- ldr r0, _080D3AC4 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _080D3AD8
- ldr r2, _080D3AC8 @ =0x0000ff20
- adds r0, r2, 0
- ldr r3, _080D3ACC @ =gUnknown_030042C0
- strh r0, [r3]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldr r3, _080D3AD0 @ =gUnknown_030041B4
- strh r0, [r3]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- ldr r0, _080D3AD4 @ =0x0000ffff
- strh r0, [r6, 0xA]
- strh r1, [r7, 0xE]
- b _080D3AEE
- .align 2, 0
-_080D3AC4: .4byte gBattleAnimBankAttacker
-_080D3AC8: .4byte 0x0000ff20
-_080D3ACC: .4byte gUnknown_030042C0
-_080D3AD0: .4byte gUnknown_030041B4
-_080D3AD4: .4byte 0x0000ffff
-_080D3AD8:
- ldr r0, _080D3B1C @ =gUnknown_030042C0
- strh r4, [r0]
- ldr r1, _080D3B20 @ =0x0000ffd0
- adds r0, r1, 0
- ldr r2, _080D3B24 @ =gUnknown_030041B4
- strh r0, [r2]
- ldr r0, _080D3B28 @ =0x0000fffe
- strh r0, [r6, 0x8]
- movs r0, 0x1
- strh r0, [r6, 0xA]
- strh r4, [r7, 0xE]
-_080D3AEE:
- ldr r1, _080D3B2C @ =REG_BG1HOFS
- ldr r3, _080D3B1C @ =gUnknown_030042C0
- ldrh r0, [r3]
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080D3B24 @ =gUnknown_030041B4
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r1, _080D3B30 @ =gTasks
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080D3B34
- movs r0, 0x30
- strh r0, [r2, 0x10]
- movs r0, 0x70
- b _080D3B38
- .align 2, 0
-_080D3B1C: .4byte gUnknown_030042C0
-_080D3B20: .4byte 0x0000ffd0
-_080D3B24: .4byte gUnknown_030041B4
-_080D3B28: .4byte 0x0000fffe
-_080D3B2C: .4byte REG_BG1HOFS
-_080D3B30: .4byte gTasks
-_080D3B34:
- movs r0, 0
- strh r0, [r2, 0x10]
-_080D3B38:
- strh r0, [r2, 0x12]
- mov r2, r10
- adds r0, r5, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x14]
- ldr r1, _080D3B5C @ =sub_80D3B60
- str r1, [r0]
- 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
-_080D3B5C: .4byte sub_80D3B60
- thumb_func_end sub_80D38BC
-
- thumb_func_start sub_80D3B60
-sub_80D3B60: @ 80D3B60
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080D3D44 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x8]
- ldr r1, _080D3D48 @ =gUnknown_030042C0
- ldrh r1, [r1]
- adds r0, r1
- ldr r2, _080D3D48 @ =gUnknown_030042C0
- strh r0, [r2]
- ldrh r0, [r4, 0xA]
- ldr r3, _080D3D4C @ =gUnknown_030041B4
- ldrh r3, [r3]
- adds r0, r3
- ldr r1, _080D3D4C @ =gUnknown_030041B4
- strh r0, [r1]
- add r5, sp, 0x4
- adds r0, r5, 0
- bl sub_8078914
- ldrh r0, [r4, 0xA]
- ldrh r2, [r4, 0xC]
- adds r0, r2
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- mov r10, r5
- cmp r0, 0x4
- bne _080D3C02
- ldr r1, _080D3D50 @ =gPlttBufferFaded
- ldrb r0, [r5, 0x8]
- lsls r0, 4
- adds r0, 0x7
- lsls r0, 1
- adds r0, r1
- ldrh r6, [r0]
- movs r2, 0x6
- adds r5, r1, 0
- adds r3, r5, 0
- mov r4, r10
-_080D3BC8:
- ldrb r0, [r4, 0x8]
- lsls r0, 4
- adds r1, r2, 0x1
- adds r0, r1
- lsls r1, r0, 1
- adds r1, r3
- subs r0, 0x1
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080D3BC8
- mov r3, r10
- ldrb r0, [r3, 0x8]
- lsls r0, 4
- adds r0, 0x1
- lsls r0, 1
- adds r0, r5
- strh r6, [r0]
- ldr r1, _080D3D44 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x12]
-_080D3C02:
- ldr r1, _080D3D44 @ =gTasks
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0x14]
- adds r0, 0x1
- strh r0, [r3, 0x14]
- lsls r0, 16
- asrs r0, 16
- adds r4, r1, 0
- str r2, [sp, 0x14]
- cmp r0, 0x1
- ble _080D3C70
- movs r0, 0
- strh r0, [r3, 0x14]
- ldrh r0, [r3, 0xE]
- adds r2, r0, 0x1
- strh r2, [r3, 0xE]
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xD
- bgt _080D3C4C
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r2, r0
- strh r2, [r1, 0xA]
- ldrh r0, [r3, 0x10]
- adds r0, 0x1
- strh r0, [r3, 0x10]
-_080D3C4C:
- movs r2, 0xE
- ldrsh r0, [r3, r2]
- cmp r0, 0x36
- ble _080D3C70
- ldrh r2, [r3, 0x10]
- subs r2, 0x1
- strh r2, [r3, 0x10]
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r2, r0
- strh r2, [r1, 0xA]
-_080D3C70:
- ldr r2, [sp, 0x14]
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r4
- movs r3, 0x26
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldrh r1, [r0, 0xA]
- movs r0, 0x1F
- ands r0, r1
- cmp r0, 0
- bne _080D3D32
- ldr r2, [sp, 0x4]
- movs r3, 0x80
- lsls r3, 6
- add r6, sp, 0x10
- movs r5, 0
- ldr r1, _080D3D54 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r8, r6
- ldr r0, _080D3D58 @ =0x85000400
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D3CAA:
- str r5, [sp, 0x10]
- mov r0, r8
- 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 _080D3CAA
- str r5, [sp, 0x10]
- str r6, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- mov r3, r10
- ldr r1, [r3, 0x4]
- movs r4, 0
- str r4, [sp, 0x10]
- ldr r0, _080D3D54 @ =0x040000d4
- str r6, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D3D58 @ =0x85000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080D3D02
- ldr r2, _080D3D5C @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D3D02:
- ldr r0, _080D3D48 @ =gUnknown_030042C0
- strh r4, [r0]
- ldr r1, _080D3D4C @ =gUnknown_030041B4
- strh r4, [r1]
- ldr r0, _080D3D60 @ =REG_BLDCNT
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r2, _080D3D44 @ =gTasks
- ldr r3, [sp, 0x14]
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r2
- movs r3, 0x26
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080D3D64 @ =0x0000ffff
- strh r1, [r0, 0x26]
- adds r0, r7, 0
- bl DestroyAnimVisualTask
-_080D3D32:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3D44: .4byte gTasks
-_080D3D48: .4byte gUnknown_030042C0
-_080D3D4C: .4byte gUnknown_030041B4
-_080D3D50: .4byte gPlttBufferFaded
-_080D3D54: .4byte 0x040000d4
-_080D3D58: .4byte 0x85000400
-_080D3D5C: .4byte REG_BG1CNT
-_080D3D60: .4byte REG_BLDCNT
-_080D3D64: .4byte 0x0000ffff
- thumb_func_end sub_80D3B60
-
- thumb_func_start sub_80D3D68
-sub_80D3D68: @ 80D3D68
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _080D3D90 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080D3D84
- b _080D3EBC
-_080D3D84:
- cmp r0, 0x1
- bgt _080D3D94
- cmp r0, 0
- beq _080D3D9C
- b _080D4032
- .align 2, 0
-_080D3D90: .4byte gTasks
-_080D3D94:
- cmp r0, 0x2
- bne _080D3D9A
- b _080D3F88
-_080D3D9A:
- b _080D4032
-_080D3D9C:
- movs r3, 0
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- ldr r1, _080D3E6C @ =gUnknown_03004DE0
- mov r12, r1
- cmp r3, r0
- bge _080D3DDA
- mov r7, r12
- movs r5, 0xF0
- lsls r5, 3
- add r5, r12
- ldr r6, _080D3E70 @ =0x0000ffff
-_080D3DB4:
- lsls r2, r3, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r7
- adds r1, r5
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- ldrh r1, [r4, 0xC]
- adds r0, r6, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- asrs r2, 16
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r2, r0
- blt _080D3DB4
-_080D3DDA:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080D3E14
- ldr r5, _080D3E6C @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
- ldr r7, _080D3E70 @ =0x0000ffff
-_080D3DF2:
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r5
- adds r1, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- ldrh r1, [r4, 0xA]
- adds r0, r7, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _080D3DF2
-_080D3E14:
- ldrh r3, [r4, 0x12]
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, 0x9F
- bgt _080D3E4A
- ldr r5, _080D3E6C @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
- ldr r7, _080D3E70 @ =0x0000ffff
-_080D3E28:
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r5
- adds r1, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- ldrh r1, [r4, 0xC]
- adds r0, r7, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, 0x9F
- ble _080D3E28
-_080D3E4A:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D3E74
- lsls r0, r3, 16
- asrs r0, 15
- mov r3, r12
- adds r2, r0, r3
- movs r1, 0xF0
- lsls r1, 3
- add r1, r12
- adds r0, r1
- ldrh r1, [r4, 0xA]
- strh r1, [r0]
- ldrh r0, [r4, 0xA]
- b _080D3E8A
- .align 2, 0
-_080D3E6C: .4byte gUnknown_03004DE0
-_080D3E70: .4byte 0x0000ffff
-_080D3E74:
- lsls r0, r3, 16
- asrs r0, 15
- mov r1, r12
- adds r2, r0, r1
- movs r1, 0xF0
- lsls r1, 3
- add r1, r12
- adds r0, r1
- ldrh r1, [r4, 0xC]
- strh r1, [r0]
- ldrh r0, [r4, 0xC]
-_080D3E8A:
- strh r0, [r2]
- ldr r0, _080D3EB4 @ =REG_BLDALPHA
- str r0, [sp]
- ldr r0, _080D3EB8 @ =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
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D4032
- .align 2, 0
-_080D3EB4: .4byte REG_BLDALPHA
-_080D3EB8: .4byte 0xa2600001
-_080D3EBC:
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _080D3ED4
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bgt _080D3EE8
- strh r1, [r4, 0x10]
- b _080D3EE2
-_080D3ED4:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- ble _080D3EE8
-_080D3EE2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080D3EE8:
- movs r3, 0
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bge _080D3F1C
- ldr r6, _080D3F80 @ =gUnknown_03004DE0
- ldr r5, _080D3F84 @ =gUnknown_03004DC0
-_080D3EF6:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r3, r1, 1
- ldrb r2, [r5, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- adds r3, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r3]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _080D3EF6
-_080D3F1C:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080D3F50
- ldr r6, _080D3F80 @ =gUnknown_03004DE0
- ldr r5, _080D3F84 @ =gUnknown_03004DC0
-_080D3F2E:
- asrs r3, r2, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- adds r3, 0x1
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _080D3F2E
-_080D3F50:
- ldrh r3, [r4, 0x12]
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _080D4032
- ldr r6, _080D3F80 @ =gUnknown_03004DE0
- ldr r5, _080D3F84 @ =gUnknown_03004DC0
-_080D3F5E:
- asrs r3, r1, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _080D3F5E
- b _080D4032
- .align 2, 0
-_080D3F80: .4byte gUnknown_03004DE0
-_080D3F84: .4byte gUnknown_03004DC0
-_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
-_080D3F96:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r3, r1, 1
- ldrb r2, [r5, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- adds r3, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r3]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _080D3F96
-_080D3FBC:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080D3FF0
- ldr r6, _080D403C @ =gUnknown_03004DE0
- ldr r5, _080D4040 @ =gUnknown_03004DC0
-_080D3FCE:
- asrs r3, r2, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- adds r3, 0x1
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _080D3FCE
-_080D3FF0:
- ldrh r3, [r4, 0x12]
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _080D401C
- ldr r6, _080D403C @ =gUnknown_03004DE0
- ldr r5, _080D4040 @ =gUnknown_03004DC0
-_080D3FFE:
- asrs r3, r1, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _080D3FFE
-_080D401C:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080D4032
- bl remove_some_task
- adds r0, r7, 0
- bl DestroyTask
-_080D4032:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D403C: .4byte gUnknown_03004DE0
-_080D4040: .4byte gUnknown_03004DC0
- thumb_func_end sub_80D3D68
-
- thumb_func_start sub_80D4044
-sub_80D4044: @ 80D4044
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r3, _080D4098 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D409C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- bl Random
- movs r5, 0xFF
- ands r5, r0
- movs r0, 0x80
- lsls r0, 1
- adds r6, r0, 0
- orrs r5, r6
- bl Random
- ldr r1, _080D40A0 @ =0x000001ff
- ands r1, r0
- adds r0, r1, 0
- cmp r0, 0xFF
- ble _080D408A
- subs r0, r6, r0
- lsls r0, 16
- lsrs r1, r0, 16
-_080D408A:
- strh r5, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldr r0, _080D40A4 @ =sub_80D40A8
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4098: .4byte 0x000003ff
-_080D409C: .4byte 0xfffffc00
-_080D40A0: .4byte 0x000001ff
-_080D40A4: .4byte sub_80D40A8
- thumb_func_end sub_80D4044
-
- thumb_func_start sub_80D40A8
-sub_80D40A8: @ 80D40A8
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x34]
- adds r3, r0, r1
- strh r3, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- ldrh r4, [r2, 0x36]
- adds r1, r4
- strh r1, [r2, 0x36]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080D40CC
- lsls r0, r3, 16
- asrs r0, 24
- negs r0, r0
- b _080D40D0
-_080D40CC:
- lsls r0, r3, 16
- asrs r0, 24
-_080D40D0:
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080D40EE
- adds r0, r2, 0
- bl move_anim_8072740
-_080D40EE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D40A8
-
- thumb_func_start sub_80D40F4
-sub_80D40F4: @ 80D40F4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D4144 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r2, _080D4148 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x12]
- bl sub_80D4394
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8078E70
- ldr r0, _080D414C @ =sub_80D4150
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4144: .4byte gTasks
-_080D4148: .4byte gSprites
-_080D414C: .4byte sub_80D4150
- thumb_func_end sub_80D40F4
-
- thumb_func_start sub_80D4150
-sub_80D4150: @ 80D4150
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D4178 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bls _080D416C
- b _080D438A
-_080D416C:
- lsls r0, 2
- ldr r1, _080D417C @ =_080D4180
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D4178: .4byte gTasks
-_080D417C: .4byte _080D4180
- .align 2, 0
-_080D4180:
- .4byte _080D41A0
- .4byte _080D41C6
- .4byte _080D4258
- .4byte _080D428E
- .4byte _080D42A2
- .4byte _080D42B0
- .4byte _080D4330
- .4byte _080D437C
-_080D41A0:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 1
- movs r0, 0xE0
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 2
- str r0, [sp, 0x4]
- movs r0, 0x20
- str r0, [sp, 0x8]
- adds r0, r4, 0
- adds r2, r3, 0
- bl sub_8079C08
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080D41C6:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D4222
- movs r0, 0
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D4210
- ldr r2, _080D420C @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strh r1, [r0, 0x24]
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x1
- strh r1, [r0, 0x22]
- b _080D4222
- .align 2, 0
-_080D420C: .4byte gSprites
-_080D4210:
- ldr r2, _080D4250 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080D4254 @ =0x0000fffd
- strh r1, [r0, 0x24]
-_080D4222:
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080D4232
- b _080D438A
-_080D4232:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079A64
- ldr r2, _080D4250 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
- strh r5, [r4, 0xE]
- b _080D436C
- .align 2, 0
-_080D4250: .4byte gSprites
-_080D4254: .4byte 0x0000fffd
-_080D4258:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _080D4268
- b _080D438A
-_080D4268:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 2
- movs r0, 0xC0
- lsls r0, 1
- str r0, [sp]
- movs r0, 0xE0
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r2, 0xE0
- bl sub_8079C08
- movs r0, 0
- strh r0, [r4, 0xE]
- b _080D436E
-_080D428E:
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080D438A
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- b _080D436E
-_080D42A2:
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80D4418
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080D42B0:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D438A
- movs r0, 0
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D42E8
- ldr r2, _080D42E4 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x2
- b _080D42FA
- .align 2, 0
-_080D42E4: .4byte gSprites
-_080D42E8:
- ldr r2, _080D432C @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x2
-_080D42FA:
- strh r1, [r0, 0x26]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _080D438A
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xC0
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r3, 0xE0
- bl sub_8079C08
- movs r0, 0
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- b _080D436E
- .align 2, 0
-_080D432C: .4byte gSprites
-_080D4330:
- ldr r6, _080D4378 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080D438A
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r4, 0x12]
- strh r1, [r0, 0x22]
-_080D436C:
- strh r5, [r4, 0x10]
-_080D436E:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D438A
- .align 2, 0
-_080D4378: .4byte gSprites
-_080D437C:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D438A
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080D438A:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4150
-
- thumb_func_start sub_80D4394
-sub_80D4394: @ 80D4394
- push {r4,r5,lr}
- ldr r4, _080D43B8 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080D43C8
- ldr r1, _080D43BC @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080D43C0 @ =gPlayerParty
- b _080D43D8
- .align 2, 0
-_080D43B8: .4byte gBattleAnimBankAttacker
-_080D43BC: .4byte gBattlePartyID
-_080D43C0: .4byte gPlayerParty
-_080D43C4:
- adds r0, r2, 0
- b _080D440A
-_080D43C8:
- ldr r1, _080D4410 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080D4414 @ =gEnemyParty
-_080D43D8:
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- lsrs r4, 18
- movs r2, 0
-_080D43F6:
- adds r1, r2, 0x1
- adds r0, r4, 0
- muls r0, r1
- cmp r3, r0
- blt _080D43C4
- lsls r0, r1, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _080D43F6
- movs r0, 0x3
-_080D440A:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080D4410: .4byte gBattlePartyID
-_080D4414: .4byte gEnemyParty
- thumb_func_end sub_80D4394
-
- thumb_func_start sub_80D4418
-sub_80D4418: @ 80D4418
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- ldr r4, _080D4520 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0xAC
- ldrb r0, [r4]
- bl sub_8079E90
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- ldrh r1, [r7, 0xA]
- movs r0, 0x4
- subs r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r0, 0
- bgt _080D4468
- movs r1, 0x1
-_080D4468:
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r0, r1, 16
- mov r10, r8
- mov r9, r6
- mov r1, r10
- lsls r1, 4
- str r1, [sp, 0xC]
- mov r1, r9
- lsls r1, 4
- str r1, [sp, 0x10]
- asrs r0, 16
- mov r8, r0
-_080D4482:
- ldr r0, _080D4524 @ =gSpriteTemplate_83D9378
- mov r1, r10
- mov r2, r9
- ldr r3, [sp, 0x8]
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r6, r5, 16
- cmp r2, 0x40
- beq _080D44EA
- ldr r1, _080D4528 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r1
- mov r0, sp
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x30]
- mov r1, sp
- ldrh r1, [r1, 0xC]
- strh r1, [r5, 0x32]
- mov r0, sp
- ldrh r0, [r0, 0x10]
- strh r0, [r5, 0x34]
- asrs r4, r6, 16
- adds r0, r4, 0
- movs r1, 0x40
- bl Cos
- strh r0, [r5, 0x36]
- adds r0, r4, 0
- movs r1, 0x40
- bl Sin
- strh r0, [r5, 0x38]
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r5, 0x3A]
- movs r0, 0x2
- strh r0, [r5, 0x3C]
- ldrh r1, [r7, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D44E4
- adds r0, r5, 0
- bl sub_80D452C
-_080D44E4:
- ldrh r0, [r7, 0xC]
- adds r0, 0x1
- strh r0, [r7, 0xC]
-_080D44EA:
- mov r1, r8
- lsls r0, r1, 1
- asrs r1, r6, 16
- adds r1, r0
- lsls r1, 16
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r5, r0, 16
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- asrs r0, 16
- add r0, r8
- lsls r0, 16
- lsrs r1, r0, 16
- str r1, [sp, 0x4]
- asrs r0, 16
- cmp r0, 0x13
- ble _080D4482
- 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
-_080D4520: .4byte gBattleAnimBankAttacker
-_080D4524: .4byte gSpriteTemplate_83D9378
-_080D4528: .4byte gSprites
- thumb_func_end sub_80D4418
-
- thumb_func_start sub_80D452C
-sub_80D452C: @ 80D452C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D453E
- cmp r0, 0x1
- beq _080D4574
- b _080D45CE
-_080D453E:
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- movs r1, 0x6
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- ldrh r0, [r4, 0x36]
- adds r1, r0
- strh r1, [r4, 0x36]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_080D4574:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x38]
- ldrh r2, [r4, 0x34]
- adds r1, r2
- strh r1, [r4, 0x34]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r4, 0x20]
- lsls r1, 16
- asrs r2, r1, 20
- strh r2, [r4, 0x22]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _080D45AA
- adds r1, r2, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _080D45AA
- cmp r1, 0x78
- ble _080D45CE
-_080D45AA:
- ldr r3, _080D45D4 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080D45CE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D45D4: .4byte gTasks
- thumb_func_end sub_80D452C
-
- thumb_func_start sub_80D45D8
-sub_80D45D8: @ 80D45D8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D4608 @ =gTasks
- adds r4, r1, r0
- bl sub_80D4394
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldr r0, _080D460C @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080D4610
- movs r0, 0x88
- strh r0, [r4, 0x10]
- movs r0, 0x28
- b _080D4616
- .align 2, 0
-_080D4608: .4byte gTasks
-_080D460C: .4byte gBattleAnimBankAttacker
-_080D4610:
- movs r0, 0x10
- strh r0, [r4, 0x10]
- movs r0, 0x50
-_080D4616:
- strh r0, [r4, 0x14]
- movs r0, 0x62
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r0, 0x31
- strh r0, [r4, 0x16]
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, 0x5
- strh r0, [r4, 0x20]
- ldr r0, _080D4638 @ =sub_80D463C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4638: .4byte sub_80D463C
- thumb_func_end sub_80D45D8
-
- thumb_func_start sub_80D463C
-sub_80D463C: @ 80D463C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r7, _080D4660 @ =gTasks
- adds r4, r0, r7
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0
- beq _080D4664
- cmp r2, 0x1
- beq _080D4714
- b _080D4722
- .align 2, 0
-_080D4660: .4byte gTasks
-_080D4664:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080D467A
- strh r2, [r4, 0xC]
- adds r0, r4, 0
- bl sub_80D472C
-_080D467A:
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D46F4
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080D46F4
- ldr r5, _080D4708 @ =gBattleAnimArgs
- movs r1, 0x1
- mov r8, r1
- mov r2, r8
- strh r2, [r5]
- strh r0, [r5, 0x2]
- movs r0, 0xC
- strh r0, [r5, 0x4]
- ldr r6, _080D470C @ =sub_80E1864
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080D46C4
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r7
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- ldr r1, _080D4710 @ =gAnimVisualTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080D46C4:
- movs r0, 0x3
- strh r0, [r5]
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080D46F0
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r7
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- ldr r1, _080D4710 @ =gAnimVisualTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080D46F0:
- mov r0, r8
- strh r0, [r4, 0x22]
-_080D46F4:
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _080D4722
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D4722
- .align 2, 0
-_080D4708: .4byte gBattleAnimArgs
-_080D470C: .4byte sub_80E1864
-_080D4710: .4byte gAnimVisualTaskCount
-_080D4714:
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080D4722
- adds r0, r1, 0
- bl DestroyAnimVisualTask
-_080D4722:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80D463C
-
- thumb_func_start sub_80D472C
-sub_80D472C: @ 80D472C
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, _080D47B8 @ =gSineTable
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x3
- asrs r0, 4
- ldrh r2, [r4, 0x14]
- adds r0, r2
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080D47BC @ =gSpriteTemplate_83D9378
- movs r2, 0x16
- ldrsh r1, [r4, r2]
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080D4786
- ldr r3, _080D47C0 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _080D47C4 @ =sub_80D47D0
- str r2, [r1]
- adds r0, r3
- strh r5, [r0, 0x38]
- strh r6, [r0, 0x3A]
- movs r1, 0x9
- strh r1, [r0, 0x3C]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
-_080D4786:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- ldrh r0, [r4, 0x18]
- adds r0, 0x27
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x18]
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- ldr r0, _080D47C8 @ =0x41c64e6d
- muls r0, r1
- ldr r1, _080D47CC @ =0x00003039
- adds r0, r1
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- ldrh r1, [r4, 0x10]
- adds r1, r0
- strh r1, [r4, 0x16]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D47B8: .4byte gSineTable
-_080D47BC: .4byte gSpriteTemplate_83D9378
-_080D47C0: .4byte gSprites
-_080D47C4: .4byte sub_80D47D0
-_080D47C8: .4byte 0x41c64e6d
-_080D47CC: .4byte 0x00003039
- thumb_func_end sub_80D472C
-
- thumb_func_start sub_80D47D0
-sub_80D47D0: @ 80D47D0
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D4866
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x38
- ldrsh r1, [r5, r2]
- cmp r0, r1
- blt _080D4866
- ldr r2, _080D486C @ =gTasks
- movs r3, 0x3A
- ldrsh r1, [r5, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x1C]
- ldr r0, _080D4870 @ =gBattleAnimSpriteTemplate_83DB4D8
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r3, 0x22
- ldrsh r2, [r5, r3]
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x30]
- cmp r0, 0x40
- beq _080D4860
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080D4874 @ =gSprites
- adds r0, r4
- movs r1, 0x3
- bl StartSpriteAffineAnim
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x3A]
- strh r1, [r0, 0x3A]
- movs r3, 0x30
- ldrsh r1, [r5, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x3C]
- strh r1, [r0, 0x3C]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080D4878 @ =sub_80D487C
- str r1, [r0]
-_080D4860:
- adds r0, r5, 0
- bl DestroySprite
-_080D4866:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D486C: .4byte gTasks
-_080D4870: .4byte gBattleAnimSpriteTemplate_83DB4D8
-_080D4874: .4byte gSprites
-_080D4878: .4byte sub_80D487C
- thumb_func_end sub_80D47D0
-
- thumb_func_start sub_80D487C
-sub_80D487C: @ 80D487C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D48E8
- movs r0, 0
- strh r0, [r4, 0x30]
- 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]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _080D48E8
- ldr r3, _080D48F0 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080D48E8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D48F0: .4byte gTasks
- thumb_func_end sub_80D487C
-
- thumb_func_start sub_80D48F4
-sub_80D48F4: @ 80D48F4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D4978 @ =gTasks
- adds r5, r1, r0
- ldr r4, _080D497C @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r5, 0xE]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x10]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080D4938
- movs r1, 0x1
-_080D4938:
- strh r1, [r5, 0x16]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080D494C
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r5, 0x16]
-_080D494C:
- movs r2, 0x16
- ldrsh r0, [r5, r2]
- lsls r0, 3
- ldrh r1, [r5, 0xE]
- adds r0, r1
- strh r0, [r5, 0x12]
- movs r2, 0x16
- ldrsh r1, [r5, r2]
- lsls r1, 3
- ldrh r0, [r5, 0x10]
- subs r0, r1
- strh r0, [r5, 0x14]
- ldr r0, _080D4980 @ =0x0000ffe0
- strh r0, [r5, 0x1A]
- strh r6, [r5, 0xA]
- strh r6, [r5, 0x8]
- ldr r0, _080D4984 @ =sub_80D4988
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4978: .4byte gTasks
-_080D497C: .4byte gBattleAnimBankAttacker
-_080D4980: .4byte 0x0000ffe0
-_080D4984: .4byte sub_80D4988
- thumb_func_end sub_80D48F4
-
- thumb_func_start sub_80D4988
-sub_80D4988: @ 80D4988
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D49AC @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bls _080D49A2
- b _080D4AC2
-_080D49A2:
- lsls r0, 2
- ldr r1, _080D49B0 @ =_080D49B4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D49AC: .4byte gTasks
-_080D49B0: .4byte _080D49B4
- .align 2, 0
-_080D49B4:
- .4byte _080D49D0
- .4byte _080D49E0
- .4byte _080D49FA
- .4byte _080D4A3C
- .4byte _080D4A5E
- .4byte _080D4A8C
- .4byte _080D4AB2
-_080D49D0:
- adds r0, r4, 0
- bl sub_80D4AD0
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D4AC8
- b _080D4ABA
-_080D49E0:
- adds r0, r4, 0
- bl sub_80D4AD0
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080D4AC8
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080D4ABA
-_080D49FA:
- adds r0, r4, 0
- bl sub_80D4AD0
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x12]
- adds r1, r0
- movs r2, 0
- strh r1, [r4, 0x12]
- adds r1, 0x10
- lsls r1, 16
- movs r0, 0x88
- lsls r0, 17
- cmp r1, r0
- bls _080D4AC8
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080D4A38
- movs r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x6
- strh r0, [r4, 0x8]
- strh r2, [r4, 0xA]
- b _080D4AC8
-_080D4A38:
- strh r2, [r4, 0xA]
- b _080D4ABA
-_080D4A3C:
- adds r0, r4, 0
- bl sub_80D4AD0
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x14]
- subs r0, r1
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080D4AC8
- b _080D4ABA
-_080D4A5E:
- adds r0, r4, 0
- bl sub_80D4AD0
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x12]
- adds r0, 0x10
- lsls r0, 16
- movs r1, 0x88
- lsls r1, 17
- cmp r0, r1
- bls _080D4AC8
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080D4ABA
-_080D4A8C:
- adds r0, r4, 0
- bl sub_80D4AD0
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x14]
- subs r0, r1
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080D4AC8
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080D4AC8
-_080D4AB2:
- movs r1, 0x18
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D4AC8
-_080D4ABA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D4AC8
-_080D4AC2:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080D4AC8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4988
-
- thumb_func_start sub_80D4AD0
-sub_80D4AD0: @ 80D4AD0
- push {r4-r6,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D4B2A
- movs r0, 0
- strh r0, [r6, 0xC]
- ldr r0, _080D4B30 @ =gSpriteTemplate_83D9378
- movs r2, 0xE
- ldrsh r1, [r6, r2]
- movs r3, 0x10
- ldrsh r2, [r6, r3]
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080D4B2A
- ldr r5, _080D4B34 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- movs r1, 0x10
- strh r1, [r0, 0x2E]
- ldrh r1, [r6, 0x12]
- strh r1, [r0, 0x32]
- ldrh r1, [r6, 0x14]
- strh r1, [r0, 0x36]
- ldrh r1, [r6, 0x1A]
- strh r1, [r0, 0x38]
- bl sub_80786EC
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _080D4B38 @ =sub_80D4B3C
- str r0, [r4]
- ldrh r0, [r6, 0x18]
- adds r0, 0x1
- strh r0, [r6, 0x18]
-_080D4B2A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4B30: .4byte gSpriteTemplate_83D9378
-_080D4B34: .4byte gSprites
-_080D4B38: .4byte sub_80D4B3C
- thumb_func_end sub_80D4AD0
-
- thumb_func_start sub_80D4B3C
-sub_80D4B3C: @ 80D4B3C
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080D4B96
- ldrh r0, [r6, 0x24]
- ldrh r1, [r6, 0x20]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrh r0, [r6, 0x26]
- ldrh r1, [r6, 0x22]
- adds r0, r1
- strh r0, [r6, 0x22]
- movs r0, 0x6
- strh r0, [r6, 0x2E]
- bl Random
- movs r4, 0x1F
- adds r1, r4, 0
- ands r1, r0
- ldr r5, _080D4B9C @ =0x0000fff0
- adds r1, r5
- ldrh r0, [r6, 0x20]
- adds r1, r0
- strh r1, [r6, 0x32]
- bl Random
- ands r4, r0
- adds r4, r5
- ldrh r1, [r6, 0x22]
- adds r4, r1
- strh r4, [r6, 0x36]
- bl Random
- movs r1, 0x7
- ands r1, r0
- mvns r1, r1
- strh r1, [r6, 0x38]
- adds r0, r6, 0
- bl sub_80786EC
- ldr r0, _080D4BA0 @ =sub_80D4BA4
- str r0, [r6, 0x1C]
-_080D4B96:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4B9C: .4byte 0x0000fff0
-_080D4BA0: .4byte sub_80D4BA4
- thumb_func_end sub_80D4B3C
-
- thumb_func_start sub_80D4BA4
-sub_80D4BA4: @ 80D4BA4
- push {r4-r6,lr}
- adds r5, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080D4BE0
- movs r4, 0
- ldr r6, _080D4BE8 @ =gTasks
-_080D4BB6:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r6
- ldr r1, [r2]
- ldr r0, _080D4BEC @ =sub_80D4988
- cmp r1, r0
- bne _080D4BD6
- movs r0, 0x1
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0x18]
- subs r0, 0x1
- strh r0, [r2, 0x18]
- adds r0, r5, 0
- bl DestroySprite
-_080D4BD6:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _080D4BB6
-_080D4BE0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4BE8: .4byte gTasks
-_080D4BEC: .4byte sub_80D4988
- thumb_func_end sub_80D4BA4
-
- thumb_func_start sub_80D4BF0
-sub_80D4BF0: @ 80D4BF0
- ldr r2, _080D4C10 @ =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r0, 0x20]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x22]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x2E]
- ldrh r1, [r2, 0x6]
- strh r1, [r0, 0x30]
- ldrh r1, [r2, 0x8]
- strh r1, [r0, 0x32]
- ldrh r1, [r2, 0xA]
- strh r1, [r0, 0x34]
- ldr r1, _080D4C14 @ =sub_80D4C18
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080D4C10: .4byte gBattleAnimArgs
-_080D4C14: .4byte sub_80D4C18
- thumb_func_end sub_80D4BF0
-
- thumb_func_start sub_80D4C18
-sub_80D4C18: @ 80D4C18
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x2E]
- subs r0, r1
- strh r0, [r4, 0x36]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _080D4C5C
- adds r0, r4, 0
- bl move_anim_8072740
-_080D4C5C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4C18
-
- thumb_func_start sub_80D4C64
-sub_80D4C64: @ 80D4C64
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- lsls r0, 16
- asrs r0, 23
- strh r0, [r4, 0x24]
- lsls r1, 16
- asrs r1, 23
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080D4C9C
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080D4C9C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4C64
-
- thumb_func_start sub_80D4CA4
-sub_80D4CA4: @ 80D4CA4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r5, _080D4CE0 @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x30]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldr r1, _080D4CE4 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldr r0, _080D4CE8 @ =sub_80D4CEC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4CE0: .4byte gBattleAnimBankTarget
-_080D4CE4: .4byte gBattleAnimArgs
-_080D4CE8: .4byte sub_80D4CEC
- thumb_func_end sub_80D4CA4
-
- thumb_func_start sub_80D4CEC
-sub_80D4CEC: @ 80D4CEC
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- subs r6, r1, r0
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- subs r5, r1, r0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- muls r0, r6
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- muls r0, r5
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080D4D44
- movs r0, 0
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80D4D64
-_080D4D44:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080D4D56
- adds r0, r4, 0
- bl move_anim_8072740
-_080D4D56:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4CEC
-
- thumb_func_start sub_80D4D64
-sub_80D4D64: @ 80D4D64
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r4, r1, 0
- adds r5, r2, 0
- movs r2, 0x2E
- ldrsh r1, [r0, r2]
- lsrs r2, r1, 31
- adds r1, r2
- lsls r1, 15
- lsrs r1, 16
- str r1, [sp]
- ldrh r1, [r0, 0x24]
- ldrh r3, [r0, 0x20]
- adds r1, r3
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r0, r5, r0
- subs r0, 0x5
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- bl Random
- negs r4, r4
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r4, r0
- subs r4, 0x5
- lsls r4, 16
- lsrs r7, r4, 16
- movs r6, 0
- mov r0, r8
- lsls r0, 16
- mov r8, r0
- mov r1, r10
- lsls r1, 16
- str r1, [sp, 0xC]
- ldr r2, [sp]
- lsls r2, 16
- str r2, [sp, 0x10]
- asrs r1, 16
- lsls r0, r7, 16
- asrs r5, r0, 16
- str r0, [sp, 0x14]
- negs r3, r5
- str r3, [sp, 0x4]
- asrs r0, r2, 16
- adds r1, r0
- lsls r1, 16
- mov r10, r1
-_080D4DF2:
- ldr r0, _080D4E34 @ =gSpriteTemplate_83D9420
- mov r2, r8
- asrs r1, r2, 16
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0x82
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080D4E38 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- ldr r0, _080D4E3C @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl sub_8079E90
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- cmp r5, 0
- bge _080D4E40
- mov r1, sp
- ldrh r1, [r1, 0x4]
- strh r1, [r4, 0x32]
- b _080D4E42
- .align 2, 0
-_080D4E34: .4byte gSpriteTemplate_83D9420
-_080D4E38: .4byte gSprites
-_080D4E3C: .4byte gBattleAnimBankAttacker
-_080D4E40:
- strh r7, [r4, 0x32]
-_080D4E42:
- lsls r0, r6, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r6, r0, 16
- cmp r0, 0
- ble _080D4DF2
- movs r6, 0
- ldr r3, [sp, 0xC]
- asrs r1, r3, 16
- ldr r0, [sp, 0x14]
- asrs r5, r0, 16
- negs r2, r5
- str r2, [sp, 0x8]
- ldr r3, [sp, 0x10]
- asrs r0, r3, 16
- subs r1, r0
- lsls r1, 16
- mov r10, r1
-_080D4E68:
- ldr r0, _080D4EAC @ =gSpriteTemplate_83D9420
- mov r2, r8
- asrs r1, r2, 16
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0x82
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080D4EB0 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- ldr r0, _080D4EB4 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl sub_8079E90
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- cmp r5, 0
- ble _080D4EB8
- mov r1, sp
- ldrh r1, [r1, 0x8]
- strh r1, [r4, 0x32]
- b _080D4EBA
- .align 2, 0
-_080D4EAC: .4byte gSpriteTemplate_83D9420
-_080D4EB0: .4byte gSprites
-_080D4EB4: .4byte gBattleAnimBankAttacker
-_080D4EB8:
- strh r7, [r4, 0x32]
-_080D4EBA:
- lsls r0, r6, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r6, r0, 16
- cmp r0, 0
- ble _080D4E68
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4D64
-
- thumb_func_start sub_80D4ED8
-sub_80D4ED8: @ 80D4ED8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D4F0C @ =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r4, 0x2E]
- movs r0, 0x3C
- strh r0, [r4, 0x30]
- movs r0, 0x9
- strh r0, [r4, 0x32]
- movs r0, 0x1E
- strh r0, [r4, 0x34]
- movs r0, 0xFE
- lsls r0, 8
- strh r0, [r4, 0x36]
- ldr r1, _080D4F10 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, _080D4F14 @ =sub_8078174
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4F0C: .4byte gBattleAnimArgs
-_080D4F10: .4byte move_anim_8072740
-_080D4F14: .4byte sub_8078174
- thumb_func_end sub_80D4ED8
-
- thumb_func_start sub_80D4F18
-sub_80D4F18: @ 80D4F18
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D4F50 @ =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_807867C
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x32]
- ldr r0, _080D4F54 @ =sub_8078394
- str r0, [r4, 0x1C]
- ldr r1, _080D4F58 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4F50: .4byte gBattleAnimArgs
-_080D4F54: .4byte sub_8078394
-_080D4F58: .4byte move_anim_8072740
- thumb_func_end sub_80D4F18
-
- thumb_func_start sub_80D4F5C
-sub_80D4F5C: @ 80D4F5C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r0, _080D4F90 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D4F98
- ldr r2, _080D4F94 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r2, 0x8]
- negs r0, r0
- strh r0, [r4, 0x32]
- adds r1, r2, 0
- b _080D4FAE
- .align 2, 0
-_080D4F90: .4byte gBattleAnimBankAttacker
-_080D4F94: .4byte gBattleAnimArgs
-_080D4F98:
- ldr r1, _080D4FC4 @ =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]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x32]
-_080D4FAE:
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x34]
- ldr r0, _080D4FC8 @ =sub_80D5038
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4FC4: .4byte gBattleAnimArgs
-_080D4FC8: .4byte sub_80D5038
- thumb_func_end sub_80D4F5C
-
- thumb_func_start sub_80D4FCC
-sub_80D4FCC: @ 80D4FCC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D4FF8 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D5000
- ldr r2, _080D4FFC @ =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r2, 0x8]
- strh r0, [r4, 0x32]
- adds r1, r2, 0
- b _080D5018
- .align 2, 0
-_080D4FF8: .4byte gBattleAnimBankAttacker
-_080D4FFC: .4byte gBattleAnimArgs
-_080D5000:
- ldr r1, _080D5030 @ =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]
- ldrh r0, [r1, 0x8]
- negs r0, r0
- strh r0, [r4, 0x32]
-_080D5018:
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x34]
- ldr r0, _080D5034 @ =sub_80D5038
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D5030: .4byte gBattleAnimArgs
-_080D5034: .4byte sub_80D5038
- thumb_func_end sub_80D4FCC
-
- thumb_func_start sub_80D5038
-sub_80D5038: @ 80D5038
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x36
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bge _080D505E
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x34]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
-_080D505E:
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bne _080D5070
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080D5070:
- pop {r0}
- bx r0
- thumb_func_end sub_80D5038
-
- thumb_func_start sub_80D5074
-sub_80D5074: @ 80D5074
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r0, _080D5098 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D50A0
- ldr r0, _080D509C @ =gBattleAnimArgs
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _080D50B2
- .align 2, 0
-_080D5098: .4byte gBattleAnimBankAttacker
-_080D509C: .4byte gBattleAnimArgs
-_080D50A0:
- ldr r0, _080D50E0 @ =gBattleAnimArgs
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- adds r2, r4, 0
- adds r2, 0x43
- movs r1, 0x8
- strb r1, [r2]
-_080D50B2:
- adds r2, r0, 0
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x22]
- ldrh r0, [r2, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r2, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r2, 0x8]
- strh r0, [r4, 0x32]
- ldrh r0, [r2, 0xA]
- strh r0, [r4, 0x34]
- ldrh r0, [r2, 0xC]
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x38]
- ldr r0, _080D50E4 @ =sub_80D50E8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D50E0: .4byte gBattleAnimArgs
-_080D50E4: .4byte sub_80D50E8
- thumb_func_end sub_80D5074
-
- thumb_func_start sub_80D50E8
-sub_80D50E8: @ 80D50E8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D5170
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- ldr r0, _080D5154 @ =0x00002710
- cmp r1, r0
- ble _080D5106
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1
- strb r0, [r1]
-_080D5106:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- strh r0, [r4, 0x38]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080D515C
- ldr r2, _080D5158 @ =0xffffff00
- b _080D5164
- .align 2, 0
-_080D5154: .4byte 0x00002710
-_080D5158: .4byte 0xffffff00
-_080D515C:
- cmp r0, 0
- bge _080D5168
- movs r2, 0x80
- lsls r2, 1
-_080D5164:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_080D5168:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _080D5176
-_080D5170:
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080D5176:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D50E8
-
- thumb_func_start sub_80D517C
-sub_80D517C: @ 80D517C
- push {lr}
- movs r1, 0
- strh r1, [r0, 0x20]
- strh r1, [r0, 0x22]
- movs r1, 0x3C
- strh r1, [r0, 0x2E]
- movs r1, 0x8C
- strh r1, [r0, 0x32]
- movs r1, 0x50
- strh r1, [r0, 0x36]
- ldr r1, _080D51A0 @ =sub_8078B34
- str r1, [r0, 0x1C]
- ldr r1, _080D51A4 @ =move_anim_8072740
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080D51A0: .4byte sub_8078B34
-_080D51A4: .4byte move_anim_8072740
- thumb_func_end sub_80D517C
-
- thumb_func_start sub_80D51A8
-sub_80D51A8: @ 80D51A8
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, _080D5200 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- bl GetBankSide
- adds r4, r0, 0
- ldr r0, _080D5204 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080D51EE
- movs r0, 0x2
- bl GetBankByPlayerAI
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- beq _080D51E6
- movs r0, 0x3
- bl GetBankByPlayerAI
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _080D51EE
-_080D51E6:
- ldr r1, _080D5208 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080D51EE:
- ldr r1, _080D520C @ =sub_8079534
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D5200: .4byte gBattleAnimBankAttacker
-_080D5204: .4byte gBattleAnimBankTarget
-_080D5208: .4byte gBattleAnimArgs
-_080D520C: .4byte sub_8079534
- thumb_func_end sub_80D51A8
-
- thumb_func_start sub_80D5210
-sub_80D5210: @ 80D5210
- ldr r2, _080D5224 @ =gBattleAnimArgs
- ldrh r1, [r2]
- negs r1, r1
- strh r1, [r2]
- ldrh r1, [r2, 0x4]
- negs r1, r1
- strh r1, [r2, 0x4]
- ldr r1, _080D5228 @ =sub_8079534
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080D5224: .4byte gBattleAnimArgs
-_080D5228: .4byte sub_8079534
- thumb_func_end sub_80D5210
-
- thumb_func_start sub_80D522C
-sub_80D522C: @ 80D522C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080D524C @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- movs r1, 0
- strh r0, [r4, 0x3C]
- strh r1, [r4, 0x2E]
- ldr r0, _080D5250 @ =sub_80D5254
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D524C: .4byte gBattleAnimArgs
-_080D5250: .4byte sub_80D5254
- thumb_func_end sub_80D522C
-
- thumb_func_start sub_80D5254
-sub_80D5254: @ 80D5254
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_80D5348
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x12
- bne _080D529E
- movs r0, 0x19
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080D52A4 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080D52A8 @ =sub_80D52AC
- str r0, [r5, 0x1C]
-_080D529E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D52A4: .4byte gBattleAnimBankTarget
-_080D52A8: .4byte sub_80D52AC
- thumb_func_end sub_80D5254
-
- thumb_func_start sub_80D52AC
-sub_80D52AC: @ 80D52AC
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D52F4
- movs r4, 0
- strh r4, [r6, 0x2E]
- ldr r5, _080D52EC @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- strh r4, [r6, 0x26]
- strh r4, [r6, 0x24]
- ldr r1, _080D52F0 @ =sub_80D5324
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- b _080D531E
- .align 2, 0
-_080D52EC: .4byte gBattleAnimBankTarget
-_080D52F0: .4byte sub_80D5324
-_080D52F4:
- movs r1, 0x3C
- ldrsh r0, [r6, r1]
- movs r1, 0x1C
- bl Sin
- ldrh r1, [r6, 0x24]
- adds r0, r1
- strh r0, [r6, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r6, r1]
- movs r1, 0x1C
- bl Cos
- ldrh r1, [r6, 0x26]
- adds r0, r1
- strh r0, [r6, 0x26]
- ldrh r0, [r6, 0x3C]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6, 0x3C]
-_080D531E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D52AC
-
- thumb_func_start sub_80D5324
-sub_80D5324: @ 80D5324
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80D5348
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080D5340
- adds r0, r4, 0
- bl move_anim_8072740
-_080D5340:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D5324
-
- thumb_func_start sub_80D5348
-sub_80D5348: @ 80D5348
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x1C
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x1C
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D5348
-
- thumb_func_start sub_80D5374
-sub_80D5374: @ 80D5374
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080D53A8 @ =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]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x32]
- ldr r1, _080D53AC @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080D53B0 @ =sub_8078364
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D53A8: .4byte gBattleAnimArgs
-_080D53AC: .4byte move_anim_8072740
-_080D53B0: .4byte sub_8078364
- thumb_func_end sub_80D5374
-
- thumb_func_start sub_80D53B4
-sub_80D53B4: @ 80D53B4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080D53E8 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x2E]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080D53EC @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _080D53F0 @ =sub_80D53F4
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D53E8: .4byte gBattleAnimArgs
-_080D53EC: .4byte sub_80782D8
-_080D53F0: .4byte sub_80D53F4
- thumb_func_end sub_80D53B4
-
- thumb_func_start sub_80D53F4
-sub_80D53F4: @ 80D53F4
- push {lr}
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r3]
- ldrh r1, [r0, 0x30]
- movs r2, 0
- strh r1, [r0, 0x2E]
- strh r2, [r0, 0x30]
- ldr r1, _080D5418 @ =sub_80D541C
- str r1, [r0, 0x1C]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080D5418: .4byte sub_80D541C
- thumb_func_end sub_80D53F4
-
- thumb_func_start sub_80D541C
-sub_80D541C: @ 80D541C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- adds r0, 0xD0
- strh r0, [r4, 0x32]
- 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 _080D5468
- adds r0, r4, 0
- bl move_anim_8072740
-_080D5468:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D541C
-
- thumb_func_start sub_80D5470
-sub_80D5470: @ 80D5470
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D54D0 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x26]
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- ldr r2, _080D54D4 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x10]
- ldr r0, _080D54D8 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x12]
- strh r5, [r4, 0x14]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8078E70
- ldr r0, _080D54DC @ =sub_80D54E0
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D54D0: .4byte gTasks
-_080D54D4: .4byte gSprites
-_080D54D8: .4byte gBattleAnimBankAttacker
-_080D54DC: .4byte sub_80D54E0
- thumb_func_end sub_80D5470
-
- thumb_func_start sub_80D54E0
-sub_80D54E0: @ 80D54E0
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080D5508 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bls _080D54FC
- b _080D57BA
-_080D54FC:
- lsls r0, 2
- ldr r1, _080D550C @ =_080D5510
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D5508: .4byte gTasks
-_080D550C: .4byte _080D5510
- .align 2, 0
-_080D5510:
- .4byte _080D552C
- .4byte _080D5552
- .4byte _080D5604
- .4byte _080D5664
- .4byte _080D5682
- .4byte _080D5758
- .4byte _080D57AC
-_080D552C:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 1
- movs r0, 0xE0
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 2
- str r0, [sp, 0x4]
- movs r0, 0x20
- str r0, [sp, 0x8]
- adds r0, r4, 0
- adds r2, r3, 0
- bl sub_8079C08
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080D5552:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D559A
- 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 _080D5588
- ldr r2, _080D5584 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- b _080D5598
- .align 2, 0
-_080D5584: .4byte gSprites
-_080D5588:
- ldr r2, _080D55FC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080D5600 @ =0x0000fffd
-_080D5598:
- strh r1, [r0, 0x24]
-_080D559A:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D55C8
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080D55C8
- movs r0, 0
- strh r0, [r4, 0xE]
- ldr r2, _080D55FC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x1
- strh r1, [r0, 0x22]
-_080D55C8:
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080D55D8
- b _080D57BA
-_080D55D8:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079A64
- ldr r2, _080D55FC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- b _080D57A0
- .align 2, 0
-_080D55FC: .4byte gSprites
-_080D5600: .4byte 0x0000fffd
-_080D5604:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _080D5614
- b _080D57BA
-_080D5614:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D563E
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 2
- movs r0, 0xC0
- lsls r0, 1
- str r0, [sp]
- movs r0, 0xF0
- str r0, [sp, 0x4]
- movs r0, 0x6
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r2, 0xE0
- bl sub_8079C08
- b _080D565E
-_080D563E:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 2
- movs r0, 0xC0
- lsls r0, 1
- str r0, [sp]
- movs r0, 0xC0
- str r0, [sp, 0x4]
- movs r0, 0x6
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r2, 0xE0
- bl sub_8079C08
-_080D565E:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080D57A0
-_080D5664:
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- cmp r0, 0
- beq _080D5672
- b _080D57BA
-_080D5672:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- adds r1, r5, 0
- movs r2, 0x6
- bl sub_80D57C4
- b _080D57A0
-_080D5682:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D56D0
- 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 _080D56BC
- ldr r2, _080D56B8 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- b _080D56CE
- .align 2, 0
-_080D56B8: .4byte gSprites
-_080D56BC:
- ldr r2, _080D5708 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
-_080D56CE:
- strh r1, [r0, 0x26]
-_080D56D0:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- ble _080D57BA
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D570C
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xC0
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r3, 0xF0
- bl sub_8079C08
- b _080D572A
- .align 2, 0
-_080D5708: .4byte gSprites
-_080D570C:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xC0
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r3, 0xC0
- bl sub_8079C08
-_080D572A:
- ldrh r1, [r4, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D5748
- ldr r2, _080D5754 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- strh r1, [r0, 0x26]
-_080D5748:
- movs r0, 0
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- b _080D57A0
- .align 2, 0
-_080D5754: .4byte gSprites
-_080D5758:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D5774
- ldr r2, _080D57A8 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
-_080D5774:
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080D57BA
- ldr r2, _080D57A8 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- strh r1, [r0, 0x22]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- strh r5, [r4, 0xC]
-_080D57A0:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D57BA
- .align 2, 0
-_080D57A8: .4byte gSprites
-_080D57AC:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D57BA
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080D57BA:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D54E0
-
- thumb_func_start sub_80D57C4
-sub_80D57C4: @ 80D57C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- adds r0, r4, 0
- bl sub_80D5940
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r1, _080D5814 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r4, [r0, 0x20]
- ldr r0, _080D5818 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080D581C
- adds r0, r4, 0
- subs r0, 0xC
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x1
- b _080D5826
- .align 2, 0
-_080D5814: .4byte gSprites
-_080D5818: .4byte gBattleAnimBankAttacker
-_080D581C:
- adds r0, r4, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0xFF
-_080D5826:
- movs r6, 0
- movs r5, 0
- lsls r4, 16
- str r4, [sp, 0x8]
- mov r1, r9
- lsls r1, 16
- str r1, [sp, 0x4]
- ldr r2, _080D58E0 @ =gUnknown_083D96DC
- mov r9, r2
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r3, r8
- lsls r3, 1
- mov r10, r3
-_080D5844:
- ldr r0, _080D58E4 @ =gSpriteTemplate_83D96C4
- ldr r2, [sp, 0x8]
- asrs r1, r2, 16
- ldr r3, [sp, 0x4]
- asrs r2, r3, 16
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080D58C6
- ldr r1, _080D58E8 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- lsls r0, r5, 2
- adds r0, 0x40
- adds r1, r0
- ldr r3, _080D58EC @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r3, _080D58F0 @ =0xfffffc00
- adds r0, r3, 0
- ands r2, r0
- orrs r2, r1
- strh r2, [r4, 0x4]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bls _080D588E
- movs r5, 0
-_080D588E:
- lsls r2, r6, 2
- mov r1, r9
- adds r0, r2, r1
- ldrh r0, [r0]
- ldr r3, [sp]
- adds r1, r0, 0
- muls r1, r3
- lsls r1, 16
- asrs r1, 16
- ldr r0, _080D58F4 @ =gUnknown_083D96DC + 0x2
- adds r2, r0
- movs r3, 0
- ldrsh r2, [r2, r3]
- adds r0, r4, 0
- bl sub_80D5994
- strh r7, [r4, 0x3A]
- mov r0, r8
- strh r0, [r4, 0x3C]
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- add r0, r10
- ldr r1, _080D58F8 @ =gTasks + 0x8
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
-_080D58C6:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x6
- bls _080D5844
- 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
-_080D58E0: .4byte gUnknown_083D96DC
-_080D58E4: .4byte gSpriteTemplate_83D96C4
-_080D58E8: .4byte gSprites
-_080D58EC: .4byte 0x000003ff
-_080D58F0: .4byte 0xfffffc00
-_080D58F4: .4byte gUnknown_083D96DC + 0x2
-_080D58F8: .4byte gTasks + 0x8
- thumb_func_end sub_80D57C4
-
- thumb_func_start sub_80D58FC
-sub_80D58FC: @ 80D58FC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80D59B0
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080D5936
- ldr r3, _080D593C @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080D5936:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D593C: .4byte gTasks
- thumb_func_end sub_80D58FC
-
- thumb_func_start sub_80D5940
-sub_80D5940: @ 80D5940
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080D5978 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r1, 0x26]
- ldrh r0, [r1, 0x22]
- adds r2, r0
- adds r1, 0x29
- movs r0, 0
- ldrsb r0, [r1, r0]
- adds r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080D597C @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080D5980
- lsls r0, r4, 16
- movs r1, 0x94
- lsls r1, 15
- b _080D5986
- .align 2, 0
-_080D5978: .4byte gSprites
-_080D597C: .4byte gBattleAnimBankAttacker
-_080D5980:
- lsls r0, r4, 16
- movs r1, 0xB0
- lsls r1, 14
-_080D5986:
- adds r0, r1
- lsrs r4, r0, 16
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80D5940
-
- thumb_func_start sub_80D5994
-sub_80D5994: @ 80D5994
- movs r3, 0
- strh r3, [r0, 0x2E]
- strh r3, [r0, 0x30]
- ldrh r3, [r0, 0x20]
- lsls r3, 3
- strh r3, [r0, 0x32]
- ldrh r3, [r0, 0x22]
- lsls r3, 3
- strh r3, [r0, 0x34]
- lsls r1, 3
- strh r1, [r0, 0x36]
- lsls r2, 3
- strh r2, [r0, 0x38]
- bx lr
- thumb_func_end sub_80D5994
-
- thumb_func_start sub_80D59B0
-sub_80D59B0: @ 80D59B0
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080D59DA
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0
- muls r1, r0
- adds r0, r1, 0
- ldrh r3, [r2, 0x34]
- adds r0, r3
- strh r0, [r2, 0x34]
-_080D59DA:
- ldrh r0, [r2, 0x36]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r2, 0x20]
- ldrh r1, [r2, 0x38]
- ldrh r3, [r2, 0x34]
- adds r1, r3
- strh r1, [r2, 0x34]
- lsls r1, 16
- asrs r3, r1, 19
- strh r3, [r2, 0x22]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _080D5A10
- adds r1, r3, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _080D5A10
- cmp r1, 0x78
- ble _080D5A1C
-_080D5A10:
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080D5A1C:
- pop {r0}
- bx r0
- thumb_func_end sub_80D59B0
-
- thumb_func_start sub_80D5A20
-sub_80D5A20: @ 80D5A20
- push {r4,r5,lr}
- ldr r3, _080D5A64 @ =gBattleAnimArgs
- ldrh r1, [r3]
- movs r2, 0
- strh r1, [r0, 0x20]
- ldrh r1, [r3, 0x2]
- strh r1, [r0, 0x22]
- strh r2, [r0, 0x2E]
- strh r2, [r0, 0x30]
- strh r2, [r0, 0x32]
- ldrh r1, [r3, 0x4]
- strh r1, [r0, 0x3A]
- ldrh r1, [r3, 0x6]
- strh r1, [r0, 0x3C]
- ldrh r4, [r0, 0x4]
- lsls r2, r4, 22
- lsrs r2, 22
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r1, 4
- adds r2, r1
- ldr r3, _080D5A68 @ =0x000003ff
- adds r1, r3, 0
- ands r2, r1
- ldr r1, _080D5A6C @ =0xfffffc00
- ands r1, r4
- orrs r1, r2
- strh r1, [r0, 0x4]
- ldr r1, _080D5A70 @ =sub_80D5A74
- str r1, [r0, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D5A64: .4byte gBattleAnimArgs
-_080D5A68: .4byte 0x000003ff
-_080D5A6C: .4byte 0xfffffc00
-_080D5A70: .4byte sub_80D5A74
- thumb_func_end sub_80D5A20
-
- thumb_func_start sub_80D5A74
-sub_80D5A74: @ 80D5A74
- push {r4,lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _080D5AA6
- cmp r0, 0x1
- bgt _080D5A8A
- cmp r0, 0
- beq _080D5A90
- b _080D5B04
-_080D5A8A:
- cmp r0, 0x2
- beq _080D5AC4
- b _080D5B04
-_080D5A90:
- ldrh r1, [r2, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _080D5AA0
- subs r0, r1, 0x1
- strh r0, [r2, 0x3A]
- b _080D5B04
-_080D5AA0:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
-_080D5AA6:
- ldrh r0, [r2, 0x22]
- adds r0, 0x8
- strh r0, [r2, 0x22]
- lsls r0, 16
- asrs r0, 16
- ldrh r3, [r2, 0x3C]
- movs r4, 0x3C
- ldrsh r1, [r2, r4]
- cmp r0, r1
- blt _080D5B04
- strh r3, [r2, 0x22]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- b _080D5B04
-_080D5AC4:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D5AF0
- movs r0, 0
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- strh r0, [r2, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D5AEC
- ldr r0, _080D5AE8 @ =0x0000fffd
- b _080D5AEE
- .align 2, 0
-_080D5AE8: .4byte 0x0000fffd
-_080D5AEC:
- movs r0, 0x3
-_080D5AEE:
- strh r0, [r2, 0x26]
-_080D5AF0:
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080D5B04
- adds r0, r2, 0
- bl move_anim_8072740
-_080D5B04:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D5A74
-
- thumb_func_start sub_80D5B0C
-sub_80D5B0C: @ 80D5B0C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080D5B80
- cmp r0, 0x1
- bgt _080D5B22
- cmp r0, 0
- beq _080D5B28
- b _080D5C4E
-_080D5B22:
- cmp r0, 0x2
- beq _080D5BDE
- b _080D5C4E
-_080D5B28:
- adds r0, r5, 0
- movs r1, 0
- bl sub_80787B0
- ldr r4, _080D5B50 @ =gBattleAnimArgs
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x3C]
- ldr r0, _080D5B54 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D5B58
- movs r0, 0x4
- b _080D5B5A
- .align 2, 0
-_080D5B50: .4byte gBattleAnimArgs
-_080D5B54: .4byte gBattleAnimBankAttacker
-_080D5B58:
- ldr r0, _080D5B78 @ =0x0000fffc
-_080D5B5A:
- strh r0, [r5, 0x36]
- ldr r0, _080D5B7C @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080D5BD6
- .align 2, 0
-_080D5B78: .4byte 0x0000fffc
-_080D5B7C: .4byte gBattleAnimBankTarget
-_080D5B80:
- ldrh r0, [r5, 0x30]
- adds r0, 0xC0
- strh r0, [r5, 0x30]
- ldr r0, _080D5BA0 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D5BA4
- ldrh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- b _080D5BAA
- .align 2, 0
-_080D5BA0: .4byte gBattleAnimBankAttacker
-_080D5BA4:
- ldrh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 24
-_080D5BAA:
- strh r0, [r5, 0x26]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080D5C4E
- movs r0, 0
- strh r0, [r5, 0x34]
-_080D5BD6:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080D5C4E
-_080D5BDE:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- bl Sin
- adds r2, r0, 0
- movs r3, 0
- strh r2, [r5, 0x24]
- ldrh r0, [r5, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080D5C4E
- ldrh r0, [r5, 0x20]
- adds r1, r2, r0
- strh r1, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r3, [r5, 0x26]
- strh r3, [r5, 0x24]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- ldr r4, _080D5C54 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078BD4
- ldr r0, _080D5C58 @ =sub_80D5C5C
- str r0, [r5, 0x1C]
-_080D5C4E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D5C54: .4byte gBattleAnimBankTarget
-_080D5C58: .4byte sub_80D5C5C
- thumb_func_end sub_80D5B0C
-
- thumb_func_start sub_80D5C5C
-sub_80D5C5C: @ 80D5C5C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080D5CB4
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x10
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _080D5C92
- cmp r2, 0xC4
- ble _080D5CBA
-_080D5C92:
- lsls r0, 16
- cmp r0, 0
- ble _080D5CBA
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D5CBA
- ldr r0, _080D5CB0 @ =gUnknown_0202F7D2
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x90
- bl PlaySE12WithPanning
- b _080D5CBA
- .align 2, 0
-_080D5CB0: .4byte gUnknown_0202F7D2
-_080D5CB4:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D5CBA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D5C5C
-
- 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 @ =gBattleAnimBankTarget
- 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 gBattleAnimBankTarget
-_080D5D5C:
- ldr r0, _080D5D80 @ =gBattleAnimBankTarget
- 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 gBattleAnimBankTarget
-_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 move_anim_8072740
-_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 @ =gBattleAnimBankAttacker
- 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 @ =gBattleAnimBankTarget
- 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 gBattleAnimBankAttacker
-_080D5E44: .4byte gBattleAnimBankTarget
-_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 @ =gBattleAnimBankTarget
- 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 gBattleAnimBankTarget
-_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
-
- thumb_func_start sub_80D61C8
-sub_80D61C8: @ 80D61C8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D61E8 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D61F0
- ldr r0, _080D61EC @ =gBattleAnimArgs
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _080D61FC
- .align 2, 0
-_080D61E8: .4byte gBattleAnimBankAttacker
-_080D61EC: .4byte gBattleAnimArgs
-_080D61F0:
- ldr r1, _080D6210 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r0, r1, 0
-_080D61FC:
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080D6214 @ =sub_80D6218
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6210: .4byte gBattleAnimArgs
-_080D6214: .4byte sub_80D6218
- thumb_func_end sub_80D61C8
-
- thumb_func_start sub_80D6218
-sub_80D6218: @ 80D6218
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D622E
- adds r0, r2, 0
- bl move_anim_8072740
-_080D622E:
- pop {r0}
- bx r0
- thumb_func_end sub_80D6218
-
- thumb_func_start sub_80D6234
-sub_80D6234: @ 80D6234
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D6254 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D625C
- ldr r0, _080D6258 @ =gBattleAnimArgs
- ldrh r1, [r4, 0x20]
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r4, 0x20]
- b _080D6266
- .align 2, 0
-_080D6254: .4byte gBattleAnimBankAttacker
-_080D6258: .4byte gBattleAnimArgs
-_080D625C:
- ldr r0, _080D6270 @ =gBattleAnimArgs
- ldrh r0, [r0]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
-_080D6266:
- ldr r0, _080D6274 @ =sub_80D6278
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6270: .4byte gBattleAnimArgs
-_080D6274: .4byte sub_80D6278
- thumb_func_end sub_80D6234
-
- thumb_func_start sub_80D6278
-sub_80D6278: @ 80D6278
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D628E
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080D628E:
- pop {r0}
- bx r0
- thumb_func_end sub_80D6278
-
- thumb_func_start sub_80D6294
-sub_80D6294: @ 80D6294
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D62D8 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080D62DC @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D62E4
- ldr r2, _080D62E0 @ =gBattleAnimArgs
- ldrh r0, [r5, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- ldrh r1, [r2, 0x2]
- subs r0, r1
- strh r0, [r5, 0x22]
- b _080D62F8
- .align 2, 0
-_080D62D8: .4byte gBattleAnimBankTarget
-_080D62DC: .4byte gBattleAnimBankAttacker
-_080D62E0: .4byte gBattleAnimArgs
-_080D62E4:
- ldr r0, _080D631C @ =gBattleAnimArgs
- ldrh r1, [r0]
- ldrh r2, [r5, 0x20]
- adds r1, r2
- strh r1, [r5, 0x20]
- ldrh r1, [r0, 0x2]
- ldrh r2, [r5, 0x22]
- adds r1, r2
- strh r1, [r5, 0x22]
- adds r2, r0, 0
-_080D62F8:
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x30]
- ldrh r0, [r2, 0x6]
- strh r0, [r5, 0x32]
- ldrh r0, [r2, 0x8]
- strh r0, [r5, 0x34]
- ldr r1, _080D6320 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080D6324 @ =sub_8078114
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D631C: .4byte gBattleAnimArgs
-_080D6320: .4byte move_anim_8074EE0
-_080D6324: .4byte sub_8078114
- thumb_func_end sub_80D6294
-
- thumb_func_start sub_80D6328
-sub_80D6328: @ 80D6328
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _080D6340 @ =gBattleAnimArgs
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080D63A0
- cmp r0, 0x1
- bgt _080D6344
- cmp r0, 0
- beq _080D634E
- b _080D63A0
- .align 2, 0
-_080D6340: .4byte gBattleAnimArgs
-_080D6344:
- cmp r0, 0x2
- beq _080D6358
- cmp r0, 0x3
- beq _080D637C
- b _080D63A0
-_080D634E:
- ldr r0, _080D6354 @ =gBattleAnimBankAttacker
- b _080D63A2
- .align 2, 0
-_080D6354: .4byte gBattleAnimBankAttacker
-_080D6358:
- ldr r4, _080D6370 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r6, 0x2
- eors r0, r6
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- bne _080D6374
- ldrb r4, [r4]
- b _080D63A4
- .align 2, 0
-_080D6370: .4byte gBattleAnimBankAttacker
-_080D6374:
- ldrb r0, [r4]
- adds r4, r6, 0
- eors r4, r0
- b _080D63A4
-_080D637C:
- ldr r0, _080D6398 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- movs r4, 0x2
- eors r0, r4
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080D63A0
- ldr r0, _080D639C @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- eors r4, r0
- b _080D63A4
- .align 2, 0
-_080D6398: .4byte gBattleAnimBankAttacker
-_080D639C: .4byte gBattleAnimBankTarget
-_080D63A0:
- ldr r0, _080D63C4 @ =gBattleAnimBankTarget
-_080D63A2:
- ldrb r4, [r0]
-_080D63A4:
- ldr r0, _080D63C8 @ =gBattleAnimArgs
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080D63CC
- adds r0, r4, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- movs r1, 0x1
- b _080D63DE
- .align 2, 0
-_080D63C4: .4byte gBattleAnimBankTarget
-_080D63C8: .4byte gBattleAnimArgs
-_080D63CC:
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- movs r1, 0x3
-_080D63DE:
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r7, _080D647C @ =gSineTable
- ldr r6, _080D6480 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- lsls r0, 1
- adds r0, r7
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- muls r0, r1
- asrs r0, 8
- strh r0, [r5, 0x24]
- movs r1, 0
- ldrsh r0, [r6, r1]
- adds r0, 0x40
- lsls r0, 1
- adds r0, r7
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- muls r0, r1
- asrs r0, 8
- strh r0, [r5, 0x26]
- ldrh r1, [r6, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D6442
- adds r0, r4, 0
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r5, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
-_080D6442:
- ldrb r2, [r5, 0x3]
- lsls r2, 26
- lsrs r2, 27
- movs r0, 0x4
- ldrsh r1, [r6, r0]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- ldr r3, _080D6484 @ =gOamMatrices
- lsls r2, 3
- adds r2, r3
- adds r1, 0x40
- lsls r1, 1
- adds r1, r7
- ldrh r1, [r1]
- strh r1, [r2, 0x6]
- strh r1, [r2]
- strh r0, [r2, 0x2]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- ldrh r0, [r6, 0x6]
- strh r0, [r5, 0x2E]
- ldr r0, _080D6488 @ =sub_80DA48C
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D647C: .4byte gSineTable
-_080D6480: .4byte gBattleAnimArgs
-_080D6484: .4byte gOamMatrices
-_080D6488: .4byte sub_80DA48C
- thumb_func_end sub_80D6328
-
- thumb_func_start sub_80D648C
-sub_80D648C: @ 80D648C
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r5, _080D6500 @ =gBattleAnimArgs
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r6, _080D6504 @ =gBattleAnimBankTarget
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x38]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x3A]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x3C]
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- lsls r0, 2
- adds r1, r0
- ldr r3, _080D6508 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D650C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r1, _080D6510 @ =sub_80D6514
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6500: .4byte gBattleAnimArgs
-_080D6504: .4byte gBattleAnimBankTarget
-_080D6508: .4byte 0x000003ff
-_080D650C: .4byte 0xfffffc00
-_080D6510: .4byte sub_80D6514
- thumb_func_end sub_80D648C
-
- thumb_func_start sub_80D6514
-sub_80D6514: @ 80D6514
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080D657E
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080D6584
- 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 _080D6584
-_080D657E:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D6584:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D6514
-
- thumb_func_start sub_80D658C
-sub_80D658C: @ 80D658C
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x38]
- subs r0, 0x1
- strh r0, [r3, 0x38]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080D65C4
- 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, 0x36]
- strh r0, [r3, 0x38]
-_080D65C4:
- ldrh r0, [r3, 0x34]
- subs r1, r0, 0x1
- strh r1, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bgt _080D65D6
- adds r0, r3, 0
- bl move_anim_8072740
-_080D65D6:
- pop {r0}
- bx r0
- thumb_func_end sub_80D658C
-
- thumb_func_start sub_80D65DC
-sub_80D65DC: @ 80D65DC
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080D6644 @ =gMain
- ldr r1, _080D6648 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D65FE
- ldr r0, _080D664C @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080D6606
-_080D65FE:
- ldr r1, _080D6650 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080D6606:
- ldr r5, _080D664C @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080D6650 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4]
- strh r0, [r6, 0x34]
- ldrh r0, [r4, 0x6]
- strh r0, [r6, 0x36]
- strh r0, [r6, 0x38]
- ldr r0, _080D6654 @ =sub_80D658C
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6644: .4byte gMain
-_080D6648: .4byte 0x0000043d
-_080D664C: .4byte gBattleAnimBankTarget
-_080D6650: .4byte gBattleAnimArgs
-_080D6654: .4byte sub_80D658C
- thumb_func_end sub_80D65DC
-
- thumb_func_start sub_80D6658
-sub_80D6658: @ 80D6658
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r1, _080D6674 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x2E]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080D667C
- ldr r0, _080D6678 @ =gBattleAnimBankTarget
- b _080D667E
- .align 2, 0
-_080D6674: .4byte gBattleAnimArgs
-_080D6678: .4byte gBattleAnimBankTarget
-_080D667C:
- ldr r0, _080D670C @ =gBattleAnimBankAttacker
-_080D667E:
- ldrb r6, [r0]
- ldr r0, _080D6710 @ =gMain
- ldr r3, _080D6714 @ =0x0000043d
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D669C
- adds r0, r6, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080D66A4
-_080D669C:
- ldr r1, _080D6718 @ =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080D66A4:
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080D6718 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r4, 0x2]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r1, [r4, 0xE]
- ldr r0, _080D671C @ =0x00007fff
- ands r0, r1
- strh r0, [r5, 0x36]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x38]
- ldrh r0, [r4, 0xA]
- strh r0, [r5, 0x3A]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x3C]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 2
- adds r1, r0
- ldr r3, _080D6720 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D6724 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r1, _080D6728 @ =sub_80D672C
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D670C: .4byte gBattleAnimBankAttacker
-_080D6710: .4byte gMain
-_080D6714: .4byte 0x0000043d
-_080D6718: .4byte gBattleAnimArgs
-_080D671C: .4byte 0x00007fff
-_080D6720: .4byte 0x000003ff
-_080D6724: .4byte 0xfffffc00
-_080D6728: .4byte sub_80D672C
- thumb_func_end sub_80D6658
-
- thumb_func_start sub_80D672C
-sub_80D672C: @ 80D672C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _080D6782
- 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]
-_080D6782:
- ldrh r0, [r4, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080D6794
- adds r0, r4, 0
- bl move_anim_8072740
-_080D6794:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D672C
-
- thumb_func_start sub_80D679C
-sub_80D679C: @ 80D679C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8078764
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- ldr r3, _080D67D8 @ =gBattleAnimArgs
- movs r5, 0x6
- ldrsh r0, [r3, r5]
- lsls r0, 2
- adds r1, r0
- ldr r5, _080D67DC @ =0x000003ff
- adds r0, r5, 0
- ands r1, r0
- ldr r0, _080D67E0 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- movs r1, 0x6
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- bne _080D67E4
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- b _080D67F2
- .align 2, 0
-_080D67D8: .4byte gBattleAnimArgs
-_080D67DC: .4byte 0x000003ff
-_080D67E0: .4byte 0xfffffc00
-_080D67E4:
- cmp r0, 0x2
- bne _080D67F6
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x20
-_080D67F2:
- orrs r1, r0
- strb r1, [r4, 0x3]
-_080D67F6:
- ldr r0, _080D6810 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080D6814 @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _080D6818 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6810: .4byte gBattleAnimArgs
-_080D6814: .4byte sub_80782D8
-_080D6818: .4byte move_anim_8072740
- thumb_func_end sub_80D679C
-
- thumb_func_start sub_80D681C
-sub_80D681C: @ 80D681C
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _080D6864 @ =gBattleAnimBankTarget
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- ldr r1, _080D6868 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- ldr r5, _080D686C @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r4, 0x8]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xC]
- ldr r0, _080D6870 @ =sub_80D6874
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6864: .4byte gBattleAnimBankTarget
-_080D6868: .4byte gTasks
-_080D686C: .4byte gBattleAnimArgs
-_080D6870: .4byte sub_80D6874
- thumb_func_end sub_80D681C
-
- thumb_func_start sub_80D6874
-sub_80D6874: @ 80D6874
- 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
- movs r5, 0
- movs r7, 0
- ldr r1, _080D68B4 @ =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldrb r2, [r0, 0xC]
- str r2, [sp]
- ldrh r4, [r0, 0x8]
- ldrh r6, [r0, 0xA]
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- mov r10, r1
- cmp r0, 0
- bne _080D68B8
- movs r0, 0
- mov r8, r0
- movs r2, 0x1
- movs r1, 0x10
- mov r12, r1
- b _080D68C2
- .align 2, 0
-_080D68B4: .4byte gTasks
-_080D68B8:
- movs r2, 0x10
- mov r12, r2
- movs r3, 0x8
- mov r8, r3
- movs r2, 0x4
-_080D68C2:
- mov r0, r9
- lsls r1, r0, 2
- adds r0, r1, r0
- lsls r0, 3
- add r0, r10
- movs r3, 0x1C
- ldrsh r0, [r0, r3]
- mov r10, r1
- cmp r0, 0xA
- bhi _080D69B8
- lsls r0, 2
- ldr r1, _080D68E0 @ =_080D68E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D68E0: .4byte _080D68E4
- .align 2, 0
-_080D68E4:
- .4byte _080D6910
- .4byte _080D69B8
- .4byte _080D6924
- .4byte _080D69B8
- .4byte _080D6944
- .4byte _080D69B8
- .4byte _080D695A
- .4byte _080D69B8
- .4byte _080D697C
- .4byte _080D69B8
- .4byte _080D69B0
-_080D6910:
- ldr r0, _080D6920 @ =gSpriteTemplate_83D9938
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- mov r4, r12
- lsls r3, r4, 16
- b _080D6992
- .align 2, 0
-_080D6920: .4byte gSpriteTemplate_83D9938
-_080D6924:
- mov r0, r12
- lsls r3, r0, 17
- mov r1, r8
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _080D6940 @ =gSpriteTemplate_83D9938
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- b _080D6992
- .align 2, 0
-_080D6940: .4byte gSpriteTemplate_83D9938
-_080D6944:
- mov r3, r12
- lsls r0, r3, 16
- asrs r0, 16
- lsls r3, r0, 1
- adds r3, r0
- lsls r0, r2, 1
- add r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- b _080D6986
-_080D695A:
- mov r0, r12
- lsls r3, r0, 18
- lsls r0, r2, 1
- adds r0, r2
- add r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _080D6978 @ =gSpriteTemplate_83D9938
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- b _080D6992
- .align 2, 0
-_080D6978: .4byte gSpriteTemplate_83D9938
-_080D697C:
- mov r1, r12
- lsls r0, r1, 16
- asrs r0, 16
- lsls r3, r0, 2
- adds r3, r0
-_080D6986:
- ldr r0, _080D69AC @ =gSpriteTemplate_83D9938
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- lsls r3, 16
-_080D6992:
- asrs r3, 16
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _080D69B8
- .align 2, 0
-_080D69AC: .4byte gSpriteTemplate_83D9938
-_080D69B0:
- mov r0, r9
- bl DestroyAnimVisualTask
- b _080D69FC
-_080D69B8:
- cmp r7, 0
- beq _080D69EC
- ldr r4, _080D6A0C @ =gSprites
- lsls r3, r5, 4
- adds r3, r5
- lsls r3, 2
- adds r0, r3, r4
- ldrh r5, [r0, 0x4]
- lsls r2, r5, 22
- lsrs r2, 22
- add r2, r8
- ldr r6, _080D6A10 @ =0x000003ff
- adds r1, r6, 0
- ands r2, r1
- ldr r1, _080D6A14 @ =0xfffffc00
- ands r1, r5
- orrs r1, r2
- strh r1, [r0, 0x4]
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r0, 0x2E]
- adds r4, 0x1C
- adds r3, r4
- ldr r1, [r3]
- bl _call_via_r1
-_080D69EC:
- ldr r0, _080D6A18 @ =gTasks
- mov r1, r10
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- strh r0, [r1, 0x1C]
-_080D69FC:
- 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
-_080D6A0C: .4byte gSprites
-_080D6A10: .4byte 0x000003ff
-_080D6A14: .4byte 0xfffffc00
-_080D6A18: .4byte gTasks
- thumb_func_end sub_80D6874
-
- thumb_func_start sub_80D6A1C
-sub_80D6A1C: @ 80D6A1C
- push {lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080D6A3E
- ldrb r1, [r3, 0x1]
- movs r2, 0x3F
- adds r0, r2, 0
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r3, 0x1]
- ldrb r0, [r3, 0x3]
- ands r2, r0
- strb r2, [r3, 0x3]
- b _080D6A52
-_080D6A3E:
- ldrb r2, [r3, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3, 0x1]
- ldrb r0, [r3, 0x3]
- ands r1, r0
- movs r0, 0x40
- orrs r1, r0
- strb r1, [r3, 0x3]
-_080D6A52:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bne _080D6A66
- adds r0, r3, 0
- bl DestroySprite
-_080D6A66:
- pop {r0}
- bx r0
- thumb_func_end sub_80D6A1C
-
- thumb_func_start sub_80D6A6C
-sub_80D6A6C: @ 80D6A6C
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _080D6AD4 @ =gBattleAnimArgs
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- ldr r0, _080D6AD8 @ =gBattleAnimSpriteTemplate_83D9950
- adds r1, 0x20
- lsls r1, 16
- asrs r1, 16
- movs r7, 0x22
- ldrsh r2, [r4, r7]
- adds r3, r4, 0
- adds r3, 0x43
- ldrb r3, [r3]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080D6ADC @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r6, r2, r3
- ldrh r5, [r6, 0x4]
- lsls r1, r5, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r7, _080D6AE0 @ =0x000003ff
- adds r0, r7, 0
- ands r1, r0
- ldr r0, _080D6AE4 @ =0xfffffc00
- ands r0, r5
- orrs r0, r1
- strh r0, [r6, 0x4]
- ldr r1, _080D6AE8 @ =gAnimVisualTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r3, 0x1C
- adds r2, r3
- ldr r0, _080D6AEC @ =sub_80D6AF0
- str r0, [r2]
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6AD4: .4byte gBattleAnimArgs
-_080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950
-_080D6ADC: .4byte gSprites
-_080D6AE0: .4byte 0x000003ff
-_080D6AE4: .4byte 0xfffffc00
-_080D6AE8: .4byte gAnimVisualTaskCount
-_080D6AEC: .4byte sub_80D6AF0
- thumb_func_end sub_80D6A6C
-
- thumb_func_start sub_80D6AF0
-sub_80D6AF0: @ 80D6AF0
- 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 _080D6B24
- 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]
-_080D6B24:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080D6B38
- adds r0, r3, 0
- bl move_anim_8072740
-_080D6B38:
- pop {r0}
- bx r0
- thumb_func_end sub_80D6AF0
-
- thumb_func_start sub_80D6B3C
-sub_80D6B3C: @ 80D6B3C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D6B5C @ =gTasks
- adds r5, r1, r0
- ldr r0, _080D6B60 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D6B68
- ldr r4, _080D6B64 @ =gBattleAnimBankAttacker
- b _080D6B6A
- .align 2, 0
-_080D6B5C: .4byte gTasks
-_080D6B60: .4byte gBattleAnimArgs
-_080D6B64: .4byte gBattleAnimBankAttacker
-_080D6B68:
- ldr r4, _080D6BAC @ =gBattleAnimBankTarget
-_080D6B6A:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x26]
- ldr r2, _080D6BB0 @ =gBattleAnimArgs
- ldrh r0, [r2, 0x2]
- movs r1, 0
- strh r0, [r5, 0x14]
- strh r1, [r5, 0x16]
- strh r1, [r5, 0x18]
- strh r1, [r5, 0x1A]
- strh r1, [r5, 0x1C]
- ldrh r0, [r2, 0x6]
- strh r0, [r5, 0x1E]
- strh r1, [r5, 0x20]
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x22]
- ldr r0, _080D6BB4 @ =sub_80D6BB8
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6BAC: .4byte gBattleAnimBankTarget
-_080D6BB0: .4byte gBattleAnimArgs
-_080D6BB4: .4byte sub_80D6BB8
- thumb_func_end sub_80D6B3C
-
- thumb_func_start sub_80D6BB8
-sub_80D6BB8: @ 80D6BB8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r2, r6, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080D6CA0 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080D6CB8
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x22
- ldrsh r1, [r5, r2]
- cmp r0, r1
- ble _080D6CC6
- strh r7, [r5, 0x20]
- ldr r0, _080D6CA4 @ =gSpriteTemplate_83D99B8
- movs r3, 0x24
- ldrsh r1, [r5, r3]
- movs r3, 0x26
- ldrsh r2, [r5, r3]
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080D6CC6
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080D6CA8 @ =gSprites
- adds r4, r0
- ldr r1, _080D6CAC @ =gUnknown_083D9968
- movs r2, 0x1A
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r0, r1
- movs r3, 0
- ldrsb r3, [r0, r3]
- ldrh r0, [r4, 0x20]
- adds r3, r0
- strh r3, [r4, 0x20]
- movs r2, 0x1A
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldrh r0, [r4, 0x22]
- adds r2, r0
- strh r2, [r4, 0x22]
- movs r1, 0x18
- ldrsh r0, [r5, r1]
- lsls r1, r0, 2
- adds r1, r0
- movs r0, 0x28
- subs r0, r1
- strh r0, [r4, 0x2E]
- strh r3, [r4, 0x30]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- ldrh r0, [r5, 0x26]
- strh r0, [r4, 0x36]
- strh r6, [r4, 0x38]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080D6CB0 @ =sub_80D6D00
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080D6CB4 @ =sub_8078600
- str r0, [r4, 0x1C]
- ldrh r0, [r5, 0x1A]
- adds r0, 0x1
- strh r0, [r5, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080D6C70
- strh r7, [r5, 0x1A]
-_080D6C70:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1E
- ldrsh r1, [r5, r2]
- cmp r0, r1
- blt _080D6C92
- strh r7, [r5, 0x1C]
- ldrh r1, [r5, 0x18]
- movs r3, 0x18
- ldrsh r0, [r5, r3]
- cmp r0, 0x5
- bgt _080D6C92
- adds r0, r1, 0x1
- strh r0, [r5, 0x18]
-_080D6C92:
- ldrh r0, [r5, 0x16]
- adds r0, 0x1
- strh r0, [r5, 0x16]
- ldrh r0, [r5, 0x14]
- subs r0, 0x1
- strh r0, [r5, 0x14]
- b _080D6CC6
- .align 2, 0
-_080D6CA0: .4byte gTasks
-_080D6CA4: .4byte gSpriteTemplate_83D99B8
-_080D6CA8: .4byte gSprites
-_080D6CAC: .4byte gUnknown_083D9968
-_080D6CB0: .4byte sub_80D6D00
-_080D6CB4: .4byte sub_8078600
-_080D6CB8:
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D6CC6
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080D6CC6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80D6BB8
-
- thumb_func_start sub_80D6CCC
-sub_80D6CCC: @ 80D6CCC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D6CF4
- ldr r2, _080D6CFC @ =gTasks
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x16]
- subs r1, 0x1
- strh r1, [r0, 0x16]
- adds r0, r4, 0
- bl DestroySprite
-_080D6CF4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6CFC: .4byte gTasks
- thumb_func_end sub_80D6CCC
-
- thumb_func_start sub_80D6D00
-sub_80D6D00: @ 80D6D00
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _080D6D14 @ =sub_80D6CCC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6D14: .4byte sub_80D6CCC
- thumb_func_end sub_80D6D00
-
- thumb_func_start sub_80D6D18
-sub_80D6D18: @ 80D6D18
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D6D2C @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D6D34
- ldr r4, _080D6D30 @ =gBattleAnimBankAttacker
- b _080D6D36
- .align 2, 0
-_080D6D2C: .4byte gBattleAnimArgs
-_080D6D30: .4byte gBattleAnimBankAttacker
-_080D6D34:
- ldr r4, _080D6D64 @ =gBattleAnimBankTarget
-_080D6D36:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080D6D68 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080D6D6C @ =sub_80785E4
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6D64: .4byte gBattleAnimBankTarget
-_080D6D68: .4byte move_anim_8074EE0
-_080D6D6C: .4byte sub_80785E4
- thumb_func_end sub_80D6D18
-
- thumb_func_start sub_80D6D70
-sub_80D6D70: @ 80D6D70
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D6D84 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D6D8C
- ldr r4, _080D6D88 @ =gBattleAnimBankAttacker
- b _080D6D8E
- .align 2, 0
-_080D6D84: .4byte gBattleAnimArgs
-_080D6D88: .4byte gBattleAnimBankAttacker
-_080D6D8C:
- ldr r4, _080D6DC8 @ =gBattleAnimBankTarget
-_080D6D8E:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080D6DCC @ =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x24]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x26]
- ldr r1, _080D6DD0 @ =move_anim_8072740
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080D6DD4 @ =sub_8078600
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6DC8: .4byte gBattleAnimBankTarget
-_080D6DCC: .4byte gBattleAnimArgs
-_080D6DD0: .4byte move_anim_8072740
-_080D6DD4: .4byte sub_8078600
- thumb_func_end sub_80D6D70
-
- thumb_func_start sub_80D6DD8
-sub_80D6DD8: @ 80D6DD8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r4, _080D6E30 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- movs r0, 0x10
- strh r0, [r5, 0x3C]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D6E26
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r5, 0x3C]
-_080D6E26:
- ldr r0, _080D6E34 @ =sub_80D6E38
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6E30: .4byte gBattleAnimBankAttacker
-_080D6E34: .4byte sub_80D6E38
- thumb_func_end sub_80D6DD8
-
- thumb_func_start sub_80D6E38
-sub_80D6E38: @ 80D6E38
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D6E4A
- cmp r0, 0x1
- beq _080D6E60
- b _080D6E90
-_080D6E4A:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _080D6E90
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D6E90
-_080D6E60:
- ldrh r2, [r4, 0x3C]
- ldrh r1, [r4, 0x20]
- adds r0, r2, r1
- strh r0, [r4, 0x20]
- ldr r3, _080D6E98 @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x24]
- adds r2, r1
- strh r2, [r0, 0x24]
- ldrh r0, [r4, 0x20]
- adds r0, 0x50
- lsls r0, 16
- movs r1, 0xC8
- lsls r1, 17
- cmp r0, r1
- bls _080D6E90
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080D6E90:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6E98: .4byte gSprites
- thumb_func_end sub_80D6E38
-
- thumb_func_start sub_80D6E9C
-sub_80D6E9C: @ 80D6E9C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080D6EC0 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080D6F30
- cmp r0, 0x1
- bgt _080D6EC4
- cmp r0, 0
- beq _080D6ED0
- b _080D7000
- .align 2, 0
-_080D6EC0: .4byte gTasks
-_080D6EC4:
- cmp r0, 0x2
- beq _080D6F8C
- cmp r0, 0x3
- bne _080D6ECE
- b _080D6FE0
-_080D6ECE:
- b _080D7000
-_080D6ED0:
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r5, 0x26]
- ldr r4, _080D6F04 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080D6F0C
- ldr r0, _080D6F08 @ =0x0000ffe0
- strh r0, [r5, 0x24]
- movs r0, 0x2
- b _080D6F12
- .align 2, 0
-_080D6F04: .4byte gBattleAnimBankAttacker
-_080D6F08: .4byte 0x0000ffe0
-_080D6F0C:
- movs r0, 0x20
- strh r0, [r5, 0x24]
- ldr r0, _080D6F28 @ =0x0000fffe
-_080D6F12:
- strh r0, [r5, 0x22]
- ldr r2, _080D6F2C @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r5, 0x24]
- strh r1, [r0, 0x24]
- b _080D6FD2
- .align 2, 0
-_080D6F28: .4byte 0x0000fffe
-_080D6F2C: .4byte gSprites
-_080D6F30:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D7000
- movs r0, 0
- strh r0, [r5, 0xA]
- ldr r4, _080D6F88 @ =gSprites
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- 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]
- ldrh r1, [r5, 0x24]
- movs r2, 0x24
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080D6FD2
- ldrh r2, [r5, 0x22]
- adds r2, r1, r2
- strh r2, [r5, 0x24]
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x24]
- b _080D7000
- .align 2, 0
-_080D6F88: .4byte gSprites
-_080D6F8C:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D7000
- movs r0, 0
- strh r0, [r5, 0xA]
- ldr r1, _080D6FDC @ =gSprites
- movs r2, 0x26
- ldrsh r0, [r5, 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]
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _080D7000
-_080D6FD2:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080D7000
- .align 2, 0
-_080D6FDC: .4byte gSprites
-_080D6FE0:
- ldr r2, _080D7008 @ =gSprites
- movs r0, 0x26
- 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]
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_080D7000:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7008: .4byte gSprites
- thumb_func_end sub_80D6E9C
-
- thumb_func_start sub_80D700C
-sub_80D700C: @ 80D700C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D7030 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080D7026
- b _080D714C
-_080D7026:
- cmp r0, 0x1
- bgt _080D7034
- cmp r0, 0
- beq _080D703C
- b _080D718E
- .align 2, 0
-_080D7030: .4byte gTasks
-_080D7034:
- cmp r0, 0x2
- bne _080D703A
- b _080D7180
-_080D703A:
- b _080D718E
-_080D703C:
- ldr r4, _080D707C @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080D7052
- movs r1, 0x1
-_080D7052:
- movs r6, 0
- strh r1, [r5, 0xA]
- ldr r0, _080D7080 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r2, [r0, r1]
- adds r3, r0, 0
- cmp r2, 0
- beq _080D7088
- cmp r2, 0x4
- beq _080D70B0
- ldrh r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D70E8
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0xE]
- ldr r0, _080D7084 @ =0x0000fff0
- b _080D70F0
- .align 2, 0
-_080D707C: .4byte gBattleAnimBankAttacker
-_080D7080: .4byte gBattleAnimArgs
-_080D7084: .4byte 0x0000fff0
-_080D7088:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- lsls r0, 7
- adds r0, 0x78
- strh r0, [r5, 0x10]
- b _080D7126
-_080D70B0:
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r1, 7
- movs r0, 0x78
- subs r0, r1
- strh r0, [r5, 0xE]
- ldr r4, _080D70E4 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- lsls r1, 5
- subs r0, r1
- strh r0, [r5, 0x10]
- b _080D7126
- .align 2, 0
-_080D70E4: .4byte gBattleAnimBankTarget
-_080D70E8:
- ldr r0, _080D710C @ =0x0000fff0
- strh r0, [r5, 0xE]
- movs r0, 0x80
- lsls r0, 1
-_080D70F0:
- strh r0, [r5, 0x10]
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080D7110
- movs r2, 0
- ldrsh r0, [r3, r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- movs r0, 0x50
- subs r0, r1
- strh r0, [r5, 0x12]
- b _080D7126
- .align 2, 0
-_080D710C: .4byte 0x0000fff0
-_080D7110:
- movs r0, 0
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, 0x28
- strh r0, [r5, 0x12]
- ldrh r1, [r5, 0xE]
- ldrh r0, [r5, 0x10]
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
-_080D7126:
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bge _080D713C
- movs r1, 0
- movs r0, 0x1
- strh r0, [r5, 0xA]
- strh r1, [r5, 0x14]
- b _080D7178
-_080D713C:
- ldr r0, _080D7148 @ =0x0000ffff
- strh r0, [r5, 0xA]
- movs r0, 0x3
- strh r0, [r5, 0x14]
- b _080D7178
- .align 2, 0
-_080D7148: .4byte 0x0000ffff
-_080D714C:
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- cmp r0, 0
- ble _080D718E
- movs r0, 0
- strh r0, [r5, 0xC]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80D7194
- lsls r0, 24
- cmp r0, 0
- bne _080D7178
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80D7194
- lsls r0, 24
- cmp r0, 0
- beq _080D718E
-_080D7178:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080D718E
-_080D7180:
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D718E
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080D718E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D700C
-
- thumb_func_start sub_80D7194
-sub_80D7194: @ 80D7194
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080D7220 @ =gSpriteTemplate_83D9B10
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- movs r3, 0x12
- ldrsh r2, [r4, r3]
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080D71CA
- ldr r1, _080D7224 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- strh r5, [r0, 0x3A]
- movs r1, 0x7
- strh r1, [r0, 0x3C]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
-_080D71CA:
- ldrh r1, [r4, 0xA]
- ldrh r5, [r4, 0x14]
- adds r0, r1, r5
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bge _080D71DC
- movs r0, 0x3
- strh r0, [r4, 0x14]
-_080D71DC:
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- ble _080D71E8
- movs r0, 0
- strh r0, [r4, 0x14]
-_080D71E8:
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- lsls r0, 4
- ldrh r5, [r4, 0xE]
- adds r2, r0, r5
- strh r2, [r4, 0xE]
- lsls r0, r1, 16
- asrs r3, r0, 16
- cmp r3, 0x1
- bne _080D7208
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0x10
- ldrsh r1, [r4, r5]
- cmp r0, r1
- bge _080D721C
-_080D7208:
- movs r0, 0x1
- negs r0, r0
- cmp r3, r0
- bne _080D7228
- lsls r0, r2, 16
- asrs r0, 16
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bgt _080D7228
-_080D721C:
- movs r0, 0x1
- b _080D722A
- .align 2, 0
-_080D7220: .4byte gSpriteTemplate_83D9B10
-_080D7224: .4byte gSprites
-_080D7228:
- movs r0, 0
-_080D722A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80D7194
-
- thumb_func_start sub_80D7230
-sub_80D7230: @ 80D7230
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080D7270
- ldr r3, _080D7278 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080D7270:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7278: .4byte gTasks
- thumb_func_end sub_80D7230
-
- thumb_func_start sub_80D727C
-sub_80D727C: @ 80D727C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080D728E
- cmp r0, 0x1
- beq _080D72C0
- b _080D72D4
-_080D728E:
- ldr r4, _080D72BC @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080D72D4
- .align 2, 0
-_080D72BC: .4byte gBattleAnimBankAttacker
-_080D72C0:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D72D4
- adds r0, r5, 0
- bl move_anim_8074EE0
-_080D72D4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D727C
-
- thumb_func_start sub_80D72DC
-sub_80D72DC: @ 80D72DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D7300 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _080D72F6
- b _080D7468
-_080D72F6:
- lsls r0, 2
- ldr r1, _080D7304 @ =_080D7308
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D7300: .4byte gTasks
-_080D7304: .4byte _080D7308
- .align 2, 0
-_080D7308:
- .4byte _080D731C
- .4byte _080D73AC
- .4byte _080D73E8
- .4byte _080D7444
- .4byte _080D7454
-_080D731C:
- ldr r4, _080D73A0 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x16]
- movs r0, 0x4
- strh r0, [r5, 0x18]
- ldr r0, _080D73A4 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r5, r2]
- movs r2, 0x14
- ldrsh r1, [r5, r2]
- subs r0, r1
- movs r1, 0x5
- bl __divsi3
- strh r0, [r5, 0x1A]
- movs r0, 0x7
- strh r0, [r5, 0x10]
- ldr r0, _080D73A8 @ =0x0000ffff
- strh r0, [r5, 0x12]
- movs r0, 0xC
- strh r0, [r5, 0x1E]
- subs r0, 0x4C
- bl sub_8076F98
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0x20]
- movs r0, 0x3F
- bl sub_8076F98
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0x22]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x24]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- subs r0, r1
- movs r1, 0x3
- bl __divsi3
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- b _080D7466
- .align 2, 0
-_080D73A0: .4byte gBattleAnimBankAttacker
-_080D73A4: .4byte gBattleAnimBankTarget
-_080D73A8: .4byte 0x0000ffff
-_080D73AC:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- cmp r0, 0
- ble _080D73DC
- movs r0, 0
- strh r0, [r5, 0xA]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80D7470
- lsls r0, 24
- cmp r0, 0
- beq _080D73DC
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0x5
- bne _080D73D6
- movs r0, 0x3
- b _080D73DA
-_080D73D6:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
-_080D73DA:
- strh r0, [r5, 0x8]
-_080D73DC:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080D7468
- b _080D745E
-_080D73E8:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080D73F6
- subs r0, r1, 0x1
- strh r0, [r5, 0x1E]
-_080D73F6:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080D7468
- strh r3, [r5, 0xA]
- ldrh r1, [r5, 0xC]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080D7422
- movs r0, 0x4
- strh r0, [r5, 0x16]
- movs r0, 0x44
- strh r0, [r5, 0x18]
- strh r3, [r5, 0x10]
- strh r2, [r5, 0x12]
- b _080D7432
-_080D7422:
- movs r0, 0x44
- strh r0, [r5, 0x16]
- movs r0, 0x4
- strh r0, [r5, 0x18]
- movs r0, 0x7
- strh r0, [r5, 0x10]
- ldr r0, _080D7440 @ =0x0000ffff
- strh r0, [r5, 0x12]
-_080D7432:
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080D7464
- movs r0, 0x4
- b _080D7466
- .align 2, 0
-_080D7440: .4byte 0x0000ffff
-_080D7444:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D7468
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _080D7468
-_080D7454:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080D7464
-_080D745E:
- subs r0, r1, 0x1
- strh r0, [r5, 0x1E]
- b _080D7468
-_080D7464:
- movs r0, 0x1
-_080D7466:
- strh r0, [r5, 0x8]
-_080D7468:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D72DC
-
- thumb_func_start sub_80D7470
-sub_80D7470: @ 80D7470
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080D7538 @ =gSpriteTemplate_83D9B40
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- movs r3, 0x16
- ldrsh r2, [r4, r3]
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080D74DC
- ldr r1, _080D753C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- ldrh r6, [r4, 0x10]
- adds r1, r6
- ldr r6, _080D7540 @ =0x000003ff
- adds r0, r6, 0
- ands r1, r0
- ldr r0, _080D7544 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bge _080D74C4
- movs r0, 0x7
- strh r0, [r4, 0x10]
-_080D74C4:
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0x7
- ble _080D74D0
- movs r0, 0
- strh r0, [r4, 0x10]
-_080D74D0:
- strh r5, [r3, 0x3A]
- movs r0, 0x3
- strh r0, [r3, 0x3C]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
-_080D74DC:
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080D74FE
- movs r5, 0x12
- ldrsh r0, [r4, r5]
- cmp r0, 0
- ble _080D74FE
- ldrh r1, [r4, 0x26]
- ldrh r6, [r4, 0x24]
- adds r1, r6
- strh r1, [r4, 0x24]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x76
- bl PlaySE12WithPanning
-_080D74FE:
- movs r0, 0x12
- ldrsh r3, [r4, r0]
- ldrh r2, [r4, 0x16]
- cmp r3, 0
- bge _080D7514
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0x18
- ldrsh r1, [r4, r5]
- cmp r0, r1
- ble _080D7524
-_080D7514:
- cmp r3, 0
- ble _080D7548
- lsls r0, r2, 16
- asrs r0, 16
- movs r6, 0x18
- ldrsh r1, [r4, r6]
- cmp r0, r1
- blt _080D7548
-_080D7524:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x1A]
- ldrh r1, [r4, 0x14]
- adds r0, r1
- strh r0, [r4, 0x14]
- movs r0, 0x1
- b _080D7554
- .align 2, 0
-_080D7538: .4byte gSpriteTemplate_83D9B40
-_080D753C: .4byte gSprites
-_080D7540: .4byte 0x000003ff
-_080D7544: .4byte 0xfffffc00
-_080D7548:
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r0, r2, r0
- strh r0, [r4, 0x16]
- movs r0, 0
-_080D7554:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80D7470
-
- thumb_func_start sub_80D755C
-sub_80D755C: @ 80D755C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080D7592
- ldr r3, _080D7598 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080D7592:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7598: .4byte gTasks
- thumb_func_end sub_80D755C
-
- thumb_func_start sub_80D759C
-sub_80D759C: @ 80D759C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D75C0 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080D7618
- cmp r0, 0x1
- bgt _080D75C4
- cmp r0, 0
- beq _080D75CA
- b _080D764E
- .align 2, 0
-_080D75C0: .4byte gTasks
-_080D75C4:
- cmp r0, 0x2
- beq _080D7640
- b _080D764E
-_080D75CA:
- ldr r0, _080D7614 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r5, 0x26]
- strh r0, [r5, 0x24]
- cmp r0, 0x10
- ble _080D75F4
- adds r2, r0, 0
-_080D75E4:
- adds r1, r2, 0
- subs r1, 0x20
- adds r2, r1, 0
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x10
- bgt _080D75E4
- strh r1, [r5, 0x24]
-_080D75F4:
- ldr r4, _080D7614 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x2
- strh r0, [r5, 0x20]
- b _080D7638
- .align 2, 0
-_080D7614: .4byte gBattleAnimBankTarget
-_080D7618:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D764E
- movs r0, 0
- strh r0, [r5, 0xA]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80D7654
- lsls r0, 24
- cmp r0, 0
- beq _080D764E
-_080D7638:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080D764E
-_080D7640:
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D764E
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080D764E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D759C
-
- thumb_func_start sub_80D7654
-sub_80D7654: @ 80D7654
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080D76B0 @ =gBattleAnimSpriteTemplate_83D97D0
- movs r2, 0x22
- ldrsh r1, [r4, r2]
- movs r3, 0x24
- ldrsh r2, [r4, r3]
- ldrh r3, [r4, 0x20]
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080D7698
- ldr r3, _080D76B4 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _080D76B8 @ =sub_80D76C4
- str r2, [r1]
- adds r0, r3
- strh r5, [r0, 0x3A]
- movs r1, 0xA
- strh r1, [r0, 0x3C]
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
-_080D7698:
- ldrh r2, [r4, 0x24]
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080D76BC
- adds r0, r2, 0
- adds r0, 0x20
- strh r0, [r4, 0x24]
- movs r0, 0
- b _080D76BE
- .align 2, 0
-_080D76B0: .4byte gBattleAnimSpriteTemplate_83D97D0
-_080D76B4: .4byte gSprites
-_080D76B8: .4byte sub_80D76C4
-_080D76BC:
- movs r0, 0x1
-_080D76BE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80D7654
-
- thumb_func_start sub_80D76C4
-sub_80D76C4: @ 80D76C4
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D76F8
- ldr r3, _080D7700 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080D76F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7700: .4byte gTasks
- thumb_func_end sub_80D76C4
-
- thumb_func_start sub_80D7704
-sub_80D7704: @ 80D7704
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x7
- ldr r3, _080D780C @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D7810 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r4, _080D7814 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r4, _080D7818 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- str r3, [sp]
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080D781C @ =gBattleAnimArgs
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1]
- ldr r3, [sp]
- adds r0, r3
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x4]
- mov r4, r9
- adds r0, r4, r0
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x2]
- adds r0, r6
- strh r0, [r5, 0x34]
- ldrh r0, [r1, 0x6]
- mov r7, r8
- adds r0, r7, r0
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078314
- adds r4, 0x20
- movs r0, 0x98
- lsls r0, 1
- mov r12, r0
- ldr r3, [sp]
- cmp r4, r12
- bhi _080D77DE
- adds r0, r7, 0
- adds r0, 0x20
- ldrh r1, [r5, 0x30]
- ldrh r2, [r5, 0x32]
- cmp r0, 0xE0
- bhi _080D77DE
- adds r4, r1, 0
- mov r10, r12
-_080D77AA:
- mov r7, r9
- lsls r1, r7, 16
- asrs r1, 16
- adds r1, r4
- lsls r1, 16
- mov r7, r8
- lsls r0, r7, 16
- asrs r0, 16
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsrs r0, r1, 16
- mov r9, r0
- movs r7, 0x80
- lsls r7, 14
- adds r1, r7
- lsrs r1, 16
- cmp r1, r10
- bhi _080D77DE
- mov r1, r8
- lsls r0, r1, 16
- adds r0, r7
- lsrs r0, 16
- cmp r0, 0xE0
- bls _080D77AA
-_080D77DE:
- ldrh r0, [r5, 0x30]
- negs r7, r0
- strh r7, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- negs r4, r0
- strh r4, [r5, 0x32]
- lsls r0, r3, 16
- movs r1, 0x80
- lsls r1, 14
- adds r0, r1
- lsrs r0, 16
- movs r2, 0x98
- lsls r2, 1
- mov r12, r2
- ldr r1, _080D781C @ =gBattleAnimArgs
- mov r10, r1
- cmp r0, r12
- bhi _080D784A
- lsls r1, r6, 16
- movs r2, 0x80
- lsls r2, 14
- adds r0, r1, r2
- b _080D7842
- .align 2, 0
-_080D780C: .4byte 0x000003ff
-_080D7810: .4byte 0xfffffc00
-_080D7814: .4byte gBattleAnimBankTarget
-_080D7818: .4byte gBattleAnimBankAttacker
-_080D781C: .4byte gBattleAnimArgs
-_080D7820:
- lsls r1, r3, 16
- asrs r1, 16
- adds r1, r7
- lsls r1, 16
- asrs r0, r2, 16
- adds r0, r4
- lsls r0, 16
- lsrs r6, r0, 16
- lsrs r3, r1, 16
- movs r0, 0x80
- lsls r0, 14
- adds r1, r0
- lsrs r1, 16
- cmp r1, r12
- bhi _080D784A
- lsls r1, r6, 16
- adds r0, r1, r0
-_080D7842:
- lsrs r0, 16
- adds r2, r1, 0
- cmp r0, 0xE0
- bls _080D7820
-_080D784A:
- strh r3, [r5, 0x20]
- strh r6, [r5, 0x22]
- mov r1, r10
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- strh r3, [r5, 0x30]
- mov r2, r9
- strh r2, [r5, 0x32]
- strh r6, [r5, 0x34]
- mov r3, r8
- strh r3, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078314
- mov r7, r10
- ldrh r0, [r7, 0xA]
- strh r0, [r5, 0x34]
- ldrh r0, [r7, 0xC]
- strh r0, [r5, 0x36]
- ldr r0, _080D7884 @ =sub_80D7888
- str r0, [r5, 0x1C]
- 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
-_080D7884: .4byte sub_80D7888
- thumb_func_end sub_80D7704
-
- thumb_func_start sub_80D7888
-sub_80D7888: @ 80D7888
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D78E0
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x3A]
- adds r0, r2
- strh r0, [r4, 0x3A]
- strh r1, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D78E6
-_080D78E0:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D78E6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D7888
-
- thumb_func_start sub_80D78EC
-sub_80D78EC: @ 80D78EC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D7920 @ =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r4, 0x2E]
- movs r0, 0x3C
- strh r0, [r4, 0x30]
- movs r0, 0x9
- strh r0, [r4, 0x32]
- movs r0, 0x1E
- strh r0, [r4, 0x34]
- movs r0, 0xFE
- lsls r0, 8
- strh r0, [r4, 0x36]
- ldr r1, _080D7924 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, _080D7928 @ =sub_8078174
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7920: .4byte gBattleAnimArgs
-_080D7924: .4byte move_anim_8072740
-_080D7928: .4byte sub_8078174
- thumb_func_end sub_80D78EC
-
- thumb_func_start sub_80D792C
-sub_80D792C: @ 80D792C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080D7960 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldr r0, _080D7964 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D796C
- ldr r0, _080D7968 @ =gBattleAnimArgs
- ldrh r1, [r4, 0x32]
- ldrh r0, [r0, 0x4]
- subs r1, r0
- strh r1, [r4, 0x32]
- b _080D7976
- .align 2, 0
-_080D7960: .4byte gBattleAnimBankTarget
-_080D7964: .4byte gBattleAnimBankAttacker
-_080D7968: .4byte gBattleAnimArgs
-_080D796C:
- ldr r0, _080D79A4 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
-_080D7976:
- ldr r0, _080D79A8 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- ldr r1, _080D79A4 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r2, [r1, 0x6]
- adds r0, r2
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- ldr r1, _080D79AC @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080D79B0 @ =sub_8078B34
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D79A4: .4byte gBattleAnimArgs
-_080D79A8: .4byte gBattleAnimBankTarget
-_080D79AC: .4byte move_anim_8072740
-_080D79B0: .4byte sub_8078B34
- thumb_func_end sub_80D792C
-
- thumb_func_start sub_80D79B4
-sub_80D79B4: @ 80D79B4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D79CC @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D79D0
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- b _080D7A06
- .align 2, 0
-_080D79CC: .4byte gBattleAnimArgs
-_080D79D0:
- ldr r0, _080D7A18 @ =gBattleAnimBankTarget
- 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, _080D7A1C @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D79F6
- ldrh r0, [r5]
- negs r0, r0
- strh r0, [r5]
-_080D79F6:
- 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]
-_080D7A06:
- ldr r1, _080D7A20 @ =sub_80D7A28
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080D7A24 @ =sub_80785E4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7A18: .4byte gBattleAnimBankTarget
-_080D7A1C: .4byte gBattleAnimBankAttacker
-_080D7A20: .4byte sub_80D7A28
-_080D7A24: .4byte sub_80785E4
- thumb_func_end sub_80D79B4
-
- thumb_func_start sub_80D7A28
-sub_80D7A28: @ 80D7A28
- push {lr}
- adds r3, r0, 0
- 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, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080D7A5E
- adds r0, r3, 0
- bl move_anim_8074EE0
-_080D7A5E:
- pop {r0}
- bx r0
- thumb_func_end sub_80D7A28
-
- thumb_func_start sub_80D7A64
-sub_80D7A64: @ 80D7A64
- push {r4-r7,lr}
- sub sp, 0x10
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r6, _080D7AAC @ =gBattleAnimArgs
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D7AB4
- ldr r4, _080D7AB0 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- strh r0, [r5, 0x36]
- b _080D7AC6
- .align 2, 0
-_080D7AAC: .4byte gBattleAnimArgs
-_080D7AB0: .4byte gBattleAnimBankTarget
-_080D7AB4:
- ldr r0, _080D7AE0 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_807A3FC
-_080D7AC6:
- ldr r0, _080D7AE4 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D7AEC
- ldr r0, _080D7AE8 @ =gBattleAnimArgs
- ldrh r1, [r5, 0x32]
- ldrh r0, [r0, 0x4]
- subs r1, r0
- strh r1, [r5, 0x32]
- b _080D7AF6
- .align 2, 0
-_080D7AE0: .4byte gBattleAnimBankTarget
-_080D7AE4: .4byte gBattleAnimBankAttacker
-_080D7AE8: .4byte gBattleAnimArgs
-_080D7AEC:
- ldr r0, _080D7B94 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
-_080D7AF6:
- adds r7, r5, 0
- adds r7, 0x2E
- adds r2, r7, 0
- mov r1, sp
- movs r4, 0x7
-_080D7B00:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080D7B00
- adds r0, r5, 0
- bl sub_8078D60
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- eors r0, r1
- strh r0, [r5, 0x32]
-_080D7B22:
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_8078CE8
- movs r0, 0x20
- ldrsh r1, [r5, r0]
- movs r2, 0x24
- ldrsh r0, [r5, r2]
- adds r1, r0
- adds r1, 0x10
- movs r0, 0x88
- lsls r0, 1
- cmp r1, r0
- bhi _080D7B56
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080D7B56
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080D7B22
-_080D7B56:
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- ldr r6, _080D7B98 @ =sub_8078D8C
- ldr r1, _080D7B9C @ =sub_80D7BA0
- mov r3, sp
- adds r2, r7, 0
- movs r4, 0x7
-_080D7B76:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080D7B76
- str r6, [r5, 0x1C]
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7B94: .4byte gBattleAnimArgs
-_080D7B98: .4byte sub_8078D8C
-_080D7B9C: .4byte sub_80D7BA0
- thumb_func_end sub_80D7A64
-
- thumb_func_start sub_80D7BA0
-sub_80D7BA0: @ 80D7BA0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x24]
- movs r0, 0x80
- strh r0, [r4, 0x2E]
- ldr r0, _080D7BFC @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- ldr r1, _080D7C00 @ =0x0000ffec
- cmp r0, 0
- beq _080D7BD0
- movs r1, 0x14
-_080D7BD0:
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x34]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- strh r0, [r4, 0x36]
- strh r5, [r4, 0x38]
- ldr r1, _080D7C04 @ =sub_80D7C08
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7BFC: .4byte gBattleAnimBankAttacker
-_080D7C00: .4byte 0x0000ffec
-_080D7C04: .4byte sub_80D7C08
- thumb_func_end sub_80D7BA0
-
- thumb_func_start sub_80D7C08
-sub_80D7C08: @ 80D7C08
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D7C5C @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- ldr r1, _080D7C60 @ =0x0000ffec
- cmp r0, 0
- beq _080D7C1E
- movs r1, 0x14
-_080D7C1E:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0x1F
- bgt _080D7C64
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- lsls r1, 16
- asrs r1, 16
- bl Sin
- ldrh r1, [r4, 0x34]
- subs r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x36]
- subs r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x10
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _080D7C82
- .align 2, 0
-_080D7C5C: .4byte gBattleAnimBankAttacker
-_080D7C60: .4byte 0x0000ffec
-_080D7C64:
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x36]
- strh r1, [r4, 0x34]
- ldr r0, _080D7C88 @ =sub_80D7C8C
- str r0, [r4, 0x1C]
-_080D7C82:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7C88: .4byte sub_80D7C8C
- thumb_func_end sub_80D7C08
-
- thumb_func_start sub_80D7C8C
-sub_80D7C8C: @ 80D7C8C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_8078CE8
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080D7CC8
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r1, r0, r1
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bgt _080D7CC8
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080D7CCE
-_080D7CC8:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D7CCE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D7C8C
-
- thumb_func_start sub_80D7CD4
-sub_80D7CD4: @ 80D7CD4
- push {r4-r7,lr}
- sub sp, 0x10
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080D7D18 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080D7D20
- ldr r4, _080D7D1C @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- b _080D7D32
- .align 2, 0
-_080D7D18: .4byte gBattleAnimArgs
-_080D7D1C: .4byte gBattleAnimBankTarget
-_080D7D20:
- ldr r0, _080D7D50 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_807A3FC
-_080D7D32:
- ldr r0, _080D7D54 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D7D5C
- ldr r0, _080D7D58 @ =gBattleAnimArgs
- ldrh r1, [r5, 0x32]
- ldrh r2, [r0, 0x4]
- subs r1, r2
- strh r1, [r5, 0x32]
- adds r1, r0, 0
- b _080D7D66
- .align 2, 0
-_080D7D50: .4byte gBattleAnimBankTarget
-_080D7D54: .4byte gBattleAnimBankAttacker
-_080D7D58: .4byte gBattleAnimArgs
-_080D7D5C:
- ldr r1, _080D7E10 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
-_080D7D66:
- ldrh r0, [r1, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078D60
- adds r7, r5, 0
- adds r7, 0x2E
- adds r2, r7, 0
- mov r1, sp
- movs r4, 0x7
-_080D7D7E:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080D7D7E
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- eors r0, r1
- strh r0, [r5, 0x32]
-_080D7D9A:
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_8078CE8
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r2, 0x24
- ldrsh r0, [r5, r2]
- adds r1, r0
- adds r1, 0x10
- movs r0, 0x88
- lsls r0, 1
- cmp r1, r0
- bhi _080D7DCE
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080D7DCE
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080D7D9A
-_080D7DCE:
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- ldr r1, _080D7E10 @ =gBattleAnimArgs
- ldr r6, _080D7E14 @ =sub_80D7E18
- mov r3, sp
- adds r2, r7, 0
- movs r4, 0x7
-_080D7DEE:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080D7DEE
- ldrh r0, [r1, 0xA]
- strh r0, [r5, 0x38]
- ldrh r0, [r1, 0xC]
- strh r0, [r5, 0x3A]
- str r6, [r5, 0x1C]
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7E10: .4byte gBattleAnimArgs
-_080D7E14: .4byte sub_80D7E18
- thumb_func_end sub_80D7CD4
-
- thumb_func_start sub_80D7E18
-sub_80D7E18: @ 80D7E18
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078CE8
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D7E2C
- movs r0, 0x1
- strh r0, [r4, 0x2E]
-_080D7E2C:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080D7E82
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080D7E7C
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080D7E7C
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080D7E82
-_080D7E7C:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D7E82:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D7E18
-
- thumb_func_start sub_80D7E88
-sub_80D7E88: @ 80D7E88
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D7EF4
- ldr r5, _080D7EA8 @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D7EAC
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
- b _080D7EE2
- .align 2, 0
-_080D7EA8: .4byte gBattleAnimArgs
-_080D7EAC:
- ldr r0, _080D7EEC @ =gBattleAnimBankTarget
- 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, _080D7EF0 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D7ED2
- ldrh r0, [r5]
- negs r0, r0
- strh r0, [r5]
-_080D7ED2:
- 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]
-_080D7EE2:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D7F08
- .align 2, 0
-_080D7EEC: .4byte gBattleAnimBankTarget
-_080D7EF0: .4byte gBattleAnimBankAttacker
-_080D7EF4:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D7F08
- adds r0, r4, 0
- bl move_anim_8072740
-_080D7F08:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D7E88
-
- thumb_func_start sub_80D7F10
-sub_80D7F10: @ 80D7F10
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080D7F30 @ =gBattleAnimArgs
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D7F80
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D7F34
- adds r0, r5, 0
- movs r1, 0
- bl sub_80787B0
- b _080D7F72
- .align 2, 0
-_080D7F30: .4byte gBattleAnimArgs
-_080D7F34:
- ldr r4, _080D7F5C @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D7F60
- ldrh r0, [r5, 0x20]
- ldrh r1, [r6]
- subs r0, r1
- b _080D7F66
- .align 2, 0
-_080D7F5C: .4byte gBattleAnimBankAttacker
-_080D7F60:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080D7F66:
- strh r0, [r5, 0x20]
- ldr r0, _080D7F78 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
-_080D7F72:
- ldr r0, _080D7F7C @ =gBattleAnimBankAttacker
- b _080D7FD0
- .align 2, 0
-_080D7F78: .4byte gBattleAnimArgs
-_080D7F7C: .4byte gBattleAnimBankAttacker
-_080D7F80:
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D7F92
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078764
- b _080D7FCE
-_080D7F92:
- ldr r4, _080D7FB8 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D7FBC
- ldrh r0, [r5, 0x20]
- ldrh r1, [r6]
- subs r0, r1
- b _080D7FC2
- .align 2, 0
-_080D7FB8: .4byte gBattleAnimBankTarget
-_080D7FBC:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080D7FC2:
- strh r0, [r5, 0x20]
- ldr r0, _080D7FEC @ =gBattleAnimArgs
- ldrh r0, [r0, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
-_080D7FCE:
- ldr r0, _080D7FF0 @ =gBattleAnimBankTarget
-_080D7FD0:
- ldrb r0, [r0]
- strh r0, [r5, 0x3C]
- ldr r0, _080D7FEC @ =gBattleAnimArgs
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080D7FE8
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- bne _080D7FF4
-_080D7FE8:
- movs r0, 0x20
- b _080D7FF6
- .align 2, 0
-_080D7FEC: .4byte gBattleAnimArgs
-_080D7FF0: .4byte gBattleAnimBankTarget
-_080D7FF4:
- movs r0, 0x40
-_080D7FF6:
- strh r0, [r5, 0x3A]
- ldr r0, _080D803C @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080D800C
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
-_080D800C:
- ldr r1, _080D8040 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrh r1, [r1, 0x4]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x40
- strh r0, [r5, 0x38]
- ldr r1, _080D8044 @ =sub_80D8048
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D803C: .4byte gBattleAnimBankTarget
-_080D8040: .4byte gBattleAnimArgs
-_080D8044: .4byte sub_80D8048
- thumb_func_end sub_80D7F10
-
- thumb_func_start sub_80D8048
-sub_80D8048: @ 80D8048
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080D80D2
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r1, 0x6
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080D80A4
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- 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 _080D80C6
-_080D80A4:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- 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]
-_080D80C6:
- ldrh r0, [r4, 0x38]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080D80D8
-_080D80D2:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D80D8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D8048
-
- thumb_func_start sub_80D80E0
-sub_80D80E0: @ 80D80E0
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D81A8 @ =REG_BLDCNT
- ldr r2, _080D81AC @ =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, _080D81B0 @ =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 _080D812A
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080D812A:
- ldr r0, _080D81B4 @ =gUnknown_030042C0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080D81B8 @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _080D81BC @ =REG_BG1HOFS
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D81C0 @ =0x040000d4
- add r2, sp, 0xC
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r2, _080D81C4 @ =0x85000400
- str r2, [r0, 0x8]
- ldr r2, [r0, 0x8]
- ldr r2, _080D81C8 @ =gWeatherFog1Tiles
- ldr r3, [sp]
- str r2, [r0]
- str r3, [r0, 0x4]
- ldr r2, _080D81CC @ =0x80000400
- str r2, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _080D81D0 @ =gWeatherFog1Tilemap
- bl LZDecompressVram
- ldr r0, _080D81D4 @ =gUnknown_083970E8
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080D8190
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080D8190:
- ldr r0, _080D81D8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080D81DC @ =sub_80D81E0
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D81A8: .4byte REG_BLDCNT
-_080D81AC: .4byte 0x00003f42
-_080D81B0: .4byte REG_BG1CNT
-_080D81B4: .4byte gUnknown_030042C0
-_080D81B8: .4byte gUnknown_030041B4
-_080D81BC: .4byte REG_BG1HOFS
-_080D81C0: .4byte 0x040000d4
-_080D81C4: .4byte 0x85000400
-_080D81C8: .4byte gWeatherFog1Tiles
-_080D81CC: .4byte 0x80000400
-_080D81D0: .4byte gWeatherFog1Tilemap
-_080D81D4: .4byte gUnknown_083970E8
-_080D81D8: .4byte gTasks
-_080D81DC: .4byte sub_80D81E0
- thumb_func_end sub_80D80E0
-
- thumb_func_start sub_80D81E0
-sub_80D81E0: @ 80D81E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _080D8220 @ =gUnknown_030042C0
- ldr r1, _080D8224 @ =0x0000ffff
- adds r0, r1, 0
- ldrh r4, [r2]
- adds r0, r4
- strh r0, [r2]
- ldr r1, _080D8228 @ =gUnknown_030041B4
- ldr r3, _080D822C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r3
- movs r4, 0x20
- ldrsh r0, [r0, r4]
- adds r4, r1, 0
- cmp r0, 0x4
- bls _080D8214
- b _080D83B0
-_080D8214:
- lsls r0, 2
- ldr r1, _080D8230 @ =_080D8234
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D8220: .4byte gUnknown_030042C0
-_080D8224: .4byte 0x0000ffff
-_080D8228: .4byte gUnknown_030041B4
-_080D822C: .4byte gTasks
-_080D8230: .4byte _080D8234
- .align 2, 0
-_080D8234:
- .4byte _080D8248
- .4byte _080D82A0
- .4byte _080D82C2
- .4byte _080D8304
- .4byte _080D838C
-_080D8248:
- lsls r0, r6, 2
- adds r0, r6
- 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 _080D8262
- b _080D83B0
-_080D8262:
- strh r4, [r3, 0x1C]
- ldrh r0, [r3, 0x1A]
- adds r0, 0x1
- strh r0, [r3, 0x1A]
- ldr r1, _080D8298 @ =gUnknown_083D9D6C
- movs r2, 0x1A
- ldrsh r0, [r3, r2]
- adds r0, r1
- ldrb r1, [r0]
- strh r1, [r3, 0x1E]
- ldr r2, _080D829C @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x1E
- ldrsh r0, [r3, r1]
- cmp r0, 0x9
- beq _080D828C
- b _080D83B0
-_080D828C:
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r4, [r3, 0x1E]
- b _080D83B0
- .align 2, 0
-_080D8298: .4byte gUnknown_083D9D6C
-_080D829C: .4byte REG_BLDALPHA
-_080D82A0:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r3
- ldrh r0, [r3, 0x1E]
- adds r0, 0x1
- strh r0, [r3, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x51
- bne _080D83B0
- movs r0, 0x9
- strh r0, [r3, 0x1E]
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- b _080D83B0
-_080D82C2:
- lsls r0, r6, 2
- adds r0, r6
- 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 _080D83B0
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- subs r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080D8300 @ =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 _080D83B0
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r1, [r3, 0x1E]
- b _080D83B0
- .align 2, 0
-_080D8300: .4byte REG_BLDALPHA
-_080D8304:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- lsls r4, r6, 2
- mov r10, r4
- add r5, sp, 0xC
- movs r7, 0
- ldr r1, _080D83C0 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r8, r5
- ldr r0, _080D83C4 @ =0x85000400
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D832A:
- str r7, [sp, 0xC]
- mov r0, r8
- 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 _080D832A
- str r7, [sp, 0xC]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D83C0 @ =0x040000d4
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D83C8 @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080D8378
- ldr r2, _080D83CC @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D8378:
- ldr r0, _080D83D0 @ =gTasks
- mov r4, r10
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldr r2, _080D83D4 @ =gUnknown_030042C0
- ldr r4, _080D83D8 @ =gUnknown_030041B4
-_080D838C:
- movs r1, 0
- strh r1, [r2]
- strh r1, [r4]
- ldr r0, _080D83DC @ =REG_BLDCNT
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _080D83CC @ =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, r6, 0
- bl DestroyAnimVisualTask
-_080D83B0:
- 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
-_080D83C0: .4byte 0x040000d4
-_080D83C4: .4byte 0x85000400
-_080D83C8: .4byte 0x85000200
-_080D83CC: .4byte REG_BG1CNT
-_080D83D0: .4byte gTasks
-_080D83D4: .4byte gUnknown_030042C0
-_080D83D8: .4byte gUnknown_030041B4
-_080D83DC: .4byte REG_BLDCNT
- thumb_func_end sub_80D81E0
-
- thumb_func_start sub_80D83E0
-sub_80D83E0: @ 80D83E0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D840C @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r0, _080D8410 @ =sub_807941C
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D840C: .4byte gBattleAnimBankAttacker
-_080D8410: .4byte sub_807941C
- thumb_func_end sub_80D83E0
-
- thumb_func_start sub_80D8414
-sub_80D8414: @ 80D8414
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D84E0 @ =REG_BLDCNT
- ldr r2, _080D84E4 @ =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, _080D84E8 @ =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 _080D845E
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080D845E:
- ldr r0, _080D84EC @ =gUnknown_030042C0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080D84F0 @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _080D84F4 @ =REG_BG1HOFS
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D84F8 @ =0x040000d4
- add r2, sp, 0xC
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r2, _080D84FC @ =0x85000400
- str r2, [r0, 0x8]
- ldr r2, [r0, 0x8]
- ldr r2, _080D8500 @ =gWeatherFog1Tiles
- ldr r3, [sp]
- str r2, [r0]
- str r3, [r0, 0x4]
- ldr r2, _080D8504 @ =0x80000400
- str r2, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _080D8508 @ =gWeatherFog1Tilemap
- bl LZDecompressVram
- ldr r0, _080D850C @ =gUnknown_083970E8
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080D84C4
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080D84C4:
- ldr r1, _080D8510 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080D8514 @ =0x0000ffff
- strh r1, [r0, 0x26]
- ldr r1, _080D8518 @ =sub_80D851C
- str r1, [r0]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D84E0: .4byte REG_BLDCNT
-_080D84E4: .4byte 0x00003f42
-_080D84E8: .4byte REG_BG1CNT
-_080D84EC: .4byte gUnknown_030042C0
-_080D84F0: .4byte gUnknown_030041B4
-_080D84F4: .4byte REG_BG1HOFS
-_080D84F8: .4byte 0x040000d4
-_080D84FC: .4byte 0x85000400
-_080D8500: .4byte gWeatherFog1Tiles
-_080D8504: .4byte 0x80000400
-_080D8508: .4byte gWeatherFog1Tilemap
-_080D850C: .4byte gUnknown_083970E8
-_080D8510: .4byte gTasks
-_080D8514: .4byte 0x0000ffff
-_080D8518: .4byte sub_80D851C
- thumb_func_end sub_80D8414
-
- thumb_func_start sub_80D851C
-sub_80D851C: @ 80D851C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, _080D8558 @ =gUnknown_030042C0
- ldr r4, _080D855C @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r4
- ldrh r0, [r1, 0x26]
- ldrh r2, [r3]
- adds r0, r2
- strh r0, [r3]
- ldr r2, _080D8560 @ =gUnknown_030041B4
- movs r5, 0x20
- ldrsh r0, [r1, r5]
- cmp r0, 0x4
- bls _080D854C
- b _080D86D0
-_080D854C:
- lsls r0, 2
- ldr r1, _080D8564 @ =_080D8568
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D8558: .4byte gUnknown_030042C0
-_080D855C: .4byte gTasks
-_080D8560: .4byte gUnknown_030041B4
-_080D8564: .4byte _080D8568
- .align 2, 0
-_080D8568:
- .4byte _080D857C
- .4byte _080D85C0
- .4byte _080D85E2
- .4byte _080D8624
- .4byte _080D86AC
-_080D857C:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r1, _080D85B8 @ =gUnknown_083D9D98
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r1, [r0]
- strh r1, [r4, 0x1E]
- ldr r2, _080D85BC @ =REG_BLDALPHA
- movs r0, 0x11
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r5, 0x1E
- ldrsh r0, [r4, r5]
- cmp r0, 0x5
- beq _080D85AC
- b _080D86D0
-_080D85AC:
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0x1E]
- b _080D86D0
- .align 2, 0
-_080D85B8: .4byte gUnknown_083D9D98
-_080D85BC: .4byte REG_BLDALPHA
-_080D85C0:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r1, r0, r4
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x51
- bne _080D86D0
- movs r0, 0x5
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080D86D0
-_080D85E2:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080D86D0
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- subs r1, 0x1
- strh r1, [r4, 0x1E]
- ldr r2, _080D8620 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r0, 0x1E
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _080D86D0
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _080D86D0
- .align 2, 0
-_080D8620: .4byte REG_BLDALPHA
-_080D8624:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- lsls r1, r6, 2
- mov r10, r1
- add r5, sp, 0xC
- movs r7, 0
- ldr r1, _080D86E0 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r8, r5
- ldr r0, _080D86E4 @ =0x85000400
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D864A:
- str r7, [sp, 0xC]
- mov r0, r8
- 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 _080D864A
- str r7, [sp, 0xC]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D86E0 @ =0x040000d4
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D86E8 @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080D8698
- ldr r2, _080D86EC @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D8698:
- ldr r0, _080D86F0 @ =gTasks
- mov r5, r10
- adds r1, r5, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldr r3, _080D86F4 @ =gUnknown_030042C0
- ldr r2, _080D86F8 @ =gUnknown_030041B4
-_080D86AC:
- movs r1, 0
- strh r1, [r3]
- strh r1, [r2]
- ldr r0, _080D86FC @ =REG_BLDCNT
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _080D86EC @ =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, r6, 0
- bl DestroyAnimVisualTask
-_080D86D0:
- 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
-_080D86E0: .4byte 0x040000d4
-_080D86E4: .4byte 0x85000400
-_080D86E8: .4byte 0x85000200
-_080D86EC: .4byte REG_BG1CNT
-_080D86F0: .4byte gTasks
-_080D86F4: .4byte gUnknown_030042C0
-_080D86F8: .4byte gUnknown_030041B4
-_080D86FC: .4byte REG_BLDCNT
- thumb_func_end sub_80D851C
-
- thumb_func_start sub_80D8700
-sub_80D8700: @ 80D8700
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- ldr r6, _080D87E8 @ =gBattleAnimArgs
- ldrh r0, [r6]
- strh r0, [r5, 0x2E]
- ldr r0, _080D87EC @ =gBattleAnimBankAttacker
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- ldr r7, _080D87F0 @ =gBattleAnimBankTarget
- ldrb r0, [r7]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bcs _080D8734
- movs r0, 0x80
- lsls r0, 8
- strh r0, [r5, 0x3C]
-_080D8734:
- ldr r3, _080D87F4 @ =gBanksBySide
- ldrb r0, [r7]
- adds r0, r3
- ldrb r1, [r0]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080D8794
- ldrh r0, [r6, 0x2]
- negs r0, r0
- strh r0, [r6, 0x2]
- ldrh r0, [r6, 0x6]
- negs r0, r0
- strh r0, [r6, 0x6]
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080D8790
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080D8790
- movs r0, 0x1
- bl GetAnimBankSpriteId
- ldr r2, _080D87F8 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0x1
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
-_080D8790:
- movs r0, 0x1
- strh r0, [r5, 0x3A]
-_080D8794:
- ldr r4, _080D87EC @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r6, _080D87E8 @ =gBattleAnimArgs
- movs r1, 0xE
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080D87FC
- ldrh r0, [r6, 0x2]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x30]
- ldr r4, _080D87F0 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x6]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r6, 0x4]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- b _080D8824
- .align 2, 0
-_080D87E8: .4byte gBattleAnimArgs
-_080D87EC: .4byte gBattleAnimBankAttacker
-_080D87F0: .4byte gBattleAnimBankTarget
-_080D87F4: .4byte gBanksBySide
-_080D87F8: .4byte gSprites
-_080D87FC:
- ldrh r0, [r6, 0x2]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x30]
- ldr r4, _080D886C @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x6]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r6, 0x4]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x1
-_080D8824:
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x8]
- adds r0, r6
- strh r0, [r5, 0x36]
- ldrb r0, [r4]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 16
- ldrh r1, [r5, 0x3C]
- orrs r0, r1
- strh r0, [r5, 0x3C]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080D8858
- movs r0, 0x1
- strh r0, [r5, 0x3A]
- adds r1, r5, 0
- adds r1, 0x43
- movs r0, 0x80
- strb r0, [r1]
-_080D8858:
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080D8870 @ =sub_80D8874
- str r0, [r5, 0x1C]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D886C: .4byte gBattleAnimBankTarget
-_080D8870: .4byte sub_80D8874
- thumb_func_end sub_80D8700
-
- thumb_func_start sub_80D8874
-sub_80D8874: @ 80D8874
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- movs r5, 0xFF
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0x1
- beq _080D8968
- cmp r1, 0x1
- bgt _080D888E
- cmp r1, 0
- beq _080D8896
- b _080D8AD0
-_080D888E:
- cmp r1, 0x2
- bne _080D8894
- b _080D8A94
-_080D8894:
- b _080D8AD0
-_080D8896:
- adds r0, r4, 0
- bl sub_8078B5C
- ldr r1, _080D88C0 @ =gSineTable
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- asrs r0, 4
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D88C4
- ldrh r0, [r4, 0x38]
- subs r0, 0x8
- b _080D88C8
- .align 2, 0
-_080D88C0: .4byte gSineTable
-_080D88C4:
- ldrh r0, [r4, 0x38]
- adds r0, 0x8
-_080D88C8:
- ands r0, r5
- strh r0, [r4, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080D88D6
- b _080D8AD0
-_080D88D6:
- movs r5, 0x50
- strh r5, [r4, 0x2E]
- ldr r6, _080D8928 @ =gBattleAnimBankTarget
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, 0x1D
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- ldr r0, _080D892C @ =gMain
- ldr r2, _080D8930 @ =0x0000043d
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D8938
- ldr r1, _080D8934 @ =gBanksBySide
- ldrb r0, [r6]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D8938
- movs r0, 0xCC
- strh r0, [r4, 0x38]
- b _080D893A
- .align 2, 0
-_080D8928: .4byte gBattleAnimBankTarget
-_080D892C: .4byte gMain
-_080D8930: .4byte 0x0000043d
-_080D8934: .4byte gBanksBySide
-_080D8938:
- strh r5, [r4, 0x38]
-_080D893A:
- movs r0, 0
- strh r0, [r4, 0x26]
- ldr r1, _080D8964 @ =gSineTable
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- asrs r0, 3
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x38]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- b _080D8AD0
- .align 2, 0
-_080D8964: .4byte gSineTable
-_080D8968:
- adds r0, r4, 0
- bl sub_8078B5C
- ldr r1, _080D89C8 @ =gSineTable
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- asrs r0, 3
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- adds r0, 0x40
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 1
- adds r0, r1
- negs r0, r0
- asrs r0, 8
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldr r0, _080D89CC @ =gMain
- ldr r2, _080D89D0 @ =0x0000043d
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D89F2
- ldrh r1, [r4, 0x38]
- adds r0, r1, 0
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- adds r3, r1, 0
- cmp r0, 0x7F
- bhi _080D89D4
- ldrh r1, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 24
- b _080D89DC
- .align 2, 0
-_080D89C8: .4byte gSineTable
-_080D89CC: .4byte gMain
-_080D89D0: .4byte 0x0000043d
-_080D89D4:
- ldrh r1, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 24
- adds r1, 0x1
-_080D89DC:
- movs r0, 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]
- adds r0, r3, 0x4
- b _080D8A12
-_080D89F2:
- ldrh r0, [r4, 0x38]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080D8A06
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x80
- b _080D8A0C
-_080D8A06:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x8C
-_080D8A0C:
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- subs r0, 0x4
-_080D8A12:
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bgt _080D8AD0
- movs r2, 0
- movs r0, 0xC0
- lsls r0, 2
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, 0x4
- strh r0, [r4, 0x36]
- ldr r0, _080D8A68 @ =gMain
- ldr r1, _080D8A6C @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D8A78
- ldr r1, _080D8A70 @ =gBanksBySide
- ldr r0, _080D8A74 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D8A78
- movs r0, 0x80
- lsls r0, 1
- b _080D8A7A
- .align 2, 0
-_080D8A68: .4byte gMain
-_080D8A6C: .4byte 0x0000043d
-_080D8A70: .4byte gBanksBySide
-_080D8A74: .4byte gBattleAnimBankTarget
-_080D8A78:
- ldr r0, _080D8A90 @ =0x0000fff0
-_080D8A7A:
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x3C]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- adds r0, r4, 0
- bl sub_8078BD4
- b _080D8AD0
- .align 2, 0
-_080D8A90: .4byte 0x0000fff0
-_080D8A94:
- adds r0, r4, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D8AD0
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D8AC2
- 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]
-_080D8AC2:
- adds r0, r4, 0
- bl DestroySprite
- ldr r1, _080D8AD8 @ =gAnimVisualTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_080D8AD0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8AD8: .4byte gAnimVisualTaskCount
- thumb_func_end sub_80D8874
-
- thumb_func_start sub_80D8ADC
-sub_80D8ADC: @ 80D8ADC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D8AF0 @ =gTasks
- adds r1, r0
- ldr r0, _080D8AF4 @ =sub_80D8AF8
- str r0, [r1]
- bx lr
- .align 2, 0
-_080D8AF0: .4byte gTasks
-_080D8AF4: .4byte sub_80D8AF8
- thumb_func_end sub_80D8ADC
-
- thumb_func_start sub_80D8AF8
-sub_80D8AF8: @ 80D8AF8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D8B1C @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080D8B3C
- cmp r5, 0x1
- bgt _080D8B20
- cmp r5, 0
- beq _080D8B26
- b _080D8BA0
- .align 2, 0
-_080D8B1C: .4byte gTasks
-_080D8B20:
- cmp r5, 0x2
- beq _080D8B92
- b _080D8BA0
-_080D8B26:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080D8BA0
- strh r5, [r4, 0x10]
- strh r5, [r4, 0x12]
- strh r5, [r4, 0xC]
- b _080D8B78
-_080D8B3C:
- ldrh r1, [r4, 0x12]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080D8B8C
- ldrb r0, [r4, 0xE]
- ldrb r1, [r4, 0xC]
- movs r3, 0x1
- bl sub_80D8BA8
- lsls r0, 24
- cmp r0, 0
- beq _080D8B5C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
-_080D8B5C:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080D8B88
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080D8B80
-_080D8B78:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D8BA0
-_080D8B80:
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
- b _080D8BA0
-_080D8B88:
- strh r5, [r4, 0x12]
- b _080D8BA0
-_080D8B8C:
- subs r0, r1, 0x1
- strh r0, [r4, 0x12]
- b _080D8BA0
-_080D8B92:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D8BA0
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080D8BA0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D8AF8
-
- thumb_func_start sub_80D8BA8
-sub_80D8BA8: @ 80D8BA8
- 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 r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r1, _080D8C20 @ =gUnknown_083D9DC4
- lsrs r0, 22
- adds r4, r0, r1
- ldrb r0, [r4, 0x3]
- lsls r0, 24
- asrs r0, 28
- mov r8, r0
- cmp r0, 0x2
- beq _080D8C94
- ldrh r0, [r4, 0x2]
- lsls r0, 20
- lsrs r0, 24
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080D8C94
- movs r0, 0x1
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- mov r1, r8
- cmp r1, 0
- beq _080D8C24
- cmp r1, 0x1
- beq _080D8C5A
- b _080D8CA6
- .align 2, 0
-_080D8C20: .4byte gUnknown_083D9DC4
-_080D8C24:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r0
- lsls r1, 16
- lsrs r7, r1, 16
- adds r0, r5, 0
- movs r1, 0
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r6, 16
- asrs r1, 16
- subs r1, r0
- b _080D8C8E
-_080D8C5A:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r7, 16
- asrs r1, 16
- adds r1, r0
- lsls r1, 16
- lsrs r7, r1, 16
- adds r0, r5, 0
- movs r1, 0
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r6, 16
- asrs r1, 16
- adds r1, r0
-_080D8C8E:
- lsls r1, 16
- lsrs r6, r1, 16
- b _080D8CA6
-_080D8C94:
- ldrh r0, [r4]
- lsls r0, 22
- asrs r0, 6
- lsrs r7, r0, 16
- ldr r0, [r4]
- lsls r0, 12
- asrs r0, 22
- lsls r0, 16
- lsrs r6, r0, 16
-_080D8CA6:
- lsls r0, r6, 16
- asrs r0, 16
- adds r0, 0x8
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r0
- ldr r0, _080D8D00 @ =gSpriteTemplate_83D9E3C
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x8
- negs r2, r2
- movs r3, 0x12
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _080D8D08
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r0, _080D8D04 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- mov r1, r9
- bl StartSpriteAffineAnim
- mov r0, sp
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- strh r7, [r4, 0x34]
- strh r6, [r4, 0x36]
- mov r1, r9
- strh r1, [r4, 0x38]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x3A]
- mov r1, r10
- strh r1, [r4, 0x3C]
- movs r0, 0x1
- b _080D8D0A
- .align 2, 0
-_080D8D00: .4byte gSpriteTemplate_83D9E3C
-_080D8D04: .4byte gSprites
-_080D8D08:
- movs r0, 0
-_080D8D0A:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80D8BA8
-
- thumb_func_start sub_80D8D1C
-sub_80D8D1C: @ 80D8D1C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- adds r0, 0x4
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r2, r1, 0
- adds r2, 0x8
- strh r2, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _080D8D46
- lsls r0, r2, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080D8DF6
-_080D8D46:
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _080D8DC8
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D8DC8
- ldr r0, _080D8DBC @ =gBattleAnimSpriteTemplate_83D9C78
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- movs r3, 0x36
- ldrsh r2, [r4, r3]
- adds r3, r4, 0
- adds r3, 0x43
- ldrb r3, [r3]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- cmp r0, 0x40
- beq _080D8DAA
- ldr r2, _080D8DC0 @ =gSprites
- movs r0, 0x2E
- 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, _080D8DC4 @ =sub_80D8E00
- str r1, [r0]
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x3A]
- strh r1, [r0, 0x3A]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x3C]
- strh r1, [r0, 0x3C]
-_080D8DAA:
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- b _080D8DF6
- .align 2, 0
-_080D8DBC: .4byte gBattleAnimSpriteTemplate_83D9C78
-_080D8DC0: .4byte gSprites
-_080D8DC4: .4byte sub_80D8E00
-_080D8DC8:
- ldr r3, _080D8DFC @ =gTasks
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080D8DF6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8DFC: .4byte gTasks
- thumb_func_end sub_80D8D1C
-
- thumb_func_start sub_80D8E00
-sub_80D8E00: @ 80D8E00
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080D8E40
- ldr r3, _080D8E48 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080D8E40:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8E48: .4byte gTasks
- thumb_func_end sub_80D8E00
-
- thumb_func_start unc_080B06FC
-unc_080B06FC: @ 80D8E4C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080D8ECC @ =gDisableStructMoveAnim
- ldr r0, [r0]
- ldrb r1, [r0, 0x11]
- lsrs r0, r1, 4
- lsls r1, 28
- lsrs r1, 28
- subs r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080D8E6A
- movs r1, 0x4
-_080D8E6A:
- adds r0, r5, 0
- bl StartSpriteAffineAnim
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r6, _080D8ED0 @ =gBattleAnimArgs
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- ldr r0, _080D8ED4 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D8E92
- ldrh r0, [r6, 0x4]
- negs r0, r0
- strh r0, [r6, 0x4]
-_080D8E92:
- ldr r4, _080D8ED8 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldrh r0, [r6, 0xA]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80786EC
- ldr r0, _080D8EDC @ =sub_80D8EE0
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8ECC: .4byte gDisableStructMoveAnim
-_080D8ED0: .4byte gBattleAnimArgs
-_080D8ED4: .4byte gBattleAnimBankAttacker
-_080D8ED8: .4byte gBattleAnimBankTarget
-_080D8EDC: .4byte sub_80D8EE0
- thumb_func_end unc_080B06FC
-
- thumb_func_start sub_80D8EE0
-sub_80D8EE0: @ 80D8EE0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080D8F02
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _080D8F08 @ =sub_8078600
- str r0, [r4, 0x1C]
- ldr r1, _080D8F0C @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
-_080D8F02:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8F08: .4byte sub_8078600
-_080D8F0C: .4byte move_anim_8072740
- thumb_func_end sub_80D8EE0
-
- thumb_func_start sub_80D8F10
-sub_80D8F10: @ 80D8F10
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r3, _080D8F64 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D8F68 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- bl Random
- movs r5, 0xFF
- ands r5, r0
- movs r0, 0x80
- lsls r0, 1
- adds r6, r0, 0
- orrs r5, r6
- bl Random
- ldr r1, _080D8F6C @ =0x000001ff
- ands r1, r0
- adds r0, r1, 0
- cmp r0, 0xFF
- ble _080D8F56
- subs r0, r6, r0
- lsls r0, 16
- lsrs r1, r0, 16
-_080D8F56:
- strh r5, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldr r0, _080D8F70 @ =sub_80D8F74
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8F64: .4byte 0x000003ff
-_080D8F68: .4byte 0xfffffc00
-_080D8F6C: .4byte 0x000001ff
-_080D8F70: .4byte sub_80D8F74
- thumb_func_end sub_80D8F10
-
- thumb_func_start sub_80D8F74
-sub_80D8F74: @ 80D8F74
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x34]
- adds r3, r0, r1
- strh r3, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- ldrh r4, [r2, 0x36]
- adds r1, r4
- strh r1, [r2, 0x36]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080D8F98
- lsls r0, r3, 16
- asrs r0, 24
- negs r0, r0
- b _080D8F9C
-_080D8F98:
- lsls r0, r3, 16
- asrs r0, 24
-_080D8F9C:
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080D8FBA
- adds r0, r2, 0
- bl move_anim_8072740
-_080D8FBA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D8F74
-
- thumb_func_start sub_80D8FC0
-sub_80D8FC0: @ 80D8FC0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080D8FE8 @ =gBattleAnimArgs
- ldrb r3, [r1]
- lsls r3, 1
- adds r3, r1
- ldr r1, _080D8FEC @ =gDisableStructMoveAnim
- ldr r1, [r1]
- ldrb r1, [r1, 0x11]
- lsrs r2, r1, 4
- lsls r1, 28
- lsrs r1, 28
- subs r2, r1
- subs r2, 0x1
- strh r2, [r3]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080D8FE8: .4byte gBattleAnimArgs
-_080D8FEC: .4byte gDisableStructMoveAnim
- thumb_func_end sub_80D8FC0
-
- thumb_func_start unc_080B08A0
-unc_080B08A0: @ 80D8FF0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D9020 @ =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_807867C
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0xF
- strh r0, [r4, 0x2E]
- ldr r0, _080D9024 @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _080D9028 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9020: .4byte gBattleAnimArgs
-_080D9024: .4byte sub_80782D8
-_080D9028: .4byte move_anim_8072740
- thumb_func_end unc_080B08A0
-
- thumb_func_start sub_80D902C
-sub_80D902C: @ 80D902C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D9070 @ =gBattleAnimArgs
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080D9054
- ldr r0, _080D9074 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D9054
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x6]
- negs r0, r0
- strh r0, [r4, 0x6]
-_080D9054:
- ldr r4, _080D9070 @ =gBattleAnimArgs
- ldrb r1, [r4, 0xC]
- adds r0, r5, 0
- bl StartSpriteAnim
- movs r0, 0
- strh r0, [r4, 0xC]
- adds r0, r5, 0
- bl sub_8079534
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9070: .4byte gBattleAnimArgs
-_080D9074: .4byte gBattleAnimBankAttacker
- thumb_func_end sub_80D902C
-
- thumb_func_start sub_80D9078
-sub_80D9078: @ 80D9078
- push {r4,lr}
- adds r4, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080D9094
- ldr r0, _080D90A0 @ =gBattleAnimArgs
- ldrh r1, [r0, 0x2]
- negs r1, r1
- strh r1, [r0, 0x2]
- ldrh r1, [r0, 0x6]
- negs r1, r1
- strh r1, [r0, 0x6]
-_080D9094:
- adds r0, r4, 0
- bl sub_80D902C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D90A0: .4byte gBattleAnimArgs
- thumb_func_end sub_80D9078
-
- thumb_func_start sub_80D90A4
-sub_80D90A4: @ 80D90A4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D90C4 @ =gBattleAnimArgs
- ldrb r1, [r4, 0x8]
- bl StartSpriteAnim
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D90C8
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- b _080D90D0
- .align 2, 0
-_080D90C4: .4byte gBattleAnimArgs
-_080D90C8:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8078764
-_080D90D0:
- ldr r0, _080D90E8 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, _080D90EC @ =sub_80782D8
- str r0, [r5, 0x1C]
- ldr r1, _080D90F0 @ =move_anim_8072740
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D90E8: .4byte gBattleAnimArgs
-_080D90EC: .4byte sub_80782D8
-_080D90F0: .4byte move_anim_8072740
- thumb_func_end sub_80D90A4
-
- thumb_func_start sub_80D90F4
-sub_80D90F4: @ 80D90F4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- ldr r0, _080D9110 @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r9, r0
- cmp r1, 0
- bne _080D9118
- ldr r0, _080D9114 @ =gBattleAnimBankAttacker
- b _080D911A
- .align 2, 0
-_080D9110: .4byte gBattleAnimArgs
-_080D9114: .4byte gBattleAnimBankAttacker
-_080D9118:
- ldr r0, _080D9260 @ =gBattleAnimBankTarget
-_080D911A:
- ldrb r0, [r0]
- mov r8, r0
- mov r4, r9
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _080D9138
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- strh r0, [r4, 0x4]
-_080D9138:
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAnim
- mov r0, r8
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- mov r0, r8
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- mov r0, r8
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- lsls r1, 15
- lsrs r6, r1, 16
- mov r0, r8
- movs r1, 0
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080D9182
- adds r0, 0x3
-_080D9182:
- lsls r4, r0, 14
- lsrs r4, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r6, 16
- asrs r1, 16
- bl __modsi3
- lsls r0, 16
- lsrs r6, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 16
- lsrs r4, r0, 16
- bl Random
- movs r7, 0x1
- adds r1, r7, 0
- ands r1, r0
- cmp r1, 0
- beq _080D91C4
- lsls r0, r6, 16
- negs r0, r0
- lsrs r6, r0, 16
-_080D91C4:
- bl Random
- adds r1, r7, 0
- ands r1, r0
- cmp r1, 0
- beq _080D91D6
- lsls r0, r4, 16
- negs r0, r0
- lsrs r4, r0, 16
-_080D91D6:
- ldr r0, _080D9264 @ =gBanksBySide
- add r0, r8
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _080D91EC
- lsls r0, r4, 16
- ldr r1, _080D9268 @ =0xfff00000
- adds r0, r1
- lsrs r4, r0, 16
-_080D91EC:
- lsls r0, r6, 16
- asrs r0, 16
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r3, [r5, 0x22]
- adds r0, r3
- strh r0, [r5, 0x22]
- mov r1, r9
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x2E]
- ldr r0, _080D926C @ =gBattleAnimSpriteTemplate_83DB4A8
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r3, 0x22
- ldrsh r2, [r5, r3]
- adds r3, r5, 0
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3C]
- cmp r0, 0x40
- beq _080D9250
- movs r0, 0x3C
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080D9270 @ =gSprites
- adds r0, r4
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r2, 0x3C
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080D9274 @ =SpriteCallbackDummy
- str r1, [r0]
-_080D9250:
- ldr r0, _080D9278 @ =sub_80D927C
- str r0, [r5, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9260: .4byte gBattleAnimBankTarget
-_080D9264: .4byte gBanksBySide
-_080D9268: .4byte 0xfff00000
-_080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8
-_080D9270: .4byte gSprites
-_080D9274: .4byte SpriteCallbackDummy
-_080D9278: .4byte sub_80D927C
- thumb_func_end sub_80D90F4
-
- thumb_func_start sub_80D927C
-sub_80D927C: @ 80D927C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080D92C4
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0x40
- beq _080D92B8
- ldr r4, _080D92C0 @ =gSprites
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- movs r0, 0x3C
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
-_080D92B8:
- adds r0, r5, 0
- bl move_anim_8072740
- b _080D92C8
- .align 2, 0
-_080D92C0: .4byte gSprites
-_080D92C4:
- subs r0, r1, 0x1
- strh r0, [r5, 0x2E]
-_080D92C8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D927C
-
- thumb_func_start sub_80D92D0
-sub_80D92D0: @ 80D92D0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- ldr r0, _080D92F0 @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D92F4
- ldrh r0, [r4, 0x20]
- subs r0, 0x14
- strh r0, [r4, 0x32]
- b _080D9306
- .align 2, 0
-_080D92F0: .4byte gBattleAnimArgs
-_080D92F4:
- ldrh r0, [r4, 0x20]
- adds r0, 0x14
- strh r0, [r4, 0x32]
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080D9306:
- ldrh r0, [r4, 0x22]
- subs r0, 0x14
- strh r0, [r4, 0x36]
- ldr r0, _080D9320 @ =sub_8078B34
- str r0, [r4, 0x1C]
- ldr r1, _080D9324 @ =sub_80D9328
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9320: .4byte sub_8078B34
-_080D9324: .4byte sub_80D9328
- thumb_func_end sub_80D92D0
-
- thumb_func_start sub_80D9328
-sub_80D9328: @ 80D9328
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _080D9368
- ldrh r2, [r5, 0x20]
- ldrh r4, [r5, 0x24]
- subs r0, r2, r4
- strh r0, [r5, 0x32]
- ldrh r1, [r5, 0x22]
- ldrh r3, [r5, 0x26]
- subs r0, r1, r3
- strh r0, [r5, 0x36]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- adds r2, r4
- strh r2, [r5, 0x20]
- adds r1, r3
- strh r1, [r5, 0x22]
- strh r6, [r5, 0x26]
- strh r6, [r5, 0x24]
- ldr r0, _080D9370 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080D9374 @ =move_anim_8072740
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080D9368:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9370: .4byte sub_8078B34
-_080D9374: .4byte move_anim_8072740
- thumb_func_end sub_80D9328
-
- thumb_func_start sub_80D9378
-sub_80D9378: @ 80D9378
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080D93F4 @ =gBattleAnimBankAttacker
- ldrb r1, [r0]
- movs r0, 0x2
- ldr r2, _080D93F8 @ =gBattleAnimBankTarget
- eors r0, r1
- ldrb r1, [r2]
- cmp r0, r1
- bne _080D93A4
- ldrb r0, [r2]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080D93A4
- ldr r1, _080D93FC @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1]
-_080D93A4:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r0, _080D93F4 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D93C2
- ldr r1, _080D93FC @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080D93C2:
- ldr r4, _080D93FC @ =gBattleAnimArgs
- ldrh r0, [r4, 0x6]
- movs r5, 0
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrh r0, [r6, 0x22]
- strh r0, [r6, 0x34]
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x3A]
- strh r5, [r6, 0x3C]
- ldr r0, _080D9400 @ =sub_80D9404
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D93F4: .4byte gBattleAnimBankAttacker
-_080D93F8: .4byte gBattleAnimBankTarget
-_080D93FC: .4byte gBattleAnimArgs
-_080D9400: .4byte sub_80D9404
- thumb_func_end sub_80D9378
-
- thumb_func_start sub_80D9404
-sub_80D9404: @ 80D9404
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080D9430
- ldrh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- strh r0, [r4, 0x3C]
- b _080D9436
-_080D9430:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D9436:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9404
-
- thumb_func_start sub_80D943C
-sub_80D943C: @ 80D943C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r5, _080D9468 @ =gBattleAnimArgs
- ldrb r1, [r5, 0x4]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldr r0, _080D946C @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _080D9470 @ =sub_80D9474
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9468: .4byte gBattleAnimArgs
-_080D946C: .4byte sub_80782D8
-_080D9470: .4byte sub_80D9474
- thumb_func_end sub_80D943C
-
- thumb_func_start sub_80D9474
-sub_80D9474: @ 80D9474
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r0, _080D94A0 @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _080D94A4 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D94A0: .4byte sub_80782D8
-_080D94A4: .4byte move_anim_8072740
- thumb_func_end sub_80D9474
-
- thumb_func_start sub_80D94A8
-sub_80D94A8: @ 80D94A8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r0, _080D94C4 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080D94C8 @ =sub_80D94CC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D94C4: .4byte gBattleAnimArgs
-_080D94C8: .4byte sub_80D94CC
- thumb_func_end sub_80D94A8
-
- thumb_func_start sub_80D94CC
-sub_80D94CC: @ 80D94CC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- subs r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080D9510
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, _080D9518 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080D951C @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080D9520 @ =sub_80D9524
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080D9510:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9518: .4byte gBattleAnimBankTarget
-_080D951C: .4byte sub_8078B34
-_080D9520: .4byte sub_80D9524
- thumb_func_end sub_80D94CC
-
- thumb_func_start sub_80D9524
-sub_80D9524: @ 80D9524
- push {lr}
- movs r1, 0xF
- strh r1, [r0, 0x2E]
- ldr r1, _080D9538 @ =sub_80782D8
- str r1, [r0, 0x1C]
- ldr r1, _080D953C @ =move_anim_8072740
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080D9538: .4byte sub_80782D8
-_080D953C: .4byte move_anim_8072740
- thumb_func_end sub_80D9524
-
- thumb_func_start sub_80D9540
-sub_80D9540: @ 80D9540
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D956C
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r1, _080D9568 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D95C8
- .align 2, 0
-_080D9568: .4byte gBattleAnimArgs
-_080D956C:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x64
- ble _080D95BA
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D95BA:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- ble _080D95C8
- adds r0, r4, 0
- bl move_anim_8072740
-_080D95C8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9540
-
- thumb_func_start sub_80D95D0
-sub_80D95D0: @ 80D95D0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D95E4 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D95EC
- ldr r4, _080D95E8 @ =gBattleAnimBankAttacker
- b _080D95EE
- .align 2, 0
-_080D95E4: .4byte gBattleAnimArgs
-_080D95E8: .4byte gBattleAnimBankAttacker
-_080D95EC:
- ldr r4, _080D9634 @ =gBattleAnimBankTarget
-_080D95EE:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080D9638 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- movs r2, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r1, 0x4]
- ldrh r3, [r5, 0x22]
- adds r0, r3
- strh r0, [r5, 0x22]
- strh r2, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x32]
- strh r2, [r5, 0x34]
- ldr r0, _080D963C @ =sub_80D9640
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9634: .4byte gBattleAnimBankTarget
-_080D9638: .4byte gBattleAnimArgs
-_080D963C: .4byte sub_80D9640
- thumb_func_end sub_80D95D0
-
- thumb_func_start sub_80D9640
-sub_80D9640: @ 80D9640
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- cmp r2, 0
- beq _080D9652
- cmp r2, 0x1
- beq _080D9676
- b _080D96B0
-_080D9652:
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080D96B0
- movs r2, 0x32
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080D966E
- adds r0, r1, 0
- bl move_anim_8072740
- b _080D96B0
-_080D966E:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _080D96B0
-_080D9676:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D969E
- movs r0, 0
- strh r0, [r1, 0x30]
- ldrh r0, [r1, 0x34]
- adds r0, 0x1
- strh r0, [r1, 0x34]
- ands r0, r2
- lsls r0, 16
- cmp r0, 0
- beq _080D969A
- movs r0, 0x2
- b _080D969C
-_080D969A:
- ldr r0, _080D96B4 @ =0x0000fffe
-_080D969C:
- strh r0, [r1, 0x24]
-_080D969E:
- ldrh r0, [r1, 0x32]
- subs r0, 0x1
- strh r0, [r1, 0x32]
- lsls r0, 16
- cmp r0, 0
- bne _080D96B0
- adds r0, r1, 0
- bl move_anim_8072740
-_080D96B0:
- pop {r0}
- bx r0
- .align 2, 0
-_080D96B4: .4byte 0x0000fffe
- thumb_func_end sub_80D9640
-
- thumb_func_start sub_80D96B8
-sub_80D96B8: @ 80D96B8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080D96DC @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D96E4
- ldr r4, _080D96E0 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x4]
- adds r0, r2
- b _080D96F6
- .align 2, 0
-_080D96DC: .4byte gBattleAnimArgs
-_080D96E0: .4byte gBattleAnimBankAttacker
-_080D96E4:
- ldr r4, _080D9740 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
-_080D96F6:
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- strh r0, [r5, 0x22]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- ldr r3, _080D9744 @ =gBattleAnimArgs
- movs r4, 0x2
- ldrsh r0, [r3, r4]
- lsls r0, 4
- adds r1, r0
- ldr r4, _080D9748 @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080D974C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- movs r1, 0
- movs r0, 0
- strh r0, [r5, 0x2E]
- movs r2, 0x2
- ldrsh r0, [r3, r2]
- cmp r0, 0x1
- beq _080D9764
- cmp r0, 0x1
- bgt _080D9750
- cmp r0, 0
- beq _080D975A
- b _080D978A
- .align 2, 0
-_080D9740: .4byte gBattleAnimBankTarget
-_080D9744: .4byte gBattleAnimArgs
-_080D9748: .4byte 0x000003ff
-_080D974C: .4byte 0xfffffc00
-_080D9750:
- cmp r0, 0x2
- beq _080D9774
- cmp r0, 0x3
- beq _080D9784
- b _080D978A
-_080D975A:
- ldr r0, _080D9760 @ =0x0000fffd
- b _080D9784
- .align 2, 0
-_080D9760: .4byte 0x0000fffd
-_080D9764:
- movs r0, 0x3
- strh r0, [r5, 0x3A]
- ldr r0, _080D9770 @ =0x0000fffd
- strh r0, [r5, 0x3C]
- b _080D9792
- .align 2, 0
-_080D9770: .4byte 0x0000fffd
-_080D9774:
- ldr r0, _080D9780 @ =0x0000fffd
- strh r0, [r5, 0x3A]
- movs r0, 0x3
- strh r0, [r5, 0x3C]
- b _080D9792
- .align 2, 0
-_080D9780: .4byte 0x0000fffd
-_080D9784:
- strh r0, [r5, 0x3A]
- strh r0, [r5, 0x3C]
- b _080D9792
-_080D978A:
- adds r0, r5, 0
- bl move_anim_8072740
- b _080D9796
-_080D9792:
- ldr r0, _080D979C @ =sub_80D97A0
- str r0, [r5, 0x1C]
-_080D9796:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D979C: .4byte sub_80D97A0
- thumb_func_end sub_80D96B8
-
- thumb_func_start sub_80D97A0
-sub_80D97A0: @ 80D97A0
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x3A]
- ldrh r2, [r1, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0x3C]
- ldrh r2, [r1, 0x22]
- adds r0, r2
- strh r0, [r1, 0x22]
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _080D97C8
- adds r0, r1, 0
- bl move_anim_8072740
-_080D97C8:
- pop {r0}
- bx r0
- thumb_func_end sub_80D97A0
-
- thumb_func_start sub_80D97CC
-sub_80D97CC: @ 80D97CC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D9818 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D9828
- ldr r4, _080D981C @ =gBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080D9820 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- ldr r0, _080D9824 @ =gBattleAnimBankTarget
- b _080D9844
- .align 2, 0
-_080D9818: .4byte gBattleAnimArgs
-_080D981C: .4byte gBankAttacker
-_080D9820: .4byte gBattleAnimBankAttacker
-_080D9824: .4byte gBattleAnimBankTarget
-_080D9828:
- ldr r0, _080D9860 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- ldr r0, _080D9864 @ =gBattleAnimBankAttacker
-_080D9844:
- ldrb r0, [r0]
- strh r0, [r5, 0x3C]
- movs r0, 0
- strh r0, [r5, 0x2E]
- movs r0, 0xC
- strh r0, [r5, 0x30]
- movs r0, 0x8
- strh r0, [r5, 0x32]
- ldr r0, _080D9868 @ =sub_80D986C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9860: .4byte gBattleAnimBankTarget
-_080D9864: .4byte gBattleAnimBankAttacker
-_080D9868: .4byte sub_80D986C
- thumb_func_end sub_80D97CC
-
- thumb_func_start sub_80D986C
-sub_80D986C: @ 80D986C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB4
- bne _080D98C6
- ldr r1, _080D98CC @ =REG_BLDCNT
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080D98D0 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080D98D4 @ =sub_8078BB8
- str r0, [r4, 0x1C]
-_080D98C6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D98CC: .4byte REG_BLDCNT
-_080D98D0: .4byte move_anim_8074EE0
-_080D98D4: .4byte sub_8078BB8
- thumb_func_end sub_80D986C
-
- thumb_func_start sub_80D98D8
-sub_80D98D8: @ 80D98D8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D9924 @ =gBattleAnimArgs
- ldrh r0, [r4]
- strh r0, [r5, 0x20]
- movs r2, 0x78
- strh r2, [r5, 0x22]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- adds r0, 0x36
- adds r1, r5, 0
- adds r1, 0x38
- lsls r2, 8
- bl sub_8079BF4
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x3A]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- lsls r0, 2
- adds r1, r0
- ldr r3, _080D9928 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D992C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r0, _080D9930 @ =sub_80D9934
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9924: .4byte gBattleAnimArgs
-_080D9928: .4byte 0x000003ff
-_080D992C: .4byte 0xfffffc00
-_080D9930: .4byte sub_80D9934
- thumb_func_end sub_80D98D8
-
- thumb_func_start sub_80D9934
-sub_80D9934: @ 80D9934
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _080D9986
- movs r2, 0x36
- ldrsh r0, [r7, r2]
- movs r2, 0x38
- ldrsh r1, [r7, r2]
- bl sub_8079BFC
- adds r4, r0, 0
- movs r1, 0x3A
- ldrsh r0, [r7, r1]
- subs r4, r0
- adds r0, r7, 0
- adds r0, 0x36
- adds r1, r7, 0
- adds r1, 0x38
- adds r2, r4, 0
- bl sub_8079BF4
- asrs r4, 8
- strh r4, [r7, 0x22]
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x8
- negs r0, r0
- cmp r4, r0
- bge _080D997E
- adds r0, r7, 0
- bl move_anim_8072740
- b _080D99DC
-_080D997E:
- ldrh r0, [r7, 0x2E]
- subs r0, 0x1
- strh r0, [r7, 0x2E]
- b _080D99DC
-_080D9986:
- ldr r4, _080D99E8 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r2, _080D99EC @ =gBattleAnimBankTarget
- mov r8, r2
- ldrb r0, [r2]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- subs r4, r6
- strh r4, [r7, 0x2E]
- lsrs r0, 24
- subs r0, r5
- strh r0, [r7, 0x30]
- ldrh r0, [r7, 0x20]
- lsls r0, 4
- strh r0, [r7, 0x32]
- ldrh r0, [r7, 0x22]
- lsls r0, 4
- strh r0, [r7, 0x34]
- ldr r0, _080D99F0 @ =sub_80D99F4
- str r0, [r7, 0x1C]
-_080D99DC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D99E8: .4byte gBattleAnimBankAttacker
-_080D99EC: .4byte gBattleAnimBankTarget
-_080D99F0: .4byte sub_80D99F4
- thumb_func_end sub_80D9934
-
- thumb_func_start sub_80D99F4
-sub_80D99F4: @ 80D99F4
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r2, 0x30]
- ldrh r3, [r2, 0x34]
- adds r1, r3
- strh r1, [r2, 0x34]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r3, r1, 20
- strh r3, [r2, 0x22]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _080D9A2E
- adds r1, r3, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _080D9A2E
- cmp r1, 0x78
- ble _080D9A34
-_080D9A2E:
- adds r0, r2, 0
- bl move_anim_8072740
-_080D9A34:
- pop {r0}
- bx r0
- thumb_func_end sub_80D99F4
-
- thumb_func_start sub_80D9A38
-sub_80D9A38: @ 80D9A38
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D9A6C @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D9A7C
- ldr r4, _080D9A70 @ =gBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080D9A74 @ =gBattleAnimBankTarget
- ldrb r4, [r0]
- ldr r0, _080D9A78 @ =gBattleAnimBankAttacker
- b _080D9A82
- .align 2, 0
-_080D9A6C: .4byte gBattleAnimArgs
-_080D9A70: .4byte gBankAttacker
-_080D9A74: .4byte gBattleAnimBankTarget
-_080D9A78: .4byte gBattleAnimBankAttacker
-_080D9A7C:
- ldr r0, _080D9AB4 @ =gBattleAnimBankAttacker
- ldrb r4, [r0]
- ldr r0, _080D9AB8 @ =gBattleAnimBankTarget
-_080D9A82:
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080D9ABC
- ldrb r2, [r5, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x47
- b _080D9AD6
- .align 2, 0
-_080D9AB4: .4byte gBattleAnimBankAttacker
-_080D9AB8: .4byte gBattleAnimBankTarget
-_080D9ABC:
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080D9ADC
- ldrb r2, [r5, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x18
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x57
-_080D9AD6:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x3]
-_080D9ADC:
- movs r0, 0x10
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080D9B1C @ =move_anim_8072740
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080D9B20 @ =sub_8078BB8
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9B1C: .4byte move_anim_8072740
-_080D9B20: .4byte sub_8078BB8
- thumb_func_end sub_80D9A38
-
- thumb_func_start sub_80D9B24
-sub_80D9B24: @ 80D9B24
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080D9B3A
- adds r0, r4, 0
- bl move_anim_8072740
-_080D9B3A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9B24
-
- thumb_func_start sub_80D9B48
-sub_80D9B48: @ 80D9B48
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080D9BC4 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080D9BC8 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1]
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x34]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x36]
- ldr r0, _080D9BCC @ =gUnknown_0202F7C4
- ldrb r6, [r0]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080D9B92
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080D9B92:
- movs r0, 0x1
- ands r6, r0
- cmp r6, 0
- beq _080D9BA6
- ldrh r0, [r5, 0x32]
- negs r0, r0
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
-_080D9BA6:
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x32]
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x34]
- strh r0, [r5, 0x26]
- ldr r0, _080D9BD0 @ =sub_80D9B24
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9BC4: .4byte gBattleAnimBankTarget
-_080D9BC8: .4byte gBattleAnimArgs
-_080D9BCC: .4byte gUnknown_0202F7C4
-_080D9BD0: .4byte sub_80D9B24
- thumb_func_end sub_80D9B48
-
- thumb_func_start sub_80D9BD4
-sub_80D9BD4: @ 80D9BD4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D9BEC @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D9BF0
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- b _080D9BF8
- .align 2, 0
-_080D9BEC: .4byte gBattleAnimArgs
-_080D9BF0:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
-_080D9BF8:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080D9C0C
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- b _080D9C22
-_080D9C0C:
- ldr r0, _080D9C34 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D9C22
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080D9C22:
- ldr r0, _080D9C38 @ =sub_8078600
- str r0, [r4, 0x1C]
- ldr r1, _080D9C3C @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9C34: .4byte gBattleAnimBankAttacker
-_080D9C38: .4byte sub_8078600
-_080D9C3C: .4byte move_anim_8072740
- thumb_func_end sub_80D9BD4
-
- thumb_func_start sub_80D9C40
-sub_80D9C40: @ 80D9C40
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D9C7A
- ldrh r0, [r4, 0x30]
- adds r0, 0x28
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x2
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _080D9C7A
- adds r0, r4, 0
- bl move_anim_8072740
-_080D9C7A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9C40
-
- thumb_func_start sub_80D9C80
-sub_80D9C80: @ 80D9C80
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080D9CB0 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080D9CB8
- cmp r0, 0x1
- bgt _080D9CD2
- cmp r0, 0
- bne _080D9CD2
- movs r0, 0
- bl sub_80789D4
- ldr r0, _080D9CB4 @ =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r4, 0x18]
- b _080D9CCA
- .align 2, 0
-_080D9CB0: .4byte gTasks
-_080D9CB4: .4byte gBattleAnimArgs
-_080D9CB8:
- ldrh r0, [r4, 0x18]
- subs r0, 0x1
- strh r0, [r4, 0x18]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080D9CDE
-_080D9CCA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D9CDE
-_080D9CD2:
- movs r2, 0xA0
- lsls r2, 3
- adds r0, r2, 0
- ldrh r1, [r4, 0x1A]
- adds r0, r1
- strh r0, [r4, 0x1A]
-_080D9CDE:
- movs r2, 0xB0
- lsls r2, 4
- adds r0, r2, 0
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- strh r0, [r4, 0x1C]
- ldr r0, _080D9D0C @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080D9D14
- ldr r1, _080D9D10 @ =gUnknown_030041B0
- ldrh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- adds r7, r1, 0
- b _080D9D24
- .align 2, 0
-_080D9D0C: .4byte gBattleAnimBankTarget
-_080D9D10: .4byte gUnknown_030041B0
-_080D9D14:
- ldr r2, _080D9D64 @ =gUnknown_030041B0
- ldrh r1, [r4, 0x1A]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2]
- subs r0, r1
- strh r0, [r2]
- adds r7, r2, 0
-_080D9D24:
- ldr r3, _080D9D68 @ =gUnknown_030041B8
- ldrh r2, [r4, 0x1C]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r3]
- adds r0, r1
- strh r0, [r3]
- movs r0, 0xFF
- ldrb r1, [r4, 0x1A]
- movs r5, 0
- strh r1, [r4, 0x1A]
- ands r0, r2
- strh r0, [r4, 0x1C]
- ldr r0, _080D9D6C @ =gBattleAnimArgs
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080D9D5C
- strh r5, [r7]
- strh r5, [r3]
- movs r0, 0x1
- bl sub_80789D4
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080D9D5C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9D64: .4byte gUnknown_030041B0
-_080D9D68: .4byte gUnknown_030041B8
-_080D9D6C: .4byte gBattleAnimArgs
- thumb_func_end sub_80D9C80
-
- 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 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- 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 gBattleAnimBankTarget
-_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 move_anim_8072740
-_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 @ =gBattleAnimBankTarget
- 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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankTarget
-_080D9E6C: .4byte gBattleAnimBankAttacker
-_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 move_anim_8072740
-_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 move_anim_8072740
-_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 @ =gBattleAnimBankTarget
- 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 @ =gBattleAnimBankAttacker
- 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 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9F74: .4byte gBattleAnimBankTarget
-_080D9F78: .4byte gBattleAnimBankAttacker
-_080D9F7C: .4byte gBattleAnimArgs
-_080D9F80: .4byte sub_8078B34
-_080D9F84: .4byte move_anim_8072740
- 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 @ =gBattleAnimBankTarget
- 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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankTarget
-_080D9FE8: .4byte gBattleAnimBankAttacker
-_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 move_anim_8072740
-_080DA02C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9FF0
-
- thumb_func_start sub_80DA034
-sub_80DA034: @ 80DA034
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8078764
- ldrh r0, [r4, 0x22]
- adds r0, 0x14
- strh r0, [r4, 0x22]
- movs r0, 0xBF
- strh r0, [r4, 0x30]
- ldr r1, _080DA058 @ =sub_80DA05C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA058: .4byte sub_80DA05C
- thumb_func_end sub_80DA034
-
- thumb_func_start sub_80DA05C
-sub_80DA05C: @ 80DA05C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x47
- bne _080DA096
- adds r0, r4, 0
- bl move_anim_8072740
-_080DA096:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DA05C
-
- thumb_func_start sub_80DA09C
-sub_80DA09C: @ 80DA09C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080DA0CC @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r1, _080DA0D0 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x8]
- ldrh r0, [r1]
- strh r0, [r4, 0xA]
- ldr r0, _080DA0D4 @ =0x00002719
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- ldr r0, _080DA0D8 @ =sub_80DA0DC
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA0CC: .4byte gTasks
-_080DA0D0: .4byte gBattleAnimArgs
-_080DA0D4: .4byte 0x00002719
-_080DA0D8: .4byte sub_80DA0DC
- thumb_func_end sub_80DA09C
-
- thumb_func_start sub_80DA0DC
-sub_80DA0DC: @ 80DA0DC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _080DA15C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r4, 0xA
- ldrsh r1, [r3, r4]
- adds r7, r2, 0
- cmp r0, r1
- bne _080DA13A
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrb r0, [r3, 0xC]
- ldr r2, _080DA160 @ =gPlttBufferFaded
- lsls r0, 4
- movs r3, 0x84
- lsls r3, 1
- adds r1, r0, r3
- lsls r1, 1
- adds r1, r2
- ldrh r6, [r1]
- movs r4, 0x7
- mov r12, r0
- ldr r0, _080DA164 @ =0x00000107
- add r0, r12
- lsls r0, 1
- adds r3, r0, r2
-_080DA122:
- ldrh r0, [r3]
- strh r0, [r1]
- subs r3, 0x2
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bgt _080DA122
- ldr r0, _080DA168 @ =0x00000101
- add r0, r12
- lsls r0, 1
- adds r0, r2
- strh r6, [r0]
-_080DA13A:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r7
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- cmp r1, 0
- bne _080DA154
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080DA154:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA15C: .4byte gTasks
-_080DA160: .4byte gPlttBufferFaded
-_080DA164: .4byte 0x00000107
-_080DA168: .4byte 0x00000101
- thumb_func_end sub_80DA0DC
-
- thumb_func_start sub_80DA16C
-sub_80DA16C: @ 80DA16C
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080DA1D8 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DA18C
- ldr r1, _080DA1DC @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080DA18C:
- ldr r4, _080DA1DC @ =gBattleAnimArgs
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldr r5, _080DA1E0 @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrh r0, [r6, 0x22]
- strh r0, [r6, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080DA1E4 @ =sub_80785E4
- str r0, [r6, 0x1C]
- ldr r1, _080DA1E8 @ =sub_80DA1EC
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA1D8: .4byte gBattleAnimBankAttacker
-_080DA1DC: .4byte gBattleAnimArgs
-_080DA1E0: .4byte gBattleAnimBankTarget
-_080DA1E4: .4byte sub_80785E4
-_080DA1E8: .4byte sub_80DA1EC
- thumb_func_end sub_80DA16C
-
- thumb_func_start sub_80DA1EC
-sub_80DA1EC: @ 80DA1EC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080DA200
- adds r0, r4, 0
- bl move_anim_8072740
-_080DA200:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DA1EC
-
- thumb_func_start sub_80DA208
-sub_80DA208: @ 80DA208
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080DA2A4 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DA234
- ldr r1, _080DA2A8 @ =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
- 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]
-_080DA234:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080DA24C
- ldr r0, _080DA2A8 @ =gBattleAnimArgs
- ldrh r1, [r0, 0x2]
- negs r1, r1
- strh r1, [r0, 0x2]
- ldrh r1, [r0, 0x6]
- negs r1, r1
- strh r1, [r0, 0x6]
-_080DA24C:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- ldr r2, _080DA2A8 @ =gBattleAnimArgs
- ldrh r1, [r2]
- ldrh r3, [r5, 0x20]
- adds r1, r3
- strh r1, [r5, 0x20]
- lsrs r0, 24
- ldrh r1, [r2, 0x2]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r0, [r2, 0x8]
- strh r0, [r5, 0x2E]
- movs r3, 0xC
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080DA2B0
- ldr r4, _080DA2AC @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- b _080DA2C2
- .align 2, 0
-_080DA2A4: .4byte gBattleAnimBankAttacker
-_080DA2A8: .4byte gBattleAnimArgs
-_080DA2AC: .4byte gBattleAnimBankTarget
-_080DA2B0:
- ldr r0, _080DA2F0 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_807A3FC
-_080DA2C2:
- ldr r4, _080DA2F4 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x4]
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r4, 0x6]
- ldrh r3, [r5, 0x36]
- adds r0, r3
- strh r0, [r5, 0x36]
- ldr r0, _080DA2F8 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080DA2FC @ =move_anim_8072740
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldrb r1, [r4, 0xA]
- adds r0, r5, 0
- bl SeekSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA2F0: .4byte gBattleAnimBankTarget
-_080DA2F4: .4byte gBattleAnimArgs
-_080DA2F8: .4byte sub_8078B34
-_080DA2FC: .4byte move_anim_8072740
- thumb_func_end sub_80DA208
-
- thumb_func_start sub_80DA300
-sub_80DA300: @ 80DA300
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080DA33C @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080DA340 @ =sub_80DA348
- str r0, [r4, 0x1C]
- movs r0, 0
- bl GetAnimBankSpriteId
- ldr r2, _080DA344 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA33C: .4byte gBattleAnimArgs
-_080DA340: .4byte sub_80DA348
-_080DA344: .4byte gSprites
- thumb_func_end sub_80DA300
-
- thumb_func_start sub_80DA348
-sub_80DA348: @ 80DA348
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _080DA35C
- subs r0, r1, 0x1
- strh r0, [r2, 0x2E]
- b _080DA36E
-_080DA35C:
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r2, 0x26]
- subs r1, r0
- strh r1, [r2, 0x26]
-_080DA36E:
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080DA386
- adds r0, r2, 0
- bl move_anim_8072740
-_080DA386:
- pop {r0}
- bx r0
- thumb_func_end sub_80DA348
-
- thumb_func_start sub_80DA38C
-sub_80DA38C: @ 80DA38C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080DA3B4 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DA3BC
- movs r0, 0x88
- lsls r0, 1
- strh r0, [r5, 0x20]
- ldr r0, _080DA3B8 @ =0x0000ffe0
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080DA3C2
- .align 2, 0
-_080DA3B4: .4byte gBattleAnimBankAttacker
-_080DA3B8: .4byte 0x0000ffe0
-_080DA3BC:
- ldr r0, _080DA400 @ =0x0000ffe0
- strh r0, [r5, 0x20]
- strh r0, [r5, 0x22]
-_080DA3C2:
- ldr r0, _080DA404 @ =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080DA408 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080DA40C @ =sub_80DA410
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA400: .4byte 0x0000ffe0
-_080DA404: .4byte gBattleAnimArgs
-_080DA408: .4byte gBattleAnimBankTarget
-_080DA40C: .4byte sub_80DA410
- thumb_func_end sub_80DA38C
-
- thumb_func_start sub_80DA410
-sub_80DA410: @ 80DA410
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_8078B5C
- ldrh r1, [r4, 0x34]
- lsrs r0, r1, 8
- cmp r0, 0xC8
- bls _080DA438
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
-_080DA438:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x20
- movs r1, 0x98
- lsls r1, 1
- cmp r0, r1
- bhi _080DA45A
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- cmp r0, 0xA0
- ble _080DA480
-_080DA45A:
- movs r0, 0
- bl GetAnimBankSpriteId
- ldr r2, _080DA488 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl move_anim_8072740
-_080DA480:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA488: .4byte gSprites
- thumb_func_end sub_80DA410
-
- thumb_func_start sub_80DA48C
-sub_80DA48C: @ 80DA48C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080DA4CC
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DA4BE
- 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]
-_080DA4BE:
- adds r0, r4, 0
- bl DestroySprite
- ldr r1, _080DA4D4 @ =gAnimVisualTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_080DA4CC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA4D4: .4byte gAnimVisualTaskCount
- thumb_func_end sub_80DA48C
-
- thumb_func_start sub_80DA4D8
-sub_80DA4D8: @ 80DA4D8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r5, r7, 0
- adds r5, 0x2E
- ldr r0, _080DA4F8 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080DA500
- ldr r0, _080DA4FC @ =gBattleAnimBankAttacker
- b _080DA502
- .align 2, 0
-_080DA4F8: .4byte gBattleAnimArgs
-_080DA4FC: .4byte gBattleAnimBankAttacker
-_080DA500:
- ldr r0, _080DA5B0 @ =gBattleAnimBankTarget
-_080DA502:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080DA518
- ldr r1, _080DA5B4 @ =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080DA518:
- adds r0, r6, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080DA5B4 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r7, 0x20]
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- ldrh r1, [r4, 0x2]
- lsrs r0, 24
- adds r1, r0, r1
- strh r1, [r7, 0x22]
- lsls r1, 8
- strh r1, [r5, 0x8]
- ldrh r1, [r4, 0xC]
- adds r0, r1
- lsls r0, 1
- ldrh r2, [r5, 0xE]
- movs r1, 0x1
- ands r1, r2
- orrs r1, r0
- strh r1, [r5, 0xE]
- ldrb r0, [r5]
- movs r2, 0x4
- mov r8, r2
- mov r1, r8
- orrs r0, r1
- strb r0, [r5]
- ldrh r0, [r4, 0x4]
- ldrb r1, [r4, 0x4]
- strh r1, [r5, 0x2]
- lsls r0, 16
- lsrs r0, 24
- strh r0, [r5, 0xA]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x4]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x6]
- ldrh r0, [r4, 0xA]
- strh r0, [r5, 0xC]
- subs r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0x7F
- bhi _080DA618
- ldr r0, _080DA5B8 @ =gMain
- ldr r2, _080DA5BC @ =0x0000043d
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080DA5C0
- adds r0, r6, 0
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r7, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x5]
- b _080DA5D8
- .align 2, 0
-_080DA5B0: .4byte gBattleAnimBankTarget
-_080DA5B4: .4byte gBattleAnimArgs
-_080DA5B8: .4byte gMain
-_080DA5BC: .4byte 0x0000043d
-_080DA5C0:
- adds r0, r6, 0
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7, 0x5]
-_080DA5D8:
- ldrb r1, [r5, 0xE]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r5, 0xE]
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _080DA678
- adds r3, r7, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r0, r2, 31
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r7, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- b _080DA66E
-_080DA618:
- adds r0, r6, 0
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7, 0x5]
- ldrb r0, [r5, 0xE]
- movs r4, 0x1
- orrs r0, r4
- strb r0, [r5, 0xE]
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080DA678
- adds r3, r7, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- ands r1, r4
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r7, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- mov r1, r8
-_080DA66E:
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
-_080DA678:
- ldrh r1, [r5, 0x2]
- lsrs r1, 6
- lsls r1, 4
- ldrb r2, [r5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r5]
- ldr r3, _080DA6E4 @ =gSineTable
- ldrh r0, [r5, 0x2]
- lsls r0, 1
- adds r0, r3
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldrb r0, [r5, 0xC]
- muls r0, r1
- asrs r0, 8
- strh r0, [r7, 0x24]
- ldrb r2, [r7, 0x3]
- lsls r2, 26
- lsrs r2, 27
- movs r1, 0x24
- ldrsh r0, [r7, r1]
- negs r0, r0
- asrs r0, 1
- ldrb r5, [r5, 0xA]
- adds r0, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r3
- ldrh r4, [r1]
- ldr r1, _080DA6E8 @ =gOamMatrices
- lsls r2, 3
- adds r2, r1
- adds r0, 0x40
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x6]
- strh r0, [r2]
- strh r4, [r2, 0x2]
- lsls r0, r4, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- ldr r0, _080DA6EC @ =sub_80DA6F0
- str r0, [r7, 0x1C]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA6E4: .4byte gSineTable
-_080DA6E8: .4byte gOamMatrices
-_080DA6EC: .4byte sub_80DA6F0
- thumb_func_end sub_80DA4D8
-
- thumb_func_start sub_80DA6F0
-sub_80DA6F0: @ 80DA6F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- movs r6, 0
- movs r0, 0x2E
- adds r0, r5
- mov r12, r0
- ldrb r2, [r0]
- movs r7, 0x1
- movs r1, 0x1
- mov r9, r1
- mov r0, r9
- ands r0, r2
- cmp r0, 0
- beq _080DA730
- mov r3, r12
- ldrb r0, [r3, 0x1]
- adds r1, r0, 0
- adds r1, 0xFF
- strb r1, [r3, 0x1]
- lsls r0, 24
- cmp r0, 0
- beq _080DA724
- b _080DAD1A
-_080DA724:
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r3]
- strb r6, [r3, 0x1]
- b _080DAD1A
-_080DA730:
- mov r4, r12
- ldrh r0, [r4, 0x2]
- lsrs r4, r0, 6
- mov r8, r0
- cmp r4, 0x1
- bne _080DA73E
- b _080DA896
-_080DA73E:
- cmp r4, 0x1
- bgt _080DA748
- cmp r4, 0
- beq _080DA756
- b _080DAC52
-_080DA748:
- cmp r4, 0x2
- bne _080DA74E
- b _080DA9C8
-_080DA74E:
- cmp r4, 0x3
- bne _080DA754
- b _080DAB0E
-_080DA754:
- b _080DAC52
-_080DA756:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0x1
- bne _080DA76C
- movs r0, 0x8
- orrs r0, r2
- orrs r0, r7
- mov r1, r12
- strb r0, [r1]
- strb r6, [r1, 0x1]
- b _080DA88A
-_080DA76C:
- lsrs r0, r1, 28
- cmp r0, 0x3
- bne _080DA790
- lsls r0, r2, 30
- lsrs r0, 31
- movs r1, 0x1
- eors r0, r1
- ands r0, r7
- lsls r0, 1
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- orrs r1, r7
- mov r2, r12
- strb r1, [r2]
- strb r6, [r2, 0x1]
- b _080DA88A
-_080DA790:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080DA88A
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r4, 0x1
- eors r1, r4
- ands r1, r7
- movs r6, 0x2
- negs r6, r6
- adds r0, r6, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- mov r3, r12
- ldrb r1, [r3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080DA87A
- ldr r0, _080DA80C @ =gMain
- ldr r1, _080DA810 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080DA82E
- ldrb r1, [r3, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DA814
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080DA868
- .align 2, 0
-_080DA80C: .4byte gMain
-_080DA810: .4byte 0x0000043d
-_080DA814:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080DA866
-_080DA82E:
- mov r0, r12
- ldrb r1, [r0, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DA85C
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- strb r0, [r1]
- mov r1, r12
- ldrb r2, [r1, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- mov r2, r12
- strb r1, [r2, 0xE]
- b _080DA87A
-_080DA85C:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
- strb r0, [r1]
-_080DA866:
- mov r3, r12
-_080DA868:
- ldrb r2, [r3, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xE]
-_080DA87A:
- mov r4, r12
- ldrb r1, [r4]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrh r0, [r4, 0x2]
- mov r8, r0
-_080DA88A:
- mov r2, r12
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- strb r0, [r2]
- b _080DAC52
-_080DA896:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0
- bne _080DA8AC
- movs r0, 0x8
- orrs r0, r2
- orrs r0, r7
- mov r3, r12
- strb r0, [r3]
- strb r6, [r3, 0x1]
- b _080DA9BC
-_080DA8AC:
- lsrs r0, r1, 28
- cmp r0, 0x2
- bne _080DA8BE
- adds r0, r2, 0
- orrs r0, r7
- mov r4, r12
- strb r0, [r4]
- strb r6, [r4, 0x1]
- b _080DA9BC
-_080DA8BE:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080DA9BC
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r4, 0x1
- eors r1, r4
- ands r1, r7
- movs r6, 0x2
- negs r6, r6
- adds r0, r6, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- mov r0, r12
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080DA9AC
- ldr r0, _080DA940 @ =gMain
- ldr r1, _080DA944 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080DA962
- mov r2, r12
- ldrb r1, [r2, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DA948
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- mov r3, r12
- b _080DA978
- .align 2, 0
-_080DA940: .4byte gMain
-_080DA944: .4byte 0x0000043d
-_080DA948:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080DA996
-_080DA962:
- mov r3, r12
- ldrb r1, [r3, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DA98C
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- strb r0, [r1]
-_080DA978:
- ldrb r2, [r3, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xE]
- b _080DA9AC
-_080DA98C:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
- strb r0, [r1]
-_080DA996:
- mov r0, r12
- ldrb r2, [r0, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- mov r2, r12
- strb r1, [r2, 0xE]
-_080DA9AC:
- mov r3, r12
- ldrb r1, [r3]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldrh r4, [r3, 0x2]
- mov r8, r4
-_080DA9BC:
- mov r1, r12
- ldrb r0, [r1]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x10
- b _080DAC4C
-_080DA9C8:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0x3
- bne _080DA9DE
- movs r0, 0x8
- orrs r0, r2
- orrs r0, r7
- mov r3, r12
- strb r0, [r3]
- strb r6, [r3, 0x1]
- b _080DAAFE
-_080DA9DE:
- lsrs r0, r1, 28
- cmp r0, 0x1
- bne _080DA9F0
- adds r0, r2, 0
- orrs r0, r7
- mov r4, r12
- strb r0, [r4]
- strb r6, [r4, 0x1]
- b _080DAAFE
-_080DA9F0:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- bne _080DA9FA
- b _080DAAFE
-_080DA9FA:
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r6, 0x1
- eors r1, r6
- ands r1, r7
- movs r0, 0x2
- negs r0, r0
- mov r8, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- mov r2, r12
- ldrb r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080DAAEC
- ldr r0, _080DAA6C @ =gMain
- ldr r3, _080DAA70 @ =0x0000043d
- adds r0, r3
- ldrb r0, [r0]
- ands r4, r0
- cmp r4, 0
- beq _080DAAA4
- ldrb r1, [r2, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DAA74
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080DAAD8
- .align 2, 0
-_080DAA6C: .4byte gMain
-_080DAA70: .4byte 0x0000043d
-_080DAA74:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- mov r0, r12
- ldrb r2, [r0, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- mov r2, r12
- strb r1, [r2, 0xE]
- b _080DAAEC
-_080DAAA4:
- mov r3, r12
- ldrb r1, [r3, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DAACE
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- strb r0, [r1]
- ldrb r2, [r3, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xE]
- b _080DAAEC
-_080DAACE:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
- strb r0, [r1]
-_080DAAD8:
- mov r4, r12
- ldrb r2, [r4, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0xE]
-_080DAAEC:
- mov r0, r12
- ldrb r1, [r0]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r2, [r1, 0x2]
- mov r8, r2
-_080DAAFE:
- mov r3, r12
- ldrb r0, [r3]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x20
- orrs r1, r0
- strb r1, [r3]
- b _080DAC52
-_080DAB0E:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0x2
- bne _080DAB20
- movs r0, 0x8
- orrs r0, r2
- mov r4, r12
- strb r0, [r4]
- b _080DAC42
-_080DAB20:
- lsrs r0, r1, 28
- cmp r0, 0
- bne _080DAB44
- lsls r0, r2, 30
- lsrs r0, 31
- movs r1, 0x1
- eors r0, r1
- ands r0, r7
- lsls r0, 1
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- orrs r1, r7
- mov r0, r12
- strb r1, [r0]
- strb r6, [r0, 0x1]
- b _080DAC42
-_080DAB44:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080DAC42
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r4, 0x1
- eors r1, r4
- ands r1, r7
- movs r6, 0x2
- negs r6, r6
- adds r0, r6, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- mov r2, r12
- ldrb r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080DAC32
- ldr r0, _080DABC4 @ =gMain
- ldr r3, _080DABC8 @ =0x0000043d
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080DABE6
- ldrb r1, [r2, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DABCC
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- mov r0, r12
- ldrb r2, [r0, 0xE]
- b _080DAC00
- .align 2, 0
-_080DABC4: .4byte gMain
-_080DABC8: .4byte 0x0000043d
-_080DABCC:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080DAC1E
-_080DABE6:
- mov r0, r12
- ldrb r1, [r0, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DAC14
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- strb r0, [r1]
- mov r1, r12
- ldrb r2, [r1, 0xE]
-_080DAC00:
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- mov r2, r12
- strb r1, [r2, 0xE]
- b _080DAC32
-_080DAC14:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
- strb r0, [r1]
-_080DAC1E:
- mov r3, r12
- ldrb r2, [r3, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xE]
-_080DAC32:
- mov r4, r12
- ldrb r1, [r4]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrh r0, [r4, 0x2]
- mov r8, r0
-_080DAC42:
- mov r1, r12
- ldrb r0, [r1]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x30
-_080DAC4C:
- orrs r1, r0
- mov r2, r12
- strb r1, [r2]
-_080DAC52:
- mov r3, r12
- ldrb r1, [r3]
- lsls r1, 30
- lsrs r1, 31
- mov r0, r12
- adds r0, 0xC
- adds r0, r1
- ldrb r1, [r0]
- ldr r3, _080DACE0 @ =gSineTable
- mov r4, r8
- lsls r0, r4, 1
- adds r0, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- muls r0, r1
- asrs r0, 8
- strh r0, [r5, 0x24]
- ldrb r2, [r5, 0x3]
- lsls r2, 26
- lsrs r2, 27
- movs r4, 0x24
- ldrsh r0, [r5, r4]
- negs r0, r0
- asrs r0, 1
- mov r1, r12
- ldrb r1, [r1, 0xA]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r3
- ldrh r6, [r1]
- ldr r1, _080DACE4 @ =gOamMatrices
- lsls r2, 3
- adds r2, r1
- adds r0, 0x40
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x6]
- strh r0, [r2]
- strh r6, [r2, 0x2]
- lsls r0, r6, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- mov r2, r12
- ldrh r0, [r2, 0x6]
- ldrh r3, [r2, 0x8]
- adds r0, r3
- strh r0, [r2, 0x8]
- lsls r0, 16
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r4, 0x4
- ldrsh r0, [r2, r4]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080DACE8
- ldrh r0, [r2, 0x4]
- subs r1, 0x1
- ands r1, r0
- ldrh r0, [r2, 0x2]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r2, 0x2]
- b _080DACFE
- .align 2, 0
-_080DACE0: .4byte gSineTable
-_080DACE4: .4byte gOamMatrices
-_080DACE8:
- mov r1, r12
- ldrh r0, [r1, 0x4]
- ldr r1, _080DAD28 @ =0x00007fff
- ands r1, r0
- mov r2, r12
- ldrh r2, [r2, 0x2]
- adds r1, r2
- movs r0, 0xFF
- ands r1, r0
- mov r3, r12
- strh r1, [r3, 0x2]
-_080DACFE:
- movs r4, 0x22
- ldrsh r1, [r5, r4]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- adds r1, r0
- mov r3, r12
- ldrh r0, [r3, 0xE]
- lsrs r0, 1
- cmp r1, r0
- blt _080DAD1A
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080DAD2C @ =sub_80DA48C
- str r0, [r5, 0x1C]
-_080DAD1A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DAD28: .4byte 0x00007fff
-_080DAD2C: .4byte sub_80DA48C
- thumb_func_end sub_80DA6F0
-
- thumb_func_start sub_80DAD30
-sub_80DAD30: @ 80DAD30
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, _080DAD78 @ =gBattleAnimBankTarget
- 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]
- ldr r5, _080DAD7C @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r0, _080DAD80 @ =sub_807941C
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DAD78: .4byte gBattleAnimBankTarget
-_080DAD7C: .4byte gBattleAnimBankAttacker
-_080DAD80: .4byte sub_807941C
- thumb_func_end sub_80DAD30
-
- thumb_func_start sub_80DAD84
-sub_80DAD84: @ 80DAD84
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r5, _080DADCC @ =gBattleAnimArgs
- ldrh r0, [r5]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x34]
- ldr r0, _080DADD0 @ =gMain
- ldr r1, _080DADD4 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080DAE44
- ldr r0, _080DADD8 @ =gBanksBySide
- ldr r1, _080DADDC @ =gBattleAnimBankTarget
- ldrb r2, [r1]
- adds r0, r2, r0
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DADE0
- adds r0, r2, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- b _080DADEE
- .align 2, 0
-_080DADCC: .4byte gBattleAnimArgs
-_080DADD0: .4byte gMain
-_080DADD4: .4byte 0x0000043d
-_080DADD8: .4byte gBanksBySide
-_080DADDC: .4byte gBattleAnimBankTarget
-_080DADE0:
- adds r0, r2, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x28
-_080DADEE:
- strh r0, [r4, 0x3C]
- ldr r0, _080DAE1C @ =gBattleAnimArgs
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080DAE24
- ldr r0, _080DAE20 @ =gBattleAnimBankTarget
- 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 _080DAE58
- .align 2, 0
-_080DAE1C: .4byte gBattleAnimArgs
-_080DAE20: .4byte gBattleAnimBankTarget
-_080DAE24:
- ldr r0, _080DAE40 @ =gBattleAnimBankTarget
- 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 _080DAE58
- .align 2, 0
-_080DAE40: .4byte gBattleAnimBankTarget
-_080DAE44:
- ldr r0, _080DAEFC @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- strh r0, [r4, 0x3C]
-_080DAE58:
- ldr r5, _080DAF00 @ =gSineTable
- ldrh r3, [r4, 0x30]
- movs r1, 0xFF
- ands r1, r3
- lsls r0, r1, 1
- adds r0, r5
- ldrh r0, [r0]
- movs r2, 0
- strh r0, [r4, 0x36]
- adds r1, 0x40
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r4, 0x38]
- strh r2, [r4, 0x3A]
- strh r2, [r4, 0x26]
- strh r2, [r4, 0x24]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r6, r0, 27
- lsls r3, 16
- lsrs r3, 24
- strh r3, [r4, 0x30]
- bl Random
- lsls r0, 16
- asrs r7, r0, 16
- movs r0, 0x80
- lsls r0, 8
- ands r0, r7
- cmp r0, 0
- beq _080DAEA2
- ldrh r1, [r4, 0x30]
- movs r0, 0xFF
- subs r0, r1
- strh r0, [r4, 0x30]
-_080DAEA2:
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r5
- ldrh r0, [r0]
- ldr r3, _080DAF04 @ =gOamMatrices
- lsls r2, r6, 3
- adds r2, r3
- adds r1, 0x40
- lsls r1, 1
- adds r1, r5
- ldrh r1, [r1]
- strh r1, [r2, 0x6]
- strh r1, [r2]
- strh r0, [r2, 0x2]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- adds r3, r4, 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]
- movs r0, 0x1
- ands r0, r7
- cmp r0, 0
- beq _080DAEF2
- adds r2, r4, 0
- adds r2, 0x2A
- movs r1, 0x1
- movs r0, 0x1
- strb r0, [r2]
- ldrb r0, [r3]
- orrs r0, r1
- strb r0, [r3]
-_080DAEF2:
- ldr r0, _080DAF08 @ =sub_80DAF0C
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DAEFC: .4byte gBattleAnimBankTarget
-_080DAF00: .4byte gSineTable
-_080DAF04: .4byte gOamMatrices
-_080DAF08: .4byte sub_80DAF0C
- thumb_func_end sub_80DAD84
-
- thumb_func_start sub_80DAF0C
-sub_80DAF0C: @ 80DAF0C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r4, 0
- adds r5, 0x2E
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r1, 0
- mov r8, r1
- movs r7, 0
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080DAFF0
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- muls r0, r1
- asrs r6, r0, 8
- strh r6, [r4, 0x24]
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- muls r0, r1
- asrs r3, r0, 8
- strh r3, [r4, 0x26]
- ldrh r2, [r4, 0x34]
- movs r1, 0xFF
- adds r0, r1, 0
- ands r0, r2
- ldrh r2, [r4, 0x3A]
- adds r0, r2
- strh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- ands r1, r2
- cmp r0, r1
- blt _080DAFF0
- ldrh r0, [r4, 0x20]
- adds r0, r6
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- strh r7, [r4, 0x24]
- strh r7, [r4, 0x26]
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0x10
- bl memcpy
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x10
- bl memset
- ldrh r0, [r4, 0x22]
- lsls r0, 8
- strh r0, [r5, 0x8]
- mov r0, sp
- ldrh r0, [r0, 0x6]
- lsrs r1, r0, 8
- strh r1, [r5, 0x6]
- strh r7, [r5, 0x2]
- mov r0, sp
- ldrh r0, [r0, 0x2]
- strh r0, [r5, 0xA]
- adds r0, r4, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- cmp r0, 0
- beq _080DAFC0
- movs r0, 0x8
- ands r1, r0
- cmp r1, 0
- beq _080DAFB8
- ldr r0, _080DAFB4 @ =0x00008001
- b _080DAFCE
- .align 2, 0
-_080DAFB4: .4byte 0x00008001
-_080DAFB8:
- ldr r0, _080DAFBC @ =0x00008002
- b _080DAFCE
- .align 2, 0
-_080DAFBC: .4byte 0x00008002
-_080DAFC0:
- movs r0, 0x8
- ands r1, r0
- cmp r1, 0
- beq _080DAFCC
- movs r0, 0x1
- b _080DAFCE
-_080DAFCC:
- movs r0, 0x2
-_080DAFCE:
- strh r0, [r5, 0x4]
- mov r0, sp
- ldrh r0, [r0, 0x4]
- lsrs r0, 8
- strb r0, [r5, 0xC]
- subs r0, 0x2
- strb r0, [r5, 0xD]
- mov r0, sp
- ldrh r1, [r0, 0xE]
- lsls r1, 1
- ldrh r2, [r5, 0xE]
- movs r0, 0x1
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0xE]
- ldr r0, _080DAFFC @ =sub_80DA6F0
- str r0, [r4, 0x1C]
-_080DAFF0:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DAFFC: .4byte sub_80DA6F0
- thumb_func_end sub_80DAF0C
-
- thumb_func_start sub_80DB000
-sub_80DB000: @ 80DB000
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080DB018 @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DB01C
- adds r0, r5, 0
- movs r1, 0
- bl sub_80787B0
- b _080DB024
- .align 2, 0
-_080DB018: .4byte gBattleAnimArgs
-_080DB01C:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078764
-_080DB024:
- ldr r4, _080DB08C @ =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080DB03C
- ldr r0, _080DB090 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DB052
-_080DB03C:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080DB058
- ldr r0, _080DB094 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080DB058
-_080DB052:
- ldrh r0, [r5, 0x20]
- adds r0, 0x8
- strh r0, [r5, 0x20]
-_080DB058:
- ldr r4, _080DB08C @ =gBattleAnimArgs
- ldrb r1, [r4, 0x8]
- adds r0, r5, 0
- bl SeekSpriteAnim
- ldrh r0, [r5, 0x20]
- subs r0, 0x20
- strh r0, [r5, 0x20]
- ldr r0, _080DB098 @ =0x00000ccc
- strh r0, [r5, 0x30]
- ldrh r1, [r4, 0x8]
- movs r0, 0xC
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
- ldrh r2, [r5, 0x24]
- adds r0, r2
- strh r0, [r5, 0x24]
- strh r1, [r5, 0x2E]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x3C]
- ldr r0, _080DB09C @ =sub_80DB0A0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB08C: .4byte gBattleAnimArgs
-_080DB090: .4byte gBattleAnimBankAttacker
-_080DB094: .4byte gBattleAnimBankTarget
-_080DB098: .4byte 0x00000ccc
-_080DB09C: .4byte sub_80DB0A0
- thumb_func_end sub_80DB000
-
- thumb_func_start sub_80DB0A0
-sub_80DB0A0: @ 80DB0A0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x24]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _080DB0CA
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x24]
- adds r0, r4, 0
- bl StartSpriteAnim
-_080DB0CA:
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080DB0E2
- adds r0, r4, 0
- bl move_anim_8072740
-_080DB0E2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DB0A0
-
- thumb_func_start sub_80DB0E8
-sub_80DB0E8: @ 80DB0E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080DB180 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r7, r0, r1
- ldrh r0, [r7, 0x8]
- movs r1, 0x1F
- ands r0, r1
- cmp r0, 0
- bne _080DB162
- ldr r1, _080DB184 @ =gAnimVisualTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- movs r5, 0xD
- negs r5, r5
- adds r1, r5, 0
- bl Sin
- ldr r4, _080DB188 @ =gBattleAnimArgs
- strh r0, [r4]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- adds r1, r5, 0
- bl Cos
- strh r0, [r4, 0x2]
- movs r0, 0x1
- strh r0, [r4, 0x4]
- movs r0, 0x3
- strh r0, [r4, 0x6]
- ldr r0, _080DB18C @ =gBattleAnimSpriteTemplate_83DB538
- mov r8, r0
- ldr r5, _080DB190 @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- mov r0, r8
- adds r1, r4, 0
- movs r3, 0x3
- bl CreateSpriteAndAnimate
-_080DB162:
- ldrh r0, [r7, 0x8]
- adds r0, 0x8
- strh r0, [r7, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080DB176
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080DB176:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB180: .4byte gTasks
-_080DB184: .4byte gAnimVisualTaskCount
-_080DB188: .4byte gBattleAnimArgs
-_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538
-_080DB190: .4byte gBattleAnimBankTarget
- thumb_func_end sub_80DB0E8
-
- thumb_func_start sub_80DB194
-sub_80DB194: @ 80DB194
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080DB1A6
- cmp r0, 0x1
- beq _080DB1D8
- b _080DB1EC
-_080DB1A6:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80787B0
- movs r0, 0
- bl GetAnimBankSpriteId
- ldr r2, _080DB1D4 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080DB1EC
- .align 2, 0
-_080DB1D4: .4byte gSprites
-_080DB1D8:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080DB1EC
- adds r0, r4, 0
- bl move_anim_8072740
-_080DB1EC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DB194
-
- thumb_func_start sub_80DB1F4
-sub_80DB1F4: @ 80DB1F4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080DB22C
- cmp r0, 0x1
- bgt _080DB20A
- cmp r0, 0
- beq _080DB210
- b _080DB27E
-_080DB20A:
- cmp r0, 0x2
- beq _080DB240
- b _080DB27E
-_080DB210:
- ldr r0, _080DB228 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- negs r0, r0
- subs r0, 0x20
- strh r0, [r4, 0x26]
- b _080DB238
- .align 2, 0
-_080DB228: .4byte gBattleAnimBankTarget
-_080DB22C:
- ldrh r0, [r4, 0x26]
- adds r0, 0xA
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _080DB27E
-_080DB238:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080DB27E
-_080DB240:
- ldrh r0, [r4, 0x26]
- subs r0, 0xA
- strh r0, [r4, 0x26]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080DB27E
- movs r0, 0
- bl GetAnimBankSpriteId
- ldr r2, _080DB284 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl move_anim_8072740
-_080DB27E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB284: .4byte gSprites
- thumb_func_end sub_80DB1F4
-
- thumb_func_start sub_80DB288
-sub_80DB288: @ 80DB288
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080DB2C4 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080DB2C8 @ =sub_80DB2D0
- str r0, [r4, 0x1C]
- movs r0, 0
- bl GetAnimBankSpriteId
- ldr r2, _080DB2CC @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB2C4: .4byte gBattleAnimArgs
-_080DB2C8: .4byte sub_80DB2D0
-_080DB2CC: .4byte gSprites
- thumb_func_end sub_80DB288
-
- thumb_func_start sub_80DB2D0
-sub_80DB2D0: @ 80DB2D0
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _080DB2E4
- subs r0, r1, 0x1
- strh r0, [r2, 0x2E]
- b _080DB328
-_080DB2E4:
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- ble _080DB30A
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r2, 0x26]
- subs r1, r0
- strh r1, [r2, 0x26]
- b _080DB328
-_080DB30A:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x34]
- adds r1, r0, 0x1
- strh r1, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080DB328
- ldr r0, _080DB32C @ =sub_80DB330
- str r0, [r2, 0x1C]
-_080DB328:
- pop {r0}
- bx r0
- .align 2, 0
-_080DB32C: .4byte sub_80DB330
- thumb_func_end sub_80DB2D0
-
- thumb_func_start sub_80DB330
-sub_80DB330: @ 80DB330
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r2, 0x26]
- adds r0, r1
- strh r0, [r2, 0x26]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- ble _080DB360
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
-_080DB360:
- movs r1, 0x26
- ldrsh r0, [r2, r1]
- cmp r0, 0
- ble _080DB36E
- adds r0, r2, 0
- bl move_anim_8072740
-_080DB36E:
- pop {r0}
- bx r0
- thumb_func_end sub_80DB330
-
- thumb_func_start sub_80DB374
-sub_80DB374: @ 80DB374
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080DB388
- cmp r0, 0x1
- beq _080DB3E0
- b _080DB44C
-_080DB388:
- ldr r0, _080DB398 @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080DB3A0
- ldr r4, _080DB39C @ =gBattleAnimBankAttacker
- b _080DB3A2
- .align 2, 0
-_080DB398: .4byte gBattleAnimArgs
-_080DB39C: .4byte gBattleAnimBankAttacker
-_080DB3A0:
- ldr r4, _080DB3DC @ =gBattleAnimBankTarget
-_080DB3A2:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r0, 0
- movs r3, 0x80
- lsls r3, 2
- strh r3, [r5, 0x30]
- movs r2, 0x80
- lsls r2, 1
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078FDC
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080DB44C
- .align 2, 0
-_080DB3DC: .4byte gBattleAnimBankTarget
-_080DB3E0:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0xB
- bgt _080DB3EE
- ldrh r0, [r5, 0x30]
- subs r0, 0x28
- b _080DB3F2
-_080DB3EE:
- ldrh r0, [r5, 0x30]
- adds r0, 0x28
-_080DB3F2:
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0x32]
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x30
- ldrsh r3, [r5, r0]
- str r1, [sp]
- adds r0, r5, 0
- bl sub_8078FDC
- ldrb r1, [r5, 0x3]
- lsls r1, 26
- lsrs r1, 27
- movs r0, 0xF4
- lsls r0, 6
- ldr r2, _080DB454 @ =gOamMatrices
- lsls r1, 3
- adds r1, r2
- movs r2, 0x6
- ldrsh r1, [r1, r2]
- bl __divsi3
- adds r1, r0, 0x1
- cmp r1, 0x80
- ble _080DB42C
- movs r1, 0x80
-_080DB42C:
- movs r0, 0x40
- subs r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r1, r0, 1
- strh r1, [r5, 0x26]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x18
- bne _080DB44C
- adds r0, r5, 0
- bl sub_8079098
- adds r0, r5, 0
- bl move_anim_8072740
-_080DB44C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB454: .4byte gOamMatrices
- thumb_func_end sub_80DB374
-
- thumb_func_start sub_80DB458
-sub_80DB458: @ 80DB458
- push {r4,r5,lr}
- adds r5, r0, 0
- bl Random
- ldr r4, _080DB47C @ =0x000001ff
- ands r4, r0
- bl Random
- movs r1, 0x7F
- ands r1, r0
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080DB480
- movs r2, 0xB8
- lsls r2, 2
- adds r0, r4, r2
- b _080DB488
- .align 2, 0
-_080DB47C: .4byte 0x000001ff
-_080DB480:
- movs r2, 0xB8
- lsls r2, 2
- adds r0, r2, 0
- subs r0, r4
-_080DB488:
- strh r0, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DB49C
- movs r2, 0xE0
- lsls r2, 2
- adds r0, r2, 0
- adds r0, r1, r0
- b _080DB4A4
-_080DB49C:
- movs r2, 0xE0
- lsls r2, 2
- adds r0, r2, 0
- subs r0, r1
-_080DB4A4:
- strh r0, [r5, 0x30]
- ldr r2, _080DB4CC @ =gBattleAnimArgs
- ldrh r0, [r2]
- strh r0, [r5, 0x32]
- lsls r0, 16
- cmp r0, 0
- beq _080DB4C0
- ldrb r0, [r5, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r5, 0x3]
-_080DB4C0:
- movs r1, 0x2
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080DB4D4
- ldr r4, _080DB4D0 @ =gBattleAnimBankAttacker
- b _080DB4D6
- .align 2, 0
-_080DB4CC: .4byte gBattleAnimArgs
-_080DB4D0: .4byte gBattleAnimBankAttacker
-_080DB4D4:
- ldr r4, _080DB500 @ =gBattleAnimBankTarget
-_080DB4D6:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r5, 0x22]
- ldr r0, _080DB504 @ =sub_80DB508
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB500: .4byte gBattleAnimBankTarget
-_080DB504: .4byte sub_80DB508
- thumb_func_end sub_80DB458
-
- thumb_func_start sub_80DB508
-sub_80DB508: @ 80DB508
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DB520
- ldrh r3, [r4, 0x2E]
- lsls r0, r3, 16
- asrs r0, 24
- ldrh r1, [r4, 0x24]
- adds r0, r1
- b _080DB52A
-_080DB520:
- ldrh r3, [r4, 0x2E]
- lsls r1, r3, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
-_080DB52A:
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x30]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x26]
- subs r0, r1
- strh r0, [r4, 0x26]
- strh r3, [r4, 0x2E]
- adds r0, r2, 0
- subs r0, 0x20
- strh r0, [r4, 0x30]
- lsls r0, r3, 16
- cmp r0, 0
- bge _080DB54A
- movs r0, 0
- strh r0, [r4, 0x2E]
-_080DB54A:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080DB55E
- adds r0, r4, 0
- bl move_anim_8072740
-_080DB55E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DB508
-
- thumb_func_start sub_80DB564
-sub_80DB564: @ 80DB564
- movs r1, 0
- strh r1, [r0, 0x3A]
- movs r1, 0x40
- strh r1, [r0, 0x3C]
- ldr r1, _080DB574 @ =sub_80DB578
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080DB574: .4byte sub_80DB578
- thumb_func_end sub_80DB564
-
- thumb_func_start sub_80DB578
-sub_80DB578: @ 80DB578
- push {lr}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0
- beq _080DB58A
- cmp r1, 0x1
- beq _080DB5D8
- b _080DB5DE
-_080DB58A:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080DB5DE
- strh r1, [r3, 0x30]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r2, [r1]
- 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, 0x5
- ble _080DB5DE
- ldrb r1, [r1]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080DB5DE
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _080DB5DE
-_080DB5D8:
- adds r0, r3, 0
- bl move_anim_8072740
-_080DB5DE:
- pop {r0}
- bx r0
- thumb_func_end sub_80DB578
-
- thumb_func_start sub_80DB5E4
-sub_80DB5E4: @ 80DB5E4
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r8, r0
- ldrh r4, [r0, 0x20]
- ldrh r5, [r0, 0x22]
- ldr r6, _080DB698 @ =gBattleAnimBankAttacker
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- strh r0, [r1, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- mov r2, r8
- strh r6, [r2, 0x22]
- ldrh r0, [r2, 0x20]
- mov r9, r0
- mov r1, r9
- lsls r0, r1, 4
- strh r0, [r2, 0x36]
- lsls r0, r6, 4
- strh r0, [r2, 0x38]
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- subs r0, r4, r0
- lsls r0, 4
- movs r1, 0xC
- bl __divsi3
- mov r2, r8
- strh r0, [r2, 0x3A]
- lsls r5, 16
- asrs r5, 16
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- subs r0, r5, r0
- lsls r0, 4
- movs r1, 0xC
- bl __divsi3
- mov r2, r8
- strh r0, [r2, 0x3C]
- mov r0, r9
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- subs r5, r6
- lsls r5, 16
- asrs r5, 16
- adds r0, r4, 0
- adds r1, r5, 0
- 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]
- mov r0, r8
- movs r1, 0x1
- adds r2, r3, 0
- bl sub_8078FDC
- ldr r0, _080DB69C @ =sub_80DB6A0
- mov r2, r8
- str r0, [r2, 0x1C]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB698: .4byte gBattleAnimBankAttacker
-_080DB69C: .4byte sub_80DB6A0
- thumb_func_end sub_80DB5E4
-
- thumb_func_start sub_80DB6A0
-sub_80DB6A0: @ 80DB6A0
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x36]
- adds r0, r1
- strh r0, [r2, 0x36]
- ldrh r1, [r2, 0x3C]
- ldrh r3, [r2, 0x38]
- adds r1, r3
- strh r1, [r2, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r3, r1, 20
- strh r3, [r2, 0x22]
- adds r0, 0x2D
- lsls r0, 16
- movs r1, 0xA5
- lsls r1, 17
- cmp r0, r1
- bhi _080DB6DA
- adds r1, r3, 0
- cmp r1, 0x9D
- bgt _080DB6DA
- movs r0, 0x2D
- negs r0, r0
- cmp r1, r0
- bge _080DB6E0
-_080DB6DA:
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080DB6E0:
- pop {r0}
- bx r0
- thumb_func_end sub_80DB6A0
-
- thumb_func_start unref_sub_80DB6E4
-unref_sub_80DB6E4: @ 80DB6E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080DB714 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DB71C
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DB718 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- b _080DB73A
- .align 2, 0
-_080DB714: .4byte gBattleAnimArgs
-_080DB718: .4byte gSprites
-_080DB71C:
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DB748 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
-_080DB73A:
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB748: .4byte gSprites
- thumb_func_end unref_sub_80DB6E4
-
- thumb_func_start sub_80DB74C
-sub_80DB74C: @ 80DB74C
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, _080DB804 @ =gBattleAnimBankAttacker
- 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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankAttacker
-_080DB808:
- movs r0, 0xB0
- strh r0, [r6, 0x20]
- movs r0, 0x28
- b _080DB84A
-_080DB810:
- ldr r5, _080DB880 @ =gBattleAnimBankAttacker
- 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 sub_8077ABC
- 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 sub_8077ABC
- 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 gBattleAnimBankAttacker
-_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 @ =move_anim_8072740
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBA48: .4byte move_anim_8072740
- 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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankAttacker
-_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 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- 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 gBattleAnimBankAttacker
-_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 @ =move_anim_8072740
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080DBB6C @ =sub_8078600
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBB68: .4byte move_anim_8072740
-_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 @ =gBattleAnimBankAttacker
- 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 sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- 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 StoreSpriteCallbackInData6
- ldr r0, _080DBBFC @ =sub_8078600
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBBF4: .4byte gBattleAnimBankAttacker
-_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 move_anim_8072740
-_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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankAttacker
-_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 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- 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 gBattleAnimBankAttacker
-_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 move_anim_8072740
-_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 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- 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 gBattleAnimBankAttacker
-_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 @ =gBattleAnimBankTarget
- 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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankTarget
-_080DC11C: .4byte gBattleAnimBankAttacker
-_080DC120:
- movs r0, 0xA
- strh r0, [r5, 0x1C]
- ldr r4, _080DC14C @ =gBattleAnimBankAttacker
- 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 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x8
- b _080DC1D2
- .align 2, 0
-_080DC14C: .4byte gBattleAnimBankAttacker
-_080DC150: .4byte gBattleAnimBankTarget
-_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 @ =gBattleAnimBankTarget
- 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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankTarget
-_080DC1A4: .4byte gBattleAnimBankAttacker
-_080DC1A8:
- movs r0, 0xA
- strh r0, [r5, 0x1C]
- ldr r4, _080DC1F0 @ =gBattleAnimBankAttacker
- 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 @ =gBattleAnimBankTarget
- 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 gBattleAnimBankAttacker
-_080DC1F4: .4byte gBattleAnimBankTarget
-_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 @ =gBattleAnimBankTarget
- 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 gBattleAnimBankTarget
-_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 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DC378
- ldr r0, _080DC370 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r4, 0x1C]
- ldr r0, _080DC374 @ =REG_BG1HOFS
- b _080DC380
- .align 2, 0
-_080DC36C: .4byte gBattleAnimBankTarget
-_080DC370: .4byte gUnknown_030042C0
-_080DC374: .4byte REG_BG1HOFS
-_080DC378:
- ldr r0, _080DC3E0 @ =gUnknown_03004288
- 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 gUnknown_03004288
-_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 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- 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 gBattleAnimBankAttacker
-_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 sub_8076F98
- 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 move_anim_8072740
-_080DC818:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC820: .4byte REG_BLDCNT
- thumb_func_end sub_80DC700
-
- 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 @ =gBattleAnimBankTarget
- 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 @ =gBattleAnimBankTarget
- 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 sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- 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 @ =move_anim_8072740
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC8E4: .4byte gBattleAnimBankTarget
-_080DC8E8: .4byte gBattleAnimArgs
-_080DC8EC: .4byte sub_8078B34
-_080DC8F0: .4byte move_anim_8072740
- 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 @ =gBattleAnimBankTarget
- 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 @ =gBattleAnimBankTarget
- 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 sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x36]
- ldr r0, _080DC998 @ =sub_8078B34
- str r0, [r6, 0x1C]
- ldr r1, _080DC99C @ =move_anim_8072740
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC990: .4byte gBattleAnimBankTarget
-_080DC994: .4byte gBattleAnimArgs
-_080DC998: .4byte sub_8078B34
-_080DC99C: .4byte move_anim_8072740
- 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 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- b _080DCA16
- .align 2, 0
-_080DC9FC: .4byte gBattleAnimArgs
-_080DCA00: .4byte gBattleAnimBankTarget
-_080DCA04:
- ldr r0, _080DCA2C @ =gBattleAnimBankTarget
- 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 gBattleAnimBankTarget
-_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 move_anim_8072740
- 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 @ =gBattleAnimBankTarget
- 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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankTarget
-_080DCAA4: .4byte gBattleAnimBankAttacker
-_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 @ =gBattleAnimBankTarget
- 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 gBattleAnimBankTarget
-_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 move_anim_8072740
-_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 move_anim_8072740
- 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 @ =gBattleAnimBankAttacker
- 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 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- adds r4, r0, 0
- ldr r5, _080DCCF0 @ =gBattleAnimBankTarget
- 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 @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- 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 sub_8077ABC
- 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 @ =move_anim_8072740
- adds r0, r7, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCCE8: .4byte gBattleAnimBankAttacker
-_080DCCEC: .4byte gBattleAnimArgs
-_080DCCF0: .4byte gBattleAnimBankTarget
-_080DCCF4: .4byte sub_8078B34
-_080DCCF8: .4byte move_anim_8072740
- 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 @ =gBattleAnimBankAttacker
- 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 @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- 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 gBattleAnimBankAttacker
-_080DCD6C: .4byte gBattleAnimArgs
-_080DCD70: .4byte gBattleAnimBankTarget
-_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 move_anim_8072740
- 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 @ =gBattleAnimBankAttacker
- b _080DCE5E
- .align 2, 0
-_080DCE54: .4byte gBattleAnimArgs
-_080DCE58: .4byte gBattleAnimBankAttacker
-_080DCE5C:
- ldr r4, _080DCE90 @ =gBattleAnimBankTarget
-_080DCE5E:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x12
- strh r0, [r5, 0x22]
- ldr r1, _080DCE94 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080DCE98 @ =sub_80785E4
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCE90: .4byte gBattleAnimBankTarget
-_080DCE94: .4byte move_anim_8074EE0
-_080DCE98: .4byte sub_80785E4
- thumb_func_end sub_80DCE40
-
- 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 @ =gBattleAnimBankTarget
- 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 StoreSpriteCallbackInData6
- 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 gBattleAnimBankTarget
-_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 StoreSpriteCallbackInData6
- 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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankAttacker
-_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 StoreSpriteCallbackInData6
- 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 move_anim_8072740
-_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 @ =gUnknown_030042C0
- strh r5, [r0]
- ldr r0, _080DD164 @ =gUnknown_030041B4
- 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 @ =gBattleAnimBankAttacker
- 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 gUnknown_030042C0
-_080DD164: .4byte gUnknown_030041B4
-_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 gBattleAnimBankAttacker
-_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 @ =gUnknown_030042C0
- ldr r5, _080DD1C8 @ =0x0000fffa
- adds r0, r5, 0
- ldrh r2, [r1]
- adds r0, r2
- b _080DD1D2
- .align 2, 0
-_080DD1C0: .4byte gTasks
-_080DD1C4: .4byte gUnknown_030042C0
-_080DD1C8: .4byte 0x0000fffa
-_080DD1CC:
- ldr r1, _080DD204 @ =gUnknown_030042C0
- ldrh r0, [r1]
- adds r0, 0x6
-_080DD1D2:
- strh r0, [r1]
- adds r4, r1, 0
- ldr r1, _080DD208 @ =gUnknown_030041B4
- 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 gUnknown_030042C0
-_080DD208: .4byte gUnknown_030041B4
-_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 @ =gUnknown_030042C0
- ldr r2, _080DD3A4 @ =gUnknown_030041B4
-_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 gUnknown_030042C0
-_080DD3A4: .4byte gUnknown_030041B4
-_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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankAttacker
-_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 @ =move_anim_8072740
- str r0, [r5, 0x1C]
-_080DD484:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD48C: .4byte move_anim_8072740
- 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 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD4C8: .4byte gBattleAnimArgs
-_080DD4CC: .4byte sub_8078B34
-_080DD4D0: .4byte move_anim_8072740
- 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 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0xC0
- lsls r1, 13
- adds r0, r1
- lsrs r7, r0, 16
- ldr r4, _080DD55C @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- 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 gBattleAnimBankAttacker
-_080DD55C: .4byte gBattleAnimBankTarget
-_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 sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- asrs r4, 8
- lsrs r4, 16
- movs r0, 0x3F
- bl sub_8076F98
- 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 @ =gDisableStructMoveAnim
- 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 gDisableStructMoveAnim
- 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 move_anim_8072740
-_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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankAttacker
- thumb_func_end sub_80DD978
-
- thumb_func_start sub_80DD9A4
-sub_80DD9A4: @ 80DD9A4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080DD9F0 @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- 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 gBattleAnimBankTarget
-_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 move_anim_8072740
-_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 @ =gMoveDmgMoveAnim
- 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 gMoveDmgMoveAnim
-_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
-
- thumb_func_start sub_80DDB6C
-sub_80DDB6C: @ 80DDB6C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080DDBC8 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080DDBCC @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_8078BD4
- ldr r0, _080DDBD0 @ =sub_80DDBD8
- str r0, [r4, 0x1C]
- movs r0, 0x10
- strh r0, [r4, 0x3A]
- ldr r1, _080DDBD4 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x3A]
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDBC8: .4byte gBattleAnimArgs
-_080DDBCC: .4byte gBattleAnimBankTarget
-_080DDBD0: .4byte sub_80DDBD8
-_080DDBD4: .4byte REG_BLDCNT
- thumb_func_end sub_80DDB6C
-
- thumb_func_start sub_80DDBD8
-sub_80DDBD8: @ 80DDBD8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80DDCC8
- adds r0, r4, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080DDBF8
- ldr r0, _080DDBF4 @ =sub_80DDC4C
- str r0, [r4, 0x1C]
- b _080DDC42
- .align 2, 0
-_080DDBF4: .4byte sub_80DDC4C
-_080DDBF8:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _080DDC30
- cmp r2, 0xC4
- ble _080DDC42
-_080DDC30:
- lsls r0, 16
- cmp r0, 0
- ble _080DDC42
- ldr r0, _080DDC48 @ =gUnknown_0202F7D2
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0xC4
- bl PlaySE12WithPanning
-_080DDC42:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDC48: .4byte gUnknown_0202F7D2
- thumb_func_end sub_80DDBD8
-
- thumb_func_start sub_80DDC4C
-sub_80DDC4C: @ 80DDC4C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_8078B5C
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _080DDC92
- cmp r2, 0xC4
- ble _080DDC9E
-_080DDC92:
- lsls r0, 16
- cmp r0, 0
- ble _080DDC9E
- movs r0, 0xC4
- bl PlaySE
-_080DDC9E:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DDCBC
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080DDCB8 @ =sub_807861C
- str r0, [r4, 0x1C]
- b _080DDCC2
- .align 2, 0
-_080DDCB8: .4byte sub_807861C
-_080DDCBC:
- adds r0, r4, 0
- bl sub_80DDCC8
-_080DDCC2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DDC4C
-
- thumb_func_start sub_80DDCC8
-sub_80DDCC8: @ 80DDCC8
- push {r4,lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x3A]
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- cmp r0, 0xFF
- ble _080DDCEC
- adds r0, r2, 0x1
- strh r0, [r3, 0x3A]
- lsls r0, 16
- ldr r1, _080DDCE8 @ =0x010d0000
- cmp r0, r1
- bne _080DDD4C
- movs r0, 0
- b _080DDD4A
- .align 2, 0
-_080DDCE8: .4byte 0x010d0000
-_080DDCEC:
- ldrh r1, [r3, 0x3C]
- adds r4, r1, 0x1
- strh r4, [r3, 0x3C]
- movs r0, 0xFF
- ands r0, r1
- cmp r0, 0
- bne _080DDD4C
- ldr r1, _080DDD10 @ =0xffffff00
- ands r1, r4
- strh r1, [r3, 0x3C]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080DDD14
- adds r0, r2, 0x1
- b _080DDD16
- .align 2, 0
-_080DDD10: .4byte 0xffffff00
-_080DDD14:
- subs r0, r2, 0x1
-_080DDD16:
- strh r0, [r3, 0x3A]
- ldr r2, _080DDD54 @ =REG_BLDALPHA
- ldrh r1, [r3, 0x3A]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- movs r2, 0x3A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _080DDD32
- cmp r0, 0x10
- bne _080DDD3E
-_080DDD32:
- ldrh r0, [r3, 0x3C]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- eors r0, r1
- strh r0, [r3, 0x3C]
-_080DDD3E:
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080DDD4C
- movs r0, 0x80
- lsls r0, 1
-_080DDD4A:
- strh r0, [r3, 0x3A]
-_080DDD4C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDD54: .4byte REG_BLDALPHA
- thumb_func_end sub_80DDCC8
-
- thumb_func_start sub_80DDD58
-sub_80DDD58: @ 80DDD58
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r1, _080DDD74 @ =sub_80DDD78
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDD74: .4byte sub_80DDD78
- thumb_func_end sub_80DDD58
-
- thumb_func_start sub_80DDD78
-sub_80DDD78: @ 80DDD78
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x41
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x82
- bhi _080DDDAC
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x8
- b _080DDDB6
-_080DDDAC:
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
-_080DDDB6:
- orrs r1, r0
- strb r1, [r4, 0x5]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x13
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x50
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3D
- bne _080DDDE8
- adds r0, r4, 0
- bl move_anim_8072740
-_080DDDE8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DDD78
-
- thumb_func_start sub_80DDDF0
-sub_80DDDF0: @ 80DDDF0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080DDE68 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078E70
- adds r0, r4, 0
- movs r1, 0x80
- movs r2, 0x80
- movs r3, 0
- bl obj_id_set_rotscale
- ldr r1, _080DDE6C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldr r1, _080DDE70 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x80
- strh r1, [r0, 0x8]
- ldr r1, _080DDE74 @ =gBattleAnimArgs
- ldrh r1, [r1]
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- movs r1, 0x10
- strh r1, [r0, 0xE]
- ldr r1, _080DDE78 @ =sub_80DDE7C
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDE68: .4byte REG_BLDCNT
-_080DDE6C: .4byte gSprites
-_080DDE70: .4byte gTasks
-_080DDE74: .4byte gBattleAnimArgs
-_080DDE78: .4byte sub_80DDE7C
- thumb_func_end sub_80DDDF0
-
- thumb_func_start sub_80DDE7C
-sub_80DDE7C: @ 80DDE7C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DDEC4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080DDEBE
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0xC]
- adds r1, 0x1
- strh r1, [r3, 0xC]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- ldr r2, _080DDEC8 @ =REG_BLDALPHA
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- cmp r0, 0x9
- bne _080DDEBE
- ldr r0, _080DDECC @ =sub_80DDED0
- str r0, [r3]
-_080DDEBE:
- pop {r0}
- bx r0
- .align 2, 0
-_080DDEC4: .4byte gTasks
-_080DDEC8: .4byte REG_BLDALPHA
-_080DDECC: .4byte sub_80DDED0
- thumb_func_end sub_80DDE7C
-
- thumb_func_start sub_80DDED0
-sub_80DDED0: @ 80DDED0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080DDEF4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080DDEF8
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- b _080DDF36
- .align 2, 0
-_080DDEF4: .4byte gTasks
-_080DDEF8:
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r1, r0, 24
- ldrh r0, [r4, 0x8]
- adds r0, 0x8
- movs r6, 0
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- bgt _080DDF22
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- adds r0, r1, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- b _080DDF36
-_080DDF22:
- adds r0, r1, 0
- bl sub_8078F40
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- ldr r0, _080DDF3C @ =REG_BLDCNT
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
-_080DDF36:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDF3C: .4byte REG_BLDCNT
- thumb_func_end sub_80DDED0
-
- thumb_func_start sub_80DDF40
-sub_80DDF40: @ 80DDF40
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r5, [r4, 0x20]
- ldrh r6, [r4, 0x22]
- ldr r0, _080DDFDC @ =gBattleAnimBankAttacker
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- mov r9, r1
- strh r0, [r4, 0x20]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- mov r1, r9
- strh r1, [r4, 0x2E]
- ldr r2, _080DDFE0 @ =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r4, 0x30]
- ldrh r1, [r2, 0x2]
- strh r1, [r4, 0x32]
- ldrh r1, [r2, 0x4]
- strh r1, [r4, 0x34]
- ldrh r1, [r4, 0x20]
- lsls r1, 4
- strh r1, [r4, 0x36]
- lsls r0, 4
- strh r0, [r4, 0x38]
- lsls r5, 16
- asrs r5, 16
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- subs r5, r0
- lsls r5, 4
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r1, 1
- adds r0, r5, 0
- str r2, [sp]
- bl __divsi3
- strh r0, [r4, 0x3A]
- lsls r6, 16
- asrs r6, 16
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- subs r6, r0
- lsls r6, 4
- ldr r2, [sp]
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r1, 1
- adds r0, r6, 0
- bl __divsi3
- strh r0, [r4, 0x3C]
- ldr r0, _080DDFE4 @ =sub_80DDFE8
- str r0, [r4, 0x1C]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDFDC: .4byte gBattleAnimBankAttacker
-_080DDFE0: .4byte gBattleAnimArgs
-_080DDFE4: .4byte sub_80DDFE8
- thumb_func_end sub_80DDF40
-
- thumb_func_start sub_80DDFE8
-sub_80DDFE8: @ 80DDFE8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080DE032
- cmp r0, 0x1
- bgt _080DDFFE
- cmp r0, 0
- beq _080DE008
- b _080DE0F6
-_080DDFFE:
- cmp r0, 0x2
- beq _080DE09C
- cmp r0, 0x3
- beq _080DE0F0
- b _080DE0F6
-_080DE008:
- ldrh r0, [r5, 0x3A]
- ldrh r2, [r5, 0x36]
- adds r0, r2
- strh r0, [r5, 0x36]
- ldrh r1, [r5, 0x3C]
- ldrh r2, [r5, 0x38]
- adds r1, r2
- strh r1, [r5, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r5, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x30]
- subs r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- cmp r0, 0
- bgt _080DE0F6
- b _080DE0E2
-_080DE032:
- ldrh r0, [r5, 0x32]
- subs r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- cmp r0, 0
- bgt _080DE0F6
- ldr r4, _080DE098 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x30]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x20]
- lsls r0, 4
- strh r0, [r5, 0x36]
- ldrh r0, [r5, 0x22]
- lsls r0, 4
- strh r0, [r5, 0x38]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- subs r0, r1
- lsls r0, 4
- movs r2, 0x34
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r5, 0x3A]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r2, 0x22
- ldrsh r1, [r5, r2]
- subs r0, r1
- lsls r0, 4
- movs r2, 0x34
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r5, 0x3C]
- b _080DE0E2
- .align 2, 0
-_080DE098: .4byte gBattleAnimBankTarget
-_080DE09C:
- ldrh r0, [r5, 0x3A]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldrh r1, [r5, 0x3C]
- ldrh r2, [r5, 0x38]
- adds r1, r2
- strh r1, [r5, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r5, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x34]
- subs r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- cmp r0, 0
- bgt _080DE0F6
- ldr r4, _080DE0EC @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_080DE0E2:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080DE0F6
- .align 2, 0
-_080DE0EC: .4byte gBattleAnimBankTarget
-_080DE0F0:
- adds r0, r5, 0
- bl move_anim_8074EE0
-_080DE0F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DDFE8
-
- thumb_func_start sub_80DE0FC
-sub_80DE0FC: @ 80DE0FC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r0, _080DE110 @ =sub_80DE114
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE110: .4byte sub_80DE114
- thumb_func_end sub_80DE0FC
-
- thumb_func_start sub_80DE114
-sub_80DE114: @ 80DE114
- push {r4-r6,lr}
- adds r3, r0, 0
- movs r5, 0
- movs r6, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080DE1AA
- adds r1, r3, 0
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x4
- ands r0, r2
- adds r4, r1, 0
- cmp r0, 0
- bne _080DE13E
- movs r0, 0x4
- orrs r0, r2
- strb r0, [r4]
-_080DE13E:
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _080DE14E
- cmp r0, 0x1
- beq _080DE158
- movs r6, 0x1
- b _080DE162
-_080DE14E:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x2
- bne _080DE162
- b _080DE166
-_080DE158:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x4
- bne _080DE162
- movs r5, 0x1
-_080DE162:
- cmp r5, 0
- beq _080DE198
-_080DE166:
- ldrb r2, [r4]
- 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, [r4]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r3, 0x32]
- strh r1, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080DE1AA
- strh r1, [r3, 0x32]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _080DE1AA
-_080DE198:
- cmp r6, 0
- beq _080DE1A4
- adds r0, r3, 0
- bl move_anim_8072740
- b _080DE1AA
-_080DE1A4:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
-_080DE1AA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80DE114
-
- thumb_func_start sub_80DE1B0
-sub_80DE1B0: @ 80DE1B0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080DE1DC @ =gTasks
- adds r5, r0, r1
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- movs r6, 0
- movs r1, 0
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bge _080DE1E0
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080DE2C0
- .align 2, 0
-_080DE1DC: .4byte gTasks
-_080DE1E0:
- strh r1, [r5, 0xA]
- movs r0, 0xF
- strh r0, [r5, 0xC]
- movs r0, 0x2
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
- ldr r1, _080DE244 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080DE248 @ =REG_BLDALPHA
- ldrh r0, [r5, 0xE]
- lsls r0, 8
- ldrh r1, [r5, 0xC]
- orrs r0, r1
- strh r0, [r2]
- ldr r4, _080DE24C @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x50
- strh r1, [r0, 0x2E]
- ldr r0, _080DE250 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080DE258
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080DE254 @ =0x0000ff70
- strh r1, [r0, 0x30]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x70
- b _080DE276
- .align 2, 0
-_080DE244: .4byte REG_BLDCNT
-_080DE248: .4byte REG_BLDALPHA
-_080DE24C: .4byte gSprites
-_080DE250: .4byte gBattleAnimBankTarget
-_080DE254: .4byte 0x0000ff70
-_080DE258:
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x90
- strh r1, [r0, 0x30]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080DE2C8 @ =0x0000ff90
-_080DE276:
- strh r1, [r0, 0x32]
- ldr r4, _080DE2CC @ =gSprites
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r2, 0
- strh r2, [r0, 0x34]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x36]
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080DE2D0 @ =SpriteCallbackDummy
- bl StoreSpriteCallbackInData6
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080DE2D4 @ =sub_8078394
- str r1, [r0]
- ldr r0, _080DE2D8 @ =sub_80DE2DC
- str r0, [r5]
-_080DE2C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE2C8: .4byte 0x0000ff90
-_080DE2CC: .4byte gSprites
-_080DE2D0: .4byte SpriteCallbackDummy
-_080DE2D4: .4byte sub_8078394
-_080DE2D8: .4byte sub_80DE2DC
- thumb_func_end sub_80DE1B0
-
- thumb_func_start sub_80DE2DC
-sub_80DE2DC: @ 80DE2DC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DE300 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080DE37C
- cmp r0, 0x1
- bgt _080DE304
- cmp r0, 0
- beq _080DE30A
- b _080DE3A6
- .align 2, 0
-_080DE300: .4byte gTasks
-_080DE304:
- cmp r0, 0x2
- beq _080DE3A0
- b _080DE3A6
-_080DE30A:
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x3
- ands r0, r1
- strh r0, [r4, 0x12]
- cmp r0, 0x1
- bne _080DE328
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080DE328
- subs r0, r1, 0x1
- strh r0, [r4, 0xC]
-_080DE328:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- bne _080DE33E
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DE33E
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
-_080DE33E:
- ldr r2, _080DE374 @ =REG_BLDALPHA
- ldrh r0, [r4, 0xE]
- lsls r0, 8
- ldrh r1, [r4, 0xC]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, [r4, 0xC]
- movs r0, 0x80
- lsls r0, 13
- cmp r1, r0
- bne _080DE3A6
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x50
- ble _080DE3A6
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DE378 @ =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
- movs r0, 0x1
- strh r0, [r4, 0x10]
- b _080DE3A6
- .align 2, 0
-_080DE374: .4byte REG_BLDALPHA
-_080DE378: .4byte gSprites
-_080DE37C:
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DE3A6
- ldr r0, _080DE39C @ =REG_BLDCNT
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- b _080DE3A6
- .align 2, 0
-_080DE39C: .4byte REG_BLDCNT
-_080DE3A0:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080DE3A6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DE2DC
-
- thumb_func_start sub_80DE3AC
-sub_80DE3AC: @ 80DE3AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, _080DE3CC @ =gTasks
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x26]
- ldr r2, _080DE3D0 @ =sub_80DE3D4
- str r2, [r1]
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_080DE3CC: .4byte gTasks
-_080DE3D0: .4byte sub_80DE3D4
- thumb_func_end sub_80DE3AC
-
- thumb_func_start sub_80DE3D4
-sub_80DE3D4: @ 80DE3D4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080DE40C @ =gTasks
- adds r5, r0, r1
- ldr r0, _080DE410 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _080DE400
- b _080DE604
-_080DE400:
- lsls r0, 2
- ldr r1, _080DE414 @ =_080DE418
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DE40C: .4byte gTasks
-_080DE410: .4byte gBattleAnimBankTarget
-_080DE414: .4byte _080DE418
- .align 2, 0
-_080DE418:
- .4byte _080DE42C
- .4byte _080DE500
- .4byte _080DE544
- .4byte _080DE5AC
- .4byte _080DE5E0
-_080DE42C:
- ldr r7, _080DE460 @ =0x00002771
- adds r0, r7, 0
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- mov r8, r2
- strh r0, [r5, 0x24]
- cmp r0, 0xFF
- beq _080DE456
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bge _080DE464
- adds r0, r7, 0
- bl FreeSpritePaletteByTag
-_080DE456:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080DE60A
- .align 2, 0
-_080DE460: .4byte 0x00002771
-_080DE464:
- ldr r4, _080DE4E4 @ =gSprites
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r2, [r5, 0x24]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- mov r3, r8
- strh r3, [r5, 0xA]
- strh r3, [r5, 0xC]
- movs r0, 0x10
- strh r0, [r5, 0xE]
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- lsls r0, 4
- strh r0, [r5, 0x10]
- cmp r6, 0x1
- bne _080DE4EC
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080DE4E8 @ =0x0000fdff
- b _080DE4F4
- .align 2, 0
-_080DE4E4: .4byte gSprites
-_080DE4E8: .4byte 0x0000fdff
-_080DE4EC:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080DE4FC @ =0x0000fbff
-_080DE4F4:
- ands r0, r1
- strh r0, [r2]
- b _080DE604
- .align 2, 0
-_080DE4FC: .4byte 0x0000fbff
-_080DE500:
- movs r1, 0x24
- ldrsh r0, [r5, r1]
- adds r0, 0x10
- lsls r0, 4
- strh r0, [r5, 0x24]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- lsls r0, 1
- ldr r1, _080DE534 @ =gPlttBufferUnfaded
- adds r0, r1
- movs r3, 0x24
- ldrsh r1, [r5, r3]
- lsls r1, 1
- ldr r2, _080DE538 @ =gPlttBufferFaded
- adds r1, r2
- ldr r2, _080DE53C @ =REG_BG0CNT
- bl CpuSet
- ldrh r0, [r5, 0x10]
- ldr r3, _080DE540 @ =0x00003c0d
- movs r1, 0x10
- movs r2, 0xA
- bl BlendPalette
- b _080DE604
- .align 2, 0
-_080DE534: .4byte gPlttBufferUnfaded
-_080DE538: .4byte gPlttBufferFaded
-_080DE53C: .4byte REG_BG0CNT
-_080DE540: .4byte 0x00003c0d
-_080DE544:
- ldr r2, _080DE580 @ =gSprites
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- subs r1, 0x20
- lsls r1, 16
- lsrs r2, r1, 16
- cmp r1, 0
- bge _080DE564
- movs r2, 0
-_080DE564:
- cmp r6, 0x1
- bne _080DE584
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, r2, 0
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- str r2, [sp]
- movs r2, 0x4
- str r2, [sp, 0x4]
- str r6, [sp, 0x8]
- b _080DE59C
- .align 2, 0
-_080DE580: .4byte gSprites
-_080DE584:
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, r2, 0
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- str r2, [sp]
- movs r2, 0x8
- str r2, [sp, 0x4]
- movs r2, 0x1
- str r2, [sp, 0x8]
-_080DE59C:
- movs r2, 0x2
- movs r3, 0x6
- bl sub_8089944
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1C]
- b _080DE604
-_080DE5AC:
- cmp r6, 0x1
- bne _080DE5C0
- ldr r1, _080DE5B8 @ =REG_BLDCNT
- ldr r2, _080DE5BC @ =0x00003f42
- adds r0, r2, 0
- b _080DE5C6
- .align 2, 0
-_080DE5B8: .4byte REG_BLDCNT
-_080DE5BC: .4byte 0x00003f42
-_080DE5C0:
- ldr r1, _080DE5D4 @ =REG_BLDCNT
- ldr r3, _080DE5D8 @ =0x00003f44
- adds r0, r3, 0
-_080DE5C6:
- strh r0, [r1]
- ldr r1, _080DE5DC @ =REG_BLDALPHA
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- b _080DE604
- .align 2, 0
-_080DE5D4: .4byte REG_BLDCNT
-_080DE5D8: .4byte 0x00003f44
-_080DE5DC: .4byte REG_BLDALPHA
-_080DE5E0:
- cmp r6, 0x1
- bne _080DE5F0
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 2
- b _080DE5FA
-_080DE5F0:
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 3
-_080DE5FA:
- adds r2, r3, 0
- orrs r1, r2
- strh r1, [r0]
- ldr r0, _080DE618 @ =sub_80DE61C
- str r0, [r5]
-_080DE604:
- ldrh r0, [r5, 0x26]
- adds r0, 0x1
- strh r0, [r5, 0x26]
-_080DE60A:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE618: .4byte sub_80DE61C
- thumb_func_end sub_80DE3D4
-
- thumb_func_start sub_80DE61C
-sub_80DE61C: @ 80DE61C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080DE6A0 @ =gTasks
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x1
- ands r0, r1
- strh r0, [r4, 0x12]
- cmp r0, 0
- bne _080DE654
- ldr r1, _080DE6A4 @ =gSineTable
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x12
- bl __divsi3
- strh r0, [r4, 0xC]
-_080DE654:
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- bne _080DE676
- ldr r1, _080DE6A4 @ =gSineTable
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x12
- bl __divsi3
- movs r1, 0x10
- subs r1, r0
- strh r1, [r4, 0xE]
-_080DE676:
- ldr r2, _080DE6A8 @ =REG_BLDALPHA
- ldrh r0, [r4, 0xE]
- lsls r0, 8
- ldrh r1, [r4, 0xC]
- orrs r0, r1
- strh r0, [r2]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0x80
- bne _080DE698
- movs r0, 0
- strh r0, [r4, 0x26]
- ldr r1, _080DE6AC @ =sub_80DE6B0
- str r1, [r4]
- adds r0, r5, 0
- bl _call_via_r1
-_080DE698:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE6A0: .4byte gTasks
-_080DE6A4: .4byte gSineTable
-_080DE6A8: .4byte REG_BLDALPHA
-_080DE6AC: .4byte sub_80DE6B0
- thumb_func_end sub_80DE61C
-
- thumb_func_start sub_80DE6B0
-sub_80DE6B0: @ 80DE6B0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080DE6E0 @ =gTasks
- adds r4, r0, r1
- ldr r0, _080DE6E4 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080DE72C
- cmp r0, 0x1
- bgt _080DE6E8
- cmp r0, 0
- beq _080DE6EE
- b _080DE7AA
- .align 2, 0
-_080DE6E0: .4byte gTasks
-_080DE6E4: .4byte gBattleAnimBankTarget
-_080DE6E8:
- cmp r0, 0x2
- beq _080DE740
- b _080DE7AA
-_080DE6EE:
- ldr r1, _080DE710 @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- cmp r6, 0x1
- bne _080DE718
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080DE714 @ =0x0000fdff
- b _080DE720
- .align 2, 0
-_080DE710: .4byte gUnknown_03004DC0
-_080DE714: .4byte 0x0000fdff
-_080DE718:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080DE728 @ =0x0000fbff
-_080DE720:
- ands r0, r1
- strh r0, [r2]
- b _080DE7AA
- .align 2, 0
-_080DE728: .4byte 0x0000fbff
-_080DE72C:
- ldrh r0, [r4, 0x10]
- ldr r3, _080DE73C @ =0x00003c0d
- movs r1, 0x10
- movs r2, 0
- bl BlendPalette
- b _080DE7AA
- .align 2, 0
-_080DE73C: .4byte 0x00003c0d
-_080DE740:
- ldr r3, _080DE788 @ =gSprites
- movs r0, 0x24
- 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
- bl obj_delete_but_dont_free_vram
- ldr r0, _080DE78C @ =0x00002771
- bl FreeSpritePaletteByTag
- ldr r0, _080DE790 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- cmp r6, 0x1
- bne _080DE794
- subs r0, 0x52
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 2
- b _080DE79E
- .align 2, 0
-_080DE788: .4byte gSprites
-_080DE78C: .4byte 0x00002771
-_080DE790: .4byte REG_BLDCNT
-_080DE794:
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 3
-_080DE79E:
- adds r2, r3, 0
- orrs r1, r2
- strh r1, [r0]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080DE7AA:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80DE6B0
-
- thumb_func_start sub_80DE7B8
-sub_80DE7B8: @ 80DE7B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- ldr r0, _080DE7F4 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DE800
- ldr r4, _080DE7F8 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- movs r2, 0xE0
- lsls r2, 13
- adds r0, r2
- lsrs r5, r0, 16
- ldr r4, _080DE7FC @ =gBattleAnimBankTarget
- b _080DE824
- .align 2, 0
-_080DE7F4: .4byte gBattleAnimArgs
-_080DE7F8: .4byte gBattleAnimBankAttacker
-_080DE7FC: .4byte gBattleAnimBankTarget
-_080DE800:
- ldr r4, _080DE8C8 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- movs r2, 0xE0
- lsls r2, 13
- adds r0, r2
- lsrs r5, r0, 16
- ldr r4, _080DE8CC @ =gBattleAnimBankAttacker
-_080DE824:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0xE0
- lsls r1, 13
- adds r0, r1
- lsrs r0, 16
- mov r9, r0
- mov r8, r5
- mov r2, r9
- subs r4, r2, r5
- lsls r4, 16
- lsrs r4, 16
- lsls r0, r6, 4
- strh r0, [r7, 0x2E]
- lsls r0, r5, 4
- strh r0, [r7, 0x30]
- mov r1, r10
- subs r0, r1, r6
- lsls r0, 4
- ldr r5, _080DE8D0 @ =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r7, 0x32]
- lsls r4, 16
- asrs r4, 12
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl __divsi3
- strh r0, [r7, 0x34]
- ldrh r0, [r5, 0x2]
- strh r0, [r7, 0x36]
- mov r1, r10
- strh r1, [r7, 0x38]
- mov r2, r9
- strh r2, [r7, 0x3A]
- movs r1, 0x36
- ldrsh r0, [r7, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r7, 0x3C]
- ldrb r1, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r7, 0x5]
- strh r6, [r7, 0x20]
- mov r2, r8
- strh r2, [r7, 0x22]
- ldr r0, _080DE8D4 @ =sub_80DE8D8
- str r0, [r7, 0x1C]
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- 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
-_080DE8C8: .4byte gBattleAnimBankTarget
-_080DE8CC: .4byte gBattleAnimBankAttacker
-_080DE8D0: .4byte gBattleAnimArgs
-_080DE8D4: .4byte sub_80DE8D8
- thumb_func_end sub_80DE7B8
-
- thumb_func_start sub_80DE8D8
-sub_80DE8D8: @ 80DE8D8
- push {r4,lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x36]
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080DE910
- ldrh r0, [r2, 0x32]
- ldrh r4, [r2, 0x2E]
- adds r0, r4
- strh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x34]
- ldrh r4, [r2, 0x30]
- adds r1, r4
- strh r1, [r2, 0x30]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r2, 0x22]
- subs r0, r3, 0x1
- strh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080DE910
- strh r0, [r2, 0x2E]
-_080DE910:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DE8D8
-
- thumb_func_start sub_80DE918
-sub_80DE918: @ 80DE918
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DEA68 @ =gTasks
- adds r1, r0
- str r1, [sp]
- ldr r1, _080DEA6C @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- movs r0, 0
- ldr r1, [sp]
- strh r0, [r1, 0x12]
- strh r0, [r1, 0x14]
- strh r0, [r1, 0x16]
- strh r0, [r1, 0x18]
- movs r0, 0x10
- strh r0, [r1, 0x1A]
- ldr r2, _080DEA70 @ =gBattleAnimArgs
- ldrh r0, [r2]
- strh r0, [r1, 0x1C]
- ldr r4, _080DEA74 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_807A100
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080DE988
- b _080DEA88
-_080DE988:
- movs r4, 0
-_080DE98A:
- lsls r1, r4, 16
- asrs r3, r1, 16
- ldr r0, _080DEA74 @ =gBattleAnimBankAttacker
- ldrb r2, [r0]
- str r1, [sp, 0x10]
- cmp r3, r2
- beq _080DEA56
- movs r0, 0x2
- eors r2, r0
- cmp r3, r2
- beq _080DEA56
- lsls r0, r4, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080DEA56
- ldr r6, [sp, 0x4]
- ldr r3, [sp, 0x8]
- lsls r0, r3, 16
- asrs r7, r0, 16
- ldr r0, _080DEA78 @ =gSpriteTemplate_83DAF08
- adds r1, r6, 0
- adds r2, r7, 0
- movs r3, 0x37
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x40
- beq _080DEA56
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_807A100
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- mov r0, r8
- lsls r5, r0, 4
- add r5, r8
- lsls r5, 2
- ldr r1, _080DEA7C @ =gSprites
- adds r4, r5, r1
- lsls r0, r6, 4
- strh r0, [r4, 0x2E]
- lsls r0, r7, 4
- strh r0, [r4, 0x30]
- mov r2, r10
- subs r0, r2, r6
- lsls r0, 4
- ldr r3, _080DEA70 @ =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r1, [r3, r2]
- bl __divsi3
- strh r0, [r4, 0x32]
- mov r3, r9
- lsls r0, r3, 16
- asrs r0, 16
- subs r0, r7
- lsls r0, 4
- ldr r2, _080DEA70 @ =gBattleAnimArgs
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- bl __divsi3
- strh r0, [r4, 0x34]
- ldr r1, _080DEA70 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x36]
- mov r2, r10
- strh r2, [r4, 0x38]
- mov r3, r9
- strh r3, [r4, 0x3A]
- ldr r0, _080DEA80 @ =gSprites + 0x1C
- adds r5, r0
- ldr r0, _080DEA84 @ =sub_80DE8D8
- str r0, [r5]
- ldr r2, [sp]
- movs r3, 0x20
- ldrsh r1, [r2, r3]
- adds r1, 0xD
- lsls r1, 1
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1
- mov r1, r8
- strh r1, [r0]
- ldrh r0, [r2, 0x20]
- adds r0, 0x1
- strh r0, [r2, 0x20]
-_080DEA56:
- ldr r2, [sp, 0x10]
- movs r3, 0x80
- lsls r3, 9
- adds r0, r2, r3
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080DE98A
- b _080DEB0C
- .align 2, 0
-_080DEA68: .4byte gTasks
-_080DEA6C: .4byte REG_BLDCNT
-_080DEA70: .4byte gBattleAnimArgs
-_080DEA74: .4byte gBattleAnimBankAttacker
-_080DEA78: .4byte gSpriteTemplate_83DAF08
-_080DEA7C: .4byte gSprites
-_080DEA80: .4byte gSprites + 0x1C
-_080DEA84: .4byte sub_80DE8D8
-_080DEA88:
- ldr r0, _080DEB24 @ =gSpriteTemplate_83DAF08
- ldr r7, [sp, 0x4]
- ldr r2, [sp, 0x8]
- lsls r1, r2, 16
- asrs r1, 16
- str r1, [sp, 0xC]
- adds r1, r7, 0
- ldr r2, [sp, 0xC]
- movs r3, 0x37
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x40
- beq _080DEB0C
- movs r3, 0x30
- mov r10, r3
- movs r0, 0x28
- mov r9, r0
- ldr r6, _080DEB28 @ =gSprites
- mov r1, r8
- lsls r5, r1, 4
- add r5, r8
- lsls r5, 2
- adds r4, r5, r6
- lsls r0, r7, 4
- strh r0, [r4, 0x2E]
- ldr r2, [sp, 0xC]
- lsls r0, r2, 4
- strh r0, [r4, 0x30]
- subs r0, r3, r7
- lsls r0, 4
- ldr r3, _080DEB2C @ =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r1, [r3, r2]
- bl __divsi3
- strh r0, [r4, 0x32]
- mov r3, r9
- ldr r1, [sp, 0xC]
- subs r0, r3, r1
- lsls r0, 4
- ldr r2, _080DEB2C @ =gBattleAnimArgs
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- bl __divsi3
- strh r0, [r4, 0x34]
- ldr r1, _080DEB2C @ =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x36]
- mov r2, r10
- strh r2, [r4, 0x38]
- mov r3, r9
- strh r3, [r4, 0x3A]
- adds r6, 0x1C
- adds r5, r6
- ldr r0, _080DEB30 @ =sub_80DE8D8
- str r0, [r5]
- mov r1, r8
- ldr r0, [sp]
- strh r1, [r0, 0x22]
- movs r0, 0x1
- ldr r2, [sp]
- strh r0, [r2, 0x20]
-_080DEB0C:
- ldr r0, _080DEB34 @ =sub_80DEB38
- ldr r3, [sp]
- str r0, [r3]
- 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
-_080DEB24: .4byte gSpriteTemplate_83DAF08
-_080DEB28: .4byte gSprites
-_080DEB2C: .4byte gBattleAnimArgs
-_080DEB30: .4byte sub_80DE8D8
-_080DEB34: .4byte sub_80DEB38
- thumb_func_end sub_80DE918
-
- thumb_func_start sub_80DEB38
-sub_80DEB38: @ 80DEB38
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DEB5C @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080DEBEE
- cmp r1, 0x1
- bgt _080DEB60
- cmp r1, 0
- beq _080DEB6E
- b _080DECA4
- .align 2, 0
-_080DEB5C: .4byte gTasks
-_080DEB60:
- cmp r1, 0x2
- bne _080DEB66
- b _080DEC80
-_080DEB66:
- cmp r1, 0x3
- bne _080DEB6C
- b _080DEC94
-_080DEB6C:
- b _080DECA4
-_080DEB6E:
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080DEBCE
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DEBCE
- strh r1, [r4, 0x12]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DEBA4
- ldrh r1, [r4, 0x18]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DEBB2
- adds r0, r1, 0x1
- strh r0, [r4, 0x18]
- b _080DEBB2
-_080DEBA4:
- ldrh r1, [r4, 0x1A]
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080DEBB2
- subs r0, r1, 0x1
- strh r0, [r4, 0x1A]
-_080DEBB2:
- ldr r2, _080DEBE0 @ =REG_BLDALPHA
- ldrh r0, [r4, 0x1A]
- lsls r0, 8
- ldrh r1, [r4, 0x18]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0x17
- ble _080DEBCE
- movs r0, 0
- strh r0, [r4, 0x16]
- movs r0, 0x1
- strh r0, [r4, 0x14]
-_080DEBCE:
- ldrh r1, [r4, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080DEBE4
- subs r0, r1, 0x1
- strh r0, [r4, 0x1C]
- b _080DECA4
- .align 2, 0
-_080DEBE0: .4byte REG_BLDALPHA
-_080DEBE4:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080DECA4
- b _080DEC8C
-_080DEBEE:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DECA4
- movs r0, 0
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
- ands r0, r1
- lsls r0, 16
- cmp r0, 0
- beq _080DEC1E
- ldrh r1, [r4, 0x18]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080DEC2C
- subs r0, r1, 0x1
- strh r0, [r4, 0x18]
- b _080DEC2C
-_080DEC1E:
- ldrh r1, [r4, 0x1A]
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DEC2C
- adds r0, r1, 0x1
- strh r0, [r4, 0x1A]
-_080DEC2C:
- ldr r2, _080DEC48 @ =REG_BLDALPHA
- ldrh r0, [r4, 0x1A]
- lsls r0, 8
- ldrh r1, [r4, 0x18]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, [r4, 0x18]
- movs r0, 0x80
- lsls r0, 13
- cmp r1, r0
- bne _080DECA4
- movs r5, 0
- b _080DEC70
- .align 2, 0
-_080DEC48: .4byte REG_BLDALPHA
-_080DEC4C:
- adds r1, r5, 0
- adds r1, 0xD
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x8
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DEC7C @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080DEC70:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r5, r0
- blt _080DEC4C
- b _080DEC8C
- .align 2, 0
-_080DEC7C: .4byte gSprites
-_080DEC80:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- cmp r0, 0
- ble _080DECA4
-_080DEC8C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080DECA4
-_080DEC94:
- ldr r0, _080DECAC @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080DECA4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DECAC: .4byte REG_BLDCNT
- thumb_func_end sub_80DEB38
-
- thumb_func_start sub_80DECB0
-sub_80DECB0: @ 80DECB0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080DECF8 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080DECFC @ =gUnknown_03004240
- strh r1, [r0]
- ldr r1, _080DED00 @ =REG_WININ
- ldr r2, _080DED04 @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0x20
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0xC8
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x10
- strh r0, [r1]
- ldr r0, _080DED08 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080DECF4
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080DED0C
-_080DECF4:
- movs r6, 0x28
- b _080DED0E
- .align 2, 0
-_080DECF8: .4byte gUnknown_030042C4
-_080DECFC: .4byte gUnknown_03004240
-_080DED00: .4byte REG_WININ
-_080DED04: .4byte 0x00003f3f
-_080DED08: .4byte gBattleAnimBankAttacker
-_080DED0C:
- movs r6, 0xC8
-_080DED0E:
- ldr r1, _080DED4C @ =gUnknown_030042C4
- lsls r3, r6, 16
- asrs r2, r3, 16
- lsls r0, r2, 8
- orrs r0, r2
- strh r0, [r1]
- ldr r1, _080DED50 @ =gUnknown_03004240
- movs r5, 0x28
- ldr r0, _080DED54 @ =0x00002828
- strh r0, [r1]
- lsrs r3, 16
- movs r1, 0xF0
- subs r1, r2
- movs r4, 0x48
- ldr r2, _080DED58 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r2
- strh r3, [r0, 0xA]
- strh r1, [r0, 0xC]
- strh r5, [r0, 0xE]
- strh r4, [r0, 0x10]
- strh r6, [r0, 0x12]
- strh r5, [r0, 0x14]
- ldr r1, _080DED5C @ =sub_80DED60
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DED4C: .4byte gUnknown_030042C4
-_080DED50: .4byte gUnknown_03004240
-_080DED54: .4byte 0x00002828
-_080DED58: .4byte gTasks
-_080DED5C: .4byte sub_80DED60
- thumb_func_end sub_80DECB0
-
- thumb_func_start sub_80DED60
-sub_80DED60: @ 80DED60
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DEE80 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0x8]
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
- ldrh r5, [r4, 0xA]
- ldrh r7, [r4, 0xC]
- ldrh r0, [r4, 0xE]
- mov r10, r0
- ldrh r2, [r4, 0x10]
- str r2, [sp, 0xC]
- ldrh r0, [r4, 0x12]
- ldrh r2, [r4, 0x14]
- mov r8, r2
- lsls r1, 16
- asrs r6, r1, 16
- cmp r6, 0xF
- ble _080DED9C
- b _080DEE8C
-_080DED9C:
- lsls r0, 16
- asrs r0, 16
- bl __floatsidf
- str r0, [sp, 0x10]
- str r1, [sp, 0x14]
- lsls r0, r5, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _080DEE84 @ =0x3fb00000
- ldr r3, _080DEE88 @ =0x00000000
- bl __muldf3
- adds r5, r1, 0
- adds r4, r0, 0
- adds r0, r6, 0
- bl __floatsidf
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- adds r1, r5, 0
- adds r0, r4, 0
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- bl __subdf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- lsls r0, r7, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _080DEE84 @ =0x3fb00000
- ldr r3, _080DEE88 @ =0x00000000
- bl __muldf3
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- bl __adddf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r7, r0, 16
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- bl __floatsidf
- adds r5, r1, 0
- adds r4, r0, 0
- mov r2, r10
- lsls r0, r2, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _080DEE84 @ =0x3fb00000
- ldr r3, _080DEE88 @ =0x00000000
- bl __muldf3
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- bl __subdf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, [sp, 0xC]
- lsls r0, r1, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _080DEE84 @ =0x3fb00000
- ldr r3, _080DEE88 @ =0x00000000
- bl __muldf3
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- bl __adddf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r5, r0, 16
- b _080DEEBA
- .align 2, 0
-_080DEE80: .4byte gTasks
-_080DEE84: .4byte 0x3fb00000
-_080DEE88: .4byte 0x00000000
-_080DEE8C:
- movs r2, 0
- mov r9, r2
- movs r7, 0xF0
- movs r6, 0
- movs r5, 0x70
- str r6, [sp]
- str r6, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r3, 0
- bl sub_80791A8
- lsls r0, 16
- lsrs r0, 16
- str r6, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080DEEDC @ =sub_80DEEE8
- str r0, [r4]
-_080DEEBA:
- ldr r1, _080DEEE0 @ =gUnknown_030042C4
- mov r2, r9
- lsls r0, r2, 8
- orrs r7, r0
- strh r7, [r1]
- ldr r1, _080DEEE4 @ =gUnknown_03004240
- lsls r0, r6, 8
- orrs r5, r0
- strh r5, [r1]
- 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
-_080DEEDC: .4byte sub_80DEEE8
-_080DEEE0: .4byte gUnknown_030042C4
-_080DEEE4: .4byte gUnknown_03004240
- thumb_func_end sub_80DED60
-
- thumb_func_start sub_80DEEE8
-sub_80DEEE8: @ 80DEEE8
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080DEF28 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080DEF20
- ldr r0, _080DEF2C @ =gUnknown_030042C4
- strh r2, [r0]
- ldr r0, _080DEF30 @ =gUnknown_03004240
- strh r2, [r0]
- ldr r0, _080DEF34 @ =REG_WININ
- ldr r4, _080DEF38 @ =0x00003f3f
- adds r1, r4, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x6
- strh r2, [r0]
- adds r0, 0x4
- strh r2, [r0]
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_080DEF20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DEF28: .4byte gPaletteFade
-_080DEF2C: .4byte gUnknown_030042C4
-_080DEF30: .4byte gUnknown_03004240
-_080DEF34: .4byte REG_WININ
-_080DEF38: .4byte 0x00003f3f
- thumb_func_end sub_80DEEE8
-
- thumb_func_start sub_80DEF3C
-sub_80DEF3C: @ 80DEF3C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080DEF68 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080DEF70
- movs r2, 0x18
- ldr r3, _080DEF6C @ =0x0000fffe
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r4, 0x3]
- b _080DEF74
- .align 2, 0
-_080DEF68: .4byte gBattleAnimBankAttacker
-_080DEF6C: .4byte 0x0000fffe
-_080DEF70:
- ldr r2, _080DEF90 @ =0x0000ffe8
- movs r3, 0x2
-_080DEF74:
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- strh r3, [r4, 0x30]
- movs r0, 0x3C
- strh r0, [r4, 0x2E]
- ldr r0, _080DEF94 @ =sub_80DEF98
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DEF90: .4byte 0x0000ffe8
-_080DEF94: .4byte sub_80DEF98
- thumb_func_end sub_80DEF3C
-
- thumb_func_start sub_80DEF98
-sub_80DEF98: @ 80DEF98
- push {r4,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _080DEFAA
- subs r0, r1, 0x1
- b _080DF00E
-_080DEFAA:
- ldrh r0, [r3, 0x30]
- ldrh r4, [r3, 0x24]
- adds r1, r0, r4
- strh r1, [r3, 0x24]
- adds r0, r1, 0x7
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xE
- bls _080DF010
- ldrh r0, [r3, 0x20]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r0, 0
- strh r0, [r3, 0x24]
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r4, _080DEFFC @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080DF000 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080DF00C
- movs r0, 0x1E
- strh r0, [r3, 0x2E]
- ldr r0, _080DF004 @ =sub_80782D8
- str r0, [r3, 0x1C]
- ldr r1, _080DF008 @ =sub_80DF018
- adds r0, r3, 0
- bl StoreSpriteCallbackInData6
- b _080DF010
- .align 2, 0
-_080DEFFC: .4byte 0x000003ff
-_080DF000: .4byte 0xfffffc00
-_080DF004: .4byte sub_80782D8
-_080DF008: .4byte sub_80DF018
-_080DF00C:
- movs r0, 0x28
-_080DF00E:
- strh r0, [r3, 0x2E]
-_080DF010:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DEF98
-
- thumb_func_start sub_80DF018
-sub_80DF018: @ 80DF018
- push {r4,lr}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- cmp r2, 0
- bne _080DF044
- ldr r1, _080DF040 @ =REG_BLDCNT
- movs r4, 0xFD
- lsls r4, 6
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x10
- strh r0, [r1]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- strh r2, [r3, 0x30]
- strh r2, [r3, 0x32]
- b _080DF082
- .align 2, 0
-_080DF040: .4byte REG_BLDCNT
-_080DF044:
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0x1
- bgt _080DF054
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _080DF082
-_080DF054:
- movs r0, 0
- strh r0, [r3, 0x30]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- ldr r2, _080DF088 @ =REG_BLDALPHA
- movs r1, 0x10
- subs r1, r0
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r4, 0x32
- ldrsh r0, [r3, r4]
- cmp r0, 0x10
- bne _080DF082
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080DF08C @ =sub_80DF090
- str r0, [r3, 0x1C]
-_080DF082:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF088: .4byte REG_BLDALPHA
-_080DF08C: .4byte sub_80DF090
- thumb_func_end sub_80DF018
-
- thumb_func_start sub_80DF090
-sub_80DF090: @ 80DF090
- push {lr}
- ldr r1, _080DF0AC @ =REG_BLDCNT
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- ldr r1, _080DF0B0 @ =gUnknown_030042C4
- strh r2, [r1]
- ldr r1, _080DF0B4 @ =gUnknown_03004240
- strh r2, [r1]
- bl move_anim_8072740
- pop {r0}
- bx r0
- .align 2, 0
-_080DF0AC: .4byte REG_BLDCNT
-_080DF0B0: .4byte gUnknown_030042C4
-_080DF0B4: .4byte gUnknown_03004240
- thumb_func_end sub_80DF090
-
- thumb_func_start sub_80DF0B8
-sub_80DF0B8: @ 80DF0B8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0xC
- bl Sin
- strh r0, [r4, 0x24]
- ldr r0, _080DF120 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DF0DC
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
-_080DF0DC:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x6
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080DF12C
- ldr r0, _080DF124 @ =0x0000050b
- strh r0, [r4, 0x3A]
- ldr r1, _080DF128 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x3A]
- strh r0, [r1]
- b _080DF17E
- .align 2, 0
-_080DF120: .4byte gBattleAnimBankAttacker
-_080DF124: .4byte 0x0000050b
-_080DF128: .4byte REG_BLDCNT
-_080DF12C:
- cmp r0, 0x1E
- ble _080DF17E
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x3A]
- lsls r0, r1, 16
- asrs r0, 24
- lsls r0, 16
- movs r2, 0xFF
- ands r2, r1
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r3, r0, 16
- cmp r3, 0x10
- bls _080DF150
- movs r3, 0x10
-_080DF150:
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r0, 0
- bge _080DF15C
- movs r2, 0
-_080DF15C:
- ldr r1, _080DF184 @ =REG_BLDALPHA
- lsls r0, r3, 8
- orrs r0, r2
- strh r0, [r1]
- strh r0, [r4, 0x3A]
- cmp r3, 0x10
- bne _080DF17E
- cmp r2, 0
- bne _080DF17E
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080DF188 @ =sub_80DF18C
- str r0, [r4, 0x1C]
-_080DF17E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF184: .4byte REG_BLDALPHA
-_080DF188: .4byte sub_80DF18C
- thumb_func_end sub_80DF0B8
-
- thumb_func_start sub_80DF18C
-sub_80DF18C: @ 80DF18C
- push {lr}
- ldr r1, _080DF1A0 @ =REG_BLDCNT
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- bl move_anim_8072740
- pop {r0}
- bx r0
- .align 2, 0
-_080DF1A0: .4byte REG_BLDCNT
- thumb_func_end sub_80DF18C
-
- thumb_func_start sub_80DF1A4
-sub_80DF1A4: @ 80DF1A4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080DF23C @ =gTasks
- adds r4, r0
- movs r6, 0
- strh r6, [r4, 0x8]
- movs r0, 0x10
- mov r8, r0
- mov r2, r8
- strh r2, [r4, 0xA]
- ldr r5, _080DF240 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1A]
- ldrb r0, [r5]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- asrs r1, 1
- adds r1, 0x8
- strh r1, [r4, 0x1E]
- strh r6, [r4, 0x16]
- ldrb r0, [r5]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x12]
- ldrb r0, [r5]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x2
- strh r0, [r4, 0x14]
- strh r6, [r4, 0xE]
- mov r0, r8
- strh r0, [r4, 0x10]
- ldr r1, _080DF244 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- strh r6, [r4, 0x18]
- ldr r0, _080DF248 @ =sub_80DF24C
- str r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF23C: .4byte gTasks
-_080DF240: .4byte gBattleAnimBankAttacker
-_080DF244: .4byte REG_BLDCNT
-_080DF248: .4byte sub_80DF24C
- thumb_func_end sub_80DF1A4
-
- thumb_func_start sub_80DF24C
-sub_80DF24C: @ 80DF24C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _080DF270 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _080DF266
- b _080DF3CC
-_080DF266:
- lsls r0, 2
- ldr r1, _080DF274 @ =_080DF278
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DF270: .4byte gTasks
-_080DF274: .4byte _080DF278
- .align 2, 0
-_080DF278:
- .4byte _080DF290
- .4byte _080DF300
- .4byte _080DF342
- .4byte _080DF356
- .4byte _080DF3AC
- .4byte _080DF3BC
-_080DF290:
- movs r6, 0
-_080DF292:
- movs r2, 0x1A
- ldrsh r1, [r4, r2]
- movs r0, 0x1C
- ldrsh r2, [r4, r0]
- ldrb r3, [r4, 0x14]
- ldr r0, _080DF2F4 @ =gSpriteTemplate_83DAF80
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080DF2E6
- ldr r1, _080DF2F8 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r1
- strh r7, [r5, 0x2E]
- ldr r0, _080DF2FC @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- movs r1, 0
- lsls r0, 24
- cmp r0, 0
- bne _080DF2C8
- movs r1, 0x1
-_080DF2C8:
- strh r1, [r5, 0x30]
- movs r0, 0x2A
- muls r0, r6
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r4, 0x1E]
- strh r0, [r5, 0x34]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 1
- strh r0, [r5, 0x38]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
-_080DF2E6:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _080DF292
- b _080DF3B4
- .align 2, 0
-_080DF2F4: .4byte gSpriteTemplate_83DAF80
-_080DF2F8: .4byte gSprites
-_080DF2FC: .4byte gBattleAnimBankAttacker
-_080DF300:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DF31E
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0xD
- bgt _080DF32C
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _080DF32C
-_080DF31E:
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0x4
- ble _080DF32C
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
-_080DF32C:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- ldrh r3, [r4, 0xE]
- ldrh r2, [r4, 0x10]
- cmp r0, 0xE
- bne _080DF39C
- cmp r2, 0x4
- bne _080DF39C
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080DF396
-_080DF342:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080DF3CC
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080DF3B4
-_080DF356:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DF374
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080DF382
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _080DF382
-_080DF374:
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DF382
- adds r0, r1, 0x1
- strh r0, [r4, 0x10]
-_080DF382:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- ldrh r3, [r4, 0xE]
- ldrh r2, [r4, 0x10]
- cmp r0, 0
- bne _080DF39C
- cmp r2, 0x10
- bne _080DF39C
- movs r0, 0x1
- strh r0, [r4, 0x18]
-_080DF396:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080DF39C:
- ldr r1, _080DF3A8 @ =REG_BLDALPHA
- lsls r0, r2, 8
- orrs r0, r3
- strh r0, [r1]
- b _080DF3CC
- .align 2, 0
-_080DF3A8: .4byte REG_BLDALPHA
-_080DF3AC:
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080DF3CC
-_080DF3B4:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080DF3CC
-_080DF3BC:
- ldr r0, _080DF3D4 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r7, 0
- bl DestroyAnimVisualTask
-_080DF3CC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF3D4: .4byte REG_BLDCNT
- thumb_func_end sub_80DF24C
-
- thumb_func_start sub_80DF3D8
-sub_80DF3D8: @ 80DF3D8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DF3EA
- ldrh r0, [r4, 0x32]
- adds r0, 0x2
- b _080DF3EE
-_080DF3EA:
- ldrh r0, [r4, 0x32]
- subs r0, 0x2
-_080DF3EE:
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x32]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- subs r0, 0x41
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7E
- bhi _080DF430
- ldr r2, _080DF42C @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x12]
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- b _080DF444
- .align 2, 0
-_080DF42C: .4byte gTasks
-_080DF430:
- ldr r2, _080DF498 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x3
- ldrb r1, [r0, 0x12]
- ands r1, r2
-_080DF444:
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- lsls r0, 3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- movs r1, 0x7
- bl Sin
- strh r0, [r4, 0x26]
- ldr r2, _080DF498 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r2
- movs r2, 0x18
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080DF492
- ldrh r0, [r1, 0x16]
- subs r0, 0x1
- strh r0, [r1, 0x16]
- adds r0, r4, 0
- bl DestroySprite
-_080DF492:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF498: .4byte gTasks
- thumb_func_end sub_80DF3D8
-
- thumb_func_start sub_80DF49C
-sub_80DF49C: @ 80DF49C
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- ldr r2, _080DF4E0 @ =gObjectBankIDs
- ldr r1, _080DF4E4 @ =gBattleAnimBankAttacker
- ldrb r1, [r1]
- adds r1, r2
- ldrb r1, [r1]
- strh r1, [r0, 0x38]
- movs r1, 0x80
- strh r1, [r0, 0x2E]
- movs r1, 0xA
- strh r1, [r0, 0x30]
- ldr r2, _080DF4E8 @ =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r0, 0x32]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x34]
- ldr r1, _080DF4EC @ =sub_80DF4F4
- str r1, [r0, 0x1C]
- ldr r2, _080DF4F0 @ =gSprites
- movs r3, 0x38
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_080DF4E0: .4byte gObjectBankIDs
-_080DF4E4: .4byte gBattleAnimBankAttacker
-_080DF4E8: .4byte gBattleAnimArgs
-_080DF4EC: .4byte sub_80DF4F4
-_080DF4F0: .4byte gSprites
- thumb_func_end sub_80DF49C
-
- thumb_func_start sub_80DF4F4
-sub_80DF4F4: @ 80DF4F4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x34]
- movs r1, 0x34
- ldrsh r3, [r5, r1]
- cmp r3, 0
- beq _080DF55C
- subs r0, 0x1
- strh r0, [r5, 0x34]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Sin
- ldr r4, _080DF554 @ =gSprites
- movs r1, 0x38
- ldrsh r2, [r5, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Cos
- movs r1, 0x38
- ldrsh r2, [r5, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x26]
- ldrh r0, [r5, 0x32]
- ldrh r2, [r5, 0x2E]
- adds r1, r0, r2
- strh r1, [r5, 0x2E]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080DF590
- ldr r2, _080DF558 @ =0xffffff00
- adds r0, r1, r2
- strh r0, [r5, 0x2E]
- b _080DF590
- .align 2, 0
-_080DF554: .4byte gSprites
-_080DF558: .4byte 0xffffff00
-_080DF55C:
- ldr r2, _080DF598 @ =gSprites
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x24]
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x8
- strh r1, [r0, 0x22]
- ldr r0, _080DF59C @ =move_anim_8074EE0
- str r0, [r5, 0x1C]
-_080DF590:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF598: .4byte gSprites
-_080DF59C: .4byte move_anim_8074EE0
- thumb_func_end sub_80DF4F4
-
- thumb_func_start sub_80DF5A0
-sub_80DF5A0: @ 80DF5A0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080DF5E8 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- 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 gBattleAnimBankAttacker
-_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 StoreSpriteCallbackInData6
- 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 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080DF698 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankTarget
-_080DF698: .4byte gBattleAnimBankAttacker
-_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 StoreSpriteCallbackInData6
- 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 @ =gBattleAnimBankAttacker
- b _080DF70E
- .align 2, 0
-_080DF704: .4byte gBattleAnimArgs
-_080DF708: .4byte gBattleAnimBankAttacker
-_080DF70C:
- ldr r4, _080DF750 @ =gBattleAnimBankTarget
-_080DF70E:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- 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 StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF750: .4byte gBattleAnimBankTarget
-_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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankAttacker
- thumb_func_end sub_80DF760
-
- thumb_func_start sub_80DF78C
-sub_80DF78C: @ 80DF78C
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r4, _080DF7E0 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r6, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- 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 gBattleAnimBankAttacker
-_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 move_anim_8072740
-_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 @ =gBattleAnimBankAttacker
- 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 @ =gUnknown_030042C0
- b _080DF966
- .align 2, 0
-_080DF950: .4byte gTasks
-_080DF954: .4byte gBattleAnimBankAttacker
-_080DF958: .4byte REG_BG1HOFS
-_080DF95C: .4byte gUnknown_030042C0
-_080DF960:
- ldr r0, _080DF9DC @ =REG_BG2HOFS
- str r0, [sp]
- ldr r0, _080DF9E0 @ =gUnknown_03004288
-_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 @ =gBattleAnimBankAttacker
- 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 gUnknown_03004288
-_080DF9E4: .4byte 0xa2600001
-_080DF9E8: .4byte gBattleAnimBankAttacker
-_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 @ =gBattleAnimBankAttacker
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x3
- bl sub_8077ABC
- 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 gBattleAnimBankAttacker
-_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 move_anim_8072740
-_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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankAttacker
-_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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankAttacker
-_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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankAttacker
-_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 @ =gBattleAnimBankTarget
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x30]
- ldr r5, _080DFE84 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- 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 gBattleAnimBankTarget
-_080DFE84: .4byte gBattleAnimBankAttacker
-_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 move_anim_8072740
-_080DFF14:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80DFE90
-
- 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 @ =gBattleAnimBankAttacker
- b _080DFFEE
- .align 2, 0
-_080DFFE4: .4byte gBattleAnimArgs
-_080DFFE8: .4byte gBattleAnimBankAttacker
-_080DFFEC:
- ldr r0, _080E001C @ =gBattleAnimBankTarget
-_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 gBattleAnimBankTarget
-_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 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- 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 sub_8077ABC
- 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 gBattleAnimBankAttacker
-_080E0158: .4byte 0x0000fff4
-_080E015C:
- ldr r0, _080E01A8 @ =0x0000ffc0
-_080E015E:
- strh r0, [r5, 0x18]
- ldr r0, _080E01AC @ =gBattleAnimBankAttacker
- 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 @ =gUnknown_030041B4
- 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 @ =gUnknown_03004288
- b _080E01EE
- .align 2, 0
-_080E01A8: .4byte 0x0000ffc0
-_080E01AC: .4byte gBattleAnimBankAttacker
-_080E01B0: .4byte gUnknown_030041B4
-_080E01B4: .4byte REG_BLDCNT
-_080E01B8: .4byte 0x00003f42
-_080E01BC: .4byte REG_BG1VOFS
-_080E01C0: .4byte gUnknown_03004288
-_080E01C4:
- ldr r0, _080E0278 @ =gUnknown_03004280
- 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 @ =gUnknown_030042C0
-_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 @ =gUnknown_030042C4
- ldrh r0, [r5, 0x24]
- lsls r0, 8
- ldrh r1, [r5, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E029C @ =gUnknown_03004240
- 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 gUnknown_03004280
-_080E027C: .4byte REG_BLDCNT
-_080E0280: .4byte 0x00003f44
-_080E0284: .4byte REG_BG2VOFS
-_080E0288: .4byte gUnknown_030042C0
-_080E028C: .4byte 0xa2600001
-_080E0290: .4byte gUnknown_03004DE0
-_080E0294: .4byte REG_WINOUT
-_080E0298: .4byte gUnknown_030042C4
-_080E029C: .4byte gUnknown_03004240
-_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 @ =gUnknown_030042C4
- 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 gUnknown_030042C4
-_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 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E0430 @ =gUnknown_03004240
- 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 gUnknown_030042C4
-_080E0430: .4byte gUnknown_03004240
-_080E0434: .4byte REG_WININ
-_080E0438: .4byte 0x00003f3f
-_080E043C:
- ldr r0, _080E045C @ =gBattleAnimBankTarget
- 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 @ =gUnknown_03004288
- b _080E0476
- .align 2, 0
-_080E045C: .4byte gBattleAnimBankTarget
-_080E0460: .4byte REG_BLDCNT
-_080E0464: .4byte 0x00003f42
-_080E0468: .4byte gUnknown_03004288
-_080E046C:
- ldr r1, _080E0480 @ =REG_BLDCNT
- ldr r2, _080E0484 @ =0x00003f44
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E0488 @ =gUnknown_030042C0
-_080E0476:
- ldrh r0, [r1]
- adds r0, 0xF0
- strh r0, [r1]
- b _080E0590
- .align 2, 0
-_080E0480: .4byte REG_BLDCNT
-_080E0484: .4byte 0x00003f44
-_080E0488: .4byte gUnknown_030042C0
-_080E048C:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080E04B4
- mov r0, sp
- bl sub_8078914
- ldr r0, _080E04B0 @ =gUnknown_030041B4
- 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 gUnknown_030041B4
-_080E04B4:
- ldr r0, _080E04CC @ =gUnknown_03004280
- 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 gUnknown_03004280
-_080E04D0:
- ldr r4, _080E051C @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- 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 sub_8077ABC
- 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 gBattleAnimBankTarget
-_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 @ =gUnknown_030042C4
- ldrh r0, [r5, 0x24]
- lsls r0, 8
- ldrh r1, [r5, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E0610 @ =gUnknown_03004240
- 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 gUnknown_030042C4
-_080E0610: .4byte gUnknown_03004240
-_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 @ =gUnknown_030042C4
- 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 gUnknown_030042C4
-_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 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E0790 @ =gUnknown_03004240
- 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 gUnknown_030042C4
-_080E0790: .4byte gUnknown_03004240
-_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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankAttacker
-_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 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankAttacker
- 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 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0A40: .4byte gBattleAnimArgs
-_080E0A44: .4byte sub_8078600
-_080E0A48: .4byte move_anim_8072740
- 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 @ =gUnknown_030042C4
- strh r7, [r0]
- ldr r0, _080E0B54 @ =gUnknown_03004240
- 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 @ =gBattleAnimBankAttacker
- 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 @ =0x02019348
- ldrh r5, [r0]
- b _080E0BCC
- .align 2, 0
-_080E0B50: .4byte gUnknown_030042C4
-_080E0B54: .4byte gUnknown_03004240
-_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 gBattleAnimBankAttacker
-_080E0B78: .4byte gSprites
-_080E0B7C: .4byte gObjectBankIDs
-_080E0B80: .4byte 0x02019348
-_080E0B84:
- ldr r4, _080E0BA4 @ =gBattleAnimBankAttacker
- 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 gBattleAnimBankAttacker
-_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 @ =gBattleAnimBankAttacker
- 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 @ =gUnknown_030042C0
- 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 @ =gUnknown_030041B4
- 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 gBattleAnimBankAttacker
-_080E0C64: .4byte 0x040000d4
-_080E0C68: .4byte 0x85000400
-_080E0C6C: .4byte gUnknown_08D1D574
-_080E0C70: .4byte gUnknown_08D1D410
-_080E0C74: .4byte gUnknown_08D1D54C
-_080E0C78: .4byte gUnknown_030042C0
-_080E0C7C: .4byte gSprites
-_080E0C80: .4byte gUnknown_030041B4
-_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 @ =gUnknown_030042C0
- 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 @ =gUnknown_030042C4
- strh r5, [r0]
- ldr r0, _080E0DFC @ =gUnknown_03004240
- 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 @ =gBattleAnimBankAttacker
- 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 gUnknown_030042C0
-_080E0DF8: .4byte gUnknown_030042C4
-_080E0DFC: .4byte gUnknown_03004240
-_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 gBattleAnimBankAttacker
- 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 @ =gUnknown_0202F7C4
- 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 gUnknown_0202F7C4
-_080E0F18: .4byte gBattleAnimArgs
- thumb_func_end sub_80E0EE8
-
- thumb_func_start sub_80E0F1C
-sub_80E0F1C: @ 80E0F1C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080E0F74 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r5, _080E0F78 @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080E0F7C @ =0x0000ffd8
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _080E0F80 @ =sub_80E0F84
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0F74: .4byte gBattleAnimBankAttacker
-_080E0F78: .4byte gBattleAnimBankTarget
-_080E0F7C: .4byte 0x0000ffd8
-_080E0F80: .4byte sub_80E0F84
- thumb_func_end sub_80E0F1C
-
- thumb_func_start sub_80E0F84
-sub_80E0F84: @ 80E0F84
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080E0FD8
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- movs r0, 0x14
- strh r0, [r5, 0x2E]
- ldr r4, _080E0FE0 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- movs r0, 0x28
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80786EC
- ldr r0, _080E0FE4 @ =sub_80E0FE8
- str r0, [r5, 0x1C]
-_080E0FD8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0FE0: .4byte gBattleAnimBankAttacker
-_080E0FE4: .4byte sub_80E0FE8
- thumb_func_end sub_80E0F84
-
- thumb_func_start sub_80E0FE8
-sub_80E0FE8: @ 80E0FE8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080E0FFC
- adds r0, r4, 0
- bl move_anim_8072740
-_080E0FFC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E0FE8
-
- thumb_func_start sub_80E1004
-sub_80E1004: @ 80E1004
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r0, _080E1064 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080E1024
- ldr r1, _080E1068 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080E1024:
- ldr r4, _080E1068 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, _080E106C @ =gBattleAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r6, 0x36]
- ldr r0, _080E1070 @ =sub_8078B34
- str r0, [r6, 0x1C]
- ldr r1, _080E1074 @ =move_anim_8072740
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1064: .4byte gBattleAnimBankAttacker
-_080E1068: .4byte gBattleAnimArgs
-_080E106C: .4byte gBattleAnimBankTarget
-_080E1070: .4byte sub_8078B34
-_080E1074: .4byte move_anim_8072740
- thumb_func_end sub_80E1004
-
- thumb_func_start sub_80E1078
-sub_80E1078: @ 80E1078
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r4, _080E10F8 @ =gBattleAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077EE4
- lsls r0, 24
- lsrs r7, r0, 24
- bl Random
- movs r4, 0x1F
- adds r5, r4, 0
- ands r5, r0
- bl Random
- ands r4, r0
- adds r1, r5, 0
- cmp r1, 0x10
- ble _080E10C0
- movs r0, 0x10
- subs r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
-_080E10C0:
- lsls r0, r4, 16
- asrs r1, r0, 16
- cmp r1, 0x10
- ble _080E10D0
- movs r0, 0x10
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_080E10D0:
- ldr r0, _080E10FC @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r6, 0x2E]
- mov r1, r8
- adds r0, r1, r5
- strh r0, [r6, 0x32]
- adds r0, r7, r4
- strh r0, [r6, 0x36]
- ldr r0, _080E1100 @ =sub_8078B34
- str r0, [r6, 0x1C]
- ldr r1, _080E1104 @ =move_anim_8074EE0
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E10F8: .4byte gBattleAnimBankTarget
-_080E10FC: .4byte gBattleAnimArgs
-_080E1100: .4byte sub_8078B34
-_080E1104: .4byte move_anim_8074EE0
- thumb_func_end sub_80E1078
-
- thumb_func_start sub_80E1108
-sub_80E1108: @ 80E1108
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x1
- ldr r3, _080E1168 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080E116C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r6, _080E1170 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080E117C
- ldr r4, _080E1174 @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x2]
- adds r0, r2
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r3, [r6, 0x4]
- adds r0, r3
- strh r0, [r5, 0x22]
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- ble _080E1162
- movs r1, 0x1
-_080E1162:
- strh r1, [r5, 0x2E]
- ldr r0, _080E1178 @ =sub_80E1198
- b _080E118A
- .align 2, 0
-_080E1168: .4byte 0x000003ff
-_080E116C: .4byte 0xfffffc00
-_080E1170: .4byte gBattleAnimArgs
-_080E1174: .4byte gBattleAnimBankAttacker
-_080E1178: .4byte sub_80E1198
-_080E117C:
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x20]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x22]
- negs r0, r0
- strh r0, [r5, 0x26]
- ldr r0, _080E1194 @ =sub_80E11D4
-_080E118A:
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1194: .4byte sub_80E11D4
- thumb_func_end sub_80E1108
-
- thumb_func_start sub_80E1198
-sub_80E1198: @ 80E1198
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E11B6
- movs r0, 0
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
-_080E11B6:
- ldrh r0, [r2, 0x22]
- subs r0, 0x4
- strh r0, [r2, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x4
- negs r1, r1
- cmp r0, r1
- bge _080E11CE
- adds r0, r2, 0
- bl move_anim_8072740
-_080E11CE:
- pop {r0}
- bx r0
- thumb_func_end sub_80E1198
-
- thumb_func_start sub_80E11D4
-sub_80E11D4: @ 80E11D4
- push {lr}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0
- beq _080E11E6
- cmp r1, 0x1
- beq _080E11FC
- b _080E123E
-_080E11E6:
- ldrh r0, [r3, 0x26]
- adds r0, 0x4
- strh r0, [r3, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _080E123E
- strh r1, [r3, 0x26]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _080E123E
-_080E11FC:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- cmp r0, 0
- ble _080E123E
- movs r0, 0
- strh r0, [r3, 0x30]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r2, [r1]
- 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, 0xA
- bne _080E123E
- adds r0, r3, 0
- bl move_anim_8072740
-_080E123E:
- pop {r0}
- bx r0
- thumb_func_end sub_80E11D4
-
- thumb_func_start sub_80E1244
-sub_80E1244: @ 80E1244
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E1264 @ =gTasks
- adds r1, r0, r1
- ldr r0, _080E1268 @ =gBattleAnimArgs
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _080E1270
- ldr r0, _080E126C @ =sub_80E1284
- b _080E1272
- .align 2, 0
-_080E1264: .4byte gTasks
-_080E1268: .4byte gBattleAnimArgs
-_080E126C: .4byte sub_80E1284
-_080E1270:
- ldr r0, _080E1280 @ =sub_80E143C
-_080E1272:
- str r0, [r1]
- ldr r1, [r1]
- adds r0, r2, 0
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080E1280: .4byte sub_80E143C
- thumb_func_end sub_80E1244
-
- thumb_func_start sub_80E1284
-sub_80E1284: @ 80E1284
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E12A8 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080E129E
- b _080E1432
-_080E129E:
- lsls r0, 2
- ldr r1, _080E12AC @ =_080E12B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E12A8: .4byte gTasks
-_080E12AC: .4byte _080E12B0
- .align 2, 0
-_080E12B0:
- .4byte _080E12C4
- .4byte _080E134C
- .4byte _080E135C
- .4byte _080E1400
- .4byte _080E1414
-_080E12C4:
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldr r0, _080E12EC @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1E]
- cmp r0, 0x1
- bne _080E12F8
- ldr r0, _080E12F0 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- ldr r0, _080E12F4 @ =gUnknown_030041B4
- b _080E1300
- .align 2, 0
-_080E12EC: .4byte gBattleAnimBankAttacker
-_080E12F0: .4byte gUnknown_030042C0
-_080E12F4: .4byte gUnknown_030041B4
-_080E12F8:
- ldr r0, _080E133C @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- ldr r0, _080E1340 @ =gUnknown_03004280
-_080E1300:
- ldrh r0, [r0]
- strh r0, [r4, 0x22]
- ldr r0, _080E1344 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r4, 0x24]
- adds r0, 0x20
- strh r0, [r4, 0x26]
- cmp r1, 0
- bge _080E1322
- movs r0, 0
- strh r0, [r4, 0x24]
-_080E1322:
- ldr r2, _080E1348 @ =gSprites
- movs r3, 0x1C
- ldrsh r1, [r4, r3]
- 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 _080E1406
- .align 2, 0
-_080E133C: .4byte gUnknown_03004288
-_080E1340: .4byte gUnknown_03004280
-_080E1344: .4byte gBattleAnimBankAttacker
-_080E1348: .4byte gSprites
-_080E134C:
- ldrb r0, [r4, 0x1E]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- movs r3, 0x26
- ldrsh r2, [r4, r3]
- bl sub_80E1668
- b _080E1406
-_080E135C:
- ldrh r0, [r4, 0xC]
- adds r0, 0x6
- movs r1, 0x7F
- ands r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080E137E
- movs r0, 0
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
-_080E137E:
- ldr r1, _080E13A0 @ =gSineTable
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- ldrh r3, [r4, 0xE]
- adds r2, r0, r3
- strh r2, [r4, 0x12]
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080E13A8
- ldr r1, _080E13A4 @ =gUnknown_030041B4
- b _080E13AA
- .align 2, 0
-_080E13A0: .4byte gSineTable
-_080E13A4: .4byte gUnknown_030041B4
-_080E13A8:
- ldr r1, _080E13CC @ =gUnknown_03004280
-_080E13AA:
- ldrh r0, [r4, 0x22]
- subs r0, r2
- strh r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0x3F
- ble _080E1432
- ldrh r0, [r4, 0x24]
- movs r1, 0x78
- subs r2, r1, r0
- strh r2, [r4, 0x12]
- movs r3, 0x1E
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _080E13D4
- ldr r1, _080E13D0 @ =gUnknown_030041B4
- b _080E13D6
- .align 2, 0
-_080E13CC: .4byte gUnknown_03004280
-_080E13D0: .4byte gUnknown_030041B4
-_080E13D4:
- ldr r1, _080E13F8 @ =gUnknown_03004280
-_080E13D6:
- ldrh r0, [r4, 0x22]
- subs r0, r2
- strh r0, [r1]
- ldr r2, _080E13FC @ =gSprites
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r1, 0x20]
- movs r3, 0x88
- lsls r3, 1
- adds r0, r3, 0
- subs r0, r2
- strh r0, [r1, 0x24]
- b _080E1406
- .align 2, 0
-_080E13F8: .4byte gUnknown_03004280
-_080E13FC: .4byte gSprites
-_080E1400:
- ldr r1, _080E1410 @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080E1406:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E1432
- .align 2, 0
-_080E1410: .4byte gUnknown_03004DC0
-_080E1414:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- ldr r2, _080E1438 @ =gSprites
- movs r0, 0x1C
- ldrsh r1, [r4, 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]
-_080E1432:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1438: .4byte gSprites
- thumb_func_end sub_80E1284
-
- thumb_func_start sub_80E143C
-sub_80E143C: @ 80E143C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E147C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r3]
- movs r4, 0
- strh r4, [r1, 0x24]
- strh r4, [r1, 0x26]
- ldr r0, _080E1480 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E1488
- ldr r0, _080E1484 @ =gUnknown_030041B4
- b _080E148A
- .align 2, 0
-_080E147C: .4byte gSprites
-_080E1480: .4byte gBattleAnimBankAttacker
-_080E1484: .4byte gUnknown_030041B4
-_080E1488:
- ldr r0, _080E1498 @ =gUnknown_03004280
-_080E148A:
- strh r4, [r0]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1498: .4byte gUnknown_03004280
- thumb_func_end sub_80E143C
-
- thumb_func_start sub_80E149C
-sub_80E149C: @ 80E149C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E14BC @ =gTasks
- adds r1, r0, r1
- ldr r0, _080E14C0 @ =gBattleAnimArgs
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _080E14C8
- ldr r0, _080E14C4 @ =sub_80E14DC
- b _080E14CA
- .align 2, 0
-_080E14BC: .4byte gTasks
-_080E14C0: .4byte gBattleAnimArgs
-_080E14C4: .4byte sub_80E14DC
-_080E14C8:
- ldr r0, _080E14D8 @ =sub_80E1560
-_080E14CA:
- str r0, [r1]
- ldr r1, [r1]
- adds r0, r2, 0
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080E14D8: .4byte sub_80E1560
- thumb_func_end sub_80E149C
-
- thumb_func_start sub_80E14DC
-sub_80E14DC: @ 80E14DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E14FC @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _080E1500
- cmp r5, 0x1
- beq _080E1554
- b _080E155A
- .align 2, 0
-_080E14FC: .4byte gTasks
-_080E1500:
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldr r3, _080E1550 @ =gSprites
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r5, [r0, 0x24]
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x22]
- movs r0, 0xA0
- subs r0, r2
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E155A
- .align 2, 0
-_080E1550: .4byte gSprites
-_080E1554:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080E155A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80E14DC
-
- thumb_func_start sub_80E1560
-sub_80E1560: @ 80E1560
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E1584 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _080E1662
- lsls r0, 2
- ldr r1, _080E1588 @ =_080E158C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E1584: .4byte gTasks
-_080E1588: .4byte _080E158C
- .align 2, 0
-_080E158C:
- .4byte _080E15A0
- .4byte _080E15F4
- .4byte _080E1602
- .4byte _080E161C
- .4byte _080E165C
-_080E15A0:
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldr r0, _080E15C4 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1E]
- cmp r0, 0x1
- bne _080E15CC
- ldr r0, _080E15C8 @ =gUnknown_030042C0
- b _080E15CE
- .align 2, 0
-_080E15C4: .4byte gBattleAnimBankAttacker
-_080E15C8: .4byte gUnknown_030042C0
-_080E15CC:
- ldr r0, _080E15EC @ =gUnknown_03004288
-_080E15CE:
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- ldr r0, _080E15F0 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r4, 0x24]
- adds r0, 0x20
- strh r0, [r4, 0x26]
- b _080E164A
- .align 2, 0
-_080E15EC: .4byte gUnknown_03004288
-_080E15F0: .4byte gBattleAnimBankAttacker
-_080E15F4:
- ldrb r0, [r4, 0x1E]
- movs r1, 0x26
- ldrsh r2, [r4, r1]
- movs r1, 0
- bl sub_80E1668
- b _080E164A
-_080E1602:
- ldr r2, _080E1618 @ =gSprites
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x60
- strh r1, [r0, 0x26]
- b _080E164A
- .align 2, 0
-_080E1618: .4byte gSprites
-_080E161C:
- ldr r2, _080E1654 @ =gSprites
- movs r0, 0x1C
- 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]
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x26
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E1662
- ldr r1, _080E1658 @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080E164A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E1662
- .align 2, 0
-_080E1654: .4byte gSprites
-_080E1658: .4byte gUnknown_03004DC0
-_080E165C:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080E1662:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E1560
-
- thumb_func_start sub_80E1668
-sub_80E1668: @ 80E1668
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- cmp r0, 0x1
- bne _080E168C
- ldr r0, _080E1684 @ =gUnknown_030042C0
- ldrh r3, [r0]
- ldr r0, _080E1688 @ =REG_BG1HOFS
- b _080E1692
- .align 2, 0
-_080E1684: .4byte gUnknown_030042C0
-_080E1688: .4byte REG_BG1HOFS
-_080E168C:
- ldr r0, _080E1718 @ =gUnknown_03004288
- ldrh r3, [r0]
- ldr r0, _080E171C @ =REG_BG2HOFS
-_080E1692:
- str r0, [sp]
- lsls r0, r1, 16
- cmp r0, 0
- bge _080E169C
- movs r1, 0
-_080E169C:
- lsls r2, r1, 16
- lsls r0, r4, 16
- asrs r4, r0, 16
- cmp r2, r0
- bge _080E16C8
- ldr r5, _080E1720 @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_080E16AE:
- asrs r2, 16
- lsls r1, r2, 1
- adds r0, r1, r5
- strh r3, [r0]
- adds r1, r6
- strh r3, [r1]
- adds r2, 0x1
- lsls r2, 16
- lsrs r1, r2, 16
- lsls r2, r1, 16
- asrs r0, r2, 16
- cmp r0, r4
- blt _080E16AE
-_080E16C8:
- lsls r1, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _080E16F6
- ldr r4, _080E1720 @ =gUnknown_03004DE0
- lsls r0, r3, 16
- asrs r0, 16
- adds r3, r0, 0
- adds r3, 0xF0
- movs r0, 0xF0
- lsls r0, 3
- adds r5, r4, r0
-_080E16E0:
- asrs r2, r1, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- strh r3, [r0]
- adds r1, r5
- strh r3, [r1]
- adds r2, 0x1
- lsls r1, r2, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _080E16E0
-_080E16F6:
- ldr r0, _080E1724 @ =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
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1718: .4byte gUnknown_03004288
-_080E171C: .4byte REG_BG2HOFS
-_080E1720: .4byte gUnknown_03004DE0
-_080E1724: .4byte 0xa2600001
- thumb_func_end sub_80E1668
-
- thumb_func_start sub_80E1728
-sub_80E1728: @ 80E1728
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _080E173C @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r7, r0, 0
- cmp r1, 0
- bne _080E1744
- ldr r0, _080E1740 @ =gBattleAnimBankAttacker
- b _080E1746
- .align 2, 0
-_080E173C: .4byte gBattleAnimArgs
-_080E1740: .4byte gBattleAnimBankAttacker
-_080E1744:
- ldr r0, _080E17A8 @ =gBattleAnimBankTarget
-_080E1746:
- ldrb r4, [r0]
- movs r6, 0x18
- adds r1, r7, 0
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080E1762
- negs r0, r6
- lsls r0, 16
- lsrs r6, r0, 16
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080E1762:
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1E
- strh r0, [r5, 0x22]
- ldrh r1, [r7, 0xA]
- strh r1, [r5, 0x2E]
- ldrh r1, [r7, 0x4]
- ldrh r2, [r5, 0x20]
- adds r1, r2
- strh r1, [r5, 0x32]
- ldrh r1, [r7, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldrh r0, [r7, 0x8]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80786EC
- ldr r0, _080E17AC @ =sub_80E17B0
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E17A8: .4byte gBattleAnimBankTarget
-_080E17AC: .4byte sub_80E17B0
- thumb_func_end sub_80E1728
-
- thumb_func_start sub_80E17B0
-sub_80E17B0: @ 80E17B0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080E17C4
- adds r0, r4, 0
- bl move_anim_8072740
-_080E17C4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E17B0
-
- thumb_func_start sub_80E17CC
-sub_80E17CC: @ 80E17CC
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080E17E0 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E17E8
- ldr r0, _080E17E4 @ =gBattleAnimBankAttacker
- b _080E17EA
- .align 2, 0
-_080E17E0: .4byte gBattleAnimArgs
-_080E17E4: .4byte gBattleAnimBankAttacker
-_080E17E8:
- ldr r0, _080E1848 @ =gBattleAnimBankTarget
-_080E17EA:
- ldrb r5, [r0]
- adds r0, r5, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E184C @ =0x0000fff0
- adds r0, r2
- ldr r4, _080E1850 @ =gBattleAnimArgs
- movs r3, 0x2
- ldrsh r1, [r4, r3]
- lsls r1, 5
- adds r0, r1
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r6, 0x22]
- ldrh r2, [r6, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r1, r0
- ldr r3, _080E1854 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080E1858 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r6, 0x4]
- ldr r1, _080E185C @ =move_anim_8072740
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x2E]
- ldr r0, _080E1860 @ =sub_80782D8
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1848: .4byte gBattleAnimBankTarget
-_080E184C: .4byte 0x0000fff0
-_080E1850: .4byte gBattleAnimArgs
-_080E1854: .4byte 0x000003ff
-_080E1858: .4byte 0xfffffc00
-_080E185C: .4byte move_anim_8072740
-_080E1860: .4byte sub_80782D8
- thumb_func_end sub_80E17CC
-
- thumb_func_start sub_80E1864
-sub_80E1864: @ 80E1864
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080E1888 @ =gTasks
- adds r4, r0, r1
- ldr r0, _080E188C @ =gBattleAnimArgs
- ldrh r2, [r0, 0x2]
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- adds r6, r0, 0
- cmp r1, 0
- beq _080E1890
- adds r0, r2, 0x3
- b _080E189C
- .align 2, 0
-_080E1888: .4byte gTasks
-_080E188C: .4byte gBattleAnimArgs
-_080E1890:
- ldr r0, _080E18BC @ =gMovePowerMoveAnim
- ldrh r0, [r0]
- movs r1, 0xA
- bl __udivsi3
- adds r0, 0x3
-_080E189C:
- strh r0, [r4, 0x26]
- strh r0, [r4, 0x24]
- adds r1, r6, 0
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0xE]
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x4
- beq _080E18C8
- cmp r0, 0x5
- bne _080E1908
- ldr r0, _080E18C0 @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r4, 0x22]
- ldr r0, _080E18C4 @ =sub_80E1934
- b _080E1926
- .align 2, 0
-_080E18BC: .4byte gMovePowerMoveAnim
-_080E18C0: .4byte gUnknown_030041B0
-_080E18C4: .4byte sub_80E1934
-_080E18C8:
- movs r0, 0
- strh r0, [r4, 0x22]
- movs r5, 0
-_080E18CE:
- lsls r0, r5, 24
- lsrs r0, 24
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080E18F8
- movs r3, 0x22
- ldrsh r0, [r4, r3]
- adds r0, 0x9
- lsls r0, 1
- adds r1, r4, 0
- adds r1, 0x8
- adds r1, r0
- ldr r0, _080E1904 @ =gObjectBankIDs
- adds r0, r5, r0
- ldrb r0, [r0]
- strh r0, [r1]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
-_080E18F8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080E18CE
- b _080E1924
- .align 2, 0
-_080E1904: .4byte gObjectBankIDs
-_080E1908:
- ldrb r0, [r6]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1A]
- cmp r0, 0xFF
- bne _080E1920
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _080E1928
-_080E1920:
- movs r0, 0x1
- strh r0, [r4, 0x22]
-_080E1924:
- ldr r0, _080E1930 @ =sub_80E1A2C
-_080E1926:
- str r0, [r4]
-_080E1928:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1930: .4byte sub_80E1A2C
- thumb_func_end sub_80E1864
-
- thumb_func_start sub_80E1934
-sub_80E1934: @ 80E1934
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E1958 @ =gTasks
- adds r3, r0, r1
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- cmp r1, 0x1
- beq _080E19B8
- cmp r1, 0x1
- bgt _080E195C
- cmp r1, 0
- beq _080E1962
- b _080E1A24
- .align 2, 0
-_080E1958: .4byte gTasks
-_080E195C:
- cmp r1, 0x2
- beq _080E1A18
- b _080E1A24
-_080E1962:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E1A24
- strh r1, [r3, 0xA]
- ldrh r1, [r3, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080E198C
- ldr r1, _080E1988 @ =gUnknown_030041B0
- ldrh r0, [r3, 0x26]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r1]
- b _080E1996
- .align 2, 0
-_080E1988: .4byte gUnknown_030041B0
-_080E198C:
- ldr r0, _080E19B4 @ =gUnknown_030041B0
- ldrh r1, [r3, 0x22]
- ldrh r2, [r3, 0x26]
- subs r1, r2
- strh r1, [r0]
-_080E1996:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r3, r2]
- cmp r0, r1
- bne _080E1A24
- movs r0, 0
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x24]
- subs r0, 0x1
- strh r0, [r3, 0x24]
- b _080E1A0C
- .align 2, 0
-_080E19B4: .4byte gUnknown_030041B0
-_080E19B8:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E1A24
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- ands r1, r0
- cmp r1, 0
- bne _080E19E4
- ldr r1, _080E19E0 @ =gUnknown_030041B0
- ldrh r0, [r3, 0x24]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r1]
- b _080E19EE
- .align 2, 0
-_080E19E0: .4byte gUnknown_030041B0
-_080E19E4:
- ldr r0, _080E1A14 @ =gUnknown_030041B0
- ldrh r1, [r3, 0x22]
- ldrh r2, [r3, 0x24]
- subs r1, r2
- strh r1, [r0]
-_080E19EE:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080E1A24
- movs r0, 0
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x24]
- subs r0, 0x1
- strh r0, [r3, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _080E1A24
-_080E1A0C:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _080E1A24
- .align 2, 0
-_080E1A14: .4byte gUnknown_030041B0
-_080E1A18:
- ldr r1, _080E1A28 @ =gUnknown_030041B0
- ldrh r0, [r3, 0x22]
- strh r0, [r1]
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080E1A24:
- pop {r0}
- bx r0
- .align 2, 0
-_080E1A28: .4byte gUnknown_030041B0
- thumb_func_end sub_80E1934
-
- thumb_func_start sub_80E1A2C
-sub_80E1A2C: @ 80E1A2C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080E1A50 @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080E1A8C
- cmp r5, 0x1
- bgt _080E1A54
- cmp r5, 0
- beq _080E1A5A
- b _080E1B06
- .align 2, 0
-_080E1A50: .4byte gTasks
-_080E1A54:
- cmp r5, 0x2
- beq _080E1AC8
- b _080E1B06
-_080E1A5A:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E1B06
- strh r5, [r4, 0xA]
- adds r0, r4, 0
- bl sub_80E1B10
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080E1B06
- strh r5, [r4, 0xC]
- ldrh r0, [r4, 0x24]
- subs r0, 0x1
- strh r0, [r4, 0x24]
- b _080E1AC0
-_080E1A8C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E1B06
- strh r5, [r4, 0xA]
- adds r0, r4, 0
- bl sub_80E1B10
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080E1B06
- strh r5, [r4, 0xC]
- ldrh r0, [r4, 0x24]
- subs r0, 0x1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _080E1B06
-_080E1AC0:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E1B06
-_080E1AC8:
- movs r2, 0
- movs r7, 0x22
- ldrsh r0, [r4, r7]
- cmp r2, r0
- bge _080E1B00
- ldr r0, _080E1B0C @ =gSprites
- mov r12, r0
- adds r5, r4, 0
- adds r5, 0x8
- movs r6, 0
-_080E1ADC:
- adds r0, r2, 0
- adds r0, 0x9
- lsls r0, 1
- adds r0, r5, r0
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r12
- strh r6, [r0, 0x24]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r2, r0
- blt _080E1ADC
-_080E1B00:
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_080E1B06:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1B0C: .4byte gSprites
- thumb_func_end sub_80E1A2C
-
- thumb_func_start sub_80E1B10
-sub_80E1B10: @ 80E1B10
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0xC]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _080E1B38
- movs r0, 0x24
- ldrsh r1, [r3, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r2, [r3, 0x24]
- adds r0, r4, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 16
- lsrs r4, r1, 16
- b _080E1B48
-_080E1B38:
- movs r1, 0x24
- ldrsh r0, [r3, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- negs r0, r0
- lsls r0, 16
- lsrs r4, r0, 16
-_080E1B48:
- movs r2, 0
- movs r7, 0x22
- ldrsh r0, [r3, r7]
- cmp r2, r0
- bge _080E1B7C
- ldr r6, _080E1B84 @ =gSprites
- adds r5, r3, 0
- adds r5, 0x8
-_080E1B58:
- adds r0, r2, 0
- adds r0, 0x9
- lsls r0, 1
- adds r0, r5, r0
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r4, [r0, 0x24]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x22
- ldrsh r0, [r3, r1]
- cmp r2, r0
- blt _080E1B58
-_080E1B7C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1B84: .4byte gSprites
- thumb_func_end sub_80E1B10
-
- thumb_func_start sub_80E1B88
-sub_80E1B88: @ 80E1B88
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, _080E1BA8 @ =gBattleAnimArgs
- movs r2, 0
- ldr r0, _080E1BAC @ =gMovePowerMoveAnim
- ldrh r0, [r0]
- cmp r0, 0x63
- bls _080E1B9C
- movs r2, 0x1
-_080E1B9C:
- strh r2, [r3, 0x1E]
- adds r0, r1, 0
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080E1BA8: .4byte gBattleAnimArgs
-_080E1BAC: .4byte gMovePowerMoveAnim
- thumb_func_end sub_80E1B88
-
- thumb_func_start sub_80E1BB0
-sub_80E1BB0: @ 80E1BB0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _080E1BC8 @ =gBattleAnimArgs
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _080E1BD0
- ldr r0, _080E1BCC @ =gBattleAnimBankTarget
- b _080E1BD2
- .align 2, 0
-_080E1BC8: .4byte gBattleAnimArgs
-_080E1BCC: .4byte gBattleAnimBankTarget
-_080E1BD0:
- ldr r0, _080E1C40 @ =gBattleAnimBankAttacker
-_080E1BD2:
- ldrb r0, [r0]
- adds r5, r0, 0
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- ble _080E1BE2
- movs r0, 0x2
- eors r5, r0
-_080E1BE2:
- ldr r0, _080E1C44 @ =sub_80E1C58
- ldrb r1, [r6, 0x2]
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080E1C48 @ =gTasks
- adds r4, r0
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x20
- subs r1, r0
- ldr r2, _080E1C4C @ =0x000001ff
- adds r0, r2, 0
- ands r1, r0
- strh r1, [r4, 0xA]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x40
- subs r1, r0
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r4, 0xC]
- ldr r2, _080E1C50 @ =gUnknown_030041B0
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- ldr r0, _080E1C54 @ =gUnknown_030041B8
- strh r1, [r0]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0xE]
- adds r0, r7, 0
- bl DestroyAnimVisualTask
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1C40: .4byte gBattleAnimBankAttacker
-_080E1C44: .4byte sub_80E1C58
-_080E1C48: .4byte gTasks
-_080E1C4C: .4byte 0x000001ff
-_080E1C50: .4byte gUnknown_030041B0
-_080E1C54: .4byte gUnknown_030041B8
- thumb_func_end sub_80E1BB0
-
- thumb_func_start sub_80E1C58
-sub_80E1C58: @ 80E1C58
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080E1C88 @ =gTasks
- adds r2, r0, r1
- ldr r0, _080E1C8C @ =gBattleAnimArgs
- movs r4, 0xE
- ldrsh r1, [r0, r4]
- movs r4, 0xE
- ldrsh r0, [r2, r4]
- cmp r1, r0
- bne _080E1C98
- ldr r0, _080E1C90 @ =gUnknown_030041B0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E1C94 @ =gUnknown_030041B8
- strh r1, [r0]
- adds r0, r3, 0
- bl DestroyTask
- b _080E1CA4
- .align 2, 0
-_080E1C88: .4byte gTasks
-_080E1C8C: .4byte gBattleAnimArgs
-_080E1C90: .4byte gUnknown_030041B0
-_080E1C94: .4byte gUnknown_030041B8
-_080E1C98:
- ldr r1, _080E1CAC @ =gUnknown_030041B0
- ldrh r0, [r2, 0xA]
- strh r0, [r1]
- ldr r1, _080E1CB0 @ =gUnknown_030041B8
- ldrh r0, [r2, 0xC]
- strh r0, [r1]
-_080E1CA4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1CAC: .4byte gUnknown_030041B0
-_080E1CB0: .4byte gUnknown_030041B8
- thumb_func_end sub_80E1C58
-
- thumb_func_start sub_80E1CB4
-sub_80E1CB4: @ 80E1CB4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080E1CEC @ =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]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080E1CF0 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080E1CF4
- ldrh r0, [r5, 0x6]
- negs r0, r0
- strh r0, [r4, 0x30]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- b _080E1D02
- .align 2, 0
-_080E1CEC: .4byte gBattleAnimArgs
-_080E1CF0: .4byte gBattleAnimBankAttacker
-_080E1CF4:
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x36]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080E1D02:
- ldr r0, _080E1D18 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x8]
- strh r0, [r4, 0x34]
- ldr r1, _080E1D1C @ =sub_80E1D20
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1D18: .4byte gBattleAnimArgs
-_080E1D1C: .4byte sub_80E1D20
- thumb_func_end sub_80E1CB4
-
- thumb_func_start sub_80E1D20
-sub_80E1D20: @ 80E1D20
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x1E
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- cmp r0, 0x7F
- bhi _080E1D52
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x5]
- b _080E1D5A
-_080E1D52:
- ldrb r0, [r4, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r4, 0x5]
-_080E1D5A:
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080E1D7E
- adds r0, r4, 0
- bl move_anim_8072740
-_080E1D7E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E1D20
-
- thumb_func_start sub_80E1D84
-sub_80E1D84: @ 80E1D84
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r4, _080E1DBC @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl sub_80E1DC4
- movs r1, 0x2
- ldrsb r1, [r4, r1]
- ldrb r2, [r4, 0x4]
- ldrb r3, [r4, 0x6]
- ldrh r4, [r4, 0x8]
- str r4, [sp]
- bl BeginNormalPaletteFade
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080E1DC0 @ =sub_80E1E0C
- str r0, [r5, 0x1C]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1DBC: .4byte gBattleAnimArgs
-_080E1DC0: .4byte sub_80E1E0C
- thumb_func_end sub_80E1D84
-
- thumb_func_start sub_80E1DC4
-sub_80E1DC4: @ 80E1DC4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- lsls r0, 16
- lsrs r0, 16
- movs r4, 0x1
- mov r8, r0
- mov r1, r8
- ands r1, r4
- mov r8, r1
- lsls r0, 16
- asrs r1, r0, 17
- ands r1, r4
- asrs r2, r0, 18
- ands r2, r4
- asrs r3, r0, 19
- ands r3, r4
- asrs r6, r0, 20
- ands r6, r4
- asrs r5, r0, 21
- ands r5, r4
- asrs r0, 22
- ands r0, r4
- str r6, [sp]
- str r5, [sp, 0x4]
- str r0, [sp, 0x8]
- mov r0, r8
- bl sub_80791A8
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80E1DC4
-
- thumb_func_start sub_80E1E0C
-sub_80E1E0C: @ 80E1E0C
- push {lr}
- adds r2, r0, 0
- ldr r0, _080E1E28 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E1E22
- adds r0, r2, 0
- bl move_anim_8072740
-_080E1E22:
- pop {r0}
- bx r0
- .align 2, 0
-_080E1E28: .4byte gPaletteFade
- thumb_func_end sub_80E1E0C
-
- thumb_func_start sub_80E1E2C
-sub_80E1E2C: @ 80E1E2C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080E1E78 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x2E]
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x32]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x34]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r5, 0x38]
- ldrh r0, [r4, 0xC]
- strh r0, [r5, 0x3A]
- ldrh r0, [r4]
- strh r0, [r5, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- bl sub_80E1DC4
- ldrb r1, [r4, 0x8]
- ldrh r2, [r4, 0x6]
- bl BlendPalettes
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080E1E7C @ =sub_80E1E80
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1E78: .4byte gBattleAnimArgs
-_080E1E7C: .4byte sub_80E1E80
- thumb_func_end sub_80E1E2C
-
- thumb_func_start sub_80E1E80
-sub_80E1E80: @ 80E1E80
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080E1E94
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _080E1F04
-_080E1E94:
- ldr r0, _080E1EB0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E1F04
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E1EB8
- ldr r0, _080E1EB4 @ =sub_80E1F0C
- str r0, [r4, 0x1C]
- b _080E1F04
- .align 2, 0
-_080E1EB0: .4byte gPaletteFade
-_080E1EB4: .4byte sub_80E1F0C
-_080E1EB8:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- bl sub_80E1DC4
- adds r3, r0, 0
- ldrh r1, [r4, 0x30]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080E1EDE
- ldrh r1, [r4, 0x36]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x34]
- adds r0, r3, 0
- bl BlendPalettes
- b _080E1EEC
-_080E1EDE:
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x38]
- adds r0, r3, 0
- bl BlendPalettes
-_080E1EEC:
- ldrh r0, [r4, 0x30]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- eors r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- subs r0, 0x1
- strh r0, [r4, 0x32]
-_080E1F04:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E1E80
-
- thumb_func_start sub_80E1F0C
-sub_80E1F0C: @ 80E1F0C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080E1F38 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E1F32
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- bl sub_80E1DC4
- movs r1, 0
- movs r2, 0
- bl BlendPalettes
- adds r0, r4, 0
- bl move_anim_8072740
-_080E1F32:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1F38: .4byte gPaletteFade
- thumb_func_end sub_80E1F0C
-
- thumb_func_start sub_80E1F3C
-sub_80E1F3C: @ 80E1F3C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080E1F80 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- movs r2, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r2, [r4, 0x2E]
- movs r0, 0xA
- strh r0, [r4, 0x30]
- movs r0, 0x8
- strh r0, [r4, 0x32]
- movs r0, 0x28
- strh r0, [r4, 0x34]
- movs r0, 0x70
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x38]
- ldr r1, _080E1F84 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, _080E1F88 @ =sub_8078174
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1F80: .4byte gBattleAnimArgs
-_080E1F84: .4byte move_anim_8074EE0
-_080E1F88: .4byte sub_8078174
- thumb_func_end sub_80E1F3C
-
- thumb_func_start sub_80E1F8C
-sub_80E1F8C: @ 80E1F8C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E1FD0 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r3, _080E1FD4 @ =gBattleAnimArgs
- ldrh r1, [r3]
- movs r5, 0
- strh r1, [r4, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r4, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r4, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r4, 0xE]
- ldrh r2, [r3, 0x8]
- strh r2, [r4, 0x10]
- ldrh r1, [r3, 0xA]
- strh r1, [r4, 0x12]
- strh r5, [r4, 0x18]
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- bl sub_80E1FDC
- ldr r0, _080E1FD8 @ =sub_80E202C
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1FD0: .4byte gTasks
-_080E1FD4: .4byte gBattleAnimArgs
-_080E1FD8: .4byte sub_80E202C
- thumb_func_end sub_80E1F8C
-
- thumb_func_start sub_80E1FDC
-sub_80E1FDC: @ 80E1FDC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r1, _080E2028 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- bl sub_80E1DC4
- movs r1, 0xA
- ldrsb r1, [r4, r1]
- ldrh r2, [r4, 0x12]
- str r2, [sp]
- adds r2, r5, 0
- adds r3, r6, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x18]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x18]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2028: .4byte gTasks
- thumb_func_end sub_80E1FDC
-
- thumb_func_start sub_80E202C
-sub_80E202C: @ 80E202C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- ldr r0, _080E2064 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E208E
- ldr r1, _080E2068 @ =gTasks
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0xC
- ldrsh r0, [r3, r5]
- adds r6, r1, 0
- adds r5, r2, 0
- cmp r0, 0
- ble _080E2088
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080E206C
- ldrb r1, [r3, 0xE]
- ldrb r2, [r3, 0x10]
- b _080E2070
- .align 2, 0
-_080E2064: .4byte gPaletteFade
-_080E2068: .4byte gTasks
-_080E206C:
- ldrb r1, [r3, 0x10]
- ldrb r2, [r3, 0xE]
-_080E2070:
- adds r0, r5, r4
- lsls r0, 3
- adds r0, r6
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _080E2080
- movs r2, 0
-_080E2080:
- adds r0, r4, 0
- bl sub_80E1FDC
- b _080E208E
-_080E2088:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080E208E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E202C
-
- thumb_func_start sub_80E2094
-sub_80E2094: @ 80E2094
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E20D8 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r3, _080E20DC @ =gBattleAnimArgs
- ldrh r1, [r3]
- movs r5, 0
- strh r1, [r4, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r4, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r4, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r4, 0xE]
- ldrh r2, [r3, 0x8]
- strh r2, [r4, 0x10]
- ldrh r1, [r3, 0xA]
- strh r1, [r4, 0x12]
- strh r5, [r4, 0x18]
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- bl sub_80E20E4
- ldr r0, _080E20E0 @ =sub_80E2140
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E20D8: .4byte gTasks
-_080E20DC: .4byte gBattleAnimArgs
-_080E20E0: .4byte sub_80E2140
- thumb_func_end sub_80E2094
-
- thumb_func_start sub_80E20E4
-sub_80E20E4: @ 80E20E4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r1, _080E213C @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrh r0, [r4, 0x8]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r2, 0x1
- lsls r2, r0
- movs r1, 0xA
- ldrsb r1, [r4, r1]
- ldrh r0, [r4, 0x12]
- str r0, [sp]
- adds r0, r2, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x18]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x18]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E213C: .4byte gTasks
- thumb_func_end sub_80E20E4
-
- thumb_func_start sub_80E2140
-sub_80E2140: @ 80E2140
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- ldr r0, _080E2178 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E21A2
- ldr r1, _080E217C @ =gTasks
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0xC
- ldrsh r0, [r3, r5]
- adds r6, r1, 0
- adds r5, r2, 0
- cmp r0, 0
- ble _080E219C
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080E2180
- ldrb r1, [r3, 0xE]
- ldrb r2, [r3, 0x10]
- b _080E2184
- .align 2, 0
-_080E2178: .4byte gPaletteFade
-_080E217C: .4byte gTasks
-_080E2180:
- ldrb r1, [r3, 0x10]
- ldrb r2, [r3, 0xE]
-_080E2184:
- adds r0, r5, r4
- lsls r0, 3
- adds r0, r6
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _080E2194
- movs r2, 0
-_080E2194:
- adds r0, r4, 0
- bl sub_80E20E4
- b _080E21A2
-_080E219C:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080E21A2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E2140
-
- thumb_func_start sub_80E21A8
-sub_80E21A8: @ 80E21A8
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E2208 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r5, _080E220C @ =gBattleAnimArgs
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x8]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xC]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0xE]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x10]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x12]
- ldrh r0, [r5, 0xC]
- strh r0, [r4, 0x14]
- ldrh r0, [r5]
- strh r0, [r4, 0x16]
- ldrh r0, [r5]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- ldrb r3, [r5, 0x8]
- ldrh r0, [r5, 0x6]
- str r0, [sp]
- adds r0, r1, 0
- movs r1, 0
- adds r2, r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080E2210 @ =sub_80E2214
- str r0, [r4]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2208: .4byte gTasks
-_080E220C: .4byte gBattleAnimArgs
-_080E2210: .4byte sub_80E2214
- thumb_func_end sub_80E21A8
-
- thumb_func_start sub_80E2214
-sub_80E2214: @ 80E2214
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080E2238 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x8]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080E223C
- subs r0, r1, 0x1
- strh r0, [r4, 0x8]
- b _080E22C0
- .align 2, 0
-_080E2238: .4byte gTasks
-_080E223C:
- ldr r0, _080E2258 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E22C0
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080E2260
- ldr r0, _080E225C @ =sub_80E22CC
- str r0, [r4]
- b _080E22C0
- .align 2, 0
-_080E2258: .4byte gPaletteFade
-_080E225C: .4byte sub_80E22CC
-_080E2260:
- ldrh r0, [r4, 0x16]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r2, 0x1
- lsls r2, r0
- ldrh r1, [r4, 0xA]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080E228E
- ldrb r3, [r4, 0x10]
- ldrh r0, [r4, 0xE]
- str r0, [sp]
- adds r0, r2, 0
- movs r1, 0
- adds r2, r3, 0
- bl BeginNormalPaletteFade
- b _080E229E
-_080E228E:
- ldrb r3, [r4, 0x14]
- ldrh r0, [r4, 0x12]
- str r0, [sp]
- adds r0, r2, 0
- movs r1, 0
- adds r2, r3, 0
- bl BeginNormalPaletteFade
-_080E229E:
- ldr r0, _080E22C8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- movs r3, 0x80
- lsls r3, 1
- adds r2, r3, 0
- eors r0, r2
- strh r0, [r1, 0xA]
- movs r2, 0xFF
- ands r0, r2
- strh r0, [r1, 0x8]
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
-_080E22C0:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E22C8: .4byte gTasks
- thumb_func_end sub_80E2214
-
- thumb_func_start sub_80E22CC
-sub_80E22CC: @ 80E22CC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E231C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080E2312
- ldr r1, _080E2320 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x16]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- str r5, [sp]
- adds r0, r1, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl BeginNormalPaletteFade
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080E2312:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E231C: .4byte gPaletteFade
-_080E2320: .4byte gTasks
- thumb_func_end sub_80E22CC
-
- thumb_func_start sub_80E2324
-sub_80E2324: @ 80E2324
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r2, 0
- ldr r0, _080E239C @ =gBattleAnimBankAttacker
- ldrb r6, [r0]
- ldr r0, _080E23A0 @ =gBattleAnimBankTarget
- ldrb r7, [r0]
- ldr r4, _080E23A4 @ =gBattleAnimArgs
- ldrh r1, [r4]
- movs r5, 0x80
- lsls r5, 1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080E235E
- str r2, [sp]
- str r2, [sp, 0x4]
- str r2, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r3, 0
- bl sub_80791A8
- adds r2, r0, 0
-_080E235E:
- ldrh r1, [r4, 0x2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080E2370
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r6
- orrs r2, r0
-_080E2370:
- ldrh r1, [r4, 0x4]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080E2382
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r7
- orrs r2, r0
-_080E2382:
- adds r0, r2, 0
- bl InvertPlttBuffer
- mov r0, r8
- bl DestroyAnimVisualTask
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E239C: .4byte gBattleAnimBankAttacker
-_080E23A0: .4byte gBattleAnimBankTarget
-_080E23A4: .4byte gBattleAnimArgs
- thumb_func_end sub_80E2324
-
- thumb_func_start unref_sub_80E23A8
-unref_sub_80E23A8: @ 80E23A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r5, 0
- ldr r1, _080E249C @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E23EA
- ldr r1, _080E24A0 @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0xC]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0xE]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x10]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0xA]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x12]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x14]
- ldrh r0, [r1, 0xC]
- strh r0, [r4, 0x16]
-_080E23EA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _080E24A4 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- mov r9, r0
- ldr r0, _080E24A8 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- mov r10, r0
- ldrh r1, [r4, 0xC]
- movs r7, 0x80
- lsls r7, 1
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080E240C
- ldr r5, _080E24AC @ =0x0000ffff
-_080E240C:
- movs r6, 0x1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _080E243C
- ldr r2, _080E24B0 @ =gSprites
- ldr r0, _080E24B4 @ =gHealthboxIDs
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x14
- adds r0, r2
- ldr r0, [r0]
- ldrh r0, [r0, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r1, r6, 0
- lsls r1, r0
- lsls r1, 16
- orrs r5, r1
-_080E243C:
- ldrh r1, [r4, 0xE]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080E2450
- adds r0, r6, 0
- mov r2, r9
- lsls r0, r2
- lsls r0, 16
- orrs r5, r0
-_080E2450:
- ldrh r1, [r4, 0x10]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080E2464
- adds r0, r6, 0
- mov r1, r10
- lsls r0, r1
- lsls r0, 16
- orrs r5, r0
-_080E2464:
- movs r1, 0x12
- ldrsb r1, [r4, r1]
- movs r2, 0x14
- ldrsb r2, [r4, r2]
- movs r3, 0x16
- ldrsb r3, [r4, r3]
- adds r0, r5, 0
- bl TintPlttBuffer
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080E248E
- adds r0, r5, 0
- bl UnfadePlttBuffer
- mov r0, r8
- bl DestroyAnimVisualTask
-_080E248E:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E249C: .4byte gTasks
-_080E24A0: .4byte gBattleAnimArgs
-_080E24A4: .4byte gBattleAnimBankAttacker
-_080E24A8: .4byte gBattleAnimBankTarget
-_080E24AC: .4byte 0x0000ffff
-_080E24B0: .4byte gSprites
-_080E24B4: .4byte gHealthboxIDs
- thumb_func_end unref_sub_80E23A8
-
- thumb_func_start sub_80E24B8
-sub_80E24B8: @ 80E24B8
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080E24EC @ =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x34]
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _080E2500
- cmp r0, 0x1
- bgt _080E24F0
- cmp r0, 0
- beq _080E24F6
- b _080E2518
- .align 2, 0
-_080E24EC: .4byte gBattleAnimArgs
-_080E24F0:
- cmp r0, 0x2
- beq _080E2508
- b _080E2518
-_080E24F6:
- ldr r1, _080E24FC @ =gUnknown_030041B0
- b _080E250A
- .align 2, 0
-_080E24FC: .4byte gUnknown_030041B0
-_080E2500:
- ldr r1, _080E2504 @ =gUnknown_030041B8
- b _080E250A
- .align 2, 0
-_080E2504: .4byte gUnknown_030041B8
-_080E2508:
- ldr r1, _080E2514 @ =gSpriteCoordOffsetX
-_080E250A:
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- b _080E2520
- .align 2, 0
-_080E2514: .4byte gSpriteCoordOffsetX
-_080E2518:
- ldr r1, _080E2550 @ =gSpriteCoordOffsetY
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
-_080E2520:
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- lsls r0, 16
- orrs r1, r0
- ldr r0, [r1]
- strh r0, [r4, 0x36]
- ldr r0, _080E2554 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x6]
- strh r0, [r4, 0x38]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080E2544
- bl sub_80E260C
-_080E2544:
- ldr r0, _080E2558 @ =sub_80E255C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2550: .4byte gSpriteCoordOffsetY
-_080E2554: .4byte gBattleAnimArgs
-_080E2558: .4byte sub_80E255C
- thumb_func_end sub_80E24B8
-
- thumb_func_start sub_80E255C
-sub_80E255C: @ 80E255C
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x34]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _080E25A0
- subs r0, r1, 0x1
- strh r0, [r3, 0x34]
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _080E257E
- subs r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _080E25FA
-_080E257E:
- ldrh r0, [r3, 0x32]
- strh r0, [r3, 0x30]
- movs r0, 0x3A
- ldrsh r1, [r3, r0]
- movs r2, 0x3C
- ldrsh r0, [r3, r2]
- lsls r0, 16
- orrs r1, r0
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- ldr r0, [r1]
- adds r0, r2
- str r0, [r1]
- ldrh r0, [r3, 0x2E]
- negs r0, r0
- strh r0, [r3, 0x2E]
- b _080E25FA
-_080E25A0:
- movs r2, 0x3A
- ldrsh r1, [r3, r2]
- movs r2, 0x3C
- ldrsh r0, [r3, r2]
- lsls r0, 16
- orrs r1, r0
- movs r2, 0x36
- ldrsh r0, [r3, r2]
- str r0, [r1]
- ldrh r0, [r3, 0x38]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080E25F4
- movs r4, 0
- ldr r5, _080E2600 @ =gNoOfAllBanks
- ldrb r0, [r5]
- cmp r4, r0
- bcs _080E25F4
- ldr r2, _080E2604 @ =gSprites
- mov r12, r2
- ldr r6, _080E2608 @ =gObjectBankIDs
- movs r7, 0x3
- negs r7, r7
-_080E25D2:
- adds r0, r4, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r5]
- cmp r4, r0
- bcc _080E25D2
-_080E25F4:
- adds r0, r3, 0
- bl move_anim_8072740
-_080E25FA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2600: .4byte gNoOfAllBanks
-_080E2604: .4byte gSprites
-_080E2608: .4byte gObjectBankIDs
- thumb_func_end sub_80E255C
-
- thumb_func_start sub_80E260C
-sub_80E260C: @ 80E260C
- push {r4-r6,lr}
- ldr r6, _080E2680 @ =gSprites
- ldr r4, _080E2684 @ =gObjectBankIDs
- ldr r5, _080E2688 @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x3
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r3, _080E268C @ =gBattleAnimBankTarget
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- ldr r0, _080E2690 @ =gBattleAnimArgs
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x2
- bne _080E2694
- ldrb r0, [r5]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- b _080E26B0
- .align 2, 0
-_080E2680: .4byte gSprites
-_080E2684: .4byte gObjectBankIDs
-_080E2688: .4byte gBattleAnimBankAttacker
-_080E268C: .4byte gBattleAnimBankTarget
-_080E2690: .4byte gBattleAnimArgs
-_080E2694:
- cmp r0, 0
- bne _080E269C
- ldrb r0, [r5]
- b _080E269E
-_080E269C:
- ldrb r0, [r3]
-_080E269E:
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
-_080E26B0:
- orrs r1, r2
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E260C
-
- thumb_func_start sub_80E26BC
-sub_80E26BC: @ 80E26BC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E26FC @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r1
- ldr r3, _080E2700 @ =gBattleAnimArgs
- ldrh r1, [r3]
- strh r1, [r2, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r2, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r2, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r2, 0xE]
- ldrh r1, [r3, 0x6]
- strh r1, [r2, 0x18]
- ldr r4, _080E2704 @ =gUnknown_030041B0
- ldrh r1, [r3]
- strh r1, [r4]
- ldr r4, _080E2708 @ =gUnknown_030041B8
- ldrh r1, [r3, 0x2]
- strh r1, [r4]
- ldr r1, _080E270C @ =sub_80E2710
- str r1, [r2]
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E26FC: .4byte gTasks
-_080E2700: .4byte gBattleAnimArgs
-_080E2704: .4byte gUnknown_030041B0
-_080E2708: .4byte gUnknown_030041B8
-_080E270C: .4byte sub_80E2710
- thumb_func_end sub_80E26BC
-
- thumb_func_start sub_80E2710
-sub_80E2710: @ 80E2710
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080E2740 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r2, [r3, 0xE]
- movs r4, 0xE
- ldrsh r0, [r3, r4]
- mov r12, r1
- cmp r0, 0
- bne _080E2796
- ldr r0, _080E2744 @ =gUnknown_030041B0
- ldrh r2, [r0]
- movs r7, 0x8
- ldrsh r1, [r3, r7]
- adds r6, r0, 0
- cmp r2, r1
- bne _080E2748
- ldrh r0, [r3, 0x8]
- negs r0, r0
- b _080E274A
- .align 2, 0
-_080E2740: .4byte gTasks
-_080E2744: .4byte gUnknown_030041B0
-_080E2748:
- ldrh r0, [r3, 0x8]
-_080E274A:
- strh r0, [r6]
- ldr r2, _080E2768 @ =gUnknown_030041B8
- ldrh r3, [r2]
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- mov r7, r12
- adds r4, r0, r7
- movs r7, 0xA
- ldrsh r0, [r4, r7]
- cmn r3, r0
- bne _080E276C
- movs r0, 0
- b _080E2770
- .align 2, 0
-_080E2768: .4byte gUnknown_030041B8
-_080E276C:
- ldrh r0, [r4, 0xA]
- negs r0, r0
-_080E2770:
- strh r0, [r2]
- adds r0, r1, r5
- lsls r0, 3
- add r0, r12
- ldrh r1, [r0, 0x18]
- strh r1, [r0, 0xE]
- ldrh r1, [r0, 0xC]
- subs r1, 0x1
- strh r1, [r0, 0xC]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0
- bne _080E279A
- strh r1, [r6]
- strh r1, [r2]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _080E279A
-_080E2796:
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
-_080E279A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E2710
-
- thumb_func_start sub_80E27A0
-sub_80E27A0: @ 80E27A0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080E27C0 @ =gBattleAnimArgs
- ldrb r1, [r4, 0x6]
- bl StartSpriteAffineAnim
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E27C4
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- b _080E27CC
- .align 2, 0
-_080E27C0: .4byte gBattleAnimArgs
-_080E27C4:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8078764
-_080E27CC:
- ldr r0, _080E27E0 @ =sub_80785E4
- str r0, [r5, 0x1C]
- ldr r1, _080E27E4 @ =move_anim_8072740
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E27E0: .4byte sub_80785E4
-_080E27E4: .4byte move_anim_8072740
- thumb_func_end sub_80E27A0
-
- thumb_func_start sub_80E27E8
-sub_80E27E8: @ 80E27E8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080E2808 @ =gBattleAnimArgs
- ldrb r1, [r4, 0x6]
- bl StartSpriteAffineAnim
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E280C
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- b _080E2814
- .align 2, 0
-_080E2808: .4byte gBattleAnimArgs
-_080E280C:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8078764
-_080E2814:
- ldr r0, _080E282C @ =gBattleAnimArgs
- ldrh r0, [r0, 0x8]
- strh r0, [r5, 0x2E]
- ldr r0, _080E2830 @ =sub_80785E4
- str r0, [r5, 0x1C]
- ldr r1, _080E2834 @ =sub_80DA48C
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E282C: .4byte gBattleAnimArgs
-_080E2830: .4byte sub_80785E4
-_080E2834: .4byte sub_80DA48C
- thumb_func_end sub_80E27E8
-
- thumb_func_start sub_80E2838
-sub_80E2838: @ 80E2838
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080E2868 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080E285C
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080E285C
- ldr r1, _080E286C @ =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080E285C:
- adds r0, r4, 0
- bl sub_80E27A0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2868: .4byte gBattleAnimBankAttacker
-_080E286C: .4byte gBattleAnimArgs
- thumb_func_end sub_80E2838
-
- thumb_func_start sub_80E2870
-sub_80E2870: @ 80E2870
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080E28A8 @ =gBattleAnimArgs
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080E288C
- bl Random
- movs r1, 0x3
- ands r1, r0
- strh r1, [r5, 0x2]
-_080E288C:
- ldrb r1, [r5, 0x2]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080E28AC
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- b _080E28B4
- .align 2, 0
-_080E28A8: .4byte gBattleAnimArgs
-_080E28AC:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
-_080E28B4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x30
- bl __umodsi3
- ldr r1, _080E28F8 @ =0x0000ffe8
- adds r0, r1
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x18
- bl __umodsi3
- ldr r1, _080E28FC @ =0x0000fff4
- adds r0, r1
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldr r1, _080E2900 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080E2904 @ =sub_80785E4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E28F8: .4byte 0x0000ffe8
-_080E28FC: .4byte 0x0000fff4
-_080E2900: .4byte move_anim_8074EE0
-_080E2904: .4byte sub_80785E4
- thumb_func_end sub_80E2870
-
- thumb_func_start sub_80E2908
-sub_80E2908: @ 80E2908
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080E2968 @ =gBattleAnimArgs
- ldrb r0, [r5]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, _080E296C @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- ldrh r0, [r0, 0x20]
- adds r1, r0
- strh r1, [r4, 0x20]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- strh r1, [r4, 0x22]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x26]
- ldrb r1, [r5, 0x6]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- ldr r1, _080E2970 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080E2974 @ =sub_80785E4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2968: .4byte gBattleAnimArgs
-_080E296C: .4byte gSprites
-_080E2970: .4byte move_anim_8074EE0
-_080E2974: .4byte sub_80785E4
- thumb_func_end sub_80E2908
-
- thumb_func_start sub_80E2978
-sub_80E2978: @ 80E2978
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080E2990 @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E2994
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80787B0
- b _080E299C
- .align 2, 0
-_080E2990: .4byte gBattleAnimArgs
-_080E2994:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
-_080E299C:
- ldr r0, _080E29B4 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x6]
- strh r0, [r4, 0x2E]
- ldr r1, _080E29B8 @ =move_anim_8072740
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080E29BC @ =sub_80782D8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E29B4: .4byte gBattleAnimArgs
-_080E29B8: .4byte move_anim_8072740
-_080E29BC: .4byte sub_80782D8
- thumb_func_end sub_80E2978
-
- thumb_func_start sub_80E29C0
-sub_80E29C0: @ 80E29C0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080E29E0 @ =gBattleAnimArgs
- ldrb r1, [r4, 0x6]
- bl StartSpriteAffineAnim
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E29E4
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- b _080E29EC
- .align 2, 0
-_080E29E0: .4byte gBattleAnimArgs
-_080E29E4:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8078764
-_080E29EC:
- ldr r0, _080E29F8 @ =sub_80E29FC
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E29F8: .4byte sub_80E29FC
- thumb_func_end sub_80E29C0
-
- thumb_func_start sub_80E29FC
-sub_80E29FC: @ 80E29FC
- push {lr}
- adds r3, r0, 0
- 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, 0x2E]
- adds r1, r0, 0x1
- strh r1, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080E2A32
- adds r0, r3, 0
- bl move_anim_8072740
-_080E2A32:
- pop {r0}
- bx r0
- thumb_func_end sub_80E29FC
-
- thumb_func_start sub_80E2A38
-sub_80E2A38: @ 80E2A38
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _080E2A78 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl sub_80E1DC4
- adds r6, r0, 0
- ldrh r3, [r4]
- lsls r3, 16
- asrs r0, r3, 23
- movs r4, 0x1
- ands r0, r4
- asrs r1, r3, 24
- ands r1, r4
- asrs r2, r3, 25
- ands r2, r4
- asrs r3, 26
- ands r3, r4
- bl sub_80792C0
- orrs r6, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80E2C8C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2A78: .4byte gBattleAnimArgs
- thumb_func_end sub_80E2A38
-
- thumb_func_start sub_80E2A7C
-sub_80E2A7C: @ 80E2A7C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1, 0x1]
- movs r0, 0x1
- bl sub_80E1DC4
- adds r5, r0, 0
- ldr r0, _080E2AA8 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x7
- bhi _080E2B26
- lsls r0, 2
- ldr r1, _080E2AAC @ =_080E2AB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E2AA8: .4byte gBattleAnimArgs
-_080E2AAC: .4byte _080E2AB0
- .align 2, 0
-_080E2AB0:
- .4byte _080E2AD2
- .4byte _080E2ADE
- .4byte _080E2AD0
- .4byte _080E2ADC
- .4byte _080E2AEC
- .4byte _080E2B04
- .4byte _080E2B0C
- .4byte _080E2B18
-_080E2AD0:
- movs r5, 0
-_080E2AD2:
- mov r0, sp
- ldr r1, _080E2AD8 @ =gBattleAnimBankAttacker
- b _080E2AE2
- .align 2, 0
-_080E2AD8: .4byte gBattleAnimBankAttacker
-_080E2ADC:
- movs r5, 0
-_080E2ADE:
- mov r0, sp
- ldr r1, _080E2AE8 @ =gBattleAnimBankTarget
-_080E2AE2:
- ldrb r1, [r1]
- strb r1, [r0]
- b _080E2B26
- .align 2, 0
-_080E2AE8: .4byte gBattleAnimBankTarget
-_080E2AEC:
- mov r1, sp
- ldr r0, _080E2AFC @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _080E2B00 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- strb r0, [r1, 0x1]
- b _080E2B26
- .align 2, 0
-_080E2AFC: .4byte gBattleAnimBankAttacker
-_080E2B00: .4byte gBattleAnimBankTarget
-_080E2B04:
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1]
- b _080E2B26
-_080E2B0C:
- movs r5, 0
- mov r2, sp
- ldr r0, _080E2B14 @ =gBattleAnimBankAttacker
- b _080E2B1E
- .align 2, 0
-_080E2B14: .4byte gBattleAnimBankAttacker
-_080E2B18:
- movs r5, 0
- mov r2, sp
- ldr r0, _080E2B70 @ =gBattleAnimBankTarget
-_080E2B1E:
- ldrb r0, [r0]
- movs r1, 0x2
- eors r0, r1
- strb r0, [r2]
-_080E2B26:
- movs r4, 0
- mov r6, sp
-_080E2B2A:
- ldrb r0, [r6]
- cmp r4, r0
- beq _080E2B54
- ldrb r0, [r6, 0x1]
- cmp r4, r0
- beq _080E2B54
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080E2B54
- adds r0, r4, 0
- bl sub_80793A8
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- orrs r5, r1
-_080E2B54:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080E2B2A
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_80E2C8C
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2B70: .4byte gBattleAnimBankTarget
- thumb_func_end sub_80E2A7C
-
- thumb_func_start sub_80E2B74
-sub_80E2B74: @ 80E2B74
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E2B98 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- bl sub_80E1DC4
- adds r2, r0, 0
- ldr r0, _080E2B9C @ =gBattleTerrain
- ldrb r0, [r0]
- cmp r0, 0x9
- bhi _080E2C4A
- lsls r0, 2
- ldr r1, _080E2BA0 @ =_080E2BA4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E2B98: .4byte gBattleAnimArgs
-_080E2B9C: .4byte gBattleTerrain
-_080E2BA0: .4byte _080E2BA4
- .align 2, 0
-_080E2BA4:
- .4byte _080E2BCC
- .4byte _080E2BDC
- .4byte _080E2BE8
- .4byte _080E2BF8
- .4byte _080E2C04
- .4byte _080E2C14
- .4byte _080E2C24
- .4byte _080E2C34
- .4byte _080E2C44
- .4byte _080E2C44
-_080E2BCC:
- ldr r1, _080E2BD4 @ =gBattleAnimArgs
- ldr r0, _080E2BD8 @ =0x00000b0c
- b _080E2C48
- .align 2, 0
-_080E2BD4: .4byte gBattleAnimArgs
-_080E2BD8: .4byte 0x00000b0c
-_080E2BDC:
- ldr r1, _080E2BE4 @ =gBattleAnimArgs
- movs r0, 0x9E
- lsls r0, 4
- b _080E2C48
- .align 2, 0
-_080E2BE4: .4byte gBattleAnimArgs
-_080E2BE8:
- ldr r1, _080E2BF0 @ =gBattleAnimArgs
- ldr r0, _080E2BF4 @ =0x00002f1e
- b _080E2C48
- .align 2, 0
-_080E2BF0: .4byte gBattleAnimArgs
-_080E2BF4: .4byte 0x00002f1e
-_080E2BF8:
- ldr r1, _080E2C00 @ =gBattleAnimArgs
- movs r0, 0x90
- lsls r0, 7
- b _080E2C48
- .align 2, 0
-_080E2C00: .4byte gBattleAnimArgs
-_080E2C04:
- ldr r1, _080E2C0C @ =gBattleAnimArgs
- ldr r0, _080E2C10 @ =0x00007ecb
- b _080E2C48
- .align 2, 0
-_080E2C0C: .4byte gBattleAnimArgs
-_080E2C10: .4byte 0x00007ecb
-_080E2C14:
- ldr r1, _080E2C1C @ =gBattleAnimArgs
- ldr r0, _080E2C20 @ =0x00007ecb
- b _080E2C48
- .align 2, 0
-_080E2C1C: .4byte gBattleAnimArgs
-_080E2C20: .4byte 0x00007ecb
-_080E2C24:
- ldr r1, _080E2C2C @ =gBattleAnimArgs
- ldr r0, _080E2C30 @ =0x00002a16
- b _080E2C48
- .align 2, 0
-_080E2C2C: .4byte gBattleAnimArgs
-_080E2C30: .4byte 0x00002a16
-_080E2C34:
- ldr r1, _080E2C3C @ =gBattleAnimArgs
- ldr r0, _080E2C40 @ =0x00000d2e
- b _080E2C48
- .align 2, 0
-_080E2C3C: .4byte gBattleAnimArgs
-_080E2C40: .4byte 0x00000d2e
-_080E2C44:
- ldr r1, _080E2C58 @ =gBattleAnimArgs
- ldr r0, _080E2C5C @ =0x00007fff
-_080E2C48:
- strh r0, [r1, 0x8]
-_080E2C4A:
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80E2C8C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2C58: .4byte gBattleAnimArgs
-_080E2C5C: .4byte 0x00007fff
- thumb_func_end sub_80E2B74
-
- thumb_func_start sub_80E2C60
-sub_80E2C60: @ 80E2C60
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080E2C88 @ =gBattleAnimArgs
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- adds r0, r4, 0
- bl sub_80E2C8C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2C88: .4byte gBattleAnimArgs
- thumb_func_end sub_80E2C60
-
- thumb_func_start sub_80E2C8C
-sub_80E2C8C: @ 80E2C8C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080E2CC4 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- strh r1, [r2, 0x8]
- lsrs r1, 16
- strh r1, [r2, 0xA]
- ldr r3, _080E2CC8 @ =gBattleAnimArgs
- ldrh r1, [r3, 0x2]
- strh r1, [r2, 0xC]
- ldrh r1, [r3, 0x4]
- strh r1, [r2, 0xE]
- ldrh r1, [r3, 0x6]
- strh r1, [r2, 0x10]
- ldrh r1, [r3, 0x8]
- strh r1, [r2, 0x12]
- ldrh r1, [r3, 0x4]
- strh r1, [r2, 0x1C]
- ldr r1, _080E2CCC @ =sub_80E2CD0
- str r1, [r2]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080E2CC4: .4byte gTasks
-_080E2CC8: .4byte gBattleAnimArgs
-_080E2CCC: .4byte sub_80E2CD0
- thumb_func_end sub_80E2C8C
-
- thumb_func_start sub_80E2CD0
-sub_80E2CD0: @ 80E2CD0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- ldr r2, _080E2D50 @ =gTasks
- lsls r5, r7, 2
- adds r0, r5, r7
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1A]
- mov r8, r0
- movs r4, 0x1A
- ldrsh r1, [r3, r4]
- movs r4, 0xC
- ldrsh r0, [r3, r4]
- mov r9, r2
- cmp r1, r0
- bne _080E2D66
- strh r6, [r3, 0x1A]
- movs r0, 0x8
- ldrsh r4, [r3, r0]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- lsls r0, 16
- orrs r4, r0
- mov r8, r5
- cmp r4, 0
- beq _080E2D32
- adds r5, r3, 0
-_080E2D10:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080E2D24
- ldrb r2, [r5, 0x1C]
- ldrh r3, [r5, 0x12]
- adds r0, r6, 0
- movs r1, 0x10
- bl BlendPalette
-_080E2D24:
- adds r0, r6, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- lsrs r4, 1
- cmp r4, 0
- bne _080E2D10
-_080E2D32:
- mov r4, r8
- adds r0, r4, r7
- lsls r0, 3
- mov r1, r9
- adds r2, r0, r1
- ldrh r0, [r2, 0x1C]
- movs r4, 0x1C
- ldrsh r3, [r2, r4]
- movs r4, 0x10
- ldrsh r1, [r2, r4]
- cmp r3, r1
- bge _080E2D54
- adds r0, 0x1
- strh r0, [r2, 0x1C]
- b _080E2D6C
- .align 2, 0
-_080E2D50: .4byte gTasks
-_080E2D54:
- cmp r3, r1
- ble _080E2D5E
- subs r0, 0x1
- strh r0, [r2, 0x1C]
- b _080E2D6C
-_080E2D5E:
- adds r0, r7, 0
- bl DestroyAnimVisualTask
- b _080E2D6C
-_080E2D66:
- mov r0, r8
- adds r0, 0x1
- strh r0, [r3, 0x1A]
-_080E2D6C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E2CD0
-
- thumb_func_start sub_80E2D78
-sub_80E2D78: @ 80E2D78
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _080E2DAC @ =gBattleAnimArgs
- ldrb r0, [r4]
- ldrb r1, [r4, 0x2]
- ldrb r2, [r4, 0x4]
- ldrb r3, [r4, 0x6]
- ldrb r4, [r4, 0x8]
- str r4, [sp]
- bl BeginHardwarePaletteFade
- ldr r1, _080E2DB0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080E2DB4 @ =sub_80E2DB8
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2DAC: .4byte gBattleAnimArgs
-_080E2DB0: .4byte gTasks
-_080E2DB4: .4byte sub_80E2DB8
- thumb_func_end sub_80E2D78
-
- thumb_func_start sub_80E2DB8
-sub_80E2DB8: @ 80E2DB8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080E2DD4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E2DD0
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080E2DD0:
- pop {r0}
- bx r0
- .align 2, 0
-_080E2DD4: .4byte gPaletteFade
- thumb_func_end sub_80E2DB8
-
- thumb_func_start sub_80E2DD8
-sub_80E2DD8: @ 80E2DD8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080E2E04 @ =gTasks
- adds r1, r0
- ldr r2, _080E2E08 @ =gBattleAnimArgs
- ldrh r0, [r2]
- movs r3, 0
- strh r0, [r1, 0x8]
- strh r3, [r1, 0xA]
- ldrh r0, [r2, 0x2]
- strh r0, [r1, 0xC]
- ldrh r0, [r2, 0x4]
- strh r0, [r1, 0xE]
- ldrh r0, [r2, 0x6]
- strh r0, [r1, 0x10]
- strh r3, [r1, 0x12]
- ldr r0, _080E2E0C @ =sub_80E2E10
- str r0, [r1]
- bx lr
- .align 2, 0
-_080E2E04: .4byte gTasks
-_080E2E08: .4byte gBattleAnimArgs
-_080E2E0C: .4byte sub_80E2E10
- thumb_func_end sub_80E2DD8
-
- thumb_func_start sub_80E2E10
-sub_80E2E10: @ 80E2E10
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080E2E3C @ =gTasks
- adds r4, r0, r1
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080E2ED4
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080E2E40
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- b _080E2EE2
- .align 2, 0
-_080E2E3C: .4byte gTasks
-_080E2E40:
- ldrb r0, [r4, 0x8]
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- blt _080E2EBE
- ldr r6, _080E2ECC @ =gSprites
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r3, r1, r6
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- movs r2, 0x2
- cmp r0, 0
- beq _080E2E68
- movs r2, 0x1
-_080E2E68:
- lsls r2, 2
- ldrb r1, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x5]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r4, 0xE]
- strh r1, [r0, 0x2E]
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r5, [r0, 0x30]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- strh r1, [r0, 0x32]
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080E2ED0 @ =sub_80E2EE8
- str r1, [r0]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
-_080E2EBE:
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0xA]
- b _080E2EE2
- .align 2, 0
-_080E2ECC: .4byte gSprites
-_080E2ED0: .4byte sub_80E2EE8
-_080E2ED4:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E2EE2
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080E2EE2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E2E10
-
- thumb_func_start sub_80E2EE8
-sub_80E2EE8: @ 80E2EE8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080E2EFC
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _080E2F20
-_080E2EFC:
- ldr r3, _080E2F28 @ =gTasks
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl obj_delete_but_dont_free_vram
-_080E2F20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2F28: .4byte gTasks
- thumb_func_end sub_80E2EE8
-
- thumb_func_start sub_80E2F2C
-sub_80E2F2C: @ 80E2F2C
- 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, _080E3038 @ =gUnknown_030042C4
- strh r7, [r0]
- ldr r0, _080E303C @ =gUnknown_03004240
- strh r7, [r0]
- ldr r1, _080E3040 @ =REG_WININ
- ldr r2, _080E3044 @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080E3048 @ =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, _080E304C @ =REG_BLDCNT
- ldr r2, _080E3050 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080E3054 @ =0x00000c08
- adds r0, r3, 0
- strh r0, [r1]
- ldr r4, _080E3058 @ =REG_BG1CNT
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- mov r8, r0
- ands r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080E2FAC
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080E2FAC:
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _080E3028
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080E3028
- ldr r5, _080E305C @ =gBattleAnimBankAttacker
- ldrb r0, [r5]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080E2FDC
- ldrb r0, [r5]
- bl GetBankIdentity
- lsls r0, 24
- cmp r0, 0
- bne _080E3028
-_080E2FDC:
- ldrb r0, [r5]
- movs r6, 0x2
- eors r0, r6
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E3028
- ldr r3, _080E3060 @ =gSprites
- ldr r1, _080E3064 @ =gObjectBankIDs
- ldrb r0, [r5]
- 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, [r4]
- mov r0, r8
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- movs r7, 0x1
-_080E3028:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080E306C
- ldr r0, _080E3068 @ =0x02019348
- ldrh r4, [r0]
- b _080E30B4
- .align 2, 0
-_080E3038: .4byte gUnknown_030042C4
-_080E303C: .4byte gUnknown_03004240
-_080E3040: .4byte REG_WININ
-_080E3044: .4byte 0x00003f3f
-_080E3048: .4byte 0x00003f3d
-_080E304C: .4byte REG_BLDCNT
-_080E3050: .4byte 0x00003f42
-_080E3054: .4byte 0x00000c08
-_080E3058: .4byte REG_BG1CNT
-_080E305C: .4byte gBattleAnimBankAttacker
-_080E3060: .4byte gSprites
-_080E3064: .4byte gObjectBankIDs
-_080E3068: .4byte 0x02019348
-_080E306C:
- ldr r4, _080E308C @ =gBattleAnimBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080E3098
- ldr r1, _080E3090 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E3094 @ =gEnemyParty
- b _080E30A8
- .align 2, 0
-_080E308C: .4byte gBattleAnimBankAttacker
-_080E3090: .4byte gBattlePartyID
-_080E3094: .4byte gEnemyParty
-_080E3098:
- ldr r1, _080E3160 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E3164 @ =gPlayerParty
-_080E30A8:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
-_080E30B4:
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080E3168 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r2, _080E316C @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080E3170 @ =0x85000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080E3174 @ =gUnknown_08D20A30
- bl LZDecompressVram
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080E3106
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080E3106:
- ldr r0, _080E3178 @ =gUnknown_08D20A14
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080E317C @ =gUnknown_083DB568
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- adds r1, 0x1
- movs r2, 0x2
- bl LoadPalette
- ldr r2, _080E3180 @ =gUnknown_030042C0
- ldr r0, _080E3184 @ =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x20]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r2]
- ldr r2, _080E3188 @ =gUnknown_030041B4
- ldrh r0, [r1, 0x22]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r2]
- ldr r1, _080E318C @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x8]
- strh r7, [r0, 0x14]
- ldr r1, _080E3190 @ =sub_80E3194
- 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
-_080E3160: .4byte gBattlePartyID
-_080E3164: .4byte gPlayerParty
-_080E3168: .4byte gBattleAnimBankAttacker
-_080E316C: .4byte 0x040000d4
-_080E3170: .4byte 0x85000400
-_080E3174: .4byte gUnknown_08D20A30
-_080E3178: .4byte gUnknown_08D20A14
-_080E317C: .4byte gUnknown_083DB568
-_080E3180: .4byte gUnknown_030042C0
-_080E3184: .4byte gSprites
-_080E3188: .4byte gUnknown_030041B4
-_080E318C: .4byte gTasks
-_080E3190: .4byte sub_80E3194
- thumb_func_end sub_80E2F2C
-
- thumb_func_start sub_80E3194
-sub_80E3194: @ 80E3194
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080E32AC @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r0, 0x4
- movs r5, 0
- strh r0, [r4, 0x1C]
- ldr r7, _080E32B0 @ =gUnknown_030041B4
- ldrh r2, [r7]
- subs r1, r2, 0x4
- strh r1, [r7]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- bne _080E329E
- strh r5, [r4, 0x1C]
- adds r0, r2, 0
- adds r0, 0x3C
- strh r0, [r7]
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080E329E
- movs r0, 0
- bl sub_8076464
- ldr r0, _080E32B4 @ =gUnknown_030042C4
- strh r5, [r0]
- ldr r0, _080E32B8 @ =gUnknown_03004240
- strh r5, [r0]
- ldr r0, _080E32BC @ =REG_WININ
- ldr r2, _080E32C0 @ =0x00003f3f
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080E3208
- ldr r2, _080E32C4 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080E3208:
- 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, _080E32C8 @ =REG_BLDCNT
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- movs r0, 0
- bl GetAnimBankSpriteId
- ldr r0, _080E32CC @ =gSprites
- mov r8, r0
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- bl DestroySprite
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp, 0x4]
- str r5, [sp, 0xC]
- ldr r1, _080E32D0 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _080E32D4 @ =0x85000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r3, 0x14
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _080E3288
- ldr r2, _080E32D8 @ =gObjectBankIDs
- ldr r0, _080E32DC @ =gBattleAnimBankAttacker
- 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
- add r2, r8
- 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]
-_080E3288:
- ldr r2, _080E32C4 @ =REG_BG1CNT
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- movs r0, 0
- strh r0, [r7]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080E329E:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E32AC: .4byte gTasks
-_080E32B0: .4byte gUnknown_030041B4
-_080E32B4: .4byte gUnknown_030042C4
-_080E32B8: .4byte gUnknown_03004240
-_080E32BC: .4byte REG_WININ
-_080E32C0: .4byte 0x00003f3f
-_080E32C4: .4byte REG_BG1CNT
-_080E32C8: .4byte REG_BLDCNT
-_080E32CC: .4byte gSprites
-_080E32D0: .4byte 0x040000d4
-_080E32D4: .4byte 0x85000200
-_080E32D8: .4byte gObjectBankIDs
-_080E32DC: .4byte gBattleAnimBankAttacker
- thumb_func_end sub_80E3194
-
- thumb_func_start sub_80E32E0
-sub_80E32E0: @ 80E32E0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _080E332C @ =gTasks
- mov r12, r0
- ldr r1, _080E3330 @ =sub_80E3338
- mov r8, r1
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r4, r0, 3
- mov r7, r12
- adds r7, 0x8
- adds r5, r1, 0
- ldr r6, _080E3334 @ =gBattleAnimArgs
-_080E3302:
- lsls r0, r2, 1
- adds r1, r0, r4
- adds r1, r7
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _080E3302
- adds r0, r5, r3
- lsls r0, 3
- add r0, r12
- mov r1, r8
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E332C: .4byte gTasks
-_080E3330: .4byte sub_80E3338
-_080E3334: .4byte gBattleAnimArgs
- thumb_func_end sub_80E32E0
-
- thumb_func_start sub_80E3338
-sub_80E3338: @ 80E3338
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r0, 0
- str r0, [sp, 0x1C]
- movs r1, 0
- str r1, [sp, 0x20]
- add r7, sp, 0xC
- ldr r2, _080E3388 @ =gTasks
- mov r3, r9
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r0, 3
- mov r10, r1
- adds r1, r2, 0
- adds r1, 0x8
- adds r1, r0, r1
- adds r3, r7, 0
- movs r4, 0
- movs r2, 0x7
-_080E336C:
- ldrh r0, [r1]
- strh r0, [r3]
- strh r4, [r1]
- adds r1, 0x2
- adds r3, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080E336C
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _080E3390
- ldr r0, _080E338C @ =gBattleAnimBankAttacker
- b _080E3392
- .align 2, 0
-_080E3388: .4byte gTasks
-_080E338C: .4byte gBattleAnimBankAttacker
-_080E3390:
- ldr r0, _080E34B4 @ =gBattleAnimBankTarget
-_080E3392:
- ldrb r5, [r0]
- movs r0, 0x2
- mov r8, r5
- mov r2, r8
- eors r2, r0
- mov r8, r2
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080E33BC
- movs r3, 0x6
- ldrsh r0, [r7, r3]
- cmp r0, 0
- beq _080E33C0
- mov r0, r8
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- bne _080E33C0
-_080E33BC:
- movs r0, 0
- strh r0, [r7, 0x6]
-_080E33C0:
- ldr r0, _080E34B8 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E34BC @ =gUnknown_03004240
- strh r1, [r0]
- ldr r1, _080E34C0 @ =REG_WININ
- ldr r2, _080E34C4 @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080E34C8 @ =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, _080E34CC @ =REG_BLDCNT
- ldr r2, _080E34D0 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r4, _080E34D4 @ =REG_BG1CNT
- ldrb r1, [r4]
- movs r6, 0x4
- negs r6, r6
- adds r0, r6, 0
- ands r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080E3432
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080E3432:
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _080E34A4
- movs r1, 0x6
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _080E34A4
- adds r0, r5, 0
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080E345E
- adds r0, r5, 0
- bl GetBankIdentity
- lsls r0, 24
- cmp r0, 0
- bne _080E34A4
-_080E345E:
- mov r0, r8
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E34A4
- ldr r1, _080E34D8 @ =gSprites
- ldr r0, _080E34DC @ =gObjectBankIDs
- add r0, r8
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- 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, [r4]
- adds r0, r6, 0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- movs r2, 0x1
- str r2, [sp, 0x20]
-_080E34A4:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080E34E4
- ldr r0, _080E34E0 @ =0x02019348
- ldrh r4, [r0]
- b _080E3522
- .align 2, 0
-_080E34B4: .4byte gBattleAnimBankTarget
-_080E34B8: .4byte gUnknown_030042C4
-_080E34BC: .4byte gUnknown_03004240
-_080E34C0: .4byte REG_WININ
-_080E34C4: .4byte 0x00003f3f
-_080E34C8: .4byte 0x00003f3d
-_080E34CC: .4byte REG_BLDCNT
-_080E34D0: .4byte 0x00003f42
-_080E34D4: .4byte REG_BG1CNT
-_080E34D8: .4byte gSprites
-_080E34DC: .4byte gObjectBankIDs
-_080E34E0: .4byte 0x02019348
-_080E34E4:
- adds r0, r5, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080E3508
- ldr r1, _080E3500 @ =gBattlePartyID
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E3504 @ =gEnemyParty
- b _080E3516
- .align 2, 0
-_080E3500: .4byte gBattlePartyID
-_080E3504: .4byte gEnemyParty
-_080E3508:
- ldr r1, _080E3568 @ =gBattlePartyID
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E356C @ =gPlayerParty
-_080E3516:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
-_080E3522:
- ldr r6, _080E3570 @ =gObjectBankIDs
- adds r0, r5, r6
- ldrb r1, [r0]
- adds r0, r5, 0
- adds r2, r4, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0x6
- ldrsh r0, [r7, r3]
- cmp r0, 0
- beq _080E3550
- mov r1, r8
- adds r0, r1, r6
- ldrb r1, [r0]
- mov r0, r8
- adds r2, r4, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
-_080E3550:
- mov r0, sp
- bl sub_8078914
- movs r2, 0
- ldrsh r0, [r7, r2]
- cmp r0, 0
- bne _080E3578
- ldr r0, _080E3574 @ =gBattleStatMask1_Tilemap
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- b _080E3580
- .align 2, 0
-_080E3568: .4byte gBattlePartyID
-_080E356C: .4byte gPlayerParty
-_080E3570: .4byte gObjectBankIDs
-_080E3574: .4byte gBattleStatMask1_Tilemap
-_080E3578:
- ldr r0, _080E35B0 @ =gBattleStatMask2_Tilemap
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
-_080E3580:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080E3598
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080E3598:
- ldr r0, _080E35B4 @ =gBattleStatMask_Gfx
- ldr r1, [sp]
- bl LZDecompressVram
- ldrh r0, [r7, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080E35BC
- ldr r0, _080E35B8 @ =gBattleStatMask2_Pal
- b _080E35FE
- .align 2, 0
-_080E35B0: .4byte gBattleStatMask2_Tilemap
-_080E35B4: .4byte gBattleStatMask_Gfx
-_080E35B8: .4byte gBattleStatMask2_Pal
-_080E35BC:
- cmp r0, 0x1
- bne _080E35C8
- ldr r0, _080E35C4 @ =gBattleStatMask1_Pal
- b _080E35FE
- .align 2, 0
-_080E35C4: .4byte gBattleStatMask1_Pal
-_080E35C8:
- cmp r0, 0x2
- bne _080E35D4
- ldr r0, _080E35D0 @ =gBattleStatMask3_Pal
- b _080E35FE
- .align 2, 0
-_080E35D0: .4byte gBattleStatMask3_Pal
-_080E35D4:
- cmp r0, 0x3
- bne _080E35E0
- ldr r0, _080E35DC @ =gBattleStatMask4_Pal
- b _080E35FE
- .align 2, 0
-_080E35DC: .4byte gBattleStatMask4_Pal
-_080E35E0:
- cmp r0, 0x4
- bne _080E35EC
- ldr r0, _080E35E8 @ =gBattleStatMask6_Pal
- b _080E35FE
- .align 2, 0
-_080E35E8: .4byte gBattleStatMask6_Pal
-_080E35EC:
- cmp r0, 0x5
- bne _080E35F8
- ldr r0, _080E35F4 @ =gBattleStatMask7_Pal
- b _080E35FE
- .align 2, 0
-_080E35F4: .4byte gBattleStatMask7_Pal
-_080E35F8:
- cmp r0, 0x6
- bne _080E3610
- ldr r0, _080E360C @ =gBattleStatMask8_Pal
-_080E35FE:
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- b _080E361E
- .align 2, 0
-_080E360C: .4byte gBattleStatMask8_Pal
-_080E3610:
- ldr r0, _080E3644 @ =gBattleStatMask5_Pal
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
-_080E361E:
- ldr r2, _080E3648 @ =gUnknown_030042C0
- movs r1, 0
- strh r1, [r2]
- ldr r0, _080E364C @ =gUnknown_030041B4
- strh r1, [r0]
- movs r3, 0
- ldrsh r0, [r7, r3]
- cmp r0, 0x1
- bne _080E3658
- movs r0, 0x40
- strh r0, [r2]
- ldr r2, _080E3650 @ =gTasks
- mov r0, r10
- add r0, r9
- lsls r0, 3
- adds r0, r2
- ldr r1, _080E3654 @ =0x0000fffd
- strh r1, [r0, 0xA]
- b _080E3668
- .align 2, 0
-_080E3644: .4byte gBattleStatMask5_Pal
-_080E3648: .4byte gUnknown_030042C0
-_080E364C: .4byte gUnknown_030041B4
-_080E3650: .4byte gTasks
-_080E3654: .4byte 0x0000fffd
-_080E3658:
- ldr r0, _080E3680 @ =gTasks
- mov r1, r10
- add r1, r9
- lsls r1, 3
- adds r1, r0
- movs r2, 0x3
- strh r2, [r1, 0xA]
- adds r2, r0, 0
-_080E3668:
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _080E3684
- mov r0, r10
- add r0, r9
- lsls r0, 3
- adds r0, r2
- movs r1, 0xA
- strh r1, [r0, 0x10]
- movs r1, 0x14
- b _080E3692
- .align 2, 0
-_080E3680: .4byte gTasks
-_080E3684:
- mov r0, r10
- add r0, r9
- lsls r0, 3
- adds r0, r2
- movs r1, 0xD
- strh r1, [r0, 0x10]
- movs r1, 0x1E
-_080E3692:
- strh r1, [r0, 0x12]
- mov r1, r10
- add r1, r9
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- ldrh r0, [r7, 0x6]
- strh r0, [r1, 0xC]
- mov r2, sp
- ldrh r2, [r2, 0x1C]
- strh r2, [r1, 0xE]
- mov r3, sp
- ldrh r3, [r3, 0x20]
- strh r3, [r1, 0x14]
- ldr r0, _080E36D8 @ =gObjectBankIDs
- add r0, r8
- ldrb r0, [r0]
- strh r0, [r1, 0x16]
- ldr r0, _080E36DC @ =sub_80E3704
- str r0, [r1]
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _080E36E0
- movs r0, 0x40
- negs r0, r0
- bl sub_8077094
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xEF
- bl PlaySE12WithPanning
- b _080E36F4
- .align 2, 0
-_080E36D8: .4byte gObjectBankIDs
-_080E36DC: .4byte sub_80E3704
-_080E36E0:
- movs r0, 0x40
- negs r0, r0
- bl sub_8077094
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xF5
- bl PlaySE12WithPanning
-_080E36F4:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E3338
-
- thumb_func_start sub_80E3704
-sub_80E3704: @ 80E3704
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _080E3730 @ =gUnknown_030041B4
- ldr r1, _080E3734 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- movs r3, 0x26
- ldrsh r2, [r4, r3]
- cmp r2, 0x1
- beq _080E3774
- cmp r2, 0x1
- bgt _080E3738
- cmp r2, 0
- beq _080E373E
- b _080E3866
- .align 2, 0
-_080E3730: .4byte gUnknown_030041B4
-_080E3734: .4byte gTasks
-_080E3738:
- cmp r2, 0x2
- beq _080E378E
- b _080E3866
-_080E373E:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- cmp r0, 0
- bgt _080E374C
- b _080E3866
-_080E374C:
- strh r2, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- adds r1, 0x1
- strh r1, [r4, 0x20]
- ldr r2, _080E3770 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080E3866
- b _080E3786
- .align 2, 0
-_080E3770: .4byte REG_BLDALPHA
-_080E3774:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x12
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _080E3866
-_080E3786:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _080E3866
-_080E378E:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- cmp r0, 0
- ble _080E3866
- movs r0, 0
- strh r0, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- subs r1, 0x1
- strh r1, [r4, 0x20]
- ldr r7, _080E386C @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r7]
- movs r0, 0x20
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _080E3866
- movs r0, 0
- bl sub_8076464
- ldr r0, _080E3870 @ =gUnknown_030042C4
- strh r5, [r0]
- ldr r0, _080E3874 @ =gUnknown_03004240
- strh r5, [r0]
- ldr r0, _080E3878 @ =REG_WININ
- ldr r2, _080E387C @ =0x00003f3f
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080E37E8
- ldr r2, _080E3880 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080E37E8:
- 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, _080E3884 @ =REG_BLDCNT
- strh r5, [r0]
- strh r5, [r7]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080E3888 @ =gSprites
- adds r0, r5
- bl DestroySprite
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080E3828
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
-_080E3828:
- movs r3, 0x14
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _080E3854
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- 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]
-_080E3854:
- ldr r2, _080E3880 @ =REG_BG1CNT
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080E3866:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E386C: .4byte REG_BLDALPHA
-_080E3870: .4byte gUnknown_030042C4
-_080E3874: .4byte gUnknown_03004240
-_080E3878: .4byte REG_WININ
-_080E387C: .4byte 0x00003f3f
-_080E3880: .4byte REG_BG1CNT
-_080E3884: .4byte REG_BLDCNT
-_080E3888: .4byte gSprites
- thumb_func_end sub_80E3704
-
- thumb_func_start sub_80E388C
-sub_80E388C: @ 80E388C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80792C0
- adds r6, r0, 0
- movs r1, 0
- bl sub_80E39BC
- ldr r0, _080E38EC @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- lsrs r0, r6, 16
- movs r5, 0
- strh r0, [r4, 0x24]
- str r5, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- adds r6, r0, 0
- ldr r1, _080E38F0 @ =0x0000ffff
- ands r6, r1
- adds r0, r6, 0
- bl sub_80E39BC
- strh r6, [r4, 0x26]
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- ldr r0, _080E38F4 @ =sub_80E38F8
- str r0, [r4]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E38EC: .4byte gTasks
-_080E38F0: .4byte 0x0000ffff
-_080E38F4: .4byte sub_80E38F8
- thumb_func_end sub_80E388C
-
- thumb_func_start sub_80E38F8
-sub_80E38F8: @ 80E38F8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E391C @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080E393C
- cmp r1, 0x1
- bgt _080E3920
- cmp r1, 0
- beq _080E3926
- b _080E39B6
- .align 2, 0
-_080E391C: .4byte gTasks
-_080E3920:
- cmp r1, 0x2
- beq _080E39B0
- b _080E39B6
-_080E3926:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _080E39B6
- strh r1, [r4, 0xA]
- movs r0, 0x10
- strh r0, [r4, 0xC]
- b _080E39A4
-_080E393C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E39B6
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- movs r5, 0
- movs r6, 0x1
-_080E3958:
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- asrs r0, r5
- ands r0, r6
- cmp r0, 0
- beq _080E3972
- lsls r0, r5, 20
- lsrs r0, 16
- ldrb r2, [r4, 0xC]
- movs r1, 0x10
- ldr r3, _080E39AC @ =0x0000ffff
- bl BlendPalette
-_080E3972:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- asrs r0, r5
- ands r0, r6
- cmp r0, 0
- beq _080E3992
- lsls r0, r5, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- ldrb r2, [r4, 0xC]
- movs r1, 0x10
- movs r3, 0
- bl BlendPalette
-_080E3992:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xF
- bls _080E3958
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E39B6
-_080E39A4:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E39B6
- .align 2, 0
-_080E39AC: .4byte 0x0000ffff
-_080E39B0:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080E39B6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E38F8
-
- thumb_func_start sub_80E39BC
-sub_80E39BC: @ 80E39BC
- push {r4-r6,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- movs r2, 0
-_080E39C6:
- movs r0, 0x1
- ands r0, r3
- lsrs r4, r3, 1
- adds r5, r2, 0x1
- cmp r0, 0
- beq _080E39F2
- lsls r0, r2, 20
- lsrs r2, r0, 16
- adds r0, r2, 0
- adds r0, 0x10
- cmp r2, r0
- bge _080E39F2
- ldr r1, _080E3A04 @ =gPlttBufferFaded
- adds r3, r0, 0
-_080E39E2:
- lsls r0, r2, 1
- adds r0, r1
- strh r6, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- blt _080E39E2
-_080E39F2:
- adds r3, r4, 0
- lsls r0, r5, 16
- lsrs r2, r0, 16
- cmp r2, 0x1F
- bls _080E39C6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3A04: .4byte gPlttBufferFaded
- thumb_func_end sub_80E39BC
-
- thumb_func_start sub_80E3A08
-sub_80E3A08: @ 80E3A08
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- movs r2, 0
- ldr r0, _080E3A50 @ =gBattleAnimBankAttacker
- ldrb r3, [r0]
- movs r5, 0x1
-_080E3A18:
- cmp r3, r2
- beq _080E3A26
- adds r1, r2, 0
- adds r1, 0x10
- adds r0, r5, 0
- lsls r0, r1
- orrs r4, r0
-_080E3A26:
- adds r2, 0x1
- cmp r2, 0x3
- bls _080E3A18
- movs r2, 0x5
- ldr r0, _080E3A54 @ =gBattleAnimArgs
- adds r1, r0, 0
- adds r1, 0x8
-_080E3A34:
- ldrh r0, [r1]
- strh r0, [r1, 0x2]
- subs r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bne _080E3A34
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80E2C8C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3A50: .4byte gBattleAnimBankAttacker
-_080E3A54: .4byte gBattleAnimArgs
- thumb_func_end sub_80E3A08
-
- thumb_func_start sub_80E3A58
-sub_80E3A58: @ 80E3A58
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl sub_80789D4
- ldr r0, _080E3AC0 @ =sub_80E3AD0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080E3AC4 @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080E3A94
- ldr r0, _080E3AC8 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080E3A94
- ldrh r0, [r4]
- negs r0, r0
- strh r0, [r4]
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
-_080E3A94:
- ldr r0, _080E3ACC @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r2, _080E3AC4 @ =gBattleAnimArgs
- ldrh r0, [r2]
- strh r0, [r1, 0xA]
- ldrh r0, [r2, 0x2]
- strh r0, [r1, 0xC]
- ldrh r0, [r2, 0x6]
- strh r0, [r1, 0xE]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3AC0: .4byte sub_80E3AD0
-_080E3AC4: .4byte gBattleAnimArgs
-_080E3AC8: .4byte gBattleAnimBankAttacker
-_080E3ACC: .4byte gTasks
- thumb_func_end sub_80E3A58
-
- thumb_func_start sub_80E3AD0
-sub_80E3AD0: @ 80E3AD0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080E3B3C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r3, [r1, 0xA]
- ldrh r0, [r1, 0x1C]
- adds r3, r0
- movs r4, 0
- mov r12, r4
- strh r3, [r1, 0x1C]
- ldrh r2, [r1, 0xC]
- ldrh r7, [r1, 0x1E]
- adds r2, r7
- strh r2, [r1, 0x1E]
- ldr r6, _080E3B40 @ =gUnknown_030041B0
- lsls r0, r3, 16
- asrs r0, 24
- ldrh r4, [r6]
- adds r0, r4
- strh r0, [r6]
- ldr r4, _080E3B44 @ =gUnknown_030041B8
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r7, [r4]
- adds r0, r7
- strh r0, [r4]
- movs r0, 0xFF
- ands r3, r0
- strh r3, [r1, 0x1C]
- ands r2, r0
- strh r2, [r1, 0x1E]
- ldr r0, _080E3B48 @ =gBattleAnimArgs
- movs r3, 0xE
- ldrsh r2, [r0, r3]
- movs r7, 0xE
- ldrsh r0, [r1, r7]
- cmp r2, r0
- bne _080E3B36
- mov r0, r12
- strh r0, [r6]
- strh r0, [r4]
- movs r0, 0x1
- bl sub_80789D4
- adds r0, r5, 0
- bl DestroyTask
-_080E3B36:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3B3C: .4byte gTasks
-_080E3B40: .4byte gUnknown_030041B0
-_080E3B44: .4byte gUnknown_030041B8
-_080E3B48: .4byte gBattleAnimArgs
- thumb_func_end sub_80E3AD0
-
- thumb_func_start sub_80E3B4C
-sub_80E3B4C: @ 80E3B4C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080E3B70 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- ldr r1, _080E3B74 @ =gBattleAnimArgs
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0xE]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3B70: .4byte gBattleAnimBankAttacker
-_080E3B74: .4byte gBattleAnimArgs
- thumb_func_end sub_80E3B4C
-
- thumb_func_start sub_80E3B78
-sub_80E3B78: @ 80E3B78
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080E3B9C @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- ldr r1, _080E3BA0 @ =gBattleAnimArgs
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0xE]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3B9C: .4byte gBattleAnimBankTarget
-_080E3BA0: .4byte gBattleAnimArgs
- thumb_func_end sub_80E3B78
-
- thumb_func_start sub_80E3BA4
-sub_80E3BA4: @ 80E3BA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r5, _080E3BD0 @ =gBattleAnimArgs
- movs r4, 0
- ldr r0, _080E3BD4 @ =gBattleAnimBankAttacker
- ldrb r2, [r0]
- movs r0, 0x2
- ldr r1, _080E3BD8 @ =gBattleAnimBankTarget
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bne _080E3BC0
- movs r4, 0x1
-_080E3BC0:
- strh r4, [r5, 0xE]
- adds r0, r3, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3BD0: .4byte gBattleAnimArgs
-_080E3BD4: .4byte gBattleAnimBankAttacker
-_080E3BD8: .4byte gBattleAnimBankTarget
- thumb_func_end sub_80E3BA4
-
- thumb_func_start sub_80E3BDC
-sub_80E3BDC: @ 80E3BDC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r6, _080E3C3C @ =gSprites
-_080E3BE6:
- ldr r0, _080E3C40 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- cmp r4, r0
- beq _080E3C24
- lsls r0, r4, 24
- lsrs r0, 24
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080E3C24
- ldr r0, _080E3C44 @ =gObjectBankIDs
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldr r1, _080E3C48 @ =gBattleAnimArgs
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r3, [r1]
- ands r3, r0
- lsls r3, 2
- ldrb r0, [r2]
- movs r7, 0x5
- negs r7, r7
- adds r1, r7, 0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
-_080E3C24:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080E3BE6
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3C3C: .4byte gSprites
-_080E3C40: .4byte gBattleAnimBankAttacker
-_080E3C44: .4byte gObjectBankIDs
-_080E3C48: .4byte gBattleAnimArgs
- thumb_func_end sub_80E3BDC
-
- thumb_func_start sub_80E3C4C
-sub_80E3C4C: @ 80E3C4C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r1, [sp, 0x3C]
- ldr r4, [sp, 0x40]
- ldr r5, [sp, 0x44]
- ldr r6, [sp, 0x48]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x10]
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp, 0x14]
- lsls r6, 24
- lsrs r6, 24
- mov r10, r6
- movs r0, 0
- str r0, [sp, 0x18]
- movs r0, 0x2
- adds r6, r7, 0
- eors r6, r0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080E3CAE
- mov r1, r8
- cmp r1, 0
- beq _080E3CB2
- adds r0, r6, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- bne _080E3CB2
-_080E3CAE:
- movs r2, 0
- mov r8, r2
-_080E3CB2:
- ldr r0, _080E3D34 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E3D38 @ =gUnknown_03004240
- strh r1, [r0]
- ldr r1, _080E3D3C @ =REG_WININ
- ldr r3, _080E3D40 @ =0x00003f3f
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080E3D44 @ =0x00003f3d
- adds r0, r2, 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, _080E3D48 @ =REG_BLDCNT
- ldr r2, _080E3D4C @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r4, _080E3D50 @ =REG_BG1CNT
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080E3D22
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080E3D22:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080E3D58
- ldr r0, _080E3D54 @ =0x02019348
- ldrh r4, [r0]
- b _080E3D96
- .align 2, 0
-_080E3D34: .4byte gUnknown_030042C4
-_080E3D38: .4byte gUnknown_03004240
-_080E3D3C: .4byte REG_WININ
-_080E3D40: .4byte 0x00003f3f
-_080E3D44: .4byte 0x00003f3d
-_080E3D48: .4byte REG_BLDCNT
-_080E3D4C: .4byte 0x00003f42
-_080E3D50: .4byte REG_BG1CNT
-_080E3D54: .4byte 0x02019348
-_080E3D58:
- adds r0, r7, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080E3D7C
- ldr r1, _080E3D74 @ =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E3D78 @ =gEnemyParty
- b _080E3D8A
- .align 2, 0
-_080E3D74: .4byte gBattlePartyID
-_080E3D78: .4byte gEnemyParty
-_080E3D7C:
- ldr r1, _080E3E48 @ =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E3E4C @ =gPlayerParty
-_080E3D8A:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
-_080E3D96:
- ldr r5, _080E3E50 @ =gObjectBankIDs
- adds r0, r7, r5
- ldrb r1, [r0]
- adds r0, r7, 0
- adds r2, r4, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r7, r0, 24
- mov r0, r8
- cmp r0, 0
- beq _080E3DC0
- adds r0, r6, r5
- ldrb r1, [r0]
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
-_080E3DC0:
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- ldr r0, [sp, 0x50]
- bl LZDecompressVram
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080E3DE6
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080E3DE6:
- ldr r1, [sp]
- ldr r0, [sp, 0x4C]
- bl LZDecompressVram
- mov r0, sp
- ldrb r1, [r0, 0x8]
- lsls r1, 4
- ldr r0, [sp, 0x54]
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r0, _080E3E54 @ =gUnknown_030042C0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E3E58 @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r1, _080E3E5C @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- mov r3, sp
- ldrh r3, [r3, 0xC]
- strh r3, [r0, 0xA]
- mov r1, sp
- ldrh r1, [r1, 0x10]
- strh r1, [r0, 0x10]
- mov r2, r10
- strh r2, [r0, 0x12]
- mov r3, sp
- ldrh r3, [r3, 0x14]
- strh r3, [r0, 0x14]
- strh r7, [r0, 0x8]
- mov r1, r8
- strh r1, [r0, 0xC]
- mov r2, sp
- ldrh r2, [r2, 0x18]
- strh r2, [r0, 0xE]
- ldr r1, _080E3E60 @ =sub_80E3E64
- str r1, [r0]
- 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
-_080E3E48: .4byte gBattlePartyID
-_080E3E4C: .4byte gPlayerParty
-_080E3E50: .4byte gObjectBankIDs
-_080E3E54: .4byte gUnknown_030042C0
-_080E3E58: .4byte gUnknown_030041B4
-_080E3E5C: .4byte gTasks
-_080E3E60: .4byte sub_80E3E64
- thumb_func_end sub_80E3C4C
-
- thumb_func_start sub_80E3E64
-sub_80E3E64: @ 80E3E64
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080E3E9C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r1
- movs r0, 0xA
- ldrsh r2, [r3, r0]
- adds r5, r1, 0
- cmp r2, 0
- bge _080E3E80
- negs r2, r2
-_080E3E80:
- ldrh r0, [r3, 0x22]
- adds r4, r0, r2
- strh r4, [r3, 0x22]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bge _080E3EA4
- ldr r2, _080E3EA0 @ =gUnknown_030041B4
- lsls r1, r4, 16
- asrs r1, 24
- ldrh r0, [r2]
- subs r0, r1
- strh r0, [r2]
- b _080E3EB0
- .align 2, 0
-_080E3E9C: .4byte gTasks
-_080E3EA0: .4byte gUnknown_030041B4
-_080E3EA4:
- ldr r1, _080E3ED4 @ =gUnknown_030041B4
- lsls r0, r4, 16
- asrs r0, 24
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
-_080E3EB0:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r5
- ldrh r1, [r4, 0x22]
- movs r0, 0xFF
- ands r0, r1
- movs r2, 0
- strh r0, [r4, 0x22]
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- beq _080E3F18
- cmp r0, 0x1
- bgt _080E3ED8
- cmp r0, 0
- beq _080E3EDE
- b _080E3FE2
- .align 2, 0
-_080E3ED4: .4byte gUnknown_030041B4
-_080E3ED8:
- cmp r0, 0x2
- beq _080E3F32
- b _080E3FE2
-_080E3EDE:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x14
- ldrsh r1, [r4, r3]
- cmp r0, r1
- blt _080E3FE2
- strh r2, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- adds r1, 0x1
- strh r1, [r4, 0x20]
- ldr r2, _080E3F14 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080E3FE2
- b _080E3F2A
- .align 2, 0
-_080E3F14: .4byte REG_BLDALPHA
-_080E3F18:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x12
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _080E3FE2
-_080E3F2A:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _080E3FE2
-_080E3F32:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x14
- ldrsh r1, [r4, r3]
- cmp r0, r1
- blt _080E3FE2
- strh r2, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- subs r1, 0x1
- strh r1, [r4, 0x20]
- ldr r7, _080E3FE8 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r7]
- movs r0, 0x20
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _080E3FE2
- movs r0, 0
- bl sub_8076464
- ldr r0, _080E3FEC @ =gUnknown_030042C4
- strh r5, [r0]
- ldr r0, _080E3FF0 @ =gUnknown_03004240
- strh r5, [r0]
- ldr r0, _080E3FF4 @ =REG_WININ
- ldr r2, _080E3FF8 @ =0x00003f3f
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080E3F90
- ldr r2, _080E3FFC @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080E3F90:
- 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, _080E4000 @ =REG_BLDCNT
- strh r5, [r0]
- strh r5, [r7]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080E4004 @ =gSprites
- adds r0, r5
- bl DestroySprite
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080E3FD0
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
-_080E3FD0:
- ldr r2, _080E3FFC @ =REG_BG1CNT
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080E3FE2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3FE8: .4byte REG_BLDALPHA
-_080E3FEC: .4byte gUnknown_030042C4
-_080E3FF0: .4byte gUnknown_03004240
-_080E3FF4: .4byte REG_WININ
-_080E3FF8: .4byte 0x00003f3f
-_080E3FFC: .4byte REG_BG1CNT
-_080E4000: .4byte REG_BLDCNT
-_080E4004: .4byte gSprites
- thumb_func_end sub_80E3E64
-
- thumb_func_start sub_80E4008
-sub_80E4008: @ 80E4008
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E4020 @ =gBattleAnimArgs
- ldr r1, _080E4024 @ =gBattleTerrain
- ldrb r1, [r1]
- strh r1, [r2]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080E4020: .4byte gBattleAnimArgs
-_080E4024: .4byte gBattleTerrain
- thumb_func_end sub_80E4008
-
- thumb_func_start sub_80E4028
-sub_80E4028: @ 80E4028
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r0, _080E4068 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E406C
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080E4084
- movs r2, 0x1
-_080E405A:
- lsrs r1, 1
- adds r4, 0x1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _080E405A
- b _080E4084
- .align 2, 0
-_080E4068: .4byte gBattleAnimArgs
-_080E406C:
- cmp r0, 0x1
- bne _080E4078
- ldr r0, _080E4074 @ =gBattleAnimBankAttacker
- b _080E407E
- .align 2, 0
-_080E4074: .4byte gBattleAnimBankAttacker
-_080E4078:
- cmp r0, 0x2
- bne _080E4084
- ldr r0, _080E409C @ =gBattleAnimBankTarget
-_080E407E:
- ldrb r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
-_080E4084:
- ldr r0, _080E40A0 @ =gBattleAnimArgs
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- lsls r5, r0, 5
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080E40A8
- ldr r0, _080E40A4 @ =0x02014800
- b _080E40AA
- .align 2, 0
-_080E409C: .4byte gBattleAnimBankTarget
-_080E40A0: .4byte gBattleAnimArgs
-_080E40A4: .4byte 0x02014800
-_080E40A8:
- ldr r0, _080E40C8 @ =0x02018000
-_080E40AA:
- adds r2, r5, r0
- lsls r1, r4, 5
- ldr r0, _080E40CC @ =gPlttBufferUnfaded
- adds r1, r0
- adds r0, r2, 0
- movs r2, 0x20
- bl memcpy
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E40C8: .4byte 0x02018000
-_080E40CC: .4byte gPlttBufferUnfaded
- thumb_func_end sub_80E4028
-
- thumb_func_start sub_80E40D0
-sub_80E40D0: @ 80E40D0
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r0, _080E4110 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E4114
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080E412C
- movs r2, 0x1
-_080E4102:
- lsrs r1, 1
- adds r4, 0x1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _080E4102
- b _080E412C
- .align 2, 0
-_080E4110: .4byte gBattleAnimArgs
-_080E4114:
- cmp r0, 0x1
- bne _080E4120
- ldr r0, _080E411C @ =gBattleAnimBankAttacker
- b _080E4126
- .align 2, 0
-_080E411C: .4byte gBattleAnimBankAttacker
-_080E4120:
- cmp r0, 0x2
- bne _080E412C
- ldr r0, _080E4148 @ =gBattleAnimBankTarget
-_080E4126:
- ldrb r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
-_080E412C:
- lsls r1, r4, 5
- ldr r0, _080E414C @ =gPlttBufferUnfaded
- adds r5, r1, r0
- ldr r0, _080E4150 @ =gBattleAnimArgs
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- lsls r4, r0, 5
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080E4158
- ldr r0, _080E4154 @ =0x02014800
- b _080E415A
- .align 2, 0
-_080E4148: .4byte gBattleAnimBankTarget
-_080E414C: .4byte gPlttBufferUnfaded
-_080E4150: .4byte gBattleAnimArgs
-_080E4154: .4byte 0x02014800
-_080E4158:
- ldr r0, _080E4174 @ =0x02018000
-_080E415A:
- adds r1, r4, r0
- adds r0, r5, 0
- movs r2, 0x20
- bl memcpy
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4174: .4byte 0x02018000
- thumb_func_end sub_80E40D0
-
- thumb_func_start sub_80E4178
-sub_80E4178: @ 80E4178
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _080E41B8 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E41BC
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080E41D4
- movs r2, 0x1
-_080E41AA:
- lsrs r1, 1
- adds r4, 0x1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _080E41AA
- b _080E41D4
- .align 2, 0
-_080E41B8: .4byte gBattleAnimArgs
-_080E41BC:
- cmp r0, 0x1
- bne _080E41C8
- ldr r0, _080E41C4 @ =gBattleAnimBankAttacker
- b _080E41CE
- .align 2, 0
-_080E41C4: .4byte gBattleAnimBankAttacker
-_080E41C8:
- cmp r0, 0x2
- bne _080E41D4
- ldr r0, _080E41F4 @ =gBattleAnimBankTarget
-_080E41CE:
- ldrb r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
-_080E41D4:
- lsls r1, r4, 5
- ldr r0, _080E41F8 @ =gPlttBufferUnfaded
- adds r0, r1, r0
- ldr r2, _080E41FC @ =gPlttBufferFaded
- adds r1, r2
- movs r2, 0x20
- bl memcpy
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E41F4: .4byte gBattleAnimBankTarget
-_080E41F8: .4byte gPlttBufferUnfaded
-_080E41FC: .4byte gPlttBufferFaded
- thumb_func_end sub_80E4178
-
- thumb_func_start sub_80E4200
-sub_80E4200: @ 80E4200
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsContest
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080E4220
- ldr r1, _080E421C @ =gBattleAnimArgs
- movs r0, 0x1
- strh r0, [r1, 0xE]
- b _080E4224
- .align 2, 0
-_080E421C: .4byte gBattleAnimArgs
-_080E4220:
- ldr r0, _080E4230 @ =gBattleAnimArgs
- strh r1, [r0, 0xE]
-_080E4224:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4230: .4byte gBattleAnimArgs
- thumb_func_end sub_80E4200
-
- thumb_func_start sub_80E4234
-sub_80E4234: @ 80E4234
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E4254 @ =gBattleAnimBankAttacker
- ldr r1, _080E4258 @ =gBankTarget
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r2, _080E425C @ =gBattleAnimBankTarget
- ldr r1, _080E4260 @ =gEffectBank
- ldrb r1, [r1]
- strb r1, [r2]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080E4254: .4byte gBattleAnimBankAttacker
-_080E4258: .4byte gBankTarget
-_080E425C: .4byte gBattleAnimBankTarget
-_080E4260: .4byte gEffectBank
- thumb_func_end sub_80E4234
-
- thumb_func_start sub_80E4264
-sub_80E4264: @ 80E4264
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080E428C @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- adds r4, r0, 0
- ldr r0, _080E4290 @ =gBattleAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080E4298
- ldr r1, _080E4294 @ =gBattleAnimArgs
- movs r0, 0x1
- b _080E429C
- .align 2, 0
-_080E428C: .4byte gBattleAnimBankAttacker
-_080E4290: .4byte gBattleAnimBankTarget
-_080E4294: .4byte gBattleAnimArgs
-_080E4298:
- ldr r1, _080E42AC @ =gBattleAnimArgs
- movs r0, 0
-_080E429C:
- strh r0, [r1, 0xE]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E42AC: .4byte gBattleAnimArgs
- thumb_func_end sub_80E4264
-
- thumb_func_start sub_80E42B0
-sub_80E42B0: @ 80E42B0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E42C8 @ =gBattleAnimBankTarget
- ldr r1, _080E42CC @ =gBankTarget
- ldrb r1, [r1]
- strb r1, [r2]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080E42C8: .4byte gBattleAnimBankTarget
-_080E42CC: .4byte gBankTarget
- thumb_func_end sub_80E42B0
-
- thumb_func_start sub_80E42D0
-sub_80E42D0: @ 80E42D0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E42F0 @ =gBattleAnimBankAttacker
- ldr r1, _080E42F4 @ =gBankAttacker
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r2, _080E42F8 @ =gBattleAnimBankTarget
- ldr r1, _080E42FC @ =gEffectBank
- ldrb r1, [r1]
- strb r1, [r2]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080E42F0: .4byte gBattleAnimBankAttacker
-_080E42F4: .4byte gBankAttacker
-_080E42F8: .4byte gBattleAnimBankTarget
-_080E42FC: .4byte gEffectBank
- thumb_func_end sub_80E42D0
-
- thumb_func_start sub_80E4300
-sub_80E4300: @ 80E4300
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080E4318
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080E434E
-_080E4318:
- ldr r0, _080E4354 @ =gTasks
- lsls r3, r4, 2
- adds r3, r4
- lsls r3, 3
- adds r3, r0
- ldr r1, _080E4358 @ =gBattleAnimBankAttacker
- ldrb r0, [r1]
- lsls r0, 2
- ldr r2, _080E435C @ =0x02017800
- adds r0, r2
- ldr r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- strh r0, [r3, 0x8]
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1]
- ldr r0, _080E4360 @ =sub_80E4368
- str r0, [r3]
- ldr r1, _080E4364 @ =gAnimVisualTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_080E434E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4354: .4byte gTasks
-_080E4358: .4byte gBattleAnimBankAttacker
-_080E435C: .4byte 0x02017800
-_080E4360: .4byte sub_80E4368
-_080E4364: .4byte gAnimVisualTaskCount
- thumb_func_end sub_80E4300
-
- thumb_func_start sub_80E4368
-sub_80E4368: @ 80E4368
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E43B0 @ =gBattleAnimArgs
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bne _080E43A8
- ldr r0, _080E43B4 @ =gBattleAnimBankAttacker
- ldrb r3, [r0]
- lsls r3, 2
- ldr r0, _080E43B8 @ =0x02017800
- adds r3, r0
- ldr r1, _080E43BC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x8]
- movs r1, 0x1
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r0, r4, 0
- bl DestroyTask
-_080E43A8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E43B0: .4byte gBattleAnimArgs
-_080E43B4: .4byte gBattleAnimBankAttacker
-_080E43B8: .4byte 0x02017800
-_080E43BC: .4byte gTasks
- thumb_func_end sub_80E4368
-
- 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 @ =gUnknown_030042C0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E4478 @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _080E447C @ =gUnknown_03004288
- strh r1, [r0]
- ldr r0, _080E4480 @ =gUnknown_03004280
- 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 gUnknown_030042C0
-_080E4478: .4byte gUnknown_030041B4
-_080E447C: .4byte gUnknown_03004288
-_080E4480: .4byte gUnknown_03004280
-_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 @ =gUnknown_030042C0
- 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 gUnknown_030042C0
-_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 @ =gUnknown_03004240
- 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 gUnknown_03004240
-_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 @ =gUnknown_030041B4
- ldrh r1, [r2]
- ldr r0, _080E45C0 @ =0x0000ffb0
- cmp r1, r0
- beq _080E45D2
- subs r0, r1, 0x2
- b _080E45D0
- .align 2, 0
-_080E45BC: .4byte gUnknown_030041B4
-_080E45C0: .4byte 0x0000ffb0
-_080E45C4:
- ldr r2, _080E4690 @ =gUnknown_030041B4
- ldrh r1, [r2]
- ldr r0, _080E4694 @ =0x0000ffc8
- cmp r1, r0
- beq _080E45D2
- subs r0, r1, 0x1
-_080E45D0:
- strh r0, [r2]
-_080E45D2:
- ldr r2, _080E4698 @ =gUnknown_03004240
- 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 gUnknown_030041B4
-_080E4694: .4byte 0x0000ffc8
-_080E4698: .4byte gUnknown_03004240
-_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 @ =gUnknown_030042C0
- ldrh r0, [r1]
- adds r0, 0x8
- b _080E4712
- .align 2, 0
-_080E4708: .4byte gUnknown_030042C0
-_080E470C:
- ldr r1, _080E4750 @ =gUnknown_030042C0
- 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 @ =gUnknown_030041B4
- 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 gUnknown_030042C0
-_080E4754: .4byte gUnknown_030041B4
-_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 @ =gUnknown_03004240
- 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 gUnknown_03004240
-_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 @ =gUnknown_03004240
- 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 gUnknown_03004240
-_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 @ =gUnknown_030042C0
- 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 gUnknown_030042C0
-_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 @ =gUnknown_03004240
- 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 gUnknown_03004240
-_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 @ =gUnknown_03004240
- 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 gUnknown_03004240
-_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 @ =gUnknown_030042C0
- 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 @ =gUnknown_03004288
- ldrh r0, [r1]
- subs r0, 0x3
- strh r0, [r1]
- b _080E4CAA
- .align 2, 0
-_080E4C80: .4byte gTasks
-_080E4C84: .4byte gUnknown_030042C0
-_080E4C88: .4byte gUnknown_03004288
-_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 @ =0x02000000
- 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 0x02000000
-_080E4D94: .4byte 0x0001608a
-_080E4D98: .4byte sub_800FE20
-_080E4D9C: .4byte 0x0001608b
-_080E4DA0: .4byte REG_WININ
-_080E4DA4: .4byte 0x00003f06
-_080E4DA8:
- ldr r1, _080E4DE0 @ =gUnknown_03004240
- 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 gUnknown_03004240
-_080E4DE4: .4byte gUnknown_02024DE8
-_080E4DE8: .4byte 0x0000fffe
-_080E4DEC:
- ldr r2, _080E4E9C @ =gUnknown_03004240
- 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 gUnknown_03004240
-_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/battle_anim_81258BC.s b/asm/battle_anim_81258BC.s
index 69b95b703..6705c0fd7 100644
--- a/asm/battle_anim_81258BC.s
+++ b/asm/battle_anim_81258BC.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -377,7 +376,7 @@ sub_812B18C: @ 812B18C
bl sub_8076F98
lsls r0, 24
lsrs r6, r0, 24
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
beq _0812B1CC
@@ -386,12 +385,12 @@ sub_812B18C: @ 812B18C
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0812B1C4
- ldr r0, _0812B1C0 @ =0x02019348
+ ldr r0, _0812B1C0 @ =gSharedMem + 0x19348
ldrh r4, [r0]
b _0812B272
.align 2, 0
_0812B1BC: .4byte gBattleAnimArgs
-_0812B1C0: .4byte 0x02019348
+_0812B1C0: .4byte gSharedMem + 0x19348
_0812B1C4:
adds r0, r5, 0
bl DestroyAnimVisualTask
@@ -524,14 +523,14 @@ sub_812B2B8: @ 812B2B8
bl sub_8076F98
lsls r0, 24
lsrs r4, r0, 24
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
beq _0812B2DC
- ldr r0, _0812B2D8 @ =0x02019348
+ ldr r0, _0812B2D8 @ =gSharedMem + 0x19348
b _0812B2E6
.align 2, 0
-_0812B2D8: .4byte 0x02019348
+_0812B2D8: .4byte gSharedMem + 0x19348
_0812B2DC:
ldr r1, _0812B304 @ =gUnknown_0202F7CA
ldr r0, _0812B308 @ =gBattleAnimBankAttacker
diff --git a/asm/battle_anim_812C144.s b/asm/battle_anim_812C144.s
index 4562ad2f5..91033c777 100644
--- a/asm/battle_anim_812C144.s
+++ b/asm/battle_anim_812C144.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -135,7 +134,7 @@ sub_812C220: @ 812C220
strh r0, [r4, 0x30]
ldr r1, _0812C25C @ =sub_812C268
adds r0, r4, 0
- bl StoreSpriteCallbackInData6
+ bl StoreSpriteCallbackInData
ldr r1, _0812C260 @ =REG_BLDCNT
movs r2, 0xFD
lsls r2, 6
@@ -241,7 +240,7 @@ sub_812C2BC: @ 812C2BC
lsls r1, 23
adds r0, r1
lsrs r4, r0, 16
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
beq _0812C31A
@@ -267,7 +266,7 @@ _0812C31A:
str r0, [r5, 0x1C]
ldr r1, _0812C354 @ =move_anim_8072740
adds r0, r5, 0
- bl StoreSpriteCallbackInData6
+ bl StoreSpriteCallbackInData
add sp, 0x4
pop {r4-r7}
pop {r0}
@@ -862,7 +861,7 @@ sub_812C798: @ 812C798
str r0, [r4, 0x1C]
ldr r1, _0812C7C4 @ =sub_812C7C8
adds r0, r4, 0
- bl StoreSpriteCallbackInData6
+ bl StoreSpriteCallbackInData
_0812C7BA:
pop {r4}
pop {r0}
@@ -929,7 +928,7 @@ sub_812C80C: @ 812C80C
str r0, [r4, 0x1C]
ldr r1, _0812C844 @ =move_anim_8072740
adds r0, r4, 0
- bl StoreSpriteCallbackInData6
+ bl StoreSpriteCallbackInData
pop {r4,r5}
pop {r0}
bx r0
@@ -954,7 +953,7 @@ sub_812C848: @ 812C848
ldrsh r1, [r5, r2]
adds r0, r4, 0
bl sub_807867C
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
bne _0812C89C
@@ -1473,7 +1472,7 @@ sub_812CC44: @ 812CC44
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
beq _0812CC7A
@@ -1518,7 +1517,7 @@ sub_812CCA8: @ 812CCA8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
beq _0812CCCA
@@ -2350,7 +2349,7 @@ _0812D2F0:
bne _0812D33C
ldr r1, _0812D344 @ =move_anim_8072740
adds r0, r5, 0
- bl StoreSpriteCallbackInData6
+ bl StoreSpriteCallbackInData
ldrh r0, [r5, 0x24]
ldrh r2, [r5, 0x20]
adds r0, r2
@@ -3125,7 +3124,7 @@ _0812D8C4:
ldrb r1, [r5]
mov r0, sp
bl sub_8078954
- bl IsContest
+ bl NotInBattle
lsls r0, 24
mov r9, r4
cmp r0, 0
@@ -3159,11 +3158,11 @@ _0812D906:
ldr r1, _0812D9DC @ =0x84000200
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
beq _0812DA20
- ldr r5, _0812D9E0 @ =0x02019348
+ ldr r5, _0812D9E0 @ =gSharedMem + 0x19348
ldrh r0, [r5]
bl sub_80AEB1C
adds r4, r0, 0
@@ -3221,7 +3220,7 @@ _0812D98E:
cmp r5, 0x7
ble _0812D986
_0812D9A2:
- ldr r0, _0812D9E0 @ =0x02019348
+ ldr r0, _0812D9E0 @ =gSharedMem + 0x19348
ldrh r0, [r0, 0x2]
bl sub_80AEB1C
lsls r0, 24
@@ -3247,7 +3246,7 @@ _0812D9D0: .4byte gBattleMonForms
_0812D9D4: .4byte gBattleAnimBankAttacker
_0812D9D8: .4byte 0x040000d4
_0812D9DC: .4byte 0x84000200
-_0812D9E0: .4byte 0x02019348
+_0812D9E0: .4byte gSharedMem + 0x19348
_0812D9E4: .4byte gSprites
_0812D9E8: .4byte gObjectBankIDs
_0812D9EC: .4byte gSpriteAffineAnimTable_81E7C18
@@ -3350,7 +3349,7 @@ _0812DAAE:
negs r0, r0
ands r0, r1
strb r0, [r2]
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
bne _0812DAF4
@@ -3373,7 +3372,7 @@ _0812DAAE:
bne _0812DAF4
ldrb r0, [r4]
lsls r1, r0, 2
- ldr r2, _0812DB14 @ =0x02017800
+ ldr r2, _0812DB14 @ =gSharedMem + 0x17800
adds r1, r2
ldrh r1, [r1, 0x2]
bl sub_8032984
@@ -3392,7 +3391,7 @@ _0812DAFA:
_0812DB08: .4byte REG_BG2CNT
_0812DB0C: .4byte gBattleAnimBankAttacker
_0812DB10: .4byte gTasks
-_0812DB14: .4byte 0x02017800
+_0812DB14: .4byte gSharedMem + 0x17800
thumb_func_end sub_812D7E8
thumb_func_start c3_80DFBE4
@@ -3507,7 +3506,7 @@ _0812DBD0:
movs r1, 0x1
orrs r0, r1
strb r0, [r4]
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
bne _0812DC12
@@ -3542,7 +3541,7 @@ _0812DC12:
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
beq _0812DC9C
@@ -3786,7 +3785,7 @@ _0812DE0C:
ldr r1, _0812DE98 @ =0x85000200
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
bne _0812DE5A
@@ -4226,7 +4225,7 @@ _0812E194:
movs r1, 0x1
orrs r0, r1
strb r0, [r4]
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
bne _0812E1D4
@@ -4261,7 +4260,7 @@ _0812E1D4:
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
beq _0812E260
@@ -4529,7 +4528,7 @@ _0812E420:
ldr r0, _0812E484 @ =0x85000200
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
bne _0812E450
@@ -5513,7 +5512,7 @@ _0812EBC2:
bl obj_id_set_rotscale
adds r0, r5, 0
bl sub_8079A64
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
bne _0812EBE8
@@ -6047,13 +6046,13 @@ sub_812EFC8: @ 812EFC8
str r0, [sp, 0x10]
movs r0, 0
bl GetAnimBankSpriteId
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
beq _0812F004
movs r0, 0x1
str r0, [sp, 0x14]
- ldr r0, _0812F000 @ =0x02019348
+ ldr r0, _0812F000 @ =gSharedMem + 0x19348
ldr r1, [r0, 0x10]
mov r9, r1
ldr r2, [r0, 0xC]
@@ -6062,7 +6061,7 @@ sub_812EFC8: @ 812EFC8
movs r3, 0x14
b _0812F13C
.align 2, 0
-_0812F000: .4byte 0x02019348
+_0812F000: .4byte gSharedMem + 0x19348
_0812F004:
ldr r0, _0812F070 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
@@ -6096,7 +6095,7 @@ _0812F004:
mov r8, r0
ldrb r2, [r4]
lsls r1, r2, 2
- ldr r0, _0812F080 @ =0x02017800
+ ldr r0, _0812F080 @ =gSharedMem + 0x17800
adds r1, r0
ldrh r0, [r1, 0x2]
cmp r0, 0
@@ -6118,7 +6117,7 @@ _0812F070: .4byte gBattleAnimBankAttacker
_0812F074: .4byte gBattlePartyID
_0812F078: .4byte gBattleAnimBankTarget
_0812F07C: .4byte gPlayerParty
-_0812F080: .4byte 0x02017800
+_0812F080: .4byte gSharedMem + 0x17800
_0812F084:
ldrb r0, [r4]
lsls r0, 1
@@ -6168,7 +6167,7 @@ _0812F0AC:
mov r8, r0
ldrb r2, [r4]
lsls r1, r2, 2
- ldr r0, _0812F118 @ =0x02017800
+ ldr r0, _0812F118 @ =gSharedMem + 0x17800
adds r1, r0
ldrh r0, [r1, 0x2]
cmp r0, 0
@@ -6190,7 +6189,7 @@ _0812F0AC:
_0812F10C: .4byte gBattlePartyID
_0812F110: .4byte gBattleAnimBankTarget
_0812F114: .4byte gEnemyParty
-_0812F118: .4byte 0x02017800
+_0812F118: .4byte gSharedMem + 0x17800
_0812F11C: .4byte gPlayerParty
_0812F120:
ldrb r0, [r4]
@@ -8382,7 +8381,7 @@ sub_81301EC: @ 81301EC
lsls r1, 3
ldr r0, _08130218 @ =gTasks
adds r6, r1, r0
- bl IsContest
+ bl NotInBattle
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -8810,7 +8809,7 @@ sub_813051C: @ 813051C
strh r0, [r4, 0x2E]
ldr r1, _0813054C @ =move_anim_8072740
adds r0, r4, 0
- bl StoreSpriteCallbackInData6
+ bl StoreSpriteCallbackInData
ldr r0, _08130550 @ =sub_8078CC0
str r0, [r4, 0x1C]
pop {r4}
@@ -9863,7 +9862,7 @@ sub_8130D20: @ 8130D20
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x26]
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
bne _08130DA8
@@ -10557,7 +10556,7 @@ sub_8131264: @ 8131264
lsls r0, 24
cmp r0, 0
beq _08131290
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
beq _081312A8
@@ -10690,7 +10689,7 @@ _08131384:
ldrb r0, [r4]
movs r1, 0
bl refresh_graphics_maybe
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
beq _081313C6
@@ -11140,7 +11139,7 @@ sub_81316F8: @ 81316F8
lsls r0, 24
lsrs r4, r0, 24
mov r10, r4
- bl IsContest
+ bl NotInBattle
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
@@ -11560,11 +11559,11 @@ _08131A2E:
_08131A3C: .4byte gSprites
_08131A40: .4byte gTasks
_08131A44:
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
beq _08131A74
- ldr r0, _08131A6C @ =0x02019348
+ ldr r0, _08131A6C @ =gSharedMem + 0x19348
ldr r2, [r0, 0x8]
mov r10, r2
ldr r3, [r0, 0xC]
@@ -11578,7 +11577,7 @@ _08131A44:
movs r7, 0
b _08131B92
.align 2, 0
-_08131A6C: .4byte 0x02019348
+_08131A6C: .4byte gSharedMem + 0x19348
_08131A70: .4byte gBattleAnimBankAttacker
_08131A74:
ldr r4, _08131AD4 @ =gBattleAnimBankAttacker
@@ -11610,7 +11609,7 @@ _08131A74:
mov r9, r0
ldrb r2, [r4]
lsls r1, r2, 2
- ldr r0, _08131AE0 @ =0x02017800
+ ldr r0, _08131AE0 @ =gSharedMem + 0x17800
adds r1, r0
ldrh r0, [r1, 0x2]
cmp r0, 0
@@ -11629,7 +11628,7 @@ _08131A74:
_08131AD4: .4byte gBattleAnimBankAttacker
_08131AD8: .4byte gBattlePartyID
_08131ADC: .4byte gPlayerParty
-_08131AE0: .4byte 0x02017800
+_08131AE0: .4byte gSharedMem + 0x17800
_08131AE4:
ldrh r5, [r1, 0x2]
_08131AE6:
@@ -11677,7 +11676,7 @@ _08131B10:
mov r9, r0
ldrb r2, [r4]
lsls r1, r2, 2
- ldr r0, _08131B6C @ =0x02017800
+ ldr r0, _08131B6C @ =gSharedMem + 0x17800
adds r1, r0
ldrh r0, [r1, 0x2]
cmp r0, 0
@@ -11695,7 +11694,7 @@ _08131B10:
.align 2, 0
_08131B64: .4byte gBattlePartyID
_08131B68: .4byte gEnemyParty
-_08131B6C: .4byte 0x02017800
+_08131B6C: .4byte gSharedMem + 0x17800
_08131B70:
ldrh r5, [r1, 0x2]
_08131B72:
@@ -11740,7 +11739,7 @@ _08131B94:
ldr r0, _08131C10 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
lsls r0, 2
- ldr r1, _08131C14 @ =0x02017800
+ ldr r1, _08131C14 @ =gSharedMem + 0x17800
adds r0, r1
ldrh r0, [r0, 0x2]
cmp r0, 0
@@ -11775,7 +11774,7 @@ _08131C04: .4byte gSprites
_08131C08: .4byte 0x0000ffe0
_08131C0C: .4byte gBattleAnimBankTarget
_08131C10: .4byte gBattleAnimBankAttacker
-_08131C14: .4byte 0x02017800
+_08131C14: .4byte gSharedMem + 0x17800
_08131C18: .4byte 0x00007fff
_08131C1C: .4byte gTasks
_08131C20:
@@ -12151,7 +12150,7 @@ _08131ECA:
lsrs r0, 24
cmp r0, 0x1
bne _08131FF4
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
bne _08131FF4
diff --git a/asm/battle_anim_813F0F4.s b/asm/battle_anim_813F0F4.s
index ab8a222df..f09d42062 100644
--- a/asm/battle_anim_813F0F4.s
+++ b/asm/battle_anim_813F0F4.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -368,7 +367,7 @@ _0813F3AC:
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
- bl IsContest
+ bl NotInBattle
lsls r0, 24
cmp r0, 0
bne _0813F406
@@ -1105,7 +1104,7 @@ sub_813F9E0: @ 813F9E0
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _0813F9F4 @ =0x02017840
+ ldr r0, _0813F9F4 @ =gSharedMem + 0x17840
ldrb r0, [r0, 0x8]
cmp r0, 0x5
bne _0813FA00
@@ -1113,7 +1112,7 @@ sub_813F9E0: @ 813F9E0
ldr r0, _0813F9FC @ =0x0000ffff
b _0813FA04
.align 2, 0
-_0813F9F4: .4byte 0x02017840
+_0813F9F4: .4byte gSharedMem + 0x17840
_0813F9F8: .4byte gBattleAnimArgs
_0813F9FC: .4byte 0x0000ffff
_0813FA00:
@@ -1256,7 +1255,7 @@ sub_813FA94: @ 813FA94
adds r4, r0
ldr r0, _0813FB68 @ =sub_813FD90
str r0, [r4]
- ldr r3, _0813FB6C @ =0x02017840
+ ldr r3, _0813FB6C @ =gSharedMem + 0x17840
ldr r1, _0813FB70 @ =gObjectBankIDs
mov r2, r8
ldrb r0, [r2]
@@ -1299,7 +1298,7 @@ _0813FB5C: .4byte gBallSpriteTemplates
_0813FB60: .4byte gSprites
_0813FB64: .4byte gBattleAnimBankTarget
_0813FB68: .4byte sub_813FD90
-_0813FB6C: .4byte 0x02017840
+_0813FB6C: .4byte gSharedMem + 0x17840
_0813FB70: .4byte gObjectBankIDs
_0813FB74: .4byte gTasks
_0813FB78: .4byte sub_813FB7C
@@ -1593,7 +1592,7 @@ sub_813FDC0: @ 813FDC0
lsls r0, 24
cmp r0, 0
beq _0813FE5A
- ldr r0, _0813FDE0 @ =0x02017840
+ ldr r0, _0813FDE0 @ =gSharedMem + 0x17840
ldrb r0, [r0, 0x8]
cmp r0, 0x5
bne _0813FDE8
@@ -1601,7 +1600,7 @@ sub_813FDC0: @ 813FDC0
str r0, [r4, 0x1C]
b _0813FE5A
.align 2, 0
-_0813FDE0: .4byte 0x02017840
+_0813FDE0: .4byte gSharedMem + 0x17840
_0813FDE4: .4byte sub_81407B8
_0813FDE8:
adds r0, r4, 0
@@ -2018,7 +2017,7 @@ _0814010E:
adds r0, r1
strh r0, [r4, 0x22]
strh r5, [r4, 0x26]
- ldr r0, _0814013C @ =0x02017840
+ ldr r0, _0814013C @ =gSharedMem + 0x17840
ldrb r0, [r0, 0x8]
cmp r0, 0
bne _08140144
@@ -2028,7 +2027,7 @@ _0814010E:
b _0814014E
.align 2, 0
_08140138: .4byte 0xffffff00
-_0814013C: .4byte 0x02017840
+_0814013C: .4byte gSharedMem + 0x17840
_08140140: .4byte sub_8140410
_08140144:
ldr r0, _08140154 @ =sub_8140158
@@ -2066,7 +2065,7 @@ sub_8140158: @ 8140158
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
- ldr r0, _08140198 @ =0x02017840
+ ldr r0, _08140198 @ =gSharedMem + 0x17840
strh r5, [r0, 0xC]
ldr r0, _0814019C @ =sub_81401A0
str r0, [r4, 0x1C]
@@ -2077,7 +2076,7 @@ _08140190:
pop {r0}
bx r0
.align 2, 0
-_08140198: .4byte 0x02017840
+_08140198: .4byte gSharedMem + 0x17840
_0814019C: .4byte sub_81401A0
thumb_func_end sub_8140158
@@ -2109,7 +2108,7 @@ _081401C0:
.4byte _08140368
.4byte _081403C4
_081401DC:
- ldr r0, _081401F8 @ =0x02017840
+ ldr r0, _081401F8 @ =gSharedMem + 0x17840
ldrh r2, [r0, 0xC]
movs r3, 0xC
ldrsh r1, [r0, r3]
@@ -2124,7 +2123,7 @@ _081401DC:
ands r0, r2
b _08140200
.align 2, 0
-_081401F8: .4byte 0x02017840
+_081401F8: .4byte gSharedMem + 0x17840
_081401FC:
adds r0, r2, 0
adds r0, 0xB0
@@ -2185,7 +2184,7 @@ _08140262:
bl ChangeSpriteAffineAnim
b _0814040A
_0814026C:
- ldr r0, _08140288 @ =0x02017840
+ ldr r0, _08140288 @ =gSharedMem + 0x17840
ldrh r2, [r0, 0xC]
movs r3, 0xC
ldrsh r1, [r0, r3]
@@ -2200,7 +2199,7 @@ _0814026C:
ands r0, r2
b _08140290
.align 2, 0
-_08140288: .4byte 0x02017840
+_08140288: .4byte gSharedMem + 0x17840
_0814028C:
adds r0, r2, 0
adds r0, 0xB0
@@ -2273,7 +2272,7 @@ _08140308:
movs r1, 0x1
bl ChangeSpriteAffineAnim
_08140310:
- ldr r0, _0814032C @ =0x02017840
+ ldr r0, _0814032C @ =gSharedMem + 0x17840
ldrh r2, [r0, 0xC]
movs r3, 0xC
ldrsh r1, [r0, r3]
@@ -2288,7 +2287,7 @@ _08140310:
ands r0, r2
b _08140334
.align 2, 0
-_0814032C: .4byte 0x02017840
+_0814032C: .4byte gSharedMem + 0x17840
_08140330:
adds r0, r2, 0
adds r0, 0xB0
@@ -2328,7 +2327,7 @@ _08140368:
strh r0, [r4, 0x34]
lsls r0, 16
asrs r1, r0, 24
- ldr r0, _08140394 @ =0x02017840
+ ldr r0, _08140394 @ =gSharedMem + 0x17840
ldrb r0, [r0, 0x8]
cmp r1, r0
bne _0814039C
@@ -2342,7 +2341,7 @@ _08140368:
str r0, [r4, 0x1C]
b _0814040A
.align 2, 0
-_08140394: .4byte 0x02017840
+_08140394: .4byte gSharedMem + 0x17840
_08140398: .4byte sub_8140410
_0814039C:
cmp r0, 0x4
@@ -2842,7 +2841,7 @@ _08140734:
adds r2, r0
lsls r2, 2
adds r2, r4
- ldr r0, _081407AC @ =0x02017840
+ ldr r0, _081407AC @ =gSharedMem + 0x17840
ldrb r1, [r0, 0x9]
lsls r1, 30
adds r2, 0x3E
@@ -2870,7 +2869,7 @@ _0814079C: .4byte 0xfffffee0
_081407A0: .4byte gSprites
_081407A4: .4byte gObjectBankIDs
_081407A8: .4byte gBattleAnimBankTarget
-_081407AC: .4byte 0x02017840
+_081407AC: .4byte gSharedMem + 0x17840
_081407B0: .4byte sub_81405C8
_081407B4: .4byte gDoingBattleAnim
thumb_func_end sub_81406BC
@@ -3041,7 +3040,7 @@ _081408B6:
ands r0, r1
cmp r0, 0
beq _08140900
- ldr r1, _0814092C @ =0x02017840
+ ldr r1, _0814092C @ =gSharedMem + 0x17840
ldrb r0, [r1, 0xA]
adds r0, 0x1
strb r0, [r1, 0xA]
@@ -3062,7 +3061,7 @@ _0814091C: .4byte gUnknown_0840B384
_08140920: .4byte gTasks
_08140924: .4byte gMain
_08140928: .4byte 0x0000043d
-_0814092C: .4byte 0x02017840
+_0814092C: .4byte gSharedMem + 0x17840
thumb_func_end sub_814086C
thumb_func_start sub_8140930
@@ -4275,7 +4274,7 @@ _081412C0:
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _08141308
- ldr r1, _081412FC @ =0x02017840
+ ldr r1, _081412FC @ =gSharedMem + 0x17840
ldrb r0, [r1, 0xA]
subs r0, 0x1
strb r0, [r1, 0xA]
@@ -4300,7 +4299,7 @@ _081412F2:
bl DestroySprite
b _0814130E
.align 2, 0
-_081412FC: .4byte 0x02017840
+_081412FC: .4byte gSharedMem + 0x17840
_08141300: .4byte gUnknown_0840B258
_08141304: .4byte gUnknown_0840B2B8
_08141308:
@@ -4934,7 +4933,7 @@ sub_81417D8: @ 81417D8
ldr r1, _08141800 @ =gBattleAnimBankAttacker
ldrb r1, [r1]
lsls r1, 2
- ldr r2, _08141804 @ =0x02017800
+ ldr r2, _08141804 @ =gSharedMem + 0x17800
adds r1, r2
ldr r1, [r1]
lsls r1, 29
@@ -4946,7 +4945,7 @@ sub_81417D8: @ 81417D8
.align 2, 0
_081417FC: .4byte gBattleAnimArgs
_08141800: .4byte gBattleAnimBankAttacker
-_08141804: .4byte 0x02017800
+_08141804: .4byte gSharedMem + 0x17800
thumb_func_end sub_81417D8
thumb_func_start sub_8141808
@@ -4979,7 +4978,7 @@ sub_8141828: @ 8141828
lsls r0, r6, 1
adds r0, r6
lsls r0, 2
- ldr r1, _081418E0 @ =0x02017810
+ ldr r1, _081418E0 @ =gSharedMem + 0x17810
adds r0, r1
ldrb r1, [r0]
movs r2, 0x80
@@ -5054,7 +5053,7 @@ _081418A2:
strh r0, [r1, 0xA]
b _0814190E
.align 2, 0
-_081418E0: .4byte 0x02017810
+_081418E0: .4byte gSharedMem + 0x17810
_081418E4: .4byte 0x0000ffff
_081418E8: .4byte 0x000027f9
_081418EC: .4byte gBattleAnimPicTable + (233 * 8)
@@ -5065,7 +5064,7 @@ _081418FC:
lsls r0, r6, 1
adds r0, r6
lsls r0, 2
- ldr r1, _08141918 @ =0x02017810
+ ldr r1, _08141918 @ =gSharedMem + 0x17810
adds r0, r1
ldrb r1, [r0, 0x1]
movs r2, 0x1
@@ -5078,7 +5077,7 @@ _0814190E:
pop {r0}
bx r0
.align 2, 0
-_08141918: .4byte 0x02017810
+_08141918: .4byte gSharedMem + 0x17810
thumb_func_end sub_8141828
thumb_func_start sub_814191C
@@ -5105,7 +5104,7 @@ sub_814191C: @ 814191C
.align 2, 0
_08141944: .4byte gTasks
_08141948:
- ldr r0, _08141998 @ =0x02017840
+ ldr r0, _08141998 @ =gSharedMem + 0x17840
ldrb r0, [r0, 0xA]
cmp r0, 0
beq _08141952
@@ -5145,7 +5144,7 @@ _08141966:
lsrs r5, r0, 24
b _08141A02
.align 2, 0
-_08141998: .4byte 0x02017840
+_08141998: .4byte gSharedMem + 0x17840
_0814199C: .4byte gBattleAnimSpriteTemplate_84024E8
_081419A0:
cmp r0, 0
@@ -5320,7 +5319,7 @@ sub_8141AD8: @ 8141AD8
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
- ldr r1, _08141B1C @ =0x02017810
+ ldr r1, _08141B1C @ =gSharedMem + 0x17810
adds r0, r1
ldrb r1, [r0, 0x1]
movs r2, 0x1
@@ -5334,7 +5333,7 @@ _08141B14:
bx r0
.align 2, 0
_08141B18: .4byte gTasks
-_08141B1C: .4byte 0x02017810
+_08141B1C: .4byte gSharedMem + 0x17810
thumb_func_end sub_8141AD8
thumb_func_start sub_8141B20
@@ -5667,7 +5666,7 @@ sub_8141DAC: @ 8141DAC
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _08141DC0 @ =0x02017840
+ ldr r0, _08141DC0 @ =gSharedMem + 0x17840
ldrh r1, [r0]
cmp r1, 0x53
bne _08141DC8
@@ -5675,7 +5674,7 @@ sub_8141DAC: @ 8141DAC
movs r0, 0x1
b _08141E00
.align 2, 0
-_08141DC0: .4byte 0x02017840
+_08141DC0: .4byte gSharedMem + 0x17840
_08141DC4: .4byte gBattleAnimArgs
_08141DC8:
cmp r1, 0xFA
@@ -5722,7 +5721,7 @@ sub_8141E10: @ 8141E10
lsls r0, 24
lsrs r0, 24
ldr r2, _08141E2C @ =gBattleAnimBankAttacker
- ldr r1, _08141E30 @ =0x02017840
+ ldr r1, _08141E30 @ =gSharedMem + 0x17840
ldrh r1, [r1]
strb r1, [r2]
ldr r2, _08141E34 @ =gBattleAnimBankTarget
@@ -5733,7 +5732,7 @@ sub_8141E10: @ 8141E10
bx r0
.align 2, 0
_08141E2C: .4byte gBattleAnimBankAttacker
-_08141E30: .4byte 0x02017840
+_08141E30: .4byte gSharedMem + 0x17840
_08141E34: .4byte gBattleAnimBankTarget
thumb_func_end sub_8141E10
diff --git a/asm/battle_intro.s b/asm/battle_intro.s
new file mode 100755
index 000000000..721583c30
--- /dev/null
+++ b/asm/battle_intro.s
@@ -0,0 +1,1667 @@
+ .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 @ =gUnknown_030042C0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E4478 @ =gUnknown_030041B4
+ strh r1, [r0]
+ ldr r0, _080E447C @ =gUnknown_03004288
+ strh r1, [r0]
+ ldr r0, _080E4480 @ =gUnknown_03004280
+ 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 gUnknown_030042C0
+_080E4478: .4byte gUnknown_030041B4
+_080E447C: .4byte gUnknown_03004288
+_080E4480: .4byte gUnknown_03004280
+_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 @ =gUnknown_030042C0
+ 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 gUnknown_030042C0
+_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 @ =gUnknown_03004240
+ 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 gUnknown_03004240
+_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 @ =gUnknown_030041B4
+ ldrh r1, [r2]
+ ldr r0, _080E45C0 @ =0x0000ffb0
+ cmp r1, r0
+ beq _080E45D2
+ subs r0, r1, 0x2
+ b _080E45D0
+ .align 2, 0
+_080E45BC: .4byte gUnknown_030041B4
+_080E45C0: .4byte 0x0000ffb0
+_080E45C4:
+ ldr r2, _080E4690 @ =gUnknown_030041B4
+ ldrh r1, [r2]
+ ldr r0, _080E4694 @ =0x0000ffc8
+ cmp r1, r0
+ beq _080E45D2
+ subs r0, r1, 0x1
+_080E45D0:
+ strh r0, [r2]
+_080E45D2:
+ ldr r2, _080E4698 @ =gUnknown_03004240
+ 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 gUnknown_030041B4
+_080E4694: .4byte 0x0000ffc8
+_080E4698: .4byte gUnknown_03004240
+_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 @ =gUnknown_030042C0
+ ldrh r0, [r1]
+ adds r0, 0x8
+ b _080E4712
+ .align 2, 0
+_080E4708: .4byte gUnknown_030042C0
+_080E470C:
+ ldr r1, _080E4750 @ =gUnknown_030042C0
+ 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 @ =gUnknown_030041B4
+ 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 gUnknown_030042C0
+_080E4754: .4byte gUnknown_030041B4
+_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 @ =gUnknown_03004240
+ 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 gUnknown_03004240
+_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 @ =gUnknown_03004240
+ 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 gUnknown_03004240
+_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 @ =gUnknown_030042C0
+ 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 gUnknown_030042C0
+_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 @ =gUnknown_03004240
+ 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 gUnknown_03004240
+_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 @ =gUnknown_03004240
+ 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 gUnknown_03004240
+_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 @ =gUnknown_030042C0
+ 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 @ =gUnknown_03004288
+ ldrh r0, [r1]
+ subs r0, 0x3
+ strh r0, [r1]
+ b _080E4CAA
+ .align 2, 0
+_080E4C80: .4byte gTasks
+_080E4C84: .4byte gUnknown_030042C0
+_080E4C88: .4byte gUnknown_03004288
+_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 @ =gUnknown_03004240
+ 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 gUnknown_03004240
+_080E4DE4: .4byte gUnknown_02024DE8
+_080E4DE8: .4byte 0x0000fffe
+_080E4DEC:
+ ldr r2, _080E4E9C @ =gUnknown_03004240
+ 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 gUnknown_03004240
+_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/battle_tower.s b/asm/battle_tower.s
deleted file mode 100644
index cd8eede60..000000000
--- a/asm/battle_tower.s
+++ /dev/null
@@ -1,3663 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8134548
-sub_8134548: @ 8134548
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0
-_0813454E:
- ldr r0, _08134568 @ =gSaveBlock2
- ldr r1, _0813456C @ =0x00000556
- adds r0, r1
- adds r0, r5, r0
- ldrb r0, [r0]
- cmp r0, 0x6
- bhi _08134590
- lsls r0, 2
- ldr r1, _08134570 @ =_08134574
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08134568: .4byte gSaveBlock2
-_0813456C: .4byte 0x00000556
-_08134570: .4byte _08134574
- .align 2, 0
-_08134574:
- .4byte _08134590
- .4byte _081345A8
- .4byte _081345C8
- .4byte _081345D8
- .4byte _081345B8
- .4byte _081345C0
- .4byte _081345D8
-_08134590:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_813461C
- cmp r4, 0
- bne _081345D8
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x5
- bl VarSet
- b _081345D8
-_081345A8:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_813461C
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x1
- b _081345CE
-_081345B8:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x2
- b _081345CE
-_081345C0:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x3
- b _081345CE
-_081345C8:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x4
-_081345CE:
- bl VarSet
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081345D8:
- adds r5, 0x1
- cmp r5, 0x1
- ble _0813454E
- ldr r1, _08134610 @ =gSaveBlock2
- ldr r2, _08134614 @ =0x00000556
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _081345EE
- cmp r0, 0x6
- bne _08134606
-_081345EE:
- ldr r2, _08134618 @ =0x00000557
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _081345FC
- cmp r0, 0x6
- bne _08134606
-_081345FC:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x5
- bl VarSet
-_08134606:
- bl sub_8135C44
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08134610: .4byte gSaveBlock2
-_08134614: .4byte 0x00000556
-_08134618: .4byte 0x00000557
- thumb_func_end sub_8134548
-
- thumb_func_start sub_813461C
-sub_813461C: @ 813461C
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08134644 @ =gSaveBlock2
- ldr r2, _08134648 @ =0x00000556
- adds r1, r3, r2
- adds r1, r0, r1
- movs r2, 0
- strb r2, [r1]
- lsls r0, 1
- movs r2, 0xAB
- lsls r2, 3
- adds r1, r3, r2
- adds r1, r0, r1
- movs r2, 0x1
- strh r2, [r1]
- ldr r1, _0813464C @ =0x0000055c
- adds r3, r1
- adds r0, r3
- strh r2, [r0]
- bx lr
- .align 2, 0
-_08134644: .4byte gSaveBlock2
-_08134648: .4byte 0x00000556
-_0813464C: .4byte 0x0000055c
- thumb_func_end sub_813461C
-
- thumb_func_start sub_8134650
-sub_8134650: @ 8134650
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- add r4, sp, 0x28
- movs r0, 0
- strb r0, [r4]
- bl sub_813601C
- ldr r0, _08134684 @ =gScriptResult
- ldrh r0, [r0]
- adds r7, r4, 0
- cmp r0, 0
- bne _08134680
- ldr r1, _08134688 @ =gSaveBlock2
- ldr r2, _0813468C @ =0x0000049a
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, r6
- beq _08134690
-_08134680:
- movs r0, 0
- b _081346E2
- .align 2, 0
-_08134684: .4byte gScriptResult
-_08134688: .4byte gSaveBlock2
-_0813468C: .4byte 0x0000049a
-_08134690:
- movs r6, 0x32
- cmp r5, 0
- beq _08134698
- movs r6, 0x64
-_08134698:
- movs r4, 0
- mov r8, r1
-_0813469C:
- movs r0, 0x2C
- muls r0, r4
- mov r3, r8
- adds r1, r0, r3
- movs r2, 0x9B
- lsls r2, 3
- adds r0, r1, r2
- ldrb r2, [r0]
- cmp r2, r6
- bne _08134680
- ldr r3, _081346F0 @ =0x000004cc
- adds r0, r1, r3
- ldrh r0, [r0]
- adds r3, 0x2
- adds r1, r3
- ldrh r1, [r1]
- str r2, [sp]
- add r2, sp, 0x10
- str r2, [sp, 0x4]
- add r2, sp, 0x1C
- str r2, [sp, 0x8]
- str r7, [sp, 0xC]
- movs r2, 0x1
- adds r3, r5, 0
- bl CheckMonBattleTowerBanlist
- adds r4, 0x1
- cmp r4, 0x2
- ble _0813469C
- movs r1, 0
- ldrb r0, [r7]
- cmp r0, 0x3
- bne _081346E0
- movs r1, 0x1
-_081346E0:
- adds r0, r1, 0
-_081346E2:
- add sp, 0x2C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081346F0: .4byte 0x000004cc
- thumb_func_end sub_8134650
-
- thumb_func_start sub_81346F4
-sub_81346F4: @ 81346F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- movs r0, 0
- mov r9, r0
- ldr r4, _08134738 @ =gSaveBlock2
- ldr r1, _0813473C @ =0x00000554
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r7, r0, 31
- adds r0, r7, 0
- bl sub_8135D3C
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r7, 0
- mov r1, r8
- bl sub_8134650
- lsls r0, 24
- adds r1, r4, 0
- cmp r0, 0
- beq _08134744
- ldr r2, _08134740 @ =0x00000564
- adds r1, r2
- movs r0, 0xC8
- strb r0, [r1]
- b _081347DE
- .align 2, 0
-_08134738: .4byte gSaveBlock2
-_0813473C: .4byte 0x00000554
-_08134740: .4byte 0x00000564
-_08134744:
- movs r5, 0
- movs r3, 0xA4
- mov r12, r3
- mov r10, sp
-_0813474C:
- mov r0, r12
- muls r0, r5
- movs r4, 0
- movs r1, 0
- movs r2, 0
- adds r6, r5, 0x1
- str r6, [sp, 0x14]
- ldr r6, _081347B4 @ =gSaveBlock2 + 0x14C
- adds r3, r0, r6
-_0813475E:
- ldm r3!, {r0}
- orrs r4, r0
- adds r1, r0
- adds r2, 0x1
- cmp r2, 0x27
- bls _0813475E
- mov r3, r12
- muls r3, r5
- ldr r0, _081347B8 @ =gSaveBlock2
- adds r2, r3, r0
- movs r6, 0xA7
- lsls r6, 1
- adds r0, r2, r6
- ldrh r0, [r0]
- cmp r0, r8
- bne _081347A4
- subs r6, 0x2
- adds r0, r2, r6
- ldrb r0, [r0]
- cmp r0, r7
- bne _081347A4
- cmp r4, 0
- beq _081347A4
- ldr r2, _081347BC @ =gSaveBlock2 + 0x1EC
- adds r0, r3, r2
- ldr r0, [r0]
- cmp r0, r1
- bne _081347A4
- mov r3, r10
- adds r3, 0x4
- mov r10, r3
- subs r3, 0x4
- stm r3!, {r5}
- movs r6, 0x1
- add r9, r6
-_081347A4:
- ldr r5, [sp, 0x14]
- cmp r5, 0x4
- ble _0813474C
- mov r0, r9
- cmp r0, 0
- bne _081347C0
- movs r0, 0
- b _081347E0
- .align 2, 0
-_081347B4: .4byte gSaveBlock2 + 0x14C
-_081347B8: .4byte gSaveBlock2
-_081347BC: .4byte gSaveBlock2 + 0x1EC
-_081347C0:
- bl Random
- ldr r4, _081347F0 @ =gSaveBlock2
- lsls r0, 16
- lsrs r0, 16
- mov r1, r9
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- adds r0, 0x64
- ldr r1, _081347F4 @ =0x00000564
- adds r4, r1
- strb r0, [r4]
-_081347DE:
- movs r0, 0x1
-_081347E0:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081347F0: .4byte gSaveBlock2
-_081347F4: .4byte 0x00000564
- thumb_func_end sub_81346F4
-
- thumb_func_start sub_81347F8
-sub_81347F8: @ 81347F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r5, _08134838 @ =gSaveBlock2
- ldr r1, _0813483C @ =0x00000554
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r6, r0, 31
- bl sub_81346F4
- lsls r0, 24
- cmp r0, 0
- beq _08134848
- ldr r2, _08134840 @ =0x00000564
- adds r4, r5, r2
- ldrb r0, [r4]
- bl sub_81349FC
- lsls r0, r6, 1
- movs r3, 0xAB
- lsls r3, 3
- adds r1, r5, r3
- adds r0, r1
- ldrh r0, [r0]
- adds r0, r5, r0
- ldr r1, _08134844 @ =0x00000569
- adds r0, r1
- ldrb r1, [r4]
- b _081349DC
- .align 2, 0
-_08134838: .4byte gSaveBlock2
-_0813483C: .4byte 0x00000554
-_08134840: .4byte 0x00000564
-_08134844: .4byte 0x00000569
-_08134848:
- lsls r0, r6, 1
- ldr r2, _081348D8 @ =0x0000055c
- adds r1, r5, r2
- adds r1, r0, r1
- ldrh r1, [r1]
- adds r7, r0, 0
- cmp r1, 0x7
- bls _0813485A
- b _0813495C
-_0813485A:
- movs r3, 0xAB
- lsls r3, 3
- adds r0, r5, r3
- adds r1, r7, r0
- ldrh r0, [r1]
- cmp r0, 0x7
- bne _081348E4
- adds r6, r5, 0
- mov r9, r7
- adds r5, r1, 0
- ldr r0, _081348DC @ =0x0000056a
- adds r0, r6
- mov r10, r0
- mov r8, r5
-_08134876:
- bl Random
- movs r1, 0xFF
- ands r1, r0
- lsls r2, r1, 2
- adds r2, r1
- ldr r1, _081348D8 @ =0x0000055c
- adds r4, r6, r1
- mov r3, r9
- adds r0, r3, r4
- ldrh r1, [r0]
- subs r1, 0x1
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, 0x14
- lsrs r2, 7
- adds r2, r0
- lsls r2, 16
- lsrs r2, 16
- movs r1, 0
- ldrh r0, [r5]
- subs r0, 0x1
- cmp r1, r0
- bge _081348C8
- mov r3, r10
- ldrb r0, [r3]
- cmp r0, r2
- beq _081348C8
- subs r0, r4, 0x4
- adds r0, r7, r0
- ldrh r0, [r0]
- subs r3, r0, 0x1
- adds r4, 0xE
-_081348BA:
- adds r1, 0x1
- cmp r1, r3
- bge _081348C8
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _081348BA
-_081348C8:
- mov r3, r8
- ldrh r0, [r3]
- subs r0, 0x1
- ldr r4, _081348E0 @ =gSaveBlock2
- cmp r1, r0
- bne _08134876
- b _081349B6
- .align 2, 0
-_081348D8: .4byte 0x0000055c
-_081348DC: .4byte 0x0000056a
-_081348E0: .4byte gSaveBlock2
-_081348E4:
- adds r6, r5, 0
- mov r9, r7
- adds r5, r1, 0
- ldr r2, _08134950 @ =0x0000056a
- adds r2, r6
- mov r10, r2
- mov r8, r5
-_081348F2:
- bl Random
- movs r1, 0xFF
- ands r1, r0
- lsls r0, r1, 2
- adds r0, r1
- lsrs r2, r0, 6
- ldr r3, _08134954 @ =0x0000055c
- adds r4, r6, r3
- mov r1, r9
- adds r0, r1, r4
- ldrh r1, [r0]
- subs r1, 0x1
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, r2, r0
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldrh r0, [r5]
- subs r0, 0x1
- cmp r1, r0
- bge _08134942
- mov r3, r10
- ldrb r0, [r3]
- cmp r0, r2
- beq _08134942
- subs r0, r4, 0x4
- adds r0, r7, r0
- ldrh r0, [r0]
- subs r3, r0, 0x1
- adds r4, 0xE
-_08134934:
- adds r1, 0x1
- cmp r1, r3
- bge _08134942
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _08134934
-_08134942:
- mov r3, r8
- ldrh r0, [r3]
- subs r0, 0x1
- ldr r4, _08134958 @ =gSaveBlock2
- cmp r1, r0
- bne _081348F2
- b _081349B6
- .align 2, 0
-_08134950: .4byte 0x0000056a
-_08134954: .4byte 0x0000055c
-_08134958: .4byte gSaveBlock2
-_0813495C:
- movs r2, 0xAB
- lsls r2, 3
- adds r0, r5, r2
- adds r6, r7, r0
- ldr r3, _081349EC @ =0x0000056a
- adds r3, r5
- mov r8, r3
- adds r5, r6, 0
-_0813496C:
- bl Random
- movs r1, 0xFF
- ands r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 1
- asrs r0, 8
- adds r0, 0x46
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldrh r0, [r6]
- subs r0, 0x1
- cmp r1, r0
- bge _081349AC
- mov r3, r8
- ldrb r0, [r3]
- ldr r4, _081349F0 @ =gSaveBlock2
- cmp r0, r2
- beq _081349AC
- ldrh r0, [r5]
- subs r3, r0, 0x1
- ldr r0, _081349EC @ =0x0000056a
- adds r4, r0
-_0813499E:
- adds r1, 0x1
- cmp r1, r3
- bge _081349AC
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _0813499E
-_081349AC:
- ldrh r0, [r6]
- subs r0, 0x1
- ldr r4, _081349F0 @ =gSaveBlock2
- cmp r1, r0
- bne _0813496C
-_081349B6:
- ldr r1, _081349F4 @ =0x00000564
- adds r0, r4, r1
- strb r2, [r0]
- ldr r2, _081349F4 @ =0x00000564
- adds r5, r4, r2
- ldrb r0, [r5]
- bl sub_81349FC
- movs r3, 0xAB
- lsls r3, 3
- adds r0, r4, r3
- adds r1, r7, r0
- ldrh r0, [r1]
- cmp r0, 0x6
- bhi _081349DE
- adds r0, r4, r0
- ldr r1, _081349F8 @ =0x00000569
- adds r0, r1
- ldrb r1, [r5]
-_081349DC:
- strb r1, [r0]
-_081349DE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081349EC: .4byte 0x0000056a
-_081349F0: .4byte gSaveBlock2
-_081349F4: .4byte 0x00000564
-_081349F8: .4byte 0x00000569
- thumb_func_end sub_81347F8
-
- thumb_func_start sub_81349FC
-sub_81349FC: @ 81349FC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r1, r2, 0
- cmp r2, 0x63
- bhi _08134A18
- ldr r1, _08134A14 @ =gBattleTowerTrainers
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- b _08134A38
- .align 2, 0
-_08134A14: .4byte gBattleTowerTrainers
-_08134A18:
- cmp r1, 0xC7
- bhi _08134A34
- ldr r2, _08134A2C @ =gSaveBlock2
- subs r1, 0x64
- movs r0, 0xA4
- muls r0, r1
- adds r0, r2
- ldr r1, _08134A30 @ =0x0000014d
- b _08134A38
- .align 2, 0
-_08134A2C: .4byte gSaveBlock2
-_08134A30: .4byte 0x0000014d
-_08134A34:
- ldr r0, _08134A5C @ =gSaveBlock2
- ldr r1, _08134A60 @ =0x00000499
-_08134A38:
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0
- ldr r3, _08134A64 @ =gUnknown_08405E60
- ldrb r0, [r3]
- cmp r0, r1
- beq _08134A54
-_08134A46:
- adds r2, 0x1
- cmp r2, 0x1D
- bhi _08134A54
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, r1
- bne _08134A46
-_08134A54:
- cmp r2, 0x1E
- beq _08134A6C
- ldr r0, _08134A68 @ =gUnknown_08405E92
- b _08134A8A
- .align 2, 0
-_08134A5C: .4byte gSaveBlock2
-_08134A60: .4byte 0x00000499
-_08134A64: .4byte gUnknown_08405E60
-_08134A68: .4byte gUnknown_08405E92
-_08134A6C:
- movs r2, 0
- ldr r3, _08134A98 @ =gUnknown_08405E7E
- ldrb r0, [r3]
- cmp r0, r1
- beq _08134A84
-_08134A76:
- adds r2, 0x1
- cmp r2, 0x13
- bhi _08134A84
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, r1
- bne _08134A76
-_08134A84:
- cmp r2, 0x14
- beq _08134AA4
- ldr r0, _08134A9C @ =gUnknown_08405EB0
-_08134A8A:
- adds r0, r2, r0
- ldrb r1, [r0]
- ldr r0, _08134AA0 @ =0x00004010
- bl VarSet
- b _08134AAC
- .align 2, 0
-_08134A98: .4byte gUnknown_08405E7E
-_08134A9C: .4byte gUnknown_08405EB0
-_08134AA0: .4byte 0x00004010
-_08134AA4:
- ldr r0, _08134AB0 @ =0x00004010
- movs r1, 0x7
- bl VarSet
-_08134AAC:
- pop {r0}
- bx r0
- .align 2, 0
-_08134AB0: .4byte 0x00004010
- thumb_func_end sub_81349FC
-
- thumb_func_start sub_8134AB4
-sub_8134AB4: @ 8134AB4
- push {lr}
- movs r0, 0xC8
- bl sub_81349FC
- pop {r0}
- bx r0
- thumb_func_end sub_8134AB4
-
- thumb_func_start sub_8134AC0
-sub_8134AC0: @ 8134AC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- movs r7, 0
- mov r8, r0
- movs r5, 0
- ldr r0, _08134B3C @ =gSaveBlock2
- mov r12, r0
- mov r1, r8
- ldrb r1, [r1, 0xC]
- str r1, [sp, 0x18]
- movs r2, 0xAA
- lsls r2, 1
- add r2, r12
- mov r10, r2
- mov r9, r5
-_08134AE6:
- movs r6, 0
- movs r3, 0
- ldr r0, _08134B40 @ =gSaveBlock2 + 0x158
- add r0, r9
- ldrb r0, [r0]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bne _08134B14
- movs r0, 0xA4
- muls r0, r5
- ldr r1, _08134B40 @ =gSaveBlock2 + 0x158
- adds r2, r0, r1
- mov r4, r8
- adds r4, 0xC
-_08134B02:
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x3
- bgt _08134B14
- adds r1, r4, r3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- beq _08134B02
-_08134B14:
- cmp r3, 0x4
- bne _08134B54
- movs r6, 0
- mov r2, r10
- ldrb r0, [r2]
- mov r3, r8
- ldrb r3, [r3, 0x8]
- cmp r0, r3
- bne _08134B54
- adds r1, r0, 0
- movs r0, 0xA4
- muls r0, r5
- adds r0, 0x4
- ldr r3, _08134B44 @ =gSaveBlock2 + 0x150
- adds r2, r0, r3
-_08134B32:
- cmp r1, 0xFF
- bne _08134B48
- movs r6, 0x7
- b _08134B54
- .align 2, 0
-_08134B3C: .4byte gSaveBlock2
-_08134B40: .4byte gSaveBlock2 + 0x158
-_08134B44: .4byte gSaveBlock2 + 0x150
-_08134B48:
- adds r6, 0x1
- cmp r6, 0x6
- bgt _08134B54
- ldrb r0, [r2]
- cmp r0, r1
- beq _08134B32
-_08134B54:
- cmp r6, 0x7
- beq _08134B64
- movs r0, 0xA4
- add r10, r0
- add r9, r0
- adds r5, 0x1
- cmp r5, 0x4
- ble _08134AE6
-_08134B64:
- cmp r5, 0x4
- bgt _08134B76
- movs r0, 0xA4
- muls r0, r5
- add r0, r12
- movs r1, 0xA6
- lsls r1, 1
- adds r0, r1
- b _08134B9E
-_08134B76:
- movs r5, 0
- movs r1, 0xA7
- lsls r1, 1
- add r1, r12
- b _08134B88
-_08134B80:
- adds r1, 0xA4
- adds r5, 0x1
- cmp r5, 0x4
- bgt _08134BA8
-_08134B88:
- ldrh r0, [r1]
- cmp r0, 0
- bne _08134B80
- cmp r5, 0x4
- bgt _08134BA8
- movs r0, 0xA4
- muls r0, r5
- add r0, r12
- movs r2, 0xA6
- lsls r2, 1
- adds r0, r2
-_08134B9E:
- mov r1, r8
- movs r2, 0xA4
- bl memcpy
- b _08134C5E
-_08134BA8:
- mov r2, sp
- movs r3, 0xA7
- lsls r3, 1
- mov r1, r12
- adds r0, r1, r3
- ldrh r0, [r0]
- movs r1, 0
- strh r0, [r2]
- add r0, sp, 0xC
- strh r1, [r0]
- adds r7, 0x1
- movs r5, 0x1
- add r2, sp, 0xC
- mov r9, r2
- mov r10, r3
-_08134BC6:
- movs r3, 0
- adds r0, r5, 0x1
- mov r12, r0
- cmp r3, r7
- bge _08134C0A
- movs r1, 0xA4
- adds r0, r5, 0
- muls r0, r1
- ldr r2, _08134BFC @ =gSaveBlock2
- adds r0, r2
- mov r1, r10
- adds r4, r0, r1
- mov r6, sp
-_08134BE0:
- lsls r0, r3, 1
- add r0, sp
- ldrh r2, [r4]
- adds r1, r2, 0
- ldrh r0, [r0]
- cmp r1, r0
- bcs _08134C00
- movs r3, 0
- movs r7, 0x1
- strh r2, [r6]
- mov r2, r9
- strh r5, [r2]
- b _08134C0A
- .align 2, 0
-_08134BFC: .4byte gSaveBlock2
-_08134C00:
- cmp r1, r0
- bhi _08134C0A
- adds r3, 0x1
- cmp r3, r7
- blt _08134BE0
-_08134C0A:
- cmp r3, r7
- bne _08134C2A
- lsls r1, r7, 1
- mov r3, sp
- adds r2, r3, r1
- movs r3, 0xA4
- adds r0, r5, 0
- muls r0, r3
- ldr r3, _08134C70 @ =gSaveBlock2
- adds r0, r3
- add r0, r10
- ldrh r0, [r0]
- strh r0, [r2]
- add r1, r9
- strh r5, [r1]
- adds r7, 0x1
-_08134C2A:
- mov r5, r12
- cmp r5, 0x4
- ble _08134BC6
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r7, 0
- bl __modsi3
- adds r5, r0, 0
- ldr r2, _08134C70 @ =gSaveBlock2
- lsls r0, r5, 1
- add r0, sp
- adds r0, 0xC
- ldrh r1, [r0]
- movs r0, 0xA4
- muls r0, r1
- adds r0, r2
- movs r1, 0xA6
- lsls r1, 1
- adds r0, r1
- mov r1, r8
- movs r2, 0xA4
- bl memcpy
-_08134C5E:
- 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
-_08134C70: .4byte gSaveBlock2
- thumb_func_end sub_8134AC0
-
- thumb_func_start get_trainer_class_pic_index
-get_trainer_class_pic_index: @ 8134C74
- push {lr}
- ldr r3, _08134C90 @ =gSaveBlock2
- ldr r0, _08134C94 @ =0x00000564
- adds r1, r3, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _08134CA0
- ldr r1, _08134C98 @ =gTrainerClassToPicIndex
- ldr r2, _08134C9C @ =0x00000499
- adds r0, r3, r2
- ldrb r0, [r0]
- adds r0, r1
- b _08134CD2
- .align 2, 0
-_08134C90: .4byte gSaveBlock2
-_08134C94: .4byte 0x00000564
-_08134C98: .4byte gTrainerClassToPicIndex
-_08134C9C: .4byte 0x00000499
-_08134CA0:
- cmp r0, 0x63
- bls _08134CC0
- ldr r2, _08134CBC @ =gTrainerClassToPicIndex
- ldrb r0, [r1]
- subs r0, 0x64
- movs r1, 0xA4
- muls r0, r1
- adds r0, r3
- adds r1, 0xA9
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r2
- b _08134CD2
- .align 2, 0
-_08134CBC: .4byte gTrainerClassToPicIndex
-_08134CC0:
- ldr r3, _08134CD8 @ =gTrainerClassToPicIndex
- ldr r2, _08134CDC @ =gBattleTowerTrainers
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r3
-_08134CD2:
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_08134CD8: .4byte gTrainerClassToPicIndex
-_08134CDC: .4byte gBattleTowerTrainers
- thumb_func_end get_trainer_class_pic_index
-
- thumb_func_start get_trainer_class_name_index
-get_trainer_class_name_index: @ 8134CE0
- push {lr}
- ldr r3, _08134CFC @ =gSaveBlock2
- ldr r0, _08134D00 @ =0x00000564
- adds r1, r3, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _08134D0C
- ldr r1, _08134D04 @ =gTrainerClassToNameIndex
- ldr r2, _08134D08 @ =0x00000499
- adds r0, r3, r2
- ldrb r0, [r0]
- adds r0, r1
- b _08134D40
- .align 2, 0
-_08134CFC: .4byte gSaveBlock2
-_08134D00: .4byte 0x00000564
-_08134D04: .4byte gTrainerClassToNameIndex
-_08134D08: .4byte 0x00000499
-_08134D0C:
- cmp r0, 0x63
- bhi _08134D2C
- ldr r3, _08134D24 @ =gTrainerClassToNameIndex
- ldr r2, _08134D28 @ =gBattleTowerTrainers
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r3
- b _08134D40
- .align 2, 0
-_08134D24: .4byte gTrainerClassToNameIndex
-_08134D28: .4byte gBattleTowerTrainers
-_08134D2C:
- ldr r2, _08134D48 @ =gTrainerClassToNameIndex
- ldrb r0, [r1]
- subs r0, 0x64
- movs r1, 0xA4
- muls r0, r1
- adds r0, r3
- adds r1, 0xA9
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r2
-_08134D40:
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_08134D48: .4byte gTrainerClassToNameIndex
- thumb_func_end get_trainer_class_name_index
-
- thumb_func_start get_trainer_name
-get_trainer_name: @ 8134D4C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r2, _08134D74 @ =gSaveBlock2
- ldr r0, _08134D78 @ =0x00000564
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _08134D80
- movs r3, 0
- ldr r5, _08134D7C @ =0x0000049c
- adds r2, r5
-_08134D62:
- adds r0, r4, r3
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x6
- ble _08134D62
- b _08134DC8
- .align 2, 0
-_08134D74: .4byte gSaveBlock2
-_08134D78: .4byte 0x00000564
-_08134D7C: .4byte 0x0000049c
-_08134D80:
- cmp r0, 0x63
- bhi _08134DA8
- movs r3, 0
- ldr r2, _08134DA4 @ =gBattleTowerTrainers
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, 0x1
- adds r2, r0, r2
-_08134D94:
- adds r1, r4, r3
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x6
- ble _08134D94
- b _08134DC8
- .align 2, 0
-_08134DA4: .4byte gBattleTowerTrainers
-_08134DA8:
- movs r3, 0
- ldrb r0, [r1]
- subs r0, 0x64
- movs r1, 0xA4
- muls r1, r0
- movs r5, 0xA8
- lsls r5, 1
- adds r0, r2, r5
- adds r2, r1, r0
-_08134DBA:
- adds r1, r4, r3
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x6
- ble _08134DBA
-_08134DC8:
- adds r1, r4, r3
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end get_trainer_name
-
- thumb_func_start sub_8134DD4
-sub_8134DD4: @ 8134DD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- movs r0, 0
- str r0, [sp, 0x18]
- movs r1, 0x3C
- str r1, [sp, 0x1C]
- add r4, sp, 0xC
- movs r0, 0xFF
- strb r0, [r4]
- bl ZeroEnemyPartyMons
- ldr r1, _08134E04 @ =gSaveBlock2
- ldr r2, _08134E08 @ =0x00000564
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x13
- bhi _08134E0C
- movs r3, 0x6
- str r3, [sp, 0x14]
- b _08134ED8
- .align 2, 0
-_08134E04: .4byte gSaveBlock2
-_08134E08: .4byte 0x00000564
-_08134E0C:
- cmp r0, 0x1D
- bhi _08134E1A
- movs r0, 0x9
- str r0, [sp, 0x14]
- movs r1, 0x1E
- str r1, [sp, 0x18]
- b _08134ED8
-_08134E1A:
- cmp r0, 0x27
- bhi _08134E28
- movs r2, 0xC
- str r2, [sp, 0x14]
- movs r3, 0x3C
- str r3, [sp, 0x18]
- b _08134ED8
-_08134E28:
- cmp r0, 0x31
- bhi _08134E36
- movs r0, 0xF
- str r0, [sp, 0x14]
- movs r1, 0x5A
- str r1, [sp, 0x18]
- b _08134ED8
-_08134E36:
- cmp r0, 0x3B
- bhi _08134E44
- movs r2, 0x12
- str r2, [sp, 0x14]
- movs r3, 0x78
- str r3, [sp, 0x18]
- b _08134ED8
-_08134E44:
- cmp r0, 0x45
- bhi _08134E52
- movs r0, 0x15
- str r0, [sp, 0x14]
- movs r1, 0x96
- str r1, [sp, 0x18]
- b _08134ED8
-_08134E52:
- cmp r0, 0x4F
- bhi _08134E60
- movs r2, 0x1F
- str r2, [sp, 0x14]
- movs r3, 0xB4
- str r3, [sp, 0x18]
- b _08134ED8
-_08134E60:
- cmp r0, 0x63
- bhi _08134E72
- movs r0, 0x1F
- str r0, [sp, 0x14]
- movs r1, 0xC8
- str r1, [sp, 0x18]
- movs r2, 0x64
- str r2, [sp, 0x1C]
- b _08134ED8
-_08134E72:
- cmp r0, 0xC8
- bne _08134E9C
- movs r6, 0
-_08134E78:
- movs r0, 0x64
- muls r0, r6
- ldr r1, _08134E94 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- muls r1, r6
- ldr r2, _08134E98 @ =gSaveBlock2 + 0x4CC
- adds r1, r2
- bl sub_803ADE8
- adds r6, 0x1
- cmp r6, 0x2
- ble _08134E78
- b _08135082
- .align 2, 0
-_08134E94: .4byte gEnemyParty
-_08134E98: .4byte gSaveBlock2 + 0x4CC
-_08134E9C:
- movs r6, 0
- adds r4, r1, 0
- ldr r3, _08134ECC @ =0xffffc158
- adds r5, r4, r3
-_08134EA4:
- movs r0, 0x64
- muls r0, r6
- ldr r1, _08134ED0 @ =gEnemyParty
- adds r0, r1
- ldr r2, _08134ED4 @ =0x00000564
- adds r1, r4, r2
- ldrb r2, [r1]
- movs r1, 0xA4
- muls r1, r2
- adds r1, r5
- movs r2, 0x2C
- muls r2, r6
- adds r1, r2
- bl sub_803ADE8
- adds r6, 0x1
- cmp r6, 0x2
- ble _08134EA4
- b _08135082
- .align 2, 0
-_08134ECC: .4byte 0xffffc158
-_08134ED0: .4byte gEnemyParty
-_08134ED4: .4byte 0x00000564
-_08134ED8:
- ldr r2, _08134EF4 @ =gSaveBlock2
- ldr r3, _08134EF8 @ =0x00000554
- adds r0, r2, r3
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- adds r1, r2, 0
- cmp r0, 0
- beq _08134F00
- ldr r0, _08134EFC @ =gBattleTowerLevel100Mons
- mov r10, r0
- movs r2, 0x64
- str r2, [sp, 0x10]
- b _08134F08
- .align 2, 0
-_08134EF4: .4byte gSaveBlock2
-_08134EF8: .4byte 0x00000554
-_08134EFC: .4byte gBattleTowerLevel100Mons
-_08134F00:
- ldr r3, _08134F54 @ =gBattleTowerLevel50Mons
- mov r10, r3
- movs r0, 0x32
- str r0, [sp, 0x10]
-_08134F08:
- ldr r2, _08134F58 @ =gBattleTowerTrainers
- ldr r3, _08134F5C @ =0x00000564
- adds r0, r1, r3
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x9]
- str r0, [sp, 0x20]
- movs r6, 0
-_08134F1E:
- bl Random
- movs r1, 0xFF
- ands r1, r0
- ldr r2, [sp, 0x1C]
- adds r0, r1, 0
- muls r0, r2
- asrs r0, 8
- ldr r3, [sp, 0x18]
- adds r7, r0, r3
- ldr r0, [sp, 0x20]
- cmp r0, 0
- beq _08134F48
- lsls r0, r7, 4
- add r0, r10
- ldrb r0, [r0, 0x3]
- ldr r1, [sp, 0x20]
- ands r0, r1
- cmp r0, r1
- beq _08134F48
- b _0813507C
-_08134F48:
- movs r5, 0
- lsls r0, r7, 4
- mov r2, r10
- adds r3, r0, r2
- movs r4, 0
- b _08134F64
- .align 2, 0
-_08134F54: .4byte gBattleTowerLevel50Mons
-_08134F58: .4byte gBattleTowerTrainers
-_08134F5C: .4byte 0x00000564
-_08134F60:
- adds r4, 0x64
- adds r5, 0x1
-_08134F64:
- cmp r5, r6
- bge _08134F7E
- ldr r1, _08135094 @ =gEnemyParty
- adds r0, r4, r1
- movs r1, 0xB
- movs r2, 0
- str r3, [sp, 0x24]
- bl GetMonData
- ldr r3, [sp, 0x24]
- ldrh r2, [r3]
- cmp r0, r2
- bne _08134F60
-_08134F7E:
- cmp r5, r6
- bne _0813507C
- movs r5, 0
- cmp r5, r6
- bge _08134FCC
- ldr r3, _08135098 @ =gBattleTowerHeldItems
- mov r9, r3
- lsls r0, r7, 4
- add r0, r10
- mov r8, r0
- movs r3, 0
-_08134F94:
- ldr r0, _08135094 @ =gEnemyParty
- adds r4, r3, r0
- adds r0, r4, 0
- movs r1, 0xC
- movs r2, 0
- str r3, [sp, 0x24]
- bl GetMonData
- ldr r3, [sp, 0x24]
- cmp r0, 0
- beq _08134FC4
- adds r0, r4, 0
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- mov r2, r8
- ldrb r1, [r2, 0x2]
- lsls r1, 1
- add r1, r9
- ldr r3, [sp, 0x24]
- ldrh r1, [r1]
- cmp r0, r1
- beq _08134FCC
-_08134FC4:
- adds r3, 0x64
- adds r5, 0x1
- cmp r5, r6
- blt _08134F94
-_08134FCC:
- cmp r5, r6
- bne _0813507C
- movs r5, 0
- cmp r5, r6
- bge _08134FEE
- add r0, sp, 0x4
- ldrh r0, [r0]
- cmp r0, r7
- beq _08134FEE
- add r1, sp, 0x4
-_08134FE0:
- adds r1, 0x2
- adds r5, 0x1
- cmp r5, r6
- bge _08134FEE
- ldrh r0, [r1]
- cmp r0, r7
- bne _08134FE0
-_08134FEE:
- cmp r5, r6
- bne _0813507C
- lsls r0, r6, 1
- add r0, sp
- adds r0, 0x4
- strh r7, [r0]
- movs r3, 0x64
- adds r0, r6, 0
- muls r0, r3
- ldr r1, _08135094 @ =gEnemyParty
- adds r0, r1
- lsls r4, r7, 4
- mov r3, r10
- adds r2, r4, r3
- ldrh r1, [r2]
- ldrb r2, [r2, 0xC]
- str r2, [sp]
- ldr r2, [sp, 0x10]
- ldr r3, [sp, 0x14]
- bl CreateMonWithEVSpread
- movs r5, 0
- adds r0, r6, 0x1
- mov r9, r0
- mov r8, r4
- movs r0, 0x64
- adds r7, r6, 0
- muls r7, r0
- mov r0, r10
- adds r0, 0x4
- adds r4, r0
- ldr r3, _08135094 @ =gEnemyParty
-_0813502E:
- ldrh r1, [r4]
- lsls r2, r5, 24
- lsrs r2, 24
- adds r0, r7, r3
- str r3, [sp, 0x24]
- bl SetMonMoveSlot
- ldrh r0, [r4]
- ldr r3, [sp, 0x24]
- cmp r0, 0xDA
- bne _0813504A
- movs r0, 0
- mov r1, sp
- strb r0, [r1, 0xC]
-_0813504A:
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _0813502E
- movs r2, 0x64
- adds r4, r6, 0
- muls r4, r2
- ldr r3, _08135094 @ =gEnemyParty
- adds r4, r3
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0xC
- bl SetMonData
- mov r0, r8
- add r0, r10
- ldrb r2, [r0, 0x2]
- lsls r2, 1
- ldr r0, _08135098 @ =gBattleTowerHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- mov r6, r9
-_0813507C:
- cmp r6, 0x3
- beq _08135082
- b _08134F1E
-_08135082:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135094: .4byte gEnemyParty
-_08135098: .4byte gBattleTowerHeldItems
- thumb_func_end sub_8134DD4
-
- thumb_func_start CalcBattleTowerBanlistSeenCount
-CalcBattleTowerBanlistSeenCount: @ 813509C
- push {r4-r6,lr}
- movs r5, 0
- ldr r2, _081350D8 @ =gBattleTowerBanlist
- ldrh r0, [r2]
- ldr r1, _081350DC @ =0x0000ffff
- cmp r0, r1
- beq _081350CE
- adds r6, r1, 0
- adds r4, r2, 0
-_081350AE:
- ldrh r0, [r4]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetSetPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _081350C6
- adds r5, 0x1
-_081350C6:
- adds r4, 0x2
- ldrh r0, [r4]
- cmp r0, r6
- bne _081350AE
-_081350CE:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081350D8: .4byte gBattleTowerBanlist
-_081350DC: .4byte 0x0000ffff
- thumb_func_end CalcBattleTowerBanlistSeenCount
-
- thumb_func_start AppendBattleTowerBannedSpeciesName
-AppendBattleTowerBannedSpeciesName: @ 81350E0
- push {r4-r6,lr}
- adds r5, r2, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- adds r0, r6, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetSetPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _081351E6
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- subs r0, r4, 0x1
- cmp r0, 0xA
- bhi _081351B0
- lsls r0, 2
- ldr r1, _08135118 @ =_0813511C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08135118: .4byte _0813511C
- .align 2, 0
-_0813511C:
- .4byte _08135148
- .4byte _08135178
- .4byte _08135148
- .4byte _081351B0
- .4byte _08135148
- .4byte _081351B0
- .4byte _08135148
- .4byte _081351B0
- .4byte _08135148
- .4byte _081351B0
- .4byte _08135148
-_08135148:
- cmp r5, r4
- bne _08135160
- ldr r0, _08135158 @ =gStringVar1
- ldr r1, _0813515C @ =gUnknown_08400E23
- bl StringAppend
- b _081351D8
- .align 2, 0
-_08135158: .4byte gStringVar1
-_0813515C: .4byte gUnknown_08400E23
-_08135160:
- cmp r5, r4
- ble _081351D8
- ldr r0, _08135170 @ =gStringVar1
- ldr r1, _08135174 @ =gUnknown_08400E29
- bl StringAppend
- b _081351D8
- .align 2, 0
-_08135170: .4byte gStringVar1
-_08135174: .4byte gUnknown_08400E29
-_08135178:
- cmp r4, r5
- bne _08135190
- ldr r0, _08135188 @ =gStringVar1
- ldr r1, _0813518C @ =gUnknown_08400E23
- bl StringAppend
- b _08135198
- .align 2, 0
-_08135188: .4byte gStringVar1
-_0813518C: .4byte gUnknown_08400E23
-_08135190:
- ldr r0, _081351A4 @ =gStringVar1
- ldr r1, _081351A8 @ =gUnknown_08400E29
- bl StringAppend
-_08135198:
- ldr r0, _081351A4 @ =gStringVar1
- ldr r1, _081351AC @ =gUnknown_08400E30
- bl StringAppend
- b _081351D8
- .align 2, 0
-_081351A4: .4byte gStringVar1
-_081351A8: .4byte gUnknown_08400E29
-_081351AC: .4byte gUnknown_08400E30
-_081351B0:
- cmp r4, r5
- bne _081351C8
- ldr r0, _081351C0 @ =gStringVar1
- ldr r1, _081351C4 @ =gUnknown_08400E23
- bl StringAppend
- b _081351D0
- .align 2, 0
-_081351C0: .4byte gStringVar1
-_081351C4: .4byte gUnknown_08400E23
-_081351C8:
- ldr r0, _081351F0 @ =gStringVar1
- ldr r1, _081351F4 @ =gUnknown_08400E29
- bl StringAppend
-_081351D0:
- ldr r0, _081351F0 @ =gStringVar1
- ldr r1, _081351F8 @ =gUnknown_08400E2E
- bl StringAppend
-_081351D8:
- ldr r0, _081351F0 @ =gStringVar1
- movs r1, 0xB
- muls r1, r6
- ldr r2, _081351FC @ =gSpeciesNames
- adds r1, r2
- bl StringAppend
-_081351E6:
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081351F0: .4byte gStringVar1
-_081351F4: .4byte gUnknown_08400E29
-_081351F8: .4byte gUnknown_08400E2E
-_081351FC: .4byte gSpeciesNames
- thumb_func_end AppendBattleTowerBannedSpeciesName
-
- thumb_func_start CheckMonBattleTowerBanlist
-CheckMonBattleTowerBanlist: @ 8135200
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, [sp, 0x20]
- ldr r4, [sp, 0x24]
- mov r9, r4
- ldr r4, [sp, 0x28]
- mov r10, r4
- ldr r7, [sp, 0x2C]
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r3, 24
- lsrs r3, 24
- mov r12, r3
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r2, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- beq _081352CE
- cmp r4, 0
- beq _081352CE
- ldr r0, _081352DC @ =gBattleTowerBanlist
- ldrh r1, [r0]
- ldr r5, _081352E0 @ =0x0000ffff
- adds r3, r0, 0
- cmp r1, r5
- beq _08135264
- cmp r1, r4
- beq _08135258
- adds r1, r3, 0
-_0813524A:
- adds r1, 0x2
- adds r2, 0x1
- ldrh r0, [r1]
- cmp r0, r5
- beq _08135264
- cmp r0, r4
- bne _0813524A
-_08135258:
- lsls r0, r2, 1
- adds r0, r3
- ldrh r1, [r0]
- ldr r0, _081352E0 @ =0x0000ffff
- cmp r1, r0
- bne _081352CE
-_08135264:
- mov r0, r12
- cmp r0, 0
- bne _08135270
- mov r1, r8
- cmp r1, 0x32
- bhi _081352CE
-_08135270:
- movs r2, 0
- ldrb r3, [r7]
- cmp r2, r3
- bge _08135290
- mov r1, r9
- ldrh r0, [r1]
- cmp r0, r4
- beq _08135290
- adds r5, r3, 0
-_08135282:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r5
- bge _08135290
- ldrh r0, [r1]
- cmp r0, r4
- bne _08135282
-_08135290:
- cmp r2, r3
- bne _081352CE
- cmp r6, 0
- beq _081352BA
- movs r2, 0
- cmp r2, r3
- bge _081352B6
- mov r1, r10
- ldrh r0, [r1]
- cmp r0, r6
- beq _081352B6
- adds r5, r3, 0
-_081352A8:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r5
- bge _081352B6
- ldrh r0, [r1]
- cmp r0, r6
- bne _081352A8
-_081352B6:
- cmp r2, r3
- bne _081352CE
-_081352BA:
- lsls r0, r3, 1
- add r0, r9
- strh r4, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- add r0, r10
- strh r6, [r0]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
-_081352CE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081352DC: .4byte gBattleTowerBanlist
-_081352E0: .4byte 0x0000ffff
- thumb_func_end CheckMonBattleTowerBanlist
-
- thumb_func_start CheckPartyBattleTowerBanlist
-CheckPartyBattleTowerBanlist: @ 81352E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- add r1, sp, 0x28
- movs r0, 0
- strb r0, [r1]
- movs r7, 0
- mov r9, r1
- add r0, sp, 0x1C
- mov r10, r0
-_081352FE:
- movs r0, 0x64
- adds r5, r7, 0
- muls r5, r0
- ldr r0, _081353C4 @ =gPlayerParty
- adds r5, r0
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- mov r8, r0
- mov r1, r8
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- adds r0, r5, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- ldr r5, _081353C8 @ =gScriptResult
- ldrb r3, [r5]
- str r4, [sp]
- add r0, sp, 0x10
- str r0, [sp, 0x4]
- mov r1, r10
- str r1, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- mov r0, r8
- adds r1, r6, 0
- bl CheckMonBattleTowerBanlist
- adds r7, 0x1
- cmp r7, 0x5
- ble _081352FE
- mov r1, r9
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08135420
- ldr r1, _081353CC @ =gStringVar1
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _081353D0 @ =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0
- mov r1, r9
- strb r0, [r1]
- bl CalcBattleTowerBanlistSeenCount
- adds r6, r0, 0
- ldr r2, _081353D4 @ =gBattleTowerBanlist
- ldrh r0, [r2]
- ldr r1, _081353D8 @ =0x0000ffff
- cmp r0, r1
- beq _081353A8
- mov r5, r9
- adds r7, r1, 0
- adds r4, r2, 0
-_08135394:
- ldrh r0, [r4]
- ldrb r1, [r5]
- adds r2, r6, 0
- bl AppendBattleTowerBannedSpeciesName
- strb r0, [r5]
- adds r4, 0x2
- ldrh r0, [r4]
- cmp r0, r7
- bne _08135394
-_081353A8:
- mov r0, r9
- ldrb r1, [r0]
- cmp r1, 0
- bne _081353E4
- ldr r4, _081353CC @ =gStringVar1
- ldr r1, _081353DC @ =gUnknown_08400E2C
- adds r0, r4, 0
- bl StringAppend
- ldr r1, _081353E0 @ =gUnknown_08400E32
- adds r0, r4, 0
- bl StringAppend
- b _0813543E
- .align 2, 0
-_081353C4: .4byte gPlayerParty
-_081353C8: .4byte gScriptResult
-_081353CC: .4byte gStringVar1
-_081353D0: .4byte gSpecialVar_0x8004
-_081353D4: .4byte gBattleTowerBanlist
-_081353D8: .4byte 0x0000ffff
-_081353DC: .4byte gUnknown_08400E2C
-_081353E0: .4byte gUnknown_08400E32
-_081353E4:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08135400
- ldr r0, _081353F8 @ =gStringVar1
- ldr r1, _081353FC @ =gUnknown_08400E2E
- bl StringAppend
- b _08135408
- .align 2, 0
-_081353F8: .4byte gStringVar1
-_081353FC: .4byte gUnknown_08400E2E
-_08135400:
- ldr r0, _08135414 @ =gStringVar1
- ldr r1, _08135418 @ =gUnknown_08400E2C
- bl StringAppend
-_08135408:
- ldr r0, _08135414 @ =gStringVar1
- ldr r1, _0813541C @ =gUnknown_08400E36
- bl StringAppend
- b _0813543E
- .align 2, 0
-_08135414: .4byte gStringVar1
-_08135418: .4byte gUnknown_08400E2C
-_0813541C: .4byte gUnknown_08400E36
-_08135420:
- ldr r1, _08135450 @ =gSpecialVar_0x8004
- movs r0, 0
- strh r0, [r1]
- ldr r2, _08135454 @ =gSaveBlock2
- ldrb r0, [r5]
- ldr r1, _08135458 @ =0x00000554
- adds r2, r1
- movs r1, 0x1
- ands r1, r0
- ldrb r3, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
-_0813543E:
- 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
-_08135450: .4byte gSpecialVar_0x8004
-_08135454: .4byte gSaveBlock2
-_08135458: .4byte 0x00000554
- thumb_func_end CheckPartyBattleTowerBanlist
-
- thumb_func_start sub_813545C
-sub_813545C: @ 813545C
- push {lr}
- adds r1, r0, 0
- ldr r0, _08135470 @ =gStringVar4
- movs r2, 0x2
- movs r3, 0x3
- bl sub_80EB544
- pop {r0}
- bx r0
- .align 2, 0
-_08135470: .4byte gStringVar4
- thumb_func_end sub_813545C
-
- thumb_func_start sub_8135474
-sub_8135474: @ 8135474
- push {lr}
- ldr r2, _08135490 @ =gSaveBlock2
- ldr r0, _08135494 @ =0x00000564
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _08135498
- movs r1, 0x95
- lsls r1, 3
- adds r0, r2, r1
- bl sub_813545C
- b _081354C4
- .align 2, 0
-_08135490: .4byte gSaveBlock2
-_08135494: .4byte 0x00000564
-_08135498:
- cmp r0, 0x63
- bhi _081354B4
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, _081354B0 @ =gBattleTowerTrainers + 0xC
- adds r0, r1
- bl sub_813545C
- b _081354C4
- .align 2, 0
-_081354B0: .4byte gBattleTowerTrainers + 0xC
-_081354B4:
- ldrb r1, [r1]
- movs r0, 0xA4
- muls r0, r1
- ldr r3, _081354C8 @ =0xffffc14c
- adds r1, r2, r3
- adds r0, r1
- bl sub_813545C
-_081354C4:
- pop {r0}
- bx r0
- .align 2, 0
-_081354C8: .4byte 0xffffc14c
- thumb_func_end sub_8135474
-
- thumb_func_start sub_81354CC
-sub_81354CC: @ 81354CC
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _081354E4 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _081354E8
- cmp r0, 0x1
- ble _08135520
- cmp r0, 0x2
- beq _0813551C
- b _08135520
- .align 2, 0
-_081354E4: .4byte gSpecialVar_0x8004
-_081354E8:
- movs r5, 0
-_081354EA:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08135514 @ =gSaveBlock1 + 0x238
- adds r0, r4, r0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- ldr r0, _08135518 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r5, 0x1
- cmp r5, 0x5
- ble _081354EA
- b _08135520
- .align 2, 0
-_08135514: .4byte gSaveBlock1 + 0x238
-_08135518: .4byte gPlayerParty
-_0813551C:
- bl sub_81360D0
-_08135520:
- ldr r0, _08135530 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08135530: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_81354CC
-
- thumb_func_start sub_8135534
-sub_8135534: @ 8135534
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsBattleTransitionDone
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08135558
- ldr r0, _08135560 @ =gMain
- ldr r1, _08135564 @ =sub_81354CC
- str r1, [r0, 0x8]
- ldr r0, _08135568 @ =sub_800E7C4
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08135558:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135560: .4byte gMain
-_08135564: .4byte sub_81354CC
-_08135568: .4byte sub_800E7C4
- thumb_func_end sub_8135534
-
- thumb_func_start sub_813556C
-sub_813556C: @ 813556C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08135584 @ =gSpecialVar_0x8004
- ldrh r2, [r0]
- cmp r2, 0x1
- beq _081355AC
- cmp r2, 0x1
- bgt _08135588
- cmp r2, 0
- beq _0813558E
- b _08135648
- .align 2, 0
-_08135584: .4byte gSpecialVar_0x8004
-_08135588:
- cmp r2, 0x2
- beq _08135600
- b _08135648
-_0813558E:
- ldr r1, _081355A4 @ =gBattleTypeFlags
- movs r3, 0x84
- lsls r3, 1
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _081355A8 @ =gTrainerBattleOpponent
- strh r2, [r0]
- bl sub_8134DD4
- b _081355D6
- .align 2, 0
-_081355A4: .4byte gBattleTypeFlags
-_081355A8: .4byte gTrainerBattleOpponent
-_081355AC:
- movs r5, 0
-_081355AE:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _081355F4 @ =gPlayerParty
- adds r0, r4, r0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- ldr r0, _081355F8 @ =gSaveBlock1 + 0x238
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r5, 0x1
- cmp r5, 0x5
- ble _081355AE
-_081355D6:
- ldr r0, _081355FC @ =sub_8135534
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl current_map_music_set__default_for_battle
- bl BattleSetup_GetBattleTowerBattleTransition
- lsls r0, 24
- lsrs r0, 24
- bl BattleTransition_StartOnField
- b _08135648
- .align 2, 0
-_081355F4: .4byte gPlayerParty
-_081355F8: .4byte gSaveBlock1 + 0x238
-_081355FC: .4byte sub_8135534
-_08135600:
- bl ZeroEnemyPartyMons
- movs r5, 0
-_08135606:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08135650 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- muls r1, r5
- ldr r2, _08135654 @ =gSaveBlock2 + 0x4CC
- adds r1, r2
- bl sub_803ADE8
- adds r5, 0x1
- cmp r5, 0x2
- ble _08135606
- ldr r1, _08135658 @ =gBattleTypeFlags
- ldr r2, _0813565C @ =0x00000808
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08135660 @ =gTrainerBattleOpponent
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08135664 @ =sub_8135534
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl current_map_music_set__default_for_battle
- bl BattleSetup_GetBattleTowerBattleTransition
- lsls r0, 24
- lsrs r0, 24
- bl BattleTransition_StartOnField
-_08135648:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08135650: .4byte gEnemyParty
-_08135654: .4byte gSaveBlock2 + 0x4CC
-_08135658: .4byte gBattleTypeFlags
-_0813565C: .4byte 0x00000808
-_08135660: .4byte gTrainerBattleOpponent
-_08135664: .4byte sub_8135534
- thumb_func_end sub_813556C
-
- thumb_func_start sub_8135668
-sub_8135668: @ 8135668
- push {r4,r5,lr}
- ldr r1, _0813568C @ =gSaveBlock2
- ldr r2, _08135690 @ =0x00000554
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r4, r0, 31
- ldr r0, _08135694 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- adds r5, r1, 0
- cmp r0, 0xE
- bls _08135682
- b _0813589A
-_08135682:
- lsls r0, 2
- ldr r1, _08135698 @ =_0813569C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813568C: .4byte gSaveBlock2
-_08135690: .4byte 0x00000554
-_08135694: .4byte gSpecialVar_0x8004
-_08135698: .4byte _0813569C
- .align 2, 0
-_0813569C:
- .4byte _081356D8
- .4byte _08135700
- .4byte _0813571C
- .4byte _08135726
- .4byte _08135740
- .4byte _08135754
- .4byte _08135774
- .4byte _081357D0
- .4byte _081357FC
- .4byte _0813589A
- .4byte _08135820
- .4byte _08135834
- .4byte _0813584C
- .4byte _0813586C
- .4byte _08135888
-_081356D8:
- ldr r0, _081356F0 @ =0x02000000
- ldr r3, _081356F4 @ =0x00000556
- adds r1, r5, r3
- adds r1, r4, r1
- ldrb r2, [r1]
- ldr r3, _081356F8 @ =0x000160fb
- adds r0, r3
- strb r2, [r0]
- ldr r0, _081356FC @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- b _08135898
- .align 2, 0
-_081356F0: .4byte 0x02000000
-_081356F4: .4byte 0x00000556
-_081356F8: .4byte 0x000160fb
-_081356FC: .4byte gSpecialVar_0x8005
-_08135700:
- ldr r0, _08135714 @ =gSpecialVar_0x8005
- ldrb r0, [r0]
- ldr r1, _08135718 @ =0x00000554
- adds r3, r5, r1
- movs r1, 0x1
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x2
- negs r0, r0
- b _08135810
- .align 2, 0
-_08135714: .4byte gSpecialVar_0x8005
-_08135718: .4byte 0x00000554
-_0813571C:
- lsls r1, r4, 1
- movs r2, 0xAB
- lsls r2, 3
- adds r0, r5, r2
- b _0813572C
-_08135726:
- lsls r1, r4, 1
- ldr r3, _08135738 @ =0x0000055c
- adds r0, r5, r3
-_0813572C:
- adds r1, r0
- ldr r0, _0813573C @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- strh r0, [r1]
- b _0813589A
- .align 2, 0
-_08135738: .4byte 0x0000055c
-_0813573C: .4byte gSpecialVar_0x8005
-_08135740:
- ldr r0, _0813574C @ =gSpecialVar_0x8005
- ldrh r1, [r0]
- ldr r2, _08135750 @ =0x00000564
- adds r0, r5, r2
- strb r1, [r0]
- b _0813589A
- .align 2, 0
-_0813574C: .4byte gSpecialVar_0x8005
-_08135750: .4byte 0x00000564
-_08135754:
- movs r2, 0
- ldr r4, _0813576C @ =gSaveBlock2 + 0x565
- ldr r3, _08135770 @ =gSelectedOrderFromParty
-_0813575A:
- adds r0, r2, r4
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x2
- ble _0813575A
- b _0813589A
- .align 2, 0
-_0813576C: .4byte gSaveBlock2 + 0x565
-_08135770: .4byte gSelectedOrderFromParty
-_08135774:
- ldr r3, _081357C0 @ =0x00000564
- adds r0, r5, r3
- ldrb r0, [r0]
- cmp r0, 0xC8
- bne _08135788
- movs r1, 0x93
- lsls r1, 3
- adds r0, r5, r1
- bl sub_81360AC
-_08135788:
- movs r3, 0xAE
- lsls r3, 3
- adds r2, r5, r3
- ldrh r1, [r2]
- ldr r0, _081357C4 @ =0x0000270e
- cmp r1, r0
- bhi _0813579A
- adds r0, r1, 0x1
- strh r0, [r2]
-_0813579A:
- lsls r4, 1
- movs r1, 0xAB
- lsls r1, 3
- adds r0, r5, r1
- adds r4, r0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- bl sub_8135A3C
- ldr r1, _081357C8 @ =gScriptResult
- ldrh r0, [r4]
- strh r0, [r1]
- ldr r1, _081357CC @ =gStringVar1
- adds r0, 0xA1
- strb r0, [r1]
- movs r0, 0xFF
- strb r0, [r1, 0x1]
- b _0813589A
- .align 2, 0
-_081357C0: .4byte 0x00000564
-_081357C4: .4byte 0x0000270e
-_081357C8: .4byte gScriptResult
-_081357CC: .4byte gStringVar1
-_081357D0:
- lsls r0, r4, 1
- ldr r2, _081357F0 @ =0x0000055c
- adds r1, r5, r2
- adds r4, r0, r1
- ldrh r1, [r4]
- ldr r0, _081357F4 @ =0x00000595
- cmp r1, r0
- bhi _081357E4
- adds r0, r1, 0x1
- strh r0, [r4]
-_081357E4:
- bl sub_8135A3C
- ldr r1, _081357F8 @ =gScriptResult
- ldrh r0, [r4]
- strh r0, [r1]
- b _0813589A
- .align 2, 0
-_081357F0: .4byte 0x0000055c
-_081357F4: .4byte 0x00000595
-_081357F8: .4byte gScriptResult
-_081357FC:
- ldr r0, _08135818 @ =gSpecialVar_0x8005
- ldrb r0, [r0]
- ldr r1, _0813581C @ =0x00000554
- adds r3, r5, r1
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3]
- movs r0, 0x3
- negs r0, r0
-_08135810:
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _0813589A
- .align 2, 0
-_08135818: .4byte gSpecialVar_0x8005
-_0813581C: .4byte 0x00000554
-_08135820:
- ldr r2, _08135830 @ =0x00000572
- adds r0, r5, r2
- ldrh r1, [r0]
- movs r0, 0x20
- bl SetGameStat
- b _0813589A
- .align 2, 0
-_08135830: .4byte 0x00000572
-_08135834:
- ldr r3, _08135848 @ =0x00000556
- adds r0, r5, r3
- adds r0, r4, r0
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0813589A
- adds r0, r4, 0
- bl sub_813461C
- b _0813589A
- .align 2, 0
-_08135848: .4byte 0x00000556
-_0813584C:
- ldr r1, _08135860 @ =0x00000556
- adds r0, r5, r1
- adds r0, r4, r0
- ldr r1, _08135864 @ =0x02000000
- ldr r2, _08135868 @ =0x000160fb
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- b _0813589A
- .align 2, 0
-_08135860: .4byte 0x00000556
-_08135864: .4byte 0x02000000
-_08135868: .4byte 0x000160fb
-_0813586C:
- adds r0, r4, 0
- bl sub_8135D3C
- ldr r1, _08135880 @ =gSaveBlock2
- lsls r2, r4, 1
- ldr r3, _08135884 @ =0x00000574
- adds r1, r3
- adds r2, r1
- strh r0, [r2]
- b _0813589A
- .align 2, 0
-_08135880: .4byte gSaveBlock2
-_08135884: .4byte 0x00000574
-_08135888:
- ldr r1, _081358A0 @ =0x00000554
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- movs r2, 0xAF
- lsls r2, 3
- adds r1, r5, r2
-_08135898:
- strb r0, [r1]
-_0813589A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081358A0: .4byte 0x00000554
- thumb_func_end sub_8135668
-
- thumb_func_start sub_81358A4
-sub_81358A4: @ 81358A4
- push {r4,lr}
- ldr r1, _081358C8 @ =gSaveBlock2
- ldr r2, _081358CC @ =0x00000554
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r4, r0, 31
- ldr r0, _081358D0 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- adds r3, r1, 0
- cmp r0, 0xE
- bls _081358BE
- b _08135A0A
-_081358BE:
- lsls r0, 2
- ldr r1, _081358D4 @ =_081358D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081358C8: .4byte gSaveBlock2
-_081358CC: .4byte 0x00000554
-_081358D0: .4byte gSpecialVar_0x8004
-_081358D4: .4byte _081358D8
- .align 2, 0
-_081358D8:
- .4byte _08135914
- .4byte _08135928
- .4byte _0813593C
- .4byte _0813594C
- .4byte _08135964
- .4byte _08135A0A
- .4byte _08135A0A
- .4byte _08135A0A
- .4byte _08135978
- .4byte _08135990
- .4byte _081359A0
- .4byte _081359B4
- .4byte _081359BC
- .4byte _081359DC
- .4byte _081359F8
-_08135914:
- ldr r0, _08135920 @ =gScriptResult
- ldr r2, _08135924 @ =0x00000556
- adds r1, r3, r2
- adds r1, r4, r1
- b _0813596A
- .align 2, 0
-_08135920: .4byte gScriptResult
-_08135924: .4byte 0x00000556
-_08135928:
- ldr r1, _08135934 @ =gScriptResult
- ldr r4, _08135938 @ =0x00000554
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 31
- b _08135982
- .align 2, 0
-_08135934: .4byte gScriptResult
-_08135938: .4byte 0x00000554
-_0813593C:
- ldr r2, _08135948 @ =gScriptResult
- lsls r0, r4, 1
- movs r4, 0xAB
- lsls r4, 3
- b _08135952
- .align 2, 0
-_08135948: .4byte gScriptResult
-_0813594C:
- ldr r2, _0813595C @ =gScriptResult
- lsls r0, r4, 1
- ldr r4, _08135960 @ =0x0000055c
-_08135952:
- adds r1, r3, r4
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- b _08135A0A
- .align 2, 0
-_0813595C: .4byte gScriptResult
-_08135960: .4byte 0x0000055c
-_08135964:
- ldr r0, _08135970 @ =gScriptResult
- ldr r2, _08135974 @ =0x00000564
- adds r1, r3, r2
-_0813596A:
- ldrb r1, [r1]
- strh r1, [r0]
- b _08135A0A
- .align 2, 0
-_08135970: .4byte gScriptResult
-_08135974: .4byte 0x00000564
-_08135978:
- ldr r1, _08135988 @ =gScriptResult
- ldr r4, _0813598C @ =0x00000554
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 30
-_08135982:
- lsrs r0, 31
- strh r0, [r1]
- b _08135A0A
- .align 2, 0
-_08135988: .4byte gScriptResult
-_0813598C: .4byte 0x00000554
-_08135990:
- adds r0, r4, 0
- bl sub_8135D3C
- ldr r1, _0813599C @ =gScriptResult
- strh r0, [r1]
- b _08135A0A
- .align 2, 0
-_0813599C: .4byte gScriptResult
-_081359A0:
- ldr r1, _081359B0 @ =0x00000572
- adds r0, r3, r1
- ldrh r1, [r0]
- movs r0, 0x20
- bl SetGameStat
- b _08135A0A
- .align 2, 0
-_081359B0: .4byte 0x00000572
-_081359B4:
- adds r0, r4, 0
- bl sub_813461C
- b _08135A0A
-_081359BC:
- ldr r2, _081359D0 @ =0x00000556
- adds r0, r3, r2
- adds r0, r4, r0
- ldr r1, _081359D4 @ =0x02000000
- ldr r3, _081359D8 @ =0x000160fb
- adds r1, r3
- ldrb r1, [r1]
- strb r1, [r0]
- b _08135A0A
- .align 2, 0
-_081359D0: .4byte 0x00000556
-_081359D4: .4byte 0x02000000
-_081359D8: .4byte 0x000160fb
-_081359DC:
- adds r0, r4, 0
- bl sub_8135D3C
- ldr r1, _081359F0 @ =gSaveBlock2
- lsls r2, r4, 1
- ldr r4, _081359F4 @ =0x00000574
- adds r1, r4
- adds r2, r1
- strh r0, [r2]
- b _08135A0A
- .align 2, 0
-_081359F0: .4byte gSaveBlock2
-_081359F4: .4byte 0x00000574
-_081359F8:
- ldr r1, _08135A10 @ =0x00000554
- adds r0, r3, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- movs r2, 0xAF
- lsls r2, 3
- adds r1, r3, r2
- strb r0, [r1]
-_08135A0A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135A10: .4byte 0x00000554
- thumb_func_end sub_81358A4
-
- thumb_func_start sub_8135A14
-sub_8135A14: @ 8135A14
- push {r4,lr}
- movs r2, 0
- ldr r4, _08135A34 @ =gSelectedOrderFromParty
- ldr r3, _08135A38 @ =gSaveBlock2 + 0x565
-_08135A1C:
- adds r0, r2, r4
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x2
- ble _08135A1C
- bl ReducePlayerPartyToThree
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135A34: .4byte gSelectedOrderFromParty
-_08135A38: .4byte gSaveBlock2 + 0x565
- thumb_func_end sub_8135A14
-
- thumb_func_start sub_8135A3C
-sub_8135A3C: @ 8135A3C
- push {r4-r6,lr}
- ldr r6, _08135A84 @ =gSaveBlock2
- ldr r1, _08135A88 @ =0x00000554
- adds r0, r6, r1
- ldrb r4, [r0]
- lsls r4, 31
- lsrs r4, 31
- adds r0, r4, 0
- bl sub_8135D3C
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r4, 1
- movs r3, 0xAC
- lsls r3, 3
- adds r2, r6, r3
- adds r4, r2
- ldrh r0, [r4]
- cmp r0, r5
- bcs _08135A66
- strh r5, [r4]
-_08135A66:
- ldr r0, _08135A8C @ =0x00000562
- adds r1, r6, r0
- ldrh r0, [r2]
- ldrh r3, [r1]
- cmp r0, r3
- bls _08135A94
- adds r5, r0, 0
- movs r0, 0x20
- adds r1, r5, 0
- bl SetGameStat
- ldr r1, _08135A90 @ =0x0000270f
- cmp r5, r1
- bhi _08135AA4
- b _08135AB4
- .align 2, 0
-_08135A84: .4byte gSaveBlock2
-_08135A88: .4byte 0x00000554
-_08135A8C: .4byte 0x00000562
-_08135A90: .4byte 0x0000270f
-_08135A94:
- ldrh r5, [r1]
- movs r0, 0x20
- adds r1, r5, 0
- bl SetGameStat
- ldr r1, _08135AAC @ =0x0000270f
- cmp r5, r1
- bls _08135AB4
-_08135AA4:
- ldr r2, _08135AB0 @ =0x00000572
- adds r0, r6, r2
- strh r1, [r0]
- b _08135ABA
- .align 2, 0
-_08135AAC: .4byte 0x0000270f
-_08135AB0: .4byte 0x00000572
-_08135AB4:
- ldr r3, _08135AC0 @ =0x00000572
- adds r0, r6, r3
- strh r5, [r0]
-_08135ABA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08135AC0: .4byte 0x00000572
- thumb_func_end sub_8135A3C
-
- thumb_func_start sub_8135AC4
-sub_8135AC4: @ 8135AC4
- push {r4-r6,lr}
- ldr r5, _08135AF0 @ =gSaveBlock2 + 0xA8
- adds r2, r5, 0
- subs r2, 0xA8
- ldr r1, _08135AF4 @ =0x000004ac
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r6, r0, 31
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08135AFC
- ldr r4, _08135AF8 @ =gUnknown_08405E7E
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x14
- b _08135B0E
- .align 2, 0
-_08135AF0: .4byte gSaveBlock2 + 0xA8
-_08135AF4: .4byte 0x000004ac
-_08135AF8: .4byte gUnknown_08405E7E
-_08135AFC:
- ldr r4, _08135B84 @ =gUnknown_08405E60
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x1E
-_08135B0E:
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- strb r6, [r5]
- strb r0, [r5, 0x1]
- adds r0, r5, 0
- adds r0, 0xC
- ldr r4, _08135B88 @ =gSaveBlock2 + 0xA
- adds r1, r4, 0
- bl copy_word_to_mem
- adds r0, r5, 0x4
- subs r4, 0xA
- adds r1, r4, 0
- bl StringCopy8
- adds r0, r6, 0
- bl sub_8135D3C
- strh r0, [r5, 0x2]
- ldr r0, _08135B8C @ =gSaveBlock1
- ldr r1, _08135B90 @ =0x00002b28
- adds r2, r0, r1
- adds r1, r5, 0
- adds r1, 0x10
- movs r4, 0x5
-_08135B44:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08135B44
- movs r4, 0
- ldr r6, _08135B94 @ =gSaveBlock2 + 0x565
-_08135B56:
- adds r0, r4, r6
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08135B98 @ =gUnknown_030042FC
- adds r0, r1
- movs r1, 0x2C
- muls r1, r4
- adds r1, 0x1C
- adds r1, r5, r1
- bl sub_803AF78
- adds r4, 0x1
- cmp r4, 0x2
- ble _08135B56
- ldr r0, _08135B9C @ =gSaveBlock2 + 0xA8
- bl sub_8135CC4
- bl sub_8135A3C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08135B84: .4byte gUnknown_08405E60
-_08135B88: .4byte gSaveBlock2 + 0xA
-_08135B8C: .4byte gSaveBlock1
-_08135B90: .4byte 0x00002b28
-_08135B94: .4byte gSaveBlock2 + 0x565
-_08135B98: .4byte gUnknown_030042FC
-_08135B9C: .4byte gSaveBlock2 + 0xA8
- thumb_func_end sub_8135AC4
-
- thumb_func_start sub_8135BA0
-sub_8135BA0: @ 8135BA0
- push {r4,r5,lr}
- ldr r2, _08135C1C @ =gSaveBlock2
- ldr r1, _08135C20 @ =0x00000554
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r5, r0, 31
- ldr r0, _08135C24 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x3
- beq _08135BBA
- cmp r0, 0
- bne _08135BD8
-_08135BBA:
- lsls r1, r5, 1
- ldr r3, _08135C28 @ =0x0000055c
- adds r0, r2, r3
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0x1
- bhi _08135BD4
- subs r3, 0x4
- adds r0, r2, r3
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0x1
- bls _08135BD8
-_08135BD4:
- bl sub_8135AC4
-_08135BD8:
- bl sub_8135CFC
- ldr r4, _08135C1C @ =gSaveBlock2
- ldr r0, _08135C2C @ =gBattleOutcome
- ldrb r1, [r0]
- ldr r2, _08135C30 @ =0x00000555
- adds r0, r4, r2
- strb r1, [r0]
- ldr r0, _08135C24 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- cmp r1, 0x3
- beq _08135BF8
- ldr r3, _08135C34 @ =0x00000556
- adds r0, r4, r3
- adds r0, r5, r0
- strb r1, [r0]
-_08135BF8:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0
- bl VarSet
- ldr r0, _08135C20 @ =0x00000554
- adds r2, r4, r0
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x2
- bl TrySavingData
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08135C1C: .4byte gSaveBlock2
-_08135C20: .4byte 0x00000554
-_08135C24: .4byte gSpecialVar_0x8004
-_08135C28: .4byte 0x0000055c
-_08135C2C: .4byte gBattleOutcome
-_08135C30: .4byte 0x00000555
-_08135C34: .4byte 0x00000556
- thumb_func_end sub_8135BA0
-
- thumb_func_start sub_8135C38
-sub_8135C38: @ 8135C38
- push {lr}
- bl DoSoftReset
- pop {r0}
- bx r0
- thumb_func_end sub_8135C38
-
- thumb_func_start sub_8135C44
-sub_8135C44: @ 8135C44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r3, 0
- movs r1, 0
- ldr r2, _08135CBC @ =gSaveBlock2 + 0xA8
-_08135C50:
- ldm r2!, {r0}
- adds r3, r0
- adds r1, 0x1
- cmp r1, 0x27
- bls _08135C50
- ldr r5, _08135CC0 @ =gSaveBlock2
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r5, r1
- ldr r0, [r0]
- cmp r0, r3
- beq _08135C70
- adds r0, r5, 0
- adds r0, 0xA8
- bl sub_8135CE8
-_08135C70:
- movs r4, 0
- movs r7, 0xA4
- movs r0, 0xA6
- lsls r0, 1
- adds r6, r5, r0
- mov r8, r5
-_08135C7C:
- adds r0, r4, 0
- muls r0, r7
- movs r3, 0
- movs r1, 0
- adds r5, r4, 0x1
- adds r2, r0, r6
-_08135C88:
- ldm r2!, {r0}
- adds r3, r0
- adds r1, 0x1
- cmp r1, 0x27
- bls _08135C88
- adds r1, r4, 0
- muls r1, r7
- movs r0, 0xF6
- lsls r0, 1
- add r0, r8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, r3
- beq _08135CAA
- adds r0, r1, r6
- bl sub_8135CE8
-_08135CAA:
- adds r4, r5, 0
- cmp r4, 0x4
- ble _08135C7C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135CBC: .4byte gSaveBlock2 + 0xA8
-_08135CC0: .4byte gSaveBlock2
- thumb_func_end sub_8135C44
-
- thumb_func_start sub_8135CC4
-sub_8135CC4: @ 8135CC4
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xA0
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08135CD2:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x27
- bls _08135CD2
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8135CC4
-
- thumb_func_start sub_8135CE8
-sub_8135CE8: @ 8135CE8
- push {lr}
- movs r1, 0
- movs r2, 0
-_08135CEE:
- stm r0!, {r2}
- adds r1, 0x1
- cmp r1, 0x28
- bls _08135CEE
- pop {r0}
- bx r0
- thumb_func_end sub_8135CE8
-
- thumb_func_start sub_8135CFC
-sub_8135CFC: @ 8135CFC
- push {r4,lr}
- ldr r4, _08135D34 @ =gSaveBlock2 + 0x484
- adds r0, r4, 0
- bl get_trainer_name
- ldr r2, _08135D38 @ =gBattleMons
- adds r0, r2, 0
- adds r0, 0x58
- ldrh r1, [r0]
- subs r0, r4, 0x2
- strh r1, [r0]
- ldrh r1, [r2]
- subs r0, r4, 0x4
- strh r1, [r0]
- movs r3, 0
- adds r4, 0x8
- adds r2, 0x30
-_08135D1E:
- adds r0, r3, r4
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x9
- ble _08135D1E
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135D34: .4byte gSaveBlock2 + 0x484
-_08135D38: .4byte gBattleMons
- thumb_func_end sub_8135CFC
-
- thumb_func_start sub_8135D3C
-sub_8135D3C: @ 8135D3C
- push {lr}
- lsls r0, 24
- ldr r3, _08135D74 @ =gSaveBlock2
- lsrs r0, 23
- ldr r2, _08135D78 @ =0x0000055c
- adds r1, r3, r2
- adds r1, r0, r1
- ldrh r2, [r1]
- subs r2, 0x1
- lsls r1, r2, 3
- subs r1, r2
- movs r2, 0xAB
- lsls r2, 3
- adds r3, r2
- adds r0, r3
- ldr r2, _08135D7C @ =0x0000ffff
- adds r1, r2
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r0, r1, 16
- ldr r1, _08135D80 @ =0x0000270f
- cmp r0, r1
- bls _08135D6E
- adds r0, r1, 0
-_08135D6E:
- pop {r1}
- bx r1
- .align 2, 0
-_08135D74: .4byte gSaveBlock2
-_08135D78: .4byte 0x0000055c
-_08135D7C: .4byte 0x0000ffff
-_08135D80: .4byte 0x0000270f
- thumb_func_end sub_8135D3C
-
- thumb_func_start sub_8135D84
-sub_8135D84: @ 8135D84
- push {r4,r5,lr}
- ldr r5, _08135DB0 @ =gSaveBlock2
- ldr r1, _08135DB4 @ =0x00000554
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- lsls r0, 1
- ldr r2, _08135DB8 @ =0x0000055c
- adds r1, r5, r2
- adds r0, r1
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x5
- ble _08135DC0
- bl Random
- ldr r4, _08135DBC @ =gUnknown_08405EE6
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x9
- b _08135DCC
- .align 2, 0
-_08135DB0: .4byte gSaveBlock2
-_08135DB4: .4byte 0x00000554
-_08135DB8: .4byte 0x0000055c
-_08135DBC: .4byte gUnknown_08405EE6
-_08135DC0:
- bl Random
- ldr r4, _08135DE8 @ =gUnknown_08405EDA
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
-_08135DCC:
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 15
- adds r0, r4
- ldrh r1, [r0]
- movs r2, 0xAD
- lsls r2, 3
- adds r0, r5, r2
- strh r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08135DE8: .4byte gUnknown_08405EDA
- thumb_func_end sub_8135D84
-
- thumb_func_start sub_8135DEC
-sub_8135DEC: @ 8135DEC
- push {r4-r7,lr}
- ldr r5, _08135E20 @ =gSaveBlock2
- ldr r1, _08135E24 @ =0x00000554
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r7, r0, 31
- movs r0, 0xAD
- lsls r0, 3
- adds r6, r5, r0
- ldrh r0, [r6]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _08135E30
- ldrh r0, [r6]
- ldr r1, _08135E28 @ =gStringVar1
- bl CopyItemName
- ldr r0, _08135E2C @ =gScriptResult
- strh r4, [r0]
- b _08135E40
- .align 2, 0
-_08135E20: .4byte gSaveBlock2
-_08135E24: .4byte 0x00000554
-_08135E28: .4byte gStringVar1
-_08135E2C: .4byte gScriptResult
-_08135E30:
- ldr r1, _08135E48 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08135E4C @ =0x00000556
- adds r0, r5, r1
- adds r0, r7, r0
- movs r1, 0x6
- strb r1, [r0]
-_08135E40:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135E48: .4byte gScriptResult
-_08135E4C: .4byte 0x00000556
- thumb_func_end sub_8135DEC
-
- thumb_func_start sub_8135E50
-sub_8135E50: @ 8135E50
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r6, _08135ED4 @ =gSaveBlock2
- ldr r1, _08135ED8 @ =0x00000554
- adds r0, r6, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r0, 0
- movs r7, 0x44
- cmp r1, 0
- beq _08135E6C
- movs r7, 0x45
-_08135E6C:
- ldr r4, _08135EDC @ =gScriptResult
- movs r0, 0
- strh r0, [r4]
- adds r0, r1, 0
- bl sub_8135D3C
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x37
- bls _08135EBA
- movs r5, 0
- ldr r0, _08135EE0 @ =0x00000565
- adds r0, r6
- mov r8, r0
- adds r6, r4, 0
-_08135E8A:
- mov r1, r8
- adds r0, r5, r1
- ldrb r0, [r0]
- subs r0, 0x1
- movs r1, 0x64
- muls r1, r0
- ldr r0, _08135EE4 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- adds r1, r7, 0
- bl GetMonData
- cmp r0, 0
- bne _08135EB4
- movs r0, 0x1
- strh r0, [r6]
- adds r0, r4, 0
- adds r1, r7, 0
- adds r2, r6, 0
- bl SetMonData
-_08135EB4:
- adds r5, 0x1
- cmp r5, 0x2
- ble _08135E8A
-_08135EBA:
- ldr r0, _08135EDC @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- beq _08135EC8
- movs r0, 0x2A
- bl IncrementGameStat
-_08135EC8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135ED4: .4byte gSaveBlock2
-_08135ED8: .4byte 0x00000554
-_08135EDC: .4byte gScriptResult
-_08135EE0: .4byte 0x00000565
-_08135EE4: .4byte gPlayerParty
- thumb_func_end sub_8135E50
-
- thumb_func_start unref_sub_8135EE8
-unref_sub_8135EE8: @ 8135EE8
- push {r4-r7,lr}
- ldr r7, _08135F0C @ =gSaveBlock2 + 0x498
- ldr r0, _08135F10 @ =0xfffffb68
- adds r2, r7, r0
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08135F18
- ldr r4, _08135F14 @ =gUnknown_08405E7E
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x14
- b _08135F2A
- .align 2, 0
-_08135F0C: .4byte gSaveBlock2 + 0x498
-_08135F10: .4byte 0xfffffb68
-_08135F14: .4byte gUnknown_08405E7E
-_08135F18:
- ldr r4, _08135FA8 @ =gUnknown_08405E60
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x1E
-_08135F2A:
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- strb r0, [r7, 0x1]
- adds r0, r7, 0
- adds r0, 0xC
- ldr r4, _08135FAC @ =gSaveBlock2 + 0xA
- adds r1, r4, 0
- bl copy_word_to_mem
- adds r0, r7, 0x4
- subs r4, 0xA
- adds r1, r4, 0
- bl StringCopy8
- movs r0, 0x1
- strh r0, [r7, 0x2]
- movs r5, 0x7
- movs r4, 0
- ldr r0, _08135FB0 @ =gSaveBlock1
- ldr r1, _08135FB4 @ =0x00002b28
- adds r6, r0, r1
- adds r3, r7, 0
- adds r3, 0x10
- adds r2, r7, 0
- adds r2, 0x28
- adds r1, r7, 0
- adds r1, 0x1C
-_08135F64:
- ldrh r0, [r6]
- strh r0, [r3]
- strh r5, [r1]
- adds r0, r5, 0x6
- strh r0, [r2]
- adds r5, 0x1
- adds r6, 0x2
- adds r3, 0x2
- adds r2, 0x2
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, 0x5
- ble _08135F64
- movs r4, 0
-_08135F80:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08135FB8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2C
- muls r1, r4
- adds r1, 0x34
- adds r1, r7, r1
- bl sub_803AF78
- adds r4, 0x1
- cmp r4, 0x2
- ble _08135F80
- adds r0, r7, 0
- bl sub_8136088
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135FA8: .4byte gUnknown_08405E60
-_08135FAC: .4byte gSaveBlock2 + 0xA
-_08135FB0: .4byte gSaveBlock1
-_08135FB4: .4byte 0x00002b28
-_08135FB8: .4byte gPlayerParty
- thumb_func_end unref_sub_8135EE8
-
- thumb_func_start sub_8135FBC
-sub_8135FBC: @ 8135FBC
- ldr r1, _08135FCC @ =gTrainerClassToPicIndex
- ldr r0, _08135FD0 @ =gSaveBlock2
- ldr r2, _08135FD4 @ =0x00000499
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08135FCC: .4byte gTrainerClassToPicIndex
-_08135FD0: .4byte gSaveBlock2
-_08135FD4: .4byte 0x00000499
- thumb_func_end sub_8135FBC
-
- thumb_func_start sub_8135FD8
-sub_8135FD8: @ 8135FD8
- ldr r1, _08135FE8 @ =gTrainerClassToNameIndex
- ldr r0, _08135FEC @ =gSaveBlock2
- ldr r2, _08135FF0 @ =0x00000499
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08135FE8: .4byte gTrainerClassToNameIndex
-_08135FEC: .4byte gSaveBlock2
-_08135FF0: .4byte 0x00000499
- thumb_func_end sub_8135FD8
-
- thumb_func_start sub_8135FF4
-sub_8135FF4: @ 8135FF4
- push {r4,lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r4, _08136018 @ =gSaveBlock2 + 0x49C
-_08135FFC:
- adds r0, r3, r2
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x6
- ble _08135FFC
- adds r1, r3, r2
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136018: .4byte gSaveBlock2 + 0x49C
- thumb_func_end sub_8135FF4
-
- thumb_func_start sub_813601C
-sub_813601C: @ 813601C
- push {r4,r5,lr}
- ldr r1, _08136044 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r5, _08136048 @ =gSaveBlock2 + 0x498
- movs r3, 0
- movs r2, 0
- adds r4, r1, 0
- adds r1, r5, 0
-_0813602E:
- ldm r1!, {r0}
- orrs r3, r0
- adds r2, 0x1
- cmp r2, 0x2D
- bls _0813602E
- cmp r3, 0
- bne _0813604C
- movs r0, 0x1
- strh r0, [r4]
- b _08136078
- .align 2, 0
-_08136044: .4byte gScriptResult
-_08136048: .4byte gSaveBlock2 + 0x498
-_0813604C:
- movs r3, 0
- movs r2, 0
- ldr r4, _08136080 @ =gSaveBlock2
- adds r1, r5, 0
-_08136054:
- ldm r1!, {r0}
- adds r3, r0
- adds r2, 0x1
- cmp r2, 0x2D
- bls _08136054
- movs r1, 0xAA
- lsls r1, 3
- adds r0, r4, r1
- ldr r0, [r0]
- cmp r0, r3
- beq _08136078
- subs r1, 0xB8
- adds r0, r4, r1
- bl sub_81360AC
- ldr r1, _08136084 @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
-_08136078:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136080: .4byte gSaveBlock2
-_08136084: .4byte gScriptResult
- thumb_func_end sub_813601C
-
- thumb_func_start sub_8136088
-sub_8136088: @ 8136088
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xB8
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08136096:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x2D
- bls _08136096
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8136088
-
- thumb_func_start sub_81360AC
-sub_81360AC: @ 81360AC
- push {lr}
- movs r1, 0
- movs r2, 0
-_081360B2:
- stm r0!, {r2}
- adds r1, 0x1
- cmp r1, 0x2E
- bls _081360B2
- pop {r0}
- bx r0
- thumb_func_end sub_81360AC
-
- thumb_func_start sub_81360C0
-sub_81360C0: @ 81360C0
- push {lr}
- ldr r0, _081360CC @ =gSaveBlock2 + 0x4A8
- bl sub_813545C
- pop {r0}
- bx r0
- .align 2, 0
-_081360CC: .4byte gSaveBlock2 + 0x4A8
- thumb_func_end sub_81360C0
-
- thumb_func_start sub_81360D0
-sub_81360D0: @ 81360D0
- push {lr}
- ldr r0, _081360E4 @ =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081360EC
- ldr r1, _081360E8 @ =gStringVar4
- movs r0, 0xFF
- strb r0, [r1]
- b _08136102
- .align 2, 0
-_081360E4: .4byte gBattleOutcome
-_081360E8: .4byte gStringVar4
-_081360EC:
- cmp r0, 0x1
- bne _081360FC
- ldr r0, _081360F8 @ =gSaveBlock2 + 0x4C0
- bl sub_813545C
- b _08136102
- .align 2, 0
-_081360F8: .4byte gSaveBlock2 + 0x4C0
-_081360FC:
- ldr r0, _08136108 @ =gSaveBlock2 + 0x4B4
- bl sub_813545C
-_08136102:
- pop {r0}
- bx r0
- .align 2, 0
-_08136108: .4byte gSaveBlock2 + 0x4B4
- thumb_func_end sub_81360D0
-
- thumb_func_start sub_813610C
-sub_813610C: @ 813610C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0813612C @ =gSaveBlock2 + 0x556
-_08136112:
- adds r0, r4, r5
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0813611E
- bl sub_80BFD20
-_0813611E:
- adds r4, 0x1
- cmp r4, 0x1
- ble _08136112
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813612C: .4byte gSaveBlock2 + 0x556
- thumb_func_end sub_813610C
-
-.ifdef GERMAN
- thumb_func_start de_sub_81364AC
-de_sub_81364AC: @ 81364AC
- push {lr}
- ldr r2, _DE_081364C0 @ =gSaveBlock2
- ldr r0, _DE_081364C4 @ =0x00000564
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _DE_081364CC
- ldr r1, _DE_081364C8 @ =0x00000499
- adds r0, r2, r1
- b _DE_081364F2
- .align 2, 0
-_DE_081364C0: .4byte gSaveBlock2
-_DE_081364C4: .4byte 0x00000564
-_DE_081364C8: .4byte 0x00000499
-_DE_081364CC:
- cmp r0, 0x63
- bhi _DE_081364E4
- ldr r2, _DE_081364E0 @ =gBattleTowerTrainers
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- b _DE_081364F2
- .align 2, 0
-_DE_081364E0: .4byte gBattleTowerTrainers
-_DE_081364E4:
- ldrb r0, [r1]
- subs r0, 0x64
- movs r1, 0xA4
- muls r0, r1
- adds r0, r2
- adds r1, 0xA9
- adds r0, r1
-_DE_081364F2:
- ldrb r0, [r0]
- pop {r1}
- bx r1
- thumb_func_end de_sub_81364AC
-
- thumb_func_start de_sub_81364F8
-de_sub_81364F8: @ 81364F8
- ldr r0, _DE_08136504 @ =gSaveBlock2
- ldr r1, _DE_08136508 @ =0x00000499
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_DE_08136504: .4byte gSaveBlock2
-_DE_08136508: .4byte 0x00000499
- thumb_func_end de_sub_81364F8
-.endif
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/bug.s b/asm/bug.s
new file mode 100755
index 000000000..987e46bbf
--- /dev/null
+++ b/asm/bug.s
@@ -0,0 +1,825 @@
+ .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 NotInBattle
+ 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 @ =gBattleAnimBankTarget
+ 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 @ =gBattleAnimBankTarget
+ 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 sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ 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 @ =move_anim_8072740
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC8E4: .4byte gBattleAnimBankTarget
+_080DC8E8: .4byte gBattleAnimArgs
+_080DC8EC: .4byte sub_8078B34
+_080DC8F0: .4byte move_anim_8072740
+ thumb_func_end sub_80DC824
+
+ thumb_func_start sub_80DC8F4
+sub_80DC8F4: @ 80DC8F4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl NotInBattle
+ 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 @ =gBattleAnimBankTarget
+ 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 @ =gBattleAnimBankTarget
+ 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 sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x36]
+ ldr r0, _080DC998 @ =sub_8078B34
+ str r0, [r6, 0x1C]
+ ldr r1, _080DC99C @ =move_anim_8072740
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC990: .4byte gBattleAnimBankTarget
+_080DC994: .4byte gBattleAnimArgs
+_080DC998: .4byte sub_8078B34
+_080DC99C: .4byte move_anim_8072740
+ thumb_func_end sub_80DC8F4
+
+ thumb_func_start sub_80DC9A0
+sub_80DC9A0: @ 80DC9A0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl NotInBattle
+ 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 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _080DCA16
+ .align 2, 0
+_080DC9FC: .4byte gBattleAnimArgs
+_080DCA00: .4byte gBattleAnimBankTarget
+_080DCA04:
+ ldr r0, _080DCA2C @ =gBattleAnimBankTarget
+ 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 gBattleAnimBankTarget
+_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 move_anim_8072740
+ 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 @ =gBattleAnimBankTarget
+ 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 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankTarget
+_080DCAA4: .4byte gBattleAnimBankAttacker
+_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 @ =gBattleAnimBankTarget
+ 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 gBattleAnimBankTarget
+_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 move_anim_8072740
+_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 move_anim_8072740
+ 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 NotInBattle
+ 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 @ =gBattleAnimBankAttacker
+ 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 NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DCC5E
+ ldr r0, _080DCCE8 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ adds r4, r0, 0
+ ldr r5, _080DCCF0 @ =gBattleAnimBankTarget
+ 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 @ =gBattleAnimBankTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ 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 sub_8077ABC
+ 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 @ =move_anim_8072740
+ adds r0, r7, 0
+ bl StoreSpriteCallbackInData
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCCE8: .4byte gBattleAnimBankAttacker
+_080DCCEC: .4byte gBattleAnimArgs
+_080DCCF0: .4byte gBattleAnimBankTarget
+_080DCCF4: .4byte sub_8078B34
+_080DCCF8: .4byte move_anim_8072740
+ 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 @ =gBattleAnimBankAttacker
+ 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 @ =gBattleAnimBankTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ 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 gBattleAnimBankAttacker
+_080DCD6C: .4byte gBattleAnimArgs
+_080DCD70: .4byte gBattleAnimBankTarget
+_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 move_anim_8072740
+ 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 @ =gBattleAnimBankAttacker
+ b _080DCE5E
+ .align 2, 0
+_080DCE54: .4byte gBattleAnimArgs
+_080DCE58: .4byte gBattleAnimBankAttacker
+_080DCE5C:
+ ldr r4, _080DCE90 @ =gBattleAnimBankTarget
+_080DCE5E:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ 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 gBattleAnimBankTarget
+_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
index 06730e3ad..c7128c69f 100644
--- a/asm/cable_car.s
+++ b/asm/cable_car.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
diff --git a/asm/cable_car_util.s b/asm/cable_car_util.s
index d02c5bb2e..50ef19dec 100644
--- a/asm/cable_car_util.s
+++ b/asm/cable_car_util.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
diff --git a/asm/contest.s b/asm/contest.s
index c5dfe3e2e..391dd3f43 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -148,7 +147,7 @@ sub_80AB2AC: @ 80AB2AC
movs r4, 0
movs r5, 0xA0
_080AB2DC:
- ldr r0, _080AB318 @ =0x02018004
+ ldr r0, _080AB318 @ =gSharedMem + 0x18004
adds r0, r5, r0
ldr r1, _080AB31C @ =gUnknown_02038696
adds r1, r4, r1
@@ -171,7 +170,7 @@ _080AB308: .4byte 0x06002000
_080AB30C: .4byte gUnknown_08D1725C
_080AB310: .4byte 0x0600d000
_080AB314: .4byte gUnknown_08D17144
-_080AB318: .4byte 0x02018004
+_080AB318: .4byte gSharedMem + 0x18004
_080AB31C: .4byte gUnknown_02038696
thumb_func_end sub_80AB2AC
@@ -234,7 +233,7 @@ _080AB394: .4byte 0x00007e3f
thumb_func_start sub_80AB398
sub_80AB398: @ 80AB398
push {r4-r6,lr}
- ldr r4, _080AB468 @ =0x02019204
+ ldr r4, _080AB468 @ =gSharedMem + 0x19204
adds r0, r4, 0
movs r1, 0
movs r2, 0x5C
@@ -250,7 +249,7 @@ _080AB3AC:
adds r5, 0x1
cmp r5, 0x3
ble _080AB3AC
- ldr r4, _080AB46C @ =0x02019260
+ ldr r4, _080AB46C @ =gSharedMem + 0x19260
movs r5, 0x3
_080AB3BE:
adds r0, r4, 0
@@ -261,7 +260,7 @@ _080AB3BE:
subs r5, 0x1
cmp r5, 0
bge _080AB3BE
- ldr r4, _080AB470 @ =0x020192d0
+ ldr r4, _080AB470 @ =gSharedMem + 0x192D0
movs r6, 0x4
negs r6, r6
movs r3, 0xFF
@@ -335,9 +334,9 @@ _080AB448:
pop {r0}
bx r0
.align 2, 0
-_080AB468: .4byte 0x02019204
-_080AB46C: .4byte 0x02019260
-_080AB470: .4byte 0x020192d0
+_080AB468: .4byte gSharedMem + 0x19204
+_080AB46C: .4byte gSharedMem + 0x19260
+_080AB470: .4byte gSharedMem + 0x192D0
_080AB474: .4byte gIsLinkContest
_080AB478: .4byte gUnknown_02038696
thumb_func_end sub_80AB398
@@ -414,7 +413,7 @@ _080AB4E0:
ldr r1, _080AB544 @ =gReservedSpritePaletteCount
movs r0, 0x4
strb r0, [r1]
- ldr r0, _080AB548 @ =0x02000000
+ ldr r0, _080AB548 @ =gSharedMem
movs r1, 0xC0
lsls r1, 9
adds r0, r1
@@ -434,14 +433,14 @@ _080AB538: .4byte gPaletteFade
_080AB53C: .4byte 0x040000d4
_080AB540: .4byte 0x85000400
_080AB544: .4byte gReservedSpritePaletteCount
-_080AB548: .4byte 0x02000000
+_080AB548: .4byte gSharedMem
_080AB54C: .4byte gMain
_080AB550: .4byte 0x0000043c
_080AB554:
bl sub_80AB350
b _080AB56C
_080AB55A:
- ldr r5, _080AB574 @ =0x0201925d
+ ldr r5, _080AB574 @ =gSharedMem + 0x1925D
adds r0, r5, 0
bl sub_80AB70C
lsls r0, 24
@@ -455,7 +454,7 @@ _080AB56C:
strb r0, [r4]
b _080AB5AE
.align 2, 0
-_080AB574: .4byte 0x0201925d
+_080AB574: .4byte gSharedMem + 0x1925D
_080AB578:
bl sub_80B2184
ldr r0, _080AB5B8 @ =gUnknown_030042C0
@@ -475,7 +474,7 @@ _080AB578:
ldr r0, _080AB5C8 @ =sub_80AB5D4
movs r1, 0xA
bl CreateTask
- ldr r1, _080AB5CC @ =0x02019204
+ ldr r1, _080AB5CC @ =gSharedMem + 0x19204
strb r0, [r1, 0x8]
ldr r0, _080AB5D0 @ =sub_80ABAAC
bl SetMainCallback2
@@ -490,7 +489,7 @@ _080AB5BC: .4byte gUnknown_030041B4
_080AB5C0: .4byte gPaletteFade
_080AB5C4: .4byte sub_80ABAC4
_080AB5C8: .4byte sub_80AB5D4
-_080AB5CC: .4byte 0x02019204
+_080AB5CC: .4byte gSharedMem + 0x19204
_080AB5D0: .4byte sub_80ABAAC
thumb_func_end sub_80AB47C
@@ -630,7 +629,7 @@ sub_80AB6B4: @ 80AB6B4
bl GetMultiplayerId
adds r0, r4, 0
bl DestroyTask
- ldr r0, _080AB6FC @ =0x02019204
+ ldr r0, _080AB6FC @ =gSharedMem + 0x19204
ldrb r1, [r0, 0x8]
lsls r0, r1, 2
adds r0, r1
@@ -648,7 +647,7 @@ _080AB6F2:
bx r0
.align 2, 0
_080AB6F8: .4byte gTasks
-_080AB6FC: .4byte 0x02019204
+_080AB6FC: .4byte gSharedMem + 0x19204
_080AB700: .4byte sub_80AB960
_080AB704: .4byte gRngValue
_080AB708: .4byte gUnknown_03005D28
@@ -739,7 +738,7 @@ _080AB7B0:
ldr r4, _080AB7F0 @ =0x06002000
adds r1, r4, 0
bl LZDecompressVram
- ldr r3, _080AB7F4 @ =0x02015800
+ ldr r3, _080AB7F4 @ =gSharedMem + 0x15800
movs r5, 0x80
lsls r5, 6
ldr r1, _080AB7F8 @ =0x040000d4
@@ -769,7 +768,7 @@ _080AB7E6:
.align 2, 0
_080AB7EC: .4byte gContestAudienceGfx
_080AB7F0: .4byte 0x06002000
-_080AB7F4: .4byte 0x02015800
+_080AB7F4: .4byte gSharedMem + 0x15800
_080AB7F8: .4byte 0x040000d4
_080AB7FC: .4byte 0x84000400
_080AB800:
@@ -785,7 +784,7 @@ _080AB814:
ldr r4, _080AB834 @ =0x0600e000
adds r1, r4, 0
bl LZDecompressVram
- ldr r1, _080AB838 @ =0x02018a04
+ ldr r1, _080AB838 @ =gSharedMem + 0x18A04
ldr r0, _080AB83C @ =0x040000d4
str r4, [r0]
str r1, [r0, 0x4]
@@ -796,7 +795,7 @@ _080AB814:
.align 2, 0
_080AB830: .4byte gUnknown_08D17424
_080AB834: .4byte 0x0600e000
-_080AB838: .4byte 0x02018a04
+_080AB838: .4byte gSharedMem + 0x18A04
_080AB83C: .4byte 0x040000d4
_080AB840: .4byte 0x84000200
_080AB844:
@@ -836,7 +835,7 @@ _080AB844:
mov r0, sp
adds r2, r6, 0
bl CpuSet
- ldr r1, _080AB8C0 @ =0x02018004
+ ldr r1, _080AB8C0 @ =gSharedMem + 0x18004
ldr r0, _080AB8C4 @ =0x040000d4
mov r2, r8
str r2, [r0]
@@ -852,7 +851,7 @@ _080AB8B0: .4byte gPlttBufferUnfaded + 0x100
_080AB8B4: .4byte REG_BG0CNT
_080AB8B8: .4byte gContestPlayerMonIndex
_080AB8BC: .4byte 0xffffff00
-_080AB8C0: .4byte 0x02018004
+_080AB8C0: .4byte gSharedMem + 0x18004
_080AB8C4: .4byte 0x040000d4
_080AB8C8: .4byte 0x84000080
_080AB8CC:
@@ -860,7 +859,7 @@ _080AB8CC:
bl sub_80AFA5C
bl sub_80AEB30
bl sub_80AE8B4
- ldr r1, _080AB924 @ =0x02019204
+ ldr r1, _080AB924 @ =gSharedMem + 0x19204
movs r4, 0
strb r0, [r1, 0x12]
bl sub_80AFE30
@@ -890,7 +889,7 @@ _080AB8CC:
bl sub_80B292C
b _080AB946
.align 2, 0
-_080AB924: .4byte 0x02019204
+_080AB924: .4byte gSharedMem + 0x19204
_080AB928: .4byte gBanksBySide
_080AB92C: .4byte gBattleTypeFlags
_080AB930: .4byte gBankAttacker
@@ -1062,7 +1061,7 @@ _080ABA70: .4byte REG_BG0CNT
_080ABA74: .4byte REG_BG2CNT
_080ABA78: .4byte gTasks
_080ABA7C:
- ldr r0, _080ABAA4 @ =0x02019204
+ ldr r0, _080ABAA4 @ =gSharedMem + 0x19204
ldrb r1, [r0, 0x6]
movs r0, 0x40
ands r0, r1
@@ -1083,7 +1082,7 @@ _080ABA9C:
pop {r0}
bx r0
.align 2, 0
-_080ABAA4: .4byte 0x02019204
+_080ABAA4: .4byte gSharedMem + 0x19204
_080ABAA8: .4byte sub_80ABB70
thumb_func_end sub_80AB9A0
@@ -1184,7 +1183,7 @@ sub_80ABB70: @ 80ABB70
strh r1, [r0]
bl sub_80B0D7C
ldr r1, _080ABBB8 @ =gPlttBufferUnfaded
- ldr r2, _080ABBBC @ =0x02018204
+ ldr r2, _080ABBBC @ =gSharedMem + 0x18204
ldr r0, _080ABBC0 @ =0x040000d4
str r1, [r0]
str r2, [r0, 0x4]
@@ -1205,7 +1204,7 @@ sub_80ABB70: @ 80ABB70
_080ABBB0: .4byte gUnknown_030042A0
_080ABBB4: .4byte gUnknown_03004280
_080ABBB8: .4byte gPlttBufferUnfaded
-_080ABBBC: .4byte 0x02018204
+_080ABBBC: .4byte gSharedMem + 0x18204
_080ABBC0: .4byte 0x040000d4
_080ABBC4: .4byte 0x84000100
_080ABBC8: .4byte gContestPlayerMonIndex
@@ -1217,7 +1216,7 @@ _080ABBD4:
bl StringCopy
_080ABBDC:
ldr r5, _080ABC20 @ =gDisplayedStringBattle
- ldr r0, _080ABC28 @ =0x02019204
+ ldr r0, _080ABC28 @ =gSharedMem + 0x19204
ldrb r1, [r0, 0x1]
adds r1, 0x1
adds r0, r5, 0
@@ -1249,7 +1248,7 @@ _080ABBDC:
.align 2, 0
_080ABC20: .4byte gDisplayedStringBattle
_080ABC24: .4byte gUnknown_083CAFAE
-_080ABC28: .4byte 0x02019204
+_080ABC28: .4byte gSharedMem + 0x19204
_080ABC2C: .4byte gStringVar4
_080ABC30: .4byte gMenuWindow
_080ABC34: .4byte gTasks
@@ -1369,7 +1368,7 @@ sub_80ABCDC: @ 80ABCDC
movs r6, 0
ldr r0, _080ABD90 @ =gContestPlayerMonIndex
mov r8, r0
- ldr r7, _080ABD94 @ =0x02019260
+ ldr r7, _080ABD94 @ =gSharedMem + 0x19260
mov r9, r5
mov r10, r4
_080ABD1C:
@@ -1426,7 +1425,7 @@ _080ABD84: .4byte gUnknown_03004280
_080ABD88: .4byte gUnknown_03004210
_080ABD8C: .4byte gUnknown_083CA340
_080ABD90: .4byte gContestPlayerMonIndex
-_080ABD94: .4byte 0x02019260
+_080ABD94: .4byte gSharedMem + 0x19260
_080ABD98: .4byte gUnknown_0203858E
_080ABD9C: .4byte gUnknownText_UnknownFormatting2
_080ABDA0:
@@ -1500,7 +1499,7 @@ _080ABE20:
movs r0, 0
movs r2, 0xC
bl sub_814A5C0
- ldr r4, _080ABE8C @ =0x02019204
+ ldr r4, _080ABE8C @ =gSharedMem + 0x19204
movs r0, 0
ldrsb r0, [r4, r0]
bl sub_80AC0AC
@@ -1538,7 +1537,7 @@ _080ABE7C: .4byte gMoveNames
_080ABE80: .4byte gUnknown_083CA340 + 0x1
_080ABE84: .4byte 0x0000ffff
_080ABE88: .4byte 0x00002d9f
-_080ABE8C: .4byte 0x02019204
+_080ABE8C: .4byte gSharedMem + 0x19204
_080ABE90: .4byte gContestMons
_080ABE94: .4byte gContestPlayerMonIndex
_080ABE98: .4byte gTasks
@@ -1651,7 +1650,7 @@ _080ABF78:
bl StringCopy
_080ABF80:
ldr r5, _080ABFC8 @ =gDisplayedStringBattle
- ldr r0, _080ABFD0 @ =0x02019204
+ ldr r0, _080ABFD0 @ =gSharedMem + 0x19204
ldrb r1, [r0, 0x1]
adds r1, 0x1
adds r0, r5, 0
@@ -1685,7 +1684,7 @@ _080ABF80:
.align 2, 0
_080ABFC8: .4byte gDisplayedStringBattle
_080ABFCC: .4byte gUnknown_083CAFAE
-_080ABFD0: .4byte 0x02019204
+_080ABFD0: .4byte gSharedMem + 0x19204
_080ABFD4: .4byte gStringVar4
_080ABFD8: .4byte gMenuWindow
_080ABFDC: .4byte gUnknown_030042A0
@@ -1693,7 +1692,7 @@ _080ABFE0: .4byte gUnknown_03004280
_080ABFE4: .4byte gTasks
_080ABFE8: .4byte sub_80ABC70
_080ABFEC:
- ldr r4, _080AC000 @ =0x02019204
+ ldr r4, _080AC000 @ =gSharedMem + 0x19204
movs r0, 0
ldrsb r0, [r4, r0]
bl nullsub_17
@@ -1703,12 +1702,12 @@ _080ABFEC:
subs r0, r6, 0x1
b _080AC006
.align 2, 0
-_080AC000: .4byte 0x02019204
+_080AC000: .4byte gSharedMem + 0x19204
_080AC004:
subs r0, 0x1
_080AC006:
strb r0, [r4]
- ldr r4, _080AC03C @ =0x02019204
+ ldr r4, _080AC03C @ =gSharedMem + 0x19204
movs r0, 0
ldrsb r0, [r4, r0]
bl sub_80AC0AC
@@ -1730,11 +1729,11 @@ _080AC006:
bl PlaySE
b _080AC098
.align 2, 0
-_080AC03C: .4byte 0x02019204
+_080AC03C: .4byte gSharedMem + 0x19204
_080AC040: .4byte gContestMons
_080AC044: .4byte gContestPlayerMonIndex
_080AC048:
- ldr r4, _080AC060 @ =0x02019204
+ ldr r4, _080AC060 @ =gSharedMem + 0x19204
movs r0, 0
ldrsb r0, [r4, r0]
bl nullsub_17
@@ -1745,12 +1744,12 @@ _080AC048:
strb r5, [r4]
b _080AC068
.align 2, 0
-_080AC060: .4byte 0x02019204
+_080AC060: .4byte gSharedMem + 0x19204
_080AC064:
adds r0, r1, 0x1
strb r0, [r4]
_080AC068:
- ldr r4, _080AC0A0 @ =0x02019204
+ ldr r4, _080AC0A0 @ =gSharedMem + 0x19204
movs r0, 0
ldrsb r0, [r4, r0]
bl sub_80AC0AC
@@ -1776,7 +1775,7 @@ _080AC098:
pop {r0}
bx r0
.align 2, 0
-_080AC0A0: .4byte 0x02019204
+_080AC0A0: .4byte gSharedMem + 0x19204
_080AC0A4: .4byte gContestMons
_080AC0A8: .4byte gContestPlayerMonIndex
thumb_func_end sub_80ABEA0
@@ -1819,7 +1818,7 @@ sub_80AC0C8: @ 80AC0C8
lsls r1, r2, 3
subs r1, r2
lsls r1, 2
- ldr r2, _080AC128 @ =0x02019260
+ ldr r2, _080AC128 @ =gSharedMem + 0x19260
adds r1, r2
strh r0, [r1, 0x6]
ldr r4, _080AC12C @ =sub_80C8A38
@@ -1845,7 +1844,7 @@ sub_80AC0C8: @ 80AC0C8
.align 2, 0
_080AC120: .4byte gIsLinkContest
_080AC124: .4byte gContestPlayerMonIndex
-_080AC128: .4byte 0x02019260
+_080AC128: .4byte gSharedMem + 0x19260
_080AC12C: .4byte sub_80C8A38
_080AC130: .4byte sub_80AC15C
_080AC134: .4byte gTasks
@@ -1875,7 +1874,7 @@ sub_80AC15C: @ 80AC15C
lsrs r0, 24
bl DestroyTask
ldr r2, _080AC17C @ =gTasks
- ldr r0, _080AC180 @ =0x02019204
+ ldr r0, _080AC180 @ =gSharedMem + 0x19204
ldrb r1, [r0, 0x8]
lsls r0, r1, 2
adds r0, r1
@@ -1887,7 +1886,7 @@ sub_80AC15C: @ 80AC15C
bx r0
.align 2, 0
_080AC17C: .4byte gTasks
-_080AC180: .4byte 0x02019204
+_080AC180: .4byte gSharedMem + 0x19204
_080AC184: .4byte sub_80AC188
thumb_func_end sub_80AC15C
@@ -1906,7 +1905,7 @@ sub_80AC188: @ 80AC188
movs r0, 0
bl sub_80AFFE0
ldr r1, _080AC1EC @ =gPlttBufferFaded
- ldr r0, _080AC1F0 @ =0x02018604
+ ldr r0, _080AC1F0 @ =gSharedMem + 0x18604
movs r2, 0x80
lsls r2, 3
ldr r4, _080AC1F4 @ =0x040000d4
@@ -1939,7 +1938,7 @@ sub_80AC188: @ 80AC188
_080AC1E4: .4byte gUnknown_030042A0
_080AC1E8: .4byte gUnknown_03004280
_080AC1EC: .4byte gPlttBufferFaded
-_080AC1F0: .4byte 0x02018604
+_080AC1F0: .4byte gSharedMem + 0x18604
_080AC1F4: .4byte 0x040000d4
_080AC1F8: .4byte 0xfffffc00
_080AC1FC: .4byte gTasks
@@ -1991,7 +1990,7 @@ sub_80AC250: @ 80AC250
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _080AC278 @ =0x02019204
+ ldr r0, _080AC278 @ =gSharedMem + 0x19204
ldrh r1, [r0, 0x6]
movs r0, 0x90
lsls r0, 2
@@ -2009,7 +2008,7 @@ _080AC272:
pop {r0}
bx r0
.align 2, 0
-_080AC278: .4byte 0x02019204
+_080AC278: .4byte gSharedMem + 0x19204
_080AC27C: .4byte gTasks
_080AC280: .4byte sub_80AC284
thumb_func_end sub_80AC250
@@ -2031,7 +2030,7 @@ sub_80AC284: @ 80AC284
asrs r0, 16
cmp r0, 0x13
ble _080AC2B6
- ldr r1, _080AC2C0 @ =0x02019204
+ ldr r1, _080AC2C0 @ =gSharedMem + 0x19204
movs r0, 0
strb r0, [r1, 0x10]
ldr r0, _080AC2C4 @ =gRngValue
@@ -2046,7 +2045,7 @@ _080AC2B6:
bx r0
.align 2, 0
_080AC2BC: .4byte gTasks
-_080AC2C0: .4byte 0x02019204
+_080AC2C0: .4byte gSharedMem + 0x19204
_080AC2C4: .4byte gRngValue
_080AC2C8: .4byte sub_80AC2CC
thumb_func_end sub_80AC284
@@ -2062,7 +2061,7 @@ sub_80AC2CC: @ 80AC2CC
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r2, _080AC308 @ =0x02019204
+ ldr r2, _080AC308 @ =gSharedMem + 0x19204
ldrb r7, [r2, 0x11]
ldr r1, _080AC30C @ =gTasks
lsls r0, 2
@@ -2083,7 +2082,7 @@ _080AC2FC:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080AC308: .4byte 0x02019204
+_080AC308: .4byte gSharedMem + 0x19204
_080AC30C: .4byte gTasks
_080AC310: .4byte _080AC314
.align 2, 0
@@ -2151,7 +2150,7 @@ _080AC314:
_080AC404:
bl sub_80B0D7C
movs r6, 0
- ldr r0, _080AC484 @ =0x02019204
+ ldr r0, _080AC484 @ =gSharedMem + 0x19204
adds r1, r0, 0
adds r1, 0xCC
ldrb r0, [r0, 0x10]
@@ -2170,7 +2169,7 @@ _080AC422:
cmp r1, r0
bne _080AC422
_080AC42C:
- ldr r4, _080AC484 @ =0x02019204
+ ldr r4, _080AC484 @ =gSharedMem + 0x19204
strb r6, [r4, 0x11]
ldrb r7, [r4, 0x11]
ldr r0, _080AC488 @ =gIsLinkContest
@@ -2209,7 +2208,7 @@ _080AC458:
strh r5, [r0, 0x8]
bl _080AD8CA
.align 2, 0
-_080AC484: .4byte 0x02019204
+_080AC484: .4byte gSharedMem + 0x19204
_080AC488: .4byte gIsLinkContest
_080AC48C: .4byte sub_80C8C80
_080AC490: .4byte sub_80AD8DC
@@ -2247,7 +2246,7 @@ _080AC4D4:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
- ldr r1, _080AC508 @ =0x02019260
+ ldr r1, _080AC508 @ =gSharedMem + 0x19260
adds r2, r0, r1
ldrb r1, [r2, 0xC]
movs r0, 0x6
@@ -2271,7 +2270,7 @@ _080AC4F6:
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
-_080AC508: .4byte 0x02019260
+_080AC508: .4byte gSharedMem + 0x19260
_080AC50C:
bl sub_80AF138
adds r0, r7, 0
@@ -2293,7 +2292,7 @@ _080AC534:
mov r4, r8
lsls r4, 2
mov r9, r4
- ldr r4, _080AC5C4 @ =0x02019348
+ ldr r4, _080AC5C4 @ =gSharedMem + 0x19348
ldr r1, _080AC5C8 @ =gBattleMonForms
movs r2, 0
adds r0, r1, 0x3
@@ -2357,7 +2356,7 @@ _080AC542:
strh r6, [r4, 0x8]
bl _080AD8CA
.align 2, 0
-_080AC5C4: .4byte 0x02019348
+_080AC5C4: .4byte gSharedMem + 0x19348
_080AC5C8: .4byte gBattleMonForms
_080AC5CC: .4byte 0xfffffebc
_080AC5D0: .4byte gContestMons
@@ -2387,7 +2386,7 @@ _080AC5E8:
bl _080AD8CA
_080AC60E:
lsls r0, r7, 2
- ldr r1, _080AC634 @ =0x02019338
+ ldr r1, _080AC634 @ =gSharedMem + 0x19338
adds r0, r1
ldrb r1, [r0, 0x2]
movs r0, 0x2
@@ -2402,12 +2401,12 @@ _080AC622:
.align 2, 0
_080AC62C: .4byte gSprites
_080AC630: .4byte SpriteCallbackDummy
-_080AC634: .4byte 0x02019338
+_080AC634: .4byte gSharedMem + 0x19338
_080AC638:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
- ldr r1, _080AC660 @ =0x02019260
+ ldr r1, _080AC660 @ =gSharedMem + 0x19260
adds r5, r0, r1
ldrb r1, [r5, 0xC]
movs r0, 0x1
@@ -2423,7 +2422,7 @@ _080AC638:
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
-_080AC660: .4byte 0x02019260
+_080AC660: .4byte gSharedMem + 0x19260
_080AC664:
bl sub_80AF138
ldr r0, _080AC690 @ =gStringVar1
@@ -2494,7 +2493,7 @@ _080AC6F8:
bne _080AC708
bl _080AD8CA
_080AC708:
- ldr r0, _080AC728 @ =0x02019204
+ ldr r0, _080AC728 @ =gSharedMem + 0x19204
adds r0, 0x5A
movs r1, 0
strb r1, [r0]
@@ -2509,7 +2508,7 @@ _080AC708:
bl _080AD8CA
.align 2, 0
_080AC724: .4byte gMenuWindow
-_080AC728: .4byte 0x02019204
+_080AC728: .4byte gSharedMem + 0x19204
_080AC72C: .4byte gTasks
_080AC730:
ldrb r1, [r6, 0x11]
@@ -2555,7 +2554,7 @@ _080AC77C:
_080AC790:
adds r0, r7, 0
bl sub_80B28CC
- ldr r1, _080AC7C0 @ =0x02019204
+ ldr r1, _080AC7C0 @ =gSharedMem + 0x19204
adds r0, r1, 0
adds r0, 0x5A
ldrb r0, [r0]
@@ -2574,7 +2573,7 @@ _080AC790:
.align 2, 0
_080AC7B8: .4byte gAnimScriptCallback
_080AC7BC: .4byte gAnimScriptActive
-_080AC7C0: .4byte 0x02019204
+_080AC7C0: .4byte gSharedMem + 0x19204
_080AC7C4: .4byte gTasks
_080AC7C8:
lsls r0, r7, 3
@@ -2630,7 +2629,7 @@ _080AC81E:
lsls r2, r7, 3
subs r0, r2, r7
lsls r0, 2
- ldr r1, _080AC858 @ =0x02019260
+ ldr r1, _080AC858 @ =gSharedMem + 0x19260
adds r6, r0, r1
ldrb r0, [r6, 0x13]
mov r9, r3
@@ -2647,7 +2646,7 @@ _080AC81E:
strh r0, [r4, 0x8]
bl _080AD8CA
.align 2, 0
-_080AC858: .4byte 0x02019260
+_080AC858: .4byte gSharedMem + 0x19260
_080AC85C:
ldrb r0, [r6, 0x14]
cmp r0, 0xFF
@@ -2730,7 +2729,7 @@ _080AC8F8:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
- ldr r1, _080AC914 @ =0x02019260
+ ldr r1, _080AC914 @ =gSharedMem + 0x19260
adds r0, r1
ldrb r0, [r0, 0x11]
movs r3, 0x3
@@ -2741,7 +2740,7 @@ _080AC8F8:
bl sub_80B1710
b _080AC934
.align 2, 0
-_080AC914: .4byte 0x02019260
+_080AC914: .4byte gSharedMem + 0x19260
_080AC918:
cmp r3, 0x2
bne _080AC924
@@ -2804,7 +2803,7 @@ _080AC98C:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
- ldr r1, _080AC9B8 @ =0x02019260
+ ldr r1, _080AC9B8 @ =gSharedMem + 0x19260
adds r0, r1
movs r3, 0x2
ldrsh r1, [r0, r3]
@@ -2821,7 +2820,7 @@ _080AC98C:
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
-_080AC9B8: .4byte 0x02019260
+_080AC9B8: .4byte gSharedMem + 0x19260
_080AC9BC: .4byte gTasks
_080AC9C0:
ldrb r0, [r6, 0x11]
@@ -2849,7 +2848,7 @@ _080AC9EC:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
- ldr r1, _080ACA1C @ =0x02019260
+ ldr r1, _080ACA1C @ =gSharedMem + 0x19260
adds r0, r1
ldrb r1, [r0, 0x10]
movs r0, 0x30
@@ -2869,7 +2868,7 @@ _080ACA06:
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
-_080ACA1C: .4byte 0x02019260
+_080ACA1C: .4byte gSharedMem + 0x19260
_080ACA20: .4byte gTasks
_080ACA24:
ldrb r1, [r6, 0x6]
@@ -2984,7 +2983,7 @@ _080ACAEE:
cmp r6, 0x3
bgt _080ACB58
ldr r3, _080ACB24 @ =gUnknown_02038696
- ldr r1, _080ACB28 @ =0x02019260
+ ldr r1, _080ACB28 @ =gSharedMem + 0x19260
_080ACB0A:
movs r4, 0
movs r2, 0
@@ -3000,7 +2999,7 @@ _080ACB0A:
b _080ACB60
.align 2, 0
_080ACB24: .4byte gUnknown_02038696
-_080ACB28: .4byte 0x02019260
+_080ACB28: .4byte gSharedMem + 0x19260
_080ACB2C:
adds r2, 0x1
cmp r2, 0x3
@@ -3044,7 +3043,7 @@ _080ACB60:
lsls r4, r2, 3
subs r4, r2
lsls r4, 2
- ldr r1, _080ACB94 @ =0x02019260
+ ldr r1, _080ACB94 @ =gSharedMem + 0x19260
adds r4, r1
ldrb r1, [r4, 0x13]
bl sub_80B146C
@@ -3055,7 +3054,7 @@ _080ACB60:
bl _080AD8CA
.align 2, 0
_080ACB90: .4byte gUnknown_02038696
-_080ACB94: .4byte 0x02019260
+_080ACB94: .4byte gSharedMem + 0x19260
_080ACB98:
mov r0, r9
add r0, r8
@@ -3098,7 +3097,7 @@ _080ACBDC:
ldrsh r2, [r1, r3]
ldr r1, _080ACC38 @ =gUnknown_02038696
mov r9, r0
- ldr r3, _080ACC3C @ =0x02019260
+ ldr r3, _080ACC3C @ =gSharedMem + 0x19260
adds r5, r1, 0
ldrb r4, [r5]
cmp r2, r4
@@ -3135,7 +3134,7 @@ _080ACC08:
bl _080AD8CA
.align 2, 0
_080ACC38: .4byte gUnknown_02038696
-_080ACC3C: .4byte 0x02019260
+_080ACC3C: .4byte gSharedMem + 0x19260
_080ACC40: .4byte gTasks
_080ACC44:
movs r6, 0
@@ -3148,7 +3147,7 @@ _080ACC44:
ldrsh r3, [r1, r2]
ldr r1, _080ACC90 @ =gUnknown_02038696
mov r9, r0
- ldr r2, _080ACC94 @ =0x02019338
+ ldr r2, _080ACC94 @ =gSharedMem + 0x19338
adds r5, r1, 0
ldrb r4, [r5]
cmp r3, r4
@@ -3178,7 +3177,7 @@ _080ACC7E:
bl _080AD8CA
.align 2, 0
_080ACC90: .4byte gUnknown_02038696
-_080ACC94: .4byte 0x02019338
+_080ACC94: .4byte gSharedMem + 0x19338
_080ACC98:
movs r6, 0
mov r5, r8
@@ -3302,7 +3301,7 @@ _080ACD82:
lsls r0, r6, 3
subs r0, r6
lsls r0, 2
- ldr r1, _080ACDC0 @ =0x02019260
+ ldr r1, _080ACDC0 @ =gSharedMem + 0x19260
adds r4, r0, r1
ldrb r1, [r4, 0x15]
movs r0, 0x20
@@ -3329,7 +3328,7 @@ _080ACDA6:
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
-_080ACDC0: .4byte 0x02019260
+_080ACDC0: .4byte gSharedMem + 0x19260
_080ACDC4: .4byte gTasks
_080ACDC8:
mov r5, r8
@@ -3353,7 +3352,7 @@ _080ACDE8:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
- ldr r1, _080ACE48 @ =0x02019260
+ ldr r1, _080ACE48 @ =gSharedMem + 0x19260
adds r2, r0, r1
ldrb r1, [r2, 0xC]
movs r0, 0x6
@@ -3394,7 +3393,7 @@ _080ACE36:
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
-_080ACE48: .4byte 0x02019260
+_080ACE48: .4byte gSharedMem + 0x19260
_080ACE4C: .4byte gStringVar1
_080ACE50: .4byte gContestMons + 0x2
_080ACE54: .4byte gStringVar4
@@ -3412,7 +3411,7 @@ _080ACE74:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
- ldr r1, _080ACEA0 @ =0x02019260
+ ldr r1, _080ACEA0 @ =gSharedMem + 0x19260
adds r0, r1
ldrb r1, [r0, 0x15]
movs r0, 0x40
@@ -3430,7 +3429,7 @@ _080ACE74:
bl _080AD8CA
.align 2, 0
_080ACE9C: .4byte gMenuWindow
-_080ACEA0: .4byte 0x02019260
+_080ACEA0: .4byte gSharedMem + 0x19260
_080ACEA4: .4byte gTasks
_080ACEA8:
ldr r0, _080ACEBC @ =gTasks
@@ -3448,7 +3447,7 @@ _080ACEC0:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
- ldr r1, _080ACEE4 @ =0x02019260
+ ldr r1, _080ACEE4 @ =gSharedMem + 0x19260
adds r0, r1
ldrb r4, [r0, 0x16]
lsls r4, 24
@@ -3463,7 +3462,7 @@ _080ACEC0:
ldr r1, _080ACEEC @ =gUnknown_083CBD79
b _080ACEF8
.align 2, 0
-_080ACEE4: .4byte 0x02019260
+_080ACEE4: .4byte gSharedMem + 0x19260
_080ACEE8: .4byte gMenuWindow
_080ACEEC: .4byte gUnknown_083CBD79
_080ACEF0:
@@ -3593,7 +3592,7 @@ _080AD002:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
- ldr r1, _080AD03C @ =0x02019260
+ ldr r1, _080AD03C @ =gSharedMem + 0x19260
adds r6, r0, r1
ldrb r1, [r6, 0x15]
movs r5, 0x10
@@ -3616,10 +3615,10 @@ _080AD02C:
.align 2, 0
_080AD034: .4byte gMenuWindow
_080AD038: .4byte gTasks
-_080AD03C: .4byte 0x02019260
+_080AD03C: .4byte gSharedMem + 0x19260
_080AD040:
lsls r0, r7, 2
- ldr r1, _080AD06C @ =0x02019338
+ ldr r1, _080AD06C @ =gSharedMem + 0x19338
adds r0, r1
ldrb r1, [r0, 0x2]
movs r0, 0x4
@@ -3640,12 +3639,12 @@ _080AD058:
strh r1, [r0, 0x8]
bl _080AD8CA
.align 2, 0
-_080AD06C: .4byte 0x02019338
+_080AD06C: .4byte gSharedMem + 0x19338
_080AD070:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
- ldr r1, _080AD0CC @ =0x02019260
+ ldr r1, _080AD0CC @ =gSharedMem + 0x19260
adds r0, r1
ldrb r1, [r0, 0x15]
movs r0, 0x1
@@ -3683,7 +3682,7 @@ _080AD070:
strh r0, [r4, 0x8]
bl _080AD8CA
.align 2, 0
-_080AD0CC: .4byte 0x02019260
+_080AD0CC: .4byte gSharedMem + 0x19260
_080AD0D0: .4byte gStringVar1
_080AD0D4: .4byte gContestMons + 0x2
_080AD0D8: .4byte gStringVar4
@@ -3726,7 +3725,7 @@ _080AD12A:
lsls r4, r7, 3
subs r4, r7
lsls r4, 2
- ldr r0, _080AD160 @ =0x02019260
+ ldr r0, _080AD160 @ =gSharedMem + 0x19260
adds r4, r0
movs r3, 0x2
ldrsh r0, [r4, r3]
@@ -3749,12 +3748,12 @@ _080AD12A:
b _080AD8CA
.align 2, 0
_080AD15C: .4byte gMenuWindow
-_080AD160: .4byte 0x02019260
+_080AD160: .4byte gSharedMem + 0x19260
_080AD164: .4byte gTasks
_080AD168:
bl sub_80B0D7C
lsls r0, r7, 2
- ldr r1, _080AD19C @ =0x02019338
+ ldr r1, _080AD19C @ =gSharedMem + 0x19338
adds r0, r1
ldrb r1, [r0, 0x2]
movs r0, 0x4
@@ -3777,10 +3776,10 @@ _080AD182:
strh r0, [r4, 0x8]
b _080AD8CA
.align 2, 0
-_080AD19C: .4byte 0x02019338
+_080AD19C: .4byte gSharedMem + 0x19338
_080AD1A0: .4byte gTasks
_080AD1A4:
- ldr r2, _080AD1CC @ =0x02019328
+ ldr r2, _080AD1CC @ =gSharedMem + 0x19328
ldrb r1, [r2, 0x1]
movs r0, 0x1
ands r0, r1
@@ -3801,7 +3800,7 @@ _080AD1A4:
strh r1, [r0, 0x8]
b _080AD8CA
.align 2, 0
-_080AD1CC: .4byte 0x02019328
+_080AD1CC: .4byte gSharedMem + 0x19328
_080AD1D0:
ldrb r4, [r1]
lsls r2, r7, 3
@@ -3847,7 +3846,7 @@ _080AD21E:
mov r2, r10
subs r0, r2, r7
lsls r0, 2
- ldr r1, _080AD27C @ =0x02019260
+ ldr r1, _080AD27C @ =gSharedMem + 0x19260
adds r0, r1
ldrb r1, [r0, 0x15]
movs r0, 0x1
@@ -3862,7 +3861,7 @@ _080AD23A:
ldr r2, _080AD284 @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
- ldr r3, _080AD288 @ =0x02019204
+ ldr r3, _080AD288 @ =gSharedMem + 0x19204
ldrb r0, [r3, 0x13]
lsls r1, r4, 24
asrs r2, r1, 24
@@ -3885,10 +3884,10 @@ _080AD262:
_080AD270: .4byte gStringVar3
_080AD274: .4byte gUnknown_083CC2D8
_080AD278: .4byte gContestMoves
-_080AD27C: .4byte 0x02019260
+_080AD27C: .4byte gSharedMem + 0x19260
_080AD280: .4byte gStringVar1
_080AD284: .4byte gContestMons + 0x2
-_080AD288: .4byte 0x02019204
+_080AD288: .4byte gSharedMem + 0x19204
_080AD28C: .4byte gTasks
_080AD290:
cmp r2, 0
@@ -4156,7 +4155,7 @@ _080AD468:
b _080AD8CA
_080AD4A0:
lsls r0, r7, 2
- ldr r2, _080AD4E0 @ =0x02019338
+ ldr r2, _080AD4E0 @ =gSharedMem + 0x19338
adds r0, r2
ldrb r1, [r0, 0x2]
movs r0, 0x4
@@ -4190,7 +4189,7 @@ _080AD4CC:
strh r0, [r1, 0x1C]
b _080AD8CA
.align 2, 0
-_080AD4E0: .4byte 0x02019338
+_080AD4E0: .4byte gSharedMem + 0x19338
_080AD4E4: .4byte 0xfffffecc
_080AD4E8: .4byte gTasks
_080AD4EC:
@@ -4217,7 +4216,7 @@ _080AD4FE:
_080AD510: .4byte gPaletteFade
_080AD514:
lsls r0, r7, 2
- ldr r1, _080AD534 @ =0x02019338
+ ldr r1, _080AD534 @ =gSharedMem + 0x19338
adds r0, r1
ldrb r1, [r0, 0x2]
movs r0, 0x4
@@ -4232,12 +4231,12 @@ _080AD526:
lsls r1, r4, 2
b _080AD6EC
.align 2, 0
-_080AD534: .4byte 0x02019338
+_080AD534: .4byte gSharedMem + 0x19338
_080AD538: .4byte gTasks
_080AD53C:
bl sub_80AF138
ldr r0, _080AD5A8 @ =gStringVar3
- ldr r4, _080AD5AC @ =0x02019328
+ ldr r4, _080AD5AC @ =gSharedMem + 0x19328
ldr r1, [r4]
lsls r1, 20
lsrs r1, 29
@@ -4284,7 +4283,7 @@ _080AD53C:
b _080AD8CA
.align 2, 0
_080AD5A8: .4byte gStringVar3
-_080AD5AC: .4byte 0x02019328
+_080AD5AC: .4byte gSharedMem + 0x19328
_080AD5B0: .4byte gContestMons + 0x2
_080AD5B4: .4byte gStringVar1
_080AD5B8: .4byte gStringVar2
@@ -4349,7 +4348,7 @@ _080AD648:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
- ldr r1, _080AD6B4 @ =0x02019260
+ ldr r1, _080AD6B4 @ =gSharedMem + 0x19260
adds r4, r0, r1
ldrb r1, [r4, 0x15]
movs r0, 0x10
@@ -4397,7 +4396,7 @@ _080AD664:
strh r1, [r0, 0x8]
b _080AD8CA
.align 2, 0
-_080AD6B4: .4byte 0x02019260
+_080AD6B4: .4byte gSharedMem + 0x19260
_080AD6B8: .4byte gStringVar1
_080AD6BC: .4byte gContestMons + 0x2
_080AD6C0: .4byte gStringVar2
@@ -4664,7 +4663,7 @@ sub_80AD8DC: @ 80AD8DC
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r3, _080AD8F8 @ =0x02019204
+ ldr r3, _080AD8F8 @ =gSharedMem + 0x19204
ldrb r2, [r3, 0x7]
movs r1, 0x5
negs r1, r1
@@ -4674,7 +4673,7 @@ sub_80AD8DC: @ 80AD8DC
pop {r0}
bx r0
.align 2, 0
-_080AD8F8: .4byte 0x02019204
+_080AD8F8: .4byte gSharedMem + 0x19204
thumb_func_end sub_80AD8DC
thumb_func_start sub_80AD8FC
@@ -4770,7 +4769,7 @@ _080AD98E:
ands r0, r1
cmp r0, 0
beq _080AD9E8
- ldr r2, _080AD9DC @ =0x02019204
+ ldr r2, _080AD9DC @ =gSharedMem + 0x19204
ldrb r0, [r2, 0x7]
movs r1, 0x4
orrs r0, r1
@@ -4796,7 +4795,7 @@ _080AD9B8:
b _080ADA10
.align 2, 0
_080AD9D8: .4byte gIsLinkContest
-_080AD9DC: .4byte 0x02019204
+_080AD9DC: .4byte gSharedMem + 0x19204
_080AD9E0: .4byte sub_80C8C80
_080AD9E4: .4byte sub_80AD8DC
_080AD9E8:
@@ -4804,7 +4803,7 @@ _080AD9E8:
bl sub_80AF3C0
b _080AD9FE
_080AD9F2:
- ldr r0, _080ADA04 @ =0x02019204
+ ldr r0, _080ADA04 @ =gSharedMem + 0x19204
ldrb r1, [r0, 0x7]
movs r0, 0x4
ands r0, r1
@@ -4815,7 +4814,7 @@ _080AD9FE:
strh r0, [r5, 0x8]
b _080ADA10
.align 2, 0
-_080ADA04: .4byte 0x02019204
+_080ADA04: .4byte gSharedMem + 0x19204
_080ADA08:
movs r0, 0
strh r0, [r5, 0x8]
@@ -4893,7 +4892,7 @@ _080ADA7A:
strh r5, [r4, 0xA]
b _080ADAB2
_080ADA92:
- ldr r0, _080ADABC @ =0x02019204
+ ldr r0, _080ADABC @ =gSharedMem + 0x19204
ldrb r1, [r0, 0x7]
movs r0, 0x2
ands r0, r1
@@ -4915,7 +4914,7 @@ _080ADAB2:
strh r0, [r4, 0x8]
b _080ADACE
.align 2, 0
-_080ADABC: .4byte 0x02019204
+_080ADABC: .4byte gSharedMem + 0x19204
_080ADAC0:
bl sub_80AFF10
movs r0, 0
@@ -4960,7 +4959,7 @@ _080ADB00: .4byte sub_80ADB04
sub_80ADB04: @ 80ADB04
lsls r0, 24
lsrs r0, 24
- ldr r2, _080ADB30 @ =0x02018204
+ ldr r2, _080ADB30 @ =gSharedMem + 0x18204
ldr r3, _080ADB34 @ =gPlttBufferUnfaded
ldr r1, _080ADB38 @ =0x040000d4
str r2, [r1]
@@ -4981,7 +4980,7 @@ sub_80ADB04: @ 80ADB04
str r0, [r1]
bx lr
.align 2, 0
-_080ADB30: .4byte 0x02018204
+_080ADB30: .4byte gSharedMem + 0x18204
_080ADB34: .4byte gPlttBufferUnfaded
_080ADB38: .4byte 0x040000d4
_080ADB3C: .4byte 0x84000100
@@ -5036,7 +5035,7 @@ sub_80ADB88: @ 80ADB88
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
- ldr r1, _080ADBF0 @ =0x02019260
+ ldr r1, _080ADBF0 @ =gSharedMem + 0x19260
adds r0, r1
ldrb r4, [r0, 0x1A]
bl sub_80AF138
@@ -5074,7 +5073,7 @@ sub_80ADB88: @ 80ADB88
bx r0
.align 2, 0
_080ADBEC: .4byte gContestPlayerMonIndex
-_080ADBF0: .4byte 0x02019260
+_080ADBF0: .4byte gSharedMem + 0x19260
_080ADBF4: .4byte gStringVar1
_080ADBF8: .4byte gContestMons + 0x2
_080ADBFC: .4byte gStringVar4
@@ -5233,7 +5232,7 @@ sub_80ADD04: @ 80ADD04
ldrb r0, [r2]
ands r1, r0
strb r1, [r2]
- ldr r1, _080ADD48 @ =0x02019204
+ ldr r1, _080ADD48 @ =gSharedMem + 0x19204
ldrb r0, [r1, 0x1]
adds r0, 0x1
strb r0, [r1, 0x1]
@@ -5251,7 +5250,7 @@ sub_80ADD04: @ 80ADD04
.align 2, 0
_080ADD40: .4byte REG_BG0CNT
_080ADD44: .4byte REG_BG2CNT
-_080ADD48: .4byte 0x02019204
+_080ADD48: .4byte gSharedMem + 0x19204
_080ADD4C: .4byte gTasks
_080ADD50: .4byte sub_80ADDA4
_080ADD54:
@@ -5277,7 +5276,7 @@ sub_80ADD74: @ 80ADD74
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _080ADD98 @ =0x02019204
+ ldr r0, _080ADD98 @ =gSharedMem + 0x19204
ldrb r1, [r0, 0x6]
movs r0, 0x40
ands r0, r1
@@ -5294,7 +5293,7 @@ _080ADD94:
pop {r0}
bx r0
.align 2, 0
-_080ADD98: .4byte 0x02019204
+_080ADD98: .4byte gSharedMem + 0x19204
_080ADD9C: .4byte gTasks
_080ADDA0: .4byte sub_80ABB70
thumb_func_end sub_80ADD74
@@ -5310,7 +5309,7 @@ sub_80ADDA4: @ 80ADDA4
strh r1, [r0]
ldr r0, _080ADE28 @ =gUnknown_03004280
strh r1, [r0]
- ldr r3, _080ADE2C @ =0x02019260
+ ldr r3, _080ADE2C @ =gSharedMem + 0x19260
ldr r2, _080ADE30 @ =gUnknown_02038680
movs r1, 0x3
_080ADDBC:
@@ -5329,7 +5328,7 @@ _080ADDBC:
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
- ldr r1, _080ADE2C @ =0x02019260
+ ldr r1, _080ADE2C @ =gSharedMem + 0x19260
adds r0, r1
ldrh r0, [r0, 0x8]
bl sub_80BE23C
@@ -5364,7 +5363,7 @@ _080ADDBC:
.align 2, 0
_080ADE24: .4byte gUnknown_030042A0
_080ADE28: .4byte gUnknown_03004280
-_080ADE2C: .4byte 0x02019260
+_080ADE2C: .4byte gSharedMem + 0x19260
_080ADE30: .4byte gUnknown_02038680
_080ADE34: .4byte gContestPlayerMonIndex
_080ADE38: .4byte gUnknown_03005D28
@@ -5555,7 +5554,7 @@ sub_80ADF98: @ 80ADF98
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r2, _080ADFCC @ =gTasks
- ldr r0, _080ADFD0 @ =0x02019204
+ ldr r0, _080ADFD0 @ =gSharedMem + 0x19204
ldrb r1, [r0, 0x8]
lsls r0, r1, 2
adds r0, r1
@@ -5568,7 +5567,7 @@ sub_80ADF98: @ 80ADF98
bx r0
.align 2, 0
_080ADFCC: .4byte gTasks
-_080ADFD0: .4byte 0x02019204
+_080ADFD0: .4byte gSharedMem + 0x19204
_080ADFD4: .4byte sub_80ADFD8
thumb_func_end sub_80ADF98
@@ -6187,7 +6186,7 @@ _080AE48E:
movs r0, 0x4
b _080AE50A
_080AE49E:
- ldr r0, _080AE4B0 @ =gScriptContestCategory
+ ldr r0, _080AE4B0 @ =gSpecialVar_ContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bhi _080AE4F2
@@ -6197,7 +6196,7 @@ _080AE49E:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080AE4B0: .4byte gScriptContestCategory
+_080AE4B0: .4byte gSpecialVar_ContestCategory
_080AE4B4: .4byte _080AE4B8
.align 2, 0
_080AE4B8:
@@ -6234,7 +6233,7 @@ _080AE4F2:
movs r0, 0
b _080AE50A
_080AE4F6:
- ldr r0, _080AE510 @ =gScriptContestRank
+ ldr r0, _080AE510 @ =gSpecialVar_ContestRank
adds r2, r1, 0
ldrh r1, [r0]
movs r0, 0x2
@@ -6249,7 +6248,7 @@ _080AE50A:
pop {r1}
bx r1
.align 2, 0
-_080AE510: .4byte gScriptContestRank
+_080AE510: .4byte gSpecialVar_ContestRank
thumb_func_end sub_80AE47C
thumb_func_start sub_80AE514
@@ -7157,7 +7156,7 @@ _080AEC34:
ldr r6, _080AEC78 @ =gContestMoves
lsls r5, r4, 3
ldr r7, _080AEC80 @ =gContestEffects
- ldr r0, _080AEC84 @ =gUnknown_083CADD4
+ ldr r0, _080AEC84 @ =gContestEffectStrings
mov r9, r0
ldr r4, _080AEC88 @ =0x0600c816
ldr r3, _080AEC8C @ =0x0600c7d6
@@ -7189,7 +7188,7 @@ _080AEC74: .4byte gUnknown_03004210
_080AEC78: .4byte gContestMoves
_080AEC7C: .4byte 0x00004040
_080AEC80: .4byte gContestEffects
-_080AEC84: .4byte gUnknown_083CADD4
+_080AEC84: .4byte gContestEffectStrings
_080AEC88: .4byte 0x0600c816
_080AEC8C: .4byte 0x0600c7d6
_080AEC90:
@@ -7401,7 +7400,7 @@ _080AEE24:
lsls r0, r4, 3
subs r0, r4
lsls r0, 2
- ldr r1, _080AEE48 @ =0x02019260
+ ldr r1, _080AEE48 @ =gSharedMem + 0x19260
adds r0, r1
ldrh r0, [r0, 0x6]
adds r1, r4, 0
@@ -7415,7 +7414,7 @@ _080AEE24:
pop {r0}
bx r0
.align 2, 0
-_080AEE48: .4byte 0x02019260
+_080AEE48: .4byte gSharedMem + 0x19260
thumb_func_end unref_sub_80AEE20
thumb_func_start sub_80AEE4C
@@ -7442,7 +7441,7 @@ sub_80AEE54: @ 80AEE54
lsls r5, r7, 3
subs r0, r5, r7
lsls r0, 2
- ldr r1, _080AEE84 @ =0x02019260
+ ldr r1, _080AEE84 @ =gSharedMem + 0x19260
adds r0, r1
ldrb r0, [r0, 0x10]
movs r2, 0x30
@@ -7453,7 +7452,7 @@ sub_80AEE54: @ 80AEE54
movs r0, 0
b _080AEF3C
.align 2, 0
-_080AEE84: .4byte 0x02019260
+_080AEE84: .4byte gSharedMem + 0x19260
_080AEE88:
ldr r0, _080AEEB0 @ =gUnknown_02038696
adds r0, r7, r0
@@ -7488,7 +7487,7 @@ _080AEEB4:
_080AEEC4:
subs r0, r6, r7
lsls r0, 2
- ldr r1, _080AEEEC @ =0x02019260
+ ldr r1, _080AEEEC @ =gSharedMem + 0x19260
adds r5, r0, r1
movs r0, 0xD
ldrsb r0, [r5, r0]
@@ -7505,7 +7504,7 @@ _080AEEC4:
b _080AEF2C
.align 2, 0
_080AEEE8: .4byte 0x0600c026
-_080AEEEC: .4byte 0x02019260
+_080AEEEC: .4byte gSharedMem + 0x19260
_080AEEF0:
movs r1, 0
mov r8, r1
@@ -7599,7 +7598,7 @@ _080AEF84:
_080AEF92:
subs r0, r7, r5
lsls r0, 2
- ldr r1, _080AEFE4 @ =0x02019260
+ ldr r1, _080AEFE4 @ =gSharedMem + 0x19260
adds r0, r1
ldrb r0, [r0, 0xD]
lsls r0, 24
@@ -7639,7 +7638,7 @@ _080AEFCE:
bx r0
.align 2, 0
_080AEFE0: .4byte 0x0600c026
-_080AEFE4: .4byte 0x02019260
+_080AEFE4: .4byte gSharedMem + 0x19260
thumb_func_end sub_80AEF50
thumb_func_start sub_80AEFE8
@@ -7706,7 +7705,7 @@ sub_80AF038: @ 80AF038
lsls r0, r3, 3
subs r0, r3
lsls r0, 2
- ldr r1, _080AF078 @ =0x02019260
+ ldr r1, _080AF078 @ =gSharedMem + 0x19260
adds r2, r0, r1
ldr r0, [r2, 0x10]
ldr r1, _080AF07C @ =0x00ff0003
@@ -7722,7 +7721,7 @@ _080AF06C:
b _080AF0A6
.align 2, 0
_080AF074: .4byte gUnknown_02038696
-_080AF078: .4byte 0x02019260
+_080AF078: .4byte gSharedMem + 0x19260
_080AF07C: .4byte 0x00ff0003
_080AF080:
ldrb r1, [r2, 0xC]
@@ -7873,7 +7872,7 @@ _080AF190: .4byte gContestPlayerMonIndex
_080AF194: .4byte gContestMons
_080AF198:
ldr r2, _080AF1B0 @ =gContestMons
- ldr r0, _080AF1B4 @ =0x02019204
+ ldr r0, _080AF1B4 @ =gSharedMem + 0x19204
ldrb r0, [r0]
lsls r0, 1
lsls r1, r5, 6
@@ -7888,7 +7887,7 @@ _080AF1AA:
bx r1
.align 2, 0
_080AF1B0: .4byte gContestMons
-_080AF1B4: .4byte 0x02019204
+_080AF1B4: .4byte gSharedMem + 0x19204
thumb_func_end sub_80AF15C
thumb_func_start sub_80AF1B8
@@ -7901,7 +7900,7 @@ _080AF1BC:
lsls r1, r4, 3
subs r1, r4
lsls r1, 2
- ldr r2, _080AF1E0 @ =0x02019260
+ ldr r2, _080AF1E0 @ =gSharedMem + 0x19260
adds r1, r2
strh r0, [r1, 0x6]
adds r0, r4, 0x1
@@ -7913,7 +7912,7 @@ _080AF1BC:
pop {r0}
bx r0
.align 2, 0
-_080AF1E0: .4byte 0x02019260
+_080AF1E0: .4byte gSharedMem + 0x19260
thumb_func_end sub_80AF1B8
thumb_func_start sub_80AF1E4
@@ -7936,7 +7935,7 @@ _080AF1FE:
lsls r0, r5, 3
subs r0, r5
lsls r0, 2
- ldr r1, _080AF21C @ =0x02019260
+ ldr r1, _080AF21C @ =gSharedMem + 0x19260
adds r1, r0, r1
ldrh r0, [r1, 0x6]
cmp r0, 0
@@ -7947,7 +7946,7 @@ _080AF1FE:
bl sub_80AE598
b _080AF23A
.align 2, 0
-_080AF21C: .4byte 0x02019260
+_080AF21C: .4byte gSharedMem + 0x19260
_080AF220: .4byte gDisplayedStringBattle
_080AF224: .4byte gUnknownText_MissedTurn
_080AF228:
@@ -8066,7 +8065,7 @@ sub_80AF2FC: @ 80AF2FC
push {r4-r7,lr}
sub sp, 0x8
movs r4, 0
- ldr r2, _080AF398 @ =0x02019260
+ ldr r2, _080AF398 @ =gSharedMem + 0x19260
_080AF304:
lsls r0, r4, 3
subs r0, r4
@@ -8118,7 +8117,7 @@ _080AF354:
cmp r4, 0x2
bls _080AF326
movs r4, 0
- ldr r0, _080AF398 @ =0x02019260
+ ldr r0, _080AF398 @ =gSharedMem + 0x19260
mov r12, r0
movs r7, 0x4
negs r7, r7
@@ -8148,7 +8147,7 @@ _080AF37C:
strb r0, [r3, 0xB]
b _080AF3A6
.align 2, 0
-_080AF398: .4byte 0x02019260
+_080AF398: .4byte gSharedMem + 0x19260
_080AF39C:
adds r0, r2, 0x1
lsls r0, 24
@@ -8172,7 +8171,7 @@ _080AF3A6:
thumb_func_start sub_80AF3C0
sub_80AF3C0: @ 80AF3C0
push {lr}
- ldr r2, _080AF3D0 @ =0x02019260
+ ldr r2, _080AF3D0 @ =gSharedMem + 0x19260
adds r3, r2, 0
_080AF3C6:
ldrh r0, [r2, 0x6]
@@ -8181,7 +8180,7 @@ _080AF3C6:
movs r1, 0x5
b _080AF3F2
.align 2, 0
-_080AF3D0: .4byte 0x02019260
+_080AF3D0: .4byte gSharedMem + 0x19260
_080AF3D4:
movs r1, 0x2
ldrsh r0, [r2, r1]
@@ -8217,7 +8216,7 @@ sub_80AF404: @ 80AF404
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
- ldr r0, _080AF42C @ =0x02019260
+ ldr r0, _080AF42C @ =gSharedMem + 0x19260
adds r2, r1, r0
ldrb r1, [r2, 0xC]
movs r0, 0x6
@@ -8233,7 +8232,7 @@ _080AF428:
movs r0, 0
b _080AF432
.align 2, 0
-_080AF42C: .4byte 0x02019260
+_080AF42C: .4byte gSharedMem + 0x19260
_080AF430:
movs r0, 0x1
_080AF432:
@@ -8249,7 +8248,7 @@ sub_80AF438: @ 80AF438
mov r5, r8
push {r5-r7}
movs r5, 0
- ldr r0, _080AF594 @ =0x02019260
+ ldr r0, _080AF594 @ =gSharedMem + 0x19260
mov r10, r0
movs r1, 0
mov r12, r1
@@ -8407,7 +8406,7 @@ _080AF53E:
lsrs r5, r0, 24
cmp r5, 0x3
bls _080AF53E
- ldr r2, _080AF598 @ =0x02019328
+ ldr r2, _080AF598 @ =gSharedMem + 0x19328
ldrb r1, [r2, 0x1]
movs r0, 0x2
negs r0, r0
@@ -8421,8 +8420,8 @@ _080AF53E:
pop {r0}
bx r0
.align 2, 0
-_080AF594: .4byte 0x02019260
-_080AF598: .4byte 0x02019328
+_080AF594: .4byte gSharedMem + 0x19260
+_080AF598: .4byte gSharedMem + 0x19328
thumb_func_end sub_80AF438
thumb_func_start sub_80AF59C
@@ -8433,7 +8432,7 @@ sub_80AF59C: @ 80AF59C
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
- ldr r0, _080AF5C4 @ =0x02019260
+ ldr r0, _080AF5C4 @ =gSharedMem + 0x19260
adds r2, r1, r0
ldrb r1, [r2, 0xC]
movs r0, 0x6
@@ -8449,7 +8448,7 @@ _080AF5C0:
movs r0, 0x1
b _080AF5CA
.align 2, 0
-_080AF5C4: .4byte 0x02019260
+_080AF5C4: .4byte gSharedMem + 0x19260
_080AF5C8:
movs r0, 0
_080AF5CA:
@@ -8489,7 +8488,7 @@ _080AF5FC:
b _080AF5E2
_080AF600:
movs r0, 0
- ldr r4, _080AF62C @ =0x02019204
+ ldr r4, _080AF62C @ =gSharedMem + 0x19204
adds r5, r4, 0x2
_080AF606:
cmp r3, 0x3
@@ -8513,7 +8512,7 @@ _080AF626:
pop {r1}
bx r1
.align 2, 0
-_080AF62C: .4byte 0x02019204
+_080AF62C: .4byte gSharedMem + 0x19204
thumb_func_end unref_sub_80AF5D0
thumb_func_start sub_80AF630
@@ -8865,7 +8864,7 @@ unref_sub_80AF89C: @ 80AF89C
lsrs r3, 24
mov r9, r3
lsls r2, r3, 2
- ldr r0, _080AF940 @ =0x02019338
+ ldr r0, _080AF940 @ =gSharedMem + 0x19338
adds r2, r0
ldrb r0, [r2, 0x2]
movs r1, 0x4
@@ -8925,7 +8924,7 @@ _080AF932:
pop {r1}
bx r1
.align 2, 0
-_080AF940: .4byte 0x02019338
+_080AF940: .4byte gSharedMem + 0x19338
_080AF944: .4byte sub_80AF94C
_080AF948: .4byte gTasks
thumb_func_end unref_sub_80AF89C
@@ -8951,7 +8950,7 @@ sub_80AF94C: @ 80AF94C
adds r0, r4, 0
bl DestroyTask
lsls r1, r5, 2
- ldr r0, _080AF98C @ =0x02019338
+ ldr r0, _080AF98C @ =gSharedMem + 0x19338
adds r1, r0
ldrb r2, [r1, 0x2]
movs r0, 0x5
@@ -8961,7 +8960,7 @@ sub_80AF94C: @ 80AF94C
b _080AFA56
.align 2, 0
_080AF988: .4byte gTasks
-_080AF98C: .4byte 0x02019338
+_080AF98C: .4byte gSharedMem + 0x19338
_080AF990:
ldrh r0, [r2, 0x1C]
adds r0, 0x1
@@ -9250,7 +9249,7 @@ sub_80AFBA0: @ 80AFBA0
lsls r2, 24
lsrs r7, r2, 24
lsls r2, r7, 2
- ldr r0, _080AFC30 @ =0x02019338
+ ldr r0, _080AFC30 @ =gSharedMem + 0x19338
adds r2, r0
ldrb r0, [r2, 0x2]
movs r1, 0x4
@@ -9308,7 +9307,7 @@ _080AFC28:
strh r0, [r1, 0xC]
b _080AFC4A
.align 2, 0
-_080AFC30: .4byte 0x02019338
+_080AFC30: .4byte gSharedMem + 0x19338
_080AFC34: .4byte sub_80AFC74
_080AFC38: .4byte gTasks
_080AFC3C:
@@ -9382,7 +9381,7 @@ _080AFCA6:
mov r0, r8
bl DestroyTask
lsls r1, r7, 2
- ldr r0, _080AFCD8 @ =0x02019338
+ ldr r0, _080AFCD8 @ =gSharedMem + 0x19338
adds r1, r0
ldrb r2, [r1, 0x2]
movs r0, 0x5
@@ -9392,7 +9391,7 @@ _080AFCA6:
b _080AFE1C
.align 2, 0
_080AFCD4: .4byte gTasks
-_080AFCD8: .4byte 0x02019338
+_080AFCD8: .4byte gSharedMem + 0x19338
_080AFCDC:
cmp r3, 0
bne _080AFD28
@@ -9582,7 +9581,7 @@ _080AFE3C:
movs r3, 0x1
bl CreateSprite
lsls r1, r4, 2
- ldr r2, _080AFE74 @ =0x02019338
+ ldr r2, _080AFE74 @ =gSharedMem + 0x19338
adds r1, r2
strb r0, [r1]
adds r4, 0x1
@@ -9596,7 +9595,7 @@ _080AFE64: .4byte gUnknown_083CA350
_080AFE68: .4byte gUnknown_083CA338
_080AFE6C: .4byte gUnknown_02038696
_080AFE70: .4byte gSpriteTemplate_83CA3AC
-_080AFE74: .4byte 0x02019338
+_080AFE74: .4byte gSharedMem + 0x19338
thumb_func_end sub_80AFE30
thumb_func_start sub_80AFE78
@@ -9605,7 +9604,7 @@ sub_80AFE78: @ 80AFE78
lsls r0, 24
lsrs r6, r0, 24
lsls r2, r6, 2
- ldr r3, _080AFEB0 @ =0x02019338
+ ldr r3, _080AFEB0 @ =gSharedMem + 0x19338
adds r2, r3
ldrb r0, [r2, 0x2]
movs r1, 0x1
@@ -9629,7 +9628,7 @@ sub_80AFE78: @ 80AFE78
movs r5, 0x38
b _080AFEBA
.align 2, 0
-_080AFEB0: .4byte 0x02019338
+_080AFEB0: .4byte gSharedMem + 0x19338
_080AFEB4:
cmp r0, 0
bge _080AFEBA
@@ -9700,7 +9699,7 @@ _080AFF14:
sub_80AFF28: @ 80AFF28
push {r4,lr}
movs r3, 0
- ldr r2, _080AFF54 @ =0x02019338
+ ldr r2, _080AFF54 @ =gSharedMem + 0x19338
ldrb r1, [r2, 0x2]
movs r0, 0x1
ands r0, r1
@@ -9723,7 +9722,7 @@ _080AFF4C:
movs r0, 0
b _080AFF5A
.align 2, 0
-_080AFF54: .4byte 0x02019338
+_080AFF54: .4byte gSharedMem + 0x19338
_080AFF58:
movs r0, 0x1
_080AFF5A:
@@ -9746,7 +9745,7 @@ sub_80AFF60: @ 80AFF60
movs r0, 0x2E
ldrsh r1, [r3, r0]
lsls r1, 2
- ldr r0, _080AFF8C @ =0x02019338
+ ldr r0, _080AFF8C @ =gSharedMem + 0x19338
adds r1, r0
ldrb r2, [r1, 0x2]
movs r0, 0x2
@@ -9757,7 +9756,7 @@ sub_80AFF60: @ 80AFF60
str r0, [r3, 0x1C]
b _080AFF9A
.align 2, 0
-_080AFF8C: .4byte 0x02019338
+_080AFF8C: .4byte gSharedMem + 0x19338
_080AFF90: .4byte SpriteCallbackDummy
_080AFF94:
ldrh r0, [r3, 0x32]
@@ -9775,7 +9774,7 @@ sub_80AFFA0: @ 80AFFA0
movs r2, 0
ldr r6, _080AFFD0 @ =gSprites
ldr r5, _080AFFD4 @ =gUnknown_083CA338
- ldr r3, _080AFFD8 @ =0x02019338
+ ldr r3, _080AFFD8 @ =gSharedMem + 0x19338
ldr r4, _080AFFDC @ =gUnknown_02038696
_080AFFAC:
ldrb r0, [r3]
@@ -9798,7 +9797,7 @@ _080AFFAC:
.align 2, 0
_080AFFD0: .4byte gSprites
_080AFFD4: .4byte gUnknown_083CA338
-_080AFFD8: .4byte 0x02019338
+_080AFFD8: .4byte gSharedMem + 0x19338
_080AFFDC: .4byte gUnknown_02038696
thumb_func_end sub_80AFFA0
@@ -9810,7 +9809,7 @@ sub_80AFFE0: @ 80AFFE0
movs r3, 0
ldr r6, _080B0008 @ =gUnknown_02038696
ldr r4, _080B000C @ =gSprites
- ldr r2, _080B0010 @ =0x02019338
+ ldr r2, _080B0010 @ =gSharedMem + 0x19338
_080AFFEE:
adds r0, r3, r6
ldrb r0, [r0]
@@ -9828,7 +9827,7 @@ _080AFFEE:
.align 2, 0
_080B0008: .4byte gUnknown_02038696
_080B000C: .4byte gSprites
-_080B0010: .4byte 0x02019338
+_080B0010: .4byte gSharedMem + 0x19338
_080B0014:
ldrb r0, [r2]
lsls r1, r0, 4
@@ -9877,7 +9876,7 @@ _080B004A:
movs r3, 0
bl CreateSprite
lsls r4, r5, 2
- ldr r1, _080B00C0 @ =0x02019338
+ ldr r1, _080B00C0 @ =gSharedMem + 0x19338
adds r4, r1
strb r0, [r4, 0x1]
ldrb r1, [r4, 0x1]
@@ -9913,7 +9912,7 @@ _080B00B0: .4byte gSprites
_080B00B4: .4byte gUnknown_083CA3C4
_080B00B8: .4byte gSpriteTemplate_83CA3F4
_080B00BC: .4byte gUnknown_02038696
-_080B00C0: .4byte 0x02019338
+_080B00C0: .4byte gSharedMem + 0x19338
_080B00C4: .4byte gSubspriteTables_83CA464
thumb_func_end sub_80B0034
@@ -9941,7 +9940,7 @@ sub_80B00C8: @ 80B00C8
movs r3, 0x4
orrs r2, r3
strb r2, [r1]
- ldr r1, _080B0114 @ =0x02019204
+ ldr r1, _080B0114 @ =gSharedMem + 0x19204
adds r1, 0x58
strb r0, [r1]
pop {r0}
@@ -9951,7 +9950,7 @@ _080B0104: .4byte gUnknown_083CA46C
_080B0108: .4byte gUnknown_083CA474
_080B010C: .4byte gSpriteTemplate_83CA484
_080B0110: .4byte gSprites
-_080B0114: .4byte 0x02019204
+_080B0114: .4byte gSharedMem + 0x19204
thumb_func_end sub_80B00C8
thumb_func_start nullsub_18
@@ -9982,7 +9981,7 @@ _080B012C:
adds r0, r5, 0x1
mov r8, r0
ldr r7, _080B01A4 @ =gSprites
- ldr r6, _080B01A8 @ =0x0201920d
+ ldr r6, _080B01A8 @ =gSharedMem + 0x1920D
_080B014A:
lsls r2, r4, 1
adds r0, r2, r4
@@ -10027,7 +10026,7 @@ _080B0198: .4byte gUnknown_083CC3AC
_080B019C: .4byte gUnknown_083CC3B4
_080B01A0: .4byte gUnknown_083CA330
_080B01A4: .4byte gSprites
-_080B01A8: .4byte 0x0201920d
+_080B01A8: .4byte gSharedMem + 0x1920D
_080B01AC: .4byte gSpriteTemplate_83CC454
thumb_func_end unref_sub_80B011C
@@ -10035,7 +10034,7 @@ _080B01AC: .4byte gSpriteTemplate_83CC454
unref_sub_80B01B0: @ 80B01B0
push {r4,r5,lr}
movs r2, 0
- ldr r5, _080B01D4 @ =0x0201920d
+ ldr r5, _080B01D4 @ =gSharedMem + 0x1920D
ldr r4, _080B01D8 @ =gSprites + 0x1C
ldr r3, _080B01DC @ =sub_80B0238
_080B01BA:
@@ -10053,7 +10052,7 @@ _080B01BA:
pop {r0}
bx r0
.align 2, 0
-_080B01D4: .4byte 0x0201920d
+_080B01D4: .4byte gSharedMem + 0x1920D
_080B01D8: .4byte gSprites + 0x1C
_080B01DC: .4byte sub_80B0238
thumb_func_end unref_sub_80B01B0
@@ -10063,7 +10062,7 @@ unref_sub_80B01E0: @ 80B01E0
push {r4,r5,lr}
movs r3, 0
ldr r2, _080B0224 @ =gSprites
- ldr r4, _080B0228 @ =0x02019204
+ ldr r4, _080B0228 @ =gSharedMem + 0x19204
ldrb r1, [r4, 0x9]
lsls r0, r1, 4
adds r0, r1
@@ -10097,7 +10096,7 @@ _080B021A:
b _080B0232
.align 2, 0
_080B0224: .4byte gSprites
-_080B0228: .4byte 0x02019204
+_080B0228: .4byte gSharedMem + 0x19204
_080B022C: .4byte SpriteCallbackDummy
_080B0230:
movs r0, 0x1
@@ -10186,7 +10185,7 @@ sub_80B02A8: @ 80B02A8
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
- ldr r1, _080B02EC @ =0x02019260
+ ldr r1, _080B02EC @ =gSharedMem + 0x19260
adds r0, r1
ldrb r1, [r0, 0xB]
lsls r1, 30
@@ -10204,7 +10203,7 @@ sub_80B02A8: @ 80B02A8
pop {r0}
bx r0
.align 2, 0
-_080B02EC: .4byte 0x02019260
+_080B02EC: .4byte gSharedMem + 0x19260
_080B02F0: .4byte sub_80B02F4
thumb_func_end sub_80B02A8
@@ -10243,7 +10242,7 @@ sub_80B0324: @ 80B0324
bl CreateTask
lsls r0, 24
lsrs r0, 24
- ldr r1, _080B0360 @ =0x02019204
+ ldr r1, _080B0360 @ =gSharedMem + 0x19204
strb r0, [r1, 0xD]
movs r2, 0
lsls r1, r0, 2
@@ -10266,7 +10265,7 @@ _080B0342:
bx r0
.align 2, 0
_080B035C: .4byte sub_80B0458
-_080B0360: .4byte 0x02019204
+_080B0360: .4byte gSharedMem + 0x19204
_080B0364: .4byte gTasks + 0x8
thumb_func_end sub_80B0324
@@ -10276,7 +10275,7 @@ sub_80B0368: @ 80B0368
lsls r0, 24
lsrs r0, 24
ldr r3, _080B03A0 @ =gTasks
- ldr r5, _080B03A4 @ =0x02019204
+ ldr r5, _080B03A4 @ =gSharedMem + 0x19204
ldrb r2, [r5, 0xD]
lsls r1, r2, 2
adds r1, r2
@@ -10301,7 +10300,7 @@ sub_80B0368: @ 80B0368
bx r0
.align 2, 0
_080B03A0: .4byte gTasks
-_080B03A4: .4byte 0x02019204
+_080B03A4: .4byte gSharedMem + 0x19204
thumb_func_end sub_80B0368
thumb_func_start sub_80B03A8
@@ -10342,7 +10341,7 @@ sub_80B03D8: @ 80B03D8
adds r0, r2
ldrb r0, [r0, 0x8]
adds r4, r0, 0
- ldr r6, _080B0450 @ =0x02019204
+ ldr r6, _080B0450 @ =gSharedMem + 0x19204
ldrb r1, [r6, 0xD]
lsls r0, r1, 2
adds r0, r1
@@ -10390,7 +10389,7 @@ _080B0444:
bx r0
.align 2, 0
_080B044C: .4byte gTasks
-_080B0450: .4byte 0x02019204
+_080B0450: .4byte gSharedMem + 0x19204
_080B0454: .4byte 0x00004bff
thumb_func_end sub_80B03D8
@@ -10466,7 +10465,7 @@ _080B04CC:
eors r1, r2
strh r1, [r0]
_080B04DA:
- ldr r0, _080B0510 @ =0x02019204
+ ldr r0, _080B0510 @ =gSharedMem + 0x19204
adds r0, 0x14
adds r0, r6, r0
ldrb r0, [r0]
@@ -10493,7 +10492,7 @@ _080B04F6:
pop {r0}
bx r0
.align 2, 0
-_080B0510: .4byte 0x02019204
+_080B0510: .4byte gSharedMem + 0x19204
_080B0514: .4byte 0x00004bff
thumb_func_end sub_80B0458
@@ -10503,7 +10502,7 @@ sub_80B0518: @ 80B0518
ldr r0, _080B0540 @ =sub_80B05FC
movs r1, 0x1E
bl CreateTask
- ldr r1, _080B0544 @ =0x02019204
+ ldr r1, _080B0544 @ =gSharedMem + 0x19204
strb r0, [r1, 0xE]
movs r4, 0
_080B0528:
@@ -10519,7 +10518,7 @@ _080B0528:
bx r0
.align 2, 0
_080B0540: .4byte sub_80B05FC
-_080B0544: .4byte 0x02019204
+_080B0544: .4byte gSharedMem + 0x19204
thumb_func_end sub_80B0518
thumb_func_start sub_80B0548
@@ -10528,7 +10527,7 @@ sub_80B0548: @ 80B0548
lsls r0, 24
lsrs r0, 24
ldr r3, _080B0580 @ =gTasks
- ldr r4, _080B0584 @ =0x02019204
+ ldr r4, _080B0584 @ =gSharedMem + 0x19204
ldrb r2, [r4, 0xE]
lsls r1, r2, 2
adds r1, r2
@@ -10554,7 +10553,7 @@ sub_80B0548: @ 80B0548
bx r0
.align 2, 0
_080B0580: .4byte gTasks
-_080B0584: .4byte 0x02019204
+_080B0584: .4byte gSharedMem + 0x19204
thumb_func_end sub_80B0548
thumb_func_start sub_80B0588
@@ -10757,7 +10756,7 @@ unref_sub_80B06E0: @ 80B06E0
lsls r6, r0, 3
ldr r0, _080B0740 @ =gTasks + 0x8
mov r8, r0
- ldr r1, _080B0744 @ =0x02019338
+ ldr r1, _080B0744 @ =gSharedMem + 0x19338
mov r12, r1
_080B0704:
lsls r4, r3, 2
@@ -10792,7 +10791,7 @@ _080B0726:
.align 2, 0
_080B073C: .4byte sub_80B0748
_080B0740: .4byte gTasks + 0x8
-_080B0744: .4byte 0x02019338
+_080B0744: .4byte gSharedMem + 0x19338
thumb_func_end unref_sub_80B06E0
thumb_func_start sub_80B0748
@@ -11067,7 +11066,7 @@ _080B0958:
cmp r4, 0x4
bne _080B0980
movs r4, 0
- ldr r3, _080B0990 @ =0x02019338
+ ldr r3, _080B0990 @ =gSharedMem + 0x19338
movs r5, 0x3
negs r5, r5
_080B0964:
@@ -11094,7 +11093,7 @@ _080B0980:
pop {r0}
bx r0
.align 2, 0
-_080B0990: .4byte 0x02019338
+_080B0990: .4byte gSharedMem + 0x19338
thumb_func_end sub_80B0748
thumb_func_start unref_sub_80B0994
@@ -11103,7 +11102,7 @@ unref_sub_80B0994: @ 80B0994
lsls r0, 24
cmp r0, 0
beq _080B09A6
- ldr r0, _080B09AC @ =0x02019204
+ ldr r0, _080B09AC @ =gSharedMem + 0x19204
ldrb r1, [r0, 0x6]
movs r2, 0x4
orrs r1, r2
@@ -11112,7 +11111,7 @@ _080B09A6:
pop {r0}
bx r0
.align 2, 0
-_080B09AC: .4byte 0x02019204
+_080B09AC: .4byte gSharedMem + 0x19204
thumb_func_end unref_sub_80B0994
thumb_func_start sub_80B09B0
@@ -11123,7 +11122,7 @@ sub_80B09B0: @ 80B09B0
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
- ldr r1, _080B09D4 @ =0x02019260
+ ldr r1, _080B09D4 @ =gSharedMem + 0x19260
adds r0, r1
ldrb r1, [r0, 0x15]
movs r0, 0x10
@@ -11134,7 +11133,7 @@ sub_80B09B0: @ 80B09B0
bl sub_80B0368
b _080B09DE
.align 2, 0
-_080B09D4: .4byte 0x02019260
+_080B09D4: .4byte gSharedMem + 0x19260
_080B09D8:
adds r0, r2, 0
bl sub_80B03A8
@@ -11401,7 +11400,7 @@ sub_80B0BC4: @ 80B0BC4
movs r1, 0x30
ldrsh r2, [r0, r1]
lsls r2, 2
- ldr r1, _080B0C3C @ =0x02019338
+ ldr r1, _080B0C3C @ =gSharedMem + 0x19338
adds r2, r1
ldrb r1, [r2, 0x2]
movs r3, 0x2
@@ -11435,7 +11434,7 @@ sub_80B0BC4: @ 80B0BC4
b _080B0C4E
.align 2, 0
_080B0C38: .4byte gSprites
-_080B0C3C: .4byte 0x02019338
+_080B0C3C: .4byte gSharedMem + 0x19338
_080B0C40: .4byte sub_80B0C5C
_080B0C44: .4byte SpriteCallbackDummy
_080B0C48:
@@ -11502,7 +11501,7 @@ sub_80B0CB0: @ 80B0CB0
movs r1, 0x30
ldrsh r2, [r0, r1]
lsls r2, 2
- ldr r1, _080B0CD8 @ =0x02019338
+ ldr r1, _080B0CD8 @ =gSharedMem + 0x19338
adds r2, r1
ldrb r3, [r2, 0x2]
movs r1, 0x3
@@ -11517,14 +11516,14 @@ sub_80B0CB0: @ 80B0CB0
pop {r0}
bx r0
.align 2, 0
-_080B0CD8: .4byte 0x02019338
+_080B0CD8: .4byte gSharedMem + 0x19338
thumb_func_end sub_80B0CB0
thumb_func_start sub_80B0CDC
sub_80B0CDC: @ 80B0CDC
lsls r0, 24
lsrs r0, 22
- ldr r1, _080B0CF0 @ =0x02019338
+ ldr r1, _080B0CF0 @ =gSharedMem + 0x19338
adds r0, r1
ldrb r2, [r0, 0x2]
movs r1, 0x3
@@ -11533,7 +11532,7 @@ sub_80B0CDC: @ 80B0CDC
strb r1, [r0, 0x2]
bx lr
.align 2, 0
-_080B0CF0: .4byte 0x02019338
+_080B0CF0: .4byte gSharedMem + 0x19338
thumb_func_end sub_80B0CDC
thumb_func_start unref_sub_80B0CF4
@@ -11542,7 +11541,7 @@ unref_sub_80B0CF4: @ 80B0CF4
mov r7, r8
push {r7}
sub sp, 0x8
- ldr r0, _080B0D5C @ =0x02000000
+ ldr r0, _080B0D5C @ =gSharedMem
movs r1, 0xC0
lsls r1, 9
adds r0, r1
@@ -11589,7 +11588,7 @@ _080B0D1C:
bl sub_80AEB30
b _080B0D70
.align 2, 0
-_080B0D5C: .4byte 0x02000000
+_080B0D5C: .4byte gSharedMem
_080B0D60: .4byte gUnknown_083CA308
_080B0D64: .4byte gUnknown_083CA310
_080B0D68: .4byte gUnknown_03004210
@@ -11612,7 +11611,7 @@ sub_80B0D7C: @ 80B0D7C
push {r6,r7}
sub sp, 0x10
movs r5, 0
- ldr r0, _080B0ED0 @ =0x02000000
+ ldr r0, _080B0ED0 @ =gSharedMem
movs r1, 0xC0
lsls r1, 9
adds r0, r1
@@ -11662,7 +11661,7 @@ _080B0DE2:
lsls r0, r4, 3
subs r0, r4
lsls r0, 2
- ldr r1, _080B0EE0 @ =0x02019260
+ ldr r1, _080B0EE0 @ =gSharedMem + 0x19260
adds r0, r1
ldrh r2, [r0, 0x4]
movs r1, 0x4
@@ -11718,7 +11717,7 @@ _080B0E52:
lsls r0, r4, 3
subs r0, r4
lsls r0, 2
- ldr r1, _080B0EE0 @ =0x02019260
+ ldr r1, _080B0EE0 @ =gSharedMem + 0x19260
adds r0, r1
ldrh r2, [r0, 0x2]
movs r1, 0x2
@@ -11778,11 +11777,11 @@ _080B0EC2:
pop {r0}
bx r0
.align 2, 0
-_080B0ED0: .4byte 0x02000000
+_080B0ED0: .4byte gSharedMem
_080B0ED4: .4byte gUnknown_083CA308
_080B0ED8: .4byte gUnknown_083CA310
_080B0EDC: .4byte gUnknown_03004210
-_080B0EE0: .4byte 0x02019260
+_080B0EE0: .4byte gSharedMem + 0x19260
_080B0EE4: .4byte gUnknown_02038696
thumb_func_end sub_80B0D7C
@@ -11993,7 +11992,7 @@ _080B1050:
ldr r3, _080B1070 @ =gUnknown_02038696
movs r6, 0
_080B1060:
- ldr r0, _080B1074 @ =0x02019260
+ ldr r0, _080B1074 @ =gSharedMem + 0x19260
adds r0, r6, r0
ldrb r0, [r0, 0xB]
lsls r0, 30
@@ -12003,7 +12002,7 @@ _080B1060:
b _080B1082
.align 2, 0
_080B1070: .4byte gUnknown_02038696
-_080B1074: .4byte 0x02019260
+_080B1074: .4byte gSharedMem + 0x19260
_080B1078:
adds r0, r2, 0x1
lsls r0, 24
@@ -12037,10 +12036,10 @@ _080B10AC:
lsls r0, r4, 3
subs r0, r4
lsls r0, 2
- ldr r6, _080B1110 @ =0x02019244
+ ldr r6, _080B1110 @ =gSharedMem + 0x19244
adds r1, r0, r6
ldrb r2, [r1, 0xB]
- ldr r7, _080B1114 @ =0x02019260
+ ldr r7, _080B1114 @ =gSharedMem + 0x19260
adds r0, r7
ldrb r3, [r0, 0xB]
mov r1, r9
@@ -12087,8 +12086,8 @@ _080B10FC:
bx r0
.align 2, 0
_080B110C: .4byte gUnknown_02038696
-_080B1110: .4byte 0x02019244
-_080B1114: .4byte 0x02019260
+_080B1110: .4byte gSharedMem + 0x19244
+_080B1114: .4byte gSharedMem + 0x19260
thumb_func_end sub_80B0F28
thumb_func_start sub_80B1118
@@ -12097,7 +12096,7 @@ sub_80B1118: @ 80B1118
movs r4, 0
movs r5, 0xA0
_080B111E:
- ldr r0, _080B1144 @ =0x02018004
+ ldr r0, _080B1144 @ =gSharedMem + 0x18004
adds r0, r5, r0
ldr r1, _080B1148 @ =gUnknown_02038696
adds r1, r4, r1
@@ -12115,7 +12114,7 @@ _080B111E:
pop {r0}
bx r0
.align 2, 0
-_080B1144: .4byte 0x02018004
+_080B1144: .4byte gSharedMem + 0x18004
_080B1148: .4byte gUnknown_02038696
thumb_func_end sub_80B1118
@@ -12129,7 +12128,7 @@ sub_80B114C: @ 80B114C
lsls r7, r6, 3
subs r0, r7, r6
lsls r0, 2
- ldr r4, _080B11B8 @ =0x02019260
+ ldr r4, _080B11B8 @ =gSharedMem + 0x19260
adds r5, r0, r4
movs r0, 0
strh r0, [r5, 0x2]
@@ -12176,13 +12175,13 @@ _080B1176:
strb r0, [r5, 0xB]
b _080B11D8
.align 2, 0
-_080B11B8: .4byte 0x02019260
+_080B11B8: .4byte gSharedMem + 0x19260
_080B11BC: .4byte gContestMoves
_080B11C0:
lsls r4, r6, 3
subs r1, r4, r6
lsls r1, 2
- ldr r3, _080B1264 @ =0x02019260
+ ldr r3, _080B1264 @ =gSharedMem + 0x19260
adds r1, r3
ldrb r2, [r1, 0xB]
movs r0, 0x71
@@ -12224,7 +12223,7 @@ _080B1204:
ble _080B1204
subs r0, r7, r6
lsls r0, 2
- ldr r1, _080B1264 @ =0x02019260
+ ldr r1, _080B1264 @ =gSharedMem + 0x19260
adds r5, r0, r1
ldrb r1, [r5, 0x15]
movs r0, 0x10
@@ -12249,7 +12248,7 @@ _080B123C:
bl _call_via_r0
subs r0, r7, r6
lsls r0, 2
- ldr r1, _080B1264 @ =0x02019260
+ ldr r1, _080B1264 @ =gSharedMem + 0x19260
adds r2, r0, r1
ldrb r1, [r2, 0x10]
movs r0, 0x30
@@ -12262,7 +12261,7 @@ _080B123C:
ldrsb r0, [r2, r0]
b _080B128A
.align 2, 0
-_080B1264: .4byte 0x02019260
+_080B1264: .4byte gSharedMem + 0x19260
_080B1268: .4byte gContestEffects
_080B126C: .4byte gContestEffectFuncs
_080B1270:
@@ -12286,7 +12285,7 @@ _080B128A:
strh r0, [r2, 0x2]
subs r0, r7, r6
lsls r0, 2
- ldr r1, _080B12E8 @ =0x02019260
+ ldr r1, _080B12E8 @ =gSharedMem + 0x19260
adds r4, r0, r1
movs r0, 0
strb r0, [r4, 0x16]
@@ -12327,12 +12326,12 @@ _080B128A:
strb r1, [r4, 0x15]
b _080B1322
.align 2, 0
-_080B12E8: .4byte 0x02019260
+_080B12E8: .4byte gSharedMem + 0x19260
_080B12EC:
ldr r2, _080B1310 @ =gContestMoves
subs r0, r7, r6
lsls r0, 2
- ldr r1, _080B1314 @ =0x02019260
+ ldr r1, _080B1314 @ =gSharedMem + 0x19260
adds r3, r0, r1
ldrh r0, [r3, 0x6]
lsls r0, 3
@@ -12348,7 +12347,7 @@ _080B12EC:
b _080B1320
.align 2, 0
_080B1310: .4byte gContestMoves
-_080B1314: .4byte 0x02019260
+_080B1314: .4byte gSharedMem + 0x19260
_080B1318:
ldrb r1, [r3, 0x15]
movs r0, 0x11
@@ -12359,7 +12358,7 @@ _080B1320:
_080B1322:
subs r0, r7, r6
lsls r0, 2
- ldr r1, _080B139C @ =0x02019260
+ ldr r1, _080B139C @ =gSharedMem + 0x19260
mov r8, r1
adds r4, r0, r1
ldrb r1, [r4, 0x15]
@@ -12420,7 +12419,7 @@ _080B137A:
movs r0, 0x3C
b _080B13A6
.align 2, 0
-_080B139C: .4byte 0x02019260
+_080B139C: .4byte gSharedMem + 0x19260
_080B13A0:
movs r0, 0xA
b _080B13A6
@@ -12453,7 +12452,7 @@ _080B13CA:
_080B13D2:
subs r0, r7, r6
lsls r0, 2
- ldr r1, _080B13E8 @ =0x02019260
+ ldr r1, _080B13E8 @ =gSharedMem + 0x19260
adds r0, r1
strb r2, [r0, 0x1B]
_080B13DC:
@@ -12463,7 +12462,7 @@ _080B13DC:
pop {r0}
bx r0
.align 2, 0
-_080B13E8: .4byte 0x02019260
+_080B13E8: .4byte gSharedMem + 0x19260
thumb_func_end sub_80B114C
thumb_func_start sub_80B13EC
@@ -12473,12 +12472,12 @@ sub_80B13EC: @ 80B13EC
lsls r2, r0, 3
subs r2, r0
lsls r2, 2
- ldr r0, _080B1400 @ =0x02019260
+ ldr r0, _080B1400 @ =gSharedMem + 0x19260
adds r2, r0
strb r1, [r2, 0x13]
bx lr
.align 2, 0
-_080B1400: .4byte 0x02019260
+_080B1400: .4byte gSharedMem + 0x19260
thumb_func_end sub_80B13EC
thumb_func_start sub_80B1404
@@ -12488,12 +12487,12 @@ sub_80B1404: @ 80B1404
lsls r2, r0, 3
subs r2, r0
lsls r2, 2
- ldr r0, _080B1418 @ =0x02019260
+ ldr r0, _080B1418 @ =gSharedMem + 0x19260
adds r2, r0
strb r1, [r2, 0x14]
bx lr
.align 2, 0
-_080B1418: .4byte 0x02019260
+_080B1418: .4byte gSharedMem + 0x19260
thumb_func_end sub_80B1404
thumb_func_start sub_80B141C
@@ -12557,7 +12556,7 @@ sub_80B146C: @ 80B146C
lsls r1, r4, 3
subs r1, r4
lsls r1, 2
- ldr r4, _080B14D4 @ =0x02019260
+ ldr r4, _080B14D4 @ =gSharedMem + 0x19260
adds r1, r4
ldrh r2, [r1, 0x6]
movs r1, 0xD
@@ -12588,7 +12587,7 @@ sub_80B146C: @ 80B146C
_080B14C8: .4byte gStringVar1
_080B14CC: .4byte gContestMons + 0x2
_080B14D0: .4byte gStringVar2
-_080B14D4: .4byte 0x02019260
+_080B14D4: .4byte gSharedMem + 0x19260
_080B14D8: .4byte gMoveNames
_080B14DC: .4byte gContestMoves
_080B14E0: .4byte gStringVar3
@@ -12666,7 +12665,7 @@ sub_80B157C: @ 80B157C
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
- ldr r0, _080B1598 @ =0x02019260
+ ldr r0, _080B1598 @ =gSharedMem + 0x19260
adds r1, r0
ldrb r0, [r1, 0xC]
movs r2, 0x1
@@ -12676,7 +12675,7 @@ sub_80B157C: @ 80B157C
strh r0, [r1, 0x6]
bx lr
.align 2, 0
-_080B1598: .4byte 0x02019260
+_080B1598: .4byte gSharedMem + 0x19260
thumb_func_end sub_80B157C
thumb_func_start sub_80B159C
@@ -12707,7 +12706,7 @@ _080B15B8:
cmp r4, 0x3
ble _080B15B8
movs r4, 0
- ldr r7, _080B1604 @ =0x02019260
+ ldr r7, _080B1604 @ =gSharedMem + 0x19260
adds r5, r2, 0
movs r1, 0x1
mov r8, r1
@@ -12737,7 +12736,7 @@ _080B15E8:
b _080B163A
.align 2, 0
_080B1600: .4byte gUnknown_02038696
-_080B1604: .4byte 0x02019260
+_080B1604: .4byte gSharedMem + 0x19260
_080B1608:
mov r1, sp
adds r0, r1, r2
@@ -12809,7 +12808,7 @@ _080B1680:
cmp r4, 0x3
ble _080B15D6
movs r4, 0
- ldr r5, _080B16CC @ =0x020192d0
+ ldr r5, _080B16CC @ =gSharedMem + 0x192D0
adds r3, r5, 0
subs r3, 0x60
movs r6, 0xFF
@@ -12844,7 +12843,7 @@ _080B1692:
bx r0
.align 2, 0
_080B16C8: .4byte gUnknown_02038696
-_080B16CC: .4byte 0x020192d0
+_080B16CC: .4byte gSharedMem + 0x192D0
thumb_func_end sub_80B159C
thumb_func_start sub_80B16D0
@@ -12868,7 +12867,7 @@ sub_80B16D0: @ 80B16D0
strb r0, [r3]
ldr r0, _080B1708 @ =SpriteCallbackDummy
str r0, [r2, 0x1C]
- ldr r2, _080B170C @ =0x02019204
+ ldr r2, _080B170C @ =gSharedMem + 0x19204
ldrb r1, [r2, 0x6]
movs r0, 0x11
negs r0, r0
@@ -12879,7 +12878,7 @@ _080B1702:
bx r0
.align 2, 0
_080B1708: .4byte SpriteCallbackDummy
-_080B170C: .4byte 0x02019204
+_080B170C: .4byte gSharedMem + 0x19204
thumb_func_end sub_80B16D0
thumb_func_start sub_80B1710
@@ -12887,7 +12886,7 @@ sub_80B1710: @ 80B1710
push {r4,r5,lr}
lsls r0, 24
lsrs r1, r0, 24
- ldr r0, _080B172C @ =0x02019204
+ ldr r0, _080B172C @ =gSharedMem + 0x19204
ldrb r5, [r0, 0x12]
cmp r1, 0x8
bls _080B1720
@@ -12899,7 +12898,7 @@ _080B1720:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080B172C: .4byte 0x02019204
+_080B172C: .4byte gSharedMem + 0x19204
_080B1730: .4byte _080B1734
.align 2, 0
_080B1734:
@@ -13106,7 +13105,7 @@ _080B18E4:
adds r2, r4
ldr r0, _080B1920 @ =sub_80B16D0
str r0, [r2]
- ldr r2, _080B1924 @ =0x02019204
+ ldr r2, _080B1924 @ =gSharedMem + 0x19204
ldrb r0, [r2, 0x6]
movs r1, 0x10
orrs r0, r1
@@ -13119,7 +13118,7 @@ _080B1914: .4byte gSprites
_080B1918: .4byte 0x000003ff
_080B191C: .4byte 0xfffffc00
_080B1920: .4byte sub_80B16D0
-_080B1924: .4byte 0x02019204
+_080B1924: .4byte gSharedMem + 0x19204
thumb_func_end sub_80B1710
thumb_func_start sub_80B1928
@@ -13130,7 +13129,7 @@ sub_80B1928: @ 80B1928
mov r5, r8
push {r5-r7}
movs r5, 0
- ldr r6, _080B19BC @ =0x02019204
+ ldr r6, _080B19BC @ =gSharedMem + 0x19204
ldr r0, _080B19C0 @ =gSprites
mov r10, r0
movs r1, 0x58
@@ -13199,7 +13198,7 @@ _080B19A8:
pop {r0}
bx r0
.align 2, 0
-_080B19BC: .4byte 0x02019204
+_080B19BC: .4byte gSharedMem + 0x19204
_080B19C0: .4byte gSprites
_080B19C4: .4byte 0x06010000
_080B19C8: .4byte REG_BG0CNT
@@ -13239,7 +13238,7 @@ contest_get_move_excitement: @ 80B19FC
ldrb r1, [r0, 0x1]
lsls r1, 29
lsrs r1, 29
- ldr r0, _080B1A28 @ =gScriptContestCategory
+ ldr r0, _080B1A28 @ =gSpecialVar_ContestCategory
ldrh r2, [r0]
lsls r0, r2, 2
adds r0, r2
@@ -13251,7 +13250,7 @@ contest_get_move_excitement: @ 80B19FC
.align 2, 0
_080B1A20: .4byte gContestExcitementTable
_080B1A24: .4byte gContestMoves
-_080B1A28: .4byte gScriptContestCategory
+_080B1A28: .4byte gSpecialVar_ContestCategory
thumb_func_end contest_get_move_excitement
thumb_func_start sub_80B1A2C
@@ -13346,7 +13345,7 @@ _080B1AD6:
movs r1, 0x1
eors r0, r1
strh r0, [r4, 0xE]
- ldr r0, _080B1B10 @ =0x02019204
+ ldr r0, _080B1B10 @ =gSharedMem + 0x19204
ldrb r0, [r0, 0x13]
lsls r0, 24
asrs r0, 24
@@ -13370,7 +13369,7 @@ _080B1B06:
bx r0
.align 2, 0
_080B1B0C: .4byte 0x00007fff
-_080B1B10: .4byte 0x02019204
+_080B1B10: .4byte gSharedMem + 0x19204
thumb_func_end c3_08130B10
thumb_func_start sub_80B1B14
@@ -13380,7 +13379,7 @@ sub_80B1B14: @ 80B1B14
movs r1, 0xA
bl CreateTask
ldr r4, _080B1B5C @ =gSprites
- ldr r3, _080B1B60 @ =0x02019204
+ ldr r3, _080B1B60 @ =gSharedMem + 0x19204
adds r2, r3, 0
adds r2, 0x58
ldrb r1, [r2]
@@ -13411,7 +13410,7 @@ sub_80B1B14: @ 80B1B14
.align 2, 0
_080B1B58: .4byte sub_80B1B68
_080B1B5C: .4byte gSprites
-_080B1B60: .4byte 0x02019204
+_080B1B60: .4byte gSharedMem + 0x19204
_080B1B64: .4byte 0x0000ffba
thumb_func_end sub_80B1B14
@@ -13421,7 +13420,7 @@ sub_80B1B68: @ 80B1B68
lsls r0, 24
lsrs r0, 24
adds r3, r0, 0
- ldr r4, _080B1BD0 @ =0x02019204
+ ldr r4, _080B1BD0 @ =gSharedMem + 0x19204
adds r0, r4, 0
adds r0, 0x58
ldrb r1, [r0]
@@ -13471,7 +13470,7 @@ _080B1BCA:
pop {r0}
bx r0
.align 2, 0
-_080B1BD0: .4byte 0x02019204
+_080B1BD0: .4byte gSharedMem + 0x19204
_080B1BD4: .4byte gSprites
_080B1BD8: .4byte gTasks
thumb_func_end sub_80B1B68
@@ -13480,7 +13479,7 @@ _080B1BD8: .4byte gTasks
sub_80B1BDC: @ 80B1BDC
push {r4-r6,lr}
ldr r6, _080B1C04 @ =gSprites
- ldr r4, _080B1C08 @ =0x02019204
+ ldr r4, _080B1C08 @ =gSharedMem + 0x19204
adds r5, r4, 0
adds r5, 0x58
ldrb r0, [r5]
@@ -13500,7 +13499,7 @@ sub_80B1BDC: @ 80B1BDC
b _080B1C28
.align 2, 0
_080B1C04: .4byte gSprites
-_080B1C08: .4byte 0x02019204
+_080B1C08: .4byte gSharedMem + 0x19204
_080B1C0C:
ldr r0, _080B1C30 @ =sub_80B1C34
movs r1, 0xA
@@ -13530,7 +13529,7 @@ sub_80B1C34: @ 80B1C34
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
- ldr r5, _080B1CAC @ =0x02019204
+ ldr r5, _080B1CAC @ =gSharedMem + 0x19204
adds r0, r5, 0
adds r0, 0x58
ldrb r1, [r0]
@@ -13588,7 +13587,7 @@ _080B1CA6:
pop {r0}
bx r0
.align 2, 0
-_080B1CAC: .4byte 0x02019204
+_080B1CAC: .4byte gSharedMem + 0x19204
_080B1CB0: .4byte gSprites
_080B1CB4: .4byte gTasks
_080B1CB8: .4byte 0x0000ffba
@@ -13613,7 +13612,7 @@ sub_80B1CBC: @ 80B1CBC
lsls r4, 24
asrs r4, 24
strh r4, [r1, 0x8]
- ldr r2, _080B1CF8 @ =0x02019204
+ ldr r2, _080B1CF8 @ =gSharedMem + 0x19204
ldrb r0, [r2, 0x6]
movs r1, 0x20
orrs r0, r1
@@ -13624,7 +13623,7 @@ sub_80B1CBC: @ 80B1CBC
.align 2, 0
_080B1CF0: .4byte sub_80B1CFC
_080B1CF4: .4byte gTasks
-_080B1CF8: .4byte 0x02019204
+_080B1CF8: .4byte gSharedMem + 0x19204
thumb_func_end sub_80B1CBC
thumb_func_start sub_80B1CFC
@@ -13656,7 +13655,7 @@ _080B1D2A:
bl sub_80B1B14
b _080B1D44
_080B1D30:
- ldr r0, _080B1D4C @ =0x02019204
+ ldr r0, _080B1D4C @ =gSharedMem + 0x19204
ldrb r1, [r0, 0x6]
movs r0, 0x40
ands r0, r1
@@ -13671,7 +13670,7 @@ _080B1D44:
strh r0, [r4, 0x1C]
b _080B1D78
.align 2, 0
-_080B1D4C: .4byte 0x02019204
+_080B1D4C: .4byte gSharedMem + 0x19204
_080B1D50:
ldrh r0, [r4, 0x1E]
adds r1, r0, 0x1
@@ -13683,7 +13682,7 @@ _080B1D50:
movs r0, 0
strh r0, [r4, 0x1E]
bl sub_80B1928
- ldr r2, _080B1D80 @ =0x02019204
+ ldr r2, _080B1D80 @ =gSharedMem + 0x19204
ldrb r1, [r2, 0x6]
movs r0, 0x21
negs r0, r0
@@ -13696,13 +13695,13 @@ _080B1D78:
pop {r0}
bx r0
.align 2, 0
-_080B1D80: .4byte 0x02019204
+_080B1D80: .4byte gSharedMem + 0x19204
thumb_func_end sub_80B1CFC
thumb_func_start unref_sub_80B1D84
unref_sub_80B1D84: @ 80B1D84
ldr r3, _080B1DB0 @ =gSprites
- ldr r2, _080B1DB4 @ =0x02019204
+ ldr r2, _080B1DB4 @ =gSharedMem + 0x19204
adds r2, 0x58
ldrb r1, [r2]
lsls r0, r1, 4
@@ -13725,13 +13724,13 @@ unref_sub_80B1D84: @ 80B1D84
bx lr
.align 2, 0
_080B1DB0: .4byte gSprites
-_080B1DB4: .4byte 0x02019204
+_080B1DB4: .4byte gSharedMem + 0x19204
thumb_func_end unref_sub_80B1D84
thumb_func_start unref_sub_80B1DB8
unref_sub_80B1DB8: @ 80B1DB8
ldr r2, _080B1DD4 @ =gSprites
- ldr r0, _080B1DD8 @ =0x02019204
+ ldr r0, _080B1DD8 @ =gSharedMem + 0x19204
adds r0, 0x58
ldrb r1, [r0]
lsls r0, r1, 4
@@ -13746,7 +13745,7 @@ unref_sub_80B1DB8: @ 80B1DB8
bx lr
.align 2, 0
_080B1DD4: .4byte gSprites
-_080B1DD8: .4byte 0x02019204
+_080B1DD8: .4byte gSharedMem + 0x19204
thumb_func_end unref_sub_80B1DB8
thumb_func_start sub_80B1DDC
@@ -13755,7 +13754,7 @@ sub_80B1DDC: @ 80B1DDC
ldr r0, _080B1DF4 @ =sub_80B1DFC
movs r1, 0xF
bl CreateTask
- ldr r2, _080B1DF8 @ =0x02019204
+ ldr r2, _080B1DF8 @ =gSharedMem + 0x19204
ldrb r0, [r2, 0x6]
movs r1, 0x80
orrs r0, r1
@@ -13764,7 +13763,7 @@ sub_80B1DDC: @ 80B1DDC
bx r0
.align 2, 0
_080B1DF4: .4byte sub_80B1DFC
-_080B1DF8: .4byte 0x02019204
+_080B1DF8: .4byte gSharedMem + 0x19204
thumb_func_end sub_80B1DDC
thumb_func_start sub_80B1DFC
@@ -13791,7 +13790,7 @@ sub_80B1DFC: @ 80B1DFC
ldrsh r0, [r3, r1]
cmp r0, 0
bne _080B1E50
- ldr r1, _080B1E40 @ =0x02016800
+ ldr r1, _080B1E40 @ =gSharedMem + 0x16800
ldr r2, _080B1E44 @ =0x06002000
ldr r0, _080B1E48 @ =0x040000d4
str r1, [r0]
@@ -13802,12 +13801,12 @@ sub_80B1DFC: @ 80B1DFC
b _080B1E66
.align 2, 0
_080B1E3C: .4byte gTasks
-_080B1E40: .4byte 0x02016800
+_080B1E40: .4byte gSharedMem + 0x16800
_080B1E44: .4byte 0x06002000
_080B1E48: .4byte 0x040000d4
_080B1E4C: .4byte 0x84000400
_080B1E50:
- ldr r1, _080B1E94 @ =0x02015800
+ ldr r1, _080B1E94 @ =gSharedMem + 0x15800
ldr r2, _080B1E98 @ =0x06002000
ldr r0, _080B1E9C @ =0x040000d4
str r1, [r0]
@@ -13831,7 +13830,7 @@ _080B1E66:
ldrsh r0, [r0, r1]
cmp r0, 0x9
bne _080B1E8E
- ldr r2, _080B1EA4 @ =0x02019204
+ ldr r2, _080B1EA4 @ =gSharedMem + 0x19204
ldrb r1, [r2, 0x6]
movs r0, 0x7F
ands r0, r1
@@ -13843,11 +13842,11 @@ _080B1E8E:
pop {r0}
bx r0
.align 2, 0
-_080B1E94: .4byte 0x02015800
+_080B1E94: .4byte gSharedMem + 0x15800
_080B1E98: .4byte 0x06002000
_080B1E9C: .4byte 0x040000d4
_080B1EA0: .4byte 0x84000400
-_080B1EA4: .4byte 0x02019204
+_080B1EA4: .4byte gSharedMem + 0x19204
thumb_func_end sub_80B1DFC
thumb_func_start sub_80B1EA8
@@ -13872,7 +13871,7 @@ sub_80B1EA8: @ 80B1EA8
cmp r4, 0
ble _080B1EF0
movs r5, 0
- ldr r2, _080B1EEC @ =0x02019204
+ ldr r2, _080B1EEC @ =gSharedMem + 0x19204
movs r1, 0x13
ldrsb r1, [r2, r1]
lsls r0, r1, 1
@@ -13883,9 +13882,9 @@ sub_80B1EA8: @ 80B1EA8
.align 2, 0
_080B1EE4: .4byte sub_80B1F4C
_080B1EE8: .4byte 0x0000237e
-_080B1EEC: .4byte 0x02019204
+_080B1EEC: .4byte gSharedMem + 0x19204
_080B1EF0:
- ldr r2, _080B1F04 @ =0x02019204
+ ldr r2, _080B1F04 @ =gSharedMem + 0x19204
movs r1, 0x13
ldrsb r1, [r2, r1]
lsls r0, r1, 1
@@ -13895,7 +13894,7 @@ _080B1EF0:
movs r3, 0
b _080B1F1E
.align 2, 0
-_080B1F04: .4byte 0x02019204
+_080B1F04: .4byte gSharedMem + 0x19204
_080B1F08:
movs r7, 0
lsls r0, r5, 24
@@ -13909,7 +13908,7 @@ _080B1F18:
movs r5, 0xC
movs r3, 0
_080B1F1C:
- ldr r2, _080B1F44 @ =0x02019204
+ ldr r2, _080B1F44 @ =gSharedMem + 0x19204
_080B1F1E:
ldr r1, _080B1F48 @ =gTasks
lsls r0, r6, 2
@@ -13930,7 +13929,7 @@ _080B1F1E:
pop {r0}
bx r0
.align 2, 0
-_080B1F44: .4byte 0x02019204
+_080B1F44: .4byte gSharedMem + 0x19204
_080B1F48: .4byte gTasks
thumb_func_end sub_80B1EA8
@@ -13988,7 +13987,7 @@ _080B1F84:
bne _080B1FC4
adds r0, r5, 0
bl DestroyTask
- ldr r2, _080B1FCC @ =0x02019204
+ ldr r2, _080B1FCC @ =gSharedMem + 0x19204
ldrb r1, [r2, 0x7]
movs r0, 0x2
negs r0, r0
@@ -13999,7 +13998,7 @@ _080B1FC4:
pop {r0}
bx r0
.align 2, 0
-_080B1FCC: .4byte 0x02019204
+_080B1FCC: .4byte gSharedMem + 0x19204
thumb_func_end sub_80B1F4C
thumb_func_start sub_80B1FD0
@@ -14011,7 +14010,7 @@ sub_80B1FD0: @ 80B1FD0
lsrs r0, 24
mov r8, r0
movs r5, 0
- ldr r0, _080B204C @ =0x02019260
+ ldr r0, _080B204C @ =gSharedMem + 0x19260
ldr r6, _080B2050 @ =gSprites
adds r4, r0, 0
adds r4, 0xD8
@@ -14065,7 +14064,7 @@ _080B1FE8:
ands r1, r2
b _080B2076
.align 2, 0
-_080B204C: .4byte 0x02019260
+_080B204C: .4byte gSharedMem + 0x19260
_080B2050: .4byte gSprites
_080B2054: .4byte 0x060100a0
_080B2058: .4byte REG_BG0HOFS
@@ -14103,7 +14102,7 @@ sub_80B208C: @ 80B208C
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
- ldr r0, _080B20B0 @ =0x02019260
+ ldr r0, _080B20B0 @ =gSharedMem + 0x19260
adds r2, r1, r0
ldrb r1, [r2, 0x10]
movs r0, 0xC0
@@ -14116,7 +14115,7 @@ sub_80B208C: @ 80B208C
adds r0, r1
b _080B20BA
.align 2, 0
-_080B20B0: .4byte 0x02019260
+_080B20B0: .4byte gSharedMem + 0x19260
_080B20B4: .4byte gContestNextTurnNumbersGfx
_080B20B8:
ldr r0, _080B20C0 @ =gContestNextTurnRandomGfx
@@ -14131,7 +14130,7 @@ _080B20C0: .4byte gContestNextTurnRandomGfx
sub_80B20C4: @ 80B20C4
push {r4-r7,lr}
movs r6, 0
- ldr r7, _080B2134 @ =0x020192dd
+ ldr r7, _080B2134 @ =gSharedMem + 0x192DD
_080B20CA:
adds r0, r6, r7
ldrb r0, [r0]
@@ -14184,7 +14183,7 @@ _080B2126:
pop {r0}
bx r0
.align 2, 0
-_080B2134: .4byte 0x020192dd
+_080B2134: .4byte gSharedMem + 0x192DD
_080B2138: .4byte gUnknown_02038696
_080B213C: .4byte 0x0600c028
_080B2140: .4byte 0x0600c02a
@@ -14200,7 +14199,7 @@ sub_80B214C: @ 80B214C
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
- ldr r0, _080B2178 @ =0x02019260
+ ldr r0, _080B2178 @ =gSharedMem + 0x19260
adds r2, r1, r0
ldrb r1, [r2, 0x15]
movs r3, 0x1
@@ -14217,7 +14216,7 @@ _080B2172:
movs r0, 0
b _080B217E
.align 2, 0
-_080B2178: .4byte 0x02019260
+_080B2178: .4byte gSharedMem + 0x19260
_080B217C:
movs r0, 0x1
_080B217E:
@@ -14278,7 +14277,7 @@ sub_80B2184: @ 80B2184
ldr r6, _080B2270 @ =gSprites
adds r7, r2, 0
movs r5, 0x4
- ldr r3, _080B2274 @ =0x02019338
+ ldr r3, _080B2274 @ =gSharedMem + 0x19338
_080B21EE:
ldrb r0, [r3]
lsls r1, r0, 4
@@ -14339,7 +14338,7 @@ _080B2264: .4byte 0x040000d4
_080B2268: .4byte 0x85000400
_080B226C: .4byte gUnknown_08D17C3C
_080B2270: .4byte gSprites
-_080B2274: .4byte 0x02019338
+_080B2274: .4byte gSharedMem + 0x19338
_080B2278: .4byte REG_BG2CNT
_080B227C: .4byte REG_BG0CNT
thumb_func_end sub_80B2184
@@ -14425,7 +14424,7 @@ _080B22A4:
movs r4, 0
ldr r5, _080B2374 @ =gSprites
adds r6, r3, 0
- ldr r3, _080B2378 @ =0x02019338
+ ldr r3, _080B2378 @ =gSharedMem + 0x19338
_080B231E:
ldrb r0, [r3]
lsls r1, r0, 4
@@ -14464,7 +14463,7 @@ _080B2368: .4byte 0x85000400
_080B236C: .4byte 0x0600f000
_080B2370: .4byte REG_BG1CNT
_080B2374: .4byte gSprites
-_080B2378: .4byte 0x02019338
+_080B2378: .4byte gSharedMem + 0x19338
thumb_func_end sub_80B2280
thumb_func_start sub_80B237C
@@ -14566,7 +14565,7 @@ _080B2428:
_080B2432:
movs r2, 0
adds r6, r3, 0
- ldr r5, _080B2470 @ =0x02019218
+ ldr r5, _080B2470 @ =gSharedMem + 0x19218
ldr r3, _080B2474 @ =gUnknown_02038696
_080B243A:
adds r0, r2, r5
@@ -14591,7 +14590,7 @@ _080B243A:
strh r0, [r1, 0x8]
b _080B24FC
.align 2, 0
-_080B2470: .4byte 0x02019218
+_080B2470: .4byte gSharedMem + 0x19218
_080B2474: .4byte gUnknown_02038696
_080B2478: .4byte gTasks
_080B247C:
@@ -14600,7 +14599,7 @@ _080B247C:
ands r1, r0
cmp r1, 0
beq _080B24D0
- ldr r2, _080B24C4 @ =0x02019204
+ ldr r2, _080B24C4 @ =gSharedMem + 0x19204
ldrb r0, [r2, 0x7]
movs r1, 0x4
orrs r0, r1
@@ -14626,14 +14625,14 @@ _080B249E:
b _080B24FC
.align 2, 0
_080B24C0: .4byte gIsLinkContest
-_080B24C4: .4byte 0x02019204
+_080B24C4: .4byte gSharedMem + 0x19204
_080B24C8: .4byte sub_80C8C80
_080B24CC: .4byte sub_80AD8DC
_080B24D0:
bl sub_80AF438
b _080B24E2
_080B24D6:
- ldr r0, _080B24E8 @ =0x02019204
+ ldr r0, _080B24E8 @ =gSharedMem + 0x19204
ldrb r1, [r0, 0x7]
movs r0, 0x4
ands r0, r1
@@ -14644,7 +14643,7 @@ _080B24E2:
strh r0, [r5, 0x8]
b _080B24FC
.align 2, 0
-_080B24E8: .4byte 0x02019204
+_080B24E8: .4byte gSharedMem + 0x19204
_080B24EC:
bl sub_80AF120
bl sub_80AEB30
@@ -14799,7 +14798,7 @@ sub_80B25E4: @ 80B25E4
_080B25F6:
bl AllocOamMatrix
lsls r1, r6, 2
- ldr r2, _080B26B8 @ =0x02019338
+ ldr r2, _080B26B8 @ =gSharedMem + 0x19338
mov r8, r2
adds r4, r1, r2
ldrb r1, [r4]
@@ -14890,7 +14889,7 @@ _080B267A:
bx r0
.align 2, 0
_080B26B4: .4byte gSprites
-_080B26B8: .4byte 0x02019338
+_080B26B8: .4byte gSharedMem + 0x19338
_080B26BC: .4byte sub_80B26C8
_080B26C0: .4byte gTasks
_080B26C4: .4byte 0xfffffecc
@@ -14902,7 +14901,7 @@ sub_80B26C8: @ 80B26C8
lsls r0, 24
lsrs r6, r0, 24
ldr r2, _080B2750 @ =gSprites
- ldr r4, _080B2754 @ =0x02019338
+ ldr r4, _080B2754 @ =gSharedMem + 0x19338
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
@@ -14943,7 +14942,7 @@ _080B2718:
movs r4, 0
_080B271A:
lsls r0, r4, 2
- ldr r5, _080B2754 @ =0x02019338
+ ldr r5, _080B2754 @ =gSharedMem + 0x19338
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
@@ -14970,7 +14969,7 @@ _080B274A:
bx r0
.align 2, 0
_080B2750: .4byte gSprites
-_080B2754: .4byte 0x02019338
+_080B2754: .4byte gSharedMem + 0x19338
_080B2758: .4byte gTasks
_080B275C: .4byte 0xfffffecc
thumb_func_end sub_80B26C8
@@ -15016,7 +15015,7 @@ sub_80B2790: @ 80B2790
lsls r0, r6, 3
subs r0, r6
lsls r0, 2
- ldr r4, _080B27F0 @ =0x02019260
+ ldr r4, _080B27F0 @ =gSharedMem + 0x19260
adds r0, r4
ldrh r0, [r0, 0x6]
bl sub_80B2760
@@ -15055,7 +15054,7 @@ _080B27D0:
beq _080B2898
b _080B28BE
.align 2, 0
-_080B27F0: .4byte 0x02019260
+_080B27F0: .4byte gSharedMem + 0x19260
_080B27F4: .4byte gContestMons
_080B27F8: .4byte gBattleMonForms
_080B27FC:
@@ -15103,7 +15102,7 @@ _080B2848:
lsls r0, r6, 3
subs r0, r6
lsls r0, 2
- ldr r4, _080B2878 @ =0x02019260
+ ldr r4, _080B2878 @ =gSharedMem + 0x19260
adds r0, r4
ldrb r5, [r0, 0x1B]
ldr r6, _080B287C @ =gContestMons
@@ -15123,7 +15122,7 @@ _080B2848:
strb r0, [r4, 0x4]
b _080B28BE
.align 2, 0
-_080B2878: .4byte 0x02019260
+_080B2878: .4byte gSharedMem + 0x19260
_080B287C: .4byte gContestMons
_080B2880:
ldr r1, _080B2888 @ =gHappinessMoveAnim
@@ -15138,7 +15137,7 @@ _080B288C:
.align 2, 0
_080B2894: .4byte gHappinessMoveAnim
_080B2898:
- ldr r0, _080B28B0 @ =0x02019204
+ ldr r0, _080B28B0 @ =gSharedMem + 0x19204
adds r2, r0, 0
adds r2, 0x5A
ldrb r1, [r2]
@@ -15150,7 +15149,7 @@ _080B2898:
strb r1, [r0]
b _080B28BE
.align 2, 0
-_080B28B0: .4byte 0x02019204
+_080B28B0: .4byte gSharedMem + 0x19204
_080B28B4: .4byte gUnknown_0202F7C4
_080B28B8:
ldr r1, _080B28C8 @ =gUnknown_0202F7C4
@@ -15169,7 +15168,7 @@ _080B28C8: .4byte gUnknown_0202F7C4
thumb_func_start sub_80B28CC
sub_80B28CC: @ 80B28CC
push {r4,lr}
- ldr r4, _080B28EC @ =0x02019348
+ ldr r4, _080B28EC @ =gSharedMem + 0x19348
adds r0, r4, 0
movs r1, 0
movs r2, 0x14
@@ -15185,7 +15184,7 @@ _080B28E6:
pop {r0}
bx r0
.align 2, 0
-_080B28EC: .4byte 0x02019348
+_080B28EC: .4byte gSharedMem + 0x19348
thumb_func_end sub_80B28CC
thumb_func_start sub_80B28F0
@@ -15194,7 +15193,7 @@ sub_80B28F0: @ 80B28F0
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r6, _080B2924 @ =0x02019348
+ ldr r6, _080B2924 @ =gSharedMem + 0x19348
strb r4, [r6, 0x5]
ldr r5, _080B2928 @ =gContestMons
lsls r4, 6
@@ -15215,7 +15214,7 @@ sub_80B28F0: @ 80B28F0
pop {r0}
bx r0
.align 2, 0
-_080B2924: .4byte 0x02019348
+_080B2924: .4byte gSharedMem + 0x19348
_080B2928: .4byte gContestMons
thumb_func_end sub_80B28F0
@@ -15401,7 +15400,7 @@ _080B2AB6:
_080B2AC8: .4byte gUnknown_02038690
_080B2ACC: .4byte gContestPlayerMonIndex
_080B2AD0:
- ldr r0, _080B2AE4 @ =gScriptContestCategory
+ ldr r0, _080B2AE4 @ =gSpecialVar_ContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bhi _080B2B16
@@ -15411,7 +15410,7 @@ _080B2AD0:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080B2AE4: .4byte gScriptContestCategory
+_080B2AE4: .4byte gSpecialVar_ContestCategory
_080B2AE8: .4byte _080B2AEC
.align 2, 0
_080B2AEC:
@@ -15492,7 +15491,7 @@ _080B2B16:
mov r1, r9
cmp r1, 0xFF
beq _080B2BB8
- ldr r0, _080B2BB0 @ =gScriptContestCategory
+ ldr r0, _080B2BB0 @ =gSpecialVar_ContestCategory
ldrh r1, [r0]
ldr r0, _080B2BB4 @ =0x00002e06
add r0, r8
@@ -15505,7 +15504,7 @@ _080B2BA0: .4byte gContestMons
_080B2BA4: .4byte 0x00002e04
_080B2BA8: .4byte 0x00002e07
_080B2BAC: .4byte 0x00002e12
-_080B2BB0: .4byte gScriptContestCategory
+_080B2BB0: .4byte gSpecialVar_ContestCategory
_080B2BB4: .4byte 0x00002e06
_080B2BB8:
ldr r0, _080B2BC0 @ =0x00002e06
@@ -15515,7 +15514,7 @@ _080B2BB8:
.align 2, 0
_080B2BC0: .4byte 0x00002e06
_080B2BC4:
- ldr r5, _080B2C14 @ =0x02015de0
+ ldr r5, _080B2C14 @ =gSharedMem + 0x15DE0
ldr r2, _080B2C18 @ =gContestMons
lsls r4, r6, 6
adds r0, r2, 0
@@ -15554,7 +15553,7 @@ _080B2BC4:
bl StringCopy
b _080B2C32
.align 2, 0
-_080B2C14: .4byte 0x02015de0
+_080B2C14: .4byte gSharedMem + 0x15DE0
_080B2C18: .4byte gContestMons
_080B2C1C: .4byte gIsLinkContest
_080B2C20: .4byte gLinkPlayers + 0x8
@@ -15566,7 +15565,7 @@ _080B2C24:
adds r1, r4, r1
bl StringCopy
_080B2C32:
- ldr r0, _080B2C48 @ =0x02015de0
+ ldr r0, _080B2C48 @ =gSharedMem + 0x15DE0
strb r7, [r0, 0xA]
_080B2C36:
movs r0, 0x1
@@ -15579,7 +15578,7 @@ _080B2C38:
pop {r1}
bx r1
.align 2, 0
-_080B2C48: .4byte 0x02015de0
+_080B2C48: .4byte gSharedMem + 0x15DE0
thumb_func_end sub_80B2A7C
thumb_func_start sub_80B2C4C
@@ -15659,7 +15658,7 @@ _080B2CCA:
.align 2, 0
_080B2CD0: .4byte gSaveBlock1 + 0x2DFC
_080B2CD4:
- ldr r0, _080B2CE8 @ =gScriptContestCategory
+ ldr r0, _080B2CE8 @ =gSpecialVar_ContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bhi _080B2D14
@@ -15669,7 +15668,7 @@ _080B2CD4:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080B2CE8: .4byte gScriptContestCategory
+_080B2CE8: .4byte gSpecialVar_ContestCategory
_080B2CEC: .4byte _080B2CF0
.align 2, 0
_080B2CF0:
diff --git a/asm/contest_ai.s b/asm/contest_ai.s
index c7a67fed9..5cf1e0b62 100644
--- a/asm/contest_ai.s
+++ b/asm/contest_ai.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -11,7 +10,7 @@ sub_81288F4: @ 81288F4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r4, _0812893C @ =0x020192e4
+ ldr r4, _0812893C @ =gSharedMem + 0x192E4
adds r0, r4, 0
movs r1, 0
movs r2, 0x44
@@ -45,14 +44,14 @@ _08128910:
pop {r0}
bx r0
.align 2, 0
-_0812893C: .4byte 0x020192e4
+_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 @ =0x020192e4
+ ldr r1, _081289A8 @ =gSharedMem + 0x192E4
ldr r0, [r1, 0x14]
cmp r0, 0
beq _08128974
@@ -78,7 +77,7 @@ _08128962:
bne _08128952
_08128974:
movs r6, 0x3
- ldr r5, _081289A8 @ =0x020192e4
+ ldr r5, _081289A8 @ =gSharedMem + 0x192E4
_08128978:
bl Random
adds r4, r0, 0
@@ -106,13 +105,13 @@ _0812899C:
pop {r1}
bx r1
.align 2, 0
-_081289A8: .4byte 0x020192e4
+_081289A8: .4byte gSharedMem + 0x192E4
thumb_func_end sub_8128944
thumb_func_start sub_81289AC
sub_81289AC: @ 81289AC
push {r4-r6,lr}
- ldr r1, _081289F4 @ =0x020192e4
+ ldr r1, _081289F4 @ =gSharedMem + 0x192E4
ldrb r0, [r1]
adds r2, r1, 0
cmp r0, 0x2
@@ -149,7 +148,7 @@ _081289BE:
strh r0, [r4, 0x2]
b _08128A06
.align 2, 0
-_081289F4: .4byte 0x020192e4
+_081289F4: .4byte gSharedMem + 0x192E4
_081289F8: .4byte gAIScriptPtr
_081289FC: .4byte gUnknown_0203858E
_08128A00: .4byte gContestAIs
@@ -184,7 +183,7 @@ _08128A2C:
orrs r0, r1
strb r0, [r4, 0x9]
_08128A3C:
- ldr r2, _08128A5C @ =0x020192e4
+ ldr r2, _08128A5C @ =gSharedMem + 0x192E4
ldrb r1, [r2, 0x9]
movs r0, 0x1
ands r0, r1
@@ -201,7 +200,7 @@ _08128A3C:
strb r1, [r2]
b _08128A66
.align 2, 0
-_08128A5C: .4byte 0x020192e4
+_08128A5C: .4byte gSharedMem + 0x192E4
_08128A60:
ldrb r0, [r2]
adds r0, 0x1
@@ -228,7 +227,7 @@ sub_8128A7C: @ 8128A7C
lsls r0, 24
lsrs r2, r0, 24
movs r1, 0
- ldr r3, _08128AA4 @ =0x020192d0
+ ldr r3, _08128AA4 @ =gSharedMem + 0x192D0
ldrb r0, [r3]
cmp r0, r2
beq _08128A9A
@@ -246,13 +245,13 @@ _08128A9A:
pop {r1}
bx r1
.align 2, 0
-_08128AA4: .4byte 0x020192d0
+_08128AA4: .4byte gSharedMem + 0x192D0
thumb_func_end sub_8128A7C
thumb_func_start ContestAICmd_unk_00
ContestAICmd_unk_00: @ 8128AA8
push {lr}
- ldr r2, _08128AD0 @ =0x020192e4
+ ldr r2, _08128AD0 @ =gSharedMem + 0x192E4
adds r1, r2, 0x5
ldrb r0, [r2, 0x4]
adds r1, r0
@@ -271,7 +270,7 @@ ContestAICmd_unk_00: @ 8128AA8
movs r1, 0xFF
b _08128ADE
.align 2, 0
-_08128AD0: .4byte 0x020192e4
+_08128AD0: .4byte gSharedMem + 0x192E4
_08128AD4: .4byte gAIScriptPtr
_08128AD8:
cmp r0, 0
@@ -291,7 +290,7 @@ _08128ADE:
thumb_func_start ContestAICmd_get_turn
ContestAICmd_get_turn: @ 8128AF0
- ldr r1, _08128B04 @ =0x020192e4
+ ldr r1, _08128B04 @ =gSharedMem + 0x192E4
adds r0, r1, 0
subs r0, 0xE0
ldrb r0, [r0, 0x1]
@@ -302,7 +301,7 @@ ContestAICmd_get_turn: @ 8128AF0
str r0, [r1]
bx lr
.align 2, 0
-_08128B04: .4byte 0x020192e4
+_08128B04: .4byte gSharedMem + 0x192E4
_08128B08: .4byte gAIScriptPtr
thumb_func_end ContestAICmd_get_turn
@@ -310,7 +309,7 @@ _08128B08: .4byte gAIScriptPtr
ContestAICmd_unk_02: @ 8128B0C
push {lr}
bl ContestAICmd_get_turn
- ldr r0, _08128B3C @ =0x020192e4
+ ldr r0, _08128B3C @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08128B40 @ =gAIScriptPtr
@@ -331,7 +330,7 @@ ContestAICmd_unk_02: @ 8128B0C
str r1, [r3]
b _08128B48
.align 2, 0
-_08128B3C: .4byte 0x020192e4
+_08128B3C: .4byte gSharedMem + 0x192E4
_08128B40: .4byte gAIScriptPtr
_08128B44:
adds r0, r2, 0x5
@@ -345,7 +344,7 @@ _08128B48:
ContestAICmd_unk_03: @ 8128B4C
push {lr}
bl ContestAICmd_get_turn
- ldr r0, _08128B7C @ =0x020192e4
+ ldr r0, _08128B7C @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08128B80 @ =gAIScriptPtr
@@ -366,7 +365,7 @@ ContestAICmd_unk_03: @ 8128B4C
str r1, [r3]
b _08128B88
.align 2, 0
-_08128B7C: .4byte 0x020192e4
+_08128B7C: .4byte gSharedMem + 0x192E4
_08128B80: .4byte gAIScriptPtr
_08128B84:
adds r0, r2, 0x5
@@ -380,7 +379,7 @@ _08128B88:
ContestAICmd_unk_04: @ 8128B8C
push {lr}
bl ContestAICmd_get_turn
- ldr r0, _08128BBC @ =0x020192e4
+ ldr r0, _08128BBC @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08128BC0 @ =gAIScriptPtr
@@ -401,7 +400,7 @@ ContestAICmd_unk_04: @ 8128B8C
str r1, [r3]
b _08128BC8
.align 2, 0
-_08128BBC: .4byte 0x020192e4
+_08128BBC: .4byte gSharedMem + 0x192E4
_08128BC0: .4byte gAIScriptPtr
_08128BC4:
adds r0, r2, 0x5
@@ -415,7 +414,7 @@ _08128BC8:
ContestAICmd_unk_05: @ 8128BCC
push {lr}
bl ContestAICmd_get_turn
- ldr r0, _08128BFC @ =0x020192e4
+ ldr r0, _08128BFC @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08128C00 @ =gAIScriptPtr
@@ -436,7 +435,7 @@ ContestAICmd_unk_05: @ 8128BCC
str r1, [r3]
b _08128C08
.align 2, 0
-_08128BFC: .4byte 0x020192e4
+_08128BFC: .4byte gSharedMem + 0x192E4
_08128C00: .4byte gAIScriptPtr
_08128C04:
adds r0, r2, 0x5
@@ -448,7 +447,7 @@ _08128C08:
thumb_func_start ContestAICmd_get_excitement
ContestAICmd_get_excitement: @ 8128C0C
- ldr r1, _08128C24 @ =0x020192e4
+ ldr r1, _08128C24 @ =gSharedMem + 0x192E4
adds r0, r1, 0
subs r0, 0xE0
ldrb r0, [r0, 0x13]
@@ -461,7 +460,7 @@ ContestAICmd_get_excitement: @ 8128C0C
str r0, [r1]
bx lr
.align 2, 0
-_08128C24: .4byte 0x020192e4
+_08128C24: .4byte gSharedMem + 0x192E4
_08128C28: .4byte gAIScriptPtr
thumb_func_end ContestAICmd_get_excitement
@@ -469,7 +468,7 @@ _08128C28: .4byte gAIScriptPtr
ContestAICmd_unk_07: @ 8128C2C
push {lr}
bl ContestAICmd_get_excitement
- ldr r0, _08128C5C @ =0x020192e4
+ ldr r0, _08128C5C @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08128C60 @ =gAIScriptPtr
@@ -490,7 +489,7 @@ ContestAICmd_unk_07: @ 8128C2C
str r1, [r3]
b _08128C68
.align 2, 0
-_08128C5C: .4byte 0x020192e4
+_08128C5C: .4byte gSharedMem + 0x192E4
_08128C60: .4byte gAIScriptPtr
_08128C64:
adds r0, r2, 0x5
@@ -504,7 +503,7 @@ _08128C68:
ContestAICmd_unk_08: @ 8128C6C
push {lr}
bl ContestAICmd_get_excitement
- ldr r0, _08128C9C @ =0x020192e4
+ ldr r0, _08128C9C @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08128CA0 @ =gAIScriptPtr
@@ -525,7 +524,7 @@ ContestAICmd_unk_08: @ 8128C6C
str r1, [r3]
b _08128CA8
.align 2, 0
-_08128C9C: .4byte 0x020192e4
+_08128C9C: .4byte gSharedMem + 0x192E4
_08128CA0: .4byte gAIScriptPtr
_08128CA4:
adds r0, r2, 0x5
@@ -539,7 +538,7 @@ _08128CA8:
ContestAICmd_unk_09: @ 8128CAC
push {lr}
bl ContestAICmd_get_excitement
- ldr r0, _08128CDC @ =0x020192e4
+ ldr r0, _08128CDC @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08128CE0 @ =gAIScriptPtr
@@ -560,7 +559,7 @@ ContestAICmd_unk_09: @ 8128CAC
str r1, [r3]
b _08128CE8
.align 2, 0
-_08128CDC: .4byte 0x020192e4
+_08128CDC: .4byte gSharedMem + 0x192E4
_08128CE0: .4byte gAIScriptPtr
_08128CE4:
adds r0, r2, 0x5
@@ -574,7 +573,7 @@ _08128CE8:
ContestAICmd_unk_0A: @ 8128CEC
push {lr}
bl ContestAICmd_get_excitement
- ldr r0, _08128D1C @ =0x020192e4
+ ldr r0, _08128D1C @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08128D20 @ =gAIScriptPtr
@@ -595,7 +594,7 @@ ContestAICmd_unk_0A: @ 8128CEC
str r1, [r3]
b _08128D28
.align 2, 0
-_08128D1C: .4byte 0x020192e4
+_08128D1C: .4byte gSharedMem + 0x192E4
_08128D20: .4byte gAIScriptPtr
_08128D24:
adds r0, r2, 0x5
@@ -607,7 +606,7 @@ _08128D28:
thumb_func_start ContestAICmd_get_user_order
ContestAICmd_get_user_order: @ 8128D2C
- ldr r1, _08128D48 @ =0x020192e4
+ ldr r1, _08128D48 @ =gSharedMem + 0x192E4
adds r2, r1, 0
adds r2, 0x41
adds r0, r1, 0
@@ -622,7 +621,7 @@ ContestAICmd_get_user_order: @ 8128D2C
str r0, [r1]
bx lr
.align 2, 0
-_08128D48: .4byte 0x020192e4
+_08128D48: .4byte gSharedMem + 0x192E4
_08128D4C: .4byte gAIScriptPtr
thumb_func_end ContestAICmd_get_user_order
@@ -630,7 +629,7 @@ _08128D4C: .4byte gAIScriptPtr
ContestAICmd_unk_0C: @ 8128D50
push {lr}
bl ContestAICmd_get_user_order
- ldr r0, _08128D80 @ =0x020192e4
+ ldr r0, _08128D80 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08128D84 @ =gAIScriptPtr
@@ -651,7 +650,7 @@ ContestAICmd_unk_0C: @ 8128D50
str r1, [r3]
b _08128D8C
.align 2, 0
-_08128D80: .4byte 0x020192e4
+_08128D80: .4byte gSharedMem + 0x192E4
_08128D84: .4byte gAIScriptPtr
_08128D88:
adds r0, r2, 0x5
@@ -665,7 +664,7 @@ _08128D8C:
ContestAICmd_unk_0D: @ 8128D90
push {lr}
bl ContestAICmd_get_user_order
- ldr r0, _08128DC0 @ =0x020192e4
+ ldr r0, _08128DC0 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08128DC4 @ =gAIScriptPtr
@@ -686,7 +685,7 @@ ContestAICmd_unk_0D: @ 8128D90
str r1, [r3]
b _08128DCC
.align 2, 0
-_08128DC0: .4byte 0x020192e4
+_08128DC0: .4byte gSharedMem + 0x192E4
_08128DC4: .4byte gAIScriptPtr
_08128DC8:
adds r0, r2, 0x5
@@ -700,7 +699,7 @@ _08128DCC:
ContestAICmd_unk_0E: @ 8128DD0
push {lr}
bl ContestAICmd_get_user_order
- ldr r0, _08128E00 @ =0x020192e4
+ ldr r0, _08128E00 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08128E04 @ =gAIScriptPtr
@@ -721,7 +720,7 @@ ContestAICmd_unk_0E: @ 8128DD0
str r1, [r3]
b _08128E0C
.align 2, 0
-_08128E00: .4byte 0x020192e4
+_08128E00: .4byte gSharedMem + 0x192E4
_08128E04: .4byte gAIScriptPtr
_08128E08:
adds r0, r2, 0x5
@@ -735,7 +734,7 @@ _08128E0C:
ContestAICmd_unk_0F: @ 8128E10
push {lr}
bl ContestAICmd_get_user_order
- ldr r0, _08128E40 @ =0x020192e4
+ ldr r0, _08128E40 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08128E44 @ =gAIScriptPtr
@@ -756,7 +755,7 @@ ContestAICmd_unk_0F: @ 8128E10
str r1, [r3]
b _08128E4C
.align 2, 0
-_08128E40: .4byte 0x020192e4
+_08128E40: .4byte gSharedMem + 0x192E4
_08128E44: .4byte gAIScriptPtr
_08128E48:
adds r0, r2, 0x5
@@ -769,7 +768,7 @@ _08128E4C:
thumb_func_start ContestAICmd_get_user_condition_maybe
ContestAICmd_get_user_condition_maybe: @ 8128E50
push {r4,lr}
- ldr r4, _08128E88 @ =0x020192e4
+ ldr r4, _08128E88 @ =gSharedMem + 0x192E4
adds r0, r4, 0
adds r0, 0x41
ldrb r1, [r0]
@@ -795,7 +794,7 @@ ContestAICmd_get_user_condition_maybe: @ 8128E50
pop {r0}
bx r0
.align 2, 0
-_08128E88: .4byte 0x020192e4
+_08128E88: .4byte gSharedMem + 0x192E4
_08128E8C: .4byte gAIScriptPtr
thumb_func_end ContestAICmd_get_user_condition_maybe
@@ -803,7 +802,7 @@ _08128E8C: .4byte gAIScriptPtr
ContestAICmd_unk_11: @ 8128E90
push {lr}
bl ContestAICmd_get_user_condition_maybe
- ldr r0, _08128EC0 @ =0x020192e4
+ ldr r0, _08128EC0 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08128EC4 @ =gAIScriptPtr
@@ -824,7 +823,7 @@ ContestAICmd_unk_11: @ 8128E90
str r1, [r3]
b _08128ECC
.align 2, 0
-_08128EC0: .4byte 0x020192e4
+_08128EC0: .4byte gSharedMem + 0x192E4
_08128EC4: .4byte gAIScriptPtr
_08128EC8:
adds r0, r2, 0x5
@@ -838,7 +837,7 @@ _08128ECC:
ContestAICmd_unk_12: @ 8128ED0
push {lr}
bl ContestAICmd_get_user_condition_maybe
- ldr r0, _08128F00 @ =0x020192e4
+ ldr r0, _08128F00 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08128F04 @ =gAIScriptPtr
@@ -859,7 +858,7 @@ ContestAICmd_unk_12: @ 8128ED0
str r1, [r3]
b _08128F0C
.align 2, 0
-_08128F00: .4byte 0x020192e4
+_08128F00: .4byte gSharedMem + 0x192E4
_08128F04: .4byte gAIScriptPtr
_08128F08:
adds r0, r2, 0x5
@@ -873,7 +872,7 @@ _08128F0C:
ContestAICmd_unk_13: @ 8128F10
push {lr}
bl ContestAICmd_get_user_condition_maybe
- ldr r0, _08128F40 @ =0x020192e4
+ ldr r0, _08128F40 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08128F44 @ =gAIScriptPtr
@@ -894,7 +893,7 @@ ContestAICmd_unk_13: @ 8128F10
str r1, [r3]
b _08128F4C
.align 2, 0
-_08128F40: .4byte 0x020192e4
+_08128F40: .4byte gSharedMem + 0x192E4
_08128F44: .4byte gAIScriptPtr
_08128F48:
adds r0, r2, 0x5
@@ -908,7 +907,7 @@ _08128F4C:
ContestAICmd_unk_14: @ 8128F50
push {lr}
bl ContestAICmd_get_user_condition_maybe
- ldr r0, _08128F80 @ =0x020192e4
+ ldr r0, _08128F80 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08128F84 @ =gAIScriptPtr
@@ -929,7 +928,7 @@ ContestAICmd_unk_14: @ 8128F50
str r1, [r3]
b _08128F8C
.align 2, 0
-_08128F80: .4byte 0x020192e4
+_08128F80: .4byte gSharedMem + 0x192E4
_08128F84: .4byte gAIScriptPtr
_08128F88:
adds r0, r2, 0x5
@@ -941,7 +940,7 @@ _08128F8C:
thumb_func_start ContestAICmd_unk_15
ContestAICmd_unk_15: @ 8128F90
- ldr r2, _08128FB4 @ =0x020192e4
+ ldr r2, _08128FB4 @ =gSharedMem + 0x192E4
adds r0, r2, 0
adds r0, 0x41
ldrb r1, [r0]
@@ -959,7 +958,7 @@ ContestAICmd_unk_15: @ 8128F90
str r0, [r1]
bx lr
.align 2, 0
-_08128FB4: .4byte 0x020192e4
+_08128FB4: .4byte gSharedMem + 0x192E4
_08128FB8: .4byte gAIScriptPtr
thumb_func_end ContestAICmd_unk_15
@@ -967,7 +966,7 @@ _08128FB8: .4byte gAIScriptPtr
ContestAICmd_unk_16: @ 8128FBC
push {r4,r5,lr}
bl ContestAICmd_unk_15
- ldr r2, _08128FF4 @ =0x020192e4
+ ldr r2, _08128FF4 @ =gSharedMem + 0x192E4
ldr r4, _08128FF8 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3]
@@ -993,7 +992,7 @@ ContestAICmd_unk_16: @ 8128FBC
str r1, [r4]
b _08129000
.align 2, 0
-_08128FF4: .4byte 0x020192e4
+_08128FF4: .4byte gSharedMem + 0x192E4
_08128FF8: .4byte gAIScriptPtr
_08128FFC:
adds r0, r3, 0x6
@@ -1008,7 +1007,7 @@ _08129000:
ContestAICmd_unk_17: @ 8129008
push {r4,r5,lr}
bl ContestAICmd_unk_15
- ldr r2, _08129040 @ =0x020192e4
+ ldr r2, _08129040 @ =gSharedMem + 0x192E4
ldr r4, _08129044 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3]
@@ -1034,7 +1033,7 @@ ContestAICmd_unk_17: @ 8129008
str r1, [r4]
b _0812904C
.align 2, 0
-_08129040: .4byte 0x020192e4
+_08129040: .4byte gSharedMem + 0x192E4
_08129044: .4byte gAIScriptPtr
_08129048:
adds r0, r3, 0x6
@@ -1049,7 +1048,7 @@ _0812904C:
ContestAICmd_unk_18: @ 8129054
push {r4,r5,lr}
bl ContestAICmd_unk_15
- ldr r2, _0812908C @ =0x020192e4
+ ldr r2, _0812908C @ =gSharedMem + 0x192E4
ldr r4, _08129090 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3]
@@ -1075,7 +1074,7 @@ ContestAICmd_unk_18: @ 8129054
str r1, [r4]
b _08129098
.align 2, 0
-_0812908C: .4byte 0x020192e4
+_0812908C: .4byte gSharedMem + 0x192E4
_08129090: .4byte gAIScriptPtr
_08129094:
adds r0, r3, 0x6
@@ -1090,7 +1089,7 @@ _08129098:
ContestAICmd_unk_19: @ 81290A0
push {r4,r5,lr}
bl ContestAICmd_unk_15
- ldr r2, _081290D8 @ =0x020192e4
+ ldr r2, _081290D8 @ =gSharedMem + 0x192E4
ldr r4, _081290DC @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3]
@@ -1116,7 +1115,7 @@ ContestAICmd_unk_19: @ 81290A0
str r1, [r4]
b _081290E4
.align 2, 0
-_081290D8: .4byte 0x020192e4
+_081290D8: .4byte gSharedMem + 0x192E4
_081290DC: .4byte gAIScriptPtr
_081290E0:
adds r0, r3, 0x6
@@ -1129,7 +1128,7 @@ _081290E4:
thumb_func_start ContestAICmd_unk_1A
ContestAICmd_unk_1A: @ 81290EC
- ldr r2, _08129108 @ =0x020192e4
+ ldr r2, _08129108 @ =gSharedMem + 0x192E4
ldr r1, _0812910C @ =gUnknown_02038670
adds r0, r2, 0
adds r0, 0x41
@@ -1144,7 +1143,7 @@ ContestAICmd_unk_1A: @ 81290EC
str r0, [r1]
bx lr
.align 2, 0
-_08129108: .4byte 0x020192e4
+_08129108: .4byte gSharedMem + 0x192E4
_0812910C: .4byte gUnknown_02038670
_08129110: .4byte gAIScriptPtr
thumb_func_end ContestAICmd_unk_1A
@@ -1153,7 +1152,7 @@ _08129110: .4byte gAIScriptPtr
ContestAICmd_unk_1B: @ 8129114
push {r4,r5,lr}
bl ContestAICmd_unk_1A
- ldr r2, _0812914C @ =0x020192e4
+ ldr r2, _0812914C @ =gSharedMem + 0x192E4
ldr r4, _08129150 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3]
@@ -1179,7 +1178,7 @@ ContestAICmd_unk_1B: @ 8129114
str r1, [r4]
b _08129158
.align 2, 0
-_0812914C: .4byte 0x020192e4
+_0812914C: .4byte gSharedMem + 0x192E4
_08129150: .4byte gAIScriptPtr
_08129154:
adds r0, r3, 0x6
@@ -1194,7 +1193,7 @@ _08129158:
ContestAICmd_unk_1C: @ 8129160
push {r4,r5,lr}
bl ContestAICmd_unk_1A
- ldr r2, _08129198 @ =0x020192e4
+ ldr r2, _08129198 @ =gSharedMem + 0x192E4
ldr r4, _0812919C @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3]
@@ -1220,7 +1219,7 @@ ContestAICmd_unk_1C: @ 8129160
str r1, [r4]
b _081291A4
.align 2, 0
-_08129198: .4byte 0x020192e4
+_08129198: .4byte gSharedMem + 0x192E4
_0812919C: .4byte gAIScriptPtr
_081291A0:
adds r0, r3, 0x6
@@ -1235,7 +1234,7 @@ _081291A4:
ContestAICmd_unk_1D: @ 81291AC
push {r4,r5,lr}
bl ContestAICmd_unk_1A
- ldr r2, _081291E4 @ =0x020192e4
+ ldr r2, _081291E4 @ =gSharedMem + 0x192E4
ldr r4, _081291E8 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3]
@@ -1261,7 +1260,7 @@ ContestAICmd_unk_1D: @ 81291AC
str r1, [r4]
b _081291F0
.align 2, 0
-_081291E4: .4byte 0x020192e4
+_081291E4: .4byte gSharedMem + 0x192E4
_081291E8: .4byte gAIScriptPtr
_081291EC:
adds r0, r3, 0x6
@@ -1276,7 +1275,7 @@ _081291F0:
ContestAICmd_unk_1E: @ 81291F8
push {r4,r5,lr}
bl ContestAICmd_unk_1A
- ldr r2, _08129230 @ =0x020192e4
+ ldr r2, _08129230 @ =gSharedMem + 0x192E4
ldr r4, _08129234 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3]
@@ -1302,7 +1301,7 @@ ContestAICmd_unk_1E: @ 81291F8
str r1, [r4]
b _0812923C
.align 2, 0
-_08129230: .4byte 0x020192e4
+_08129230: .4byte gSharedMem + 0x192E4
_08129234: .4byte gAIScriptPtr
_08129238:
adds r0, r3, 0x6
@@ -1315,8 +1314,8 @@ _0812923C:
thumb_func_start ContestAICmd_get_contest_type
ContestAICmd_get_contest_type: @ 8129244
- ldr r1, _08129258 @ =0x020192e4
- ldr r0, _0812925C @ =gScriptContestCategory
+ ldr r1, _08129258 @ =gSharedMem + 0x192E4
+ ldr r0, _0812925C @ =gSpecialVar_ContestCategory
ldrh r0, [r0]
strh r0, [r1, 0x18]
ldr r1, _08129260 @ =gAIScriptPtr
@@ -1325,8 +1324,8 @@ ContestAICmd_get_contest_type: @ 8129244
str r0, [r1]
bx lr
.align 2, 0
-_08129258: .4byte 0x020192e4
-_0812925C: .4byte gScriptContestCategory
+_08129258: .4byte gSharedMem + 0x192E4
+_0812925C: .4byte gSpecialVar_ContestCategory
_08129260: .4byte gAIScriptPtr
thumb_func_end ContestAICmd_get_contest_type
@@ -1334,7 +1333,7 @@ _08129260: .4byte gAIScriptPtr
ContestAICmd_unk_20: @ 8129264
push {lr}
bl ContestAICmd_get_contest_type
- ldr r0, _08129294 @ =0x020192e4
+ ldr r0, _08129294 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08129298 @ =gAIScriptPtr
@@ -1355,7 +1354,7 @@ ContestAICmd_unk_20: @ 8129264
str r1, [r3]
b _081292A0
.align 2, 0
-_08129294: .4byte 0x020192e4
+_08129294: .4byte gSharedMem + 0x192E4
_08129298: .4byte gAIScriptPtr
_0812929C:
adds r0, r2, 0x5
@@ -1369,7 +1368,7 @@ _081292A0:
ContestAICmd_unk_21: @ 81292A4
push {lr}
bl ContestAICmd_get_contest_type
- ldr r0, _081292D4 @ =0x020192e4
+ ldr r0, _081292D4 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _081292D8 @ =gAIScriptPtr
@@ -1390,7 +1389,7 @@ ContestAICmd_unk_21: @ 81292A4
str r1, [r3]
b _081292E0
.align 2, 0
-_081292D4: .4byte 0x020192e4
+_081292D4: .4byte gSharedMem + 0x192E4
_081292D8: .4byte gAIScriptPtr
_081292DC:
adds r0, r2, 0x5
@@ -1404,7 +1403,7 @@ _081292E0:
ContestAICmd_get_move_excitement: @ 81292E4
push {r4,lr}
ldr r2, _08129318 @ =gContestMons
- ldr r4, _0812931C @ =0x020192e4
+ ldr r4, _0812931C @ =gSharedMem + 0x192E4
ldrb r1, [r4, 0x4]
lsls r1, 1
adds r0, r4, 0
@@ -1428,7 +1427,7 @@ ContestAICmd_get_move_excitement: @ 81292E4
bx r0
.align 2, 0
_08129318: .4byte gContestMons
-_0812931C: .4byte 0x020192e4
+_0812931C: .4byte gSharedMem + 0x192E4
_08129320: .4byte gAIScriptPtr
thumb_func_end ContestAICmd_get_move_excitement
@@ -1436,7 +1435,7 @@ _08129320: .4byte gAIScriptPtr
ContestAICmd_unk_23: @ 8129324
push {r4,lr}
bl ContestAICmd_get_move_excitement
- ldr r0, _08129354 @ =0x020192e4
+ ldr r0, _08129354 @ =gSharedMem + 0x192E4
ldr r3, _08129358 @ =gAIScriptPtr
ldr r2, [r3]
movs r4, 0x18
@@ -1458,7 +1457,7 @@ ContestAICmd_unk_23: @ 8129324
str r1, [r3]
b _08129360
.align 2, 0
-_08129354: .4byte 0x020192e4
+_08129354: .4byte gSharedMem + 0x192E4
_08129358: .4byte gAIScriptPtr
_0812935C:
adds r0, r2, 0x5
@@ -1473,7 +1472,7 @@ _08129360:
ContestAICmd_unk_24: @ 8129368
push {r4,lr}
bl ContestAICmd_get_move_excitement
- ldr r0, _08129398 @ =0x020192e4
+ ldr r0, _08129398 @ =gSharedMem + 0x192E4
ldr r3, _0812939C @ =gAIScriptPtr
ldr r2, [r3]
movs r4, 0x18
@@ -1495,7 +1494,7 @@ ContestAICmd_unk_24: @ 8129368
str r1, [r3]
b _081293A4
.align 2, 0
-_08129398: .4byte 0x020192e4
+_08129398: .4byte gSharedMem + 0x192E4
_0812939C: .4byte gAIScriptPtr
_081293A0:
adds r0, r2, 0x5
@@ -1510,7 +1509,7 @@ _081293A4:
ContestAICmd_unk_25: @ 81293AC
push {r4,lr}
bl ContestAICmd_get_move_excitement
- ldr r0, _081293DC @ =0x020192e4
+ ldr r0, _081293DC @ =gSharedMem + 0x192E4
ldr r3, _081293E0 @ =gAIScriptPtr
ldr r2, [r3]
movs r4, 0x18
@@ -1532,7 +1531,7 @@ ContestAICmd_unk_25: @ 81293AC
str r1, [r3]
b _081293E8
.align 2, 0
-_081293DC: .4byte 0x020192e4
+_081293DC: .4byte gSharedMem + 0x192E4
_081293E0: .4byte gAIScriptPtr
_081293E4:
adds r0, r2, 0x5
@@ -1547,7 +1546,7 @@ _081293E8:
ContestAICmd_unk_26: @ 81293F0
push {r4,lr}
bl ContestAICmd_get_move_excitement
- ldr r0, _08129420 @ =0x020192e4
+ ldr r0, _08129420 @ =gSharedMem + 0x192E4
ldr r3, _08129424 @ =gAIScriptPtr
ldr r2, [r3]
movs r4, 0x18
@@ -1569,7 +1568,7 @@ ContestAICmd_unk_26: @ 81293F0
str r1, [r3]
b _0812942C
.align 2, 0
-_08129420: .4byte 0x020192e4
+_08129420: .4byte gSharedMem + 0x192E4
_08129424: .4byte gAIScriptPtr
_08129428:
adds r0, r2, 0x5
@@ -1583,7 +1582,7 @@ _0812942C:
thumb_func_start ContestAICmd_get_move_effect
ContestAICmd_get_move_effect: @ 8129434
ldr r2, _08129460 @ =gContestMons
- ldr r3, _08129464 @ =0x020192e4
+ ldr r3, _08129464 @ =gSharedMem + 0x192E4
ldrb r1, [r3, 0x4]
lsls r1, 1
adds r0, r3, 0
@@ -1606,7 +1605,7 @@ ContestAICmd_get_move_effect: @ 8129434
bx lr
.align 2, 0
_08129460: .4byte gContestMons
-_08129464: .4byte 0x020192e4
+_08129464: .4byte gSharedMem + 0x192E4
_08129468: .4byte gContestMoves
_0812946C: .4byte gAIScriptPtr
thumb_func_end ContestAICmd_get_move_effect
@@ -1615,7 +1614,7 @@ _0812946C: .4byte gAIScriptPtr
ContestAICmd_unk_28: @ 8129470
push {lr}
bl ContestAICmd_get_move_effect
- ldr r0, _081294A0 @ =0x020192e4
+ ldr r0, _081294A0 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _081294A4 @ =gAIScriptPtr
@@ -1636,7 +1635,7 @@ ContestAICmd_unk_28: @ 8129470
str r1, [r3]
b _081294AC
.align 2, 0
-_081294A0: .4byte 0x020192e4
+_081294A0: .4byte gSharedMem + 0x192E4
_081294A4: .4byte gAIScriptPtr
_081294A8:
adds r0, r2, 0x5
@@ -1650,7 +1649,7 @@ _081294AC:
ContestAICmd_unk_29: @ 81294B0
push {lr}
bl ContestAICmd_get_move_effect
- ldr r0, _081294E0 @ =0x020192e4
+ ldr r0, _081294E0 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _081294E4 @ =gAIScriptPtr
@@ -1671,7 +1670,7 @@ ContestAICmd_unk_29: @ 81294B0
str r1, [r3]
b _081294EC
.align 2, 0
-_081294E0: .4byte 0x020192e4
+_081294E0: .4byte gSharedMem + 0x192E4
_081294E4: .4byte gAIScriptPtr
_081294E8:
adds r0, r2, 0x5
@@ -1684,7 +1683,7 @@ _081294EC:
thumb_func_start ContestAICmd_get_move_effect_type
ContestAICmd_get_move_effect_type: @ 81294F0
ldr r2, _08129524 @ =gContestMons
- ldr r3, _08129528 @ =0x020192e4
+ ldr r3, _08129528 @ =gSharedMem + 0x192E4
ldrb r1, [r3, 0x4]
lsls r1, 1
adds r0, r3, 0
@@ -1711,7 +1710,7 @@ ContestAICmd_get_move_effect_type: @ 81294F0
bx lr
.align 2, 0
_08129524: .4byte gContestMons
-_08129528: .4byte 0x020192e4
+_08129528: .4byte gSharedMem + 0x192E4
_0812952C: .4byte gContestEffects
_08129530: .4byte gContestMoves
_08129534: .4byte gAIScriptPtr
@@ -1721,7 +1720,7 @@ _08129534: .4byte gAIScriptPtr
ContestAICmd_unk_2B: @ 8129538
push {lr}
bl ContestAICmd_get_move_effect_type
- ldr r0, _08129568 @ =0x020192e4
+ ldr r0, _08129568 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812956C @ =gAIScriptPtr
@@ -1742,7 +1741,7 @@ ContestAICmd_unk_2B: @ 8129538
str r1, [r3]
b _08129574
.align 2, 0
-_08129568: .4byte 0x020192e4
+_08129568: .4byte gSharedMem + 0x192E4
_0812956C: .4byte gAIScriptPtr
_08129570:
adds r0, r2, 0x5
@@ -1756,7 +1755,7 @@ _08129574:
ContestAICmd_unk_2C: @ 8129578
push {lr}
bl ContestAICmd_get_move_effect_type
- ldr r0, _081295A8 @ =0x020192e4
+ ldr r0, _081295A8 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _081295AC @ =gAIScriptPtr
@@ -1777,7 +1776,7 @@ ContestAICmd_unk_2C: @ 8129578
str r1, [r3]
b _081295B4
.align 2, 0
-_081295A8: .4byte 0x020192e4
+_081295A8: .4byte gSharedMem + 0x192E4
_081295AC: .4byte gAIScriptPtr
_081295B0:
adds r0, r2, 0x5
@@ -1791,7 +1790,7 @@ _081295B4:
ContestAICmd_check_move_has_highest_appeal: @ 81295B8
push {r4-r7,lr}
ldr r2, _08129610 @ =gContestMons
- ldr r3, _08129614 @ =0x020192e4
+ ldr r3, _08129614 @ =gSharedMem + 0x192E4
ldrb r0, [r3, 0x4]
lsls r0, 1
adds r1, r3, 0
@@ -1838,7 +1837,7 @@ _08129608:
b _08129626
.align 2, 0
_08129610: .4byte gContestMons
-_08129614: .4byte 0x020192e4
+_08129614: .4byte gSharedMem + 0x192E4
_08129618: .4byte gContestEffects
_0812961C: .4byte gContestMoves
_08129620: .4byte gAIScriptPtr
@@ -1859,7 +1858,7 @@ _08129626:
ContestAICmd_unk_2E: @ 8129638
push {lr}
bl ContestAICmd_check_move_has_highest_appeal
- ldr r0, _08129664 @ =0x020192e4
+ ldr r0, _08129664 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -1879,7 +1878,7 @@ ContestAICmd_unk_2E: @ 8129638
str r1, [r3]
b _08129674
.align 2, 0
-_08129664: .4byte 0x020192e4
+_08129664: .4byte gSharedMem + 0x192E4
_08129668: .4byte gAIScriptPtr
_0812966C:
ldr r1, _08129678 @ =gAIScriptPtr
@@ -1897,7 +1896,7 @@ _08129678: .4byte gAIScriptPtr
ContestAICmd_unk_2F: @ 812967C
push {r4-r7,lr}
ldr r2, _081296D4 @ =gContestMons
- ldr r3, _081296D8 @ =0x020192e4
+ ldr r3, _081296D8 @ =gSharedMem + 0x192E4
ldrb r0, [r3, 0x4]
lsls r0, 1
adds r1, r3, 0
@@ -1944,7 +1943,7 @@ _081296CC:
b _081296EA
.align 2, 0
_081296D4: .4byte gContestMons
-_081296D8: .4byte 0x020192e4
+_081296D8: .4byte gSharedMem + 0x192E4
_081296DC: .4byte gContestEffects
_081296E0: .4byte gContestMoves
_081296E4: .4byte gAIScriptPtr
@@ -1965,7 +1964,7 @@ _081296EA:
ContestAICmd_unk_30: @ 81296FC
push {lr}
bl ContestAICmd_unk_2F
- ldr r0, _08129728 @ =0x020192e4
+ ldr r0, _08129728 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -1985,7 +1984,7 @@ ContestAICmd_unk_30: @ 81296FC
str r1, [r3]
b _08129738
.align 2, 0
-_08129728: .4byte 0x020192e4
+_08129728: .4byte gSharedMem + 0x192E4
_0812972C: .4byte gAIScriptPtr
_08129730:
ldr r1, _0812973C @ =gAIScriptPtr
@@ -2003,7 +2002,7 @@ _0812973C: .4byte gAIScriptPtr
ContestAICmd_unk_31: @ 8129740
push {r4,lr}
ldr r2, _08129784 @ =gContestMons
- ldr r4, _08129788 @ =0x020192e4
+ ldr r4, _08129788 @ =gSharedMem + 0x192E4
ldrb r1, [r4, 0x4]
lsls r1, 1
adds r0, r4, 0
@@ -2036,7 +2035,7 @@ ContestAICmd_unk_31: @ 8129740
bx r0
.align 2, 0
_08129784: .4byte gContestMons
-_08129788: .4byte 0x020192e4
+_08129788: .4byte gSharedMem + 0x192E4
_0812978C: .4byte gContestEffects
_08129790: .4byte gContestMoves
_08129794: .4byte gAIScriptPtr
@@ -2046,7 +2045,7 @@ _08129794: .4byte gAIScriptPtr
ContestAICmd_unk_32: @ 8129798
push {lr}
bl ContestAICmd_unk_31
- ldr r0, _081297C8 @ =0x020192e4
+ ldr r0, _081297C8 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _081297CC @ =gAIScriptPtr
@@ -2067,7 +2066,7 @@ ContestAICmd_unk_32: @ 8129798
str r1, [r3]
b _081297D4
.align 2, 0
-_081297C8: .4byte 0x020192e4
+_081297C8: .4byte gSharedMem + 0x192E4
_081297CC: .4byte gAIScriptPtr
_081297D0:
adds r0, r2, 0x5
@@ -2081,7 +2080,7 @@ _081297D4:
ContestAICmd_unk_33: @ 81297D8
push {lr}
bl ContestAICmd_unk_31
- ldr r0, _08129808 @ =0x020192e4
+ ldr r0, _08129808 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812980C @ =gAIScriptPtr
@@ -2102,7 +2101,7 @@ ContestAICmd_unk_33: @ 81297D8
str r1, [r3]
b _08129814
.align 2, 0
-_08129808: .4byte 0x020192e4
+_08129808: .4byte gSharedMem + 0x192E4
_0812980C: .4byte gAIScriptPtr
_08129810:
adds r0, r2, 0x5
@@ -2116,7 +2115,7 @@ _08129814:
ContestAICmd_unk_34: @ 8129818
push {lr}
bl ContestAICmd_unk_31
- ldr r0, _08129848 @ =0x020192e4
+ ldr r0, _08129848 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812984C @ =gAIScriptPtr
@@ -2137,7 +2136,7 @@ ContestAICmd_unk_34: @ 8129818
str r1, [r3]
b _08129854
.align 2, 0
-_08129848: .4byte 0x020192e4
+_08129848: .4byte gSharedMem + 0x192E4
_0812984C: .4byte gAIScriptPtr
_08129850:
adds r0, r2, 0x5
@@ -2151,7 +2150,7 @@ _08129854:
ContestAICmd_unk_35: @ 8129858
push {lr}
bl ContestAICmd_unk_31
- ldr r0, _08129888 @ =0x020192e4
+ ldr r0, _08129888 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812988C @ =gAIScriptPtr
@@ -2172,7 +2171,7 @@ ContestAICmd_unk_35: @ 8129858
str r1, [r3]
b _08129894
.align 2, 0
-_08129888: .4byte 0x020192e4
+_08129888: .4byte gSharedMem + 0x192E4
_0812988C: .4byte gAIScriptPtr
_08129890:
adds r0, r2, 0x5
@@ -2186,7 +2185,7 @@ _08129894:
ContestAICmd_unk_36: @ 8129898
push {r4,lr}
ldr r2, _081298DC @ =gContestMons
- ldr r4, _081298E0 @ =0x020192e4
+ ldr r4, _081298E0 @ =gSharedMem + 0x192E4
ldrb r1, [r4, 0x4]
lsls r1, 1
adds r0, r4, 0
@@ -2219,7 +2218,7 @@ ContestAICmd_unk_36: @ 8129898
bx r0
.align 2, 0
_081298DC: .4byte gContestMons
-_081298E0: .4byte 0x020192e4
+_081298E0: .4byte gSharedMem + 0x192E4
_081298E4: .4byte gContestEffects
_081298E8: .4byte gContestMoves
_081298EC: .4byte gAIScriptPtr
@@ -2229,7 +2228,7 @@ _081298EC: .4byte gAIScriptPtr
ContestAICmd_unk_37: @ 81298F0
push {lr}
bl ContestAICmd_unk_36
- ldr r0, _08129920 @ =0x020192e4
+ ldr r0, _08129920 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08129924 @ =gAIScriptPtr
@@ -2250,7 +2249,7 @@ ContestAICmd_unk_37: @ 81298F0
str r1, [r3]
b _0812992C
.align 2, 0
-_08129920: .4byte 0x020192e4
+_08129920: .4byte gSharedMem + 0x192E4
_08129924: .4byte gAIScriptPtr
_08129928:
adds r0, r2, 0x5
@@ -2264,7 +2263,7 @@ _0812992C:
ContestAICmd_unk_38: @ 8129930
push {lr}
bl ContestAICmd_unk_36
- ldr r0, _08129960 @ =0x020192e4
+ ldr r0, _08129960 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08129964 @ =gAIScriptPtr
@@ -2285,7 +2284,7 @@ ContestAICmd_unk_38: @ 8129930
str r1, [r3]
b _0812996C
.align 2, 0
-_08129960: .4byte 0x020192e4
+_08129960: .4byte gSharedMem + 0x192E4
_08129964: .4byte gAIScriptPtr
_08129968:
adds r0, r2, 0x5
@@ -2299,7 +2298,7 @@ _0812996C:
ContestAICmd_unk_39: @ 8129970
push {lr}
bl ContestAICmd_unk_36
- ldr r0, _081299A0 @ =0x020192e4
+ ldr r0, _081299A0 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _081299A4 @ =gAIScriptPtr
@@ -2320,7 +2319,7 @@ ContestAICmd_unk_39: @ 8129970
str r1, [r3]
b _081299AC
.align 2, 0
-_081299A0: .4byte 0x020192e4
+_081299A0: .4byte gSharedMem + 0x192E4
_081299A4: .4byte gAIScriptPtr
_081299A8:
adds r0, r2, 0x5
@@ -2334,7 +2333,7 @@ _081299AC:
ContestAICmd_unk_3A: @ 81299B0
push {lr}
bl ContestAICmd_unk_36
- ldr r0, _081299E0 @ =0x020192e4
+ ldr r0, _081299E0 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _081299E4 @ =gAIScriptPtr
@@ -2355,7 +2354,7 @@ ContestAICmd_unk_3A: @ 81299B0
str r1, [r3]
b _081299EC
.align 2, 0
-_081299E0: .4byte 0x020192e4
+_081299E0: .4byte gSharedMem + 0x192E4
_081299E4: .4byte gAIScriptPtr
_081299E8:
adds r0, r2, 0x5
@@ -2369,7 +2368,7 @@ _081299EC:
ContestAICmd_get_move_used_count: @ 81299F0
push {r4,lr}
ldr r3, _08129A20 @ =gContestMons
- ldr r4, _08129A24 @ =0x020192e4
+ ldr r4, _08129A24 @ =gSharedMem + 0x192E4
ldrb r0, [r4, 0x4]
lsls r0, 1
adds r1, r4, 0
@@ -2393,7 +2392,7 @@ ContestAICmd_get_move_used_count: @ 81299F0
b _08129A30
.align 2, 0
_08129A20: .4byte gContestMons
-_08129A24: .4byte 0x020192e4
+_08129A24: .4byte gSharedMem + 0x192E4
_08129A28:
ldrb r0, [r0, 0xB]
lsls r0, 25
@@ -2416,7 +2415,7 @@ _08129A40: .4byte gAIScriptPtr
ContestAICmd_unk_3C: @ 8129A44
push {lr}
bl ContestAICmd_get_move_used_count
- ldr r0, _08129A74 @ =0x020192e4
+ ldr r0, _08129A74 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08129A78 @ =gAIScriptPtr
@@ -2437,7 +2436,7 @@ ContestAICmd_unk_3C: @ 8129A44
str r1, [r3]
b _08129A80
.align 2, 0
-_08129A74: .4byte 0x020192e4
+_08129A74: .4byte gSharedMem + 0x192E4
_08129A78: .4byte gAIScriptPtr
_08129A7C:
adds r0, r2, 0x5
@@ -2451,7 +2450,7 @@ _08129A80:
ContestAICmd_unk_3D: @ 8129A84
push {lr}
bl ContestAICmd_get_move_used_count
- ldr r0, _08129AB4 @ =0x020192e4
+ ldr r0, _08129AB4 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08129AB8 @ =gAIScriptPtr
@@ -2472,7 +2471,7 @@ ContestAICmd_unk_3D: @ 8129A84
str r1, [r3]
b _08129AC0
.align 2, 0
-_08129AB4: .4byte 0x020192e4
+_08129AB4: .4byte gSharedMem + 0x192E4
_08129AB8: .4byte gAIScriptPtr
_08129ABC:
adds r0, r2, 0x5
@@ -2486,7 +2485,7 @@ _08129AC0:
ContestAICmd_unk_3E: @ 8129AC4
push {lr}
bl ContestAICmd_get_move_used_count
- ldr r0, _08129AF4 @ =0x020192e4
+ ldr r0, _08129AF4 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08129AF8 @ =gAIScriptPtr
@@ -2507,7 +2506,7 @@ ContestAICmd_unk_3E: @ 8129AC4
str r1, [r3]
b _08129B00
.align 2, 0
-_08129AF4: .4byte 0x020192e4
+_08129AF4: .4byte gSharedMem + 0x192E4
_08129AF8: .4byte gAIScriptPtr
_08129AFC:
adds r0, r2, 0x5
@@ -2521,7 +2520,7 @@ _08129B00:
ContestAICmd_unk_3F: @ 8129B04
push {lr}
bl ContestAICmd_get_move_used_count
- ldr r0, _08129B34 @ =0x020192e4
+ ldr r0, _08129B34 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08129B38 @ =gAIScriptPtr
@@ -2542,7 +2541,7 @@ ContestAICmd_unk_3F: @ 8129B04
str r1, [r3]
b _08129B40
.align 2, 0
-_08129B34: .4byte 0x020192e4
+_08129B34: .4byte gSharedMem + 0x192E4
_08129B38: .4byte gAIScriptPtr
_08129B3C:
adds r0, r2, 0x5
@@ -2559,7 +2558,7 @@ ContestAICmd_check_combo_starter: @ 8129B44
push {r7}
movs r5, 0
ldr r3, _08129BAC @ =gContestMons
- ldr r2, _08129BB0 @ =0x020192e4
+ ldr r2, _08129BB0 @ =gSharedMem + 0x192E4
ldrb r1, [r2, 0x4]
lsls r1, 1
adds r2, 0x41
@@ -2598,7 +2597,7 @@ _08129B8A:
_08129B94:
movs r5, 0x1
_08129B96:
- ldr r0, _08129BB0 @ =0x020192e4
+ ldr r0, _08129BB0 @ =gSharedMem + 0x192E4
strh r5, [r0, 0x18]
ldr r1, _08129BB4 @ =gAIScriptPtr
ldr r0, [r1]
@@ -2611,7 +2610,7 @@ _08129B96:
bx r0
.align 2, 0
_08129BAC: .4byte gContestMons
-_08129BB0: .4byte 0x020192e4
+_08129BB0: .4byte gSharedMem + 0x192E4
_08129BB4: .4byte gAIScriptPtr
thumb_func_end ContestAICmd_check_combo_starter
@@ -2619,7 +2618,7 @@ _08129BB4: .4byte gAIScriptPtr
ContestAICmd_unk_41: @ 8129BB8
push {lr}
bl ContestAICmd_check_combo_starter
- ldr r0, _08129BE4 @ =0x020192e4
+ ldr r0, _08129BE4 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -2639,7 +2638,7 @@ ContestAICmd_unk_41: @ 8129BB8
str r1, [r3]
b _08129BF4
.align 2, 0
-_08129BE4: .4byte 0x020192e4
+_08129BE4: .4byte gSharedMem + 0x192E4
_08129BE8: .4byte gAIScriptPtr
_08129BEC:
ldr r1, _08129BF8 @ =gAIScriptPtr
@@ -2657,7 +2656,7 @@ _08129BF8: .4byte gAIScriptPtr
ContestAICmd_unk_42: @ 8129BFC
push {lr}
bl ContestAICmd_check_combo_starter
- ldr r0, _08129C28 @ =0x020192e4
+ ldr r0, _08129C28 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -2677,7 +2676,7 @@ ContestAICmd_unk_42: @ 8129BFC
str r1, [r3]
b _08129C38
.align 2, 0
-_08129C28: .4byte 0x020192e4
+_08129C28: .4byte gSharedMem + 0x192E4
_08129C2C: .4byte gAIScriptPtr
_08129C30:
ldr r1, _08129C3C @ =gAIScriptPtr
@@ -2698,7 +2697,7 @@ ContestAICmd_check_combo_finisher: @ 8129C40
push {r7}
movs r5, 0
ldr r3, _08129CA8 @ =gContestMons
- ldr r2, _08129CAC @ =0x020192e4
+ ldr r2, _08129CAC @ =gSharedMem + 0x192E4
ldrb r1, [r2, 0x4]
lsls r1, 1
adds r2, 0x41
@@ -2736,7 +2735,7 @@ _08129C84:
_08129C8E:
movs r5, 0x1
_08129C90:
- ldr r0, _08129CAC @ =0x020192e4
+ ldr r0, _08129CAC @ =gSharedMem + 0x192E4
strh r5, [r0, 0x18]
ldr r1, _08129CB0 @ =gAIScriptPtr
ldr r0, [r1]
@@ -2749,7 +2748,7 @@ _08129C90:
bx r0
.align 2, 0
_08129CA8: .4byte gContestMons
-_08129CAC: .4byte 0x020192e4
+_08129CAC: .4byte gSharedMem + 0x192E4
_08129CB0: .4byte gAIScriptPtr
thumb_func_end ContestAICmd_check_combo_finisher
@@ -2757,7 +2756,7 @@ _08129CB0: .4byte gAIScriptPtr
ContestAICmd_unk_44: @ 8129CB4
push {lr}
bl ContestAICmd_check_combo_finisher
- ldr r0, _08129CE0 @ =0x020192e4
+ ldr r0, _08129CE0 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -2777,7 +2776,7 @@ ContestAICmd_unk_44: @ 8129CB4
str r1, [r3]
b _08129CF0
.align 2, 0
-_08129CE0: .4byte 0x020192e4
+_08129CE0: .4byte gSharedMem + 0x192E4
_08129CE4: .4byte gAIScriptPtr
_08129CE8:
ldr r1, _08129CF4 @ =gAIScriptPtr
@@ -2795,7 +2794,7 @@ _08129CF4: .4byte gAIScriptPtr
ContestAICmd_unk_45: @ 8129CF8
push {lr}
bl ContestAICmd_check_combo_finisher
- ldr r0, _08129D24 @ =0x020192e4
+ ldr r0, _08129D24 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -2815,7 +2814,7 @@ ContestAICmd_unk_45: @ 8129CF8
str r1, [r3]
b _08129D34
.align 2, 0
-_08129D24: .4byte 0x020192e4
+_08129D24: .4byte gSharedMem + 0x192E4
_08129D28: .4byte gAIScriptPtr
_08129D2C:
ldr r1, _08129D38 @ =gAIScriptPtr
@@ -2834,7 +2833,7 @@ ContestAICmd_check_would_finish_combo: @ 8129D3C
push {r4,r5,lr}
movs r5, 0
ldr r3, _08129D8C @ =gContestMons
- ldr r4, _08129D90 @ =0x020192e4
+ ldr r4, _08129D90 @ =gSharedMem + 0x192E4
ldrb r0, [r4, 0x4]
lsls r0, 1
adds r1, r4, 0
@@ -2873,7 +2872,7 @@ _08129D7A:
bx r0
.align 2, 0
_08129D8C: .4byte gContestMons
-_08129D90: .4byte 0x020192e4
+_08129D90: .4byte gSharedMem + 0x192E4
_08129D94: .4byte gAIScriptPtr
thumb_func_end ContestAICmd_check_would_finish_combo
@@ -2881,7 +2880,7 @@ _08129D94: .4byte gAIScriptPtr
ContestAICmd_unk_47: @ 8129D98
push {lr}
bl ContestAICmd_check_would_finish_combo
- ldr r0, _08129DC4 @ =0x020192e4
+ ldr r0, _08129DC4 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -2901,7 +2900,7 @@ ContestAICmd_unk_47: @ 8129D98
str r1, [r3]
b _08129DD4
.align 2, 0
-_08129DC4: .4byte 0x020192e4
+_08129DC4: .4byte gSharedMem + 0x192E4
_08129DC8: .4byte gAIScriptPtr
_08129DCC:
ldr r1, _08129DD8 @ =gAIScriptPtr
@@ -2919,7 +2918,7 @@ _08129DD8: .4byte gAIScriptPtr
ContestAICmd_unk_48: @ 8129DDC
push {lr}
bl ContestAICmd_check_would_finish_combo
- ldr r0, _08129E08 @ =0x020192e4
+ ldr r0, _08129E08 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -2939,7 +2938,7 @@ ContestAICmd_unk_48: @ 8129DDC
str r1, [r3]
b _08129E18
.align 2, 0
-_08129E08: .4byte 0x020192e4
+_08129E08: .4byte gSharedMem + 0x192E4
_08129E0C: .4byte gAIScriptPtr
_08129E10:
ldr r1, _08129E1C @ =gAIScriptPtr
@@ -2962,7 +2961,7 @@ ContestAICmd_get_condition: @ 8129E20
bl sub_8128A7C
lsls r0, 24
lsrs r0, 24
- ldr r5, _08129E60 @ =0x020192e4
+ ldr r5, _08129E60 @ =gSharedMem + 0x192E4
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -2984,14 +2983,14 @@ ContestAICmd_get_condition: @ 8129E20
bx r0
.align 2, 0
_08129E5C: .4byte gAIScriptPtr
-_08129E60: .4byte 0x020192e4
+_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 @ =0x020192e4
+ ldr r0, _08129E94 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08129E98 @ =gAIScriptPtr
@@ -3012,7 +3011,7 @@ ContestAICmd_unk_4A: @ 8129E64
str r1, [r3]
b _08129EA0
.align 2, 0
-_08129E94: .4byte 0x020192e4
+_08129E94: .4byte gSharedMem + 0x192E4
_08129E98: .4byte gAIScriptPtr
_08129E9C:
adds r0, r2, 0x5
@@ -3026,7 +3025,7 @@ _08129EA0:
ContestAICmd_unk_4B: @ 8129EA4
push {lr}
bl ContestAICmd_get_condition
- ldr r0, _08129ED4 @ =0x020192e4
+ ldr r0, _08129ED4 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08129ED8 @ =gAIScriptPtr
@@ -3047,7 +3046,7 @@ ContestAICmd_unk_4B: @ 8129EA4
str r1, [r3]
b _08129EE0
.align 2, 0
-_08129ED4: .4byte 0x020192e4
+_08129ED4: .4byte gSharedMem + 0x192E4
_08129ED8: .4byte gAIScriptPtr
_08129EDC:
adds r0, r2, 0x5
@@ -3061,7 +3060,7 @@ _08129EE0:
ContestAICmd_unk_4C: @ 8129EE4
push {lr}
bl ContestAICmd_get_condition
- ldr r0, _08129F14 @ =0x020192e4
+ ldr r0, _08129F14 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08129F18 @ =gAIScriptPtr
@@ -3082,7 +3081,7 @@ ContestAICmd_unk_4C: @ 8129EE4
str r1, [r3]
b _08129F20
.align 2, 0
-_08129F14: .4byte 0x020192e4
+_08129F14: .4byte gSharedMem + 0x192E4
_08129F18: .4byte gAIScriptPtr
_08129F1C:
adds r0, r2, 0x5
@@ -3096,7 +3095,7 @@ _08129F20:
ContestAICmd_unk_4D: @ 8129F24
push {lr}
bl ContestAICmd_get_condition
- ldr r0, _08129F54 @ =0x020192e4
+ ldr r0, _08129F54 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08129F58 @ =gAIScriptPtr
@@ -3117,7 +3116,7 @@ ContestAICmd_unk_4D: @ 8129F24
str r1, [r3]
b _08129F60
.align 2, 0
-_08129F54: .4byte 0x020192e4
+_08129F54: .4byte gSharedMem + 0x192E4
_08129F58: .4byte gAIScriptPtr
_08129F5C:
adds r0, r2, 0x5
@@ -3146,7 +3145,7 @@ ContestAICmd_get_used_combo_starter: @ 8129F64
lsls r0, r4, 3
subs r0, r4
lsls r0, 2
- ldr r1, _08129FB4 @ =0x02019260
+ ldr r1, _08129FB4 @ =gSharedMem + 0x19260
adds r0, r1
ldrh r0, [r0, 0x8]
lsls r0, 3
@@ -3156,7 +3155,7 @@ ContestAICmd_get_used_combo_starter: @ 8129F64
orrs r0, r1
lsrs r6, r0, 31
_08129F9C:
- ldr r0, _08129FB8 @ =0x020192e4
+ ldr r0, _08129FB8 @ =gSharedMem + 0x192E4
strh r6, [r0, 0x18]
ldr r0, [r5]
adds r0, 0x2
@@ -3167,15 +3166,15 @@ _08129F9C:
.align 2, 0
_08129FAC: .4byte gAIScriptPtr
_08129FB0: .4byte gContestMoves
-_08129FB4: .4byte 0x02019260
-_08129FB8: .4byte 0x020192e4
+_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 @ =0x020192e4
+ ldr r0, _08129FEC @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _08129FF0 @ =gAIScriptPtr
@@ -3196,7 +3195,7 @@ ContestAICmd_unk_4F: @ 8129FBC
str r1, [r3]
b _08129FF8
.align 2, 0
-_08129FEC: .4byte 0x020192e4
+_08129FEC: .4byte gSharedMem + 0x192E4
_08129FF0: .4byte gAIScriptPtr
_08129FF4:
adds r0, r2, 0x5
@@ -3210,7 +3209,7 @@ _08129FF8:
ContestAICmd_unk_50: @ 8129FFC
push {lr}
bl ContestAICmd_get_used_combo_starter
- ldr r0, _0812A02C @ =0x020192e4
+ ldr r0, _0812A02C @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812A030 @ =gAIScriptPtr
@@ -3231,7 +3230,7 @@ ContestAICmd_unk_50: @ 8129FFC
str r1, [r3]
b _0812A038
.align 2, 0
-_0812A02C: .4byte 0x020192e4
+_0812A02C: .4byte gSharedMem + 0x192E4
_0812A030: .4byte gAIScriptPtr
_0812A034:
adds r0, r2, 0x5
@@ -3245,7 +3244,7 @@ _0812A038:
ContestAICmd_unk_51: @ 812A03C
push {lr}
bl ContestAICmd_get_used_combo_starter
- ldr r0, _0812A06C @ =0x020192e4
+ ldr r0, _0812A06C @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812A070 @ =gAIScriptPtr
@@ -3266,7 +3265,7 @@ ContestAICmd_unk_51: @ 812A03C
str r1, [r3]
b _0812A078
.align 2, 0
-_0812A06C: .4byte 0x020192e4
+_0812A06C: .4byte gSharedMem + 0x192E4
_0812A070: .4byte gAIScriptPtr
_0812A074:
adds r0, r2, 0x5
@@ -3280,7 +3279,7 @@ _0812A078:
ContestAICmd_unk_52: @ 812A07C
push {lr}
bl ContestAICmd_get_used_combo_starter
- ldr r0, _0812A0AC @ =0x020192e4
+ ldr r0, _0812A0AC @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812A0B0 @ =gAIScriptPtr
@@ -3301,7 +3300,7 @@ ContestAICmd_unk_52: @ 812A07C
str r1, [r3]
b _0812A0B8
.align 2, 0
-_0812A0AC: .4byte 0x020192e4
+_0812A0AC: .4byte gSharedMem + 0x192E4
_0812A0B0: .4byte gAIScriptPtr
_0812A0B4:
adds r0, r2, 0x5
@@ -3324,14 +3323,14 @@ ContestAICmd_check_can_participate: @ 812A0BC
lsls r0, 24
cmp r0, 0
beq _0812A0E4
- ldr r1, _0812A0E0 @ =0x020192e4
+ ldr r1, _0812A0E0 @ =gSharedMem + 0x192E4
movs r0, 0
b _0812A0E8
.align 2, 0
_0812A0DC: .4byte gAIScriptPtr
-_0812A0E0: .4byte 0x020192e4
+_0812A0E0: .4byte gSharedMem + 0x192E4
_0812A0E4:
- ldr r1, _0812A0F8 @ =0x020192e4
+ ldr r1, _0812A0F8 @ =gSharedMem + 0x192E4
movs r0, 0x1
_0812A0E8:
strh r0, [r1, 0x18]
@@ -3342,7 +3341,7 @@ _0812A0E8:
pop {r0}
bx r0
.align 2, 0
-_0812A0F8: .4byte 0x020192e4
+_0812A0F8: .4byte gSharedMem + 0x192E4
_0812A0FC: .4byte gAIScriptPtr
thumb_func_end ContestAICmd_check_can_participate
@@ -3350,7 +3349,7 @@ _0812A0FC: .4byte gAIScriptPtr
ContestAICmd_unk_54: @ 812A100
push {lr}
bl ContestAICmd_check_can_participate
- ldr r0, _0812A12C @ =0x020192e4
+ ldr r0, _0812A12C @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -3370,7 +3369,7 @@ ContestAICmd_unk_54: @ 812A100
str r1, [r3]
b _0812A13C
.align 2, 0
-_0812A12C: .4byte 0x020192e4
+_0812A12C: .4byte gSharedMem + 0x192E4
_0812A130: .4byte gAIScriptPtr
_0812A134:
ldr r1, _0812A140 @ =gAIScriptPtr
@@ -3388,7 +3387,7 @@ _0812A140: .4byte gAIScriptPtr
ContestAICmd_unk_55: @ 812A144
push {lr}
bl ContestAICmd_check_can_participate
- ldr r0, _0812A170 @ =0x020192e4
+ ldr r0, _0812A170 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -3408,7 +3407,7 @@ ContestAICmd_unk_55: @ 812A144
str r1, [r3]
b _0812A180
.align 2, 0
-_0812A170: .4byte 0x020192e4
+_0812A170: .4byte gSharedMem + 0x192E4
_0812A174: .4byte gAIScriptPtr
_0812A178:
ldr r1, _0812A184 @ =gAIScriptPtr
@@ -3431,7 +3430,7 @@ ContestAICmd_get_val_812A188: @ 812A188
bl sub_8128A7C
lsls r0, 24
lsrs r0, 24
- ldr r2, _0812A1C0 @ =0x020192e4
+ ldr r2, _0812A1C0 @ =gSharedMem + 0x192E4
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -3450,14 +3449,14 @@ ContestAICmd_get_val_812A188: @ 812A188
bx r0
.align 2, 0
_0812A1BC: .4byte gAIScriptPtr
-_0812A1C0: .4byte 0x020192e4
+_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 @ =0x020192e4
+ ldr r0, _0812A1F0 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -3477,7 +3476,7 @@ ContestAICmd_unk_57: @ 812A1C4
str r1, [r3]
b _0812A200
.align 2, 0
-_0812A1F0: .4byte 0x020192e4
+_0812A1F0: .4byte gSharedMem + 0x192E4
_0812A1F4: .4byte gAIScriptPtr
_0812A1F8:
ldr r1, _0812A204 @ =gAIScriptPtr
@@ -3495,7 +3494,7 @@ _0812A204: .4byte gAIScriptPtr
ContestAICmd_unk_58: @ 812A208
push {lr}
bl ContestAICmd_get_val_812A188
- ldr r0, _0812A234 @ =0x020192e4
+ ldr r0, _0812A234 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -3515,7 +3514,7 @@ ContestAICmd_unk_58: @ 812A208
str r1, [r3]
b _0812A244
.align 2, 0
-_0812A234: .4byte 0x020192e4
+_0812A234: .4byte gSharedMem + 0x192E4
_0812A238: .4byte gAIScriptPtr
_0812A23C:
ldr r1, _0812A248 @ =gAIScriptPtr
@@ -3538,7 +3537,7 @@ ContestAICmd_unk_59: @ 812A24C
bl sub_8128A7C
lsls r0, 24
lsrs r0, 24
- ldr r3, _0812A290 @ =0x020192e4
+ ldr r3, _0812A290 @ =gSharedMem + 0x192E4
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -3564,14 +3563,14 @@ ContestAICmd_unk_59: @ 812A24C
bx r0
.align 2, 0
_0812A28C: .4byte gAIScriptPtr
-_0812A290: .4byte 0x020192e4
+_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 @ =0x020192e4
+ ldr r0, _0812A2C0 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -3591,7 +3590,7 @@ ContestAICmd_unk_5A: @ 812A294
str r1, [r3]
b _0812A2D0
.align 2, 0
-_0812A2C0: .4byte 0x020192e4
+_0812A2C0: .4byte gSharedMem + 0x192E4
_0812A2C4: .4byte gAIScriptPtr
_0812A2C8:
ldr r1, _0812A2D4 @ =gAIScriptPtr
@@ -3609,7 +3608,7 @@ _0812A2D4: .4byte gAIScriptPtr
ContestAICmd_unk_5B: @ 812A2D8
push {lr}
bl ContestAICmd_unk_59
- ldr r0, _0812A304 @ =0x020192e4
+ ldr r0, _0812A304 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -3629,7 +3628,7 @@ ContestAICmd_unk_5B: @ 812A2D8
str r1, [r3]
b _0812A314
.align 2, 0
-_0812A304: .4byte 0x020192e4
+_0812A304: .4byte gSharedMem + 0x192E4
_0812A308: .4byte gAIScriptPtr
_0812A30C:
ldr r1, _0812A318 @ =gAIScriptPtr
@@ -3647,7 +3646,7 @@ _0812A318: .4byte gAIScriptPtr
ContestAICmd_unk_5C: @ 812A31C
push {lr}
bl ContestAICmd_unk_59
- ldr r0, _0812A348 @ =0x020192e4
+ ldr r0, _0812A348 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -3667,7 +3666,7 @@ ContestAICmd_unk_5C: @ 812A31C
str r1, [r3]
b _0812A358
.align 2, 0
-_0812A348: .4byte 0x020192e4
+_0812A348: .4byte gSharedMem + 0x192E4
_0812A34C: .4byte gAIScriptPtr
_0812A350:
ldr r1, _0812A35C @ =gAIScriptPtr
@@ -3685,7 +3684,7 @@ _0812A35C: .4byte gAIScriptPtr
ContestAICmd_unk_5D: @ 812A360
push {lr}
bl ContestAICmd_unk_59
- ldr r0, _0812A38C @ =0x020192e4
+ ldr r0, _0812A38C @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -3705,7 +3704,7 @@ ContestAICmd_unk_5D: @ 812A360
str r1, [r3]
b _0812A39C
.align 2, 0
-_0812A38C: .4byte 0x020192e4
+_0812A38C: .4byte gSharedMem + 0x192E4
_0812A390: .4byte gAIScriptPtr
_0812A394:
ldr r1, _0812A3A0 @ =gAIScriptPtr
@@ -3727,7 +3726,7 @@ ContestAICmd_unk_5E: @ 812A3A4
ldrb r0, [r0, 0x1]
bl sub_8128A7C
lsls r0, 24
- ldr r3, _0812A3DC @ =0x020192e4
+ ldr r3, _0812A3DC @ =gSharedMem + 0x192E4
ldr r2, _0812A3E0 @ =gUnknown_02038670
lsrs r0, 23
adds r0, r2
@@ -3748,7 +3747,7 @@ ContestAICmd_unk_5E: @ 812A3A4
bx r0
.align 2, 0
_0812A3D8: .4byte gAIScriptPtr
-_0812A3DC: .4byte 0x020192e4
+_0812A3DC: .4byte gSharedMem + 0x192E4
_0812A3E0: .4byte gUnknown_02038670
thumb_func_end ContestAICmd_unk_5E
@@ -3756,7 +3755,7 @@ _0812A3E0: .4byte gUnknown_02038670
ContestAICmd_unk_5F: @ 812A3E4
push {lr}
bl ContestAICmd_unk_5E
- ldr r0, _0812A410 @ =0x020192e4
+ ldr r0, _0812A410 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -3776,7 +3775,7 @@ ContestAICmd_unk_5F: @ 812A3E4
str r1, [r3]
b _0812A420
.align 2, 0
-_0812A410: .4byte 0x020192e4
+_0812A410: .4byte gSharedMem + 0x192E4
_0812A414: .4byte gAIScriptPtr
_0812A418:
ldr r1, _0812A424 @ =gAIScriptPtr
@@ -3794,7 +3793,7 @@ _0812A424: .4byte gAIScriptPtr
ContestAICmd_unk_60: @ 812A428
push {lr}
bl ContestAICmd_unk_5E
- ldr r0, _0812A454 @ =0x020192e4
+ ldr r0, _0812A454 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -3814,7 +3813,7 @@ ContestAICmd_unk_60: @ 812A428
str r1, [r3]
b _0812A464
.align 2, 0
-_0812A454: .4byte 0x020192e4
+_0812A454: .4byte gSharedMem + 0x192E4
_0812A458: .4byte gAIScriptPtr
_0812A45C:
ldr r1, _0812A468 @ =gAIScriptPtr
@@ -3832,7 +3831,7 @@ _0812A468: .4byte gAIScriptPtr
ContestAICmd_unk_61: @ 812A46C
push {lr}
bl ContestAICmd_unk_5E
- ldr r0, _0812A498 @ =0x020192e4
+ ldr r0, _0812A498 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -3852,7 +3851,7 @@ ContestAICmd_unk_61: @ 812A46C
str r1, [r3]
b _0812A4A8
.align 2, 0
-_0812A498: .4byte 0x020192e4
+_0812A498: .4byte gSharedMem + 0x192E4
_0812A49C: .4byte gAIScriptPtr
_0812A4A0:
ldr r1, _0812A4AC @ =gAIScriptPtr
@@ -3870,7 +3869,7 @@ _0812A4AC: .4byte gAIScriptPtr
ContestAICmd_unk_62: @ 812A4B0
push {lr}
bl ContestAICmd_unk_5E
- ldr r0, _0812A4DC @ =0x020192e4
+ ldr r0, _0812A4DC @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -3890,7 +3889,7 @@ ContestAICmd_unk_62: @ 812A4B0
str r1, [r3]
b _0812A4EC
.align 2, 0
-_0812A4DC: .4byte 0x020192e4
+_0812A4DC: .4byte gSharedMem + 0x192E4
_0812A4E0: .4byte gAIScriptPtr
_0812A4E4:
ldr r1, _0812A4F0 @ =gAIScriptPtr
@@ -3914,7 +3913,7 @@ ContestAICmd_unk_63: @ 812A4F4
lsls r0, 24
ldr r3, [r4]
ldrb r1, [r3, 0x2]
- ldr r2, _0812A530 @ =0x02019204
+ ldr r2, _0812A530 @ =gSharedMem + 0x19204
lsrs r0, 23
lsls r1, 3
adds r0, r1
@@ -3935,7 +3934,7 @@ ContestAICmd_unk_63: @ 812A4F4
bx r0
.align 2, 0
_0812A52C: .4byte gAIScriptPtr
-_0812A530: .4byte 0x02019204
+_0812A530: .4byte gSharedMem + 0x19204
_0812A534: .4byte gContestMoves
thumb_func_end ContestAICmd_unk_63
@@ -3943,7 +3942,7 @@ _0812A534: .4byte gContestMoves
ContestAICmd_unk_64: @ 812A538
push {lr}
bl ContestAICmd_unk_63
- ldr r0, _0812A568 @ =0x020192e4
+ ldr r0, _0812A568 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812A56C @ =gAIScriptPtr
@@ -3964,7 +3963,7 @@ ContestAICmd_unk_64: @ 812A538
str r1, [r3]
b _0812A574
.align 2, 0
-_0812A568: .4byte 0x020192e4
+_0812A568: .4byte gSharedMem + 0x192E4
_0812A56C: .4byte gAIScriptPtr
_0812A570:
adds r0, r2, 0x5
@@ -3978,7 +3977,7 @@ _0812A574:
ContestAICmd_unk_65: @ 812A578
push {lr}
bl ContestAICmd_unk_63
- ldr r0, _0812A5A8 @ =0x020192e4
+ ldr r0, _0812A5A8 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812A5AC @ =gAIScriptPtr
@@ -3999,7 +3998,7 @@ ContestAICmd_unk_65: @ 812A578
str r1, [r3]
b _0812A5B4
.align 2, 0
-_0812A5A8: .4byte 0x020192e4
+_0812A5A8: .4byte gSharedMem + 0x192E4
_0812A5AC: .4byte gAIScriptPtr
_0812A5B0:
adds r0, r2, 0x5
@@ -4013,7 +4012,7 @@ _0812A5B4:
ContestAICmd_unk_66: @ 812A5B8
push {lr}
bl ContestAICmd_unk_63
- ldr r0, _0812A5E8 @ =0x020192e4
+ ldr r0, _0812A5E8 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812A5EC @ =gAIScriptPtr
@@ -4034,7 +4033,7 @@ ContestAICmd_unk_66: @ 812A5B8
str r1, [r3]
b _0812A5F4
.align 2, 0
-_0812A5E8: .4byte 0x020192e4
+_0812A5E8: .4byte gSharedMem + 0x192E4
_0812A5EC: .4byte gAIScriptPtr
_0812A5F0:
adds r0, r2, 0x5
@@ -4048,7 +4047,7 @@ _0812A5F4:
ContestAICmd_unk_67: @ 812A5F8
push {lr}
bl ContestAICmd_unk_63
- ldr r0, _0812A628 @ =0x020192e4
+ ldr r0, _0812A628 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812A62C @ =gAIScriptPtr
@@ -4069,7 +4068,7 @@ ContestAICmd_unk_67: @ 812A5F8
str r1, [r3]
b _0812A634
.align 2, 0
-_0812A628: .4byte 0x020192e4
+_0812A628: .4byte gSharedMem + 0x192E4
_0812A62C: .4byte gAIScriptPtr
_0812A630:
adds r0, r2, 0x5
@@ -4090,7 +4089,7 @@ ContestAICmd_unk_68: @ 812A638
lsrs r0, 24
ldr r3, [r4]
ldrb r1, [r3, 0x2]
- ldr r2, _0812A670 @ =0x02019204
+ ldr r2, _0812A670 @ =gSharedMem + 0x19204
lsls r1, 2
adds r0, r1
adds r1, r2, 0
@@ -4108,14 +4107,14 @@ ContestAICmd_unk_68: @ 812A638
bx r0
.align 2, 0
_0812A66C: .4byte gAIScriptPtr
-_0812A670: .4byte 0x02019204
+_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 @ =0x020192e4
+ ldr r0, _0812A6A4 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812A6A8 @ =gAIScriptPtr
@@ -4136,7 +4135,7 @@ ContestAICmd_unk_69: @ 812A674
str r1, [r3]
b _0812A6B0
.align 2, 0
-_0812A6A4: .4byte 0x020192e4
+_0812A6A4: .4byte gSharedMem + 0x192E4
_0812A6A8: .4byte gAIScriptPtr
_0812A6AC:
adds r0, r2, 0x5
@@ -4150,7 +4149,7 @@ _0812A6B0:
ContestAICmd_unk_6A: @ 812A6B4
push {lr}
bl ContestAICmd_unk_68
- ldr r0, _0812A6E4 @ =0x020192e4
+ ldr r0, _0812A6E4 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812A6E8 @ =gAIScriptPtr
@@ -4171,7 +4170,7 @@ ContestAICmd_unk_6A: @ 812A6B4
str r1, [r3]
b _0812A6F0
.align 2, 0
-_0812A6E4: .4byte 0x020192e4
+_0812A6E4: .4byte gSharedMem + 0x192E4
_0812A6E8: .4byte gAIScriptPtr
_0812A6EC:
adds r0, r2, 0x5
@@ -4185,7 +4184,7 @@ _0812A6F0:
ContestAICmd_unk_6B: @ 812A6F4
push {lr}
bl ContestAICmd_unk_68
- ldr r0, _0812A724 @ =0x020192e4
+ ldr r0, _0812A724 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812A728 @ =gAIScriptPtr
@@ -4206,7 +4205,7 @@ ContestAICmd_unk_6B: @ 812A6F4
str r1, [r3]
b _0812A730
.align 2, 0
-_0812A724: .4byte 0x020192e4
+_0812A724: .4byte gSharedMem + 0x192E4
_0812A728: .4byte gAIScriptPtr
_0812A72C:
adds r0, r2, 0x5
@@ -4220,7 +4219,7 @@ _0812A730:
ContestAICmd_unk_6C: @ 812A734
push {lr}
bl ContestAICmd_unk_68
- ldr r0, _0812A764 @ =0x020192e4
+ ldr r0, _0812A764 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812A768 @ =gAIScriptPtr
@@ -4241,7 +4240,7 @@ ContestAICmd_unk_6C: @ 812A734
str r1, [r3]
b _0812A770
.align 2, 0
-_0812A764: .4byte 0x020192e4
+_0812A764: .4byte gSharedMem + 0x192E4
_0812A768: .4byte gAIScriptPtr
_0812A76C:
adds r0, r2, 0x5
@@ -4261,7 +4260,7 @@ ContestAICmd_unk_6D: @ 812A774
lsls r0, 24
ldr r3, [r5]
ldrb r1, [r3, 0x2]
- ldr r2, _0812A7B8 @ =0x02019204
+ ldr r2, _0812A7B8 @ =gSharedMem + 0x19204
lsrs r0, 23
lsls r1, 3
adds r0, r1
@@ -4286,7 +4285,7 @@ ContestAICmd_unk_6D: @ 812A774
bx r0
.align 2, 0
_0812A7B4: .4byte gAIScriptPtr
-_0812A7B8: .4byte 0x02019204
+_0812A7B8: .4byte gSharedMem + 0x19204
_0812A7BC: .4byte gContestEffects
_0812A7C0: .4byte gContestMoves
thumb_func_end ContestAICmd_unk_6D
@@ -4295,7 +4294,7 @@ _0812A7C0: .4byte gContestMoves
ContestAICmd_unk_6E: @ 812A7C4
push {lr}
bl ContestAICmd_unk_6D
- ldr r0, _0812A7F4 @ =0x020192e4
+ ldr r0, _0812A7F4 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812A7F8 @ =gAIScriptPtr
@@ -4316,7 +4315,7 @@ ContestAICmd_unk_6E: @ 812A7C4
str r1, [r3]
b _0812A800
.align 2, 0
-_0812A7F4: .4byte 0x020192e4
+_0812A7F4: .4byte gSharedMem + 0x192E4
_0812A7F8: .4byte gAIScriptPtr
_0812A7FC:
adds r0, r2, 0x5
@@ -4330,7 +4329,7 @@ _0812A800:
ContestAICmd_unk_6F: @ 812A804
push {lr}
bl ContestAICmd_unk_6D
- ldr r0, _0812A834 @ =0x020192e4
+ ldr r0, _0812A834 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
ldr r3, _0812A838 @ =gAIScriptPtr
@@ -4351,7 +4350,7 @@ ContestAICmd_unk_6F: @ 812A804
str r1, [r3]
b _0812A840
.align 2, 0
-_0812A834: .4byte 0x020192e4
+_0812A834: .4byte gSharedMem + 0x192E4
_0812A838: .4byte gAIScriptPtr
_0812A83C:
adds r0, r2, 0x5
@@ -4364,7 +4363,7 @@ _0812A840:
thumb_func_start ContestAICmd_unk_70
ContestAICmd_unk_70: @ 812A844
push {r4,lr}
- ldr r3, _0812A864 @ =0x020192e4
+ ldr r3, _0812A864 @ =gSharedMem + 0x192E4
ldr r4, _0812A868 @ =gAIScriptPtr
ldr r2, [r4]
ldrb r0, [r2, 0x1]
@@ -4380,14 +4379,14 @@ ContestAICmd_unk_70: @ 812A844
pop {r0}
bx r0
.align 2, 0
-_0812A864: .4byte 0x020192e4
+_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 @ =0x020192e4
+ ldr r0, _0812A890 @ =gSharedMem + 0x192E4
ldr r4, _0812A894 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r2, [r3, 0x1]
@@ -4405,14 +4404,14 @@ ContestAICmd_unk_71: @ 812A86C
pop {r0}
bx r0
.align 2, 0
-_0812A890: .4byte 0x020192e4
+_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 @ =0x020192e4
+ ldr r0, _0812A8C4 @ =gSharedMem + 0x192E4
ldr r4, _0812A8C8 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r2, [r3, 0x1]
@@ -4433,14 +4432,14 @@ ContestAICmd_unk_72: @ 812A898
pop {r0}
bx r0
.align 2, 0
-_0812A8C4: .4byte 0x020192e4
+_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 @ =0x020192e4
+ ldr r2, _0812A8F4 @ =gSharedMem + 0x192E4
ldr r4, _0812A8F8 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3, 0x1]
@@ -4460,14 +4459,14 @@ ContestAICmd_unk_73: @ 812A8CC
pop {r0}
bx r0
.align 2, 0
-_0812A8F4: .4byte 0x020192e4
+_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 @ =0x020192e4
+ ldr r2, _0812A924 @ =gSharedMem + 0x192E4
ldr r4, _0812A928 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3, 0x1]
@@ -4487,14 +4486,14 @@ ContestAICmd_unk_74: @ 812A8FC
pop {r0}
bx r0
.align 2, 0
-_0812A924: .4byte 0x020192e4
+_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 @ =0x020192e4
+ ldr r1, _0812A964 @ =gSharedMem + 0x192E4
ldr r4, _0812A968 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r0, [r3, 0x1]
@@ -4522,7 +4521,7 @@ ContestAICmd_unk_75: @ 812A92C
str r1, [r4]
b _0812A972
.align 2, 0
-_0812A964: .4byte 0x020192e4
+_0812A964: .4byte gSharedMem + 0x192E4
_0812A968: .4byte gAIScriptPtr
_0812A96C:
adds r0, r3, 0
@@ -4537,7 +4536,7 @@ _0812A972:
thumb_func_start ContestAICmd_unk_76
ContestAICmd_unk_76: @ 812A978
push {r4,lr}
- ldr r1, _0812A9B0 @ =0x020192e4
+ ldr r1, _0812A9B0 @ =gSharedMem + 0x192E4
ldr r4, _0812A9B4 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r0, [r3, 0x1]
@@ -4565,7 +4564,7 @@ ContestAICmd_unk_76: @ 812A978
str r1, [r4]
b _0812A9BE
.align 2, 0
-_0812A9B0: .4byte 0x020192e4
+_0812A9B0: .4byte gSharedMem + 0x192E4
_0812A9B4: .4byte gAIScriptPtr
_0812A9B8:
adds r0, r3, 0
@@ -4580,7 +4579,7 @@ _0812A9BE:
thumb_func_start ContestAICmd_unk_77
ContestAICmd_unk_77: @ 812A9C4
push {r4,lr}
- ldr r1, _0812A9FC @ =0x020192e4
+ ldr r1, _0812A9FC @ =gSharedMem + 0x192E4
ldr r4, _0812AA00 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r0, [r3, 0x1]
@@ -4608,7 +4607,7 @@ ContestAICmd_unk_77: @ 812A9C4
str r1, [r4]
b _0812AA0A
.align 2, 0
-_0812A9FC: .4byte 0x020192e4
+_0812A9FC: .4byte gSharedMem + 0x192E4
_0812AA00: .4byte gAIScriptPtr
_0812AA04:
adds r0, r3, 0
@@ -4623,7 +4622,7 @@ _0812AA0A:
thumb_func_start ContestAICmd_unk_78
ContestAICmd_unk_78: @ 812AA10
push {r4,lr}
- ldr r1, _0812AA48 @ =0x020192e4
+ ldr r1, _0812AA48 @ =gSharedMem + 0x192E4
ldr r4, _0812AA4C @ =gAIScriptPtr
ldr r3, [r4]
ldrb r0, [r3, 0x1]
@@ -4651,7 +4650,7 @@ ContestAICmd_unk_78: @ 812AA10
str r1, [r4]
b _0812AA56
.align 2, 0
-_0812AA48: .4byte 0x020192e4
+_0812AA48: .4byte gSharedMem + 0x192E4
_0812AA4C: .4byte gAIScriptPtr
_0812AA50:
adds r0, r3, 0
@@ -4666,7 +4665,7 @@ _0812AA56:
thumb_func_start ContestAICmd_unk_79
ContestAICmd_unk_79: @ 812AA5C
push {r4,lr}
- ldr r2, _0812AA98 @ =0x020192e4
+ ldr r2, _0812AA98 @ =gSharedMem + 0x192E4
ldr r4, _0812AA9C @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3, 0x1]
@@ -4695,7 +4694,7 @@ ContestAICmd_unk_79: @ 812AA5C
str r1, [r4]
b _0812AAA4
.align 2, 0
-_0812AA98: .4byte 0x020192e4
+_0812AA98: .4byte gSharedMem + 0x192E4
_0812AA9C: .4byte gAIScriptPtr
_0812AAA0:
adds r0, r3, 0x7
@@ -4709,7 +4708,7 @@ _0812AAA4:
thumb_func_start ContestAICmd_unk_7A
ContestAICmd_unk_7A: @ 812AAAC
push {r4,lr}
- ldr r2, _0812AAE8 @ =0x020192e4
+ ldr r2, _0812AAE8 @ =gSharedMem + 0x192E4
ldr r4, _0812AAEC @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3, 0x1]
@@ -4738,7 +4737,7 @@ ContestAICmd_unk_7A: @ 812AAAC
str r1, [r4]
b _0812AAF4
.align 2, 0
-_0812AAE8: .4byte 0x020192e4
+_0812AAE8: .4byte gSharedMem + 0x192E4
_0812AAEC: .4byte gAIScriptPtr
_0812AAF0:
adds r0, r3, 0x7
@@ -4752,7 +4751,7 @@ _0812AAF4:
thumb_func_start ContestAICmd_unk_7B
ContestAICmd_unk_7B: @ 812AAFC
push {r4,lr}
- ldr r2, _0812AB38 @ =0x020192e4
+ ldr r2, _0812AB38 @ =gSharedMem + 0x192E4
ldr r4, _0812AB3C @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3, 0x1]
@@ -4781,7 +4780,7 @@ ContestAICmd_unk_7B: @ 812AAFC
str r1, [r4]
b _0812AB44
.align 2, 0
-_0812AB38: .4byte 0x020192e4
+_0812AB38: .4byte gSharedMem + 0x192E4
_0812AB3C: .4byte gAIScriptPtr
_0812AB40:
adds r0, r3, 0x7
@@ -4795,7 +4794,7 @@ _0812AB44:
thumb_func_start ContestAICmd_unk_7C
ContestAICmd_unk_7C: @ 812AB4C
push {r4,lr}
- ldr r2, _0812AB88 @ =0x020192e4
+ ldr r2, _0812AB88 @ =gSharedMem + 0x192E4
ldr r4, _0812AB8C @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3, 0x1]
@@ -4824,7 +4823,7 @@ ContestAICmd_unk_7C: @ 812AB4C
str r1, [r4]
b _0812AB94
.align 2, 0
-_0812AB88: .4byte 0x020192e4
+_0812AB88: .4byte gSharedMem + 0x192E4
_0812AB8C: .4byte gAIScriptPtr
_0812AB90:
adds r0, r3, 0x7
@@ -4841,7 +4840,7 @@ ContestAICmd_unk_7D: @ 812AB9C
bl Random
movs r2, 0xFF
ands r2, r0
- ldr r1, _0812ABD4 @ =0x020192e4
+ ldr r1, _0812ABD4 @ =gSharedMem + 0x192E4
ldr r4, _0812ABD8 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r0, [r3, 0x1]
@@ -4865,7 +4864,7 @@ ContestAICmd_unk_7D: @ 812AB9C
str r1, [r4]
b _0812ABE0
.align 2, 0
-_0812ABD4: .4byte 0x020192e4
+_0812ABD4: .4byte gSharedMem + 0x192E4
_0812ABD8: .4byte gAIScriptPtr
_0812ABDC:
adds r0, r3, 0x6
@@ -4882,7 +4881,7 @@ ContestAICmd_unk_7E: @ 812ABE8
bl Random
movs r2, 0xFF
ands r2, r0
- ldr r1, _0812AC20 @ =0x020192e4
+ ldr r1, _0812AC20 @ =gSharedMem + 0x192E4
ldr r4, _0812AC24 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r0, [r3, 0x1]
@@ -4906,7 +4905,7 @@ ContestAICmd_unk_7E: @ 812ABE8
str r1, [r4]
b _0812AC2C
.align 2, 0
-_0812AC20: .4byte 0x020192e4
+_0812AC20: .4byte gSharedMem + 0x192E4
_0812AC24: .4byte gAIScriptPtr
_0812AC28:
adds r0, r3, 0x6
@@ -4970,7 +4969,7 @@ ContestAICmd_unk_81: @ 812AC84
lsls r0, 24
cmp r0, 0
bne _0812AC9A
- ldr r2, _0812ACA0 @ =0x020192e4
+ ldr r2, _0812ACA0 @ =gSharedMem + 0x192E4
ldrb r1, [r2, 0x9]
movs r0, 0x1
orrs r0, r1
@@ -4979,13 +4978,13 @@ _0812AC9A:
pop {r0}
bx r0
.align 2, 0
-_0812ACA0: .4byte 0x020192e4
+_0812ACA0: .4byte gSharedMem + 0x192E4
thumb_func_end ContestAICmd_unk_81
thumb_func_start sub_812ACA4
sub_812ACA4: @ 812ACA4
push {r4,lr}
- ldr r3, _0812ACC4 @ =0x020192e4
+ ldr r3, _0812ACC4 @ =gSharedMem + 0x192E4
adds r4, r3, 0
adds r4, 0x40
ldrb r1, [r4]
@@ -5000,13 +4999,13 @@ sub_812ACA4: @ 812ACA4
pop {r0}
bx r0
.align 2, 0
-_0812ACC4: .4byte 0x020192e4
+_0812ACC4: .4byte gSharedMem + 0x192E4
thumb_func_end sub_812ACA4
thumb_func_start sub_812ACC8
sub_812ACC8: @ 812ACC8
push {lr}
- ldr r1, _0812ACDC @ =0x020192e4
+ ldr r1, _0812ACDC @ =gSharedMem + 0x192E4
adds r3, r1, 0
adds r3, 0x40
ldrb r0, [r3]
@@ -5015,7 +5014,7 @@ sub_812ACC8: @ 812ACC8
movs r0, 0
b _0812ACF4
.align 2, 0
-_0812ACDC: .4byte 0x020192e4
+_0812ACDC: .4byte gSharedMem + 0x192E4
_0812ACE0:
subs r0, 0x1
strb r0, [r3]
@@ -5039,7 +5038,7 @@ ContestAICmd_check_for_exciting_move: @ 812ACFC
push {r4-r7,lr}
movs r5, 0
movs r4, 0
- ldr r7, _0812AD28 @ =0x02019325
+ ldr r7, _0812AD28 @ =gSharedMem + 0x19325
ldr r6, _0812AD2C @ =gUnknown_0203858E
_0812AD06:
lsls r0, r4, 1
@@ -5058,14 +5057,14 @@ _0812AD06:
movs r5, 0x1
b _0812AD36
.align 2, 0
-_0812AD28: .4byte 0x02019325
+_0812AD28: .4byte gSharedMem + 0x19325
_0812AD2C: .4byte gUnknown_0203858E
_0812AD30:
adds r4, 0x1
cmp r4, 0x3
ble _0812AD06
_0812AD36:
- ldr r0, _0812AD48 @ =0x020192e4
+ ldr r0, _0812AD48 @ =gSharedMem + 0x192E4
strh r5, [r0, 0x18]
ldr r1, _0812AD4C @ =gAIScriptPtr
ldr r0, [r1]
@@ -5075,7 +5074,7 @@ _0812AD36:
pop {r0}
bx r0
.align 2, 0
-_0812AD48: .4byte 0x020192e4
+_0812AD48: .4byte gSharedMem + 0x192E4
_0812AD4C: .4byte gAIScriptPtr
thumb_func_end ContestAICmd_check_for_exciting_move
@@ -5083,7 +5082,7 @@ _0812AD4C: .4byte gAIScriptPtr
ContestAICmd_unk_83: @ 812AD50
push {lr}
bl ContestAICmd_check_for_exciting_move
- ldr r0, _0812AD7C @ =0x020192e4
+ ldr r0, _0812AD7C @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -5103,7 +5102,7 @@ ContestAICmd_unk_83: @ 812AD50
str r1, [r3]
b _0812AD8C
.align 2, 0
-_0812AD7C: .4byte 0x020192e4
+_0812AD7C: .4byte gSharedMem + 0x192E4
_0812AD80: .4byte gAIScriptPtr
_0812AD84:
ldr r1, _0812AD90 @ =gAIScriptPtr
@@ -5121,7 +5120,7 @@ _0812AD90: .4byte gAIScriptPtr
ContestAICmd_unk_84: @ 812AD94
push {lr}
bl ContestAICmd_check_for_exciting_move
- ldr r0, _0812ADC0 @ =0x020192e4
+ ldr r0, _0812ADC0 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -5141,7 +5140,7 @@ ContestAICmd_unk_84: @ 812AD94
str r1, [r3]
b _0812ADD0
.align 2, 0
-_0812ADC0: .4byte 0x020192e4
+_0812ADC0: .4byte gSharedMem + 0x192E4
_0812ADC4: .4byte gAIScriptPtr
_0812ADC8:
ldr r1, _0812ADD4 @ =gAIScriptPtr
@@ -5168,7 +5167,7 @@ ContestAICmd_unk_85: @ 812ADD8
movs r3, 0
ldr r0, _0812AE0C @ =gContestMons
mov r12, r0
- ldr r5, _0812AE10 @ =0x020192e4
+ ldr r5, _0812AE10 @ =gSharedMem + 0x192E4
adds r0, r5, 0
adds r0, 0x41
ldrb r0, [r0]
@@ -5184,7 +5183,7 @@ ContestAICmd_unk_85: @ 812ADD8
.align 2, 0
_0812AE08: .4byte gAIScriptPtr
_0812AE0C: .4byte gContestMons
-_0812AE10: .4byte 0x020192e4
+_0812AE10: .4byte gSharedMem + 0x192E4
_0812AE14:
adds r3, 0x1
cmp r3, 0x3
@@ -5218,7 +5217,7 @@ _0812AE34:
ContestAICmd_unk_86: @ 812AE44
push {lr}
bl ContestAICmd_unk_85
- ldr r0, _0812AE70 @ =0x020192e4
+ ldr r0, _0812AE70 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -5238,7 +5237,7 @@ ContestAICmd_unk_86: @ 812AE44
str r1, [r3]
b _0812AE80
.align 2, 0
-_0812AE70: .4byte 0x020192e4
+_0812AE70: .4byte gSharedMem + 0x192E4
_0812AE74: .4byte gAIScriptPtr
_0812AE78:
ldr r1, _0812AE84 @ =gAIScriptPtr
@@ -5256,7 +5255,7 @@ _0812AE84: .4byte gAIScriptPtr
ContestAICmd_unk_87: @ 812AE88
push {lr}
bl ContestAICmd_unk_85
- ldr r0, _0812AEB4 @ =0x020192e4
+ ldr r0, _0812AEB4 @ =gSharedMem + 0x192E4
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -5276,7 +5275,7 @@ ContestAICmd_unk_87: @ 812AE88
str r1, [r3]
b _0812AEC4
.align 2, 0
-_0812AEB4: .4byte 0x020192e4
+_0812AEB4: .4byte gSharedMem + 0x192E4
_0812AEB8: .4byte gAIScriptPtr
_0812AEBC:
ldr r1, _0812AEC8 @ =gAIScriptPtr
diff --git a/asm/contest_effect.s b/asm/contest_effect.s
index 4ae5c7e41..1f7c7b109 100644
--- a/asm/contest_effect.s
+++ b/asm/contest_effect.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -70,7 +69,7 @@ ContestEffect_00: @ 80B7D8C
thumb_func_start ContestEffect_01
ContestEffect_01: @ 80B7D90
push {lr}
- ldr r3, _080B7DB8 @ =0x020192d0
+ ldr r3, _080B7DB8 @ =gSharedMem + 0x192D0
ldrb r1, [r3, 0x11]
lsls r0, r1, 3
subs r0, r1
@@ -88,13 +87,13 @@ ContestEffect_01: @ 80B7D90
pop {r0}
bx r0
.align 2, 0
-_080B7DB8: .4byte 0x020192d0
+_080B7DB8: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_01
thumb_func_start ContestEffect_02
ContestEffect_02: @ 80B7DBC
push {lr}
- ldr r3, _080B7DE4 @ =0x020192d0
+ ldr r3, _080B7DE4 @ =gSharedMem + 0x192D0
ldrb r1, [r3, 0x11]
lsls r0, r1, 3
subs r0, r1
@@ -112,13 +111,13 @@ ContestEffect_02: @ 80B7DBC
pop {r0}
bx r0
.align 2, 0
-_080B7DE4: .4byte 0x020192d0
+_080B7DE4: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_02
thumb_func_start ContestEffect_03
ContestEffect_03: @ 80B7DE8
push {r4,lr}
- ldr r3, _080B7E30 @ =0x020192d0
+ ldr r3, _080B7E30 @ =gSharedMem + 0x192D0
ldrb r1, [r3, 0x11]
lsls r0, r1, 3
subs r0, r1
@@ -154,13 +153,13 @@ ContestEffect_03: @ 80B7DE8
pop {r0}
bx r0
.align 2, 0
-_080B7E30: .4byte 0x020192d0
+_080B7E30: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_03
thumb_func_start ContestEffect_04
ContestEffect_04: @ 80B7E34
push {lr}
- ldr r2, _080B7E58 @ =0x020192d0
+ ldr r2, _080B7E58 @ =gSharedMem + 0x192D0
ldrb r1, [r2, 0x11]
lsls r0, r1, 3
subs r0, r1
@@ -176,13 +175,13 @@ ContestEffect_04: @ 80B7E34
pop {r0}
bx r0
.align 2, 0
-_080B7E58: .4byte 0x020192d0
+_080B7E58: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_04
thumb_func_start ContestEffect_05
ContestEffect_05: @ 80B7E5C
push {lr}
- ldr r3, _080B7E84 @ =0x020192d0
+ ldr r3, _080B7E84 @ =gSharedMem + 0x192D0
ldrb r1, [r3, 0x11]
lsls r0, r1, 3
subs r0, r1
@@ -200,13 +199,13 @@ ContestEffect_05: @ 80B7E5C
pop {r0}
bx r0
.align 2, 0
-_080B7E84: .4byte 0x020192d0
+_080B7E84: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_05
thumb_func_start ContestEffect_06
ContestEffect_06: @ 80B7E88
push {lr}
- ldr r2, _080B7EAC @ =0x020192d0
+ ldr r2, _080B7EAC @ =gSharedMem + 0x192D0
ldrb r1, [r2, 0x11]
lsls r0, r1, 3
subs r0, r1
@@ -222,13 +221,13 @@ ContestEffect_06: @ 80B7E88
pop {r0}
bx r0
.align 2, 0
-_080B7EAC: .4byte 0x020192d0
+_080B7EAC: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_06
thumb_func_start ContestEffect_07
ContestEffect_07: @ 80B7EB0
push {lr}
- ldr r3, _080B7ED8 @ =0x020192d0
+ ldr r3, _080B7ED8 @ =gSharedMem + 0x192D0
ldrb r1, [r3, 0x11]
lsls r0, r1, 3
subs r0, r1
@@ -246,14 +245,14 @@ ContestEffect_07: @ 80B7EB0
pop {r0}
bx r0
.align 2, 0
-_080B7ED8: .4byte 0x020192d0
+_080B7ED8: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_07
thumb_func_start ContestEffect_08
ContestEffect_08: @ 80B7EDC
push {r4,lr}
movs r2, 0
- ldr r3, _080B7F38 @ =0x020192d0
+ ldr r3, _080B7F38 @ =gSharedMem + 0x192D0
ldrb r0, [r3, 0x11]
adds r1, r0, r3
ldrb r0, [r1]
@@ -276,7 +275,7 @@ _080B7EF8:
cmp r0, r1
bne _080B7EF8
_080B7F0A:
- ldr r1, _080B7F38 @ =0x020192d0
+ ldr r1, _080B7F38 @ =gSharedMem + 0x192D0
strb r2, [r1, 0x8]
movs r0, 0xFF
strb r0, [r1, 0x9]
@@ -286,12 +285,12 @@ _080B7F0A:
_080B7F1A:
cmp r2, 0
bne _080B7F28
- ldr r0, _080B7F38 @ =0x020192d0
+ ldr r0, _080B7F38 @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x36
bl sub_80B1404
_080B7F28:
- ldr r0, _080B7F38 @ =0x020192d0
+ ldr r0, _080B7F38 @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x30
bl sub_80B13EC
@@ -299,14 +298,14 @@ _080B7F28:
pop {r0}
bx r0
.align 2, 0
-_080B7F38: .4byte 0x020192d0
+_080B7F38: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_08
thumb_func_start ContestEffect_09
ContestEffect_09: @ 80B7F3C
push {r4-r6,lr}
movs r2, 0
- ldr r1, _080B7F9C @ =0x020192d0
+ ldr r1, _080B7F9C @ =gSharedMem + 0x192D0
ldrb r0, [r1, 0x11]
adds r4, r0, r1
ldrb r0, [r4]
@@ -329,7 +328,7 @@ _080B7F64:
adds r2, 0x1
cmp r2, 0x3
ble _080B7F54
- ldr r0, _080B7F9C @ =0x020192d0
+ ldr r0, _080B7F9C @ =gSharedMem + 0x192D0
adds r0, 0x8
adds r0, r3, r0
movs r1, 0xFF
@@ -340,12 +339,12 @@ _080B7F64:
_080B7F7C:
cmp r2, 0
bne _080B7F8A
- ldr r0, _080B7F9C @ =0x020192d0
+ ldr r0, _080B7F9C @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x36
bl sub_80B1404
_080B7F8A:
- ldr r0, _080B7F9C @ =0x020192d0
+ ldr r0, _080B7F9C @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x30
bl sub_80B13EC
@@ -353,7 +352,7 @@ _080B7F8A:
pop {r0}
bx r0
.align 2, 0
-_080B7F9C: .4byte 0x020192d0
+_080B7F9C: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_09
thumb_func_start ContestEffect_14
@@ -374,13 +373,13 @@ ContestEffect_14: @ 80B7FA0
bhi _080B7FC2
movs r1, 0x28
_080B7FC2:
- ldr r0, _080B7FD0 @ =0x020192d0
+ ldr r0, _080B7FD0 @ =gSharedMem + 0x192D0
strh r1, [r0, 0x4]
bl ContestEffect_08
pop {r0}
bx r0
.align 2, 0
-_080B7FD0: .4byte 0x020192d0
+_080B7FD0: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_14
thumb_func_start ContestEffect_15
@@ -389,7 +388,7 @@ ContestEffect_15: @ 80B7FD4
mov r7, r8
push {r7}
movs r7, 0
- ldr r0, _080B806C @ =0x020192d0
+ ldr r0, _080B806C @ =gSharedMem + 0x192D0
ldrb r6, [r0, 0x11]
adds r1, r6, r0
ldrb r1, [r1]
@@ -462,7 +461,7 @@ _080B8062:
pop {r0}
bx r0
.align 2, 0
-_080B806C: .4byte 0x020192d0
+_080B806C: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_15
thumb_func_start ContestEffect_16
@@ -474,7 +473,7 @@ ContestEffect_16: @ 80B8070
push {r5-r7}
movs r0, 0
mov r9, r0
- ldr r0, _080B8108 @ =0x020192d0
+ ldr r0, _080B8108 @ =gSharedMem + 0x192D0
ldrb r7, [r0, 0x11]
adds r1, r7, r0
ldrb r1, [r1]
@@ -544,7 +543,7 @@ _080B80FA:
pop {r0}
bx r0
.align 2, 0
-_080B8108: .4byte 0x020192d0
+_080B8108: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_16
thumb_func_start ContestEffect_17
@@ -555,7 +554,7 @@ ContestEffect_17: @ 80B810C
push {r6,r7}
movs r0, 0
mov r9, r0
- ldr r0, _080B8150 @ =0x020192d0
+ ldr r0, _080B8150 @ =gSharedMem + 0x192D0
ldrb r1, [r0, 0x11]
mov r8, r1
adds r1, r0
@@ -585,7 +584,7 @@ _080B812E:
movs r0, 0x32
b _080B8156
.align 2, 0
-_080B8150: .4byte 0x020192d0
+_080B8150: .4byte gSharedMem + 0x192D0
_080B8154:
movs r0, 0xA
_080B8156:
@@ -605,7 +604,7 @@ _080B8156:
_080B8172:
adds r7, 0x1C
adds r5, 0x1
- ldr r6, _080B81A0 @ =0x020192d0
+ ldr r6, _080B81A0 @ =gSharedMem + 0x192D0
cmp r5, 0x3
ble _080B812E
_080B817C:
@@ -626,13 +625,13 @@ _080B8192:
pop {r0}
bx r0
.align 2, 0
-_080B81A0: .4byte 0x020192d0
+_080B81A0: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_17
thumb_func_start ContestEffect_18
ContestEffect_18: @ 80B81A4
push {r4,lr}
- ldr r4, _080B81D0 @ =0x020192d0
+ ldr r4, _080B81D0 @ =gSharedMem + 0x192D0
ldrb r1, [r4, 0x11]
lsls r0, r1, 3
subs r0, r1
@@ -652,13 +651,13 @@ ContestEffect_18: @ 80B81A4
pop {r0}
bx r0
.align 2, 0
-_080B81D0: .4byte 0x020192d0
+_080B81D0: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_18
thumb_func_start ContestEffect_19
ContestEffect_19: @ 80B81D4
push {r4,lr}
- ldr r4, _080B8208 @ =0x020192d0
+ ldr r4, _080B8208 @ =gSharedMem + 0x192D0
ldrb r1, [r4, 0x11]
lsls r0, r1, 3
subs r0, r1
@@ -681,7 +680,7 @@ ContestEffect_19: @ 80B81D4
pop {r0}
bx r0
.align 2, 0
-_080B8208: .4byte 0x020192d0
+_080B8208: .4byte gSharedMem + 0x192D0
_080B820C: .4byte gContestMoves
thumb_func_end ContestEffect_19
@@ -690,14 +689,14 @@ ContestEffect_20: @ 80B8210
push {lr}
movs r0, 0
bl sub_80B9038
- ldr r0, _080B8228 @ =0x020192d0
+ ldr r0, _080B8228 @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x30
bl sub_80B13EC
pop {r0}
bx r0
.align 2, 0
-_080B8228: .4byte 0x020192d0
+_080B8228: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_20
thumb_func_start ContestEffect_21
@@ -705,14 +704,14 @@ ContestEffect_21: @ 80B822C
push {lr}
movs r0, 0x1
bl sub_80B9038
- ldr r0, _080B8244 @ =0x020192d0
+ ldr r0, _080B8244 @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x30
bl sub_80B13EC
pop {r0}
bx r0
.align 2, 0
-_080B8244: .4byte 0x020192d0
+_080B8244: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_21
thumb_func_start ContestEffect_22
@@ -720,14 +719,14 @@ ContestEffect_22: @ 80B8248
push {lr}
movs r0, 0x2
bl sub_80B9038
- ldr r0, _080B8260 @ =0x020192d0
+ ldr r0, _080B8260 @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x30
bl sub_80B13EC
pop {r0}
bx r0
.align 2, 0
-_080B8260: .4byte 0x020192d0
+_080B8260: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_22
thumb_func_start ContestEffect_23
@@ -735,14 +734,14 @@ ContestEffect_23: @ 80B8264
push {lr}
movs r0, 0x3
bl sub_80B9038
- ldr r0, _080B827C @ =0x020192d0
+ ldr r0, _080B827C @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x30
bl sub_80B13EC
pop {r0}
bx r0
.align 2, 0
-_080B827C: .4byte 0x020192d0
+_080B827C: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_23
thumb_func_start ContestEffect_24
@@ -750,21 +749,21 @@ ContestEffect_24: @ 80B8280
push {lr}
movs r0, 0x4
bl sub_80B9038
- ldr r0, _080B8298 @ =0x020192d0
+ ldr r0, _080B8298 @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x30
bl sub_80B13EC
pop {r0}
bx r0
.align 2, 0
-_080B8298: .4byte 0x020192d0
+_080B8298: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_24
thumb_func_start ContestEffect_25
ContestEffect_25: @ 80B829C
push {r4-r7,lr}
movs r4, 0
- ldr r0, _080B82E0 @ =0x020192d0
+ ldr r0, _080B82E0 @ =gSharedMem + 0x192D0
ldrb r1, [r0, 0x11]
adds r1, r0
ldrb r1, [r1]
@@ -795,7 +794,7 @@ _080B82B2:
movs r1, 0xA
b _080B82E8
.align 2, 0
-_080B82E0: .4byte 0x020192d0
+_080B82E0: .4byte gSharedMem + 0x192D0
_080B82E4:
adds r0, r4, 0
movs r1, 0x3C
@@ -843,7 +842,7 @@ ContestEffect_26: @ 80B8310
mov r8, r2
add r3, sp, 0x8
mov r10, r3
- ldr r5, _080B8384 @ =0x020192d0
+ ldr r5, _080B8384 @ =gSharedMem + 0x192D0
adds r7, r5, 0
subs r7, 0x70
_080B8340:
@@ -881,7 +880,7 @@ _080B836E:
strh r0, [r2]
b _080B83B6
.align 2, 0
-_080B8384: .4byte 0x020192d0
+_080B8384: .4byte gSharedMem + 0x192D0
_080B8388:
cmp r4, 0x2
bne _080B8396
@@ -914,7 +913,7 @@ _080B83B6:
movs r7, 0
mov r4, r10
_080B83BC:
- ldr r0, _080B83F0 @ =0x02019260
+ ldr r0, _080B83F0 @ =gSharedMem + 0x19260
adds r5, r7, r0
ldrb r1, [r5, 0x15]
movs r0, 0x10
@@ -940,14 +939,14 @@ _080B83BC:
lsls r0, 1
b _080B83FE
.align 2, 0
-_080B83F0: .4byte 0x02019260
+_080B83F0: .4byte gSharedMem + 0x19260
_080B83F4: .4byte gContestMoves
_080B83F8: .4byte gComboStarterLookupTable
_080B83FC:
movs r0, 0
_080B83FE:
strh r0, [r4]
- ldr r5, _080B8494 @ =0x02019260
+ ldr r5, _080B8494 @ =gSharedMem + 0x19260
adds r0, r7, r5
ldrb r0, [r0, 0xD]
lsls r0, 24
@@ -1016,7 +1015,7 @@ _080B8442:
mov r9, r0
b _080B849C
.align 2, 0
-_080B8494: .4byte 0x02019260
+_080B8494: .4byte gSharedMem + 0x19260
_080B8498:
movs r0, 0x1
str r0, [sp, 0x18]
@@ -1046,7 +1045,7 @@ _080B84B8:
cmp r0, 0xFF
bne _080B8442
_080B84CA:
- ldr r4, _080B84F4 @ =0x020192d0
+ ldr r4, _080B84F4 @ =gSharedMem + 0x192D0
ldrb r0, [r4, 0x11]
movs r1, 0xB
bl sub_80B13EC
@@ -1066,7 +1065,7 @@ _080B84E2:
pop {r0}
bx r0
.align 2, 0
-_080B84F4: .4byte 0x020192d0
+_080B84F4: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_26
thumb_func_start ContestEffect_27
@@ -1077,7 +1076,7 @@ ContestEffect_27: @ 80B84F8
movs r0, 0
mov r8, r0
movs r6, 0
- ldr r7, _080B8580 @ =0x020192d0
+ ldr r7, _080B8580 @ =gSharedMem + 0x192D0
adds r5, r7, 0
subs r5, 0x63
_080B850A:
@@ -1122,7 +1121,7 @@ _080B8556:
adds r6, 0x1
cmp r6, 0x3
ble _080B850A
- ldr r4, _080B8580 @ =0x020192d0
+ ldr r4, _080B8580 @ =gSharedMem + 0x192D0
ldrb r0, [r4, 0x11]
movs r1, 0xC
bl sub_80B13EC
@@ -1139,7 +1138,7 @@ _080B8576:
pop {r0}
bx r0
.align 2, 0
-_080B8580: .4byte 0x020192d0
+_080B8580: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_27
thumb_func_start ContestEffect_28
@@ -1147,7 +1146,7 @@ ContestEffect_28: @ 80B8584
push {r4-r7,lr}
movs r7, 0
movs r5, 0
- ldr r4, _080B85B0 @ =0x020192d0
+ ldr r4, _080B85B0 @ =gSharedMem + 0x192D0
movs r6, 0
_080B858E:
ldrb r0, [r4, 0x11]
@@ -1168,7 +1167,7 @@ _080B858E:
movs r0, 0x28
b _080B85B6
.align 2, 0
-_080B85B0: .4byte 0x020192d0
+_080B85B0: .4byte gSharedMem + 0x192D0
_080B85B4:
movs r0, 0xA
_080B85B6:
@@ -1188,7 +1187,7 @@ _080B85CE:
adds r5, 0x1
cmp r5, 0x3
ble _080B858E
- ldr r4, _080B85F4 @ =0x020192d0
+ ldr r4, _080B85F4 @ =gSharedMem + 0x192D0
ldrb r0, [r4, 0x11]
movs r1, 0xE
bl sub_80B13EC
@@ -1202,14 +1201,14 @@ _080B85EC:
pop {r0}
bx r0
.align 2, 0
-_080B85F4: .4byte 0x020192d0
+_080B85F4: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_28
thumb_func_start ContestEffect_29
ContestEffect_29: @ 80B85F8
push {r4,lr}
ldr r0, _080B863C @ =gUnknown_02038696
- ldr r4, _080B8640 @ =0x020192d0
+ ldr r4, _080B8640 @ =gSharedMem + 0x192D0
ldrb r2, [r4, 0x11]
adds r0, r2, r0
ldrb r0, [r0]
@@ -1243,7 +1242,7 @@ _080B8636:
bx r0
.align 2, 0
_080B863C: .4byte gUnknown_02038696
-_080B8640: .4byte 0x020192d0
+_080B8640: .4byte gSharedMem + 0x192D0
_080B8644: .4byte gContestEffects
_080B8648: .4byte gContestMoves
thumb_func_end ContestEffect_29
@@ -1252,7 +1251,7 @@ _080B8648: .4byte gContestMoves
ContestEffect_30: @ 80B864C
push {r4,lr}
ldr r0, _080B8690 @ =gUnknown_02038696
- ldr r4, _080B8694 @ =0x020192d0
+ ldr r4, _080B8694 @ =gSharedMem + 0x192D0
ldrb r2, [r4, 0x11]
adds r0, r2, r0
ldrb r0, [r0]
@@ -1286,7 +1285,7 @@ _080B868A:
bx r0
.align 2, 0
_080B8690: .4byte gUnknown_02038696
-_080B8694: .4byte 0x020192d0
+_080B8694: .4byte gSharedMem + 0x192D0
_080B8698: .4byte gContestEffects
_080B869C: .4byte gContestMoves
thumb_func_end ContestEffect_30
@@ -1296,7 +1295,7 @@ ContestEffect_31: @ 80B86A0
push {r4-r7,lr}
movs r1, 0
movs r3, 0
- ldr r4, _080B86EC @ =0x020192d0
+ ldr r4, _080B86EC @ =gSharedMem + 0x192D0
ldrb r0, [r4, 0x11]
adds r0, r4
ldrb r5, [r0]
@@ -1321,7 +1320,7 @@ _080B86C4:
bge _080B86D2
movs r3, 0
_080B86D2:
- ldr r4, _080B86EC @ =0x020192d0
+ ldr r4, _080B86EC @ =gSharedMem + 0x192D0
ldrb r2, [r4, 0x11]
adds r0, r2, r4
ldrb r0, [r0]
@@ -1335,7 +1334,7 @@ _080B86E2:
bl sub_80B13EC
b _080B8710
.align 2, 0
-_080B86EC: .4byte 0x020192d0
+_080B86EC: .4byte gSharedMem + 0x192D0
_080B86F0:
lsls r1, r2, 3
subs r1, r2
@@ -1353,7 +1352,7 @@ _080B86F0:
movs r1, 0x11
bl sub_80B13EC
_080B8710:
- ldr r4, _080B873C @ =0x020192d0
+ ldr r4, _080B873C @ =gSharedMem + 0x192D0
ldrb r1, [r4, 0x11]
lsls r0, r1, 3
subs r0, r1
@@ -1374,14 +1373,14 @@ _080B8710:
pop {r0}
bx r0
.align 2, 0
-_080B873C: .4byte 0x020192d0
+_080B873C: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_31
thumb_func_start ContestEffect_32
ContestEffect_32: @ 80B8740
push {r4-r7,lr}
movs r6, 0
- ldr r0, _080B8794 @ =0x020192d0
+ ldr r0, _080B8794 @ =gSharedMem + 0x192D0
ldrb r1, [r0, 0x11]
adds r3, r1, r0
ldrb r1, [r3]
@@ -1423,7 +1422,7 @@ _080B8788:
bl sub_80B13EC
b _080B87B2
.align 2, 0
-_080B8794: .4byte 0x020192d0
+_080B8794: .4byte gSharedMem + 0x192D0
_080B8798:
lsls r1, r2, 3
subs r1, r2
@@ -1446,7 +1445,7 @@ _080B87B2:
thumb_func_start ContestEffect_33
ContestEffect_33: @ 80B87B8
push {lr}
- ldr r0, _080B87D8 @ =0x020192d0
+ ldr r0, _080B87D8 @ =gSharedMem + 0x192D0
ldrb r2, [r0, 0x11]
adds r1, r2, r0
ldrb r3, [r1]
@@ -1462,7 +1461,7 @@ ContestEffect_33: @ 80B87B8
movs r1, 0xA
b _080B87EE
.align 2, 0
-_080B87D8: .4byte 0x020192d0
+_080B87D8: .4byte gSharedMem + 0x192D0
_080B87DC:
lsls r0, r2, 3
subs r0, r2
@@ -1522,54 +1521,54 @@ ContestEffect_34: @ 80B8830
cmp r0, 0x2
bhi _080B885C
movs r4, 0xA
- ldr r0, _080B8858 @ =0x020192d0
+ ldr r0, _080B8858 @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x1A
bl sub_80B13EC
b _080B88B0
.align 2, 0
-_080B8858: .4byte 0x020192d0
+_080B8858: .4byte gSharedMem + 0x192D0
_080B885C:
cmp r0, 0x5
bhi _080B8874
movs r4, 0x14
- ldr r0, _080B8870 @ =0x020192d0
+ ldr r0, _080B8870 @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x1B
bl sub_80B13EC
b _080B88B0
.align 2, 0
-_080B8870: .4byte 0x020192d0
+_080B8870: .4byte gSharedMem + 0x192D0
_080B8874:
cmp r0, 0x7
bhi _080B888C
movs r4, 0x28
- ldr r0, _080B8888 @ =0x020192d0
+ ldr r0, _080B8888 @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x1C
bl sub_80B13EC
b _080B88B0
.align 2, 0
-_080B8888: .4byte 0x020192d0
+_080B8888: .4byte gSharedMem + 0x192D0
_080B888C:
cmp r1, 0x8
bhi _080B88A4
movs r4, 0x3C
- ldr r0, _080B88A0 @ =0x020192d0
+ ldr r0, _080B88A0 @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x1D
bl sub_80B13EC
b _080B88B0
.align 2, 0
-_080B88A0: .4byte 0x020192d0
+_080B88A0: .4byte gSharedMem + 0x192D0
_080B88A4:
movs r4, 0x50
- ldr r0, _080B88C8 @ =0x020192d0
+ ldr r0, _080B88C8 @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x1E
bl sub_80B13EC
_080B88B0:
- ldr r0, _080B88C8 @ =0x020192d0
+ ldr r0, _080B88C8 @ =gSharedMem + 0x192D0
ldrb r2, [r0, 0x11]
lsls r1, r2, 3
subs r1, r2
@@ -1581,13 +1580,13 @@ _080B88B0:
pop {r0}
bx r0
.align 2, 0
-_080B88C8: .4byte 0x020192d0
+_080B88C8: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_34
thumb_func_start ContestEffect_35
ContestEffect_35: @ 80B88CC
push {r4-r7,lr}
- ldr r1, _080B8940 @ =0x020192d0
+ ldr r1, _080B8940 @ =gSharedMem + 0x192D0
ldrb r0, [r1, 0x11]
adds r0, r1
movs r2, 0
@@ -1608,7 +1607,7 @@ _080B88EA:
adds r4, r0, 0
cmp r5, r1
beq _080B8910
- ldr r3, _080B8940 @ =0x020192d0
+ ldr r3, _080B8940 @ =gSharedMem + 0x192D0
_080B88F8:
lsls r0, r2, 24
movs r2, 0x80
@@ -1649,7 +1648,7 @@ _080B8932:
blt _080B8994
b _080B88EA
.align 2, 0
-_080B8940: .4byte 0x020192d0
+_080B8940: .4byte gSharedMem + 0x192D0
_080B8944:
mov r2, r12
ldrb r1, [r2, 0x11]
@@ -1705,7 +1704,7 @@ ContestEffect_36: @ 80B89A4
mov r7, r9
mov r6, r8
push {r6,r7}
- ldr r0, _080B8A28 @ =0x020192d0
+ ldr r0, _080B8A28 @ =gSharedMem + 0x192D0
ldrb r2, [r0, 0x11]
adds r1, r2, r0
ldrb r1, [r1]
@@ -1768,7 +1767,7 @@ _080B89D4:
bl sub_80B13EC
b _080B8A3C
.align 2, 0
-_080B8A28: .4byte 0x020192d0
+_080B8A28: .4byte gSharedMem + 0x192D0
_080B8A2C: .4byte gContestMoves
_080B8A30: .4byte gContestEffects
_080B8A34:
@@ -1788,7 +1787,7 @@ _080B8A3C:
thumb_func_start ContestEffect_37
ContestEffect_37: @ 80B8A48
push {r4-r7,lr}
- ldr r1, _080B8A94 @ =0x020192d0
+ ldr r1, _080B8A94 @ =gSharedMem + 0x192D0
ldrb r0, [r1, 0x11]
adds r0, r1
ldrb r0, [r0]
@@ -1826,7 +1825,7 @@ _080B8A60:
bl sub_80B13EC
b _080B8AA8
.align 2, 0
-_080B8A94: .4byte 0x020192d0
+_080B8A94: .4byte gSharedMem + 0x192D0
_080B8A98:
cmp r1, r0
bge _080B8AA8
@@ -1849,7 +1848,7 @@ _080B8AB0:
thumb_func_start ContestEffect_38
ContestEffect_38: @ 80B8AB8
push {r4,r5,lr}
- ldr r4, _080B8AFC @ =0x020192d0
+ ldr r4, _080B8AFC @ =gSharedMem + 0x192D0
ldrb r2, [r4, 0x11]
lsls r0, r2, 3
subs r0, r2
@@ -1882,7 +1881,7 @@ ContestEffect_38: @ 80B8AB8
bl sub_80B13EC
b _080B8B08
.align 2, 0
-_080B8AFC: .4byte 0x020192d0
+_080B8AFC: .4byte gSharedMem + 0x192D0
_080B8B00:
adds r0, r2, 0
movs r1, 0x3A
@@ -1896,7 +1895,7 @@ _080B8B08:
thumb_func_start ContestEffect_39
ContestEffect_39: @ 80B8B10
push {r4,lr}
- ldr r3, _080B8B48 @ =0x020192d0
+ ldr r3, _080B8B48 @ =gSharedMem + 0x192D0
ldrb r1, [r3, 0x11]
lsls r0, r1, 3
subs r0, r1
@@ -1923,7 +1922,7 @@ ContestEffect_39: @ 80B8B10
bl sub_80B13EC
b _080B8B54
.align 2, 0
-_080B8B48: .4byte 0x020192d0
+_080B8B48: .4byte gSharedMem + 0x192D0
_080B8B4C:
adds r0, r1, 0
movs r1, 0x3B
@@ -1940,7 +1939,7 @@ ContestEffect_40: @ 80B8B5C
mov r7, r8
push {r7}
sub sp, 0x4
- ldr r1, _080B8BE4 @ =0x02019204
+ ldr r1, _080B8BE4 @ =gSharedMem + 0x19204
ldrb r0, [r1, 0x1]
cmp r0, 0x4
bne _080B8B6E
@@ -2008,7 +2007,7 @@ _080B8BB0:
strb r0, [r4]
b _080B8BF8
.align 2, 0
-_080B8BE4: .4byte 0x02019204
+_080B8BE4: .4byte gSharedMem + 0x19204
_080B8BE8:
lsls r0, r5, 24
movs r1, 0x80
@@ -2099,7 +2098,7 @@ ContestEffect_41: @ 80B8C84
mov r6, r8
push {r6,r7}
sub sp, 0x4
- ldr r1, _080B8D14 @ =0x02019204
+ ldr r1, _080B8D14 @ =gSharedMem + 0x19204
ldrb r0, [r1, 0x1]
cmp r0, 0x4
bne _080B8C98
@@ -2170,7 +2169,7 @@ _080B8CE0:
strb r0, [r4]
b _080B8D28
.align 2, 0
-_080B8D14: .4byte 0x02019204
+_080B8D14: .4byte gSharedMem + 0x19204
_080B8D18:
lsls r0, r5, 24
movs r2, 0x80
@@ -2264,7 +2263,7 @@ ContestEffect_42: @ 80B8DB4
ContestEffect_43: @ 80B8DB8
push {r4-r7,lr}
sub sp, 0x8
- ldr r1, _080B8E30 @ =0x02019204
+ ldr r1, _080B8E30 @ =gSharedMem + 0x19204
ldrb r0, [r1, 0x1]
cmp r0, 0x4
beq _080B8EAE
@@ -2323,7 +2322,7 @@ _080B8E10:
strb r0, [r3]
b _080B8E48
.align 2, 0
-_080B8E30: .4byte 0x02019204
+_080B8E30: .4byte gSharedMem + 0x19204
_080B8E34:
subs r0, r4, 0x1
lsls r0, 24
@@ -2346,7 +2345,7 @@ _080B8E48:
cmp r0, 0x3
ble _080B8DF6
movs r6, 0
- ldr r4, _080B8EB8 @ =0x020192d0
+ ldr r4, _080B8EB8 @ =gSharedMem + 0x192D0
adds r7, r4, 0
subs r7, 0x70
movs r3, 0x3F
@@ -2394,14 +2393,14 @@ _080B8EAE:
pop {r0}
bx r0
.align 2, 0
-_080B8EB8: .4byte 0x020192d0
+_080B8EB8: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_43
thumb_func_start ContestEffect_44
ContestEffect_44: @ 80B8EBC
push {lr}
ldr r3, _080B8EF0 @ =gContestMoves
- ldr r1, _080B8EF4 @ =0x020192d0
+ ldr r1, _080B8EF4 @ =gSharedMem + 0x192D0
ldrb r2, [r1, 0x11]
lsls r0, r2, 3
subs r0, r2
@@ -2413,7 +2412,7 @@ ContestEffect_44: @ 80B8EBC
adds r0, r3
ldrb r0, [r0, 0x1]
lsls r0, 29
- ldr r1, _080B8EF8 @ =gScriptContestCategory
+ ldr r1, _080B8EF8 @ =gSpecialVar_ContestCategory
lsrs r0, 29
ldrh r1, [r1]
cmp r0, r1
@@ -2427,8 +2426,8 @@ _080B8EEA:
bx r0
.align 2, 0
_080B8EF0: .4byte gContestMoves
-_080B8EF4: .4byte 0x020192d0
-_080B8EF8: .4byte gScriptContestCategory
+_080B8EF4: .4byte gSharedMem + 0x192D0
+_080B8EF8: .4byte gSpecialVar_ContestCategory
thumb_func_end ContestEffect_44
thumb_func_start ContestEffect_45
@@ -2436,7 +2435,7 @@ ContestEffect_45: @ 80B8EFC
push {r4-r7,lr}
movs r7, 0
movs r5, 0
- ldr r4, _080B8F34 @ =0x020192d0
+ ldr r4, _080B8F34 @ =gSharedMem + 0x192D0
movs r6, 0
_080B8F06:
ldrb r0, [r4, 0x11]
@@ -2462,7 +2461,7 @@ _080B8F06:
bl sub_80B9268
b _080B8F3A
.align 2, 0
-_080B8F34: .4byte 0x020192d0
+_080B8F34: .4byte gSharedMem + 0x192D0
_080B8F38:
movs r0, 0xA
_080B8F3A:
@@ -2484,12 +2483,12 @@ _080B8F52:
ble _080B8F06
cmp r7, 0
bne _080B8F68
- ldr r0, _080B8F78 @ =0x020192d0
+ ldr r0, _080B8F78 @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x36
bl sub_80B1404
_080B8F68:
- ldr r0, _080B8F78 @ =0x020192d0
+ ldr r0, _080B8F78 @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x30
bl sub_80B13EC
@@ -2497,13 +2496,13 @@ _080B8F68:
pop {r0}
bx r0
.align 2, 0
-_080B8F78: .4byte 0x020192d0
+_080B8F78: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_45
thumb_func_start ContestEffect_46
ContestEffect_46: @ 80B8F7C
push {r4,lr}
- ldr r0, _080B8F98 @ =0x02019204
+ ldr r0, _080B8F98 @ =gSharedMem + 0x19204
movs r1, 0x13
ldrsb r1, [r0, r1]
cmp r1, 0
@@ -2515,7 +2514,7 @@ ContestEffect_46: @ 80B8F7C
bl sub_80B13EC
b _080B8FDE
.align 2, 0
-_080B8F98: .4byte 0x02019204
+_080B8F98: .4byte gSharedMem + 0x19204
_080B8F9C:
cmp r1, 0x1
bne _080B8FAE
@@ -2550,7 +2549,7 @@ _080B8FD2:
movs r1, 0x1E
bl sub_80B13EC
_080B8FDE:
- ldr r0, _080B8FF4 @ =0x020192d0
+ ldr r0, _080B8FF4 @ =gSharedMem + 0x192D0
ldrb r2, [r0, 0x11]
lsls r1, r2, 3
subs r1, r2
@@ -2562,13 +2561,13 @@ _080B8FDE:
pop {r0}
bx r0
.align 2, 0
-_080B8FF4: .4byte 0x020192d0
+_080B8FF4: .4byte gSharedMem + 0x192D0
thumb_func_end ContestEffect_46
thumb_func_start ContestEffect_47
ContestEffect_47: @ 80B8FF8
push {lr}
- ldr r3, _080B9034 @ =0x02019328
+ ldr r3, _080B9034 @ =gSharedMem + 0x19328
ldrb r2, [r3, 0x1]
movs r0, 0x1
ands r0, r2
@@ -2597,7 +2596,7 @@ _080B902E:
pop {r0}
bx r0
.align 2, 0
-_080B9034: .4byte 0x02019328
+_080B9034: .4byte gSharedMem + 0x19328
thumb_func_end ContestEffect_47
thumb_func_start sub_80B9038
@@ -2611,7 +2610,7 @@ sub_80B9038: @ 80B9038
mov r8, r0
movs r7, 0
movs r5, 0
- ldr r4, _080B907C @ =0x020192d0
+ ldr r4, _080B907C @ =gSharedMem + 0x192D0
ldr r0, _080B9080 @ =gContestMoves
mov r9, r0
movs r6, 0
@@ -2637,7 +2636,7 @@ _080B9052:
movs r0, 0x28
b _080B9086
.align 2, 0
-_080B907C: .4byte 0x020192d0
+_080B907C: .4byte gSharedMem + 0x192D0
_080B9080: .4byte gContestMoves
_080B9084:
movs r0, 0xA
@@ -2658,7 +2657,7 @@ _080B909A:
ble _080B9052
cmp r7, 0
bne _080B90B0
- ldr r0, _080B90BC @ =0x020192d0
+ ldr r0, _080B90BC @ =gSharedMem + 0x192D0
ldrb r0, [r0, 0x11]
movs r1, 0x36
bl sub_80B1404
@@ -2670,7 +2669,7 @@ _080B90B0:
pop {r0}
bx r0
.align 2, 0
-_080B90BC: .4byte 0x020192d0
+_080B90BC: .4byte gSharedMem + 0x192D0
thumb_func_end sub_80B9038
thumb_func_start sub_80B90C0
@@ -2678,7 +2677,7 @@ sub_80B90C0: @ 80B90C0
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, _080B90EC @ =0x020192d0
+ ldr r2, _080B90EC @ =gSharedMem + 0x192D0
adds r0, r2, 0
adds r0, 0xD
adds r0, r3, r0
@@ -2698,7 +2697,7 @@ sub_80B90C0: @ 80B90C0
movs r1, 0x2D
b _080B9116
.align 2, 0
-_080B90EC: .4byte 0x020192d0
+_080B90EC: .4byte gSharedMem + 0x192D0
_080B90F0:
ldrb r0, [r2, 0x12]
cmp r0, 0
@@ -2738,7 +2737,7 @@ sub_80B9120: @ 80B9120
movs r2, 0x8
bl memset
movs r7, 0
- ldr r1, _080B918C @ =0x020192d0
+ ldr r1, _080B918C @ =gSharedMem + 0x192D0
ldrb r0, [r1, 0x8]
cmp r0, 0xFF
beq _080B91D8
@@ -2785,7 +2784,7 @@ _080B9174:
bl sub_80B13EC
b _080B91C8
.align 2, 0
-_080B918C: .4byte 0x020192d0
+_080B918C: .4byte gSharedMem + 0x192D0
_080B9190:
ldrb r1, [r2, 0xF]
ldrh r0, [r5, 0x6]
@@ -2815,7 +2814,7 @@ _080B91AC:
strh r0, [r1]
_080B91C8:
adds r7, 0x1
- ldr r1, _080B91E8 @ =0x020192d0
+ ldr r1, _080B91E8 @ =gSharedMem + 0x192D0
adds r0, r1, 0
adds r0, 0x8
adds r0, r7, r0
@@ -2833,7 +2832,7 @@ _080B91DC:
movs r0, 0x1
b _080B91F6
.align 2, 0
-_080B91E8: .4byte 0x020192d0
+_080B91E8: .4byte gSharedMem + 0x192D0
_080B91EC:
adds r1, 0x2
adds r7, 0x1
@@ -2856,7 +2855,7 @@ sub_80B9200: @ 80B9200
lsls r2, r0, 3
subs r2, r0
lsls r2, 2
- ldr r0, _080B9220 @ =0x02019260
+ ldr r0, _080B9220 @ =gSharedMem + 0x19260
adds r2, r0
ldrh r0, [r2, 0x2]
subs r0, r1
@@ -2866,7 +2865,7 @@ sub_80B9200: @ 80B9200
strb r1, [r2, 0xE]
bx lr
.align 2, 0
-_080B9220: .4byte 0x02019260
+_080B9220: .4byte gSharedMem + 0x19260
thumb_func_end sub_80B9200
thumb_func_start sub_80B9224
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s
index b91a9665b..5390a8765 100644
--- a/asm/contest_link_80C2020.s
+++ b/asm/contest_link_80C2020.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -408,7 +407,7 @@ sub_80C2358: @ 80C2358
movs r1, 0x1
bl sub_80C30D4
bl sub_80C2340
- ldr r4, _080C2410 @ =0x02018000
+ ldr r4, _080C2410 @ =gSharedMem + 0x18000
adds r0, r4, 0
movs r1, 0
movs r2, 0x18
@@ -458,7 +457,7 @@ sub_80C2358: @ 80C2358
bx r0
.align 2, 0
_080C240C: .4byte gPaletteFade
-_080C2410: .4byte 0x02018000
+_080C2410: .4byte gSharedMem + 0x18000
_080C2414: .4byte sub_80C24F4
_080C2418: .4byte sub_80C2430
_080C241C: .4byte gUnknown_03004200
@@ -665,7 +664,7 @@ sub_80C25C0: @ 80C25C0
adds r0, r4, 0
bl DestroyTask
ldr r2, _080C25F4 @ =gTasks
- ldr r0, _080C25F8 @ =0x02018000
+ ldr r0, _080C25F8 @ =gSharedMem + 0x18000
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
@@ -680,7 +679,7 @@ _080C25EC:
bx r0
.align 2, 0
_080C25F4: .4byte gTasks
-_080C25F8: .4byte 0x02018000
+_080C25F8: .4byte gSharedMem + 0x18000
_080C25FC: .4byte sub_80C2600
thumb_func_end sub_80C25C0
@@ -703,7 +702,7 @@ sub_80C2600: @ 80C2600
movs r1, 0x14
bl CreateTask
ldr r4, _080C264C @ =gContestText_AnnounceResults
- ldr r0, _080C2650 @ =0x02018000
+ ldr r0, _080C2650 @ =gSharedMem + 0x18000
ldrb r1, [r0]
adds r0, r4, 0
bl sub_80C3158
@@ -720,17 +719,17 @@ sub_80C2600: @ 80C2600
_080C2644: .4byte gTasks
_080C2648: .4byte sub_80C2F64
_080C264C: .4byte gContestText_AnnounceResults
-_080C2650: .4byte 0x02018000
+_080C2650: .4byte gSharedMem + 0x18000
_080C2654:
cmp r0, 0x1
bne _080C2668
- ldr r0, _080C2664 @ =0x02018000
+ ldr r0, _080C2664 @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x4]
cmp r0, 0
bne _080C26D4
b _080C267C
.align 2, 0
-_080C2664: .4byte 0x02018000
+_080C2664: .4byte gSharedMem + 0x18000
_080C2668:
cmp r0, 0x2
bne _080C2684
@@ -751,7 +750,7 @@ _080C2684:
cmp r0, 0x3
bne _080C26C0
ldr r4, _080C26B4 @ =gContestText_PreliminaryResults
- ldr r0, _080C26B8 @ =0x02018000
+ ldr r0, _080C26B8 @ =gSharedMem + 0x18000
ldrb r1, [r0]
adds r0, r4, 0
bl sub_80C3158
@@ -771,12 +770,12 @@ _080C26A6:
b _080C26D4
.align 2, 0
_080C26B4: .4byte gContestText_PreliminaryResults
-_080C26B8: .4byte 0x02018000
+_080C26B8: .4byte gSharedMem + 0x18000
_080C26BC: .4byte 0x0000ffff
_080C26C0:
cmp r0, 0x4
bne _080C26D4
- ldr r0, _080C26DC @ =0x02018000
+ ldr r0, _080C26DC @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x4]
cmp r0, 0x2
bne _080C26D4
@@ -789,7 +788,7 @@ _080C26D4:
pop {r0}
bx r0
.align 2, 0
-_080C26DC: .4byte 0x02018000
+_080C26DC: .4byte gSharedMem + 0x18000
_080C26E0: .4byte sub_80C26E4
thumb_func_end sub_80C2600
@@ -819,7 +818,7 @@ _080C270C:
beq _080C2754
b _080C2766
_080C2712:
- ldr r5, _080C2738 @ =0x02018000
+ ldr r5, _080C2738 @ =gSharedMem + 0x18000
ldrb r0, [r5, 0xA]
cmp r0, 0
bne _080C2766
@@ -837,21 +836,21 @@ _080C2712:
strh r0, [r4, 0x8]
b _080C2766
.align 2, 0
-_080C2738: .4byte 0x02018000
+_080C2738: .4byte gSharedMem + 0x18000
_080C273C:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080C2766
_080C2744:
- ldr r0, _080C2750 @ =0x02018000
+ 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 0x02018000
+_080C2750: .4byte gSharedMem + 0x18000
_080C2754:
movs r0, 0x88
lsls r0, 3
@@ -875,7 +874,7 @@ sub_80C2770: @ 80C2770
lsls r0, 24
lsrs r2, r0, 24
adds r4, r2, 0
- ldr r5, _080C27BC @ =0x02018000
+ ldr r5, _080C27BC @ =gSharedMem + 0x18000
ldrb r3, [r5, 0x4]
cmp r3, 0
bne _080C27CC
@@ -907,7 +906,7 @@ sub_80C2770: @ 80C2770
bl sub_80C34CC
b _080C27DE
.align 2, 0
-_080C27BC: .4byte 0x02018000
+_080C27BC: .4byte gSharedMem + 0x18000
_080C27C0: .4byte gTasks
_080C27C4: .4byte gContestText_Round2Results
_080C27C8: .4byte 0x0000ffff
@@ -956,7 +955,7 @@ _080C2814:
beq _080C285C
b _080C286C
_080C281A:
- ldr r5, _080C2840 @ =0x02018000
+ ldr r5, _080C2840 @ =gSharedMem + 0x18000
ldrb r0, [r5, 0xA]
cmp r0, 0
bne _080C286C
@@ -974,21 +973,21 @@ _080C281A:
strh r0, [r4, 0x8]
b _080C286C
.align 2, 0
-_080C2840: .4byte 0x02018000
+_080C2840: .4byte gSharedMem + 0x18000
_080C2844:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080C286C
_080C284C:
- ldr r0, _080C2858 @ =0x02018000
+ 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 0x02018000
+_080C2858: .4byte gSharedMem + 0x18000
_080C285C:
movs r0, 0x88
lsls r0, 3
@@ -1040,7 +1039,7 @@ _080C28A8:
.4byte _080C299C
.4byte _080C2A70
_080C28C0:
- ldr r0, _080C28DC @ =0x02018000
+ ldr r0, _080C28DC @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _080C28CA
@@ -1055,7 +1054,7 @@ _080C28CA:
strh r1, [r0, 0x8]
b _080C2A80
.align 2, 0
-_080C28DC: .4byte 0x02018000
+_080C28DC: .4byte gSharedMem + 0x18000
_080C28E0:
lsls r0, r5, 2
adds r0, r5
@@ -1101,7 +1100,7 @@ _080C292C: .4byte gTasks
_080C2930: .4byte sub_80C3A5C
_080C2934: .4byte gUnknown_02038690
_080C2938:
- ldr r0, _080C2990 @ =0x02018000
+ ldr r0, _080C2990 @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x5]
cmp r0, 0x4
beq _080C2942
@@ -1148,7 +1147,7 @@ _080C2984:
bl sub_80C3E60
b _080C2A80
.align 2, 0
-_080C2990: .4byte 0x02018000
+_080C2990: .4byte gSharedMem + 0x18000
_080C2994: .4byte sub_80C3B30
_080C2998: .4byte gUnknown_02038690
_080C299C:
@@ -1215,7 +1214,7 @@ _080C2A10:
ldr r1, _080C2A60 @ =gContestText_PokeWon
mov r0, sp
bl StringExpandPlaceholders
- ldr r0, _080C2A64 @ =0x02018000
+ ldr r0, _080C2A64 @ =gSharedMem + 0x18000
ldrb r1, [r0]
mov r0, sp
bl sub_80C3158
@@ -1243,7 +1242,7 @@ _080C2A54: .4byte gUnknown_0203857D
_080C2A58: .4byte gStringVar2
_080C2A5C: .4byte gContestMons + 0x2
_080C2A60: .4byte gContestText_PokeWon
-_080C2A64: .4byte 0x02018000
+_080C2A64: .4byte gSharedMem + 0x18000
_080C2A68: .4byte 0x0000ffff
_080C2A6C: .4byte gTasks
_080C2A70:
@@ -1356,7 +1355,7 @@ _080C2B14:
str r3, [sp]
str r6, [sp, 0x4]
str r4, [sp, 0x8]
- ldr r3, _080C2BE4 @ =0x02000000
+ ldr r3, _080C2BE4 @ =gSharedMem
bl HandleLoadSpecialPokePic
adds r0, r6, 0
ldr r1, [sp, 0xC]
@@ -1392,7 +1391,7 @@ _080C2B14:
adds r2, r5
ldr r1, _080C2BF0 @ =sub_80C3C44
str r1, [r2]
- ldr r2, _080C2BE4 @ =0x02000000
+ ldr r2, _080C2BE4 @ =gSharedMem
movs r3, 0xC0
lsls r3, 9
adds r1, r2, r3
@@ -1422,7 +1421,7 @@ _080C2BD4: .4byte gContestMons
_080C2BD8: .4byte gMonFrontPicTable
_080C2BDC: .4byte gMonFrontPicCoords
_080C2BE0: .4byte gUnknown_081FAF4C
-_080C2BE4: .4byte 0x02000000
+_080C2BE4: .4byte gSharedMem
_080C2BE8: .4byte gUnknown_02024E8C
_080C2BEC: .4byte gSprites
_080C2BF0: .4byte sub_80C3C44
@@ -1472,13 +1471,13 @@ _080C2C30:
.align 2, 0
_080C2C50: .4byte gUnknown_03004240
_080C2C54:
- ldr r0, _080C2C60 @ =0x02018000
+ ldr r0, _080C2C60 @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x6]
cmp r0, 0x1
bne _080C2D04
b _080C2CD0
.align 2, 0
-_080C2C60: .4byte 0x02018000
+_080C2C60: .4byte gSharedMem + 0x18000
_080C2C64:
lsls r0, r7, 2
adds r0, r7
@@ -1494,7 +1493,7 @@ _080C2C64:
movs r0, 0
strh r0, [r3, 0xA]
ldr r2, _080C2C9C @ =gSprites
- ldr r0, _080C2CA0 @ =0x02018000
+ ldr r0, _080C2CA0 @ =gSharedMem + 0x18000
ldrb r1, [r0, 0x8]
lsls r0, r1, 4
adds r0, r1
@@ -1509,10 +1508,10 @@ _080C2C64:
b _080C2D04
.align 2, 0
_080C2C9C: .4byte gSprites
-_080C2CA0: .4byte 0x02018000
+_080C2CA0: .4byte gSharedMem + 0x18000
_080C2CA4: .4byte sub_80C3CB8
_080C2CA8:
- ldr r0, _080C2CE0 @ =0x02018000
+ ldr r0, _080C2CE0 @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x6]
cmp r0, 0x2
bne _080C2D04
@@ -1543,10 +1542,10 @@ _080C2CD0:
strh r1, [r0, 0x8]
b _080C2D04
.align 2, 0
-_080C2CE0: .4byte 0x02018000
+_080C2CE0: .4byte gSharedMem + 0x18000
_080C2CE4: .4byte gUnknown_03004240
_080C2CE8:
- ldr r2, _080C2D14 @ =0x02018000
+ ldr r2, _080C2D14 @ =gSharedMem + 0x18000
ldrb r0, [r2, 0x6]
cmp r0, 0x2
bne _080C2D04
@@ -1570,7 +1569,7 @@ _080C2D04:
pop {r0}
bx r0
.align 2, 0
-_080C2D14: .4byte 0x02018000
+_080C2D14: .4byte gSharedMem + 0x18000
_080C2D18: .4byte sub_80C2D1C
thumb_func_end sub_80C2A8C
@@ -1714,12 +1713,12 @@ sub_80C2E14: @ 80C2E14
bl sub_80BE284
movs r0, 0x2
bl sub_810FB10
- ldr r0, _080C2E88 @ =gScriptContestRank
+ ldr r0, _080C2E88 @ =gSpecialVar_ContestRank
ldrb r0, [r0]
bl sub_80B2A7C
movs r0, 0xFE
bl sub_80B2A7C
- ldr r4, _080C2E8C @ =0x02000000
+ ldr r4, _080C2E8C @ =gSharedMem
ldr r0, _080C2E90 @ =0x00015ddf
adds r1, r4, r0
movs r6, 0
@@ -1751,8 +1750,8 @@ sub_80C2E14: @ 80C2E14
.align 2, 0
_080C2E80: .4byte gUnknown_02038690
_080C2E84: .4byte gContestPlayerMonIndex
-_080C2E88: .4byte gScriptContestRank
-_080C2E8C: .4byte 0x02000000
+_080C2E88: .4byte gSpecialVar_ContestRank
+_080C2E8C: .4byte gSharedMem
_080C2E90: .4byte 0x00015ddf
_080C2E94: .4byte 0x00015dde
_080C2E98: .4byte gTasks
@@ -1782,7 +1781,7 @@ sub_80C2EA0: @ 80C2EA0
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080C2EE8
- ldr r0, _080C2EE0 @ =0x02018000
+ ldr r0, _080C2EE0 @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x3]
bl DestroyTask
ldr r0, _080C2EE4 @ =0x0000ffff
@@ -1790,7 +1789,7 @@ sub_80C2EA0: @ 80C2EA0
.align 2, 0
_080C2ED8: .4byte gPaletteFade
_080C2EDC: .4byte gTasks
-_080C2EE0: .4byte 0x02018000
+_080C2EE0: .4byte gSharedMem + 0x18000
_080C2EE4: .4byte 0x0000ffff
_080C2EE8:
cmp r0, 0x1
@@ -1938,7 +1937,7 @@ _080C2FE6:
ldrsh r4, [r0, r3]
cmp r4, 0
bne _080C3014
- ldr r0, _080C3010 @ =0x02018000
+ ldr r0, _080C3010 @ =gSharedMem + 0x18000
strb r4, [r0, 0xA]
b _080C301A
.align 2, 0
@@ -1946,9 +1945,9 @@ _080C3000: .4byte gTasks
_080C3004: .4byte 0x00002ede
_080C3008: .4byte 0x00007fff
_080C300C: .4byte 0x000077be
-_080C3010: .4byte 0x02018000
+_080C3010: .4byte gSharedMem + 0x18000
_080C3014:
- ldr r1, _080C3020 @ =0x02018000
+ ldr r1, _080C3020 @ =gSharedMem + 0x18000
movs r0, 0x1
strb r0, [r1, 0xA]
_080C301A:
@@ -1956,7 +1955,7 @@ _080C301A:
pop {r0}
bx r0
.align 2, 0
-_080C3020: .4byte 0x02018000
+_080C3020: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C2F64
thumb_func_start sub_80C3024
@@ -2235,7 +2234,7 @@ _080C3218:
strb r5, [r2, 0x2]
movs r0, 0xFF
strb r0, [r2, 0x3]
- ldr r0, _080C32DC @ =0x02018068
+ ldr r0, _080C32DC @ =gSharedMem + 0x18068
mov r10, r0
ldr r1, _080C32D4 @ =gDisplayedStringBattle
bl sub_80034D4
@@ -2303,7 +2302,7 @@ _080C32CC: .4byte 0x040000d4
_080C32D0: .4byte 0x85000100
_080C32D4: .4byte gDisplayedStringBattle
_080C32D8: .4byte gUnknown_083D17E2
-_080C32DC: .4byte 0x02018068
+_080C32DC: .4byte gSharedMem + 0x18068
_080C32E0: .4byte gUnknown_083D1624
_080C32E4: .4byte REG_BG0CNT
_080C32E8: .4byte 0x06010100
@@ -2501,7 +2500,7 @@ _080C340A:
adds r0, r2
ldrb r1, [r5, 0x7]
strh r1, [r0, 0x32]
- ldr r1, _080C34A8 @ =0x02018000
+ ldr r1, _080C34A8 @ =gSharedMem + 0x18000
ldrb r0, [r5]
strb r0, [r1]
strb r3, [r1, 0x4]
@@ -2517,7 +2516,7 @@ _080C3498: .4byte gSpriteTemplate_83D174C
_080C349C: .4byte gUnknown_083D1764
_080C34A0: .4byte gUnknown_083D17A4
_080C34A4: .4byte gSprites
-_080C34A8: .4byte 0x02018000
+_080C34A8: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C33DC
thumb_func_start sub_80C34AC
@@ -2543,7 +2542,7 @@ sub_80C34CC: @ 80C34CC
push {r4-r6,lr}
mov r6, r8
push {r6}
- ldr r4, _080C3514 @ =0x02018000
+ ldr r4, _080C3514 @ =gSharedMem + 0x18000
mov r8, r4
ldrb r5, [r4]
lsls r4, r5, 4
@@ -2576,7 +2575,7 @@ sub_80C34CC: @ 80C34CC
pop {r0}
bx r0
.align 2, 0
-_080C3514: .4byte 0x02018000
+_080C3514: .4byte gSharedMem + 0x18000
_080C3518: .4byte gSprites
_080C351C: .4byte sub_80C3588
thumb_func_end sub_80C34CC
@@ -2584,7 +2583,7 @@ _080C351C: .4byte sub_80C3588
thumb_func_start sub_80C3520
sub_80C3520: @ 80C3520
push {r4,r5,lr}
- ldr r4, _080C3558 @ =0x02018000
+ ldr r4, _080C3558 @ =gSharedMem + 0x18000
ldrb r2, [r4]
lsls r1, r2, 4
adds r1, r2
@@ -2612,7 +2611,7 @@ sub_80C3520: @ 80C3520
pop {r0}
bx r0
.align 2, 0
-_080C3558: .4byte 0x02018000
+_080C3558: .4byte gSharedMem + 0x18000
_080C355C: .4byte gSprites
_080C3560: .4byte sub_80C3630
thumb_func_end sub_80C3520
@@ -2630,12 +2629,12 @@ sub_80C3564: @ 80C3564
strh r2, [r0, 0x24]
ldr r1, _080C3580 @ =SpriteCallbackDummy
str r1, [r0, 0x1C]
- ldr r0, _080C3584 @ =0x02018000
+ ldr r0, _080C3584 @ =gSharedMem + 0x18000
strb r3, [r0, 0x4]
bx lr
.align 2, 0
_080C3580: .4byte SpriteCallbackDummy
-_080C3584: .4byte 0x02018000
+_080C3584: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C3564
thumb_func_start sub_80C3588
@@ -2705,7 +2704,7 @@ _080C35F8: .4byte sub_80C35FC
sub_80C35FC: @ 80C35FC
push {lr}
adds r2, r0, 0
- ldr r0, _080C3628 @ =0x02018000
+ ldr r0, _080C3628 @ =gSharedMem + 0x18000
movs r1, 0x2
strb r1, [r0, 0x4]
ldrh r3, [r2, 0x38]
@@ -2726,7 +2725,7 @@ _080C3624:
pop {r0}
bx r0
.align 2, 0
-_080C3628: .4byte 0x02018000
+_080C3628: .4byte gSharedMem + 0x18000
_080C362C: .4byte 0xffff0000
thumb_func_end sub_80C35FC
@@ -2790,7 +2789,7 @@ _080C3694: .4byte gSprites
sub_80C3698: @ 80C3698
push {r4-r7,lr}
adds r4, r0, 0
- ldr r5, _080C374C @ =0x02018000
+ ldr r5, _080C374C @ =gSharedMem + 0x18000
ldrb r1, [r5, 0x1]
bl sub_80C3158
adds r0, r4, 0
@@ -2877,7 +2876,7 @@ _080C36DA:
pop {r0}
bx r0
.align 2, 0
-_080C374C: .4byte 0x02018000
+_080C374C: .4byte gSharedMem + 0x18000
_080C3750: .4byte gSprites
_080C3754: .4byte gUnknown_030042C4
_080C3758: .4byte gUnknown_03004240
@@ -2888,7 +2887,7 @@ _080C3760: .4byte 0x00003f3e
thumb_func_start sub_80C3764
sub_80C3764: @ 80C3764
push {r4-r7,lr}
- ldr r0, _080C37C8 @ =0x02018000
+ ldr r0, _080C37C8 @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x1]
lsls r2, r0, 4
adds r2, r0
@@ -2939,7 +2938,7 @@ _080C3790:
pop {r0}
bx r0
.align 2, 0
-_080C37C8: .4byte 0x02018000
+_080C37C8: .4byte gSharedMem + 0x18000
_080C37CC: .4byte gSprites
_080C37D0: .4byte gUnknown_030042C4
_080C37D4: .4byte gUnknown_03004240
@@ -2972,7 +2971,7 @@ _080C3808: .4byte gIsLinkContest
_080C380C: .4byte 0x0600e000
_080C3810: .4byte gUnknown_08E964B8
_080C3814:
- ldr r0, _080C3830 @ =gScriptContestRank
+ ldr r0, _080C3830 @ =gSpecialVar_ContestRank
ldrh r2, [r0]
cmp r2, 0
bne _080C383C
@@ -2987,7 +2986,7 @@ _080C3814:
str r1, [sp, 0xC]
b _080C3870
.align 2, 0
-_080C3830: .4byte gScriptContestRank
+_080C3830: .4byte gSpecialVar_ContestRank
_080C3834: .4byte 0x0600e000
_080C3838: .4byte gUnknown_08E964B8
_080C383C:
@@ -3041,7 +3040,7 @@ _080C3884:
bl sub_809D104
_080C389E:
adds r4, 0xD
- ldr r0, _080C38C8 @ =gScriptContestCategory
+ ldr r0, _080C38C8 @ =gSpecialVar_ContestCategory
ldrh r0, [r0]
cmp r0, 0
bne _080C38CC
@@ -3059,7 +3058,7 @@ _080C389E:
.align 2, 0
_080C38C0: .4byte 0x0600e000
_080C38C4: .4byte gUnknown_08E964B8
-_080C38C8: .4byte gScriptContestCategory
+_080C38C8: .4byte gSpecialVar_ContestCategory
_080C38CC:
cmp r0, 0x1
bne _080C38EC
@@ -3354,7 +3353,7 @@ _080C3A94:
adds r0, r1
adds r2, 0x11
strh r2, [r0]
- ldr r1, _080C3B2C @ =0x02018000
+ ldr r1, _080C3B2C @ =gSharedMem + 0x18000
ldrb r0, [r1, 0x5]
adds r0, 0x1
strb r0, [r1, 0x5]
@@ -3372,7 +3371,7 @@ _080C3B1C: .4byte 0x0600e142
_080C3B20: .4byte 0x0600e144
_080C3B24: .4byte 0x0600e182
_080C3B28: .4byte 0x0600e184
-_080C3B2C: .4byte 0x02018000
+_080C3B2C: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C3A5C
thumb_func_start sub_80C3B30
@@ -3444,7 +3443,7 @@ _080C3B82:
ldr r2, _080C3BD0 @ =sub_80C3BD8
str r2, [r0]
mov r1, r12
- ldr r0, _080C3BD4 @ =0x02018000
+ ldr r0, _080C3BD4 @ =gSharedMem + 0x18000
strb r1, [r0, 0x3]
pop {r3-r5}
mov r8, r3
@@ -3459,7 +3458,7 @@ _080C3BC4: .4byte gTasks
_080C3BC8: .4byte 0x00000fff
_080C3BCC: .4byte 0x0600e100
_080C3BD0: .4byte sub_80C3BD8
-_080C3BD4: .4byte 0x02018000
+_080C3BD4: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C3B30
thumb_func_start sub_80C3BD8
@@ -3569,7 +3568,7 @@ _080C3C92:
str r0, [r4, 0x1C]
movs r0, 0
strh r0, [r4, 0x30]
- ldr r1, _080C3CB4 @ =0x02018000
+ ldr r1, _080C3CB4 @ =gSharedMem + 0x18000
movs r0, 0x1
strb r0, [r1, 0x6]
_080C3CA8:
@@ -3578,7 +3577,7 @@ _080C3CA8:
bx r0
.align 2, 0
_080C3CB0: .4byte SpriteCallbackDummy
-_080C3CB4: .4byte 0x02018000
+_080C3CB4: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C3C44
thumb_func_start sub_80C3CB8
@@ -3612,7 +3611,7 @@ sub_80C3CB8: @ 80C3CB8
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r1, _080C3D00 @ =0x02018000
+ ldr r1, _080C3D00 @ =gSharedMem + 0x18000
movs r0, 0x2
strb r0, [r1, 0x6]
_080C3CF8:
@@ -3620,7 +3619,7 @@ _080C3CF8:
bx r0
.align 2, 0
_080C3CFC: .4byte SpriteCallbackDummy
-_080C3D00: .4byte 0x02018000
+_080C3D00: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C3CB8
thumb_func_start sub_80C3D04
@@ -3644,7 +3643,7 @@ sub_80C3D04: @ 80C3D04
bne _080C3DBE
movs r0, 0
strh r0, [r1, 0x8]
- ldr r0, _080C3DDC @ =0x02018000
+ ldr r0, _080C3DDC @ =gSharedMem + 0x18000
mov r8, r0
ldrb r0, [r0, 0x7]
cmp r0, 0x27
@@ -3710,7 +3709,7 @@ sub_80C3D04: @ 80C3D04
adds r0, 0x1
strb r0, [r1, 0x7]
_080C3DBE:
- ldr r0, _080C3DDC @ =0x02018000
+ ldr r0, _080C3DDC @ =gSharedMem + 0x18000
ldrb r0, [r0, 0x9]
cmp r0, 0
beq _080C3DCC
@@ -3724,7 +3723,7 @@ _080C3DCC:
bx r0
.align 2, 0
_080C3DD8: .4byte gTasks
-_080C3DDC: .4byte 0x02018000
+_080C3DDC: .4byte gSharedMem + 0x18000
_080C3DE0: .4byte gSpriteTemplate_83D17B4
_080C3DE4: .4byte gSprites
_080C3DE8: .4byte 0x000003ff
@@ -3759,7 +3758,7 @@ sub_80C3DF0: @ 80C3DF0
ldrh r0, [r4, 0x22]
adds r0, 0x1
strh r0, [r4, 0x22]
- ldr r5, _080C3E5C @ =0x02018000
+ ldr r5, _080C3E5C @ =gSharedMem + 0x18000
ldrb r0, [r5, 0x9]
cmp r0, 0
beq _080C3E3A
@@ -3789,7 +3788,7 @@ _080C3E56:
pop {r0}
bx r0
.align 2, 0
-_080C3E5C: .4byte 0x02018000
+_080C3E5C: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C3DF0
thumb_func_start sub_80C3E60
@@ -3961,7 +3960,7 @@ _080C3F8A:
ble _080C3F9C
adds r4, 0xA
_080C3F9C:
- ldr r0, _080C40A0 @ =0x02018018
+ ldr r0, _080C40A0 @ =gSharedMem + 0x18018
mov r1, r10
adds r5, r1, r0
adds r0, r4, 0
@@ -4090,7 +4089,7 @@ _080C4080:
.align 2, 0
_080C4098: .4byte gUnknown_02038678
_080C409C: .4byte gUnknown_02038670
-_080C40A0: .4byte 0x02018018
+_080C40A0: .4byte gSharedMem + 0x18018
_080C40A4: .4byte gUnknown_02038688
_080C40A8: .4byte gUnknown_02038690
_080C40AC:
@@ -4135,7 +4134,7 @@ sub_80C40D4: @ 80C40D4
cmp r0, 0
bne _080C4198
mov r8, r2
- ldr r0, _080C417C @ =0x02018018
+ ldr r0, _080C417C @ =gSharedMem + 0x18018
subs r1, 0x18
adds r1, r0
mov r9, r1
@@ -4204,7 +4203,7 @@ _080C416A:
ble _080C4102
b _080C4292
.align 2, 0
-_080C417C: .4byte 0x02018018
+_080C417C: .4byte gSharedMem + 0x18018
_080C4180: .4byte 0x0600bffe
_080C4184: .4byte 0x000060b3
_080C4188: .4byte sub_80C42C0
@@ -4214,7 +4213,7 @@ _080C4194: .4byte gTasks
_080C4198:
movs r2, 0
mov r8, r2
- ldr r0, _080C4220 @ =0x02018018
+ ldr r0, _080C4220 @ =gSharedMem + 0x18018
mov r12, r0
mov r9, r2
movs r1, 0xC0
@@ -4282,7 +4281,7 @@ _080C41FA:
str r0, [sp]
b _080C4246
.align 2, 0
-_080C4220: .4byte 0x02018018
+_080C4220: .4byte gSharedMem + 0x18018
_080C4224: .4byte 0x000060a3
_080C4228: .4byte 0x0600bffe
_080C422C: .4byte sub_80C42C0
@@ -4296,7 +4295,7 @@ _080C423C:
lsrs r0, 24
mov r10, r0
_080C4246:
- ldr r0, _080C4264 @ =0x02018018
+ ldr r0, _080C4264 @ =gSharedMem + 0x18018
mov r1, r9
adds r4, r1, r0
ldrb r1, [r4, 0x10]
@@ -4311,7 +4310,7 @@ _080C4246:
subs r1, r2
b _080C4274
.align 2, 0
-_080C4264: .4byte 0x02018018
+_080C4264: .4byte gSharedMem + 0x18018
_080C4268:
adds r0, r2, r5
lsls r0, 3
@@ -4321,7 +4320,7 @@ _080C4268:
adds r1, r2
_080C4274:
strh r1, [r0, 0xA]
- ldr r1, _080C42BC @ =0x02018000
+ ldr r1, _080C42BC @ =gSharedMem + 0x18000
ldrb r0, [r1, 0x14]
adds r0, 0x1
strb r0, [r1, 0x14]
@@ -4358,7 +4357,7 @@ _080C42AA:
pop {r0}
bx r0
.align 2, 0
-_080C42BC: .4byte 0x02018000
+_080C42BC: .4byte gSharedMem + 0x18000
thumb_func_end sub_80C40D4
thumb_func_start sub_80C42C0
@@ -4386,7 +4385,7 @@ sub_80C42C0: @ 80C42C0
ldrsh r0, [r0, r2]
cmp r0, 0
beq _080C4310
- ldr r1, _080C430C @ =0x02018000
+ ldr r1, _080C430C @ =gSharedMem + 0x18000
lsls r2, r5, 1
adds r0, r1, 0
adds r0, 0xC
@@ -4400,9 +4399,9 @@ sub_80C42C0: @ 80C42C0
b _080C4326
.align 2, 0
_080C4308: .4byte gTasks
-_080C430C: .4byte 0x02018000
+_080C430C: .4byte gSharedMem + 0x18000
_080C4310:
- ldr r1, _080C4350 @ =0x02018000
+ ldr r1, _080C4350 @ =gSharedMem + 0x18000
lsls r2, r5, 1
adds r0, r1, 0
adds r0, 0xC
@@ -4437,7 +4436,7 @@ _080C4340:
strh r7, [r3]
b _080C4362
.align 2, 0
-_080C4350: .4byte 0x02018000
+_080C4350: .4byte gSharedMem + 0x18000
_080C4354:
mov r1, r8
cmp r1, 0
@@ -4455,7 +4454,7 @@ _080C4362:
cmp r2, 0
bne _080C43CE
movs r2, 0
- ldr r0, _080C4388 @ =0x0201800c
+ ldr r0, _080C4388 @ =gSharedMem + 0x1800C
adds r6, r4, r0
adds r0, r4, r5
lsls r5, r0, 5
@@ -4470,7 +4469,7 @@ _080C4376:
movs r0, 0x8
b _080C43A8
.align 2, 0
-_080C4388: .4byte 0x0201800c
+_080C4388: .4byte gSharedMem + 0x1800C
_080C438C:
lsls r0, r2, 3
cmp r3, r0
@@ -4546,15 +4545,15 @@ sub_80C43F4: @ 80C43F4
adds r5, r0, 0
cmp r5, 0
beq _080C4422
- ldr r4, _080C4434 @ =gScriptContestCategory
+ ldr r4, _080C4434 @ =gSpecialVar_ContestCategory
ldrb r0, [r4]
- ldr r1, _080C4438 @ =gScriptContestRank
+ ldr r1, _080C4438 @ =gSpecialVar_ContestRank
ldrb r1, [r1]
bl sub_80AE398
ldrb r0, [r4]
bl sub_80AE82C
_080C4422:
- ldr r0, _080C443C @ =gScriptResult
+ ldr r0, _080C443C @ =gSpecialVar_Result
strh r5, [r0]
pop {r4,r5}
pop {r0}
@@ -4562,9 +4561,9 @@ _080C4422:
.align 2, 0
_080C442C: .4byte gUnknown_02038694
_080C4430: .4byte gPlayerParty
-_080C4434: .4byte gScriptContestCategory
-_080C4438: .4byte gScriptContestRank
-_080C443C: .4byte gScriptResult
+_080C4434: .4byte gSpecialVar_ContestCategory
+_080C4438: .4byte gSpecialVar_ContestRank
+_080C443C: .4byte gSpecialVar_Result
thumb_func_end sub_80C43F4
thumb_func_start sub_80C4440
@@ -4577,7 +4576,7 @@ sub_80C4440: @ 80C4440
muls r1, r0
ldr r0, _080C4468 @ =gPlayerParty
adds r2, r1, r0
- ldr r0, _080C446C @ =gScriptContestCategory
+ ldr r0, _080C446C @ =gSpecialVar_ContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bhi _080C44B2
@@ -4589,7 +4588,7 @@ sub_80C4440: @ 80C4440
.align 2, 0
_080C4464: .4byte gUnknown_02038694
_080C4468: .4byte gPlayerParty
-_080C446C: .4byte gScriptContestCategory
+_080C446C: .4byte gSpecialVar_ContestCategory
_080C4470: .4byte _080C4474
.align 2, 0
_080C4474:
@@ -4619,7 +4618,7 @@ _080C44A0:
movs r1, 0x36
_080C44A4:
bl GetMonData
- ldr r1, _080C44BC @ =gScriptContestRank
+ ldr r1, _080C44BC @ =gSpecialVar_ContestRank
ldrh r1, [r1]
cmp r0, r1
bls _080C44B2
@@ -4630,7 +4629,7 @@ _080C44B2:
pop {r1}
bx r1
.align 2, 0
-_080C44BC: .4byte gScriptContestRank
+_080C44BC: .4byte gSpecialVar_ContestRank
thumb_func_end sub_80C4440
thumb_func_start sub_80C44C0
@@ -4646,7 +4645,7 @@ sub_80C44C0: @ 80C44C0
beq _080C44D4
b _080C465E
_080C44D4:
- ldr r0, _080C44F0 @ =gScriptContestCategory
+ ldr r0, _080C44F0 @ =gSpecialVar_ContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bls _080C44DE
@@ -4660,7 +4659,7 @@ _080C44DE:
.align 2, 0
_080C44E8: .4byte gUnknown_02038690
_080C44EC: .4byte gContestPlayerMonIndex
-_080C44F0: .4byte gScriptContestCategory
+_080C44F0: .4byte gSpecialVar_ContestCategory
_080C44F4: .4byte _080C44F8
.align 2, 0
_080C44F8:
@@ -4682,7 +4681,7 @@ _080C450C:
lsrs r1, r0, 24
mov r0, sp
strb r1, [r0]
- ldr r0, _080C4550 @ =gScriptContestRank
+ ldr r0, _080C4550 @ =gSpecialVar_ContestRank
ldrh r0, [r0]
cmp r1, r0
bls _080C4530
@@ -4704,7 +4703,7 @@ _080C4538:
.align 2, 0
_080C4548: .4byte gUnknown_02038694
_080C454C: .4byte gPlayerParty
-_080C4550: .4byte gScriptContestRank
+_080C4550: .4byte gSpecialVar_ContestRank
_080C4554:
mov r4, sp
ldr r7, _080C458C @ =gUnknown_02038694
@@ -4718,7 +4717,7 @@ _080C4554:
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
- ldr r0, _080C4594 @ =gScriptContestRank
+ ldr r0, _080C4594 @ =gSpecialVar_ContestRank
ldrh r0, [r0]
cmp r2, r0
bhi _080C465E
@@ -4735,7 +4734,7 @@ _080C4554:
.align 2, 0
_080C458C: .4byte gUnknown_02038694
_080C4590: .4byte gPlayerParty
-_080C4594: .4byte gScriptContestRank
+_080C4594: .4byte gSpecialVar_ContestRank
_080C4598:
mov r4, sp
ldr r7, _080C45D0 @ =gUnknown_02038694
@@ -4749,7 +4748,7 @@ _080C4598:
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
- ldr r0, _080C45D8 @ =gScriptContestRank
+ ldr r0, _080C45D8 @ =gSpecialVar_ContestRank
ldrh r0, [r0]
cmp r2, r0
bhi _080C465E
@@ -4766,7 +4765,7 @@ _080C4598:
.align 2, 0
_080C45D0: .4byte gUnknown_02038694
_080C45D4: .4byte gPlayerParty
-_080C45D8: .4byte gScriptContestRank
+_080C45D8: .4byte gSpecialVar_ContestRank
_080C45DC:
mov r4, sp
ldr r7, _080C4618 @ =gUnknown_02038694
@@ -4780,7 +4779,7 @@ _080C45DC:
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
- ldr r0, _080C4620 @ =gScriptContestRank
+ ldr r0, _080C4620 @ =gSpecialVar_ContestRank
ldrh r0, [r0]
cmp r2, r0
bhi _080C465E
@@ -4800,7 +4799,7 @@ _080C4610:
.align 2, 0
_080C4618: .4byte gUnknown_02038694
_080C461C: .4byte gPlayerParty
-_080C4620: .4byte gScriptContestRank
+_080C4620: .4byte gSpecialVar_ContestRank
_080C4624:
mov r4, sp
ldr r7, _080C4668 @ =gUnknown_02038694
@@ -4814,7 +4813,7 @@ _080C4624:
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
- ldr r0, _080C4670 @ =gScriptContestRank
+ ldr r0, _080C4670 @ =gSpecialVar_ContestRank
ldrh r0, [r0]
cmp r2, r0
bhi _080C465E
@@ -4837,7 +4836,7 @@ _080C465E:
.align 2, 0
_080C4668: .4byte gUnknown_02038694
_080C466C: .4byte gPlayerParty
-_080C4670: .4byte gScriptContestRank
+_080C4670: .4byte gSpecialVar_ContestRank
thumb_func_end sub_80C44C0
thumb_func_start sub_80C4674
@@ -5433,7 +5432,7 @@ _080C4AB8:
bl sub_80C4B34
ldr r1, _080C4AFC @ =gUnknown_0203869B
strb r0, [r1]
- ldr r0, _080C4B00 @ =gScriptContestCategory
+ ldr r0, _080C4B00 @ =gSpecialVar_ContestCategory
ldrb r0, [r0]
bl sub_80AE82C
ldr r1, _080C4B04 @ =sub_80C8EBC
@@ -5449,7 +5448,7 @@ _080C4AB8:
.align 2, 0
_080C4AF8: .4byte gTasks + 0x8
_080C4AFC: .4byte gUnknown_0203869B
-_080C4B00: .4byte gScriptContestCategory
+_080C4B00: .4byte gSpecialVar_ContestCategory
_080C4B04: .4byte sub_80C8EBC
_080C4B08: .4byte sub_80C4B0C
thumb_func_end sub_80C4A44
diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s
index 12dc3bdb5..63280f0f8 100644
--- a/asm/contest_link_80C857C.s
+++ b/asm/contest_link_80C857C.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -12,7 +11,7 @@ sub_80C857C: @ 80C857C
adds r2, r0, 0
lsls r4, r1, 16
lsrs r4, 16
- ldr r5, _080C85A8 @ =0x0201e000
+ ldr r5, _080C85A8 @ =gSharedMem + 0x1E000
adds r0, r5, 0
adds r1, r2, 0
adds r2, r4, 0
@@ -27,7 +26,7 @@ sub_80C857C: @ 80C857C
pop {r0}
bx r0
.align 2, 0
-_080C85A8: .4byte 0x0201e000
+_080C85A8: .4byte gSharedMem + 0x1E000
thumb_func_end sub_80C857C
thumb_func_start sub_80C85AC
@@ -666,7 +665,7 @@ _080C8A64:
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
- ldr r1, _080C8A90 @ =0x02019266
+ ldr r1, _080C8A90 @ =gSharedMem + 0x19266
adds r0, r1
movs r1, 0x2
bl sub_80C857C
@@ -676,14 +675,14 @@ _080C8A64:
b _080C8AC2
.align 2, 0
_080C8A8C: .4byte gContestPlayerMonIndex
-_080C8A90: .4byte 0x02019266
+_080C8A90: .4byte gSharedMem + 0x19266
_080C8A94:
bl sub_80C85D8
lsls r0, 24
cmp r0, 0
beq _080C8AC2
ldr r1, _080C8AC8 @ =gBlockRecvBuffer
- ldr r3, _080C8ACC @ =0x02019266
+ ldr r3, _080C8ACC @ =gSharedMem + 0x19266
movs r4, 0x80
lsls r4, 1
movs r2, 0x3
@@ -707,7 +706,7 @@ _080C8AC2:
bx r0
.align 2, 0
_080C8AC8: .4byte gBlockRecvBuffer
-_080C8ACC: .4byte 0x02019266
+_080C8ACC: .4byte gSharedMem + 0x19266
thumb_func_end sub_80C8A38
thumb_func_start sub_80C8AD0
@@ -954,12 +953,12 @@ _080C8CE0:
bne _080C8CEC
b _080C8E16
_080C8CEC:
- ldr r0, _080C8CF8 @ =0x02019260
+ ldr r0, _080C8CF8 @ =gSharedMem + 0x19260
movs r1, 0x70
bl sub_80C857C
b _080C8DE8
.align 2, 0
-_080C8CF8: .4byte 0x02019260
+_080C8CF8: .4byte gSharedMem + 0x19260
_080C8CFC:
bl sub_80C85D8
lsls r0, 24
@@ -967,7 +966,7 @@ _080C8CFC:
bne _080C8D08
b _080C8E16
_080C8D08:
- ldr r0, _080C8D18 @ =0x02019260
+ ldr r0, _080C8D18 @ =gSharedMem + 0x19260
ldr r1, _080C8D1C @ =gUnknown_0203869B
ldrb r1, [r1]
lsls r1, 8
@@ -976,7 +975,7 @@ _080C8D08:
movs r2, 0x70
b _080C8DE4
.align 2, 0
-_080C8D18: .4byte 0x02019260
+_080C8D18: .4byte gSharedMem + 0x19260
_080C8D1C: .4byte gUnknown_0203869B
_080C8D20: .4byte gBlockRecvBuffer
_080C8D24:
@@ -1002,18 +1001,18 @@ _080C8D46:
lsls r0, 24
cmp r0, 0
beq _080C8E16
- ldr r0, _080C8D5C @ =0x020192d0
+ ldr r0, _080C8D5C @ =gSharedMem + 0x192D0
movs r1, 0x14
bl sub_80C857C
b _080C8DE8
.align 2, 0
-_080C8D5C: .4byte 0x020192d0
+_080C8D5C: .4byte gSharedMem + 0x192D0
_080C8D60:
bl sub_80C85D8
lsls r0, 24
cmp r0, 0
beq _080C8E16
- ldr r0, _080C8D7C @ =0x020192d0
+ ldr r0, _080C8D7C @ =gSharedMem + 0x192D0
ldr r1, _080C8D80 @ =gUnknown_0203869B
ldrb r1, [r1]
lsls r1, 8
@@ -1022,7 +1021,7 @@ _080C8D60:
movs r2, 0x14
b _080C8DE4
.align 2, 0
-_080C8D7C: .4byte 0x020192d0
+_080C8D7C: .4byte gSharedMem + 0x192D0
_080C8D80: .4byte gUnknown_0203869B
_080C8D84: .4byte gBlockRecvBuffer
_080C8D88:
@@ -1030,21 +1029,21 @@ _080C8D88:
lsls r0, 24
cmp r0, 0
beq _080C8E16
- ldr r0, _080C8D9C @ =0x02019328
+ ldr r0, _080C8D9C @ =gSharedMem + 0x19328
movs r1, 0x4
bl sub_80C857C
b _080C8DE8
.align 2, 0
-_080C8D9C: .4byte 0x02019328
+_080C8D9C: .4byte gSharedMem + 0x19328
_080C8DA0:
bl sub_80C85D8
lsls r0, 24
cmp r0, 0
beq _080C8E16
- ldr r0, _080C8DB0 @ =0x02019328
+ ldr r0, _080C8DB0 @ =gSharedMem + 0x19328
b _080C8DD8
.align 2, 0
-_080C8DB0: .4byte 0x02019328
+_080C8DB0: .4byte gSharedMem + 0x19328
_080C8DB4:
bl sub_8007ECC
lsls r0, 24
diff --git a/asm/current.s b/asm/current.s
new file mode 100755
index 000000000..df72b56af
--- /dev/null
+++ b/asm/current.s
@@ -0,0 +1,2389 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ @ current
+
+ thumb_func_start sub_80D648C
+sub_80D648C: @ 80D648C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080D6500 @ =gBattleAnimArgs
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r6, _080D6504 @ =gBattleAnimBankTarget
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x38]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x3C]
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080D6508 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D650C @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r1, _080D6510 @ =sub_80D6514
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6500: .4byte gBattleAnimArgs
+_080D6504: .4byte gBattleAnimBankTarget
+_080D6508: .4byte 0x000003ff
+_080D650C: .4byte 0xfffffc00
+_080D6510: .4byte sub_80D6514
+ thumb_func_end sub_80D648C
+
+ thumb_func_start sub_80D6514
+sub_80D6514: @ 80D6514
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D657E
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D6584
+ 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 _080D6584
+_080D657E:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D6584:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6514
+
+ thumb_func_start sub_80D658C
+sub_80D658C: @ 80D658C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x38]
+ subs r0, 0x1
+ strh r0, [r3, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D65C4
+ 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, 0x36]
+ strh r0, [r3, 0x38]
+_080D65C4:
+ ldrh r0, [r3, 0x34]
+ subs r1, r0, 0x1
+ strh r1, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080D65D6
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080D65D6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D658C
+
+ thumb_func_start sub_80D65DC
+sub_80D65DC: @ 80D65DC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080D6644 @ =gMain
+ ldr r1, _080D6648 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D65FE
+ ldr r0, _080D664C @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D6606
+_080D65FE:
+ ldr r1, _080D6650 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080D6606:
+ ldr r5, _080D664C @ =gBattleAnimBankTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D6650 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4]
+ strh r0, [r6, 0x34]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r6, 0x36]
+ strh r0, [r6, 0x38]
+ ldr r0, _080D6654 @ =sub_80D658C
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6644: .4byte gMain
+_080D6648: .4byte 0x0000043d
+_080D664C: .4byte gBattleAnimBankTarget
+_080D6650: .4byte gBattleAnimArgs
+_080D6654: .4byte sub_80D658C
+ thumb_func_end sub_80D65DC
+
+ thumb_func_start sub_80D6658
+sub_80D6658: @ 80D6658
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r1, _080D6674 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x2E]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080D667C
+ ldr r0, _080D6678 @ =gBattleAnimBankTarget
+ b _080D667E
+ .align 2, 0
+_080D6674: .4byte gBattleAnimArgs
+_080D6678: .4byte gBattleAnimBankTarget
+_080D667C:
+ ldr r0, _080D670C @ =gBattleAnimBankAttacker
+_080D667E:
+ ldrb r6, [r0]
+ ldr r0, _080D6710 @ =gMain
+ ldr r3, _080D6714 @ =0x0000043d
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D669C
+ adds r0, r6, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D66A4
+_080D669C:
+ ldr r1, _080D6718 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080D66A4:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D6718 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r4, 0x2]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r1, [r4, 0xE]
+ ldr r0, _080D671C @ =0x00007fff
+ ands r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0x3A]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x3C]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080D6720 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D6724 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r1, _080D6728 @ =sub_80D672C
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D670C: .4byte gBattleAnimBankAttacker
+_080D6710: .4byte gMain
+_080D6714: .4byte 0x0000043d
+_080D6718: .4byte gBattleAnimArgs
+_080D671C: .4byte 0x00007fff
+_080D6720: .4byte 0x000003ff
+_080D6724: .4byte 0xfffffc00
+_080D6728: .4byte sub_80D672C
+ thumb_func_end sub_80D6658
+
+ thumb_func_start sub_80D672C
+sub_80D672C: @ 80D672C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _080D6782
+ 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]
+_080D6782:
+ ldrh r0, [r4, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080D6794
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D6794:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D672C
+
+ thumb_func_start sub_80D679C
+sub_80D679C: @ 80D679C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldr r3, _080D67D8 @ =gBattleAnimArgs
+ movs r5, 0x6
+ ldrsh r0, [r3, r5]
+ lsls r0, 2
+ adds r1, r0
+ ldr r5, _080D67DC @ =0x000003ff
+ adds r0, r5, 0
+ ands r1, r0
+ ldr r0, _080D67E0 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ movs r1, 0x6
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ bne _080D67E4
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ b _080D67F2
+ .align 2, 0
+_080D67D8: .4byte gBattleAnimArgs
+_080D67DC: .4byte 0x000003ff
+_080D67E0: .4byte 0xfffffc00
+_080D67E4:
+ cmp r0, 0x2
+ bne _080D67F6
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x20
+_080D67F2:
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+_080D67F6:
+ ldr r0, _080D6810 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D6814 @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ ldr r1, _080D6818 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6810: .4byte gBattleAnimArgs
+_080D6814: .4byte sub_80782D8
+_080D6818: .4byte move_anim_8072740
+ thumb_func_end sub_80D679C
+
+ thumb_func_start sub_80D681C
+sub_80D681C: @ 80D681C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _080D6864 @ =gBattleAnimBankTarget
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ ldr r1, _080D6868 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r1
+ lsls r0, 24
+ ldr r5, _080D686C @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0xC]
+ ldr r0, _080D6870 @ =sub_80D6874
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6864: .4byte gBattleAnimBankTarget
+_080D6868: .4byte gTasks
+_080D686C: .4byte gBattleAnimArgs
+_080D6870: .4byte sub_80D6874
+ thumb_func_end sub_80D681C
+
+ thumb_func_start sub_80D6874
+sub_80D6874: @ 80D6874
+ 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
+ movs r5, 0
+ movs r7, 0
+ ldr r1, _080D68B4 @ =gTasks
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ ldrb r2, [r0, 0xC]
+ str r2, [sp]
+ ldrh r4, [r0, 0x8]
+ ldrh r6, [r0, 0xA]
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ cmp r0, 0
+ bne _080D68B8
+ movs r0, 0
+ mov r8, r0
+ movs r2, 0x1
+ movs r1, 0x10
+ mov r12, r1
+ b _080D68C2
+ .align 2, 0
+_080D68B4: .4byte gTasks
+_080D68B8:
+ movs r2, 0x10
+ mov r12, r2
+ movs r3, 0x8
+ mov r8, r3
+ movs r2, 0x4
+_080D68C2:
+ mov r0, r9
+ lsls r1, r0, 2
+ adds r0, r1, r0
+ lsls r0, 3
+ add r0, r10
+ movs r3, 0x1C
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ cmp r0, 0xA
+ bhi _080D69B8
+ lsls r0, 2
+ ldr r1, _080D68E0 @ =_080D68E4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D68E0: .4byte _080D68E4
+ .align 2, 0
+_080D68E4:
+ .4byte _080D6910
+ .4byte _080D69B8
+ .4byte _080D6924
+ .4byte _080D69B8
+ .4byte _080D6944
+ .4byte _080D69B8
+ .4byte _080D695A
+ .4byte _080D69B8
+ .4byte _080D697C
+ .4byte _080D69B8
+ .4byte _080D69B0
+_080D6910:
+ ldr r0, _080D6920 @ =gSpriteTemplate_83D9938
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ mov r4, r12
+ lsls r3, r4, 16
+ b _080D6992
+ .align 2, 0
+_080D6920: .4byte gSpriteTemplate_83D9938
+_080D6924:
+ mov r0, r12
+ lsls r3, r0, 17
+ mov r1, r8
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _080D6940 @ =gSpriteTemplate_83D9938
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ b _080D6992
+ .align 2, 0
+_080D6940: .4byte gSpriteTemplate_83D9938
+_080D6944:
+ mov r3, r12
+ lsls r0, r3, 16
+ asrs r0, 16
+ lsls r3, r0, 1
+ adds r3, r0
+ lsls r0, r2, 1
+ add r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ b _080D6986
+_080D695A:
+ mov r0, r12
+ lsls r3, r0, 18
+ lsls r0, r2, 1
+ adds r0, r2
+ add r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _080D6978 @ =gSpriteTemplate_83D9938
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ b _080D6992
+ .align 2, 0
+_080D6978: .4byte gSpriteTemplate_83D9938
+_080D697C:
+ mov r1, r12
+ lsls r0, r1, 16
+ asrs r0, 16
+ lsls r3, r0, 2
+ adds r3, r0
+_080D6986:
+ ldr r0, _080D69AC @ =gSpriteTemplate_83D9938
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ lsls r3, 16
+_080D6992:
+ asrs r3, 16
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ b _080D69B8
+ .align 2, 0
+_080D69AC: .4byte gSpriteTemplate_83D9938
+_080D69B0:
+ mov r0, r9
+ bl DestroyAnimVisualTask
+ b _080D69FC
+_080D69B8:
+ cmp r7, 0
+ beq _080D69EC
+ ldr r4, _080D6A0C @ =gSprites
+ lsls r3, r5, 4
+ adds r3, r5
+ lsls r3, 2
+ adds r0, r3, r4
+ ldrh r5, [r0, 0x4]
+ lsls r2, r5, 22
+ lsrs r2, 22
+ add r2, r8
+ ldr r6, _080D6A10 @ =0x000003ff
+ adds r1, r6, 0
+ ands r2, r1
+ ldr r1, _080D6A14 @ =0xfffffc00
+ ands r1, r5
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r0, 0x2E]
+ adds r4, 0x1C
+ adds r3, r4
+ ldr r1, [r3]
+ bl _call_via_r1
+_080D69EC:
+ ldr r0, _080D6A18 @ =gTasks
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ strh r0, [r1, 0x1C]
+_080D69FC:
+ 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
+_080D6A0C: .4byte gSprites
+_080D6A10: .4byte 0x000003ff
+_080D6A14: .4byte 0xfffffc00
+_080D6A18: .4byte gTasks
+ thumb_func_end sub_80D6874
+
+ thumb_func_start sub_80D6A1C
+sub_80D6A1C: @ 80D6A1C
+ push {lr}
+ adds r3, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080D6A3E
+ ldrb r1, [r3, 0x1]
+ movs r2, 0x3F
+ adds r0, r2, 0
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+ ldrb r0, [r3, 0x3]
+ ands r2, r0
+ strb r2, [r3, 0x3]
+ b _080D6A52
+_080D6A3E:
+ ldrb r2, [r3, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3, 0x1]
+ ldrb r0, [r3, 0x3]
+ ands r1, r0
+ movs r0, 0x40
+ orrs r1, r0
+ strb r1, [r3, 0x3]
+_080D6A52:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bne _080D6A66
+ adds r0, r3, 0
+ bl DestroySprite
+_080D6A66:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6A1C
+
+ thumb_func_start sub_80D6A6C
+sub_80D6A6C: @ 80D6A6C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _080D6AD4 @ =gBattleAnimArgs
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+ ldrh r3, [r4, 0x22]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ ldr r0, _080D6AD8 @ =gBattleAnimSpriteTemplate_83D9950
+ adds r1, 0x20
+ lsls r1, 16
+ asrs r1, 16
+ movs r7, 0x22
+ ldrsh r2, [r4, r7]
+ adds r3, r4, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080D6ADC @ =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r6, r2, r3
+ ldrh r5, [r6, 0x4]
+ lsls r1, r5, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r7, _080D6AE0 @ =0x000003ff
+ adds r0, r7, 0
+ ands r1, r0
+ ldr r0, _080D6AE4 @ =0xfffffc00
+ ands r0, r5
+ orrs r0, r1
+ strh r0, [r6, 0x4]
+ ldr r1, _080D6AE8 @ =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r3, 0x1C
+ adds r2, r3
+ ldr r0, _080D6AEC @ =sub_80D6AF0
+ str r0, [r2]
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6AD4: .4byte gBattleAnimArgs
+_080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950
+_080D6ADC: .4byte gSprites
+_080D6AE0: .4byte 0x000003ff
+_080D6AE4: .4byte 0xfffffc00
+_080D6AE8: .4byte gAnimVisualTaskCount
+_080D6AEC: .4byte sub_80D6AF0
+ thumb_func_end sub_80D6A6C
+
+ thumb_func_start sub_80D6AF0
+sub_80D6AF0: @ 80D6AF0
+ 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 _080D6B24
+ 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]
+_080D6B24:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _080D6B38
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080D6B38:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6AF0
+
+ thumb_func_start sub_80D6B3C
+sub_80D6B3C: @ 80D6B3C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D6B5C @ =gTasks
+ adds r5, r1, r0
+ ldr r0, _080D6B60 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D6B68
+ ldr r4, _080D6B64 @ =gBattleAnimBankAttacker
+ b _080D6B6A
+ .align 2, 0
+_080D6B5C: .4byte gTasks
+_080D6B60: .4byte gBattleAnimArgs
+_080D6B64: .4byte gBattleAnimBankAttacker
+_080D6B68:
+ ldr r4, _080D6BAC @ =gBattleAnimBankTarget
+_080D6B6A:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x26]
+ ldr r2, _080D6BB0 @ =gBattleAnimArgs
+ ldrh r0, [r2, 0x2]
+ movs r1, 0
+ strh r0, [r5, 0x14]
+ strh r1, [r5, 0x16]
+ strh r1, [r5, 0x18]
+ strh r1, [r5, 0x1A]
+ strh r1, [r5, 0x1C]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r5, 0x1E]
+ strh r1, [r5, 0x20]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x22]
+ ldr r0, _080D6BB4 @ =sub_80D6BB8
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6BAC: .4byte gBattleAnimBankTarget
+_080D6BB0: .4byte gBattleAnimArgs
+_080D6BB4: .4byte sub_80D6BB8
+ thumb_func_end sub_80D6B3C
+
+ thumb_func_start sub_80D6BB8
+sub_80D6BB8: @ 80D6BB8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r2, r6, 0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080D6CA0 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080D6CB8
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x22
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ ble _080D6CC6
+ strh r7, [r5, 0x20]
+ ldr r0, _080D6CA4 @ =gSpriteTemplate_83D99B8
+ movs r3, 0x24
+ ldrsh r1, [r5, r3]
+ movs r3, 0x26
+ ldrsh r2, [r5, r3]
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080D6CC6
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080D6CA8 @ =gSprites
+ adds r4, r0
+ ldr r1, _080D6CAC @ =gUnknown_083D9968
+ movs r2, 0x1A
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r3, 0
+ ldrsb r3, [r0, r3]
+ ldrh r0, [r4, 0x20]
+ adds r3, r0
+ strh r3, [r4, 0x20]
+ movs r2, 0x1A
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ ldrh r0, [r4, 0x22]
+ adds r2, r0
+ strh r2, [r4, 0x22]
+ movs r1, 0x18
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ movs r0, 0x28
+ subs r0, r1
+ strh r0, [r4, 0x2E]
+ strh r3, [r4, 0x30]
+ ldrh r0, [r5, 0x24]
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ ldrh r0, [r5, 0x26]
+ strh r0, [r4, 0x36]
+ strh r6, [r4, 0x38]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080D6CB0 @ =sub_80D6D00
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ ldr r0, _080D6CB4 @ =sub_8078600
+ str r0, [r4, 0x1C]
+ ldrh r0, [r5, 0x1A]
+ adds r0, 0x1
+ strh r0, [r5, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080D6C70
+ strh r7, [r5, 0x1A]
+_080D6C70:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1E
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ blt _080D6C92
+ strh r7, [r5, 0x1C]
+ ldrh r1, [r5, 0x18]
+ movs r3, 0x18
+ ldrsh r0, [r5, r3]
+ cmp r0, 0x5
+ bgt _080D6C92
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x18]
+_080D6C92:
+ ldrh r0, [r5, 0x16]
+ adds r0, 0x1
+ strh r0, [r5, 0x16]
+ ldrh r0, [r5, 0x14]
+ subs r0, 0x1
+ strh r0, [r5, 0x14]
+ b _080D6CC6
+ .align 2, 0
+_080D6CA0: .4byte gTasks
+_080D6CA4: .4byte gSpriteTemplate_83D99B8
+_080D6CA8: .4byte gSprites
+_080D6CAC: .4byte gUnknown_083D9968
+_080D6CB0: .4byte sub_80D6D00
+_080D6CB4: .4byte sub_8078600
+_080D6CB8:
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D6CC6
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080D6CC6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6BB8
+
+ thumb_func_start sub_80D6CCC
+sub_80D6CCC: @ 80D6CCC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D6CF4
+ ldr r2, _080D6CFC @ =gTasks
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x16]
+ subs r1, 0x1
+ strh r1, [r0, 0x16]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D6CF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6CFC: .4byte gTasks
+ thumb_func_end sub_80D6CCC
+
+ thumb_func_start sub_80D6D00
+sub_80D6D00: @ 80D6D00
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _080D6D14 @ =sub_80D6CCC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6D14: .4byte sub_80D6CCC
+ thumb_func_end sub_80D6D00
+
+ thumb_func_start sub_80D6D18
+sub_80D6D18: @ 80D6D18
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D6D2C @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D6D34
+ ldr r4, _080D6D30 @ =gBattleAnimBankAttacker
+ b _080D6D36
+ .align 2, 0
+_080D6D2C: .4byte gBattleAnimArgs
+_080D6D30: .4byte gBattleAnimBankAttacker
+_080D6D34:
+ ldr r4, _080D6D64 @ =gBattleAnimBankTarget
+_080D6D36:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080D6D68 @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData
+ ldr r0, _080D6D6C @ =sub_80785E4
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6D64: .4byte gBattleAnimBankTarget
+_080D6D68: .4byte move_anim_8074EE0
+_080D6D6C: .4byte sub_80785E4
+ thumb_func_end sub_80D6D18
+
+ thumb_func_start sub_80D6D70
+sub_80D6D70: @ 80D6D70
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D6D84 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D6D8C
+ ldr r4, _080D6D88 @ =gBattleAnimBankAttacker
+ b _080D6D8E
+ .align 2, 0
+_080D6D84: .4byte gBattleAnimArgs
+_080D6D88: .4byte gBattleAnimBankAttacker
+_080D6D8C:
+ ldr r4, _080D6DC8 @ =gBattleAnimBankTarget
+_080D6D8E:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080D6DCC @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x26]
+ ldr r1, _080D6DD0 @ =move_anim_8072740
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData
+ ldr r0, _080D6DD4 @ =sub_8078600
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6DC8: .4byte gBattleAnimBankTarget
+_080D6DCC: .4byte gBattleAnimArgs
+_080D6DD0: .4byte move_anim_8072740
+_080D6DD4: .4byte sub_8078600
+ thumb_func_end sub_80D6D70
+
+ thumb_func_start sub_80D6DD8
+sub_80D6DD8: @ 80D6DD8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r4, _080D6E30 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ movs r0, 0x10
+ strh r0, [r5, 0x3C]
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D6E26
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r5, 0x3C]
+_080D6E26:
+ ldr r0, _080D6E34 @ =sub_80D6E38
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6E30: .4byte gBattleAnimBankAttacker
+_080D6E34: .4byte sub_80D6E38
+ thumb_func_end sub_80D6DD8
+
+ thumb_func_start sub_80D6E38
+sub_80D6E38: @ 80D6E38
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D6E4A
+ cmp r0, 0x1
+ beq _080D6E60
+ b _080D6E90
+_080D6E4A:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _080D6E90
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D6E90
+_080D6E60:
+ ldrh r2, [r4, 0x3C]
+ ldrh r1, [r4, 0x20]
+ adds r0, r2, r1
+ strh r0, [r4, 0x20]
+ ldr r3, _080D6E98 @ =gSprites
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x24]
+ adds r2, r1
+ strh r2, [r0, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x50
+ lsls r0, 16
+ movs r1, 0xC8
+ lsls r1, 17
+ cmp r0, r1
+ bls _080D6E90
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080D6E90:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6E98: .4byte gSprites
+ thumb_func_end sub_80D6E38
+
+ thumb_func_start sub_80D6E9C
+sub_80D6E9C: @ 80D6E9C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080D6EC0 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080D6F30
+ cmp r0, 0x1
+ bgt _080D6EC4
+ cmp r0, 0
+ beq _080D6ED0
+ b _080D7000
+ .align 2, 0
+_080D6EC0: .4byte gTasks
+_080D6EC4:
+ cmp r0, 0x2
+ beq _080D6F8C
+ cmp r0, 0x3
+ bne _080D6ECE
+ b _080D6FE0
+_080D6ECE:
+ b _080D7000
+_080D6ED0:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r5, 0x26]
+ ldr r4, _080D6F04 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D6F0C
+ ldr r0, _080D6F08 @ =0x0000ffe0
+ strh r0, [r5, 0x24]
+ movs r0, 0x2
+ b _080D6F12
+ .align 2, 0
+_080D6F04: .4byte gBattleAnimBankAttacker
+_080D6F08: .4byte 0x0000ffe0
+_080D6F0C:
+ movs r0, 0x20
+ strh r0, [r5, 0x24]
+ ldr r0, _080D6F28 @ =0x0000fffe
+_080D6F12:
+ strh r0, [r5, 0x22]
+ ldr r2, _080D6F2C @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r5, 0x24]
+ strh r1, [r0, 0x24]
+ b _080D6FD2
+ .align 2, 0
+_080D6F28: .4byte 0x0000fffe
+_080D6F2C: .4byte gSprites
+_080D6F30:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D7000
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ ldr r4, _080D6F88 @ =gSprites
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ 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]
+ ldrh r1, [r5, 0x24]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080D6FD2
+ ldrh r2, [r5, 0x22]
+ adds r2, r1, r2
+ strh r2, [r5, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x24]
+ b _080D7000
+ .align 2, 0
+_080D6F88: .4byte gSprites
+_080D6F8C:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D7000
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ ldr r1, _080D6FDC @ =gSprites
+ movs r2, 0x26
+ ldrsh r0, [r5, 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]
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _080D7000
+_080D6FD2:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080D7000
+ .align 2, 0
+_080D6FDC: .4byte gSprites
+_080D6FE0:
+ ldr r2, _080D7008 @ =gSprites
+ movs r0, 0x26
+ 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]
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+_080D7000:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7008: .4byte gSprites
+ thumb_func_end sub_80D6E9C
+
+ thumb_func_start sub_80D700C
+sub_80D700C: @ 80D700C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D7030 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080D7026
+ b _080D714C
+_080D7026:
+ cmp r0, 0x1
+ bgt _080D7034
+ cmp r0, 0
+ beq _080D703C
+ b _080D718E
+ .align 2, 0
+_080D7030: .4byte gTasks
+_080D7034:
+ cmp r0, 0x2
+ bne _080D703A
+ b _080D7180
+_080D703A:
+ b _080D718E
+_080D703C:
+ ldr r4, _080D707C @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080D7052
+ movs r1, 0x1
+_080D7052:
+ movs r6, 0
+ strh r1, [r5, 0xA]
+ ldr r0, _080D7080 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r3, r0, 0
+ cmp r2, 0
+ beq _080D7088
+ cmp r2, 0x4
+ beq _080D70B0
+ ldrh r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D70E8
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0xE]
+ ldr r0, _080D7084 @ =0x0000fff0
+ b _080D70F0
+ .align 2, 0
+_080D707C: .4byte gBattleAnimBankAttacker
+_080D7080: .4byte gBattleAnimArgs
+_080D7084: .4byte 0x0000fff0
+_080D7088:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ movs r2, 0xA
+ ldrsh r0, [r5, r2]
+ lsls r0, 7
+ adds r0, 0x78
+ strh r0, [r5, 0x10]
+ b _080D7126
+_080D70B0:
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r1, 7
+ movs r0, 0x78
+ subs r0, r1
+ strh r0, [r5, 0xE]
+ ldr r4, _080D70E4 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0xA
+ ldrsh r1, [r5, r2]
+ lsls r1, 5
+ subs r0, r1
+ strh r0, [r5, 0x10]
+ b _080D7126
+ .align 2, 0
+_080D70E4: .4byte gBattleAnimBankTarget
+_080D70E8:
+ ldr r0, _080D710C @ =0x0000fff0
+ strh r0, [r5, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+_080D70F0:
+ strh r0, [r5, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080D7110
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 1
+ movs r0, 0x50
+ subs r0, r1
+ strh r0, [r5, 0x12]
+ b _080D7126
+ .align 2, 0
+_080D710C: .4byte 0x0000fff0
+_080D7110:
+ movs r0, 0
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r0, 0x28
+ strh r0, [r5, 0x12]
+ ldrh r1, [r5, 0xE]
+ ldrh r0, [r5, 0x10]
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+_080D7126:
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bge _080D713C
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r5, 0xA]
+ strh r1, [r5, 0x14]
+ b _080D7178
+_080D713C:
+ ldr r0, _080D7148 @ =0x0000ffff
+ strh r0, [r5, 0xA]
+ movs r0, 0x3
+ strh r0, [r5, 0x14]
+ b _080D7178
+ .align 2, 0
+_080D7148: .4byte 0x0000ffff
+_080D714C:
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080D718E
+ movs r0, 0
+ strh r0, [r5, 0xC]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80D7194
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D7178
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80D7194
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D718E
+_080D7178:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080D718E
+_080D7180:
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D718E
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080D718E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D700C
+
+ thumb_func_start sub_80D7194
+sub_80D7194: @ 80D7194
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080D7220 @ =gSpriteTemplate_83D9B10
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ movs r3, 0x12
+ ldrsh r2, [r4, r3]
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080D71CA
+ ldr r1, _080D7224 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ strh r5, [r0, 0x3A]
+ movs r1, 0x7
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+_080D71CA:
+ ldrh r1, [r4, 0xA]
+ ldrh r5, [r4, 0x14]
+ adds r0, r1, r5
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080D71DC
+ movs r0, 0x3
+ strh r0, [r4, 0x14]
+_080D71DC:
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ ble _080D71E8
+ movs r0, 0
+ strh r0, [r4, 0x14]
+_080D71E8:
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ lsls r0, 4
+ ldrh r5, [r4, 0xE]
+ adds r2, r0, r5
+ strh r2, [r4, 0xE]
+ lsls r0, r1, 16
+ asrs r3, r0, 16
+ cmp r3, 0x1
+ bne _080D7208
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0x10
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ bge _080D721C
+_080D7208:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r3, r0
+ bne _080D7228
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bgt _080D7228
+_080D721C:
+ movs r0, 0x1
+ b _080D722A
+ .align 2, 0
+_080D7220: .4byte gSpriteTemplate_83D9B10
+_080D7224: .4byte gSprites
+_080D7228:
+ movs r0, 0
+_080D722A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D7194
+
+ thumb_func_start sub_80D7230
+sub_80D7230: @ 80D7230
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080D7270
+ ldr r3, _080D7278 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D7270:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7278: .4byte gTasks
+ thumb_func_end sub_80D7230
+
+ thumb_func_start sub_80D727C
+sub_80D727C: @ 80D727C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080D728E
+ cmp r0, 0x1
+ beq _080D72C0
+ b _080D72D4
+_080D728E:
+ ldr r4, _080D72BC @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080D72D4
+ .align 2, 0
+_080D72BC: .4byte gBattleAnimBankAttacker
+_080D72C0:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D72D4
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_080D72D4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D727C
+
+ thumb_func_start sub_80D72DC
+sub_80D72DC: @ 80D72DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D7300 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _080D72F6
+ b _080D7468
+_080D72F6:
+ lsls r0, 2
+ ldr r1, _080D7304 @ =_080D7308
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D7300: .4byte gTasks
+_080D7304: .4byte _080D7308
+ .align 2, 0
+_080D7308:
+ .4byte _080D731C
+ .4byte _080D73AC
+ .4byte _080D73E8
+ .4byte _080D7444
+ .4byte _080D7454
+_080D731C:
+ ldr r4, _080D73A0 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x16]
+ movs r0, 0x4
+ strh r0, [r5, 0x18]
+ ldr r0, _080D73A4 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r5, r2]
+ movs r2, 0x14
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r5, 0x1A]
+ movs r0, 0x7
+ strh r0, [r5, 0x10]
+ ldr r0, _080D73A8 @ =0x0000ffff
+ strh r0, [r5, 0x12]
+ movs r0, 0xC
+ strh r0, [r5, 0x1E]
+ subs r0, 0x4C
+ bl sub_8076F98
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0x20]
+ movs r0, 0x3F
+ bl sub_8076F98
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x24]
+ movs r1, 0x22
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ b _080D7466
+ .align 2, 0
+_080D73A0: .4byte gBattleAnimBankAttacker
+_080D73A4: .4byte gBattleAnimBankTarget
+_080D73A8: .4byte 0x0000ffff
+_080D73AC:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080D73DC
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80D7470
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D73DC
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x5
+ bne _080D73D6
+ movs r0, 0x3
+ b _080D73DA
+_080D73D6:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+_080D73DA:
+ strh r0, [r5, 0x8]
+_080D73DC:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080D7468
+ b _080D745E
+_080D73E8:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080D73F6
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x1E]
+_080D73F6:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D7468
+ strh r3, [r5, 0xA]
+ ldrh r1, [r5, 0xC]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080D7422
+ movs r0, 0x4
+ strh r0, [r5, 0x16]
+ movs r0, 0x44
+ strh r0, [r5, 0x18]
+ strh r3, [r5, 0x10]
+ strh r2, [r5, 0x12]
+ b _080D7432
+_080D7422:
+ movs r0, 0x44
+ strh r0, [r5, 0x16]
+ movs r0, 0x4
+ strh r0, [r5, 0x18]
+ movs r0, 0x7
+ strh r0, [r5, 0x10]
+ ldr r0, _080D7440 @ =0x0000ffff
+ strh r0, [r5, 0x12]
+_080D7432:
+ movs r1, 0x1E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080D7464
+ movs r0, 0x4
+ b _080D7466
+ .align 2, 0
+_080D7440: .4byte 0x0000ffff
+_080D7444:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D7468
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ b _080D7468
+_080D7454:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080D7464
+_080D745E:
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x1E]
+ b _080D7468
+_080D7464:
+ movs r0, 0x1
+_080D7466:
+ strh r0, [r5, 0x8]
+_080D7468:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D72DC
+
+ thumb_func_start sub_80D7470
+sub_80D7470: @ 80D7470
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080D7538 @ =gSpriteTemplate_83D9B40
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ movs r3, 0x16
+ ldrsh r2, [r4, r3]
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080D74DC
+ ldr r1, _080D753C @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r1
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldrh r6, [r4, 0x10]
+ adds r1, r6
+ ldr r6, _080D7540 @ =0x000003ff
+ adds r0, r6, 0
+ ands r1, r0
+ ldr r0, _080D7544 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080D74C4
+ movs r0, 0x7
+ strh r0, [r4, 0x10]
+_080D74C4:
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x7
+ ble _080D74D0
+ movs r0, 0
+ strh r0, [r4, 0x10]
+_080D74D0:
+ strh r5, [r3, 0x3A]
+ movs r0, 0x3
+ strh r0, [r3, 0x3C]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+_080D74DC:
+ movs r3, 0x10
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080D74FE
+ movs r5, 0x12
+ ldrsh r0, [r4, r5]
+ cmp r0, 0
+ ble _080D74FE
+ ldrh r1, [r4, 0x26]
+ ldrh r6, [r4, 0x24]
+ adds r1, r6
+ strh r1, [r4, 0x24]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x76
+ bl PlaySE12WithPanning
+_080D74FE:
+ movs r0, 0x12
+ ldrsh r3, [r4, r0]
+ ldrh r2, [r4, 0x16]
+ cmp r3, 0
+ bge _080D7514
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0x18
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ ble _080D7524
+_080D7514:
+ cmp r3, 0
+ ble _080D7548
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r6, 0x18
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ blt _080D7548
+_080D7524:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x1A]
+ ldrh r1, [r4, 0x14]
+ adds r0, r1
+ strh r0, [r4, 0x14]
+ movs r0, 0x1
+ b _080D7554
+ .align 2, 0
+_080D7538: .4byte gSpriteTemplate_83D9B40
+_080D753C: .4byte gSprites
+_080D7540: .4byte 0x000003ff
+_080D7544: .4byte 0xfffffc00
+_080D7548:
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ lsls r0, 3
+ adds r0, r2, r0
+ strh r0, [r4, 0x16]
+ movs r0, 0
+_080D7554:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D7470
+
+ thumb_func_start sub_80D755C
+sub_80D755C: @ 80D755C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080D7592
+ ldr r3, _080D7598 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D7592:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7598: .4byte gTasks
+ thumb_func_end sub_80D755C
+
+ thumb_func_start sub_80D759C
+sub_80D759C: @ 80D759C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D75C0 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080D7618
+ cmp r0, 0x1
+ bgt _080D75C4
+ cmp r0, 0
+ beq _080D75CA
+ b _080D764E
+ .align 2, 0
+_080D75C0: .4byte gTasks
+_080D75C4:
+ cmp r0, 0x2
+ beq _080D7640
+ b _080D764E
+_080D75CA:
+ ldr r0, _080D7614 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r5, 0x26]
+ strh r0, [r5, 0x24]
+ cmp r0, 0x10
+ ble _080D75F4
+ adds r2, r0, 0
+_080D75E4:
+ adds r1, r2, 0
+ subs r1, 0x20
+ adds r2, r1, 0
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bgt _080D75E4
+ strh r1, [r5, 0x24]
+_080D75F4:
+ ldr r4, _080D7614 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x2
+ strh r0, [r5, 0x20]
+ b _080D7638
+ .align 2, 0
+_080D7614: .4byte gBattleAnimBankTarget
+_080D7618:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D764E
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80D7654
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D764E
+_080D7638:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080D764E
+_080D7640:
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D764E
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080D764E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D759C
+
+ thumb_func_start sub_80D7654
+sub_80D7654: @ 80D7654
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080D76B0 @ =gBattleAnimSpriteTemplate_83D97D0
+ movs r2, 0x22
+ ldrsh r1, [r4, r2]
+ movs r3, 0x24
+ ldrsh r2, [r4, r3]
+ ldrh r3, [r4, 0x20]
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080D7698
+ ldr r3, _080D76B4 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _080D76B8 @ =sub_80D76C4
+ str r2, [r1]
+ adds r0, r3
+ strh r5, [r0, 0x3A]
+ movs r1, 0xA
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+_080D7698:
+ ldrh r2, [r4, 0x24]
+ movs r0, 0x24
+ ldrsh r1, [r4, r0]
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D76BC
+ adds r0, r2, 0
+ adds r0, 0x20
+ strh r0, [r4, 0x24]
+ movs r0, 0
+ b _080D76BE
+ .align 2, 0
+_080D76B0: .4byte gBattleAnimSpriteTemplate_83D97D0
+_080D76B4: .4byte gSprites
+_080D76B8: .4byte sub_80D76C4
+_080D76BC:
+ movs r0, 0x1
+_080D76BE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D7654
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/cute_sketch.s b/asm/cute_sketch.s
index 14c28327d..da5dea0ce 100644
--- a/asm/cute_sketch.s
+++ b/asm/cute_sketch.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
diff --git a/asm/dark.s b/asm/dark.s
new file mode 100755
index 000000000..5175d84f0
--- /dev/null
+++ b/asm/dark.s
@@ -0,0 +1,2013 @@
+ .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 @ =gBattleAnimBankAttacker
+ b _080DFFEE
+ .align 2, 0
+_080DFFE4: .4byte gBattleAnimArgs
+_080DFFE8: .4byte gBattleAnimBankAttacker
+_080DFFEC:
+ ldr r0, _080E001C @ =gBattleAnimBankTarget
+_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 gBattleAnimBankTarget
+_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 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ 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 sub_8077ABC
+ 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 gBattleAnimBankAttacker
+_080E0158: .4byte 0x0000fff4
+_080E015C:
+ ldr r0, _080E01A8 @ =0x0000ffc0
+_080E015E:
+ strh r0, [r5, 0x18]
+ ldr r0, _080E01AC @ =gBattleAnimBankAttacker
+ 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 @ =gUnknown_030041B4
+ 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 NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E01F4
+ ldr r1, _080E01C0 @ =gUnknown_03004288
+ b _080E01EE
+ .align 2, 0
+_080E01A8: .4byte 0x0000ffc0
+_080E01AC: .4byte gBattleAnimBankAttacker
+_080E01B0: .4byte gUnknown_030041B4
+_080E01B4: .4byte REG_BLDCNT
+_080E01B8: .4byte 0x00003f42
+_080E01BC: .4byte REG_BG1VOFS
+_080E01C0: .4byte gUnknown_03004288
+_080E01C4:
+ ldr r0, _080E0278 @ =gUnknown_03004280
+ 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 NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E01F4
+ ldr r1, _080E0288 @ =gUnknown_030042C0
+_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 @ =gUnknown_030042C4
+ ldrh r0, [r5, 0x24]
+ lsls r0, 8
+ ldrh r1, [r5, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E029C @ =gUnknown_03004240
+ 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 gUnknown_03004280
+_080E027C: .4byte REG_BLDCNT
+_080E0280: .4byte 0x00003f44
+_080E0284: .4byte REG_BG2VOFS
+_080E0288: .4byte gUnknown_030042C0
+_080E028C: .4byte 0xa2600001
+_080E0290: .4byte gUnknown_03004DE0
+_080E0294: .4byte REG_WINOUT
+_080E0298: .4byte gUnknown_030042C4
+_080E029C: .4byte gUnknown_03004240
+_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 @ =gUnknown_030042C4
+ 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 gUnknown_030042C4
+_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 NotInBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E043C
+ ldr r0, _080E042C @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E0430 @ =gUnknown_03004240
+ 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 gUnknown_030042C4
+_080E0430: .4byte gUnknown_03004240
+_080E0434: .4byte REG_WININ
+_080E0438: .4byte 0x00003f3f
+_080E043C:
+ ldr r0, _080E045C @ =gBattleAnimBankTarget
+ 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 @ =gUnknown_03004288
+ b _080E0476
+ .align 2, 0
+_080E045C: .4byte gBattleAnimBankTarget
+_080E0460: .4byte REG_BLDCNT
+_080E0464: .4byte 0x00003f42
+_080E0468: .4byte gUnknown_03004288
+_080E046C:
+ ldr r1, _080E0480 @ =REG_BLDCNT
+ ldr r2, _080E0484 @ =0x00003f44
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E0488 @ =gUnknown_030042C0
+_080E0476:
+ ldrh r0, [r1]
+ adds r0, 0xF0
+ strh r0, [r1]
+ b _080E0590
+ .align 2, 0
+_080E0480: .4byte REG_BLDCNT
+_080E0484: .4byte 0x00003f44
+_080E0488: .4byte gUnknown_030042C0
+_080E048C:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080E04B4
+ mov r0, sp
+ bl sub_8078914
+ ldr r0, _080E04B0 @ =gUnknown_030041B4
+ 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 gUnknown_030041B4
+_080E04B4:
+ ldr r0, _080E04CC @ =gUnknown_03004280
+ 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 gUnknown_03004280
+_080E04D0:
+ ldr r4, _080E051C @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ 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 sub_8077ABC
+ 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 gBattleAnimBankTarget
+_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 @ =gUnknown_030042C4
+ ldrh r0, [r5, 0x24]
+ lsls r0, 8
+ ldrh r1, [r5, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E0610 @ =gUnknown_03004240
+ 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 gUnknown_030042C4
+_080E0610: .4byte gUnknown_03004240
+_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 @ =gUnknown_030042C4
+ 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 gUnknown_030042C4
+_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 @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E0790 @ =gUnknown_03004240
+ 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 gUnknown_030042C4
+_080E0790: .4byte gUnknown_03004240
+_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 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankAttacker
+_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 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankAttacker
+ 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 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0A40: .4byte gBattleAnimArgs
+_080E0A44: .4byte sub_8078600
+_080E0A48: .4byte move_anim_8072740
+ 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 @ =gUnknown_030042C4
+ strh r7, [r0]
+ ldr r0, _080E0B54 @ =gUnknown_03004240
+ 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 NotInBattle
+ 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 NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E0B40
+ ldr r4, _080E0B74 @ =gBattleAnimBankAttacker
+ 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 NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0B84
+ ldr r0, _080E0B80 @ =gSharedMem + 0x19348
+ ldrh r5, [r0]
+ b _080E0BCC
+ .align 2, 0
+_080E0B50: .4byte gUnknown_030042C4
+_080E0B54: .4byte gUnknown_03004240
+_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 gBattleAnimBankAttacker
+_080E0B78: .4byte gSprites
+_080E0B7C: .4byte gObjectBankIDs
+_080E0B80: .4byte gSharedMem + 0x19348
+_080E0B84:
+ ldr r4, _080E0BA4 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankAttacker
+_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 @ =gBattleAnimBankAttacker
+ 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 @ =gUnknown_030042C0
+ 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 @ =gUnknown_030041B4
+ 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 gBattleAnimBankAttacker
+_080E0C64: .4byte 0x040000d4
+_080E0C68: .4byte 0x85000400
+_080E0C6C: .4byte gUnknown_08D1D574
+_080E0C70: .4byte gUnknown_08D1D410
+_080E0C74: .4byte gUnknown_08D1D54C
+_080E0C78: .4byte gUnknown_030042C0
+_080E0C7C: .4byte gSprites
+_080E0C80: .4byte gUnknown_030041B4
+_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 @ =gUnknown_030042C0
+ 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 @ =gUnknown_030042C4
+ strh r5, [r0]
+ ldr r0, _080E0DFC @ =gUnknown_03004240
+ 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 NotInBattle
+ 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 @ =gBattleAnimBankAttacker
+ 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 gUnknown_030042C0
+_080E0DF8: .4byte gUnknown_030042C4
+_080E0DFC: .4byte gUnknown_03004240
+_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 gBattleAnimBankAttacker
+ 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 @ =gUnknown_0202F7C4
+ 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 gUnknown_0202F7C4
+_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
new file mode 100755
index 000000000..c384e3b6c
--- /dev/null
+++ b/asm/dragon.s
@@ -0,0 +1,1214 @@
+ .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 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ 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 gBattleAnimBankAttacker
+_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 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080DF698 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankTarget
+_080DF698: .4byte gBattleAnimBankAttacker
+_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 @ =gBattleAnimBankAttacker
+ b _080DF70E
+ .align 2, 0
+_080DF704: .4byte gBattleAnimArgs
+_080DF708: .4byte gBattleAnimBankAttacker
+_080DF70C:
+ ldr r4, _080DF750 @ =gBattleAnimBankTarget
+_080DF70E:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ 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 gBattleAnimBankTarget
+_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 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankAttacker
+ thumb_func_end sub_80DF760
+
+ thumb_func_start sub_80DF78C
+sub_80DF78C: @ 80DF78C
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r4, _080DF7E0 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r6, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ 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 gBattleAnimBankAttacker
+_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 move_anim_8072740
+_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 @ =gBattleAnimBankAttacker
+ 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 @ =gUnknown_030042C0
+ b _080DF966
+ .align 2, 0
+_080DF950: .4byte gTasks
+_080DF954: .4byte gBattleAnimBankAttacker
+_080DF958: .4byte REG_BG1HOFS
+_080DF95C: .4byte gUnknown_030042C0
+_080DF960:
+ ldr r0, _080DF9DC @ =REG_BG2HOFS
+ str r0, [sp]
+ ldr r0, _080DF9E0 @ =gUnknown_03004288
+_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 @ =gBattleAnimBankAttacker
+ 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 gUnknown_03004288
+_080DF9E4: .4byte 0xa2600001
+_080DF9E8: .4byte gBattleAnimBankAttacker
+_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 @ =gBattleAnimBankAttacker
+ mov r8, r1
+ ldrb r0, [r1]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ mov r2, r8
+ ldrb r0, [r2]
+ movs r1, 0x3
+ bl sub_8077ABC
+ 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 gBattleAnimBankAttacker
+_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 move_anim_8072740
+_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 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankAttacker
+_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 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankAttacker
+_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 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankAttacker
+_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 @ =gBattleAnimBankTarget
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x30]
+ ldr r5, _080DFE84 @ =gBattleAnimBankAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ 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 gBattleAnimBankTarget
+_080DFE84: .4byte gBattleAnimBankAttacker
+_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 move_anim_8072740
+_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
index 7bb496641..e08d71083 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -192,7 +191,7 @@ _080E6254: .4byte gSpecialVar_0x8005
_080E6258: .4byte gSaveBlock1 + 0x2750
_080E625C: .4byte sub_80546B8
_080E6260:
- ldr r1, _080E628C @ =0x02001000
+ ldr r1, _080E628C @ =gSharedMem + 0x1000
ldr r0, _080E6290 @ =0x00009c7c
adds r2, r1, r0
ldr r0, _080E6294 @ =0x0000ffff
@@ -216,7 +215,7 @@ _080E6284:
pop {r0}
bx r0
.align 2, 0
-_080E628C: .4byte 0x02001000
+_080E628C: .4byte gSharedMem + 0x1000
_080E6290: .4byte 0x00009c7c
_080E6294: .4byte 0x0000ffff
_080E6298: .4byte 0x00009c7e
@@ -228,7 +227,7 @@ sub_80E62A0: @ 80E62A0
push {r4,lr}
lsls r0, 24
lsrs r0, 24
- ldr r4, _080E62DC @ =0x02001000
+ ldr r4, _080E62DC @ =gSharedMem + 0x1000
str r2, [r4]
str r1, [r4, 0x4]
strb r0, [r4, 0x8]
@@ -256,7 +255,7 @@ _080E62D0:
pop {r0}
bx r0
.align 2, 0
-_080E62DC: .4byte 0x02001000
+_080E62DC: .4byte gSharedMem + 0x1000
_080E62E0: .4byte 0x00009c7c
_080E62E4: .4byte gSaveBlock1
_080E62E8: .4byte 0x00002dd8
@@ -393,7 +392,7 @@ _080E6420: .4byte 0x0000043c
thumb_func_start sub_80E6424
sub_80E6424: @ 80E6424
push {lr}
- ldr r2, _080E6444 @ =0x02001000
+ ldr r2, _080E6444 @ =gSharedMem + 0x1000
ldr r0, _080E6448 @ =gUnknown_083DB6A4
ldrb r1, [r2, 0x8]
adds r1, r0
@@ -409,7 +408,7 @@ sub_80E6424: @ 80E6424
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E6444: .4byte 0x02001000
+_080E6444: .4byte gSharedMem + 0x1000
_080E6448: .4byte gUnknown_083DB6A4
_080E644C: .4byte _080E6450
.align 2, 0
@@ -550,11 +549,11 @@ sub_80E6554: @ 80E6554
sub sp, 0x4
movs r4, 0
movs r7, 0
- ldr r0, _080E6564 @ =0x02001000
+ ldr r0, _080E6564 @ =gSharedMem + 0x1000
mov r12, r0
b _080E656E
.align 2, 0
-_080E6564: .4byte 0x02001000
+_080E6564: .4byte gSharedMem + 0x1000
_080E6568:
adds r0, r7, 0x1
lsls r0, 16
@@ -640,7 +639,7 @@ _080E65FC:
subs r0, 0x11
adds r0, r2
strb r1, [r0]
- ldr r0, _080E662C @ =0x02001000
+ ldr r0, _080E662C @ =gSharedMem + 0x1000
mov r12, r0
_080E6608:
adds r0, r4, 0x1
@@ -662,7 +661,7 @@ _080E6612:
pop {r0}
bx r0
.align 2, 0
-_080E662C: .4byte 0x02001000
+_080E662C: .4byte gSharedMem + 0x1000
thumb_func_end sub_80E6554
thumb_func_start sub_80E6630
@@ -683,7 +682,7 @@ _080E6638:
lsls r0, r1, 3
subs r0, r1
lsls r4, r0, 1
- ldr r6, _080E6668 @ =0x02001040
+ ldr r6, _080E6668 @ =gSharedMem + 0x1040
_080E6650:
adds r0, r5, r3
ldrb r1, [r0]
@@ -697,7 +696,7 @@ _080E6650:
b _080E6672
.align 2, 0
_080E6664: .4byte gUnknown_083DB6B2
-_080E6668: .4byte 0x02001040
+_080E6668: .4byte gSharedMem + 0x1040
_080E666C:
adds r0, r3, r4
adds r0, r6
@@ -733,7 +732,7 @@ sub_80E6690: @ 80E6690
movs r5, 0
ldr r6, _080E66E4 @ =gUnknown_083DB7C0
_080E66A4:
- ldr r0, _080E66E8 @ =0x02001000
+ ldr r0, _080E66E8 @ =gSharedMem + 0x1000
ldrb r0, [r0, 0x8]
lsls r0, 1
adds r0, r5, r0
@@ -764,7 +763,7 @@ _080E66A4:
.align 2, 0
_080E66E0: .4byte gUnknown_083DB7DC
_080E66E4: .4byte gUnknown_083DB7C0
-_080E66E8: .4byte 0x02001000
+_080E66E8: .4byte gSharedMem + 0x1000
_080E66EC: .4byte gUnknown_083DB6F4
_080E66F0:
strb r0, [r3]
@@ -786,7 +785,7 @@ _080E670A:
cmp r5, 0x1
bls _080E66A4
movs r5, 0
- ldr r3, _080E6758 @ =0x02001000
+ ldr r3, _080E6758 @ =gSharedMem + 0x1000
ldr r0, _080E675C @ =0x00009da4
adds r2, r3, r0
movs r1, 0
@@ -820,7 +819,7 @@ _080E671E:
pop {r0}
bx r0
.align 2, 0
-_080E6758: .4byte 0x02001000
+_080E6758: .4byte gSharedMem + 0x1000
_080E675C: .4byte 0x00009da4
_080E6760: .4byte 0x00009f6e
thumb_func_end sub_80E6690
@@ -930,19 +929,19 @@ _080E6828: .4byte gSaveBlock1 + 0x2D8C
thumb_func_start sub_80E682C
sub_80E682C: @ 80E682C
- ldr r1, _080E6838 @ =0x02001000
+ ldr r1, _080E6838 @ =gSharedMem + 0x1000
str r0, [r1, 0x20]
movs r0, 0
strh r0, [r1, 0x24]
bx lr
.align 2, 0
-_080E6838: .4byte 0x02001000
+_080E6838: .4byte gSharedMem + 0x1000
thumb_func_end sub_80E682C
thumb_func_start sub_80E683C
sub_80E683C: @ 80E683C
push {r4,r5,lr}
- ldr r1, _080E6890 @ =0x02001000
+ ldr r1, _080E6890 @ =gSharedMem + 0x1000
adds r0, r1, 0
adds r0, 0x26
ldrb r0, [r0]
@@ -985,7 +984,7 @@ _080E6876:
strb r0, [r3]
b _080E68B8
.align 2, 0
-_080E6890: .4byte 0x02001000
+_080E6890: .4byte gSharedMem + 0x1000
_080E6894: .4byte 0x000001a9
_080E6898:
movs r3, 0xD5
@@ -1032,7 +1031,7 @@ _080E68E4: .4byte 0x000001a9
sub_80E68E8: @ 80E68E8
push {r4-r6,lr}
bl sub_80EB0B0
- ldr r3, _080E694C @ =0x02001000
+ ldr r3, _080E694C @ =gSharedMem + 0x1000
adds r0, r3, 0
adds r0, 0x26
ldrb r0, [r0]
@@ -1082,7 +1081,7 @@ _080E693A:
ldr r3, _080E6950 @ =0x00004178
b _080E69AC
.align 2, 0
-_080E694C: .4byte 0x02001000
+_080E694C: .4byte gSharedMem + 0x1000
_080E6950: .4byte 0x00004178
_080E6954: .4byte 0x00009a28
_080E6958: .4byte 0x000099a6
@@ -1167,7 +1166,7 @@ _080E69F4: .4byte 0x00009a29
thumb_func_start sub_80E69F8
sub_80E69F8: @ 80E69F8
push {r4,lr}
- ldr r0, _080E6A10 @ =0x02001000
+ ldr r0, _080E6A10 @ =gSharedMem + 0x1000
ldrb r1, [r0, 0x8]
adds r4, r0, 0
cmp r1, 0xD
@@ -1178,7 +1177,7 @@ sub_80E69F8: @ 80E69F8
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E6A10: .4byte 0x02001000
+_080E6A10: .4byte gSharedMem + 0x1000
_080E6A14: .4byte _080E6A18
.align 2, 0
_080E6A18:
@@ -1227,7 +1226,7 @@ sub_80E6A6C: @ 80E6A6C
thumb_func_start sub_80E6A88
sub_80E6A88: @ 80E6A88
push {lr}
- ldr r0, _080E6AA4 @ =0x02001000
+ ldr r0, _080E6AA4 @ =gSharedMem + 0x1000
ldr r0, [r0, 0x20]
bl _call_via_r0
bl AnimateSprites
@@ -1236,7 +1235,7 @@ sub_80E6A88: @ 80E6A88
pop {r0}
bx r0
.align 2, 0
-_080E6AA4: .4byte 0x02001000
+_080E6AA4: .4byte gSharedMem + 0x1000
thumb_func_end sub_80E6A88
thumb_func_start sub_80E6AA8
@@ -1275,7 +1274,7 @@ _080E6AE0: .4byte sub_80E6AE4
sub_80E6AE4: @ 80E6AE4
push {r4,r5,lr}
bl sub_80E75D8
- ldr r4, _080E6B44 @ =0x02001000
+ ldr r4, _080E6B44 @ =gSharedMem + 0x1000
adds r1, r4, 0
adds r1, 0x87
strb r0, [r1]
@@ -1320,7 +1319,7 @@ _080E6AFE:
beq _080E6B52
b _080E6BA4
.align 2, 0
-_080E6B44: .4byte 0x02001000
+_080E6B44: .4byte gSharedMem + 0x1000
_080E6B48: .4byte gMain
_080E6B4C:
cmp r0, 0x2
@@ -1383,7 +1382,7 @@ _080E6BBC: .4byte sub_80E6C84
thumb_func_start sub_80E6BC0
sub_80E6BC0: @ 80E6BC0
push {r4,lr}
- ldr r4, _080E6BD4 @ =0x02001000
+ ldr r4, _080E6BD4 @ =gSharedMem + 0x1000
ldrh r0, [r4, 0x24]
cmp r0, 0x1
beq _080E6C12
@@ -1393,7 +1392,7 @@ sub_80E6BC0: @ 80E6BC0
beq _080E6BE2
b _080E6C76
.align 2, 0
-_080E6BD4: .4byte 0x02001000
+_080E6BD4: .4byte gSharedMem + 0x1000
_080E6BD8:
cmp r0, 0x2
beq _080E6C54
@@ -1448,13 +1447,13 @@ _080E6C3E:
strh r0, [r4, 0x24]
b _080E6C76
_080E6C46:
- ldr r1, _080E6C50 @ =0x02001000
+ ldr r1, _080E6C50 @ =gSharedMem + 0x1000
ldrh r0, [r1, 0x24]
adds r0, 0x1
strh r0, [r1, 0x24]
b _080E6C76
.align 2, 0
-_080E6C50: .4byte 0x02001000
+_080E6C50: .4byte gSharedMem + 0x1000
_080E6C54:
bl sub_80E81FC
ldr r0, _080E6C60 @ =sub_80E6AC4
@@ -1483,7 +1482,7 @@ _080E6C80: .4byte sub_80E6AC4
thumb_func_start sub_80E6C84
sub_80E6C84: @ 80E6C84
push {r4,lr}
- ldr r4, _080E6C98 @ =0x02001000
+ ldr r4, _080E6C98 @ =gSharedMem + 0x1000
ldrh r0, [r4, 0x24]
cmp r0, 0x1
beq _080E6CF4
@@ -1493,7 +1492,7 @@ sub_80E6C84: @ 80E6C84
beq _080E6CA6
b _080E6D72
.align 2, 0
-_080E6C98: .4byte 0x02001000
+_080E6C98: .4byte gSharedMem + 0x1000
_080E6C9C:
cmp r0, 0x2
beq _080E6D24
@@ -1531,12 +1530,12 @@ _080E6CA6:
cmp r0, 0xD
bne _080E6D1C
_080E6CE8:
- ldr r1, _080E6CF0 @ =0x02001000
+ ldr r1, _080E6CF0 @ =gSharedMem + 0x1000
movs r0, 0x2
strh r0, [r1, 0x24]
b _080E6D72
.align 2, 0
-_080E6CF0: .4byte 0x02001000
+_080E6CF0: .4byte gSharedMem + 0x1000
_080E6CF4:
bl ProcessMenuInputNoWrap_
lsls r0, 24
@@ -1579,21 +1578,21 @@ _080E6D3E:
beq _080E6D58
b _080E6D72
_080E6D44:
- ldr r0, _080E6D50 @ =gScriptResult
+ ldr r0, _080E6D50 @ =gSpecialVar_Result
strh r1, [r0]
ldr r0, _080E6D54 @ =sub_80E752C
bl sub_80E682C
b _080E6D72
.align 2, 0
-_080E6D50: .4byte gScriptResult
+_080E6D50: .4byte gSpecialVar_Result
_080E6D54: .4byte sub_80E752C
_080E6D58:
- ldr r1, _080E6D60 @ =0x02001000
+ ldr r1, _080E6D60 @ =gSharedMem + 0x1000
movs r0, 0xFF
strh r0, [r1, 0x24]
b _080E6D72
.align 2, 0
-_080E6D60: .4byte 0x02001000
+_080E6D60: .4byte gSharedMem + 0x1000
_080E6D64:
bl HandleDestroyMenuCursors
bl sub_80E81FC
@@ -1610,7 +1609,7 @@ _080E6D78: .4byte sub_80E6AC4
thumb_func_start sub_80E6D7C
sub_80E6D7C: @ 80E6D7C
push {r4-r7,lr}
- ldr r5, _080E6D98 @ =0x02001000
+ ldr r5, _080E6D98 @ =gSharedMem + 0x1000
ldrh r0, [r5, 0x24]
cmp r0, 0xA
bne _080E6D88
@@ -1624,7 +1623,7 @@ _080E6D88:
beq _080E6E3C
b _080E6F5E
.align 2, 0
-_080E6D98: .4byte 0x02001000
+_080E6D98: .4byte gSharedMem + 0x1000
_080E6D9C:
cmp r0, 0x65
bne _080E6DA2
@@ -1680,7 +1679,7 @@ _080E6DEE:
.align 2, 0
_080E6DF8: .4byte 0x0000ffff
_080E6DFC:
- ldr r0, _080E6E18 @ =0x02001000
+ ldr r0, _080E6E18 @ =gSharedMem + 0x1000
ldrb r0, [r0, 0x8]
cmp r0, 0x4
bne _080E6E20
@@ -1692,7 +1691,7 @@ _080E6DFC:
bl sub_80E682C
b _080E6F5E
.align 2, 0
-_080E6E18: .4byte 0x02001000
+_080E6E18: .4byte gSharedMem + 0x1000
_080E6E1C: .4byte sub_80E6C84
_080E6E20:
movs r0, 0x1
@@ -1723,7 +1722,7 @@ _080E6E56:
beq _080E6EDC
b _080E6F5E
_080E6E5C:
- ldr r7, _080E6EC8 @ =gScriptResult
+ ldr r7, _080E6EC8 @ =gSpecialVar_Result
bl sub_80E7FA8
lsls r0, 24
lsrs r0, 24
@@ -1775,7 +1774,7 @@ _080E6EBE:
bl sub_80E682C
b _080E6F5E
.align 2, 0
-_080E6EC8: .4byte gScriptResult
+_080E6EC8: .4byte gSpecialVar_Result
_080E6ECC: .4byte gSpecialVar_0x8004
_080E6ED0: .4byte 0x00009c7c
_080E6ED4: .4byte 0x0000ffff
@@ -1783,7 +1782,7 @@ _080E6ED8: .4byte sub_80E752C
_080E6EDC:
bl HandleDestroyMenuCursors
bl sub_80E81FC
- ldr r4, _080E6EFC @ =0x02001000
+ ldr r4, _080E6EFC @ =gSharedMem + 0x1000
ldrb r0, [r4, 0x8]
cmp r0, 0x6
bne _080E6F00
@@ -1795,7 +1794,7 @@ _080E6EDC:
strh r0, [r4, 0x24]
b _080E6F5E
.align 2, 0
-_080E6EFC: .4byte 0x02001000
+_080E6EFC: .4byte gSharedMem + 0x1000
_080E6F00:
bl sub_80E95A4
b _080E6F12
@@ -1827,14 +1826,14 @@ _080E6F30:
cmp r0, 0
beq _080E6F5E
_080E6F3C:
- ldr r1, _080E6F4C @ =0x02001000
+ 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 0x02001000
+_080E6F4C: .4byte gSharedMem + 0x1000
_080E6F50:
bl sub_80E7E50
bl sub_80E95A4
@@ -1851,7 +1850,7 @@ _080E6F64: .4byte sub_80E6AC4
thumb_func_start sub_80E6F68
sub_80E6F68: @ 80E6F68
push {r4,lr}
- ldr r4, _080E6F78 @ =0x02001000
+ ldr r4, _080E6F78 @ =gSharedMem + 0x1000
ldrh r0, [r4, 0x24]
cmp r0, 0
beq _080E6F7C
@@ -1859,7 +1858,7 @@ sub_80E6F68: @ 80E6F68
beq _080E6F9C
b _080E6FBC
.align 2, 0
-_080E6F78: .4byte 0x02001000
+_080E6F78: .4byte gSharedMem + 0x1000
_080E6F7C:
movs r0, 0x1
bl sub_80E8398
@@ -1897,7 +1896,7 @@ sub_80E6FC8: @ 80E6FC8
push {r4,lr}
bl sub_80E77C8
adds r1, r0, 0
- ldr r4, _080E7000 @ =0x02001000
+ ldr r4, _080E7000 @ =gSharedMem + 0x1000
adds r0, r4, 0
adds r0, 0x96
strb r1, [r0]
@@ -1920,7 +1919,7 @@ sub_80E6FC8: @ 80E6FC8
bl sub_80E682C
b _080E710A
.align 2, 0
-_080E7000: .4byte 0x02001000
+_080E7000: .4byte gSharedMem + 0x1000
_080E7004: .4byte sub_80E6FC8
_080E7008: .4byte sub_80E7458
_080E700C:
@@ -2055,7 +2054,7 @@ _080E7110: .4byte sub_80E718C
thumb_func_start sub_80E7114
sub_80E7114: @ 80E7114
push {lr}
- ldr r0, _080E712C @ =0x02001000
+ ldr r0, _080E712C @ =gSharedMem + 0x1000
ldrh r1, [r0, 0x24]
adds r2, r0, 0
cmp r1, 0x4
@@ -2066,7 +2065,7 @@ sub_80E7114: @ 80E7114
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E712C: .4byte 0x02001000
+_080E712C: .4byte gSharedMem + 0x1000
_080E7130: .4byte _080E7134
.align 2, 0
_080E7134:
@@ -2093,13 +2092,13 @@ _080E7164:
cmp r0, 0
beq _080E7182
_080E716E:
- ldr r1, _080E7178 @ =0x02001000
+ ldr r1, _080E7178 @ =gSharedMem + 0x1000
ldrh r0, [r1, 0x24]
adds r0, 0x1
strh r0, [r1, 0x24]
b _080E7182
.align 2, 0
-_080E7178: .4byte 0x02001000
+_080E7178: .4byte gSharedMem + 0x1000
_080E717C:
ldr r0, _080E7188 @ =sub_80E6AC4
bl sub_80E682C
@@ -2113,7 +2112,7 @@ _080E7188: .4byte sub_80E6AC4
thumb_func_start sub_80E718C
sub_80E718C: @ 80E718C
push {r4,lr}
- ldr r0, _080E71A4 @ =0x02001000
+ ldr r0, _080E71A4 @ =gSharedMem + 0x1000
ldrh r1, [r0, 0x24]
adds r4, r0, 0
cmp r1, 0x1
@@ -2124,7 +2123,7 @@ sub_80E718C: @ 80E718C
beq _080E71AE
b _080E71EC
.align 2, 0
-_080E71A4: .4byte 0x02001000
+_080E71A4: .4byte gSharedMem + 0x1000
_080E71A8:
cmp r1, 0x8
beq _080E71F4
@@ -2181,7 +2180,7 @@ _080E7214: .4byte sub_80E6FC8
thumb_func_start sub_80E7218
sub_80E7218: @ 80E7218
push {r4,lr}
- ldr r4, _080E7230 @ =0x02001000
+ ldr r4, _080E7230 @ =gSharedMem + 0x1000
ldrh r0, [r4, 0x24]
adds r1, r4, 0
cmp r0, 0x9
@@ -2192,7 +2191,7 @@ sub_80E7218: @ 80E7218
beq _080E7244
b _080E723C
.align 2, 0
-_080E7230: .4byte 0x02001000
+_080E7230: .4byte gSharedMem + 0x1000
_080E7234:
cmp r0, 0xA
beq _080E7276
@@ -2243,7 +2242,7 @@ sub_80E7294: @ 80E7294
push {r4,lr}
bl sub_80E7B40
adds r1, r0, 0
- ldr r4, _080E72CC @ =0x02001000
+ ldr r4, _080E72CC @ =gSharedMem + 0x1000
ldr r2, _080E72D0 @ =0x000001b9
adds r0, r4, r2
strb r1, [r0]
@@ -2265,7 +2264,7 @@ sub_80E7294: @ 80E7294
bl sub_80E682C
b _080E731A
.align 2, 0
-_080E72CC: .4byte 0x02001000
+_080E72CC: .4byte gSharedMem + 0x1000
_080E72D0: .4byte 0x000001b9
_080E72D4: .4byte sub_80E7294
_080E72D8: .4byte sub_80E7458
@@ -2308,7 +2307,7 @@ _080E7320: .4byte sub_80E73D0
thumb_func_start sub_80E7324
sub_80E7324: @ 80E7324
push {lr}
- ldr r0, _080E733C @ =0x02001000
+ ldr r0, _080E733C @ =gSharedMem + 0x1000
ldrh r1, [r0, 0x24]
adds r2, r0, 0
cmp r1, 0x4
@@ -2319,7 +2318,7 @@ sub_80E7324: @ 80E7324
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E733C: .4byte 0x02001000
+_080E733C: .4byte gSharedMem + 0x1000
_080E7340: .4byte _080E7344
.align 2, 0
_080E7344:
@@ -2357,13 +2356,13 @@ _080E738A:
cmp r0, 0
beq _080E73C6
_080E7394:
- ldr r1, _080E73A0 @ =0x02001000
+ ldr r1, _080E73A0 @ =gSharedMem + 0x1000
ldrh r0, [r1, 0x24]
adds r0, 0x1
strh r0, [r1, 0x24]
b _080E73C6
.align 2, 0
-_080E73A0: .4byte 0x02001000
+_080E73A0: .4byte gSharedMem + 0x1000
_080E73A4:
ldrb r0, [r2, 0x8]
cmp r0, 0x6
@@ -2390,7 +2389,7 @@ _080E73CC: .4byte sub_80E6AC4
thumb_func_start sub_80E73D0
sub_80E73D0: @ 80E73D0
push {lr}
- ldr r0, _080E73E4 @ =0x02001000
+ ldr r0, _080E73E4 @ =gSharedMem + 0x1000
ldrh r0, [r0, 0x24]
cmp r0, 0x4
bhi _080E744E
@@ -2400,7 +2399,7 @@ sub_80E73D0: @ 80E73D0
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E73E4: .4byte 0x02001000
+_080E73E4: .4byte gSharedMem + 0x1000
_080E73E8: .4byte _080E73EC
.align 2, 0
_080E73EC:
@@ -2432,13 +2431,13 @@ _080E742C:
movs r0, 0
bl sub_80E8958
_080E7436:
- ldr r1, _080E7440 @ =0x02001000
+ ldr r1, _080E7440 @ =gSharedMem + 0x1000
ldrh r0, [r1, 0x24]
adds r0, 0x1
strh r0, [r1, 0x24]
b _080E744E
.align 2, 0
-_080E7440: .4byte 0x02001000
+_080E7440: .4byte gSharedMem + 0x1000
_080E7444:
bl sub_80E9974
ldr r0, _080E7454 @ =sub_80E6FC8
@@ -2453,7 +2452,7 @@ _080E7454: .4byte sub_80E6FC8
thumb_func_start sub_80E7458
sub_80E7458: @ 80E7458
push {r4,r5,lr}
- ldr r4, _080E7468 @ =0x02001000
+ ldr r4, _080E7468 @ =gSharedMem + 0x1000
ldrh r5, [r4, 0x24]
cmp r5, 0
beq _080E746C
@@ -2461,7 +2460,7 @@ sub_80E7458: @ 80E7458
beq _080E74A4
b _080E7518
.align 2, 0
-_080E7468: .4byte 0x02001000
+_080E7468: .4byte gSharedMem + 0x1000
_080E746C:
movs r1, 0xE2
lsls r1, 1
@@ -2477,7 +2476,7 @@ _080E7480: .4byte sub_80E6FC8
_080E7484:
bl sub_80E9D00
_080E7488:
- ldr r4, _080E74A0 @ =0x02001000
+ ldr r4, _080E74A0 @ =gSharedMem + 0x1000
movs r2, 0xDF
lsls r2, 1
adds r0, r4, r2
@@ -2488,7 +2487,7 @@ _080E7488:
strh r0, [r4, 0x24]
b _080E7518
.align 2, 0
-_080E74A0: .4byte 0x02001000
+_080E74A0: .4byte gSharedMem + 0x1000
_080E74A4:
bl sub_80E9E54
lsls r0, 24
@@ -2532,7 +2531,7 @@ _080E74E4:
adds r0, r4, r1
_080E74FE:
strb r5, [r0]
- ldr r1, _080E7528 @ =0x02001000
+ ldr r1, _080E7528 @ =gSharedMem + 0x1000
movs r0, 0xDF
lsls r0, 1
adds r2, r1, r0
@@ -2550,14 +2549,14 @@ _080E7518:
.align 2, 0
_080E7520: .4byte 0x00009a29
_080E7524: .4byte 0x000001b9
-_080E7528: .4byte 0x02001000
+_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 @ =0x02001000
+ ldr r4, _080E7540 @ =gSharedMem + 0x1000
ldrh r1, [r4, 0x24]
cmp r1, 0
beq _080E7544
@@ -2565,7 +2564,7 @@ sub_80E752C: @ 80E752C
beq _080E755C
b _080E756C
.align 2, 0
-_080E7540: .4byte 0x02001000
+_080E7540: .4byte gSharedMem + 0x1000
_080E7544:
movs r0, 0x1
negs r0, r0
@@ -2595,7 +2594,7 @@ _080E756C:
thumb_func_start sub_80E7574
sub_80E7574: @ 80E7574
push {r4,r5,lr}
- ldr r4, _080E75B8 @ =0x02001000
+ ldr r4, _080E75B8 @ =gSharedMem + 0x1000
ldrb r5, [r4, 0x8]
cmp r5, 0x1
bne _080E75BC
@@ -2628,9 +2627,9 @@ sub_80E7574: @ 80E7574
adds r1, r4, 0
b _080E75C6
.align 2, 0
-_080E75B8: .4byte 0x02001000
+_080E75B8: .4byte gSharedMem + 0x1000
_080E75BC:
- ldr r1, _080E75D4 @ =0x02001000
+ ldr r1, _080E75D4 @ =gSharedMem + 0x1000
adds r2, r1, 0
adds r2, 0x7D
movs r0, 0
@@ -2643,7 +2642,7 @@ _080E75C6:
pop {r0}
bx r0
.align 2, 0
-_080E75D4: .4byte 0x02001000
+_080E75D4: .4byte gSharedMem + 0x1000
thumb_func_end sub_80E7574
thumb_func_start sub_80E75D8
@@ -2656,7 +2655,7 @@ sub_80E75D8: @ 80E75D8
ands r0, r1
cmp r0, 0
beq _080E7604
- ldr r1, _080E7600 @ =0x02001000
+ ldr r1, _080E7600 @ =gSharedMem + 0x1000
adds r0, r1, 0
adds r0, 0x84
ldrb r0, [r0]
@@ -2668,14 +2667,14 @@ sub_80E75D8: @ 80E75D8
b _080E768E
.align 2, 0
_080E75FC: .4byte gMain
-_080E7600: .4byte 0x02001000
+_080E7600: .4byte gSharedMem + 0x1000
_080E7604:
ldrh r1, [r2, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _080E7630
- ldr r2, _080E762C @ =0x02001000
+ ldr r2, _080E762C @ =gSharedMem + 0x1000
adds r1, r2, 0
adds r1, 0x86
ldrb r0, [r1]
@@ -2690,13 +2689,13 @@ _080E7604:
strb r0, [r1]
b _080E765C
.align 2, 0
-_080E762C: .4byte 0x02001000
+_080E762C: .4byte gSharedMem + 0x1000
_080E7630:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _080E7658
- ldr r0, _080E7684 @ =0x02001000
+ ldr r0, _080E7684 @ =gSharedMem + 0x1000
adds r3, r0, 0
adds r3, 0x86
ldrb r1, [r3]
@@ -2717,7 +2716,7 @@ _080E7658:
cmp r4, 0
beq _080E76EA
_080E765C:
- ldr r2, _080E7684 @ =0x02001000
+ ldr r2, _080E7684 @ =gSharedMem + 0x1000
ldrb r3, [r2, 0x9]
cmp r3, 0x2
bne _080E7692
@@ -2738,7 +2737,7 @@ _080E765C:
strb r3, [r0]
b _080E77BC
.align 2, 0
-_080E7684: .4byte 0x02001000
+_080E7684: .4byte gSharedMem + 0x1000
_080E7688:
adds r1, r2, 0
adds r1, 0x85
@@ -2800,7 +2799,7 @@ _080E76EA:
lsrs r4, r0, 16
cmp r4, 0
beq _080E7744
- ldr r2, _080E7728 @ =0x02001000
+ ldr r2, _080E7728 @ =gSharedMem + 0x1000
adds r3, r2, 0
adds r3, 0x85
ldrb r0, [r3]
@@ -2825,7 +2824,7 @@ _080E76EA:
movs r0, 0x2
b _080E77BA
.align 2, 0
-_080E7728: .4byte 0x02001000
+_080E7728: .4byte gSharedMem + 0x1000
_080E772C:
adds r0, r2, 0
adds r0, 0x83
@@ -2844,7 +2843,7 @@ _080E7744:
ands r0, r2
cmp r0, 0
beq _080E77C0
- ldr r2, _080E777C @ =0x02001000
+ ldr r2, _080E777C @ =gSharedMem + 0x1000
adds r5, r2, 0
adds r5, 0x86
adds r0, r2, 0
@@ -2868,7 +2867,7 @@ _080E7744:
strb r4, [r1]
b _080E77BC
.align 2, 0
-_080E777C: .4byte 0x02001000
+_080E777C: .4byte gSharedMem + 0x1000
_080E7780:
adds r3, r2, 0
adds r3, 0x85
@@ -2921,7 +2920,7 @@ sub_80E77C8: @ 80E77C8
mov r6, r8
push {r6,r7}
movs r7, 0
- ldr r1, _080E780C @ =0x02001000
+ ldr r1, _080E780C @ =gSharedMem + 0x1000
ldr r2, _080E7810 @ =0x000001b7
adds r0, r1, r2
ldrb r0, [r0]
@@ -2952,7 +2951,7 @@ _080E7806:
strb r0, [r1]
b _080E7948
.align 2, 0
-_080E780C: .4byte 0x02001000
+_080E780C: .4byte gSharedMem + 0x1000
_080E7810: .4byte 0x000001b7
_080E7814: .4byte gMain
_080E7818:
@@ -3301,7 +3300,7 @@ _080E7A8A:
thumb_func_start sub_80E7A98
sub_80E7A98: @ 80E7A98
push {lr}
- ldr r1, _080E7ACC @ =0x02001000
+ ldr r1, _080E7ACC @ =gSharedMem + 0x1000
ldr r0, _080E7AD0 @ =0x000001a9
adds r3, r1, r0
movs r2, 0xD4
@@ -3327,14 +3326,14 @@ _080E7AC6:
pop {r0}
bx r0
.align 2, 0
-_080E7ACC: .4byte 0x02001000
+_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 @ =0x02001000
+ ldr r3, _080E7B08 @ =gSharedMem + 0x1000
adds r0, r3, 0
adds r0, 0x26
ldrb r0, [r0]
@@ -3359,7 +3358,7 @@ sub_80E7AD4: @ 80E7AD4
adds r2, 0x10
b _080E7B34
.align 2, 0
-_080E7B08: .4byte 0x02001000
+_080E7B08: .4byte gSharedMem + 0x1000
_080E7B0C: .4byte 0x000001a9
_080E7B10:
ldr r1, _080E7B3C @ =0x000001a9
@@ -3393,7 +3392,7 @@ _080E7B3C: .4byte 0x000001a9
sub_80E7B40: @ 80E7B40
push {r4-r7,lr}
movs r5, 0
- ldr r2, _080E7B8C @ =0x02001000
+ ldr r2, _080E7B8C @ =gSharedMem + 0x1000
movs r0, 0xE0
lsls r0, 1
adds r6, r2, r0
@@ -3430,7 +3429,7 @@ _080E7B6E:
strb r0, [r6]
b _080E7D1A
.align 2, 0
-_080E7B8C: .4byte 0x02001000
+_080E7B8C: .4byte gSharedMem + 0x1000
_080E7B90: .4byte gMain
_080E7B94: .4byte 0x000099a4
_080E7B98: .4byte 0x00009a29
@@ -3646,7 +3645,7 @@ _080E7D2C: .4byte 0x000099a4
thumb_func_start sub_80E7D30
sub_80E7D30: @ 80E7D30
push {r4,lr}
- ldr r0, _080E7D60 @ =0x02001000
+ ldr r0, _080E7D60 @ =gSharedMem + 0x1000
ldr r1, _080E7D64 @ =0x000099a5
adds r4, r0, r1
ldr r2, _080E7D68 @ =0x000099a4
@@ -3671,7 +3670,7 @@ _080E7D5A:
pop {r0}
bx r0
.align 2, 0
-_080E7D60: .4byte 0x02001000
+_080E7D60: .4byte gSharedMem + 0x1000
_080E7D64: .4byte 0x000099a5
_080E7D68: .4byte 0x000099a4
thumb_func_end sub_80E7D30
@@ -3680,7 +3679,7 @@ _080E7D68: .4byte 0x000099a4
sub_80E7D6C: @ 80E7D6C
push {r4,r5,lr}
movs r4, 0
- ldr r0, _080E7D94 @ =0x02001000
+ ldr r0, _080E7D94 @ =gSharedMem + 0x1000
ldrb r1, [r0, 0xA]
cmp r4, r1
bcs _080E7D8E
@@ -3700,7 +3699,7 @@ _080E7D8E:
pop {r0}
bx r0
.align 2, 0
-_080E7D94: .4byte 0x02001000
+_080E7D94: .4byte gSharedMem + 0x1000
_080E7D98: .4byte 0x0000ffff
thumb_func_end sub_80E7D6C
@@ -3708,7 +3707,7 @@ _080E7D98: .4byte 0x0000ffff
sub_80E7D9C: @ 80E7D9C
push {r4,r5,lr}
movs r2, 0
- ldr r0, _080E7DCC @ =0x02001000
+ ldr r0, _080E7DCC @ =gSharedMem + 0x1000
ldrb r1, [r0, 0xA]
cmp r2, r1
bcs _080E7DC6
@@ -3733,13 +3732,13 @@ _080E7DC6:
pop {r0}
bx r0
.align 2, 0
-_080E7DCC: .4byte 0x02001000
+_080E7DCC: .4byte gSharedMem + 0x1000
thumb_func_end sub_80E7D9C
thumb_func_start sub_80E7DD0
sub_80E7DD0: @ 80E7DD0
push {r4,lr}
- ldr r2, _080E7E28 @ =0x02001000
+ ldr r2, _080E7E28 @ =gSharedMem + 0x1000
ldr r1, _080E7E2C @ =0x000099a5
adds r0, r2, r1
movs r1, 0
@@ -3781,11 +3780,11 @@ sub_80E7DD0: @ 80E7DD0
movs r0, 0
b _080E7E46
.align 2, 0
-_080E7E28: .4byte 0x02001000
+_080E7E28: .4byte gSharedMem + 0x1000
_080E7E2C: .4byte 0x000099a5
_080E7E30: .4byte 0x000099a4
_080E7E34:
- ldr r0, _080E7E4C @ =0x02001000
+ ldr r0, _080E7E4C @ =gSharedMem + 0x1000
adds r0, 0x27
ldrb r0, [r0]
adds r1, r4, 0
@@ -3797,7 +3796,7 @@ _080E7E46:
pop {r1}
bx r1
.align 2, 0
-_080E7E4C: .4byte 0x02001000
+_080E7E4C: .4byte gSharedMem + 0x1000
thumb_func_end sub_80E7DD0
thumb_func_start sub_80E7E50
@@ -3810,7 +3809,7 @@ sub_80E7E50: @ 80E7E50
sub sp, 0x8
movs r5, 0
movs r2, 0
- ldr r1, _080E7EF0 @ =0x02001000
+ ldr r1, _080E7EF0 @ =gSharedMem + 0x1000
adds r3, r1, 0
adds r3, 0x84
movs r0, 0
@@ -3827,7 +3826,7 @@ _080E7E74:
movs r1, 0
strb r1, [r0]
movs r3, 0
- ldr r6, _080E7EF4 @ =0x02001083
+ ldr r6, _080E7EF4 @ =gSharedMem + 0x1083
movs r0, 0
ldrsb r0, [r6, r0]
adds r1, r2, 0x1
@@ -3838,9 +3837,9 @@ _080E7E74:
mov r12, r6
movs r0, 0
mov r10, r0
- ldr r1, _080E7EF4 @ =0x02001083
+ ldr r1, _080E7EF4 @ =gSharedMem + 0x1083
mov r9, r1
- ldr r7, _080E7EF8 @ =0x0200100c
+ ldr r7, _080E7EF8 @ =gSharedMem + 0x100C
lsls r4, r2, 1
_080E7E9E:
lsls r1, r5, 1
@@ -3871,7 +3870,7 @@ _080E7ECE:
ldr r1, [sp, 0x4]
lsls r0, r1, 16
lsrs r2, r0, 16
- ldr r6, _080E7EFC @ =0x02001084
+ ldr r6, _080E7EFC @ =gSharedMem + 0x1084
movs r0, 0
ldrsb r0, [r6, r0]
cmp r2, r0
@@ -3886,10 +3885,10 @@ _080E7EDE:
pop {r0}
bx r0
.align 2, 0
-_080E7EF0: .4byte 0x02001000
-_080E7EF4: .4byte 0x02001083
-_080E7EF8: .4byte 0x0200100c
-_080E7EFC: .4byte 0x02001084
+_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
@@ -3903,7 +3902,7 @@ sub_80E7F00: @ 80E7F00
lsls r1, 16
lsrs r1, 16
mov r9, r1
- ldr r7, _080E7F68 @ =0x02001000
+ ldr r7, _080E7F68 @ =gSharedMem + 0x1000
adds r0, r7, 0
adds r0, 0x83
movs r4, 0
@@ -3943,7 +3942,7 @@ sub_80E7F00: @ 80E7F00
subs r0, 0x1
b _080E7F7A
.align 2, 0
-_080E7F68: .4byte 0x02001000
+_080E7F68: .4byte gSharedMem + 0x1000
_080E7F6C:
cmp r3, 0x7
bne _080E7F7C
@@ -3956,7 +3955,7 @@ _080E7F7A:
strb r0, [r1]
_080E7F7C:
movs r3, 0
- ldr r2, _080E7FA4 @ =0x02001000
+ ldr r2, _080E7FA4 @ =gSharedMem + 0x1000
lsls r0, r5, 1
add r0, r8
adds r1, r2, 0
@@ -3975,7 +3974,7 @@ _080E7F7C:
pop {r0}
bx r0
.align 2, 0
-_080E7FA4: .4byte 0x02001000
+_080E7FA4: .4byte gSharedMem + 0x1000
thumb_func_end sub_80E7F00
thumb_func_start sub_80E7FA8
@@ -3987,7 +3986,7 @@ sub_80E7FA8: @ 80E7FA8
movs r0, 0
mov r8, r0
movs r5, 0
- ldr r0, _080E8040 @ =0x02001000
+ ldr r0, _080E8040 @ =gSharedMem + 0x1000
ldrb r1, [r0, 0xA]
cmp r8, r1
bcs _080E802E
@@ -4043,7 +4042,7 @@ _080E8018:
lsls r0, 16
lsrs r0, 16
mov r8, r0
- ldr r3, _080E8040 @ =0x02001000
+ ldr r3, _080E8040 @ =gSharedMem + 0x1000
_080E8024:
lsls r0, r4, 16
lsrs r5, r0, 16
@@ -4061,7 +4060,7 @@ _080E802E:
pop {r1}
bx r1
.align 2, 0
-_080E8040: .4byte 0x02001000
+_080E8040: .4byte gSharedMem + 0x1000
_080E8044: .4byte 0x00009e14
_080E8048: .4byte 0x00009e41
_080E804C: .4byte 0xffff61ec
@@ -4072,7 +4071,7 @@ _080E8050: .4byte 0xffff61f8
sub_80E8054: @ 80E8054
push {r4,lr}
movs r1, 0
- ldr r2, _080E8078 @ =0x02001000
+ ldr r2, _080E8078 @ =gSharedMem + 0x1000
ldrb r0, [r2, 0xA]
cmp r1, r0
bcs _080E808A
@@ -4089,7 +4088,7 @@ _080E8068:
movs r0, 0
b _080E808C
.align 2, 0
-_080E8078: .4byte 0x02001000
+_080E8078: .4byte gSharedMem + 0x1000
_080E807C: .4byte 0x0000ffff
_080E8080:
adds r0, r1, 0x1
@@ -4109,7 +4108,7 @@ _080E808C:
sub_80E8094: @ 80E8094
push {r4-r7,lr}
movs r5, 0
- ldr r6, _080E80C4 @ =0x0200ae14
+ ldr r6, _080E80C4 @ =gSharedMem + 0xAE14
adds r7, r6, 0
adds r7, 0x2D
_080E809E:
@@ -4131,7 +4130,7 @@ _080E809E:
adds r4, r7, 0
b _080E80D8
.align 2, 0
-_080E80C4: .4byte 0x0200ae14
+_080E80C4: .4byte gSharedMem + 0xAE14
_080E80C8: .4byte 0xffff61f8
_080E80CC: .4byte gMysteryEventPhrase
_080E80D0:
@@ -4179,7 +4178,7 @@ sub_80E810C: @ 80E810C
mov r5, r8
push {r5-r7}
movs r5, 0
- ldr r6, _080E8198 @ =0x0200ae6e
+ ldr r6, _080E8198 @ =gSharedMem + 0xAE6E
ldr r0, _080E819C @ =0xffff6192
adds r0, r6
mov r9, r0
@@ -4243,7 +4242,7 @@ _080E818A:
lsrs r0, 24
b _080E81B2
.align 2, 0
-_080E8198: .4byte 0x0200ae6e
+_080E8198: .4byte gSharedMem + 0xAE6E
_080E819C: .4byte 0xffff6192
_080E81A0: .4byte gBerryMasterWifePhrases
_080E81A4: .4byte gBerryMasterWifePhrases + 0x2
@@ -4267,7 +4266,7 @@ _080E81B2:
sub_80E81C0: @ 80E81C0
push {r4,lr}
ldr r0, _080E81EC @ =gStringVar2
- ldr r4, _080E81F0 @ =0x02001000
+ ldr r4, _080E81F0 @ =gSharedMem + 0x1000
ldr r2, _080E81F4 @ =0x00009c7c
adds r1, r4, r2
ldrh r1, [r1]
@@ -4286,7 +4285,7 @@ sub_80E81C0: @ 80E81C0
bx r0
.align 2, 0
_080E81EC: .4byte gStringVar2
-_080E81F0: .4byte 0x02001000
+_080E81F0: .4byte gSharedMem + 0x1000
_080E81F4: .4byte 0x00009c7c
_080E81F8: .4byte 0x00009c7e
thumb_func_end sub_80E81C0
diff --git a/asm/field_weather.s b/asm/field_weather.s
deleted file mode 100644
index 92d2ffab2..000000000
--- a/asm/field_weather.s
+++ /dev/null
@@ -1,7579 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_807CEBC
-sub_807CEBC: @ 807CEBC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- asrs r0, r2, 24
- cmp r0, 0
- bgt _0807CEDE
- b _0807D048
-_0807CEDE:
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r5, r3, 4
- adds r0, r1, r3
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r4, r9
- bcc _0807CEF6
- b _0807D1A2
-_0807CEF6:
- ldr r1, [sp]
- lsls r0, r1, 24
- asrs r0, 19
- str r0, [sp, 0x4]
-_0807CEFE:
- ldr r0, _0807CF30 @ =gUnknown_030006DC
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807CF3C
- lsls r1, r5, 1
- ldr r0, _0807CF34 @ =gPlttBufferUnfaded
- adds r0, r1, r0
- ldr r2, _0807CF38 @ =gPlttBufferFaded
- adds r1, r2
- movs r2, 0x8
- bl CpuFastSet
- adds r0, r5, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r5, r0, 16
- mov r2, r9
- lsls r2, 16
- mov r8, r2
- adds r4, 0x1
- mov r12, r4
- b _0807D032
- .align 2, 0
-_0807CF30: .4byte gUnknown_030006DC
-_0807CF34: .4byte gPlttBufferUnfaded
-_0807CF38: .4byte gPlttBufferFaded
-_0807CF3C:
- cmp r0, 0x2
- beq _0807CF50
- adds r1, r4, 0
- subs r1, 0x10
- ldr r2, _0807CF54 @ =gUnknown_0202F7E8
- ldr r3, _0807CF58 @ =0x000006d5
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r1, r0
- bne _0807CF60
-_0807CF50:
- ldr r0, _0807CF5C @ =gUnknown_0202FC48
- b _0807CF66
- .align 2, 0
-_0807CF54: .4byte gUnknown_0202F7E8
-_0807CF58: .4byte 0x000006d5
-_0807CF5C: .4byte gUnknown_0202FC48
-_0807CF60:
- movs r3, 0x80
- lsls r3, 2
- adds r0, r2, r3
-_0807CF66:
- ldr r1, [sp, 0x4]
- adds r6, r1, r0
- cmp r4, 0x10
- beq _0807CF72
- cmp r4, 0x1B
- bls _0807CFE2
-_0807CF72:
- movs r7, 0
- mov r2, r9
- lsls r2, 16
- mov r8, r2
- adds r4, 0x1
- mov r12, r4
- ldr r3, _0807CF9C @ =gPlttBufferFaded
- mov r10, r3
-_0807CF82:
- adds r2, r5, 0
- lsls r0, r5, 1
- ldr r4, _0807CFA0 @ =gPlttBufferUnfaded
- adds r1, r0, r4
- ldrh r0, [r1]
- ldr r3, _0807CFA4 @ =0x00002d9f
- cmp r0, r3
- bne _0807CFA8
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- b _0807CFD6
- .align 2, 0
-_0807CF9C: .4byte gPlttBufferFaded
-_0807CFA0: .4byte gPlttBufferUnfaded
-_0807CFA4: .4byte 0x00002d9f
-_0807CFA8:
- ldr r1, [r1]
- lsls r0, r1, 27
- lsrs r0, 27
- adds r0, r6, r0
- ldrb r4, [r0]
- lsls r0, r1, 22
- lsrs r0, 27
- adds r0, r6, r0
- ldrb r3, [r0]
- lsls r1, 17
- lsrs r1, 27
- adds r1, r6, r1
- ldrb r1, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r2, 1
- add r2, r10
- lsls r0, r1, 10
- lsls r1, r3, 5
- orrs r0, r1
- orrs r0, r4
- strh r0, [r2]
-_0807CFD6:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0xF
- bls _0807CF82
- b _0807D032
-_0807CFE2:
- movs r7, 0
- mov r0, r9
- lsls r0, 16
- mov r8, r0
- adds r4, 0x1
- mov r12, r4
- ldr r1, _0807D040 @ =gPlttBufferFaded
- mov r10, r1
-_0807CFF2:
- adds r2, r5, 0
- lsls r0, r2, 1
- ldr r3, _0807D044 @ =gPlttBufferUnfaded
- adds r0, r3
- ldr r1, [r0]
- lsls r0, r1, 27
- lsrs r0, 27
- adds r0, r6, r0
- ldrb r4, [r0]
- lsls r0, r1, 22
- lsrs r0, 27
- adds r0, r6, r0
- ldrb r3, [r0]
- lsls r1, 17
- lsrs r1, 27
- adds r1, r6, r1
- ldrb r1, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r2, 1
- add r2, r10
- lsls r0, r1, 10
- lsls r1, r3, 5
- orrs r0, r1
- orrs r0, r4
- strh r0, [r2]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0xF
- bls _0807CFF2
-_0807D032:
- mov r4, r12
- lsls r0, r4, 16
- lsrs r4, r0, 16
- cmp r0, r8
- bcs _0807D03E
- b _0807CEFE
-_0807D03E:
- b _0807D1A2
- .align 2, 0
-_0807D040: .4byte gPlttBufferFaded
-_0807D044: .4byte gPlttBufferUnfaded
-_0807D048:
- cmp r0, 0
- blt _0807D04E
- b _0807D190
-_0807D04E:
- mvns r0, r0
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r5, r3, 4
- adds r0, r1, r3
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- adds r4, r3, 0
- cmp r4, r9
- bcc _0807D068
- b _0807D1A2
-_0807D068:
- ldr r0, _0807D098 @ =gUnknown_030006DC
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807D0A4
- lsls r1, r5, 1
- ldr r0, _0807D09C @ =gPlttBufferUnfaded
- adds r0, r1, r0
- ldr r2, _0807D0A0 @ =gPlttBufferFaded
- adds r1, r2
- movs r2, 0x8
- bl CpuFastSet
- adds r0, r5, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r5, r0, 16
- mov r0, r9
- lsls r0, 16
- mov r8, r0
- adds r4, 0x1
- mov r12, r4
- b _0807D174
- .align 2, 0
-_0807D098: .4byte gUnknown_030006DC
-_0807D09C: .4byte gPlttBufferUnfaded
-_0807D0A0: .4byte gPlttBufferFaded
-_0807D0A4:
- cmp r4, 0x10
- beq _0807D0AC
- cmp r4, 0x1B
- bls _0807D11C
-_0807D0AC:
- movs r7, 0
- mov r1, r9
- lsls r1, 16
- mov r8, r1
- adds r4, 0x1
- mov r12, r4
- ldr r2, _0807D10C @ =0x02000000
- mov r10, r2
- ldr r3, [sp]
- lsls r0, r3, 24
- asrs r6, r0, 11
-_0807D0C2:
- lsls r1, r5, 1
- ldr r4, _0807D110 @ =gPlttBufferUnfaded
- adds r0, r1, r4
- ldrh r0, [r0]
- lsls r4, r0, 16
- ldr r2, _0807D114 @ =0x00002d9f
- cmp r0, r2
- beq _0807D0FA
- ldr r3, _0807D118 @ =gPlttBufferFaded
- adds r3, r1, r3
- lsrs r0, r4, 17
- movs r1, 0xF
- ands r0, r1
- lsrs r1, r4, 18
- movs r2, 0xF0
- ands r1, r2
- orrs r0, r1
- lsrs r1, r4, 19
- movs r4, 0xF0
- lsls r4, 4
- adds r2, r4, 0
- ands r1, r2
- orrs r0, r1
- lsls r0, 1
- adds r0, r6
- add r0, r10
- ldrh r0, [r0]
- strh r0, [r3]
-_0807D0FA:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0xF
- bls _0807D0C2
- b _0807D174
- .align 2, 0
-_0807D10C: .4byte 0x02000000
-_0807D110: .4byte gPlttBufferUnfaded
-_0807D114: .4byte 0x00002d9f
-_0807D118: .4byte gPlttBufferFaded
-_0807D11C:
- movs r7, 0
- ldr r1, [sp]
- lsls r0, r1, 24
- mov r2, r9
- lsls r2, 16
- mov r8, r2
- adds r4, 0x1
- mov r12, r4
- ldr r3, _0807D184 @ =0x02000000
- mov r10, r3
- asrs r6, r0, 11
-_0807D132:
- lsls r0, r5, 1
- ldr r1, _0807D188 @ =gPlttBufferFaded
- adds r4, r0, r1
- ldr r2, _0807D18C @ =gPlttBufferUnfaded
- adds r0, r2
- ldrh r3, [r0]
- lsls r3, 16
- lsrs r0, r3, 17
- movs r1, 0xF
- ands r0, r1
- lsrs r1, r3, 18
- movs r2, 0xF0
- ands r1, r2
- orrs r0, r1
- lsrs r3, 19
- movs r2, 0xF0
- lsls r2, 4
- adds r1, r2, 0
- ands r3, r1
- orrs r0, r3
- lsls r0, 1
- adds r0, r6
- add r0, r10
- ldrh r0, [r0]
- strh r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0xF
- bls _0807D132
-_0807D174:
- mov r3, r12
- lsls r0, r3, 16
- lsrs r4, r0, 16
- cmp r0, r8
- bcs _0807D180
- b _0807D068
-_0807D180:
- b _0807D1A2
- .align 2, 0
-_0807D184: .4byte 0x02000000
-_0807D188: .4byte gPlttBufferFaded
-_0807D18C: .4byte gPlttBufferUnfaded
-_0807D190:
- lsls r1, r4, 5
- ldr r0, _0807D1B4 @ =gPlttBufferUnfaded
- adds r0, r1, r0
- ldr r2, _0807D1B8 @ =gPlttBufferFaded
- adds r1, r2
- mov r4, r9
- lsls r2, r4, 3
- bl CpuFastSet
-_0807D1A2:
- 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
-_0807D1B4: .4byte gPlttBufferUnfaded
-_0807D1B8: .4byte gPlttBufferFaded
- thumb_func_end sub_807CEBC
-
- thumb_func_start sub_807D1BC
-sub_807D1BC: @ 807D1BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r4, [sp, 0x34]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- mov r1, sp
- strh r4, [r1]
- ldr r1, [sp]
- lsls r3, r1, 27
- lsrs r3, 27
- str r3, [sp, 0x4]
- lsls r3, r1, 22
- lsrs r3, 27
- str r3, [sp, 0x8]
- lsls r1, 17
- lsrs r1, 27
- str r1, [sp, 0xC]
- lsls r6, r0, 4
- mov r3, r10
- adds r1, r3, r0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r2, r1
- lsrs r2, 24
- adds r4, r0, 0
- cmp r4, r10
- bcs _0807D2E8
- lsls r0, r2, 24
- asrs r0, 19
- str r0, [sp, 0x10]
-_0807D214:
- ldr r0, _0807D244 @ =gUnknown_030006DC
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807D248
- mov r0, sp
- ldrh r3, [r0]
- adds r0, r6, 0
- movs r1, 0x10
- mov r2, r8
- bl BlendPalette
- adds r0, r6, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- mov r3, r10
- lsls r3, 16
- mov r9, r3
- adds r4, 0x1
- mov r12, r4
- b _0807D2DE
- .align 2, 0
-_0807D244: .4byte gUnknown_030006DC
-_0807D248:
- cmp r0, 0x1
- bne _0807D258
- ldr r0, _0807D254 @ =gUnknown_0202F9E8
- ldr r1, [sp, 0x10]
- adds r5, r1, r0
- b _0807D25E
- .align 2, 0
-_0807D254: .4byte gUnknown_0202F9E8
-_0807D258:
- ldr r0, _0807D2F8 @ =gUnknown_0202FC48
- ldr r3, [sp, 0x10]
- adds r5, r3, r0
-_0807D25E:
- movs r7, 0
- mov r0, r10
- lsls r0, 16
- mov r9, r0
- adds r4, 0x1
- mov r12, r4
-_0807D26A:
- adds r4, r6, 0
- lsls r0, r4, 1
- ldr r1, _0807D2FC @ =gPlttBufferUnfaded
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r1, 27
- lsrs r0, 27
- adds r0, r5, r0
- ldrb r3, [r0]
- lsls r0, r1, 22
- lsrs r0, 27
- adds r0, r5, r0
- ldrb r2, [r0]
- lsls r1, 17
- lsrs r1, 27
- adds r1, r5, r1
- ldrb r1, [r1]
- ldr r6, [sp, 0x4]
- subs r0, r6, r3
- mov r6, r8
- muls r6, r0
- adds r0, r6, 0
- asrs r0, 4
- adds r3, r0
- lsls r3, 24
- lsrs r3, 24
- ldr r6, [sp, 0x8]
- subs r0, r6, r2
- mov r6, r8
- muls r6, r0
- adds r0, r6, 0
- asrs r0, 4
- adds r2, r0
- lsls r2, 24
- ldr r6, [sp, 0xC]
- subs r0, r6, r1
- mov r6, r8
- muls r6, r0
- adds r0, r6, 0
- asrs r0, 4
- adds r1, r0
- lsls r1, 24
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r4, 1
- ldr r0, _0807D300 @ =gPlttBufferFaded
- adds r4, r0
- lsrs r1, 14
- lsrs r2, 19
- orrs r1, r2
- orrs r1, r3
- strh r1, [r4]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0xF
- bls _0807D26A
-_0807D2DE:
- mov r1, r12
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r0, r9
- bcc _0807D214
-_0807D2E8:
- 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
-_0807D2F8: .4byte gUnknown_0202FC48
-_0807D2FC: .4byte gPlttBufferUnfaded
-_0807D300: .4byte gPlttBufferFaded
- thumb_func_end sub_807D1BC
-
- thumb_func_start sub_807D304
-sub_807D304: @ 807D304
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r1, 24
- lsrs r6, r1, 24
- mov r1, sp
- strh r2, [r1]
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- eors r0, r1
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldr r0, [sp]
- lsls r1, r0, 27
- lsrs r1, 27
- str r1, [sp, 0x8]
- lsls r1, r0, 22
- lsrs r1, 27
- str r1, [sp, 0xC]
- lsls r0, 17
- lsrs r0, 27
- mov r10, r0
- movs r5, 0
- movs r4, 0
-_0807D33C:
- ldr r0, _0807D364 @ =gUnknown_030006DC
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807D368
- mov r0, sp
- ldrh r3, [r0]
- adds r0, r5, 0
- movs r1, 0x10
- adds r2, r6, 0
- bl BlendPalette
- adds r0, r5, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x1
- mov r8, r4
- b _0807D3FE
- .align 2, 0
-_0807D364: .4byte gUnknown_030006DC
-_0807D368:
- movs r0, 0
- mov r12, r0
- ldr r1, [sp, 0x4]
- lsls r0, r1, 24
- adds r4, 0x1
- mov r8, r4
- movs r7, 0x1E
- asrs r0, 11
- mov r9, r0
-_0807D37A:
- adds r4, r5, 0
- lsls r0, r4, 1
- ldr r5, _0807D418 @ =gPlttBufferUnfaded
- adds r0, r5
- ldr r0, [r0]
- lsls r2, r0, 27
- lsrs r2, 27
- lsls r1, r0, 22
- lsrs r1, 27
- lsls r0, 17
- lsrs r0, 27
- ands r0, r7
- lsls r0, 7
- ands r1, r7
- lsls r1, 3
- orrs r0, r1
- ands r2, r7
- lsls r0, 1
- orrs r0, r2
- add r0, r9
- ldr r1, _0807D41C @ =0x02000000
- adds r0, r1
- ldr r1, [r0]
- lsls r3, r1, 27
- lsrs r3, 27
- lsls r2, r1, 22
- lsrs r2, 27
- lsls r1, 17
- lsrs r1, 27
- ldr r5, [sp, 0x8]
- subs r0, r5, r3
- muls r0, r6
- asrs r0, 4
- adds r3, r0
- lsls r3, 24
- lsrs r3, 24
- ldr r5, [sp, 0xC]
- subs r0, r5, r2
- muls r0, r6
- asrs r0, 4
- adds r2, r0
- lsls r2, 24
- mov r5, r10
- subs r0, r5, r1
- muls r0, r6
- asrs r0, 4
- adds r1, r0
- lsls r1, 24
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r4, 1
- ldr r0, _0807D420 @ =gPlttBufferFaded
- adds r4, r0
- lsrs r1, 14
- lsrs r2, 19
- orrs r1, r2
- orrs r1, r3
- strh r1, [r4]
- mov r0, r12
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- cmp r0, 0xF
- bls _0807D37A
-_0807D3FE:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r4, 0x1F
- bls _0807D33C
- 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
-_0807D418: .4byte gPlttBufferUnfaded
-_0807D41C: .4byte 0x02000000
-_0807D420: .4byte gPlttBufferFaded
- thumb_func_end sub_807D304
-
- thumb_func_start sub_807D424
-sub_807D424: @ 807D424
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r3, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r3, 16
- lsrs r3, 16
- mov r0, sp
- strh r3, [r0]
- movs r1, 0x80
- lsls r1, 1
- movs r0, 0
- adds r2, r7, 0
- bl BlendPalette
- ldr r0, [sp]
- lsls r1, r0, 27
- lsrs r1, 27
- str r1, [sp, 0x4]
- lsls r1, r0, 22
- lsrs r1, 27
- str r1, [sp, 0x8]
- lsls r0, 17
- lsrs r0, 27
- mov r10, r0
- movs r4, 0x10
-_0807D460:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_807D574
- lsls r0, 24
- cmp r0, 0
- beq _0807D510
- adds r0, r4, 0x1
- lsls r1, r0, 20
- lsrs r1, 16
- mov r12, r1
- lsls r1, r4, 20
- lsrs r6, r1, 16
- mov r9, r0
- cmp r6, r12
- bcs _0807D524
- movs r0, 0x1C
- mov r8, r0
-_0807D484:
- lsls r5, r6, 1
- ldr r0, _0807D508 @ =gPlttBufferUnfaded
- adds r0, r5, r0
- ldr r2, [r0]
- lsls r4, r2, 27
- lsrs r4, 27
- lsls r3, r2, 22
- lsrs r3, 27
- lsls r2, 17
- lsrs r2, 27
- mov r0, r8
- subs r1, r0, r4
- lsls r0, r1, 1
- adds r0, r1
- asrs r0, 2
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0x1F
- subs r1, r3
- lsls r0, r1, 1
- adds r0, r1
- asrs r0, 2
- adds r3, r0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- subs r1, r0, r2
- lsls r0, r1, 1
- adds r0, r1
- asrs r0, 2
- adds r2, r0
- lsls r2, 24
- lsrs r2, 24
- ldr r1, [sp, 0x4]
- subs r0, r1, r4
- muls r0, r7
- asrs r0, 4
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, [sp, 0x8]
- subs r0, r1, r3
- muls r0, r7
- asrs r0, 4
- adds r3, r0
- lsls r3, 24
- mov r1, r10
- subs r0, r1, r2
- muls r0, r7
- asrs r0, 4
- adds r2, r0
- lsls r2, 24
- ldr r0, _0807D50C @ =gPlttBufferFaded
- adds r5, r0
- lsrs r2, 14
- lsrs r3, 19
- orrs r2, r3
- orrs r2, r4
- strh r2, [r5]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r12
- bcc _0807D484
- b _0807D524
- .align 2, 0
-_0807D508: .4byte gPlttBufferUnfaded
-_0807D50C: .4byte gPlttBufferFaded
-_0807D510:
- lsls r0, r4, 20
- lsrs r0, 16
- mov r1, sp
- ldrh r3, [r1]
- movs r1, 0x10
- adds r2, r7, 0
- bl BlendPalette
- adds r4, 0x1
- mov r9, r4
-_0807D524:
- mov r1, r9
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r4, 0x1F
- bls _0807D460
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807D424
-
- thumb_func_start sub_807D540
-sub_807D540: @ 807D540
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, _0807D568 @ =gUnknown_0202F7E8
- ldr r0, _0807D56C @ =0x000006fa
- adds r1, r3, r0
- ldrb r0, [r1]
- cmp r0, 0x5
- bhi _0807D562
- ldr r4, _0807D570 @ =0x000006f4
- adds r0, r3, r4
- ldrb r3, [r1]
- adds r0, r3
- strb r2, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0807D562:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D568: .4byte gUnknown_0202F7E8
-_0807D56C: .4byte 0x000006fa
-_0807D570: .4byte 0x000006f4
- thumb_func_end sub_807D540
-
- thumb_func_start sub_807D574
-sub_807D574: @ 807D574
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r1, 0
- ldr r2, _0807D59C @ =gUnknown_0202F7E8
- ldr r4, _0807D5A0 @ =0x000006fa
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r1, r0
- bcs _0807D5B2
- ldr r5, _0807D5A4 @ =0x000006f4
- adds r4, r2, r5
- adds r2, r0, 0
-_0807D58E:
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r3
- bne _0807D5A8
- movs r0, 0x1
- b _0807D5B4
- .align 2, 0
-_0807D59C: .4byte gUnknown_0202F7E8
-_0807D5A0: .4byte 0x000006fa
-_0807D5A4: .4byte 0x000006f4
-_0807D5A8:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bcc _0807D58E
-_0807D5B2:
- movs r0, 0
-_0807D5B4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_807D574
-
- thumb_func_start sub_807D5BC
-sub_807D5BC: @ 807D5BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _0807D5E8 @ =gUnknown_0202F7E8
- ldr r1, _0807D5EC @ =0x000006c6
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0807D5E2
- lsls r2, r4, 24
- asrs r2, 24
- movs r0, 0
- movs r1, 0x20
- bl sub_807CEBC
- movs r1, 0xD8
- lsls r1, 3
- adds r0, r5, r1
- strb r4, [r0]
-_0807D5E2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D5E8: .4byte gUnknown_0202F7E8
-_0807D5EC: .4byte 0x000006c6
- thumb_func_end sub_807D5BC
-
- thumb_func_start sub_807D5F0
-sub_807D5F0: @ 807D5F0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r3, _0807D638 @ =gUnknown_0202F7E8
- ldr r0, _0807D63C @ =0x000006c6
- adds r2, r3, r0
- ldrb r0, [r2]
- cmp r0, 0x3
- bne _0807D630
- movs r1, 0
- strb r1, [r2]
- movs r2, 0xD8
- lsls r2, 3
- adds r0, r3, r2
- strb r4, [r0]
- adds r2, 0x1
- adds r0, r3, r2
- strb r5, [r0]
- adds r2, 0x2
- adds r0, r3, r2
- strb r1, [r0]
- ldr r1, _0807D640 @ =0x000006c2
- adds r0, r3, r1
- strb r6, [r0]
- lsls r0, r4, 24
- asrs r0, 24
- bl sub_807D5BC
-_0807D630:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D638: .4byte gUnknown_0202F7E8
-_0807D63C: .4byte 0x000006c6
-_0807D640: .4byte 0x000006c2
- thumb_func_end sub_807D5F0
-
- thumb_func_start fade_screen
-fade_screen: @ 807D644
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r0, 0x1
- beq _0807D67C
- cmp r0, 0x1
- bgt _0807D660
- cmp r0, 0
- beq _0807D66A
- b _0807D758
-_0807D660:
- cmp r2, 0x2
- beq _0807D670
- cmp r2, 0x3
- beq _0807D680
- b _0807D758
-_0807D66A:
- movs r4, 0
- movs r1, 0
- b _0807D684
-_0807D670:
- ldr r4, _0807D678 @ =0x0000ffff
- movs r1, 0
- b _0807D684
- .align 2, 0
-_0807D678: .4byte 0x0000ffff
-_0807D67C:
- movs r4, 0
- b _0807D682
-_0807D680:
- ldr r4, _0807D6A4 @ =0x0000ffff
-_0807D682:
- movs r1, 0x1
-_0807D684:
- ldr r0, _0807D6A8 @ =gUnknown_0202F7E8
- movs r2, 0xDA
- lsls r2, 3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- blt _0807D6AC
- cmp r0, 0x6
- ble _0807D69E
- cmp r0, 0xD
- bgt _0807D6AC
- cmp r0, 0xB
- blt _0807D6AC
-_0807D69E:
- movs r2, 0x1
- b _0807D6AE
- .align 2, 0
-_0807D6A4: .4byte 0x0000ffff
-_0807D6A8: .4byte gUnknown_0202F7E8
-_0807D6AC:
- movs r2, 0
-_0807D6AE:
- cmp r1, 0
- beq _0807D6F0
- cmp r2, 0
- beq _0807D6C2
- ldr r0, _0807D6E0 @ =gPlttBufferFaded
- ldr r1, _0807D6E4 @ =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 1
- bl CpuFastSet
-_0807D6C2:
- movs r0, 0x1
- negs r0, r0
- lsls r1, r5, 24
- asrs r1, 24
- str r4, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0807D6E8 @ =gUnknown_0202F7E8
- ldr r3, _0807D6EC @ =0x000006c6
- adds r0, r3
- movs r1, 0x2
- strb r1, [r0]
- b _0807D758
- .align 2, 0
-_0807D6E0: .4byte gPlttBufferFaded
-_0807D6E4: .4byte gPlttBufferUnfaded
-_0807D6E8: .4byte gUnknown_0202F7E8
-_0807D6EC: .4byte 0x000006c6
-_0807D6F0:
- ldr r1, _0807D708 @ =gUnknown_0202F7E8
- ldr r3, _0807D70C @ =0x000006c4
- adds r0, r1, r3
- strh r4, [r0]
- cmp r2, 0
- beq _0807D714
- ldr r0, _0807D710 @ =0x000006c7
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
- b _0807D726
- .align 2, 0
-_0807D708: .4byte gUnknown_0202F7E8
-_0807D70C: .4byte 0x000006c4
-_0807D710: .4byte 0x000006c7
-_0807D714:
- movs r0, 0x1
- negs r0, r0
- lsls r1, r5, 24
- asrs r1, 24
- str r4, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_0807D726:
- ldr r4, _0807D760 @ =gUnknown_0202F7E8
- ldr r1, _0807D764 @ =0x000006c6
- adds r0, r4, r1
- movs r1, 0
- movs r5, 0x1
- strb r5, [r0]
- ldr r2, _0807D768 @ =0x000006ca
- adds r0, r4, r2
- strb r5, [r0]
- ldr r3, _0807D76C @ =0x000006cb
- adds r0, r4, r3
- strb r1, [r0]
- movs r1, 0xE6
- lsls r1, 3
- adds r0, r4, r1
- ldrb r0, [r0]
- adds r2, 0x68
- adds r1, r4, r2
- ldrb r1, [r1]
- bl sub_807DB64
- movs r3, 0xD9
- lsls r3, 3
- adds r4, r3
- strb r5, [r4]
-_0807D758:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D760: .4byte gUnknown_0202F7E8
-_0807D764: .4byte 0x000006c6
-_0807D768: .4byte 0x000006ca
-_0807D76C: .4byte 0x000006cb
- thumb_func_end fade_screen
-
- thumb_func_start sub_807D770
-sub_807D770: @ 807D770
- ldr r0, _0807D784 @ =gUnknown_0202F7E8
- ldr r1, _0807D788 @ =0x000006c6
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- .align 2, 0
-_0807D784: .4byte gUnknown_0202F7E8
-_0807D788: .4byte 0x000006c6
- thumb_func_end sub_807D770
-
- thumb_func_start sub_807D78C
-sub_807D78C: @ 807D78C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0x80
- lsls r1, 13
- adds r0, r1
- lsrs r4, r0, 16
- ldr r5, _0807D7CC @ =gUnknown_0202F7E8
- ldr r2, _0807D7D0 @ =0x000006c6
- adds r0, r5, r2
- ldrb r0, [r0]
- adds r1, r5, 0
- cmp r0, 0x1
- beq _0807D7D4
- cmp r0, 0x2
- beq _0807D820
- adds r2, 0xA
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _0807D858
- lsls r0, r4, 24
- lsrs r0, 24
- subs r2, 0x10
- adds r1, r2
- movs r2, 0
- ldrsb r2, [r1, r2]
- movs r1, 0x1
- bl sub_807CEBC
- b _0807D868
- .align 2, 0
-_0807D7CC: .4byte gUnknown_0202F7E8
-_0807D7D0: .4byte 0x000006c6
-_0807D7D4:
- ldr r2, _0807D814 @ =0x000006ca
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807D868
- adds r2, 0x6
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _0807D7F0
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_807D540
-_0807D7F0:
- lsls r0, r4, 20
- lsrs r4, r0, 16
- movs r2, 0
- ldr r6, _0807D818 @ =gPlttBufferFaded
- ldr r0, _0807D81C @ =0x000006c4
- adds r3, r5, r0
-_0807D7FC:
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r6
- ldrh r1, [r3]
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _0807D7FC
- b _0807D868
- .align 2, 0
-_0807D814: .4byte 0x000006ca
-_0807D818: .4byte gPlttBufferFaded
-_0807D81C: .4byte 0x000006c4
-_0807D820:
- lsls r0, r4, 20
- lsrs r4, r0, 16
- lsls r1, r4, 1
- ldr r0, _0807D84C @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _0807D850 @ =gPlttBufferUnfaded
- adds r1, r2
- movs r2, 0x8
- bl CpuFastSet
- ldr r0, _0807D854 @ =gPaletteFade
- ldrh r2, [r0, 0x4]
- lsls r2, 21
- lsrs r2, 27
- ldrh r3, [r0, 0x6]
- lsls r3, 17
- lsrs r3, 17
- adds r0, r4, 0
- movs r1, 0x10
- bl BlendPalette
- b _0807D868
- .align 2, 0
-_0807D84C: .4byte gPlttBufferFaded
-_0807D850: .4byte gPlttBufferUnfaded
-_0807D854: .4byte gPaletteFade
-_0807D858:
- lsls r0, r4, 20
- lsrs r4, r0, 16
- ldr r3, _0807D870 @ =0x000073fc
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0xC
- bl BlendPalette
-_0807D868:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D870: .4byte 0x000073fc
- thumb_func_end sub_807D78C
-
- thumb_func_start sub_807D874
-sub_807D874: @ 807D874
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0807D890 @ =gUnknown_0202F7E8
- movs r2, 0xD8
- lsls r2, 3
- adds r1, r2
- movs r2, 0
- ldrsb r2, [r1, r2]
- movs r1, 0x1
- bl sub_807CEBC
- pop {r0}
- bx r0
- .align 2, 0
-_0807D890: .4byte gUnknown_0202F7E8
- thumb_func_end sub_807D874
-
- thumb_func_start unref_sub_807D894
-unref_sub_807D894: @ 807D894
- push {lr}
- ldr r1, _0807D8A8 @ =gUnknown_0202F7E8
- ldr r2, _0807D8AC @ =0x000006c6
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0807D8B0
- movs r0, 0
- b _0807D8B6
- .align 2, 0
-_0807D8A8: .4byte gUnknown_0202F7E8
-_0807D8AC: .4byte 0x000006c6
-_0807D8B0:
- ldr r2, _0807D8BC @ =0x000006ca
- adds r0, r1, r2
- ldrb r0, [r0]
-_0807D8B6:
- pop {r1}
- bx r1
- .align 2, 0
-_0807D8BC: .4byte 0x000006ca
- thumb_func_end unref_sub_807D894
-
- thumb_func_start sub_807D8C0
-sub_807D8C0: @ 807D8C0
- push {r4,lr}
- ldr r4, _0807D8E8 @ =gUnknown_0202F7E8
- ldr r1, _0807D8EC @ =0x000006d4
- adds r4, r1
- ldrb r1, [r4]
- lsls r1, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadPalette
- ldrb r0, [r4]
- bl sub_807D78C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D8E8: .4byte gUnknown_0202F7E8
-_0807D8EC: .4byte 0x000006d4
- thumb_func_end sub_807D8C0
-
- thumb_func_start sub_807D8F0
-sub_807D8F0: @ 807D8F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- mov r8, r1
- ldrb r4, [r7]
- cmp r4, 0x6
- bhi _0807D99A
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0807D94C @ =gUnknown_08396FA8
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r6, r4, 13
- ldr r5, _0807D950 @ =0x02000000
- adds r1, r6, r5
- bl LZ77UnCompWram
- subs r0, r4, 0x1
- cmp r4, 0
- bne _0807D95C
- ldr r0, _0807D954 @ =0x00000421
- strh r0, [r5]
- movs r2, 0x1
- adds r4, r5, 0
- movs r3, 0
- ldr r5, _0807D958 @ =0x00000fff
-_0807D92A:
- lsls r1, r2, 1
- adds r1, r3
- adds r1, r4
- subs r0, r2, 0x1
- lsls r0, 1
- adds r0, r3
- adds r0, r4
- ldrh r0, [r0]
- ldrh r6, [r1]
- adds r0, r6
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r5
- bls _0807D92A
- b _0807D984
- .align 2, 0
-_0807D94C: .4byte gUnknown_08396FA8
-_0807D950: .4byte 0x02000000
-_0807D954: .4byte 0x00000421
-_0807D958: .4byte 0x00000fff
-_0807D95C:
- movs r2, 0
- adds r3, r5, 0
- adds r5, r6, 0
- lsls r4, r0, 13
- ldr r0, _0807D9A4 @ =0x00000fff
- mov r12, r0
-_0807D968:
- lsls r0, r2, 1
- adds r1, r0, r5
- adds r1, r3
- adds r0, r4
- adds r0, r3
- ldrh r0, [r0]
- ldrh r6, [r1]
- adds r0, r6
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r12
- bls _0807D968
-_0807D984:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x7
- bne _0807D99A
- movs r0, 0x20
- strb r0, [r7]
- mov r1, r8
- strb r0, [r1]
-_0807D99A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D9A4: .4byte 0x00000fff
- thumb_func_end sub_807D8F0
-
- thumb_func_start sub_807D9A8
-sub_807D9A8: @ 807D9A8
- ldr r0, _0807D9BC @ =gUnknown_0202F7E8
- ldr r2, _0807D9C0 @ =0x0000074d
- adds r1, r0, r2
- movs r2, 0x1
- strb r2, [r1]
- ldr r1, _0807D9C4 @ =0x0000074e
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0807D9BC: .4byte gUnknown_0202F7E8
-_0807D9C0: .4byte 0x0000074d
-_0807D9C4: .4byte 0x0000074e
- thumb_func_end sub_807D9A8
-
- thumb_func_start sub_807D9C8
-sub_807D9C8: @ 807D9C8
- push {r4,lr}
- ldr r1, _0807D9F0 @ =gUnknown_0202F7E8
- ldr r0, _0807D9F4 @ =0x0000074d
- adds r4, r1, r0
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0x1F
- bgt _0807D9FC
- ldr r0, _0807D9F8 @ =0x0000074e
- adds r1, r0
- adds r0, r4, 0
- bl sub_807D8F0
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0x1F
- bgt _0807D9FC
- movs r0, 0x1
- b _0807D9FE
- .align 2, 0
-_0807D9F0: .4byte gUnknown_0202F7E8
-_0807D9F4: .4byte 0x0000074d
-_0807D9F8: .4byte 0x0000074e
-_0807D9FC:
- movs r0, 0
-_0807D9FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807D9C8
-
- thumb_func_start sub_807DA04
-sub_807DA04: @ 807DA04
- push {lr}
- lsls r0, 24
- asrs r0, 24
- mvns r0, r0
- bl sub_807D5BC
- pop {r0}
- bx r0
- thumb_func_end sub_807DA04
-
- thumb_func_start sub_807DA14
-sub_807DA14: @ 807DA14
- ldr r1, _0807DA3C @ =gUnknown_0202F7E8
- ldr r2, _0807DA40 @ =0x0000073c
- adds r0, r1, r2
- movs r2, 0
- strh r2, [r0]
- movs r3, 0xE8
- lsls r3, 3
- adds r0, r1, r3
- strh r2, [r0]
- adds r3, 0x2
- adds r0, r1, r3
- strh r2, [r0]
- ldr r0, _0807DA44 @ =0x0000073e
- adds r1, r0
- strh r2, [r1]
- ldr r1, _0807DA48 @ =gUnknown_0202FF58
- movs r0, 0x5
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0807DA3C: .4byte gUnknown_0202F7E8
-_0807DA40: .4byte 0x0000073c
-_0807DA44: .4byte 0x0000073e
-_0807DA48: .4byte gUnknown_0202FF58
- thumb_func_end sub_807DA14
-
- thumb_func_start sub_807DA4C
-sub_807DA4C: @ 807DA4C
- push {r4-r7,lr}
- ldr r5, _0807DA68 @ =gUnknown_0202F7E8
- ldr r0, _0807DA6C @ =0x00000742
- adds r7, r5, r0
- movs r1, 0
- ldrsh r2, [r7, r1]
- cmp r2, 0x1
- beq _0807DAC8
- cmp r2, 0x1
- bgt _0807DA70
- cmp r2, 0
- beq _0807DA76
- b _0807DB54
- .align 2, 0
-_0807DA68: .4byte gUnknown_0202F7E8
-_0807DA6C: .4byte 0x00000742
-_0807DA70:
- cmp r2, 0x2
- beq _0807DB1C
- b _0807DB54
-_0807DA76:
- movs r3, 0xE8
- lsls r3, 3
- adds r6, r5, r3
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0807DABC @ =gUnknown_0202FF58
- ldrh r1, [r1]
- cmp r0, r1
- ble _0807DB54
- strh r2, [r6]
- ldr r0, _0807DAC0 @ =0x0000073c
- adds r4, r5, r0
- ldrh r0, [r4]
- adds r1, r0, 0x1
- strh r1, [r4]
- lsls r0, 24
- asrs r0, 24
- bl sub_807DA04
- ldrh r1, [r4]
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0x5
- ble _0807DB54
- ldr r3, _0807DAC4 @ =0x0000073e
- adds r0, r5, r3
- strh r1, [r0]
- movs r0, 0x1
- strh r0, [r7]
- movs r0, 0x3C
- strh r0, [r6]
- b _0807DB54
- .align 2, 0
-_0807DABC: .4byte gUnknown_0202FF58
-_0807DAC0: .4byte 0x0000073c
-_0807DAC4: .4byte 0x0000073e
-_0807DAC8:
- movs r0, 0xE8
- lsls r0, 3
- adds r2, r5, r0
- ldrh r0, [r2]
- adds r0, 0x3
- movs r1, 0x7F
- ands r0, r1
- strh r0, [r2]
- ldr r1, _0807DB10 @ =gSineTable
- movs r3, 0
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- subs r0, 0x1
- asrs r0, 6
- adds r0, 0x2
- ldr r2, _0807DB14 @ =0x0000073c
- adds r6, r5, r2
- adds r2, r0, 0
- strh r0, [r6]
- ldr r3, _0807DB18 @ =0x0000073e
- adds r4, r5, r3
- movs r3, 0
- ldrsh r1, [r4, r3]
- cmp r0, r1
- beq _0807DB08
- lsls r0, r2, 24
- asrs r0, 24
- bl sub_807DA04
-_0807DB08:
- ldrh r0, [r6]
- strh r0, [r4]
- b _0807DB54
- .align 2, 0
-_0807DB10: .4byte gSineTable
-_0807DB14: .4byte 0x0000073c
-_0807DB18: .4byte 0x0000073e
-_0807DB1C:
- movs r0, 0xE8
- lsls r0, 3
- adds r2, r5, r0
- ldrh r0, [r2]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0807DB5C @ =gUnknown_0202FF58
- ldrh r1, [r1]
- cmp r0, r1
- ble _0807DB54
- strh r6, [r2]
- ldr r1, _0807DB60 @ =0x0000073c
- adds r4, r5, r1
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- lsls r0, 24
- asrs r0, 24
- bl sub_807DA04
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- bne _0807DB54
- strh r6, [r7]
-_0807DB54:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DB5C: .4byte gUnknown_0202FF58
-_0807DB60: .4byte 0x0000073c
- thumb_func_end sub_807DA4C
-
- thumb_func_start sub_807DB64
-sub_807DB64: @ 807DB64
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0807DB98 @ =gUnknown_0202F7E8
- movs r4, 0xE6
- lsls r4, 3
- adds r2, r3, r4
- strh r0, [r2]
- adds r4, 0x2
- adds r2, r3, r4
- strh r1, [r2]
- adds r4, 0x2
- adds r2, r3, r4
- strh r0, [r2]
- ldr r2, _0807DB9C @ =0x00000736
- adds r3, r2
- strh r1, [r3]
- ldr r2, _0807DBA0 @ =REG_BLDALPHA
- lsls r1, 8
- orrs r1, r0
- strh r1, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DB98: .4byte gUnknown_0202F7E8
-_0807DB9C: .4byte 0x00000736
-_0807DBA0: .4byte REG_BLDALPHA
- thumb_func_end sub_807DB64
-
- thumb_func_start sub_807DBA4
-sub_807DBA4: @ 807DBA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0807DBD8 @ =gUnknown_0202F7E8
- ldr r5, _0807DBDC @ =0x00000734
- adds r4, r3, r5
- movs r5, 0
- strh r0, [r4]
- ldr r4, _0807DBE0 @ =0x00000736
- adds r0, r3, r4
- strh r1, [r0]
- ldr r1, _0807DBE4 @ =0x0000073a
- adds r0, r3, r1
- strb r2, [r0]
- adds r4, 0x3
- adds r0, r3, r4
- strb r5, [r0]
- movs r0, 0xE7
- lsls r0, 3
- adds r3, r0
- strb r5, [r3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DBD8: .4byte gUnknown_0202F7E8
-_0807DBDC: .4byte 0x00000734
-_0807DBE0: .4byte 0x00000736
-_0807DBE4: .4byte 0x0000073a
- thumb_func_end sub_807DBA4
-
- thumb_func_start sub_807DBE8
-sub_807DBE8: @ 807DBE8
- push {r4-r6,lr}
- ldr r0, _0807DC40 @ =gUnknown_0202F7E8
- movs r1, 0xE6
- lsls r1, 3
- adds r3, r0, r1
- ldr r2, [r3]
- ldr r6, _0807DC44 @ =0x00000734
- adds r5, r0, r6
- ldr r1, [r5]
- adds r4, r0, 0
- cmp r2, r1
- beq _0807DCAC
- ldr r0, _0807DC48 @ =0x00000739
- adds r2, r4, r0
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldr r6, _0807DC4C @ =0x0000073a
- adds r1, r4, r6
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bls _0807DC78
- movs r0, 0
- strb r0, [r2]
- movs r0, 0xE7
- lsls r0, 3
- adds r1, r4, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0807DC50
- ldrh r1, [r3]
- adds r2, r1, 0
- ldrh r0, [r5]
- cmp r2, r0
- bcs _0807DC70
- adds r0, r1, 0x1
- b _0807DC76
- .align 2, 0
-_0807DC40: .4byte gUnknown_0202F7E8
-_0807DC44: .4byte 0x00000734
-_0807DC48: .4byte 0x00000739
-_0807DC4C: .4byte 0x0000073a
-_0807DC50:
- ldr r1, _0807DC68 @ =0x00000732
- adds r3, r4, r1
- ldr r2, _0807DC6C @ =0x00000736
- adds r0, r4, r2
- ldrh r1, [r3]
- adds r2, r1, 0
- ldrh r0, [r0]
- cmp r2, r0
- bcs _0807DC70
- adds r0, r1, 0x1
- b _0807DC76
- .align 2, 0
-_0807DC68: .4byte 0x00000732
-_0807DC6C: .4byte 0x00000736
-_0807DC70:
- cmp r2, r0
- bls _0807DC78
- subs r0, r1, 0x1
-_0807DC76:
- strh r0, [r3]
-_0807DC78:
- ldr r3, _0807DCA0 @ =REG_BLDALPHA
- ldr r6, _0807DCA4 @ =0x00000732
- adds r0, r4, r6
- ldrh r0, [r0]
- lsls r0, 8
- movs r1, 0xE6
- lsls r1, 3
- adds r2, r4, r1
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r3]
- ldr r1, [r2]
- ldr r2, _0807DCA8 @ =0x00000734
- adds r0, r4, r2
- ldr r0, [r0]
- cmp r1, r0
- beq _0807DCAC
- movs r0, 0
- b _0807DCAE
- .align 2, 0
-_0807DCA0: .4byte REG_BLDALPHA
-_0807DCA4: .4byte 0x00000732
-_0807DCA8: .4byte 0x00000734
-_0807DCAC:
- movs r0, 0x1
-_0807DCAE:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_807DBE8
-
- thumb_func_start unref_sub_807DCB4
-unref_sub_807DCB4: @ 807DCB4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x9
- bhi _0807DD46
- lsls r0, 2
- ldr r1, _0807DCCC @ =_0807DCD0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807DCCC: .4byte _0807DCD0
- .align 2, 0
-_0807DCD0:
- .4byte _0807DCF8
- .4byte _0807DD00
- .4byte _0807DD08
- .4byte _0807DD10
- .4byte _0807DD18
- .4byte _0807DD20
- .4byte _0807DD28
- .4byte _0807DD30
- .4byte _0807DD38
- .4byte _0807DD40
-_0807DCF8:
- movs r0, 0x1
- bl SetWeather
- b _0807DD46
-_0807DD00:
- movs r0, 0x2
- bl SetWeather
- b _0807DD46
-_0807DD08:
- movs r0, 0x3
- bl SetWeather
- b _0807DD46
-_0807DD10:
- movs r0, 0x4
- bl SetWeather
- b _0807DD46
-_0807DD18:
- movs r0, 0x5
- bl SetWeather
- b _0807DD46
-_0807DD20:
- movs r0, 0x6
- bl SetWeather
- b _0807DD46
-_0807DD28:
- movs r0, 0x9
- bl SetWeather
- b _0807DD46
-_0807DD30:
- movs r0, 0x7
- bl SetWeather
- b _0807DD46
-_0807DD38:
- movs r0, 0x8
- bl SetWeather
- b _0807DD46
-_0807DD40:
- movs r0, 0xB
- bl SetWeather
-_0807DD46:
- pop {r0}
- bx r0
- thumb_func_end unref_sub_807DCB4
-
- thumb_func_start weather_get_current
-weather_get_current: @ 807DD4C
- ldr r0, _0807DD58 @ =gUnknown_0202F7E8
- movs r1, 0xDA
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0807DD58: .4byte gUnknown_0202F7E8
- thumb_func_end weather_get_current
-
- thumb_func_start sub_807DD5C
-sub_807DD5C: @ 807DD5C
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _0807DD7C @ =gUnknown_0202F7E8
- ldr r3, _0807DD80 @ =0x000006c6
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0807DDAE
- cmp r2, 0x53
- beq _0807DD94
- cmp r2, 0x53
- bgt _0807DD84
- cmp r2, 0x51
- beq _0807DDA0
- b _0807DDAE
- .align 2, 0
-_0807DD7C: .4byte gUnknown_0202F7E8
-_0807DD80: .4byte 0x000006c6
-_0807DD84:
- cmp r2, 0x55
- bne _0807DDAE
- ldr r0, _0807DD90 @ =0x000006dd
- adds r1, r0
- movs r0, 0
- b _0807DDA6
- .align 2, 0
-_0807DD90: .4byte 0x000006dd
-_0807DD94:
- ldr r3, _0807DD9C @ =0x000006dd
- adds r1, r3
- movs r0, 0x1
- b _0807DDA6
- .align 2, 0
-_0807DD9C: .4byte 0x000006dd
-_0807DDA0:
- ldr r0, _0807DDB4 @ =0x000006dd
- adds r1, r0
- movs r0, 0x2
-_0807DDA6:
- strb r0, [r1]
- adds r0, r2, 0
- bl PlaySE
-_0807DDAE:
- pop {r0}
- bx r0
- .align 2, 0
-_0807DDB4: .4byte 0x000006dd
- thumb_func_end sub_807DD5C
-
- thumb_func_start PlayRainSoundEffect
-PlayRainSoundEffect: @ 807DDB8
- push {lr}
- bl IsSpecialSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _0807DDF6
- ldr r0, _0807DDE0 @ =gUnknown_0202F7E8
- ldr r1, _0807DDE4 @ =0x000006dd
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0807DDE8
- cmp r0, 0x1
- bgt _0807DDF0
- cmp r0, 0
- bne _0807DDF0
- movs r0, 0x56
- bl PlaySE
- b _0807DDF6
- .align 2, 0
-_0807DDE0: .4byte gUnknown_0202F7E8
-_0807DDE4: .4byte 0x000006dd
-_0807DDE8:
- movs r0, 0x54
- bl PlaySE
- b _0807DDF6
-_0807DDF0:
- movs r0, 0x52
- bl PlaySE
-_0807DDF6:
- pop {r0}
- bx r0
- thumb_func_end PlayRainSoundEffect
-
- thumb_func_start sub_807DDFC
-sub_807DDFC: @ 807DDFC
- ldr r0, _0807DE08 @ =gUnknown_0202F7E8
- ldr r1, _0807DE0C @ =0x000006d3
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0807DE08: .4byte gUnknown_0202F7E8
-_0807DE0C: .4byte 0x000006d3
- thumb_func_end sub_807DDFC
-
- thumb_func_start sub_807DE10
-sub_807DE10: @ 807DE10
- ldr r0, _0807DE1C @ =gUnknown_0202F7E8
- ldr r1, _0807DE20 @ =0x000006c6
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0807DE1C: .4byte gUnknown_0202F7E8
-_0807DE20: .4byte 0x000006c6
- thumb_func_end sub_807DE10
-
- thumb_func_start unref_sub_807DE24
-unref_sub_807DE24: @ 807DE24
- ldr r0, _0807DE30 @ =gUnknown_0202F7E8
- ldr r1, _0807DE34 @ =0x000006c6
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0807DE30: .4byte gUnknown_0202F7E8
-_0807DE34: .4byte 0x000006c6
- thumb_func_end unref_sub_807DE24
-
- thumb_func_start sub_807DE38
-sub_807DE38: @ 807DE38
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0807DE5C @ =gUnknown_083970C8
- ldr r5, _0807DE60 @ =gUnknown_0202FF38
- adds r1, r5, 0
- movs r2, 0x10
- bl CpuSet
- adds r4, r5
- movs r0, 0
- strb r0, [r4]
- ldr r0, _0807DE64 @ =gUnknown_030006DC
- str r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DE5C: .4byte gUnknown_083970C8
-_0807DE60: .4byte gUnknown_0202FF38
-_0807DE64: .4byte gUnknown_030006DC
- thumb_func_end sub_807DE38
-
- thumb_func_start sub_807DE68
-sub_807DE68: @ 807DE68
- ldr r1, _0807DE70 @ =gUnknown_030006DC
- ldr r0, _0807DE74 @ =gUnknown_083970C8
- str r0, [r1]
- bx lr
- .align 2, 0
-_0807DE70: .4byte gUnknown_030006DC
-_0807DE74: .4byte gUnknown_083970C8
- thumb_func_end sub_807DE68
-
- thumb_func_start sub_807DE78
-sub_807DE78: @ 807DE78
- push {lr}
- ldr r0, _0807DEB0 @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r2, _0807DEB4 @ =0x000006c1
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r1, _0807DEB8 @ =0x000006c2
- adds r3, r0, r1
- movs r1, 0x14
- strb r1, [r3]
- ldr r3, _0807DEBC @ =0x000006d2
- adds r1, r0, r3
- strb r2, [r1]
- subs r3, 0x6
- adds r1, r0, r3
- strh r2, [r1]
- ldr r1, _0807DEC0 @ =0x000006de
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807DEAC
- movs r0, 0
- movs r1, 0x10
- bl sub_807DB64
-_0807DEAC:
- pop {r0}
- bx r0
- .align 2, 0
-_0807DEB0: .4byte gUnknown_08396FC4
-_0807DEB4: .4byte 0x000006c1
-_0807DEB8: .4byte 0x000006c2
-_0807DEBC: .4byte 0x000006d2
-_0807DEC0: .4byte 0x000006de
- thumb_func_end sub_807DE78
-
- thumb_func_start sub_807DEC4
-sub_807DEC4: @ 807DEC4
- push {r4,lr}
- bl sub_807DE78
- ldr r0, _0807DEEC @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807DEF0 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807DEE4
- adds r4, r1, r2
-_0807DEDA:
- bl sub_807DEF4
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807DEDA
-_0807DEE4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DEEC: .4byte gUnknown_08396FC4
-_0807DEF0: .4byte 0x000006d2
- thumb_func_end sub_807DEC4
-
- thumb_func_start sub_807DEF4
-sub_807DEF4: @ 807DEF4
- push {r4,r5,lr}
- ldr r0, _0807DF10 @ =gUnknown_08396FC4
- ldr r5, [r0]
- ldr r0, _0807DF14 @ =0x000006cc
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807DF24
- cmp r0, 0x1
- bgt _0807DF18
- cmp r0, 0
- beq _0807DF1E
- b _0807DF48
- .align 2, 0
-_0807DF10: .4byte gUnknown_08396FC4
-_0807DF14: .4byte 0x000006cc
-_0807DF18:
- cmp r0, 0x2
- beq _0807DF30
- b _0807DF48
-_0807DF1E:
- bl sub_807DFD4
- b _0807DF42
-_0807DF24:
- movs r0, 0xC
- movs r1, 0x8
- movs r2, 0x1
- bl sub_807DBA4
- b _0807DF42
-_0807DF30:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807DF48
- ldr r0, _0807DF50 @ =0x000006d2
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_0807DF42:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807DF48:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DF50: .4byte 0x000006d2
- thumb_func_end sub_807DEF4
-
- thumb_func_start sub_807DF54
-sub_807DF54: @ 807DF54
- push {r4,lr}
- ldr r0, _0807DF6C @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807DF70 @ =0x000006ce
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0
- beq _0807DF74
- cmp r0, 0x1
- beq _0807DF80
- movs r0, 0
- b _0807DF96
- .align 2, 0
-_0807DF6C: .4byte gUnknown_08396FC4
-_0807DF70: .4byte 0x000006ce
-_0807DF74:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1
- bl sub_807DBA4
- b _0807DF8E
-_0807DF80:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807DF94
- bl sub_807E0A0
-_0807DF8E:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807DF94:
- movs r0, 0x1
-_0807DF96:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807DF54
-
- thumb_func_start sub_807DF9C
-sub_807DF9C: @ 807DF9C
- ldr r0, _0807DFB4 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r0, _0807DFB8 @ =0x000006c1
- adds r2, r1, r0
- movs r0, 0
- strb r0, [r2]
- ldr r0, _0807DFBC @ =0x000006c2
- adds r1, r0
- movs r0, 0x14
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0807DFB4: .4byte gUnknown_08396FC4
-_0807DFB8: .4byte 0x000006c1
-_0807DFBC: .4byte 0x000006c2
- thumb_func_end sub_807DF9C
-
- thumb_func_start sub_807DFC0
-sub_807DFC0: @ 807DFC0
- push {lr}
- bl sub_807DF9C
- pop {r0}
- bx r0
- thumb_func_end sub_807DFC0
-
- thumb_func_start nullsub_55
-nullsub_55: @ 807DFCC
- bx lr
- thumb_func_end nullsub_55
-
- thumb_func_start sub_807DFD0
-sub_807DFD0: @ 807DFD0
- movs r0, 0
- bx lr
- thumb_func_end sub_807DFD0
-
- thumb_func_start sub_807DFD4
-sub_807DFD4: @ 807DFD4
- push {r4,r5,lr}
- ldr r0, _0807E04C @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807E050 @ =0x000006de
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0807E090
- ldr r0, _0807E054 @ =gUnknown_0839A9D4
- bl LoadSpriteSheet
- ldr r0, _0807E058 @ =gUnknown_08397108
- bl sub_807D8C0
- movs r5, 0
-_0807DFF2:
- ldr r0, _0807E05C @ =gSpriteTemplate_839A9F0
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _0807E068
- ldr r0, _0807E04C @ =gUnknown_08396FC4
- ldr r1, [r0]
- lsls r2, r5, 2
- movs r0, 0xFA
- lsls r0, 1
- adds r1, r0
- adds r1, r2
- lsls r4, r3, 4
- adds r4, r3
- lsls r4, 2
- ldr r0, _0807E060 @ =gSprites
- adds r4, r0
- str r4, [r1]
- ldr r0, _0807E064 @ =gUnknown_0839A9C8
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r2, 0x2]
- adds r1, 0x7
- lsls r1, 16
- asrs r1, 16
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- bl sub_80603CC
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- b _0807E07A
- .align 2, 0
-_0807E04C: .4byte gUnknown_08396FC4
-_0807E050: .4byte 0x000006de
-_0807E054: .4byte gUnknown_0839A9D4
-_0807E058: .4byte gUnknown_08397108
-_0807E05C: .4byte gSpriteTemplate_839A9F0
-_0807E060: .4byte gSprites
-_0807E064: .4byte gUnknown_0839A9C8
-_0807E068:
- ldr r0, _0807E098 @ =gUnknown_08396FC4
- ldr r1, [r0]
- lsls r0, r5, 2
- movs r2, 0xFA
- lsls r2, 1
- adds r1, r2
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_0807E07A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x2
- bls _0807DFF2
- ldr r0, _0807E098 @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807E09C @ =0x000006de
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0807E090:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E098: .4byte gUnknown_08396FC4
-_0807E09C: .4byte 0x000006de
- thumb_func_end sub_807DFD4
-
- thumb_func_start sub_807E0A0
-sub_807E0A0: @ 807E0A0
- push {r4,r5,lr}
- ldr r0, _0807E0EC @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807E0F0 @ =0x000006de
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807E0E4
- movs r4, 0
- movs r0, 0xFA
- lsls r0, 1
- adds r5, r1, r0
-_0807E0B8:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807E0C6
- bl DestroySprite
-_0807E0C6:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _0807E0B8
- movs r0, 0x90
- lsls r0, 5
- bl FreeSpriteTilesByTag
- ldr r0, _0807E0EC @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807E0F0 @ =0x000006de
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0807E0E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E0EC: .4byte gUnknown_08396FC4
-_0807E0F0: .4byte 0x000006de
- thumb_func_end sub_807E0A0
-
- thumb_func_start sub_807E0F4
-sub_807E0F4: @ 807E0F4
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r2, 0x2E]
- cmp r0, 0
- beq _0807E10C
- ldrh r0, [r2, 0x20]
- subs r0, 0x1
- strh r0, [r2, 0x20]
-_0807E10C:
- pop {r0}
- bx r0
- thumb_func_end sub_807E0F4
-
- thumb_func_start sub_807E110
-sub_807E110: @ 807E110
- ldr r0, _0807E134 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r0, _0807E138 @ =0x000006cc
- adds r3, r1, r0
- movs r2, 0
- movs r0, 0
- strh r0, [r3]
- ldr r3, _0807E13C @ =0x000006d2
- adds r0, r1, r3
- strb r2, [r0]
- subs r3, 0x11
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _0807E140 @ =0x000006c2
- adds r1, r0
- strb r2, [r1]
- bx lr
- .align 2, 0
-_0807E134: .4byte gUnknown_08396FC4
-_0807E138: .4byte 0x000006cc
-_0807E13C: .4byte 0x000006d2
-_0807E140: .4byte 0x000006c2
- thumb_func_end sub_807E110
-
- thumb_func_start sub_807E144
-sub_807E144: @ 807E144
- push {r4,lr}
- bl sub_807E110
- ldr r0, _0807E16C @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807E170 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807E164
- adds r4, r1, r2
-_0807E15A:
- bl sub_807E174
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807E15A
-_0807E164:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E16C: .4byte gUnknown_08396FC4
-_0807E170: .4byte 0x000006d2
- thumb_func_end sub_807E144
-
- thumb_func_start sub_807E174
-sub_807E174: @ 807E174
- push {lr}
- ldr r1, _0807E190 @ =gUnknown_08396FC4
- ldr r0, [r1]
- ldr r2, _0807E194 @ =0x000006cc
- adds r0, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _0807E250
- lsls r0, 2
- ldr r1, _0807E198 @ =_0807E19C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807E190: .4byte gUnknown_08396FC4
-_0807E194: .4byte 0x000006cc
-_0807E198: .4byte _0807E19C
- .align 2, 0
-_0807E19C:
- .4byte _0807E1B0
- .4byte _0807E1CC
- .4byte _0807E1E4
- .4byte _0807E200
- .4byte _0807E218
-_0807E1B0:
- ldr r1, [r2]
- ldr r2, _0807E1C4 @ =0x000006c6
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807E254
- ldr r0, _0807E1C8 @ =0x000006cc
- adds r1, r0
- b _0807E238
- .align 2, 0
-_0807E1C4: .4byte 0x000006c6
-_0807E1C8: .4byte 0x000006cc
-_0807E1CC:
- bl sub_807D9A8
- ldr r0, _0807E1DC @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807E1E0 @ =0x000006cc
- adds r1, r2
- b _0807E238
- .align 2, 0
-_0807E1DC: .4byte gUnknown_08396FC4
-_0807E1E0: .4byte 0x000006cc
-_0807E1E4:
- bl sub_807D9C8
- lsls r0, 24
- cmp r0, 0
- bne _0807E254
- ldr r0, _0807E1F8 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r0, _0807E1FC @ =0x000006cc
- adds r1, r0
- b _0807E238
- .align 2, 0
-_0807E1F8: .4byte gUnknown_08396FC4
-_0807E1FC: .4byte 0x000006cc
-_0807E200:
- bl sub_807DA14
- ldr r0, _0807E210 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807E214 @ =0x000006cc
- adds r1, r2
- b _0807E238
- .align 2, 0
-_0807E210: .4byte gUnknown_08396FC4
-_0807E214: .4byte 0x000006cc
-_0807E218:
- bl sub_807DA4C
- ldr r0, _0807E240 @ =gUnknown_08396FC4
- ldr r2, [r0]
- ldr r1, _0807E244 @ =0x0000073c
- adds r0, r2, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x6
- bne _0807E254
- ldr r0, _0807E248 @ =0x000006d2
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _0807E24C @ =0x000006cc
- adds r1, r2, r0
-_0807E238:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0807E254
- .align 2, 0
-_0807E240: .4byte gUnknown_08396FC4
-_0807E244: .4byte 0x0000073c
-_0807E248: .4byte 0x000006d2
-_0807E24C: .4byte 0x000006cc
-_0807E250:
- bl sub_807DA4C
-_0807E254:
- pop {r0}
- bx r0
- thumb_func_end sub_807E174
-
- thumb_func_start sub_807E258
-sub_807E258: @ 807E258
- movs r0, 0
- bx lr
- thumb_func_end sub_807E258
-
- thumb_func_start sub_807E25C
-sub_807E25C: @ 807E25C
- push {lr}
- ldr r0, _0807E26C @ =task50_0807B6D4
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0807E26C: .4byte task50_0807B6D4
- thumb_func_end sub_807E25C
-
- thumb_func_start task50_0807B6D4
-task50_0807B6D4: @ 807E270
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0807E294 @ =gTasks
- adds r3, r0, r1
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- cmp r0, 0x4
- bhi _0807E35E
- lsls r0, 2
- ldr r1, _0807E298 @ =_0807E29C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807E294: .4byte gTasks
-_0807E298: .4byte _0807E29C
- .align 2, 0
-_0807E29C:
- .4byte _0807E2B0
- .4byte _0807E2D2
- .4byte _0807E300
- .4byte _0807E334
- .4byte _0807E354
-_0807E2B0:
- movs r2, 0
- strh r2, [r3, 0xA]
- strh r2, [r3, 0xC]
- ldr r1, _0807E2F4 @ =REG_WININ
- ldrh r0, [r1]
- strh r0, [r3, 0xE]
- ldr r4, _0807E2F8 @ =0x00003f3f
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x8
- movs r0, 0x9E
- strh r0, [r1]
- ldr r0, _0807E2FC @ =REG_BLDY
- strh r2, [r0]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_0807E2D2:
- ldrh r0, [r3, 0xA]
- adds r0, 0x3
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _0807E2E4
- movs r0, 0x10
- strh r0, [r3, 0xA]
-_0807E2E4:
- ldr r0, _0807E2FC @ =REG_BLDY
- ldrh r1, [r3, 0xA]
- strh r1, [r0]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0xF
- ble _0807E35E
- b _0807E344
- .align 2, 0
-_0807E2F4: .4byte REG_WININ
-_0807E2F8: .4byte 0x00003f3f
-_0807E2FC: .4byte REG_BLDY
-_0807E300:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _0807E35E
- strh r1, [r3, 0xC]
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- cmp r0, 0
- bgt _0807E326
- strh r1, [r3, 0xA]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_0807E326:
- ldr r1, _0807E330 @ =REG_BLDY
- ldrh r0, [r3, 0xA]
- strh r0, [r1]
- b _0807E35E
- .align 2, 0
-_0807E330: .4byte REG_BLDY
-_0807E334:
- ldr r0, _0807E34C @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldr r1, _0807E350 @ =REG_WININ
- ldrh r0, [r3, 0xE]
- strh r0, [r1]
-_0807E344:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _0807E35E
- .align 2, 0
-_0807E34C: .4byte REG_BLDCNT
-_0807E350: .4byte REG_WININ
-_0807E354:
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_0807E35E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end task50_0807B6D4
-
- thumb_func_start sub_807E364
-sub_807E364: @ 807E364
- push {r4,lr}
- ldr r0, _0807E3B4 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807E3B8 @ =0x000006cc
- adds r0, r1, r2
- movs r3, 0
- movs r2, 0
- strh r2, [r0]
- ldr r4, _0807E3BC @ =0x000006d2
- adds r0, r1, r4
- strb r3, [r0]
- adds r4, 0x4
- adds r0, r1, r4
- strh r2, [r0]
- ldr r0, _0807E3C0 @ =0x000006db
- adds r2, r1, r0
- movs r0, 0x8
- strb r0, [r2]
- ldr r2, _0807E3C4 @ =0x000006dc
- adds r0, r1, r2
- strb r3, [r0]
- adds r4, 0x3
- adds r2, r1, r4
- movs r0, 0xA
- strb r0, [r2]
- ldr r0, _0807E3C8 @ =0x000006c1
- adds r2, r1, r0
- movs r0, 0x3
- strb r0, [r2]
- ldr r2, _0807E3CC @ =0x000006c2
- adds r1, r2
- movs r0, 0x14
- strb r0, [r1]
- movs r0, 0x55
- bl sub_807DD5C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E3B4: .4byte gUnknown_08396FC4
-_0807E3B8: .4byte 0x000006cc
-_0807E3BC: .4byte 0x000006d2
-_0807E3C0: .4byte 0x000006db
-_0807E3C4: .4byte 0x000006dc
-_0807E3C8: .4byte 0x000006c1
-_0807E3CC: .4byte 0x000006c2
- thumb_func_end sub_807E364
-
- thumb_func_start sub_807E3D0
-sub_807E3D0: @ 807E3D0
- push {r4,lr}
- bl sub_807E364
- ldr r0, _0807E3F8 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807E3FC @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807E3F0
- adds r4, r1, r2
-_0807E3E6:
- bl sub_807E400
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807E3E6
-_0807E3F0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E3F8: .4byte gUnknown_08396FC4
-_0807E3FC: .4byte 0x000006d2
- thumb_func_end sub_807E3D0
-
- thumb_func_start sub_807E400
-sub_807E400: @ 807E400
- push {r4,r5,lr}
- ldr r0, _0807E41C @ =gUnknown_08396FC4
- ldr r5, [r0]
- ldr r0, _0807E420 @ =0x000006cc
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807E430
- cmp r0, 0x1
- bgt _0807E424
- cmp r0, 0
- beq _0807E42A
- b _0807E454
- .align 2, 0
-_0807E41C: .4byte gUnknown_08396FC4
-_0807E420: .4byte 0x000006cc
-_0807E424:
- cmp r0, 0x2
- beq _0807E43C
- b _0807E454
-_0807E42A:
- bl sub_807E7A4
- b _0807E44E
-_0807E430:
- bl sub_807E7B4
- lsls r0, 24
- cmp r0, 0
- bne _0807E454
- b _0807E44E
-_0807E43C:
- bl sub_807E8E8
- lsls r0, 24
- cmp r0, 0
- bne _0807E454
- ldr r0, _0807E45C @ =0x000006d2
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_0807E44E:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807E454:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E45C: .4byte 0x000006d2
- thumb_func_end sub_807E400
-
- thumb_func_start sub_807E460
-sub_807E460: @ 807E460
- push {r4,r5,lr}
- ldr r0, _0807E47C @ =gUnknown_08396FC4
- ldr r2, [r0]
- ldr r1, _0807E480 @ =0x000006ce
- adds r3, r2, r1
- ldrh r1, [r3]
- adds r4, r0, 0
- cmp r1, 0
- beq _0807E484
- cmp r1, 0x1
- beq _0807E4B8
- movs r0, 0
- b _0807E4E6
- .align 2, 0
-_0807E47C: .4byte gUnknown_08396FC4
-_0807E480: .4byte 0x000006ce
-_0807E484:
- ldr r5, _0807E4A4 @ =0x000006d1
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0807E496
- cmp r0, 0x5
- beq _0807E496
- cmp r0, 0xD
- bne _0807E4AC
-_0807E496:
- ldr r0, [r4]
- ldr r1, _0807E4A8 @ =0x000006ce
- adds r0, r1
- movs r1, 0xFF
- strh r1, [r0]
- movs r0, 0
- b _0807E4E6
- .align 2, 0
-_0807E4A4: .4byte 0x000006d1
-_0807E4A8: .4byte 0x000006ce
-_0807E4AC:
- ldr r4, _0807E4D8 @ =0x000006d9
- adds r0, r2, r4
- strb r1, [r0]
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_0807E4B8:
- bl sub_807E8E8
- lsls r0, 24
- cmp r0, 0
- bne _0807E4E4
- bl sub_807E974
- ldr r0, _0807E4DC @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r5, _0807E4E0 @ =0x000006ce
- adds r1, r5
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0
- b _0807E4E6
- .align 2, 0
-_0807E4D8: .4byte 0x000006d9
-_0807E4DC: .4byte gUnknown_08396FC4
-_0807E4E0: .4byte 0x000006ce
-_0807E4E4:
- movs r0, 0x1
-_0807E4E6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_807E460
-
- thumb_func_start sub_807E4EC
-sub_807E4EC: @ 807E4EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- movs r1, 0x30
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _0807E500
- ldr r0, _0807E5A4 @ =0x00000169
- strh r0, [r7, 0x30]
-_0807E500:
- movs r2, 0x30
- ldrsh r1, [r7, r2]
- ldr r0, _0807E5A8 @ =0x41c64e6d
- muls r0, r1
- ldr r3, _0807E5AC @ =0x00003039
- adds r0, r3
- lsls r0, 1
- lsrs r0, 17
- movs r1, 0x96
- lsls r1, 2
- bl __umodsi3
- movs r1, 0
- mov r8, r1
- strh r0, [r7, 0x30]
- ldr r1, _0807E5B0 @ =gUnknown_0839AAC4
- ldr r0, _0807E5B4 @ =gUnknown_08396FC4
- ldr r5, [r0]
- ldr r2, _0807E5B8 @ =0x000006dc
- adds r5, r2
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldrh r6, [r0]
- movs r3, 0x30
- ldrsh r0, [r7, r3]
- movs r1, 0x1E
- bl __modsi3
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- lsls r0, r4, 3
- strh r0, [r7, 0x32]
- movs r1, 0x30
- ldrsh r0, [r7, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- lsls r4, 7
- strh r4, [r7, 0x32]
- asrs r0, 9
- strh r0, [r7, 0x34]
- ldr r2, _0807E5BC @ =gUnknown_0839AABC
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r2
- movs r3, 0
- ldrsh r1, [r1, r3]
- muls r1, r6
- subs r4, r1
- strh r4, [r7, 0x32]
- ldrb r1, [r5]
- lsls r1, 2
- adds r2, 0x2
- adds r1, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- muls r1, r6
- subs r0, r1
- strh r0, [r7, 0x34]
- adds r0, r7, 0
- movs r1, 0
- bl StartSpriteAnim
- mov r3, r8
- strh r3, [r7, 0x36]
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- strh r6, [r7, 0x2E]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E5A4: .4byte 0x00000169
-_0807E5A8: .4byte 0x41c64e6d
-_0807E5AC: .4byte 0x00003039
-_0807E5B0: .4byte gUnknown_0839AAC4
-_0807E5B4: .4byte gUnknown_08396FC4
-_0807E5B8: .4byte 0x000006dc
-_0807E5BC: .4byte gUnknown_0839AABC
- thumb_func_end sub_807E4EC
-
- thumb_func_start sub_807E5C0
-sub_807E5C0: @ 807E5C0
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x36
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0807E69C
- ldr r3, _0807E634 @ =gUnknown_0839AABC
- ldr r4, _0807E638 @ =gUnknown_08396FC4
- ldr r2, [r4]
- ldr r0, _0807E63C @ =0x000006dc
- adds r2, r0
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0]
- ldrh r0, [r5, 0x32]
- adds r1, r0
- strh r1, [r5, 0x32]
- ldrb r0, [r2]
- lsls r0, 2
- adds r3, 0x2
- adds r0, r3
- ldrh r0, [r0]
- ldrh r2, [r5, 0x34]
- adds r0, r2
- strh r0, [r5, 0x34]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x20]
- lsls r0, 16
- asrs r2, r0, 20
- strh r2, [r5, 0x22]
- movs r3, 0x38
- ldrsh r0, [r5, r3]
- adds r3, r4, 0
- cmp r0, 0
- beq _0807E640
- adds r0, r1, 0
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _0807E640
- adds r1, r2, 0
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- blt _0807E640
- cmp r1, 0xB0
- bgt _0807E640
- adds r0, r5, 0
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- b _0807E64A
- .align 2, 0
-_0807E634: .4byte gUnknown_0839AABC
-_0807E638: .4byte gUnknown_08396FC4
-_0807E63C: .4byte 0x000006dc
-_0807E640:
- adds r0, r5, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
-_0807E64A:
- strb r1, [r0]
- adds r4, r0, 0
- ldrh r0, [r5, 0x2E]
- subs r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _0807E6BC
- ldr r0, [r3]
- ldr r1, _0807E690 @ =0x000006dc
- adds r0, r1
- ldrb r1, [r0]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- movs r0, 0x1
- strh r0, [r5, 0x36]
- ldr r1, _0807E694 @ =gSpriteCoordOffsetX
- ldrh r0, [r5, 0x20]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldr r1, _0807E698 @ =gSpriteCoordOffsetY
- ldrh r0, [r5, 0x22]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- b _0807E6BC
- .align 2, 0
-_0807E690: .4byte 0x000006dc
-_0807E694: .4byte gSpriteCoordOffsetX
-_0807E698: .4byte gSpriteCoordOffsetY
-_0807E69C:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0807E6BC
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- adds r0, r5, 0
- bl sub_807E4EC
-_0807E6BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_807E5C0
-
- thumb_func_start sub_807E6C4
-sub_807E6C4: @ 807E6C4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0807E6E4
- adds r0, r4, 0
- bl sub_807E4EC
- ldr r0, _0807E6E0 @ =sub_807E5C0
- str r0, [r4, 0x1C]
- b _0807E6E8
- .align 2, 0
-_0807E6E0: .4byte sub_807E5C0
-_0807E6E4:
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
-_0807E6E8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_807E6C4
-
- thumb_func_start sub_807E6F0
-sub_807E6F0: @ 807E6F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- lsls r5, r1, 16
- lsrs r5, 16
- ldr r2, _0807E774 @ =gUnknown_0839AAC4
- ldr r0, _0807E778 @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807E77C @ =0x000006dc
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r1, r0, r2
- ldrh r1, [r1]
- mov r8, r1
- adds r2, 0x2
- adds r0, r2
- ldrh r4, [r0]
- add r4, r8
- adds r0, r5, 0
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 16
- lsrs r4, r0, 16
- subs r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _0807E780 @ =0x0000ffff
- cmp r6, r0
- beq _0807E74E
- adds r5, r0, 0
-_0807E73E:
- adds r0, r7, 0
- bl sub_807E4EC
- subs r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r5
- bne _0807E73E
-_0807E74E:
- cmp r4, r8
- bcs _0807E784
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0807E780 @ =0x0000ffff
- cmp r4, r0
- beq _0807E770
- adds r5, r0, 0
-_0807E760:
- adds r0, r7, 0
- bl sub_807E5C0
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r5
- bne _0807E760
-_0807E770:
- movs r0, 0
- b _0807E798
- .align 2, 0
-_0807E774: .4byte gUnknown_0839AAC4
-_0807E778: .4byte gUnknown_08396FC4
-_0807E77C: .4byte 0x000006dc
-_0807E780: .4byte 0x0000ffff
-_0807E784:
- mov r1, r8
- subs r0, r4, r1
- strh r0, [r7, 0x2E]
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
-_0807E798:
- strh r0, [r7, 0x3A]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807E6F0
-
- thumb_func_start sub_807E7A4
-sub_807E7A4: @ 807E7A4
- push {lr}
- ldr r0, _0807E7B0 @ =gUnknown_0839AACC
- bl LoadSpriteSheet
- pop {r0}
- bx r0
- .align 2, 0
-_0807E7B0: .4byte gUnknown_0839AACC
- thumb_func_end sub_807E7A4
-
- thumb_func_start sub_807E7B4
-sub_807E7B4: @ 807E7B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0807E860 @ =gUnknown_08396FC4
- ldr r4, [r0]
- ldr r0, _0807E864 @ =0x000006da
- adds r2, r4, r0
- ldrb r0, [r2]
- cmp r0, 0x18
- bne _0807E7CE
- b _0807E8D4
-_0807E7CE:
- ldrb r7, [r2]
- ldr r0, _0807E868 @ =gSpriteTemplate_839AAA4
- ldr r2, _0807E86C @ =gUnknown_0839AA08
- lsls r6, r7, 2
- adds r2, r6, r2
- movs r3, 0
- ldrsh r1, [r2, r3]
- movs r3, 0x2
- ldrsh r2, [r2, r3]
- movs r3, 0x4E
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _0807E87C
- ldr r3, _0807E870 @ =gSprites
- lsls r4, r5, 4
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strh r0, [r1, 0x38]
- lsls r2, r7, 3
- adds r0, r2, r7
- lsls r0, 4
- adds r0, r7
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0807E874 @ =0x00000257
- mov r10, r6
- mov r9, r3
- mov r12, r4
- mov r8, r2
- cmp r0, r1
- ble _0807E832
- adds r2, r1, 0
-_0807E81A:
- adds r0, r4, r5
- lsls r0, 2
- ldr r6, _0807E870 @ =gSprites
- adds r0, r6
- ldr r3, _0807E878 @ =0xfffffda8
- ldrh r6, [r0, 0x30]
- adds r1, r3, r6
- strh r1, [r0, 0x30]
- lsls r1, 16
- asrs r1, 16
- cmp r1, r2
- bgt _0807E81A
-_0807E832:
- mov r0, r12
- adds r4, r0, r5
- lsls r4, 2
- add r4, r9
- adds r0, r4, 0
- bl sub_807E4EC
- mov r3, r8
- adds r1, r3, r7
- adds r0, r4, 0
- bl sub_807E6F0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0807E860 @ =gUnknown_08396FC4
- ldr r0, [r0]
- add r0, r10
- str r4, [r0]
- b _0807E882
- .align 2, 0
-_0807E860: .4byte gUnknown_08396FC4
-_0807E864: .4byte 0x000006da
-_0807E868: .4byte gSpriteTemplate_839AAA4
-_0807E86C: .4byte gUnknown_0839AA08
-_0807E870: .4byte gSprites
-_0807E874: .4byte 0x00000257
-_0807E878: .4byte 0xfffffda8
-_0807E87C:
- adds r1, r4, r6
- movs r0, 0
- str r0, [r1]
-_0807E882:
- ldr r0, _0807E8B8 @ =gUnknown_08396FC4
- ldr r2, [r0]
- ldr r6, _0807E8BC @ =0x000006da
- adds r1, r2, r6
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x18
- bne _0807E8D8
- movs r3, 0
- adds r1, r2, 0
- ldr r5, _0807E8C0 @ =sub_807E5C0
- ldr r4, _0807E8C4 @ =sub_807E6C4
-_0807E8A0:
- lsls r0, r3, 2
- adds r0, r1, r0
- ldr r2, [r0]
- cmp r2, 0
- beq _0807E8CA
- movs r6, 0x3A
- ldrsh r0, [r2, r6]
- cmp r0, 0
- bne _0807E8C8
- str r5, [r2, 0x1C]
- b _0807E8CA
- .align 2, 0
-_0807E8B8: .4byte gUnknown_08396FC4
-_0807E8BC: .4byte 0x000006da
-_0807E8C0: .4byte sub_807E5C0
-_0807E8C4: .4byte sub_807E6C4
-_0807E8C8:
- str r4, [r2, 0x1C]
-_0807E8CA:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x17
- bls _0807E8A0
-_0807E8D4:
- movs r0, 0
- b _0807E8DA
-_0807E8D8:
- movs r0, 0x1
-_0807E8DA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_807E7B4
-
- thumb_func_start sub_807E8E8
-sub_807E8E8: @ 807E8E8
- push {r4-r7,lr}
- ldr r0, _0807E904 @ =gUnknown_08396FC4
- ldr r3, [r0]
- movs r0, 0xDB
- lsls r0, 3
- adds r4, r3, r0
- ldr r1, _0807E908 @ =0x000006d9
- adds r5, r3, r1
- ldrb r0, [r4]
- ldrb r7, [r5]
- cmp r0, r7
- bne _0807E90C
- movs r0, 0
- b _0807E96E
- .align 2, 0
-_0807E904: .4byte gUnknown_08396FC4
-_0807E908: .4byte 0x000006d9
-_0807E90C:
- ldr r0, _0807E944 @ =0x000006d6
- adds r2, r3, r0
- ldrh r0, [r2]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r2]
- ldr r7, _0807E948 @ =0x000006db
- adds r1, r3, r7
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1]
- cmp r0, r1
- bls _0807E96C
- strh r6, [r2]
- ldrb r0, [r4]
- adds r1, r0, 0
- ldrb r5, [r5]
- cmp r1, r5
- bcs _0807E94C
- adds r0, 0x1
- strb r0, [r4]
- lsls r0, r1, 2
- adds r0, r3, r0
- ldr r1, [r0]
- movs r0, 0x1
- strh r0, [r1, 0x38]
- b _0807E96C
- .align 2, 0
-_0807E944: .4byte 0x000006d6
-_0807E948: .4byte 0x000006db
-_0807E94C:
- subs r0, 0x1
- strb r0, [r4]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r3, r0
- ldr r0, [r0]
- strh r6, [r0, 0x38]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r3, r0
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
-_0807E96C:
- movs r0, 0x1
-_0807E96E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_807E8E8
-
- thumb_func_start sub_807E974
-sub_807E974: @ 807E974
- push {r4-r7,lr}
- movs r4, 0
- ldr r0, _0807E9BC @ =gUnknown_08396FC4
- ldr r2, [r0]
- ldr r3, _0807E9C0 @ =0x000006da
- adds r1, r2, r3
- adds r7, r0, 0
- ldrb r1, [r1]
- cmp r4, r1
- bcs _0807E9A6
- adds r5, r2, 0
- adds r6, r5, r3
-_0807E98C:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807E99A
- bl DestroySprite
-_0807E99A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r0, [r6]
- cmp r4, r0
- bcc _0807E98C
-_0807E9A6:
- ldr r0, [r7]
- ldr r1, _0807E9C0 @ =0x000006da
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0807E9C4 @ =0x00001206
- bl FreeSpriteTilesByTag
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E9BC: .4byte gUnknown_08396FC4
-_0807E9C0: .4byte 0x000006da
-_0807E9C4: .4byte 0x00001206
- thumb_func_end sub_807E974
-
- thumb_func_start sub_807E9C8
-sub_807E9C8: @ 807E9C8
- push {r4,lr}
- ldr r0, _0807EA04 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807EA08 @ =0x000006cc
- adds r0, r1, r2
- movs r2, 0
- movs r3, 0
- strh r3, [r0]
- ldr r4, _0807EA0C @ =0x000006d2
- adds r0, r1, r4
- strb r2, [r0]
- ldr r0, _0807EA10 @ =0x000006c1
- adds r2, r1, r0
- movs r0, 0x3
- strb r0, [r2]
- subs r4, 0x10
- adds r2, r1, r4
- movs r0, 0x14
- strb r0, [r2]
- ldr r0, _0807EA14 @ =0x000006e5
- adds r2, r1, r0
- movs r0, 0x10
- strb r0, [r2]
- movs r2, 0xDC
- lsls r2, 3
- adds r1, r2
- strh r3, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EA04: .4byte gUnknown_08396FC4
-_0807EA08: .4byte 0x000006cc
-_0807EA0C: .4byte 0x000006d2
-_0807EA10: .4byte 0x000006c1
-_0807EA14: .4byte 0x000006e5
- thumb_func_end sub_807E9C8
-
- thumb_func_start sub_807EA18
-sub_807EA18: @ 807EA18
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl sub_807E9C8
- ldr r2, _0807EA78 @ =gUnknown_08396FC4
- ldr r1, [r2]
- ldr r3, _0807EA7C @ =0x000006d2
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807EA6E
- mov r8, r2
- adds r7, r1, r3
-_0807EA34:
- bl snowflakes_progress2
- movs r4, 0
- mov r1, r8
- ldr r0, [r1]
- ldr r3, _0807EA80 @ =0x000006e4
- adds r0, r3
- ldrb r0, [r0]
- cmp r4, r0
- bcs _0807EA68
- ldr r0, _0807EA78 @ =gUnknown_08396FC4
- ldr r5, [r0]
- adds r6, r5, r3
-_0807EA4E:
- lsls r1, r4, 2
- adds r0, r5, 0
- adds r0, 0x60
- adds r0, r1
- ldr r0, [r0]
- bl sub_807ED48
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r0, [r6]
- cmp r4, r0
- bcc _0807EA4E
-_0807EA68:
- ldrb r0, [r7]
- cmp r0, 0
- beq _0807EA34
-_0807EA6E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EA78: .4byte gUnknown_08396FC4
-_0807EA7C: .4byte 0x000006d2
-_0807EA80: .4byte 0x000006e4
- thumb_func_end sub_807EA18
-
- thumb_func_start snowflakes_progress2
-snowflakes_progress2: @ 807EA84
- push {r4,r5,lr}
- ldr r0, _0807EAB4 @ =gUnknown_08396FC4
- ldr r5, [r0]
- ldr r0, _0807EAB8 @ =0x000006cc
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0
- bne _0807EAAC
- bl snowflakes_progress
- lsls r0, 24
- cmp r0, 0
- bne _0807EAAC
- ldr r0, _0807EABC @ =0x000006d2
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807EAAC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EAB4: .4byte gUnknown_08396FC4
-_0807EAB8: .4byte 0x000006cc
-_0807EABC: .4byte 0x000006d2
- thumb_func_end snowflakes_progress2
-
- thumb_func_start sub_807EAC0
-sub_807EAC0: @ 807EAC0
- push {r4,lr}
- ldr r0, _0807EAD8 @ =gUnknown_08396FC4
- ldr r2, [r0]
- ldr r0, _0807EADC @ =0x000006ce
- adds r3, r2, r0
- ldrh r1, [r3]
- cmp r1, 0
- beq _0807EAE0
- cmp r1, 0x1
- beq _0807EAF2
- movs r0, 0
- b _0807EB1E
- .align 2, 0
-_0807EAD8: .4byte gUnknown_08396FC4
-_0807EADC: .4byte 0x000006ce
-_0807EAE0:
- ldr r4, _0807EB10 @ =0x000006e5
- adds r0, r2, r4
- strb r1, [r0]
- subs r4, 0x5
- adds r0, r2, r4
- strh r1, [r0]
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_0807EAF2:
- bl snowflakes_progress
- lsls r0, 24
- cmp r0, 0
- bne _0807EB1C
- ldr r0, _0807EB14 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r0, _0807EB18 @ =0x000006ce
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0
- b _0807EB1E
- .align 2, 0
-_0807EB10: .4byte 0x000006e5
-_0807EB14: .4byte gUnknown_08396FC4
-_0807EB18: .4byte 0x000006ce
-_0807EB1C:
- movs r0, 0x1
-_0807EB1E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807EAC0
-
- thumb_func_start snowflakes_progress
-snowflakes_progress: @ 807EB24
- push {r4,lr}
- ldr r0, _0807EB40 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r0, _0807EB44 @ =0x000006e4
- adds r3, r1, r0
- ldr r4, _0807EB48 @ =0x000006e5
- adds r2, r1, r4
- ldrb r0, [r3]
- ldrb r4, [r2]
- cmp r0, r4
- bne _0807EB4C
- movs r0, 0
- b _0807EB8E
- .align 2, 0
-_0807EB40: .4byte gUnknown_08396FC4
-_0807EB44: .4byte 0x000006e4
-_0807EB48: .4byte 0x000006e5
-_0807EB4C:
- movs r0, 0xDC
- lsls r0, 3
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x24
- bls _0807EB76
- movs r0, 0
- strh r0, [r1]
- ldrb r0, [r3]
- ldrb r2, [r2]
- cmp r0, r2
- bcs _0807EB72
- bl snowflake_add
- b _0807EB76
-_0807EB72:
- bl snowflake_remove
-_0807EB76:
- ldr r0, _0807EB94 @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r2, _0807EB98 @ =0x000006e4
- adds r1, r0, r2
- ldr r4, _0807EB9C @ =0x000006e5
- adds r0, r4
- ldrb r1, [r1]
- ldrb r0, [r0]
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
-_0807EB8E:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0807EB94: .4byte gUnknown_08396FC4
-_0807EB98: .4byte 0x000006e4
-_0807EB9C: .4byte 0x000006e5
- thumb_func_end snowflakes_progress
-
- thumb_func_start snowflake_add
-snowflake_add: @ 807EBA0
- push {r4-r6,lr}
- ldr r0, _0807EBF4 @ =gSpriteTemplate_839AB04
- movs r1, 0
- movs r2, 0
- movs r3, 0x4E
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0807EC04
- ldr r0, _0807EBF8 @ =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- ldr r0, _0807EBFC @ =gUnknown_08396FC4
- ldr r5, [r0]
- ldr r0, _0807EC00 @ =0x000006e4
- adds r6, r5, r0
- ldrb r0, [r6]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_807EC40
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r6]
- adds r1, r0, 0x1
- strb r1, [r6]
- lsls r0, 24
- lsrs r0, 22
- adds r5, 0x60
- adds r5, r0
- str r4, [r5]
- movs r0, 0x1
- b _0807EC06
- .align 2, 0
-_0807EBF4: .4byte gSpriteTemplate_839AB04
-_0807EBF8: .4byte gSprites
-_0807EBFC: .4byte gUnknown_08396FC4
-_0807EC00: .4byte 0x000006e4
-_0807EC04:
- movs r0, 0
-_0807EC06:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end snowflake_add
-
- thumb_func_start snowflake_remove
-snowflake_remove: @ 807EC0C
- push {lr}
- ldr r0, _0807EC20 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r0, _0807EC24 @ =0x000006e4
- adds r2, r1, r0
- ldrb r0, [r2]
- cmp r0, 0
- bne _0807EC28
- movs r0, 0
- b _0807EC3C
- .align 2, 0
-_0807EC20: .4byte gUnknown_08396FC4
-_0807EC24: .4byte 0x000006e4
-_0807EC28:
- subs r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r1, 0x60
- adds r1, r0
- ldr r0, [r1]
- bl DestroySprite
- movs r0, 0x1
-_0807EC3C:
- pop {r1}
- bx r1
- thumb_func_end snowflake_remove
-
- thumb_func_start sub_807EC40
-sub_807EC40: @ 807EC40
- push {r4-r7,lr}
- adds r5, r0, 0
- bl Random
- movs r1, 0x36
- ldrsh r2, [r5, r1]
- lsls r1, r2, 2
- adds r1, r2
- movs r2, 0x7
- ands r1, r2
- lsls r4, r1, 4
- subs r4, r1
- lsls r4, 1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1E
- bl __umodsi3
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- ldr r1, _0807ECE4 @ =gSpriteCoordOffsetY
- adds r0, r5, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r1]
- adds r0, r1
- movs r2, 0x3
- negs r2, r2
- adds r1, r2, 0
- subs r1, r0
- movs r7, 0
- strh r1, [r5, 0x22]
- ldr r1, _0807ECE8 @ =gSpriteCoordOffsetX
- adds r0, r5, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r1]
- adds r0, r1
- subs r4, r0
- strh r4, [r5, 0x20]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- lsls r0, 7
- strh r0, [r5, 0x2E]
- strh r7, [r5, 0x24]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r6, r0, 0
- movs r4, 0x3
- ands r4, r6
- lsls r0, r4, 2
- adds r0, r4
- adds r0, 0x40
- strh r0, [r5, 0x30]
- strh r0, [r5, 0x3C]
- movs r1, 0x1
- bics r1, r6
- adds r0, r5, 0
- bl StartSpriteAnim
- strh r7, [r5, 0x34]
- movs r0, 0x1
- cmp r4, 0
- bne _0807ECD0
- movs r0, 0x2
-_0807ECD0:
- strh r0, [r5, 0x32]
- movs r0, 0x1F
- ands r0, r6
- adds r0, 0xD2
- strh r0, [r5, 0x3A]
- strh r7, [r5, 0x38]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807ECE4: .4byte gSpriteCoordOffsetY
-_0807ECE8: .4byte gSpriteCoordOffsetX
- thumb_func_end sub_807EC40
-
- thumb_func_start sub_807ECEC
-sub_807ECEC: @ 807ECEC
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0807ED38 @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807ED3C @ =0x000006e2
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x12
- bls _0807ED32
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _0807ED40 @ =sub_807ED48
- str r0, [r3, 0x1C]
- ldr r1, _0807ED44 @ =gSpriteCoordOffsetY
- adds r0, r3, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r1]
- adds r0, r1
- movs r1, 0xFA
- subs r1, r0
- movs r2, 0
- strh r1, [r3, 0x22]
- movs r1, 0x22
- ldrsh r0, [r3, r1]
- lsls r0, 7
- strh r0, [r3, 0x2E]
- strh r2, [r4]
-_0807ED32:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807ED38: .4byte gUnknown_08396FC4
-_0807ED3C: .4byte 0x000006e2
-_0807ED40: .4byte sub_807ED48
-_0807ED44: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_807ECEC
-
- thumb_func_start sub_807ED48
-sub_807ED48: @ 807ED48
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 23
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x34]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- ldr r1, _0807EDC0 @ =gSineTable
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0807ED7A
- adds r0, 0x3F
-_0807ED7A:
- asrs r0, 6
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- adds r0, 0x28
- movs r5, 0
- ldrsb r5, [r0, r5]
- ldrh r0, [r4, 0x20]
- adds r0, r5
- ldr r1, _0807EDC4 @ =gSpriteCoordOffsetX
- ldrh r1, [r1]
- adds r3, r1, r0
- ldr r2, _0807EDC8 @ =0x000001ff
- adds r0, r2, 0
- ands r3, r0
- adds r2, r3, 0
- movs r0, 0x80
- lsls r0, 1
- ands r0, r2
- cmp r0, 0
- beq _0807EDAC
- ldr r3, _0807EDCC @ =0xffffff00
- adds r0, r3, 0
- orrs r2, r0
- lsls r0, r2, 16
- lsrs r3, r0, 16
-_0807EDAC:
- lsls r0, r3, 16
- asrs r0, 16
- movs r2, 0x3
- negs r2, r2
- cmp r0, r2
- bge _0807EDD0
- adds r1, r5
- movs r0, 0xF2
- subs r0, r1
- b _0807EDD8
- .align 2, 0
-_0807EDC0: .4byte gSineTable
-_0807EDC4: .4byte gSpriteCoordOffsetX
-_0807EDC8: .4byte 0x000001ff
-_0807EDCC: .4byte 0xffffff00
-_0807EDD0:
- cmp r0, 0xF2
- ble _0807EDDA
- adds r0, r1, r5
- subs r0, r2, r0
-_0807EDD8:
- strh r0, [r4, 0x20]
-_0807EDDA:
- adds r0, r4, 0
- adds r0, 0x29
- movs r3, 0
- ldrsb r3, [r0, r3]
- ldrh r0, [r4, 0x22]
- adds r0, r3
- ldr r1, _0807EE18 @ =gSpriteCoordOffsetY
- ldrh r1, [r1]
- adds r2, r1, r0
- movs r0, 0xFF
- ands r2, r0
- adds r0, r2, 0
- subs r0, 0xA4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bhi _0807EE1C
- adds r1, r3
- movs r0, 0xFA
- subs r0, r1
- movs r1, 0
- strh r0, [r4, 0x22]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- lsls r0, 7
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x38]
- movs r0, 0xDC
- strh r0, [r4, 0x3A]
- b _0807EE48
- .align 2, 0
-_0807EE18: .4byte gSpriteCoordOffsetY
-_0807EE1C:
- adds r0, r2, 0
- subs r0, 0xF3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bhi _0807EE48
- movs r1, 0
- movs r0, 0xA3
- strh r0, [r4, 0x22]
- lsls r0, 7
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x38]
- movs r0, 0xDC
- strh r0, [r4, 0x3A]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0807EE7C @ =sub_807ECEC
- str r0, [r4, 0x1C]
-_0807EE48:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x3A
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _0807EE74
- adds r0, r4, 0
- bl sub_807EC40
- movs r0, 0xFA
- strh r0, [r4, 0x22]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0807EE7C @ =sub_807ECEC
- str r0, [r4, 0x1C]
-_0807EE74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EE7C: .4byte sub_807ECEC
- thumb_func_end sub_807ED48
-
- thumb_func_start sub_807EE80
-sub_807EE80: @ 807EE80
- push {r4,r5,lr}
- ldr r0, _0807EED8 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807EEDC @ =0x000006cc
- adds r0, r1, r2
- movs r3, 0
- movs r2, 0
- strh r2, [r0]
- ldr r5, _0807EEE0 @ =0x000006d2
- adds r4, r1, r5
- strb r3, [r4]
- adds r5, 0x4
- adds r0, r1, r5
- strh r2, [r0]
- ldr r0, _0807EEE4 @ =0x000006db
- adds r2, r1, r0
- movs r0, 0x4
- strb r0, [r2]
- ldr r2, _0807EEE8 @ =0x000006dc
- adds r0, r1, r2
- strb r3, [r0]
- adds r5, 0x3
- adds r2, r1, r5
- movs r0, 0x10
- strb r0, [r2]
- ldr r0, _0807EEEC @ =0x000006c1
- adds r2, r1, r0
- movs r0, 0x3
- strb r0, [r2]
- subs r5, 0x17
- adds r2, r1, r5
- movs r0, 0x14
- strb r0, [r2]
- strb r3, [r4]
- ldr r0, _0807EEF0 @ =0x000006ed
- adds r1, r0
- strb r3, [r1]
- movs r0, 0x51
- bl sub_807DD5C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EED8: .4byte gUnknown_08396FC4
-_0807EEDC: .4byte 0x000006cc
-_0807EEE0: .4byte 0x000006d2
-_0807EEE4: .4byte 0x000006db
-_0807EEE8: .4byte 0x000006dc
-_0807EEEC: .4byte 0x000006c1
-_0807EEF0: .4byte 0x000006ed
- thumb_func_end sub_807EE80
-
- thumb_func_start sub_807EEF4
-sub_807EEF4: @ 807EEF4
- push {r4,lr}
- bl sub_807EE80
- ldr r0, _0807EF1C @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807EF20 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807EF14
- adds r4, r1, r2
-_0807EF0A:
- bl sub_807EFC0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807EF0A
-_0807EF14:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EF1C: .4byte gUnknown_08396FC4
-_0807EF20: .4byte 0x000006d2
- thumb_func_end sub_807EEF4
-
- thumb_func_start sub_807EF24
-sub_807EF24: @ 807EF24
- push {r4,r5,lr}
- ldr r0, _0807EF78 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807EF7C @ =0x000006cc
- adds r0, r1, r2
- movs r4, 0
- movs r2, 0
- strh r2, [r0]
- ldr r5, _0807EF80 @ =0x000006d2
- adds r3, r1, r5
- strb r4, [r3]
- adds r5, 0x4
- adds r0, r1, r5
- strh r2, [r0]
- ldr r0, _0807EF84 @ =0x000006db
- adds r2, r1, r0
- movs r0, 0x4
- strb r0, [r2]
- adds r5, 0x6
- adds r2, r1, r5
- movs r0, 0x1
- strb r0, [r2]
- ldr r0, _0807EF88 @ =0x000006d9
- adds r2, r1, r0
- movs r0, 0x18
- strb r0, [r2]
- subs r5, 0x1B
- adds r2, r1, r5
- movs r0, 0x3
- strb r0, [r2]
- ldr r0, _0807EF8C @ =0x000006c2
- adds r1, r0
- movs r0, 0x14
- strb r0, [r1]
- strb r4, [r3]
- movs r0, 0x53
- bl sub_807DD5C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EF78: .4byte gUnknown_08396FC4
-_0807EF7C: .4byte 0x000006cc
-_0807EF80: .4byte 0x000006d2
-_0807EF84: .4byte 0x000006db
-_0807EF88: .4byte 0x000006d9
-_0807EF8C: .4byte 0x000006c2
- thumb_func_end sub_807EF24
-
- thumb_func_start sub_807EF90
-sub_807EF90: @ 807EF90
- push {r4,lr}
- bl sub_807EF24
- ldr r0, _0807EFB8 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807EFBC @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807EFB0
- adds r4, r1, r2
-_0807EFA6:
- bl sub_807EFC0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807EFA6
-_0807EFB0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EFB8: .4byte gUnknown_08396FC4
-_0807EFBC: .4byte 0x000006d2
- thumb_func_end sub_807EF90
-
- thumb_func_start sub_807EFC0
-sub_807EFC0: @ 807EFC0
- push {r4,r5,lr}
- bl sub_807F434
- ldr r0, _0807EFE0 @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807EFE4 @ =0x000006cc
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xE
- bls _0807EFD6
- b _0807F336
-_0807EFD6:
- lsls r0, 2
- ldr r1, _0807EFE8 @ =_0807EFEC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807EFE0: .4byte gUnknown_08396FC4
-_0807EFE4: .4byte 0x000006cc
-_0807EFE8: .4byte _0807EFEC
- .align 2, 0
-_0807EFEC:
- .4byte _0807F028
- .4byte _0807F044
- .4byte _0807F068
- .4byte _0807F098
- .4byte _0807F0BC
- .4byte _0807F0EC
- .4byte _0807F11C
- .4byte _0807F148
- .4byte _0807F166
- .4byte _0807F1C4
- .4byte _0807F248
- .4byte _0807F270
- .4byte _0807F2A0
- .4byte _0807F2E4
- .4byte _0807F318
-_0807F028:
- bl sub_807E7A4
- ldr r0, _0807F03C @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807F040 @ =0x000006cc
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807F334
- .align 2, 0
-_0807F03C: .4byte gUnknown_08396FC4
-_0807F040: .4byte 0x000006cc
-_0807F044:
- bl sub_807E7B4
- lsls r0, 24
- cmp r0, 0
- beq _0807F050
- b _0807F336
-_0807F050:
- ldr r0, _0807F060 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r3, _0807F064 @ =0x000006cc
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807F334
- .align 2, 0
-_0807F060: .4byte gUnknown_08396FC4
-_0807F064: .4byte 0x000006cc
-_0807F068:
- bl sub_807E8E8
- lsls r0, 24
- cmp r0, 0
- beq _0807F074
- b _0807F336
-_0807F074:
- ldr r0, _0807F08C @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r0, _0807F090 @ =0x000006d2
- adds r2, r1, r0
- movs r0, 0x1
- strb r0, [r2]
- ldr r2, _0807F094 @ =0x000006cc
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807F334
- .align 2, 0
-_0807F08C: .4byte gUnknown_08396FC4
-_0807F090: .4byte 0x000006d2
-_0807F094: .4byte 0x000006cc
-_0807F098:
- ldr r0, _0807F0B0 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r3, _0807F0B4 @ =0x000006c6
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807F0A8
- b _0807F336
-_0807F0A8:
- ldr r0, _0807F0B8 @ =0x000006cc
- adds r1, r0
- movs r0, 0x6
- b _0807F334
- .align 2, 0
-_0807F0B0: .4byte gUnknown_08396FC4
-_0807F0B4: .4byte 0x000006c6
-_0807F0B8: .4byte 0x000006cc
-_0807F0BC:
- ldr r0, _0807F10C @ =gUnknown_08396FC4
- ldr r4, [r0]
- ldr r2, _0807F110 @ =0x000006ea
- adds r1, r4, r2
- movs r0, 0x1
- strb r0, [r1]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r5, 0xB4
- lsls r5, 1
- adds r1, r5, 0
- bl __umodsi3
- adds r0, r5
- ldr r3, _0807F114 @ =0x000006e6
- adds r1, r4, r3
- strh r0, [r1]
- ldr r0, _0807F118 @ =0x000006cc
- adds r4, r0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807F0EC:
- ldr r0, _0807F10C @ =gUnknown_08396FC4
- ldr r2, [r0]
- ldr r3, _0807F114 @ =0x000006e6
- adds r1, r2, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0807F102
- b _0807F336
-_0807F102:
- ldr r0, _0807F118 @ =0x000006cc
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807F334
- .align 2, 0
-_0807F10C: .4byte gUnknown_08396FC4
-_0807F110: .4byte 0x000006ea
-_0807F114: .4byte 0x000006e6
-_0807F118: .4byte 0x000006cc
-_0807F11C:
- ldr r0, _0807F13C @ =gUnknown_08396FC4
- ldr r4, [r0]
- ldr r1, _0807F140 @ =0x000006ea
- adds r0, r4, r1
- movs r5, 0x1
- strb r5, [r0]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ands r0, r5
- ldr r2, _0807F144 @ =0x000006eb
- adds r1, r4, r2
- strb r0, [r1]
- b _0807F1A4
- .align 2, 0
-_0807F13C: .4byte gUnknown_08396FC4
-_0807F140: .4byte 0x000006ea
-_0807F144: .4byte 0x000006eb
-_0807F148:
- bl Random
- ldr r1, _0807F1B0 @ =gUnknown_08396FC4
- ldr r2, [r1]
- movs r1, 0x1
- ands r1, r0
- adds r1, 0x1
- ldr r3, _0807F1B4 @ =0x000006ec
- adds r0, r2, r3
- strb r1, [r0]
- ldr r0, _0807F1B8 @ =0x000006cc
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_0807F166:
- movs r0, 0x13
- bl sub_807D5BC
- ldr r0, _0807F1B0 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807F1BC @ =0x000006eb
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807F18A
- ldr r3, _0807F1B4 @ =0x000006ec
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0807F18A
- movs r0, 0x14
- bl sub_807F3F8
-_0807F18A:
- bl Random
- ldr r1, _0807F1B0 @ =gUnknown_08396FC4
- ldr r4, [r1]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, 0x6
- ldr r2, _0807F1C0 @ =0x000006e6
- adds r1, r4, r2
- strh r0, [r1]
-_0807F1A4:
- ldr r3, _0807F1B8 @ =0x000006cc
- adds r4, r3
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807F336
- .align 2, 0
-_0807F1B0: .4byte gUnknown_08396FC4
-_0807F1B4: .4byte 0x000006ec
-_0807F1B8: .4byte 0x000006cc
-_0807F1BC: .4byte 0x000006eb
-_0807F1C0: .4byte 0x000006e6
-_0807F1C4:
- ldr r0, _0807F210 @ =gUnknown_08396FC4
- ldr r4, [r0]
- ldr r0, _0807F214 @ =0x000006e6
- adds r5, r4, r0
- ldrh r0, [r5]
- subs r0, 0x1
- strh r0, [r5]
- lsls r0, 16
- cmp r0, 0
- beq _0807F1DA
- b _0807F336
-_0807F1DA:
- movs r0, 0x3
- bl sub_807D5BC
- ldr r2, _0807F218 @ =0x000006ea
- adds r1, r4, r2
- movs r0, 0x1
- strb r0, [r1]
- ldr r3, _0807F21C @ =0x000006ec
- adds r1, r4, r3
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- beq _0807F224
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- adds r0, 0x3C
- strh r0, [r5]
- ldr r0, _0807F220 @ =0x000006cc
- adds r1, r4, r0
- movs r0, 0xA
- b _0807F334
- .align 2, 0
-_0807F210: .4byte gUnknown_08396FC4
-_0807F214: .4byte 0x000006e6
-_0807F218: .4byte 0x000006ea
-_0807F21C: .4byte 0x000006ec
-_0807F220: .4byte 0x000006cc
-_0807F224:
- ldr r1, _0807F234 @ =0x000006eb
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807F23C
- ldr r2, _0807F238 @ =0x000006cc
- adds r1, r4, r2
- b _0807F332
- .align 2, 0
-_0807F234: .4byte 0x000006eb
-_0807F238: .4byte 0x000006cc
-_0807F23C:
- ldr r3, _0807F244 @ =0x000006cc
- adds r1, r4, r3
- movs r0, 0xB
- b _0807F334
- .align 2, 0
-_0807F244: .4byte 0x000006cc
-_0807F248:
- ldr r0, _0807F264 @ =gUnknown_08396FC4
- ldr r2, [r0]
- ldr r0, _0807F268 @ =0x000006e6
- adds r1, r2, r0
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _0807F336
- ldr r3, _0807F26C @ =0x000006cc
- adds r1, r2, r3
- movs r0, 0x8
- b _0807F334
- .align 2, 0
-_0807F264: .4byte gUnknown_08396FC4
-_0807F268: .4byte 0x000006e6
-_0807F26C: .4byte 0x000006cc
-_0807F270:
- bl Random
- ldr r1, _0807F294 @ =gUnknown_08396FC4
- ldr r2, [r1]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- adds r0, 0x3C
- ldr r3, _0807F298 @ =0x000006e6
- adds r1, r2, r3
- strh r0, [r1]
- ldr r0, _0807F29C @ =0x000006cc
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- b _0807F336
- .align 2, 0
-_0807F294: .4byte gUnknown_08396FC4
-_0807F298: .4byte 0x000006e6
-_0807F29C: .4byte 0x000006cc
-_0807F2A0:
- ldr r0, _0807F2D8 @ =gUnknown_08396FC4
- ldr r5, [r0]
- ldr r1, _0807F2DC @ =0x000006e6
- adds r4, r5, r1
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- bne _0807F336
- movs r0, 0x64
- bl sub_807F3F8
- movs r0, 0x13
- bl sub_807D5BC
- bl Random
- movs r1, 0xF
- ands r1, r0
- adds r1, 0x1E
- strh r1, [r4]
- ldr r2, _0807F2E0 @ =0x000006cc
- adds r1, r5, r2
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807F334
- .align 2, 0
-_0807F2D8: .4byte gUnknown_08396FC4
-_0807F2DC: .4byte 0x000006e6
-_0807F2E0: .4byte 0x000006cc
-_0807F2E4:
- ldr r0, _0807F30C @ =gUnknown_08396FC4
- ldr r4, [r0]
- ldr r3, _0807F310 @ =0x000006e6
- adds r1, r4, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _0807F336
- movs r0, 0x13
- movs r1, 0x3
- movs r2, 0x5
- bl sub_807D5F0
- ldr r0, _0807F314 @ =0x000006cc
- adds r1, r4, r0
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807F334
- .align 2, 0
-_0807F30C: .4byte gUnknown_08396FC4
-_0807F310: .4byte 0x000006e6
-_0807F314: .4byte 0x000006cc
-_0807F318:
- ldr r0, _0807F33C @ =gUnknown_08396FC4
- ldr r2, [r0]
- ldr r1, _0807F340 @ =0x000006c6
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0807F336
- ldr r3, _0807F344 @ =0x000006ea
- adds r1, r2, r3
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _0807F348 @ =0x000006cc
- adds r1, r2, r0
-_0807F332:
- movs r0, 0x4
-_0807F334:
- strh r0, [r1]
-_0807F336:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F33C: .4byte gUnknown_08396FC4
-_0807F340: .4byte 0x000006c6
-_0807F344: .4byte 0x000006ea
-_0807F348: .4byte 0x000006cc
- thumb_func_end sub_807EFC0
-
- thumb_func_start sub_807F34C
-sub_807F34C: @ 807F34C
- push {r4-r6,lr}
- ldr r0, _0807F368 @ =gUnknown_08396FC4
- ldr r6, [r0]
- ldr r0, _0807F36C @ =0x000006ce
- adds r5, r6, r0
- ldrh r1, [r5]
- cmp r1, 0x1
- beq _0807F382
- cmp r1, 0x1
- bgt _0807F370
- cmp r1, 0
- beq _0807F376
- b _0807F3E8
- .align 2, 0
-_0807F368: .4byte gUnknown_08396FC4
-_0807F36C: .4byte 0x000006ce
-_0807F370:
- cmp r1, 0x2
- beq _0807F3CC
- b _0807F3E8
-_0807F376:
- ldr r2, _0807F3BC @ =0x000006ea
- adds r0, r6, r2
- strb r1, [r0]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_0807F382:
- bl sub_807EFC0
- ldr r0, _0807F3C0 @ =gUnknown_08396FC4
- ldr r2, [r0]
- ldr r1, _0807F3BC @ =0x000006ea
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807F3F0
- subs r1, 0x19
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0807F3E8
- cmp r0, 0x5
- beq _0807F3E8
- cmp r0, 0xD
- beq _0807F3E8
- ldr r0, _0807F3C4 @ =0x000006d9
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0807F3C8 @ =0x000006ce
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0807F3F0
- .align 2, 0
-_0807F3BC: .4byte 0x000006ea
-_0807F3C0: .4byte gUnknown_08396FC4
-_0807F3C4: .4byte 0x000006d9
-_0807F3C8: .4byte 0x000006ce
-_0807F3CC:
- bl sub_807E8E8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0807F3F0
- bl sub_807E974
- ldr r1, _0807F3EC @ =0x000006ed
- adds r0, r6, r1
- strb r4, [r0]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_0807F3E8:
- movs r0, 0
- b _0807F3F2
- .align 2, 0
-_0807F3EC: .4byte 0x000006ed
-_0807F3F0:
- movs r0, 0x1
-_0807F3F2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_807F34C
-
- thumb_func_start sub_807F3F8
-sub_807F3F8: @ 807F3F8
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _0807F42C @ =gUnknown_08396FC4
- ldr r4, [r0]
- ldr r0, _0807F430 @ =0x000006ed
- adds r5, r4, r0
- ldrb r0, [r5]
- cmp r0, 0
- bne _0807F426
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __umodsi3
- movs r2, 0xDD
- lsls r2, 3
- adds r1, r4, r2
- strh r0, [r1]
- movs r0, 0x1
- strb r0, [r5]
-_0807F426:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F42C: .4byte gUnknown_08396FC4
-_0807F430: .4byte 0x000006ed
- thumb_func_end sub_807F3F8
-
- thumb_func_start sub_807F434
-sub_807F434: @ 807F434
- push {r4,lr}
- ldr r0, _0807F46C @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807F470 @ =0x000006ed
- adds r0, r1, r2
- ldrb r4, [r0]
- cmp r4, 0x1
- bne _0807F494
- movs r0, 0xDD
- lsls r0, 3
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _0807F490
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _0807F494
- bl Random
- ands r4, r0
- cmp r4, 0
- beq _0807F474
- movs r0, 0x57
- bl PlaySE
- b _0807F47A
- .align 2, 0
-_0807F46C: .4byte gUnknown_08396FC4
-_0807F470: .4byte 0x000006ed
-_0807F474:
- movs r0, 0x58
- bl PlaySE
-_0807F47A:
- ldr r0, _0807F488 @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807F48C @ =0x000006ed
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _0807F494
- .align 2, 0
-_0807F488: .4byte gUnknown_08396FC4
-_0807F48C: .4byte 0x000006ed
-_0807F490:
- subs r0, 0x1
- strh r0, [r1]
-_0807F494:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_807F434
-
- thumb_func_start sub_807F49C
-sub_807F49C: @ 807F49C
- push {lr}
- ldr r0, _0807F4E8 @ =gUnknown_08396FC4
- ldr r3, [r0]
- ldr r0, _0807F4EC @ =0x000006cc
- adds r1, r3, r0
- movs r2, 0
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0807F4F0 @ =0x000006d2
- adds r0, r3, r1
- strb r2, [r0]
- subs r1, 0x11
- adds r0, r3, r1
- strb r2, [r0]
- ldr r2, _0807F4F4 @ =0x000006c2
- adds r1, r3, r2
- movs r0, 0x14
- strb r0, [r1]
- ldr r1, _0807F4F8 @ =0x000006fb
- adds r0, r3, r1
- ldrb r1, [r0]
- cmp r1, 0
- bne _0807F4E4
- adds r2, 0x2E
- adds r0, r3, r2
- strh r1, [r0]
- adds r2, 0x2
- adds r0, r3, r2
- strh r1, [r0]
- subs r2, 0x4
- adds r0, r3, r2
- strh r1, [r0]
- movs r0, 0
- movs r1, 0x10
- bl sub_807DB64
-_0807F4E4:
- pop {r0}
- bx r0
- .align 2, 0
-_0807F4E8: .4byte gUnknown_08396FC4
-_0807F4EC: .4byte 0x000006cc
-_0807F4F0: .4byte 0x000006d2
-_0807F4F4: .4byte 0x000006c2
-_0807F4F8: .4byte 0x000006fb
- thumb_func_end sub_807F49C
-
- thumb_func_start sub_807F4FC
-sub_807F4FC: @ 807F4FC
- push {r4,lr}
- bl sub_807F49C
- ldr r0, _0807F524 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807F528 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807F51C
- adds r4, r1, r2
-_0807F512:
- bl sub_807F52C
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807F512
-_0807F51C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F524: .4byte gUnknown_08396FC4
-_0807F528: .4byte 0x000006d2
- thumb_func_end sub_807F4FC
-
- thumb_func_start sub_807F52C
-sub_807F52C: @ 807F52C
- push {r4-r6,lr}
- ldr r0, _0807F578 @ =gUnknown_08396FC4
- ldr r6, [r0]
- ldr r0, _0807F57C @ =gSpriteCoordOffsetX
- ldr r1, _0807F580 @ =0x000006f2
- adds r2, r6, r1
- ldrh r0, [r0]
- ldrh r1, [r2]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- ldr r3, _0807F584 @ =0x000006ee
- adds r1, r6, r3
- strh r0, [r1]
- movs r0, 0xDE
- lsls r0, 3
- adds r1, r6, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bls _0807F566
- movs r0, 0
- strh r0, [r1]
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_0807F566:
- ldr r1, _0807F588 @ =0x000006cc
- adds r5, r6, r1
- ldrh r4, [r5]
- cmp r4, 0
- beq _0807F58C
- cmp r4, 0x1
- beq _0807F5CC
- b _0807F5E2
- .align 2, 0
-_0807F578: .4byte gUnknown_08396FC4
-_0807F57C: .4byte gSpriteCoordOffsetX
-_0807F580: .4byte 0x000006f2
-_0807F584: .4byte 0x000006ee
-_0807F588: .4byte 0x000006cc
-_0807F58C:
- bl sub_807F6E8
- movs r3, 0xDA
- lsls r3, 3
- adds r0, r6, r3
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _0807F5A8
- movs r0, 0xC
- movs r1, 0x8
- movs r2, 0x3
- bl sub_807DBA4
- b _0807F5B2
-_0807F5A8:
- movs r0, 0x4
- movs r1, 0x10
- movs r2, 0
- bl sub_807DBA4
-_0807F5B2:
- ldr r0, _0807F5C4 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r0, _0807F5C8 @ =0x000006cc
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0807F5E2
- .align 2, 0
-_0807F5C4: .4byte gUnknown_08396FC4
-_0807F5C8: .4byte 0x000006cc
-_0807F5CC:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807F5E2
- ldr r1, _0807F5E8 @ =0x000006d2
- adds r0, r6, r1
- strb r4, [r0]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_0807F5E2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F5E8: .4byte 0x000006d2
- thumb_func_end sub_807F52C
-
- thumb_func_start sub_807F5EC
-sub_807F5EC: @ 807F5EC
- push {r4,lr}
- ldr r0, _0807F63C @ =gUnknown_08396FC4
- ldr r2, [r0]
- ldr r0, _0807F640 @ =gSpriteCoordOffsetX
- ldr r1, _0807F644 @ =0x000006f2
- adds r3, r2, r1
- ldrh r0, [r0]
- ldrh r1, [r3]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- ldr r4, _0807F648 @ =0x000006ee
- adds r1, r2, r4
- strh r0, [r1]
- movs r0, 0xDE
- lsls r0, 3
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bls _0807F626
- movs r0, 0
- strh r0, [r1]
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_0807F626:
- ldr r1, _0807F64C @ =0x000006ce
- adds r4, r2, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807F662
- cmp r0, 0x1
- bgt _0807F650
- cmp r0, 0
- beq _0807F656
- b _0807F67A
- .align 2, 0
-_0807F63C: .4byte gUnknown_08396FC4
-_0807F640: .4byte gSpriteCoordOffsetX
-_0807F644: .4byte 0x000006f2
-_0807F648: .4byte 0x000006ee
-_0807F64C: .4byte 0x000006ce
-_0807F650:
- cmp r0, 0x2
- beq _0807F66E
- b _0807F67A
-_0807F656:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x3
- bl sub_807DBA4
- b _0807F672
-_0807F662:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807F67E
- b _0807F672
-_0807F66E:
- bl sub_807F7A4
-_0807F672:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807F67E
-_0807F67A:
- movs r0, 0
- b _0807F680
-_0807F67E:
- movs r0, 0x1
-_0807F680:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807F5EC
-
- thumb_func_start sub_807F688
-sub_807F688: @ 807F688
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0807F6D4 @ =gSpriteCoordOffsetY
- ldrb r0, [r0]
- strh r0, [r3, 0x26]
- ldr r0, _0807F6D8 @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807F6DC @ =0x000006ee
- adds r2, r0, r1
- ldrh r1, [r2]
- adds r1, 0x20
- movs r4, 0x2E
- ldrsh r0, [r3, r4]
- lsls r0, 6
- adds r1, r0
- strh r1, [r3, 0x20]
- lsls r1, 16
- ldr r0, _0807F6E0 @ =0x010f0000
- cmp r1, r0
- ble _0807F6CC
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r2]
- adds r1, r2
- movs r4, 0x2E
- ldrsh r2, [r3, r4]
- movs r0, 0x4
- subs r0, r2
- lsls r0, 6
- subs r1, r0
- ldr r0, _0807F6E4 @ =0x000001ff
- ands r1, r0
- strh r1, [r3, 0x20]
-_0807F6CC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F6D4: .4byte gSpriteCoordOffsetY
-_0807F6D8: .4byte gUnknown_08396FC4
-_0807F6DC: .4byte 0x000006ee
-_0807F6E0: .4byte 0x010f0000
-_0807F6E4: .4byte 0x000001ff
- thumb_func_end sub_807F688
-
- thumb_func_start sub_807F6E8
-sub_807F6E8: @ 807F6E8
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _0807F75C @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807F760 @ =0x000006fb
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807F792
- ldr r0, _0807F764 @ =gUnknown_0839ABA8
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- movs r5, 0
-_0807F70C:
- ldr r0, _0807F768 @ =gSpriteTemplate_839AB90
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0807F770
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0807F76C @ =gSprites
- adds r4, r0
- adds r0, r5, 0
- movs r1, 0x5
- bl __umodsi3
- strh r0, [r4, 0x2E]
- lsls r0, 16
- lsrs r0, 10
- adds r0, 0x20
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 10
- adds r0, 0x20
- strh r0, [r4, 0x22]
- ldr r2, _0807F75C @ =gUnknown_08396FC4
- ldr r0, [r2]
- lsls r1, r5, 2
- adds r0, 0xA0
- adds r0, r1
- str r4, [r0]
- b _0807F77E
- .align 2, 0
-_0807F75C: .4byte gUnknown_08396FC4
-_0807F760: .4byte 0x000006fb
-_0807F764: .4byte gUnknown_0839ABA8
-_0807F768: .4byte gSpriteTemplate_839AB90
-_0807F76C: .4byte gSprites
-_0807F770:
- ldr r2, _0807F79C @ =gUnknown_08396FC4
- ldr r1, [r2]
- lsls r0, r5, 2
- adds r1, 0xA0
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_0807F77E:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x13
- bls _0807F70C
- ldr r0, [r2]
- ldr r1, _0807F7A0 @ =0x000006fb
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0807F792:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F79C: .4byte gUnknown_08396FC4
-_0807F7A0: .4byte 0x000006fb
- thumb_func_end sub_807F6E8
-
- thumb_func_start sub_807F7A4
-sub_807F7A4: @ 807F7A4
- push {r4,r5,lr}
- ldr r0, _0807F7EC @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807F7F0 @ =0x000006fb
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807F7E4
- movs r4, 0
- adds r5, r1, 0
- adds r5, 0xA0
-_0807F7BA:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807F7C8
- bl DestroySprite
-_0807F7C8:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _0807F7BA
- ldr r0, _0807F7F4 @ =0x00001201
- bl FreeSpriteTilesByTag
- ldr r0, _0807F7EC @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807F7F0 @ =0x000006fb
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0807F7E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F7EC: .4byte gUnknown_08396FC4
-_0807F7F0: .4byte 0x000006fb
-_0807F7F4: .4byte 0x00001201
- thumb_func_end sub_807F7A4
-
- thumb_func_start sub_807F7F8
-sub_807F7F8: @ 807F7F8
- push {lr}
- ldr r0, _0807F844 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r0, _0807F848 @ =0x000006cc
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0
- strh r0, [r2]
- ldr r2, _0807F84C @ =0x000006d2
- adds r0, r1, r2
- strb r3, [r0]
- subs r2, 0x11
- adds r0, r1, r2
- strb r3, [r0]
- ldr r3, _0807F850 @ =0x000006c2
- adds r0, r1, r3
- movs r2, 0x14
- strb r2, [r0]
- adds r3, 0x3C
- adds r0, r1, r3
- strh r2, [r0]
- movs r0, 0xE0
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _0807F840
- movs r0, 0
- movs r1, 0x10
- bl sub_807DB64
- ldr r1, _0807F854 @ =REG_BLDALPHA
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
-_0807F840:
- pop {r0}
- bx r0
- .align 2, 0
-_0807F844: .4byte gUnknown_08396FC4
-_0807F848: .4byte 0x000006cc
-_0807F84C: .4byte 0x000006d2
-_0807F850: .4byte 0x000006c2
-_0807F854: .4byte REG_BLDALPHA
- thumb_func_end sub_807F7F8
-
- thumb_func_start sub_807F858
-sub_807F858: @ 807F858
- push {r4,lr}
- bl sub_807F7F8
- ldr r0, _0807F880 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807F884 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807F878
- adds r4, r1, r2
-_0807F86E:
- bl sub_807F888
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807F86E
-_0807F878:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F880: .4byte gUnknown_08396FC4
-_0807F884: .4byte 0x000006d2
- thumb_func_end sub_807F858
-
- thumb_func_start sub_807F888
-sub_807F888: @ 807F888
- push {r4,r5,lr}
- ldr r2, _0807F8CC @ =gUnknown_08396FC4
- ldr r1, [r2]
- ldr r0, _0807F8D0 @ =gSpriteCoordOffsetX
- ldrh r0, [r0]
- ldr r3, _0807F8D4 @ =0x000001ff
- ands r3, r0
- ldr r0, _0807F8D8 @ =0x000006fc
- adds r1, r0
- strh r3, [r1]
- cmp r3, 0xEF
- bls _0807F8B4
- adds r4, r1, 0
- adds r1, r3, 0
-_0807F8A4:
- adds r3, r1, 0
- subs r3, 0xF0
- adds r1, r3, 0
- lsls r0, r3, 16
- lsrs r0, 16
- cmp r0, 0xEF
- bhi _0807F8A4
- strh r3, [r4]
-_0807F8B4:
- ldr r5, [r2]
- ldr r1, _0807F8DC @ =0x000006cc
- adds r4, r5, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807F8EC
- cmp r0, 0x1
- bgt _0807F8E0
- cmp r0, 0
- beq _0807F8E6
- b _0807F928
- .align 2, 0
-_0807F8CC: .4byte gUnknown_08396FC4
-_0807F8D0: .4byte gSpriteCoordOffsetX
-_0807F8D4: .4byte 0x000001ff
-_0807F8D8: .4byte 0x000006fc
-_0807F8DC: .4byte 0x000006cc
-_0807F8E0:
- cmp r0, 0x2
- beq _0807F908
- b _0807F928
-_0807F8E6:
- bl sub_807F99C
- b _0807F91A
-_0807F8EC:
- movs r1, 0xE0
- lsls r1, 3
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807F8FC
- bl sub_807F9AC
-_0807F8FC:
- movs r0, 0x10
- movs r1, 0
- movs r2, 0x1
- bl sub_807DBA4
- b _0807F91A
-_0807F908:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807F92C
- ldr r0, _0807F924 @ =0x000006d2
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_0807F91A:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807F92C
- .align 2, 0
-_0807F924: .4byte 0x000006d2
-_0807F928:
- bl sub_807DBE8
-_0807F92C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_807F888
-
- thumb_func_start sub_807F934
-sub_807F934: @ 807F934
- push {r4,lr}
- ldr r0, _0807F950 @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807F954 @ =0x000006ce
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807F96A
- cmp r0, 0x1
- bgt _0807F958
- cmp r0, 0
- beq _0807F95E
- b _0807F98C
- .align 2, 0
-_0807F950: .4byte gUnknown_08396FC4
-_0807F954: .4byte 0x000006ce
-_0807F958:
- cmp r0, 0x2
- beq _0807F980
- b _0807F98C
-_0807F95E:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1
- bl sub_807DBA4
- b _0807F978
-_0807F96A:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807F994
- bl sub_807FA54
-_0807F978:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807F994
-_0807F980:
- ldr r1, _0807F990 @ =REG_BLDALPHA
- movs r0, 0
- strh r0, [r1]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807F98C:
- movs r0, 0
- b _0807F996
- .align 2, 0
-_0807F990: .4byte REG_BLDALPHA
-_0807F994:
- movs r0, 0x1
-_0807F996:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807F934
-
- thumb_func_start sub_807F99C
-sub_807F99C: @ 807F99C
- push {lr}
- ldr r0, _0807F9A8 @ =gUnknown_0839ABB0
- bl LoadSpriteSheet
- pop {r0}
- bx r0
- .align 2, 0
-_0807F9A8: .4byte gUnknown_0839ABB0
- thumb_func_end sub_807F99C
-
- thumb_func_start sub_807F9AC
-sub_807F9AC: @ 807F9AC
- push {r4,r5,lr}
- ldr r0, _0807FA18 @ =gUnknown_08396FC4
- ldr r0, [r0]
- movs r1, 0xE0
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807FA48
- movs r5, 0
-_0807F9C0:
- ldr r0, _0807FA1C @ =gSpriteTemplate_839ABD0
- movs r1, 0
- movs r2, 0
- movs r3, 0x4E
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0807FA24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0807FA20 @ =gSprites
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r0, r5, 0
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- adds r0, r5, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x34]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 6
- adds r0, 0x20
- strh r0, [r4, 0x2E]
- ldr r2, _0807FA18 @ =gUnknown_08396FC4
- ldr r0, [r2]
- lsls r1, r5, 2
- adds r0, 0xF0
- adds r0, r1
- str r4, [r0]
- b _0807FA32
- .align 2, 0
-_0807FA18: .4byte gUnknown_08396FC4
-_0807FA1C: .4byte gSpriteTemplate_839ABD0
-_0807FA20: .4byte gSprites
-_0807FA24:
- ldr r2, _0807FA50 @ =gUnknown_08396FC4
- ldr r1, [r2]
- lsls r0, r5, 2
- adds r1, 0xF0
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_0807FA32:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _0807F9C0
- ldr r0, [r2]
- movs r1, 0xE0
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0807FA48:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FA50: .4byte gUnknown_08396FC4
- thumb_func_end sub_807F9AC
-
- thumb_func_start sub_807FA54
-sub_807FA54: @ 807FA54
- push {r4,r5,lr}
- ldr r0, _0807FAA0 @ =gUnknown_08396FC4
- ldr r1, [r0]
- movs r2, 0xE0
- lsls r2, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807FA98
- movs r4, 0
- adds r5, r1, 0
- adds r5, 0xF0
-_0807FA6C:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807FA7A
- bl DestroySprite
-_0807FA7A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _0807FA6C
- ldr r0, _0807FAA4 @ =0x00001202
- bl FreeSpriteTilesByTag
- ldr r0, _0807FAA0 @ =gUnknown_08396FC4
- ldr r0, [r0]
- movs r1, 0xE0
- lsls r1, 3
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0807FA98:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FAA0: .4byte gUnknown_08396FC4
-_0807FAA4: .4byte 0x00001202
- thumb_func_end sub_807FA54
-
- thumb_func_start sub_807FAA8
-sub_807FAA8: @ 807FAA8
- push {r4,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _0807FAC4
- movs r0, 0
- strh r0, [r3, 0x30]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
-_0807FAC4:
- ldr r1, _0807FB10 @ =gSpriteCoordOffsetY
- ldrh r0, [r3, 0x2E]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r3, 0x22]
- ldr r0, _0807FB14 @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807FB18 @ =0x000006fc
- adds r2, r0, r1
- ldrh r1, [r2]
- adds r1, 0x20
- movs r4, 0x32
- ldrsh r0, [r3, r4]
- lsls r0, 6
- adds r1, r0
- strh r1, [r3, 0x20]
- lsls r1, 16
- ldr r0, _0807FB1C @ =0x010f0000
- cmp r1, r0
- ble _0807FB08
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r2]
- adds r1, r2
- movs r4, 0x32
- ldrsh r2, [r3, r4]
- movs r0, 0x4
- subs r0, r2
- lsls r0, 6
- subs r1, r0
- ldr r0, _0807FB20 @ =0x000001ff
- ands r1, r0
- strh r1, [r3, 0x20]
-_0807FB08:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FB10: .4byte gSpriteCoordOffsetY
-_0807FB14: .4byte gUnknown_08396FC4
-_0807FB18: .4byte 0x000006fc
-_0807FB1C: .4byte 0x010f0000
-_0807FB20: .4byte 0x000001ff
- thumb_func_end sub_807FAA8
-
- thumb_func_start sub_807FB24
-sub_807FB24: @ 807FB24
- push {r4,lr}
- ldr r0, _0807FB94 @ =gUnknown_08396FC4
- ldr r3, [r0]
- ldr r1, _0807FB98 @ =0x000006cc
- adds r0, r3, r1
- movs r1, 0
- movs r2, 0
- strh r2, [r0]
- ldr r4, _0807FB9C @ =0x000006d2
- adds r0, r3, r4
- strb r1, [r0]
- subs r4, 0x11
- adds r0, r3, r4
- strb r1, [r0]
- ldr r0, _0807FBA0 @ =0x000006c2
- adds r1, r3, r0
- movs r0, 0x14
- strb r0, [r1]
- movs r1, 0xDE
- lsls r1, 3
- adds r0, r3, r1
- strh r2, [r0]
- adds r4, 0x31
- adds r1, r3, r4
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, _0807FBA4 @ =0x00000724
- adds r0, r3, r1
- ldrb r2, [r0]
- cmp r2, 0
- bne _0807FB8E
- adds r4, 0x2A
- adds r0, r3, r4
- strh r2, [r0]
- subs r1, 0x6
- adds r0, r3, r1
- strh r2, [r0]
- adds r4, 0x4
- adds r0, r3, r4
- strh r2, [r0]
- adds r1, 0x4
- adds r0, r3, r1
- strh r2, [r0]
- subs r4, 0x8
- adds r0, r3, r4
- strh r2, [r0]
- subs r1, 0x8
- adds r0, r3, r1
- strh r2, [r0]
- movs r0, 0
- movs r1, 0x10
- bl sub_807DB64
-_0807FB8E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FB94: .4byte gUnknown_08396FC4
-_0807FB98: .4byte 0x000006cc
-_0807FB9C: .4byte 0x000006d2
-_0807FBA0: .4byte 0x000006c2
-_0807FBA4: .4byte 0x00000724
- thumb_func_end sub_807FB24
-
- thumb_func_start sub_807FBA8
-sub_807FBA8: @ 807FBA8
- push {r4,lr}
- bl sub_807FB24
- ldr r0, _0807FBD0 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807FBD4 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807FBC8
- adds r4, r1, r2
-_0807FBBE:
- bl sub_807FBD8
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807FBBE
-_0807FBC8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FBD0: .4byte gUnknown_08396FC4
-_0807FBD4: .4byte 0x000006d2
- thumb_func_end sub_807FBA8
-
- thumb_func_start sub_807FBD8
-sub_807FBD8: @ 807FBD8
- push {r4,r5,lr}
- bl sub_807FC9C
- ldr r0, _0807FBF8 @ =gUnknown_08396FC4
- ldr r5, [r0]
- ldr r0, _0807FBFC @ =0x000006cc
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807FC0C
- cmp r0, 0x1
- bgt _0807FC00
- cmp r0, 0
- beq _0807FC06
- b _0807FC30
- .align 2, 0
-_0807FBF8: .4byte gUnknown_08396FC4
-_0807FBFC: .4byte 0x000006cc
-_0807FC00:
- cmp r0, 0x2
- beq _0807FC18
- b _0807FC30
-_0807FC06:
- bl sub_807FD30
- b _0807FC2A
-_0807FC0C:
- movs r0, 0xC
- movs r1, 0x8
- movs r2, 0x8
- bl sub_807DBA4
- b _0807FC2A
-_0807FC18:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807FC30
- ldr r0, _0807FC38 @ =0x000006d2
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_0807FC2A:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807FC30:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FC38: .4byte 0x000006d2
- thumb_func_end sub_807FBD8
-
- thumb_func_start sub_807FC3C
-sub_807FC3C: @ 807FC3C
- push {r4,lr}
- bl sub_807FC9C
- ldr r0, _0807FC5C @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807FC60 @ =0x000006ce
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807FC76
- cmp r0, 0x1
- bgt _0807FC64
- cmp r0, 0
- beq _0807FC6A
- b _0807FC8E
- .align 2, 0
-_0807FC5C: .4byte gUnknown_08396FC4
-_0807FC60: .4byte 0x000006ce
-_0807FC64:
- cmp r0, 0x2
- beq _0807FC82
- b _0807FC8E
-_0807FC6A:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1
- bl sub_807DBA4
- b _0807FC86
-_0807FC76:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807FC92
- b _0807FC86
-_0807FC82:
- bl sub_807FDE8
-_0807FC86:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807FC92
-_0807FC8E:
- movs r0, 0
- b _0807FC94
-_0807FC92:
- movs r0, 0x1
-_0807FC94:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807FC3C
-
- thumb_func_start sub_807FC9C
-sub_807FC9C: @ 807FC9C
- push {r4,r5,lr}
- ldr r0, _0807FD14 @ =gUnknown_08396FC4
- ldr r3, [r0]
- ldr r0, _0807FD18 @ =0x0000071c
- adds r2, r3, r0
- ldrh r0, [r2]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r2]
- ldr r1, _0807FD1C @ =0x0000ffff
- adds r4, r1, 0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bls _0807FCC8
- movs r0, 0xE4
- lsls r0, 3
- adds r1, r3, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- strh r5, [r2]
-_0807FCC8:
- ldr r1, _0807FD20 @ =0x0000071e
- adds r2, r3, r1
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- ands r0, r4
- cmp r0, 0x4
- bls _0807FCE4
- ldr r0, _0807FD24 @ =0x00000722
- adds r1, r3, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- strh r5, [r2]
-_0807FCE4:
- ldr r0, _0807FD28 @ =gSpriteCoordOffsetX
- movs r2, 0xE4
- lsls r2, 3
- adds r1, r3, r2
- ldrh r0, [r0]
- ldrh r1, [r1]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- subs r2, 0x8
- adds r1, r3, r2
- strh r0, [r1]
- ldr r1, _0807FD2C @ =gSpriteCoordOffsetY
- adds r2, 0xA
- adds r0, r3, r2
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- subs r2, 0x8
- adds r1, r3, r2
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FD14: .4byte gUnknown_08396FC4
-_0807FD18: .4byte 0x0000071c
-_0807FD1C: .4byte 0x0000ffff
-_0807FD20: .4byte 0x0000071e
-_0807FD24: .4byte 0x00000722
-_0807FD28: .4byte gSpriteCoordOffsetX
-_0807FD2C: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_807FC9C
-
- thumb_func_start sub_807FD30
-sub_807FD30: @ 807FD30
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r0, _0807FD9C @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807FDA0 @ =0x00000724
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807FDD6
- ldr r0, _0807FDA4 @ =gUnknown_0839ABE8
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- movs r6, 0
-_0807FD54:
- adds r0, r6, 0
- movs r1, 0x5
- bl __udivsi3
- adds r5, r0, 0
- lsls r2, r5, 22
- asrs r2, 16
- ldr r0, _0807FDA8 @ =gSpriteTemplate_839AC04
- movs r1, 0
- movs r3, 0xFF
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0807FDB0
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0807FDAC @ =gSprites
- adds r4, r0
- adds r0, r6, 0
- movs r1, 0x5
- bl __umodsi3
- strh r0, [r4, 0x2E]
- strh r5, [r4, 0x30]
- ldr r2, _0807FD9C @ =gUnknown_08396FC4
- ldr r0, [r2]
- lsls r1, r6, 2
- movs r3, 0xA0
- lsls r3, 1
- adds r0, r3
- adds r0, r1
- str r4, [r0]
- b _0807FDC2
- .align 2, 0
-_0807FD9C: .4byte gUnknown_08396FC4
-_0807FDA0: .4byte 0x00000724
-_0807FDA4: .4byte gUnknown_0839ABE8
-_0807FDA8: .4byte gSpriteTemplate_839AC04
-_0807FDAC: .4byte gSprites
-_0807FDB0:
- ldr r2, _0807FDE0 @ =gUnknown_08396FC4
- ldr r1, [r2]
- lsls r0, r6, 2
- movs r3, 0xA0
- lsls r3, 1
- adds r1, r3
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_0807FDC2:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x13
- bls _0807FD54
- ldr r0, [r2]
- ldr r1, _0807FDE4 @ =0x00000724
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0807FDD6:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FDE0: .4byte gUnknown_08396FC4
-_0807FDE4: .4byte 0x00000724
- thumb_func_end sub_807FD30
-
- thumb_func_start sub_807FDE8
-sub_807FDE8: @ 807FDE8
- push {r4,r5,lr}
- ldr r0, _0807FE30 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807FE34 @ =0x00000724
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807FE2A
- movs r4, 0
- movs r0, 0xA0
- lsls r0, 1
- adds r5, r1, r0
-_0807FE00:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807FE0E
- bl DestroySprite
-_0807FE0E:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _0807FE00
- ldr r0, _0807FE38 @ =0x00001203
- bl FreeSpriteTilesByTag
- ldr r0, _0807FE30 @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807FE34 @ =0x00000724
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0807FE2A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FE30: .4byte gUnknown_08396FC4
-_0807FE34: .4byte 0x00000724
-_0807FE38: .4byte 0x00001203
- thumb_func_end sub_807FDE8
-
- thumb_func_start sub_807FE3C
-sub_807FE3C: @ 807FE3C
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0807FE8C @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807FE90 @ =0x0000071a
- adds r0, r1, r2
- ldrh r0, [r0]
- strh r0, [r3, 0x26]
- movs r4, 0xE3
- lsls r4, 3
- adds r2, r1, r4
- ldrh r1, [r2]
- adds r1, 0x20
- movs r4, 0x2E
- ldrsh r0, [r3, r4]
- lsls r0, 6
- adds r1, r0
- strh r1, [r3, 0x20]
- lsls r1, 16
- ldr r0, _0807FE94 @ =0x010f0000
- cmp r1, r0
- ble _0807FE84
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r2]
- adds r1, r2
- movs r4, 0x2E
- ldrsh r2, [r3, r4]
- movs r0, 0x4
- subs r0, r2
- lsls r0, 6
- subs r1, r0
- ldr r0, _0807FE98 @ =0x000001ff
- ands r1, r0
- strh r1, [r3, 0x20]
-_0807FE84:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FE8C: .4byte gUnknown_08396FC4
-_0807FE90: .4byte 0x0000071a
-_0807FE94: .4byte 0x010f0000
-_0807FE98: .4byte 0x000001ff
- thumb_func_end sub_807FE3C
-
- thumb_func_start sub_807FE9C
-sub_807FE9C: @ 807FE9C
- push {r4,lr}
- ldr r0, _0807FF00 @ =gUnknown_08396FC4
- ldr r3, [r0]
- ldr r0, _0807FF04 @ =0x000006cc
- adds r1, r3, r0
- movs r2, 0
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0807FF08 @ =0x000006d2
- adds r0, r3, r1
- strb r2, [r0]
- ldr r4, _0807FF0C @ =0x000006c1
- adds r0, r3, r4
- strb r2, [r0]
- ldr r0, _0807FF10 @ =0x000006c2
- adds r1, r3, r0
- movs r0, 0x14
- strb r0, [r1]
- ldr r1, _0807FF14 @ =0x00000716
- adds r0, r3, r1
- ldrb r2, [r0]
- cmp r2, 0
- bne _0807FEF8
- adds r4, 0x43
- adds r1, r3, r4
- adds r4, 0x4
- adds r0, r3, r4
- str r2, [r0]
- str r2, [r1]
- ldr r0, _0807FF18 @ =0x00000712
- adds r1, r3, r0
- movs r0, 0x8
- strh r0, [r1]
- adds r4, 0xC
- adds r0, r3, r4
- strh r2, [r0]
- ldrh r2, [r1]
- cmp r2, 0x5F
- bls _0807FEF0
- movs r0, 0x80
- subs r0, r2
- strh r0, [r1]
-_0807FEF0:
- movs r0, 0
- movs r1, 0x10
- bl sub_807DB64
-_0807FEF8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FF00: .4byte gUnknown_08396FC4
-_0807FF04: .4byte 0x000006cc
-_0807FF08: .4byte 0x000006d2
-_0807FF0C: .4byte 0x000006c1
-_0807FF10: .4byte 0x000006c2
-_0807FF14: .4byte 0x00000716
-_0807FF18: .4byte 0x00000712
- thumb_func_end sub_807FE9C
-
- thumb_func_start sub_807FF1C
-sub_807FF1C: @ 807FF1C
- push {r4,lr}
- bl sub_807FE9C
- ldr r0, _0807FF44 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0807FF48 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807FF3C
- adds r4, r1, r2
-_0807FF32:
- bl sub_807FF4C
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807FF32
-_0807FF3C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FF44: .4byte gUnknown_08396FC4
-_0807FF48: .4byte 0x000006d2
- thumb_func_end sub_807FF1C
-
- thumb_func_start sub_807FF4C
-sub_807FF4C: @ 807FF4C
- push {r4,r5,lr}
- bl sub_8080064
- bl sub_808002C
- ldr r0, _0807FF7C @ =gUnknown_08396FC4
- ldr r5, [r0]
- ldr r0, _0807FF80 @ =0x00000712
- adds r1, r5, r0
- ldrh r0, [r1]
- cmp r0, 0x5F
- bls _0807FF68
- movs r0, 0x20
- strh r0, [r1]
-_0807FF68:
- ldr r0, _0807FF84 @ =0x000006cc
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807FF98
- cmp r0, 0x1
- bgt _0807FF88
- cmp r0, 0
- beq _0807FF8E
- b _0807FFBC
- .align 2, 0
-_0807FF7C: .4byte gUnknown_08396FC4
-_0807FF80: .4byte 0x00000712
-_0807FF84: .4byte 0x000006cc
-_0807FF88:
- cmp r0, 0x2
- beq _0807FFA4
- b _0807FFBC
-_0807FF8E:
- bl sub_8080178
- bl sub_8080238
- b _0807FFB6
-_0807FF98:
- movs r0, 0x10
- movs r1, 0
- movs r2, 0
- bl sub_807DBA4
- b _0807FFB6
-_0807FFA4:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807FFBC
- ldr r0, _0807FFC4 @ =0x000006d2
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_0807FFB6:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807FFBC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FFC4: .4byte 0x000006d2
- thumb_func_end sub_807FF4C
-
- thumb_func_start sub_807FFC8
-sub_807FFC8: @ 807FFC8
- push {r4,lr}
- bl sub_8080064
- bl sub_808002C
- ldr r0, _0807FFEC @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0807FFF0 @ =0x000006ce
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _08080006
- cmp r0, 0x1
- bgt _0807FFF4
- cmp r0, 0
- beq _0807FFFA
- b _0808001E
- .align 2, 0
-_0807FFEC: .4byte gUnknown_08396FC4
-_0807FFF0: .4byte 0x000006ce
-_0807FFF4:
- cmp r0, 0x2
- beq _08080012
- b _0808001E
-_0807FFFA:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0
- bl sub_807DBA4
- b _08080016
-_08080006:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _08080022
- b _08080016
-_08080012:
- bl sub_80800E4
-_08080016:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _08080022
-_0808001E:
- movs r0, 0
- b _08080024
-_08080022:
- movs r0, 0x1
-_08080024:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807FFC8
-
- thumb_func_start sub_808002C
-sub_808002C: @ 808002C
- push {lr}
- ldr r0, _08080058 @ =gUnknown_08396FC4
- ldr r2, [r0]
- ldr r0, _0808005C @ =0x00000714
- adds r3, r2, r0
- ldrh r0, [r3]
- adds r1, r0, 0x1
- strh r1, [r3]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _08080052
- ldr r1, _08080060 @ =0x00000712
- adds r0, r2, r1
- ldrh r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strh r1, [r0]
- strh r2, [r3]
-_08080052:
- pop {r0}
- bx r0
- .align 2, 0
-_08080058: .4byte gUnknown_08396FC4
-_0808005C: .4byte 0x00000714
-_08080060: .4byte 0x00000712
- thumb_func_end sub_808002C
-
- thumb_func_start sub_8080064
-sub_8080064: @ 8080064
- push {r4-r6,lr}
- ldr r0, _080800C8 @ =gUnknown_08396FC4
- ldr r2, [r0]
- ldr r0, _080800CC @ =0x00000704
- adds r4, r2, r0
- ldr r6, _080800D0 @ =gSineTable
- ldr r1, _080800D4 @ =0x00000712
- adds r5, r2, r1
- ldrh r0, [r5]
- lsls r0, 1
- adds r0, r6
- movs r3, 0
- ldrsh r1, [r0, r3]
- lsls r1, 2
- ldr r0, [r4]
- subs r0, r1
- str r0, [r4]
- movs r0, 0xE1
- lsls r0, 3
- adds r3, r2, r0
- ldrh r0, [r5]
- lsls r0, 1
- adds r0, r6
- movs r5, 0
- ldrsh r1, [r0, r5]
- ldr r0, [r3]
- subs r0, r1
- str r0, [r3]
- ldr r1, _080800D8 @ =gSpriteCoordOffsetX
- ldr r0, [r4]
- lsrs r0, 8
- ldrh r1, [r1]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- ldr r4, _080800DC @ =0x0000070e
- adds r1, r2, r4
- strh r0, [r1]
- ldr r1, _080800E0 @ =gSpriteCoordOffsetY
- ldr r0, [r3]
- lsrs r0, 8
- ldrh r1, [r1]
- adds r0, r1
- movs r5, 0xE2
- lsls r5, 3
- adds r2, r5
- strh r0, [r2]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080800C8: .4byte gUnknown_08396FC4
-_080800CC: .4byte 0x00000704
-_080800D0: .4byte gSineTable
-_080800D4: .4byte 0x00000712
-_080800D8: .4byte gSpriteCoordOffsetX
-_080800DC: .4byte 0x0000070e
-_080800E0: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_8080064
-
- thumb_func_start sub_80800E4
-sub_80800E4: @ 80800E4
- push {r4,r5,lr}
- ldr r0, _08080168 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _0808016C @ =0x00000716
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08080126
- movs r4, 0
- movs r0, 0xC8
- lsls r0, 1
- adds r5, r1, r0
-_080800FC:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0808010A
- bl DestroySprite
-_0808010A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _080800FC
- ldr r0, _08080168 @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _0808016C @ =0x00000716
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, _08080170 @ =0x00001204
- bl FreeSpriteTilesByTag
-_08080126:
- ldr r0, _08080168 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _08080174 @ =0x00000717
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08080160
- movs r4, 0
- movs r0, 0xF0
- lsls r0, 1
- adds r5, r1, r0
-_0808013C:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0808014A
- bl DestroySprite
-_0808014A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _0808013C
- ldr r0, _08080168 @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _08080174 @ =0x00000717
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_08080160:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08080168: .4byte gUnknown_08396FC4
-_0808016C: .4byte 0x00000716
-_08080170: .4byte 0x00001204
-_08080174: .4byte 0x00000717
- thumb_func_end sub_80800E4
-
- thumb_func_start sub_8080178
-sub_8080178: @ 8080178
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _080801E8 @ =gUnknown_08396FC4
- ldr r0, [r0]
- ldr r1, _080801EC @ =0x00000716
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08080226
- ldr r0, _080801F0 @ =gUnknown_0839AC54
- bl LoadSpriteSheet
- ldr r0, _080801F4 @ =gUnknown_08397128
- bl sub_807D8C0
- movs r7, 0
-_08080198:
- adds r0, r7, 0
- movs r1, 0x5
- bl __udivsi3
- adds r6, r0, 0
- lsls r2, r6, 22
- asrs r2, 16
- ldr r0, _080801F8 @ =gSpriteTemplate_839AC3C
- movs r1, 0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08080200
- ldr r2, _080801E8 @ =gUnknown_08396FC4
- ldr r5, [r2]
- lsls r0, r7, 2
- movs r3, 0xC8
- lsls r3, 1
- adds r5, r3
- adds r5, r0
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- ldr r0, _080801FC @ =gSprites
- adds r4, r0
- str r4, [r5]
- adds r0, r7, 0
- movs r1, 0x5
- str r2, [sp]
- bl __umodsi3
- strh r0, [r4, 0x2E]
- ldr r0, [r5]
- strh r6, [r0, 0x30]
- ldr r2, [sp]
- b _08080212
- .align 2, 0
-_080801E8: .4byte gUnknown_08396FC4
-_080801EC: .4byte 0x00000716
-_080801F0: .4byte gUnknown_0839AC54
-_080801F4: .4byte gUnknown_08397128
-_080801F8: .4byte gSpriteTemplate_839AC3C
-_080801FC: .4byte gSprites
-_08080200:
- ldr r2, _08080230 @ =gUnknown_08396FC4
- ldr r1, [r2]
- lsls r0, r7, 2
- movs r3, 0xC8
- lsls r3, 1
- adds r1, r3
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_08080212:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x13
- bls _08080198
- ldr r0, [r2]
- ldr r1, _08080234 @ =0x00000716
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_08080226:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08080230: .4byte gUnknown_08396FC4
-_08080234: .4byte 0x00000716
- thumb_func_end sub_8080178
-
- thumb_func_start sub_8080238
-sub_8080238: @ 8080238
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _080802E0 @ =gUnknown_08396FC4
- ldr r0, [r4]
- ldr r1, _080802E4 @ =0x00000717
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08080324
- movs r7, 0
- mov r9, r4
- movs r2, 0
- mov r10, r2
-_08080258:
- lsls r0, r7, 1
- mov r8, r0
- adds r6, r0, r7
- lsls r5, r6, 4
- adds r1, r5, 0
- adds r1, 0x18
- lsls r1, 16
- asrs r1, 16
- ldr r0, _080802E8 @ =gSpriteTemplate_839AC3C
- movs r2, 0xD0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080802FC
- mov r2, r9
- ldr r4, [r2]
- lsls r0, r7, 2
- movs r2, 0xF0
- lsls r2, 1
- adds r4, r2
- adds r4, r0
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- ldr r0, _080802EC @ =gSprites
- adds r2, r0
- str r2, [r4]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x3]
- ldr r1, [r4]
- adds r0, r6, r5
- strh r0, [r1, 0x30]
- ldr r1, [r4]
- movs r0, 0x8
- strh r0, [r1, 0x2E]
- ldr r0, [r4]
- mov r1, r10
- strh r1, [r0, 0x32]
- ldr r1, [r4]
- ldr r0, _080802F0 @ =0x00006730
- strh r0, [r1, 0x36]
- ldr r1, [r4]
- ldr r0, _080802F4 @ =gUnknown_0839AC5C
- add r0, r8
- ldrh r0, [r0]
- strh r0, [r1, 0x34]
- ldr r0, [r4]
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, [r4]
- movs r1, 0
- movs r2, 0x2
- movs r3, 0
- bl CalcCenterToCornerVec
- ldr r1, [r4]
- ldr r0, _080802F8 @ =sub_8080398
- str r0, [r1, 0x1C]
- b _0808030E
- .align 2, 0
-_080802E0: .4byte gUnknown_08396FC4
-_080802E4: .4byte 0x00000717
-_080802E8: .4byte gSpriteTemplate_839AC3C
-_080802EC: .4byte gSprites
-_080802F0: .4byte 0x00006730
-_080802F4: .4byte gUnknown_0839AC5C
-_080802F8: .4byte sub_8080398
-_080802FC:
- mov r2, r9
- ldr r0, [r2]
- lsls r1, r7, 2
- movs r2, 0xF0
- lsls r2, 1
- adds r0, r2
- adds r0, r1
- mov r1, r10
- str r1, [r0]
-_0808030E:
- mov r2, r9
- ldr r0, [r2]
- ldr r1, _08080334 @ =0x00000717
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x4
- bls _08080258
-_08080324:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08080334: .4byte 0x00000717
- thumb_func_end sub_8080238
-
- thumb_func_start sub_8080338
-sub_8080338: @ 8080338
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _08080388 @ =gUnknown_08396FC4
- ldr r1, [r0]
- movs r2, 0xE2
- lsls r2, 3
- adds r0, r1, r2
- ldrh r0, [r0]
- strh r0, [r3, 0x26]
- ldr r4, _0808038C @ =0x0000070e
- adds r2, r1, r4
- ldrh r1, [r2]
- adds r1, 0x20
- movs r4, 0x2E
- ldrsh r0, [r3, r4]
- lsls r0, 6
- adds r1, r0
- strh r1, [r3, 0x20]
- lsls r1, 16
- ldr r0, _08080390 @ =0x010f0000
- cmp r1, r0
- ble _08080380
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r2]
- adds r1, r2
- movs r4, 0x2E
- ldrsh r2, [r3, r4]
- movs r0, 0x4
- subs r0, r2
- lsls r0, 6
- subs r1, r0
- ldr r0, _08080394 @ =0x000001ff
- ands r1, r0
- strh r1, [r3, 0x20]
-_08080380:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08080388: .4byte gUnknown_08396FC4
-_0808038C: .4byte 0x0000070e
-_08080390: .4byte 0x010f0000
-_08080394: .4byte 0x000001ff
- thumb_func_end sub_8080338
-
- thumb_func_start sub_8080398
-sub_8080398: @ 8080398
- push {lr}
- adds r2, r0, 0
- 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 _080803B2
- ldr r0, _080803B8 @ =sub_80803BC
- str r0, [r2, 0x1C]
-_080803B2:
- pop {r0}
- bx r0
- .align 2, 0
-_080803B8: .4byte sub_80803BC
- thumb_func_end sub_8080398
-
- thumb_func_start sub_80803BC
-sub_80803BC: @ 80803BC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x22]
- subs r0, 0x1
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- negs r1, r1
- cmp r0, r1
- bge _080803DA
- movs r0, 0xD0
- strh r0, [r5, 0x22]
- movs r0, 0x4
- strh r0, [r5, 0x2E]
-_080803DA:
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- ldr r3, _0808042C @ =gSineTable
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- lsls r0, r1, 1
- adds r0, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r2, r4, 0
- muls r2, r0
- adds r1, 0x40
- lsls r1, 1
- adds r1, r3
- movs r3, 0
- ldrsh r0, [r1, r3]
- muls r0, r4
- lsrs r2, 8
- strh r2, [r5, 0x24]
- lsrs r0, 8
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x30]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _08080426
- movs r0, 0
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_08080426:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808042C: .4byte gSineTable
- thumb_func_end sub_80803BC
-
- thumb_func_start sub_8080430
-sub_8080430: @ 8080430
- ldr r0, _08080450 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r0, _08080454 @ =0x000006cc
- adds r2, r1, r0
- movs r0, 0
- strh r0, [r2]
- ldr r0, _08080458 @ =0x000006c1
- adds r2, r1, r0
- movs r0, 0x3
- strb r0, [r2]
- ldr r0, _0808045C @ =0x000006c2
- adds r1, r0
- movs r0, 0x14
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08080450: .4byte gUnknown_08396FC4
-_08080454: .4byte 0x000006cc
-_08080458: .4byte 0x000006c1
-_0808045C: .4byte 0x000006c2
- thumb_func_end sub_8080430
-
- thumb_func_start sub_8080460
-sub_8080460: @ 8080460
- push {lr}
- bl sub_8080430
- pop {r0}
- bx r0
- thumb_func_end sub_8080460
-
- thumb_func_start nullsub_56
-nullsub_56: @ 808046C
- bx lr
- thumb_func_end nullsub_56
-
- thumb_func_start sub_8080470
-sub_8080470: @ 8080470
- movs r0, 0
- bx lr
- thumb_func_end sub_8080470
-
- thumb_func_start sub_8080474
-sub_8080474: @ 8080474
- push {r4,r5,lr}
- bl sub_807F49C
- ldr r0, _080804B4 @ =gUnknown_08396FC4
- ldr r4, [r0]
- ldr r1, _080804B8 @ =0x0000072e
- adds r0, r4, r1
- ldrb r5, [r0]
- cmp r5, 0
- bne _080804AC
- ldr r0, _080804BC @ =gUnknown_0839AC70
- bl LoadSpriteSheet
- movs r2, 0xE5
- lsls r2, 3
- adds r0, r4, r2
- strh r5, [r0]
- ldr r0, _080804C0 @ =gUnknown_0839AC68
- ldrb r1, [r0]
- subs r2, 0x2
- adds r0, r4, r2
- strh r1, [r0]
- ldr r1, _080804C4 @ =0x0000072a
- adds r0, r4, r1
- strh r5, [r0]
- adds r2, 0x6
- adds r0, r4, r2
- strh r5, [r0]
-_080804AC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080804B4: .4byte gUnknown_08396FC4
-_080804B8: .4byte 0x0000072e
-_080804BC: .4byte gUnknown_0839AC70
-_080804C0: .4byte gUnknown_0839AC68
-_080804C4: .4byte 0x0000072a
- thumb_func_end sub_8080474
-
- thumb_func_start sub_80804C8
-sub_80804C8: @ 80804C8
- push {r4,lr}
- bl sub_8080474
- ldr r0, _080804F0 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r2, _080804F4 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080804E8
- adds r4, r1, r2
-_080804DE:
- bl sub_80804F8
- ldrb r0, [r4]
- cmp r0, 0
- beq _080804DE
-_080804E8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080804F0: .4byte gUnknown_08396FC4
-_080804F4: .4byte 0x000006d2
- thumb_func_end sub_80804C8
-
- thumb_func_start sub_80804F8
-sub_80804F8: @ 80804F8
- push {r4-r7,lr}
- bl sub_807F52C
- ldr r0, _08080558 @ =gUnknown_08396FC4
- ldr r5, [r0]
- ldr r0, _0808055C @ =0x00000726
- adds r4, r5, r0
- ldrh r0, [r4]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r4]
- ldr r1, _08080560 @ =0x0000ffff
- adds r7, r1, 0
- ldr r2, _08080564 @ =gUnknown_0839AC68
- movs r1, 0xE5
- lsls r1, 3
- adds r3, r5, r1
- ldrh r1, [r3]
- adds r1, r2
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1]
- cmp r0, r1
- bls _08080550
- strh r6, [r4]
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- ands r0, r7
- cmp r0, 0x7
- bls _08080538
- strh r6, [r3]
-_08080538:
- ldr r0, _08080568 @ =0x0000072a
- adds r4, r5, r0
- ldrh r0, [r4]
- bl sub_8080588
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ands r0, r7
- cmp r0, 0xC
- bls _08080550
- strh r6, [r4]
-_08080550:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08080558: .4byte gUnknown_08396FC4
-_0808055C: .4byte 0x00000726
-_08080560: .4byte 0x0000ffff
-_08080564: .4byte gUnknown_0839AC68
-_08080568: .4byte 0x0000072a
- thumb_func_end sub_80804F8
-
- thumb_func_start sub_808056C
-sub_808056C: @ 808056C
- push {lr}
- bl sub_807F5EC
- lsls r0, 24
- cmp r0, 0
- beq _0808057C
- movs r0, 0x1
- b _08080582
-_0808057C:
- bl sub_8080610
- movs r0, 0
-_08080582:
- pop {r1}
- bx r1
- thumb_func_end sub_808056C
-
- thumb_func_start sub_8080588
-sub_8080588: @ 8080588
- push {r4,lr}
- lsls r0, 16
- ldr r1, _080805F8 @ =gUnknown_0839AC78
- lsrs r0, 14
- adds r3, r0, r1
- adds r1, 0x2
- adds r0, r1
- ldr r1, _080805FC @ =gSpriteCoordOffsetY
- ldrh r2, [r0]
- ldrh r0, [r1]
- subs r2, r0
- ldr r0, _08080600 @ =gSpriteTemplate_839ACBC
- movs r4, 0
- ldrsh r1, [r3, r4]
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080805F0
- ldr r0, _08080604 @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x5]
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- movs r0, 0
- strh r0, [r1, 0x2E]
- strh r0, [r1, 0x30]
- strh r0, [r1, 0x32]
- ldr r0, _08080608 @ =gUnknown_08396FC4
- ldr r1, [r0]
- ldr r0, _0808060C @ =0x0000072c
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080805F0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080805F8: .4byte gUnknown_0839AC78
-_080805FC: .4byte gSpriteCoordOffsetY
-_08080600: .4byte gSpriteTemplate_839ACBC
-_08080604: .4byte gSprites
-_08080608: .4byte gUnknown_08396FC4
-_0808060C: .4byte 0x0000072c
- thumb_func_end sub_8080588
-
- thumb_func_start sub_8080610
-sub_8080610: @ 8080610
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _08080648 @ =gSprites
-_08080616:
- lsls r0, r4, 4
- adds r0, r4
- lsls r2, r0, 2
- adds r0, r5, 0
- adds r0, 0x14
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r0, _0808064C @ =gSpriteTemplate_839ACBC
- cmp r1, r0
- bne _08080630
- adds r0, r2, r5
- bl DestroySprite
-_08080630:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3F
- bls _08080616
- ldr r0, _08080650 @ =0x00001205
- bl FreeSpriteTilesByTag
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08080648: .4byte gSprites
-_0808064C: .4byte gSpriteTemplate_839ACBC
-_08080650: .4byte 0x00001205
- thumb_func_end sub_8080610
-
- thumb_func_start unc_0807DAB4
-unc_0807DAB4: @ 8080654
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- movs r2, 0
- adds r0, 0x2
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _08080694
- strh r2, [r1, 0x2E]
- movs r3, 0x30
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _08080686
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _08080694
- movs r0, 0x1
- strh r0, [r1, 0x30]
- b _08080694
-_08080686:
- ldrh r0, [r1, 0x24]
- subs r0, 0x1
- strh r0, [r1, 0x24]
- lsls r0, 16
- cmp r0, 0
- bgt _08080694
- strh r2, [r1, 0x30]
-_08080694:
- ldrh r0, [r1, 0x22]
- subs r0, 0x3
- strh r0, [r1, 0x22]
- ldrh r0, [r1, 0x32]
- adds r0, 0x1
- strh r0, [r1, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x77
- ble _080806AE
- adds r0, r1, 0
- bl DestroySprite
-_080806AE:
- pop {r0}
- bx r0
- thumb_func_end unc_0807DAB4
-
- thumb_func_start SetSav1Weather
-SetSav1Weather: @ 80806B4
- push {r4,r5,lr}
- ldr r4, _080806D4 @ =gSaveBlock1
- adds r4, 0x2E
- ldrb r5, [r4]
- lsls r0, 24
- lsrs r0, 24
- bl TranslateWeatherNum
- strb r0, [r4]
- ldrb r0, [r4]
- adds r1, r5, 0
- bl UpdateRainCounter
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080806D4: .4byte gSaveBlock1
- thumb_func_end SetSav1Weather
-
- thumb_func_start GetSav1Weather
-GetSav1Weather: @ 80806D8
- ldr r0, _080806E0 @ =gSaveBlock1
- adds r0, 0x2E
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080806E0: .4byte gSaveBlock1
- thumb_func_end GetSav1Weather
-
- thumb_func_start sub_80806E4
-sub_80806E4: @ 80806E4
- push {r4,r5,lr}
- ldr r4, _08080704 @ =gSaveBlock1
- adds r4, 0x2E
- ldrb r5, [r4]
- ldr r0, _08080708 @ =gMapHeader
- ldrb r0, [r0, 0x16]
- bl TranslateWeatherNum
- strb r0, [r4]
- ldrb r0, [r4]
- adds r1, r5, 0
- bl UpdateRainCounter
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08080704: .4byte gSaveBlock1
-_08080708: .4byte gMapHeader
- thumb_func_end sub_80806E4
-
- thumb_func_start SetWeather
-SetWeather: @ 808070C
- push {lr}
- bl SetSav1Weather
- bl GetSav1Weather
- lsls r0, 24
- lsrs r0, 24
- bl DoWeatherEffect
- pop {r0}
- bx r0
- thumb_func_end SetWeather
-
- thumb_func_start SetWeather_Unused
-SetWeather_Unused: @ 8080724
- push {lr}
- bl SetSav1Weather
- bl GetSav1Weather
- lsls r0, 24
- lsrs r0, 24
- bl sub_807C988
- pop {r0}
- bx r0
- thumb_func_end SetWeather_Unused
-
- thumb_func_start DoCurrentWeather
-DoCurrentWeather: @ 808073C
- push {lr}
- bl GetSav1Weather
- lsls r0, 24
- lsrs r0, 24
- bl DoWeatherEffect
- pop {r0}
- bx r0
- thumb_func_end DoCurrentWeather
-
- thumb_func_start sub_8080750
-sub_8080750: @ 8080750
- push {lr}
- bl GetSav1Weather
- lsls r0, 24
- lsrs r0, 24
- bl sub_807C988
- pop {r0}
- bx r0
- thumb_func_end sub_8080750
-
- thumb_func_start TranslateWeatherNum
-TranslateWeatherNum: @ 8080764
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x15
- bhi _0808082C
- lsls r0, 2
- ldr r1, _08080778 @ =_0808077C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08080778: .4byte _0808077C
- .align 2, 0
-_0808077C:
- .4byte _0808082C
- .4byte _080807D4
- .4byte _080807D8
- .4byte _080807DC
- .4byte _080807E0
- .4byte _080807E4
- .4byte _080807E8
- .4byte _080807EC
- .4byte _080807F0
- .4byte _080807F4
- .4byte _080807F8
- .4byte _080807FC
- .4byte _08080800
- .4byte _08080804
- .4byte _08080808
- .4byte _0808082C
- .4byte _0808082C
- .4byte _0808082C
- .4byte _0808082C
- .4byte _0808082C
- .4byte _0808080C
- .4byte _08080814
-_080807D4:
- movs r0, 0x1
- b _0808082E
-_080807D8:
- movs r0, 0x2
- b _0808082E
-_080807DC:
- movs r0, 0x3
- b _0808082E
-_080807E0:
- movs r0, 0x4
- b _0808082E
-_080807E4:
- movs r0, 0x5
- b _0808082E
-_080807E8:
- movs r0, 0x6
- b _0808082E
-_080807EC:
- movs r0, 0x7
- b _0808082E
-_080807F0:
- movs r0, 0x8
- b _0808082E
-_080807F4:
- movs r0, 0x9
- b _0808082E
-_080807F8:
- movs r0, 0xA
- b _0808082E
-_080807FC:
- movs r0, 0xB
- b _0808082E
-_08080800:
- movs r0, 0xC
- b _0808082E
-_08080804:
- movs r0, 0xD
- b _0808082E
-_08080808:
- movs r0, 0xE
- b _0808082E
-_0808080C:
- ldr r1, _08080810 @ =gUnknown_0839ACD4
- b _08080816
- .align 2, 0
-_08080810: .4byte gUnknown_0839ACD4
-_08080814:
- ldr r1, _08080824 @ =gUnknown_0839ACD8
-_08080816:
- ldr r0, _08080828 @ =gSaveBlock1
- adds r0, 0x2F
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- b _0808082E
- .align 2, 0
-_08080824: .4byte gUnknown_0839ACD8
-_08080828: .4byte gSaveBlock1
-_0808082C:
- movs r0, 0
-_0808082E:
- pop {r1}
- bx r1
- thumb_func_end TranslateWeatherNum
-
- thumb_func_start UpdateWeatherPerDay
-UpdateWeatherPerDay: @ 8080834
- lsls r0, 16
- ldr r2, _08080850 @ =gSaveBlock1
- adds r2, 0x2F
- lsrs r0, 16
- ldrb r1, [r2]
- adds r0, r1
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsrs r1, 16
- strb r1, [r2]
- bx lr
- .align 2, 0
-_08080850: .4byte gSaveBlock1
- thumb_func_end UpdateWeatherPerDay
-
- thumb_func_start UpdateRainCounter
-UpdateRainCounter: @ 8080854
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r2, r0, 24
- cmp r0, r1
- beq _0808086E
- cmp r2, 0x3
- beq _08080868
- cmp r2, 0x5
- bne _0808086E
-_08080868:
- movs r0, 0x28
- bl IncrementGameStat
-_0808086E:
- pop {r0}
- bx r0
- thumb_func_end UpdateRainCounter
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fight.s b/asm/fight.s
new file mode 100755
index 000000000..c6ef33840
--- /dev/null
+++ b/asm/fight.s
@@ -0,0 +1,1749 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ @ fight
+
+ thumb_func_start unc_080B08A0
+unc_080B08A0: @ 80D8FF0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D9020 @ =gBattleAnimArgs
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0xF
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D9024 @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9028 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9020: .4byte gBattleAnimArgs
+_080D9024: .4byte sub_80782D8
+_080D9028: .4byte move_anim_8072740
+ thumb_func_end unc_080B08A0
+
+ thumb_func_start sub_80D902C
+sub_80D902C: @ 80D902C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D9070 @ =gBattleAnimArgs
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080D9054
+ ldr r0, _080D9074 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9054
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+ ldrh r0, [r4, 0x6]
+ negs r0, r0
+ strh r0, [r4, 0x6]
+_080D9054:
+ ldr r4, _080D9070 @ =gBattleAnimArgs
+ ldrb r1, [r4, 0xC]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ adds r0, r5, 0
+ bl sub_8079534
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9070: .4byte gBattleAnimArgs
+_080D9074: .4byte gBattleAnimBankAttacker
+ thumb_func_end sub_80D902C
+
+ thumb_func_start sub_80D9078
+sub_80D9078: @ 80D9078
+ push {r4,lr}
+ adds r4, r0, 0
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9094
+ ldr r0, _080D90A0 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0x2]
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0, 0x6]
+ negs r1, r1
+ strh r1, [r0, 0x6]
+_080D9094:
+ adds r0, r4, 0
+ bl sub_80D902C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D90A0: .4byte gBattleAnimArgs
+ thumb_func_end sub_80D9078
+
+ thumb_func_start sub_80D90A4
+sub_80D90A4: @ 80D90A4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D90C4 @ =gBattleAnimArgs
+ ldrb r1, [r4, 0x8]
+ bl StartSpriteAnim
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D90C8
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080D90D0
+ .align 2, 0
+_080D90C4: .4byte gBattleAnimArgs
+_080D90C8:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080D90D0:
+ ldr r0, _080D90E8 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D90EC @ =sub_80782D8
+ str r0, [r5, 0x1C]
+ ldr r1, _080D90F0 @ =move_anim_8072740
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D90E8: .4byte gBattleAnimArgs
+_080D90EC: .4byte sub_80782D8
+_080D90F0: .4byte move_anim_8072740
+ thumb_func_end sub_80D90A4
+
+ thumb_func_start sub_80D90F4
+sub_80D90F4: @ 80D90F4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ ldr r0, _080D9110 @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ mov r9, r0
+ cmp r1, 0
+ bne _080D9118
+ ldr r0, _080D9114 @ =gBattleAnimBankAttacker
+ b _080D911A
+ .align 2, 0
+_080D9110: .4byte gBattleAnimArgs
+_080D9114: .4byte gBattleAnimBankAttacker
+_080D9118:
+ ldr r0, _080D9260 @ =gBattleAnimBankTarget
+_080D911A:
+ ldrb r0, [r0]
+ mov r8, r0
+ mov r4, r9
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _080D9138
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ strh r0, [r4, 0x4]
+_080D9138:
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ mov r0, r8
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ mov r0, r8
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ mov r0, r8
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ lsls r1, 15
+ lsrs r6, r1, 16
+ mov r0, r8
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080D9182
+ adds r0, 0x3
+_080D9182:
+ lsls r4, r0, 14
+ lsrs r4, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r6, 16
+ asrs r1, 16
+ bl __modsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl Random
+ movs r7, 0x1
+ adds r1, r7, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080D91C4
+ lsls r0, r6, 16
+ negs r0, r0
+ lsrs r6, r0, 16
+_080D91C4:
+ bl Random
+ adds r1, r7, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080D91D6
+ lsls r0, r4, 16
+ negs r0, r0
+ lsrs r4, r0, 16
+_080D91D6:
+ ldr r0, _080D9264 @ =gBanksBySide
+ add r0, r8
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080D91EC
+ lsls r0, r4, 16
+ ldr r1, _080D9268 @ =0xfff00000
+ adds r0, r1
+ lsrs r4, r0, 16
+_080D91EC:
+ lsls r0, r6, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ ldrh r3, [r5, 0x22]
+ adds r0, r3
+ strh r0, [r5, 0x22]
+ mov r1, r9
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D926C @ =gBattleAnimSpriteTemplate_83DB4A8
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r3, 0x22
+ ldrsh r2, [r5, r3]
+ adds r3, r5, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3C]
+ cmp r0, 0x40
+ beq _080D9250
+ movs r0, 0x3C
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080D9270 @ =gSprites
+ adds r0, r4
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ movs r2, 0x3C
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _080D9274 @ =SpriteCallbackDummy
+ str r1, [r0]
+_080D9250:
+ ldr r0, _080D9278 @ =sub_80D927C
+ str r0, [r5, 0x1C]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9260: .4byte gBattleAnimBankTarget
+_080D9264: .4byte gBanksBySide
+_080D9268: .4byte 0xfff00000
+_080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8
+_080D9270: .4byte gSprites
+_080D9274: .4byte SpriteCallbackDummy
+_080D9278: .4byte sub_80D927C
+ thumb_func_end sub_80D90F4
+
+ thumb_func_start sub_80D927C
+sub_80D927C: @ 80D927C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080D92C4
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x40
+ beq _080D92B8
+ ldr r4, _080D92C0 @ =gSprites
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ movs r0, 0x3C
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+_080D92B8:
+ adds r0, r5, 0
+ bl move_anim_8072740
+ b _080D92C8
+ .align 2, 0
+_080D92C0: .4byte gSprites
+_080D92C4:
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+_080D92C8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D927C
+
+ thumb_func_start sub_80D92D0
+sub_80D92D0: @ 80D92D0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ movs r0, 0x1E
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D92F0 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D92F4
+ ldrh r0, [r4, 0x20]
+ subs r0, 0x14
+ strh r0, [r4, 0x32]
+ b _080D9306
+ .align 2, 0
+_080D92F0: .4byte gBattleAnimArgs
+_080D92F4:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x14
+ strh r0, [r4, 0x32]
+ adds r2, r4, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_080D9306:
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x14
+ strh r0, [r4, 0x36]
+ ldr r0, _080D9320 @ =sub_8078B34
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9324 @ =sub_80D9328
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9320: .4byte sub_8078B34
+_080D9324: .4byte sub_80D9328
+ thumb_func_end sub_80D92D0
+
+ thumb_func_start sub_80D9328
+sub_80D9328: @ 80D9328
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x38]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _080D9368
+ ldrh r2, [r5, 0x20]
+ ldrh r4, [r5, 0x24]
+ subs r0, r2, r4
+ strh r0, [r5, 0x32]
+ ldrh r1, [r5, 0x22]
+ ldrh r3, [r5, 0x26]
+ subs r0, r1, r3
+ strh r0, [r5, 0x36]
+ movs r0, 0x8
+ strh r0, [r5, 0x2E]
+ adds r2, r4
+ strh r2, [r5, 0x20]
+ adds r1, r3
+ strh r1, [r5, 0x22]
+ strh r6, [r5, 0x26]
+ strh r6, [r5, 0x24]
+ ldr r0, _080D9370 @ =sub_8078B34
+ str r0, [r5, 0x1C]
+ ldr r1, _080D9374 @ =move_anim_8072740
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData
+_080D9368:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9370: .4byte sub_8078B34
+_080D9374: .4byte move_anim_8072740
+ thumb_func_end sub_80D9328
+
+ thumb_func_start sub_80D9378
+sub_80D9378: @ 80D9378
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080D93F4 @ =gBattleAnimBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ldr r2, _080D93F8 @ =gBattleAnimBankTarget
+ eors r0, r1
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _080D93A4
+ ldrb r0, [r2]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080D93A4
+ ldr r1, _080D93FC @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1]
+_080D93A4:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080D93F4 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D93C2
+ ldr r1, _080D93FC @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080D93C2:
+ ldr r4, _080D93FC @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x6]
+ movs r5, 0
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrh r0, [r6, 0x22]
+ strh r0, [r6, 0x34]
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x38]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x3A]
+ strh r5, [r6, 0x3C]
+ ldr r0, _080D9400 @ =sub_80D9404
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D93F4: .4byte gBattleAnimBankAttacker
+_080D93F8: .4byte gBattleAnimBankTarget
+_080D93FC: .4byte gBattleAnimArgs
+_080D9400: .4byte sub_80D9404
+ thumb_func_end sub_80D9378
+
+ thumb_func_start sub_80D9404
+sub_80D9404: @ 80D9404
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D9430
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ strh r0, [r4, 0x3C]
+ b _080D9436
+_080D9430:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9436:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9404
+
+ thumb_func_start sub_80D943C
+sub_80D943C: @ 80D943C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r5, _080D9468 @ =gBattleAnimArgs
+ ldrb r1, [r5, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D946C @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9470 @ =sub_80D9474
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9468: .4byte gBattleAnimArgs
+_080D946C: .4byte sub_80782D8
+_080D9470: .4byte sub_80D9474
+ thumb_func_end sub_80D943C
+
+ thumb_func_start sub_80D9474
+sub_80D9474: @ 80D9474
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D94A0 @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ ldr r1, _080D94A4 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D94A0: .4byte sub_80782D8
+_080D94A4: .4byte move_anim_8072740
+ thumb_func_end sub_80D9474
+
+ thumb_func_start sub_80D94A8
+sub_80D94A8: @ 80D94A8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080D94C4 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D94C8 @ =sub_80D94CC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D94C4: .4byte gBattleAnimArgs
+_080D94C8: .4byte sub_80D94CC
+ thumb_func_end sub_80D94A8
+
+ thumb_func_start sub_80D94CC
+sub_80D94CC: @ 80D94CC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ subs r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D9510
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ ldr r4, _080D9518 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080D951C @ =sub_8078B34
+ str r0, [r5, 0x1C]
+ ldr r1, _080D9520 @ =sub_80D9524
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData
+_080D9510:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9518: .4byte gBattleAnimBankTarget
+_080D951C: .4byte sub_8078B34
+_080D9520: .4byte sub_80D9524
+ thumb_func_end sub_80D94CC
+
+ thumb_func_start sub_80D9524
+sub_80D9524: @ 80D9524
+ push {lr}
+ movs r1, 0xF
+ strh r1, [r0, 0x2E]
+ ldr r1, _080D9538 @ =sub_80782D8
+ str r1, [r0, 0x1C]
+ ldr r1, _080D953C @ =move_anim_8072740
+ bl StoreSpriteCallbackInData
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9538: .4byte sub_80782D8
+_080D953C: .4byte move_anim_8072740
+ thumb_func_end sub_80D9524
+
+ thumb_func_start sub_80D9540
+sub_80D9540: @ 80D9540
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D956C
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r1, _080D9568 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D95C8
+ .align 2, 0
+_080D9568: .4byte gBattleAnimArgs
+_080D956C:
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ cmp r0, 0x64
+ ble _080D95BA
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D95BA:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x78
+ ble _080D95C8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D95C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9540
+
+ thumb_func_start sub_80D95D0
+sub_80D95D0: @ 80D95D0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D95E4 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D95EC
+ ldr r4, _080D95E8 @ =gBattleAnimBankAttacker
+ b _080D95EE
+ .align 2, 0
+_080D95E4: .4byte gBattleAnimArgs
+_080D95E8: .4byte gBattleAnimBankAttacker
+_080D95EC:
+ ldr r4, _080D9634 @ =gBattleAnimBankTarget
+_080D95EE:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080D9638 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ movs r2, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r1, 0x4]
+ ldrh r3, [r5, 0x22]
+ adds r0, r3
+ strh r0, [r5, 0x22]
+ strh r2, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x32]
+ strh r2, [r5, 0x34]
+ ldr r0, _080D963C @ =sub_80D9640
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9634: .4byte gBattleAnimBankTarget
+_080D9638: .4byte gBattleAnimArgs
+_080D963C: .4byte sub_80D9640
+ thumb_func_end sub_80D95D0
+
+ thumb_func_start sub_80D9640
+sub_80D9640: @ 80D9640
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0x2E
+ ldrsh r2, [r1, r0]
+ cmp r2, 0
+ beq _080D9652
+ cmp r2, 0x1
+ beq _080D9676
+ b _080D96B0
+_080D9652:
+ ldrh r0, [r1, 0x30]
+ subs r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D96B0
+ movs r2, 0x32
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080D966E
+ adds r0, r1, 0
+ bl move_anim_8072740
+ b _080D96B0
+_080D966E:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _080D96B0
+_080D9676:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D969E
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldrh r0, [r1, 0x34]
+ adds r0, 0x1
+ strh r0, [r1, 0x34]
+ ands r0, r2
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D969A
+ movs r0, 0x2
+ b _080D969C
+_080D969A:
+ ldr r0, _080D96B4 @ =0x0000fffe
+_080D969C:
+ strh r0, [r1, 0x24]
+_080D969E:
+ ldrh r0, [r1, 0x32]
+ subs r0, 0x1
+ strh r0, [r1, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D96B0
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080D96B0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D96B4: .4byte 0x0000fffe
+ thumb_func_end sub_80D9640
+
+ thumb_func_start sub_80D96B8
+sub_80D96B8: @ 80D96B8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080D96DC @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D96E4
+ ldr r4, _080D96E0 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r6, 0x4]
+ adds r0, r2
+ b _080D96F6
+ .align 2, 0
+_080D96DC: .4byte gBattleAnimArgs
+_080D96E0: .4byte gBattleAnimBankAttacker
+_080D96E4:
+ ldr r4, _080D9740 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+_080D96F6:
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldr r3, _080D9744 @ =gBattleAnimArgs
+ movs r4, 0x2
+ ldrsh r0, [r3, r4]
+ lsls r0, 4
+ adds r1, r0
+ ldr r4, _080D9748 @ =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _080D974C @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ movs r1, 0
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ movs r2, 0x2
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x1
+ beq _080D9764
+ cmp r0, 0x1
+ bgt _080D9750
+ cmp r0, 0
+ beq _080D975A
+ b _080D978A
+ .align 2, 0
+_080D9740: .4byte gBattleAnimBankTarget
+_080D9744: .4byte gBattleAnimArgs
+_080D9748: .4byte 0x000003ff
+_080D974C: .4byte 0xfffffc00
+_080D9750:
+ cmp r0, 0x2
+ beq _080D9774
+ cmp r0, 0x3
+ beq _080D9784
+ b _080D978A
+_080D975A:
+ ldr r0, _080D9760 @ =0x0000fffd
+ b _080D9784
+ .align 2, 0
+_080D9760: .4byte 0x0000fffd
+_080D9764:
+ movs r0, 0x3
+ strh r0, [r5, 0x3A]
+ ldr r0, _080D9770 @ =0x0000fffd
+ strh r0, [r5, 0x3C]
+ b _080D9792
+ .align 2, 0
+_080D9770: .4byte 0x0000fffd
+_080D9774:
+ ldr r0, _080D9780 @ =0x0000fffd
+ strh r0, [r5, 0x3A]
+ movs r0, 0x3
+ strh r0, [r5, 0x3C]
+ b _080D9792
+ .align 2, 0
+_080D9780: .4byte 0x0000fffd
+_080D9784:
+ strh r0, [r5, 0x3A]
+ strh r0, [r5, 0x3C]
+ b _080D9792
+_080D978A:
+ adds r0, r5, 0
+ bl move_anim_8072740
+ b _080D9796
+_080D9792:
+ ldr r0, _080D979C @ =sub_80D97A0
+ str r0, [r5, 0x1C]
+_080D9796:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D979C: .4byte sub_80D97A0
+ thumb_func_end sub_80D96B8
+
+ thumb_func_start sub_80D97A0
+sub_80D97A0: @ 80D97A0
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x3A]
+ ldrh r2, [r1, 0x20]
+ adds r0, r2
+ strh r0, [r1, 0x20]
+ ldrh r0, [r1, 0x3C]
+ ldrh r2, [r1, 0x22]
+ adds r0, r2
+ strh r0, [r1, 0x22]
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _080D97C8
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080D97C8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D97A0
+
+ thumb_func_start sub_80D97CC
+sub_80D97CC: @ 80D97CC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D9818 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D9828
+ ldr r4, _080D981C @ =gBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080D9820 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ ldr r0, _080D9824 @ =gBattleAnimBankTarget
+ b _080D9844
+ .align 2, 0
+_080D9818: .4byte gBattleAnimArgs
+_080D981C: .4byte gBankAttacker
+_080D9820: .4byte gBattleAnimBankAttacker
+_080D9824: .4byte gBattleAnimBankTarget
+_080D9828:
+ ldr r0, _080D9860 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ ldr r0, _080D9864 @ =gBattleAnimBankAttacker
+_080D9844:
+ ldrb r0, [r0]
+ strh r0, [r5, 0x3C]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ movs r0, 0xC
+ strh r0, [r5, 0x30]
+ movs r0, 0x8
+ strh r0, [r5, 0x32]
+ ldr r0, _080D9868 @ =sub_80D986C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9860: .4byte gBattleAnimBankTarget
+_080D9864: .4byte gBattleAnimBankAttacker
+_080D9868: .4byte sub_80D986C
+ thumb_func_end sub_80D97CC
+
+ thumb_func_start sub_80D986C
+sub_80D986C: @ 80D986C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB4
+ bne _080D98C6
+ ldr r1, _080D98CC @ =REG_BLDCNT
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080D98D0 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ ldr r0, _080D98D4 @ =sub_8078BB8
+ str r0, [r4, 0x1C]
+_080D98C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D98CC: .4byte REG_BLDCNT
+_080D98D0: .4byte move_anim_8074EE0
+_080D98D4: .4byte sub_8078BB8
+ thumb_func_end sub_80D986C
+
+ thumb_func_start sub_80D98D8
+sub_80D98D8: @ 80D98D8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D9924 @ =gBattleAnimArgs
+ ldrh r0, [r4]
+ strh r0, [r5, 0x20]
+ movs r2, 0x78
+ strh r2, [r5, 0x22]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ adds r0, 0x36
+ adds r1, r5, 0
+ adds r1, 0x38
+ lsls r2, 8
+ bl sub_8079BF4
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x3A]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080D9928 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D992C @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r0, _080D9930 @ =sub_80D9934
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9924: .4byte gBattleAnimArgs
+_080D9928: .4byte 0x000003ff
+_080D992C: .4byte 0xfffffc00
+_080D9930: .4byte sub_80D9934
+ thumb_func_end sub_80D98D8
+
+ thumb_func_start sub_80D9934
+sub_80D9934: @ 80D9934
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _080D9986
+ movs r2, 0x36
+ ldrsh r0, [r7, r2]
+ movs r2, 0x38
+ ldrsh r1, [r7, r2]
+ bl sub_8079BFC
+ adds r4, r0, 0
+ movs r1, 0x3A
+ ldrsh r0, [r7, r1]
+ subs r4, r0
+ adds r0, r7, 0
+ adds r0, 0x36
+ adds r1, r7, 0
+ adds r1, 0x38
+ adds r2, r4, 0
+ bl sub_8079BF4
+ asrs r4, 8
+ strh r4, [r7, 0x22]
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x8
+ negs r0, r0
+ cmp r4, r0
+ bge _080D997E
+ adds r0, r7, 0
+ bl move_anim_8072740
+ b _080D99DC
+_080D997E:
+ ldrh r0, [r7, 0x2E]
+ subs r0, 0x1
+ strh r0, [r7, 0x2E]
+ b _080D99DC
+_080D9986:
+ ldr r4, _080D99E8 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r2, _080D99EC @ =gBattleAnimBankTarget
+ mov r8, r2
+ ldrb r0, [r2]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ subs r4, r6
+ strh r4, [r7, 0x2E]
+ lsrs r0, 24
+ subs r0, r5
+ strh r0, [r7, 0x30]
+ ldrh r0, [r7, 0x20]
+ lsls r0, 4
+ strh r0, [r7, 0x32]
+ ldrh r0, [r7, 0x22]
+ lsls r0, 4
+ strh r0, [r7, 0x34]
+ ldr r0, _080D99F0 @ =sub_80D99F4
+ str r0, [r7, 0x1C]
+_080D99DC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D99E8: .4byte gBattleAnimBankAttacker
+_080D99EC: .4byte gBattleAnimBankTarget
+_080D99F0: .4byte sub_80D99F4
+ thumb_func_end sub_80D9934
+
+ thumb_func_start sub_80D99F4
+sub_80D99F4: @ 80D99F4
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x30]
+ ldrh r3, [r2, 0x34]
+ adds r1, r3
+ strh r1, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r3, r1, 20
+ strh r3, [r2, 0x22]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080D9A2E
+ adds r1, r3, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _080D9A2E
+ cmp r1, 0x78
+ ble _080D9A34
+_080D9A2E:
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D9A34:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D99F4
+
+ thumb_func_start sub_80D9A38
+sub_80D9A38: @ 80D9A38
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D9A6C @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D9A7C
+ ldr r4, _080D9A70 @ =gBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080D9A74 @ =gBattleAnimBankTarget
+ ldrb r4, [r0]
+ ldr r0, _080D9A78 @ =gBattleAnimBankAttacker
+ b _080D9A82
+ .align 2, 0
+_080D9A6C: .4byte gBattleAnimArgs
+_080D9A70: .4byte gBankAttacker
+_080D9A74: .4byte gBattleAnimBankTarget
+_080D9A78: .4byte gBattleAnimBankAttacker
+_080D9A7C:
+ ldr r0, _080D9AB4 @ =gBattleAnimBankAttacker
+ ldrb r4, [r0]
+ ldr r0, _080D9AB8 @ =gBattleAnimBankTarget
+_080D9A82:
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9ABC
+ ldrb r2, [r5, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ b _080D9AD6
+ .align 2, 0
+_080D9AB4: .4byte gBattleAnimBankAttacker
+_080D9AB8: .4byte gBattleAnimBankTarget
+_080D9ABC:
+ adds r0, r4, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D9ADC
+ ldrb r2, [r5, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x18
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x57
+_080D9AD6:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+_080D9ADC:
+ movs r0, 0x10
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080D9B1C @ =move_anim_8072740
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData
+ ldr r0, _080D9B20 @ =sub_8078BB8
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9B1C: .4byte move_anim_8072740
+_080D9B20: .4byte sub_8078BB8
+ thumb_func_end sub_80D9A38
+
+ thumb_func_start sub_80D9B24
+sub_80D9B24: @ 80D9B24
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080D9B3A
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9B3A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9B24
+
+ thumb_func_start sub_80D9B48
+sub_80D9B48: @ 80D9B48
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080D9BC4 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080D9BC8 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x36]
+ ldr r0, _080D9BCC @ =gUnknown_0202F7C4
+ ldrb r6, [r0]
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D9B92
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_080D9B92:
+ movs r0, 0x1
+ ands r6, r0
+ cmp r6, 0
+ beq _080D9BA6
+ ldrh r0, [r5, 0x32]
+ negs r0, r0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+_080D9BA6:
+ ldrh r1, [r5, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x32]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x34]
+ strh r0, [r5, 0x26]
+ ldr r0, _080D9BD0 @ =sub_80D9B24
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9BC4: .4byte gBattleAnimBankTarget
+_080D9BC8: .4byte gBattleAnimArgs
+_080D9BCC: .4byte gUnknown_0202F7C4
+_080D9BD0: .4byte sub_80D9B24
+ thumb_func_end sub_80D9B48
+
+ thumb_func_start sub_80D9BD4
+sub_80D9BD4: @ 80D9BD4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D9BEC @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D9BF0
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080D9BF8
+ .align 2, 0
+_080D9BEC: .4byte gBattleAnimArgs
+_080D9BF0:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+_080D9BF8:
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9C0C
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ b _080D9C22
+_080D9C0C:
+ ldr r0, _080D9C34 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9C22
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080D9C22:
+ ldr r0, _080D9C38 @ =sub_8078600
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9C3C @ =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9C34: .4byte gBattleAnimBankAttacker
+_080D9C38: .4byte sub_8078600
+_080D9C3C: .4byte move_anim_8072740
+ thumb_func_end sub_80D9BD4
+
+ thumb_func_start sub_80D9C40
+sub_80D9C40: @ 80D9C40
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D9C7A
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x28
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x2
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _080D9C7A
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9C7A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9C40
+
+ thumb_func_start sub_80D9C80
+sub_80D9C80: @ 80D9C80
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080D9CB0 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080D9CB8
+ cmp r0, 0x1
+ bgt _080D9CD2
+ cmp r0, 0
+ bne _080D9CD2
+ movs r0, 0
+ bl sub_80789D4
+ ldr r0, _080D9CB4 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x18]
+ b _080D9CCA
+ .align 2, 0
+_080D9CB0: .4byte gTasks
+_080D9CB4: .4byte gBattleAnimArgs
+_080D9CB8:
+ ldrh r0, [r4, 0x18]
+ subs r0, 0x1
+ strh r0, [r4, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D9CDE
+_080D9CCA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D9CDE
+_080D9CD2:
+ movs r2, 0xA0
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x1A]
+ adds r0, r1
+ strh r0, [r4, 0x1A]
+_080D9CDE:
+ movs r2, 0xB0
+ lsls r2, 4
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x1C]
+ adds r0, r1
+ strh r0, [r4, 0x1C]
+ ldr r0, _080D9D0C @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D9D14
+ ldr r1, _080D9D10 @ =gUnknown_030041B0
+ ldrh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ adds r7, r1, 0
+ b _080D9D24
+ .align 2, 0
+_080D9D0C: .4byte gBattleAnimBankTarget
+_080D9D10: .4byte gUnknown_030041B0
+_080D9D14:
+ ldr r2, _080D9D64 @ =gUnknown_030041B0
+ ldrh r1, [r4, 0x1A]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ adds r7, r2, 0
+_080D9D24:
+ ldr r3, _080D9D68 @ =gUnknown_030041B8
+ ldrh r2, [r4, 0x1C]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r3]
+ adds r0, r1
+ strh r0, [r3]
+ movs r0, 0xFF
+ ldrb r1, [r4, 0x1A]
+ movs r5, 0
+ strh r1, [r4, 0x1A]
+ ands r0, r2
+ strh r0, [r4, 0x1C]
+ ldr r0, _080D9D6C @ =gBattleAnimArgs
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080D9D5C
+ strh r5, [r7]
+ strh r5, [r3]
+ movs r0, 0x1
+ bl sub_80789D4
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080D9D5C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9D64: .4byte gUnknown_030041B0
+_080D9D68: .4byte gUnknown_030041B8
+_080D9D6C: .4byte gBattleAnimArgs
+ thumb_func_end sub_80D9C80
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fire.s b/asm/fire.s
new file mode 100755
index 000000000..bafe1d7e1
--- /dev/null
+++ b/asm/fire.s
@@ -0,0 +1,360 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ @ fire
+
+ thumb_func_start sub_80D4ED8
+sub_80D4ED8: @ 80D4ED8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D4F0C @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ movs r0, 0x3C
+ strh r0, [r4, 0x30]
+ movs r0, 0x9
+ strh r0, [r4, 0x32]
+ movs r0, 0x1E
+ strh r0, [r4, 0x34]
+ movs r0, 0xFE
+ lsls r0, 8
+ strh r0, [r4, 0x36]
+ ldr r1, _080D4F10 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ ldr r1, _080D4F14 @ =sub_8078174
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4F0C: .4byte gBattleAnimArgs
+_080D4F10: .4byte move_anim_8072740
+_080D4F14: .4byte sub_8078174
+ thumb_func_end sub_80D4ED8
+
+ thumb_func_start sub_80D4F18
+sub_80D4F18: @ 80D4F18
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D4F50 @ =gBattleAnimArgs
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x32]
+ ldr r0, _080D4F54 @ =sub_8078394
+ str r0, [r4, 0x1C]
+ ldr r1, _080D4F58 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4F50: .4byte gBattleAnimArgs
+_080D4F54: .4byte sub_8078394
+_080D4F58: .4byte move_anim_8072740
+ thumb_func_end sub_80D4F18
+
+ thumb_func_start sub_80D4F5C
+sub_80D4F5C: @ 80D4F5C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r0, _080D4F90 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D4F98
+ ldr r2, _080D4F94 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+ adds r1, r2, 0
+ b _080D4FAE
+ .align 2, 0
+_080D4F90: .4byte gBattleAnimBankAttacker
+_080D4F94: .4byte gBattleAnimArgs
+_080D4F98:
+ ldr r1, _080D4FC4 @ =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]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+_080D4FAE:
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, _080D4FC8 @ =sub_80D5038
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4FC4: .4byte gBattleAnimArgs
+_080D4FC8: .4byte sub_80D5038
+ thumb_func_end sub_80D4F5C
+
+ thumb_func_start sub_80D4FCC
+sub_80D4FCC: @ 80D4FCC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D4FF8 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D5000
+ ldr r2, _080D4FFC @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r4, 0x32]
+ adds r1, r2, 0
+ b _080D5018
+ .align 2, 0
+_080D4FF8: .4byte gBattleAnimBankAttacker
+_080D4FFC: .4byte gBattleAnimArgs
+_080D5000:
+ ldr r1, _080D5030 @ =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]
+ ldrh r0, [r1, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+_080D5018:
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, _080D5034 @ =sub_80D5038
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5030: .4byte gBattleAnimArgs
+_080D5034: .4byte sub_80D5038
+ thumb_func_end sub_80D4FCC
+
+ thumb_func_start sub_80D5038
+sub_80D5038: @ 80D5038
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x36
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bge _080D505E
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x34]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+_080D505E:
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bne _080D5070
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080D5070:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5038
+
+ thumb_func_start sub_80D5074
+sub_80D5074: @ 80D5074
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r0, _080D5098 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D50A0
+ ldr r0, _080D509C @ =gBattleAnimArgs
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _080D50B2
+ .align 2, 0
+_080D5098: .4byte gBattleAnimBankAttacker
+_080D509C: .4byte gBattleAnimArgs
+_080D50A0:
+ ldr r0, _080D50E0 @ =gBattleAnimArgs
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ adds r2, r4, 0
+ adds r2, 0x43
+ movs r1, 0x8
+ strb r1, [r2]
+_080D50B2:
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r2, 0xA]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r2, 0xC]
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ ldr r0, _080D50E4 @ =sub_80D50E8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D50E0: .4byte gBattleAnimArgs
+_080D50E4: .4byte sub_80D50E8
+ thumb_func_end sub_80D5074
+
+ thumb_func_start sub_80D50E8
+sub_80D50E8: @ 80D50E8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D5170
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ ldr r0, _080D5154 @ =0x00002710
+ cmp r1, r0
+ ble _080D5106
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1
+ strb r0, [r1]
+_080D5106:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r2, [r4, 0x30]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r2, [r4, 0x30]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r4, 0x36]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ strh r0, [r4, 0x38]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080D515C
+ ldr r2, _080D5158 @ =0xffffff00
+ b _080D5164
+ .align 2, 0
+_080D5154: .4byte 0x00002710
+_080D5158: .4byte 0xffffff00
+_080D515C:
+ cmp r0, 0
+ bge _080D5168
+ movs r2, 0x80
+ lsls r2, 1
+_080D5164:
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+_080D5168:
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _080D5176
+_080D5170:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080D5176:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D50E8
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fire_2.s b/asm/fire_2.s
new file mode 100755
index 000000000..b96962bdf
--- /dev/null
+++ b/asm/fire_2.s
@@ -0,0 +1,955 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ @ fire_2
+
+ thumb_func_start sub_80D51A8
+sub_80D51A8: @ 80D51A8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, _080D5200 @ =gBattleAnimBankAttacker
+ ldrb r0, [r5]
+ bl GetBankSide
+ adds r4, r0, 0
+ ldr r0, _080D5204 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080D51EE
+ movs r0, 0x2
+ bl GetBankByPlayerAI
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ beq _080D51E6
+ movs r0, 0x3
+ bl GetBankByPlayerAI
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _080D51EE
+_080D51E6:
+ ldr r1, _080D5208 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080D51EE:
+ ldr r1, _080D520C @ =sub_8079534
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5200: .4byte gBattleAnimBankAttacker
+_080D5204: .4byte gBattleAnimBankTarget
+_080D5208: .4byte gBattleAnimArgs
+_080D520C: .4byte sub_8079534
+ thumb_func_end sub_80D51A8
+
+ thumb_func_start sub_80D5210
+sub_80D5210: @ 80D5210
+ ldr r2, _080D5224 @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ negs r1, r1
+ strh r1, [r2]
+ ldrh r1, [r2, 0x4]
+ negs r1, r1
+ strh r1, [r2, 0x4]
+ ldr r1, _080D5228 @ =sub_8079534
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080D5224: .4byte gBattleAnimArgs
+_080D5228: .4byte sub_8079534
+ thumb_func_end sub_80D5210
+
+ thumb_func_start sub_80D522C
+sub_80D522C: @ 80D522C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D524C @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ movs r1, 0
+ strh r0, [r4, 0x3C]
+ strh r1, [r4, 0x2E]
+ ldr r0, _080D5250 @ =sub_80D5254
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D524C: .4byte gBattleAnimArgs
+_080D5250: .4byte sub_80D5254
+ thumb_func_end sub_80D522C
+
+ thumb_func_start sub_80D5254
+sub_80D5254: @ 80D5254
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_80D5348
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x12
+ bne _080D529E
+ movs r0, 0x19
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080D52A4 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D52A8 @ =sub_80D52AC
+ str r0, [r5, 0x1C]
+_080D529E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D52A4: .4byte gBattleAnimBankTarget
+_080D52A8: .4byte sub_80D52AC
+ thumb_func_end sub_80D5254
+
+ thumb_func_start sub_80D52AC
+sub_80D52AC: @ 80D52AC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D52F4
+ movs r4, 0
+ strh r4, [r6, 0x2E]
+ ldr r5, _080D52EC @ =gBattleAnimBankTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x22]
+ strh r4, [r6, 0x26]
+ strh r4, [r6, 0x24]
+ ldr r1, _080D52F0 @ =sub_80D5324
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ b _080D531E
+ .align 2, 0
+_080D52EC: .4byte gBattleAnimBankTarget
+_080D52F0: .4byte sub_80D5324
+_080D52F4:
+ movs r1, 0x3C
+ ldrsh r0, [r6, r1]
+ movs r1, 0x1C
+ bl Sin
+ ldrh r1, [r6, 0x24]
+ adds r0, r1
+ strh r0, [r6, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r6, r1]
+ movs r1, 0x1C
+ bl Cos
+ ldrh r1, [r6, 0x26]
+ adds r0, r1
+ strh r0, [r6, 0x26]
+ ldrh r0, [r6, 0x3C]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6, 0x3C]
+_080D531E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D52AC
+
+ thumb_func_start sub_80D5324
+sub_80D5324: @ 80D5324
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80D5348
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080D5340
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D5340:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5324
+
+ thumb_func_start sub_80D5348
+sub_80D5348: @ 80D5348
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1C
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1C
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5348
+
+ thumb_func_start sub_80D5374
+sub_80D5374: @ 80D5374
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080D53A8 @ =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]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+ ldr r1, _080D53AC @ =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ ldr r0, _080D53B0 @ =sub_8078364
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D53A8: .4byte gBattleAnimArgs
+_080D53AC: .4byte move_anim_8072740
+_080D53B0: .4byte sub_8078364
+ thumb_func_end sub_80D5374
+
+ thumb_func_start sub_80D53B4
+sub_80D53B4: @ 80D53B4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080D53E8 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x2E]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080D53EC @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ ldr r1, _080D53F0 @ =sub_80D53F4
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D53E8: .4byte gBattleAnimArgs
+_080D53EC: .4byte sub_80782D8
+_080D53F0: .4byte sub_80D53F4
+ thumb_func_end sub_80D53B4
+
+ thumb_func_start sub_80D53F4
+sub_80D53F4: @ 80D53F4
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3]
+ ldrh r1, [r0, 0x30]
+ movs r2, 0
+ strh r1, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ ldr r1, _080D5418 @ =sub_80D541C
+ str r1, [r0, 0x1C]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5418: .4byte sub_80D541C
+ thumb_func_end sub_80D53F4
+
+ thumb_func_start sub_80D541C
+sub_80D541C: @ 80D541C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0xD0
+ strh r0, [r4, 0x32]
+ 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 _080D5468
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D5468:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D541C
+
+ thumb_func_start sub_80D5470
+sub_80D5470: @ 80D5470
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D54D0 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x26]
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ ldr r2, _080D54D4 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x10]
+ ldr r0, _080D54D8 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8078E70
+ ldr r0, _080D54DC @ =sub_80D54E0
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D54D0: .4byte gTasks
+_080D54D4: .4byte gSprites
+_080D54D8: .4byte gBattleAnimBankAttacker
+_080D54DC: .4byte sub_80D54E0
+ thumb_func_end sub_80D5470
+
+ thumb_func_start sub_80D54E0
+sub_80D54E0: @ 80D54E0
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080D5508 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bls _080D54FC
+ b _080D57BA
+_080D54FC:
+ lsls r0, 2
+ ldr r1, _080D550C @ =_080D5510
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D5508: .4byte gTasks
+_080D550C: .4byte _080D5510
+ .align 2, 0
+_080D5510:
+ .4byte _080D552C
+ .4byte _080D5552
+ .4byte _080D5604
+ .4byte _080D5664
+ .4byte _080D5682
+ .4byte _080D5758
+ .4byte _080D57AC
+_080D552C:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 1
+ movs r0, 0xE0
+ str r0, [sp]
+ movs r0, 0x80
+ lsls r0, 2
+ str r0, [sp, 0x4]
+ movs r0, 0x20
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r2, r3, 0
+ bl sub_8079C08
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D5552:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D559A
+ 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 _080D5588
+ ldr r2, _080D5584 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ b _080D5598
+ .align 2, 0
+_080D5584: .4byte gSprites
+_080D5588:
+ ldr r2, _080D55FC @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080D5600 @ =0x0000fffd
+_080D5598:
+ strh r1, [r0, 0x24]
+_080D559A:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D55C8
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D55C8
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldr r2, _080D55FC @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x1
+ strh r1, [r0, 0x22]
+_080D55C8:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080D55D8
+ b _080D57BA
+_080D55D8:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079A64
+ ldr r2, _080D55FC @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ b _080D57A0
+ .align 2, 0
+_080D55FC: .4byte gSprites
+_080D5600: .4byte 0x0000fffd
+_080D5604:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _080D5614
+ b _080D57BA
+_080D5614:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D563E
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xF0
+ str r0, [sp, 0x4]
+ movs r0, 0x6
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_8079C08
+ b _080D565E
+_080D563E:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xC0
+ str r0, [sp, 0x4]
+ movs r0, 0x6
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_8079C08
+_080D565E:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080D57A0
+_080D5664:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D5672
+ b _080D57BA
+_080D5672:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ movs r2, 0x6
+ bl sub_80D57C4
+ b _080D57A0
+_080D5682:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D56D0
+ 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 _080D56BC
+ ldr r2, _080D56B8 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x3
+ b _080D56CE
+ .align 2, 0
+_080D56B8: .4byte gSprites
+_080D56BC:
+ ldr r2, _080D5708 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x3
+_080D56CE:
+ strh r1, [r0, 0x26]
+_080D56D0:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ ble _080D57BA
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D570C
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xF0
+ bl sub_8079C08
+ b _080D572A
+ .align 2, 0
+_080D5708: .4byte gSprites
+_080D570C:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xC0
+ bl sub_8079C08
+_080D572A:
+ ldrh r1, [r4, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5748
+ ldr r2, _080D5754 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x3
+ strh r1, [r0, 0x26]
+_080D5748:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ b _080D57A0
+ .align 2, 0
+_080D5754: .4byte gSprites
+_080D5758:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D5774
+ ldr r2, _080D57A8 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x1
+ strh r1, [r0, 0x22]
+_080D5774:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080D57BA
+ ldr r2, _080D57A8 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ strh r1, [r0, 0x22]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ strh r5, [r4, 0xC]
+_080D57A0:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D57BA
+ .align 2, 0
+_080D57A8: .4byte gSprites
+_080D57AC:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D57BA
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080D57BA:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D54E0
+
+ thumb_func_start sub_80D57C4
+sub_80D57C4: @ 80D57C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ adds r0, r4, 0
+ bl sub_80D5940
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r1, _080D5814 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r4, [r0, 0x20]
+ ldr r0, _080D5818 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D581C
+ adds r0, r4, 0
+ subs r0, 0xC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0x1
+ b _080D5826
+ .align 2, 0
+_080D5814: .4byte gSprites
+_080D5818: .4byte gBattleAnimBankAttacker
+_080D581C:
+ adds r0, r4, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0xFF
+_080D5826:
+ movs r6, 0
+ movs r5, 0
+ lsls r4, 16
+ str r4, [sp, 0x8]
+ mov r1, r9
+ lsls r1, 16
+ str r1, [sp, 0x4]
+ ldr r2, _080D58E0 @ =gUnknown_083D96DC
+ mov r9, r2
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ mov r3, r8
+ lsls r3, 1
+ mov r10, r3
+_080D5844:
+ ldr r0, _080D58E4 @ =gSpriteTemplate_83D96C4
+ ldr r2, [sp, 0x8]
+ asrs r1, r2, 16
+ ldr r3, [sp, 0x4]
+ asrs r2, r3, 16
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080D58C6
+ ldr r1, _080D58E8 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ lsls r0, r5, 2
+ adds r0, 0x40
+ adds r1, r0
+ ldr r3, _080D58EC @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r3, _080D58F0 @ =0xfffffc00
+ adds r0, r3, 0
+ ands r2, r0
+ orrs r2, r1
+ strh r2, [r4, 0x4]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x4
+ bls _080D588E
+ movs r5, 0
+_080D588E:
+ lsls r2, r6, 2
+ mov r1, r9
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ ldr r3, [sp]
+ adds r1, r0, 0
+ muls r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _080D58F4 @ =gUnknown_083D96DC + 0x2
+ adds r2, r0
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ adds r0, r4, 0
+ bl sub_80D5994
+ strh r7, [r4, 0x3A]
+ mov r0, r8
+ strh r0, [r4, 0x3C]
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ add r0, r10
+ ldr r1, _080D58F8 @ =gTasks + 0x8
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+_080D58C6:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x6
+ bls _080D5844
+ 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
+_080D58E0: .4byte gUnknown_083D96DC
+_080D58E4: .4byte gSpriteTemplate_83D96C4
+_080D58E8: .4byte gSprites
+_080D58EC: .4byte 0x000003ff
+_080D58F0: .4byte 0xfffffc00
+_080D58F4: .4byte gUnknown_083D96DC + 0x2
+_080D58F8: .4byte gTasks + 0x8
+ thumb_func_end sub_80D57C4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_80C5CD4.s b/asm/fldeff_80C5CD4.s
deleted file mode 100644
index 011ce6427..000000000
--- a/asm/fldeff_80C5CD4.s
+++ /dev/null
@@ -1,2766 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80C5CD4
-sub_80C5CD4: @ 80C5CD4
- push {r4-r7,lr}
- sub sp, 0x28
- adds r7, r0, 0
- ldr r0, _080C5D64 @ =gUnknown_083D1898
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- ldr r0, _080C5D68 @ =gUnknown_083D18A0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r1, sp
- ldr r0, _080C5D6C @ =gSpriteTemplate_83D18A8
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldrh r3, [r7]
- lsls r2, r3, 16
- add r0, sp, 0x18
- ldrh r1, [r0, 0x4]
- orrs r1, r2
- str r1, [r0, 0x4]
- mov r1, sp
- movs r6, 0
- strh r3, [r1]
- ldrh r2, [r7, 0x2]
- ldr r5, _080C5D70 @ =0xffff0000
- add r4, sp, 0x20
- ldr r1, [r4, 0x4]
- ands r1, r5
- orrs r1, r2
- str r1, [r4, 0x4]
- mov r1, sp
- strh r2, [r1, 0x2]
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- movs r0, 0x1
- strh r0, [r7, 0xC]
- strh r6, [r7, 0xA]
- strh r6, [r7, 0x8]
- ldrh r0, [r7, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- bics r5, r1
- str r5, [r7, 0x10]
- ldrh r0, [r7, 0x4]
- cmp r0, 0
- bne _080C5D4E
- movs r0, 0x10
- strh r0, [r7, 0x4]
-_080C5D4E:
- ldrh r0, [r7, 0x6]
- cmp r0, 0
- bne _080C5D58
- movs r0, 0x14
- strh r0, [r7, 0x6]
-_080C5D58:
- ldr r0, _080C5D74 @ =gUnknown_020387EC
- str r7, [r0]
- movs r4, 0
- ldr r5, _080C5D78 @ =gSprites
- b _080C5D94
- .align 2, 0
-_080C5D64: .4byte gUnknown_083D1898
-_080C5D68: .4byte gUnknown_083D18A0
-_080C5D6C: .4byte gSpriteTemplate_83D18A8
-_080C5D70: .4byte 0xffff0000
-_080C5D74: .4byte gUnknown_020387EC
-_080C5D78: .4byte gSprites
-_080C5D7C:
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r7, 0x4]
- cmp r4, 0x3
- bhi _080C5D8C
- negs r1, r1
-_080C5D8C:
- strh r1, [r0, 0x2E]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080C5D94:
- cmp r4, 0x7
- bhi _080C5DB2
- lsls r1, r4, 5
- adds r1, 0x8
- lsls r1, 16
- asrs r1, 16
- mov r0, sp
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- bne _080C5D7C
-_080C5DB2:
- ldr r1, _080C5DC8 @ =REG_BLDCNT
- movs r0, 0xBF
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x10
- strh r0, [r1]
- add sp, 0x28
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5DC8: .4byte REG_BLDCNT
- thumb_func_end sub_80C5CD4
-
- thumb_func_start sub_80C5DCC
-sub_80C5DCC: @ 80C5DCC
- push {r4,lr}
- ldr r4, _080C5E10 @ =gUnknown_020387EC
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- cmp r0, 0
- bne _080C5DF0
- ldr r0, [r1, 0x10]
- ldr r2, _080C5E14 @ =0x0000ffff
- movs r1, 0x10
- bl BlendPalettes
- ldr r0, _080C5E18 @ =sub_80C603C
- bl sub_80C61B0
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C5DF0:
- ldr r1, [r4]
- ldrh r0, [r1, 0xA]
- cmp r0, 0x7
- bls _080C5E0A
- ldrh r0, [r1, 0x6]
- ldrh r2, [r1, 0xC]
- adds r0, r2
- movs r2, 0
- strh r0, [r1, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4F
- bgt _080C5E1C
-_080C5E0A:
- movs r0, 0
- b _080C5E2E
- .align 2, 0
-_080C5E10: .4byte gUnknown_020387EC
-_080C5E14: .4byte 0x0000ffff
-_080C5E18: .4byte sub_80C603C
-_080C5E1C:
- movs r0, 0x50
- strh r0, [r1, 0xC]
- ldr r0, _080C5E34 @ =REG_BLDCNT
- strh r2, [r0]
- adds r0, 0x4
- strh r2, [r0]
- bl ClearGpuRegBits
- movs r0, 0x1
-_080C5E2E:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C5E34: .4byte REG_BLDCNT
- thumb_func_end sub_80C5DCC
-
- thumb_func_start sub_80C5E38
-sub_80C5E38: @ 80C5E38
- push {r4-r7,lr}
- sub sp, 0x28
- adds r7, r0, 0
- ldr r0, _080C5EC8 @ =gUnknown_083D1898
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- ldr r0, _080C5ECC @ =gUnknown_083D18A0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r1, sp
- ldr r0, _080C5ED0 @ =gSpriteTemplate_83D18C0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldrh r3, [r7]
- lsls r2, r3, 16
- add r0, sp, 0x18
- ldrh r1, [r0, 0x4]
- orrs r1, r2
- str r1, [r0, 0x4]
- mov r1, sp
- movs r6, 0
- strh r3, [r1]
- ldrh r2, [r7, 0x2]
- ldr r5, _080C5ED4 @ =0xffff0000
- add r4, sp, 0x20
- ldr r1, [r4, 0x4]
- ands r1, r5
- orrs r1, r2
- str r1, [r4, 0x4]
- mov r1, sp
- strh r2, [r1, 0x2]
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- movs r0, 0x50
- strh r0, [r7, 0xC]
- strh r6, [r7, 0x8]
- strh r6, [r7, 0xA]
- ldrh r0, [r7, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- bics r5, r1
- str r5, [r7, 0x10]
- ldrh r0, [r7, 0x4]
- cmp r0, 0
- bne _080C5EB2
- movs r0, 0x10
- strh r0, [r7, 0x4]
-_080C5EB2:
- ldrh r0, [r7, 0x6]
- cmp r0, 0
- bne _080C5EBC
- movs r0, 0x14
- strh r0, [r7, 0x6]
-_080C5EBC:
- ldr r0, _080C5ED8 @ =gUnknown_020387EC
- str r7, [r0]
- movs r5, 0
- ldr r6, _080C5EDC @ =gSprites
- b _080C5F4A
- .align 2, 0
-_080C5EC8: .4byte gUnknown_083D1898
-_080C5ECC: .4byte gUnknown_083D18A0
-_080C5ED0: .4byte gSpriteTemplate_83D18C0
-_080C5ED4: .4byte 0xffff0000
-_080C5ED8: .4byte gUnknown_020387EC
-_080C5EDC: .4byte gSprites
-_080C5EE0:
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r7, 0x4]
- strh r0, [r1, 0x2E]
- movs r0, 0x1
- strh r0, [r1, 0x30]
- ldr r1, _080C5EF4 @ =gSprites
- b _080C5F2A
- .align 2, 0
-_080C5EF4: .4byte gSprites
-_080C5EF8:
- lsls r1, r5, 21
- movs r0, 0x80
- lsls r0, 16
- adds r1, r0
- asrs r1, 16
- mov r0, sp
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _080C5F6E
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r7, 0x4]
- negs r0, r0
- strh r0, [r1, 0x2E]
- ldr r0, _080C5F88 @ =0x0000ffff
- strh r0, [r1, 0x30]
- ldr r1, _080C5F8C @ =gSprites
- lsls r4, r5, 5
-_080C5F2A:
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x8
- movs r2, 0
- strh r1, [r0, 0x32]
- strh r2, [r0, 0x36]
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080C5F4A:
- cmp r5, 0x7
- bhi _080C5F6E
- cmp r5, 0x3
- bhi _080C5EF8
- lsls r4, r5, 5
- adds r1, r4, 0
- subs r1, 0x70
- lsls r1, 16
- asrs r1, 16
- mov r0, sp
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- bne _080C5EE0
-_080C5F6E:
- ldr r1, _080C5F90 @ =REG_BLDCNT
- movs r0, 0xFF
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x10
- strh r0, [r1]
- ldr r0, _080C5F94 @ =sub_80C6078
- bl sub_80C61B0
- add sp, 0x28
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5F88: .4byte 0x0000ffff
-_080C5F8C: .4byte gSprites
-_080C5F90: .4byte REG_BLDCNT
-_080C5F94: .4byte sub_80C6078
- thumb_func_end sub_80C5E38
-
- thumb_func_start sub_80C5F98
-sub_80C5F98: @ 80C5F98
- push {r4,lr}
- ldr r4, _080C5FB0 @ =gUnknown_020387EC
- ldr r2, [r4]
- ldrh r0, [r2, 0x8]
- cmp r0, 0x1
- beq _080C5FEC
- cmp r0, 0x1
- bgt _080C5FB4
- cmp r0, 0
- beq _080C5FBA
- b _080C602C
- .align 2, 0
-_080C5FB0: .4byte gUnknown_020387EC
-_080C5FB4:
- cmp r0, 0x2
- beq _080C6008
- b _080C602C
-_080C5FBA:
- ldrh r0, [r2, 0xC]
- ldrh r1, [r2, 0x6]
- subs r0, r1
- strh r0, [r2, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bgt _080C6034
- ldr r0, [r2, 0x10]
- ldr r2, _080C5FE4 @ =0x0000ffff
- movs r1, 0x10
- bl BlendPalettes
- ldr r0, _080C5FE8 @ =sub_80C603C
- bl SetHBlankCallback
- ldr r1, [r4]
- movs r0, 0x1
- strh r0, [r1, 0xC]
- b _080C6000
- .align 2, 0
-_080C5FE4: .4byte 0x0000ffff
-_080C5FE8: .4byte sub_80C603C
-_080C5FEC:
- ldrh r0, [r2, 0xA]
- cmp r0, 0x8
- bne _080C6034
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r1, [r4]
-_080C6000:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _080C6034
-_080C6008:
- ldr r0, _080C6030 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldrh r0, [r2]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- ldrh r0, [r0, 0x2]
- bl FreeSpritePaletteByTag
- bl ClearGpuRegBits
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C602C:
- movs r0, 0x1
- b _080C6036
- .align 2, 0
-_080C6030: .4byte REG_BLDCNT
-_080C6034:
- movs r0, 0
-_080C6036:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C5F98
-
- thumb_func_start sub_80C603C
-sub_80C603C: @ 80C603C
- push {lr}
- sub sp, 0x4
- mov r2, sp
- ldr r0, _080C6060 @ =REG_VCOUNT
- ldrh r1, [r0]
- movs r3, 0xFF
- adds r0, r3, 0
- ands r0, r1
- strh r0, [r2]
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, 0x50
- bne _080C6068
- ldr r1, _080C6064 @ =REG_BLDCNT
- movs r0, 0x8F
- strh r0, [r1]
- b _080C606C
- .align 2, 0
-_080C6060: .4byte REG_VCOUNT
-_080C6064: .4byte REG_BLDCNT
-_080C6068:
- ldr r0, _080C6074 @ =REG_BLDCNT
- strh r3, [r0]
-_080C606C:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C6074: .4byte REG_BLDCNT
- thumb_func_end sub_80C603C
-
- thumb_func_start sub_80C6078
-sub_80C6078: @ 80C6078
- push {lr}
- sub sp, 0x4
- mov r2, sp
- ldr r0, _080C60B0 @ =REG_VCOUNT
- ldrh r1, [r0]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r2]
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, _080C60B4 @ =gUnknown_020387EC
- ldr r0, [r0]
- movs r3, 0xC
- ldrsh r2, [r0, r3]
- movs r0, 0x50
- subs r0, r2
- cmp r1, r0
- ble _080C60BC
- mov r0, sp
- ldrh r1, [r0]
- adds r0, r2, 0
- adds r0, 0x50
- cmp r1, r0
- bge _080C60BC
- ldr r1, _080C60B8 @ =REG_BLDY
- movs r0, 0
- b _080C60C0
- .align 2, 0
-_080C60B0: .4byte REG_VCOUNT
-_080C60B4: .4byte gUnknown_020387EC
-_080C60B8: .4byte REG_BLDY
-_080C60BC:
- ldr r1, _080C60C8 @ =REG_BLDY
- movs r0, 0x10
-_080C60C0:
- strh r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C60C8: .4byte REG_BLDY
- thumb_func_end sub_80C6078
-
- thumb_func_start sub_80C60CC
-sub_80C60CC: @ 80C60CC
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bls _080C611C
- adds r0, r2, 0
- bl DestroySprite
- ldr r4, _080C6124 @ =gUnknown_020387EC
- ldr r1, [r4]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- bne _080C611C
- ldrh r0, [r1]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- ldrh r0, [r0, 0x2]
- bl FreeSpritePaletteByTag
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- ldr r2, _080C6128 @ =0x0000ffff
- movs r1, 0
- bl BlendPalettes
- ldr r0, _080C612C @ =sub_80C6078
- bl SetHBlankCallback
-_080C611C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6124: .4byte gUnknown_020387EC
-_080C6128: .4byte 0x0000ffff
-_080C612C: .4byte sub_80C6078
- thumb_func_end sub_80C60CC
-
- thumb_func_start sub_80C6130
-sub_80C6130: @ 80C6130
- push {r4,r5,lr}
- adds r2, r0, 0
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080C61AA
- ldr r1, _080C6184 @ =gUnknown_020387EC
- ldr r0, [r1]
- movs r3, 0xC
- ldrsh r4, [r0, r3]
- adds r5, r1, 0
- cmp r4, 0x1
- bne _080C61AA
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- adds r0, 0xF
- lsls r0, 16
- movs r1, 0x87
- lsls r1, 17
- cmp r0, r1
- bhi _080C616C
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
-_080C616C:
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _080C6188
- movs r0, 0x20
- ldrsh r1, [r2, r0]
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r1, r0
- blt _080C6196
- b _080C6194
- .align 2, 0
-_080C6184: .4byte gUnknown_020387EC
-_080C6188:
- movs r0, 0x20
- ldrsh r1, [r2, r0]
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bgt _080C6196
-_080C6194:
- strh r4, [r2, 0x36]
-_080C6196:
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080C61AA
- ldr r0, [r5]
- ldrh r1, [r0, 0xA]
- adds r1, 0x1
- strh r1, [r0, 0xA]
- ldrh r0, [r2, 0x32]
- strh r0, [r2, 0x20]
-_080C61AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C6130
-
- thumb_func_start sub_80C61B0
-sub_80C61B0: @ 80C61B0
- push {r4-r6,lr}
- ldr r2, _080C61F0 @ =INTR_CHECK
- ldrh r1, [r2]
- movs r5, 0x2
- orrs r1, r5
- strh r1, [r2]
- ldr r3, _080C61F4 @ =REG_DISPSTAT
- ldrh r1, [r3]
- movs r2, 0x10
- orrs r1, r2
- strh r1, [r3]
- ldr r4, _080C61F8 @ =0x04000208
- ldrh r2, [r4]
- movs r6, 0
- strh r6, [r4]
- ldr r3, _080C61FC @ =0x04000200
- ldrh r1, [r3]
- orrs r1, r5
- strh r1, [r3]
- strh r2, [r4]
- ldr r2, _080C6200 @ =gMain
- ldrh r1, [r2, 0x1C]
- orrs r1, r5
- ldrh r3, [r2, 0x1C]
- orrs r1, r6
- strh r1, [r2, 0x1C]
- bl SetHBlankCallback
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C61F0: .4byte INTR_CHECK
-_080C61F4: .4byte REG_DISPSTAT
-_080C61F8: .4byte 0x04000208
-_080C61FC: .4byte 0x04000200
-_080C6200: .4byte gMain
- thumb_func_end sub_80C61B0
-
- thumb_func_start ClearGpuRegBits
-ClearGpuRegBits: @ 80C6204
- push {r4,r5,lr}
- ldr r3, _080C6248 @ =INTR_CHECK
- ldrh r1, [r3]
- ldr r2, _080C624C @ =0x0000fffd
- adds r0, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r3, _080C6250 @ =REG_DISPSTAT
- ldrh r1, [r3]
- ldr r0, _080C6254 @ =0x0000ffef
- ands r0, r1
- strh r0, [r3]
- ldr r4, _080C6258 @ =0x04000208
- ldrh r3, [r4]
- movs r0, 0
- strh r0, [r4]
- ldr r5, _080C625C @ =0x04000200
- ldrh r1, [r5]
- adds r0, r2, 0
- ands r0, r1
- strh r0, [r5]
- strh r3, [r4]
- ldr r0, _080C6260 @ =gMain
- ldrh r1, [r0, 0x1C]
- ands r2, r1
- ldrh r1, [r0, 0x1C]
- strh r2, [r0, 0x1C]
- movs r0, 0
- bl SetHBlankCallback
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6248: .4byte INTR_CHECK
-_080C624C: .4byte 0x0000fffd
-_080C6250: .4byte REG_DISPSTAT
-_080C6254: .4byte 0x0000ffef
-_080C6258: .4byte 0x04000208
-_080C625C: .4byte 0x04000200
-_080C6260: .4byte gMain
- thumb_func_end ClearGpuRegBits
-
- thumb_func_start sub_80C6264
-sub_80C6264: @ 80C6264
- push {lr}
- ldr r0, _080C6278 @ =gUnknown_0203923C
- ldr r1, _080C627C @ =gMapHeader
- ldr r1, [r1, 0x4]
- bl sub_80BBFD8
- bl sub_80BB5E4
- pop {r0}
- bx r0
- .align 2, 0
-_080C6278: .4byte gUnknown_0203923C
-_080C627C: .4byte gMapHeader
- thumb_func_end sub_80C6264
-
- thumb_func_start sub_80C6280
-sub_80C6280: @ 80C6280
- push {lr}
- ldr r1, _080C6294 @ =gFieldEffectArguments
- ldr r0, [r1, 0x4]
- cmp r0, 0x2
- beq _080C62AA
- cmp r0, 0x2
- bgt _080C6298
- cmp r0, 0x1
- beq _080C62A2
- b _080C62BE
- .align 2, 0
-_080C6294: .4byte gFieldEffectArguments
-_080C6298:
- cmp r0, 0x3
- beq _080C62AE
- cmp r0, 0x4
- beq _080C62B8
- b _080C62BE
-_080C62A2:
- movs r0, 0x8
- str r0, [r1, 0x14]
- movs r0, 0x28
- b _080C62BC
-_080C62AA:
- movs r0, 0x8
- b _080C62BA
-_080C62AE:
- movs r0, 0x8
- negs r0, r0
- str r0, [r1, 0x14]
- movs r0, 0x18
- b _080C62BC
-_080C62B8:
- movs r0, 0x18
-_080C62BA:
- str r0, [r1, 0x14]
-_080C62BC:
- str r0, [r1, 0x18]
-_080C62BE:
- pop {r0}
- bx r0
- thumb_func_end sub_80C6280
-
- thumb_func_start SetUpFieldMove_SecretPower
-SetUpFieldMove_SecretPower: @ 80C62C4
- push {r4,lr}
- bl sub_80BB63C
- ldr r0, _080C6318 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080C636E
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080C636E
- ldr r4, _080C631C @ =gUnknown_0203923C
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsSecretBaseCave
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C6330
- bl sub_80C6264
- ldr r1, _080C6320 @ =gFieldCallback
- ldr r0, _080C6324 @ =FieldCallback_Teleport
- str r0, [r1]
- ldr r1, _080C6328 @ =gUnknown_03005CE4
- ldr r0, _080C632C @ =sub_80C639C
- b _080C6380
- .align 2, 0
-_080C6318: .4byte gScriptResult
-_080C631C: .4byte gUnknown_0203923C
-_080C6320: .4byte gFieldCallback
-_080C6324: .4byte FieldCallback_Teleport
-_080C6328: .4byte gUnknown_03005CE4
-_080C632C: .4byte sub_80C639C
-_080C6330:
- adds r0, r4, 0
- bl MetatileBehavior_IsSecretBaseTree
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C6360
- bl sub_80C6264
- ldr r1, _080C6350 @ =gFieldCallback
- ldr r0, _080C6354 @ =FieldCallback_Teleport
- str r0, [r1]
- ldr r1, _080C6358 @ =gUnknown_03005CE4
- ldr r0, _080C635C @ =sub_80C64A8
- b _080C6380
- .align 2, 0
-_080C6350: .4byte gFieldCallback
-_080C6354: .4byte FieldCallback_Teleport
-_080C6358: .4byte gUnknown_03005CE4
-_080C635C: .4byte sub_80C64A8
-_080C6360:
- adds r0, r4, 0
- bl MetatileBehavior_IsSecretBaseShrub
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C6372
-_080C636E:
- movs r0, 0
- b _080C6384
-_080C6372:
- bl sub_80C6264
- ldr r1, _080C638C @ =gFieldCallback
- ldr r0, _080C6390 @ =FieldCallback_Teleport
- str r0, [r1]
- ldr r1, _080C6394 @ =gUnknown_03005CE4
- ldr r0, _080C6398 @ =sub_80C660C
-_080C6380:
- str r0, [r1]
- movs r0, 0x1
-_080C6384:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C638C: .4byte gFieldCallback
-_080C6390: .4byte FieldCallback_Teleport
-_080C6394: .4byte gUnknown_03005CE4
-_080C6398: .4byte sub_80C660C
- thumb_func_end SetUpFieldMove_SecretPower
-
- thumb_func_start sub_80C639C
-sub_80C639C: @ 80C639C
- push {lr}
- ldr r1, _080C63B0 @ =gFieldEffectArguments
- ldr r0, _080C63B4 @ =gLastFieldPokeMenuOpened
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080C63B8 @ =gUnknown_081A2CE6
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C63B0: .4byte gFieldEffectArguments
-_080C63B4: .4byte gLastFieldPokeMenuOpened
-_080C63B8: .4byte gUnknown_081A2CE6
- thumb_func_end sub_80C639C
-
- thumb_func_start FldEff_UseSecretPowerCave
-FldEff_UseSecretPowerCave: @ 80C63BC
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C63E0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080C63E4 @ =sub_80C63E8
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C63E0: .4byte gTasks
-_080C63E4: .4byte sub_80C63E8
- thumb_func_end FldEff_UseSecretPowerCave
-
- thumb_func_start sub_80C63E8
-sub_80C63E8: @ 80C63E8
- push {lr}
- movs r0, 0xB
- bl FieldEffectActiveListRemove
- movs r0, 0x37
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80C63E8
-
- thumb_func_start FldEff_SecretPowerCave
-FldEff_SecretPowerCave: @ 80C63FC
- push {r4,lr}
- bl sub_80C6280
- ldr r0, _080C643C @ =gSpriteTemplate_83D2614
- ldr r3, _080C6440 @ =gSprites
- ldr r1, _080C6444 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 23
- ldr r4, _080C6448 @ =gFieldEffectArguments
- ldr r3, [r4, 0x14]
- adds r1, r3
- lsls r1, 16
- asrs r1, 16
- ldrb r2, [r2]
- ldr r3, [r4, 0x18]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x94
- bl CreateSprite
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C643C: .4byte gSpriteTemplate_83D2614
-_080C6440: .4byte gSprites
-_080C6444: .4byte gPlayerAvatar
-_080C6448: .4byte gFieldEffectArguments
- thumb_func_end FldEff_SecretPowerCave
-
- thumb_func_start sub_80C644C
-sub_80C644C: @ 80C644C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x83
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080C6464 @ =sub_80C6468
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6464: .4byte sub_80C6468
- thumb_func_end sub_80C644C
-
- thumb_func_start sub_80C6468
-sub_80C6468: @ 80C6468
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r1, r3]
- cmp r0, 0x27
- bgt _080C6488
- adds r0, r2, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080C6490
- bl sub_80BB800
- b _080C6490
-_080C6488:
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080C6494 @ =sub_80C6498
- str r0, [r1, 0x1C]
-_080C6490:
- pop {r0}
- bx r0
- .align 2, 0
-_080C6494: .4byte sub_80C6498
- thumb_func_end sub_80C6468
-
- thumb_func_start sub_80C6498
-sub_80C6498: @ 80C6498
- push {lr}
- movs r1, 0x37
- bl FieldEffectStop
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80C6498
-
- thumb_func_start sub_80C64A8
-sub_80C64A8: @ 80C64A8
- push {lr}
- ldr r1, _080C64BC @ =gFieldEffectArguments
- ldr r0, _080C64C0 @ =gLastFieldPokeMenuOpened
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080C64C4 @ =gUnknown_081A2D3E
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C64BC: .4byte gFieldEffectArguments
-_080C64C0: .4byte gLastFieldPokeMenuOpened
-_080C64C4: .4byte gUnknown_081A2D3E
- thumb_func_end sub_80C64A8
-
- thumb_func_start FldEff_UseSecretPowerTree
-FldEff_UseSecretPowerTree: @ 80C64C8
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C64EC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080C64F0 @ =sub_80C64F4
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C64EC: .4byte gTasks
-_080C64F0: .4byte sub_80C64F4
- thumb_func_end FldEff_UseSecretPowerTree
-
- thumb_func_start sub_80C64F4
-sub_80C64F4: @ 80C64F4
- push {lr}
- movs r0, 0x1A
- bl FieldEffectActiveListRemove
- movs r0, 0x38
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80C64F4
-
- thumb_func_start FldEff_SecretPowerTree
-FldEff_SecretPowerTree: @ 80C6508
- push {r4,lr}
- ldr r1, _080C6580 @ =gUnknown_0203923C
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r2, r0, 0
- ldr r1, _080C6584 @ =0x00000fff
- adds r0, r1, 0
- ands r2, r0
- cmp r2, 0x96
- bne _080C652A
- ldr r1, _080C6588 @ =gFieldEffectArguments
- movs r0, 0
- str r0, [r1, 0x1C]
-_080C652A:
- cmp r2, 0x9C
- bne _080C6534
- ldr r1, _080C6588 @ =gFieldEffectArguments
- movs r0, 0x2
- str r0, [r1, 0x1C]
-_080C6534:
- bl sub_80C6280
- ldr r0, _080C658C @ =gSpriteTemplate_83D262C
- ldr r3, _080C6590 @ =gSprites
- ldr r1, _080C6594 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 23
- ldr r4, _080C6588 @ =gFieldEffectArguments
- ldr r3, [r4, 0x14]
- adds r1, r3
- lsls r1, 16
- asrs r1, 16
- ldrb r2, [r2]
- ldr r3, [r4, 0x18]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x94
- bl CreateSprite
- ldr r0, [r4, 0x1C]
- cmp r0, 0x1
- beq _080C6572
- cmp r0, 0x3
- bne _080C6576
-_080C6572:
- bl sub_80BB800
-_080C6576:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C6580: .4byte gUnknown_0203923C
-_080C6584: .4byte 0x00000fff
-_080C6588: .4byte gFieldEffectArguments
-_080C658C: .4byte gSpriteTemplate_83D262C
-_080C6590: .4byte gSprites
-_080C6594: .4byte gPlayerAvatar
- thumb_func_end FldEff_SecretPowerTree
-
- thumb_func_start sub_80C6598
-sub_80C6598: @ 80C6598
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x9B
- bl PlaySE
- ldr r0, _080C65BC @ =gFieldEffectArguments
- ldr r1, [r0, 0x1C]
- adds r2, r4, 0
- adds r2, 0x2A
- movs r0, 0
- strb r1, [r2]
- strh r0, [r4, 0x2E]
- ldr r0, _080C65C0 @ =sub_80C65C4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C65BC: .4byte gFieldEffectArguments
-_080C65C0: .4byte sub_80C65C4
- thumb_func_end sub_80C6598
-
- thumb_func_start sub_80C65C4
-sub_80C65C4: @ 80C65C4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x27
- ble _080C65EE
- ldr r0, _080C65F4 @ =gFieldEffectArguments
- ldr r0, [r0, 0x1C]
- cmp r0, 0
- beq _080C65E2
- cmp r0, 0x2
- bne _080C65E6
-_080C65E2:
- bl sub_80BB800
-_080C65E6:
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080C65F8 @ =sub_80C65FC
- str r0, [r4, 0x1C]
-_080C65EE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C65F4: .4byte gFieldEffectArguments
-_080C65F8: .4byte sub_80C65FC
- thumb_func_end sub_80C65C4
-
- thumb_func_start sub_80C65FC
-sub_80C65FC: @ 80C65FC
- push {lr}
- movs r1, 0x38
- bl FieldEffectStop
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80C65FC
-
- thumb_func_start sub_80C660C
-sub_80C660C: @ 80C660C
- push {lr}
- ldr r1, _080C6620 @ =gFieldEffectArguments
- ldr r0, _080C6624 @ =gLastFieldPokeMenuOpened
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080C6628 @ =gUnknown_081A2D96
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C6620: .4byte gFieldEffectArguments
-_080C6624: .4byte gLastFieldPokeMenuOpened
-_080C6628: .4byte gUnknown_081A2D96
- thumb_func_end sub_80C660C
-
- thumb_func_start FldEff_UseSecretPowerShrub
-FldEff_UseSecretPowerShrub: @ 80C662C
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C6650 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080C6654 @ =sub_80C6658
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C6650: .4byte gTasks
-_080C6654: .4byte sub_80C6658
- thumb_func_end FldEff_UseSecretPowerShrub
-
- thumb_func_start sub_80C6658
-sub_80C6658: @ 80C6658
- push {lr}
- movs r0, 0x1B
- bl FieldEffectActiveListRemove
- movs r0, 0x39
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80C6658
-
- thumb_func_start FldEff_SecretPowerShrub
-FldEff_SecretPowerShrub: @ 80C666C
- push {r4,lr}
- bl sub_80C6280
- ldr r0, _080C66AC @ =gSpriteTemplate_83D2644
- ldr r3, _080C66B0 @ =gSprites
- ldr r1, _080C66B4 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 23
- ldr r4, _080C66B8 @ =gFieldEffectArguments
- ldr r3, [r4, 0x14]
- adds r1, r3
- lsls r1, 16
- asrs r1, 16
- ldrb r2, [r2]
- ldr r3, [r4, 0x18]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x94
- bl CreateSprite
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C66AC: .4byte gSpriteTemplate_83D2644
-_080C66B0: .4byte gSprites
-_080C66B4: .4byte gPlayerAvatar
-_080C66B8: .4byte gFieldEffectArguments
- thumb_func_end FldEff_SecretPowerShrub
-
- thumb_func_start sub_80C66BC
-sub_80C66BC: @ 80C66BC
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0xA9
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080C66D4 @ =sub_80C66D8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C66D4: .4byte sub_80C66D8
- thumb_func_end sub_80C66BC
-
- thumb_func_start sub_80C66D8
-sub_80C66D8: @ 80C66D8
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r1, r3]
- cmp r0, 0x27
- bgt _080C66F8
- adds r0, r2, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080C6700
- bl sub_80BB800
- b _080C6700
-_080C66F8:
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080C6704 @ =sub_80C6708
- str r0, [r1, 0x1C]
-_080C6700:
- pop {r0}
- bx r0
- .align 2, 0
-_080C6704: .4byte sub_80C6708
- thumb_func_end sub_80C66D8
-
- thumb_func_start sub_80C6708
-sub_80C6708: @ 80C6708
- push {lr}
- movs r1, 0x39
- bl FieldEffectStop
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80C6708
-
- thumb_func_start FldEff_PCTurnOn
-FldEff_PCTurnOn: @ 80C6718
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- ldr r0, _080C6758 @ =sub_80C6760
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C675C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- mov r0, sp
- ldrh r0, [r0]
- movs r2, 0
- strh r0, [r1, 0x8]
- ldrh r0, [r4]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C6758: .4byte sub_80C6760
-_080C675C: .4byte gTasks
- thumb_func_end FldEff_PCTurnOn
-
- thumb_func_start sub_80C6760
-sub_80C6760: @ 80C6760
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C6788 @ =gTasks + 0x8
- adds r4, r0, r1
- ldrh r0, [r4, 0x4]
- subs r0, 0x4
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bhi _080C682E
- lsls r0, 2
- ldr r1, _080C678C @ =_080C6790
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C6788: .4byte gTasks + 0x8
-_080C678C: .4byte _080C6790
- .align 2, 0
-_080C6790:
- .4byte _080C67D4
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C67E2
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C67D4
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C67E2
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C6800
-_080C67D4:
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r2, 0x89
- lsls r2, 2
- b _080C67EE
-_080C67E2:
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r2, 0x88
- lsls r2, 2
-_080C67EE:
- bl MapGridSetMetatileIdAt
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- b _080C682E
-_080C6800:
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r2, 0x89
- lsls r2, 2
- bl MapGridSetMetatileIdAt
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- movs r0, 0x3D
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- b _080C6834
-_080C682E:
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
-_080C6834:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C6760
-
- thumb_func_start sub_80C683C
-sub_80C683C: @ 80C683C
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- movs r0, 0x3
- bl PlaySE
- ldr r0, _080C6874 @ =0x00004054
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _080C6878
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r2, 0xE2
- lsls r2, 4
- bl MapGridSetMetatileIdAt
- b _080C6888
- .align 2, 0
-_080C6874: .4byte 0x00004054
-_080C6878:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _080C68A0 @ =0x00000e21
- bl MapGridSetMetatileIdAt
-_080C6888:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C68A0: .4byte 0x00000e21
- thumb_func_end sub_80C683C
-
- thumb_func_start sub_80C68A4
-sub_80C68A4: @ 80C68A4
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080C68E4 @ =sub_80C68EC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C68E8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xA]
- strh r6, [r1, 0xC]
- strh r0, [r1, 0xE]
- movs r0, 0x1
- strh r0, [r1, 0x10]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C68E4: .4byte sub_80C68EC
-_080C68E8: .4byte gTasks
- thumb_func_end sub_80C68A4
-
- thumb_func_start sub_80C68EC
-sub_80C68EC: @ 80C68EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C690C @ =gTasks + 0x8
- adds r4, r0, r1
- ldrh r1, [r4, 0x6]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0x6
- bne _080C6910
- movs r0, 0
- b _080C6912
- .align 2, 0
-_080C690C: .4byte gTasks + 0x8
-_080C6910:
- adds r0, r1, 0x1
-_080C6912:
- strh r0, [r4, 0x6]
- movs r3, 0x6
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080C6964
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x2
- bne _080C692C
- movs r2, 0
- ldrsh r0, [r4, r2]
- bl DoBalloonSoundEffect
-_080C692C:
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- ldrh r2, [r4, 0x8]
- ldrh r3, [r4]
- adds r2, r3
- lsls r2, 16
- lsrs r2, 16
- bl MapGridSetMetatileIdAt
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- ldrh r1, [r4, 0x8]
- movs r3, 0x8
- ldrsh r0, [r4, r3]
- cmp r0, 0x3
- bne _080C6960
- adds r0, r5, 0
- bl DestroyTask
- b _080C6964
-_080C6960:
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
-_080C6964:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C68EC
-
- thumb_func_start DoBalloonSoundEffect
-DoBalloonSoundEffect: @ 80C696C
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0xCE
- lsls r0, 2
- cmp r1, r0
- beq _080C6998
- cmp r1, r0
- bgt _080C6988
- movs r0, 0x8A
- lsls r0, 2
- cmp r1, r0
- beq _080C69B0
- b _080C69B6
-_080C6988:
- movs r0, 0xCF
- lsls r0, 2
- cmp r1, r0
- beq _080C69A0
- adds r0, 0x4
- cmp r1, r0
- beq _080C69A8
- b _080C69B6
-_080C6998:
- movs r0, 0x4A
- bl PlaySE
- b _080C69B6
-_080C69A0:
- movs r0, 0x4B
- bl PlaySE
- b _080C69B6
-_080C69A8:
- movs r0, 0x4C
- bl PlaySE
- b _080C69B6
-_080C69B0:
- movs r0, 0x4E
- bl PlaySE
-_080C69B6:
- pop {r0}
- bx r0
- thumb_func_end DoBalloonSoundEffect
-
- thumb_func_start FldEff_Nop47
-FldEff_Nop47: @ 80C69BC
- movs r0, 0
- bx lr
- thumb_func_end FldEff_Nop47
-
- thumb_func_start FldEff_Nop48
-FldEff_Nop48: @ 80C69C0
- movs r0, 0
- bx lr
- thumb_func_end FldEff_Nop48
-
- thumb_func_start sub_80C69C4
-sub_80C69C4: @ 80C69C4
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x4D
- bl PlaySE
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- ldr r2, _080C6A0C @ =0x00000276
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- subs r6, r4, 0x1
- ldr r2, _080C6A10 @ =0x0000026e
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r6, 0
- bl CurrentMapDrawMetatileAt
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6A0C: .4byte 0x00000276
-_080C6A10: .4byte 0x0000026e
- thumb_func_end sub_80C69C4
-
- thumb_func_start sub_80C6A14
-sub_80C6A14: @ 80C6A14
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C6A44 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0x7
- bne _080C6A48
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- movs r3, 0xC
- ldrsh r1, [r1, r3]
- bl sub_80C69C4
- adds r0, r4, 0
- bl DestroyTask
- b _080C6A4C
- .align 2, 0
-_080C6A44: .4byte gTasks
-_080C6A48:
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
-_080C6A4C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C6A14
-
- thumb_func_start sub_80C6A54
-sub_80C6A54: @ 80C6A54
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- adds r7, r5, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r6, r4, 0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C6A7C
- lsls r0, r5, 16
- asrs r0, 16
- lsls r1, r4, 16
- asrs r1, 16
- bl sub_80C69C4
- b _080C6A9E
-_080C6A7C:
- cmp r0, 0x2
- bne _080C6A9E
- ldr r0, _080C6AA4 @ =sub_80C6A14
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C6AA8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r7, [r1, 0xA]
- strh r6, [r1, 0xC]
-_080C6A9E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6AA4: .4byte sub_80C6A14
-_080C6AA8: .4byte gTasks
- thumb_func_end sub_80C6A54
-
- thumb_func_start Task_DecorationSoundEffect
-Task_DecorationSoundEffect: @ 80C6AAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C6AE4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x7
- beq _080C6AC8
- b _080C6C26
-_080C6AC8:
- ldr r2, _080C6AE8 @ =0xfffffd88
- adds r0, r2, 0
- ldrh r1, [r1, 0x8]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- bls _080C6ADA
- b _080C6C1E
-_080C6ADA:
- lsls r0, 2
- ldr r1, _080C6AEC @ =_080C6AF0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C6AE4: .4byte gTasks
-_080C6AE8: .4byte 0xfffffd88
-_080C6AEC: .4byte _080C6AF0
- .align 2, 0
-_080C6AF0:
- .4byte _080C6BE0
- .4byte _080C6BE8
- .4byte _080C6BF0
- .4byte _080C6BF8
- .4byte _080C6C00
- .4byte _080C6C08
- .4byte _080C6C10
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C18
-_080C6BE0:
- movs r0, 0x3E
- bl PlaySE
- b _080C6C1E
-_080C6BE8:
- movs r0, 0x3F
- bl PlaySE
- b _080C6C1E
-_080C6BF0:
- movs r0, 0x40
- bl PlaySE
- b _080C6C1E
-_080C6BF8:
- movs r0, 0x41
- bl PlaySE
- b _080C6C1E
-_080C6C00:
- movs r0, 0x42
- bl PlaySE
- b _080C6C1E
-_080C6C08:
- movs r0, 0x43
- bl PlaySE
- b _080C6C1E
-_080C6C10:
- movs r0, 0x44
- bl PlaySE
- b _080C6C1E
-_080C6C18:
- movs r0, 0x45
- bl PlaySE
-_080C6C1E:
- adds r0, r4, 0
- bl DestroyTask
- b _080C6C2A
-_080C6C26:
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
-_080C6C2A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end Task_DecorationSoundEffect
-
- thumb_func_start DoDecorationSoundEffect
-DoDecorationSoundEffect: @ 80C6C30
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _080C6C5C @ =Task_DecorationSoundEffect
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C6C60 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r4, [r1, 0x8]
- strh r0, [r1, 0xA]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6C5C: .4byte Task_DecorationSoundEffect
-_080C6C60: .4byte gTasks
- thumb_func_end DoDecorationSoundEffect
-
- thumb_func_start SpriteCB_YellowCave4Sparkle
-SpriteCB_YellowCave4Sparkle: @ 80C6C64
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _080C6C7C
- movs r0, 0xC3
- bl PlaySE
-_080C6C7C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1F
- ble _080C6C8A
- adds r0, r4, 0
- bl DestroySprite
-_080C6C8A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_YellowCave4Sparkle
-
- thumb_func_start DoYellowCave4Sparkle
-DoYellowCave4Sparkle: @ 80C6C90
- push {r4,lr}
- sub sp, 0x4
- ldr r3, _080C6D28 @ =gMapObjects
- ldr r2, _080C6D2C @ =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x12]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x4
- bl sub_8060470
- ldr r0, _080C6D30 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x58]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080C6D1E
- ldr r3, _080C6D34 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r4, r2, r3
- movs r0, 0x3E
- adds r0, r4
- mov r12, r0
- ldrb r0, [r0]
- movs r1, 0x2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x50
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r3, 0x1C
- adds r2, r3
- ldr r0, _080C6D38 @ =SpriteCB_YellowCave4Sparkle
- str r0, [r2]
- movs r0, 0
- strh r0, [r4, 0x2E]
-_080C6D1E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6D28: .4byte gMapObjects
-_080C6D2C: .4byte gPlayerAvatar
-_080C6D30: .4byte gFieldEffectObjectTemplatePointers
-_080C6D34: .4byte gSprites
-_080C6D38: .4byte SpriteCB_YellowCave4Sparkle
- thumb_func_end DoYellowCave4Sparkle
-
- thumb_func_start FldEff_SandPillar
-FldEff_SandPillar: @ 80C6D3C
- push {r4,lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- ldr r1, _080C6D78 @ =gFieldEffectArguments
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- str r0, [r1, 0x14]
- movs r3, 0
- ldrsh r0, [r4, r3]
- str r0, [r1, 0x18]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080C6DBC
- cmp r0, 0x2
- bgt _080C6D7C
- cmp r0, 0x1
- beq _080C6D86
- b _080C6E4C
- .align 2, 0
-_080C6D78: .4byte gFieldEffectArguments
-_080C6D7C:
- cmp r0, 0x3
- beq _080C6DEC
- cmp r0, 0x4
- beq _080C6E24
- b _080C6E4C
-_080C6D86:
- ldr r0, _080C6DB0 @ =gSpriteTemplate_83D26A0
- ldr r3, _080C6DB4 @ =gSprites
- ldr r1, _080C6DB8 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r3, 0x80
- lsls r3, 12
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2]
- adds r2, 0x20
- movs r3, 0
- bl CreateSprite
- b _080C6E4C
- .align 2, 0
-_080C6DB0: .4byte gSpriteTemplate_83D26A0
-_080C6DB4: .4byte gSprites
-_080C6DB8: .4byte gPlayerAvatar
-_080C6DBC:
- ldr r0, _080C6DE0 @ =gSpriteTemplate_83D26A0
- ldr r3, _080C6DE4 @ =gSprites
- ldr r1, _080C6DE8 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r3, 0x80
- lsls r3, 12
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2]
- b _080C6E0C
- .align 2, 0
-_080C6DE0: .4byte gSpriteTemplate_83D26A0
-_080C6DE4: .4byte gSprites
-_080C6DE8: .4byte gPlayerAvatar
-_080C6DEC:
- ldr r0, _080C6E14 @ =gSpriteTemplate_83D26A0
- ldr r3, _080C6E18 @ =gSprites
- ldr r1, _080C6E1C @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 7
- ldr r3, _080C6E20 @ =0xfff80000
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2]
- adds r2, 0x10
-_080C6E0C:
- movs r3, 0x94
- bl CreateSprite
- b _080C6E4C
- .align 2, 0
-_080C6E14: .4byte gSpriteTemplate_83D26A0
-_080C6E18: .4byte gSprites
-_080C6E1C: .4byte gPlayerAvatar
-_080C6E20: .4byte 0xfff80000
-_080C6E24:
- ldr r0, _080C6E58 @ =gSpriteTemplate_83D26A0
- ldr r3, _080C6E5C @ =gSprites
- ldr r1, _080C6E60 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r3, 0xC0
- lsls r3, 13
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2]
- adds r2, 0x10
- movs r3, 0x94
- bl CreateSprite
-_080C6E4C:
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C6E58: .4byte gSpriteTemplate_83D26A0
-_080C6E5C: .4byte gSprites
-_080C6E60: .4byte gPlayerAvatar
- thumb_func_end FldEff_SandPillar
-
- thumb_func_start SpriteCB_SandPillar_0
-SpriteCB_SandPillar_0: @ 80C6E64
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r0, 0x83
- bl PlaySE
- ldr r4, _080C6E90 @ =gFieldEffectArguments
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- subs r1, 0x1
- bl MapGridGetMetatileIdAt
- ldr r1, _080C6E94 @ =0x00000286
- cmp r0, r1
- bne _080C6E9C
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- subs r1, 0x1
- ldr r2, _080C6E98 @ =0x00000e02
- bl MapGridSetMetatileIdAt
- b _080C6EAA
- .align 2, 0
-_080C6E90: .4byte gFieldEffectArguments
-_080C6E94: .4byte 0x00000286
-_080C6E98: .4byte 0x00000e02
-_080C6E9C:
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- subs r1, 0x1
- movs r2, 0xA1
- lsls r2, 2
- bl MapGridSetMetatileIdAt
-_080C6EAA:
- ldr r4, _080C6ED8 @ =gFieldEffectArguments
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- ldr r2, _080C6EDC @ =0x0000020a
- bl MapGridSetMetatileIdAt
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- subs r1, 0x1
- bl CurrentMapDrawMetatileAt
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- bl CurrentMapDrawMetatileAt
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080C6EE0 @ =SpriteCB_SandPillar_1
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6ED8: .4byte gFieldEffectArguments
-_080C6EDC: .4byte 0x0000020a
-_080C6EE0: .4byte SpriteCB_SandPillar_1
- thumb_func_end SpriteCB_SandPillar_0
-
- thumb_func_start SpriteCB_SandPillar_1
-SpriteCB_SandPillar_1: @ 80C6EE4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x11
- bgt _080C6EF8
- adds r0, r1, 0x1
- strh r0, [r5, 0x2E]
- b _080C6F14
-_080C6EF8:
- ldr r4, _080C6F1C @ =gFieldEffectArguments
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- ldr r2, _080C6F20 @ =0x00000e8c
- bl MapGridSetMetatileIdAt
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- bl CurrentMapDrawMetatileAt
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080C6F24 @ =SpriteCB_SandPillar_2
- str r0, [r5, 0x1C]
-_080C6F14:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6F1C: .4byte gFieldEffectArguments
-_080C6F20: .4byte 0x00000e8c
-_080C6F24: .4byte SpriteCB_SandPillar_2
- thumb_func_end SpriteCB_SandPillar_1
-
- thumb_func_start SpriteCB_SandPillar_2
-SpriteCB_SandPillar_2: @ 80C6F28
- push {lr}
- movs r1, 0x34
- bl FieldEffectStop
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_SandPillar_2
-
- thumb_func_start GetShieldToyTVDecorationInfo
-GetShieldToyTVDecorationInfo: @ 80C6F38
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _080C6F70 @ =0x000002f5
- cmp r1, r0
- beq _080C6FE8
- cmp r1, r0
- bgt _080C6F74
- subs r0, 0x17
- cmp r1, r0
- beq _080C6FB0
- adds r0, 0x16
- cmp r1, r0
- beq _080C6FDC
- b _080C6FFA
- .align 2, 0
-_080C6F70: .4byte 0x000002f5
-_080C6F74:
- ldr r0, _080C6F9C @ =0x000002f6
- cmp r1, r0
- beq _080C6FF4
- adds r0, 0x40
- cmp r1, r0
- bne _080C6FFA
- ldr r0, _080C6FA0 @ =gStringVar1
- movs r1, 0x64
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080C6FA4 @ =gStringVar2
- ldr r1, _080C6FA8 @ =gSecretBaseText_GoldRank
- bl StringCopy
- ldr r1, _080C6FAC @ =gScriptResult
- movs r0, 0
- b _080C6FF8
- .align 2, 0
-_080C6F9C: .4byte 0x000002f6
-_080C6FA0: .4byte gStringVar1
-_080C6FA4: .4byte gStringVar2
-_080C6FA8: .4byte gSecretBaseText_GoldRank
-_080C6FAC: .4byte gScriptResult
-_080C6FB0:
- ldr r0, _080C6FCC @ =gStringVar1
- movs r1, 0x32
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _080C6FD0 @ =gStringVar2
- ldr r1, _080C6FD4 @ =gSecretBaseText_SilverRank
- bl StringCopy
- ldr r1, _080C6FD8 @ =gScriptResult
- movs r0, 0
- b _080C6FF8
- .align 2, 0
-_080C6FCC: .4byte gStringVar1
-_080C6FD0: .4byte gStringVar2
-_080C6FD4: .4byte gSecretBaseText_SilverRank
-_080C6FD8: .4byte gScriptResult
-_080C6FDC:
- ldr r1, _080C6FE4 @ =gScriptResult
- movs r0, 0x1
- b _080C6FF8
- .align 2, 0
-_080C6FE4: .4byte gScriptResult
-_080C6FE8:
- ldr r1, _080C6FF0 @ =gScriptResult
- movs r0, 0x2
- b _080C6FF8
- .align 2, 0
-_080C6FF0: .4byte gScriptResult
-_080C6FF4:
- ldr r1, _080C7004 @ =gScriptResult
- movs r0, 0x3
-_080C6FF8:
- strh r0, [r1]
-_080C6FFA:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7004: .4byte gScriptResult
- thumb_func_end GetShieldToyTVDecorationInfo
-
- thumb_func_start Task_FieldPoisonEffect
-Task_FieldPoisonEffect: @ 80C7008
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080C702C @ =gTasks + 0x8
- adds r1, r0, r1
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- beq _080C7046
- cmp r0, 0x1
- bgt _080C7030
- cmp r0, 0
- beq _080C7036
- b _080C7062
- .align 2, 0
-_080C702C: .4byte gTasks + 0x8
-_080C7030:
- cmp r0, 0x2
- beq _080C705A
- b _080C7062
-_080C7036:
- ldrh r0, [r1, 0x2]
- adds r0, 0x2
- strh r0, [r1, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080C7062
- b _080C7052
-_080C7046:
- ldrh r0, [r1, 0x2]
- subs r0, 0x2
- strh r0, [r1, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _080C7062
-_080C7052:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080C7062
-_080C705A:
- adds r0, r2, 0
- bl DestroyTask
- b _080C706C
-_080C7062:
- ldr r2, _080C7070 @ =REG_MOSAIC
- ldrh r1, [r1, 0x2]
- lsls r0, r1, 4
- orrs r0, r1
- strh r0, [r2]
-_080C706C:
- pop {r0}
- bx r0
- .align 2, 0
-_080C7070: .4byte REG_MOSAIC
- thumb_func_end Task_FieldPoisonEffect
-
- thumb_func_start DoFieldPoisonEffect
-DoFieldPoisonEffect: @ 80C7074
- push {lr}
- movs r0, 0x4F
- bl PlaySE
- ldr r0, _080C7088 @ =Task_FieldPoisonEffect
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080C7088: .4byte Task_FieldPoisonEffect
- thumb_func_end DoFieldPoisonEffect
-
- thumb_func_start FieldPoisonEffectIsRunning
-FieldPoisonEffectIsRunning: @ 80C708C
- push {lr}
- ldr r0, _080C709C @ =Task_FieldPoisonEffect
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080C709C: .4byte Task_FieldPoisonEffect
- thumb_func_end FieldPoisonEffectIsRunning
-
- thumb_func_start Task_WateringBerryTreeAnim_0
-Task_WateringBerryTreeAnim_0: @ 80C70A0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C70B4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080C70B8 @ =Task_WateringBerryTreeAnim_1
- str r0, [r1]
- bx lr
- .align 2, 0
-_080C70B4: .4byte gTasks
-_080C70B8: .4byte Task_WateringBerryTreeAnim_1
- thumb_func_end Task_WateringBerryTreeAnim_0
-
- thumb_func_start Task_WateringBerryTreeAnim_1
-Task_WateringBerryTreeAnim_1: @ 80C70BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C7120 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C7124 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080C70E8
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080C711A
-_080C70E8:
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_8059D08
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl GetStepInPlaceDelay16AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldr r1, _080C7128 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C712C @ =Task_WateringBerryTreeAnim_2
- str r1, [r0]
-_080C711A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7120: .4byte gPlayerAvatar
-_080C7124: .4byte gMapObjects
-_080C7128: .4byte gTasks
-_080C712C: .4byte Task_WateringBerryTreeAnim_2
- thumb_func_end Task_WateringBerryTreeAnim_1
-
- thumb_func_start Task_WateringBerryTreeAnim_2
-Task_WateringBerryTreeAnim_2: @ 80C7130
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C7184 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C7188 @ =gMapObjects
- adds r5, r0, r1
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080C7194
- ldr r1, _080C718C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0xA]
- adds r1, r0, 0x1
- strh r1, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bgt _080C7190
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl GetStepInPlaceDelay16AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- b _080C7194
- .align 2, 0
-_080C7184: .4byte gPlayerAvatar
-_080C7188: .4byte gMapObjects
-_080C718C: .4byte gTasks
-_080C7190:
- ldr r0, _080C719C @ =Task_WateringBerryTreeAnim_3
- str r0, [r2]
-_080C7194:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C719C: .4byte Task_WateringBerryTreeAnim_3
- thumb_func_end Task_WateringBerryTreeAnim_2
-
- thumb_func_start Task_WateringBerryTreeAnim_3
-Task_WateringBerryTreeAnim_3: @ 80C71A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80597D0
- lsls r0, 24
- lsrs r0, 24
- bl SetPlayerAvatarTransitionFlags
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end Task_WateringBerryTreeAnim_3
-
- thumb_func_start DoWateringBerryTreeAnim
-DoWateringBerryTreeAnim: @ 80C71C4
- push {lr}
- ldr r0, _080C71D4 @ =Task_WateringBerryTreeAnim_0
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080C71D4: .4byte Task_WateringBerryTreeAnim_0
- thumb_func_end DoWateringBerryTreeAnim
-
- thumb_func_start CreateRecordMixingSprite
-CreateRecordMixingSprite: @ 80C71D8
- push {r4,r5,lr}
- ldr r0, _080C722C @ =gUnknown_083D2878
- bl LoadSpritePalette
- ldr r0, _080C7230 @ =gSpriteTemplate_83D2894
- movs r1, 0
- movs r2, 0
- movs r3, 0x52
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _080C7238
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, _080C7234 @ =gSprites
- adds r4, r0, r1
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r0, 0x10
- movs r1, 0xD
- bl sub_8060388
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x20]
- adds r0, 0x10
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- adds r0, 0x2
- strh r0, [r4, 0x22]
- adds r0, r5, 0
- b _080C723A
- .align 2, 0
-_080C722C: .4byte gUnknown_083D2878
-_080C7230: .4byte gSpriteTemplate_83D2894
-_080C7234: .4byte gSprites
-_080C7238:
- movs r0, 0x40
-_080C723A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end CreateRecordMixingSprite
-
- thumb_func_start DestroyRecordMixingSprite
-DestroyRecordMixingSprite: @ 80C7240
- push {r4-r7,lr}
- ldr r4, _080C7274 @ =gSprites
- adds r7, r4, 0
- movs r6, 0
- movs r5, 0x3F
-_080C724A:
- adds r0, r7, 0
- adds r0, 0x14
- adds r0, r6, r0
- ldr r1, [r0]
- ldr r0, _080C7278 @ =gSpriteTemplate_83D2894
- cmp r1, r0
- bne _080C7264
- adds r0, r4, 0
- bl FreeSpritePalette
- adds r0, r4, 0
- bl DestroySprite
-_080C7264:
- adds r4, 0x44
- adds r6, 0x44
- subs r5, 0x1
- cmp r5, 0
- bge _080C724A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7274: .4byte gSprites
-_080C7278: .4byte gSpriteTemplate_83D2894
- thumb_func_end DestroyRecordMixingSprite
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/flying.s b/asm/flying.s
new file mode 100755
index 000000000..cf0b1053c
--- /dev/null
+++ b/asm/flying.s
@@ -0,0 +1,3057 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ @ flying
+
+ thumb_func_start sub_80DA034
+sub_80DA034: @ 80DA034
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x14
+ strh r0, [r4, 0x22]
+ movs r0, 0xBF
+ strh r0, [r4, 0x30]
+ ldr r1, _080DA058 @ =sub_80DA05C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA058: .4byte sub_80DA05C
+ thumb_func_end sub_80DA034
+
+ thumb_func_start sub_80DA05C
+sub_80DA05C: @ 80DA05C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x47
+ bne _080DA096
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DA096:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DA05C
+
+ thumb_func_start sub_80DA09C
+sub_80DA09C: @ 80DA09C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080DA0CC @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r1, _080DA0D0 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r1]
+ strh r0, [r4, 0xA]
+ ldr r0, _080DA0D4 @ =0x00002719
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ ldr r0, _080DA0D8 @ =sub_80DA0DC
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA0CC: .4byte gTasks
+_080DA0D0: .4byte gBattleAnimArgs
+_080DA0D4: .4byte 0x00002719
+_080DA0D8: .4byte sub_80DA0DC
+ thumb_func_end sub_80DA09C
+
+ thumb_func_start sub_80DA0DC
+sub_80DA0DC: @ 80DA0DC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080DA15C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r4, 0xA
+ ldrsh r1, [r3, r4]
+ adds r7, r2, 0
+ cmp r0, r1
+ bne _080DA13A
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrb r0, [r3, 0xC]
+ ldr r2, _080DA160 @ =gPlttBufferFaded
+ lsls r0, 4
+ movs r3, 0x84
+ lsls r3, 1
+ adds r1, r0, r3
+ lsls r1, 1
+ adds r1, r2
+ ldrh r6, [r1]
+ movs r4, 0x7
+ mov r12, r0
+ ldr r0, _080DA164 @ =0x00000107
+ add r0, r12
+ lsls r0, 1
+ adds r3, r0, r2
+_080DA122:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ subs r3, 0x2
+ subs r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bgt _080DA122
+ ldr r0, _080DA168 @ =0x00000101
+ add r0, r12
+ lsls r0, 1
+ adds r0, r2
+ strh r6, [r0]
+_080DA13A:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r7
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ cmp r1, 0
+ bne _080DA154
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080DA154:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA15C: .4byte gTasks
+_080DA160: .4byte gPlttBufferFaded
+_080DA164: .4byte 0x00000107
+_080DA168: .4byte 0x00000101
+ thumb_func_end sub_80DA0DC
+
+ thumb_func_start sub_80DA16C
+sub_80DA16C: @ 80DA16C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080DA1D8 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA18C
+ ldr r1, _080DA1DC @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080DA18C:
+ ldr r4, _080DA1DC @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldr r5, _080DA1E0 @ =gBattleAnimBankTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrh r0, [r6, 0x22]
+ strh r0, [r6, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080DA1E4 @ =sub_80785E4
+ str r0, [r6, 0x1C]
+ ldr r1, _080DA1E8 @ =sub_80DA1EC
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA1D8: .4byte gBattleAnimBankAttacker
+_080DA1DC: .4byte gBattleAnimArgs
+_080DA1E0: .4byte gBattleAnimBankTarget
+_080DA1E4: .4byte sub_80785E4
+_080DA1E8: .4byte sub_80DA1EC
+ thumb_func_end sub_80DA16C
+
+ thumb_func_start sub_80DA1EC
+sub_80DA1EC: @ 80DA1EC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA200
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DA200:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DA1EC
+
+ thumb_func_start sub_80DA208
+sub_80DA208: @ 80DA208
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080DA2A4 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA234
+ ldr r1, _080DA2A8 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+ 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]
+_080DA234:
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA24C
+ ldr r0, _080DA2A8 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0x2]
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0, 0x6]
+ negs r1, r1
+ strh r1, [r0, 0x6]
+_080DA24C:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r2, _080DA2A8 @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ ldrh r3, [r5, 0x20]
+ adds r1, r3
+ strh r1, [r5, 0x20]
+ lsrs r0, 24
+ ldrh r1, [r2, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r5, 0x2E]
+ movs r3, 0xC
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080DA2B0
+ ldr r4, _080DA2AC @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _080DA2C2
+ .align 2, 0
+_080DA2A4: .4byte gBattleAnimBankAttacker
+_080DA2A8: .4byte gBattleAnimArgs
+_080DA2AC: .4byte gBattleAnimBankTarget
+_080DA2B0:
+ ldr r0, _080DA2F0 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+_080DA2C2:
+ ldr r4, _080DA2F4 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x4]
+ ldrh r1, [r5, 0x32]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x6]
+ ldrh r3, [r5, 0x36]
+ adds r0, r3
+ strh r0, [r5, 0x36]
+ ldr r0, _080DA2F8 @ =sub_8078B34
+ str r0, [r5, 0x1C]
+ ldr r1, _080DA2FC @ =move_anim_8072740
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData
+ ldrb r1, [r4, 0xA]
+ adds r0, r5, 0
+ bl SeekSpriteAnim
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA2F0: .4byte gBattleAnimBankTarget
+_080DA2F4: .4byte gBattleAnimArgs
+_080DA2F8: .4byte sub_8078B34
+_080DA2FC: .4byte move_anim_8072740
+ thumb_func_end sub_80DA208
+
+ thumb_func_start sub_80DA300
+sub_80DA300: @ 80DA300
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080DA33C @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080DA340 @ =sub_80DA348
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ ldr r2, _080DA344 @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA33C: .4byte gBattleAnimArgs
+_080DA340: .4byte sub_80DA348
+_080DA344: .4byte gSprites
+ thumb_func_end sub_80DA300
+
+ thumb_func_start sub_80DA348
+sub_80DA348: @ 80DA348
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _080DA35C
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x2E]
+ b _080DA36E
+_080DA35C:
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ subs r1, r0
+ strh r1, [r2, 0x26]
+_080DA36E:
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080DA386
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080DA386:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DA348
+
+ thumb_func_start sub_80DA38C
+sub_80DA38C: @ 80DA38C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080DA3B4 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA3BC
+ movs r0, 0x88
+ lsls r0, 1
+ strh r0, [r5, 0x20]
+ ldr r0, _080DA3B8 @ =0x0000ffe0
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080DA3C2
+ .align 2, 0
+_080DA3B4: .4byte gBattleAnimBankAttacker
+_080DA3B8: .4byte 0x0000ffe0
+_080DA3BC:
+ ldr r0, _080DA400 @ =0x0000ffe0
+ strh r0, [r5, 0x20]
+ strh r0, [r5, 0x22]
+_080DA3C2:
+ ldr r0, _080DA404 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080DA408 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080DA40C @ =sub_80DA410
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA400: .4byte 0x0000ffe0
+_080DA404: .4byte gBattleAnimArgs
+_080DA408: .4byte gBattleAnimBankTarget
+_080DA40C: .4byte sub_80DA410
+ thumb_func_end sub_80DA38C
+
+ thumb_func_start sub_80DA410
+sub_80DA410: @ 80DA410
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_8078B5C
+ ldrh r1, [r4, 0x34]
+ lsrs r0, r1, 8
+ cmp r0, 0xC8
+ bls _080DA438
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+_080DA438:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x20
+ movs r1, 0x98
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080DA45A
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ cmp r0, 0xA0
+ ble _080DA480
+_080DA45A:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ ldr r2, _080DA488 @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DA480:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA488: .4byte gSprites
+ thumb_func_end sub_80DA410
+
+ thumb_func_start sub_80DA48C
+sub_80DA48C: @ 80DA48C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080DA4CC
+ ldrb r0, [r4, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA4BE
+ 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]
+_080DA4BE:
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r1, _080DA4D4 @ =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_080DA4CC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA4D4: .4byte gAnimVisualTaskCount
+ thumb_func_end sub_80DA48C
+
+ thumb_func_start sub_80DA4D8
+sub_80DA4D8: @ 80DA4D8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ adds r5, r7, 0
+ adds r5, 0x2E
+ ldr r0, _080DA4F8 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA500
+ ldr r0, _080DA4FC @ =gBattleAnimBankAttacker
+ b _080DA502
+ .align 2, 0
+_080DA4F8: .4byte gBattleAnimArgs
+_080DA4FC: .4byte gBattleAnimBankAttacker
+_080DA500:
+ ldr r0, _080DA5B0 @ =gBattleAnimBankTarget
+_080DA502:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DA518
+ ldr r1, _080DA5B4 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080DA518:
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080DA5B4 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r7, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ ldrh r1, [r4, 0x2]
+ lsrs r0, 24
+ adds r1, r0, r1
+ strh r1, [r7, 0x22]
+ lsls r1, 8
+ strh r1, [r5, 0x8]
+ ldrh r1, [r4, 0xC]
+ adds r0, r1
+ lsls r0, 1
+ ldrh r2, [r5, 0xE]
+ movs r1, 0x1
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r5, 0xE]
+ ldrb r0, [r5]
+ movs r2, 0x4
+ mov r8, r2
+ mov r1, r8
+ orrs r0, r1
+ strb r0, [r5]
+ ldrh r0, [r4, 0x4]
+ ldrb r1, [r4, 0x4]
+ strh r1, [r5, 0x2]
+ lsls r0, 16
+ lsrs r0, 24
+ strh r0, [r5, 0xA]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x4]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x6]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0xC]
+ subs r1, 0x40
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x7F
+ bhi _080DA618
+ ldr r0, _080DA5B8 @ =gMain
+ ldr r2, _080DA5BC @ =0x0000043d
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA5C0
+ adds r0, r6, 0
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r7, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r7, 0x5]
+ b _080DA5D8
+ .align 2, 0
+_080DA5B0: .4byte gBattleAnimBankTarget
+_080DA5B4: .4byte gBattleAnimArgs
+_080DA5B8: .4byte gMain
+_080DA5BC: .4byte 0x0000043d
+_080DA5C0:
+ adds r0, r6, 0
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+_080DA5D8:
+ ldrb r1, [r5, 0xE]
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r1
+ strb r0, [r5, 0xE]
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA678
+ adds r3, r7, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r7, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ b _080DA66E
+_080DA618:
+ adds r0, r6, 0
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+ ldrb r0, [r5, 0xE]
+ movs r4, 0x1
+ orrs r0, r4
+ strb r0, [r5, 0xE]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA678
+ adds r3, r7, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r4
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r7, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ mov r1, r8
+_080DA66E:
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+_080DA678:
+ ldrh r1, [r5, 0x2]
+ lsrs r1, 6
+ lsls r1, 4
+ ldrb r2, [r5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5]
+ ldr r3, _080DA6E4 @ =gSineTable
+ ldrh r0, [r5, 0x2]
+ lsls r0, 1
+ adds r0, r3
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldrb r0, [r5, 0xC]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r7, 0x24]
+ ldrb r2, [r7, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r1, 0x24
+ ldrsh r0, [r7, r1]
+ negs r0, r0
+ asrs r0, 1
+ ldrb r5, [r5, 0xA]
+ adds r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r3
+ ldrh r4, [r1]
+ ldr r1, _080DA6E8 @ =gOamMatrices
+ lsls r2, 3
+ adds r2, r1
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r2, 0x6]
+ strh r0, [r2]
+ strh r4, [r2, 0x2]
+ lsls r0, r4, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ ldr r0, _080DA6EC @ =sub_80DA6F0
+ str r0, [r7, 0x1C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA6E4: .4byte gSineTable
+_080DA6E8: .4byte gOamMatrices
+_080DA6EC: .4byte sub_80DA6F0
+ thumb_func_end sub_80DA4D8
+
+ thumb_func_start sub_80DA6F0
+sub_80DA6F0: @ 80DA6F0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ movs r6, 0
+ movs r0, 0x2E
+ adds r0, r5
+ mov r12, r0
+ ldrb r2, [r0]
+ movs r7, 0x1
+ movs r1, 0x1
+ mov r9, r1
+ mov r0, r9
+ ands r0, r2
+ cmp r0, 0
+ beq _080DA730
+ mov r3, r12
+ ldrb r0, [r3, 0x1]
+ adds r1, r0, 0
+ adds r1, 0xFF
+ strb r1, [r3, 0x1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA724
+ b _080DAD1A
+_080DA724:
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r3]
+ strb r6, [r3, 0x1]
+ b _080DAD1A
+_080DA730:
+ mov r4, r12
+ ldrh r0, [r4, 0x2]
+ lsrs r4, r0, 6
+ mov r8, r0
+ cmp r4, 0x1
+ bne _080DA73E
+ b _080DA896
+_080DA73E:
+ cmp r4, 0x1
+ bgt _080DA748
+ cmp r4, 0
+ beq _080DA756
+ b _080DAC52
+_080DA748:
+ cmp r4, 0x2
+ bne _080DA74E
+ b _080DA9C8
+_080DA74E:
+ cmp r4, 0x3
+ bne _080DA754
+ b _080DAB0E
+_080DA754:
+ b _080DAC52
+_080DA756:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x1
+ bne _080DA76C
+ movs r0, 0x8
+ orrs r0, r2
+ orrs r0, r7
+ mov r1, r12
+ strb r0, [r1]
+ strb r6, [r1, 0x1]
+ b _080DA88A
+_080DA76C:
+ lsrs r0, r1, 28
+ cmp r0, 0x3
+ bne _080DA790
+ lsls r0, r2, 30
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r7
+ lsls r0, 1
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ orrs r1, r7
+ mov r2, r12
+ strb r1, [r2]
+ strb r6, [r2, 0x1]
+ b _080DA88A
+_080DA790:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080DA88A
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r4, 0x1
+ eors r1, r4
+ ands r1, r7
+ movs r6, 0x2
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ mov r3, r12
+ ldrb r1, [r3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA87A
+ ldr r0, _080DA80C @ =gMain
+ ldr r1, _080DA810 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA82E
+ ldrb r1, [r3, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA814
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DA868
+ .align 2, 0
+_080DA80C: .4byte gMain
+_080DA810: .4byte 0x0000043d
+_080DA814:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DA866
+_080DA82E:
+ mov r0, r12
+ ldrb r1, [r0, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA85C
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ strb r0, [r1]
+ mov r1, r12
+ ldrb r2, [r1, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2, 0xE]
+ b _080DA87A
+_080DA85C:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+ strb r0, [r1]
+_080DA866:
+ mov r3, r12
+_080DA868:
+ ldrb r2, [r3, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xE]
+_080DA87A:
+ mov r4, r12
+ ldrb r1, [r4]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrh r0, [r4, 0x2]
+ mov r8, r0
+_080DA88A:
+ mov r2, r12
+ ldrb r1, [r2]
+ movs r0, 0xF
+ ands r0, r1
+ strb r0, [r2]
+ b _080DAC52
+_080DA896:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0
+ bne _080DA8AC
+ movs r0, 0x8
+ orrs r0, r2
+ orrs r0, r7
+ mov r3, r12
+ strb r0, [r3]
+ strb r6, [r3, 0x1]
+ b _080DA9BC
+_080DA8AC:
+ lsrs r0, r1, 28
+ cmp r0, 0x2
+ bne _080DA8BE
+ adds r0, r2, 0
+ orrs r0, r7
+ mov r4, r12
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ b _080DA9BC
+_080DA8BE:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080DA9BC
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r4, 0x1
+ eors r1, r4
+ ands r1, r7
+ movs r6, 0x2
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ mov r0, r12
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA9AC
+ ldr r0, _080DA940 @ =gMain
+ ldr r1, _080DA944 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA962
+ mov r2, r12
+ ldrb r1, [r2, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA948
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ mov r3, r12
+ b _080DA978
+ .align 2, 0
+_080DA940: .4byte gMain
+_080DA944: .4byte 0x0000043d
+_080DA948:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DA996
+_080DA962:
+ mov r3, r12
+ ldrb r1, [r3, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA98C
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ strb r0, [r1]
+_080DA978:
+ ldrb r2, [r3, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xE]
+ b _080DA9AC
+_080DA98C:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+ strb r0, [r1]
+_080DA996:
+ mov r0, r12
+ ldrb r2, [r0, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2, 0xE]
+_080DA9AC:
+ mov r3, r12
+ ldrb r1, [r3]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r4, [r3, 0x2]
+ mov r8, r4
+_080DA9BC:
+ mov r1, r12
+ ldrb r0, [r1]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ b _080DAC4C
+_080DA9C8:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x3
+ bne _080DA9DE
+ movs r0, 0x8
+ orrs r0, r2
+ orrs r0, r7
+ mov r3, r12
+ strb r0, [r3]
+ strb r6, [r3, 0x1]
+ b _080DAAFE
+_080DA9DE:
+ lsrs r0, r1, 28
+ cmp r0, 0x1
+ bne _080DA9F0
+ adds r0, r2, 0
+ orrs r0, r7
+ mov r4, r12
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ b _080DAAFE
+_080DA9F0:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ bne _080DA9FA
+ b _080DAAFE
+_080DA9FA:
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r6, 0x1
+ eors r1, r6
+ ands r1, r7
+ movs r0, 0x2
+ negs r0, r0
+ mov r8, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ mov r2, r12
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DAAEC
+ ldr r0, _080DAA6C @ =gMain
+ ldr r3, _080DAA70 @ =0x0000043d
+ adds r0, r3
+ ldrb r0, [r0]
+ ands r4, r0
+ cmp r4, 0
+ beq _080DAAA4
+ ldrb r1, [r2, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DAA74
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DAAD8
+ .align 2, 0
+_080DAA6C: .4byte gMain
+_080DAA70: .4byte 0x0000043d
+_080DAA74:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ mov r0, r12
+ ldrb r2, [r0, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2, 0xE]
+ b _080DAAEC
+_080DAAA4:
+ mov r3, r12
+ ldrb r1, [r3, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DAACE
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ strb r0, [r1]
+ ldrb r2, [r3, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xE]
+ b _080DAAEC
+_080DAACE:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+ strb r0, [r1]
+_080DAAD8:
+ mov r4, r12
+ ldrb r2, [r4, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0xE]
+_080DAAEC:
+ mov r0, r12
+ ldrb r1, [r0]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r2, [r1, 0x2]
+ mov r8, r2
+_080DAAFE:
+ mov r3, r12
+ ldrb r0, [r3]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x20
+ orrs r1, r0
+ strb r1, [r3]
+ b _080DAC52
+_080DAB0E:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x2
+ bne _080DAB20
+ movs r0, 0x8
+ orrs r0, r2
+ mov r4, r12
+ strb r0, [r4]
+ b _080DAC42
+_080DAB20:
+ lsrs r0, r1, 28
+ cmp r0, 0
+ bne _080DAB44
+ lsls r0, r2, 30
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r7
+ lsls r0, 1
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ orrs r1, r7
+ mov r0, r12
+ strb r1, [r0]
+ strb r6, [r0, 0x1]
+ b _080DAC42
+_080DAB44:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080DAC42
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r4, 0x1
+ eors r1, r4
+ ands r1, r7
+ movs r6, 0x2
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ mov r2, r12
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DAC32
+ ldr r0, _080DABC4 @ =gMain
+ ldr r3, _080DABC8 @ =0x0000043d
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DABE6
+ ldrb r1, [r2, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DABCC
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ mov r0, r12
+ ldrb r2, [r0, 0xE]
+ b _080DAC00
+ .align 2, 0
+_080DABC4: .4byte gMain
+_080DABC8: .4byte 0x0000043d
+_080DABCC:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DAC1E
+_080DABE6:
+ mov r0, r12
+ ldrb r1, [r0, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DAC14
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ strb r0, [r1]
+ mov r1, r12
+ ldrb r2, [r1, 0xE]
+_080DAC00:
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2, 0xE]
+ b _080DAC32
+_080DAC14:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+ strb r0, [r1]
+_080DAC1E:
+ mov r3, r12
+ ldrb r2, [r3, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xE]
+_080DAC32:
+ mov r4, r12
+ ldrb r1, [r4]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrh r0, [r4, 0x2]
+ mov r8, r0
+_080DAC42:
+ mov r1, r12
+ ldrb r0, [r1]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x30
+_080DAC4C:
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2]
+_080DAC52:
+ mov r3, r12
+ ldrb r1, [r3]
+ lsls r1, 30
+ lsrs r1, 31
+ mov r0, r12
+ adds r0, 0xC
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r3, _080DACE0 @ =gSineTable
+ mov r4, r8
+ lsls r0, r4, 1
+ adds r0, r3
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r5, 0x24]
+ ldrb r2, [r5, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r4, 0x24
+ ldrsh r0, [r5, r4]
+ negs r0, r0
+ asrs r0, 1
+ mov r1, r12
+ ldrb r1, [r1, 0xA]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r3
+ ldrh r6, [r1]
+ ldr r1, _080DACE4 @ =gOamMatrices
+ lsls r2, 3
+ adds r2, r1
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r2, 0x6]
+ strh r0, [r2]
+ strh r6, [r2, 0x2]
+ lsls r0, r6, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ mov r2, r12
+ ldrh r0, [r2, 0x6]
+ ldrh r3, [r2, 0x8]
+ adds r0, r3
+ strh r0, [r2, 0x8]
+ lsls r0, 16
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r4, 0x4
+ ldrsh r0, [r2, r4]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080DACE8
+ ldrh r0, [r2, 0x4]
+ subs r1, 0x1
+ ands r1, r0
+ ldrh r0, [r2, 0x2]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r2, 0x2]
+ b _080DACFE
+ .align 2, 0
+_080DACE0: .4byte gSineTable
+_080DACE4: .4byte gOamMatrices
+_080DACE8:
+ mov r1, r12
+ ldrh r0, [r1, 0x4]
+ ldr r1, _080DAD28 @ =0x00007fff
+ ands r1, r0
+ mov r2, r12
+ ldrh r2, [r2, 0x2]
+ adds r1, r2
+ movs r0, 0xFF
+ ands r1, r0
+ mov r3, r12
+ strh r1, [r3, 0x2]
+_080DACFE:
+ movs r4, 0x22
+ ldrsh r1, [r5, r4]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ mov r3, r12
+ ldrh r0, [r3, 0xE]
+ lsrs r0, 1
+ cmp r1, r0
+ blt _080DAD1A
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080DAD2C @ =sub_80DA48C
+ str r0, [r5, 0x1C]
+_080DAD1A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DAD28: .4byte 0x00007fff
+_080DAD2C: .4byte sub_80DA48C
+ thumb_func_end sub_80DA6F0
+
+ thumb_func_start sub_80DAD30
+sub_80DAD30: @ 80DAD30
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, _080DAD78 @ =gBattleAnimBankTarget
+ 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]
+ ldr r5, _080DAD7C @ =gBattleAnimBankAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r0, _080DAD80 @ =sub_807941C
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DAD78: .4byte gBattleAnimBankTarget
+_080DAD7C: .4byte gBattleAnimBankAttacker
+_080DAD80: .4byte sub_807941C
+ thumb_func_end sub_80DAD30
+
+ thumb_func_start sub_80DAD84
+sub_80DAD84: @ 80DAD84
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r5, _080DADCC @ =gBattleAnimArgs
+ ldrh r0, [r5]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x34]
+ ldr r0, _080DADD0 @ =gMain
+ ldr r1, _080DADD4 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DAE44
+ ldr r0, _080DADD8 @ =gBanksBySide
+ ldr r1, _080DADDC @ =gBattleAnimBankTarget
+ ldrb r2, [r1]
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DADE0
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ b _080DADEE
+ .align 2, 0
+_080DADCC: .4byte gBattleAnimArgs
+_080DADD0: .4byte gMain
+_080DADD4: .4byte 0x0000043d
+_080DADD8: .4byte gBanksBySide
+_080DADDC: .4byte gBattleAnimBankTarget
+_080DADE0:
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x28
+_080DADEE:
+ strh r0, [r4, 0x3C]
+ ldr r0, _080DAE1C @ =gBattleAnimArgs
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080DAE24
+ ldr r0, _080DAE20 @ =gBattleAnimBankTarget
+ 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 _080DAE58
+ .align 2, 0
+_080DAE1C: .4byte gBattleAnimArgs
+_080DAE20: .4byte gBattleAnimBankTarget
+_080DAE24:
+ ldr r0, _080DAE40 @ =gBattleAnimBankTarget
+ 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 _080DAE58
+ .align 2, 0
+_080DAE40: .4byte gBattleAnimBankTarget
+_080DAE44:
+ ldr r0, _080DAEFC @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ strh r0, [r4, 0x3C]
+_080DAE58:
+ ldr r5, _080DAF00 @ =gSineTable
+ ldrh r3, [r4, 0x30]
+ movs r1, 0xFF
+ ands r1, r3
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ movs r2, 0
+ strh r0, [r4, 0x36]
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r5
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r4, 0x38]
+ strh r2, [r4, 0x3A]
+ strh r2, [r4, 0x26]
+ strh r2, [r4, 0x24]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r6, r0, 27
+ lsls r3, 16
+ lsrs r3, 24
+ strh r3, [r4, 0x30]
+ bl Random
+ lsls r0, 16
+ asrs r7, r0, 16
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r7
+ cmp r0, 0
+ beq _080DAEA2
+ ldrh r1, [r4, 0x30]
+ movs r0, 0xFF
+ subs r0, r1
+ strh r0, [r4, 0x30]
+_080DAEA2:
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ ldr r3, _080DAF04 @ =gOamMatrices
+ lsls r2, r6, 3
+ adds r2, r3
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ strh r1, [r2, 0x6]
+ strh r1, [r2]
+ strh r0, [r2, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ adds r3, r4, 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]
+ movs r0, 0x1
+ ands r0, r7
+ cmp r0, 0
+ beq _080DAEF2
+ adds r2, r4, 0
+ adds r2, 0x2A
+ movs r1, 0x1
+ movs r0, 0x1
+ strb r0, [r2]
+ ldrb r0, [r3]
+ orrs r0, r1
+ strb r0, [r3]
+_080DAEF2:
+ ldr r0, _080DAF08 @ =sub_80DAF0C
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DAEFC: .4byte gBattleAnimBankTarget
+_080DAF00: .4byte gSineTable
+_080DAF04: .4byte gOamMatrices
+_080DAF08: .4byte sub_80DAF0C
+ thumb_func_end sub_80DAD84
+
+ thumb_func_start sub_80DAF0C
+sub_80DAF0C: @ 80DAF0C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r4, 0
+ adds r5, 0x2E
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ movs r1, 0
+ mov r8, r1
+ movs r7, 0
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080DAFF0
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ muls r0, r1
+ asrs r6, r0, 8
+ strh r6, [r4, 0x24]
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ muls r0, r1
+ asrs r3, r0, 8
+ strh r3, [r4, 0x26]
+ ldrh r2, [r4, 0x34]
+ movs r1, 0xFF
+ adds r0, r1, 0
+ ands r0, r2
+ ldrh r2, [r4, 0x3A]
+ adds r0, r2
+ strh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ ands r1, r2
+ cmp r0, r1
+ blt _080DAFF0
+ ldrh r0, [r4, 0x20]
+ adds r0, r6
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ strh r7, [r4, 0x24]
+ strh r7, [r4, 0x26]
+ mov r0, sp
+ adds r1, r5, 0
+ movs r2, 0x10
+ bl memcpy
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ ldrh r0, [r4, 0x22]
+ lsls r0, 8
+ strh r0, [r5, 0x8]
+ mov r0, sp
+ ldrh r0, [r0, 0x6]
+ lsrs r1, r0, 8
+ strh r1, [r5, 0x6]
+ strh r7, [r5, 0x2]
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ strh r0, [r5, 0xA]
+ adds r0, r4, 0
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080DAFC0
+ movs r0, 0x8
+ ands r1, r0
+ cmp r1, 0
+ beq _080DAFB8
+ ldr r0, _080DAFB4 @ =0x00008001
+ b _080DAFCE
+ .align 2, 0
+_080DAFB4: .4byte 0x00008001
+_080DAFB8:
+ ldr r0, _080DAFBC @ =0x00008002
+ b _080DAFCE
+ .align 2, 0
+_080DAFBC: .4byte 0x00008002
+_080DAFC0:
+ movs r0, 0x8
+ ands r1, r0
+ cmp r1, 0
+ beq _080DAFCC
+ movs r0, 0x1
+ b _080DAFCE
+_080DAFCC:
+ movs r0, 0x2
+_080DAFCE:
+ strh r0, [r5, 0x4]
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ lsrs r0, 8
+ strb r0, [r5, 0xC]
+ subs r0, 0x2
+ strb r0, [r5, 0xD]
+ mov r0, sp
+ ldrh r1, [r0, 0xE]
+ lsls r1, 1
+ ldrh r2, [r5, 0xE]
+ movs r0, 0x1
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0xE]
+ ldr r0, _080DAFFC @ =sub_80DA6F0
+ str r0, [r4, 0x1C]
+_080DAFF0:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DAFFC: .4byte sub_80DA6F0
+ thumb_func_end sub_80DAF0C
+
+ thumb_func_start sub_80DB000
+sub_80DB000: @ 80DB000
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080DB018 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DB01C
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080DB024
+ .align 2, 0
+_080DB018: .4byte gBattleAnimArgs
+_080DB01C:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078764
+_080DB024:
+ ldr r4, _080DB08C @ =gBattleAnimArgs
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080DB03C
+ ldr r0, _080DB090 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB052
+_080DB03C:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080DB058
+ ldr r0, _080DB094 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB058
+_080DB052:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x8
+ strh r0, [r5, 0x20]
+_080DB058:
+ ldr r4, _080DB08C @ =gBattleAnimArgs
+ ldrb r1, [r4, 0x8]
+ adds r0, r5, 0
+ bl SeekSpriteAnim
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x20
+ strh r0, [r5, 0x20]
+ ldr r0, _080DB098 @ =0x00000ccc
+ strh r0, [r5, 0x30]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0xC
+ adds r2, r0, 0
+ muls r2, r1
+ adds r0, r2, 0
+ ldrh r2, [r5, 0x24]
+ adds r0, r2
+ strh r0, [r5, 0x24]
+ strh r1, [r5, 0x2E]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080DB09C @ =sub_80DB0A0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB08C: .4byte gBattleAnimArgs
+_080DB090: .4byte gBattleAnimBankAttacker
+_080DB094: .4byte gBattleAnimBankTarget
+_080DB098: .4byte 0x00000ccc
+_080DB09C: .4byte sub_80DB0A0
+ thumb_func_end sub_80DB000
+
+ thumb_func_start sub_80DB0A0
+sub_80DB0A0: @ 80DB0A0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _080DB0CA
+ strh r1, [r4, 0x2E]
+ strh r1, [r4, 0x24]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+_080DB0CA:
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080DB0E2
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DB0E2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB0A0
+
+ thumb_func_start sub_80DB0E8
+sub_80DB0E8: @ 80DB0E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080DB180 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r7, r0, r1
+ ldrh r0, [r7, 0x8]
+ movs r1, 0x1F
+ ands r0, r1
+ cmp r0, 0
+ bne _080DB162
+ ldr r1, _080DB184 @ =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ movs r5, 0xD
+ negs r5, r5
+ adds r1, r5, 0
+ bl Sin
+ ldr r4, _080DB188 @ =gBattleAnimArgs
+ strh r0, [r4]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ adds r1, r5, 0
+ bl Cos
+ strh r0, [r4, 0x2]
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+ movs r0, 0x3
+ strh r0, [r4, 0x6]
+ ldr r0, _080DB18C @ =gBattleAnimSpriteTemplate_83DB538
+ mov r8, r0
+ ldr r5, _080DB190 @ =gBattleAnimBankTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r0, r8
+ adds r1, r4, 0
+ movs r3, 0x3
+ bl CreateSpriteAndAnimate
+_080DB162:
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x8
+ strh r0, [r7, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080DB176
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080DB176:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB180: .4byte gTasks
+_080DB184: .4byte gAnimVisualTaskCount
+_080DB188: .4byte gBattleAnimArgs
+_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538
+_080DB190: .4byte gBattleAnimBankTarget
+ thumb_func_end sub_80DB0E8
+
+ thumb_func_start sub_80DB194
+sub_80DB194: @ 80DB194
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DB1A6
+ cmp r0, 0x1
+ beq _080DB1D8
+ b _080DB1EC
+_080DB1A6:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ ldr r2, _080DB1D4 @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DB1EC
+ .align 2, 0
+_080DB1D4: .4byte gSprites
+_080DB1D8:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080DB1EC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DB1EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB194
+
+ thumb_func_start sub_80DB1F4
+sub_80DB1F4: @ 80DB1F4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DB22C
+ cmp r0, 0x1
+ bgt _080DB20A
+ cmp r0, 0
+ beq _080DB210
+ b _080DB27E
+_080DB20A:
+ cmp r0, 0x2
+ beq _080DB240
+ b _080DB27E
+_080DB210:
+ ldr r0, _080DB228 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ negs r0, r0
+ subs r0, 0x20
+ strh r0, [r4, 0x26]
+ b _080DB238
+ .align 2, 0
+_080DB228: .4byte gBattleAnimBankTarget
+_080DB22C:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0xA
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080DB27E
+_080DB238:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DB27E
+_080DB240:
+ ldrh r0, [r4, 0x26]
+ subs r0, 0xA
+ strh r0, [r4, 0x26]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080DB27E
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ ldr r2, _080DB284 @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DB27E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB284: .4byte gSprites
+ thumb_func_end sub_80DB1F4
+
+ thumb_func_start sub_80DB288
+sub_80DB288: @ 80DB288
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080DB2C4 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080DB2C8 @ =sub_80DB2D0
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ ldr r2, _080DB2CC @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB2C4: .4byte gBattleAnimArgs
+_080DB2C8: .4byte sub_80DB2D0
+_080DB2CC: .4byte gSprites
+ thumb_func_end sub_80DB288
+
+ thumb_func_start sub_80DB2D0
+sub_80DB2D0: @ 80DB2D0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _080DB2E4
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x2E]
+ b _080DB328
+_080DB2E4:
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ ble _080DB30A
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ subs r1, r0
+ strh r1, [r2, 0x26]
+ b _080DB328
+_080DB30A:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080DB328
+ ldr r0, _080DB32C @ =sub_80DB330
+ str r0, [r2, 0x1C]
+_080DB328:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB32C: .4byte sub_80DB330
+ thumb_func_end sub_80DB2D0
+
+ thumb_func_start sub_80DB330
+sub_80DB330: @ 80DB330
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ adds r0, r1
+ strh r0, [r2, 0x26]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ ble _080DB360
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+_080DB360:
+ movs r1, 0x26
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ ble _080DB36E
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080DB36E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB330
+
+ thumb_func_start sub_80DB374
+sub_80DB374: @ 80DB374
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080DB388
+ cmp r0, 0x1
+ beq _080DB3E0
+ b _080DB44C
+_080DB388:
+ ldr r0, _080DB398 @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080DB3A0
+ ldr r4, _080DB39C @ =gBattleAnimBankAttacker
+ b _080DB3A2
+ .align 2, 0
+_080DB398: .4byte gBattleAnimArgs
+_080DB39C: .4byte gBattleAnimBankAttacker
+_080DB3A0:
+ ldr r4, _080DB3DC @ =gBattleAnimBankTarget
+_080DB3A2:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ movs r3, 0x80
+ lsls r3, 2
+ strh r3, [r5, 0x30]
+ movs r2, 0x80
+ lsls r2, 1
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078FDC
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080DB44C
+ .align 2, 0
+_080DB3DC: .4byte gBattleAnimBankTarget
+_080DB3E0:
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xB
+ bgt _080DB3EE
+ ldrh r0, [r5, 0x30]
+ subs r0, 0x28
+ b _080DB3F2
+_080DB3EE:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x28
+_080DB3F2:
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0x32]
+ movs r2, 0x80
+ lsls r2, 1
+ movs r0, 0x30
+ ldrsh r3, [r5, r0]
+ str r1, [sp]
+ adds r0, r5, 0
+ bl sub_8078FDC
+ ldrb r1, [r5, 0x3]
+ lsls r1, 26
+ lsrs r1, 27
+ movs r0, 0xF4
+ lsls r0, 6
+ ldr r2, _080DB454 @ =gOamMatrices
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x6
+ ldrsh r1, [r1, r2]
+ bl __divsi3
+ adds r1, r0, 0x1
+ cmp r1, 0x80
+ ble _080DB42C
+ movs r1, 0x80
+_080DB42C:
+ movs r0, 0x40
+ subs r0, r1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r1, r0, 1
+ strh r1, [r5, 0x26]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x18
+ bne _080DB44C
+ adds r0, r5, 0
+ bl sub_8079098
+ adds r0, r5, 0
+ bl move_anim_8072740
+_080DB44C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB454: .4byte gOamMatrices
+ thumb_func_end sub_80DB374
+
+ thumb_func_start sub_80DB458
+sub_80DB458: @ 80DB458
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl Random
+ ldr r4, _080DB47C @ =0x000001ff
+ ands r4, r0
+ bl Random
+ movs r1, 0x7F
+ ands r1, r0
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080DB480
+ movs r2, 0xB8
+ lsls r2, 2
+ adds r0, r4, r2
+ b _080DB488
+ .align 2, 0
+_080DB47C: .4byte 0x000001ff
+_080DB480:
+ movs r2, 0xB8
+ lsls r2, 2
+ adds r0, r2, 0
+ subs r0, r4
+_080DB488:
+ strh r0, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DB49C
+ movs r2, 0xE0
+ lsls r2, 2
+ adds r0, r2, 0
+ adds r0, r1, r0
+ b _080DB4A4
+_080DB49C:
+ movs r2, 0xE0
+ lsls r2, 2
+ adds r0, r2, 0
+ subs r0, r1
+_080DB4A4:
+ strh r0, [r5, 0x30]
+ ldr r2, _080DB4CC @ =gBattleAnimArgs
+ ldrh r0, [r2]
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080DB4C0
+ ldrb r0, [r5, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+_080DB4C0:
+ movs r1, 0x2
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080DB4D4
+ ldr r4, _080DB4D0 @ =gBattleAnimBankAttacker
+ b _080DB4D6
+ .align 2, 0
+_080DB4CC: .4byte gBattleAnimArgs
+_080DB4D0: .4byte gBattleAnimBankAttacker
+_080DB4D4:
+ ldr r4, _080DB500 @ =gBattleAnimBankTarget
+_080DB4D6:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r5, 0x22]
+ ldr r0, _080DB504 @ =sub_80DB508
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB500: .4byte gBattleAnimBankTarget
+_080DB504: .4byte sub_80DB508
+ thumb_func_end sub_80DB458
+
+ thumb_func_start sub_80DB508
+sub_80DB508: @ 80DB508
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DB520
+ ldrh r3, [r4, 0x2E]
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ b _080DB52A
+_080DB520:
+ ldrh r3, [r4, 0x2E]
+ lsls r1, r3, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+_080DB52A:
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x30]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x26]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ strh r3, [r4, 0x2E]
+ adds r0, r2, 0
+ subs r0, 0x20
+ strh r0, [r4, 0x30]
+ lsls r0, r3, 16
+ cmp r0, 0
+ bge _080DB54A
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_080DB54A:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080DB55E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DB55E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB508
+
+ thumb_func_start sub_80DB564
+sub_80DB564: @ 80DB564
+ movs r1, 0
+ strh r1, [r0, 0x3A]
+ movs r1, 0x40
+ strh r1, [r0, 0x3C]
+ ldr r1, _080DB574 @ =sub_80DB578
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080DB574: .4byte sub_80DB578
+ thumb_func_end sub_80DB564
+
+ thumb_func_start sub_80DB578
+sub_80DB578: @ 80DB578
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ cmp r1, 0
+ beq _080DB58A
+ cmp r1, 0x1
+ beq _080DB5D8
+ b _080DB5DE
+_080DB58A:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080DB5DE
+ strh r1, [r3, 0x30]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r2, [r1]
+ 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, 0x5
+ ble _080DB5DE
+ ldrb r1, [r1]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DB5DE
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _080DB5DE
+_080DB5D8:
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080DB5DE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB578
+
+ thumb_func_start sub_80DB5E4
+sub_80DB5E4: @ 80DB5E4
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r8, r0
+ ldrh r4, [r0, 0x20]
+ ldrh r5, [r0, 0x22]
+ ldr r6, _080DB698 @ =gBattleAnimBankAttacker
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ strh r0, [r1, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ mov r2, r8
+ strh r6, [r2, 0x22]
+ ldrh r0, [r2, 0x20]
+ mov r9, r0
+ mov r1, r9
+ lsls r0, r1, 4
+ strh r0, [r2, 0x36]
+ lsls r0, r6, 4
+ strh r0, [r2, 0x38]
+ lsls r4, 16
+ asrs r4, 16
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ subs r0, r4, r0
+ lsls r0, 4
+ movs r1, 0xC
+ bl __divsi3
+ mov r2, r8
+ strh r0, [r2, 0x3A]
+ lsls r5, 16
+ asrs r5, 16
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ subs r0, r5, r0
+ lsls r0, 4
+ movs r1, 0xC
+ bl __divsi3
+ mov r2, r8
+ strh r0, [r2, 0x3C]
+ mov r0, r9
+ subs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ subs r5, r6
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ 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]
+ mov r0, r8
+ movs r1, 0x1
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldr r0, _080DB69C @ =sub_80DB6A0
+ mov r2, r8
+ str r0, [r2, 0x1C]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB698: .4byte gBattleAnimBankAttacker
+_080DB69C: .4byte sub_80DB6A0
+ thumb_func_end sub_80DB5E4
+
+ thumb_func_start sub_80DB6A0
+sub_80DB6A0: @ 80DB6A0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x36]
+ adds r0, r1
+ strh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x3C]
+ ldrh r3, [r2, 0x38]
+ adds r1, r3
+ strh r1, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r3, r1, 20
+ strh r3, [r2, 0x22]
+ adds r0, 0x2D
+ lsls r0, 16
+ movs r1, 0xA5
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080DB6DA
+ adds r1, r3, 0
+ cmp r1, 0x9D
+ bgt _080DB6DA
+ movs r0, 0x2D
+ negs r0, r0
+ cmp r1, r0
+ bge _080DB6E0
+_080DB6DA:
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080DB6E0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB6A0
+
+ thumb_func_start unref_sub_80DB6E4
+unref_sub_80DB6E4: @ 80DB6E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080DB714 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DB71C
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DB718 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ b _080DB73A
+ .align 2, 0
+_080DB714: .4byte gBattleAnimArgs
+_080DB718: .4byte gSprites
+_080DB71C:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DB748 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+_080DB73A:
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB748: .4byte gSprites
+ thumb_func_end unref_sub_80DB6E4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/ghost.s b/asm/ghost.s
new file mode 100755
index 000000000..09458dec1
--- /dev/null
+++ b/asm/ghost.s
@@ -0,0 +1,3383 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ @ ghost
+
+ thumb_func_start sub_80DDB6C
+sub_80DDB6C: @ 80DDB6C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080DDBC8 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, _080DDBCC @ =gBattleAnimBankTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_8078BD4
+ ldr r0, _080DDBD0 @ =sub_80DDBD8
+ str r0, [r4, 0x1C]
+ movs r0, 0x10
+ strh r0, [r4, 0x3A]
+ ldr r1, _080DDBD4 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDBC8: .4byte gBattleAnimArgs
+_080DDBCC: .4byte gBattleAnimBankTarget
+_080DDBD0: .4byte sub_80DDBD8
+_080DDBD4: .4byte REG_BLDCNT
+ thumb_func_end sub_80DDB6C
+
+ thumb_func_start sub_80DDBD8
+sub_80DDBD8: @ 80DDBD8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80DDCC8
+ adds r0, r4, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DDBF8
+ ldr r0, _080DDBF4 @ =sub_80DDC4C
+ str r0, [r4, 0x1C]
+ b _080DDC42
+ .align 2, 0
+_080DDBF4: .4byte sub_80DDC4C
+_080DDBF8:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _080DDC30
+ cmp r2, 0xC4
+ ble _080DDC42
+_080DDC30:
+ lsls r0, 16
+ cmp r0, 0
+ ble _080DDC42
+ ldr r0, _080DDC48 @ =gUnknown_0202F7D2
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0xC4
+ bl PlaySE12WithPanning
+_080DDC42:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDC48: .4byte gUnknown_0202F7D2
+ thumb_func_end sub_80DDBD8
+
+ thumb_func_start sub_80DDC4C
+sub_80DDC4C: @ 80DDC4C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_8078B5C
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _080DDC92
+ cmp r2, 0xC4
+ ble _080DDC9E
+_080DDC92:
+ lsls r0, 16
+ cmp r0, 0
+ ble _080DDC9E
+ movs r0, 0xC4
+ bl PlaySE
+_080DDC9E:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DDCBC
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DDCB8 @ =sub_807861C
+ str r0, [r4, 0x1C]
+ b _080DDCC2
+ .align 2, 0
+_080DDCB8: .4byte sub_807861C
+_080DDCBC:
+ adds r0, r4, 0
+ bl sub_80DDCC8
+_080DDCC2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DDC4C
+
+ thumb_func_start sub_80DDCC8
+sub_80DDCC8: @ 80DDCC8
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x3A]
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xFF
+ ble _080DDCEC
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x3A]
+ lsls r0, 16
+ ldr r1, _080DDCE8 @ =0x010d0000
+ cmp r0, r1
+ bne _080DDD4C
+ movs r0, 0
+ b _080DDD4A
+ .align 2, 0
+_080DDCE8: .4byte 0x010d0000
+_080DDCEC:
+ ldrh r1, [r3, 0x3C]
+ adds r4, r1, 0x1
+ strh r4, [r3, 0x3C]
+ movs r0, 0xFF
+ ands r0, r1
+ cmp r0, 0
+ bne _080DDD4C
+ ldr r1, _080DDD10 @ =0xffffff00
+ ands r1, r4
+ strh r1, [r3, 0x3C]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DDD14
+ adds r0, r2, 0x1
+ b _080DDD16
+ .align 2, 0
+_080DDD10: .4byte 0xffffff00
+_080DDD14:
+ subs r0, r2, 0x1
+_080DDD16:
+ strh r0, [r3, 0x3A]
+ ldr r2, _080DDD54 @ =REG_BLDALPHA
+ ldrh r1, [r3, 0x3A]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r2, 0x3A
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _080DDD32
+ cmp r0, 0x10
+ bne _080DDD3E
+_080DDD32:
+ ldrh r0, [r3, 0x3C]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ eors r0, r1
+ strh r0, [r3, 0x3C]
+_080DDD3E:
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080DDD4C
+ movs r0, 0x80
+ lsls r0, 1
+_080DDD4A:
+ strh r0, [r3, 0x3A]
+_080DDD4C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDD54: .4byte REG_BLDALPHA
+ thumb_func_end sub_80DDCC8
+
+ thumb_func_start sub_80DDD58
+sub_80DDD58: @ 80DDD58
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r1, _080DDD74 @ =sub_80DDD78
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDD74: .4byte sub_80DDD78
+ thumb_func_end sub_80DDD58
+
+ thumb_func_start sub_80DDD78
+sub_80DDD78: @ 80DDD78
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x41
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x82
+ bhi _080DDDAC
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x8
+ b _080DDDB6
+_080DDDAC:
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+_080DDDB6:
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x13
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x50
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3D
+ bne _080DDDE8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DDDE8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DDD78
+
+ thumb_func_start sub_80DDDF0
+sub_80DDDF0: @ 80DDDF0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080DDE68 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078E70
+ adds r0, r4, 0
+ movs r1, 0x80
+ movs r2, 0x80
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldr r1, _080DDE6C @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldr r1, _080DDE70 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x80
+ strh r1, [r0, 0x8]
+ ldr r1, _080DDE74 @ =gBattleAnimArgs
+ ldrh r1, [r1]
+ strh r1, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ movs r1, 0x10
+ strh r1, [r0, 0xE]
+ ldr r1, _080DDE78 @ =sub_80DDE7C
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDE68: .4byte REG_BLDCNT
+_080DDE6C: .4byte gSprites
+_080DDE70: .4byte gTasks
+_080DDE74: .4byte gBattleAnimArgs
+_080DDE78: .4byte sub_80DDE7C
+ thumb_func_end sub_80DDDF0
+
+ thumb_func_start sub_80DDE7C
+sub_80DDE7C: @ 80DDE7C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DDEC4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080DDEBE
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0xC]
+ adds r1, 0x1
+ strh r1, [r3, 0xC]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ ldr r2, _080DDEC8 @ =REG_BLDALPHA
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x9
+ bne _080DDEBE
+ ldr r0, _080DDECC @ =sub_80DDED0
+ str r0, [r3]
+_080DDEBE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDEC4: .4byte gTasks
+_080DDEC8: .4byte REG_BLDALPHA
+_080DDECC: .4byte sub_80DDED0
+ thumb_func_end sub_80DDE7C
+
+ thumb_func_start sub_80DDED0
+sub_80DDED0: @ 80DDED0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _080DDEF4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080DDEF8
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+ b _080DDF36
+ .align 2, 0
+_080DDEF4: .4byte gTasks
+_080DDEF8:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x8
+ movs r6, 0
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ bgt _080DDF22
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ adds r0, r1, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ b _080DDF36
+_080DDF22:
+ adds r0, r1, 0
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ ldr r0, _080DDF3C @ =REG_BLDCNT
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+_080DDF36:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDF3C: .4byte REG_BLDCNT
+ thumb_func_end sub_80DDED0
+
+ thumb_func_start sub_80DDF40
+sub_80DDF40: @ 80DDF40
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r5, [r4, 0x20]
+ ldrh r6, [r4, 0x22]
+ ldr r0, _080DDFDC @ =gBattleAnimBankAttacker
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ mov r9, r1
+ strh r0, [r4, 0x20]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ mov r1, r9
+ strh r1, [r4, 0x2E]
+ ldr r2, _080DDFE0 @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ strh r1, [r4, 0x30]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r4, 0x32]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r4, 0x34]
+ ldrh r1, [r4, 0x20]
+ lsls r1, 4
+ strh r1, [r4, 0x36]
+ lsls r0, 4
+ strh r0, [r4, 0x38]
+ lsls r5, 16
+ asrs r5, 16
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ subs r5, r0
+ lsls r5, 4
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ lsls r1, 1
+ adds r0, r5, 0
+ str r2, [sp]
+ bl __divsi3
+ strh r0, [r4, 0x3A]
+ lsls r6, 16
+ asrs r6, 16
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ subs r6, r0
+ lsls r6, 4
+ ldr r2, [sp]
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ lsls r1, 1
+ adds r0, r6, 0
+ bl __divsi3
+ strh r0, [r4, 0x3C]
+ ldr r0, _080DDFE4 @ =sub_80DDFE8
+ str r0, [r4, 0x1C]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDFDC: .4byte gBattleAnimBankAttacker
+_080DDFE0: .4byte gBattleAnimArgs
+_080DDFE4: .4byte sub_80DDFE8
+ thumb_func_end sub_80DDF40
+
+ thumb_func_start sub_80DDFE8
+sub_80DDFE8: @ 80DDFE8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080DE032
+ cmp r0, 0x1
+ bgt _080DDFFE
+ cmp r0, 0
+ beq _080DE008
+ b _080DE0F6
+_080DDFFE:
+ cmp r0, 0x2
+ beq _080DE09C
+ cmp r0, 0x3
+ beq _080DE0F0
+ b _080DE0F6
+_080DE008:
+ ldrh r0, [r5, 0x3A]
+ ldrh r2, [r5, 0x36]
+ adds r0, r2
+ strh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x3C]
+ ldrh r2, [r5, 0x38]
+ adds r1, r2
+ strh r1, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r5, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r5, 0x22]
+ ldrh r0, [r5, 0x30]
+ subs r0, 0x1
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080DE0F6
+ b _080DE0E2
+_080DE032:
+ ldrh r0, [r5, 0x32]
+ subs r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080DE0F6
+ ldr r4, _080DE098 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x30]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x20]
+ lsls r0, 4
+ strh r0, [r5, 0x36]
+ ldrh r0, [r5, 0x22]
+ lsls r0, 4
+ strh r0, [r5, 0x38]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r2, 0x34
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r5, 0x3A]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r2, 0x22
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r2, 0x34
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r5, 0x3C]
+ b _080DE0E2
+ .align 2, 0
+_080DE098: .4byte gBattleAnimBankTarget
+_080DE09C:
+ ldrh r0, [r5, 0x3A]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x3C]
+ ldrh r2, [r5, 0x38]
+ adds r1, r2
+ strh r1, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r5, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r5, 0x22]
+ ldrh r0, [r5, 0x34]
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080DE0F6
+ ldr r4, _080DE0EC @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_080DE0E2:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080DE0F6
+ .align 2, 0
+_080DE0EC: .4byte gBattleAnimBankTarget
+_080DE0F0:
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_080DE0F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DDFE8
+
+ thumb_func_start sub_80DE0FC
+sub_80DE0FC: @ 80DE0FC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080DE110 @ =sub_80DE114
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE110: .4byte sub_80DE114
+ thumb_func_end sub_80DE0FC
+
+ thumb_func_start sub_80DE114
+sub_80DE114: @ 80DE114
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ movs r5, 0
+ movs r6, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080DE1AA
+ adds r1, r3, 0
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x4
+ ands r0, r2
+ adds r4, r1, 0
+ cmp r0, 0
+ bne _080DE13E
+ movs r0, 0x4
+ orrs r0, r2
+ strb r0, [r4]
+_080DE13E:
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _080DE14E
+ cmp r0, 0x1
+ beq _080DE158
+ movs r6, 0x1
+ b _080DE162
+_080DE14E:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x2
+ bne _080DE162
+ b _080DE166
+_080DE158:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x4
+ bne _080DE162
+ movs r5, 0x1
+_080DE162:
+ cmp r5, 0
+ beq _080DE198
+_080DE166:
+ ldrb r2, [r4]
+ 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, [r4]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r3, 0x32]
+ strh r1, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080DE1AA
+ strh r1, [r3, 0x32]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _080DE1AA
+_080DE198:
+ cmp r6, 0
+ beq _080DE1A4
+ adds r0, r3, 0
+ bl move_anim_8072740
+ b _080DE1AA
+_080DE1A4:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+_080DE1AA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DE114
+
+ thumb_func_start sub_80DE1B0
+sub_80DE1B0: @ 80DE1B0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080DE1DC @ =gTasks
+ adds r5, r0, r1
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ movs r6, 0
+ movs r1, 0
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080DE1E0
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _080DE2C0
+ .align 2, 0
+_080DE1DC: .4byte gTasks
+_080DE1E0:
+ strh r1, [r5, 0xA]
+ movs r0, 0xF
+ strh r0, [r5, 0xC]
+ movs r0, 0x2
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ ldr r1, _080DE244 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080DE248 @ =REG_BLDALPHA
+ ldrh r0, [r5, 0xE]
+ lsls r0, 8
+ ldrh r1, [r5, 0xC]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r4, _080DE24C @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x50
+ strh r1, [r0, 0x2E]
+ ldr r0, _080DE250 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DE258
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080DE254 @ =0x0000ff70
+ strh r1, [r0, 0x30]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x70
+ b _080DE276
+ .align 2, 0
+_080DE244: .4byte REG_BLDCNT
+_080DE248: .4byte REG_BLDALPHA
+_080DE24C: .4byte gSprites
+_080DE250: .4byte gBattleAnimBankTarget
+_080DE254: .4byte 0x0000ff70
+_080DE258:
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x90
+ strh r1, [r0, 0x30]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080DE2C8 @ =0x0000ff90
+_080DE276:
+ strh r1, [r0, 0x32]
+ ldr r4, _080DE2CC @ =gSprites
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r2, 0
+ strh r2, [r0, 0x34]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x36]
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080DE2D0 @ =SpriteCallbackDummy
+ bl StoreSpriteCallbackInData
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _080DE2D4 @ =sub_8078394
+ str r1, [r0]
+ ldr r0, _080DE2D8 @ =sub_80DE2DC
+ str r0, [r5]
+_080DE2C0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE2C8: .4byte 0x0000ff90
+_080DE2CC: .4byte gSprites
+_080DE2D0: .4byte SpriteCallbackDummy
+_080DE2D4: .4byte sub_8078394
+_080DE2D8: .4byte sub_80DE2DC
+ thumb_func_end sub_80DE1B0
+
+ thumb_func_start sub_80DE2DC
+sub_80DE2DC: @ 80DE2DC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DE300 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DE37C
+ cmp r0, 0x1
+ bgt _080DE304
+ cmp r0, 0
+ beq _080DE30A
+ b _080DE3A6
+ .align 2, 0
+_080DE300: .4byte gTasks
+_080DE304:
+ cmp r0, 0x2
+ beq _080DE3A0
+ b _080DE3A6
+_080DE30A:
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ movs r0, 0x3
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ cmp r0, 0x1
+ bne _080DE328
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080DE328
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xC]
+_080DE328:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ bne _080DE33E
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DE33E
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+_080DE33E:
+ ldr r2, _080DE374 @ =REG_BLDALPHA
+ ldrh r0, [r4, 0xE]
+ lsls r0, 8
+ ldrh r1, [r4, 0xC]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, [r4, 0xC]
+ movs r0, 0x80
+ lsls r0, 13
+ cmp r1, r0
+ bne _080DE3A6
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x50
+ ble _080DE3A6
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080DE378 @ =gSprites
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+ movs r0, 0x1
+ strh r0, [r4, 0x10]
+ b _080DE3A6
+ .align 2, 0
+_080DE374: .4byte REG_BLDALPHA
+_080DE378: .4byte gSprites
+_080DE37C:
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DE3A6
+ ldr r0, _080DE39C @ =REG_BLDCNT
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ b _080DE3A6
+ .align 2, 0
+_080DE39C: .4byte REG_BLDCNT
+_080DE3A0:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080DE3A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DE2DC
+
+ thumb_func_start sub_80DE3AC
+sub_80DE3AC: @ 80DE3AC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r2, _080DE3CC @ =gTasks
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x26]
+ ldr r2, _080DE3D0 @ =sub_80DE3D4
+ str r2, [r1]
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE3CC: .4byte gTasks
+_080DE3D0: .4byte sub_80DE3D4
+ thumb_func_end sub_80DE3AC
+
+ thumb_func_start sub_80DE3D4
+sub_80DE3D4: @ 80DE3D4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080DE40C @ =gTasks
+ adds r5, r0, r1
+ ldr r0, _080DE410 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _080DE400
+ b _080DE604
+_080DE400:
+ lsls r0, 2
+ ldr r1, _080DE414 @ =_080DE418
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DE40C: .4byte gTasks
+_080DE410: .4byte gBattleAnimBankTarget
+_080DE414: .4byte _080DE418
+ .align 2, 0
+_080DE418:
+ .4byte _080DE42C
+ .4byte _080DE500
+ .4byte _080DE544
+ .4byte _080DE5AC
+ .4byte _080DE5E0
+_080DE42C:
+ ldr r7, _080DE460 @ =0x00002771
+ adds r0, r7, 0
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ mov r8, r2
+ strh r0, [r5, 0x24]
+ cmp r0, 0xFF
+ beq _080DE456
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080DE464
+ adds r0, r7, 0
+ bl FreeSpritePaletteByTag
+_080DE456:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _080DE60A
+ .align 2, 0
+_080DE460: .4byte 0x00002771
+_080DE464:
+ ldr r4, _080DE4E4 @ =gSprites
+ movs r3, 0x8
+ ldrsh r0, [r5, r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r2, [r5, 0x24]
+ lsls r2, 4
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ mov r3, r8
+ strh r3, [r5, 0xA]
+ strh r3, [r5, 0xC]
+ movs r0, 0x10
+ strh r0, [r5, 0xE]
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ lsls r0, 4
+ strh r0, [r5, 0x10]
+ cmp r6, 0x1
+ bne _080DE4EC
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080DE4E8 @ =0x0000fdff
+ b _080DE4F4
+ .align 2, 0
+_080DE4E4: .4byte gSprites
+_080DE4E8: .4byte 0x0000fdff
+_080DE4EC:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080DE4FC @ =0x0000fbff
+_080DE4F4:
+ ands r0, r1
+ strh r0, [r2]
+ b _080DE604
+ .align 2, 0
+_080DE4FC: .4byte 0x0000fbff
+_080DE500:
+ movs r1, 0x24
+ ldrsh r0, [r5, r1]
+ adds r0, 0x10
+ lsls r0, 4
+ strh r0, [r5, 0x24]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ ldr r1, _080DE534 @ =gPlttBufferUnfaded
+ adds r0, r1
+ movs r3, 0x24
+ ldrsh r1, [r5, r3]
+ lsls r1, 1
+ ldr r2, _080DE538 @ =gPlttBufferFaded
+ adds r1, r2
+ ldr r2, _080DE53C @ =REG_BG0CNT
+ bl CpuSet
+ ldrh r0, [r5, 0x10]
+ ldr r3, _080DE540 @ =0x00003c0d
+ movs r1, 0x10
+ movs r2, 0xA
+ bl BlendPalette
+ b _080DE604
+ .align 2, 0
+_080DE534: .4byte gPlttBufferUnfaded
+_080DE538: .4byte gPlttBufferFaded
+_080DE53C: .4byte REG_BG0CNT
+_080DE540: .4byte 0x00003c0d
+_080DE544:
+ ldr r2, _080DE580 @ =gSprites
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ subs r1, 0x20
+ lsls r1, 16
+ lsrs r2, r1, 16
+ cmp r1, 0
+ bge _080DE564
+ movs r2, 0
+_080DE564:
+ cmp r6, 0x1
+ bne _080DE584
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x4
+ str r2, [sp, 0x4]
+ str r6, [sp, 0x8]
+ b _080DE59C
+ .align 2, 0
+_080DE580: .4byte gSprites
+_080DE584:
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x8
+ str r2, [sp, 0x4]
+ movs r2, 0x1
+ str r2, [sp, 0x8]
+_080DE59C:
+ movs r2, 0x2
+ movs r3, 0x6
+ bl sub_8089944
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ b _080DE604
+_080DE5AC:
+ cmp r6, 0x1
+ bne _080DE5C0
+ ldr r1, _080DE5B8 @ =REG_BLDCNT
+ ldr r2, _080DE5BC @ =0x00003f42
+ adds r0, r2, 0
+ b _080DE5C6
+ .align 2, 0
+_080DE5B8: .4byte REG_BLDCNT
+_080DE5BC: .4byte 0x00003f42
+_080DE5C0:
+ ldr r1, _080DE5D4 @ =REG_BLDCNT
+ ldr r3, _080DE5D8 @ =0x00003f44
+ adds r0, r3, 0
+_080DE5C6:
+ strh r0, [r1]
+ ldr r1, _080DE5DC @ =REG_BLDALPHA
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080DE604
+ .align 2, 0
+_080DE5D4: .4byte REG_BLDCNT
+_080DE5D8: .4byte 0x00003f44
+_080DE5DC: .4byte REG_BLDALPHA
+_080DE5E0:
+ cmp r6, 0x1
+ bne _080DE5F0
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 2
+ b _080DE5FA
+_080DE5F0:
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 3
+_080DE5FA:
+ adds r2, r3, 0
+ orrs r1, r2
+ strh r1, [r0]
+ ldr r0, _080DE618 @ =sub_80DE61C
+ str r0, [r5]
+_080DE604:
+ ldrh r0, [r5, 0x26]
+ adds r0, 0x1
+ strh r0, [r5, 0x26]
+_080DE60A:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE618: .4byte sub_80DE61C
+ thumb_func_end sub_80DE3D4
+
+ thumb_func_start sub_80DE61C
+sub_80DE61C: @ 80DE61C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080DE6A0 @ =gTasks
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ movs r0, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ cmp r0, 0
+ bne _080DE654
+ ldr r1, _080DE6A4 @ =gSineTable
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x12
+ bl __divsi3
+ strh r0, [r4, 0xC]
+_080DE654:
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ bne _080DE676
+ ldr r1, _080DE6A4 @ =gSineTable
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x12
+ bl __divsi3
+ movs r1, 0x10
+ subs r1, r0
+ strh r1, [r4, 0xE]
+_080DE676:
+ ldr r2, _080DE6A8 @ =REG_BLDALPHA
+ ldrh r0, [r4, 0xE]
+ lsls r0, 8
+ ldrh r1, [r4, 0xC]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x80
+ bne _080DE698
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r1, _080DE6AC @ =sub_80DE6B0
+ str r1, [r4]
+ adds r0, r5, 0
+ bl _call_via_r1
+_080DE698:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE6A0: .4byte gTasks
+_080DE6A4: .4byte gSineTable
+_080DE6A8: .4byte REG_BLDALPHA
+_080DE6AC: .4byte sub_80DE6B0
+ thumb_func_end sub_80DE61C
+
+ thumb_func_start sub_80DE6B0
+sub_80DE6B0: @ 80DE6B0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080DE6E0 @ =gTasks
+ adds r4, r0, r1
+ ldr r0, _080DE6E4 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DE72C
+ cmp r0, 0x1
+ bgt _080DE6E8
+ cmp r0, 0
+ beq _080DE6EE
+ b _080DE7AA
+ .align 2, 0
+_080DE6E0: .4byte gTasks
+_080DE6E4: .4byte gBattleAnimBankTarget
+_080DE6E8:
+ cmp r0, 0x2
+ beq _080DE740
+ b _080DE7AA
+_080DE6EE:
+ ldr r1, _080DE710 @ =gUnknown_03004DC0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ cmp r6, 0x1
+ bne _080DE718
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080DE714 @ =0x0000fdff
+ b _080DE720
+ .align 2, 0
+_080DE710: .4byte gUnknown_03004DC0
+_080DE714: .4byte 0x0000fdff
+_080DE718:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080DE728 @ =0x0000fbff
+_080DE720:
+ ands r0, r1
+ strh r0, [r2]
+ b _080DE7AA
+ .align 2, 0
+_080DE728: .4byte 0x0000fbff
+_080DE72C:
+ ldrh r0, [r4, 0x10]
+ ldr r3, _080DE73C @ =0x00003c0d
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalette
+ b _080DE7AA
+ .align 2, 0
+_080DE73C: .4byte 0x00003c0d
+_080DE740:
+ ldr r3, _080DE788 @ =gSprites
+ movs r0, 0x24
+ 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
+ bl obj_delete_but_dont_free_vram
+ ldr r0, _080DE78C @ =0x00002771
+ bl FreeSpritePaletteByTag
+ ldr r0, _080DE790 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ cmp r6, 0x1
+ bne _080DE794
+ subs r0, 0x52
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 2
+ b _080DE79E
+ .align 2, 0
+_080DE788: .4byte gSprites
+_080DE78C: .4byte 0x00002771
+_080DE790: .4byte REG_BLDCNT
+_080DE794:
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 3
+_080DE79E:
+ adds r2, r3, 0
+ orrs r1, r2
+ strh r1, [r0]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080DE7AA:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DE6B0
+
+ thumb_func_start sub_80DE7B8
+sub_80DE7B8: @ 80DE7B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r7, r0, 0
+ ldr r0, _080DE7F4 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DE800
+ ldr r4, _080DE7F8 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r2, 0xE0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r5, r0, 16
+ ldr r4, _080DE7FC @ =gBattleAnimBankTarget
+ b _080DE824
+ .align 2, 0
+_080DE7F4: .4byte gBattleAnimArgs
+_080DE7F8: .4byte gBattleAnimBankAttacker
+_080DE7FC: .4byte gBattleAnimBankTarget
+_080DE800:
+ ldr r4, _080DE8C8 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r2, 0xE0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r5, r0, 16
+ ldr r4, _080DE8CC @ =gBattleAnimBankAttacker
+_080DE824:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r1, 0xE0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r0, 16
+ mov r9, r0
+ mov r8, r5
+ mov r2, r9
+ subs r4, r2, r5
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, r6, 4
+ strh r0, [r7, 0x2E]
+ lsls r0, r5, 4
+ strh r0, [r7, 0x30]
+ mov r1, r10
+ subs r0, r1, r6
+ lsls r0, 4
+ ldr r5, _080DE8D0 @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r7, 0x32]
+ lsls r4, 16
+ asrs r4, 12
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl __divsi3
+ strh r0, [r7, 0x34]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r7, 0x36]
+ mov r1, r10
+ strh r1, [r7, 0x38]
+ mov r2, r9
+ strh r2, [r7, 0x3A]
+ movs r1, 0x36
+ ldrsh r0, [r7, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r7, 0x3C]
+ ldrb r1, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+ strh r6, [r7, 0x20]
+ mov r2, r8
+ strh r2, [r7, 0x22]
+ ldr r0, _080DE8D4 @ =sub_80DE8D8
+ str r0, [r7, 0x1C]
+ adds r2, r7, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ 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
+_080DE8C8: .4byte gBattleAnimBankTarget
+_080DE8CC: .4byte gBattleAnimBankAttacker
+_080DE8D0: .4byte gBattleAnimArgs
+_080DE8D4: .4byte sub_80DE8D8
+ thumb_func_end sub_80DE7B8
+
+ thumb_func_start sub_80DE8D8
+sub_80DE8D8: @ 80DE8D8
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080DE910
+ ldrh r0, [r2, 0x32]
+ ldrh r4, [r2, 0x2E]
+ adds r0, r4
+ strh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x34]
+ ldrh r4, [r2, 0x30]
+ adds r1, r4
+ strh r1, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r2, 0x22]
+ subs r0, r3, 0x1
+ strh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080DE910
+ strh r0, [r2, 0x2E]
+_080DE910:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DE8D8
+
+ thumb_func_start sub_80DE918
+sub_80DE918: @ 80DE918
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DEA68 @ =gTasks
+ adds r1, r0
+ str r1, [sp]
+ ldr r1, _080DEA6C @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r0, 0
+ ldr r1, [sp]
+ strh r0, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ strh r0, [r1, 0x16]
+ strh r0, [r1, 0x18]
+ movs r0, 0x10
+ strh r0, [r1, 0x1A]
+ ldr r2, _080DEA70 @ =gBattleAnimArgs
+ ldrh r0, [r2]
+ strh r0, [r1, 0x1C]
+ ldr r4, _080DEA74 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_807A100
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DE988
+ b _080DEA88
+_080DE988:
+ movs r4, 0
+_080DE98A:
+ lsls r1, r4, 16
+ asrs r3, r1, 16
+ ldr r0, _080DEA74 @ =gBattleAnimBankAttacker
+ ldrb r2, [r0]
+ str r1, [sp, 0x10]
+ cmp r3, r2
+ beq _080DEA56
+ movs r0, 0x2
+ eors r2, r0
+ cmp r3, r2
+ beq _080DEA56
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl IsAnimBankSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DEA56
+ ldr r6, [sp, 0x4]
+ ldr r3, [sp, 0x8]
+ lsls r0, r3, 16
+ asrs r7, r0, 16
+ ldr r0, _080DEA78 @ =gSpriteTemplate_83DAF08
+ adds r1, r6, 0
+ adds r2, r7, 0
+ movs r3, 0x37
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x40
+ beq _080DEA56
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_807A100
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ mov r0, r8
+ lsls r5, r0, 4
+ add r5, r8
+ lsls r5, 2
+ ldr r1, _080DEA7C @ =gSprites
+ adds r4, r5, r1
+ lsls r0, r6, 4
+ strh r0, [r4, 0x2E]
+ lsls r0, r7, 4
+ strh r0, [r4, 0x30]
+ mov r2, r10
+ subs r0, r2, r6
+ lsls r0, 4
+ ldr r3, _080DEA70 @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r1, [r3, r2]
+ bl __divsi3
+ strh r0, [r4, 0x32]
+ mov r3, r9
+ lsls r0, r3, 16
+ asrs r0, 16
+ subs r0, r7
+ lsls r0, 4
+ ldr r2, _080DEA70 @ =gBattleAnimArgs
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ bl __divsi3
+ strh r0, [r4, 0x34]
+ ldr r1, _080DEA70 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x36]
+ mov r2, r10
+ strh r2, [r4, 0x38]
+ mov r3, r9
+ strh r3, [r4, 0x3A]
+ ldr r0, _080DEA80 @ =gSprites + 0x1C
+ adds r5, r0
+ ldr r0, _080DEA84 @ =sub_80DE8D8
+ str r0, [r5]
+ ldr r2, [sp]
+ movs r3, 0x20
+ ldrsh r1, [r2, r3]
+ adds r1, 0xD
+ lsls r1, 1
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0]
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x1
+ strh r0, [r2, 0x20]
+_080DEA56:
+ ldr r2, [sp, 0x10]
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r2, r3
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080DE98A
+ b _080DEB0C
+ .align 2, 0
+_080DEA68: .4byte gTasks
+_080DEA6C: .4byte REG_BLDCNT
+_080DEA70: .4byte gBattleAnimArgs
+_080DEA74: .4byte gBattleAnimBankAttacker
+_080DEA78: .4byte gSpriteTemplate_83DAF08
+_080DEA7C: .4byte gSprites
+_080DEA80: .4byte gSprites + 0x1C
+_080DEA84: .4byte sub_80DE8D8
+_080DEA88:
+ ldr r0, _080DEB24 @ =gSpriteTemplate_83DAF08
+ ldr r7, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ lsls r1, r2, 16
+ asrs r1, 16
+ str r1, [sp, 0xC]
+ adds r1, r7, 0
+ ldr r2, [sp, 0xC]
+ movs r3, 0x37
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x40
+ beq _080DEB0C
+ movs r3, 0x30
+ mov r10, r3
+ movs r0, 0x28
+ mov r9, r0
+ ldr r6, _080DEB28 @ =gSprites
+ mov r1, r8
+ lsls r5, r1, 4
+ add r5, r8
+ lsls r5, 2
+ adds r4, r5, r6
+ lsls r0, r7, 4
+ strh r0, [r4, 0x2E]
+ ldr r2, [sp, 0xC]
+ lsls r0, r2, 4
+ strh r0, [r4, 0x30]
+ subs r0, r3, r7
+ lsls r0, 4
+ ldr r3, _080DEB2C @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r1, [r3, r2]
+ bl __divsi3
+ strh r0, [r4, 0x32]
+ mov r3, r9
+ ldr r1, [sp, 0xC]
+ subs r0, r3, r1
+ lsls r0, 4
+ ldr r2, _080DEB2C @ =gBattleAnimArgs
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ bl __divsi3
+ strh r0, [r4, 0x34]
+ ldr r1, _080DEB2C @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x36]
+ mov r2, r10
+ strh r2, [r4, 0x38]
+ mov r3, r9
+ strh r3, [r4, 0x3A]
+ adds r6, 0x1C
+ adds r5, r6
+ ldr r0, _080DEB30 @ =sub_80DE8D8
+ str r0, [r5]
+ mov r1, r8
+ ldr r0, [sp]
+ strh r1, [r0, 0x22]
+ movs r0, 0x1
+ ldr r2, [sp]
+ strh r0, [r2, 0x20]
+_080DEB0C:
+ ldr r0, _080DEB34 @ =sub_80DEB38
+ ldr r3, [sp]
+ str r0, [r3]
+ 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
+_080DEB24: .4byte gSpriteTemplate_83DAF08
+_080DEB28: .4byte gSprites
+_080DEB2C: .4byte gBattleAnimArgs
+_080DEB30: .4byte sub_80DE8D8
+_080DEB34: .4byte sub_80DEB38
+ thumb_func_end sub_80DE918
+
+ thumb_func_start sub_80DEB38
+sub_80DEB38: @ 80DEB38
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DEB5C @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080DEBEE
+ cmp r1, 0x1
+ bgt _080DEB60
+ cmp r1, 0
+ beq _080DEB6E
+ b _080DECA4
+ .align 2, 0
+_080DEB5C: .4byte gTasks
+_080DEB60:
+ cmp r1, 0x2
+ bne _080DEB66
+ b _080DEC80
+_080DEB66:
+ cmp r1, 0x3
+ bne _080DEB6C
+ b _080DEC94
+_080DEB6C:
+ b _080DECA4
+_080DEB6E:
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080DEBCE
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DEBCE
+ strh r1, [r4, 0x12]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DEBA4
+ ldrh r1, [r4, 0x18]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DEBB2
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x18]
+ b _080DEBB2
+_080DEBA4:
+ ldrh r1, [r4, 0x1A]
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080DEBB2
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1A]
+_080DEBB2:
+ ldr r2, _080DEBE0 @ =REG_BLDALPHA
+ ldrh r0, [r4, 0x1A]
+ lsls r0, 8
+ ldrh r1, [r4, 0x18]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x17
+ ble _080DEBCE
+ movs r0, 0
+ strh r0, [r4, 0x16]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+_080DEBCE:
+ ldrh r1, [r4, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080DEBE4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1C]
+ b _080DECA4
+ .align 2, 0
+_080DEBE0: .4byte REG_BLDALPHA
+_080DEBE4:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DECA4
+ b _080DEC8C
+_080DEBEE:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DECA4
+ movs r0, 0
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+ ands r0, r1
+ lsls r0, 16
+ cmp r0, 0
+ beq _080DEC1E
+ ldrh r1, [r4, 0x18]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080DEC2C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x18]
+ b _080DEC2C
+_080DEC1E:
+ ldrh r1, [r4, 0x1A]
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DEC2C
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x1A]
+_080DEC2C:
+ ldr r2, _080DEC48 @ =REG_BLDALPHA
+ ldrh r0, [r4, 0x1A]
+ lsls r0, 8
+ ldrh r1, [r4, 0x18]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, [r4, 0x18]
+ movs r0, 0x80
+ lsls r0, 13
+ cmp r1, r0
+ bne _080DECA4
+ movs r5, 0
+ b _080DEC70
+ .align 2, 0
+_080DEC48: .4byte REG_BLDALPHA
+_080DEC4C:
+ adds r1, r5, 0
+ adds r1, 0xD
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080DEC7C @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080DEC70:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r5, r0
+ blt _080DEC4C
+ b _080DEC8C
+ .align 2, 0
+_080DEC7C: .4byte gSprites
+_080DEC80:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080DECA4
+_080DEC8C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DECA4
+_080DEC94:
+ ldr r0, _080DECAC @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080DECA4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DECAC: .4byte REG_BLDCNT
+ thumb_func_end sub_80DEB38
+
+ thumb_func_start sub_80DECB0
+sub_80DECB0: @ 80DECB0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080DECF8 @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080DECFC @ =gUnknown_03004240
+ strh r1, [r0]
+ ldr r1, _080DED00 @ =REG_WININ
+ ldr r2, _080DED04 @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r2, 0x20
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x6
+ movs r0, 0xC8
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r0, _080DED08 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DECF4
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DED0C
+_080DECF4:
+ movs r6, 0x28
+ b _080DED0E
+ .align 2, 0
+_080DECF8: .4byte gUnknown_030042C4
+_080DECFC: .4byte gUnknown_03004240
+_080DED00: .4byte REG_WININ
+_080DED04: .4byte 0x00003f3f
+_080DED08: .4byte gBattleAnimBankAttacker
+_080DED0C:
+ movs r6, 0xC8
+_080DED0E:
+ ldr r1, _080DED4C @ =gUnknown_030042C4
+ lsls r3, r6, 16
+ asrs r2, r3, 16
+ lsls r0, r2, 8
+ orrs r0, r2
+ strh r0, [r1]
+ ldr r1, _080DED50 @ =gUnknown_03004240
+ movs r5, 0x28
+ ldr r0, _080DED54 @ =0x00002828
+ strh r0, [r1]
+ lsrs r3, 16
+ movs r1, 0xF0
+ subs r1, r2
+ movs r4, 0x48
+ ldr r2, _080DED58 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r2
+ strh r3, [r0, 0xA]
+ strh r1, [r0, 0xC]
+ strh r5, [r0, 0xE]
+ strh r4, [r0, 0x10]
+ strh r6, [r0, 0x12]
+ strh r5, [r0, 0x14]
+ ldr r1, _080DED5C @ =sub_80DED60
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DED4C: .4byte gUnknown_030042C4
+_080DED50: .4byte gUnknown_03004240
+_080DED54: .4byte 0x00002828
+_080DED58: .4byte gTasks
+_080DED5C: .4byte sub_80DED60
+ thumb_func_end sub_80DECB0
+
+ thumb_func_start sub_80DED60
+sub_80DED60: @ 80DED60
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DEE80 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0x8]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x8]
+ ldrh r5, [r4, 0xA]
+ ldrh r7, [r4, 0xC]
+ ldrh r0, [r4, 0xE]
+ mov r10, r0
+ ldrh r2, [r4, 0x10]
+ str r2, [sp, 0xC]
+ ldrh r0, [r4, 0x12]
+ ldrh r2, [r4, 0x14]
+ mov r8, r2
+ lsls r1, 16
+ asrs r6, r1, 16
+ cmp r6, 0xF
+ ble _080DED9C
+ b _080DEE8C
+_080DED9C:
+ lsls r0, 16
+ asrs r0, 16
+ bl __floatsidf
+ str r0, [sp, 0x10]
+ str r1, [sp, 0x14]
+ lsls r0, r5, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080DEE84 @ =0x3fb00000
+ ldr r3, _080DEE88 @ =0x00000000
+ bl __muldf3
+ adds r5, r1, 0
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl __floatsidf
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ adds r1, r5, 0
+ adds r0, r4, 0
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ bl __subdf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ lsls r0, r7, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080DEE84 @ =0x3fb00000
+ ldr r3, _080DEE88 @ =0x00000000
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ bl __adddf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ bl __floatsidf
+ adds r5, r1, 0
+ adds r4, r0, 0
+ mov r2, r10
+ lsls r0, r2, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080DEE84 @ =0x3fb00000
+ ldr r3, _080DEE88 @ =0x00000000
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __subdf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, [sp, 0xC]
+ lsls r0, r1, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080DEE84 @ =0x3fb00000
+ ldr r3, _080DEE88 @ =0x00000000
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __adddf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _080DEEBA
+ .align 2, 0
+_080DEE80: .4byte gTasks
+_080DEE84: .4byte 0x3fb00000
+_080DEE88: .4byte 0x00000000
+_080DEE8C:
+ movs r2, 0
+ mov r9, r2
+ movs r7, 0xF0
+ movs r6, 0
+ movs r5, 0x70
+ str r6, [sp]
+ str r6, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r3, 0
+ bl sub_80791A8
+ lsls r0, 16
+ lsrs r0, 16
+ str r6, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _080DEEDC @ =sub_80DEEE8
+ str r0, [r4]
+_080DEEBA:
+ ldr r1, _080DEEE0 @ =gUnknown_030042C4
+ mov r2, r9
+ lsls r0, r2, 8
+ orrs r7, r0
+ strh r7, [r1]
+ ldr r1, _080DEEE4 @ =gUnknown_03004240
+ lsls r0, r6, 8
+ orrs r5, r0
+ strh r5, [r1]
+ 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
+_080DEEDC: .4byte sub_80DEEE8
+_080DEEE0: .4byte gUnknown_030042C4
+_080DEEE4: .4byte gUnknown_03004240
+ thumb_func_end sub_80DED60
+
+ thumb_func_start sub_80DEEE8
+sub_80DEEE8: @ 80DEEE8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080DEF28 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080DEF20
+ ldr r0, _080DEF2C @ =gUnknown_030042C4
+ strh r2, [r0]
+ ldr r0, _080DEF30 @ =gUnknown_03004240
+ strh r2, [r0]
+ ldr r0, _080DEF34 @ =REG_WININ
+ ldr r4, _080DEF38 @ =0x00003f3f
+ adds r1, r4, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x6
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r2, [r0]
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+_080DEF20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DEF28: .4byte gPaletteFade
+_080DEF2C: .4byte gUnknown_030042C4
+_080DEF30: .4byte gUnknown_03004240
+_080DEF34: .4byte REG_WININ
+_080DEF38: .4byte 0x00003f3f
+ thumb_func_end sub_80DEEE8
+
+ thumb_func_start sub_80DEF3C
+sub_80DEF3C: @ 80DEF3C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080DEF68 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DEF70
+ movs r2, 0x18
+ ldr r3, _080DEF6C @ =0x0000fffe
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+ b _080DEF74
+ .align 2, 0
+_080DEF68: .4byte gBattleAnimBankAttacker
+_080DEF6C: .4byte 0x0000fffe
+_080DEF70:
+ ldr r2, _080DEF90 @ =0x0000ffe8
+ movs r3, 0x2
+_080DEF74:
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r3, [r4, 0x30]
+ movs r0, 0x3C
+ strh r0, [r4, 0x2E]
+ ldr r0, _080DEF94 @ =sub_80DEF98
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DEF90: .4byte 0x0000ffe8
+_080DEF94: .4byte sub_80DEF98
+ thumb_func_end sub_80DEF3C
+
+ thumb_func_start sub_80DEF98
+sub_80DEF98: @ 80DEF98
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _080DEFAA
+ subs r0, r1, 0x1
+ b _080DF00E
+_080DEFAA:
+ ldrh r0, [r3, 0x30]
+ ldrh r4, [r3, 0x24]
+ adds r1, r0, r4
+ strh r1, [r3, 0x24]
+ adds r0, r1, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xE
+ bls _080DF010
+ ldrh r0, [r3, 0x20]
+ adds r0, r1
+ strh r0, [r3, 0x20]
+ movs r0, 0
+ strh r0, [r3, 0x24]
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r4, _080DEFFC @ =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _080DF000 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080DF00C
+ movs r0, 0x1E
+ strh r0, [r3, 0x2E]
+ ldr r0, _080DF004 @ =sub_80782D8
+ str r0, [r3, 0x1C]
+ ldr r1, _080DF008 @ =sub_80DF018
+ adds r0, r3, 0
+ bl StoreSpriteCallbackInData
+ b _080DF010
+ .align 2, 0
+_080DEFFC: .4byte 0x000003ff
+_080DF000: .4byte 0xfffffc00
+_080DF004: .4byte sub_80782D8
+_080DF008: .4byte sub_80DF018
+_080DF00C:
+ movs r0, 0x28
+_080DF00E:
+ strh r0, [r3, 0x2E]
+_080DF010:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DEF98
+
+ thumb_func_start sub_80DF018
+sub_80DF018: @ 80DF018
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ cmp r2, 0
+ bne _080DF044
+ ldr r1, _080DF040 @ =REG_BLDCNT
+ movs r4, 0xFD
+ lsls r4, 6
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x10
+ strh r0, [r1]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ strh r2, [r3, 0x30]
+ strh r2, [r3, 0x32]
+ b _080DF082
+ .align 2, 0
+_080DF040: .4byte REG_BLDCNT
+_080DF044:
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x1
+ bgt _080DF054
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ b _080DF082
+_080DF054:
+ movs r0, 0
+ strh r0, [r3, 0x30]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ ldr r2, _080DF088 @ =REG_BLDALPHA
+ movs r1, 0x10
+ subs r1, r0
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r4, 0x32
+ ldrsh r0, [r3, r4]
+ cmp r0, 0x10
+ bne _080DF082
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DF08C @ =sub_80DF090
+ str r0, [r3, 0x1C]
+_080DF082:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF088: .4byte REG_BLDALPHA
+_080DF08C: .4byte sub_80DF090
+ thumb_func_end sub_80DF018
+
+ thumb_func_start sub_80DF090
+sub_80DF090: @ 80DF090
+ push {lr}
+ ldr r1, _080DF0AC @ =REG_BLDCNT
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ ldr r1, _080DF0B0 @ =gUnknown_030042C4
+ strh r2, [r1]
+ ldr r1, _080DF0B4 @ =gUnknown_03004240
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF0AC: .4byte REG_BLDCNT
+_080DF0B0: .4byte gUnknown_030042C4
+_080DF0B4: .4byte gUnknown_03004240
+ thumb_func_end sub_80DF090
+
+ thumb_func_start sub_80DF0B8
+sub_80DF0B8: @ 80DF0B8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0xC
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldr r0, _080DF120 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DF0DC
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+_080DF0DC:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x6
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080DF12C
+ ldr r0, _080DF124 @ =0x0000050b
+ strh r0, [r4, 0x3A]
+ ldr r1, _080DF128 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r1]
+ b _080DF17E
+ .align 2, 0
+_080DF120: .4byte gBattleAnimBankAttacker
+_080DF124: .4byte 0x0000050b
+_080DF128: .4byte REG_BLDCNT
+_080DF12C:
+ cmp r0, 0x1E
+ ble _080DF17E
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x3A]
+ lsls r0, r1, 16
+ asrs r0, 24
+ lsls r0, 16
+ movs r2, 0xFF
+ ands r2, r1
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r3, r0, 16
+ cmp r3, 0x10
+ bls _080DF150
+ movs r3, 0x10
+_080DF150:
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ bge _080DF15C
+ movs r2, 0
+_080DF15C:
+ ldr r1, _080DF184 @ =REG_BLDALPHA
+ lsls r0, r3, 8
+ orrs r0, r2
+ strh r0, [r1]
+ strh r0, [r4, 0x3A]
+ cmp r3, 0x10
+ bne _080DF17E
+ cmp r2, 0
+ bne _080DF17E
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DF188 @ =sub_80DF18C
+ str r0, [r4, 0x1C]
+_080DF17E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF184: .4byte REG_BLDALPHA
+_080DF188: .4byte sub_80DF18C
+ thumb_func_end sub_80DF0B8
+
+ thumb_func_start sub_80DF18C
+sub_80DF18C: @ 80DF18C
+ push {lr}
+ ldr r1, _080DF1A0 @ =REG_BLDCNT
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF1A0: .4byte REG_BLDCNT
+ thumb_func_end sub_80DF18C
+
+ thumb_func_start sub_80DF1A4
+sub_80DF1A4: @ 80DF1A4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080DF23C @ =gTasks
+ adds r4, r0
+ movs r6, 0
+ strh r6, [r4, 0x8]
+ movs r0, 0x10
+ mov r8, r0
+ mov r2, r8
+ strh r2, [r4, 0xA]
+ ldr r5, _080DF240 @ =gBattleAnimBankAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1A]
+ ldrb r0, [r5]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ asrs r1, 1
+ adds r1, 0x8
+ strh r1, [r4, 0x1E]
+ strh r6, [r4, 0x16]
+ ldrb r0, [r5]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x12]
+ ldrb r0, [r5]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x2
+ strh r0, [r4, 0x14]
+ strh r6, [r4, 0xE]
+ mov r0, r8
+ strh r0, [r4, 0x10]
+ ldr r1, _080DF244 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ strh r6, [r4, 0x18]
+ ldr r0, _080DF248 @ =sub_80DF24C
+ str r0, [r4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF23C: .4byte gTasks
+_080DF240: .4byte gBattleAnimBankAttacker
+_080DF244: .4byte REG_BLDCNT
+_080DF248: .4byte sub_80DF24C
+ thumb_func_end sub_80DF1A4
+
+ thumb_func_start sub_80DF24C
+sub_80DF24C: @ 80DF24C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _080DF270 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _080DF266
+ b _080DF3CC
+_080DF266:
+ lsls r0, 2
+ ldr r1, _080DF274 @ =_080DF278
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DF270: .4byte gTasks
+_080DF274: .4byte _080DF278
+ .align 2, 0
+_080DF278:
+ .4byte _080DF290
+ .4byte _080DF300
+ .4byte _080DF342
+ .4byte _080DF356
+ .4byte _080DF3AC
+ .4byte _080DF3BC
+_080DF290:
+ movs r6, 0
+_080DF292:
+ movs r2, 0x1A
+ ldrsh r1, [r4, r2]
+ movs r0, 0x1C
+ ldrsh r2, [r4, r0]
+ ldrb r3, [r4, 0x14]
+ ldr r0, _080DF2F4 @ =gSpriteTemplate_83DAF80
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080DF2E6
+ ldr r1, _080DF2F8 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r1
+ strh r7, [r5, 0x2E]
+ ldr r0, _080DF2FC @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DF2C8
+ movs r1, 0x1
+_080DF2C8:
+ strh r1, [r5, 0x30]
+ movs r0, 0x2A
+ muls r0, r6
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x1E]
+ strh r0, [r5, 0x34]
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 1
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+_080DF2E6:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080DF292
+ b _080DF3B4
+ .align 2, 0
+_080DF2F4: .4byte gSpriteTemplate_83DAF80
+_080DF2F8: .4byte gSprites
+_080DF2FC: .4byte gBattleAnimBankAttacker
+_080DF300:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DF31E
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xD
+ bgt _080DF32C
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _080DF32C
+_080DF31E:
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4
+ ble _080DF32C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+_080DF32C:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ ldrh r3, [r4, 0xE]
+ ldrh r2, [r4, 0x10]
+ cmp r0, 0xE
+ bne _080DF39C
+ cmp r2, 0x4
+ bne _080DF39C
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080DF396
+_080DF342:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _080DF3CC
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080DF3B4
+_080DF356:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DF374
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080DF382
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _080DF382
+_080DF374:
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DF382
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x10]
+_080DF382:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ ldrh r3, [r4, 0xE]
+ ldrh r2, [r4, 0x10]
+ cmp r0, 0
+ bne _080DF39C
+ cmp r2, 0x10
+ bne _080DF39C
+ movs r0, 0x1
+ strh r0, [r4, 0x18]
+_080DF396:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080DF39C:
+ ldr r1, _080DF3A8 @ =REG_BLDALPHA
+ lsls r0, r2, 8
+ orrs r0, r3
+ strh r0, [r1]
+ b _080DF3CC
+ .align 2, 0
+_080DF3A8: .4byte REG_BLDALPHA
+_080DF3AC:
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080DF3CC
+_080DF3B4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DF3CC
+_080DF3BC:
+ ldr r0, _080DF3D4 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+_080DF3CC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF3D4: .4byte REG_BLDCNT
+ thumb_func_end sub_80DF24C
+
+ thumb_func_start sub_80DF3D8
+sub_80DF3D8: @ 80DF3D8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DF3EA
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x2
+ b _080DF3EE
+_080DF3EA:
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x2
+_080DF3EE:
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x32]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x41
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7E
+ bhi _080DF430
+ ldr r2, _080DF42C @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x12]
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ b _080DF444
+ .align 2, 0
+_080DF42C: .4byte gTasks
+_080DF430:
+ ldr r2, _080DF498 @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x3
+ ldrb r1, [r0, 0x12]
+ ands r1, r2
+_080DF444:
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ lsls r0, 3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ movs r1, 0x7
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldr r2, _080DF498 @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r2
+ movs r2, 0x18
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080DF492
+ ldrh r0, [r1, 0x16]
+ subs r0, 0x1
+ strh r0, [r1, 0x16]
+ adds r0, r4, 0
+ bl DestroySprite
+_080DF492:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF498: .4byte gTasks
+ thumb_func_end sub_80DF3D8
+
+ thumb_func_start sub_80DF49C
+sub_80DF49C: @ 80DF49C
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r2, _080DF4E0 @ =gObjectBankIDs
+ ldr r1, _080DF4E4 @ =gBattleAnimBankAttacker
+ ldrb r1, [r1]
+ adds r1, r2
+ ldrb r1, [r1]
+ strh r1, [r0, 0x38]
+ movs r1, 0x80
+ strh r1, [r0, 0x2E]
+ movs r1, 0xA
+ strh r1, [r0, 0x30]
+ ldr r2, _080DF4E8 @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x34]
+ ldr r1, _080DF4EC @ =sub_80DF4F4
+ str r1, [r0, 0x1C]
+ ldr r2, _080DF4F0 @ =gSprites
+ movs r3, 0x38
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080DF4E0: .4byte gObjectBankIDs
+_080DF4E4: .4byte gBattleAnimBankAttacker
+_080DF4E8: .4byte gBattleAnimArgs
+_080DF4EC: .4byte sub_80DF4F4
+_080DF4F0: .4byte gSprites
+ thumb_func_end sub_80DF49C
+
+ thumb_func_start sub_80DF4F4
+sub_80DF4F4: @ 80DF4F4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x34]
+ movs r1, 0x34
+ ldrsh r3, [r5, r1]
+ cmp r3, 0
+ beq _080DF55C
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Sin
+ ldr r4, _080DF554 @ =gSprites
+ movs r1, 0x38
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Cos
+ movs r1, 0x38
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x26]
+ ldrh r0, [r5, 0x32]
+ ldrh r2, [r5, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r5, 0x2E]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080DF590
+ ldr r2, _080DF558 @ =0xffffff00
+ adds r0, r1, r2
+ strh r0, [r5, 0x2E]
+ b _080DF590
+ .align 2, 0
+_080DF554: .4byte gSprites
+_080DF558: .4byte 0xffffff00
+_080DF55C:
+ ldr r2, _080DF598 @ =gSprites
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x24]
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x26]
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x8
+ strh r1, [r0, 0x22]
+ ldr r0, _080DF59C @ =move_anim_8074EE0
+ str r0, [r5, 0x1C]
+_080DF590:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF598: .4byte gSprites
+_080DF59C: .4byte move_anim_8074EE0
+ thumb_func_end sub_80DF4F4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/ground.s b/asm/ground.s
new file mode 100755
index 000000000..7a401e9e8
--- /dev/null
+++ b/asm/ground.s
@@ -0,0 +1,1789 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ @ ground
+
+ thumb_func_start sub_80E0F1C
+sub_80E0F1C: @ 80E0F1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080E0F74 @ =gBattleAnimBankAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ ldr r5, _080E0F78 @ =gBattleAnimBankTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080E0F7C @ =0x0000ffd8
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _080E0F80 @ =sub_80E0F84
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0F74: .4byte gBattleAnimBankAttacker
+_080E0F78: .4byte gBattleAnimBankTarget
+_080E0F7C: .4byte 0x0000ffd8
+_080E0F80: .4byte sub_80E0F84
+ thumb_func_end sub_80E0F1C
+
+ thumb_func_start sub_80E0F84
+sub_80E0F84: @ 80E0F84
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0FD8
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ movs r0, 0x14
+ strh r0, [r5, 0x2E]
+ ldr r4, _080E0FE0 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ movs r0, 0x28
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080E0FE4 @ =sub_80E0FE8
+ str r0, [r5, 0x1C]
+_080E0FD8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0FE0: .4byte gBattleAnimBankAttacker
+_080E0FE4: .4byte sub_80E0FE8
+ thumb_func_end sub_80E0F84
+
+ thumb_func_start sub_80E0FE8
+sub_80E0FE8: @ 80E0FE8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0FFC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080E0FFC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E0FE8
+
+ thumb_func_start sub_80E1004
+sub_80E1004: @ 80E1004
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080E1064 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E1024
+ ldr r1, _080E1068 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080E1024:
+ ldr r4, _080E1068 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r5, _080E106C @ =gBattleAnimBankTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r6, 0x36]
+ ldr r0, _080E1070 @ =sub_8078B34
+ str r0, [r6, 0x1C]
+ ldr r1, _080E1074 @ =move_anim_8072740
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1064: .4byte gBattleAnimBankAttacker
+_080E1068: .4byte gBattleAnimArgs
+_080E106C: .4byte gBattleAnimBankTarget
+_080E1070: .4byte sub_8078B34
+_080E1074: .4byte move_anim_8072740
+ thumb_func_end sub_80E1004
+
+ thumb_func_start sub_80E1078
+sub_80E1078: @ 80E1078
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r4, _080E10F8 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl Random
+ movs r4, 0x1F
+ adds r5, r4, 0
+ ands r5, r0
+ bl Random
+ ands r4, r0
+ adds r1, r5, 0
+ cmp r1, 0x10
+ ble _080E10C0
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080E10C0:
+ lsls r0, r4, 16
+ asrs r1, r0, 16
+ cmp r1, 0x10
+ ble _080E10D0
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E10D0:
+ ldr r0, _080E10FC @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r6, 0x2E]
+ mov r1, r8
+ adds r0, r1, r5
+ strh r0, [r6, 0x32]
+ adds r0, r7, r4
+ strh r0, [r6, 0x36]
+ ldr r0, _080E1100 @ =sub_8078B34
+ str r0, [r6, 0x1C]
+ ldr r1, _080E1104 @ =move_anim_8074EE0
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E10F8: .4byte gBattleAnimBankTarget
+_080E10FC: .4byte gBattleAnimArgs
+_080E1100: .4byte sub_8078B34
+_080E1104: .4byte move_anim_8074EE0
+ thumb_func_end sub_80E1078
+
+ thumb_func_start sub_80E1108
+sub_80E1108: @ 80E1108
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x1
+ ldr r3, _080E1168 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080E116C @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r6, _080E1170 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080E117C
+ ldr r4, _080E1174 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r6, 0x2]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r3, [r6, 0x4]
+ adds r0, r3
+ strh r0, [r5, 0x22]
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ ble _080E1162
+ movs r1, 0x1
+_080E1162:
+ strh r1, [r5, 0x2E]
+ ldr r0, _080E1178 @ =sub_80E1198
+ b _080E118A
+ .align 2, 0
+_080E1168: .4byte 0x000003ff
+_080E116C: .4byte 0xfffffc00
+_080E1170: .4byte gBattleAnimArgs
+_080E1174: .4byte gBattleAnimBankAttacker
+_080E1178: .4byte sub_80E1198
+_080E117C:
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5, 0x20]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r5, 0x22]
+ negs r0, r0
+ strh r0, [r5, 0x26]
+ ldr r0, _080E1194 @ =sub_80E11D4
+_080E118A:
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1194: .4byte sub_80E11D4
+ thumb_func_end sub_80E1108
+
+ thumb_func_start sub_80E1198
+sub_80E1198: @ 80E1198
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E11B6
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+_080E11B6:
+ ldrh r0, [r2, 0x22]
+ subs r0, 0x4
+ strh r0, [r2, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x4
+ negs r1, r1
+ cmp r0, r1
+ bge _080E11CE
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080E11CE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E1198
+
+ thumb_func_start sub_80E11D4
+sub_80E11D4: @ 80E11D4
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ cmp r1, 0
+ beq _080E11E6
+ cmp r1, 0x1
+ beq _080E11FC
+ b _080E123E
+_080E11E6:
+ ldrh r0, [r3, 0x26]
+ adds r0, 0x4
+ strh r0, [r3, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080E123E
+ strh r1, [r3, 0x26]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _080E123E
+_080E11FC:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080E123E
+ movs r0, 0
+ strh r0, [r3, 0x30]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r2, [r1]
+ 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, 0xA
+ bne _080E123E
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080E123E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E11D4
+
+ thumb_func_start sub_80E1244
+sub_80E1244: @ 80E1244
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E1264 @ =gTasks
+ adds r1, r0, r1
+ ldr r0, _080E1268 @ =gBattleAnimArgs
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _080E1270
+ ldr r0, _080E126C @ =sub_80E1284
+ b _080E1272
+ .align 2, 0
+_080E1264: .4byte gTasks
+_080E1268: .4byte gBattleAnimArgs
+_080E126C: .4byte sub_80E1284
+_080E1270:
+ ldr r0, _080E1280 @ =sub_80E143C
+_080E1272:
+ str r0, [r1]
+ ldr r1, [r1]
+ adds r0, r2, 0
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1280: .4byte sub_80E143C
+ thumb_func_end sub_80E1244
+
+ thumb_func_start sub_80E1284
+sub_80E1284: @ 80E1284
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E12A8 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080E129E
+ b _080E1432
+_080E129E:
+ lsls r0, 2
+ ldr r1, _080E12AC @ =_080E12B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E12A8: .4byte gTasks
+_080E12AC: .4byte _080E12B0
+ .align 2, 0
+_080E12B0:
+ .4byte _080E12C4
+ .4byte _080E134C
+ .4byte _080E135C
+ .4byte _080E1400
+ .4byte _080E1414
+_080E12C4:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldr r0, _080E12EC @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1E]
+ cmp r0, 0x1
+ bne _080E12F8
+ ldr r0, _080E12F0 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x20]
+ ldr r0, _080E12F4 @ =gUnknown_030041B4
+ b _080E1300
+ .align 2, 0
+_080E12EC: .4byte gBattleAnimBankAttacker
+_080E12F0: .4byte gUnknown_030042C0
+_080E12F4: .4byte gUnknown_030041B4
+_080E12F8:
+ ldr r0, _080E133C @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r4, 0x20]
+ ldr r0, _080E1340 @ =gUnknown_03004280
+_080E1300:
+ ldrh r0, [r0]
+ strh r0, [r4, 0x22]
+ ldr r0, _080E1344 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r4, 0x24]
+ adds r0, 0x20
+ strh r0, [r4, 0x26]
+ cmp r1, 0
+ bge _080E1322
+ movs r0, 0
+ strh r0, [r4, 0x24]
+_080E1322:
+ ldr r2, _080E1348 @ =gSprites
+ movs r3, 0x1C
+ ldrsh r1, [r4, r3]
+ 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 _080E1406
+ .align 2, 0
+_080E133C: .4byte gUnknown_03004288
+_080E1340: .4byte gUnknown_03004280
+_080E1344: .4byte gBattleAnimBankAttacker
+_080E1348: .4byte gSprites
+_080E134C:
+ ldrb r0, [r4, 0x1E]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ movs r3, 0x26
+ ldrsh r2, [r4, r3]
+ bl sub_80E1668
+ b _080E1406
+_080E135C:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x6
+ movs r1, 0x7F
+ ands r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080E137E
+ movs r0, 0
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+_080E137E:
+ ldr r1, _080E13A0 @ =gSineTable
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ ldrh r3, [r4, 0xE]
+ adds r2, r0, r3
+ strh r2, [r4, 0x12]
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080E13A8
+ ldr r1, _080E13A4 @ =gUnknown_030041B4
+ b _080E13AA
+ .align 2, 0
+_080E13A0: .4byte gSineTable
+_080E13A4: .4byte gUnknown_030041B4
+_080E13A8:
+ ldr r1, _080E13CC @ =gUnknown_03004280
+_080E13AA:
+ ldrh r0, [r4, 0x22]
+ subs r0, r2
+ strh r0, [r1]
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3F
+ ble _080E1432
+ ldrh r0, [r4, 0x24]
+ movs r1, 0x78
+ subs r2, r1, r0
+ strh r2, [r4, 0x12]
+ movs r3, 0x1E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080E13D4
+ ldr r1, _080E13D0 @ =gUnknown_030041B4
+ b _080E13D6
+ .align 2, 0
+_080E13CC: .4byte gUnknown_03004280
+_080E13D0: .4byte gUnknown_030041B4
+_080E13D4:
+ ldr r1, _080E13F8 @ =gUnknown_03004280
+_080E13D6:
+ ldrh r0, [r4, 0x22]
+ subs r0, r2
+ strh r0, [r1]
+ ldr r2, _080E13FC @ =gSprites
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r2, [r1, 0x20]
+ movs r3, 0x88
+ lsls r3, 1
+ adds r0, r3, 0
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ b _080E1406
+ .align 2, 0
+_080E13F8: .4byte gUnknown_03004280
+_080E13FC: .4byte gSprites
+_080E1400:
+ ldr r1, _080E1410 @ =gUnknown_03004DC0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080E1406:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E1432
+ .align 2, 0
+_080E1410: .4byte gUnknown_03004DC0
+_080E1414:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ ldr r2, _080E1438 @ =gSprites
+ movs r0, 0x1C
+ ldrsh r1, [r4, 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]
+_080E1432:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1438: .4byte gSprites
+ thumb_func_end sub_80E1284
+
+ thumb_func_start sub_80E143C
+sub_80E143C: @ 80E143C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E147C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r3]
+ movs r4, 0
+ strh r4, [r1, 0x24]
+ strh r4, [r1, 0x26]
+ ldr r0, _080E1480 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E1488
+ ldr r0, _080E1484 @ =gUnknown_030041B4
+ b _080E148A
+ .align 2, 0
+_080E147C: .4byte gSprites
+_080E1480: .4byte gBattleAnimBankAttacker
+_080E1484: .4byte gUnknown_030041B4
+_080E1488:
+ ldr r0, _080E1498 @ =gUnknown_03004280
+_080E148A:
+ strh r4, [r0]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1498: .4byte gUnknown_03004280
+ thumb_func_end sub_80E143C
+
+ thumb_func_start sub_80E149C
+sub_80E149C: @ 80E149C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E14BC @ =gTasks
+ adds r1, r0, r1
+ ldr r0, _080E14C0 @ =gBattleAnimArgs
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _080E14C8
+ ldr r0, _080E14C4 @ =sub_80E14DC
+ b _080E14CA
+ .align 2, 0
+_080E14BC: .4byte gTasks
+_080E14C0: .4byte gBattleAnimArgs
+_080E14C4: .4byte sub_80E14DC
+_080E14C8:
+ ldr r0, _080E14D8 @ =sub_80E1560
+_080E14CA:
+ str r0, [r1]
+ ldr r1, [r1]
+ adds r0, r2, 0
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E14D8: .4byte sub_80E1560
+ thumb_func_end sub_80E149C
+
+ thumb_func_start sub_80E14DC
+sub_80E14DC: @ 80E14DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E14FC @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _080E1500
+ cmp r5, 0x1
+ beq _080E1554
+ b _080E155A
+ .align 2, 0
+_080E14FC: .4byte gTasks
+_080E1500:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldr r3, _080E1550 @ =gSprites
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r5, [r0, 0x24]
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r2, [r1, 0x22]
+ movs r0, 0xA0
+ subs r0, r2
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E155A
+ .align 2, 0
+_080E1550: .4byte gSprites
+_080E1554:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080E155A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E14DC
+
+ thumb_func_start sub_80E1560
+sub_80E1560: @ 80E1560
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E1584 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bhi _080E1662
+ lsls r0, 2
+ ldr r1, _080E1588 @ =_080E158C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E1584: .4byte gTasks
+_080E1588: .4byte _080E158C
+ .align 2, 0
+_080E158C:
+ .4byte _080E15A0
+ .4byte _080E15F4
+ .4byte _080E1602
+ .4byte _080E161C
+ .4byte _080E165C
+_080E15A0:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldr r0, _080E15C4 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1E]
+ cmp r0, 0x1
+ bne _080E15CC
+ ldr r0, _080E15C8 @ =gUnknown_030042C0
+ b _080E15CE
+ .align 2, 0
+_080E15C4: .4byte gBattleAnimBankAttacker
+_080E15C8: .4byte gUnknown_030042C0
+_080E15CC:
+ ldr r0, _080E15EC @ =gUnknown_03004288
+_080E15CE:
+ ldrh r0, [r0]
+ strh r0, [r4, 0x20]
+ ldr r0, _080E15F0 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r4, 0x24]
+ adds r0, 0x20
+ strh r0, [r4, 0x26]
+ b _080E164A
+ .align 2, 0
+_080E15EC: .4byte gUnknown_03004288
+_080E15F0: .4byte gBattleAnimBankAttacker
+_080E15F4:
+ ldrb r0, [r4, 0x1E]
+ movs r1, 0x26
+ ldrsh r2, [r4, r1]
+ movs r1, 0
+ bl sub_80E1668
+ b _080E164A
+_080E1602:
+ ldr r2, _080E1618 @ =gSprites
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x60
+ strh r1, [r0, 0x26]
+ b _080E164A
+ .align 2, 0
+_080E1618: .4byte gSprites
+_080E161C:
+ ldr r2, _080E1654 @ =gSprites
+ movs r0, 0x1C
+ 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]
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x26
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E1662
+ ldr r1, _080E1658 @ =gUnknown_03004DC0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080E164A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E1662
+ .align 2, 0
+_080E1654: .4byte gSprites
+_080E1658: .4byte gUnknown_03004DC0
+_080E165C:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080E1662:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E1560
+
+ thumb_func_start sub_80E1668
+sub_80E1668: @ 80E1668
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r4, r2, 16
+ cmp r0, 0x1
+ bne _080E168C
+ ldr r0, _080E1684 @ =gUnknown_030042C0
+ ldrh r3, [r0]
+ ldr r0, _080E1688 @ =REG_BG1HOFS
+ b _080E1692
+ .align 2, 0
+_080E1684: .4byte gUnknown_030042C0
+_080E1688: .4byte REG_BG1HOFS
+_080E168C:
+ ldr r0, _080E1718 @ =gUnknown_03004288
+ ldrh r3, [r0]
+ ldr r0, _080E171C @ =REG_BG2HOFS
+_080E1692:
+ str r0, [sp]
+ lsls r0, r1, 16
+ cmp r0, 0
+ bge _080E169C
+ movs r1, 0
+_080E169C:
+ lsls r2, r1, 16
+ lsls r0, r4, 16
+ asrs r4, r0, 16
+ cmp r2, r0
+ bge _080E16C8
+ ldr r5, _080E1720 @ =gUnknown_03004DE0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_080E16AE:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r0, r1, r5
+ strh r3, [r0]
+ adds r1, r6
+ strh r3, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r1, r2, 16
+ lsls r2, r1, 16
+ asrs r0, r2, 16
+ cmp r0, r4
+ blt _080E16AE
+_080E16C8:
+ lsls r1, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080E16F6
+ ldr r4, _080E1720 @ =gUnknown_03004DE0
+ lsls r0, r3, 16
+ asrs r0, 16
+ adds r3, r0, 0
+ adds r3, 0xF0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r5, r4, r0
+_080E16E0:
+ asrs r2, r1, 16
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ strh r3, [r0]
+ adds r1, r5
+ strh r3, [r1]
+ adds r2, 0x1
+ lsls r1, r2, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _080E16E0
+_080E16F6:
+ ldr r0, _080E1724 @ =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
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1718: .4byte gUnknown_03004288
+_080E171C: .4byte REG_BG2HOFS
+_080E1720: .4byte gUnknown_03004DE0
+_080E1724: .4byte 0xa2600001
+ thumb_func_end sub_80E1668
+
+ thumb_func_start sub_80E1728
+sub_80E1728: @ 80E1728
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _080E173C @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r7, r0, 0
+ cmp r1, 0
+ bne _080E1744
+ ldr r0, _080E1740 @ =gBattleAnimBankAttacker
+ b _080E1746
+ .align 2, 0
+_080E173C: .4byte gBattleAnimArgs
+_080E1740: .4byte gBattleAnimBankAttacker
+_080E1744:
+ ldr r0, _080E17A8 @ =gBattleAnimBankTarget
+_080E1746:
+ ldrb r4, [r0]
+ movs r6, 0x18
+ adds r1, r7, 0
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _080E1762
+ negs r0, r6
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080E1762:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1E
+ strh r0, [r5, 0x22]
+ ldrh r1, [r7, 0xA]
+ strh r1, [r5, 0x2E]
+ ldrh r1, [r7, 0x4]
+ ldrh r2, [r5, 0x20]
+ adds r1, r2
+ strh r1, [r5, 0x32]
+ ldrh r1, [r7, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r7, 0x8]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080E17AC @ =sub_80E17B0
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E17A8: .4byte gBattleAnimBankTarget
+_080E17AC: .4byte sub_80E17B0
+ thumb_func_end sub_80E1728
+
+ thumb_func_start sub_80E17B0
+sub_80E17B0: @ 80E17B0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E17C4
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080E17C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E17B0
+
+ thumb_func_start sub_80E17CC
+sub_80E17CC: @ 80E17CC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080E17E0 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E17E8
+ ldr r0, _080E17E4 @ =gBattleAnimBankAttacker
+ b _080E17EA
+ .align 2, 0
+_080E17E0: .4byte gBattleAnimArgs
+_080E17E4: .4byte gBattleAnimBankAttacker
+_080E17E8:
+ ldr r0, _080E1848 @ =gBattleAnimBankTarget
+_080E17EA:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E184C @ =0x0000fff0
+ adds r0, r2
+ ldr r4, _080E1850 @ =gBattleAnimArgs
+ movs r3, 0x2
+ ldrsh r1, [r4, r3]
+ lsls r1, 5
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r6, 0x22]
+ ldrh r2, [r6, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ lsls r0, 3
+ adds r1, r0
+ ldr r3, _080E1854 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080E1858 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r6, 0x4]
+ ldr r1, _080E185C @ =move_anim_8072740
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x2E]
+ ldr r0, _080E1860 @ =sub_80782D8
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1848: .4byte gBattleAnimBankTarget
+_080E184C: .4byte 0x0000fff0
+_080E1850: .4byte gBattleAnimArgs
+_080E1854: .4byte 0x000003ff
+_080E1858: .4byte 0xfffffc00
+_080E185C: .4byte move_anim_8072740
+_080E1860: .4byte sub_80782D8
+ thumb_func_end sub_80E17CC
+
+ thumb_func_start sub_80E1864
+sub_80E1864: @ 80E1864
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080E1888 @ =gTasks
+ adds r4, r0, r1
+ ldr r0, _080E188C @ =gBattleAnimArgs
+ ldrh r2, [r0, 0x2]
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080E1890
+ adds r0, r2, 0x3
+ b _080E189C
+ .align 2, 0
+_080E1888: .4byte gTasks
+_080E188C: .4byte gBattleAnimArgs
+_080E1890:
+ ldr r0, _080E18BC @ =gMovePowerMoveAnim
+ ldrh r0, [r0]
+ movs r1, 0xA
+ bl __udivsi3
+ adds r0, 0x3
+_080E189C:
+ strh r0, [r4, 0x26]
+ strh r0, [r4, 0x24]
+ adds r1, r6, 0
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0xE]
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x4
+ beq _080E18C8
+ cmp r0, 0x5
+ bne _080E1908
+ ldr r0, _080E18C0 @ =gUnknown_030041B0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x22]
+ ldr r0, _080E18C4 @ =sub_80E1934
+ b _080E1926
+ .align 2, 0
+_080E18BC: .4byte gMovePowerMoveAnim
+_080E18C0: .4byte gUnknown_030041B0
+_080E18C4: .4byte sub_80E1934
+_080E18C8:
+ movs r0, 0
+ strh r0, [r4, 0x22]
+ movs r5, 0
+_080E18CE:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl IsAnimBankSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E18F8
+ movs r3, 0x22
+ ldrsh r0, [r4, r3]
+ adds r0, 0x9
+ lsls r0, 1
+ adds r1, r4, 0
+ adds r1, 0x8
+ adds r1, r0
+ ldr r0, _080E1904 @ =gObjectBankIDs
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+_080E18F8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080E18CE
+ b _080E1924
+ .align 2, 0
+_080E1904: .4byte gObjectBankIDs
+_080E1908:
+ ldrb r0, [r6]
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1A]
+ cmp r0, 0xFF
+ bne _080E1920
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ b _080E1928
+_080E1920:
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+_080E1924:
+ ldr r0, _080E1930 @ =sub_80E1A2C
+_080E1926:
+ str r0, [r4]
+_080E1928:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1930: .4byte sub_80E1A2C
+ thumb_func_end sub_80E1864
+
+ thumb_func_start sub_80E1934
+sub_80E1934: @ 80E1934
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E1958 @ =gTasks
+ adds r3, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ cmp r1, 0x1
+ beq _080E19B8
+ cmp r1, 0x1
+ bgt _080E195C
+ cmp r1, 0
+ beq _080E1962
+ b _080E1A24
+ .align 2, 0
+_080E1958: .4byte gTasks
+_080E195C:
+ cmp r1, 0x2
+ beq _080E1A18
+ b _080E1A24
+_080E1962:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E1A24
+ strh r1, [r3, 0xA]
+ ldrh r1, [r3, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080E198C
+ ldr r1, _080E1988 @ =gUnknown_030041B0
+ ldrh r0, [r3, 0x26]
+ ldrh r2, [r3, 0x22]
+ adds r0, r2
+ strh r0, [r1]
+ b _080E1996
+ .align 2, 0
+_080E1988: .4byte gUnknown_030041B0
+_080E198C:
+ ldr r0, _080E19B4 @ =gUnknown_030041B0
+ ldrh r1, [r3, 0x22]
+ ldrh r2, [r3, 0x26]
+ subs r1, r2
+ strh r1, [r0]
+_080E1996:
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ bne _080E1A24
+ movs r0, 0
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x24]
+ subs r0, 0x1
+ strh r0, [r3, 0x24]
+ b _080E1A0C
+ .align 2, 0
+_080E19B4: .4byte gUnknown_030041B0
+_080E19B8:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E1A24
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ ands r1, r0
+ cmp r1, 0
+ bne _080E19E4
+ ldr r1, _080E19E0 @ =gUnknown_030041B0
+ ldrh r0, [r3, 0x24]
+ ldrh r2, [r3, 0x22]
+ adds r0, r2
+ strh r0, [r1]
+ b _080E19EE
+ .align 2, 0
+_080E19E0: .4byte gUnknown_030041B0
+_080E19E4:
+ ldr r0, _080E1A14 @ =gUnknown_030041B0
+ ldrh r1, [r3, 0x22]
+ ldrh r2, [r3, 0x24]
+ subs r1, r2
+ strh r1, [r0]
+_080E19EE:
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080E1A24
+ movs r0, 0
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x24]
+ subs r0, 0x1
+ strh r0, [r3, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080E1A24
+_080E1A0C:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080E1A24
+ .align 2, 0
+_080E1A14: .4byte gUnknown_030041B0
+_080E1A18:
+ ldr r1, _080E1A28 @ =gUnknown_030041B0
+ ldrh r0, [r3, 0x22]
+ strh r0, [r1]
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080E1A24:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1A28: .4byte gUnknown_030041B0
+ thumb_func_end sub_80E1934
+
+ thumb_func_start sub_80E1A2C
+sub_80E1A2C: @ 80E1A2C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080E1A50 @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080E1A8C
+ cmp r5, 0x1
+ bgt _080E1A54
+ cmp r5, 0
+ beq _080E1A5A
+ b _080E1B06
+ .align 2, 0
+_080E1A50: .4byte gTasks
+_080E1A54:
+ cmp r5, 0x2
+ beq _080E1AC8
+ b _080E1B06
+_080E1A5A:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E1B06
+ strh r5, [r4, 0xA]
+ adds r0, r4, 0
+ bl sub_80E1B10
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080E1B06
+ strh r5, [r4, 0xC]
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E1AC0
+_080E1A8C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E1B06
+ strh r5, [r4, 0xA]
+ adds r0, r4, 0
+ bl sub_80E1B10
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080E1B06
+ strh r5, [r4, 0xC]
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x1
+ strh r0, [r4, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080E1B06
+_080E1AC0:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E1B06
+_080E1AC8:
+ movs r2, 0
+ movs r7, 0x22
+ ldrsh r0, [r4, r7]
+ cmp r2, r0
+ bge _080E1B00
+ ldr r0, _080E1B0C @ =gSprites
+ mov r12, r0
+ adds r5, r4, 0
+ adds r5, 0x8
+ movs r6, 0
+_080E1ADC:
+ adds r0, r2, 0
+ adds r0, 0x9
+ lsls r0, 1
+ adds r0, r5, r0
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ strh r6, [r0, 0x24]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ blt _080E1ADC
+_080E1B00:
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+_080E1B06:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1B0C: .4byte gSprites
+ thumb_func_end sub_80E1A2C
+
+ thumb_func_start sub_80E1B10
+sub_80E1B10: @ 80E1B10
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0xC]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080E1B38
+ movs r0, 0x24
+ ldrsh r1, [r3, r0]
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ ldrh r2, [r3, 0x24]
+ adds r0, r4, 0
+ ands r0, r2
+ adds r1, r0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ b _080E1B48
+_080E1B38:
+ movs r1, 0x24
+ ldrsh r0, [r3, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ negs r0, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E1B48:
+ movs r2, 0
+ movs r7, 0x22
+ ldrsh r0, [r3, r7]
+ cmp r2, r0
+ bge _080E1B7C
+ ldr r6, _080E1B84 @ =gSprites
+ adds r5, r3, 0
+ adds r5, 0x8
+_080E1B58:
+ adds r0, r2, 0
+ adds r0, 0x9
+ lsls r0, 1
+ adds r0, r5, r0
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r4, [r0, 0x24]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0x22
+ ldrsh r0, [r3, r1]
+ cmp r2, r0
+ blt _080E1B58
+_080E1B7C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1B84: .4byte gSprites
+ thumb_func_end sub_80E1B10
+
+ thumb_func_start sub_80E1B88
+sub_80E1B88: @ 80E1B88
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, _080E1BA8 @ =gBattleAnimArgs
+ movs r2, 0
+ ldr r0, _080E1BAC @ =gMovePowerMoveAnim
+ ldrh r0, [r0]
+ cmp r0, 0x63
+ bls _080E1B9C
+ movs r2, 0x1
+_080E1B9C:
+ strh r2, [r3, 0x1E]
+ adds r0, r1, 0
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1BA8: .4byte gBattleAnimArgs
+_080E1BAC: .4byte gMovePowerMoveAnim
+ thumb_func_end sub_80E1B88
+
+ thumb_func_start sub_80E1BB0
+sub_80E1BB0: @ 80E1BB0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _080E1BC8 @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ adds r6, r2, 0
+ cmp r0, 0
+ beq _080E1BD0
+ ldr r0, _080E1BCC @ =gBattleAnimBankTarget
+ b _080E1BD2
+ .align 2, 0
+_080E1BC8: .4byte gBattleAnimArgs
+_080E1BCC: .4byte gBattleAnimBankTarget
+_080E1BD0:
+ ldr r0, _080E1C40 @ =gBattleAnimBankAttacker
+_080E1BD2:
+ ldrb r0, [r0]
+ adds r5, r0, 0
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ ble _080E1BE2
+ movs r0, 0x2
+ eors r5, r0
+_080E1BE2:
+ ldr r0, _080E1C44 @ =sub_80E1C58
+ ldrb r1, [r6, 0x2]
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080E1C48 @ =gTasks
+ adds r4, r0
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x20
+ subs r1, r0
+ ldr r2, _080E1C4C @ =0x000001ff
+ adds r0, r2, 0
+ ands r1, r0
+ strh r1, [r4, 0xA]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x40
+ subs r1, r0
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r4, 0xC]
+ ldr r2, _080E1C50 @ =gUnknown_030041B0
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ ldr r0, _080E1C54 @ =gUnknown_030041B8
+ strh r1, [r0]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0xE]
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1C40: .4byte gBattleAnimBankAttacker
+_080E1C44: .4byte sub_80E1C58
+_080E1C48: .4byte gTasks
+_080E1C4C: .4byte 0x000001ff
+_080E1C50: .4byte gUnknown_030041B0
+_080E1C54: .4byte gUnknown_030041B8
+ thumb_func_end sub_80E1BB0
+
+ thumb_func_start sub_80E1C58
+sub_80E1C58: @ 80E1C58
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080E1C88 @ =gTasks
+ adds r2, r0, r1
+ ldr r0, _080E1C8C @ =gBattleAnimArgs
+ movs r4, 0xE
+ ldrsh r1, [r0, r4]
+ movs r4, 0xE
+ ldrsh r0, [r2, r4]
+ cmp r1, r0
+ bne _080E1C98
+ ldr r0, _080E1C90 @ =gUnknown_030041B0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E1C94 @ =gUnknown_030041B8
+ strh r1, [r0]
+ adds r0, r3, 0
+ bl DestroyTask
+ b _080E1CA4
+ .align 2, 0
+_080E1C88: .4byte gTasks
+_080E1C8C: .4byte gBattleAnimArgs
+_080E1C90: .4byte gUnknown_030041B0
+_080E1C94: .4byte gUnknown_030041B8
+_080E1C98:
+ ldr r1, _080E1CAC @ =gUnknown_030041B0
+ ldrh r0, [r2, 0xA]
+ strh r0, [r1]
+ ldr r1, _080E1CB0 @ =gUnknown_030041B8
+ ldrh r0, [r2, 0xC]
+ strh r0, [r1]
+_080E1CA4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1CAC: .4byte gUnknown_030041B0
+_080E1CB0: .4byte gUnknown_030041B8
+ thumb_func_end sub_80E1C58
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/heated_rock.s b/asm/heated_rock.s
new file mode 100755
index 000000000..3adb3a99d
--- /dev/null
+++ b/asm/heated_rock.s
@@ -0,0 +1,10 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ @ heated_rock
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/ice.s b/asm/ice.s
new file mode 100755
index 000000000..ec0b83d4c
--- /dev/null
+++ b/asm/ice.s
@@ -0,0 +1,3221 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ @ ice
+
+ thumb_func_start sub_80D76C4
+sub_80D76C4: @ 80D76C4
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D76F8
+ ldr r3, _080D7700 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D76F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7700: .4byte gTasks
+ thumb_func_end sub_80D76C4
+
+ thumb_func_start sub_80D7704
+sub_80D7704: @ 80D7704
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x7
+ ldr r3, _080D780C @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D7810 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r4, _080D7814 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, _080D7818 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ str r3, [sp]
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080D781C @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1]
+ ldr r3, [sp]
+ adds r0, r3
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x4]
+ mov r4, r9
+ adds r0, r4, r0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1, 0x2]
+ adds r0, r6
+ strh r0, [r5, 0x34]
+ ldrh r0, [r1, 0x6]
+ mov r7, r8
+ adds r0, r7, r0
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078314
+ adds r4, 0x20
+ movs r0, 0x98
+ lsls r0, 1
+ mov r12, r0
+ ldr r3, [sp]
+ cmp r4, r12
+ bhi _080D77DE
+ adds r0, r7, 0
+ adds r0, 0x20
+ ldrh r1, [r5, 0x30]
+ ldrh r2, [r5, 0x32]
+ cmp r0, 0xE0
+ bhi _080D77DE
+ adds r4, r1, 0
+ mov r10, r12
+_080D77AA:
+ mov r7, r9
+ lsls r1, r7, 16
+ asrs r1, 16
+ adds r1, r4
+ lsls r1, 16
+ mov r7, r8
+ lsls r0, r7, 16
+ asrs r0, 16
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsrs r0, r1, 16
+ mov r9, r0
+ movs r7, 0x80
+ lsls r7, 14
+ adds r1, r7
+ lsrs r1, 16
+ cmp r1, r10
+ bhi _080D77DE
+ mov r1, r8
+ lsls r0, r1, 16
+ adds r0, r7
+ lsrs r0, 16
+ cmp r0, 0xE0
+ bls _080D77AA
+_080D77DE:
+ ldrh r0, [r5, 0x30]
+ negs r7, r0
+ strh r7, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ negs r4, r0
+ strh r4, [r5, 0x32]
+ lsls r0, r3, 16
+ movs r1, 0x80
+ lsls r1, 14
+ adds r0, r1
+ lsrs r0, 16
+ movs r2, 0x98
+ lsls r2, 1
+ mov r12, r2
+ ldr r1, _080D781C @ =gBattleAnimArgs
+ mov r10, r1
+ cmp r0, r12
+ bhi _080D784A
+ lsls r1, r6, 16
+ movs r2, 0x80
+ lsls r2, 14
+ adds r0, r1, r2
+ b _080D7842
+ .align 2, 0
+_080D780C: .4byte 0x000003ff
+_080D7810: .4byte 0xfffffc00
+_080D7814: .4byte gBattleAnimBankTarget
+_080D7818: .4byte gBattleAnimBankAttacker
+_080D781C: .4byte gBattleAnimArgs
+_080D7820:
+ lsls r1, r3, 16
+ asrs r1, 16
+ adds r1, r7
+ lsls r1, 16
+ asrs r0, r2, 16
+ adds r0, r4
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsrs r3, r1, 16
+ movs r0, 0x80
+ lsls r0, 14
+ adds r1, r0
+ lsrs r1, 16
+ cmp r1, r12
+ bhi _080D784A
+ lsls r1, r6, 16
+ adds r0, r1, r0
+_080D7842:
+ lsrs r0, 16
+ adds r2, r1, 0
+ cmp r0, 0xE0
+ bls _080D7820
+_080D784A:
+ strh r3, [r5, 0x20]
+ strh r6, [r5, 0x22]
+ mov r1, r10
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ strh r3, [r5, 0x30]
+ mov r2, r9
+ strh r2, [r5, 0x32]
+ strh r6, [r5, 0x34]
+ mov r3, r8
+ strh r3, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078314
+ mov r7, r10
+ ldrh r0, [r7, 0xA]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r7, 0xC]
+ strh r0, [r5, 0x36]
+ ldr r0, _080D7884 @ =sub_80D7888
+ str r0, [r5, 0x1C]
+ 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
+_080D7884: .4byte sub_80D7888
+ thumb_func_end sub_80D7704
+
+ thumb_func_start sub_80D7888
+sub_80D7888: @ 80D7888
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D78E0
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x3A]
+ adds r0, r2
+ strh r0, [r4, 0x3A]
+ strh r1, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D78E6
+_080D78E0:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D78E6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7888
+
+ thumb_func_start sub_80D78EC
+sub_80D78EC: @ 80D78EC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D7920 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ movs r0, 0x3C
+ strh r0, [r4, 0x30]
+ movs r0, 0x9
+ strh r0, [r4, 0x32]
+ movs r0, 0x1E
+ strh r0, [r4, 0x34]
+ movs r0, 0xFE
+ lsls r0, 8
+ strh r0, [r4, 0x36]
+ ldr r1, _080D7924 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ ldr r1, _080D7928 @ =sub_8078174
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7920: .4byte gBattleAnimArgs
+_080D7924: .4byte move_anim_8072740
+_080D7928: .4byte sub_8078174
+ thumb_func_end sub_80D78EC
+
+ thumb_func_start sub_80D792C
+sub_80D792C: @ 80D792C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D7960 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldr r0, _080D7964 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D796C
+ ldr r0, _080D7968 @ =gBattleAnimArgs
+ ldrh r1, [r4, 0x32]
+ ldrh r0, [r0, 0x4]
+ subs r1, r0
+ strh r1, [r4, 0x32]
+ b _080D7976
+ .align 2, 0
+_080D7960: .4byte gBattleAnimBankTarget
+_080D7964: .4byte gBattleAnimBankAttacker
+_080D7968: .4byte gBattleAnimArgs
+_080D796C:
+ ldr r0, _080D79A4 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+_080D7976:
+ ldr r0, _080D79A8 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r1, _080D79A4 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r2, [r1, 0x6]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ ldr r1, _080D79AC @ =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ ldr r0, _080D79B0 @ =sub_8078B34
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D79A4: .4byte gBattleAnimArgs
+_080D79A8: .4byte gBattleAnimBankTarget
+_080D79AC: .4byte move_anim_8072740
+_080D79B0: .4byte sub_8078B34
+ thumb_func_end sub_80D792C
+
+ thumb_func_start sub_80D79B4
+sub_80D79B4: @ 80D79B4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D79CC @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D79D0
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ b _080D7A06
+ .align 2, 0
+_080D79CC: .4byte gBattleAnimArgs
+_080D79D0:
+ ldr r0, _080D7A18 @ =gBattleAnimBankTarget
+ 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, _080D7A1C @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D79F6
+ ldrh r0, [r5]
+ negs r0, r0
+ strh r0, [r5]
+_080D79F6:
+ 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]
+_080D7A06:
+ ldr r1, _080D7A20 @ =sub_80D7A28
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ ldr r0, _080D7A24 @ =sub_80785E4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7A18: .4byte gBattleAnimBankTarget
+_080D7A1C: .4byte gBattleAnimBankAttacker
+_080D7A20: .4byte sub_80D7A28
+_080D7A24: .4byte sub_80785E4
+ thumb_func_end sub_80D79B4
+
+ thumb_func_start sub_80D7A28
+sub_80D7A28: @ 80D7A28
+ push {lr}
+ adds r3, r0, 0
+ 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, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080D7A5E
+ adds r0, r3, 0
+ bl move_anim_8074EE0
+_080D7A5E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7A28
+
+ thumb_func_start sub_80D7A64
+sub_80D7A64: @ 80D7A64
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r6, _080D7AAC @ =gBattleAnimArgs
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D7AB4
+ ldr r4, _080D7AB0 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ b _080D7AC6
+ .align 2, 0
+_080D7AAC: .4byte gBattleAnimArgs
+_080D7AB0: .4byte gBattleAnimBankTarget
+_080D7AB4:
+ ldr r0, _080D7AE0 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+_080D7AC6:
+ ldr r0, _080D7AE4 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7AEC
+ ldr r0, _080D7AE8 @ =gBattleAnimArgs
+ ldrh r1, [r5, 0x32]
+ ldrh r0, [r0, 0x4]
+ subs r1, r0
+ strh r1, [r5, 0x32]
+ b _080D7AF6
+ .align 2, 0
+_080D7AE0: .4byte gBattleAnimBankTarget
+_080D7AE4: .4byte gBattleAnimBankAttacker
+_080D7AE8: .4byte gBattleAnimArgs
+_080D7AEC:
+ ldr r0, _080D7B94 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+_080D7AF6:
+ adds r7, r5, 0
+ adds r7, 0x2E
+ adds r2, r7, 0
+ mov r1, sp
+ movs r4, 0x7
+_080D7B00:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D7B00
+ adds r0, r5, 0
+ bl sub_8078D60
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ eors r0, r1
+ strh r0, [r5, 0x32]
+_080D7B22:
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_8078CE8
+ movs r0, 0x20
+ ldrsh r1, [r5, r0]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ adds r1, 0x10
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r1, r0
+ bhi _080D7B56
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080D7B56
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D7B22
+_080D7B56:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ ldr r6, _080D7B98 @ =sub_8078D8C
+ ldr r1, _080D7B9C @ =sub_80D7BA0
+ mov r3, sp
+ adds r2, r7, 0
+ movs r4, 0x7
+_080D7B76:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D7B76
+ str r6, [r5, 0x1C]
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7B94: .4byte gBattleAnimArgs
+_080D7B98: .4byte sub_8078D8C
+_080D7B9C: .4byte sub_80D7BA0
+ thumb_func_end sub_80D7A64
+
+ thumb_func_start sub_80D7BA0
+sub_80D7BA0: @ 80D7BA0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x24]
+ movs r0, 0x80
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D7BFC @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ ldr r1, _080D7C00 @ =0x0000ffec
+ cmp r0, 0
+ beq _080D7BD0
+ movs r1, 0x14
+_080D7BD0:
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x34]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ strh r0, [r4, 0x36]
+ strh r5, [r4, 0x38]
+ ldr r1, _080D7C04 @ =sub_80D7C08
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7BFC: .4byte gBattleAnimBankAttacker
+_080D7C00: .4byte 0x0000ffec
+_080D7C04: .4byte sub_80D7C08
+ thumb_func_end sub_80D7BA0
+
+ thumb_func_start sub_80D7C08
+sub_80D7C08: @ 80D7C08
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D7C5C @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ ldr r1, _080D7C60 @ =0x0000ffec
+ cmp r0, 0
+ beq _080D7C1E
+ movs r1, 0x14
+_080D7C1E:
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1F
+ bgt _080D7C64
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ ldrh r1, [r4, 0x34]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x36]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x10
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ b _080D7C82
+ .align 2, 0
+_080D7C5C: .4byte gBattleAnimBankAttacker
+_080D7C60: .4byte 0x0000ffec
+_080D7C64:
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x36]
+ strh r1, [r4, 0x34]
+ ldr r0, _080D7C88 @ =sub_80D7C8C
+ str r0, [r4, 0x1C]
+_080D7C82:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7C88: .4byte sub_80D7C8C
+ thumb_func_end sub_80D7C08
+
+ thumb_func_start sub_80D7C8C
+sub_80D7C8C: @ 80D7C8C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_8078CE8
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080D7CC8
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r1, r0, r1
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ bgt _080D7CC8
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D7CCE
+_080D7CC8:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D7CCE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7C8C
+
+ thumb_func_start sub_80D7CD4
+sub_80D7CD4: @ 80D7CD4
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080D7D18 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080D7D20
+ ldr r4, _080D7D1C @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _080D7D32
+ .align 2, 0
+_080D7D18: .4byte gBattleAnimArgs
+_080D7D1C: .4byte gBattleAnimBankTarget
+_080D7D20:
+ ldr r0, _080D7D50 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+_080D7D32:
+ ldr r0, _080D7D54 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7D5C
+ ldr r0, _080D7D58 @ =gBattleAnimArgs
+ ldrh r1, [r5, 0x32]
+ ldrh r2, [r0, 0x4]
+ subs r1, r2
+ strh r1, [r5, 0x32]
+ adds r1, r0, 0
+ b _080D7D66
+ .align 2, 0
+_080D7D50: .4byte gBattleAnimBankTarget
+_080D7D54: .4byte gBattleAnimBankAttacker
+_080D7D58: .4byte gBattleAnimArgs
+_080D7D5C:
+ ldr r1, _080D7E10 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+_080D7D66:
+ ldrh r0, [r1, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078D60
+ adds r7, r5, 0
+ adds r7, 0x2E
+ adds r2, r7, 0
+ mov r1, sp
+ movs r4, 0x7
+_080D7D7E:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D7D7E
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ eors r0, r1
+ strh r0, [r5, 0x32]
+_080D7D9A:
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_8078CE8
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ adds r1, 0x10
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r1, r0
+ bhi _080D7DCE
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080D7DCE
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D7D9A
+_080D7DCE:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ ldr r1, _080D7E10 @ =gBattleAnimArgs
+ ldr r6, _080D7E14 @ =sub_80D7E18
+ mov r3, sp
+ adds r2, r7, 0
+ movs r4, 0x7
+_080D7DEE:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D7DEE
+ ldrh r0, [r1, 0xA]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r5, 0x3A]
+ str r6, [r5, 0x1C]
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7E10: .4byte gBattleAnimArgs
+_080D7E14: .4byte sub_80D7E18
+ thumb_func_end sub_80D7CD4
+
+ thumb_func_start sub_80D7E18
+sub_80D7E18: @ 80D7E18
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078CE8
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D7E2C
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+_080D7E2C:
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080D7E82
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080D7E7C
+ movs r0, 0x22
+ ldrsh r1, [r4, r0]
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080D7E7C
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D7E82
+_080D7E7C:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D7E82:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7E18
+
+ thumb_func_start sub_80D7E88
+sub_80D7E88: @ 80D7E88
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D7EF4
+ ldr r5, _080D7EA8 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D7EAC
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+ b _080D7EE2
+ .align 2, 0
+_080D7EA8: .4byte gBattleAnimArgs
+_080D7EAC:
+ ldr r0, _080D7EEC @ =gBattleAnimBankTarget
+ 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, _080D7EF0 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7ED2
+ ldrh r0, [r5]
+ negs r0, r0
+ strh r0, [r5]
+_080D7ED2:
+ 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]
+_080D7EE2:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D7F08
+ .align 2, 0
+_080D7EEC: .4byte gBattleAnimBankTarget
+_080D7EF0: .4byte gBattleAnimBankAttacker
+_080D7EF4:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D7F08
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D7F08:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7E88
+
+ thumb_func_start sub_80D7F10
+sub_80D7F10: @ 80D7F10
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080D7F30 @ =gBattleAnimArgs
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D7F80
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D7F34
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080D7F72
+ .align 2, 0
+_080D7F30: .4byte gBattleAnimArgs
+_080D7F34:
+ ldr r4, _080D7F5C @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7F60
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r6]
+ subs r0, r1
+ b _080D7F66
+ .align 2, 0
+_080D7F5C: .4byte gBattleAnimBankAttacker
+_080D7F60:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080D7F66:
+ strh r0, [r5, 0x20]
+ ldr r0, _080D7F78 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+_080D7F72:
+ ldr r0, _080D7F7C @ =gBattleAnimBankAttacker
+ b _080D7FD0
+ .align 2, 0
+_080D7F78: .4byte gBattleAnimArgs
+_080D7F7C: .4byte gBattleAnimBankAttacker
+_080D7F80:
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D7F92
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078764
+ b _080D7FCE
+_080D7F92:
+ ldr r4, _080D7FB8 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7FBC
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r6]
+ subs r0, r1
+ b _080D7FC2
+ .align 2, 0
+_080D7FB8: .4byte gBattleAnimBankTarget
+_080D7FBC:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080D7FC2:
+ strh r0, [r5, 0x20]
+ ldr r0, _080D7FEC @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+_080D7FCE:
+ ldr r0, _080D7FF0 @ =gBattleAnimBankTarget
+_080D7FD0:
+ ldrb r0, [r0]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080D7FEC @ =gBattleAnimArgs
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080D7FE8
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D7FF4
+_080D7FE8:
+ movs r0, 0x20
+ b _080D7FF6
+ .align 2, 0
+_080D7FEC: .4byte gBattleAnimArgs
+_080D7FF0: .4byte gBattleAnimBankTarget
+_080D7FF4:
+ movs r0, 0x40
+_080D7FF6:
+ strh r0, [r5, 0x3A]
+ ldr r0, _080D803C @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D800C
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+_080D800C:
+ ldr r1, _080D8040 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrh r1, [r1, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x40
+ strh r0, [r5, 0x38]
+ ldr r1, _080D8044 @ =sub_80D8048
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D803C: .4byte gBattleAnimBankTarget
+_080D8040: .4byte gBattleAnimArgs
+_080D8044: .4byte sub_80D8048
+ thumb_func_end sub_80D7F10
+
+ thumb_func_start sub_80D8048
+sub_80D8048: @ 80D8048
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D80D2
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3A
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r1, 0x6
+ negs r1, r1
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080D80A4
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ 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 _080D80C6
+_080D80A4:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ 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]
+_080D80C6:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080D80D8
+_080D80D2:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D80D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D8048
+
+ thumb_func_start sub_80D80E0
+sub_80D80E0: @ 80D80E0
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D81A8 @ =REG_BLDCNT
+ ldr r2, _080D81AC @ =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, _080D81B0 @ =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 NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D812A
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080D812A:
+ ldr r0, _080D81B4 @ =gUnknown_030042C0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D81B8 @ =gUnknown_030041B4
+ strh r1, [r0]
+ ldr r0, _080D81BC @ =REG_BG1HOFS
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D81C0 @ =0x040000d4
+ add r2, sp, 0xC
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r2, _080D81C4 @ =0x85000400
+ str r2, [r0, 0x8]
+ ldr r2, [r0, 0x8]
+ ldr r2, _080D81C8 @ =gWeatherFog1Tiles
+ ldr r3, [sp]
+ str r2, [r0]
+ str r3, [r0, 0x4]
+ ldr r2, _080D81CC @ =0x80000400
+ str r2, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _080D81D0 @ =gBattleAnimFogTilemap
+ bl LZDecompressVram
+ ldr r0, _080D81D4 @ =gUnknown_083970E8
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8190
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080D8190:
+ ldr r0, _080D81D8 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080D81DC @ =sub_80D81E0
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D81A8: .4byte REG_BLDCNT
+_080D81AC: .4byte 0x00003f42
+_080D81B0: .4byte REG_BG1CNT
+_080D81B4: .4byte gUnknown_030042C0
+_080D81B8: .4byte gUnknown_030041B4
+_080D81BC: .4byte REG_BG1HOFS
+_080D81C0: .4byte 0x040000d4
+_080D81C4: .4byte 0x85000400
+_080D81C8: .4byte gWeatherFog1Tiles
+_080D81CC: .4byte 0x80000400
+_080D81D0: .4byte gBattleAnimFogTilemap
+_080D81D4: .4byte gUnknown_083970E8
+_080D81D8: .4byte gTasks
+_080D81DC: .4byte sub_80D81E0
+ thumb_func_end sub_80D80E0
+
+ thumb_func_start sub_80D81E0
+sub_80D81E0: @ 80D81E0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _080D8220 @ =gUnknown_030042C0
+ ldr r1, _080D8224 @ =0x0000ffff
+ adds r0, r1, 0
+ ldrh r4, [r2]
+ adds r0, r4
+ strh r0, [r2]
+ ldr r1, _080D8228 @ =gUnknown_030041B4
+ ldr r3, _080D822C @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r3
+ movs r4, 0x20
+ ldrsh r0, [r0, r4]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bls _080D8214
+ b _080D83B0
+_080D8214:
+ lsls r0, 2
+ ldr r1, _080D8230 @ =_080D8234
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D8220: .4byte gUnknown_030042C0
+_080D8224: .4byte 0x0000ffff
+_080D8228: .4byte gUnknown_030041B4
+_080D822C: .4byte gTasks
+_080D8230: .4byte _080D8234
+ .align 2, 0
+_080D8234:
+ .4byte _080D8248
+ .4byte _080D82A0
+ .4byte _080D82C2
+ .4byte _080D8304
+ .4byte _080D838C
+_080D8248:
+ lsls r0, r6, 2
+ adds r0, r6
+ 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 _080D8262
+ b _080D83B0
+_080D8262:
+ strh r4, [r3, 0x1C]
+ ldrh r0, [r3, 0x1A]
+ adds r0, 0x1
+ strh r0, [r3, 0x1A]
+ ldr r1, _080D8298 @ =gUnknown_083D9D6C
+ movs r2, 0x1A
+ ldrsh r0, [r3, r2]
+ adds r0, r1
+ ldrb r1, [r0]
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D829C @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x1E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x9
+ beq _080D828C
+ b _080D83B0
+_080D828C:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r4, [r3, 0x1E]
+ b _080D83B0
+ .align 2, 0
+_080D8298: .4byte gUnknown_083D9D6C
+_080D829C: .4byte REG_BLDALPHA
+_080D82A0:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r3
+ ldrh r0, [r3, 0x1E]
+ adds r0, 0x1
+ strh r0, [r3, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x51
+ bne _080D83B0
+ movs r0, 0x9
+ strh r0, [r3, 0x1E]
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ b _080D83B0
+_080D82C2:
+ lsls r0, r6, 2
+ adds r0, r6
+ 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 _080D83B0
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ subs r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D8300 @ =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 _080D83B0
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r1, [r3, 0x1E]
+ b _080D83B0
+ .align 2, 0
+_080D8300: .4byte REG_BLDALPHA
+_080D8304:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ lsls r4, r6, 2
+ mov r10, r4
+ add r5, sp, 0xC
+ movs r7, 0
+ ldr r1, _080D83C0 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r5
+ ldr r0, _080D83C4 @ =0x85000400
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D832A:
+ str r7, [sp, 0xC]
+ mov r0, r8
+ 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 _080D832A
+ str r7, [sp, 0xC]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D83C0 @ =0x040000d4
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D83C8 @ =0x85000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D8378
+ ldr r2, _080D83CC @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D8378:
+ ldr r0, _080D83D0 @ =gTasks
+ mov r4, r10
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ ldr r2, _080D83D4 @ =gUnknown_030042C0
+ ldr r4, _080D83D8 @ =gUnknown_030041B4
+_080D838C:
+ movs r1, 0
+ strh r1, [r2]
+ strh r1, [r4]
+ ldr r0, _080D83DC @ =REG_BLDCNT
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080D83CC @ =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, r6, 0
+ bl DestroyAnimVisualTask
+_080D83B0:
+ 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
+_080D83C0: .4byte 0x040000d4
+_080D83C4: .4byte 0x85000400
+_080D83C8: .4byte 0x85000200
+_080D83CC: .4byte REG_BG1CNT
+_080D83D0: .4byte gTasks
+_080D83D4: .4byte gUnknown_030042C0
+_080D83D8: .4byte gUnknown_030041B4
+_080D83DC: .4byte REG_BLDCNT
+ thumb_func_end sub_80D81E0
+
+ thumb_func_start sub_80D83E0
+sub_80D83E0: @ 80D83E0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D840C @ =gBattleAnimBankAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r0, _080D8410 @ =sub_807941C
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D840C: .4byte gBattleAnimBankAttacker
+_080D8410: .4byte sub_807941C
+ thumb_func_end sub_80D83E0
+
+ thumb_func_start sub_80D8414
+sub_80D8414: @ 80D8414
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D84E0 @ =REG_BLDCNT
+ ldr r2, _080D84E4 @ =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, _080D84E8 @ =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 NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D845E
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080D845E:
+ ldr r0, _080D84EC @ =gUnknown_030042C0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D84F0 @ =gUnknown_030041B4
+ strh r1, [r0]
+ ldr r0, _080D84F4 @ =REG_BG1HOFS
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D84F8 @ =0x040000d4
+ add r2, sp, 0xC
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r2, _080D84FC @ =0x85000400
+ str r2, [r0, 0x8]
+ ldr r2, [r0, 0x8]
+ ldr r2, _080D8500 @ =gWeatherFog1Tiles
+ ldr r3, [sp]
+ str r2, [r0]
+ str r3, [r0, 0x4]
+ ldr r2, _080D8504 @ =0x80000400
+ str r2, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _080D8508 @ =gBattleAnimFogTilemap
+ bl LZDecompressVram
+ ldr r0, _080D850C @ =gUnknown_083970E8
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D84C4
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080D84C4:
+ ldr r1, _080D8510 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080D8514 @ =0x0000ffff
+ strh r1, [r0, 0x26]
+ ldr r1, _080D8518 @ =sub_80D851C
+ str r1, [r0]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D84E0: .4byte REG_BLDCNT
+_080D84E4: .4byte 0x00003f42
+_080D84E8: .4byte REG_BG1CNT
+_080D84EC: .4byte gUnknown_030042C0
+_080D84F0: .4byte gUnknown_030041B4
+_080D84F4: .4byte REG_BG1HOFS
+_080D84F8: .4byte 0x040000d4
+_080D84FC: .4byte 0x85000400
+_080D8500: .4byte gWeatherFog1Tiles
+_080D8504: .4byte 0x80000400
+_080D8508: .4byte gBattleAnimFogTilemap
+_080D850C: .4byte gUnknown_083970E8
+_080D8510: .4byte gTasks
+_080D8514: .4byte 0x0000ffff
+_080D8518: .4byte sub_80D851C
+ thumb_func_end sub_80D8414
+
+ thumb_func_start sub_80D851C
+sub_80D851C: @ 80D851C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r3, _080D8558 @ =gUnknown_030042C0
+ ldr r4, _080D855C @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r4
+ ldrh r0, [r1, 0x26]
+ ldrh r2, [r3]
+ adds r0, r2
+ strh r0, [r3]
+ ldr r2, _080D8560 @ =gUnknown_030041B4
+ movs r5, 0x20
+ ldrsh r0, [r1, r5]
+ cmp r0, 0x4
+ bls _080D854C
+ b _080D86D0
+_080D854C:
+ lsls r0, 2
+ ldr r1, _080D8564 @ =_080D8568
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D8558: .4byte gUnknown_030042C0
+_080D855C: .4byte gTasks
+_080D8560: .4byte gUnknown_030041B4
+_080D8564: .4byte _080D8568
+ .align 2, 0
+_080D8568:
+ .4byte _080D857C
+ .4byte _080D85C0
+ .4byte _080D85E2
+ .4byte _080D8624
+ .4byte _080D86AC
+_080D857C:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ ldr r1, _080D85B8 @ =gUnknown_083D9D98
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ ldrb r1, [r0]
+ strh r1, [r4, 0x1E]
+ ldr r2, _080D85BC @ =REG_BLDALPHA
+ movs r0, 0x11
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r5, 0x1E
+ ldrsh r0, [r4, r5]
+ cmp r0, 0x5
+ beq _080D85AC
+ b _080D86D0
+_080D85AC:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ b _080D86D0
+ .align 2, 0
+_080D85B8: .4byte gUnknown_083D9D98
+_080D85BC: .4byte REG_BLDALPHA
+_080D85C0:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r1, r0, r4
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x51
+ bne _080D86D0
+ movs r0, 0x5
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080D86D0
+_080D85E2:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080D86D0
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ subs r1, 0x1
+ strh r1, [r4, 0x1E]
+ ldr r2, _080D8620 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r0, 0x1E
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _080D86D0
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r1, [r4, 0x1E]
+ b _080D86D0
+ .align 2, 0
+_080D8620: .4byte REG_BLDALPHA
+_080D8624:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ lsls r1, r6, 2
+ mov r10, r1
+ add r5, sp, 0xC
+ movs r7, 0
+ ldr r1, _080D86E0 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r5
+ ldr r0, _080D86E4 @ =0x85000400
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D864A:
+ str r7, [sp, 0xC]
+ mov r0, r8
+ 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 _080D864A
+ str r7, [sp, 0xC]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D86E0 @ =0x040000d4
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D86E8 @ =0x85000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D8698
+ ldr r2, _080D86EC @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D8698:
+ ldr r0, _080D86F0 @ =gTasks
+ mov r5, r10
+ adds r1, r5, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ ldr r3, _080D86F4 @ =gUnknown_030042C0
+ ldr r2, _080D86F8 @ =gUnknown_030041B4
+_080D86AC:
+ movs r1, 0
+ strh r1, [r3]
+ strh r1, [r2]
+ ldr r0, _080D86FC @ =REG_BLDCNT
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080D86EC @ =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, r6, 0
+ bl DestroyAnimVisualTask
+_080D86D0:
+ 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
+_080D86E0: .4byte 0x040000d4
+_080D86E4: .4byte 0x85000400
+_080D86E8: .4byte 0x85000200
+_080D86EC: .4byte REG_BG1CNT
+_080D86F0: .4byte gTasks
+_080D86F4: .4byte gUnknown_030042C0
+_080D86F8: .4byte gUnknown_030041B4
+_080D86FC: .4byte REG_BLDCNT
+ thumb_func_end sub_80D851C
+
+ thumb_func_start sub_80D8700
+sub_80D8700: @ 80D8700
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ ldr r6, _080D87E8 @ =gBattleAnimArgs
+ ldrh r0, [r6]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D87EC @ =gBattleAnimBankAttacker
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ ldr r7, _080D87F0 @ =gBattleAnimBankTarget
+ ldrb r0, [r7]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bcs _080D8734
+ movs r0, 0x80
+ lsls r0, 8
+ strh r0, [r5, 0x3C]
+_080D8734:
+ ldr r3, _080D87F4 @ =gBanksBySide
+ ldrb r0, [r7]
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080D8794
+ ldrh r0, [r6, 0x2]
+ negs r0, r0
+ strh r0, [r6, 0x2]
+ ldrh r0, [r6, 0x6]
+ negs r0, r0
+ strh r0, [r6, 0x6]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8790
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r3
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080D8790
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ ldr r2, _080D87F8 @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0x1
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_080D8790:
+ movs r0, 0x1
+ strh r0, [r5, 0x3A]
+_080D8794:
+ ldr r4, _080D87EC @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r6, _080D87E8 @ =gBattleAnimArgs
+ movs r1, 0xE
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080D87FC
+ ldrh r0, [r6, 0x2]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x30]
+ ldr r4, _080D87F0 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ b _080D8824
+ .align 2, 0
+_080D87E8: .4byte gBattleAnimArgs
+_080D87EC: .4byte gBattleAnimBankAttacker
+_080D87F0: .4byte gBattleAnimBankTarget
+_080D87F4: .4byte gBanksBySide
+_080D87F8: .4byte gSprites
+_080D87FC:
+ ldrh r0, [r6, 0x2]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x30]
+ ldr r4, _080D886C @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x1
+_080D8824:
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x8]
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldrb r0, [r4]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 16
+ ldrh r1, [r5, 0x3C]
+ orrs r0, r1
+ strh r0, [r5, 0x3C]
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8858
+ movs r0, 0x1
+ strh r0, [r5, 0x3A]
+ adds r1, r5, 0
+ adds r1, 0x43
+ movs r0, 0x80
+ strb r0, [r1]
+_080D8858:
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D8870 @ =sub_80D8874
+ str r0, [r5, 0x1C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D886C: .4byte gBattleAnimBankTarget
+_080D8870: .4byte sub_80D8874
+ thumb_func_end sub_80D8700
+
+ thumb_func_start sub_80D8874
+sub_80D8874: @ 80D8874
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x3C]
+ movs r5, 0xFF
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0x1
+ beq _080D8968
+ cmp r1, 0x1
+ bgt _080D888E
+ cmp r1, 0
+ beq _080D8896
+ b _080D8AD0
+_080D888E:
+ cmp r1, 0x2
+ bne _080D8894
+ b _080D8A94
+_080D8894:
+ b _080D8AD0
+_080D8896:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ ldr r1, _080D88C0 @ =gSineTable
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ asrs r0, 4
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D88C4
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x8
+ b _080D88C8
+ .align 2, 0
+_080D88C0: .4byte gSineTable
+_080D88C4:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x8
+_080D88C8:
+ ands r0, r5
+ strh r0, [r4, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080D88D6
+ b _080D8AD0
+_080D88D6:
+ movs r5, 0x50
+ strh r5, [r4, 0x2E]
+ ldr r6, _080D8928 @ =gBattleAnimBankTarget
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, 0x1D
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ ldr r0, _080D892C @ =gMain
+ ldr r2, _080D8930 @ =0x0000043d
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8938
+ ldr r1, _080D8934 @ =gBanksBySide
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8938
+ movs r0, 0xCC
+ strh r0, [r4, 0x38]
+ b _080D893A
+ .align 2, 0
+_080D8928: .4byte gBattleAnimBankTarget
+_080D892C: .4byte gMain
+_080D8930: .4byte 0x0000043d
+_080D8934: .4byte gBanksBySide
+_080D8938:
+ strh r5, [r4, 0x38]
+_080D893A:
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r1, _080D8964 @ =gSineTable
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ asrs r0, 3
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ b _080D8AD0
+ .align 2, 0
+_080D8964: .4byte gSineTable
+_080D8968:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ ldr r1, _080D89C8 @ =gSineTable
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ asrs r0, 3
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ negs r0, r0
+ asrs r0, 8
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldr r0, _080D89CC @ =gMain
+ ldr r2, _080D89D0 @ =0x0000043d
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D89F2
+ ldrh r1, [r4, 0x38]
+ adds r0, r1, 0
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ adds r3, r1, 0
+ cmp r0, 0x7F
+ bhi _080D89D4
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 16
+ asrs r1, 24
+ b _080D89DC
+ .align 2, 0
+_080D89C8: .4byte gSineTable
+_080D89CC: .4byte gMain
+_080D89D0: .4byte 0x0000043d
+_080D89D4:
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 16
+ asrs r1, 24
+ adds r1, 0x1
+_080D89DC:
+ movs r0, 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]
+ adds r0, r3, 0x4
+ b _080D8A12
+_080D89F2:
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080D8A06
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x80
+ b _080D8A0C
+_080D8A06:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x8C
+_080D8A0C:
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x4
+_080D8A12:
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bgt _080D8AD0
+ movs r2, 0
+ movs r0, 0xC0
+ lsls r0, 2
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, 0x4
+ strh r0, [r4, 0x36]
+ ldr r0, _080D8A68 @ =gMain
+ ldr r1, _080D8A6C @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8A78
+ ldr r1, _080D8A70 @ =gBanksBySide
+ ldr r0, _080D8A74 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8A78
+ movs r0, 0x80
+ lsls r0, 1
+ b _080D8A7A
+ .align 2, 0
+_080D8A68: .4byte gMain
+_080D8A6C: .4byte 0x0000043d
+_080D8A70: .4byte gBanksBySide
+_080D8A74: .4byte gBattleAnimBankTarget
+_080D8A78:
+ ldr r0, _080D8A90 @ =0x0000fff0
+_080D8A7A:
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x3C]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ adds r0, r4, 0
+ bl sub_8078BD4
+ b _080D8AD0
+ .align 2, 0
+_080D8A90: .4byte 0x0000fff0
+_080D8A94:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8AD0
+ ldrb r0, [r4, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8AC2
+ 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]
+_080D8AC2:
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r1, _080D8AD8 @ =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_080D8AD0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8AD8: .4byte gAnimVisualTaskCount
+ thumb_func_end sub_80D8874
+
+ thumb_func_start sub_80D8ADC
+sub_80D8ADC: @ 80D8ADC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D8AF0 @ =gTasks
+ adds r1, r0
+ ldr r0, _080D8AF4 @ =sub_80D8AF8
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080D8AF0: .4byte gTasks
+_080D8AF4: .4byte sub_80D8AF8
+ thumb_func_end sub_80D8ADC
+
+ thumb_func_start sub_80D8AF8
+sub_80D8AF8: @ 80D8AF8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D8B1C @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080D8B3C
+ cmp r5, 0x1
+ bgt _080D8B20
+ cmp r5, 0
+ beq _080D8B26
+ b _080D8BA0
+ .align 2, 0
+_080D8B1C: .4byte gTasks
+_080D8B20:
+ cmp r5, 0x2
+ beq _080D8B92
+ b _080D8BA0
+_080D8B26:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D8BA0
+ strh r5, [r4, 0x10]
+ strh r5, [r4, 0x12]
+ strh r5, [r4, 0xC]
+ b _080D8B78
+_080D8B3C:
+ ldrh r1, [r4, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080D8B8C
+ ldrb r0, [r4, 0xE]
+ ldrb r1, [r4, 0xC]
+ movs r3, 0x1
+ bl sub_80D8BA8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8B5C
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+_080D8B5C:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080D8B88
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080D8B80
+_080D8B78:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D8BA0
+_080D8B80:
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D8BA0
+_080D8B88:
+ strh r5, [r4, 0x12]
+ b _080D8BA0
+_080D8B8C:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x12]
+ b _080D8BA0
+_080D8B92:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D8BA0
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080D8BA0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D8AF8
+
+ thumb_func_start sub_80D8BA8
+sub_80D8BA8: @ 80D8BA8
+ 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 r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r1, _080D8C20 @ =gUnknown_083D9DC4
+ lsrs r0, 22
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x3]
+ lsls r0, 24
+ asrs r0, 28
+ mov r8, r0
+ cmp r0, 0x2
+ beq _080D8C94
+ ldrh r0, [r4, 0x2]
+ lsls r0, 20
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl IsAnimBankSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8C94
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r1, r8
+ cmp r1, 0
+ beq _080D8C24
+ cmp r1, 0x1
+ beq _080D8C5A
+ b _080D8CA6
+ .align 2, 0
+_080D8C20: .4byte gUnknown_083D9DC4
+_080D8C24:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r6, 16
+ asrs r1, 16
+ subs r1, r0
+ b _080D8C8E
+_080D8C5A:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r7, 16
+ asrs r1, 16
+ adds r1, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r6, 16
+ asrs r1, 16
+ adds r1, r0
+_080D8C8E:
+ lsls r1, 16
+ lsrs r6, r1, 16
+ b _080D8CA6
+_080D8C94:
+ ldrh r0, [r4]
+ lsls r0, 22
+ asrs r0, 6
+ lsrs r7, r0, 16
+ ldr r0, [r4]
+ lsls r0, 12
+ asrs r0, 22
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080D8CA6:
+ lsls r0, r6, 16
+ asrs r0, 16
+ adds r0, 0x8
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r0
+ ldr r0, _080D8D00 @ =gSpriteTemplate_83D9E3C
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x8
+ negs r2, r2
+ movs r3, 0x12
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _080D8D08
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r0, _080D8D04 @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ mov r1, r9
+ bl StartSpriteAffineAnim
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ strh r7, [r4, 0x34]
+ strh r6, [r4, 0x36]
+ mov r1, r9
+ strh r1, [r4, 0x38]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x3A]
+ mov r1, r10
+ strh r1, [r4, 0x3C]
+ movs r0, 0x1
+ b _080D8D0A
+ .align 2, 0
+_080D8D00: .4byte gSpriteTemplate_83D9E3C
+_080D8D04: .4byte gSprites
+_080D8D08:
+ movs r0, 0
+_080D8D0A:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D8BA8
+
+ thumb_func_start sub_80D8D1C
+sub_80D8D1C: @ 80D8D1C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x4
+ strh r0, [r4, 0x20]
+ ldrh r1, [r4, 0x22]
+ adds r2, r1, 0
+ adds r2, 0x8
+ strh r2, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x34
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _080D8D46
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _080D8DF6
+_080D8D46:
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080D8DC8
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D8DC8
+ ldr r0, _080D8DBC @ =gBattleAnimSpriteTemplate_83D9C78
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ movs r3, 0x36
+ ldrsh r2, [r4, r3]
+ adds r3, r4, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x2E]
+ cmp r0, 0x40
+ beq _080D8DAA
+ ldr r2, _080D8DC0 @ =gSprites
+ movs r0, 0x2E
+ 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, _080D8DC4 @ =sub_80D8E00
+ str r1, [r0]
+ movs r3, 0x2E
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x3A]
+ strh r1, [r0, 0x3A]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x3C]
+ strh r1, [r0, 0x3C]
+_080D8DAA:
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ b _080D8DF6
+ .align 2, 0
+_080D8DBC: .4byte gBattleAnimSpriteTemplate_83D9C78
+_080D8DC0: .4byte gSprites
+_080D8DC4: .4byte sub_80D8E00
+_080D8DC8:
+ ldr r3, _080D8DFC @ =gTasks
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D8DF6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8DFC: .4byte gTasks
+ thumb_func_end sub_80D8D1C
+
+ thumb_func_start sub_80D8E00
+sub_80D8E00: @ 80D8E00
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080D8E40
+ ldr r3, _080D8E48 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D8E40:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8E48: .4byte gTasks
+ thumb_func_end sub_80D8E00
+
+ thumb_func_start unc_080B06FC
+unc_080B06FC: @ 80D8E4C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080D8ECC @ =gDisableStructMoveAnim
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x11]
+ lsrs r0, r1, 4
+ lsls r1, 28
+ lsrs r1, 28
+ subs r0, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080D8E6A
+ movs r1, 0x4
+_080D8E6A:
+ adds r0, r5, 0
+ bl StartSpriteAffineAnim
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r6, _080D8ED0 @ =gBattleAnimArgs
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D8ED4 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8E92
+ ldrh r0, [r6, 0x4]
+ negs r0, r0
+ strh r0, [r6, 0x4]
+_080D8E92:
+ ldr r4, _080D8ED8 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r6, 0xA]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080D8EDC @ =sub_80D8EE0
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8ECC: .4byte gDisableStructMoveAnim
+_080D8ED0: .4byte gBattleAnimArgs
+_080D8ED4: .4byte gBattleAnimBankAttacker
+_080D8ED8: .4byte gBattleAnimBankTarget
+_080D8EDC: .4byte sub_80D8EE0
+ thumb_func_end unc_080B06FC
+
+ thumb_func_start sub_80D8EE0
+sub_80D8EE0: @ 80D8EE0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8F02
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _080D8F08 @ =sub_8078600
+ str r0, [r4, 0x1C]
+ ldr r1, _080D8F0C @ =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+_080D8F02:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8F08: .4byte sub_8078600
+_080D8F0C: .4byte move_anim_8072740
+ thumb_func_end sub_80D8EE0
+
+ thumb_func_start sub_80D8F10
+sub_80D8F10: @ 80D8F10
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r3, _080D8F64 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D8F68 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ bl Random
+ movs r5, 0xFF
+ ands r5, r0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r6, r0, 0
+ orrs r5, r6
+ bl Random
+ ldr r1, _080D8F6C @ =0x000001ff
+ ands r1, r0
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ ble _080D8F56
+ subs r0, r6, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080D8F56:
+ strh r5, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldr r0, _080D8F70 @ =sub_80D8F74
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8F64: .4byte 0x000003ff
+_080D8F68: .4byte 0xfffffc00
+_080D8F6C: .4byte 0x000001ff
+_080D8F70: .4byte sub_80D8F74
+ thumb_func_end sub_80D8F10
+
+ thumb_func_start sub_80D8F74
+sub_80D8F74: @ 80D8F74
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x34]
+ adds r3, r0, r1
+ strh r3, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ ldrh r4, [r2, 0x36]
+ adds r1, r4
+ strh r1, [r2, 0x36]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080D8F98
+ lsls r0, r3, 16
+ asrs r0, 24
+ negs r0, r0
+ b _080D8F9C
+_080D8F98:
+ lsls r0, r3, 16
+ asrs r0, 24
+_080D8F9C:
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080D8FBA
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D8FBA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D8F74
+
+ thumb_func_start sub_80D8FC0
+sub_80D8FC0: @ 80D8FC0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080D8FE8 @ =gBattleAnimArgs
+ ldrb r3, [r1]
+ lsls r3, 1
+ adds r3, r1
+ ldr r1, _080D8FEC @ =gDisableStructMoveAnim
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x11]
+ lsrs r2, r1, 4
+ lsls r1, 28
+ lsrs r1, 28
+ subs r2, r1
+ subs r2, 0x1
+ strh r2, [r3]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8FE8: .4byte gBattleAnimArgs
+_080D8FEC: .4byte gDisableStructMoveAnim
+ thumb_func_end sub_80D8FC0
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/libagbsyscall.s b/asm/libagbsyscall.s
index 3b59592b6..de59d4c27 100644
--- a/asm/libagbsyscall.s
+++ b/asm/libagbsyscall.s
@@ -1,5 +1,4 @@
.include "asm/macros.inc"
-
.syntax unified
.text
@@ -69,7 +68,7 @@ SoftReset: @ 81E0814
ldr r3, =0x04000208
movs r2, 0
strb r2, [r3]
- ldr r1, =0x03007f00
+ ldr r1, =0x03007f00 @ User Stack
mov sp, r1
swi 0x1
swi 0
diff --git a/asm/macros/ec.inc b/asm/macros/ec.inc
index 44c974e53..d3fd45c2f 100644
--- a/asm/macros/ec.inc
+++ b/asm/macros/ec.inc
@@ -1,22 +1,3 @@
- .macro ec_word word
- .2byte EC_WORD_\word
- .endm
-
- .macro ec_move1 name
- .2byte (EC_GROUP_MOVE_1 << 9) | MOVE_\name
- .endm
-
- .macro ec_move2 name
- .2byte (EC_GROUP_MOVE_2 << 9) | MOVE_\name
- .endm
-
- .macro ec_pokemon1 name
- .2byte (EC_GROUP_POKEMON << 9) | SPECIES_\name
- .endm
-
- .macro ec_pokemon2 name
- .2byte (EC_GROUP_POKEMON_2 << 9) | SPECIES_\name
- .endm
.macro ec_duplicates count
.2byte 0xff00 + \count
diff --git a/asm/macros/event.inc b/asm/macros/event.inc
index 960b300b7..738c2418e 100644
--- a/asm/macros/event.inc
+++ b/asm/macros/event.inc
@@ -80,20 +80,20 @@
.byte 0x0d
.endm
- @ Sets mystery event status
+ @ Sets some status related to Mystery Event.
.macro setmysteryeventstatus value
.byte 0x0e
.byte \value
.endm
- @ Sets the specified script bank to immediate value.
+ @ Sets the specified script bank to value.
.macro loadword destination, value
.byte 0x0f
.byte \destination
.4byte \value
.endm
- @ Sets the specified script bank to immediate value.
+ @ Sets the specified script bank to value.
.macro loadbyte destination, value
.byte 0x10
.byte \destination
@@ -219,7 +219,7 @@
.2byte \value
.endm
- @ Compares the value of `var` to the value of `var2`.
+ @ Compares the value of `var1` to the value of `var2`.
.macro compare_var_to_var var1, var2
.byte 0x22
.2byte \var1
@@ -250,7 +250,7 @@
.4byte \func
.endm
- @ Calls a special function; that is, a piece of ASM code designed for use by scripts and listed in a table of pointers.
+ @ Calls a special function; that is, a function designed for use by scripts and listed in a table of pointers.
.macro special function
.byte 0x25
.2byte SPECIAL_\function
@@ -292,19 +292,19 @@
.2byte \a
.endm
- @ In FireRed, this command is a nop.
- .macro initclock hour minute
+ @ Initializes the RTC`s local time offset to the given hour and minute. In FireRed, this command is a nop.
+ .macro initclock hour, minute
.byte 0x2c
- .byte \hour
- .byte \minute
+ .2byte \hour
+ .2byte \minute
.endm
- @ In FireRed, this command is a nop.
+ @ Runs time based events. In FireRed, this command is a nop.
.macro dodailyevents
.byte 0x2d
.endm
- @ Resets the values of variables 0x8000, 0x8001, and 0x8002. Related to RTC in RSE?
+ @ Sets the values of variables 0x8000, 0x8001, and 0x8002 to the current hour, minute, and second. In FRLG, this command sets those variables to zero.
.macro gettime
.byte 0x2e
.endm
@@ -315,7 +315,7 @@
.2byte \sound_number
.endm
- @ Blocks script execution until the currently-playing sound (triggered by sound) finishes playing.
+ @ Blocks script execution until the currently-playing sound (triggered by playse) finishes playing.
.macro waitse
.byte 0x30
.endm
@@ -338,7 +338,7 @@
.byte \unknown
.endm
- @ Plays the specified (song_number) song.
+ @ Saves the specified (song_number) song to be played later.
.macro savebgm song_number
.byte 0x34
.2byte \song_number
@@ -361,7 +361,7 @@
.byte \speed
.endm
- @ Fades the currently-playing song back in.
+ @ Fades the previously-playing song back in.
.macro fadeinbgm speed
.byte 0x38
.byte \speed
@@ -385,7 +385,7 @@
.2byte \Y
.endm
- @ Clone of warp that uses "a walking effect".
+ @ Clone of warp that plays a door opening animation before stepping upwards into it.
.macro warpdoor map, warp, X, Y
.byte 0x3b
map \map
@@ -400,7 +400,7 @@
map \map
.endm
- @ Clone of warp that uses a teleport effect. It is apparently only used in R/S/E.[source]
+ @ Clone of warp that uses a teleport effect. It is apparently only used in R/S/E.
.macro warpteleport map, warp, X, Y
.byte 0x3d
map \map
@@ -409,7 +409,7 @@
.2byte \Y
.endm
- @ Clone of warp. Used by an (unused?) Safari Zone script to return the player to the gatehouse and end the Safari Game.
+ @ Sets the warp destination to be used later.
.macro setwarp map, warp, X, Y
.byte 0x3e
map \map
@@ -418,7 +418,7 @@
.2byte \Y
.endm
- @ Sets a default warp place. If a warp tries to send the player to Warp 127 on Map 127.127, they will instead be sent here. Useful when a map has warps that need to go to script-controlled locations (i.e. elevators).
+ @ Sets the warp destination that a warp to Warp 127 on Map 127.127 will connect to. Useful when a map has warps that need to go to script-controlled locations (i.e. elevators).
.macro setdynamicwarp map, warp, X, Y
.byte 0x3f
map \map
@@ -427,7 +427,7 @@
.2byte \Y
.endm
- @ Clone of warp3, except that this writes data to different offsets...
+ @ Sets the destination that diving or emerging from a dive will take the player to.
.macro setdivewarp map, warp, X, Y
.byte 0x40
map \map
@@ -436,7 +436,7 @@
.2byte \Y
.endm
- @ Clone of warp3, except that this writes data to different offsets...
+ @ Sets the destination that falling into a hole will take the player to.
.macro setholewarp map, warp, X, Y
.byte 0x41
map \map
@@ -452,20 +452,20 @@
.2byte \Y
.endm
- @ Retrieves the number of Pokmon in the player's party, and stores that number in variable 0x800D (LASTRESULT).
- .macro countpokemon
+ @ Retrieves the number of Pokemon in the player's party, and stores that number in variable 0x800D (LASTRESULT).
+ .macro getpartysize
.byte 0x43
.endm
@ Attempts to add quantity of item index to the player's Bag. If the player has enough room, the item will be added and variable 0x800D (LASTRESULT) will be set to 0x0001; otherwise, LASTRESULT is set to 0x0000.
- .macro additem index, quantity
+ .macro giveitem index, quantity
.byte 0x44
.2byte \index
.2byte \quantity
.endm
@ Removes quantity of item index from the player's Bag.
- .macro removeitem index, quantity
+ .macro takeitem index, quantity
.byte 0x45
.2byte \index
.2byte \quantity
@@ -492,7 +492,7 @@
.endm
@ Adds a quantity amount of item index to the player's PC. Both arguments can be variables.
- .macro addpcitem index, quantity
+ .macro givepcitem index, quantity
.byte 0x49
.2byte \index
.2byte \quantity
@@ -505,32 +505,32 @@
.2byte \quantity
.endm
- @ In FireRed, this command is a nop. (The argument is read, but not used for anything.)
- .macro adddecor a
+ @ Adds decoration to the player's PC. In FireRed, this command is a nop. (The argument is read, but not used for anything.)
+ .macro givedecoration decoration
.byte 0x4b
- .2byte \a
+ .2byte \decoration
.endm
- @ In FireRed, this command is a nop. (The argument is read, but not used for anything.)
- .macro removedecor a
+ @ Removes a decoration from the player's PC. In FireRed, this command is a nop. (The argument is read, but not used for anything.)
+ .macro takedecoration decoration
.byte 0x4c
- .2byte \a
+ .2byte \decoration
.endm
- @ In FireRed, this command is a nop. (The argument is read, but not used for anything.)
- .macro hasdecor a
+ @ Checks for decoration in the player's PC. In FireRed, this command is a nop. (The argument is read, but not used for anything.)
+ .macro checkdecor decoration
.byte 0x4d
- .2byte \a
+ .2byte \decoration
.endm
- @ In FireRed, this command is a nop. (The argument is read, but not used for anything.)
- .macro checkdecor a
+ @ Checks if the player has enough space in their PC to hold decoration. Sets variable 0x800D (LASTRESULT) to 0x0001 if there is room, or 0x0000 is there is no room. In FireRed, this command is a nop. (The argument is read, but not used for anything.)
+ .macro checkdecorspace decoration
.byte 0x4e
- .2byte \a
+ .2byte \decoration
.endm
- @ Applies the movement data at movements to the specified (index) Person event. Also closes any standard message boxes that are still open.
- @ This command in fact uses variables to access the Person event ID. So, for example, if you setvar 0x8000 to 0x3, and then use applymovementpos 0x8000 @move1, Person event 3 will have the movements at @move1 applied to them. Thank you Shiny Quagsire for bringing this to my attention.
+ @ Applies the movement data at movements to the specified (index) Object event. Also closes any standard message boxes that are still open.
+ @ This command in fact uses variables to access the Object event ID. So, for example, if you setvar 0x8000 to 0x3, and then use applymovementpos 0x8000 @move1, Object event 3 will have the movements at @move1 applied to them.
.macro applymovement index, movements, mapGroup, mapNum
.ifb \mapGroup
.byte 0x4f
@@ -545,7 +545,7 @@
.endif
.endm
- @ Blocks script execution until the movements being applied to the specified (index) Person event finish. If the specified Person event is 0x0000, then the command will block script execution until all Person events affected by applymovement finish their movements. If the specified Person event is not currently being manipulated with applymovement, then this command does nothing.
+ @ Blocks script execution until the movements being applied to the specified (index) Object event finish. If the specified Object event is 0x0000, then the command will block script execution until all Object events affected by applymovement finish their movements. If the specified Object event is not currently being manipulated with applymovement, then this command does nothing.
.macro waitmovement index, mapBank, mapNum
.ifb \mapBank
.byte 0x51
@@ -558,7 +558,7 @@
.endif
.endm
- @ Attempts to hide the specified (local_ID, a local ID) Person event on the specified map, by setting its visibility flag if it has a valid one. If the Person does not have a valid visibility flag, this command does nothing.
+ @ Attempts to hide the specified (local_ID, a local ID) Object event on the specified map, by setting its visibility flag if it has a valid one. If the Object does not have a valid visibility flag, this command does nothing.
@ If no map is specified, then the current map is used
.macro removeobject localId, mapGroup, mapNum
.ifb \mapGroup
@@ -584,92 +584,92 @@
.endif
.endm
- .macro setobjectxy word1, word2, word3
- .byte 0x57
- .2byte \word1
- .2byte \word2
- .2byte \word3
+ @ Sets the specified (index) Object's position on the current map.
+ .macro setobjectxy index, x, y
+ .byte 0x57
+ .2byte \index
+ .2byte \x
+ .2byte \y
.endm
- .macro showobject word, byte1, byte2
- .byte 0x58
- .2byte \word
- .byte \byte1
- .byte \byte2
+ .macro showobjectat index, map
+ .byte 0x58
+ .2byte \index
+ map \map
.endm
- .macro hideobject word, byte1, byte2
- .byte 0x59
- .2byte \word
- .byte \byte1
- .byte \byte2
+ .macro hideobjectat index, map
+ .byte 0x59
+ .2byte \index
+ map \map
.endm
- @ If the script was called by a Person event, then that Person will turn to face toward the tile that the player is stepping off of.
+ @ If the script was called by a Object event, then that Object will turn to face toward the tile that the player is stepping off of.
.macro faceplayer
- .byte 0x5a
+ .byte 0x5a
.endm
- .macro turnobject word, byte
- .byte 0x5b
- .2byte \word
- .byte \byte
+ .macro turnobject index, direction
+ .byte 0x5b
+ .2byte \index
+ .byte \direction
.endm
@ If the Trainer flag for Trainer index is not set, this command does absolutely nothing.
.macro trainerbattle type, trainer, word, pointer1, pointer2, pointer3, pointer4
- .byte 0x5c
- .byte \type
- .2byte \trainer
- .2byte \word
- .if \type == 0
- .4byte \pointer1 @ text
- .4byte \pointer2 @ text
- .elseif \type == 1
- .4byte \pointer1 @ text
- .4byte \pointer2 @ text
- .4byte \pointer3 @ event script
- .elseif \type == 2
- .4byte \pointer1 @ text
- .4byte \pointer2 @ text
- .4byte \pointer3 @ event script
- .elseif \type == 3
- .4byte \pointer1 @ text
- .elseif \type == 4
- .4byte \pointer1 @ text
- .4byte \pointer2 @ text
- .4byte \pointer3 @ text
- .elseif \type == 5
- .4byte \pointer1 @ text
- .4byte \pointer2 @ text
- .elseif \type == 6
- .4byte \pointer1 @ text
- .4byte \pointer2 @ text
- .4byte \pointer3 @ text
- .4byte \pointer4 @ event script
- .elseif \type == 7
- .4byte \pointer1 @ text
- .4byte \pointer2 @ text
- .4byte \pointer3 @ text
- .elseif \type == 8
- .4byte \pointer1 @ text
- .4byte \pointer2 @ text
- .4byte \pointer3 @ text
- .4byte \pointer4 @ event script
- .endif
+ .byte 0x5c
+ .byte \type
+ .2byte \trainer
+ .2byte \word
+ .if \type == 0
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
+ .elseif \type == 1
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
+ .4byte \pointer3 @ event script
+ .elseif \type == 2
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
+ .4byte \pointer3 @ event script
+ .elseif \type == 3
+ .4byte \pointer1 @ text
+ .elseif \type == 4
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
+ .4byte \pointer3 @ text
+ .elseif \type == 5
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
+ .elseif \type == 6
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
+ .4byte \pointer3 @ text
+ .4byte \pointer4 @ event script
+ .elseif \type == 7
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
+ .4byte \pointer3 @ text
+ .elseif \type == 8
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
+ .4byte \pointer3 @ text
+ .4byte \pointer4 @ event script
+ .endif
.endm
-
@ Starts a trainer battle using the battle information stored in RAM (usually by trainerbattle, which actually calls this command behind-the-scenes), and blocks script execution until the battle finishes.
- .macro battlebegin
+ .macro trainerbattlebegin
.byte 0x5d
.endm
- .macro ontrainerbattleend
+ @ Goes to address after the trainerbattle command (called by the battle functions, see battle_setup.c)
+ .macro gotopostbattlescript
.byte 0x5e
.endm
- .macro ontrainerbattleendgoto
+ @ Goes to address specified in the trainerbattle command (called by the battle functions, see battle_setup.c)
+ .macro gotobeatenscript
.byte 0x5f
.endm
@@ -679,28 +679,28 @@
.2byte \trainer
.endm
- @ Sets Flag (trainer + 0x500). (I didn't make a mistake. The command names actually are backwards.)
+ @ Sets Flag (trainer + 0x500).
.macro settrainerflag trainer
.byte 0x61
.2byte \trainer
.endm
- @ Clears Flag (trainer + 0x500). (I didn't make a mistake. The command names actually are backwards.)
+ @ Clears Flag (trainer + 0x500).
.macro cleartrainerflag trainer
.byte 0x62
.2byte \trainer
.endm
- .macro setobjectxyperm word1, word2, word3
+ .macro setobjectxyperm index, x, y
.byte 0x63
- .2byte \word1
- .2byte \word2
- .2byte \word3
+ .2byte \index
+ .2byte \x
+ .2byte \y
.endm
- .macro moveobjectoffscreen word
+ .macro moveobjectoffscreen index
.byte 0x64
- .2byte \word
+ .2byte \index
.endm
.macro setobjectmovementtype word, byte
@@ -720,67 +720,67 @@
.4byte \text
.endm
- @ Holds the current message box open until the player presses a key. The message box is then closed.
+ @ Closes the current message box.
.macro closemessage
.byte 0x68
.endm
- @ Ceases movement for all OWs on-screen.
+ @ Ceases movement for all Objects on-screen.
.macro lockall
.byte 0x69
.endm
- @ If the script was called by a Person event, then that Person's movement will cease.
+ @ If the script was called by an Object, then that Object's movement will cease.
.macro lock
.byte 0x6a
.endm
- @ Resumes normal movement for all OWs on-screen, and closes any standard message boxes that are still open.
+ @ Resumes normal movement for all Objects on-screen, and closes any standard message boxes that are still open.
.macro releaseall
.byte 0x6b
.endm
- @ If the script was called by a Person event, then that Person's movement will resume. This command also closes any standard message boxes that are still open.
+ @ If the script was called by an Object, then that Object's movement will resume. This command also closes any standard message boxes that are still open.
.macro release
.byte 0x6c
.endm
@ Blocks script execution until the player presses any key.
- .macro waitbutton
+ .macro waitbuttonpress
.byte 0x6d
.endm
@ Displays a YES/NO multichoice box at the specified coordinates, and blocks script execution until the user makes a selection. Their selection is stored in variable 0x800D (LASTRESULT); 0x0000 for "NO" or if the user pressed B, and 0x0001 for "YES".
- .macro yesnobox X, Y
+ .macro yesnobox x, y
.byte 0x6e
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.endm
- @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. If B is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
- .macro multichoice X, Y, list, B
+ @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
+ .macro multichoice x, y, list, b
.byte 0x6f
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.byte \list
- .byte \B
+ .byte \b
.endm
- @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. If B is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
- .macro multichoicedefault X, Y, list, default, B
+ @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
+ .macro multichoicedefault x, y, list, default, b
.byte 0x70
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.byte \list
.byte \default
- .byte \B
+ .byte \b
.endm
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The per_row argument determines how many list items will be shown on a single row of the box.
- .macro multichoicegrid X, Y, list, per_row, B
+ .macro multichoicegrid x, y, list, per_row, B
.byte 0x71
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.byte \list
.byte \per_row
.byte \B
@@ -810,20 +810,20 @@
.byte \byte4
.endm
- @ Displays a box containing the front sprite for the specified (species) Pokmon species.
- .macro drawpokepic species, X, Y
+ @ Displays a box containing the front sprite for the specified (species) Pokemon species.
+ .macro drawmonpic species, x, y
.byte 0x75
.2byte \species
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.endm
- @ Hides all boxes displayed with showpokepic.
- .macro erasepokepic
+ @ Hides all boxes displayed with drawmonpic.
+ .macro erasemonpic
.byte 0x76
.endm
- @ In FireRed, this command is a nop. (The argument is discarded.)
+ @ Draws an image of the winner of the contest. In FireRed, this command is a nop. (The argument is discarded.)
.macro drawcontestwinner a
.byte 0x77
.byte \a
@@ -835,8 +835,8 @@
.4byte \text
.endm
- @ Gives the player one of the specified (species) Pokmon at level level holding item. The unknown arguments should all be zeroes.
- .macro givepoke species, level, item, unknown1, unknown2, unknown3
+ @ Gives the player one of the specified (species) Pokemon at level level holding item. The unknown arguments should all be zeroes.
+ .macro givemon species, level, item, unknown1, unknown2, unknown3
.byte 0x79
.2byte \species
.byte \level
@@ -846,81 +846,81 @@
.byte \unknown3
.endm
- .macro giveegg word
+ .macro giveegg species
.byte 0x7a
- .2byte \word
+ .2byte \species
.endm
- .macro setpokemove byte1, byte2, word
+ .macro setmonmove index, slot, move
.byte 0x7b
- .byte \byte1
- .byte \byte2
- .2byte \word
+ .byte \index
+ .byte \slot
+ .2byte \move
.endm
- @ Checks if at least one Pokmon in the player's party knows the specified (index) attack. If so, variable 0x800D (LASTRESULT) is set to the (zero-indexed) slot number of the Pokmon that knows the move. If not, LASTRESULT is set to 0x0006.
- .macro checkpokemove index
+ @ Checks if at least one Pokemon in the player's party knows the specified (index) attack. If so, variable 0x800D (LASTRESULT) is set to the (zero-indexed) slot number of the first Pokemon that knows the move. If not, LASTRESULT is set to 0x0006. Variable 0x8004 is also set to this Pokemon's species.
+ .macro checkpartymove index
.byte 0x7c
.2byte \index
.endm
- @ Writes the name of the Pokmon at index species to the specified buffer.
- .macro getspeciesname out, species
+ @ Writes the name of the Pokemon at index species to the specified buffer.
+ .macro bufferspeciesname out, species
.byte 0x7d
.byte \out
.2byte \species
.endm
- @ Writes the name of the first Pokmon in the player's party to the specified buffer.
- .macro getfirstpartypokename out
+ @ Writes the name of the species of the first Pokemon in the player's party to the specified buffer.
+ .macro bufferleadmonspeciesname out
.byte 0x7e
.byte \out
.endm
- @ Writes the name of the Pokmon in slot slot (zero-indexed) of the player's party to the specified buffer. If an empty or invalid slot is specified, ten spaces ("") are written to the buffer.
- .macro getpartypokename out, slot
+ @ Writes the nickname of the Pokemon in slot slot (zero-indexed) of the player's party to the specified buffer. If an empty or invalid slot is specified, ten spaces ("") are written to the buffer.
+ .macro bufferpartymonnick out, slot
.byte 0x7f
.byte \out
.2byte \slot
.endm
@ Writes the name of the item at index item to the specified buffer. If the specified index is larger than the number of items in the game (0x176), the name of item 0 ("????????") is buffered instead.
- .macro getitemname out, item
+ .macro bufferitemname out, item
.byte 0x80
.byte \out
.2byte \item
.endm
- @ In FireRed, this command is a nop. (The first argument is discarded immediately. The second argument is read, but not used for anything.)
- .macro getdecorname a, b
+ @ Writes the name of the decoration at index decoration to the specified buffer. In FireRed, this command is a nop.
+ .macro bufferdecorationname out, decoration
.byte 0x81
- .byte \a
- .2byte \b
+ .byte \out
+ .2byte \decoration
.endm
- @ Writes the name of the attack at index attack to the specified buffer.
- .macro getmovename out, attack
+ @ Writes the name of the move at index move to the specified buffer.
+ .macro buffermovename out, move
.byte 0x82
.byte \out
- .2byte \attack
+ .2byte \move
.endm
@ Converts the value of input to a decimal string, and writes that string to the specified buffer.
- .macro getnumberstring out, input
+ .macro buffernumberstring out, input
.byte 0x83
.byte \out
.2byte \input
.endm
- @ Writes the standard string identified by index to the specified buffer. Specifying an invalid standard string (e.x. 0x2B) can and usually will cause data corruption (I've observed destruction of the stored player name and crashes when entering/exiting certain menu screens).
- .macro getstdstring out, index
+ @ Writes the standard string identified by index to the specified buffer. This command has no protections in place at all, so specifying an invalid standard string (e.x. 0x2B) can and usually will cause data corruption.
+ .macro bufferstdstring out, index
.byte 0x84
.byte \out
.2byte \index
.endm
@ Copies the string at offset to the specified buffer.
- .macro getstring out, offset
+ .macro bufferstring out, offset
.byte 0x85
.byte \out
.4byte \offset
@@ -932,46 +932,49 @@
.4byte \products
.endm
- @ Apparent clone of pokemart.
- .macro pokemartdecor products
+ @ Opens the Pokemart system and treats the list of items as decorations.
+ .macro pokemartdecoration products
.byte 0x87
.4byte \products
.endm
- @ Apparent clone of pokemart.
- .macro pokemartbp products
+ @ Apparent clone of pokemartdecoration.
+ .macro pokemartdecoration2 products
.byte 0x88
.4byte \products
.endm
+ @ Starts up the slot machine minigame.
.macro playslotmachine word
.byte 0x89
.2byte \word
.endm
- @ In FireRed, this command is a nop.
- .macro plantberrytree byte1, byte2, byte3
+ @ Sets a berry tree's specific berry and growth stage. In FireRed, this command is a nop.
+ .macro setberrytree tree_id, berry, growth_stage
.byte 0x8a
- .byte \byte1, \byte2, \byte3
+ .byte \tree_id
+ .byte \berry
+ .byte \growth_stage
.endm
- @ In FireRed, this command sets the byte at 0x03000EA8 to 0x01. I do not know what that means.
- .macro choosecontestpkmn
+ @ This allows you to choose a Pokemon to use in a contest. In FireRed, this command sets the byte at 0x03000EA8 to 0x01.
+ .macro choosecontestmon
.byte 0x8b
.endm
- @ In FireRed, this command is a nop.
- .macro startcontest
+ @ Starts a contest. In FireRed, this command is a nop.
+ .macro startcontest
.byte 0x8c
.endm
- @ In FireRed, this command is a nop.
- .macro showcontestresults
+ @ Shows the results of a contest. In FireRed, this command is a nop.
+ .macro showcontestresults
.byte 0x8d
.endm
- @ In FireRed, this command is a nop.
- .macro contestlinktransfer
+ @ Starts a contest over a link connection. In FireRed, this command is a nop.
+ .macro contestlinktransfer
.byte 0x8e
.endm
@@ -1003,50 +1006,51 @@
.endm
@ Spawns a secondary box showing how much money the player has.
- .macro showmoneybox X, Y
+ .macro showmoneybox x, y
.byte 0x93
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.endm
@ Hides the secondary box spawned by showmoney.
- .macro hidemoneybox X, Y
+ .macro hidemoneybox x, y
.byte 0x94
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.endm
- @ Updates the secondary box spawned by showmoney. (What does it do with its arguments?)
- .macro updatemoneybox X, Y
+ @ Updates the secondary box spawned by showmoney. Consumes but does not use arguments.
+ .macro updatemoneybox x, y
.byte 0x95
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.endm
- @ In FireRed, this command is a nop.
- .macro getpricereduction word
+ @ Gets the price reduction for the index given. In FireRed, this command is a nop.
+ .macro getpricereduction index
.byte 0x96
- .2byte \word
+ .2byte \index
.endm
- @ Fades the screen to black or back, using the specified effect. Effect 0x00 fades in, and effect 0x01 fades out. I don't know if other effects exist.
+ @ Fades the screen to and from black and white. Mode 0x00 fades from black, mode 0x01 fades out to black, mode 0x2 fades in from white, and mode 0x3 fades out to white.
.macro fadescreen effect
.byte 0x97
.byte \effect
.endm
- .macro fadescreendelay byte1, byte2
+ @ Fades the screen to and from black and white. Mode 0x00 fades from black, mode 0x01 fades out to black, mode 0x2 fades in from white, and mode 0x3 fades out to white. Other modes may exist.
+ .macro fadescreenspeed effect, speed
.byte 0x98
- .byte \byte1
- .byte \byte2
+ .byte \effect
+ .byte \speed
.endm
- .macro setdarklevel word
+ .macro setflashradius word
.byte 0x99
.2byte \word
.endm
- .macro animdarklevel byte
+ .macro animateflash byte
.byte 0x9a
.byte \byte
.endm
@@ -1062,11 +1066,11 @@
.2byte \animation
.endm
- @ Tells the game which party Pokmon to use for the next field move animation.
- .macro setfieldeffect animation, slot
+ @ Sets up the field effect argument argument with the value value.
+ .macro setfieldeffectargument argument, param
.byte 0x9d
- .byte \animation
- .2byte \slot
+ .byte \argument
+ .2byte \param
.endm
@ Blocks script execution until all playing field move animations complete.
@@ -1075,10 +1079,10 @@
.2byte \animation
.endm
- @ Sets which healing place the player will return to if all of the Pokmon in their party faint. A list of available healing places can be found on PokeCommunity.
- .macro sethealplace flightspot
+ @ Sets which healing place the player will return to if all of the Pokemon in their party faint.
+ .macro setrespawn heallocation
.byte 0x9f
- .2byte \flightspot
+ .2byte \heallocation
.endm
@ Checks the player's gender. If male, then 0x0000 is stored in variable 0x800D (LASTRESULT). If female, then 0x0001 is stored in LASTRESULT.
@@ -1086,19 +1090,19 @@
.byte 0xa0
.endm
- @ Plays the specified (species) Pokmon's cry. You can use waitcry to block script execution until the sound finishes.
- .macro playpokecry species, effect
+ @ Plays the specified (species) Pokemon's cry. You can use waitcry to block script execution until the sound finishes.
+ .macro playmoncry species, effect
.byte 0xa1
.2byte \species
.2byte \effect
.endm
- @ Changes the tile at (X, Y) on the current map.
- .macro setmaptile X, Y, tile_number, tile_attrib
+ @ Changes the metatile at (x, y) on the current map.
+ .macro setmetatile x, y, metatile_number, tile_attrib
.byte 0xa2
- .2byte \X
- .2byte \Y
- .2byte \tile_number
+ .2byte \x
+ .2byte \y
+ .2byte \metatile_number
.2byte \tile_attrib
.endm
@@ -1119,78 +1123,76 @@
.endm
@ This command manages cases in which maps have tiles that change state when stepped on (specifically, cracked/breakable floors).
- .macro tileeffect subroutine
+ .macro setstepcallback subroutine
.byte 0xa6
.byte \subroutine
.endm
- .macro setmaplayoutindex word
+ .macro setmaplayoutindex index
.byte 0xa7
- .2byte \word
+ .2byte \index
.endm
- .macro setobjectpriority word, byte1, byte2, byte3
+ .macro setobjectpriority index, map, priority
.byte 0xa8
- .2byte \word
- .byte \byte1
- .byte \byte2
- .byte \byte3
+ .2byte \index
+ map \map
+ .byte \priority
.endm
- .macro resetobjectpriority word, byte1, byte2
+ .macro resetobjectpriority index, map
.byte 0xa9
- .2byte \word
- .byte \byte1
- .byte \byte2
+ .2byte \index
+ map \map
.endm
- .macro createvobject byte1, byte2, word1, word2, byte3, byte4
+ .macro createvobject sprite, byte2, x, y, elevation, direction
.byte 0xaa
- .byte \byte1
+ .byte \sprite
.byte \byte2
- .2byte \word1
- .2byte \word2
- .byte \byte3
- .byte \byte4
+ .2byte \x
+ .2byte \y
+ .byte \elevation
+ .byte \direction
.endm
- .macro turnvobject byte1, byte2
+ .macro turnvobject index, direction
.byte 0xab
- .byte \byte1
- .byte \byte2
+ .byte \index
+ .byte \direction
.endm
- @ Queues the opening of the door tile at (X, Y) with an animation.
- .macro opendoor X, Y
+ @ Opens the door metatile at (X, Y) with an animation.
+ .macro opendoor x, y
.byte 0xac
- .2byte \X
- .2byte \Y
+ .2byte \x
+ .2byte \y
.endm
- @ Queues the closing of the door tile at (X, Y) with an animation.
- .macro closedoor X, Y
+ @ Closes the door metatile at (X, Y) with an animation.
+ .macro closedoor x, y
.byte 0xad
- .2byte \X
- .2byte \Y
+ .2byte \x
+ .2byte \y
.endm
- @ Executes the state changes queued with setdooropened, setdoorclosed, setdooropened2, and setdoorclosed2.
- .macro waitdooranim
+ @ Waits for the door animation started with opendoor or closedoor to finish.
+ .macro waitdooranim
.byte 0xae
.endm
- @ Queues the opening of the door tile at (X, Y) without an animation.
- .macro setdooropen X, Y
+ @ Sets the door tile at (x, y) to be open without an animation.
+ .macro setdooropen x, y
.byte 0xaf
- .2byte \X
- .2byte \Y
+ .2byte \x
+ .2byte \y
.endm
- @ Queues the closing of the door tile at (X, Y) without an animation.
- .macro setdoorclosed X, Y
+ @ Sets the door tile at (x, y) to be closed without an animation.
+ .macro setdoorclosed x, y
.byte 0xb0
- .2byte \X
- .2byte \Y
+ .2byte \x
+ .2byte \y
.endm
@ In FireRed, this command is a nop.
@@ -1198,24 +1200,24 @@
.byte 0xb1
.endm
- @ In FireRed, this command is a nop.
- .macro showelevmenu
+ @ In FireRed and Emerald, this command is a nop.
+ .macro showelevmenu
.byte 0xb2
.endm
- .macro checkcoins word
+ .macro checkcoins out
.byte 0xb3
- .2byte \word
+ .2byte \out
.endm
- .macro givecoins word
+ .macro givecoins count
.byte 0xb4
- .2byte \word
+ .2byte \count
.endm
- .macro takecoins word
+ .macro takecoins count
.byte 0xb5
- .2byte \word
+ .2byte \count
.endm
@ Prepares to start a wild battle against a species at Level level holding item. Running this command will not affect normal wild battles. You start the prepared battle with dowildbattle.
@@ -1226,7 +1228,7 @@
.2byte \item
.endm
- @ Starts a wild battle against the Pokmon generated by setwildbattle. Blocks script execution until the battle finishes.
+ @ Starts a wild battle against the Pokemon generated by setwildbattle. Blocks script execution until the battle finishes.
.macro dowildbattle
.byte 0xb7
.endm
@@ -1264,55 +1266,55 @@
.4byte \pointer
.endm
- .macro vloadword pointer
+ .macro vloadptr pointer
.byte 0xbe
.4byte \pointer
.endm
- .macro vgetstring byte, pointer
+ .macro vbufferstring byte, pointer
.byte 0xbf
.byte \byte
.4byte \pointer
.endm
@ Spawns a secondary box showing how many Coins the player has.
- .macro showcoinsbox X, Y
+ .macro showcoinsbox x, y
.byte 0xc0
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.endm
- @ Hides the secondary box spawned by showcoins. It doesn't appear to use its arguments, but they are still required.
- .macro hidecoinsbox X, Y
+ @ Hides the secondary box spawned by showcoins. It consumes its arguments but doesn't use them.
+ .macro hidecoinsbox x, y
.byte 0xc1
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.endm
- @ Updates the secondary box spawned by showcoins. (What does it do with its arguments?)
- .macro updatecoinsbox X, Y
+ @ Updates the secondary box spawned by showcoins. It consumes its arguments but doesn't use them.
+ .macro updatecoinsbox x, y
.byte 0xc2
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.endm
- @ Increases the value of the specified hidden variable by 1. The hidden variable's value will not be allowed to exceed 0x00FFFFFF.
- .macro incrementgamestat a
+ @ Increases the value of the specified game stat by 1. The stat's value will not be allowed to exceed 0x00FFFFFF.
+ .macro incrementgamestat stat
.byte 0xc3
- .byte \a
+ .byte \stat
.endm
- @ Clone of warp... Except that it doesn't appear to have any effect when used in some of FireRed's default level scripts. (If it did, Berry Forest would be impossible to enter...)
- .macro setescapewarp map, warp, X, Y
+ @ Sets the destination that using an Escape Rope or Dig will take the player to.
+ .macro setescapewarp map, warp, x, y
.byte 0xc4
map \map
.byte \warp
- .2byte \X
- .2byte \Y
+ .2byte \x
+ .2byte \y
.endm
@ Blocks script execution until cry finishes.
- .macro waitpokecry
+ .macro waitmoncry
.byte 0xc5
.endm
@@ -1357,134 +1359,6 @@
.4byte \value
.endm
- @ Makes the Pokmon in the specified slot of the player's party obedient. It will not randomly disobey orders in battle.
- .macro setobedience slot
- .byte 0xcd
- .2byte \slot
- .endm
-
- @ Checks if the Pokmon in the specified slot of the player's party is obedient. If the Pokmon is disobedient, 0x0001 is written to script variable 0x800D (LASTRESULT). If the Pokmon is obedient (or if the specified slot is empty or invalid), 0x0000 is written.
- .macro checkobedience slot
- .byte 0xce
- .2byte \slot
- .endm
-
- @ Depending on factors I haven't managed to understand yet, this command may cause script execution to jump to the offset specified by the pointer at 0x020370A4.
- .macro execram
- .byte 0xcf
- .endm
-
- @ Sets worldmapflag to 1. This allows the player to Fly to the corresponding map, if that map has a flightspot.
- .macro setworldflag worldmapflag
- .byte 0xd0
- .2byte \worldmapflag
- .endm
-
- @ Clone of warpteleport? It is apparently only used in FR/LG, and only with specials.[source]
- .macro warpteleport2 map, warp, X, Y
- .byte 0xd1
- map \map
- .byte \warp
- .2byte \X
- .2byte \Y
- .endm
-
- @ Changes the location where the player caught the Pokmon in the specified slot of their party. A list of valid catch locations can be found on PokeCommunity.
- .macro setcatchlocale slot, location
- .byte 0xd2
- .2byte \slot
- .byte \location
- .endm
-
- .macro event_d3 unknown
- .byte 0xd3
- .2byte \unknown
- .endm
-
- .macro event_d4
- .byte 0xd4
- .endm
-
- @ In FireRed, this command is a nop.
- .macro event_d5 var
- .byte 0xd5
- .2byte \var
- .endm
-
- .macro event_d6
- .byte 0xd6
- .endm
-
- .macro warp7 map, byte, word1, word2
- .byte 0xd7
- map \map
- .byte \byte
- .2byte \word1
- .2byte \word2
- .endm
-
- .macro event_d8
- .byte 0xd8
- .endm
-
- .macro event_d9
- .byte 0xd9
- .endm
-
- .macro hidebox2
- .byte 0xda
- .endm
-
- .macro message3 pointer
- .byte 0xdb
- .4byte \pointer
- .endm
-
- .macro fadescreen3 byte
- .byte 0xdc
- .byte \byte
- .endm
-
- .macro buffertrainerclass byte, word
- .byte 0xdd
- .byte \byte
- .2byte \word
- .endm
-
- .macro buffertrainername byte, word
- .byte 0xde
- .byte \byte
- .2byte \word
- .endm
-
- .macro pokenavcall pointer
- .byte 0xdf
- .4byte \pointer
- .endm
-
- .macro warp8 map, byte, word1, word2
- .byte 0xe0
- map \map
- .byte \byte
- .2byte \word1
- .2byte \word2
- .endm
-
- .macro buffercontesttype byte, word
- .byte 0xe1
- .byte \byte
- .2byte \word
- .endm
-
- @ Writes the name of the specified (item) item to the specified buffer. If the specified item is a Berry (0x85 - 0xAE) or Poke Ball (0x4) and if the quantity is 2 or more, the buffered string will be pluralized ("IES" or "S" appended). If the specified item is the Enigma Berry, I have no idea what this command does (but testing showed no pluralization). If the specified index is larger than the number of items in the game (0x176), the name of item 0 ("????????") is buffered instead.
- .macro storeitems out, item, quantity
- .byte 0xe2
- .byte \out
- .2byte \item
- .2byte \quantity
- .endm
-
-
@ Supplementary
.macro goto_if_eq dest
@@ -1511,13 +1385,13 @@
YES = 1
NO = 0
- .macro giveitem item, amount=1, function=0
+ .macro giveitem_std item, amount=1, function=0
setorcopyvar 0x8000, \item
setorcopyvar 0x8001, \amount
callstd \function
.endm
- .macro givedecoration decoration
+ .macro givedecoration_std decoration
setorcopyvar 0x8000, \decoration
callstd 7
.endm
diff --git a/asm/macros/map.inc b/asm/macros/map.inc
index 41844b5cd..9c68e8414 100644
--- a/asm/macros/map.inc
+++ b/asm/macros/map.inc
@@ -1,38 +1,8 @@
- .macro new_map_group
- inc cur_map_group
- .set cur_map_num, 0
+ .macro map map_id
+ .byte \map_id >> 8 @ map group
+ .byte \map_id & 0xFF @ map num
.endm
- .macro map_group map_name
- .set GROUP_\map_name, cur_map_group
- .set MAP_\map_name, cur_map_num
- inc cur_map_num
- .endm
-
- .macro map map_name
- .byte GROUP_\map_name
- .byte MAP_\map_name
- .endm
-
- .macro warp_map map_name
- .byte MAP_\map_name
- .byte GROUP_\map_name
- .endm
-
- .macro heal_location map_name, x, y
- .byte GROUP_\map_name
- .byte MAP_\map_name
- .2byte \x
- .2byte \y
- .space 2
- .endm
-
- .equiv GROUP_NONE, 0x7f
- .equiv MAP_NONE, 0x7f
-
- .equiv GROUP_UNDEFINED, 0xff
- .equiv MAP_UNDEFINED, 0xff
-
.macro map_script type, address
.byte \type
.4byte \address
@@ -54,10 +24,11 @@
inc _num_npcs
.endm
- .macro warp_def x, y, byte, warp, map
+ .macro warp_def x, y, byte, warp, map_id
.2byte \x, \y
.byte \byte, \warp
- warp_map \map
+ .byte \map_id & 0xFF @ map num
+ .byte \map_id >> 8 @ map group
inc _num_warps
.endm
diff --git a/asm/normal.s b/asm/normal.s
new file mode 100755
index 000000000..2d084dcf1
--- /dev/null
+++ b/asm/normal.s
@@ -0,0 +1,5030 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ @ normal
+
+ thumb_func_start sub_80E1CB4
+sub_80E1CB4: @ 80E1CB4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080E1CEC @ =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]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080E1CF0 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080E1CF4
+ ldrh r0, [r5, 0x6]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ b _080E1D02
+ .align 2, 0
+_080E1CEC: .4byte gBattleAnimArgs
+_080E1CF0: .4byte gBattleAnimBankAttacker
+_080E1CF4:
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x36]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080E1D02:
+ ldr r0, _080E1D18 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x8]
+ strh r0, [r4, 0x34]
+ ldr r1, _080E1D1C @ =sub_80E1D20
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1D18: .4byte gBattleAnimArgs
+_080E1D1C: .4byte sub_80E1D20
+ thumb_func_end sub_80E1CB4
+
+ thumb_func_start sub_80E1D20
+sub_80E1D20: @ 80E1D20
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1E
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r1, 0xA
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ cmp r0, 0x7F
+ bhi _080E1D52
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ b _080E1D5A
+_080E1D52:
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xC
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+_080E1D5A:
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x2E]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080E1D7E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080E1D7E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E1D20
+
+ thumb_func_start sub_80E1D84
+sub_80E1D84: @ 80E1D84
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r4, _080E1DBC @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl sub_80E1DC4
+ movs r1, 0x2
+ ldrsb r1, [r4, r1]
+ ldrb r2, [r4, 0x4]
+ ldrb r3, [r4, 0x6]
+ ldrh r4, [r4, 0x8]
+ str r4, [sp]
+ bl BeginNormalPaletteFade
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080E1DC0 @ =sub_80E1E0C
+ str r0, [r5, 0x1C]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1DBC: .4byte gBattleAnimArgs
+_080E1DC0: .4byte sub_80E1E0C
+ thumb_func_end sub_80E1D84
+
+ thumb_func_start sub_80E1DC4
+sub_80E1DC4: @ 80E1DC4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ lsls r0, 16
+ lsrs r0, 16
+ movs r4, 0x1
+ mov r8, r0
+ mov r1, r8
+ ands r1, r4
+ mov r8, r1
+ lsls r0, 16
+ asrs r1, r0, 17
+ ands r1, r4
+ asrs r2, r0, 18
+ ands r2, r4
+ asrs r3, r0, 19
+ ands r3, r4
+ asrs r6, r0, 20
+ ands r6, r4
+ asrs r5, r0, 21
+ ands r5, r4
+ asrs r0, 22
+ ands r0, r4
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ bl sub_80791A8
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E1DC4
+
+ thumb_func_start sub_80E1E0C
+sub_80E1E0C: @ 80E1E0C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080E1E28 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E1E22
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080E1E22:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1E28: .4byte gPaletteFade
+ thumb_func_end sub_80E1E0C
+
+ thumb_func_start sub_80E1E2C
+sub_80E1E2C: @ 80E1E2C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080E1E78 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x2E]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x36]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r5, 0x3A]
+ ldrh r0, [r4]
+ strh r0, [r5, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ bl sub_80E1DC4
+ ldrb r1, [r4, 0x8]
+ ldrh r2, [r4, 0x6]
+ bl BlendPalettes
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080E1E7C @ =sub_80E1E80
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1E78: .4byte gBattleAnimArgs
+_080E1E7C: .4byte sub_80E1E80
+ thumb_func_end sub_80E1E2C
+
+ thumb_func_start sub_80E1E80
+sub_80E1E80: @ 80E1E80
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080E1E94
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _080E1F04
+_080E1E94:
+ ldr r0, _080E1EB0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E1F04
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E1EB8
+ ldr r0, _080E1EB4 @ =sub_80E1F0C
+ str r0, [r4, 0x1C]
+ b _080E1F04
+ .align 2, 0
+_080E1EB0: .4byte gPaletteFade
+_080E1EB4: .4byte sub_80E1F0C
+_080E1EB8:
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ bl sub_80E1DC4
+ adds r3, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E1EDE
+ ldrh r1, [r4, 0x36]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x34]
+ adds r0, r3, 0
+ bl BlendPalettes
+ b _080E1EEC
+_080E1EDE:
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x38]
+ adds r0, r3, 0
+ bl BlendPalettes
+_080E1EEC:
+ ldrh r0, [r4, 0x30]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ eors r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x1
+ strh r0, [r4, 0x32]
+_080E1F04:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E1E80
+
+ thumb_func_start sub_80E1F0C
+sub_80E1F0C: @ 80E1F0C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080E1F38 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E1F32
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ bl sub_80E1DC4
+ movs r1, 0
+ movs r2, 0
+ bl BlendPalettes
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080E1F32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1F38: .4byte gPaletteFade
+ thumb_func_end sub_80E1F0C
+
+ thumb_func_start sub_80E1F3C
+sub_80E1F3C: @ 80E1F3C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080E1F80 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ movs r2, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r2, [r4, 0x2E]
+ movs r0, 0xA
+ strh r0, [r4, 0x30]
+ movs r0, 0x8
+ strh r0, [r4, 0x32]
+ movs r0, 0x28
+ strh r0, [r4, 0x34]
+ movs r0, 0x70
+ strh r0, [r4, 0x36]
+ strh r2, [r4, 0x38]
+ ldr r1, _080E1F84 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ ldr r1, _080E1F88 @ =sub_8078174
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1F80: .4byte gBattleAnimArgs
+_080E1F84: .4byte move_anim_8074EE0
+_080E1F88: .4byte sub_8078174
+ thumb_func_end sub_80E1F3C
+
+ thumb_func_start sub_80E1F8C
+sub_80E1F8C: @ 80E1F8C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E1FD0 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r3, _080E1FD4 @ =gBattleAnimArgs
+ ldrh r1, [r3]
+ movs r5, 0
+ strh r1, [r4, 0x8]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r4, 0xA]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r4, 0xC]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r4, 0xE]
+ ldrh r2, [r3, 0x8]
+ strh r2, [r4, 0x10]
+ ldrh r1, [r3, 0xA]
+ strh r1, [r4, 0x12]
+ strh r5, [r4, 0x18]
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0
+ bl sub_80E1FDC
+ ldr r0, _080E1FD8 @ =sub_80E202C
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1FD0: .4byte gTasks
+_080E1FD4: .4byte gBattleAnimArgs
+_080E1FD8: .4byte sub_80E202C
+ thumb_func_end sub_80E1F8C
+
+ thumb_func_start sub_80E1FDC
+sub_80E1FDC: @ 80E1FDC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r1, _080E2028 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ bl sub_80E1DC4
+ movs r1, 0xA
+ ldrsb r1, [r4, r1]
+ ldrh r2, [r4, 0x12]
+ str r2, [sp]
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x18]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x18]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2028: .4byte gTasks
+ thumb_func_end sub_80E1FDC
+
+ thumb_func_start sub_80E202C
+sub_80E202C: @ 80E202C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ ldr r0, _080E2064 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E208E
+ ldr r1, _080E2068 @ =gTasks
+ lsls r2, r3, 2
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r5, 0xC
+ ldrsh r0, [r3, r5]
+ adds r6, r1, 0
+ adds r5, r2, 0
+ cmp r0, 0
+ ble _080E2088
+ movs r1, 0x18
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080E206C
+ ldrb r1, [r3, 0xE]
+ ldrb r2, [r3, 0x10]
+ b _080E2070
+ .align 2, 0
+_080E2064: .4byte gPaletteFade
+_080E2068: .4byte gTasks
+_080E206C:
+ ldrb r1, [r3, 0x10]
+ ldrb r2, [r3, 0xE]
+_080E2070:
+ adds r0, r5, r4
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x1
+ bne _080E2080
+ movs r2, 0
+_080E2080:
+ adds r0, r4, 0
+ bl sub_80E1FDC
+ b _080E208E
+_080E2088:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080E208E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E202C
+
+ thumb_func_start sub_80E2094
+sub_80E2094: @ 80E2094
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E20D8 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r3, _080E20DC @ =gBattleAnimArgs
+ ldrh r1, [r3]
+ movs r5, 0
+ strh r1, [r4, 0x8]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r4, 0xA]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r4, 0xC]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r4, 0xE]
+ ldrh r2, [r3, 0x8]
+ strh r2, [r4, 0x10]
+ ldrh r1, [r3, 0xA]
+ strh r1, [r4, 0x12]
+ strh r5, [r4, 0x18]
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0
+ bl sub_80E20E4
+ ldr r0, _080E20E0 @ =sub_80E2140
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E20D8: .4byte gTasks
+_080E20DC: .4byte gBattleAnimArgs
+_080E20E0: .4byte sub_80E2140
+ thumb_func_end sub_80E2094
+
+ thumb_func_start sub_80E20E4
+sub_80E20E4: @ 80E20E4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r1, _080E213C @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrh r0, [r4, 0x8]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r2, 0x1
+ lsls r2, r0
+ movs r1, 0xA
+ ldrsb r1, [r4, r1]
+ ldrh r0, [r4, 0x12]
+ str r0, [sp]
+ adds r0, r2, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x18]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x18]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E213C: .4byte gTasks
+ thumb_func_end sub_80E20E4
+
+ thumb_func_start sub_80E2140
+sub_80E2140: @ 80E2140
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ ldr r0, _080E2178 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E21A2
+ ldr r1, _080E217C @ =gTasks
+ lsls r2, r3, 2
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r5, 0xC
+ ldrsh r0, [r3, r5]
+ adds r6, r1, 0
+ adds r5, r2, 0
+ cmp r0, 0
+ ble _080E219C
+ movs r1, 0x18
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080E2180
+ ldrb r1, [r3, 0xE]
+ ldrb r2, [r3, 0x10]
+ b _080E2184
+ .align 2, 0
+_080E2178: .4byte gPaletteFade
+_080E217C: .4byte gTasks
+_080E2180:
+ ldrb r1, [r3, 0x10]
+ ldrb r2, [r3, 0xE]
+_080E2184:
+ adds r0, r5, r4
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x1
+ bne _080E2194
+ movs r2, 0
+_080E2194:
+ adds r0, r4, 0
+ bl sub_80E20E4
+ b _080E21A2
+_080E219C:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080E21A2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E2140
+
+ thumb_func_start sub_80E21A8
+sub_80E21A8: @ 80E21A8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E2208 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r5, _080E220C @ =gBattleAnimArgs
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0xA]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x10]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x12]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r5]
+ strh r0, [r4, 0x16]
+ ldrh r0, [r5]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ ldrb r3, [r5, 0x8]
+ ldrh r0, [r5, 0x6]
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080E2210 @ =sub_80E2214
+ str r0, [r4]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2208: .4byte gTasks
+_080E220C: .4byte gBattleAnimArgs
+_080E2210: .4byte sub_80E2214
+ thumb_func_end sub_80E21A8
+
+ thumb_func_start sub_80E2214
+sub_80E2214: @ 80E2214
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080E2238 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080E223C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x8]
+ b _080E22C0
+ .align 2, 0
+_080E2238: .4byte gTasks
+_080E223C:
+ ldr r0, _080E2258 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E22C0
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080E2260
+ ldr r0, _080E225C @ =sub_80E22CC
+ str r0, [r4]
+ b _080E22C0
+ .align 2, 0
+_080E2258: .4byte gPaletteFade
+_080E225C: .4byte sub_80E22CC
+_080E2260:
+ ldrh r0, [r4, 0x16]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r2, 0x1
+ lsls r2, r0
+ ldrh r1, [r4, 0xA]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E228E
+ ldrb r3, [r4, 0x10]
+ ldrh r0, [r4, 0xE]
+ str r0, [sp]
+ adds r0, r2, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl BeginNormalPaletteFade
+ b _080E229E
+_080E228E:
+ ldrb r3, [r4, 0x14]
+ ldrh r0, [r4, 0x12]
+ str r0, [sp]
+ adds r0, r2, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl BeginNormalPaletteFade
+_080E229E:
+ ldr r0, _080E22C8 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r2, r3, 0
+ eors r0, r2
+ strh r0, [r1, 0xA]
+ movs r2, 0xFF
+ ands r0, r2
+ strh r0, [r1, 0x8]
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+_080E22C0:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E22C8: .4byte gTasks
+ thumb_func_end sub_80E2214
+
+ thumb_func_start sub_80E22CC
+sub_80E22CC: @ 80E22CC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E231C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080E2312
+ ldr r1, _080E2320 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x16]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ str r5, [sp]
+ adds r0, r1, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080E2312:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E231C: .4byte gPaletteFade
+_080E2320: .4byte gTasks
+ thumb_func_end sub_80E22CC
+
+ thumb_func_start sub_80E2324
+sub_80E2324: @ 80E2324
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r2, 0
+ ldr r0, _080E239C @ =gBattleAnimBankAttacker
+ ldrb r6, [r0]
+ ldr r0, _080E23A0 @ =gBattleAnimBankTarget
+ ldrb r7, [r0]
+ ldr r4, _080E23A4 @ =gBattleAnimArgs
+ ldrh r1, [r4]
+ movs r5, 0x80
+ lsls r5, 1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E235E
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ str r2, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r2, r0, 0
+_080E235E:
+ ldrh r1, [r4, 0x2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E2370
+ movs r0, 0x80
+ lsls r0, 9
+ lsls r0, r6
+ orrs r2, r0
+_080E2370:
+ ldrh r1, [r4, 0x4]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E2382
+ movs r0, 0x80
+ lsls r0, 9
+ lsls r0, r7
+ orrs r2, r0
+_080E2382:
+ adds r0, r2, 0
+ bl InvertPlttBuffer
+ mov r0, r8
+ bl DestroyAnimVisualTask
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E239C: .4byte gBattleAnimBankAttacker
+_080E23A0: .4byte gBattleAnimBankTarget
+_080E23A4: .4byte gBattleAnimArgs
+ thumb_func_end sub_80E2324
+
+ thumb_func_start unref_sub_80E23A8
+unref_sub_80E23A8: @ 80E23A8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r5, 0
+ ldr r1, _080E249C @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E23EA
+ ldr r1, _080E24A0 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x10]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0xA]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x12]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r4, 0x16]
+_080E23EA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, _080E24A4 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ mov r9, r0
+ ldr r0, _080E24A8 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ mov r10, r0
+ ldrh r1, [r4, 0xC]
+ movs r7, 0x80
+ lsls r7, 1
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E240C
+ ldr r5, _080E24AC @ =0x0000ffff
+_080E240C:
+ movs r6, 0x1
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E243C
+ ldr r2, _080E24B0 @ =gSprites
+ ldr r0, _080E24B4 @ =gHealthboxIDs
+ add r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x14
+ adds r0, r2
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r6, 0
+ lsls r1, r0
+ lsls r1, 16
+ orrs r5, r1
+_080E243C:
+ ldrh r1, [r4, 0xE]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E2450
+ adds r0, r6, 0
+ mov r2, r9
+ lsls r0, r2
+ lsls r0, 16
+ orrs r5, r0
+_080E2450:
+ ldrh r1, [r4, 0x10]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E2464
+ adds r0, r6, 0
+ mov r1, r10
+ lsls r0, r1
+ lsls r0, 16
+ orrs r5, r0
+_080E2464:
+ movs r1, 0x12
+ ldrsb r1, [r4, r1]
+ movs r2, 0x14
+ ldrsb r2, [r4, r2]
+ movs r3, 0x16
+ ldrsb r3, [r4, r3]
+ adds r0, r5, 0
+ bl TintPlttBuffer
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080E248E
+ adds r0, r5, 0
+ bl UnfadePlttBuffer
+ mov r0, r8
+ bl DestroyAnimVisualTask
+_080E248E:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E249C: .4byte gTasks
+_080E24A0: .4byte gBattleAnimArgs
+_080E24A4: .4byte gBattleAnimBankAttacker
+_080E24A8: .4byte gBattleAnimBankTarget
+_080E24AC: .4byte 0x0000ffff
+_080E24B0: .4byte gSprites
+_080E24B4: .4byte gHealthboxIDs
+ thumb_func_end unref_sub_80E23A8
+
+ thumb_func_start sub_80E24B8
+sub_80E24B8: @ 80E24B8
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080E24EC @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x34]
+ movs r2, 0x6
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _080E2500
+ cmp r0, 0x1
+ bgt _080E24F0
+ cmp r0, 0
+ beq _080E24F6
+ b _080E2518
+ .align 2, 0
+_080E24EC: .4byte gBattleAnimArgs
+_080E24F0:
+ cmp r0, 0x2
+ beq _080E2508
+ b _080E2518
+_080E24F6:
+ ldr r1, _080E24FC @ =gUnknown_030041B0
+ b _080E250A
+ .align 2, 0
+_080E24FC: .4byte gUnknown_030041B0
+_080E2500:
+ ldr r1, _080E2504 @ =gUnknown_030041B8
+ b _080E250A
+ .align 2, 0
+_080E2504: .4byte gUnknown_030041B8
+_080E2508:
+ ldr r1, _080E2514 @ =gSpriteCoordOffsetX
+_080E250A:
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ b _080E2520
+ .align 2, 0
+_080E2514: .4byte gSpriteCoordOffsetX
+_080E2518:
+ ldr r1, _080E2550 @ =gSpriteCoordOffsetY
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+_080E2520:
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ lsls r0, 16
+ orrs r1, r0
+ ldr r0, [r1]
+ strh r0, [r4, 0x36]
+ ldr r0, _080E2554 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x6]
+ strh r0, [r4, 0x38]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080E2544
+ bl sub_80E260C
+_080E2544:
+ ldr r0, _080E2558 @ =sub_80E255C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2550: .4byte gSpriteCoordOffsetY
+_080E2554: .4byte gBattleAnimArgs
+_080E2558: .4byte sub_80E255C
+ thumb_func_end sub_80E24B8
+
+ thumb_func_start sub_80E255C
+sub_80E255C: @ 80E255C
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _080E25A0
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x34]
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _080E257E
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ b _080E25FA
+_080E257E:
+ ldrh r0, [r3, 0x32]
+ strh r0, [r3, 0x30]
+ movs r0, 0x3A
+ ldrsh r1, [r3, r0]
+ movs r2, 0x3C
+ ldrsh r0, [r3, r2]
+ lsls r0, 16
+ orrs r1, r0
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ ldr r0, [r1]
+ adds r0, r2
+ str r0, [r1]
+ ldrh r0, [r3, 0x2E]
+ negs r0, r0
+ strh r0, [r3, 0x2E]
+ b _080E25FA
+_080E25A0:
+ movs r2, 0x3A
+ ldrsh r1, [r3, r2]
+ movs r2, 0x3C
+ ldrsh r0, [r3, r2]
+ lsls r0, 16
+ orrs r1, r0
+ movs r2, 0x36
+ ldrsh r0, [r3, r2]
+ str r0, [r1]
+ ldrh r0, [r3, 0x38]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080E25F4
+ movs r4, 0
+ ldr r5, _080E2600 @ =gNoOfAllBanks
+ ldrb r0, [r5]
+ cmp r4, r0
+ bcs _080E25F4
+ ldr r2, _080E2604 @ =gSprites
+ mov r12, r2
+ ldr r6, _080E2608 @ =gObjectBankIDs
+ movs r7, 0x3
+ negs r7, r7
+_080E25D2:
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r12
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r5]
+ cmp r4, r0
+ bcc _080E25D2
+_080E25F4:
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080E25FA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2600: .4byte gNoOfAllBanks
+_080E2604: .4byte gSprites
+_080E2608: .4byte gObjectBankIDs
+ thumb_func_end sub_80E255C
+
+ thumb_func_start sub_80E260C
+sub_80E260C: @ 80E260C
+ push {r4-r6,lr}
+ ldr r6, _080E2680 @ =gSprites
+ ldr r4, _080E2684 @ =gObjectBankIDs
+ ldr r5, _080E2688 @ =gBattleAnimBankAttacker
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x3
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r3, _080E268C @ =gBattleAnimBankTarget
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ ldr r0, _080E2690 @ =gBattleAnimArgs
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x2
+ bne _080E2694
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ b _080E26B0
+ .align 2, 0
+_080E2680: .4byte gSprites
+_080E2684: .4byte gObjectBankIDs
+_080E2688: .4byte gBattleAnimBankAttacker
+_080E268C: .4byte gBattleAnimBankTarget
+_080E2690: .4byte gBattleAnimArgs
+_080E2694:
+ cmp r0, 0
+ bne _080E269C
+ ldrb r0, [r5]
+ b _080E269E
+_080E269C:
+ ldrb r0, [r3]
+_080E269E:
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x2
+_080E26B0:
+ orrs r1, r2
+ strb r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E260C
+
+ thumb_func_start sub_80E26BC
+sub_80E26BC: @ 80E26BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E26FC @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r1
+ ldr r3, _080E2700 @ =gBattleAnimArgs
+ ldrh r1, [r3]
+ strh r1, [r2, 0x8]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r2, 0xA]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0xC]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0xE]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0x18]
+ ldr r4, _080E2704 @ =gUnknown_030041B0
+ ldrh r1, [r3]
+ strh r1, [r4]
+ ldr r4, _080E2708 @ =gUnknown_030041B8
+ ldrh r1, [r3, 0x2]
+ strh r1, [r4]
+ ldr r1, _080E270C @ =sub_80E2710
+ str r1, [r2]
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E26FC: .4byte gTasks
+_080E2700: .4byte gBattleAnimArgs
+_080E2704: .4byte gUnknown_030041B0
+_080E2708: .4byte gUnknown_030041B8
+_080E270C: .4byte sub_80E2710
+ thumb_func_end sub_80E26BC
+
+ thumb_func_start sub_80E2710
+sub_80E2710: @ 80E2710
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080E2740 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r2, [r3, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r3, r4]
+ mov r12, r1
+ cmp r0, 0
+ bne _080E2796
+ ldr r0, _080E2744 @ =gUnknown_030041B0
+ ldrh r2, [r0]
+ movs r7, 0x8
+ ldrsh r1, [r3, r7]
+ adds r6, r0, 0
+ cmp r2, r1
+ bne _080E2748
+ ldrh r0, [r3, 0x8]
+ negs r0, r0
+ b _080E274A
+ .align 2, 0
+_080E2740: .4byte gTasks
+_080E2744: .4byte gUnknown_030041B0
+_080E2748:
+ ldrh r0, [r3, 0x8]
+_080E274A:
+ strh r0, [r6]
+ ldr r2, _080E2768 @ =gUnknown_030041B8
+ ldrh r3, [r2]
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ mov r7, r12
+ adds r4, r0, r7
+ movs r7, 0xA
+ ldrsh r0, [r4, r7]
+ cmn r3, r0
+ bne _080E276C
+ movs r0, 0
+ b _080E2770
+ .align 2, 0
+_080E2768: .4byte gUnknown_030041B8
+_080E276C:
+ ldrh r0, [r4, 0xA]
+ negs r0, r0
+_080E2770:
+ strh r0, [r2]
+ adds r0, r1, r5
+ lsls r0, 3
+ add r0, r12
+ ldrh r1, [r0, 0x18]
+ strh r1, [r0, 0xE]
+ ldrh r1, [r0, 0xC]
+ subs r1, 0x1
+ strh r1, [r0, 0xC]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0
+ bne _080E279A
+ strh r1, [r6]
+ strh r1, [r2]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ b _080E279A
+_080E2796:
+ subs r0, r2, 0x1
+ strh r0, [r3, 0xE]
+_080E279A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E2710
+
+ thumb_func_start sub_80E27A0
+sub_80E27A0: @ 80E27A0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080E27C0 @ =gBattleAnimArgs
+ ldrb r1, [r4, 0x6]
+ bl StartSpriteAffineAnim
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E27C4
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080E27CC
+ .align 2, 0
+_080E27C0: .4byte gBattleAnimArgs
+_080E27C4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080E27CC:
+ ldr r0, _080E27E0 @ =sub_80785E4
+ str r0, [r5, 0x1C]
+ ldr r1, _080E27E4 @ =move_anim_8072740
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E27E0: .4byte sub_80785E4
+_080E27E4: .4byte move_anim_8072740
+ thumb_func_end sub_80E27A0
+
+ thumb_func_start sub_80E27E8
+sub_80E27E8: @ 80E27E8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080E2808 @ =gBattleAnimArgs
+ ldrb r1, [r4, 0x6]
+ bl StartSpriteAffineAnim
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E280C
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080E2814
+ .align 2, 0
+_080E2808: .4byte gBattleAnimArgs
+_080E280C:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080E2814:
+ ldr r0, _080E282C @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x8]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080E2830 @ =sub_80785E4
+ str r0, [r5, 0x1C]
+ ldr r1, _080E2834 @ =sub_80DA48C
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E282C: .4byte gBattleAnimArgs
+_080E2830: .4byte sub_80785E4
+_080E2834: .4byte sub_80DA48C
+ thumb_func_end sub_80E27E8
+
+ thumb_func_start sub_80E2838
+sub_80E2838: @ 80E2838
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080E2868 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E285C
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E285C
+ ldr r1, _080E286C @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080E285C:
+ adds r0, r4, 0
+ bl sub_80E27A0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2868: .4byte gBattleAnimBankAttacker
+_080E286C: .4byte gBattleAnimArgs
+ thumb_func_end sub_80E2838
+
+ thumb_func_start sub_80E2870
+sub_80E2870: @ 80E2870
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080E28A8 @ =gBattleAnimArgs
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080E288C
+ bl Random
+ movs r1, 0x3
+ ands r1, r0
+ strh r1, [r5, 0x2]
+_080E288C:
+ ldrb r1, [r5, 0x2]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080E28AC
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080E28B4
+ .align 2, 0
+_080E28A8: .4byte gBattleAnimArgs
+_080E28AC:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+_080E28B4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x30
+ bl __umodsi3
+ ldr r1, _080E28F8 @ =0x0000ffe8
+ adds r0, r1
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x18
+ bl __umodsi3
+ ldr r1, _080E28FC @ =0x0000fff4
+ adds r0, r1
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldr r1, _080E2900 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ ldr r0, _080E2904 @ =sub_80785E4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E28F8: .4byte 0x0000ffe8
+_080E28FC: .4byte 0x0000fff4
+_080E2900: .4byte move_anim_8074EE0
+_080E2904: .4byte sub_80785E4
+ thumb_func_end sub_80E2870
+
+ thumb_func_start sub_80E2908
+sub_80E2908: @ 80E2908
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080E2968 @ =gBattleAnimArgs
+ ldrb r0, [r5]
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x2E]
+ ldr r2, _080E296C @ =gSprites
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ ldrh r0, [r0, 0x20]
+ adds r1, r0
+ strh r1, [r4, 0x20]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ strh r1, [r4, 0x22]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x24]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x26]
+ ldrb r1, [r5, 0x6]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ ldr r1, _080E2970 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ ldr r0, _080E2974 @ =sub_80785E4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2968: .4byte gBattleAnimArgs
+_080E296C: .4byte gSprites
+_080E2970: .4byte move_anim_8074EE0
+_080E2974: .4byte sub_80785E4
+ thumb_func_end sub_80E2908
+
+ thumb_func_start sub_80E2978
+sub_80E2978: @ 80E2978
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080E2990 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E2994
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080E299C
+ .align 2, 0
+_080E2990: .4byte gBattleAnimArgs
+_080E2994:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080E299C:
+ ldr r0, _080E29B4 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x6]
+ strh r0, [r4, 0x2E]
+ ldr r1, _080E29B8 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ ldr r0, _080E29BC @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E29B4: .4byte gBattleAnimArgs
+_080E29B8: .4byte move_anim_8072740
+_080E29BC: .4byte sub_80782D8
+ thumb_func_end sub_80E2978
+
+ thumb_func_start sub_80E29C0
+sub_80E29C0: @ 80E29C0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080E29E0 @ =gBattleAnimArgs
+ ldrb r1, [r4, 0x6]
+ bl StartSpriteAffineAnim
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E29E4
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080E29EC
+ .align 2, 0
+_080E29E0: .4byte gBattleAnimArgs
+_080E29E4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080E29EC:
+ ldr r0, _080E29F8 @ =sub_80E29FC
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E29F8: .4byte sub_80E29FC
+ thumb_func_end sub_80E29C0
+
+ thumb_func_start sub_80E29FC
+sub_80E29FC: @ 80E29FC
+ push {lr}
+ adds r3, r0, 0
+ 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, 0x2E]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080E2A32
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080E2A32:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E29FC
+
+ thumb_func_start sub_80E2A38
+sub_80E2A38: @ 80E2A38
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _080E2A78 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl sub_80E1DC4
+ adds r6, r0, 0
+ ldrh r3, [r4]
+ lsls r3, 16
+ asrs r0, r3, 23
+ movs r4, 0x1
+ ands r0, r4
+ asrs r1, r3, 24
+ ands r1, r4
+ asrs r2, r3, 25
+ ands r2, r4
+ asrs r3, 26
+ ands r3, r4
+ bl sub_80792C0
+ orrs r6, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80E2C8C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2A78: .4byte gBattleAnimArgs
+ thumb_func_end sub_80E2A38
+
+ thumb_func_start sub_80E2A7C
+sub_80E2A7C: @ 80E2A7C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1, 0x1]
+ movs r0, 0x1
+ bl sub_80E1DC4
+ adds r5, r0, 0
+ ldr r0, _080E2AA8 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x7
+ bhi _080E2B26
+ lsls r0, 2
+ ldr r1, _080E2AAC @ =_080E2AB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E2AA8: .4byte gBattleAnimArgs
+_080E2AAC: .4byte _080E2AB0
+ .align 2, 0
+_080E2AB0:
+ .4byte _080E2AD2
+ .4byte _080E2ADE
+ .4byte _080E2AD0
+ .4byte _080E2ADC
+ .4byte _080E2AEC
+ .4byte _080E2B04
+ .4byte _080E2B0C
+ .4byte _080E2B18
+_080E2AD0:
+ movs r5, 0
+_080E2AD2:
+ mov r0, sp
+ ldr r1, _080E2AD8 @ =gBattleAnimBankAttacker
+ b _080E2AE2
+ .align 2, 0
+_080E2AD8: .4byte gBattleAnimBankAttacker
+_080E2ADC:
+ movs r5, 0
+_080E2ADE:
+ mov r0, sp
+ ldr r1, _080E2AE8 @ =gBattleAnimBankTarget
+_080E2AE2:
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _080E2B26
+ .align 2, 0
+_080E2AE8: .4byte gBattleAnimBankTarget
+_080E2AEC:
+ mov r1, sp
+ ldr r0, _080E2AFC @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _080E2B00 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ strb r0, [r1, 0x1]
+ b _080E2B26
+ .align 2, 0
+_080E2AFC: .4byte gBattleAnimBankAttacker
+_080E2B00: .4byte gBattleAnimBankTarget
+_080E2B04:
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _080E2B26
+_080E2B0C:
+ movs r5, 0
+ mov r2, sp
+ ldr r0, _080E2B14 @ =gBattleAnimBankAttacker
+ b _080E2B1E
+ .align 2, 0
+_080E2B14: .4byte gBattleAnimBankAttacker
+_080E2B18:
+ movs r5, 0
+ mov r2, sp
+ ldr r0, _080E2B70 @ =gBattleAnimBankTarget
+_080E2B1E:
+ ldrb r0, [r0]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r2]
+_080E2B26:
+ movs r4, 0
+ mov r6, sp
+_080E2B2A:
+ ldrb r0, [r6]
+ cmp r4, r0
+ beq _080E2B54
+ ldrb r0, [r6, 0x1]
+ cmp r4, r0
+ beq _080E2B54
+ adds r0, r4, 0
+ bl IsAnimBankSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E2B54
+ adds r0, r4, 0
+ bl sub_80793A8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ orrs r5, r1
+_080E2B54:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080E2B2A
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_80E2C8C
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2B70: .4byte gBattleAnimBankTarget
+ thumb_func_end sub_80E2A7C
+
+ thumb_func_start sub_80E2B74
+sub_80E2B74: @ 80E2B74
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E2B98 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_80E1DC4
+ adds r2, r0, 0
+ ldr r0, _080E2B9C @ =gBattleTerrain
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bhi _080E2C4A
+ lsls r0, 2
+ ldr r1, _080E2BA0 @ =_080E2BA4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E2B98: .4byte gBattleAnimArgs
+_080E2B9C: .4byte gBattleTerrain
+_080E2BA0: .4byte _080E2BA4
+ .align 2, 0
+_080E2BA4:
+ .4byte _080E2BCC
+ .4byte _080E2BDC
+ .4byte _080E2BE8
+ .4byte _080E2BF8
+ .4byte _080E2C04
+ .4byte _080E2C14
+ .4byte _080E2C24
+ .4byte _080E2C34
+ .4byte _080E2C44
+ .4byte _080E2C44
+_080E2BCC:
+ ldr r1, _080E2BD4 @ =gBattleAnimArgs
+ ldr r0, _080E2BD8 @ =0x00000b0c
+ b _080E2C48
+ .align 2, 0
+_080E2BD4: .4byte gBattleAnimArgs
+_080E2BD8: .4byte 0x00000b0c
+_080E2BDC:
+ ldr r1, _080E2BE4 @ =gBattleAnimArgs
+ movs r0, 0x9E
+ lsls r0, 4
+ b _080E2C48
+ .align 2, 0
+_080E2BE4: .4byte gBattleAnimArgs
+_080E2BE8:
+ ldr r1, _080E2BF0 @ =gBattleAnimArgs
+ ldr r0, _080E2BF4 @ =0x00002f1e
+ b _080E2C48
+ .align 2, 0
+_080E2BF0: .4byte gBattleAnimArgs
+_080E2BF4: .4byte 0x00002f1e
+_080E2BF8:
+ ldr r1, _080E2C00 @ =gBattleAnimArgs
+ movs r0, 0x90
+ lsls r0, 7
+ b _080E2C48
+ .align 2, 0
+_080E2C00: .4byte gBattleAnimArgs
+_080E2C04:
+ ldr r1, _080E2C0C @ =gBattleAnimArgs
+ ldr r0, _080E2C10 @ =0x00007ecb
+ b _080E2C48
+ .align 2, 0
+_080E2C0C: .4byte gBattleAnimArgs
+_080E2C10: .4byte 0x00007ecb
+_080E2C14:
+ ldr r1, _080E2C1C @ =gBattleAnimArgs
+ ldr r0, _080E2C20 @ =0x00007ecb
+ b _080E2C48
+ .align 2, 0
+_080E2C1C: .4byte gBattleAnimArgs
+_080E2C20: .4byte 0x00007ecb
+_080E2C24:
+ ldr r1, _080E2C2C @ =gBattleAnimArgs
+ ldr r0, _080E2C30 @ =0x00002a16
+ b _080E2C48
+ .align 2, 0
+_080E2C2C: .4byte gBattleAnimArgs
+_080E2C30: .4byte 0x00002a16
+_080E2C34:
+ ldr r1, _080E2C3C @ =gBattleAnimArgs
+ ldr r0, _080E2C40 @ =0x00000d2e
+ b _080E2C48
+ .align 2, 0
+_080E2C3C: .4byte gBattleAnimArgs
+_080E2C40: .4byte 0x00000d2e
+_080E2C44:
+ ldr r1, _080E2C58 @ =gBattleAnimArgs
+ ldr r0, _080E2C5C @ =0x00007fff
+_080E2C48:
+ strh r0, [r1, 0x8]
+_080E2C4A:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80E2C8C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2C58: .4byte gBattleAnimArgs
+_080E2C5C: .4byte 0x00007fff
+ thumb_func_end sub_80E2B74
+
+ thumb_func_start sub_80E2C60
+sub_80E2C60: @ 80E2C60
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080E2C88 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ adds r0, r4, 0
+ bl sub_80E2C8C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2C88: .4byte gBattleAnimArgs
+ thumb_func_end sub_80E2C60
+
+ thumb_func_start sub_80E2C8C
+sub_80E2C8C: @ 80E2C8C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080E2CC4 @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ strh r1, [r2, 0x8]
+ lsrs r1, 16
+ strh r1, [r2, 0xA]
+ ldr r3, _080E2CC8 @ =gBattleAnimArgs
+ ldrh r1, [r3, 0x2]
+ strh r1, [r2, 0xC]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0xE]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0x10]
+ ldrh r1, [r3, 0x8]
+ strh r1, [r2, 0x12]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0x1C]
+ ldr r1, _080E2CCC @ =sub_80E2CD0
+ str r1, [r2]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2CC4: .4byte gTasks
+_080E2CC8: .4byte gBattleAnimArgs
+_080E2CCC: .4byte sub_80E2CD0
+ thumb_func_end sub_80E2C8C
+
+ thumb_func_start sub_80E2CD0
+sub_80E2CD0: @ 80E2CD0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ ldr r2, _080E2D50 @ =gTasks
+ lsls r5, r7, 2
+ adds r0, r5, r7
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1A]
+ mov r8, r0
+ movs r4, 0x1A
+ ldrsh r1, [r3, r4]
+ movs r4, 0xC
+ ldrsh r0, [r3, r4]
+ mov r9, r2
+ cmp r1, r0
+ bne _080E2D66
+ strh r6, [r3, 0x1A]
+ movs r0, 0x8
+ ldrsh r4, [r3, r0]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ orrs r4, r0
+ mov r8, r5
+ cmp r4, 0
+ beq _080E2D32
+ adds r5, r3, 0
+_080E2D10:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080E2D24
+ ldrb r2, [r5, 0x1C]
+ ldrh r3, [r5, 0x12]
+ adds r0, r6, 0
+ movs r1, 0x10
+ bl BlendPalette
+_080E2D24:
+ adds r0, r6, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsrs r4, 1
+ cmp r4, 0
+ bne _080E2D10
+_080E2D32:
+ mov r4, r8
+ adds r0, r4, r7
+ lsls r0, 3
+ mov r1, r9
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x1C]
+ movs r4, 0x1C
+ ldrsh r3, [r2, r4]
+ movs r4, 0x10
+ ldrsh r1, [r2, r4]
+ cmp r3, r1
+ bge _080E2D54
+ adds r0, 0x1
+ strh r0, [r2, 0x1C]
+ b _080E2D6C
+ .align 2, 0
+_080E2D50: .4byte gTasks
+_080E2D54:
+ cmp r3, r1
+ ble _080E2D5E
+ subs r0, 0x1
+ strh r0, [r2, 0x1C]
+ b _080E2D6C
+_080E2D5E:
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+ b _080E2D6C
+_080E2D66:
+ mov r0, r8
+ adds r0, 0x1
+ strh r0, [r3, 0x1A]
+_080E2D6C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E2CD0
+
+ thumb_func_start sub_80E2D78
+sub_80E2D78: @ 80E2D78
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _080E2DAC @ =gBattleAnimArgs
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x2]
+ ldrb r2, [r4, 0x4]
+ ldrb r3, [r4, 0x6]
+ ldrb r4, [r4, 0x8]
+ str r4, [sp]
+ bl BeginHardwarePaletteFade
+ ldr r1, _080E2DB0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080E2DB4 @ =sub_80E2DB8
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2DAC: .4byte gBattleAnimArgs
+_080E2DB0: .4byte gTasks
+_080E2DB4: .4byte sub_80E2DB8
+ thumb_func_end sub_80E2D78
+
+ thumb_func_start sub_80E2DB8
+sub_80E2DB8: @ 80E2DB8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080E2DD4 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E2DD0
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080E2DD0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2DD4: .4byte gPaletteFade
+ thumb_func_end sub_80E2DB8
+
+ thumb_func_start sub_80E2DD8
+sub_80E2DD8: @ 80E2DD8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080E2E04 @ =gTasks
+ adds r1, r0
+ ldr r2, _080E2E08 @ =gBattleAnimArgs
+ ldrh r0, [r2]
+ movs r3, 0
+ strh r0, [r1, 0x8]
+ strh r3, [r1, 0xA]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0xC]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1, 0xE]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r1, 0x10]
+ strh r3, [r1, 0x12]
+ ldr r0, _080E2E0C @ =sub_80E2E10
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080E2E04: .4byte gTasks
+_080E2E08: .4byte gBattleAnimArgs
+_080E2E0C: .4byte sub_80E2E10
+ thumb_func_end sub_80E2DD8
+
+ thumb_func_start sub_80E2E10
+sub_80E2E10: @ 80E2E10
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080E2E3C @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080E2ED4
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080E2E40
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+ b _080E2EE2
+ .align 2, 0
+_080E2E3C: .4byte gTasks
+_080E2E40:
+ ldrb r0, [r4, 0x8]
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080E2EBE
+ ldr r6, _080E2ECC @ =gSprites
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r3, r1, r6
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ movs r2, 0x2
+ cmp r0, 0
+ beq _080E2E68
+ movs r2, 0x1
+_080E2E68:
+ lsls r2, 2
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x5]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0xE]
+ strh r1, [r0, 0x2E]
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r5, [r0, 0x30]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5
+ strh r1, [r0, 0x32]
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080E2ED0 @ =sub_80E2EE8
+ str r1, [r0]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+_080E2EBE:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0xA]
+ b _080E2EE2
+ .align 2, 0
+_080E2ECC: .4byte gSprites
+_080E2ED0: .4byte sub_80E2EE8
+_080E2ED4:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E2EE2
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080E2EE2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E2E10
+
+ thumb_func_start sub_80E2EE8
+sub_80E2EE8: @ 80E2EE8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080E2EFC
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _080E2F20
+_080E2EFC:
+ ldr r3, _080E2F28 @ =gTasks
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl obj_delete_but_dont_free_vram
+_080E2F20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2F28: .4byte gTasks
+ thumb_func_end sub_80E2EE8
+
+ thumb_func_start sub_80E2F2C
+sub_80E2F2C: @ 80E2F2C
+ 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, _080E3038 @ =gUnknown_030042C4
+ strh r7, [r0]
+ ldr r0, _080E303C @ =gUnknown_03004240
+ strh r7, [r0]
+ ldr r1, _080E3040 @ =REG_WININ
+ ldr r2, _080E3044 @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E3048 @ =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, _080E304C @ =REG_BLDCNT
+ ldr r2, _080E3050 @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E3054 @ =0x00000c08
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r4, _080E3058 @ =REG_BG1CNT
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ mov r8, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E2FAC
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080E2FAC:
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3028
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3028
+ ldr r5, _080E305C @ =gBattleAnimBankAttacker
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080E2FDC
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3028
+_080E2FDC:
+ ldrb r0, [r5]
+ movs r6, 0x2
+ eors r0, r6
+ bl IsAnimBankSpriteVisible
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E3028
+ ldr r3, _080E3060 @ =gSprites
+ ldr r1, _080E3064 @ =gObjectBankIDs
+ ldrb r0, [r5]
+ 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, [r4]
+ mov r0, r8
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ movs r7, 0x1
+_080E3028:
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E306C
+ ldr r0, _080E3068 @ =gSharedMem + 0x19348
+ ldrh r4, [r0]
+ b _080E30B4
+ .align 2, 0
+_080E3038: .4byte gUnknown_030042C4
+_080E303C: .4byte gUnknown_03004240
+_080E3040: .4byte REG_WININ
+_080E3044: .4byte 0x00003f3f
+_080E3048: .4byte 0x00003f3d
+_080E304C: .4byte REG_BLDCNT
+_080E3050: .4byte 0x00003f42
+_080E3054: .4byte 0x00000c08
+_080E3058: .4byte REG_BG1CNT
+_080E305C: .4byte gBattleAnimBankAttacker
+_080E3060: .4byte gSprites
+_080E3064: .4byte gObjectBankIDs
+_080E3068: .4byte gSharedMem + 0x19348
+_080E306C:
+ ldr r4, _080E308C @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3098
+ ldr r1, _080E3090 @ =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3094 @ =gEnemyParty
+ b _080E30A8
+ .align 2, 0
+_080E308C: .4byte gBattleAnimBankAttacker
+_080E3090: .4byte gBattlePartyID
+_080E3094: .4byte gEnemyParty
+_080E3098:
+ ldr r1, _080E3160 @ =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3164 @ =gPlayerParty
+_080E30A8:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E30B4:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080E3168 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r2, _080E316C @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080E3170 @ =0x85000400
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080E3174 @ =gUnknown_08D20A30
+ bl LZDecompressVram
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3106
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080E3106:
+ ldr r0, _080E3178 @ =gUnknown_08D20A14
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080E317C @ =gUnknown_083DB568
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ adds r1, 0x1
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r2, _080E3180 @ =gUnknown_030042C0
+ ldr r0, _080E3184 @ =gSprites
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldr r2, _080E3188 @ =gUnknown_030041B4
+ ldrh r0, [r1, 0x22]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldr r1, _080E318C @ =gTasks
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x8]
+ strh r7, [r0, 0x14]
+ ldr r1, _080E3190 @ =sub_80E3194
+ 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
+_080E3160: .4byte gBattlePartyID
+_080E3164: .4byte gPlayerParty
+_080E3168: .4byte gBattleAnimBankAttacker
+_080E316C: .4byte 0x040000d4
+_080E3170: .4byte 0x85000400
+_080E3174: .4byte gUnknown_08D20A30
+_080E3178: .4byte gUnknown_08D20A14
+_080E317C: .4byte gUnknown_083DB568
+_080E3180: .4byte gUnknown_030042C0
+_080E3184: .4byte gSprites
+_080E3188: .4byte gUnknown_030041B4
+_080E318C: .4byte gTasks
+_080E3190: .4byte sub_80E3194
+ thumb_func_end sub_80E2F2C
+
+ thumb_func_start sub_80E3194
+sub_80E3194: @ 80E3194
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080E32AC @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x4
+ movs r5, 0
+ strh r0, [r4, 0x1C]
+ ldr r7, _080E32B0 @ =gUnknown_030041B4
+ ldrh r2, [r7]
+ subs r1, r2, 0x4
+ strh r1, [r7]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _080E329E
+ strh r5, [r4, 0x1C]
+ adds r0, r2, 0
+ adds r0, 0x3C
+ strh r0, [r7]
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080E329E
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _080E32B4 @ =gUnknown_030042C4
+ strh r5, [r0]
+ ldr r0, _080E32B8 @ =gUnknown_03004240
+ strh r5, [r0]
+ ldr r0, _080E32BC @ =REG_WININ
+ ldr r2, _080E32C0 @ =0x00003f3f
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3208
+ ldr r2, _080E32C4 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080E3208:
+ 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, _080E32C8 @ =REG_BLDCNT
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ ldr r0, _080E32CC @ =gSprites
+ mov r8, r0
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ bl DestroySprite
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp, 0x4]
+ str r5, [sp, 0xC]
+ ldr r1, _080E32D0 @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080E32D4 @ =0x85000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r3, 0x14
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080E3288
+ ldr r2, _080E32D8 @ =gObjectBankIDs
+ ldr r0, _080E32DC @ =gBattleAnimBankAttacker
+ 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
+ add r2, r8
+ 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]
+_080E3288:
+ ldr r2, _080E32C4 @ =REG_BG1CNT
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ movs r0, 0
+ strh r0, [r7]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080E329E:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E32AC: .4byte gTasks
+_080E32B0: .4byte gUnknown_030041B4
+_080E32B4: .4byte gUnknown_030042C4
+_080E32B8: .4byte gUnknown_03004240
+_080E32BC: .4byte REG_WININ
+_080E32C0: .4byte 0x00003f3f
+_080E32C4: .4byte REG_BG1CNT
+_080E32C8: .4byte REG_BLDCNT
+_080E32CC: .4byte gSprites
+_080E32D0: .4byte 0x040000d4
+_080E32D4: .4byte 0x85000200
+_080E32D8: .4byte gObjectBankIDs
+_080E32DC: .4byte gBattleAnimBankAttacker
+ thumb_func_end sub_80E3194
+
+ thumb_func_start sub_80E32E0
+sub_80E32E0: @ 80E32E0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r0, _080E332C @ =gTasks
+ mov r12, r0
+ ldr r1, _080E3330 @ =sub_80E3338
+ mov r8, r1
+ lsls r1, r3, 2
+ adds r0, r1, r3
+ lsls r4, r0, 3
+ mov r7, r12
+ adds r7, 0x8
+ adds r5, r1, 0
+ ldr r6, _080E3334 @ =gBattleAnimArgs
+_080E3302:
+ lsls r0, r2, 1
+ adds r1, r0, r4
+ adds r1, r7
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _080E3302
+ adds r0, r5, r3
+ lsls r0, 3
+ add r0, r12
+ mov r1, r8
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E332C: .4byte gTasks
+_080E3330: .4byte sub_80E3338
+_080E3334: .4byte gBattleAnimArgs
+ thumb_func_end sub_80E32E0
+
+ thumb_func_start sub_80E3338
+sub_80E3338: @ 80E3338
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r0, 0
+ str r0, [sp, 0x1C]
+ movs r1, 0
+ str r1, [sp, 0x20]
+ add r7, sp, 0xC
+ ldr r2, _080E3388 @ =gTasks
+ mov r3, r9
+ lsls r1, r3, 2
+ adds r0, r1, r3
+ lsls r0, 3
+ mov r10, r1
+ adds r1, r2, 0
+ adds r1, 0x8
+ adds r1, r0, r1
+ adds r3, r7, 0
+ movs r4, 0
+ movs r2, 0x7
+_080E336C:
+ ldrh r0, [r1]
+ strh r0, [r3]
+ strh r4, [r1]
+ adds r1, 0x2
+ adds r3, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080E336C
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _080E3390
+ ldr r0, _080E338C @ =gBattleAnimBankAttacker
+ b _080E3392
+ .align 2, 0
+_080E3388: .4byte gTasks
+_080E338C: .4byte gBattleAnimBankAttacker
+_080E3390:
+ ldr r0, _080E34B4 @ =gBattleAnimBankTarget
+_080E3392:
+ ldrb r5, [r0]
+ movs r0, 0x2
+ mov r8, r5
+ mov r2, r8
+ eors r2, r0
+ mov r8, r2
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E33BC
+ movs r3, 0x6
+ ldrsh r0, [r7, r3]
+ cmp r0, 0
+ beq _080E33C0
+ mov r0, r8
+ bl IsAnimBankSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E33C0
+_080E33BC:
+ movs r0, 0
+ strh r0, [r7, 0x6]
+_080E33C0:
+ ldr r0, _080E34B8 @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E34BC @ =gUnknown_03004240
+ strh r1, [r0]
+ ldr r1, _080E34C0 @ =REG_WININ
+ ldr r2, _080E34C4 @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E34C8 @ =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, _080E34CC @ =REG_BLDCNT
+ ldr r2, _080E34D0 @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r4, _080E34D4 @ =REG_BG1CNT
+ ldrb r1, [r4]
+ movs r6, 0x4
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3432
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080E3432:
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E34A4
+ movs r1, 0x6
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _080E34A4
+ adds r0, r5, 0
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080E345E
+ adds r0, r5, 0
+ bl GetBankIdentity
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E34A4
+_080E345E:
+ mov r0, r8
+ bl IsAnimBankSpriteVisible
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E34A4
+ ldr r1, _080E34D8 @ =gSprites
+ ldr r0, _080E34DC @ =gObjectBankIDs
+ add r0, r8
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ 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, [r4]
+ adds r0, r6, 0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ movs r2, 0x1
+ str r2, [sp, 0x20]
+_080E34A4:
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E34E4
+ ldr r0, _080E34E0 @ =gSharedMem + 0x19348
+ ldrh r4, [r0]
+ b _080E3522
+ .align 2, 0
+_080E34B4: .4byte gBattleAnimBankTarget
+_080E34B8: .4byte gUnknown_030042C4
+_080E34BC: .4byte gUnknown_03004240
+_080E34C0: .4byte REG_WININ
+_080E34C4: .4byte 0x00003f3f
+_080E34C8: .4byte 0x00003f3d
+_080E34CC: .4byte REG_BLDCNT
+_080E34D0: .4byte 0x00003f42
+_080E34D4: .4byte REG_BG1CNT
+_080E34D8: .4byte gSprites
+_080E34DC: .4byte gObjectBankIDs
+_080E34E0: .4byte gSharedMem + 0x19348
+_080E34E4:
+ adds r0, r5, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3508
+ ldr r1, _080E3500 @ =gBattlePartyID
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3504 @ =gEnemyParty
+ b _080E3516
+ .align 2, 0
+_080E3500: .4byte gBattlePartyID
+_080E3504: .4byte gEnemyParty
+_080E3508:
+ ldr r1, _080E3568 @ =gBattlePartyID
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E356C @ =gPlayerParty
+_080E3516:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E3522:
+ ldr r6, _080E3570 @ =gObjectBankIDs
+ adds r0, r5, r6
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0x6
+ ldrsh r0, [r7, r3]
+ cmp r0, 0
+ beq _080E3550
+ mov r1, r8
+ adds r0, r1, r6
+ ldrb r1, [r0]
+ mov r0, r8
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x1C]
+_080E3550:
+ mov r0, sp
+ bl sub_8078914
+ movs r2, 0
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ bne _080E3578
+ ldr r0, _080E3574 @ =gBattleStatMask1_Tilemap
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ b _080E3580
+ .align 2, 0
+_080E3568: .4byte gBattlePartyID
+_080E356C: .4byte gPlayerParty
+_080E3570: .4byte gObjectBankIDs
+_080E3574: .4byte gBattleStatMask1_Tilemap
+_080E3578:
+ ldr r0, _080E35B0 @ =gBattleStatMask2_Tilemap
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+_080E3580:
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3598
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080E3598:
+ ldr r0, _080E35B4 @ =gBattleStatMask_Gfx
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldrh r0, [r7, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080E35BC
+ ldr r0, _080E35B8 @ =gBattleStatMask2_Pal
+ b _080E35FE
+ .align 2, 0
+_080E35B0: .4byte gBattleStatMask2_Tilemap
+_080E35B4: .4byte gBattleStatMask_Gfx
+_080E35B8: .4byte gBattleStatMask2_Pal
+_080E35BC:
+ cmp r0, 0x1
+ bne _080E35C8
+ ldr r0, _080E35C4 @ =gBattleStatMask1_Pal
+ b _080E35FE
+ .align 2, 0
+_080E35C4: .4byte gBattleStatMask1_Pal
+_080E35C8:
+ cmp r0, 0x2
+ bne _080E35D4
+ ldr r0, _080E35D0 @ =gBattleStatMask3_Pal
+ b _080E35FE
+ .align 2, 0
+_080E35D0: .4byte gBattleStatMask3_Pal
+_080E35D4:
+ cmp r0, 0x3
+ bne _080E35E0
+ ldr r0, _080E35DC @ =gBattleStatMask4_Pal
+ b _080E35FE
+ .align 2, 0
+_080E35DC: .4byte gBattleStatMask4_Pal
+_080E35E0:
+ cmp r0, 0x4
+ bne _080E35EC
+ ldr r0, _080E35E8 @ =gBattleStatMask6_Pal
+ b _080E35FE
+ .align 2, 0
+_080E35E8: .4byte gBattleStatMask6_Pal
+_080E35EC:
+ cmp r0, 0x5
+ bne _080E35F8
+ ldr r0, _080E35F4 @ =gBattleStatMask7_Pal
+ b _080E35FE
+ .align 2, 0
+_080E35F4: .4byte gBattleStatMask7_Pal
+_080E35F8:
+ cmp r0, 0x6
+ bne _080E3610
+ ldr r0, _080E360C @ =gBattleStatMask8_Pal
+_080E35FE:
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _080E361E
+ .align 2, 0
+_080E360C: .4byte gBattleStatMask8_Pal
+_080E3610:
+ ldr r0, _080E3644 @ =gBattleStatMask5_Pal
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+_080E361E:
+ ldr r2, _080E3648 @ =gUnknown_030042C0
+ movs r1, 0
+ strh r1, [r2]
+ ldr r0, _080E364C @ =gUnknown_030041B4
+ strh r1, [r0]
+ movs r3, 0
+ ldrsh r0, [r7, r3]
+ cmp r0, 0x1
+ bne _080E3658
+ movs r0, 0x40
+ strh r0, [r2]
+ ldr r2, _080E3650 @ =gTasks
+ mov r0, r10
+ add r0, r9
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080E3654 @ =0x0000fffd
+ strh r1, [r0, 0xA]
+ b _080E3668
+ .align 2, 0
+_080E3644: .4byte gBattleStatMask5_Pal
+_080E3648: .4byte gUnknown_030042C0
+_080E364C: .4byte gUnknown_030041B4
+_080E3650: .4byte gTasks
+_080E3654: .4byte 0x0000fffd
+_080E3658:
+ ldr r0, _080E3680 @ =gTasks
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x3
+ strh r2, [r1, 0xA]
+ adds r2, r0, 0
+_080E3668:
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _080E3684
+ mov r0, r10
+ add r0, r9
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xA
+ strh r1, [r0, 0x10]
+ movs r1, 0x14
+ b _080E3692
+ .align 2, 0
+_080E3680: .4byte gTasks
+_080E3684:
+ mov r0, r10
+ add r0, r9
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xD
+ strh r1, [r0, 0x10]
+ movs r1, 0x1E
+_080E3692:
+ strh r1, [r0, 0x12]
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ ldrh r0, [r7, 0x6]
+ strh r0, [r1, 0xC]
+ mov r2, sp
+ ldrh r2, [r2, 0x1C]
+ strh r2, [r1, 0xE]
+ mov r3, sp
+ ldrh r3, [r3, 0x20]
+ strh r3, [r1, 0x14]
+ ldr r0, _080E36D8 @ =gObjectBankIDs
+ add r0, r8
+ ldrb r0, [r0]
+ strh r0, [r1, 0x16]
+ ldr r0, _080E36DC @ =sub_80E3704
+ str r0, [r1]
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _080E36E0
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8077094
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xEF
+ bl PlaySE12WithPanning
+ b _080E36F4
+ .align 2, 0
+_080E36D8: .4byte gObjectBankIDs
+_080E36DC: .4byte sub_80E3704
+_080E36E0:
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8077094
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xF5
+ bl PlaySE12WithPanning
+_080E36F4:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E3338
+
+ thumb_func_start sub_80E3704
+sub_80E3704: @ 80E3704
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _080E3730 @ =gUnknown_030041B4
+ ldr r1, _080E3734 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+ movs r3, 0x26
+ ldrsh r2, [r4, r3]
+ cmp r2, 0x1
+ beq _080E3774
+ cmp r2, 0x1
+ bgt _080E3738
+ cmp r2, 0
+ beq _080E373E
+ b _080E3866
+ .align 2, 0
+_080E3730: .4byte gUnknown_030041B4
+_080E3734: .4byte gTasks
+_080E3738:
+ cmp r2, 0x2
+ beq _080E378E
+ b _080E3866
+_080E373E:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080E374C
+ b _080E3866
+_080E374C:
+ strh r2, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ adds r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r2, _080E3770 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080E3866
+ b _080E3786
+ .align 2, 0
+_080E3770: .4byte REG_BLDALPHA
+_080E3774:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _080E3866
+_080E3786:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _080E3866
+_080E378E:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080E3866
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ subs r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r7, _080E386C @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r7]
+ movs r0, 0x20
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ bne _080E3866
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _080E3870 @ =gUnknown_030042C4
+ strh r5, [r0]
+ ldr r0, _080E3874 @ =gUnknown_03004240
+ strh r5, [r0]
+ ldr r0, _080E3878 @ =REG_WININ
+ ldr r2, _080E387C @ =0x00003f3f
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E37E8
+ ldr r2, _080E3880 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080E37E8:
+ 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, _080E3884 @ =REG_BLDCNT
+ strh r5, [r0]
+ strh r5, [r7]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _080E3888 @ =gSprites
+ adds r0, r5
+ bl DestroySprite
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080E3828
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+_080E3828:
+ movs r3, 0x14
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080E3854
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ 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]
+_080E3854:
+ ldr r2, _080E3880 @ =REG_BG1CNT
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080E3866:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E386C: .4byte REG_BLDALPHA
+_080E3870: .4byte gUnknown_030042C4
+_080E3874: .4byte gUnknown_03004240
+_080E3878: .4byte REG_WININ
+_080E387C: .4byte 0x00003f3f
+_080E3880: .4byte REG_BG1CNT
+_080E3884: .4byte REG_BLDCNT
+_080E3888: .4byte gSprites
+ thumb_func_end sub_80E3704
+
+ thumb_func_start sub_80E388C
+sub_80E388C: @ 80E388C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_80792C0
+ adds r6, r0, 0
+ movs r1, 0
+ bl sub_80E39BC
+ ldr r0, _080E38EC @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ lsrs r0, r6, 16
+ movs r5, 0
+ strh r0, [r4, 0x24]
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r6, r0, 0
+ ldr r1, _080E38F0 @ =0x0000ffff
+ ands r6, r1
+ adds r0, r6, 0
+ bl sub_80E39BC
+ strh r6, [r4, 0x26]
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ ldr r0, _080E38F4 @ =sub_80E38F8
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E38EC: .4byte gTasks
+_080E38F0: .4byte 0x0000ffff
+_080E38F4: .4byte sub_80E38F8
+ thumb_func_end sub_80E388C
+
+ thumb_func_start sub_80E38F8
+sub_80E38F8: @ 80E38F8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E391C @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080E393C
+ cmp r1, 0x1
+ bgt _080E3920
+ cmp r1, 0
+ beq _080E3926
+ b _080E39B6
+ .align 2, 0
+_080E391C: .4byte gTasks
+_080E3920:
+ cmp r1, 0x2
+ beq _080E39B0
+ b _080E39B6
+_080E3926:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _080E39B6
+ strh r1, [r4, 0xA]
+ movs r0, 0x10
+ strh r0, [r4, 0xC]
+ b _080E39A4
+_080E393C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E39B6
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r5, 0
+ movs r6, 0x1
+_080E3958:
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ asrs r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _080E3972
+ lsls r0, r5, 20
+ lsrs r0, 16
+ ldrb r2, [r4, 0xC]
+ movs r1, 0x10
+ ldr r3, _080E39AC @ =0x0000ffff
+ bl BlendPalette
+_080E3972:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ asrs r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _080E3992
+ lsls r0, r5, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ ldrb r2, [r4, 0xC]
+ movs r1, 0x10
+ movs r3, 0
+ bl BlendPalette
+_080E3992:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xF
+ bls _080E3958
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E39B6
+_080E39A4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E39B6
+ .align 2, 0
+_080E39AC: .4byte 0x0000ffff
+_080E39B0:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080E39B6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E38F8
+
+ thumb_func_start sub_80E39BC
+sub_80E39BC: @ 80E39BC
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r2, 0
+_080E39C6:
+ movs r0, 0x1
+ ands r0, r3
+ lsrs r4, r3, 1
+ adds r5, r2, 0x1
+ cmp r0, 0
+ beq _080E39F2
+ lsls r0, r2, 20
+ lsrs r2, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x10
+ cmp r2, r0
+ bge _080E39F2
+ ldr r1, _080E3A04 @ =gPlttBufferFaded
+ adds r3, r0, 0
+_080E39E2:
+ lsls r0, r2, 1
+ adds r0, r1
+ strh r6, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ blt _080E39E2
+_080E39F2:
+ adds r3, r4, 0
+ lsls r0, r5, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1F
+ bls _080E39C6
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3A04: .4byte gPlttBufferFaded
+ thumb_func_end sub_80E39BC
+
+ thumb_func_start sub_80E3A08
+sub_80E3A08: @ 80E3A08
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ movs r2, 0
+ ldr r0, _080E3A50 @ =gBattleAnimBankAttacker
+ ldrb r3, [r0]
+ movs r5, 0x1
+_080E3A18:
+ cmp r3, r2
+ beq _080E3A26
+ adds r1, r2, 0
+ adds r1, 0x10
+ adds r0, r5, 0
+ lsls r0, r1
+ orrs r4, r0
+_080E3A26:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bls _080E3A18
+ movs r2, 0x5
+ ldr r0, _080E3A54 @ =gBattleAnimArgs
+ adds r1, r0, 0
+ adds r1, 0x8
+_080E3A34:
+ ldrh r0, [r1]
+ strh r0, [r1, 0x2]
+ subs r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080E3A34
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80E2C8C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3A50: .4byte gBattleAnimBankAttacker
+_080E3A54: .4byte gBattleAnimArgs
+ thumb_func_end sub_80E3A08
+
+ thumb_func_start sub_80E3A58
+sub_80E3A58: @ 80E3A58
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl sub_80789D4
+ ldr r0, _080E3AC0 @ =sub_80E3AD0
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080E3AC4 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080E3A94
+ ldr r0, _080E3AC8 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3A94
+ ldrh r0, [r4]
+ negs r0, r0
+ strh r0, [r4]
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+_080E3A94:
+ ldr r0, _080E3ACC @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r2, _080E3AC4 @ =gBattleAnimArgs
+ ldrh r0, [r2]
+ strh r0, [r1, 0xA]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0xC]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r1, 0xE]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3AC0: .4byte sub_80E3AD0
+_080E3AC4: .4byte gBattleAnimArgs
+_080E3AC8: .4byte gBattleAnimBankAttacker
+_080E3ACC: .4byte gTasks
+ thumb_func_end sub_80E3A58
+
+ thumb_func_start sub_80E3AD0
+sub_80E3AD0: @ 80E3AD0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080E3B3C @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r3, [r1, 0xA]
+ ldrh r0, [r1, 0x1C]
+ adds r3, r0
+ movs r4, 0
+ mov r12, r4
+ strh r3, [r1, 0x1C]
+ ldrh r2, [r1, 0xC]
+ ldrh r7, [r1, 0x1E]
+ adds r2, r7
+ strh r2, [r1, 0x1E]
+ ldr r6, _080E3B40 @ =gUnknown_030041B0
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r4, [r6]
+ adds r0, r4
+ strh r0, [r6]
+ ldr r4, _080E3B44 @ =gUnknown_030041B8
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r7, [r4]
+ adds r0, r7
+ strh r0, [r4]
+ movs r0, 0xFF
+ ands r3, r0
+ strh r3, [r1, 0x1C]
+ ands r2, r0
+ strh r2, [r1, 0x1E]
+ ldr r0, _080E3B48 @ =gBattleAnimArgs
+ movs r3, 0xE
+ ldrsh r2, [r0, r3]
+ movs r7, 0xE
+ ldrsh r0, [r1, r7]
+ cmp r2, r0
+ bne _080E3B36
+ mov r0, r12
+ strh r0, [r6]
+ strh r0, [r4]
+ movs r0, 0x1
+ bl sub_80789D4
+ adds r0, r5, 0
+ bl DestroyTask
+_080E3B36:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3B3C: .4byte gTasks
+_080E3B40: .4byte gUnknown_030041B0
+_080E3B44: .4byte gUnknown_030041B8
+_080E3B48: .4byte gBattleAnimArgs
+ thumb_func_end sub_80E3AD0
+
+ thumb_func_start sub_80E3B4C
+sub_80E3B4C: @ 80E3B4C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080E3B70 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ ldr r1, _080E3B74 @ =gBattleAnimArgs
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3B70: .4byte gBattleAnimBankAttacker
+_080E3B74: .4byte gBattleAnimArgs
+ thumb_func_end sub_80E3B4C
+
+ thumb_func_start sub_80E3B78
+sub_80E3B78: @ 80E3B78
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080E3B9C @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ bl GetBankSide
+ ldr r1, _080E3BA0 @ =gBattleAnimArgs
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3B9C: .4byte gBattleAnimBankTarget
+_080E3BA0: .4byte gBattleAnimArgs
+ thumb_func_end sub_80E3B78
+
+ thumb_func_start sub_80E3BA4
+sub_80E3BA4: @ 80E3BA4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r5, _080E3BD0 @ =gBattleAnimArgs
+ movs r4, 0
+ ldr r0, _080E3BD4 @ =gBattleAnimBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x2
+ ldr r1, _080E3BD8 @ =gBattleAnimBankTarget
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080E3BC0
+ movs r4, 0x1
+_080E3BC0:
+ strh r4, [r5, 0xE]
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3BD0: .4byte gBattleAnimArgs
+_080E3BD4: .4byte gBattleAnimBankAttacker
+_080E3BD8: .4byte gBattleAnimBankTarget
+ thumb_func_end sub_80E3BA4
+
+ thumb_func_start sub_80E3BDC
+sub_80E3BDC: @ 80E3BDC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r6, _080E3C3C @ =gSprites
+_080E3BE6:
+ ldr r0, _080E3C40 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _080E3C24
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl IsAnimBankSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3C24
+ ldr r0, _080E3C44 @ =gObjectBankIDs
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldr r1, _080E3C48 @ =gBattleAnimArgs
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r3, [r1]
+ ands r3, r0
+ lsls r3, 2
+ ldrb r0, [r2]
+ movs r7, 0x5
+ negs r7, r7
+ adds r1, r7, 0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+_080E3C24:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080E3BE6
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3C3C: .4byte gSprites
+_080E3C40: .4byte gBattleAnimBankAttacker
+_080E3C44: .4byte gObjectBankIDs
+_080E3C48: .4byte gBattleAnimArgs
+ thumb_func_end sub_80E3BDC
+
+ thumb_func_start sub_80E3C4C
+sub_80E3C4C: @ 80E3C4C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r1, [sp, 0x3C]
+ ldr r4, [sp, 0x40]
+ ldr r5, [sp, 0x44]
+ ldr r6, [sp, 0x48]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0xC]
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x10]
+ lsls r5, 24
+ lsrs r5, 24
+ str r5, [sp, 0x14]
+ lsls r6, 24
+ lsrs r6, 24
+ mov r10, r6
+ movs r0, 0
+ str r0, [sp, 0x18]
+ movs r0, 0x2
+ adds r6, r7, 0
+ eors r6, r0
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3CAE
+ mov r1, r8
+ cmp r1, 0
+ beq _080E3CB2
+ adds r0, r6, 0
+ bl IsAnimBankSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3CB2
+_080E3CAE:
+ movs r2, 0
+ mov r8, r2
+_080E3CB2:
+ ldr r0, _080E3D34 @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E3D38 @ =gUnknown_03004240
+ strh r1, [r0]
+ ldr r1, _080E3D3C @ =REG_WININ
+ ldr r3, _080E3D40 @ =0x00003f3f
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080E3D44 @ =0x00003f3d
+ adds r0, r2, 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, _080E3D48 @ =REG_BLDCNT
+ ldr r2, _080E3D4C @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r4, _080E3D50 @ =REG_BG1CNT
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3D22
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080E3D22:
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3D58
+ ldr r0, _080E3D54 @ =gSharedMem + 0x19348
+ ldrh r4, [r0]
+ b _080E3D96
+ .align 2, 0
+_080E3D34: .4byte gUnknown_030042C4
+_080E3D38: .4byte gUnknown_03004240
+_080E3D3C: .4byte REG_WININ
+_080E3D40: .4byte 0x00003f3f
+_080E3D44: .4byte 0x00003f3d
+_080E3D48: .4byte REG_BLDCNT
+_080E3D4C: .4byte 0x00003f42
+_080E3D50: .4byte REG_BG1CNT
+_080E3D54: .4byte gSharedMem + 0x19348
+_080E3D58:
+ adds r0, r7, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3D7C
+ ldr r1, _080E3D74 @ =gBattlePartyID
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3D78 @ =gEnemyParty
+ b _080E3D8A
+ .align 2, 0
+_080E3D74: .4byte gBattlePartyID
+_080E3D78: .4byte gEnemyParty
+_080E3D7C:
+ ldr r1, _080E3E48 @ =gBattlePartyID
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3E4C @ =gPlayerParty
+_080E3D8A:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E3D96:
+ ldr r5, _080E3E50 @ =gObjectBankIDs
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r0, r8
+ cmp r0, 0
+ beq _080E3DC0
+ adds r0, r6, r5
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x18]
+_080E3DC0:
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ ldr r0, [sp, 0x50]
+ bl LZDecompressVram
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3DE6
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080E3DE6:
+ ldr r1, [sp]
+ ldr r0, [sp, 0x4C]
+ bl LZDecompressVram
+ mov r0, sp
+ ldrb r1, [r0, 0x8]
+ lsls r1, 4
+ ldr r0, [sp, 0x54]
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r0, _080E3E54 @ =gUnknown_030042C0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E3E58 @ =gUnknown_030041B4
+ strh r1, [r0]
+ ldr r1, _080E3E5C @ =gTasks
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ mov r3, sp
+ ldrh r3, [r3, 0xC]
+ strh r3, [r0, 0xA]
+ mov r1, sp
+ ldrh r1, [r1, 0x10]
+ strh r1, [r0, 0x10]
+ mov r2, r10
+ strh r2, [r0, 0x12]
+ mov r3, sp
+ ldrh r3, [r3, 0x14]
+ strh r3, [r0, 0x14]
+ strh r7, [r0, 0x8]
+ mov r1, r8
+ strh r1, [r0, 0xC]
+ mov r2, sp
+ ldrh r2, [r2, 0x18]
+ strh r2, [r0, 0xE]
+ ldr r1, _080E3E60 @ =sub_80E3E64
+ str r1, [r0]
+ 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
+_080E3E48: .4byte gBattlePartyID
+_080E3E4C: .4byte gPlayerParty
+_080E3E50: .4byte gObjectBankIDs
+_080E3E54: .4byte gUnknown_030042C0
+_080E3E58: .4byte gUnknown_030041B4
+_080E3E5C: .4byte gTasks
+_080E3E60: .4byte sub_80E3E64
+ thumb_func_end sub_80E3C4C
+
+ thumb_func_start sub_80E3E64
+sub_80E3E64: @ 80E3E64
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080E3E9C @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r0, 0xA
+ ldrsh r2, [r3, r0]
+ adds r5, r1, 0
+ cmp r2, 0
+ bge _080E3E80
+ negs r2, r2
+_080E3E80:
+ ldrh r0, [r3, 0x22]
+ adds r4, r0, r2
+ strh r4, [r3, 0x22]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bge _080E3EA4
+ ldr r2, _080E3EA0 @ =gUnknown_030041B4
+ lsls r1, r4, 16
+ asrs r1, 24
+ ldrh r0, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ b _080E3EB0
+ .align 2, 0
+_080E3E9C: .4byte gTasks
+_080E3EA0: .4byte gUnknown_030041B4
+_080E3EA4:
+ ldr r1, _080E3ED4 @ =gUnknown_030041B4
+ lsls r0, r4, 16
+ asrs r0, 24
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+_080E3EB0:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r5
+ ldrh r1, [r4, 0x22]
+ movs r0, 0xFF
+ ands r0, r1
+ movs r2, 0
+ strh r0, [r4, 0x22]
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ beq _080E3F18
+ cmp r0, 0x1
+ bgt _080E3ED8
+ cmp r0, 0
+ beq _080E3EDE
+ b _080E3FE2
+ .align 2, 0
+_080E3ED4: .4byte gUnknown_030041B4
+_080E3ED8:
+ cmp r0, 0x2
+ beq _080E3F32
+ b _080E3FE2
+_080E3EDE:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x14
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _080E3FE2
+ strh r2, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ adds r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r2, _080E3F14 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080E3FE2
+ b _080E3F2A
+ .align 2, 0
+_080E3F14: .4byte REG_BLDALPHA
+_080E3F18:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _080E3FE2
+_080E3F2A:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _080E3FE2
+_080E3F32:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x14
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _080E3FE2
+ strh r2, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ subs r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r7, _080E3FE8 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r7]
+ movs r0, 0x20
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ bne _080E3FE2
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _080E3FEC @ =gUnknown_030042C4
+ strh r5, [r0]
+ ldr r0, _080E3FF0 @ =gUnknown_03004240
+ strh r5, [r0]
+ ldr r0, _080E3FF4 @ =REG_WININ
+ ldr r2, _080E3FF8 @ =0x00003f3f
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3F90
+ ldr r2, _080E3FFC @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080E3F90:
+ 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, _080E4000 @ =REG_BLDCNT
+ strh r5, [r0]
+ strh r5, [r7]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _080E4004 @ =gSprites
+ adds r0, r5
+ bl DestroySprite
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080E3FD0
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+_080E3FD0:
+ ldr r2, _080E3FFC @ =REG_BG1CNT
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080E3FE2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3FE8: .4byte REG_BLDALPHA
+_080E3FEC: .4byte gUnknown_030042C4
+_080E3FF0: .4byte gUnknown_03004240
+_080E3FF4: .4byte REG_WININ
+_080E3FF8: .4byte 0x00003f3f
+_080E3FFC: .4byte REG_BG1CNT
+_080E4000: .4byte REG_BLDCNT
+_080E4004: .4byte gSprites
+ thumb_func_end sub_80E3E64
+
+ thumb_func_start sub_80E4008
+sub_80E4008: @ 80E4008
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E4020 @ =gBattleAnimArgs
+ ldr r1, _080E4024 @ =gBattleTerrain
+ ldrb r1, [r1]
+ strh r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4020: .4byte gBattleAnimArgs
+_080E4024: .4byte gBattleTerrain
+ thumb_func_end sub_80E4008
+
+ thumb_func_start sub_80E4028
+sub_80E4028: @ 80E4028
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r0, _080E4068 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E406C
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080E4084
+ movs r2, 0x1
+_080E405A:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080E405A
+ b _080E4084
+ .align 2, 0
+_080E4068: .4byte gBattleAnimArgs
+_080E406C:
+ cmp r0, 0x1
+ bne _080E4078
+ ldr r0, _080E4074 @ =gBattleAnimBankAttacker
+ b _080E407E
+ .align 2, 0
+_080E4074: .4byte gBattleAnimBankAttacker
+_080E4078:
+ cmp r0, 0x2
+ bne _080E4084
+ ldr r0, _080E409C @ =gBattleAnimBankTarget
+_080E407E:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080E4084:
+ ldr r0, _080E40A0 @ =gBattleAnimArgs
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ lsls r5, r0, 5
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E40A8
+ ldr r0, _080E40A4 @ =gSharedMem + 0x14800
+ b _080E40AA
+ .align 2, 0
+_080E409C: .4byte gBattleAnimBankTarget
+_080E40A0: .4byte gBattleAnimArgs
+_080E40A4: .4byte gSharedMem + 0x14800
+_080E40A8:
+ ldr r0, _080E40C8 @ =gSharedMem + 0x18000
+_080E40AA:
+ adds r2, r5, r0
+ lsls r1, r4, 5
+ ldr r0, _080E40CC @ =gPlttBufferUnfaded
+ adds r1, r0
+ adds r0, r2, 0
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E40C8: .4byte gSharedMem + 0x18000
+_080E40CC: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_80E4028
+
+ thumb_func_start sub_80E40D0
+sub_80E40D0: @ 80E40D0
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r0, _080E4110 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E4114
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080E412C
+ movs r2, 0x1
+_080E4102:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080E4102
+ b _080E412C
+ .align 2, 0
+_080E4110: .4byte gBattleAnimArgs
+_080E4114:
+ cmp r0, 0x1
+ bne _080E4120
+ ldr r0, _080E411C @ =gBattleAnimBankAttacker
+ b _080E4126
+ .align 2, 0
+_080E411C: .4byte gBattleAnimBankAttacker
+_080E4120:
+ cmp r0, 0x2
+ bne _080E412C
+ ldr r0, _080E4148 @ =gBattleAnimBankTarget
+_080E4126:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080E412C:
+ lsls r1, r4, 5
+ ldr r0, _080E414C @ =gPlttBufferUnfaded
+ adds r5, r1, r0
+ ldr r0, _080E4150 @ =gBattleAnimArgs
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ lsls r4, r0, 5
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E4158
+ ldr r0, _080E4154 @ =gSharedMem + 0x14800
+ b _080E415A
+ .align 2, 0
+_080E4148: .4byte gBattleAnimBankTarget
+_080E414C: .4byte gPlttBufferUnfaded
+_080E4150: .4byte gBattleAnimArgs
+_080E4154: .4byte gSharedMem + 0x14800
+_080E4158:
+ ldr r0, _080E4174 @ =gSharedMem + 0x18000
+_080E415A:
+ adds r1, r4, r0
+ adds r0, r5, 0
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4174: .4byte gSharedMem + 0x18000
+ thumb_func_end sub_80E40D0
+
+ thumb_func_start sub_80E4178
+sub_80E4178: @ 80E4178
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _080E41B8 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E41BC
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080E41D4
+ movs r2, 0x1
+_080E41AA:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080E41AA
+ b _080E41D4
+ .align 2, 0
+_080E41B8: .4byte gBattleAnimArgs
+_080E41BC:
+ cmp r0, 0x1
+ bne _080E41C8
+ ldr r0, _080E41C4 @ =gBattleAnimBankAttacker
+ b _080E41CE
+ .align 2, 0
+_080E41C4: .4byte gBattleAnimBankAttacker
+_080E41C8:
+ cmp r0, 0x2
+ bne _080E41D4
+ ldr r0, _080E41F4 @ =gBattleAnimBankTarget
+_080E41CE:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080E41D4:
+ lsls r1, r4, 5
+ ldr r0, _080E41F8 @ =gPlttBufferUnfaded
+ adds r0, r1, r0
+ ldr r2, _080E41FC @ =gPlttBufferFaded
+ adds r1, r2
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E41F4: .4byte gBattleAnimBankTarget
+_080E41F8: .4byte gPlttBufferUnfaded
+_080E41FC: .4byte gPlttBufferFaded
+ thumb_func_end sub_80E4178
+
+ thumb_func_start sub_80E4200
+sub_80E4200: @ 80E4200
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl NotInBattle
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080E4220
+ ldr r1, _080E421C @ =gBattleAnimArgs
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+ b _080E4224
+ .align 2, 0
+_080E421C: .4byte gBattleAnimArgs
+_080E4220:
+ ldr r0, _080E4230 @ =gBattleAnimArgs
+ strh r1, [r0, 0xE]
+_080E4224:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4230: .4byte gBattleAnimArgs
+ thumb_func_end sub_80E4200
+
+ thumb_func_start sub_80E4234
+sub_80E4234: @ 80E4234
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E4254 @ =gBattleAnimBankAttacker
+ ldr r1, _080E4258 @ =gBankTarget
+ ldrb r1, [r1]
+ strb r1, [r2]
+ ldr r2, _080E425C @ =gBattleAnimBankTarget
+ ldr r1, _080E4260 @ =gEffectBank
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4254: .4byte gBattleAnimBankAttacker
+_080E4258: .4byte gBankTarget
+_080E425C: .4byte gBattleAnimBankTarget
+_080E4260: .4byte gEffectBank
+ thumb_func_end sub_80E4234
+
+ thumb_func_start sub_80E4264
+sub_80E4264: @ 80E4264
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080E428C @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ adds r4, r0, 0
+ ldr r0, _080E4290 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080E4298
+ ldr r1, _080E4294 @ =gBattleAnimArgs
+ movs r0, 0x1
+ b _080E429C
+ .align 2, 0
+_080E428C: .4byte gBattleAnimBankAttacker
+_080E4290: .4byte gBattleAnimBankTarget
+_080E4294: .4byte gBattleAnimArgs
+_080E4298:
+ ldr r1, _080E42AC @ =gBattleAnimArgs
+ movs r0, 0
+_080E429C:
+ strh r0, [r1, 0xE]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E42AC: .4byte gBattleAnimArgs
+ thumb_func_end sub_80E4264
+
+ thumb_func_start sub_80E42B0
+sub_80E42B0: @ 80E42B0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E42C8 @ =gBattleAnimBankTarget
+ ldr r1, _080E42CC @ =gBankTarget
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E42C8: .4byte gBattleAnimBankTarget
+_080E42CC: .4byte gBankTarget
+ thumb_func_end sub_80E42B0
+
+ thumb_func_start sub_80E42D0
+sub_80E42D0: @ 80E42D0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E42F0 @ =gBattleAnimBankAttacker
+ ldr r1, _080E42F4 @ =gBankAttacker
+ ldrb r1, [r1]
+ strb r1, [r2]
+ ldr r2, _080E42F8 @ =gBattleAnimBankTarget
+ ldr r1, _080E42FC @ =gEffectBank
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E42F0: .4byte gBattleAnimBankAttacker
+_080E42F4: .4byte gBankAttacker
+_080E42F8: .4byte gBattleAnimBankTarget
+_080E42FC: .4byte gEffectBank
+ thumb_func_end sub_80E42D0
+
+ thumb_func_start sub_80E4300
+sub_80E4300: @ 80E4300
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E4318
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _080E434E
+_080E4318:
+ ldr r0, _080E4354 @ =gTasks
+ lsls r3, r4, 2
+ adds r3, r4
+ lsls r3, 3
+ adds r3, r0
+ ldr r1, _080E4358 @ =gBattleAnimBankAttacker
+ ldrb r0, [r1]
+ lsls r0, 2
+ ldr r2, _080E435C @ =gSharedMem + 0x17800
+ adds r0, r2
+ ldr r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ strh r0, [r3, 0x8]
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, _080E4360 @ =sub_80E4368
+ str r0, [r3]
+ ldr r1, _080E4364 @ =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_080E434E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4354: .4byte gTasks
+_080E4358: .4byte gBattleAnimBankAttacker
+_080E435C: .4byte gSharedMem + 0x17800
+_080E4360: .4byte sub_80E4368
+_080E4364: .4byte gAnimVisualTaskCount
+ thumb_func_end sub_80E4300
+
+ thumb_func_start sub_80E4368
+sub_80E4368: @ 80E4368
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E43B0 @ =gBattleAnimArgs
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bne _080E43A8
+ ldr r0, _080E43B4 @ =gBattleAnimBankAttacker
+ ldrb r3, [r0]
+ lsls r3, 2
+ ldr r0, _080E43B8 @ =gSharedMem + 0x17800
+ adds r3, r0
+ ldr r1, _080E43BC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r4, 0
+ bl DestroyTask
+_080E43A8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E43B0: .4byte gBattleAnimArgs
+_080E43B4: .4byte gBattleAnimBankAttacker
+_080E43B8: .4byte gSharedMem + 0x17800
+_080E43BC: .4byte gTasks
+ thumb_func_end sub_80E4368
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pc_screen_effect.s b/asm/pc_screen_effect.s
new file mode 100755
index 000000000..665978d19
--- /dev/null
+++ b/asm/pc_screen_effect.s
@@ -0,0 +1,546 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80C5E38
+sub_80C5E38: @ 80C5E38
+ push {r4-r7,lr}
+ sub sp, 0x28
+ adds r7, r0, 0
+ ldr r0, _080C5EC8 @ =gUnknown_083D1898
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ ldr r0, _080C5ECC @ =gUnknown_083D18A0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r1, sp
+ ldr r0, _080C5ED0 @ =gSpriteTemplate_83D18C0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldrh r3, [r7]
+ lsls r2, r3, 16
+ add r0, sp, 0x18
+ ldrh r1, [r0, 0x4]
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ mov r1, sp
+ movs r6, 0
+ strh r3, [r1]
+ ldrh r2, [r7, 0x2]
+ ldr r5, _080C5ED4 @ =0xffff0000
+ add r4, sp, 0x20
+ ldr r1, [r4, 0x4]
+ ands r1, r5
+ orrs r1, r2
+ str r1, [r4, 0x4]
+ mov r1, sp
+ strh r2, [r1, 0x2]
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ movs r0, 0x50
+ strh r0, [r7, 0xC]
+ strh r6, [r7, 0x8]
+ strh r6, [r7, 0xA]
+ ldrh r0, [r7, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ bics r5, r1
+ str r5, [r7, 0x10]
+ ldrh r0, [r7, 0x4]
+ cmp r0, 0
+ bne _080C5EB2
+ movs r0, 0x10
+ strh r0, [r7, 0x4]
+_080C5EB2:
+ ldrh r0, [r7, 0x6]
+ cmp r0, 0
+ bne _080C5EBC
+ movs r0, 0x14
+ strh r0, [r7, 0x6]
+_080C5EBC:
+ ldr r0, _080C5ED8 @ =gUnknown_020387EC
+ str r7, [r0]
+ movs r5, 0
+ ldr r6, _080C5EDC @ =gSprites
+ b _080C5F4A
+ .align 2, 0
+_080C5EC8: .4byte gUnknown_083D1898
+_080C5ECC: .4byte gUnknown_083D18A0
+_080C5ED0: .4byte gSpriteTemplate_83D18C0
+_080C5ED4: .4byte 0xffff0000
+_080C5ED8: .4byte gUnknown_020387EC
+_080C5EDC: .4byte gSprites
+_080C5EE0:
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r7, 0x4]
+ strh r0, [r1, 0x2E]
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+ ldr r1, _080C5EF4 @ =gSprites
+ b _080C5F2A
+ .align 2, 0
+_080C5EF4: .4byte gSprites
+_080C5EF8:
+ lsls r1, r5, 21
+ movs r0, 0x80
+ lsls r0, 16
+ adds r1, r0
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080C5F6E
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r7, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080C5F88 @ =0x0000ffff
+ strh r0, [r1, 0x30]
+ ldr r1, _080C5F8C @ =gSprites
+ lsls r4, r5, 5
+_080C5F2A:
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x8
+ movs r2, 0
+ strh r1, [r0, 0x32]
+ strh r2, [r0, 0x36]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080C5F4A:
+ cmp r5, 0x7
+ bhi _080C5F6E
+ cmp r5, 0x3
+ bhi _080C5EF8
+ lsls r4, r5, 5
+ adds r1, r4, 0
+ subs r1, 0x70
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ bne _080C5EE0
+_080C5F6E:
+ ldr r1, _080C5F90 @ =REG_BLDCNT
+ movs r0, 0xFF
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r0, _080C5F94 @ =sub_80C6078
+ bl sub_80C61B0
+ add sp, 0x28
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5F88: .4byte 0x0000ffff
+_080C5F8C: .4byte gSprites
+_080C5F90: .4byte REG_BLDCNT
+_080C5F94: .4byte sub_80C6078
+ thumb_func_end sub_80C5E38
+
+ thumb_func_start sub_80C5F98
+sub_80C5F98: @ 80C5F98
+ push {r4,lr}
+ ldr r4, _080C5FB0 @ =gUnknown_020387EC
+ ldr r2, [r4]
+ ldrh r0, [r2, 0x8]
+ cmp r0, 0x1
+ beq _080C5FEC
+ cmp r0, 0x1
+ bgt _080C5FB4
+ cmp r0, 0
+ beq _080C5FBA
+ b _080C602C
+ .align 2, 0
+_080C5FB0: .4byte gUnknown_020387EC
+_080C5FB4:
+ cmp r0, 0x2
+ beq _080C6008
+ b _080C602C
+_080C5FBA:
+ ldrh r0, [r2, 0xC]
+ ldrh r1, [r2, 0x6]
+ subs r0, r1
+ strh r0, [r2, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bgt _080C6034
+ ldr r0, [r2, 0x10]
+ ldr r2, _080C5FE4 @ =0x0000ffff
+ movs r1, 0x10
+ bl BlendPalettes
+ ldr r0, _080C5FE8 @ =sub_80C603C
+ bl SetHBlankCallback
+ ldr r1, [r4]
+ movs r0, 0x1
+ strh r0, [r1, 0xC]
+ b _080C6000
+ .align 2, 0
+_080C5FE4: .4byte 0x0000ffff
+_080C5FE8: .4byte sub_80C603C
+_080C5FEC:
+ ldrh r0, [r2, 0xA]
+ cmp r0, 0x8
+ bne _080C6034
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldr r1, [r4]
+_080C6000:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080C6034
+_080C6008:
+ ldr r0, _080C6030 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldrh r0, [r2]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x2]
+ bl FreeSpritePaletteByTag
+ bl ClearGpuRegBits
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C602C:
+ movs r0, 0x1
+ b _080C6036
+ .align 2, 0
+_080C6030: .4byte REG_BLDCNT
+_080C6034:
+ movs r0, 0
+_080C6036:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5F98
+
+ thumb_func_start sub_80C603C
+sub_80C603C: @ 80C603C
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ ldr r0, _080C6060 @ =REG_VCOUNT
+ ldrh r1, [r0]
+ movs r3, 0xFF
+ adds r0, r3, 0
+ ands r0, r1
+ strh r0, [r2]
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r0, 0x50
+ bne _080C6068
+ ldr r1, _080C6064 @ =REG_BLDCNT
+ movs r0, 0x8F
+ strh r0, [r1]
+ b _080C606C
+ .align 2, 0
+_080C6060: .4byte REG_VCOUNT
+_080C6064: .4byte REG_BLDCNT
+_080C6068:
+ ldr r0, _080C6074 @ =REG_BLDCNT
+ strh r3, [r0]
+_080C606C:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6074: .4byte REG_BLDCNT
+ thumb_func_end sub_80C603C
+
+ thumb_func_start sub_80C6078
+sub_80C6078: @ 80C6078
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ ldr r0, _080C60B0 @ =REG_VCOUNT
+ ldrh r1, [r0]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r2]
+ mov r0, sp
+ ldrh r1, [r0]
+ ldr r0, _080C60B4 @ =gUnknown_020387EC
+ ldr r0, [r0]
+ movs r3, 0xC
+ ldrsh r2, [r0, r3]
+ movs r0, 0x50
+ subs r0, r2
+ cmp r1, r0
+ ble _080C60BC
+ mov r0, sp
+ ldrh r1, [r0]
+ adds r0, r2, 0
+ adds r0, 0x50
+ cmp r1, r0
+ bge _080C60BC
+ ldr r1, _080C60B8 @ =REG_BLDY
+ movs r0, 0
+ b _080C60C0
+ .align 2, 0
+_080C60B0: .4byte REG_VCOUNT
+_080C60B4: .4byte gUnknown_020387EC
+_080C60B8: .4byte REG_BLDY
+_080C60BC:
+ ldr r1, _080C60C8 @ =REG_BLDY
+ movs r0, 0x10
+_080C60C0:
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C60C8: .4byte REG_BLDY
+ thumb_func_end sub_80C6078
+
+ thumb_func_start sub_80C60CC
+sub_80C60CC: @ 80C60CC
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bls _080C611C
+ adds r0, r2, 0
+ bl DestroySprite
+ ldr r4, _080C6124 @ =gUnknown_020387EC
+ ldr r1, [r4]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bne _080C611C
+ ldrh r0, [r1]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x2]
+ bl FreeSpritePaletteByTag
+ ldr r0, [r4]
+ ldr r0, [r0, 0x10]
+ ldr r2, _080C6128 @ =0x0000ffff
+ movs r1, 0
+ bl BlendPalettes
+ ldr r0, _080C612C @ =sub_80C6078
+ bl SetHBlankCallback
+_080C611C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6124: .4byte gUnknown_020387EC
+_080C6128: .4byte 0x0000ffff
+_080C612C: .4byte sub_80C6078
+ thumb_func_end sub_80C60CC
+
+ thumb_func_start sub_80C6130
+sub_80C6130: @ 80C6130
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080C61AA
+ ldr r1, _080C6184 @ =gUnknown_020387EC
+ ldr r0, [r1]
+ movs r3, 0xC
+ ldrsh r4, [r0, r3]
+ adds r5, r1, 0
+ cmp r4, 0x1
+ bne _080C61AA
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ adds r0, 0xF
+ lsls r0, 16
+ movs r1, 0x87
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080C616C
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+_080C616C:
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _080C6188
+ movs r0, 0x20
+ ldrsh r1, [r2, r0]
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ blt _080C6196
+ b _080C6194
+ .align 2, 0
+_080C6184: .4byte gUnknown_020387EC
+_080C6188:
+ movs r0, 0x20
+ ldrsh r1, [r2, r0]
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bgt _080C6196
+_080C6194:
+ strh r4, [r2, 0x36]
+_080C6196:
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080C61AA
+ ldr r0, [r5]
+ ldrh r1, [r0, 0xA]
+ adds r1, 0x1
+ strh r1, [r0, 0xA]
+ ldrh r0, [r2, 0x32]
+ strh r0, [r2, 0x20]
+_080C61AA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6130
+
+ thumb_func_start sub_80C61B0
+sub_80C61B0: @ 80C61B0
+ push {r4-r6,lr}
+ ldr r2, _080C61F0 @ =INTR_CHECK
+ ldrh r1, [r2]
+ movs r5, 0x2
+ orrs r1, r5
+ strh r1, [r2]
+ ldr r3, _080C61F4 @ =REG_DISPSTAT
+ ldrh r1, [r3]
+ movs r2, 0x10
+ orrs r1, r2
+ strh r1, [r3]
+ ldr r4, _080C61F8 @ =0x04000208
+ ldrh r2, [r4]
+ movs r6, 0
+ strh r6, [r4]
+ ldr r3, _080C61FC @ =0x04000200
+ ldrh r1, [r3]
+ orrs r1, r5
+ strh r1, [r3]
+ strh r2, [r4]
+ ldr r2, _080C6200 @ =gMain
+ ldrh r1, [r2, 0x1C]
+ orrs r1, r5
+ ldrh r3, [r2, 0x1C]
+ orrs r1, r6
+ strh r1, [r2, 0x1C]
+ bl SetHBlankCallback
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C61F0: .4byte INTR_CHECK
+_080C61F4: .4byte REG_DISPSTAT
+_080C61F8: .4byte 0x04000208
+_080C61FC: .4byte 0x04000200
+_080C6200: .4byte gMain
+ thumb_func_end sub_80C61B0
+
+ thumb_func_start ClearGpuRegBits
+ClearGpuRegBits: @ 80C6204
+ push {r4,r5,lr}
+ ldr r3, _080C6248 @ =INTR_CHECK
+ ldrh r1, [r3]
+ ldr r2, _080C624C @ =0x0000fffd
+ adds r0, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r3, _080C6250 @ =REG_DISPSTAT
+ ldrh r1, [r3]
+ ldr r0, _080C6254 @ =0x0000ffef
+ ands r0, r1
+ strh r0, [r3]
+ ldr r4, _080C6258 @ =0x04000208
+ ldrh r3, [r4]
+ movs r0, 0
+ strh r0, [r4]
+ ldr r5, _080C625C @ =0x04000200
+ ldrh r1, [r5]
+ adds r0, r2, 0
+ ands r0, r1
+ strh r0, [r5]
+ strh r3, [r4]
+ ldr r0, _080C6260 @ =gMain
+ ldrh r1, [r0, 0x1C]
+ ands r2, r1
+ ldrh r1, [r0, 0x1C]
+ strh r2, [r0, 0x1C]
+ movs r0, 0
+ bl SetHBlankCallback
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6248: .4byte INTR_CHECK
+_080C624C: .4byte 0x0000fffd
+_080C6250: .4byte REG_DISPSTAT
+_080C6254: .4byte 0x0000ffef
+_080C6258: .4byte 0x04000208
+_080C625C: .4byte 0x04000200
+_080C6260: .4byte gMain
+ thumb_func_end ClearGpuRegBits
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/poison.s b/asm/poison.s
new file mode 100755
index 000000000..4411027e9
--- /dev/null
+++ b/asm/poison.s
@@ -0,0 +1,364 @@
+ .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 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ 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 gBattleAnimBankTarget
+_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 move_anim_8072740
+_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 @ =gBattleAnimBankTarget
+ 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 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankTarget
+_080D9E6C: .4byte gBattleAnimBankAttacker
+_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 move_anim_8072740
+_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 move_anim_8072740
+_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 @ =gBattleAnimBankTarget
+ 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 @ =gBattleAnimBankAttacker
+ 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 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9F74: .4byte gBattleAnimBankTarget
+_080D9F78: .4byte gBattleAnimBankAttacker
+_080D9F7C: .4byte gBattleAnimArgs
+_080D9F80: .4byte sub_8078B34
+_080D9F84: .4byte move_anim_8072740
+ 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 @ =gBattleAnimBankTarget
+ 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 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankTarget
+_080D9FE8: .4byte gBattleAnimBankAttacker
+_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 move_anim_8072740
+_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 9e380f597..fd5555524 100644
--- a/asm/pokedex_area_screen.s
+++ b/asm/pokedex_area_screen.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -9,7 +8,7 @@
thumb_func_start UnusedPokedexAreaScreen
UnusedPokedexAreaScreen: @ 8110664
push {lr}
- ldr r3, _08110678 @ =0x02000000
+ ldr r3, _08110678 @ =gSharedMem
str r1, [r3, 0x4]
str r2, [r3, 0x8]
strh r0, [r3, 0xE]
@@ -18,7 +17,7 @@ UnusedPokedexAreaScreen: @ 8110664
pop {r0}
bx r0
.align 2, 0
-_08110678: .4byte 0x02000000
+_08110678: .4byte gSharedMem
_0811067C: .4byte CB2_UnusedPokedexAreaScreen
thumb_func_end UnusedPokedexAreaScreen
@@ -89,7 +88,7 @@ _08110714: .4byte REG_BG0VOFS
_08110718: .4byte 0x0000fff8
_0811071C: .4byte REG_BG2VOFS
_08110720:
- ldr r4, _0811073C @ =0x020006e8
+ ldr r4, _0811073C @ =gSharedMem + 0x6E8
adds r0, r4, 0
movs r1, 0
bl InitRegionMap
@@ -102,7 +101,7 @@ _08110720:
bl StringFill
b _081107C0
.align 2, 0
-_0811073C: .4byte 0x020006e8
+_0811073C: .4byte gSharedMem + 0x6E8
_08110740:
bl sub_8110824
b _081107C0
@@ -189,7 +188,7 @@ sub_81107DC: @ 81107DC
thumb_func_start sub_81107F0
sub_81107F0: @ 81107F0
push {lr}
- ldr r0, _08110810 @ =0x02000000
+ ldr r0, _08110810 @ =gSharedMem
ldr r0, [r0]
bl _call_via_r0
bl sub_8111110
@@ -199,23 +198,23 @@ sub_81107F0: @ 81107F0
pop {r0}
bx r0
.align 2, 0
-_08110810: .4byte 0x02000000
+_08110810: .4byte gSharedMem
thumb_func_end sub_81107F0
thumb_func_start sub_8110814
sub_8110814: @ 8110814
- ldr r1, _08110820 @ =0x02000000
+ ldr r1, _08110820 @ =gSharedMem
str r0, [r1]
movs r0, 0
strh r0, [r1, 0xC]
bx lr
.align 2, 0
-_08110820: .4byte 0x02000000
+_08110820: .4byte gSharedMem
thumb_func_end sub_8110814
thumb_func_start sub_8110824
sub_8110824: @ 8110824
- ldr r0, _08110834 @ =0x02000000
+ ldr r0, _08110834 @ =gSharedMem
movs r1, 0x8A
lsls r1, 1
adds r0, r1
@@ -223,13 +222,13 @@ sub_8110824: @ 8110824
strh r1, [r0]
bx lr
.align 2, 0
-_08110834: .4byte 0x02000000
+_08110834: .4byte gSharedMem
thumb_func_end sub_8110824
thumb_func_start DrawAreaGlow
DrawAreaGlow: @ 8110838
push {lr}
- ldr r1, _08110854 @ =0x02000000
+ ldr r1, _08110854 @ =gSharedMem
movs r2, 0x8A
lsls r2, 1
adds r0, r1, r2
@@ -243,7 +242,7 @@ DrawAreaGlow: @ 8110838
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08110854: .4byte 0x02000000
+_08110854: .4byte gSharedMem
_08110858: .4byte _0811085C
.align 2, 0
_0811085C:
@@ -254,12 +253,12 @@ _0811085C:
.4byte _081108C0
.4byte _081108D0
_08110874:
- ldr r0, _08110880 @ =0x02000000
+ ldr r0, _08110880 @ =gSharedMem
ldrh r0, [r0, 0xE]
bl FindMapsWithMon
b _081108F0
.align 2, 0
-_08110880: .4byte 0x02000000
+_08110880: .4byte gSharedMem
_08110884:
bl BuildAreaGlowTilemap
b _081108F0
@@ -273,7 +272,7 @@ _08110894: .4byte gUnknown_083F8438
_08110898: .4byte 0x0600c000
_0811089C:
ldr r1, _081108B0 @ =0x040000d4
- ldr r0, _081108B4 @ =0x02000116
+ ldr r0, _081108B4 @ =gSharedMem + 0x116
str r0, [r1]
ldr r0, _081108B8 @ =0x0600f000
str r0, [r1, 0x4]
@@ -283,7 +282,7 @@ _0811089C:
b _081108F0
.align 2, 0
_081108B0: .4byte 0x040000d4
-_081108B4: .4byte 0x02000116
+_081108B4: .4byte gSharedMem + 0x116
_081108B8: .4byte 0x0600f000
_081108BC: .4byte 0x80000280
_081108C0:
@@ -312,7 +311,7 @@ _081108E4:
_081108E8: .4byte REG_BG0CNT
_081108EC: .4byte 0x00001e0d
_081108F0:
- ldr r1, _08110904 @ =0x02000000
+ ldr r1, _08110904 @ =gSharedMem
movs r2, 0x8A
lsls r2, 1
adds r1, r2
@@ -324,7 +323,7 @@ _08110900:
pop {r1}
bx r1
.align 2, 0
-_08110904: .4byte 0x02000000
+_08110904: .4byte gSharedMem
thumb_func_end DrawAreaGlow
thumb_func_start FindMapsWithMon
@@ -346,7 +345,7 @@ FindMapsWithMon: @ 8110908
bne _0811091E
b _08110A44
_0811091E:
- ldr r2, _08110988 @ =0x02000000
+ ldr r2, _08110988 @ =gSharedMem
movs r1, 0x88
lsls r1, 1
adds r0, r2, r1
@@ -405,7 +404,7 @@ _08110960:
.ifdef SAPPHIRE
_sub_8110908_Latias: .4byte 407
.endif
-_08110988: .4byte 0x02000000
+_08110988: .4byte gSharedMem
_0811098C: .4byte gUnknown_083F856C
_08110990: .4byte gUnknown_083F856E
_08110994:
@@ -501,7 +500,7 @@ _08110A28:
.align 2, 0
_08110A40: .4byte gWildMonHeaders
_08110A44:
- ldr r4, _08110A7C @ =0x02000000
+ ldr r4, _08110A7C @ =gSharedMem
movs r0, 0x89
lsls r0, 1
adds r1, r4, r0
@@ -528,7 +527,7 @@ _08110A44:
strh r0, [r1]
b _08110A8C
.align 2, 0
-_08110A7C: .4byte 0x02000000
+_08110A7C: .4byte gSharedMem
_08110A80: .4byte gSaveBlock1 + 0x3144
_08110A84:
movs r1, 0x88
@@ -551,7 +550,7 @@ SetAreaHasMon: @ 8110A98
lsrs r2, r0, 16
lsls r1, 16
lsrs r1, 16
- ldr r5, _08110AE0 @ =0x02000000
+ ldr r5, _08110AE0 @ =gSharedMem
movs r0, 0x88
lsls r0, 1
adds r4, r5, r0
@@ -581,7 +580,7 @@ _08110AD8:
pop {r0}
bx r0
.align 2, 0
-_08110AE0: .4byte 0x02000000
+_08110AE0: .4byte gSharedMem
thumb_func_end SetAreaHasMon
thumb_func_start SetSpecialMapHasMon
@@ -591,7 +590,7 @@ SetSpecialMapHasMon: @ 8110AE4
lsrs r2, r0, 16
lsls r1, 16
lsrs r1, 16
- ldr r0, _08110B9C @ =0x02000000
+ ldr r0, _08110B9C @ =gSharedMem
movs r3, 0x89
lsls r3, 1
adds r0, r3
@@ -635,7 +634,7 @@ _08110B32:
bne _08110B16
_08110B42:
movs r4, 0
- ldr r0, _08110B9C @ =0x02000000
+ ldr r0, _08110B9C @ =gSharedMem
movs r1, 0x89
lsls r1, 1
adds r2, r0, r1
@@ -683,7 +682,7 @@ _08110B96:
pop {r0}
bx r0
.align 2, 0
-_08110B9C: .4byte 0x02000000
+_08110B9C: .4byte gSharedMem
_08110BA0: .4byte gUnknown_083F857A
thumb_func_end SetSpecialMapHasMon
@@ -779,7 +778,7 @@ BuildAreaGlowTilemap: @ 8110C34
movs r0, 0
strh r0, [r1]
mov r9, r1
- ldr r0, _08110E60 @ =0x02000000
+ ldr r0, _08110E60 @ =gSharedMem
mov r8, r0
ldr r1, _08110E64 @ =gUnknown_02039262
mov r12, r1
@@ -873,7 +872,7 @@ _08110CCC:
strh r0, [r7]
lsls r0, 16
lsrs r0, 16
- ldr r3, _08110E78 @ =0x02000110
+ ldr r3, _08110E78 @ =gSharedMem + 0x110
ldrh r3, [r3]
cmp r0, r3
bcc _08110C9A
@@ -886,7 +885,7 @@ _08110D04:
ldr r6, _08110E64 @ =gUnknown_02039262
mov r10, r0
adds r3, r1, 0
- ldr r5, _08110E7C @ =0x02000116
+ ldr r5, _08110E7C @ =gSharedMem + 0x116
ldr r4, _08110E74 @ =0x0000ffff
ldr r7, _08110E70 @ =gUnknown_02039264
_08110D1A:
@@ -1064,14 +1063,14 @@ _08110E3C:
b _0811105E
.align 2, 0
_08110E5C: .4byte gUnknown_02039260
-_08110E60: .4byte 0x02000000
+_08110E60: .4byte gSharedMem
_08110E64: .4byte gUnknown_02039262
_08110E68: .4byte 0x0000027f
_08110E6C: .4byte gUnknown_02039266
_08110E70: .4byte gUnknown_02039264
_08110E74: .4byte 0x0000ffff
-_08110E78: .4byte 0x02000110
-_08110E7C: .4byte 0x02000116
+_08110E78: .4byte gSharedMem + 0x110
+_08110E7C: .4byte gSharedMem + 0x116
_08110E80:
cmp r1, 0
bne _08110E86
@@ -1341,7 +1340,7 @@ _08111080: .4byte 0x027f0000
thumb_func_start sub_8111084
sub_8111084: @ 8111084
push {lr}
- ldr r0, _081110AC @ =0x02000000
+ ldr r0, _081110AC @ =gSharedMem
movs r2, 0x89
lsls r2, 1
adds r1, r0, r2
@@ -1360,7 +1359,7 @@ sub_8111084: @ 8111084
movs r0, 0x1
b _081110BA
.align 2, 0
-_081110AC: .4byte 0x02000000
+_081110AC: .4byte gSharedMem
_081110B0: .4byte 0x0000061e
_081110B4:
ldr r3, _081110FC @ =0x0000061e
@@ -1413,7 +1412,7 @@ sub_8111110: @ 8111110
mov r7, r9
mov r6, r8
push {r6,r7}
- ldr r0, _0811114C @ =0x02000000
+ ldr r0, _0811114C @ =gSharedMem
ldr r2, _08111150 @ =0x0000061e
adds r1, r0, r2
ldrb r1, [r1]
@@ -1439,7 +1438,7 @@ sub_8111110: @ 8111110
adds r0, r5, r2
b _0811115C
.align 2, 0
-_0811114C: .4byte 0x02000000
+_0811114C: .4byte gSharedMem
_08111150: .4byte 0x0000061e
_08111154: .4byte 0x00000616
_08111158:
@@ -1598,7 +1597,7 @@ _08111284: .4byte 0x0000061e
thumb_func_start sub_8111288
sub_8111288: @ 8111288
push {lr}
- ldr r1, _08111298 @ =0x02000000
+ ldr r1, _08111298 @ =gSharedMem
ldrh r0, [r1, 0xC]
cmp r0, 0
beq _0811129C
@@ -1606,7 +1605,7 @@ sub_8111288: @ 8111288
beq _081112A2
b _081112B2
.align 2, 0
-_08111298: .4byte 0x02000000
+_08111298: .4byte gSharedMem
_0811129C:
movs r0, 0x1
strh r0, [r1, 0xC]
@@ -1628,7 +1627,7 @@ _081112B8: .4byte sub_81112BC
thumb_func_start sub_81112BC
sub_81112BC: @ 81112BC
push {lr}
- ldr r0, _081112DC @ =0x02000000
+ ldr r0, _081112DC @ =gSharedMem
ldrh r0, [r0, 0xC]
cmp r0, 0
bne _08111308
@@ -1642,7 +1641,7 @@ sub_81112BC: @ 81112BC
bl sub_8110814
b _08111308
.align 2, 0
-_081112DC: .4byte 0x02000000
+_081112DC: .4byte gSharedMem
_081112E0: .4byte gMain
_081112E4: .4byte sub_8111314
_081112E8:
@@ -1674,7 +1673,7 @@ _08111310: .4byte sub_8111360
sub_8111314: @ 8111314
push {r4,lr}
sub sp, 0x4
- ldr r4, _08111328 @ =0x02000000
+ ldr r4, _08111328 @ =gSharedMem
ldrh r1, [r4, 0xC]
cmp r1, 0
beq _0811132C
@@ -1682,7 +1681,7 @@ sub_8111314: @ 8111314
beq _08111344
b _08111358
.align 2, 0
-_08111328: .4byte 0x02000000
+_08111328: .4byte gSharedMem
_0811132C:
movs r0, 0x15
negs r0, r0
@@ -1714,7 +1713,7 @@ _08111358:
sub_8111360: @ 8111360
push {r4,lr}
sub sp, 0x4
- ldr r4, _08111374 @ =0x02000000
+ ldr r4, _08111374 @ =gSharedMem
ldrh r1, [r4, 0xC]
cmp r1, 0
beq _08111378
@@ -1722,7 +1721,7 @@ sub_8111360: @ 8111360
beq _08111390
b _081113A4
.align 2, 0
-_08111374: .4byte 0x02000000
+_08111374: .4byte gSharedMem
_08111378:
movs r0, 0x15
negs r0, r0
@@ -1753,7 +1752,7 @@ _081113A4:
thumb_func_start ShowPokedexAreaScreen
ShowPokedexAreaScreen: @ 81113AC
push {r4,lr}
- ldr r2, _081113DC @ =0x02000000
+ ldr r2, _081113DC @ =gSharedMem
movs r3, 0
movs r4, 0
strh r0, [r2, 0xE]
@@ -1776,7 +1775,7 @@ ShowPokedexAreaScreen: @ 81113AC
pop {r0}
bx r0
.align 2, 0
-_081113DC: .4byte 0x02000000
+_081113DC: .4byte gSharedMem
_081113E0: .4byte 0x000006e4
_081113E4: .4byte Task_PokedexAreaScreen_0
_081113E8: .4byte gTasks
@@ -1856,7 +1855,7 @@ _08111488:
bl FreeAllSpritePalettes
b _08111540
_08111496:
- ldr r4, _081114B4 @ =0x020006e8
+ ldr r4, _081114B4 @ =gSharedMem + 0x6E8
adds r0, r4, 0
movs r1, 0
bl InitRegionMap
@@ -1869,7 +1868,7 @@ _08111496:
bl StringFill
b _08111540
.align 2, 0
-_081114B4: .4byte 0x020006e8
+_081114B4: .4byte gSharedMem + 0x6E8
_081114B8:
bl sub_8110824
b _08111540
@@ -2051,7 +2050,7 @@ _0811160A:
cmp r0, 0
bne _0811164C
bl DestroyAreaSprites
- ldr r0, _08111634 @ =0x02000000
+ ldr r0, _08111634 @ =gSharedMem
ldr r1, _08111638 @ =0x000006e4
adds r0, r1
ldr r1, [r0]
@@ -2062,7 +2061,7 @@ _0811160A:
b _0811164C
.align 2, 0
_08111630: .4byte gPaletteFade
-_08111634: .4byte 0x02000000
+_08111634: .4byte gSharedMem
_08111638: .4byte 0x000006e4
_0811163C:
ldr r0, _08111654 @ =gTasks
@@ -2093,7 +2092,7 @@ CreateAreaMarkerSprites: @ 8111658
bl LoadSpritePalette
movs r5, 0
movs r1, 0
- ldr r0, _08111728 @ =0x02000000
+ ldr r0, _08111728 @ =gSharedMem
movs r3, 0x89
lsls r3, 1
adds r2, r0, r3
@@ -2174,7 +2173,7 @@ _081116FC:
cmp r0, r2
blt _08111680
_0811170C:
- ldr r0, _08111728 @ =0x02000000
+ ldr r0, _08111728 @ =gSharedMem
movs r3, 0xDC
lsls r3, 3
adds r0, r3
@@ -2187,7 +2186,7 @@ _0811170C:
.align 2, 0
_08111720: .4byte gUnknown_083F858C
_08111724: .4byte gUnknown_083F8594
-_08111728: .4byte 0x02000000
+_08111728: .4byte gSharedMem
_0811172C: .4byte gRegionMapLocations
_08111730: .4byte gSpriteTemplate_83F85A4
_08111734: .4byte gSprites
@@ -2201,7 +2200,7 @@ DestroyAreaSprites: @ 8111738
movs r0, 0x2
bl FreeSpritePaletteByTag
movs r4, 0
- ldr r1, _081117A4 @ =0x02000000
+ ldr r1, _081117A4 @ =gSharedMem
movs r2, 0xDC
lsls r2, 3
adds r0, r1, r2
@@ -2230,7 +2229,7 @@ _08111776:
movs r0, 0x3
bl FreeSpritePaletteByTag
movs r4, 0
- ldr r5, _081117A8 @ =0x02000fa8
+ ldr r5, _081117A8 @ =gSharedMem + 0xFA8
_08111786:
lsls r0, r4, 2
adds r0, r5
@@ -2248,8 +2247,8 @@ _08111794:
pop {r0}
bx r0
.align 2, 0
-_081117A4: .4byte 0x02000000
-_081117A8: .4byte 0x02000fa8
+_081117A4: .4byte gSharedMem
+_081117A8: .4byte gSharedMem + 0xFA8
thumb_func_end DestroyAreaSprites
thumb_func_start LoadAreaUnknownGraphics
@@ -2262,7 +2261,7 @@ LoadAreaUnknownGraphics: @ 81117AC
str r0, [sp]
str r1, [sp, 0x4]
ldr r0, _081117D8 @ =gAreaUnknownTiles
- ldr r1, _081117DC @ =0x02000fb4
+ ldr r1, _081117DC @ =gSharedMem + 0xFB4
bl LZ77UnCompWram
mov r0, sp
bl LoadSpriteSheet
@@ -2274,14 +2273,14 @@ LoadAreaUnknownGraphics: @ 81117AC
.align 2, 0
_081117D4: .4byte gUnknown_083F8664
_081117D8: .4byte gAreaUnknownTiles
-_081117DC: .4byte 0x02000fb4
+_081117DC: .4byte gSharedMem + 0xFB4
_081117E0: .4byte gUnknown_083F865C
thumb_func_end LoadAreaUnknownGraphics
thumb_func_start CreateAreaUnknownSprites
CreateAreaUnknownSprites: @ 81117E4
push {r4-r7,lr}
- ldr r1, _08111810 @ =0x02000000
+ ldr r1, _08111810 @ =gSharedMem
movs r2, 0x88
lsls r2, 1
adds r0, r1, r2
@@ -2303,7 +2302,7 @@ _081117FC:
bls _081117FC
b _0811188E
.align 2, 0
-_08111810: .4byte 0x02000000
+_08111810: .4byte gSharedMem
_08111814: .4byte 0x00000fa8
_08111818:
movs r4, 0
diff --git a/asm/pokedex_cry_screen.s b/asm/pokedex_cry_screen.s
index da52c84d4..5eea28b99 100644
--- a/asm/pokedex_cry_screen.s
+++ b/asm/pokedex_cry_screen.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -33,7 +32,7 @@ _08119E64:
beq _08119F60
b _08119F74
_08119E6A:
- ldr r4, _08119ECC @ =0x0201c000
+ ldr r4, _08119ECC @ =gSharedMem + 0x1C000
ldrh r0, [r5]
movs r1, 0
strh r0, [r4, 0x14]
@@ -83,7 +82,7 @@ _08119EA6:
mov r1, r12
b _08119F50
.align 2, 0
-_08119ECC: .4byte 0x0201c000
+_08119ECC: .4byte gSharedMem + 0x1C000
_08119ED0: .4byte 0x040000d4
_08119ED4: .4byte gUnknown_083FB718
_08119ED8: .4byte 0xfffe4000
@@ -101,7 +100,7 @@ _08119EE0:
lsls r1, 16
lsrs r6, r1, 16
movs r0, 0
- ldr r2, _08119F58 @ =0x0201c000
+ ldr r2, _08119F58 @ =gSharedMem + 0x1C000
mov r8, r2
movs r1, 0xC0
lsls r1, 19
@@ -154,7 +153,7 @@ _08119F50:
strb r0, [r1]
b _08119F74
.align 2, 0
-_08119F58: .4byte 0x0201c000
+_08119F58: .4byte gSharedMem + 0x1C000
_08119F5C: .4byte gUnknown_03005E98
_08119F60:
bl sub_811A324
@@ -186,7 +185,7 @@ sub_8119F88: @ 8119F88
bl sub_811A324
adds r0, r4, 0
bl sub_811A15C
- ldr r1, _08119FC4 @ =0x0201c000
+ ldr r1, _08119FC4 @ =gSharedMem + 0x1C000
ldrb r0, [r1, 0x1B]
cmp r0, 0
beq _08119FA6
@@ -206,16 +205,16 @@ _08119FA6:
bl sub_811A124
b _0811A044
.align 2, 0
-_08119FC4: .4byte 0x0201c000
+_08119FC4: .4byte gSharedMem + 0x1C000
_08119FC8:
- ldr r5, _08119FD8 @ =0x0201c000
+ ldr r5, _08119FD8 @ =gSharedMem + 0x1C000
ldrb r0, [r5, 0x10]
cmp r0, 0
bne _08119FDC
bl sub_811A124
b _0811A044
.align 2, 0
-_08119FD8: .4byte 0x0201c000
+_08119FD8: .4byte gSharedMem + 0x1C000
_08119FDC:
cmp r0, 0x1
bne _08119FE6
@@ -237,7 +236,7 @@ _08119FFE:
movs r0, 0x1
strb r0, [r5, 0x10]
_0811A006:
- ldr r5, _0811A04C @ =0x0201c000
+ ldr r5, _0811A04C @ =gSharedMem + 0x1C000
ldrb r4, [r5, 0x10]
subs r4, 0x1
lsls r4, 25
@@ -271,7 +270,7 @@ _0811A044:
pop {r0}
bx r0
.align 2, 0
-_0811A04C: .4byte 0x0201c000
+_0811A04C: .4byte gSharedMem + 0x1C000
thumb_func_end sub_8119F88
thumb_func_start sub_811A050
@@ -284,7 +283,7 @@ sub_811A050: @ 811A050
ldr r0, [r0, 0x4]
cmp r0, 0
bge _0811A09A
- ldr r4, _0811A090 @ =0x0201c000
+ ldr r4, _0811A090 @ =gSharedMem + 0x1C000
ldrb r0, [r4, 0x1A]
cmp r0, 0
bne _0811A09A
@@ -305,7 +304,7 @@ sub_811A050: @ 811A050
b _0811A09A
.align 2, 0
_0811A08C: .4byte gMPlay_BGM
-_0811A090: .4byte 0x0201c000
+_0811A090: .4byte gSharedMem + 0x1C000
_0811A094:
adds r0, r6, 0
bl sub_811A0A0
@@ -324,13 +323,13 @@ sub_811A0A0: @ 811A0A0
movs r2, 0x7D
movs r3, 0xA
bl PlayCry2
- ldr r1, _0811A0BC @ =0x0201c000
+ ldr r1, _0811A0BC @ =gSharedMem + 0x1C000
movs r0, 0x1
strb r0, [r1, 0x10]
pop {r0}
bx r0
.align 2, 0
-_0811A0BC: .4byte 0x0201c000
+_0811A0BC: .4byte gSharedMem + 0x1C000
thumb_func_end sub_811A0A0
thumb_func_start sub_811A0C0
@@ -364,7 +363,7 @@ _0811A0F0:
lsls r1, 3
adds r3, r0, r1
movs r2, 0
- ldr r4, _0811A120 @ =0x0201c000
+ ldr r4, _0811A120 @ =gSharedMem + 0x1C000
_0811A0FA:
adds r1, r2, r4
lsls r0, r2, 1
@@ -384,13 +383,13 @@ _0811A0FA:
bx r0
.align 2, 0
_0811A11C: .4byte gSoundInfo
-_0811A120: .4byte 0x0201c000
+_0811A120: .4byte gSharedMem + 0x1C000
thumb_func_end sub_811A0C0
thumb_func_start sub_811A124
sub_811A124: @ 811A124
push {r4,lr}
- ldr r4, _0811A158 @ =0x0201c000
+ ldr r4, _0811A158 @ =gSharedMem + 0x1C000
ldrb r0, [r4, 0x16]
lsls r0, 3
ldrb r1, [r4, 0x11]
@@ -413,7 +412,7 @@ sub_811A124: @ 811A124
pop {r0}
bx r0
.align 2, 0
-_0811A158: .4byte 0x0201c000
+_0811A158: .4byte gSharedMem + 0x1C000
thumb_func_end sub_811A124
thumb_func_start sub_811A15C
@@ -421,7 +420,7 @@ sub_811A15C: @ 811A15C
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
- ldr r4, _0811A1B4 @ =0x0201c000
+ ldr r4, _0811A1B4 @ =gSharedMem + 0x1C000
ldrb r1, [r4, 0x11]
movs r2, 0
bl sub_811A350
@@ -463,7 +462,7 @@ _0811A194:
pop {r0}
bx r0
.align 2, 0
-_0811A1B4: .4byte 0x0201c000
+_0811A1B4: .4byte gSharedMem + 0x1C000
_0811A1B8: .4byte 0x040000d4
_0811A1BC: .4byte gUnknown_083FB718
_0811A1C0: .4byte 0xfffe4000
@@ -500,7 +499,7 @@ _0811A1FE:
str r6, [sp]
movs r7, 0x1
ands r7, r4
- ldr r0, _0811A284 @ =0x0201c000
+ ldr r0, _0811A284 @ =gSharedMem + 0x1C000
mov r10, r0
lsrs r5, 27
mov r8, r5
@@ -528,7 +527,7 @@ _0811A220:
adds r0, r1
lsls r0, 16
lsrs r0, 16
- ldr r1, _0811A290 @ =0x02000000
+ ldr r1, _0811A290 @ =gSharedMem
adds r5, r0, r1
ldrb r4, [r5]
mov r3, r9
@@ -554,7 +553,7 @@ _0811A220:
lsls r0, 24
lsrs r6, r0, 24
ldr r2, [sp, 0x8]
- ldr r3, _0811A284 @ =0x0201c000
+ ldr r3, _0811A284 @ =gSharedMem + 0x1C000
ldrb r3, [r3, 0x12]
cmp r6, r3
bhi _0811A220
@@ -562,10 +561,10 @@ _0811A220:
.align 2, 0
_0811A27C: .4byte 0x40920000
_0811A280: .4byte 0x00000000
-_0811A284: .4byte 0x0201c000
+_0811A284: .4byte gSharedMem + 0x1C000
_0811A288: .4byte gUnknown_083FB738
_0811A28C: .4byte gUnknown_083FB274
-_0811A290: .4byte 0x02000000
+_0811A290: .4byte gSharedMem
_0811A294: .4byte gUnknown_083FB73A
_0811A298:
lsls r1, r7, 4
@@ -589,7 +588,7 @@ _0811A2A6:
adds r0, r1
lsls r0, 16
lsrs r0, 16
- ldr r1, _0811A318 @ =0x02000000
+ ldr r1, _0811A318 @ =gSharedMem
adds r5, r0, r1
ldrb r4, [r5]
mov r2, r9
@@ -613,7 +612,7 @@ _0811A2A6:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
- ldr r2, _0811A320 @ =0x0201c000
+ ldr r2, _0811A320 @ =gSharedMem + 0x1C000
ldrb r2, [r2, 0x12]
cmp r6, r2
bcc _0811A2A6
@@ -632,15 +631,15 @@ _0811A2FA:
bx r0
.align 2, 0
_0811A314: .4byte gUnknown_083FB274
-_0811A318: .4byte 0x02000000
+_0811A318: .4byte gSharedMem
_0811A31C: .4byte gUnknown_083FB73A
-_0811A320: .4byte 0x0201c000
+_0811A320: .4byte gSharedMem + 0x1C000
thumb_func_end sub_811A1C8
thumb_func_start sub_811A324
sub_811A324: @ 811A324
ldr r2, _0811A344 @ =0x040000d4
- ldr r0, _0811A348 @ =0x02000000
+ ldr r0, _0811A348 @ =gSharedMem
str r0, [r2]
movs r1, 0xE0
lsls r1, 9
@@ -656,7 +655,7 @@ sub_811A324: @ 811A324
bx lr
.align 2, 0
_0811A344: .4byte 0x040000d4
-_0811A348: .4byte 0x02000000
+_0811A348: .4byte gSharedMem
_0811A34C: .4byte 0x80000e00
thumb_func_end sub_811A324
@@ -743,7 +742,7 @@ _0811A3C8: .4byte REG_BG3HOFS
DestroyCryMeterNeedleSprite: @ 811A4F8
push {r4,r5,lr}
ldr r5, _0811A52C @ =gSprites
- ldr r4, _0811A530 @ =0x0201c800
+ ldr r4, _0811A530 @ =gSharedMem + 0x1C800
ldrh r1, [r4, 0x4]
lsls r0, r1, 4
adds r0, r1
@@ -766,7 +765,7 @@ DestroyCryMeterNeedleSprite: @ 811A4F8
bx r0
.align 2, 0
_0811A52C: .4byte gSprites
-_0811A530: .4byte 0x0201c800
+_0811A530: .4byte gSharedMem + 0x1C800
thumb_func_end DestroyCryMeterNeedleSprite
thumb_func_start sub_811A534
@@ -775,7 +774,7 @@ sub_811A534: @ 811A534
sub sp, 0x14
adds r7, r0, 0
ldr r3, _0811A578 @ =gSprites
- ldr r5, _0811A57C @ =0x0201c800
+ ldr r5, _0811A57C @ =gSharedMem + 0x1C800
ldrh r1, [r5, 0x4]
lsls r0, r1, 4
adds r0, r1
@@ -807,7 +806,7 @@ sub_811A534: @ 811A534
b _0811A5F4
.align 2, 0
_0811A578: .4byte gSprites
-_0811A57C: .4byte 0x0201c800
+_0811A57C: .4byte gSharedMem + 0x1C800
_0811A580: .4byte 0xfffff800
_0811A584:
cmp r0, 0x6
@@ -874,7 +873,7 @@ _0811A5E2:
_0811A5F4:
add r4, sp, 0xC
_0811A5F6:
- ldr r0, _0811A624 @ =0x0201c800
+ ldr r0, _0811A624 @ =gSharedMem + 0x1C800
ldrb r3, [r0]
movs r2, 0
ldrsb r2, [r0, r2]
@@ -896,7 +895,7 @@ _0811A5F6:
b _0811A636
.align 2, 0
_0811A620: .4byte 0xfffff80a
-_0811A624: .4byte 0x0201c800
+_0811A624: .4byte gSharedMem + 0x1C800
_0811A628:
ldrb r0, [r5, 0x2]
subs r0, r3, r0
@@ -1004,14 +1003,14 @@ sub_811A6D8: @ 811A6D8
bhi _0811A6F4
movs r2, 0xE0
_0811A6F4:
- ldr r1, _0811A700 @ =0x0201c800
+ ldr r1, _0811A700 @ =gSharedMem + 0x1C800
strb r2, [r1, 0x1]
movs r0, 0x5
strb r0, [r1, 0x2]
pop {r0}
bx r0
.align 2, 0
-_0811A700: .4byte 0x0201c800
+_0811A700: .4byte gSharedMem + 0x1C800
thumb_func_end sub_811A6D8
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s
index dc74831d5..822c4c566 100644
--- a/asm/pokemon_item_effect.s
+++ b/asm/pokemon_item_effect.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -1099,7 +1098,7 @@ _0803EA4C:
movs r0, 0x1
b _0803EA6A
_0803EA62:
- ldr r0, _0803EB24 @ =0x02000000
+ ldr r0, _0803EB24 @ =gSharedMem
ldr r5, _0803EB28 @ =0x000160fa
adds r0, r5
ldrb r0, [r0]
@@ -1192,7 +1191,7 @@ _0803EB08:
strb r5, [r4]
b _0803EB48
.align 2, 0
-_0803EB24: .4byte 0x02000000
+_0803EB24: .4byte gSharedMem
_0803EB28: .4byte 0x000160fa
_0803EB2C: .4byte gMain
_0803EB30: .4byte 0x0000043d
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index eaf44749b..7670d867d 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -1,259 +1,10 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
- thumb_func_start sub_8095904
-sub_8095904: @ 8095904
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- str r0, [sp]
- adds r7, r1, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x3C]
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x4]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- ldr r0, [sp]
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r4, 0
- bne _08095988
- movs r5, 0
- cmp r5, r8
- bcs _08095A2E
-_0809593E:
- ldr r1, [sp]
- adds r0, r1, r5
- ldrb r2, [r0]
- ldr r0, _08095980 @ =0x0000fff0
- ands r0, r2
- lsls r0, 6
- movs r1, 0xF
- ands r2, r1
- lsls r2, 5
- adds r0, r2
- ldr r1, _08095984 @ =gFont3LatinGlyphs
- adds r4, r0, r1
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x10
- bl CpuSet
- movs r2, 0x80
- lsls r2, 2
- adds r0, r4, r2
- ldr r3, [sp, 0x4]
- adds r1, r7, r3
- movs r2, 0x10
- bl CpuSet
- adds r7, 0x20
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _0809593E
- b _08095A2E
- .align 2, 0
-_08095980: .4byte 0x0000fff0
-_08095984: .4byte gFont3LatinGlyphs
-_08095988:
- movs r0, 0
- mov r9, r0
- ldr r1, [sp, 0x8]
- lsls r0, r1, 28
- lsrs r0, 24
- str r0, [sp, 0xC]
- mov r2, r8
- lsls r0, r2, 21
- movs r1, 0
- lsrs r0, 1
- str r0, [sp, 0x10]
-_0809599E:
- movs r5, 0
- ldr r3, [sp, 0x4]
- adds r3, r7, r3
- str r3, [sp, 0x14]
- adds r0, r1, 0x1
- str r0, [sp, 0x18]
- cmp r5, r8
- bcs _08095A12
- movs r2, 0xF
- mov r12, r2
- lsls r1, 9
- ldr r0, _08095A40 @ =gFont3LatinGlyphs
- adds r1, r0
- mov r10, r1
-_080959BA:
- ldr r3, [sp]
- adds r0, r3, r5
- ldrb r1, [r0]
- ldr r0, _08095A44 @ =0x0000fff0
- ands r0, r1
- lsls r0, 6
- mov r2, r12
- ands r1, r2
- lsls r1, 5
- adds r0, r1
- mov r3, r10
- adds r4, r0, r3
- movs r6, 0
- adds r5, 0x1
-_080959D6:
- ldrb r0, [r4]
- movs r3, 0xF0
- ands r3, r0
- mov r2, r12
- ands r2, r0
- cmp r3, 0
- bne _080959E6
- ldr r3, [sp, 0xC]
-_080959E6:
- cmp r2, 0
- bne _080959EC
- ldr r2, [sp, 0x8]
-_080959EC:
- mov r0, r9
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldr r1, [sp, 0x40]
- adds r0, r1, r0
- orrs r3, r2
- strb r3, [r0]
- adds r4, 0x1
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x1F
- bls _080959D6
- lsls r0, r5, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _080959BA
-_08095A12:
- ldr r0, [sp, 0x40]
- adds r1, r7, 0
- ldr r3, [sp, 0x10]
- lsrs r2, r3, 16
- bl CpuSet
- ldr r7, [sp, 0x14]
- movs r0, 0
- mov r9, r0
- ldr r1, [sp, 0x18]
- lsls r0, r1, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bls _0809599E
-_08095A2E:
- 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
-_08095A40: .4byte gFont3LatinGlyphs
-_08095A44: .4byte 0x0000fff0
- thumb_func_end sub_8095904
-
- thumb_func_start unref_sub_8095A48
-unref_sub_8095A48: @ 8095A48
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r7, r3, 24
- movs r6, 0
-_08095A60:
- movs r3, 0
- ldrb r0, [r4]
- adds r1, r0, 0
- adds r2, r0, 0
- cmp r1, 0xFF
- beq _08095ACE
-_08095A6C:
- mov r0, sp
- adds r0, r3
- adds r0, 0x8
- strb r2, [r0]
- adds r4, 0x1
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bhi _08095AA8
- ldrb r0, [r4]
- adds r1, r0, 0
- adds r2, r0, 0
- cmp r1, 0xFF
- bne _08095A6C
- cmp r3, 0
- beq _08095ACE
- movs r6, 0x1
- cmp r3, 0x3
- bhi _08095AA8
- movs r2, 0
-_08095A96:
- adds r0, r3, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- add r0, sp
- adds r0, 0x8
- strb r2, [r0]
- cmp r3, 0x3
- bls _08095A96
-_08095AA8:
- mov r1, sp
- adds r1, r3
- adds r1, 0x8
- movs r0, 0xFF
- strb r0, [r1]
- str r7, [sp]
- ldr r0, [sp, 0x28]
- str r0, [sp, 0x4]
- add r0, sp, 0x8
- adds r1, r5, 0
- mov r2, r8
- movs r3, 0x80
- bl sub_8095904
- movs r0, 0x80
- lsls r0, 1
- adds r5, r0
- cmp r6, 0
- beq _08095A60
-_08095ACE:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8095A48
-
thumb_func_start sub_8095ADC
sub_8095ADC: @ 8095ADC
push {r4-r6,lr}
@@ -1953,7 +1704,7 @@ task_intro_29: @ 80967B8
lsrs r0, 24
ldr r1, _080967D0 @ =gUnknown_0203847D
strb r0, [r1]
- ldr r1, _080967D4 @ =0x02000000
+ ldr r1, _080967D4 @ =gSharedMem
strb r0, [r1, 0x5]
ldr r0, _080967D8 @ =sub_8096884
bl SetMainCallback2
@@ -1961,7 +1712,7 @@ task_intro_29: @ 80967B8
bx r0
.align 2, 0
_080967D0: .4byte gUnknown_0203847D
-_080967D4: .4byte 0x02000000
+_080967D4: .4byte gSharedMem
_080967D8: .4byte sub_8096884
thumb_func_end task_intro_29
@@ -2002,7 +1753,7 @@ sub_8096804: @ 8096804
lsls r2, 2
adds r0, r2, 0
strh r0, [r1]
- ldr r0, _08096840 @ =0x02000020
+ ldr r0, _08096840 @ =gSharedMem + 0x20
adds r1, r0, 0
adds r1, 0x8
movs r2, 0x8
@@ -2014,7 +1765,7 @@ sub_8096804: @ 8096804
bx r0
.align 2, 0
_0809683C: .4byte gReservedSpriteTileCount
-_08096840: .4byte 0x02000020
+_08096840: .4byte gSharedMem + 0x20
_08096844: .4byte gKeyRepeatStartDelay
thumb_func_end sub_8096804
@@ -2024,7 +1775,7 @@ sub_8096848: @ 8096848
bl sub_809B0D4
ldr r2, _08096868 @ =gUnknown_0203847C
movs r1, 0
- ldr r0, _0809686C @ =0x02000000
+ ldr r0, _0809686C @ =gSharedMem
ldrb r0, [r0, 0x5]
cmp r0, 0x1
bne _0809685C
@@ -2038,7 +1789,7 @@ _0809685C:
bx r0
.align 2, 0
_08096868: .4byte gUnknown_0203847C
-_0809686C: .4byte 0x02000000
+_0809686C: .4byte gSharedMem
_08096870: .4byte gUnknown_0203847E
thumb_func_end sub_8096848
@@ -2128,7 +1879,7 @@ _0809692A:
ldr r0, _08096950 @ =gPokemonStorage
ldrb r0, [r0]
bl sub_8099BF8
- ldr r2, _08096954 @ =0x02000000
+ ldr r2, _08096954 @ =gSharedMem
ldr r1, _08096958 @ =0x000012bc
adds r0, r2, r1
movs r1, 0xA
@@ -2142,7 +1893,7 @@ _0809692A:
b _0809697A
.align 2, 0
_08096950: .4byte gPokemonStorage
-_08096954: .4byte 0x02000000
+_08096954: .4byte gSharedMem
_08096958: .4byte 0x000012bc
_0809695C: .4byte 0x000012be
_08096960: .4byte 0x0000dacb
@@ -2213,7 +1964,7 @@ _080969F4:
lsls r1, 19
movs r0, 0
strh r0, [r1]
- ldr r1, _08096A28 @ =0x02000000
+ ldr r1, _08096A28 @ =gSharedMem
ldr r0, _08096A2C @ =gUnknown_0203847D
ldrb r0, [r0]
strb r0, [r1, 0x5]
@@ -2230,7 +1981,7 @@ _08096A1A:
bl sub_809BD14
b _08096AD8
.align 2, 0
-_08096A28: .4byte 0x02000000
+_08096A28: .4byte gSharedMem
_08096A2C: .4byte gUnknown_0203847D
_08096A30: .4byte gUnknown_0203847F
_08096A34:
@@ -2266,7 +2017,7 @@ _08096A72:
ldr r0, _08096A98 @ =gPokemonStorage
ldrb r0, [r0]
bl sub_8099BF8
- ldr r2, _08096A9C @ =0x02000000
+ ldr r2, _08096A9C @ =gSharedMem
ldr r1, _08096AA0 @ =0x000012bc
adds r0, r2, r1
movs r1, 0xA
@@ -2280,7 +2031,7 @@ _08096A72:
b _08096AD8
.align 2, 0
_08096A98: .4byte gPokemonStorage
-_08096A9C: .4byte 0x02000000
+_08096A9C: .4byte gSharedMem
_08096AA0: .4byte 0x000012bc
_08096AA4: .4byte 0x000012be
_08096AA8: .4byte 0x0000dacb
@@ -2326,7 +2077,7 @@ _08096AF8: .4byte 0x0000043c
sub_8096AFC: @ 8096AFC
push {lr}
ldr r2, _08096B2C @ =REG_BG2HOFS
- ldr r1, _08096B30 @ =0x02000000
+ ldr r1, _08096B30 @ =gSharedMem
ldr r3, _08096B34 @ =0x000008b4
adds r0, r1, r3
ldrh r0, [r0]
@@ -2345,14 +2096,14 @@ sub_8096AFC: @ 8096AFC
bx r0
.align 2, 0
_08096B2C: .4byte REG_BG2HOFS
-_08096B30: .4byte 0x02000000
+_08096B30: .4byte gSharedMem
_08096B34: .4byte 0x000008b4
thumb_func_end sub_8096AFC
thumb_func_start sub_8096B38
sub_8096B38: @ 8096B38
push {lr}
- ldr r0, _08096B58 @ =0x02000000
+ ldr r0, _08096B58 @ =gSharedMem
ldr r0, [r0]
bl _call_via_r0
bl sub_8097E44
@@ -2362,14 +2113,14 @@ sub_8096B38: @ 8096B38
pop {r0}
bx r0
.align 2, 0
-_08096B58: .4byte 0x02000000
+_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 @ =0x02000000
+ ldr r4, _08096B70 @ =gSharedMem
ldrb r0, [r4, 0x6]
cmp r0, 0
beq _08096B74
@@ -2377,7 +2128,7 @@ sub_8096B5C: @ 8096B5C
beq _08096BAC
b _08096BCC
.align 2, 0
-_08096B70: .4byte 0x02000000
+_08096B70: .4byte gSharedMem
_08096B74:
ldr r1, _08096B98 @ =0x00002690
adds r0, r4, r1
@@ -2430,19 +2181,19 @@ _08096BDC: .4byte sub_80969A0
thumb_func_start sub_8096BE0
sub_8096BE0: @ 8096BE0
- ldr r1, _08096BEC @ =0x02000000
+ ldr r1, _08096BEC @ =gSharedMem
str r0, [r1]
movs r0, 0
strb r0, [r1, 0x4]
bx lr
.align 2, 0
-_08096BEC: .4byte 0x02000000
+_08096BEC: .4byte gSharedMem
thumb_func_end sub_8096BE0
thumb_func_start sub_8096BF0
sub_8096BF0: @ 8096BF0
push {r4,lr}
- ldr r4, _08096C04 @ =0x02000000
+ ldr r4, _08096C04 @ =gSharedMem
ldrb r0, [r4, 0x4]
cmp r0, 0x1
beq _08096C16
@@ -2452,7 +2203,7 @@ sub_8096BF0: @ 8096BF0
beq _08096C0E
b _08096C5C
.align 2, 0
-_08096C04: .4byte 0x02000000
+_08096C04: .4byte gSharedMem
_08096C08:
cmp r0, 0x2
beq _08096C4C
@@ -2521,7 +2272,7 @@ _08096C80: .4byte sub_8096C84
thumb_func_start sub_8096C84
sub_8096C84: @ 8096C84
push {r4,lr}
- ldr r0, _08096C9C @ =0x02000000
+ ldr r0, _08096C9C @ =gSharedMem
ldrb r0, [r0, 0x4]
cmp r0, 0x6
bls _08096C90
@@ -2533,7 +2284,7 @@ _08096C90:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08096C9C: .4byte 0x02000000
+_08096C9C: .4byte gSharedMem
_08096CA0: .4byte _08096CA4
.align 2, 0
_08096CA4:
@@ -2581,14 +2332,14 @@ _08096CE0:
_08096D20:
movs r0, 0x5
bl PlaySE
- ldr r1, _08096D30 @ =0x02000000
+ ldr r1, _08096D30 @ =gSharedMem
movs r0, 0x1
strb r0, [r1, 0x4]
b _08096FBA
.align 2, 0
-_08096D30: .4byte 0x02000000
+_08096D30: .4byte gSharedMem
_08096D34:
- ldr r4, _08096D48 @ =0x02000000
+ ldr r4, _08096D48 @ =gSharedMem
ldrb r0, [r4, 0x5]
cmp r0, 0x2
beq _08096D4C
@@ -2598,7 +2349,7 @@ _08096D34:
strb r0, [r4, 0x4]
b _08096FBA
.align 2, 0
-_08096D48: .4byte 0x02000000
+_08096D48: .4byte gSharedMem
_08096D4C:
bl sub_809B0D4
ldr r0, _08096D58 @ =sub_8096FC8
@@ -2607,7 +2358,7 @@ _08096D4C:
.align 2, 0
_08096D58: .4byte sub_8096FC8
_08096D5C:
- ldr r4, _08096D88 @ =0x02000000
+ ldr r4, _08096D88 @ =gSharedMem
ldrb r0, [r4, 0x5]
cmp r0, 0x2
beq _08096D66
@@ -2629,7 +2380,7 @@ _08096D80:
bl sub_8096BE0
b _08096FBA
.align 2, 0
-_08096D88: .4byte 0x02000000
+_08096D88: .4byte gSharedMem
_08096D8C: .4byte 0x000011f2
_08096D90: .4byte sub_8097004
_08096D94:
@@ -2663,7 +2414,7 @@ _08096DD0: .4byte sub_8097078
_08096DD4:
movs r0, 0x5
bl PlaySE
- ldr r4, _08096DF0 @ =0x02000000
+ ldr r4, _08096DF0 @ =gSharedMem
ldr r0, _08096DF4 @ =gPokemonStorage
ldrb r0, [r0]
adds r0, 0x1
@@ -2675,13 +2426,13 @@ _08096DD4:
movs r0, 0
b _08096E16
.align 2, 0
-_08096DF0: .4byte 0x02000000
+_08096DF0: .4byte gSharedMem
_08096DF4: .4byte gPokemonStorage
_08096DF8: .4byte 0x000008b2
_08096DFC:
movs r0, 0x5
bl PlaySE
- ldr r4, _08096E24 @ =0x02000000
+ ldr r4, _08096E24 @ =gSharedMem
ldr r0, _08096E28 @ =gPokemonStorage
ldrb r0, [r0]
subs r0, 0x1
@@ -2700,7 +2451,7 @@ _08096E18:
strb r0, [r4, 0x4]
b _08096FBA
.align 2, 0
-_08096E24: .4byte 0x02000000
+_08096E24: .4byte gSharedMem
_08096E28: .4byte gPokemonStorage
_08096E2C: .4byte 0x000008b2
_08096E30:
@@ -2708,7 +2459,7 @@ _08096E30:
lsls r0, 24
cmp r0, 0
bne _08096E96
- ldr r4, _08096E54 @ =0x02000000
+ ldr r4, _08096E54 @ =gSharedMem
ldr r1, _08096E58 @ =0x000011f2
adds r0, r4, r1
ldrh r0, [r0]
@@ -2721,7 +2472,7 @@ _08096E4C:
strb r0, [r4, 0x4]
b _08096FBA
.align 2, 0
-_08096E54: .4byte 0x02000000
+_08096E54: .4byte gSharedMem
_08096E58: .4byte 0x000011f2
_08096E5C:
movs r0, 0x5
@@ -2749,12 +2500,12 @@ _08096E8C:
cmp r0, 0
bne _08096EA4
_08096E96:
- ldr r1, _08096EA0 @ =0x02000000
+ ldr r1, _08096EA0 @ =gSharedMem
movs r0, 0x4
strb r0, [r1, 0x4]
b _08096FBA
.align 2, 0
-_08096EA0: .4byte 0x02000000
+_08096EA0: .4byte gSharedMem
_08096EA4:
movs r0, 0x5
bl PlaySE
@@ -2793,7 +2544,7 @@ _08096EE0:
_08096EFA:
bl sub_8098710
_08096EFE:
- ldr r4, _08096F14 @ =0x02000000
+ ldr r4, _08096F14 @ =gSharedMem
ldr r2, _08096F18 @ =0x000011f6
adds r0, r4, r2
ldrb r0, [r0]
@@ -2805,7 +2556,7 @@ _08096F0E:
strb r0, [r4, 0x4]
b _08096FBA
.align 2, 0
-_08096F14: .4byte 0x02000000
+_08096F14: .4byte gSharedMem
_08096F18: .4byte 0x000011f6
_08096F1C:
bl sub_8099D34
@@ -2813,7 +2564,7 @@ _08096F1C:
cmp r0, 0
bne _08096FBA
ldr r1, _08096F50 @ =gPokemonStorage
- ldr r0, _08096F54 @ =0x02000000
+ ldr r0, _08096F54 @ =gSharedMem
ldr r2, _08096F58 @ =0x000008b2
adds r0, r2
ldrh r0, [r0]
@@ -2831,7 +2582,7 @@ _08096F1C:
b _08096F70
.align 2, 0
_08096F50: .4byte gPokemonStorage
-_08096F54: .4byte 0x02000000
+_08096F54: .4byte gSharedMem
_08096F58: .4byte 0x000008b2
_08096F5C: .4byte gUnknown_0203847C
_08096F60:
@@ -2843,13 +2594,13 @@ _08096F60:
beq _08096FBA
bl sub_8098A5C
_08096F70:
- ldr r1, _08096F7C @ =0x02000000
+ ldr r1, _08096F7C @ =gSharedMem
movs r0, 0
strb r0, [r1, 0x4]
b _08096FBA
.align 2, 0
_08096F78: .4byte gMain
-_08096F7C: .4byte 0x02000000
+_08096F7C: .4byte gSharedMem
_08096F80:
movs r0, 0x20
bl PlaySE
@@ -2861,12 +2612,12 @@ _08096F8A:
movs r0, 0x16
_08096F92:
bl sub_8098898
- ldr r1, _08096FA0 @ =0x02000000
+ ldr r1, _08096FA0 @ =gSharedMem
movs r0, 0x6
strb r0, [r1, 0x4]
b _08096FBA
.align 2, 0
-_08096FA0: .4byte 0x02000000
+_08096FA0: .4byte gSharedMem
_08096FA4:
ldr r0, _08096FC0 @ =gMain
ldrh r1, [r0, 0x2E]
@@ -2889,7 +2640,7 @@ _08096FC4: .4byte sub_8096C84
thumb_func_start sub_8096FC8
sub_8096FC8: @ 8096FC8
push {r4,lr}
- ldr r4, _08096FD8 @ =0x02000000
+ ldr r4, _08096FD8 @ =gSharedMem
ldrb r0, [r4, 0x4]
cmp r0, 0
beq _08096FDC
@@ -2897,7 +2648,7 @@ sub_8096FC8: @ 8096FC8
beq _08096FE8
b _08096FF8
.align 2, 0
-_08096FD8: .4byte 0x02000000
+_08096FD8: .4byte gSharedMem
_08096FDC:
bl sub_809880C
ldrb r0, [r4, 0x4]
@@ -2922,7 +2673,7 @@ _08097000: .4byte sub_8096C84
thumb_func_start sub_8097004
sub_8097004: @ 8097004
push {r4,lr}
- ldr r4, _08097018 @ =0x02000000
+ ldr r4, _08097018 @ =gSharedMem
ldrb r0, [r4, 0x4]
cmp r0, 0x1
beq _0809702E
@@ -2932,7 +2683,7 @@ sub_8097004: @ 8097004
beq _08097022
b _0809706A
.align 2, 0
-_08097018: .4byte 0x02000000
+_08097018: .4byte gSharedMem
_0809701C:
cmp r0, 0x2
beq _0809704C
@@ -2982,7 +2733,7 @@ _08097074: .4byte sub_8096C84
thumb_func_start sub_8097078
sub_8097078: @ 8097078
push {r4,lr}
- ldr r0, _08097090 @ =0x02000000
+ ldr r0, _08097090 @ =gSharedMem
ldrb r0, [r0, 0x4]
cmp r0, 0x5
bls _08097084
@@ -2994,7 +2745,7 @@ _08097084:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08097090: .4byte 0x02000000
+_08097090: .4byte gSharedMem
_08097094: .4byte _08097098
.align 2, 0
_08097098:
@@ -3008,12 +2759,12 @@ _080970B0:
movs r0, 0x4
bl sub_8098898
bl sub_809CE84
- ldr r1, _080970C4 @ =0x02000000
+ ldr r1, _080970C4 @ =gSharedMem
movs r0, 0x1
strb r0, [r1, 0x4]
b _0809729A
.align 2, 0
-_080970C4: .4byte 0x02000000
+_080970C4: .4byte gSharedMem
_080970C8:
bl sub_809CF30
adds r0, 0x1
@@ -3098,7 +2849,7 @@ _08097190:
lsls r0, 24
cmp r0, 0
bne _080971D6
- ldr r4, _080971C0 @ =0x02000000
+ ldr r4, _080971C0 @ =gSharedMem
ldr r1, _080971C4 @ =0x000011f2
adds r0, r4, r1
ldrh r0, [r0]
@@ -3113,7 +2864,7 @@ _08097190:
bl sub_8096BE0
b _0809729A
.align 2, 0
-_080971C0: .4byte 0x02000000
+_080971C0: .4byte gSharedMem
_080971C4: .4byte 0x000011f2
_080971C8: .4byte sub_809746C
_080971CC:
@@ -3122,14 +2873,14 @@ _080971CC:
cmp r0, 0
beq _080971E4
_080971D6:
- ldr r1, _080971E0 @ =0x02000000
+ ldr r1, _080971E0 @ =gSharedMem
movs r0, 0x2
strb r0, [r1, 0x4]
b _0809729A
.align 2, 0
-_080971E0: .4byte 0x02000000
+_080971E0: .4byte gSharedMem
_080971E4:
- ldr r4, _080971F8 @ =0x02000000
+ ldr r4, _080971F8 @ =gSharedMem
ldr r1, _080971FC @ =0x000011f9
adds r0, r4, r1
ldrb r0, [r0]
@@ -3139,7 +2890,7 @@ _080971E4:
strb r0, [r4, 0x4]
b _0809729A
.align 2, 0
-_080971F8: .4byte 0x02000000
+_080971F8: .4byte gSharedMem
_080971FC: .4byte 0x000011f9
_08097200:
ldr r1, _08097218 @ =0x000011f2
@@ -3195,12 +2946,12 @@ _0809726C:
movs r0, 0x16
_08097274:
bl sub_8098898
- ldr r1, _08097280 @ =0x02000000
+ ldr r1, _08097280 @ =gSharedMem
movs r0, 0x5
strb r0, [r1, 0x4]
b _0809729A
.align 2, 0
-_08097280: .4byte 0x02000000
+_08097280: .4byte gSharedMem
_08097284:
ldr r0, _080972A0 @ =gMain
ldrh r1, [r0, 0x2E]
@@ -3223,7 +2974,7 @@ _080972A4: .4byte sub_8096C84
thumb_func_start sub_80972A8
sub_80972A8: @ 80972A8
push {r4,lr}
- ldr r4, _080972B8 @ =0x02000000
+ ldr r4, _080972B8 @ =gSharedMem
ldrb r0, [r4, 0x4]
cmp r0, 0
beq _080972BC
@@ -3231,7 +2982,7 @@ sub_80972A8: @ 80972A8
beq _080972CA
b _080972F2
.align 2, 0
-_080972B8: .4byte 0x02000000
+_080972B8: .4byte gSharedMem
_080972BC:
movs r0, 0
bl sub_809B100
@@ -3268,7 +3019,7 @@ _080972F8: .4byte sub_8096C84
thumb_func_start sub_80972FC
sub_80972FC: @ 80972FC
push {r4,lr}
- ldr r4, _0809730C @ =0x02000000
+ ldr r4, _0809730C @ =gSharedMem
ldrb r0, [r4, 0x4]
cmp r0, 0
beq _08097310
@@ -3276,7 +3027,7 @@ sub_80972FC: @ 80972FC
beq _0809731E
b _08097346
.align 2, 0
-_0809730C: .4byte 0x02000000
+_0809730C: .4byte gSharedMem
_08097310:
movs r0, 0x1
bl sub_809B100
@@ -3313,7 +3064,7 @@ _0809734C: .4byte sub_8096C84
thumb_func_start c3_0808DC50
c3_0808DC50: @ 8097350
push {r4,lr}
- ldr r4, _08097360 @ =0x02000000
+ ldr r4, _08097360 @ =gSharedMem
ldrb r0, [r4, 0x4]
cmp r0, 0
beq _08097364
@@ -3321,7 +3072,7 @@ c3_0808DC50: @ 8097350
beq _08097372
b _08097386
.align 2, 0
-_08097360: .4byte 0x02000000
+_08097360: .4byte gSharedMem
_08097364:
movs r0, 0x2
bl sub_809B100
@@ -3348,7 +3099,7 @@ _0809738C: .4byte sub_8096C84
thumb_func_start sub_8097390
sub_8097390: @ 8097390
push {lr}
- ldr r0, _080973A4 @ =0x02000000
+ ldr r0, _080973A4 @ =gSharedMem
ldrb r0, [r0, 0x4]
cmp r0, 0x5
bhi _08097462
@@ -3358,7 +3109,7 @@ sub_8097390: @ 8097390
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080973A4: .4byte 0x02000000
+_080973A4: .4byte gSharedMem
_080973A8: .4byte _080973AC
.align 2, 0
_080973AC:
@@ -3376,22 +3127,22 @@ _080973C4:
bne _080973E4
movs r0, 0xE
bl sub_8098898
- ldr r1, _080973E0 @ =0x02000000
+ ldr r1, _080973E0 @ =gSharedMem
movs r0, 0x1
strb r0, [r1, 0x4]
b _08097462
.align 2, 0
-_080973E0: .4byte 0x02000000
+_080973E0: .4byte gSharedMem
_080973E4:
bl sub_809B0E0
movs r0, 0
bl sub_809B100
- ldr r1, _080973F8 @ =0x02000000
+ ldr r1, _080973F8 @ =gSharedMem
movs r0, 0x2
strb r0, [r1, 0x4]
b _08097462
.align 2, 0
-_080973F8: .4byte 0x02000000
+_080973F8: .4byte gSharedMem
_080973FC:
ldr r0, _08097414 @ =gMain
ldrh r1, [r0, 0x2E]
@@ -3428,13 +3179,13 @@ _0809743E:
bne _08097462
bl sub_80987DC
_0809744C:
- ldr r1, _08097458 @ =0x02000000
+ ldr r1, _08097458 @ =gSharedMem
ldrb r0, [r1, 0x4]
adds r0, 0x1
strb r0, [r1, 0x4]
b _08097462
.align 2, 0
-_08097458: .4byte 0x02000000
+_08097458: .4byte gSharedMem
_0809745C:
ldr r0, _08097468 @ =sub_8097004
bl sub_8096BE0
@@ -3448,7 +3199,7 @@ _08097468: .4byte sub_8097004
thumb_func_start sub_809746C
sub_809746C: @ 809746C
push {r4,lr}
- ldr r0, _08097484 @ =0x02000000
+ ldr r0, _08097484 @ =gSharedMem
ldrb r0, [r0, 0x4]
cmp r0, 0x4
bls _08097478
@@ -3460,7 +3211,7 @@ _08097478:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08097484: .4byte 0x02000000
+_08097484: .4byte gSharedMem
_08097488: .4byte _0809748C
.align 2, 0
_0809748C:
@@ -3472,7 +3223,7 @@ _0809748C:
_080974A0:
movs r0, 0x6
bl sub_8098898
- ldr r4, _080974C8 @ =0x02002370
+ ldr r4, _080974C8 @ =gSharedMem + 0x2370
ldr r2, _080974CC @ =0x0000daca
adds r0, r4, 0
movs r1, 0x7
@@ -3488,7 +3239,7 @@ _080974A0:
strb r0, [r4, 0x4]
b _08097584
.align 2, 0
-_080974C8: .4byte 0x02002370
+_080974C8: .4byte gSharedMem + 0x2370
_080974CC: .4byte 0x0000daca
_080974D0: .4byte gUnknown_0203847E
_080974D4: .4byte 0xffffdc90
@@ -3513,15 +3264,15 @@ _080974F6:
bl sub_8098A5C
bl sub_809635C
bl sub_8096310
- ldr r1, _08097514 @ =0x02000000
+ ldr r1, _08097514 @ =gSharedMem
movs r0, 0x2
b _08097522
.align 2, 0
-_08097514: .4byte 0x02000000
+_08097514: .4byte gSharedMem
_08097518:
movs r0, 0x8
bl sub_8098898
- ldr r1, _0809752C @ =0x02000000
+ ldr r1, _0809752C @ =gSharedMem
movs r0, 0x4
_08097522:
strb r0, [r1, 0x4]
@@ -3529,17 +3280,17 @@ _08097522:
strb r4, [r0]
b _08097584
.align 2, 0
-_0809752C: .4byte 0x02000000
+_0809752C: .4byte gSharedMem
_08097530: .4byte gUnknown_0203847E
_08097534:
bl party_compaction
bl sub_8099310
- ldr r1, _08097544 @ =0x02000000
+ ldr r1, _08097544 @ =gSharedMem
ldrb r0, [r1, 0x4]
adds r0, 0x1
b _08097582
.align 2, 0
-_08097544: .4byte 0x02000000
+_08097544: .4byte gSharedMem
_08097548:
bl sub_8099374
lsls r0, 24
@@ -3563,7 +3314,7 @@ _0809756C:
beq _08097584
movs r0, 0x6
bl sub_8098898
- ldr r1, _08097590 @ =0x02000000
+ ldr r1, _08097590 @ =gSharedMem
movs r0, 0x1
_08097582:
strb r0, [r1, 0x4]
@@ -3573,13 +3324,13 @@ _08097584:
bx r0
.align 2, 0
_0809758C: .4byte gMain
-_08097590: .4byte 0x02000000
+_08097590: .4byte gSharedMem
thumb_func_end sub_809746C
thumb_func_start sub_8097594
sub_8097594: @ 8097594
push {r4,lr}
- ldr r0, _080975AC @ =0x02000000
+ ldr r0, _080975AC @ =gSharedMem
ldrb r0, [r0, 0x4]
cmp r0, 0xD
bls _080975A0
@@ -3591,7 +3342,7 @@ _080975A0:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080975AC: .4byte 0x02000000
+_080975AC: .4byte gSharedMem
_080975B0: .4byte _080975B4
.align 2, 0
_080975B4:
@@ -3614,7 +3365,7 @@ _080975EC:
bl sub_8098898
movs r0, 0x1
bl sub_8098A38
- ldr r1, _0809761C @ =0x02000000
+ ldr r1, _0809761C @ =gSharedMem
ldrb r0, [r1, 0x4]
adds r0, 0x1
strb r0, [r1, 0x4]
@@ -3632,7 +3383,7 @@ _08097600:
beq _08097626
b _0809777A
.align 2, 0
-_0809761C: .4byte 0x02000000
+_0809761C: .4byte gSharedMem
_08097620:
cmp r1, 0x1
beq _08097626
@@ -3653,10 +3404,10 @@ _0809763A:
beq _0809764A
b _0809777A
_0809764A:
- ldr r4, _08097650 @ =0x02000000
+ ldr r4, _08097650 @ =gSharedMem
b _0809765A
.align 2, 0
-_08097650: .4byte 0x02000000
+_08097650: .4byte gSharedMem
_08097654:
cmp r0, 0
bne _0809765A
@@ -3708,12 +3459,12 @@ _08097690:
_080976B4: .4byte gMain
_080976B8: .4byte gUnknown_0203847C
_080976BC:
- ldr r1, _080976C4 @ =0x02000000
+ ldr r1, _080976C4 @ =gSharedMem
movs r0, 0x7
strb r0, [r1, 0x4]
b _0809777A
.align 2, 0
-_080976C4: .4byte 0x02000000
+_080976C4: .4byte gSharedMem
_080976C8:
bl sub_8099374
lsls r0, 24
@@ -3774,21 +3525,21 @@ _08097732:
_08097740:
bl sub_8098898
_08097744:
- ldr r1, _08097754 @ =0x02000000
+ 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 0x02000000
+_08097754: .4byte gSharedMem
_08097758:
- ldr r1, _08097760 @ =0x02000000
+ ldr r1, _08097760 @ =gSharedMem
movs r0, 0x8
strb r0, [r1, 0x4]
b _0809777A
.align 2, 0
-_08097760: .4byte 0x02000000
+_08097760: .4byte gSharedMem
_08097764:
ldr r0, _08097780 @ =gMain
ldrh r1, [r0, 0x2E]
@@ -3812,7 +3563,7 @@ _08097784: .4byte sub_8096C84
sub_8097788: @ 8097788
push {r4,r5,lr}
sub sp, 0x4
- ldr r5, _0809779C @ =0x02000000
+ ldr r5, _0809779C @ =gSharedMem
ldrb r4, [r5, 0x4]
cmp r4, 0
beq _080977A0
@@ -3820,7 +3571,7 @@ sub_8097788: @ 8097788
beq _080977BC
b _080977D4
.align 2, 0
-_0809779C: .4byte 0x02000000
+_0809779C: .4byte gSharedMem
_080977A0:
bl sub_809BC18
movs r0, 0x1
@@ -3858,7 +3609,7 @@ _080977E0: .4byte sub_8096B5C
thumb_func_start sub_80977E4
sub_80977E4: @ 80977E4
push {r4,lr}
- ldr r4, _080977F4 @ =0x02000000
+ ldr r4, _080977F4 @ =gSharedMem
ldrb r0, [r4, 0x4]
cmp r0, 0
beq _080977F8
@@ -3866,7 +3617,7 @@ sub_80977E4: @ 80977E4
beq _08097824
b _0809784C
.align 2, 0
-_080977F4: .4byte 0x02000000
+_080977F4: .4byte gSharedMem
_080977F8:
movs r0, 0xC
bl sub_8098898
@@ -3913,7 +3664,7 @@ _08097854: .4byte sub_8096C84
thumb_func_start sub_8097858
sub_8097858: @ 8097858
push {r4,lr}
- ldr r4, _08097868 @ =0x02000000
+ ldr r4, _08097868 @ =gSharedMem
ldrb r0, [r4, 0x4]
cmp r0, 0
beq _0809786C
@@ -3921,7 +3672,7 @@ sub_8097858: @ 8097858
beq _0809787C
b _08097890
.align 2, 0
-_08097868: .4byte 0x02000000
+_08097868: .4byte gSharedMem
_0809786C:
bl party_compaction
bl sub_8099310
@@ -3948,7 +3699,7 @@ _08097898: .4byte sub_8096C84
thumb_func_start sub_809789C
sub_809789C: @ 809789C
push {r4,lr}
- ldr r4, _080978AC @ =0x02000000
+ ldr r4, _080978AC @ =gSharedMem
ldrb r0, [r4, 0x4]
cmp r0, 0
beq _080978B0
@@ -3956,7 +3707,7 @@ sub_809789C: @ 809789C
beq _080978C2
b _08097968
.align 2, 0
-_080978AC: .4byte 0x02000000
+_080978AC: .4byte gSharedMem
_080978B0:
movs r0, 0x1
bl sub_8098898
@@ -4037,7 +3788,7 @@ _08097970: .4byte sub_8097A64
thumb_func_start sub_8097974
sub_8097974: @ 8097974
push {r4,r5,lr}
- ldr r5, _08097988 @ =0x02000000
+ ldr r5, _08097988 @ =gSharedMem
ldrb r0, [r5, 0x4]
cmp r0, 0x1
beq _080979A2
@@ -4047,7 +3798,7 @@ sub_8097974: @ 8097974
beq _08097996
b _08097A5A
.align 2, 0
-_08097988: .4byte 0x02000000
+_08097988: .4byte gSharedMem
_0809798C:
cmp r0, 0x2
beq _080979FC
@@ -4151,7 +3902,7 @@ _08097A60: .4byte sub_8096C84
thumb_func_start sub_8097A64
sub_8097A64: @ 8097A64
push {r4,r5,lr}
- ldr r5, _08097A78 @ =0x02000000
+ ldr r5, _08097A78 @ =gSharedMem
ldrb r0, [r5, 0x4]
cmp r0, 0x1
beq _08097AB0
@@ -4161,7 +3912,7 @@ sub_8097A64: @ 8097A64
beq _08097A86
b _08097B32
.align 2, 0
-_08097A78: .4byte 0x02000000
+_08097A78: .4byte gSharedMem
_08097A7C:
cmp r0, 0x2
beq _08097B00
@@ -4256,7 +4007,7 @@ _08097B40: .4byte sub_8096C84
sub_8097B44: @ 8097B44
push {r4,r5,lr}
sub sp, 0x4
- ldr r5, _08097B58 @ =0x02000000
+ ldr r5, _08097B58 @ =gSharedMem
ldrb r4, [r5, 0x4]
cmp r4, 0
beq _08097B5C
@@ -4264,7 +4015,7 @@ sub_8097B44: @ 8097B44
beq _08097B78
b _08097B8E
.align 2, 0
-_08097B58: .4byte 0x02000000
+_08097B58: .4byte gSharedMem
_08097B5C:
bl sub_809BB90
movs r0, 0x1
@@ -4301,7 +4052,7 @@ _08097B9C: .4byte sub_8096B5C
thumb_func_start sub_8097BA0
sub_8097BA0: @ 8097BA0
push {r4,lr}
- ldr r0, _08097BB8 @ =0x02000000
+ ldr r0, _08097BB8 @ =gSharedMem
ldrb r1, [r0, 0x4]
adds r4, r0, 0
cmp r1, 0x4
@@ -4314,7 +4065,7 @@ _08097BAE:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08097BB8: .4byte 0x02000000
+_08097BB8: .4byte gSharedMem
_08097BBC: .4byte _08097BC0
.align 2, 0
_08097BC0:
@@ -4332,12 +4083,12 @@ _08097BD4:
bl PlaySE
movs r0, 0xF
bl sub_8098898
- ldr r1, _08097BF4 @ =0x02000000
+ ldr r1, _08097BF4 @ =gSharedMem
movs r0, 0x1
strb r0, [r1, 0x4]
b _08097CB0
.align 2, 0
-_08097BF4: .4byte 0x02000000
+_08097BF4: .4byte gSharedMem
_08097BF8:
movs r0, 0x5
bl PlaySE
@@ -4345,12 +4096,12 @@ _08097BF8:
bl sub_8098898
movs r0, 0
bl sub_8098A38
- ldr r1, _08097C14 @ =0x02000000
+ ldr r1, _08097C14 @ =gSharedMem
movs r0, 0x2
strb r0, [r1, 0x4]
b _08097CB0
.align 2, 0
-_08097C14: .4byte 0x02000000
+_08097C14: .4byte gSharedMem
_08097C18:
ldr r0, _08097C28 @ =gMain
ldrh r1, [r0, 0x2E]
@@ -4388,13 +4139,13 @@ _08097C5C:
movs r0, 0x3
bl PlaySE
bl sub_8098A5C
- ldr r1, _08097C70 @ =0x02000000
+ ldr r1, _08097C70 @ =gSharedMem
ldrb r0, [r1, 0x4]
adds r0, 0x1
strb r0, [r1, 0x4]
b _08097CB0
.align 2, 0
-_08097C70: .4byte 0x02000000
+_08097C70: .4byte gSharedMem
_08097C74:
movs r1, 0
movs r0, 0xE
@@ -4435,7 +4186,7 @@ _08097CBC: .4byte sub_80961A8
thumb_func_start sub_8097CC0
sub_8097CC0: @ 8097CC0
push {r4,lr}
- ldr r0, _08097CD8 @ =0x02000000
+ ldr r0, _08097CD8 @ =gSharedMem
ldrb r1, [r0, 0x4]
adds r4, r0, 0
cmp r1, 0x4
@@ -4448,7 +4199,7 @@ _08097CCE:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08097CD8: .4byte 0x02000000
+_08097CD8: .4byte gSharedMem
_08097CDC: .4byte _08097CE0
.align 2, 0
_08097CE0:
@@ -4466,12 +4217,12 @@ _08097CF4:
bl PlaySE
movs r0, 0xF
bl sub_8098898
- ldr r1, _08097D14 @ =0x02000000
+ ldr r1, _08097D14 @ =gSharedMem
movs r0, 0x1
strb r0, [r1, 0x4]
b _08097DD0
.align 2, 0
-_08097D14: .4byte 0x02000000
+_08097D14: .4byte gSharedMem
_08097D18:
movs r0, 0x5
bl PlaySE
@@ -4479,12 +4230,12 @@ _08097D18:
bl sub_8098898
movs r0, 0
bl sub_8098A38
- ldr r1, _08097D34 @ =0x02000000
+ ldr r1, _08097D34 @ =gSharedMem
movs r0, 0x2
strb r0, [r1, 0x4]
b _08097DD0
.align 2, 0
-_08097D34: .4byte 0x02000000
+_08097D34: .4byte gSharedMem
_08097D38:
ldr r0, _08097D48 @ =gMain
ldrh r1, [r0, 0x2E]
@@ -4523,13 +4274,13 @@ _08097D7C:
movs r0, 0x3
bl PlaySE
bl sub_8098A5C
- ldr r1, _08097D90 @ =0x02000000
+ ldr r1, _08097D90 @ =gSharedMem
ldrb r0, [r1, 0x4]
adds r0, 0x1
strb r0, [r1, 0x4]
b _08097DD0
.align 2, 0
-_08097D90: .4byte 0x02000000
+_08097D90: .4byte gSharedMem
_08097D94:
movs r1, 0
movs r0, 0xE
@@ -4570,7 +4321,7 @@ _08097DDC: .4byte sub_80961A8
thumb_func_start sub_8097DE0
sub_8097DE0: @ 8097DE0
push {lr}
- ldr r1, _08097E1C @ =0x02000000
+ ldr r1, _08097E1C @ =gSharedMem
movs r0, 0
strb r0, [r1, 0x7]
strh r0, [r1, 0x8]
@@ -4597,7 +4348,7 @@ sub_8097DE0: @ 8097DE0
pop {r0}
bx r0
.align 2, 0
-_08097E1C: .4byte 0x02000000
+_08097E1C: .4byte gSharedMem
_08097E20: .4byte REG_BG3CNT
_08097E24: .4byte 0x00001e0f
_08097E28: .4byte gPokemonStorageScrollingBGTile
@@ -4612,7 +4363,7 @@ _08097E40: .4byte gPokemonStorageScrollingBGPalette
thumb_func_start sub_8097E44
sub_8097E44: @ 8097E44
push {lr}
- ldr r1, _08097E6C @ =0x02000000
+ ldr r1, _08097E6C @ =gSharedMem
ldrb r0, [r1, 0x7]
adds r0, 0x1
strb r0, [r1, 0x7]
@@ -4632,7 +4383,7 @@ _08097E66:
pop {r0}
bx r0
.align 2, 0
-_08097E6C: .4byte 0x02000000
+_08097E6C: .4byte gSharedMem
thumb_func_end sub_8097E44
thumb_func_start sub_8097E70
@@ -4734,7 +4485,7 @@ sub_8097F58: @ 8097F58
movs r0, 0xD
movs r2, 0
bl sub_80F7940
- ldr r4, _08097FA8 @ =0x02000000
+ ldr r4, _08097FA8 @ =gSharedMem
ldr r1, _08097FAC @ =0x000012ac
adds r3, r4, r1
str r0, [r3]
@@ -4767,7 +4518,7 @@ sub_8097F58: @ 8097F58
bx r0
.align 2, 0
_08097FA4: .4byte 0x0000dace
-_08097FA8: .4byte 0x02000000
+_08097FA8: .4byte gSharedMem
_08097FAC: .4byte 0x000012ac
_08097FB0: .4byte 0x000012b8
_08097FB4: .4byte 0x06010000
@@ -4785,7 +4536,7 @@ sub_8097FB8: @ 8097FB8
mov r0, sp
bl LoadSpriteSheet
movs r4, 0
- ldr r5, _08098010 @ =0x020012b0
+ ldr r5, _08098010 @ =gSharedMem + 0x12B0
_08097FD0:
lsls r1, r4, 6
subs r1, r4
@@ -4817,7 +4568,7 @@ _08097FD0:
bx r0
.align 2, 0
_0809800C: .4byte gWaveformSpriteSheet
-_08098010: .4byte 0x020012b0
+_08098010: .4byte gSharedMem + 0x12B0
_08098014: .4byte gSpriteTemplate_83B6EFC
_08098018: .4byte gSprites
thumb_func_end sub_8097FB8
@@ -4825,7 +4576,7 @@ _08098018: .4byte gSprites
thumb_func_start sub_809801C
sub_809801C: @ 809801C
push {lr}
- ldr r1, _0809803C @ =0x02000000
+ ldr r1, _0809803C @ =gSharedMem
ldr r2, _08098040 @ =0x000011f0
adds r0, r1, r2
ldrh r0, [r0]
@@ -4838,7 +4589,7 @@ sub_809801C: @ 809801C
pop {r0}
bx r0
.align 2, 0
-_0809803C: .4byte 0x02000000
+_0809803C: .4byte gSharedMem
_08098040: .4byte 0x000011f0
thumb_func_end sub_809801C
@@ -4846,7 +4597,7 @@ _08098040: .4byte 0x000011f0
BoxSetMosaic: @ 8098044
push {lr}
bl sub_809801C
- ldr r0, _08098084 @ =0x02000000
+ ldr r0, _08098084 @ =gSharedMem
movs r1, 0x9C
lsls r1, 6
adds r3, r0, r1
@@ -4877,7 +4628,7 @@ _08098080:
pop {r0}
bx r0
.align 2, 0
-_08098084: .4byte 0x02000000
+_08098084: .4byte gSharedMem
_08098088: .4byte sub_8098090
_0809808C: .4byte REG_MOSAIC
thumb_func_end BoxSetMosaic
@@ -4943,7 +4694,7 @@ sub_80980D4: @ 80980D4
stm r1!, {r2-r4}
movs r1, 0
add r5, sp, 0x18
- ldr r4, _0809815C @ =0x02002784
+ ldr r4, _0809815C @ =gSharedMem + 0x2784
movs r3, 0
ldr r2, _08098160 @ =0x000007ff
_08098102:
@@ -4955,7 +4706,7 @@ _08098102:
cmp r1, r2
bls _08098102
movs r1, 0
- ldr r3, _08098164 @ =0x02002704
+ ldr r3, _08098164 @ =gSharedMem + 0x2704
movs r2, 0
_08098116:
lsls r0, r1, 1
@@ -4966,7 +4717,7 @@ _08098116:
lsrs r1, r0, 16
cmp r1, 0xF
bls _08098116
- ldr r0, _08098168 @ =0x02000000
+ ldr r0, _08098168 @ =gSharedMem
movs r1, 0x9C
lsls r1, 6
adds r0, r1
@@ -4989,12 +4740,12 @@ _08098116:
_08098150: .4byte gUnknown_083B6DCC
_08098154: .4byte gUnknown_083B6DD4
_08098158: .4byte gSpriteTemplate_83B6DDC
-_0809815C: .4byte 0x02002784
+_0809815C: .4byte gSharedMem + 0x2784
_08098160: .4byte 0x000007ff
-_08098164: .4byte 0x02002704
-_08098168: .4byte 0x02000000
+_08098164: .4byte gSharedMem + 0x2704
+_08098168: .4byte gSharedMem
_0809816C:
- ldr r2, _0809819C @ =0x02000000
+ ldr r2, _0809819C @ =gSharedMem
movs r0, 0x9C
lsls r0, 6
adds r3, r2, r0
@@ -5019,7 +4770,7 @@ _0809816C:
str r0, [r2]
b _080981C4
.align 2, 0
-_0809819C: .4byte 0x02000000
+_0809819C: .4byte gSharedMem
_080981A0: .4byte gSprites
_080981A4: .4byte 0x000026fa
_080981A8: .4byte 0x000026fc
@@ -5035,7 +4786,7 @@ _080981B0:
cmp r1, 0x40
bne _0809816C
_080981C4:
- ldr r0, _080981E8 @ =0x02000000
+ ldr r0, _080981E8 @ =gSharedMem
movs r2, 0x9C
lsls r2, 6
adds r0, r2
@@ -5052,7 +4803,7 @@ _080981DE:
pop {r0}
bx r0
.align 2, 0
-_080981E8: .4byte 0x02000000
+_080981E8: .4byte gSharedMem
_080981EC: .4byte 0x0000dac7
thumb_func_end sub_80980D4
@@ -5065,7 +4816,7 @@ sub_80981F0: @ 80981F0
adds r7, r1, 0
lsls r0, 16
lsrs r4, r0, 16
- ldr r6, _08098274 @ =0x02000000
+ ldr r6, _08098274 @ =gSharedMem
movs r0, 0x9C
lsls r0, 6
adds r0, r6
@@ -5120,7 +4871,7 @@ sub_80981F0: @ 80981F0
strb r0, [r1]
b _080982A6
.align 2, 0
-_08098274: .4byte 0x02000000
+_08098274: .4byte gSharedMem
_08098278: .4byte gMonFrontPicTable
_0809827C: .4byte gMonFrontPicCoords
_08098280: .4byte 0x00004784
@@ -5148,7 +4899,7 @@ _080982A6:
thumb_func_start sub_80982B4
sub_80982B4: @ 80982B4
push {r4,lr}
- ldr r4, _080982E4 @ =0x02000000
+ ldr r4, _080982E4 @ =gSharedMem
ldr r1, _080982E8 @ =0x000011f0
adds r0, r4, r1
ldrh r0, [r0]
@@ -5171,7 +4922,7 @@ sub_80982B4: @ 80982B4
ands r0, r2
b _08098302
.align 2, 0
-_080982E4: .4byte 0x02000000
+_080982E4: .4byte gSharedMem
_080982E8: .4byte 0x000011f0
_080982EC: .4byte 0x000011f7
_080982F0: .4byte 0x000012ac
@@ -5190,7 +4941,7 @@ _08098302:
movs r2, 0x9
movs r3, 0x11
bl MenuZeroFillWindowRect
- ldr r4, _0809834C @ =0x0200127a
+ ldr r4, _0809834C @ =gSharedMem + 0x127A
adds r0, r4, 0
movs r1, 0x1
movs r2, 0x10
@@ -5215,14 +4966,14 @@ _08098302:
bx r0
.align 2, 0
_08098348: .4byte 0x000012ac
-_0809834C: .4byte 0x0200127a
+_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 @ =0x02000000
+ ldr r5, _080983A0 @ =gSharedMem
ldr r1, _080983A4 @ =0x000011f0
adds r0, r5, r1
ldrh r2, [r0]
@@ -5260,7 +5011,7 @@ _08098382:
bls _08098382
b _080983EC
.align 2, 0
-_080983A0: .4byte 0x02000000
+_080983A0: .4byte gSharedMem
_080983A4: .4byte 0x000011f0
_080983A8: .4byte 0x06007800
_080983AC: .4byte gUnknown_02039760
@@ -5316,7 +5067,7 @@ sub_8098400: @ 8098400
ldr r1, _08098488 @ =0x06006800
bl LZ77UnCompVram
ldr r0, _0809848C @ =gPSSMenuMisc_Tilemap
- ldr r5, _08098490 @ =0x020000a8
+ ldr r5, _08098490 @ =gSharedMem + 0xA8
adds r1, r5, 0
bl LZ77UnCompWram
ldr r0, _08098494 @ =gPSSMenu3_Pal
@@ -5365,7 +5116,7 @@ _08098480: .4byte 0x00000f01
_08098484: .4byte gPSSMenuMisc_Gfx
_08098488: .4byte 0x06006800
_0809848C: .4byte gPSSMenuMisc_Tilemap
-_08098490: .4byte 0x020000a8
+_08098490: .4byte gSharedMem + 0xA8
_08098494: .4byte gPSSMenu3_Pal
_08098498: .4byte gPSSMenu4_Pal
_0809849C: .4byte 0x06007800
@@ -5388,7 +5139,7 @@ _080984AC:
movs r0, 0x1
bl sub_8098690
_080984CC:
- ldr r0, _080984E0 @ =0x02000000
+ ldr r0, _080984E0 @ =gSharedMem
ldr r1, _080984E4 @ =0x000008af
adds r0, r1
movs r1, 0
@@ -5398,14 +5149,14 @@ _080984CC:
pop {r0}
bx r0
.align 2, 0
-_080984E0: .4byte 0x02000000
+_080984E0: .4byte gSharedMem
_080984E4: .4byte 0x000008af
thumb_func_end sub_8098400
thumb_func_start sub_80984E8
sub_80984E8: @ 80984E8
push {lr}
- ldr r1, _08098510 @ =0x02000000
+ ldr r1, _08098510 @ =gSharedMem
ldr r0, _08098514 @ =0x000008a8
adds r2, r1, r0
movs r3, 0
@@ -5423,7 +5174,7 @@ sub_80984E8: @ 80984E8
pop {r0}
bx r0
.align 2, 0
-_08098510: .4byte 0x02000000
+_08098510: .4byte gSharedMem
_08098514: .4byte 0x000008a8
_08098518: .4byte 0x000008aa
_0809851C: .4byte 0x000008ad
@@ -5433,7 +5184,7 @@ _0809851C: .4byte 0x000008ad
sub_8098520: @ 8098520
push {r4,r5,lr}
sub sp, 0x10
- ldr r3, _08098578 @ =0x02000000
+ ldr r3, _08098578 @ =gSharedMem
ldr r0, _0809857C @ =0x000008ad
adds r5, r3, r0
ldrb r0, [r5]
@@ -5474,7 +5225,7 @@ sub_8098520: @ 8098520
movs r0, 0x1
b _08098594
.align 2, 0
-_08098578: .4byte 0x02000000
+_08098578: .4byte gSharedMem
_0809857C: .4byte 0x000008ad
_08098580: .4byte 0x000008a8
_08098584: .4byte 0x000008aa
@@ -5496,7 +5247,7 @@ _0809859C: .4byte gUnknown_0203847C
thumb_func_start add_to_c3_somehow
add_to_c3_somehow: @ 80985A0
- ldr r1, _080985BC @ =0x02000000
+ ldr r1, _080985BC @ =gSharedMem
ldr r0, _080985C0 @ =0x000008a8
adds r2, r1, r0
movs r3, 0
@@ -5511,7 +5262,7 @@ add_to_c3_somehow: @ 80985A0
strb r3, [r1]
bx lr
.align 2, 0
-_080985BC: .4byte 0x02000000
+_080985BC: .4byte gSharedMem
_080985C0: .4byte 0x000008a8
_080985C4: .4byte 0x000008aa
_080985C8: .4byte 0x000008ad
@@ -5524,7 +5275,7 @@ sub_80985CC: @ 80985CC
mov r6, r8
push {r6,r7}
sub sp, 0x10
- ldr r3, _08098640 @ =0x02000000
+ ldr r3, _08098640 @ =gSharedMem
ldr r0, _08098644 @ =0x000008ad
adds r6, r3, r0
ldrb r0, [r6]
@@ -5575,7 +5326,7 @@ sub_80985CC: @ 80985CC
movs r0, 0x1
b _0809867C
.align 2, 0
-_08098640: .4byte 0x02000000
+_08098640: .4byte gSharedMem
_08098644: .4byte 0x000008ad
_08098648: .4byte 0x000008a8
_0809864C: .4byte 0x000008aa
@@ -5619,7 +5370,7 @@ sub_8098690: @ 8098690
cmp r0, 0
beq _080986C0
ldr r0, _080986B8 @ =0x06007800
- ldr r3, _080986BC @ =0x020000a8
+ ldr r3, _080986BC @ =gSharedMem + 0xA8
movs r1, 0xC
str r1, [sp]
movs r1, 0
@@ -5634,10 +5385,10 @@ sub_8098690: @ 8098690
b _080986DA
.align 2, 0
_080986B8: .4byte 0x06007800
-_080986BC: .4byte 0x020000a8
+_080986BC: .4byte gSharedMem + 0xA8
_080986C0:
ldr r0, _080986E0 @ =0x06007800
- ldr r3, _080986E4 @ =0x020000a8
+ ldr r3, _080986E4 @ =gSharedMem + 0xA8
movs r1, 0xC
str r1, [sp]
movs r2, 0x2
@@ -5654,12 +5405,12 @@ _080986DA:
bx r0
.align 2, 0
_080986E0: .4byte 0x06007800
-_080986E4: .4byte 0x020000a8
+_080986E4: .4byte gSharedMem + 0xA8
thumb_func_end sub_8098690
thumb_func_start sub_80986E8
sub_80986E8: @ 80986E8
- ldr r1, _08098704 @ =0x02000000
+ ldr r1, _08098704 @ =gSharedMem
ldr r2, _08098708 @ =0x000008af
adds r0, r1, r2
movs r3, 0x1
@@ -5674,7 +5425,7 @@ sub_80986E8: @ 80986E8
strb r3, [r1]
bx lr
.align 2, 0
-_08098704: .4byte 0x02000000
+_08098704: .4byte gSharedMem
_08098708: .4byte 0x000008af
_0809870C: .4byte 0x000008b1
thumb_func_end sub_80986E8
@@ -5682,7 +5433,7 @@ _0809870C: .4byte 0x000008b1
thumb_func_start sub_8098710
sub_8098710: @ 8098710
push {lr}
- ldr r0, _0809872C @ =0x02000000
+ ldr r0, _0809872C @ =gSharedMem
ldr r2, _08098730 @ =0x000008af
adds r1, r0, r2
ldrb r0, [r1]
@@ -5696,14 +5447,14 @@ _08098728:
pop {r0}
bx r0
.align 2, 0
-_0809872C: .4byte 0x02000000
+_0809872C: .4byte gSharedMem
_08098730: .4byte 0x000008af
thumb_func_end sub_8098710
thumb_func_start sub_8098734
sub_8098734: @ 8098734
push {lr}
- ldr r2, _08098774 @ =0x02000000
+ ldr r2, _08098774 @ =gSharedMem
ldr r1, _08098778 @ =0x000008af
adds r0, r2, r1
ldrb r0, [r0]
@@ -5736,7 +5487,7 @@ _08098770:
pop {r0}
bx r0
.align 2, 0
-_08098774: .4byte 0x02000000
+_08098774: .4byte gSharedMem
_08098778: .4byte 0x000008af
_0809877C: .4byte 0x000008b1
thumb_func_end sub_8098734
@@ -5746,7 +5497,7 @@ sub_8098780: @ 8098780
push {r4-r6,lr}
sub sp, 0x10
movs r4, 0x1
- ldr r6, _080987D4 @ =0x020000a8
+ ldr r6, _080987D4 @ =gSharedMem + 0xA8
movs r5, 0x80
lsls r5, 9
_0809878C:
@@ -5787,7 +5538,7 @@ _080987A8:
pop {r0}
bx r0
.align 2, 0
-_080987D4: .4byte 0x020000a8
+_080987D4: .4byte gSharedMem + 0xA8
_080987D8: .4byte gPlayerParty
thumb_func_end sub_8098780
@@ -5797,7 +5548,7 @@ sub_80987DC: @ 80987DC
sub sp, 0x10
bl sub_8098780
ldr r0, _08098804 @ =0x06007800
- ldr r3, _08098808 @ =0x020000a8
+ ldr r3, _08098808 @ =gSharedMem + 0xA8
movs r1, 0
str r1, [sp]
str r1, [sp, 0x4]
@@ -5813,13 +5564,13 @@ sub_80987DC: @ 80987DC
bx r0
.align 2, 0
_08098804: .4byte 0x06007800
-_08098808: .4byte 0x020000a8
+_08098808: .4byte gSharedMem + 0xA8
thumb_func_end sub_80987DC
thumb_func_start sub_809880C
sub_809880C: @ 809880C
push {lr}
- ldr r0, _08098828 @ =0x02000000
+ ldr r0, _08098828 @ =gSharedMem
ldr r1, _0809882C @ =0x000008ae
adds r0, r1
movs r1, 0
@@ -5830,14 +5581,14 @@ sub_809880C: @ 809880C
pop {r0}
bx r0
.align 2, 0
-_08098828: .4byte 0x02000000
+_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 @ =0x02000000
+ ldr r5, _08098848 @ =gSharedMem
ldr r0, _0809884C @ =0x000008ae
adds r4, r5, r0
ldrb r0, [r4]
@@ -5849,7 +5600,7 @@ sub_8098830: @ 8098830
beq _08098856
b _08098890
.align 2, 0
-_08098848: .4byte 0x02000000
+_08098848: .4byte gSharedMem
_0809884C: .4byte 0x000008ae
_08098850:
cmp r0, 0x2
@@ -12471,7 +12222,7 @@ sub_809BD14: @ 809BD14
_0809BD24: .4byte gUnknown_020384E6
_0809BD28:
ldr r0, _0809BD34 @ =gUnknown_020384E5
- ldr r1, _0809BD38 @ =0x02018000
+ ldr r1, _0809BD38 @ =gSharedMem + 0x18000
ldrb r1, [r1, 0x9]
strb r1, [r0]
_0809BD30:
@@ -12479,7 +12230,7 @@ _0809BD30:
bx r0
.align 2, 0
_0809BD34: .4byte gUnknown_020384E5
-_0809BD38: .4byte 0x02018000
+_0809BD38: .4byte gSharedMem + 0x18000
thumb_func_end sub_809BD14
thumb_func_start party_compaction
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
deleted file mode 100644
index 859fd177f..000000000
--- a/asm/pokemon_summary_screen.s
+++ /dev/null
@@ -1,8776 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_809D844
-sub_809D844: @ 809D844
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_809D844
-
- thumb_func_start sub_809D85C
-sub_809D85C: @ 809D85C
- push {lr}
- ldr r1, _0809D8A0 @ =REG_BG1HOFS
- ldr r0, _0809D8A4 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8A8 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8AC @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8B0 @ =gUnknown_03004280
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8B4 @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8B8 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_0809D8A0: .4byte REG_BG1HOFS
-_0809D8A4: .4byte gUnknown_030042C0
-_0809D8A8: .4byte gUnknown_030041B4
-_0809D8AC: .4byte gUnknown_03004288
-_0809D8B0: .4byte gUnknown_03004280
-_0809D8B4: .4byte gUnknown_030041B0
-_0809D8B8: .4byte gUnknown_030041B8
- thumb_func_end sub_809D85C
-
- thumb_func_start ShowPokemonSummaryScreen
-ShowPokemonSummaryScreen: @ 809D8BC
- push {r4-r7,lr}
- ldr r4, [sp, 0x14]
- lsls r4, 24
- lsrs r7, r4, 24
- ldr r6, _0809D904 @ =gPaletteFade
- ldrb r4, [r6, 0x8]
- movs r5, 0x80
- orrs r4, r5
- strb r4, [r6, 0x8]
- ldr r5, _0809D908 @ =0x02018000
- str r0, [r5]
- movs r4, 0
- strb r7, [r5, 0x8]
- strb r1, [r5, 0x9]
- strb r2, [r5, 0xA]
- str r3, [r5, 0x4]
- adds r0, r5, 0
- adds r0, 0x74
- strb r4, [r0]
- adds r1, r5, 0
- adds r1, 0x79
- movs r0, 0x4
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x7C
- movs r1, 0
- strh r4, [r0]
- adds r0, 0x4
- strb r1, [r0]
- subs r0, 0x5
- strb r1, [r0]
- cmp r7, 0x4
- bls _0809D90C
- movs r0, 0x1
- strb r0, [r5, 0xE]
- b _0809D90E
- .align 2, 0
-_0809D904: .4byte gPaletteFade
-_0809D908: .4byte 0x02018000
-_0809D90C:
- strb r1, [r5, 0xE]
-_0809D90E:
- cmp r7, 0x6
- bhi _0809D9D6
- lsls r0, r7, 2
- ldr r1, _0809D91C @ =_0809D920
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809D91C: .4byte _0809D920
- .align 2, 0
-_0809D920:
- .4byte _0809D93C
- .4byte _0809D9BC
- .4byte _0809D992
- .4byte _0809D9D6
- .4byte _0809D966
- .4byte _0809D93C
- .4byte _0809D9BC
-_0809D93C:
- adds r0, r5, 0
- adds r0, 0x75
- movs r1, 0
- strb r1, [r0]
- adds r2, r5, 0
- adds r2, 0x76
- movs r0, 0x3
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x77
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r5, 0
- adds r1, 0x7E
- movs r0, 0x1
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x7
- strb r0, [r1]
- b _0809D9D6
-_0809D966:
- adds r0, r5, 0
- adds r0, 0x75
- movs r1, 0
- strb r1, [r0]
- adds r2, r5, 0
- adds r2, 0x76
- movs r0, 0x3
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x77
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r0, 0x6
- movs r1, 0x1
- strb r1, [r0]
- adds r2, 0x9
- movs r0, 0x7
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x7B
- b _0809D9D4
-_0809D992:
- adds r1, r5, 0
- adds r1, 0x75
- movs r3, 0
- movs r0, 0x2
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x76
- movs r2, 0x3
- strb r2, [r0]
- adds r0, 0x1
- movs r1, 0x1
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r0, 0x6
- strb r2, [r0]
- adds r0, 0x1
- strb r3, [r0]
- subs r0, 0x6
- strb r3, [r0]
- b _0809D9D6
-_0809D9BC:
- adds r1, r5, 0
- adds r1, 0x75
- movs r0, 0x2
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x3
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x77
- movs r1, 0x1
- strb r1, [r0]
- adds r0, 0x1
-_0809D9D4:
- strb r1, [r0]
-_0809D9D6:
- adds r0, r5, 0
- adds r0, 0x75
- ldrb r0, [r0]
- strb r0, [r5, 0xB]
- ldr r0, _0809D9EC @ =sub_809DE44
- bl SetMainCallback2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D9EC: .4byte sub_809DE44
- thumb_func_end ShowPokemonSummaryScreen
-
- thumb_func_start sub_809D9F0
-sub_809D9F0: @ 809D9F0
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, [sp, 0x10]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r5, 16
- lsrs r5, 16
- movs r4, 0x2
- str r4, [sp]
- bl ShowPokemonSummaryScreen
- ldr r0, _0809DA18 @ =0x02018000
- adds r0, 0x7C
- strh r5, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809DA18: .4byte 0x02018000
- thumb_func_end sub_809D9F0
-
- thumb_func_start sub_809DA1C
-sub_809DA1C: @ 809DA1C
- push {lr}
- ldr r0, _0809DA30 @ =0x02018000
- ldrb r0, [r0, 0x8]
- cmp r0, 0x6
- bhi _0809DA78
- lsls r0, 2
- ldr r1, _0809DA34 @ =_0809DA38
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DA30: .4byte 0x02018000
-_0809DA34: .4byte _0809DA38
- .align 2, 0
-_0809DA38:
- .4byte _0809DA54
- .4byte _0809DA6C
- .4byte _0809DA64
- .4byte _0809DA64
- .4byte _0809DA5C
- .4byte _0809DA54
- .4byte _0809DA6C
-_0809DA54:
- ldr r0, _0809DA58 @ =SummaryScreenHandleKeyInput
- b _0809DA6E
- .align 2, 0
-_0809DA58: .4byte SummaryScreenHandleKeyInput
-_0809DA5C:
- ldr r0, _0809DA60 @ =SummaryScreenHandleKeyInput
- b _0809DA6E
- .align 2, 0
-_0809DA60: .4byte SummaryScreenHandleKeyInput
-_0809DA64:
- ldr r0, _0809DA68 @ =sub_809EB40
- b _0809DA6E
- .align 2, 0
-_0809DA68: .4byte sub_809EB40
-_0809DA6C:
- ldr r0, _0809DA7C @ =sub_809E3FC
-_0809DA6E:
- movs r1, 0
- bl CreateTask
- ldr r1, _0809DA80 @ =0x02018000
- strb r0, [r1, 0xF]
-_0809DA78:
- pop {r0}
- bx r0
- .align 2, 0
-_0809DA7C: .4byte sub_809E3FC
-_0809DA80: .4byte 0x02018000
- thumb_func_end sub_809DA1C
-
- thumb_func_start sub_809DA84
-sub_809DA84: @ 809DA84
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r1, _0809DAA4 @ =gMain
- ldr r2, _0809DAA8 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r12, r1
- cmp r0, 0x16
- bls _0809DA98
- b _0809DE00
-_0809DA98:
- lsls r0, 2
- ldr r1, _0809DAAC @ =_0809DAB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DAA4: .4byte gMain
-_0809DAA8: .4byte 0x0000043c
-_0809DAAC: .4byte _0809DAB0
- .align 2, 0
-_0809DAB0:
- .4byte _0809DB0C
- .4byte _0809DB18
- .4byte _0809DB2C
- .4byte _0809DB32
- .4byte _0809DB80
- .4byte _0809DB94
- .4byte _0809DBA0
- .4byte _0809DBBC
- .4byte _0809DBC8
- .4byte _0809DBDC
- .4byte _0809DC2C
- .4byte _0809DC48
- .4byte _0809DC5C
- .4byte _0809DC90
- .4byte _0809DCB0
- .4byte _0809DCC4
- .4byte _0809DCF8
- .4byte _0809DD02
- .4byte _0809DD30
- .4byte _0809DD3C
- .4byte _0809DD68
- .4byte _0809DD98
- .4byte _0809DDE0
-_0809DB0C:
- movs r0, 0
- bl SetVBlankCallback
- bl ResetSpriteData
- b _0809DDE8
-_0809DB18:
- bl remove_some_task
- ldr r1, _0809DB24 @ =gMain
- ldr r2, _0809DB28 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DB24: .4byte gMain
-_0809DB28: .4byte 0x0000043c
-_0809DB2C:
- bl FreeAllSpritePalettes
- b _0809DDE8
-_0809DB32:
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0x80
- lsls r3, 9
- movs r5, 0
- ldr r1, _0809DB74 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _0809DB78 @ =0x85000400
- movs r7, 0x85
- lsls r7, 24
-_0809DB48:
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- 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 _0809DB48
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _0809DB7C @ =0x0000043c
- add r1, r12
- b _0809DDEE
- .align 2, 0
-_0809DB74: .4byte 0x040000d4
-_0809DB78: .4byte 0x85000400
-_0809DB7C: .4byte 0x0000043c
-_0809DB80:
- bl sub_809DE64
- ldr r1, _0809DB8C @ =gMain
- ldr r2, _0809DB90 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DB8C: .4byte gMain
-_0809DB90: .4byte 0x0000043c
-_0809DB94:
- ldr r0, _0809DB9C @ =gWindowConfig_81E6E6C
- bl SetUpWindowConfig
- b _0809DDE8
- .align 2, 0
-_0809DB9C: .4byte gWindowConfig_81E6E6C
-_0809DBA0:
- ldr r0, _0809DBB0 @ =gWindowConfig_81E6E6C
- bl MultistepInitMenuWindowBegin
- ldr r1, _0809DBB4 @ =gMain
- ldr r2, _0809DBB8 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DBB0: .4byte gWindowConfig_81E6E6C
-_0809DBB4: .4byte gMain
-_0809DBB8: .4byte 0x0000043c
-_0809DBBC:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0809DBC6
- b _0809DE38
-_0809DBC6:
- b _0809DDE8
-_0809DBC8:
- bl sub_809DA1C
- ldr r1, _0809DBD4 @ =gMain
- ldr r2, _0809DBD8 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DBD4: .4byte gMain
-_0809DBD8: .4byte 0x0000043c
-_0809DBDC:
- ldr r1, _0809DC08 @ =gSummaryScreenTextTiles
- ldr r2, _0809DC0C @ =0x0600d000
- ldr r0, _0809DC10 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0809DC14 @ =0x800000a0
- str r1, [r0, 0x8]
- ldr r1, [r0, 0x8]
- ldr r1, _0809DC18 @ =gSummaryScreenButtonTiles
- ldr r2, _0809DC1C @ =0x0600d140
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0809DC20 @ =0x80000080
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _0809DC24 @ =0x02018000
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0809DC28 @ =0x0000043c
- add r1, r12
- b _0809DDEE
- .align 2, 0
-_0809DC08: .4byte gSummaryScreenTextTiles
-_0809DC0C: .4byte 0x0600d000
-_0809DC10: .4byte 0x040000d4
-_0809DC14: .4byte 0x800000a0
-_0809DC18: .4byte gSummaryScreenButtonTiles
-_0809DC1C: .4byte 0x0600d140
-_0809DC20: .4byte 0x80000080
-_0809DC24: .4byte 0x02018000
-_0809DC28: .4byte 0x0000043c
-_0809DC2C:
- bl sub_809DF00
- lsls r0, 24
- cmp r0, 0
- bne _0809DC38
- b _0809DE38
-_0809DC38:
- ldr r0, _0809DC44 @ =0x02018000
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
- b _0809DDE8
- .align 2, 0
-_0809DC44: .4byte 0x02018000
-_0809DC48:
- bl sub_80A18C4
- ldr r1, _0809DC54 @ =gMain
- ldr r2, _0809DC58 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DC54: .4byte gMain
-_0809DC58: .4byte 0x0000043c
-_0809DC5C:
- ldr r4, _0809DC78 @ =0x02018010
- adds r0, r4, 0
- bl sub_809F678
- adds r0, r4, 0
- bl GetMonStatusAndPokerus
- lsls r0, 24
- cmp r0, 0
- bne _0809DC7C
- movs r0, 0
- bl sub_80A12D0
- b _0809DC82
- .align 2, 0
-_0809DC78: .4byte 0x02018010
-_0809DC7C:
- movs r0, 0xA
- bl sub_80A12D0
-_0809DC82:
- ldr r0, _0809DC8C @ =0x02018010
- bl sub_80A0EA4
- b _0809DDE8
- .align 2, 0
-_0809DC8C: .4byte 0x02018010
-_0809DC90:
- bl sub_80A1950
- ldr r0, _0809DCA4 @ =0x02018010
- bl sub_80A1D84
- ldr r1, _0809DCA8 @ =gMain
- ldr r2, _0809DCAC @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DCA4: .4byte 0x02018010
-_0809DCA8: .4byte gMain
-_0809DCAC: .4byte 0x0000043c
-_0809DCB0:
- ldr r4, _0809DCC0 @ =0x02018010
- adds r0, r4, 0
- bl sub_80A1DE8
- adds r4, 0x64
- movs r0, 0
- strb r0, [r4]
- b _0809DDE8
- .align 2, 0
-_0809DCC0: .4byte 0x02018010
-_0809DCC4:
- ldr r4, _0809DCEC @ =0x02018010
- adds r5, r4, 0
- adds r5, 0x64
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809F6B4
- subs r4, 0x10
- strb r0, [r4, 0xC]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809DCE0
- b _0809DE38
-_0809DCE0:
- movs r0, 0
- strb r0, [r5]
- ldr r1, _0809DCF0 @ =gMain
- ldr r2, _0809DCF4 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DCEC: .4byte 0x02018010
-_0809DCF0: .4byte gMain
-_0809DCF4: .4byte 0x0000043c
-_0809DCF8:
- bl sub_809E044
- bl sub_80A0EE8
- b _0809DDE8
-_0809DD02:
- ldr r1, _0809DD20 @ =0x02018000
- ldrb r0, [r1, 0xB]
- cmp r0, 0x1
- bhi _0809DD18
- ldr r0, _0809DD24 @ =gUnknown_083C1580
- ldrb r1, [r1, 0xB]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_0809DD18:
- ldr r1, _0809DD28 @ =gMain
- ldr r2, _0809DD2C @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DD20: .4byte 0x02018000
-_0809DD24: .4byte gUnknown_083C1580
-_0809DD28: .4byte gMain
-_0809DD2C: .4byte 0x0000043c
-_0809DD30:
- ldr r0, _0809DD38 @ =0x02018010
- bl sub_809FAC8
- b _0809DDE8
- .align 2, 0
-_0809DD38: .4byte 0x02018010
-_0809DD3C:
- ldr r2, _0809DD58 @ =gUnknown_083C1598
- ldr r0, _0809DD5C @ =0x02018000
- ldrb r1, [r0, 0xB]
- lsls r1, 2
- adds r1, r2
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- ldr r1, _0809DD60 @ =gMain
- ldr r2, _0809DD64 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DD58: .4byte gUnknown_083C1598
-_0809DD5C: .4byte 0x02018000
-_0809DD60: .4byte gMain
-_0809DD64: .4byte 0x0000043c
-_0809DD68:
- ldr r0, _0809DD84 @ =0x02018010
- movs r1, 0x2D
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0
- beq _0809DD8C
- ldr r1, _0809DD88 @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- b _0809DDE8
- .align 2, 0
-_0809DD84: .4byte 0x02018010
-_0809DD88: .4byte gUnknown_030041B0
-_0809DD8C:
- ldr r0, _0809DD94 @ =gUnknown_030041B0
- strh r1, [r0]
- b _0809DDE8
- .align 2, 0
-_0809DD94: .4byte gUnknown_030041B0
-_0809DD98:
- bl sub_809EBC4
- ldr r0, _0809DDB8 @ =0x02018000
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809DDBC
- movs r0, 0
- movs r1, 0
- bl sub_80A1488
- movs r0, 0
- movs r1, 0
- bl sub_80A1654
- b _0809DDCC
- .align 2, 0
-_0809DDB8: .4byte 0x02018000
-_0809DDBC:
- movs r0, 0xA
- movs r1, 0
- bl sub_80A1488
- movs r0, 0xA
- movs r1, 0
- bl sub_80A1654
-_0809DDCC:
- bl sub_80A0DD0
- ldr r1, _0809DDD8 @ =gMain
- ldr r2, _0809DDDC @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DDD8: .4byte gMain
-_0809DDDC: .4byte 0x0000043c
-_0809DDE0:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809DE38
-_0809DDE8:
- ldr r1, _0809DDF8 @ =gMain
- ldr r0, _0809DDFC @ =0x0000043c
- adds r1, r0
-_0809DDEE:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0809DE38
- .align 2, 0
-_0809DDF8: .4byte gMain
-_0809DDFC: .4byte 0x0000043c
-_0809DE00:
- ldr r0, _0809DE2C @ =sub_809D85C
- bl SetVBlankCallback
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r0, _0809DE30 @ =sub_809D844
- bl SetMainCallback2
- ldr r2, _0809DE34 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- movs r0, 0x1
- b _0809DE3A
- .align 2, 0
-_0809DE2C: .4byte sub_809D85C
-_0809DE30: .4byte sub_809D844
-_0809DE34: .4byte gPaletteFade
-_0809DE38:
- movs r0, 0
-_0809DE3A:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809DA84
-
- thumb_func_start sub_809DE44
-sub_809DE44: @ 809DE44
- push {lr}
-_0809DE46:
- bl sub_809DA84
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809DE5E
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809DE46
-_0809DE5E:
- pop {r0}
- bx r0
- thumb_func_end sub_809DE44
-
- thumb_func_start sub_809DE64
-sub_809DE64: @ 809DE64
- ldr r1, _0809DED0 @ =REG_BG0CNT
- ldr r2, _0809DED4 @ =0x00001e08
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0809DED8 @ =0x00004801
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0809DEDC @ =0x00004a02
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0809DEE0 @ =0x00005c03
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0809DEE4 @ =gUnknown_030042C0
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0809DEE8 @ =gUnknown_030041B4
- strh r0, [r1]
- ldr r1, _0809DEEC @ =gUnknown_03004288
- strh r0, [r1]
- ldr r1, _0809DEF0 @ =gUnknown_03004280
- strh r0, [r1]
- ldr r1, _0809DEF4 @ =gUnknown_030041B0
- strh r0, [r1]
- ldr r1, _0809DEF8 @ =gUnknown_030041B8
- strh r0, [r1]
- ldr r1, _0809DEFC @ =REG_BG0HOFS
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x32
- strh r0, [r1]
- subs r1, 0x50
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0809DED0: .4byte REG_BG0CNT
-_0809DED4: .4byte 0x00001e08
-_0809DED8: .4byte 0x00004801
-_0809DEDC: .4byte 0x00004a02
-_0809DEE0: .4byte 0x00005c03
-_0809DEE4: .4byte gUnknown_030042C0
-_0809DEE8: .4byte gUnknown_030041B4
-_0809DEEC: .4byte gUnknown_03004288
-_0809DEF0: .4byte gUnknown_03004280
-_0809DEF4: .4byte gUnknown_030041B0
-_0809DEF8: .4byte gUnknown_030041B8
-_0809DEFC: .4byte REG_BG0HOFS
- thumb_func_end sub_809DE64
-
- thumb_func_start sub_809DF00
-sub_809DF00: @ 809DF00
- push {lr}
- ldr r0, _0809DF18 @ =0x02018000
- adds r0, 0x74
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _0809DF0E
- b _0809E030
-_0809DF0E:
- lsls r0, 2
- ldr r1, _0809DF1C @ =_0809DF20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DF18: .4byte 0x02018000
-_0809DF1C: .4byte _0809DF20
- .align 2, 0
-_0809DF20:
- .4byte _0809DF54
- .4byte _0809DF64
- .4byte _0809DF74
- .4byte _0809DF88
- .4byte _0809DF9C
- .4byte _0809DFAC
- .4byte _0809DFC4
- .4byte _0809DFD4
- .4byte _0809DFE0
- .4byte _0809DFEC
- .4byte _0809DFF8
- .4byte _0809E004
- .4byte _0809E010
-_0809DF54:
- ldr r0, _0809DF60 @ =gStatusScreen_Gfx
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- b _0809E030
- .align 2, 0
-_0809DF60: .4byte gStatusScreen_Gfx
-_0809DF64:
- ldr r0, _0809DF6C @ =gUnknown_08E73508
- ldr r1, _0809DF70 @ =0x0600e000
- b _0809DFB0
- .align 2, 0
-_0809DF6C: .4byte gUnknown_08E73508
-_0809DF70: .4byte 0x0600e000
-_0809DF74:
- ldr r0, _0809DF80 @ =gUnknown_08E74E88
- ldr r1, _0809DF84 @ =0x0600e800
- bl LZDecompressVram
- b _0809E030
- .align 2, 0
-_0809DF80: .4byte gUnknown_08E74E88
-_0809DF84: .4byte 0x0600e800
-_0809DF88:
- ldr r0, _0809DF94 @ =gStatusScreen_Tilemap
- ldr r1, _0809DF98 @ =0x06004800
- bl LZDecompressVram
- b _0809E030
- .align 2, 0
-_0809DF94: .4byte gStatusScreen_Tilemap
-_0809DF98: .4byte 0x06004800
-_0809DF9C:
- ldr r0, _0809DFA4 @ =gUnknown_08E73E88
- ldr r1, _0809DFA8 @ =0x06005800
- b _0809DFB0
- .align 2, 0
-_0809DFA4: .4byte gUnknown_08E73E88
-_0809DFA8: .4byte 0x06005800
-_0809DFAC:
- ldr r0, _0809DFBC @ =gUnknown_08E74688
- ldr r1, _0809DFC0 @ =0x06006800
-_0809DFB0:
- movs r2, 0x80
- lsls r2, 3
- bl CpuSet
- b _0809E030
- .align 2, 0
-_0809DFBC: .4byte gUnknown_08E74688
-_0809DFC0: .4byte 0x06006800
-_0809DFC4:
- ldr r0, _0809DFD0 @ =gStatusScreen_Pal
- movs r1, 0
- movs r2, 0xA0
- bl LoadCompressedPalette
- b _0809E030
- .align 2, 0
-_0809DFD0: .4byte gStatusScreen_Pal
-_0809DFD4:
- ldr r0, _0809DFDC @ =gUnknown_083C11B8
- bl LoadCompressedObjectPic
- b _0809E030
- .align 2, 0
-_0809DFDC: .4byte gUnknown_083C11B8
-_0809DFE0:
- ldr r0, _0809DFE8 @ =gUnknown_083C1270
- bl LoadCompressedObjectPic
- b _0809E030
- .align 2, 0
-_0809DFE8: .4byte gUnknown_083C1270
-_0809DFEC:
- ldr r0, _0809DFF4 @ =gUnknown_083C12F4
- bl LoadCompressedObjectPic
- b _0809E030
- .align 2, 0
-_0809DFF4: .4byte gUnknown_083C12F4
-_0809DFF8:
- ldr r0, _0809E000 @ =gUnknown_083C12FC
- bl LoadCompressedObjectPalette
- b _0809E030
- .align 2, 0
-_0809E000: .4byte gUnknown_083C12FC
-_0809E004:
- ldr r0, _0809E00C @ =gUnknown_083C1278
- bl LoadCompressedObjectPalette
- b _0809E030
- .align 2, 0
-_0809E00C: .4byte gUnknown_083C1278
-_0809E010:
- ldr r0, _0809E028 @ =gMoveTypes_Pal
- movs r1, 0xE8
- lsls r1, 1
- movs r2, 0x60
- bl LoadCompressedPalette
- ldr r0, _0809E02C @ =0x02018000
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _0809E03C
- .align 2, 0
-_0809E028: .4byte gMoveTypes_Pal
-_0809E02C: .4byte 0x02018000
-_0809E030:
- ldr r1, _0809E040 @ =0x02018000
- adds r1, 0x74
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
-_0809E03C:
- pop {r1}
- bx r1
- .align 2, 0
-_0809E040: .4byte 0x02018000
- thumb_func_end sub_809DF00
-
- thumb_func_start sub_809E044
-sub_809E044: @ 809E044
- push {r4,r5,lr}
- ldr r4, _0809E0F4 @ =gUnknownPalette_81E6692+0x1C
- adds r0, r4, 0
- movs r1, 0x81
- movs r2, 0x2
- bl LoadPalette
- adds r5, r4, 0x2
- adds r0, r5, 0
- movs r1, 0x88
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0x8F
- movs r2, 0x2
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0x89
- movs r2, 0x2
- bl LoadPalette
- subs r5, 0x12
- adds r0, r5, 0
- movs r1, 0xD1
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0x8
- movs r1, 0xD3
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xD5
- movs r2, 0x4
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0xD7
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0x14
- movs r1, 0xD9
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0xC
- movs r1, 0xDB
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0x18
- movs r1, 0xDD
- movs r2, 0x2
- bl LoadPalette
- subs r5, 0x6
- adds r0, r5, 0
- movs r1, 0xDE
- movs r2, 0x2
- bl LoadPalette
- subs r4, 0x1A
- adds r0, r4, 0
- movs r1, 0xDF
- movs r2, 0x2
- bl LoadPalette
- ldr r0, _0809E0F8 @ =gFontDefaultPalette
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0xF9
- movs r2, 0x2
- bl LoadPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E0F4: .4byte gUnknownPalette_81E6692+0x1C
-_0809E0F8: .4byte gFontDefaultPalette
- thumb_func_end sub_809E044
-
- thumb_func_start SummaryScreenExit
-SummaryScreenExit: @ 809E0FC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0809E134 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E138 @ =sub_809E13C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E134: .4byte gTasks
-_0809E138: .4byte sub_809E13C
- thumb_func_end SummaryScreenExit
-
- thumb_func_start sub_809E13C
-sub_809E13C: @ 809E13C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8055870
- cmp r0, 0x1
- beq _0809E182
- ldr r0, _0809E188 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0809E182
- ldr r1, _0809E18C @ =gUnknown_020384F0
- ldr r4, _0809E190 @ =0x02018000
- ldrb r0, [r4, 0x9]
- strb r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl StopCryAndClearCrySongs
- ldr r0, _0809E194 @ =gMPlay_BGM
- ldr r1, _0809E198 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- ldr r0, [r4, 0x4]
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_0809E182:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E188: .4byte gPaletteFade
-_0809E18C: .4byte gUnknown_020384F0
-_0809E190: .4byte 0x02018000
-_0809E194: .4byte gMPlay_BGM
-_0809E198: .4byte 0x0000ffff
- thumb_func_end sub_809E13C
-
- thumb_func_start SummaryScreenHandleKeyInput
-SummaryScreenHandleKeyInput: @ 809E19C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809E1C8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0809E25A
- ldr r5, _0809E1CC @ =gMain
- ldrh r1, [r5, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E1D0
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl SummaryScreenHandleUpDownInput
- b _0809E25A
- .align 2, 0
-_0809E1C8: .4byte gPaletteFade
-_0809E1CC: .4byte gMain
-_0809E1D0:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E1E2
- adds r0, r4, 0
- movs r1, 0x1
- bl SummaryScreenHandleUpDownInput
- b _0809E25A
-_0809E1E2:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0809E1F6
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809E202
-_0809E1F6:
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl SummaryScreenHandleLeftRightInput
- b _0809E25A
-_0809E202:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0809E218
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809E222
-_0809E218:
- adds r0, r4, 0
- movs r1, 0x1
- bl SummaryScreenHandleLeftRightInput
- b _0809E25A
-_0809E222:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E24C
- ldr r5, _0809E248 @ =0x02018000
- ldrb r0, [r5, 0xB]
- cmp r0, 0x1
- bls _0809E23A
- adds r0, r4, 0
- bl SummaryScreenHandleAButton
-_0809E23A:
- ldrb r0, [r5, 0xB]
- cmp r0, 0
- bne _0809E25A
- adds r0, r4, 0
- bl SummaryScreenExit
- b _0809E25A
- .align 2, 0
-_0809E248: .4byte 0x02018000
-_0809E24C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E25A
- adds r0, r4, 0
- bl SummaryScreenExit
-_0809E25A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end SummaryScreenHandleKeyInput
-
- thumb_func_start sub_809E260
-sub_809E260: @ 809E260
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809E29C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E276
- b _0809E3EE
-_0809E276:
- ldr r5, _0809E2A0 @ =gMain
- ldrh r1, [r5, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E2AC
- ldr r1, _0809E2A4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- subs r1, 0x5
- ldr r2, _0809E2A8 @ =0x02018079
- adds r0, r4, 0
- bl sub_809E8F0
- b _0809E3EE
- .align 2, 0
-_0809E29C: .4byte gPaletteFade
-_0809E2A0: .4byte gMain
-_0809E2A4: .4byte gTasks
-_0809E2A8: .4byte 0x02018079
-_0809E2AC:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E2D8
- ldr r1, _0809E2D0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- ldr r2, _0809E2D4 @ =0x02018079
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809E3EE
- .align 2, 0
-_0809E2D0: .4byte gTasks
-_0809E2D4: .4byte 0x02018079
-_0809E2D8:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0809E2EC
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809E324
-_0809E2EC:
- ldr r1, _0809E320 @ =0x02018000
- ldrb r0, [r1, 0xB]
- cmp r0, 0x3
- bne _0809E314
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809E308
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809E314
-_0809E308:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809E314:
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl SummaryScreenHandleLeftRightInput
- b _0809E3EE
- .align 2, 0
-_0809E320: .4byte 0x02018000
-_0809E324:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0809E33A
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809E37C
-_0809E33A:
- ldr r1, _0809E378 @ =0x02018000
- adds r2, r1, 0
- adds r2, 0x76
- ldrb r0, [r1, 0xB]
- ldrb r2, [r2]
- cmp r0, r2
- beq _0809E3EE
- cmp r0, 0x2
- bne _0809E36C
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809E360
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809E36C
-_0809E360:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809E36C:
- adds r0, r4, 0
- movs r1, 0x1
- bl SummaryScreenHandleLeftRightInput
- b _0809E3EE
- .align 2, 0
-_0809E378: .4byte 0x02018000
-_0809E37C:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E3D4
- adds r0, r4, 0
- bl sub_809F7D0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809E3A0
- ldr r0, _0809E3BC @ =0x02018000
- adds r5, r0, 0
- adds r5, 0x79
- ldrb r0, [r5]
- cmp r0, 0x4
- bne _0809E3C4
-_0809E3A0:
- ldr r0, _0809E3BC @ =0x02018000
- adds r1, r0, 0
- adds r1, 0x79
- ldrb r1, [r1]
- adds r0, 0x7A
- strb r1, [r0]
- ldr r1, _0809E3C0 @ =gSpecialVar_0x8005
- ldrb r0, [r0]
- strh r0, [r1]
- adds r0, r4, 0
- bl SummaryScreenExit
- b _0809E3EE
- .align 2, 0
-_0809E3BC: .4byte 0x02018000
-_0809E3C0: .4byte gSpecialVar_0x8005
-_0809E3C4:
- movs r0, 0x20
- bl PlaySE
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_809F9D0
- b _0809E3EE
-_0809E3D4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E3EE
- ldr r0, _0809E3F4 @ =0x02018000
- adds r0, 0x7A
- movs r1, 0x4
- strb r1, [r0]
- ldr r0, _0809E3F8 @ =gSpecialVar_0x8005
- strh r1, [r0]
- adds r0, r4, 0
- bl SummaryScreenExit
-_0809E3EE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E3F4: .4byte 0x02018000
-_0809E3F8: .4byte gSpecialVar_0x8005
- thumb_func_end sub_809E260
-
- thumb_func_start sub_809E3FC
-sub_809E3FC: @ 809E3FC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- ldr r0, _0809E438 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0809E502
- ldr r0, _0809E43C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E448
- ldr r1, _0809E440 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- subs r1, 0x5
- ldr r2, _0809E444 @ =0x02018079
- adds r0, r5, 0
- bl sub_809E8F0
- b _0809E502
- .align 2, 0
-_0809E438: .4byte gPaletteFade
-_0809E43C: .4byte gMain
-_0809E440: .4byte gTasks
-_0809E444: .4byte 0x02018079
-_0809E448:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E474
- ldr r1, _0809E46C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- ldr r2, _0809E470 @ =0x02018079
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809E502
- .align 2, 0
-_0809E46C: .4byte gTasks
-_0809E470: .4byte 0x02018079
-_0809E474:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E4EE
- ldr r4, _0809E4A8 @ =0x02018000
- adds r6, r4, 0
- adds r6, 0x79
- ldrb r0, [r6]
- cmp r0, 0x4
- beq _0809E4E0
- adds r0, r4, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809E4E0
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_809E508
- lsls r0, 24
- cmp r0, 0
- bne _0809E4AC
- movs r0, 0x20
- bl PlaySE
- b _0809E502
- .align 2, 0
-_0809E4A8: .4byte 0x02018000
-_0809E4AC:
- movs r0, 0x5
- bl PlaySE
- ldrb r1, [r6]
- adds r0, r4, 0
- adds r0, 0x7A
- strb r1, [r0]
- movs r0, 0x1
- bl sub_80A1B40
- movs r0, 0x13
- bl sub_80A1A30
- ldr r1, _0809E4D8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E4DC @ =sub_809E534
- str r1, [r0]
- b _0809E502
- .align 2, 0
-_0809E4D8: .4byte gTasks
-_0809E4DC: .4byte sub_809E534
-_0809E4E0:
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl sub_809EAC8
- b _0809E502
-_0809E4EE:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E502
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl sub_809EAC8
-_0809E502:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809E3FC
-
- thumb_func_start sub_809E508
-sub_809E508: @ 809E508
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0x1
-_0809E50E:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809F760
- lsls r0, 16
- cmp r0, 0
- beq _0809E520
- movs r0, 0x1
- b _0809E52C
-_0809E520:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0809E50E
- movs r0, 0
-_0809E52C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809E508
-
- thumb_func_start sub_809E534
-sub_809E534: @ 809E534
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r2, r3, 0
- ldr r0, _0809E564 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E570
- ldr r1, _0809E568 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x8]
- subs r1, 0x4
- ldr r2, _0809E56C @ =0x0201807a
- adds r0, r3, 0
- bl sub_809E8F0
- b _0809E5C0
- .align 2, 0
-_0809E564: .4byte gMain
-_0809E568: .4byte gTasks
-_0809E56C: .4byte 0x0201807a
-_0809E570:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809E59C
- ldr r1, _0809E594 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x8]
- ldr r2, _0809E598 @ =0x0201807a
- adds r0, r3, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809E5C0
- .align 2, 0
-_0809E594: .4byte gTasks
-_0809E598: .4byte 0x0201807a
-_0809E59C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E5AE
- adds r0, r3, 0
- movs r1, 0x1
- bl sub_809E83C
- b _0809E5C0
-_0809E5AE:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E5C0
- movs r1, 0x1
- negs r1, r1
- adds r0, r2, 0
- bl sub_809E83C
-_0809E5C0:
- pop {r0}
- bx r0
- thumb_func_end sub_809E534
-
- thumb_func_start sub_809E5C4
-sub_809E5C4: @ 809E5C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r1, _0809E6D0 @ =0x02018000
- ldr r5, [r1]
- ldrb r2, [r1, 0x9]
- movs r0, 0x64
- muls r0, r2
- adds r5, r0
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- mov r8, r0
- adds r1, 0x7A
- ldrb r6, [r1]
- adds r0, 0xD
- str r0, [sp, 0x8]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- bl GetMonData
- mov r1, sp
- adds r1, 0x2
- str r1, [sp, 0x14]
- strh r0, [r1]
- adds r2, r6, 0
- adds r2, 0xD
- str r2, [sp, 0xC]
- adds r0, r5, 0
- adds r1, r2, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- mov r3, r8
- adds r3, 0x11
- str r3, [sp, 0x10]
- adds r0, r5, 0
- adds r1, r3, 0
- bl GetMonData
- mov r7, sp
- adds r7, 0x5
- str r7, [sp, 0x18]
- strb r0, [r7]
- adds r0, r6, 0
- adds r0, 0x11
- str r0, [sp, 0x1C]
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- bl GetMonData
- add r1, sp, 0x4
- mov r10, r1
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x15
- bl GetMonData
- mov r4, sp
- adds r4, 0x6
- strb r0, [r4]
- ldr r1, _0809E6D4 @ =gUnknown_08208238
- mov r2, r8
- adds r0, r2, r1
- ldrb r0, [r0]
- mov r9, r0
- ldrb r0, [r4]
- adds r2, r0, 0
- mov r3, r9
- ands r2, r3
- mov r7, r8
- lsls r7, 1
- mov r8, r7
- asrs r2, r7
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, r1
- ldrb r3, [r1]
- adds r1, r0, 0
- ands r1, r3
- lsls r6, 1
- asrs r1, r6
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- bics r0, r7
- strb r0, [r4]
- ldrb r0, [r4]
- bics r0, r3
- strb r0, [r4]
- lsls r2, r6
- mov r0, r8
- lsls r1, r0
- adds r2, r1
- ldrb r0, [r4]
- orrs r0, r2
- strb r0, [r4]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x14]
- bl SetMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x10]
- mov r2, r10
- bl SetMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x15
- adds r2, r4, 0
- bl SetMonData
- 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
-_0809E6D0: .4byte 0x02018000
-_0809E6D4: .4byte gUnknown_08208238
- thumb_func_end sub_809E5C4
-
- thumb_func_start sub_809E6D8
-sub_809E6D8: @ 809E6D8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r2, _0809E7E8 @ =0x02018000
- ldr r5, [r2]
- ldrb r1, [r2, 0x9]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r5, r0
- adds r0, r2, 0
- adds r0, 0x79
- ldrb r0, [r0]
- mov r8, r0
- adds r2, 0x7A
- ldrb r6, [r2]
- adds r0, 0xD
- str r0, [sp, 0x8]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- bl GetBoxMonData
- mov r1, sp
- adds r1, 0x2
- str r1, [sp, 0x14]
- strh r0, [r1]
- adds r2, r6, 0
- adds r2, 0xD
- str r2, [sp, 0xC]
- adds r0, r5, 0
- adds r1, r2, 0
- bl GetBoxMonData
- mov r1, sp
- strh r0, [r1]
- mov r3, r8
- adds r3, 0x11
- str r3, [sp, 0x10]
- adds r0, r5, 0
- adds r1, r3, 0
- bl GetBoxMonData
- mov r7, sp
- adds r7, 0x5
- str r7, [sp, 0x18]
- strb r0, [r7]
- adds r0, r6, 0
- adds r0, 0x11
- str r0, [sp, 0x1C]
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- bl GetBoxMonData
- add r1, sp, 0x4
- mov r10, r1
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x15
- bl GetBoxMonData
- mov r4, sp
- adds r4, 0x6
- strb r0, [r4]
- ldr r1, _0809E7EC @ =gUnknown_08208238
- mov r2, r8
- adds r0, r2, r1
- ldrb r0, [r0]
- mov r9, r0
- ldrb r0, [r4]
- adds r2, r0, 0
- mov r3, r9
- ands r2, r3
- mov r7, r8
- lsls r7, 1
- mov r8, r7
- asrs r2, r7
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, r1
- ldrb r3, [r1]
- adds r1, r0, 0
- ands r1, r3
- lsls r6, 1
- asrs r1, r6
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- bics r0, r7
- strb r0, [r4]
- ldrb r0, [r4]
- bics r0, r3
- strb r0, [r4]
- lsls r2, r6
- mov r0, r8
- lsls r1, r0
- adds r2, r1
- ldrb r0, [r4]
- orrs r0, r2
- strb r0, [r4]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- mov r2, sp
- bl SetBoxMonData
- adds r0, r5, 0
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x14]
- bl SetBoxMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x10]
- mov r2, r10
- bl SetBoxMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- ldr r2, [sp, 0x18]
- bl SetBoxMonData
- adds r0, r5, 0
- movs r1, 0x15
- adds r2, r4, 0
- bl SetBoxMonData
- 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
-_0809E7E8: .4byte 0x02018000
-_0809E7EC: .4byte gUnknown_08208238
- thumb_func_end sub_809E6D8
-
- thumb_func_start sub_809E7F0
-sub_809E7F0: @ 809E7F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_809F5F8
- lsls r0, 24
- cmp r0, 0
- beq _0809E828
- ldr r1, _0809E830 @ =0x02018000
- adds r2, r1, 0
- adds r2, 0x74
- movs r0, 0
- strb r0, [r2]
- adds r0, r1, 0
- adds r0, 0x10
- adds r1, 0x79
- bl sub_80A0428
- ldr r1, _0809E834 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E838 @ =sub_809E3FC
- str r1, [r0]
- adds r0, r4, 0
- bl sub_80A2078
-_0809E828:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E830: .4byte 0x02018000
-_0809E834: .4byte gTasks
-_0809E838: .4byte sub_809E3FC
- thumb_func_end sub_809E7F0
-
- thumb_func_start sub_809E83C
-sub_809E83C: @ 809E83C
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x13
- bl sub_80A1B1C
- movs r0, 0
- bl sub_80A1B40
- cmp r4, 0x1
- bne _0809E8C0
- ldr r1, _0809E87C @ =0x02018000
- adds r0, r1, 0
- adds r0, 0x79
- adds r2, r1, 0
- adds r2, 0x7A
- ldrb r0, [r0]
- ldrb r2, [r2]
- cmp r0, r2
- beq _0809E8CA
- ldrb r0, [r1, 0xE]
- cmp r0, 0
- bne _0809E880
- bl sub_809E5C4
- b _0809E884
- .align 2, 0
-_0809E87C: .4byte 0x02018000
-_0809E880:
- bl sub_809E6D8
-_0809E884:
- ldr r4, _0809E8B4 @ =0x02018000
- adds r0, r4, 0
- adds r0, 0x7A
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x79
- strb r0, [r1]
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_809F678
- adds r1, r4, 0
- adds r1, 0x74
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _0809E8B8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E8BC @ =sub_809E7F0
- str r1, [r0]
- b _0809E8DE
- .align 2, 0
-_0809E8B4: .4byte 0x02018000
-_0809E8B8: .4byte gTasks
-_0809E8BC: .4byte sub_809E7F0
-_0809E8C0:
- ldr r0, _0809E8E4 @ =0x02018010
- adds r1, r0, 0
- adds r1, 0x69
- bl sub_80A0428
-_0809E8CA:
- ldr r0, _0809E8E8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0809E8EC @ =sub_809E3FC
- str r0, [r1]
- adds r0, r5, 0
- bl sub_80A2078
-_0809E8DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E8E4: .4byte 0x02018010
-_0809E8E8: .4byte gTasks
-_0809E8EC: .4byte sub_809E3FC
- thumb_func_end sub_809E83C
-
- thumb_func_start sub_809E8F0
-sub_809E8F0: @ 809E8F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r1, 0
- mov r9, r2
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x5
- bl PlaySE
- mov r1, r9
- ldrb r6, [r1]
- ldr r1, _0809E944 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x8]
- movs r2, 0
- lsls r4, 24
- asrs r4, 24
- mov r10, r4
- lsls r7, r0, 24
-_0809E930:
- lsls r0, r6, 24
- asrs r0, 24
- add r0, r10
- lsls r0, 24
- lsrs r6, r0, 24
- asrs r1, r0, 24
- cmp r0, r7
- ble _0809E948
- movs r6, 0
- b _0809E94E
- .align 2, 0
-_0809E944: .4byte gTasks
-_0809E948:
- cmp r1, 0
- bge _0809E94E
- lsrs r6, r7, 24
-_0809E94E:
- lsls r4, r6, 24
- lsrs r1, r4, 24
- ldr r0, _0809EA10 @ =0x02018010
- str r2, [sp, 0x4]
- bl sub_809F760
- lsls r0, 16
- adds r5, r4, 0
- ldr r2, [sp, 0x4]
- cmp r0, 0
- bne _0809E97A
- asrs r0, r5, 24
- cmp r0, 0x4
- beq _0809E97A
- lsls r0, r2, 24
- movs r3, 0x80
- lsls r3, 17
- adds r0, r3
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _0809E930
-_0809E97A:
- mov r1, r9
- ldrb r0, [r1]
- cmp r0, 0x4
- bne _0809E996
- asrs r0, r5, 24
- cmp r0, 0x4
- beq _0809E996
- ldr r0, _0809EA14 @ =0x02018000
- adds r0, 0x7C
- ldrh r0, [r0]
- mov r2, r8
- lsls r7, r2, 2
- cmp r0, 0
- beq _0809E9AC
-_0809E996:
- ldr r2, _0809EA18 @ =gTasks
- mov r3, r8
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- adds r7, r1, 0
- cmp r0, 0x1
- bne _0809E9D0
-_0809E9AC:
- lsrs r4, r5, 24
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_80A1488
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_80A1654
- ldr r1, _0809EA18 @ =gTasks
- mov r3, r8
- adds r0, r7, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x22]
- movs r0, 0
- str r0, [sp]
-_0809E9D0:
- mov r1, r9
- ldrb r0, [r1]
- cmp r0, 0x4
- beq _0809E9FE
- asrs r0, r5, 24
- cmp r0, 0x4
- bne _0809E9FE
- ldr r0, _0809EA14 @ =0x02018000
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809E9FE
- movs r4, 0x2
- negs r4, r4
- lsrs r5, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A1488
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A1654
-_0809E9FE:
- mov r2, r9
- strb r6, [r2]
- ldr r0, _0809EA1C @ =0x02018079
- cmp r9, r0
- bne _0809EA20
- movs r0, 0
- bl sub_80A1C30
- b _0809EA26
- .align 2, 0
-_0809EA10: .4byte 0x02018010
-_0809EA14: .4byte 0x02018000
-_0809EA18: .4byte gTasks
-_0809EA1C: .4byte 0x02018079
-_0809EA20:
- movs r0, 0x1
- bl sub_80A1C30
-_0809EA26:
- ldr r3, [sp]
- cmp r3, 0
- beq _0809EA34
- ldr r0, _0809EA4C @ =0x02018010
- mov r1, r9
- bl sub_80A0428
-_0809EA34:
- mov r0, r8
- bl sub_80A2078
- 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
-_0809EA4C: .4byte 0x02018010
- thumb_func_end sub_809E8F0
-
- thumb_func_start SummaryScreenHandleAButton
-SummaryScreenHandleAButton: @ 809EA50
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0809EABC @ =0x02018000
- adds r1, r4, 0
- adds r1, 0x79
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0
- bl sub_80A1488
- movs r0, 0x2
- movs r1, 0
- bl sub_80A1654
- adds r0, r4, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809EA8C
- adds r1, r4, 0
- adds r1, 0x7F
- movs r0, 0x5
- strb r0, [r1]
- bl sub_80A0DD0
-_0809EA8C:
- movs r0, 0
- bl sub_80A16CC
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_80A029C
- movs r0, 0x9
- bl sub_80A1A30
- ldr r1, _0809EAC0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809EAC4 @ =sub_809E3FC
- str r1, [r0]
- adds r0, r5, 0
- bl sub_80A2078
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EABC: .4byte 0x02018000
-_0809EAC0: .4byte gTasks
-_0809EAC4: .4byte sub_809E3FC
- thumb_func_end SummaryScreenHandleAButton
-
- thumb_func_start sub_809EAC8
-sub_809EAC8: @ 809EAC8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0809EB34 @ =0x02018000
- adds r0, r6, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- beq _0809EAEE
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A1488
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A1654
-_0809EAEE:
- movs r0, 0x9
- bl sub_80A1B1C
- movs r0, 0x1
- bl sub_80A16CC
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- movs r0, 0xB
- movs r1, 0xF
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r1, r6, 0
- adds r1, 0x7F
- movs r0, 0x6
- strb r0, [r1]
- bl sub_80A0DD0
- ldr r1, _0809EB38 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809EB3C @ =SummaryScreenHandleKeyInput
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EB34: .4byte 0x02018000
-_0809EB38: .4byte gTasks
-_0809EB3C: .4byte SummaryScreenHandleKeyInput
- thumb_func_end sub_809EAC8
-
- thumb_func_start sub_809EB40
-sub_809EB40: @ 809EB40
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0809EB6C @ =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
- beq _0809EB74
- cmp r0, 0x5
- bne _0809EBA4
- movs r0, 0x9
- bl sub_80A1A30
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _0809EB70 @ =sub_809E260
- str r0, [r4]
- b _0809EBB4
- .align 2, 0
-_0809EB6C: .4byte gTasks
-_0809EB70: .4byte sub_809E260
-_0809EB74:
- ldr r4, _0809EBBC @ =0x02018000
- adds r6, r4, 0
- adds r6, 0x79
- strb r0, [r6]
- adds r0, r4, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809EB96
- movs r0, 0xA
- movs r1, 0
- bl sub_80A1488
- ldrb r1, [r6]
- movs r0, 0xA
- bl sub_80A1654
-_0809EB96:
- movs r0, 0
- bl sub_80A16CC
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_80A029C
-_0809EBA4:
- ldr r0, _0809EBC0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_0809EBB4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EBBC: .4byte 0x02018000
-_0809EBC0: .4byte gTasks
- thumb_func_end sub_809EB40
-
- thumb_func_start sub_809EBC4
-sub_809EBC4: @ 809EBC4
- push {r4,lr}
- ldr r4, _0809EC28 @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- beq _0809EC22
- bl sub_80A0EE8
- ldr r0, _0809EC2C @ =gUnknown_030042C0
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- strh r1, [r0]
- ldrb r0, [r4, 0xB]
- cmp r0, 0x1
- bne _0809EBF4
- ldr r2, _0809EC30 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EC34 @ =0x0000e0ff
- ands r0, r1
- movs r3, 0x80
- lsls r3, 4
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EBF4:
- ldrb r3, [r4, 0xB]
- cmp r3, 0x2
- bne _0809EC0C
- ldr r2, _0809EC30 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EC34 @ =0x0000e0ff
- ands r0, r1
- movs r4, 0xA0
- lsls r4, 4
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EC0C:
- cmp r3, 0x3
- bne _0809EC22
- ldr r2, _0809EC30 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EC34 @ =0x0000e0ff
- ands r0, r1
- movs r3, 0xC0
- lsls r3, 4
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EC22:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EC28: .4byte 0x02018000
-_0809EC2C: .4byte gUnknown_030042C0
-_0809EC30: .4byte REG_BG1CNT
-_0809EC34: .4byte 0x0000e0ff
- thumb_func_end sub_809EBC4
-
- thumb_func_start sub_809EC38
-sub_809EC38: @ 809EC38
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0809EC5C @ =gTasks + 0x8
- adds r6, r0, r1
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x5
- bls _0809EC52
- b _0809EE64
-_0809EC52:
- lsls r0, 2
- ldr r1, _0809EC60 @ =_0809EC64
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809EC5C: .4byte gTasks + 0x8
-_0809EC60: .4byte _0809EC64
- .align 2, 0
-_0809EC64:
- .4byte _0809EC7C
- .4byte _0809ED14
- .4byte _0809ED98
- .4byte _0809EE12
- .4byte _0809EE1C
- .4byte _0809EE4C
-_0809EC7C:
- ldr r1, _0809ECB8 @ =0x02018000
- adds r0, r1, 0
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809ECC8
- ldrb r3, [r1, 0xB]
- cmp r3, 0
- beq _0809EC98
- ldr r1, _0809ECBC @ =gUnknown_03004288
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
-_0809EC98:
- cmp r3, 0x1
- bne _0809ECAE
- ldr r2, _0809ECC0 @ =REG_BG2CNT
- ldrh r1, [r2]
- ldr r0, _0809ECC4 @ =0x0000e0ff
- ands r0, r1
- movs r4, 0x80
- lsls r4, 4
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809ECAE:
- cmp r3, 0x2
- beq _0809ECB4
- b _0809EE3A
-_0809ECB4:
- ldr r2, _0809ECC0 @ =REG_BG2CNT
- b _0809ECF6
- .align 2, 0
-_0809ECB8: .4byte 0x02018000
-_0809ECBC: .4byte gUnknown_03004288
-_0809ECC0: .4byte REG_BG2CNT
-_0809ECC4: .4byte 0x0000e0ff
-_0809ECC8:
- ldrb r3, [r1, 0xB]
- cmp r3, 0
- beq _0809ECD8
- ldr r1, _0809ED08 @ =gUnknown_030042C0
- movs r4, 0x80
- lsls r4, 1
- adds r0, r4, 0
- strh r0, [r1]
-_0809ECD8:
- cmp r3, 0x1
- bne _0809ECEE
- ldr r2, _0809ED0C @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809ED10 @ =0x0000e0ff
- ands r0, r1
- movs r4, 0x80
- lsls r4, 4
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809ECEE:
- cmp r3, 0x2
- beq _0809ECF4
- b _0809EE3A
-_0809ECF4:
- ldr r2, _0809ED0C @ =REG_BG1CNT
-_0809ECF6:
- ldrh r1, [r2]
- ldr r0, _0809ED10 @ =0x0000e0ff
- ands r0, r1
- movs r3, 0xA0
- lsls r3, 4
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
- b _0809EE3A
- .align 2, 0
-_0809ED08: .4byte gUnknown_030042C0
-_0809ED0C: .4byte REG_BG1CNT
-_0809ED10: .4byte 0x0000e0ff
-_0809ED14:
- ldr r0, _0809ED48 @ =0x02018000
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809ED5C
- ldr r1, _0809ED4C @ =gUnknown_030042C0
- ldrh r0, [r1]
- subs r0, 0x20
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0809ED2E
- b _0809EE64
-_0809ED2E:
- ldr r3, _0809ED50 @ =REG_BG1CNT
- ldrh r2, [r3]
- ldr r1, _0809ED54 @ =0x0000fffc
- adds r0, r1, 0
- ands r0, r2
- adds r0, 0x2
- strh r0, [r3]
- ldr r2, _0809ED58 @ =REG_BG2CNT
- ldrh r0, [r2]
- ands r1, r0
- adds r1, 0x1
- strh r1, [r2]
- b _0809EE3A
- .align 2, 0
-_0809ED48: .4byte 0x02018000
-_0809ED4C: .4byte gUnknown_030042C0
-_0809ED50: .4byte REG_BG1CNT
-_0809ED54: .4byte 0x0000fffc
-_0809ED58: .4byte REG_BG2CNT
-_0809ED5C:
- ldr r1, _0809ED88 @ =gUnknown_03004288
- ldrh r0, [r1]
- subs r0, 0x20
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0809ED6C
- b _0809EE64
-_0809ED6C:
- ldr r3, _0809ED8C @ =REG_BG1CNT
- ldrh r2, [r3]
- ldr r1, _0809ED90 @ =0x0000fffc
- adds r0, r1, 0
- ands r0, r2
- adds r0, 0x1
- strh r0, [r3]
- ldr r2, _0809ED94 @ =REG_BG2CNT
- ldrh r0, [r2]
- ands r1, r0
- adds r1, 0x2
- strh r1, [r2]
- b _0809EE3A
- .align 2, 0
-_0809ED88: .4byte gUnknown_03004288
-_0809ED8C: .4byte REG_BG1CNT
-_0809ED90: .4byte 0x0000fffc
-_0809ED94: .4byte REG_BG2CNT
-_0809ED98:
- ldr r1, _0809EDD4 @ =0x02018000
- ldrb r3, [r1, 0xB]
- adds r0, r3, 0x1
- adds r2, r1, 0
- adds r2, 0x7E
- strb r0, [r2]
- ldrb r2, [r1, 0x8]
- subs r0, r2, 0x2
- lsls r0, 24
- lsrs r0, 24
- adds r5, r1, 0
- cmp r0, 0x1
- bhi _0809EDD8
- adds r1, 0x7F
- movs r0, 0
- strb r0, [r1]
- adds r4, r5, 0
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A029C
- adds r5, 0x79
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A0428
- ldrb r0, [r5]
- bl sub_80A00F4
- b _0809EE3A
- .align 2, 0
-_0809EDD4: .4byte 0x02018000
-_0809EDD8:
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0809EDFA
- adds r0, r5, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809EDF2
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0809EDFA
-_0809EDF2:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x6
- b _0809EE0E
-_0809EDFA:
- ldrb r0, [r5, 0xB]
- cmp r0, 0
- bne _0809EE08
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x7
- b _0809EE0E
-_0809EE08:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0
-_0809EE0E:
- strb r0, [r1]
- b _0809EE3A
-_0809EE12:
- bl sub_80A0EE8
- bl sub_80A0DD0
- b _0809EE3A
-_0809EE1C:
- ldr r0, _0809EE44 @ =gUnknown_083C1598
- ldr r4, _0809EE48 @ =0x02018000
- ldrb r1, [r4, 0xB]
- lsls r1, 2
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- adds r4, 0x80
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
-_0809EE3A:
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- b _0809EE64
- .align 2, 0
-_0809EE44: .4byte gUnknown_083C1598
-_0809EE48: .4byte 0x02018000
-_0809EE4C:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809EE64
- ldr r1, _0809EE6C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809EE70 @ =gUnknown_03005CF0
- ldr r1, [r1]
- str r1, [r0]
-_0809EE64:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EE6C: .4byte gTasks
-_0809EE70: .4byte gUnknown_03005CF0
- thumb_func_end sub_809EC38
-
- thumb_func_start sub_809EE74
-sub_809EE74: @ 809EE74
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0809EE98 @ =gTasks + 0x8
- adds r6, r0, r1
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x6
- bls _0809EE8E
- b _0809F0C0
-_0809EE8E:
- lsls r0, 2
- ldr r1, _0809EE9C @ =_0809EEA0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809EE98: .4byte gTasks + 0x8
-_0809EE9C: .4byte _0809EEA0
- .align 2, 0
-_0809EEA0:
- .4byte _0809EEBC
- .4byte _0809EEE0
- .4byte _0809EFB4
- .4byte _0809EFF4
- .4byte _0809F06E
- .4byte _0809F078
- .4byte _0809F0A8
-_0809EEBC:
- ldr r0, _0809EECC @ =0x02018000
- adds r0, 0x80
- ldrb r1, [r0]
- cmp r1, 0
- bne _0809EED4
- ldr r0, _0809EED0 @ =gUnknown_03004288
- strh r1, [r0]
- b _0809F096
- .align 2, 0
-_0809EECC: .4byte 0x02018000
-_0809EED0: .4byte gUnknown_03004288
-_0809EED4:
- ldr r1, _0809EEDC @ =gUnknown_030042C0
- movs r0, 0
- strh r0, [r1]
- b _0809F096
- .align 2, 0
-_0809EEDC: .4byte gUnknown_030042C0
-_0809EEE0:
- ldr r1, _0809EF30 @ =0x02018000
- adds r0, r1, 0
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809EF4C
- ldrb r3, [r1, 0xB]
- cmp r3, 0x1
- bne _0809EF02
- ldr r2, _0809EF34 @ =REG_BG2CNT
- ldrh r1, [r2]
- ldr r0, _0809EF38 @ =0x0000e0fc
- ands r0, r1
- ldr r4, _0809EF3C @ =0x00000801
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF02:
- cmp r3, 0x2
- bne _0809EF16
- ldr r2, _0809EF34 @ =REG_BG2CNT
- ldrh r1, [r2]
- ldr r0, _0809EF38 @ =0x0000e0fc
- ands r0, r1
- ldr r4, _0809EF40 @ =0x00000a01
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF16:
- cmp r3, 0x3
- bne _0809EF2A
- ldr r2, _0809EF34 @ =REG_BG2CNT
- ldrh r1, [r2]
- ldr r0, _0809EF38 @ =0x0000e0fc
- ands r0, r1
- ldr r3, _0809EF44 @ =0x00000c01
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF2A:
- ldr r2, _0809EF48 @ =REG_BG1CNT
- b _0809EF8C
- .align 2, 0
-_0809EF30: .4byte 0x02018000
-_0809EF34: .4byte REG_BG2CNT
-_0809EF38: .4byte 0x0000e0fc
-_0809EF3C: .4byte 0x00000801
-_0809EF40: .4byte 0x00000a01
-_0809EF44: .4byte 0x00000c01
-_0809EF48: .4byte REG_BG1CNT
-_0809EF4C:
- ldrb r3, [r1, 0xB]
- cmp r3, 0x1
- bne _0809EF62
- ldr r2, _0809EF98 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EF9C @ =0x0000e0fc
- ands r0, r1
- ldr r4, _0809EFA0 @ =0x00000801
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF62:
- cmp r3, 0x2
- bne _0809EF76
- ldr r2, _0809EF98 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EF9C @ =0x0000e0fc
- ands r0, r1
- ldr r4, _0809EFA4 @ =0x00000a01
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF76:
- cmp r3, 0x3
- bne _0809EF8A
- ldr r2, _0809EF98 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EF9C @ =0x0000e0fc
- ands r0, r1
- ldr r3, _0809EFA8 @ =0x00000c01
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF8A:
- ldr r2, _0809EFAC @ =REG_BG2CNT
-_0809EF8C:
- ldrh r1, [r2]
- ldr r0, _0809EFB0 @ =0x0000fffc
- ands r0, r1
- adds r0, 0x2
- strh r0, [r2]
- b _0809F096
- .align 2, 0
-_0809EF98: .4byte REG_BG1CNT
-_0809EF9C: .4byte 0x0000e0fc
-_0809EFA0: .4byte 0x00000801
-_0809EFA4: .4byte 0x00000a01
-_0809EFA8: .4byte 0x00000c01
-_0809EFAC: .4byte REG_BG2CNT
-_0809EFB0: .4byte 0x0000fffc
-_0809EFB4:
- ldr r0, _0809EFD4 @ =0x02018000
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809EFDC
- ldr r0, _0809EFD8 @ =gUnknown_03004288
- ldrh r1, [r0]
- adds r1, 0x20
- strh r1, [r0]
- lsls r1, 16
- movs r0, 0x80
- lsls r0, 17
- cmp r1, r0
- bne _0809F0C0
- b _0809F096
- .align 2, 0
-_0809EFD4: .4byte 0x02018000
-_0809EFD8: .4byte gUnknown_03004288
-_0809EFDC:
- ldr r0, _0809EFF0 @ =gUnknown_030042C0
- ldrh r1, [r0]
- adds r1, 0x20
- strh r1, [r0]
- lsls r1, 16
- movs r0, 0x80
- lsls r0, 17
- cmp r1, r0
- bne _0809F0C0
- b _0809F096
- .align 2, 0
-_0809EFF0: .4byte gUnknown_030042C0
-_0809EFF4:
- ldr r1, _0809F030 @ =0x02018000
- ldrb r3, [r1, 0xB]
- adds r0, r3, 0x1
- adds r2, r1, 0
- adds r2, 0x7E
- strb r0, [r2]
- ldrb r2, [r1, 0x8]
- subs r0, r2, 0x2
- lsls r0, 24
- lsrs r0, 24
- adds r5, r1, 0
- cmp r0, 0x1
- bhi _0809F034
- adds r1, 0x7F
- movs r0, 0
- strb r0, [r1]
- adds r4, r5, 0
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A029C
- adds r5, 0x79
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A0428
- ldrb r0, [r5]
- bl sub_80A00F4
- b _0809F096
- .align 2, 0
-_0809F030: .4byte 0x02018000
-_0809F034:
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0809F056
- adds r0, r5, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809F04E
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0809F056
-_0809F04E:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x6
- b _0809F06A
-_0809F056:
- ldrb r0, [r5, 0xB]
- cmp r0, 0
- bne _0809F064
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x7
- b _0809F06A
-_0809F064:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0
-_0809F06A:
- strb r0, [r1]
- b _0809F096
-_0809F06E:
- bl sub_80A0EE8
- bl sub_80A0DD0
- b _0809F096
-_0809F078:
- ldr r0, _0809F0A0 @ =gUnknown_083C1598
- ldr r4, _0809F0A4 @ =0x02018000
- ldrb r1, [r4, 0xB]
- lsls r1, 2
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- adds r4, 0x80
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
-_0809F096:
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- b _0809F0C0
- .align 2, 0
-_0809F0A0: .4byte gUnknown_083C1598
-_0809F0A4: .4byte 0x02018000
-_0809F0A8:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809F0C0
- ldr r1, _0809F0C8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809F0CC @ =gUnknown_03005CF0
- ldr r1, [r1]
- str r1, [r0]
-_0809F0C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F0C8: .4byte gTasks
-_0809F0CC: .4byte gUnknown_03005CF0
- thumb_func_end sub_809EE74
-
- thumb_func_start sub_809F0D0
-sub_809F0D0: @ 809F0D0
- push {r4-r7,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0809F110 @ =0x02018000
- ldrb r0, [r1, 0xB]
- adds r0, r4
- movs r5, 0
- strb r0, [r1, 0xB]
- ldr r2, _0809F114 @ =gUnknown_03005CF0
- ldr r1, _0809F118 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r6, r0, r1
- ldr r0, [r6]
- str r0, [r2]
- bl sub_809FBE4
- strh r5, [r6, 0x8]
- lsls r4, 24
- asrs r4, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _0809F120
- ldr r0, _0809F11C @ =sub_809EC38
- str r0, [r6]
- b _0809F12A
- .align 2, 0
-_0809F110: .4byte 0x02018000
-_0809F114: .4byte gUnknown_03005CF0
-_0809F118: .4byte gTasks
-_0809F11C: .4byte sub_809EC38
-_0809F120:
- ldr r1, _0809F130 @ =sub_809EE74
- str r1, [r6]
- adds r0, r7, 0
- bl _call_via_r1
-_0809F12A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F130: .4byte sub_809EE74
- thumb_func_end sub_809F0D0
-
- thumb_func_start SummaryScreenHandleLeftRightInput
-SummaryScreenHandleLeftRightInput: @ 809F134
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r4, _0809F1AC @ =0x02018010
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809F1A6
- lsls r0, r5, 24
- asrs r5, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _0809F168
- adds r0, r4, 0
- subs r0, 0x10
- adds r1, r4, 0
- adds r1, 0x65
- ldrb r0, [r0, 0xB]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0809F1A6
-_0809F168:
- cmp r5, 0x1
- bne _0809F17C
- adds r0, r4, 0
- subs r0, 0x10
- adds r1, r4, 0
- adds r1, 0x66
- ldrb r0, [r0, 0xB]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0809F1A6
-_0809F17C:
- ldr r0, _0809F1B0 @ =sub_80A1334
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809F1A6
- ldr r0, _0809F1B4 @ =sub_80A1500
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809F1A6
- movs r0, 0x5
- bl PlaySE
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_809F0D0
-_0809F1A6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F1AC: .4byte 0x02018010
-_0809F1B0: .4byte sub_80A1334
-_0809F1B4: .4byte sub_80A1500
- thumb_func_end SummaryScreenHandleLeftRightInput
-
- thumb_func_start SummaryScreenHandleUpDownInput
-SummaryScreenHandleUpDownInput: @ 809F1B8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, _0809F1E4 @ =0x02018000
- ldrb r1, [r0, 0xE]
- adds r2, r0, 0
- cmp r1, 0x1
- bne _0809F202
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- beq _0809F1E8
- lsls r1, r4, 24
- asrs r1, 24
- movs r4, 0x1
- eors r1, r4
- negs r0, r1
- orrs r0, r1
- lsrs r4, r0, 31
- b _0809F1F4
- .align 2, 0
-_0809F1E4: .4byte 0x02018000
-_0809F1E8:
- lsls r0, r4, 24
- asrs r0, 24
- movs r4, 0x3
- cmp r0, 0x1
- bne _0809F1F4
- movs r4, 0x2
-_0809F1F4:
- ldr r0, [r2]
- ldrb r1, [r2, 0x9]
- ldrb r2, [r2, 0xA]
- adds r3, r4, 0
- bl StorageSystemGetNextMonIndex
- b _0809F22C
-_0809F202:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F224
- bl IsLinkDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F224
- lsls r0, r4, 24
- asrs r0, 24
- bl sub_809F3CC
- b _0809F22C
-_0809F224:
- lsls r0, r4, 24
- asrs r0, 24
- bl sub_809F284
-_0809F22C:
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _0809F270
- movs r0, 0x5
- bl PlaySE
- ldr r5, _0809F278 @ =0x02018010
- adds r0, r5, 0
- bl GetMonStatusAndPokerus
- lsls r0, 24
- cmp r0, 0
- beq _0809F258
- movs r0, 0x2
- negs r0, r0
- bl sub_80A12D0
-_0809F258:
- adds r0, r5, 0
- subs r0, 0x10
- strb r4, [r0, 0x9]
- ldr r1, _0809F27C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, [r0]
- str r1, [r5, 0x74]
- ldr r1, _0809F280 @ =sub_809F43C
- str r1, [r0]
-_0809F270:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F278: .4byte 0x02018010
-_0809F27C: .4byte gTasks
-_0809F280: .4byte sub_809F43C
- thumb_func_end SummaryScreenHandleUpDownInput
-
- thumb_func_start sub_809F284
-sub_809F284: @ 809F284
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0809F2C0 @ =0x02018000
- ldr r7, [r0]
- movs r6, 0
- ldrb r1, [r0, 0xB]
- adds r4, r0, 0
- cmp r1, 0
- bne _0809F2C4
- lsls r0, r3, 24
- asrs r2, r0, 24
- movs r1, 0x1
- negs r1, r1
- adds r5, r0, 0
- cmp r2, r1
- bne _0809F2AC
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- beq _0809F2E4
-_0809F2AC:
- asrs r0, r5, 24
- cmp r0, 0x1
- bne _0809F2BA
- ldrb r0, [r4, 0x9]
- ldrb r1, [r4, 0xA]
- cmp r0, r1
- bcs _0809F2E4
-_0809F2BA:
- ldrb r0, [r4, 0x9]
- adds r0, r3
- b _0809F304
- .align 2, 0
-_0809F2C0: .4byte 0x02018000
-_0809F2C4:
- lsls r5, r3, 24
-_0809F2C6:
- lsls r0, r6, 24
- asrs r0, 24
- asrs r1, r5, 24
- adds r0, r1
- lsls r0, 24
- ldr r4, _0809F2EC @ =0x02018000
- lsrs r6, r0, 24
- asrs r0, 24
- ldrb r2, [r4, 0x9]
- adds r1, r0, r2
- cmp r1, 0
- blt _0809F2E4
- ldrb r0, [r4, 0xA]
- cmp r1, r0
- ble _0809F2F0
-_0809F2E4:
- movs r0, 0x1
- negs r0, r0
- b _0809F308
- .align 2, 0
-_0809F2EC: .4byte 0x02018000
-_0809F2F0:
- movs r0, 0x64
- muls r0, r1
- adds r0, r7, r0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809F2C6
- ldrb r0, [r4, 0x9]
- adds r0, r6
-_0809F304:
- lsls r0, 24
- asrs r0, 24
-_0809F308:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809F284
-
- thumb_func_start sub_809F310
-sub_809F310: @ 809F310
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0809F33C
- ldr r0, _0809F338 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0
- bne _0809F332
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809F33C
-_0809F332:
- movs r0, 0x1
- b _0809F33E
- .align 2, 0
-_0809F338: .4byte 0x02018000
-_0809F33C:
- movs r0, 0
-_0809F33E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809F310
-
- thumb_func_start sub_809F344
-sub_809F344: @ 809F344
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
-_0809F34A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- beq _0809F37C
- ldr r0, _0809F374 @ =gUnknown_083C15A8
- adds r5, r4, r0
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809F378 @ =gPlayerParty
- adds r0, r1
- bl sub_809F310
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F34A
- movs r0, 0
- ldrsb r0, [r5, r0]
- b _0809F380
- .align 2, 0
-_0809F374: .4byte gUnknown_083C15A8
-_0809F378: .4byte gPlayerParty
-_0809F37C:
- movs r0, 0x1
- negs r0, r0
-_0809F380:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809F344
-
- thumb_func_start sub_809F388
-sub_809F388: @ 809F388
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
-_0809F38E:
- cmp r4, 0
- beq _0809F3C0
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809F3B8 @ =gUnknown_083C15A8
- adds r5, r4, r0
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809F3BC @ =gPlayerParty
- adds r0, r1
- bl sub_809F310
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F38E
- movs r0, 0
- ldrsb r0, [r5, r0]
- b _0809F3C4
- .align 2, 0
-_0809F3B8: .4byte gUnknown_083C15A8
-_0809F3BC: .4byte gPlayerParty
-_0809F3C0:
- movs r0, 0x1
- negs r0, r0
-_0809F3C4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809F388
-
- thumb_func_start sub_809F3CC
-sub_809F3CC: @ 809F3CC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0
- movs r1, 0
- ldr r3, _0809F41C @ =gUnknown_083C15A8
- ldr r4, _0809F420 @ =0x02018000
- ldrb r0, [r3]
- ldrb r5, [r4, 0x9]
- cmp r0, r5
- beq _0809F3FC
- adds r5, r3, 0
- adds r3, r4, 0
-_0809F3E6:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x5
- bhi _0809F3FC
- adds r0, r1, r5
- ldrb r0, [r0]
- ldrb r4, [r3, 0x9]
- cmp r0, r4
- bne _0809F3E6
- adds r2, r1, 0
-_0809F3FC:
- lsls r0, r6, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0809F40C
- cmp r2, 0
- beq _0809F414
-_0809F40C:
- cmp r1, 0x1
- bne _0809F424
- cmp r2, 0x5
- bne _0809F42C
-_0809F414:
- movs r0, 0x1
- negs r0, r0
- b _0809F436
- .align 2, 0
-_0809F41C: .4byte gUnknown_083C15A8
-_0809F420: .4byte 0x02018000
-_0809F424:
- adds r0, r2, 0
- bl sub_809F388
- b _0809F432
-_0809F42C:
- adds r0, r2, 0
- bl sub_809F344
-_0809F432:
- lsls r0, 24
- asrs r0, 24
-_0809F436:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809F3CC
-
- thumb_func_start sub_809F43C
-sub_809F43C: @ 809F43C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809F45C @ =gMain
- ldr r1, _0809F460 @ =0x0000043c
- adds r5, r0, r1
- ldrb r2, [r5]
- adds r3, r0, 0
- cmp r2, 0x8
- bls _0809F452
- b _0809F5CC
-_0809F452:
- lsls r0, r2, 2
- ldr r1, _0809F464 @ =_0809F468
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809F45C: .4byte gMain
-_0809F460: .4byte 0x0000043c
-_0809F464: .4byte _0809F468
- .align 2, 0
-_0809F468:
- .4byte _0809F48C
- .4byte _0809F492
- .4byte _0809F4BC
- .4byte _0809F4D8
- .4byte _0809F4F4
- .4byte _0809F51C
- .4byte _0809F578
- .4byte _0809F584
- .4byte _0809F5A0
-_0809F48C:
- bl StopCryAndClearCrySongs
- b _0809F5B2
-_0809F492:
- ldr r0, _0809F4AC @ =0x02018000
- ldrb r1, [r0, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809F4B0 @ =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources
- ldr r1, _0809F4B4 @ =gMain
- ldr r0, _0809F4B8 @ =0x0000043c
- adds r1, r0
- b _0809F5B8
- .align 2, 0
-_0809F4AC: .4byte 0x02018000
-_0809F4B0: .4byte gSprites
-_0809F4B4: .4byte gMain
-_0809F4B8: .4byte 0x0000043c
-_0809F4BC:
- ldr r0, _0809F4D0 @ =0x02018000
- ldrb r1, [r0, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809F4D4 @ =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources
- b _0809F5B2
- .align 2, 0
-_0809F4D0: .4byte 0x02018000
-_0809F4D4: .4byte gSprites
-_0809F4D8:
- ldr r0, _0809F4EC @ =0x02018000
- adds r1, r0, 0
- adds r1, 0x74
- movs r2, 0
- strb r2, [r1]
- adds r0, 0x79
- strb r2, [r0]
- ldr r0, _0809F4F0 @ =0x0000043c
- adds r1, r3, r0
- b _0809F5B8
- .align 2, 0
-_0809F4EC: .4byte 0x02018000
-_0809F4F0: .4byte 0x0000043c
-_0809F4F4:
- ldr r4, _0809F518 @ =0x02018010
- adds r0, r4, 0
- bl sub_809F678
- adds r0, r4, 0
- bl GetMonStatusAndPokerus
- lsls r0, 24
- cmp r0, 0
- beq _0809F50E
- movs r0, 0x2
- bl sub_80A12D0
-_0809F50E:
- adds r0, r4, 0
- bl sub_80A0EA4
- b _0809F5B2
- .align 2, 0
-_0809F518: .4byte 0x02018010
-_0809F51C:
- ldr r4, _0809F558 @ =0x02018010
- adds r5, r4, 0
- adds r5, 0x64
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809F6B4
- adds r1, r4, 0
- subs r1, 0x10
- strb r0, [r1, 0xC]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0809F5EA
- movs r0, 0
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0
- beq _0809F560
- ldr r1, _0809F55C @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- b _0809F564
- .align 2, 0
-_0809F558: .4byte 0x02018010
-_0809F55C: .4byte gUnknown_030041B0
-_0809F560:
- ldr r0, _0809F56C @ =gUnknown_030041B0
- strh r1, [r0]
-_0809F564:
- ldr r1, _0809F570 @ =gMain
- ldr r0, _0809F574 @ =0x0000043c
- adds r1, r0
- b _0809F5B8
- .align 2, 0
-_0809F56C: .4byte gUnknown_030041B0
-_0809F570: .4byte gMain
-_0809F574: .4byte 0x0000043c
-_0809F578:
- ldr r0, _0809F580 @ =0x02018010
- bl sub_80A1DCC
- b _0809F5B2
- .align 2, 0
-_0809F580: .4byte 0x02018010
-_0809F584:
- ldr r0, _0809F594 @ =0x02018010
- bl sub_80A1DE8
- ldr r1, _0809F598 @ =gMain
- ldr r0, _0809F59C @ =0x0000043c
- adds r1, r0
- b _0809F5B8
- .align 2, 0
-_0809F594: .4byte 0x02018010
-_0809F598: .4byte gMain
-_0809F59C: .4byte 0x0000043c
-_0809F5A0:
- bl sub_809F5F8
- lsls r0, 24
- cmp r0, 0
- beq _0809F5EA
- ldr r0, _0809F5C0 @ =0x02018000
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
-_0809F5B2:
- ldr r1, _0809F5C4 @ =gMain
- ldr r2, _0809F5C8 @ =0x0000043c
- adds r1, r2
-_0809F5B8:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0809F5EA
- .align 2, 0
-_0809F5C0: .4byte 0x02018000
-_0809F5C4: .4byte gMain
-_0809F5C8: .4byte 0x0000043c
-_0809F5CC:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809F5EA
- movs r0, 0
- strb r0, [r5]
- ldr r0, _0809F5F0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0809F5F4 @ =0x02018000
- adds r0, 0x84
- ldr r0, [r0]
- str r0, [r1]
-_0809F5EA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F5F0: .4byte gTasks
-_0809F5F4: .4byte 0x02018000
- thumb_func_end sub_809F43C
-
- thumb_func_start sub_809F5F8
-sub_809F5F8: @ 809F5F8
- push {r4,lr}
- ldr r2, _0809F61C @ =0x02018000
- adds r4, r2, 0
- adds r4, 0x74
- ldrb r0, [r4]
- cmp r0, 0
- beq _0809F624
- ldr r0, _0809F620 @ =gUnknown_083C1588
- ldrb r1, [r2, 0xB]
- lsls r1, 2
- adds r1, r0
- adds r0, r2, 0
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- movs r0, 0x1
- b _0809F634
- .align 2, 0
-_0809F61C: .4byte 0x02018000
-_0809F620: .4byte gUnknown_083C1588
-_0809F624:
- adds r0, r2, 0
- adds r0, 0x10
- bl sub_809FAC8
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0
-_0809F634:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809F5F8
-
- thumb_func_start sub_809F63C
-sub_809F63C: @ 809F63C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809FE80
- adds r0, r4, 0
- bl sub_809FC34
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809F63C
-
- thumb_func_start sub_809F650
-sub_809F650: @ 809F650
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A00A4
- adds r0, r4, 0
- bl sub_809FF64
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809F650
-
- thumb_func_start sub_809F664
-sub_809F664: @ 809F664
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A0390
- adds r0, r4, 0
- bl sub_80A015C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809F664
-
- thumb_func_start sub_809F678
-sub_809F678: @ 809F678
- push {lr}
- adds r3, r0, 0
- ldr r1, _0809F698 @ =0x02018000
- ldrb r0, [r1, 0xE]
- cmp r0, 0
- bne _0809F69C
- ldr r2, [r1]
- ldrb r1, [r1, 0x9]
- movs r0, 0x64
- muls r1, r0
- adds r1, r2
- adds r0, r3, 0
- movs r2, 0x64
- bl memcpy
- b _0809F6AE
- .align 2, 0
-_0809F698: .4byte 0x02018000
-_0809F69C:
- ldr r0, [r1]
- ldrb r2, [r1, 0x9]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- adds r0, r1
- adds r1, r3, 0
- bl sub_803B4B4
-_0809F6AE:
- pop {r0}
- bx r0
- thumb_func_end sub_809F678
-
- thumb_func_start sub_809F6B4
-sub_809F6B4: @ 809F6B4
- push {r4-r7,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r7, r1, 0
- ldrb r0, [r7]
- cmp r0, 0
- beq _0809F6D2
- cmp r0, 0x1
- beq _0809F718
- adds r0, r4, 0
- bl sub_80A1808
- lsls r0, 24
- lsrs r0, 24
- b _0809F756
-_0809F6D2:
- 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 r6, r0, 0
- lsls r0, r5, 3
- ldr r1, _0809F70C @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _0809F710 @ =gMonFrontPicCoords
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _0809F714 @ =gUnknown_081FAF4C
- ldr r4, [r4, 0x4]
- str r4, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- bl HandleLoadSpecialPokePic
- b _0809F74E
- .align 2, 0
-_0809F70C: .4byte gMonFrontPicTable
-_0809F710: .4byte gMonFrontPicCoords
-_0809F714: .4byte gUnknown_081FAF4C
-_0809F718:
- 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 r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- adds r1, r0, 0
- adds r0, r5, 0
- adds r2, r6, 0
- bl GetMonSpritePalStructFromOtIdPersonality
- adds r4, r0, 0
- bl LoadCompressedObjectPalette
- ldrh r0, [r4, 0x4]
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
-_0809F74E:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- movs r0, 0xFF
-_0809F756:
- add sp, 0xC
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809F6B4
-
- thumb_func_start sub_809F760
-sub_809F760: @ 809F760
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x1
- beq _0809F780
- cmp r1, 0x1
- bgt _0809F776
- cmp r1, 0
- beq _0809F77C
- b _0809F788
-_0809F776:
- cmp r2, 0x2
- beq _0809F784
- b _0809F788
-_0809F77C:
- movs r1, 0xD
- b _0809F78A
-_0809F780:
- movs r1, 0xE
- b _0809F78A
-_0809F784:
- movs r1, 0xF
- b _0809F78A
-_0809F788:
- movs r1, 0x10
-_0809F78A:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_809F760
-
- thumb_func_start sub_809F798
-sub_809F798: @ 809F798
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x1
- beq _0809F7B8
- cmp r1, 0x1
- bgt _0809F7AE
- cmp r1, 0
- beq _0809F7B4
- b _0809F7C0
-_0809F7AE:
- cmp r2, 0x2
- beq _0809F7BC
- b _0809F7C0
-_0809F7B4:
- movs r1, 0x11
- b _0809F7C2
-_0809F7B8:
- movs r1, 0x12
- b _0809F7C2
-_0809F7BC:
- movs r1, 0x13
- b _0809F7C2
-_0809F7C0:
- movs r1, 0x14
-_0809F7C2:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_809F798
-
- thumb_func_start sub_809F7D0
-sub_809F7D0: @ 809F7D0
- push {r4,lr}
- sub sp, 0x64
- mov r0, sp
- bl sub_809F678
- ldr r4, _0809F804 @ =0x02018000
- adds r0, r4, 0
- adds r0, 0x79
- ldrb r1, [r0]
- mov r0, sp
- bl sub_809F760
- lsls r0, 16
- lsrs r0, 16
- bl IsHMMove
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F808
- ldrb r0, [r4, 0x8]
- cmp r0, 0x3
- beq _0809F808
- movs r0, 0
- b _0809F80A
- .align 2, 0
-_0809F804: .4byte 0x02018000
-_0809F808:
- movs r0, 0x1
-_0809F80A:
- add sp, 0x64
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809F7D0
-
- thumb_func_start sub_809F814
-sub_809F814: @ 809F814
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r0, _0809F83C @ =gTasks + 0x8
- mov r8, r0
- adds r4, r6, r0
- ldrh r1, [r4, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- bgt _0809F840
- adds r0, r1, 0x1
- strh r0, [r4, 0x1C]
- b _0809F9C0
- .align 2, 0
-_0809F83C: .4byte gTasks + 0x8
-_0809F840:
- ldr r7, _0809F874 @ =gMain
- ldrh r1, [r7, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809F880
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0809F878 @ =sub_809E260
- str r1, [r0]
- movs r0, 0x4
- strh r0, [r4]
- movs r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r2, _0809F87C @ =0x02018000
- ldrh r0, [r4, 0x1E]
- adds r2, 0x79
- strb r0, [r2]
- movs r1, 0x1
- negs r1, r1
- adds r0, r5, 0
- bl sub_809E8F0
- b _0809F9C0
- .align 2, 0
-_0809F874: .4byte gMain
-_0809F878: .4byte sub_809E260
-_0809F87C: .4byte 0x02018000
-_0809F880:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809F8B4
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0809F8AC @ =sub_809E260
- str r1, [r0]
- movs r0, 0x4
- strh r0, [r4]
- movs r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r2, _0809F8B0 @ =0x02018000
- ldrh r0, [r4, 0x1E]
- adds r2, 0x79
- strb r0, [r2]
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809F9C0
- .align 2, 0
-_0809F8AC: .4byte sub_809E260
-_0809F8B0: .4byte 0x02018000
-_0809F8B4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0809F8C8
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F918
-_0809F8C8:
- ldr r1, _0809F90C @ =0x02018000
- ldrb r0, [r1, 0xB]
- cmp r0, 0x2
- beq _0809F9C0
- cmp r0, 0x3
- bne _0809F8F4
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809F8E8
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809F8F4
-_0809F8E8:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809F8F4:
- ldr r1, _0809F910 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809F914 @ =sub_809E260
- str r1, [r0]
- movs r1, 0x1
- negs r1, r1
- adds r0, r5, 0
- b _0809F972
- .align 2, 0
-_0809F90C: .4byte 0x02018000
-_0809F910: .4byte gTasks
-_0809F914: .4byte sub_809E260
-_0809F918:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0809F92E
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809F994
-_0809F92E:
- ldr r1, _0809F988 @ =0x02018000
- adds r2, r1, 0
- adds r2, 0x76
- ldrb r0, [r1, 0xB]
- ldrb r2, [r2]
- cmp r0, r2
- beq _0809F9C0
- cmp r0, 0x2
- bne _0809F960
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809F954
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809F960
-_0809F954:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809F960:
- ldr r1, _0809F98C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809F990 @ =sub_809E260
- str r1, [r0]
- adds r0, r5, 0
- movs r1, 0x1
-_0809F972:
- bl SummaryScreenHandleLeftRightInput
- ldrb r1, [r4, 0x1E]
- movs r0, 0x1
- bl sub_80A1488
- ldrb r1, [r4, 0x1E]
- movs r0, 0x1
- bl sub_80A1654
- b _0809F9C0
- .align 2, 0
-_0809F988: .4byte 0x02018000
-_0809F98C: .4byte gTasks
-_0809F990: .4byte sub_809E260
-_0809F994:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0809F9A6
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809F9C0
-_0809F9A6:
- ldrb r1, [r4, 0x1E]
- movs r0, 0x2
- bl sub_80A1488
- ldrb r1, [r4, 0x1E]
- movs r0, 0x2
- bl sub_80A1654
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0809F9CC @ =sub_809E260
- str r1, [r0]
-_0809F9C0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F9CC: .4byte sub_809E260
- thumb_func_end sub_809F814
-
- thumb_func_start sub_809F9D0
-sub_809F9D0: @ 809F9D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r6, _0809FA24 @ =gTasks + 0x8
- adds r2, r4, r6
- movs r0, 0
- strh r0, [r2, 0x1C]
- strh r1, [r2, 0x1E]
- movs r5, 0x2
- negs r5, r5
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_80A1488
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_80A1654
- movs r0, 0xB
- movs r1, 0xF
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- ldr r0, _0809FA28 @ =gOtherText_CantForgetHMs
- movs r1, 0xB
- movs r2, 0xF
- bl MenuPrint
- subs r6, 0x8
- adds r4, r6
- ldr r0, _0809FA2C @ =sub_809F814
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FA24: .4byte gTasks + 0x8
-_0809FA28: .4byte gOtherText_CantForgetHMs
-_0809FA2C: .4byte sub_809F814
- thumb_func_end sub_809F9D0
-
- thumb_func_start sub_809FA30
-sub_809FA30: @ 809FA30
- ldr r0, _0809FA38 @ =0x02018000
- adds r0, 0x7A
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0809FA38: .4byte 0x02018000
- thumb_func_end sub_809FA30
-
- thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing
-GetStringCenterAlignXOffsetWithLetterSpacing: @ 809FA3C
- push {r4,lr}
- lsls r0, 24
- lsls r1, 24
- lsls r2, 24
- lsls r3, 24
- lsrs r2, 23
- lsrs r3, 18
- ldr r4, _0809FA70 @ =0x0600f000
- adds r3, r4
- adds r2, r3
- lsrs r1, 12
- lsrs r0, 23
- movs r4, 0x80
- lsls r4, 2
- adds r3, r4, 0
- adds r0, r3
- adds r1, r0
- adds r0, r1, 0
- adds r0, 0x80
- strh r0, [r2]
- adds r2, 0x40
- adds r1, 0x81
- strh r1, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FA70: .4byte 0x0600f000
- thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing
-
- thumb_func_start GetStringCenterAlignXOffset
-GetStringCenterAlignXOffset: @ 809FA74
- push {r4,lr}
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0xF
- adds r2, r4, 0
- bl GetStringCenterAlignXOffsetWithLetterSpacing
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetStringCenterAlignXOffset
-
- thumb_func_start sub_809FA94
-sub_809FA94: @ 809FA94
- push {lr}
- bl IsShiny
- lsls r0, 24
- cmp r0, 0
- beq _0809FAB4
- ldr r0, _0809FAB0 @ =gUnknown_083C157E
- movs r1, 0x4
- movs r2, 0x2
- bl LoadPalette
- movs r0, 0x1
- b _0809FAC0
- .align 2, 0
-_0809FAB0: .4byte gUnknown_083C157E
-_0809FAB4:
- ldr r0, _0809FAC4 @ =gUnknown_083C157C
- movs r1, 0x4
- movs r2, 0x2
- bl LoadPalette
- movs r0, 0
-_0809FAC0:
- pop {r1}
- bx r1
- .align 2, 0
-_0809FAC4: .4byte gUnknown_083C157C
- thumb_func_end sub_809FA94
-
- thumb_func_start sub_809FAC8
-sub_809FAC8: @ 809FAC8
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0809FB28
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0x4
- movs r3, 0x3
- bl MenuZeroFillWindowRect
- movs r0, 0x3
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xC
- movs r2, 0xB
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- ldr r4, _0809FB20 @ =gStringVar1
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetMonNickname
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0x3
- movs r3, 0x10
- bl sub_80A1FF8
- ldr r0, _0809FB24 @ =gUnknown_083C157C
- movs r1, 0x4
- movs r2, 0x2
- bl LoadPalette
- b _0809FBD6
- .align 2, 0
-_0809FB20: .4byte gStringVar1
-_0809FB24: .4byte gUnknown_083C157C
-_0809FB28:
- adds r0, r5, 0
- bl sub_809FA94
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToPokedexNum
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0809FB6C @ =0x0000ffff
- cmp r4, r0
- beq _0809FB96
- cmp r6, 0
- bne _0809FB70
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x2
- bl GetStringCenterAlignXOffset
- movs r0, 0x11
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0xD
- b _0809FB8C
- .align 2, 0
-_0809FB6C: .4byte 0x0000ffff
-_0809FB70:
- movs r0, 0x2
- movs r1, 0x8
- movs r2, 0x1
- movs r3, 0x2
- bl GetStringCenterAlignXOffsetWithLetterSpacing
- movs r0, 0x11
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x8
-_0809FB8C:
- movs r2, 0x3
- movs r3, 0x2
- bl sub_80A1F98
- b _0809FBA2
-_0809FB96:
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0x4
- movs r3, 0x3
- bl MenuZeroFillWindowRect
-_0809FBA2:
- ldr r1, _0809FBE0 @ =gStringVar1
- adds r0, r1, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r1, r0, 0
- adds r0, r5, 0
- bl GetMonNickname
- adds r1, r0, 0
- movs r0, 0xFC
- strb r0, [r1]
- movs r0, 0x13
- strb r0, [r1, 0x1]
- movs r0, 0x3C
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0809FBE0 @ =gStringVar1
- movs r1, 0x1
- movs r2, 0xC
- bl MenuPrint
- adds r0, r5, 0
- bl sub_80A0958
-_0809FBD6:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FBE0: .4byte gStringVar1
- thumb_func_end sub_809FAC8
-
- thumb_func_start sub_809FBE4
-sub_809FBE4: @ 809FBE4
- push {r4,lr}
- movs r4, 0
-_0809FBE8:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1B
- bls _0809FBE8
- movs r0, 0xB
- movs r1, 0x4
- movs r2, 0x1D
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809FBE4
-
- thumb_func_start sub_809FC0C
-sub_809FC0C: @ 809FC0C
- push {lr}
- ldr r0, _0809FC30 @ =gOtherText_Type2
- movs r1, 0xB
- movs r2, 0x6
- bl MenuPrint
- movs r0, 0
- movs r1, 0x16
- movs r2, 0x4
- bl GetStringCenterAlignXOffset
- movs r0, 0x2
- movs r1, 0x17
- movs r2, 0x4
- bl GetStringCenterAlignXOffset
- pop {r0}
- bx r0
- .align 2, 0
-_0809FC30: .4byte gOtherText_Type2
- thumb_func_end sub_809FC0C
-
- thumb_func_start sub_809FC34
-sub_809FC34: @ 809FC34
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- movs r4, 0
-_0809FC3C:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0809FC3C
- movs r0, 0xB
- movs r1, 0x9
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0809FD1C
- ldr r5, _0809FCD0 @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r5, r0, 0
- ldr r1, _0809FCD4 @ =gOtherText_OriginalTrainer
- bl StringCopy
- adds r5, r0, 0
- ldr r4, _0809FCD8 @ =gOtherText_FiveQuestionsAndSlash
- adds r1, r4, 0
- bl StringCopy
- adds r5, r0, 0
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r0, 0x4E
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x3]
- ldr r0, _0809FCD0 @ =gStringVar1
- movs r1, 0xB
- movs r2, 0x4
- bl MenuPrint
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0xC1
- movs r3, 0x20
- bl sub_80A1EF8
- movs r0, 0x9
- movs r1, 0x78
- movs r2, 0x30
- movs r3, 0
- bl sub_80A198C
- adds r0, r6, 0
- movs r1, 0x20
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, 0x5
- bhi _0809FCE0
- ldr r0, _0809FCDC @ =gOtherText_EggAbout
- b _0809FCF2
- .align 2, 0
-_0809FCD0: .4byte gStringVar1
-_0809FCD4: .4byte gOtherText_OriginalTrainer
-_0809FCD8: .4byte gOtherText_FiveQuestionsAndSlash
-_0809FCDC: .4byte gOtherText_EggAbout
-_0809FCE0:
- cmp r0, 0xA
- bhi _0809FCEC
- ldr r0, _0809FCE8 @ =gOtherText_EggSoon
- b _0809FCF2
- .align 2, 0
-_0809FCE8: .4byte gOtherText_EggSoon
-_0809FCEC:
- cmp r1, 0x28
- bhi _0809FD00
- ldr r0, _0809FCFC @ =gOtherText_EggSomeTime
-_0809FCF2:
- movs r1, 0xB
- movs r2, 0x9
- bl MenuPrint
- b _0809FD0A
- .align 2, 0
-_0809FCFC: .4byte gOtherText_EggSomeTime
-_0809FD00:
- ldr r0, _0809FD18 @ =gOtherText_EggLongTime
- movs r1, 0xB
- movs r2, 0x9
- bl MenuPrint
-_0809FD0A:
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0xE
- bl PokemonSummaryScreen_PrintEggTrainerMemo
- b _0809FE4C
- .align 2, 0
-_0809FD18: .4byte gOtherText_EggLongTime
-_0809FD1C:
- ldr r4, _0809FD64 @ =gStringVar2
- adds r0, r6, 0
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- adds r0, r6, 0
- movs r1, 0x3
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r5, _0809FD68 @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r5, r0, 0
- ldr r1, _0809FD6C @ =gOtherText_OriginalTrainer
- bl StringCopy
- adds r5, r0, 0
- adds r0, r6, 0
- movs r1, 0x31
- bl GetMonData
- cmp r0, 0
- bne _0809FD70
- adds r0, r5, 0
- movs r1, 0x9
- b _0809FD74
- .align 2, 0
-_0809FD64: .4byte gStringVar2
-_0809FD68: .4byte gStringVar1
-_0809FD6C: .4byte gOtherText_OriginalTrainer
-_0809FD70:
- adds r0, r5, 0
- movs r1, 0xA
-_0809FD74:
- bl sub_80A1E58
- adds r5, r0, 0
- ldr r1, _0809FE54 @ =gStringVar2
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r0, 0x4E
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x3]
- ldr r0, _0809FE58 @ =gStringVar1
- movs r1, 0xB
- movs r2, 0x4
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonData
- ldr r1, _0809FE5C @ =0x0000ffff
- ands r1, r0
- movs r0, 0xC1
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0xD
- movs r2, 0x5
- movs r3, 0x2
- bl sub_80A1F98
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0809FE60 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r5, r1, r2
- ldrb r4, [r5, 0x6]
- adds r0, r4, 0
- movs r1, 0x78
- movs r2, 0x30
- movs r3, 0
- bl sub_80A198C
- ldrb r0, [r5, 0x7]
- cmp r4, r0
- beq _0809FDF8
- ldrb r0, [r5, 0x7]
- movs r1, 0xA0
- movs r2, 0x30
- movs r3, 0x1
- bl sub_80A198C
-_0809FDF8:
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x2E
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetAbilityBySpecies
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xD
- muls r0, r4
- ldr r1, _0809FE64 @ =gAbilityNames
- adds r0, r1
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x9
- bl sub_80A1FF8
- ldr r0, _0809FE68 @ =gAbilityDescriptions
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- movs r1, 0xB
- movs r2, 0xB
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0xE
- bl PokemonSummaryScreen_PrintTrainerMemo
-_0809FE4C:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FE54: .4byte gStringVar2
-_0809FE58: .4byte gStringVar1
-_0809FE5C: .4byte 0x0000ffff
-_0809FE60: .4byte gBaseStats
-_0809FE64: .4byte gAbilityNames
-_0809FE68: .4byte gAbilityDescriptions
- thumb_func_end sub_809FC34
-
- thumb_func_start sub_809FE6C
-sub_809FE6C: @ 809FE6C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809FC0C
- adds r0, r4, 0
- bl sub_809FC34
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809FE6C
-
- thumb_func_start sub_809FE80
-sub_809FE80: @ 809FE80
- push {lr}
- movs r0, 0xE
- movs r1, 0x4
- movs r2, 0x12
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0x19
- movs r1, 0x4
- movs r2, 0x1E
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0xB
- movs r1, 0x9
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0xB
- movs r1, 0xE
- movs r2, 0x1C
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_809FE80
-
- thumb_func_start sub_809FEB8
-sub_809FEB8: @ 809FEB8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0809FF40 @ =gOtherText_ExpPoints
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0xE
- bl sub_80A1FF8
- ldr r0, _0809FF44 @ =gOtherText_NextLv
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x10
- bl sub_80A1FF8
- ldr r0, _0809FF48 @ =gOtherText_Terminator18
- movs r1, 0x15
- movs r2, 0x10
- bl MenuPrint
- ldr r0, _0809FF4C @ =gOtherText_HP
- movs r4, 0x2A
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x7
- bl sub_80A1F48
- ldr r0, _0809FF50 @ =gOtherText_Attack
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x9
- bl sub_80A1F48
- ldr r0, _0809FF54 @ =gOtherText_Defense
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0xB
- bl sub_80A1F48
- ldr r0, _0809FF58 @ =gOtherText_SpAtk
- movs r4, 0x24
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0x16
- movs r3, 0x7
- bl sub_80A1F48
- ldr r0, _0809FF5C @ =gOtherText_SpDef
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0x16
- movs r3, 0x9
- bl sub_80A1F48
- ldr r0, _0809FF60 @ =gOtherText_Speed
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0x16
- movs r3, 0xB
- bl sub_80A1F48
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FF40: .4byte gOtherText_ExpPoints
-_0809FF44: .4byte gOtherText_NextLv
-_0809FF48: .4byte gOtherText_Terminator18
-_0809FF4C: .4byte gOtherText_HP
-_0809FF50: .4byte gOtherText_Attack
-_0809FF54: .4byte gOtherText_Defense
-_0809FF58: .4byte gOtherText_SpAtk
-_0809FF5C: .4byte gOtherText_SpDef
-_0809FF60: .4byte gOtherText_Speed
- thumb_func_end sub_809FEB8
-
- thumb_func_start sub_809FF64
-sub_809FF64: @ 809FF64
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_0809FF6A:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0809FF6A
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB
- movs r2, 0x4
- bl sub_80A0BF4
- adds r0, r5, 0
- bl sub_80A0B88
- ldr r4, _080A008C @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0x19
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1D
- movs r2, 0xE
- bl MenuPrint_RightAligned
- adds r0, r5, 0
- movs r1, 0x17
- movs r2, 0x10
- bl sub_80A0C80
- adds r0, r5, 0
- movs r1, 0x3B
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x32
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3C
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0xB
- movs r3, 0x32
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3E
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1B
- movs r2, 0x7
- movs r3, 0x12
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3F
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1B
- movs r2, 0x9
- movs r3, 0x12
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3D
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1B
- movs r2, 0xB
- movs r3, 0x12
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x18
- movs r3, 0x1
- bl sub_8072C14
- adds r4, r0, 0
- movs r0, 0xBA
- strb r0, [r4]
- adds r4, 0x1
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x30
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A008C @ =gStringVar1
- movs r1, 0x7E
- movs r2, 0x38
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A008C: .4byte gStringVar1
- thumb_func_end sub_809FF64
-
- thumb_func_start sub_80A0090
-sub_80A0090: @ 80A0090
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809FEB8
- adds r0, r4, 0
- bl sub_809FF64
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0090
-
- thumb_func_start sub_80A00A4
-sub_80A00A4: @ 80A00A4
- push {lr}
- movs r0, 0xB
- movs r1, 0x4
- movs r2, 0x13
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0x10
- movs r1, 0x7
- movs r2, 0x15
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- movs r0, 0x11
- movs r1, 0x9
- movs r2, 0x15
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0x1B
- movs r1, 0x7
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0x16
- movs r1, 0xE
- movs r2, 0x1C
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- movs r0, 0x17
- movs r1, 0x10
- movs r2, 0x1C
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_80A00A4
-
- thumb_func_start sub_80A00F4
-sub_80A00F4: @ 80A00F4
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, _080A012C @ =0x02018000
- adds r0, r2, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- bne _080A010A
- cmp r1, 0x4
- beq _080A0150
-_080A010A:
- ldrb r0, [r2, 0xB]
- cmp r0, 0x2
- bne _080A0138
- ldr r0, _080A0130 @ =gOtherText_Power2
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0xF
- bl sub_80A1FF8
- ldr r0, _080A0134 @ =gOtherText_Accuracy2
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x11
- bl sub_80A1FF8
- b _080A0150
- .align 2, 0
-_080A012C: .4byte 0x02018000
-_080A0130: .4byte gOtherText_Power2
-_080A0134: .4byte gOtherText_Accuracy2
-_080A0138:
- ldr r0, _080A0154 @ =gOtherText_Appeal2
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0xF
- bl sub_80A1FF8
- ldr r0, _080A0158 @ =gOtherText_Jam2
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x11
- bl sub_80A1FF8
-_080A0150:
- pop {r0}
- bx r0
- .align 2, 0
-_080A0154: .4byte gOtherText_Appeal2
-_080A0158: .4byte gOtherText_Jam2
- thumb_func_end sub_80A00F4
-
- thumb_func_start sub_80A015C
-sub_80A015C: @ 80A015C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- movs r7, 0
-_080A0168:
- mov r0, r8
- adds r1, r7, 0
- bl sub_809F760
- lsls r0, 16
- lsrs r6, r0, 16
- mov r0, r8
- adds r1, r7, 0
- bl sub_809F798
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r6, 0
- bne _080A01B8
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_80A1918
- lsls r4, r7, 25
- movs r0, 0x80
- lsls r0, 19
- adds r4, r0
- lsrs r4, 24
- ldr r0, _080A01B0 @ =gOtherText_OneDash
- movs r1, 0xD
- movs r2, 0xF
- adds r3, r4, 0
- bl sub_80A1FF8
- ldr r0, _080A01B4 @ =gOtherText_TwoDashes
- movs r1, 0x1A
- adds r2, r4, 0
- bl MenuPrint
- b _080A0276
- .align 2, 0
-_080A01B0: .4byte gOtherText_OneDash
-_080A01B4: .4byte gOtherText_TwoDashes
-_080A01B8:
- ldr r0, _080A01E0 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A01E8
- ldr r1, _080A01E4 @ =gBattleMoves
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r4, r7, 1
- adds r2, r4, 0x4
- lsls r2, 27
- lsrs r2, 24
- movs r1, 0x57
- adds r3, r7, 0
- bl sub_80A198C
- b _080A020C
- .align 2, 0
-_080A01E0: .4byte 0x02018000
-_080A01E4: .4byte gBattleMoves
-_080A01E8:
- ldr r1, _080A0290 @ =gContestMoves
- lsls r0, r6, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 5
- movs r1, 0x90
- lsls r1, 21
- adds r0, r1
- lsrs r0, 24
- lsls r4, r7, 1
- adds r2, r4, 0x4
- lsls r2, 27
- lsrs r2, 24
- movs r1, 0x57
- adds r3, r7, 0
- bl sub_80A198C
-_080A020C:
- movs r0, 0xD
- muls r0, r6
- ldr r1, _080A0294 @ =gMoveNames
- adds r0, r1
- adds r5, r4, 0x4
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0xD
- movs r2, 0xF
- adds r3, r5, 0
- bl sub_80A1FF8
- movs r0, 0x1
- movs r1, 0x18
- adds r2, r5, 0
- bl GetStringCenterAlignXOffset
- mov r0, r8
- movs r1, 0x15
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r7, 0
- bl CalculatePPWithBonus
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A0298 @ =gStringVar1
- adds r0, r1, 0
- mov r1, r9
- movs r2, 0xE
- movs r3, 0x1
- bl sub_8072C14
- adds r1, r0, 0
- movs r0, 0xBA
- strb r0, [r1]
- adds r1, 0x1
- adds r0, r1, 0
- adds r1, r4, 0
- movs r2, 0x20
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0298 @ =gStringVar1
- movs r1, 0x19
- adds r2, r5, 0
- bl MenuPrint
-_080A0276:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bhi _080A0282
- b _080A0168
-_080A0282:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0290: .4byte gContestMoves
-_080A0294: .4byte gMoveNames
-_080A0298: .4byte gStringVar1
- thumb_func_end sub_80A015C
-
- thumb_func_start sub_80A029C
-sub_80A029C: @ 80A029C
- push {r4,r5,lr}
- ldr r1, _080A02B8 @ =0x02018000
- adds r4, r1, 0
- adds r4, 0x7C
- ldrh r0, [r4]
- cmp r0, 0
- bne _080A02C0
- ldr r0, _080A02BC @ =gOtherText_CancelNoTerminator
- movs r1, 0xD
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80A1FF8
- b _080A037E
- .align 2, 0
-_080A02B8: .4byte 0x02018000
-_080A02BC: .4byte gOtherText_CancelNoTerminator
-_080A02C0:
- ldrh r5, [r4]
- ldrb r0, [r1, 0xB]
- cmp r0, 0x2
- bne _080A02E4
- ldr r1, _080A02E0 @ =gBattleMoves
- lsls r4, r5, 1
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- movs r1, 0x57
- movs r2, 0x60
- movs r3, 0x4
- bl sub_80A198C
- b _080A0304
- .align 2, 0
-_080A02E0: .4byte gBattleMoves
-_080A02E4:
- ldr r1, _080A0320 @ =gContestMoves
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 5
- movs r1, 0x90
- lsls r1, 21
- adds r0, r1
- lsrs r0, 24
- movs r1, 0x57
- movs r2, 0x60
- movs r3, 0x4
- bl sub_80A198C
- lsls r4, r5, 1
-_080A0304:
- ldr r0, _080A0324 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A032C
- movs r0, 0xD
- muls r0, r5
- ldr r1, _080A0328 @ =gMoveNames
- adds r0, r1
- movs r1, 0xA
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80A1FF8
- b _080A033E
- .align 2, 0
-_080A0320: .4byte gContestMoves
-_080A0324: .4byte 0x02018000
-_080A0328: .4byte gMoveNames
-_080A032C:
- movs r0, 0xD
- muls r0, r5
- ldr r1, _080A0384 @ =gMoveNames
- adds r0, r1
- movs r1, 0x9
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80A1FF8
-_080A033E:
- movs r0, 0x1
- movs r1, 0x18
- movs r2, 0xC
- bl GetStringCenterAlignXOffset
- ldr r2, _080A0388 @ =gStringVar1
- ldr r1, _080A038C @ =gBattleMoves
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x4]
- adds r0, r2, 0
- adds r1, r4, 0
- movs r2, 0xE
- movs r3, 0x1
- bl sub_8072C14
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- adds r2, 0x1
- adds r0, r2, 0
- adds r1, r4, 0
- movs r2, 0x20
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0388 @ =gStringVar1
- movs r1, 0x19
- movs r2, 0xC
- bl MenuPrint
-_080A037E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0384: .4byte gMoveNames
-_080A0388: .4byte gStringVar1
-_080A038C: .4byte gBattleMoves
- thumb_func_end sub_80A029C
-
- thumb_func_start sub_80A0390
-sub_80A0390: @ 80A0390
- push {r4,lr}
- movs r4, 0
-_080A0394:
- lsls r3, r4, 1
- adds r1, r3, 0x4
- lsls r1, 24
- lsrs r1, 24
- adds r3, 0x5
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0xF
- movs r2, 0x1C
- bl MenuZeroFillWindowRect
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080A0394
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0390
-
- thumb_func_start sub_80A03BC
-sub_80A03BC: @ 80A03BC
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x4
- beq _080A03D0
- bl sub_809F760
- lsls r0, 16
- lsrs r1, r0, 16
- b _080A03E0
-_080A03D0:
- ldr r0, _080A03E8 @ =0x02018000
- adds r2, r0, 0
- adds r2, 0x7C
- ldrh r0, [r2]
- ldr r1, _080A03EC @ =0x0000ffff
- cmp r0, 0
- beq _080A03E0
- adds r1, r0, 0
-_080A03E0:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A03E8: .4byte 0x02018000
-_080A03EC: .4byte 0x0000ffff
- thumb_func_end sub_80A03BC
-
- thumb_func_start sub_80A03F0
-sub_80A03F0: @ 80A03F0
- push {lr}
- ldrb r1, [r1]
- bl sub_80A03BC
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080A0414 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A041C
- adds r0, r1, 0
- bl sub_80A04CC
- ldr r0, _080A0418 @ =0x0000ffff
- bl sub_80A057C
- b _080A0422
- .align 2, 0
-_080A0414: .4byte 0x02018000
-_080A0418: .4byte 0x0000ffff
-_080A041C:
- adds r0, r1, 0
- bl sub_80A057C
-_080A0422:
- pop {r0}
- bx r0
- thumb_func_end sub_80A03F0
-
- thumb_func_start sub_80A0428
-sub_80A0428: @ 80A0428
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldrb r1, [r6]
- bl sub_80A03BC
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0xB
- movs r1, 0xF
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- ldr r0, _080A0454 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A0458
- adds r0, r4, 0
- bl sub_80A046C
- b _080A045E
- .align 2, 0
-_080A0454: .4byte 0x02018000
-_080A0458:
- adds r0, r4, 0
- bl sub_80A0498
-_080A045E:
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80A03F0
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0428
-
- thumb_func_start sub_80A046C
-sub_80A046C: @ 80A046C
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080A0490 @ =0x0000ffff
- cmp r1, r0
- beq _080A048A
- ldr r0, _080A0494 @ =gMoveDescriptions
- subs r1, 0x1
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0xB
- movs r2, 0xF
- bl MenuPrint
-_080A048A:
- pop {r0}
- bx r0
- .align 2, 0
-_080A0490: .4byte 0x0000ffff
-_080A0494: .4byte gMoveDescriptions
- thumb_func_end sub_80A046C
-
- thumb_func_start sub_80A0498
-sub_80A0498: @ 80A0498
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080A04C0 @ =0x0000ffff
- cmp r3, r0
- beq _080A04BC
- ldr r2, _080A04C4 @ =gUnknown_083CADD4
- ldr r1, _080A04C8 @ =gContestMoves
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0xF
- bl MenuPrint
-_080A04BC:
- pop {r0}
- bx r0
- .align 2, 0
-_080A04C0: .4byte 0x0000ffff
-_080A04C4: .4byte gUnknown_083CADD4
-_080A04C8: .4byte gContestMoves
- thumb_func_end sub_80A0498
-
- thumb_func_start sub_80A04CC
-sub_80A04CC: @ 80A04CC
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080A0504 @ =0x0000ffff
- cmp r4, r0
- beq _080A0572
- ldr r2, _080A0508 @ =gBattleMoves
- lsls r1, r4, 1
- adds r0, r1, r4
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x1]
- adds r5, r1, 0
- cmp r0, 0x1
- bhi _080A0514
- ldr r0, _080A050C @ =gStringVar1
- ldr r1, _080A0510 @ =gOtherText_ThreeDashes2
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C74
- ldr r0, _080A050C @ =gStringVar1
- movs r1, 0x7
- movs r2, 0xF
- bl MenuPrint
- b _080A052A
- .align 2, 0
-_080A0504: .4byte 0x0000ffff
-_080A0508: .4byte gBattleMoves
-_080A050C: .4byte gStringVar1
-_080A0510: .4byte gOtherText_ThreeDashes2
-_080A0514:
- ldr r0, _080A0550 @ =gStringVar1
- ldrb r1, [r2, 0x1]
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0550 @ =gStringVar1
- movs r1, 0x7
- movs r2, 0xF
- bl MenuPrint
-_080A052A:
- ldr r0, _080A0554 @ =gBattleMoves
- adds r1, r5, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- bne _080A055C
- ldr r0, _080A0550 @ =gStringVar1
- ldr r1, _080A0558 @ =gOtherText_ThreeDashes2
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C74
- ldr r0, _080A0550 @ =gStringVar1
- movs r1, 0x7
- movs r2, 0x11
- bl MenuPrint
- b _080A0572
- .align 2, 0
-_080A0550: .4byte gStringVar1
-_080A0554: .4byte gBattleMoves
-_080A0558: .4byte gOtherText_ThreeDashes2
-_080A055C:
- ldr r0, _080A0578 @ =gStringVar1
- ldrb r1, [r1, 0x3]
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0578 @ =gStringVar1
- movs r1, 0x7
- movs r2, 0x11
- bl MenuPrint
-_080A0572:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0578: .4byte gStringVar1
- thumb_func_end sub_80A04CC
-
- thumb_func_start sub_80A057C
-sub_80A057C: @ 80A057C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080A0648 @ =0x06006800
- mov r8, r0
- ldr r0, _080A064C @ =0x0000ffff
- cmp r5, r0
- beq _080A063A
- ldr r1, _080A0650 @ =gContestEffects
- ldr r2, _080A0654 @ =gContestMoves
- lsls r3, r5, 3
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x1]
- mov r10, r2
- mov r9, r3
- cmp r4, 0xFF
- beq _080A05B8
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r4, r0, 24
-_080A05B8:
- movs r2, 0
- movs r7, 0x3
- movs r6, 0xF3
- lsls r6, 2
-_080A05C0:
- ldr r3, _080A0658 @ =0x00001039
- cmp r4, 0xFF
- beq _080A05CC
- cmp r2, r4
- bcs _080A05CC
- adds r3, 0x1
-_080A05CC:
- lsrs r0, r2, 2
- lsls r0, 5
- adds r1, r2, 0
- ands r1, r7
- adds r1, r0
- lsls r1, 1
- add r1, r8
- adds r1, r6
- strh r3, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _080A05C0
- ldr r0, _080A064C @ =0x0000ffff
- cmp r5, r0
- beq _080A063A
- mov r0, r9
- add r0, r10
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _080A0650 @ =gContestEffects
- adds r0, r1
- ldrb r4, [r0, 0x2]
- cmp r4, 0xFF
- beq _080A060C
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r4, r0, 24
-_080A060C:
- movs r2, 0
- movs r6, 0x3
- ldr r5, _080A065C @ =0x0000044c
-_080A0612:
- ldr r3, _080A0660 @ =0x0000103d
- cmp r4, 0xFF
- beq _080A061E
- cmp r2, r4
- bcs _080A061E
- subs r3, 0x1
-_080A061E:
- lsrs r0, r2, 2
- lsls r0, 5
- adds r1, r2, 0
- ands r1, r6
- adds r1, r0
- lsls r1, 1
- add r1, r8
- adds r1, r5
- strh r3, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _080A0612
-_080A063A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0648: .4byte 0x06006800
-_080A064C: .4byte 0x0000ffff
-_080A0650: .4byte gContestEffects
-_080A0654: .4byte gContestMoves
-_080A0658: .4byte 0x00001039
-_080A065C: .4byte 0x0000044c
-_080A0660: .4byte 0x0000103d
- thumb_func_end sub_80A057C
-
- .section .text_80A0958
-
- thumb_func_start sub_80A0958
-sub_80A0958: @ 80A0958
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- mov r8, r0
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r2, _080A0A24 @ =gStringVar1
- adds r0, r2, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- movs r6, 0xFC
- strb r6, [r2]
- movs r0, 0x11
- strb r0, [r2, 0x1]
- movs r0, 0x7
- strb r0, [r2, 0x2]
- movs r0, 0xBA
- strb r0, [r2, 0x3]
- adds r2, 0x4
- movs r0, 0xB
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _080A0A28 @ =gSpeciesNames
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- strb r6, [r2]
- movs r0, 0x13
- mov r10, r0
- strb r0, [r2, 0x1]
- movs r0, 0x50
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- mov r9, r0
- strb r0, [r2, 0x3]
- ldr r5, _080A0A24 @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0xE
- bl MenuPrint
- movs r0, 0x3
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- mov r0, r8
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- movs r0, 0x34
- strb r0, [r2]
- adds r2, 0x1
- adds r0, r2, 0
- adds r1, r4, 0
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- strb r6, [r2]
- mov r0, r10
- strb r0, [r2, 0x1]
- movs r0, 0x20
- strb r0, [r2, 0x2]
- mov r0, r9
- strb r0, [r2, 0x3]
- adds r0, r5, 0
- movs r1, 0x3
- movs r2, 0x10
- bl MenuPrint
- mov r0, r8
- movs r1, 0x7
- movs r2, 0x10
- bl sub_80A0A2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0A24: .4byte gStringVar1
-_080A0A28: .4byte gSpeciesNames
- thumb_func_end sub_80A0958
-
- thumb_func_start sub_80A0A2C
-sub_80A0A2C: @ 80A0A2C
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x20
- beq _080A0A84
- cmp r0, 0x1D
- beq _080A0A84
- adds r0, r6, 0
- bl GetMonGender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080A0A6E
- cmp r0, 0xFE
- beq _080A0A78
- adds r3, r4, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl MenuZeroFillWindowRect
- b _080A0A84
-_080A0A6E:
- ldr r0, _080A0A74 @ =gOtherText_MaleSymbol2
- movs r1, 0xB
- b _080A0A7C
- .align 2, 0
-_080A0A74: .4byte gOtherText_MaleSymbol2
-_080A0A78:
- ldr r0, _080A0A8C @ =gOtherText_FemaleSymbolAndLv
- movs r1, 0xC
-_080A0A7C:
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_80A1FF8
-_080A0A84:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0A8C: .4byte gOtherText_FemaleSymbolAndLv
- thumb_func_end sub_80A0A2C
-
- thumb_func_start sub_80A0A90
-sub_80A0A90: @ 80A0A90
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x32
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x33
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x34
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x35
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x36
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x43
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x44
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x45
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x46
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x47
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x48
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x49
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4A
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4B
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4C
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4D
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4E
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80A0A90
-
- thumb_func_start sub_80A0B88
-sub_80A0B88: @ 80A0B88
- push {r4,r5,lr}
- bl sub_80A0A90
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080A0BA8
- ldr r0, _080A0BA0 @ =gStringVar1
- ldr r1, _080A0BA4 @ =gOtherText_None
- bl StringCopy
- b _080A0BD8
- .align 2, 0
-_080A0BA0: .4byte gStringVar1
-_080A0BA4: .4byte gOtherText_None
-_080A0BA8:
- ldr r4, _080A0BE8 @ =gStringVar1
- ldr r1, _080A0BEC @ =gOtherText_Ribbons00
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- bl StringLength
- lsls r0, 24
- lsrs r0, 24
- subs r4, 0x2
- adds r0, r4
- movs r1, 0xFC
- strb r1, [r0]
- movs r1, 0x14
- strb r1, [r0, 0x1]
- movs r1, 0x6
- strb r1, [r0, 0x2]
- adds r0, 0x3
- adds r1, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
-_080A0BD8:
- ldr r0, _080A0BF0 @ =gUnknown_083C15AE
- movs r1, 0x15
- movs r2, 0x4
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0BE8: .4byte gStringVar1
-_080A0BEC: .4byte gOtherText_Ribbons00
-_080A0BF0: .4byte gUnknown_083C15AE
- thumb_func_end sub_80A0B88
-
- thumb_func_start sub_80A0BF4
-sub_80A0BF4: @ 80A0BF4
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- cmp r5, 0xAF
- bne _080A0C48
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A0C48
- bl IsLinkDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A0C48
- ldr r0, _080A0C40 @ =0x02018000
- ldrb r0, [r0, 0x9]
- cmp r0, 0x1
- beq _080A0C2E
- cmp r0, 0x4
- beq _080A0C2E
- cmp r0, 0x5
- bne _080A0C48
-_080A0C2E:
- ldr r4, _080A0C44 @ =gStringVar1
- adds r0, r5, 0
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- b _080A0C68
- .align 2, 0
-_080A0C40: .4byte 0x02018000
-_080A0C44: .4byte gStringVar1
-_080A0C48:
- cmp r5, 0
- bne _080A0C60
- ldr r0, _080A0C58 @ =gStringVar1
- ldr r1, _080A0C5C @ =gOtherText_None
- bl StringCopy
- b _080A0C68
- .align 2, 0
-_080A0C58: .4byte gStringVar1
-_080A0C5C: .4byte gOtherText_None
-_080A0C60:
- ldr r1, _080A0C78 @ =gStringVar1
- adds r0, r5, 0
- bl CopyItemName
-_080A0C68:
- ldr r0, _080A0C7C @ =gUnknown_083C15B4
- adds r1, r7, 0
- adds r2, r6, 0
- bl MenuPrint
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0C78: .4byte gStringVar1
-_080A0C7C: .4byte gUnknown_083C15B4
- thumb_func_end sub_80A0BF4
-
- thumb_func_start sub_80A0C80
-sub_80A0C80: @ 80A0C80
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- movs r0, 0
- mov r9, r0
- movs r6, 0
- movs r7, 0
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x63
- bhi _080A0D14
- ldr r3, _080A0D4C @ =gExperienceTables
- adds r1, r5, 0x1
- lsls r1, 2
- ldr r2, _080A0D50 @ =gBaseStats
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r2, r0
- adds r1, r2
- adds r1, r3
- ldr r1, [r1]
- mov r0, r8
- subs r0, r1, r0
- mov r9, r0
- lsls r0, r5, 2
- adds r0, r2
- adds r0, r3
- ldr r0, [r0]
- subs r1, r0
- mov r2, r8
- subs r4, r2, r0
- lsls r0, r4, 6
- bl __udivsi3
- adds r6, r0, 0
- movs r7, 0
- adds r0, r7, 0
- orrs r0, r6
- cmp r0, 0
- bne _080A0D14
- cmp r4, 0
- beq _080A0D14
- movs r6, 0x1
- movs r7, 0
-_080A0D14:
- ldr r4, _080A0D54 @ =gStringVar1
- adds r0, r4, 0
- mov r1, r9
- bl ConvertIntToDecimalString
- mov r1, r10
- adds r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp]
- bl MenuPrint_RightAligned
- ldr r0, _080A0D58 @ =0x06004caa
- mov r9, r0
- movs r2, 0
- mov r12, r2
- ldr r0, _080A0D5C @ =0x00002062
- mov r8, r0
-_080A0D3A:
- cmp r7, 0
- bgt _080A0D46
- cmp r7, 0
- bne _080A0D64
- cmp r6, 0x7
- bls _080A0D64
-_080A0D46:
- ldr r1, _080A0D60 @ =0x0000206a
- b _080A0D96
- .align 2, 0
-_080A0D4C: .4byte gExperienceTables
-_080A0D50: .4byte gBaseStats
-_080A0D54: .4byte gStringVar1
-_080A0D58: .4byte 0x06004caa
-_080A0D5C: .4byte 0x00002062
-_080A0D60: .4byte 0x0000206a
-_080A0D64:
- adds r5, r7, 0
- adds r4, r6, 0
- cmp r7, 0
- bge _080A0D74
- movs r4, 0x7
- movs r5, 0
- adds r4, r6
- adcs r5, r7
-_080A0D74:
- lsls r3, r5, 29
- lsrs r2, r4, 3
- adds r0, r3, 0
- orrs r0, r2
- asrs r1, r5, 3
- lsrs r5, r0, 29
- lsls r4, r1, 3
- adds r3, r5, 0
- orrs r3, r4
- lsls r2, r0, 3
- adds r1, r7, 0
- adds r0, r6, 0
- subs r0, r2
- sbcs r1, r3
- add r0, r8
- lsls r0, 16
- lsrs r1, r0, 16
-_080A0D96:
- mov r2, r12
- lsls r0, r2, 1
- add r0, r9
- strh r1, [r0]
- movs r0, 0x8
- negs r0, r0
- asrs r1, r0, 31
- adds r6, r0
- adcs r7, r1
- cmp r7, 0
- bge _080A0DB0
- movs r6, 0
- movs r7, 0
-_080A0DB0:
- mov r0, r12
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0x7
- bls _080A0D3A
- 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_80A0C80
-
- thumb_func_start sub_80A0DD0
-sub_80A0DD0: @ 80A0DD0
- push {r4,r5,lr}
- ldr r2, _080A0E3C @ =gStringVar1
- movs r5, 0xFC
- strb r5, [r2]
- movs r0, 0x12
- strb r0, [r2, 0x1]
- movs r0, 0x2
- strb r0, [r2, 0x2]
- adds r2, 0x3
- adds r0, r2, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- ldr r1, _080A0E40 @ =gUnknown_083C1068
- ldr r4, _080A0E44 @ =0x02018000
- adds r0, r4, 0
- adds r0, 0x7E
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- strb r5, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- movs r0, 0x58
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080A0E3C @ =gStringVar1
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- adds r4, 0x7F
- ldrb r0, [r4]
- cmp r0, 0
- beq _080A0E48
- movs r0, 0x5
- movs r1, 0x17
- movs r2, 0
- bl GetStringCenterAlignXOffset
- movs r0, 0x6
- movs r1, 0x18
- movs r2, 0
- bl GetStringCenterAlignXOffset
- b _080A0E54
- .align 2, 0
-_080A0E3C: .4byte gStringVar1
-_080A0E40: .4byte gUnknown_083C1068
-_080A0E44: .4byte 0x02018000
-_080A0E48:
- movs r0, 0x17
- movs r1, 0
- movs r2, 0x18
- movs r3, 0x1
- bl MenuZeroFillWindowRect
-_080A0E54:
- ldr r2, _080A0E98 @ =gStringVar1
- adds r0, r2, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- ldr r1, _080A0E9C @ =gUnknown_083C1068
- ldr r0, _080A0EA0 @ =0x02018000
- adds r0, 0x7F
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- movs r0, 0x28
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080A0E98 @ =gStringVar1
- movs r1, 0x19
- movs r2, 0
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0E98: .4byte gStringVar1
-_080A0E9C: .4byte gUnknown_083C1068
-_080A0EA0: .4byte 0x02018000
- thumb_func_end sub_80A0DD0
-
- thumb_func_start sub_80A0EA4
-sub_80A0EA4: @ 80A0EA4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080A0ECC @ =0x0600e444
- ldr r6, _080A0ED0 @ =0x0600ec44
- movs r1, 0
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- bne _080A0ED4
- adds r0, r4, 0
- movs r1, 0
- bl CheckPartyHasHadPokerus
- lsls r0, 24
- cmp r0, 0
- beq _080A0ED4
- movs r0, 0x2C
- b _080A0ED8
- .align 2, 0
-_080A0ECC: .4byte 0x0600e444
-_080A0ED0: .4byte 0x0600ec44
-_080A0ED4:
- ldr r1, _080A0EE4 @ =0x0000081a
- adds r0, r1, 0
-_080A0ED8:
- strh r0, [r5]
- strh r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0EE4: .4byte 0x0000081a
- thumb_func_end sub_80A0EA4
-
- thumb_func_start sub_80A0EE8
-sub_80A0EE8: @ 80A0EE8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r3, 0
- ldr r6, _080A0F24 @ =0x02018000
- adds r5, r6, 0
- ldr r1, _080A0F28 @ =0x00004040
- mov r8, r1
- ldr r2, _080A0F2C @ =0x0000404a
- mov r10, r2
-_080A0F02:
- adds r0, r5, 0
- adds r0, 0x75
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080A0F30
- lsls r1, r3, 1
- lsls r0, r3, 2
- add r0, sp
- mov r4, r8
- strh r4, [r0]
- adds r1, 0x1
- lsls r1, 1
- mov r7, sp
- adds r0, r7, r1
- strh r4, [r0]
- b _080A0FE2
- .align 2, 0
-_080A0F24: .4byte 0x02018000
-_080A0F28: .4byte 0x00004040
-_080A0F2C: .4byte 0x0000404a
-_080A0F30:
- movs r0, 0x76
- adds r0, r6
- mov r12, r0
- ldrb r1, [r0]
- cmp r3, r1
- bls _080A0F52
- lsls r1, r3, 1
- lsls r0, r3, 2
- add r0, sp
- mov r2, r10
- strh r2, [r0]
- adds r1, 0x1
- lsls r1, 1
- mov r4, sp
- adds r0, r4, r1
- strh r2, [r0]
- b _080A0FE2
-_080A0F52:
- ldrb r4, [r5, 0xB]
- cmp r3, r4
- bcs _080A0F6E
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r7, sp
- adds r2, r7, r0
- ldr r0, _080A0F88 @ =0x00004046
- strh r0, [r2]
- adds r1, 0x1
- lsls r1, 1
- add r1, sp
- adds r0, 0x1
- strh r0, [r1]
-_080A0F6E:
- cmp r3, r4
- bne _080A0FA6
- mov r0, r12
- ldrb r0, [r0]
- cmp r3, r0
- beq _080A0F90
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r4, sp
- adds r2, r4, r0
- ldr r0, _080A0F8C @ =0x00004041
- b _080A0F9A
- .align 2, 0
-_080A0F88: .4byte 0x00004046
-_080A0F8C: .4byte 0x00004041
-_080A0F90:
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r7, sp
- adds r2, r7, r0
- ldr r0, _080A0FC4 @ =0x0000404b
-_080A0F9A:
- strh r0, [r2]
- adds r1, 0x1
- lsls r1, 1
- add r1, sp
- adds r0, 0x1
- strh r0, [r1]
-_080A0FA6:
- ldrb r0, [r5, 0xB]
- cmp r3, r0
- bls _080A0FE2
- adds r0, r6, 0
- adds r0, 0x76
- ldrb r0, [r0]
- cmp r3, r0
- beq _080A0FCC
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r4, sp
- adds r2, r4, r0
- ldr r0, _080A0FC8 @ =0x00004043
- b _080A0FD6
- .align 2, 0
-_080A0FC4: .4byte 0x0000404b
-_080A0FC8: .4byte 0x00004043
-_080A0FCC:
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r7, sp
- adds r2, r7, r0
- ldr r0, _080A1034 @ =0x00004048
-_080A0FD6:
- strh r0, [r2]
- adds r1, 0x1
- lsls r1, 1
- add r1, sp
- adds r0, 0x1
- strh r0, [r1]
-_080A0FE2:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080A0F02
- ldr r1, _080A1038 @ =0x0600e016
- ldr r0, _080A103C @ =0x040000d4
- mov r2, sp
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080A1040 @ =0x80000008
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r3, 0
-_080A0FFE:
- lsls r0, r3, 1
- mov r4, sp
- adds r1, r4, r0
- ldrh r0, [r1]
- adds r0, 0x10
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x7
- bls _080A0FFE
- ldr r1, _080A1044 @ =0x0600e056
- ldr r0, _080A103C @ =0x040000d4
- str r4, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080A1040 @ =0x80000008
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- 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
-_080A1034: .4byte 0x00004048
-_080A1038: .4byte 0x0600e016
-_080A103C: .4byte 0x040000d4
-_080A1040: .4byte 0x80000008
-_080A1044: .4byte 0x0600e056
- thumb_func_end sub_80A0EE8
-
- thumb_func_start sub_80A1048
-sub_80A1048: @ 80A1048
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, _080A10A0 @ =gTasks + 0x8
- adds r6, r0, r1
- ldrh r0, [r6]
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r6, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _080A106E
- b _080A1224
-_080A106E:
- movs r5, 0x2
- ldrsh r2, [r6, r5]
- ldr r0, _080A10A4 @ =0x0000024a
- subs r0, r2
- lsls r0, 1
- ldr r1, _080A10A8 @ =gUnknown_08E73508
- adds r4, r0, r1
- ldr r5, _080A10AC @ =0x0600e480
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 5
- adds r7, r1, 0
- cmp r2, r0
- bhi _080A10B4
- ldr r0, _080A10B0 @ =0x040000d4
- str r4, [r0]
- str r5, [r0, 0x4]
- lsrs r1, r2, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A10E0
- .align 2, 0
-_080A10A0: .4byte gTasks + 0x8
-_080A10A4: .4byte 0x0000024a
-_080A10A8: .4byte gUnknown_08E73508
-_080A10AC: .4byte 0x0600e480
-_080A10B0: .4byte 0x040000d4
-_080A10B4:
- ldr r3, _080A110C @ =0x040000d4
- str r4, [r3]
- str r5, [r3, 0x4]
- ldr r0, _080A1110 @ =0x80000800
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r4, r0
- adds r5, r0
- ldr r1, _080A1114 @ =0xfffff000
- adds r2, r1
- cmp r2, r0
- bhi _080A10B4
- str r4, [r3]
- str r5, [r3, 0x4]
- lsrs r0, r2, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
-_080A10E0:
- movs r5, 0x2
- ldrsh r0, [r6, r5]
- ldr r1, _080A1118 @ =0x0000026a
- subs r1, r0
- lsls r1, 1
- adds r3, r1, r7
- ldr r4, _080A111C @ =0x0600e4c0
- lsls r1, r0, 1
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bhi _080A1120
- ldr r0, _080A110C @ =0x040000d4
- str r3, [r0]
- str r4, [r0, 0x4]
- lsrs r1, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A114C
- .align 2, 0
-_080A110C: .4byte 0x040000d4
-_080A1110: .4byte 0x80000800
-_080A1114: .4byte 0xfffff000
-_080A1118: .4byte 0x0000026a
-_080A111C: .4byte 0x0600e4c0
-_080A1120:
- ldr r2, _080A1178 @ =0x040000d4
- str r3, [r2]
- str r4, [r2, 0x4]
- ldr r0, _080A117C @ =0x80000800
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r3, r0
- adds r4, r0
- ldr r5, _080A1180 @ =0xfffff000
- adds r1, r5
- cmp r1, r0
- bhi _080A1120
- str r3, [r2]
- str r4, [r2, 0x4]
- lsrs r0, r1, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
-_080A114C:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- ldr r1, _080A1184 @ =0x0000024a
- subs r1, r0
- lsls r1, 1
- adds r3, r1, r7
- ldr r4, _080A1188 @ =0x0600ec80
- lsls r1, r0, 1
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bhi _080A118C
- ldr r0, _080A1178 @ =0x040000d4
- str r3, [r0]
- str r4, [r0, 0x4]
- lsrs r1, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A11B8
- .align 2, 0
-_080A1178: .4byte 0x040000d4
-_080A117C: .4byte 0x80000800
-_080A1180: .4byte 0xfffff000
-_080A1184: .4byte 0x0000024a
-_080A1188: .4byte 0x0600ec80
-_080A118C:
- ldr r2, _080A11E4 @ =0x040000d4
- str r3, [r2]
- str r4, [r2, 0x4]
- ldr r0, _080A11E8 @ =0x80000800
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r3, r0
- adds r4, r0
- ldr r5, _080A11EC @ =0xfffff000
- adds r1, r5
- cmp r1, r0
- bhi _080A118C
- str r3, [r2]
- str r4, [r2, 0x4]
- lsrs r0, r1, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
-_080A11B8:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- ldr r1, _080A11F0 @ =0x0000026a
- subs r1, r0
- lsls r1, 1
- adds r3, r1, r7
- ldr r4, _080A11F4 @ =0x0600ecc0
- lsls r1, r0, 1
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bhi _080A11F8
- ldr r0, _080A11E4 @ =0x040000d4
- str r3, [r0]
- str r4, [r0, 0x4]
- lsrs r1, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A1224
- .align 2, 0
-_080A11E4: .4byte 0x040000d4
-_080A11E8: .4byte 0x80000800
-_080A11EC: .4byte 0xfffff000
-_080A11F0: .4byte 0x0000026a
-_080A11F4: .4byte 0x0600ecc0
-_080A11F8:
- ldr r2, _080A12B0 @ =0x040000d4
- str r3, [r2]
- str r4, [r2, 0x4]
- ldr r0, _080A12B4 @ =0x80000800
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r3, r0
- adds r4, r0
- ldr r5, _080A12B8 @ =0xfffff000
- adds r1, r5
- cmp r1, r0
- bhi _080A11F8
- str r3, [r2]
- str r4, [r2, 0x4]
- lsrs r0, r1, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
-_080A1224:
- ldrb r4, [r6, 0x2]
- ldrh r7, [r6, 0x2]
- ldrh r0, [r6]
- mov r12, r0
- cmp r4, 0x9
- bhi _080A1272
- adds r3, r6, 0x4
- ldr r2, _080A12B0 @ =0x040000d4
- ldr r5, _080A12BC @ =0x80000001
-_080A1236:
- lsls r1, r4, 1
- ldr r6, _080A12C0 @ =0x0600e480
- adds r0, r1, r6
- str r3, [r2]
- str r0, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r6, 0x40
- adds r0, r1, r6
- str r3, [r2]
- str r0, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r6, _080A12C4 @ =0x0600ec80
- adds r0, r1, r6
- str r3, [r2]
- str r0, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080A12C8 @ =0x0600ecc0
- adds r1, r0
- str r3, [r2]
- str r1, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _080A1236
-_080A1272:
- mov r1, r12
- lsls r0, r1, 16
- cmp r0, 0
- beq _080A1286
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0
- ble _080A1286
- cmp r0, 0x9
- ble _080A12A4
-_080A1286:
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _080A129A
- ldr r0, _080A12CC @ =gOtherText_Status
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x12
- bl sub_80A1FF8
-_080A129A:
- bl sub_80A1D18
- mov r0, r8
- bl DestroyTask
-_080A12A4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A12B0: .4byte 0x040000d4
-_080A12B4: .4byte 0x80000800
-_080A12B8: .4byte 0xfffff000
-_080A12BC: .4byte 0x80000001
-_080A12C0: .4byte 0x0600e480
-_080A12C4: .4byte 0x0600ec80
-_080A12C8: .4byte 0x0600ecc0
-_080A12CC: .4byte gOtherText_Status
- thumb_func_end sub_80A1048
-
- thumb_func_start sub_80A12D0
-sub_80A12D0: @ 80A12D0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0x12
- movs r2, 0x5
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x1D
- bl sub_80A18E4
- ldr r0, _080A1310 @ =sub_80A1048
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080A1314 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0x8]
- cmp r4, 0
- bge _080A1318
- movs r0, 0xA
- b _080A131A
- .align 2, 0
-_080A1310: .4byte sub_80A1048
-_080A1314: .4byte gTasks
-_080A1318:
- movs r0, 0
-_080A131A:
- strh r0, [r1, 0xA]
- ldr r0, _080A1330 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0xC]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1330: .4byte gTasks
- thumb_func_end sub_80A12D0
-
- thumb_func_start sub_80A1334
-sub_80A1334: @ 80A1334
- 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 r10, r0
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- ldr r1, _080A13E4 @ =gTasks + 0x8
- adds r7, r0, r1
- ldrh r0, [r7]
- ldrh r1, [r7, 0x2]
- adds r0, r1
- strh r0, [r7, 0x2]
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0
- cmp r1, 0
- blt _080A136A
- movs r0, 0xA
- cmp r1, 0xA
- bgt _080A136A
- ldrh r0, [r7, 0x2]
-_080A136A:
- lsls r0, 16
- asrs r2, r0, 16
- mov r9, r0
- cmp r2, 0
- ble _080A13A6
- movs r0, 0xA
- subs r0, r2
- lsls r0, 1
- ldr r1, _080A13E8 @ =0x06005b40
- adds r4, r0, r1
- movs r5, 0
- adds r6, r2, 0
- ldr r0, _080A13EC @ =0x001fffff
- mov r8, r0
-_080A1386:
- adds r0, r5, 0
- adds r0, 0xD
- lsls r0, 6
- ldr r1, _080A13F0 @ =gUnknown_08E73E88
- adds r0, r1
- adds r1, r4, 0
- mov r2, r8
- ands r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A1386
-_080A13A6:
- mov r1, r9
- asrs r2, r1, 16
- cmp r2, 0x9
- bgt _080A13F4
- ldr r4, _080A13E8 @ =0x06005b40
- movs r5, 0
- mov r8, sp
- movs r0, 0xA
- subs r6, r0, r2
- ldr r0, _080A13EC @ =0x001fffff
- ands r6, r0
- movs r0, 0x80
- lsls r0, 17
- mov r9, r0
-_080A13C2:
- ldrh r0, [r7, 0x4]
- mov r1, r8
- strh r0, [r1]
- mov r0, sp
- adds r1, r4, 0
- mov r2, r9
- orrs r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A13C2
- b _080A1400
- .align 2, 0
-_080A13E4: .4byte gTasks + 0x8
-_080A13E8: .4byte 0x06005b40
-_080A13EC: .4byte 0x001fffff
-_080A13F0: .4byte gUnknown_08E73E88
-_080A13F4:
- movs r0, 0
- movs r1, 0x13
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A1400:
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _080A1410
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bge _080A144A
-_080A1410:
- ldr r4, _080A1480 @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0x2
- bne _080A1444
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A0958
- adds r0, r4, 0
- bl GetMonStatusAndPokerus
- lsls r0, 24
- cmp r0, 0
- beq _080A1444
- ldr r0, _080A1484 @ =gOtherText_Status
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x12
- bl sub_80A1FF8
-_080A1444:
- mov r0, r10
- bl DestroyTask
-_080A144A:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0x9
- ble _080A1470
- ldr r4, _080A1480 @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0x2
- bne _080A1460
- ldrb r0, [r7, 0x6]
- bl sub_80A00F4
-_080A1460:
- adds r0, r4, 0
- adds r0, 0x10
- adds r1, r7, 0x6
- bl sub_80A0428
- mov r0, r10
- bl DestroyTask
-_080A1470:
- 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
-_080A1480: .4byte 0x02018000
-_080A1484: .4byte gOtherText_Status
- thumb_func_end sub_80A1334
-
- thumb_func_start sub_80A1488
-sub_80A1488: @ 80A1488
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080A14DC @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A14A6
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A14A6:
- ldr r5, _080A14E0 @ =sub_80A1334
- adds r0, r5, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- bne _080A14C2
- adds r0, r5, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
-_080A14C2:
- ldr r1, _080A14E4 @ =gTasks
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r1
- lsls r0, r6, 24
- asrs r0, 24
- strh r0, [r3, 0x8]
- cmp r0, 0
- bge _080A14E8
- movs r0, 0xA
- b _080A14EA
- .align 2, 0
-_080A14DC: .4byte 0x02018000
-_080A14E0: .4byte sub_80A1334
-_080A14E4: .4byte gTasks
-_080A14E8:
- movs r0, 0
-_080A14EA:
- strh r0, [r3, 0xA]
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- strh r7, [r0, 0xE]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1488
-
- thumb_func_start sub_80A1500
-sub_80A1500: @ 80A1500
- 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 r10, r0
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- ldr r1, _080A15B0 @ =gTasks + 0x8
- adds r7, r0, r1
- ldrh r0, [r7]
- ldrh r1, [r7, 0x2]
- adds r0, r1
- strh r0, [r7, 0x2]
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0
- cmp r1, 0
- blt _080A1536
- movs r0, 0xA
- cmp r1, 0xA
- bgt _080A1536
- ldrh r0, [r7, 0x2]
-_080A1536:
- lsls r0, 16
- asrs r2, r0, 16
- mov r9, r0
- cmp r2, 0
- ble _080A1572
- movs r0, 0xA
- subs r0, r2
- lsls r0, 1
- ldr r1, _080A15B4 @ =0x06006b40
- adds r4, r0, r1
- movs r5, 0
- adds r6, r2, 0
- ldr r0, _080A15B8 @ =0x001fffff
- mov r8, r0
-_080A1552:
- adds r0, r5, 0
- adds r0, 0xD
- lsls r0, 6
- ldr r1, _080A15BC @ =gUnknown_08E74688
- adds r0, r1
- adds r1, r4, 0
- mov r2, r8
- ands r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A1552
-_080A1572:
- mov r1, r9
- asrs r2, r1, 16
- cmp r2, 0x9
- bgt _080A15C0
- ldr r4, _080A15B4 @ =0x06006b40
- movs r5, 0
- mov r8, sp
- movs r0, 0xA
- subs r6, r0, r2
- ldr r0, _080A15B8 @ =0x001fffff
- ands r6, r0
- movs r0, 0x80
- lsls r0, 17
- mov r9, r0
-_080A158E:
- ldrh r0, [r7, 0x4]
- mov r1, r8
- strh r0, [r1]
- mov r0, sp
- adds r1, r4, 0
- mov r2, r9
- orrs r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A158E
- b _080A15CC
- .align 2, 0
-_080A15B0: .4byte gTasks + 0x8
-_080A15B4: .4byte 0x06006b40
-_080A15B8: .4byte 0x001fffff
-_080A15BC: .4byte gUnknown_08E74688
-_080A15C0:
- movs r0, 0
- movs r1, 0x13
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A15CC:
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _080A15DC
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bge _080A1616
-_080A15DC:
- ldr r4, _080A164C @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0x3
- bne _080A1610
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A0958
- adds r0, r4, 0
- bl GetMonStatusAndPokerus
- lsls r0, 24
- cmp r0, 0
- beq _080A1610
- ldr r0, _080A1650 @ =gOtherText_Status
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x12
- bl sub_80A1FF8
-_080A1610:
- mov r0, r10
- bl DestroyTask
-_080A1616:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0x9
- ble _080A163C
- ldr r4, _080A164C @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0x3
- bne _080A162C
- ldrb r0, [r7, 0x6]
- bl sub_80A00F4
-_080A162C:
- adds r0, r4, 0
- adds r0, 0x10
- adds r1, r7, 0x6
- bl sub_80A0428
- mov r0, r10
- bl DestroyTask
-_080A163C:
- 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
-_080A164C: .4byte 0x02018000
-_080A1650: .4byte gOtherText_Status
- thumb_func_end sub_80A1500
-
- thumb_func_start sub_80A1654
-sub_80A1654: @ 80A1654
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080A16A8 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x3
- bne _080A1672
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A1672:
- ldr r5, _080A16AC @ =sub_80A1500
- adds r0, r5, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- bne _080A168E
- adds r0, r5, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
-_080A168E:
- ldr r1, _080A16B0 @ =gTasks
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r1
- lsls r0, r6, 24
- asrs r0, 24
- strh r0, [r3, 0x8]
- cmp r0, 0
- bge _080A16B4
- movs r0, 0xA
- b _080A16B6
- .align 2, 0
-_080A16A8: .4byte 0x02018000
-_080A16AC: .4byte sub_80A1500
-_080A16B0: .4byte gTasks
-_080A16B4:
- movs r0, 0
-_080A16B6:
- strh r0, [r3, 0xA]
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- strh r7, [r0, 0xE]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1654
-
- thumb_func_start sub_80A16CC
-sub_80A16CC: @ 80A16CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080A1724 @ =0x06006ad4
- mov r12, r0
- mov r1, r9
- cmp r1, 0
- bne _080A172C
- movs r5, 0
- ldr r7, _080A1728 @ =gUnknown_08E94510
- movs r0, 0x80
- lsls r0, 5
- adds r6, r0, 0
- movs r1, 0x40
- adds r1, r7
- mov r8, r1
-_080A16F4:
- lsls r2, r5, 1
- mov r0, r12
- adds r3, r2, r0
- adds r4, r2, r7
- ldrh r1, [r4]
- adds r0, r6, r1
- strh r0, [r3]
- adds r1, r3, 0
- adds r1, 0x40
- ldrh r4, [r4]
- adds r0, r6, r4
- strh r0, [r1]
- adds r3, 0x80
- add r2, r8
- ldrh r2, [r2]
- adds r0, r6, r2
- strh r0, [r3]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A16F4
- b _080A1768
- .align 2, 0
-_080A1724: .4byte 0x06006ad4
-_080A1728: .4byte gUnknown_08E94510
-_080A172C:
- movs r5, 0
- ldr r6, _080A17B0 @ =gUnknown_08E94550
- movs r7, 0x80
- lsls r7, 5
- adds r4, r7, 0
- movs r0, 0x40
- adds r0, r6
- mov r8, r0
-_080A173C:
- lsls r1, r5, 1
- mov r7, r12
- adds r2, r1, r7
- adds r0, r1, r6
- ldrh r0, [r0]
- adds r0, r4, r0
- strh r0, [r2]
- adds r3, r2, 0
- adds r3, 0x40
- add r1, r8
- ldrh r7, [r1]
- adds r0, r4, r7
- strh r0, [r3]
- adds r2, 0x80
- ldrh r1, [r1]
- adds r0, r4, r1
- strh r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A173C
-_080A1768:
- ldr r0, _080A17B4 @ =0x06005ad4
- mov r12, r0
- mov r1, r9
- cmp r1, 0
- bne _080A17BC
- movs r5, 0
- ldr r7, _080A17B8 @ =gUnknown_08E94510
- movs r0, 0xC0
- lsls r0, 6
- adds r6, r0, 0
- movs r1, 0x40
- adds r1, r7
- mov r8, r1
-_080A1782:
- lsls r2, r5, 1
- mov r0, r12
- adds r3, r2, r0
- adds r4, r2, r7
- ldrh r1, [r4]
- adds r0, r6, r1
- strh r0, [r3]
- adds r1, r3, 0
- adds r1, 0x40
- ldrh r4, [r4]
- adds r0, r6, r4
- strh r0, [r1]
- adds r3, 0x80
- add r2, r8
- ldrh r2, [r2]
- adds r0, r6, r2
- strh r0, [r3]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A1782
- b _080A17F8
- .align 2, 0
-_080A17B0: .4byte gUnknown_08E94550
-_080A17B4: .4byte 0x06005ad4
-_080A17B8: .4byte gUnknown_08E94510
-_080A17BC:
- movs r5, 0
- ldr r6, _080A1804 @ =gUnknown_08E94550
- movs r7, 0xC0
- lsls r7, 6
- adds r4, r7, 0
- movs r0, 0x40
- adds r0, r6
- mov r8, r0
-_080A17CC:
- lsls r1, r5, 1
- mov r7, r12
- adds r2, r1, r7
- adds r0, r1, r6
- ldrh r0, [r0]
- adds r0, r4, r0
- strh r0, [r2]
- adds r3, r2, 0
- adds r3, 0x40
- add r1, r8
- ldrh r7, [r1]
- adds r0, r4, r7
- strh r0, [r3]
- adds r2, 0x80
- ldrh r1, [r1]
- adds r0, r4, r1
- strh r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A17CC
-_080A17F8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1804: .4byte gUnknown_08E94550
- thumb_func_end sub_80A16CC
-
- thumb_func_start sub_80A1808
-sub_80A1808: @ 80A1808
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r1, 0x41
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080A1860 @ =gUnknown_02024E8C
- movs r1, 0x28
- movs r2, 0x40
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, r0, 4
- add r4, r8
- lsls r4, 2
- ldr r5, _080A1864 @ =gSprites
- adds r7, r4, r5
- adds r0, r7, 0
- bl FreeSpriteOamMatrix
- strh r6, [r7, 0x2E]
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _080A1868 @ =sub_80A1888
- str r0, [r4]
- adds r0, r6, 0
- bl IsPokeSpriteNotFlipped
- lsls r0, 24
- cmp r0, 0
- bne _080A186C
- adds r0, r7, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _080A187A
- .align 2, 0
-_080A1860: .4byte gUnknown_02024E8C
-_080A1864: .4byte gSprites
-_080A1868: .4byte sub_80A1888
-_080A186C:
- adds r2, r7, 0
- adds r2, 0x3F
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080A187A:
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1808
-
- thumb_func_start sub_80A1888
-sub_80A1888: @ 80A1888
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A18B8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A18B0
- ldr r0, _080A18BC @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
- ldr r0, _080A18C0 @ =0x02018010
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080A18B0
- ldrh r0, [r4, 0x2E]
- movs r1, 0
- bl PlayCry1
-_080A18B0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A18B8: .4byte gPaletteFade
-_080A18BC: .4byte SpriteCallbackDummy
-_080A18C0: .4byte 0x02018010
- thumb_func_end sub_80A1888
-
- thumb_func_start sub_80A18C4
-sub_80A18C4: @ 80A18C4
- push {lr}
- movs r1, 0
- ldr r3, _080A18E0 @ =0x0201a000
- movs r2, 0xFF
-_080A18CC:
- adds r0, r1, r3
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1D
- bls _080A18CC
- pop {r0}
- bx r0
- .align 2, 0
-_080A18E0: .4byte 0x0201a000
- thumb_func_end sub_80A18C4
-
- thumb_func_start sub_80A18E4
-sub_80A18E4: @ 80A18E4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A1910 @ =0x0201a000
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080A1908
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A1914 @ =gSprites
- adds r0, r1
- bl DestroySprite
- movs r0, 0xFF
- strb r0, [r4]
-_080A1908:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1910: .4byte 0x0201a000
-_080A1914: .4byte gSprites
- thumb_func_end sub_80A18E4
-
- thumb_func_start sub_80A1918
-sub_80A1918: @ 80A1918
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _080A1948 @ =gSprites
- ldr r2, _080A194C @ =0x0201a000
- adds r0, r2
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- adds r2, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .align 2, 0
-_080A1948: .4byte gSprites
-_080A194C: .4byte 0x0201a000
- thumb_func_end sub_80A1918
-
- thumb_func_start sub_80A1950
-sub_80A1950: @ 80A1950
- push {r4,r5,lr}
- movs r5, 0
-_080A1954:
- ldr r0, _080A1984 @ =0x0201a000
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080A196C
- ldr r0, _080A1988 @ =gSpriteTemplate_83C11C0
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl CreateSprite
- strb r0, [r4]
-_080A196C:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _080A1954
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1984: .4byte 0x0201a000
-_080A1988: .4byte gSpriteTemplate_83C11C0
- thumb_func_end sub_80A1950
-
- thumb_func_start sub_80A198C
-sub_80A198C: @ 80A198C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r10, r3
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r1, _080A1A24 @ =0x0201a000
- mov r8, r1
- add r8, r10
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A1A28 @ =gSprites
- mov r9, r1
- add r0, r9
- adds r1, r4, 0
- bl StartSpriteAnim
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldr r0, _080A1A2C @ =gUnknown_083C11D8
- adds r4, r0
- ldrb r2, [r4]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r5, 0x10
- strh r5, [r0, 0x20]
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r6, 0x8
- strh r6, [r0, 0x22]
- mov r0, r10
- movs r1, 0
- bl sub_80A1918
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1A24: .4byte 0x0201a000
-_080A1A28: .4byte gSprites
-_080A1A2C: .4byte gUnknown_083C11D8
- thumb_func_end sub_80A198C
-
- thumb_func_start sub_80A1A30
-sub_80A1A30: @ 80A1A30
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- mov r9, r0
- ldr r1, _080A1A98 @ =0x02018000
- ldrb r0, [r1, 0xB]
- cmp r0, 0x1
- bls _080A1B0A
- cmp r4, 0x9
- bne _080A1A52
- movs r3, 0x1
- mov r9, r3
-_080A1A52:
- movs r5, 0
- movs r0, 0x80
- lsls r0, 6
- adds r0, r1
- mov r8, r0
- ldr r6, _080A1A9C @ =gSprites
- mov r10, r5
-_080A1A60:
- lsls r1, r5, 20
- movs r3, 0xB0
- lsls r3, 15
- adds r1, r3
- asrs r1, 16
- ldr r0, _080A1AA0 @ =gSpriteTemplate_83C1280
- movs r2, 0x28
- mov r3, r9
- bl CreateSprite
- adds r1, r4, r5
- mov r3, r8
- adds r2, r1, r3
- strb r0, [r2]
- adds r7, r1, 0
- cmp r5, 0
- bne _080A1AA4
- adds r0, r4, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x4
- bl StartSpriteAnim
- b _080A1AD0
- .align 2, 0
-_080A1A98: .4byte 0x02018000
-_080A1A9C: .4byte gSprites
-_080A1AA0: .4byte gSpriteTemplate_83C1280
-_080A1AA4:
- cmp r5, 0x9
- bne _080A1AC0
- adds r0, r4, 0
- adds r0, 0x9
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- bl StartSpriteAnim
- b _080A1AD0
-_080A1AC0:
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x6
- bl StartSpriteAnim
-_080A1AD0:
- mov r0, r8
- adds r2, r7, r0
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080A1B18 @ =sub_80A1BC0
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r4, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r10
- strh r1, [r0, 0x30]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _080A1A60
-_080A1B0A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1B18: .4byte sub_80A1BC0
- thumb_func_end sub_80A1A30
-
- thumb_func_start sub_80A1B1C
-sub_80A1B1C: @ 80A1B1C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_080A1B24:
- adds r0, r5, r4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A18E4
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _080A1B24
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1B1C
-
- thumb_func_start sub_80A1B40
-sub_80A1B40: @ 80A1B40
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, r7, 1
- adds r1, r7
- lsls r1, 24
- ldr r0, _080A1BB4 @ =0x0201a009
- ldrb r2, [r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- ldr r2, _080A1BB8 @ =gSprites
- adds r0, r2
- lsrs r7, r1, 24
- movs r2, 0x80
- lsls r2, 19
- adds r1, r2
- lsrs r1, 24
- bl StartSpriteAnim
- movs r4, 0
- adds r0, r7, 0x6
- lsls r0, 24
- mov r8, r0
-_080A1B74:
- ldr r6, _080A1BBC @ =0x0201a00a
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080A1BB8 @ =gSprites
- adds r0, r5
- mov r2, r8
- lsrs r1, r2, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _080A1B74
- ldrb r1, [r6, 0x8]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r1, r7, 0x5
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1BB4: .4byte 0x0201a009
-_080A1BB8: .4byte gSprites
-_080A1BBC: .4byte 0x0201a00a
- thumb_func_end sub_80A1B40
-
- thumb_func_start sub_80A1BC0
-sub_80A1BC0: @ 80A1BC0
- push {lr}
- adds r2, r0, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _080A1BF8
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r2, 0x30]
- cmp r0, 0x18
- ble _080A1BEC
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- b _080A1C06
-_080A1BEC:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- b _080A1C04
-_080A1BF8:
- movs r0, 0
- strh r0, [r2, 0x30]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- subs r0, 0x5
-_080A1C04:
- ands r0, r1
-_080A1C06:
- strb r0, [r3]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x9
- bne _080A1C1C
- ldr r0, _080A1C18 @ =0x02018000
- adds r0, 0x79
- b _080A1C20
- .align 2, 0
-_080A1C18: .4byte 0x02018000
-_080A1C1C:
- ldr r0, _080A1C2C @ =0x02018000
- adds r0, 0x7A
-_080A1C20:
- ldrb r0, [r0]
- lsls r0, 4
- strh r0, [r2, 0x26]
- pop {r0}
- bx r0
- .align 2, 0
-_080A1C2C: .4byte 0x02018000
- thumb_func_end sub_80A1BC0
-
- thumb_func_start sub_80A1C30
-sub_80A1C30: @ 80A1C30
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 25
- lsrs r3, r0, 24
- adds r4, r3, 0
- adds r0, r3, 0
- adds r0, 0xA
- cmp r3, r0
- bge _080A1C82
- ldr r5, _080A1C88 @ =gSprites
- movs r7, 0x5
- negs r7, r7
- ldr r6, _080A1C8C @ =0x0201a009
-_080A1C50:
- adds r2, r3, r6
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, 0
- adds r0, 0xA
- cmp r3, r0
- blt _080A1C50
-_080A1C82:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1C88: .4byte gSprites
-_080A1C8C: .4byte 0x0201a009
- thumb_func_end sub_80A1C30
-
- thumb_func_start pokemon_ailments_get_primary
-pokemon_ailments_get_primary: @ 80A1C90
- push {lr}
- adds r1, r0, 0
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- beq _080A1CA0
- movs r0, 0x1
- b _080A1CD2
-_080A1CA0:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080A1CAC
- movs r0, 0x2
- b _080A1CD2
-_080A1CAC:
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080A1CB8
- movs r0, 0x3
- b _080A1CD2
-_080A1CB8:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A1CC4
- movs r0, 0x4
- b _080A1CD2
-_080A1CC4:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080A1CD0
- movs r0, 0
- b _080A1CD2
-_080A1CD0:
- movs r0, 0x5
-_080A1CD2:
- pop {r1}
- bx r1
- thumb_func_end pokemon_ailments_get_primary
-
- thumb_func_start GetMonStatusAndPokerus
-GetMonStatusAndPokerus: @ 80A1CD8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080A1CEA
- movs r0, 0x7
- b _080A1D12
-_080A1CEA:
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A1D12
- adds r0, r4, 0
- movs r1, 0
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- bne _080A1D10
- movs r0, 0
- b _080A1D12
-_080A1D10:
- movs r0, 0x6
-_080A1D12:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetMonStatusAndPokerus
-
- thumb_func_start sub_80A1D18
-sub_80A1D18: @ 80A1D18
- push {r4,r5,lr}
- sub sp, 0x64
- mov r0, sp
- bl sub_809F678
- mov r0, sp
- bl GetMonStatusAndPokerus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080A1D58
- subs r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A1D50 @ =0x0201a01d
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080A1D60
- ldr r0, _080A1D54 @ =gSpriteTemplate_83C1304
- movs r1, 0x40
- movs r2, 0x98
- movs r3, 0
- bl CreateSprite
- strb r0, [r4]
- b _080A1D60
- .align 2, 0
-_080A1D50: .4byte 0x0201a01d
-_080A1D54: .4byte gSpriteTemplate_83C1304
-_080A1D58:
- movs r0, 0x1D
- bl sub_80A18E4
- b _080A1D74
-_080A1D60:
- ldr r0, _080A1D7C @ =0x0201a01d
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A1D80 @ =gSprites
- adds r0, r1
- adds r1, r5, 0
- bl StartSpriteAnim
-_080A1D74:
- add sp, 0x64
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1D7C: .4byte 0x0201a01d
-_080A1D80: .4byte gSprites
- thumb_func_end sub_80A1D18
-
- thumb_func_start sub_80A1D84
-sub_80A1D84: @ 80A1D84
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r1, _080A1DC0 @ =0x00007533
- ldr r2, _080A1DC4 @ =gSummaryScreenMonMarkingsPalette
- adds r0, r1, 0
- bl sub_80F7920
- adds r4, r0, 0
- ldr r6, _080A1DC8 @ =gUnknown_020384F4
- str r4, [r6]
- cmp r4, 0
- beq _080A1DBA
- adds r0, r5, 0
- movs r1, 0x8
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r1, [r6]
- movs r0, 0x3C
- strh r0, [r1, 0x20]
- movs r0, 0x1A
- strh r0, [r1, 0x22]
-_080A1DBA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1DC0: .4byte 0x00007533
-_080A1DC4: .4byte gSummaryScreenMonMarkingsPalette
-_080A1DC8: .4byte gUnknown_020384F4
- thumb_func_end sub_80A1D84
-
- thumb_func_start sub_80A1DCC
-sub_80A1DCC: @ 80A1DCC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A1DE4 @ =gUnknown_020384F4
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0
- bl sub_80A1D84
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1DE4: .4byte gUnknown_020384F4
- thumb_func_end sub_80A1DCC
-
- thumb_func_start sub_80A1DE8
-sub_80A1DE8: @ 80A1DE8
- push {r4,lr}
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80478DC
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A1E48 @ =gBallSpriteTemplates
- adds r0, r1
- movs r1, 0x6
- movs r2, 0x88
- movs r3, 0
- bl CreateSprite
- ldr r2, _080A1E4C @ =0x02018000
- strb r0, [r2, 0xD]
- ldr r3, _080A1E50 @ =gSprites
- ldrb r1, [r2, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080A1E54 @ =SpriteCallbackDummy
- str r1, [r0]
- ldrb r1, [r2, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1E48: .4byte gBallSpriteTemplates
-_080A1E4C: .4byte 0x02018000
-_080A1E50: .4byte gSprites
-_080A1E54: .4byte SpriteCallbackDummy
- thumb_func_end sub_80A1DE8
-
- thumb_func_start sub_80A1E58
-sub_80A1E58: @ 80A1E58
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0xFF
- beq _080A1E92
- ldr r3, _080A1E6C @ =gUnknown_083C15BC
- ldrb r0, [r3]
- adds r4, r2, 0x5
- b _080A1E74
- .align 2, 0
-_080A1E6C: .4byte gUnknown_083C15BC
-_080A1E70:
- adds r3, 0x4
- ldrb r0, [r3]
-_080A1E74:
- cmp r0, 0xFF
- beq _080A1E7C
- cmp r0, r1
- bne _080A1E70
-_080A1E7C:
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x4
- strb r0, [r2, 0x1]
- ldrb r0, [r3, 0x1]
- strb r0, [r2, 0x2]
- ldrb r0, [r3, 0x2]
- strb r0, [r2, 0x3]
- ldrb r0, [r3, 0x3]
- strb r0, [r2, 0x4]
- adds r2, r4, 0
-_080A1E92:
- adds r0, r2, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1E58
-
- thumb_func_start sub_80A1E9C
-sub_80A1E9C: @ 80A1E9C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- lsls r4, r2, 24
- lsrs r4, 24
- mov r1, sp
- adds r1, 0x1
- mov r2, sp
- adds r2, 0x2
- mov r0, sp
- bl sub_8072CD4
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80A1E58
- adds r6, r0, 0
- adds r1, r5, 0
- bl StringCopy
- adds r6, r0, 0
- cmp r4, 0xFF
- beq _080A1EEC
- movs r0, 0xFC
- strb r0, [r6]
- movs r0, 0x4
- strb r0, [r6, 0x1]
- mov r0, sp
- ldrb r0, [r0]
- strb r0, [r6, 0x2]
- mov r0, sp
- ldrb r0, [r0, 0x1]
- strb r0, [r6, 0x3]
- mov r0, sp
- ldrb r0, [r0, 0x2]
- strb r0, [r6, 0x4]
- movs r0, 0xFF
- strb r0, [r6, 0x5]
- adds r6, 0x5
-_080A1EEC:
- adds r0, r6, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1E9C
-
- thumb_func_start sub_80A1EF8
-sub_80A1EF8: @ 80A1EF8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080A1F44 @ =gStringVar4
- mov r8, r0
- mov r1, r9
- adds r2, r4, 0
- str r3, [sp]
- bl sub_80A1E9C
- ldr r3, [sp]
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint_PixelCoords
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1F44: .4byte gStringVar4
- thumb_func_end sub_80A1EF8
-
- thumb_func_start sub_80A1F48
-sub_80A1F48: @ 80A1F48
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _080A1F94 @ =gStringVar4
- mov r8, r0
- mov r1, r9
- adds r2, r4, 0
- str r3, [sp]
- bl sub_80A1E9C
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- ldr r3, [sp]
- bl sub_8072BD8
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1F94: .4byte gStringVar4
- thumb_func_end sub_80A1F48
-
- thumb_func_start sub_80A1F98
-sub_80A1F98: @ 80A1F98
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- mov r8, r1
- adds r4, r2, 0
- adds r2, r3, 0
- ldr r5, [sp, 0x24]
- ldr r6, [sp, 0x28]
- ldr r7, [sp, 0x2C]
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080A1FF4 @ =gStringVar1
- mov r9, r0
- mov r1, r10
- adds r3, r4, 0
- bl ConvertIntToDecimalStringN
- str r7, [sp]
- mov r0, r9
- mov r1, r8
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_80A1EF8
- 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
-_080A1FF4: .4byte gStringVar1
- thumb_func_end sub_80A1F98
-
- thumb_func_start sub_80A1FF8
-sub_80A1FF8: @ 80A1FF8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _080A2038 @ =gStringVar4
- mov r8, r0
- mov r1, r9
- adds r2, r4, 0
- bl sub_80A1E9C
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2038: .4byte gStringVar4
- thumb_func_end sub_80A1FF8
-
- thumb_func_start PokemonSummaryScreen_CopyPokemonLevel
-PokemonSummaryScreen_CopyPokemonLevel: @ 80A203C
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x34
- strb r0, [r4]
- adds r4, 0x1
- cmp r1, 0
- bne _080A2052
- movs r1, 0x5
-_080A2052:
- mov r0, sp
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0xE
- bl sub_80A1E9C
- adds r4, r0, 0
- ldr r1, _080A2074 @ =gOtherText_Comma
- bl StringCopy
- adds r4, r0, 0
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A2074: .4byte gOtherText_Comma
- thumb_func_end PokemonSummaryScreen_CopyPokemonLevel
-
- thumb_func_start sub_80A2078
-sub_80A2078: @ 80A2078
- push {lr}
- ldr r3, _080A209C @ =gUnknown_03005CF0
- ldr r2, _080A20A0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, [r1]
- str r2, [r3]
- ldr r2, _080A20A4 @ =sub_80A20A8
- str r2, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_080A209C: .4byte gUnknown_03005CF0
-_080A20A0: .4byte gTasks
-_080A20A4: .4byte sub_80A20A8
- thumb_func_end sub_80A2078
-
- thumb_func_start sub_80A20A8
-sub_80A20A8: @ 80A20A8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8055870
- cmp r0, 0x1
- beq _080A20C6
- ldr r1, _080A20CC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A20D0 @ =gUnknown_03005CF0
- ldr r1, [r1]
- str r1, [r0]
-_080A20C6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A20CC: .4byte gTasks
-_080A20D0: .4byte gUnknown_03005CF0
- thumb_func_end sub_80A20A8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokenav.s b/asm/pokenav.s
index ce72a83e0..066d16d5d 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -1,9274 +1,10 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
- thumb_func_start sub_80EBA5C
-sub_80EBA5C: @ 80EBA5C
- push {lr}
- ldr r0, _080EBA74 @ =gMain
- ldr r2, _080EBA78 @ =0x0000043c
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xE
- bhi _080EBABC
- lsls r0, 2
- ldr r1, _080EBA7C @ =_080EBA80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EBA74: .4byte gMain
-_080EBA78: .4byte 0x0000043c
-_080EBA7C: .4byte _080EBA80
- .align 2, 0
-_080EBA80:
- .4byte _080EBAC0
- .4byte _080EBB08
- .4byte _080EBB10
- .4byte _080EBB16
- .4byte _080EBB1C
- .4byte _080EBB22
- .4byte _080EBB28
- .4byte _080EBB2E
- .4byte _080EBB3E
- .4byte _080EBB4C
- .4byte _080EBB5C
- .4byte _080EBB6C
- .4byte _080EBB7C
- .4byte _080EBB90
- .4byte _080EBBA0
-_080EBABC:
- movs r0, 0
- strb r0, [r1]
-_080EBAC0:
- bl is_c1_link_related_active
- ldr r3, _080EBAF0 @ =0x02000000
- ldr r2, _080EBAF4 @ =0x00006dac
- adds r1, r3, r2
- strb r0, [r1]
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080EBBC0
- ldr r1, _080EBAF8 @ =0x00006dab
- adds r0, r3, r1
- strb r2, [r0]
- ldr r1, _080EBAFC @ =gMain
- ldr r2, _080EBB00 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _080EBB04 @ =sub_80EBBE8
- bl SetMainCallback2
- b _080EBBC0
- .align 2, 0
-_080EBAF0: .4byte 0x02000000
-_080EBAF4: .4byte 0x00006dac
-_080EBAF8: .4byte 0x00006dab
-_080EBAFC: .4byte gMain
-_080EBB00: .4byte 0x0000043c
-_080EBB04: .4byte sub_80EBBE8
-_080EBB08:
- movs r0, 0
- bl SetVBlankCallback
- b _080EBBC0
-_080EBB10:
- bl ResetPaletteFade
- b _080EBBC0
-_080EBB16:
- bl ResetSpriteData
- b _080EBBC0
-_080EBB1C:
- bl FreeAllSpritePalettes
- b _080EBBC0
-_080EBB22:
- bl ResetTasks
- b _080EBBC0
-_080EBB28:
- bl remove_some_task
- b _080EBBC0
-_080EBB2E:
- bl sub_80F1A90
- ldr r1, _080EBB44 @ =gMain
- ldr r0, _080EBB48 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EBB3E:
- bl sub_80F1AC4
- b _080EBB80
- .align 2, 0
-_080EBB44: .4byte gMain
-_080EBB48: .4byte 0x0000043c
-_080EBB4C:
- bl sub_80F2688
- ldr r1, _080EBB64 @ =gMain
- ldr r2, _080EBB68 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EBB5C:
- bl sub_80F26BC
- b _080EBB80
- .align 2, 0
-_080EBB64: .4byte gMain
-_080EBB68: .4byte 0x0000043c
-_080EBB6C:
- bl sub_80F36F0
- ldr r1, _080EBB88 @ =gMain
- ldr r0, _080EBB8C @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EBB7C:
- bl sub_80F3724
-_080EBB80:
- lsls r0, 24
- cmp r0, 0
- bne _080EBBCC
- b _080EBBC0
- .align 2, 0
-_080EBB88: .4byte gMain
-_080EBB8C: .4byte 0x0000043c
-_080EBB90:
- bl sub_80EBC10
- ldr r0, _080EBB9C @ =sub_80EBDD8
- bl sub_80EBDBC
- b _080EBBC0
- .align 2, 0
-_080EBB9C: .4byte sub_80EBDD8
-_080EBBA0:
- ldr r0, _080EBBD0 @ =0x02000000
- ldr r1, _080EBBD4 @ =0x00006dab
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- movs r0, 0x6E
- bl PlaySE
- ldr r0, _080EBBD8 @ =sub_80EBD90
- bl SetMainCallback2
- ldr r0, _080EBBDC @ =sub_80EBD18
- bl SetVBlankCallback
- bl sub_80F1A74
-_080EBBC0:
- ldr r1, _080EBBE0 @ =gMain
- ldr r2, _080EBBE4 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EBBCC:
- pop {r0}
- bx r0
- .align 2, 0
-_080EBBD0: .4byte 0x02000000
-_080EBBD4: .4byte 0x00006dab
-_080EBBD8: .4byte sub_80EBD90
-_080EBBDC: .4byte sub_80EBD18
-_080EBBE0: .4byte gMain
-_080EBBE4: .4byte 0x0000043c
- thumb_func_end sub_80EBA5C
-
- thumb_func_start sub_80EBBE8
-sub_80EBBE8: @ 80EBBE8
- push {r4,lr}
- ldr r0, _080EBC08 @ =0x02000000
- ldr r2, _080EBC0C @ =0x00006dab
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _080EBC02
- adds r4, r1, 0
-_080EBBF8:
- bl sub_80EBA5C
- ldrb r0, [r4]
- cmp r0, 0
- beq _080EBBF8
-_080EBC02:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EBC08: .4byte 0x02000000
-_080EBC0C: .4byte 0x00006dab
- thumb_func_end sub_80EBBE8
-
- thumb_func_start sub_80EBC10
-sub_80EBC10: @ 80EBC10
- push {r4-r7,lr}
- ldr r1, _080EBC7C @ =gKeyRepeatStartDelay
- movs r0, 0x14
- strh r0, [r1]
- bl CalculatePlayerPartyCount
- ldr r2, _080EBC80 @ =0x02000000
- ldr r1, _080EBC84 @ =0x00008828
- adds r3, r2, r1
- movs r1, 0
- strb r0, [r3]
- ldr r3, _080EBC88 @ =0x00006ddc
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _080EBC8C @ =0x00009344
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _080EBC90 @ =0x00008768
- adds r0, r2, r3
- str r1, [r0]
- ldr r3, _080EBC94 @ =0x0000ced0
- adds r0, r2, r3
- str r1, [r0]
- movs r3, 0
- ldr r0, _080EBC98 @ =0x00008fff
- adds r7, r2, r0
- mov r12, r2
- movs r6, 0
- ldr r5, _080EBC9C @ =0x00009040
- movs r4, 0x9B
-_080EBC4C:
- adds r0, r3, r7
- strb r6, [r0]
- lsls r1, r3, 2
- adds r1, r2
- adds r0, r1, r5
- strh r4, [r0]
- ldr r0, _080EBCA0 @ =0x00009042
- adds r1, r0
- movs r0, 0x5B
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bls _080EBC4C
- ldr r1, _080EBCA4 @ =0x00006e95
- add r1, r12
- movs r0, 0
- strb r0, [r1]
- bl sub_80EBCA8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EBC7C: .4byte gKeyRepeatStartDelay
-_080EBC80: .4byte 0x02000000
-_080EBC84: .4byte 0x00008828
-_080EBC88: .4byte 0x00006ddc
-_080EBC8C: .4byte 0x00009344
-_080EBC90: .4byte 0x00008768
-_080EBC94: .4byte 0x0000ced0
-_080EBC98: .4byte 0x00008fff
-_080EBC9C: .4byte 0x00009040
-_080EBCA0: .4byte 0x00009042
-_080EBCA4: .4byte 0x00006e95
- thumb_func_end sub_80EBC10
-
- thumb_func_start sub_80EBCA8
-sub_80EBCA8: @ 80EBCA8
- push {r4,lr}
- ldr r4, _080EBCDC @ =0x02000000
- ldr r0, _080EBCE0 @ =0x00006db2
- adds r1, r4, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080EBCE4 @ =0x00006db3
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, _080EBCE8 @ =0x00006db4
- adds r1, r4, r0
- movs r0, 0x3
- strb r0, [r1]
- ldr r0, _080EBCEC @ =0x0000083b
- bl FlagGet
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080EBCF4
- ldr r0, _080EBCF0 @ =0x00006db5
- adds r1, r4, r0
- movs r0, 0x4
- strb r0, [r1]
- b _080EBCFA
- .align 2, 0
-_080EBCDC: .4byte 0x02000000
-_080EBCE0: .4byte 0x00006db2
-_080EBCE4: .4byte 0x00006db3
-_080EBCE8: .4byte 0x00006db4
-_080EBCEC: .4byte 0x0000083b
-_080EBCF0: .4byte 0x00006db5
-_080EBCF4:
- ldr r1, _080EBD0C @ =0x00006db5
- adds r0, r4, r1
- strb r2, [r0]
-_080EBCFA:
- ldr r0, _080EBD10 @ =0x02000000
- ldr r1, _080EBD14 @ =0x00006db6
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EBD0C: .4byte 0x00006db5
-_080EBD10: .4byte 0x02000000
-_080EBD14: .4byte 0x00006db6
- thumb_func_end sub_80EBCA8
-
- thumb_func_start sub_80EBD18
-sub_80EBD18: @ 80EBD18
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_80F1FF0
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD18
-
- thumb_func_start sub_80EBD30
-sub_80EBD30: @ 80EBD30
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl UpdateRegionMapVideoRegs
- bl sub_80EFE7C
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD30
-
- thumb_func_start sub_80EBD4C
-sub_80EBD4C: @ 80EBD4C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_80F5BF0
- bl sub_8089668
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD4C
-
- thumb_func_start sub_80EBD68
-sub_80EBD68: @ 80EBD68
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_80F6F64
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD68
-
- thumb_func_start sub_80EBD80
-sub_80EBD80: @ 80EBD80
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD80
-
- thumb_func_start sub_80EBD90
-sub_80EBD90: @ 80EBD90
- push {lr}
- ldr r0, _080EBDB8 @ =0x02000000
- movs r1, 0xC0
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- bl sub_80F19FC
- pop {r0}
- bx r0
- .align 2, 0
-_080EBDB8: .4byte 0x02000000
- thumb_func_end sub_80EBD90
-
- thumb_func_start sub_80EBDBC
-sub_80EBDBC: @ 80EBDBC
- ldr r2, _080EBDD4 @ =0x02000000
- movs r3, 0xC0
- lsls r3, 2
- adds r1, r2, r3
- str r0, [r1]
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r2, r0
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080EBDD4: .4byte 0x02000000
- thumb_func_end sub_80EBDBC
-
- thumb_func_start sub_80EBDD8
-sub_80EBDD8: @ 80EBDD8
- push {lr}
- sub sp, 0x4
- ldr r1, _080EBDF8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x11
- bls _080EBDEE
- b _080EC000
-_080EBDEE:
- lsls r0, 2
- ldr r1, _080EBDFC @ =_080EBE00
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EBDF8: .4byte 0x02000000
-_080EBDFC: .4byte _080EBE00
- .align 2, 0
-_080EBE00:
- .4byte _080EBE48
- .4byte _080EBE80
- .4byte _080EBE92
- .4byte _080EBEAC
- .4byte _080EBEC0
- .4byte _080EBED2
- .4byte _080EBEF0
- .4byte _080EBF04
- .4byte _080EBF18
- .4byte _080EBF2C
- .4byte _080EBF48
- .4byte _080EBF54
- .4byte _080EBF74
- .4byte _080EBF88
- .4byte _080EBFA0
- .4byte _080EBFB4
- .4byte _080EBFD0
- .4byte _080EBFE8
-_080EBE48:
- movs r0, 0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080EBE74 @ =0x02000000
- ldr r3, _080EBE78 @ =0x00006ddc
- adds r0, r1, r3
- ldrb r2, [r0]
- subs r3, 0x2F
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080EBE7C @ =0x00006dae
- adds r2, r1, r0
- movs r0, 0x5
- strb r0, [r2]
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBE74: .4byte 0x02000000
-_080EBE78: .4byte 0x00006ddc
-_080EBE7C: .4byte 0x00006dae
-_080EBE80:
- bl sub_80F3FF0
- ldr r1, _080EBEA8 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBE92:
- bl sub_80F4024
- lsls r0, 24
- cmp r0, 0
- beq _080EBE9E
- b _080EC000
-_080EBE9E:
- ldr r1, _080EBEA8 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EBFDC
- .align 2, 0
-_080EBEA8: .4byte 0x02000000
-_080EBEAC:
- bl sub_80F2598
- ldr r1, _080EBEBC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBEBC: .4byte 0x02000000
-_080EBEC0:
- bl sub_80EEE20
- ldr r1, _080EBEEC @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBED2:
- bl sub_80EEE54
- lsls r0, 24
- cmp r0, 0
- beq _080EBEDE
- b _080EC000
-_080EBEDE:
- bl sub_80EEE08
- ldr r1, _080EBEEC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EBFDC
- .align 2, 0
-_080EBEEC: .4byte 0x02000000
-_080EBEF0:
- movs r0, 0
- bl sub_80EF248
- ldr r1, _080EBF14 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBF04:
- movs r0, 0
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- beq _080EBF12
- b _080EC000
-_080EBF12:
- b _080EBFD4
- .align 2, 0
-_080EBF14: .4byte 0x02000000
-_080EBF18:
- movs r0, 0
- bl sub_80F1B8C
- ldr r1, _080EBF44 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBF2C:
- movs r0, 0
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- bne _080EC000
- ldr r1, _080EBF44 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBF44: .4byte 0x02000000
-_080EBF48:
- ldr r0, _080EBF50 @ =sub_80EBD18
- bl SetVBlankCallback
- b _080EBFD4
- .align 2, 0
-_080EBF50: .4byte sub_80EBD18
-_080EBF54:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _080EBF70 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EBFDC
- .align 2, 0
-_080EBF70: .4byte 0x02000000
-_080EBF74:
- movs r0, 0
- bl sub_80EED2C
- ldr r1, _080EBF84 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBF84: .4byte 0x02000000
-_080EBF88:
- ldr r0, _080EBF9C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r2, r3
- b _080EBFDC
- .align 2, 0
-_080EBF9C: .4byte gPaletteFade
-_080EBFA0:
- movs r0, 0
- bl sub_80F2C80
- ldr r1, _080EBFCC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBFB4:
- movs r0, 0
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EC000
- ldr r1, _080EBFCC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBFCC: .4byte 0x02000000
-_080EBFD0:
- bl sub_80F1DF0
-_080EBFD4:
- ldr r1, _080EBFE4 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
-_080EBFDC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC000
- .align 2, 0
-_080EBFE4: .4byte 0x02000000
-_080EBFE8:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080EC000
- movs r0, 0
- movs r1, 0
- bl sub_80EF428
- ldr r0, _080EC008 @ =sub_80EC268
- bl sub_80EBDBC
-_080EC000:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080EC008: .4byte sub_80EC268
- thumb_func_end sub_80EBDD8
-
- thumb_func_start sub_80EC00C
-sub_80EC00C: @ 80EC00C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080EC02C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xD
- bls _080EC022
- b _080EC1FA
-_080EC022:
- lsls r0, 2
- ldr r1, _080EC030 @ =_080EC034
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EC02C: .4byte 0x02000000
-_080EC030: .4byte _080EC034
- .align 2, 0
-_080EC034:
- .4byte _080EC06C
- .4byte _080EC0C0
- .4byte _080EC0D4
- .4byte _080EC0F0
- .4byte _080EC104
- .4byte _080EC120
- .4byte _080EC12A
- .4byte _080EC154
- .4byte _080EC168
- .4byte _080EC180
- .4byte _080EC194
- .4byte _080EC1A8
- .4byte _080EC1C4
- .4byte _080EC1DC
-_080EC06C:
- bl sub_80EEF78
- lsls r0, 24
- cmp r0, 0
- beq _080EC078
- b _080EC1FA
-_080EC078:
- ldr r0, _080EC0AC @ =sub_80EBD80
- bl SetVBlankCallback
- bl sub_80EED1C
- ldr r4, _080EC0B0 @ =0x02000000
- ldr r1, _080EC0B4 @ =0x00006ddc
- adds r0, r4, r1
- ldrb r1, [r0]
- ldr r2, _080EC0B8 @ =0x00006dad
- adds r0, r4, r2
- strb r1, [r0]
- ldr r0, _080EC0BC @ =0x00006dae
- adds r1, r4, r0
- movs r0, 0x5
- strb r0, [r1]
- bl sub_80EEE08
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r1
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EC1FA
- .align 2, 0
-_080EC0AC: .4byte sub_80EBD80
-_080EC0B0: .4byte 0x02000000
-_080EC0B4: .4byte 0x00006ddc
-_080EC0B8: .4byte 0x00006dad
-_080EC0BC: .4byte 0x00006dae
-_080EC0C0:
- movs r0, 0
- bl sub_80EF248
- ldr r1, _080EC0EC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC0D4:
- movs r0, 0
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- beq _080EC0E2
- b _080EC1FA
-_080EC0E2:
- ldr r1, _080EC0EC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC0EC: .4byte 0x02000000
-_080EC0F0:
- movs r0, 0
- bl sub_80F1B8C
- ldr r1, _080EC11C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC104:
- movs r0, 0
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- beq _080EC112
- b _080EC1FA
-_080EC112:
- ldr r1, _080EC11C @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC11C: .4byte 0x02000000
-_080EC120:
- bl sub_8055870
- cmp r0, 0
- bne _080EC1FA
- b _080EC1C8
-_080EC12A:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080EC150 @ =sub_80EBD18
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC1D0
- .align 2, 0
-_080EC150: .4byte sub_80EBD18
-_080EC154:
- movs r0, 0
- bl sub_80EED2C
- ldr r1, _080EC164 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC164: .4byte 0x02000000
-_080EC168:
- ldr r0, _080EC17C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC1FA
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC1D0
- .align 2, 0
-_080EC17C: .4byte gPaletteFade
-_080EC180:
- bl sub_80F2598
- ldr r1, _080EC190 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC190: .4byte 0x02000000
-_080EC194:
- movs r0, 0
- bl sub_80F2C80
- ldr r1, _080EC1C0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC1A8:
- movs r0, 0
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EC1FA
- ldr r1, _080EC1C0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC1C0: .4byte 0x02000000
-_080EC1C4:
- bl sub_80F1DF0
-_080EC1C8:
- ldr r1, _080EC1D8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
-_080EC1D0:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC1FA
- .align 2, 0
-_080EC1D8: .4byte 0x02000000
-_080EC1DC:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080EC1FA
- ldr r0, _080EC204 @ =0x02000000
- ldr r1, _080EC208 @ =0x00006dad
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0
- bl sub_80EF428
- ldr r0, _080EC20C @ =sub_80EC268
- bl sub_80EBDBC
-_080EC1FA:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC204: .4byte 0x02000000
-_080EC208: .4byte 0x00006dad
-_080EC20C: .4byte sub_80EC268
- thumb_func_end sub_80EC00C
-
- thumb_func_start sub_80EC210
-sub_80EC210: @ 80EC210
- push {r4,r5,lr}
- ldr r5, _080EC228 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EC22C
- cmp r0, 0x1
- beq _080EC24C
- b _080EC25C
- .align 2, 0
-_080EC228: .4byte 0x02000000
-_080EC22C:
- movs r0, 0x1
- bl sub_80F2D04
- ldr r1, _080EC248 @ =0x00006ddc
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0
- bl sub_80EE9C0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EC25C
- .align 2, 0
-_080EC248: .4byte 0x00006ddc
-_080EC24C:
- bl sub_80EEA0C
- lsls r0, 24
- cmp r0, 0
- bne _080EC25C
- ldr r0, _080EC264 @ =sub_80EC268
- bl sub_80EBDBC
-_080EC25C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC264: .4byte sub_80EC268
- thumb_func_end sub_80EC210
-
- thumb_func_start sub_80EC268
-sub_80EC268: @ 80EC268
- push {r4-r6,lr}
- ldr r4, _080EC290 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r6, r4, r0
- ldrh r0, [r6]
- cmp r0, 0x3
- bne _080EC27A
- b _080EC3BE
-_080EC27A:
- cmp r0, 0x3
- bgt _080EC294
- cmp r0, 0x1
- bne _080EC284
- b _080EC3A2
-_080EC284:
- cmp r0, 0x1
- ble _080EC28A
- b _080EC3B4
-_080EC28A:
- cmp r0, 0
- beq _080EC2AE
- b _080EC492
- .align 2, 0
-_080EC290: .4byte 0x02000000
-_080EC294:
- cmp r0, 0x6
- bne _080EC29A
- b _080EC414
-_080EC29A:
- cmp r0, 0x6
- bgt _080EC2A6
- cmp r0, 0x4
- bne _080EC2A4
- b _080EC3DC
-_080EC2A4:
- b _080EC492
-_080EC2A6:
- cmp r0, 0xFF
- bne _080EC2AC
- b _080EC44C
-_080EC2AC:
- b _080EC492
-_080EC2AE:
- bl sub_80EEC10
- lsls r0, 24
- cmp r0, 0
- beq _080EC2D4
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080EC2D0 @ =0x00006dad
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0
- bl sub_80EF428
- bl sub_80EED9C
- b _080EC492
- .align 2, 0
-_080EC2D0: .4byte 0x00006dad
-_080EC2D4:
- ldr r0, _080EC310 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080EC394
- ldr r2, _080EC314 @ =0x00006dad
- adds r0, r4, r2
- ldrb r1, [r0]
- adds r2, 0x2F
- adds r0, r4, r2
- strb r1, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r2, 0x2A
- adds r1, r4, r2
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, 0x4
- bls _080EC304
- b _080EC492
-_080EC304:
- lsls r0, 2
- ldr r1, _080EC318 @ =_080EC31C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EC310: .4byte gMain
-_080EC314: .4byte 0x00006dad
-_080EC318: .4byte _080EC31C
- .align 2, 0
-_080EC31C:
- .4byte _080EC330
- .4byte _080EC344
- .4byte _080EC380
- .4byte _080EC36C
- .4byte _080EC358
-_080EC330:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC340 @ =sub_80EC4A0
- bl sub_80EBDBC
- b _080EC492
- .align 2, 0
-_080EC340: .4byte sub_80EC4A0
-_080EC344:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC354 @ =sub_80EC81C
- bl sub_80EBDBC
- b _080EC492
- .align 2, 0
-_080EC354: .4byte sub_80EC81C
-_080EC358:
- ldr r0, _080EC368 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0]
- b _080EC492
- .align 2, 0
-_080EC368: .4byte 0x02000000
-_080EC36C:
- ldr r0, _080EC37C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0]
- b _080EC492
- .align 2, 0
-_080EC37C: .4byte 0x02000000
-_080EC380:
- ldr r0, _080EC390 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x6
- strh r1, [r0]
- b _080EC492
- .align 2, 0
-_080EC390: .4byte 0x02000000
-_080EC394:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080EC39E
- b _080EC492
-_080EC39E:
- strh r2, [r6]
- b _080EC492
-_080EC3A2:
- bl sub_80F208C
- ldr r0, _080EC3B0 @ =sub_80EE96C
- bl sub_80EBDBC
- b _080EC492
- .align 2, 0
-_080EC3B0: .4byte sub_80EE96C
-_080EC3B4:
- bl sub_80F6208
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
-_080EC3BE:
- bl sub_80F6250
- lsls r0, 24
- cmp r0, 0
- bne _080EC492
- ldr r1, _080EC3D8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC492
- .align 2, 0
-_080EC3D8: .4byte 0x02000000
-_080EC3DC:
- bl sub_8055870
- cmp r0, 0
- bne _080EC492
- ldr r1, _080EC400 @ =0x00008fe8
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080EC408
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC404 @ =sub_80EDB88
- bl sub_80EBDBC
- b _080EC492
- .align 2, 0
-_080EC400: .4byte 0x00008fe8
-_080EC404: .4byte sub_80EDB88
-_080EC408:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0
- movs r1, 0x5
- b _080EC442
-_080EC414:
- bl sub_80F6C20
- ldr r2, _080EC430 @ =0x0000d158
- adds r0, r4, r2
- ldrh r0, [r0]
- cmp r0, 0
- beq _080EC438
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC434 @ =sub_80EE3D8
- bl sub_80EBDBC
- b _080EC492
- .align 2, 0
-_080EC430: .4byte 0x0000d158
-_080EC434: .4byte sub_80EE3D8
-_080EC438:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0
- movs r1, 0x6
-_080EC442:
- bl sub_80EF428
- movs r0, 0xFF
- strh r0, [r6]
- b _080EC492
-_080EC44C:
- bl sub_80EEC10
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080EC478
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080EC474 @ =0x00006dad
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0
- bl sub_80EF428
- movs r0, 0
- strh r0, [r6]
- bl sub_80EED9C
- b _080EC492
- .align 2, 0
-_080EC474: .4byte 0x00006dad
-_080EC478:
- ldr r0, _080EC498 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080EC492
- ldr r2, _080EC49C @ =0x00006dad
- adds r0, r4, r2
- ldrb r1, [r0]
- movs r0, 0
- bl sub_80EF428
- strh r5, [r6]
-_080EC492:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC498: .4byte gMain
-_080EC49C: .4byte 0x00006dad
- thumb_func_end sub_80EC268
-
- thumb_func_start sub_80EC4A0
-sub_80EC4A0: @ 80EC4A0
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080EC4C0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xE
- bls _080EC4B6
- b _080EC66A
-_080EC4B6:
- lsls r0, 2
- ldr r1, _080EC4C4 @ =_080EC4C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EC4C0: .4byte 0x02000000
-_080EC4C4: .4byte _080EC4C8
- .align 2, 0
-_080EC4C8:
- .4byte _080EC504
- .4byte _080EC510
- .4byte _080EC544
- .4byte _080EC578
- .4byte _080EC594
- .4byte _080EC5A8
- .4byte _080EC5AE
- .4byte _080EC5C0
- .4byte _080EC5D0
- .4byte _080EC5E4
- .4byte _080EC5F8
- .4byte _080EC614
- .4byte _080EC61E
- .4byte _080EC63E
- .4byte _080EC658
-_080EC504:
- bl sub_80F1E84
- movs r0, 0
- bl sub_80F2D04
- b _080EC644
-_080EC510:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080EC51C
- b _080EC66A
-_080EC51C:
- ldr r0, _080EC53C @ =gSaveBlock2
- ldrb r1, [r0, 0x15]
- movs r0, 0x8
- ands r0, r1
- movs r1, 0x8
- cmp r0, 0
- beq _080EC52C
- movs r1, 0x7
-_080EC52C:
- adds r0, r1, 0
- bl sub_80EEFBC
- ldr r1, _080EC540 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EC64C
- .align 2, 0
-_080EC53C: .4byte gSaveBlock2
-_080EC540: .4byte 0x02000000
-_080EC544:
- bl sub_80EEF34
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080EC552
- b _080EC66A
-_080EC552:
- ldr r4, _080EC574 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC64C
- .align 2, 0
-_080EC574: .4byte 0x02000000
-_080EC578:
- ldr r0, _080EC590 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC66A
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- b _080EC644
- .align 2, 0
-_080EC590: .4byte gPaletteFade
-_080EC594:
- bl sub_80F2620
- ldr r1, _080EC5A4 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EC64C
- .align 2, 0
-_080EC5A4: .4byte 0x02000000
-_080EC5A8:
- bl sub_80EF814
- b _080EC644
-_080EC5AE:
- bl sub_80EF840
- ldr r1, _080EC5CC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC5C0:
- bl sub_80EF874
- lsls r0, 24
- cmp r0, 0
- bne _080EC66A
- b _080EC644
- .align 2, 0
-_080EC5CC: .4byte 0x02000000
-_080EC5D0:
- movs r0, 0x4
- bl sub_80F2C80
- ldr r1, _080EC5F4 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC5E4:
- movs r0, 0x4
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EC66A
- b _080EC644
- .align 2, 0
-_080EC5F4: .4byte 0x02000000
-_080EC5F8:
- bl sub_80F2DD8
- ldr r0, _080EC60C @ =sub_80EBD30
- bl SetVBlankCallback
- ldr r1, _080EC610 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EC64C
- .align 2, 0
-_080EC60C: .4byte sub_80EBD30
-_080EC610: .4byte 0x02000000
-_080EC614:
- bl sub_8055870
- cmp r0, 0
- bne _080EC66A
- b _080EC644
-_080EC61E:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC64C
-_080EC63E:
- movs r0, 0x1
- bl sub_80EED2C
-_080EC644:
- ldr r1, _080EC654 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080EC64C:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC66A
- .align 2, 0
-_080EC654: .4byte 0x02000000
-_080EC658:
- ldr r0, _080EC674 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC66A
- ldr r0, _080EC678 @ =sub_80EC67C
- bl sub_80EBDBC
-_080EC66A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC674: .4byte gPaletteFade
-_080EC678: .4byte sub_80EC67C
- thumb_func_end sub_80EC4A0
-
- thumb_func_start sub_80EC67C
-sub_80EC67C: @ 80EC67C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _080EC69C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _080EC692
- b _080EC800
-_080EC692:
- lsls r0, 2
- ldr r1, _080EC6A0 @ =_080EC6A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EC69C: .4byte 0x02000000
-_080EC6A0: .4byte _080EC6A4
- .align 2, 0
-_080EC6A4:
- .4byte _080EC6BC
- .4byte _080EC718
- .4byte _080EC746
- .4byte _080EC77C
- .4byte _080EC7A0
- .4byte _080EC7C4
-_080EC6BC:
- bl sub_80FAB60
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080EC6E2
- cmp r0, 0x3
- bgt _080EC6D2
- cmp r0, 0x1
- beq _080EC6DC
- b _080EC800
-_080EC6D2:
- cmp r0, 0x4
- beq _080EC6E8
- cmp r0, 0x5
- beq _080EC700
- b _080EC800
-_080EC6DC:
- bl sub_80EED9C
- b _080EC800
-_080EC6E2:
- bl sub_80EF9F8
- b _080EC800
-_080EC6E8:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC6FC @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0]
- b _080EC800
- .align 2, 0
-_080EC6FC: .4byte 0x02000000
-_080EC700:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC714 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r2
- movs r1, 0x4
- strh r1, [r0]
- b _080EC800
- .align 2, 0
-_080EC714: .4byte 0x02000000
-_080EC718:
- ldr r1, _080EC730 @ =0x00006e90
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EC734
- bl sub_80FAEC4
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC7BC
- .align 2, 0
-_080EC730: .4byte 0x00006e90
-_080EC734:
- movs r0, 0x1
- bl sub_80EFBDC
- lsls r0, 24
- cmp r0, 0
- bne _080EC800
- bl sub_80FAEC4
- b _080EC7B6
-_080EC746:
- bl sub_80FAFC0
- lsls r0, 24
- cmp r0, 0
- bne _080EC800
- ldr r5, _080EC76C @ =0x02000000
- ldr r1, _080EC770 @ =0x00006e90
- adds r0, r5, r1
- ldrb r4, [r0]
- cmp r4, 0
- bne _080EC774
- bl sub_80EFBB0
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r5, r2
- strh r4, [r0]
- b _080EC800
- .align 2, 0
-_080EC76C: .4byte 0x02000000
-_080EC770: .4byte 0x00006e90
-_080EC774:
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r5, r0
- b _080EC7BC
-_080EC77C:
- movs r0, 0
- bl sub_80EFBDC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080EC800
- bl sub_80EFBB0
- ldr r0, _080EC79C @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- strh r4, [r0]
- b _080EC800
- .align 2, 0
-_080EC79C: .4byte 0x02000000
-_080EC7A0:
- movs r2, 0xC2
- lsls r2, 2
- adds r0, r4, r2
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_080EC7B6:
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
-_080EC7BC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC800
-_080EC7C4:
- ldr r0, _080EC808 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC800
- bl sub_80F2DF4
- movs r0, 0x4
- bl sub_80F2D04
- ldr r3, _080EC80C @ =gSaveBlock2
- movs r2, 0
- ldr r0, _080EC810 @ =0x02000000
- ldr r1, _080EC814 @ =0x00006e90
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080EC7EC
- movs r2, 0x1
-_080EC7EC:
- lsls r2, 3
- ldrb r1, [r3, 0x15]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x15]
- ldr r0, _080EC818 @ =sub_80EC00C
- bl sub_80EBDBC
-_080EC800:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC808: .4byte gPaletteFade
-_080EC80C: .4byte gSaveBlock2
-_080EC810: .4byte 0x02000000
-_080EC814: .4byte 0x00006e90
-_080EC818: .4byte sub_80EC00C
- thumb_func_end sub_80EC67C
-
- thumb_func_start sub_80EC81C
-sub_80EC81C: @ 80EC81C
- push {r4,lr}
- ldr r0, _080EC834 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EC838
- cmp r0, 0x1
- beq _080EC850
- b _080EC860
- .align 2, 0
-_080EC834: .4byte 0x02000000
-_080EC838:
- movs r0, 0
- bl sub_80F2D04
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1
- bl sub_80EE9C0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EC860
-_080EC850:
- bl sub_80EEA0C
- lsls r0, 24
- cmp r0, 0
- bne _080EC860
- ldr r0, _080EC868 @ =sub_80EC86C
- bl sub_80EBDBC
-_080EC860:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC868: .4byte sub_80EC86C
- thumb_func_end sub_80EC81C
-
- thumb_func_start sub_80EC86C
-sub_80EC86C: @ 80EC86C
- push {r4-r6,lr}
- ldr r4, _080EC884 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r5, r4, r0
- ldrh r0, [r5]
- cmp r0, 0
- beq _080EC888
- cmp r0, 0x1
- beq _080EC944
- b _080EC954
- .align 2, 0
-_080EC884: .4byte 0x02000000
-_080EC888:
- bl sub_80EEC90
- lsls r0, 24
- cmp r0, 0
- beq _080EC8B0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080EC8AC @ =0x00006dad
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0x1
- bl sub_80EF428
- bl sub_80EED9C
- b _080EC954
- .align 2, 0
-_080EC8AC: .4byte 0x00006dad
-_080EC8B0:
- ldr r0, _080EC8E4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080EC918
- movs r0, 0x5
- bl PlaySE
- ldr r2, _080EC8E8 @ =0x00006dad
- adds r0, r4, r2
- ldrb r1, [r0]
- adds r2, 0x43
- adds r0, r4, r2
- strb r1, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- beq _080EC900
- cmp r0, 0x1
- bgt _080EC8EC
- cmp r0, 0
- beq _080EC8F2
- b _080EC954
- .align 2, 0
-_080EC8E4: .4byte gMain
-_080EC8E8: .4byte 0x00006dad
-_080EC8EC:
- cmp r0, 0x2
- beq _080EC90C
- b _080EC954
-_080EC8F2:
- ldr r0, _080EC8FC @ =sub_80ED620
- bl sub_80EBDBC
- b _080EC954
- .align 2, 0
-_080EC8FC: .4byte sub_80ED620
-_080EC900:
- ldr r0, _080EC908 @ =sub_80EC960
- bl sub_80EBDBC
- b _080EC954
- .align 2, 0
-_080EC908: .4byte sub_80EC960
-_080EC90C:
- ldr r0, _080EC914 @ =sub_80EC210
- bl sub_80EBDBC
- b _080EC954
- .align 2, 0
-_080EC914: .4byte sub_80EC210
-_080EC918:
- movs r6, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080EC954
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080EC93C @ =0x00006df0
- adds r0, r4, r1
- strb r6, [r0]
- ldr r2, _080EC940 @ =0x00006dad
- adds r0, r4, r2
- strb r6, [r0]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _080EC954
- .align 2, 0
-_080EC93C: .4byte 0x00006df0
-_080EC940: .4byte 0x00006dad
-_080EC944:
- bl sub_80F1E6C
- lsls r0, 24
- cmp r0, 0
- bne _080EC954
- ldr r0, _080EC95C @ =sub_80EC210
- bl sub_80EBDBC
-_080EC954:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC95C: .4byte sub_80EC210
- thumb_func_end sub_80EC86C
-
- thumb_func_start sub_80EC960
-sub_80EC960: @ 80EC960
- push {r4,lr}
- ldr r0, _080EC978 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EC97C
- cmp r0, 0x1
- beq _080EC98E
- b _080EC99E
- .align 2, 0
-_080EC978: .4byte 0x02000000
-_080EC97C:
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x5
- bl sub_80EE9C0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EC99E
-_080EC98E:
- bl sub_80EEA0C
- lsls r0, 24
- cmp r0, 0
- bne _080EC99E
- ldr r0, _080EC9A4 @ =sub_80ECC08
- bl sub_80EBDBC
-_080EC99E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC9A4: .4byte sub_80ECC08
- thumb_func_end sub_80EC960
-
- thumb_func_start sub_80EC9A8
-sub_80EC9A8: @ 80EC9A8
- push {r4,r5,lr}
- ldr r5, _080EC9C0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EC9C4
- cmp r0, 0x1
- beq _080EC9E4
- b _080ECA00
- .align 2, 0
-_080EC9C0: .4byte 0x02000000
-_080EC9C4:
- movs r0, 0x5
- bl sub_80F2D04
- ldr r1, _080EC9E0 @ =0x00006df0
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0x1
- movs r2, 0xC
- bl sub_80EE9C0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080ECA00
- .align 2, 0
-_080EC9E0: .4byte 0x00006df0
-_080EC9E4:
- bl sub_80EEA0C
- lsls r0, 24
- cmp r0, 0
- bne _080ECA00
- ldr r0, _080ECA08 @ =sub_80EC86C
- bl sub_80EBDBC
- ldr r1, _080ECA0C @ =0x00006dad
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0x1
- bl sub_80EF428
-_080ECA00:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ECA08: .4byte sub_80EC86C
-_080ECA0C: .4byte 0x00006dad
- thumb_func_end sub_80EC9A8
-
- thumb_func_start sub_80ECA10
-sub_80ECA10: @ 80ECA10
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080ECA30 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xD
- bls _080ECA26
- b _080ECBF2
-_080ECA26:
- lsls r0, 2
- ldr r1, _080ECA34 @ =_080ECA38
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ECA30: .4byte 0x02000000
-_080ECA34: .4byte _080ECA38
- .align 2, 0
-_080ECA38:
- .4byte _080ECA70
- .4byte _080ECAC4
- .4byte _080ECAD8
- .4byte _080ECAF4
- .4byte _080ECB08
- .4byte _080ECB24
- .4byte _080ECB2E
- .4byte _080ECB58
- .4byte _080ECB6C
- .4byte _080ECB72
- .4byte _080ECB8C
- .4byte _080ECBA0
- .4byte _080ECBBC
- .4byte _080ECBD4
-_080ECA70:
- bl sub_80EEF78
- lsls r0, 24
- cmp r0, 0
- beq _080ECA7C
- b _080ECBF2
-_080ECA7C:
- ldr r0, _080ECAB0 @ =sub_80EBD80
- bl SetVBlankCallback
- bl sub_80EED1C
- ldr r4, _080ECAB4 @ =0x02000000
- ldr r1, _080ECAB8 @ =0x00006df0
- adds r0, r4, r1
- ldrb r1, [r0]
- ldr r2, _080ECABC @ =0x00006dad
- adds r0, r4, r2
- strb r1, [r0]
- ldr r0, _080ECAC0 @ =0x00006dae
- adds r1, r4, r0
- movs r0, 0x3
- strb r0, [r1]
- bl sub_80EEE08
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r1
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080ECBF2
- .align 2, 0
-_080ECAB0: .4byte sub_80EBD80
-_080ECAB4: .4byte 0x02000000
-_080ECAB8: .4byte 0x00006df0
-_080ECABC: .4byte 0x00006dad
-_080ECAC0: .4byte 0x00006dae
-_080ECAC4:
- movs r0, 0x1
- bl sub_80EF248
- ldr r1, _080ECAF0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECAD8:
- movs r0, 0x1
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- beq _080ECAE6
- b _080ECBF2
-_080ECAE6:
- ldr r1, _080ECAF0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECBC8
- .align 2, 0
-_080ECAF0: .4byte 0x02000000
-_080ECAF4:
- movs r0, 0x1
- bl sub_80F1B8C
- ldr r1, _080ECB20 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECB08:
- movs r0, 0x1
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- bne _080ECBF2
- ldr r1, _080ECB20 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECBC8
- .align 2, 0
-_080ECB20: .4byte 0x02000000
-_080ECB24:
- bl sub_8055870
- cmp r0, 0
- bne _080ECBF2
- b _080ECBC0
-_080ECB2E:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ECB54 @ =sub_80EBD18
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ECBC8
- .align 2, 0
-_080ECB54: .4byte sub_80EBD18
-_080ECB58:
- movs r0, 0
- bl sub_80EED2C
- ldr r1, _080ECB68 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECBC8
- .align 2, 0
-_080ECB68: .4byte 0x02000000
-_080ECB6C:
- bl sub_80F2598
- b _080ECBC0
-_080ECB72:
- ldr r0, _080ECB88 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ECBF2
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080ECBC8
- .align 2, 0
-_080ECB88: .4byte gPaletteFade
-_080ECB8C:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r1, _080ECBB8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECBA0:
- movs r0, 0x1
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080ECBF2
- ldr r1, _080ECBB8 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECBC8
- .align 2, 0
-_080ECBB8: .4byte 0x02000000
-_080ECBBC:
- bl sub_80F1DF0
-_080ECBC0:
- ldr r1, _080ECBD0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
-_080ECBC8:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ECBF2
- .align 2, 0
-_080ECBD0: .4byte 0x02000000
-_080ECBD4:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080ECBF2
- ldr r0, _080ECBFC @ =0x02000000
- ldr r1, _080ECC00 @ =0x00006dad
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- bl sub_80EF428
- ldr r0, _080ECC04 @ =sub_80EC86C
- bl sub_80EBDBC
-_080ECBF2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ECBFC: .4byte 0x02000000
-_080ECC00: .4byte 0x00006dad
-_080ECC04: .4byte sub_80EC86C
- thumb_func_end sub_80ECA10
-
- thumb_func_start sub_80ECC08
-sub_80ECC08: @ 80ECC08
- push {r4,r5,lr}
- ldr r4, _080ECC20 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r5, r4, r0
- ldrh r0, [r5]
- cmp r0, 0
- beq _080ECC24
- cmp r0, 0x1
- bne _080ECC1E
- b _080ECD64
-_080ECC1E:
- b _080ECD74
- .align 2, 0
-_080ECC20: .4byte 0x02000000
-_080ECC24:
- bl sub_80EEC90
- lsls r0, 24
- cmp r0, 0
- beq _080ECC4C
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080ECC48 @ =0x00006dad
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0x2
- bl sub_80EF428
- bl sub_80EED9C
- b _080ECD74
- .align 2, 0
-_080ECC48: .4byte 0x00006dad
-_080ECC4C:
- ldr r0, _080ECC78 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080ECC5A
- b _080ECD40
-_080ECC5A:
- movs r0, 0x5
- bl PlaySE
- ldr r2, _080ECC7C @ =0x00006dad
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x5
- bhi _080ECD0C
- lsls r0, 2
- ldr r1, _080ECC80 @ =_080ECC84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ECC78: .4byte gMain
-_080ECC7C: .4byte 0x00006dad
-_080ECC80: .4byte _080ECC84
- .align 2, 0
-_080ECC84:
- .4byte _080ECC9C
- .4byte _080ECCB0
- .4byte _080ECCC4
- .4byte _080ECCD8
- .4byte _080ECCEC
- .4byte _080ECD00
-_080ECC9C:
- ldr r0, _080ECCA8 @ =0x02000000
- ldr r3, _080ECCAC @ =0x000087d8
- adds r0, r3
- movs r1, 0x16
- strb r1, [r0]
- b _080ECD0C
- .align 2, 0
-_080ECCA8: .4byte 0x02000000
-_080ECCAC: .4byte 0x000087d8
-_080ECCB0:
- ldr r0, _080ECCBC @ =0x02000000
- ldr r1, _080ECCC0 @ =0x000087d8
- adds r0, r1
- movs r1, 0x17
- strb r1, [r0]
- b _080ECD0C
- .align 2, 0
-_080ECCBC: .4byte 0x02000000
-_080ECCC0: .4byte 0x000087d8
-_080ECCC4:
- ldr r0, _080ECCD0 @ =0x02000000
- ldr r2, _080ECCD4 @ =0x000087d8
- adds r0, r2
- movs r1, 0x18
- strb r1, [r0]
- b _080ECD0C
- .align 2, 0
-_080ECCD0: .4byte 0x02000000
-_080ECCD4: .4byte 0x000087d8
-_080ECCD8:
- ldr r0, _080ECCE4 @ =0x02000000
- ldr r3, _080ECCE8 @ =0x000087d8
- adds r0, r3
- movs r1, 0x21
- strb r1, [r0]
- b _080ECD0C
- .align 2, 0
-_080ECCE4: .4byte 0x02000000
-_080ECCE8: .4byte 0x000087d8
-_080ECCEC:
- ldr r0, _080ECCF8 @ =0x02000000
- ldr r1, _080ECCFC @ =0x000087d8
- adds r0, r1
- movs r1, 0x2F
- strb r1, [r0]
- b _080ECD0C
- .align 2, 0
-_080ECCF8: .4byte 0x02000000
-_080ECCFC: .4byte 0x000087d8
-_080ECD00:
- ldr r0, _080ECD08 @ =sub_80EC9A8
- bl sub_80EBDBC
- b _080ECD74
- .align 2, 0
-_080ECD08: .4byte sub_80EC9A8
-_080ECD0C:
- ldr r1, _080ECD2C @ =0x02000000
- ldr r2, _080ECD30 @ =0x00006dad
- adds r0, r1, r2
- ldrb r2, [r0]
- ldr r3, _080ECD34 @ =0x00006dfc
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080ECD38 @ =0x000076aa
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080ECD3C @ =sub_80ED01C
- bl sub_80EBDBC
- b _080ECD74
- .align 2, 0
-_080ECD2C: .4byte 0x02000000
-_080ECD30: .4byte 0x00006dad
-_080ECD34: .4byte 0x00006dfc
-_080ECD38: .4byte 0x000076aa
-_080ECD3C: .4byte sub_80ED01C
-_080ECD40:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080ECD74
- movs r0, 0x5
- bl PlaySE
- ldr r2, _080ECD60 @ =0x00006dad
- adds r1, r4, r2
- movs r0, 0x5
- strb r0, [r1]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _080ECD74
- .align 2, 0
-_080ECD60: .4byte 0x00006dad
-_080ECD64:
- bl sub_80F1E6C
- lsls r0, 24
- cmp r0, 0
- bne _080ECD74
- ldr r0, _080ECD7C @ =sub_80EC9A8
- bl sub_80EBDBC
-_080ECD74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ECD7C: .4byte sub_80EC9A8
- thumb_func_end sub_80ECC08
-
- thumb_func_start sub_80ECD80
-sub_80ECD80: @ 80ECD80
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080ECDA0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x14
- bls _080ECD96
- b _080ED006
-_080ECD96:
- lsls r0, 2
- ldr r1, _080ECDA4 @ =_080ECDA8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ECDA0: .4byte 0x02000000
-_080ECDA4: .4byte _080ECDA8
- .align 2, 0
-_080ECDA8:
- .4byte _080ECDFC
- .4byte _080ECE1A
- .4byte _080ECE34
- .4byte _080ECE4C
- .4byte _080ECE64
- .4byte _080ECE78
- .4byte _080ECE80
- .4byte _080ECEAC
- .4byte _080ECEC0
- .4byte _080ECED4
- .4byte _080ECEE8
- .4byte _080ECF04
- .4byte _080ECF10
- .4byte _080ECF3C
- .4byte _080ECF44
- .4byte _080ECF58
- .4byte _080ECF70
- .4byte _080ECF84
- .4byte _080ECFB0
- .4byte _080ECFC4
- .4byte _080ECFE8
-_080ECDFC:
- movs r3, 0xC2
- lsls r3, 2
- adds r0, r4, r3
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080ECFDC
-_080ECE1A:
- ldr r0, _080ECE30 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080ECE28
- b _080ED006
-_080ECE28:
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ECFDC
- .align 2, 0
-_080ECE30: .4byte gPaletteFade
-_080ECE34:
- bl sub_80EEF78
- lsls r0, 24
- cmp r0, 0
- beq _080ECE40
- b _080ED006
-_080ECE40:
- ldr r0, _080ECE48 @ =sub_80EBD80
- bl SetVBlankCallback
- b _080ECFD4
- .align 2, 0
-_080ECE48: .4byte sub_80EBD80
-_080ECE4C:
- bl sub_80EED1C
- bl sub_80F3130
- ldr r1, _080ECE60 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECFDC
- .align 2, 0
-_080ECE60: .4byte 0x02000000
-_080ECE64:
- movs r0, 0x1
- bl sub_80F2D6C
- ldr r1, _080ECE74 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080ECFDC
- .align 2, 0
-_080ECE74: .4byte 0x02000000
-_080ECE78:
- movs r0, 0x5
- bl sub_80F2D6C
- b _080ECFD4
-_080ECE80:
- ldr r1, _080ECEA0 @ =0x00006dfc
- adds r0, r4, r1
- ldrb r1, [r0]
- ldr r2, _080ECEA4 @ =0x00006dad
- adds r0, r4, r2
- strb r1, [r0]
- ldr r3, _080ECEA8 @ =0x00006dae
- adds r1, r4, r3
- movs r0, 0x6
- strb r0, [r1]
- bl sub_80EEE08
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080ECFDC
- .align 2, 0
-_080ECEA0: .4byte 0x00006dfc
-_080ECEA4: .4byte 0x00006dad
-_080ECEA8: .4byte 0x00006dae
-_080ECEAC:
- movs r0, 0x2
- bl sub_80EF248
- ldr r1, _080ECED0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECEC0:
- movs r0, 0x2
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- beq _080ECECE
- b _080ED006
-_080ECECE:
- b _080ECFD4
- .align 2, 0
-_080ECED0: .4byte 0x02000000
-_080ECED4:
- movs r0, 0x2
- bl sub_80F1B8C
- ldr r1, _080ECF00 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECEE8:
- movs r0, 0x2
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- beq _080ECEF6
- b _080ED006
-_080ECEF6:
- ldr r1, _080ECF00 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080ECFDC
- .align 2, 0
-_080ECF00: .4byte 0x02000000
-_080ECF04:
- bl sub_8055870
- cmp r0, 0
- beq _080ECF0E
- b _080ED006
-_080ECF0E:
- b _080ECFD4
-_080ECF10:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ECF38 @ =sub_80EBD18
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ECFDC
- .align 2, 0
-_080ECF38: .4byte sub_80EBD18
-_080ECF3C:
- movs r0, 0
- bl sub_80EED2C
- b _080ECFD4
-_080ECF44:
- bl sub_80F2598
- ldr r1, _080ECF54 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECFDC
- .align 2, 0
-_080ECF54: .4byte 0x02000000
-_080ECF58:
- ldr r0, _080ECF6C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ED006
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ECFDC
- .align 2, 0
-_080ECF6C: .4byte gPaletteFade
-_080ECF70:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r1, _080ECFA8 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECF84:
- movs r0, 0x1
- bl sub_80F2CBC
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080ED006
- ldr r0, _080ECFA8 @ =0x02000000
- ldr r3, _080ECFAC @ =0x00000306
- adds r1, r0, r3
- strh r2, [r1]
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- b _080ED006
- .align 2, 0
-_080ECFA8: .4byte 0x02000000
-_080ECFAC: .4byte 0x00000306
-_080ECFB0:
- movs r0, 0x5
- bl sub_80F2C80
- ldr r1, _080ECFE4 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECFC4:
- movs r0, 0x5
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080ED006
- bl sub_80F1DF0
-_080ECFD4:
- ldr r1, _080ECFE4 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
-_080ECFDC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ED006
- .align 2, 0
-_080ECFE4: .4byte 0x02000000
-_080ECFE8:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080ED006
- ldr r0, _080ED010 @ =0x02000000
- ldr r1, _080ED014 @ =0x00006dad
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- bl sub_80EF428
- ldr r0, _080ED018 @ =sub_80ECC08
- bl sub_80EBDBC
-_080ED006:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED010: .4byte 0x02000000
-_080ED014: .4byte 0x00006dad
-_080ED018: .4byte sub_80ECC08
- thumb_func_end sub_80ECD80
-
- thumb_func_start sub_80ED01C
-sub_80ED01C: @ 80ED01C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080ED03C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x13
- bls _080ED032
- b _080ED308
-_080ED032:
- lsls r0, 2
- ldr r1, _080ED040 @ =_080ED044
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED03C: .4byte 0x02000000
-_080ED040: .4byte _080ED044
- .align 2, 0
-_080ED044:
- .4byte _080ED094
- .4byte _080ED0B4
- .4byte _080ED0D4
- .4byte _080ED108
- .4byte _080ED138
- .4byte _080ED14C
- .4byte _080ED15E
- .4byte _080ED18C
- .4byte _080ED1AC
- .4byte _080ED1C4
- .4byte _080ED1D8
- .4byte _080ED1F4
- .4byte _080ED208
- .4byte _080ED220
- .4byte _080ED24C
- .4byte _080ED260
- .4byte _080ED28C
- .4byte _080ED2A0
- .4byte _080ED2CC
- .4byte _080ED2EA
-_080ED094:
- bl sub_80F1E84
- movs r0, 0x1
- bl sub_80F2D04
- movs r0, 0x5
- bl sub_80F2D04
- ldr r1, _080ED0B0 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- b _080ED27C
- .align 2, 0
-_080ED0B0: .4byte 0x02000000
-_080ED0B4:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080ED0C0
- b _080ED308
-_080ED0C0:
- movs r0, 0
- bl sub_80EEFBC
- ldr r1, _080ED0D0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED27C
- .align 2, 0
-_080ED0D0: .4byte 0x02000000
-_080ED0D4:
- bl sub_80EEF34
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080ED0E2
- b _080ED308
-_080ED0E2:
- ldr r4, _080ED104 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED27C
- .align 2, 0
-_080ED104: .4byte 0x02000000
-_080ED108:
- ldr r0, _080ED130 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080ED116
- b _080ED308
-_080ED116:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80EF814
- ldr r1, _080ED134 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- b _080ED27C
- .align 2, 0
-_080ED130: .4byte gPaletteFade
-_080ED134: .4byte 0x02000000
-_080ED138:
- bl sub_80F2620
- ldr r1, _080ED148 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED27C
- .align 2, 0
-_080ED148: .4byte 0x02000000
-_080ED14C:
- bl sub_80F4D44
- ldr r1, _080ED178 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED15E:
- bl sub_80F4D88
- lsls r0, 24
- cmp r0, 0
- bne _080ED17C
- ldr r1, _080ED178 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x2
- strh r0, [r1]
- b _080ED308
- .align 2, 0
-_080ED178: .4byte 0x02000000
-_080ED17C:
- ldr r1, _080ED188 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED27C
- .align 2, 0
-_080ED188: .4byte 0x02000000
-_080ED18C:
- bl sub_8055870
- cmp r0, 0
- beq _080ED196
- b _080ED308
-_080ED196:
- ldr r1, _080ED1A8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- b _080ED308
- .align 2, 0
-_080ED1A8: .4byte 0x02000000
-_080ED1AC:
- bl sub_8055870
- cmp r0, 0
- beq _080ED1B6
- b _080ED308
-_080ED1B6:
- ldr r1, _080ED1C0 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- b _080ED27C
- .align 2, 0
-_080ED1C0: .4byte 0x02000000
-_080ED1C4:
- movs r0, 0
- bl sub_80F0264
- ldr r1, _080ED1F0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED1D8:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- beq _080ED1E4
- b _080ED308
-_080ED1E4:
- ldr r1, _080ED1F0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080ED27C
- .align 2, 0
-_080ED1F0: .4byte 0x02000000
-_080ED1F4:
- movs r0, 0
- bl sub_80F3008
- ldr r1, _080ED204 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- b _080ED27C
- .align 2, 0
-_080ED204: .4byte 0x02000000
-_080ED208:
- bl sub_8055870
- cmp r0, 0
- beq _080ED212
- b _080ED308
-_080ED212:
- ldr r1, _080ED21C @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED27C
- .align 2, 0
-_080ED21C: .4byte 0x02000000
-_080ED220:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ED248 @ =sub_80EBD18
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED27C
- .align 2, 0
-_080ED248: .4byte sub_80EBD18
-_080ED24C:
- movs r0, 0x4
- bl sub_80EED2C
- ldr r1, _080ED25C @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- b _080ED27C
- .align 2, 0
-_080ED25C: .4byte 0x02000000
-_080ED260:
- ldr r0, _080ED284 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080ED308
- ldr r2, _080ED288 @ =0x00000306
- adds r0, r4, r2
- strh r1, [r0]
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r4, r3
-_080ED27C:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ED308
- .align 2, 0
-_080ED284: .4byte gPaletteFade
-_080ED288: .4byte 0x00000306
-_080ED28C:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r1, _080ED2C4 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED2A0:
- movs r0, 0x1
- bl sub_80F2CBC
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080ED308
- ldr r0, _080ED2C4 @ =0x02000000
- ldr r3, _080ED2C8 @ =0x00000306
- adds r1, r0, r3
- strh r2, [r1]
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- b _080ED308
- .align 2, 0
-_080ED2C4: .4byte 0x02000000
-_080ED2C8: .4byte 0x00000306
-_080ED2CC:
- ldr r4, _080ED310 @ =0x02000000
- ldr r2, _080ED314 @ =0x00006dfc
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r0, 0x7
- lsls r0, 24
- lsrs r0, 24
- bl sub_80F2C80
- movs r3, 0xC1
- lsls r3, 2
- adds r4, r3
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080ED2EA:
- ldr r0, _080ED310 @ =0x02000000
- ldr r1, _080ED314 @ =0x00006dfc
- adds r0, r1
- ldrb r0, [r0]
- adds r0, 0x7
- lsls r0, 24
- lsrs r0, 24
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080ED308
- ldr r0, _080ED318 @ =sub_80ED31C
- bl sub_80EBDBC
-_080ED308:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED310: .4byte 0x02000000
-_080ED314: .4byte 0x00006dfc
-_080ED318: .4byte sub_80ED31C
- thumb_func_end sub_80ED01C
-
- thumb_func_start sub_80ED31C
-sub_80ED31C: @ 80ED31C
- push {r4,lr}
- ldr r0, _080ED338 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _080ED3A8
- cmp r0, 0x1
- bgt _080ED33C
- cmp r0, 0
- beq _080ED342
- b _080ED3CA
- .align 2, 0
-_080ED338: .4byte 0x02000000
-_080ED33C:
- cmp r0, 0x2
- beq _080ED3C0
- b _080ED3CA
-_080ED342:
- bl sub_80F5DD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080ED374
- cmp r0, 0x2
- beq _080ED380
- ldr r0, _080ED36C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080ED38C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080ED370 @ =sub_80ED4D8
- bl sub_80EBDBC
- b _080ED3CA
- .align 2, 0
-_080ED36C: .4byte gMain
-_080ED370: .4byte sub_80ED4D8
-_080ED374:
- movs r0, 0x5
- bl PlaySE
- bl ShowMapNamePopUpWindow
- b _080ED3CA
-_080ED380:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- adds r0, 0x1
- b _080ED3C8
-_080ED38C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080ED3CA
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080ED3A4 @ =sub_80ECD80
- bl sub_80EBDBC
- b _080ED3CA
- .align 2, 0
-_080ED3A4: .4byte sub_80ECD80
-_080ED3A8:
- bl sub_80F0718
- lsls r0, 24
- cmp r0, 0
- bne _080ED3CA
- bl ShowMapNamePopUpWindow
- bl sub_80F3264
- ldrh r0, [r4]
- adds r0, 0x1
- b _080ED3C8
-_080ED3C0:
- bl sub_8055870
- cmp r0, 0
- bne _080ED3CA
-_080ED3C8:
- strh r0, [r4]
-_080ED3CA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ED31C
-
- thumb_func_start sub_80ED3D0
-sub_80ED3D0: @ 80ED3D0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080ED3EC @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x8
- bhi _080ED4C6
- lsls r0, 2
- ldr r1, _080ED3F0 @ =_080ED3F4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED3EC: .4byte 0x02000000
-_080ED3F0: .4byte _080ED3F4
- .align 2, 0
-_080ED3F4:
- .4byte _080ED418
- .4byte _080ED420
- .4byte _080ED42A
- .4byte _080ED432
- .4byte _080ED446
- .4byte _080ED458
- .4byte _080ED462
- .4byte _080ED498
- .4byte _080ED4B4
-_080ED418:
- movs r0, 0
- bl SetVBlankCallback
- b _080ED49E
-_080ED420:
- bl sub_80EED0C
- bl sub_80F6134
- b _080ED49E
-_080ED42A:
- movs r0, 0
- bl sub_80EEFBC
- b _080ED49E
-_080ED432:
- movs r0, 0
- bl sub_80F0264
- ldr r1, _080ED454 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED446:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- bne _080ED4C6
- b _080ED49E
- .align 2, 0
-_080ED454: .4byte 0x02000000
-_080ED458:
- bl sub_8055870
- cmp r0, 0
- bne _080ED4C6
- b _080ED49E
-_080ED462:
- movs r0, 0
- bl sub_80F3008
- ldr r4, _080ED490 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ED494 @ =sub_80EBD18
- bl SetVBlankCallback
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080ED4A6
- .align 2, 0
-_080ED490: .4byte 0x02000000
-_080ED494: .4byte sub_80EBD18
-_080ED498:
- movs r0, 0x4
- bl sub_80EED2C
-_080ED49E:
- ldr r1, _080ED4B0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080ED4A6:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ED4C6
- .align 2, 0
-_080ED4B0: .4byte 0x02000000
-_080ED4B4:
- ldr r0, _080ED4D0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ED4C6
- ldr r0, _080ED4D4 @ =sub_80ED31C
- bl sub_80EBDBC
-_080ED4C6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED4D0: .4byte gPaletteFade
-_080ED4D4: .4byte sub_80ED31C
- thumb_func_end sub_80ED3D0
-
- thumb_func_start sub_80ED4D8
-sub_80ED4D8: @ 80ED4D8
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080ED4F8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x8
- bls _080ED4EE
- b _080ED60E
-_080ED4EE:
- lsls r0, 2
- ldr r1, _080ED4FC @ =_080ED500
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED4F8: .4byte 0x02000000
-_080ED4FC: .4byte _080ED500
- .align 2, 0
-_080ED500:
- .4byte _080ED524
- .4byte _080ED542
- .4byte _080ED564
- .4byte _080ED57C
- .4byte _080ED582
- .4byte _080ED594
- .4byte _080ED5A4
- .4byte _080ED5E0
- .4byte _080ED5FC
-_080ED524:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED5EE
-_080ED542:
- ldr r0, _080ED560 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ED60E
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80F3130
- b _080ED5E6
- .align 2, 0
-_080ED560: .4byte gPaletteFade
-_080ED564:
- bl sub_8055870
- cmp r0, 0
- bne _080ED60E
- ldr r1, _080ED578 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080ED5EE
- .align 2, 0
-_080ED578: .4byte 0x02000000
-_080ED57C:
- bl sub_80F4CF0
- b _080ED5E6
-_080ED582:
- bl sub_80EFF34
- ldr r1, _080ED5A0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED594:
- bl sub_80EFF68
- lsls r0, 24
- cmp r0, 0
- bne _080ED60E
- b _080ED5E6
- .align 2, 0
-_080ED5A0: .4byte 0x02000000
-_080ED5A4:
- bl sub_80F35B4
- movs r0, 0x2
- bl sub_80EEFBC
- ldr r4, _080ED5D8 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ED5DC @ =sub_80EBD4C
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED5EE
- .align 2, 0
-_080ED5D8: .4byte 0x02000000
-_080ED5DC: .4byte sub_80EBD4C
-_080ED5E0:
- movs r0, 0x2
- bl sub_80EED2C
-_080ED5E6:
- ldr r1, _080ED5F8 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080ED5EE:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ED60E
- .align 2, 0
-_080ED5F8: .4byte 0x02000000
-_080ED5FC:
- ldr r0, _080ED618 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ED60E
- ldr r0, _080ED61C @ =sub_80ED858
- bl sub_80EBDBC
-_080ED60E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED618: .4byte gPaletteFade
-_080ED61C: .4byte sub_80ED858
- thumb_func_end sub_80ED4D8
-
- thumb_func_start sub_80ED620
-sub_80ED620: @ 80ED620
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080ED640 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x10
- bls _080ED636
- b _080ED846
-_080ED636:
- lsls r0, 2
- ldr r1, _080ED644 @ =_080ED648
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED640: .4byte 0x02000000
-_080ED644: .4byte _080ED648
- .align 2, 0
-_080ED648:
- .4byte _080ED68C
- .4byte _080ED6A4
- .4byte _080ED6B8
- .4byte _080ED6EC
- .4byte _080ED730
- .4byte _080ED736
- .4byte _080ED750
- .4byte _080ED762
- .4byte _080ED76C
- .4byte _080ED784
- .4byte _080ED78A
- .4byte _080ED7C0
- .4byte _080ED7D4
- .4byte _080ED7EC
- .4byte _080ED800
- .4byte _080ED820
- .4byte _080ED834
-_080ED68C:
- bl sub_80F1E84
- movs r0, 0x1
- bl sub_80F2D04
- ldr r1, _080ED6A0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED814
- .align 2, 0
-_080ED6A0: .4byte 0x02000000
-_080ED6A4:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080ED6B0
- b _080ED846
-_080ED6B0:
- movs r0, 0x1
- bl sub_80EEFBC
- b _080ED80C
-_080ED6B8:
- bl sub_80EEF34
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080ED6C6
- b _080ED846
-_080ED6C6:
- ldr r4, _080ED6E8 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED814
- .align 2, 0
-_080ED6E8: .4byte 0x02000000
-_080ED6EC:
- ldr r0, _080ED724 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080ED6FE
- b _080ED846
-_080ED6FE:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80EF814
- ldr r0, _080ED728 @ =0x02000000
- ldr r2, _080ED72C @ =0x000076aa
- adds r1, r0, r2
- strb r4, [r1]
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- b _080ED846
- .align 2, 0
-_080ED724: .4byte gPaletteFade
-_080ED728: .4byte 0x02000000
-_080ED72C: .4byte 0x000076aa
-_080ED730:
- bl sub_80F2620
- b _080ED80C
-_080ED736:
- ldr r0, _080ED74C @ =0x0000d162
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- bl sub_80F4BD0
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED814
- .align 2, 0
-_080ED74C: .4byte 0x0000d162
-_080ED750:
- bl sub_80EFF34
- ldr r1, _080ED768 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED762:
- bl sub_80EFF68
- b _080ED806
- .align 2, 0
-_080ED768: .4byte 0x02000000
-_080ED76C:
- bl sub_8055870
- cmp r0, 0
- bne _080ED846
- ldr r1, _080ED780 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED814
- .align 2, 0
-_080ED780: .4byte 0x02000000
-_080ED784:
- bl sub_8055870
- b _080ED808
-_080ED78A:
- bl sub_80F33A8
- ldr r4, _080ED7B8 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ED7BC @ =sub_80EBD4C
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED814
- .align 2, 0
-_080ED7B8: .4byte 0x02000000
-_080ED7BC: .4byte sub_80EBD4C
-_080ED7C0:
- movs r0, 0x2
- bl sub_80EED2C
- ldr r1, _080ED7D0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED814
- .align 2, 0
-_080ED7D0: .4byte 0x02000000
-_080ED7D4:
- ldr r0, _080ED7E8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ED846
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED814
- .align 2, 0
-_080ED7E8: .4byte gPaletteFade
-_080ED7EC:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r1, _080ED81C @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED800:
- movs r0, 0x1
- bl sub_80F2CBC
-_080ED806:
- lsls r0, 24
-_080ED808:
- cmp r0, 0
- bne _080ED846
-_080ED80C:
- ldr r1, _080ED81C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
-_080ED814:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ED846
- .align 2, 0
-_080ED81C: .4byte 0x02000000
-_080ED820:
- movs r0, 0x6
- bl sub_80F2C80
- ldr r1, _080ED850 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED834:
- movs r0, 0x6
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080ED846
- ldr r0, _080ED854 @ =sub_80ED858
- bl sub_80EBDBC
-_080ED846:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED850: .4byte 0x02000000
-_080ED854: .4byte sub_80ED858
- thumb_func_end sub_80ED620
-
- thumb_func_start sub_80ED858
-sub_80ED858: @ 80ED858
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _080ED878 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r5, r1, 0
- cmp r0, 0xB
- bls _080ED86E
- b _080EDB7A
-_080ED86E:
- lsls r0, 2
- ldr r1, _080ED87C @ =_080ED880
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED878: .4byte 0x02000000
-_080ED87C: .4byte _080ED880
- .align 2, 0
-_080ED880:
- .4byte _080ED8B0
- .4byte _080ED8CC
- .4byte _080ED8EC
- .4byte _080ED904
- .4byte _080ED91A
- .4byte _080EDA68
- .4byte _080EDA8C
- .4byte _080EDAA4
- .4byte _080EDAC0
- .4byte _080EDAE8
- .4byte _080EDB7A
- .4byte _080EDB28
-_080ED8B0:
- bl sub_80F4F78
- bl sub_80F5B38
- ldr r0, _080ED8C8 @ =0x02000000
- movs r4, 0xC1
- lsls r4, 2
- adds r0, r4
- movs r1, 0x1
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080ED8C8: .4byte 0x02000000
-_080ED8CC:
- bl sub_80F5B50
- lsls r0, 24
- cmp r0, 0
- beq _080ED8D8
- b _080EDB7A
-_080ED8D8:
- ldr r0, _080ED8E8 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080ED8E8: .4byte 0x02000000
-_080ED8EC:
- movs r0, 0x1
- bl sub_80F0174
- ldr r0, _080ED900 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r2
- movs r1, 0x3
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080ED900: .4byte 0x02000000
-_080ED904:
- bl sub_80F4FB4
- lsls r0, 24
- cmp r0, 0
- beq _080ED910
- b _080EDB7A
-_080ED910:
- bl sub_80F3C94
- bl sub_80F3D00
- b _080EDAD4
-_080ED91A:
- ldr r2, _080ED960 @ =gMain
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- adds r3, r2, 0
- cmp r0, 0
- beq _080ED970
- ldr r1, _080ED964 @ =0x000087cb
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080ED970
- ldr r2, _080ED968 @ =0x000076aa
- adds r0, r5, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080ED948
- ldr r4, _080ED96C @ =0x000087dc
- adds r0, r5, r4
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080ED970
-_080ED948:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_80F5060
- bl move_anim_execute
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r5, r2
- b _080ED9B8
- .align 2, 0
-_080ED960: .4byte gMain
-_080ED964: .4byte 0x000087cb
-_080ED968: .4byte 0x000076aa
-_080ED96C: .4byte 0x000087dc
-_080ED970:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080ED9CC
- ldr r4, _080ED9C0 @ =0x000087cb
- adds r0, r5, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080ED9CC
- ldr r1, _080ED9C4 @ =0x000076aa
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080ED9A2
- ldr r2, _080ED9C8 @ =0x000087dc
- adds r0, r5, r2
- subs r4, 0x57
- adds r1, r5, r4
- movs r4, 0
- ldrsh r2, [r0, r4]
- movs r4, 0
- ldrsh r0, [r1, r4]
- cmp r2, r0
- bge _080ED9CC
-_080ED9A2:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_80F5060
- bl move_anim_execute
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r5, r0
-_080ED9B8:
- movs r0, 0x5
- strh r0, [r1]
- b _080EDB7A
- .align 2, 0
-_080ED9C0: .4byte 0x000087cb
-_080ED9C4: .4byte 0x000076aa
-_080ED9C8: .4byte 0x000087dc
-_080ED9CC:
- ldrh r2, [r3, 0x2E]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _080ED9F8
- movs r0, 0x5
- bl PlaySE
- bl sub_80F4FDC
- bl move_anim_execute
- ldr r0, _080ED9F4 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x9
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080ED9F4: .4byte 0x02000000
-_080ED9F8:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _080EDA02
- b _080EDB7A
-_080EDA02:
- adds r4, r5, 0
- ldr r2, _080EDA38 @ =0x000076aa
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EDA44
- ldr r1, _080EDA3C @ =0x000087dc
- adds r0, r4, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r2, _080EDA40 @ =0x000087da
- adds r0, r4, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- cmp r1, r0
- beq _080EDA26
- b _080EDB7A
-_080EDA26:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- movs r0, 0x9
- strh r0, [r1]
- b _080EDB7A
- .align 2, 0
-_080EDA38: .4byte 0x000076aa
-_080EDA3C: .4byte 0x000087dc
-_080EDA40: .4byte 0x000087da
-_080EDA44:
- ldr r1, _080EDA64 @ =0x00006dac
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EDA50
- b _080EDB7A
-_080EDA50:
- movs r0, 0x5
- bl PlaySE
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r5, r2
- movs r0, 0x7
- strh r0, [r1]
- b _080EDB7A
- .align 2, 0
-_080EDA64: .4byte 0x00006dac
-_080EDA68:
- bl gpu_sync_bg_show
- lsls r0, 24
- cmp r0, 0
- beq _080EDA74
- b _080EDB7A
-_080EDA74:
- bl sub_80F3D00
- ldr r0, _080EDA88 @ =0x02000000
- movs r4, 0xC1
- lsls r4, 2
- adds r0, r4
- movs r1, 0x6
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080EDA88: .4byte 0x02000000
-_080EDA8C:
- bl sub_8055870
- cmp r0, 0
- bne _080EDB7A
- ldr r0, _080EDAA0 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- b _080EDADC
- .align 2, 0
-_080EDAA0: .4byte 0x02000000
-_080EDAA4:
- movs r0, 0x3
- bl sub_80EEFBC
- bl sub_80F3668
- ldr r0, _080EDABC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r2
- movs r1, 0x8
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080EDABC: .4byte 0x02000000
-_080EDAC0:
- bl sub_80F7500
- lsls r0, 24
- cmp r0, 0
- bne _080EDB7A
- movs r0, 0x2
- bl sub_80EEFBC
- bl sub_80F3698
-_080EDAD4:
- ldr r0, _080EDAE4 @ =0x02000000
- movs r4, 0xC1
- lsls r4, 2
- adds r0, r4
-_080EDADC:
- movs r1, 0x4
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080EDAE4: .4byte 0x02000000
-_080EDAE8:
- bl sub_80F5038
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080EDB7A
- movs r0, 0
- bl sub_80F0174
- bl sub_80F2F48
- ldr r5, _080EDB24 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r5, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r4, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r5, r2
- movs r0, 0xB
- strh r0, [r1]
- b _080EDB7A
- .align 2, 0
-_080EDB24: .4byte 0x02000000
-_080EDB28:
- ldr r0, _080EDB60 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EDB7A
- bl sub_80F3CE8
- bl sub_80F5BDC
- ldr r0, _080EDB64 @ =0x02000000
- ldr r4, _080EDB68 @ =0x000076aa
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EDB70
- bl sub_80F357C
- movs r0, 0x1
- bl sub_80F2D6C
- movs r0, 0x6
- bl sub_80F2D6C
- ldr r0, _080EDB6C @ =sub_80ECA10
- bl sub_80EBDBC
- b _080EDB7A
- .align 2, 0
-_080EDB60: .4byte gPaletteFade
-_080EDB64: .4byte 0x02000000
-_080EDB68: .4byte 0x000076aa
-_080EDB6C: .4byte sub_80ECA10
-_080EDB70:
- bl sub_80F3614
- ldr r0, _080EDB84 @ =sub_80ED3D0
- bl sub_80EBDBC
-_080EDB7A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDB84: .4byte sub_80ED3D0
- thumb_func_end sub_80ED858
-
- thumb_func_start sub_80EDB88
-sub_80EDB88: @ 80EDB88
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080EDBA8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x11
- bls _080EDB9E
- b _080EDDAA
-_080EDB9E:
- lsls r0, 2
- ldr r1, _080EDBAC @ =_080EDBB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EDBA8: .4byte 0x02000000
-_080EDBAC: .4byte _080EDBB0
- .align 2, 0
-_080EDBB0:
- .4byte _080EDBF8
- .4byte _080EDC04
- .4byte _080EDC24
- .4byte _080EDC58
- .4byte _080EDC7C
- .4byte _080EDC90
- .4byte _080EDCA2
- .4byte _080EDCC0
- .4byte _080EDCDC
- .4byte _080EDCE6
- .4byte _080EDCFA
- .4byte _080EDD0C
- .4byte _080EDD20
- .4byte _080EDD34
- .4byte _080EDD48
- .4byte _080EDD52
- .4byte _080EDD7C
- .4byte _080EDD98
-_080EDBF8:
- bl sub_80F1E84
- movs r0, 0
- bl sub_80F2D04
- b _080EDD82
-_080EDC04:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080EDC10
- b _080EDDAA
-_080EDC10:
- movs r0, 0x4
- bl sub_80EEFBC
- ldr r1, _080EDC20 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EDD8A
- .align 2, 0
-_080EDC20: .4byte 0x02000000
-_080EDC24:
- bl sub_80EEF34
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080EDC32
- b _080EDDAA
-_080EDC32:
- ldr r4, _080EDC54 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EDD8A
- .align 2, 0
-_080EDC54: .4byte 0x02000000
-_080EDC58:
- ldr r0, _080EDC78 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EDC66
- b _080EDDAA
-_080EDC66:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80EF814
- b _080EDD82
- .align 2, 0
-_080EDC78: .4byte gPaletteFade
-_080EDC7C:
- bl sub_80F2620
- ldr r1, _080EDC8C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EDD8A
- .align 2, 0
-_080EDC8C: .4byte 0x02000000
-_080EDC90:
- bl sub_80F638C
- ldr r1, _080EDCBC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EDCA2:
- bl sub_80F63D0
- lsls r0, 24
- cmp r0, 0
- bne _080EDD82
- ldr r1, _080EDCBC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x2
- strh r0, [r1]
- b _080EDDAA
- .align 2, 0
-_080EDCBC: .4byte 0x02000000
-_080EDCC0:
- bl sub_8055870
- cmp r0, 0
- bne _080EDDAA
- ldr r1, _080EDCD8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- b _080EDDAA
- .align 2, 0
-_080EDCD8: .4byte 0x02000000
-_080EDCDC:
- bl sub_8055870
- cmp r0, 0
- bne _080EDDAA
- b _080EDD82
-_080EDCE6:
- movs r0, 0x1
- bl sub_80F0264
- ldr r1, _080EDD08 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EDCFA:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- bne _080EDDAA
- b _080EDD82
- .align 2, 0
-_080EDD08: .4byte 0x02000000
-_080EDD0C:
- movs r0, 0x2
- bl sub_80F2C80
- ldr r1, _080EDD30 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EDD20:
- movs r0, 0x2
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EDDAA
- b _080EDD82
- .align 2, 0
-_080EDD30: .4byte 0x02000000
-_080EDD34:
- movs r0, 0x1
- bl sub_80F3008
- ldr r1, _080EDD44 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EDD8A
- .align 2, 0
-_080EDD44: .4byte 0x02000000
-_080EDD48:
- bl sub_8055870
- cmp r0, 0
- bne _080EDDAA
- b _080EDD82
-_080EDD52:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080EDD78 @ =sub_80EBD18
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EDD8A
- .align 2, 0
-_080EDD78: .4byte sub_80EBD18
-_080EDD7C:
- movs r0, 0x4
- bl sub_80EED2C
-_080EDD82:
- ldr r1, _080EDD94 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080EDD8A:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EDDAA
- .align 2, 0
-_080EDD94: .4byte 0x02000000
-_080EDD98:
- ldr r0, _080EDDB4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EDDAA
- ldr r0, _080EDDB8 @ =sub_80EDDBC
- bl sub_80EBDBC
-_080EDDAA:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDDB4: .4byte gPaletteFade
-_080EDDB8: .4byte sub_80EDDBC
- thumb_func_end sub_80EDB88
-
- thumb_func_start sub_80EDDBC
-sub_80EDDBC: @ 80EDDBC
- push {r4,lr}
- ldr r0, _080EDDD8 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _080EDE48
- cmp r0, 0x1
- bgt _080EDDDC
- cmp r0, 0
- beq _080EDDE2
- b _080EDE6A
- .align 2, 0
-_080EDDD8: .4byte 0x02000000
-_080EDDDC:
- cmp r0, 0x2
- beq _080EDE60
- b _080EDE6A
-_080EDDE2:
- bl sub_80F5DD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080EDE14
- cmp r0, 0x2
- beq _080EDE20
- ldr r0, _080EDE0C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080EDE2C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EDE10 @ =sub_80EDEE4
- bl sub_80EBDBC
- b _080EDE6A
- .align 2, 0
-_080EDE0C: .4byte gMain
-_080EDE10: .4byte sub_80EDEE4
-_080EDE14:
- movs r0, 0x5
- bl PlaySE
- bl ShowMapNamePopUpWindow
- b _080EDE6A
-_080EDE20:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- adds r0, 0x1
- b _080EDE68
-_080EDE2C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080EDE6A
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EDE44 @ =sub_80EDE70
- bl sub_80EBDBC
- b _080EDE6A
- .align 2, 0
-_080EDE44: .4byte sub_80EDE70
-_080EDE48:
- bl sub_80F0718
- lsls r0, 24
- cmp r0, 0
- bne _080EDE6A
- bl ShowMapNamePopUpWindow
- bl sub_80F3264
- ldrh r0, [r4]
- adds r0, 0x1
- b _080EDE68
-_080EDE60:
- bl sub_8055870
- cmp r0, 0
- bne _080EDE6A
-_080EDE68:
- strh r0, [r4]
-_080EDE6A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80EDDBC
-
- thumb_func_start sub_80EDE70
-sub_80EDE70: @ 80EDE70
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080EDE8C @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r2, [r4]
- cmp r2, 0x1
- beq _080EDEAE
- cmp r2, 0x1
- bgt _080EDE90
- cmp r2, 0
- beq _080EDE96
- b _080EDED6
- .align 2, 0
-_080EDE8C: .4byte 0x02000000
-_080EDE90:
- cmp r2, 0x2
- beq _080EDED0
- b _080EDED6
-_080EDE96:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080EDEC4
-_080EDEAE:
- ldr r0, _080EDECC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EDED6
- bl sub_80F3130
- movs r0, 0x2
- bl sub_80F2D6C
-_080EDEC4:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EDED6
- .align 2, 0
-_080EDECC: .4byte gPaletteFade
-_080EDED0:
- ldr r0, _080EDEE0 @ =sub_80EC00C
- bl sub_80EBDBC
-_080EDED6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDEE0: .4byte sub_80EC00C
- thumb_func_end sub_80EDE70
-
- thumb_func_start sub_80EDEE4
-sub_80EDEE4: @ 80EDEE4
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080EDF04 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xA
- bls _080EDEFA
- b _080EE060
-_080EDEFA:
- lsls r0, 2
- ldr r1, _080EDF08 @ =_080EDF0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EDF04: .4byte 0x02000000
-_080EDF08: .4byte _080EDF0C
- .align 2, 0
-_080EDF0C:
- .4byte _080EDF38
- .4byte _080EDF50
- .4byte _080EDF80
- .4byte _080EDF98
- .4byte _080EDFB0
- .4byte _080EDFC8
- .4byte _080EDFE0
- .4byte _080EDFF8
- .4byte _080EE01C
- .4byte _080EE030
- .4byte _080EE050
-_080EDF38:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080EE03C
-_080EDF50:
- ldr r0, _080EDF78 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EDF5E
- b _080EE060
-_080EDF5E:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80F3130
- ldr r1, _080EDF7C @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE042
- .align 2, 0
-_080EDF78: .4byte gPaletteFade
-_080EDF7C: .4byte 0x02000000
-_080EDF80:
- bl sub_80F66E0
- bl sub_80EEE08
- ldr r1, _080EDF94 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE042
- .align 2, 0
-_080EDF94: .4byte 0x02000000
-_080EDF98:
- bl sub_80F1080
- lsls r0, 24
- cmp r0, 0
- bne _080EE060
- ldr r1, _080EDFAC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE042
- .align 2, 0
-_080EDFAC: .4byte 0x02000000
-_080EDFB0:
- movs r0, 0x5
- bl sub_80EEFBC
- bl sub_80F38B8
- ldr r1, _080EDFDC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EDFC8:
- bl sub_80F38EC
- lsls r0, 24
- cmp r0, 0
- bne _080EE060
- ldr r1, _080EDFDC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE042
- .align 2, 0
-_080EDFDC: .4byte 0x02000000
-_080EDFE0:
- bl sub_8055870
- cmp r0, 0
- bne _080EE060
- ldr r1, _080EDFF4 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE042
- .align 2, 0
-_080EDFF4: .4byte 0x02000000
-_080EDFF8:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080EE018 @ =sub_80EBD18
- bl SetVBlankCallback
- b _080EE03C
- .align 2, 0
-_080EE018: .4byte sub_80EBD18
-_080EE01C:
- movs r0, 0x3
- bl sub_80EED2C
- ldr r1, _080EE02C @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE042
- .align 2, 0
-_080EE02C: .4byte 0x02000000
-_080EE030:
- ldr r0, _080EE04C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE060
-_080EE03C:
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
-_080EE042:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EE060
- .align 2, 0
-_080EE04C: .4byte gPaletteFade
-_080EE050:
- bl sub_80F170C
- lsls r0, 24
- cmp r0, 0
- bne _080EE060
- ldr r0, _080EE068 @ =sub_80EE06C
- bl sub_80EBDBC
-_080EE060:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE068: .4byte sub_80EE06C
- thumb_func_end sub_80EDEE4
-
- thumb_func_start sub_80EE06C
-sub_80EE06C: @ 80EE06C
- push {r4,r5,lr}
- ldr r1, _080EE08C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x8
- bls _080EE080
- b _080EE288
-_080EE080:
- lsls r0, 2
- ldr r1, _080EE090 @ =_080EE094
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EE08C: .4byte 0x02000000
-_080EE090: .4byte _080EE094
- .align 2, 0
-_080EE094:
- .4byte _080EE0B8
- .4byte _080EE0CC
- .4byte _080EE180
- .4byte _080EE19C
- .4byte _080EE1B8
- .4byte _080EE1D0
- .4byte _080EE1F8
- .4byte _080EE250
- .4byte _080EE26C
-_080EE0B8:
- bl sub_80F15A8
- ldr r1, _080EE0C8 @ =0x02000000
- movs r5, 0xC1
- lsls r5, 2
- adds r1, r5
- b _080EE1C4
- .align 2, 0
-_080EE0C8: .4byte 0x02000000
-_080EE0CC:
- ldr r2, _080EE0FC @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- adds r3, r2, 0
- cmp r0, 0
- beq _080EE104
- ldr r1, _080EE100 @ =0x000087dc
- adds r0, r4, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _080EE104
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl sub_80F6A4C
- movs r5, 0xC1
- lsls r5, 2
- adds r1, r4, r5
- b _080EE1C4
- .align 2, 0
-_080EE0FC: .4byte gMain
-_080EE100: .4byte 0x000087dc
-_080EE104:
- ldrh r1, [r3, 0x30]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EE140
- ldr r1, _080EE138 @ =0x000087dc
- adds r0, r4, r1
- ldr r2, _080EE13C @ =0x00008774
- adds r1, r4, r2
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r2, r0
- bge _080EE140
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_80F6A4C
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080EE1C4
- .align 2, 0
-_080EE138: .4byte 0x000087dc
-_080EE13C: .4byte 0x00008774
-_080EE140:
- ldrh r2, [r3, 0x2E]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _080EE164
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xB
- bl sub_80EEFBC
- ldr r0, _080EE160 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- b _080EE262
- .align 2, 0
-_080EE160: .4byte 0x02000000
-_080EE164:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- bne _080EE16E
- b _080EE288
-_080EE16E:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EE17C @ =sub_80EE294
- bl sub_80EBDBC
- b _080EE288
- .align 2, 0
-_080EE17C: .4byte sub_80EE294
-_080EE180:
- bl sub_80F6AF0
- lsls r0, 24
- cmp r0, 0
- beq _080EE18C
- b _080EE288
-_080EE18C:
- ldr r1, _080EE198 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE1C4
- .align 2, 0
-_080EE198: .4byte 0x02000000
-_080EE19C:
- bl sub_8055870
- adds r1, r0, 0
- cmp r1, 0
- bne _080EE288
- ldr r0, _080EE1B4 @ =0x02000000
- movs r5, 0xC1
- lsls r5, 2
- adds r0, r5
- strh r1, [r0]
- b _080EE288
- .align 2, 0
-_080EE1B4: .4byte 0x02000000
-_080EE1B8:
- bl sub_80F3B00
- ldr r1, _080EE1CC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080EE1C4:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EE288
- .align 2, 0
-_080EE1CC: .4byte 0x02000000
-_080EE1D0:
- bl sub_80F3B58
- lsls r0, 24
- cmp r0, 0
- bne _080EE288
- bl sub_80F1494
- ldr r1, _080EE1F4 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- bl sub_80EED9C
- b _080EE288
- .align 2, 0
-_080EE1F4: .4byte 0x02000000
-_080EE1F8:
- bl sub_80F68E8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080EE224
- cmp r0, 0x1
- bne _080EE224
- movs r0, 0x5
- bl PlaySE
- bl sub_80F3B94
- ldr r0, _080EE220 @ =0x02000000
- movs r5, 0xC1
- lsls r5, 2
- adds r0, r5
- movs r1, 0x7
- strh r1, [r0]
- b _080EE288
- .align 2, 0
-_080EE220: .4byte 0x02000000
-_080EE224:
- ldr r0, _080EE248 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080EE288
- movs r0, 0x5
- bl PlaySE
- bl sub_80F3B94
- ldr r0, _080EE24C @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x8
- strh r1, [r0]
- b _080EE288
- .align 2, 0
-_080EE248: .4byte gMain
-_080EE24C: .4byte 0x02000000
-_080EE250:
- bl sub_80F3BD4
- lsls r0, 24
- cmp r0, 0
- bne _080EE288
- ldr r0, _080EE268 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r2
-_080EE262:
- movs r1, 0x4
- strh r1, [r0]
- b _080EE288
- .align 2, 0
-_080EE268: .4byte 0x02000000
-_080EE26C:
- bl sub_80F3BD4
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080EE288
- movs r0, 0x5
- bl sub_80EEFBC
- ldr r0, _080EE290 @ =0x02000000
- movs r5, 0xC1
- lsls r5, 2
- adds r0, r5
- strh r4, [r0]
-_080EE288:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE290: .4byte 0x02000000
- thumb_func_end sub_80EE06C
-
- thumb_func_start sub_80EE294
-sub_80EE294: @ 80EE294
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080EE2B4 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x8
- bls _080EE2AA
- b _080EE3C6
-_080EE2AA:
- lsls r0, 2
- ldr r1, _080EE2B8 @ =_080EE2BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EE2B4: .4byte 0x02000000
-_080EE2B8: .4byte _080EE2BC
- .align 2, 0
-_080EE2BC:
- .4byte _080EE2E0
- .4byte _080EE2FE
- .4byte _080EE324
- .4byte _080EE33C
- .4byte _080EE34C
- .4byte _080EE370
- .4byte _080EE37A
- .4byte _080EE39A
- .4byte _080EE3B4
-_080EE2E0:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EE3A8
-_080EE2FE:
- ldr r0, _080EE320 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE3C6
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80F3C2C
- bl sub_80EEE08
- b _080EE3A0
- .align 2, 0
-_080EE320: .4byte gPaletteFade
-_080EE324:
- bl sub_80F6134
- movs r0, 0x1
- bl sub_80F0264
- ldr r1, _080EE348 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EE33C:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- bne _080EE3C6
- b _080EE3A0
- .align 2, 0
-_080EE348: .4byte 0x02000000
-_080EE34C:
- movs r0, 0x4
- bl sub_80EEFBC
- movs r0, 0x1
- bl sub_80F3008
- ldr r0, _080EE368 @ =sub_80EBD18
- bl SetVBlankCallback
- ldr r1, _080EE36C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE3A8
- .align 2, 0
-_080EE368: .4byte sub_80EBD18
-_080EE36C: .4byte 0x02000000
-_080EE370:
- bl sub_8055870
- cmp r0, 0
- bne _080EE3C6
- b _080EE3A0
-_080EE37A:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EE3A8
-_080EE39A:
- movs r0, 0x4
- bl sub_80EED2C
-_080EE3A0:
- ldr r1, _080EE3B0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080EE3A8:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EE3C6
- .align 2, 0
-_080EE3B0: .4byte 0x02000000
-_080EE3B4:
- ldr r0, _080EE3D0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE3C6
- ldr r0, _080EE3D4 @ =sub_80EDDBC
- bl sub_80EBDBC
-_080EE3C6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE3D0: .4byte gPaletteFade
-_080EE3D4: .4byte sub_80EDDBC
- thumb_func_end sub_80EE294
-
- thumb_func_start sub_80EE3D8
-sub_80EE3D8: @ 80EE3D8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080EE3F8 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xD
- bls _080EE3EC
- b _080EE57A
-_080EE3EC:
- lsls r0, 2
- ldr r1, _080EE3FC @ =_080EE400
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EE3F8: .4byte 0x02000000
-_080EE3FC: .4byte _080EE400
- .align 2, 0
-_080EE400:
- .4byte _080EE438
- .4byte _080EE444
- .4byte _080EE458
- .4byte _080EE48C
- .4byte _080EE4B0
- .4byte _080EE4B6
- .4byte _080EE4CA
- .4byte _080EE4DC
- .4byte _080EE4F0
- .4byte _080EE504
- .4byte _080EE50C
- .4byte _080EE516
- .4byte _080EE54C
- .4byte _080EE568
-_080EE438:
- bl sub_80F1E84
- movs r0, 0
- bl sub_80F2D04
- b _080EE552
-_080EE444:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080EE450
- b _080EE57A
-_080EE450:
- movs r0, 0x9
- bl sub_80EEFBC
- b _080EE552
-_080EE458:
- bl sub_80EEF34
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080EE466
- b _080EE57A
-_080EE466:
- ldr r4, _080EE488 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080EE55A
- .align 2, 0
-_080EE488: .4byte 0x02000000
-_080EE48C:
- ldr r0, _080EE4AC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE57A
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80EF814
- bl sub_80EEE08
- b _080EE552
- .align 2, 0
-_080EE4AC: .4byte gPaletteFade
-_080EE4B0:
- bl sub_80F2620
- b _080EE552
-_080EE4B6:
- movs r0, 0x2
- bl sub_80F0264
- ldr r1, _080EE4D8 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EE4CA:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- bne _080EE57A
- b _080EE552
- .align 2, 0
-_080EE4D8: .4byte 0x02000000
-_080EE4DC:
- movs r0, 0x3
- bl sub_80F2C80
- ldr r1, _080EE500 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EE4F0:
- movs r0, 0x3
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EE57A
- b _080EE552
- .align 2, 0
-_080EE500: .4byte 0x02000000
-_080EE504:
- movs r0, 0x2
- bl sub_80F3008
- b _080EE552
-_080EE50C:
- bl sub_8055870
- cmp r0, 0
- bne _080EE57A
- b _080EE552
-_080EE516:
- bl sub_80F6F10
- ldr r4, _080EE544 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080EE548 @ =sub_80EBD68
- bl SetVBlankCallback
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080EE55A
- .align 2, 0
-_080EE544: .4byte 0x02000000
-_080EE548: .4byte sub_80EBD68
-_080EE54C:
- movs r0, 0x5
- bl sub_80EED2C
-_080EE552:
- ldr r1, _080EE564 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080EE55A:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EE57A
- .align 2, 0
-_080EE564: .4byte 0x02000000
-_080EE568:
- ldr r0, _080EE584 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE57A
- ldr r0, _080EE588 @ =sub_80EE58C
- bl sub_80EBDBC
-_080EE57A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE584: .4byte gPaletteFade
-_080EE588: .4byte sub_80EE58C
- thumb_func_end sub_80EE3D8
-
- thumb_func_start sub_80EE58C
-sub_80EE58C: @ 80EE58C
- push {r4,r5,lr}
- ldr r5, _080EE5A8 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _080EE624
- cmp r0, 0x1
- bgt _080EE5AC
- cmp r0, 0
- beq _080EE5B2
- b _080EE652
- .align 2, 0
-_080EE5A8: .4byte 0x02000000
-_080EE5AC:
- cmp r0, 0x2
- beq _080EE648
- b _080EE652
-_080EE5B2:
- bl sub_80F5DD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080EE5E4
- cmp r0, 0x2
- beq _080EE5FC
- ldr r0, _080EE5DC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080EE608
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EE5E0 @ =sub_80EE658
- bl sub_80EBDBC
- b _080EE652
- .align 2, 0
-_080EE5DC: .4byte gMain
-_080EE5E0: .4byte sub_80EE658
-_080EE5E4:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080EE5F8 @ =0x0000876e
- adds r0, r5, r1
- ldrb r0, [r0]
- bl sub_80F0FFC
- b _080EE652
- .align 2, 0
-_080EE5F8: .4byte 0x0000876e
-_080EE5FC:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- adds r0, 0x1
- b _080EE650
-_080EE608:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080EE652
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EE620 @ =sub_80EE8F4
- bl sub_80EBDBC
- b _080EE652
- .align 2, 0
-_080EE620: .4byte sub_80EE8F4
-_080EE624:
- bl sub_80F0718
- lsls r0, 24
- cmp r0, 0
- bne _080EE652
- ldr r1, _080EE644 @ =0x0000876e
- adds r0, r5, r1
- ldrb r0, [r0]
- bl sub_80F0FFC
- bl sub_80F3264
- ldrh r0, [r4]
- adds r0, 0x1
- b _080EE650
- .align 2, 0
-_080EE644: .4byte 0x0000876e
-_080EE648:
- bl sub_8055870
- cmp r0, 0
- bne _080EE652
-_080EE650:
- strh r0, [r4]
-_080EE652:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80EE58C
-
- thumb_func_start sub_80EE658
-sub_80EE658: @ 80EE658
- push {r4,r5,lr}
- ldr r1, _080EE678 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x11
- bls _080EE66C
- b _080EE8E8
-_080EE66C:
- lsls r0, 2
- ldr r1, _080EE67C @ =_080EE680
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EE678: .4byte 0x02000000
-_080EE67C: .4byte _080EE680
- .align 2, 0
-_080EE680:
- .4byte _080EE6C8
- .4byte _080EE6DA
- .4byte _080EE6F4
- .4byte _080EE708
- .4byte _080EE71C
- .4byte _080EE730
- .4byte _080EE758
- .4byte _080EE76A
- .4byte _080EE780
- .4byte _080EE820
- .4byte _080EE840
- .4byte _080EE854
- .4byte _080EE868
- .4byte _080EE86E
- .4byte _080EE880
- .4byte _080EE898
- .4byte _080EE8B4
- .4byte _080EE8D4
-_080EE6C8:
- movs r0, 0x1
- bl sub_80F3294
- movs r0, 0xA
- bl sub_80EEFBC
- bl sub_80F0B24
- b _080EE8BE
-_080EE6DA:
- bl sub_80F0B44
- lsls r0, 24
- cmp r0, 0
- beq _080EE6E6
- b _080EE8E8
-_080EE6E6:
- ldr r1, _080EE6F0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE8C6
- .align 2, 0
-_080EE6F0: .4byte 0x02000000
-_080EE6F4:
- bl sub_80F0F64
- ldr r1, _080EE704 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE8C6
- .align 2, 0
-_080EE704: .4byte 0x02000000
-_080EE708:
- bl sub_80F0FEC
- lsls r0, 24
- cmp r0, 0
- beq _080EE714
- b _080EE8E8
-_080EE714:
- movs r0, 0x1
- bl sub_80F6FB8
- b _080EE8BE
-_080EE71C:
- bl sub_80F6DB8
- ldr r1, _080EE72C @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE8C6
- .align 2, 0
-_080EE72C: .4byte 0x02000000
-_080EE730:
- ldr r4, _080EE750 @ =0x02008788
- adds r0, r4, 0
- subs r0, 0x1A
- ldrh r1, [r0]
- adds r0, r4, 0
- bl sub_80F700C
- adds r0, r4, 0
- bl sub_80F42C4
- ldr r1, _080EE754 @ =0xffff7b7c
- adds r4, r1
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EE8E8
- .align 2, 0
-_080EE750: .4byte 0x02008788
-_080EE754: .4byte 0xffff7b7c
-_080EE758:
- bl sub_80F0CD8
- ldr r1, _080EE77C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EE76A:
- bl sub_80F6E9C
- lsls r0, 24
- cmp r0, 0
- beq _080EE776
- b _080EE8E8
-_080EE776:
- bl sub_80F0D5C
- b _080EE8B8
- .align 2, 0
-_080EE77C: .4byte 0x02000000
-_080EE780:
- ldr r2, _080EE7B0 @ =gMain
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- adds r3, r2, 0
- cmp r0, 0
- beq _080EE7B8
- ldr r1, _080EE7B4 @ =0x000087dc
- adds r0, r4, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _080EE7B8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl sub_80F708C
- movs r5, 0xC1
- lsls r5, 2
- adds r1, r4, r5
- b _080EE7E8
- .align 2, 0
-_080EE7B0: .4byte gMain
-_080EE7B4: .4byte 0x000087dc
-_080EE7B8:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EE7F8
- ldr r1, _080EE7F0 @ =0x000087dc
- adds r0, r4, r1
- ldr r2, _080EE7F4 @ =0x00008774
- adds r1, r4, r2
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r2, r0
- bge _080EE7F8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_80F708C
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
-_080EE7E8:
- movs r0, 0x10
- strh r0, [r1]
- b _080EE8E8
- .align 2, 0
-_080EE7F0: .4byte 0x000087dc
-_080EE7F4: .4byte 0x00008774
-_080EE7F8:
- ldrh r1, [r3, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080EE8E8
- movs r0, 0x5
- bl PlaySE
- bl sub_80F4394
- bl sub_80F0EC0
- ldr r1, _080EE81C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE8C6
- .align 2, 0
-_080EE81C: .4byte 0x02000000
-_080EE820:
- bl sub_80F6ED4
- lsls r0, 24
- cmp r0, 0
- bne _080EE8E8
- bl sub_80F0EF4
- lsls r0, 24
- cmp r0, 0
- bne _080EE8E8
- movs r0, 0
- bl sub_80F6FB8
- bl sub_80F2FB0
- b _080EE8BE
-_080EE840:
- bl sub_80F6134
- ldr r1, _080EE850 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE8C6
- .align 2, 0
-_080EE850: .4byte 0x02000000
-_080EE854:
- bl sub_80F0FA0
- ldr r1, _080EE864 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE8C6
- .align 2, 0
-_080EE864: .4byte 0x02000000
-_080EE868:
- bl sub_80F0FEC
- b _080EE8B8
-_080EE86E:
- bl sub_80F0C28
- ldr r1, _080EE87C @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE8C6
- .align 2, 0
-_080EE87C: .4byte 0x02000000
-_080EE880:
- bl sub_80F0C48
- lsls r0, 24
- cmp r0, 0
- bne _080EE8E8
- ldr r1, _080EE894 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE8C6
- .align 2, 0
-_080EE894: .4byte 0x02000000
-_080EE898:
- movs r0, 0x9
- bl sub_80EEFBC
- movs r0, 0
- bl sub_80F3294
- ldr r0, _080EE8B0 @ =sub_80EE58C
- bl sub_80EBDBC
- bl sub_80EED9C
- b _080EE8E8
- .align 2, 0
-_080EE8B0: .4byte sub_80EE58C
-_080EE8B4:
- bl sub_80F70FC
-_080EE8B8:
- lsls r0, 24
- cmp r0, 0
- bne _080EE8E8
-_080EE8BE:
- ldr r1, _080EE8D0 @ =0x02000000
- movs r5, 0xC1
- lsls r5, 2
- adds r1, r5
-_080EE8C6:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EE8E8
- .align 2, 0
-_080EE8D0: .4byte 0x02000000
-_080EE8D4:
- bl sub_8055870
- cmp r0, 0
- bne _080EE8E8
- ldr r0, _080EE8F0 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x8
- strh r1, [r0]
-_080EE8E8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE8F0: .4byte 0x02000000
- thumb_func_end sub_80EE658
-
- thumb_func_start sub_80EE8F4
-sub_80EE8F4: @ 80EE8F4
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080EE910 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r2, [r4]
- cmp r2, 0x1
- beq _080EE932
- cmp r2, 0x1
- bgt _080EE914
- cmp r2, 0
- beq _080EE91A
- b _080EE95E
- .align 2, 0
-_080EE910: .4byte 0x02000000
-_080EE914:
- cmp r2, 0x2
- beq _080EE958
- b _080EE95E
-_080EE91A:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080EE94C
-_080EE932:
- ldr r0, _080EE954 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE95E
- bl sub_80F3130
- movs r0, 0x2
- bl sub_80F2D6C
- bl sub_80F6FFC
-_080EE94C:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EE95E
- .align 2, 0
-_080EE954: .4byte gPaletteFade
-_080EE958:
- ldr r0, _080EE968 @ =sub_80EC00C
- bl sub_80EBDBC
-_080EE95E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE968: .4byte sub_80EC00C
- thumb_func_end sub_80EE8F4
-
- thumb_func_start sub_80EE96C
-sub_80EE96C: @ 80EE96C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _080EE99C @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r5, r0, r1
- ldrh r4, [r5]
- cmp r4, 0
- bne _080EE9A0
- movs r0, 0x6F
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _080EE9B4
- .align 2, 0
-_080EE99C: .4byte 0x02000000
-_080EE9A0:
- ldr r0, _080EE9BC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE9B4
- bl sub_80F5BDC
- bl sub_805469C
-_080EE9B4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE9BC: .4byte gPaletteFade
- thumb_func_end sub_80EE96C
-
- thumb_func_start sub_80EE9C0
-sub_80EE9C0: @ 80EE9C0
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- bl sub_80F1E84
- ldr r1, _080EE9FC @ =0x02000000
- ldr r2, _080EEA00 @ =0x00006e14
- adds r0, r1, r2
- movs r2, 0
- strb r4, [r0]
- ldr r3, _080EEA04 @ =0x00006e15
- adds r0, r1, r3
- strb r5, [r0]
- adds r3, 0x1
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080EEA08 @ =0x00006e17
- adds r1, r0
- strb r6, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE9FC: .4byte 0x02000000
-_080EEA00: .4byte 0x00006e14
-_080EEA04: .4byte 0x00006e15
-_080EEA08: .4byte 0x00006e17
- thumb_func_end sub_80EE9C0
-
- thumb_func_start sub_80EEA0C
-sub_80EEA0C: @ 80EEA0C
- push {r4,lr}
- ldr r1, _080EEA28 @ =0x02000000
- ldr r2, _080EEA2C @ =0x00006e16
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x8
- bls _080EEA1E
- b _080EEBFA
-_080EEA1E:
- lsls r0, 2
- ldr r1, _080EEA30 @ =_080EEA34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EEA28: .4byte 0x02000000
-_080EEA2C: .4byte 0x00006e16
-_080EEA30: .4byte _080EEA34
- .align 2, 0
-_080EEA34:
- .4byte _080EEA58
- .4byte _080EEA98
- .4byte _080EEAAE
- .4byte _080EEAD4
- .4byte _080EEB3E
- .4byte _080EEB68
- .4byte _080EEB88
- .4byte _080EEBAC
- .4byte _080EEBE4
-_080EEA58:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080EEA64
- b _080EEC08
-_080EEA64:
- ldr r1, _080EEA7C @ =0x02000000
- ldr r4, _080EEA80 @ =0x00006e17
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0xC
- beq _080EEA88
- ldr r0, _080EEA84 @ =0x00006e16
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- b _080EEC08
- .align 2, 0
-_080EEA7C: .4byte 0x02000000
-_080EEA80: .4byte 0x00006e17
-_080EEA84: .4byte 0x00006e16
-_080EEA88:
- ldr r2, _080EEA94 @ =0x00006e16
- adds r1, r2
- movs r0, 0x3
- strb r0, [r1]
- b _080EEC08
- .align 2, 0
-_080EEA94: .4byte 0x00006e16
-_080EEA98:
- ldr r4, _080EEAC8 @ =0x02000000
- ldr r1, _080EEACC @ =0x00006e17
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80F2C80
- ldr r2, _080EEAD0 @ =0x00006e16
- adds r4, r2
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_080EEAAE:
- ldr r4, _080EEAC8 @ =0x02000000
- ldr r1, _080EEACC @ =0x00006e17
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- beq _080EEAC2
- b _080EEC08
-_080EEAC2:
- ldr r2, _080EEAD0 @ =0x00006e16
- adds r1, r4, r2
- b _080EEB76
- .align 2, 0
-_080EEAC8: .4byte 0x02000000
-_080EEACC: .4byte 0x00006e17
-_080EEAD0: .4byte 0x00006e16
-_080EEAD4:
- adds r2, r3, 0
- ldr r4, _080EEAF8 @ =0x00006e15
- adds r0, r2, r4
- ldrb r1, [r0]
- subs r4, 0x68
- adds r0, r2, r4
- strb r1, [r0]
- ldr r1, _080EEAFC @ =0x00006e14
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080EEB14
- cmp r0, 0x1
- bgt _080EEB00
- cmp r0, 0
- beq _080EEB06
- b _080EEB28
- .align 2, 0
-_080EEAF8: .4byte 0x00006e15
-_080EEAFC: .4byte 0x00006e14
-_080EEB00:
- cmp r0, 0x2
- beq _080EEB20
- b _080EEB28
-_080EEB06:
- ldr r4, _080EEB10 @ =0x00006dae
- adds r1, r2, r4
- movs r0, 0x5
- b _080EEB26
- .align 2, 0
-_080EEB10: .4byte 0x00006dae
-_080EEB14:
- ldr r0, _080EEB1C @ =0x00006dae
- adds r1, r2, r0
- movs r0, 0x3
- b _080EEB26
- .align 2, 0
-_080EEB1C: .4byte 0x00006dae
-_080EEB20:
- ldr r2, _080EEB58 @ =0x00006dae
- adds r1, r3, r2
- movs r0, 0x6
-_080EEB26:
- strb r0, [r1]
-_080EEB28:
- ldr r4, _080EEB5C @ =0x02000000
- ldr r1, _080EEB60 @ =0x00006e14
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80F1B8C
- ldr r2, _080EEB64 @ =0x00006e16
- adds r4, r2
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_080EEB3E:
- ldr r4, _080EEB5C @ =0x02000000
- ldr r1, _080EEB60 @ =0x00006e14
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- bne _080EEC08
- ldr r2, _080EEB64 @ =0x00006e16
- adds r1, r4, r2
- b _080EEB76
- .align 2, 0
-_080EEB58: .4byte 0x00006dae
-_080EEB5C: .4byte 0x02000000
-_080EEB60: .4byte 0x00006e14
-_080EEB64: .4byte 0x00006e16
-_080EEB68:
- bl sub_8055870
- cmp r0, 0
- bne _080EEC08
- ldr r1, _080EEB80 @ =0x02000000
- ldr r4, _080EEB84 @ =0x00006e16
- adds r1, r4
-_080EEB76:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080EEC08
- .align 2, 0
-_080EEB80: .4byte 0x02000000
-_080EEB84: .4byte 0x00006e16
-_080EEB88:
- bl sub_80F1DF0
- ldr r4, _080EEBA0 @ =0x02000000
- ldr r1, _080EEBA4 @ =0x00006e14
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80EF490
- ldr r2, _080EEBA8 @ =0x00006e16
- adds r4, r2
- b _080EEBCC
- .align 2, 0
-_080EEBA0: .4byte 0x02000000
-_080EEBA4: .4byte 0x00006e14
-_080EEBA8: .4byte 0x00006e16
-_080EEBAC:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080EEC08
- ldr r4, _080EEBD4 @ =0x02000000
- ldr r1, _080EEBD8 @ =0x00006e14
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _080EEBDC @ =0x00006dad
- adds r1, r4, r2
- ldrb r1, [r1]
- bl sub_80EF428
- ldr r0, _080EEBE0 @ =0x00006e16
- adds r4, r0
-_080EEBCC:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _080EEC08
- .align 2, 0
-_080EEBD4: .4byte 0x02000000
-_080EEBD8: .4byte 0x00006e14
-_080EEBDC: .4byte 0x00006dad
-_080EEBE0: .4byte 0x00006e16
-_080EEBE4:
- bl sub_80EF4F8
- lsls r0, 24
- cmp r0, 0
- bne _080EEC08
- ldr r1, _080EEC00 @ =0x02000000
- ldr r2, _080EEC04 @ =0x00006e16
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EEBFA:
- movs r0, 0
- b _080EEC0A
- .align 2, 0
-_080EEC00: .4byte 0x02000000
-_080EEC04: .4byte 0x00006e16
-_080EEC08:
- movs r0, 0x1
-_080EEC0A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EEA0C
-
- thumb_func_start sub_80EEC10
-sub_80EEC10: @ 80EEC10
- push {r4,lr}
- ldr r0, _080EEC48 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080EEC50
- ldr r1, _080EEC4C @ =0x02006dad
- adds r3, r1, 0x1
- adds r2, r1, 0x5
-_080EEC24:
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080EEC36
- ldrb r0, [r3]
- subs r0, 0x1
- strb r0, [r1]
-_080EEC36:
- movs r0, 0
- ldrsb r0, [r1, r0]
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EEC24
- movs r0, 0x1
- b _080EEC8A
- .align 2, 0
-_080EEC48: .4byte gMain
-_080EEC4C: .4byte 0x02006dad
-_080EEC50:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EEC88
- ldr r1, _080EEC84 @ =0x02006dad
- movs r4, 0
- movs r2, 0x1
- ldrsb r2, [r1, r2]
- adds r3, r1, 0x5
-_080EEC62:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, r2
- blt _080EEC72
- strb r4, [r1]
-_080EEC72:
- movs r0, 0
- ldrsb r0, [r1, r0]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EEC62
- movs r0, 0x1
- b _080EEC8A
- .align 2, 0
-_080EEC84: .4byte 0x02006dad
-_080EEC88:
- movs r0, 0
-_080EEC8A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EEC10
-
- thumb_func_start sub_80EEC90
-sub_80EEC90: @ 80EEC90
- push {r4,lr}
- ldr r0, _080EECC0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080EECD0
- ldr r2, _080EECC4 @ =0x02000000
- ldr r0, _080EECC8 @ =0x00006dad
- adds r1, r2, r0
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080EECF8
- ldr r3, _080EECCC @ =0x00006dae
- adds r0, r2, r3
- ldrb r0, [r0]
- subs r0, 0x1
- strb r0, [r1]
- b _080EECF8
- .align 2, 0
-_080EECC0: .4byte gMain
-_080EECC4: .4byte 0x02000000
-_080EECC8: .4byte 0x00006dad
-_080EECCC: .4byte 0x00006dae
-_080EECD0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EED04
- ldr r0, _080EECFC @ =0x02000000
- ldr r4, _080EED00 @ =0x00006dad
- adds r2, r0, r4
- ldrb r1, [r2]
- adds r1, 0x1
- strb r1, [r2]
- adds r4, 0x1
- adds r0, r4
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- blt _080EECF8
- strb r3, [r2]
-_080EECF8:
- movs r0, 0x1
- b _080EED06
- .align 2, 0
-_080EECFC: .4byte 0x02000000
-_080EED00: .4byte 0x00006dad
-_080EED04:
- movs r0, 0
-_080EED06:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EEC90
-
- thumb_func_start sub_80EED0C
-sub_80EED0C: @ 80EED0C
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- thumb_func_end sub_80EED0C
-
- thumb_func_start sub_80EED1C
-sub_80EED1C: @ 80EED1C
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x92
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- thumb_func_end sub_80EED1C
-
- thumb_func_start sub_80EED2C
-sub_80EED2C: @ 80EED2C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _080EED98
- lsls r0, 2
- ldr r1, _080EED40 @ =_080EED44
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EED40: .4byte _080EED44
- .align 2, 0
-_080EED44:
- .4byte _080EED5C
- .4byte _080EED66
- .4byte _080EED7E
- .4byte _080EED74
- .4byte _080EED74
- .4byte _080EED8C
-_080EED5C:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- b _080EED94
-_080EED66:
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080EED70 @ =0x00001741
- b _080EED94
- .align 2, 0
-_080EED70: .4byte 0x00001741
-_080EED74:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- b _080EED94
-_080EED7E:
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080EED88 @ =0x00007b40
- b _080EED94
- .align 2, 0
-_080EED88: .4byte 0x00007b40
-_080EED8C:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFD
- lsls r2, 6
-_080EED94:
- adds r0, r2, 0
- strh r0, [r1]
-_080EED98:
- pop {r0}
- bx r0
- thumb_func_end sub_80EED2C
-
- thumb_func_start sub_80EED9C
-sub_80EED9C: @ 80EED9C
- push {lr}
- ldr r2, _080EEDB8 @ =gUnknown_03000744
- ldr r0, _080EEDBC @ =0x02000000
- movs r1, 0xC0
- lsls r1, 2
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- ldr r1, _080EEDC0 @ =sub_80EEDC4
- str r1, [r0]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080EEDB8: .4byte gUnknown_03000744
-_080EEDBC: .4byte 0x02000000
-_080EEDC0: .4byte sub_80EEDC4
- thumb_func_end sub_80EED9C
-
- thumb_func_start sub_80EEDC4
-sub_80EEDC4: @ 80EEDC4
- push {lr}
- bl sub_8055870
- cmp r0, 0x1
- beq _080EEDDC
- ldr r0, _080EEDE0 @ =0x02000000
- movs r1, 0xC0
- lsls r1, 2
- adds r0, r1
- ldr r1, _080EEDE4 @ =gUnknown_03000744
- ldr r1, [r1]
- str r1, [r0]
-_080EEDDC:
- pop {r0}
- bx r0
- .align 2, 0
-_080EEDE0: .4byte 0x02000000
-_080EEDE4: .4byte gUnknown_03000744
- thumb_func_end sub_80EEDC4
-
- thumb_func_start sub_80EEDE8
-sub_80EEDE8: @ 80EEDE8
- ldr r0, _080EEE04 @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x8
- 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
-_080EEE04: .4byte REG_BG0HOFS
- thumb_func_end sub_80EEDE8
-
- thumb_func_start sub_80EEE08
-sub_80EEE08: @ 80EEE08
- ldr r0, _080EEE18 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EEE1C @ =0x0000d160
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080EEE18: .4byte gUnknown_083DFEC4
-_080EEE1C: .4byte 0x0000d160
- thumb_func_end sub_80EEE08
-
- thumb_func_start sub_80EEE20
-sub_80EEE20: @ 80EEE20
- push {lr}
- ldr r0, _080EEE48 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EEE4C @ =0x0000d160
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080EEE50 @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EEE42
-_080EEE38:
- bl sub_80EEE54
- lsls r0, 24
- cmp r0, 0
- bne _080EEE38
-_080EEE42:
- pop {r0}
- bx r0
- .align 2, 0
-_080EEE48: .4byte gUnknown_083DFEC4
-_080EEE4C: .4byte 0x0000d160
-_080EEE50: .4byte 0x00006dac
- thumb_func_end sub_80EEE20
-
- thumb_func_start sub_80EEE54
-sub_80EEE54: @ 80EEE54
- push {lr}
- ldr r1, _080EEE70 @ =gUnknown_083DFEC4
- ldr r0, [r1]
- ldr r2, _080EEE74 @ =0x0000d160
- adds r0, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _080EEF02
- lsls r0, 2
- ldr r1, _080EEE78 @ =_080EEE7C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EEE70: .4byte gUnknown_083DFEC4
-_080EEE74: .4byte 0x0000d160
-_080EEE78: .4byte _080EEE7C
- .align 2, 0
-_080EEE7C:
- .4byte _080EEE90
- .4byte _080EEEA4
- .4byte _080EEEB8
- .4byte _080EEEC8
- .4byte _080EEEDC
-_080EEE90:
- ldr r0, _080EEE9C @ =gPokenavHoennMapMisc_Gfx
- ldr r1, _080EEEA0 @ =0x0600c000
- bl LZ77UnCompVram
- b _080EEF18
- .align 2, 0
-_080EEE9C: .4byte gPokenavHoennMapMisc_Gfx
-_080EEEA0: .4byte 0x0600c000
-_080EEEA4:
- ldr r0, _080EEEB0 @ =gUnknown_08E99FB0
- ldr r1, _080EEEB4 @ =0x0600d800
- bl LZ77UnCompVram
- b _080EEF18
- .align 2, 0
-_080EEEB0: .4byte gUnknown_08E99FB0
-_080EEEB4: .4byte 0x0600d800
-_080EEEB8:
- ldr r0, _080EEEC4 @ =gPokenavHoennMap1_Pal
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- b _080EEF18
- .align 2, 0
-_080EEEC4: .4byte gPokenavHoennMap1_Pal
-_080EEEC8:
- movs r0, 0
- bl sub_80EF58C
- movs r0, 0x1
- bl sub_80EF58C
- movs r0, 0x2
- bl sub_80EF58C
- b _080EEF18
-_080EEEDC:
- ldr r2, [r2]
- movs r3, 0xC3
- lsls r3, 2
- adds r0, r2, r3
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080EEF08 @ =REG_BG1HOFS
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _080EEF0C @ =REG_BG1CNT
- ldr r3, _080EEF10 @ =0x00001b0c
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _080EEF14 @ =0x0000d160
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_080EEF02:
- movs r0, 0
- b _080EEF28
- .align 2, 0
-_080EEF08: .4byte REG_BG1HOFS
-_080EEF0C: .4byte REG_BG1CNT
-_080EEF10: .4byte 0x00001b0c
-_080EEF14: .4byte 0x0000d160
-_080EEF18:
- ldr r0, _080EEF2C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080EEF30 @ =0x0000d160
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
-_080EEF28:
- pop {r1}
- bx r1
- .align 2, 0
-_080EEF2C: .4byte gUnknown_083DFEC4
-_080EEF30: .4byte 0x0000d160
- thumb_func_end sub_80EEE54
-
- thumb_func_start sub_80EEF34
-sub_80EEF34: @ 80EEF34
- push {r4,lr}
- movs r3, 0x1
- ldr r0, _080EEF50 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- movs r1, 0xC3
- lsls r1, 2
- adds r2, r0, r1
- ldrh r1, [r2]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r0, 0x20
- bne _080EEF54
- movs r0, 0
- b _080EEF6E
- .align 2, 0
-_080EEF50: .4byte gUnknown_083DFEC4
-_080EEF54:
- adds r0, r1, 0x2
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- ble _080EEF66
- movs r0, 0x20
- strh r0, [r2]
- movs r3, 0
-_080EEF66:
- ldr r1, _080EEF74 @ =REG_BG1VOFS
- ldrh r0, [r2]
- strh r0, [r1]
- adds r0, r3, 0
-_080EEF6E:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EEF74: .4byte REG_BG1VOFS
- thumb_func_end sub_80EEF34
-
- thumb_func_start sub_80EEF78
-sub_80EEF78: @ 80EEF78
- push {r4,lr}
- movs r3, 0x1
- ldr r0, _080EEF94 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- movs r1, 0xC3
- lsls r1, 2
- adds r2, r0, r1
- ldrh r1, [r2]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r0, 0
- bne _080EEF98
- movs r0, 0
- b _080EEFB0
- .align 2, 0
-_080EEF94: .4byte gUnknown_083DFEC4
-_080EEF98:
- subs r0, r1, 0x2
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bgt _080EEFA8
- movs r0, 0
- strh r0, [r2]
- movs r3, 0
-_080EEFA8:
- ldr r1, _080EEFB8 @ =REG_BG1VOFS
- ldrh r0, [r2]
- strh r0, [r1]
- adds r0, r3, 0
-_080EEFB0:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EEFB8: .4byte REG_BG1VOFS
- thumb_func_end sub_80EEF78
-
- thumb_func_start sub_80EEFBC
-sub_80EEFBC: @ 80EEFBC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080EEFF4 @ =0x0600d800
- ldr r3, _080EEFF8 @ =gUnknown_08E9A100
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0x11
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0
- movs r2, 0x16
- bl sub_809D104
- cmp r4, 0xB
- bls _080EEFE8
- b _080EF234
-_080EEFE8:
- lsls r0, r4, 2
- ldr r1, _080EEFFC @ =_080EF000
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EEFF4: .4byte 0x0600d800
-_080EEFF8: .4byte gUnknown_08E9A100
-_080EEFFC: .4byte _080EF000
- .align 2, 0
-_080EF000:
- .4byte _080EF030
- .4byte _080EF234
- .4byte _080EF08C
- .4byte _080EF100
- .4byte _080EF13C
- .4byte _080EF1D4
- .4byte _080EF234
- .4byte _080EF178
- .4byte _080EF190
- .4byte _080EF1D4
- .4byte _080EF218
- .4byte _080EF06C
-_080EF030:
- ldr r6, _080EF064 @ =0x0600d800
- ldr r0, _080EF068 @ =gUnknown_08E9A100
- mov r8, r0
- movs r0, 0x11
- str r0, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r0, 0xA
- str r0, [sp, 0x8]
- movs r5, 0x2
- str r5, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0x16
- mov r3, r8
- bl sub_809D104
- str r4, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r5, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0xA
- b _080EF204
- .align 2, 0
-_080EF064: .4byte 0x0600d800
-_080EF068: .4byte gUnknown_08E9A100
-_080EF06C:
- ldr r0, _080EF084 @ =0x0600d800
- ldr r3, _080EF088 @ =gUnknown_08E9A100
- movs r1, 0
- str r1, [sp]
- movs r1, 0x6
- str r1, [sp, 0x4]
- movs r1, 0x7
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x8
- b _080EF0EE
- .align 2, 0
-_080EF084: .4byte 0x0600d800
-_080EF088: .4byte gUnknown_08E9A100
-_080EF08C:
- ldr r0, _080EF0C8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EF0CC @ =0x00006dac
- adds r0, r1
- ldrb r7, [r0]
- cmp r7, 0
- bne _080EF0D8
- ldr r5, _080EF0D0 @ =0x0600d800
- ldr r6, _080EF0D4 @ =gUnknown_08E9A100
- movs r0, 0xA
- str r0, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x16
- adds r3, r6, 0
- bl sub_809D104
- str r7, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0xA
- b _080EF1C2
- .align 2, 0
-_080EF0C8: .4byte gUnknown_083DFEC4
-_080EF0CC: .4byte 0x00006dac
-_080EF0D0: .4byte 0x0600d800
-_080EF0D4: .4byte gUnknown_08E9A100
-_080EF0D8:
- ldr r0, _080EF0F8 @ =0x0600d800
- ldr r3, _080EF0FC @ =gUnknown_08E9A100
- movs r1, 0
- str r1, [sp]
- movs r1, 0x6
- str r1, [sp, 0x4]
- movs r1, 0x7
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0xA
-_080EF0EE:
- movs r2, 0x16
- bl sub_809D104
- b _080EF234
- .align 2, 0
-_080EF0F8: .4byte 0x0600d800
-_080EF0FC: .4byte gUnknown_08E9A100
-_080EF100:
- ldr r6, _080EF134 @ =0x0600d800
- ldr r0, _080EF138 @ =gUnknown_08E9A100
- mov r8, r0
- movs r5, 0
- str r5, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- movs r0, 0xA
- str r0, [sp, 0x8]
- movs r4, 0x2
- str r4, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0x16
- mov r3, r8
- bl sub_809D104
- str r5, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0xA
- b _080EF204
- .align 2, 0
-_080EF134: .4byte 0x0600d800
-_080EF138: .4byte gUnknown_08E9A100
-_080EF13C:
- ldr r5, _080EF170 @ =0x0600d800
- ldr r6, _080EF174 @ =gUnknown_08E9A100
- movs r0, 0x14
- str r0, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r0, 0xA
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x16
- adds r3, r6, 0
- bl sub_809D104
- movs r0, 0
- str r0, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0xA
- b _080EF1C2
- .align 2, 0
-_080EF170: .4byte 0x0600d800
-_080EF174: .4byte gUnknown_08E9A100
-_080EF178:
- ldr r5, _080EF188 @ =0x0600d800
- ldr r6, _080EF18C @ =gUnknown_08E9A100
- movs r1, 0xA
- str r1, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- b _080EF1A0
- .align 2, 0
-_080EF188: .4byte 0x0600d800
-_080EF18C: .4byte gUnknown_08E9A100
-_080EF190:
- ldr r5, _080EF1CC @ =0x0600d800
- ldr r6, _080EF1D0 @ =gUnknown_08E9A100
- movs r0, 0x14
- str r0, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- movs r0, 0xA
- str r0, [sp, 0x8]
-_080EF1A0:
- movs r4, 0x2
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x16
- adds r3, r6, 0
- bl sub_809D104
- movs r0, 0
- str r0, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0x7
-_080EF1C2:
- movs r2, 0x16
- adds r3, r6, 0
- bl sub_809D104
- b _080EF234
- .align 2, 0
-_080EF1CC: .4byte 0x0600d800
-_080EF1D0: .4byte gUnknown_08E9A100
-_080EF1D4:
- ldr r6, _080EF210 @ =0x0600d800
- ldr r1, _080EF214 @ =gUnknown_08E9A100
- mov r8, r1
- movs r5, 0
- str r5, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r0, 0xA
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0x16
- mov r3, r8
- bl sub_809D104
- str r5, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0x8
-_080EF204:
- movs r2, 0x16
- mov r3, r8
- bl sub_809D104
- b _080EF234
- .align 2, 0
-_080EF210: .4byte 0x0600d800
-_080EF214: .4byte gUnknown_08E9A100
-_080EF218:
- ldr r0, _080EF240 @ =0x0600d800
- ldr r3, _080EF244 @ =gUnknown_08E9A100
- movs r1, 0
- str r1, [sp]
- movs r1, 0x6
- str r1, [sp, 0x4]
- movs r1, 0x7
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x8
- movs r2, 0x16
- bl sub_809D104
-_080EF234:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF240: .4byte 0x0600d800
-_080EF244: .4byte gUnknown_08E9A100
- thumb_func_end sub_80EEFBC
-
- thumb_func_start sub_80EF248
-sub_80EF248: @ 80EF248
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080EF278 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EF27C @ =0x0000d160
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080EF280 @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EF270
-_080EF264:
- adds r0, r4, 0
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- bne _080EF264
-_080EF270:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF278: .4byte gUnknown_083DFEC4
-_080EF27C: .4byte 0x0000d160
-_080EF280: .4byte 0x00006dac
- thumb_func_end sub_80EF248
-
- thumb_func_start sub_80EF284
-sub_80EF284: @ 80EF284
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080EF2A8 @ =gUnknown_083DFEC4
- ldr r0, [r1]
- ldr r3, _080EF2AC @ =0x0000d160
- adds r0, r3
- ldrh r0, [r0]
- adds r3, r1, 0
- cmp r0, 0xB
- bls _080EF29C
- b _080EF3F6
-_080EF29C:
- lsls r0, 2
- ldr r1, _080EF2B0 @ =_080EF2B4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EF2A8: .4byte gUnknown_083DFEC4
-_080EF2AC: .4byte 0x0000d160
-_080EF2B0: .4byte _080EF2B4
- .align 2, 0
-_080EF2B4:
- .4byte _080EF2E4
- .4byte _080EF2EA
- .4byte _080EF2F8
- .4byte _080EF304
- .4byte _080EF310
- .4byte _080EF330
- .4byte _080EF344
- .4byte _080EF368
- .4byte _080EF37C
- .4byte _080EF390
- .4byte _080EF3A4
- .4byte _080EF3CC
-_080EF2E4:
- bl sub_80EEDE8
- b _080EF40C
-_080EF2EA:
- ldr r0, _080EF2F4 @ =gWindowConfig_81E7224
- bl SetUpWindowConfig
- b _080EF40C
- .align 2, 0
-_080EF2F4: .4byte gWindowConfig_81E7224
-_080EF2F8:
- ldr r0, _080EF300 @ =gWindowConfig_81E7224
- bl MultistepInitMenuWindowBegin
- b _080EF40C
- .align 2, 0
-_080EF300: .4byte gWindowConfig_81E7224
-_080EF304:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _080EF30E
- b _080EF40C
-_080EF30E:
- b _080EF41A
-_080EF310:
- ldr r1, _080EF320 @ =gUnknown_083DFEEC
- ldr r2, _080EF324 @ =0x06005000
- ldr r0, _080EF328 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _080EF32C @ =0x80000050
- b _080EF350
- .align 2, 0
-_080EF320: .4byte gUnknown_083DFEEC
-_080EF324: .4byte 0x06005000
-_080EF328: .4byte 0x040000d4
-_080EF32C: .4byte 0x80000050
-_080EF330:
- ldr r0, _080EF33C @ =gUnknown_083DFF8C
- ldr r1, _080EF340 @ =0x0600f800
- bl LZ77UnCompVram
- b _080EF40C
- .align 2, 0
-_080EF33C: .4byte gUnknown_083DFF8C
-_080EF340: .4byte 0x0600f800
-_080EF344:
- ldr r1, _080EF358 @ =gUnknown_083E005C
- ldr r2, _080EF35C @ =0x06008000
- ldr r0, _080EF360 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _080EF364 @ =0x80000010
-_080EF350:
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080EF40C
- .align 2, 0
-_080EF358: .4byte gUnknown_083E005C
-_080EF35C: .4byte 0x06008000
-_080EF360: .4byte 0x040000d4
-_080EF364: .4byte 0x80000010
-_080EF368:
- ldr r0, _080EF374 @ =gUnknown_083E007C
- ldr r1, _080EF378 @ =0x0600e000
- bl LZ77UnCompVram
- b _080EF40C
- .align 2, 0
-_080EF374: .4byte gUnknown_083E007C
-_080EF378: .4byte 0x0600e000
-_080EF37C:
- ldr r0, _080EF388 @ =gPokenavOutlineTilemap
- ldr r1, _080EF38C @ =0x0600e800
- bl LZ77UnCompVram
- b _080EF40C
- .align 2, 0
-_080EF388: .4byte gPokenavOutlineTilemap
-_080EF38C: .4byte 0x0600e800
-_080EF390:
- ldr r0, _080EF39C @ =gPokenavOutlineTiles
- ldr r1, _080EF3A0 @ =0x06008020
- bl LZ77UnCompVram
- b _080EF40C
- .align 2, 0
-_080EF39C: .4byte gPokenavOutlineTiles
-_080EF3A0: .4byte 0x06008020
-_080EF3A4:
- adds r0, r2, 0
- bl sub_80EF54C
- ldr r0, _080EF3C4 @ =gUnknown_083DFECC
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080EF3C8 @ =gPokenavOutlinePalette
- movs r1, 0x40
- movs r2, 0x20
- bl LoadPalette
- bl sub_80EF7D4
- b _080EF40C
- .align 2, 0
-_080EF3C4: .4byte gUnknown_083DFECC
-_080EF3C8: .4byte gPokenavOutlinePalette
-_080EF3CC:
- ldr r1, _080EF3FC @ =REG_BG0CNT
- ldr r2, _080EF400 @ =0x00001f01
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080EF404 @ =0x00001d0a
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0xFF
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x42
- movs r0, 0
- strh r0, [r1]
- ldr r1, [r3]
- ldr r3, _080EF408 @ =0x0000d160
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EF3F6:
- movs r0, 0
- b _080EF41C
- .align 2, 0
-_080EF3FC: .4byte REG_BG0CNT
-_080EF400: .4byte 0x00001f01
-_080EF404: .4byte 0x00001d0a
-_080EF408: .4byte 0x0000d160
-_080EF40C:
- ldr r0, _080EF420 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080EF424 @ =0x0000d160
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EF41A:
- movs r0, 0x1
-_080EF41C:
- pop {r1}
- bx r1
- .align 2, 0
-_080EF420: .4byte gUnknown_083DFEC4
-_080EF424: .4byte 0x0000d160
- thumb_func_end sub_80EF284
-
- thumb_func_start sub_80EF428
-sub_80EF428: @ 80EF428
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 24
- lsrs r2, r1, 24
- movs r1, 0
- cmp r0, 0x1
- beq _080EF454
- cmp r0, 0x1
- bgt _080EF444
- cmp r0, 0
- beq _080EF44A
- b _080EF464
-_080EF444:
- cmp r3, 0x2
- beq _080EF45C
- b _080EF464
-_080EF44A:
- ldr r1, _080EF450 @ =gUnknown_083E31B0
- b _080EF45E
- .align 2, 0
-_080EF450: .4byte gUnknown_083E31B0
-_080EF454:
- ldr r1, _080EF458 @ =gUnknown_083E31CC
- b _080EF45E
- .align 2, 0
-_080EF458: .4byte gUnknown_083E31CC
-_080EF45C:
- ldr r1, _080EF488 @ =gUnknown_083E31D8
-_080EF45E:
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, [r0]
-_080EF464:
- ldr r0, _080EF48C @ =gUnknown_083DFEC8
- ldr r4, [r0]
- movs r0, 0x80
- lsls r0, 4
- adds r4, r0
- adds r0, r4, 0
- movs r2, 0xC0
- movs r3, 0x2
- bl sub_8072C74
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0x11
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF488: .4byte gUnknown_083E31D8
-_080EF48C: .4byte gUnknown_083DFEC8
- thumb_func_end sub_80EF428
-
- thumb_func_start sub_80EF490
-sub_80EF490: @ 80EF490
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bne _080EF49C
- movs r2, 0x1
-_080EF49C:
- ldr r0, _080EF4C4 @ =gUnknown_083DFEC4
- ldr r3, [r0]
- lsls r1, r2, 4
- subs r1, r2
- lsls r2, r1, 1
- ldr r4, _080EF4C8 @ =0x0000ce4e
- adds r0, r3, r4
- strh r2, [r0]
- ldr r2, _080EF4CC @ =0x0000ce4c
- adds r0, r3, r2
- ldrh r2, [r0]
- lsls r1, 17
- lsrs r0, r1, 16
- cmp r2, r0
- bcs _080EF4D0
- adds r4, 0x2
- adds r1, r3, r4
- movs r0, 0x2
- b _080EF4EA
- .align 2, 0
-_080EF4C4: .4byte gUnknown_083DFEC4
-_080EF4C8: .4byte 0x0000ce4e
-_080EF4CC: .4byte 0x0000ce4c
-_080EF4D0:
- cmp r2, r0
- bls _080EF4E4
- ldr r0, _080EF4DC @ =0x0000ce50
- adds r1, r3, r0
- ldr r0, _080EF4E0 @ =0x0000fffe
- b _080EF4EA
- .align 2, 0
-_080EF4DC: .4byte 0x0000ce50
-_080EF4E0: .4byte 0x0000fffe
-_080EF4E4:
- ldr r2, _080EF4F4 @ =0x0000ce50
- adds r1, r3, r2
- movs r0, 0
-_080EF4EA:
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF4F4: .4byte 0x0000ce50
- thumb_func_end sub_80EF490
-
- thumb_func_start sub_80EF4F8
-sub_80EF4F8: @ 80EF4F8
- push {r4,lr}
- ldr r0, _080EF530 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080EF534 @ =0x0000ce4c
- adds r2, r1, r0
- ldr r3, _080EF538 @ =0x0000ce4e
- adds r0, r1, r3
- ldrh r3, [r2]
- ldrh r0, [r0]
- cmp r3, r0
- beq _080EF544
- ldr r4, _080EF53C @ =0x0000ce50
- adds r0, r1, r4
- ldrh r0, [r0]
- adds r0, r3, r0
- strh r0, [r2]
- ldr r3, _080EF540 @ =0x0000ce52
- adds r0, r1, r3
- ldrh r1, [r2]
- lsls r1, 1
- adds r0, r1
- movs r1, 0x31
- movs r2, 0x4
- bl LoadPalette
- movs r0, 0x1
- b _080EF546
- .align 2, 0
-_080EF530: .4byte gUnknown_083DFEC4
-_080EF534: .4byte 0x0000ce4c
-_080EF538: .4byte 0x0000ce4e
-_080EF53C: .4byte 0x0000ce50
-_080EF540: .4byte 0x0000ce52
-_080EF544:
- movs r0, 0
-_080EF546:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EF4F8
-
- thumb_func_start sub_80EF54C
-sub_80EF54C: @ 80EF54C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bne _080EF558
- movs r2, 0x1
-_080EF558:
- ldr r0, _080EF580 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- lsls r1, r2, 4
- subs r1, r2
- lsls r1, 1
- ldr r3, _080EF584 @ =0x0000ce4c
- adds r2, r0, r3
- strh r1, [r2]
- ldrh r1, [r2]
- lsls r1, 1
- ldr r2, _080EF588 @ =0x0000ce52
- adds r1, r2
- adds r0, r1
- movs r1, 0x31
- movs r2, 0x4
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_080EF580: .4byte gUnknown_083DFEC4
-_080EF584: .4byte 0x0000ce4c
-_080EF588: .4byte 0x0000ce52
- thumb_func_end sub_80EF54C
-
- thumb_func_start sub_80EF58C
-sub_80EF58C: @ 80EF58C
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- beq _080EF5D0
- cmp r0, 0x1
- bgt _080EF5A4
- cmp r0, 0
- beq _080EF5AA
- b _080EF610
-_080EF5A4:
- cmp r1, 0x2
- beq _080EF5F8
- b _080EF610
-_080EF5AA:
- movs r1, 0
- ldr r0, _080EF5C8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r3, _080EF5CC @ =0x0000ce52
- adds r2, r0, r3
- movs r3, 0
-_080EF5B6:
- lsls r0, r1, 1
- adds r0, r2, r0
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3D
- bls _080EF5B6
- b _080EF610
- .align 2, 0
-_080EF5C8: .4byte gUnknown_083DFEC4
-_080EF5CC: .4byte 0x0000ce52
-_080EF5D0:
- ldr r0, _080EF5EC @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EF5F0 @ =0x0000ce52
- adds r2, r0, r1
- ldr r1, _080EF5F4 @ =gUnknown_083E003C
- adds r0, r1, 0x2
- adds r1, 0x6
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0x2
- bl sub_80EF624
- b _080EF610
- .align 2, 0
-_080EF5EC: .4byte gUnknown_083DFEC4
-_080EF5F0: .4byte 0x0000ce52
-_080EF5F4: .4byte gUnknown_083E003C
-_080EF5F8:
- ldr r0, _080EF618 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r3, _080EF61C @ =0x0000ce8e
- adds r2, r0, r3
- ldr r1, _080EF620 @ =gUnknown_083E003C
- adds r0, r1, 0x6
- adds r1, 0xE
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0x2
- bl sub_80EF624
-_080EF610:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080EF618: .4byte gUnknown_083DFEC4
-_080EF61C: .4byte 0x0000ce8e
-_080EF620: .4byte gUnknown_083E003C
- thumb_func_end sub_80EF58C
-
- thumb_func_start sub_80EF624
-sub_80EF624: @ 80EF624
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r4, [sp, 0x58]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x8]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- movs r0, 0
- str r0, [sp, 0x10]
- lsls r0, r3, 16
- ldr r1, [sp, 0x10]
- cmp r1, r3
- bcs _080EF72E
- subs r2, 0x1
- str r2, [sp, 0x20]
- str r0, [sp, 0x2C]
-_080EF654:
- ldr r2, [sp]
- ldrh r1, [r2]
- movs r0, 0x1F
- ands r0, r1
- lsls r7, r0, 8
- lsls r1, 16
- lsrs r0, r1, 21
- movs r2, 0x1F
- ands r0, r2
- lsls r6, r0, 8
- lsrs r1, 26
- ands r1, r2
- lsls r5, r1, 8
- ldr r0, [sp, 0x4]
- ldrh r1, [r0]
- movs r0, 0x1F
- ands r0, r1
- lsls r0, 8
- str r0, [sp, 0x14]
- lsls r1, 16
- lsrs r0, r1, 21
- ands r0, r2
- lsls r0, 8
- str r0, [sp, 0x18]
- lsrs r1, 26
- ands r1, r2
- lsls r1, 8
- str r1, [sp, 0x1C]
- ldr r1, [sp, 0x14]
- subs r0, r1, r7
- ldr r1, [sp, 0x8]
- bl __divsi3
- mov r10, r0
- ldr r2, [sp, 0x18]
- subs r0, r2, r6
- ldr r1, [sp, 0x8]
- bl __divsi3
- mov r9, r0
- ldr r1, [sp, 0x1C]
- subs r0, r1, r5
- ldr r1, [sp, 0x8]
- bl __divsi3
- mov r8, r0
- adds r3, r4, 0
- movs r4, 0
- ldr r2, [sp]
- adds r2, 0x2
- str r2, [sp, 0x30]
- ldr r0, [sp, 0x4]
- adds r0, 0x2
- str r0, [sp, 0x34]
- adds r1, r3, 0x2
- str r1, [sp, 0x24]
- ldr r2, [sp, 0x10]
- adds r2, 0x1
- str r2, [sp, 0x28]
- ldr r0, [sp, 0x20]
- cmp r4, r0
- bge _080EF700
- ldr r1, [sp, 0xC]
- lsls r1, 1
- mov r12, r1
-_080EF6D6:
- lsls r0, r7, 8
- lsrs r2, r0, 16
- lsls r0, r6, 8
- lsrs r1, r0, 16
- lsls r0, r5, 8
- lsrs r0, 16
- lsls r0, 10
- lsls r1, 5
- orrs r0, r1
- orrs r2, r0
- strh r2, [r3]
- add r3, r12
- add r7, r10
- add r6, r9
- add r5, r8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r2, [sp, 0x20]
- cmp r4, r2
- blt _080EF6D6
-_080EF700:
- ldr r4, [sp, 0x14]
- lsrs r2, r4, 8
- ldr r1, [sp, 0x1C]
- lsls r0, r1, 2
- ldr r4, [sp, 0x18]
- lsrs r1, r4, 3
- orrs r0, r1
- orrs r2, r0
- strh r2, [r3]
- ldr r0, [sp, 0x30]
- str r0, [sp]
- ldr r1, [sp, 0x34]
- str r1, [sp, 0x4]
- ldr r4, [sp, 0x24]
- ldr r2, [sp, 0x28]
- lsls r0, r2, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- ldr r1, [sp, 0x2C]
- lsrs r0, r1, 16
- ldr r2, [sp, 0x10]
- cmp r2, r0
- bcc _080EF654
-_080EF72E:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EF624
-
- thumb_func_start sub_80EF740
-sub_80EF740: @ 80EF740
- push {lr}
- ldr r0, _080EF770 @ =gUnknown_083DFEC4
- ldr r3, [r0]
- ldr r0, _080EF774 @ =0x00006da0
- adds r2, r3, r0
- ldrh r0, [r2]
- adds r0, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r2]
- cmp r0, 0
- beq _080EF762
- ldr r2, _080EF778 @ =0x00006da2
- adds r1, r3, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EF762:
- ldr r0, _080EF77C @ =REG_BG3HOFS
- ldr r2, _080EF778 @ =0x00006da2
- adds r1, r3, r2
- ldrh r1, [r1]
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080EF770: .4byte gUnknown_083DFEC4
-_080EF774: .4byte 0x00006da0
-_080EF778: .4byte 0x00006da2
-_080EF77C: .4byte REG_BG3HOFS
- thumb_func_end sub_80EF740
-
- thumb_func_start sub_80EF780
-sub_80EF780: @ 80EF780
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080EF7B0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080EF7AA
- ldr r0, _080EF7B4 @ =gUnknown_083DFEC4
- ldr r3, [r0]
- ldr r0, _080EF7B8 @ =0x00006da2
- adds r2, r3, r0
- ldrh r0, [r2]
- movs r1, 0x7
- ands r1, r0
- cmp r1, 0
- beq _080EF7BC
-_080EF7AA:
- bl sub_80EF740
- b _080EF7C8
- .align 2, 0
-_080EF7B0: .4byte gTasks
-_080EF7B4: .4byte gUnknown_083DFEC4
-_080EF7B8: .4byte 0x00006da2
-_080EF7BC:
- strh r1, [r2]
- ldr r2, _080EF7CC @ =0x00006da0
- adds r0, r3, r2
- strh r1, [r0]
- ldr r0, _080EF7D0 @ =REG_BG3HOFS
- strh r1, [r0]
-_080EF7C8:
- pop {r0}
- bx r0
- .align 2, 0
-_080EF7CC: .4byte 0x00006da0
-_080EF7D0: .4byte REG_BG3HOFS
- thumb_func_end sub_80EF780
-
- thumb_func_start sub_80EF7D4
-sub_80EF7D4: @ 80EF7D4
- push {r4,lr}
- ldr r0, _080EF800 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080EF804 @ =0x00006da2
- adds r0, r4, r1
- movs r1, 0
- strh r1, [r0]
- ldr r2, _080EF808 @ =0x00006da0
- adds r0, r4, r2
- strh r1, [r0]
- ldr r0, _080EF80C @ =sub_80EF780
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080EF810 @ =0x00006da4
- adds r4, r1
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF800: .4byte gUnknown_083DFEC4
-_080EF804: .4byte 0x00006da2
-_080EF808: .4byte 0x00006da0
-_080EF80C: .4byte sub_80EF780
-_080EF810: .4byte 0x00006da4
- thumb_func_end sub_80EF7D4
-
- thumb_func_start sub_80EF814
-sub_80EF814: @ 80EF814
- push {lr}
- ldr r0, _080EF834 @ =sub_80EF780
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _080EF830
- ldr r0, _080EF838 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EF83C @ =0x00006da4
- adds r0, r1
- ldrb r0, [r0]
- bl DestroyTask
-_080EF830:
- pop {r0}
- bx r0
- .align 2, 0
-_080EF834: .4byte sub_80EF780
-_080EF838: .4byte gUnknown_083DFEC4
-_080EF83C: .4byte 0x00006da4
- thumb_func_end sub_80EF814
-
- thumb_func_start sub_80EF840
-sub_80EF840: @ 80EF840
- push {lr}
- ldr r0, _080EF868 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EF86C @ =0x0000d160
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080EF870 @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EF862
-_080EF858:
- bl sub_80EF874
- lsls r0, 24
- cmp r0, 0
- bne _080EF858
-_080EF862:
- pop {r0}
- bx r0
- .align 2, 0
-_080EF868: .4byte gUnknown_083DFEC4
-_080EF86C: .4byte 0x0000d160
-_080EF870: .4byte 0x00006dac
- thumb_func_end sub_80EF840
-
- thumb_func_start sub_80EF874
-sub_80EF874: @ 80EF874
- push {lr}
- ldr r0, _080EF890 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EF894 @ =0x0000d160
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xB
- bls _080EF886
- b _080EF9D8
-_080EF886:
- lsls r0, 2
- ldr r1, _080EF898 @ =_080EF89C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EF890: .4byte gUnknown_083DFEC4
-_080EF894: .4byte 0x0000d160
-_080EF898: .4byte _080EF89C
- .align 2, 0
-_080EF89C:
- .4byte _080EF8CC
- .4byte _080EF8D2
- .4byte _080EF8E0
- .4byte _080EF8EC
- .4byte _080EF8F6
- .4byte _080EF8FC
- .4byte _080EF920
- .4byte _080EF92C
- .4byte _080EF940
- .4byte _080EF954
- .4byte _080EF960
- .4byte _080EF972
-_080EF8CC:
- bl sub_80EEDE8
- b _080EF9DC
-_080EF8D2:
- ldr r0, _080EF8DC @ =gWindowConfig_81E7224
- bl SetUpWindowConfig
- b _080EF9DC
- .align 2, 0
-_080EF8DC: .4byte gWindowConfig_81E7224
-_080EF8E0:
- ldr r0, _080EF8E8 @ =gWindowConfig_81E7224
- bl MultistepInitMenuWindowBegin
- b _080EF9DC
- .align 2, 0
-_080EF8E8: .4byte gWindowConfig_81E7224
-_080EF8EC:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _080EF9DC
- b _080EF9EA
-_080EF8F6:
- bl MenuZeroFillScreen
- b _080EF9DC
-_080EF8FC:
- ldr r0, _080EF914 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080EF918 @ =0x00006e18
- adds r0, r2
- ldr r1, _080EF91C @ =gSaveBlock2
- ldrb r1, [r1, 0x15]
- lsrs r1, 3
- movs r2, 0x1
- ands r1, r2
- bl sub_80FA904
- b _080EF9DC
- .align 2, 0
-_080EF914: .4byte gUnknown_083DFEC4
-_080EF918: .4byte 0x00006e18
-_080EF91C: .4byte gSaveBlock2
-_080EF920:
- bl sub_80FA940
- lsls r0, 24
- cmp r0, 0
- beq _080EF9DC
- b _080EF9EA
-_080EF92C:
- ldr r0, _080EF938 @ =gPokenavHoennMapSquares_Gfx
- ldr r1, _080EF93C @ =0x06005000
- bl LZ77UnCompVram
- b _080EF9DC
- .align 2, 0
-_080EF938: .4byte gPokenavHoennMapSquares_Gfx
-_080EF93C: .4byte 0x06005000
-_080EF940:
- ldr r0, _080EF950 @ =gPokenavHoennMapSquares_Pal
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- bl sub_80EFC3C
- b _080EF9DC
- .align 2, 0
-_080EF950: .4byte gPokenavHoennMapSquares_Pal
-_080EF954:
- bl sub_80EFC64
- lsls r0, 24
- cmp r0, 0
- beq _080EF9DC
- b _080EF9EA
-_080EF960:
- movs r0, 0xD
- movs r1, 0x3
- movs r2, 0x1D
- movs r3, 0x11
- bl MenuDrawTextWindow
- bl sub_80EF9F8
- b _080EF9DC
-_080EF972:
- ldr r0, _080EF990 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080EF994 @ =0x00006e90
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EF9A0
- ldr r2, _080EF998 @ =0x00007698
- adds r0, r1, r2
- movs r1, 0xA0
- strh r1, [r0]
- ldr r0, _080EF99C @ =REG_BG0VOFS
- strh r1, [r0]
- b _080EF9B0
- .align 2, 0
-_080EF990: .4byte gUnknown_083DFEC4
-_080EF994: .4byte 0x00006e90
-_080EF998: .4byte 0x00007698
-_080EF99C: .4byte REG_BG0VOFS
-_080EF9A0:
- ldr r0, _080EF9C8 @ =0x00007698
- adds r1, r0
- movs r2, 0
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r1]
- ldr r0, _080EF9CC @ =REG_BG0VOFS
- strh r2, [r0]
-_080EF9B0:
- ldr r2, _080EF9D0 @ =REG_BG0CNT
- ldrh r0, [r2]
- strh r0, [r2]
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080EF9D4 @ =REG_BLDCNT
- movs r0, 0
- strh r0, [r1]
- b _080EF9DC
- .align 2, 0
-_080EF9C8: .4byte 0x00007698
-_080EF9CC: .4byte REG_BG0VOFS
-_080EF9D0: .4byte REG_BG0CNT
-_080EF9D4: .4byte REG_BLDCNT
-_080EF9D8:
- movs r0, 0
- b _080EF9EC
-_080EF9DC:
- ldr r0, _080EF9F0 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080EF9F4 @ =0x0000d160
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EF9EA:
- movs r0, 0x1
-_080EF9EC:
- pop {r1}
- bx r1
- .align 2, 0
-_080EF9F0: .4byte gUnknown_083DFEC4
-_080EF9F4: .4byte 0x0000d160
- thumb_func_end sub_80EF874
-
- thumb_func_start sub_80EF9F8
-sub_80EF9F8: @ 80EF9F8
- push {r4-r6,lr}
- sub sp, 0x14
- movs r5, 0x4
- ldr r0, _080EFA18 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EFA1C @ =0x00006e2e
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bls _080EFA0E
- b _080EFB6A
-_080EFA0E:
- lsls r0, 2
- ldr r1, _080EFA20 @ =_080EFA24
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EFA18: .4byte gUnknown_083DFEC4
-_080EFA1C: .4byte 0x00006e2e
-_080EFA20: .4byte _080EFA24
- .align 2, 0
-_080EFA24:
- .4byte _080EFB6A
- .4byte _080EFA38
- .4byte _080EFAC0
- .4byte _080EFB4C
- .4byte _080EFA38
-_080EFA38:
- ldr r0, _080EFA64 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080EFA68 @ =0x00006e18
- adds r0, r2
- lsls r2, r5, 19
- lsrs r2, 16
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x70
- movs r3, 0x78
- bl sub_8072A18
- adds r0, r5, 0x2
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080EFA6C @ =gLinkOpen
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080EFA70
- bl sub_80F1A80
- b _080EFB82
- .align 2, 0
-_080EFA64: .4byte gUnknown_083DFEC4
-_080EFA68: .4byte 0x00006e18
-_080EFA6C: .4byte gLinkOpen
-_080EFA70:
- movs r4, 0
- b _080EFA92
-_080EFA74:
- lsls r2, r5, 19
- lsrs r2, 16
- movs r0, 0x1
- str r0, [sp]
- adds r0, r1, 0
- movs r1, 0x70
- movs r3, 0x78
- bl sub_8072A18
- adds r0, r5, 0x2
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080EFA92:
- cmp r4, 0x3
- bhi _080EFB6A
- ldr r0, _080EFAB8 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080EFABC @ =0x00006e2c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x3
- adds r1, r2
- ldrb r1, [r1]
- lsls r2, r4, 24
- lsrs r2, 24
- bl GetLandmarkName
- adds r1, r0, 0
- cmp r1, 0
- bne _080EFA74
- b _080EFB6A
- .align 2, 0
-_080EFAB8: .4byte gUnknown_083DFEC4
-_080EFABC: .4byte 0x00006e2c
-_080EFAC0:
- ldr r0, _080EFB38 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080EFB3C @ =0x00006e18
- adds r0, r4, r1
- lsls r2, r5, 19
- lsrs r2, 16
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x70
- movs r3, 0x78
- bl sub_8072A18
- adds r0, r5, 0x2
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r2, _080EFB40 @ =0x00006e2c
- adds r0, r4, r2
- ldrh r1, [r0]
- adds r2, 0x3
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 2
- lsls r1, 3
- adds r0, r1
- ldr r1, _080EFB44 @ =0x0000cdcc
- adds r4, r1
- adds r6, r4, r0
- ldr r0, [r6]
- cmp r0, 0
- beq _080EFB6A
- lsls r4, r5, 24
- lsrs r4, 24
- movs r0, 0xE
- adds r1, r4, 0
- movs r2, 0xF
- movs r3, 0xF
- bl MenuFillWindowRectWithBlankTile
- movs r0, 0x1A
- adds r1, r4, 0
- movs r2, 0x1C
- movs r3, 0xF
- bl MenuFillWindowRectWithBlankTile
- ldr r0, _080EFB48 @ =0x0600f800
- ldr r3, [r6]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0xA
- str r1, [sp, 0x8]
- str r1, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r1, 0x10
- movs r2, 0x6
- bl sub_8095C8C
- adds r0, r5, 0
- adds r0, 0xB
- b _080EFB66
- .align 2, 0
-_080EFB38: .4byte gUnknown_083DFEC4
-_080EFB3C: .4byte 0x00006e18
-_080EFB40: .4byte 0x00006e2c
-_080EFB44: .4byte 0x0000cdcc
-_080EFB48: .4byte 0x0600f800
-_080EFB4C:
- ldr r0, _080EFB98 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080EFB9C @ =0x00006e18
- adds r0, r2
- lsls r2, r5, 19
- lsrs r2, 16
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x70
- movs r3, 0x78
- bl sub_8072A18
- adds r0, r5, 0x2
-_080EFB66:
- lsls r0, 16
- lsrs r5, r0, 16
-_080EFB6A:
- movs r0, 0
- cmp r0, 0
- bne _080EFB82
- cmp r5, 0xF
- bhi _080EFB82
- lsls r1, r5, 24
- lsrs r1, 24
- movs r0, 0xE
- movs r2, 0x1C
- movs r3, 0xF
- bl MenuFillWindowRectWithBlankTile
-_080EFB82:
- ldr r0, _080EFB98 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EFBA0 @ =0x00006e2e
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080EFBA4
- bl sub_80EFD74
- b _080EFBA8
- .align 2, 0
-_080EFB98: .4byte gUnknown_083DFEC4
-_080EFB9C: .4byte 0x00006e18
-_080EFBA0: .4byte 0x00006e2e
-_080EFBA4:
- bl sub_80EFDA0
-_080EFBA8:
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80EF9F8
-
- thumb_func_start sub_80EFBB0
-sub_80EFBB0: @ 80EFBB0
- push {lr}
- ldr r0, _080EFBC8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EFBCC @ =0x00006e90
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EFBD0
- movs r0, 0x8
- bl sub_80EEFBC
- b _080EFBD6
- .align 2, 0
-_080EFBC8: .4byte gUnknown_083DFEC4
-_080EFBCC: .4byte 0x00006e90
-_080EFBD0:
- movs r0, 0x7
- bl sub_80EEFBC
-_080EFBD6:
- pop {r0}
- bx r0
- thumb_func_end sub_80EFBB0
-
- thumb_func_start sub_80EFBDC
-sub_80EFBDC: @ 80EFBDC
- push {r4,lr}
- lsls r0, 24
- movs r4, 0x1
- ldr r2, _080EFBFC @ =gUnknown_083DFEC4
- ldr r1, [r2]
- ldr r3, _080EFC00 @ =0x00007698
- adds r1, r3
- ldrh r3, [r1]
- cmp r0, 0
- beq _080EFC08
- cmp r3, 0xA8
- bls _080EFC04
- adds r0, r3, 0
- subs r0, 0x8
- b _080EFC10
- .align 2, 0
-_080EFBFC: .4byte gUnknown_083DFEC4
-_080EFC00: .4byte 0x00007698
-_080EFC04:
- movs r3, 0xA0
- b _080EFC1A
-_080EFC08:
- cmp r3, 0xF7
- bhi _080EFC16
- adds r0, r3, 0
- adds r0, 0x8
-_080EFC10:
- lsls r0, 16
- lsrs r3, r0, 16
- b _080EFC1C
-_080EFC16:
- movs r3, 0x80
- lsls r3, 1
-_080EFC1A:
- movs r4, 0
-_080EFC1C:
- ldr r0, [r2]
- ldr r1, _080EFC34 @ =0x00007698
- adds r0, r1
- strh r3, [r0]
- ldr r1, _080EFC38 @ =REG_BG0VOFS
- movs r0, 0xFF
- ands r3, r0
- strh r3, [r1]
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EFC34: .4byte 0x00007698
-_080EFC38: .4byte REG_BG0VOFS
- thumb_func_end sub_80EFBDC
-
- thumb_func_start sub_80EFC3C
-sub_80EFC3C: @ 80EFC3C
- push {lr}
- ldr r0, _080EFC58 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080EFC5C @ =0x0000bc9a
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r1, _080EFC60 @ =0x0000bc9b
- adds r0, r1
- strb r2, [r0]
- bl sub_80EFD3C
- pop {r0}
- bx r0
- .align 2, 0
-_080EFC58: .4byte gUnknown_083DFEC4
-_080EFC5C: .4byte 0x0000bc9a
-_080EFC60: .4byte 0x0000bc9b
- thumb_func_end sub_80EFC3C
-
- thumb_func_start sub_80EFC64
-sub_80EFC64: @ 80EFC64
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- ldr r4, _080EFCD0 @ =gUnknown_083DFEC4
- ldr r2, [r4]
- ldr r0, _080EFCD4 @ =0x0000bc9a
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0xF
- bhi _080EFD2C
- ldrb r1, [r1]
- mov r8, r1
- ldr r1, _080EFCD8 @ =0x0000bc9b
- adds r0, r2, r1
- ldrb r7, [r0]
- movs r2, 0
- ldr r0, _080EFCDC @ =gPokenavCityMaps
- mov r9, r0
- adds r3, r4, 0
-_080EFC8E:
- lsls r0, r2, 2
- mov r4, r8
- lsls r1, r4, 3
- adds r6, r0, r1
- mov r1, r9
- adds r0, r6, r1
- ldr r1, [r0]
- cmp r1, 0
- beq _080EFCE8
- movs r0, 0xC8
- adds r5, r7, 0
- muls r5, r0
- ldr r4, _080EFCE0 @ =0x0000bc9c
- adds r5, r4
- ldr r4, [r3]
- adds r5, r4, r5
- adds r0, r1, 0
- adds r1, r5, 0
- str r2, [sp]
- str r3, [sp, 0x4]
- bl LZ77UnCompVram
- ldr r0, _080EFCE4 @ =0x0000cdcc
- adds r4, r0
- adds r4, r6
- str r5, [r4]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r2, [sp]
- ldr r3, [sp, 0x4]
- b _080EFCF2
- .align 2, 0
-_080EFCD0: .4byte gUnknown_083DFEC4
-_080EFCD4: .4byte 0x0000bc9a
-_080EFCD8: .4byte 0x0000bc9b
-_080EFCDC: .4byte gPokenavCityMaps
-_080EFCE0: .4byte 0x0000bc9c
-_080EFCE4: .4byte 0x0000cdcc
-_080EFCE8:
- ldr r0, [r3]
- ldr r4, _080EFD1C @ =0x0000cdcc
- adds r0, r4
- adds r0, r6
- str r1, [r0]
-_080EFCF2:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _080EFC8E
- ldr r0, _080EFD20 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r0, _080EFD24 @ =0x0000bc9a
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- bhi _080EFD2C
- ldr r1, _080EFD28 @ =0x0000bc9b
- adds r0, r2, r1
- strb r7, [r0]
- movs r0, 0x1
- b _080EFD2E
- .align 2, 0
-_080EFD1C: .4byte 0x0000cdcc
-_080EFD20: .4byte gUnknown_083DFEC4
-_080EFD24: .4byte 0x0000bc9a
-_080EFD28: .4byte 0x0000bc9b
-_080EFD2C:
- movs r0, 0
-_080EFD2E:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80EFC64
-
- thumb_func_start sub_80EFD3C
-sub_80EFD3C: @ 80EFD3C
- ldr r0, _080EFD60 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080EFD64 @ =0x0000769e
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r0, _080EFD68 @ =0x0000769c
- adds r3, r1, r0
- movs r0, 0x2F
- strb r0, [r3]
- ldr r3, _080EFD6C @ =0x0000769d
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080EFD70 @ =0x0000769a
- adds r1, r0
- strh r2, [r1]
- bx lr
- .align 2, 0
-_080EFD60: .4byte gUnknown_083DFEC4
-_080EFD64: .4byte 0x0000769e
-_080EFD68: .4byte 0x0000769c
-_080EFD6C: .4byte 0x0000769d
-_080EFD70: .4byte 0x0000769a
- thumb_func_end sub_80EFD3C
-
- thumb_func_start sub_80EFD74
-sub_80EFD74: @ 80EFD74
- push {lr}
- ldr r0, _080EFD94 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r0, _080EFD98 @ =0x0000769e
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080EFD9C @ =0x0000769d
- adds r2, r0
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _080EFD90
- movs r0, 0x2
- strb r0, [r2]
-_080EFD90:
- pop {r0}
- bx r0
- .align 2, 0
-_080EFD94: .4byte gUnknown_083DFEC4
-_080EFD98: .4byte 0x0000769e
-_080EFD9C: .4byte 0x0000769d
- thumb_func_end sub_80EFD74
-
- thumb_func_start sub_80EFDA0
-sub_80EFDA0: @ 80EFDA0
- push {r4,lr}
- sub sp, 0x14
- ldr r0, _080EFDD4 @ =0x0600f800
- ldr r3, _080EFDD8 @ =gUnknown_08E9AC2C
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r2, 0xF
- str r2, [sp, 0x8]
- movs r1, 0x1
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0xE
- movs r2, 0x10
- bl sub_8095C8C
- ldr r0, _080EFDDC @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EFDE0 @ =0x0000769e
- adds r0, r1
- strb r4, [r0]
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EFDD4: .4byte 0x0600f800
-_080EFDD8: .4byte gUnknown_08E9AC2C
-_080EFDDC: .4byte gUnknown_083DFEC4
-_080EFDE0: .4byte 0x0000769e
- thumb_func_end sub_80EFDA0
-
- thumb_func_start sub_80EFDE4
-sub_80EFDE4: @ 80EFDE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EFE68 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080EFE6C @ =0x0000769c
- adds r0, r1, r2
- ldrb r2, [r0]
- movs r0, 0x3C
- subs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _080EFE06
- movs r4, 0xF
-_080EFE06:
- ldr r3, _080EFE70 @ =0x0000769e
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EFE58
- ldr r0, _080EFE74 @ =0x0600f800
- mov r8, r0
- ldr r3, _080EFE78 @ =gUnknown_08E9ABB4
- mov r9, r3
- str r2, [sp]
- movs r5, 0
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r7, 0x1
- str r7, [sp, 0xC]
- movs r6, 0x3C
- str r6, [sp, 0x10]
- movs r1, 0xE
- movs r2, 0x10
- bl sub_8095C8C
- cmp r4, 0xE
- bhi _080EFE58
- adds r1, r4, 0
- adds r1, 0xE
- lsls r1, 16
- lsrs r1, 16
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r0, 0xF
- subs r0, r4
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- str r7, [sp, 0xC]
- str r6, [sp, 0x10]
- mov r0, r8
- movs r2, 0x10
- mov r3, r9
- bl sub_8095C8C
-_080EFE58:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EFE68: .4byte gUnknown_083DFEC4
-_080EFE6C: .4byte 0x0000769c
-_080EFE70: .4byte 0x0000769e
-_080EFE74: .4byte 0x0600f800
-_080EFE78: .4byte gUnknown_08E9ABB4
- thumb_func_end sub_80EFDE4
-
- thumb_func_start sub_80EFE7C
-sub_80EFE7C: @ 80EFE7C
- push {r4,lr}
- ldr r0, _080EFE98 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r0, _080EFE9C @ =0x0000769d
- adds r4, r2, r0
- ldrb r1, [r4]
- cmp r1, 0x1
- beq _080EFF08
- cmp r1, 0x1
- bgt _080EFEA0
- cmp r1, 0
- beq _080EFEA6
- b _080EFF2E
- .align 2, 0
-_080EFE98: .4byte gUnknown_083DFEC4
-_080EFE9C: .4byte 0x0000769d
-_080EFEA0:
- cmp r1, 0x2
- beq _080EFF24
- b _080EFF2E
-_080EFEA6:
- ldr r0, _080EFED4 @ =0x0000769c
- adds r4, r2, r0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bls _080EFEBA
- strb r1, [r4]
-_080EFEBA:
- ldr r1, _080EFED8 @ =0x0000769e
- adds r0, r2, r1
- ldrb r0, [r0]
- bl sub_80EFDE4
- ldrb r0, [r4]
- cmp r0, 0xF
- beq _080EFEE4
- cmp r0, 0xF
- bgt _080EFEDC
- cmp r0, 0
- beq _080EFEE4
- b _080EFF2E
- .align 2, 0
-_080EFED4: .4byte 0x0000769c
-_080EFED8: .4byte 0x0000769e
-_080EFEDC:
- cmp r0, 0x1E
- beq _080EFEE4
- cmp r0, 0x2D
- bne _080EFF2E
-_080EFEE4:
- ldr r0, _080EFEFC @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080EFF00 @ =0x0000769d
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0x1
- strb r0, [r2]
- ldr r0, _080EFF04 @ =0x0000769a
- adds r1, r0
- strh r3, [r1]
- b _080EFF2E
- .align 2, 0
-_080EFEFC: .4byte gUnknown_083DFEC4
-_080EFF00: .4byte 0x0000769d
-_080EFF04: .4byte 0x0000769a
-_080EFF08:
- ldr r0, _080EFF20 @ =0x0000769a
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x78
- bls _080EFF2E
- movs r0, 0
- strh r0, [r1]
- b _080EFF2C
- .align 2, 0
-_080EFF20: .4byte 0x0000769a
-_080EFF24:
- movs r0, 0x1
- bl sub_80EFDE4
- movs r0, 0x1
-_080EFF2C:
- strb r0, [r4]
-_080EFF2E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80EFE7C
-
- thumb_func_start sub_80EFF34
-sub_80EFF34: @ 80EFF34
- push {lr}
- ldr r0, _080EFF5C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EFF60 @ =0x0000d160
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080EFF64 @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EFF56
-_080EFF4C:
- bl sub_80EFF68
- lsls r0, 24
- cmp r0, 0
- bne _080EFF4C
-_080EFF56:
- pop {r0}
- bx r0
- .align 2, 0
-_080EFF5C: .4byte gUnknown_083DFEC4
-_080EFF60: .4byte 0x0000d160
-_080EFF64: .4byte 0x00006dac
- thumb_func_end sub_80EFF34
-
- thumb_func_start sub_80EFF68
-sub_80EFF68: @ 80EFF68
- push {r4,lr}
- sub sp, 0x14
- ldr r0, _080EFF88 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EFF8C @ =0x0000d160
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xD
- bls _080EFF7C
- b _080F0150
-_080EFF7C:
- lsls r0, 2
- ldr r1, _080EFF90 @ =_080EFF94
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EFF88: .4byte gUnknown_083DFEC4
-_080EFF8C: .4byte 0x0000d160
-_080EFF90: .4byte _080EFF94
- .align 2, 0
-_080EFF94:
- .4byte _080EFFCC
- .4byte _080EFFE8
- .4byte _080EFFF4
- .4byte _080F0000
- .4byte _080F000C
- .4byte _080F0012
- .4byte _080F0018
- .4byte _080F0028
- .4byte _080F003C
- .4byte _080F005C
- .4byte _080F0098
- .4byte _080F00AC
- .4byte _080F00F8
- .4byte _080F0118
-_080EFFCC:
- bl sub_80EEDE8
- ldr r0, _080EFFE0 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080EFFE4 @ =0x0000d162
- adds r0, r2
- movs r1, 0xB
- strb r1, [r0]
- b _080F0154
- .align 2, 0
-_080EFFE0: .4byte gUnknown_083DFEC4
-_080EFFE4: .4byte 0x0000d162
-_080EFFE8:
- ldr r0, _080EFFF0 @ =gWindowConfig_81E7080
- bl SetUpWindowConfig
- b _080F0154
- .align 2, 0
-_080EFFF0: .4byte gWindowConfig_81E7080
-_080EFFF4:
- ldr r0, _080EFFFC @ =gWindowConfig_81E7080
- bl MultistepInitMenuWindowBegin
- b _080F0154
- .align 2, 0
-_080EFFFC: .4byte gWindowConfig_81E7080
-_080F0000:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _080F000A
- b _080F0154
-_080F000A:
- b _080F0162
-_080F000C:
- bl MenuZeroFillScreen
- b _080F0154
-_080F0012:
- bl sub_80F1614
- b _080F0154
-_080F0018:
- movs r0, 0
- bl sub_80F162C
- lsls r0, 24
- cmp r0, 0
- bne _080F0026
- b _080F0154
-_080F0026:
- b _080F0162
-_080F0028:
- ldr r0, _080F0034 @ =gPokenavConditionView_Gfx
- ldr r1, _080F0038 @ =0x06005000
- bl LZ77UnCompVram
- b _080F0154
- .align 2, 0
-_080F0034: .4byte gPokenavConditionView_Gfx
-_080F0038: .4byte 0x06005000
-_080F003C:
- ldr r0, _080F0050 @ =gUnknown_08E9AC4C
- ldr r1, _080F0054 @ =0x0600f000
- bl LZ77UnCompVram
- ldr r0, _080F0058 @ =gPokenavConditionMenu2_Pal
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- b _080F0154
- .align 2, 0
-_080F0050: .4byte gUnknown_08E9AC4C
-_080F0054: .4byte 0x0600f000
-_080F0058: .4byte gPokenavConditionMenu2_Pal
-_080F005C:
- ldr r0, _080F0088 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F008C @ =0x000076aa
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080F0154
- ldr r0, _080F0090 @ =0x0600f000
- ldr r3, _080F0094 @ =gUnknown_083E01AC
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r2, 0x9
- str r2, [sp, 0x8]
- movs r1, 0x4
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0
- movs r2, 0x5
- bl sub_8095C8C
- b _080F0154
- .align 2, 0
-_080F0088: .4byte gUnknown_083DFEC4
-_080F008C: .4byte 0x000076aa
-_080F0090: .4byte 0x0600f000
-_080F0094: .4byte gUnknown_083E01AC
-_080F0098:
- ldr r0, _080F00A4 @ =gUnknown_08E9FEB4
- ldr r1, _080F00A8 @ =0x0600b800
- bl LZ77UnCompVram
- b _080F0154
- .align 2, 0
-_080F00A4: .4byte gUnknown_08E9FEB4
-_080F00A8: .4byte 0x0600b800
-_080F00AC:
- ldr r0, _080F00EC @ =gUnknown_083E0254
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080F00F0 @ =gUnknownPalette_81E6692
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _080F00F4 @ =gPokenavConditionMenu2_Pal + 0x2
- adds r0, r4, 0
- movs r1, 0xB1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0xE
- movs r1, 0xB5
- movs r2, 0x2
- bl LoadPalette
- adds r4, 0x1C
- adds r0, r4, 0
- movs r1, 0xBF
- movs r2, 0x2
- bl LoadPalette
- bl sub_80F01A4
- b _080F0154
- .align 2, 0
-_080F00EC: .4byte gUnknown_083E0254
-_080F00F0: .4byte gUnknownPalette_81E6692
-_080F00F4: .4byte gPokenavConditionMenu2_Pal + 0x2
-_080F00F8:
- ldr r0, _080F0110 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F0114 @ =0x00008fe9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r0, 16
- bl sub_80F01E0
- b _080F0154
- .align 2, 0
-_080F0110: .4byte gUnknown_083DFEC4
-_080F0114: .4byte 0x00008fe9
-_080F0118:
- ldr r1, _080F013C @ =REG_BG3CNT
- ldr r2, _080F0140 @ =0x00001e03
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _080F0144 @ =0x00001702
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x44
- ldr r2, _080F0148 @ =0x00000844
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F014C @ =0x0000040b
- adds r0, r2, 0
- strh r0, [r1]
- b _080F0154
- .align 2, 0
-_080F013C: .4byte REG_BG3CNT
-_080F0140: .4byte 0x00001e03
-_080F0144: .4byte 0x00001702
-_080F0148: .4byte 0x00000844
-_080F014C: .4byte 0x0000040b
-_080F0150:
- movs r0, 0
- b _080F0164
-_080F0154:
- ldr r0, _080F016C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F0170 @ =0x0000d160
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F0162:
- movs r0, 0x1
-_080F0164:
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F016C: .4byte gUnknown_083DFEC4
-_080F0170: .4byte 0x0000d160
- thumb_func_end sub_80EFF68
-
- thumb_func_start sub_80F0174
-sub_80F0174: @ 80F0174
- push {lr}
- lsls r0, 24
- cmp r0, 0
- beq _080F018E
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 3
- adds r2, r3, 0
- orrs r1, r2
- strh r1, [r0]
- b _080F019A
-_080F018E:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080F01A0 @ =0x0000fbff
- ands r0, r1
- strh r0, [r2]
-_080F019A:
- pop {r0}
- bx r0
- .align 2, 0
-_080F01A0: .4byte 0x0000fbff
- thumb_func_end sub_80F0174
-
- thumb_func_start sub_80F01A4
-sub_80F01A4: @ 80F01A4
- ldr r1, _080F01CC @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x9B
- strh r0, [r1]
- ldr r0, _080F01D0 @ =REG_WIN0V
- ldr r2, _080F01D4 @ =0x00003879
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _080F01D8 @ =REG_WININ
- ldr r2, _080F01DC @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1B
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080F01CC: .4byte REG_WIN0H
-_080F01D0: .4byte REG_WIN0V
-_080F01D4: .4byte 0x00003879
-_080F01D8: .4byte REG_WININ
-_080F01DC: .4byte 0x00003f3f
- thumb_func_end sub_80F01A4
-
- thumb_func_start sub_80F01E0
-sub_80F01E0: @ 80F01E0
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _080F0248 @ =gUnknown_083DFEC4
- lsls r0, r4, 6
- ldr r2, _080F024C @ =0x00008829
- adds r0, r2
- ldr r5, [r1]
- adds r0, r5, r0
- movs r1, 0xD
- movs r2, 0x1
- bl MenuPrint
- ldr r1, _080F0250 @ =0x000076aa
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080F0242
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r2, _080F0254 @ =0x000088e9
- adds r0, r2
- adds r0, r5, r0
- movs r1, 0xD
- movs r2, 0x3
- bl MenuPrint
- ldr r0, _080F0258 @ =0x00008788
- adds r4, r5, r0
- ldr r1, _080F025C @ =0x000087dc
- adds r0, r5, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r0, 2
- adds r0, r5, r0
- ldr r1, _080F0260 @ =0x0000893e
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 18
- lsrs r1, 23
- adds r0, r4, 0
- bl sub_80F443C
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x6
- bl MenuPrint
-_080F0242:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0248: .4byte gUnknown_083DFEC4
-_080F024C: .4byte 0x00008829
-_080F0250: .4byte 0x000076aa
-_080F0254: .4byte 0x000088e9
-_080F0258: .4byte 0x00008788
-_080F025C: .4byte 0x000087dc
-_080F0260: .4byte 0x0000893e
- thumb_func_end sub_80F01E0
-
- thumb_func_start sub_80F0264
-sub_80F0264: @ 80F0264
- push {lr}
- ldr r1, _080F0290 @ =gUnknown_083DFEC4
- ldr r2, [r1]
- ldr r1, _080F0294 @ =0x00000306
- adds r3, r2, r1
- movs r1, 0
- strh r1, [r3]
- ldr r3, _080F0298 @ =0x000087ca
- adds r1, r2, r3
- strb r0, [r1]
- ldr r0, _080F029C @ =0x00006dac
- adds r2, r0
- ldrb r0, [r2]
- cmp r0, 0
- bne _080F028C
-_080F0282:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- bne _080F0282
-_080F028C:
- pop {r0}
- bx r0
- .align 2, 0
-_080F0290: .4byte gUnknown_083DFEC4
-_080F0294: .4byte 0x00000306
-_080F0298: .4byte 0x000087ca
-_080F029C: .4byte 0x00006dac
- thumb_func_end sub_80F0264
-
- thumb_func_start sub_80F02A0
-sub_80F02A0: @ 80F02A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x18
- ldr r1, _080F02C4 @ =gUnknown_083DFEC4
- ldr r0, [r1]
- ldr r2, _080F02C8 @ =0x00000306
- adds r0, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xE
- bls _080F02BA
- b _080F05FA
-_080F02BA:
- lsls r0, 2
- ldr r1, _080F02CC @ =_080F02D0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F02C4: .4byte gUnknown_083DFEC4
-_080F02C8: .4byte 0x00000306
-_080F02CC: .4byte _080F02D0
- .align 2, 0
-_080F02D0:
- .4byte _080F030C
- .4byte _080F0344
- .4byte _080F0350
- .4byte _080F035C
- .4byte _080F0368
- .4byte _080F036E
- .4byte _080F0380
- .4byte _080F0394
- .4byte _080F04BC
- .4byte _080F053C
- .4byte _080F0550
- .4byte _080F0574
- .4byte _080F057A
- .4byte _080F0586
- .4byte _080F05BC
-_080F030C:
- bl sub_80EEDE8
- ldr r0, _080F0334 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- movs r2, 0
- ldr r3, _080F0338 @ =0x000087ca
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080F0322
- movs r2, 0x1
-_080F0322:
- ldr r3, _080F033C @ =0x000087c8
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080F0340 @ =0x0000d162
- adds r1, r0
- movs r0, 0xB
- strb r0, [r1]
- b _080F0618
- .align 2, 0
-_080F0334: .4byte gUnknown_083DFEC4
-_080F0338: .4byte 0x000087ca
-_080F033C: .4byte 0x000087c8
-_080F0340: .4byte 0x0000d162
-_080F0344:
- ldr r0, _080F034C @ =gWindowConfig_81E70D4
- bl SetUpWindowConfig
- b _080F0618
- .align 2, 0
-_080F034C: .4byte gWindowConfig_81E70D4
-_080F0350:
- ldr r0, _080F0358 @ =gWindowConfig_81E70D4
- bl MultistepInitMenuWindowBegin
- b _080F0618
- .align 2, 0
-_080F0358: .4byte gWindowConfig_81E70D4
-_080F035C:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _080F0366
- b _080F0618
-_080F0366:
- b _080F0626
-_080F0368:
- bl MenuZeroFillScreen
- b _080F0618
-_080F036E:
- ldr r0, _080F0378 @ =gUnknown_08E9FC64
- ldr r1, _080F037C @ =0x0600e800
- bl LZ77UnCompVram
- b _080F0618
- .align 2, 0
-_080F0378: .4byte gUnknown_08E9FC64
-_080F037C: .4byte 0x0600e800
-_080F0380:
- ldr r0, _080F038C @ =gPokenavConditionSearch2_Gfx
- ldr r1, _080F0390 @ =0x06008000
- bl LZ77UnCompVram
- b _080F0618
- .align 2, 0
-_080F038C: .4byte gPokenavConditionSearch2_Gfx
-_080F0390: .4byte 0x06008000
-_080F0394:
- ldr r6, _080F03FC @ =gUnknown_083E02B4
- adds r0, r6, 0
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r6, 0
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080F0400 @ =gUnknown_083E0334
- movs r1, 0x40
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080F0404 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F0408 @ =0x000087ca
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F0418
- ldr r4, _080F040C @ =gPokenavConditionSearch2_Pal
- adds r0, r4, 0
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080F0410 @ =gPlttBufferUnfaded
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- ldr r0, _080F0414 @ =gUnknownPalette_81E6692
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r6, 0x2
- movs r1, 0xB1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r6, 0
- adds r0, 0x10
- movs r1, 0xB5
- movs r2, 0x2
- bl LoadPalette
- adds r4, 0xA
- adds r0, r4, 0
- movs r1, 0xBF
- b _080F04A8
- .align 2, 0
-_080F03FC: .4byte gUnknown_083E02B4
-_080F0400: .4byte gUnknown_083E0334
-_080F0404: .4byte gUnknown_083DFEC4
-_080F0408: .4byte 0x000087ca
-_080F040C: .4byte gPokenavConditionSearch2_Pal
-_080F0410: .4byte gPlttBufferUnfaded
-_080F0414: .4byte gUnknownPalette_81E6692
-_080F0418:
- cmp r0, 0x1
- bne _080F0464
- ldr r4, _080F0458 @ =gUnknown_083E0274
- adds r0, r4, 0
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080F045C @ =gPlttBufferUnfaded
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- ldr r0, _080F0460 @ =gUnknownPalette_81E6692
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r6, 0x2
- movs r1, 0xB1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r6, 0
- adds r0, 0x10
- movs r1, 0xB5
- movs r2, 0x2
- bl LoadPalette
- adds r4, 0xA
- adds r0, r4, 0
- movs r1, 0xBF
- b _080F04A8
- .align 2, 0
-_080F0458: .4byte gUnknown_083E0274
-_080F045C: .4byte gPlttBufferUnfaded
-_080F0460: .4byte gUnknownPalette_81E6692
-_080F0464:
- ldr r4, _080F04B0 @ =gUnknown_08E9F9E8
- adds r0, r4, 0
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080F04B4 @ =gPlttBufferUnfaded
- adds r5, r4, 0
- adds r5, 0xA
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- ldr r0, _080F04B8 @ =gUnknown_083E0314
- movs r1, 0x50
- movs r2, 0x20
- bl LoadPalette
- adds r0, r6, 0x2
- movs r1, 0xB1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r6, 0
- adds r0, 0x10
- movs r1, 0xB5
- movs r2, 0x2
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0xBF
- movs r2, 0x2
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0x5F
-_080F04A8:
- movs r2, 0x2
- bl LoadPalette
- b _080F0618
- .align 2, 0
-_080F04B0: .4byte gUnknown_08E9F9E8
-_080F04B4: .4byte gPlttBufferUnfaded
-_080F04B8: .4byte gUnknown_083E0314
-_080F04BC:
- ldr r0, _080F04E8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F04EC @ =0x000087ca
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080F04F8
- ldr r0, _080F04F0 @ =0x0600e800
- ldr r3, _080F04F4 @ =gUnknown_08E9FD1C
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r2, 0x9
- str r2, [sp, 0x8]
- movs r1, 0x4
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0
- movs r2, 0x5
- bl sub_8095C8C
- b _080F0618
- .align 2, 0
-_080F04E8: .4byte gUnknown_083DFEC4
-_080F04EC: .4byte 0x000087ca
-_080F04F0: .4byte 0x0600e800
-_080F04F4: .4byte gUnknown_08E9FD1C
-_080F04F8:
- ldr r3, _080F0530 @ =0x0600e800
- mov r8, r3
- ldr r3, _080F0534 @ =gUnknown_08E9FE54
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r5, 0xC
- str r5, [sp, 0x8]
- movs r6, 0xA
- str r6, [sp, 0xC]
- str r5, [sp, 0x10]
- mov r0, r8
- movs r1, 0
- movs r2, 0x4
- bl sub_8095C8C
- ldr r3, _080F0538 @ =gUnknown_08E9FD64
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- str r6, [sp, 0xC]
- str r5, [sp, 0x10]
- mov r0, r8
- movs r1, 0
- movs r2, 0x8
- bl sub_8095C8C
- b _080F0618
- .align 2, 0
-_080F0530: .4byte 0x0600e800
-_080F0534: .4byte gUnknown_08E9FE54
-_080F0538: .4byte gUnknown_08E9FD64
-_080F053C:
- ldr r0, _080F0548 @ =gUnknown_083E0354
- ldr r1, _080F054C @ =0x06005000
- bl LZ77UnCompVram
- b _080F0618
- .align 2, 0
-_080F0548: .4byte gUnknown_083E0354
-_080F054C: .4byte 0x06005000
-_080F0550:
- ldr r2, _080F0568 @ =0x0600f800
- add r1, sp, 0x14
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080F056C @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _080F0570 @ =0x81000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080F0618
- .align 2, 0
-_080F0568: .4byte 0x0600f800
-_080F056C: .4byte 0x040000d4
-_080F0570: .4byte 0x81000400
-_080F0574:
- bl sub_80F0900
- b _080F0618
-_080F057A:
- bl sub_80F0944
- lsls r0, 24
- cmp r0, 0
- beq _080F0618
- b _080F0626
-_080F0586:
- ldr r0, _080F059C @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080F05A0 @ =0x000087ca
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080F05A4
- bl ShowMapNamePopUpWindow
- b _080F0618
- .align 2, 0
-_080F059C: .4byte gUnknown_083DFEC4
-_080F05A0: .4byte 0x000087ca
-_080F05A4:
- movs r0, 0
- bl sub_80F081C
- ldr r2, _080F05B8 @ =0x0000876e
- adds r0, r4, r2
- ldrb r0, [r0]
- bl sub_80F0FFC
- b _080F0618
- .align 2, 0
-_080F05B8: .4byte 0x0000876e
-_080F05BC:
- ldr r1, _080F0600 @ =REG_BG2CNT
- ldr r3, _080F0604 @ =0x00001d0a
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- adds r3, 0xF9
- adds r0, r3, 0
- strh r0, [r1]
- subs r1, 0x6
- adds r3, 0xFE
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x16
- movs r0, 0xF8
- strh r0, [r1]
- ldr r1, [r2]
- ldr r0, _080F0608 @ =0x00008776
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0xF8
- strh r0, [r2]
- ldr r2, _080F060C @ =0x00008778
- adds r0, r1, r2
- strh r3, [r0]
- ldr r0, _080F0610 @ =REG_BLDCNT
- strh r3, [r0]
- ldr r3, _080F0614 @ =0x0000d160
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F05FA:
- movs r0, 0
- b _080F0628
- .align 2, 0
-_080F0600: .4byte REG_BG2CNT
-_080F0604: .4byte 0x00001d0a
-_080F0608: .4byte 0x00008776
-_080F060C: .4byte 0x00008778
-_080F0610: .4byte REG_BLDCNT
-_080F0614: .4byte 0x0000d160
-_080F0618:
- ldr r0, _080F0634 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F0638 @ =0x00000306
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F0626:
- movs r0, 0x1
-_080F0628:
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080F0634: .4byte gUnknown_083DFEC4
-_080F0638: .4byte 0x00000306
- thumb_func_end sub_80F02A0
-
thumb_func_start sub_80F063C
sub_80F063C: @ 80F063C
push {r4-r7,lr}
diff --git a/asm/psychic.s b/asm/psychic.s
new file mode 100755
index 000000000..fb024a00d
--- /dev/null
+++ b/asm/psychic.s
@@ -0,0 +1,2183 @@
+ .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 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB768
+ bl NotInBattle
+ 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 NotInBattle
+ 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 NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB810
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB810
+ ldr r0, _080DB804 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankAttacker
+_080DB808:
+ movs r0, 0xB0
+ strh r0, [r6, 0x20]
+ movs r0, 0x28
+ b _080DB84A
+_080DB810:
+ ldr r5, _080DB880 @ =gBattleAnimBankAttacker
+ 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 sub_8077ABC
+ 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 sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+_080DB84A:
+ strh r0, [r6, 0x22]
+ bl NotInBattle
+ 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 gBattleAnimBankAttacker
+_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 NotInBattle
+ 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 NotInBattle
+ 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 @ =move_anim_8072740
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBA48: .4byte move_anim_8072740
+ 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 NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DBAAE
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DBAAE
+ ldr r0, _080DBA9C @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankAttacker
+_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 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ 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 gBattleAnimBankAttacker
+_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 @ =move_anim_8072740
+ 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 move_anim_8072740
+_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 @ =gBattleAnimBankAttacker
+ 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 sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ 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 gBattleAnimBankAttacker
+_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 move_anim_8072740
+_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 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankAttacker
+_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 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ 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 gBattleAnimBankAttacker
+_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 move_anim_8072740
+_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 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ 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 gBattleAnimBankAttacker
+_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 NotInBattle
+ 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 @ =gBattleAnimBankTarget
+ 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 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankTarget
+_080DC11C: .4byte gBattleAnimBankAttacker
+_080DC120:
+ movs r0, 0xA
+ strh r0, [r5, 0x1C]
+ ldr r4, _080DC14C @ =gBattleAnimBankAttacker
+ 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 @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x8
+ b _080DC1D2
+ .align 2, 0
+_080DC14C: .4byte gBattleAnimBankAttacker
+_080DC150: .4byte gBattleAnimBankTarget
+_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 @ =gBattleAnimBankTarget
+ 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 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankTarget
+_080DC1A4: .4byte gBattleAnimBankAttacker
+_080DC1A8:
+ movs r0, 0xA
+ strh r0, [r5, 0x1C]
+ ldr r4, _080DC1F0 @ =gBattleAnimBankAttacker
+ 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 @ =gBattleAnimBankTarget
+ 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 gBattleAnimBankAttacker
+_080DC1F4: .4byte gBattleAnimBankTarget
+_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 @ =gBattleAnimBankTarget
+ 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 gBattleAnimBankTarget
+_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 @ =gBattleAnimBankTarget
+ ldrb r0, [r0]
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DC378
+ ldr r0, _080DC370 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x1C]
+ ldr r0, _080DC374 @ =REG_BG1HOFS
+ b _080DC380
+ .align 2, 0
+_080DC36C: .4byte gBattleAnimBankTarget
+_080DC370: .4byte gUnknown_030042C0
+_080DC374: .4byte REG_BG1HOFS
+_080DC378:
+ ldr r0, _080DC3E0 @ =gUnknown_03004288
+ 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 gUnknown_03004288
+_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 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ bl NotInBattle
+ 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 gBattleAnimBankAttacker
+_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 sub_8076F98
+ 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 move_anim_8072740
+_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
new file mode 100755
index 000000000..66c698577
--- /dev/null
+++ b/asm/rock.s
@@ -0,0 +1,1643 @@
+ .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 @ =gBattleAnimBankTarget
+ 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 gBattleAnimBankTarget
+_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 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankAttacker
+_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 move_anim_8072740
+_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 NotInBattle
+ 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 @ =gUnknown_030042C0
+ strh r5, [r0]
+ ldr r0, _080DD164 @ =gUnknown_030041B4
+ 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 NotInBattle
+ 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 @ =gBattleAnimBankAttacker
+ 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 gUnknown_030042C0
+_080DD164: .4byte gUnknown_030041B4
+_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 gBattleAnimBankAttacker
+_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 @ =gUnknown_030042C0
+ ldr r5, _080DD1C8 @ =0x0000fffa
+ adds r0, r5, 0
+ ldrh r2, [r1]
+ adds r0, r2
+ b _080DD1D2
+ .align 2, 0
+_080DD1C0: .4byte gTasks
+_080DD1C4: .4byte gUnknown_030042C0
+_080DD1C8: .4byte 0x0000fffa
+_080DD1CC:
+ ldr r1, _080DD204 @ =gUnknown_030042C0
+ ldrh r0, [r1]
+ adds r0, 0x6
+_080DD1D2:
+ strh r0, [r1]
+ adds r4, r1, 0
+ ldr r1, _080DD208 @ =gUnknown_030041B4
+ 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 gUnknown_030042C0
+_080DD208: .4byte gUnknown_030041B4
+_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 NotInBattle
+ 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 @ =gUnknown_030042C0
+ ldr r2, _080DD3A4 @ =gUnknown_030041B4
+_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 gUnknown_030042C0
+_080DD3A4: .4byte gUnknown_030041B4
+_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 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankAttacker
+_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 @ =move_anim_8072740
+ str r0, [r5, 0x1C]
+_080DD484:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD48C: .4byte move_anim_8072740
+ 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 @ =move_anim_8072740
+ 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 move_anim_8072740
+ 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 @ =gBattleAnimBankAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r1, 0xC0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r7, r0, 16
+ ldr r4, _080DD55C @ =gBattleAnimBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ 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 gBattleAnimBankAttacker
+_080DD55C: .4byte gBattleAnimBankTarget
+_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 sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ asrs r4, 8
+ lsrs r4, 16
+ movs r0, 0x3F
+ bl sub_8076F98
+ 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 @ =gDisableStructMoveAnim
+ 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 gDisableStructMoveAnim
+ 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 move_anim_8072740
+_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 @ =gBattleAnimBankAttacker
+ 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 gBattleAnimBankAttacker
+ thumb_func_end sub_80DD978
+
+ thumb_func_start sub_80DD9A4
+sub_80DD9A4: @ 80DD9A4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080DD9F0 @ =gBattleAnimBankTarget
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ 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 gBattleAnimBankTarget
+_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 move_anim_8072740
+_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 @ =gMoveDmgMoveAnim
+ 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 gMoveDmgMoveAnim
+_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
index fcfedbd80..04b3ac9b8 100644
--- a/asm/roulette.s
+++ b/asm/roulette.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -12,7 +11,7 @@ sub_81150FC: @ 81150FC
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- ldr r0, _08115120 @ =0x02019000
+ ldr r0, _08115120 @ =gSharedMem + 0x19000
adds r1, r0, 0
adds r1, 0xB8
ldrb r0, [r1]
@@ -24,7 +23,7 @@ _0811511C:
pop {r0}
bx r0
.align 2, 0
-_08115120: .4byte 0x02019000
+_08115120: .4byte gSharedMem + 0x19000
thumb_func_end sub_81150FC
thumb_func_start sub_8115124
@@ -36,7 +35,7 @@ sub_8115124: @ 8115124
bl TransferPlttBuffer
bl sub_8117434
ldr r2, _08115188 @ =REG_BG1HOFS
- ldr r3, _0811518C @ =0x02019000
+ ldr r3, _0811518C @ =gSharedMem + 0x19000
ldrh r1, [r3, 0x26]
movs r4, 0x80
lsls r4, 2
@@ -78,7 +77,7 @@ _08115170:
b _0811521A
.align 2, 0
_08115188: .4byte REG_BG1HOFS
-_0811518C: .4byte 0x02019000
+_0811518C: .4byte gSharedMem + 0x19000
_08115190: .4byte REG_BLDALPHA
_08115194: .4byte 0x040000d4
_08115198: .4byte gBGTilemapBuffers + 0x800 + 0x1C0
@@ -160,7 +159,7 @@ sub_8115238: @ 8115238
mov r0, sp
movs r2, 0x6
bl memcpy
- ldr r5, _081152C4 @ =0x02019000
+ ldr r5, _081152C4 @ =gSharedMem + 0x19000
movs r2, 0xBE
lsls r2, 1
adds r0, r5, 0
@@ -223,7 +222,7 @@ _08115276:
b _081152E4
.align 2, 0
_081152C0: .4byte gUnknown_083F8EC4
-_081152C4: .4byte 0x02019000
+_081152C4: .4byte gSharedMem + 0x19000
_081152C8: .4byte gSpecialVar_0x8004
_081152CC: .4byte gUnknown_083F8DF4
_081152D0: .4byte gUnknown_083F8DF0
@@ -248,14 +247,14 @@ _081152E4:
strh r0, [r2]
ands r0, r1
strh r0, [r4]
- ldr r0, _08115354 @ =0x020190b8
+ 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 @ =0x020190b8
+ ldr r0, _08115354 @ =gSharedMem + 0x190B8
adds r1, r4, 0
bl sub_812492C
adds r0, r4, 0x1
@@ -264,7 +263,7 @@ _08115308:
cmp r4, 0xC
bls _08115308
movs r4, 0
- ldr r5, _0811535C @ =0x02019000
+ ldr r5, _0811535C @ =gSharedMem + 0x19000
_08115322:
movs r0, 0x64
muls r0, r4
@@ -287,9 +286,9 @@ _08115322:
_08115348: .4byte gPlttBufferUnfaded
_0811534C: .4byte gPlttBufferFaded
_08115350: .4byte 0x0000ffff
-_08115354: .4byte 0x020190b8
+_08115354: .4byte gSharedMem + 0x190B8
_08115358: .4byte gUnknown_083F8E34
-_0811535C: .4byte 0x02019000
+_0811535C: .4byte gSharedMem + 0x19000
_08115360: .4byte gPlayerParty
_08115364:
ldrb r0, [r5, 0x2]
@@ -421,7 +420,7 @@ _08115494:
bl sub_8115238
bl sub_80F9020
ldr r0, _081154B4 @ =gUnknown_083F88BC
- ldr r1, _081154B8 @ =0x02018800
+ ldr r1, _081154B8 @ =gSharedMem + 0x18800
bl LZ77UnCompWram
ldr r0, _081154BC @ =gUnknown_083F8A60
ldr r1, _081154C0 @ =0x06003000
@@ -432,7 +431,7 @@ _08115494:
b _0811557A
.align 2, 0
_081154B4: .4byte gUnknown_083F88BC
-_081154B8: .4byte 0x02018800
+_081154B8: .4byte gSharedMem + 0x18800
_081154BC: .4byte gUnknown_083F8A60
_081154C0: .4byte 0x06003000
_081154C4: .4byte gMain
@@ -540,7 +539,7 @@ _0811558C:
ldr r0, _08115618 @ =sub_81156BC
movs r1, 0
bl CreateTask
- ldr r4, _0811561C @ =0x02019000
+ ldr r4, _0811561C @ =gSharedMem + 0x19000
adds r1, r4, 0
adds r1, 0xA4
strb r0, [r1]
@@ -576,7 +575,7 @@ _0811560C: .4byte 0x04000200
_08115610: .4byte REG_DISPSTAT
_08115614: .4byte sub_8115124
_08115618: .4byte sub_81156BC
-_0811561C: .4byte 0x02019000
+_0811561C: .4byte gSharedMem + 0x19000
_08115620: .4byte gTasks
_08115624: .4byte gSaveBlock1
_08115628: .4byte 0x00000494
@@ -587,7 +586,7 @@ _08115630: .4byte sub_81150FC
thumb_func_start sub_8115634
sub_8115634: @ 8115634
push {r4-r6,lr}
- ldr r0, _081156B8 @ =0x02019000
+ ldr r0, _081156B8 @ =gSharedMem + 0x19000
adds r3, r0, 0
adds r3, 0x21
ldrb r1, [r3]
@@ -654,7 +653,7 @@ _081156A2:
pop {r0}
bx r0
.align 2, 0
-_081156B8: .4byte 0x02019000
+_081156B8: .4byte gSharedMem + 0x19000
thumb_func_end sub_8115634
thumb_func_start sub_81156BC
@@ -775,7 +774,7 @@ sub_81157AC: @ 81157AC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _081157CC @ =0x02019000
+ ldr r0, _081157CC @ =gSharedMem + 0x19000
adds r0, 0xA5
ldrb r0, [r0]
bl DestroyTask
@@ -785,7 +784,7 @@ sub_81157AC: @ 81157AC
pop {r0}
bx r0
.align 2, 0
-_081157CC: .4byte 0x02019000
+_081157CC: .4byte gSharedMem + 0x19000
thumb_func_end sub_81157AC
thumb_func_start sub_81157D0
@@ -850,7 +849,7 @@ _08115848:
movs r2, 0xE
movs r3, 0x7
bl sub_8124DDC
- ldr r1, _08115880 @ =0x02018a32
+ ldr r1, _08115880 @ =gSharedMem + 0x18A32
movs r0, 0x3
str r0, [sp]
str r4, [sp, 0x4]
@@ -861,7 +860,7 @@ _08115848:
b _08115918
.align 2, 0
_0811587C: .4byte gBGTilemapBuffers + 0x1000
-_08115880: .4byte 0x02018a32
+_08115880: .4byte gSharedMem + 0x18A32
_08115884:
subs r0, r4, 0x1
movs r1, 0x5
@@ -881,7 +880,7 @@ _08115884:
movs r2, 0xE
movs r3, 0x7
bl sub_8124DDC
- ldr r1, _081158C4 @ =0x02018a80
+ ldr r1, _081158C4 @ =gSharedMem + 0x18A80
str r4, [sp]
movs r0, 0x3
str r0, [sp, 0x4]
@@ -892,7 +891,7 @@ _08115884:
b _08115918
.align 2, 0
_081158C0: .4byte gBGTilemapBuffers + 0x1000
-_081158C4: .4byte 0x02018a80
+_081158C4: .4byte gSharedMem + 0x18A80
_081158C8:
adds r0, r4, 0
movs r1, 0x5
@@ -922,7 +921,7 @@ _081158C8:
movs r2, 0xE
movs r3, 0x7
bl sub_8124DDC
- ldr r1, _08115924 @ =0x02018a20
+ ldr r1, _08115924 @ =gSharedMem + 0x18A20
movs r0, 0x3
str r0, [sp]
str r0, [sp, 0x4]
@@ -937,7 +936,7 @@ _08115918:
bx r0
.align 2, 0
_08115920: .4byte gBGTilemapBuffers + 0x1000
-_08115924: .4byte 0x02018a20
+_08115924: .4byte gSharedMem + 0x18A20
thumb_func_end sub_81157D0
thumb_func_start sub_8115928
@@ -959,7 +958,7 @@ sub_8115928: @ 8115928
.align 2, 0
_08115948: .4byte gTasks
_0811594C:
- ldr r0, _08115974 @ =0x02019000
+ ldr r0, _08115974 @ =gSharedMem + 0x19000
ldrb r1, [r0, 0x1A]
lsls r1, 28
lsrs r1, 28
@@ -979,7 +978,7 @@ _08115960:
pop {r0}
bx r0
.align 2, 0
-_08115974: .4byte 0x02019000
+_08115974: .4byte gSharedMem + 0x19000
_08115978: .4byte gTasks
thumb_func_end sub_8115928
@@ -988,7 +987,7 @@ sub_811597C: @ 811597C
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
- ldr r5, _081159B0 @ =0x02019000
+ ldr r5, _081159B0 @ =gSharedMem + 0x19000
movs r6, 0
movs r1, 0x1
strh r1, [r5, 0x28]
@@ -1011,7 +1010,7 @@ sub_811597C: @ 811597C
pop {r0}
bx r0
.align 2, 0
-_081159B0: .4byte 0x02019000
+_081159B0: .4byte gSharedMem + 0x19000
_081159B4: .4byte gTasks
_081159B8: .4byte sub_8115E14
thumb_func_end sub_811597C
@@ -1021,7 +1020,7 @@ sub_81159BC: @ 81159BC
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
- ldr r3, _08115A10 @ =0x02019000
+ ldr r3, _08115A10 @ =gSharedMem + 0x19000
ldr r1, [r3, 0x8]
movs r0, 0x20
ands r0, r1
@@ -1061,7 +1060,7 @@ _081159EA:
bne _081159EA
b _08115A5A
.align 2, 0
-_08115A10: .4byte 0x02019000
+_08115A10: .4byte gSharedMem + 0x19000
_08115A14: .4byte gUnknown_083F8C00
_08115A18: .4byte gTasks
_08115A1C:
@@ -1333,7 +1332,7 @@ _08115C0C:
strh r1, [r4, 0xA]
movs r0, 0x5
bl PlaySE
- ldr r5, _08115D3C @ =0x020190b8
+ ldr r5, _08115D3C @ =gSharedMem + 0x190B8
ldr r1, _08115D40 @ =0x0000ffff
adds r0, r5, 0
bl sub_8124D3C
@@ -1417,7 +1416,7 @@ _08115C7C:
lsls r0, 2
adds r2, 0x8
adds r0, r2
- ldr r2, _08115D54 @ =0x02019000
+ ldr r2, _08115D54 @ =gSharedMem + 0x19000
ldr r1, [r2, 0x8]
ldr r0, [r0]
ands r1, r0
@@ -1465,13 +1464,13 @@ _08115D20:
_08115D30: .4byte gMain
_08115D34: .4byte gTasks + 0x8
_08115D38: .4byte gTasks
-_08115D3C: .4byte 0x020190b8
+_08115D3C: .4byte gSharedMem + 0x190B8
_08115D40: .4byte 0x0000ffff
_08115D44: .4byte gSprites
_08115D48: .4byte 0xfffffc00
_08115D4C: .4byte 0x000003ff
_08115D50: .4byte gUnknown_083F8C00
-_08115D54: .4byte 0x02019000
+_08115D54: .4byte gSharedMem + 0x19000
thumb_func_end sub_8115B58
thumb_func_start sub_8115D58
@@ -1479,7 +1478,7 @@ sub_8115D58: @ 8115D58
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r1, _08115D70 @ =0x02019000
+ ldr r1, _08115D70 @ =gSharedMem + 0x19000
movs r0, 0xFF
strh r0, [r1, 0x28]
ldrb r0, [r1, 0x19]
@@ -1489,7 +1488,7 @@ sub_8115D58: @ 8115D58
adds r2, 0x23
b _08115D7A
.align 2, 0
-_08115D70: .4byte 0x02019000
+_08115D70: .4byte gSharedMem + 0x19000
_08115D74:
adds r2, r1, 0
adds r2, 0x23
@@ -1520,7 +1519,7 @@ sub_8115DA0: @ 8115DA0
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
- ldr r4, _08115E08 @ =0x02019000
+ ldr r4, _08115E08 @ =gSharedMem + 0x19000
ldrb r2, [r4, 0x1A]
lsls r2, 28
lsrs r2, 28
@@ -1567,7 +1566,7 @@ _08115DF6:
pop {r0}
bx r0
.align 2, 0
-_08115E08: .4byte 0x02019000
+_08115E08: .4byte gSharedMem + 0x19000
_08115E0C: .4byte gTasks
_08115E10: .4byte sub_8115D58
thumb_func_end sub_8115DA0
@@ -1630,7 +1629,7 @@ _08115E6E:
ands r0, r1
cmp r0, 0
beq _08115EC2
- ldr r3, _08115EB0 @ =0x02019000
+ ldr r3, _08115EB0 @ =gSharedMem + 0x19000
ldr r2, _08115EB4 @ =gUnknown_083F8C00
ldr r1, _08115EA8 @ =gTasks
lsls r0, r5, 2
@@ -1655,7 +1654,7 @@ _08115E6E:
.align 2, 0
_08115EA8: .4byte gTasks
_08115EAC: .4byte gMain
-_08115EB0: .4byte 0x02019000
+_08115EB0: .4byte gSharedMem + 0x19000
_08115EB4: .4byte gUnknown_083F8C00
_08115EB8:
movs r0, 0x5F
@@ -1695,7 +1694,7 @@ sub_8115ECC: @ 8115ECC
adds r0, 0x2
strh r0, [r1]
_08115EF8:
- ldr r1, _08115F28 @ =0x02019000
+ ldr r1, _08115F28 @ =gSharedMem + 0x19000
ldrh r0, [r1, 0x26]
adds r0, 0x4
strh r0, [r1, 0x26]
@@ -1718,7 +1717,7 @@ _08115EF8:
.align 2, 0
_08115F20: .4byte gTasks
_08115F24: .4byte gSpriteCoordOffsetX
-_08115F28: .4byte 0x02019000
+_08115F28: .4byte gSharedMem + 0x19000
_08115F2C: .4byte gSprites
_08115F30: .4byte SpriteCallbackDummy
_08115F34:
@@ -1747,7 +1746,7 @@ sub_8115F58: @ 8115F58
lsrs r3, r0, 16
lsls r1, 16
lsrs r1, 16
- ldr r0, _08115F74 @ =0x02019000
+ ldr r0, _08115F74 @ =gSharedMem + 0x19000
ldrb r2, [r0, 0x2]
adds r4, r0, 0
cmp r2, 0x2
@@ -1756,7 +1755,7 @@ sub_8115F58: @ 8115F58
bge _08115F7E
b _08116048
.align 2, 0
-_08115F74: .4byte 0x02019000
+_08115F74: .4byte gSharedMem + 0x19000
_08115F78:
cmp r2, 0x3
beq _08115FE0
@@ -1989,7 +1988,7 @@ sub_8116100: @ 8116100
bl __umodsi3
lsls r0, 16
lsrs r6, r0, 16
- ldr r3, _0811618C @ =0x02019000
+ ldr r3, _0811618C @ =gSharedMem + 0x19000
ldr r1, _08116190 @ =gTasks
mov r2, r9
lsls r0, r2, 2
@@ -2033,7 +2032,7 @@ _08116180:
b _081161A2
.align 2, 0
_08116188: .4byte gUnknown_083F8ECE
-_0811618C: .4byte 0x02019000
+_0811618C: .4byte gSharedMem + 0x19000
_08116190: .4byte gTasks
_08116194: .4byte gLocalTime
_08116198:
@@ -2044,7 +2043,7 @@ _08116198:
lsls r0, 25
_081161A2:
lsrs r5, r0, 24
- ldr r6, _081162D8 @ =0x02019000
+ ldr r6, _081162D8 @ =gSharedMem + 0x19000
ldrb r0, [r6, 0x4]
lsls r0, 30
mov r10, r0
@@ -2099,7 +2098,7 @@ _081161D4:
ldr r1, _081162E0 @ =0x47800000
bl __addsf3
_0811621A:
- ldr r2, _081162E8 @ =0x02019088
+ ldr r2, _081162E8 @ =gSharedMem + 0x19088
str r0, [r2]
adds r7, r6, 0
adds r7, 0x8C
@@ -2187,11 +2186,11 @@ _081162A2:
pop {r0}
bx r0
.align 2, 0
-_081162D8: .4byte 0x02019000
+_081162D8: .4byte gSharedMem + 0x19000
_081162DC: .4byte gUnknown_083F8DF4
_081162E0: .4byte 0x47800000
_081162E4: .4byte 0x40a00000
-_081162E8: .4byte 0x02019088
+_081162E8: .4byte gSharedMem + 0x19088
_081162EC: .4byte 0x3f000000
_081162F0: .4byte 0x42880000
_081162F4: .4byte 0x00000000
@@ -2206,7 +2205,7 @@ sub_8116308: @ 8116308
push {r4,lr}
lsls r0, 24
lsrs r0, 24
- ldr r3, _08116368 @ =0x02019000
+ ldr r3, _08116368 @ =gSharedMem + 0x19000
ldrb r1, [r3, 0x3]
movs r2, 0x80
orrs r1, r2
@@ -2250,7 +2249,7 @@ sub_8116308: @ 8116308
pop {r0}
bx r0
.align 2, 0
-_08116368: .4byte 0x02019000
+_08116368: .4byte gSharedMem + 0x19000
_0811636C: .4byte gSprites
_08116370: .4byte sub_81191F4
_08116374: .4byte gTasks
@@ -2262,7 +2261,7 @@ sub_811637C: @ 811637C
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r4, _081163B0 @ =0x02019000
+ ldr r4, _081163B0 @ =gSharedMem + 0x19000
adds r0, r4, 0
adds r0, 0x7D
ldrb r0, [r0]
@@ -2286,7 +2285,7 @@ sub_811637C: @ 811637C
strb r0, [r4, 0x3]
b _08116464
.align 2, 0
-_081163B0: .4byte 0x02019000
+_081163B0: .4byte gSharedMem + 0x19000
_081163B4:
ldr r2, _08116428 @ =gTasks
lsls r1, r5, 2
@@ -2349,7 +2348,7 @@ _08116420:
_08116428: .4byte gTasks
_0811642C: .4byte gMain
_08116430:
- ldr r1, _0811646C @ =0x02019000
+ ldr r1, _0811646C @ =gSharedMem + 0x19000
ldrb r0, [r1, 0x1A]
lsls r0, 28
lsrs r0, 28
@@ -2377,7 +2376,7 @@ _08116464:
pop {r0}
bx r0
.align 2, 0
-_0811646C: .4byte 0x02019000
+_0811646C: .4byte gSharedMem + 0x19000
_08116470: .4byte sub_8116474
thumb_func_end sub_811637C
@@ -2406,7 +2405,7 @@ sub_8116474: @ 8116474
subs r0, 0x2
strh r0, [r1]
_081164A0:
- ldr r1, _081164D0 @ =0x02019000
+ ldr r1, _081164D0 @ =gSharedMem + 0x19000
ldrh r0, [r1, 0x26]
subs r0, 0x4
strh r0, [r1, 0x26]
@@ -2429,7 +2428,7 @@ _081164A0:
.align 2, 0
_081164C8: .4byte gTasks
_081164CC: .4byte gSpriteCoordOffsetX
-_081164D0: .4byte 0x02019000
+_081164D0: .4byte gSharedMem + 0x19000
_081164D4: .4byte gSprites
_081164D8: .4byte sub_81184CC
_081164DC:
@@ -2770,7 +2769,7 @@ sub_811677C: @ 811677C
lsls r0, 24
lsrs r0, 24
ldr r3, _081167DC @ =gStringVar1
- ldr r6, _081167E0 @ =0x02019000
+ ldr r6, _081167E0 @ =gSharedMem + 0x19000
ldrb r2, [r6, 0x19]
ldr r1, _081167E4 @ =gTasks
lsls r4, r0, 2
@@ -2812,7 +2811,7 @@ sub_811677C: @ 811677C
bx r0
.align 2, 0
_081167DC: .4byte gStringVar1
-_081167E0: .4byte 0x02019000
+_081167E0: .4byte gSharedMem + 0x19000
_081167E4: .4byte gTasks
_081167E8: .4byte gStringVar4
_081167EC: .4byte gUnknown_081C41BD
@@ -2825,7 +2824,7 @@ sub_81167F4: @ 81167F4
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r4, _08116868 @ =0x020190b8
+ ldr r4, _08116868 @ =gSharedMem + 0x190B8
ldr r1, _0811686C @ =0x0000ffff
adds r0, r4, 0
bl sub_8124D3C
@@ -2878,7 +2877,7 @@ sub_81167F4: @ 81167F4
pop {r0}
bx r0
.align 2, 0
-_08116868: .4byte 0x020190b8
+_08116868: .4byte gSharedMem + 0x190B8
_0811686C: .4byte 0x0000ffff
_08116870: .4byte gSprites
_08116874: .4byte gUnknown_083F8C00
@@ -2903,7 +2902,7 @@ sub_8116880: @ 8116880
adds r0, r1
movs r2, 0
strh r5, [r0, 0x10]
- ldr r4, _08116958 @ =0x02019000
+ ldr r4, _08116958 @ =gSharedMem + 0x19000
ldrb r0, [r4, 0x1A]
lsls r0, 28
lsrs r0, 28
@@ -2993,7 +2992,7 @@ _081168E4:
b _08116992
.align 2, 0
_08116954: .4byte gTasks
-_08116958: .4byte 0x02019000
+_08116958: .4byte gSharedMem + 0x19000
_0811695C: .4byte gSprites
_08116960: .4byte 0xfffffc00
_08116964: .4byte 0x000003ff
@@ -3081,7 +3080,7 @@ dp01t_12_3_battle_menu: @ 81169F4
movs r0, 0x6
bl sub_81182F8
ldr r7, _08116A88 @ =gSprites
- ldr r3, _08116A8C @ =0x0201903c
+ ldr r3, _08116A8C @ =gSharedMem + 0x1903C
movs r6, 0x5
negs r6, r6
_08116A2A:
@@ -3130,7 +3129,7 @@ _08116A2A:
.align 2, 0
_08116A84: .4byte gTasks
_08116A88: .4byte gSprites
-_08116A8C: .4byte 0x0201903c
+_08116A8C: .4byte gSharedMem + 0x1903C
_08116A90: .4byte 0x0000270f
_08116A94: .4byte gUnknown_081C4231
_08116A98: .4byte sub_8115734
@@ -3152,7 +3151,7 @@ sub_8116AB0: @ 8116AB0
sub sp, 0x4
lsls r0, 24
lsrs r5, r0, 24
- ldr r4, _08116AF0 @ =0x020190b8
+ ldr r4, _08116AF0 @ =gSharedMem + 0x190B8
ldr r1, _08116AF4 @ =0x0000ffff
adds r0, r4, 0
bl sub_8124D3C
@@ -3178,7 +3177,7 @@ sub_8116AB0: @ 8116AB0
movs r0, 0x1
b _08116B0C
.align 2, 0
-_08116AF0: .4byte 0x020190b8
+_08116AF0: .4byte gSharedMem + 0x190B8
_08116AF4: .4byte 0x0000ffff
_08116AF8: .4byte gSaveBlock1
_08116AFC: .4byte gTasks
@@ -3225,7 +3224,7 @@ sub_8116B40: @ 8116B40
bne _08116B9E
movs r0, 0
bl SetVBlankCallback
- ldr r0, _08116BA4 @ =0x02019000
+ ldr r0, _08116BA4 @ =gSharedMem + 0x19000
movs r2, 0xBE
lsls r2, 1
movs r1, 0
@@ -3257,7 +3256,7 @@ _08116B9E:
pop {r0}
bx r0
.align 2, 0
-_08116BA4: .4byte 0x02019000
+_08116BA4: .4byte gSharedMem + 0x19000
_08116BA8: .4byte gSpriteCoordOffsetX
_08116BAC: .4byte gSpriteCoordOffsetY
_08116BB0: .4byte REG_BLDCNT
@@ -3271,7 +3270,7 @@ sub_8116BC0: @ 8116BC0
push {r4-r7,lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r0, _08116C24 @ =0x02019000
+ ldr r0, _08116C24 @ =gSharedMem + 0x19000
adds r7, r0, 0
adds r7, 0xA8
ldrh r1, [r7]
@@ -3322,7 +3321,7 @@ _08116C1E:
pop {r0}
bx r0
.align 2, 0
-_08116C24: .4byte 0x02019000
+_08116C24: .4byte gSharedMem + 0x19000
_08116C28: .4byte gMain
_08116C2C: .4byte gTasks
_08116C30: .4byte 0x0000ffff
@@ -3338,7 +3337,7 @@ sub_8116C34: @ 8116C34
lsrs r4, r2, 16
lsls r3, 16
lsrs r3, 16
- ldr r0, _08116C84 @ =0x02019000
+ ldr r0, _08116C84 @ =gSharedMem + 0x19000
mov r12, r0
mov r2, r12
adds r2, 0xB4
@@ -3372,7 +3371,7 @@ _08116C64:
strh r4, [r1]
b _08116C96
.align 2, 0
-_08116C84: .4byte 0x02019000
+_08116C84: .4byte gSharedMem + 0x19000
_08116C88: .4byte gTasks
_08116C8C: .4byte 0x0000ffff
_08116C90:
@@ -3399,7 +3398,7 @@ sub_8116CAC: @ 8116CAC
lsls r0, 24
lsrs r5, r0, 24
movs r2, 0
- ldr r0, _08116CF0 @ =0x02019000
+ ldr r0, _08116CF0 @ =gSharedMem + 0x19000
strb r2, [r0]
movs r1, 0
strb r1, [r0, 0x3]
@@ -3430,14 +3429,14 @@ _08116CC4:
pop {r0}
bx r0
.align 2, 0
-_08116CF0: .4byte 0x02019000
+_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 @ =0x02019000
+ ldr r1, _08116D48 @ =gSharedMem + 0x19000
movs r0, 0
str r0, [r1, 0x8]
movs r2, 0
@@ -3452,7 +3451,7 @@ _08116D06:
cmp r2, 0x5
bls _08116D06
movs r2, 0
- ldr r3, _08116D4C @ =0x02019012
+ ldr r3, _08116D4C @ =gSharedMem + 0x19012
movs r1, 0
_08116D1A:
adds r0, r2, r3
@@ -3463,7 +3462,7 @@ _08116D1A:
cmp r2, 0x3
bls _08116D1A
movs r2, 0
- ldr r3, _08116D50 @ =0x02019016
+ ldr r3, _08116D50 @ =gSharedMem + 0x19016
movs r1, 0
_08116D2E:
adds r0, r2, r3
@@ -3479,9 +3478,9 @@ _08116D2E:
pop {r0}
bx r0
.align 2, 0
-_08116D48: .4byte 0x02019000
-_08116D4C: .4byte 0x02019012
-_08116D50: .4byte 0x02019016
+_08116D48: .4byte gSharedMem + 0x19000
+_08116D4C: .4byte gSharedMem + 0x19012
+_08116D50: .4byte gSharedMem + 0x19016
thumb_func_end sub_8116CF8
thumb_func_start sub_8116D54
@@ -3515,7 +3514,7 @@ sub_8116D54: @ 8116D54
_08116D88: .4byte gUnknown_083F8ED8
_08116D8C: .4byte gUnknown_083F8EE8
_08116D90:
- ldr r6, _08116E48 @ =0x02019000
+ ldr r6, _08116E48 @ =gSharedMem + 0x19000
ldr r1, _08116E4C @ =gTasks
lsls r0, r3, 2
adds r0, r3
@@ -3574,7 +3573,7 @@ _08116DEE:
ldr r0, _08116E54 @ =gUnknown_083F8D90 + 0x4
add r0, r12
ldr r7, [r0]
- ldr r4, _08116E58 @ =0x02019016
+ ldr r4, _08116E58 @ =gSharedMem + 0x19016
mov r5, r9
_08116E04:
lsls r0, r2, 2
@@ -3614,11 +3613,11 @@ _08116E38:
pop {r1}
bx r1
.align 2, 0
-_08116E48: .4byte 0x02019000
+_08116E48: .4byte gSharedMem + 0x19000
_08116E4C: .4byte gTasks
_08116E50: .4byte gUnknown_083F8D90
_08116E54: .4byte gUnknown_083F8D90 + 0x4
-_08116E58: .4byte 0x02019016
+_08116E58: .4byte gSharedMem + 0x19016
thumb_func_end sub_8116D54
thumb_func_start sub_8116E5C
@@ -3722,7 +3721,7 @@ _08116F1E:
lsls r0, 24
lsrs r4, r0, 24
adds r0, r6, 0x5
- ldr r7, _08116F70 @ =0x020190b8
+ ldr r7, _08116F70 @ =gSharedMem + 0x190B8
cmp r4, r0
bge _08116F5E
adds r1, r7, 0
@@ -3762,7 +3761,7 @@ _08116F5E:
bl sub_8124CE8
b _0811713C
.align 2, 0
-_08116F70: .4byte 0x020190b8
+_08116F70: .4byte gSharedMem + 0x190B8
_08116F74: .4byte gUnknown_083F8C00
_08116F78: .4byte 0x0000dfff
_08116F7C:
@@ -3801,51 +3800,51 @@ _08116F9A:
bgt _08116FD4
cmp r0, 0x1
beq _08116FE4
- ldr r4, _08116FD0 @ =0x02019000
+ ldr r4, _08116FD0 @ =gSharedMem + 0x19000
b _0811703A
.align 2, 0
_08116FC8: .4byte gUnknown_083F8E9C
_08116FCC: .4byte 0xffff0000
-_08116FD0: .4byte 0x02019000
+_08116FD0: .4byte gSharedMem + 0x19000
_08116FD4:
cmp r0, 0x3
beq _0811700C
cmp r0, 0x4
beq _08117020
- ldr r4, _08116FE0 @ =0x02019000
+ ldr r4, _08116FE0 @ =gSharedMem + 0x19000
b _0811703A
.align 2, 0
-_08116FE0: .4byte 0x02019000
+_08116FE0: .4byte gSharedMem + 0x19000
_08116FE4:
ldr r3, _08116FF0 @ =gSprites
- ldr r2, _08116FF4 @ =0x02019000
+ ldr r2, _08116FF4 @ =gSharedMem + 0x19000
adds r0, r2, 0
adds r0, 0x43
b _08117028
.align 2, 0
_08116FF0: .4byte gSprites
-_08116FF4: .4byte 0x02019000
+_08116FF4: .4byte gSharedMem + 0x19000
_08116FF8:
ldr r3, _08117004 @ =gSprites
- ldr r2, _08117008 @ =0x02019000
+ ldr r2, _08117008 @ =gSharedMem + 0x19000
adds r0, r2, 0
adds r0, 0x44
b _08117028
.align 2, 0
_08117004: .4byte gSprites
-_08117008: .4byte 0x02019000
+_08117008: .4byte gSharedMem + 0x19000
_0811700C:
ldr r3, _08117018 @ =gSprites
- ldr r2, _0811701C @ =0x02019000
+ ldr r2, _0811701C @ =gSharedMem + 0x19000
adds r0, r2, 0
adds r0, 0x45
b _08117028
.align 2, 0
_08117018: .4byte gSprites
-_0811701C: .4byte 0x02019000
+_0811701C: .4byte gSharedMem + 0x19000
_08117020:
ldr r3, _08117088 @ =gSprites
- ldr r2, _0811708C @ =0x02019000
+ ldr r2, _0811708C @ =gSharedMem + 0x19000
adds r0, r2, 0
adds r0, 0x46
_08117028:
@@ -3897,13 +3896,13 @@ _0811703A:
b _08117122
.align 2, 0
_08117088: .4byte gSprites
-_0811708C: .4byte 0x02019000
+_0811708C: .4byte gSharedMem + 0x19000
_08117090: .4byte gUnknown_083F8C00
_08117094:
movs r4, 0
lsls r0, r6, 2
str r0, [sp, 0x1C]
- ldr r1, _0811714C @ =0x02019000
+ ldr r1, _0811714C @ =gSharedMem + 0x19000
mov r8, r1
ldr r2, _08117150 @ =gUnknown_083F8C00
mov r9, r2
@@ -3973,7 +3972,7 @@ _0811710E:
movs r3, 0
str r3, [sp, 0x18]
_08117122:
- ldr r0, _08117154 @ =0x020190b8
+ ldr r0, _08117154 @ =gSharedMem + 0x190B8
ldr r2, _08117150 @ =gUnknown_083F8C00
ldr r4, [sp, 0x1C]
adds r1, r4, r6
@@ -3995,9 +3994,9 @@ _0811713C:
pop {r0}
bx r0
.align 2, 0
-_0811714C: .4byte 0x02019000
+_0811714C: .4byte gSharedMem + 0x19000
_08117150: .4byte gUnknown_083F8C00
-_08117154: .4byte 0x020190b8
+_08117154: .4byte gSharedMem + 0x190B8
thumb_func_end sub_8116EF8
thumb_func_start sub_8117158
@@ -4010,7 +4009,7 @@ sub_8117158: @ 8117158
sub sp, 0x24
lsls r0, 24
lsrs r5, r0, 24
- ldr r4, _0811719C @ =0x02019000
+ ldr r4, _0811719C @ =gSharedMem + 0x19000
movs r0, 0x1
strh r0, [r4, 0x2A]
movs r0, 0
@@ -4035,7 +4034,7 @@ sub_8117158: @ 8117158
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0811719C: .4byte 0x02019000
+_0811719C: .4byte gSharedMem + 0x19000
_081171A0: .4byte gBGTilemapBuffers + 0x800
_081171A4: .4byte 0xfffff800
_081171A8: .4byte _081171AC
@@ -4172,7 +4171,7 @@ _0811727C:
ldr r0, _08117374 @ =gBGTilemapBuffers + 0x800
mov r8, r0
ldr r6, [sp, 0x1C]
- ldr r1, _08117378 @ =0x020189a0
+ ldr r1, _08117378 @ =gSharedMem + 0x189A0
mov r10, r1
_081172C8:
mov r1, r12
@@ -4233,7 +4232,7 @@ _081172C8:
lsls r0, r1, 1
adds r0, r1
lsls r0, 1
- ldr r1, _0811737C @ =0x020189a4
+ ldr r1, _0811737C @ =gSharedMem + 0x189A4
adds r0, r1
ldrh r0, [r0]
strh r0, [r2]
@@ -4264,8 +4263,8 @@ _08117360:
.align 2, 0
_08117370: .4byte gUnknown_083F8C00
_08117374: .4byte gBGTilemapBuffers + 0x800
-_08117378: .4byte 0x020189a0
-_0811737C: .4byte 0x020189a4
+_08117378: .4byte gSharedMem + 0x189A0
+_0811737C: .4byte gSharedMem + 0x189A4
thumb_func_end sub_8117158
thumb_func_start sub_8117380
@@ -4311,7 +4310,7 @@ _081173C6:
subs r0, 0x1
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _081173E8 @ =0x02019000
+ ldr r0, _081173E8 @ =gSharedMem + 0x19000
adds r0, 0x16
adds r1, r4, r0
ldrb r0, [r1]
@@ -4321,12 +4320,12 @@ _081173C6:
adds r0, 0x1
b _08117402
.align 2, 0
-_081173E8: .4byte 0x02019000
+_081173E8: .4byte gSharedMem + 0x19000
_081173EC:
subs r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _08117408 @ =0x02019000
+ ldr r0, _08117408 @ =gSharedMem + 0x19000
adds r0, 0x12
adds r1, r4, r0
ldrb r0, [r1]
@@ -4339,9 +4338,9 @@ _08117402:
ldrb r0, [r0]
b _0811742A
.align 2, 0
-_08117408: .4byte 0x02019000
+_08117408: .4byte gSharedMem + 0x19000
_0811740C:
- ldr r1, _08117424 @ =0x02019000
+ ldr r1, _08117424 @ =gSharedMem + 0x19000
adds r0, r3, 0
adds r0, 0x8
adds r0, r2, r0
@@ -4354,7 +4353,7 @@ _0811740C:
ldrb r0, [r0, 0x4]
b _0811742A
.align 2, 0
-_08117424: .4byte 0x02019000
+_08117424: .4byte gSharedMem + 0x19000
_08117428:
movs r0, 0
_0811742A:
@@ -4368,7 +4367,7 @@ _0811742A:
sub_8117434: @ 8117434
push {r4-r6,lr}
ldr r1, _081174AC @ =REG_BG2PA
- ldr r4, _081174B0 @ =0x02019000
+ ldr r4, _081174B0 @ =gSharedMem + 0x19000
ldrh r0, [r4, 0x2C]
strh r0, [r1]
adds r1, 0x2
@@ -4428,7 +4427,7 @@ sub_8117434: @ 8117434
bx r0
.align 2, 0
_081174AC: .4byte REG_BG2PA
-_081174B0: .4byte 0x02019000
+_081174B0: .4byte gSharedMem + 0x19000
_081174B4: .4byte gSpriteCoordOffsetY
_081174B8: .4byte gSpriteCoordOffsetX
_081174BC: .4byte REG_BG2X_L
@@ -4863,7 +4862,7 @@ sub_8117838: @ 8117838
ldr r0, _08117870 @ =gUnknown_083F9E30
bl LoadSpritePalettes
ldr r0, _08117874 @ =gUnknown_083F92A8
- ldr r4, _08117878 @ =0x02017000
+ ldr r4, _08117878 @ =gSharedMem + 0x17000
adds r1, r4, 0
bl LZ77UnCompWram
ldr r0, _0811787C @ =gUnknown_083F90FC
@@ -4881,7 +4880,7 @@ sub_8117838: @ 8117838
.align 2, 0
_08117870: .4byte gUnknown_083F9E30
_08117874: .4byte gUnknown_083F92A8
-_08117878: .4byte 0x02017000
+_08117878: .4byte gSharedMem + 0x17000
_0811787C: .4byte gUnknown_083F90FC
_08117880: .4byte gUnknown_083F9D3C
_08117884:
@@ -4959,7 +4958,7 @@ sub_8117900: @ 8117900
sub sp, 0x8
ldr r4, _08117A50 @ =gUnknown_083F9F54
ldr r0, [r4]
- ldr r5, _08117A54 @ =0x02000000
+ ldr r5, _08117A54 @ =gSharedMem
adds r1, r5, 0
bl LZ77UnCompWram
str r5, [sp]
@@ -5041,7 +5040,7 @@ _081179A0:
cmp r7, 0x2
bls _08117950
movs r7, 0
- ldr r5, _08117A68 @ =0x0201903c
+ ldr r5, _08117A68 @ =gSharedMem + 0x1903C
ldr r4, _08117A60 @ =gSprites
_081179BA:
lsls r1, r7, 1
@@ -5076,7 +5075,7 @@ _081179BA:
cmp r7, 0x3
bls _081179BA
movs r7, 0
- ldr r5, _08117A68 @ =0x0201903c
+ ldr r5, _08117A68 @ =gSharedMem + 0x1903C
ldr r4, _08117A60 @ =gSprites
_08117A00:
lsls r2, r7, 1
@@ -5119,12 +5118,12 @@ _08117A00:
bx r0
.align 2, 0
_08117A50: .4byte gUnknown_083F9F54
-_08117A54: .4byte 0x02000000
+_08117A54: .4byte gSharedMem
_08117A58: .4byte gUnknown_083F9F5C
_08117A5C: .4byte 0x0001903c
_08117A60: .4byte gSprites
_08117A64: .4byte gSpriteTemplate_83FA07C
-_08117A68: .4byte 0x0201903c
+_08117A68: .4byte gSharedMem + 0x1903C
_08117A6C: .4byte gSpriteTemplate_83F9FD4
_08117A70: .4byte gSpriteTemplate_83FA034
thumb_func_end sub_8117900
@@ -5133,7 +5132,7 @@ _08117A70: .4byte gSpriteTemplate_83FA034
unref_sub_8117A74: @ 8117A74
push {r4,r5,lr}
movs r4, 0
- ldr r5, _08117AA0 @ =0x0201903c
+ ldr r5, _08117AA0 @ =gSharedMem + 0x1903C
_08117A7A:
adds r0, r4, 0
adds r0, 0x1D
@@ -5154,7 +5153,7 @@ _08117A7A:
pop {r0}
bx r0
.align 2, 0
-_08117AA0: .4byte 0x0201903c
+_08117AA0: .4byte gSharedMem + 0x1903C
_08117AA4: .4byte gSprites
thumb_func_end unref_sub_8117A74
@@ -5175,7 +5174,7 @@ sub_8117AA8: @ 8117AA8
bne _08117BA8
movs r3, 0
ldr r5, _08117AF0 @ =gSprites
- ldr r4, _08117AF4 @ =0x0201903c
+ ldr r4, _08117AF4 @ =gSharedMem + 0x1903C
movs r2, 0x4
_08117ACA:
adds r0, r3, 0
@@ -5198,12 +5197,12 @@ _08117ACA:
b _08117BA8
.align 2, 0
_08117AF0: .4byte gSprites
-_08117AF4: .4byte 0x0201903c
+_08117AF4: .4byte gSharedMem + 0x1903C
_08117AF8:
movs r3, 0
ldr r0, _08117B48 @ =gUnknown_083F8D90
mov r12, r0
- ldr r7, _08117B4C @ =0x02019000
+ ldr r7, _08117B4C @ =gSharedMem + 0x19000
movs r1, 0x4
add r1, r12
mov r9, r1
@@ -5242,7 +5241,7 @@ _08117B10:
b _08117B6E
.align 2, 0
_08117B48: .4byte gUnknown_083F8D90
-_08117B4C: .4byte 0x02019000
+_08117B4C: .4byte gSharedMem + 0x19000
_08117B50: .4byte gSprites
_08117B54:
adds r0, r3, 0
@@ -5267,7 +5266,7 @@ _08117B6E:
cmp r3, 0x12
bhi _08117BA8
ldr r6, _08117BB4 @ =gSprites
- ldr r4, _08117BB8 @ =0x0201903c
+ ldr r4, _08117BB8 @ =gSharedMem + 0x1903C
movs r5, 0x5
negs r5, r5
_08117B84:
@@ -5298,7 +5297,7 @@ _08117BA8:
bx r0
.align 2, 0
_08117BB4: .4byte gSprites
-_08117BB8: .4byte 0x0201903c
+_08117BB8: .4byte gSharedMem + 0x1903C
thumb_func_end sub_8117AA8
thumb_func_start sub_8117BBC
@@ -5307,7 +5306,7 @@ sub_8117BBC: @ 8117BBC
mov r7, r8
push {r7}
movs r5, 0
- ldr r0, _08117C50 @ =0x0201903c
+ ldr r0, _08117C50 @ =gSharedMem + 0x1903C
mov r8, r0
ldr r4, _08117C54 @ =gSprites
movs r6, 0x4
@@ -5376,7 +5375,7 @@ _08117BCC:
pop {r0}
bx r0
.align 2, 0
-_08117C50: .4byte 0x0201903c
+_08117C50: .4byte gSharedMem + 0x1903C
_08117C54: .4byte gSprites
_08117C58: .4byte gSpriteTemplate_83FA40C
_08117C5C: .4byte sub_81184CC
@@ -5397,7 +5396,7 @@ sub_8117C60: @ 8117C60
cmp r0, 0
beq _08117CAC
ldr r4, _08117CA4 @ =gSprites
- ldr r3, _08117CA8 @ =0x0201903c
+ ldr r3, _08117CA8 @ =gSharedMem + 0x1903C
movs r2, 0x4
_08117C7E:
adds r0, r5, 0
@@ -5420,9 +5419,9 @@ _08117C7E:
b _08117D58
.align 2, 0
_08117CA4: .4byte gSprites
-_08117CA8: .4byte 0x0201903c
+_08117CA8: .4byte gSharedMem + 0x1903C
_08117CAC:
- ldr r0, _08117CEC @ =0x02019000
+ ldr r0, _08117CEC @ =gSharedMem + 0x19000
mov r12, r0
ldr r6, _08117CF0 @ =gSprites
movs r0, 0x3C
@@ -5457,7 +5456,7 @@ _08117CD0:
strb r1, [r0]
b _08117D4E
.align 2, 0
-_08117CEC: .4byte 0x02019000
+_08117CEC: .4byte gSharedMem + 0x19000
_08117CF0: .4byte gSprites
_08117CF4: .4byte gUnknown_083F8C00
_08117CF8:
@@ -5528,7 +5527,7 @@ sub_8117D68: @ 8117D68
cmp r5, 0
bne _08117D98
ldr r2, _08117D90 @ =gSprites
- ldr r0, _08117D94 @ =0x02019000
+ ldr r0, _08117D94 @ =gSharedMem + 0x19000
adds r0, 0x6C
ldrb r1, [r0]
lsls r0, r1, 4
@@ -5543,10 +5542,10 @@ sub_8117D68: @ 8117D68
b _08117DE2
.align 2, 0
_08117D90: .4byte gSprites
-_08117D94: .4byte 0x02019000
+_08117D94: .4byte gSharedMem + 0x19000
_08117D98:
ldr r4, _08117DE8 @ =gSprites
- ldr r3, _08117DEC @ =0x02019000
+ ldr r3, _08117DEC @ =gSharedMem + 0x19000
adds r3, 0x6C
ldrb r1, [r3]
lsls r0, r1, 4
@@ -5588,7 +5587,7 @@ _08117DE2:
bx r0
.align 2, 0
_08117DE8: .4byte gSprites
-_08117DEC: .4byte 0x02019000
+_08117DEC: .4byte gSharedMem + 0x19000
_08117DF0: .4byte gUnknown_083F8C00
thumb_func_end sub_8117D68
@@ -5600,7 +5599,7 @@ sub_8117DF4: @ 8117DF4
sub sp, 0xC
ldr r4, _08117E84 @ =gUnknown_083F9EE8
ldr r0, [r4]
- ldr r5, _08117E88 @ =0x02000000
+ ldr r5, _08117E88 @ =gSharedMem
adds r1, r5, 0
bl LZ77UnCompWram
str r5, [sp, 0x4]
@@ -5667,7 +5666,7 @@ _08117E30:
bx r0
.align 2, 0
_08117E84: .4byte gUnknown_083F9EE8
-_08117E88: .4byte 0x02000000
+_08117E88: .4byte gSharedMem
_08117E8C: .4byte 0x0001903c
_08117E90: .4byte gSprites
_08117E94: .4byte gSpriteTemplate_83FA0DC
@@ -5677,7 +5676,7 @@ _08117E94: .4byte gSpriteTemplate_83FA0DC
sub_8117E98: @ 8117E98
push {r4-r6,lr}
adds r6, r0, 0
- ldr r0, _08117F1C @ =0x02019000
+ ldr r0, _08117F1C @ =gSharedMem + 0x19000
ldrh r1, [r6, 0x2E]
ldrh r0, [r0, 0x24]
adds r1, r0
@@ -5742,7 +5741,7 @@ _08117F04:
pop {r0}
bx r0
.align 2, 0
-_08117F1C: .4byte 0x02019000
+_08117F1C: .4byte gSharedMem + 0x19000
_08117F20: .4byte 0x00000167
_08117F24: .4byte 0xfffffe98
_08117F28: .4byte gOamMatrices
@@ -5755,7 +5754,7 @@ sub_8117F2C: @ 8117F2C
push {r7}
sub sp, 0x8
movs r5, 0
- ldr r7, _081180C8 @ =0x02000000
+ ldr r7, _081180C8 @ =gSharedMem
mov r6, sp
_08117F3A:
ldr r0, _081180CC @ =gUnknown_083FA21C
@@ -5789,7 +5788,7 @@ _08117F3A:
movs r2, 0x10
movs r3, 0x4
bl CreateSprite
- ldr r4, _081180DC @ =0x02019000
+ ldr r4, _081180DC @ =gSharedMem + 0x19000
adds r1, r4, 0
adds r1, 0x50
strb r0, [r1]
@@ -5851,7 +5850,7 @@ _08117FA2:
movs r2, 0x44
movs r3, 0x4
bl CreateSprite
- ldr r3, _081180DC @ =0x02019000
+ ldr r3, _081180DC @ =gSharedMem + 0x19000
adds r1, r3, 0
adds r1, 0x55
strb r0, [r1]
@@ -5913,7 +5912,7 @@ _08118020:
movs r2, 0x60
movs r3, 0x9
bl CreateSprite
- ldr r3, _081180DC @ =0x02019000
+ ldr r3, _081180DC @ =gSharedMem + 0x19000
adds r3, 0x6C
strb r0, [r3]
ldr r4, _081180E0 @ =gSprites
@@ -5953,12 +5952,12 @@ _08118020:
pop {r0}
bx r0
.align 2, 0
-_081180C8: .4byte 0x02000000
+_081180C8: .4byte gSharedMem
_081180CC: .4byte gUnknown_083FA21C
_081180D0: .4byte 0xffff0000
_081180D4: .4byte 0x0000ffff
_081180D8: .4byte gSpriteTemplate_83FA2B0
-_081180DC: .4byte 0x02019000
+_081180DC: .4byte gSharedMem + 0x19000
_081180E0: .4byte gSprites
_081180E4: .4byte gSpriteTemplate_83FA2C8
_081180E8: .4byte gSpriteTemplate_83FA2E0
@@ -5980,7 +5979,7 @@ sub_81180F4: @ 81180F4
mov r8, r0
movs r4, 0
movs r6, 0
- ldr r1, _081181D4 @ =0x02019000
+ ldr r1, _081181D4 @ =gSharedMem + 0x19000
mov r9, r1
ldr r0, _081181D8 @ =gSprites
mov r10, r0
@@ -6081,7 +6080,7 @@ _081181A2:
pop {r0}
bx r0
.align 2, 0
-_081181D4: .4byte 0x02019000
+_081181D4: .4byte gSharedMem + 0x19000
_081181D8: .4byte gSprites
_081181DC: .4byte gSprites + 0x8
_081181E0: .4byte 0x000003ff
@@ -6131,7 +6130,7 @@ _0811822E:
subs r0, 0x1
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _08118250 @ =0x02019000
+ ldr r0, _08118250 @ =gSharedMem + 0x19000
adds r0, 0x16
adds r1, r4, r0
ldrb r0, [r1]
@@ -6141,12 +6140,12 @@ _0811822E:
adds r0, 0x1
b _0811826A
.align 2, 0
-_08118250: .4byte 0x02019000
+_08118250: .4byte gSharedMem + 0x19000
_08118254:
subs r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _08118270 @ =0x02019000
+ ldr r0, _08118270 @ =gSharedMem + 0x19000
adds r0, 0x12
adds r1, r4, r0
ldrb r0, [r1]
@@ -6159,9 +6158,9 @@ _0811826A:
ldrb r0, [r0]
b _08118292
.align 2, 0
-_08118270: .4byte 0x02019000
+_08118270: .4byte gSharedMem + 0x19000
_08118274:
- ldr r1, _0811828C @ =0x02019000
+ ldr r1, _0811828C @ =gSharedMem + 0x19000
adds r0, r3, 0
adds r0, 0x8
adds r0, r2, r0
@@ -6174,7 +6173,7 @@ _08118274:
ldrb r0, [r0, 0x4]
b _08118292
.align 2, 0
-_0811828C: .4byte 0x02019000
+_0811828C: .4byte gSharedMem + 0x19000
_08118290:
movs r0, 0
_08118292:
@@ -6189,7 +6188,7 @@ sub_811829C: @ 811829C
push {r4,lr}
lsls r0, 24
lsrs r0, 24
- ldr r1, _081182E8 @ =0x02019000
+ ldr r1, _081182E8 @ =gSharedMem + 0x19000
adds r1, 0x55
ldrb r2, [r1]
lsls r1, r2, 4
@@ -6223,7 +6222,7 @@ sub_811829C: @ 811829C
pop {r0}
bx r0
.align 2, 0
-_081182E8: .4byte 0x02019000
+_081182E8: .4byte gSharedMem + 0x19000
_081182EC: .4byte gSprites
_081182F0: .4byte 0x000003ff
_081182F4: .4byte 0xfffffc00
@@ -6237,7 +6236,7 @@ sub_81182F8: @ 81182F8
lsls r0, 24
lsrs r2, r0, 24
movs r5, 0
- ldr r0, _08118320 @ =0x02019000
+ ldr r0, _08118320 @ =gSharedMem + 0x19000
ldrb r1, [r0, 0x19]
adds r3, r0, 0
cmp r1, 0x1
@@ -6254,7 +6253,7 @@ _08118316:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08118320: .4byte 0x02019000
+_08118320: .4byte gSharedMem + 0x19000
_08118324: .4byte _08118328
.align 2, 0
_08118328:
@@ -6268,7 +6267,7 @@ _08118328:
_08118344:
movs r4, 0
ldr r5, _081183A8 @ =gSprites
- ldr r0, _081183AC @ =0x0201903c
+ ldr r0, _081183AC @ =gSharedMem + 0x1903C
mov r8, r0
movs r2, 0x5
negs r2, r2
@@ -6319,7 +6318,7 @@ _08118358:
b _081184B2
.align 2, 0
_081183A8: .4byte gSprites
-_081183AC: .4byte 0x0201903c
+_081183AC: .4byte gSharedMem + 0x1903C
_081183B0: .4byte 0xfffffc00
_081183B4: .4byte 0x000003ff
_081183B8:
@@ -6417,7 +6416,7 @@ _08118464:
movs r4, 0
lsls r6, r5, 2
ldr r5, _081184BC @ =gSprites
- ldr r0, _081184C0 @ =0x0201903c
+ ldr r0, _081184C0 @ =gSharedMem + 0x1903C
mov r8, r0
adds r7, r5, 0
adds r7, 0x8
@@ -6462,19 +6461,19 @@ _081184B2:
bx r0
.align 2, 0
_081184BC: .4byte gSprites
-_081184C0: .4byte 0x0201903c
+_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 @ =0x02019000
+ ldr r1, _081184D4 @ =gSharedMem + 0x19000
ldrh r1, [r1, 0x26]
strh r1, [r0, 0x24]
bx lr
.align 2, 0
-_081184D4: .4byte 0x02019000
+_081184D4: .4byte gSharedMem + 0x19000
thumb_func_end sub_81184CC
thumb_func_start sub_81184D8
@@ -6483,7 +6482,7 @@ sub_81184D8: @ 81184D8
sub sp, 0x8
ldr r4, _08118544 @ =gUnknown_083FA42C
ldr r0, [r4]
- ldr r5, _08118548 @ =0x02000000
+ ldr r5, _08118548 @ =gSharedMem
adds r1, r5, 0
bl LZ77UnCompWram
str r5, [sp]
@@ -6532,7 +6531,7 @@ sub_81184D8: @ 81184D8
bx r0
.align 2, 0
_08118544: .4byte gUnknown_083FA42C
-_08118548: .4byte 0x02000000
+_08118548: .4byte gSharedMem
_0811854C: .4byte gSpriteTemplate_83FA434
_08118550: .4byte gSprites
thumb_func_end sub_81184D8
@@ -6545,7 +6544,7 @@ sub_8118554: @ 8118554
ldr r1, _08118574 @ =gOamMatrices
lsls r0, 3
adds r0, r1
- ldr r2, _08118578 @ =0x02019000
+ ldr r2, _08118578 @ =gSharedMem + 0x19000
ldrh r1, [r2, 0x2C]
strh r1, [r0, 0x6]
ldrh r1, [r2, 0x2C]
@@ -6557,14 +6556,14 @@ sub_8118554: @ 8118554
bx lr
.align 2, 0
_08118574: .4byte gOamMatrices
-_08118578: .4byte 0x02019000
+_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 @ =0x0201903c
+ ldr r6, _081185DC @ =gSharedMem + 0x1903C
ldr r5, _081185E0 @ =gSprites
_08118584:
movs r3, 0x39
@@ -6611,7 +6610,7 @@ _081185CA:
pop {r0}
bx r0
.align 2, 0
-_081185DC: .4byte 0x0201903c
+_081185DC: .4byte gSharedMem + 0x1903C
_081185E0: .4byte gSprites
_081185E4: .4byte gSpriteTemplate_83FA40C
thumb_func_end sub_811857C
@@ -6623,7 +6622,7 @@ sub_81185E8: @ 81185E8
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r0, _08118660 @ =0x02019000
+ ldr r0, _08118660 @ =gSharedMem + 0x19000
adds r0, 0x3C
ldrb r5, [r0]
movs r6, 0
@@ -6680,7 +6679,7 @@ _08118632:
pop {r0}
bx r0
.align 2, 0
-_08118660: .4byte 0x02019000
+_08118660: .4byte gSharedMem + 0x19000
_08118664: .4byte gSprites
_08118668: .4byte SpriteCallbackDummy
thumb_func_end sub_81185E8
@@ -6689,7 +6688,7 @@ _08118668: .4byte SpriteCallbackDummy
sub_811866C: @ 811866C
push {r4,r5,lr}
adds r3, r0, 0
- ldr r0, _0811869C @ =0x02019000
+ ldr r0, _0811869C @ =gSharedMem + 0x19000
ldrh r4, [r0, 0x24]
movs r2, 0x24
ldrsh r1, [r0, r2]
@@ -6711,7 +6710,7 @@ sub_811866C: @ 811866C
adds r0, r2, r5
b _081186AA
.align 2, 0
-_0811869C: .4byte 0x02019000
+_0811869C: .4byte gSharedMem + 0x19000
_081186A0: .4byte 0x01670000
_081186A4: .4byte 0xfffffe98
_081186A8:
@@ -6730,7 +6729,7 @@ _081186AC:
sub_81186B8: @ 81186B8
push {r4,lr}
bl sub_811866C
- ldr r4, _081186E0 @ =0x02019000
+ ldr r4, _081186E0 @ =gSharedMem + 0x19000
lsls r0, 16
asrs r0, 16
bl __floatsisf
@@ -6744,7 +6743,7 @@ sub_81186B8: @ 81186B8
pop {r1}
bx r1
.align 2, 0
-_081186E0: .4byte 0x02019000
+_081186E0: .4byte gSharedMem + 0x19000
_081186E4: .4byte 0x41f00000
thumb_func_end sub_81186B8
@@ -6790,7 +6789,7 @@ sub_8118724: @ 8118724
mov r7, r8
push {r7}
adds r6, r0, 0
- ldr r5, _08118770 @ =0x02019000
+ ldr r5, _08118770 @ =gSharedMem + 0x19000
adds r4, r5, 0
adds r4, 0x8C
adds r1, r5, 0
@@ -6820,7 +6819,7 @@ sub_8118724: @ 8118724
str r0, [r2]
b _08118790
.align 2, 0
-_08118770: .4byte 0x02019000
+_08118770: .4byte gSharedMem + 0x19000
_08118774: .4byte 0x43b40000
_08118778:
ldr r1, _08118824 @ =0x00000000
@@ -6910,7 +6909,7 @@ _08118830: .4byte gMPlay_SE2
sub_8118834: @ 8118834
push {r4,r5,lr}
adds r5, r0, 0
- ldr r1, _0811888C @ =0x02019000
+ ldr r1, _0811888C @ =gSharedMem + 0x19000
ldrh r0, [r5, 0x3A]
ldrh r1, [r1, 0x24]
adds r2, r0, r1
@@ -6952,7 +6951,7 @@ _08118850:
pop {r0}
bx r0
.align 2, 0
-_0811888C: .4byte 0x02019000
+_0811888C: .4byte gSharedMem + 0x19000
_08118890: .4byte 0x01670000
_08118894: .4byte 0xfffffe98
_08118898: .4byte gSpriteCoordOffsetY
@@ -6995,7 +6994,7 @@ _081188CE:
ldrsh r0, [r5, r1]
cmp r0, 0
bne _08118908
- ldr r6, _08118900 @ =0x02019000
+ ldr r6, _08118900 @ =gSharedMem + 0x19000
adds r4, r6, 0
adds r4, 0x94
adds r0, r6, 0
@@ -7010,10 +7009,10 @@ _081188CE:
bgt _0811898E
b _08118926
.align 2, 0
-_08118900: .4byte 0x02019000
+_08118900: .4byte gSharedMem + 0x19000
_08118904: .4byte 0x40000000
_08118908:
- ldr r6, _08118994 @ =0x02019000
+ ldr r6, _08118994 @ =gSharedMem + 0x19000
adds r4, r6, 0
adds r4, 0x94
adds r0, r6, 0
@@ -7079,7 +7078,7 @@ _0811898E:
pop {r0}
bx r0
.align 2, 0
-_08118994: .4byte 0x02019000
+_08118994: .4byte gSharedMem + 0x19000
_08118998: .4byte 0x40000000
_0811899C: .4byte sub_8118834
_081189A0: .4byte 0x00000000
@@ -7115,7 +7114,7 @@ _081189D0:
mov r8, r0
ldr r0, _08118A24 @ =gUnknown_083F8DF4
mov r9, r0
- ldr r1, _08118A28 @ =0x02019000
+ ldr r1, _08118A28 @ =gSharedMem + 0x19000
mov r10, r1
ldrb r4, [r1, 0x4]
lsls r4, 30
@@ -7146,7 +7145,7 @@ _081189D0:
b _08118A8A
.align 2, 0
_08118A24: .4byte gUnknown_083F8DF4
-_08118A28: .4byte 0x02019000
+_08118A28: .4byte gSharedMem + 0x19000
_08118A2C:
movs r1, 0x2E
ldrsh r0, [r7, r1]
@@ -7158,7 +7157,7 @@ _08118A2C:
mov r8, r0
ldr r0, _08118B1C @ =gUnknown_083F8DF4
mov r9, r0
- ldr r1, _08118B20 @ =0x02019000
+ ldr r1, _08118B20 @ =gSharedMem + 0x19000
mov r10, r1
ldrb r4, [r1, 0x4]
lsls r4, 30
@@ -7257,7 +7256,7 @@ _08118B0C:
bx r0
.align 2, 0
_08118B1C: .4byte gUnknown_083F8DF4
-_08118B20: .4byte 0x02019000
+_08118B20: .4byte gSharedMem + 0x19000
_08118B24: .4byte 0x40000000
_08118B28: .4byte 0x00000000
_08118B2C: .4byte sub_811889C
@@ -7289,7 +7288,7 @@ sub_8118B30: @ 8118B30
lsls r0, r1, 16
cmp r0, 0
blt _08118BC6
- ldr r4, _08118BD0 @ =0x02019000
+ ldr r4, _08118BD0 @ =gSharedMem + 0x19000
adds r1, r4, 0
adds r1, 0x7D
movs r0, 0xFF
@@ -7337,7 +7336,7 @@ _08118BC6:
bx r0
.align 2, 0
_08118BCC: .4byte 0x3d4ccccd
-_08118BD0: .4byte 0x02019000
+_08118BD0: .4byte gSharedMem + 0x19000
_08118BD4: .4byte sub_8118834
thumb_func_end sub_8118B30
@@ -7360,7 +7359,7 @@ sub_8118BD8: @ 8118BD8
cmp r0, 0x2D
bne _08118CA2
ldr r2, _08118C14 @ =gSprites
- ldr r0, _08118C18 @ =0x02019000
+ ldr r0, _08118C18 @ =gSharedMem + 0x19000
adds r0, 0x73
ldrb r1, [r0]
lsls r0, r1, 4
@@ -7375,7 +7374,7 @@ sub_8118BD8: @ 8118BD8
b _08118CA2
.align 2, 0
_08118C14: .4byte gSprites
-_08118C18: .4byte 0x02019000
+_08118C18: .4byte gSharedMem + 0x19000
_08118C1C:
lsls r0, r1, 16
asrs r0, 16
@@ -7384,7 +7383,7 @@ _08118C1C:
cmp r0, r1
bge _08118C68
ldr r2, _08118C58 @ =gSprites
- ldr r0, _08118C5C @ =0x02019000
+ ldr r0, _08118C5C @ =gSharedMem + 0x19000
adds r0, 0x73
ldrb r1, [r0]
lsls r0, r1, 4
@@ -7408,7 +7407,7 @@ _08118C1C:
b _08118CA2
.align 2, 0
_08118C58: .4byte gSprites
-_08118C5C: .4byte 0x02019000
+_08118C5C: .4byte gSharedMem + 0x19000
_08118C60:
ldrh r0, [r3, 0x26]
subs r0, 0x1
@@ -7494,7 +7493,7 @@ sub_8118CEC: @ 8118CEC
push {r4,lr}
adds r4, r0, 0
bl sub_8118724
- ldr r0, _08118D10 @ =0x02019000
+ ldr r0, _08118D10 @ =gSharedMem + 0x19000
ldrb r0, [r0, 0x3]
lsls r0, 27
lsrs r0, 27
@@ -7508,7 +7507,7 @@ _08118D04:
ldr r0, _08118D14 @ =sub_81189A8
b _08118D20
.align 2, 0
-_08118D10: .4byte 0x02019000
+_08118D10: .4byte gSharedMem + 0x19000
_08118D14: .4byte sub_81189A8
_08118D18:
adds r0, r4, 0
@@ -7535,7 +7534,7 @@ sub_8118D2C: @ 8118D2C
asrs r0, 16
cmp r0, 0xF
bne _08118D50
- ldr r4, _08118DB8 @ =0x02019000
+ ldr r4, _08118DB8 @ =gSharedMem + 0x19000
adds r4, 0x98
ldr r0, [r4]
ldr r1, _08118DBC @ =0xbf800000
@@ -7550,7 +7549,7 @@ _08118D50:
ldrsh r0, [r5, r1]
cmp r0, 0
bne _08118DC4
- ldr r1, _08118DB8 @ =0x02019000
+ ldr r1, _08118DB8 @ =gSharedMem + 0x19000
adds r2, r1, 0
adds r2, 0x7D
movs r0, 0xFF
@@ -7590,7 +7589,7 @@ _08118D50:
bl m4aSongNumStartOrChange
b _08118DDC
.align 2, 0
-_08118DB8: .4byte 0x02019000
+_08118DB8: .4byte gSharedMem + 0x19000
_08118DBC: .4byte 0xbf800000
_08118DC0: .4byte sub_8118834
_08118DC4:
@@ -7623,7 +7622,7 @@ sub_8118DE4: @ 8118DE4
adds r0, r7, 0
bl sub_81186B8
ldr r1, _08118E70 @ =gUnknown_083F8D90
- ldr r6, _08118E74 @ =0x02019000
+ ldr r6, _08118E74 @ =gSharedMem + 0x19000
movs r0, 0x7E
adds r0, r6
mov r8, r0
@@ -7676,7 +7675,7 @@ sub_8118DE4: @ 8118DE4
b _08118F74
.align 2, 0
_08118E70: .4byte gUnknown_083F8D90
-_08118E74: .4byte 0x02019000
+_08118E74: .4byte gSharedMem + 0x19000
_08118E78: .4byte sub_8118834
_08118E7C:
movs r0, 0x38
@@ -7738,7 +7737,7 @@ _08118EF4:
lsls r1, r2, 3
adds r0, 0x4
adds r1, r0
- ldr r2, _08118F24 @ =0x02019000
+ ldr r2, _08118F24 @ =gSharedMem + 0x19000
ldr r1, [r1]
ldr r0, [r2, 0x8]
ands r1, r0
@@ -7756,7 +7755,7 @@ _08118EF4:
.align 2, 0
_08118F1C: .4byte gUnknown_083F8DF4
_08118F20: .4byte gUnknown_083F8D90
-_08118F24: .4byte 0x02019000
+_08118F24: .4byte gSharedMem + 0x19000
_08118F28:
strh r1, [r7, 0x2E]
ldrb r1, [r2, 0x4]
@@ -7821,7 +7820,7 @@ sub_8118F8C: @ 8118F8C
push {r6,r7}
adds r6, r0, 0
bl sub_8118724
- ldr r5, _08119018 @ =0x02019000
+ ldr r5, _08119018 @ =gSharedMem + 0x19000
movs r0, 0x8C
adds r0, r5
mov r8, r0
@@ -7878,7 +7877,7 @@ _08118FEC:
str r0, [r6, 0x1C]
b _0811906E
.align 2, 0
-_08119018: .4byte 0x02019000
+_08119018: .4byte gSharedMem + 0x19000
_0811901C: .4byte 0x3f000000
_08119020: .4byte 0x00000000
_08119024: .4byte gUnknown_083F8DF4
@@ -7929,7 +7928,7 @@ sub_8119088: @ 8119088
push {r4-r7,lr}
adds r6, r0, 0
bl sub_8118724
- ldr r5, _08119120 @ =0x02019000
+ ldr r5, _08119120 @ =gSharedMem + 0x19000
adds r0, r5, 0
adds r0, 0x94
ldr r0, [r0]
@@ -7996,7 +7995,7 @@ _0811911A:
pop {r0}
bx r0
.align 2, 0
-_08119120: .4byte 0x02019000
+_08119120: .4byte gSharedMem + 0x19000
_08119124: .4byte 0x42200000
_08119128: .4byte 0x47800000
_0811912C: .4byte 0x40800000
@@ -8008,7 +8007,7 @@ sub_8119134: @ 8119134
push {r4-r7,lr}
adds r6, r0, 0
bl sub_8118724
- ldr r4, _081191DC @ =0x02019000
+ ldr r4, _081191DC @ =gSharedMem + 0x19000
adds r0, r4, 0
adds r0, 0x94
ldr r0, [r0]
@@ -8081,7 +8080,7 @@ _081191D4:
pop {r0}
bx r0
.align 2, 0
-_081191DC: .4byte 0x02019000
+_081191DC: .4byte gSharedMem + 0x19000
_081191E0: .4byte 0x42700000
_081191E4: .4byte 0x47800000
_081191E8: .4byte 0x41a00000
@@ -8133,7 +8132,7 @@ sub_8119224: @ 8119224
lsls r0, 16
lsrs r0, 16
mov r9, r0
- ldr r5, _081193BC @ =0x02019000
+ ldr r5, _081193BC @ =gSharedMem + 0x19000
ldr r0, _081193C0 @ =gSpriteTemplate_83FA50C
movs r2, 0xC
negs r2, r2
@@ -8318,7 +8317,7 @@ _081192BE:
bx r0
.align 2, 0
_081193B8: .4byte gUnknown_083FA60E
-_081193BC: .4byte 0x02019000
+_081193BC: .4byte gSharedMem + 0x19000
_081193C0: .4byte gSpriteTemplate_83FA50C
_081193C4: .4byte gSpriteTemplate_83FA5C0
_081193C8: .4byte gSprites
@@ -8360,7 +8359,7 @@ sub_81193D4: @ 81193D4
ldrsh r2, [r2, r3]
movs r3, 0x32
bl CreateSprite
- ldr r6, _0811951C @ =0x02019000
+ ldr r6, _0811951C @ =gSharedMem + 0x19000
adds r1, r6, 0
adds r1, 0x73
strb r0, [r1]
@@ -8487,7 +8486,7 @@ _081194A2:
.align 2, 0
_08119514: .4byte gUnknown_083FA616
_08119518: .4byte gSpriteTemplate_83FA524
-_0811951C: .4byte 0x02019000
+_0811951C: .4byte gSharedMem + 0x19000
_08119520: .4byte gSprites
_08119524: .4byte gSpriteTemplate_83FA5F0
_08119528: .4byte gUnknown_083F8DF4
@@ -8516,7 +8515,7 @@ sub_811952C: @ 811952C
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x10]
- ldr r7, _08119610 @ =0x02019000
+ ldr r7, _08119610 @ =gSharedMem + 0x19000
adds r0, r7, 0
adds r0, 0x7D
movs r6, 0x1
@@ -8590,7 +8589,7 @@ _081195D4:
cmp r5, 0x3
bls _081195C8
_081195EA:
- ldr r0, _08119610 @ =0x02019000
+ ldr r0, _08119610 @ =gSharedMem + 0x19000
ldrb r1, [r0, 0x3]
movs r0, 0x1F
ands r0, r1
@@ -8608,14 +8607,14 @@ _081195EA:
bl PlayCry1
b _08119670
.align 2, 0
-_08119610: .4byte 0x02019000
+_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 @ =0x02019000
+ ldr r2, _08119634 @ =gSharedMem + 0x19000
ldrb r1, [r2, 0x3]
subs r0, 0x21
ands r0, r1
@@ -8624,12 +8623,12 @@ _0811961C:
strb r0, [r2, 0x3]
b _081195EA
.align 2, 0
-_08119634: .4byte 0x02019000
+_08119634: .4byte gSharedMem + 0x19000
_08119638:
lsrs r0, r5, 1
mov r1, r8
strh r0, [r1, 0x2E]
- ldr r3, _08119654 @ =0x02019000
+ ldr r3, _08119654 @ =gSharedMem + 0x19000
movs r1, 0x1
ands r1, r5
ldrb r2, [r3, 0x3]
@@ -8640,7 +8639,7 @@ _08119638:
strb r0, [r3, 0x3]
b _081195EA
.align 2, 0
-_08119654: .4byte 0x02019000
+_08119654: .4byte gSharedMem + 0x19000
_08119658:
movs r0, 0x98
lsls r0, 1
@@ -8655,7 +8654,7 @@ _08119664:
bl PlayCry1
_08119670:
movs r5, 0x2
- ldr r4, _081196A0 @ =0x02019000
+ ldr r4, _081196A0 @ =gSharedMem + 0x19000
adds r0, r4, 0
adds r0, 0x7F
ldrb r0, [r0]
@@ -8678,7 +8677,7 @@ _08119670:
adds r0, 0x6
b _081196A8
.align 2, 0
-_081196A0: .4byte 0x02019000
+_081196A0: .4byte gSharedMem + 0x19000
_081196A4:
mov r2, r9
adds r0, r2, r5
@@ -8688,7 +8687,7 @@ _081196A8:
mov r9, r0
cmp r5, r9
bcs _0811970E
- ldr r6, _08119734 @ =0x02019000
+ ldr r6, _08119734 @ =gSharedMem + 0x19000
ldr r7, _08119738 @ =gUnknown_083F8C00 + 0xC
_081196B6:
lsls r0, r3, 3
@@ -8712,7 +8711,7 @@ _081196B6:
ldrb r0, [r6, 0x1A]
lsls r0, 28
lsrs r0, 28
- ldr r1, _08119740 @ =0x0201901b
+ ldr r1, _08119740 @ =gSharedMem + 0x1901B
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 2
@@ -8756,10 +8755,10 @@ _0811970E:
strh r2, [r0, 0x3C]
b _08119766
.align 2, 0
-_08119734: .4byte 0x02019000
+_08119734: .4byte gSharedMem + 0x19000
_08119738: .4byte gUnknown_083F8C00 + 0xC
_0811973C: .4byte gUnknown_083F8D90 + 0x4
-_08119740: .4byte 0x0201901b
+_08119740: .4byte gSharedMem + 0x1901B
_08119744:
ldr r0, [sp, 0x10]
mov r1, r10
@@ -8815,7 +8814,7 @@ sub_8119780: @ 8119780
negs r1, r1
cmp r0, r1
bge _081197CA
- ldr r4, _081197D0 @ =0x02019000
+ ldr r4, _081197D0 @ =gSharedMem + 0x19000
ldrb r1, [r4, 0x3]
movs r0, 0x40
ands r0, r1
@@ -8837,7 +8836,7 @@ _081197CA:
pop {r0}
bx r0
.align 2, 0
-_081197D0: .4byte 0x02019000
+_081197D0: .4byte gSharedMem + 0x19000
_081197D4: .4byte gUnknown_083FA61E
thumb_func_end sub_8119780
@@ -8913,7 +8912,7 @@ _0811985C:
movs r0, 0
strh r0, [r1]
ldr r2, _08119890 @ =gSprites
- ldr r0, _08119894 @ =0x02019000
+ ldr r0, _08119894 @ =gSharedMem + 0x19000
adds r0, 0x73
ldrb r1, [r0]
lsls r0, r1, 4
@@ -8936,7 +8935,7 @@ _08119884:
.align 2, 0
_0811988C: .4byte gSpriteCoordOffsetY
_08119890: .4byte gSprites
-_08119894: .4byte 0x02019000
+_08119894: .4byte gSharedMem + 0x19000
thumb_func_end sub_81197D8
thumb_func_start sub_8119898
@@ -8956,7 +8955,7 @@ sub_8119898: @ 8119898
bl __mulsf3
bl __fixsfsi
strh r0, [r5, 0x26]
- ldr r3, _0811994C @ =0x02019000
+ ldr r3, _0811994C @ =gSharedMem + 0x19000
ldr r2, _08119950 @ =gUnknown_083FA61E
ldrb r0, [r3, 0x1]
subs r0, 0x1
@@ -9027,7 +9026,7 @@ _08119940:
bx r0
.align 2, 0
_08119948: .4byte 0x3d1fbe77
-_0811994C: .4byte 0x02019000
+_0811994C: .4byte gSharedMem + 0x19000
_08119950: .4byte gUnknown_083FA61E
_08119954: .4byte sub_8119780
_08119958: .4byte gSprites
@@ -9043,7 +9042,7 @@ sub_8119964: @ 8119964
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081199E4
- ldr r3, _08119990 @ =0x02019000
+ ldr r3, _08119990 @ =gSharedMem + 0x19000
ldr r1, [r3, 0x38]
movs r2, 0x2E
ldrsh r0, [r1, r2]
@@ -9059,7 +9058,7 @@ sub_8119964: @ 8119964
ldrh r0, [r0, 0x8]
b _081199AA
.align 2, 0
-_08119990: .4byte 0x02019000
+_08119990: .4byte gSharedMem + 0x19000
_08119994: .4byte gUnknown_083F8DF4
_08119998:
movs r0, 0x34
@@ -9086,7 +9085,7 @@ _081199AA:
strh r0, [r4, 0x3C]
movs r0, 0x2B
bl m4aSongNumStart
- ldr r1, _081199DC @ =0x02019000
+ ldr r1, _081199DC @ =gSharedMem + 0x19000
movs r0, 0x1
strb r0, [r1, 0x1]
ldr r0, _081199E0 @ =gUnknown_083FA61E
@@ -9095,10 +9094,10 @@ _081199AA:
b _08119A78
.align 2, 0
_081199D8: .4byte gUnknown_083F8DF4
-_081199DC: .4byte 0x02019000
+_081199DC: .4byte gSharedMem + 0x19000
_081199E0: .4byte gUnknown_083FA61E
_081199E4:
- ldr r3, _08119A20 @ =0x02019000
+ ldr r3, _08119A20 @ =gSharedMem + 0x19000
ldr r2, _08119A24 @ =gUnknown_083FA61E
ldrb r0, [r3, 0x1]
subs r0, 0x1
@@ -9130,7 +9129,7 @@ _08119A04:
ldrh r0, [r0, 0xA]
b _08119A3E
.align 2, 0
-_08119A20: .4byte 0x02019000
+_08119A20: .4byte gSharedMem + 0x19000
_08119A24: .4byte gUnknown_083FA61E
_08119A28: .4byte gUnknown_083F8DF4
_08119A2C:
@@ -9234,7 +9233,7 @@ _08119AC4:
adds r0, r4, 0
bl DestroySprite
ldr r5, _08119B1C @ =gSprites
- ldr r4, _08119B20 @ =0x02019000
+ ldr r4, _08119B20 @ =gSharedMem + 0x19000
adds r4, 0x74
ldrb r1, [r4]
lsls r0, r1, 4
@@ -9258,7 +9257,7 @@ _08119B12:
.align 2, 0
_08119B18: .4byte SpriteCallbackDummy
_08119B1C: .4byte gSprites
-_08119B20: .4byte 0x02019000
+_08119B20: .4byte gSharedMem + 0x19000
thumb_func_end sub_8119AAC
thumb_func_start sub_8119B24
@@ -9317,7 +9316,7 @@ _08119B7C:
_08119B84:
movs r0, 0x2B
bl m4aSongNumStart
- ldr r0, _08119BC0 @ =0x02019000
+ ldr r0, _08119BC0 @ =gSharedMem + 0x19000
ldr r0, [r0, 0x38]
ldrh r1, [r0, 0x2E]
adds r1, 0x4
@@ -9344,7 +9343,7 @@ _08119BB8:
pop {r0}
bx r0
.align 2, 0
-_08119BC0: .4byte 0x02019000
+_08119BC0: .4byte gSharedMem + 0x19000
_08119BC4: .4byte sub_8119AAC
_08119BC8: .4byte gSprites
thumb_func_end sub_8119B24
@@ -9370,7 +9369,7 @@ sub_8119BCC: @ 8119BCC
asrs r0, 16
cmp r0, 0x7
ble _08119C5C
- ldr r0, _08119C4C @ =0x02019000
+ ldr r0, _08119C4C @ =gSharedMem + 0x19000
ldr r0, [r0, 0x38]
movs r1, 0x2E
ldrsh r0, [r0, r1]
@@ -9409,7 +9408,7 @@ sub_8119BCC: @ 8119BCC
.align 2, 0
_08119C44: .4byte gUnknown_083FA64A
_08119C48: .4byte gUnknown_083FA64C
-_08119C4C: .4byte 0x02019000
+_08119C4C: .4byte gSharedMem + 0x19000
_08119C50: .4byte gMPlay_SE1
_08119C54: .4byte 0x0000ffff
_08119C58: .4byte gMPlay_SE2
@@ -9417,7 +9416,7 @@ _08119C5C:
lsls r0, r1, 16
cmp r0, 0
blt _08119CAC
- ldr r0, _08119CA8 @ =0x02019000
+ ldr r0, _08119CA8 @ =gSharedMem + 0x19000
ldr r0, [r0, 0x38]
movs r2, 0x2E
ldrsh r0, [r0, r2]
@@ -9452,11 +9451,11 @@ _08119C5C:
strh r0, [r4, 0x22]
b _08119CF6
.align 2, 0
-_08119CA8: .4byte 0x02019000
+_08119CA8: .4byte gSharedMem + 0x19000
_08119CAC:
movs r0, 0x5E
bl m4aSongNumStartOrChange
- ldr r0, _08119CCC @ =0x02019000
+ ldr r0, _08119CCC @ =gSharedMem + 0x19000
ldr r0, [r0, 0x38]
movs r2, 0x2E
ldrsh r0, [r0, r2]
@@ -9468,7 +9467,7 @@ _08119CAC:
bl PlayCry1
b _08119CDC
.align 2, 0
-_08119CCC: .4byte 0x02019000
+_08119CCC: .4byte gSharedMem + 0x19000
_08119CD0:
movs r0, 0x98
lsls r0, 1
@@ -9476,7 +9475,7 @@ _08119CD0:
negs r1, r1
bl PlayCry1
_08119CDC:
- ldr r0, _08119D00 @ =0x02019000
+ ldr r0, _08119D00 @ =gSharedMem + 0x19000
ldr r0, [r0, 0x38]
ldrh r1, [r0, 0x2E]
adds r1, 0x2
@@ -9494,7 +9493,7 @@ _08119CF6:
pop {r0}
bx r0
.align 2, 0
-_08119D00: .4byte 0x02019000
+_08119D00: .4byte gSharedMem + 0x19000
_08119D04: .4byte sub_8119B24
thumb_func_end sub_8119BCC
@@ -9513,7 +9512,7 @@ sub_8119D08: @ 8119D08
lsls r0, 16
cmp r0, 0
blt _08119D70
- ldr r0, _08119D68 @ =0x02019000
+ ldr r0, _08119D68 @ =gSharedMem + 0x19000
ldr r0, [r0, 0x38]
movs r1, 0x2E
ldrsh r0, [r0, r1]
@@ -9547,7 +9546,7 @@ sub_8119D08: @ 8119D08
b _08119D74
.align 2, 0
_08119D64: .4byte gUnknown_083FA64A
-_08119D68: .4byte 0x02019000
+_08119D68: .4byte gSharedMem + 0x19000
_08119D6C: .4byte gSprites
_08119D70:
ldr r0, _08119D7C @ =sub_8119A90
@@ -9565,7 +9564,7 @@ _08119D7C: .4byte sub_8119A90
sub_8119D80: @ 8119D80
push {r4,lr}
adds r4, r0, 0
- ldr r3, _08119DB8 @ =0x02019000
+ ldr r3, _08119DB8 @ =gSharedMem + 0x19000
ldr r1, [r3, 0x38]
movs r2, 0x2E
ldrsh r0, [r1, r2]
@@ -9592,7 +9591,7 @@ sub_8119D80: @ 8119D80
movs r3, 0x34
b _08119DEE
.align 2, 0
-_08119DB8: .4byte 0x02019000
+_08119DB8: .4byte gSharedMem + 0x19000
_08119DBC: .4byte gUnknown_083F8DF4
_08119DC0: .4byte gSprites
_08119DC4:
diff --git a/asm/roulette_util.s b/asm/roulette_util.s
index 191c9592f..5ddaa3a6e 100644
--- a/asm/roulette_util.s
+++ b/asm/roulette_util.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
diff --git a/asm/secret_base.s b/asm/secret_base.s
deleted file mode 100644
index 9fd741aa0..000000000
--- a/asm/secret_base.s
+++ /dev/null
@@ -1,2528 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
-.section .text_80BC1D0
-
- thumb_func_start sub_80BC474
-sub_80BC474: @ 80BC474
- push {r4-r7,lr}
- ldr r0, _080BC4CC @ =gMapHeader
- ldr r4, [r0, 0x4]
- movs r6, 0
- ldrb r0, [r4, 0x3]
- cmp r6, r0
- bcs _080BC504
- ldr r3, _080BC4D0 @ =gSaveBlock1 + 0x1A08
-_080BC484:
- ldr r2, [r4, 0x10]
- lsls r1, r6, 1
- adds r0, r1, r6
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x5]
- adds r7, r1, 0
- cmp r0, 0x8
- bne _080BC4F8
- ldrb r1, [r3]
- ldr r0, [r2, 0x8]
- cmp r1, r0
- bne _080BC4F8
- ldrh r0, [r2]
- adds r0, 0x7
- ldrh r1, [r2, 0x2]
- adds r1, 0x7
- bl MapGridGetMetatileIdAt
- movs r1, 0
- ldr r5, _080BC4D4 @ =gUnknown_083D1358
- lsls r0, 16
- asrs r2, r0, 16
-_080BC4B2:
- lsls r0, r1, 2
- adds r3, r0, r5
- ldrh r0, [r3, 0x2]
- cmp r0, r2
- beq _080BC4D8
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x6
- bls _080BC4B2
-_080BC4C6:
- bl DrawWholeMapView
- b _080BC504
- .align 2, 0
-_080BC4CC: .4byte gMapHeader
-_080BC4D0: .4byte gSaveBlock1 + 0x1A08
-_080BC4D4: .4byte gUnknown_083D1358
-_080BC4D8:
- ldr r0, [r4, 0x10]
- adds r1, r7, r6
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x7
- ldrh r1, [r1, 0x2]
- adds r1, 0x7
- ldrh r3, [r3]
- movs r4, 0xC0
- lsls r4, 4
- adds r2, r4, 0
- orrs r2, r3
- bl MapGridSetMetatileIdAt
- b _080BC4C6
-_080BC4F8:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldrb r0, [r4, 0x3]
- cmp r6, r0
- bcc _080BC484
-_080BC504:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BC474
-
- thumb_func_start sub_80BC50C
-sub_80BC50C: @ 80BC50C
- push {r4,r5,lr}
- bl sub_80BC474
- movs r0, 0x14
- bl IncrementGameStat
- ldr r4, _080BC530 @ =gSaveBlock1
- ldr r0, _080BC534 @ =0x00001a16
- adds r4, r0
- ldrh r5, [r4]
- movs r0, 0
- bl ResetSecretBase
- strh r5, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC530: .4byte gSaveBlock1
-_080BC534: .4byte 0x00001a16
- thumb_func_end sub_80BC50C
-
- thumb_func_start sub_80BC538
-sub_80BC538: @ 80BC538
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0x1
-_080BC53E:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80BC268
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BC554
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080BC554:
- lsls r0, r4, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080BC53E
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BC538
-
- thumb_func_start sub_80BC56C
-sub_80BC56C: @ 80BC56C
- push {lr}
- ldr r0, _080BC58C @ =gUnknown_020387DC
- ldrb r0, [r0]
- bl sub_80BC14C
- lsls r0, 24
- lsrs r0, 24
- bl sub_80BC268
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _080BC594
- ldr r0, _080BC590 @ =gScriptResult
- strh r1, [r0]
- b _080BC5B2
- .align 2, 0
-_080BC58C: .4byte gUnknown_020387DC
-_080BC590: .4byte gScriptResult
-_080BC594:
- bl sub_80BC538
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bls _080BC5AC
- ldr r1, _080BC5A8 @ =gScriptResult
- movs r0, 0x2
- b _080BC5B0
- .align 2, 0
-_080BC5A8: .4byte gScriptResult
-_080BC5AC:
- ldr r1, _080BC5B8 @ =gScriptResult
- movs r0, 0
-_080BC5B0:
- strh r0, [r1]
-_080BC5B2:
- pop {r0}
- bx r0
- .align 2, 0
-_080BC5B8: .4byte gScriptResult
- thumb_func_end sub_80BC56C
-
- thumb_func_start sub_80BC5BC
-sub_80BC5BC: @ 80BC5BC
- push {lr}
- ldr r0, _080BC5F8 @ =gUnknown_020387DC
- ldrb r0, [r0]
- bl sub_80BC14C
- ldr r2, _080BC5FC @ =gSaveBlock1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- adds r1, r2
- ldr r0, _080BC600 @ =0x00001a09
- adds r1, r0
- ldrb r3, [r1]
- lsrs r2, r3, 6
- movs r0, 0x1
- eors r2, r0
- lsls r2, 6
- movs r0, 0x3F
- ands r0, r3
- orrs r0, r2
- strb r0, [r1]
- movs r0, 0x86
- lsls r0, 1
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_080BC5F8: .4byte gUnknown_020387DC
-_080BC5FC: .4byte gSaveBlock1
-_080BC600: .4byte 0x00001a09
- thumb_func_end sub_80BC5BC
-
- thumb_func_start SecretBasePC_Decoration
-SecretBasePC_Decoration: @ 80BC604
- push {lr}
- ldr r0, _080BC614 @ =Task_SecretBasePC_Decoration
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080BC614: .4byte Task_SecretBasePC_Decoration
- thumb_func_end SecretBasePC_Decoration
-
- thumb_func_start SecretBasePC_Registry
-SecretBasePC_Registry: @ 80BC618
- push {lr}
- ldr r0, _080BC628 @ =Task_SecretBasePC_Registry
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080BC628: .4byte Task_SecretBasePC_Registry
- thumb_func_end SecretBasePC_Registry
-
- thumb_func_start Task_SecretBasePC_Registry
-Task_SecretBasePC_Registry: @ 80BC62C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl ScriptContext2_Enable
- bl sub_80F944C
- bl LoadScrollIndicatorPalette
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080BC688 @ =gTasks + 0x8
- adds r4, r0, r1
- bl sub_80BC538
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- adds r1, r0, 0
- cmp r1, 0
- beq _080BC694
- cmp r1, 0x7
- ble _080BC65E
- movs r0, 0x7
-_080BC65E:
- strh r0, [r4, 0x6]
- movs r0, 0
- strh r0, [r4, 0x2]
- strh r0, [r4, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl sub_80BC7D8
- ldr r1, _080BC68C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BC690 @ =sub_80BC824
- str r1, [r0]
- b _080BC6A0
- .align 2, 0
-_080BC688: .4byte gTasks + 0x8
-_080BC68C: .4byte gTasks
-_080BC690: .4byte sub_80BC824
-_080BC694:
- ldr r1, _080BC6A8 @ =gSecretBaseText_NoRegistry
- ldr r2, _080BC6AC @ =sub_80BCC54
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080BC6A0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC6A8: .4byte gSecretBaseText_NoRegistry
-_080BC6AC: .4byte sub_80BCC54
- thumb_func_end Task_SecretBasePC_Registry
-
- thumb_func_start sub_80BC6B0
-sub_80BC6B0: @ 80BC6B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080BC6D8 @ =gTasks + 0x8
- adds r1, r0
- mov r8, r1
- movs r4, 0
- movs r6, 0
- movs r5, 0x1
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r6, r0
- bne _080BC6DC
- movs r4, 0x1
- b _080BC706
- .align 2, 0
-_080BC6D8: .4byte gTasks + 0x8
-_080BC6DC:
- adds r0, r5, 0
- bl sub_80BC268
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BC6F0
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080BC6F0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bhi _080BC706
- mov r1, r8
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r4, r0
- bne _080BC6DC
- adds r4, r5, 0
-_080BC706:
- adds r5, r4, 0
- cmp r5, 0x13
- bhi _080BC75A
- ldr r7, _080BC7A0 @ =gStringVar1
-_080BC70E:
- adds r0, r5, 0
- bl sub_80BC268
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BC750
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_80BC190
- lsls r3, r6, 1
- adds r4, r3, 0x2
- lsls r4, 24
- lsrs r4, 24
- adds r3, 0x3
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x12
- adds r1, r4, 0
- movs r2, 0x1C
- bl MenuFillWindowRectWithBlankTile
- adds r0, r7, 0
- movs r1, 0x12
- adds r2, r4, 0
- bl MenuPrint
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x8
- beq _080BC75A
-_080BC750:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BC70E
-_080BC75A:
- cmp r6, 0x7
- bhi _080BC7A8
- lsls r3, r6, 1
- adds r4, r3, 0x2
- lsls r4, 24
- lsrs r4, 24
- adds r3, 0x3
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x12
- adds r1, r4, 0
- movs r2, 0x1C
- bl MenuFillWindowRectWithBlankTile
- ldr r0, _080BC7A4 @ =gUnknownText_Exit
- movs r1, 0x12
- adds r2, r4, 0
- bl MenuPrint
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- cmp r6, 0x7
- beq _080BC7B2
- lsls r1, r6, 25
- movs r0, 0x80
- lsls r0, 19
- adds r1, r0
- lsrs r1, 24
- movs r0, 0x12
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- b _080BC7B2
- .align 2, 0
-_080BC7A0: .4byte gStringVar1
-_080BC7A4: .4byte gUnknownText_Exit
-_080BC7A8:
- movs r0, 0x1
- movs r1, 0xBC
- movs r2, 0x98
- bl CreateVerticalScrollIndicators
-_080BC7B2:
- mov r1, r8
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080BC7C4
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- b _080BC7CE
-_080BC7C4:
- movs r0, 0
- movs r1, 0xBC
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
-_080BC7CE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BC6B0
-
- thumb_func_start sub_80BC7D8
-sub_80BC7D8: @ 80BC7D8
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _080BC820 @ =gTasks + 0x8
- adds r4, r0
- movs r0, 0x11
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldrb r3, [r4, 0x6]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r4, 0x2]
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x12
- movs r2, 0x2
- bl InitMenu
- adds r0, r5, 0
- bl sub_80BC6B0
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC820: .4byte gTasks + 0x8
- thumb_func_end sub_80BC7D8
-
- thumb_func_start sub_80BC824
-sub_80BC824: @ 80BC824
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080BC858 @ =gTasks + 0x8
- adds r4, r0, r1
- ldr r2, _080BC85C @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080BC874
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080BC860
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _080BC8B6
- .align 2, 0
-_080BC858: .4byte gTasks + 0x8
-_080BC85C: .4byte gMain
-_080BC860:
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080BC940
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4, 0x4]
- subs r0, 0x1
- b _080BC8A4
-_080BC874:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BC8C2
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080BC8AE
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _080BC940
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
-_080BC8A4:
- strh r0, [r4, 0x4]
- adds r0, r5, 0
- bl sub_80BC6B0
- b _080BC940
-_080BC8AE:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_080BC8B6:
- bl MoveMenuCursor
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2]
- b _080BC940
-_080BC8C2:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080BC91C
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080BC8FC
- bl HandleDestroyMenuCursors
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl sub_80BCC54
- b _080BC940
-_080BC8FC:
- bl HandleDestroyMenuCursors
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x2]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_80BC948
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x8]
- adds r0, r5, 0
- bl sub_80BC980
- b _080BC940
-_080BC91C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BC940
- movs r0, 0x5
- bl PlaySE
- bl HandleDestroyMenuCursors
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- bl sub_80BCC54
-_080BC940:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BC824
-
- thumb_func_start sub_80BC948
-sub_80BC948: @ 80BC948
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- movs r4, 0x1
-_080BC952:
- adds r0, r4, 0
- bl sub_80BC268
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BC96E
- cmp r6, r5
- bne _080BC968
- adds r0, r4, 0
- b _080BC97A
-_080BC968:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080BC96E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _080BC952
- movs r0, 0
-_080BC97A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80BC948
-
- thumb_func_start sub_80BC980
-sub_80BC980: @ 80BC980
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl PauseVerticalScrollIndicator
- movs r0, 0x1
- bl PauseVerticalScrollIndicator
- movs r0, 0x1
- movs r1, 0
- movs r2, 0xC
- movs r3, 0x5
- bl MenuDrawTextWindow
- ldr r3, _080BC9D8 @ =gUnknown_083D13D4
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x2
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0xA
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x1
- movs r3, 0x2
- bl InitMenu
- ldr r1, _080BC9DC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BC9E0 @ =sub_80BC9E4
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC9D8: .4byte gUnknown_083D13D4
-_080BC9DC: .4byte gTasks
-_080BC9E0: .4byte sub_80BC9E4
- thumb_func_end sub_80BC980
-
- thumb_func_start sub_80BC9E4
-sub_80BC9E4: @ 80BC9E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _080BCA14 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080BCA18
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- beq _080BCA7C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _080BCA7C
- .align 2, 0
-_080BCA14: .4byte gMain
-_080BCA18:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BCA3A
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BCA7C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _080BCA7C
-_080BCA3A:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080BCA68
- movs r0, 0x5
- bl PlaySE
- ldr r4, _080BCA64 @ =gUnknown_083D13D4
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 21
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _080BCA7C
- .align 2, 0
-_080BCA64: .4byte gUnknown_083D13D4
-_080BCA68:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BCA7C
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80BCBF8
-_080BCA7C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80BC9E4
-
- thumb_func_start sub_80BCA84
-sub_80BCA84: @ 80BCA84
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _080BCAD8 @ =gTasks + 0x8
- adds r4, r0
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- bl HandleDestroyMenuCursors
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _080BCADC @ =gStringVar1
- ldrb r1, [r4, 0x8]
- bl sub_80BC190
- ldr r4, _080BCAE0 @ =gStringVar4
- ldr r1, _080BCAE4 @ =gOtherText_OkayToDeleteFromRegistry
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080BCAE8 @ =sub_80BCAEC
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCAD8: .4byte gTasks + 0x8
-_080BCADC: .4byte gStringVar1
-_080BCAE0: .4byte gStringVar4
-_080BCAE4: .4byte gOtherText_OkayToDeleteFromRegistry
-_080BCAE8: .4byte sub_80BCAEC
- thumb_func_end sub_80BCA84
-
- thumb_func_start sub_80BCAEC
-sub_80BCAEC: @ 80BCAEC
- 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 r1, _080BCB0C @ =gUnknown_083D13E4
- adds r0, r4, 0
- bl DoYesNoFuncWithChoice
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCB0C: .4byte gUnknown_083D13E4
- thumb_func_end sub_80BCAEC
-
- thumb_func_start sub_80BCB10
-sub_80BCB10: @ 80BCB10
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _080BCB80 @ =gTasks + 0x8
- adds r4, r6, r7
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r2, _080BCB84 @ =gSaveBlock1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- adds r0, r2
- ldr r1, _080BCB88 @ =0x00001a09
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0x3F
- ands r1, r2
- strb r1, [r0]
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- ldrh r1, [r4, 0x4]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080BCB5C
- subs r0, r1, 0x1
- strh r0, [r4, 0x4]
-_080BCB5C:
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bgt _080BCB6A
- ldrh r0, [r4, 0x6]
- subs r0, 0x1
- strh r0, [r4, 0x6]
-_080BCB6A:
- adds r0, r5, 0
- bl sub_80BC7D8
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _080BCB8C @ =sub_80BC824
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCB80: .4byte gTasks + 0x8
-_080BCB84: .4byte gSaveBlock1
-_080BCB88: .4byte 0x00001a09
-_080BCB8C: .4byte sub_80BC824
- thumb_func_end sub_80BCB10
-
- thumb_func_start sub_80BCB90
-sub_80BCB90: @ 80BCB90
- 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, _080BCBB8 @ =gOtherText_RegisteredDataDeleted
- ldr r2, _080BCBBC @ =sub_80BCB10
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCBB8: .4byte gOtherText_RegisteredDataDeleted
-_080BCBBC: .4byte sub_80BCB10
- thumb_func_end sub_80BCB90
-
- thumb_func_start sub_80BCBC0
-sub_80BCBC0: @ 80BCBC0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80BC7D8
- ldr r1, _080BCBF0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BCBF4 @ =sub_80BC824
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCBF0: .4byte gTasks
-_080BCBF4: .4byte sub_80BC824
- thumb_func_end sub_80BCBC0
-
- thumb_func_start sub_80BCBF8
-sub_80BCBF8: @ 80BCBF8
- push {r4,r5,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r5, _080BCC4C @ =gTasks + 0x8
- adds r0, r4, r5
- ldrb r3, [r0, 0x6]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r0, 0x2]
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x12
- movs r2, 0x2
- bl InitMenu
- movs r0, 0x1
- movs r1, 0
- movs r2, 0xC
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0
- bl StartVerticalScrollIndicators
- movs r0, 0x1
- bl StartVerticalScrollIndicators
- subs r5, 0x8
- adds r4, r5
- ldr r0, _080BCC50 @ =sub_80BC824
- str r0, [r4]
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCC4C: .4byte gTasks + 0x8
-_080BCC50: .4byte sub_80BC824
- thumb_func_end sub_80BCBF8
-
- thumb_func_start sub_80BCC54
-sub_80BCC54: @ 80BCC54
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080BCC84 @ =0x00004054
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl BuyMenuFreeMemory
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- cmp r4, 0
- bne _080BCC8C
- ldr r0, _080BCC88 @ =gUnknown_0815F399
- bl ScriptContext1_SetupScript
- b _080BCC92
- .align 2, 0
-_080BCC84: .4byte 0x00004054
-_080BCC88: .4byte gUnknown_0815F399
-_080BCC8C:
- ldr r0, _080BCCA0 @ =gUnknown_0815F49A
- bl ScriptContext1_SetupScript
-_080BCC92:
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCCA0: .4byte gUnknown_0815F49A
- thumb_func_end sub_80BCC54
-
- thumb_func_start sub_80BCCA4
-sub_80BCCA4: @ 80BCCA4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080BCCDC @ =gSaveBlock1
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 5
- adds r4, r1
- ldr r1, _080BCCE0 @ =0x00001a11
- adds r0, r4, r1
- ldrb r0, [r0]
- movs r1, 0x5
- bl __umodsi3
- ldr r1, _080BCCE4 @ =0x00001a09
- adds r4, r1
- ldrb r2, [r4]
- lsls r2, 27
- lsrs r2, 31
- lsls r1, r2, 2
- adds r1, r2
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080BCCDC: .4byte gSaveBlock1
-_080BCCE0: .4byte 0x00001a11
-_080BCCE4: .4byte 0x00001a09
- thumb_func_end sub_80BCCA4
-
- thumb_func_start sub_80BCCE8
-sub_80BCCE8: @ 80BCCE8
- push {lr}
- ldr r0, _080BCD08 @ =0x00004054
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl sub_80BCCA4
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0
- bne _080BCD10
- ldr r0, _080BCD0C @ =UnknownString_81A1BB2
- b _080BCD72
- .align 2, 0
-_080BCD08: .4byte 0x00004054
-_080BCD0C: .4byte UnknownString_81A1BB2
-_080BCD10:
- cmp r0, 0x1
- bne _080BCD1C
- ldr r0, _080BCD18 @ =UnknownString_81A1F67
- b _080BCD72
- .align 2, 0
-_080BCD18: .4byte UnknownString_81A1F67
-_080BCD1C:
- cmp r0, 0x2
- bne _080BCD28
- ldr r0, _080BCD24 @ =UnknownString_81A2254
- b _080BCD72
- .align 2, 0
-_080BCD24: .4byte UnknownString_81A2254
-_080BCD28:
- cmp r0, 0x3
- bne _080BCD34
- ldr r0, _080BCD30 @ =UnknownString_81A25C3
- b _080BCD72
- .align 2, 0
-_080BCD30: .4byte UnknownString_81A25C3
-_080BCD34:
- cmp r0, 0x4
- bne _080BCD40
- ldr r0, _080BCD3C @ =UnknownString_81A2925
- b _080BCD72
- .align 2, 0
-_080BCD3C: .4byte UnknownString_81A2925
-_080BCD40:
- cmp r0, 0x5
- bne _080BCD4C
- ldr r0, _080BCD48 @ =UnknownString_81A1D74
- b _080BCD72
- .align 2, 0
-_080BCD48: .4byte UnknownString_81A1D74
-_080BCD4C:
- cmp r0, 0x6
- bne _080BCD58
- ldr r0, _080BCD54 @ =UnknownString_81A20C9
- b _080BCD72
- .align 2, 0
-_080BCD54: .4byte UnknownString_81A20C9
-_080BCD58:
- cmp r0, 0x7
- bne _080BCD64
- ldr r0, _080BCD60 @ =UnknownString_81A2439
- b _080BCD72
- .align 2, 0
-_080BCD60: .4byte UnknownString_81A2439
-_080BCD64:
- cmp r1, 0x8
- beq _080BCD70
- ldr r0, _080BCD6C @ =UnknownString_81A2B2A
- b _080BCD72
- .align 2, 0
-_080BCD6C: .4byte UnknownString_81A2B2A
-_080BCD70:
- ldr r0, _080BCD78 @ =UnknownString_81A2754
-_080BCD72:
- pop {r1}
- bx r1
- .align 2, 0
-_080BCD78: .4byte UnknownString_81A2754
- thumb_func_end sub_80BCCE8
-
- thumb_func_start unref_sub_80BCD7C
-unref_sub_80BCD7C: @ 80BCD7C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- ldr r7, _080BCDFC @ =gSaveBlock1
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 5
- ldr r0, _080BCE00 @ =0x00001a3c
- adds r0, r7
- mov r10, r0
- ldr r1, _080BCE04 @ =0x00001a54
- adds r1, r7
- mov r9, r1
- ldr r2, _080BCE08 @ =0x00001a84
- adds r2, r7
- mov r8, r2
- ldr r0, _080BCE0C @ =0x00000115
- mov r12, r0
-_080BCDAA:
- lsls r4, r5, 2
- adds r0, r4, r6
- add r0, r10
- adds r3, r5, 0x1
- str r3, [r0]
- lsls r0, r5, 3
- adds r0, r6
- add r0, r9
- strh r3, [r0]
- lsls r1, r5, 1
- adds r1, r6
- mov r2, r8
- adds r0, r1, r2
- mov r2, r12
- strh r2, [r0]
- ldr r2, _080BCE10 @ =0x00001a90
- adds r0, r7, r2
- adds r1, r0
- strh r3, [r1]
- adds r2, r5, r6
- ldr r1, _080BCE14 @ =0x00001a9c
- adds r0, r7, r1
- adds r0, r2, r0
- adds r1, r5, 0x5
- strb r1, [r0]
- ldr r1, _080BCE18 @ =0x00001aa2
- adds r0, r7, r1
- adds r2, r0
- adds r4, r5
- strb r4, [r2]
- lsls r3, 16
- lsrs r5, r3, 16
- cmp r5, 0
- beq _080BCDAA
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCDFC: .4byte gSaveBlock1
-_080BCE00: .4byte 0x00001a3c
-_080BCE04: .4byte 0x00001a54
-_080BCE08: .4byte 0x00001a84
-_080BCE0C: .4byte 0x00000115
-_080BCE10: .4byte 0x00001a90
-_080BCE14: .4byte 0x00001a9c
-_080BCE18: .4byte 0x00001aa2
- thumb_func_end unref_sub_80BCD7C
-
- thumb_func_start sub_80BCE1C
-sub_80BCE1C: @ 80BCE1C
- push {r4,lr}
- ldr r0, _080BCE44 @ =0x00004054
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x1
- bl sub_810FB10
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 5
- ldr r1, _080BCE48 @ =gSaveBlock1 + 0x1A08
- adds r0, r1
- bl CreateSecretBaseEnemyParty
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCE44: .4byte 0x00004054
-_080BCE48: .4byte gSaveBlock1 + 0x1A08
- thumb_func_end sub_80BCE1C
-
- thumb_func_start sub_80BCE4C
-sub_80BCE4C: @ 80BCE4C
- push {lr}
- ldr r0, _080BCE80 @ =0x00004054
- bl VarGet
- ldr r2, _080BCE84 @ =gSaveBlock1
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- adds r1, r2
- ldr r0, _080BCE88 @ =gScriptResult
- ldrb r0, [r0]
- ldr r2, _080BCE8C @ =0x00001a09
- adds r1, r2
- movs r2, 0x1
- ands r2, r0
- lsls r2, 5
- ldrb r3, [r1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080BCE80: .4byte 0x00004054
-_080BCE84: .4byte gSaveBlock1
-_080BCE88: .4byte gScriptResult
-_080BCE8C: .4byte 0x00001a09
- thumb_func_end sub_80BCE4C
-
- thumb_func_start sub_80BCE90
-sub_80BCE90: @ 80BCE90
- push {r4-r7,lr}
- ldr r0, _080BCF04 @ =0x00004054
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080BCF08 @ =0x000008c2
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080BCED4
- movs r3, 0
- ldr r7, _080BCF0C @ =gSaveBlock1
- ldr r4, _080BCF10 @ =0x00001a09
- movs r6, 0x21
- negs r6, r6
-_080BCEB2:
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 5
- adds r1, r7
- adds r1, r4
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x13
- bls _080BCEB2
- ldr r0, _080BCF08 @ =0x000008c2
- bl FlagSet
-_080BCED4:
- ldr r4, _080BCF14 @ =gSpecialVar_0x8004
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_80BCCA4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldr r2, _080BCF18 @ =gScriptResult
- ldr r1, _080BCF0C @ =gSaveBlock1
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 5
- adds r0, r1
- ldr r1, _080BCF10 @ =0x00001a09
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 31
- strh r0, [r2]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCF04: .4byte 0x00004054
-_080BCF08: .4byte 0x000008c2
-_080BCF0C: .4byte gSaveBlock1
-_080BCF10: .4byte 0x00001a09
-_080BCF14: .4byte gSpecialVar_0x8004
-_080BCF18: .4byte gScriptResult
- thumb_func_end sub_80BCE90
-
- thumb_func_start sub_80BCF1C
-sub_80BCF1C: @ 80BCF1C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080BCF40 @ =gTasks + 0x8
- adds r4, r1, r0
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080BCF54
- cmp r0, 0x1
- bgt _080BCF44
- cmp r0, 0
- beq _080BCF4A
- b _080BD02C
- .align 2, 0
-_080BCF40: .4byte gTasks + 0x8
-_080BCF44:
- cmp r0, 0x2
- beq _080BD01C
- b _080BD02C
-_080BCF4A:
- adds r0, r4, 0x4
- adds r1, r4, 0x6
- bl PlayerGetDestCoords
- b _080BD028
-_080BCF54:
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _080BCF7C
- movs r0, 0
- ldrsh r1, [r5, r0]
- movs r3, 0x6
- ldrsh r0, [r4, r3]
- cmp r1, r0
- beq _080BD02C
-_080BCF7C:
- strh r2, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8057350
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BCFA8
- bl DoYellowCave4Sparkle
- b _080BD02C
-_080BCFA8:
- adds r0, r4, 0
- bl sub_8057314
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BCFD8
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- asrs r0, 16
- mov r1, sp
- movs r3, 0
- ldrsh r1, [r1, r3]
- movs r3, 0
- ldrsh r2, [r5, r3]
- bl sub_80C68A4
- b _080BD02C
-_080BCFD8:
- adds r0, r4, 0
- bl sub_8057328
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BCFF6
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl sub_80C6A54
- b _080BD02C
-_080BCFF6:
- adds r0, r4, 0
- bl sub_805733C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BD02C
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- asrs r0, 16
- bl DoDecorationSoundEffect
- b _080BD02C
-_080BD01C:
- ldrb r0, [r4, 0x8]
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080BD02C
-_080BD028:
- movs r0, 0x1
- strh r0, [r4, 0x2]
-_080BD02C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80BCF1C
-
- thumb_func_start sub_80BD034
-sub_80BD034: @ 80BD034
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BD064 @ =gSaveBlock1
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 5
- adds r4, r2
- ldr r2, _080BD068 @ =0x00001a08
- adds r0, r4, r2
- movs r2, 0xA0
- bl memcpy
- ldr r0, _080BD06C @ =0x00001a09
- adds r4, r0
- ldrb r1, [r4]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD064: .4byte gSaveBlock1
-_080BD068: .4byte 0x00001a08
-_080BD06C: .4byte 0x00001a09
- thumb_func_end sub_80BD034
-
- thumb_func_start sub_80BD070
-sub_80BD070: @ 80BD070
- push {r4,lr}
- movs r2, 0
- adds r4, r0, 0
- adds r4, 0x9
- adds r3, r1, 0
- adds r3, 0x9
-_080BD07C:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080BD08C
- movs r0, 0
- b _080BD098
-_080BD08C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080BD07C
- movs r0, 0x1
-_080BD098:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD070
-
- thumb_func_start sub_80BD0A0
-sub_80BD0A0: @ 80BD0A0
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r3, 0
- ldrb r0, [r6, 0x2]
- cmp r0, 0xFF
- bne _080BD0B4
- ldrb r0, [r5, 0x2]
- cmp r0, 0xFF
- beq _080BD0E2
-_080BD0B4:
- adds r2, r6, 0x2
- adds r0, r2, r3
- adds r4, r5, 0x2
- adds r1, r4, r3
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080BD0C8
- movs r0, 0
- b _080BD0E4
-_080BD0C8:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x6
- bhi _080BD0E2
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BD0B4
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BD0B4
-_080BD0E2:
- movs r0, 0x1
-_080BD0E4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD0A0
-
- thumb_func_start sub_80BD0EC
-sub_80BD0EC: @ 80BD0EC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r2, [r4, 0x1]
- movs r0, 0x10
- adds r1, r0, 0
- ands r1, r2
- ldrb r2, [r5, 0x1]
- ands r0, r2
- cmp r1, r0
- bne _080BD122
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80BD070
- lsls r0, 24
- cmp r0, 0
- beq _080BD122
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80BD0A0
- lsls r0, 24
- cmp r0, 0
- beq _080BD122
- movs r0, 0x1
- b _080BD124
-_080BD122:
- movs r0, 0
-_080BD124:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD0EC
-
- thumb_func_start sub_80BD12C
-sub_80BD12C: @ 80BD12C
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r4, _080BD150 @ =gSaveBlock1
- ldr r3, _080BD154 @ =0x00001a08
-_080BD138:
- lsls r0, r1, 16
- asrs r1, r0, 16
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- adds r0, r4
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080BD158
- adds r0, r1, 0
- b _080BD168
- .align 2, 0
-_080BD150: .4byte gSaveBlock1
-_080BD154: .4byte 0x00001a08
-_080BD158:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080BD138
- movs r0, 0x1
- negs r0, r0
-_080BD168:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD12C
-
- thumb_func_start sub_80BD170
-sub_80BD170: @ 80BD170
- push {r4,lr}
- movs r2, 0x1
- ldr r4, _080BD194 @ =gSaveBlock1
- ldr r3, _080BD198 @ =0x00001a08
-_080BD178:
- lsls r0, r2, 16
- asrs r1, r0, 16
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- adds r0, r4
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BD19C
- lsls r0, r2, 24
- lsrs r0, 24
- b _080BD1AA
- .align 2, 0
-_080BD194: .4byte gSaveBlock1
-_080BD198: .4byte 0x00001a08
-_080BD19C:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080BD178
- movs r0, 0
-_080BD1AA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD170
-
- thumb_func_start sub_80BD1B0
-sub_80BD1B0: @ 80BD1B0
- push {r4,lr}
- movs r3, 0x1
- ldr r4, _080BD1DC @ =gSaveBlock1
-_080BD1B6:
- lsls r2, r3, 16
- asrs r1, r2, 16
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- adds r0, r4
- ldr r1, _080BD1E0 @ =0x00001a09
- adds r0, r1
- ldrb r1, [r0]
- lsrs r0, r1, 6
- cmp r0, 0
- bne _080BD1E4
- lsls r0, r1, 28
- cmp r0, 0
- bne _080BD1E4
- lsls r0, r3, 24
- lsrs r0, 24
- b _080BD1F4
- .align 2, 0
-_080BD1DC: .4byte gSaveBlock1
-_080BD1E0: .4byte 0x00001a09
-_080BD1E4:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r2, r1
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080BD1B6
- movs r0, 0
-_080BD1F4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD1B0
-
- thumb_func_start sub_80BD1FC
-sub_80BD1FC: @ 80BD1FC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r0, 0
- beq _080BD278
- ldrb r0, [r5]
- bl sub_80BD12C
- lsls r0, 16
- lsrs r4, r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- beq _080BD278
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _080BD254
- ldr r0, _080BD24C @ =gSaveBlock1
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 5
- adds r1, r0
- ldr r0, _080BD250 @ =0x00001a09
- adds r1, r0
- ldrb r1, [r1]
- lsls r0, r1, 28
- lsrs r0, 28
- cmp r0, 0x1
- beq _080BD278
- lsrs r0, r1, 6
- cmp r0, 0x2
- bne _080BD246
- ldrb r1, [r5, 0x1]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x1
- bne _080BD278
-_080BD246:
- lsls r4, 24
- lsrs r4, 24
- b _080BD26C
- .align 2, 0
-_080BD24C: .4byte gSaveBlock1
-_080BD250: .4byte 0x00001a09
-_080BD254:
- bl sub_80BD170
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080BD26C
- bl sub_80BD1B0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080BD278
-_080BD26C:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80BD034
- adds r0, r4, 0
- b _080BD27A
-_080BD278:
- movs r0, 0
-_080BD27A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD1FC
-
- thumb_func_start sub_80BD280
-sub_80BD280: @ 80BD280
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xA0
- ldr r0, _080BD324 @ =gSaveBlock1 + 0x1A08
- mov r8, r0
- movs r2, 0x1
-_080BD290:
- adds r1, r2, 0x1
- lsls r0, r1, 24
- lsrs r5, r0, 24
- mov r9, r1
- cmp r5, 0x13
- bhi _080BD30C
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 5
- mov r1, r8
- adds r6, r0, r1
- movs r7, 0xC0
-_080BD2A8:
- ldrb r0, [r6, 0x1]
- adds r3, r7, 0
- ands r3, r0
- cmp r3, 0
- bne _080BD2C6
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 5
- add r0, r8
- ldrb r1, [r0, 0x1]
- adds r0, r7, 0
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0x40
- beq _080BD2DE
-_080BD2C6:
- cmp r3, 0x80
- bne _080BD302
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 5
- add r0, r8
- ldrb r1, [r0, 0x1]
- adds r0, r7, 0
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0x80
- beq _080BD302
-_080BD2DE:
- mov r0, sp
- adds r1, r6, 0
- movs r2, 0xA0
- bl memcpy
- adds r4, r5
- lsls r4, 5
- add r4, r8
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0xA0
- bl memcpy
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0xA0
- bl memcpy
-_080BD302:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BD2A8
-_080BD30C:
- mov r1, r9
- lsls r0, r1, 24
- lsrs r2, r0, 24
- cmp r2, 0x12
- bls _080BD290
- add sp, 0xA0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD324: .4byte gSaveBlock1 + 0x1A08
- thumb_func_end sub_80BD280
-
- thumb_func_start sub_80BD328
-sub_80BD328: @ 80BD328
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r4, 0x1
-_080BD332:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 5
- adds r1, r0, r6
- ldrb r0, [r1, 0x1]
- lsrs r0, 6
- cmp r0, r5
- bne _080BD348
- adds r0, r1, 0
- bl sub_80BD1FC
-_080BD348:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _080BD332
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BD328
-
- thumb_func_start sub_80BD358
-sub_80BD358: @ 80BD358
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r0, 0
- beq _080BD372
- ldrb r0, [r5, 0x1]
- lsls r0, 27
- ldr r1, _080BD378 @ =gSaveBlock2
- lsrs r0, 31
- adds r4, r1, 0
- ldrb r1, [r4, 0x8]
- cmp r0, r1
- beq _080BD37C
-_080BD372:
- movs r0, 0
- b _080BD3D4
- .align 2, 0
-_080BD378: .4byte gSaveBlock2
-_080BD37C:
- movs r2, 0
- adds r3, r5, 0
- adds r3, 0x9
- adds r6, r4, 0
- adds r6, 0xA
-_080BD386:
- adds r0, r3, r2
- adds r1, r2, r6
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080BD372
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080BD386
- movs r2, 0
- ldrb r0, [r5, 0x2]
- cmp r0, 0xFF
- bne _080BD3AA
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080BD3D2
-_080BD3AA:
- adds r3, r5, 0x2
- adds r0, r3, r2
- adds r1, r2, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080BD372
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x6
- bhi _080BD3D2
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BD3AA
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BD3AA
-_080BD3D2:
- movs r0, 0x1
-_080BD3D4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD358
-
- thumb_func_start sub_80BD3DC
-sub_80BD3DC: @ 80BD3DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- mov r9, r1
- mov r8, r2
- movs r5, 0
- movs r6, 0
-_080BD3F0:
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- bne _080BD41A
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 5
- mov r1, r10
- adds r4, r1, r0
- adds r0, r4, 0
- bl sub_80BD358
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BD41A
- adds r0, r4, 0
- bl sub_80BB4AC
- movs r0, 0x1
- orrs r5, r0
-_080BD41A:
- movs r7, 0x2
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- bne _080BD448
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 5
- mov r1, r9
- adds r4, r1, r0
- adds r0, r4, 0
- bl sub_80BD358
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BD448
- adds r0, r4, 0
- bl sub_80BB4AC
- orrs r5, r7
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_080BD448:
- movs r7, 0x4
- movs r0, 0x4
- ands r0, r5
- cmp r0, 0
- bne _080BD476
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- bl sub_80BD358
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BD476
- adds r0, r4, 0
- bl sub_80BB4AC
- orrs r5, r7
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_080BD476:
- cmp r5, 0x7
- beq _080BD484
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x13
- bls _080BD3F0
-_080BD484:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BD3DC
-
- thumb_func_start sub_80BD494
-sub_80BD494: @ 80BD494
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- mov r8, r1
- lsls r2, 24
- lsrs r7, r2, 24
- movs r5, 0
-_080BD4A4:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 5
- mov r1, r8
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- beq _080BD4FE
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80BD0EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BD4FE
- cmp r7, 0
- bne _080BD4D0
- adds r0, r4, 0
- bl sub_80BB4AC
- b _080BD508
-_080BD4D0:
- ldrh r0, [r6, 0xE]
- ldrh r3, [r4, 0xE]
- cmp r0, r3
- bls _080BD4E0
- adds r0, r4, 0
- bl sub_80BB4AC
- b _080BD508
-_080BD4E0:
- ldrb r0, [r6, 0x1]
- lsls r0, 28
- lsrs r0, 28
- ldrb r1, [r4, 0x1]
- movs r3, 0x10
- negs r3, r3
- adds r2, r3, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x1]
- adds r0, r6, 0
- bl sub_80BB4AC
- movs r0, 0x1
- b _080BD50A
-_080BD4FE:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BD4A4
-_080BD508:
- movs r0, 0
-_080BD50A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD494
-
- thumb_func_start sub_80BD514
-sub_80BD514: @ 80BD514
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- adds r7, r1, 0
- mov r8, r2
- adds r6, r3, 0
- movs r5, 0x1
-_080BD526:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 5
- mov r1, r9
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- beq _080BD578
- ldrb r1, [r4, 0x1]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0x40
- bne _080BD54E
- movs r2, 0x10
- negs r2, r2
- adds r0, r2, 0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
-_080BD54E:
- adds r0, r4, 0
- adds r1, r7, 0
- adds r2, r5, 0
- bl sub_80BD494
- lsls r0, 24
- cmp r0, 0
- bne _080BD578
- adds r0, r4, 0
- mov r1, r8
- adds r2, r5, 0
- bl sub_80BD494
- lsls r0, 24
- cmp r0, 0
- bne _080BD578
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80BD494
-_080BD578:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BD526
- movs r5, 0
-_080BD584:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 5
- adds r4, r0, r7
- ldrb r0, [r4]
- cmp r0, 0
- beq _080BD5B8
- ldrb r0, [r4, 0x1]
- movs r2, 0x21
- negs r2, r2
- adds r1, r2, 0
- ands r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- mov r1, r8
- adds r2, r5, 0
- bl sub_80BD494
- lsls r0, 24
- cmp r0, 0
- bne _080BD5B8
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80BD494
-_080BD5B8:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BD584
- movs r5, 0
- movs r0, 0x21
- negs r0, r0
- adds r7, r0, 0
-_080BD5CA:
- lsls r0, r5, 2
- adds r0, r5
- lsls r4, r0, 5
- mov r2, r8
- adds r1, r4, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _080BD5EA
- ldrb r0, [r1, 0x1]
- ands r0, r7
- strb r0, [r1, 0x1]
- adds r0, r1, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80BD494
-_080BD5EA:
- adds r1, r4, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _080BD5F8
- ldrb r0, [r1, 0x1]
- ands r0, r7
- strb r0, [r1, 0x1]
-_080BD5F8:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BD5CA
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BD514
-
- thumb_func_start sub_80BD610
-sub_80BD610: @ 80BD610
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl sub_80BD3DC
- ldr r0, _080BD670 @ =gSaveBlock1 + 0x1A08
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_80BD514
- adds r0, r4, 0
- bl sub_80BD1FC
- adds r0, r5, 0
- bl sub_80BD1FC
- adds r0, r6, 0
- bl sub_80BD1FC
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80BD328
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80BD328
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_80BD328
- adds r0, r4, 0
- movs r1, 0
- bl sub_80BD328
- adds r0, r5, 0
- movs r1, 0
- bl sub_80BD328
- adds r0, r6, 0
- movs r1, 0
- bl sub_80BD328
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD670: .4byte gSaveBlock1 + 0x1A08
- thumb_func_end sub_80BD610
-
- thumb_func_start sub_80BD674
-sub_80BD674: @ 80BD674
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r7, r2, 24
- movs r0, 0x60
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080BD68C
- b _080BD790
-_080BD68C:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080BD69E
- cmp r0, 0x3
- beq _080BD6BA
- b _080BD6C8
-_080BD69E:
- lsls r4, r5, 1
- adds r0, r6, r4
- movs r1, 0
- adds r2, r5, 0
- bl memset
- adds r4, r5
- adds r4, r6, r4
- adds r0, r4, 0
- movs r1, 0
- adds r2, r5, 0
- bl memset
- b _080BD6C8
-_080BD6BA:
- lsls r0, r5, 1
- adds r0, r5
- adds r0, r6, r0
- movs r1, 0
- adds r2, r5, 0
- bl memset
-_080BD6C8:
- cmp r7, 0x1
- beq _080BD6F0
- cmp r7, 0x1
- bgt _080BD6D6
- cmp r7, 0
- beq _080BD6E0
- b _080BD71C
-_080BD6D6:
- cmp r7, 0x2
- beq _080BD700
- cmp r7, 0x3
- beq _080BD710
- b _080BD71C
-_080BD6E0:
- adds r0, r6, r5
- lsls r2, r5, 1
- adds r1, r6, r2
- adds r2, r5
- adds r2, r6, r2
- bl sub_80BD610
- b _080BD71C
-_080BD6F0:
- lsls r1, r5, 1
- adds r0, r6, r1
- adds r1, r5
- adds r1, r6, r1
- adds r2, r6, 0
- bl sub_80BD610
- b _080BD71C
-_080BD700:
- lsls r0, r5, 1
- adds r0, r5
- adds r0, r6, r0
- adds r2, r6, r5
- adds r1, r6, 0
- bl sub_80BD610
- b _080BD71C
-_080BD710:
- adds r1, r6, r5
- lsls r2, r5, 1
- adds r2, r6, r2
- adds r0, r6, 0
- bl sub_80BD610
-_080BD71C:
- movs r3, 0x1
- ldr r6, _080BD798 @ =gSaveBlock1
- movs r5, 0x10
- negs r5, r5
- ldr r4, _080BD79C @ =0x00001a09
-_080BD726:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 5
- adds r0, r6
- adds r2, r0, r4
- ldrb r1, [r2]
- lsls r0, r1, 28
- lsrs r0, 28
- cmp r0, 0x1
- bne _080BD746
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- ands r0, r5
- strb r0, [r2]
-_080BD746:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x13
- bls _080BD726
- bl sub_80BD280
- movs r3, 0x1
- ldr r4, _080BD798 @ =gSaveBlock1
- ldr r6, _080BD79C @ =0x00001a09
- adds r7, r4, 0
- movs r5, 0x3F
-_080BD75E:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 5
- adds r0, r4
- adds r2, r0, r6
- ldrb r1, [r2]
- lsrs r0, r1, 6
- cmp r0, 0x2
- bne _080BD776
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2]
-_080BD776:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x13
- bls _080BD75E
- ldr r0, _080BD7A0 @ =0x00001a16
- adds r2, r7, r0
- ldrh r1, [r2]
- ldr r0, _080BD7A4 @ =0x0000ffff
- cmp r1, r0
- beq _080BD790
- adds r0, r1, 0x1
- strh r0, [r2]
-_080BD790:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD798: .4byte gSaveBlock1
-_080BD79C: .4byte 0x00001a09
-_080BD7A0: .4byte 0x00001a16
-_080BD7A4: .4byte 0x0000ffff
- thumb_func_end sub_80BD674
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index bebe3633e..62792245d 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -1,5 +1,4 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
@@ -108,7 +107,7 @@ sub_810196C: @ 810196C
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
ldr r1, _081019A8 @ =REG_WIN0H
- ldr r2, _081019AC @ =0x02000000
+ ldr r2, _081019AC @ =gSharedMem
adds r0, r2, 0
adds r0, 0x58
ldrh r0, [r0]
@@ -132,7 +131,7 @@ sub_810196C: @ 810196C
bx r0
.align 2, 0
_081019A8: .4byte REG_WIN0H
-_081019AC: .4byte 0x02000000
+_081019AC: .4byte gSharedMem
thumb_func_end sub_810196C
thumb_func_start sub_81019B0
@@ -177,7 +176,7 @@ sub_81019EC: @ 81019EC
lsls r2, 3
ldr r0, _08101A1C @ =gTasks
adds r2, r0
- ldr r1, _08101A20 @ =0x02000000
+ ldr r1, _08101A20 @ =gSharedMem
ldrh r0, [r2, 0x8]
strb r0, [r1, 0x1]
adds r2, 0xA
@@ -189,7 +188,7 @@ sub_81019EC: @ 81019EC
.align 2, 0
_08101A18: .4byte nullsub_67
_08101A1C: .4byte gTasks
-_08101A20: .4byte 0x02000000
+_08101A20: .4byte gSharedMem
thumb_func_end sub_81019EC
thumb_func_start nullsub_67
@@ -394,7 +393,7 @@ sub_8101BA4: @ 8101BA4
mov r6, r8
push {r6,r7}
bl sub_81019EC
- ldr r5, _08101C74 @ =0x02000000
+ ldr r5, _08101C74 @ =gSharedMem
movs r4, 0
strb r4, [r5]
strb r4, [r5, 0x2]
@@ -490,7 +489,7 @@ _08101C14:
pop {r0}
bx r0
.align 2, 0
-_08101C74: .4byte 0x02000000
+_08101C74: .4byte gSharedMem
_08101C78: .4byte gSaveBlock1
_08101C7C: .4byte 0x00000494
_08101C80: .4byte gUnknown_083ECCF8
@@ -585,7 +584,7 @@ sub_8101D24: @ 8101D24
lsls r1, r0, 2
adds r1, r0
lsls r4, r1, 3
- ldr r6, _08101D54 @ =0x02000000
+ ldr r6, _08101D54 @ =gSharedMem
ldr r5, _08101D58 @ =gTasks
_08101D36:
ldrb r0, [r6]
@@ -602,7 +601,7 @@ _08101D36:
bx r0
.align 2, 0
_08101D50: .4byte gUnknown_083ECAAC
-_08101D54: .4byte 0x02000000
+_08101D54: .4byte gSharedMem
_08101D58: .4byte gTasks
thumb_func_end sub_8101D24
@@ -617,7 +616,7 @@ sub_8101D5C: @ 8101D5C
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
- ldr r4, _08101D88 @ =0x02000000
+ ldr r4, _08101D88 @ =gSharedMem
ldrb r0, [r4, 0x2]
bl sub_810423C
ldrb r0, [r4]
@@ -629,7 +628,7 @@ sub_8101D5C: @ 8101D5C
pop {r1}
bx r1
.align 2, 0
-_08101D88: .4byte 0x02000000
+_08101D88: .4byte gSharedMem
thumb_func_end sub_8101D5C
thumb_func_start sub_8101D8C
@@ -641,7 +640,7 @@ sub_8101D8C: @ 8101D8C
ands r0, r1
cmp r0, 0
bne _08101DA2
- ldr r1, _08101DAC @ =0x02000000
+ ldr r1, _08101DAC @ =gSharedMem
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
@@ -651,13 +650,13 @@ _08101DA2:
bx r1
.align 2, 0
_08101DA8: .4byte gPaletteFade
-_08101DAC: .4byte 0x02000000
+_08101DAC: .4byte gSharedMem
thumb_func_end sub_8101D8C
thumb_func_start sub_8101DB0
sub_8101DB0: @ 8101DB0
push {lr}
- ldr r2, _08101DD8 @ =0x02000000
+ ldr r2, _08101DD8 @ =gSharedMem
movs r0, 0
strh r0, [r2, 0xE]
strh r0, [r2, 0x12]
@@ -676,7 +675,7 @@ sub_8101DB0: @ 8101DB0
strb r0, [r2]
b _08101DEC
.align 2, 0
-_08101DD8: .4byte 0x02000000
+_08101DD8: .4byte gSharedMem
_08101DDC:
ldrb r0, [r2, 0xA]
cmp r0, 0
@@ -698,7 +697,7 @@ sub_8101DF4: @ 8101DF4
lsls r0, 24
cmp r0, 0
beq _08101E06
- ldr r1, _08101E0C @ =0x02000000
+ ldr r1, _08101E0C @ =gSharedMem
movs r0, 0x4
strb r0, [r1]
_08101E06:
@@ -706,7 +705,7 @@ _08101E06:
pop {r1}
bx r1
.align 2, 0
-_08101E0C: .4byte 0x02000000
+_08101E0C: .4byte gSharedMem
thumb_func_end sub_8101DF4
thumb_func_start sub_8101E10
@@ -714,7 +713,7 @@ sub_8101E10: @ 8101E10
push {lr}
movs r0, 0
bl sub_8104CAC
- ldr r2, _08101E34 @ =0x02000000
+ ldr r2, _08101E34 @ =gSharedMem
movs r0, 0x5
strb r0, [r2]
movs r0, 0xC
@@ -729,7 +728,7 @@ _08101E2C:
pop {r1}
bx r1
.align 2, 0
-_08101E34: .4byte 0x02000000
+_08101E34: .4byte gSharedMem
_08101E38: .4byte 0x0000270e
thumb_func_end sub_8101E10
@@ -744,20 +743,20 @@ sub_8101E3C: @ 8101E3C
beq _08101E60
movs r0, 0
bl sub_8104AB8
- ldr r1, _08101E5C @ =0x02000000
+ ldr r1, _08101E5C @ =gSharedMem
movs r0, 0x8
strb r0, [r1]
b _08101F1A
.align 2, 0
_08101E58: .4byte gMain
-_08101E5C: .4byte 0x02000000
+_08101E5C: .4byte gSharedMem
_08101E60:
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _08101EC2
- ldr r2, _08101EB8 @ =0x02000000
+ ldr r2, _08101EB8 @ =gSharedMem
movs r1, 0xC
ldrsh r0, [r2, r1]
subs r0, 0x3
@@ -783,7 +782,7 @@ _08101E84:
cmp r0, 0x2
ble _08101E84
_08101E9C:
- ldr r1, _08101EB8 @ =0x02000000
+ ldr r1, _08101EB8 @ =gSharedMem
ldrh r0, [r1, 0xC]
subs r0, 0x3
ldrh r3, [r1, 0x12]
@@ -797,7 +796,7 @@ _08101E9C:
bl PlaySE
b _08101F1A
.align 2, 0
-_08101EB8: .4byte 0x02000000
+_08101EB8: .4byte gSharedMem
_08101EBC:
movs r0, 0x6
strb r0, [r2]
@@ -807,7 +806,7 @@ _08101EC2:
ands r0, r1
cmp r0, 0
beq _08101EEC
- ldr r4, _08101F24 @ =0x02000000
+ ldr r4, _08101F24 @ =gSharedMem
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -823,7 +822,7 @@ _08101EC2:
adds r0, 0x1
strh r0, [r4, 0x12]
_08101EEC:
- ldr r0, _08101F24 @ =0x02000000
+ ldr r0, _08101F24 @ =gSharedMem
movs r2, 0x12
ldrsh r1, [r0, r2]
ldr r2, _08101F28 @ =gMain
@@ -854,7 +853,7 @@ _08101F1A:
pop {r1}
bx r1
.align 2, 0
-_08101F24: .4byte 0x02000000
+_08101F24: .4byte gSharedMem
_08101F28: .4byte gMain
thumb_func_end sub_8101E3C
@@ -877,7 +876,7 @@ sub_8101F44: @ 8101F44
push {lr}
ldr r0, _08101F58 @ =gOtherText_DontHaveThreeCoins
bl sub_8101F2C
- ldr r1, _08101F5C @ =0x02000000
+ ldr r1, _08101F5C @ =gSharedMem
movs r0, 0x7
strb r0, [r1]
movs r0, 0
@@ -885,7 +884,7 @@ sub_8101F44: @ 8101F44
bx r1
.align 2, 0
_08101F58: .4byte gOtherText_DontHaveThreeCoins
-_08101F5C: .4byte 0x02000000
+_08101F5C: .4byte gSharedMem
thumb_func_end sub_8101F44
thumb_func_start sub_8101F60
@@ -898,7 +897,7 @@ sub_8101F60: @ 8101F60
cmp r0, 0
beq _08101F78
bl MenuZeroFillScreen
- ldr r1, _08101F84 @ =0x02000000
+ ldr r1, _08101F84 @ =gSharedMem
movs r0, 0x5
strb r0, [r1]
_08101F78:
@@ -907,7 +906,7 @@ _08101F78:
bx r1
.align 2, 0
_08101F80: .4byte gMain
-_08101F84: .4byte 0x02000000
+_08101F84: .4byte gSharedMem
thumb_func_end sub_8101F60
thumb_func_start sub_8101F88
@@ -917,7 +916,7 @@ sub_8101F88: @ 8101F88
lsls r0, 24
cmp r0, 0
beq _08101F9A
- ldr r1, _08101FA0 @ =0x02000000
+ ldr r1, _08101FA0 @ =gSharedMem
movs r0, 0x5
strb r0, [r1]
_08101F9A:
@@ -925,7 +924,7 @@ _08101F9A:
pop {r1}
bx r1
.align 2, 0
-_08101FA0: .4byte 0x02000000
+_08101FA0: .4byte gSharedMem
thumb_func_end sub_8101F88
thumb_func_start sub_8101FA4
@@ -942,7 +941,7 @@ sub_8101FA4: @ 8101FA4
bl sub_8102DEC
movs r0, 0
strh r0, [r4, 0x8]
- ldr r4, _08101FDC @ =0x02000000
+ ldr r4, _08101FDC @ =gSharedMem
ldrb r1, [r4, 0x4]
movs r0, 0x20
ands r0, r1
@@ -952,14 +951,14 @@ sub_8101FA4: @ 8101FA4
movs r0, 0xA
b _08101FE8
.align 2, 0
-_08101FDC: .4byte 0x02000000
+_08101FDC: .4byte gSharedMem
_08101FE0:
movs r0, 0x1
bl sub_8104CAC
movs r0, 0xB
_08101FE8:
strb r0, [r4]
- ldr r4, _08102004 @ =0x02000000
+ ldr r4, _08102004 @ =gSharedMem
movs r0, 0x8
strh r0, [r4, 0x1A]
ldrb r0, [r4, 0xA]
@@ -973,7 +972,7 @@ _08101FFC:
pop {r1}
bx r1
.align 2, 0
-_08102004: .4byte 0x02000000
+_08102004: .4byte gSharedMem
thumb_func_end sub_8101FA4
thumb_func_start sub_8102008
@@ -985,7 +984,7 @@ sub_8102008: @ 8102008
beq _08102028
movs r0, 0x1
bl sub_8104CAC
- ldr r1, _08102030 @ =0x02000000
+ ldr r1, _08102030 @ =gSharedMem
ldrb r2, [r1, 0x4]
movs r0, 0xDF
ands r0, r2
@@ -997,7 +996,7 @@ _08102028:
pop {r1}
bx r1
.align 2, 0
-_08102030: .4byte 0x02000000
+_08102030: .4byte gSharedMem
thumb_func_end sub_8102008
thumb_func_start sub_8102034
@@ -1011,7 +1010,7 @@ sub_8102034: @ 8102034
cmp r1, 0x1D
ble _0810204E
bl sub_81024F0
- ldr r1, _08102054 @ =0x02000000
+ ldr r1, _08102054 @ =gSharedMem
movs r0, 0xC
strb r0, [r1]
_0810204E:
@@ -1019,7 +1018,7 @@ _0810204E:
pop {r1}
bx r1
.align 2, 0
-_08102054: .4byte 0x02000000
+_08102054: .4byte gSharedMem
thumb_func_end sub_8102034
thumb_func_start sub_8102058
@@ -1033,7 +1032,7 @@ sub_8102058: @ 8102058
beq _0810207E
movs r0, 0x18
bl PlaySE
- ldr r4, _0810208C @ =0x02000000
+ ldr r4, _0810208C @ =gSharedMem
ldrb r0, [r4, 0x18]
bl sub_8102E1C
ldrb r0, [r4, 0x18]
@@ -1047,13 +1046,13 @@ _0810207E:
bx r1
.align 2, 0
_08102088: .4byte gMain
-_0810208C: .4byte 0x02000000
+_0810208C: .4byte gSharedMem
thumb_func_end sub_8102058
thumb_func_start sub_8102090
sub_8102090: @ 8102090
push {r4,lr}
- ldr r4, _081020BC @ =0x02000000
+ ldr r4, _081020BC @ =gSharedMem
ldrb r0, [r4, 0x18]
bl sub_8102E40
lsls r0, 24
@@ -1074,7 +1073,7 @@ _081020B6:
movs r0, 0x1
b _081020C2
.align 2, 0
-_081020BC: .4byte 0x02000000
+_081020BC: .4byte gSharedMem
_081020C0:
movs r0, 0
_081020C2:
@@ -1086,7 +1085,7 @@ _081020C2:
thumb_func_start sub_81020C8
sub_81020C8: @ 81020C8
push {r4,lr}
- ldr r4, _08102128 @ =0x02000000
+ ldr r4, _08102128 @ =gSharedMem
ldrb r1, [r4, 0x4]
movs r0, 0xC0
ands r0, r1
@@ -1130,7 +1129,7 @@ _0810210C:
bl sub_8104CAC
b _0810215A
.align 2, 0
-_08102128: .4byte 0x02000000
+_08102128: .4byte gSharedMem
_0810212C: .4byte 0x00000185
_08102130:
movs r0, 0x40
@@ -1151,7 +1150,7 @@ _0810214C:
movs r0, 0x2
bl sub_8104CAC
_0810215A:
- ldr r1, _081021B0 @ =0x02000000
+ ldr r1, _081021B0 @ =gSharedMem
ldrh r3, [r1, 0x8]
movs r0, 0xE0
lsls r0, 1
@@ -1194,7 +1193,7 @@ _08102192:
bl sub_8104064
b _081021D2
.align 2, 0
-_081021B0: .4byte 0x02000000
+_081021B0: .4byte gSharedMem
_081021B4:
movs r0, 0x3
bl sub_8104CAC
@@ -1226,7 +1225,7 @@ sub_81021E0: @ 81021E0
lsls r0, 24
cmp r0, 0
beq _081021F2
- ldr r1, _081021F8 @ =0x02000000
+ ldr r1, _081021F8 @ =gSharedMem
movs r0, 0x10
strb r0, [r1]
_081021F2:
@@ -1234,7 +1233,7 @@ _081021F2:
pop {r1}
bx r1
.align 2, 0
-_081021F8: .4byte 0x02000000
+_081021F8: .4byte gSharedMem
thumb_func_end sub_81021E0
thumb_func_start sub_81021FC
@@ -1244,7 +1243,7 @@ sub_81021FC: @ 81021FC
lsls r0, 24
cmp r0, 0
beq _08102256
- ldr r4, _08102260 @ =0x02000000
+ ldr r4, _08102260 @ =gSharedMem
movs r0, 0x13
strb r0, [r4]
ldrh r1, [r4, 0x8]
@@ -1290,7 +1289,7 @@ _08102256:
pop {r1}
bx r1
.align 2, 0
-_08102260: .4byte 0x02000000
+_08102260: .4byte gSharedMem
thumb_func_end sub_81021FC
thumb_func_start sub_8102264
@@ -1300,7 +1299,7 @@ sub_8102264: @ 8102264
lsls r0, 24
cmp r0, 0
bne _08102294
- ldr r4, _0810229C @ =0x02000000
+ ldr r4, _0810229C @ =gSharedMem
movs r0, 0x13
strb r0, [r4]
ldrh r1, [r4, 0x8]
@@ -1323,7 +1322,7 @@ _08102294:
pop {r1}
bx r1
.align 2, 0
-_0810229C: .4byte 0x02000000
+_0810229C: .4byte gSharedMem
thumb_func_end sub_8102264
thumb_func_start sub_81022A0
@@ -1333,7 +1332,7 @@ sub_81022A0: @ 81022A0
lsls r0, 24
cmp r0, 0
beq _081022C0
- ldr r2, _081022C8 @ =0x02000000
+ ldr r2, _081022C8 @ =gSharedMem
movs r0, 0x13
strb r0, [r2]
ldrh r1, [r2, 0x8]
@@ -1348,7 +1347,7 @@ _081022C0:
pop {r1}
bx r1
.align 2, 0
-_081022C8: .4byte 0x02000000
+_081022C8: .4byte gSharedMem
thumb_func_end sub_81022A0
thumb_func_start sub_81022CC
@@ -1360,14 +1359,14 @@ sub_81022CC: @ 81022CC
bl sub_8103D8C
movs r0, 0x2
bl sub_8103D8C
- ldr r1, _081022EC @ =0x02000000
+ ldr r1, _081022EC @ =gSharedMem
movs r0, 0x2
strb r0, [r1]
movs r0, 0
pop {r1}
bx r1
.align 2, 0
-_081022EC: .4byte 0x02000000
+_081022EC: .4byte gSharedMem
thumb_func_end sub_81022CC
thumb_func_start sub_81022F0
@@ -1383,7 +1382,7 @@ sub_81022F0: @ 81022F0
ble _0810230C
movs r0, 0
strh r0, [r1, 0xA]
- ldr r1, _08102314 @ =0x02000000
+ ldr r1, _08102314 @ =gSharedMem
movs r0, 0x13
strb r0, [r1]
_0810230C:
@@ -1391,7 +1390,7 @@ _0810230C:
pop {r1}
bx r1
.align 2, 0
-_08102314: .4byte 0x02000000
+_08102314: .4byte gSharedMem
thumb_func_end sub_81022F0
thumb_func_start sub_8102318
@@ -1404,7 +1403,7 @@ sub_8102318: @ 8102318
movs r2, 0x1
bl DisplayYesNoMenu
bl sub_814AB84
- ldr r1, _08102340 @ =0x02000000
+ ldr r1, _08102340 @ =gSharedMem
movs r0, 0x16
strb r0, [r1]
movs r0, 0
@@ -1412,7 +1411,7 @@ sub_8102318: @ 8102318
bx r1
.align 2, 0
_0810233C: .4byte gOtherText_QuitGamePrompt
-_08102340: .4byte 0x02000000
+_08102340: .4byte gSharedMem
thumb_func_end sub_8102318
thumb_func_start sub_8102344
@@ -1430,7 +1429,7 @@ sub_8102344: @ 8102344
bl sub_8103D8C
movs r0, 0x2
bl sub_8103D8C
- ldr r0, _08102378 @ =0x02000000
+ ldr r0, _08102378 @ =gSharedMem
ldrh r1, [r0, 0x12]
ldrh r2, [r0, 0xC]
adds r1, r2
@@ -1439,7 +1438,7 @@ sub_8102344: @ 8102344
strb r1, [r0]
b _08102392
.align 2, 0
-_08102378: .4byte 0x02000000
+_08102378: .4byte gSharedMem
_0810237C:
cmp r1, 0x1
beq _08102388
@@ -1449,7 +1448,7 @@ _0810237C:
bne _08102392
_08102388:
bl MenuZeroFillScreen
- ldr r1, _08102398 @ =0x02000000
+ ldr r1, _08102398 @ =gSharedMem
movs r0, 0x5
strb r0, [r1]
_08102392:
@@ -1457,7 +1456,7 @@ _08102392:
pop {r1}
bx r1
.align 2, 0
-_08102398: .4byte 0x02000000
+_08102398: .4byte gSharedMem
thumb_func_end sub_8102344
thumb_func_start sub_810239C
@@ -1465,7 +1464,7 @@ sub_810239C: @ 810239C
push {lr}
ldr r0, _081023B0 @ =gOtherText_MaxCoins
bl sub_8101F2C
- ldr r1, _081023B4 @ =0x02000000
+ ldr r1, _081023B4 @ =gSharedMem
movs r0, 0x18
strb r0, [r1]
movs r0, 0
@@ -1473,7 +1472,7 @@ sub_810239C: @ 810239C
bx r1
.align 2, 0
_081023B0: .4byte gOtherText_MaxCoins
-_081023B4: .4byte 0x02000000
+_081023B4: .4byte gSharedMem
thumb_func_end sub_810239C
thumb_func_start sub_81023B8
@@ -1486,7 +1485,7 @@ sub_81023B8: @ 81023B8
cmp r0, 0
beq _081023D0
bl MenuZeroFillScreen
- ldr r1, _081023DC @ =0x02000000
+ ldr r1, _081023DC @ =gSharedMem
movs r0, 0x5
strb r0, [r1]
_081023D0:
@@ -1495,7 +1494,7 @@ _081023D0:
bx r1
.align 2, 0
_081023D8: .4byte gMain
-_081023DC: .4byte 0x02000000
+_081023DC: .4byte gSharedMem
thumb_func_end sub_81023B8
thumb_func_start sub_81023E0
@@ -1503,7 +1502,7 @@ sub_81023E0: @ 81023E0
push {lr}
ldr r0, _081023F4 @ =gOtherText_OutOfCoins
bl sub_8101F2C
- ldr r1, _081023F8 @ =0x02000000
+ ldr r1, _081023F8 @ =gSharedMem
movs r0, 0x1A
strb r0, [r1]
movs r0, 0
@@ -1511,7 +1510,7 @@ sub_81023E0: @ 81023E0
bx r1
.align 2, 0
_081023F4: .4byte gOtherText_OutOfCoins
-_081023F8: .4byte 0x02000000
+_081023F8: .4byte gSharedMem
thumb_func_end sub_81023E0
thumb_func_start sub_81023FC
@@ -1524,7 +1523,7 @@ sub_81023FC: @ 81023FC
cmp r0, 0
beq _08102414
bl MenuZeroFillScreen
- ldr r1, _08102420 @ =0x02000000
+ ldr r1, _08102420 @ =gSharedMem
movs r0, 0x1B
strb r0, [r1]
_08102414:
@@ -1533,7 +1532,7 @@ _08102414:
bx r1
.align 2, 0
_0810241C: .4byte gMain
-_08102420: .4byte 0x02000000
+_08102420: .4byte gSharedMem
thumb_func_end sub_81023FC
thumb_func_start sub_8102424
@@ -1541,7 +1540,7 @@ sub_8102424: @ 8102424
push {r4,lr}
sub sp, 0x4
ldr r0, _08102454 @ =gSaveBlock1
- ldr r4, _08102458 @ =0x02000000
+ ldr r4, _08102458 @ =gSharedMem
ldrh r1, [r4, 0xC]
ldr r2, _0810245C @ =0x00000494
adds r0, r2
@@ -1563,7 +1562,7 @@ sub_8102424: @ 8102424
bx r1
.align 2, 0
_08102454: .4byte gSaveBlock1
-_08102458: .4byte 0x02000000
+_08102458: .4byte gSharedMem
_0810245C: .4byte 0x00000494
thumb_func_end sub_8102424
@@ -1576,7 +1575,7 @@ sub_8102460: @ 8102460
ands r0, r1
cmp r0, 0
bne _08102476
- ldr r0, _08102480 @ =0x02000000
+ ldr r0, _08102480 @ =gSharedMem
ldr r0, [r0, 0x64]
bl SetMainCallback2
_08102476:
@@ -1585,13 +1584,13 @@ _08102476:
bx r1
.align 2, 0
_0810247C: .4byte gPaletteFade
-_08102480: .4byte 0x02000000
+_08102480: .4byte gSharedMem
thumb_func_end sub_8102460
thumb_func_start sub_8102484
sub_8102484: @ 8102484
push {r4,lr}
- ldr r4, _081024E4 @ =0x02000000
+ ldr r4, _081024E4 @ =gSharedMem
ldrb r0, [r4, 0xA]
cmp r0, 0
bne _081024DC
@@ -1624,7 +1623,7 @@ _081024C0:
lsrs r3, r0, 24
cmp r3, 0x5
beq _081024DC
- ldr r2, _081024E4 @ =0x02000000
+ ldr r2, _081024E4 @ =gSharedMem
ldr r1, _081024EC @ =gUnknown_083ECE48
lsls r0, r3, 1
adds r0, r1
@@ -1637,7 +1636,7 @@ _081024DC:
pop {r0}
bx r0
.align 2, 0
-_081024E4: .4byte 0x02000000
+_081024E4: .4byte gSharedMem
_081024E8: .4byte gUnknown_083ECE42
_081024EC: .4byte gUnknown_083ECE48
thumb_func_end sub_8102484
@@ -1645,7 +1644,7 @@ _081024EC: .4byte gUnknown_083ECE48
thumb_func_start sub_81024F0
sub_81024F0: @ 81024F0
push {lr}
- ldr r1, _08102508 @ =0x02000000
+ ldr r1, _08102508 @ =gSharedMem
movs r0, 0
strb r0, [r1, 0x6]
ldrb r0, [r1, 0x4]
@@ -1657,7 +1656,7 @@ _08102502:
pop {r0}
bx r0
.align 2, 0
-_08102508: .4byte 0x02000000
+_08102508: .4byte gSharedMem
thumb_func_end sub_81024F0
thumb_func_start sub_810250C
@@ -1699,7 +1698,7 @@ sub_8102540: @ 8102540
lsls r0, 24
lsrs r0, 24
ldr r4, _08102568 @ =gUnknown_083ECD04
- ldr r1, _0810256C @ =0x02000000
+ ldr r1, _0810256C @ =gSharedMem
movs r3, 0x12
ldrsh r2, [r1, r3]
ldrb r3, [r1, 0x1]
@@ -1715,7 +1714,7 @@ sub_8102540: @ 8102540
b _08102572
.align 2, 0
_08102568: .4byte gUnknown_083ECD04
-_0810256C: .4byte 0x02000000
+_0810256C: .4byte gSharedMem
_08102570:
movs r0, 0x1
_08102572:
@@ -1732,7 +1731,7 @@ sub_8102578: @ 8102578
_0810257E:
bl Random
movs r2, 0xFF
- ldr r3, _081025B8 @ =0x02000000
+ ldr r3, _081025B8 @ =gSharedMem
lsls r1, r5, 16
asrs r4, r1, 16
lsls r1, r4, 1
@@ -1759,7 +1758,7 @@ _081025AA:
bx r1
.align 2, 0
_081025B4: .4byte gUnknown_083ECD16
-_081025B8: .4byte 0x02000000
+_081025B8: .4byte gSharedMem
thumb_func_end sub_8102578
thumb_func_start sub_81025BC
@@ -1770,7 +1769,7 @@ sub_81025BC: @ 81025BC
movs r6, 0
ldr r0, _08102600 @ =gUnknown_083ECD28
mov r8, r0
- ldr r5, _08102604 @ =0x02000000
+ ldr r5, _08102604 @ =gSharedMem
movs r7, 0x80
lsls r7, 17
_081025CE:
@@ -1799,7 +1798,7 @@ _081025CE:
b _08102622
.align 2, 0
_08102600: .4byte gUnknown_083ECD28
-_08102604: .4byte 0x02000000
+_08102604: .4byte gSharedMem
_08102608:
asrs r0, r2, 16
cmp r0, 0x4
@@ -1843,14 +1842,14 @@ sub_810264C: @ 810264C
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r3, _08102660 @ =0x02000000
+ 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 0x02000000
+_08102660: .4byte gSharedMem
_08102664: .4byte gUnknown_083ECDAC
_08102668:
ldr r0, _0810267C @ =gUnknown_083ECD46
@@ -1870,7 +1869,7 @@ _0810267C: .4byte gUnknown_083ECD46
thumb_func_start sub_8102680
sub_8102680: @ 8102680
push {r4-r6,lr}
- ldr r1, _081026A4 @ =0x02000000
+ ldr r1, _081026A4 @ =gSharedMem
movs r0, 0
strb r0, [r1, 0x5]
bl Random
@@ -1885,7 +1884,7 @@ sub_8102680: @ 8102680
movs r6, 0x5
b _081026AE
.align 2, 0
-_081026A4: .4byte 0x02000000
+_081026A4: .4byte gSharedMem
_081026A8:
subs r0, r5, 0x1
lsls r0, 16
@@ -1906,14 +1905,14 @@ _081026AE:
cmp r4, r0
bcs _081026A8
_081026CE:
- ldr r0, _081026D8 @ =0x02000000
+ ldr r0, _081026D8 @ =gSharedMem
strb r6, [r0, 0x5]
_081026D2:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_081026D8: .4byte 0x02000000
+_081026D8: .4byte gSharedMem
thumb_func_end sub_8102680
thumb_func_start sub_81026DC
@@ -1947,7 +1946,7 @@ _08102702:
dp15_jump_random_unknown: @ 8102708
push {r4,r5,lr}
movs r4, 0
- ldr r0, _0810271C @ =0x02000000
+ ldr r0, _0810271C @ =gSharedMem
movs r2, 0x10
ldrsh r1, [r0, r2]
ldr r0, _08102720 @ =0x0000012b
@@ -1956,7 +1955,7 @@ dp15_jump_random_unknown: @ 8102708
movs r4, 0x4
b _0810273A
.align 2, 0
-_0810271C: .4byte 0x02000000
+_0810271C: .4byte gSharedMem
_08102720: .4byte 0x0000012b
_08102724:
cmp r1, 0xF9
@@ -2000,7 +1999,7 @@ _08102760:
adds r2, r5, 0x2
adds r2, r4, r2
ldr r3, _08102790 @ =gUnknown_083ECE30
- ldr r1, _08102794 @ =0x02000000
+ ldr r1, _08102794 @ =gSharedMem
ldrb r1, [r1, 0xB]
lsls r1, 1
adds r1, r3
@@ -2014,7 +2013,7 @@ _08102760:
b _0810279A
.align 2, 0
_08102790: .4byte gUnknown_083ECE30
-_08102794: .4byte 0x02000000
+_08102794: .4byte gSharedMem
_08102798:
movs r0, 0x2
_0810279A:
@@ -2026,7 +2025,7 @@ _0810279A:
thumb_func_start sub_81027A0
sub_81027A0: @ 81027A0
push {r4,lr}
- ldr r4, _081027CC @ =0x02000000
+ ldr r4, _081027CC @ =gSharedMem
movs r0, 0
strh r0, [r4, 0x8]
bl sub_81027D0
@@ -2046,7 +2045,7 @@ _081027C4:
pop {r0}
bx r0
.align 2, 0
-_081027CC: .4byte 0x02000000
+_081027CC: .4byte gSharedMem
thumb_func_end sub_81027A0
thumb_func_start sub_81027D0
@@ -2077,7 +2076,7 @@ sub_81027D0: @ 81027D0
lsrs r1, r0, 24
cmp r1, 0x9
beq _0810282E
- ldr r2, _08102834 @ =0x02000000
+ ldr r2, _08102834 @ =gSharedMem
ldr r0, _08102838 @ =gUnknown_083ECE6C
lsls r1, 1
adds r0, r1, r0
@@ -2098,7 +2097,7 @@ _0810282E:
pop {r0}
bx r0
.align 2, 0
-_08102834: .4byte 0x02000000
+_08102834: .4byte gSharedMem
_08102838: .4byte gUnknown_083ECE6C
_0810283C: .4byte gUnknown_083ECE5A
thumb_func_end sub_81027D0
@@ -2132,7 +2131,7 @@ sub_8102840: @ 8102840
bne _0810287C
movs r1, 0x1
_0810287C:
- ldr r2, _08102900 @ =0x02000000
+ ldr r2, _08102900 @ =gSharedMem
ldr r0, _08102904 @ =gUnknown_083ECE6C
lsls r1, 1
adds r0, r1, r0
@@ -2175,7 +2174,7 @@ _0810289E:
bne _081028D8
movs r1, 0x1
_081028D8:
- ldr r2, _08102900 @ =0x02000000
+ ldr r2, _08102900 @ =gSharedMem
ldr r0, _08102904 @ =gUnknown_083ECE6C
lsls r1, 1
adds r0, r1, r0
@@ -2196,7 +2195,7 @@ _081028FA:
pop {r0}
bx r0
.align 2, 0
-_08102900: .4byte 0x02000000
+_08102900: .4byte gSharedMem
_08102904: .4byte gUnknown_083ECE6C
_08102908: .4byte gUnknown_083ECE5A
thumb_func_end sub_8102840
@@ -2228,7 +2227,7 @@ sub_810290C: @ 810290C
beq _08102968
cmp r1, 0
beq _08102962
- ldr r2, _081029C8 @ =0x02000000
+ ldr r2, _081029C8 @ =gSharedMem
ldr r0, _081029CC @ =gUnknown_083ECE6C
lsls r1, 1
adds r0, r1, r0
@@ -2270,7 +2269,7 @@ _08102968:
beq _081029C2
cmp r1, 0
beq _081029BC
- ldr r2, _081029C8 @ =0x02000000
+ ldr r2, _081029C8 @ =gSharedMem
ldr r0, _081029CC @ =gUnknown_083ECE6C
lsls r1, 1
adds r0, r1, r0
@@ -2292,7 +2291,7 @@ _081029C2:
pop {r0}
bx r0
.align 2, 0
-_081029C8: .4byte 0x02000000
+_081029C8: .4byte gSharedMem
_081029CC: .4byte gUnknown_083ECE6C
_081029D0: .4byte gUnknown_083ECE5A
thumb_func_end sub_810290C
@@ -2423,7 +2422,7 @@ sub_8102A9C: @ 8102A9C
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
- ldr r0, _08102AC4 @ =0x02000000
+ ldr r0, _08102AC4 @ =gSharedMem
movs r1, 0xE
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -2433,7 +2432,7 @@ sub_8102A9C: @ 8102A9C
movs r0, 0x1
b _08102ACA
.align 2, 0
-_08102AC4: .4byte 0x02000000
+_08102AC4: .4byte gSharedMem
_08102AC8:
movs r0, 0
_08102ACA:
@@ -2462,7 +2461,7 @@ sub_8102AD0: @ 8102AD0
movs r0, 0x15
bl PlaySE
_08102AF6:
- ldr r2, _08102B70 @ =0x02000000
+ ldr r2, _08102B70 @ =gSharedMem
ldrh r0, [r2, 0xE]
subs r0, 0x1
strh r0, [r2, 0xE]
@@ -2498,7 +2497,7 @@ _08102B22:
beq _08102B58
movs r0, 0x15
bl PlaySE
- ldr r1, _08102B70 @ =0x02000000
+ ldr r1, _08102B70 @ =gSharedMem
ldrh r0, [r1, 0xE]
ldrh r2, [r1, 0xC]
adds r0, r2
@@ -2513,7 +2512,7 @@ _08102B54:
movs r0, 0
strh r0, [r1, 0xE]
_08102B58:
- ldr r0, _08102B70 @ =0x02000000
+ ldr r0, _08102B70 @ =gSharedMem
movs r1, 0xE
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -2527,7 +2526,7 @@ _08102B68:
pop {r1}
bx r1
.align 2, 0
-_08102B70: .4byte 0x02000000
+_08102B70: .4byte gSharedMem
_08102B74: .4byte 0x0000270e
_08102B78: .4byte gMain
_08102B7C: .4byte 0x0000270f
@@ -2559,7 +2558,7 @@ sub_8102BA4: @ 8102BA4
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
- ldr r0, _08102BF0 @ =0x02000000
+ ldr r0, _08102BF0 @ =gSharedMem
lsls r2, r4, 1
adds r0, 0x28
adds r2, r0
@@ -2593,7 +2592,7 @@ _08102BD4:
pop {r1}
bx r1
.align 2, 0
-_08102BF0: .4byte 0x02000000
+_08102BF0: .4byte gSharedMem
_08102BF4: .4byte gUnknown_083ECCB2
thumb_func_end sub_8102BA4
@@ -2606,7 +2605,7 @@ sub_8102BF8: @ 8102BF8
lsls r1, 16
lsrs r4, r1, 16
movs r6, 0
- ldr r0, _08102C40 @ =0x02000000
+ ldr r0, _08102C40 @ =gSharedMem
lsls r1, r5, 1
adds r0, 0x1C
adds r1, r0
@@ -2634,14 +2633,14 @@ _08102C20:
pop {r1}
bx r1
.align 2, 0
-_08102C40: .4byte 0x02000000
+_08102C40: .4byte gSharedMem
_08102C44: .4byte 0x0000ffff
thumb_func_end sub_8102BF8
thumb_func_start sub_8102C48
sub_8102C48: @ 8102C48
push {lr}
- ldr r1, _08102C7C @ =0x02000000
+ ldr r1, _08102C7C @ =gSharedMem
movs r2, 0x16
ldrsh r1, [r1, r2]
lsls r0, 16
@@ -2667,7 +2666,7 @@ _08102C6E:
pop {r1}
bx r1
.align 2, 0
-_08102C7C: .4byte 0x02000000
+_08102C7C: .4byte gSharedMem
_08102C80: .4byte gUnknown_083ECCF1
thumb_func_end sub_8102C48
@@ -2676,7 +2675,7 @@ sub_8102C84: @ 8102C84
push {r4-r6,lr}
adds r5, r0, 0
lsls r5, 24
- ldr r6, _08102CC8 @ =0x02000000
+ ldr r6, _08102CC8 @ =gSharedMem
lsrs r5, 23
adds r4, r6, 0
adds r4, 0x1C
@@ -2705,7 +2704,7 @@ sub_8102C84: @ 8102C84
pop {r0}
bx r0
.align 2, 0
-_08102CC8: .4byte 0x02000000
+_08102CC8: .4byte gSharedMem
thumb_func_end sub_8102C84
thumb_func_start sub_8102CCC
@@ -2716,7 +2715,7 @@ sub_8102CCC: @ 8102CCC
adds r6, r0, 0
lsls r1, 16
lsrs r4, r1, 16
- ldr r0, _08102D24 @ =0x02000000
+ ldr r0, _08102D24 @ =gSharedMem
lsls r1, r6, 1
adds r0, 0x1C
adds r5, r1, r0
@@ -2753,13 +2752,13 @@ _08102D18:
pop {r1}
bx r1
.align 2, 0
-_08102D24: .4byte 0x02000000
+_08102D24: .4byte gSharedMem
thumb_func_end sub_8102CCC
thumb_func_start sub_8102D28
sub_8102D28: @ 8102D28
push {r4,lr}
- ldr r4, _08102D58 @ =0x02000000
+ ldr r4, _08102D58 @ =gSharedMem
lsls r0, 16
asrs r0, 16
ldrh r1, [r4, 0x14]
@@ -2781,7 +2780,7 @@ sub_8102D28: @ 8102D28
pop {r0}
bx r0
.align 2, 0
-_08102D58: .4byte 0x02000000
+_08102D58: .4byte gSharedMem
thumb_func_end sub_8102D28
thumb_func_start sub_8102D5C
@@ -2789,7 +2788,7 @@ sub_8102D5C: @ 8102D5C
push {r4,r5,lr}
lsls r0, 16
lsrs r4, r0, 16
- ldr r5, _08102DA4 @ =0x02000000
+ ldr r5, _08102DA4 @ =gSharedMem
movs r1, 0x14
ldrsh r0, [r5, r1]
movs r1, 0x14
@@ -2822,7 +2821,7 @@ _08102D9A:
pop {r1}
bx r1
.align 2, 0
-_08102DA4: .4byte 0x02000000
+_08102DA4: .4byte gSharedMem
thumb_func_end sub_8102D5C
thumb_func_start sub_8102DA8
@@ -2831,7 +2830,7 @@ sub_8102DA8: @ 8102DA8
movs r4, 0
ldr r5, _08102DE0 @ =sub_8102E68
ldr r7, _08102DE4 @ =gTasks
- ldr r6, _08102DE8 @ =0x0200003a
+ ldr r6, _08102DE8 @ =gSharedMem + 0x3A
_08102DB2:
adds r0, r5, 0
movs r1, 0x2
@@ -2857,7 +2856,7 @@ _08102DB2:
.align 2, 0
_08102DE0: .4byte sub_8102E68
_08102DE4: .4byte gTasks
-_08102DE8: .4byte 0x0200003a
+_08102DE8: .4byte gSharedMem + 0x3A
thumb_func_end sub_8102DA8
thumb_func_start sub_8102DEC
@@ -2865,7 +2864,7 @@ sub_8102DEC: @ 8102DEC
lsls r0, 24
lsrs r0, 24
ldr r3, _08102E14 @ =gTasks
- ldr r1, _08102E18 @ =0x02000000
+ ldr r1, _08102E18 @ =gSharedMem
adds r1, 0x3A
adds r0, r1
ldrb r2, [r0]
@@ -2884,7 +2883,7 @@ sub_8102DEC: @ 8102DEC
bx lr
.align 2, 0
_08102E14: .4byte gTasks
-_08102E18: .4byte 0x02000000
+_08102E18: .4byte gSharedMem
thumb_func_end sub_8102DEC
thumb_func_start sub_8102E1C
@@ -2892,7 +2891,7 @@ sub_8102E1C: @ 8102E1C
lsls r0, 24
lsrs r0, 24
ldr r2, _08102E38 @ =gTasks
- ldr r1, _08102E3C @ =0x02000000
+ ldr r1, _08102E3C @ =gSharedMem
adds r1, 0x3A
adds r0, r1
ldrb r1, [r0]
@@ -2905,7 +2904,7 @@ sub_8102E1C: @ 8102E1C
bx lr
.align 2, 0
_08102E38: .4byte gTasks
-_08102E3C: .4byte 0x02000000
+_08102E3C: .4byte gSharedMem
thumb_func_end sub_8102E1C
thumb_func_start sub_8102E40
@@ -2913,7 +2912,7 @@ sub_8102E40: @ 8102E40
lsls r0, 24
lsrs r0, 24
ldr r2, _08102E60 @ =gTasks
- ldr r1, _08102E64 @ =0x02000000
+ ldr r1, _08102E64 @ =gSharedMem
adds r1, 0x3A
adds r0, r1
ldrb r1, [r0]
@@ -2927,7 +2926,7 @@ sub_8102E40: @ 8102E40
bx lr
.align 2, 0
_08102E60: .4byte gTasks
-_08102E64: .4byte 0x02000000
+_08102E64: .4byte gSharedMem
thumb_func_end sub_8102E40
thumb_func_start sub_8102E68
@@ -2972,7 +2971,7 @@ sub_8102EA4: @ 8102EA4
ldrh r0, [r0, 0x26]
lsls r0, 24
lsrs r0, 24
- ldr r1, _08102EBC @ =0x02000000
+ ldr r1, _08102EBC @ =gSharedMem
movs r2, 0x1A
ldrsh r1, [r1, r2]
bl sub_8102C84
@@ -2980,7 +2979,7 @@ sub_8102EA4: @ 8102EA4
pop {r1}
bx r1
.align 2, 0
-_08102EBC: .4byte 0x02000000
+_08102EBC: .4byte gSharedMem
thumb_func_end sub_8102EA4
thumb_func_start sub_8102EC0
@@ -2991,7 +2990,7 @@ sub_8102EC0: @ 8102EC0
adds r0, 0x1
movs r2, 0
strh r0, [r4, 0x8]
- ldr r3, _08102F40 @ =0x02000000
+ ldr r3, _08102F40 @ =gSharedMem
movs r1, 0x26
ldrsh r0, [r4, r1]
lsls r0, 1
@@ -3026,7 +3025,7 @@ sub_8102EC0: @ 8102EC0
cmp r0, 0
bne _08102F28
_08102F12:
- ldr r1, _08102F40 @ =0x02000000
+ ldr r1, _08102F40 @ =gSharedMem
movs r0, 0
strb r0, [r1, 0x6]
ldr r1, _08102F48 @ =gUnknown_083ECB4C
@@ -3037,7 +3036,7 @@ _08102F12:
ldr r0, [r0]
bl _call_via_r0
_08102F28:
- ldr r0, _08102F40 @ =0x02000000
+ ldr r0, _08102F40 @ =gSharedMem
movs r2, 0x26
ldrsh r1, [r4, r2]
lsls r1, 1
@@ -3050,7 +3049,7 @@ _08102F28:
pop {r1}
bx r1
.align 2, 0
-_08102F40: .4byte 0x02000000
+_08102F40: .4byte gSharedMem
_08102F44: .4byte gUnknown_083ECB40
_08102F48: .4byte gUnknown_083ECB4C
thumb_func_end sub_8102EC0
@@ -3064,7 +3063,7 @@ sub_8102F4C: @ 8102F4C
mov r0, sp
movs r2, 0xA
bl memcpy
- ldr r5, _08102F90 @ =0x02000000
+ ldr r5, _08102F90 @ =gSharedMem
movs r1, 0x26
ldrsh r0, [r4, r1]
lsls r6, r0, 1
@@ -3088,7 +3087,7 @@ sub_8102F4C: @ 8102F4C
b _08102FC8
.align 2, 0
_08102F8C: .4byte gUnknown_083ECB58
-_08102F90: .4byte 0x02000000
+_08102F90: .4byte gSharedMem
_08102F94:
adds r0, r5, 0
adds r0, 0x2E
@@ -3120,7 +3119,7 @@ _08102FC8:
_08102FCC:
cmp r2, 0
bne _08102FF8
- ldr r1, _08103004 @ =0x02000000
+ ldr r1, _08103004 @ =gSharedMem
movs r2, 0x26
ldrsh r0, [r4, r2]
lsls r0, 1
@@ -3147,14 +3146,14 @@ _08102FF8:
pop {r1}
bx r1
.align 2, 0
-_08103004: .4byte 0x02000000
+_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 @ =0x02000000
+ ldr r1, _08103058 @ =gSharedMem
movs r3, 0x26
ldrsh r0, [r2, r3]
lsls r0, 1
@@ -3194,13 +3193,13 @@ _0810304E:
pop {r1}
bx r1
.align 2, 0
-_08103058: .4byte 0x02000000
+_08103058: .4byte gSharedMem
thumb_func_end sub_8103008
thumb_func_start sub_810305C
sub_810305C: @ 810305C
push {r4,r5,lr}
- ldr r4, _0810309C @ =0x02000000
+ ldr r4, _0810309C @ =gSharedMem
ldrb r0, [r4, 0x4]
bl sub_810250C
lsls r0, 24
@@ -3230,7 +3229,7 @@ _0810307A:
pop {r1}
bx r1
.align 2, 0
-_0810309C: .4byte 0x02000000
+_0810309C: .4byte gSharedMem
_081030A0: .4byte gUnknown_083ECB64
thumb_func_end sub_810305C
@@ -3256,12 +3255,12 @@ sub_81030A4: @ 81030A4
cmp r0, r5
bne _081030D8
_081030CC:
- ldr r0, _081030D4 @ =0x02000000
+ ldr r0, _081030D4 @ =gSharedMem
strb r1, [r0, 0x7]
movs r0, 0x1
b _081030DA
.align 2, 0
-_081030D4: .4byte 0x02000000
+_081030D4: .4byte gSharedMem
_081030D8:
movs r0, 0
_081030DA:
@@ -3319,7 +3318,7 @@ _0810312E:
thumb_func_start sub_8103134
sub_8103134: @ 8103134
push {lr}
- ldr r0, _08103148 @ =0x02000000
+ ldr r0, _08103148 @ =gSharedMem
ldrb r1, [r0, 0x4]
movs r0, 0xC2
ands r0, r1
@@ -3328,7 +3327,7 @@ sub_8103134: @ 8103134
movs r0, 0
b _0810314E
.align 2, 0
-_08103148: .4byte 0x02000000
+_08103148: .4byte gSharedMem
_0810314C:
movs r0, 0x1
_0810314E:
@@ -3350,7 +3349,7 @@ sub_8103154: @ 8103154
movs r5, 0
movs r0, 0x2
mov r9, r0
- ldr r6, _08103194 @ =0x02000000
+ ldr r6, _08103194 @ =gSharedMem
_0810316E:
lsls r0, r5, 16
asrs r4, r0, 16
@@ -3370,7 +3369,7 @@ _0810316E:
movs r0, 0x1
b _081031A6
.align 2, 0
-_08103194: .4byte 0x02000000
+_08103194: .4byte gSharedMem
_08103198:
adds r0, r4, 0x1
lsls r0, 16
@@ -3414,7 +3413,7 @@ sub_81031B4: @ 81031B4
_081031E2:
movs r0, 0x1
mov r8, r0
- ldr r5, _0810320C @ =0x02000000
+ ldr r5, _0810320C @ =gSharedMem
movs r7, 0
_081031EA:
mov r1, r8
@@ -3433,7 +3432,7 @@ _081031EA:
movs r0, 0x1
b _081032B2
.align 2, 0
-_0810320C: .4byte 0x02000000
+_0810320C: .4byte gSharedMem
_08103210:
adds r0, r4, 0x1
lsls r0, 16
@@ -3446,7 +3445,7 @@ _0810321E:
movs r0, 0x1
mov r8, r0
adds r7, r6, 0
- ldr r6, _0810326C @ =0x02000000
+ ldr r6, _0810326C @ =gSharedMem
_08103226:
mov r1, r8
lsls r5, r1, 16
@@ -3483,7 +3482,7 @@ _08103266:
strh r0, [r6, 0x34]
b _0810329A
.align 2, 0
-_0810326C: .4byte 0x02000000
+_0810326C: .4byte gSharedMem
_08103270:
asrs r0, r5, 16
cmp r0, 0x3
@@ -3535,7 +3534,7 @@ _081032B2:
sub_81032C0: @ 81032C0
push {lr}
ldr r1, _081032E0 @ =gUnknown_083ECB70
- ldr r0, _081032E4 @ =0x02000000
+ ldr r0, _081032E4 @ =gSharedMem
movs r2, 0x12
ldrsh r0, [r0, r2]
subs r0, 0x1
@@ -3549,7 +3548,7 @@ sub_81032C0: @ 81032C0
bx r1
.align 2, 0
_081032E0: .4byte gUnknown_083ECB70
-_081032E4: .4byte 0x02000000
+_081032E4: .4byte gSharedMem
thumb_func_end sub_81032C0
thumb_func_start sub_81032E8
@@ -3557,7 +3556,7 @@ sub_81032E8: @ 81032E8
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r0, _08103320 @ =0x02000000
+ ldr r0, _08103320 @ =gSharedMem
movs r6, 0
ldrh r1, [r0, 0x34]
mov r8, r1
@@ -3583,7 +3582,7 @@ _081032FC:
movs r0, 0x1
b _08103332
.align 2, 0
-_08103320: .4byte 0x02000000
+_08103320: .4byte gSharedMem
_08103324:
adds r0, r4, 0x1
lsls r0, 16
@@ -3607,7 +3606,7 @@ sub_810333C: @ 810333C
lsls r0, 24
cmp r0, 0
beq _0810339A
- ldr r1, _0810338C @ =0x02000000
+ ldr r1, _0810338C @ =gSharedMem
movs r2, 0x34
ldrsh r0, [r1, r2]
cmp r0, 0x2
@@ -3642,7 +3641,7 @@ _08103364:
ble _08103364
b _08103396
.align 2, 0
-_0810338C: .4byte 0x02000000
+_0810338C: .4byte gSharedMem
_08103390:
movs r0, 0x2
strh r0, [r6, 0x36]
@@ -3651,7 +3650,7 @@ _08103396:
movs r0, 0x1
b _081033D2
_0810339A:
- ldr r1, _081033D8 @ =0x02000000
+ ldr r1, _081033D8 @ =gSharedMem
movs r2, 0x34
ldrsh r0, [r1, r2]
cmp r0, 0x2
@@ -3685,13 +3684,13 @@ _081033D2:
pop {r1}
bx r1
.align 2, 0
-_081033D8: .4byte 0x02000000
+_081033D8: .4byte gSharedMem
thumb_func_end sub_810333C
thumb_func_start sub_81033DC
sub_81033DC: @ 81033DC
push {r4,lr}
- ldr r0, _08103414 @ =0x02000000
+ ldr r0, _08103414 @ =gSharedMem
ldrb r3, [r0, 0x7]
adds r4, r3, 0
ldrb r2, [r0, 0x4]
@@ -3719,7 +3718,7 @@ _081033F6:
pop {r1}
bx r1
.align 2, 0
-_08103414: .4byte 0x02000000
+_08103414: .4byte gSharedMem
_08103418: .4byte gUnknown_083ECB7C
thumb_func_end sub_81033DC
@@ -3732,7 +3731,7 @@ sub_810341C: @ 810341C
lsls r0, 24
lsrs r0, 24
mov r9, r0
- ldr r0, _0810345C @ =0x02000000
+ ldr r0, _0810345C @ =gSharedMem
movs r5, 0
ldrh r1, [r0, 0x36]
mov r8, r1
@@ -3757,7 +3756,7 @@ _08103438:
movs r0, 0x1
b _0810346E
.align 2, 0
-_0810345C: .4byte 0x02000000
+_0810345C: .4byte gSharedMem
_08103460:
adds r0, r4, 0x1
lsls r0, 16
@@ -3782,7 +3781,7 @@ sub_810347C: @ 810347C
push {r7}
lsls r0, 24
lsrs r6, r0, 24
- ldr r0, _081034A0 @ =0x02000000
+ ldr r0, _081034A0 @ =gSharedMem
movs r2, 0x34
ldrsh r1, [r0, r2]
movs r2, 0x36
@@ -3795,16 +3794,16 @@ sub_810347C: @ 810347C
lsrs r0, 24
b _081034EA
.align 2, 0
-_081034A0: .4byte 0x02000000
+_081034A0: .4byte gSharedMem
_081034A4:
- ldr r0, _081034B0 @ =0x02000000
+ 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 0x02000000
+_081034B0: .4byte gSharedMem
_081034B4:
movs r2, 0x1
mov r8, r2
@@ -3859,13 +3858,13 @@ _08103500:
lsls r0, 24
cmp r0, 0
bne _081034FA
- ldr r0, _0810351C @ =0x02000000
+ ldr r0, _0810351C @ =gSharedMem
strh r5, [r0, 0x2E]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_0810351C: .4byte 0x02000000
+_0810351C: .4byte gSharedMem
thumb_func_end sub_81034F4
thumb_func_start sub_8103520
@@ -3896,7 +3895,7 @@ _0810353C:
sub_8103540: @ 8103540
push {lr}
ldr r1, _0810355C @ =gUnknown_083ECB88
- ldr r0, _08103560 @ =0x02000000
+ ldr r0, _08103560 @ =gSharedMem
movs r2, 0x12
ldrsh r0, [r0, r2]
subs r0, 0x1
@@ -3908,7 +3907,7 @@ sub_8103540: @ 8103540
bx r0
.align 2, 0
_0810355C: .4byte gUnknown_083ECB88
-_08103560: .4byte 0x02000000
+_08103560: .4byte gSharedMem
thumb_func_end sub_8103540
thumb_func_start sub_8103564
@@ -3917,7 +3916,7 @@ sub_8103564: @ 8103564
mov r7, r8
push {r7}
sub sp, 0x4
- ldr r4, _081035D0 @ =0x02000000
+ ldr r4, _081035D0 @ =gSharedMem
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -3965,7 +3964,7 @@ _081035AA:
strh r5, [r6, 0x30]
b _081035E0
.align 2, 0
-_081035D0: .4byte 0x02000000
+_081035D0: .4byte gSharedMem
_081035D4:
adds r0, r4, 0x1
lsls r0, 16
@@ -3986,7 +3985,7 @@ _081035E0:
j5_08111E84: @ 81035EC
push {r4-r7,lr}
sub sp, 0x4
- ldr r4, _08103650 @ =0x02000000
+ ldr r4, _08103650 @ =gSharedMem
ldrh r2, [r4, 0x34]
movs r1, 0x34
ldrsh r0, [r4, r1]
@@ -4032,7 +4031,7 @@ _0810362A:
strh r6, [r5, 0x30]
b _08103660
.align 2, 0
-_08103650: .4byte 0x02000000
+_08103650: .4byte gSharedMem
_08103654:
adds r0, r4, 0x1
lsls r0, 16
@@ -4051,7 +4050,7 @@ _08103660:
sub_8103668: @ 8103668
push {r4-r7,lr}
sub sp, 0x4
- ldr r4, _0810368C @ =0x02000000
+ ldr r4, _0810368C @ =gSharedMem
ldrh r3, [r4, 0x34]
movs r0, 0x34
ldrsh r2, [r4, r0]
@@ -4067,15 +4066,15 @@ sub_8103668: @ 8103668
bl j5_08111E84
b _0810375A
.align 2, 0
-_0810368C: .4byte 0x02000000
+_0810368C: .4byte gSharedMem
_08103690:
- ldr r0, _0810369C @ =0x02000000
+ ldr r0, _0810369C @ =gSharedMem
movs r1, 0
strh r6, [r0, 0x36]
strh r1, [r0, 0x30]
b _0810375A
.align 2, 0
-_0810369C: .4byte 0x02000000
+_0810369C: .4byte gSharedMem
_081036A0:
movs r0, 0x2
strh r0, [r5, 0x36]
@@ -4132,7 +4131,7 @@ _081036DC:
ble _081036DC
movs r6, 0x1
mov r7, sp
- ldr r5, _0810373C @ =0x02000000
+ ldr r5, _0810373C @ =gSharedMem
_0810370E:
ldrh r1, [r5, 0x34]
lsls r0, r6, 16
@@ -4158,7 +4157,7 @@ _08103736:
strh r6, [r5, 0x30]
b _0810375A
.align 2, 0
-_0810373C: .4byte 0x02000000
+_0810373C: .4byte gSharedMem
_08103740:
cmp r4, 0x2
ble _081036AA
@@ -4295,7 +4294,7 @@ _08103808:
sub_810380C: @ 810380C
push {lr}
ldr r1, _08103828 @ =gUnknown_083ECB94
- ldr r0, _0810382C @ =0x02000000
+ ldr r0, _0810382C @ =gSharedMem
movs r2, 0x12
ldrsh r0, [r0, r2]
subs r0, 0x1
@@ -4307,14 +4306,14 @@ sub_810380C: @ 810380C
bx r0
.align 2, 0
_08103828: .4byte gUnknown_083ECB94
-_0810382C: .4byte 0x02000000
+_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 @ =0x02000000
+ ldr r7, _08103868 @ =gSharedMem
ldrh r1, [r7, 0x2E]
movs r4, 0x2
subs r1, r4, r1
@@ -4338,7 +4337,7 @@ sub_8103830: @ 8103830
movs r4, 0x2
b _08103876
.align 2, 0
-_08103868: .4byte 0x02000000
+_08103868: .4byte gSharedMem
_0810386C:
lsls r0, r6, 16
movs r1, 0x80
@@ -4418,13 +4417,13 @@ _081038E8:
cmp r5, r0
beq _081038E2
_08103900:
- ldr r0, _0810390C @ =0x02000000
+ ldr r0, _0810390C @ =gSharedMem
strh r6, [r0, 0x32]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_0810390C: .4byte 0x02000000
+_0810390C: .4byte gSharedMem
thumb_func_end sub_8103830
thumb_func_start sub_8103910
@@ -4437,7 +4436,7 @@ sub_8103910: @ 8103910
sub sp, 0x4
movs r0, 0
str r0, [sp]
- ldr r4, _08103978 @ =0x02000000
+ ldr r4, _08103978 @ =gSharedMem
movs r2, 0x36
ldrsh r1, [r4, r2]
cmp r1, 0
@@ -4478,7 +4477,7 @@ sub_8103910: @ 8103910
movs r5, 0
b _08103982
.align 2, 0
-_08103978: .4byte 0x02000000
+_08103978: .4byte gSharedMem
_0810397C:
adds r0, r5, 0x1
lsls r0, 16
@@ -4488,7 +4487,7 @@ _08103982:
asrs r5, r6, 16
cmp r5, 0x4
bgt _081039A6
- ldr r0, _08103A34 @ =0x02000000
+ ldr r0, _08103A34 @ =gSharedMem
ldrh r1, [r0, 0x36]
subs r1, r5
lsls r1, 16
@@ -4502,7 +4501,7 @@ _08103982:
lsrs r6, 16
str r6, [sp]
_081039A6:
- ldr r0, _08103A34 @ =0x02000000
+ ldr r0, _08103A34 @ =gSharedMem
mov r9, r0
_081039AA:
movs r5, 0x1
@@ -4572,7 +4571,7 @@ _08103A24:
mov r8, r0
b _08103A46
.align 2, 0
-_08103A34: .4byte 0x02000000
+_08103A34: .4byte gSharedMem
_08103A38:
movs r2, 0x80
lsls r2, 9
@@ -4594,7 +4593,7 @@ _08103A46:
str r0, [sp]
b _081039AA
_08103A5C:
- ldr r0, _08103A74 @ =0x02000000
+ ldr r0, _08103A74 @ =gSharedMem
mov r3, sp
ldrh r3, [r3]
strh r3, [r0, 0x32]
@@ -4607,7 +4606,7 @@ _08103A5C:
pop {r0}
bx r0
.align 2, 0
-_08103A74: .4byte 0x02000000
+_08103A74: .4byte gSharedMem
thumb_func_end sub_8103910
thumb_func_start sub_8103A78
@@ -4616,7 +4615,7 @@ sub_8103A78: @ 8103A78
mov r7, r8
push {r7}
bl sub_8103910
- ldr r4, _08103B10 @ =0x02000000
+ ldr r4, _08103B10 @ =gSharedMem
movs r0, 0x36
ldrsh r1, [r4, r0]
cmp r1, 0
@@ -4686,7 +4685,7 @@ _08103AE8:
strh r0, [r7, 0x32]
b _08103B20
.align 2, 0
-_08103B10: .4byte 0x02000000
+_08103B10: .4byte gSharedMem
_08103B14:
adds r0, r5, 0x1
lsls r0, 16
@@ -4695,7 +4694,7 @@ _08103B14:
cmp r0, 0x4
ble _08103AE8
_08103B20:
- ldr r7, _08103B90 @ =0x02000000
+ ldr r7, _08103B90 @ =gSharedMem
_08103B22:
ldrh r0, [r7, 0x2E]
movs r1, 0x1
@@ -4749,9 +4748,9 @@ _08103B88:
strh r0, [r7, 0x32]
b _08103B22
.align 2, 0
-_08103B90: .4byte 0x02000000
+_08103B90: .4byte gSharedMem
_08103B94:
- ldr r7, _08103C04 @ =0x02000000
+ ldr r7, _08103C04 @ =gSharedMem
_08103B96:
ldrh r0, [r7, 0x2E]
movs r1, 0x3
@@ -4805,7 +4804,7 @@ _08103BFC:
strh r0, [r7, 0x32]
b _08103B96
.align 2, 0
-_08103C04: .4byte 0x02000000
+_08103C04: .4byte gSharedMem
_08103C08:
pop {r3}
mov r8, r3
@@ -5059,7 +5058,7 @@ sub_8103DC8: @ 8103DC8
push {r4-r6,lr}
movs r4, 0
ldr r6, _08103DF8 @ =gSprites
- ldr r5, _08103DFC @ =0x02000044
+ ldr r5, _08103DFC @ =gSharedMem + 0x44
_08103DD0:
ldr r0, _08103E00 @ =sub_8103EE4
bl CreateInvisibleSprite
@@ -5082,7 +5081,7 @@ _08103DD0:
bx r0
.align 2, 0
_08103DF8: .4byte gSprites
-_08103DFC: .4byte 0x02000044
+_08103DFC: .4byte gSharedMem + 0x44
_08103E00: .4byte sub_8103EE4
thumb_func_end sub_8103DC8
@@ -5090,7 +5089,7 @@ _08103E00: .4byte sub_8103EE4
sub_8103E04: @ 8103E04
lsls r0, 24
lsrs r0, 24
- ldr r1, _08103E30 @ =0x02000000
+ ldr r1, _08103E30 @ =gSharedMem
adds r1, 0x44
adds r0, r1
ldrb r1, [r0]
@@ -5111,7 +5110,7 @@ sub_8103E04: @ 8103E04
strh r2, [r0, 0x3C]
bx lr
.align 2, 0
-_08103E30: .4byte 0x02000000
+_08103E30: .4byte gSharedMem
_08103E34: .4byte gSprites
thumb_func_end sub_8103E04
@@ -5119,7 +5118,7 @@ _08103E34: .4byte gSprites
sub_8103E38: @ 8103E38
push {r4,r5,lr}
movs r2, 0
- ldr r4, _08103E60 @ =0x02000044
+ ldr r4, _08103E60 @ =gSharedMem + 0x44
ldr r3, _08103E64 @ =gSprites
_08103E40:
adds r0, r2, r4
@@ -5139,7 +5138,7 @@ _08103E40:
movs r0, 0
b _08103E74
.align 2, 0
-_08103E60: .4byte 0x02000044
+_08103E60: .4byte gSharedMem + 0x44
_08103E64: .4byte gSprites
_08103E68:
adds r0, r2, 0x1
@@ -5158,7 +5157,7 @@ _08103E74:
sub_8103E7C: @ 8103E7C
push {r4,r5,lr}
movs r4, 0
- ldr r5, _08103E94 @ =0x02000044
+ ldr r5, _08103E94 @ =gSharedMem + 0x44
_08103E82:
adds r0, r4, r5
ldrb r0, [r0]
@@ -5169,7 +5168,7 @@ _08103E82:
movs r0, 0
b _08103EA4
.align 2, 0
-_08103E94: .4byte 0x02000044
+_08103E94: .4byte gSharedMem + 0x44
_08103E98:
adds r0, r4, 0x1
lsls r0, 24
@@ -5414,20 +5413,20 @@ sub_8104048: @ 8104048
ldr r0, _0810405C @ =sub_81040E8
movs r1, 0x8
bl CreateTask
- ldr r1, _08104060 @ =0x02000000
+ ldr r1, _08104060 @ =gSharedMem
adds r1, 0x3E
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0810405C: .4byte sub_81040E8
-_08104060: .4byte 0x02000000
+_08104060: .4byte gSharedMem
thumb_func_end sub_8104048
thumb_func_start sub_8104064
sub_8104064: @ 8104064
push {r4,lr}
- ldr r0, _08104090 @ =0x02000000
+ ldr r0, _08104090 @ =gSharedMem
adds r0, 0x3E
ldrb r0, [r0]
lsls r4, r0, 2
@@ -5447,14 +5446,14 @@ sub_8104064: @ 8104064
pop {r0}
bx r0
.align 2, 0
-_08104090: .4byte 0x02000000
+_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 @ =0x02000000
+ ldr r0, _081040C0 @ =gSharedMem
adds r0, 0x3E
ldrb r0, [r0]
lsls r4, r0, 2
@@ -5472,14 +5471,14 @@ sub_8104098: @ 8104098
pop {r0}
bx r0
.align 2, 0
-_081040C0: .4byte 0x02000000
+_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 @ =0x02000000
+ ldr r0, _081040E4 @ =gSharedMem
adds r0, 0x3E
ldrb r1, [r0]
lsls r0, r1, 2
@@ -5492,7 +5491,7 @@ sub_81040C8: @ 81040C8
bx lr
.align 2, 0
_081040E0: .4byte gTasks
-_081040E4: .4byte 0x02000000
+_081040E4: .4byte gSharedMem
thumb_func_end sub_81040C8
thumb_func_start sub_81040E8
@@ -5701,7 +5700,7 @@ sub_810423C: @ 810423C
movs r4, 0
ldr r0, _0810426C @ =gTasks
mov r8, r0
- ldr r1, _08104270 @ =0x02000000
+ ldr r1, _08104270 @ =gSharedMem
mov r12, r1
cmp r4, r5
bge _081042A6
@@ -5717,7 +5716,7 @@ _0810425A:
.align 2, 0
_08104268: .4byte 0x0600e800
_0810426C: .4byte gTasks
-_08104270: .4byte 0x02000000
+_08104270: .4byte gSharedMem
_08104274: .4byte gUnknown_083ECBC4
_08104278:
cmp r0, 0xF
@@ -5866,7 +5865,7 @@ _08104378: .4byte gTasks
thumb_func_start sub_810437C
sub_810437C: @ 810437C
push {lr}
- ldr r1, _081043DC @ =0x02000000
+ ldr r1, _081043DC @ =gSharedMem
movs r2, 0
strb r2, [r1, 0xA]
strh r2, [r1, 0x14]
@@ -5904,7 +5903,7 @@ sub_810437C: @ 810437C
pop {r0}
bx r0
.align 2, 0
-_081043DC: .4byte 0x02000000
+_081043DC: .4byte gSharedMem
_081043E0: .4byte gSpriteCoordOffsetX
_081043E4: .4byte gSpriteCoordOffsetY
_081043E8: .4byte REG_BG1HOFS
@@ -6041,7 +6040,7 @@ sub_8104498: @ 8104498
movs r1, 0
ldrsh r0, [r6, r1]
bl sub_81057E8
- ldr r0, _08104540 @ =0x02000000
+ ldr r0, _08104540 @ =gSharedMem
adds r0, 0x3F
ldrb r1, [r0]
lsls r0, r1, 4
@@ -6076,7 +6075,7 @@ _08104526:
_08104534: .4byte gUnknown_083ECC1C
_08104538: .4byte gUnknown_083ECC20
_0810453C: .4byte gUnknown_083ECC28
-_08104540: .4byte 0x02000000
+_08104540: .4byte gSharedMem
_08104544: .4byte gSprites
thumb_func_end sub_8104498
@@ -6102,7 +6101,7 @@ sub_8104548: @ 8104548
strh r0, [r4, 0x12]
movs r0, 0x2
bl sub_81057E8
- ldr r0, _08104590 @ =0x02000000
+ ldr r0, _08104590 @ =gSharedMem
adds r0, 0x3F
ldrb r1, [r0]
lsls r0, r1, 4
@@ -6117,7 +6116,7 @@ _0810458A:
pop {r0}
bx r0
.align 2, 0
-_08104590: .4byte 0x02000000
+_08104590: .4byte gSharedMem
_08104594: .4byte gSprites
thumb_func_end sub_8104548
@@ -6170,7 +6169,7 @@ sub_81045CC: @ 81045CC
ble _08104634
movs r0, 0
strh r0, [r4, 0x12]
- ldr r1, _0810460C @ =0x02000000
+ ldr r1, _0810460C @ =gSharedMem
ldrb r0, [r1, 0x5]
cmp r0, 0
beq _08104610
@@ -6183,7 +6182,7 @@ sub_81045CC: @ 81045CC
adds r0, 0x1
b _0810462C
.align 2, 0
-_0810460C: .4byte 0x02000000
+_0810460C: .4byte gSharedMem
_08104610:
movs r1, 0x14
ldrsh r0, [r4, r1]
@@ -6215,7 +6214,7 @@ _08104634:
sub_810463C: @ 810463C
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, _08104660 @ =0x02000000
+ ldr r6, _08104660 @ =gSharedMem
movs r1, 0x14
ldrsh r0, [r6, r1]
movs r1, 0x14
@@ -6230,7 +6229,7 @@ sub_810463C: @ 810463C
bl sub_8102D5C
b _08104688
.align 2, 0
-_08104660: .4byte 0x02000000
+_08104660: .4byte gSharedMem
_08104664:
movs r0, 0x1
bl sub_8102C48
@@ -6260,7 +6259,7 @@ _08104692:
bne _081046B4
movs r0, 0x1
bl sub_8102C48
- ldr r1, _081046BC @ =0x02000000
+ ldr r1, _081046BC @ =gSharedMem
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1, 0x5]
@@ -6275,7 +6274,7 @@ _081046B4:
pop {r0}
bx r0
.align 2, 0
-_081046BC: .4byte 0x02000000
+_081046BC: .4byte gSharedMem
thumb_func_end sub_810463C
thumb_func_start sub_81046C0
@@ -6296,7 +6295,7 @@ sub_81046C0: @ 81046C0
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
- ldr r5, _08104710 @ =0x02000000
+ ldr r5, _08104710 @ =gSharedMem
ldrb r0, [r5, 0x5]
cmp r0, 0
bne _0810471C
@@ -6316,7 +6315,7 @@ sub_81046C0: @ 81046C0
bl PlayFanfare
b _08104758
.align 2, 0
-_08104710: .4byte 0x02000000
+_08104710: .4byte gSharedMem
_08104714: .4byte gSprites
_08104718: .4byte 0x00000187
_0810471C:
@@ -6434,7 +6433,7 @@ _081047E6:
sub_81047EC: @ 81047EC
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, _08104834 @ =0x02000000
+ ldr r4, _08104834 @ =gSharedMem
movs r6, 0
strb r6, [r4, 0xB]
ldrb r0, [r4, 0x5]
@@ -6462,7 +6461,7 @@ sub_81047EC: @ 81047EC
bl DestroyTask
b _0810485A
.align 2, 0
-_08104834: .4byte 0x02000000
+_08104834: .4byte gSharedMem
_08104838: .4byte gSpriteCoordOffsetX
_0810483C: .4byte REG_BG1HOFS
_08104840: .4byte sub_810434C
@@ -6486,7 +6485,7 @@ _0810485A:
sub_8104860: @ 8104860
push {r4-r6,lr}
adds r4, r0, 0
- ldr r5, _0810487C @ =0x02000000
+ ldr r5, _0810487C @ =gSharedMem
ldrh r0, [r5, 0x1A]
lsls r6, r0, 16
asrs r1, r6, 16
@@ -6499,7 +6498,7 @@ sub_8104860: @ 8104860
strh r0, [r4, 0x8]
b _081048A2
.align 2, 0
-_0810487C: .4byte 0x02000000
+_0810487C: .4byte gSharedMem
_08104880:
movs r1, 0x1C
ldrsh r0, [r5, r1]
@@ -6551,7 +6550,7 @@ sub_81048CC: @ 81048CC
bl sub_8105804
bl sub_8105854
ldr r5, _08104934 @ =gSprites
- ldr r3, _08104938 @ =0x02000000
+ ldr r3, _08104938 @ =gSharedMem
adds r0, r3, 0
adds r0, 0x4E
ldrb r1, [r0]
@@ -6589,7 +6588,7 @@ sub_81048CC: @ 81048CC
bx r0
.align 2, 0
_08104934: .4byte gSprites
-_08104938: .4byte 0x02000000
+_08104938: .4byte gSharedMem
_0810493C: .4byte 0x00000187
thumb_func_end sub_81048CC
@@ -6632,7 +6631,7 @@ _08104974:
bl sub_8105284
bl sub_81059E8
ldr r2, _081049C0 @ =gSprites
- ldr r0, _081049C4 @ =0x02000000
+ ldr r0, _081049C4 @ =gSharedMem
adds r0, 0x4E
ldrb r1, [r0]
lsls r0, r1, 4
@@ -6657,7 +6656,7 @@ _081049B0:
_081049B8: .4byte gSpriteCoordOffsetY
_081049BC: .4byte REG_BG1VOFS
_081049C0: .4byte gSprites
-_081049C4: .4byte 0x02000000
+_081049C4: .4byte gSharedMem
thumb_func_end sub_8104940
thumb_func_start sub_81049C8
@@ -6694,7 +6693,7 @@ sub_81049F8: @ 81049F8
strh r1, [r0]
ldr r0, _08104A34 @ =REG_BG1HOFS
strh r1, [r0]
- ldr r0, _08104A38 @ =0x02000000
+ ldr r0, _08104A38 @ =gSharedMem
adds r0, 0x60
ldrh r0, [r0]
bl PlayNewMapMusic
@@ -6712,7 +6711,7 @@ sub_81049F8: @ 81049F8
.align 2, 0
_08104A30: .4byte gSpriteCoordOffsetX
_08104A34: .4byte REG_BG1HOFS
-_08104A38: .4byte 0x02000000
+_08104A38: .4byte gSharedMem
_08104A3C: .4byte sub_810434C
thumb_func_end sub_81049F8
@@ -6972,7 +6971,7 @@ sub_8104BFC: @ 8104BFC
bl sub_81064B8
ldrb r0, [r4, 0xA]
bl sub_8104CAC
- ldr r0, _08104C40 @ =0x02000000
+ ldr r0, _08104C40 @ =gSharedMem
ldrb r0, [r0, 0x2]
bl sub_810423C
movs r0, 0x1
@@ -6991,7 +6990,7 @@ sub_8104BFC: @ 8104BFC
bx r0
.align 2, 0
_08104C3C: .4byte gWindowConfig_81E7128
-_08104C40: .4byte 0x02000000
+_08104C40: .4byte gSharedMem
thumb_func_end sub_8104BFC
thumb_func_start sub_8104C44
@@ -7016,7 +7015,7 @@ sub_8104C5C: @ 8104C5C
bl CreateTask
lsls r0, 24
lsrs r1, r0, 24
- ldr r0, _08104CA0 @ =0x02000000
+ ldr r0, _08104CA0 @ =gSharedMem
adds r0, 0x3D
strb r1, [r0]
lsls r0, r1, 2
@@ -7043,7 +7042,7 @@ _08104C86:
bx r0
.align 2, 0
_08104C9C: .4byte sub_8104E74
-_08104CA0: .4byte 0x02000000
+_08104CA0: .4byte gSharedMem
_08104CA4: .4byte gTasks
_08104CA8: .4byte 0x0000ffff
thumb_func_end sub_8104C5C
@@ -7060,7 +7059,7 @@ sub_8104D30: @ 8104D30
ldr r4, [sp, 0x1C]
lsls r0, 24
lsrs r7, r0, 24
- ldr r0, _08104D84 @ =0x02000000
+ ldr r0, _08104D84 @ =gSharedMem
adds r0, 0x3D
ldrb r1, [r0]
lsls r0, r1, 2
@@ -7094,7 +7093,7 @@ _08104D5C:
strh r0, [r4]
b _08104D96
.align 2, 0
-_08104D84: .4byte 0x02000000
+_08104D84: .4byte gSharedMem
_08104D88: .4byte gTasks
_08104D8C:
adds r0, r5, 0x1
@@ -7114,7 +7113,7 @@ _08104D96:
thumb_func_start sub_8104DA4
sub_8104DA4: @ 8104DA4
push {r4-r6,lr}
- ldr r0, _08104E04 @ =0x02000000
+ ldr r0, _08104E04 @ =gSharedMem
adds r0, 0x3D
ldrb r1, [r0]
lsls r0, r1, 2
@@ -7163,7 +7162,7 @@ _08104DF4:
pop {r0}
bx r0
.align 2, 0
-_08104E04: .4byte 0x02000000
+_08104E04: .4byte gSharedMem
_08104E08: .4byte gTasks
_08104E0C: .4byte 0x0000ffff
_08104E10: .4byte gUnknown_083ED064
@@ -7173,7 +7172,7 @@ _08104E14: .4byte gSprites
thumb_func_start sub_8104E18
sub_8104E18: @ 8104E18
push {r4,r5,lr}
- ldr r0, _08104E54 @ =0x02000000
+ ldr r0, _08104E54 @ =gSharedMem
adds r0, 0x3D
ldrb r1, [r0]
lsls r0, r1, 2
@@ -7203,7 +7202,7 @@ _08104E32:
movs r0, 0
b _08104E6C
.align 2, 0
-_08104E54: .4byte 0x02000000
+_08104E54: .4byte gSharedMem
_08104E58: .4byte gTasks
_08104E5C: .4byte gSprites
_08104E60:
@@ -7311,7 +7310,7 @@ _08104F14: .4byte 0x0000ffff
sub_8104F18: @ 8104F18
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _08104F88 @ =0x02000000
+ ldr r4, _08104F88 @ =gSharedMem
movs r0, 0x2E
ldrsh r1, [r5, r0]
lsls r1, 1
@@ -7360,7 +7359,7 @@ sub_8104F18: @ 8104F18
pop {r0}
bx r0
.align 2, 0
-_08104F88: .4byte 0x02000000
+_08104F88: .4byte gSharedMem
thumb_func_end sub_8104F18
thumb_func_start sub_8104F8C
@@ -7483,7 +7482,7 @@ _08105068: .4byte 0x0000ffff
sub_810506C: @ 810506C
push {r4,lr}
adds r4, r0, 0
- ldr r1, _081050C0 @ =0x02000000
+ ldr r1, _081050C0 @ =gSharedMem
ldrh r2, [r1, 0xC]
movs r3, 0x2E
ldrsh r0, [r4, r3]
@@ -7521,7 +7520,7 @@ _081050B8:
pop {r0}
bx r0
.align 2, 0
-_081050C0: .4byte 0x02000000
+_081050C0: .4byte gSharedMem
thumb_func_end sub_810506C
thumb_func_start sub_81050C4
@@ -7582,7 +7581,7 @@ sub_8105100: @ 8105100
movs r3, 0x2
orrs r1, r3
strb r1, [r2]
- ldr r1, _08105148 @ =0x02000000
+ ldr r1, _08105148 @ =gSharedMem
adds r1, 0x3F
strb r0, [r1]
pop {r0}
@@ -7590,13 +7589,13 @@ sub_8105100: @ 8105100
.align 2, 0
_08105140: .4byte gSpriteTemplate_83ED45C
_08105144: .4byte gSprites
-_08105148: .4byte 0x02000000
+_08105148: .4byte gSharedMem
thumb_func_end sub_8105100
thumb_func_start sub_810514C
sub_810514C: @ 810514C
push {lr}
- ldr r0, _08105168 @ =0x02000000
+ ldr r0, _08105168 @ =gSharedMem
adds r0, 0x3F
ldrb r1, [r0]
lsls r0, r1, 4
@@ -7608,7 +7607,7 @@ sub_810514C: @ 810514C
pop {r0}
bx r0
.align 2, 0
-_08105168: .4byte 0x02000000
+_08105168: .4byte gSharedMem
_0810516C: .4byte gSprites
thumb_func_end sub_810514C
@@ -7702,7 +7701,7 @@ sub_81051C0: @ 81051C0
ldr r1, _08105274 @ =gSubspriteTables_83ED73C
adds r0, r2, 0
bl SetSubspriteTables
- ldr r6, _08105278 @ =0x02000000
+ ldr r6, _08105278 @ =gSharedMem
adds r0, r6, 0
adds r0, 0x49
strb r4, [r0]
@@ -7746,7 +7745,7 @@ sub_81051C0: @ 81051C0
_0810526C: .4byte gSpriteTemplate_83ED474
_08105270: .4byte gSprites
_08105274: .4byte gSubspriteTables_83ED73C
-_08105278: .4byte 0x02000000
+_08105278: .4byte gSharedMem
_0810527C: .4byte gSpriteTemplate_83ED48C
_08105280: .4byte gSubspriteTables_83ED75C
thumb_func_end sub_81051C0
@@ -7787,7 +7786,7 @@ sub_8105284: @ 8105284
strb r1, [r3]
ldr r1, _081052E4 @ =gSubspriteTables_83ED78C
bl SetSubspriteTables
- ldr r0, _081052E8 @ =0x02000000
+ ldr r0, _081052E8 @ =gSharedMem
adds r0, 0x42
strb r4, [r0]
pop {r4}
@@ -7798,7 +7797,7 @@ _081052D8: .4byte gSpriteTemplate_83ED4A4
_081052DC: .4byte gSpriteCoordOffsetX
_081052E0: .4byte gSprites
_081052E4: .4byte gSubspriteTables_83ED78C
-_081052E8: .4byte 0x02000000
+_081052E8: .4byte gSharedMem
thumb_func_end sub_8105284
thumb_func_start sub_81052EC
@@ -7806,7 +7805,7 @@ sub_81052EC: @ 81052EC
push {r4-r7,lr}
movs r4, 0
movs r5, 0
- ldr r6, _08105350 @ =0x0200004b
+ ldr r6, _08105350 @ =gSharedMem + 0x4B
_081052F4:
ldr r0, _08105354 @ =gSpriteTemplate_83ED4BC
movs r1, 0xB8
@@ -7854,7 +7853,7 @@ _081052F4:
pop {r0}
bx r0
.align 2, 0
-_08105350: .4byte 0x0200004b
+_08105350: .4byte gSharedMem + 0x4B
_08105354: .4byte gSpriteTemplate_83ED4BC
_08105358: .4byte gSprites
thumb_func_end sub_81052EC
@@ -7863,7 +7862,7 @@ _08105358: .4byte gSprites
sub_810535C: @ 810535C
push {r4,lr}
adds r4, r0, 0
- ldr r1, _0810539C @ =0x02000000
+ ldr r1, _0810539C @ =gSharedMem
ldrh r0, [r4, 0x3C]
ldrh r1, [r1, 0x14]
adds r0, r1
@@ -7890,7 +7889,7 @@ sub_810535C: @ 810535C
pop {r0}
bx r0
.align 2, 0
-_0810539C: .4byte 0x02000000
+_0810539C: .4byte gSharedMem
thumb_func_end sub_810535C
thumb_func_start sub_81053A0
@@ -7937,7 +7936,7 @@ sub_81053A0: @ 81053A0
adds r0, r2, 0
mov r1, r9
bl SetSubspriteTables
- ldr r6, _08105458 @ =0x02000000
+ ldr r6, _08105458 @ =gSharedMem
adds r0, r6, 0
adds r0, 0x4E
strb r4, [r0]
@@ -7981,7 +7980,7 @@ sub_81053A0: @ 81053A0
_0810544C: .4byte gSpriteTemplate_83ED4D4
_08105450: .4byte gSprites
_08105454: .4byte gSubspriteTables_83ED7B4
-_08105458: .4byte 0x02000000
+_08105458: .4byte gSharedMem
thumb_func_end sub_81053A0
thumb_func_start sub_810545C
@@ -8016,7 +8015,7 @@ sub_810545C: @ 810545C
strb r1, [r0, 0x5]
ldr r1, _081054B0 @ =gSubspriteTables_83ED7D4
bl SetSubspriteTables
- ldr r0, _081054B4 @ =0x02000000
+ ldr r0, _081054B4 @ =gSharedMem
adds r0, 0x40
strb r4, [r0]
pop {r4}
@@ -8026,13 +8025,13 @@ sub_810545C: @ 810545C
_081054A8: .4byte gSpriteTemplate_83ED4EC
_081054AC: .4byte gSprites
_081054B0: .4byte gSubspriteTables_83ED7D4
-_081054B4: .4byte 0x02000000
+_081054B4: .4byte gSharedMem
thumb_func_end sub_810545C
thumb_func_start sub_81054B8
sub_81054B8: @ 81054B8
push {r4,r5,lr}
- ldr r4, _08105518 @ =0x02000000
+ ldr r4, _08105518 @ =gSharedMem
adds r0, r4, 0
adds r0, 0x40
ldrb r1, [r0]
@@ -8059,7 +8058,7 @@ _081054D4:
cmp r5, 0x1
bls _081054D4
movs r5, 0
- ldr r4, _08105520 @ =0x0200004b
+ ldr r4, _08105520 @ =gSharedMem + 0x4B
_081054F4:
adds r0, r5, r4
ldrb r1, [r0]
@@ -8078,16 +8077,16 @@ _081054F4:
pop {r0}
bx r0
.align 2, 0
-_08105518: .4byte 0x02000000
+_08105518: .4byte gSharedMem
_0810551C: .4byte gSprites
-_08105520: .4byte 0x0200004b
+_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 @ =0x0200004e
+ ldr r5, _0810554C @ =gSharedMem + 0x4E
_0810552A:
adds r0, r4, r5
ldrb r1, [r0]
@@ -8106,14 +8105,14 @@ _0810552A:
pop {r0}
bx r0
.align 2, 0
-_0810554C: .4byte 0x0200004e
+_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 @ =0x02000000
+ ldr r0, _08105570 @ =gSharedMem
adds r0, 0x42
ldrb r1, [r0]
lsls r0, r1, 4
@@ -8125,7 +8124,7 @@ sub_8105554: @ 8105554
pop {r0}
bx r0
.align 2, 0
-_08105570: .4byte 0x02000000
+_08105570: .4byte gSharedMem
_08105574: .4byte gSprites
thumb_func_end sub_8105554
@@ -8166,7 +8165,7 @@ sub_8105578: @ 8105578
movs r2, 0x1
orrs r1, r2
strb r1, [r5]
- ldr r5, _08105624 @ =0x02000000
+ ldr r5, _08105624 @ =gSharedMem
adds r1, r5, 0
adds r1, 0x50
strb r0, [r1]
@@ -8213,7 +8212,7 @@ sub_8105578: @ 8105578
.align 2, 0
_0810561C: .4byte gSpriteTemplate_83ED504
_08105620: .4byte gSprites
-_08105624: .4byte 0x02000000
+_08105624: .4byte gSharedMem
_08105628: .4byte 0x0000ffff
thumb_func_end sub_8105578
@@ -8275,7 +8274,7 @@ sub_8105688: @ 8105688
lsls r0, 16
lsrs r0, 16
ldr r4, _081056B8 @ =gSprites
- ldr r3, _081056BC @ =0x02000000
+ ldr r3, _081056BC @ =gSharedMem
adds r1, r3, 0
adds r1, 0x50
ldrb r2, [r1]
@@ -8296,14 +8295,14 @@ sub_8105688: @ 8105688
bx r0
.align 2, 0
_081056B8: .4byte gSprites
-_081056BC: .4byte 0x02000000
+_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 @ =0x02000050
+ ldr r5, _081056E8 @ =gSharedMem + 0x50
_081056C6:
adds r0, r4, r5
ldrb r1, [r0]
@@ -8322,7 +8321,7 @@ _081056C6:
pop {r0}
bx r0
.align 2, 0
-_081056E8: .4byte 0x02000050
+_081056E8: .4byte gSharedMem + 0x50
_081056EC: .4byte gSprites
thumb_func_end sub_81056C0
@@ -8362,7 +8361,7 @@ sub_81056F0: @ 81056F0
strh r1, [r2, 0x3A]
movs r1, 0x8
strh r1, [r2, 0x3C]
- ldr r5, _08105780 @ =0x02000000
+ ldr r5, _08105780 @ =gSharedMem
adds r1, r5, 0
adds r1, 0x52
strb r0, [r1]
@@ -8397,7 +8396,7 @@ sub_81056F0: @ 81056F0
.align 2, 0
_08105778: .4byte gSpriteTemplate_83ED51C
_0810577C: .4byte gSprites
-_08105780: .4byte 0x02000000
+_08105780: .4byte gSharedMem
thumb_func_end sub_81056F0
thumb_func_start sub_8105784
@@ -8453,7 +8452,7 @@ _081057E4: .4byte 0x01030000
thumb_func_start sub_81057E8
sub_81057E8: @ 81057E8
ldr r3, _081057FC @ =gSprites
- ldr r1, _08105800 @ =0x02000000
+ ldr r1, _08105800 @ =gSharedMem
adds r1, 0x52
ldrb r2, [r1]
lsls r1, r2, 4
@@ -8464,7 +8463,7 @@ sub_81057E8: @ 81057E8
bx lr
.align 2, 0
_081057FC: .4byte gSprites
-_08105800: .4byte 0x02000000
+_08105800: .4byte gSharedMem
thumb_func_end sub_81057E8
thumb_func_start sub_8105804
@@ -8482,7 +8481,7 @@ sub_8105804: @ 8105804
movs r3, 0
bl MultiplyInvertedPaletteRGBComponents
movs r4, 0
- ldr r5, _0810584C @ =0x02000052
+ ldr r5, _0810584C @ =gSharedMem + 0x52
_08105824:
adds r0, r4, r5
ldrb r1, [r0]
@@ -8502,7 +8501,7 @@ _08105824:
bx r0
.align 2, 0
_08105848: .4byte 0x01030000
-_0810584C: .4byte 0x02000052
+_0810584C: .4byte gSharedMem + 0x52
_08105850: .4byte gSprites
thumb_func_end sub_8105804
@@ -8528,7 +8527,7 @@ sub_8105854: @ 8105854
movs r3, 0x4
orrs r2, r3
strb r2, [r1, 0x5]
- ldr r1, _08105890 @ =0x02000000
+ ldr r1, _08105890 @ =gSharedMem
adds r1, 0x41
strb r0, [r1]
pop {r0}
@@ -8536,7 +8535,7 @@ sub_8105854: @ 8105854
.align 2, 0
_08105888: .4byte gSpriteTemplate_83ED534
_0810588C: .4byte gSprites
-_08105890: .4byte 0x02000000
+_08105890: .4byte gSharedMem
thumb_func_end sub_8105854
thumb_func_start sub_8105894
@@ -8552,7 +8551,7 @@ _0810589C: .4byte gSpriteCoordOffsetY
thumb_func_start sub_81058A0
sub_81058A0: @ 81058A0
push {lr}
- ldr r0, _081058BC @ =0x02000000
+ ldr r0, _081058BC @ =gSharedMem
adds r0, 0x41
ldrb r1, [r0]
lsls r0, r1, 4
@@ -8564,7 +8563,7 @@ sub_81058A0: @ 81058A0
pop {r0}
bx r0
.align 2, 0
-_081058BC: .4byte 0x02000000
+_081058BC: .4byte gSharedMem
_081058C0: .4byte gSprites
thumb_func_end sub_81058A0
@@ -8577,7 +8576,7 @@ sub_81058C4: @ 81058C4
movs r2, 0x8
bl memcpy
movs r4, 0
- ldr r5, _0810593C @ =0x02000054
+ ldr r5, _0810593C @ =gSharedMem + 0x54
_081058D6:
ldr r0, _08105940 @ =gSpriteCoordOffsetX
ldrh r0, [r0]
@@ -8629,7 +8628,7 @@ _081058D6:
bx r0
.align 2, 0
_08105938: .4byte gUnknown_083ECC5A
-_0810593C: .4byte 0x02000054
+_0810593C: .4byte gSharedMem + 0x54
_08105940: .4byte gSpriteCoordOffsetX
_08105944: .4byte gSpriteTemplate_83ED54C
_08105948: .4byte gSprites
@@ -8696,7 +8695,7 @@ _081059B0:
sub_81059B8: @ 81059B8
push {r4,r5,lr}
movs r4, 0
- ldr r5, _081059E0 @ =0x02000054
+ ldr r5, _081059E0 @ =gSharedMem + 0x54
_081059BE:
adds r0, r4, r5
ldrb r1, [r0]
@@ -8715,7 +8714,7 @@ _081059BE:
pop {r0}
bx r0
.align 2, 0
-_081059E0: .4byte 0x02000054
+_081059E0: .4byte gSharedMem + 0x54
_081059E4: .4byte gSprites
thumb_func_end sub_81059B8
@@ -8747,7 +8746,7 @@ sub_81059E8: @ 81059E8
orrs r1, r2
strb r1, [r0, 0x1]
bl InitSpriteAffineAnim
- ldr r0, _08105A34 @ =0x02000000
+ ldr r0, _08105A34 @ =gSharedMem
adds r0, 0x43
strb r4, [r0]
pop {r4}
@@ -8756,7 +8755,7 @@ sub_81059E8: @ 81059E8
.align 2, 0
_08105A2C: .4byte gSpriteTemplate_83ED564
_08105A30: .4byte gSprites
-_08105A34: .4byte 0x02000000
+_08105A34: .4byte gSharedMem
thumb_func_end sub_81059E8
thumb_func_start sub_8105A38
@@ -8842,7 +8841,7 @@ _08105AB4:
thumb_func_start sub_8105ACC
sub_8105ACC: @ 8105ACC
ldr r2, _08105AE4 @ =gSprites
- ldr r0, _08105AE8 @ =0x02000000
+ ldr r0, _08105AE8 @ =gSharedMem
adds r0, 0x43
ldrb r1, [r0]
lsls r0, r1, 4
@@ -8855,13 +8854,13 @@ sub_8105ACC: @ 8105ACC
bx lr
.align 2, 0
_08105AE4: .4byte gSprites
-_08105AE8: .4byte 0x02000000
+_08105AE8: .4byte gSharedMem
thumb_func_end sub_8105ACC
thumb_func_start sub_8105AEC
sub_8105AEC: @ 8105AEC
push {r4,lr}
- ldr r0, _08105B14 @ =0x02000000
+ ldr r0, _08105B14 @ =gSharedMem
adds r0, 0x43
ldrb r0, [r0]
lsls r4, r0, 4
@@ -8879,7 +8878,7 @@ sub_8105AEC: @ 8105AEC
pop {r0}
bx r0
.align 2, 0
-_08105B14: .4byte 0x02000000
+_08105B14: .4byte gSharedMem
_08105B18: .4byte gSprites
thumb_func_end sub_8105AEC
@@ -9321,7 +9320,7 @@ _08105E24:
.4byte _08105E94
.4byte _08105EAA
_08105E3C:
- ldr r0, _08105E6C @ =0x02000000
+ ldr r0, _08105E6C @ =gSharedMem
ldrb r1, [r0, 0xA]
subs r1, 0x1
lsls r1, 24
@@ -9346,7 +9345,7 @@ _08105E52:
strh r0, [r4, 0x30]
b _08105EAE
.align 2, 0
-_08105E6C: .4byte 0x02000000
+_08105E6C: .4byte gSharedMem
_08105E70:
ldrh r0, [r4, 0x20]
adds r0, 0x4
@@ -9890,7 +9889,7 @@ _08106248:
beq _081062FC
b _0810634A
_08106252:
- ldr r2, _081062BC @ =0x02000000
+ ldr r2, _081062BC @ =gSharedMem
adds r1, r2, 0
adds r1, 0x5C
movs r0, 0x2F
@@ -9933,7 +9932,7 @@ _08106296:
movs r0, 0xD0
strh r0, [r5, 0x34]
_081062A2:
- ldr r2, _081062BC @ =0x02000000
+ ldr r2, _081062BC @ =gSharedMem
ldrh r0, [r5, 0x32]
lsls r0, 8
ldrh r1, [r5, 0x34]
@@ -9947,10 +9946,10 @@ _081062A2:
ble _0810634A
b _0810633C
.align 2, 0
-_081062BC: .4byte 0x02000000
+_081062BC: .4byte gSharedMem
_081062C0: .4byte 0x00002088
_081062C4:
- ldr r6, _08106354 @ =0x02000000
+ ldr r6, _08106354 @ =gSharedMem
movs r1, 0x12
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -10000,7 +9999,7 @@ _08106318:
movs r0, 0xD0
strh r0, [r5, 0x34]
_08106324:
- ldr r2, _08106354 @ =0x02000000
+ ldr r2, _08106354 @ =gSharedMem
ldrh r0, [r5, 0x32]
lsls r0, 8
ldrh r1, [r5, 0x34]
@@ -10026,7 +10025,7 @@ _0810634A:
pop {r0}
bx r0
.align 2, 0
-_08106354: .4byte 0x02000000
+_08106354: .4byte gSharedMem
_08106358: .4byte SpriteCallbackDummy
_0810635C: .4byte 0x0000c0e0
thumb_func_end sub_8106230
@@ -10072,7 +10071,7 @@ _08106398: .4byte gUnknown_083EDE20
thumb_func_start sub_810639C
sub_810639C: @ 810639C
- ldr r2, _081063BC @ =0x02000000
+ ldr r2, _081063BC @ =gSharedMem
adds r1, r2, 0
adds r1, 0x58
movs r0, 0xF0
@@ -10088,7 +10087,7 @@ sub_810639C: @ 810639C
strh r1, [r0]
bx lr
.align 2, 0
-_081063BC: .4byte 0x02000000
+_081063BC: .4byte gSharedMem
thumb_func_end sub_810639C
thumb_func_start sub_81063C0
@@ -10096,7 +10095,7 @@ sub_81063C0: @ 81063C0
push {r4,lr}
bl sub_8106404
ldr r0, _081063F0 @ =gSlotMachineReelTimeLights_Gfx
- ldr r4, _081063F4 @ =0x02010000
+ ldr r4, _081063F4 @ =gSharedMem + 0x10000
adds r1, r4, 0
bl LZDecompressWram
ldr r0, _081063F8 @ =gUnknown_083EDE8C
@@ -10114,7 +10113,7 @@ sub_81063C0: @ 81063C0
bx r0
.align 2, 0
_081063F0: .4byte gSlotMachineReelTimeLights_Gfx
-_081063F4: .4byte 0x02010000
+_081063F4: .4byte gSharedMem + 0x10000
_081063F8: .4byte gUnknown_083EDE8C
_081063FC: .4byte gUnknown_083EDC2C
_08106400: .4byte gSlotMachineSpritePalettes
@@ -10123,7 +10122,7 @@ _08106400: .4byte gSlotMachineSpritePalettes
thumb_func_start sub_8106404
sub_8106404: @ 8106404
push {r4,r5,lr}
- ldr r3, _0810643C @ =0x02010000
+ ldr r3, _0810643C @ =gSharedMem + 0x10000
movs r2, 0
ldr r5, _08106440 @ =gUnknown_083EDCDC
ldr r0, _08106444 @ =gUnknown_083EDCE4
@@ -10151,7 +10150,7 @@ _08106414:
pop {r0}
bx r0
.align 2, 0
-_0810643C: .4byte 0x02010000
+_0810643C: .4byte gSharedMem + 0x10000
_08106440: .4byte gUnknown_083EDCDC
_08106444: .4byte gUnknown_083EDCE4
thumb_func_end sub_8106404
diff --git a/asm/unk_text_8095904.s b/asm/unk_text_8095904.s
new file mode 100755
index 000000000..f144eab26
--- /dev/null
+++ b/asm/unk_text_8095904.s
@@ -0,0 +1,256 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8095904
+sub_8095904: @ 8095904
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ str r0, [sp]
+ adds r7, r1, 0
+ adds r4, r2, 0
+ ldr r0, [sp, 0x3C]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x4]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ ldr r0, [sp]
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r4, 0
+ bne _08095988
+ movs r5, 0
+ cmp r5, r8
+ bcs _08095A2E
+_0809593E:
+ ldr r1, [sp]
+ adds r0, r1, r5
+ ldrb r2, [r0]
+ ldr r0, _08095980 @ =0x0000fff0
+ ands r0, r2
+ lsls r0, 6
+ movs r1, 0xF
+ ands r2, r1
+ lsls r2, 5
+ adds r0, r2
+ ldr r1, _08095984 @ =gFont3LatinGlyphs
+ adds r4, r0, r1
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x10
+ bl CpuSet
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r4, r2
+ ldr r3, [sp, 0x4]
+ adds r1, r7, r3
+ movs r2, 0x10
+ bl CpuSet
+ adds r7, 0x20
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _0809593E
+ b _08095A2E
+ .align 2, 0
+_08095980: .4byte 0x0000fff0
+_08095984: .4byte gFont3LatinGlyphs
+_08095988:
+ movs r0, 0
+ mov r9, r0
+ ldr r1, [sp, 0x8]
+ lsls r0, r1, 28
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+ mov r2, r8
+ lsls r0, r2, 21
+ movs r1, 0
+ lsrs r0, 1
+ str r0, [sp, 0x10]
+_0809599E:
+ movs r5, 0
+ ldr r3, [sp, 0x4]
+ adds r3, r7, r3
+ str r3, [sp, 0x14]
+ adds r0, r1, 0x1
+ str r0, [sp, 0x18]
+ cmp r5, r8
+ bcs _08095A12
+ movs r2, 0xF
+ mov r12, r2
+ lsls r1, 9
+ ldr r0, _08095A40 @ =gFont3LatinGlyphs
+ adds r1, r0
+ mov r10, r1
+_080959BA:
+ ldr r3, [sp]
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ ldr r0, _08095A44 @ =0x0000fff0
+ ands r0, r1
+ lsls r0, 6
+ mov r2, r12
+ ands r1, r2
+ lsls r1, 5
+ adds r0, r1
+ mov r3, r10
+ adds r4, r0, r3
+ movs r6, 0
+ adds r5, 0x1
+_080959D6:
+ ldrb r0, [r4]
+ movs r3, 0xF0
+ ands r3, r0
+ mov r2, r12
+ ands r2, r0
+ cmp r3, 0
+ bne _080959E6
+ ldr r3, [sp, 0xC]
+_080959E6:
+ cmp r2, 0
+ bne _080959EC
+ ldr r2, [sp, 0x8]
+_080959EC:
+ mov r0, r9
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldr r1, [sp, 0x40]
+ adds r0, r1, r0
+ orrs r3, r2
+ strb r3, [r0]
+ adds r4, 0x1
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x1F
+ bls _080959D6
+ lsls r0, r5, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _080959BA
+_08095A12:
+ ldr r0, [sp, 0x40]
+ adds r1, r7, 0
+ ldr r3, [sp, 0x10]
+ lsrs r2, r3, 16
+ bl CpuSet
+ ldr r7, [sp, 0x14]
+ movs r0, 0
+ mov r9, r0
+ ldr r1, [sp, 0x18]
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bls _0809599E
+_08095A2E:
+ 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
+_08095A40: .4byte gFont3LatinGlyphs
+_08095A44: .4byte 0x0000fff0
+ thumb_func_end sub_8095904
+
+ thumb_func_start unref_sub_8095A48
+unref_sub_8095A48: @ 8095A48
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r7, r3, 24
+ movs r6, 0
+_08095A60:
+ movs r3, 0
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ adds r2, r0, 0
+ cmp r1, 0xFF
+ beq _08095ACE
+_08095A6C:
+ mov r0, sp
+ adds r0, r3
+ adds r0, 0x8
+ strb r2, [r0]
+ adds r4, 0x1
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bhi _08095AA8
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ adds r2, r0, 0
+ cmp r1, 0xFF
+ bne _08095A6C
+ cmp r3, 0
+ beq _08095ACE
+ movs r6, 0x1
+ cmp r3, 0x3
+ bhi _08095AA8
+ movs r2, 0
+_08095A96:
+ adds r0, r3, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ add r0, sp
+ adds r0, 0x8
+ strb r2, [r0]
+ cmp r3, 0x3
+ bls _08095A96
+_08095AA8:
+ mov r1, sp
+ adds r1, r3
+ adds r1, 0x8
+ movs r0, 0xFF
+ strb r0, [r1]
+ str r7, [sp]
+ ldr r0, [sp, 0x28]
+ str r0, [sp, 0x4]
+ add r0, sp, 0x8
+ adds r1, r5, 0
+ mov r2, r8
+ movs r3, 0x80
+ bl sub_8095904
+ movs r0, 0x80
+ lsls r0, 1
+ adds r5, r0
+ cmp r6, 0
+ beq _08095A60
+_08095ACE:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_8095A48
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/water.s b/asm/water.s
new file mode 100755
index 000000000..4bf95ab59
--- /dev/null
+++ b/asm/water.s
@@ -0,0 +1,2541 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ @ water
+
+ thumb_func_start sub_80D3B60
+sub_80D3B60: @ 80D3B60
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080D3D44 @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0x8]
+ ldr r1, _080D3D48 @ =gUnknown_030042C0
+ ldrh r1, [r1]
+ adds r0, r1
+ ldr r2, _080D3D48 @ =gUnknown_030042C0
+ strh r0, [r2]
+ ldrh r0, [r4, 0xA]
+ ldr r3, _080D3D4C @ =gUnknown_030041B4
+ ldrh r3, [r3]
+ adds r0, r3
+ ldr r1, _080D3D4C @ =gUnknown_030041B4
+ strh r0, [r1]
+ add r5, sp, 0x4
+ adds r0, r5, 0
+ bl sub_8078914
+ ldrh r0, [r4, 0xA]
+ ldrh r2, [r4, 0xC]
+ adds r0, r2
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ mov r10, r5
+ cmp r0, 0x4
+ bne _080D3C02
+ ldr r1, _080D3D50 @ =gPlttBufferFaded
+ ldrb r0, [r5, 0x8]
+ lsls r0, 4
+ adds r0, 0x7
+ lsls r0, 1
+ adds r0, r1
+ ldrh r6, [r0]
+ movs r2, 0x6
+ adds r5, r1, 0
+ adds r3, r5, 0
+ mov r4, r10
+_080D3BC8:
+ ldrb r0, [r4, 0x8]
+ lsls r0, 4
+ adds r1, r2, 0x1
+ adds r0, r1
+ lsls r1, r0, 1
+ adds r1, r3
+ subs r0, 0x1
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080D3BC8
+ mov r3, r10
+ ldrb r0, [r3, 0x8]
+ lsls r0, 4
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r5
+ strh r6, [r0]
+ ldr r1, _080D3D44 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x12]
+_080D3C02:
+ ldr r1, _080D3D44 @ =gTasks
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x14]
+ adds r0, 0x1
+ strh r0, [r3, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ adds r4, r1, 0
+ str r2, [sp, 0x14]
+ cmp r0, 0x1
+ ble _080D3C70
+ movs r0, 0
+ strh r0, [r3, 0x14]
+ ldrh r0, [r3, 0xE]
+ adds r2, r0, 0x1
+ strh r2, [r3, 0xE]
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bgt _080D3C4C
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r1, 0xA]
+ ldrh r0, [r3, 0x10]
+ adds r0, 0x1
+ strh r0, [r3, 0x10]
+_080D3C4C:
+ movs r2, 0xE
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x36
+ ble _080D3C70
+ ldrh r2, [r3, 0x10]
+ subs r2, 0x1
+ strh r2, [r3, 0x10]
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r1, 0xA]
+_080D3C70:
+ ldr r2, [sp, 0x14]
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r4
+ movs r3, 0x26
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldrh r1, [r0, 0xA]
+ movs r0, 0x1F
+ ands r0, r1
+ cmp r0, 0
+ bne _080D3D32
+ ldr r2, [sp, 0x4]
+ movs r3, 0x80
+ lsls r3, 6
+ add r6, sp, 0x10
+ movs r5, 0
+ ldr r1, _080D3D54 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r6
+ ldr r0, _080D3D58 @ =0x85000400
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D3CAA:
+ str r5, [sp, 0x10]
+ mov r0, r8
+ 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 _080D3CAA
+ str r5, [sp, 0x10]
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0]
+ mov r3, r10
+ ldr r1, [r3, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x10]
+ ldr r0, _080D3D54 @ =0x040000d4
+ str r6, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D3D58 @ =0x85000400
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D3D02
+ ldr r2, _080D3D5C @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D3D02:
+ ldr r0, _080D3D48 @ =gUnknown_030042C0
+ strh r4, [r0]
+ ldr r1, _080D3D4C @ =gUnknown_030041B4
+ strh r4, [r1]
+ ldr r0, _080D3D60 @ =REG_BLDCNT
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r2, _080D3D44 @ =gTasks
+ ldr r3, [sp, 0x14]
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r2
+ movs r3, 0x26
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080D3D64 @ =0x0000ffff
+ strh r1, [r0, 0x26]
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+_080D3D32:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3D44: .4byte gTasks
+_080D3D48: .4byte gUnknown_030042C0
+_080D3D4C: .4byte gUnknown_030041B4
+_080D3D50: .4byte gPlttBufferFaded
+_080D3D54: .4byte 0x040000d4
+_080D3D58: .4byte 0x85000400
+_080D3D5C: .4byte REG_BG1CNT
+_080D3D60: .4byte REG_BLDCNT
+_080D3D64: .4byte 0x0000ffff
+ thumb_func_end sub_80D3B60
+
+ thumb_func_start sub_80D3D68
+sub_80D3D68: @ 80D3D68
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _080D3D90 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080D3D84
+ b _080D3EBC
+_080D3D84:
+ cmp r0, 0x1
+ bgt _080D3D94
+ cmp r0, 0
+ beq _080D3D9C
+ b _080D4032
+ .align 2, 0
+_080D3D90: .4byte gTasks
+_080D3D94:
+ cmp r0, 0x2
+ bne _080D3D9A
+ b _080D3F88
+_080D3D9A:
+ b _080D4032
+_080D3D9C:
+ movs r3, 0
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ ldr r1, _080D3E6C @ =gUnknown_03004DE0
+ mov r12, r1
+ cmp r3, r0
+ bge _080D3DDA
+ mov r7, r12
+ movs r5, 0xF0
+ lsls r5, 3
+ add r5, r12
+ ldr r6, _080D3E70 @ =0x0000ffff
+_080D3DB4:
+ lsls r2, r3, 16
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r7
+ adds r1, r5
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xC]
+ adds r0, r6, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ asrs r2, 16
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ blt _080D3DB4
+_080D3DDA:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D3E14
+ ldr r5, _080D3E6C @ =gUnknown_03004DE0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+ ldr r7, _080D3E70 @ =0x0000ffff
+_080D3DF2:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r5
+ adds r1, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xA]
+ adds r0, r7, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _080D3DF2
+_080D3E14:
+ ldrh r3, [r4, 0x12]
+ lsls r2, r3, 16
+ asrs r0, r2, 16
+ cmp r0, 0x9F
+ bgt _080D3E4A
+ ldr r5, _080D3E6C @ =gUnknown_03004DE0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+ ldr r7, _080D3E70 @ =0x0000ffff
+_080D3E28:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r5
+ adds r1, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xC]
+ adds r0, r7, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ lsls r2, r3, 16
+ asrs r0, r2, 16
+ cmp r0, 0x9F
+ ble _080D3E28
+_080D3E4A:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D3E74
+ lsls r0, r3, 16
+ asrs r0, 15
+ mov r3, r12
+ adds r2, r0, r3
+ movs r1, 0xF0
+ lsls r1, 3
+ add r1, r12
+ adds r0, r1
+ ldrh r1, [r4, 0xA]
+ strh r1, [r0]
+ ldrh r0, [r4, 0xA]
+ b _080D3E8A
+ .align 2, 0
+_080D3E6C: .4byte gUnknown_03004DE0
+_080D3E70: .4byte 0x0000ffff
+_080D3E74:
+ lsls r0, r3, 16
+ asrs r0, 15
+ mov r1, r12
+ adds r2, r0, r1
+ movs r1, 0xF0
+ lsls r1, 3
+ add r1, r12
+ adds r0, r1
+ ldrh r1, [r4, 0xC]
+ strh r1, [r0]
+ ldrh r0, [r4, 0xC]
+_080D3E8A:
+ strh r0, [r2]
+ ldr r0, _080D3EB4 @ =REG_BLDALPHA
+ str r0, [sp]
+ ldr r0, _080D3EB8 @ =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
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D4032
+ .align 2, 0
+_080D3EB4: .4byte REG_BLDALPHA
+_080D3EB8: .4byte 0xa2600001
+_080D3EBC:
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _080D3ED4
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080D3EE8
+ strh r1, [r4, 0x10]
+ b _080D3EE2
+_080D3ED4:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ ble _080D3EE8
+_080D3EE2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D3EE8:
+ movs r3, 0
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bge _080D3F1C
+ ldr r6, _080D3F80 @ =gUnknown_03004DE0
+ ldr r5, _080D3F84 @ =gUnknown_03004DC0
+_080D3EF6:
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r3, r1, 1
+ ldrb r2, [r5, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ adds r3, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r3]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ asrs r1, 16
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _080D3EF6
+_080D3F1C:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D3F50
+ ldr r6, _080D3F80 @ =gUnknown_03004DE0
+ ldr r5, _080D3F84 @ =gUnknown_03004DC0
+_080D3F2E:
+ asrs r3, r2, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _080D3F2E
+_080D3F50:
+ ldrh r3, [r4, 0x12]
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080D4032
+ ldr r6, _080D3F80 @ =gUnknown_03004DE0
+ ldr r5, _080D3F84 @ =gUnknown_03004DC0
+_080D3F5E:
+ asrs r3, r1, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _080D3F5E
+ b _080D4032
+ .align 2, 0
+_080D3F80: .4byte gUnknown_03004DE0
+_080D3F84: .4byte gUnknown_03004DC0
+_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
+_080D3F96:
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r3, r1, 1
+ ldrb r2, [r5, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ adds r3, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r3]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ asrs r1, 16
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _080D3F96
+_080D3FBC:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D3FF0
+ ldr r6, _080D403C @ =gUnknown_03004DE0
+ ldr r5, _080D4040 @ =gUnknown_03004DC0
+_080D3FCE:
+ asrs r3, r2, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _080D3FCE
+_080D3FF0:
+ ldrh r3, [r4, 0x12]
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080D401C
+ ldr r6, _080D403C @ =gUnknown_03004DE0
+ ldr r5, _080D4040 @ =gUnknown_03004DC0
+_080D3FFE:
+ asrs r3, r1, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _080D3FFE
+_080D401C:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080D4032
+ bl remove_some_task
+ adds r0, r7, 0
+ bl DestroyTask
+_080D4032:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D403C: .4byte gUnknown_03004DE0
+_080D4040: .4byte gUnknown_03004DC0
+ thumb_func_end sub_80D3D68
+
+ thumb_func_start sub_80D4044
+sub_80D4044: @ 80D4044
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r3, _080D4098 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D409C @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ bl Random
+ movs r5, 0xFF
+ ands r5, r0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r6, r0, 0
+ orrs r5, r6
+ bl Random
+ ldr r1, _080D40A0 @ =0x000001ff
+ ands r1, r0
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ ble _080D408A
+ subs r0, r6, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080D408A:
+ strh r5, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldr r0, _080D40A4 @ =sub_80D40A8
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4098: .4byte 0x000003ff
+_080D409C: .4byte 0xfffffc00
+_080D40A0: .4byte 0x000001ff
+_080D40A4: .4byte sub_80D40A8
+ thumb_func_end sub_80D4044
+
+ thumb_func_start sub_80D40A8
+sub_80D40A8: @ 80D40A8
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x34]
+ adds r3, r0, r1
+ strh r3, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ ldrh r4, [r2, 0x36]
+ adds r1, r4
+ strh r1, [r2, 0x36]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080D40CC
+ lsls r0, r3, 16
+ asrs r0, 24
+ negs r0, r0
+ b _080D40D0
+_080D40CC:
+ lsls r0, r3, 16
+ asrs r0, 24
+_080D40D0:
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080D40EE
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D40EE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D40A8
+
+ thumb_func_start sub_80D40F4
+sub_80D40F4: @ 80D40F4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D4144 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r2, _080D4148 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x12]
+ bl sub_80D4394
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8078E70
+ ldr r0, _080D414C @ =sub_80D4150
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4144: .4byte gTasks
+_080D4148: .4byte gSprites
+_080D414C: .4byte sub_80D4150
+ thumb_func_end sub_80D40F4
+
+ thumb_func_start sub_80D4150
+sub_80D4150: @ 80D4150
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D4178 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bls _080D416C
+ b _080D438A
+_080D416C:
+ lsls r0, 2
+ ldr r1, _080D417C @ =_080D4180
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D4178: .4byte gTasks
+_080D417C: .4byte _080D4180
+ .align 2, 0
+_080D4180:
+ .4byte _080D41A0
+ .4byte _080D41C6
+ .4byte _080D4258
+ .4byte _080D428E
+ .4byte _080D42A2
+ .4byte _080D42B0
+ .4byte _080D4330
+ .4byte _080D437C
+_080D41A0:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 1
+ movs r0, 0xE0
+ str r0, [sp]
+ movs r0, 0x80
+ lsls r0, 2
+ str r0, [sp, 0x4]
+ movs r0, 0x20
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r2, r3, 0
+ bl sub_8079C08
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D41C6:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D4222
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D4210
+ ldr r2, _080D420C @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ strh r1, [r0, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x1
+ strh r1, [r0, 0x22]
+ b _080D4222
+ .align 2, 0
+_080D420C: .4byte gSprites
+_080D4210:
+ ldr r2, _080D4250 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080D4254 @ =0x0000fffd
+ strh r1, [r0, 0x24]
+_080D4222:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080D4232
+ b _080D438A
+_080D4232:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079A64
+ ldr r2, _080D4250 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+ strh r5, [r4, 0xE]
+ b _080D436C
+ .align 2, 0
+_080D4250: .4byte gSprites
+_080D4254: .4byte 0x0000fffd
+_080D4258:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _080D4268
+ b _080D438A
+_080D4268:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xE0
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_8079C08
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ b _080D436E
+_080D428E:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080D438A
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ b _080D436E
+_080D42A2:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80D4418
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D42B0:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D438A
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D42E8
+ ldr r2, _080D42E4 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x2
+ b _080D42FA
+ .align 2, 0
+_080D42E4: .4byte gSprites
+_080D42E8:
+ ldr r2, _080D432C @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x2
+_080D42FA:
+ strh r1, [r0, 0x26]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xA
+ bne _080D438A
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xE0
+ bl sub_8079C08
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ b _080D436E
+ .align 2, 0
+_080D432C: .4byte gSprites
+_080D4330:
+ ldr r6, _080D4378 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x1
+ strh r1, [r0, 0x22]
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080D438A
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0x12]
+ strh r1, [r0, 0x22]
+_080D436C:
+ strh r5, [r4, 0x10]
+_080D436E:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D438A
+ .align 2, 0
+_080D4378: .4byte gSprites
+_080D437C:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D438A
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080D438A:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4150
+
+ thumb_func_start sub_80D4394
+sub_80D4394: @ 80D4394
+ push {r4,r5,lr}
+ ldr r4, _080D43B8 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D43C8
+ ldr r1, _080D43BC @ =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080D43C0 @ =gPlayerParty
+ b _080D43D8
+ .align 2, 0
+_080D43B8: .4byte gBattleAnimBankAttacker
+_080D43BC: .4byte gBattlePartyID
+_080D43C0: .4byte gPlayerParty
+_080D43C4:
+ adds r0, r2, 0
+ b _080D440A
+_080D43C8:
+ ldr r1, _080D4410 @ =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080D4414 @ =gEnemyParty
+_080D43D8:
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsrs r4, 18
+ movs r2, 0
+_080D43F6:
+ adds r1, r2, 0x1
+ adds r0, r4, 0
+ muls r0, r1
+ cmp r3, r0
+ blt _080D43C4
+ lsls r0, r1, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _080D43F6
+ movs r0, 0x3
+_080D440A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D4410: .4byte gBattlePartyID
+_080D4414: .4byte gEnemyParty
+ thumb_func_end sub_80D4394
+
+ thumb_func_start sub_80D4418
+sub_80D4418: @ 80D4418
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ ldr r4, _080D4520 @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0xAC
+ ldrb r0, [r4]
+ bl sub_8079E90
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ ldrh r1, [r7, 0xA]
+ movs r0, 0x4
+ subs r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r0, 0
+ bgt _080D4468
+ movs r1, 0x1
+_080D4468:
+ movs r0, 0
+ str r0, [sp, 0x4]
+ lsls r0, r1, 16
+ mov r10, r8
+ mov r9, r6
+ mov r1, r10
+ lsls r1, 4
+ str r1, [sp, 0xC]
+ mov r1, r9
+ lsls r1, 4
+ str r1, [sp, 0x10]
+ asrs r0, 16
+ mov r8, r0
+_080D4482:
+ ldr r0, _080D4524 @ =gSpriteTemplate_83D9378
+ mov r1, r10
+ mov r2, r9
+ ldr r3, [sp, 0x8]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r6, r5, 16
+ cmp r2, 0x40
+ beq _080D44EA
+ ldr r1, _080D4528 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r1
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x30]
+ mov r1, sp
+ ldrh r1, [r1, 0xC]
+ strh r1, [r5, 0x32]
+ mov r0, sp
+ ldrh r0, [r0, 0x10]
+ strh r0, [r5, 0x34]
+ asrs r4, r6, 16
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl Cos
+ strh r0, [r5, 0x36]
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl Sin
+ strh r0, [r5, 0x38]
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r5, 0x3A]
+ movs r0, 0x2
+ strh r0, [r5, 0x3C]
+ ldrh r1, [r7, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D44E4
+ adds r0, r5, 0
+ bl sub_80D452C
+_080D44E4:
+ ldrh r0, [r7, 0xC]
+ adds r0, 0x1
+ strh r0, [r7, 0xC]
+_080D44EA:
+ mov r1, r8
+ lsls r0, r1, 1
+ asrs r1, r6, 16
+ adds r1, r0
+ lsls r1, 16
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r5, r0, 16
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 16
+ asrs r0, 16
+ add r0, r8
+ lsls r0, 16
+ lsrs r1, r0, 16
+ str r1, [sp, 0x4]
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080D4482
+ 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
+_080D4520: .4byte gBattleAnimBankAttacker
+_080D4524: .4byte gSpriteTemplate_83D9378
+_080D4528: .4byte gSprites
+ thumb_func_end sub_80D4418
+
+ thumb_func_start sub_80D452C
+sub_80D452C: @ 80D452C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D453E
+ cmp r0, 0x1
+ beq _080D4574
+ b _080D45CE
+_080D453E:
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ movs r1, 0x6
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r0, [r4, 0x36]
+ adds r1, r0
+ strh r1, [r4, 0x36]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_080D4574:
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x38]
+ ldrh r2, [r4, 0x34]
+ adds r1, r2
+ strh r1, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x20]
+ lsls r1, 16
+ asrs r2, r1, 20
+ strh r2, [r4, 0x22]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080D45AA
+ adds r1, r2, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _080D45AA
+ cmp r1, 0x78
+ ble _080D45CE
+_080D45AA:
+ ldr r3, _080D45D4 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D45CE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D45D4: .4byte gTasks
+ thumb_func_end sub_80D452C
+
+ thumb_func_start sub_80D45D8
+sub_80D45D8: @ 80D45D8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D4608 @ =gTasks
+ adds r4, r1, r0
+ bl sub_80D4394
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ ldr r0, _080D460C @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D4610
+ movs r0, 0x88
+ strh r0, [r4, 0x10]
+ movs r0, 0x28
+ b _080D4616
+ .align 2, 0
+_080D4608: .4byte gTasks
+_080D460C: .4byte gBattleAnimBankAttacker
+_080D4610:
+ movs r0, 0x10
+ strh r0, [r4, 0x10]
+ movs r0, 0x50
+_080D4616:
+ strh r0, [r4, 0x14]
+ movs r0, 0x62
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x31
+ strh r0, [r4, 0x16]
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, 0x5
+ strh r0, [r4, 0x20]
+ ldr r0, _080D4638 @ =sub_80D463C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4638: .4byte sub_80D463C
+ thumb_func_end sub_80D45D8
+
+ thumb_func_start sub_80D463C
+sub_80D463C: @ 80D463C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r7, _080D4660 @ =gTasks
+ adds r4, r0, r7
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ beq _080D4664
+ cmp r2, 0x1
+ beq _080D4714
+ b _080D4722
+ .align 2, 0
+_080D4660: .4byte gTasks
+_080D4664:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D467A
+ strh r2, [r4, 0xC]
+ adds r0, r4, 0
+ bl sub_80D472C
+_080D467A:
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D46F4
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080D46F4
+ ldr r5, _080D4708 @ =gBattleAnimArgs
+ movs r1, 0x1
+ mov r8, r1
+ mov r2, r8
+ strh r2, [r5]
+ strh r0, [r5, 0x2]
+ movs r0, 0xC
+ strh r0, [r5, 0x4]
+ ldr r6, _080D470C @ =sub_80E1864
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080D46C4
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+ ldr r1, _080D4710 @ =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080D46C4:
+ movs r0, 0x3
+ strh r0, [r5]
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080D46F0
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+ ldr r1, _080D4710 @ =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080D46F0:
+ mov r0, r8
+ strh r0, [r4, 0x22]
+_080D46F4:
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _080D4722
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D4722
+ .align 2, 0
+_080D4708: .4byte gBattleAnimArgs
+_080D470C: .4byte sub_80E1864
+_080D4710: .4byte gAnimVisualTaskCount
+_080D4714:
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080D4722
+ adds r0, r1, 0
+ bl DestroyAnimVisualTask
+_080D4722:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D463C
+
+ thumb_func_start sub_80D472C
+sub_80D472C: @ 80D472C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, _080D47B8 @ =gSineTable
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x3
+ asrs r0, 4
+ ldrh r2, [r4, 0x14]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080D47BC @ =gSpriteTemplate_83D9378
+ movs r2, 0x16
+ ldrsh r1, [r4, r2]
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080D4786
+ ldr r3, _080D47C0 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _080D47C4 @ =sub_80D47D0
+ str r2, [r1]
+ adds r0, r3
+ strh r5, [r0, 0x38]
+ strh r6, [r0, 0x3A]
+ movs r1, 0x9
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+_080D4786:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ ldrh r0, [r4, 0x18]
+ adds r0, 0x27
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x18]
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ ldr r0, _080D47C8 @ =0x41c64e6d
+ muls r0, r1
+ ldr r1, _080D47CC @ =0x00003039
+ adds r0, r1
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ ldrh r1, [r4, 0x10]
+ adds r1, r0
+ strh r1, [r4, 0x16]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D47B8: .4byte gSineTable
+_080D47BC: .4byte gSpriteTemplate_83D9378
+_080D47C0: .4byte gSprites
+_080D47C4: .4byte sub_80D47D0
+_080D47C8: .4byte 0x41c64e6d
+_080D47CC: .4byte 0x00003039
+ thumb_func_end sub_80D472C
+
+ thumb_func_start sub_80D47D0
+sub_80D47D0: @ 80D47D0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D4866
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x38
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ blt _080D4866
+ ldr r2, _080D486C @ =gTasks
+ movs r3, 0x3A
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0, 0x1C]
+ ldr r0, _080D4870 @ =gBattleAnimSpriteTemplate_83DB4D8
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r3, 0x22
+ ldrsh r2, [r5, r3]
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x30]
+ cmp r0, 0x40
+ beq _080D4860
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080D4874 @ =gSprites
+ adds r0, r4
+ movs r1, 0x3
+ bl StartSpriteAffineAnim
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x3A]
+ strh r1, [r0, 0x3A]
+ movs r3, 0x30
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x3C]
+ strh r1, [r0, 0x3C]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _080D4878 @ =sub_80D487C
+ str r1, [r0]
+_080D4860:
+ adds r0, r5, 0
+ bl DestroySprite
+_080D4866:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D486C: .4byte gTasks
+_080D4870: .4byte gBattleAnimSpriteTemplate_83DB4D8
+_080D4874: .4byte gSprites
+_080D4878: .4byte sub_80D487C
+ thumb_func_end sub_80D47D0
+
+ thumb_func_start sub_80D487C
+sub_80D487C: @ 80D487C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D48E8
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ 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]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _080D48E8
+ ldr r3, _080D48F0 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D48E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D48F0: .4byte gTasks
+ thumb_func_end sub_80D487C
+
+ thumb_func_start sub_80D48F4
+sub_80D48F4: @ 80D48F4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D4978 @ =gTasks
+ adds r5, r1, r0
+ ldr r4, _080D497C @ =gBattleAnimBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r5, 0xE]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x10]
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080D4938
+ movs r1, 0x1
+_080D4938:
+ strh r1, [r5, 0x16]
+ bl NotInBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D494C
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r5, 0x16]
+_080D494C:
+ movs r2, 0x16
+ ldrsh r0, [r5, r2]
+ lsls r0, 3
+ ldrh r1, [r5, 0xE]
+ adds r0, r1
+ strh r0, [r5, 0x12]
+ movs r2, 0x16
+ ldrsh r1, [r5, r2]
+ lsls r1, 3
+ ldrh r0, [r5, 0x10]
+ subs r0, r1
+ strh r0, [r5, 0x14]
+ ldr r0, _080D4980 @ =0x0000ffe0
+ strh r0, [r5, 0x1A]
+ strh r6, [r5, 0xA]
+ strh r6, [r5, 0x8]
+ ldr r0, _080D4984 @ =sub_80D4988
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4978: .4byte gTasks
+_080D497C: .4byte gBattleAnimBankAttacker
+_080D4980: .4byte 0x0000ffe0
+_080D4984: .4byte sub_80D4988
+ thumb_func_end sub_80D48F4
+
+ thumb_func_start sub_80D4988
+sub_80D4988: @ 80D4988
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D49AC @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bls _080D49A2
+ b _080D4AC2
+_080D49A2:
+ lsls r0, 2
+ ldr r1, _080D49B0 @ =_080D49B4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D49AC: .4byte gTasks
+_080D49B0: .4byte _080D49B4
+ .align 2, 0
+_080D49B4:
+ .4byte _080D49D0
+ .4byte _080D49E0
+ .4byte _080D49FA
+ .4byte _080D4A3C
+ .4byte _080D4A5E
+ .4byte _080D4A8C
+ .4byte _080D4AB2
+_080D49D0:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D4AC8
+ b _080D4ABA
+_080D49E0:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D4AC8
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080D4ABA
+_080D49FA:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4, 0x12]
+ adds r1, r0
+ movs r2, 0
+ strh r1, [r4, 0x12]
+ adds r1, 0x10
+ lsls r1, 16
+ movs r0, 0x88
+ lsls r0, 17
+ cmp r1, r0
+ bls _080D4AC8
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D4A38
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+ movs r0, 0x6
+ strh r0, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ b _080D4AC8
+_080D4A38:
+ strh r2, [r4, 0xA]
+ b _080D4ABA
+_080D4A3C:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ ldrh r0, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080D4AC8
+ b _080D4ABA
+_080D4A5E:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x12]
+ adds r0, 0x10
+ lsls r0, 16
+ movs r1, 0x88
+ lsls r1, 17
+ cmp r0, r1
+ bls _080D4AC8
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080D4ABA
+_080D4A8C:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ ldrh r0, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080D4AC8
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080D4AC8
+_080D4AB2:
+ movs r1, 0x18
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D4AC8
+_080D4ABA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D4AC8
+_080D4AC2:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080D4AC8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4988
+
+ thumb_func_start sub_80D4AD0
+sub_80D4AD0: @ 80D4AD0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D4B2A
+ movs r0, 0
+ strh r0, [r6, 0xC]
+ ldr r0, _080D4B30 @ =gSpriteTemplate_83D9378
+ movs r2, 0xE
+ ldrsh r1, [r6, r2]
+ movs r3, 0x10
+ ldrsh r2, [r6, r3]
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080D4B2A
+ ldr r5, _080D4B34 @ =gSprites
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r4, r5
+ movs r1, 0x10
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r6, 0x12]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r6, 0x14]
+ strh r1, [r0, 0x36]
+ ldrh r1, [r6, 0x1A]
+ strh r1, [r0, 0x38]
+ bl sub_80786EC
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _080D4B38 @ =sub_80D4B3C
+ str r0, [r4]
+ ldrh r0, [r6, 0x18]
+ adds r0, 0x1
+ strh r0, [r6, 0x18]
+_080D4B2A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4B30: .4byte gSpriteTemplate_83D9378
+_080D4B34: .4byte gSprites
+_080D4B38: .4byte sub_80D4B3C
+ thumb_func_end sub_80D4AD0
+
+ thumb_func_start sub_80D4B3C
+sub_80D4B3C: @ 80D4B3C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D4B96
+ ldrh r0, [r6, 0x24]
+ ldrh r1, [r6, 0x20]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrh r0, [r6, 0x26]
+ ldrh r1, [r6, 0x22]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ movs r0, 0x6
+ strh r0, [r6, 0x2E]
+ bl Random
+ movs r4, 0x1F
+ adds r1, r4, 0
+ ands r1, r0
+ ldr r5, _080D4B9C @ =0x0000fff0
+ adds r1, r5
+ ldrh r0, [r6, 0x20]
+ adds r1, r0
+ strh r1, [r6, 0x32]
+ bl Random
+ ands r4, r0
+ adds r4, r5
+ ldrh r1, [r6, 0x22]
+ adds r4, r1
+ strh r4, [r6, 0x36]
+ bl Random
+ movs r1, 0x7
+ ands r1, r0
+ mvns r1, r1
+ strh r1, [r6, 0x38]
+ adds r0, r6, 0
+ bl sub_80786EC
+ ldr r0, _080D4BA0 @ =sub_80D4BA4
+ str r0, [r6, 0x1C]
+_080D4B96:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4B9C: .4byte 0x0000fff0
+_080D4BA0: .4byte sub_80D4BA4
+ thumb_func_end sub_80D4B3C
+
+ thumb_func_start sub_80D4BA4
+sub_80D4BA4: @ 80D4BA4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D4BE0
+ movs r4, 0
+ ldr r6, _080D4BE8 @ =gTasks
+_080D4BB6:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r6
+ ldr r1, [r2]
+ ldr r0, _080D4BEC @ =sub_80D4988
+ cmp r1, r0
+ bne _080D4BD6
+ movs r0, 0x1
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0x18]
+ subs r0, 0x1
+ strh r0, [r2, 0x18]
+ adds r0, r5, 0
+ bl DestroySprite
+_080D4BD6:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _080D4BB6
+_080D4BE0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4BE8: .4byte gTasks
+_080D4BEC: .4byte sub_80D4988
+ thumb_func_end sub_80D4BA4
+
+ thumb_func_start sub_80D4BF0
+sub_80D4BF0: @ 80D4BF0
+ ldr r2, _080D4C10 @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ strh r1, [r0, 0x20]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x22]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r2, 0x6]
+ strh r1, [r0, 0x30]
+ ldrh r1, [r2, 0x8]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r2, 0xA]
+ strh r1, [r0, 0x34]
+ ldr r1, _080D4C14 @ =sub_80D4C18
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080D4C10: .4byte gBattleAnimArgs
+_080D4C14: .4byte sub_80D4C18
+ thumb_func_end sub_80D4BF0
+
+ thumb_func_start sub_80D4C18
+sub_80D4C18: @ 80D4C18
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x2E]
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D4C5C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D4C5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4C18
+
+ thumb_func_start sub_80D4C64
+sub_80D4C64: @ 80D4C64
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r1, r2
+ strh r1, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 23
+ strh r0, [r4, 0x24]
+ lsls r1, 16
+ asrs r1, 23
+ strh r1, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D4C9C
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D4C9C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4C64
+
+ thumb_func_start sub_80D4CA4
+sub_80D4CA4: @ 80D4CA4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080D4CE0 @ =gBattleAnimBankTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x30]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldr r1, _080D4CE4 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r0, _080D4CE8 @ =sub_80D4CEC
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4CE0: .4byte gBattleAnimBankTarget
+_080D4CE4: .4byte gBattleAnimArgs
+_080D4CE8: .4byte sub_80D4CEC
+ thumb_func_end sub_80D4CA4
+
+ thumb_func_start sub_80D4CEC
+sub_80D4CEC: @ 80D4CEC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ subs r6, r1, r0
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ subs r5, r1, r0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ muls r0, r6
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ muls r0, r5
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080D4D44
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80D4D64
+_080D4D44:
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080D4D56
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D4D56:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4CEC
+
+ thumb_func_start sub_80D4D64
+sub_80D4D64: @ 80D4D64
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r4, r1, 0
+ adds r5, r2, 0
+ movs r2, 0x2E
+ ldrsh r1, [r0, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ lsls r1, 15
+ lsrs r1, 16
+ str r1, [sp]
+ ldrh r1, [r0, 0x24]
+ ldrh r3, [r0, 0x20]
+ adds r1, r3
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r0, r5, r0
+ subs r0, 0x5
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ bl Random
+ negs r4, r4
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r4, r0
+ subs r4, 0x5
+ lsls r4, 16
+ lsrs r7, r4, 16
+ movs r6, 0
+ mov r0, r8
+ lsls r0, 16
+ mov r8, r0
+ mov r1, r10
+ lsls r1, 16
+ str r1, [sp, 0xC]
+ ldr r2, [sp]
+ lsls r2, 16
+ str r2, [sp, 0x10]
+ asrs r1, 16
+ lsls r0, r7, 16
+ asrs r5, r0, 16
+ str r0, [sp, 0x14]
+ negs r3, r5
+ str r3, [sp, 0x4]
+ asrs r0, r2, 16
+ adds r1, r0
+ lsls r1, 16
+ mov r10, r1
+_080D4DF2:
+ ldr r0, _080D4E34 @ =gSpriteTemplate_83D9420
+ mov r2, r8
+ asrs r1, r2, 16
+ mov r3, r10
+ asrs r2, r3, 16
+ movs r3, 0x82
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080D4E38 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ ldr r0, _080D4E3C @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ cmp r5, 0
+ bge _080D4E40
+ mov r1, sp
+ ldrh r1, [r1, 0x4]
+ strh r1, [r4, 0x32]
+ b _080D4E42
+ .align 2, 0
+_080D4E34: .4byte gSpriteTemplate_83D9420
+_080D4E38: .4byte gSprites
+_080D4E3C: .4byte gBattleAnimBankAttacker
+_080D4E40:
+ strh r7, [r4, 0x32]
+_080D4E42:
+ lsls r0, r6, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r6, r0, 16
+ cmp r0, 0
+ ble _080D4DF2
+ movs r6, 0
+ ldr r3, [sp, 0xC]
+ asrs r1, r3, 16
+ ldr r0, [sp, 0x14]
+ asrs r5, r0, 16
+ negs r2, r5
+ str r2, [sp, 0x8]
+ ldr r3, [sp, 0x10]
+ asrs r0, r3, 16
+ subs r1, r0
+ lsls r1, 16
+ mov r10, r1
+_080D4E68:
+ ldr r0, _080D4EAC @ =gSpriteTemplate_83D9420
+ mov r2, r8
+ asrs r1, r2, 16
+ mov r3, r10
+ asrs r2, r3, 16
+ movs r3, 0x82
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080D4EB0 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ ldr r0, _080D4EB4 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ cmp r5, 0
+ ble _080D4EB8
+ mov r1, sp
+ ldrh r1, [r1, 0x8]
+ strh r1, [r4, 0x32]
+ b _080D4EBA
+ .align 2, 0
+_080D4EAC: .4byte gSpriteTemplate_83D9420
+_080D4EB0: .4byte gSprites
+_080D4EB4: .4byte gBattleAnimBankAttacker
+_080D4EB8:
+ strh r7, [r4, 0x32]
+_080D4EBA:
+ lsls r0, r6, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r6, r0, 16
+ cmp r0, 0
+ ble _080D4E68
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4D64
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/wisp_fire.s b/asm/wisp_fire.s
new file mode 100755
index 000000000..a22903e6b
--- /dev/null
+++ b/asm/wisp_fire.s
@@ -0,0 +1,678 @@
+ .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 @ =gBattleAnimBankTarget
+ 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 gBattleAnimBankTarget
+_080D5D5C:
+ ldr r0, _080D5D80 @ =gBattleAnimBankTarget
+ 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 gBattleAnimBankTarget
+_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 move_anim_8072740
+_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 @ =gBattleAnimBankAttacker
+ 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 @ =gBattleAnimBankTarget
+ 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 gBattleAnimBankAttacker
+_080D5E44: .4byte gBattleAnimBankTarget
+_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 @ =gBattleAnimBankTarget
+ 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 gBattleAnimBankTarget
+_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/common_syms/engine/rng.txt b/common_syms/engine/random.txt
index 794439ea5..794439ea5 100644
--- a/common_syms/engine/rng.txt
+++ b/common_syms/engine/random.txt
diff --git a/constants/ability_constants.inc b/constants/ability_constants.inc
deleted file mode 100644
index 8ccc872f7..000000000
--- a/constants/ability_constants.inc
+++ /dev/null
@@ -1,78 +0,0 @@
- .set ABILITY_NONE, 0x00
- .set ABILITY_STENCH, 0x01
- .set ABILITY_DRIZZLE, 0x02
- .set ABILITY_SPEED_BOOST, 0x03
- .set ABILITY_BATTLE_ARMOR, 0x04
- .set ABILITY_STURDY, 0x05
- .set ABILITY_DAMP, 0x06
- .set ABILITY_LIMBER, 0x07
- .set ABILITY_SAND_VEIL, 0x08
- .set ABILITY_STATIC, 0x09
- .set ABILITY_VOLT_ABSORB, 0x0a
- .set ABILITY_WATER_ABSORB, 0x0b
- .set ABILITY_OBLIVIOUS, 0x0c
- .set ABILITY_CLOUD_NINE, 0x0d
- .set ABILITY_COMPOUND_EYES, 0x0e
- .set ABILITY_INSOMNIA, 0x0f
- .set ABILITY_COLOR_CHANGE, 0x10
- .set ABILITY_IMMUNITY, 0x11
- .set ABILITY_FLASH_FIRE, 0x12
- .set ABILITY_SHIELD_DUST, 0x13
- .set ABILITY_OWN_TEMPO, 0x14
- .set ABILITY_SUCTION_CUPS, 0x15
- .set ABILITY_INTIMIDATE, 0x16
- .set ABILITY_SHADOW_TAG, 0x17
- .set ABILITY_ROUGH_SKIN, 0x18
- .set ABILITY_WONDER_GUARD, 0x19
- .set ABILITY_LEVITATE, 0x1a
- .set ABILITY_EFFECT_SPORE, 0x1b
- .set ABILITY_SYNCHRONIZE, 0x1c
- .set ABILITY_CLEAR_BODY, 0x1d
- .set ABILITY_NATURAL_CURE, 0x1e
- .set ABILITY_LIGHTNING_ROD, 0x1f
- .set ABILITY_SERENE_GRACE, 0x20
- .set ABILITY_SWIFT_SWIM, 0x21
- .set ABILITY_CHLOROPHYLL, 0x22
- .set ABILITY_ILLUMINATE, 0x23
- .set ABILITY_TRACE, 0x24
- .set ABILITY_HUGE_POWER, 0x25
- .set ABILITY_POISON_POINT, 0x26
- .set ABILITY_INNER_FOCUS, 0x27
- .set ABILITY_MAGMA_ARMOR, 0x28
- .set ABILITY_WATER_VEIL, 0x29
- .set ABILITY_MAGNET_PULL, 0x2a
- .set ABILITY_SOUNDPROOF, 0x2b
- .set ABILITY_RAIN_DISH, 0x2c
- .set ABILITY_SAND_STREAM, 0x2d
- .set ABILITY_PRESSURE, 0x2e
- .set ABILITY_THICK_FAT, 0x2f
- .set ABILITY_EARLY_BIRD, 0x30
- .set ABILITY_FLAME_BODY, 0x31
- .set ABILITY_RUN_AWAY, 0x32
- .set ABILITY_KEEN_EYE, 0x33
- .set ABILITY_HYPER_CUTTER, 0x34
- .set ABILITY_PICKUP, 0x35
- .set ABILITY_TRUANT, 0x36
- .set ABILITY_HUSTLE, 0x37
- .set ABILITY_CUTE_CHARM, 0x38
- .set ABILITY_PLUS, 0x39
- .set ABILITY_MINUS, 0x3a
- .set ABILITY_FORECAST, 0x3b
- .set ABILITY_STICKY_HOLD, 0x3c
- .set ABILITY_SHED_SKIN, 0x3d
- .set ABILITY_GUTS, 0x3e
- .set ABILITY_MARVEL_SCALE, 0x3f
- .set ABILITY_LIQUID_OOZE, 0x40
- .set ABILITY_OVERGROW, 0x41
- .set ABILITY_BLAZE, 0x42
- .set ABILITY_TORRENT, 0x43
- .set ABILITY_SWARM, 0x44
- .set ABILITY_ROCK_HEAD, 0x45
- .set ABILITY_DROUGHT, 0x46
- .set ABILITY_ARENA_TRAP, 0x47
- .set ABILITY_VITAL_SPIRIT, 0x48
- .set ABILITY_WHITE_SMOKE, 0x49
- .set ABILITY_PURE_POWER, 0x4a
- .set ABILITY_SHELL_ARMOR, 0x4b
- .set ABILITY_CACOPHONY, 0x4c
- .set ABILITY_AIR_LOCK, 0x4d
diff --git a/constants/battle.inc b/constants/battle.inc
index c6094b15f..94b7a6d48 100644
--- a/constants/battle.inc
+++ b/constants/battle.inc
@@ -53,3 +53,49 @@
enum SP_DEFENSE
enum ACCURACY
enum EVASION
+
+@ status animation table
+.equiv B_ANIM_STATUS_PSN, 0x0
+.equiv B_ANIM_STATUS_CONFUSION, 0x1
+.equiv B_ANIM_STATUS_BRN, 0x2
+.equiv B_ANIM_STATUS_INFATUATION, 0x3
+.equiv B_ANIM_STATUS_SLP, 0x4
+.equiv B_ANIM_STATUS_PRZ, 0x5
+.equiv B_ANIM_STATUS_FRZ, 0x6
+.equiv B_ANIM_STATUS_CURSED, 0x7
+.equiv B_ANIM_STATUS_NIGHTMARE, 0x8
+.equiv B_ANIM_STATUS_WRAPPED, 0x9
+
+@ general animation table
+.equiv B_ANIM_CASTFORM_CHANGE, 0x0
+.equiv B_ANIM_STATS_CHANGE, 0x1
+.equiv B_ANIM_SUBSTITUTE_FADE, 0x2
+.equiv B_ANIM_SUBSTITUTE_APPEAR, 0x3
+.equiv B_ANIM_POKEBLOCK_THROW, 0x4
+.equiv B_ANIM_ITEM_KNOCKOFF, 0x5
+.equiv B_ANIM_TURN_TRAP, 0x6
+.equiv B_ANIM_ITEM_EFFECT, 0x7
+.equiv B_ANIM_SMOKEBALL_ESCAPE, 0x8
+.equiv B_ANIM_HANGED_ON, 0x9
+.equiv B_ANIM_RAIN_CONTINUES, 0xA
+.equiv B_ANIM_SUN_CONTINUES, 0xB
+.equiv B_ANIM_SANDSTORM_CONTINUES, 0xC
+.equiv B_ANIM_HAIL_CONTINUES, 0xD
+.equiv B_ANIM_LEECH_SEED_DRAIN, 0xE
+.equiv B_ANIM_MON_HIT, 0xF
+.equiv B_ANIM_ITEM_STEAL, 0x10
+.equiv B_ANIM_SNATCH_MOVE, 0x11
+.equiv B_ANIM_FUTURE_SIGHT_HIT, 0x12
+.equiv B_ANIM_DOOM_DESIRE_HIT, 0x13
+.equiv B_ANIM_FOCUS_PUNCH_SET_UP, 0x14
+.equiv B_ANIM_INGRAIN_HEAL, 0x15
+.equiv B_ANIM_WISH_HEAL, 0x16
+
+@ special animation table
+.equiv B_ANIM_LVL_UP, 0x0
+.equiv B_ANIM_SWITCH_OUT_PLAYER_MON, 0x1
+.equiv B_ANIM_SWITCH_OUT_OPPONENT_MON, 0x2
+.equiv B_ANIM_BALL_THROW, 0x3
+.equiv B_ANIM_SAFARI_BALL_THROW, 0x4
+.equiv B_ANIM_SUBSTITUTE_TO_MON, 0x5
+.equiv B_ANIM_MON_TO_SUBSTITUTE, 0x6
diff --git a/constants/battle_move_effects.inc b/constants/battle_move_effects.inc
deleted file mode 100644
index bd801083b..000000000
--- a/constants/battle_move_effects.inc
+++ /dev/null
@@ -1,215 +0,0 @@
- enum_start
- enum EFFECT_HIT
- enum EFFECT_SLEEP
- enum EFFECT_POISON_HIT
- enum EFFECT_ABSORB
- enum EFFECT_BURN_HIT
- enum EFFECT_FREEZE_HIT
- enum EFFECT_PARALYZE_HIT
- enum EFFECT_EXPLOSION
- enum EFFECT_DREAM_EATER
- enum EFFECT_MIRROR_MOVE
- enum EFFECT_ATTACK_UP
- enum EFFECT_DEFENSE_UP
- enum EFFECT_SPEED_UP
- enum EFFECT_SPECIAL_ATTACK_UP
- enum EFFECT_SPECIAL_DEFENSE_UP
- enum EFFECT_ACCURACY_UP
- enum EFFECT_EVASION_UP
- enum EFFECT_ALWAYS_HIT
- enum EFFECT_ATTACK_DOWN
- enum EFFECT_DEFENSE_DOWN
- enum EFFECT_SPEED_DOWN
- enum EFFECT_SPECIAL_ATTACK_DOWN @ unused
- enum EFFECT_SPECIAL_DEFENSE_DOWN @ unused
- enum EFFECT_ACCURACY_DOWN
- enum EFFECT_EVASION_DOWN
- enum EFFECT_HAZE
- enum EFFECT_BIDE
- enum EFFECT_RAMPAGE
- enum EFFECT_ROAR
- enum EFFECT_MULTI_HIT
- enum EFFECT_CONVERSION
- enum EFFECT_FLINCH_HIT
- enum EFFECT_RESTORE_HP
- enum EFFECT_TOXIC
- enum EFFECT_PAY_DAY
- enum EFFECT_LIGHT_SCREEN
- enum EFFECT_TRI_ATTACK
- enum EFFECT_REST
- enum EFFECT_OHKO
- enum EFFECT_RAZOR_WIND
- enum EFFECT_SUPER_FANG
- enum EFFECT_DRAGON_RAGE
- enum EFFECT_TRAP
- enum EFFECT_HIGH_CRITICAL
- enum EFFECT_DOUBLE_HIT
- enum EFFECT_RECOIL_IF_MISS
- enum EFFECT_MIST
- enum EFFECT_FOCUS_ENERGY
- enum EFFECT_RECOIL
- enum EFFECT_CONFUSE
- enum EFFECT_ATTACK_UP_2
- enum EFFECT_DEFENSE_UP_2
- enum EFFECT_SPEED_UP_2
- enum EFFECT_SPECIAL_ATTACK_UP_2
- enum EFFECT_SPECIAL_DEFENSE_UP_2
- enum EFFECT_ACCURACY_UP_2
- enum EFFECT_EVASION_UP_2
- enum EFFECT_TRANSFORM
- enum EFFECT_ATTACK_DOWN_2
- enum EFFECT_DEFENSE_DOWN_2
- enum EFFECT_SPEED_DOWN_2
- enum EFFECT_SPECIAL_ATTACK_DOWN_2
- enum EFFECT_SPECIAL_DEFENSE_DOWN_2
- enum EFFECT_ACCURACY_DOWN_2
- enum EFFECT_EVASION_DOWN_2
- enum EFFECT_REFLECT
- enum EFFECT_POISON
- enum EFFECT_PARALYZE
- enum EFFECT_ATTACK_DOWN_HIT
- enum EFFECT_DEFENSE_DOWN_HIT
- enum EFFECT_SPEED_DOWN_HIT
- enum EFFECT_SPECIAL_ATTACK_DOWN_HIT
- enum EFFECT_SPECIAL_DEFENSE_DOWN_HIT
- enum EFFECT_ACCURACY_DOWN_HIT
- enum EFFECT_EVASION_DOWN_HIT
- enum EFFECT_SKY_ATTACK
- enum EFFECT_CONFUSE_HIT
- enum EFFECT_TWINEEDLE
- enum EFFECT_VITAL_THROW
- enum EFFECT_SUBSTITUTE
- enum EFFECT_RECHARGE
- enum EFFECT_RAGE
- enum EFFECT_MIMIC
- enum EFFECT_METRONOME
- enum EFFECT_LEECH_SEED
- enum EFFECT_SPLASH
- enum EFFECT_DISABLE
- enum EFFECT_LEVEL_DAMAGE
- enum EFFECT_PSYWAVE
- enum EFFECT_COUNTER
- enum EFFECT_ENCORE
- enum EFFECT_PAIN_SPLIT
- enum EFFECT_SNORE
- enum EFFECT_CONVERSION_2
- enum EFFECT_LOCK_ON
- enum EFFECT_SKETCH
- enum EFFECT_UNUSED_60 @ thaw
- enum EFFECT_SLEEP_TALK
- enum EFFECT_DESTINY_BOND
- enum EFFECT_FLAIL
- enum EFFECT_SPITE
- enum EFFECT_FALSE_SWIPE
- enum EFFECT_HEAL_BELL
- enum EFFECT_QUICK_ATTACK
- enum EFFECT_TRIPLE_KICK
- enum EFFECT_THIEF
- enum EFFECT_MEAN_LOOK
- enum EFFECT_NIGHTMARE
- enum EFFECT_MINIMIZE
- enum EFFECT_CURSE
- enum EFFECT_UNUSED_6E
- enum EFFECT_PROTECT
- enum EFFECT_SPIKES
- enum EFFECT_FORESIGHT
- enum EFFECT_PERISH_SONG
- enum EFFECT_SANDSTORM
- enum EFFECT_ENDURE
- enum EFFECT_ROLLOUT
- enum EFFECT_SWAGGER
- enum EFFECT_FURY_CUTTER
- enum EFFECT_ATTRACT
- enum EFFECT_RETURN
- enum EFFECT_PRESENT
- enum EFFECT_FRUSTRATION
- enum EFFECT_SAFEGUARD
- enum EFFECT_THAW_HIT
- enum EFFECT_MAGNITUDE
- enum EFFECT_BATON_PASS
- enum EFFECT_PURSUIT
- enum EFFECT_RAPID_SPIN
- enum EFFECT_SONICBOOM
- enum EFFECT_UNUSED_83
- enum EFFECT_MORNING_SUN
- enum EFFECT_SYNTHESIS
- enum EFFECT_MOONLIGHT
- enum EFFECT_HIDDEN_POWER
- enum EFFECT_RAIN_DANCE
- enum EFFECT_SUNNY_DAY
- enum EFFECT_DEFENSE_UP_HIT
- enum EFFECT_ATTACK_UP_HIT
- enum EFFECT_ALL_STATS_UP_HIT
- enum EFFECT_UNUSED_8D @ incomplete fake out in gen 2
- enum EFFECT_BELLY_DRUM
- enum EFFECT_PSYCH_UP
- enum EFFECT_MIRROR_COAT
- enum EFFECT_SKULL_BASH
- enum EFFECT_TWISTER
- enum EFFECT_EARTHQUAKE
- enum EFFECT_FUTURE_SIGHT
- enum EFFECT_GUST
- enum EFFECT_FLINCH_HIT_2 @ STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
- enum EFFECT_SOLARBEAM
- enum EFFECT_THUNDER
- enum EFFECT_TELEPORT
- enum EFFECT_BEAT_UP
- enum EFFECT_FLY
- enum EFFECT_DEFENSE_CURL
- enum EFFECT_SOFTBOILED
- enum EFFECT_FAKE_OUT
- enum EFFECT_UPROAR
- enum EFFECT_STOCKPILE
- enum EFFECT_SPIT_UP
- enum EFFECT_SWALLOW
- enum EFFECT_UNUSED_A3
- enum EFFECT_HAIL
- enum EFFECT_TORMENT
- enum EFFECT_FLATTER
- enum EFFECT_WILL_O_WISP
- enum EFFECT_MEMENTO
- enum EFFECT_FACADE
- enum EFFECT_FOCUS_PUNCH
- enum EFFECT_SMELLINGSALT
- enum EFFECT_FOLLOW_ME
- enum EFFECT_NATURE_POWER
- enum EFFECT_CHARGE
- enum EFFECT_TAUNT
- enum EFFECT_HELPING_HAND
- enum EFFECT_TRICK
- enum EFFECT_ROLE_PLAY
- enum EFFECT_WISH
- enum EFFECT_ASSIST
- enum EFFECT_INGRAIN
- enum EFFECT_SUPERPOWER
- enum EFFECT_MAGIC_COAT
- enum EFFECT_RECYCLE
- enum EFFECT_REVENGE
- enum EFFECT_BRICK_BREAK
- enum EFFECT_YAWN
- enum EFFECT_KNOCK_OFF
- enum EFFECT_ENDEAVOR
- enum EFFECT_ERUPTION
- enum EFFECT_SKILL_SWAP
- enum EFFECT_IMPRISON
- enum EFFECT_REFRESH
- enum EFFECT_GRUDGE
- enum EFFECT_SNATCH
- enum EFFECT_LOW_KICK
- enum EFFECT_SECRET_POWER
- enum EFFECT_DOUBLE_EDGE
- enum EFFECT_TEETER_DANCE
- enum EFFECT_BLAZE_KICK
- enum EFFECT_MUD_SPORT
- enum EFFECT_POISON_FANG
- enum EFFECT_WEATHER_BALL
- enum EFFECT_OVERHEAT
- enum EFFECT_TICKLE
- enum EFFECT_COSMIC_POWER
- enum EFFECT_SKY_UPPERCUT
- enum EFFECT_BULK_UP
- enum EFFECT_POISON_TAIL
- enum EFFECT_WATER_SPORT
- enum EFFECT_CALM_MIND
- enum EFFECT_DRAGON_DANCE
- enum EFFECT_CAMOUFLAGE
diff --git a/constants/battle_tower_constants.inc b/constants/battle_tower_constants.inc
deleted file mode 100644
index 136b43bd7..000000000
--- a/constants/battle_tower_constants.inc
+++ /dev/null
@@ -1,70 +0,0 @@
- .set F_EV_SPREAD_HP, 1 << 0
- .set F_EV_SPREAD_ATTACK, 1 << 1
- .set F_EV_SPREAD_DEFENSE, 1 << 2
- .set F_EV_SPREAD_SPEED, 1 << 3
- .set F_EV_SPREAD_SP_ATTACK, 1 << 4
- .set F_EV_SPREAD_SP_DEFENSE, 1 << 5
-
- .set BATTLE_TOWER_ITEM_NONE, 0
- .set BATTLE_TOWER_ITEM_KINGS_ROCK, 1
- .set BATTLE_TOWER_ITEM_SITRUS_BERRY, 2
- .set BATTLE_TOWER_ITEM_ORAN_BERRY, 3
- .set BATTLE_TOWER_ITEM_CHESTO_BERRY, 4
- .set BATTLE_TOWER_ITEM_HARD_STONE, 5
- .set BATTLE_TOWER_ITEM_FOCUS_BAND, 6
- .set BATTLE_TOWER_ITEM_PERSIM_BERRY, 7
- .set BATTLE_TOWER_ITEM_MIRACLE_SEED, 8
- .set BATTLE_TOWER_ITEM_BERRY_JUICE, 9
- .set BATTLE_TOWER_ITEM_MACHO_BRACE, 10
- .set BATTLE_TOWER_ITEM_SILVER_POWDER, 11
- .set BATTLE_TOWER_ITEM_CHERI_BERRY, 12
- .set BATTLE_TOWER_ITEM_BLACK_GLASSES, 13
- .set BATTLE_TOWER_ITEM_BLACK_BELT, 14
- .set BATTLE_TOWER_ITEM_SOUL_DEW, 15
- .set BATTLE_TOWER_ITEM_CHOICE_BAND, 16
- .set BATTLE_TOWER_ITEM_MAGNET, 17
- .set BATTLE_TOWER_ITEM_SILK_SCARF, 18
- .set BATTLE_TOWER_ITEM_WHITE_HERB, 19
- .set BATTLE_TOWER_ITEM_DEEP_SEA_SCALE, 20
- .set BATTLE_TOWER_ITEM_DEEP_SEA_TOOTH, 21
- .set BATTLE_TOWER_ITEM_MYSTIC_WATER, 22
- .set BATTLE_TOWER_ITEM_SHARP_BEAK, 23
- .set BATTLE_TOWER_ITEM_QUICK_CLAW, 24
- .set BATTLE_TOWER_ITEM_LEFTOVERS, 25
- .set BATTLE_TOWER_ITEM_RAWST_BERRY, 26
- .set BATTLE_TOWER_ITEM_LIGHT_BALL, 27
- .set BATTLE_TOWER_ITEM_POISON_BARB, 28
- .set BATTLE_TOWER_ITEM_NEVER_MELT_ICE, 29
- .set BATTLE_TOWER_ITEM_ASPEAR_BERRY, 30
- .set BATTLE_TOWER_ITEM_SPELL_TAG, 31
- .set BATTLE_TOWER_ITEM_BRIGHT_POWDER, 32
- .set BATTLE_TOWER_ITEM_LEPPA_BERRY, 33
- .set BATTLE_TOWER_ITEM_SCOPE_LENS, 34
- .set BATTLE_TOWER_ITEM_TWISTED_SPOON, 35
- .set BATTLE_TOWER_ITEM_METAL_COAT, 36
- .set BATTLE_TOWER_ITEM_MENTAL_HERB, 37
- .set BATTLE_TOWER_ITEM_CHARCOAL, 38
- .set BATTLE_TOWER_ITEM_PECHA_BERRY, 39
- .set BATTLE_TOWER_ITEM_SOFT_SAND, 40
- .set BATTLE_TOWER_ITEM_LUM_BERRY, 41
- .set BATTLE_TOWER_ITEM_DRAGON_SCALE, 42
- .set BATTLE_TOWER_ITEM_DRAGON_FANG, 43
- .set BATTLE_TOWER_ITEM_IAPAPA_BERRY, 44
- .set BATTLE_TOWER_ITEM_WIKI_BERRY, 45
- .set BATTLE_TOWER_ITEM_SEA_INCENSE, 46
- .set BATTLE_TOWER_ITEM_SHELL_BELL, 47
- .set BATTLE_TOWER_ITEM_SALAC_BERRY, 48
- .set BATTLE_TOWER_ITEM_LANSAT_BERRY, 49
- .set BATTLE_TOWER_ITEM_APICOT_BERRY, 50
- .set BATTLE_TOWER_ITEM_STARF_BERRY, 51
- .set BATTLE_TOWER_ITEM_LIECHI_BERRY, 52
- .set BATTLE_TOWER_ITEM_STICK, 53
- .set BATTLE_TOWER_ITEM_LAX_INCENSE, 54
- .set BATTLE_TOWER_ITEM_AGUAV_BERRY, 55
- .set BATTLE_TOWER_ITEM_FIGY_BERRY, 56
- .set BATTLE_TOWER_ITEM_THICK_CLUB, 57
- .set BATTLE_TOWER_ITEM_MAGO_BERRY, 58
- .set BATTLE_TOWER_ITEM_METAL_POWDER, 59
- .set BATTLE_TOWER_ITEM_PETAYA_BERRY, 60
- .set BATTLE_TOWER_ITEM_LUCKY_PUNCH, 61
- .set BATTLE_TOWER_ITEM_GANLON_BERRY, 62
diff --git a/constants/constants.inc b/constants/constants.inc
index 81d3b72fe..1ec25462f 100644
--- a/constants/constants.inc
+++ b/constants/constants.inc
@@ -1,28 +1,12 @@
.include "constants/gba_constants.inc"
.include "constants/misc_constants.inc"
- .include "constants/species_constants.inc"
- .include "constants/ability_constants.inc"
- .include "constants/move_constants.inc"
- .include "constants/item_constants.inc"
.include "constants/type_constants.inc"
.include "constants/contest_constants.inc"
- .include "constants/pokemon_data_constants.inc"
.include "constants/item_data_constants.inc"
.include "constants/battle_move_constants.inc"
- .include "constants/easy_chat_constants.inc"
.include "constants/trainer_constants.inc"
- .include "constants/map_constants.inc"
.include "constants/berry_constants.inc"
- .include "constants/map_object_constants.inc"
- .include "constants/battle_tower_constants.inc"
- .include "constants/opponent_constants.inc"
- .include "constants/decorations.inc"
- .include "constants/songs.inc"
.include "constants/version.inc"
- .include "constants/region_map_sections.inc"
- .include "constants/hold_effects.inc"
.include "constants/battle.inc"
.include "constants/battle_text.inc"
- .include "constants/battle_move_effects.inc"
.include "constants/contest_move_effects.inc"
- .include "constants/game_stat.inc"
diff --git a/constants/decorations.inc b/constants/decorations.inc
deleted file mode 100644
index 482799f9e..000000000
--- a/constants/decorations.inc
+++ /dev/null
@@ -1,121 +0,0 @@
- .equiv DECOR_NONE, 0
- .equiv DECOR_SMALL_DESK, 1
- .equiv DECOR_POKEMON_DESK, 2
- .equiv DECOR_HEAVY_DESK, 3
- .equiv DECOR_RAGGED_DESK, 4
- .equiv DECOR_COMFORT_DESK, 5
- .equiv DECOR_PRETTY_DESK, 6
- .equiv DECOR_BRICK_DESK, 7
- .equiv DECOR_CAMP_DESK, 8
- .equiv DECOR_HARD_DESK, 9
- .equiv DECOR_SMALL_CHAIR, 10
- .equiv DECOR_POKEMON_CHAIR, 11
- .equiv DECOR_HEAVY_CHAIR, 12
- .equiv DECOR_PRETTY_CHAIR, 13
- .equiv DECOR_COMFORT_CHAIR, 14
- .equiv DECOR_RAGGED_CHAIR, 15
- .equiv DECOR_BRICK_CHAIR, 16
- .equiv DECOR_CAMP_CHAIR, 17
- .equiv DECOR_HARD_CHAIR, 18
- .equiv DECOR_RED_PLANT, 19
- .equiv DECOR_TROPICAL_PLANT, 20
- .equiv DECOR_PRETTY_FLOWERS, 21
- .equiv DECOR_COLORFUL_PLANT, 22
- .equiv DECOR_BIG_PLANT, 23
- .equiv DECOR_GORGEOUS_PLANT, 24
- .equiv DECOR_RED_BRICK, 25
- .equiv DECOR_YELLOW_BRICK, 26
- .equiv DECOR_BLUE_BRICK, 27
- .equiv DECOR_RED_BALLOON, 28
- .equiv DECOR_BLUE_BALLOON, 29
- .equiv DECOR_YELLOW_BALLOON, 30
- .equiv DECOR_RED_TENT, 31
- .equiv DECOR_BLUE_TENT, 32
- .equiv DECOR_SOLID_BOARD, 33
- .equiv DECOR_SLIDE, 34
- .equiv DECOR_FENCE_LENGTH, 35
- .equiv DECOR_FENCE_WIDTH, 36
- .equiv DECOR_TIRE, 37
- .equiv DECOR_STAND, 38
- .equiv DECOR_MUD_BALL, 39
- .equiv DECOR_BREAKABLE_DOOR, 40
- .equiv DECOR_SAND_ORNAMENT, 41
- .equiv DECOR_SILVER_SHIELD, 42
- .equiv DECOR_GOLD_SHIELD, 43
- .equiv DECOR_GLASS_ORNAMENT, 44
- .equiv DECOR_TV, 45
- .equiv DECOR_ROUND_TV, 46
- .equiv DECOR_CUTE_TV, 47
- .equiv DECOR_GLITTER_MAT, 48
- .equiv DECOR_JUMP_MAT, 49
- .equiv DECOR_SPIN_MAT, 50
- .equiv DECOR_C_LOW_NOTE_MAT, 51
- .equiv DECOR_D_NOTE_MAT, 52
- .equiv DECOR_E_NOTE_MAT, 53
- .equiv DECOR_F_NOTE_MAT, 54
- .equiv DECOR_G_NOTE_MAT, 55
- .equiv DECOR_A_NOTE_MAT, 56
- .equiv DECOR_B_NOTE_MAT, 57
- .equiv DECOR_C_HIGH_NOTE_MAT, 58
- .equiv DECOR_SURF_MAT, 59
- .equiv DECOR_THUNDER_MAT, 60
- .equiv DECOR_FIRE_BLAST_MAT, 61
- .equiv DECOR_POWDER_SNOW_MAT, 62
- .equiv DECOR_ATTRACT_MAT, 63
- .equiv DECOR_FISSURE_MAT, 64
- .equiv DECOR_SPIKES_MAT, 65
- .equiv DECOR_BALL_POSTER, 66
- .equiv DECOR_GREEN_POSTER, 67
- .equiv DECOR_RED_POSTER, 68
- .equiv DECOR_BLUE_POSTER, 69
- .equiv DECOR_CUTE_POSTER, 70
- .equiv DECOR_PIKA_POSTER, 71
- .equiv DECOR_LONG_POSTER, 72
- .equiv DECOR_SEA_POSTER, 73
- .equiv DECOR_SKY_POSTER, 74
- .equiv DECOR_KISS_POSTER, 75
- .equiv DECOR_PICHU_DOLL, 76
- .equiv DECOR_PIKACHU_DOLL, 77
- .equiv DECOR_MARILL_DOLL, 78
- .equiv DECOR_TOGEPI_DOLL, 79
- .equiv DECOR_CYNDAQUIL_DOLL, 80
- .equiv DECOR_CHIKORITA_DOLL, 81
- .equiv DECOR_TOTODILE_DOLL, 82
- .equiv DECOR_JIGGLYPUFF_DOLL, 83
- .equiv DECOR_MEOWTH_DOLL, 84
- .equiv DECOR_CLEFAIRY_DOLL, 85
- .equiv DECOR_DITTO_DOLL, 86
- .equiv DECOR_SMOOCHUM_DOLL, 87
- .equiv DECOR_TREECKO_DOLL, 88
- .equiv DECOR_TORCHIC_DOLL, 89
- .equiv DECOR_MUDKIP_DOLL, 90
- .equiv DECOR_DUSKULL_DOLL, 91
- .equiv DECOR_WYNAUT_DOLL, 92
- .equiv DECOR_BALTOY_DOLL, 93
- .equiv DECOR_KECLEON_DOLL, 94
- .equiv DECOR_AZURILL_DOLL, 95
- .equiv DECOR_SKITTY_DOLL, 96
- .equiv DECOR_SWABLU_DOLL, 97
- .equiv DECOR_GULPIN_DOLL, 98
- .equiv DECOR_LOTAD_DOLL, 99
- .equiv DECOR_SEEDOT_DOLL, 100
- .equiv DECOR_PIKA_CUSHION, 101
- .equiv DECOR_ROUND_CUSHION, 102
- .equiv DECOR_KISS_CUSHION, 103
- .equiv DECOR_ZIGZAG_CUSHION, 104
- .equiv DECOR_SPIN_CUSHION, 105
- .equiv DECOR_DIAMOND_CUSHION, 106
- .equiv DECOR_BALL_CUSHION, 107
- .equiv DECOR_GRASS_CUSHION, 108
- .equiv DECOR_FIRE_CUSHION, 109
- .equiv DECOR_WATER_CUSHION, 110
- .equiv DECOR_SNORLAX_DOLL, 111
- .equiv DECOR_RHYDON_DOLL, 112
- .equiv DECOR_LAPRAS_DOLL, 113
- .equiv DECOR_VENUSAUR_DOLL, 114
- .equiv DECOR_CHARIZARD_DOLL, 115
- .equiv DECOR_BLASTOISE_DOLL, 116
- .equiv DECOR_WAILMER_DOLL, 117
- .equiv DECOR_REGIROCK_DOLL, 118
- .equiv DECOR_REGICE_DOLL, 119
- .equiv DECOR_REGISTEEL_DOLL, 120
diff --git a/constants/easy_chat_constants.inc b/constants/easy_chat_constants.inc
deleted file mode 100644
index 69639769d..000000000
--- a/constants/easy_chat_constants.inc
+++ /dev/null
@@ -1,1051 +0,0 @@
- .set EC_GROUP_POKEMON, 0x0
- .set EC_GROUP_TRAINER, 0x1
- .set EC_GROUP_STATUS, 0x2
- .set EC_GROUP_BATTLE, 0x3
- .set EC_GROUP_GREETINGS, 0x4
- .set EC_GROUP_PEOPLE, 0x5
- .set EC_GROUP_VOICES, 0x6
- .set EC_GROUP_SPEECH, 0x7
- .set EC_GROUP_ENDINGS, 0x8
- .set EC_GROUP_FEELINGS, 0x9
- .set EC_GROUP_CONDITIONS, 0xa
- .set EC_GROUP_ACTIONS, 0xb
- .set EC_GROUP_LIFESTYLE, 0xc
- .set EC_GROUP_HOBBIES, 0xd
- .set EC_GROUP_TIME, 0xe
- .set EC_GROUP_MISC, 0xf
- .set EC_GROUP_ADJECTIVES, 0x10
- .set EC_GROUP_EVENTS, 0x11
- .set EC_GROUP_MOVE_1, 0x12
- .set EC_GROUP_MOVE_2, 0x13
- .set EC_GROUP_TRENDY_SAYING, 0x14
- .set EC_GROUP_POKEMON_2, 0x15
-@ TRAINER
- .set EC_WORD_I_CHOOSE_YOU, (EC_GROUP_TRAINER << 9) | 0x0
- .set EC_WORD_GOTCHA, (EC_GROUP_TRAINER << 9) | 0x1
- .set EC_WORD_TRADE, (EC_GROUP_TRAINER << 9) | 0x2
- .set EC_WORD_SAPPHIRE, (EC_GROUP_TRAINER << 9) | 0x3
- .set EC_WORD_EVOLVE, (EC_GROUP_TRAINER << 9) | 0x4
- .set EC_WORD_ENCYCLOPEDIA, (EC_GROUP_TRAINER << 9) | 0x5
- .set EC_WORD_NATURE, (EC_GROUP_TRAINER << 9) | 0x6
- .set EC_WORD_CENTER, (EC_GROUP_TRAINER << 9) | 0x7
- .set EC_WORD_EGG, (EC_GROUP_TRAINER << 9) | 0x8
- .set EC_WORD_LINK, (EC_GROUP_TRAINER << 9) | 0x9
- .set EC_WORD_SP_ABILITY, (EC_GROUP_TRAINER << 9) | 0xa
- .set EC_WORD_TRAINER, (EC_GROUP_TRAINER << 9) | 0xb
- .set EC_WORD_VERSION, (EC_GROUP_TRAINER << 9) | 0xc
- .set EC_WORD_POKENAV, (EC_GROUP_TRAINER << 9) | 0xd
- .set EC_WORD_POKEMON, (EC_GROUP_TRAINER << 9) | 0xe
- .set EC_WORD_GET, (EC_GROUP_TRAINER << 9) | 0xf
- .set EC_WORD_POKEDEX, (EC_GROUP_TRAINER << 9) | 0x10
- .set EC_WORD_RUBY, (EC_GROUP_TRAINER << 9) | 0x11
- .set EC_WORD_LEVEL, (EC_GROUP_TRAINER << 9) | 0x12
-
-@ STATUS
- .set EC_WORD_DARK, (EC_GROUP_STATUS << 9) | 0x0
- .set EC_WORD_STENCH, (EC_GROUP_STATUS << 9) | 0x1
- .set EC_WORD_THICK_FAT, (EC_GROUP_STATUS << 9) | 0x2
- .set EC_WORD_RAIN_DISH, (EC_GROUP_STATUS << 9) | 0x3
- .set EC_WORD_DRIZZLE, (EC_GROUP_STATUS << 9) | 0x4
- .set EC_WORD_ARENA_TRAP, (EC_GROUP_STATUS << 9) | 0x5
- .set EC_WORD_INTIMIDATE, (EC_GROUP_STATUS << 9) | 0x6
- .set EC_WORD_ROCK_HEAD, (EC_GROUP_STATUS << 9) | 0x7
- .set EC_WORD_COLOR, (EC_GROUP_STATUS << 9) | 0x8
- .set EC_WORD_ALT_COLOR, (EC_GROUP_STATUS << 9) | 0x9
- .set EC_WORD_ROCK, (EC_GROUP_STATUS << 9) | 0xa
- .set EC_WORD_BEAUTIFUL, (EC_GROUP_STATUS << 9) | 0xb
- .set EC_WORD_BEAUTY, (EC_GROUP_STATUS << 9) | 0xc
- .set EC_WORD_AIR_LOCK, (EC_GROUP_STATUS << 9) | 0xd
- .set EC_WORD_PSYCHIC, (EC_GROUP_STATUS << 9) | 0xe
- .set EC_WORD_HYPER_CUTTER, (EC_GROUP_STATUS << 9) | 0xf
- .set EC_WORD_FIGHTING, (EC_GROUP_STATUS << 9) | 0x10
- .set EC_WORD_SHADOW_TAG, (EC_GROUP_STATUS << 9) | 0x11
- .set EC_WORD_SMART, (EC_GROUP_STATUS << 9) | 0x12
- .set EC_WORD_SMARTNESS, (EC_GROUP_STATUS << 9) | 0x13
- .set EC_WORD_SPEED_BOOST, (EC_GROUP_STATUS << 9) | 0x14
- .set EC_WORD_COOL, (EC_GROUP_STATUS << 9) | 0x15
- .set EC_WORD_COOLNESS, (EC_GROUP_STATUS << 9) | 0x16
- .set EC_WORD_BATTLE_ARMOR, (EC_GROUP_STATUS << 9) | 0x17
- .set EC_WORD_CUTE, (EC_GROUP_STATUS << 9) | 0x18
- .set EC_WORD_CUTENESS, (EC_GROUP_STATUS << 9) | 0x19
- .set EC_WORD_STURDY, (EC_GROUP_STATUS << 9) | 0x1a
- .set EC_WORD_SUCTION_CUPS, (EC_GROUP_STATUS << 9) | 0x1b
- .set EC_WORD_GRASS, (EC_GROUP_STATUS << 9) | 0x1c
- .set EC_WORD_CLEAR_BODY, (EC_GROUP_STATUS << 9) | 0x1d
- .set EC_WORD_TORRENT, (EC_GROUP_STATUS << 9) | 0x1e
- .set EC_WORD_GHOST, (EC_GROUP_STATUS << 9) | 0x1f
- .set EC_WORD_ICE, (EC_GROUP_STATUS << 9) | 0x20
- .set EC_WORD_GUTS, (EC_GROUP_STATUS << 9) | 0x21
- .set EC_WORD_ROUGH_SKIN, (EC_GROUP_STATUS << 9) | 0x22
- .set EC_WORD_SHELL_ARMOR, (EC_GROUP_STATUS << 9) | 0x23
- .set EC_WORD_NATURAL_CURE, (EC_GROUP_STATUS << 9) | 0x24
- .set EC_WORD_DAMP, (EC_GROUP_STATUS << 9) | 0x25
- .set EC_WORD_GROUND, (EC_GROUP_STATUS << 9) | 0x26
- .set EC_WORD_LIMBER, (EC_GROUP_STATUS << 9) | 0x27
- .set EC_WORD_MAGNET_PULL, (EC_GROUP_STATUS << 9) | 0x28
- .set EC_WORD_WHITE_SMOKE, (EC_GROUP_STATUS << 9) | 0x29
- .set EC_WORD_SYNCHRONIZE, (EC_GROUP_STATUS << 9) | 0x2a
- .set EC_WORD_OVERGROW, (EC_GROUP_STATUS << 9) | 0x2b
- .set EC_WORD_SWIFT_SWIM, (EC_GROUP_STATUS << 9) | 0x2c
- .set EC_WORD_SAND_STREAM, (EC_GROUP_STATUS << 9) | 0x2d
- .set EC_WORD_SAND_VEIL, (EC_GROUP_STATUS << 9) | 0x2e
- .set EC_WORD_KEEN_EYE, (EC_GROUP_STATUS << 9) | 0x2f
- .set EC_WORD_INNER_FOCUS, (EC_GROUP_STATUS << 9) | 0x30
- .set EC_WORD_STATIC, (EC_GROUP_STATUS << 9) | 0x31
- .set EC_WORD_TYPE, (EC_GROUP_STATUS << 9) | 0x32
- .set EC_WORD_TOUGH, (EC_GROUP_STATUS << 9) | 0x33
- .set EC_WORD_TOUGHNESS, (EC_GROUP_STATUS << 9) | 0x34
- .set EC_WORD_SHED_SKIN, (EC_GROUP_STATUS << 9) | 0x35
- .set EC_WORD_HUGE_POWER, (EC_GROUP_STATUS << 9) | 0x36
- .set EC_WORD_VOLT_ABSORB, (EC_GROUP_STATUS << 9) | 0x37
- .set EC_WORD_WATER_ABSORB, (EC_GROUP_STATUS << 9) | 0x38
- .set EC_WORD_ELECTRIC, (EC_GROUP_STATUS << 9) | 0x39
- .set EC_WORD_FORECAST, (EC_GROUP_STATUS << 9) | 0x3a
- .set EC_WORD_SERENE_GRACE, (EC_GROUP_STATUS << 9) | 0x3b
- .set EC_WORD_POISON, (EC_GROUP_STATUS << 9) | 0x3c
- .set EC_WORD_POISON_POINT, (EC_GROUP_STATUS << 9) | 0x3d
- .set EC_WORD_DRAGON, (EC_GROUP_STATUS << 9) | 0x3e
- .set EC_WORD_TRACE, (EC_GROUP_STATUS << 9) | 0x3f
- .set EC_WORD_OBLIVIOUS, (EC_GROUP_STATUS << 9) | 0x40
- .set EC_WORD_TRUANT, (EC_GROUP_STATUS << 9) | 0x41
- .set EC_WORD_RUN_AWAY, (EC_GROUP_STATUS << 9) | 0x42
- .set EC_WORD_STICKY_HOLD, (EC_GROUP_STATUS << 9) | 0x43
- .set EC_WORD_CLOUD_NINE, (EC_GROUP_STATUS << 9) | 0x44
- .set EC_WORD_NORMAL, (EC_GROUP_STATUS << 9) | 0x45
- .set EC_WORD_STEEL, (EC_GROUP_STATUS << 9) | 0x46
- .set EC_WORD_ILLUMINATE, (EC_GROUP_STATUS << 9) | 0x47
- .set EC_WORD_EARLY_BIRD, (EC_GROUP_STATUS << 9) | 0x48
- .set EC_WORD_HUSTLE, (EC_GROUP_STATUS << 9) | 0x49
- .set EC_WORD_SHINE, (EC_GROUP_STATUS << 9) | 0x4a
- .set EC_WORD_FLYING, (EC_GROUP_STATUS << 9) | 0x4b
- .set EC_WORD_DROUGHT, (EC_GROUP_STATUS << 9) | 0x4c
- .set EC_WORD_LIGHTNINGROD, (EC_GROUP_STATUS << 9) | 0x4d
- .set EC_WORD_COMPOUNDEYES, (EC_GROUP_STATUS << 9) | 0x4e
- .set EC_WORD_MARVEL_SCALE, (EC_GROUP_STATUS << 9) | 0x4f
- .set EC_WORD_WONDER_GUARD, (EC_GROUP_STATUS << 9) | 0x50
- .set EC_WORD_INSOMNIA, (EC_GROUP_STATUS << 9) | 0x51
- .set EC_WORD_LEVITATE, (EC_GROUP_STATUS << 9) | 0x52
- .set EC_WORD_PLUS, (EC_GROUP_STATUS << 9) | 0x53
- .set EC_WORD_PRESSURE, (EC_GROUP_STATUS << 9) | 0x54
- .set EC_WORD_LIQUID_OOZE, (EC_GROUP_STATUS << 9) | 0x55
- .set EC_WORD_COLOR_CHANGE, (EC_GROUP_STATUS << 9) | 0x56
- .set EC_WORD_SOUNDPROOF, (EC_GROUP_STATUS << 9) | 0x57
- .set EC_WORD_EFFECT_SPORE, (EC_GROUP_STATUS << 9) | 0x58
- .set EC_WORD_PKRS, (EC_GROUP_STATUS << 9) | 0x59
- .set EC_WORD_FIRE, (EC_GROUP_STATUS << 9) | 0x5a
- .set EC_WORD_FLAME_BODY, (EC_GROUP_STATUS << 9) | 0x5b
- .set EC_WORD_MINUS, (EC_GROUP_STATUS << 9) | 0x5c
- .set EC_WORD_OWN_TEMPO, (EC_GROUP_STATUS << 9) | 0x5d
- .set EC_WORD_MAGMA_ARMOR, (EC_GROUP_STATUS << 9) | 0x5e
- .set EC_WORD_WATER, (EC_GROUP_STATUS << 9) | 0x5f
- .set EC_WORD_WATER_VEIL, (EC_GROUP_STATUS << 9) | 0x60
- .set EC_WORD_BUG, (EC_GROUP_STATUS << 9) | 0x61
- .set EC_WORD_SWARM, (EC_GROUP_STATUS << 9) | 0x62
- .set EC_WORD_CUTE_CHARM, (EC_GROUP_STATUS << 9) | 0x63
- .set EC_WORD_IMMUNITY, (EC_GROUP_STATUS << 9) | 0x64
- .set EC_WORD_BLAZE, (EC_GROUP_STATUS << 9) | 0x65
- .set EC_WORD_PICKUP, (EC_GROUP_STATUS << 9) | 0x66
- .set EC_WORD_PATTERN, (EC_GROUP_STATUS << 9) | 0x67
- .set EC_WORD_FLASH_FIRE, (EC_GROUP_STATUS << 9) | 0x68
- .set EC_WORD_VITAL_SPIRIT, (EC_GROUP_STATUS << 9) | 0x69
- .set EC_WORD_CHLOROPHYLL, (EC_GROUP_STATUS << 9) | 0x6a
- .set EC_WORD_PURE_POWER, (EC_GROUP_STATUS << 9) | 0x6b
- .set EC_WORD_SHIELD_DUST, (EC_GROUP_STATUS << 9) | 0x6c
-
-@ BATTLE
- .set EC_WORD_MATCH_UP, (EC_GROUP_BATTLE << 9) | 0x0
- .set EC_WORD_GO, (EC_GROUP_BATTLE << 9) | 0x1
- .set EC_WORD_NO_1, (EC_GROUP_BATTLE << 9) | 0x2
- .set EC_WORD_DECIDE, (EC_GROUP_BATTLE << 9) | 0x3
- .set EC_WORD_LET_ME_WIN, (EC_GROUP_BATTLE << 9) | 0x4
- .set EC_WORD_WINS, (EC_GROUP_BATTLE << 9) | 0x5
- .set EC_WORD_WIN, (EC_GROUP_BATTLE << 9) | 0x6
- .set EC_WORD_WON, (EC_GROUP_BATTLE << 9) | 0x7
- .set EC_WORD_IF_I_WIN, (EC_GROUP_BATTLE << 9) | 0x8
- .set EC_WORD_WHEN_I_WIN, (EC_GROUP_BATTLE << 9) | 0x9
- .set EC_WORD_CAN_T_WIN, (EC_GROUP_BATTLE << 9) | 0xa
- .set EC_WORD_CAN_WIN, (EC_GROUP_BATTLE << 9) | 0xb
- .set EC_WORD_NO_MATCH, (EC_GROUP_BATTLE << 9) | 0xc
- .set EC_WORD_SPIRIT, (EC_GROUP_BATTLE << 9) | 0xd
- .set EC_WORD_DECIDED, (EC_GROUP_BATTLE << 9) | 0xe
- .set EC_WORD_TRUMP_CARD, (EC_GROUP_BATTLE << 9) | 0xf
- .set EC_WORD_TAKE_THAT, (EC_GROUP_BATTLE << 9) | 0x10
- .set EC_WORD_COME_ON, (EC_GROUP_BATTLE << 9) | 0x11
- .set EC_WORD_ATTACK, (EC_GROUP_BATTLE << 9) | 0x12
- .set EC_WORD_SURRENDER, (EC_GROUP_BATTLE << 9) | 0x13
- .set EC_WORD_GUTSY, (EC_GROUP_BATTLE << 9) | 0x14
- .set EC_WORD_TALENT, (EC_GROUP_BATTLE << 9) | 0x15
- .set EC_WORD_STRATEGY, (EC_GROUP_BATTLE << 9) | 0x16
- .set EC_WORD_SMITE, (EC_GROUP_BATTLE << 9) | 0x17
- .set EC_WORD_MATCH, (EC_GROUP_BATTLE << 9) | 0x18
- .set EC_WORD_VICTORY, (EC_GROUP_BATTLE << 9) | 0x19
- .set EC_WORD_OFFENSIVE, (EC_GROUP_BATTLE << 9) | 0x1a
- .set EC_WORD_SENSE, (EC_GROUP_BATTLE << 9) | 0x1b
- .set EC_WORD_VERSUS, (EC_GROUP_BATTLE << 9) | 0x1c
- .set EC_WORD_FIGHTS, (EC_GROUP_BATTLE << 9) | 0x1d
- .set EC_WORD_POWER, (EC_GROUP_BATTLE << 9) | 0x1e
- .set EC_WORD_CHALLENGE, (EC_GROUP_BATTLE << 9) | 0x1f
- .set EC_WORD_STRONG, (EC_GROUP_BATTLE << 9) | 0x20
- .set EC_WORD_TOO_STRONG, (EC_GROUP_BATTLE << 9) | 0x21
- .set EC_WORD_GO_EASY, (EC_GROUP_BATTLE << 9) | 0x22
- .set EC_WORD_FOE, (EC_GROUP_BATTLE << 9) | 0x23
- .set EC_WORD_GENIUS, (EC_GROUP_BATTLE << 9) | 0x24
- .set EC_WORD_LEGEND, (EC_GROUP_BATTLE << 9) | 0x25
- .set EC_WORD_ESCAPE, (EC_GROUP_BATTLE << 9) | 0x26
- .set EC_WORD_AIM, (EC_GROUP_BATTLE << 9) | 0x27
- .set EC_WORD_BATTLE, (EC_GROUP_BATTLE << 9) | 0x28
- .set EC_WORD_FIGHT, (EC_GROUP_BATTLE << 9) | 0x29
- .set EC_WORD_RESUSCITATE, (EC_GROUP_BATTLE << 9) | 0x2a
- .set EC_WORD_POINTS, (EC_GROUP_BATTLE << 9) | 0x2b
- .set EC_WORD_SERIOUS, (EC_GROUP_BATTLE << 9) | 0x2c
- .set EC_WORD_GIVE_UP, (EC_GROUP_BATTLE << 9) | 0x2d
- .set EC_WORD_LOSS, (EC_GROUP_BATTLE << 9) | 0x2e
- .set EC_WORD_IF_I_LOSE, (EC_GROUP_BATTLE << 9) | 0x2f
- .set EC_WORD_LOST, (EC_GROUP_BATTLE << 9) | 0x30
- .set EC_WORD_LOSE, (EC_GROUP_BATTLE << 9) | 0x31
- .set EC_WORD_GUARD, (EC_GROUP_BATTLE << 9) | 0x32
- .set EC_WORD_PARTNER, (EC_GROUP_BATTLE << 9) | 0x33
- .set EC_WORD_REJECT, (EC_GROUP_BATTLE << 9) | 0x34
- .set EC_WORD_ACCEPT, (EC_GROUP_BATTLE << 9) | 0x35
- .set EC_WORD_INVINCIBLE, (EC_GROUP_BATTLE << 9) | 0x36
- .set EC_WORD_RECEIVED, (EC_GROUP_BATTLE << 9) | 0x37
- .set EC_WORD_EASY, (EC_GROUP_BATTLE << 9) | 0x38
- .set EC_WORD_WEAK, (EC_GROUP_BATTLE << 9) | 0x39
- .set EC_WORD_TOO_WEAK, (EC_GROUP_BATTLE << 9) | 0x3a
- .set EC_WORD_PUSHOVER, (EC_GROUP_BATTLE << 9) | 0x3b
- .set EC_WORD_LEADER, (EC_GROUP_BATTLE << 9) | 0x3c
- .set EC_WORD_RULE, (EC_GROUP_BATTLE << 9) | 0x3d
- .set EC_WORD_MOVE, (EC_GROUP_BATTLE << 9) | 0x3e
-
-@ GREETINGS
- .set EC_WORD_THANKS, (EC_GROUP_GREETINGS << 9) | 0x0
- .set EC_WORD_YES, (EC_GROUP_GREETINGS << 9) | 0x1
- .set EC_WORD_HERE_GOES, (EC_GROUP_GREETINGS << 9) | 0x2
- .set EC_WORD_HERE_I_COME, (EC_GROUP_GREETINGS << 9) | 0x3
- .set EC_WORD_HERE_IT_IS, (EC_GROUP_GREETINGS << 9) | 0x4
- .set EC_WORD_YEAH, (EC_GROUP_GREETINGS << 9) | 0x5
- .set EC_WORD_WELCOME, (EC_GROUP_GREETINGS << 9) | 0x6
- .set EC_WORD_OI, (EC_GROUP_GREETINGS << 9) | 0x7
- .set EC_WORD_HOW_DO, (EC_GROUP_GREETINGS << 9) | 0x8
- .set EC_WORD_CONGRATS, (EC_GROUP_GREETINGS << 9) | 0x9
- .set EC_WORD_GIVE_ME, (EC_GROUP_GREETINGS << 9) | 0xa
- .set EC_WORD_SORRY, (EC_GROUP_GREETINGS << 9) | 0xb
- .set EC_WORD_APOLOGIZE, (EC_GROUP_GREETINGS << 9) | 0xc
- .set EC_WORD_FORGIVE, (EC_GROUP_GREETINGS << 9) | 0xd
- .set EC_WORD_HEY_THERE, (EC_GROUP_GREETINGS << 9) | 0xe
- .set EC_WORD_HELLO, (EC_GROUP_GREETINGS << 9) | 0xf
- .set EC_WORD_GOOD_BYE, (EC_GROUP_GREETINGS << 9) | 0x10
- .set EC_WORD_THANK_YOU, (EC_GROUP_GREETINGS << 9) | 0x11
- .set EC_WORD_I_VE_ARRIVED, (EC_GROUP_GREETINGS << 9) | 0x12
- .set EC_WORD_PARDON, (EC_GROUP_GREETINGS << 9) | 0x13
- .set EC_WORD_EXCUSE, (EC_GROUP_GREETINGS << 9) | 0x14
- .set EC_WORD_SEE_YA, (EC_GROUP_GREETINGS << 9) | 0x15
- .set EC_WORD_EXCUSE_ME, (EC_GROUP_GREETINGS << 9) | 0x16
- .set EC_WORD_WELL_THEN, (EC_GROUP_GREETINGS << 9) | 0x17
- .set EC_WORD_GO_AHEAD, (EC_GROUP_GREETINGS << 9) | 0x18
- .set EC_WORD_APPRECIATE, (EC_GROUP_GREETINGS << 9) | 0x19
- .set EC_WORD_HEY_QUES, (EC_GROUP_GREETINGS << 9) | 0x1a
- .set EC_WORD_WHAT_S_UP_QUES, (EC_GROUP_GREETINGS << 9) | 0x1b
- .set EC_WORD_HUH_QUES, (EC_GROUP_GREETINGS << 9) | 0x1c
- .set EC_WORD_NO, (EC_GROUP_GREETINGS << 9) | 0x1d
- .set EC_WORD_HI, (EC_GROUP_GREETINGS << 9) | 0x1e
- .set EC_WORD_YEAH_YEAH, (EC_GROUP_GREETINGS << 9) | 0x1f
- .set EC_WORD_BYE_BYE, (EC_GROUP_GREETINGS << 9) | 0x20
- .set EC_WORD_MEET_YOU, (EC_GROUP_GREETINGS << 9) | 0x21
- .set EC_WORD_HEY, (EC_GROUP_GREETINGS << 9) | 0x22
- .set EC_WORD_SMELL, (EC_GROUP_GREETINGS << 9) | 0x23
- .set EC_WORD_LISTENING, (EC_GROUP_GREETINGS << 9) | 0x24
- .set EC_WORD_HOO_HAH, (EC_GROUP_GREETINGS << 9) | 0x25
- .set EC_WORD_YAHOO, (EC_GROUP_GREETINGS << 9) | 0x26
- .set EC_WORD_YO, (EC_GROUP_GREETINGS << 9) | 0x27
- .set EC_WORD_COME_OVER, (EC_GROUP_GREETINGS << 9) | 0x28
- .set EC_WORD_COUNT_ON, (EC_GROUP_GREETINGS << 9) | 0x29
-
-@ PEOPLE
- .set EC_WORD_OPPONENT, (EC_GROUP_PEOPLE << 9) | 0x0
- .set EC_WORD_I, (EC_GROUP_PEOPLE << 9) | 0x1
- .set EC_WORD_YOU, (EC_GROUP_PEOPLE << 9) | 0x2
- .set EC_WORD_YOURS, (EC_GROUP_PEOPLE << 9) | 0x3
- .set EC_WORD_SON, (EC_GROUP_PEOPLE << 9) | 0x4
- .set EC_WORD_YOUR, (EC_GROUP_PEOPLE << 9) | 0x5
- .set EC_WORD_YOU_RE, (EC_GROUP_PEOPLE << 9) | 0x6
- .set EC_WORD_YOU_VE, (EC_GROUP_PEOPLE << 9) | 0x7
- .set EC_WORD_MOTHER, (EC_GROUP_PEOPLE << 9) | 0x8
- .set EC_WORD_GRANDFATHER, (EC_GROUP_PEOPLE << 9) | 0x9
- .set EC_WORD_UNCLE, (EC_GROUP_PEOPLE << 9) | 0xa
- .set EC_WORD_FATHER, (EC_GROUP_PEOPLE << 9) | 0xb
- .set EC_WORD_BOY, (EC_GROUP_PEOPLE << 9) | 0xc
- .set EC_WORD_ADULT, (EC_GROUP_PEOPLE << 9) | 0xd
- .set EC_WORD_BROTHER, (EC_GROUP_PEOPLE << 9) | 0xe
- .set EC_WORD_SISTER, (EC_GROUP_PEOPLE << 9) | 0xf
- .set EC_WORD_GRANDMOTHER, (EC_GROUP_PEOPLE << 9) | 0x10
- .set EC_WORD_AUNT, (EC_GROUP_PEOPLE << 9) | 0x11
- .set EC_WORD_PARENT, (EC_GROUP_PEOPLE << 9) | 0x12
- .set EC_WORD_MAN, (EC_GROUP_PEOPLE << 9) | 0x13
- .set EC_WORD_ME, (EC_GROUP_PEOPLE << 9) | 0x14
- .set EC_WORD_GIRL, (EC_GROUP_PEOPLE << 9) | 0x15
- .set EC_WORD_BABE, (EC_GROUP_PEOPLE << 9) | 0x16
- .set EC_WORD_FAMILY, (EC_GROUP_PEOPLE << 9) | 0x17
- .set EC_WORD_HER, (EC_GROUP_PEOPLE << 9) | 0x18
- .set EC_WORD_HIM, (EC_GROUP_PEOPLE << 9) | 0x19
- .set EC_WORD_HE, (EC_GROUP_PEOPLE << 9) | 0x1a
- .set EC_WORD_PLACE, (EC_GROUP_PEOPLE << 9) | 0x1b
- .set EC_WORD_DAUGHTER, (EC_GROUP_PEOPLE << 9) | 0x1c
- .set EC_WORD_HIS, (EC_GROUP_PEOPLE << 9) | 0x1d
- .set EC_WORD_HE_S, (EC_GROUP_PEOPLE << 9) | 0x1e
- .set EC_WORD_AREN_T, (EC_GROUP_PEOPLE << 9) | 0x1f
- .set EC_WORD_SIBLINGS, (EC_GROUP_PEOPLE << 9) | 0x20
- .set EC_WORD_KID, (EC_GROUP_PEOPLE << 9) | 0x21
- .set EC_WORD_CHILDREN, (EC_GROUP_PEOPLE << 9) | 0x22
- .set EC_WORD_MR, (EC_GROUP_PEOPLE << 9) | 0x23
- .set EC_WORD_MRS, (EC_GROUP_PEOPLE << 9) | 0x24
- .set EC_WORD_MYSELF, (EC_GROUP_PEOPLE << 9) | 0x25
- .set EC_WORD_I_WAS, (EC_GROUP_PEOPLE << 9) | 0x26
- .set EC_WORD_TO_ME, (EC_GROUP_PEOPLE << 9) | 0x27
- .set EC_WORD_MY, (EC_GROUP_PEOPLE << 9) | 0x28
- .set EC_WORD_I_AM, (EC_GROUP_PEOPLE << 9) | 0x29
- .set EC_WORD_I_VE, (EC_GROUP_PEOPLE << 9) | 0x2a
- .set EC_WORD_WHO, (EC_GROUP_PEOPLE << 9) | 0x2b
- .set EC_WORD_SOMEONE, (EC_GROUP_PEOPLE << 9) | 0x2c
- .set EC_WORD_WHO_WAS, (EC_GROUP_PEOPLE << 9) | 0x2d
- .set EC_WORD_TO_WHOM, (EC_GROUP_PEOPLE << 9) | 0x2e
- .set EC_WORD_WHOSE, (EC_GROUP_PEOPLE << 9) | 0x2f
- .set EC_WORD_WHO_IS, (EC_GROUP_PEOPLE << 9) | 0x30
- .set EC_WORD_IT_S, (EC_GROUP_PEOPLE << 9) | 0x31
- .set EC_WORD_LADY, (EC_GROUP_PEOPLE << 9) | 0x32
- .set EC_WORD_FRIEND, (EC_GROUP_PEOPLE << 9) | 0x33
- .set EC_WORD_ALLY, (EC_GROUP_PEOPLE << 9) | 0x34
- .set EC_WORD_PERSON, (EC_GROUP_PEOPLE << 9) | 0x35
- .set EC_WORD_DUDE, (EC_GROUP_PEOPLE << 9) | 0x36
- .set EC_WORD_THEY, (EC_GROUP_PEOPLE << 9) | 0x37
- .set EC_WORD_THEY_WERE, (EC_GROUP_PEOPLE << 9) | 0x38
- .set EC_WORD_TO_THEM, (EC_GROUP_PEOPLE << 9) | 0x39
- .set EC_WORD_THEIR, (EC_GROUP_PEOPLE << 9) | 0x3a
- .set EC_WORD_THEY_RE, (EC_GROUP_PEOPLE << 9) | 0x3b
- .set EC_WORD_THEY_VE, (EC_GROUP_PEOPLE << 9) | 0x3c
- .set EC_WORD_WE, (EC_GROUP_PEOPLE << 9) | 0x3d
- .set EC_WORD_BEEN, (EC_GROUP_PEOPLE << 9) | 0x3e
- .set EC_WORD_TO_US, (EC_GROUP_PEOPLE << 9) | 0x3f
- .set EC_WORD_OUR, (EC_GROUP_PEOPLE << 9) | 0x40
- .set EC_WORD_WE_RE, (EC_GROUP_PEOPLE << 9) | 0x41
- .set EC_WORD_RIVAL, (EC_GROUP_PEOPLE << 9) | 0x42
- .set EC_WORD_WE_VE, (EC_GROUP_PEOPLE << 9) | 0x43
- .set EC_WORD_WOMAN, (EC_GROUP_PEOPLE << 9) | 0x44
- .set EC_WORD_SHE, (EC_GROUP_PEOPLE << 9) | 0x45
- .set EC_WORD_SHE_WAS, (EC_GROUP_PEOPLE << 9) | 0x46
- .set EC_WORD_TO_HER, (EC_GROUP_PEOPLE << 9) | 0x47
- .set EC_WORD_HERS, (EC_GROUP_PEOPLE << 9) | 0x48
- .set EC_WORD_SHE_IS, (EC_GROUP_PEOPLE << 9) | 0x49
- .set EC_WORD_SOME, (EC_GROUP_PEOPLE << 9) | 0x4a
-
-@ VOICES
- .set EC_WORD_EXCL, (EC_GROUP_VOICES << 9) | 0x0
- .set EC_WORD_EXCL_EXCL, (EC_GROUP_VOICES << 9) | 0x1
- .set EC_WORD_QUES_EXCL, (EC_GROUP_VOICES << 9) | 0x2
- .set EC_WORD_QUES, (EC_GROUP_VOICES << 9) | 0x3
- .set EC_WORD_ELLIPSIS, (EC_GROUP_VOICES << 9) | 0x4
- .set EC_WORD_ELLIPSIS_EXCL, (EC_GROUP_VOICES << 9) | 0x5
- .set EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, (EC_GROUP_VOICES << 9) | 0x6
- .set EC_WORD_DASH, (EC_GROUP_VOICES << 9) | 0x7
- .set EC_WORD_DASH_DASH_DASH, (EC_GROUP_VOICES << 9) | 0x8
- .set EC_WORD_UH_OH, (EC_GROUP_VOICES << 9) | 0x9
- .set EC_WORD_WAAAH, (EC_GROUP_VOICES << 9) | 0xa
- .set EC_WORD_AHAHA, (EC_GROUP_VOICES << 9) | 0xb
- .set EC_WORD_OH_QUES, (EC_GROUP_VOICES << 9) | 0xc
- .set EC_WORD_NOPE, (EC_GROUP_VOICES << 9) | 0xd
- .set EC_WORD_URGH, (EC_GROUP_VOICES << 9) | 0xe
- .set EC_WORD_HMM, (EC_GROUP_VOICES << 9) | 0xf
- .set EC_WORD_WHOAH, (EC_GROUP_VOICES << 9) | 0x10
- .set EC_WORD_WROOOAAR_EXCL, (EC_GROUP_VOICES << 9) | 0x11
- .set EC_WORD_WOW, (EC_GROUP_VOICES << 9) | 0x12
- .set EC_WORD_GIGGLE, (EC_GROUP_VOICES << 9) | 0x13
- .set EC_WORD_SIGH, (EC_GROUP_VOICES << 9) | 0x14
- .set EC_WORD_UNBELIEVABLE, (EC_GROUP_VOICES << 9) | 0x15
- .set EC_WORD_CRIES, (EC_GROUP_VOICES << 9) | 0x16
- .set EC_WORD_AGREE, (EC_GROUP_VOICES << 9) | 0x17
- .set EC_WORD_EH_QUES, (EC_GROUP_VOICES << 9) | 0x18
- .set EC_WORD_CRY, (EC_GROUP_VOICES << 9) | 0x19
- .set EC_WORD_EHEHE, (EC_GROUP_VOICES << 9) | 0x1a
- .set EC_WORD_OI_OI_OI, (EC_GROUP_VOICES << 9) | 0x1b
- .set EC_WORD_OH_YEAH, (EC_GROUP_VOICES << 9) | 0x1c
- .set EC_WORD_OH, (EC_GROUP_VOICES << 9) | 0x1d
- .set EC_WORD_OOPS, (EC_GROUP_VOICES << 9) | 0x1e
- .set EC_WORD_SHOCKED, (EC_GROUP_VOICES << 9) | 0x1f
- .set EC_WORD_EEK, (EC_GROUP_VOICES << 9) | 0x20
- .set EC_WORD_GRAAAH, (EC_GROUP_VOICES << 9) | 0x21
- .set EC_WORD_GWAHAHAHA, (EC_GROUP_VOICES << 9) | 0x22
- .set EC_WORD_WAY, (EC_GROUP_VOICES << 9) | 0x23
- .set EC_WORD_TCH, (EC_GROUP_VOICES << 9) | 0x24
- .set EC_WORD_HEHE, (EC_GROUP_VOICES << 9) | 0x25
- .set EC_WORD_HAH, (EC_GROUP_VOICES << 9) | 0x26
- .set EC_WORD_YUP, (EC_GROUP_VOICES << 9) | 0x27
- .set EC_WORD_HAHAHA, (EC_GROUP_VOICES << 9) | 0x28
- .set EC_WORD_AIYEEH, (EC_GROUP_VOICES << 9) | 0x29
- .set EC_WORD_HIYAH, (EC_GROUP_VOICES << 9) | 0x2a
- .set EC_WORD_FUFUFU, (EC_GROUP_VOICES << 9) | 0x2b
- .set EC_WORD_LOL, (EC_GROUP_VOICES << 9) | 0x2c
- .set EC_WORD_SNORT, (EC_GROUP_VOICES << 9) | 0x2d
- .set EC_WORD_HUMPH, (EC_GROUP_VOICES << 9) | 0x2e
- .set EC_WORD_HEHEHE, (EC_GROUP_VOICES << 9) | 0x2f
- .set EC_WORD_HEH, (EC_GROUP_VOICES << 9) | 0x30
- .set EC_WORD_HOHOHO, (EC_GROUP_VOICES << 9) | 0x31
- .set EC_WORD_UH_HUH, (EC_GROUP_VOICES << 9) | 0x32
- .set EC_WORD_OH_DEAR, (EC_GROUP_VOICES << 9) | 0x33
- .set EC_WORD_ARRGH, (EC_GROUP_VOICES << 9) | 0x34
- .set EC_WORD_MUFUFU, (EC_GROUP_VOICES << 9) | 0x35
- .set EC_WORD_MMM, (EC_GROUP_VOICES << 9) | 0x36
- .set EC_WORD_OH_KAY, (EC_GROUP_VOICES << 9) | 0x37
- .set EC_WORD_OKAY, (EC_GROUP_VOICES << 9) | 0x38
- .set EC_WORD_LALALA, (EC_GROUP_VOICES << 9) | 0x39
- .set EC_WORD_YAY, (EC_GROUP_VOICES << 9) | 0x3a
- .set EC_WORD_AWW, (EC_GROUP_VOICES << 9) | 0x3b
- .set EC_WORD_WOWEE, (EC_GROUP_VOICES << 9) | 0x3c
- .set EC_WORD_GWAH, (EC_GROUP_VOICES << 9) | 0x3d
- .set EC_WORD_WAHAHAHA, (EC_GROUP_VOICES << 9) | 0x3e
-
-@ SPEECH
- .set EC_WORD_LISTEN, (EC_GROUP_SPEECH << 9) | 0x0
- .set EC_WORD_NOT_VERY, (EC_GROUP_SPEECH << 9) | 0x1
- .set EC_WORD_MEAN, (EC_GROUP_SPEECH << 9) | 0x2
- .set EC_WORD_LIE, (EC_GROUP_SPEECH << 9) | 0x3
- .set EC_WORD_LAY, (EC_GROUP_SPEECH << 9) | 0x4
- .set EC_WORD_RECOMMEND, (EC_GROUP_SPEECH << 9) | 0x5
- .set EC_WORD_NITWIT, (EC_GROUP_SPEECH << 9) | 0x6
- .set EC_WORD_QUITE, (EC_GROUP_SPEECH << 9) | 0x7
- .set EC_WORD_FROM, (EC_GROUP_SPEECH << 9) | 0x8
- .set EC_WORD_FEELING, (EC_GROUP_SPEECH << 9) | 0x9
- .set EC_WORD_BUT, (EC_GROUP_SPEECH << 9) | 0xa
- .set EC_WORD_HOWEVER, (EC_GROUP_SPEECH << 9) | 0xb
- .set EC_WORD_CASE, (EC_GROUP_SPEECH << 9) | 0xc
- .set EC_WORD_THE, (EC_GROUP_SPEECH << 9) | 0xd
- .set EC_WORD_MISS, (EC_GROUP_SPEECH << 9) | 0xe
- .set EC_WORD_HOW, (EC_GROUP_SPEECH << 9) | 0xf
- .set EC_WORD_HIT, (EC_GROUP_SPEECH << 9) | 0x10
- .set EC_WORD_ENOUGH, (EC_GROUP_SPEECH << 9) | 0x11
- .set EC_WORD_A_LOT, (EC_GROUP_SPEECH << 9) | 0x12
- .set EC_WORD_A_LITTLE, (EC_GROUP_SPEECH << 9) | 0x13
- .set EC_WORD_ABSOLUTELY, (EC_GROUP_SPEECH << 9) | 0x14
- .set EC_WORD_AND, (EC_GROUP_SPEECH << 9) | 0x15
- .set EC_WORD_ONLY, (EC_GROUP_SPEECH << 9) | 0x16
- .set EC_WORD_AROUND, (EC_GROUP_SPEECH << 9) | 0x17
- .set EC_WORD_PROBABLY, (EC_GROUP_SPEECH << 9) | 0x18
- .set EC_WORD_IF, (EC_GROUP_SPEECH << 9) | 0x19
- .set EC_WORD_VERY, (EC_GROUP_SPEECH << 9) | 0x1a
- .set EC_WORD_A_TINY_BIT, (EC_GROUP_SPEECH << 9) | 0x1b
- .set EC_WORD_WILD, (EC_GROUP_SPEECH << 9) | 0x1c
- .set EC_WORD_THAT_S, (EC_GROUP_SPEECH << 9) | 0x1d
- .set EC_WORD_JUST, (EC_GROUP_SPEECH << 9) | 0x1e
- .set EC_WORD_EVEN_SO, (EC_GROUP_SPEECH << 9) | 0x1f
- .set EC_WORD_MUST_BE, (EC_GROUP_SPEECH << 9) | 0x20
- .set EC_WORD_NATURALLY, (EC_GROUP_SPEECH << 9) | 0x21
- .set EC_WORD_FOR_NOW, (EC_GROUP_SPEECH << 9) | 0x22
- .set EC_WORD_UNDERSTOOD, (EC_GROUP_SPEECH << 9) | 0x23
- .set EC_WORD_JOKING, (EC_GROUP_SPEECH << 9) | 0x24
- .set EC_WORD_READY, (EC_GROUP_SPEECH << 9) | 0x25
- .set EC_WORD_SOMETHING, (EC_GROUP_SPEECH << 9) | 0x26
- .set EC_WORD_SOMEHOW, (EC_GROUP_SPEECH << 9) | 0x27
- .set EC_WORD_ALTHOUGH, (EC_GROUP_SPEECH << 9) | 0x28
- .set EC_WORD_ALSO, (EC_GROUP_SPEECH << 9) | 0x29
- .set EC_WORD_PERFECT, (EC_GROUP_SPEECH << 9) | 0x2a
- .set EC_WORD_AS_MUCH_AS, (EC_GROUP_SPEECH << 9) | 0x2b
- .set EC_WORD_REALLY, (EC_GROUP_SPEECH << 9) | 0x2c
- .set EC_WORD_TRULY, (EC_GROUP_SPEECH << 9) | 0x2d
- .set EC_WORD_SERIOUSLY, (EC_GROUP_SPEECH << 9) | 0x2e
- .set EC_WORD_TOTALLY, (EC_GROUP_SPEECH << 9) | 0x2f
- .set EC_WORD_UNTIL, (EC_GROUP_SPEECH << 9) | 0x30
- .set EC_WORD_AS_IF, (EC_GROUP_SPEECH << 9) | 0x31
- .set EC_WORD_MOOD, (EC_GROUP_SPEECH << 9) | 0x32
- .set EC_WORD_RATHER, (EC_GROUP_SPEECH << 9) | 0x33
- .set EC_WORD_AWFULLY, (EC_GROUP_SPEECH << 9) | 0x34
- .set EC_WORD_MODE, (EC_GROUP_SPEECH << 9) | 0x35
- .set EC_WORD_MORE, (EC_GROUP_SPEECH << 9) | 0x36
- .set EC_WORD_TOO_LATE, (EC_GROUP_SPEECH << 9) | 0x37
- .set EC_WORD_FINALLY, (EC_GROUP_SPEECH << 9) | 0x38
- .set EC_WORD_ANY, (EC_GROUP_SPEECH << 9) | 0x39
- .set EC_WORD_INSTEAD, (EC_GROUP_SPEECH << 9) | 0x3a
- .set EC_WORD_FANTASTIC, (EC_GROUP_SPEECH << 9) | 0x3b
-
-@ ENDINGS
- .set EC_WORD_WILL, (EC_GROUP_ENDINGS << 9) | 0x0
- .set EC_WORD_WILL_BE_HERE, (EC_GROUP_ENDINGS << 9) | 0x1
- .set EC_WORD_OR, (EC_GROUP_ENDINGS << 9) | 0x2
- .set EC_WORD_TIMES, (EC_GROUP_ENDINGS << 9) | 0x3
- .set EC_WORD_WONDER, (EC_GROUP_ENDINGS << 9) | 0x4
- .set EC_WORD_IS_IT_QUES, (EC_GROUP_ENDINGS << 9) | 0x5
- .set EC_WORD_BE, (EC_GROUP_ENDINGS << 9) | 0x6
- .set EC_WORD_GIMME, (EC_GROUP_ENDINGS << 9) | 0x7
- .set EC_WORD_COULD, (EC_GROUP_ENDINGS << 9) | 0x8
- .set EC_WORD_LIKELY_TO, (EC_GROUP_ENDINGS << 9) | 0x9
- .set EC_WORD_WOULD, (EC_GROUP_ENDINGS << 9) | 0xa
- .set EC_WORD_IS, (EC_GROUP_ENDINGS << 9) | 0xb
- .set EC_WORD_ISN_T_IT_QUES, (EC_GROUP_ENDINGS << 9) | 0xc
- .set EC_WORD_LET_S, (EC_GROUP_ENDINGS << 9) | 0xd
- .set EC_WORD_OTHER, (EC_GROUP_ENDINGS << 9) | 0xe
- .set EC_WORD_ARE, (EC_GROUP_ENDINGS << 9) | 0xf
- .set EC_WORD_WAS, (EC_GROUP_ENDINGS << 9) | 0x10
- .set EC_WORD_WERE, (EC_GROUP_ENDINGS << 9) | 0x11
- .set EC_WORD_THOSE, (EC_GROUP_ENDINGS << 9) | 0x12
- .set EC_WORD_ISN_T, (EC_GROUP_ENDINGS << 9) | 0x13
- .set EC_WORD_WON_T, (EC_GROUP_ENDINGS << 9) | 0x14
- .set EC_WORD_CAN_T, (EC_GROUP_ENDINGS << 9) | 0x15
- .set EC_WORD_CAN, (EC_GROUP_ENDINGS << 9) | 0x16
- .set EC_WORD_DON_T, (EC_GROUP_ENDINGS << 9) | 0x17
- .set EC_WORD_DO, (EC_GROUP_ENDINGS << 9) | 0x18
- .set EC_WORD_DOES, (EC_GROUP_ENDINGS << 9) | 0x19
- .set EC_WORD_WHOM, (EC_GROUP_ENDINGS << 9) | 0x1a
- .set EC_WORD_WHICH, (EC_GROUP_ENDINGS << 9) | 0x1b
- .set EC_WORD_WASN_T, (EC_GROUP_ENDINGS << 9) | 0x1c
- .set EC_WORD_WEREN_T, (EC_GROUP_ENDINGS << 9) | 0x1d
- .set EC_WORD_HAVE, (EC_GROUP_ENDINGS << 9) | 0x1e
- .set EC_WORD_HAVEN_T, (EC_GROUP_ENDINGS << 9) | 0x1f
- .set EC_WORD_A, (EC_GROUP_ENDINGS << 9) | 0x20
- .set EC_WORD_AN, (EC_GROUP_ENDINGS << 9) | 0x21
- .set EC_WORD_NOT, (EC_GROUP_ENDINGS << 9) | 0x22
- .set EC_WORD_THERE, (EC_GROUP_ENDINGS << 9) | 0x23
- .set EC_WORD_OK_QUES, (EC_GROUP_ENDINGS << 9) | 0x24
- .set EC_WORD_SO, (EC_GROUP_ENDINGS << 9) | 0x25
- .set EC_WORD_MAYBE, (EC_GROUP_ENDINGS << 9) | 0x26
- .set EC_WORD_ABOUT, (EC_GROUP_ENDINGS << 9) | 0x27
- .set EC_WORD_OVER, (EC_GROUP_ENDINGS << 9) | 0x28
- .set EC_WORD_IT, (EC_GROUP_ENDINGS << 9) | 0x29
- .set EC_WORD_ALL, (EC_GROUP_ENDINGS << 9) | 0x2a
- .set EC_WORD_FOR, (EC_GROUP_ENDINGS << 9) | 0x2b
- .set EC_WORD_ON, (EC_GROUP_ENDINGS << 9) | 0x2c
- .set EC_WORD_OFF, (EC_GROUP_ENDINGS << 9) | 0x2d
- .set EC_WORD_AS, (EC_GROUP_ENDINGS << 9) | 0x2e
- .set EC_WORD_TO, (EC_GROUP_ENDINGS << 9) | 0x2f
- .set EC_WORD_WITH, (EC_GROUP_ENDINGS << 9) | 0x30
- .set EC_WORD_BETTER, (EC_GROUP_ENDINGS << 9) | 0x31
- .set EC_WORD_EVER, (EC_GROUP_ENDINGS << 9) | 0x32
- .set EC_WORD_SINCE, (EC_GROUP_ENDINGS << 9) | 0x33
- .set EC_WORD_OF, (EC_GROUP_ENDINGS << 9) | 0x34
- .set EC_WORD_BELONGS_TO, (EC_GROUP_ENDINGS << 9) | 0x35
- .set EC_WORD_AT, (EC_GROUP_ENDINGS << 9) | 0x36
- .set EC_WORD_IN, (EC_GROUP_ENDINGS << 9) | 0x37
- .set EC_WORD_OUT, (EC_GROUP_ENDINGS << 9) | 0x38
- .set EC_WORD_TOO, (EC_GROUP_ENDINGS << 9) | 0x39
- .set EC_WORD_LIKE, (EC_GROUP_ENDINGS << 9) | 0x3a
- .set EC_WORD_DID, (EC_GROUP_ENDINGS << 9) | 0x3b
- .set EC_WORD_DIDN_T, (EC_GROUP_ENDINGS << 9) | 0x3c
- .set EC_WORD_DOESN_T, (EC_GROUP_ENDINGS << 9) | 0x3d
- .set EC_WORD_WITHOUT, (EC_GROUP_ENDINGS << 9) | 0x3e
- .set EC_WORD_AFTER, (EC_GROUP_ENDINGS << 9) | 0x3f
- .set EC_WORD_BEFORE, (EC_GROUP_ENDINGS << 9) | 0x40
- .set EC_WORD_WHILE, (EC_GROUP_ENDINGS << 9) | 0x41
- .set EC_WORD_THAN, (EC_GROUP_ENDINGS << 9) | 0x42
- .set EC_WORD_ONCE, (EC_GROUP_ENDINGS << 9) | 0x43
- .set EC_WORD_ANYWHERE, (EC_GROUP_ENDINGS << 9) | 0x44
-
-@ FEELINGS
- .set EC_WORD_MEET, (EC_GROUP_FEELINGS << 9) | 0x0
- .set EC_WORD_PLAY, (EC_GROUP_FEELINGS << 9) | 0x1
- .set EC_WORD_HURRIED, (EC_GROUP_FEELINGS << 9) | 0x2
- .set EC_WORD_GOES, (EC_GROUP_FEELINGS << 9) | 0x3
- .set EC_WORD_GIDDY, (EC_GROUP_FEELINGS << 9) | 0x4
- .set EC_WORD_HAPPY, (EC_GROUP_FEELINGS << 9) | 0x5
- .set EC_WORD_HAPPINESS, (EC_GROUP_FEELINGS << 9) | 0x6
- .set EC_WORD_EXCITE, (EC_GROUP_FEELINGS << 9) | 0x7
- .set EC_WORD_IMPORTANT, (EC_GROUP_FEELINGS << 9) | 0x8
- .set EC_WORD_FUNNY, (EC_GROUP_FEELINGS << 9) | 0x9
- .set EC_WORD_GOT, (EC_GROUP_FEELINGS << 9) | 0xa
- .set EC_WORD_GO_HOME, (EC_GROUP_FEELINGS << 9) | 0xb
- .set EC_WORD_DISAPPOINTED, (EC_GROUP_FEELINGS << 9) | 0xc
- .set EC_WORD_DISAPPOINTS, (EC_GROUP_FEELINGS << 9) | 0xd
- .set EC_WORD_SAD, (EC_GROUP_FEELINGS << 9) | 0xe
- .set EC_WORD_TRY, (EC_GROUP_FEELINGS << 9) | 0xf
- .set EC_WORD_TRIES, (EC_GROUP_FEELINGS << 9) | 0x10
- .set EC_WORD_HEARS, (EC_GROUP_FEELINGS << 9) | 0x11
- .set EC_WORD_THINK, (EC_GROUP_FEELINGS << 9) | 0x12
- .set EC_WORD_HEAR, (EC_GROUP_FEELINGS << 9) | 0x13
- .set EC_WORD_WANTS, (EC_GROUP_FEELINGS << 9) | 0x14
- .set EC_WORD_MISHEARD, (EC_GROUP_FEELINGS << 9) | 0x15
- .set EC_WORD_DISLIKE, (EC_GROUP_FEELINGS << 9) | 0x16
- .set EC_WORD_ANGRY, (EC_GROUP_FEELINGS << 9) | 0x17
- .set EC_WORD_ANGER, (EC_GROUP_FEELINGS << 9) | 0x18
- .set EC_WORD_SCARY, (EC_GROUP_FEELINGS << 9) | 0x19
- .set EC_WORD_LONESOME, (EC_GROUP_FEELINGS << 9) | 0x1a
- .set EC_WORD_DISAPPOINT, (EC_GROUP_FEELINGS << 9) | 0x1b
- .set EC_WORD_JOY, (EC_GROUP_FEELINGS << 9) | 0x1c
- .set EC_WORD_GETS, (EC_GROUP_FEELINGS << 9) | 0x1d
- .set EC_WORD_NEVER, (EC_GROUP_FEELINGS << 9) | 0x1e
- .set EC_WORD_DARN, (EC_GROUP_FEELINGS << 9) | 0x1f
- .set EC_WORD_DOWNCAST, (EC_GROUP_FEELINGS << 9) | 0x20
- .set EC_WORD_INCREDIBLE, (EC_GROUP_FEELINGS << 9) | 0x21
- .set EC_WORD_LIKES, (EC_GROUP_FEELINGS << 9) | 0x22
- .set EC_WORD_DISLIKES, (EC_GROUP_FEELINGS << 9) | 0x23
- .set EC_WORD_BORING, (EC_GROUP_FEELINGS << 9) | 0x24
- .set EC_WORD_CARE, (EC_GROUP_FEELINGS << 9) | 0x25
- .set EC_WORD_CARES, (EC_GROUP_FEELINGS << 9) | 0x26
- .set EC_WORD_ALL_RIGHT, (EC_GROUP_FEELINGS << 9) | 0x27
- .set EC_WORD_ADORE, (EC_GROUP_FEELINGS << 9) | 0x28
- .set EC_WORD_DISASTER, (EC_GROUP_FEELINGS << 9) | 0x29
- .set EC_WORD_ENJOY, (EC_GROUP_FEELINGS << 9) | 0x2a
- .set EC_WORD_ENJOYS, (EC_GROUP_FEELINGS << 9) | 0x2b
- .set EC_WORD_EAT, (EC_GROUP_FEELINGS << 9) | 0x2c
- .set EC_WORD_LACKING, (EC_GROUP_FEELINGS << 9) | 0x2d
- .set EC_WORD_BAD, (EC_GROUP_FEELINGS << 9) | 0x2e
- .set EC_WORD_HARD, (EC_GROUP_FEELINGS << 9) | 0x2f
- .set EC_WORD_TERRIBLE, (EC_GROUP_FEELINGS << 9) | 0x30
- .set EC_WORD_SHOULD, (EC_GROUP_FEELINGS << 9) | 0x31
- .set EC_WORD_NICE, (EC_GROUP_FEELINGS << 9) | 0x32
- .set EC_WORD_DRINK, (EC_GROUP_FEELINGS << 9) | 0x33
- .set EC_WORD_SURPRISE, (EC_GROUP_FEELINGS << 9) | 0x34
- .set EC_WORD_FEAR, (EC_GROUP_FEELINGS << 9) | 0x35
- .set EC_WORD_WANT, (EC_GROUP_FEELINGS << 9) | 0x36
- .set EC_WORD_WAIT, (EC_GROUP_FEELINGS << 9) | 0x37
- .set EC_WORD_SATISFIED, (EC_GROUP_FEELINGS << 9) | 0x38
- .set EC_WORD_SEE, (EC_GROUP_FEELINGS << 9) | 0x39
- .set EC_WORD_RARE, (EC_GROUP_FEELINGS << 9) | 0x3a
- .set EC_WORD_NEGATIVE, (EC_GROUP_FEELINGS << 9) | 0x3b
- .set EC_WORD_DONE, (EC_GROUP_FEELINGS << 9) | 0x3c
- .set EC_WORD_DANGER, (EC_GROUP_FEELINGS << 9) | 0x3d
- .set EC_WORD_DEFEATED, (EC_GROUP_FEELINGS << 9) | 0x3e
- .set EC_WORD_BEAT, (EC_GROUP_FEELINGS << 9) | 0x3f
- .set EC_WORD_GREAT, (EC_GROUP_FEELINGS << 9) | 0x40
- .set EC_WORD_ROMANTIC, (EC_GROUP_FEELINGS << 9) | 0x41
- .set EC_WORD_QUESTION, (EC_GROUP_FEELINGS << 9) | 0x42
- .set EC_WORD_UNDERSTAND, (EC_GROUP_FEELINGS << 9) | 0x43
- .set EC_WORD_UNDERSTANDS, (EC_GROUP_FEELINGS << 9) | 0x44
-
-@ CONDITIONS
- .set EC_WORD_HOT, (EC_GROUP_CONDITIONS << 9) | 0x0
- .set EC_WORD_EXISTS, (EC_GROUP_CONDITIONS << 9) | 0x1
- .set EC_WORD_EXCESS, (EC_GROUP_CONDITIONS << 9) | 0x2
- .set EC_WORD_APPROVED, (EC_GROUP_CONDITIONS << 9) | 0x3
- .set EC_WORD_HAS, (EC_GROUP_CONDITIONS << 9) | 0x4
- .set EC_WORD_GOOD, (EC_GROUP_CONDITIONS << 9) | 0x5
- .set EC_WORD_LESS, (EC_GROUP_CONDITIONS << 9) | 0x6
- .set EC_WORD_MOMENTUM, (EC_GROUP_CONDITIONS << 9) | 0x7
- .set EC_WORD_GOING, (EC_GROUP_CONDITIONS << 9) | 0x8
- .set EC_WORD_WEIRD, (EC_GROUP_CONDITIONS << 9) | 0x9
- .set EC_WORD_BUSY, (EC_GROUP_CONDITIONS << 9) | 0xa
- .set EC_WORD_TOGETHER, (EC_GROUP_CONDITIONS << 9) | 0xb
- .set EC_WORD_FULL, (EC_GROUP_CONDITIONS << 9) | 0xc
- .set EC_WORD_ABSENT, (EC_GROUP_CONDITIONS << 9) | 0xd
- .set EC_WORD_BEING, (EC_GROUP_CONDITIONS << 9) | 0xe
- .set EC_WORD_NEED, (EC_GROUP_CONDITIONS << 9) | 0xf
- .set EC_WORD_TASTY, (EC_GROUP_CONDITIONS << 9) | 0x10
- .set EC_WORD_SKILLED, (EC_GROUP_CONDITIONS << 9) | 0x11
- .set EC_WORD_NOISY, (EC_GROUP_CONDITIONS << 9) | 0x12
- .set EC_WORD_BIG, (EC_GROUP_CONDITIONS << 9) | 0x13
- .set EC_WORD_LATE, (EC_GROUP_CONDITIONS << 9) | 0x14
- .set EC_WORD_CLOSE, (EC_GROUP_CONDITIONS << 9) | 0x15
- .set EC_WORD_DOCILE, (EC_GROUP_CONDITIONS << 9) | 0x16
- .set EC_WORD_AMUSING, (EC_GROUP_CONDITIONS << 9) | 0x17
- .set EC_WORD_ENTERTAINING, (EC_GROUP_CONDITIONS << 9) | 0x18
- .set EC_WORD_PERFECTION, (EC_GROUP_CONDITIONS << 9) | 0x19
- .set EC_WORD_PRETTY, (EC_GROUP_CONDITIONS << 9) | 0x1a
- .set EC_WORD_HEALTHY, (EC_GROUP_CONDITIONS << 9) | 0x1b
- .set EC_WORD_EXCELLENT, (EC_GROUP_CONDITIONS << 9) | 0x1c
- .set EC_WORD_UPSIDE_DOWN, (EC_GROUP_CONDITIONS << 9) | 0x1d
- .set EC_WORD_COLD, (EC_GROUP_CONDITIONS << 9) | 0x1e
- .set EC_WORD_REFRESHING, (EC_GROUP_CONDITIONS << 9) | 0x1f
- .set EC_WORD_UNAVOIDABLE, (EC_GROUP_CONDITIONS << 9) | 0x20
- .set EC_WORD_MUCH, (EC_GROUP_CONDITIONS << 9) | 0x21
- .set EC_WORD_OVERWHELMING, (EC_GROUP_CONDITIONS << 9) | 0x22
- .set EC_WORD_FABULOUS, (EC_GROUP_CONDITIONS << 9) | 0x23
- .set EC_WORD_ELSE, (EC_GROUP_CONDITIONS << 9) | 0x24
- .set EC_WORD_EXPENSIVE, (EC_GROUP_CONDITIONS << 9) | 0x25
- .set EC_WORD_CORRECT, (EC_GROUP_CONDITIONS << 9) | 0x26
- .set EC_WORD_IMPOSSIBLE, (EC_GROUP_CONDITIONS << 9) | 0x27
- .set EC_WORD_SMALL, (EC_GROUP_CONDITIONS << 9) | 0x28
- .set EC_WORD_DIFFERENT, (EC_GROUP_CONDITIONS << 9) | 0x29
- .set EC_WORD_TIRED, (EC_GROUP_CONDITIONS << 9) | 0x2a
- .set EC_WORD_SKILL, (EC_GROUP_CONDITIONS << 9) | 0x2b
- .set EC_WORD_TOP, (EC_GROUP_CONDITIONS << 9) | 0x2c
- .set EC_WORD_NON_STOP, (EC_GROUP_CONDITIONS << 9) | 0x2d
- .set EC_WORD_PREPOSTEROUS, (EC_GROUP_CONDITIONS << 9) | 0x2e
- .set EC_WORD_NONE, (EC_GROUP_CONDITIONS << 9) | 0x2f
- .set EC_WORD_NOTHING, (EC_GROUP_CONDITIONS << 9) | 0x30
- .set EC_WORD_NATURAL, (EC_GROUP_CONDITIONS << 9) | 0x31
- .set EC_WORD_BECOMES, (EC_GROUP_CONDITIONS << 9) | 0x32
- .set EC_WORD_LUKEWARM, (EC_GROUP_CONDITIONS << 9) | 0x33
- .set EC_WORD_FAST, (EC_GROUP_CONDITIONS << 9) | 0x34
- .set EC_WORD_LOW, (EC_GROUP_CONDITIONS << 9) | 0x35
- .set EC_WORD_AWFUL, (EC_GROUP_CONDITIONS << 9) | 0x36
- .set EC_WORD_ALONE, (EC_GROUP_CONDITIONS << 9) | 0x37
- .set EC_WORD_BORED, (EC_GROUP_CONDITIONS << 9) | 0x38
- .set EC_WORD_SECRET, (EC_GROUP_CONDITIONS << 9) | 0x39
- .set EC_WORD_MYSTERY, (EC_GROUP_CONDITIONS << 9) | 0x3a
- .set EC_WORD_LACKS, (EC_GROUP_CONDITIONS << 9) | 0x3b
- .set EC_WORD_BEST, (EC_GROUP_CONDITIONS << 9) | 0x3c
- .set EC_WORD_LOUSY, (EC_GROUP_CONDITIONS << 9) | 0x3d
- .set EC_WORD_MISTAKE, (EC_GROUP_CONDITIONS << 9) | 0x3e
- .set EC_WORD_KIND, (EC_GROUP_CONDITIONS << 9) | 0x3f
- .set EC_WORD_WELL, (EC_GROUP_CONDITIONS << 9) | 0x40
- .set EC_WORD_WEAKENED, (EC_GROUP_CONDITIONS << 9) | 0x41
- .set EC_WORD_SIMPLE, (EC_GROUP_CONDITIONS << 9) | 0x42
- .set EC_WORD_SEEMS, (EC_GROUP_CONDITIONS << 9) | 0x43
- .set EC_WORD_BADLY, (EC_GROUP_CONDITIONS << 9) | 0x44
-
-@ ACTIONS
- .set EC_WORD_MEETS, (EC_GROUP_ACTIONS << 9) | 0x0
- .set EC_WORD_CONCEDE, (EC_GROUP_ACTIONS << 9) | 0x1
- .set EC_WORD_GIVE, (EC_GROUP_ACTIONS << 9) | 0x2
- .set EC_WORD_GIVES, (EC_GROUP_ACTIONS << 9) | 0x3
- .set EC_WORD_PLAYED, (EC_GROUP_ACTIONS << 9) | 0x4
- .set EC_WORD_PLAYS, (EC_GROUP_ACTIONS << 9) | 0x5
- .set EC_WORD_COLLECT, (EC_GROUP_ACTIONS << 9) | 0x6
- .set EC_WORD_WALKING, (EC_GROUP_ACTIONS << 9) | 0x7
- .set EC_WORD_WALKS, (EC_GROUP_ACTIONS << 9) | 0x8
- .set EC_WORD_SAYS, (EC_GROUP_ACTIONS << 9) | 0x9
- .set EC_WORD_WENT, (EC_GROUP_ACTIONS << 9) | 0xa
- .set EC_WORD_SAID, (EC_GROUP_ACTIONS << 9) | 0xb
- .set EC_WORD_WAKE_UP, (EC_GROUP_ACTIONS << 9) | 0xc
- .set EC_WORD_WAKES_UP, (EC_GROUP_ACTIONS << 9) | 0xd
- .set EC_WORD_ANGERS, (EC_GROUP_ACTIONS << 9) | 0xe
- .set EC_WORD_TEACH, (EC_GROUP_ACTIONS << 9) | 0xf
- .set EC_WORD_TEACHES, (EC_GROUP_ACTIONS << 9) | 0x10
- .set EC_WORD_PLEASE, (EC_GROUP_ACTIONS << 9) | 0x11
- .set EC_WORD_LEARN, (EC_GROUP_ACTIONS << 9) | 0x12
- .set EC_WORD_CHANGE, (EC_GROUP_ACTIONS << 9) | 0x13
- .set EC_WORD_STORY, (EC_GROUP_ACTIONS << 9) | 0x14
- .set EC_WORD_TRUST, (EC_GROUP_ACTIONS << 9) | 0x15
- .set EC_WORD_LAVISH, (EC_GROUP_ACTIONS << 9) | 0x16
- .set EC_WORD_LISTENS, (EC_GROUP_ACTIONS << 9) | 0x17
- .set EC_WORD_HEARING, (EC_GROUP_ACTIONS << 9) | 0x18
- .set EC_WORD_TRAINS, (EC_GROUP_ACTIONS << 9) | 0x19
- .set EC_WORD_CHOOSE, (EC_GROUP_ACTIONS << 9) | 0x1a
- .set EC_WORD_COME, (EC_GROUP_ACTIONS << 9) | 0x1b
- .set EC_WORD_CAME, (EC_GROUP_ACTIONS << 9) | 0x1c
- .set EC_WORD_SEARCH, (EC_GROUP_ACTIONS << 9) | 0x1d
- .set EC_WORD_MAKE, (EC_GROUP_ACTIONS << 9) | 0x1e
- .set EC_WORD_CAUSE, (EC_GROUP_ACTIONS << 9) | 0x1f
- .set EC_WORD_KNOW, (EC_GROUP_ACTIONS << 9) | 0x20
- .set EC_WORD_KNOWS, (EC_GROUP_ACTIONS << 9) | 0x21
- .set EC_WORD_REFUSE, (EC_GROUP_ACTIONS << 9) | 0x22
- .set EC_WORD_STORES, (EC_GROUP_ACTIONS << 9) | 0x23
- .set EC_WORD_BRAG, (EC_GROUP_ACTIONS << 9) | 0x24
- .set EC_WORD_IGNORANT, (EC_GROUP_ACTIONS << 9) | 0x25
- .set EC_WORD_THINKS, (EC_GROUP_ACTIONS << 9) | 0x26
- .set EC_WORD_BELIEVE, (EC_GROUP_ACTIONS << 9) | 0x27
- .set EC_WORD_SLIDE, (EC_GROUP_ACTIONS << 9) | 0x28
- .set EC_WORD_EATS, (EC_GROUP_ACTIONS << 9) | 0x29
- .set EC_WORD_USE, (EC_GROUP_ACTIONS << 9) | 0x2a
- .set EC_WORD_USES, (EC_GROUP_ACTIONS << 9) | 0x2b
- .set EC_WORD_USING, (EC_GROUP_ACTIONS << 9) | 0x2c
- .set EC_WORD_COULDN_T, (EC_GROUP_ACTIONS << 9) | 0x2d
- .set EC_WORD_CAPABLE, (EC_GROUP_ACTIONS << 9) | 0x2e
- .set EC_WORD_DISAPPEAR, (EC_GROUP_ACTIONS << 9) | 0x2f
- .set EC_WORD_APPEAR, (EC_GROUP_ACTIONS << 9) | 0x30
- .set EC_WORD_THROW, (EC_GROUP_ACTIONS << 9) | 0x31
- .set EC_WORD_WORRY, (EC_GROUP_ACTIONS << 9) | 0x32
- .set EC_WORD_SLEPT, (EC_GROUP_ACTIONS << 9) | 0x33
- .set EC_WORD_SLEEP, (EC_GROUP_ACTIONS << 9) | 0x34
- .set EC_WORD_RELEASE, (EC_GROUP_ACTIONS << 9) | 0x35
- .set EC_WORD_DRINKS, (EC_GROUP_ACTIONS << 9) | 0x36
- .set EC_WORD_RUNS, (EC_GROUP_ACTIONS << 9) | 0x37
- .set EC_WORD_RUN, (EC_GROUP_ACTIONS << 9) | 0x38
- .set EC_WORD_WORKS, (EC_GROUP_ACTIONS << 9) | 0x39
- .set EC_WORD_WORKING, (EC_GROUP_ACTIONS << 9) | 0x3a
- .set EC_WORD_TALKING, (EC_GROUP_ACTIONS << 9) | 0x3b
- .set EC_WORD_TALK, (EC_GROUP_ACTIONS << 9) | 0x3c
- .set EC_WORD_SINK, (EC_GROUP_ACTIONS << 9) | 0x3d
- .set EC_WORD_SMACK, (EC_GROUP_ACTIONS << 9) | 0x3e
- .set EC_WORD_PRETEND, (EC_GROUP_ACTIONS << 9) | 0x3f
- .set EC_WORD_PRAISE, (EC_GROUP_ACTIONS << 9) | 0x40
- .set EC_WORD_OVERDO, (EC_GROUP_ACTIONS << 9) | 0x41
- .set EC_WORD_SHOW, (EC_GROUP_ACTIONS << 9) | 0x42
- .set EC_WORD_LOOKS, (EC_GROUP_ACTIONS << 9) | 0x43
- .set EC_WORD_SEES, (EC_GROUP_ACTIONS << 9) | 0x44
- .set EC_WORD_SEEK, (EC_GROUP_ACTIONS << 9) | 0x45
- .set EC_WORD_OWN, (EC_GROUP_ACTIONS << 9) | 0x46
- .set EC_WORD_TAKE, (EC_GROUP_ACTIONS << 9) | 0x47
- .set EC_WORD_ALLOW, (EC_GROUP_ACTIONS << 9) | 0x48
- .set EC_WORD_FORGET, (EC_GROUP_ACTIONS << 9) | 0x49
- .set EC_WORD_FORGETS, (EC_GROUP_ACTIONS << 9) | 0x4a
- .set EC_WORD_APPEARS, (EC_GROUP_ACTIONS << 9) | 0x4b
- .set EC_WORD_FAINT, (EC_GROUP_ACTIONS << 9) | 0x4c
- .set EC_WORD_FAINTED, (EC_GROUP_ACTIONS << 9) | 0x4d
-
-@ LIFESTYLE
- .set EC_WORD_CHORES, (EC_GROUP_LIFESTYLE << 9) | 0x0
- .set EC_WORD_HOME, (EC_GROUP_LIFESTYLE << 9) | 0x1
- .set EC_WORD_MONEY, (EC_GROUP_LIFESTYLE << 9) | 0x2
- .set EC_WORD_ALLOWANCE, (EC_GROUP_LIFESTYLE << 9) | 0x3
- .set EC_WORD_BATH, (EC_GROUP_LIFESTYLE << 9) | 0x4
- .set EC_WORD_CONVERSATION, (EC_GROUP_LIFESTYLE << 9) | 0x5
- .set EC_WORD_SCHOOL, (EC_GROUP_LIFESTYLE << 9) | 0x6
- .set EC_WORD_COMMEMORATE, (EC_GROUP_LIFESTYLE << 9) | 0x7
- .set EC_WORD_HABIT, (EC_GROUP_LIFESTYLE << 9) | 0x8
- .set EC_WORD_GROUP, (EC_GROUP_LIFESTYLE << 9) | 0x9
- .set EC_WORD_WORD, (EC_GROUP_LIFESTYLE << 9) | 0xa
- .set EC_WORD_STORE, (EC_GROUP_LIFESTYLE << 9) | 0xb
- .set EC_WORD_SERVICE, (EC_GROUP_LIFESTYLE << 9) | 0xc
- .set EC_WORD_WORK, (EC_GROUP_LIFESTYLE << 9) | 0xd
- .set EC_WORD_SYSTEM, (EC_GROUP_LIFESTYLE << 9) | 0xe
- .set EC_WORD_TRAIN, (EC_GROUP_LIFESTYLE << 9) | 0xf
- .set EC_WORD_CLASS, (EC_GROUP_LIFESTYLE << 9) | 0x10
- .set EC_WORD_LESSONS, (EC_GROUP_LIFESTYLE << 9) | 0x11
- .set EC_WORD_INFORMATION, (EC_GROUP_LIFESTYLE << 9) | 0x12
- .set EC_WORD_LIVING, (EC_GROUP_LIFESTYLE << 9) | 0x13
- .set EC_WORD_TEACHER, (EC_GROUP_LIFESTYLE << 9) | 0x14
- .set EC_WORD_TOURNAMENT, (EC_GROUP_LIFESTYLE << 9) | 0x15
- .set EC_WORD_LETTER, (EC_GROUP_LIFESTYLE << 9) | 0x16
- .set EC_WORD_EVENT, (EC_GROUP_LIFESTYLE << 9) | 0x17
- .set EC_WORD_DIGITAL, (EC_GROUP_LIFESTYLE << 9) | 0x18
- .set EC_WORD_TEST, (EC_GROUP_LIFESTYLE << 9) | 0x19
- .set EC_WORD_DEPT_STORE, (EC_GROUP_LIFESTYLE << 9) | 0x1a
- .set EC_WORD_TELEVISION, (EC_GROUP_LIFESTYLE << 9) | 0x1b
- .set EC_WORD_PHONE, (EC_GROUP_LIFESTYLE << 9) | 0x1c
- .set EC_WORD_ITEM, (EC_GROUP_LIFESTYLE << 9) | 0x1d
- .set EC_WORD_NAME, (EC_GROUP_LIFESTYLE << 9) | 0x1e
- .set EC_WORD_NEWS, (EC_GROUP_LIFESTYLE << 9) | 0x1f
- .set EC_WORD_POPULAR, (EC_GROUP_LIFESTYLE << 9) | 0x20
- .set EC_WORD_PARTY, (EC_GROUP_LIFESTYLE << 9) | 0x21
- .set EC_WORD_STUDY, (EC_GROUP_LIFESTYLE << 9) | 0x22
- .set EC_WORD_MACHINE, (EC_GROUP_LIFESTYLE << 9) | 0x23
- .set EC_WORD_MAIL, (EC_GROUP_LIFESTYLE << 9) | 0x24
- .set EC_WORD_MESSAGE, (EC_GROUP_LIFESTYLE << 9) | 0x25
- .set EC_WORD_PROMISE, (EC_GROUP_LIFESTYLE << 9) | 0x26
- .set EC_WORD_DREAM, (EC_GROUP_LIFESTYLE << 9) | 0x27
- .set EC_WORD_KINDERGARTEN, (EC_GROUP_LIFESTYLE << 9) | 0x28
- .set EC_WORD_LIFE, (EC_GROUP_LIFESTYLE << 9) | 0x29
- .set EC_WORD_RADIO, (EC_GROUP_LIFESTYLE << 9) | 0x2a
- .set EC_WORD_RENTAL, (EC_GROUP_LIFESTYLE << 9) | 0x2b
- .set EC_WORD_WORLD, (EC_GROUP_LIFESTYLE << 9) | 0x2c
-
-@ HOBBIES
- .set EC_WORD_IDOL, (EC_GROUP_HOBBIES << 9) | 0x0
- .set EC_WORD_ANIME, (EC_GROUP_HOBBIES << 9) | 0x1
- .set EC_WORD_SONG, (EC_GROUP_HOBBIES << 9) | 0x2
- .set EC_WORD_MOVIE, (EC_GROUP_HOBBIES << 9) | 0x3
- .set EC_WORD_SWEETS, (EC_GROUP_HOBBIES << 9) | 0x4
- .set EC_WORD_CHAT, (EC_GROUP_HOBBIES << 9) | 0x5
- .set EC_WORD_CHILD_S_PLAY, (EC_GROUP_HOBBIES << 9) | 0x6
- .set EC_WORD_TOYS, (EC_GROUP_HOBBIES << 9) | 0x7
- .set EC_WORD_MUSIC, (EC_GROUP_HOBBIES << 9) | 0x8
- .set EC_WORD_CARDS, (EC_GROUP_HOBBIES << 9) | 0x9
- .set EC_WORD_SHOPPING, (EC_GROUP_HOBBIES << 9) | 0xa
- .set EC_WORD_CAMERA, (EC_GROUP_HOBBIES << 9) | 0xb
- .set EC_WORD_VIEWING, (EC_GROUP_HOBBIES << 9) | 0xc
- .set EC_WORD_SPECTATOR, (EC_GROUP_HOBBIES << 9) | 0xd
- .set EC_WORD_GOURMET, (EC_GROUP_HOBBIES << 9) | 0xe
- .set EC_WORD_GAME, (EC_GROUP_HOBBIES << 9) | 0xf
- .set EC_WORD_RPG, (EC_GROUP_HOBBIES << 9) | 0x10
- .set EC_WORD_COLLECTION, (EC_GROUP_HOBBIES << 9) | 0x11
- .set EC_WORD_COMPLETE, (EC_GROUP_HOBBIES << 9) | 0x12
- .set EC_WORD_MAGAZINE, (EC_GROUP_HOBBIES << 9) | 0x13
- .set EC_WORD_WALK, (EC_GROUP_HOBBIES << 9) | 0x14
- .set EC_WORD_BIKE, (EC_GROUP_HOBBIES << 9) | 0x15
- .set EC_WORD_HOBBY, (EC_GROUP_HOBBIES << 9) | 0x16
- .set EC_WORD_SPORTS, (EC_GROUP_HOBBIES << 9) | 0x17
- .set EC_WORD_SOFTWARE, (EC_GROUP_HOBBIES << 9) | 0x18
- .set EC_WORD_SONGS, (EC_GROUP_HOBBIES << 9) | 0x19
- .set EC_WORD_DIET, (EC_GROUP_HOBBIES << 9) | 0x1a
- .set EC_WORD_TREASURE, (EC_GROUP_HOBBIES << 9) | 0x1b
- .set EC_WORD_TRAVEL, (EC_GROUP_HOBBIES << 9) | 0x1c
- .set EC_WORD_DANCE, (EC_GROUP_HOBBIES << 9) | 0x1d
- .set EC_WORD_CHANNEL, (EC_GROUP_HOBBIES << 9) | 0x1e
- .set EC_WORD_MAKING, (EC_GROUP_HOBBIES << 9) | 0x1f
- .set EC_WORD_FISHING, (EC_GROUP_HOBBIES << 9) | 0x20
- .set EC_WORD_DATE, (EC_GROUP_HOBBIES << 9) | 0x21
- .set EC_WORD_DESIGN, (EC_GROUP_HOBBIES << 9) | 0x22
- .set EC_WORD_LOCOMOTIVE, (EC_GROUP_HOBBIES << 9) | 0x23
- .set EC_WORD_PLUSH_DOLL, (EC_GROUP_HOBBIES << 9) | 0x24
- .set EC_WORD_PC, (EC_GROUP_HOBBIES << 9) | 0x25
- .set EC_WORD_FLOWERS, (EC_GROUP_HOBBIES << 9) | 0x26
- .set EC_WORD_HERO, (EC_GROUP_HOBBIES << 9) | 0x27
- .set EC_WORD_NAP, (EC_GROUP_HOBBIES << 9) | 0x28
- .set EC_WORD_HEROINE, (EC_GROUP_HOBBIES << 9) | 0x29
- .set EC_WORD_FASHION, (EC_GROUP_HOBBIES << 9) | 0x2a
- .set EC_WORD_ADVENTURE, (EC_GROUP_HOBBIES << 9) | 0x2b
- .set EC_WORD_BOARD, (EC_GROUP_HOBBIES << 9) | 0x2c
- .set EC_WORD_BALL, (EC_GROUP_HOBBIES << 9) | 0x2d
- .set EC_WORD_BOOK, (EC_GROUP_HOBBIES << 9) | 0x2e
- .set EC_WORD_FESTIVAL, (EC_GROUP_HOBBIES << 9) | 0x2f
- .set EC_WORD_COMICS, (EC_GROUP_HOBBIES << 9) | 0x30
- .set EC_WORD_HOLIDAY, (EC_GROUP_HOBBIES << 9) | 0x31
- .set EC_WORD_PLANS, (EC_GROUP_HOBBIES << 9) | 0x32
- .set EC_WORD_TRENDY, (EC_GROUP_HOBBIES << 9) | 0x33
- .set EC_WORD_VACATION, (EC_GROUP_HOBBIES << 9) | 0x34
- .set EC_WORD_LOOK, (EC_GROUP_HOBBIES << 9) | 0x35
-
-@ TIME
- .set EC_WORD_FALL, (EC_GROUP_TIME << 9) | 0x0
- .set EC_WORD_MORNING, (EC_GROUP_TIME << 9) | 0x1
- .set EC_WORD_TOMORROW, (EC_GROUP_TIME << 9) | 0x2
- .set EC_WORD_LAST, (EC_GROUP_TIME << 9) | 0x3
- .set EC_WORD_DAY, (EC_GROUP_TIME << 9) | 0x4
- .set EC_WORD_SOMETIME, (EC_GROUP_TIME << 9) | 0x5
- .set EC_WORD_ALWAYS, (EC_GROUP_TIME << 9) | 0x6
- .set EC_WORD_CURRENT, (EC_GROUP_TIME << 9) | 0x7
- .set EC_WORD_FOREVER, (EC_GROUP_TIME << 9) | 0x8
- .set EC_WORD_DAYS, (EC_GROUP_TIME << 9) | 0x9
- .set EC_WORD_END, (EC_GROUP_TIME << 9) | 0xa
- .set EC_WORD_TUESDAY, (EC_GROUP_TIME << 9) | 0xb
- .set EC_WORD_YESTERDAY, (EC_GROUP_TIME << 9) | 0xc
- .set EC_WORD_TODAY, (EC_GROUP_TIME << 9) | 0xd
- .set EC_WORD_FRIDAY, (EC_GROUP_TIME << 9) | 0xe
- .set EC_WORD_MONDAY, (EC_GROUP_TIME << 9) | 0xf
- .set EC_WORD_LATER, (EC_GROUP_TIME << 9) | 0x10
- .set EC_WORD_EARLIER, (EC_GROUP_TIME << 9) | 0x11
- .set EC_WORD_ANOTHER, (EC_GROUP_TIME << 9) | 0x12
- .set EC_WORD_TIME, (EC_GROUP_TIME << 9) | 0x13
- .set EC_WORD_FINISH, (EC_GROUP_TIME << 9) | 0x14
- .set EC_WORD_WEDNESDAY, (EC_GROUP_TIME << 9) | 0x15
- .set EC_WORD_SOON, (EC_GROUP_TIME << 9) | 0x16
- .set EC_WORD_START, (EC_GROUP_TIME << 9) | 0x17
- .set EC_WORD_MONTH, (EC_GROUP_TIME << 9) | 0x18
- .set EC_WORD_STOP, (EC_GROUP_TIME << 9) | 0x19
- .set EC_WORD_NOW, (EC_GROUP_TIME << 9) | 0x1a
- .set EC_WORD_FINAL, (EC_GROUP_TIME << 9) | 0x1b
- .set EC_WORD_NEXT, (EC_GROUP_TIME << 9) | 0x1c
- .set EC_WORD_AGE, (EC_GROUP_TIME << 9) | 0x1d
- .set EC_WORD_SATURDAY, (EC_GROUP_TIME << 9) | 0x1e
- .set EC_WORD_SUMMER, (EC_GROUP_TIME << 9) | 0x1f
- .set EC_WORD_SUNDAY, (EC_GROUP_TIME << 9) | 0x20
- .set EC_WORD_BEGINNING, (EC_GROUP_TIME << 9) | 0x21
- .set EC_WORD_SPRING, (EC_GROUP_TIME << 9) | 0x22
- .set EC_WORD_DAYTIME, (EC_GROUP_TIME << 9) | 0x23
- .set EC_WORD_WINTER, (EC_GROUP_TIME << 9) | 0x24
- .set EC_WORD_DAILY, (EC_GROUP_TIME << 9) | 0x25
- .set EC_WORD_OLDEN, (EC_GROUP_TIME << 9) | 0x26
- .set EC_WORD_ALMOST, (EC_GROUP_TIME << 9) | 0x27
- .set EC_WORD_NEARLY, (EC_GROUP_TIME << 9) | 0x28
- .set EC_WORD_THURSDAY, (EC_GROUP_TIME << 9) | 0x29
- .set EC_WORD_NIGHTTIME, (EC_GROUP_TIME << 9) | 0x2a
- .set EC_WORD_NIGHT, (EC_GROUP_TIME << 9) | 0x2b
- .set EC_WORD_WEEK, (EC_GROUP_TIME << 9) | 0x2c
-
-@ MISC
- .set EC_WORD_HIGHS, (EC_GROUP_MISC << 9) | 0x0
- .set EC_WORD_LOWS, (EC_GROUP_MISC << 9) | 0x1
- .set EC_WORD_UM, (EC_GROUP_MISC << 9) | 0x2
- .set EC_WORD_REAR, (EC_GROUP_MISC << 9) | 0x3
- .set EC_WORD_THINGS, (EC_GROUP_MISC << 9) | 0x4
- .set EC_WORD_THING, (EC_GROUP_MISC << 9) | 0x5
- .set EC_WORD_BELOW, (EC_GROUP_MISC << 9) | 0x6
- .set EC_WORD_ABOVE, (EC_GROUP_MISC << 9) | 0x7
- .set EC_WORD_BACK, (EC_GROUP_MISC << 9) | 0x8
- .set EC_WORD_HIGH, (EC_GROUP_MISC << 9) | 0x9
- .set EC_WORD_HERE, (EC_GROUP_MISC << 9) | 0xa
- .set EC_WORD_INSIDE, (EC_GROUP_MISC << 9) | 0xb
- .set EC_WORD_OUTSIDE, (EC_GROUP_MISC << 9) | 0xc
- .set EC_WORD_BESIDE, (EC_GROUP_MISC << 9) | 0xd
- .set EC_WORD_THIS_IS_IT_EXCL, (EC_GROUP_MISC << 9) | 0xe
- .set EC_WORD_THIS, (EC_GROUP_MISC << 9) | 0xf
- .set EC_WORD_EVERY, (EC_GROUP_MISC << 9) | 0x10
- .set EC_WORD_THESE, (EC_GROUP_MISC << 9) | 0x11
- .set EC_WORD_THESE_WERE, (EC_GROUP_MISC << 9) | 0x12
- .set EC_WORD_DOWN, (EC_GROUP_MISC << 9) | 0x13
- .set EC_WORD_THAT, (EC_GROUP_MISC << 9) | 0x14
- .set EC_WORD_THOSE_ARE, (EC_GROUP_MISC << 9) | 0x15
- .set EC_WORD_THOSE_WERE, (EC_GROUP_MISC << 9) | 0x16
- .set EC_WORD_THAT_S_IT_EXCL, (EC_GROUP_MISC << 9) | 0x17
- .set EC_WORD_AM, (EC_GROUP_MISC << 9) | 0x18
- .set EC_WORD_THAT_WAS, (EC_GROUP_MISC << 9) | 0x19
- .set EC_WORD_FRONT, (EC_GROUP_MISC << 9) | 0x1a
- .set EC_WORD_UP, (EC_GROUP_MISC << 9) | 0x1b
- .set EC_WORD_CHOICE, (EC_GROUP_MISC << 9) | 0x1c
- .set EC_WORD_FAR, (EC_GROUP_MISC << 9) | 0x1d
- .set EC_WORD_AWAY, (EC_GROUP_MISC << 9) | 0x1e
- .set EC_WORD_NEAR, (EC_GROUP_MISC << 9) | 0x1f
- .set EC_WORD_WHERE, (EC_GROUP_MISC << 9) | 0x20
- .set EC_WORD_WHEN, (EC_GROUP_MISC << 9) | 0x21
- .set EC_WORD_WHAT, (EC_GROUP_MISC << 9) | 0x22
- .set EC_WORD_DEEP, (EC_GROUP_MISC << 9) | 0x23
- .set EC_WORD_SHALLOW, (EC_GROUP_MISC << 9) | 0x24
- .set EC_WORD_WHY, (EC_GROUP_MISC << 9) | 0x25
- .set EC_WORD_CONFUSED, (EC_GROUP_MISC << 9) | 0x26
- .set EC_WORD_OPPOSITE, (EC_GROUP_MISC << 9) | 0x27
- .set EC_WORD_LEFT, (EC_GROUP_MISC << 9) | 0x28
- .set EC_WORD_RIGHT, (EC_GROUP_MISC << 9) | 0x29
-
-@ ADJECTIVES
- .set EC_WORD_WANDERING, (EC_GROUP_ADJECTIVES << 9) | 0x0
- .set EC_WORD_RICKETY, (EC_GROUP_ADJECTIVES << 9) | 0x1
- .set EC_WORD_ROCK_SOLID, (EC_GROUP_ADJECTIVES << 9) | 0x2
- .set EC_WORD_HUNGRY, (EC_GROUP_ADJECTIVES << 9) | 0x3
- .set EC_WORD_TIGHT, (EC_GROUP_ADJECTIVES << 9) | 0x4
- .set EC_WORD_TICKLISH, (EC_GROUP_ADJECTIVES << 9) | 0x5
- .set EC_WORD_TWIRLING, (EC_GROUP_ADJECTIVES << 9) | 0x6
- .set EC_WORD_SPIRALING, (EC_GROUP_ADJECTIVES << 9) | 0x7
- .set EC_WORD_THIRSTY, (EC_GROUP_ADJECTIVES << 9) | 0x8
- .set EC_WORD_LOLLING, (EC_GROUP_ADJECTIVES << 9) | 0x9
- .set EC_WORD_SILKY, (EC_GROUP_ADJECTIVES << 9) | 0xa
- .set EC_WORD_SADLY, (EC_GROUP_ADJECTIVES << 9) | 0xb
- .set EC_WORD_HOPELESS, (EC_GROUP_ADJECTIVES << 9) | 0xc
- .set EC_WORD_USELESS, (EC_GROUP_ADJECTIVES << 9) | 0xd
- .set EC_WORD_DROOLING, (EC_GROUP_ADJECTIVES << 9) | 0xe
- .set EC_WORD_EXCITING, (EC_GROUP_ADJECTIVES << 9) | 0xf
- .set EC_WORD_THICK, (EC_GROUP_ADJECTIVES << 9) | 0x10
- .set EC_WORD_SMOOTH, (EC_GROUP_ADJECTIVES << 9) | 0x11
- .set EC_WORD_SLIMY, (EC_GROUP_ADJECTIVES << 9) | 0x12
- .set EC_WORD_THIN, (EC_GROUP_ADJECTIVES << 9) | 0x13
- .set EC_WORD_BREAK, (EC_GROUP_ADJECTIVES << 9) | 0x14
- .set EC_WORD_VORACIOUS, (EC_GROUP_ADJECTIVES << 9) | 0x15
- .set EC_WORD_SCATTER, (EC_GROUP_ADJECTIVES << 9) | 0x16
- .set EC_WORD_AWESOME, (EC_GROUP_ADJECTIVES << 9) | 0x17
- .set EC_WORD_WIMPY, (EC_GROUP_ADJECTIVES << 9) | 0x18
- .set EC_WORD_WOBBLY, (EC_GROUP_ADJECTIVES << 9) | 0x19
- .set EC_WORD_SHAKY, (EC_GROUP_ADJECTIVES << 9) | 0x1a
- .set EC_WORD_RIPPED, (EC_GROUP_ADJECTIVES << 9) | 0x1b
- .set EC_WORD_SHREDDED, (EC_GROUP_ADJECTIVES << 9) | 0x1c
- .set EC_WORD_INCREASING, (EC_GROUP_ADJECTIVES << 9) | 0x1d
- .set EC_WORD_YET, (EC_GROUP_ADJECTIVES << 9) | 0x1e
- .set EC_WORD_DESTROYED, (EC_GROUP_ADJECTIVES << 9) | 0x1f
- .set EC_WORD_FIERY, (EC_GROUP_ADJECTIVES << 9) | 0x20
- .set EC_WORD_LOVEY_DOVEY, (EC_GROUP_ADJECTIVES << 9) | 0x21
- .set EC_WORD_HAPPILY, (EC_GROUP_ADJECTIVES << 9) | 0x22
- .set EC_WORD_ANTICIPATION, (EC_GROUP_ADJECTIVES << 9) | 0x23
-
-@ EVENTS
- .set EC_WORD_APPEAL, (EC_GROUP_EVENTS << 9) | 0x0
- .set EC_WORD_EVENTS, (EC_GROUP_EVENTS << 9) | 0x1
- .set EC_WORD_STAY_AT_HOME, (EC_GROUP_EVENTS << 9) | 0x2
- .set EC_WORD_BERRY, (EC_GROUP_EVENTS << 9) | 0x3
- .set EC_WORD_CONTEST, (EC_GROUP_EVENTS << 9) | 0x4
- .set EC_WORD_MC, (EC_GROUP_EVENTS << 9) | 0x5
- .set EC_WORD_JUDGE, (EC_GROUP_EVENTS << 9) | 0x6
- .set EC_WORD_SUPER, (EC_GROUP_EVENTS << 9) | 0x7
- .set EC_WORD_STAGE, (EC_GROUP_EVENTS << 9) | 0x8
- .set EC_WORD_HALL_OF_FAME, (EC_GROUP_EVENTS << 9) | 0x9
- .set EC_WORD_EVOLUTION, (EC_GROUP_EVENTS << 9) | 0xa
- .set EC_WORD_HYPER, (EC_GROUP_EVENTS << 9) | 0xb
- .set EC_WORD_BATTLE_TOWER, (EC_GROUP_EVENTS << 9) | 0xc
- .set EC_WORD_LEADERS, (EC_GROUP_EVENTS << 9) | 0xd
- .set EC_WORD_BATTLE_ROOM, (EC_GROUP_EVENTS << 9) | 0xe
- .set EC_WORD_HIDDEN, (EC_GROUP_EVENTS << 9) | 0xf
- .set EC_WORD_SECRET_BASE, (EC_GROUP_EVENTS << 9) | 0x10
- .set EC_WORD_BLEND, (EC_GROUP_EVENTS << 9) | 0x11
- .set EC_WORD_POKEBLOCK, (EC_GROUP_EVENTS << 9) | 0x12
- .set EC_WORD_MASTER, (EC_GROUP_EVENTS << 9) | 0x13
- .set EC_WORD_RANK, (EC_GROUP_EVENTS << 9) | 0x14
- .set EC_WORD_RIBBON, (EC_GROUP_EVENTS << 9) | 0x15
-
-@ TRENDY_SAYING
- .set EC_WORD_KTHX_BYE, (EC_GROUP_TRENDY_SAYING << 9) | 0x0
- .set EC_WORD_YES_SIR_EXCL, (EC_GROUP_TRENDY_SAYING << 9) | 0x1
- .set EC_WORD_AVANT_GARDE, (EC_GROUP_TRENDY_SAYING << 9) | 0x2
- .set EC_WORD_COUPLE, (EC_GROUP_TRENDY_SAYING << 9) | 0x3
- .set EC_WORD_MUCH_OBLIGED, (EC_GROUP_TRENDY_SAYING << 9) | 0x4
- .set EC_WORD_YEEHAW_EXCL, (EC_GROUP_TRENDY_SAYING << 9) | 0x5
- .set EC_WORD_MEGA, (EC_GROUP_TRENDY_SAYING << 9) | 0x6
- .set EC_WORD_1_HIT_KO_EXCL, (EC_GROUP_TRENDY_SAYING << 9) | 0x7
- .set EC_WORD_DESTINY, (EC_GROUP_TRENDY_SAYING << 9) | 0x8
- .set EC_WORD_CANCEL, (EC_GROUP_TRENDY_SAYING << 9) | 0x9
- .set EC_WORD_NEW, (EC_GROUP_TRENDY_SAYING << 9) | 0xa
- .set EC_WORD_FLATTEN, (EC_GROUP_TRENDY_SAYING << 9) | 0xb
- .set EC_WORD_KIDDING, (EC_GROUP_TRENDY_SAYING << 9) | 0xc
- .set EC_WORD_LOSER, (EC_GROUP_TRENDY_SAYING << 9) | 0xd
- .set EC_WORD_LOSING, (EC_GROUP_TRENDY_SAYING << 9) | 0xe
- .set EC_WORD_HAPPENING, (EC_GROUP_TRENDY_SAYING << 9) | 0xf
- .set EC_WORD_HIP_AND, (EC_GROUP_TRENDY_SAYING << 9) | 0x10
- .set EC_WORD_SHAKE, (EC_GROUP_TRENDY_SAYING << 9) | 0x11
- .set EC_WORD_SHADY, (EC_GROUP_TRENDY_SAYING << 9) | 0x12
- .set EC_WORD_UPBEAT, (EC_GROUP_TRENDY_SAYING << 9) | 0x13
- .set EC_WORD_MODERN, (EC_GROUP_TRENDY_SAYING << 9) | 0x14
- .set EC_WORD_SMELL_YA, (EC_GROUP_TRENDY_SAYING << 9) | 0x15
- .set EC_WORD_BANG, (EC_GROUP_TRENDY_SAYING << 9) | 0x16
- .set EC_WORD_KNOCKOUT, (EC_GROUP_TRENDY_SAYING << 9) | 0x17
- .set EC_WORD_HASSLE, (EC_GROUP_TRENDY_SAYING << 9) | 0x18
- .set EC_WORD_WINNER, (EC_GROUP_TRENDY_SAYING << 9) | 0x19
- .set EC_WORD_FEVER, (EC_GROUP_TRENDY_SAYING << 9) | 0x1a
- .set EC_WORD_WANNABE, (EC_GROUP_TRENDY_SAYING << 9) | 0x1b
- .set EC_WORD_BABY, (EC_GROUP_TRENDY_SAYING << 9) | 0x1c
- .set EC_WORD_HEART, (EC_GROUP_TRENDY_SAYING << 9) | 0x1d
- .set EC_WORD_OLD, (EC_GROUP_TRENDY_SAYING << 9) | 0x1e
- .set EC_WORD_YOUNG, (EC_GROUP_TRENDY_SAYING << 9) | 0x1f
- .set EC_WORD_UGLY, (EC_GROUP_TRENDY_SAYING << 9) | 0x20
-
diff --git a/constants/game_stat.inc b/constants/game_stat.inc
deleted file mode 100644
index ff8b2df00..000000000
--- a/constants/game_stat.inc
+++ /dev/null
@@ -1,50 +0,0 @@
- .equiv GAME_STAT_SAVED_GAME, 0
- .equiv GAME_STAT_FIRST_HOF_PLAY_TIME, 1
- .equiv GAME_STAT_STARTED_TRENDS, 2
- .equiv GAME_STAT_PLANTED_BERRIES, 3
- .equiv GAME_STAT_TRADED_BIKES, 4
- .equiv GAME_STAT_STEPS, 5
- .equiv GAME_STAT_GOT_INTERVIEWED, 6
- .equiv GAME_STAT_TOTAL_BATTLES, 7
- .equiv GAME_STAT_WILD_BATTLES, 8
- .equiv GAME_STAT_TRAINER_BATTLES, 9
- .equiv GAME_STAT_ENTERED_HOF, 10
- .equiv GAME_STAT_POKEMON_CAPTURES, 11
- .equiv GAME_STAT_FISHING_CAPTURES, 12
- .equiv GAME_STAT_HATCHED_EGGS, 13
- .equiv GAME_STAT_EVOLVED_POKEMON, 14
- .equiv GAME_STAT_USED_POKECENTER, 15
- .equiv GAME_STAT_RESTED_AT_HOME, 16
- .equiv GAME_STAT_ENTERED_SAFARI_ZONE, 17
- .equiv GAME_STAT_USED_CUT, 18
- .equiv GAME_STAT_USED_ROCK_SMASH, 19
- .equiv GAME_STAT_MOVED_SECRET_BASE, 20
- .equiv GAME_STAT_POKEMON_TRADES, 21
- .equiv GAME_STAT_UNKNOWN_22, 22
- .equiv GAME_STAT_LINK_BATTLE_WINS, 23
- .equiv GAME_STAT_LINK_BATTLE_LOSSES, 24
- .equiv GAME_STAT_LINK_BATTLE_DRAWS, 25
- .equiv GAME_STAT_USED_SPLASH, 26
- .equiv GAME_STAT_USED_STRUGGLE, 27
- .equiv GAME_STAT_SLOT_JACKPOTS, 28
- .equiv GAME_STAT_CONSECUTIVE_ROULETTE_WINS, 29
- .equiv GAME_STAT_ENTERED_BATTLE_TOWER, 30
- .equiv GAME_STAT_UNKNOWN_31, 31
- .equiv GAME_STAT_BATTLE_TOWER_BEST_STREAK, 32
- .equiv GAME_STAT_POKEBLOCKS, 33
- .equiv GAME_STAT_POKEBLOCKS_WITH_FRIENDS, 34
- .equiv GAME_STAT_WON_LINK_CONTEST, 35
- .equiv GAME_STAT_ENTERED_CONTEST, 36
- .equiv GAME_STAT_WON_CONTEST, 37
- .equiv GAME_STAT_SHOPPED, 38
- .equiv GAME_STAT_USED_ITEMFINDER, 39
- .equiv GAME_STAT_GOT_RAINED_ON, 40
- .equiv GAME_STAT_CHECKED_POKEDEX, 41
- .equiv GAME_STAT_RECEIVED_RIBBONS, 42
- .equiv GAME_STAT_JUMPED_DOWN_LEDGES, 43
- .equiv GAME_STAT_WATCHED_TV, 44
- .equiv GAME_STAT_CHECKED_CLOCK, 45
- .equiv GAME_STAT_WON_POKEMON_LOTTERY, 46
- .equiv GAME_STAT_USED_DAYCARE, 47
- .equiv GAME_STAT_RODE_CABLE_CAR, 48
- .equiv GAME_STAT_ENTERED_HOT_SPRINGS, 49
diff --git a/constants/hold_effects.inc b/constants/hold_effects.inc
deleted file mode 100644
index 349a195bd..000000000
--- a/constants/hold_effects.inc
+++ /dev/null
@@ -1,67 +0,0 @@
- .equiv HOLD_EFFECT_NONE, 0
- .equiv HOLD_EFFECT_RESTORE_HP, 1
- .equiv HOLD_EFFECT_CURE_PAR, 2
- .equiv HOLD_EFFECT_CURE_SLP, 3
- .equiv HOLD_EFFECT_CURE_PSN, 4
- .equiv HOLD_EFFECT_CURE_BRN, 5
- .equiv HOLD_EFFECT_CURE_FRZ, 6
- .equiv HOLD_EFFECT_RESTORE_PP, 7
- .equiv HOLD_EFFECT_CURE_CONFUSION, 8
- .equiv HOLD_EFFECT_CURE_STATUS, 9
- .equiv HOLD_EFFECT_CONFUSE_SPICY, 10
- .equiv HOLD_EFFECT_CONFUSE_DRY, 11
- .equiv HOLD_EFFECT_CONFUSE_SWEET, 12
- .equiv HOLD_EFFECT_CONFUSE_BITTER, 13
- .equiv HOLD_EFFECT_CONFUSE_SOUR, 14
- .equiv HOLD_EFFECT_ATTACK_UP, 15
- .equiv HOLD_EFFECT_DEFENSE_UP, 16
- .equiv HOLD_EFFECT_SPEED_UP, 17
- .equiv HOLD_EFFECT_SP_ATTACK_UP, 18
- .equiv HOLD_EFFECT_SP_DEFENSE_UP, 19
- .equiv HOLD_EFFECT_CRITICAL_UP, 20
- .equiv HOLD_EFFECT_RANDOM_STAT_UP, 21
- .equiv HOLD_EFFECT_EVASION_UP, 22
- .equiv HOLD_EFFECT_RESTORE_STATS, 23
- .equiv HOLD_EFFECT_MACHO_BRACE, 24
- .equiv HOLD_EFFECT_EXP_SHARE, 25
- .equiv HOLD_EFFECT_QUICK_CLAW, 26
- .equiv HOLD_EFFECT_HAPPINESS_UP, 27
- .equiv HOLD_EFFECT_CURE_ATTRACT, 28
- .equiv HOLD_EFFECT_CHOICE_BAND, 29
- .equiv HOLD_EFFECT_FLINCH, 30
- .equiv HOLD_EFFECT_BUG_POWER, 31
- .equiv HOLD_EFFECT_DOUBLE_PRIZE, 32
- .equiv HOLD_EFFECT_REPEL, 33
- .equiv HOLD_EFFECT_SOUL_DEW, 34
- .equiv HOLD_EFFECT_DEEP_SEA_TOOTH, 35
- .equiv HOLD_EFFECT_DEEP_SEA_SCALE, 36
- .equiv HOLD_EFFECT_CAN_ALWAYS_RUN, 37
- .equiv HOLD_EFFECT_PREVENT_EVOLVE, 38
- .equiv HOLD_EFFECT_FOCUS_BAND, 39
- .equiv HOLD_EFFECT_LUCKY_EGG, 40
- .equiv HOLD_EFFECT_SCOPE_LENS, 41
- .equiv HOLD_EFFECT_STEEL_POWER, 42
- .equiv HOLD_EFFECT_LEFTOVERS, 43
- .equiv HOLD_EFFECT_DRAGON_SCALE, 44
- .equiv HOLD_EFFECT_LIGHT_BALL, 45
- .equiv HOLD_EFFECT_GROUND_POWER, 46
- .equiv HOLD_EFFECT_ROCK_POWER, 47
- .equiv HOLD_EFFECT_GRASS_POWER, 48
- .equiv HOLD_EFFECT_DARK_POWER, 49
- .equiv HOLD_EFFECT_FIGHTING_POWER, 50
- .equiv HOLD_EFFECT_ELECTRIC_POWER, 51
- .equiv HOLD_EFFECT_WATER_POWER, 52
- .equiv HOLD_EFFECT_FLYING_POWER, 53
- .equiv HOLD_EFFECT_POISON_POWER, 54
- .equiv HOLD_EFFECT_ICE_POWER, 55
- .equiv HOLD_EFFECT_GHOST_POWER, 56
- .equiv HOLD_EFFECT_PSYCHIC_POWER, 57
- .equiv HOLD_EFFECT_FIRE_POWER, 58
- .equiv HOLD_EFFECT_DRAGON_POWER, 59
- .equiv HOLD_EFFECT_NORMAL_POWER, 60
- .equiv HOLD_EFFECT_UP_GRADE, 61
- .equiv HOLD_EFFECT_SHELL_BELL, 62
- .equiv HOLD_EFFECT_LUCKY_PUNCH, 63
- .equiv HOLD_EFFECT_METAL_POWDER, 64
- .equiv HOLD_EFFECT_THICK_CLUB, 65
- .equiv HOLD_EFFECT_STICK, 66
diff --git a/constants/item_constants.inc b/constants/item_constants.inc
deleted file mode 100644
index 46b84d681..000000000
--- a/constants/item_constants.inc
+++ /dev/null
@@ -1,385 +0,0 @@
- .include "asm/macros/asm.inc"
-
- enum_start
-
- enum ITEM_NONE @ 0x000
- enum ITEM_MASTER_BALL @ 0x001
- enum ITEM_ULTRA_BALL @ 0x002
- enum ITEM_GREAT_BALL @ 0x003
- enum ITEM_POKE_BALL @ 0x004
- enum ITEM_SAFARI_BALL @ 0x005
- enum ITEM_NET_BALL @ 0x006
- enum ITEM_DIVE_BALL @ 0x007
- enum ITEM_NEST_BALL @ 0x008
- enum ITEM_REPEAT_BALL @ 0x009
- enum ITEM_TIMER_BALL @ 0x00a
- enum ITEM_LUXURY_BALL @ 0x00b
- enum ITEM_PREMIER_BALL @ 0x00c
- enum ITEM_POTION @ 0x00d
- enum ITEM_ANTIDOTE @ 0x00e
- enum ITEM_BURN_HEAL @ 0x00f
- enum ITEM_ICE_HEAL @ 0x010
- enum ITEM_AWAKENING @ 0x011
- enum ITEM_PARALYZE_HEAL @ 0x012
- enum ITEM_FULL_RESTORE @ 0x013
- enum ITEM_MAX_POTION @ 0x014
- enum ITEM_HYPER_POTION @ 0x015
- enum ITEM_SUPER_POTION @ 0x016
- enum ITEM_FULL_HEAL @ 0x017
- enum ITEM_REVIVE @ 0x018
- enum ITEM_MAX_REVIVE @ 0x019
- enum ITEM_FRESH_WATER @ 0x01a
- enum ITEM_SODA_POP @ 0x01b
- enum ITEM_LEMONADE @ 0x01c
- enum ITEM_MOOMOO_MILK @ 0x01d
- enum ITEM_ENERGY_POWDER @ 0x01e
- enum ITEM_ENERGY_ROOT @ 0x01f
- enum ITEM_HEAL_POWDER @ 0x020
- enum ITEM_REVIVAL_HERB @ 0x021
- enum ITEM_ETHER @ 0x022
- enum ITEM_MAX_ETHER @ 0x023
- enum ITEM_ELIXIR @ 0x024
- enum ITEM_MAX_ELIXIR @ 0x025
- enum ITEM_LAVA_COOKIE @ 0x026
- enum ITEM_BLUE_FLUTE @ 0x027
- enum ITEM_YELLOW_FLUTE @ 0x028
- enum ITEM_RED_FLUTE @ 0x029
- enum ITEM_BLACK_FLUTE @ 0x02a
- enum ITEM_WHITE_FLUTE @ 0x02b
- enum ITEM_BERRY_JUICE @ 0x02c
- enum ITEM_SACRED_ASH @ 0x02d
- enum ITEM_SHOAL_SALT @ 0x02e
- enum ITEM_SHOAL_SHELL @ 0x02f
- enum ITEM_RED_SHARD @ 0x030
- enum ITEM_BLUE_SHARD @ 0x031
- enum ITEM_YELLOW_SHARD @ 0x032
- enum ITEM_GREEN_SHARD @ 0x033
- enum ITEM_034
- enum ITEM_035
- enum ITEM_036
- enum ITEM_037
- enum ITEM_038
- enum ITEM_039
- enum ITEM_03A
- enum ITEM_03B
- enum ITEM_03C
- enum ITEM_03D
- enum ITEM_03E
- enum ITEM_HP_UP @ 0x03f
- enum ITEM_PROTEIN @ 0x040
- enum ITEM_IRON @ 0x041
- enum ITEM_CARBOS @ 0x042
- enum ITEM_CALCIUM @ 0x043
- enum ITEM_RARE_CANDY @ 0x044
- enum ITEM_PP_UP @ 0x045
- enum ITEM_ZINC @ 0x046
- enum ITEM_PP_MAX @ 0x047
- enum ITEM_048
- enum ITEM_GUARD_SPEC @ 0x049
- enum ITEM_DIRE_HIT @ 0x04a
- enum ITEM_X_ATTACK @ 0x04b
- enum ITEM_X_DEFEND @ 0x04c
- enum ITEM_X_SPEED @ 0x04d
- enum ITEM_X_ACCURACY @ 0x04e
- enum ITEM_X_SPECIAL @ 0x04f
- enum ITEM_POKE_DOLL @ 0x050
- enum ITEM_FLUFFY_TAIL @ 0x051
- enum ITEM_052
- enum ITEM_SUPER_REPEL @ 0x053
- enum ITEM_MAX_REPEL @ 0x054
- enum ITEM_ESCAPE_ROPE @ 0x055
- enum ITEM_REPEL @ 0x056
- enum ITEM_057
- enum ITEM_058
- enum ITEM_059
- enum ITEM_05A
- enum ITEM_05B
- enum ITEM_05C
- enum ITEM_SUN_STONE @ 0x05d
- enum ITEM_MOON_STONE @ 0x05e
- enum ITEM_FIRE_STONE @ 0x05f
- enum ITEM_THUNDER_STONE @ 0x060
- enum ITEM_WATER_STONE @ 0x061
- enum ITEM_LEAF_STONE @ 0x062
- enum ITEM_063
- enum ITEM_064
- enum ITEM_065
- enum ITEM_066
- enum ITEM_TINY_MUSHROOM @ 0x067
- enum ITEM_BIG_MUSHROOM @ 0x068
- enum ITEM_069
- enum ITEM_PEARL @ 0x06a
- enum ITEM_BIG_PEARL @ 0x06b
- enum ITEM_STARDUST @ 0x06c
- enum ITEM_STAR_PIECE @ 0x06d
- enum ITEM_NUGGET @ 0x06e
- enum ITEM_HEART_SCALE @ 0x06f
- enum ITEM_070
- enum ITEM_071
- enum ITEM_072
- enum ITEM_073
- enum ITEM_074
- enum ITEM_075
- enum ITEM_076
- enum ITEM_077
- enum ITEM_078
- enum ITEM_ORANGE_MAIL @ 0x079
- enum ITEM_HARBOR_MAIL @ 0x07a
- enum ITEM_GLITTER_MAIL @ 0x07b
- enum ITEM_MECH_MAIL @ 0x07c
- enum ITEM_WOOD_MAIL @ 0x07d
- enum ITEM_WAVE_MAIL @ 0x07e
- enum ITEM_BEAD_MAIL @ 0x07f
- enum ITEM_SHADOW_MAIL @ 0x080
- enum ITEM_TROPIC_MAIL @ 0x081
- enum ITEM_DREAM_MAIL @ 0x082
- enum ITEM_FAB_MAIL @ 0x083
- enum ITEM_RETRO_MAIL @ 0x084
- enum ITEM_CHERI_BERRY @ 0x085
- enum ITEM_CHESTO_BERRY @ 0x086
- enum ITEM_PECHA_BERRY @ 0x087
- enum ITEM_RAWST_BERRY @ 0x088
- enum ITEM_ASPEAR_BERRY @ 0x089
- enum ITEM_LEPPA_BERRY @ 0x08a
- enum ITEM_ORAN_BERRY @ 0x08b
- enum ITEM_PERSIM_BERRY @ 0x08c
- enum ITEM_LUM_BERRY @ 0x08d
- enum ITEM_SITRUS_BERRY @ 0x08e
- enum ITEM_FIGY_BERRY @ 0x08f
- enum ITEM_WIKI_BERRY @ 0x090
- enum ITEM_MAGO_BERRY @ 0x091
- enum ITEM_AGUAV_BERRY @ 0x092
- enum ITEM_IAPAPA_BERRY @ 0x093
- enum ITEM_RAZZ_BERRY @ 0x094
- enum ITEM_BLUK_BERRY @ 0x095
- enum ITEM_NANAB_BERRY @ 0x096
- enum ITEM_WEPEAR_BERRY @ 0x097
- enum ITEM_PINAP_BERRY @ 0x098
- enum ITEM_POMEG_BERRY @ 0x099
- enum ITEM_KELPSY_BERRY @ 0x09a
- enum ITEM_QUALOT_BERRY @ 0x09b
- enum ITEM_HONDEW_BERRY @ 0x09c
- enum ITEM_GREPA_BERRY @ 0x09d
- enum ITEM_TAMATO_BERRY @ 0x09e
- enum ITEM_CORNN_BERRY @ 0x09f
- enum ITEM_MAGOST_BERRY @ 0x0a0
- enum ITEM_RABUTA_BERRY @ 0x0a1
- enum ITEM_NOMEL_BERRY @ 0x0a2
- enum ITEM_SPELON_BERRY @ 0x0a3
- enum ITEM_PAMTRE_BERRY @ 0x0a4
- enum ITEM_WATMEL_BERRY @ 0x0a5
- enum ITEM_DURIN_BERRY @ 0x0a6
- enum ITEM_BELUE_BERRY @ 0x0a7
- enum ITEM_LIECHI_BERRY @ 0x0a8
- enum ITEM_GANLON_BERRY @ 0x0a9
- enum ITEM_SALAC_BERRY @ 0x0aa
- enum ITEM_PETAYA_BERRY @ 0x0ab
- enum ITEM_APICOT_BERRY @ 0x0ac
- enum ITEM_LANSAT_BERRY @ 0x0ad
- enum ITEM_STARF_BERRY @ 0x0ae
- enum ITEM_ENIGMA_BERRY @ 0x0af
- enum ITEM_0B0
- enum ITEM_0B1
- enum ITEM_0B2
- enum ITEM_BRIGHT_POWDER @ 0x0b3
- enum ITEM_WHITE_HERB @ 0x0b4
- enum ITEM_MACHO_BRACE @ 0x0b5
- enum ITEM_EXP_SHARE @ 0x0b6
- enum ITEM_QUICK_CLAW @ 0x0b7
- enum ITEM_SOOTHE_BELL @ 0x0b8
- enum ITEM_MENTAL_HERB @ 0x0b9
- enum ITEM_CHOICE_BAND @ 0x0ba
- enum ITEM_KINGS_ROCK @ 0x0bb
- enum ITEM_SILVER_POWDER @ 0x0bc
- enum ITEM_AMULET_COIN @ 0x0bd
- enum ITEM_CLEANSE_TAG @ 0x0be
- enum ITEM_SOUL_DEW @ 0x0bf
- enum ITEM_DEEP_SEA_TOOTH @ 0x0c0
- enum ITEM_DEEP_SEA_SCALE @ 0x0c1
- enum ITEM_SMOKE_BALL @ 0x0c2
- enum ITEM_EVERSTONE @ 0x0c3
- enum ITEM_FOCUS_BAND @ 0x0c4
- enum ITEM_LUCKY_EGG @ 0x0c5
- enum ITEM_SCOPE_LENS @ 0x0c6
- enum ITEM_METAL_COAT @ 0x0c7
- enum ITEM_LEFTOVERS @ 0x0c8
- enum ITEM_DRAGON_SCALE @ 0x0c9
- enum ITEM_LIGHT_BALL @ 0x0ca
- enum ITEM_SOFT_SAND @ 0x0cb
- enum ITEM_HARD_STONE @ 0x0cc
- enum ITEM_MIRACLE_SEED @ 0x0cd
- enum ITEM_BLACK_GLASSES @ 0x0ce
- enum ITEM_BLACK_BELT @ 0x0cf
- enum ITEM_MAGNET @ 0x0d0
- enum ITEM_MYSTIC_WATER @ 0x0d1
- enum ITEM_SHARP_BEAK @ 0x0d2
- enum ITEM_POISON_BARB @ 0x0d3
- enum ITEM_NEVER_MELT_ICE @ 0x0d4
- enum ITEM_SPELL_TAG @ 0x0d5
- enum ITEM_TWISTED_SPOON @ 0x0d6
- enum ITEM_CHARCOAL @ 0x0d7
- enum ITEM_DRAGON_FANG @ 0x0d8
- enum ITEM_SILK_SCARF @ 0x0d9
- enum ITEM_UP_GRADE @ 0x0da
- enum ITEM_SHELL_BELL @ 0x0db
- enum ITEM_SEA_INCENSE @ 0x0dc
- enum ITEM_LAX_INCENSE @ 0x0dd
- enum ITEM_LUCKY_PUNCH @ 0x0de
- enum ITEM_METAL_POWDER @ 0x0df
- enum ITEM_THICK_CLUB @ 0x0e0
- enum ITEM_STICK @ 0x0e1
- enum ITEM_0E2
- enum ITEM_0E3
- enum ITEM_0E4
- enum ITEM_0E5
- enum ITEM_0E6
- enum ITEM_0E7
- enum ITEM_0E8
- enum ITEM_0E9
- enum ITEM_0EA
- enum ITEM_0EB
- enum ITEM_0EC
- enum ITEM_0ED
- enum ITEM_0EE
- enum ITEM_0EF
- enum ITEM_0F0
- enum ITEM_0F1
- enum ITEM_0F2
- enum ITEM_0F3
- enum ITEM_0F4
- enum ITEM_0F5
- enum ITEM_0F6
- enum ITEM_0F7
- enum ITEM_0F8
- enum ITEM_0F9
- enum ITEM_0FA
- enum ITEM_0FB
- enum ITEM_0FC
- enum ITEM_0FD
- enum ITEM_RED_SCARF @ 0x0fe
- enum ITEM_BLUE_SCARF @ 0x0ff
- enum ITEM_PINK_SCARF @ 0x100
- enum ITEM_GREEN_SCARF @ 0x101
- enum ITEM_YELLOW_SCARF @ 0x102
- enum ITEM_MACH_BIKE @ 0x103
- enum ITEM_COIN_CASE @ 0x104
- enum ITEM_ITEMFINDER @ 0x105
- enum ITEM_OLD_ROD @ 0x106
- enum ITEM_GOOD_ROD @ 0x107
- enum ITEM_SUPER_ROD @ 0x108
- enum ITEM_SS_TICKET @ 0x109
- enum ITEM_CONTEST_PASS @ 0x10a
- enum ITEM_10B
- enum ITEM_WAILMER_PAIL @ 0x10c
- enum ITEM_DEVON_GOODS @ 0x10d
- enum ITEM_SOOT_SACK @ 0x10e
- enum ITEM_BASEMENT_KEY @ 0x10f
- enum ITEM_ACRO_BIKE @ 0x110
- enum ITEM_POKEBLOCK_CASE @ 0x111
- enum ITEM_LETTER @ 0x112
- enum ITEM_EON_TICKET @ 0x113
- enum ITEM_RED_ORB @ 0x114
- enum ITEM_BLUE_ORB @ 0x115
- enum ITEM_SCANNER @ 0x116
- enum ITEM_GO_GOGGLES @ 0x117
- enum ITEM_METEORITE @ 0x118
- enum ITEM_ROOM_1_KEY @ 0x119
- enum ITEM_ROOM_2_KEY @ 0x11a
- enum ITEM_ROOM_4_KEY @ 0x11b
- enum ITEM_ROOM_6_KEY @ 0x11c
- enum ITEM_STORAGE_KEY @ 0x11d
- enum ITEM_ROOT_FOSSIL @ 0x11e
- enum ITEM_CLAW_FOSSIL @ 0x11f
- enum ITEM_DEVON_SCOPE @ 0x120
- enum ITEM_TM01 @ 0x121
- enum ITEM_TM02 @ 0x122
- enum ITEM_TM03 @ 0x123
- enum ITEM_TM04 @ 0x124
- enum ITEM_TM05 @ 0x125
- enum ITEM_TM06 @ 0x126
- enum ITEM_TM07 @ 0x127
- enum ITEM_TM08 @ 0x128
- enum ITEM_TM09 @ 0x129
- enum ITEM_TM10 @ 0x12a
- enum ITEM_TM11 @ 0x12b
- enum ITEM_TM12 @ 0x12c
- enum ITEM_TM13 @ 0x12d
- enum ITEM_TM14 @ 0x12e
- enum ITEM_TM15 @ 0x12f
- enum ITEM_TM16 @ 0x130
- enum ITEM_TM17 @ 0x131
- enum ITEM_TM18 @ 0x132
- enum ITEM_TM19 @ 0x133
- enum ITEM_TM20 @ 0x134
- enum ITEM_TM21 @ 0x135
- enum ITEM_TM22 @ 0x136
- enum ITEM_TM23 @ 0x137
- enum ITEM_TM24 @ 0x138
- enum ITEM_TM25 @ 0x139
- enum ITEM_TM26 @ 0x13a
- enum ITEM_TM27 @ 0x13b
- enum ITEM_TM28 @ 0x13c
- enum ITEM_TM29 @ 0x13d
- enum ITEM_TM30 @ 0x13e
- enum ITEM_TM31 @ 0x13f
- enum ITEM_TM32 @ 0x140
- enum ITEM_TM33 @ 0x141
- enum ITEM_TM34 @ 0x142
- enum ITEM_TM35 @ 0x143
- enum ITEM_TM36 @ 0x144
- enum ITEM_TM37 @ 0x145
- enum ITEM_TM38 @ 0x146
- enum ITEM_TM39 @ 0x147
- enum ITEM_TM40 @ 0x148
- enum ITEM_TM41 @ 0x149
- enum ITEM_TM42 @ 0x14a
- enum ITEM_TM43 @ 0x14b
- enum ITEM_TM44 @ 0x14c
- enum ITEM_TM45 @ 0x14d
- enum ITEM_TM46 @ 0x14e
- enum ITEM_TM47 @ 0x14f
- enum ITEM_TM48 @ 0x150
- enum ITEM_TM49 @ 0x151
- enum ITEM_TM50 @ 0x152
- enum ITEM_HM01 @ 0x153
- enum ITEM_HM02 @ 0x154
- enum ITEM_HM03 @ 0x155
- enum ITEM_HM04 @ 0x156
- enum ITEM_HM05 @ 0x157
- enum ITEM_HM06 @ 0x158
- enum ITEM_HM07 @ 0x159
- enum ITEM_HM08 @ 0x15a
- enum ITEM_15B
- enum ITEM_15C
-
- @ FireRed/LeafGreen
- enum ITEM_OAKS_PARCEL @ 0x15d
- enum ITEM_POKE_FLUTE @ 0x15e
- enum ITEM_SECRET_KEY @ 0x15f
- enum ITEM_BIKE_VOUCHER @ 0x160
- enum ITEM_GOLD_TEETH @ 0x161
- enum ITEM_OLD_AMBER @ 0x162
- enum ITEM_CARD_KEY @ 0x163
- enum ITEM_LIFT_KEY @ 0x164
- enum ITEM_HELIX_FOSSIL @ 0x165
- enum ITEM_DOME_FOSSIL @ 0x166
- enum ITEM_SILPH_SCOPE @ 0x167
- enum ITEM_BICYCLE @ 0x168
- enum ITEM_TOWN_MAP @ 0x169
- enum ITEM_VS_SEEKER @ 0x16a
- enum ITEM_FAME_CHECKER @ 0x16b
- enum ITEM_TM_CASE @ 0x16c
- enum ITEM_BERRY_POUCH @ 0x16d
- enum ITEM_TEACHY_TV @ 0x16e
- enum ITEM_TRI_PASS @ 0x16f
- enum ITEM_RAINBOW_PASS @ 0x170
- enum ITEM_TEA @ 0x171
- enum ITEM_MYSTIC_TICKET @ 0x172
- enum ITEM_AURORA_TICKET @ 0x173
- enum ITEM_POWDER_JAR @ 0x174
- enum ITEM_RUBY @ 0x175
- enum ITEM_SAPPHIRE @ 0x176
-
- @ Emerald
- enum ITEM_MAGMA_EMBLEM @ 0x177
- enum ITEM_OLD_SEA_MAP @ 0x178
diff --git a/constants/map_constants.inc b/constants/map_constants.inc
deleted file mode 100644
index 6d92c5e65..000000000
--- a/constants/map_constants.inc
+++ /dev/null
@@ -1,464 +0,0 @@
- .set cur_map_group, -1
-
- new_map_group
- map_group PetalburgCity @ 0.0
- map_group SlateportCity @ 0.1
- map_group MauvilleCity @ 0.2
- map_group RustboroCity @ 0.3
- map_group FortreeCity @ 0.4
- map_group LilycoveCity @ 0.5
- map_group MossdeepCity @ 0.6
- map_group SootopolisCity @ 0.7
- map_group EverGrandeCity @ 0.8
- map_group LittlerootTown @ 0.9
- map_group OldaleTown @ 0.10
- map_group DewfordTown @ 0.11
- map_group LavaridgeTown @ 0.12
- map_group FallarborTown @ 0.13
- map_group VerdanturfTown @ 0.14
- map_group PacifidlogTown @ 0.15
- map_group Route101 @ 0.16
- map_group Route102 @ 0.17
- map_group Route103 @ 0.18
- map_group Route104 @ 0.19
- map_group Route105 @ 0.20
- map_group Route106 @ 0.21
- map_group Route107 @ 0.22
- map_group Route108 @ 0.23
- map_group Route109 @ 0.24
- map_group Route110 @ 0.25
- map_group Route111 @ 0.26
- map_group Route112 @ 0.27
- map_group Route113 @ 0.28
- map_group Route114 @ 0.29
- map_group Route115 @ 0.30
- map_group Route116 @ 0.31
- map_group Route117 @ 0.32
- map_group Route118 @ 0.33
- map_group Route119 @ 0.34
- map_group Route120 @ 0.35
- map_group Route121 @ 0.36
- map_group Route122 @ 0.37
- map_group Route123 @ 0.38
- map_group Route124 @ 0.39
- map_group Route125 @ 0.40
- map_group Route126 @ 0.41
- map_group Route127 @ 0.42
- map_group Route128 @ 0.43
- map_group Route129 @ 0.44
- map_group Route130 @ 0.45
- map_group Route131 @ 0.46
- map_group Route132 @ 0.47
- map_group Route133 @ 0.48
- map_group Route134 @ 0.49
- map_group Underwater1 @ 0.50
- map_group Underwater2 @ 0.51
- map_group Underwater3 @ 0.52
- map_group Underwater4 @ 0.53
-
- new_map_group
- map_group LittlerootTown_BrendansHouse_1F @ 1.0
- map_group LittlerootTown_BrendansHouse_2F @ 1.1
- map_group LittlerootTown_MaysHouse_1F @ 1.2
- map_group LittlerootTown_MaysHouse_2F @ 1.3
- map_group LittlerootTown_ProfessorBirchsLab @ 1.4
-
- new_map_group
- map_group OldaleTown_House1 @ 2.0
- map_group OldaleTown_House2 @ 2.1
- map_group OldaleTown_PokemonCenter_1F @ 2.2
- map_group OldaleTown_PokemonCenter_2F @ 2.3
- map_group OldaleTown_Mart @ 2.4
-
- new_map_group
- map_group DewfordTown_House1 @ 3.0
- map_group DewfordTown_PokemonCenter_1F @ 3.1
- map_group DewfordTown_PokemonCenter_2F @ 3.2
- map_group DewfordTown_Gym @ 3.3
- map_group DewfordTown_Hall @ 3.4
- map_group DewfordTown_House2 @ 3.5
-
- new_map_group
- map_group LavaridgeTown_HerbShop @ 4.0
- map_group LavaridgeTown_Gym_1F @ 4.1
- map_group LavaridgeTown_Gym_B1F @ 4.2
- map_group LavaridgeTown_House @ 4.3
- map_group LavaridgeTown_Mart @ 4.4
- map_group LavaridgeTown_PokemonCenter_1F @ 4.5
- map_group LavaridgeTown_PokemonCenter_2F @ 4.6
-
- new_map_group
- map_group FallarborTown_Mart @ 5.0
- map_group FallarborTown_ContestLobby @ 5.1
- map_group FallarborTown_ContestHall @ 5.2
- map_group FallarborTown_PokemonCenter_1F @ 5.3
- map_group FallarborTown_PokemonCenter_2F @ 5.4
- map_group FallarborTown_House1 @ 5.5
- map_group FallarborTown_House2 @ 5.6
-
- new_map_group
- map_group VerdanturfTown_ContestLobby @ 6.0
- map_group VerdanturfTown_ContestHall @ 6.1
- map_group VerdanturfTown_Mart @ 6.2
- map_group VerdanturfTown_PokemonCenter_1F @ 6.3
- map_group VerdanturfTown_PokemonCenter_2F @ 6.4
- map_group VerdanturfTown_WandasHouse @ 6.5
- map_group VerdanturfTown_FriendshipRatersHouse @ 6.6
- map_group VerdanturfTown_House @ 6.7
-
- new_map_group
- map_group PacifidlogTown_PokemonCenter_1F @ 7.0
- map_group PacifidlogTown_PokemonCenter_2F @ 7.1
- map_group PacifidlogTown_House1 @ 7.2
- map_group PacifidlogTown_House2 @ 7.3
- map_group PacifidlogTown_House3 @ 7.4
- map_group PacifidlogTown_House4 @ 7.5
- map_group PacifidlogTown_House5 @ 7.6
-
- new_map_group
- map_group PetalburgCity_WallysHouse @ 8.0
- map_group PetalburgCity_Gym @ 8.1
- map_group PetalburgCity_House1 @ 8.2
- map_group PetalburgCity_House2 @ 8.3
- map_group PetalburgCity_PokemonCenter_1F @ 8.4
- map_group PetalburgCity_PokemonCenter_2F @ 8.5
- map_group PetalburgCity_Mart @ 8.6
-
- new_map_group
- map_group SlateportCity_SternsShipyard_1F @ 9.0
- map_group SlateportCity_SternsShipyard_2F @ 9.1
- map_group SlateportCity_ContestLobby @ 9.2
- map_group SlateportCity_ContestHall @ 9.3
- map_group SlateportCity_House1 @ 9.4
- map_group SlateportCity_PokemonFanClub @ 9.5
- map_group SlateportCity_OceanicMuseum_1F @ 9.6
- map_group SlateportCity_OceanicMuseum_2F @ 9.7
- map_group SlateportCity_Harbor @ 9.8
- map_group SlateportCity_House2 @ 9.9
- map_group SlateportCity_PokemonCenter_1F @ 9.10
- map_group SlateportCity_PokemonCenter_2F @ 9.11
- map_group SlateportCity_Mart @ 9.12
-
- new_map_group
- map_group MauvilleCity_Gym @ 10.0
- map_group MauvilleCity_BikeShop @ 10.1
- map_group MauvilleCity_House1 @ 10.2
- map_group MauvilleCity_GameCorner @ 10.3
- map_group MauvilleCity_House2 @ 10.4
- map_group MauvilleCity_PokemonCenter_1F @ 10.5
- map_group MauvilleCity_PokemonCenter_2F @ 10.6
- map_group MauvilleCity_Mart @ 10.7
-
- new_map_group
- map_group RustboroCity_DevonCorp_1F @ 11.0
- map_group RustboroCity_DevonCorp_2F @ 11.1
- map_group RustboroCity_DevonCorp_3F @ 11.2
- map_group RustboroCity_Gym @ 11.3
- map_group RustboroCity_PokemonSchool @ 11.4
- map_group RustboroCity_PokemonCenter_1F @ 11.5
- map_group RustboroCity_PokemonCenter_2F @ 11.6
- map_group RustboroCity_Mart @ 11.7
- map_group RustboroCity_Flat1_1F @ 11.8
- map_group RustboroCity_Flat1_2F @ 11.9
- map_group RustboroCity_House1 @ 11.10
- map_group RustboroCity_CuttersHouse @ 11.11
- map_group RustboroCity_House2 @ 11.12
- map_group RustboroCity_Flat2_1F @ 11.13
- map_group RustboroCity_Flat2_2F @ 11.14
- map_group RustboroCity_Flat2_3F @ 11.15
- map_group RustboroCity_House3 @ 11.16
-
- new_map_group
- map_group FortreeCity_House1 @ 12.0
- map_group FortreeCity_Gym @ 12.1
- map_group FortreeCity_PokemonCenter_1F @ 12.2
- map_group FortreeCity_PokemonCenter_2F @ 12.3
- map_group FortreeCity_Mart @ 12.4
- map_group FortreeCity_House2 @ 12.5
- map_group FortreeCity_House3 @ 12.6
- map_group FortreeCity_House4 @ 12.7
- map_group FortreeCity_House5 @ 12.8
- map_group FortreeCity_DecorationShop @ 12.9
-
- new_map_group
- map_group LilycoveCity_CoveLilyMotel_1F @ 13.0
- map_group LilycoveCity_CoveLilyMotel_2F @ 13.1
- map_group LilycoveCity_LilycoveMuseum_1F @ 13.2
- map_group LilycoveCity_LilycoveMuseum_2F @ 13.3
- map_group LilycoveCity_ContestLobby @ 13.4
- map_group LilycoveCity_ContestHall @ 13.5
- map_group LilycoveCity_PokemonCenter_1F @ 13.6
- map_group LilycoveCity_PokemonCenter_2F @ 13.7
- map_group LilycoveCity_UnusedMart @ 13.8
- map_group LilycoveCity_PokemonTrainerFanClub @ 13.9
- map_group LilycoveCity_Harbor @ 13.10
- map_group LilycoveCity_EmptyMap @ 13.11
- map_group LilycoveCity_MoveDeletersHouse @ 13.12
- map_group LilycoveCity_House1 @ 13.13
- map_group LilycoveCity_House2 @ 13.14
- map_group LilycoveCity_House3 @ 13.15
- map_group LilycoveCity_House4 @ 13.16
- map_group LilycoveCity_DepartmentStore_1F @ 13.17
- map_group LilycoveCity_DepartmentStore_2F @ 13.18
- map_group LilycoveCity_DepartmentStore_3F @ 13.19
- map_group LilycoveCity_DepartmentStore_4F @ 13.20
- map_group LilycoveCity_DepartmentStore_5F @ 13.21
- map_group LilycoveCity_DepartmentStoreRooftop @ 13.22
- map_group LilycoveCity_DepartmentStoreElevator @ 13.23
-
- new_map_group
- map_group MossdeepCity_Gym @ 14.0
- map_group MossdeepCity_House1 @ 14.1
- map_group MossdeepCity_House2 @ 14.2
- map_group MossdeepCity_PokemonCenter_1F @ 14.3
- map_group MossdeepCity_PokemonCenter_2F @ 14.4
- map_group MossdeepCity_Mart @ 14.5
- map_group MossdeepCity_House3 @ 14.6
- map_group MossdeepCity_StevensHouse @ 14.7
- map_group MossdeepCity_House4 @ 14.8
- map_group MossdeepCity_SpaceCenter_1F @ 14.9
- map_group MossdeepCity_SpaceCenter_2F @ 14.10
- map_group MossdeepCity_GameCorner_1F @ 14.11
- map_group MossdeepCity_GameCorner_B1F @ 14.12
-
- new_map_group
- map_group SootopolisCity_Gym_1F @ 15.0
- map_group SootopolisCity_Gym_B1F @ 15.1
- map_group SootopolisCity_PokemonCenter_1F @ 15.2
- map_group SootopolisCity_PokemonCenter_2F @ 15.3
- map_group SootopolisCity_Mart @ 15.4
- map_group SootopolisCity_House1 @ 15.5
- map_group SootopolisCity_House2 @ 15.6
- map_group SootopolisCity_House3 @ 15.7
- map_group SootopolisCity_House4 @ 15.8
- map_group SootopolisCity_House5 @ 15.9
- map_group SootopolisCity_House6 @ 15.10
- map_group SootopolisCity_House7 @ 15.11
- map_group SootopolisCity_House8 @ 15.12
-
- new_map_group
- map_group EverGrandeCity_SidneysRoom @ 16.0
- map_group EverGrandeCity_PhoebesRoom @ 16.1
- map_group EverGrandeCity_GlaciasRoom @ 16.2
- map_group EverGrandeCity_DrakesRoom @ 16.3
- map_group EverGrandeCity_ChampionsRoom @ 16.4
- map_group EverGrandeCity_Corridor1 @ 16.5
- map_group EverGrandeCity_Corridor2 @ 16.6
- map_group EverGrandeCity_Corridor3 @ 16.7
- map_group EverGrandeCity_Corridor4 @ 16.8
- map_group EverGrandeCity_Corridor5 @ 16.9
- map_group EverGrandeCity_PokemonLeague @ 16.10
- map_group EverGrandeCity_HallOfFame @ 16.11
- map_group EverGrandeCity_PokemonCenter_1F @ 16.12
- map_group EverGrandeCity_PokemonCenter_2F @ 16.13
-
- new_map_group
- map_group Route104_MrBrineysHouse @ 17.0
- map_group Route104_PrettyPetalFlowerShop @ 17.1
-
- new_map_group
- map_group Route111_WinstrateFamilysHouse @ 18.0
- map_group Route111_OldLadysRestStop @ 18.1
-
- new_map_group
- map_group Route112_CableCarStation @ 19.0
- map_group MtChimney_CableCarStation @ 19.1
-
- new_map_group
- map_group Route114_FossilManiacsHouse @ 20.0
- map_group Route114_FossilManiacsTunnel @ 20.1
- map_group Route114_LanettesHouse @ 20.2
-
- new_map_group
- map_group Route116_TunnelersRestHouse @ 21.0
-
- new_map_group
- map_group Route117_PokemonDayCare @ 22.0
-
- new_map_group
- map_group Route121_SafariZoneEntrance @ 23.0
-
- new_map_group
- map_group MeteorFalls_1F_1R @ 24.0
- map_group MeteorFalls_1F_2R @ 24.1
- map_group MeteorFalls_B1F_1R @ 24.2
- map_group MeteorFalls_B1F_2R @ 24.3
- map_group RusturfTunnel @ 24.4
- map_group Underwater_SootopolisCity @ 24.5
- map_group DesertRuins @ 24.6
- map_group GraniteCave_1F @ 24.7
- map_group GraniteCave_B1F @ 24.8
- map_group GraniteCave_B2F @ 24.9
- map_group GraniteCave_StevensRoom @ 24.10
- map_group PetalburgWoods @ 24.11
- map_group MtChimney @ 24.12
- map_group JaggedPass @ 24.13
- map_group FieryPath @ 24.14
- map_group MtPyre_1F @ 24.15
- map_group MtPyre_2F @ 24.16
- map_group MtPyre_3F @ 24.17
- map_group MtPyre_4F @ 24.18
- map_group MtPyre_5F @ 24.19
- map_group MtPyre_6F @ 24.20
- map_group MtPyre_Exterior @ 24.21
- map_group MtPyre_Summit @ 24.22
- map_group AquaHideout_1F @ 24.23
- map_group AquaHideout_B1F @ 24.24
- map_group AquaHideout_B2F @ 24.25
- map_group Underwater_SeafloorCavern @ 24.26
- map_group SeafloorCavern_Entrance @ 24.27
- map_group SeafloorCavern_Room1 @ 24.28
- map_group SeafloorCavern_Room2 @ 24.29
- map_group SeafloorCavern_Room3 @ 24.30
- map_group SeafloorCavern_Room4 @ 24.31
- map_group SeafloorCavern_Room5 @ 24.32
- map_group SeafloorCavern_Room6 @ 24.33
- map_group SeafloorCavern_Room7 @ 24.34
- map_group SeafloorCavern_Room8 @ 24.35
- map_group SeafloorCavern_Room9 @ 24.36
- map_group CaveOfOrigin_Entrance @ 24.37
- map_group CaveOfOrigin_1F @ 24.38
- map_group CaveOfOrigin_B1F @ 24.39
- map_group CaveOfOrigin_B2F @ 24.40
- map_group CaveOfOrigin_B3F @ 24.41
- map_group CaveOfOrigin_B4F @ 24.42
- map_group VictoryRoad_1F @ 24.43
- map_group VictoryRoad_B1F @ 24.44
- map_group VictoryRoad_B2F @ 24.45
- map_group ShoalCave_LowTideEntranceRoom @ 24.46
- map_group ShoalCave_LowTideInnerRoom @ 24.47
- map_group ShoalCave_LowTideStairsRoom @ 24.48
- map_group ShoalCave_LowTideLowerRoom @ 24.49
- map_group ShoalCave_HighTideEntranceRoom @ 24.50
- map_group ShoalCave_HighTideInnerRoom @ 24.51
- map_group NewMauville_Entrance @ 24.52
- map_group NewMauville_Inside @ 24.53
- map_group AbandonedShip_Deck @ 24.54
- map_group AbandonedShip_Corridors_1F @ 24.55
- map_group AbandonedShip_Rooms_1F @ 24.56
- map_group AbandonedShip_Corridors_B1F @ 24.57
- map_group AbandonedShip_Rooms_B1F @ 24.58
- map_group AbandonedShip_Rooms2_B1F @ 24.59
- map_group AbandonedShip_Underwater1 @ 24.60
- map_group AbandonedShip_Room_B1F @ 24.61
- map_group AbandonedShip_Rooms2_1F @ 24.62
- map_group AbandonedShip_CaptainsOffice @ 24.63
- map_group AbandonedShip_Underwater2 @ 24.64
- map_group AbandonedShip_HiddenFloorCorridors @ 24.65
- map_group AbandonedShip_HiddenFloorRooms @ 24.66
- map_group IslandCave @ 24.67
- map_group AncientTomb @ 24.68
- map_group Underwater_Route134 @ 24.69
- map_group Underwater_SealedChamber @ 24.70
- map_group SealedChamber_OuterRoom @ 24.71
- map_group SealedChamber_InnerRoom @ 24.72
- map_group ScorchedSlab @ 24.73
- map_group MagmaHideout_1F @ 24.74
- map_group MagmaHideout_B1F @ 24.75
- map_group MagmaHideout_B2F @ 24.76
- map_group SkyPillar_Entrance @ 24.77
- map_group SkyPillar_Outside @ 24.78
- map_group SkyPillar_1F @ 24.79
- map_group SkyPillar_2F @ 24.80
- map_group SkyPillar_3F @ 24.81
- map_group SkyPillar_4F @ 24.82
- map_group ShoalCave_LowTideIceRoom @ 24.83
- map_group SkyPillar_5F @ 24.84
- map_group SkyPillar_Top @ 24.85
-
- new_map_group
- map_group SecretBase_RedCave1 @ 25.0
- map_group SecretBase_BrownCave1 @ 25.1
- map_group SecretBase_BlueCave1 @ 25.2
- map_group SecretBase_YellowCave1 @ 25.3
- map_group SecretBase_Tree1 @ 25.4
- map_group SecretBase_Shrub1 @ 25.5
- map_group SecretBase_RedCave2 @ 25.6
- map_group SecretBase_BrownCave2 @ 25.7
- map_group SecretBase_BlueCave2 @ 25.8
- map_group SecretBase_YellowCave2 @ 25.9
- map_group SecretBase_Tree2 @ 25.10
- map_group SecretBase_Shrub2 @ 25.11
- map_group SecretBase_RedCave3 @ 25.12
- map_group SecretBase_BrownCave3 @ 25.13
- map_group SecretBase_BlueCave3 @ 25.14
- map_group SecretBase_YellowCave3 @ 25.15
- map_group SecretBase_Tree3 @ 25.16
- map_group SecretBase_Shrub3 @ 25.17
- map_group SecretBase_RedCave4 @ 25.18
- map_group SecretBase_BrownCave4 @ 25.19
- map_group SecretBase_BlueCave4 @ 25.20
- map_group SecretBase_YellowCave4 @ 25.21
- map_group SecretBase_Tree4 @ 25.22
- map_group SecretBase_Shrub4 @ 25.23
- map_group SingleBattleColosseum @ 25.24
- map_group TradeCenter @ 25.25
- map_group RecordCorner @ 25.26
- map_group DoubleBattleColosseum @ 25.27
- map_group LinkContestRoom1 @ 25.28
- map_group UnknownMap_25_29 @ 25.29
- map_group UnknownMap_25_30 @ 25.30
- map_group UnknownMap_25_31 @ 25.31
- map_group UnknownMap_25_32 @ 25.32
- map_group UnknownMap_25_33 @ 25.33
- map_group UnknownMap_25_34 @ 25.34
- map_group LinkContestRoom2 @ 25.35
- map_group LinkContestRoom3 @ 25.36
- map_group LinkContestRoom4 @ 25.37
- map_group LinkContestRoom5 @ 25.38
- map_group LinkContestRoom6 @ 25.39
- map_group InsideOfTruck @ 25.40
- map_group SSTidalCorridor @ 25.41
- map_group SSTidalLowerDeck @ 25.42
- map_group SSTidalRooms @ 25.43
-
- new_map_group
- map_group SafariZone_Northwest @ 26.0
- map_group SafariZone_Northeast @ 26.1
- map_group SafariZone_Southwest @ 26.2
- map_group SafariZone_Southeast @ 26.3
- map_group BattleTower_Outside @ 26.4
- map_group BattleTower_Lobby @ 26.5
- map_group BattleTower_Elevator @ 26.6
- map_group BattleTower_Corridor @ 26.7
- map_group BattleTower_BattleRoom @ 26.8
- map_group SouthernIsland_Exterior @ 26.9
- map_group SouthernIsland_Interior @ 26.10
- map_group SafariZone_RestHouse @ 26.11
-
- new_map_group
- map_group Route104_Prototype @ 27.0
- map_group Route104_PrototypePrettyPetalFlowerShop @ 27.1
-
- new_map_group
- map_group Route109_SeashoreHouse @ 28.0
-
- new_map_group
- map_group Route110_TrickHouseEntrance @ 29.0
- map_group Route110_TrickHouseEnd @ 29.1
- map_group Route110_TrickHouseCorridor @ 29.2
- map_group Route110_TrickHousePuzzle1 @ 29.3
- map_group Route110_TrickHousePuzzle2 @ 29.4
- map_group Route110_TrickHousePuzzle3 @ 29.5
- map_group Route110_TrickHousePuzzle4 @ 29.6
- map_group Route110_TrickHousePuzzle5 @ 29.7
- map_group Route110_TrickHousePuzzle6 @ 29.8
- map_group Route110_TrickHousePuzzle7 @ 29.9
- map_group Route110_TrickHousePuzzle8 @ 29.10
- map_group Route110_SeasideCyclingRoadSouthEntrance @ 29.11
- map_group Route110_SeasideCyclingRoadNorthEntrance @ 29.12
-
- new_map_group
- map_group Route113_GlassWorkshop @ 30.0
-
- new_map_group
- map_group Route123_BerryMastersHouse @ 31.0
-
- new_map_group
- map_group Route119_WeatherInstitute_1F @ 32.0
- map_group Route119_WeatherInstitute_2F @ 32.1
- map_group Route119_House @ 32.2
-
- new_map_group
- map_group Route124_DivingTreasureHuntersHouse @ 33.0
-
diff --git a/constants/map_object_constants.inc b/constants/map_object_constants.inc
deleted file mode 100644
index e0843914f..000000000
--- a/constants/map_object_constants.inc
+++ /dev/null
@@ -1,230 +0,0 @@
- .set MAP_OBJ_GFX_BRENDAN_NORMAL, 0
- .set MAP_OBJ_GFX_BRENDAN_MACH_BIKE, 1
- .set MAP_OBJ_GFX_BRENDAN_SURFING, 2
- .set MAP_OBJ_GFX_BRENDAN_FIELD_MOVE, 3
- .set MAP_OBJ_GFX_QUINTY_PLUMP, 4
- .set MAP_OBJ_GFX_LITTLE_BOY_1, 5
- .set MAP_OBJ_GFX_LITTLE_GIRL_1, 6
- .set MAP_OBJ_GFX_BOY_1, 7
- .set MAP_OBJ_GFX_GIRL_1, 8
- .set MAP_OBJ_GFX_BOY_2, 9
- .set MAP_OBJ_GFX_GIRL_2, 10
- .set MAP_OBJ_GFX_LITTLE_BOY_2, 11
- .set MAP_OBJ_GFX_LITTLE_GIRL_2, 12
- .set MAP_OBJ_GFX_BOY_3, 13
- .set MAP_OBJ_GFX_GIRL_3, 14
- .set MAP_OBJ_GFX_BOY_4, 15
- .set MAP_OBJ_GFX_WOMAN_1, 16
- .set MAP_OBJ_GFX_FAT_MAN, 17
- .set MAP_OBJ_GFX_WOMAN_2, 18
- .set MAP_OBJ_GFX_MAN_1, 19
- .set MAP_OBJ_GFX_WOMAN_3, 20
- .set MAP_OBJ_GFX_OLD_MAN_1, 21
- .set MAP_OBJ_GFX_OLD_WOMAN_1, 22
- .set MAP_OBJ_GFX_MAN_2, 23
- .set MAP_OBJ_GFX_WOMAN_4, 24
- .set MAP_OBJ_GFX_MAN_3, 25
- .set MAP_OBJ_GFX_WOMAN_5, 26
- .set MAP_OBJ_GFX_COOK, 27
- .set MAP_OBJ_GFX_WOMAN_6, 28
- .set MAP_OBJ_GFX_OLD_MAN_2, 29
- .set MAP_OBJ_GFX_OLD_WOMAN_2, 30
- .set MAP_OBJ_GFX_CAMPER, 31
- .set MAP_OBJ_GFX_PICNICKER, 32
- .set MAP_OBJ_GFX_MAN_4, 33
- .set MAP_OBJ_GFX_WOMAN_7, 34
- .set MAP_OBJ_GFX_YOUNGSTER, 35
- .set MAP_OBJ_GFX_BUG_CATCHER, 36
- .set MAP_OBJ_GFX_PSYCHIC_M, 37
- .set MAP_OBJ_GFX_SCHOOL_KID_M, 38
- .set MAP_OBJ_GFX_MANIAC, 39
- .set MAP_OBJ_GFX_HEX_MANIAC, 40
- .set MAP_OBJ_GFX_WOMAN_8, 41
- .set MAP_OBJ_GFX_SWIMMER_M, 42
- .set MAP_OBJ_GFX_SWIMMER_F, 43
- .set MAP_OBJ_GFX_BLACK_BELT, 44
- .set MAP_OBJ_GFX_BEAUTY, 45
- .set MAP_OBJ_GFX_SCIENTIST_1, 46
- .set MAP_OBJ_GFX_LASS, 47
- .set MAP_OBJ_GFX_GENTLEMAN, 48
- .set MAP_OBJ_GFX_SAILOR, 49
- .set MAP_OBJ_GFX_FISHERMAN, 50
- .set MAP_OBJ_GFX_RUNNING_TRIATHLETE_M, 51
- .set MAP_OBJ_GFX_RUNNING_TRIATHLETE_F, 52
- .set MAP_OBJ_GFX_TUBER_F, 53
- .set MAP_OBJ_GFX_TUBER_M, 54
- .set MAP_OBJ_GFX_HIKER, 55
- .set MAP_OBJ_GFX_CYCLING_TRIATHLETE_M, 56
- .set MAP_OBJ_GFX_CYCLING_TRIATHLETE_F, 57
- .set MAP_OBJ_GFX_NURSE, 58
- .set MAP_OBJ_GFX_ITEM_BALL, 59
- .set MAP_OBJ_GFX_BERRY_TREE, 60
- .set MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, 61
- .set MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES, 62
- .set MAP_OBJ_GFX_BRENDAN_ACRO_BIKE, 63
- .set MAP_OBJ_GFX_PROF_BIRCH, 64
- .set MAP_OBJ_GFX_MAN_5, 65
- .set MAP_OBJ_GFX_MAN_6, 66
- .set MAP_OBJ_GFX_REPORTER_M, 67
- .set MAP_OBJ_GFX_REPORTER_F, 68
- .set MAP_OBJ_GFX_BARD, 69
- .set MAP_OBJ_GFX_HIPSTER, 70
- .set MAP_OBJ_GFX_TRADER, 71
- .set MAP_OBJ_GFX_STORYTELLER, 72
- .set MAP_OBJ_GFX_GIDDY, 73
- .set MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_1, 74
- .set MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_2, 75
- .set MAP_OBJ_GFX_UNUSED_NATU_DOLL, 76
- .set MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL, 77
- .set MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL, 78
- .set MAP_OBJ_GFX_UNUSED_WOOPER_DOLL, 79
- .set MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL, 80
- .set MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL, 81
- .set MAP_OBJ_GFX_CUTTABLE_TREE, 82
- .set MAP_OBJ_GFX_MART_EMPLOYEE, 83
- .set MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN, 84
- .set MAP_OBJ_GFX_TEALA, 85
- .set MAP_OBJ_GFX_BREAKABLE_ROCK, 86
- .set MAP_OBJ_GFX_PUSHABLE_BOULDER, 87
- .set MAP_OBJ_GFX_MR_BRINEYS_BOAT, 88
- .set MAP_OBJ_GFX_MAY_NORMAL, 89
- .set MAP_OBJ_GFX_MAY_MACH_BIKE, 90
- .set MAP_OBJ_GFX_MAY_ACRO_BIKE, 91
- .set MAP_OBJ_GFX_MAY_SURFING, 92
- .set MAP_OBJ_GFX_MAY_FIELD_MOVE, 93
- .set MAP_OBJ_GFX_TRUCK, 94
- .set MAP_OBJ_GFX_MACHOKE_CARRYING_BOX, 95
- .set MAP_OBJ_GFX_MACHOKE_FACING_AWAY, 96
- .set MAP_OBJ_GFX_BIRCHS_BAG, 97
- .set MAP_OBJ_GFX_POOCHYENA, 98
- .set MAP_OBJ_GFX_ARTIST, 99
- .set MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 100
- .set MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE, 101
- .set MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE, 102
- .set MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING, 103
- .set MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE, 104
- .set MAP_OBJ_GFX_RIVAL_MAY_NORMAL, 105
- .set MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE, 106
- .set MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE, 107
- .set MAP_OBJ_GFX_RIVAL_MAY_SURFING, 108
- .set MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE, 109
- .set MAP_OBJ_GFX_CAMERAMAN, 110
- .set MAP_OBJ_GFX_BRENDAN_UNDERWATER, 111
- .set MAP_OBJ_GFX_MAY_UNDERWATER, 112
- .set MAP_OBJ_GFX_MOVING_BOX, 113
- .set MAP_OBJ_GFX_CABLE_CAR, 114
- .set MAP_OBJ_GFX_SCIENTIST_2, 115
- .set MAP_OBJ_GFX_MAN_7, 116
- .set MAP_OBJ_GFX_AQUA_MEMBER_M, 117
- .set MAP_OBJ_GFX_AQUA_MEMBER_F, 118
- .set MAP_OBJ_GFX_MAGMA_MEMBER_M, 119
- .set MAP_OBJ_GFX_MAGMA_MEMBER_F, 120
- .set MAP_OBJ_GFX_SIDNEY, 121
- .set MAP_OBJ_GFX_PHOEBE, 122
- .set MAP_OBJ_GFX_GLACIA, 123
- .set MAP_OBJ_GFX_DRAKE, 124
- .set MAP_OBJ_GFX_ROXANNE, 125
- .set MAP_OBJ_GFX_BRAWLY, 126
- .set MAP_OBJ_GFX_WATTSON, 127
- .set MAP_OBJ_GFX_FLANNERY, 128
- .set MAP_OBJ_GFX_NORMAN, 129
- .set MAP_OBJ_GFX_WINONA, 130
- .set MAP_OBJ_GFX_LIZA, 131
- .set MAP_OBJ_GFX_TATE, 132
- .set MAP_OBJ_GFX_WALLACE, 133
- .set MAP_OBJ_GFX_STEVEN, 134
- .set MAP_OBJ_GFX_WALLY, 135
- .set MAP_OBJ_GFX_LITTLE_BOY_3, 136
- .set MAP_OBJ_GFX_BRENDAN_FISHING, 137
- .set MAP_OBJ_GFX_MAY_FISHING, 138
- .set MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN, 139
- .set MAP_OBJ_GFX_SS_TIDAL, 140
- .set MAP_OBJ_GFX_SUBMARINE_SHADOW, 141
- .set MAP_OBJ_GFX_PICHU_DOLL, 142
- .set MAP_OBJ_GFX_PIKACHU_DOLL, 143
- .set MAP_OBJ_GFX_MARILL_DOLL, 144
- .set MAP_OBJ_GFX_TOGEPI_DOLL, 145
- .set MAP_OBJ_GFX_CYNDAQUIL_DOLL, 146
- .set MAP_OBJ_GFX_CHIKORITA_DOLL, 147
- .set MAP_OBJ_GFX_TOTODILE_DOLL, 148
- .set MAP_OBJ_GFX_JIGGLYPUFF_DOLL, 149
- .set MAP_OBJ_GFX_MEOWTH_DOLL, 150
- .set MAP_OBJ_GFX_CLEFAIRY_DOLL, 151
- .set MAP_OBJ_GFX_DITTO_DOLL, 152
- .set MAP_OBJ_GFX_SMOOCHUM_DOLL, 153
- .set MAP_OBJ_GFX_TREECKO_DOLL, 154
- .set MAP_OBJ_GFX_TORCHIC_DOLL, 155
- .set MAP_OBJ_GFX_MUDKIP_DOLL, 156
- .set MAP_OBJ_GFX_DUSKULL_DOLL, 157
- .set MAP_OBJ_GFX_WYNAUT_DOLL, 158
- .set MAP_OBJ_GFX_BALTOY_DOLL, 159
- .set MAP_OBJ_GFX_KECLEON_DOLL, 160
- .set MAP_OBJ_GFX_AZURILL_DOLL, 161
- .set MAP_OBJ_GFX_SKITTY_DOLL, 162
- .set MAP_OBJ_GFX_SWABLU_DOLL, 163
- .set MAP_OBJ_GFX_GULPIN_DOLL, 164
- .set MAP_OBJ_GFX_LOTAD_DOLL, 165
- .set MAP_OBJ_GFX_SEEDOT_DOLL, 166
- .set MAP_OBJ_GFX_PIKA_CUSHION, 167
- .set MAP_OBJ_GFX_ROUND_CUSHION, 168
- .set MAP_OBJ_GFX_KISS_CUSHION, 169
- .set MAP_OBJ_GFX_ZIGZAG_CUSHION, 170
- .set MAP_OBJ_GFX_SPIN_CUSHION, 171
- .set MAP_OBJ_GFX_DIAMOND_CUSHION, 172
- .set MAP_OBJ_GFX_BALL_CUSHION, 173
- .set MAP_OBJ_GFX_GRASS_CUSHION, 174
- .set MAP_OBJ_GFX_FIRE_CUSHION, 175
- .set MAP_OBJ_GFX_WATER_CUSHION, 176
- .set MAP_OBJ_GFX_BIG_SNORLAX_DOLL, 177
- .set MAP_OBJ_GFX_BIG_RHYDON_DOLL, 178
- .set MAP_OBJ_GFX_BIG_LAPRAS_DOLL, 179
- .set MAP_OBJ_GFX_BIG_VENUSAUR_DOLL, 180
- .set MAP_OBJ_GFX_BIG_CHARIZARD_DOLL, 181
- .set MAP_OBJ_GFX_BIG_BLASTOISE_DOLL, 182
- .set MAP_OBJ_GFX_BIG_WAILMER_DOLL, 183
- .set MAP_OBJ_GFX_BIG_REGIROCK_DOLL, 184
- .set MAP_OBJ_GFX_BIG_REGICE_DOLL, 185
- .set MAP_OBJ_GFX_BIG_REGISTEEL_DOLL, 186
- .set MAP_OBJ_GFX_LATIAS, 187
- .set MAP_OBJ_GFX_LATIOS, 188
- .set MAP_OBJ_GFX_BOY_5, 189
- .set MAP_OBJ_GFX_CONTEST_JUDGE, 190
- .set MAP_OBJ_GFX_BRENDAN_WATERING, 191
- .set MAP_OBJ_GFX_MAY_WATERING, 192
- .set MAP_OBJ_GFX_BRENDAN_DECORATING, 193
- .set MAP_OBJ_GFX_MAY_DECORATING, 194
- .set MAP_OBJ_GFX_ARCHIE, 195
- .set MAP_OBJ_GFX_MAXIE, 196
- .set MAP_OBJ_GFX_KYOGRE_1, 197
- .set MAP_OBJ_GFX_GROUDON_1, 198
- .set MAP_OBJ_GFX_FOSSIL, 199
- .set MAP_OBJ_GFX_REGIROCK, 200
- .set MAP_OBJ_GFX_REGICE, 201
- .set MAP_OBJ_GFX_REGISTEEL, 202
- .set MAP_OBJ_GFX_SKITTY, 203
- .set MAP_OBJ_GFX_KECLEON_1, 204
- .set MAP_OBJ_GFX_KYOGRE_2, 205
- .set MAP_OBJ_GFX_GROUDON_2, 206
- .set MAP_OBJ_GFX_RAYQUAZA, 207
- .set MAP_OBJ_GFX_ZIGZAGOON, 208
- .set MAP_OBJ_GFX_PIKACHU, 209
- .set MAP_OBJ_GFX_AZUMARILL, 210
- .set MAP_OBJ_GFX_WINGULL, 211
- .set MAP_OBJ_GFX_KECLEON_2, 212
- .set MAP_OBJ_GFX_TUBER_M_SWIMMING, 213
- .set MAP_OBJ_GFX_AZURILL, 214
- .set MAP_OBJ_GFX_MOM, 215
- .set MAP_OBJ_GFX_LINK_BRENDAN, 216
- .set MAP_OBJ_GFX_LINK_MAY, 217
-
- .set SHADOW_SIZE_S, 0
- .set SHADOW_SIZE_M, 1
- .set SHADOW_SIZE_L, 2
- .set SHADOW_SIZE_XL, 3
-
- .set F_INANIMATE, 1 << 6
- .set F_DISABLE_REFLECTION_PALETTE_LOAD, 1 << 7
-
- .set TRACKS_NONE, 0
- .set TRACKS_FOOT, 1
- .set TRACKS_BIKE_TIRE, 2
diff --git a/constants/move_constants.inc b/constants/move_constants.inc
deleted file mode 100644
index b6c8edf98..000000000
--- a/constants/move_constants.inc
+++ /dev/null
@@ -1,355 +0,0 @@
- .set MOVE_NONE, 0x000
- .set MOVE_POUND, 0x001
- .set MOVE_KARATE_CHOP, 0x002
- .set MOVE_DOUBLE_SLAP, 0x003
- .set MOVE_COMET_PUNCH, 0x004
- .set MOVE_MEGA_PUNCH, 0x005
- .set MOVE_PAY_DAY, 0x006
- .set MOVE_FIRE_PUNCH, 0x007
- .set MOVE_ICE_PUNCH, 0x008
- .set MOVE_THUNDER_PUNCH, 0x009
- .set MOVE_SCRATCH, 0x00a
- .set MOVE_VICE_GRIP, 0x00b
- .set MOVE_GUILLOTINE, 0x00c
- .set MOVE_RAZOR_WIND, 0x00d
- .set MOVE_SWORDS_DANCE, 0x00e
- .set MOVE_CUT, 0x00f
- .set MOVE_GUST, 0x010
- .set MOVE_WING_ATTACK, 0x011
- .set MOVE_WHIRLWIND, 0x012
- .set MOVE_FLY, 0x013
- .set MOVE_BIND, 0x014
- .set MOVE_SLAM, 0x015
- .set MOVE_VINE_WHIP, 0x016
- .set MOVE_STOMP, 0x017
- .set MOVE_DOUBLE_KICK, 0x018
- .set MOVE_MEGA_KICK, 0x019
- .set MOVE_JUMP_KICK, 0x01a
- .set MOVE_ROLLING_KICK, 0x01b
- .set MOVE_SAND_ATTACK, 0x01c
- .set MOVE_HEADBUTT, 0x01d
- .set MOVE_HORN_ATTACK, 0x01e
- .set MOVE_FURY_ATTACK, 0x01f
- .set MOVE_HORN_DRILL, 0x020
- .set MOVE_TACKLE, 0x021
- .set MOVE_BODY_SLAM, 0x022
- .set MOVE_WRAP, 0x023
- .set MOVE_TAKE_DOWN, 0x024
- .set MOVE_THRASH, 0x025
- .set MOVE_DOUBLE_EDGE, 0x026
- .set MOVE_TAIL_WHIP, 0x027
- .set MOVE_POISON_STING, 0x028
- .set MOVE_TWINEEDLE, 0x029
- .set MOVE_PIN_MISSILE, 0x02a
- .set MOVE_LEER, 0x02b
- .set MOVE_BITE, 0x02c
- .set MOVE_GROWL, 0x02d
- .set MOVE_ROAR, 0x02e
- .set MOVE_SING, 0x02f
- .set MOVE_SUPERSONIC, 0x030
- .set MOVE_SONIC_BOOM, 0x031
- .set MOVE_DISABLE, 0x032
- .set MOVE_ACID, 0x033
- .set MOVE_EMBER, 0x034
- .set MOVE_FLAMETHROWER, 0x035
- .set MOVE_MIST, 0x036
- .set MOVE_WATER_GUN, 0x037
- .set MOVE_HYDRO_PUMP, 0x038
- .set MOVE_SURF, 0x039
- .set MOVE_ICE_BEAM, 0x03a
- .set MOVE_BLIZZARD, 0x03b
- .set MOVE_PSYBEAM, 0x03c
- .set MOVE_BUBBLE_BEAM, 0x03d
- .set MOVE_AURORA_BEAM, 0x03e
- .set MOVE_HYPER_BEAM, 0x03f
- .set MOVE_PECK, 0x040
- .set MOVE_DRILL_PECK, 0x041
- .set MOVE_SUBMISSION, 0x042
- .set MOVE_LOW_KICK, 0x043
- .set MOVE_COUNTER, 0x044
- .set MOVE_SEISMIC_TOSS, 0x045
- .set MOVE_STRENGTH, 0x046
- .set MOVE_ABSORB, 0x047
- .set MOVE_MEGA_DRAIN, 0x048
- .set MOVE_LEECH_SEED, 0x049
- .set MOVE_GROWTH, 0x04a
- .set MOVE_RAZOR_LEAF, 0x04b
- .set MOVE_SOLAR_BEAM, 0x04c
- .set MOVE_POISON_POWDER, 0x04d
- .set MOVE_STUN_SPORE, 0x04e
- .set MOVE_SLEEP_POWDER, 0x04f
- .set MOVE_PETAL_DANCE, 0x050
- .set MOVE_STRING_SHOT, 0x051
- .set MOVE_DRAGON_RAGE, 0x052
- .set MOVE_FIRE_SPIN, 0x053
- .set MOVE_THUNDER_SHOCK, 0x054
- .set MOVE_THUNDERBOLT, 0x055
- .set MOVE_THUNDER_WAVE, 0x056
- .set MOVE_THUNDER, 0x057
- .set MOVE_ROCK_THROW, 0x058
- .set MOVE_EARTHQUAKE, 0x059
- .set MOVE_FISSURE, 0x05a
- .set MOVE_DIG, 0x05b
- .set MOVE_TOXIC, 0x05c
- .set MOVE_CONFUSION, 0x05d
- .set MOVE_PSYCHIC, 0x05e
- .set MOVE_HYPNOSIS, 0x05f
- .set MOVE_MEDITATE, 0x060
- .set MOVE_AGILITY, 0x061
- .set MOVE_QUICK_ATTACK, 0x062
- .set MOVE_RAGE, 0x063
- .set MOVE_TELEPORT, 0x064
- .set MOVE_NIGHT_SHADE, 0x065
- .set MOVE_MIMIC, 0x066
- .set MOVE_SCREECH, 0x067
- .set MOVE_DOUBLE_TEAM, 0x068
- .set MOVE_RECOVER, 0x069
- .set MOVE_HARDEN, 0x06a
- .set MOVE_MINIMIZE, 0x06b
- .set MOVE_SMOKESCREEN, 0x06c
- .set MOVE_CONFUSE_RAY, 0x06d
- .set MOVE_WITHDRAW, 0x06e
- .set MOVE_DEFENSE_CURL, 0x06f
- .set MOVE_BARRIER, 0x070
- .set MOVE_LIGHT_SCREEN, 0x071
- .set MOVE_HAZE, 0x072
- .set MOVE_REFLECT, 0x073
- .set MOVE_FOCUS_ENERGY, 0x074
- .set MOVE_BIDE, 0x075
- .set MOVE_METRONOME, 0x076
- .set MOVE_MIRROR_MOVE, 0x077
- .set MOVE_SELF_DESTRUCT, 0x078
- .set MOVE_EGG_BOMB, 0x079
- .set MOVE_LICK, 0x07a
- .set MOVE_SMOG, 0x07b
- .set MOVE_SLUDGE, 0x07c
- .set MOVE_BONE_CLUB, 0x07d
- .set MOVE_FIRE_BLAST, 0x07e
- .set MOVE_WATERFALL, 0x07f
- .set MOVE_CLAMP, 0x080
- .set MOVE_SWIFT, 0x081
- .set MOVE_SKULL_BASH, 0x082
- .set MOVE_SPIKE_CANNON, 0x083
- .set MOVE_CONSTRICT, 0x084
- .set MOVE_AMNESIA, 0x085
- .set MOVE_KINESIS, 0x086
- .set MOVE_SOFT_BOILED, 0x087
- .set MOVE_HI_JUMP_KICK, 0x088
- .set MOVE_GLARE, 0x089
- .set MOVE_DREAM_EATER, 0x08a
- .set MOVE_POISON_GAS, 0x08b
- .set MOVE_BARRAGE, 0x08c
- .set MOVE_LEECH_LIFE, 0x08d
- .set MOVE_LOVELY_KISS, 0x08e
- .set MOVE_SKY_ATTACK, 0x08f
- .set MOVE_TRANSFORM, 0x090
- .set MOVE_BUBBLE, 0x091
- .set MOVE_DIZZY_PUNCH, 0x092
- .set MOVE_SPORE, 0x093
- .set MOVE_FLASH, 0x094
- .set MOVE_PSYWAVE, 0x095
- .set MOVE_SPLASH, 0x096
- .set MOVE_ACID_ARMOR, 0x097
- .set MOVE_CRABHAMMER, 0x098
- .set MOVE_EXPLOSION, 0x099
- .set MOVE_FURY_SWIPES, 0x09a
- .set MOVE_BONEMERANG, 0x09b
- .set MOVE_REST, 0x09c
- .set MOVE_ROCK_SLIDE, 0x09d
- .set MOVE_HYPER_FANG, 0x09e
- .set MOVE_SHARPEN, 0x09f
- .set MOVE_CONVERSION, 0x0a0
- .set MOVE_TRI_ATTACK, 0x0a1
- .set MOVE_SUPER_FANG, 0x0a2
- .set MOVE_SLASH, 0x0a3
- .set MOVE_SUBSTITUTE, 0x0a4
- .set MOVE_STRUGGLE, 0x0a5
- .set MOVE_SKETCH, 0x0a6
- .set MOVE_TRIPLE_KICK, 0x0a7
- .set MOVE_THIEF, 0x0a8
- .set MOVE_SPIDER_WEB, 0x0a9
- .set MOVE_MIND_READER, 0x0aa
- .set MOVE_NIGHTMARE, 0x0ab
- .set MOVE_FLAME_WHEEL, 0x0ac
- .set MOVE_SNORE, 0x0ad
- .set MOVE_CURSE, 0x0ae
- .set MOVE_FLAIL, 0x0af
- .set MOVE_CONVERSION_2, 0x0b0
- .set MOVE_AEROBLAST, 0x0b1
- .set MOVE_COTTON_SPORE, 0x0b2
- .set MOVE_REVERSAL, 0x0b3
- .set MOVE_SPITE, 0x0b4
- .set MOVE_POWDER_SNOW, 0x0b5
- .set MOVE_PROTECT, 0x0b6
- .set MOVE_MACH_PUNCH, 0x0b7
- .set MOVE_SCARY_FACE, 0x0b8
- .set MOVE_FAINT_ATTACK, 0x0b9
- .set MOVE_SWEET_KISS, 0x0ba
- .set MOVE_BELLY_DRUM, 0x0bb
- .set MOVE_SLUDGE_BOMB, 0x0bc
- .set MOVE_MUD_SLAP, 0x0bd
- .set MOVE_OCTAZOOKA, 0x0be
- .set MOVE_SPIKES, 0x0bf
- .set MOVE_ZAP_CANNON, 0x0c0
- .set MOVE_FORESIGHT, 0x0c1
- .set MOVE_DESTINY_BOND, 0x0c2
- .set MOVE_PERISH_SONG, 0x0c3
- .set MOVE_ICY_WIND, 0x0c4
- .set MOVE_DETECT, 0x0c5
- .set MOVE_BONE_RUSH, 0x0c6
- .set MOVE_LOCK_ON, 0x0c7
- .set MOVE_OUTRAGE, 0x0c8
- .set MOVE_SANDSTORM, 0x0c9
- .set MOVE_GIGA_DRAIN, 0x0ca
- .set MOVE_ENDURE, 0x0cb
- .set MOVE_CHARM, 0x0cc
- .set MOVE_ROLLOUT, 0x0cd
- .set MOVE_FALSE_SWIPE, 0x0ce
- .set MOVE_SWAGGER, 0x0cf
- .set MOVE_MILK_DRINK, 0x0d0
- .set MOVE_SPARK, 0x0d1
- .set MOVE_FURY_CUTTER, 0x0d2
- .set MOVE_STEEL_WING, 0x0d3
- .set MOVE_MEAN_LOOK, 0x0d4
- .set MOVE_ATTRACT, 0x0d5
- .set MOVE_SLEEP_TALK, 0x0d6
- .set MOVE_HEAL_BELL, 0x0d7
- .set MOVE_RETURN, 0x0d8
- .set MOVE_PRESENT, 0x0d9
- .set MOVE_FRUSTRATION, 0x0da
- .set MOVE_SAFEGUARD, 0x0db
- .set MOVE_PAIN_SPLIT, 0x0dc
- .set MOVE_SACRED_FIRE, 0x0dd
- .set MOVE_MAGNITUDE, 0x0de
- .set MOVE_DYNAMIC_PUNCH, 0x0df
- .set MOVE_MEGAHORN, 0x0e0
- .set MOVE_DRAGON_BREATH, 0x0e1
- .set MOVE_BATON_PASS, 0x0e2
- .set MOVE_ENCORE, 0x0e3
- .set MOVE_PURSUIT, 0x0e4
- .set MOVE_RAPID_SPIN, 0x0e5
- .set MOVE_SWEET_SCENT, 0x0e6
- .set MOVE_IRON_TAIL, 0x0e7
- .set MOVE_METAL_CLAW, 0x0e8
- .set MOVE_VITAL_THROW, 0x0e9
- .set MOVE_MORNING_SUN, 0x0ea
- .set MOVE_SYNTHESIS, 0x0eb
- .set MOVE_MOONLIGHT, 0x0ec
- .set MOVE_HIDDEN_POWER, 0x0ed
- .set MOVE_CROSS_CHOP, 0x0ee
- .set MOVE_TWISTER, 0x0ef
- .set MOVE_RAIN_DANCE, 0x0f0
- .set MOVE_SUNNY_DAY, 0x0f1
- .set MOVE_CRUNCH, 0x0f2
- .set MOVE_MIRROR_COAT, 0x0f3
- .set MOVE_PSYCH_UP, 0x0f4
- .set MOVE_EXTREME_SPEED, 0x0f5
- .set MOVE_ANCIENT_POWER, 0x0f6
- .set MOVE_SHADOW_BALL, 0x0f7
- .set MOVE_FUTURE_SIGHT, 0x0f8
- .set MOVE_ROCK_SMASH, 0x0f9
- .set MOVE_WHIRLPOOL, 0x0fa
- .set MOVE_BEAT_UP, 0x0fb
- .set MOVE_FAKE_OUT, 0x0fc
- .set MOVE_UPROAR, 0x0fd
- .set MOVE_STOCKPILE, 0x0fe
- .set MOVE_SPIT_UP, 0x0ff
- .set MOVE_SWALLOW, 0x100
- .set MOVE_HEAT_WAVE, 0x101
- .set MOVE_HAIL, 0x102
- .set MOVE_TORMENT, 0x103
- .set MOVE_FLATTER, 0x104
- .set MOVE_WILL_O_WISP, 0x105
- .set MOVE_MEMENTO, 0x106
- .set MOVE_FACADE, 0x107
- .set MOVE_FOCUS_PUNCH, 0x108
- .set MOVE_SMELLING_SALT, 0x109
- .set MOVE_FOLLOW_ME, 0x10a
- .set MOVE_NATURE_POWER, 0x10b
- .set MOVE_CHARGE, 0x10c
- .set MOVE_TAUNT, 0x10d
- .set MOVE_HELPING_HAND, 0x10e
- .set MOVE_TRICK, 0x10f
- .set MOVE_ROLE_PLAY, 0x110
- .set MOVE_WISH, 0x111
- .set MOVE_ASSIST, 0x112
- .set MOVE_INGRAIN, 0x113
- .set MOVE_SUPERPOWER, 0x114
- .set MOVE_MAGIC_COAT, 0x115
- .set MOVE_RECYCLE, 0x116
- .set MOVE_REVENGE, 0x117
- .set MOVE_BRICK_BREAK, 0x118
- .set MOVE_YAWN, 0x119
- .set MOVE_KNOCK_OFF, 0x11a
- .set MOVE_ENDEAVOR, 0x11b
- .set MOVE_ERUPTION, 0x11c
- .set MOVE_SKILL_SWAP, 0x11d
- .set MOVE_IMPRISON, 0x11e
- .set MOVE_REFRESH, 0x11f
- .set MOVE_GRUDGE, 0x120
- .set MOVE_SNATCH, 0x121
- .set MOVE_SECRET_POWER, 0x122
- .set MOVE_DIVE, 0x123
- .set MOVE_ARM_THRUST, 0x124
- .set MOVE_CAMOUFLAGE, 0x125
- .set MOVE_TAIL_GLOW, 0x126
- .set MOVE_LUSTER_PURGE, 0x127
- .set MOVE_MIST_BALL, 0x128
- .set MOVE_FEATHER_DANCE, 0x129
- .set MOVE_TEETER_DANCE, 0x12a
- .set MOVE_BLAZE_KICK, 0x12b
- .set MOVE_MUD_SPORT, 0x12c
- .set MOVE_ICE_BALL, 0x12d
- .set MOVE_NEEDLE_ARM, 0x12e
- .set MOVE_SLACK_OFF, 0x12f
- .set MOVE_HYPER_VOICE, 0x130
- .set MOVE_POISON_FANG, 0x131
- .set MOVE_CRUSH_CLAW, 0x132
- .set MOVE_BLAST_BURN, 0x133
- .set MOVE_HYDRO_CANNON, 0x134
- .set MOVE_METEOR_MASH, 0x135
- .set MOVE_ASTONISH, 0x136
- .set MOVE_WEATHER_BALL, 0x137
- .set MOVE_AROMATHERAPY, 0x138
- .set MOVE_FAKE_TEARS, 0x139
- .set MOVE_AIR_CUTTER, 0x13a
- .set MOVE_OVERHEAT, 0x13b
- .set MOVE_ODOR_SLEUTH, 0x13c
- .set MOVE_ROCK_TOMB, 0x13d
- .set MOVE_SILVER_WIND, 0x13e
- .set MOVE_METAL_SOUND, 0x13f
- .set MOVE_GRASS_WHISTLE, 0x140
- .set MOVE_TICKLE, 0x141
- .set MOVE_COSMIC_POWER, 0x142
- .set MOVE_WATER_SPOUT, 0x143
- .set MOVE_SIGNAL_BEAM, 0x144
- .set MOVE_SHADOW_PUNCH, 0x145
- .set MOVE_EXTRASENSORY, 0x146
- .set MOVE_SKY_UPPERCUT, 0x147
- .set MOVE_SAND_TOMB, 0x148
- .set MOVE_SHEER_COLD, 0x149
- .set MOVE_MUDDY_WATER, 0x14a
- .set MOVE_BULLET_SEED, 0x14b
- .set MOVE_AERIAL_ACE, 0x14c
- .set MOVE_ICICLE_SPEAR, 0x14d
- .set MOVE_IRON_DEFENSE, 0x14e
- .set MOVE_BLOCK, 0x14f
- .set MOVE_HOWL, 0x150
- .set MOVE_DRAGON_CLAW, 0x151
- .set MOVE_FRENZY_PLANT, 0x152
- .set MOVE_BULK_UP, 0x153
- .set MOVE_BOUNCE, 0x154
- .set MOVE_MUD_SHOT, 0x155
- .set MOVE_POISON_TAIL, 0x156
- .set MOVE_COVET, 0x157
- .set MOVE_VOLT_TACKLE, 0x158
- .set MOVE_MAGICAL_LEAF, 0x159
- .set MOVE_WATER_SPORT, 0x15a
- .set MOVE_CALM_MIND, 0x15b
- .set MOVE_LEAF_BLADE, 0x15c
- .set MOVE_DRAGON_DANCE, 0x15d
- .set MOVE_ROCK_BLAST, 0x15e
- .set MOVE_SHOCK_WAVE, 0x15f
- .set MOVE_WATER_PULSE, 0x160
- .set MOVE_DOOM_DESIRE, 0x161
- .set MOVE_PSYCHO_BOOST, 0x162
diff --git a/constants/opponent_constants.inc b/constants/opponent_constants.inc
deleted file mode 100644
index 6782d3151..000000000
--- a/constants/opponent_constants.inc
+++ /dev/null
@@ -1,694 +0,0 @@
- .set OPPONENT_NONE, 0
- .set OPPONENT_ARCHIE_1, 1
- .set OPPONENT_GRUNT_1, 2
- .set OPPONENT_GRUNT_2, 3
- .set OPPONENT_GRUNT_3, 4
- .set OPPONENT_GRUNT_4, 5
- .set OPPONENT_GRUNT_5, 6
- .set OPPONENT_GRUNT_6, 7
- .set OPPONENT_GRUNT_7, 8
- .set OPPONENT_GRUNT_8, 9
- .set OPPONENT_GRUNT_9, 10
- .set OPPONENT_GRUNT_10, 11
- .set OPPONENT_GRUNT_11, 12
- .set OPPONENT_GRUNT_12, 13
- .set OPPONENT_GRUNT_13, 14
- .set OPPONENT_GRUNT_14, 15
- .set OPPONENT_GRUNT_15, 16
- .set OPPONENT_GRUNT_16, 17
- .set OPPONENT_GRUNT_17, 18
- .set OPPONENT_GRUNT_18, 19
- .set OPPONENT_GRUNT_19, 20
- .set OPPONENT_GRUNT_20, 21
- .set OPPONENT_GRUNT_21, 22
- .set OPPONENT_GRUNT_22, 23
- .set OPPONENT_GRUNT_23, 24
- .set OPPONENT_GRUNT_24, 25
- .set OPPONENT_GRUNT_25, 26
- .set OPPONENT_GRUNT_26, 27
- .set OPPONENT_GRUNT_27, 28
- .set OPPONENT_ANONYMOUS_1, 29
- .set OPPONENT_MATT_1, 30
- .set OPPONENT_MATT_2, 31
- .set OPPONENT_SHELLY_1, 32
- .set OPPONENT_SHELLY_2, 33
- .set OPPONENT_ARCHIE_2, 34
- .set OPPONENT_ARCHIE_3, 35
- .set OPPONENT_DAISY, 36
- .set OPPONENT_ROSE_1, 37
- .set OPPONENT_LILY, 38
- .set OPPONENT_VIOLET, 39
- .set OPPONENT_ROSE_2, 40
- .set OPPONENT_ROSE_3, 41
- .set OPPONENT_ROSE_4, 42
- .set OPPONENT_ROSE_5, 43
- .set OPPONENT_DUSTY_1, 44
- .set OPPONENT_CHIP, 45
- .set OPPONENT_FOSTER, 46
- .set OPPONENT_DUSTY_2, 47
- .set OPPONENT_DUSTY_3, 48
- .set OPPONENT_DUSTY_4, 49
- .set OPPONENT_DUSTY_5, 50
- .set OPPONENT_GABBY_AND_TY_1, 51
- .set OPPONENT_GABBY_AND_TY_2, 52
- .set OPPONENT_GABBY_AND_TY_3, 53
- .set OPPONENT_GABBY_AND_TY_4, 54
- .set OPPONENT_GABBY_AND_TY_5, 55
- .set OPPONENT_GABBY_AND_TY_6, 56
- .set OPPONENT_LOLA_1, 57
- .set OPPONENT_CARMEN, 58
- .set OPPONENT_GWEN, 59
- .set OPPONENT_LOLA_2, 60
- .set OPPONENT_LOLA_3, 61
- .set OPPONENT_LOLA_4, 62
- .set OPPONENT_LOLA_5, 63
- .set OPPONENT_RICKY_1, 64
- .set OPPONENT_SIMON, 65
- .set OPPONENT_CHARLIE, 66
- .set OPPONENT_RICKY_2, 67
- .set OPPONENT_RICKY_3, 68
- .set OPPONENT_RICKY_4, 69
- .set OPPONENT_RICKY_5, 70
- .set OPPONENT_RANDALL, 71
- .set OPPONENT_PARKER, 72
- .set OPPONENT_GEORGE, 73
- .set OPPONENT_BERKE, 74
- .set OPPONENT_CLYDE, 75
- .set OPPONENT_VINCENT, 76
- .set OPPONENT_LEROY, 77
- .set OPPONENT_WILTON_1, 78
- .set OPPONENT_EDGAR, 79
- .set OPPONENT_ALBERT, 80
- .set OPPONENT_SAMUEL, 81
- .set OPPONENT_VITO, 82
- .set OPPONENT_OWEN, 83
- .set OPPONENT_WILTON_2, 84
- .set OPPONENT_WILTON_3, 85
- .set OPPONENT_WILTON_4, 86
- .set OPPONENT_WILTON_5, 87
- .set OPPONENT_WARREN, 88
- .set OPPONENT_MARY, 89
- .set OPPONENT_LORI, 90
- .set OPPONENT_JODY, 91
- .set OPPONENT_WENDY, 92
- .set OPPONENT_ELAINE, 93
- .set OPPONENT_BROOKE_1, 94
- .set OPPONENT_JENNIFER, 95
- .set OPPONENT_HOPE, 96
- .set OPPONENT_SHANNON, 97
- .set OPPONENT_MICHELLE, 98
- .set OPPONENT_CAROLINE, 99
- .set OPPONENT_JULIE, 100
- .set OPPONENT_BROOKE_2, 101
- .set OPPONENT_BROOKE_3, 102
- .set OPPONENT_BROOKE_4, 103
- .set OPPONENT_BROOKE_5, 104
- .set OPPONENT_PATRICIA, 105
- .set OPPONENT_KINDRA, 106
- .set OPPONENT_TAMMY, 107
- .set OPPONENT_VALERIE_1, 108
- .set OPPONENT_TASHA, 109
- .set OPPONENT_VALERIE_2, 110
- .set OPPONENT_VALERIE_3, 111
- .set OPPONENT_VALERIE_4, 112
- .set OPPONENT_VALERIE_5, 113
- .set OPPONENT_CINDY_1, 114
- .set OPPONENT_ANONYMOUS_2, 115
- .set OPPONENT_BRIANNA_1, 116
- .set OPPONENT_CINDY_2, 117
- .set OPPONENT_BRIANNA_2, 118
- .set OPPONENT_ANETTE, 119
- .set OPPONENT_CINDY_3, 120
- .set OPPONENT_CINDY_4, 121
- .set OPPONENT_CINDY_5, 122
- .set OPPONENT_CINDY_6, 123
- .set OPPONENT_MELISSA, 124
- .set OPPONENT_SHEILA, 125
- .set OPPONENT_SHIRLEY, 126
- .set OPPONENT_JESSICA_1, 127
- .set OPPONENT_CONNIE, 128
- .set OPPONENT_BRIDGET, 129
- .set OPPONENT_OLIVIA, 130
- .set OPPONENT_TIFFANY, 131
- .set OPPONENT_JESSICA_2, 132
- .set OPPONENT_JESSICA_3, 133
- .set OPPONENT_JESSICA_4, 134
- .set OPPONENT_JESSICA_5, 135
- .set OPPONENT_WINSTON_1, 136
- .set OPPONENT_ANONYMOUS_3, 137
- .set OPPONENT_GARRET, 138
- .set OPPONENT_WINSTON_2, 139
- .set OPPONENT_WINSTON_3, 140
- .set OPPONENT_WINSTON_4, 141
- .set OPPONENT_WINSTON_5, 142
- .set OPPONENT_STEVE_1, 143
- .set OPPONENT_CHRIS, 144
- .set OPPONENT_MARK, 145
- .set OPPONENT_KENN, 146
- .set OPPONENT_STEVE_2, 147
- .set OPPONENT_STEVE_3, 148
- .set OPPONENT_STEVE_4, 149
- .set OPPONENT_STEVE_5, 150
- .set OPPONENT_LUIS, 151
- .set OPPONENT_AUSTIN, 152
- .set OPPONENT_DOUGLAS, 153
- .set OPPONENT_DARRIN, 154
- .set OPPONENT_TONY_1, 155
- .set OPPONENT_JEROME, 156
- .set OPPONENT_MATTHEW, 157
- .set OPPONENT_DAVID, 158
- .set OPPONENT_SPENCER, 159
- .set OPPONENT_ROLAND, 160
- .set OPPONENT_CODY, 161
- .set OPPONENT_STAN, 162
- .set OPPONENT_BARRY, 163
- .set OPPONENT_DEAN, 164
- .set OPPONENT_RODNEY, 165
- .set OPPONENT_RICHARD, 166
- .set OPPONENT_HERMAN, 167
- .set OPPONENT_ANONYMOUS_4, 168
- .set OPPONENT_GILBERT, 169
- .set OPPONENT_FRANKLIN, 170
- .set OPPONENT_DANNY, 171
- .set OPPONENT_JACK, 172
- .set OPPONENT_DUDLEY, 173
- .set OPPONENT_CHAD, 174
- .set OPPONENT_TONY_2, 175
- .set OPPONENT_TONY_3, 176
- .set OPPONENT_TONY_4, 177
- .set OPPONENT_TONY_5, 178
- .set OPPONENT_HIDEKI, 179
- .set OPPONENT_HITOSHI, 180
- .set OPPONENT_KIYO, 181
- .set OPPONENT_KOICHI, 182
- .set OPPONENT_NOB_1, 183
- .set OPPONENT_NOB_2, 184
- .set OPPONENT_NOB_3, 185
- .set OPPONENT_NOB_4, 186
- .set OPPONENT_NOB_5, 187
- .set OPPONENT_YUJI, 188
- .set OPPONENT_DAISUKE, 189
- .set OPPONENT_ATSUSHI, 190
- .set OPPONENT_KIRK, 191
- .set OPPONENT_SCOTT, 192
- .set OPPONENT_HARVEY, 193
- .set OPPONENT_SHAWN, 194
- .set OPPONENT_RANDY, 195
- .set OPPONENT_DALTON_1, 196
- .set OPPONENT_DALTON_2, 197
- .set OPPONENT_DALTON_3, 198
- .set OPPONENT_DALTON_4, 199
- .set OPPONENT_DALTON_5, 200
- .set OPPONENT_COLE, 201
- .set OPPONENT_FLINT, 202
- .set OPPONENT_AXLE, 203
- .set OPPONENT_JAKE, 204
- .set OPPONENT_ANDY, 205
- .set OPPONENT_BERNIE_1, 206
- .set OPPONENT_BERNIE_2, 207
- .set OPPONENT_BERNIE_3, 208
- .set OPPONENT_BERNIE_4, 209
- .set OPPONENT_BERNIE_5, 210
- .set OPPONENT_DREW, 211
- .set OPPONENT_CLIFF, 212
- .set OPPONENT_LARRY, 213
- .set OPPONENT_SHANE, 214
- .set OPPONENT_JUSTIN, 215
- .set OPPONENT_ETHAN_1, 216
- .set OPPONENT_JEFF, 217
- .set OPPONENT_TRAVIS, 218
- .set OPPONENT_ETHAN_2, 219
- .set OPPONENT_ETHAN_3, 220
- .set OPPONENT_ETHAN_4, 221
- .set OPPONENT_ETHAN_5, 222
- .set OPPONENT_BRENT, 223
- .set OPPONENT_DONALD, 224
- .set OPPONENT_TAYLOR, 225
- .set OPPONENT_BRANDON_1, 226
- .set OPPONENT_DEREK, 227
- .set OPPONENT_BRANDON_2, 228
- .set OPPONENT_BRANDON_3, 229
- .set OPPONENT_BRANDON_4, 230
- .set OPPONENT_BRANDON_5, 231
- .set OPPONENT_EDWARD, 232
- .set OPPONENT_PRESTON, 233
- .set OPPONENT_VIRGIL, 234
- .set OPPONENT_FRITZ, 235
- .set OPPONENT_WILLIAM, 236
- .set OPPONENT_JOSHUA, 237
- .set OPPONENT_CAMERON_1, 238
- .set OPPONENT_CAMERON_2, 239
- .set OPPONENT_CAMERON_3, 240
- .set OPPONENT_CAMERON_4, 241
- .set OPPONENT_CAMERON_5, 242
- .set OPPONENT_JACLYN, 243
- .set OPPONENT_HANNAH, 244
- .set OPPONENT_SAMANTHA, 245
- .set OPPONENT_MAURA, 246
- .set OPPONENT_KAYLA, 247
- .set OPPONENT_ALEXIS, 248
- .set OPPONENT_JACKI_1, 249
- .set OPPONENT_JACKI_2, 250
- .set OPPONENT_JACKI_3, 251
- .set OPPONENT_JACKI_4, 252
- .set OPPONENT_JACKI_5, 253
- .set OPPONENT_WALTER_1, 254
- .set OPPONENT_TUCKER, 255
- .set OPPONENT_THOMAS, 256
- .set OPPONENT_WALTER_2, 257
- .set OPPONENT_WALTER_3, 258
- .set OPPONENT_WALTER_4, 259
- .set OPPONENT_WALTER_5, 260
- .set OPPONENT_SIDNEY, 261
- .set OPPONENT_PHOEBE, 262
- .set OPPONENT_GLACIA, 263
- .set OPPONENT_DRAKE, 264
- .set OPPONENT_ROXANNE, 265
- .set OPPONENT_BRAWLY, 266
- .set OPPONENT_WATTSON, 267
- .set OPPONENT_FLANNERY, 268
- .set OPPONENT_NORMAN, 269
- .set OPPONENT_WINONA, 270
- .set OPPONENT_TATE_AND_LIZA, 271
- .set OPPONENT_WALLACE, 272
- .set OPPONENT_JERRY_1, 273
- .set OPPONENT_TED, 274
- .set OPPONENT_PAUL, 275
- .set OPPONENT_JERRY_2, 276
- .set OPPONENT_JERRY_3, 277
- .set OPPONENT_JERRY_4, 278
- .set OPPONENT_JERRY_5, 279
- .set OPPONENT_KAREN_1, 280
- .set OPPONENT_GEORGIA, 281
- .set OPPONENT_KAREN_2, 282
- .set OPPONENT_KAREN_3, 283
- .set OPPONENT_KAREN_4, 284
- .set OPPONENT_KAREN_5, 285
- .set OPPONENT_KATE_AND_JOY, 286
- .set OPPONENT_ANNA_AND_MEG_1, 287
- .set OPPONENT_ANNA_AND_MEG_2, 288
- .set OPPONENT_ANNA_AND_MEG_3, 289
- .set OPPONENT_ANNA_AND_MEG_4, 290
- .set OPPONENT_ANNA_AND_MEG_5, 291
- .set OPPONENT_VICTOR, 292
- .set OPPONENT_MIGUEL_1, 293
- .set OPPONENT_COLTON, 294
- .set OPPONENT_MIGUEL_2, 295
- .set OPPONENT_MIGUEL_3, 296
- .set OPPONENT_MIGUEL_4, 297
- .set OPPONENT_MIGUEL_5, 298
- .set OPPONENT_VICTORIA, 299
- .set OPPONENT_VANESSA, 300
- .set OPPONENT_MARISSA, 301
- .set OPPONENT_ISABEL_1, 302
- .set OPPONENT_ISABEL_2, 303
- .set OPPONENT_ISABEL_3, 304
- .set OPPONENT_ISABEL_4, 305
- .set OPPONENT_ISABEL_5, 306
- .set OPPONENT_TIMOTHY_1, 307
- .set OPPONENT_TIMOTHY_2, 308
- .set OPPONENT_TIMOTHY_3, 309
- .set OPPONENT_TIMOTHY_4, 310
- .set OPPONENT_TIMOTHY_5, 311
- .set OPPONENT_VICKY, 312
- .set OPPONENT_SHELBY_1, 313
- .set OPPONENT_SHELBY_2, 314
- .set OPPONENT_SHELBY_3, 315
- .set OPPONENT_SHELBY_4, 316
- .set OPPONENT_SHELBY_5, 317
- .set OPPONENT_CALVIN_1, 318
- .set OPPONENT_BILLY, 319
- .set OPPONENT_JOSH, 320
- .set OPPONENT_TOMMY, 321
- .set OPPONENT_JOEY, 322
- .set OPPONENT_BEN, 323
- .set OPPONENT_ANONYMOUS_5, 324
- .set OPPONENT_KEVIN, 325
- .set OPPONENT_NEAL, 326
- .set OPPONENT_DILLON, 327
- .set OPPONENT_CALVIN_2, 328
- .set OPPONENT_CALVIN_3, 329
- .set OPPONENT_CALVIN_4, 330
- .set OPPONENT_CALVIN_5, 331
- .set OPPONENT_EDDIE, 332
- .set OPPONENT_ALLEN, 333
- .set OPPONENT_TIMMY, 334
- .set OPPONENT_STEVEN, 335
- .set OPPONENT_ANDREW, 336
- .set OPPONENT_IVAN, 337
- .set OPPONENT_CLAUDE, 338
- .set OPPONENT_ELLIOT_1, 339
- .set OPPONENT_NED, 340
- .set OPPONENT_DALE, 341
- .set OPPONENT_NOLAN, 342
- .set OPPONENT_BARNY, 343
- .set OPPONENT_WADE, 344
- .set OPPONENT_CARTER, 345
- .set OPPONENT_ELLIOT_2, 346
- .set OPPONENT_ELLIOT_3, 347
- .set OPPONENT_ELLIOT_4, 348
- .set OPPONENT_ELLIOT_5, 349
- .set OPPONENT_RONALD, 350
- .set OPPONENT_JACOB, 351
- .set OPPONENT_ANTHONY, 352
- .set OPPONENT_BENJAMIN_1, 353
- .set OPPONENT_BENJAMIN_2, 354
- .set OPPONENT_BENJAMIN_3, 355
- .set OPPONENT_BENJAMIN_4, 356
- .set OPPONENT_BENJAMIN_5, 357
- .set OPPONENT_ABIGAIL_1, 358
- .set OPPONENT_JASMINE, 359
- .set OPPONENT_ABIGAIL_2, 360
- .set OPPONENT_ABIGAIL_3, 361
- .set OPPONENT_ABIGAIL_4, 362
- .set OPPONENT_ABIGAIL_5, 363
- .set OPPONENT_DYLAN_1, 364
- .set OPPONENT_DYLAN_2, 365
- .set OPPONENT_DYLAN_3, 366
- .set OPPONENT_DYLAN_4, 367
- .set OPPONENT_DYLAN_5, 368
- .set OPPONENT_MARIA_1, 369
- .set OPPONENT_MARIA_2, 370
- .set OPPONENT_MARIA_3, 371
- .set OPPONENT_MARIA_4, 372
- .set OPPONENT_MARIA_5, 373
- .set OPPONENT_CALEB, 374
- .set OPPONENT_ANONYMOUS_6, 375
- .set OPPONENT_ISAIAH_1, 376
- .set OPPONENT_ANONYMOUS_7, 377
- .set OPPONENT_CHASE, 378
- .set OPPONENT_ISAIAH_2, 379
- .set OPPONENT_ISAIAH_3, 380
- .set OPPONENT_ISAIAH_4, 381
- .set OPPONENT_ISAIAH_5, 382
- .set OPPONENT_ANONYMOUS_8, 383
- .set OPPONENT_CONNOR, 384
- .set OPPONENT_ANONYMOUS_9, 385
- .set OPPONENT_KATELYN_1, 386
- .set OPPONENT_ALLISON, 387
- .set OPPONENT_KATELYN_2, 388
- .set OPPONENT_KATELYN_3, 389
- .set OPPONENT_KATELYN_4, 390
- .set OPPONENT_KATELYN_5, 391
- .set OPPONENT_NICOLAS_1, 392
- .set OPPONENT_NICOLAS_2, 393
- .set OPPONENT_NICOLAS_3, 394
- .set OPPONENT_NICOLAS_4, 395
- .set OPPONENT_NICOLAS_5, 396
- .set OPPONENT_AARON, 397
- .set OPPONENT_PERRY, 398
- .set OPPONENT_HUGH, 399
- .set OPPONENT_PHIL, 400
- .set OPPONENT_JARED, 401
- .set OPPONENT_ANONYMOUS_10, 402
- .set OPPONENT_TANNER, 403
- .set OPPONENT_WILL, 404
- .set OPPONENT_COLIN, 405
- .set OPPONENT_ROBERT_1, 406
- .set OPPONENT_BENNY, 407
- .set OPPONENT_CHESTER, 408
- .set OPPONENT_ROBERT_2, 409
- .set OPPONENT_ROBERT_3, 410
- .set OPPONENT_ROBERT_4, 411
- .set OPPONENT_ROBERT_5, 412
- .set OPPONENT_ALEX, 413
- .set OPPONENT_BECK, 414
- .set OPPONENT_YASU, 415
- .set OPPONENT_TAKASHI, 416
- .set OPPONENT_MAKOTO, 417
- .set OPPONENT_HIDEO_1, 418
- .set OPPONENT_LAO_1, 419
- .set OPPONENT_LUNG, 420
- .set OPPONENT_LAO_2, 421
- .set OPPONENT_LAO_3, 422
- .set OPPONENT_LAO_4, 423
- .set OPPONENT_LAO_5, 424
- .set OPPONENT_TESSA, 425
- .set OPPONENT_LAURA, 426
- .set OPPONENT_CYNDY_1, 427
- .set OPPONENT_CORA, 428
- .set OPPONENT_JILL, 429
- .set OPPONENT_CYNDY_2, 430
- .set OPPONENT_CYNDY_3, 431
- .set OPPONENT_CYNDY_4, 432
- .set OPPONENT_CYNDY_5, 433
- .set OPPONENT_MADELINE_1, 434
- .set OPPONENT_CLARISSA, 435
- .set OPPONENT_ANGELICA, 436
- .set OPPONENT_MADELINE_2, 437
- .set OPPONENT_MADELINE_3, 438
- .set OPPONENT_MADELINE_4, 439
- .set OPPONENT_MADELINE_5, 440
- .set OPPONENT_BEVERLY, 441
- .set OPPONENT_DAWN, 442
- .set OPPONENT_NICOLE, 443
- .set OPPONENT_DENISE, 444
- .set OPPONENT_BETH, 445
- .set OPPONENT_TARA, 446
- .set OPPONENT_MISSY, 447
- .set OPPONENT_ALICE, 448
- .set OPPONENT_JENNY_1, 449
- .set OPPONENT_GRACE, 450
- .set OPPONENT_TANYA, 451
- .set OPPONENT_SHARON, 452
- .set OPPONENT_NIKKI, 453
- .set OPPONENT_BRENDA, 454
- .set OPPONENT_KATIE, 455
- .set OPPONENT_SUSIE, 456
- .set OPPONENT_KARA, 457
- .set OPPONENT_DANA, 458
- .set OPPONENT_ERIN, 459
- .set OPPONENT_DEBRA, 460
- .set OPPONENT_LINDA, 461
- .set OPPONENT_KAYLEE, 462
- .set OPPONENT_LAUREL, 463
- .set OPPONENT_DARCY, 464
- .set OPPONENT_JENNY_2, 465
- .set OPPONENT_JENNY_3, 466
- .set OPPONENT_JENNY_4, 467
- .set OPPONENT_JENNY_5, 468
- .set OPPONENT_HEIDI, 469
- .set OPPONENT_BECKY, 470
- .set OPPONENT_CAROL, 471
- .set OPPONENT_NANCY, 472
- .set OPPONENT_MARTHA, 473
- .set OPPONENT_DIANA_1, 474
- .set OPPONENT_NINA, 475
- .set OPPONENT_IRENE, 476
- .set OPPONENT_DIANA_2, 477
- .set OPPONENT_DIANA_3, 478
- .set OPPONENT_DIANA_4, 479
- .set OPPONENT_DIANA_5, 480
- .set OPPONENT_AMY_AND_LIV_1, 481
- .set OPPONENT_AMY_AND_LIV_2, 482
- .set OPPONENT_GINA_AND_MIA_1, 483
- .set OPPONENT_MIU_AND_YUKI, 484
- .set OPPONENT_AMY_AND_LIV_3, 485
- .set OPPONENT_GINA_AND_MIA_2, 486
- .set OPPONENT_AMY_AND_LIV_4, 487
- .set OPPONENT_AMY_AND_LIV_5, 488
- .set OPPONENT_AMY_AND_LIV_6, 489
- .set OPPONENT_HUEY, 490
- .set OPPONENT_EDMOND, 491
- .set OPPONENT_ERNEST_1, 492
- .set OPPONENT_DWAYNE, 493
- .set OPPONENT_PHILLIP, 494
- .set OPPONENT_LEONARD, 495
- .set OPPONENT_DUNCAN, 496
- .set OPPONENT_ERNEST_2, 497
- .set OPPONENT_ERNEST_3, 498
- .set OPPONENT_ERNEST_4, 499
- .set OPPONENT_ERNEST_5, 500
- .set OPPONENT_ANONYMOUS_11, 501
- .set OPPONENT_ANONYMOUS_12, 502
- .set OPPONENT_ANONYMOUS_13, 503
- .set OPPONENT_SONNY, 504
- .set OPPONENT_DONOVAN, 505
- .set OPPONENT_GERALD, 506
- .set OPPONENT_KELVIN, 507
- .set OPPONENT_KODY, 508
- .set OPPONENT_TEVIN, 509
- .set OPPONENT_DAMON, 510
- .set OPPONENT_PABLO, 511
- .set OPPONENT_EDWIN_1, 512
- .set OPPONENT_HECTOR_1, 513
- .set OPPONENT_HECTOR_2, 514
- .set OPPONENT_EDWIN_2, 515
- .set OPPONENT_EDWIN_3, 516
- .set OPPONENT_EDWIN_4, 517
- .set OPPONENT_EDWIN_5, 518
- .set OPPONENT_WALLY_1, 519
- .set OPPONENT_BRENDAN_1, 520
- .set OPPONENT_BRENDAN_2, 521
- .set OPPONENT_BRENDAN_3, 522
- .set OPPONENT_BRENDAN_4, 523
- .set OPPONENT_BRENDAN_5, 524
- .set OPPONENT_BRENDAN_6, 525
- .set OPPONENT_BRENDAN_7, 526
- .set OPPONENT_BRENDAN_8, 527
- .set OPPONENT_BRENDAN_9, 528
- .set OPPONENT_MAY_1, 529
- .set OPPONENT_MAY_2, 530
- .set OPPONENT_MAY_3, 531
- .set OPPONENT_MAY_4, 532
- .set OPPONENT_MAY_5, 533
- .set OPPONENT_MAY_6, 534
- .set OPPONENT_MAY_7, 535
- .set OPPONENT_MAY_8, 536
- .set OPPONENT_MAY_9, 537
- .set OPPONENT_ISAAC_1, 538
- .set OPPONENT_RILEY, 539
- .set OPPONENT_AIDAN, 540
- .set OPPONENT_ISAAC_2, 541
- .set OPPONENT_ISAAC_3, 542
- .set OPPONENT_ISAAC_4, 543
- .set OPPONENT_ISAAC_5, 544
- .set OPPONENT_LYDIA_1, 545
- .set OPPONENT_ALEXIA, 546
- .set OPPONENT_DANIELLE, 547
- .set OPPONENT_LYDIA_2, 548
- .set OPPONENT_LYDIA_3, 549
- .set OPPONENT_LYDIA_4, 550
- .set OPPONENT_LYDIA_5, 551
- .set OPPONENT_JACKSON_1, 552
- .set OPPONENT_CARLOS, 553
- .set OPPONENT_SEBASTIAN, 554
- .set OPPONENT_JACKSON_2, 555
- .set OPPONENT_JACKSON_3, 556
- .set OPPONENT_JACKSON_4, 557
- .set OPPONENT_JACKSON_5, 558
- .set OPPONENT_CATHERINE_1, 559
- .set OPPONENT_JENNA, 560
- .set OPPONENT_SOPHIA, 561
- .set OPPONENT_CATHERINE_2, 562
- .set OPPONENT_CATHERINE_3, 563
- .set OPPONENT_CATHERINE_4, 564
- .set OPPONENT_CATHERINE_5, 565
- .set OPPONENT_MAXIE_1, 566
- .set OPPONENT_GRUNT_28, 567
- .set OPPONENT_GRUNT_29, 568
- .set OPPONENT_GRUNT_30, 569
- .set OPPONENT_GRUNT_31, 570
- .set OPPONENT_GRUNT_32, 571
- .set OPPONENT_GRUNT_33, 572
- .set OPPONENT_GRUNT_34, 573
- .set OPPONENT_GRUNT_35, 574
- .set OPPONENT_GRUNT_36, 575
- .set OPPONENT_GRUNT_37, 576
- .set OPPONENT_GRUNT_38, 577
- .set OPPONENT_GRUNT_39, 578
- .set OPPONENT_GRUNT_40, 579
- .set OPPONENT_GRUNT_41, 580
- .set OPPONENT_GRUNT_42, 581
- .set OPPONENT_GRUNT_43, 582
- .set OPPONENT_GRUNT_44, 583
- .set OPPONENT_GRUNT_45, 584
- .set OPPONENT_GRUNT_46, 585
- .set OPPONENT_GRUNT_47, 586
- .set OPPONENT_GRUNT_48, 587
- .set OPPONENT_GRUNT_49, 588
- .set OPPONENT_GRUNT_50, 589
- .set OPPONENT_GRUNT_51, 590
- .set OPPONENT_GRUNT_52, 591
- .set OPPONENT_GRUNT_53, 592
- .set OPPONENT_GRUNT_54, 593
- .set OPPONENT_ANONYMOUS_14, 594
- .set OPPONENT_ANONYMOUS_15, 595
- .set OPPONENT_TABITHA_1, 596
- .set OPPONENT_TABITHA_2, 597
- .set OPPONENT_ANONYMOUS_16, 598
- .set OPPONENT_COURTNEY_1, 599
- .set OPPONENT_COURTNEY_2, 600
- .set OPPONENT_MAXIE_2, 601
- .set OPPONENT_MAXIE_3, 602
- .set OPPONENT_TIANA, 603
- .set OPPONENT_HALEY_1, 604
- .set OPPONENT_JANICE, 605
- .set OPPONENT_VIVI, 606
- .set OPPONENT_HALEY_2, 607
- .set OPPONENT_HALEY_3, 608
- .set OPPONENT_HALEY_4, 609
- .set OPPONENT_HALEY_5, 610
- .set OPPONENT_SALLY, 611
- .set OPPONENT_ROBIN, 612
- .set OPPONENT_ANDREA, 613
- .set OPPONENT_CRISSY, 614
- .set OPPONENT_RICK, 615
- .set OPPONENT_LYLE, 616
- .set OPPONENT_JOSE, 617
- .set OPPONENT_DOUG, 618
- .set OPPONENT_GREG, 619
- .set OPPONENT_KENT, 620
- .set OPPONENT_JAMES_1, 621
- .set OPPONENT_JAMES_2, 622
- .set OPPONENT_JAMES_3, 623
- .set OPPONENT_JAMES_4, 624
- .set OPPONENT_JAMES_5, 625
- .set OPPONENT_BRICE, 626
- .set OPPONENT_TRENT_1, 627
- .set OPPONENT_LENNY, 628
- .set OPPONENT_LUCAS_1, 629
- .set OPPONENT_ALAN, 630
- .set OPPONENT_CLARK, 631
- .set OPPONENT_ERIC, 632
- .set OPPONENT_LUCAS_2, 633
- .set OPPONENT_MIKE_1, 634
- .set OPPONENT_MIKE_2, 635
- .set OPPONENT_TRENT_2, 636
- .set OPPONENT_TRENT_3, 637
- .set OPPONENT_TRENT_4, 638
- .set OPPONENT_TRENT_5, 639
- .set OPPONENT_DEZ_AND_LUKE, 640
- .set OPPONENT_LEA_AND_JED, 641
- .set OPPONENT_LOIS_AND_HAL_1, 642
- .set OPPONENT_LOIS_AND_HAL_2, 643
- .set OPPONENT_LOIS_AND_HAL_3, 644
- .set OPPONENT_LOIS_AND_HAL_4, 645
- .set OPPONENT_LOIS_AND_HAL_5, 646
- .set OPPONENT_JOHANNA, 647
- .set OPPONENT_ZANE, 648
- .set OPPONENT_VIVIAN, 649
- .set OPPONENT_SADIE, 650
- .set OPPONENT_HIDEO_2, 651
- .set OPPONENT_KEIGO, 652
- .set OPPONENT_TSUNAO, 653
- .set OPPONENT_TERRELL, 654
- .set OPPONENT_KYLEE, 655
- .set OPPONENT_WALLY_2, 656
- .set OPPONENT_WALLY_3, 657
- .set OPPONENT_WALLY_4, 658
- .set OPPONENT_WALLY_5, 659
- .set OPPONENT_WALLY_6, 660
- .set OPPONENT_BRENDAN_10, 661
- .set OPPONENT_BRENDAN_11, 662
- .set OPPONENT_BRENDAN_12, 663
- .set OPPONENT_MAY_10, 664
- .set OPPONENT_MAY_11, 665
- .set OPPONENT_MAY_12, 666
- .set OPPONENT_JONAH, 667
- .set OPPONENT_HENRY, 668
- .set OPPONENT_ROGER, 669
- .set OPPONENT_ALEXA, 670
- .set OPPONENT_RUBEN, 671
- .set OPPONENT_KOJI, 672
- .set OPPONENT_WAYNE, 673
- .set OPPONENT_BYRON, 674
- .set OPPONENT_REED, 675
- .set OPPONENT_TISHA, 676
- .set OPPONENT_TORI_AND_TIA, 677
- .set OPPONENT_KIM_AND_IRIS, 678
- .set OPPONENT_TYRA_AND_IVY, 679
- .set OPPONENT_MEL_AND_PAUL, 680
- .set OPPONENT_JOHN_AND_JAY_1, 681
- .set OPPONENT_JOHN_AND_JAY_2, 682
- .set OPPONENT_JOHN_AND_JAY_3, 683
- .set OPPONENT_JOHN_AND_JAY_4, 684
- .set OPPONENT_JOHN_AND_JAY_5, 685
- .set OPPONENT_RELI_AND_IAN, 686
- .set OPPONENT_RITA_AND_SAM_1, 687
- .set OPPONENT_RITA_AND_SAM_2, 688
- .set OPPONENT_RITA_AND_SAM_3, 689
- .set OPPONENT_RITA_AND_SAM_4, 690
- .set OPPONENT_RITA_AND_SAM_5, 691
- .set OPPONENT_LISA_AND_RAY, 692
- .set OPPONENT_EUGENE, 693
diff --git a/constants/region_map_sections.inc b/constants/region_map_sections.inc
deleted file mode 100644
index 25f1b6ee1..000000000
--- a/constants/region_map_sections.inc
+++ /dev/null
@@ -1,52 +0,0 @@
- .equiv MAPSEC_LittlerootTown, 0x00
- .equiv MAPSEC_OldaleTown, 0x01
- .equiv MAPSEC_DewfordTown, 0x02
- .equiv MAPSEC_LavaridgeTown, 0x03
- .equiv MAPSEC_FallarborTown, 0x04
- .equiv MAPSEC_VerdanturfTown, 0x05
- .equiv MAPSEC_PacifidlogTown, 0x06
- .equiv MAPSEC_PetalburgCity, 0x07
- .equiv MAPSEC_SlateportCity, 0x08
- .equiv MAPSEC_MauvilleCity, 0x09
- .equiv MAPSEC_RustboroCity, 0x0A
- .equiv MAPSEC_FortreeCity, 0x0B
- .equiv MAPSEC_LilycoveCity, 0x0C
- .equiv MAPSEC_MossdeepCity, 0x0D
- .equiv MAPSEC_SootopolisCity, 0x0E
- .equiv MAPSEC_EverGrandeCity, 0x0F
- .equiv MAPSEC_Route101, 0x10
- .equiv MAPSEC_Route102, 0x11
- .equiv MAPSEC_Route103, 0x12
- .equiv MAPSEC_Route104, 0x13
- .equiv MAPSEC_Route105, 0x14
- .equiv MAPSEC_Route106, 0x15
- .equiv MAPSEC_Route107, 0x16
- .equiv MAPSEC_Route108, 0x17
- .equiv MAPSEC_Route109, 0x18
- .equiv MAPSEC_Route110, 0x19
- .equiv MAPSEC_Route111, 0x1A
- .equiv MAPSEC_Route112, 0x1B
- .equiv MAPSEC_Route113, 0x1C
- .equiv MAPSEC_Route114, 0x1D
- .equiv MAPSEC_Route115, 0x1E
- .equiv MAPSEC_Route116, 0x1F
- .equiv MAPSEC_Route117, 0x20
- .equiv MAPSEC_Route118, 0x21
- .equiv MAPSEC_Route119, 0x22
- .equiv MAPSEC_Route120, 0x23
- .equiv MAPSEC_Route121, 0x24
- .equiv MAPSEC_Route122, 0x25
- .equiv MAPSEC_Route123, 0x26
- .equiv MAPSEC_Route124, 0x27
- .equiv MAPSEC_Route125, 0x28
- .equiv MAPSEC_Route126, 0x29
- .equiv MAPSEC_Route127, 0x2A
- .equiv MAPSEC_Route128, 0x2B
- .equiv MAPSEC_Route129, 0x2C
- .equiv MAPSEC_Route130, 0x2D
- .equiv MAPSEC_Route131, 0x2E
- .equiv MAPSEC_Route132, 0x2F
- .equiv MAPSEC_Route133, 0x30
- .equiv MAPSEC_Route134, 0x31
- .equiv MAPSEC_MtChimney, 0x38
- .equiv MAPSEC_Nothing, 0x58
diff --git a/constants/songs.inc b/constants/songs.inc
deleted file mode 100644
index a89376983..000000000
--- a/constants/songs.inc
+++ /dev/null
@@ -1,369 +0,0 @@
- .equiv SE_STOP, 0
- .equiv SE_KAIFUKU, 1
- .equiv SE_PC_LOGON, 2
- .equiv SE_PC_OFF, 3
- .equiv SE_PC_ON, 4
- .equiv SE_SELECT, 5
- .equiv SE_WIN_OPEN, 6
- .equiv SE_WALL_HIT, 7
- .equiv SE_DOOR, 8
- .equiv SE_KAIDAN, 9
- .equiv SE_DANSA, 10
- .equiv SE_JITENSYA, 11
- .equiv SE_KOUKA_L, 12
- .equiv SE_KOUKA_M, 13
- .equiv SE_KOUKA_H, 14
- .equiv SE_BOWA2, 15
- .equiv SE_POKE_DEAD, 16
- .equiv SE_NIGERU, 17
- .equiv SE_JIDO_DOA, 18
- .equiv SE_NAMINORI, 19
- .equiv SE_BAN, 20
- .equiv SE_PIN, 21
- .equiv SE_BOO, 22
- .equiv SE_BOWA, 23
- .equiv SE_JYUNI, 24
- .equiv SE_A, 25
- .equiv SE_I, 26
- .equiv SE_U, 27
- .equiv SE_E, 28
- .equiv SE_O, 29
- .equiv SE_N, 30
- .equiv SE_SEIKAI, 31
- .equiv SE_HAZURE, 32
- .equiv SE_EXP, 33
- .equiv SE_JITE_PYOKO, 34
- .equiv SE_MU_PACHI, 35
- .equiv SE_TK_KASYA, 36
- .equiv SE_FU_ZAKU, 37
- .equiv SE_FU_ZAKU2, 38
- .equiv SE_FU_ZUZUZU, 39
- .equiv SE_RU_GASHIN, 40
- .equiv SE_RU_GASYAN, 41
- .equiv SE_RU_BARI, 42
- .equiv SE_RU_HYUU, 43
- .equiv SE_KI_GASYAN, 44
- .equiv SE_TK_WARPIN, 45
- .equiv SE_TK_WARPOUT, 46
- .equiv SE_TU_SAA, 47
- .equiv SE_HI_TURUN, 48
- .equiv SE_TRACK_MOVE, 49
- .equiv SE_TRACK_STOP, 50
- .equiv SE_TRACK_HAIK, 51
- .equiv SE_TRACK_DOOR, 52
- .equiv SE_MOTER, 53
- .equiv SE_CARD, 54
- .equiv SE_SAVE, 55
- .equiv SE_KON, 56
- .equiv SE_KON2, 57
- .equiv SE_KON3, 58
- .equiv SE_KON4, 59
- .equiv SE_SUIKOMU, 60
- .equiv SE_NAGERU, 61
- .equiv SE_TOY_C, 62
- .equiv SE_TOY_D, 63
- .equiv SE_TOY_E, 64
- .equiv SE_TOY_F, 65
- .equiv SE_TOY_G, 66
- .equiv SE_TOY_A, 67
- .equiv SE_TOY_B, 68
- .equiv SE_TOY_C1, 69
- .equiv SE_MIZU, 70
- .equiv SE_HASHI, 71
- .equiv SE_DAUGI, 72
- .equiv SE_PINPON, 73
- .equiv SE_FUUSEN1, 74
- .equiv SE_FUUSEN2, 75
- .equiv SE_FUUSEN3, 76
- .equiv SE_TOY_KABE, 77
- .equiv SE_TOY_DANGO, 78
- .equiv SE_DOKU, 79
- .equiv SE_ESUKA, 80
- .equiv SE_T_AME, 81
- .equiv SE_T_AME_E, 82
- .equiv SE_T_OOAME, 83
- .equiv SE_T_OOAME_E, 84
- .equiv SE_T_KOAME, 85
- .equiv SE_T_KOAME_E, 86
- .equiv SE_T_KAMI, 87
- .equiv SE_T_KAMI2, 88
- .equiv SE_ELEBETA, 89
- .equiv SE_HINSI, 90
- .equiv SE_EXPMAX, 91
- .equiv SE_TAMAKORO, 92
- .equiv SE_TAMAKORO_E, 93
- .equiv SE_BASABASA, 94
- .equiv SE_REGI, 95
- .equiv SE_C_GAJI, 96
- .equiv SE_C_MAKU_U, 97
- .equiv SE_C_MAKU_D, 98
- .equiv SE_C_PASI, 99
- .equiv SE_C_SYU, 100
- .equiv SE_C_PIKON, 101
- .equiv SE_REAPOKE, 102
- .equiv SE_OP_BASYU, 103
- .equiv SE_BT_START, 104
- .equiv SE_DENDOU, 105
- .equiv SE_JIHANKI, 106
- .equiv SE_TAMA, 107
- .equiv SE_Z_SCROLL, 108
- .equiv SE_Z_PAGE, 109
- .equiv SE_PN_ON, 110
- .equiv SE_PN_OFF, 111
- .equiv SE_Z_SEARCH, 112
- .equiv SE_TAMAGO, 113
- .equiv SE_TB_START, 114
- .equiv SE_TB_KON, 115
- .equiv SE_TB_KARA, 116
- .equiv SE_BIDORO, 117
- .equiv SE_W085, 118
- .equiv SE_W085B, 119
- .equiv SE_W231, 120
- .equiv SE_W171, 121
- .equiv SE_W233, 122
- .equiv SE_W233B, 123
- .equiv SE_W145, 124
- .equiv SE_W145B, 125
- .equiv SE_W145C, 126
- .equiv SE_W240, 127
- .equiv SE_W015, 128
- .equiv SE_W081, 129
- .equiv SE_W081B, 130
- .equiv SE_W088, 131
- .equiv SE_W016, 132
- .equiv SE_W016B, 133
- .equiv SE_W003, 134
- .equiv SE_W104, 135
- .equiv SE_W013, 136
- .equiv SE_W196, 137
- .equiv SE_W086, 138
- .equiv SE_W004, 139
- .equiv SE_W025, 140
- .equiv SE_W025B, 141
- .equiv SE_W152, 142
- .equiv SE_W026, 143
- .equiv SE_W172, 144
- .equiv SE_W172B, 145
- .equiv SE_W053, 146
- .equiv SE_W007, 147
- .equiv SE_W092, 148
- .equiv SE_W221, 149
- .equiv SE_W221B, 150
- .equiv SE_W052, 151
- .equiv SE_W036, 152
- .equiv SE_W059, 153
- .equiv SE_W059B, 154
- .equiv SE_W010, 155
- .equiv SE_W011, 156
- .equiv SE_W017, 157
- .equiv SE_W019, 158
- .equiv SE_W028, 159
- .equiv SE_W013B, 160
- .equiv SE_W044, 161
- .equiv SE_W029, 162
- .equiv SE_W057, 163
- .equiv SE_W056, 164
- .equiv SE_W250, 165
- .equiv SE_W030, 166
- .equiv SE_W039, 167
- .equiv SE_W054, 168
- .equiv SE_W077, 169
- .equiv SE_W020, 170
- .equiv SE_W082, 171
- .equiv SE_W047, 172
- .equiv SE_W195, 173
- .equiv SE_W006, 174
- .equiv SE_W091, 175
- .equiv SE_W146, 176
- .equiv SE_W120, 177
- .equiv SE_W153, 178
- .equiv SE_W071B, 179
- .equiv SE_W071, 180
- .equiv SE_W103, 181
- .equiv SE_W062, 182
- .equiv SE_W062B, 183
- .equiv SE_W048, 184
- .equiv SE_W187, 185
- .equiv SE_W118, 186
- .equiv SE_W155, 187
- .equiv SE_W122, 188
- .equiv SE_W060, 189
- .equiv SE_W185, 190
- .equiv SE_W014, 191
- .equiv SE_W043, 192
- .equiv SE_W207, 193
- .equiv SE_W207B, 194
- .equiv SE_W215, 195
- .equiv SE_W109, 196
- .equiv SE_W173, 197
- .equiv SE_W280, 198
- .equiv SE_W202, 199
- .equiv SE_W060B, 200
- .equiv SE_W076, 201
- .equiv SE_W080, 202
- .equiv SE_W100, 203
- .equiv SE_W107, 204
- .equiv SE_W166, 205
- .equiv SE_W129, 206
- .equiv SE_W115, 207
- .equiv SE_W112, 208
- .equiv SE_W197, 209
- .equiv SE_W199, 210
- .equiv SE_W236, 211
- .equiv SE_W204, 212
- .equiv SE_W268, 213
- .equiv SE_W070, 214
- .equiv SE_W063, 215
- .equiv SE_W127, 216
- .equiv SE_W179, 217
- .equiv SE_W151, 218
- .equiv SE_W201, 219
- .equiv SE_W161, 220
- .equiv SE_W161B, 221
- .equiv SE_W227, 222
- .equiv SE_W227B, 223
- .equiv SE_W226, 224
- .equiv SE_W208, 225
- .equiv SE_W213, 226
- .equiv SE_W213B, 227
- .equiv SE_W234, 228
- .equiv SE_W260, 229
- .equiv SE_W328, 230
- .equiv SE_W320, 231
- .equiv SE_W255, 232
- .equiv SE_W291, 233
- .equiv SE_W089, 234
- .equiv SE_W239, 235
- .equiv SE_W230, 236
- .equiv SE_W281, 237
- .equiv SE_W327, 238
- .equiv SE_W287, 239
- .equiv SE_W257, 240
- .equiv SE_W253, 241
- .equiv SE_W258, 242
- .equiv SE_W322, 243
- .equiv SE_W298, 244
- .equiv SE_W287B, 245
- .equiv SE_W114, 246
- .equiv SE_W063B, 247
-
- .equiv BGM_STOP, 349
- .equiv BGM_TETSUJI, 350
- .equiv BGM_FIELD13, 351
- .equiv BGM_KACHI22, 352
- .equiv BGM_KACHI2, 353
- .equiv BGM_KACHI3, 354
- .equiv BGM_KACHI5, 355
- .equiv BGM_PCC, 356
- .equiv BGM_NIBI, 357
- .equiv BGM_SUIKUN, 358
- .equiv BGM_DOORO1, 359
- .equiv BGM_DOORO_X1, 360
- .equiv BGM_DOORO_X3, 361
- .equiv BGM_MACHI_S2, 362
- .equiv BGM_MACHI_S4, 363
- .equiv BGM_GIM, 364
- .equiv BGM_NAMINORI, 365
- .equiv BGM_DAN01, 366
- .equiv BGM_FANFA1, 367
- .equiv BGM_ME_ASA, 368
- .equiv BGM_ME_BACHI, 369
- .equiv BGM_FANFA4, 370
- .equiv BGM_FANFA5, 371
- .equiv BGM_ME_WAZA, 372
- .equiv BGM_BIJYUTU, 373
- .equiv BGM_DOORO_X4, 374
- .equiv BGM_FUNE_KAN, 375
- .equiv BGM_ME_SHINKA, 376
- .equiv BGM_SHINKA, 377
- .equiv BGM_ME_WASURE, 378
- .equiv BGM_SYOUJOEYE, 379
- .equiv BGM_BOYEYE, 380
- .equiv BGM_DAN02, 381
- .equiv BGM_MACHI_S3, 382
- .equiv BGM_ODAMAKI, 383
- .equiv BGM_B_TOWER, 384
- .equiv BGM_SWIMEYE, 385
- .equiv BGM_DAN03, 386
- .equiv BGM_ME_KINOMI, 387
- .equiv BGM_ME_TAMA, 388
- .equiv BGM_ME_B_BIG, 389
- .equiv BGM_ME_B_SMALL, 390
- .equiv BGM_ME_ZANNEN, 391
- .equiv BGM_BD_TIME, 392
- .equiv BGM_TEST1, 393
- .equiv BGM_TEST2, 394
- .equiv BGM_TEST3, 395
- .equiv BGM_TEST4, 396
- .equiv BGM_TEST, 397
- .equiv BGM_GOMACHI0, 398
- .equiv BGM_GOTOWN, 399
- .equiv BGM_POKECEN, 400
- .equiv BGM_NEXTROAD, 401
- .equiv BGM_GRANROAD, 402
- .equiv BGM_CYCLING, 403
- .equiv BGM_FRIENDLY, 404
- .equiv BGM_MISHIRO, 405
- .equiv BGM_TOZAN, 406
- .equiv BGM_GIRLEYE, 407
- .equiv BGM_MINAMO, 408
- .equiv BGM_ASHROAD, 409
- .equiv BGM_EVENT0, 410
- .equiv BGM_DEEPDEEP, 411
- .equiv BGM_KACHI1, 412
- .equiv BGM_TITLE3, 413
- .equiv BGM_DEMO1, 414
- .equiv BGM_GIRL_SUP, 415
- .equiv BGM_HAGESHII, 416
- .equiv BGM_KAKKOII, 417
- .equiv BGM_KAZANBAI, 418
- .equiv BGM_AQA_0, 419
- .equiv BGM_TSURETEK, 420
- .equiv BGM_BOY_SUP, 421
- .equiv BGM_RAINBOW, 422
- .equiv BGM_AYASII, 423
- .equiv BGM_KACHI4, 424
- .equiv BGM_ROPEWAY, 425
- .equiv BGM_CASINO, 426
- .equiv BGM_HIGHTOWN, 427
- .equiv BGM_SAFARI, 428
- .equiv BGM_C_ROAD, 429
- .equiv BGM_AJITO, 430
- .equiv BGM_M_BOAT, 431
- .equiv BGM_M_DUNGON, 432
- .equiv BGM_FINECITY, 433
- .equiv BGM_MACHUPI, 434
- .equiv BGM_P_SCHOOL, 435
- .equiv BGM_DENDOU, 436
- .equiv BGM_TONEKUSA, 437
- .equiv BGM_MABOROSI, 438
- .equiv BGM_CON_FAN, 439
- .equiv BGM_CONTEST0, 440
- .equiv BGM_MGM0, 441
- .equiv BGM_T_BATTLE, 442
- .equiv BGM_OOAME, 443
- .equiv BGM_HIDERI, 444
- .equiv BGM_RUNECITY, 445
- .equiv BGM_CON_K, 446
- .equiv BGM_EIKOU_R, 447
- .equiv BGM_KARAKURI, 448
- .equiv BGM_HUTAGO, 449
- .equiv BGM_SITENNOU, 450
- .equiv BGM_YAMA_EYE, 451
- .equiv BGM_CONLOBBY, 452
- .equiv BGM_INTER_V, 453
- .equiv BGM_DAIGO, 454
- .equiv BGM_THANKFOR, 455
- .equiv BGM_END, 456
- .equiv BGM_BATTLE27, 457
- .equiv BGM_BATTLE31, 458
- .equiv BGM_BATTLE20, 459
- .equiv BGM_BATTLE32, 460
- .equiv BGM_BATTLE33, 461
- .equiv BGM_BATTLE36, 462
- .equiv BGM_BATTLE34, 463
- .equiv BGM_BATTLE35, 464
- .equiv BGM_BATTLE38, 465
- .equiv BGM_BATTLE30, 466
-
- .equiv BGM_ROUTE_118, 0x7fff
diff --git a/constants/species_constants.inc b/constants/species_constants.inc
deleted file mode 100644
index d023662b7..000000000
--- a/constants/species_constants.inc
+++ /dev/null
@@ -1,448 +0,0 @@
- .include "asm/macros/asm.inc"
-
- enum_start
- enum SPECIES_NONE @ 0x000
- enum SPECIES_BULBASAUR @ 0x001
- enum SPECIES_IVYSAUR @ 0x002
- enum SPECIES_VENUSAUR @ 0x003
- enum SPECIES_CHARMANDER @ 0x004
- enum SPECIES_CHARMELEON @ 0x005
- enum SPECIES_CHARIZARD @ 0x006
- enum SPECIES_SQUIRTLE @ 0x007
- enum SPECIES_WARTORTLE @ 0x008
- enum SPECIES_BLASTOISE @ 0x009
- enum SPECIES_CATERPIE @ 0x00a
- enum SPECIES_METAPOD @ 0x00b
- enum SPECIES_BUTTERFREE @ 0x00c
- enum SPECIES_WEEDLE @ 0x00d
- enum SPECIES_KAKUNA @ 0x00e
- enum SPECIES_BEEDRILL @ 0x00f
- enum SPECIES_PIDGEY @ 0x010
- enum SPECIES_PIDGEOTTO @ 0x011
- enum SPECIES_PIDGEOT @ 0x012
- enum SPECIES_RATTATA @ 0x013
- enum SPECIES_RATICATE @ 0x014
- enum SPECIES_SPEAROW @ 0x015
- enum SPECIES_FEAROW @ 0x016
- enum SPECIES_EKANS @ 0x017
- enum SPECIES_ARBOK @ 0x018
- enum SPECIES_PIKACHU @ 0x019
- enum SPECIES_RAICHU @ 0x01a
- enum SPECIES_SANDSHREW @ 0x01b
- enum SPECIES_SANDSLASH @ 0x01c
- enum SPECIES_NIDORAN_F @ 0x01d
- enum SPECIES_NIDORINA @ 0x01e
- enum SPECIES_NIDOQUEEN @ 0x01f
- enum SPECIES_NIDORAN_M @ 0x020
- enum SPECIES_NIDORINO @ 0x021
- enum SPECIES_NIDOKING @ 0x022
- enum SPECIES_CLEFAIRY @ 0x023
- enum SPECIES_CLEFABLE @ 0x024
- enum SPECIES_VULPIX @ 0x025
- enum SPECIES_NINETALES @ 0x026
- enum SPECIES_JIGGLYPUFF @ 0x027
- enum SPECIES_WIGGLYTUFF @ 0x028
- enum SPECIES_ZUBAT @ 0x029
- enum SPECIES_GOLBAT @ 0x02a
- enum SPECIES_ODDISH @ 0x02b
- enum SPECIES_GLOOM @ 0x02c
- enum SPECIES_VILEPLUME @ 0x02d
- enum SPECIES_PARAS @ 0x02e
- enum SPECIES_PARASECT @ 0x02f
- enum SPECIES_VENONAT @ 0x030
- enum SPECIES_VENOMOTH @ 0x031
- enum SPECIES_DIGLETT @ 0x032
- enum SPECIES_DUGTRIO @ 0x033
- enum SPECIES_MEOWTH @ 0x034
- enum SPECIES_PERSIAN @ 0x035
- enum SPECIES_PSYDUCK @ 0x036
- enum SPECIES_GOLDUCK @ 0x037
- enum SPECIES_MANKEY @ 0x038
- enum SPECIES_PRIMEAPE @ 0x039
- enum SPECIES_GROWLITHE @ 0x03a
- enum SPECIES_ARCANINE @ 0x03b
- enum SPECIES_POLIWAG @ 0x03c
- enum SPECIES_POLIWHIRL @ 0x03d
- enum SPECIES_POLIWRATH @ 0x03e
- enum SPECIES_ABRA @ 0x03f
- enum SPECIES_KADABRA @ 0x040
- enum SPECIES_ALAKAZAM @ 0x041
- enum SPECIES_MACHOP @ 0x042
- enum SPECIES_MACHOKE @ 0x043
- enum SPECIES_MACHAMP @ 0x044
- enum SPECIES_BELLSPROUT @ 0x045
- enum SPECIES_WEEPINBELL @ 0x046
- enum SPECIES_VICTREEBEL @ 0x047
- enum SPECIES_TENTACOOL @ 0x048
- enum SPECIES_TENTACRUEL @ 0x049
- enum SPECIES_GEODUDE @ 0x04a
- enum SPECIES_GRAVELER @ 0x04b
- enum SPECIES_GOLEM @ 0x04c
- enum SPECIES_PONYTA @ 0x04d
- enum SPECIES_RAPIDASH @ 0x04e
- enum SPECIES_SLOWPOKE @ 0x04f
- enum SPECIES_SLOWBRO @ 0x050
- enum SPECIES_MAGNEMITE @ 0x051
- enum SPECIES_MAGNETON @ 0x052
- enum SPECIES_FARFETCHD @ 0x053
- enum SPECIES_DODUO @ 0x054
- enum SPECIES_DODRIO @ 0x055
- enum SPECIES_SEEL @ 0x056
- enum SPECIES_DEWGONG @ 0x057
- enum SPECIES_GRIMER @ 0x058
- enum SPECIES_MUK @ 0x059
- enum SPECIES_SHELLDER @ 0x05a
- enum SPECIES_CLOYSTER @ 0x05b
- enum SPECIES_GASTLY @ 0x05c
- enum SPECIES_HAUNTER @ 0x05d
- enum SPECIES_GENGAR @ 0x05e
- enum SPECIES_ONIX @ 0x05f
- enum SPECIES_DROWZEE @ 0x060
- enum SPECIES_HYPNO @ 0x061
- enum SPECIES_KRABBY @ 0x062
- enum SPECIES_KINGLER @ 0x063
- enum SPECIES_VOLTORB @ 0x064
- enum SPECIES_ELECTRODE @ 0x065
- enum SPECIES_EXEGGCUTE @ 0x066
- enum SPECIES_EXEGGUTOR @ 0x067
- enum SPECIES_CUBONE @ 0x068
- enum SPECIES_MAROWAK @ 0x069
- enum SPECIES_HITMONLEE @ 0x06a
- enum SPECIES_HITMONCHAN @ 0x06b
- enum SPECIES_LICKITUNG @ 0x06c
- enum SPECIES_KOFFING @ 0x06d
- enum SPECIES_WEEZING @ 0x06e
- enum SPECIES_RHYHORN @ 0x06f
- enum SPECIES_RHYDON @ 0x070
- enum SPECIES_CHANSEY @ 0x071
- enum SPECIES_TANGELA @ 0x072
- enum SPECIES_KANGASKHAN @ 0x073
- enum SPECIES_HORSEA @ 0x074
- enum SPECIES_SEADRA @ 0x075
- enum SPECIES_GOLDEEN @ 0x076
- enum SPECIES_SEAKING @ 0x077
- enum SPECIES_STARYU @ 0x078
- enum SPECIES_STARMIE @ 0x079
- enum SPECIES_MR_MIME @ 0x07a
- enum SPECIES_SCYTHER @ 0x07b
- enum SPECIES_JYNX @ 0x07c
- enum SPECIES_ELECTABUZZ @ 0x07d
- enum SPECIES_MAGMAR @ 0x07e
- enum SPECIES_PINSIR @ 0x07f
- enum SPECIES_TAUROS @ 0x080
- enum SPECIES_MAGIKARP @ 0x081
- enum SPECIES_GYARADOS @ 0x082
- enum SPECIES_LAPRAS @ 0x083
- enum SPECIES_DITTO @ 0x084
- enum SPECIES_EEVEE @ 0x085
- enum SPECIES_VAPOREON @ 0x086
- enum SPECIES_JOLTEON @ 0x087
- enum SPECIES_FLAREON @ 0x088
- enum SPECIES_PORYGON @ 0x089
- enum SPECIES_OMANYTE @ 0x08a
- enum SPECIES_OMASTAR @ 0x08b
- enum SPECIES_KABUTO @ 0x08c
- enum SPECIES_KABUTOPS @ 0x08d
- enum SPECIES_AERODACTYL @ 0x08e
- enum SPECIES_SNORLAX @ 0x08f
- enum SPECIES_ARTICUNO @ 0x090
- enum SPECIES_ZAPDOS @ 0x091
- enum SPECIES_MOLTRES @ 0x092
- enum SPECIES_DRATINI @ 0x093
- enum SPECIES_DRAGONAIR @ 0x094
- enum SPECIES_DRAGONITE @ 0x095
- enum SPECIES_MEWTWO @ 0x096
- enum SPECIES_MEW @ 0x097
- enum SPECIES_CHIKORITA @ 0x098
- enum SPECIES_BAYLEEF @ 0x099
- enum SPECIES_MEGANIUM @ 0x09a
- enum SPECIES_CYNDAQUIL @ 0x09b
- enum SPECIES_QUILAVA @ 0x09c
- enum SPECIES_TYPHLOSION @ 0x09d
- enum SPECIES_TOTODILE @ 0x09e
- enum SPECIES_CROCONAW @ 0x09f
- enum SPECIES_FERALIGATR @ 0x0a0
- enum SPECIES_SENTRET @ 0x0a1
- enum SPECIES_FURRET @ 0x0a2
- enum SPECIES_HOOTHOOT @ 0x0a3
- enum SPECIES_NOCTOWL @ 0x0a4
- enum SPECIES_LEDYBA @ 0x0a5
- enum SPECIES_LEDIAN @ 0x0a6
- enum SPECIES_SPINARAK @ 0x0a7
- enum SPECIES_ARIADOS @ 0x0a8
- enum SPECIES_CROBAT @ 0x0a9
- enum SPECIES_CHINCHOU @ 0x0aa
- enum SPECIES_LANTURN @ 0x0ab
- enum SPECIES_PICHU @ 0x0ac
- enum SPECIES_CLEFFA @ 0x0ad
- enum SPECIES_IGGLYBUFF @ 0x0ae
- enum SPECIES_TOGEPI @ 0x0af
- enum SPECIES_TOGETIC @ 0x0b0
- enum SPECIES_NATU @ 0x0b1
- enum SPECIES_XATU @ 0x0b2
- enum SPECIES_MAREEP @ 0x0b3
- enum SPECIES_FLAAFFY @ 0x0b4
- enum SPECIES_AMPHAROS @ 0x0b5
- enum SPECIES_BELLOSSOM @ 0x0b6
- enum SPECIES_MARILL @ 0x0b7
- enum SPECIES_AZUMARILL @ 0x0b8
- enum SPECIES_SUDOWOODO @ 0x0b9
- enum SPECIES_POLITOED @ 0x0ba
- enum SPECIES_HOPPIP @ 0x0bb
- enum SPECIES_SKIPLOOM @ 0x0bc
- enum SPECIES_JUMPLUFF @ 0x0bd
- enum SPECIES_AIPOM @ 0x0be
- enum SPECIES_SUNKERN @ 0x0bf
- enum SPECIES_SUNFLORA @ 0x0c0
- enum SPECIES_YANMA @ 0x0c1
- enum SPECIES_WOOPER @ 0x0c2
- enum SPECIES_QUAGSIRE @ 0x0c3
- enum SPECIES_ESPEON @ 0x0c4
- enum SPECIES_UMBREON @ 0x0c5
- enum SPECIES_MURKROW @ 0x0c6
- enum SPECIES_SLOWKING @ 0x0c7
- enum SPECIES_MISDREAVUS @ 0x0c8
- enum SPECIES_UNOWN @ 0x0c9
- enum SPECIES_WOBBUFFET @ 0x0ca
- enum SPECIES_GIRAFARIG @ 0x0cb
- enum SPECIES_PINECO @ 0x0cc
- enum SPECIES_FORRETRESS @ 0x0cd
- enum SPECIES_DUNSPARCE @ 0x0ce
- enum SPECIES_GLIGAR @ 0x0cf
- enum SPECIES_STEELIX @ 0x0d0
- enum SPECIES_SNUBBULL @ 0x0d1
- enum SPECIES_GRANBULL @ 0x0d2
- enum SPECIES_QWILFISH @ 0x0d3
- enum SPECIES_SCIZOR @ 0x0d4
- enum SPECIES_SHUCKLE @ 0x0d5
- enum SPECIES_HERACROSS @ 0x0d6
- enum SPECIES_SNEASEL @ 0x0d7
- enum SPECIES_TEDDIURSA @ 0x0d8
- enum SPECIES_URSARING @ 0x0d9
- enum SPECIES_SLUGMA @ 0x0da
- enum SPECIES_MAGCARGO @ 0x0db
- enum SPECIES_SWINUB @ 0x0dc
- enum SPECIES_PILOSWINE @ 0x0dd
- enum SPECIES_CORSOLA @ 0x0de
- enum SPECIES_REMORAID @ 0x0df
- enum SPECIES_OCTILLERY @ 0x0e0
- enum SPECIES_DELIBIRD @ 0x0e1
- enum SPECIES_MANTINE @ 0x0e2
- enum SPECIES_SKARMORY @ 0x0e3
- enum SPECIES_HOUNDOUR @ 0x0e4
- enum SPECIES_HOUNDOOM @ 0x0e5
- enum SPECIES_KINGDRA @ 0x0e6
- enum SPECIES_PHANPY @ 0x0e7
- enum SPECIES_DONPHAN @ 0x0e8
- enum SPECIES_PORYGON2 @ 0x0e9
- enum SPECIES_STANTLER @ 0x0ea
- enum SPECIES_SMEARGLE @ 0x0eb
- enum SPECIES_TYROGUE @ 0x0ec
- enum SPECIES_HITMONTOP @ 0x0ed
- enum SPECIES_SMOOCHUM @ 0x0ee
- enum SPECIES_ELEKID @ 0x0ef
- enum SPECIES_MAGBY @ 0x0f0
- enum SPECIES_MILTANK @ 0x0f1
- enum SPECIES_BLISSEY @ 0x0f2
- enum SPECIES_RAIKOU @ 0x0f3
- enum SPECIES_ENTEI @ 0x0f4
- enum SPECIES_SUICUNE @ 0x0f5
- enum SPECIES_LARVITAR @ 0x0f6
- enum SPECIES_PUPITAR @ 0x0f7
- enum SPECIES_TYRANITAR @ 0x0f8
- enum SPECIES_LUGIA @ 0x0f9
- enum SPECIES_HO_OH @ 0x0fa
- enum SPECIES_CELEBI @ 0x0fb
-
- enum SPECIES_OLD_UNOWN_B
- enum SPECIES_OLD_UNOWN_C
- enum SPECIES_OLD_UNOWN_D
- enum SPECIES_OLD_UNOWN_E
- enum SPECIES_OLD_UNOWN_F
- enum SPECIES_OLD_UNOWN_G
- enum SPECIES_OLD_UNOWN_H
- enum SPECIES_OLD_UNOWN_I
- enum SPECIES_OLD_UNOWN_J
- enum SPECIES_OLD_UNOWN_K
- enum SPECIES_OLD_UNOWN_L
- enum SPECIES_OLD_UNOWN_M
- enum SPECIES_OLD_UNOWN_N
- enum SPECIES_OLD_UNOWN_O
- enum SPECIES_OLD_UNOWN_P
- enum SPECIES_OLD_UNOWN_Q
- enum SPECIES_OLD_UNOWN_R
- enum SPECIES_OLD_UNOWN_S
- enum SPECIES_OLD_UNOWN_T
- enum SPECIES_OLD_UNOWN_U
- enum SPECIES_OLD_UNOWN_V
- enum SPECIES_OLD_UNOWN_W
- enum SPECIES_OLD_UNOWN_X
- enum SPECIES_OLD_UNOWN_Y
- enum SPECIES_OLD_UNOWN_Z
-
- enum SPECIES_TREECKO @ 0x115
- enum SPECIES_GROVYLE @ 0x116
- enum SPECIES_SCEPTILE @ 0x117
- enum SPECIES_TORCHIC @ 0x118
- enum SPECIES_COMBUSKEN @ 0x119
- enum SPECIES_BLAZIKEN @ 0x11a
- enum SPECIES_MUDKIP @ 0x11b
- enum SPECIES_MARSHTOMP @ 0x11c
- enum SPECIES_SWAMPERT @ 0x11d
- enum SPECIES_POOCHYENA @ 0x11e
- enum SPECIES_MIGHTYENA @ 0x11f
- enum SPECIES_ZIGZAGOON @ 0x120
- enum SPECIES_LINOONE @ 0x121
- enum SPECIES_WURMPLE @ 0x122
- enum SPECIES_SILCOON @ 0x123
- enum SPECIES_BEAUTIFLY @ 0x124
- enum SPECIES_CASCOON @ 0x125
- enum SPECIES_DUSTOX @ 0x126
- enum SPECIES_LOTAD @ 0x127
- enum SPECIES_LOMBRE @ 0x128
- enum SPECIES_LUDICOLO @ 0x129
- enum SPECIES_SEEDOT @ 0x12a
- enum SPECIES_NUZLEAF @ 0x12b
- enum SPECIES_SHIFTRY @ 0x12c
- enum SPECIES_NINCADA @ 0x12d
- enum SPECIES_NINJASK @ 0x12e
- enum SPECIES_SHEDINJA @ 0x12f
- enum SPECIES_TAILLOW @ 0x130
- enum SPECIES_SWELLOW @ 0x131
- enum SPECIES_SHROOMISH @ 0x132
- enum SPECIES_BRELOOM @ 0x133
- enum SPECIES_SPINDA @ 0x134
- enum SPECIES_WINGULL @ 0x135
- enum SPECIES_PELIPPER @ 0x136
- enum SPECIES_SURSKIT @ 0x137
- enum SPECIES_MASQUERAIN @ 0x138
- enum SPECIES_WAILMER @ 0x139
- enum SPECIES_WAILORD @ 0x13a
- enum SPECIES_SKITTY @ 0x13b
- enum SPECIES_DELCATTY @ 0x13c
- enum SPECIES_KECLEON @ 0x13d
- enum SPECIES_BALTOY @ 0x13e
- enum SPECIES_CLAYDOL @ 0x13f
- enum SPECIES_NOSEPASS @ 0x140
- enum SPECIES_TORKOAL @ 0x141
- enum SPECIES_SABLEYE @ 0x142
- enum SPECIES_BARBOACH @ 0x143
- enum SPECIES_WHISCASH @ 0x144
- enum SPECIES_LUVDISC @ 0x145
- enum SPECIES_CORPHISH @ 0x146
- enum SPECIES_CRAWDAUNT @ 0x147
- enum SPECIES_FEEBAS @ 0x148
- enum SPECIES_MILOTIC @ 0x149
- enum SPECIES_CARVANHA @ 0x14a
- enum SPECIES_SHARPEDO @ 0x14b
- enum SPECIES_TRAPINCH @ 0x14c
- enum SPECIES_VIBRAVA @ 0x14d
- enum SPECIES_FLYGON @ 0x14e
- enum SPECIES_MAKUHITA @ 0x14f
- enum SPECIES_HARIYAMA @ 0x150
- enum SPECIES_ELECTRIKE @ 0x151
- enum SPECIES_MANECTRIC @ 0x152
- enum SPECIES_NUMEL @ 0x153
- enum SPECIES_CAMERUPT @ 0x154
- enum SPECIES_SPHEAL @ 0x155
- enum SPECIES_SEALEO @ 0x156
- enum SPECIES_WALREIN @ 0x157
- enum SPECIES_CACNEA @ 0x158
- enum SPECIES_CACTURNE @ 0x159
- enum SPECIES_SNORUNT @ 0x15a
- enum SPECIES_GLALIE @ 0x15b
- enum SPECIES_LUNATONE @ 0x15c
- enum SPECIES_SOLROCK @ 0x15d
- enum SPECIES_AZURILL @ 0x15e
- enum SPECIES_SPOINK @ 0x15f
- enum SPECIES_GRUMPIG @ 0x160
- enum SPECIES_PLUSLE @ 0x161
- enum SPECIES_MINUN @ 0x162
- enum SPECIES_MAWILE @ 0x163
- enum SPECIES_MEDITITE @ 0x164
- enum SPECIES_MEDICHAM @ 0x165
- enum SPECIES_SWABLU @ 0x166
- enum SPECIES_ALTARIA @ 0x167
- enum SPECIES_WYNAUT @ 0x168
- enum SPECIES_DUSKULL @ 0x169
- enum SPECIES_DUSCLOPS @ 0x16a
- enum SPECIES_ROSELIA @ 0x16b
- enum SPECIES_SLAKOTH @ 0x16c
- enum SPECIES_VIGOROTH @ 0x16d
- enum SPECIES_SLAKING @ 0x16e
- enum SPECIES_GULPIN @ 0x16f
- enum SPECIES_SWALOT @ 0x170
- enum SPECIES_TROPIUS @ 0x171
- enum SPECIES_WHISMUR @ 0x172
- enum SPECIES_LOUDRED @ 0x173
- enum SPECIES_EXPLOUD @ 0x174
- enum SPECIES_CLAMPERL @ 0x175
- enum SPECIES_HUNTAIL @ 0x176
- enum SPECIES_GOREBYSS @ 0x177
- enum SPECIES_ABSOL @ 0x178
- enum SPECIES_SHUPPET @ 0x179
- enum SPECIES_BANETTE @ 0x17a
- enum SPECIES_SEVIPER @ 0x17b
- enum SPECIES_ZANGOOSE @ 0x17c
- enum SPECIES_RELICANTH @ 0x17d
- enum SPECIES_ARON @ 0x17e
- enum SPECIES_LAIRON @ 0x17f
- enum SPECIES_AGGRON @ 0x180
- enum SPECIES_CASTFORM @ 0x181
- enum SPECIES_VOLBEAT @ 0x182
- enum SPECIES_ILLUMISE @ 0x183
- enum SPECIES_LILEEP @ 0x184
- enum SPECIES_CRADILY @ 0x185
- enum SPECIES_ANORITH @ 0x186
- enum SPECIES_ARMALDO @ 0x187
- enum SPECIES_RALTS @ 0x188
- enum SPECIES_KIRLIA @ 0x189
- enum SPECIES_GARDEVOIR @ 0x18a
- enum SPECIES_BAGON @ 0x18b
- enum SPECIES_SHELGON @ 0x18c
- enum SPECIES_SALAMENCE @ 0x18d
- enum SPECIES_BELDUM @ 0x18e
- enum SPECIES_METANG @ 0x18f
- enum SPECIES_METAGROSS @ 0x190
- enum SPECIES_REGIROCK @ 0x191
- enum SPECIES_REGICE @ 0x192
- enum SPECIES_REGISTEEL @ 0x193
- enum SPECIES_KYOGRE @ 0x194
- enum SPECIES_GROUDON @ 0x195
- enum SPECIES_RAYQUAZA @ 0x196
- enum SPECIES_LATIAS @ 0x197
- enum SPECIES_LATIOS @ 0x198
- enum SPECIES_JIRACHI @ 0x199
- enum SPECIES_DEOXYS @ 0x19a
- enum SPECIES_CHIMECHO @ 0x19b
- enum SPECIES_EGG @ 0x19c
-
- enum SPECIES_UNOWN_B
- enum SPECIES_UNOWN_C
- enum SPECIES_UNOWN_D
- enum SPECIES_UNOWN_E
- enum SPECIES_UNOWN_F
- enum SPECIES_UNOWN_G
- enum SPECIES_UNOWN_H
- enum SPECIES_UNOWN_I
- enum SPECIES_UNOWN_J
- enum SPECIES_UNOWN_K
- enum SPECIES_UNOWN_L
- enum SPECIES_UNOWN_M
- enum SPECIES_UNOWN_N
- enum SPECIES_UNOWN_O
- enum SPECIES_UNOWN_P
- enum SPECIES_UNOWN_Q
- enum SPECIES_UNOWN_R
- enum SPECIES_UNOWN_S
- enum SPECIES_UNOWN_T
- enum SPECIES_UNOWN_U
- enum SPECIES_UNOWN_V
- enum SPECIES_UNOWN_W
- enum SPECIES_UNOWN_X
- enum SPECIES_UNOWN_Y
- enum SPECIES_UNOWN_Z
- enum SPECIES_UNOWN_EMARK
- enum SPECIES_UNOWN_QMARK
-
- .set NUM_SPECIES, SPECIES_EGG
diff --git a/data-de/battle_tower/trainers.inc b/data-de/battle_tower/trainers.inc
deleted file mode 100644
index 9791a08a6..000000000
--- a/data-de/battle_tower/trainers.inc
+++ /dev/null
@@ -1,1301 +0,0 @@
- .align 2
-gBattleTowerTrainers:: @ 8402F00
-@ 0
- .byte TRAINER_CLASS_YOUNGSTER
- .string "ALWIN$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word ARE
- ec_word YOU
- ec_word READY
- ec_word QUES
- ec_word HERE_I_COME
- ec_word EXCL
-
-@ 1
- .byte TRAINER_CLASS_BIRD_KEEPER
- .string "DIRK$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word OH_KAY
- ec_word I_AM
- ec_word READY
- ec_word EXCL
- .2byte 0xFFFF
- .2byte 0xFFFF
-
-@ 2
- .byte TRAINER_CLASS_LADY
- .string "SIBILLE$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word THAT
- ec_word BECOMES
- ec_word A
- ec_word CHILD_S_PLAY
- ec_word GO
- .2byte 0xFFFF
-
-@ 3
- .byte TRAINER_CLASS_BLACK_BELT
- .string "OLAF$", 8
- .byte 0x05 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word MY
- ec_word GHOST
- ec_word IS
- ec_word FULL
- ec_word TOUGHNESS
- ec_word SNORT
-
-@ 4
- .byte TRAINER_CLASS_NINJA_BOY
- .string "JOST$", 8
- .byte 0x05 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word GO
- ec_word WHO_WAS
- ec_word POKEMON
- ec_word FIGHT
- ec_word FIGHT
- ec_word FIGHT
-
-@ 5
- .byte TRAINER_CLASS_SCHOOL_KID_F
- .string "TINA$", 8
- .byte 0x0A @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word STUDY
- ec_word IS
- ec_word BORING
- ec_word LET_S
- ec_word BETTER
- ec_word FIGHT
-
-@ 6
- .byte TRAINER_CLASS_BUG_MANIAC
- .string "HAJO$", 8
- .byte 0x41 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word TOUGHNESS
- ec_word AND
- ec_move2 TRANSFORM
- ec_word WILL
- ec_word BABE
- ec_word FAINT
-
-@ 7
- .byte TRAINER_CLASS_FISHERMAN
- .string "GEORG$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word IT
- ec_word GOES
- ec_word NOTHING
- ec_word OVER
- ec_word FISHING
- .2byte 0xFFFF
-
-@ 8
- .byte TRAINER_CLASS_TUBER_F
- .string "ANNE$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word POKEMON
- ec_word MUST_BE
- ec_word MAN
- ec_word SIMPLE
- ec_word ADORE
- .2byte 0xFFFF
-
-@ 9
- .byte TRAINER_CLASS_POKEFAN_F
- .string "JULIA$", 8
- .byte 0x42 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I_AM
- ec_word CUTE
- ec_word I_AM
- ec_word QUITE
- ec_word AN
- ec_word LADY
-
-@ 10
- .byte TRAINER_CLASS_GENTLEMAN
- .string "JOHANN$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word THE
- ec_word DAY
- ec_word IS
- ec_word PERFECT
- ec_word FOR
- ec_word BATTLE
-
-@ 11
- .byte TRAINER_CLASS_CAMPER
- .string "KARL$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word NOW
- ec_word ARE
- ec_word YOU
- ec_word MY
- ec_word FRIEND
- .2byte 0xFFFF
-
-@ 12
- .byte TRAINER_CLASS_RUNNING_TRIATHLETE_F
- .string "KENDRA$", 8
- .byte 0x0A @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I_AM
- ec_word SMART
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- ec_word AND
- ec_word YOU
- ec_word QUES
-
-@ 13
- .byte TRAINER_CLASS_HIKER
- .string "DAVID$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WAHAHAHA
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- ec_word TODAY
- ec_word IS
- ec_move2 PAY_DAY
- .2byte 0xFFFF
-
-@ 14
- .byte TRAINER_CLASS_BATTLE_GIRL
- .string "KEA$", 8
- .byte 0x0A @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOU_RE
- ec_word TOUGH
- ec_word OR
- ec_word QUES
- .2byte 0xFFFF
- .2byte 0xFFFF
-
-@ 15
- .byte TRAINER_CLASS_PSYCHIC_M
- .string "JULIAN$", 8
- .byte 0x05 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word FUFUFU
- ec_word YOU
- ec_word CAN_T
- ec_word DON_T
- ec_word WINS
- ec_word KID
-
-@ 16
- .byte TRAINER_CLASS_LASS
- .string "JOSI$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word BE
- ec_word KIND
- ec_word TO
- ec_word GIRL
- .2byte 0xFFFF
- .2byte 0xFFFF
-
-@ 17
- .byte TRAINER_CLASS_GUITARIST
- .string "LEIF$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I_AM
- ec_word GREAT
- ec_word YOU_RE
- ec_word RATHER
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- ec_word OKAY
-
-@ 18
- .byte TRAINER_CLASS_RICH_BOY
- .string "INGO$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word HAVE
- ec_word ROUGH_SKIN
- ec_word NATURAL_CURE
- ec_word IS
- ec_word ALL_RIGHT
-
-@ 19
- .byte TRAINER_CLASS_BUG_CATCHER
- .string "LUDWIG$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word IF_I_WIN
- ec_word IS
- ec_word THAT
- ec_word EXCITING
- .2byte 0xFFFF
- .2byte 0xFFFF
-
-@ 20
- .byte TRAINER_CLASS_PICNICKER
- .string "RAJA$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WITH
- ec_word POKEMON
- ec_word TO
- ec_word WALKING
- ec_word IS
- ec_word GREAT
-
-@ 21
- .byte TRAINER_CLASS_COLLECTOR
- .string "HARALD$", 8
- .byte 0x09 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word HERE_GOES
- ec_word MY
- ec_word HUGE_POWER
- .2byte 0xFFFF
- ec_word POKEMON
- .2byte 0xFFFF
-
-@ 22
- .byte TRAINER_CLASS_TUBER_M
- .string "KIM$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I_AM
- ec_word A
- ec_word GENIUS
- ec_word WE
- ec_word WILL
- ec_word WINS
-
-@ 23
- .byte TRAINER_CLASS_KINDLER
- .string "ERWIN$", 8
- .byte 0x05 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word MY
- ec_word FIRE
- ec_word IS
- ec_word VERY
- ec_word HOT
- .2byte 0xFFFF
-
-@ 24
- .byte TRAINER_CLASS_PSYCHIC_F
- .string "EIKA$", 8
- .byte 0x0A @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word FIGHTING
- ec_move1 ASTONISH
- ec_word AND
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- .2byte 0xFFFF
- .2byte 0xFFFF
-
-@ 25
- .byte TRAINER_CLASS_SWIMMER_F
- .string "ANNINA$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word SORRY
- ec_word YOURS
- ec_word POKEMON
- ec_word WILL
- ec_word DON_T
- ec_word WINS
-
-@ 26
- .byte TRAINER_CLASS_CYCLING_TRIATHLETE_F
- .string "RUTH$", 8
- .byte 0x06 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I_AM
- ec_word TOUGH
- ec_word WHO_WAS
- ec_word POKEMON
- ec_word TOO
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
-
-@ 27
- .byte TRAINER_CLASS_POKEMANIAC
- .string "JENS$", 8
- .byte 0x40 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WHO_WAS
- ec_word POKEMON
- ec_word THOSE
- ec_word COOL
- ec_word YOURS
- ec_word LOSE
-
-@ 28
- .byte TRAINER_CLASS_SAILOR
- .string "TITUS$", 8
- .byte 0x09 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word MY
- ec_word FOE
- ec_word IS
- ec_word FINALLY
- ec_word HERE
- ec_word EXCELLENT
-
-@ 29
- .byte TRAINER_CLASS_POKEMON_BREEDER_F
- .string "NICOLA$", 8
- .byte 0x06 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I_AM
- ec_word VORACIOUS
- ec_move2 POUND
- ec_word AND
- ec_move2 BELLY_DRUM
- .2byte 0xFFFF
-
-@ 30
- .byte TRAINER_CLASS_HEX_MANIAC
- .string "PAULA$", 8
- .byte 0x42 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word IS_IT_QUES
- ec_word THOSE_ARE
- ec_word UGLY
- ec_move1 SPITE
- ec_word TO
- ec_word TAKE
-
-@ 31
- .byte TRAINER_CLASS_RUIN_MANIAC
- .string "SÖREN$", 8
- .byte 0x41 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word ADVENTURE
- ec_word AND
- ec_word BATTLE
- ec_word THOSE
- ec_word WHO_WAS
- ec_word LIKES
-
-@ 32
- .byte TRAINER_CLASS_SWIMMING_TRIATHLETE_M
- .string "RAINER$", 8
- .byte 0x09 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WE
- ec_word CAN
- ec_word VERSUS
- ec_word CHILDREN
- ec_word DON_T
- ec_word LOSE
-
-@ 33
- .byte TRAINER_CLASS_SCHOOL_KID_M
- .string "FABIAN$", 8
- .byte 0x08 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word DAILY
- ec_word POKEMON
- ec_word IN
- ec_word THE
- ec_word SCHOOL
- ec_word AWESOME
-
-@ 34
- .byte TRAINER_CLASS_POKEMON_RANGER_F
- .string "ELLEN$", 8
- .byte 0x04 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word ARE
- ec_word YOU
- ec_word ALL_RIGHT
- ec_word TO
- ec_word POKEMON
- ec_word QUES
-
-@ 35
- .byte TRAINER_CLASS_SWIMMER_M
- .string "ARNIE$", 8
- .byte 0x09 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word MY
- ec_word FIGHTING
- ec_word IS
- ec_word PERFECTION
- ec_word YOUR
- ec_word USELESS
-
-@ 36
- .byte TRAINER_CLASS_RUNNING_TRIATHLETE_M
- .string "HARDI$", 8
- .byte 0x09 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word BOY
- ec_word I_AM
- ec_word MAYBE
- ec_word TIRED
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- .2byte 0xFFFF
-
-@ 37
- .byte TRAINER_CLASS_BEAUTY
- .string "LINA$", 8
- .byte 0x06 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word A
- ec_word TRAINER
- ec_word HOW_DO
- ec_word YOU
- ec_word IS
- ec_word EXCITING
-
-@ 38
- .byte TRAINER_CLASS_AROMA_LADY
- .string "SELINA$", 8
- .byte 0x06 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOU_VE
- ec_word STENCH
- ec_word OR
- ec_move1 SWEET_SCENT
- ec_word QUES
- .2byte 0xFFFF
-
-@ 39
- .byte TRAINER_CLASS_COLLECTOR
- .string "DANTE$", 8
- .byte 0x81 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOURS
- ec_word POKEMON
- ec_word I
- ec_word WANTS
- ec_word SHE
- ec_word EXCL_EXCL
-
-@ 40
- .byte TRAINER_CLASS_SWIMMING_TRIATHLETE_F
- .string "KATJA$", 8
- .byte 0x04 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word TODAY
- ec_word WANTS
- ec_word I
- ec_word MY
- ec_word BEST
- ec_word GIVE
-
-@ 41
- .byte TRAINER_CLASS_POKEMON_RANGER_M
- .string "HORST$", 8
- .byte 0x0C @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WAAAH
- ec_word WAAAH
- ec_word WAAAH
- ec_word WAAAH
- ec_word EHEHE
- ec_move1 FAKE_TEARS
-
-@ 42
- .byte TRAINER_CLASS_POKEFAN_M
- .string "GERRIT$", 8
- .byte 0x80 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word MY
- ec_word ANIME
- ec_word SONG
- ec_word IS
- ec_word DON_T
- ec_word LOUSY
-
-@ 43
- .byte TRAINER_CLASS_CYCLING_TRIATHLETE_M
- .string "NIKO$", 8
- .byte 0x04 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word BATTLE
- ec_word DON_T
- ec_word JUST
- ec_word DO
- ec_word SOMETHING
- ec_word ELSE
-
-@ 44
- .byte TRAINER_CLASS_POKEMON_BREEDER_M
- .string "BALDO$", 8
- .byte 0x41 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word ARE
- ec_word YOU
- ec_word BUSY
- ec_word HAS
- ec_word THAT
- ec_word TIME
-
-@ 45
- .byte TRAINER_CLASS_PARASOL_LADY
- .string "ALMA$", 8
- .byte 0x08 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word THAT
- ec_move1 MORNING_SUN
- ec_word HAS
- ec_word SO
- ec_word A_LOT
- ec_move1 COSMIC_POWER
-
-@ 46
- .byte TRAINER_CLASS_CAMPER
- .string "ADAM$", 8
- .byte 0x0C @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word EXCITING
- ec_word BATTLE
- ec_word THOSE
- ec_word GREAT
- ec_word YEEHAW_EXCL
- .2byte 0xFFFF
-
-@ 47
- .byte TRAINER_CLASS_SCHOOL_KID_F
- .string "GRETE$", 8
- .byte 0x42 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word WANTS
- ec_word SOMETHING
- ec_move1 GROWTH
- ec_word WORKS
- .2byte 0xFFFF
-
-@ 48
- .byte TRAINER_CLASS_BEAUTY
- .string "NAOMI$", 8
- .byte 0x04 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word IT
- ec_word WAS
- ec_word GREAT
- ec_word YOUNG
- ec_word TO
- ec_word HIS
-
-@ 49
- .byte TRAINER_CLASS_NINJA_BOY
- .string "KENO$", 8
- .byte 0x0C @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word PLEASE
- ec_word BE
- ec_word DON_T
- ec_word SO
- ec_word MEAN
- ec_word TO_ME
-
-@ 50
- .byte TRAINER_CLASS_CYCLING_TRIATHLETE_M
- .string "REMUS$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WAKES_UP
- ec_move2 HIDDEN_POWER
- ec_word AND
- ec_move1 ASTONISH
- .2byte 0xFFFF
- .2byte 0xFFFF
-
-@ 51
- .byte TRAINER_CLASS_POKEMON_RANGER_F
- .string "EDITH$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word THE
- ec_word BATTLE_TOWER
- ec_word IS
- ec_word SO
- ec_word ENTERTAINING
- ec_word AWESOME
-
-@ 52
- .byte TRAINER_CLASS_RUIN_MANIAC
- .string "ANTON$", 8
- .byte 0x41 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word THICK_FAT
- ec_word AND
- ec_word CHLOROPHYLL
- ec_word BLEND
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- ec_word TASTY
-
-@ 53
- .byte TRAINER_CLASS_SWIMMER_M
- .string "MALTE$", 8
- .byte 0x81 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word AN
- ec_move1 SCARY_FACE
- ec_word IS
- ec_word DON_T
- ec_word QUITE
- ec_word TERRIBLE
-
-@ 54
- .byte TRAINER_CLASS_HEX_MANIAC
- .string "RAOUL$", 8
- .byte 0x42 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word RUN_AWAY
- ec_word GIVE_ME
- ec_word SON
- ec_word BEST
- .2byte 0xFFFF
- .2byte 0xFFFF
-
-@ 55
- .byte TRAINER_CLASS_RUNNING_TRIATHLETE_M
- .string "RICK$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WATER
- ec_word IS
- ec_word TASTY
- ec_word HIP_AND
- ec_word REFRESHING
- ec_word YES_SIR_EXCL
-
-@ 56
- .byte TRAINER_CLASS_POKEFAN_M
- .string "DENNIS$", 8
- .byte 0x80 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word GO
- ec_word WHO_WAS
- ec_word POKEMON
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- .2byte 0xFFFF
- .2byte 0xFFFF
-
-@ 57
- .byte TRAINER_CLASS_PSYCHIC_F
- .string "GLORIA$", 8
- .byte 0x82 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word THE
- ec_word FIGHTING
- ec_word MUST_BE
- ec_word HOT
- ec_word HIS
- ec_word FIERY
-
-@ 58
- .byte TRAINER_CLASS_GUITARIST
- .string "NINO$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word MUSIC
- ec_word IS
- ec_word MY
- ec_word EVERY
- ec_word MY
- ec_word DESTINY
-
-@ 59
- .byte TRAINER_CLASS_KINDLER
- .string "FIETE$", 8
- .byte 0x41 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word IT_S
- ec_word ALL_RIGHT
- ec_word VERY
- ec_word ALL_RIGHT
- .2byte 0xFFFF
- .2byte 0xFFFF
-
-@ 60
- .byte TRAINER_CLASS_AROMA_LADY
- .string "AMANDA$", 8
- .byte 0x82 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WHAT
- ec_word FOR
- ec_word A
- ec_word TRAINER
- ec_word ARE
- ec_word YOU
-
-@ 61
- .byte TRAINER_CLASS_SWIMMING_TRIATHLETE_M
- .string "MAREK$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WE_VE
- ec_word UNTIL
- ec_word NOW
- ec_word TOTALLY
- ec_word NEVER
- ec_word LOST
-
-@ 62
- .byte TRAINER_CLASS_DRAGON_TAMER
- .string "NATHAN$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word DRAGON
- .2byte 0xFFFF
- ec_word POKEMON
- ec_word THOSE
- ec_word FANTASTIC
- .2byte 0xFFFF
-
-@ 63
- .byte TRAINER_CLASS_LASS
- .string "MIRIAM$", 8
- .byte 0x82 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOU_RE
- ec_word QUITE
- ec_word TOO_STRONG
- ec_word AM
- ec_word BAD
- ec_word NEWS
-
-@ 64
- .byte TRAINER_CLASS_POKEMANIAC
- .string "THEO$", 8
- .byte 0x40 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word PLUSH_DOLL
- ec_word MUST_BE
- ec_word MAN
- ec_word SIMPLE
- ec_word ADORE
- .2byte 0xFFFF
-
-@ 65
- .byte TRAINER_CLASS_SWIMMING_TRIATHLETE_F
- .string "PIA$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word HERE_I_COME
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- ec_word CUTE
- ec_word A
- ec_word CHANNEL
- ec_word IDOL
-
-@ 66
- .byte TRAINER_CLASS_POKEFAN_F
- .string "ALISSA$", 8
- .byte 0x20 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOURS
- ec_word POKEMON
- ec_word THOSE
- ec_word PREPOSTEROUS
- ec_word I_AM
- ec_word SHOCKED
-
-@ 67
- .byte TRAINER_CLASS_GENTLEMAN
- .string "ARTUR$", 8
- .byte 0x20 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word PLEASE
- ec_word ALL
- ec_word BATTLE
- ec_word WEREN_T
- ec_word GREAT
- ec_word HIS
-
-@ 68
- .byte TRAINER_CLASS_SWIMMER_F
- .string "MAJA$", 8
- .byte 0x82 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I_AM
- ec_word PRETTY
- ec_word YOU
- ec_word CAN_T
- ec_word DON_T
- ec_word WINS
-
-@ 69
- .byte TRAINER_CLASS_COOL_TRAINER_M
- .string "MARIUS$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word BATTLE
- ec_word DAILY
- ec_word I
- ec_word WON_T
- ec_word LOSE
-
-@ 70
- .byte TRAINER_CLASS_BIRD_KEEPER
- .string "OLIVER$", 8
- .byte 0x11 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word GIGGLE
- ec_word GIGGLE
- ec_word SNORT
- ec_word HAPPILY
- ec_word GIGGLE
- ec_word MUFUFU
-
-@ 71
- .byte TRAINER_CLASS_CYCLING_TRIATHLETE_F
- .string "MOLLY$", 8
- .byte 0x12 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word IS
- ec_word TODAY
- ec_word MONDAY
- ec_word QUES
- .2byte 0xFFFF
- .2byte 0xFFFF
-
-@ 72
- .byte TRAINER_CLASS_BUG_MANIAC
- .string "JÖRG$", 8
- .byte 0x40 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WATER
- .2byte 0xFFFF
- ec_word AND
- ec_word BUG
- .2byte 0xFFFF
- ec_word POKEMON
-
-@ 73
- .byte TRAINER_CLASS_BATTLE_GIRL
- .string "ANKE$", 8
- .byte 0x20 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WHAT
- ec_word IS
- ec_word PRESSURE
- ec_word STATIC
- ec_word IS
- ec_word SUPER
-
-@ 74
- .byte TRAINER_CLASS_FISHERMAN
- .string "HANS$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word KID
- ec_word YOU
- ec_word CAN_T
- ec_word DON_T
- ec_word WINS
- .2byte 0xFFFF
-
-@ 75
- .byte TRAINER_CLASS_SAILOR
- .string "PETER$", 8
- .byte 0x20 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word IT_S
- ec_word QUITE
- ec_word TERRIBLE
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- ec_word MODE
- ec_word I
-
-@ 76
- .byte TRAINER_CLASS_EXPERT_F
- .string "MARA$", 8
- .byte 0x20 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOU_RE
- ec_word VERY
- ec_word ALL_RIGHT
- ec_word TRAINS
- ec_word OR
- ec_word QUES
-
-@ 77
- .byte TRAINER_CLASS_BUG_MANIAC
- .string "DARIUS$", 8
- .byte 0x11 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word ARE
- ec_word YOU
- ec_word TOUGH
- ec_word ARE
- ec_word YOU
- ec_word SCARY
-
-@ 78
- .byte TRAINER_CLASS_POKEMON_BREEDER_F
- .string "REGINA$", 8
- .byte 0x12 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word TODAY
- ec_word WIN
- ec_word I
- ec_word MAYBE
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- .2byte 0xFFFF
-
-@ 79
- .byte TRAINER_CLASS_PARASOL_LADY
- .string "MAIKE$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word SO
- ec_word AN
- ec_move1 SCARY_FACE
- ec_word IS
- ec_word NOT_VERY
- ec_word KIND
-
-@ 80
- .byte TRAINER_CLASS_RUNNING_TRIATHLETE_F
- .string "SANDRA$", 8
- .byte 0x04 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word SPORTS
- ec_word IS
- ec_word HEALTHY
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- ec_word SPIRALING
- .2byte 0xFFFF
-
-@ 81
- .byte TRAINER_CLASS_POKEMON_RANGER_M
- .string "ARNOLD$", 8
- .byte 0x08 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word AWESOME
- ec_word WHO_WAS
- ec_word POKEMON
- ec_word THOSE
- ec_word ROCK_SOLID
- .2byte 0xFFFF
-
-@ 82
- .byte TRAINER_CLASS_BLACK_BELT
- .string "XENO$", 8
- .byte 0x04 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word HOO_HAH
- ec_word ARE
- ec_word YOU
- ec_word READY
- ec_word FOR
- ec_word SHADY
-
-@ 83
- .byte TRAINER_CLASS_COOL_TRAINER_F
- .string "KARLA$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOU
- ec_word CAN_T
- ec_word ME
- ec_word NEVER
- ec_word SMITE
- ec_word KID
-
-@ 84
- .byte TRAINER_CLASS_COLLECTOR
- .string "VOLKER$", 8
- .byte 0x80 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word FROM
- ec_word PLACE
- ec_word TO
- ec_word PLACE
- ec_word POKEMON
- ec_word WOWEE
-
-@ 85
- .byte TRAINER_CLASS_SWIMMING_TRIATHLETE_M
- .string "TOBIAS$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word THAT
- ec_word ISN_T
- ec_word SPORTS
- ec_word IT_S
- ec_word A
- ec_word FIGHTING
-
-@ 86
- .byte TRAINER_CLASS_GENTLEMAN
- .string "NORBERT$", 8
- .byte 0x20 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word MUST_BE
- ec_word WINS
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- ec_word PLEASE
- ec_word PLEASE
-
-@ 87
- .byte TRAINER_CLASS_BATTLE_GIRL
- .string "ZITA$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word THAT
- ec_word IS
- ec_word SCARY
- ec_word PLEASE
- ec_word BE
- ec_word NICE
-
-@ 88
- .byte TRAINER_CLASS_BEAUTY
- .string "ELKE$", 8
- .byte 0x20 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WITHOUT
- ec_move1 FLAIL
- ec_word NONE
- ec_move1 WITHDRAW
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- .2byte 0xFFFF
-
-@ 89
- .byte TRAINER_CLASS_HIKER
- .string "VITUS$", 8
- .byte 0x04 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YAHOO
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- ec_word LISTENS
- ec_word HER
- ec_word TO
- ec_word QUES
-
-@ 90
- .byte TRAINER_CLASS_EXPERT_M
- .string "MALTE$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word LEARN
- ec_word CORRECT
- ec_word TO
- ec_word FIGHT
- .2byte 0xFFFF
- .2byte 0xFFFF
-
-@ 91
- .byte TRAINER_CLASS_POKEMON_BREEDER_M
- .string "TIM$", 8
- .byte 0x40 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word IT_S
- ec_word A
- ec_word FIGHTING
- ec_word NONE
- ec_word CHILD_S_PLAY
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
-
-@ 92
- .byte TRAINER_CLASS_GUITARIST
- .string "GAVIN$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word SHADY
- ec_word BABY
- ec_word BABY
- ec_word BABY
- .2byte 0xFFFF
- .2byte 0xFFFF
-
-@ 93
- .byte TRAINER_CLASS_PSYCHIC_M
- .string "RALF$", 8
- .byte 0x08 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word STICKY_HOLD
- ec_word THOSE
- ec_word IMPORTANT
- ec_word ISN_T_IT_QUES
- .2byte 0xFFFF
- .2byte 0xFFFF
-
-@ 94
- .byte TRAINER_CLASS_COOL_TRAINER_F
- .string "JENNY$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word SEARCH
- ec_word TRAINER
- ec_word ABSOLUTELY
- ec_word TOUGH
- ec_word THOSE
-
-@ 95
- .byte TRAINER_CLASS_EXPERT_M
- .string "JOEL$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word BELIEVE
- ec_word ON
- ec_word YOURS
- ec_word POKEMON
- ec_word AND
- ec_word WIN
-
-@ 96
- .byte TRAINER_CLASS_DRAGON_TAMER
- .string "KOLJA$", 8
- .byte 0x0C @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word GIRL
- ec_word WITH
- ec_move2 FORESIGHT
- ec_word THOSE
- ec_word NICE
- .2byte 0xFFFF
-
-@ 97
- .byte TRAINER_CLASS_COOL_TRAINER_M
- .string "BILL$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WHO_WAS
- ec_word POWER
- ec_word IS
- ec_word OVERWHELMING
- ec_word DISAPPEAR
- ec_word BETTER
-
-@ 98
- .byte TRAINER_CLASS_EXPERT_F
- .string "CALLA$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word TRAINER
- ec_word YOU
- ec_word ARE
- ec_word SEEMS
- ec_word CAPABLE
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
-
-@ 99
- .byte TRAINER_CLASS_LADY
- .string "GESA$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word COME_ON
- ec_word ABSOLUTELY
- ec_word TIME
- ec_word BECOMES
- ec_word EXCELLENT
- .2byte 0xFFFF
diff --git a/data-de/event_scripts.s b/data-de/event_scripts.s
index 677aa9f21..4501d62b6 100644
--- a/data-de/event_scripts.s
+++ b/data-de/event_scripts.s
@@ -1,3 +1,13 @@
+#include "constants/decorations.h"
+#include "constants/flags.h"
+#include "constants/game_stat.h"
+#include "constants/items.h"
+#include "constants/map_objects.h"
+#include "constants/maps.h"
+#include "constants/moves.h"
+#include "constants/opponents.h"
+#include "constants/songs.h"
+#include "constants/species.h"
.include "asm/macros.inc"
.include "asm/macros/event.inc"
.include "constants/constants.inc"
@@ -22,12 +32,12 @@ gSpecialVars::
.4byte gSpecialVar_0x8009
.4byte gSpecialVar_0x800A
.4byte gSpecialVar_0x800B
- .4byte gScriptFacing
- .4byte gScriptResult
- .4byte gScriptItemId
- .4byte gScriptLastTalked
- .4byte gScriptContestRank
- .4byte gScriptContestCategory
+ .4byte gSpecialVar_Facing
+ .4byte gSpecialVar_Result
+ .4byte gSpecialVar_ItemId
+ .4byte gSpecialVar_LastTalked
+ .4byte gSpecialVar_ContestRank
+ .4byte gSpecialVar_ContestCategory
.include "data/specials.inc"
@@ -391,7 +401,7 @@ gUnknown_0815F36C:: @ 815F36C
dofieldeffect 61
waitstate
waitmessage
- waitbutton
+ waitbuttonpress
playse 5
goto EventScript_15F384
end
@@ -399,7 +409,7 @@ gUnknown_0815F36C:: @ 815F36C
EventScript_15F384:
message UnknownString_81A3A87
waitmessage
- checkflag 268
+ checkflag FLAG_DECORATION_16
goto_if_eq EventScript_15F3A0
goto EventScript_15F3E2
end
@@ -452,7 +462,7 @@ gUnknown_0815F43A:: @ 815F43A
dofieldeffect 61
waitstate
waitmessage
- waitbutton
+ waitbuttonpress
playse 5
goto EventScript_15F452
end
@@ -486,7 +496,7 @@ EventScript_15F4A1:
goto_if_eq EventScript_15F452
msgbox UnknownString_81A3A22, 3
special sub_80BC5BC
- special sub_80C683C
+ special DoSecretBasePCTurnOffEffect
releaseall
end
@@ -496,13 +506,13 @@ EventScript_15F4E0:
goto_if_eq EventScript_15F452
msgbox UnknownString_81A3A3A, 3
special sub_80BC5BC
- special sub_80C683C
+ special DoSecretBasePCTurnOffEffect
releaseall
end
EventScript_15F503:
msgbox UnknownString_81A39C0, 3
- special sub_80C683C
+ special DoSecretBasePCTurnOffEffect
closemessage
releaseall
end
@@ -514,7 +524,7 @@ EventScript_15F511:
end
EventScript_15F51D:
- special sub_80C683C
+ special DoSecretBasePCTurnOffEffect
closemessage
releaseall
end
@@ -892,7 +902,7 @@ Std_2:
faceplayer
message 0x0
waitmessage
- waitbutton
+ waitbuttonpress
release
return
@@ -900,14 +910,14 @@ Std_3:
lockall
message 0x0
waitmessage
- waitbutton
+ waitbuttonpress
releaseall
return
Std_4:
message 0x0
waitmessage
- waitbutton
+ waitbuttonpress
return
Std_5:
@@ -949,7 +959,7 @@ gUnknown_0819F818:: @ 819F818
goto EventScript_19F8F2
EventScript_19F83F:
- ontrainerbattleend
+ gotopostbattlescript
gUnknown_0819F840:: @ 819F840
lock
@@ -968,19 +978,19 @@ gUnknown_0819F840:: @ 819F840
EventScript_19F870:
special ScrSpecial_ShowTrainerNonBattlingSpeech
waitmessage
- waitbutton
+ waitbuttonpress
release
end
EventScript_19F877:
- ontrainerbattleend
+ gotopostbattlescript
gUnknown_0819F878:: @ 819F878
applymovement LAST_TALKED, Movement_19F8F0
waitmovement 0
special PlayTrainerEncounterMusic
- battlebegin
- ontrainerbattleend
+ trainerbattlebegin
+ gotopostbattlescript
gUnknown_0819F887:: @ 819F887
call EventScript_19F8E5
@@ -991,14 +1001,14 @@ gUnknown_0819F887:: @ 819F887
special sub_8082524
special ScrSpecial_ShowTrainerIntroSpeech
waitmessage
- waitbutton
+ waitbuttonpress
special ScrSpecial_StartTrainerEyeRematch
waitstate
releaseall
end
EventScript_19F8AD:
- ontrainerbattleend
+ gotopostbattlescript
gUnknown_0819F8AE:: @ 819F8AE
specialvar RESULT, ScrSpecial_GetTrainerEyeRematchFlag
@@ -1011,19 +1021,19 @@ gUnknown_0819F8AE:: @ 819F8AE
special sub_8082524
special ScrSpecial_ShowTrainerIntroSpeech
waitmessage
- waitbutton
+ waitbuttonpress
special ScrSpecial_StartTrainerEyeRematch
waitstate
releaseall
end
EventScript_19F8DD:
- ontrainerbattleend
+ gotopostbattlescript
EventScript_19F8DE:
special ScrSpecial_ShowTrainerNonBattlingSpeech
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -1039,8 +1049,8 @@ Movement_19F8F0::
EventScript_19F8F2:
special ScrSpecial_ShowTrainerIntroSpeech
waitmessage
- waitbutton
- battlebegin
+ waitbuttonpress
+ trainerbattlebegin
specialvar RESULT, ScrSpecial_GetTrainerBattleMode
compare RESULT, 0
goto_if_eq EventScript_19F934
@@ -1058,271 +1068,271 @@ EventScript_19F934:
end
EventScript_19F936:
- ontrainerbattleendgoto
+ gotobeatenscript
Std_6::
message 0x0
waitmessage
- waitbutton
+ waitbuttonpress
release
return
Event_ResetBerryTrees: @ 19F940
- plantberrytree 2, 7, 5
- plantberrytree 1, 3, 5
- plantberrytree 11, 7, 5
- plantberrytree 13, 3, 5
- plantberrytree 4, 7, 5
- plantberrytree 76, 1, 5
- plantberrytree 8, 1, 5
- plantberrytree 10, 6, 5
- plantberrytree 25, 20, 5
- plantberrytree 26, 2, 5
- plantberrytree 66, 2, 5
- plantberrytree 67, 20, 5
- plantberrytree 69, 22, 5
- plantberrytree 70, 22, 5
- plantberrytree 71, 22, 5
- plantberrytree 55, 17, 5
- plantberrytree 56, 17, 5
- plantberrytree 5, 1, 5
- plantberrytree 6, 6, 5
- plantberrytree 7, 1, 5
- plantberrytree 16, 18, 5
- plantberrytree 17, 18, 5
- plantberrytree 18, 18, 5
- plantberrytree 29, 19, 5
- plantberrytree 28, 19, 5
- plantberrytree 27, 19, 5
- plantberrytree 24, 4, 5
- plantberrytree 23, 3, 5
- plantberrytree 22, 3, 5
- plantberrytree 21, 4, 5
- plantberrytree 19, 16, 5
- plantberrytree 20, 16, 5
- plantberrytree 80, 7, 5
- plantberrytree 81, 7, 5
- plantberrytree 77, 8, 5
- plantberrytree 78, 8, 5
- plantberrytree 68, 8, 5
- plantberrytree 31, 10, 5
- plantberrytree 33, 10, 5
- plantberrytree 34, 21, 5
- plantberrytree 35, 21, 5
- plantberrytree 36, 21, 5
- plantberrytree 83, 24, 5
- plantberrytree 84, 24, 5
- plantberrytree 85, 10, 5
- plantberrytree 86, 6, 5
- plantberrytree 37, 5, 5
- plantberrytree 38, 5, 5
- plantberrytree 39, 5, 5
- plantberrytree 40, 3, 5
- plantberrytree 41, 3, 5
- plantberrytree 42, 3, 5
- plantberrytree 46, 19, 5
- plantberrytree 45, 20, 5
- plantberrytree 44, 18, 5
- plantberrytree 43, 16, 5
- plantberrytree 47, 8, 5
- plantberrytree 48, 5, 5
- plantberrytree 49, 4, 5
- plantberrytree 50, 2, 5
- plantberrytree 52, 18, 5
- plantberrytree 53, 18, 5
- plantberrytree 62, 6, 5
- plantberrytree 64, 6, 5
- plantberrytree 58, 21, 5
- plantberrytree 59, 21, 5
- plantberrytree 60, 25, 5
- plantberrytree 61, 25, 5
- plantberrytree 79, 23, 5
- plantberrytree 14, 23, 5
- plantberrytree 15, 21, 5
- plantberrytree 30, 21, 5
- plantberrytree 65, 25, 5
- plantberrytree 72, 25, 5
- plantberrytree 73, 23, 5
- plantberrytree 74, 23, 5
- plantberrytree 87, 3, 5
- plantberrytree 88, 10, 5
- plantberrytree 89, 4, 5
- plantberrytree 82, 36, 5
+ setberrytree 2, 7, 5
+ setberrytree 1, 3, 5
+ setberrytree 11, 7, 5
+ setberrytree 13, 3, 5
+ setberrytree 4, 7, 5
+ setberrytree 76, 1, 5
+ setberrytree 8, 1, 5
+ setberrytree 10, 6, 5
+ setberrytree 25, 20, 5
+ setberrytree 26, 2, 5
+ setberrytree 66, 2, 5
+ setberrytree 67, 20, 5
+ setberrytree 69, 22, 5
+ setberrytree 70, 22, 5
+ setberrytree 71, 22, 5
+ setberrytree 55, 17, 5
+ setberrytree 56, 17, 5
+ setberrytree 5, 1, 5
+ setberrytree 6, 6, 5
+ setberrytree 7, 1, 5
+ setberrytree 16, 18, 5
+ setberrytree 17, 18, 5
+ setberrytree 18, 18, 5
+ setberrytree 29, 19, 5
+ setberrytree 28, 19, 5
+ setberrytree 27, 19, 5
+ setberrytree 24, 4, 5
+ setberrytree 23, 3, 5
+ setberrytree 22, 3, 5
+ setberrytree 21, 4, 5
+ setberrytree 19, 16, 5
+ setberrytree 20, 16, 5
+ setberrytree 80, 7, 5
+ setberrytree 81, 7, 5
+ setberrytree 77, 8, 5
+ setberrytree 78, 8, 5
+ setberrytree 68, 8, 5
+ setberrytree 31, 10, 5
+ setberrytree 33, 10, 5
+ setberrytree 34, 21, 5
+ setberrytree 35, 21, 5
+ setberrytree 36, 21, 5
+ setberrytree 83, 24, 5
+ setberrytree 84, 24, 5
+ setberrytree 85, 10, 5
+ setberrytree 86, 6, 5
+ setberrytree 37, 5, 5
+ setberrytree 38, 5, 5
+ setberrytree 39, 5, 5
+ setberrytree 40, 3, 5
+ setberrytree 41, 3, 5
+ setberrytree 42, 3, 5
+ setberrytree 46, 19, 5
+ setberrytree 45, 20, 5
+ setberrytree 44, 18, 5
+ setberrytree 43, 16, 5
+ setberrytree 47, 8, 5
+ setberrytree 48, 5, 5
+ setberrytree 49, 4, 5
+ setberrytree 50, 2, 5
+ setberrytree 52, 18, 5
+ setberrytree 53, 18, 5
+ setberrytree 62, 6, 5
+ setberrytree 64, 6, 5
+ setberrytree 58, 21, 5
+ setberrytree 59, 21, 5
+ setberrytree 60, 25, 5
+ setberrytree 61, 25, 5
+ setberrytree 79, 23, 5
+ setberrytree 14, 23, 5
+ setberrytree 15, 21, 5
+ setberrytree 30, 21, 5
+ setberrytree 65, 25, 5
+ setberrytree 72, 25, 5
+ setberrytree 73, 23, 5
+ setberrytree 74, 23, 5
+ setberrytree 87, 3, 5
+ setberrytree 88, 10, 5
+ setberrytree 89, 4, 5
+ setberrytree 82, 36, 5
return
gUnknown_0819FA81:: @ 819FA81
- setflag 86
- setflag 769
- setflag 770
- setflag 771
- setflag 721
- setflag 889
- setflag 726
- setflag 867
- setflag 731
- setflag 732
- setflag 814
- setflag 868
- setflag 739
- setflag 881
- setflag 738
- setflag 740
- setflag 741
- setflag 743
- setflag 744
- setflag 906
- setflag 737
- setflag 747
- setflag 748
- setflag 749
- setflag 756
- setflag 774
- setflag 895
- setflag 776
- setflag 777
- setflag 778
- setflag 779
- setflag 780
- setflag 781
- setflag 782
- setflag 783
- setflag 734
- setflag 849
- setflag 789
- setflag 790
- setflag 791
- setflag 792
- setflag 797
- setflag 798
- setflag 799
- setflag 901
- setflag 902
- setflag 903
- setflag 904
- setflag 800
- setflag 801
- setflag 803
- setflag 802
- setflag 806
- setflag 808
- setflag 809
- setflag 984
- setflag 811
- setflag 812
- setflag 866
- setflag 815
- setflag 816
- setflag 869
- setflag 823
- setflag 828
- setflag 829
- setflag 831
- setflag 859
- setflag 841
- setflag 843
- setflag 844
- setflag 847
- setflag 845
- setflag 846
- setflag 860
- setflag 861
- setflag 835
- setflag 840
- setflag 848
- setflag 851
- setflag 855
- setflag 856
- setflag 973
- setflag 870
- setflag 872
- setflag 877
- setflag 879
- setflag 891
- setflag 880
- setflag 878
- setflag 807
- setflag 983
- setflag 886
- setflag 884
- setflag 885
- setflag 961
- setflag 888
- setflag 941
- setflag 752
- setflag 757
- setflag 892
- setflag 896
- setflag 897
- setflag 898
- setflag 909
- setflag 910
- setflag 911
- setflag 915
- setflag 912
- setflag 920
- setflag 921
- setflag 922
- setflag 923
- setflag 925
- setflag 929
- setflag 930
- setflag 934
- setflag 939
- setflag 940
- setflag 928
- setflag 834
- setflag 944
- setflag 945
- setflag 947
- setflag 948
- setflag 858
- setflag 950
- setflag 968
- setflag 1133
- setflag 727
- setflag 979
- setflag 751
- setflag 991
+ setflag FLAG_LINK_CONTEST_ROOM_POKEBALL
+ setflag FLAG_HIDE_VICTORIA_WINSTRATE
+ setflag FLAG_HIDE_VIVI_WINSTRATE
+ setflag FLAG_HIDE_VICKI_WINSTRATE
+ setflag FLAG_HIDE_BIRCH_IN_LAB
+ setflag FLAG_HIDE_RIVAL_BIRCH_LAB
+ setflag FLAG_HIDE_WALLY_PETALBURG
+ setflag FLAG_UNKNOWN_363
+ setflag FLAG_HIDE_GRUNT_RUSTBORO
+ setflag FLAG_HIDE_DEVON_RUSTBORO
+ setflag FLAG_HIDE_RIVAL_RUSTBORO
+ setflag FLAG_HIDE_FAT_MAN_LITTLEROOT
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE
+ setflag FLAG_HIDE_PEEKO_BRINEY_HOUSE
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104
+ setflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE109
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109
+ setflag FLAG_HIDE_FLOWER_SHOP_WORKER_OUTSIDE
+ setflag FLAG_UNKNOWN_2E1
+ setflag FLAG_UNKNOWN_2EB
+ setflag FLAG_UNKNOWN_2EC
+ setflag FLAG_UNKNOWN_2ED
+ setflag FLAG_UNKNOWN_2F4
+ setflag FLAG_HIDE_LILYCOVE_CONTEST_ATTENDENT_1
+ setflag FLAG_HIDE_ARTIST_LILCOVE_CONTEST
+ setflag FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_LADY
+ setflag FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_GIRL
+ setflag FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_MAN
+ setflag FLAG_HIDE_LILYCOVE_MUSEUM_PAINTER
+ setflag FLAG_HIDE_LILYCOVE_MUSEUM_VISITORS
+ setflag FLAG_HIDE_PETALBURG_GYM_GUIDE
+ setflag FLAG_UNKNOWN_30E
+ setflag FLAG_UNKNOWN_30F
+ setflag FLAG_HIDE_NORMAN_LITTLEROOT
+ setflag FLAG_HIDE_MAY_PICHU_DOLL
+ setflag FLAG_HIDE_FANCLUB_OLD_LADY
+ setflag FLAG_HIDE_FANCLUB_BOY
+ setflag FLAG_HIDE_FANCLUB_LITTLE_BOY
+ setflag FLAG_HIDE_FANCLUB_LADY
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE118_1
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE120_1
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE111_2
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE118_2
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE120_2
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE111_3
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE118_3
+ setflag FLAG_HIDE_CONTEST_REPORTER_FALLARBOR
+ setflag FLAG_HIDE_CONTEST_REPORTER_VERDANTURF
+ setflag FLAG_HIDE_CONTEST_REPORTER_SLATEPORT
+ setflag FLAG_HIDE_CONTEST_REPORTER_LILYCOVE
+ setflag FLAG_HIDE_WALLY_WANDAS_HOUSE
+ setflag FLAG_HIDE_BOYFRIEND_WANDAS_HOUSE
+ setflag FLAG_HIDE_WALLY_FATHER_WANDAS_HOUSE
+ setflag FLAG_HIDE_GIRLFRIEND_WANDAS_HOUSE
+ setflag FLAG_HIDE_WALLY_FATHER_PETALBURG
+ setflag FLAG_HIDE_WALLY_MOTHER_PETALBURG
+ setflag FLAG_HIDE_WALLY_PETALBURG_GYM
+ setflag FLAG_HIDE_WALLACE_SOOTOPOLIS_GYM
+ setflag FLAG_HIDE_WALLACE_SOOTOPOLIS
+ setflag FLAG_HIDE_BRINEY_SLATEPORT_SHIPYARD
+ setflag FLAG_UNKNOWN_337
+ setflag FLAG_HIDE_EVIL_LEADER_SEAFLOOR_CAVERN
+ setflag FLAG_HIDE_OTHER_LEADER_SEAFLOOR_CAVERN
+ setflag FLAG_HIDE_OTHER_TEAM_GRUNTS_SEAFLOOR_CAVERN
+ setflag FLAG_HIDE_AWAKENED_MON_SEAFLOOR_CAVERN
+ setflag FLAG_HIDE_STERN_SLATEPORT_HARBOR
+ setflag FLAG_UNKNOWN_34B
+ setflag FLAG_UNKNOWN_34C
+ setflag FLAG_UNKNOWN_34F
+ setflag FLAG_HIDE_GRUNT_1_SLATEPORT_HARBOR
+ setflag FLAG_HIDE_GRUNT_2_SLATEPORT_HARBOR
+ setflag FLAG_HIDE_SS_TIDAL_SLATEPORT_HARBOR
+ setflag FLAG_HIDE_SS_TIDAL_LILYCOVE_HARBOR
+ setflag FLAG_HIDE_GABBY_AND_TY_SLATEPORT
+ setflag FLAG_HIDE_STERN_SLATEPORT
+ setflag FLAG_HIDE_SUBMARINE_SHADOW_SLATEPORT_HARBOR
+ setflag FLAG_HIDE_RIVAL_ROUTE119
+ setflag FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_1
+ setflag FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_2
+ setflag FLAG_HIDE_STEVEN_SOOTOPOLIS
+ setflag FLAG_HIDE_LANETTE
+ setflag FLAG_HIDE_TRICKMASTER_ENTRANCE
+ setflag FLAG_HIDE_MT_CHIMNEY_PEOPLE
+ setflag FLAG_HIDE_BRINEY_RUSTURF_TUNNEL
+ setflag FLAG_HIDE_BRINEY_ROUTE116
+ setflag FLAG_HIDE_PEEKO_RUSTURF_TUNNEL
+ setflag FLAG_HIDE_GRUNT_RUSTURF_TUNNEL
+ setflag FLAG_HIDE_BOYFRIEND_RUSTURF_TUNNEL
+ setflag FLAG_HIDE_GIRLFRIEND_RUSTURF_TUNNEL
+ setflag FLAG_HIDE_EVIL_TEAM_LEADER_OCEANIC_MUSEUM_2F
+ setflag FLAG_HIDE_GRUNT_1_OCEANIC_MUSEUM_2F
+ setflag FLAG_HIDE_GRUNT_2_OCEANIC_MUSEUM_2F
+ setflag FLAG_HIDE_OCEANIC_MUSEUM_VISITORS
+ setflag FLAG_HIDE_BATTLE_TOWER_OPPONENT
+ setflag FLAG_HIDE_AWARD_MAN_BATTLE_TOWER
+ setflag FLAG_HIDE_MOM_LITTLEROOT
+ setflag FLAG_HIDE_MOM_UPSTAIRS
+ setflag FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_1F
+ setflag FLAG_UNKNOWN_BIRCH_380
+ setflag FLAG_HIDE_BIRCH_ROUTE101
+ setflag FLAG_HIDE_BIRCH_ROUTE103
+ setflag FLAG_HIDE_FERRY_SAILOR_LILYCOVE
+ setflag FLAG_HIDE_LATIOS_OR_LATIAS_FLYING
+ setflag FLAG_HIDE_LATIOS_OR_LATIAS_STATIONARY
+ setflag FLAG_UNKNOWN_393
+ setflag FLAG_HIDE_WATTSON_MAUVILLE
+ setflag FLAG_HIDE_RIVAL_CHAMPIONS_ROOM
+ setflag FLAG_HIDE_BIRCH_CHAMPIONS_ROOM
+ setflag FLAG_HIDE_RIVAL_ON_BIKE_ROUTE110
+ setflag FLAG_HIDE_RIVAL_ROUTE119_ON_BIKE
+ setflag FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE
+ setflag FLAG_HIDE_RIVAL_LAVARIDGE_1
+ setflag FLAG_HIDE_RIVAL_LAVARIDGE_2
+ setflag FLAG_HIDE_WINGULL_MOSSDEEP_HOUSE
+ setflag FLAG_HIDE_OTHER_TEAM_METEOR_FALLS_1F
+ setflag FLAG_HIDE_SLUDGE_BOMB_MAN_DEWFORD_HALL
+ setflag FLAG_HIDE_PROF_COSMO_FALLARBOR
+ setflag FLAG_HIDE_STEVEN_ROUTE128
+ setflag FLAG_HIDE_EVIL_LEADER_ROUTE128
+ setflag FLAG_HIDE_OTHER_LEADER_ROUTE128
+ setflag FLAG_HIDE_DEVON_EMPLOYEE_ROUTE116
+ setflag FLAG_HIDE_TM_SALESMAN_SLATEPORT
+ setflag FLAG_HIDE_WALLY_BATTLE_VICTORY_ROAD
+ setflag FLAG_HIDE_BRINEY_AND_PEEKO_SS_TIDAL
+ setflag FLAG_HIDE_BELDUM_BALL_STEVENS_HOUSE
+ setflag FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_1
+ setflag FLAG_HIDE_STEVENS_LETTER
+ setflag FLAG_HIDE_RIVAL_OLDALE_TOWN
+ setflag FLAG_HIDE_WALLY_DEFEATED_VICTORY_ROAD
+ setflag FLAG_HIDE_BOY_ROUTE101
call Event_ResetBerryTrees
end
EverGrandeCity_HallOfFame_EventScript_19FC13:: @ 819FC13
- clearflag 925
+ clearflag FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE
call EverGrandeCity_HallOfFame_EventScript_19FD09
- setflag 869
- clearflag 950
- clearflag 727
+ setflag FLAG_HIDE_BRINEY_SLATEPORT_SHIPYARD
+ clearflag FLAG_HIDE_BRINEY_AND_PEEKO_SS_TIDAL
+ clearflag FLAG_HIDE_STEVENS_LETTER
setvar 0x40c6, 1
- clearflag 751
- clearflag 860
- clearflag 861
+ clearflag FLAG_HIDE_WALLY_DEFEATED_VICTORY_ROAD
+ clearflag FLAG_HIDE_SS_TIDAL_SLATEPORT_HARBOR
+ clearflag FLAG_HIDE_SS_TIDAL_LILYCOVE_HARBOR
special sub_810FAA0
- checkflag 291
+ checkflag FLAG_RECEIVED_SS_TICKET
call_if 0, EverGrandeCity_HallOfFame_EventScript_19FC62
- checkflag 255
+ checkflag FLAG_LATIOS_OR_LATIAS_ROAMING
call_if 0, EverGrandeCity_HallOfFame_EventScript_19FC70
- checkflag 298
+ checkflag FLAG_RECEIVED_BELDUM
call_if 0, EverGrandeCity_HallOfFame_EventScript_19FC5A
- checkflag 123
+ checkflag FLAG_RECEIVED_HM08
call_if 0, EverGrandeCity_HallOfFame_EventScript_19FC5E
return
EverGrandeCity_HallOfFame_EventScript_19FC5A:: @ 819FC5A
- clearflag 968
+ clearflag FLAG_HIDE_BELDUM_BALL_STEVENS_HOUSE
return
EverGrandeCity_HallOfFame_EventScript_19FC5E:: @ 819FC5E
- clearflag 1133
+ clearflag FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_1
return
EverGrandeCity_HallOfFame_EventScript_19FC62:: @ 819FC62
setvar 0x4082, 3
setvar 0x408c, 3
- clearflag 734
+ clearflag FLAG_HIDE_NORMAN_LITTLEROOT
return
EverGrandeCity_HallOfFame_EventScript_19FC70:: @ 819FC70
- setflag 2141
+ setflag FLAG_SYS_TV_LATI
return
S_WhiteOut:: @ 819FC74
@@ -1332,11 +1342,11 @@ S_WhiteOut:: @ 819FC74
end
EventScript_19FC84:
- checkflag 221
+ checkflag FLAG_RECEIVED_GO_GOGGLES
goto_if_eq Route101_EventScript_1A14DC
- checkflag 1213
+ checkflag FLAG_DEFEATED_LAVARIDGE_GYM
goto_if 0, Route101_EventScript_1A14DC
- clearflag 929
+ clearflag FLAG_HIDE_RIVAL_LAVARIDGE_1
setvar 0x4053, 2
return
@@ -1350,42 +1360,42 @@ gUnknown_0819FC9F:: @ 819FC9F
end
EventScript_19FCC1:
- setflag 740
- setflag 743
- setflag 741
- setflag 744
- clearflag 742
- clearflag 739
- clearflag 881
+ setflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE109
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109
+ clearflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104
+ clearflag FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE
+ clearflag FLAG_HIDE_PEEKO_BRINEY_HOUSE
end
EventScript_19FCD7:
- setflag 741
- setflag 744
- setflag 738
- setflag 742
- setflag 739
- setflag 881
- clearflag 740
- clearflag 743
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE109
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE
+ setflag FLAG_HIDE_PEEKO_BRINEY_HOUSE
+ clearflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
+ clearflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD
end
EventScript_19FCF0:
- setflag 738
- setflag 742
- setflag 739
- setflag 881
- setflag 740
- setflag 743
- clearflag 741
- clearflag 744
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE
+ setflag FLAG_HIDE_PEEKO_BRINEY_HOUSE
+ setflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD
+ clearflag FLAG_HIDE_MR_BRINEY_ROUTE109
+ clearflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109
end
EverGrandeCity_HallOfFame_EventScript_19FD09:: @ 819FD09
- clearflag 1245
- clearflag 1246
- clearflag 1247
- clearflag 1248
+ clearflag FLAG_DEFEATED_ELITE_4_SYDNEY
+ clearflag FLAG_DEFEATED_ELITE_4_PHOEBE
+ clearflag FLAG_DEFEATED_ELITE_4_GLACIA
+ clearflag FLAG_DEFEATED_ELITE_4_DRAKE
setvar 0x409c, 0
return
@@ -1398,15 +1408,15 @@ 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 188
+ checkflag FLAG_RECEIVED_POKENAV
goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_1A14DC
- checkflag 1217
+ checkflag FLAG_DEFEATED_PETALBURG_GYM
goto_if_eq OldaleTown_PokemonCenter_1F_EventScript_1A14DC
- checkflag 742
+ checkflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104
goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_19FD49
- checkflag 740
+ checkflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_19FD4F
- checkflag 741
+ checkflag FLAG_HIDE_MR_BRINEY_ROUTE109
goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_19FD55
return
@@ -1456,7 +1466,7 @@ OldaleTown_PokemonCenter_1F_EventScript_19FD7C:: @ 819FD7C
applymovement 0x800b, OldaleTown_PokemonCenter_1F_Movement_1A0845
waitmovement 0
special ScrSpecial_HealPlayerParty
- checkflag 273
+ checkflag FLAG_POKERUS_EXPLAINED
goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_19FDCE
goto OldaleTown_PokemonCenter_1F_EventScript_19FDB0
end
@@ -1486,7 +1496,7 @@ OldaleTown_PokemonCenter_1F_EventScript_19FDCE:: @ 819FDCE
OldaleTown_PokemonCenter_1F_EventScript_19FDEA:: @ 819FDEA
message gText_NurseJoy_Pokerus
waitmessage
- setflag 273
+ setflag FLAG_POKERUS_EXPLAINED
return
OldaleTown_PokemonCenter_1F_Movement_19FDF4:: @ 819FDF4
@@ -1495,13 +1505,13 @@ OldaleTown_PokemonCenter_1F_Movement_19FDF4:: @ 819FDF4
step_end
Std_ObtainItem: @ 819FDF7
- additem 0x8000, 0x8001
+ giveitem 0x8000, 0x8001
copyvar 0x8007, RESULT
call Std_ObtainItem_
return
Std_ObtainItem_: @ 819FE07
- getitemname 1, 0x8000
+ bufferitemname 1, 0x8000
checkitemtype 0x8000
call GetItem_HandlePocket
compare 0x8007, 0x1
@@ -1520,31 +1530,31 @@ GetItem_HandlePocket:
end
GetItem_HandlePocket_Items:
- getstdstring 2, 0xE
+ bufferstdstring 2, 0xE
compare 0x8007, 1
call_if 1, PlayGetItemFanfare
return
GetItem_HandlePocket_KeyItems:
- getstdstring 2, 0xF
+ bufferstdstring 2, 0xF
compare 0x8007, 1
call_if 1, PlayGetItemFanfare
return
GetItem_HandlePocket_PokeBalls:
- getstdstring 2, 0x10
+ bufferstdstring 2, 0x10
compare 0x8007, 1
call_if 1, PlayGetItemFanfare
return
GetItem_HandlePocket_TMsHMs:
- getstdstring 2, 0x11
+ bufferstdstring 2, 0x11
compare 0x8007, 1
call_if 1, PlayGetTMHMFanfare
return
GetItem_HandlePocket_Berries:
- getstdstring 2, 0x12
+ bufferstdstring 2, 0x12
compare 0x8007, 1
call_if 1, PlayGetItemFanfare
return
@@ -1570,13 +1580,13 @@ PlayGetTMHMFanfare:
return
Std_ObtainDecoration: @ 819FEDA
- adddecor 0x8000
+ givedecoration 0x8000
copyvar 0x8007, RESULT
call Std_ObtainDecoration_
return
Std_ObtainDecoration_: @ 819FEE8
- getdecorname 1, 0x8000
+ bufferdecorationname 1, 0x8000
compare 0x8007, 1
call_if 1, Std_ObtainDecoration_Success
compare 0x8007, 0
@@ -1600,9 +1610,9 @@ Std_FindItem: @ 819FF21
lock
faceplayer
waitse
- additem 0x8000, 0x8001
+ giveitem 0x8000, 0x8001
copyvar 0x8007, RESULT
- getitemname 1, 0x8000
+ bufferitemname 1, 0x8000
checkitemtype 0x8000
call GetItem_HandlePocket
compare 0x8007, 1
@@ -1629,9 +1639,9 @@ Std_FindItem_Fail: @ 819FF65
HiddenItemScript:: @ 819FF7B
lockall
waitse
- additem 0x8005, 1
+ giveitem 0x8005, 1
copyvar 0x8007, RESULT
- getitemname 0x1, 0x8005
+ bufferitemname 0x1, 0x8005
checkitemtype 0x8005
call GetItem_HandlePocket
compare 0x8007, 1
@@ -1673,7 +1683,7 @@ UnusedMixRecordsScript_Yes: @ 819FFFA
UnusedMixRecordsScript_Done: @ 81A0000
message UnusedMixRecordsSeeYouAgainText
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -1713,9 +1723,9 @@ EventScript_1A0070:
EventScript_1A0085:
playse 2
- checkflag 2123
+ checkflag FLAG_SYS_PC_LANETTE
call_if 0, EventScript_1A00AC
- checkflag 2123
+ checkflag FLAG_SYS_PC_LANETTE
call_if 1, EventScript_1A00B5
msgbox UnknownString_81A0A35, 4
special ShowPokemonStorageSystem
@@ -1739,7 +1749,7 @@ EventScript_1A00BE:
end
EventScript_1A00CB:
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, EventScript_1A00BE
playse 2
special AccessHallOfFamePC
@@ -1797,8 +1807,8 @@ DewfordTown_Gym_EventScript_1A00FB:: @ 81A00FB
LavaridgeTown_Gym_1F_EventScript_1A00FB:: @ 81A00FB
MauvilleCity_Gym_EventScript_1A00FB:: @ 81A00FB
RustboroCity_Gym_EventScript_1A00FB:: @ 81A00FB
- clearflag 781
- setflag 296
+ clearflag FLAG_HIDE_PETALBURG_GYM_GUIDE
+ setflag FLAG_PETALBURG_MART_EXPANDED_ITEMS
return
DewfordTown_EventScript_1A0102:: @ 81A0102
@@ -1816,11 +1826,11 @@ Route109_EventScript_1A010C:: @ 81A010C
return
UseSurfScript:: @ 81A0117
- checkpokemove MOVE_SURF
+ checkpartymove MOVE_SURF
compare RESULT, 6
goto_if_eq UseSurfScript_NoMon
- getpartypokename 0, RESULT
- setfieldeffect 0, RESULT
+ bufferpartymonnick 0, RESULT
+ setfieldeffectargument 0, RESULT
lockall
msgbox UseSurfPromptText, 5
compare RESULT, 0
@@ -2163,24 +2173,24 @@ Route103_EventScript_1A02F4:: @ 81A02F4
return
Route101_EventScript_1A0358:: @ 81A0358
- clearflag 721
- clearflag 896
- setflag 897
- setflag 898
+ clearflag FLAG_HIDE_BIRCH_IN_LAB
+ clearflag FLAG_UNKNOWN_BIRCH_380
+ setflag FLAG_HIDE_BIRCH_ROUTE101
+ setflag FLAG_HIDE_BIRCH_ROUTE103
return
Route101_EventScript_1A0365:: @ 81A0365
- clearflag 897
- setflag 721
- setflag 896
- setflag 898
+ clearflag FLAG_HIDE_BIRCH_ROUTE101
+ setflag FLAG_HIDE_BIRCH_IN_LAB
+ setflag FLAG_UNKNOWN_BIRCH_380
+ setflag FLAG_HIDE_BIRCH_ROUTE103
return
Route101_EventScript_1A0372:: @ 81A0372
- clearflag 898
- setflag 897
- setflag 721
- setflag 896
+ clearflag FLAG_HIDE_BIRCH_ROUTE103
+ setflag FLAG_HIDE_BIRCH_ROUTE101
+ setflag FLAG_HIDE_BIRCH_IN_LAB
+ setflag FLAG_UNKNOWN_BIRCH_380
return
LittlerootTown_ProfessorBirchsLab_EventScript_1A037F:: @ 81A037F
@@ -2204,7 +2214,7 @@ Route101_EventScript_1A03A5:: @ 81A03A5
copyvar 0x8004, 0x8009
special ShowPokedexRatingMessage
waitmessage
- waitbutton
+ waitbuttonpress
return
EverGrandeCity_ChampionsRoom_EventScript_1A03B0:: @ 81A03B0
@@ -2214,8 +2224,8 @@ Route101_EventScript_1A03B0:: @ 81A03B0
copyvar 0x8008, 0x8005
copyvar 0x8009, 0x8006
copyvar 0x800a, RESULT
- getnumberstring 0, 0x8008
- getnumberstring 1, 0x8009
+ buffernumberstring 0, 0x8008
+ buffernumberstring 1, 0x8009
msgbox Route101_Text_1C44DC, 4
call Route101_EventScript_1A03A5
compare 0x800a, 0
@@ -2224,8 +2234,8 @@ Route101_EventScript_1A03B0:: @ 81A03B0
specialvar RESULT, ScriptGetPokedexInfo
copyvar 0x8008, 0x8005
copyvar 0x8009, 0x8006
- getnumberstring 0, 0x8008
- getnumberstring 1, 0x8009
+ buffernumberstring 0, 0x8008
+ buffernumberstring 1, 0x8009
msgbox Route101_Text_1C4B05, 4
return
@@ -2248,31 +2258,31 @@ SlateportCity_Harbor_Movement_1A041C:: @ 81A041C
step_end
PetalburgCity_Gym_EventScript_1A0424:: @ 81A0424
- setflag 740
- setflag 743
- setflag 741
- setflag 744
- setflag 738
- setflag 742
- setflag 739
- setflag 881
+ setflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE109
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE
+ setflag FLAG_HIDE_PEEKO_BRINEY_HOUSE
setvar 0x4096, 0
return
RusturfTunnel_EventScript_1A0442:: @ 81A0442
removeobject 1
removeobject 10
- clearflag 808
- clearflag 984
+ clearflag FLAG_HIDE_BOYFRIEND_WANDAS_HOUSE
+ clearflag FLAG_HIDE_GIRLFRIEND_WANDAS_HOUSE
setvar 0x409a, 6
- setflag 199
+ setflag FLAG_RUSTURF_TUNNEL_OPENED
return
EventScript_1A0457: @ unreferenced?
delay 30
applymovement 255, SlateportCity_OceanicMuseum_2F_Movement_1A0841
waitmovement 0
- showobject 255, 0, 0
+ showobjectat 255, MAP_PETALBURG_CITY
delay 30
applymovement 255, Movement_1A047A
waitmovement 0
@@ -2290,15 +2300,15 @@ SouthernIsland_Exterior_EventScript_1A047C:: @ 81A047C
compare FACING, 3
call_if 1, BattleTower_Outside_EventScript_160B3A
delay 30
- hideobject 255, 0, 0
+ hideobjectat 255, MAP_PETALBURG_CITY
call BattleTower_Outside_EventScript_1A040E
return
CaveOfOrigin_B4F_EventScript_1A04A0:: @ 81A04A0
lockall
waitse
- playpokecry SPECIES_GROUDON_OR_KYOGRE, 2
- waitpokecry
+ playmoncry SPECIES_GROUDON_OR_KYOGRE, 2
+ waitmoncry
setvar 0x4005, 1
releaseall
end
@@ -2352,13 +2362,13 @@ MagmaHideout_B1F_EventScript_1A04FD:: @ 81A04FD
faceplayer
setwildbattle SPECIES_ELECTRODE, 30, ITEM_NONE
waitse
- playpokecry SPECIES_ELECTRODE, 2
+ playmoncry SPECIES_ELECTRODE, 2
delay 40
- waitpokecry
- setflag 977
- setflag 2145
+ waitmoncry
+ setflag FLAG_HIDE_ELECTRODE_1_HIDEOUT
+ setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
- clearflag 2145
+ clearflag FLAG_SYS_CTRL_OBJ_DELETE
release
end
@@ -2368,13 +2378,13 @@ MagmaHideout_B1F_EventScript_1A051B:: @ 81A051B
faceplayer
setwildbattle SPECIES_ELECTRODE, 30, ITEM_NONE
waitse
- playpokecry SPECIES_ELECTRODE, 2
+ playmoncry SPECIES_ELECTRODE, 2
delay 40
- waitpokecry
- setflag 978
- setflag 2145
+ waitmoncry
+ setflag FLAG_HIDE_ELECTRODE_2_HIDEOUT
+ setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
- clearflag 2145
+ clearflag FLAG_SYS_CTRL_OBJ_DELETE
release
end
@@ -2451,9 +2461,9 @@ Route119_EventScript_1A05C3:: @ 81A05C3
applymovement LAST_TALKED, Route119_Movement_1A0662
waitmovement 0
waitse
- playpokecry SPECIES_KECLEON, 2
+ playmoncry SPECIES_KECLEON, 2
delay 40
- waitpokecry
+ waitmoncry
setwildbattle SPECIES_KECLEON, 30, ITEM_NONE
compare 0x8004, 1
call_if 1, Route119_EventScript_1A0646
@@ -2469,38 +2479,38 @@ Route119_EventScript_1A05C3:: @ 81A05C3
call_if 1, Route119_EventScript_1A065A
compare 0x8004, 7
call_if 1, Route119_EventScript_1A065E
- setflag 2145
+ setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
- clearflag 2145
+ clearflag FLAG_SYS_CTRL_OBJ_DELETE
release
end
Route119_EventScript_1A0646:: @ 81A0646
- setflag 982
+ setflag FLAG_HIDE_KECLEON_ROUTE120_3
return
Route119_EventScript_1A064A:: @ 81A064A
- setflag 985
+ setflag FLAG_HIDE_KECLEON_ROUTE120_4
return
Route119_EventScript_1A064E:: @ 81A064E
- setflag 986
+ setflag FLAG_HIDE_KECLEON_ROUTE120_5
return
Route119_EventScript_1A0652:: @ 81A0652
- setflag 987
+ setflag FLAG_HIDE_KECLEON_ROUTE120_6
return
Route119_EventScript_1A0656:: @ 81A0656
- setflag 988
+ setflag FLAG_HIDE_KECLEON_ROUTE120_7
return
Route119_EventScript_1A065A:: @ 81A065A
- setflag 989
+ setflag FLAG_HIDE_KECLEON_ROUTE119_1
return
Route119_EventScript_1A065E:: @ 81A065E
- setflag 990
+ setflag FLAG_HIDE_KECLEON_ROUTE119_2
return
FortreeCity_Movement_1A0662:: @ 81A0662
@@ -2542,12 +2552,12 @@ FallarborTown_House1_EventScript_1A067F:: @ 81A067F
GraniteCave_StevensRoom_EventScript_1A067F:: @ 81A067F
MtPyre_Summit_EventScript_1A067F:: @ 81A067F
SlateportCity_OceanicMuseum_2F_EventScript_1A067F:: @ 81A067F
- getitemname 0, 0x8004
+ bufferitemname 0, 0x8004
playfanfare 372
message FallarborTown_House1_Text_1A1498
waitmessage
waitfanfare
- removeitem 0x8004, 1
+ takeitem 0x8004, 1
return
EverGrandeCity_DrakesRoom_EventScript_1A0693:: @ 81A0693
@@ -2557,18 +2567,18 @@ EverGrandeCity_SidneysRoom_EventScript_1A0693:: @ 81A0693
applymovement 255, EverGrandeCity_SidneysRoom_Movement_1A0853
waitmovement 0
playse 8
- setmaptile 6, 1, 836, 0
- setmaptile 6, 2, 837, 0
- setmaptile 0, 2, 734, 1
- setmaptile 1, 2, 733, 1
- setmaptile 2, 2, 734, 1
- setmaptile 3, 2, 733, 1
- setmaptile 4, 2, 734, 1
- setmaptile 8, 2, 733, 1
- setmaptile 9, 2, 734, 1
- setmaptile 10, 2, 733, 1
- setmaptile 11, 2, 734, 1
- setmaptile 12, 2, 733, 1
+ setmetatile 6, 1, 836, 0
+ setmetatile 6, 2, 837, 0
+ setmetatile 0, 2, 734, 1
+ setmetatile 1, 2, 733, 1
+ setmetatile 2, 2, 734, 1
+ setmetatile 3, 2, 733, 1
+ setmetatile 4, 2, 734, 1
+ setmetatile 8, 2, 733, 1
+ setmetatile 9, 2, 734, 1
+ setmetatile 10, 2, 733, 1
+ setmetatile 11, 2, 734, 1
+ setmetatile 12, 2, 733, 1
special DrawWholeMapView
return
@@ -2579,12 +2589,12 @@ EverGrandeCity_SidneysRoom_EventScript_1A0710:: @ 81A0710
applymovement 255, EverGrandeCity_SidneysRoom_Movement_1A0847
waitmovement 0
playse 52
- setmaptile 5, 12, 518, 1
- setmaptile 6, 12, 518, 1
- setmaptile 7, 12, 518, 1
- setmaptile 5, 13, 526, 1
- setmaptile 6, 13, 526, 1
- setmaptile 7, 13, 526, 1
+ setmetatile 5, 12, 518, 1
+ setmetatile 6, 12, 518, 1
+ setmetatile 7, 12, 518, 1
+ setmetatile 5, 13, 526, 1
+ setmetatile 6, 13, 526, 1
+ setmetatile 7, 13, 526, 1
special DrawWholeMapView
return
@@ -2592,36 +2602,36 @@ EverGrandeCity_DrakesRoom_EventScript_1A0757:: @ 81A0757
EverGrandeCity_GlaciasRoom_EventScript_1A0757:: @ 81A0757
EverGrandeCity_PhoebesRoom_EventScript_1A0757:: @ 81A0757
EverGrandeCity_SidneysRoom_EventScript_1A0757:: @ 81A0757
- setmaptile 6, 1, 836, 0
- setmaptile 6, 2, 837, 0
- setmaptile 5, 12, 518, 1
- setmaptile 6, 12, 518, 1
- setmaptile 7, 12, 518, 1
- setmaptile 5, 13, 526, 1
- setmaptile 6, 13, 526, 1
- setmaptile 7, 13, 526, 1
- setmaptile 0, 2, 734, 1
- setmaptile 1, 2, 733, 1
- setmaptile 2, 2, 734, 1
- setmaptile 3, 2, 733, 1
- setmaptile 4, 2, 734, 1
- setmaptile 8, 2, 733, 1
- setmaptile 9, 2, 734, 1
- setmaptile 10, 2, 733, 1
- setmaptile 11, 2, 734, 1
- setmaptile 12, 2, 733, 1
+ setmetatile 6, 1, 836, 0
+ setmetatile 6, 2, 837, 0
+ setmetatile 5, 12, 518, 1
+ setmetatile 6, 12, 518, 1
+ setmetatile 7, 12, 518, 1
+ setmetatile 5, 13, 526, 1
+ setmetatile 6, 13, 526, 1
+ setmetatile 7, 13, 526, 1
+ setmetatile 0, 2, 734, 1
+ setmetatile 1, 2, 733, 1
+ setmetatile 2, 2, 734, 1
+ setmetatile 3, 2, 733, 1
+ setmetatile 4, 2, 734, 1
+ setmetatile 8, 2, 733, 1
+ setmetatile 9, 2, 734, 1
+ setmetatile 10, 2, 733, 1
+ setmetatile 11, 2, 734, 1
+ setmetatile 12, 2, 733, 1
return
EverGrandeCity_DrakesRoom_EventScript_1A07FA:: @ 81A07FA
EverGrandeCity_GlaciasRoom_EventScript_1A07FA:: @ 81A07FA
EverGrandeCity_PhoebesRoom_EventScript_1A07FA:: @ 81A07FA
EverGrandeCity_SidneysRoom_EventScript_1A07FA:: @ 81A07FA
- setmaptile 5, 12, 518, 1
- setmaptile 6, 12, 518, 1
- setmaptile 7, 12, 518, 1
- setmaptile 5, 13, 526, 1
- setmaptile 6, 13, 526, 1
- setmaptile 7, 13, 526, 1
+ setmetatile 5, 12, 518, 1
+ setmetatile 6, 12, 518, 1
+ setmetatile 7, 12, 518, 1
+ setmetatile 5, 13, 526, 1
+ setmetatile 6, 13, 526, 1
+ setmetatile 7, 13, 526, 1
return
SlateportCity_Movement_1A0831:: @ 81A0831
@@ -3271,7 +3281,7 @@ gUnknown_081A14B8:: @ 81A14B8
EventScript_1A14CA::
message UnknownString_81A1141
waitmessage
- waitbutton
+ waitbuttonpress
special sub_8081924
waitstate
fadescreen 1
@@ -3620,9 +3630,9 @@ gUnknown_081A2C51:: @ 81A2C51
special sub_80BB63C
compare RESULT, 1
goto_if_eq EventScript_1A2E45
- checkpokemove MOVE_SECRET_POWER
- setfieldeffect 0, RESULT
- getmovename 1, MOVE_SECRET_POWER
+ checkpartymove MOVE_SECRET_POWER
+ setfieldeffectargument 0, RESULT
+ buffermovename 1, MOVE_SECRET_POWER
compare 0x8007, 1
goto_if_eq EventScript_1A2CB0
compare 0x8007, 2
@@ -3641,7 +3651,7 @@ EventScript_1A2CB0:
lockall
compare RESULT, 6
goto_if_eq EventScript_1A2CF1
- getpartypokename 0, RESULT
+ bufferpartymonnick 0, RESULT
msgbox UnknownString_8198F34, 5
compare RESULT, 0
goto_if_eq EventScript_1A2F3A
@@ -3672,7 +3682,7 @@ EventScript_1A2D08:
lockall
compare RESULT, 6
goto_if_eq EventScript_1A2D49
- getpartypokename 0, RESULT
+ bufferpartymonnick 0, RESULT
msgbox UnknownString_81A197B, 5
compare RESULT, 0
goto_if_eq EventScript_1A2F3A
@@ -3703,7 +3713,7 @@ EventScript_1A2D60:
lockall
compare RESULT, 6
goto_if_eq EventScript_1A2DA1
- getpartypokename 0, RESULT
+ bufferpartymonnick 0, RESULT
msgbox UnknownString_81A1A4B, 5
compare RESULT, 0
goto_if_eq EventScript_1A2F3A
@@ -3734,7 +3744,7 @@ EventScript_1A2DB8:
closemessage
playse 9
setvar 0x4097, 0
- setflag 173
+ setflag FLAG_DECORATION_1
special sub_80BB8CC
special sub_80BBAF0
setvar 0x8004, 0
@@ -3758,7 +3768,7 @@ SecretBase_RedCave1_EventScript_1A2DDE:: @ 81A2DDE
SecretBase_RedCave1_EventScript_1A2E08:: @ 81A2E08
closemessage
- setflag 96
+ setflag FLAG_RECEIVED_SECRET_POWER
special sub_80BBC78
waitstate
end
@@ -3775,24 +3785,24 @@ gUnknown_081A2E14:: @ 81A2E14
special sub_80BC114
compare RESULT, 0
goto_if_eq EventScript_1A2E38
- clearflag 173
+ clearflag FLAG_DECORATION_1
special sub_80BBAF0
setvar 0x4089, 0
waitstate
end
EventScript_1A2E38:
- setflag 173
+ setflag FLAG_DECORATION_1
special sub_80BBAF0
setvar 0x4089, 0
waitstate
end
EventScript_1A2E45:
- checkpokemove MOVE_SECRET_POWER
+ checkpartymove MOVE_SECRET_POWER
compare RESULT, 6
goto_if_eq EventScript_1A2EF7
- setfieldeffect 0, RESULT
+ setfieldeffectargument 0, RESULT
setorcopyvar 0x8004, RESULT
lockall
special GetSecretBaseNearbyMapName
@@ -3809,8 +3819,8 @@ EventScript_1A2E45:
msgbox UnknownString_81A3CC9, 5
compare RESULT, 0
goto_if_eq EventScript_1A2F3A
- getpartypokename 0, 0x8004
- getmovename 1, MOVE_SECRET_POWER
+ bufferpartymonnick 0, 0x8004
+ buffermovename 1, MOVE_SECRET_POWER
msgbox UsedCutRockSmashText, 4
closemessage
closemessage
@@ -3852,20 +3862,20 @@ EventScript_1A2F3A::
LittlerootTown_BrendansHouse_2F_EventScript_1A2F3D:: @ 81A2F3D
LittlerootTown_MaysHouse_2F_EventScript_1A2F3D:: @ 81A2F3D
SecretBase_RedCave1_EventScript_1A2F3D:: @ 81A2F3D
- setflag 174
- setflag 175
- setflag 176
- setflag 177
- setflag 178
- setflag 179
- setflag 180
- setflag 181
- setflag 182
- setflag 183
- setflag 184
- setflag 185
- setflag 186
- setflag 187
+ setflag FLAG_DECORATION_2
+ setflag FLAG_DECORATION_3
+ setflag FLAG_DECORATION_4
+ setflag FLAG_DECORATION_5
+ setflag FLAG_DECORATION_6
+ setflag FLAG_DECORATION_7
+ setflag FLAG_DECORATION_8
+ setflag FLAG_DECORATION_9
+ setflag FLAG_DECORATION_10
+ setflag FLAG_DECORATION_11
+ setflag FLAG_DECORATION_12
+ setflag FLAG_DECORATION_13
+ setflag FLAG_DECORATION_14
+ setflag FLAG_DECORATION_15
return
LittlerootTown_BrendansHouse_2F_EventScript_1A2F68:: @ 81A2F68
@@ -3954,7 +3964,7 @@ SecretBase_YellowCave4_EventScript_1A2FC0:: @ 81A2FC0
end
SecretBase_RedCave1_EventScript_1A3032:: @ 81A3032
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A3086
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A30A5
@@ -3989,7 +3999,7 @@ SecretBase_RedCave1_EventScript_1A30A5:: @ 81A30A5
end
SecretBase_RedCave1_EventScript_1A30AE:: @ 81A30AE
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A3102
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3121
@@ -4024,7 +4034,7 @@ SecretBase_RedCave1_EventScript_1A3121:: @ 81A3121
end
SecretBase_RedCave1_EventScript_1A312A:: @ 81A312A
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A317E
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A319D
@@ -4059,7 +4069,7 @@ SecretBase_RedCave1_EventScript_1A319D:: @ 81A319D
end
SecretBase_RedCave1_EventScript_1A31A6:: @ 81A31A6
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A31FA
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3219
@@ -4094,7 +4104,7 @@ SecretBase_RedCave1_EventScript_1A3219:: @ 81A3219
end
SecretBase_RedCave1_EventScript_1A3222:: @ 81A3222
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A3276
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3295
@@ -4129,7 +4139,7 @@ SecretBase_RedCave1_EventScript_1A3295:: @ 81A3295
end
SecretBase_RedCave1_EventScript_1A329E:: @ 81A329E
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A32F2
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3311
@@ -4164,7 +4174,7 @@ SecretBase_RedCave1_EventScript_1A3311:: @ 81A3311
end
SecretBase_RedCave1_EventScript_1A331A:: @ 81A331A
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A336E
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A338D
@@ -4199,7 +4209,7 @@ SecretBase_RedCave1_EventScript_1A338D:: @ 81A338D
end
SecretBase_RedCave1_EventScript_1A3396:: @ 81A3396
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A33EA
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3409
@@ -4234,7 +4244,7 @@ SecretBase_RedCave1_EventScript_1A3409:: @ 81A3409
end
SecretBase_RedCave1_EventScript_1A3412:: @ 81A3412
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A3466
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3485
@@ -4269,7 +4279,7 @@ SecretBase_RedCave1_EventScript_1A3485:: @ 81A3485
end
SecretBase_RedCave1_EventScript_1A348E:: @ 81A348E
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A34E2
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3501
@@ -4461,9 +4471,9 @@ SlateportCity_OceanicMuseum_1F_EventScript_1ADEE0:: @ 81ADEE0
compare RESULT, 1
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF96
copyvar 0x8009, 0x8006
- checkflag 105
+ checkflag FLAG_OCEANIC_MUSEUM_MET_REPORTER
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF25
- setflag 105
+ setflag FLAG_OCEANIC_MUSEUM_MET_REPORTER
msgbox SlateportCity_OceanicMuseum_1F_Text_1A927F, 5
compare RESULT, 1
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF44
@@ -4590,7 +4600,7 @@ SlateportCity_ContestLobby_EventScript_1AE0B6:: @ 81AE0B6
VerdanturfTown_ContestLobby_EventScript_1AE0B6:: @ 81AE0B6
lock
faceplayer
- checkflag 2
+ checkflag FLAG_TEMP_2
goto_if_eq FallarborTown_ContestLobby_EventScript_1AE17E
setvar 0x8005, 6
special sub_80BF2C4
@@ -4636,7 +4646,7 @@ FallarborTown_ContestLobby_EventScript_1AE137:: @ 81AE137
compare RESULT, 0
goto_if_eq FallarborTown_ContestLobby_EventScript_1AE12D
msgbox FallarborTown_ContestLobby_Text_1A7153, 4
- setflag 2
+ setflag FLAG_TEMP_2
setvar 0x8005, 6
goto FallarborTown_ContestLobby_EventScript_1ADE46
end
@@ -4666,19 +4676,19 @@ VerdanturfTown_ContestLobby_EventScript_1AE188:: @ 81AE188
end
FallarborTown_ContestLobby_EventScript_1AE1EE:: @ 81AE1EE
- clearflag 800
+ clearflag FLAG_HIDE_CONTEST_REPORTER_FALLARBOR
return
FallarborTown_ContestLobby_EventScript_1AE1F2:: @ 81AE1F2
- clearflag 801
+ clearflag FLAG_HIDE_CONTEST_REPORTER_VERDANTURF
return
FallarborTown_ContestLobby_EventScript_1AE1F6:: @ 81AE1F6
- clearflag 803
+ clearflag FLAG_HIDE_CONTEST_REPORTER_SLATEPORT
return
FallarborTown_ContestLobby_EventScript_1AE1FA:: @ 81AE1FA
- clearflag 802
+ clearflag FLAG_HIDE_CONTEST_REPORTER_LILYCOVE
return
FallarborTown_ContestLobby_EventScript_1AE1FE:: @ 81AE1FE
@@ -4687,7 +4697,7 @@ FallarborTown_ContestLobby_EventScript_1AE1FE:: @ 81AE1FE
BattleTower_Lobby_EventScript_1AE1FF:: @ 81AE1FF
lock
faceplayer
- checkflag 2
+ checkflag FLAG_TEMP_2
goto_if_eq BattleTower_Lobby_EventScript_1AE2E3
setvar 0x8005, 7
special sub_80BF2C4
@@ -4739,7 +4749,7 @@ BattleTower_Lobby_EventScript_1AE2B3:: @ 81AE2B3
compare RESULT, 0
goto_if_eq BattleTower_Lobby_EventScript_1AE2D9
msgbox BattleTower_Lobby_Text_1A7A6E, 4
- setflag 2
+ setflag FLAG_TEMP_2
copyvar 0x8004, 0x8008
setvar 0x8005, 7
goto BattleTower_Lobby_EventScript_1ADE46
@@ -4762,11 +4772,11 @@ BattleTower_Lobby_EventScript_1AE2ED:: @ 81AE2ED
special sub_80BF2C4
compare RESULT, 1
goto_if_eq BattleTower_Lobby_EventScript_1AE30F
- clearflag 918
+ clearflag FLAG_HIDE_REPORTER_BATTLE_TOWER
return
BattleTower_Lobby_EventScript_1AE30F:: @ 81AE30F
- setflag 918
+ setflag FLAG_HIDE_REPORTER_BATTLE_TOWER
return
.include "data/scripts/gabby_and_ty.inc"
@@ -4795,8 +4805,8 @@ BattleTower_Lobby_EventScript_1AE30F:: @ 81AE30F
.include "data/text/magma_summit.inc"
gUnknown_081B694A:: @ 81B694A
- animdarklevel 1
- setdarklevel 1
+ animateflash 1
+ setflashradius 1
end
.include "data/scripts/players_house.inc"
@@ -4907,7 +4917,7 @@ S_FallDownHole:: @ 81C6BC5
waitmovement 0
playse 43
delay 60
- warphole UNDEFINED
+ warphole MAP_UNDEFINED
waitstate
end
@@ -4950,7 +4960,7 @@ gUnknown_081C6C02:: @ 81C6C02
@ 81C6C1D
lockall
braillemessage Underwater_SealedChamber_Braille_1C533D
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
diff --git a/data-de/field_move_scripts.inc b/data-de/field_move_scripts.inc
index 497408299..2b86dc4dc 100644
--- a/data-de/field_move_scripts.inc
+++ b/data-de/field_move_scripts.inc
@@ -1,13 +1,13 @@
S_CuttableTree:: @ 81B0DCC
lockall
- checkflag 2055
+ checkflag FLAG_BADGE01_GET
goto_if 0, CannotUseCut
- checkpokemove MOVE_CUT
+ checkpartymove MOVE_CUT
compare RESULT, 6
goto_if_eq CannotUseCut
- setfieldeffect 0, RESULT
- getpartypokename 0, RESULT
- getmovename 1, MOVE_CUT
+ setfieldeffectargument 0, RESULT
+ bufferpartymonnick 0, RESULT
+ buffermovename 1, MOVE_CUT
msgbox UseCutPromptText, 5
compare RESULT, 0
goto_if_eq Cut_ChoseNo
@@ -61,14 +61,14 @@ CannotUseCutText: @ 81B0E8E
S_BreakableRock:: @ 81B0EB7
lockall
- checkflag 2057
+ checkflag FLAG_BADGE03_GET
goto_if 0, CannotUseRockSmash
- checkpokemove MOVE_ROCK_SMASH
+ checkpartymove MOVE_ROCK_SMASH
compare RESULT, 6
goto_if_eq CannotUseRockSmash
- setfieldeffect 0, RESULT
- getpartypokename 0, RESULT
- getmovename 1, MOVE_ROCK_SMASH
+ setfieldeffectargument 0, RESULT
+ bufferpartymonnick 0, RESULT
+ buffermovename 1, MOVE_ROCK_SMASH
msgbox UseRockSmashPromptText, 5
compare RESULT, 0
goto_if_eq RockSmash_ChoseNo
@@ -128,14 +128,14 @@ CannotUseRockSmashText: @ 81B0F90
S_PushableBoulder:: @ 81B0FCB
lockall
- checkflag 2058
+ checkflag FLAG_BADGE04_GET
goto_if 0, CannotUseStrength
- checkflag 2089
+ checkflag FLAG_SYS_USE_STRENGTH
goto_if_eq AlreadyUsedStrength
- checkpokemove 70
+ checkpartymove 70
compare RESULT, 6
goto_if_eq CannotUseStrength
- setfieldeffect 0, RESULT
+ setfieldeffectargument 0, RESULT
msgbox UseStrengthPromptText, 5
compare RESULT, 0
goto_if_eq Strength_ChoseNo
@@ -153,7 +153,7 @@ S_UseStrength:: @ 81B100E
end
UsedStrength: @ 81B1019
- setflag 2089
+ setflag FLAG_SYS_USE_STRENGTH
msgbox UsedStrengthText, 3
releaseall
end
@@ -193,11 +193,11 @@ AlreadyUsedStrengthText: @ 81B1127
S_UseWaterfall:: @ 81B115A
lockall
- checkpokemove MOVE_WATERFALL
+ checkpartymove MOVE_WATERFALL
compare RESULT, 6
goto_if_eq Waterfall_NoMonKnows
- getpartypokename 0, RESULT
- setfieldeffect 0, RESULT
+ bufferpartymonnick 0, RESULT
+ setfieldeffectargument 0, RESULT
msgbox UseWaterfallPromptText, 5
compare RESULT, 0
goto_if_eq Waterfall_Done
@@ -226,12 +226,12 @@ UsedWaterfallText: @ 81B120D
UseDiveScript:: @ 81B1220
lockall
- checkpokemove MOVE_DIVE
+ checkpartymove MOVE_DIVE
compare RESULT, 6
goto_if_eq CannotUseDive
- getpartypokename 0, RESULT
- setfieldeffect 0, RESULT
- setfieldeffect 1, 1
+ bufferpartymonnick 0, RESULT
+ setfieldeffectargument 0, RESULT
+ setfieldeffectargument 1, 1
msgbox UseDivePromptText, 5
compare RESULT, 0
goto_if_eq Dive_Done
@@ -249,12 +249,12 @@ Dive_Done: @ 81B1267
S_UseDiveUnderwater:: @ 81B1269
lockall
- checkpokemove MOVE_DIVE
+ checkpartymove MOVE_DIVE
compare RESULT, 6
goto_if_eq UnderwaterCannotUseDive
- getpartypokename 0, RESULT
- setfieldeffect 0, RESULT
- setfieldeffect 1, 1
+ bufferpartymonnick 0, RESULT
+ setfieldeffectargument 0, RESULT
+ setfieldeffectargument 1, 1
msgbox UnderwaterUseDivePromptText, 5
compare RESULT, 0
goto_if_eq UnderwaterDive_Done
diff --git a/data-de/text/battle_strings.inc b/data-de/text/battle_strings.inc
deleted file mode 100644
index 0df0e87b4..000000000
--- a/data-de/text/battle_strings.inc
+++ /dev/null
@@ -1,2315 +0,0 @@
-BattleText_UnknownString:
- .string "{STRING 33}$"
-BattleText_GainExpPoints:
- .string "{STRING 0} erhält{PLAYER}\n"
- .string "{STRING 42} E-Punkte!\p"
- .string "$"
-BattleText_Terminator:
- .string "$"
-BattleText_BoostedExp:
- .string " spezielle$"
-BattleText_GrewLevel:
- .string "{STRING 0} erreicht\n"
- .string "Lv. {PLAYER}!{UNKNOWN_A}\p"
- .string "$"
-BattleText_LearnedMove:
- .string "{STRING 0} erlernt\n"
- .string "{PLAYER}!{UNKNOWN_A}\p"
- .string "$"
-BattleText_TryingToLearnMove:
- .string "{STRING 0} versucht,\n"
- .string "{PLAYER} zu lernen.\p"
- .string "$"
-BattleText_CantLearnMore:
- .string "Aber {STRING 0} kann nicht\n"
- .string "mehr als vier Attacken erlernen.\p"
- .string "$"
-BattleText_DeleteMove:
- .string "Soll eine Attacke zu Gunsten von\n"
- .string "{PLAYER} vergessen werden?$"
-BattleText_DeletedMove:
- .string "{STRING 0} hat\n"
- .string "{PLAYER} vergessen!\p"
- .string "$"
-BattleText_StopLearning:
- .string "{PAUSE 32}{PLAYER}\n"
- .string "nicht erlernen?$"
-BattleText_DidNotLearn:
- .string "{STRING 0} hat {PLAYER}\n"
- .string "nicht erlernt.\p"
- .string "$"
-BattleText_UseNext:
- .string "Nächstes POKéMON einsetzen?$"
-BattleText_AttackMissed:
- .string "Attacke von {EVIL_LEGENDARY}\n"
- .string "ging daneben!$"
-BattleText_ProtectedItself:
- .string "{GOOD_LEGENDARY}\n"
- .string "schützt sich selbst!$"
-BattleText_AvoidedDamage:
- .string "{GOOD_LEGENDARY} vermeidet\n"
- .string "Schaden mit {STRING 22}!$"
-BattleText_GroundMoveNegate:
- .string "{GOOD_LEGENDARY} wehrt BODEN-\n"
- .string "Attacken mit {STRING 22} ab!$"
-BattleText_AvoidedAttack:
- .string "{GOOD_LEGENDARY} wehrt die\n"
- .string "Attacke ab!$"
-BattleText_DoesntAffect:
- .string "Es hat keine Wirkung auf\n"
- .string "{GOOD_LEGENDARY}...$"
-BattleText_AttackingFainted:
- .string "{EVIL_LEGENDARY}\n"
- .string "wurde besiegt!\p"
- .string "$"
-BattleText_DefendingFainted:
- .string "{GOOD_LEGENDARY}\n"
- .string "wurde besiegt!\p"
- .string "$"
-BattleText_WinningPrize:
- .string "{STRING 32} gewinnt ¥{STRING 0}!\p"
- .string "$"
-BattleText_OutOfUsablePoke:
- .string "{STRING 32} hat kein\n"
- .string "kampffähiges POKéMON mehr!\p"
- .string "$"
-BattleText_WhitedOut:
- .string "{STRING 32} fällt in Ohnmacht!{PAUSE_UNTIL_PRESS}$"
-BattleText_PreventEscape:
- .string "{STRING 16} verhindert\n"
- .string "eine Flucht mit {STRING 23}!\p"
- .string "$"
-BattleText_CantEscape:
- .string "Flucht unmöglich!\p"
- .string "$"
-BattleText_AttackingCantEscape:
- .string "{EVIL_LEGENDARY}\n"
- .string "kann nicht fliehen!$"
-BattleText_HitMulti:
- .string "{STRING 0}-mal getroffen!$"
-BattleText_FellAsleep:
- .string "{STRING 14}\n"
- .string "ist eingeschlafen!$"
-BattleText_MadeAsleep:
- .string "{STRING 23} von\n"
- .string "{STRING 16} lässt\l"
- .string "{STRING 14} einschlafen!$"
-BattleText_DefendingAsleep:
- .string "{GOOD_LEGENDARY} schläft\n"
- .string "bereits!$"
-BattleText_AttackingAsleep:
- .string "{EVIL_LEGENDARY} schläft\n"
- .string "bereits!$"
-BattleText_WasntAffected:
- .string "{GOOD_LEGENDARY}\n"
- .string "ist unversehrt!$"
-BattleText_Poisoned:
- .string "{STRING 14}\n"
- .string "wurde vergiftet!$"
-BattleText_Poisoned2:
- .string "{STRING 23} von\n"
- .string "{STRING 16} vergiftete\l"
- .string "{STRING 14}!$"
-BattleText_PoisonHurt:
- .string "{EVIL_LEGENDARY} wurde durch\n"
- .string "Gift verletzt!$"
-BattleText_AlreadyPoisoned:
- .string "{GOOD_LEGENDARY} ist bereits\n"
- .string "vergiftet.$"
-BattleText_BadlyPoisoned:
- .string "{STRING 14} wurde schwer\n"
- .string "vergiftet!$"
-BattleText_EnergyDrained:
- .string "{GOOD_LEGENDARY} wurde\n"
- .string "Energie abgesaugt!$"
-BattleText_Burned:
- .string "{STRING 14} brennt!$"
-BattleText_Burned2:
- .string "{STRING 23} von\n"
- .string "{STRING 16} verbrennt\l"
- .string "{STRING 14}!$"
-BattleText_BurnHurt:
- .string "Die Verbrennung schadet\n"
- .string "{EVIL_LEGENDARY}!$"
-BattleText_AlreadyBurned:
- .string "{GOOD_LEGENDARY} brennt\n"
- .string "bereits.$"
-BattleText_Frozen:
- .string "{STRING 14} erstarrt\n"
- .string "zu Eis!$"
-BattleText_Frozen2:
- .string "{STRING 14} wurde durch\n"
- .string "{STRING 23} von\l"
- .string "{STRING 16} eingefroren!$"
-BattleText_FrozenSolid:
- .string "{EVIL_LEGENDARY} ist\n"
- .string "eingefroren!$"
-BattleText_DefendingDefrosted:
- .string "{GOOD_LEGENDARY} wurde\n"
- .string "aufgetaut!$"
-BattleText_AttackingDefrosted:
- .string "{EVIL_LEGENDARY} wurde\n"
- .string "aufgetaut!$"
-BattleText_Defrosted:
- .string "{EVIL_LEGENDARY} wurde\n"
- .string "durch {STRING 17} aufgetaut!$"
-BattleText_Paralyzed:
- .string "{STRING 14} ist\n"
- .string "paralysiert! Es greift\l"
- .string "eventuell nicht an!$"
-BattleText_Paralyzed2:
- .string "{STRING 23} von\n"
- .string "{STRING 16} paralysierte\p"
- .string "{STRING 14}!\n"
- .string "Es greift eventuell nicht an!$"
-BattleText_Paralyzed3:
- .string "{EVIL_LEGENDARY} ist\n"
- .string "paralysiert! Es kann\l"
- .string "nicht angreifen!$"
-BattleText_AlreadyParalyzed:
- .string "{GOOD_LEGENDARY} ist\n"
- .string "bereits paralysiert!$"
-BattleText_ParalysisHealed:
- .string "{GOOD_LEGENDARY} wurde von der\n"
- .string "Paralyse geheilt!$"
-BattleText_DreamEaten:
- .string "Der Traum von {GOOD_LEGENDARY}\n"
- .string "wurde gefressen!$"
-BattleText_AttackingStatNoHigher:
- .string "{STRING 0} von\n"
- .string "{EVIL_LEGENDARY} kann nicht\l"
- .string "mehr erhöht werden!$"
-BattleText_DefendingStatNoHigher:
- .string "{STRING 0} von\n"
- .string "{GOOD_LEGENDARY} kann nicht\l"
- .string "weiter gesenkt werden!$"
-BattleText_StoppedWorking:
- .string "{STRING 0} in deinem Team\n"
- .string "funktioniert nicht mehr!$"
-BattleText_StoppedWorking2:
- .string "{STRING 0} des Gegners\n"
- .string "funktioniert nicht mehr!$"
-BattleText_Confused:
- .string "{EVIL_LEGENDARY} ist\n"
- .string "verwirrt!$"
-BattleText_ConfusionSnapOut:
- .string "{EVIL_LEGENDARY} ist nicht\n"
- .string "mehr verwirrt!$"
-BattleText_BecameConfused:
- .string "{STRING 14} wurde\n"
- .string "verwirrt!$"
-BattleText_AlreadyConfused:
- .string "{GOOD_LEGENDARY} ist\n"
- .string "bereits verwirrt!$"
-BattleText_FellLove:
- .string "{GOOD_LEGENDARY}\n"
- .string "hat sich verliebt!$"
-BattleText_InLoveWith:
- .string "{EVIL_LEGENDARY} hat sich in\n"
- .string "{STRING 16} verliebt!$"
-BattleText_ImmobilizedBy:
- .string "{EVIL_LEGENDARY} ist starr\n"
- .string "vor Liebe!$"
-BattleText_BlownAway:
- .string "{GOOD_LEGENDARY} wurde\n"
- .string "weggeweht!$"
-BattleText_TypeTransform:
- .string "{EVIL_LEGENDARY} verwandelt\n"
- .string "sich zu Typ {STRING 0}!$"
-BattleText_Flinched:
- .string "{EVIL_LEGENDARY} schreckt\n"
- .string "zurück!$"
-BattleText_RegainedHealth:
- .string "{GOOD_LEGENDARY} erholt sich!$"
-BattleText_HPFull:
- .string "{GOOD_LEGENDARY} hat alle KP!$"
-BattleText_RaisedSpDef:
- .string "{STRING 17} von\n"
- .string "{STRING 38} erhöht\l"
- .string "die SP. VER.$"
-BattleText_RaisedSpDefLittle:
- .string "Die SP. VER. wird etwas durch\n"
- .string "{STRING 17} von\l"
- .string "{STRING 38} erhöht.$"
-BattleText_RaisedDefense:
- .string "{STRING 17} von\n"
- .string "{STRING 38}\l"
- .string "erhöht die VERTEIDIGUNG!$"
-BattleText_RaisedDefenseLittle:
- .string "{STRING 17} von\n"
- .string "{STRING 38}\l"
- .string "erhöht etwas die VERTEIDIGUNG!$"
-BattleText_CoveredVeil:
- .string "{STRING 38} wird von\n"
- .string "einem Schleier umhüllt!$"
-BattleText_SafeguardActive:
- .string "{GOOD_LEGENDARY} wird durch\n"
- .string "BODYGUARD geschützt!$"
-BattleText_SafeguardFaded:
- .string "BODYGUARD von\n"
- .string "{STRING 40} lässt nach!$"
-BattleText_WentToSleep:
- .string "{EVIL_LEGENDARY} ist\n"
- .string "eingeschlafen!$"
-BattleText_SpeltHealthy:
- .string "{EVIL_LEGENDARY} schläft und\n"
- .string "erholt sich!$"
-BattleText_WhipWhirlwind:
- .string "{EVIL_LEGENDARY} entfacht\n"
- .string "einen Wirbelwind!$"
-BattleText_TookSunlight:
- .string "{EVIL_LEGENDARY} absorbiert\n"
- .string "Sonnenlicht!$"
-BattleText_LoweredHead:
- .string "{EVIL_LEGENDARY} zieht seinen\n"
- .string "Kopf ein!$"
-BattleText_IsGlowing:
- .string "{EVIL_LEGENDARY} leuchtet!$"
-BattleText_FlewHigh:
- .string "{EVIL_LEGENDARY} fliegt\n"
- .string "hoch empor!$"
-BattleText_DugHole:
- .string "{EVIL_LEGENDARY} gräbt sich\n"
- .string "ein!$"
-BattleText_HidUnderwater:
- .string "{EVIL_LEGENDARY} taucht\n"
- .string "unter!$"
-BattleText_SprangUp:
- .string "{EVIL_LEGENDARY} springt auf!$"
-BattleText_SqueezedBind:
- .string "{EVIL_LEGENDARY} setzt bei\n"
- .string "{GOOD_LEGENDARY}\l"
- .string "KLAMMERGRIFF ein!$"
-BattleText_TrappedVortex:
- .string "{GOOD_LEGENDARY} wurde in\n"
- .string "einem Strudel gefangen!$"
-BattleText_SandTombTrapped:
- .string "{GOOD_LEGENDARY} wurde durch\n"
- .string "SANDGRAB gefangen!$"
-BattleText_Wrapped:
- .string "{GOOD_LEGENDARY} wurde von\n"
- .string "{EVIL_LEGENDARY} umWICKELt!$"
-BattleText_Clamped:
- .string "{GOOD_LEGENDARY} wurde von\n"
- .string "{EVIL_LEGENDARY} geSCHNAPPT!$"
-BattleText_HurtBy:
- .string "{EVIL_LEGENDARY} wurde durch\n"
- .string "{STRING 0} verletzt!$"
-BattleText_FreedFrom:
- .string "{EVIL_LEGENDARY} wurde von\n"
- .string "{STRING 0} befreit!$"
-BattleText_KeptGoingCrash:
- .string "{EVIL_LEGENDARY} macht weiter\n"
- .string "und bricht zusammen!$"
-
-gUnknown_083FEE5D:: @ 83FEE5D
-BattleText_MistShroud:
- .string "{STRING 38} wird in\n"
- .string "WEISSNEBEL gehüllt!$"
-BattleText_MistProtect:
- .string "{STRING 16} wird durch\n"
- .string "WEISSNEBEL geschützt!$"
-
-gUnknown_083FEE92:: @ 83FEE92
-BattleText_GetPumped:
- .string "{EVIL_LEGENDARY} pumpt\n"
- .string "sich auf!$"
-BattleText_HitRecoil:
- .string "{EVIL_LEGENDARY} wurde vom\n"
- .string "Rückstoß getroffen!$"
-BattleText_ProtectedItself2:
- .string "{EVIL_LEGENDARY} schützt\n"
- .string "sich selbst!$"
-BattleText_SandBuffeted:
- .string "{EVIL_LEGENDARY} wird vom\n"
- .string "Sandsturm getroffen!$"
-BattleText_HailStricken:
- .string "{EVIL_LEGENDARY} wird vom\n"
- .string "HAGELSTURM getroffen!$"
-BattleText_WoreOff:
- .string "{STRING 0} von\n"
- .string "{STRING 36} lässt nach!$"
-BattleText_WasSeeded:
- .string "{GOOD_LEGENDARY} wurde\n"
- .string "bepflanzt!$"
-BattleText_EvadedAttack:
- .string "{GOOD_LEGENDARY} ist\n"
- .string "ausgewichen!$"
-BattleText_HealthSapped:
- .string "EGELSAMEN schadet\n"
- .string "{EVIL_LEGENDARY}!$"
-BattleText_FastAsleep:
- .string "{EVIL_LEGENDARY} schläft tief\n"
- .string "und fest.$"
-BattleText_WokeUp:
- .string "{EVIL_LEGENDARY} ist\n"
- .string "aufgewacht!$"
-BattleText_UproarAwake:
- .string "AUFRUHR von {STRING 16}\n"
- .string "hält es wach!$"
-BattleText_UproarWoke:
- .string "{EVIL_LEGENDARY} wird durch\n"
- .string "AUFRUHR wach!$"
-BattleText_UproarCaused:
- .string "{EVIL_LEGENDARY} verursacht\n"
- .string "AUFRUHR!$"
-BattleText_UproarMaking:
- .string "{EVIL_LEGENDARY} macht\n"
- .string "einen AUFRUHR!$"
-BattleText_CalmedDown:
- .string "{EVIL_LEGENDARY}\n"
- .string "beruhigt sich.$"
-BattleText_UproarCantSleep:
- .string "{GOOD_LEGENDARY} kann bei dem\n"
- .string "AUFRUHR nicht schlafen!$"
-BattleText_Stockpiled:
- .string "{EVIL_LEGENDARY} HORTET\n"
- .string "{STRING 0}!$"
-BattleText_StockpiledCant:
- .string "{EVIL_LEGENDARY} kann nicht\n"
- .string "weiter HORTEN!$"
-BattleText_UproarCantSleep2:
- .string "{GOOD_LEGENDARY} kann bei dem\n"
- .string "AUFRUHR nicht schlafen!$"
-BattleText_UproarKeptAwake:
- .string "Aber der AUFRUHR hält\n"
- .string "{GOOD_LEGENDARY} wach!$"
-BattleText_StayedAwake:
- .string "{GOOD_LEGENDARY} hält sich mit\n"
- .string "{STRING 22} wach!$"
-BattleText_StoringEnergy:
- .string "{EVIL_LEGENDARY} speichert\n"
- .string "Energie!$"
-BattleText_UnleashedEnergy:
- .string "{EVIL_LEGENDARY} erzeugt\n"
- .string "Energie!$"
-BattleText_FatigueConfuse:
- .string "{EVIL_LEGENDARY} ist vor\n"
- .string "Erschöpfung verwirrt!$"
-BattleText_PickedUpYen:
- .string "{STRING 32} hebt\n"
- .string "¥{STRING 0} auf!\p"
- .string "$"
-BattleText_Unaffected:
- .string "{GOOD_LEGENDARY} ist\n"
- .string "unversehrt!$"
-BattleText_Transformed:
- .string "{EVIL_LEGENDARY} verwandelt\n"
- .string "sich in {STRING 0}!$"
-BattleText_SubMade:
- .string "{EVIL_LEGENDARY} setzt einen\n"
- .string "DELEGATOR ein!$"
-BattleText_SubAlready:
- .string "{EVIL_LEGENDARY} hat bereits\n"
- .string "einen DELEGATOR!$"
-BattleText_SubTookDamage:
- .string "Der DELEGATOR steckt den\n"
- .string "Schlag für {GOOD_LEGENDARY}\l"
- .string "ein!\p"
- .string "$"
-BattleText_SubFaded:
- .string "DELEGATOR von\n"
- .string "{GOOD_LEGENDARY} lässt nach!\p"
- .string "$"
-BattleText_MustRecharge:
- .string "{EVIL_LEGENDARY} muss sich\n"
- .string "wieder aufladen!$"
-BattleText_RageBuilding:
- .string "{GOOD_LEGENDARY} verfällt in\n"
- .string "RASEREI!$"
-BattleText_MoveWasDisabled:
- .string "{STRING 0} von\n"
- .string "{GOOD_LEGENDARY}\l"
- .string "wurde blockiert!$"
-BattleText_DisabledNoMore:
- .string "{EVIL_LEGENDARY} ist nicht\n"
- .string "mehr blockiert!$"
-BattleText_EncoreGot:
- .string "{GOOD_LEGENDARY} gibt\n"
- .string "eine ZUGABE!$"
-BattleText_EncoreEnded:
- .string "ZUGABE von {EVIL_LEGENDARY}\n"
- .string "ist beendet!$"
-BattleText_TookAim:
- .string "{EVIL_LEGENDARY} zielt\n"
- .string "auf {GOOD_LEGENDARY}!$"
-BattleText_SketchedMove:
- .string "{EVIL_LEGENDARY} setzt\n"
- .string "NACHAHMER bei {STRING 0} ein!$"
-BattleText_DestinyBondTake:
- .string "{EVIL_LEGENDARY} versucht den\n"
- .string "Gegner mit sich zu nehmen!$"
-BattleText_DestinyBondTaken:
- .string "{GOOD_LEGENDARY} nimmt\n"
- .string "{EVIL_LEGENDARY} mit sich!$"
-BattleText_ReducedBy:
- .string "{STRING 0} von\n"
- .string "{GOOD_LEGENDARY} wird um\l"
- .string "{PLAYER} reduziert!$"
-BattleText_StoleSomething:
- .string "{EVIL_LEGENDARY} stiehlt\n"
- .string "{STRING 19} von\l"
- .string "{GOOD_LEGENDARY}!$"
-BattleText_CantEscapeNow:
- .string "{GOOD_LEGENDARY} kann\n"
- .string "nicht fliehen!$"
-BattleText_NightmareStart:
- .string "{GOOD_LEGENDARY} bekommt\n"
- .string "NACHTMAHR!$"
-BattleText_NightmareLock:
- .string "{EVIL_LEGENDARY} ist in\n"
- .string "NACHTMAHR gefangen!$"
-BattleText_CurseLay:
- .string "{EVIL_LEGENDARY} nimmt einen\n"
- .string "Teil seiner KP und legt einen\l"
- .string "FLUCH auf {GOOD_LEGENDARY}!$"
-BattleText_CurseAfflict:
- .string "{EVIL_LEGENDARY} wurde durch\n"
- .string "FLUCH verletzt!$"
-BattleText_SpikesScattered:
- .string "POKéMON-Team von {STRING 37}\n"
- .string "verteilt STACHELN um sich!$"
-BattleText_SpikesHurt:
- .string "{STRING 16} wurde durch\n"
- .string "STACHLER verletzt!$"
-BattleText_IdentifiedPoke:
- .string "{EVIL_LEGENDARY} erkennt\n"
- .string "{GOOD_LEGENDARY}!$"
-BattleText_PerishSongFell:
- .string "ABGESANG von {EVIL_LEGENDARY}\n"
- .string "steht bei {STRING 0}!$"
-BattleText_BracedItself:
- .string "{EVIL_LEGENDARY} macht sich\n"
- .string "bereit!$"
-BattleText_EnduredHit:
- .string "{GOOD_LEGENDARY} setzt\n"
- .string "AUSDAUER ein!$"
-BattleText_MagnitudeCount:
- .string "INTENSITÄT {STRING 0}!$"
-BattleText_CutHPMaxATK:
- .string "{EVIL_LEGENDARY} nutzt seine\n"
- .string "KP und hebt den ANGR-Wert!$"
-BattleText_CopyStatChanges:
- .string "{EVIL_LEGENDARY} kopiert die\n"
- .string "Statusveränderungen\l"
- .string "von {GOOD_LEGENDARY}!$"
-BattleText_GotFreeFrom:
- .string "{EVIL_LEGENDARY} befreit\n"
- .string "sich von {STRING 0}\l"
- .string "von {GOOD_LEGENDARY}!$"
-BattleText_LeechShed:
- .string "{EVIL_LEGENDARY} befreit sich\n"
- .string "von EGELSAMEN!$"
-BattleText_SpikesBlownAway:
- .string "{EVIL_LEGENDARY} blies den\n"
- .string "STACHLER weg!$"
-BattleText_FledBattle:
- .string "{EVIL_LEGENDARY} ist\n"
- .string "geflüchtet!$"
-BattleText_ForesawAttack:
- .string "{EVIL_LEGENDARY} sah eine\n"
- .string "Attacke voraus!$"
-BattleText_TookAttack:
- .string "{GOOD_LEGENDARY} wurde von\n"
- .string "der Attacke {STRING 0} getroffen!$"
-BattleText_ChoseDestiny:
- .string "{EVIL_LEGENDARY} wählte\n"
- .string "{STRING 17} als Vorhersehung aus!$"
-BattleText_PokeAttack:
- .string "Angriff von {STRING 0}!$"
-BattleText_CenterAttention:
- .string "{EVIL_LEGENDARY} zieht alle\n"
- .string "Aufmerksamkeit auf sich!$"
-BattleText_ChargingPower:
- .string "{EVIL_LEGENDARY} lädt\n"
- .string "sich auf!$"
-BattleText_NaturePower:
- .string "NATUR-KRAFT wurde zu\n"
- .string "{STRING 17}!$"
-BattleText_StatusNormal:
- .string "Status von {EVIL_LEGENDARY}\n"
- .string "wird normal!$"
-BattleText_TormentSubject:
- .string "{GOOD_LEGENDARY} wird von\n"
- .string "FOLTERKNECHT unterworfen!$"
-BattleText_TightenFocus:
- .string "{EVIL_LEGENDARY} verstärkt\n"
- .string "seinen Fokus!$"
-BattleText_TauntFell:
- .string "{GOOD_LEGENDARY} fällt auf\n"
- .string "VERHÖHNER herein!$"
-BattleText_ReadyToHelp:
- .string "{EVIL_LEGENDARY} will\n"
- .string "{GOOD_LEGENDARY} helfen!$"
-BattleText_SwitchedItems:
- .string "{EVIL_LEGENDARY} tauscht\n"
- .string "Items mit anderem PKMN!$"
-BattleText_Obtained1:
- .string "{EVIL_LEGENDARY} erhält\n"
- .string "{STRING 0}.$"
-BattleText_Obtained2:
- .string "{GOOD_LEGENDARY} erhält\n"
- .string "{PLAYER}.$"
-BattleText_Obtained3:
- .string "{EVIL_LEGENDARY} erhält\n"
- .string "{STRING 0}.\p"
- .string "{GOOD_LEGENDARY} erhält\n"
- .string "{PLAYER}.$"
-BattleText_CopiedObject:
- .string "{EVIL_LEGENDARY}\n"
- .string "kopiert {STRING 22} von\l"
- .string "{GOOD_LEGENDARY}!$"
-BattleText_WishMade:
- .string "{EVIL_LEGENDARY} spricht einen\n"
- .string "WUNSCHTRAUM aus!$"
-BattleText_WishTrue:
- .string "WUNSCHTRAUM von\n"
- .string "{STRING 0} erfüllt sich!$"
-BattleText_PlantedRoots:
- .string "{EVIL_LEGENDARY} pflanzt seine\n"
- .string "Wurzeln!$"
-BattleText_AbsorbNutrients:
- .string "{EVIL_LEGENDARY} nimmt über\n"
- .string "seine Wurzeln Nährstoffe auf!$"
-BattleText_AnchoredItself:
- .string "{GOOD_LEGENDARY}\n"
- .string "verankert sich mit seinen Wurzeln!$"
-BattleText_DrowsyMade:
- .string "{EVIL_LEGENDARY} macht\n"
- .string "{GOOD_LEGENDARY} schläfrig!$"
-BattleText_KnockedOffItem:
- .string "{EVIL_LEGENDARY}\n"
- .string "entreißt {STRING 19} von\l"
- .string "{GOOD_LEGENDARY}!$"
-BattleText_AbilitySwap:
- .string "{EVIL_LEGENDARY} tauscht die\n"
- .string "Fähigkeiten mit einem PKMN!$"
-BattleText_SealedMove:
- .string "{EVIL_LEGENDARY} versiegelt\n"
- .string "die Attacke/n des Gegners!$"
-BattleText_GrudgeBear:
- .string "{EVIL_LEGENDARY} möchte, dass\n"
- .string "der Gegner ein NACHSPIEL erträgt!$"
-BattleText_GrudgeLosePP:
- .string "{STRING 0} von\n"
- .string "{EVIL_LEGENDARY} hat aufgrund\l"
- .string "von NACHSPIEL alle AP verloren!$"
-BattleText_ShroudedItself:
- .string "{EVIL_LEGENDARY} verhüllt sich\n"
- .string "selbst in {STRING 17}!$"
-BattleText_MagicCoatBounce:
- .string "{STRING 17} von\n"
- .string "{EVIL_LEGENDARY} prallte am\l"
- .string "MAGIEMANTEL ab!$"
-BattleText_AwaitMove:
- .string "{EVIL_LEGENDARY} wartet auf\n"
- .string "eine gegnerische Attacke!$"
-BattleText_SnatchedMove:
- .string "{GOOD_LEGENDARY} ÜBERNAHM\n"
- .string "Attacke von {STRING 16}!$"
-BattleText_ElecWeakened:
- .string "Die Stärke der Elektrizität\n"
- .string "wurde geschwächt!$"
-BattleText_FireWeakened:
- .string "Die Stärke des Feuers\n"
- .string "wurde geschwächt!$"
-BattleText_FoundOne:
- .string "{EVIL_LEGENDARY} hat 1\n"
- .string "{STRING 19} gefunden!$"
-BattleText_SoothingAroma:
- .string "Ein wohltuendes Aroma\n"
- .string "breitet sich aus!$"
-BattleText_CantUseItems:
- .string "Hier können Items nicht eingesetzt\n"
- .string "werden.{PAUSE 64}$"
-BattleText_UnknownString2:
- .string "Für {STRING 16} war\n"
- .string "{STRING 19} {STRING 0}$"
-BattleText_HustleUse:
- .string "{STRING 16} setzt\n"
- .string "{STRING 19} ein, um zu drängeln!$"
-BattleText_LostFocus:
- .string "{EVIL_LEGENDARY} hat seinen\n"
- .string "Fokus verloren und kann\l"
- .string "nicht angreifen!$"
-BattleText_DraggedOut:
- .string "{GOOD_LEGENDARY} wurde\n"
- .string "auserwählt!\p"
- .string "$"
-BattleText_BrokeWall:
- .string "Die Mauer brach zusammen!$"
-BattleText_NoEffect:
- .string "Es ist wirkungslos!$"
-BattleText_NoMovesLeft:
- .string "{STRING 15} hat keine\n"
- .string "Attacken mehr übrig!\p"
- .string "$"
-BattleText_MoveIsDisabled:
- .string "{STRING 17} von\n"
- .string "{STRING 15} ist blockiert!\p"
- .string "$"
-BattleText_TormentNoUse:
- .string "{STRING 15} kann\n"
- .string "aufgrund von FOLTERKNECHT\p"
- .string "die Attacke nicht 2-mal\n"
- .string "hintereinander einsetzen!$"
-BattleText_TauntNoUse:
- .string "{STRING 15} kann\n"
- .string "{STRING 17} nach VERHÖHNER\l"
- .string "nicht einsetzen!\p"
- .string "$"
-BattleText_SealedNoUse:
- .string "{STRING 15} kann die ver-\n"
- .string "siegelte Attacke {STRING 17}\l"
- .string "nicht einsetzen!\p"
- .string "$"
-BattleText_RainMade:
- .string "{STRING 23} von\n"
- .string "{STRING 16} lässt\l"
- .string "es regnen!$"
-BattleText_SpeedRisen:
- .string "{STRING 23} von\n"
- .string "{STRING 16} erhöht\l"
- .string "seine INIT.!$"
-BattleText_ProtectedBy:
- .string "{GOOD_LEGENDARY} wurde durch\n"
- .string "{STRING 22} geschützt!$"
-BattleText_PreventedBy:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} hindert\p"
- .string "{EVIL_LEGENDARY} daran,\n"
- .string "{STRING 17} einzusetzen!$"
-BattleText_HPRestoredUsing:
- .string "{GOOD_LEGENDARY} füllt KP mit\n"
- .string "Hilfe von {STRING 22} auf!$"
-BattleText_MadeUseless:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} hebt die\l"
- .string "Wirkung von {STRING 17} auf!$"
-BattleText_MadeType:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} macht es zu\l"
- .string "einem {STRING 0}-Typ!$"
-BattleText_PreventedPara:
- .string "{STRING 22} von\n"
- .string "{STRING 14} verhindert\l"
- .string "eine Paralyse!$"
-BattleText_PreventedRomance:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} verhindert\l"
- .string "eine Romanze!$"
-BattleText_PreventedPoison:
- .string "{STRING 22} von\n"
- .string "{STRING 14} verhindert\l"
- .string "eine Vergiftung!$"
-BattleText_PreventedConfusion:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} verhindert\l"
- .string "Verwirrung!$"
-BattleText_RaisedFirePower:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} erhöht die\l"
- .string "FEUER-Kraft!$"
-BattleText_AnchorsItself:
- .string "{GOOD_LEGENDARY} verankert\n"
- .string "sich mit Hilfe von {STRING 22}!$"
-BattleText_CutsAttack:
- .string "{STRING 23} von\n"
- .string "{STRING 16} vermindert\l"
- .string "ANGRIFF von {GOOD_LEGENDARY}!$"
-BattleText_PreventedStatLoss:
- .string "{STRING 23} von\n"
- .string "{STRING 16} verhindert\l"
- .string "Statusveränderungen!$"
-BattleText_HurtOther:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} verletzt\l"
- .string "{EVIL_LEGENDARY}!$"
-BattleText_Traced:
- .string "FÄHRTE von\n"
- .string "{STRING 16}\p"
- .string "erkennt {PLAYER}\n"
- .string "von {STRING 0}!$"
-BattleText_PreventedBurn:
- .string "{STRING 24} von\n"
- .string "{STRING 14} verhindert\l"
- .string "Verbrennung!$"
-BattleText_BlocksOther:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} blockiert\l"
- .string "{STRING 17}!$"
-BattleText_BlocksOther2:
- .string "{STRING 23} von\n"
- .string "{STRING 16} blockiert\l"
- .string "{STRING 17}!$"
-BattleText_RestoredHPByItem:
- .string "{STRING 21} von\n"
- .string "{EVIL_LEGENDARY} füllt\l"
- .string "einige KP auf!$"
-BattleText_WhipSandstorm:
- .string "{STRING 23} von\n"
- .string "{STRING 16} entfacht\l"
- .string "einen Sandsturm!$"
-BattleText_SunIntensified:
- .string "{STRING 23} von\n"
- .string "{STRING 16} intensiviert\l"
- .string "die Sonnenstrahlen!$"
-BattleText_PreventedLoss:
- .string "{STRING 23} von\n"
- .string "{STRING 16} verhindert \l"
- .string "den Verlust von {STRING 0}!$"
-BattleText_InfatuatedPoke:
- .string "{EVIL_LEGENDARY} ist vernarrt\n"
- .string "in {STRING 22} von\l"
- .string "{GOOD_LEGENDARY}!$"
-BattleText_MadeIneffective:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} macht\l"
- .string "{STRING 17} wirkungslos!$"
-BattleText_CuredProblem:
- .string "{STRING 23} von\n"
- .string "{STRING 16} heilte sein\l"
- .string "Problem mit {STRING 0}!$"
-BattleText_OozeSuckup:
- .string "Es saugte\n"
- .string "KLOAKENSOSSE auf!$"
-BattleText_Transformed2:
- .string "{STRING 16}\n"
- .string "verwandelte sich!$"
-BattleText_TookAttack2:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} übernahm\l"
- .string "den Angriff!$"
-
-gUnknown_083FFCCA:: @ 83FFCCA
-BattleText_PreventedSwitch::
- .string "{STRING 20} von\n"
- .string "{STRING 0} verhindert\p"
- .string "Wechsel!\p"
- .string "$"
-BattleText_PreventedOther:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} macht\p"
- .string "{STRING 0} von\n"
- .string "{STRING 16} wirkungslos!$"
-BattleText_MadeIneffective2:
- .string "{STRING 23} von\n"
- .string "{STRING 16} machte\l"
- .string "es wirkungslos!$"
-BattleText_PreventedFlinching:
- .string "{STRING 24} von\n"
- .string "{STRING 14} verhindert\l"
- .string "ein Zurückschrecken!$"
-BattleText_PreventedOther2:
- .string "{STRING 21} von\n"
- .string "{EVIL_LEGENDARY} macht\p"
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} wirkungslos!$"
-BattleText_CuredOfProblem:
- .string "{STRING 23} von\n"
- .string "{STRING 16} heilte sein\l"
- .string "Problem mit {STRING 0}!$"
-BattleText_NoEffectOn:
- .string "{STRING 23} von\n"
- .string "{STRING 16} hat keine\l"
- .string "Wirkung auf {STRING 14}!$"
-BattleText_Sharply:
- .string "steigt stark!$"
-
-gUnknown_083FFDB3:: @ 83FFDB3
-BattleText_Rose:
- .string "steigt.$"
-BattleText_Harshly:
- .string "sinkt stark!$"
-BattleText_Fell:
- .string "sinkt.$"
-BattleText_UnknownString7:
- .string "{STRING 0} von\n"
- .string "{EVIL_LEGENDARY} {PLAYER}$"
-
-gUnknown_083FFDD3:: @ 83FFDD3
-BattleText_UnknownString3:
- .string "{STRING 0} von\n"
- .string "{GOOD_LEGENDARY} {PLAYER}$"
-BattleText_UnknownString4:
- .string "{STRING 19}: {STRING 0} von\n"
- .string "{STRING 16} {PLAYER}$"
-BattleText_UnknownString5:
- .string "{STRING 0} von\n"
- .string "{EVIL_LEGENDARY} {PLAYER}$"
-BattleText_UnknownString6:
- .string "{STRING 0} von\n"
- .string "{GOOD_LEGENDARY} {PLAYER}$"
-BattleText_StatNoHigher:
- .string "Status von {EVIL_LEGENDARY}\n"
- .string "kann nicht weiter erhöht werden!$"
-BattleText_StatNoLower:
- .string "Status von {GOOD_LEGENDARY}\n"
- .string "kann nicht weiter sinken!$"
-BattleText_Critical:
- .string "Ein Volltreffer!$"
-BattleText_GrandSlam:
- .string "Ein K.O.-Treffer!$"
-BattleText_MoveForget123:
- .string "{PAUSE 32}1, {PAUSE 15}2 und...{PAUSE 15} ...{PAUSE 15} ...{PAUSE 15}\n"
- .string "{PAUSE 15}{PLAY_SE 0x38 0x00}Schwupp!\p"
- .string "$"
-BattleText_MoveForgetAnd:
- .string "Und...\p"
- .string "$"
-BattleText_CantForgetHM:
- .string "VM-Attacken können jetzt \n"
- .string "nicht vergessen werden.\p"
- .string "$"
-BattleText_NotEffective:
- .string "Das ist nicht sehr effektiv...$"
-BattleText_SuperEffective:
- .string "Das ist sehr effektiv!$"
-
-gUnknown_083FFEFC:: @ 83FFEFC
-BattleText_GotAwaySafely:
- .string "{PLAY_SE 0x11 0x00}Du bist entkommen!\p"
- .string "$"
-BattleText_FledUsingItem:
- .string "{PLAY_SE 0x11 0x00}{EVIL_LEGENDARY} floh\n"
- .string "durch Einsatz von {STRING 19}!\p"
- .string "$"
-BattleText_FledUsingOther:
- .string "{PLAY_SE 0x11 0x00}{EVIL_LEGENDARY} floh\n"
- .string "durch Einsatz von {STRING 21}!\p"
- .string "$"
-BattleText_FledWild:
- .string "{PLAY_SE 0x11 0x00}Wildes {STRING 0} floh!$"
-
-gUnknown_083FFF56:: @ 83FFF56
-BattleText_PlayerDefeatedTrainer:
- .string "Spieler besiegte\n"
- .string "{STRING 29}!$"
-
-gUnknown_083FFF6A:: @ 83FFF6A
-BattleText_PlayerDefeatedTrainers:
- .string "Spieler besiegte\n"
- .string "{STRING 30} und {STRING 29}!$"
-
-gUnknown_083FFF81:: @ 83FFF81
-BattleText_PlayerLostTrainer:
- .string "Spieler verlor gegen\n"
- .string "{STRING 29}!$"
-
-gUnknown_083FFF99:: @ 83FFF99
-BattleText_PlayerLostTrainers:
- .string "Spieler verlor gegen\n"
- .string "{STRING 30} und {STRING 29}!$"
-
-gUnknown_083FFFB3:: @ 83FFFB3
-BattleText_PlayerTiedTrainer:
- .string "Patt zwischen Spieler und\n"
- .string "{STRING 29}!$"
-
-gUnknown_083FFFCB:: @ 83FFFCB
-BattleText_PlayerTiedTrainers:
- .string "Patt zwischen Spieler, {STRING 30}\n"
- .string "und {STRING 29}!$"
-
-gUnknown_083FFFEA:: @ 83FFFEA
-BattleText_FledSingle:
- .string "{PLAY_SE 0x11 0x00}{STRING 29} floh!$"
-
-gUnknown_083FFFF7:: @ 83FFFF7
-BattleText_FledDouble:
- .string "{PLAY_SE 0x11 0x00}{STRING 29} und\n"
- .string "{STRING 30} flohen!$"
-BattleText_NoRunning:
- .string "Du kannst aus TRAINER-Kämpfen\n"
- .string "nicht fliehen!\p"
- .string "$"
-BattleText_CantEscape2:
- .string "Flucht unmöglich!\p"
- .string "$"
-BattleText_BirchDontLeaveMe:
- .string "PROF. BIRK: Du... Du kannst mich doch\n"
- .string "nicht einfach im Stich lassen!\p"
- .string "$"
-BattleText_Nothing:
- .string "Nichts geschieht!$"
-BattleText_Failed:
- .string "Es schlug fehl!$"
-BattleText_HurtItself:
- .string "Es hat sich vor Verwirrung\n"
- .string "selbst verletzt!$"
-BattleText_MirrorFail:
- .string "Der SPIEGELTRICK schlug fehl!$"
-BattleText_RainStart:
- .string "Es fängt an zu regnen!$"
-BattleText_PourStart:
- .string "Ein Wolkenbruch!$"
-BattleText_RainCont1:
- .string "Es regnet weiter.$"
-BattleText_PourCont:
- .string "Der Wolkenbruch hält an.$"
-BattleText_RainStop:
- .string "Es hat aufgehört zu regnen.$"
-BattleText_SandBrewed:
- .string "Ein Sandsturm kommt auf!$"
-BattleText_SandRages:
- .string "Der Sandsturm tobt.$"
-BattleText_SandSubsided:
- .string "Der Sandsturm legt sich.$"
-BattleText_SunBright:
- .string "Das Sonnenlicht wird stärker!$"
-BattleText_SunStrong:
- .string "Gleißendes Sonnenlicht!$"
-BattleText_SunFaded:
- .string "Das Sonnenlicht lässt nach!$"
-BattleText_HailStart:
- .string "Es fängt an zu hageln!$"
-BattleText_HailCont:
- .string "Es hagelt!$"
-BattleText_HailStop:
- .string "Es hat aufgehört zu hageln.$"
-BattleText_SpitUpFail:
- .string "Aber es konnte nichts\n"
- .string "ENTFESSELN!$"
-BattleText_SwallowFail:
- .string "Aber es konnte nichts\n"
- .string "VERZEHREN!$"
-BattleText_WindHeatWave:
- .string "Der Wind wurde zu einer\n"
- .string "HITZEWELLE!$"
-BattleText_StatElim:
- .string "Alle Statusveränderungen wurden\n"
- .string "entfernt!$"
-BattleText_CoinScatter:
- .string "Es liegen überall Münzen verstreut!$"
-BattleText_SubWeak:
- .string "Zu schwach, um einen DELEGATOR\n"
- .string "einzusetzen!$"
-BattleText_PainSplit:
- .string "Die Kontrahenten teilen\n"
- .string "ihr Leid!$"
-BattleText_BellChime:
- .string "Eine Glocke läutet!$"
-BattleText_PerishSong:
- .string "Alle betroffenen POKéMON werden\n"
- .string "in 3 Runden K.O. gehen!$"
-BattleText_NoPP1:
- .string "Es sind keine AP mehr für\n"
- .string "diese Attacke übrig!\p"
- .string "$"
-BattleText_NoPP2:
- .string "Aber es waren keine AP mehr\n"
- .string "für diese Attacke übrig!$"
-BattleText_IgnoredOrdersSLP:
- .string "{EVIL_LEGENDARY} ignoriert die\n"
- .string "Befehle. Es schläft!$"
-BattleText_IgnoredOrders:
- .string "{EVIL_LEGENDARY} ignoriert den\n"
- .string "Befehl!$"
-BattleText_BeganNap:
- .string "{EVIL_LEGENDARY} macht\n"
- .string "ein Nickerchen!$"
-BattleText_LoafingAround:
- .string "{EVIL_LEGENDARY} faulenzt!$"
-BattleText_WontObey:
- .string "{EVIL_LEGENDARY} ist\n"
- .string "ungehorsam!$"
-BattleText_TurnedAway:
- .string "{EVIL_LEGENDARY} wendet\n"
- .string "sich ab!$"
-BattleText_NotNotice:
- .string "{EVIL_LEGENDARY} gibt vor,\n"
- .string "nichts zu bemerken!$"
-BattleText_WillSwitch:
- .string "Als Nächstes wird {PLAYER} von\n"
- .string "{STRING 25} {STRING 26} eingesetzt.\p"
- .string "Wird {STRING 32} das\n"
- .string "POKéMON wechseln?$"
-BattleText_LearnedMove2:
- .string "{EVIL_LEGENDARY} hat\n"
- .string "{STRING 0} gelernt!$"
-BattleText_PlayerDefeatedTrainer2:
- .string "Spieler besiegte\n"
- .string "{STRING 25} {STRING 26}!\p"
- .string "$"
-BattleText_CreptCloser:
- .string "{STRING 32} schleicht sich näher an\n"
- .string "{STR_VAR_2} heran!$"
-BattleText_CantGetCloser:
- .string "{STRING 32} kann nicht näher herangehen!$"
-BattleText_WatchingCarefully:
- .string "{STR_VAR_2} beobachtet\n"
- .string "alles aufmerksam!$"
-BattleText_CuriousAbout:
- .string "{STR_VAR_2} ist\n"
- .string "neugierig auf {STRING 0}!$"
-BattleText_EnthralledBy:
- .string "{STR_VAR_2} ist begeistert\n"
- .string "von {STRING 0}!$"
-BattleText_IgnoredThing:
- .string "{STR_VAR_2} ignoriert\n"
- .string "{STRING 0} völlig!$"
-BattleText_ThrewBlock:
- .string "{STRING 32} wirft {STR_VAR_2} einen\n"
- .string "{POKEBLOCK} zu!$"
-BattleText_SafariOver:
- .string "{PLAY_SE 0x49 0x00}ANSAGE: Du hast keine\n"
- .string "SAFARIBÄLLE mehr! Game over!\p"
- .string "$"
-
-gUnknown_08400555:: @ 8400555
-BattleText_WildAppeared1:
- .string "Ein wildes {STR_VAR_2} erscheint!\p"
- .string "$"
-
-gUnknown_08400568:: @ 8400568
-BattleText_WildAppeared2:
- .string "Ein wildes {STR_VAR_2} erscheint!\p"
- .string "$"
-
-gUnknown_0840057B:: @ 840057B
-BattleText_WildAppeared3:
- .string "Ein wildes {STR_VAR_2} erscheint!{PAUSE 127}$"
-
-gUnknown_08400590:: @ 8400590
-BattleText_WildDoubleAppeared:
- .string "Ein wildes {KUN} und\n"
- .string "ein wildes {STR_VAR_2} erscheinen!\p"
- .string "$"
-
-gUnknown_084005AA:: @ 84005AA
-BattleText_SingleWantToBattle1:
- .string "Eine Herausforderung von\n"
- .string "{STRING 25} {STRING 26}!\p"
- .string "$"
-
-gUnknown_084005C7:: @ 84005C7
-BattleText_SingleWantToBattle2:
- .string "Eine Herausforderung von\n"
- .string "{STRING 29}!$"
-
-gUnknown_084005DB:: @ 84005DB
-BattleText_DoubleWantToBattle:
- .string "{STRING 29} und {STRING 30}\n"
- .string "möchten kämpfen!$"
-
-gUnknown_084005F5:: @ 84005F5
-BattleText_SentOutSingle1:
- .string "{STR_VAR_2} wird von\n"
- .string "{STRING 25} {STRING 26} in den\l"
- .string "Kampf geschickt!$"
-
-gUnknown_08400608:: @ 8400608
-BattleText_SentOutDouble1:
- .string "{STR_VAR_2} und {KUN}\n"
- .string "werden von\p"
- .string "{STRING 25} {STRING 26}\n"
- .string "in den Kampf geschickt!$"
-
-gUnknown_08400622:: @ 8400622
-BattleText_SentOutSingle2:
- .string "{STRING 0} wird von\n"
- .string "{STRING 25} {STRING 26}\l"
- .string "in den Kampf geschickt!$"
-
-gUnknown_08400635:: @ 8400635
-BattleText_SentOutSingle3:
- .string "{STRING 29} schickt\n"
- .string "{STR_VAR_2} in den Kampf!$"
-
-gUnknown_08400645:: @ 8400645
-BattleText_SentOutDouble2:
- .string "{STRING 29} schickt\n"
- .string "{STR_VAR_2} und {KUN}!$"
-
-gUnknown_0840065C:: @ 840065C
-BattleText_SentOutDouble3:
- .string "{STRING 29} schickt\n"
- .string "{VERSION}!\p"
- .string "{STRING 30} schickt\n"
- .string "{GOOD_TEAM}!$"
-
-gUnknown_0840067C:: @ 840067C
-BattleText_SentOutSingle4:
- .string "{STRING 29} schickt\n"
- .string "{STRING 0}!$"
-
-gUnknown_0840068C:: @ 840068C
-BattleText_SentOutSingle5:
- .string "{STRING 31} schickt\n"
- .string "{STRING 0}!$"
-
-gUnknown_0840069C:: @ 840069C
-BattleText_SentOutSingle6:
- .string "Los! {STR_VAR_1}!$"
-
-gUnknown_084006A4:: @ 84006A4
-BattleText_SentOutDouble4:
- .string "Los! {STR_VAR_1} und\n"
- .string "{STR_VAR_3}!$"
-
-gUnknown_084006B3:: @ 84006B3
-BattleText_SentOutSingle7:
- .string "Los! {STRING 0}!$"
-
-gUnknown_084006BB:: @ 84006BB
-BattleText_SentOutSingle8:
- .string "Du schaffst es! {STRING 0}!$"
-
-gUnknown_084006C6:: @ 84006C6
-BattleText_SentOutSingle9:
- .string "Streng dich an, {STRING 0}!$"
-
-gUnknown_084006D5:: @ 84006D5
-BattleText_SentOutSingle10:
- .string "Mach es fertig!\n"
- .string "Los, {STRING 0}!$"
-
-gUnknown_084006F1:: @ 84006F1
-BattleText_SentOutSingle11:
- .string "{STRING 28} schickt\n"
- .string "{EVIL_TEAM}!\p"
- .string "Los! {RIVAL}!$"
-
-gUnknown_08400709:: @ 8400709
-BattleText_ComeBackSingle1:
- .string "{STRING 0}, genug!\n"
- .string "Komm zurück!$"
-
-gUnknown_08400727:: @ 8400727
-BattleText_ComeBackSingle2:
- .string "{STRING 0}, komm zurück!$"
-
-gUnknown_08400736:: @ 8400736
-BattleText_ComeBackSingle3:
- .string "{STRING 0}, O.K.!\n"
- .string "Komm zurück!$"
-
-gUnknown_08400749:: @ 8400749
-BattleText_ComeBackSingle4:
- .string "{STRING 0}, gut!\n"
- .string "Komm zurück!$"
-
-gUnknown_0840075E:: @ 840075E
-BattleText_WithdrewPoke1:
- .string "{STRING 0} wurde\n"
- .string "von {STRING 25} {STRING 26}\l"
- .string "zurückgerufen!$"
-
-gUnknown_08400771:: @ 8400771
-BattleText_WithdrewPoke2:
- .string "{STRING 29} ruft\n"
- .string "{STRING 0} zurück!$"
-
-gUnknown_08400781:: @ 8400781
-BattleText_WithdrewPoke3:
- .string "{STRING 31} ruft\n"
- .string "{STRING 0} zurück!$"
-
-gUnknown_08400791:: @ 8400791
-BattleText_Wild:
- .string " (Wild)$"
-
-gUnknown_08400797:: @ 8400797
-BattleText_Foe:
- .string " (Gegner)$"
-
-gUnknown_0840079C:: @ 840079C
-BattleText_Foe2:
- .string "Gegner$"
-
-gUnknown_084007A1:: @ 84007A1
-BattleText_Ally:
- .string "Anwender$"
-
-gUnknown_084007A7:: @ 84007A7
-BattleText_Foe3:
- .string "Gegner$"
-
-gUnknown_084007AC:: @ 84007AC
-BattleText_Ally2:
- .string "Anwender$"
-
-gUnknown_084007B2:: @ 84007B2
-BattleText_Foe4:
- .string "Gegner$"
-
-gUnknown_084007B7:: @ 84007B7
-BattleText_Ally3:
- .string "Anwender$"
-
-gUnknown_084007BD:: @ 84007BD
-BattleText_OpponentUsedMove:
- .string "{EVIL_LEGENDARY} setzt\n"
- .string "{PLAYER} ein!$"
-
-gUnknown_084007C8:: @ 84007C8
-BattleText_Exclamation2:
- .string "$"
-
-gUnknown_084007CA:: @ 84007CA
-BattleText_Exclamation3:
- .string "$"
-
-gUnknown_084007CC:: @ 84007CC
-BattleText_Exclamation4:
- .string "$"
-
-gUnknown_084007CE:: @ 84007CE
-BattleText_Exclamation5:
- .string "$"
-
-gUnknown_084007D0:: @ 84007D0
-BattleText_Exclamation:
- .string "$"
-
-BattleStatText_HP: @ 84007D2
- .string "KP$"
-
-BattleStatText_Attack: @ 84007D5
- .string "ANGRIFF$"
-
-BattleStatText_Defense: @ 84007DC
- .string "VERT.$"
-
-BattleStatText_Speed: @ 84007E4
- .string "INIT.$"
-
-BattleStatText_SpAtk: @ 84007EA
- .string "SP.ANG.$"
-
-BattleStatText_SpDef: @ 84007F2
- .string "SP.VER.$"
-
-BattleStatText_Accuracy: @ 84007FA
- .string "GENAUIGKEIT$"
-
-BattleStatText_Evasion: @ 8400803
- .string "FLUCHTWERT$"
-
-ContestStatText_TooSpicy: @ 840080F
- .string "zu scharf!$"
-
-ContestStatText_TooDry: @ 840081E
- .string "zu trocken!$"
-
-ContestStatText_TooSweet: @ 840082B
- .string "zu süß!$"
-
-ContestStatText_TooBitter: @ 840083A
- .string "zu bitter!$"
-
-ContestStatText_TooSour: @ 840084A
- .string "zu sauer!$"
-BattleText_Used1:
- .string "{STRING 32} setzt\n"
- .string "{STRING 19} ein!$"
-BattleText_TutorialUsed:
- .string "HEIKO setzt\n"
- .string "{STRING 19} ein!$"
-BattleText_Used2:
- .string "{STRING 19} wird von\n"
- .string "{STRING 25} {STRING 26} eingesetzt!$"
-BattleText_BlockBall:
- .string "Der TRAINER hat den BALL abgeblockt!$"
-BattleText_DontBeAThief:
- .string "Sei kein Dieb!$"
-BattleText_DodgeBall:
- .string "Es ist dem BALL ausgewichen! Dieses\n"
- .string "POKéMON kann nicht gefangen werden!$"
-BattleText_MissPoke:
- .string "Du hast das POKéMON verfehlt!$"
-BattleText_BallBrokeOhNo:
- .string "Mist!\n"
- .string "Das POKéMON hat sich befreit!$"
-BattleText_BallBrokeAppeared:
- .string "Oh!\n"
- .string "Fast hätte es geklappt!$"
-BattleText_BallBrokeAlmost:
- .string "Mist!\n"
- .string "Das war knapp!$"
-BattleText_BallBrokeSoClose:
- .string "Verflixt!\n"
- .string "Es hätte beinahe geklappt!$"
-BattleText_BallCaught1:
- .string "Toll!\n"
- .string "{STR_VAR_2} wurde gefangen!{UNKNOWN_A}{PLAY_BGM 0x60 0x01}\p"
- .string "$"
-BattleText_BallCaught2:
- .string "Toll!\n"
- .string "{STR_VAR_2} wurde gefangen!{UNKNOWN_A}{PLAY_BGM 0x60 0x01}{PAUSE 127}$"
-BattleText_GiveNickname:
- .string "Möchtest du dem {STR_VAR_2}\n"
- .string "einen Spitznamen geben?$"
-BattleText_SentToPC:
- .string "{STR_VAR_2} wurde auf\n"
- .string "{STRING 35} PC übertragen.$"
-
-gUnknown_084009ED:: @ 84009ED
-BattleText_Someone:
- .string "einen$"
-
-gUnknown_084009F7:: @ 84009F7
-BattleText_Lanette:
- .string "LANETTES$"
-BattleText_AddedToDex:
- .string "Für {STR_VAR_2} wurde ein Eintrag\n"
- .string "im POKéDEX angelegt.\p"
- .string "$"
-BattleText_Raining:
- .string "Es regnet.$"
-BattleText_Sandstorm:
- .string "Ein Sandsturm tobt.$"
-BattleText_BoxFull:
- .string "Die BOXEN sind voll!\n"
- .string "Du kannst keines mehr fangen!\p"
- .string "$"
-
-gUnknown_08400A78:: @ 8400A78
-BattleText_EnigmaBerry:
- .string "ENIGMABEERE$"
-
-gUnknown_08400A85:: @ 8400A85
-BattleText_Berry:
- .string "{STR_VAR_1}BEERE$"
-BattleText_CuredParalysis:
- .string "{STRING 19} von\n"
- .string "{STRING 16}\l"
- .string "heilte die Paralyse!$"
-BattleText_CuredPoison:
- .string "{STRING 19} von\n"
- .string "{STRING 16}\l"
- .string "heilte die Vergiftung!$"
-BattleText_CuredBurn:
- .string "{STRING 19} von\n"
- .string "{STRING 16}\l"
- .string "heilte die Verbrennung!$"
-BattleText_CuredFreeze:
- .string "{STRING 19} von\n"
- .string "{STRING 16} taute es auf!$"
-BattleText_CuredSleep:
- .string "{STRING 19} von\n"
- .string "{STRING 16} \l"
- .string "weckte es auf!$"
-BattleText_CuredConfusion:
- .string "{STRING 19} von\n"
- .string "{STRING 16}\l"
- .string "hebt die Verwirrung auf!$"
-BattleText_CuredStatus:
- .string "{STRING 19} von\n"
- .string "{STRING 16} \l"
- .string "heilte sein {STRING 0}-Problem!$"
-BattleText_NormalizedStatus:
- .string "{STRING 19} von\n"
- .string "{STRING 16} normalisierte\l"
- .string "seine Statuswerte!$"
-BattleText_RestoredHealth:
- .string "{STRING 19} füllte\n"
- .string "KP von {STRING 16} auf!$"
-BattleText_RestoredPP:
- .string "{STRING 19} von\n"
- .string "{STRING 16} füllte AP von\l"
- .string "{STRING 0} auf!$"
-BattleText_RestoredStatus:
- .string "{STRING 19} von\n"
- .string "{STRING 16}\p"
- .string "stellte seine\n"
- .string "Statuswerte wieder her!$"
-BattleText_RestoredHPLittle:
- .string "{STRING 19} von\n"
- .string "{STRING 16}\l"
- .string "füllte einige KP auf!$"
-BattleText_ChoiceBand:
- .string "{STRING 19} erlaubt\n"
- .string "nur den Einsatz von {STRING 17}!\p"
- .string "$"
-BattleText_FocusSash:
- .string "{GOOD_LEGENDARY} hält\n"
- .string "mit Hilfe von\l"
- .string "{STRING 19} durch!$"
-BattleText_Terminator2:
- .string "$"
-BattleText_WallyBall:
- .string "Nun muss man einen BALL werfen, oder?\n"
- .string "Ich... Ich werde mein Bestes geben!$"
-
-gUnknown_08400C4A:: @ 8400C4A
-BattleText_StartEvo:
- .string "Hey?\n"
- .string "{STR_VAR_1} entwickelt sich!$"
-
-gUnknown_08400C60:: @ 8400C60
-BattleText_FinishEvo:
- .string "Glückwunsch! Dein {STR_VAR_1}\n"
- .string "wurde zu {STR_VAR_2}!{UNKNOWN_A}\p"
- .string "$"
-
-gUnknown_08400C8D:: @ 8400C8D
-BattleText_StopEvo:
- .string "Hm? Die Entwicklung\n"
- .string "wurde abgebrochen!\p"
- .string "$"
-
-gUnknown_08400CA8:: @ 8400CA8
-BattleText_OtherMenu:
- .string "Was soll\n"
- .string "{STRING 15} tun?$"
-
-gUnknown_08400CBB:: @ 8400CBB
-BattleText_PlayerMenu:
- .string "Was wird {STRING 32}\n"
- .string "tun?$"
-
-gUnknown_08400CCC:: @ 8400CCC
-BattleText_WallyMenu:
- .string "Was wird\n"
- .string "HEIKO tun?$"
-
-gUnknown_08400CE0:: @ 8400CE0
-BattleText_LinkStandby:
- .string "{PAUSE 16}Verbindung...$"
-
-gUnknown_08400CF3:: @ 8400CF3
-BattleText_MenuOptions:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}KAMPF{CLEAR_TO 46}BEUTEL\n"
- .string "POKéMON{CLEAR_TO 46}FLUCHT$"
-
-gUnknown_08400D15:: @ 8400D15
-BattleText_MenuOptionsSafari:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}BALL{CLEAR_TO 46}{POKEBLOCK}\n"
- .string "NÄHER{CLEAR_TO 46}FLUCHT$"
-
-gUnknown_08400D38:: @ 8400D38
-BattleText_PP:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}AP\n"
- .string "TYP/$"
-
-gUnknown_08400D49:: @ 8400D49
-BattleText_Format:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}$"
-
-gUnknown_08400D52:: @ 8400D52
-BattleText_ForgetMove:
- .string "{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}{PALETTE 5}Welche Attacke soll vergessen werden?$"
-
-gUnknown_08400D7A:: @ 8400D7A
-BattleText_YesNo:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Ja\n"
- .string "Nein$"
-
-gUnknown_08400D89:: @ 8400D89
-BattleText_SwitchWhich:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}\n"
- .string "Wohin?$"
-
-gUnknown_08400D9F:: @ 8400D9F
-BattleText_Format2:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}$"
-BattleText_RightArrow:
- .string "{RIGHT_ARROW}$"
-
-gUnknown_08400DAA:: @ 8400DAA
-BattleText_Plus:
- .string "+$"
-
-gUnknown_08400DAC:: @ 8400DAC
-BattleText_Dash:
- .string "-$"
-BattleText_HP:
- .string "KP $"
-BattleText_Attack:
- .string "ANGR. $"
-BattleText_Defense:
- .string "VERT.$"
-BattleText_SpAtk:
- .string "SP.ANG.$"
-BattleText_SpDef:
- .string "SP.VER.$"
-
-gUnknown_08400DD6:: @ 8400DD6
-BattleText_SafariBalls::
- .string "{HIGHLIGHT RED}SAFARIBÄLLE$"
-
-gUnknown_08400DE6:: @ 8400DE6
-BattleText_SafariBallsLeft::
- .string "{HIGHLIGHT RED}Übrig: $"
-
-gUnknown_08400DF0:: @ 8400DF0
-BattleText_HighlightRed::
- .string "{HIGHLIGHT RED}$"
-
-BattleText_Sleep::
- .string "Schlaf$"
-BattleText_PoisonStatus::
- .string "Gift$"
-BattleText_Burn::
- .string "Verbrennung$"
-BattleText_Paralysis::
- .string "Paralyse$"
-BattleText_IceStatus::
- .string "Eis$"
-BattleText_Confusion::
- .string "Verwirrung$"
-BattleText_Love::
- .string "Liebe$"
-
-gUnknown_08400E23:: @ 8400E23
-BattleText_Format3:
- .string " und $"
-
-gUnknown_08400E29:: @ 8400E29
-BattleText_Format4:
- .string ", $"
-
-gUnknown_08400E2C:: @ 8400E2C
-BattleText_Format5:
- .string " $"
-
-gUnknown_08400E2E:: @ 8400E2E
-BattleText_Format6:
- .string "\l"
- .string "$"
-
-gUnknown_08400E30:: @ 8400E30
-BattleText_Format7:
- .string "\n"
- .string "$"
-
-gUnknown_08400E32:: @ 8400E32
-BattleText_Format8:
- .string "sind$"
-
-gUnknown_08400E36:: @ 8400E36
-BattleText_Format9:
- .string "sind$"
-
-gBadEggNickname:: @ 8400E3A
- .string "Schl. EI$"
-
-gUnknown_08400E42:: @ 8400E42
-BattleText_Wally::
- .string "HEIKO$"
-
-BattleText_Win:: @ 8400E48
- .string "{HIGHLIGHT TRANSPARENT}Sieg$"
-
-BattleText_Loss:: @ 8400E4F
- .string "{HIGHLIGHT TRANSPARENT}Ndrl.$"
-
-BattleText_Tie:: @ 8400E57
- .string "{HIGHLIGHT TRANSPARENT}Patt$"
-
-gUnknown_08400E5E:: @ 8400E5E
-BattleText_Format10:
- .string " ist$"
-
-gUnknown_08400E62:: @ 8400E62
-BattleText_Format11:
- .string "$"
-BattleText_Normal:
- .string "eine NORMALE Att.$"
-BattleText_Fighting:
- .string "eine KAMPF-Att.$"
-BattleText_Flying:
- .string "eine FLUG-Att.$"
-BattleText_Poison:
- .string "eine GIFT-Att.$"
-BattleText_Ground:
- .string "eine BODEN-Att.$"
-BattleText_Rock:
- .string "eine GESTEINS-Att.$"
-BattleText_Bug:
- .string "eine KÄFER-Att.$"
-BattleText_Ghost:
- .string "eine GEIST-Att.$"
-BattleText_Steel:
- .string "eine STAHL-Att.$"
-BattleText_Typeless:
- .string "eine ???-Attacke$"
-BattleText_Fire:
- .string "eine FEUER-Att.$"
-BattleText_Water:
- .string "eine WASSER-Att.$"
-BattleText_Grass:
- .string "eine PFLANZEN-Att.$"
-BattleText_Electric:
- .string "eine ELEKTRO-Att.$"
-BattleText_Psychic:
- .string "eine PSYCHO-Att.$"
-BattleText_Ice:
- .string "eine EIS-Att.$"
-BattleText_Dragon:
- .string "eine DRACHEN-Att.$"
-BattleText_Dark:
- .string "eine UNLICHT-Att.$"
-
- .align 2
-gUnknown_08400F58:: @ 8400F58
- .4byte BattleStatText_HP
- .4byte BattleStatText_Attack
- .4byte BattleStatText_Defense
- .4byte BattleStatText_Speed
- .4byte BattleStatText_SpAtk
- .4byte BattleStatText_SpDef
- .4byte BattleStatText_Accuracy
- .4byte BattleStatText_Evasion
-
- .align 2
-gUnknown_08400F78:: @ 8400F78
- .4byte ContestStatText_TooSpicy
- .4byte ContestStatText_TooDry
- .4byte ContestStatText_TooSweet
- .4byte ContestStatText_TooBitter
- .4byte ContestStatText_TooSour
-
- .align 2
-gBattleStringsTable:: @ 8400F8C
- .4byte BattleText_UnknownString
- .4byte BattleText_GainExpPoints
- .4byte BattleText_GrewLevel
- .4byte BattleText_LearnedMove
- .4byte BattleText_TryingToLearnMove
- .4byte BattleText_CantLearnMore
- .4byte BattleText_DeleteMove
- .4byte BattleText_DeletedMove
- .4byte BattleText_StopLearning
- .4byte BattleText_DidNotLearn
- .4byte BattleText_LearnedMove2
- .4byte BattleText_AttackMissed
- .4byte BattleText_ProtectedItself
- .4byte BattleText_StatNoHigher
- .4byte BattleText_AvoidedDamage
- .4byte BattleText_DoesntAffect
- .4byte BattleText_AttackingFainted
- .4byte BattleText_DefendingFainted
- .4byte BattleText_WinningPrize
- .4byte BattleText_OutOfUsablePoke
- .4byte BattleText_WhitedOut
- .4byte BattleText_PreventEscape
- .4byte BattleText_HitMulti
- .4byte BattleText_FellAsleep
- .4byte BattleText_MadeAsleep
- .4byte BattleText_DefendingAsleep
- .4byte BattleText_AttackingAsleep
- .4byte BattleText_WasntAffected
- .4byte BattleText_Poisoned
- .4byte BattleText_Poisoned2
- .4byte BattleText_PoisonHurt
- .4byte BattleText_AlreadyPoisoned
- .4byte BattleText_BadlyPoisoned
- .4byte BattleText_EnergyDrained
- .4byte BattleText_Burned
- .4byte BattleText_Burned2
- .4byte BattleText_BurnHurt
- .4byte BattleText_Frozen
- .4byte BattleText_Frozen2
- .4byte BattleText_FrozenSolid
- .4byte BattleText_DefendingDefrosted
- .4byte BattleText_AttackingDefrosted
- .4byte BattleText_Defrosted
- .4byte BattleText_Paralyzed
- .4byte BattleText_Paralyzed2
- .4byte BattleText_Paralyzed3
- .4byte BattleText_AlreadyParalyzed
- .4byte BattleText_ParalysisHealed
- .4byte BattleText_DreamEaten
- .4byte BattleText_AttackingStatNoHigher
- .4byte BattleText_DefendingStatNoHigher
- .4byte BattleText_StoppedWorking
- .4byte BattleText_StoppedWorking2
- .4byte BattleText_Confused
- .4byte BattleText_ConfusionSnapOut
- .4byte BattleText_BecameConfused
- .4byte BattleText_AlreadyConfused
- .4byte BattleText_FellLove
- .4byte BattleText_InLoveWith
- .4byte BattleText_ImmobilizedBy
- .4byte BattleText_BlownAway
- .4byte BattleText_TypeTransform
- .4byte BattleText_Flinched
- .4byte BattleText_RegainedHealth
- .4byte BattleText_HPFull
- .4byte BattleText_RaisedSpDef
- .4byte BattleText_RaisedDefense
- .4byte BattleText_CoveredVeil
- .4byte BattleText_SafeguardActive
- .4byte BattleText_SafeguardFaded
- .4byte BattleText_WentToSleep
- .4byte BattleText_SpeltHealthy
- .4byte BattleText_WhipWhirlwind
- .4byte BattleText_TookSunlight
- .4byte BattleText_LoweredHead
- .4byte BattleText_IsGlowing
- .4byte BattleText_FlewHigh
- .4byte BattleText_DugHole
- .4byte BattleText_SqueezedBind
- .4byte BattleText_TrappedVortex
- .4byte BattleText_Wrapped
- .4byte BattleText_Clamped
- .4byte BattleText_HurtBy
- .4byte BattleText_FreedFrom
- .4byte BattleText_KeptGoingCrash
- .4byte BattleText_MistShroud
- .4byte BattleText_MistProtect
- .4byte BattleText_GetPumped
- .4byte BattleText_HitRecoil
- .4byte BattleText_ProtectedItself2
- .4byte BattleText_SandBuffeted
- .4byte BattleText_HailStricken
- .4byte BattleText_WasSeeded
- .4byte BattleText_EvadedAttack
- .4byte BattleText_HealthSapped
- .4byte BattleText_FastAsleep
- .4byte BattleText_WokeUp
- .4byte BattleText_UproarAwake
- .4byte BattleText_UproarWoke
- .4byte BattleText_UproarCaused
- .4byte BattleText_UproarMaking
- .4byte BattleText_CalmedDown
- .4byte BattleText_UproarCantSleep
- .4byte BattleText_Stockpiled
- .4byte BattleText_StockpiledCant
- .4byte BattleText_UproarCantSleep2
- .4byte BattleText_UproarKeptAwake
- .4byte BattleText_StayedAwake
- .4byte BattleText_StoringEnergy
- .4byte BattleText_UnleashedEnergy
- .4byte BattleText_FatigueConfuse
- .4byte BattleText_PickedUpYen
- .4byte BattleText_Unaffected
- .4byte BattleText_Transformed
- .4byte BattleText_SubMade
- .4byte BattleText_SubAlready
- .4byte BattleText_SubTookDamage
- .4byte BattleText_SubFaded
- .4byte BattleText_MustRecharge
- .4byte BattleText_RageBuilding
- .4byte BattleText_MoveWasDisabled
- .4byte BattleText_MoveIsDisabled
- .4byte BattleText_DisabledNoMore
- .4byte BattleText_EncoreGot
- .4byte BattleText_EncoreEnded
- .4byte BattleText_TookAim
- .4byte BattleText_SketchedMove
- .4byte BattleText_DestinyBondTake
- .4byte BattleText_DestinyBondTaken
- .4byte BattleText_ReducedBy
- .4byte BattleText_StoleSomething
- .4byte BattleText_CantEscapeNow
- .4byte BattleText_NightmareStart
- .4byte BattleText_NightmareLock
- .4byte BattleText_CurseLay
- .4byte BattleText_CurseAfflict
- .4byte BattleText_SpikesScattered
- .4byte BattleText_SpikesHurt
- .4byte BattleText_IdentifiedPoke
- .4byte BattleText_PerishSongFell
- .4byte BattleText_BracedItself
- .4byte BattleText_EnduredHit
- .4byte BattleText_MagnitudeCount
- .4byte BattleText_CutHPMaxATK
- .4byte BattleText_CopyStatChanges
- .4byte BattleText_GotFreeFrom
- .4byte BattleText_LeechShed
- .4byte BattleText_SpikesBlownAway
- .4byte BattleText_FledBattle
- .4byte BattleText_ForesawAttack
- .4byte BattleText_TookAttack
- .4byte BattleText_PokeAttack
- .4byte BattleText_CenterAttention
- .4byte BattleText_ChargingPower
- .4byte BattleText_NaturePower
- .4byte BattleText_StatusNormal
- .4byte BattleText_NoMovesLeft
- .4byte BattleText_TormentSubject
- .4byte BattleText_TormentNoUse
- .4byte BattleText_TightenFocus
- .4byte BattleText_TauntFell
- .4byte BattleText_TauntNoUse
- .4byte BattleText_ReadyToHelp
- .4byte BattleText_SwitchedItems
- .4byte BattleText_CopiedObject
- .4byte BattleText_WishMade
- .4byte BattleText_WishTrue
- .4byte BattleText_PlantedRoots
- .4byte BattleText_AbsorbNutrients
- .4byte BattleText_AnchoredItself
- .4byte BattleText_DrowsyMade
- .4byte BattleText_KnockedOffItem
- .4byte BattleText_AbilitySwap
- .4byte BattleText_SealedMove
- .4byte BattleText_SealedNoUse
- .4byte BattleText_GrudgeBear
- .4byte BattleText_GrudgeLosePP
- .4byte BattleText_ShroudedItself
- .4byte BattleText_MagicCoatBounce
- .4byte BattleText_AwaitMove
- .4byte BattleText_SnatchedMove
- .4byte BattleText_RainMade
- .4byte BattleText_SpeedRisen
- .4byte BattleText_ProtectedBy
- .4byte BattleText_PreventedBy
- .4byte BattleText_HPRestoredUsing
- .4byte BattleText_MadeType
- .4byte BattleText_PreventedPara
- .4byte BattleText_PreventedRomance
- .4byte BattleText_PreventedPoison
- .4byte BattleText_PreventedConfusion
- .4byte BattleText_RaisedFirePower
- .4byte BattleText_AnchorsItself
- .4byte BattleText_CutsAttack
- .4byte BattleText_PreventedStatLoss
- .4byte BattleText_HurtOther
- .4byte BattleText_Traced
- .4byte BattleText_Sharply
- .4byte BattleText_Rose
- .4byte BattleText_Harshly
- .4byte BattleText_Fell
- .4byte BattleText_UnknownString7
- .4byte BattleText_UnknownString3
- .4byte BattleText_UnknownString5
- .4byte BattleText_UnknownString6
- .4byte BattleText_Critical
- .4byte BattleText_GrandSlam
- .4byte BattleText_MoveForget123
- .4byte BattleText_MoveForgetAnd
- .4byte BattleText_NotEffective
- .4byte BattleText_SuperEffective
- .4byte BattleText_GotAwaySafely
- .4byte BattleText_FledWild
- .4byte BattleText_NoRunning
- .4byte BattleText_CantEscape2
- .4byte BattleText_BirchDontLeaveMe
- .4byte BattleText_Nothing
- .4byte BattleText_Failed
- .4byte BattleText_HurtItself
- .4byte BattleText_MirrorFail
- .4byte BattleText_RainStart
- .4byte BattleText_PourStart
- .4byte BattleText_RainCont1
- .4byte BattleText_PourCont
- .4byte BattleText_RainStop
- .4byte BattleText_SandBrewed
- .4byte BattleText_SandRages
- .4byte BattleText_SandSubsided
- .4byte BattleText_SunBright
- .4byte BattleText_SunStrong
- .4byte BattleText_SunFaded
- .4byte BattleText_HailStart
- .4byte BattleText_HailCont
- .4byte BattleText_HailStop
- .4byte BattleText_SpitUpFail
- .4byte BattleText_SwallowFail
- .4byte BattleText_WindHeatWave
- .4byte BattleText_StatElim
- .4byte BattleText_CoinScatter
- .4byte BattleText_SubWeak
- .4byte BattleText_PainSplit
- .4byte BattleText_BellChime
- .4byte BattleText_PerishSong
- .4byte BattleText_NoPP1
- .4byte BattleText_NoPP2
- .4byte BattleText_Used1
- .4byte BattleText_TutorialUsed
- .4byte BattleText_BlockBall
- .4byte BattleText_DontBeAThief
- .4byte BattleText_DodgeBall
- .4byte BattleText_MissPoke
- .4byte BattleText_BallBrokeOhNo
- .4byte BattleText_BallBrokeAppeared
- .4byte BattleText_BallBrokeAlmost
- .4byte BattleText_BallBrokeSoClose
- .4byte BattleText_BallCaught1
- .4byte BattleText_BallCaught2
- .4byte BattleText_GiveNickname
- .4byte BattleText_SentToPC
- .4byte BattleText_AddedToDex
- .4byte BattleText_Raining
- .4byte BattleText_Sandstorm
- .4byte BattleText_CantEscape
- .4byte BattleText_IgnoredOrdersSLP
- .4byte BattleText_IgnoredOrders
- .4byte BattleText_BeganNap
- .4byte BattleText_LoafingAround
- .4byte BattleText_WontObey
- .4byte BattleText_TurnedAway
- .4byte BattleText_NotNotice
- .4byte BattleText_WillSwitch
- .4byte BattleText_CreptCloser
- .4byte BattleText_CantGetCloser
- .4byte BattleText_WatchingCarefully
- .4byte BattleText_CuriousAbout
- .4byte BattleText_EnthralledBy
- .4byte BattleText_IgnoredThing
- .4byte BattleText_ThrewBlock
- .4byte BattleText_SafariOver
- .4byte BattleText_CuredParalysis
- .4byte BattleText_CuredPoison
- .4byte BattleText_CuredBurn
- .4byte BattleText_CuredFreeze
- .4byte BattleText_CuredSleep
- .4byte BattleText_CuredConfusion
- .4byte BattleText_CuredStatus
- .4byte BattleText_RestoredHealth
- .4byte BattleText_RestoredPP
- .4byte BattleText_RestoredStatus
- .4byte BattleText_RestoredHPLittle
- .4byte BattleText_ChoiceBand
- .4byte BattleText_FocusSash
- .4byte BattleText_Terminator2 @ terminator?
- .4byte BattleText_PreventedBurn
- .4byte BattleText_BlocksOther
- .4byte BattleText_RestoredHPByItem
- .4byte BattleText_WhipSandstorm
- .4byte BattleText_PreventedLoss
- .4byte BattleText_InfatuatedPoke
- .4byte BattleText_MadeIneffective
- .4byte BattleText_CuredProblem
- .4byte BattleText_OozeSuckup
- .4byte BattleText_Transformed2
- .4byte BattleText_ElecWeakened
- .4byte BattleText_FireWeakened
- .4byte BattleText_HidUnderwater
- .4byte BattleText_SprangUp
- .4byte BattleText_CantForgetHM
- .4byte BattleText_FoundOne
- .4byte BattleText_PlayerDefeatedTrainer2
- .4byte BattleText_SoothingAroma
- .4byte BattleText_CantUseItems
- .4byte BattleText_UnknownString2
- .4byte BattleText_UnknownString4
- .4byte BattleText_HustleUse
- .4byte BattleText_MadeUseless
- .4byte BattleText_SandTombTrapped @ sand tomb
- .4byte BattleText_Terminator
- .4byte BattleText_BoostedExp
- .4byte BattleText_SunIntensified
- .4byte BattleText_GroundMoveNegate
- .4byte BattleText_WallyBall
- .4byte BattleText_TookAttack2
- .4byte BattleText_ChoseDestiny
- .4byte BattleText_LostFocus
- .4byte BattleText_UseNext
- .4byte BattleText_FledUsingItem
- .4byte BattleText_FledUsingOther
- .4byte BattleText_DraggedOut
- .4byte BattleText_PreventedOther
- .4byte BattleText_NormalizedStatus
- .4byte BattleText_Used2
- .4byte BattleText_BoxFull
- .4byte BattleText_AvoidedAttack
- .4byte BattleText_MadeIneffective2
- .4byte BattleText_PreventedFlinching
- .4byte BattleText_AlreadyBurned
- .4byte BattleText_StatNoLower
- .4byte BattleText_BlocksOther2
- .4byte BattleText_WoreOff
- .4byte BattleText_RaisedDefenseLittle
- .4byte BattleText_RaisedSpDefLittle
- .4byte BattleText_BrokeWall
- .4byte BattleText_PreventedOther2
- .4byte BattleText_CuredOfProblem
- .4byte BattleText_AttackingCantEscape
- .4byte BattleText_Obtained1
- .4byte BattleText_Obtained2
- .4byte BattleText_Obtained3
- .4byte BattleText_NoEffect
- .4byte BattleText_NoEffectOn
-
- .align 1
-gMissStrings:: @ 8401508
-@ Each entry refers to a text pointer in gUnknown_08400F8C, but the values are offset
-@ by 0xc. For example, 0x0017 refers to BattleText_AttackMissed because it is the
-@ 11th entry in the pointer table.
- .2byte BATTLE_TEXT_AttackMissed
- .2byte BATTLE_TEXT_ProtectedItself
- .2byte BATTLE_TEXT_AvoidedAttack
- .2byte BATTLE_TEXT_AvoidedDamage
- .2byte BATTLE_TEXT_GroundMoveNegate
-
-BattleTextList_401512:: @ 8401512
- .2byte BATTLE_TEXT_CantEscape2
- .2byte BATTLE_TEXT_BirchDontLeaveMe
- .2byte BATTLE_TEXT_PreventEscape
- .2byte BATTLE_TEXT_CantEscape
- .2byte BATTLE_TEXT_AttackingCantEscape
-
-BattleTextList_40151C:: @ 840151C
- .2byte BATTLE_TEXT_RainStart
- .2byte BATTLE_TEXT_PourStart
- .2byte BATTLE_TEXT_Failed
- .2byte BATTLE_TEXT_SandBrewed
- .2byte BATTLE_TEXT_SunBright
- .2byte BATTLE_TEXT_HailStart
-
-BattleTextList_401528:: @ 8401528
- .2byte BATTLE_TEXT_SandRages
- .2byte BATTLE_TEXT_HailCont
-
-BattleTextList_40152C:: @ 840152C
- .2byte BATTLE_TEXT_SandBuffeted
- .2byte BATTLE_TEXT_HailStricken
-
-BattleTextList_401530:: @ 8401530
- .2byte BATTLE_TEXT_SandSubsided
- .2byte BATTLE_TEXT_HailStop
-
-BattleTextList_401534:: @ 8401534
- .2byte BATTLE_TEXT_RainCont1
- .2byte BATTLE_TEXT_PourCont
- .2byte BATTLE_TEXT_RainStop
-
-BattleTextList_40153A:: @ 840153A
- .2byte BATTLE_TEXT_ProtectedItself2
- .2byte BATTLE_TEXT_BracedItself
- .2byte BATTLE_TEXT_Failed
-
-BattleTextList_401540:: @ 8401540
- .2byte BATTLE_TEXT_Failed
- .2byte BATTLE_TEXT_RaisedDefense
- .2byte BATTLE_TEXT_RaisedDefenseLittle
- .2byte BATTLE_TEXT_RaisedSpDef
- .2byte BATTLE_TEXT_RaisedSpDefLittle
- .2byte BATTLE_TEXT_CoveredVeil
-
-BattleTextList_40154C:: @ 840154C
- .2byte BATTLE_TEXT_WasSeeded
- .2byte BATTLE_TEXT_EvadedAttack
- .2byte BATTLE_TEXT_DoesntAffect
- .2byte BATTLE_TEXT_HealthSapped
- .2byte BATTLE_TEXT_OozeSuckup
-
-BattleTextList_401556:: @ 8401556
- .2byte BATTLE_TEXT_WentToSleep
- .2byte BATTLE_TEXT_SpeltHealthy
-
-BattleTextList_40155A:: @ 840155A
- .2byte BATTLE_TEXT_UproarMaking
- .2byte BATTLE_TEXT_CalmedDown
-
-BattleTextList_40155E:: @ 840155E
- .2byte BATTLE_TEXT_Stockpiled
- .2byte BATTLE_TEXT_StockpiledCant
-
-BattleTextList_401562:: @ 8401562
- .2byte BATTLE_TEXT_WokeUp
- .2byte BATTLE_TEXT_UproarWoke
-
-BattleTextList_401566:: @ 8401566
- .2byte BATTLE_TEXT_SwallowFail
- .2byte BATTLE_TEXT_HPFull
-
-BattleTextList_40156A:: @ 840156A
- .2byte BATTLE_TEXT_UproarCantSleep2
- .2byte BATTLE_TEXT_UproarKeptAwake
- .2byte BATTLE_TEXT_StayedAwake
-
-BattleTextList_401570:: @ 8401570
- .2byte BATTLE_TEXT_UnknownString7
- .2byte BATTLE_TEXT_UnknownString3
- .2byte BATTLE_TEXT_AttackingStatNoHigher
- .2byte BATTLE_TEXT_Terminator2
- .2byte BATTLE_TEXT_UnknownString4
- .2byte BATTLE_TEXT_HustleUse
-
-BattleTextList_40157C:: @ 840157C
- .2byte BATTLE_TEXT_UnknownString5
- .2byte BATTLE_TEXT_UnknownString6
- .2byte BATTLE_TEXT_DefendingStatNoHigher
- .2byte BATTLE_TEXT_Terminator2
-
-BattleTextList_401584:: @ 8401584
- .2byte BATTLE_TEXT_WhipWhirlwind
- .2byte BATTLE_TEXT_TookSunlight
- .2byte BATTLE_TEXT_LoweredHead
- .2byte BATTLE_TEXT_IsGlowing
- .2byte BATTLE_TEXT_FlewHigh
- .2byte BATTLE_TEXT_DugHole
- .2byte BATTLE_TEXT_HidUnderwater
- .2byte BATTLE_TEXT_SprangUp
-
-BattleTextList_401594:: @ 8401594
- .2byte BATTLE_TEXT_SqueezedBind
- .2byte BATTLE_TEXT_Wrapped
- .2byte BATTLE_TEXT_TrappedVortex
- .2byte BATTLE_TEXT_Clamped
- .2byte BATTLE_TEXT_TrappedVortex
- .2byte BATTLE_TEXT_SandTombTrapped
-
-BattleTextList_4015A0:: @ 84015A0
- .2byte BATTLE_TEXT_MistShroud
- .2byte BATTLE_TEXT_Failed
-
-BattleTextList_4015A4:: @ 84015A4
- .2byte BATTLE_TEXT_GetPumped
- .2byte BATTLE_TEXT_Failed
-
-BattleTextList_4015A8:: @ 84015A8
- .2byte BATTLE_TEXT_Transformed
- .2byte BATTLE_TEXT_Failed
-
-BattleTextList_4015AC:: @ 84015AC
- .2byte BATTLE_TEXT_SubMade
- .2byte BATTLE_TEXT_SubWeak
-
-BattleTextList_4015B0:: @ 84015B0
- .2byte BATTLE_TEXT_Poisoned
- .2byte BATTLE_TEXT_Poisoned2
-
-BattleTextList_4015B4:: @ 84015B4
- .2byte BATTLE_TEXT_Paralyzed
- .2byte BATTLE_TEXT_Paralyzed2
-
-BattleTextList_4015B8:: @ 84015B8
- .2byte BATTLE_TEXT_FellAsleep
- .2byte BATTLE_TEXT_MadeAsleep
-
-BattleTextList_4015BC:: @ 84015BC
- .2byte BATTLE_TEXT_Burned
- .2byte BATTLE_TEXT_Burned2
-
-BattleTextList_4015C0:: @ 84015C0
- .2byte BATTLE_TEXT_Frozen
- .2byte BATTLE_TEXT_Frozen2
-
-BattleTextList_4015C4:: @ 84015C4
- .2byte BATTLE_TEXT_AttackingDefrosted
- .2byte BATTLE_TEXT_Defrosted
-
-BattleTextList_4015C8:: @ 84015C8
- .2byte BATTLE_TEXT_AttackMissed
- .2byte BATTLE_TEXT_Unaffected
- .2byte BATTLE_TEXT_FellLove
- .2byte BATTLE_TEXT_InfatuatedPoke
-
-BattleTextList_4015D0:: @ 84015D0
- .2byte BATTLE_TEXT_EnergyDrained
- .2byte BATTLE_TEXT_OozeSuckup
-
-BattleTextList_4015D4:: @ 84015D4
- .2byte BATTLE_TEXT_ElecWeakened
- .2byte BATTLE_TEXT_FireWeakened
-
-BattleTextList_4015D8:: @ 84015D8
- .2byte BATTLE_TEXT_BellChime
- .2byte BATTLE_TEXT_BellChime
- .2byte BATTLE_TEXT_BellChime
- .2byte BATTLE_TEXT_BellChime
- .2byte BATTLE_TEXT_SoothingAroma
-
-BattleTextList_4015E2:: @ 84015E2
- .2byte BATTLE_TEXT_ForesawAttack
- .2byte BATTLE_TEXT_ChoseDestiny
-
-BattleTextList_4015E6:: @ 84015E6
- .2byte BATTLE_TEXT_BallBrokeOhNo
- .2byte BATTLE_TEXT_BallBrokeAppeared
- .2byte BATTLE_TEXT_BallBrokeAlmost
- .2byte BATTLE_TEXT_BallBrokeSoClose
-
-BattleTextList_4015EE:: @ 84015EE
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Sandstorm
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_SunStrong
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
-
-BattleTextList_40160E:: @ 840160E
- .2byte BATTLE_TEXT_LoafingAround
- .2byte BATTLE_TEXT_WontObey
- .2byte BATTLE_TEXT_TurnedAway
- .2byte BATTLE_TEXT_NotNotice
-
-BattleTextList_401616:: @ 8401616
- .2byte BATTLE_TEXT_CreptCloser
- .2byte BATTLE_TEXT_CantGetCloser
-
-BattleTextList_40161A:: @ 840161A
- .2byte BATTLE_TEXT_CuriousAbout
- .2byte BATTLE_TEXT_EnthralledBy
- .2byte BATTLE_TEXT_IgnoredThing
-
-BattleTextList_401620:: @ 8401620
- .2byte BATTLE_TEXT_CuredConfusion
- .2byte BATTLE_TEXT_CuredParalysis
- .2byte BATTLE_TEXT_CuredFreeze
- .2byte BATTLE_TEXT_CuredBurn
- .2byte BATTLE_TEXT_CuredPoison
- .2byte BATTLE_TEXT_CuredSleep
-
-BattleTextList_40162C:: @ 840162C
- .2byte BATTLE_TEXT_CuredStatus
- .2byte BATTLE_TEXT_NormalizedStatus
-
-BattleTextList_401630:: @ 8401630
- .2byte BATTLE_TEXT_PreventedBurn
- .2byte BATTLE_TEXT_PreventedOther2
- .2byte BATTLE_TEXT_NoEffectOn
-
-BattleTextList_401636:: @ 8401636
- .2byte BATTLE_TEXT_PreventedPara
- .2byte BATTLE_TEXT_PreventedOther2
- .2byte BATTLE_TEXT_NoEffectOn
-
-BattleTextList_40163C:: @ 840163C
- .2byte BATTLE_TEXT_PreventedPoison
- .2byte BATTLE_TEXT_PreventedOther2
- .2byte BATTLE_TEXT_NoEffectOn
-
-BattleTextList_401642:: @ 8401642
- .2byte BATTLE_TEXT_Obtained1
- .2byte BATTLE_TEXT_Obtained2
- .2byte BATTLE_TEXT_Obtained3
-
-BattleTextList_401648:: @ 8401648
- .2byte BATTLE_TEXT_RaisedFirePower
- .2byte BATTLE_TEXT_MadeIneffective
-
-gTrappingMoves:: @ 840164C
- .2byte BATTLE_TEXT_StopLearning
- .2byte BATTLE_TEXT_FellAsleep
- .2byte BATTLE_TEXT_SpeltHealthy
- .2byte BATTLE_TEXT_SubTookDamage
- .2byte BATTLE_TEXT_CoinScatter
- .2byte BATTLE_TEXT_SandTombTrapped
- .2byte 0xFFFF
-
- .align 2
-gUnknown_0840165C:: @ 840165C
- .4byte BattleText_HP
- .4byte BattleText_SpAtk
- .4byte BattleText_Attack
- .4byte BattleText_SpDef
- .4byte BattleText_Defense
- .4byte BattleStatText_Speed
-
- .align 2
-gUnknown_08401674:: @ 8401674
- .4byte BattleText_Normal
- .4byte BattleText_Fighting
- .4byte BattleText_Flying
- .4byte BattleText_Poison
- .4byte BattleText_Ground
- .4byte BattleText_Rock
- .4byte BattleText_Bug
- .4byte BattleText_Ghost
- .4byte BattleText_Steel
- .4byte BattleText_Typeless
- .4byte BattleText_Fire
- .4byte BattleText_Water
- .4byte BattleText_Grass
- .4byte BattleText_Electric
- .4byte BattleText_Psychic
- .4byte BattleText_Ice
- .4byte BattleText_Dragon
- .4byte BattleText_Dark
diff --git a/data-de/text/contest_strings.inc b/data-de/text/contest_strings.inc
index fd7c00e5c..19cfe330f 100644
--- a/data-de/text/contest_strings.inc
+++ b/data-de/text/contest_strings.inc
@@ -148,7 +148,7 @@ ContestString_DescStopExcitement: @ 83CADA1
.string "terung des Publikums.$"
.align 2
-gUnknown_083CADD4:: @ 83CADD4
+gContestEffectStrings:: @ 83CADD4
.4byte ContestString_DescHighlyAppealing
.4byte ContestString_DescStartled1
.4byte ContestString_DescGreatLock
diff --git a/data-de/text/credits.inc b/data-de/text/credits.inc
deleted file mode 100644
index 3b6119866..000000000
--- a/data-de/text/credits.inc
+++ /dev/null
@@ -1,975 +0,0 @@
-Text_Version_Ruby:
- .string "POKéMON RUBIN-EDITION$"
-Text_Version_Sapphire:
- .string "POKéMON SAPHIR-EDITION$"
-Category_Credits:
- .string "{PALETTE 9}Credits$"
-Category_ExecutiveDirector:
- .string "{PALETTE 9}Executive Director$"
-Category_Director:
- .string "{PALETTE 9}Director$"
-Category_ArtDirector:
- .string "{PALETTE 9}Art Director$"
-Category_BattleDirector:
- .string "{PALETTE 9}Battle Director$"
-Category_MainProgrammer:
- .string "{PALETTE 9}Main Programmer$"
-Category_BattleSystemProgrammer:
- .string "{PALETTE 9}Battle System Programmer$"
-Category_FieldSystemProgrammer:
- .string "{PALETTE 9}Field System Programmer$"
-Category_Programmers:
- .string "{PALETTE 9}Programmers$"
-Category_MainGraphicDesigner:
- .string "{PALETTE 9}Main Graphic Designer$"
-Category_POKeMONGraphicDesigners:
- .string "{PALETTE 9}POKéMON & Graphic Designers$"
-Category_POKeMONDesigners:
- .string "{PALETTE 9}POKéMON Designers$"
-Category_MusicComposition:
- .string "{PALETTE 9}Music Composition$"
-Category_SoundEffectsPOKeMONVoices:
- .string "{PALETTE 9}Sound Effects & POKéMON Voices$"
-Category_GameDesigners:
- .string "{PALETTE 9}Game Designers$"
-Category_PlotScenario:
- .string "{PALETTE 9}Plot Scenario$"
-Category_GameScenario:
- .string "{PALETTE 9}Game Scenario$"
-Category_ScriptDesigners:
- .string "{PALETTE 9}Script Designers$"
-Category_MapDesigners:
- .string "{PALETTE 9}Map Designers$"
-Category_MapDataDesigners:
- .string "{PALETTE 9}Map Data Designers$"
-Category_ParametricDesigners:
- .string "{PALETTE 9}Parametric Designers$"
-Category_POKeDEXText:
- .string "{PALETTE 9}POKéDEX Text$"
-Category_EnvironmentToolProgrammers:
- .string "{PALETTE 9}Environment & Tool Programmers$"
-Category_ProductTesting:
- .string "{PALETTE 9}Product Testing$"
-Category_SpecialThanks:
- .string "{PALETTE 9}Special Thanks$"
-Category_Coordinators:
- .string "{PALETTE 9}Coordinators$"
-Category_Producers:
- .string "{PALETTE 9}Producers$"
-Category_ExecutiveProducers:
- .string "{PALETTE 9}Executive Producers$"
-Category_InformationSupervisors:
- .string "{PALETTE 9}Information Supervisors$"
-Category_TaskManagers:
- .string "{PALETTE 9}Task Managers$"
-Category_BrailleCodeCheck:
- .string "{PALETTE 9}Braille Code Check$"
-Category_GermanVersionCoordinators:
- .string "{PALETTE 9}German Version Coordinators$"
-Category_Translators:
- .string "{PALETTE 9}Translators$"
-Category_ProductSupport:
- .string "{PALETTE 9}Product Support$"
-Category_Artwork:
- .string "{PALETTE 9}Artwork$"
-Category_TextEditor:
- .string "{PALETTE 9}Text Editor$"
-Category_NOEProductTesting:
- .string "{PALETTE 9}NOE Product Testing$"
-Category_GraphicDesigners:
- .string "{PALETTE 9}Graphic Designers$"
-Text_SatoshiTajiri:
- .string "Satoshi Tajiri$"
-Text_Masuda:
- .string "Junichi Masuda$"
-Text_Sugimori:
- .string "Ken Sugimori$"
-Text_Morimoto:
- .string "Shigeki Morimoto$"
-Text_TetsuyaWatanabe:
- .string "Tetsuya Watanabe$"
-Text_Sogabe:
- .string "Hisashi Sogabe$"
-Text_Tamada:
- .string "Sousuke Tamada$"
-Text_Mori:
- .string "Akito Mori$"
-Text_Kagaya:
- .string "Keita Kagaya$"
-Text_Matsuda:
- .string "Yoshinori Matsuda$"
-Text_HiroyukiNakamura:
- .string "Hiroyuki Nakamura$"
-Text_Taya:
- .string "Masao Taya$"
-Text_Nohara:
- .string "Satoshi Nohara$"
-Text_TomomichiOhta:
- .string "Tomomichi Ohta$"
-Text_Iwasawa:
- .string "Miyuki Iwasawa$"
-Text_TakenoriOhta:
- .string "Takenori Ohta$"
-Text_Yoshida:
- .string "Hironobu Yoshida$"
-Text_Fujiwara:
- .string "Motofumi Fujiwara$"
-Text_SatoshiOhta:
- .string "Satoshi Ohta$"
-Text_Iwashita:
- .string "Asuka Iwashita$"
-Text_Tomita:
- .string "Aimi Tomita$"
-Text_Unno:
- .string "Takao Unno$"
-Text_Eo:
- .string "Kanako Eo$"
-Text_Okutani:
- .string "Jun Okutani$"
-Text_Nishida:
- .string "Atsuko Nishida$"
-Text_Saito:
- .string "Muneo Saito$"
-Text_Yoshikawa:
- .string "Rena Yoshikawa$"
-Text_Ichinose:
- .string "Go Ichinose$"
-Text_Aoki:
- .string "Morikazu Aoki$"
-Text_Nishino:
- .string "Koji Nishino$"
-Text_Matsushima:
- .string "Kenji Matsushima$"
-Text_TetsujiOhta:
- .string "Tetsuji Ohta$"
-Text_Sato:
- .string "Hitomi Sato$"
-Text_Kawachimaru:
- .string "Takeshi Kawachimaru$"
-Text_Shimoyamada:
- .string "Teruyuki Shimoyamada$"
-Text_Ohmori:
- .string "Shigeru Ohmori$"
-Text_Takahashi:
- .string "Tadashi Takahashi$"
-Text_ToshinobuMatsumiya:
- .string "Toshinobu Matsumiya$"
-Text_Tomisawa:
- .string "Akihito Tomisawa$"
-Text_Enomoto:
- .string "Hiroki Enomoto$"
-Text_Terada:
- .string "Kazuyuki Terada$"
-Text_Sakurai:
- .string "Yuri Sakurai$"
-Text_Sagawa:
- .string "Hiromi Sagawa$"
-Text_Tominaga:
- .string "Kenji Tominaga$"
-Text_YoshioTajiri:
- .string "Yoshio Tajiri$"
-Text_Sasaki:
- .string "Teiko Sasaki$"
-Text_Hamano:
- .string "Sachiko Hamano$"
-Text_ChieMatsumiya:
- .string "Chie Matsumiya$"
-Text_Shinozaki:
- .string "Akiko Shinozaki$"
-Text_Fujii:
- .string "Atsuko Fujii$"
-Text_SuperMarioClub:
- .string "NCL Super Mario Club$"
-Text_Tada:
- .string "Atsushi Tada$"
-Text_Ohnishi:
- .string "Takahiro Ohnishi$"
-Text_Okamura:
- .string "Norihide Okamura$"
-Text_HiroNakamura:
- .string "Hiro Nakamura$"
-Text_Uesugi:
- .string "Hiroyuki Uesugi$"
-Text_Murakawa:
- .string "Teruki Murakawa$"
-Text_Kinashi:
- .string "Akira Kinashi$"
-Text_Takizawa:
- .string "Michiko Takizawa$"
-Text_Takada:
- .string "Makiko Takada$"
-Text_Kondo:
- .string "Takanao Kondo$"
-Text_Mashima:
- .string "Ai Mashima$"
-Text_Nomoto:
- .string "Gakuji Nomoto$"
-Text_Izushi:
- .string "Takehiro Izushi$"
-Text_Yamagami:
- .string "Hitoshi Yamagami$"
-Text_KyokoWatanabe:
- .string "Kyoko Watanabe$"
-Text_Nakano:
- .string "Takao Nakano$"
-Text_Jinnai:
- .string "Hiroyuki Jinnai$"
-Text_Tsuru:
- .string "Hiroaki Tsuru$"
-Text_Ishihara:
- .string "Tsunekaz Ishihara$"
-Text_Iwata:
- .string "Satoru Iwata$"
-Text_Suyama:
- .string "Kazuya Suyama$"
-Text_Mitsuhara:
- .string "Satoshi Mitsuhara$"
-Text_JapanBrailleLibrary:
- .string "Japan Braille Library$"
-Text_Komura:
- .string "Tomotaka Komura$"
-Text_Ohashi:
- .string "Mikiko Ohashi$"
-Text_Yamamoto:
- .string "Souichi Yamamoto$"
-Text_Funakoshi:
- .string "Masanori Funakoshi$"
-Text_Nakamichi:
- .string "Kimiko Nakamichi$"
-Text_Hara:
- .string "Daisuke Hara$"
-Text_Ford:
- .string "Sayoko Blodgett-Ford$"
-Text_Barlow:
- .string "Nicola Pratt-Barlow$"
-Text_Uyama:
- .string "Koji Uyama$"
-Text_EBU:
- .string "European Blind Union$"
-Text_Saeki:
- .string "Naoko Saeki$"
-Text_Sadahisa:
- .string "Kayo Sadahisa$"
-Text_Schafer:
- .string "Daniel Schäfers$"
-Text_Deimel:
- .string "Martina Deimel$"
-Text_Jahn:
- .string "Andrea Jähn$"
-Text_Victoria:
- .string "Ángel Victoria$"
-Text_Mawer:
- .string "Matthew Mawer$"
-Text_Danieli:
- .string "Alessio Danieli$"
-Text_Schnitzer:
- .string "Rudi Schnitzer$"
-Text_Pujos:
- .string "Gabriera Pujós$"
-Text_CreditsTerminator:
- .string "$"
-@ pointer table
-
-CreditsTerminator::
- credits_entry 0, Text_CreditsTerminator
-
-CreditsCredits::
- credits_entry 11, Category_Credits
-
-CreditsExecutiveDirector::
- credits_entry 8, Category_ExecutiveDirector
-
-CreditsDirector::
- credits_entry 12, Category_Director
-
-CreditsArtDirector::
- credits_entry 10, Category_ArtDirector
-
-CreditsBattleDirector::
- credits_entry 10, Category_BattleDirector
-
-CreditsMainProgrammer::
- credits_entry 10, Category_MainProgrammer
-
-CreditsBattleSystemProgrammer::
- credits_entry 8, Category_BattleSystemProgrammer
-
-CreditsFieldSystemProgrammer::
- credits_entry 7, Category_FieldSystemProgrammer
-
-CreditsProgrammers::
- credits_entry 12, Category_Programmers
-
-CreditsMainGraphicDesigner::
- credits_entry 7, Category_MainGraphicDesigner
-
-CreditsPOKeMONGraphicDesigners::
- credits_entry 6, Category_POKeMONGraphicDesigners
-
-CreditsPOKeMONDesigners::
- credits_entry 10, Category_POKeMONDesigners
-
-CreditsMusicComposition::
- credits_entry 13, Category_MusicComposition
-
-CreditsSoundEffectsPOKeMONVoices::
- credits_entry 4, Category_SoundEffectsPOKeMONVoices
-
-CreditsGameDesigners::
- credits_entry 11, Category_GameDesigners
-
-CreditsPlotScenario::
- credits_entry 11, Category_PlotScenario
-
-CreditsGameScenario::
- credits_entry 13, Category_GameScenario
-
-CreditsScriptDesigners::
- credits_entry 10, Category_ScriptDesigners
-
-CreditsMapDesigners::
- credits_entry 11, Category_MapDesigners
-
-CreditsMapDataDesigners::
- credits_entry 9, Category_MapDataDesigners
-
-CreditsParametricDesigners::
- credits_entry 9, Category_ParametricDesigners
-
-CreditsPOKeDEXText::
- credits_entry 11, Category_POKeDEXText
-
-CreditsEnvironmentToolProgrammers::
- credits_entry 6, Category_EnvironmentToolProgrammers
-
-CreditsProductTesting::
- credits_entry 11, Category_ProductTesting
-
-CreditsSpecialThanks::
- credits_entry 10, Category_SpecialThanks
-
-CreditsCoordinators::
- credits_entry 11, Category_Coordinators
-
-CreditsProducers::
- credits_entry 11, Category_Producers
-
-CreditsExecutiveProducers::
- credits_entry 7, Category_ExecutiveProducers
-
-CreditsInformationSupervisors::
- credits_entry 10, Category_InformationSupervisors
-
-CreditsTaskManagers::
- credits_entry 8, Category_TaskManagers
-
-CreditsBrailleCodeCheck::
- credits_entry 10, Category_BrailleCodeCheck
-
-CreditsSatoshiTajiri::
- credits_entry 11, Text_SatoshiTajiri
-
-CreditsMasuda::
- credits_entry 11, Text_Masuda
-
-CreditsSugimori::
- credits_entry 11, Text_Sugimori
-
-CreditsMorimoto::
- credits_entry 11, Text_Morimoto
-
-CreditsTetsuyaWatanabe::
- credits_entry 11, Text_TetsuyaWatanabe
-
-CreditsSogabe::
- credits_entry 11, Text_Sogabe
-
-CreditsTamada::
- credits_entry 11, Text_Tamada
-
-CreditsMori::
- credits_entry 11, Text_Mori
-
-CreditsKagaya::
- credits_entry 11, Text_Kagaya
-
-CreditsMatsuda::
- credits_entry 11, Text_Matsuda
-
-CreditsHiroyukiNakamura::
- credits_entry 11, Text_HiroyukiNakamura
-
-CreditsTaya::
- credits_entry 11, Text_Taya
-
-CreditsNohara::
- credits_entry 11, Text_Nohara
-
-CreditsTomomichiOhta::
- credits_entry 11, Text_TomomichiOhta
-
-CreditsIwasawa::
- credits_entry 11, Text_Iwasawa
-
-CreditsTakenoriOhta::
- credits_entry 11, Text_TakenoriOhta
-
-CreditsYoshida::
- credits_entry 11, Text_Yoshida
-
-CreditsFujiwara::
- credits_entry 11, Text_Fujiwara
-
-CreditsSatoshiOhta::
- credits_entry 11, Text_SatoshiOhta
-
-CreditsIwashita::
- credits_entry 11, Text_Iwashita
-
-CreditsTomita::
- credits_entry 11, Text_Tomita
-
-CreditsUnno::
- credits_entry 11, Text_Unno
-
-CreditsEo::
- credits_entry 11, Text_Eo
-
-CreditsOkutani::
- credits_entry 11, Text_Okutani
-
-CreditsNishida::
- credits_entry 11, Text_Nishida
-
-CreditsSaito::
- credits_entry 11, Text_Saito
-
-CreditsYoshikawa::
- credits_entry 11, Text_Yoshikawa
-
-CreditsIchinose::
- credits_entry 11, Text_Ichinose
-
-CreditsAoki::
- credits_entry 11, Text_Aoki
-
-CreditsNishino::
- credits_entry 11, Text_Nishino
-
-CreditsMatsushima::
- credits_entry 11, Text_Matsushima
-
-CreditsTetsujiOhta::
- credits_entry 11, Text_TetsujiOhta
-
-CreditsSato::
- credits_entry 11, Text_Sato
-
-CreditsKawachimaru::
- credits_entry 11, Text_Kawachimaru
-
-CreditsShimoyamada::
- credits_entry 11, Text_Shimoyamada
-
-CreditsOhmori::
- credits_entry 11, Text_Ohmori
-
-CreditsTakahashi::
- credits_entry 11, Text_Takahashi
-
-CreditsToshinobuMatsumiya::
- credits_entry 11, Text_ToshinobuMatsumiya
-
-CreditsTomisawa::
- credits_entry 11, Text_Tomisawa
-
-CreditsEnomoto::
- credits_entry 11, Text_Enomoto
-
-CreditsTerada::
- credits_entry 11, Text_Terada
-
-CreditsSakurai::
- credits_entry 11, Text_Sakurai
-
-CreditsSagawa::
- credits_entry 11, Text_Sagawa
-
-CreditsTominaga::
- credits_entry 11, Text_Tominaga
-
-CreditsYoshioTajiri:
- credits_entry 11, Text_YoshioTajiri
-
-CreditsSasaki::
- credits_entry 11, Text_Sasaki
-
-CreditsHamano::
- credits_entry 11, Text_Hamano
-
-CreditsChieMatsumiya::
- credits_entry 11, Text_ChieMatsumiya
-
-CreditsShinozaki::
- credits_entry 11, Text_Shinozaki
-
-CreditsFujii::
- credits_entry 11, Text_Fujii
-
-CreditsSuperMarioClub::
- credits_entry 11, Text_SuperMarioClub
-
-CreditsTada::
- credits_entry 11, Text_Tada
-
-CreditsOhnishi::
- credits_entry 11, Text_Ohnishi
-
-CreditsOkamura::
- credits_entry 11, Text_Okamura
-
-CreditsHiroNakamura::
- credits_entry 11, Text_HiroNakamura
-
-CreditsUesugi::
- credits_entry 11, Text_Uesugi
-
-CreditsMurakawa::
- credits_entry 11, Text_Murakawa
-
-CreditsKinashi::
- credits_entry 11, Text_Kinashi
-
-CreditsTakizawa::
- credits_entry 11, Text_Takizawa
-
-CreditsTakada::
- credits_entry 11, Text_Takada
-
-CreditsKondo::
- credits_entry 11, Text_Kondo
-
-CreditsMashima::
- credits_entry 11, Text_Mashima
-
-CreditsNomoto::
- credits_entry 11, Text_Nomoto
-
-CreditsIzushi::
- credits_entry 11, Text_Izushi
-
-CreditsYamagami::
- credits_entry 11, Text_Yamagami
-
-CreditsKyokoWatanabe::
- credits_entry 11, Text_KyokoWatanabe
-
-CreditsNakano::
- credits_entry 11, Text_Nakano
-
-CreditsJinnai::
- credits_entry 11, Text_Jinnai
-
-CreditsTsuru::
- credits_entry 11, Text_Tsuru
-
-CreditsIshihara::
- credits_entry 11, Text_Ishihara
-
-CreditsIwata::
- credits_entry 11, Text_Iwata
-
-CreditsSuyama::
- credits_entry 11, Text_Suyama
-
-CreditsMitsuhara::
- credits_entry 11, Text_Mitsuhara
-
-CreditsJapanBrailleLibrary::
- credits_entry 9, Text_JapanBrailleLibrary
-
-CreditsKomura::
- credits_entry 11, Text_Komura
-
-CreditsOhashi::
- credits_entry 11, Text_Ohashi
-
-CreditsTranslators::
- credits_entry 0, Category_Translators
-
-CreditsProductSupport::
- credits_entry 0, Category_ProductSupport
-
-CreditsArtwork::
- credits_entry 0, Category_Artwork
-
-CreditsTextEditor::
- credits_entry 0, Category_TextEditor
-
-CreditsGraphicDesigners::
- credits_entry 0, Category_GraphicDesigners
-
-CreditsYamamoto::
- credits_entry 0, Text_Yamamoto
-
-CreditsFunakoshi::
- credits_entry 0, Text_Funakoshi
-
-CreditsNakamichi::
- credits_entry 0, Text_Nakamichi
-
-CreditsHara::
- credits_entry 0, Text_Hara
-
-CreditsFord::
- credits_entry 0, Text_Ford
-
-CreditsBarlow::
- credits_entry 0, Text_Barlow
-
-CreditsUyama::
- credits_entry 0, Text_Uyama
-
-CreditsEBU::
- credits_entry 0, Text_EBU
-
-CreditsVersion::
- .ifdef SAPPHIRE
- credits_entry 0, Text_Version_Sapphire
- .else
- credits_entry 0, Text_Version_Ruby
- .endif
-
-CreditsNOEProductTesting::
- credits_entry 0, Category_NOEProductTesting
-
-CreditsSaeki::
- credits_entry 0, Text_Saeki
-
-CreditsSadahisa::
- credits_entry 0, Text_Sadahisa
-
-CreditsGermanVersionCoordinators::
- credits_entry 0, Category_GermanVersionCoordinators
-
-CreditsSchafer::
- credits_entry 0, Text_Schafer
-
-CreditsDeimel::
- credits_entry 0, Text_Deimel
-
-CreditsJahn::
- credits_entry 0, Text_Jahn
-
-CreditsVictoria::
- credits_entry 0, Text_Victoria
-
-CreditsMawer::
- credits_entry 0, Text_Mawer
-
-CreditsDanieli::
- credits_entry 0, Text_Danieli
-
-CreditsSchnitzer::
- credits_entry 0, Text_Schnitzer
-
-CreditsPujos::
- credits_entry 0, Text_Pujos
-
-@ pointer table to credits entries
-
- .align 2
-gCreditsEntryPointerTable:: @ 840C5F0
- .4byte CreditsTerminator
- .4byte CreditsVersion
- .4byte CreditsCredits
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsDirector
- .4byte CreditsMasuda
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsArtDirector
- .4byte CreditsSugimori
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsBattleDirector
- .4byte CreditsMorimoto
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsMainProgrammer
- .4byte CreditsTetsuyaWatanabe
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsBattleSystemProgrammer
- .4byte CreditsSogabe
- .4byte CreditsFieldSystemProgrammer
- .4byte CreditsTamada
- .4byte CreditsTerminator
-
- .4byte CreditsProgrammers
- .4byte CreditsMori
- .4byte CreditsKagaya
- .4byte CreditsMatsuda
- .4byte CreditsTerminator
-
- .4byte CreditsProgrammers
- .4byte CreditsHiroyukiNakamura
- .4byte CreditsTaya
- .4byte CreditsNohara
- .4byte CreditsTerminator
-
- .4byte CreditsProgrammers
- .4byte CreditsTomomichiOhta
- .4byte CreditsIwasawa
- .4byte CreditsTakenoriOhta
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsMainGraphicDesigner
- .4byte CreditsYoshida
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsPOKeMONGraphicDesigners
- .4byte CreditsSugimori
- .4byte CreditsYoshida
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsPOKeMONGraphicDesigners
- .4byte CreditsFujiwara
- .4byte CreditsSatoshiOhta
- .4byte CreditsIwashita
- .4byte CreditsTerminator
-
- .4byte CreditsPOKeMONGraphicDesigners
- .4byte CreditsTomita
- .4byte CreditsUnno
- .4byte CreditsEo
- .4byte CreditsTerminator
-
- .4byte CreditsPOKeMONDesigners
- .4byte CreditsMorimoto
- .4byte CreditsOkutani
- .4byte CreditsNishida
- .4byte CreditsTerminator
-
- .4byte CreditsPOKeMONDesigners
- .4byte CreditsSaito
- .4byte CreditsYoshikawa
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsMusicComposition
- .4byte CreditsIchinose
- .4byte CreditsAoki
- .4byte CreditsMasuda
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsSoundEffectsPOKeMONVoices
- .4byte CreditsAoki
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsGameDesigners
- .4byte CreditsMasuda
- .4byte CreditsMorimoto
- .4byte CreditsNishino
- .4byte CreditsTerminator
-
- .4byte CreditsGameDesigners
- .4byte CreditsMatsushima
- .4byte CreditsTetsujiOhta
- .4byte CreditsSato
- .4byte CreditsKawachimaru
-
- .4byte CreditsGameDesigners
- .4byte CreditsShimoyamada
- .4byte CreditsOhmori
- .4byte CreditsTakahashi
- .4byte CreditsTerminator
-
- .4byte CreditsPlotScenario
- .4byte CreditsMasuda
- .4byte CreditsTomisawa
- .4byte CreditsNishino
- .4byte CreditsTerminator
-
- .4byte CreditsGameScenario
- .4byte CreditsToshinobuMatsumiya
- .4byte CreditsTomisawa
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsScriptDesigners
- .4byte CreditsNohara
- .4byte CreditsTetsujiOhta
- .4byte CreditsTomomichiOhta
- .4byte CreditsTerminator
-
- .4byte CreditsMapDesigners
- .4byte CreditsOhmori
- .4byte CreditsTetsujiOhta
- .4byte CreditsNishino
- .4byte CreditsTerminator
-
- .4byte CreditsMapDataDesigners
- .4byte CreditsTetsujiOhta
- .4byte CreditsTakahashi
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsParametricDesigners
- .4byte CreditsNishino
- .4byte CreditsMorimoto
- .4byte CreditsTetsujiOhta
- .4byte CreditsShimoyamada
-
- .4byte CreditsTerminator
- .4byte CreditsPOKeDEXText
- .4byte CreditsMatsushima
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsEnvironmentToolProgrammers
- .4byte CreditsSogabe
- .4byte CreditsTamada
- .4byte CreditsHiroyukiNakamura
- .4byte CreditsMori
-
- .4byte CreditsProductTesting
- .4byte CreditsSuperMarioClub
- .4byte CreditsTada
- .4byte CreditsOhnishi
- .4byte CreditsOkamura
-
- .4byte CreditsSpecialThanks
- .4byte CreditsTominaga
- .4byte CreditsYoshioTajiri
- .4byte CreditsSasaki
- .4byte CreditsTerminator
-
- .4byte CreditsSpecialThanks
- .4byte CreditsHamano
- .4byte CreditsChieMatsumiya
- .4byte CreditsShinozaki
- .4byte CreditsFujii
-
- .4byte CreditsSpecialThanks
- .4byte CreditsSuyama
- .4byte CreditsMitsuhara
- .4byte CreditsKomura
- .4byte CreditsOhashi
-
- .4byte CreditsSpecialThanks
- .4byte CreditsTakizawa
- .4byte CreditsTakada
- .4byte CreditsKondo
- .4byte CreditsMashima
-
- .4byte CreditsInformationSupervisors
- .4byte CreditsEnomoto
- .4byte CreditsTerada
- .4byte CreditsSakurai
- .4byte CreditsSagawa
-
- .4byte CreditsCoordinators
- .4byte CreditsKyokoWatanabe
- .4byte CreditsNakano
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTaskManagers
- .4byte CreditsYamagami
- .4byte CreditsNomoto
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsProducers
- .4byte CreditsJinnai
- .4byte CreditsIzushi
- .4byte CreditsTsuru
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsExecutiveDirector
- .4byte CreditsSatoshiTajiri
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsExecutiveProducers
- .4byte CreditsIwata
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsExecutiveProducers
- .4byte CreditsIshihara
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsGermanVersionCoordinators
- .4byte CreditsUesugi
- .4byte CreditsSadahisa
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTranslators
- .4byte CreditsSchafer
- .4byte CreditsDeimel
- .4byte CreditsJahn
- .4byte CreditsTerminator
-
- .4byte CreditsProgrammers
- .4byte CreditsMurakawa
- .4byte CreditsYamamoto
- .4byte CreditsKinashi
- .4byte CreditsTerminator
-
- .4byte CreditsGraphicDesigners
- .4byte CreditsYamamoto
- .4byte CreditsKinashi
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsProductSupport
- .4byte CreditsNakamichi
- .4byte CreditsSaeki
- .4byte CreditsHara
- .4byte CreditsTerminator
-
- .4byte CreditsNOEProductTesting
- .4byte CreditsVictoria
- .4byte CreditsMawer
- .4byte CreditsDanieli
- .4byte CreditsSchnitzer
-
- .4byte CreditsTerminator
- .4byte CreditsBrailleCodeCheck
- .4byte CreditsEBU
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsSpecialThanks
- .4byte CreditsHiroNakamura
- .4byte CreditsFord
- .4byte CreditsBarlow
- .4byte CreditsTerminator
-
- .4byte CreditsSpecialThanks
- .4byte CreditsUyama
- .4byte CreditsPujos
- .4byte CreditsTerminator
- .4byte CreditsTerminator
diff --git a/data-de/text/easy_chat/words_by_letter.inc b/data-de/text/easy_chat/words_by_letter.inc
index c8fd2fd61..4850009bb 100644
--- a/data-de/text/easy_chat/words_by_letter.inc
+++ b/data-de/text/easy_chat/words_by_letter.inc
@@ -1,1897 +1,1897 @@
.align 1
gEasyChatWordsAlphabetized:: @ 83DE138
gEasyChatWordsByLetter_Others:
- ec_word EXCL
- ec_word EXCL_EXCL
- ec_word DASH
- ec_word DASH_DASH_DASH
- ec_word ELLIPSIS
- ec_word ELLIPSIS_EXCL
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- ec_word QUES
- ec_word QUES_EXCL
+ .2byte EC_WORD_EXCL
+ .2byte EC_WORD_EXCL_EXCL
+ .2byte EC_WORD_DASH
+ .2byte EC_WORD_DASH_DASH_DASH
+ .2byte EC_WORD_ELLIPSIS
+ .2byte EC_WORD_ELLIPSIS_EXCL
+ .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS
+ .2byte EC_WORD_QUES
+ .2byte EC_WORD_QUES_EXCL
gEasyChatWordsByLetter_A:
- ec_pokemon1 HUNTAIL
- ec_word ARRGH
- ec_word ADVENTURE
- ec_word BUT
- ec_move2 DESTINY_BOND
- ec_move2 PERISH_SONG
- ec_word REJECT
- ec_word DISLIKES
- ec_duplicates 2
- ec_pokemon1 ABRA
- ec_pokemon2 ABRA
- ec_move2 KNOCK_OFF
- ec_pokemon1 ABSOL
- ec_move1 ABSORB
- ec_word PREPOSTEROUS
- ec_word ABSENT
- ec_word COME_OVER
- ec_word KEEN_EYE
- ec_word GUTS
- ec_move2 AERIAL_ACE
- ec_pokemon2 AERODACTYL
- ec_move1 AGILITY
- ec_word UM
- ec_word AHAHA
- ec_word LIKE
- ec_word AIYEEH
- ec_word ACCEPT
- ec_word ALL
- ec_word ALONE
- ec_word EVERY
- ec_pokemon2 HAUNTER
- ec_word THAN
- ec_word AS_IF
- ec_word ALSO
- ec_word ALT_COLOR
- ec_pokemon1 ALTARIA
- ec_word AGE
- ec_word ANOTHER
- ec_move2 AMNESIA
- ec_pokemon2 OMANYTE
- ec_pokemon2 OMASTAR
- ec_move1 SIGNAL_BEAM
- ec_pokemon2 AMPHAROS
- ec_word AMUSING
- ec_word ON
- ec_word OTHER
- ec_word ELSE
- ec_word BEGINNING
- ec_word BRAG
- ec_move1 SWAGGER
- ec_word FISHING
- ec_word ATTACK
- ec_word WIMPY
- ec_word RUN_AWAY
- ec_word ANIME
- ec_word CUTENESS
- ec_word CUTE
- ec_pokemon1 ANORITH
- ec_move1 ANCIENT_POWER
- ec_move2 ATTRACT
- ec_word WATER_VEIL
- ec_move2 WATER_GUN
- ec_pokemon2 VAPOREON
- ec_move2 WATER_PULSE
- ec_word WORK
- ec_word WORKING
- ec_pokemon2 ARBOK
- ec_word ANGERS
- ec_word URGH
- ec_pokemon2 ARIADOS
- ec_pokemon2 ARCANINE
- ec_pokemon2 ARTICUNO
- ec_pokemon1 ARMALDO
- ec_move2 ARM_THRUST
- ec_move1 AROMATHERAPY
- ec_word WAY
- ec_word MOVE
- ec_word UGLY
- ec_word OI
- ec_word TOO
- ec_word OUT
- ec_move2 RECYCLE
- ec_word GIVE_UP
- ec_move1 UPROAR
- ec_word HASSLE
- ec_word WAKE_UP
- ec_move1 AURORA_BEAM
- ec_word OFF
- ec_move1 ENDURE
- ec_word APPEAL
- ec_word LOOK
- ec_word OUTSIDE
- ec_move1 DISABLE
- ec_pokemon2 CLOYSTER
- ec_word ARENA_TRAP
- ec_word AVANT_GARDE
- ec_word YES_SIR_EXCL
- ec_duplicates 2
- ec_pokemon1 AZUMARILL
- ec_pokemon2 AZUMARILL
- ec_pokemon1 AZURILL
+ .2byte EC_POKEMON(HUNTAIL)
+ .2byte EC_WORD_ARRGH
+ .2byte EC_WORD_ADVENTURE
+ .2byte EC_WORD_BUT
+ .2byte EC_MOVE2(DESTINY_BOND)
+ .2byte EC_MOVE2(PERISH_SONG)
+ .2byte EC_WORD_REJECT
+ .2byte EC_WORD_DISLIKES
+ ec_duplicates 2
+ .2byte EC_POKEMON(ABRA)
+ .2byte EC_POKEMON2(ABRA)
+ .2byte EC_MOVE2(KNOCK_OFF)
+ .2byte EC_POKEMON(ABSOL)
+ .2byte EC_MOVE(ABSORB)
+ .2byte EC_WORD_PREPOSTEROUS
+ .2byte EC_WORD_ABSENT
+ .2byte EC_WORD_COME_OVER
+ .2byte EC_WORD_KEEN_EYE
+ .2byte EC_WORD_GUTS
+ .2byte EC_MOVE2(AERIAL_ACE)
+ .2byte EC_POKEMON2(AERODACTYL)
+ .2byte EC_MOVE(AGILITY)
+ .2byte EC_WORD_UM
+ .2byte EC_WORD_AHAHA
+ .2byte EC_WORD_LIKE
+ .2byte EC_WORD_AIYEEH
+ .2byte EC_WORD_ACCEPT
+ .2byte EC_WORD_ALL
+ .2byte EC_WORD_ALONE
+ .2byte EC_WORD_EVERY
+ .2byte EC_POKEMON2(HAUNTER)
+ .2byte EC_WORD_THAN
+ .2byte EC_WORD_AS_IF
+ .2byte EC_WORD_ALSO
+ .2byte EC_WORD_ALT_COLOR
+ .2byte EC_POKEMON(ALTARIA)
+ .2byte EC_WORD_AGE
+ .2byte EC_WORD_ANOTHER
+ .2byte EC_MOVE2(AMNESIA)
+ .2byte EC_POKEMON2(OMANYTE)
+ .2byte EC_POKEMON2(OMASTAR)
+ .2byte EC_MOVE(SIGNAL_BEAM)
+ .2byte EC_POKEMON2(AMPHAROS)
+ .2byte EC_WORD_AMUSING
+ .2byte EC_WORD_ON
+ .2byte EC_WORD_OTHER
+ .2byte EC_WORD_ELSE
+ .2byte EC_WORD_BEGINNING
+ .2byte EC_WORD_BRAG
+ .2byte EC_MOVE(SWAGGER)
+ .2byte EC_WORD_FISHING
+ .2byte EC_WORD_ATTACK
+ .2byte EC_WORD_WIMPY
+ .2byte EC_WORD_RUN_AWAY
+ .2byte EC_WORD_ANIME
+ .2byte EC_WORD_CUTENESS
+ .2byte EC_WORD_CUTE
+ .2byte EC_POKEMON(ANORITH)
+ .2byte EC_MOVE(ANCIENT_POWER)
+ .2byte EC_MOVE2(ATTRACT)
+ .2byte EC_WORD_WATER_VEIL
+ .2byte EC_MOVE2(WATER_GUN)
+ .2byte EC_POKEMON2(VAPOREON)
+ .2byte EC_MOVE2(WATER_PULSE)
+ .2byte EC_WORD_WORK
+ .2byte EC_WORD_WORKING
+ .2byte EC_POKEMON2(ARBOK)
+ .2byte EC_WORD_ANGERS
+ .2byte EC_WORD_URGH
+ .2byte EC_POKEMON2(ARIADOS)
+ .2byte EC_POKEMON2(ARCANINE)
+ .2byte EC_POKEMON2(ARTICUNO)
+ .2byte EC_POKEMON(ARMALDO)
+ .2byte EC_MOVE2(ARM_THRUST)
+ .2byte EC_MOVE(AROMATHERAPY)
+ .2byte EC_WORD_WAY
+ .2byte EC_WORD_MOVE
+ .2byte EC_WORD_UGLY
+ .2byte EC_WORD_OI
+ .2byte EC_WORD_TOO
+ .2byte EC_WORD_OUT
+ .2byte EC_MOVE2(RECYCLE)
+ .2byte EC_WORD_GIVE_UP
+ .2byte EC_MOVE(UPROAR)
+ .2byte EC_WORD_HASSLE
+ .2byte EC_WORD_WAKE_UP
+ .2byte EC_MOVE(AURORA_BEAM)
+ .2byte EC_WORD_OFF
+ .2byte EC_MOVE(ENDURE)
+ .2byte EC_WORD_APPEAL
+ .2byte EC_WORD_LOOK
+ .2byte EC_WORD_OUTSIDE
+ .2byte EC_MOVE(DISABLE)
+ .2byte EC_POKEMON2(CLOYSTER)
+ .2byte EC_WORD_ARENA_TRAP
+ .2byte EC_WORD_AVANT_GARDE
+ .2byte EC_WORD_YES_SIR_EXCL
+ ec_duplicates 2
+ .2byte EC_POKEMON(AZUMARILL)
+ .2byte EC_POKEMON2(AZUMARILL)
+ .2byte EC_POKEMON(AZURILL)
gEasyChatWordsByLetter_B:
- ec_word BABY
- ec_word STAY_AT_HOME
- ec_word BATH
- ec_word SOON
- ec_pokemon2 QWILFISH
- ec_word BALL
- ec_word SHAKE
- ec_word RIBBON
- ec_pokemon1 BANETTE
- ec_move2 BARRIER
- ec_pokemon1 FEEBAS
- ec_move2 BELLY_DRUM
- ec_move2 COTTON_SPORE
- ec_word INTIMIDATE
- ec_word BERRY
- ec_word EXCITE
- ec_move2 IMPRISON
- ec_word AT
- ec_word NEARLY
- ec_word GET
- ec_word GETS
- ec_word RESUSCITATE
- ec_word READY
- ec_word BUSY
- ec_word VIEWING
- ec_word FAINT
- ec_word DEFEATED
- ec_word OWN
- ec_word BETTER
- ec_word BEST
- ec_word NIGHTTIME
- ec_move2 COVET
- ec_pokemon2 BEEDRILL
- ec_word UNTIL
- ec_word MEET_YOU
- ec_word SEE_YA
- ec_pokemon2 VENUSAUR
- ec_pokemon2 IVYSAUR
- ec_pokemon2 BULBASAUR
- ec_move1 BITE
- ec_word ARE
- ec_word PLEASE
- ec_move2 SWEET_KISS
- ec_pokemon1 NUZLEAF
- ec_move2 PETAL_DANCE
- ec_move2 FLASH
- ec_pokemon2 JOLTEON
- ec_word LIGHTNINGROD
- ec_move2 ZAP_CANNON
- ec_move2 BLIZZARD
- ec_word NITWIT
- ec_word JUST
- ec_move1 BUBBLE
- ec_move2 BUBBLE_BEAM
- ec_duplicates 2
- ec_pokemon1 BELLOSSOM
- ec_pokemon2 BELLOSSOM
- ec_word FLOWERS
- ec_move1 LEECH_LIFE
- ec_pokemon2 VENONAT
- ec_word GROUND
- ec_move2 TAKE_DOWN
- ec_move1 SAFEGUARD
- ec_move2 BODY_SLAM
- ec_move2 DRILL_PECK
- ec_pokemon2 DELIBIRD
- ec_word NEED
- ec_word BOARD
- ec_word LETTER
- ec_word BROTHER
- ec_word LOL
- ec_move2 ROAR
- ec_pokemon1 SALAMENCE
- ec_word BOOK
- ec_word STAGE
- ec_pokemon1 SLAKOTH
+ .2byte EC_WORD_BABY
+ .2byte EC_WORD_STAY_AT_HOME
+ .2byte EC_WORD_BATH
+ .2byte EC_WORD_SOON
+ .2byte EC_POKEMON2(QWILFISH)
+ .2byte EC_WORD_BALL
+ .2byte EC_WORD_SHAKE
+ .2byte EC_WORD_RIBBON
+ .2byte EC_POKEMON(BANETTE)
+ .2byte EC_MOVE2(BARRIER)
+ .2byte EC_POKEMON(FEEBAS)
+ .2byte EC_MOVE2(BELLY_DRUM)
+ .2byte EC_MOVE2(COTTON_SPORE)
+ .2byte EC_WORD_INTIMIDATE
+ .2byte EC_WORD_BERRY
+ .2byte EC_WORD_EXCITE
+ .2byte EC_MOVE2(IMPRISON)
+ .2byte EC_WORD_AT
+ .2byte EC_WORD_NEARLY
+ .2byte EC_WORD_GET
+ .2byte EC_WORD_GETS
+ .2byte EC_WORD_RESUSCITATE
+ .2byte EC_WORD_READY
+ .2byte EC_WORD_BUSY
+ .2byte EC_WORD_VIEWING
+ .2byte EC_WORD_FAINT
+ .2byte EC_WORD_DEFEATED
+ .2byte EC_WORD_OWN
+ .2byte EC_WORD_BETTER
+ .2byte EC_WORD_BEST
+ .2byte EC_WORD_NIGHTTIME
+ .2byte EC_MOVE2(COVET)
+ .2byte EC_POKEMON2(BEEDRILL)
+ .2byte EC_WORD_UNTIL
+ .2byte EC_WORD_MEET_YOU
+ .2byte EC_WORD_SEE_YA
+ .2byte EC_POKEMON2(VENUSAUR)
+ .2byte EC_POKEMON2(IVYSAUR)
+ .2byte EC_POKEMON2(BULBASAUR)
+ .2byte EC_MOVE(BITE)
+ .2byte EC_WORD_ARE
+ .2byte EC_WORD_PLEASE
+ .2byte EC_MOVE2(SWEET_KISS)
+ .2byte EC_POKEMON(NUZLEAF)
+ .2byte EC_MOVE2(PETAL_DANCE)
+ .2byte EC_MOVE2(FLASH)
+ .2byte EC_POKEMON2(JOLTEON)
+ .2byte EC_WORD_LIGHTNINGROD
+ .2byte EC_MOVE2(ZAP_CANNON)
+ .2byte EC_MOVE2(BLIZZARD)
+ .2byte EC_WORD_NITWIT
+ .2byte EC_WORD_JUST
+ .2byte EC_MOVE(BUBBLE)
+ .2byte EC_MOVE2(BUBBLE_BEAM)
+ ec_duplicates 2
+ .2byte EC_POKEMON(BELLOSSOM)
+ .2byte EC_POKEMON2(BELLOSSOM)
+ .2byte EC_WORD_FLOWERS
+ .2byte EC_MOVE(LEECH_LIFE)
+ .2byte EC_POKEMON2(VENONAT)
+ .2byte EC_WORD_GROUND
+ .2byte EC_MOVE2(TAKE_DOWN)
+ .2byte EC_MOVE(SAFEGUARD)
+ .2byte EC_MOVE2(BODY_SLAM)
+ .2byte EC_MOVE2(DRILL_PECK)
+ .2byte EC_POKEMON2(DELIBIRD)
+ .2byte EC_WORD_NEED
+ .2byte EC_WORD_BOARD
+ .2byte EC_WORD_LETTER
+ .2byte EC_WORD_BROTHER
+ .2byte EC_WORD_LOL
+ .2byte EC_MOVE2(ROAR)
+ .2byte EC_POKEMON(SALAMENCE)
+ .2byte EC_WORD_BOOK
+ .2byte EC_WORD_STAGE
+ .2byte EC_POKEMON(SLAKOTH)
gEasyChatWordsByLetter_C:
- ec_pokemon1 NUMEL
- ec_pokemon1 CAMERUPT
- ec_pokemon2 CELEBI
- ec_word CENTER
- ec_pokemon2 CHANSEY
- ec_move1 CHARM
- ec_word CUTE_CHARM
- ec_word CHLOROPHYLL
- ec_word COMICS
- ec_word COOL
- ec_word COOLNESS
- ec_duplicates 2
- ec_pokemon1 CORSOLA
- ec_pokemon2 CORSOLA
+ .2byte EC_POKEMON(NUMEL)
+ .2byte EC_POKEMON(CAMERUPT)
+ .2byte EC_POKEMON2(CELEBI)
+ .2byte EC_WORD_CENTER
+ .2byte EC_POKEMON2(CHANSEY)
+ .2byte EC_MOVE(CHARM)
+ .2byte EC_WORD_CUTE_CHARM
+ .2byte EC_WORD_CHLOROPHYLL
+ .2byte EC_WORD_COMICS
+ .2byte EC_WORD_COOL
+ .2byte EC_WORD_COOLNESS
+ ec_duplicates 2
+ .2byte EC_POKEMON(CORSOLA)
+ .2byte EC_POKEMON2(CORSOLA)
gEasyChatWordsByLetter_D:
- ec_word THERE
- ec_word OLDEN
- ec_word LADY
- ec_pokemon2 STANTLER
- ec_word MISS
- ec_word THANKS
- ec_word THANK_YOU
- ec_word THAT
- ec_word IT_S
- ec_word THIS_IS_IT_EXCL
- ec_word THAT_S_IT_EXCL
- ec_word AM
- ec_word THAT_WAS
- ec_move2 FEATHER_DANCE
- ec_word SON
- ec_word YOURS
- ec_word YOUR
- ec_move2 SUBSTITUTE
- ec_word MODE
- ec_word THINKS
- ec_pokemon1 DEOXYS
- ec_word THE
- ec_word DISASTER
- ec_word DESIGN
- ec_pokemon2 TYRANITAR
- ec_word BABE
- ec_word ABSOLUTELY
- ec_word TUESDAY
- ec_word THIS
- ec_word THESE
- ec_word THESE_WERE
- ec_pokemon2 DIGLETT
- ec_pokemon2 DUGTRIO
- ec_word DIGITAL
- ec_word THING
- ec_pokemon2 DITTO
- ec_duplicates 2
- ec_pokemon1 DODRIO
- ec_pokemon2 DODRIO
- ec_duplicates 2
- ec_pokemon1 DODUO
- ec_pokemon2 DODUO
- ec_move1 THUNDER
- ec_move1 THUNDERBOLT
- ec_move1 THUNDER_PUNCH
- ec_move2 THUNDER_SHOCK
- ec_word THURSDAY
- ec_move2 THUNDER_WAVE
- ec_duplicates 2
- ec_pokemon1 DONPHAN
- ec_pokemon2 DONPHAN
- ec_move2 DOUBLE_KICK
- ec_move1 DOUBLE_TEAM
- ec_move2 SPIKE_CANNON
- ec_word OBLIVIOUS
- ec_word DRAGON
- ec_move2 DRAGON_CLAW
- ec_move2 DRAGON_DANCE
- ec_move2 DRAGON_RAGE
- ec_pokemon2 DRAGONAIR
- ec_pokemon2 DRAGONITE
- ec_pokemon1 SHELGON
- ec_pokemon2 DRATINI
- ec_move2 TRIPLE_KICK
- ec_move1 FLAIL
- ec_word YOU
- ec_word YOU_RE
- ec_word I_CHOOSE_YOU
- ec_word YOU_VE
- ec_word BATTLE_TOWER
- ec_duplicates 2
- ec_pokemon1 GLOOM
- ec_pokemon2 GLOOM
- ec_word UPBEAT
- ec_word STENCH
- ec_pokemon2 DUNSPARCE
- ec_move1 HAZE
- ec_move2 TWINEEDLE
- ec_move1 DOUBLE_SLAP
- ec_move1 BRICK_BREAK
- ec_word OKAY
- ec_word DROUGHT
+ .2byte EC_WORD_THERE
+ .2byte EC_WORD_OLDEN
+ .2byte EC_WORD_LADY
+ .2byte EC_POKEMON2(STANTLER)
+ .2byte EC_WORD_MISS
+ .2byte EC_WORD_THANKS
+ .2byte EC_WORD_THANK_YOU
+ .2byte EC_WORD_THAT
+ .2byte EC_WORD_IT_S
+ .2byte EC_WORD_THIS_IS_IT_EXCL
+ .2byte EC_WORD_THAT_S_IT_EXCL
+ .2byte EC_WORD_AM
+ .2byte EC_WORD_THAT_WAS
+ .2byte EC_MOVE2(FEATHER_DANCE)
+ .2byte EC_WORD_SON
+ .2byte EC_WORD_YOURS
+ .2byte EC_WORD_YOUR
+ .2byte EC_MOVE2(SUBSTITUTE)
+ .2byte EC_WORD_MODE
+ .2byte EC_WORD_THINKS
+ .2byte EC_POKEMON(DEOXYS)
+ .2byte EC_WORD_THE
+ .2byte EC_WORD_DISASTER
+ .2byte EC_WORD_DESIGN
+ .2byte EC_POKEMON2(TYRANITAR)
+ .2byte EC_WORD_BABE
+ .2byte EC_WORD_ABSOLUTELY
+ .2byte EC_WORD_TUESDAY
+ .2byte EC_WORD_THIS
+ .2byte EC_WORD_THESE
+ .2byte EC_WORD_THESE_WERE
+ .2byte EC_POKEMON2(DIGLETT)
+ .2byte EC_POKEMON2(DUGTRIO)
+ .2byte EC_WORD_DIGITAL
+ .2byte EC_WORD_THING
+ .2byte EC_POKEMON2(DITTO)
+ ec_duplicates 2
+ .2byte EC_POKEMON(DODRIO)
+ .2byte EC_POKEMON2(DODRIO)
+ ec_duplicates 2
+ .2byte EC_POKEMON(DODUO)
+ .2byte EC_POKEMON2(DODUO)
+ .2byte EC_MOVE(THUNDER)
+ .2byte EC_MOVE(THUNDERBOLT)
+ .2byte EC_MOVE(THUNDER_PUNCH)
+ .2byte EC_MOVE2(THUNDER_SHOCK)
+ .2byte EC_WORD_THURSDAY
+ .2byte EC_MOVE2(THUNDER_WAVE)
+ ec_duplicates 2
+ .2byte EC_POKEMON(DONPHAN)
+ .2byte EC_POKEMON2(DONPHAN)
+ .2byte EC_MOVE2(DOUBLE_KICK)
+ .2byte EC_MOVE(DOUBLE_TEAM)
+ .2byte EC_MOVE2(SPIKE_CANNON)
+ .2byte EC_WORD_OBLIVIOUS
+ .2byte EC_WORD_DRAGON
+ .2byte EC_MOVE2(DRAGON_CLAW)
+ .2byte EC_MOVE2(DRAGON_DANCE)
+ .2byte EC_MOVE2(DRAGON_RAGE)
+ .2byte EC_POKEMON2(DRAGONAIR)
+ .2byte EC_POKEMON2(DRAGONITE)
+ .2byte EC_POKEMON(SHELGON)
+ .2byte EC_POKEMON2(DRATINI)
+ .2byte EC_MOVE2(TRIPLE_KICK)
+ .2byte EC_MOVE(FLAIL)
+ .2byte EC_WORD_YOU
+ .2byte EC_WORD_YOU_RE
+ .2byte EC_WORD_I_CHOOSE_YOU
+ .2byte EC_WORD_YOU_VE
+ .2byte EC_WORD_BATTLE_TOWER
+ ec_duplicates 2
+ .2byte EC_POKEMON(GLOOM)
+ .2byte EC_POKEMON2(GLOOM)
+ .2byte EC_WORD_UPBEAT
+ .2byte EC_WORD_STENCH
+ .2byte EC_POKEMON2(DUNSPARCE)
+ .2byte EC_MOVE(HAZE)
+ .2byte EC_MOVE2(TWINEEDLE)
+ .2byte EC_MOVE(DOUBLE_SLAP)
+ .2byte EC_MOVE(BRICK_BREAK)
+ .2byte EC_WORD_OKAY
+ .2byte EC_WORD_DROUGHT
gEasyChatWordsByLetter_E:
- ec_word SERENE_GRACE
- ec_move2 LEECH_SEED
- ec_word RATHER
- ec_word REALLY
- ec_word EGG
- ec_move2 EGG_BOMB
- ec_word HURRIED
- ec_word A
- ec_word A_LITTLE
- ec_word AN
- ec_word OF
- ec_word SIMPLE
- ec_move2 DEFENSE_CURL
- ec_word SHOPPING
- ec_word ONCE
- ec_word LONESOME
- ec_word ICE
- ec_move2 IRON_DEFENSE
- ec_move1 IRON_TAIL
- ec_move1 SHEER_COLD
- ec_move2 ICE_PUNCH
- ec_move2 ICE_BEAM
- ec_move1 ICY_WIND
- ec_pokemon2 ELEKID
- ec_pokemon2 ELECTABUZZ
- ec_word ELECTRIC
- ec_word PARENT
- ec_word RECOMMEND
- ec_word END
- ec_pokemon2 CHIKORITA
- ec_word FINALLY
- ec_pokemon1 SKITTY
- ec_pokemon1 DELCATTY
- ec_move1 FOCUS_ENERGY
- ec_pokemon2 ENTEI
- ec_move2 SPIT_UP
- ec_word DOWNCAST
- ec_duplicates 2
- ec_pokemon1 PSYDUCK
- ec_pokemon2 PSYDUCK
- ec_duplicates 2
- ec_pokemon1 GOLDUCK
- ec_pokemon2 GOLDUCK
- ec_word DECIDE
- ec_word DECIDED
- ec_word EXCUSE_ME
- ec_word DISAPPOINTS
- ec_word DISAPPOINTED
- ec_word EVOLVE
- ec_word EVOLUTION
- ec_word ENCYCLOPEDIA
- ec_word HE
- ec_word HE_S
- ec_move1 EARTHQUAKE
- ec_word FLATTEN
- ec_word REFRESHING
- ec_word SURRENDER
- ec_word RECEIVED
- ec_move2 REST
- ec_word ALLOW
- ec_word ILLUMINATE
- ec_word SERIOUSLY
- ec_word SERIOUS
- ec_word APPEAR
- ec_word APPEARS
- ec_move1 ASTONISH
- ec_word TAKE
- ec_move2 ERUPTION
- ec_word ADULT
- ec_word PRESSURE
- ec_word IT
- ec_word IS_IT_QUES
- ec_word EAT
- ec_word AROUND
- ec_word SOMETHING
- ec_word PLANS
- ec_word THEIR
- ec_word HERS
- ec_word EVENTS
- ec_word PROBABLY
- ec_pokemon2 EEVEE
- ec_word FOREVER
- ec_word EXISTS
- ec_word SHED_SKIN
- ec_move2 EXPLOSION
- ec_word EXCELLENT
+ .2byte EC_WORD_SERENE_GRACE
+ .2byte EC_MOVE2(LEECH_SEED)
+ .2byte EC_WORD_RATHER
+ .2byte EC_WORD_REALLY
+ .2byte EC_WORD_EGG
+ .2byte EC_MOVE2(EGG_BOMB)
+ .2byte EC_WORD_HURRIED
+ .2byte EC_WORD_A
+ .2byte EC_WORD_A_LITTLE
+ .2byte EC_WORD_AN
+ .2byte EC_WORD_OF
+ .2byte EC_WORD_SIMPLE
+ .2byte EC_MOVE2(DEFENSE_CURL)
+ .2byte EC_WORD_SHOPPING
+ .2byte EC_WORD_ONCE
+ .2byte EC_WORD_LONESOME
+ .2byte EC_WORD_ICE
+ .2byte EC_MOVE2(IRON_DEFENSE)
+ .2byte EC_MOVE(IRON_TAIL)
+ .2byte EC_MOVE(SHEER_COLD)
+ .2byte EC_MOVE2(ICE_PUNCH)
+ .2byte EC_MOVE2(ICE_BEAM)
+ .2byte EC_MOVE(ICY_WIND)
+ .2byte EC_POKEMON2(ELEKID)
+ .2byte EC_POKEMON2(ELECTABUZZ)
+ .2byte EC_WORD_ELECTRIC
+ .2byte EC_WORD_PARENT
+ .2byte EC_WORD_RECOMMEND
+ .2byte EC_WORD_END
+ .2byte EC_POKEMON2(CHIKORITA)
+ .2byte EC_WORD_FINALLY
+ .2byte EC_POKEMON(SKITTY)
+ .2byte EC_POKEMON(DELCATTY)
+ .2byte EC_MOVE(FOCUS_ENERGY)
+ .2byte EC_POKEMON2(ENTEI)
+ .2byte EC_MOVE2(SPIT_UP)
+ .2byte EC_WORD_DOWNCAST
+ ec_duplicates 2
+ .2byte EC_POKEMON(PSYDUCK)
+ .2byte EC_POKEMON2(PSYDUCK)
+ ec_duplicates 2
+ .2byte EC_POKEMON(GOLDUCK)
+ .2byte EC_POKEMON2(GOLDUCK)
+ .2byte EC_WORD_DECIDE
+ .2byte EC_WORD_DECIDED
+ .2byte EC_WORD_EXCUSE_ME
+ .2byte EC_WORD_DISAPPOINTS
+ .2byte EC_WORD_DISAPPOINTED
+ .2byte EC_WORD_EVOLVE
+ .2byte EC_WORD_EVOLUTION
+ .2byte EC_WORD_ENCYCLOPEDIA
+ .2byte EC_WORD_HE
+ .2byte EC_WORD_HE_S
+ .2byte EC_MOVE(EARTHQUAKE)
+ .2byte EC_WORD_FLATTEN
+ .2byte EC_WORD_REFRESHING
+ .2byte EC_WORD_SURRENDER
+ .2byte EC_WORD_RECEIVED
+ .2byte EC_MOVE2(REST)
+ .2byte EC_WORD_ALLOW
+ .2byte EC_WORD_ILLUMINATE
+ .2byte EC_WORD_SERIOUSLY
+ .2byte EC_WORD_SERIOUS
+ .2byte EC_WORD_APPEAR
+ .2byte EC_WORD_APPEARS
+ .2byte EC_MOVE(ASTONISH)
+ .2byte EC_WORD_TAKE
+ .2byte EC_MOVE2(ERUPTION)
+ .2byte EC_WORD_ADULT
+ .2byte EC_WORD_PRESSURE
+ .2byte EC_WORD_IT
+ .2byte EC_WORD_IS_IT_QUES
+ .2byte EC_WORD_EAT
+ .2byte EC_WORD_AROUND
+ .2byte EC_WORD_SOMETHING
+ .2byte EC_WORD_PLANS
+ .2byte EC_WORD_THEIR
+ .2byte EC_WORD_HERS
+ .2byte EC_WORD_EVENTS
+ .2byte EC_WORD_PROBABLY
+ .2byte EC_POKEMON2(EEVEE)
+ .2byte EC_WORD_FOREVER
+ .2byte EC_WORD_EXISTS
+ .2byte EC_WORD_SHED_SKIN
+ .2byte EC_MOVE2(EXPLOSION)
+ .2byte EC_WORD_EXCELLENT
gEasyChatWordsByLetter_F:
- ec_word FABULOUS
- ec_word COMPOUNDEYES
- ec_move1 STRING_SHOT
- ec_word CAPABLE
- ec_word SP_ABILITY
- ec_word BIKE
- ec_word TRACE
- ec_word CASE
- ec_word FAMILY
- ec_word FANTASTIC
- ec_word COLOR
- ec_pokemon2 SMEARGLE
- ec_word COLOR_CHANGE
- ec_move1 FACADE
- ec_word ALMOST
- ec_move2 ROLLING_KICK
- ec_word MISTAKE
- ec_word LACKS
- ec_word GOOD
- ec_word OPPONENT
- ec_pokemon2 WOOPER
- ec_move1 ROCK_TOMB
- ec_move2 ROCK_BLAST
- ec_word HOLIDAY
- ec_word TELEVISION
- ec_word DONE
- ec_word FESTIVAL
- ec_word SHREDDED
- ec_word DAMP
- ec_word FIRE
- ec_word FLASH_FIRE
- ec_move2 BLAZE_KICK
- ec_move2 DRAGON_BREATH
- ec_move2 FIRE_PUNCH
- ec_move2 FIRE_BLAST
- ec_move2 FIRE_SPIN
- ec_pokemon2 CYNDAQUIL
- ec_pokemon1 POOCHYENA
- ec_word MOVIE
- ec_move1 SELF_DESTRUCT
- ec_move1 SHADOW_PUNCH
- ec_move2 FAINT_ATTACK
- ec_pokemon1 GLALIE
- ec_pokemon2 FLAREON
- ec_move1 FLAME_WHEEL
- ec_move1 FLAMETHROWER
- ec_word FLAME_BODY
- ec_pokemon2 SLOWPOKE
- ec_pokemon1 TORCHIC
- ec_word LIMBER
- ec_duplicates 2
- ec_word FLYING
- ec_move1 FLY
- ec_move2 CURSE
- ec_word ESCAPE
- ec_duplicates 2
- ec_pokemon1 IGGLYBUFF
- ec_pokemon2 IGGLYBUFF
- ec_move2 WING_ATTACK
- ec_pokemon1 MAWILE
- ec_pokemon1 WHISMUR
- ec_word FUFUFU
- ec_move1 TORMENT
- ec_move1 WATER_SPOUT
- ec_pokemon1 CASTFORM
- ec_pokemon2 FORRETRESS
- ec_word AWAY
- ec_word CAMERA
- ec_word QUESTION
- ec_word MRS
- ec_word RELEASE
- ec_word FRIDAY
- ec_word JOY
- ec_word FRIEND
- ec_pokemon1 ELECTRIKE
- ec_word THINK
- ec_move1 ICE_BALL
- ec_word EARLIER
- ec_word SPRING
- ec_word EARLY_BIRD
- ec_move2 FRUSTRATION
- ec_word DISAPPOINT
- ec_move1 THRASH
- ec_word FEELING
- ec_pokemon2 GROWLITHE
- ec_move1 SPARK
- ec_word FOR
- ec_word TO_HER
- ec_word FOR_NOW
- ec_word TO_THEM
- ec_word TO_US
- ec_word TO_WHOM
- ec_word FEAR
- ec_word AWFULLY
- ec_move2 FURY_ATTACK
- ec_move1 LOW_KICK
+ .2byte EC_WORD_FABULOUS
+ .2byte EC_WORD_COMPOUNDEYES
+ .2byte EC_MOVE(STRING_SHOT)
+ .2byte EC_WORD_CAPABLE
+ .2byte EC_WORD_SP_ABILITY
+ .2byte EC_WORD_BIKE
+ .2byte EC_WORD_TRACE
+ .2byte EC_WORD_CASE
+ .2byte EC_WORD_FAMILY
+ .2byte EC_WORD_FANTASTIC
+ .2byte EC_WORD_COLOR
+ .2byte EC_POKEMON2(SMEARGLE)
+ .2byte EC_WORD_COLOR_CHANGE
+ .2byte EC_MOVE(FACADE)
+ .2byte EC_WORD_ALMOST
+ .2byte EC_MOVE2(ROLLING_KICK)
+ .2byte EC_WORD_MISTAKE
+ .2byte EC_WORD_LACKS
+ .2byte EC_WORD_GOOD
+ .2byte EC_WORD_OPPONENT
+ .2byte EC_POKEMON2(WOOPER)
+ .2byte EC_MOVE(ROCK_TOMB)
+ .2byte EC_MOVE2(ROCK_BLAST)
+ .2byte EC_WORD_HOLIDAY
+ .2byte EC_WORD_TELEVISION
+ .2byte EC_WORD_DONE
+ .2byte EC_WORD_FESTIVAL
+ .2byte EC_WORD_SHREDDED
+ .2byte EC_WORD_DAMP
+ .2byte EC_WORD_FIRE
+ .2byte EC_WORD_FLASH_FIRE
+ .2byte EC_MOVE2(BLAZE_KICK)
+ .2byte EC_MOVE2(DRAGON_BREATH)
+ .2byte EC_MOVE2(FIRE_PUNCH)
+ .2byte EC_MOVE2(FIRE_BLAST)
+ .2byte EC_MOVE2(FIRE_SPIN)
+ .2byte EC_POKEMON2(CYNDAQUIL)
+ .2byte EC_POKEMON(POOCHYENA)
+ .2byte EC_WORD_MOVIE
+ .2byte EC_MOVE(SELF_DESTRUCT)
+ .2byte EC_MOVE(SHADOW_PUNCH)
+ .2byte EC_MOVE2(FAINT_ATTACK)
+ .2byte EC_POKEMON(GLALIE)
+ .2byte EC_POKEMON2(FLAREON)
+ .2byte EC_MOVE(FLAME_WHEEL)
+ .2byte EC_MOVE(FLAMETHROWER)
+ .2byte EC_WORD_FLAME_BODY
+ .2byte EC_POKEMON2(SLOWPOKE)
+ .2byte EC_POKEMON(TORCHIC)
+ .2byte EC_WORD_LIMBER
+ ec_duplicates 2
+ .2byte EC_WORD_FLYING
+ .2byte EC_MOVE(FLY)
+ .2byte EC_MOVE2(CURSE)
+ .2byte EC_WORD_ESCAPE
+ ec_duplicates 2
+ .2byte EC_POKEMON(IGGLYBUFF)
+ .2byte EC_POKEMON2(IGGLYBUFF)
+ .2byte EC_MOVE2(WING_ATTACK)
+ .2byte EC_POKEMON(MAWILE)
+ .2byte EC_POKEMON(WHISMUR)
+ .2byte EC_WORD_FUFUFU
+ .2byte EC_MOVE(TORMENT)
+ .2byte EC_MOVE(WATER_SPOUT)
+ .2byte EC_POKEMON(CASTFORM)
+ .2byte EC_POKEMON2(FORRETRESS)
+ .2byte EC_WORD_AWAY
+ .2byte EC_WORD_CAMERA
+ .2byte EC_WORD_QUESTION
+ .2byte EC_WORD_MRS
+ .2byte EC_WORD_RELEASE
+ .2byte EC_WORD_FRIDAY
+ .2byte EC_WORD_JOY
+ .2byte EC_WORD_FRIEND
+ .2byte EC_POKEMON(ELECTRIKE)
+ .2byte EC_WORD_THINK
+ .2byte EC_MOVE(ICE_BALL)
+ .2byte EC_WORD_EARLIER
+ .2byte EC_WORD_SPRING
+ .2byte EC_WORD_EARLY_BIRD
+ .2byte EC_MOVE2(FRUSTRATION)
+ .2byte EC_WORD_DISAPPOINT
+ .2byte EC_MOVE(THRASH)
+ .2byte EC_WORD_FEELING
+ .2byte EC_POKEMON2(GROWLITHE)
+ .2byte EC_MOVE(SPARK)
+ .2byte EC_WORD_FOR
+ .2byte EC_WORD_TO_HER
+ .2byte EC_WORD_FOR_NOW
+ .2byte EC_WORD_TO_THEM
+ .2byte EC_WORD_TO_US
+ .2byte EC_WORD_TO_WHOM
+ .2byte EC_WORD_FEAR
+ .2byte EC_WORD_AWFULLY
+ .2byte EC_MOVE2(FURY_ATTACK)
+ .2byte EC_MOVE(LOW_KICK)
gEasyChatWordsByLetter_G:
- ec_move1 YAWN
- ec_pokemon2 RAPIDASH
- ec_duplicates 2
- ec_pokemon1 GYARADOS
- ec_pokemon2 GYARADOS
- ec_word GIVE
- ec_word USE
- ec_word USES
- ec_pokemon1 TREECKO
- ec_move2 CALM_MIND
- ec_word COMMEMORATE
- ec_move1 BIDE
- ec_word DANGER
- ec_word VERSUS
- ec_move1 REVERSAL
- ec_word OPPOSITE
- ec_word FOE
- ec_word MYSTERY
- ec_word SECRET_BASE
- ec_word SECRET
- ec_move2 SECRET_POWER
- ec_word GOING
- ec_word HEARING
- ec_word BELONGS_TO
- ec_word GOES
- ec_pokemon1 SURSKIT
- ec_word GHOST
- ec_word BORED
- ec_word MONEY
- ec_word LAY
- ec_word MEAN
- ec_word HOW
- ec_word AS
- ec_word APPROVED
- ec_move1 RECOVER
- ec_pokemon2 GENGAR
- ec_word GENIUS
- ec_word ENJOY
- ec_word ENJOYS
- ec_word THOSE_WERE
- ec_move1 FISSURE
- ec_duplicates 2
- ec_pokemon1 GRAVELER
- ec_pokemon2 GRAVELER
- ec_duplicates 2
- ec_pokemon1 GOLEM
- ec_pokemon2 GOLEM
- ec_move2 SEISMIC_TOSS
- ec_pokemon1 LINOONE
- ec_word WANNABE
- ec_word SMELL
- ec_move1 SING
- ec_word EVENT
- ec_move2 PRESENT
- ec_word SKILL
- ec_word SKILLED
- ec_word SHOCKED
- ec_word WEAKENED
- ec_word SIBLINGS
- ec_move2 FORESIGHT
- ec_word CONVERSATION
- ec_word ROCK
- ec_word YESTERDAY
- ec_word HEALTHY
- ec_word DID
- ec_pokemon1 SCEPTILE
- ec_word WIN
- ec_word IF_I_WIN
- ec_word WINS
- ec_word HABIT
- ec_word WON
- ec_word GIVE_ME
- ec_word GIMME
- ec_word GIVES
- ec_duplicates 2
- ec_pokemon1 VILEPLUME
- ec_pokemon2 VILEPLUME
- ec_word POISON
- ec_move2 GLARE
- ec_word POISON_POINT
- ec_move2 POISON_POWDER
- ec_move2 POISON_TAIL
- ec_move2 POISON_STING
- ec_move2 POISON_GAS
- ec_move2 POISON_FANG
- ec_move1 GIGA_DRAIN
- ec_word HAPPENING
- ec_word WENT
- ec_duplicates 2
- ec_pokemon1 GIRAFARIG
- ec_pokemon2 GIRAFARIG
- ec_word SMOOTH
- ec_word BELIEVE
- ec_word WHEN
- ec_word SLIDE
- ec_word SLIMY
- ec_word HAPPINESS
- ec_word HAPPY
- ec_word CONGRATS
- ec_pokemon2 CHARMANDER
- ec_pokemon2 CHARIZARD
- ec_move2 EMBER
- ec_pokemon2 CHARMELEON
- ec_duplicates 2
- ec_pokemon1 GOLBAT
- ec_pokemon2 GOLBAT
- ec_duplicates 2
- ec_pokemon1 GOLDEEN
- ec_pokemon2 GOLDEEN
- ec_duplicates 2
- ec_pokemon1 SEAKING
- ec_pokemon2 SEAKING
- ec_word GOURMET
- ec_word GRAAAH
- ec_pokemon2 GRANBULL
- ec_move1 GRASS_WHISTLE
- ec_pokemon2 AIPOM
- ec_move1 SCARY_FACE
- ec_word ANTICIPATION
- ec_pokemon1 GRUMPIG
- ec_move1 SPITE
- ec_word BIG
- ec_word GREAT
- ec_word BLAZE
- ec_word GRANDMOTHER
- ec_word GRANDFATHER
- ec_word LAVISH
- ec_pokemon1 GROUDON
- ec_word GWAH
- ec_word CAUSE
- ec_word GROUP
- ec_pokemon1 GARDEVOIR
- ec_move2 GUILLOTINE
- ec_word 1_HIT_KO_EXCL
- ec_word ALL_RIGHT
- ec_word HEARS
- ec_word GWAHAHAHA
+ .2byte EC_MOVE(YAWN)
+ .2byte EC_POKEMON2(RAPIDASH)
+ ec_duplicates 2
+ .2byte EC_POKEMON(GYARADOS)
+ .2byte EC_POKEMON2(GYARADOS)
+ .2byte EC_WORD_GIVE
+ .2byte EC_WORD_USE
+ .2byte EC_WORD_USES
+ .2byte EC_POKEMON(TREECKO)
+ .2byte EC_MOVE2(CALM_MIND)
+ .2byte EC_WORD_COMMEMORATE
+ .2byte EC_MOVE(BIDE)
+ .2byte EC_WORD_DANGER
+ .2byte EC_WORD_VERSUS
+ .2byte EC_MOVE(REVERSAL)
+ .2byte EC_WORD_OPPOSITE
+ .2byte EC_WORD_FOE
+ .2byte EC_WORD_MYSTERY
+ .2byte EC_WORD_SECRET_BASE
+ .2byte EC_WORD_SECRET
+ .2byte EC_MOVE2(SECRET_POWER)
+ .2byte EC_WORD_GOING
+ .2byte EC_WORD_HEARING
+ .2byte EC_WORD_BELONGS_TO
+ .2byte EC_WORD_GOES
+ .2byte EC_POKEMON(SURSKIT)
+ .2byte EC_WORD_GHOST
+ .2byte EC_WORD_BORED
+ .2byte EC_WORD_MONEY
+ .2byte EC_WORD_LAY
+ .2byte EC_WORD_MEAN
+ .2byte EC_WORD_HOW
+ .2byte EC_WORD_AS
+ .2byte EC_WORD_APPROVED
+ .2byte EC_MOVE(RECOVER)
+ .2byte EC_POKEMON2(GENGAR)
+ .2byte EC_WORD_GENIUS
+ .2byte EC_WORD_ENJOY
+ .2byte EC_WORD_ENJOYS
+ .2byte EC_WORD_THOSE_WERE
+ .2byte EC_MOVE(FISSURE)
+ ec_duplicates 2
+ .2byte EC_POKEMON(GRAVELER)
+ .2byte EC_POKEMON2(GRAVELER)
+ ec_duplicates 2
+ .2byte EC_POKEMON(GOLEM)
+ .2byte EC_POKEMON2(GOLEM)
+ .2byte EC_MOVE2(SEISMIC_TOSS)
+ .2byte EC_POKEMON(LINOONE)
+ .2byte EC_WORD_WANNABE
+ .2byte EC_WORD_SMELL
+ .2byte EC_MOVE(SING)
+ .2byte EC_WORD_EVENT
+ .2byte EC_MOVE2(PRESENT)
+ .2byte EC_WORD_SKILL
+ .2byte EC_WORD_SKILLED
+ .2byte EC_WORD_SHOCKED
+ .2byte EC_WORD_WEAKENED
+ .2byte EC_WORD_SIBLINGS
+ .2byte EC_MOVE2(FORESIGHT)
+ .2byte EC_WORD_CONVERSATION
+ .2byte EC_WORD_ROCK
+ .2byte EC_WORD_YESTERDAY
+ .2byte EC_WORD_HEALTHY
+ .2byte EC_WORD_DID
+ .2byte EC_POKEMON(SCEPTILE)
+ .2byte EC_WORD_WIN
+ .2byte EC_WORD_IF_I_WIN
+ .2byte EC_WORD_WINS
+ .2byte EC_WORD_HABIT
+ .2byte EC_WORD_WON
+ .2byte EC_WORD_GIVE_ME
+ .2byte EC_WORD_GIMME
+ .2byte EC_WORD_GIVES
+ ec_duplicates 2
+ .2byte EC_POKEMON(VILEPLUME)
+ .2byte EC_POKEMON2(VILEPLUME)
+ .2byte EC_WORD_POISON
+ .2byte EC_MOVE2(GLARE)
+ .2byte EC_WORD_POISON_POINT
+ .2byte EC_MOVE2(POISON_POWDER)
+ .2byte EC_MOVE2(POISON_TAIL)
+ .2byte EC_MOVE2(POISON_STING)
+ .2byte EC_MOVE2(POISON_GAS)
+ .2byte EC_MOVE2(POISON_FANG)
+ .2byte EC_MOVE(GIGA_DRAIN)
+ .2byte EC_WORD_HAPPENING
+ .2byte EC_WORD_WENT
+ ec_duplicates 2
+ .2byte EC_POKEMON(GIRAFARIG)
+ .2byte EC_POKEMON2(GIRAFARIG)
+ .2byte EC_WORD_SMOOTH
+ .2byte EC_WORD_BELIEVE
+ .2byte EC_WORD_WHEN
+ .2byte EC_WORD_SLIDE
+ .2byte EC_WORD_SLIMY
+ .2byte EC_WORD_HAPPINESS
+ .2byte EC_WORD_HAPPY
+ .2byte EC_WORD_CONGRATS
+ .2byte EC_POKEMON2(CHARMANDER)
+ .2byte EC_POKEMON2(CHARIZARD)
+ .2byte EC_MOVE2(EMBER)
+ .2byte EC_POKEMON2(CHARMELEON)
+ ec_duplicates 2
+ .2byte EC_POKEMON(GOLBAT)
+ .2byte EC_POKEMON2(GOLBAT)
+ ec_duplicates 2
+ .2byte EC_POKEMON(GOLDEEN)
+ .2byte EC_POKEMON2(GOLDEEN)
+ ec_duplicates 2
+ .2byte EC_POKEMON(SEAKING)
+ .2byte EC_POKEMON2(SEAKING)
+ .2byte EC_WORD_GOURMET
+ .2byte EC_WORD_GRAAAH
+ .2byte EC_POKEMON2(GRANBULL)
+ .2byte EC_MOVE(GRASS_WHISTLE)
+ .2byte EC_POKEMON2(AIPOM)
+ .2byte EC_MOVE(SCARY_FACE)
+ .2byte EC_WORD_ANTICIPATION
+ .2byte EC_POKEMON(GRUMPIG)
+ .2byte EC_MOVE(SPITE)
+ .2byte EC_WORD_BIG
+ .2byte EC_WORD_GREAT
+ .2byte EC_WORD_BLAZE
+ .2byte EC_WORD_GRANDMOTHER
+ .2byte EC_WORD_GRANDFATHER
+ .2byte EC_WORD_LAVISH
+ .2byte EC_POKEMON(GROUDON)
+ .2byte EC_WORD_GWAH
+ .2byte EC_WORD_CAUSE
+ .2byte EC_WORD_GROUP
+ .2byte EC_POKEMON(GARDEVOIR)
+ .2byte EC_MOVE2(GUILLOTINE)
+ .2byte EC_WORD_1_HIT_KO_EXCL
+ .2byte EC_WORD_ALL_RIGHT
+ .2byte EC_WORD_HEARS
+ .2byte EC_WORD_GWAHAHAHA
gEasyChatWordsByLetter_H:
- ec_word WATER_ABSORB
- ec_word GOTCHA
- ec_word HAVE
- ec_word GOT
- ec_word HAVEN_T
- ec_pokemon2 SPEAROW
- ec_move1 HAIL
- ec_word HAH
- ec_word EH_QUES
- ec_word HEHE
- ec_word HAHAHA
- ec_word EHEHE
- ec_word HELLO
- ec_pokemon1 HARIYAMA
- ec_word MATCH_UP
- ec_move1 HARDEN
- ec_word HAS
- ec_word HEH
- ec_word HEHEHE
- ec_move2 REFRESH
- ec_word HOME
- ec_word GO_HOME
- ec_word HOT
- ec_pokemon2 BLISSEY
- ec_word HERO
- ec_word HEROINE
- ec_word CHALLENGE
- ec_word FALL
- ec_word MR
- ec_word MAKING
- ec_move2 GROWL
- ec_word TODAY
- ec_word SWARM
- ec_word HEY
- ec_word HEY_THERE
- ec_word HEY_QUES
- ec_word HERE
- ec_word HERE_I_COME
- ec_word HERE_IT_IS
- ec_word HERE_GOES
- ec_word MUFUFU
- ec_move1 SKY_UPPERCUT
- ec_move1 SKY_ATTACK
- ec_word REAR
- ec_word DOWN
- ec_word HIP_AND
- ec_move1 OVERHEAT
- ec_move2 HEAT_WAVE
- ec_word HIYAH
- ec_word HMM
- ec_word HUMPH
- ec_pokemon2 HO_OH
- ec_word HOBBY
- ec_word HIGH
- ec_word KIND
- ec_word HIGHS
- ec_word HOHOHO
- ec_word HEART
- ec_pokemon2 HOOTHOOT
- ec_pokemon2 HOPPIP
- ec_word LISTENING
- ec_word HEAR
- ec_move2 HORN_ATTACK
- ec_move2 HORN_DRILL
- ec_pokemon2 WEEDLE
- ec_move1 MEAN_LOOK
- ec_word LISTENS
- ec_move2 STOCKPILE
- ec_pokemon2 SKIPLOOM
- ec_word PRETTY
- ec_word HOO_HAH
- ec_pokemon2 HOUNDOOM
- ec_pokemon2 HOUNDOUR
- ec_word OOPS
- ec_pokemon1 MUDKIP
- ec_move2 HYDRO_PUMP
- ec_word HYPER
- ec_move2 HYPER_BEAM
- ec_move2 HYPER_FANG
- ec_pokemon2 HYPNO
- ec_move1 HYPNOSIS
+ .2byte EC_WORD_WATER_ABSORB
+ .2byte EC_WORD_GOTCHA
+ .2byte EC_WORD_HAVE
+ .2byte EC_WORD_GOT
+ .2byte EC_WORD_HAVEN_T
+ .2byte EC_POKEMON2(SPEAROW)
+ .2byte EC_MOVE(HAIL)
+ .2byte EC_WORD_HAH
+ .2byte EC_WORD_EH_QUES
+ .2byte EC_WORD_HEHE
+ .2byte EC_WORD_HAHAHA
+ .2byte EC_WORD_EHEHE
+ .2byte EC_WORD_HELLO
+ .2byte EC_POKEMON(HARIYAMA)
+ .2byte EC_WORD_MATCH_UP
+ .2byte EC_MOVE(HARDEN)
+ .2byte EC_WORD_HAS
+ .2byte EC_WORD_HEH
+ .2byte EC_WORD_HEHEHE
+ .2byte EC_MOVE2(REFRESH)
+ .2byte EC_WORD_HOME
+ .2byte EC_WORD_GO_HOME
+ .2byte EC_WORD_HOT
+ .2byte EC_POKEMON2(BLISSEY)
+ .2byte EC_WORD_HERO
+ .2byte EC_WORD_HEROINE
+ .2byte EC_WORD_CHALLENGE
+ .2byte EC_WORD_FALL
+ .2byte EC_WORD_MR
+ .2byte EC_WORD_MAKING
+ .2byte EC_MOVE2(GROWL)
+ .2byte EC_WORD_TODAY
+ .2byte EC_WORD_SWARM
+ .2byte EC_WORD_HEY
+ .2byte EC_WORD_HEY_THERE
+ .2byte EC_WORD_HEY_QUES
+ .2byte EC_WORD_HERE
+ .2byte EC_WORD_HERE_I_COME
+ .2byte EC_WORD_HERE_IT_IS
+ .2byte EC_WORD_HERE_GOES
+ .2byte EC_WORD_MUFUFU
+ .2byte EC_MOVE(SKY_UPPERCUT)
+ .2byte EC_MOVE(SKY_ATTACK)
+ .2byte EC_WORD_REAR
+ .2byte EC_WORD_DOWN
+ .2byte EC_WORD_HIP_AND
+ .2byte EC_MOVE(OVERHEAT)
+ .2byte EC_MOVE2(HEAT_WAVE)
+ .2byte EC_WORD_HIYAH
+ .2byte EC_WORD_HMM
+ .2byte EC_WORD_HUMPH
+ .2byte EC_POKEMON2(HO_OH)
+ .2byte EC_WORD_HOBBY
+ .2byte EC_WORD_HIGH
+ .2byte EC_WORD_KIND
+ .2byte EC_WORD_HIGHS
+ .2byte EC_WORD_HOHOHO
+ .2byte EC_WORD_HEART
+ .2byte EC_POKEMON2(HOOTHOOT)
+ .2byte EC_POKEMON2(HOPPIP)
+ .2byte EC_WORD_LISTENING
+ .2byte EC_WORD_HEAR
+ .2byte EC_MOVE2(HORN_ATTACK)
+ .2byte EC_MOVE2(HORN_DRILL)
+ .2byte EC_POKEMON2(WEEDLE)
+ .2byte EC_MOVE(MEAN_LOOK)
+ .2byte EC_WORD_LISTENS
+ .2byte EC_MOVE2(STOCKPILE)
+ .2byte EC_POKEMON2(SKIPLOOM)
+ .2byte EC_WORD_PRETTY
+ .2byte EC_WORD_HOO_HAH
+ .2byte EC_POKEMON2(HOUNDOOM)
+ .2byte EC_POKEMON2(HOUNDOUR)
+ .2byte EC_WORD_OOPS
+ .2byte EC_POKEMON(MUDKIP)
+ .2byte EC_MOVE2(HYDRO_PUMP)
+ .2byte EC_WORD_HYPER
+ .2byte EC_MOVE2(HYPER_BEAM)
+ .2byte EC_MOVE2(HYPER_FANG)
+ .2byte EC_POKEMON2(HYPNO)
+ .2byte EC_MOVE(HYPNOSIS)
gEasyChatWordsByLetter_I:
- ec_pokemon2 FEAROW
- ec_word I
- ec_word I_AM
- ec_word I_VE_ARRIVED
- ec_word I_VE
- ec_word LET_ME_WIN
- ec_word I_WAS
- ec_pokemon2 UNOWN
- ec_word IDOL
- ec_pokemon2 QUILAVA
- ec_word EEK
- ec_word IGNORANT
- ec_word HIM
- ec_word THEY
- ec_word HER
- ec_word MUCH_OBLIGED
- ec_duplicates 2
- ec_pokemon1 CROBAT
- ec_pokemon2 CROBAT
- ec_pokemon1 ILLUMISE
- ec_word ALWAYS
- ec_word IMMUNITY
- ec_pokemon2 FERALIGATR
- ec_word IN
- ec_word INFORMATION
- ec_word INSIDE
- ec_word NATURAL_CURE
- ec_word INSOMNIA
- ec_move2 MAGNITUDE
- ec_word ANY
- ec_word SOMETIME
- ec_word SOMEHOW
- ec_word ANYWHERE
- ec_word AWESOME
- ec_move1 WILL_O_WISP
- ec_move2 DIZZY_PUNCH
- ec_pokemon1 WYNAUT
- ec_word EATS
- ec_word IS
- ec_word ISN_T
- ec_word ITEM
+ .2byte EC_POKEMON2(FEAROW)
+ .2byte EC_WORD_I
+ .2byte EC_WORD_I_AM
+ .2byte EC_WORD_I_VE_ARRIVED
+ .2byte EC_WORD_I_VE
+ .2byte EC_WORD_LET_ME_WIN
+ .2byte EC_WORD_I_WAS
+ .2byte EC_POKEMON2(UNOWN)
+ .2byte EC_WORD_IDOL
+ .2byte EC_POKEMON2(QUILAVA)
+ .2byte EC_WORD_EEK
+ .2byte EC_WORD_IGNORANT
+ .2byte EC_WORD_HIM
+ .2byte EC_WORD_THEY
+ .2byte EC_WORD_HER
+ .2byte EC_WORD_MUCH_OBLIGED
+ ec_duplicates 2
+ .2byte EC_POKEMON(CROBAT)
+ .2byte EC_POKEMON2(CROBAT)
+ .2byte EC_POKEMON(ILLUMISE)
+ .2byte EC_WORD_ALWAYS
+ .2byte EC_WORD_IMMUNITY
+ .2byte EC_POKEMON2(FERALIGATR)
+ .2byte EC_WORD_IN
+ .2byte EC_WORD_INFORMATION
+ .2byte EC_WORD_INSIDE
+ .2byte EC_WORD_NATURAL_CURE
+ .2byte EC_WORD_INSOMNIA
+ .2byte EC_MOVE2(MAGNITUDE)
+ .2byte EC_WORD_ANY
+ .2byte EC_WORD_SOMETIME
+ .2byte EC_WORD_SOMEHOW
+ .2byte EC_WORD_ANYWHERE
+ .2byte EC_WORD_AWESOME
+ .2byte EC_MOVE(WILL_O_WISP)
+ .2byte EC_MOVE2(DIZZY_PUNCH)
+ .2byte EC_POKEMON(WYNAUT)
+ .2byte EC_WORD_EATS
+ .2byte EC_WORD_IS
+ .2byte EC_WORD_ISN_T
+ .2byte EC_WORD_ITEM
gEasyChatWordsByLetter_J:
- ec_word YES
- ec_word YAY
- ec_word YUP
- ec_move2 HOWL
- ec_word HOWEVER
- ec_word EVER
- ec_word SOMEONE
- ec_word YO
- ec_word NOW
- ec_word YEEHAW_EXCL
- ec_word EXCITING
- ec_pokemon1 JIRACHI
- ec_word WOWEE
- ec_word YAHOO
- ec_pokemon2 DEWGONG
- ec_word YOUNG
- ec_word BOY
- ec_pokemon1 COMBUSKEN
- ec_pokemon2 SEEL
- ec_word JUDGE
+ .2byte EC_WORD_YES
+ .2byte EC_WORD_YAY
+ .2byte EC_WORD_YUP
+ .2byte EC_MOVE2(HOWL)
+ .2byte EC_WORD_HOWEVER
+ .2byte EC_WORD_EVER
+ .2byte EC_WORD_SOMEONE
+ .2byte EC_WORD_YO
+ .2byte EC_WORD_NOW
+ .2byte EC_WORD_YEEHAW_EXCL
+ .2byte EC_WORD_EXCITING
+ .2byte EC_POKEMON(JIRACHI)
+ .2byte EC_WORD_WOWEE
+ .2byte EC_WORD_YAHOO
+ .2byte EC_POKEMON2(DEWGONG)
+ .2byte EC_WORD_YOUNG
+ .2byte EC_WORD_BOY
+ .2byte EC_POKEMON(COMBUSKEN)
+ .2byte EC_POKEMON2(SEEL)
+ .2byte EC_WORD_JUDGE
gEasyChatWordsByLetter_K:
- ec_pokemon2 KABUTO
- ec_pokemon2 KABUTOPS
- ec_duplicates 2
- ec_pokemon1 KADABRA
- ec_pokemon2 KADABRA
- ec_word BUG
- ec_word COLD
- ec_word CAME
- ec_word FIGHTING
- ec_word BATTLE
- ec_word FIGHT
- ec_word BATTLE_ARMOR
- ec_word BATTLE_ROOM
- ec_word FAINTED
- ec_pokemon2 KANGASKHAN
- ec_pokemon1 CARVANHA
- ec_word CAN_WIN
- ec_word CAN_T
- ec_pokemon1 BRELOOM
- ec_pokemon2 HITMONTOP
- ec_pokemon1 LUDICOLO
- ec_move1 KARATE_CHOP
- ec_word DESTINY
- ec_pokemon2 TOTODILE
- ec_duplicates 2
- ec_pokemon1 MAGIKARP
- ec_pokemon2 MAGIKARP
- ec_word CARDS
- ec_move2 WATERFALL
- ec_word DEPT_STORE
- ec_pokemon1 KECLEON
- ec_pokemon2 PILOSWINE
- ec_word NONE
- ec_word GIGGLE
- ec_pokemon2 HITMONLEE
- ec_word TICKLISH
- ec_word KID
- ec_word CHILDREN
- ec_word KINDERGARTEN
- ec_word CHILD_S_PLAY
- ec_pokemon1 BAGON
- ec_pokemon2 KINGLER
- ec_pokemon1 KIRLIA
- ec_move2 VICE_GRIP
- ec_move1 BIND
- ec_word THIN
- ec_word RANK
- ec_word SMALL
- ec_duplicates 2
- ec_pokemon1 GEODUDE
- ec_pokemon2 GEODUDE
- ec_word AIR_LOCK
- ec_move1 RAZOR_WIND
- ec_word LIQUID_OOZE
- ec_word SMART
- ec_word SMARTNESS
- ec_pokemon1 TRAPINCH
- ec_pokemon1 SHROOMISH
- ec_move1 CRUNCH
- ec_move2 BONE_RUSH
- ec_move2 BONE_CLUB
- ec_move2 BONEMERANG
- ec_pokemon2 BELLSPROUT
- ec_pokemon2 MAROWAK
- ec_duplicates 2
- ec_pokemon1 WIGGLYTUFF
- ec_pokemon2 WIGGLYTUFF
- ec_word TIGHT
- ec_pokemon2 EXEGGUTOR
- ec_pokemon2 KAKUNA
- ec_move2 COMET_PUNCH
- ec_word COME_ON
- ec_word COME
- ec_word COMPLETE
- ec_move2 MINIMIZE
- ec_move2 CONFUSION
- ec_move1 CONFUSE_RAY
- ec_word CAN
- ec_word COULDN_T
- ec_word COULD
- ec_move1 COUNTER
- ec_word INNER_FOCUS
- ec_move1 HEADBUTT
- ec_word FEVER
- ec_move1 COSMIC_POWER
- ec_word TREASURE
- ec_move1 CRABHAMMER
- ec_pokemon2 KRABBY
- ec_word POWER
- ec_duplicates 2
- ec_word HUGE_POWER
- ec_move2 SUPERPOWER
- ec_move2 HIDDEN_POWER
- ec_pokemon1 LOUDRED
- ec_pokemon2 MURKROW
- ec_move2 SCRATCH
- ec_move2 FURY_SWIPES
- ec_pokemon1 EXPLOUD
- ec_pokemon1 CORPHISH
- ec_pokemon1 CRAWDAUNT
- ec_move1 SCREECH
- ec_move1 CROSS_CHOP
- ec_move2 BULLET_SEED
- ec_pokemon2 SMOOCHUM
- ec_pokemon1 KYOGRE
+ .2byte EC_POKEMON2(KABUTO)
+ .2byte EC_POKEMON2(KABUTOPS)
+ ec_duplicates 2
+ .2byte EC_POKEMON(KADABRA)
+ .2byte EC_POKEMON2(KADABRA)
+ .2byte EC_WORD_BUG
+ .2byte EC_WORD_COLD
+ .2byte EC_WORD_CAME
+ .2byte EC_WORD_FIGHTING
+ .2byte EC_WORD_BATTLE
+ .2byte EC_WORD_FIGHT
+ .2byte EC_WORD_BATTLE_ARMOR
+ .2byte EC_WORD_BATTLE_ROOM
+ .2byte EC_WORD_FAINTED
+ .2byte EC_POKEMON2(KANGASKHAN)
+ .2byte EC_POKEMON(CARVANHA)
+ .2byte EC_WORD_CAN_WIN
+ .2byte EC_WORD_CAN_T
+ .2byte EC_POKEMON(BRELOOM)
+ .2byte EC_POKEMON2(HITMONTOP)
+ .2byte EC_POKEMON(LUDICOLO)
+ .2byte EC_MOVE(KARATE_CHOP)
+ .2byte EC_WORD_DESTINY
+ .2byte EC_POKEMON2(TOTODILE)
+ ec_duplicates 2
+ .2byte EC_POKEMON(MAGIKARP)
+ .2byte EC_POKEMON2(MAGIKARP)
+ .2byte EC_WORD_CARDS
+ .2byte EC_MOVE2(WATERFALL)
+ .2byte EC_WORD_DEPT_STORE
+ .2byte EC_POKEMON(KECLEON)
+ .2byte EC_POKEMON2(PILOSWINE)
+ .2byte EC_WORD_NONE
+ .2byte EC_WORD_GIGGLE
+ .2byte EC_POKEMON2(HITMONLEE)
+ .2byte EC_WORD_TICKLISH
+ .2byte EC_WORD_KID
+ .2byte EC_WORD_CHILDREN
+ .2byte EC_WORD_KINDERGARTEN
+ .2byte EC_WORD_CHILD_S_PLAY
+ .2byte EC_POKEMON(BAGON)
+ .2byte EC_POKEMON2(KINGLER)
+ .2byte EC_POKEMON(KIRLIA)
+ .2byte EC_MOVE2(VICE_GRIP)
+ .2byte EC_MOVE(BIND)
+ .2byte EC_WORD_THIN
+ .2byte EC_WORD_RANK
+ .2byte EC_WORD_SMALL
+ ec_duplicates 2
+ .2byte EC_POKEMON(GEODUDE)
+ .2byte EC_POKEMON2(GEODUDE)
+ .2byte EC_WORD_AIR_LOCK
+ .2byte EC_MOVE(RAZOR_WIND)
+ .2byte EC_WORD_LIQUID_OOZE
+ .2byte EC_WORD_SMART
+ .2byte EC_WORD_SMARTNESS
+ .2byte EC_POKEMON(TRAPINCH)
+ .2byte EC_POKEMON(SHROOMISH)
+ .2byte EC_MOVE(CRUNCH)
+ .2byte EC_MOVE2(BONE_RUSH)
+ .2byte EC_MOVE2(BONE_CLUB)
+ .2byte EC_MOVE2(BONEMERANG)
+ .2byte EC_POKEMON2(BELLSPROUT)
+ .2byte EC_POKEMON2(MAROWAK)
+ ec_duplicates 2
+ .2byte EC_POKEMON(WIGGLYTUFF)
+ .2byte EC_POKEMON2(WIGGLYTUFF)
+ .2byte EC_WORD_TIGHT
+ .2byte EC_POKEMON2(EXEGGUTOR)
+ .2byte EC_POKEMON2(KAKUNA)
+ .2byte EC_MOVE2(COMET_PUNCH)
+ .2byte EC_WORD_COME_ON
+ .2byte EC_WORD_COME
+ .2byte EC_WORD_COMPLETE
+ .2byte EC_MOVE2(MINIMIZE)
+ .2byte EC_MOVE2(CONFUSION)
+ .2byte EC_MOVE(CONFUSE_RAY)
+ .2byte EC_WORD_CAN
+ .2byte EC_WORD_COULDN_T
+ .2byte EC_WORD_COULD
+ .2byte EC_MOVE(COUNTER)
+ .2byte EC_WORD_INNER_FOCUS
+ .2byte EC_MOVE(HEADBUTT)
+ .2byte EC_WORD_FEVER
+ .2byte EC_MOVE(COSMIC_POWER)
+ .2byte EC_WORD_TREASURE
+ .2byte EC_MOVE(CRABHAMMER)
+ .2byte EC_POKEMON2(KRABBY)
+ .2byte EC_WORD_POWER
+ ec_duplicates 2
+ .2byte EC_WORD_HUGE_POWER
+ .2byte EC_MOVE2(SUPERPOWER)
+ .2byte EC_MOVE2(HIDDEN_POWER)
+ .2byte EC_POKEMON(LOUDRED)
+ .2byte EC_POKEMON2(MURKROW)
+ .2byte EC_MOVE2(SCRATCH)
+ .2byte EC_MOVE2(FURY_SWIPES)
+ .2byte EC_POKEMON(EXPLOUD)
+ .2byte EC_POKEMON(CORPHISH)
+ .2byte EC_POKEMON(CRAWDAUNT)
+ .2byte EC_MOVE(SCREECH)
+ .2byte EC_MOVE(CROSS_CHOP)
+ .2byte EC_MOVE2(BULLET_SEED)
+ .2byte EC_POKEMON2(SMOOCHUM)
+ .2byte EC_POKEMON(KYOGRE)
gEasyChatWordsByLetter_L:
- ec_word SEE
- ec_move1 CHARGE
- ec_word STORE
- ec_word STORES
- ec_pokemon2 SLOWBRO
- ec_word LALALA
- ec_duplicates 2
- ec_pokemon1 CHINCHOU
- ec_pokemon2 CHINCHOU
- ec_word WAIT
- ec_word BORING
- ec_duplicates 2
- ec_pokemon1 LANTURN
- ec_pokemon2 LANTURN
- ec_word PUSHOVER
- ec_pokemon2 LAPRAS
- ec_word SOUNDPROOF
- ec_pokemon2 LARVITAR
- ec_pokemon2 SLOWKING
- ec_word LET_S
- ec_pokemon1 LATIAS
- ec_pokemon1 LATIOS
- ec_word WANDERING
- ec_move2 LEAF_BLADE
- ec_word MOOD
- ec_word LOUSY
- ec_word NOISY
- ec_move1 SACRED_FIRE
- ec_word LUKEWARM
- ec_pokemon2 MOLTRES
- ec_word LIFE
- ec_word LIVING
- ec_word THIRSTY
- ec_word TASTY
- ec_pokemon2 LEDIAN
- ec_pokemon2 LEDYBA
- ec_word LEGEND
- ec_move2 MUDDY_WATER
- ec_move2 MUD_SLAP
- ec_move2 MUD_SHOT
- ec_move2 MUD_SPORT
- ec_word TEACH
- ec_word TEACHER
- ec_word TEACHES
- ec_word EASY
- ec_move1 PAIN_SPLIT
- ec_duplicates 2
- ec_word LEADER
- ec_word LEADERS
- ec_word CLASS
- ec_duplicates 2
- ec_pokemon1 ELECTRODE
- ec_pokemon2 ELECTRODE
- ec_pokemon1 CLAYDOL
- ec_word LEARN
- ec_word STUDY
- ec_pokemon1 SLAKING
- ec_word LAST
- ec_word FINAL
- ec_word WINNER
- ec_word LEVEL
- ec_pokemon1 FLYGON
- ec_word KNOCKOUT
- ec_move2 LIGHT_SCREEN
- ec_pokemon1 LUVDISC
- ec_pokemon1 LILEEP
- ec_word LINK
- ec_word LEFT
- ec_word PRAISE
- ec_move1 SWEET_SCENT
- ec_pokemon1 BLAZIKEN
- ec_word LOCOMOTIVE
- ec_pokemon1 LOMBRE
- ec_pokemon2 BAYLEEF
- ec_word GO
- ec_word LOSER
- ec_pokemon1 LOTAD
- ec_move1 AEROBLAST
- ec_word LIE
- ec_pokemon2 LUGIA
- ec_word LOLLING
- ec_pokemon1 LUNATONE
- ec_word FUNNY
+ .2byte EC_WORD_SEE
+ .2byte EC_MOVE(CHARGE)
+ .2byte EC_WORD_STORE
+ .2byte EC_WORD_STORES
+ .2byte EC_POKEMON2(SLOWBRO)
+ .2byte EC_WORD_LALALA
+ ec_duplicates 2
+ .2byte EC_POKEMON(CHINCHOU)
+ .2byte EC_POKEMON2(CHINCHOU)
+ .2byte EC_WORD_WAIT
+ .2byte EC_WORD_BORING
+ ec_duplicates 2
+ .2byte EC_POKEMON(LANTURN)
+ .2byte EC_POKEMON2(LANTURN)
+ .2byte EC_WORD_PUSHOVER
+ .2byte EC_POKEMON2(LAPRAS)
+ .2byte EC_WORD_SOUNDPROOF
+ .2byte EC_POKEMON2(LARVITAR)
+ .2byte EC_POKEMON2(SLOWKING)
+ .2byte EC_WORD_LET_S
+ .2byte EC_POKEMON(LATIAS)
+ .2byte EC_POKEMON(LATIOS)
+ .2byte EC_WORD_WANDERING
+ .2byte EC_MOVE2(LEAF_BLADE)
+ .2byte EC_WORD_MOOD
+ .2byte EC_WORD_LOUSY
+ .2byte EC_WORD_NOISY
+ .2byte EC_MOVE(SACRED_FIRE)
+ .2byte EC_WORD_LUKEWARM
+ .2byte EC_POKEMON2(MOLTRES)
+ .2byte EC_WORD_LIFE
+ .2byte EC_WORD_LIVING
+ .2byte EC_WORD_THIRSTY
+ .2byte EC_WORD_TASTY
+ .2byte EC_POKEMON2(LEDIAN)
+ .2byte EC_POKEMON2(LEDYBA)
+ .2byte EC_WORD_LEGEND
+ .2byte EC_MOVE2(MUDDY_WATER)
+ .2byte EC_MOVE2(MUD_SLAP)
+ .2byte EC_MOVE2(MUD_SHOT)
+ .2byte EC_MOVE2(MUD_SPORT)
+ .2byte EC_WORD_TEACH
+ .2byte EC_WORD_TEACHER
+ .2byte EC_WORD_TEACHES
+ .2byte EC_WORD_EASY
+ .2byte EC_MOVE(PAIN_SPLIT)
+ ec_duplicates 2
+ .2byte EC_WORD_LEADER
+ .2byte EC_WORD_LEADERS
+ .2byte EC_WORD_CLASS
+ ec_duplicates 2
+ .2byte EC_POKEMON(ELECTRODE)
+ .2byte EC_POKEMON2(ELECTRODE)
+ .2byte EC_POKEMON(CLAYDOL)
+ .2byte EC_WORD_LEARN
+ .2byte EC_WORD_STUDY
+ .2byte EC_POKEMON(SLAKING)
+ .2byte EC_WORD_LAST
+ .2byte EC_WORD_FINAL
+ .2byte EC_WORD_WINNER
+ .2byte EC_WORD_LEVEL
+ .2byte EC_POKEMON(FLYGON)
+ .2byte EC_WORD_KNOCKOUT
+ .2byte EC_MOVE2(LIGHT_SCREEN)
+ .2byte EC_POKEMON(LUVDISC)
+ .2byte EC_POKEMON(LILEEP)
+ .2byte EC_WORD_LINK
+ .2byte EC_WORD_LEFT
+ .2byte EC_WORD_PRAISE
+ .2byte EC_MOVE(SWEET_SCENT)
+ .2byte EC_POKEMON(BLAZIKEN)
+ .2byte EC_WORD_LOCOMOTIVE
+ .2byte EC_POKEMON(LOMBRE)
+ .2byte EC_POKEMON2(BAYLEEF)
+ .2byte EC_WORD_GO
+ .2byte EC_WORD_LOSER
+ .2byte EC_POKEMON(LOTAD)
+ .2byte EC_MOVE(AEROBLAST)
+ .2byte EC_WORD_LIE
+ .2byte EC_POKEMON2(LUGIA)
+ .2byte EC_WORD_LOLLING
+ .2byte EC_POKEMON(LUNATONE)
+ .2byte EC_WORD_FUNNY
gEasyChatWordsByLetter_M:
- ec_word DO
- ec_word MAKE
- ec_duplicates 2
- ec_pokemon1 MACHOP
- ec_pokemon2 MACHOP
- ec_duplicates 2
- ec_pokemon1 MACHAMP
- ec_pokemon2 MACHAMP
- ec_word DOESN_T
- ec_word GIRL
- ec_word MAGAZINE
- ec_pokemon2 MAGBY
- ec_duplicates 2
- ec_pokemon1 MAGCARGO
- ec_pokemon2 MAGCARGO
- ec_word HUNGRY
- ec_move2 MAGIC_COAT
- ec_word MAGMA_ARMOR
- ec_pokemon2 MAGMAR
- ec_pokemon1 MIGHTYENA
- ec_word MAGNET_PULL
- ec_duplicates 2
- ec_pokemon1 MAGNEMITE
- ec_pokemon2 MAGNEMITE
- ec_duplicates 2
- ec_pokemon1 MAGNETON
- ec_pokemon2 MAGNETON
- ec_pokemon1 MAKUHITA
- ec_word VORACIOUS
- ec_word MAN
- ec_pokemon2 MANTINE
- ec_duplicates 2
- ec_pokemon1 MARILL
- ec_pokemon2 MARILL
- ec_word MACHINE
- ec_duplicates 2
- ec_pokemon1 MACHOKE
- ec_pokemon2 MACHOKE
- ec_pokemon1 MASQUERAIN
- ec_move2 SLUDGE_BOMB
- ec_pokemon2 MEOWTH
- ec_word MC
- ec_pokemon1 MEDICHAM
- ec_move2 MEDITATE
- ec_pokemon1 MEDITITE
- ec_word MEGA
- ec_word HAPPILY
- ec_move2 MEGA_PUNCH
- ec_move2 MEGA_KICK
- ec_pokemon2 MEGANIUM
- ec_move2 MEGA_DRAIN
- ec_word MORE
- ec_word MY
- ec_word WHO_WAS
- ec_word OH_DEAR
- ec_word MASTER
- ec_move1 MEMENTO
- ec_pokemon2 MANKEY
- ec_word PURE_POWER
- ec_pokemon1 METAGROSS
- ec_move2 METAL_CLAW
- ec_move1 METAL_SOUND
- ec_pokemon1 METANG
- ec_move1 WEATHER_BALL
- ec_move2 METRONOME
- ec_pokemon2 MEW
- ec_pokemon2 MEWTWO
- ec_word ME
- ec_word BADLY
- ec_word SHOULD
- ec_word RENTAL
- ec_move2 MILK_DRINK
- ec_pokemon1 MILOTIC
- ec_pokemon2 MILTANK
- ec_move2 MIMIC
- ec_pokemon1 MINUN
- ec_word MINUS
- ec_word MYSELF
- ec_word WITH
- ec_word PICKUP
- ec_word OVERWHELMING
- ec_word MESSAGE
- ec_word WEDNESDAY
- ec_word BLEND
- ec_word MMM
- ec_word WANT
- ec_word FASHION
- ec_word MODERN
- ec_pokemon2 SUDOWOODO
- ec_move2 FAKE_OUT
- ec_word CURRENT
- ec_word MONTH
- ec_move2 MOONLIGHT
- ec_word MONDAY
- ec_pokemon1 MARSHTOMP
- ec_word MORNING
- ec_move1 MORNING_SUN
- ec_pokemon2 QUAGSIRE
- ec_word TIRED
- ec_word USELESS
- ec_word VITAL_SPIRIT
- ec_pokemon1 VIGOROTH
- ec_pokemon2 SHELLDER
- ec_word MUSIC
- ec_word MUST_BE
- ec_word PATTERN
- ec_word GUTSY
- ec_word MOTHER
- ec_duplicates 2
- ec_pokemon1 ODDISH
- ec_pokemon2 ODDISH
+ .2byte EC_WORD_DO
+ .2byte EC_WORD_MAKE
+ ec_duplicates 2
+ .2byte EC_POKEMON(MACHOP)
+ .2byte EC_POKEMON2(MACHOP)
+ ec_duplicates 2
+ .2byte EC_POKEMON(MACHAMP)
+ .2byte EC_POKEMON2(MACHAMP)
+ .2byte EC_WORD_DOESN_T
+ .2byte EC_WORD_GIRL
+ .2byte EC_WORD_MAGAZINE
+ .2byte EC_POKEMON2(MAGBY)
+ ec_duplicates 2
+ .2byte EC_POKEMON(MAGCARGO)
+ .2byte EC_POKEMON2(MAGCARGO)
+ .2byte EC_WORD_HUNGRY
+ .2byte EC_MOVE2(MAGIC_COAT)
+ .2byte EC_WORD_MAGMA_ARMOR
+ .2byte EC_POKEMON2(MAGMAR)
+ .2byte EC_POKEMON(MIGHTYENA)
+ .2byte EC_WORD_MAGNET_PULL
+ ec_duplicates 2
+ .2byte EC_POKEMON(MAGNEMITE)
+ .2byte EC_POKEMON2(MAGNEMITE)
+ ec_duplicates 2
+ .2byte EC_POKEMON(MAGNETON)
+ .2byte EC_POKEMON2(MAGNETON)
+ .2byte EC_POKEMON(MAKUHITA)
+ .2byte EC_WORD_VORACIOUS
+ .2byte EC_WORD_MAN
+ .2byte EC_POKEMON2(MANTINE)
+ ec_duplicates 2
+ .2byte EC_POKEMON(MARILL)
+ .2byte EC_POKEMON2(MARILL)
+ .2byte EC_WORD_MACHINE
+ ec_duplicates 2
+ .2byte EC_POKEMON(MACHOKE)
+ .2byte EC_POKEMON2(MACHOKE)
+ .2byte EC_POKEMON(MASQUERAIN)
+ .2byte EC_MOVE2(SLUDGE_BOMB)
+ .2byte EC_POKEMON2(MEOWTH)
+ .2byte EC_WORD_MC
+ .2byte EC_POKEMON(MEDICHAM)
+ .2byte EC_MOVE2(MEDITATE)
+ .2byte EC_POKEMON(MEDITITE)
+ .2byte EC_WORD_MEGA
+ .2byte EC_WORD_HAPPILY
+ .2byte EC_MOVE2(MEGA_PUNCH)
+ .2byte EC_MOVE2(MEGA_KICK)
+ .2byte EC_POKEMON2(MEGANIUM)
+ .2byte EC_MOVE2(MEGA_DRAIN)
+ .2byte EC_WORD_MORE
+ .2byte EC_WORD_MY
+ .2byte EC_WORD_WHO_WAS
+ .2byte EC_WORD_OH_DEAR
+ .2byte EC_WORD_MASTER
+ .2byte EC_MOVE(MEMENTO)
+ .2byte EC_POKEMON2(MANKEY)
+ .2byte EC_WORD_PURE_POWER
+ .2byte EC_POKEMON(METAGROSS)
+ .2byte EC_MOVE2(METAL_CLAW)
+ .2byte EC_MOVE(METAL_SOUND)
+ .2byte EC_POKEMON(METANG)
+ .2byte EC_MOVE(WEATHER_BALL)
+ .2byte EC_MOVE2(METRONOME)
+ .2byte EC_POKEMON2(MEW)
+ .2byte EC_POKEMON2(MEWTWO)
+ .2byte EC_WORD_ME
+ .2byte EC_WORD_BADLY
+ .2byte EC_WORD_SHOULD
+ .2byte EC_WORD_RENTAL
+ .2byte EC_MOVE2(MILK_DRINK)
+ .2byte EC_POKEMON(MILOTIC)
+ .2byte EC_POKEMON2(MILTANK)
+ .2byte EC_MOVE2(MIMIC)
+ .2byte EC_POKEMON(MINUN)
+ .2byte EC_WORD_MINUS
+ .2byte EC_WORD_MYSELF
+ .2byte EC_WORD_WITH
+ .2byte EC_WORD_PICKUP
+ .2byte EC_WORD_OVERWHELMING
+ .2byte EC_WORD_MESSAGE
+ .2byte EC_WORD_WEDNESDAY
+ .2byte EC_WORD_BLEND
+ .2byte EC_WORD_MMM
+ .2byte EC_WORD_WANT
+ .2byte EC_WORD_FASHION
+ .2byte EC_WORD_MODERN
+ .2byte EC_POKEMON2(SUDOWOODO)
+ .2byte EC_MOVE2(FAKE_OUT)
+ .2byte EC_WORD_CURRENT
+ .2byte EC_WORD_MONTH
+ .2byte EC_MOVE2(MOONLIGHT)
+ .2byte EC_WORD_MONDAY
+ .2byte EC_POKEMON(MARSHTOMP)
+ .2byte EC_WORD_MORNING
+ .2byte EC_MOVE(MORNING_SUN)
+ .2byte EC_POKEMON2(QUAGSIRE)
+ .2byte EC_WORD_TIRED
+ .2byte EC_WORD_USELESS
+ .2byte EC_WORD_VITAL_SPIRIT
+ .2byte EC_POKEMON(VIGOROTH)
+ .2byte EC_POKEMON2(SHELLDER)
+ .2byte EC_WORD_MUSIC
+ .2byte EC_WORD_MUST_BE
+ .2byte EC_WORD_PATTERN
+ .2byte EC_WORD_GUTSY
+ .2byte EC_WORD_MOTHER
+ ec_duplicates 2
+ .2byte EC_POKEMON(ODDISH)
+ .2byte EC_POKEMON2(ODDISH)
gEasyChatWordsByLetter_N:
- ec_word AFTER
- ec_move1 SKETCH
- ec_move1 GRUDGE
- ec_word NEXT
- ec_word NIGHT
- ec_pokemon2 UMBREON
- ec_move1 NIGHTMARE
- ec_move2 NIGHT_SHADE
- ec_move2 PIN_MISSILE
- ec_word NEAR
- ec_word CLOSE
- ec_word DIET
- ec_word NAME
- ec_word SWEETS
- ec_pokemon1 NOSEPASS
- ec_move2 WATER_SPORT
- ec_duplicates 2
- ec_pokemon1 NATU
- ec_pokemon2 NATU
- ec_move1 NATURE_POWER
- ec_word NATURAL
- ec_word CANCEL
- ec_move2 MIST_BALL
- ec_word BESIDE
- ec_pokemon2 GASTLY
- ec_word NEGATIVE
- ec_word NO
- ec_word NICE
- ec_word NEWS
- ec_word CLEAR_BODY
- ec_word DON_T
- ec_word DIDN_T
- ec_word DISLIKE
- ec_word NOT
- ec_word NOT_VERY
- ec_word ISN_T_IT_QUES
- ec_word NOTHING
- ec_word NAP
- ec_pokemon2 NIDOKING
- ec_pokemon2 NIDOQUEEN
- ec_pokemon2 NIDORAN_F
- ec_pokemon2 NIDORAN_M
- ec_pokemon2 NIDORINA
- ec_pokemon2 NIDORINO
- ec_word NEVER
- ec_word LOW
- ec_word DRIZZLE
- ec_move2 NEEDLE_ARM
- ec_word TAKE_THAT
- ec_pokemon1 NINCADA
- ec_pokemon1 NINJASK
- ec_pokemon1 SHEDINJA
- ec_word NOPE
- ec_word TOTALLY
- ec_word THAT_S
- ec_pokemon2 HITMONCHAN
- ec_pokemon2 NOCTOWL
- ec_pokemon1 CACTURNE
- ec_word NON_STOP
- ec_word YET
- ec_word NORMAL
- ec_word OVERGROW
- ec_word MARVEL_SCALE
- ec_move1 ENDEAVOR
- ec_word NO_1
- ec_word WELL_THEN
- ec_word ONLY
+ .2byte EC_WORD_AFTER
+ .2byte EC_MOVE(SKETCH)
+ .2byte EC_MOVE(GRUDGE)
+ .2byte EC_WORD_NEXT
+ .2byte EC_WORD_NIGHT
+ .2byte EC_POKEMON2(UMBREON)
+ .2byte EC_MOVE(NIGHTMARE)
+ .2byte EC_MOVE2(NIGHT_SHADE)
+ .2byte EC_MOVE2(PIN_MISSILE)
+ .2byte EC_WORD_NEAR
+ .2byte EC_WORD_CLOSE
+ .2byte EC_WORD_DIET
+ .2byte EC_WORD_NAME
+ .2byte EC_WORD_SWEETS
+ .2byte EC_POKEMON(NOSEPASS)
+ .2byte EC_MOVE2(WATER_SPORT)
+ ec_duplicates 2
+ .2byte EC_POKEMON(NATU)
+ .2byte EC_POKEMON2(NATU)
+ .2byte EC_MOVE(NATURE_POWER)
+ .2byte EC_WORD_NATURAL
+ .2byte EC_WORD_CANCEL
+ .2byte EC_MOVE2(MIST_BALL)
+ .2byte EC_WORD_BESIDE
+ .2byte EC_POKEMON2(GASTLY)
+ .2byte EC_WORD_NEGATIVE
+ .2byte EC_WORD_NO
+ .2byte EC_WORD_NICE
+ .2byte EC_WORD_NEWS
+ .2byte EC_WORD_CLEAR_BODY
+ .2byte EC_WORD_DON_T
+ .2byte EC_WORD_DIDN_T
+ .2byte EC_WORD_DISLIKE
+ .2byte EC_WORD_NOT
+ .2byte EC_WORD_NOT_VERY
+ .2byte EC_WORD_ISN_T_IT_QUES
+ .2byte EC_WORD_NOTHING
+ .2byte EC_WORD_NAP
+ .2byte EC_POKEMON2(NIDOKING)
+ .2byte EC_POKEMON2(NIDOQUEEN)
+ .2byte EC_POKEMON2(NIDORAN_F)
+ .2byte EC_POKEMON2(NIDORAN_M)
+ .2byte EC_POKEMON2(NIDORINA)
+ .2byte EC_POKEMON2(NIDORINO)
+ .2byte EC_WORD_NEVER
+ .2byte EC_WORD_LOW
+ .2byte EC_WORD_DRIZZLE
+ .2byte EC_MOVE2(NEEDLE_ARM)
+ .2byte EC_WORD_TAKE_THAT
+ .2byte EC_POKEMON(NINCADA)
+ .2byte EC_POKEMON(NINJASK)
+ .2byte EC_POKEMON(SHEDINJA)
+ .2byte EC_WORD_NOPE
+ .2byte EC_WORD_TOTALLY
+ .2byte EC_WORD_THAT_S
+ .2byte EC_POKEMON2(HITMONCHAN)
+ .2byte EC_POKEMON2(NOCTOWL)
+ .2byte EC_POKEMON(CACTURNE)
+ .2byte EC_WORD_NON_STOP
+ .2byte EC_WORD_YET
+ .2byte EC_WORD_NORMAL
+ .2byte EC_WORD_OVERGROW
+ .2byte EC_WORD_MARVEL_SCALE
+ .2byte EC_MOVE(ENDEAVOR)
+ .2byte EC_WORD_NO_1
+ .2byte EC_WORD_WELL_THEN
+ .2byte EC_WORD_ONLY
gEasyChatWordsByLetter_O:
- ec_word OK_QUES
- ec_word UP
- ec_word ABOVE
- ec_word ALTHOUGH
- ec_move1 OCTAZOOKA
- ec_pokemon2 OCTILLERY
- ec_word OR
- ec_word OFFENSIVE
- ec_word OH
- ec_word UH_OH
- ec_word OH_YEAH
- ec_word OH_QUES
- ec_word WITHOUT
- ec_word OI_OI_OI
- ec_word OH_KAY
- ec_word OLD
- ec_pokemon2 VENOMOTH
- ec_pokemon2 ONIX
- ec_word UNCLE
- ec_word HOPELESS
- ec_word WHOAH
- ec_word PLACE
- ec_pokemon2 EXEGGCUTE
+ .2byte EC_WORD_OK_QUES
+ .2byte EC_WORD_UP
+ .2byte EC_WORD_ABOVE
+ .2byte EC_WORD_ALTHOUGH
+ .2byte EC_MOVE(OCTAZOOKA)
+ .2byte EC_POKEMON2(OCTILLERY)
+ .2byte EC_WORD_OR
+ .2byte EC_WORD_OFFENSIVE
+ .2byte EC_WORD_OH
+ .2byte EC_WORD_UH_OH
+ .2byte EC_WORD_OH_YEAH
+ .2byte EC_WORD_OH_QUES
+ .2byte EC_WORD_WITHOUT
+ .2byte EC_WORD_OI_OI_OI
+ .2byte EC_WORD_OH_KAY
+ .2byte EC_WORD_OLD
+ .2byte EC_POKEMON2(VENOMOTH)
+ .2byte EC_POKEMON2(ONIX)
+ .2byte EC_WORD_UNCLE
+ .2byte EC_WORD_HOPELESS
+ .2byte EC_WORD_WHOAH
+ .2byte EC_WORD_PLACE
+ .2byte EC_POKEMON2(EXEGGCUTE)
gEasyChatWordsByLetter_P:
- ec_pokemon1 CHIMECHO
- ec_pokemon1 SPINDA
- ec_pokemon1 CASCOON
- ec_pokemon2 MR_MIME
- ec_duplicates 2
- ec_pokemon1 SKARMORY
- ec_pokemon2 SKARMORY
- ec_word SHELL_ARMOR
- ec_move1 WITHDRAW
- ec_pokemon1 BEAUTIFLY
- ec_pokemon2 JUMPLUFF
- ec_pokemon2 PARAS
- ec_pokemon2 PARASECT
- ec_word PARDON
- ec_word MATCH
- ec_word PARTNER
- ec_word PARTY
- ec_word PC
- ec_pokemon1 PELIPPER
- ec_word PERFECT
- ec_word PERFECTION
- ec_pokemon1 CLAMPERL
- ec_word PERSON
- ec_word GRASS
- ec_word CHORES
- ec_move2 POUND
- ec_duplicates 2
- ec_pokemon1 PHANPY
- ec_pokemon2 PHANPY
- ec_duplicates 2
- ec_pokemon1 PICHU
- ec_pokemon2 PICHU
- ec_pokemon2 CLEFAIRY
- ec_pokemon2 CLEFFA
- ec_duplicates 2
- ec_pokemon1 PIKACHU
- ec_pokemon2 PIKACHU
- ec_move1 SPORE
- ec_duplicates 2
- ec_pokemon1 PINSIR
- ec_pokemon2 PINSIR
- ec_pokemon2 CLEFABLE
- ec_move2 SPLASH
- ec_word CHAT
- ec_word PLUS
- ec_word PLUSH_DOLL
- ec_pokemon1 PLUSLE
- ec_word POKEDEX
- ec_word POKEMON
- ec_word POKENAV
- ec_word POKEBLOCK
- ec_word PKRS
- ec_pokemon2 PONYTA
- ec_word NEW
- ec_word POPULAR
- ec_pokemon2 FARFETCHD
- ec_pokemon2 PORYGON
- ec_pokemon2 PORYGON2
- ec_word MAIL
- ec_pokemon2 SHUCKLE
- ec_move1 FOCUS_PUNCH
- ec_word FORECAST
- ec_move2 BULK_UP
- ec_move2 BEAT_UP
- ec_word SNORT
- ec_pokemon2 ESPEON
- ec_word PSYCHIC
- ec_move1 PSYCH_UP
- ec_move1 PSYCHIC
- ec_move1 KINESIS
- ec_move1 PSYBEAM
- ec_move1 PSYWAVE
- ec_word SHIELD_DUST
- ec_pokemon1 DUSTOX
- ec_word WHITE_SMOKE
- ec_move1 POWDER_SNOW
- ec_duplicates 2
- ec_pokemon1 JIGGLYPUFF
- ec_pokemon2 JIGGLYPUFF
- ec_word POINTS
- ec_pokemon2 PUPITAR
- ec_pokemon1 BALTOY
+ .2byte EC_POKEMON(CHIMECHO)
+ .2byte EC_POKEMON(SPINDA)
+ .2byte EC_POKEMON(CASCOON)
+ .2byte EC_POKEMON2(MR_MIME)
+ ec_duplicates 2
+ .2byte EC_POKEMON(SKARMORY)
+ .2byte EC_POKEMON2(SKARMORY)
+ .2byte EC_WORD_SHELL_ARMOR
+ .2byte EC_MOVE(WITHDRAW)
+ .2byte EC_POKEMON(BEAUTIFLY)
+ .2byte EC_POKEMON2(JUMPLUFF)
+ .2byte EC_POKEMON2(PARAS)
+ .2byte EC_POKEMON2(PARASECT)
+ .2byte EC_WORD_PARDON
+ .2byte EC_WORD_MATCH
+ .2byte EC_WORD_PARTNER
+ .2byte EC_WORD_PARTY
+ .2byte EC_WORD_PC
+ .2byte EC_POKEMON(PELIPPER)
+ .2byte EC_WORD_PERFECT
+ .2byte EC_WORD_PERFECTION
+ .2byte EC_POKEMON(CLAMPERL)
+ .2byte EC_WORD_PERSON
+ .2byte EC_WORD_GRASS
+ .2byte EC_WORD_CHORES
+ .2byte EC_MOVE2(POUND)
+ ec_duplicates 2
+ .2byte EC_POKEMON(PHANPY)
+ .2byte EC_POKEMON2(PHANPY)
+ ec_duplicates 2
+ .2byte EC_POKEMON(PICHU)
+ .2byte EC_POKEMON2(PICHU)
+ .2byte EC_POKEMON2(CLEFAIRY)
+ .2byte EC_POKEMON2(CLEFFA)
+ ec_duplicates 2
+ .2byte EC_POKEMON(PIKACHU)
+ .2byte EC_POKEMON2(PIKACHU)
+ .2byte EC_MOVE(SPORE)
+ ec_duplicates 2
+ .2byte EC_POKEMON(PINSIR)
+ .2byte EC_POKEMON2(PINSIR)
+ .2byte EC_POKEMON2(CLEFABLE)
+ .2byte EC_MOVE2(SPLASH)
+ .2byte EC_WORD_CHAT
+ .2byte EC_WORD_PLUS
+ .2byte EC_WORD_PLUSH_DOLL
+ .2byte EC_POKEMON(PLUSLE)
+ .2byte EC_WORD_POKEDEX
+ .2byte EC_WORD_POKEMON
+ .2byte EC_WORD_POKENAV
+ .2byte EC_WORD_POKEBLOCK
+ .2byte EC_WORD_PKRS
+ .2byte EC_POKEMON2(PONYTA)
+ .2byte EC_WORD_NEW
+ .2byte EC_WORD_POPULAR
+ .2byte EC_POKEMON2(FARFETCHD)
+ .2byte EC_POKEMON2(PORYGON)
+ .2byte EC_POKEMON2(PORYGON2)
+ .2byte EC_WORD_MAIL
+ .2byte EC_POKEMON2(SHUCKLE)
+ .2byte EC_MOVE(FOCUS_PUNCH)
+ .2byte EC_WORD_FORECAST
+ .2byte EC_MOVE2(BULK_UP)
+ .2byte EC_MOVE2(BEAT_UP)
+ .2byte EC_WORD_SNORT
+ .2byte EC_POKEMON2(ESPEON)
+ .2byte EC_WORD_PSYCHIC
+ .2byte EC_MOVE(PSYCH_UP)
+ .2byte EC_MOVE(PSYCHIC)
+ .2byte EC_MOVE(KINESIS)
+ .2byte EC_MOVE(PSYBEAM)
+ .2byte EC_MOVE(PSYWAVE)
+ .2byte EC_WORD_SHIELD_DUST
+ .2byte EC_POKEMON(DUSTOX)
+ .2byte EC_WORD_WHITE_SMOKE
+ .2byte EC_MOVE(POWDER_SNOW)
+ ec_duplicates 2
+ .2byte EC_POKEMON(JIGGLYPUFF)
+ .2byte EC_POKEMON2(JIGGLYPUFF)
+ .2byte EC_WORD_POINTS
+ .2byte EC_POKEMON2(PUPITAR)
+ .2byte EC_POKEMON(BALTOY)
gEasyChatWordsByLetter_Q:
- ec_pokemon2 POLIWRATH
- ec_pokemon2 POLIWAG
- ec_pokemon2 POLIWHIRL
- ec_pokemon2 POLITOED
- ec_pokemon2 SWINUB
- ec_pokemon1 TORKOAL
+ .2byte EC_POKEMON2(POLIWRATH)
+ .2byte EC_POKEMON2(POLIWAG)
+ .2byte EC_POKEMON2(POLIWHIRL)
+ .2byte EC_POKEMON2(POLITOED)
+ .2byte EC_POKEMON2(SWINUB)
+ .2byte EC_POKEMON(TORKOAL)
gEasyChatWordsByLetter_R:
- ec_pokemon2 TYROGUE
- ec_word RADIO
- ec_duplicates 2
- ec_pokemon1 RAICHU
- ec_pokemon2 RAICHU
- ec_pokemon2 RAIKOU
- ec_move2 VINE_WHIP
- ec_pokemon2 PRIMEAPE
- ec_move1 RAGE
- ec_move2 RAZOR_LEAF
- ec_word RIPPED
- ec_pokemon2 RATTATA
- ec_pokemon2 RATICATE
- ec_move2 THIEF
- ec_move1 SMOKESCREEN
- ec_word ROUGH_SKIN
- ec_pokemon2 CATERPIE
- ec_pokemon1 RAYQUAZA
- ec_move2 HELPING_HAND
- ec_word RIGHT
- ec_word TALKING
- ec_word TALK
- ec_move2 REFLECT
- ec_word RULE
- ec_word RAIN_DISH
- ec_move1 RAIN_DANCE
- ec_pokemon1 REGICE
- ec_pokemon1 REGIROCK
- ec_pokemon1 REGISTEEL
- ec_word ENOUGH
- ec_word TRAVEL
- ec_pokemon2 SNORLAX
- ec_pokemon1 RELICANTH
- ec_pokemon2 REMORAID
- ec_word RUN
- ec_word RUNS
- ec_pokemon1 GROVYLE
- ec_word CONCEDE
- ec_pokemon2 EKANS
- ec_word CORRECT
- ec_word AGREE
- ec_move1 SMELLING_SALT
- ec_duplicates 2
- ec_pokemon1 RHYHORN
- ec_pokemon2 RHYHORN
- ec_move1 DOUBLE_EDGE
- ec_word RIVAL
- ec_duplicates 2
- ec_pokemon1 RHYDON
- ec_pokemon2 RHYDON
- ec_word STURDY
- ec_word SHADY
- ec_move2 ROLE_PLAY
- ec_word ROMANTIC
- ec_pokemon1 ROSELIA
- ec_pokemon2 JYNX
- ec_word RPG
- ec_word SMELL_YA
- ec_word RUBY
- ec_move2 BLOCK
- ec_move1 RETURN
- ec_move2 QUICK_ATTACK
- ec_word HALL_OF_FAME
- ec_word DESTROYED
- ec_move1 TAIL_WHIP
+ .2byte EC_POKEMON2(TYROGUE)
+ .2byte EC_WORD_RADIO
+ ec_duplicates 2
+ .2byte EC_POKEMON(RAICHU)
+ .2byte EC_POKEMON2(RAICHU)
+ .2byte EC_POKEMON2(RAIKOU)
+ .2byte EC_MOVE2(VINE_WHIP)
+ .2byte EC_POKEMON2(PRIMEAPE)
+ .2byte EC_MOVE(RAGE)
+ .2byte EC_MOVE2(RAZOR_LEAF)
+ .2byte EC_WORD_RIPPED
+ .2byte EC_POKEMON2(RATTATA)
+ .2byte EC_POKEMON2(RATICATE)
+ .2byte EC_MOVE2(THIEF)
+ .2byte EC_MOVE(SMOKESCREEN)
+ .2byte EC_WORD_ROUGH_SKIN
+ .2byte EC_POKEMON2(CATERPIE)
+ .2byte EC_POKEMON(RAYQUAZA)
+ .2byte EC_MOVE2(HELPING_HAND)
+ .2byte EC_WORD_RIGHT
+ .2byte EC_WORD_TALKING
+ .2byte EC_WORD_TALK
+ .2byte EC_MOVE2(REFLECT)
+ .2byte EC_WORD_RULE
+ .2byte EC_WORD_RAIN_DISH
+ .2byte EC_MOVE(RAIN_DANCE)
+ .2byte EC_POKEMON(REGICE)
+ .2byte EC_POKEMON(REGIROCK)
+ .2byte EC_POKEMON(REGISTEEL)
+ .2byte EC_WORD_ENOUGH
+ .2byte EC_WORD_TRAVEL
+ .2byte EC_POKEMON2(SNORLAX)
+ .2byte EC_POKEMON(RELICANTH)
+ .2byte EC_POKEMON2(REMORAID)
+ .2byte EC_WORD_RUN
+ .2byte EC_WORD_RUNS
+ .2byte EC_POKEMON(GROVYLE)
+ .2byte EC_WORD_CONCEDE
+ .2byte EC_POKEMON2(EKANS)
+ .2byte EC_WORD_CORRECT
+ .2byte EC_WORD_AGREE
+ .2byte EC_MOVE(SMELLING_SALT)
+ ec_duplicates 2
+ .2byte EC_POKEMON(RHYHORN)
+ .2byte EC_POKEMON2(RHYHORN)
+ .2byte EC_MOVE(DOUBLE_EDGE)
+ .2byte EC_WORD_RIVAL
+ ec_duplicates 2
+ .2byte EC_POKEMON(RHYDON)
+ .2byte EC_POKEMON2(RHYDON)
+ .2byte EC_WORD_STURDY
+ .2byte EC_WORD_SHADY
+ .2byte EC_MOVE2(ROLE_PLAY)
+ .2byte EC_WORD_ROMANTIC
+ .2byte EC_POKEMON(ROSELIA)
+ .2byte EC_POKEMON2(JYNX)
+ .2byte EC_WORD_RPG
+ .2byte EC_WORD_SMELL_YA
+ .2byte EC_WORD_RUBY
+ .2byte EC_MOVE2(BLOCK)
+ .2byte EC_MOVE(RETURN)
+ .2byte EC_MOVE2(QUICK_ATTACK)
+ .2byte EC_WORD_HALL_OF_FAME
+ .2byte EC_WORD_DESTROYED
+ .2byte EC_MOVE(TAIL_WHIP)
gEasyChatWordsByLetter_S:
- ec_word DROOLING
- ec_word THINGS
- ec_pokemon2 METAPOD
- ec_pokemon1 GOREBYSS
- ec_word INCREDIBLE
- ec_word SAYS
- ec_word SAID
- ec_word COLLECT
- ec_word COLLECTION
- ec_word SATURDAY
- ec_pokemon1 SEEDOT
- ec_duplicates 2
- ec_pokemon1 SANDSLASH
- ec_pokemon2 SANDSLASH
- ec_duplicates 2
- ec_pokemon1 SANDSHREW
- ec_pokemon2 SANDSHREW
- ec_move1 SAND_TOMB
- ec_word SAND_VEIL
- ec_duplicates 2
- ec_word SAND_STREAM
- ec_move1 SANDSTORM
- ec_move1 SAND_ATTACK
- ec_word DOCILE
- ec_word SAPPHIRE
- ec_pokemon2 VICTREEBEL
- ec_word SUCTION_CUPS
- ec_move2 ACID
- ec_move2 ACID_ARMOR
- ec_move2 DETECT
- ec_move2 SKULL_BASH
- ec_move2 HYPER_VOICE
- ec_pokemon1 SILCOON
- ec_move1 SHARPEN
- ec_word APPRECIATE
- ec_move1 DIG
- ec_word LOOKS
- ec_word SEEMS
- ec_word SHINE
- ec_move2 LUSTER_PURGE
- ec_word BREAK
- ec_word HYPER_CUTTER
- ec_pokemon2 SCIZOR
- ec_word JOKING
- ec_word TRENDY
- ec_pokemon2 SQUIRTLE
- ec_pokemon2 WARTORTLE
- ec_word SLEEP
- ec_move2 SLEEP_POWDER
- ec_move2 SLEEP_TALK
- ec_word SMACK
- ec_word SMITE
- ec_move2 SLUDGE
- ec_word WELL
- ec_word BAD
- ec_move1 LICK
- ec_word TWIRLING
- ec_word SLEPT
- ec_word AWFUL
- ec_move1 SLASH
- ec_word BEAT
- ec_pokemon1 SWALOT
- ec_pokemon1 GULPIN
- ec_pokemon2 LICKITUNG
- ec_word FINISH
- ec_move1 FLATTER
- ec_word SCATTER
- ec_pokemon1 BARBOACH
- ec_move2 PECK
- ec_move1 CLAMP
- ec_move1 SNORE
- ec_word TRUANT
- ec_duplicates 2
- ec_pokemon1 SLUGMA
- ec_pokemon2 SLUGMA
- ec_word FAST
- ec_pokemon1 SNORUNT
- ec_word LOVEY_DOVEY
- ec_word SADLY
- ec_move1 ODOR_SLEUTH
- ec_move2 SHOCK_WAVE
- ec_word KIDDING
- ec_word THOSE_ARE
- ec_word BEAUTIFUL
- ec_word FORGIVE
- ec_word GO_EASY
- ec_word BEAUTY
- ec_word TERRIBLE
- ec_word CRY
- ec_word CRIES
- ec_word SCHOOL
- ec_word SHAKY
- ec_move2 PROTECT
- ec_word THICK
- ec_word WEAK
- ec_pokemon1 TAILLOW
- ec_pokemon1 SWELLOW
- ec_word LEVITATE
- ec_move2 TAIL_GLOW
- ec_word HARD
- ec_move2 SWORDS_DANCE
- ec_word SISTER
- ec_word GIDDY
- ec_word MOMENTUM
- ec_duplicates 2
- ec_pokemon1 KINGDRA
- ec_pokemon2 KINGDRA
- ec_pokemon1 SEALEO
- ec_word SPIRIT
- ec_duplicates 2
- ec_pokemon1 SEADRA
- ec_pokemon2 SEADRA
- ec_pokemon1 SPHEAL
- ec_duplicates 2
- ec_pokemon1 HORSEA
- ec_pokemon2 HORSEA
- ec_word WORKS
- ec_move2 FUTURE_SIGHT
- ec_word VERY
- ec_word BE
- ec_word SHALLOW
- ec_word HIS
- ec_word BEING
- ec_word SINCE
- ec_word RARE
- ec_pokemon1 ZANGOOSE
- ec_word SERVICE
- ec_word SIGH
- ec_pokemon1 SHUPPET
- ec_pokemon2 SCYTHER
- ec_word SHE
- ec_word THEY_VE
- ec_word SOME
- ec_word SHE_IS
- ec_word WOMAN
- ec_word THEY_RE
- ec_word SHE_WAS
- ec_word THEY_WERE
- ec_word VICTORY
- ec_word CAN_T_WIN
- ec_word WHEN_I_WIN
- ec_word SEES
- ec_move2 LEER
- ec_move1 SILVER_WIND
- ec_duplicates 2
- ec_pokemon1 ALAKAZAM
- ec_pokemon2 ALAKAZAM
- ec_word THOSE
- ec_word AREN_T
- ec_word SENSE
- ec_duplicates 2
- ec_pokemon1 HERACROSS
- ec_pokemon2 HERACROSS
- ec_pokemon2 GLIGAR
- ec_move2 SLAM
- ec_duplicates 2
- ec_pokemon1 GRIMER
- ec_pokemon2 GRIMER
- ec_duplicates 2
- ec_pokemon1 MUK
- ec_pokemon2 MUK
- ec_pokemon2 BUTTERFREE
- ec_move1 SMOG
- ec_duplicates 2
- ec_pokemon1 WEEZING
- ec_pokemon2 WEEZING
- ec_duplicates 2
- ec_pokemon1 KOFFING
- ec_pokemon2 KOFFING
- ec_pokemon2 SNEASEL
- ec_pokemon2 PERSIAN
- ec_pokemon2 SNUBBULL
- ec_word SO
- ec_word AS_MUCH_AS
- ec_word SOFTWARE
- ec_move1 SOLAR_BEAM
- ec_word WEREN_T
- ec_word SUMMER
- ec_move1 EXTRASENSORY
- ec_word SONG
- ec_word SONGS
- ec_move2 SUNNY_DAY
- ec_pokemon1 SOLROCK
- ec_pokemon2 SUNFLORA
- ec_pokemon2 SUNKERN
- ec_word SUNDAY
- ec_word WORRY
- ec_word CARE
- ec_word CARES
- ec_word SORRY
- ec_move1 TICKLE
- ec_word LATE
- ec_word LATER
- ec_word WALK
- ec_word THICK_FAT
- ec_move2 MIRROR_COAT
- ec_move1 MIRROR_MOVE
- ec_word GAME
- ec_word PLAY
- ec_word PLAYS
- ec_word PLAYED
- ec_word TOYS
- ec_move1 SPIDER_WEB
- ec_pokemon1 SPOINK
- ec_word EFFECT_SPORE
- ec_word SPORTS
- ec_move1 FOLLOW_ME
- ec_move2 BOUNCE
- ec_move2 JUMP_KICK
- ec_move1 SHADOW_BALL
- ec_move1 STUN_SPORE
- ec_move2 SPIKES
- ec_move2 BATON_PASS
- ec_word STEEL
- ec_move2 STEEL_WING
- ec_pokemon2 STEELIX
- ec_move2 BARRAGE
- ec_move2 STOMP
- ec_word TOUGH
- ec_duplicates 2
- ec_word TOUGHNESS
- ec_move1 STRENGTH
- ec_word STRONG
- ec_duplicates 2
- ec_pokemon1 STARMIE
- ec_pokemon2 STARMIE
- ec_word START
- ec_word STATIC
- ec_word INSTEAD
- ec_move1 ROCK_SLIDE
- ec_word ROCK_SOLID
- ec_word ROCK_HEAD
- ec_move1 ROCK_THROW
- ec_duplicates 2
- ec_pokemon1 STARYU
- ec_pokemon2 STARYU
- ec_move1 METEOR_MASH
- ec_move1 SWIFT
- ec_pokemon1 AGGRON
- ec_pokemon1 LAIRON
- ec_pokemon1 ARON
- ec_word STOP
- ec_word STORY
- ec_word STRATEGY
- ec_word SEEK
- ec_word FIGHTS
- ec_word BANG
- ec_word TORRENT
- ec_word SEARCH
- ec_pokemon2 SUICUNE
- ec_pokemon1 SWAMPERT
- ec_word SUPER
- ec_move2 SUPERSONIC
- ec_move1 SUPER_FANG
- ec_move2 SURF
- ec_word SYNCHRONIZE
- ec_move1 SYNTHESIS
- ec_word SYSTEM
+ .2byte EC_WORD_DROOLING
+ .2byte EC_WORD_THINGS
+ .2byte EC_POKEMON2(METAPOD)
+ .2byte EC_POKEMON(GOREBYSS)
+ .2byte EC_WORD_INCREDIBLE
+ .2byte EC_WORD_SAYS
+ .2byte EC_WORD_SAID
+ .2byte EC_WORD_COLLECT
+ .2byte EC_WORD_COLLECTION
+ .2byte EC_WORD_SATURDAY
+ .2byte EC_POKEMON(SEEDOT)
+ ec_duplicates 2
+ .2byte EC_POKEMON(SANDSLASH)
+ .2byte EC_POKEMON2(SANDSLASH)
+ ec_duplicates 2
+ .2byte EC_POKEMON(SANDSHREW)
+ .2byte EC_POKEMON2(SANDSHREW)
+ .2byte EC_MOVE(SAND_TOMB)
+ .2byte EC_WORD_SAND_VEIL
+ ec_duplicates 2
+ .2byte EC_WORD_SAND_STREAM
+ .2byte EC_MOVE(SANDSTORM)
+ .2byte EC_MOVE(SAND_ATTACK)
+ .2byte EC_WORD_DOCILE
+ .2byte EC_WORD_SAPPHIRE
+ .2byte EC_POKEMON2(VICTREEBEL)
+ .2byte EC_WORD_SUCTION_CUPS
+ .2byte EC_MOVE2(ACID)
+ .2byte EC_MOVE2(ACID_ARMOR)
+ .2byte EC_MOVE2(DETECT)
+ .2byte EC_MOVE2(SKULL_BASH)
+ .2byte EC_MOVE2(HYPER_VOICE)
+ .2byte EC_POKEMON(SILCOON)
+ .2byte EC_MOVE(SHARPEN)
+ .2byte EC_WORD_APPRECIATE
+ .2byte EC_MOVE(DIG)
+ .2byte EC_WORD_LOOKS
+ .2byte EC_WORD_SEEMS
+ .2byte EC_WORD_SHINE
+ .2byte EC_MOVE2(LUSTER_PURGE)
+ .2byte EC_WORD_BREAK
+ .2byte EC_WORD_HYPER_CUTTER
+ .2byte EC_POKEMON2(SCIZOR)
+ .2byte EC_WORD_JOKING
+ .2byte EC_WORD_TRENDY
+ .2byte EC_POKEMON2(SQUIRTLE)
+ .2byte EC_POKEMON2(WARTORTLE)
+ .2byte EC_WORD_SLEEP
+ .2byte EC_MOVE2(SLEEP_POWDER)
+ .2byte EC_MOVE2(SLEEP_TALK)
+ .2byte EC_WORD_SMACK
+ .2byte EC_WORD_SMITE
+ .2byte EC_MOVE2(SLUDGE)
+ .2byte EC_WORD_WELL
+ .2byte EC_WORD_BAD
+ .2byte EC_MOVE(LICK)
+ .2byte EC_WORD_TWIRLING
+ .2byte EC_WORD_SLEPT
+ .2byte EC_WORD_AWFUL
+ .2byte EC_MOVE(SLASH)
+ .2byte EC_WORD_BEAT
+ .2byte EC_POKEMON(SWALOT)
+ .2byte EC_POKEMON(GULPIN)
+ .2byte EC_POKEMON2(LICKITUNG)
+ .2byte EC_WORD_FINISH
+ .2byte EC_MOVE(FLATTER)
+ .2byte EC_WORD_SCATTER
+ .2byte EC_POKEMON(BARBOACH)
+ .2byte EC_MOVE2(PECK)
+ .2byte EC_MOVE(CLAMP)
+ .2byte EC_MOVE(SNORE)
+ .2byte EC_WORD_TRUANT
+ ec_duplicates 2
+ .2byte EC_POKEMON(SLUGMA)
+ .2byte EC_POKEMON2(SLUGMA)
+ .2byte EC_WORD_FAST
+ .2byte EC_POKEMON(SNORUNT)
+ .2byte EC_WORD_LOVEY_DOVEY
+ .2byte EC_WORD_SADLY
+ .2byte EC_MOVE(ODOR_SLEUTH)
+ .2byte EC_MOVE2(SHOCK_WAVE)
+ .2byte EC_WORD_KIDDING
+ .2byte EC_WORD_THOSE_ARE
+ .2byte EC_WORD_BEAUTIFUL
+ .2byte EC_WORD_FORGIVE
+ .2byte EC_WORD_GO_EASY
+ .2byte EC_WORD_BEAUTY
+ .2byte EC_WORD_TERRIBLE
+ .2byte EC_WORD_CRY
+ .2byte EC_WORD_CRIES
+ .2byte EC_WORD_SCHOOL
+ .2byte EC_WORD_SHAKY
+ .2byte EC_MOVE2(PROTECT)
+ .2byte EC_WORD_THICK
+ .2byte EC_WORD_WEAK
+ .2byte EC_POKEMON(TAILLOW)
+ .2byte EC_POKEMON(SWELLOW)
+ .2byte EC_WORD_LEVITATE
+ .2byte EC_MOVE2(TAIL_GLOW)
+ .2byte EC_WORD_HARD
+ .2byte EC_MOVE2(SWORDS_DANCE)
+ .2byte EC_WORD_SISTER
+ .2byte EC_WORD_GIDDY
+ .2byte EC_WORD_MOMENTUM
+ ec_duplicates 2
+ .2byte EC_POKEMON(KINGDRA)
+ .2byte EC_POKEMON2(KINGDRA)
+ .2byte EC_POKEMON(SEALEO)
+ .2byte EC_WORD_SPIRIT
+ ec_duplicates 2
+ .2byte EC_POKEMON(SEADRA)
+ .2byte EC_POKEMON2(SEADRA)
+ .2byte EC_POKEMON(SPHEAL)
+ ec_duplicates 2
+ .2byte EC_POKEMON(HORSEA)
+ .2byte EC_POKEMON2(HORSEA)
+ .2byte EC_WORD_WORKS
+ .2byte EC_MOVE2(FUTURE_SIGHT)
+ .2byte EC_WORD_VERY
+ .2byte EC_WORD_BE
+ .2byte EC_WORD_SHALLOW
+ .2byte EC_WORD_HIS
+ .2byte EC_WORD_BEING
+ .2byte EC_WORD_SINCE
+ .2byte EC_WORD_RARE
+ .2byte EC_POKEMON(ZANGOOSE)
+ .2byte EC_WORD_SERVICE
+ .2byte EC_WORD_SIGH
+ .2byte EC_POKEMON(SHUPPET)
+ .2byte EC_POKEMON2(SCYTHER)
+ .2byte EC_WORD_SHE
+ .2byte EC_WORD_THEY_VE
+ .2byte EC_WORD_SOME
+ .2byte EC_WORD_SHE_IS
+ .2byte EC_WORD_WOMAN
+ .2byte EC_WORD_THEY_RE
+ .2byte EC_WORD_SHE_WAS
+ .2byte EC_WORD_THEY_WERE
+ .2byte EC_WORD_VICTORY
+ .2byte EC_WORD_CAN_T_WIN
+ .2byte EC_WORD_WHEN_I_WIN
+ .2byte EC_WORD_SEES
+ .2byte EC_MOVE2(LEER)
+ .2byte EC_MOVE(SILVER_WIND)
+ ec_duplicates 2
+ .2byte EC_POKEMON(ALAKAZAM)
+ .2byte EC_POKEMON2(ALAKAZAM)
+ .2byte EC_WORD_THOSE
+ .2byte EC_WORD_AREN_T
+ .2byte EC_WORD_SENSE
+ ec_duplicates 2
+ .2byte EC_POKEMON(HERACROSS)
+ .2byte EC_POKEMON2(HERACROSS)
+ .2byte EC_POKEMON2(GLIGAR)
+ .2byte EC_MOVE2(SLAM)
+ ec_duplicates 2
+ .2byte EC_POKEMON(GRIMER)
+ .2byte EC_POKEMON2(GRIMER)
+ ec_duplicates 2
+ .2byte EC_POKEMON(MUK)
+ .2byte EC_POKEMON2(MUK)
+ .2byte EC_POKEMON2(BUTTERFREE)
+ .2byte EC_MOVE(SMOG)
+ ec_duplicates 2
+ .2byte EC_POKEMON(WEEZING)
+ .2byte EC_POKEMON2(WEEZING)
+ ec_duplicates 2
+ .2byte EC_POKEMON(KOFFING)
+ .2byte EC_POKEMON2(KOFFING)
+ .2byte EC_POKEMON2(SNEASEL)
+ .2byte EC_POKEMON2(PERSIAN)
+ .2byte EC_POKEMON2(SNUBBULL)
+ .2byte EC_WORD_SO
+ .2byte EC_WORD_AS_MUCH_AS
+ .2byte EC_WORD_SOFTWARE
+ .2byte EC_MOVE(SOLAR_BEAM)
+ .2byte EC_WORD_WEREN_T
+ .2byte EC_WORD_SUMMER
+ .2byte EC_MOVE(EXTRASENSORY)
+ .2byte EC_WORD_SONG
+ .2byte EC_WORD_SONGS
+ .2byte EC_MOVE2(SUNNY_DAY)
+ .2byte EC_POKEMON(SOLROCK)
+ .2byte EC_POKEMON2(SUNFLORA)
+ .2byte EC_POKEMON2(SUNKERN)
+ .2byte EC_WORD_SUNDAY
+ .2byte EC_WORD_WORRY
+ .2byte EC_WORD_CARE
+ .2byte EC_WORD_CARES
+ .2byte EC_WORD_SORRY
+ .2byte EC_MOVE(TICKLE)
+ .2byte EC_WORD_LATE
+ .2byte EC_WORD_LATER
+ .2byte EC_WORD_WALK
+ .2byte EC_WORD_THICK_FAT
+ .2byte EC_MOVE2(MIRROR_COAT)
+ .2byte EC_MOVE(MIRROR_MOVE)
+ .2byte EC_WORD_GAME
+ .2byte EC_WORD_PLAY
+ .2byte EC_WORD_PLAYS
+ .2byte EC_WORD_PLAYED
+ .2byte EC_WORD_TOYS
+ .2byte EC_MOVE(SPIDER_WEB)
+ .2byte EC_POKEMON(SPOINK)
+ .2byte EC_WORD_EFFECT_SPORE
+ .2byte EC_WORD_SPORTS
+ .2byte EC_MOVE(FOLLOW_ME)
+ .2byte EC_MOVE2(BOUNCE)
+ .2byte EC_MOVE2(JUMP_KICK)
+ .2byte EC_MOVE(SHADOW_BALL)
+ .2byte EC_MOVE(STUN_SPORE)
+ .2byte EC_MOVE2(SPIKES)
+ .2byte EC_MOVE2(BATON_PASS)
+ .2byte EC_WORD_STEEL
+ .2byte EC_MOVE2(STEEL_WING)
+ .2byte EC_POKEMON2(STEELIX)
+ .2byte EC_MOVE2(BARRAGE)
+ .2byte EC_MOVE2(STOMP)
+ .2byte EC_WORD_TOUGH
+ ec_duplicates 2
+ .2byte EC_WORD_TOUGHNESS
+ .2byte EC_MOVE(STRENGTH)
+ .2byte EC_WORD_STRONG
+ ec_duplicates 2
+ .2byte EC_POKEMON(STARMIE)
+ .2byte EC_POKEMON2(STARMIE)
+ .2byte EC_WORD_START
+ .2byte EC_WORD_STATIC
+ .2byte EC_WORD_INSTEAD
+ .2byte EC_MOVE(ROCK_SLIDE)
+ .2byte EC_WORD_ROCK_SOLID
+ .2byte EC_WORD_ROCK_HEAD
+ .2byte EC_MOVE(ROCK_THROW)
+ ec_duplicates 2
+ .2byte EC_POKEMON(STARYU)
+ .2byte EC_POKEMON2(STARYU)
+ .2byte EC_MOVE(METEOR_MASH)
+ .2byte EC_MOVE(SWIFT)
+ .2byte EC_POKEMON(AGGRON)
+ .2byte EC_POKEMON(LAIRON)
+ .2byte EC_POKEMON(ARON)
+ .2byte EC_WORD_STOP
+ .2byte EC_WORD_STORY
+ .2byte EC_WORD_STRATEGY
+ .2byte EC_WORD_SEEK
+ .2byte EC_WORD_FIGHTS
+ .2byte EC_WORD_BANG
+ .2byte EC_WORD_TORRENT
+ .2byte EC_WORD_SEARCH
+ .2byte EC_POKEMON2(SUICUNE)
+ .2byte EC_POKEMON(SWAMPERT)
+ .2byte EC_WORD_SUPER
+ .2byte EC_MOVE2(SUPERSONIC)
+ .2byte EC_MOVE(SUPER_FANG)
+ .2byte EC_MOVE2(SURF)
+ .2byte EC_WORD_SYNCHRONIZE
+ .2byte EC_MOVE(SYNTHESIS)
+ .2byte EC_WORD_SYSTEM
gEasyChatWordsByLetter_T:
- ec_move2 TACKLE
- ec_word DAY
- ec_word HI
- ec_word EXCUSE
- ec_word DAYS
- ec_move2 SLACK_OFF
- ec_word DAYTIME
- ec_word DAILY
- ec_word TALENT
- ec_pokemon2 TANGELA
- ec_pokemon1 BELDUM
- ec_pokemon2 PINECO
- ec_word AUNT
- ec_word DANCE
- ec_move2 CAMOUFLAGE
- ec_word ALLOWANCE
- ec_pokemon2 PIDGEOTTO
- ec_pokemon2 PIDGEOT
- ec_pokemon2 PIDGEY
- ec_move2 DIVE
- ec_move2 TEETER_DANCE
- ec_pokemon2 TAUROS
- ec_word TRADE
- ec_pokemon2 TEDDIURSA
- ec_word PHONE
- ec_move2 TELEPORT
- ec_move2 MACH_PUNCH
- ec_word OWN_TEMPO
- ec_word SPEED_BOOST
- ec_pokemon1 SHIFTRY
- ec_duplicates 2
- ec_pokemon1 TENTACOOL
- ec_pokemon2 TENTACOOL
- ec_duplicates 2
- ec_pokemon1 TENTACRUEL
- ec_pokemon2 TENTACRUEL
- ec_word TEST
- ec_word EXPENSIVE
- ec_word DEEP
- ec_word LOWS
- ec_word DAUGHTER
- ec_move1 LOVELY_KISS
- ec_pokemon2 TOGEPI
- ec_pokemon2 TOGETIC
- ec_pokemon1 SHARPEDO
- ec_word TOP
- ec_pokemon2 TYPHLOSION
- ec_move2 TOXIC
- ec_pokemon2 CUBONE
- ec_word TRAINER
- ec_word TRAIN
- ec_word TRAINS
- ec_pokemon1 RALTS
- ec_word DREAM
- ec_pokemon2 DROWZEE
- ec_move2 DREAM_EATER
- ec_pokemon2 MISDREAVUS
- ec_word SAD
- ec_word HIT
- ec_move2 TRICK
- ec_word MEETS
- ec_word DRINK
- ec_word DRINKS
- ec_move2 TRI_ATTACK
- ec_pokemon1 TROPIUS
- ec_word EVEN_SO
- ec_move2 FALSE_SWIPE
- ec_move1 FAKE_TEARS
- ec_word TRUMP_CARD
- ec_word BYE_BYE
- ec_word GOOD_BYE
- ec_word TCH
- ec_move1 RAPID_SPIN
- ec_move1 EXTREME_SPEED
- ec_move2 HI_JUMP_KICK
- ec_word TOURNAMENT
- ec_pokemon2 BLASTOISE
- ec_pokemon1 CACNEA
- ec_word DOES
- ec_word TYPE
- ec_word DUDE
- ec_pokemon2 CROCONAW
+ .2byte EC_MOVE2(TACKLE)
+ .2byte EC_WORD_DAY
+ .2byte EC_WORD_HI
+ .2byte EC_WORD_EXCUSE
+ .2byte EC_WORD_DAYS
+ .2byte EC_MOVE2(SLACK_OFF)
+ .2byte EC_WORD_DAYTIME
+ .2byte EC_WORD_DAILY
+ .2byte EC_WORD_TALENT
+ .2byte EC_POKEMON2(TANGELA)
+ .2byte EC_POKEMON(BELDUM)
+ .2byte EC_POKEMON2(PINECO)
+ .2byte EC_WORD_AUNT
+ .2byte EC_WORD_DANCE
+ .2byte EC_MOVE2(CAMOUFLAGE)
+ .2byte EC_WORD_ALLOWANCE
+ .2byte EC_POKEMON2(PIDGEOTTO)
+ .2byte EC_POKEMON2(PIDGEOT)
+ .2byte EC_POKEMON2(PIDGEY)
+ .2byte EC_MOVE2(DIVE)
+ .2byte EC_MOVE2(TEETER_DANCE)
+ .2byte EC_POKEMON2(TAUROS)
+ .2byte EC_WORD_TRADE
+ .2byte EC_POKEMON2(TEDDIURSA)
+ .2byte EC_WORD_PHONE
+ .2byte EC_MOVE2(TELEPORT)
+ .2byte EC_MOVE2(MACH_PUNCH)
+ .2byte EC_WORD_OWN_TEMPO
+ .2byte EC_WORD_SPEED_BOOST
+ .2byte EC_POKEMON(SHIFTRY)
+ ec_duplicates 2
+ .2byte EC_POKEMON(TENTACOOL)
+ .2byte EC_POKEMON2(TENTACOOL)
+ ec_duplicates 2
+ .2byte EC_POKEMON(TENTACRUEL)
+ .2byte EC_POKEMON2(TENTACRUEL)
+ .2byte EC_WORD_TEST
+ .2byte EC_WORD_EXPENSIVE
+ .2byte EC_WORD_DEEP
+ .2byte EC_WORD_LOWS
+ .2byte EC_WORD_DAUGHTER
+ .2byte EC_MOVE(LOVELY_KISS)
+ .2byte EC_POKEMON2(TOGEPI)
+ .2byte EC_POKEMON2(TOGETIC)
+ .2byte EC_POKEMON(SHARPEDO)
+ .2byte EC_WORD_TOP
+ .2byte EC_POKEMON2(TYPHLOSION)
+ .2byte EC_MOVE2(TOXIC)
+ .2byte EC_POKEMON2(CUBONE)
+ .2byte EC_WORD_TRAINER
+ .2byte EC_WORD_TRAIN
+ .2byte EC_WORD_TRAINS
+ .2byte EC_POKEMON(RALTS)
+ .2byte EC_WORD_DREAM
+ .2byte EC_POKEMON2(DROWZEE)
+ .2byte EC_MOVE2(DREAM_EATER)
+ .2byte EC_POKEMON2(MISDREAVUS)
+ .2byte EC_WORD_SAD
+ .2byte EC_WORD_HIT
+ .2byte EC_MOVE2(TRICK)
+ .2byte EC_WORD_MEETS
+ .2byte EC_WORD_DRINK
+ .2byte EC_WORD_DRINKS
+ .2byte EC_MOVE2(TRI_ATTACK)
+ .2byte EC_POKEMON(TROPIUS)
+ .2byte EC_WORD_EVEN_SO
+ .2byte EC_MOVE2(FALSE_SWIPE)
+ .2byte EC_MOVE(FAKE_TEARS)
+ .2byte EC_WORD_TRUMP_CARD
+ .2byte EC_WORD_BYE_BYE
+ .2byte EC_WORD_GOOD_BYE
+ .2byte EC_WORD_TCH
+ .2byte EC_MOVE(RAPID_SPIN)
+ .2byte EC_MOVE(EXTREME_SPEED)
+ .2byte EC_MOVE2(HI_JUMP_KICK)
+ .2byte EC_WORD_TOURNAMENT
+ .2byte EC_POKEMON2(BLASTOISE)
+ .2byte EC_POKEMON(CACNEA)
+ .2byte EC_WORD_DOES
+ .2byte EC_WORD_TYPE
+ .2byte EC_WORD_DUDE
+ .2byte EC_POKEMON2(CROCONAW)
gEasyChatWordsByLetter_U:
- ec_word OVER
- ec_word HUSTLE
- ec_word EXCESS
- ec_word TOMORROW
- ec_move2 SNATCH
- ec_word SURPRISE
- ec_move1 SUBMISSION
- ec_word OVERDO
- ec_move1 VITAL_THROW
- ec_word AWW
- ec_word UH_HUH
- ec_move1 SONIC_BOOM
- ec_pokemon2 WEEPINBELL
- ec_word UPSIDE_DOWN
- ec_word ABOUT
- ec_move1 CONSTRICT
- ec_move2 CONVERSION
- ec_move2 CONVERSION_2
- ec_word AND
- ec_word UNBELIEVABLE
- ec_word SCARY
- ec_word DARK
- ec_word IMPOSSIBLE
- ec_word INVINCIBLE
- ec_word OUR
- ec_word BELOW
- ec_word ENTERTAINING
- ec_word NO_MATCH
- ec_word LESSONS
- ec_word UNAVOIDABLE
- ec_word TRY
- ec_word LACKING
- ec_word VACATION
- ec_pokemon2 URSARING
+ .2byte EC_WORD_OVER
+ .2byte EC_WORD_HUSTLE
+ .2byte EC_WORD_EXCESS
+ .2byte EC_WORD_TOMORROW
+ .2byte EC_MOVE2(SNATCH)
+ .2byte EC_WORD_SURPRISE
+ .2byte EC_MOVE(SUBMISSION)
+ .2byte EC_WORD_OVERDO
+ .2byte EC_MOVE(VITAL_THROW)
+ .2byte EC_WORD_AWW
+ .2byte EC_WORD_UH_HUH
+ .2byte EC_MOVE(SONIC_BOOM)
+ .2byte EC_POKEMON2(WEEPINBELL)
+ .2byte EC_WORD_UPSIDE_DOWN
+ .2byte EC_WORD_ABOUT
+ .2byte EC_MOVE(CONSTRICT)
+ .2byte EC_MOVE2(CONVERSION)
+ .2byte EC_MOVE2(CONVERSION_2)
+ .2byte EC_WORD_AND
+ .2byte EC_WORD_UNBELIEVABLE
+ .2byte EC_WORD_SCARY
+ .2byte EC_WORD_DARK
+ .2byte EC_WORD_IMPOSSIBLE
+ .2byte EC_WORD_INVINCIBLE
+ .2byte EC_WORD_OUR
+ .2byte EC_WORD_BELOW
+ .2byte EC_WORD_ENTERTAINING
+ .2byte EC_WORD_NO_MATCH
+ .2byte EC_WORD_LESSONS
+ .2byte EC_WORD_UNAVOIDABLE
+ .2byte EC_WORD_TRY
+ .2byte EC_WORD_LACKING
+ .2byte EC_WORD_VACATION
+ .2byte EC_POKEMON2(URSARING)
gEasyChatWordsByLetter_V:
- ec_word FATHER
- ec_word DATE
- ec_word ALLY
- ec_word DARN
- ec_move1 PURSUIT
- ec_move2 REVENGE
- ec_word FORGET
- ec_word FORGETS
- ec_word ADORE
- ec_move2 TAUNT
- ec_word MISHEARD
- ec_word IF_I_LOSE
- ec_word LOSE
- ec_word LOST
- ec_word LOSS
- ec_word LIKELY_TO
- ec_word WEIRD
- ec_word DIFFERENT
- ec_word DISAPPEAR
- ec_word SINK
- ec_word VERSION
- ec_word PROMISE
- ec_word UNDERSTOOD
- ec_word NATURALLY
- ec_word HIDDEN
- ec_word UNDERSTAND
- ec_word UNDERSTANDS
- ec_word TRIES
- ec_word TRUST
- ec_word USING
- ec_word CONFUSED
- ec_move2 INGRAIN
- ec_move2 SWALLOW
- ec_word APOLOGIZE
- ec_move2 STRUGGLE
- ec_pokemon1 VIBRAVA
- ec_word A_LOT
- ec_word MUCH
- ec_move2 MEGAHORN
- ec_word MAYBE
- ec_pokemon1 SEVIPER
- ec_move1 HEAL_BELL
- ec_word KTHX_BYE
- ec_pokemon1 VOLBEAT
- ec_word FULL
- ec_word VOLT_ABSORB
- ec_pokemon1 MANECTRIC
- ec_pokemon2 MAREEP
- ec_duplicates 2
- ec_pokemon1 VOLTORB
- ec_pokemon2 VOLTORB
- ec_word FROM
- ec_word BEFORE
- ec_word LIKES
- ec_word FRONT
- ec_word PRETEND
- ec_duplicates 2
- ec_pokemon1 NINETALES
- ec_pokemon2 NINETALES
- ec_duplicates 2
- ec_pokemon1 VULPIX
- ec_pokemon2 VULPIX
+ .2byte EC_WORD_FATHER
+ .2byte EC_WORD_DATE
+ .2byte EC_WORD_ALLY
+ .2byte EC_WORD_DARN
+ .2byte EC_MOVE(PURSUIT)
+ .2byte EC_MOVE2(REVENGE)
+ .2byte EC_WORD_FORGET
+ .2byte EC_WORD_FORGETS
+ .2byte EC_WORD_ADORE
+ .2byte EC_MOVE2(TAUNT)
+ .2byte EC_WORD_MISHEARD
+ .2byte EC_WORD_IF_I_LOSE
+ .2byte EC_WORD_LOSE
+ .2byte EC_WORD_LOST
+ .2byte EC_WORD_LOSS
+ .2byte EC_WORD_LIKELY_TO
+ .2byte EC_WORD_WEIRD
+ .2byte EC_WORD_DIFFERENT
+ .2byte EC_WORD_DISAPPEAR
+ .2byte EC_WORD_SINK
+ .2byte EC_WORD_VERSION
+ .2byte EC_WORD_PROMISE
+ .2byte EC_WORD_UNDERSTOOD
+ .2byte EC_WORD_NATURALLY
+ .2byte EC_WORD_HIDDEN
+ .2byte EC_WORD_UNDERSTAND
+ .2byte EC_WORD_UNDERSTANDS
+ .2byte EC_WORD_TRIES
+ .2byte EC_WORD_TRUST
+ .2byte EC_WORD_USING
+ .2byte EC_WORD_CONFUSED
+ .2byte EC_MOVE2(INGRAIN)
+ .2byte EC_MOVE2(SWALLOW)
+ .2byte EC_WORD_APOLOGIZE
+ .2byte EC_MOVE2(STRUGGLE)
+ .2byte EC_POKEMON(VIBRAVA)
+ .2byte EC_WORD_A_LOT
+ .2byte EC_WORD_MUCH
+ .2byte EC_MOVE2(MEGAHORN)
+ .2byte EC_WORD_MAYBE
+ .2byte EC_POKEMON(SEVIPER)
+ .2byte EC_MOVE(HEAL_BELL)
+ .2byte EC_WORD_KTHX_BYE
+ .2byte EC_POKEMON(VOLBEAT)
+ .2byte EC_WORD_FULL
+ .2byte EC_WORD_VOLT_ABSORB
+ .2byte EC_POKEMON(MANECTRIC)
+ .2byte EC_POKEMON2(MAREEP)
+ ec_duplicates 2
+ .2byte EC_POKEMON(VOLTORB)
+ .2byte EC_POKEMON2(VOLTORB)
+ .2byte EC_WORD_FROM
+ .2byte EC_WORD_BEFORE
+ .2byte EC_WORD_LIKES
+ .2byte EC_WORD_FRONT
+ .2byte EC_WORD_PRETEND
+ ec_duplicates 2
+ .2byte EC_POKEMON(NINETALES)
+ .2byte EC_POKEMON2(NINETALES)
+ ec_duplicates 2
+ .2byte EC_POKEMON(VULPIX)
+ .2byte EC_POKEMON2(VULPIX)
gEasyChatWordsByLetter_W:
- ec_word WAAAH
- ec_pokemon2 FLAAFFY
- ec_pokemon1 SWABLU
- ec_word GUARD
- ec_move1 GROWTH
- ec_word WAKES_UP
- ec_word RICKETY
- ec_word WAHAHAHA
- ec_word CHOICE
- ec_word CHOOSE
- ec_word WHILE
- ec_word TRULY
- ec_pokemon1 WAILMER
- ec_pokemon1 WAILORD
- ec_pokemon1 WALREIN
- ec_move1 ROLLOUT
- ec_word WALKING
- ec_word WALKS
- ec_move2 TRANSFORM
- ec_word WAS
- ec_word WASN_T
- ec_word BEEN
- ec_word WHY
- ec_word WHAT
- ec_word WHAT_S_UP_QUES
- ec_word WATER
- ec_word CHANNEL
- ec_word SWIFT_SWIM
- ec_pokemon1 WURMPLE
- ec_pokemon2 SPINARAK
- ec_word CHANGE
- ec_word SHADOW_TAG
- ec_move2 SOFT_BOILED
- ec_word REFUSE
- ec_word MEET
- ec_word KNOWS
- ec_move1 MIST
- ec_word FAR
- ec_word GO_AHEAD
- ec_word WHICH
- ec_pokemon1 WHISCASH
- ec_word WORLD
- ec_word WHOM
- ec_word A_TINY_BIT
- ec_word LESS
- ec_word IF
- ec_word WHO
- ec_word WHO_IS
- ec_word WON_T
- ec_word WILL
- ec_word THROW
- ec_word STICKY_HOLD
- ec_move1 SKILL_SWAP
- ec_word NATURE
- ec_word WHOSE
- ec_word CONTEST
- ec_move1 WHIRLPOOL
- ec_word IMPORTANT
- ec_move2 WRAP
- ec_word HOW_DO
- ec_word HUH_QUES
- ec_pokemon1 CRADILY
- ec_pokemon2 FURRET
- ec_pokemon2 SENTRET
- ec_word WILD
- ec_word WANTS
- ec_move1 MIND_READER
- ec_word WELCOME
- ec_move2 TWISTER
- ec_move1 AIR_CUTTER
- ec_move1 GUST
- ec_pokemon1 WINGULL
- ec_word WINTER
- ec_word WE
- ec_word WE_VE
- ec_word WE_RE
- ec_word SPIRALING
- ec_move2 WHIRLWIND
- ec_word BECOMES
- ec_word WILL_BE_HERE
- ec_word QUITE
- ec_word KNOW
- ec_word WHERE
- ec_word WEEK
- ec_duplicates 2
- ec_pokemon1 WOBBUFFET
- ec_pokemon2 WOBBUFFET
- ec_word CLOUD_NINE
- ec_word WROOOAAR_EXCL
- ec_word WORD
- ec_word WOW
- ec_move2 DYNAMIC_PUNCH
- ec_word WONDER
- ec_word WONDER_GUARD
- ec_move2 WISH
- ec_word WOULD
- ec_word WERE
- ec_word INCREASING
- ec_word SILKY
- ec_word ANGER
- ec_move1 OUTRAGE
- ec_word ANGRY
+ .2byte EC_WORD_WAAAH
+ .2byte EC_POKEMON2(FLAAFFY)
+ .2byte EC_POKEMON(SWABLU)
+ .2byte EC_WORD_GUARD
+ .2byte EC_MOVE(GROWTH)
+ .2byte EC_WORD_WAKES_UP
+ .2byte EC_WORD_RICKETY
+ .2byte EC_WORD_WAHAHAHA
+ .2byte EC_WORD_CHOICE
+ .2byte EC_WORD_CHOOSE
+ .2byte EC_WORD_WHILE
+ .2byte EC_WORD_TRULY
+ .2byte EC_POKEMON(WAILMER)
+ .2byte EC_POKEMON(WAILORD)
+ .2byte EC_POKEMON(WALREIN)
+ .2byte EC_MOVE(ROLLOUT)
+ .2byte EC_WORD_WALKING
+ .2byte EC_WORD_WALKS
+ .2byte EC_MOVE2(TRANSFORM)
+ .2byte EC_WORD_WAS
+ .2byte EC_WORD_WASN_T
+ .2byte EC_WORD_BEEN
+ .2byte EC_WORD_WHY
+ .2byte EC_WORD_WHAT
+ .2byte EC_WORD_WHAT_S_UP_QUES
+ .2byte EC_WORD_WATER
+ .2byte EC_WORD_CHANNEL
+ .2byte EC_WORD_SWIFT_SWIM
+ .2byte EC_POKEMON(WURMPLE)
+ .2byte EC_POKEMON2(SPINARAK)
+ .2byte EC_WORD_CHANGE
+ .2byte EC_WORD_SHADOW_TAG
+ .2byte EC_MOVE2(SOFT_BOILED)
+ .2byte EC_WORD_REFUSE
+ .2byte EC_WORD_MEET
+ .2byte EC_WORD_KNOWS
+ .2byte EC_MOVE(MIST)
+ .2byte EC_WORD_FAR
+ .2byte EC_WORD_GO_AHEAD
+ .2byte EC_WORD_WHICH
+ .2byte EC_POKEMON(WHISCASH)
+ .2byte EC_WORD_WORLD
+ .2byte EC_WORD_WHOM
+ .2byte EC_WORD_A_TINY_BIT
+ .2byte EC_WORD_LESS
+ .2byte EC_WORD_IF
+ .2byte EC_WORD_WHO
+ .2byte EC_WORD_WHO_IS
+ .2byte EC_WORD_WON_T
+ .2byte EC_WORD_WILL
+ .2byte EC_WORD_THROW
+ .2byte EC_WORD_STICKY_HOLD
+ .2byte EC_MOVE(SKILL_SWAP)
+ .2byte EC_WORD_NATURE
+ .2byte EC_WORD_WHOSE
+ .2byte EC_WORD_CONTEST
+ .2byte EC_MOVE(WHIRLPOOL)
+ .2byte EC_WORD_IMPORTANT
+ .2byte EC_MOVE2(WRAP)
+ .2byte EC_WORD_HOW_DO
+ .2byte EC_WORD_HUH_QUES
+ .2byte EC_POKEMON(CRADILY)
+ .2byte EC_POKEMON2(FURRET)
+ .2byte EC_POKEMON2(SENTRET)
+ .2byte EC_WORD_WILD
+ .2byte EC_WORD_WANTS
+ .2byte EC_MOVE(MIND_READER)
+ .2byte EC_WORD_WELCOME
+ .2byte EC_MOVE2(TWISTER)
+ .2byte EC_MOVE(AIR_CUTTER)
+ .2byte EC_MOVE(GUST)
+ .2byte EC_POKEMON(WINGULL)
+ .2byte EC_WORD_WINTER
+ .2byte EC_WORD_WE
+ .2byte EC_WORD_WE_VE
+ .2byte EC_WORD_WE_RE
+ .2byte EC_WORD_SPIRALING
+ .2byte EC_MOVE2(WHIRLWIND)
+ .2byte EC_WORD_BECOMES
+ .2byte EC_WORD_WILL_BE_HERE
+ .2byte EC_WORD_QUITE
+ .2byte EC_WORD_KNOW
+ .2byte EC_WORD_WHERE
+ .2byte EC_WORD_WEEK
+ ec_duplicates 2
+ .2byte EC_POKEMON(WOBBUFFET)
+ .2byte EC_POKEMON2(WOBBUFFET)
+ .2byte EC_WORD_CLOUD_NINE
+ .2byte EC_WORD_WROOOAAR_EXCL
+ .2byte EC_WORD_WORD
+ .2byte EC_WORD_WOW
+ .2byte EC_MOVE2(DYNAMIC_PUNCH)
+ .2byte EC_WORD_WONDER
+ .2byte EC_WORD_WONDER_GUARD
+ .2byte EC_MOVE2(WISH)
+ .2byte EC_WORD_WOULD
+ .2byte EC_WORD_WERE
+ .2byte EC_WORD_INCREASING
+ .2byte EC_WORD_SILKY
+ .2byte EC_WORD_ANGER
+ .2byte EC_MOVE(OUTRAGE)
+ .2byte EC_WORD_ANGRY
gEasyChatWordsByLetter_X:
ec_duplicates 2
- ec_pokemon1 XATU
- ec_pokemon2 XATU
+ .2byte EC_POKEMON(XATU)
+ .2byte EC_POKEMON2(XATU)
gEasyChatWordsByLetter_Y:
- ec_pokemon2 YANMA
- ec_word YEAH
- ec_word YEAH_YEAH
- ec_word COUPLE
+ .2byte EC_POKEMON2(YANMA)
+ .2byte EC_WORD_YEAH
+ .2byte EC_WORD_YEAH_YEAH
+ .2byte EC_WORD_COUPLE
gEasyChatWordsByLetter_Z:
- ec_word COUNT_ON
- ec_move2 PAY_DAY
- ec_pokemon2 ZAPDOS
- ec_move2 MAGICAL_LEAF
- ec_word SHOW
- ec_word TIME
- ec_word TIMES
- ec_move2 CRUSH_CLAW
- ec_move1 CUT
- ec_move1 ROCK_SMASH
- ec_word AIM
- ec_move2 LOCK_ON
- ec_pokemon1 ZIGZAGOON
- ec_word FIERY
- ec_word WOBBLY
- ec_pokemon1 SABLEYE
- ec_word LOSING
- ec_move2 FURY_CUTTER
- ec_word TO
- ec_word TO_ME
- ec_word TOO_WEAK
- ec_word TOO_LATE
- ec_word TOO_STRONG
- ec_duplicates 2
- ec_pokemon1 ZUBAT
- ec_pokemon2 ZUBAT
- ec_word SATISFIED
- ec_move1 ENCORE
- ec_word LISTEN
- ec_word BACK
- ec_word TOGETHER
- ec_word SPECTATOR
- ec_move2 ASSIST
- ec_pokemon1 DUSCLOPS
- ec_pokemon1 DUSKULL
+ .2byte EC_WORD_COUNT_ON
+ .2byte EC_MOVE2(PAY_DAY)
+ .2byte EC_POKEMON2(ZAPDOS)
+ .2byte EC_MOVE2(MAGICAL_LEAF)
+ .2byte EC_WORD_SHOW
+ .2byte EC_WORD_TIME
+ .2byte EC_WORD_TIMES
+ .2byte EC_MOVE2(CRUSH_CLAW)
+ .2byte EC_MOVE(CUT)
+ .2byte EC_MOVE(ROCK_SMASH)
+ .2byte EC_WORD_AIM
+ .2byte EC_MOVE2(LOCK_ON)
+ .2byte EC_POKEMON(ZIGZAGOON)
+ .2byte EC_WORD_FIERY
+ .2byte EC_WORD_WOBBLY
+ .2byte EC_POKEMON(SABLEYE)
+ .2byte EC_WORD_LOSING
+ .2byte EC_MOVE2(FURY_CUTTER)
+ .2byte EC_WORD_TO
+ .2byte EC_WORD_TO_ME
+ .2byte EC_WORD_TOO_WEAK
+ .2byte EC_WORD_TOO_LATE
+ .2byte EC_WORD_TOO_STRONG
+ ec_duplicates 2
+ .2byte EC_POKEMON(ZUBAT)
+ .2byte EC_POKEMON2(ZUBAT)
+ .2byte EC_WORD_SATISFIED
+ .2byte EC_MOVE(ENCORE)
+ .2byte EC_WORD_LISTEN
+ .2byte EC_WORD_BACK
+ .2byte EC_WORD_TOGETHER
+ .2byte EC_WORD_SPECTATOR
+ .2byte EC_MOVE2(ASSIST)
+ .2byte EC_POKEMON(DUSCLOPS)
+ .2byte EC_POKEMON(DUSKULL)
gEasyChatWordsByLetter_End:
.align 1
diff --git a/data-de/text/move_descriptions.inc b/data-de/text/move_descriptions.inc
deleted file mode 100644
index 74f7a5b9f..000000000
--- a/data-de/text/move_descriptions.inc
+++ /dev/null
@@ -1,1771 +0,0 @@
-gMoveDescription_Pound: @ 83BC680
- .string "Ein Hieb mit den Vorder-\n"
- .string "beinen oder dem Schweif.$"
-
-gMoveDescription_KarateChop: @ 83BC6A6
- .string "Gute Möglichkeit, einen\n"
- .string "Volltreffer zu landen.$"
-
-gMoveDescription_DoubleSlap: @ 83BC6D8
- .string "Trifft den Gegner 2 - 5-mal\n"
- .string "hintereinander.$"
-
-gMoveDescription_CometPunch: @ 83BC6FF
- .string "Trifft den Gegner 2 - 5-mal\n"
- .string "hintereinander.$"
-
-gMoveDescription_MegaPunch: @ 83BC728
- .string "Ein unglaublich kräftiger\n"
- .string "Hieb.$"
-
-gMoveDescription_PayDay: @ 83BC755
- .string "Wirft Münzen auf Gegner.\n"
- .string "Geld wird erstattet.$"
-
-gMoveDescription_FirePunch: @ 83BC788
- .string "Schlag, der dem Gegner evtl.\n"
- .string "Verbrennungen zufügt.$"
-
-gMoveDescription_IcePunch: @ 83BC7AD
- .string "Ein Schlag, der den Gegner\n"
- .string "evtl. einfriert.$"
-
-gMoveDescription_ThunderPunch: @ 83BC7D3
- .string "Schlag, der den Gegner evtl.\n"
- .string "paralysiert.$"
-
-gMoveDescription_Scratch: @ 83BC803
- .string "Der Gegner wird mit\n"
- .string "scharfen Klauen zerkratzt.$"
-
-gMoveDescription_ViceGrip: @ 83BC827
- .string "Umklammert den Gegner mit\n"
- .string "großen, kräftigen Zangen.$"
-
-gMoveDescription_Guillotine: @ 83BC856
- .string "Kräftige Scheren-Attacke.\n"
- .string "Führt evtl. zum K.O.$"
-
-gMoveDescription_RazorWind: @ 83BC888
- .string "Eine Attacke, die auf 2\n"
- .string "Runden basiert.$"
-
-gMoveDescription_SwordsDance: @ 83BC8BC
- .string "Erhöht den Angriffs-Wert\n"
- .string "drastisch.$"
-
-gMoveDescription_Cut: @ 83BC8E9
- .string "Trifft den Gegner mit\n"
- .string "Klauen, Scheren o. ä.$"
-
-gMoveDescription_Gust: @ 83BC916
- .string "Trifft den Gegner mit Wind-\n"
- .string "stoß durch Flügelschlag.$"
-
-gMoveDescription_WingAttack: @ 83BC94F
- .string "Trifft den Gegner mit weit\n"
- .string "gespreizten Flügeln.$"
-
-gMoveDescription_Whirlwind: @ 83BC977
- .string "Weht Gegner weg und be-\n"
- .string "endet den Kampf in Wildnis.$"
-
-gMoveDescription_Fly: @ 83BC9A9
- .string "Steigt empor in der 1. Runde\n"
- .string "und trifft Gegner in der 2.$"
-
-gMoveDescription_Bind: @ 83BC9E1
- .string "Umklammert und trifft den\n"
- .string "Gegner 2 - 5-mal.$"
-
-gMoveDescription_Slam: @ 83BCA0E
- .string "Schlag mit einem langen\n"
- .string "Schweif, einer Ranke o. ä.$"
-
-gMoveDescription_VineWhip: @ 83BCA39
- .string "Peitschenähnlicher Schlag\n"
- .string "mit Ranken.$"
-
-gMoveDescription_Stomp: @ 83BCA67
- .string "Stampfen mit Fuß. Gegner\n"
- .string "schreckt evtl. zurück.$"
-
-gMoveDescription_DoubleKick: @ 83BCA9E
- .string "Doppeltritt. Der Gegner\n"
- .string "wird zweimal getroffen.$"
-
-gMoveDescription_MegaKick: @ 83BCAD2
- .string "Ein extrem heftiger Tritt.$"
-
-gMoveDescription_JumpKick: @ 83BCB01
- .string "Sprung-Tritt. Selbstschä-\n"
- .string "digung bei Misserfolg.$"
-
-gMoveDescription_RollingKick: @ 83BCB36
- .string "Schneller Tritt aus der\n"
- .string "Drehung.$"
-
-gMoveDescription_SandAttack: @ 83BCB5F
- .string "Senkt Genauigkeit des Geg-\n"
- .string "ners durch Sand.$"
-
-gMoveDescription_Headbutt: @ 83BCB97
- .string "Rammt den Gegner und lässt\n"
- .string "ihn evtl. zurückschrecken.$"
-
-gMoveDescription_HornAttack: @ 83BCBC2
- .string "Spießt den Gegner mit\n"
- .string "spitzen Hörnern auf.$"
-
-gMoveDescription_FuryAttack: @ 83BCBE1
- .string "Spießt den Gegner 2 - 5-mal\n"
- .string "mit spitzen Hörnern auf.$"
-
-gMoveDescription_HornDrill: @ 83BCC12
- .string "K.O.-Attacke, die ein Horn\n"
- .string "als Bohrer einsetzt.$"
-
-gMoveDescription_Tackle: @ 83BCC45
- .string "Trifft den Gegner mit vollem\n"
- .string "Körpereinsatz.$"
-
-gMoveDescription_BodySlam: @ 83BCC6F
- .string "Körper-Ramme, kann\n"
- .string "Paralyse hervorrufen.$"
-
-gMoveDescription_Wrap: @ 83BCC9A
- .string "Umwickelt Gegner 2 - 5-mal\n"
- .string "mit Ranken o. ä.$"
-
-gMoveDescription_TakeDown: @ 83BCCD3
- .string "Rücksichtslose Attacke,\n"
- .string "mit Selbstschädigung.$"
-
-gMoveDescription_Thrash: @ 83BCD06
- .string "Attacke in 2 bis 3 Runden,\n"
- .string "die Anwender verwirrt.$"
-
-gMoveDescription_DoubleEdge: @ 83BCD38
- .string "Lebensgefährlicher Angriff\n"
- .string "mit Selbstschädigung.$"
-
-gMoveDescription_TailWhip: @ 83BCD68
- .string "Hieb mit dem Schweif, senkt\n"
- .string "die VERT. des Gegners.$"
-
-gMoveDescription_PoisonSting: @ 83BCD92
- .string "Angriff mit Widerhaken,\n"
- .string "kann Gegner vergiften.$"
-
-gMoveDescription_Twineedle: @ 83BCDC4
- .string "Stacheln an den Vorderbei-\n"
- .string "nen treffen Gegner 2-mal.$"
-
-gMoveDescription_PinMissile: @ 83BCDF0
- .string "Spitze Nadeln treffen den\n"
- .string "Gegner 2 - 5-mal.$"
-
-gMoveDescription_Leer: @ 83BCE1D
- .string "Gegners VERT.-Wert wird\n"
- .string "durch Blick gesenkt.$"
-
-gMoveDescription_Bite: @ 83BCE4D
- .string "Beißt zu und lässt den Geg-\n"
- .string "ner evtl. zurückschrecken.$"
-
-gMoveDescription_Growl: @ 83BCE7C
- .string "Knurren, das den ANGR.-Wert\n"
- .string "des Gegners senkt.$"
-
-gMoveDescription_Roar: @ 83BCEA6
- .string "Verjagt den Gegner und be-\n"
- .string "endet den Kampf in Wildnis.$"
-
-gMoveDescription_Sing: @ 83BCECC
- .string "Ein Lied, das den Gegner\n"
- .string "in tiefen Schlaf versetzt.$"
-
-gMoveDescription_Supersonic: @ 83BCEFF
- .string "Ausstoß bizarrer Schallwel-\n"
- .string "len. Verwirrt Gegner evtl.$"
-
-gMoveDescription_SonicBoom: @ 83BCF33
- .string "Schockwellen. Richten immer\n"
- .string "20 KP Schaden an.$"
-
-gMoveDescription_Disable: @ 83BCF6A
- .string "Psycho-Attacke. Blockiert\n"
- .string "eine Attacke des Gegners.$"
-
-gMoveDescription_Acid: @ 83BCF97
- .string "Versprüht ätzende Flüssig-\n"
- .string "keit, senkt evtl. VERT.$"
-
-gMoveDescription_Ember: @ 83BCFC6
- .string "Schwache Feuer-Attacke.\n"
- .string "Verbrennt Gegner evtl.$"
-
-gMoveDescription_Flamethrower: @ 83BCFF2
- .string "Starke Feuer-Attacke.\n"
- .string "Verbrennt Gegner evtl.$"
-
-gMoveDescription_Mist: @ 83BD022
- .string "Nebel, der die Änderung der\n"
- .string "Werte verhindert.$"
-
-gMoveDescription_WaterGun: @ 83BD054
- .string "Der Gegner wird mit Wasser\n"
- .string "bespritzt.$"
-
-gMoveDescription_HydroPump: @ 83BD075
- .string "Spritzt Wasser mit\n"
- .string "Hochdruck auf den Gegner.$"
-
-gMoveDescription_Surf: @ 83BD0A3
- .string "Eine riesige Welle bricht\n"
- .string "über den Gegner herein.$"
-
-gMoveDescription_IceBeam: @ 83BD0D9
- .string "Gegner wird von Eisstrahl\n"
- .string "getroffen, friert evtl. ein.$"
-
-gMoveDescription_Blizzard: @ 83BD10D
- .string "Ein Schneesturm, der den\n"
- .string "Gegner einfrieren kann.$"
-
-gMoveDescription_Psybeam: @ 83BD140
- .string "Feuert einen Strahl ab, der\n"
- .string "Gegner verwirren kann.$"
-
-gMoveDescription_BubbleBeam: @ 83BD16F
- .string "Versprüht Blasen, die den\n"
- .string "INIT.-Wert evtl. senken.$"
-
-gMoveDescription_AuroraBeam: @ 83BD19F
- .string "Regenbogenfarbener Strahl,\n"
- .string "senkt evtl. ANGR.-Wert.$"
-
-gMoveDescription_HyperBeam: @ 83BD1D3
- .string "Starke Attacke. Angreifer\n"
- .string "setzt eine Runde aus.$"
-
-gMoveDescription_Peck: @ 83BD209
- .string "Greift Gegner mit dem\n"
- .string "Schnabel an.$"
-
-gMoveDescription_DrillPeck: @ 83BD233
- .string "Attacke, bei der der Schna-\n"
- .string "bel als Bohrer dient.$"
-
-gMoveDescription_Submission: @ 83BD26A
- .string "Rücksichtsloser Rempler. \n"
- .string "Schädigt auch Angreifer.$"
-
-gMoveDescription_LowKick: @ 83BD299
- .string "Tritt, der massigen Gegnern\n"
- .string "mehr Schaden zufügt.$"
-
-gMoveDescription_Counter: @ 83BD2CB
- .string "Kontert physischen Tref-\n"
- .string "fer mit doppelter Kraft.$"
-
-gMoveDescription_SeismicToss: @ 83BD2FE
- .string "Richtet Schaden gemäß\n"
- .string "Level d. Angreifers an.$"
-
-gMoveDescription_Strength: @ 83BD32D
- .string "Erzeugt enorme Kraft und\n"
- .string "rammt den Gegner.$"
-
-gMoveDescription_Absorb: @ 83BD358
- .string "Attacke, die die Hälfte des\n"
- .string "Schadens absorbiert.$"
-
-gMoveDescription_MegaDrain: @ 83BD38A
- .string "Attacke, die die Hälfte des\n"
- .string "Schadens absorbiert.$"
-
-gMoveDescription_LeechSeed: @ 83BD3BC
- .string "Gegner wird bepflanzt und\n"
- .string "verliert jede Runde KP.$"
-
-gMoveDescription_Growth: @ 83BD3F0
- .string "Der Körper wächst und\n"
- .string "SPEZ. ANGR. wird erhöht.$"
-
-gMoveDescription_RazorLeaf: @ 83BD41F
- .string "Trifft Gegner mit Blättern.\n"
- .string "Hohe Volltrefferquote.$"
-
-gMoveDescription_SolarBeam: @ 83BD454
- .string "Absorbiert Licht in der 1.\n"
- .string "Runde, 2. Runde Angriff.$"
-
-gMoveDescription_PoisonPowder: @ 83BD487
- .string "Verstreut giftigen Puder,\n"
- .string "der Gegner vergiften kann.$"
-
-gMoveDescription_StunSpore: @ 83BD4B8
- .string "Verstreut Puder, der den\n"
- .string "Gegner evtl. paralysiert.$"
-
-gMoveDescription_SleepPowder: @ 83BD4E5
- .string "Verstreut Puder, der Geg.\n"
- .string "evtl. in Schlaf versetzt.$"
-
-gMoveDescription_PetalDance: @ 83BD518
- .string "Angriff in 2-3 Runden.\n"
- .string "Angreifer wird verwirrt.$"
-
-gMoveDescription_StringShot: @ 83BD54A
- .string "Umwickelt Gegner mit Faden\n"
- .string "und senkt INIT.-Wert.$"
-
-gMoveDescription_DragonRage: @ 83BD579
- .string "Stößt Schockwellen aus, die\n"
- .string "40 KP Schaden anrichten.$"
-
-gMoveDescription_FireSpin: @ 83BD5B0
- .string "Schließt Gegner für 2-5\n"
- .string "Runden in Feuerkreis ein.$"
-
-gMoveDescription_ThunderShock: @ 83BD5E2
- .string "Elektro-Attacke. Gegner\n"
- .string "evtl. paralysiert.$"
-
-gMoveDescription_Thunderbolt: @ 83BD612
- .string "Starke Elektro-Attacke,\n"
- .string "Gegner evtl. paralysiert.$"
-
-gMoveDescription_ThunderWave: @ 83BD648
- .string "Ein schwacher Stromstoß,\n"
- .string "der den Gegner paralysiert.$"
-
-gMoveDescription_Thunder: @ 83BD67B
- .string "Elektro-Attacke, die den\n"
- .string "Gegner evtl. paralysiert.$"
-
-gMoveDescription_RockThrow: @ 83BD6A8
- .string "Wirft kleine Steine auf den\n"
- .string "Gegner.$"
-
-gMoveDescription_Earthquake: @ 83BD6CE
- .string "Mächtiges Beben. Ist bei\n"
- .string "fliegenden Feinden nutzlos.$"
-
-gMoveDescription_Fissure: @ 83BD702
- .string "Sofort-K.O. Wirft Gegner\n"
- .string "in Gebirgsspalte.$"
-
-gMoveDescription_Dig: @ 83BD735
- .string "Gräbt sich in der 1. Runde\n"
- .string "ein und trifft in der 2.$"
-
-gMoveDescription_Toxic: @ 83BD76C
- .string "Vergiftet den Gegner mit \n"
- .string "einem starken Toxin.$"
-
-gMoveDescription_Confusion: @ 83BD798
- .string "Psycho-Attacke, die den\n"
- .string "Gegner evtl. verwirrt.$"
-
-gMoveDescription_Psychic: @ 83BD7C3
- .string "Starke Psycho-Attacke, die\n"
- .string "evtl. SPEZ. VERT. senkt.$"
-
-gMoveDescription_Hypnosis: @ 83BD7F5
- .string "Hypno-Attacke, die Gegner\n"
- .string "evtl. in Schlaf versetzt.$"
-
-gMoveDescription_Meditate: @ 83BD81F
- .string "Friedliche Meditation, um\n"
- .string "ANGR.-Wert zu steigern.$"
-
-gMoveDescription_Agility: @ 83BD850
- .string "Entspannt den Körper, um\n"
- .string "INIT.-Wert. zu steigern.$"
-
-gMoveDescription_QuickAttack: @ 83BD879
- .string "Sehr schneller Angriff mit\n"
- .string "Erstschlaggarantie.$"
-
-gMoveDescription_Rage: @ 83BD8AD
- .string "Erhöht ANGR. des Anwenders\n"
- .string "bei jedem gegn. Treffer.$"
-
-gMoveDescription_Teleport: @ 83BD8DC
- .string "Psycho-Angriff, um sofort\n"
- .string "aus einem Kampf zu fliehen.$"
-
-gMoveDescription_NightShade: @ 83BD90E
- .string "Richtet Schaden gemäß\n"
- .string "Level d. Angreifers an.$"
-
-gMoveDescription_Mimic: @ 83BD93D
- .string "Kopiert eine zuvor ausge-\n"
- .string "führte Attacke d. Gegners.$"
-
-gMoveDescription_Screech: @ 83BD96E
- .string "Stößt einen Schrei aus, um\n"
- .string "gegn. VERT. zu senken.$"
-
-gMoveDescription_DoubleTeam: @ 83BD9A3
- .string "Erzeugt Ebenbilder, um \n"
- .string "Fluchtwert zu erhöhen.$"
-
-gMoveDescription_Recover: @ 83BD9D1
- .string "Max. KP des Anwenders w.\n"
- .string "bis zur Hälfte aufgefüllt.$"
-
-gMoveDescription_Harden: @ 83BD9FC
- .string "Stärkt die Muskulatur und\n"
- .string "erhöht VERT.-Wert.$"
-
-gMoveDescription_Minimize: @ 83BDA2B
- .string "Anwender schrumpft, um\n"
- .string "Fluchtwert zu erhöhen.$"
-
-gMoveDescription_Smokescreen: @ 83BDA5B
- .string "Senkt Genauigkeit d. Geg-\n"
- .string "ners mit Rauch, Tinte o. ä.$"
-
-gMoveDescription_ConfuseRay: @ 83BDA8C
- .string "Ein fieser Strahl, der den\n"
- .string "Gegner verwirrt.$"
-
-gMoveDescription_Withdraw: @ 83BDAB2
- .string "Rückzug in den harten\n"
- .string "Panzer. Erhöht VERT.-Wert.$"
-
-gMoveDescription_DefenseCurl: @ 83BDAEB
- .string "Verbirgt Schwächen durch\n"
- .string "Einrollen, VERT.-Wert hoch.$"
-
-gMoveDescription_Barrier: @ 83BDB1D
- .string "Erzeugt Barriere, die den\n"
- .string "VERT.-Wert stark erhöht.$"
-
-gMoveDescription_LightScreen: @ 83BDB4C
- .string "Erzeugt Lichtwand u. senkt\n"
- .string "SPEZ. ANGR.-Schaden.$"
-
-gMoveDescription_Haze: @ 83BDB80
- .string "Erzeugt dunklen Dunst.\n"
- .string "Löscht alle Statusänder.$"
-
-gMoveDescription_Reflect: @ 83BDBB7
- .string "Erzeugt Lichtwand, schützt\n"
- .string "teilweise vor phys. Angr.$"
-
-gMoveDescription_FocusEnergy: @ 83BDBEE
- .string "Bündelt Kraft. Volltreffer-\n"
- .string "chance wird erhöht.$"
-
-gMoveDescription_Bide: @ 83BDC1D
- .string "Erträgt 2 Runden Angriffe,\n"
- .string "schlägt doppelt zurück.$"
-
-gMoveDescription_Metronome: @ 83BDC4D
- .string "Bewegt Finger und wählt\n"
- .string "PKMN-Attacke zufällig aus.$"
-
-gMoveDescription_MirrorMove: @ 83BDC81
- .string "Erwidert gegn. Angriff mit\n"
- .string "derselben Attacke.$"
-
-gMoveDescription_SelfDestruct: @ 83BDCAF
- .string "Richtet großen Schaden an.\n"
- .string "Anwender wird besiegt.$"
-
-gMoveDescription_EggBomb: @ 83BDCE0
- .string "Ein Ei wird auf den Gegner\n"
- .string "abgefeuert.$"
-
-gMoveDescription_Lick: @ 83BDD06
- .string "Leck-Attacke mit Zunge.\n"
- .string "Gegner evtl. paralysiert.$"
-
-gMoveDescription_Smog: @ 83BDD3D
- .string "Angriff mit Gas. Gegner wird\n"
- .string "evtl. vergiftet.$"
-
-gMoveDescription_Sludge: @ 83BDD69
- .string "Wirft Schlamm auf Gegner.\n"
- .string "Evtl. Vergiftung.$"
-
-gMoveDescription_BoneClub: @ 83BDD9E
- .string "Schlägt Gegner mit Keule\n"
- .string "und verschreckt ihn evtl.$"
-
-gMoveDescription_FireBlast: @ 83BDDCE
- .string "Feuersbrunst, die alles ver-\n"
- .string "sengt. Verbrennt Geg. evtl.$"
-
-gMoveDescription_Waterfall: @ 83BDE01
- .string "Attacke basiert auf Tempo.\n"
- .string "Erklimmt Wasserfälle.$"
-
-gMoveDescription_Clamp: @ 83BDE31
- .string "Fängt und drückt Gegner\n"
- .string "für 2-5 Runden.$"
-
-gMoveDescription_Swift: @ 83BDE5E
- .string "Verschießt sternförmige\n"
- .string "Strahlen. Treffergarantie!$"
-
-gMoveDescription_SkullBash: @ 83BDE87
- .string "Zieht Kopf ein und greift in\n"
- .string "der nächsten Runde an.$"
-
-gMoveDescription_SpikeCannon: @ 83BDEB9
- .string "Verschießt spitze Stacheln\n"
- .string "und trifft 2 - 5-mal.$"
-
-gMoveDescription_Constrict: @ 83BDEE9
- .string "Schmerzvoller Klammergriff.\n"
- .string "Senkt evtl. INIT.-Wert.$"
-
-gMoveDescription_Amnesia: @ 83BDF16
- .string "Gedächtnisverlust, der\n"
- .string "SPEZ. VERT. deutlich erhöht.$"
-
-gMoveDescription_Kinesis: @ 83BDF4A
- .string "Lenkt Gegner ab und senkt\n"
- .string "evtl. seine Genauigkeit.$"
-
-gMoveDescription_SoftBoiled: @ 83BDF71
- .string "Max. KP des Anwenders w.\n"
- .string "bis zur Hälfte aufgefüllt.$"
-
-gMoveDescription_HiJumpKick: @ 83BDF9C
- .string "Sprung-Tritt mit Knie. Miss-\n"
- .string "erfolg verletzt Anwender.$"
-
-gMoveDescription_Glare: @ 83BDFD1
- .string "Schüchtert Gegner ein, so\n"
- .string "dass er paralysiert ist.$"
-
-gMoveDescription_DreamEater: @ 83BE003
- .string "Schlafendem Gegner wird\n"
- .string "halber Schaden abgezogen.$"
-
-gMoveDescription_PoisonGas: @ 83BE03A
- .string "Hüllt Gegner in giftiges Gas\n"
- .string "ein, kann vergiften.$"
-
-gMoveDescription_Barrage: @ 83BE06B
- .string "Wirft 2 - 5-mal runde Gegen-\n"
- .string "stände auf den Gegner.$"
-
-gMoveDescription_LeechLife: @ 83BE098
- .string "Ein Angriff, der die Hälfte\n"
- .string "des Schadens saugt.$"
-
-gMoveDescription_LovelyKiss: @ 83BE0C9
- .string "Fordert Kuss mit bösem\n"
- .string "Blick. Evtl. Schlaf.$"
-
-gMoveDescription_SkyAttack: @ 83BE0FE
- .string "Sucht nach Schwächen,\n"
- .string "Treffer nächste Runde.$"
-
-gMoveDescription_Transform: @ 83BE133
- .string "Ändert die Anwenderzellen\n"
- .string "für ein Ebenbild d. Gegners.$"
-
-gMoveDescription_Bubble: @ 83BE168
- .string "Angriff mit Blasen. INIT.-\n"
- .string "Wert wird evtl. gesenkt.$"
-
-gMoveDescription_DizzyPunch: @ 83BE19C
- .string "Rhythmischer Schlag, der\n"
- .string "den Gegner verwirren kann.$"
-
-gMoveDescription_Spore: @ 83BE1C7
- .string "Erzeugt eine Wolke aus ein-\n"
- .string "schläfernden Sporen.$"
-
-gMoveDescription_Flash: @ 83BE1FC
- .string "Erzeugt helles Licht, das\n"
- .string "gegn. Genauigkeit senkt.$"
-
-gMoveDescription_Psywave: @ 83BE231
- .string "Psycho-Welle mit unter-\n"
- .string "schiedlicher Intensität.$"
-
-gMoveDescription_Splash: @ 83BE263
- .string "Nur ein Platscher..., der\n"
- .string "überhaupt nichts bewirkt.$"
-
-gMoveDescription_AcidArmor: @ 83BE293
- .string "Verflüssigt Körper d. An-\n"
- .string "wenders. Erhört VERT.$"
-
-gMoveDescription_Crabhammer: @ 83BE2C7
- .string "Schlägt mit Schere zu.\n"
- .string "Volltrefferchance hoch.$"
-
-gMoveDescription_Explosion: @ 83BE2FD
- .string "Richtet großen Schaden an.\n"
- .string "Anwender wird besiegt.$"
-
-gMoveDescription_FurySwipes: @ 83BE32E
- .string "Beharkt Gegner 2 - 5-mal\n"
- .string "mit scharfen Klauen o. ä.$"
-
-gMoveDescription_Bonemerang: @ 83BE362
- .string "Ein Bumerang aus Knochen,\n"
- .string "der zweimal trifft.$"
-
-gMoveDescription_Rest: @ 83BE38E
- .string "Anwender schläft 2 Runden,\n"
- .string "KP und Status erneuert.$"
-
-gMoveDescription_RockSlide: @ 83BE3C4
- .string "Schleudert riesige Felsen.\n"
- .string "Verschreckt evtl. Gegner.$"
-
-gMoveDescription_HyperFang: @ 83BE3F4
- .string "Angriff mit Zähnen.\n"
- .string "Verschreckt evtl. Gegner.$"
-
-gMoveDescription_Sharpen: @ 83BE423
- .string "Reduziert Polygonzahl und\n"
- .string "erhöht ANGR.-Wert.$"
-
-gMoveDescription_Conversion: @ 83BE450
- .string "Wandelt Typ d. Anwenders in\n"
- .string "eigenen Attacken-Typ.$"
-
-gMoveDescription_TriAttack: @ 83BE481
- .string "Feuert 3 Arten von Strahlen\n"
- .string "gleichzeitig ab.$"
-
-gMoveDescription_SuperFang: @ 83BE4AE
- .string "Greift mit scharfen Zähnen\n"
- .string "an. Halbiert gegnerische KP.$"
-
-gMoveDescription_Slash: @ 83BE4E3
- .string "Hieb mit Klauen o. ä. Hohe\n"
- .string "Volltrefferquote.$"
-
-gMoveDescription_Substitute: @ 83BE51B
- .string "Lockvogel, der 1/4 der max.\n"
- .string "KP des Anwenders besitzt.$"
-
-gMoveDescription_Struggle: @ 83BE54F
- .string "Einsatz nur bei verbrauch-\n"
- .string "ten AP. Selbstschädigung!$"
-
-gMoveDescription_Sketch: @ 83BE58B
- .string "Kopiert stets den zuletzt\n"
- .string "erlittenen Angriff.$"
-
-gMoveDescription_TripleKick: @ 83BE5B3
- .string "Tritt Gegner 3-mal nach-\n"
- .string "einander. Härte nimmt zu.$"
-
-gMoveDescription_Thief: @ 83BE5E9
- .string "Kann das vom Gegner\n"
- .string "gehaltene Item stehlen.$"
-
-gMoveDescription_SpiderWeb: @ 83BE61C
- .string "Wickelt Gegner ein. Flucht \n"
- .string "oder Tausch unmöglich.$"
-
-gMoveDescription_MindReader: @ 83BE653
- .string "Ahnt gegnerische Aktion.\n"
- .string "Nächste Attacke trifft.$"
-
-gMoveDescription_Nightmare: @ 83BE68A
- .string "Bewirkt 1/4 Schaden pro\n"
- .string "Zug bei schlafendem Gegner.$"
-
-gMoveDescription_FlameWheel: @ 83BE6BC
- .string "Feuer-Attacke, die Gegner\n"
- .string "evtl. verbrennt.$"
-
-gMoveDescription_Snore: @ 83BE6EB
- .string "Laute Attacke. Kann nur im\n"
- .string "Schlaf benutzt werden.$"
-
-gMoveDescription_Curse: @ 83BE71D
- .string "Ein Angriff, der bei GEIST-\n"
- .string "PKMN anders funktioniert.$"
-
-gMoveDescription_Flail: @ 83BE74B
- .string "Richtet mehr Schaden an,\n"
- .string "wenn eigene KP niedrig sind.$"
-
-gMoveDescription_Conversion2: @ 83BE77C
- .string "Anwender wird resistent\n"
- .string "gegen letzten Angr.-Typ.$"
-
-gMoveDescription_Aeroblast: @ 83BE7B0
- .string "Erzeugt ein Vakuum.\n"
- .string "Hohe Volltrefferquote.$"
-
-gMoveDescription_CottonSpore: @ 83BE7E4
- .string "Sporen heften sich an den\n"
- .string "Gegner. Senkt INIT.-Wert.$"
-
-gMoveDescription_Reversal: @ 83BE815
- .string "Richtet mehr Schaden an,\n"
- .string "wenn eigene KP niedrig sind.$"
-
-gMoveDescription_Spite: @ 83BE846
- .string "AP des letzten gegner.\n"
- .string "Angriffs werden gesenkt.$"
-
-gMoveDescription_PowderSnow: @ 83BE875
- .string "Schnee auf Gegner, der\n"
- .string "evtl. eingefroren wird.$"
-
-gMoveDescription_Protect: @ 83BE8AB
- .string "Weicht Angriff aus.\n"
- .string "Scheitert evtl. bei Wdh.$"
-
-gMoveDescription_MachPunch: @ 83BE8DE
- .string "Schneller Hieb, der stets\n"
- .string "zuerst trifft.$"
-
-gMoveDescription_ScaryFace: @ 83BE911
- .string "Erschreckt mit Grimasse. \n"
- .string "INIT.-Wert sinkt deutlich.$"
-
-gMoveDescription_FaintAttack: @ 83BE946
- .string "Zieht Gegner heran und\n"
- .string "trifft mit Sicherheit.$"
-
-gMoveDescription_SweetKiss: @ 83BE976
- .string "Fordert Kuss mit süßem\n"
- .string "Blick. Verwirrt Gegner evtl.$"
-
-gMoveDescription_BellyDrum: @ 83BE9AC
- .string "Erhöht ANGR.-Wert,\n"
- .string "opfert jedoch KP.$"
-
-gMoveDescription_SludgeBomb: @ 83BE9D3
- .string "Wirft Schlamm auf Gegner\n"
- .string "und vergiftet ihn evtl.$"
-
-gMoveDescription_MudSlap: @ 83BEA08
- .string "Wirft Gegner Matsch ins Ge-\n"
- .string "sicht. Genauigkeit sinkt.$"
-
-gMoveDescription_Octazooka: @ 83BEA3C
- .string "Verschießt Tinte und senkt\n"
- .string "dadurch Genauigkeit.$"
-
-gMoveDescription_Spikes: @ 83BEA6C
- .string "Richtet bei Tausch Schaden\n"
- .string "mit Stacheln an.$"
-
-gMoveDescription_ZapCannon: @ 83BEA98
- .string "Kräftige, ungenaue At-\n"
- .string "tacke, die evtl. paralysiert.$"
-
-gMoveDescription_Foresight: @ 83BEACE
- .string "Verhindert Anstieg von\n"
- .string "gegnerischem Fluchtwert.$"
-
-gMoveDescription_DestinyBond: @ 83BEB01
- .string "Wird der Angreifer besiegt,\n"
- .string "gilt das auch für d. Gegner.$"
-
-gMoveDescription_PerishSong: @ 83BEB34
- .string "Wer dieses Lied hört, wird\n"
- .string "nach 3 Runden besiegt.$"
-
-gMoveDescription_IcyWind: @ 83BEB65
- .string "Eis-Attacke, die den INIT.-\n"
- .string "Wert des Gegners senkt.$"
-
-gMoveDescription_Detect: @ 83BEB94
- .string "Wendet Attacken ab, Erfolg\n"
- .string "sinkt bei Wiederholung.$"
-
-gMoveDescription_BoneRush: @ 83BEBC7
- .string "Greift Gegner 2 - 5-mal in\n"
- .string "Folge mit einem Knochen an.$"
-
-gMoveDescription_LockOn: @ 83BEBF9
- .string "Visiert Gegner an u. trifft\n"
- .string "in der nächsten Runde.$"
-
-gMoveDescription_Outrage: @ 83BEC2B
- .string "Wiederholt Angriff 2-3 Run-\n"
- .string "den lang. Verwirrt Anwender.$"
-
-gMoveDescription_Sandstorm: @ 83BEC5D
- .string "Erzeugt einen Sandsturm,\n"
- .string "der mehrere Runden wütet.$"
-
-gMoveDescription_GigaDrain: @ 83BEC8E
- .string "Absorbiert die Hälfte des\n"
- .string "angerichteten Schadens.$"
-
-gMoveDescription_Endure: @ 83BECBF
- .string "Hält jeder Attacke 1 Runde\n"
- .string "stand. 1 KP bleibt stets.$"
-
-gMoveDescription_Charm: @ 83BECF4
- .string "Betört den Gegner u. redu-\n"
- .string "ziert seinen ANGR. deutlich.$"
-
-gMoveDescription_Rollout: @ 83BED23
- .string "Attacke, die 5 Runden\n"
- .string "dauert. Die Härte nimmt zu.$"
-
-gMoveDescription_FalseSwipe: @ 83BED54
- .string "Ein Angriff, der dem Gegner\n"
- .string "zumindest 1 KP lässt.$"
-
-gMoveDescription_Swagger: @ 83BED86
- .string "Verwirrt den Gegner und\n"
- .string "erhöht ANGR.-Wert deutlich.$"
-
-gMoveDescription_MilkDrink: @ 83BEDB8
- .string "Füllt bis zur Hälfte der max.\n"
- .string "KP des Benutzers auf.$"
-
-gMoveDescription_Spark: @ 83BEDE3
- .string "Elektro-Hieb, der Gegner\n"
- .string "paralysieren kann.$"
-
-gMoveDescription_FuryCutter: @ 83BEE14
- .string "Eine Attacke, deren Härte\n"
- .string "bei jedem Treffer zunimmt.$"
-
-gMoveDescription_SteelWing: @ 83BEE47
- .string "Trifft den Gegner hart mit\n"
- .string "ausgebreiteten Flügeln.$"
-
-gMoveDescription_MeanLook: @ 83BEE74
- .string "Böser Blick, der die Flucht\n"
- .string "des Gegners vereitelt.$"
-
-gMoveDescription_Attract: @ 83BEEA9
- .string "Angriff des anderen Ge-\n"
- .string "schlechts unwahrscheinl.$"
-
-gMoveDescription_SleepTalk: @ 83BEEDA
- .string "Benutzt per Zufall eine\n"
- .string "Attacke im Schlaf.$"
-
-gMoveDescription_HealBell: @ 83BEF02
- .string "Läutet beruhigend, heilt\n"
- .string "alle Status-Veränderungen.$"
-
-gMoveDescription_Return: @ 83BEF36
- .string "Angriff, dessen Kraft bei \n"
- .string "Freundschaft größer wird.$"
-
-gMoveDescription_Present: @ 83BEF69
- .string "Eine Bombe als Geschenk. Es\n"
- .string "kann KP wiederherstellen.$"
-
-gMoveDescription_Frustration: @ 83BEF97
- .string "Die Attacke ist stärker bei\n"
- .string "verhassten TRAINERn.$"
-
-gMoveDescription_Safeguard: @ 83BEFCE
- .string "Mystische Kraft, die alle\n"
- .string "Statusprobleme verhindert.$"
-
-gMoveDescription_PainSplit: @ 83BEFFD
- .string "Addiert KP v. Anwender u.\n"
- .string "Gegner, teilt gerecht auf.$"
-
-gMoveDescription_SacredFire: @ 83BF033
- .string "Mystische Feuer-Attacke, \n"
- .string "die d. Geg. evtl. verbrennt.$"
-
-gMoveDescription_Magnitude: @ 83BF063
- .string "Ein erdbebenartiger An-\n"
- .string "griff von zufälliger Stärke.$"
-
-gMoveDescription_DynamicPunch: @ 83BF090
- .string "Kräftige Attacke, die ver-\n"
- .string "wirrt, aber ungenau ist.$"
-
-gMoveDescription_Megahorn: @ 83BF0C6
- .string "Brutaler Frontalangriff\n"
- .string "mit spitzen Hörnern.$"
-
-gMoveDescription_DragonBreath: @ 83BF0F6
- .string "Fegt den Gegner mit zer-\n"
- .string "störerisch heißem Atem weg.$"
-
-gMoveDescription_BatonPass: @ 83BF12A
- .string "Tauscht PKMN aus. Alle Än-\n"
- .string "derungen bleiben bestehen.$"
-
-gMoveDescription_Encore: @ 83BF15F
- .string "Gegner wiederholt letzten\n"
- .string "Angriff 2 - 6-mal.$"
-
-gMoveDescription_Pursuit: @ 83BF195
- .string "Richtet großen Schaden bei\n"
- .string "Austausch des Gegners an.$"
-
-gMoveDescription_RapidSpin: @ 83BF1C9
- .string "Trifft den Gegner durch\n"
- .string "Drehen mit max. Tempo.$"
-
-gMoveDescription_SweetScent: @ 83BF1F9
- .string "Lockt Gegner an und senkt\n"
- .string "seinen Fluchtwert.$"
-
-gMoveDescription_IronTail: @ 83BF220
- .string "Att. mit hartem Schweif. \n"
- .string "Senkt evtl. VERT.-Wert.$"
-
-gMoveDescription_MetalClaw: @ 83BF252
- .string "Klauen-Attacke. Evtl. Er-\n"
- .string "höhung d. ANGR.-Wert d. Anw.$"
-
-gMoveDescription_VitalThrow: @ 83BF282
- .string "Attacke stets gleich, aber\n"
- .string "mit Treffergarantie.$"
-
-gMoveDescription_MorningSun: @ 83BF2B3
- .string "Füllt KP auf. Die Menge\n"
- .string "hängt vom Wetter ab.$"
-
-gMoveDescription_Synthesis: @ 83BF2E4
- .string "Füllt KP auf. Die Menge\n"
- .string "hängt vom Wetter ab.$"
-
-gMoveDescription_Moonlight: @ 83BF315
- .string "Füllt KP auf. Die Menge\n"
- .string "hängt vom Wetter ab.$"
-
-gMoveDescription_HiddenPower: @ 83BF346
- .string "Die Wirkung dieser Attacke\n"
- .string "hängt vom Benutzer ab.$"
-
-gMoveDescription_CrossChop: @ 83BF36E
- .string "Doppelter Hieb. Hohe \n"
- .string "Volltrefferquote.$"
-
-gMoveDescription_Twister: @ 83BF3A1
- .string "Trifft Gegner mit\n"
- .string "heftigem Wirbelsturm.$"
-
-gMoveDescription_RainDance: @ 83BF3D0
- .string "Erhöht Stärke von WASSER-\n"
- .string "Attacken 5 Runden lang.$"
-
-gMoveDescription_SunnyDay: @ 83BF403
- .string "Erhöht Stärke von FEUER-\n"
- .string "Attacken 5 Runden lang.$"
-
-gMoveDescription_Crunch: @ 83BF435
- .string "Beißt mit Reißzähnen zu und\n"
- .string "senkt evtl. SPEZ. VERT.$"
-
-gMoveDescription_MirrorCoat: @ 83BF463
- .string "Kontert d. Spezial-Attacke\n"
- .string "d. Geg. mit 2-facher Kraft.$"
-
-gMoveDescription_PsychUp: @ 83BF49A
- .string "Kopiert Effekte d. Gegners\n"
- .string "u. gibt sie dem Angreifer.$"
-
-gMoveDescription_ExtremeSpeed: @ 83BF4CC
- .string "Extrem schnelle und kraft-\n"
- .string "volle Attacke.$"
-
-gMoveDescription_AncientPower: @ 83BF4F3
- .string "Ein Angriff, der alle\n"
- .string "Status-Werte erhöhen kann.$"
-
-gMoveDescription_ShadowBall: @ 83BF517
- .string "Bewirft Gegner und senkt\n"
- .string "evtl. SPEZ. VERT.$"
-
-gMoveDescription_FutureSight: @ 83BF54C
- .string "Stärkt innere Kraft. Trifft\n"
- .string "2 Runden später.$"
-
-gMoveDescription_RockSmash: @ 83BF57B
- .string "Zertrümmernder Angriff, \n"
- .string "der evtl. VERT.-Wert senkt.$"
-
-gMoveDescription_Whirlpool: @ 83BF5AA
- .string "Hält Gegner 2-5 Züge in\n"
- .string "einem Strudel gefangen.$"
-
-gMoveDescription_BeatUp: @ 83BF5E3
- .string "Ruft POKéMON hinzu, um an\n"
- .string "dem Angriff teilzuhaben.$"
-
-gMoveDescription_FakeOut: @ 83BF610
- .string "Trifft schon mit dem ersten\n"
- .string "Schlag. Verjagt Gegner evtl.$"
-
-gMoveDescription_Uproar: @ 83BF643
- .string "Erzeugt für 2-5 Züge einen\n"
- .string "Aufruhr. Verhindert Schlaf.$"
-
-gMoveDescription_Stockpile: @ 83BF679
- .string "Lädt Kraft für bis zu 3\n"
- .string "Runden auf.$"
-
-gMoveDescription_SpitUp: @ 83BF69D
- .string "Entlädt gehortete Kraft.\n"
- .string "Je mehr, desto besser.$"
-
-gMoveDescription_Swallow: @ 83BF6CE
- .string "Absorbiert gehortete\n"
- .string "Kraft. Stellt KP wieder her.$"
-
-gMoveDescription_HeatWave: @ 83BF6F8
- .string "Gegner wird von heißem Atem\n"
- .string "getroffen. Verbrennt evtl.$"
-
-gMoveDescription_Hail: @ 83BF72D
- .string "Erzeugt Hagelsturm, der in\n"
- .string "jeder Runde trifft.$"
-
-gMoveDescription_Torment: @ 83BF75A
- .string "Quält Gegner u. verhindert\n"
- .string "Wdh. eines Angriffs.$"
-
-gMoveDescription_Flatter: @ 83BF78F
- .string "Verwirrt den Gegner, erhöht\n"
- .string "aber dessen SPEZ. ANGR.$"
-
-gMoveDescription_WillOWisp: @ 83BF7B9
- .string "Fügt dem Gegner \n"
- .string "Verbrennungen zu.$"
-
-gMoveDescription_Memento: @ 83BF7E7
- .string "Der Benutzer ist besiegt\n"
- .string "und senkt die gegn. Werte.$"
-
-gMoveDescription_Facade: @ 83BF817
- .string "Erhöht ANGR. nach Verbren-\n"
- .string "nung, Paralyse o. Vergift.$"
-
-gMoveDescription_FocusPunch: @ 83BF84A
- .string "Angriff, der später trifft.\n"
- .string "Ben. schreckt evtl. zurück.$"
-
-gMoveDescription_SmellingSalt: @ 83BF87F
- .string "Effektiv geg. paralysierte\n"
- .string "Gegner. Heilt sie aber auch.$"
-
-gMoveDescription_FollowMe: @ 83BF8B5
- .string "Zieht Aufmerksamkeit an.\n"
- .string "Gegner greift nur Anw. an.$"
-
-gMoveDescription_NaturePower: @ 83BF8E8
- .string "Die Elementklasse des\n"
- .string "Angriffs hängt vom Ort ab.$"
-
-gMoveDescription_Charge: @ 83BF91D
- .string "Lädt Energie für den kom-\n"
- .string "menden Elektro-Angr. auf.$"
-
-gMoveDescription_Taunt: @ 83BF951
- .string "Legt den Gegner rein. Er\n"
- .string "benutzt nur noch Angriffe.$"
-
-gMoveDescription_HelpingHand: @ 83BF97E
- .string "Steigert die Kraft der An-\n"
- .string "griffe des Getroffenen.$"
-
-gMoveDescription_Trick: @ 83BF9A9
- .string "Betrügt beim Handel\n"
- .string "mit Gegenständen.$"
-
-gMoveDescription_RolePlay: @ 83BF9D1
- .string "Parodiert Gegner u. kopiert\n"
- .string "seine Spezialfähigkeiten.$"
-
-gMoveDescription_Wish: @ 83BFA03
- .string "Ein Wunsch, der KP auffüllt.\n"
- .string "Die Erfüllung braucht Zeit.$"
-
-gMoveDescription_Assist: @ 83BFA33
- .string "Greift zufällig mit einem\n"
- .string "Angriff d. Partners an.$"
-
-gMoveDescription_Ingrain: @ 83BFA65
- .string "Verwurzelung füllt KP auf.\n"
- .string "Austausch unmöglich.$"
-
-gMoveDescription_Superpower: @ 83BFA9C
- .string "Steigert Stärke deutlich,\n"
- .string "senkt aber Status-Werte.$"
-
-gMoveDescription_MagicCoat: @ 83BFACB
- .string "Gibt Spezialeffekte zurück\n"
- .string "an Benutzer.$"
-
-gMoveDescription_Recycle: @ 83BFAFA
- .string "Recycling eines\n"
- .string "verwendeten Items.$"
-
-gMoveDescription_Revenge: @ 83BFB21
- .string "Attacke wird stärker, wenn\n"
- .string "Anwender Schaden nimmt.$"
-
-gMoveDescription_BrickBreak: @ 83BFB53
- .string "Durchbricht Barrieren und\n"
- .string "verursacht Schaden.$"
-
-gMoveDescription_Yawn: @ 83BFB88
- .string "Gegner gähnt und schläft\n"
- .string "in der nächsten Runde ein.$"
-
-gMoveDescription_KnockOff: @ 83BFBBD
- .string "Schlägt Gegner Item weg.\n"
- .string "Vereitelt so den Gebrauch.$"
-
-gMoveDescription_Endeavor: @ 83BFBF1
- .string "Wird stärker, wenn Anw.-KP\n"
- .string "geringer als Gegner-KP ist.$"
-
-gMoveDescription_Eruption: @ 83BFC2A
- .string "Je höher KP des Benutzers,\n"
- .string "desto mehr Schaden.$"
-
-gMoveDescription_SkillSwap: @ 83BFC5C
- .string "Anw. tauscht Spezial-\n"
- .string "fähigkeit mit POKéMON.$"
-
-gMoveDescription_Imprison: @ 83BFC8E
- .string "Hindert Gegner an Atta-\n"
- .string "cken, die d. Benutzer kennt.$"
-
-gMoveDescription_Refresh: @ 83BFCC0
- .string "Kuriert Vergiftungen, Para-\n"
- .string "lyse und Verbrennung.$"
-
-gMoveDescription_Grudge: @ 83BFCE7
- .string "Wenn Anw. bes., werden AP\n"
- .string "der Finalattacke gelöscht.$"
-
-gMoveDescription_Snatch: @ 83BFD1D
- .string "Immunität geg. den Effekt\n"
- .string "d. nächsten gegn. Angriffs.$"
-
-gMoveDescription_SecretPower: @ 83BFD4F
- .string "Angriff, dessen Auswirkung\n"
- .string "abhängig vom Ort ist.$"
-
-gMoveDescription_Dive: @ 83BFD7D
- .string "Taucht in der 1. Runde\n"
- .string "unter u. trifft in der 2.$"
-
-gMoveDescription_ArmThrust: @ 83BFDB4
- .string "Schläge mit geradem Arm, die\n"
- .string "Gegner 2 - 5-mal treffen.$"
-
-gMoveDescription_Camouflage: @ 83BFDEB
- .string "Die Elementklasse des\n"
- .string "POKéMON hängt vom Ort ab.$"
-
-gMoveDescription_TailGlow: @ 83BFE20
- .string "Ein blinkendes Licht. SPEZ.\n"
- .string "ANGR. wird deutlich erhöht.$"
-
-gMoveDescription_LusterPurge: @ 83BFE4D
- .string "Angriff mit grellem Licht.\n"
- .string "Senkt evtl. SPEZ. VERT.$"
-
-gMoveDescription_MistBall: @ 83BFE7F
- .string "Angriff m. Daunengestöber,\n"
- .string "Senkt evtl. SPEZ. ANGR.$"
-
-gMoveDescription_FeatherDance: @ 83BFEB1
- .string "Hüllt Gegner in Daunen und\n"
- .string "senkt ANGR.-Wert deutlich.$"
-
-gMoveDescription_TeeterDance: @ 83BFEE6
- .string "Verwirrt alle POKéMON im \n"
- .string "Kampf.$"
-
-gMoveDescription_BlazeKick: @ 83BFF09
- .string "Hohe Volltrefferquote. Ver-\n"
- .string "ursacht evtl. Verbrennung.$"
-
-gMoveDescription_MudSport: @ 83BFF43
- .string "Bedeckt Anw. mit Lehm u. er-\n"
- .string "höht Schutz geg. Elek.-Att.$"
-
-gMoveDescription_IceBall: @ 83BFF7A
- .string "Angriff für 5 Runden. \n"
- .string "Stärker, wenn Treffer.$"
-
-gMoveDescription_NeedleArm: @ 83BFFAF
- .string "Angriff mit dornigen Armen. \n"
- .string "Geg. schreckt evtl. zurück.$"
-
-gMoveDescription_SlackOff: @ 83BFFDE
- .string "Durch Müßiggang wird die\n"
- .string "Hälfte d. max. KP aufgefüllt.$"
-
-gMoveDescription_HyperVoice: @ 83C000B
- .string "Laute Attacke mit Schall-\n"
- .string "wellen.$"
-
-gMoveDescription_PoisonFang: @ 83C003A
- .string "Angriff mit Reißzähnen. \n"
- .string "Gegner wird evtl. vergiftet.$"
-
-gMoveDescription_CrushClaw: @ 83C006B
- .string "Angriff mit scharfen Klau-\n"
- .string "en. Senkt evtl. VERT.-Wert.$"
-
-gMoveDescription_BlastBurn: @ 83C00A1
- .string "Starker Angriff. Angreifer\n"
- .string "muss eine Runde aussetzen.$"
-
-gMoveDescription_HydroCannon: @ 83C00D7
- .string "Starker Angriff. Angreifer\n"
- .string "muss eine Runde aussetzen.$"
-
-gMoveDescription_MeteorMash: @ 83C010D
- .string "Ein Schlag wie ein Meteor.\n"
- .string "Erhöht evtl. ANGR.-Wert.$"
-
-gMoveDescription_Astonish: @ 83C013A
- .string "Angriff, der Gegner evtl.\n"
- .string "zurückschrecken lässt.$"
-
-gMoveDescription_WeatherBall: @ 83C016B
- .string "Elementkl. u. Stärke der At-\n"
- .string "tacke sind wetterabhängig.$"
-
-gMoveDescription_Aromatherapy: @ 83C019E
- .string "Heilt alle Status-Probleme\n"
- .string "mit beruhigendem Duft.$"
-
-gMoveDescription_FakeTears: @ 83C01CF
- .string "Täuscht Weinen vor, um\n"
- .string "gegn. SPEZ. VERT. zu senken.$"
-
-gMoveDescription_AirCutter: @ 83C0201
- .string "Greift mit heftigem Wind an.\n"
- .string "Hohe Volltrefferquote.$"
-
-gMoveDescription_Overheat: @ 83C0235
- .string "Angriff mit voller Kraft.\n"
- .string "SPEZ. ANGR. sinkt deutlich.$"
-
-gMoveDescription_OdorSleuth: @ 83C026D
- .string "Hindert Gegner daran, ihren\n"
- .string "Fluchtwert zu erhöhen.$"
-
-gMoveDescription_RockTomb: @ 83C02A0
- .string "Hält den Feind mit Steinen\n"
- .string "auf u. senkt INIT.-Wert.$"
-
-gMoveDescription_SilverWind: @ 83C02D5
- .string "Pulver-Attacke, die evtl.\n"
- .string "die Werte erhöht.$"
-
-gMoveDescription_MetalSound: @ 83C0300
- .string "Stößt einen spitzen Schrei\n"
- .string "aus. Senkt SPEZ. VERT.$"
-
-gMoveDescription_GrassWhistle: @ 83C0336
- .string "Versetzt Gegner mit schö-\n"
- .string "ner Melodie in den Schlaf.$"
-
-gMoveDescription_Tickle: @ 83C0367
- .string "Bringt Gegner zum Lachen.\n"
- .string "ANGR. u. VERT. sinken.$"
-
-gMoveDescription_CosmicPower: @ 83C0398
- .string "Erhöht VERT. u. SPEZ. VERT.\n"
- .string "durch mystische Kraft.$"
-
-gMoveDescription_WaterSpout: @ 83C03C8
- .string "Ist wirkungsvoller, wenn KP\n"
- .string "des Benutzers hoch sind.$"
-
-gMoveDescription_SignalBeam: @ 83C03F7
- .string "Seltsame Strahlenattacke.\n"
- .string "Verwirrt evtl. den Gegner.$"
-
-gMoveDescription_ShadowPunch: @ 83C0427
- .string "Schattenhieb. Ausweichen\n"
- .string "unmöglich.$"
-
-gMoveDescription_Extrasensory: @ 83C0459
- .string "Besonderer Angriff. Gegner\n"
- .string "schreckt evtl. zurück.$"
-
-gMoveDescription_SkyUppercut: @ 83C048D
- .string "Kinnhaken, als würde man in\n"
- .string "die Luft springen.$"
-
-gMoveDescription_SandTomb: @ 83C04BC
- .string "Gegner leidet für 2-5\n"
- .string "Runden in Sandhose.$"
-
-gMoveDescription_SheerCold: @ 83C04F3
- .string "Eis-Attacke. Besiegt den\n"
- .string "Gegner, wenn sie trifft.$"
-
-gMoveDescription_MuddyWater: @ 83C0526
- .string "Greift mit Matsch an und\n"
- .string "senkt evtl. Genauigkeit.$"
-
-gMoveDescription_BulletSeed: @ 83C0554
- .string "Verschießt 2 bis 5 Samen\n"
- .string "gleichzeitig auf Gegner.$"
-
-gMoveDescription_AerialAce: @ 83C0584
- .string "Eine extrem schnelle und\n"
- .string "unausweichbare Attacke.$"
-
-gMoveDescription_IcicleSpear: @ 83C05B0
- .string "Feuert 2-5 Eiszapfen auf\n"
- .string "den Gegner.$"
-
-gMoveDescription_IronDefense: @ 83C05E3
- .string "Stärkt den Körper.\n"
- .string "Erhöht VERT.-Wert deutlich.$"
-
-gMoveDescription_Block: @ 83C0618
- .string "Versperrt den Fluchtweg\n"
- .string "des Gegners.$"
-
-gMoveDescription_Howl: @ 83C0640
- .string "Jault, um in sich zu gehen.\n"
- .string "Erhöht ANGR.-Wert.$"
-
-gMoveDescription_DragonClaw: @ 83C066D
- .string "Der Gegner wird mit\n"
- .string "scharfen Klauen verletzt.$"
-
-gMoveDescription_FrenzyPlant: @ 83C068F
- .string "Starker Angriff. Angreifer\n"
- .string "muss eine Runde aussetzen.$"
-
-gMoveDescription_BulkUp: @ 83C06C5
- .string "Pumpt den Körper auf. ANGR.\n"
- .string "u. VERT. werden erhöht.$"
-
-gMoveDescription_Bounce: @ 83C06F9
- .string "Springt hoch u. landet in\n"
- .string "nächstem Zug. Evtl. Para.$"
-
-gMoveDescription_MudShot: @ 83C072C
- .string "Bewirft den Gegner mit Lehm\n"
- .string "und senkt INIT.-Wert.$"
-
-gMoveDescription_PoisonTail: @ 83C0754
- .string "Hohe Volltrefferquote.\n"
- .string "Gegner evtl. vergiftet.$"
-
-gMoveDescription_Covet: @ 83C0784
- .string "Bittet charmant um das ge-\n"
- .string "haltene Item des Gegners.$"
-
-gMoveDescription_VoltTackle: @ 83C07B3
- .string "Lebensgefährliche Attacke,\n"
- .string "leichte Selbstschädigung.$"
-
-gMoveDescription_MagicalLeaf: @ 83C07E7
- .string "Magischer Blattangriff.\n"
- .string "Ausweichen unmöglich.$"
-
-gMoveDescription_WaterSport: @ 83C081A
- .string "Benutzer wird nass, so dass\n"
- .string "er Feuer besser standhält.$"
-
-gMoveDescription_CalmMind: @ 83C084F
- .string "Erhöht SPEZ. ANGR. u. SPEZ.\n"
- .string "VERT. durch Konzentration.$"
-
-gMoveDescription_LeafBlade: @ 83C0880
- .string "Hieb mit scharfkantigem\n"
- .string "Blatt. Hohe Volltrefferqu.$"
-
-gMoveDescription_DragonDance: @ 83C08B4
- .string "Ein mystischer Tanz, der\n"
- .string "ANGR.- u. INIT.-Wert erhöht.$"
-
-gMoveDescription_RockBlast: @ 83C08E0
- .string "Wirft 2 - 5-mal in Folge\n"
- .string "Felsblöcke auf den Gegner.$"
-
-gMoveDescription_ShockWave: @ 83C0911
- .string "Schnelle Elektro-Attacke\n"
- .string "mit Treffergarantie.$"
-
-gMoveDescription_WaterPulse: @ 83C0939
- .string "Ultraschallwellen, die den\n"
- .string "Gegner verwirren können.$"
-
-gMoveDescription_DoomDesire: @ 83C096C
- .string "Speichert Sonnenenergie.\n"
- .string "Angriff 2 Runden später.$"
-
-gMoveDescription_PsychoBoost: @ 83C099D
- .string "Angriff mit voller Kraft.\n"
- .string "SPEZ. ANGR. sinkt deutlich.$"
-
- .align 2
-gMoveDescriptions:: @ 83C09D8
- .4byte gMoveDescription_Pound
- .4byte gMoveDescription_KarateChop
- .4byte gMoveDescription_DoubleSlap
- .4byte gMoveDescription_CometPunch
- .4byte gMoveDescription_MegaPunch
- .4byte gMoveDescription_PayDay
- .4byte gMoveDescription_FirePunch
- .4byte gMoveDescription_IcePunch
- .4byte gMoveDescription_ThunderPunch
- .4byte gMoveDescription_Scratch
- .4byte gMoveDescription_ViceGrip
- .4byte gMoveDescription_Guillotine
- .4byte gMoveDescription_RazorWind
- .4byte gMoveDescription_SwordsDance
- .4byte gMoveDescription_Cut
- .4byte gMoveDescription_Gust
- .4byte gMoveDescription_WingAttack
- .4byte gMoveDescription_Whirlwind
- .4byte gMoveDescription_Fly
- .4byte gMoveDescription_Bind
- .4byte gMoveDescription_Slam
- .4byte gMoveDescription_VineWhip
- .4byte gMoveDescription_Stomp
- .4byte gMoveDescription_DoubleKick
- .4byte gMoveDescription_MegaKick
- .4byte gMoveDescription_JumpKick
- .4byte gMoveDescription_RollingKick
- .4byte gMoveDescription_SandAttack
- .4byte gMoveDescription_Headbutt
- .4byte gMoveDescription_HornAttack
- .4byte gMoveDescription_FuryAttack
- .4byte gMoveDescription_HornDrill
- .4byte gMoveDescription_Tackle
- .4byte gMoveDescription_BodySlam
- .4byte gMoveDescription_Wrap
- .4byte gMoveDescription_TakeDown
- .4byte gMoveDescription_Thrash
- .4byte gMoveDescription_DoubleEdge
- .4byte gMoveDescription_TailWhip
- .4byte gMoveDescription_PoisonSting
- .4byte gMoveDescription_Twineedle
- .4byte gMoveDescription_PinMissile
- .4byte gMoveDescription_Leer
- .4byte gMoveDescription_Bite
- .4byte gMoveDescription_Growl
- .4byte gMoveDescription_Roar
- .4byte gMoveDescription_Sing
- .4byte gMoveDescription_Supersonic
- .4byte gMoveDescription_SonicBoom
- .4byte gMoveDescription_Disable
- .4byte gMoveDescription_Acid
- .4byte gMoveDescription_Ember
- .4byte gMoveDescription_Flamethrower
- .4byte gMoveDescription_Mist
- .4byte gMoveDescription_WaterGun
- .4byte gMoveDescription_HydroPump
- .4byte gMoveDescription_Surf
- .4byte gMoveDescription_IceBeam
- .4byte gMoveDescription_Blizzard
- .4byte gMoveDescription_Psybeam
- .4byte gMoveDescription_BubbleBeam
- .4byte gMoveDescription_AuroraBeam
- .4byte gMoveDescription_HyperBeam
- .4byte gMoveDescription_Peck
- .4byte gMoveDescription_DrillPeck
- .4byte gMoveDescription_Submission
- .4byte gMoveDescription_LowKick
- .4byte gMoveDescription_Counter
- .4byte gMoveDescription_SeismicToss
- .4byte gMoveDescription_Strength
- .4byte gMoveDescription_Absorb
- .4byte gMoveDescription_MegaDrain
- .4byte gMoveDescription_LeechSeed
- .4byte gMoveDescription_Growth
- .4byte gMoveDescription_RazorLeaf
- .4byte gMoveDescription_SolarBeam
- .4byte gMoveDescription_PoisonPowder
- .4byte gMoveDescription_StunSpore
- .4byte gMoveDescription_SleepPowder
- .4byte gMoveDescription_PetalDance
- .4byte gMoveDescription_StringShot
- .4byte gMoveDescription_DragonRage
- .4byte gMoveDescription_FireSpin
- .4byte gMoveDescription_ThunderShock
- .4byte gMoveDescription_Thunderbolt
- .4byte gMoveDescription_ThunderWave
- .4byte gMoveDescription_Thunder
- .4byte gMoveDescription_RockThrow
- .4byte gMoveDescription_Earthquake
- .4byte gMoveDescription_Fissure
- .4byte gMoveDescription_Dig
- .4byte gMoveDescription_Toxic
- .4byte gMoveDescription_Confusion
- .4byte gMoveDescription_Psychic
- .4byte gMoveDescription_Hypnosis
- .4byte gMoveDescription_Meditate
- .4byte gMoveDescription_Agility
- .4byte gMoveDescription_QuickAttack
- .4byte gMoveDescription_Rage
- .4byte gMoveDescription_Teleport
- .4byte gMoveDescription_NightShade
- .4byte gMoveDescription_Mimic
- .4byte gMoveDescription_Screech
- .4byte gMoveDescription_DoubleTeam
- .4byte gMoveDescription_Recover
- .4byte gMoveDescription_Harden
- .4byte gMoveDescription_Minimize
- .4byte gMoveDescription_Smokescreen
- .4byte gMoveDescription_ConfuseRay
- .4byte gMoveDescription_Withdraw
- .4byte gMoveDescription_DefenseCurl
- .4byte gMoveDescription_Barrier
- .4byte gMoveDescription_LightScreen
- .4byte gMoveDescription_Haze
- .4byte gMoveDescription_Reflect
- .4byte gMoveDescription_FocusEnergy
- .4byte gMoveDescription_Bide
- .4byte gMoveDescription_Metronome
- .4byte gMoveDescription_MirrorMove
- .4byte gMoveDescription_SelfDestruct
- .4byte gMoveDescription_EggBomb
- .4byte gMoveDescription_Lick
- .4byte gMoveDescription_Smog
- .4byte gMoveDescription_Sludge
- .4byte gMoveDescription_BoneClub
- .4byte gMoveDescription_FireBlast
- .4byte gMoveDescription_Waterfall
- .4byte gMoveDescription_Clamp
- .4byte gMoveDescription_Swift
- .4byte gMoveDescription_SkullBash
- .4byte gMoveDescription_SpikeCannon
- .4byte gMoveDescription_Constrict
- .4byte gMoveDescription_Amnesia
- .4byte gMoveDescription_Kinesis
- .4byte gMoveDescription_SoftBoiled
- .4byte gMoveDescription_HiJumpKick
- .4byte gMoveDescription_Glare
- .4byte gMoveDescription_DreamEater
- .4byte gMoveDescription_PoisonGas
- .4byte gMoveDescription_Barrage
- .4byte gMoveDescription_LeechLife
- .4byte gMoveDescription_LovelyKiss
- .4byte gMoveDescription_SkyAttack
- .4byte gMoveDescription_Transform
- .4byte gMoveDescription_Bubble
- .4byte gMoveDescription_DizzyPunch
- .4byte gMoveDescription_Spore
- .4byte gMoveDescription_Flash
- .4byte gMoveDescription_Psywave
- .4byte gMoveDescription_Splash
- .4byte gMoveDescription_AcidArmor
- .4byte gMoveDescription_Crabhammer
- .4byte gMoveDescription_Explosion
- .4byte gMoveDescription_FurySwipes
- .4byte gMoveDescription_Bonemerang
- .4byte gMoveDescription_Rest
- .4byte gMoveDescription_RockSlide
- .4byte gMoveDescription_HyperFang
- .4byte gMoveDescription_Sharpen
- .4byte gMoveDescription_Conversion
- .4byte gMoveDescription_TriAttack
- .4byte gMoveDescription_SuperFang
- .4byte gMoveDescription_Slash
- .4byte gMoveDescription_Substitute
- .4byte gMoveDescription_Struggle
- .4byte gMoveDescription_Sketch
- .4byte gMoveDescription_TripleKick
- .4byte gMoveDescription_Thief
- .4byte gMoveDescription_SpiderWeb
- .4byte gMoveDescription_MindReader
- .4byte gMoveDescription_Nightmare
- .4byte gMoveDescription_FlameWheel
- .4byte gMoveDescription_Snore
- .4byte gMoveDescription_Curse
- .4byte gMoveDescription_Flail
- .4byte gMoveDescription_Conversion2
- .4byte gMoveDescription_Aeroblast
- .4byte gMoveDescription_CottonSpore
- .4byte gMoveDescription_Reversal
- .4byte gMoveDescription_Spite
- .4byte gMoveDescription_PowderSnow
- .4byte gMoveDescription_Protect
- .4byte gMoveDescription_MachPunch
- .4byte gMoveDescription_ScaryFace
- .4byte gMoveDescription_FaintAttack
- .4byte gMoveDescription_SweetKiss
- .4byte gMoveDescription_BellyDrum
- .4byte gMoveDescription_SludgeBomb
- .4byte gMoveDescription_MudSlap
- .4byte gMoveDescription_Octazooka
- .4byte gMoveDescription_Spikes
- .4byte gMoveDescription_ZapCannon
- .4byte gMoveDescription_Foresight
- .4byte gMoveDescription_DestinyBond
- .4byte gMoveDescription_PerishSong
- .4byte gMoveDescription_IcyWind
- .4byte gMoveDescription_Detect
- .4byte gMoveDescription_BoneRush
- .4byte gMoveDescription_LockOn
- .4byte gMoveDescription_Outrage
- .4byte gMoveDescription_Sandstorm
- .4byte gMoveDescription_GigaDrain
- .4byte gMoveDescription_Endure
- .4byte gMoveDescription_Charm
- .4byte gMoveDescription_Rollout
- .4byte gMoveDescription_FalseSwipe
- .4byte gMoveDescription_Swagger
- .4byte gMoveDescription_MilkDrink
- .4byte gMoveDescription_Spark
- .4byte gMoveDescription_FuryCutter
- .4byte gMoveDescription_SteelWing
- .4byte gMoveDescription_MeanLook
- .4byte gMoveDescription_Attract
- .4byte gMoveDescription_SleepTalk
- .4byte gMoveDescription_HealBell
- .4byte gMoveDescription_Return
- .4byte gMoveDescription_Present
- .4byte gMoveDescription_Frustration
- .4byte gMoveDescription_Safeguard
- .4byte gMoveDescription_PainSplit
- .4byte gMoveDescription_SacredFire
- .4byte gMoveDescription_Magnitude
- .4byte gMoveDescription_DynamicPunch
- .4byte gMoveDescription_Megahorn
- .4byte gMoveDescription_DragonBreath
- .4byte gMoveDescription_BatonPass
- .4byte gMoveDescription_Encore
- .4byte gMoveDescription_Pursuit
- .4byte gMoveDescription_RapidSpin
- .4byte gMoveDescription_SweetScent
- .4byte gMoveDescription_IronTail
- .4byte gMoveDescription_MetalClaw
- .4byte gMoveDescription_VitalThrow
- .4byte gMoveDescription_MorningSun
- .4byte gMoveDescription_Synthesis
- .4byte gMoveDescription_Moonlight
- .4byte gMoveDescription_HiddenPower
- .4byte gMoveDescription_CrossChop
- .4byte gMoveDescription_Twister
- .4byte gMoveDescription_RainDance
- .4byte gMoveDescription_SunnyDay
- .4byte gMoveDescription_Crunch
- .4byte gMoveDescription_MirrorCoat
- .4byte gMoveDescription_PsychUp
- .4byte gMoveDescription_ExtremeSpeed
- .4byte gMoveDescription_AncientPower
- .4byte gMoveDescription_ShadowBall
- .4byte gMoveDescription_FutureSight
- .4byte gMoveDescription_RockSmash
- .4byte gMoveDescription_Whirlpool
- .4byte gMoveDescription_BeatUp
- .4byte gMoveDescription_FakeOut
- .4byte gMoveDescription_Uproar
- .4byte gMoveDescription_Stockpile
- .4byte gMoveDescription_SpitUp
- .4byte gMoveDescription_Swallow
- .4byte gMoveDescription_HeatWave
- .4byte gMoveDescription_Hail
- .4byte gMoveDescription_Torment
- .4byte gMoveDescription_Flatter
- .4byte gMoveDescription_WillOWisp
- .4byte gMoveDescription_Memento
- .4byte gMoveDescription_Facade
- .4byte gMoveDescription_FocusPunch
- .4byte gMoveDescription_SmellingSalt
- .4byte gMoveDescription_FollowMe
- .4byte gMoveDescription_NaturePower
- .4byte gMoveDescription_Charge
- .4byte gMoveDescription_Taunt
- .4byte gMoveDescription_HelpingHand
- .4byte gMoveDescription_Trick
- .4byte gMoveDescription_RolePlay
- .4byte gMoveDescription_Wish
- .4byte gMoveDescription_Assist
- .4byte gMoveDescription_Ingrain
- .4byte gMoveDescription_Superpower
- .4byte gMoveDescription_MagicCoat
- .4byte gMoveDescription_Recycle
- .4byte gMoveDescription_Revenge
- .4byte gMoveDescription_BrickBreak
- .4byte gMoveDescription_Yawn
- .4byte gMoveDescription_KnockOff
- .4byte gMoveDescription_Endeavor
- .4byte gMoveDescription_Eruption
- .4byte gMoveDescription_SkillSwap
- .4byte gMoveDescription_Imprison
- .4byte gMoveDescription_Refresh
- .4byte gMoveDescription_Grudge
- .4byte gMoveDescription_Snatch
- .4byte gMoveDescription_SecretPower
- .4byte gMoveDescription_Dive
- .4byte gMoveDescription_ArmThrust
- .4byte gMoveDescription_Camouflage
- .4byte gMoveDescription_TailGlow
- .4byte gMoveDescription_LusterPurge
- .4byte gMoveDescription_MistBall
- .4byte gMoveDescription_FeatherDance
- .4byte gMoveDescription_TeeterDance
- .4byte gMoveDescription_BlazeKick
- .4byte gMoveDescription_MudSport
- .4byte gMoveDescription_IceBall
- .4byte gMoveDescription_NeedleArm
- .4byte gMoveDescription_SlackOff
- .4byte gMoveDescription_HyperVoice
- .4byte gMoveDescription_PoisonFang
- .4byte gMoveDescription_CrushClaw
- .4byte gMoveDescription_BlastBurn
- .4byte gMoveDescription_HydroCannon
- .4byte gMoveDescription_MeteorMash
- .4byte gMoveDescription_Astonish
- .4byte gMoveDescription_WeatherBall
- .4byte gMoveDescription_Aromatherapy
- .4byte gMoveDescription_FakeTears
- .4byte gMoveDescription_AirCutter
- .4byte gMoveDescription_Overheat
- .4byte gMoveDescription_OdorSleuth
- .4byte gMoveDescription_RockTomb
- .4byte gMoveDescription_SilverWind
- .4byte gMoveDescription_MetalSound
- .4byte gMoveDescription_GrassWhistle
- .4byte gMoveDescription_Tickle
- .4byte gMoveDescription_CosmicPower
- .4byte gMoveDescription_WaterSpout
- .4byte gMoveDescription_SignalBeam
- .4byte gMoveDescription_ShadowPunch
- .4byte gMoveDescription_Extrasensory
- .4byte gMoveDescription_SkyUppercut
- .4byte gMoveDescription_SandTomb
- .4byte gMoveDescription_SheerCold
- .4byte gMoveDescription_MuddyWater
- .4byte gMoveDescription_BulletSeed
- .4byte gMoveDescription_AerialAce
- .4byte gMoveDescription_IcicleSpear
- .4byte gMoveDescription_IronDefense
- .4byte gMoveDescription_Block
- .4byte gMoveDescription_Howl
- .4byte gMoveDescription_DragonClaw
- .4byte gMoveDescription_FrenzyPlant
- .4byte gMoveDescription_BulkUp
- .4byte gMoveDescription_Bounce
- .4byte gMoveDescription_MudShot
- .4byte gMoveDescription_PoisonTail
- .4byte gMoveDescription_Covet
- .4byte gMoveDescription_VoltTackle
- .4byte gMoveDescription_MagicalLeaf
- .4byte gMoveDescription_WaterSport
- .4byte gMoveDescription_CalmMind
- .4byte gMoveDescription_LeafBlade
- .4byte gMoveDescription_DragonDance
- .4byte gMoveDescription_RockBlast
- .4byte gMoveDescription_ShockWave
- .4byte gMoveDescription_WaterPulse
- .4byte gMoveDescription_DoomDesire
- .4byte gMoveDescription_PsychoBoost
diff --git a/data-de/text/nature_names.inc b/data-de/text/nature_names.inc
deleted file mode 100644
index 78c49a14d..000000000
--- a/data-de/text/nature_names.inc
+++ /dev/null
@@ -1,102 +0,0 @@
-gNatureName_Hardy: @ 83C0F60
- .string "ROBUST$"
-
-gNatureName_Lonely: @ 83C0F66
- .string "SOLO$"
-
-gNatureName_Brave: @ 83C0F6D
- .string "MUTIG$"
-
-gNatureName_Adamant: @ 83C0F73
- .string "HART$"
-
-gNatureName_Naughty: @ 83C0F7B
- .string "FRECH$"
-
-gNatureName_Bold: @ 83C0F83
- .string "KÜHN$"
-
-gNatureName_Docile: @ 83C0F88
- .string "SANFT$"
-
-gNatureName_Relaxed: @ 83C0F8F
- .string "LOCKER$"
-
-gNatureName_Impish: @ 83C0F97
- .string "PFIFFIG$"
-
-gNatureName_Lax: @ 83C0F9E
- .string "LASCH$"
-
-gNatureName_Timid: @ 83C0FA2
- .string "SCHEU$"
-
-gNatureName_Hasty: @ 83C0FA8
- .string "HASTIG$"
-
-gNatureName_Serious: @ 83C0FAE
- .string "ERNST$"
-
-gNatureName_Jolly: @ 83C0FB6
- .string "FROH$"
-
-gNatureName_Naive: @ 83C0FBC
- .string "NAIV$"
-
-gNatureName_Modest: @ 83C0FC2
- .string "MÄSSIG$"
-
-gNatureName_Mild: @ 83C0FC9
- .string "MILD$"
-
-gNatureName_Quiet: @ 83C0FCE
- .string "RUHIG$"
-
-gNatureName_Bashful: @ 83C0FD4
- .string "ZAGHAFT$"
-
-gNatureName_Rash: @ 83C0FDC
- .string "HITZIG$"
-
-gNatureName_Calm: @ 83C0FE1
- .string "STILL$"
-
-gNatureName_Gentle: @ 83C0FE6
- .string "ZART$"
-
-gNatureName_Sassy: @ 83C0FED
- .string "FORSCH$"
-
-gNatureName_Careful: @ 83C0FF3
- .string "SACHT$"
-
-gNatureName_Quirky: @ 83C0FFB
- .string "KAUZIG$"
-
- .align 2
-gNatureNames:: @ 83C1004
- .4byte gNatureName_Hardy
- .4byte gNatureName_Lonely
- .4byte gNatureName_Brave
- .4byte gNatureName_Adamant
- .4byte gNatureName_Naughty
- .4byte gNatureName_Bold
- .4byte gNatureName_Docile
- .4byte gNatureName_Relaxed
- .4byte gNatureName_Impish
- .4byte gNatureName_Lax
- .4byte gNatureName_Timid
- .4byte gNatureName_Hasty
- .4byte gNatureName_Serious
- .4byte gNatureName_Jolly
- .4byte gNatureName_Naive
- .4byte gNatureName_Modest
- .4byte gNatureName_Mild
- .4byte gNatureName_Quiet
- .4byte gNatureName_Bashful
- .4byte gNatureName_Rash
- .4byte gNatureName_Calm
- .4byte gNatureName_Gentle
- .4byte gNatureName_Sassy
- .4byte gNatureName_Careful
- .4byte gNatureName_Quirky
diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s
index 855221507..7c58160f6 100644
--- a/data/battle_ai_scripts.s
+++ b/data/battle_ai_scripts.s
@@ -1,3 +1,8 @@
+#include "constants/abilities.h"
+#include "constants/battle_move_effects.h"
+#include "constants/hold_effects.h"
+#include "constants/items.h"
+#include "constants/moves.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
.include "asm/macros/battle_ai_script.inc"
diff --git a/data/battle_anim_80CA710.s b/data/battle_anim_80CA710.s
index 72ed3cffa..ba5d9f533 100644
--- a/data/battle_anim_80CA710.s
+++ b/data/battle_anim_80CA710.s
@@ -1000,7 +1000,7 @@ gSpriteAnimTable_83D6E94:: @ 83D6E94
.4byte gSpriteAnim_83D6E80
.align 2
-gBattleAnimSpriteTemplate_83D6E98:: @ 83D6E98
+gBattleAnimSpriteTemplate_EndureFlame:: @ 83D6E98
spr_template 10184, 10184, gOamData_837DF74, gSpriteAnimTable_83D6E94, NULL, gDummySpriteAffineAnimTable, sub_80CDF0C
.align 2
@@ -2091,7 +2091,7 @@ gSpriteAnimTable_83D912C:: @ 83D912C
.align 2
gSpriteTemplate_83D9130:: @ 83D9130
- spr_template 10115, 10115, gOamData_837DF74, gSpriteAnimTable_83D912C, NULL, gDummySpriteAffineAnimTable, sub_80D3184
+ spr_template 10115, 10115, gOamData_837DF74, gSpriteAnimTable_83D912C, NULL, gDummySpriteAffineAnimTable, SetAnimRaindropCallback
.align 2
gSpriteAffineAnim_83D9148:: @ 83D9148
diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s
index 74205e66c..e0d11637d 100644
--- a/data/battle_anim_scripts.s
+++ b/data/battle_anim_scripts.s
@@ -1,3 +1,4 @@
+#include "constants/songs.h"
.include "asm/macros.inc"
.include "asm/macros/battle_anim.inc"
.include "constants/constants.inc"
@@ -382,40 +383,40 @@ gBattleAnims_StatusConditions:: @ 81C76F8
.4byte StatusCondition_Nightmare
.align 2
-gBattleAnims_Unknown1:: @ 81C771C
- .4byte Unknown_81D63B4
- .4byte Unknown_81D63EA
- .4byte Unknown_81D63F3
- .4byte Unknown_81D6430
- .4byte Unknown_81D6438
- .4byte Unknown_81D647E
- .4byte Unknown_81D6489
- .4byte Unknown_81D661C
- .4byte Unknown_81D6690
- .4byte Unknown_81D676E
- .4byte Unknown_Weather_Rain
- .4byte Unknown_Weather_HarshSunlight
- .4byte Unknown_Weather_Sandstorm
- .4byte Unknown_Weather_Hail
- .4byte Unknown_81D6813
- .4byte Unknown_81D6821
- .4byte Unknown_81D6852
- .4byte Unknown_81D6877
- .4byte Unknown_81D68D5
- .4byte Unknown_81D6934
- .4byte Unknown_81D69F9
- .4byte Unknown_81D6A39
- .4byte Unknown_81D6A7C
+gBattleAnims_General:: @ 81C771C
+ .4byte General_CastformChange
+ .4byte General_StatsChange
+ .4byte General_SubstituteFade
+ .4byte General_SubstituteAppear
+ .4byte General_PokeblockThrow
+ .4byte General_ItemKnockoff
+ .4byte General_TurnTrap
+ .4byte General_ItemEffect
+ .4byte General_SmokeballEscape
+ .4byte General_HangedOn
+ .4byte General_Rain
+ .4byte General_Sun
+ .4byte General_Sandstorm
+ .4byte General_Hail
+ .4byte General_LeechSeedDrain
+ .4byte General_MonHit
+ .4byte General_ItemSteal
+ .4byte General_SnatchMove
+ .4byte General_FutureSightHit
+ .4byte General_DoomDesireHit
+ .4byte General_FocusPunchSetUp
+ .4byte General_IngrainHeal
+ .4byte General_WishHeal
.align 2
-gBattleAnims_Unknown2:: @ 81C7778
- .4byte Unknown_81D6AF6
- .4byte Unknown_81D6B17
- .4byte Unknown_81D6B28
- .4byte Unknown_81D6B39
- .4byte Unknown_81D6B8D
- .4byte Unknown_81D6BA6
- .4byte Unknown_81D6BB0
+gBattleAnims_Special:: @ 81C7778
+ .4byte Special_LevelUp
+ .4byte Special_SwitchOutPlayerMon
+ .4byte Special_SwitchOutOpponentMon
+ .4byte Special_BallThrow
+ .4byte Special_SafariBallThrow
+ .4byte Special_SubstituteToMon
+ .4byte Special_MonToSubstitute
Move_POUND: @ 81C7794
loadsprite 10135
@@ -1415,11 +1416,11 @@ Move_FURY_CUTTER: @ 81C914A
monbg 1
setalpha 12, 8
panse_19 SE_W013, 63
- createtask sub_80D30AC, 2
+ createtask UpdateFuryCutterAnimDirection, 2
jumpvareq 7, 0, _81C91A7
jump _81C91B9
_81C916A:
- createtask update_fury_cutter_counter_copy, 2
+ createtask UpdateFuryCutterAnimCount, 2
jumpvareq 7, 1, _81C918E
jumpvareq 7, 2, _81C91CB
jumpvareq 7, 3, _81C91E5
@@ -3182,25 +3183,26 @@ Move_DESTINY_BOND: @ 81CBA2C
Move_ENDURE: @ 81CBA87
loadsprite 10184
panse_19 SE_W082, 192
- call _81CBAC7
+ call EndureFlamesAnim
pause 8
createtask sub_80E1F8C, 2, 2, 2, 2, 0, 11, 31
createtask sub_80A7FA0, 2, 0, 1, 0, 32, 1
- call _81CBAC7
+ call EndureFlamesAnim
pause 8
- call _81CBAC7
+ call EndureFlamesAnim
wait
end
-_81CBAC7:
- sprite gBattleAnimSpriteTemplate_83D6E98, 2, 0, -24, 26, 2
+
+EndureFlamesAnim:
+ sprite gBattleAnimSpriteTemplate_EndureFlame, 2, 0, -24, 26, 2
pause 4
- sprite gBattleAnimSpriteTemplate_83D6E98, 2, 0, 14, 28, 1
+ sprite gBattleAnimSpriteTemplate_EndureFlame, 2, 0, 14, 28, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D6E98, 2, 0, -5, 10, 2
+ sprite gBattleAnimSpriteTemplate_EndureFlame, 2, 0, -5, 10, 2
pause 4
- sprite gBattleAnimSpriteTemplate_83D6E98, 2, 0, 28, 26, 3
+ sprite gBattleAnimSpriteTemplate_EndureFlame, 2, 0, 28, 26, 3
pause 4
- sprite gBattleAnimSpriteTemplate_83D6E98, 2, 0, -12, 0, 1
+ sprite gBattleAnimSpriteTemplate_EndureFlame, 2, 0, -12, 0, 1
ret
Move_CHARM: @ 81CBB1B
@@ -5269,8 +5271,8 @@ Move_RAIN_DANCE: @ 81CE997
panse_19 SE_W240, 192
createtask sub_80E2A38, 10, 1921, 2, 0, 4, 0
wait
- createtask sub_80D30F0, 2, 0, 3, 120
- createtask sub_80D30F0, 2, 0, 3, 120
+ createtask CreateAnimRaindrops, 2, 0, 3, 120
+ createtask CreateAnimRaindrops, 2, 0, 3, 120
pause 120
pause 30
wait
@@ -7348,13 +7350,13 @@ Move_LICK: @ 81D1B32
Move_FOCUS_ENERGY: @ 81D1B59
loadsprite 10184
panse_19 SE_W082, 192
- call _81CBAC7
+ call EndureFlamesAnim
pause 8
createtask sub_80E1F8C, 2, 2, 2, 2, 0, 11, 32767
createtask sub_80A7FA0, 2, 0, 1, 0, 32, 1
- call _81CBAC7
+ call EndureFlamesAnim
pause 8
- call _81CBAC7
+ call EndureFlamesAnim
wait
end
@@ -10287,7 +10289,7 @@ StatusCondition_Nightmare: @ 81D638F
clearmonbg 3
end
-Unknown_81D63B4: @ 81D63B4
+General_CastformChange: @ 81D63B4
createtask c3_80DFBE4, 2
jumpvareq 7, 1, _81D63E0
jump _81D63C8
@@ -10303,12 +10305,12 @@ _81D63E0:
createtask sub_812DB58, 2, 1
end
-Unknown_81D63EA: @ 81D63EA
+General_StatsChange: @ 81D63EA
createtask sub_807BB88, 5
wait
end
-Unknown_81D63F3: @ 81D63F3
+General_SubstituteFade: @ 81D63F3
monbg 0
createtask sub_81416C4, 5
createtask sub_80E2A38, 10, 2, 0, 0, 16, 32767
@@ -10321,11 +10323,11 @@ Unknown_81D63F3: @ 81D63F3
createtask sub_814151C, 2, 1
end
-Unknown_81D6430: @ 81D6430
+General_SubstituteAppear: @ 81D6430
createtask sub_81312E4, 2
end
-Unknown_81D6438: @ 81D6438
+General_PokeblockThrow: @ 81D6438
createtask sub_8141D7C, 2
createtask sub_8141BD4, 2
pause 0
@@ -10338,12 +10340,12 @@ Unknown_81D6438: @ 81D6438
createtask sub_8141C08, 2
end
-Unknown_81D647E: @ 81D647E
+General_ItemKnockoff: @ 81D647E
loadsprite 10224
sprite gBattleAnimSpriteTemplate_83D6734, 130
end
-Unknown_81D6489: @ 81D6489
+General_TurnTrap: @ 81D6489
createtask sub_8141DAC, 5
jumpvareq 0, 1, _81D64FD
jumpvareq 0, 2, _81D6522
@@ -10418,7 +10420,7 @@ _81D65D3:
stopsound
end
-Unknown_81D661C: @ 81D661C
+General_ItemEffect: @ 81D661C
loadsprite 10203
loadsprite 10049
pause 0
@@ -10440,7 +10442,7 @@ Unknown_81D661C: @ 81D661C
wait
end
-Unknown_81D6690: @ 81D6690
+General_SmokeballEscape: @ 81D6690
loadsprite 10242
monbg 0
setalpha 12, 4
@@ -10479,7 +10481,7 @@ Unknown_81D6690: @ 81D6690
blendoff
end
-Unknown_81D676E: @ 81D676E
+General_HangedOn: @ 81D676E
sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 2, 7, 0, 9, 31
panse_19 SE_W082, 192
createtask sub_812FC68, 5, 30, 128, 0, 1, 2, 0, 1
@@ -10490,34 +10492,34 @@ Unknown_81D676E: @ 81D676E
sprite gBattleAnimSpriteTemplate_83C1FE0, 0, 0, 0, 15
end
-Unknown_Weather_Rain: @ 81D67BB
+General_Rain: @ 81D67BB
loadsprite 10115
panse_19 SE_W240, 192
createtask sub_80E2A38, 10, 1921, 2, 0, 4, 0
wait
- createtask sub_80D30F0, 2, 0, 3, 60
- createtask sub_80D30F0, 2, 0, 3, 60
+ createtask CreateAnimRaindrops, 2, 0, 3, 60
+ createtask CreateAnimRaindrops, 2, 0, 3, 60
pause 50
wait
createtask sub_80E2A38, 10, 1921, 2, 4, 0, 0
wait
end
-Unknown_Weather_HarshSunlight: @ 81D6804
+General_Sun: @ 81D6804
jump Move_SUNNY_DAY
-Unknown_Weather_Sandstorm: @ 81D6809
+General_Sandstorm: @ 81D6809
jump Move_SANDSTORM
-Unknown_Weather_Hail: @ 81D680E
+General_Hail: @ 81D680E
jump Move_HAIL
-Unknown_81D6813: @ 81D6813
+General_LeechSeedDrain: @ 81D6813
createtask sub_8141E10, 5
pause 0
jump Move_ABSORB
-Unknown_81D6821: @ 81D6821
+General_MonHit: @ 81D6821
loadsprite 10135
monbg 1
setalpha 12, 8
@@ -10529,7 +10531,7 @@ Unknown_81D6821: @ 81D6821
blendoff
end
-Unknown_81D6852: @ 81D6852
+General_ItemSteal: @ 81D6852
loadsprite 10224
createtask sub_80E42D0, 2
createtask sub_8141808, 2
@@ -10537,7 +10539,7 @@ Unknown_81D6852: @ 81D6852
sprite gBattleAnimSpriteTemplate_83D677C, 2, 0, -5, 10, 2, -1
end
-Unknown_81D6877: @ 81D6877
+General_SnatchMove: @ 81D6877
loadsprite 10224
createtask sub_80E4234, 2
call Unknown_81D6AB6
@@ -10560,7 +10562,7 @@ _81D68C5:
createtask sub_8131FFC, 2
jump _81D68AE
-Unknown_81D68D5: @ 81D68D5
+General_FutureSightHit: @ 81D68D5
createtask sub_80E42B0, 2
monbg 3
panse_19 SE_W060, 192
@@ -10580,7 +10582,7 @@ Unknown_81D68D5: @ 81D68D5
call Unknown_81D61F3
end
-Unknown_81D6934: @ 81D6934
+General_DoomDesireHit: @ 81D6934
createtask sub_80E42B0, 2
loadsprite 10198
sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 3, 0, 16, 32767
@@ -10614,20 +10616,20 @@ Unknown_81D6934: @ 81D6934
wait
end
-Unknown_81D69F9: @ 81D69F9
+General_FocusPunchSetUp: @ 81D69F9
loadsprite 10184
panse_19 SE_W082, 192
- call _81CBAC7
+ call EndureFlamesAnim
pause 8
createtask sub_80E1F8C, 2, 2, 2, 2, 0, 11, 31
createtask sub_80A7FA0, 2, 0, 1, 0, 32, 1
- call _81CBAC7
+ call EndureFlamesAnim
pause 8
- call _81CBAC7
+ call EndureFlamesAnim
wait
end
-Unknown_81D6A39: @ 81D6A39
+General_IngrainHeal: @ 81D6A39
loadsprite 10147
loadsprite 10031
monbg 3
@@ -10646,7 +10648,7 @@ Unknown_81D6A39: @ 81D6A39
blendoff
end
-Unknown_81D6A7C: @ 81D6A7C
+General_WishHeal: @ 81D6A7C
loadsprite 10031
loadsprite 10049
sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 3, 0, 10, 0
@@ -10681,7 +10683,7 @@ _81D6AE7:
wait
jump _81D6AE5
-Unknown_81D6AF6: @ 81D6AF6
+Special_LevelUp: @ 81D6AF6
panse_19 SE_EXPMAX, 0
createtask sub_813F4EC, 2
pause 0
@@ -10690,19 +10692,19 @@ Unknown_81D6AF6: @ 81D6AF6
createtask sub_813F5E8, 2
end
-Unknown_81D6B17: @ 81D6B17
+Special_SwitchOutPlayerMon: @ 81D6B17
createtask sub_813F844, 2
pause 10
createtask sub_813F798, 2
end
-Unknown_81D6B28: @ 81D6B28
+Special_SwitchOutOpponentMon: @ 81D6B28
createtask sub_813F844, 2
pause 10
createtask sub_813F798, 2
end
-Unknown_81D6B39: @ 81D6B39
+Special_BallThrow: @ 81D6B39
createtask sub_813F990, 2
pause 0
panse_19 SE_NAGERU, 0
@@ -10726,7 +10728,7 @@ _81D6B65:
blendoff
jump _81D6B5C
-Unknown_81D6B8D: @ 81D6B8D
+Special_SafariBallThrow: @ 81D6B8D
createtask sub_813F990, 2
pause 0
createtask sub_813FBB8, 2
@@ -10734,10 +10736,10 @@ Unknown_81D6B8D: @ 81D6B8D
createtask sub_813F9B8, 2
end
-Unknown_81D6BA6: @ 81D6BA6
+Special_SubstituteToMon: @ 81D6BA6
createtask sub_814151C, 2, 1
end
-Unknown_81D6BB0: @ 81D6BB0
+Special_MonToSubstitute: @ 81D6BB0
createtask sub_814151C, 2, 0
end
diff --git a/data/battle_message.s b/data/battle_message.s
deleted file mode 100644
index 0ad61bfc0..000000000
--- a/data/battle_message.s
+++ /dev/null
@@ -1,131 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .include "data/text/battle_strings.inc"
-
- .align 1
-gUnknown_084016BC:: @ 84016BC
- .2byte 0xE
- .2byte 0x46
- .2byte 0x4A
- .2byte 0x6A
- .2byte 0x6B
- .2byte 0x6C
- .2byte 0x6E
- .2byte 0x6F
- .2byte 0x79
- .2byte 0x7B
- .2byte 0x7D
- .2byte 0x94
- .2byte 0x96
- .2byte 0x97
- .2byte 0x9B
- .2byte 0x9C
- .2byte 0x9F
- .2byte 0xA4
- .2byte 0xAA
- .2byte 0xAD
- .2byte 0xB6
- .2byte 0xBF
- .2byte 0xCB
- .2byte 0xCD
- .2byte 0xCF
- .2byte 0xD6
- .2byte 0xED
- .2byte 0xF4
- .2byte 0xF5
- .2byte 0x10A
- .2byte 0x10F
- .2byte 0x112
- .2byte 0x113
- .2byte 0x11A
- .2byte 0x125
- .2byte 0x136
- .2byte 0x13C
- .2byte 0x140
- .2byte 0x149
- .2byte 0x14A
- .2byte 0x14E
- .2byte 0x154
- .2byte 0x0
- .2byte 0x64
- .2byte 0x69
- .2byte 0x75
- .2byte 0x85
- .2byte 0xAF
- .2byte 0x10D
- .2byte 0x153
- .2byte 0x0
- .2byte 0x60
- .2byte 0x61
- .2byte 0x66
- .2byte 0x68
- .2byte 0x8C
- .2byte 0x90
- .2byte 0xA5
- .2byte 0xB8
- .2byte 0x10C
- .2byte 0x111
- .2byte 0x118
- .2byte 0x119
- .2byte 0x129
- .2byte 0x12A
- .2byte 0x12C
- .2byte 0x139
- .2byte 0x15A
- .2byte 0x15B
- .2byte 0x0
- .2byte 0x1
- .2byte 0xA
- .2byte 0xB
- .2byte 0x11
- .2byte 0x13
- .2byte 0x14
- .2byte 0x15
- .2byte 0x1E
- .2byte 0x23
- .2byte 0x25
- .2byte 0x27
- .2byte 0x2B
- .2byte 0x2C
- .2byte 0x2D
- .2byte 0x2E
- .2byte 0x2F
- .2byte 0x40
- .2byte 0x47
- .2byte 0x51
- .2byte 0x59
- .2byte 0x5A
- .2byte 0x5B
- .2byte 0x5C
- .2byte 0x67
- .2byte 0x76
- .2byte 0x7A
- .2byte 0x80
- .2byte 0x84
- .2byte 0x8B
- .2byte 0x91
- .2byte 0xA3
- .2byte 0xA9
- .2byte 0xAB
- .2byte 0xAE
- .2byte 0xC1
- .2byte 0xCC
- .2byte 0xD5
- .2byte 0xF9
- .2byte 0xFD
- .2byte 0xFF
- .2byte 0x100
- .2byte 0x103
- .2byte 0x104
- .2byte 0x110
- .2byte 0x11B
- .2byte 0x141
- .2byte 0x157
- .2byte 0x0
-
- .align 2
-gUnknown_084017A8:: @ 84017A8
- .4byte -1, -1
diff --git a/data/battle_moves.s b/data/battle_moves.s
index ea32446d2..9a7398999 100644
--- a/data/battle_moves.s
+++ b/data/battle_moves.s
@@ -1,3 +1,4 @@
+#include "constants/battle_move_effects.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s
index e046794b3..4e41bcc20 100644
--- a/data/battle_scripts_1.s
+++ b/data/battle_scripts_1.s
@@ -1,3 +1,4 @@
+#include "constants/abilities.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
.include "asm/macros/battle_script.inc"
@@ -244,10 +245,10 @@ MoveEffect_Unused83: @ 81D6F14
MoveEffect_Unused8D: @ 81D6F14
MoveEffect_UnusedA3: @ 81D6F14
MoveEffect_VitalThrow: @ 81D6F14
- jumpifhalfword 1, 0x2024be6, 57, BattleScript_1D6F3A
+ jumpifhalfword 1, gCurrentMove, 57, BattleScript_1D6F3A
jumpifspecialstatusflag TARGET, 0x40000, 1, BattleScript_1D6F3A
- orword 0x2024c6c, 0x40000
- setbyte 0x201601f, 2
+ orword gHitMarker, 0x40000
+ setbyte gSharedMem + 0x1601F, 2
BattleScript_1D6F3A: @ 81D6F3A
attackcanceler
@@ -281,12 +282,12 @@ BattleScript_1D6F48: @ 81D6F48
faintpokemon TARGET, 0, 0x0
BattleScript_EndTurn:: @ 81D6F62
- setbyte 0x201600c, 0
+ setbyte gSharedMem + 0x1600C, 0
atk49 0, 0
end
BattleScript_1D6F6C: @ 81D6F6C
- orbyte 0x2024c68, 1
+ orbyte gBattleMoveFlags, 1
BattleScript_1D6F72: @ 81D6F72
attackstring
@@ -313,7 +314,7 @@ MoveEffect_Sleep: @ 81D6F81
jumpifhalverset TARGET, 32, BattleScript_1D9037
attackanimation
waitanimation
- setbyte 0x2024d21, 1
+ setbyte gUnknown_02024D1F + 0x2, 1
seteffecttarget
jump BattleScript_EndTurn
@@ -337,7 +338,7 @@ BattleScript_1D6FE0: @ 81D6FE0
MoveEffect_PoisonHit: @ 81D6FF0
MoveEffect_PoisonTail: @ 81D6FF0
- setbyte 0x2024d21, 2
+ setbyte gUnknown_02024D1F + 0x2, 2
jump BattleScript_1D6F14
MoveEffect_Absorb: @ 81D6FFB
@@ -361,19 +362,19 @@ MoveEffect_Absorb: @ 81D6FFB
resultmessage
waitmessage 64
negativedamage
- orword 0x2024c6c, 0x100
+ orword gHitMarker, 0x100
jumpifability TARGET, ABILITY_LIQUID_OOZE, BattleScript_1D7037
- setbyte 0x2024d23, 0
+ setbyte gUnknown_02024D1F + 0x4, 0
jump BattleScript_1D703F
BattleScript_1D7037: @ 81D7037
manipulatedamage 0
- setbyte 0x2024d23, 1
+ setbyte gUnknown_02024D1F + 0x4, 1
BattleScript_1D703F: @ 81D703F
graphicalhpupdate USER
datahpupdate USER
- jumpifbyte 4, 0x2024c68, 41, BattleScript_1D7056
+ jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_1D7056
printfromtable BattleTextList_4015D0
waitmessage 64
@@ -384,15 +385,15 @@ BattleScript_1D7056: @ 81D7056
MoveEffect_BlazeKick: @ 81D7069
MoveEffect_BurnHit: @ 81D7069
- setbyte 0x2024d21, 3
+ setbyte gUnknown_02024D1F + 0x2, 3
jump BattleScript_1D6F14
MoveEffect_FreezeHit: @ 81D7074
- setbyte 0x2024d21, 4
+ setbyte gUnknown_02024D1F + 0x2, 4
jump BattleScript_1D6F14
MoveEffect_ParalyzeHit: @ 81D707F
- setbyte 0x2024d21, 5
+ setbyte gUnknown_02024D1F + 0x2, 5
jump BattleScript_1D6F14
MoveEffect_Explosion: @ 81D708A
@@ -402,7 +403,7 @@ MoveEffect_Explosion: @ 81D708A
faintifabilitynotdamp
setuserhptozero
waitstateatk
- jumpifbyte 5, 0x2024c68, 1, BattleScript_1D70A5
+ jumpifbyte 5, gBattleMoveFlags, 1, BattleScript_1D70A5
callatk BattleScript_1D70FB
jump BattleScript_1D70A7
@@ -427,7 +428,7 @@ BattleScript_1D70A7: @ 81D70A7
resultmessage
waitmessage 64
faintpokemon TARGET, 0, 0x0
- setbyte 0x201600c, 0
+ setbyte gSharedMem + 0x1600C, 0
atk49 2, 16
jumpwhiletargetvalid BattleScript_1D70A7
faintpokemon USER, 0, 0x0
@@ -437,17 +438,17 @@ BattleScript_1D70E0: @ 81D70E0
missmessage
resultmessage
waitmessage 64
- setbyte 0x201600c, 0
+ setbyte gSharedMem + 0x1600C, 0
atk49 2, 16
jumpwhiletargetvalid BattleScript_1D70A7
faintpokemon USER, 0, 0x0
end
BattleScript_1D70FB: @ 81D70FB
- bicbyte 0x2024c68, 1
+ bicbyte gBattleMoveFlags, 1
attackanimation
waitanimation
- orbyte 0x2024c68, 1
+ orbyte gBattleMoveFlags, 1
return
MoveEffect_DreamEater: @ 81D710A
@@ -481,10 +482,10 @@ BattleScript_1D7129: @ 81D7129
resultmessage
waitmessage 64
negativedamage
- orword 0x2024c6c, 0x100
+ orword gHitMarker, 0x100
graphicalhpupdate USER
datahpupdate USER
- jumpifbyte 4, 0x2024c68, 41, BattleScript_1D7167
+ jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_1D7167
printstring BATTLE_TEXT_DreamEaten
waitmessage 64
@@ -498,25 +499,25 @@ MoveEffect_MirrorMove: @ 81D7173
pause 64
jumptolastusedattack
ppreduce
- orbyte 0x2024c68, 32
+ orbyte gBattleMoveFlags, 32
printstring BATTLE_TEXT_MirrorFail
waitmessage 64
jump BattleScript_EndTurn
MoveEffect_AttackUp: @ 81D718B
- setbyte 0x201601e, 17
+ setbyte gSharedMem + 0x1601E, 17
jump BattleScript_1D71B2
MoveEffect_DefenseUp: @ 81D7196
- setbyte 0x201601e, 18
+ setbyte gSharedMem + 0x1601E, 18
jump BattleScript_1D71B2
MoveEffect_SpecialAttackUp: @ 81D71A1
- setbyte 0x201601e, 20
+ setbyte gSharedMem + 0x1601E, 20
jump BattleScript_1D71B2
MoveEffect_EvasionUp: @ 81D71AC
- setbyte 0x201601e, 23
+ setbyte gSharedMem + 0x1601E, 23
BattleScript_1D71B2: @ 81D71B2
attackcanceler
@@ -525,7 +526,7 @@ BattleScript_1D71B3: @ 81D71B3
attackstring
ppreduce
statbuffchange 65, BattleScript_1D71E0
- jumpifbyte 1, 0x2024d23, 2, BattleScript_1D71CE
+ jumpifbyte 1, gUnknown_02024D1F + 0x4, 2, BattleScript_1D71CE
pause 32
jump BattleScript_1D71D8
@@ -535,7 +536,7 @@ BattleScript_1D71CE: @ 81D71CE
BattleScript_1D71D0: @ 81D71D0
atk47
- playanimation USER, 1, 0x20160a4
+ playanimation USER, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
BattleScript_1D71D8: @ 81D71D8
printfromtable BattleTextList_401570
@@ -545,29 +546,29 @@ BattleScript_1D71E0: @ 81D71E0
jump BattleScript_EndTurn
BattleScript_StatUp:: @ 81D71E5
- playanimation 2, 1, 0x20160a4
+ playanimation 2, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
printfromtable BattleTextList_401570
waitmessage 64
return
MoveEffect_AttackDown: @ 81D71F5
- setbyte 0x201601e, 145
+ setbyte gSharedMem + 0x1601E, 145
jump BattleScript_1D7227
MoveEffect_DefenseDown: @ 81D7200
- setbyte 0x201601e, 146
+ setbyte gSharedMem + 0x1601E, 146
jump BattleScript_1D7227
MoveEffect_SpeedDown: @ 81D720B
- setbyte 0x201601e, 147
+ setbyte gSharedMem + 0x1601E, 147
jump BattleScript_1D7227
MoveEffect_AccuracyDown: @ 81D7216
- setbyte 0x201601e, 150
+ setbyte gSharedMem + 0x1601E, 150
jump BattleScript_1D7227
MoveEffect_EvasionDown: @ 81D7221
- setbyte 0x201601e, 151
+ setbyte gSharedMem + 0x1601E, 151
BattleScript_1D7227: @ 81D7227
attackcanceler
@@ -576,8 +577,8 @@ BattleScript_1D7227: @ 81D7227
attackstring
ppreduce
statbuffchange 1, BattleScript_1D7271
- jumpifbyte 3, 0x2024d23, 2, BattleScript_1D725F
- jumpifbyte 0, 0x2024d23, 3, BattleScript_1D7271
+ jumpifbyte 3, gUnknown_02024D1F + 0x4, 2, BattleScript_1D725F
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 3, BattleScript_1D7271
pause 32
jump BattleScript_1D7269
@@ -585,7 +586,7 @@ BattleScript_1D725F: @ 81D725F
attackanimation
waitanimation
atk47
- playanimation TARGET, 1, 0x20160a4
+ playanimation TARGET, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
BattleScript_1D7269: @ 81D7269
printfromtable BattleTextList_40157C
@@ -595,7 +596,7 @@ BattleScript_1D7271: @ 81D7271
jump BattleScript_EndTurn
BattleScript_StatDown:: @ 81D7276
- playanimation 2, 1, 0x20160a4
+ playanimation 2, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
printfromtable BattleTextList_40157C
waitmessage 64
return
@@ -617,7 +618,7 @@ MoveEffect_Bide: @ 81D7297
ppreduce
attackanimation
waitanimation
- orword 0x2024c6c, 0x8000000
+ orword gHitMarker, 0x8000000
setbide
jump BattleScript_EndTurn
@@ -649,21 +650,21 @@ MoveEffect_MultiHit: @ 81D72ED
ppreduce
setloopcounter 0
atk8e
- setbyte 0x2016112, 0
+ setbyte gSharedMem + 0x16112, 0
BattleScript_1D7300: @ 81D7300
jumpiffainted USER, BattleScript_1D7396
jumpiffainted TARGET, BattleScript_1D7377
- jumpifhalfword 0, 0x2024be8, 214, BattleScript_1D7322
+ jumpifhalfword 0, gUnknown_02024BE8, 214, BattleScript_1D7322
jumpifstatus USER, SLP, BattleScript_1D7377
BattleScript_1D7322: @ 81D7322
atk25
- copyarray 0x2024d21, 0x2016112, 1
+ copyarray gUnknown_02024D1F + 0x2, gSharedMem + 0x16112, 1
critcalc
atk5
atk6
- jumpifbyte 4, 0x2024c68, 41, BattleScript_1D7374
+ jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_1D7374
atk7
attackanimation
waitanimation
@@ -676,10 +677,10 @@ BattleScript_1D7322: @ 81D7322
waitmessage 64
printstring BATTLE_TEXT_Terminator2
waitmessage 1
- addbyte 0x20160e4, 1
- setbyte 0x201600c, 0
+ addbyte gSharedMem + 0x160E4, 1
+ setbyte gSharedMem + 0x1600C, 0
atk49 2, 16
- jumpifbyte 4, 0x2024c68, 64, BattleScript_1D7377
+ jumpifbyte 4, gBattleMoveFlags, 64, BattleScript_1D7377
atk27 BattleScript_1D7300
jump BattleScript_1D7377
@@ -689,17 +690,17 @@ BattleScript_1D7374: @ 81D7374
BattleScript_1D7377: @ 81D7377
resultmessage
waitmessage 64
- jumpifbyte 4, 0x2024c68, 41, BattleScript_1D7396
- copyarray gBattleTextBuff1, 0x20160e0, 6
+ jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_1D7396
+ copyarray gBattleTextBuff1, gSharedMem + 0x160E0, 6
printstring BATTLE_TEXT_HitMulti
waitmessage 64
BattleScript_1D7396: @ 81D7396
seteffectwithchancetarget
faintpokemon TARGET, 0, 0x0
- setbyte 0x201600c, 2
+ setbyte gSharedMem + 0x1600C, 2
atk49 1, 0
- setbyte 0x201600c, 4
+ setbyte gSharedMem + 0x1600C, 4
atk49 0, 0
end
@@ -715,7 +716,7 @@ MoveEffect_Conversion: @ 81D73B1
jump BattleScript_EndTurn
MoveEffect_FlinchHit: @ 81D73C6
- setbyte 0x2024d21, 8
+ setbyte gUnknown_02024D1F + 0x2, 8
jump BattleScript_1D6F14
MoveEffect_RestoreHp: @ 81D73D1
@@ -725,7 +726,7 @@ MoveEffect_RestoreHp: @ 81D73D1
setdamageasrestorehalfmaxhp BattleScript_1D83B5, 1
attackanimation
waitanimation
- orword 0x2024c6c, 0x100
+ orword gHitMarker, 0x100
graphicalhpupdate USER
datahpupdate USER
printstring BATTLE_TEXT_RegainedHealth
@@ -747,7 +748,7 @@ MoveEffect_Toxic: @ 81D73F4
jumpifhalverset TARGET, 32, BattleScript_1D9037
attackanimation
waitanimation
- setbyte 0x2024d21, 6
+ setbyte gUnknown_02024D1F + 0x2, 6
seteffecttarget
resultmessage
waitmessage 64
@@ -760,13 +761,13 @@ BattleScript_1D7455: @ 81D7455
jump BattleScript_EndTurn
BattleScript_1D7463: @ 81D7463
- copyarray 0x2024c0a, 0x2024c08, 1
- setbyte 0x2024d23, 0
+ copyarray gEffectBank, gBankTarget, 1
+ setbyte gUnknown_02024D1F + 0x4, 0
callatk BattleScript_PSNPrevention
jump BattleScript_EndTurn
MoveEffect_PayDay: @ 81D747D
- setbyte 0x2024d21, 11
+ setbyte gUnknown_02024D1F + 0x2, 11
jump BattleScript_1D6F14
MoveEffect_LightScreen: @ 81D7488
@@ -777,7 +778,7 @@ MoveEffect_LightScreen: @ 81D7488
jump BattleScript_1D7786
MoveEffect_TriAttack: @ 81D7491
- setbyte 0x2024d21, 9
+ setbyte gUnknown_02024D1F + 0x2, 9
jump BattleScript_1D6F14
MoveEffect_Rest: @ 81D749C
@@ -812,7 +813,7 @@ MoveEffect_Ohko: @ 81D74E4
ppreduce
accuracycheck BattleScript_ButItFailed, 65535
atk6
- jumpifbyte 4, 0x2024c68, 41, BattleScript_1D6F48
+ jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_1D6F48
koplussomethings BattleScript_1D7505
atkab
jump BattleScript_1D6F48
@@ -825,19 +826,19 @@ BattleScript_1D7505: @ 81D7505
MoveEffect_RazorWind: @ 81D7515
jumpifsecondarytstatus USER, S_CONTINUE, BattleScript_1D753D
- jumpifword 4, 0x2024c6c, 0x200, BattleScript_1D753D
- setbyte 0x2016055, 0
+ jumpifword 4, gHitMarker, 0x200, BattleScript_1D753D
+ setbyte gSharedMem + 0x16055, 0
callatk BattleScript_1D756C
jump BattleScript_EndTurn
BattleScript_1D753D: @ 81D753D
attackcanceler
- setbyte 0x2024d21, 12
- setbyte 0x2016002, 1
+ setbyte gUnknown_02024D1F + 0x2, 12
+ setbyte gSharedMem + 0x16002, 1
clearstatus USER
- orword 0x2024c6c, 0x800
- jumpifhalfword 1, 0x2024be6, 143, BattleScript_1D6F3B
- setbyte 0x2024d21, 8
+ orword gHitMarker, 0x800
+ jumpifhalfword 1, gCurrentMove, 143, BattleScript_1D6F3B
+ setbyte gUnknown_02024D1F + 0x2, 8
jump BattleScript_1D6F3B
BattleScript_1D756C: @ 81D756C
@@ -846,10 +847,10 @@ BattleScript_1D756C: @ 81D756C
ppreduce
attackanimation
waitanimation
- orword 0x2024c6c, 0x8000000
- setbyte 0x2024d21, 76
+ orword gHitMarker, 0x8000000
+ setbyte gUnknown_02024D1F + 0x2, 76
seteffecttarget
- copyarray 0x2024d23, 0x2016055, 1
+ copyarray gUnknown_02024D1F + 0x4, gSharedMem + 0x16055, 1
printfromtable BattleTextList_401584
waitmessage 64
return
@@ -860,7 +861,7 @@ MoveEffect_SuperFang: @ 81D7596
attackstring
ppreduce
atk6
- bicbyte 0x2024c68, 6
+ bicbyte gBattleMoveFlags, 6
gethalfcurrentenemyhp
jump BattleScript_1D6F48
@@ -870,22 +871,22 @@ MoveEffect_DragonRage: @ 81D75AD
attackstring
ppreduce
atk6
- bicbyte 0x2024c68, 6
- setbyte 0x2024bec, 40
- setbyte 0x2024bed, 0
- setbyte 0x2024bee, 0
- setbyte 0x2024bef, 0
+ bicbyte gBattleMoveFlags, 6
+ setbyte gBattleMoveDamage, 40
+ setbyte gBattleMoveDamage + 0x1, 0
+ setbyte gBattleMoveDamage + 0x2, 0
+ setbyte gBattleMoveDamage + 0x3, 0
atk69
jump BattleScript_1D6F48
MoveEffect_Trap: @ 81D75DC
- jumpifhalfword 1, 0x2024be6, 250, BattleScript_1D7602
+ jumpifhalfword 1, gCurrentMove, 250, BattleScript_1D7602
jumpifspecialstatusflag TARGET, 0x40000, 1, BattleScript_1D7602
- orword 0x2024c6c, 0x40000
- setbyte 0x201601f, 2
+ orword gHitMarker, 0x40000
+ setbyte gSharedMem + 0x1601F, 2
BattleScript_1D7602: @ 81D7602
- setbyte 0x2024d21, 13
+ setbyte gUnknown_02024D1F + 0x2, 13
jump BattleScript_1D6F14
MoveEffect_DoubleHit: @ 81D760D
@@ -895,7 +896,7 @@ MoveEffect_DoubleHit: @ 81D760D
ppreduce
setloopcounter 2
atk8e
- setbyte 0x2016112, 0
+ setbyte gSharedMem + 0x16112, 0
jump BattleScript_1D7300
MoveEffect_RecoilIfMiss: @ 81D7625
@@ -909,19 +910,19 @@ BattleScript_1D7632: @ 81D7632
pause 64
resultmessage
waitmessage 64
- jumpifbyte 4, 0x2024c68, 8, BattleScript_EndTurn
+ jumpifbyte 4, gBattleMoveFlags, 8, BattleScript_EndTurn
printstring BATTLE_TEXT_KeptGoingCrash
waitmessage 64
atk5
atk6
atk7
manipulatedamage 1
- bicbyte 0x2024c68, 1
- orword 0x2024c6c, 0x100
+ bicbyte gBattleMoveFlags, 1
+ orword gHitMarker, 0x100
graphicalhpupdate USER
datahpupdate USER
faintpokemon USER, 0, 0x0
- orbyte 0x2024c68, 1
+ orbyte gBattleMoveFlags, 1
jump BattleScript_EndTurn
MoveEffect_Mist: @ 81D7676
@@ -948,8 +949,8 @@ MoveEffect_FocusEnergy: @ 81D7689
jump BattleScript_EndTurn
MoveEffect_Recoil: @ 81D76A6
- setbyte 0x2024d21, 206
- jumpifhalfword 1, 0x2024be6, 165, BattleScript_1D6F14
+ setbyte gUnknown_02024D1F + 0x2, 206
+ jumpifhalfword 1, gCurrentMove, 165, BattleScript_1D6F14
atk60 27
jump BattleScript_1D6F14
@@ -964,7 +965,7 @@ MoveEffect_Confuse: @ 81D76BF
jumpifhalverset TARGET, 32, BattleScript_1D9037
attackanimation
waitanimation
- setbyte 0x2024d21, 7
+ setbyte gUnknown_02024D1F + 0x2, 7
seteffecttarget
resultmessage
waitmessage 64
@@ -977,23 +978,23 @@ BattleScript_1D76FE: @ 81D76FE
jump BattleScript_EndTurn
MoveEffect_AttackUp2: @ 81D770C
- setbyte 0x201601e, 33
+ setbyte gSharedMem + 0x1601E, 33
jump BattleScript_1D71B2
MoveEffect_DefenseUp2: @ 81D7717
- setbyte 0x201601e, 34
+ setbyte gSharedMem + 0x1601E, 34
jump BattleScript_1D71B2
MoveEffect_SpeedUp2: @ 81D7722
- setbyte 0x201601e, 35
+ setbyte gSharedMem + 0x1601E, 35
jump BattleScript_1D71B2
MoveEffect_SpecialAttackUp2: @ 81D772D
- setbyte 0x201601e, 36
+ setbyte gSharedMem + 0x1601E, 36
jump BattleScript_1D71B2
MoveEffect_SpecialDefenseUp2: @ 81D7738
- setbyte 0x201601e, 37
+ setbyte gSharedMem + 0x1601E, 37
jump BattleScript_1D71B2
MoveEffect_Transform: @ 81D7743
@@ -1008,19 +1009,19 @@ MoveEffect_Transform: @ 81D7743
jump BattleScript_EndTurn
MoveEffect_AttackDown2: @ 81D7756
- setbyte 0x201601e, 161
+ setbyte gSharedMem + 0x1601E, 161
jump BattleScript_1D7227
MoveEffect_DefenseDown2: @ 81D7761
- setbyte 0x201601e, 162
+ setbyte gSharedMem + 0x1601E, 162
jump BattleScript_1D7227
MoveEffect_SpeedDown2: @ 81D776C
- setbyte 0x201601e, 163
+ setbyte gSharedMem + 0x1601E, 163
jump BattleScript_1D7227
MoveEffect_SpecialDefenseDown2: @ 81D7777
- setbyte 0x201601e, 165
+ setbyte gSharedMem + 0x1601E, 165
jump BattleScript_1D7227
MoveEffect_Reflect: @ 81D7782
@@ -1051,7 +1052,7 @@ MoveEffect_Poison: @ 81D7795
jumpifhalverset TARGET, 32, BattleScript_1D9037
attackanimation
waitanimation
- setbyte 0x2024d21, 2
+ setbyte gUnknown_02024D1F + 0x2, 2
seteffecttarget
resultmessage
waitmessage 64
@@ -1064,14 +1065,14 @@ MoveEffect_Paralyze: @ 81D77F6
jumpifability TARGET, ABILITY_LIMBER, BattleScript_1D7859
jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_ButItFailed
atk6
- jumpifbyte 4, 0x2024c68, 41, BattleScript_ButItFailed
+ jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_ButItFailed
jumpifstatus TARGET, PAR, BattleScript_1D784B
jumpifstatus TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, 0
jumpifhalverset TARGET, 32, BattleScript_1D9037
attackanimation
waitanimation
- setbyte 0x2024d21, 5
+ setbyte gUnknown_02024D1F + 0x2, 5
seteffecttarget
resultmessage
waitmessage 64
@@ -1084,50 +1085,50 @@ BattleScript_1D784B: @ 81D784B
jump BattleScript_EndTurn
BattleScript_1D7859: @ 81D7859
- copyarray 0x2024c0a, 0x2024c08, 1
- setbyte 0x2024d23, 0
+ copyarray gEffectBank, gBankTarget, 1
+ setbyte gUnknown_02024D1F + 0x4, 0
callatk BattleScript_PRLZPrevention
jump BattleScript_EndTurn
MoveEffect_AttackDownHit: @ 81D7873
- setbyte 0x2024d21, 22
+ setbyte gUnknown_02024D1F + 0x2, 22
jump BattleScript_1D6F14
MoveEffect_DefenseDownHit: @ 81D787E
- setbyte 0x2024d21, 23
+ setbyte gUnknown_02024D1F + 0x2, 23
jump BattleScript_1D6F14
MoveEffect_SpeedDownHit: @ 81D7889
- setbyte 0x2024d21, 24
+ setbyte gUnknown_02024D1F + 0x2, 24
jump BattleScript_1D6F14
MoveEffect_SpecialAttackDownHit: @ 81D7894
- setbyte 0x2024d21, 25
+ setbyte gUnknown_02024D1F + 0x2, 25
jump BattleScript_1D6F14
MoveEffect_SpecialDefenseDownHit: @ 81D789F
- setbyte 0x2024d21, 26
+ setbyte gUnknown_02024D1F + 0x2, 26
jump BattleScript_1D6F14
MoveEffect_AccuracyDownHit: @ 81D78AA
- setbyte 0x2024d21, 27
+ setbyte gUnknown_02024D1F + 0x2, 27
jump BattleScript_1D6F14
MoveEffect_SkyAttack: @ 81D78B5
jumpifsecondarytstatus USER, S_CONTINUE, BattleScript_1D753D
- jumpifword 4, 0x2024c6c, 0x200, BattleScript_1D753D
- setbyte 0x2016055, 3
+ jumpifword 4, gHitMarker, 0x200, BattleScript_1D753D
+ setbyte gSharedMem + 0x16055, 3
callatk BattleScript_1D756C
jump BattleScript_EndTurn
MoveEffect_ConfuseHit: @ 81D78DD
- setbyte 0x2024d21, 7
+ setbyte gUnknown_02024D1F + 0x2, 7
jump BattleScript_1D6F14
MoveEffect_Twineedle: @ 81D78E8
attackcanceler
accuracycheck BattleScript_1D6F72, 0
- setbyte 0x2016112, 2
+ setbyte gSharedMem + 0x16112, 2
attackstring
ppreduce
setloopcounter 2
@@ -1141,7 +1142,7 @@ MoveEffect_Substitute: @ 81D7900
waitstateatk
jumpifsecondarytstatus USER, S_SUBSTITUTE, BattleScript_1D7935
setsubstituteeffect
- jumpifbyte 1, 0x2024d23, 1, BattleScript_1D7922
+ jumpifbyte 1, gUnknown_02024D1F + 0x4, 1, BattleScript_1D7922
pause 32
jump BattleScript_1D7928
@@ -1165,7 +1166,7 @@ BattleScript_1D7935: @ 81D7935
MoveEffect_Recharge: @ 81D7943
attackcanceler
accuracycheck BattleScript_1D6F72, 0
- setbyte 0x2024d21, 221
+ setbyte gUnknown_02024D1F + 0x2, 221
jump BattleScript_1D6F42
BattleScript_MoveUsedMustRecharge:: @ 81D7956
@@ -1176,13 +1177,13 @@ BattleScript_MoveUsedMustRecharge:: @ 81D7956
MoveEffect_Rage: @ 81D7961
attackcanceler
accuracycheck BattleScript_1D797B, 0
- setbyte 0x2024d21, 30
+ setbyte gUnknown_02024D1F + 0x2, 30
seteffecttarget
- setbyte 0x2024d21, 0
+ setbyte gUnknown_02024D1F + 0x2, 0
jump BattleScript_1D6F42
BattleScript_1D797B: @ 81D797B
- setbyte 0x2024d21, 30
+ setbyte gUnknown_02024D1F + 0x2, 30
clearstatus USER
jump BattleScript_1D6F72
@@ -1205,8 +1206,8 @@ MoveEffect_Metronome: @ 81D79AE
pause 32
attackanimation
waitanimation
- setbyte 0x2016002, 0
- setbyte 0x20160a1, 0
+ setbyte gSharedMem + 0x16002, 0
+ setbyte gSharedMem + 0x160A1, 0
metronomeeffect
MoveEffect_LeechSeed: @ 81D79C2
@@ -1254,7 +1255,7 @@ MoveEffect_LevelDamage: @ 81D7A17
attackstring
ppreduce
atk6
- bicbyte 0x2024c68, 6
+ bicbyte gBattleMoveFlags, 6
nightshadedamageeffect
atk69
jump BattleScript_1D6F48
@@ -1265,7 +1266,7 @@ MoveEffect_Psywave: @ 81D7A2F
attackstring
ppreduce
atk6
- bicbyte 0x2024c68, 6
+ bicbyte gBattleMoveFlags, 6
psywavedamageeffect
atk69
jump BattleScript_1D6F48
@@ -1300,10 +1301,10 @@ MoveEffect_PainSplit: @ 81D7A79
painsplitdamagecalculator BattleScript_ButItFailed
attackanimation
waitanimation
- orword 0x2024c6c, 0x100
+ orword gHitMarker, 0x100
graphicalhpupdate USER
datahpupdate USER
- copyarray 0x2024bec, 0x2016014, 4
+ copyarray gBattleMoveDamage, gSharedMem + 0x16014, 4
graphicalhpupdate TARGET
datahpupdate TARGET
printstring BATTLE_TEXT_PainSplit
@@ -1318,7 +1319,7 @@ MoveEffect_Snore: @ 81D7AB0
jump BattleScript_ButItFailed
BattleScript_1D7AC2: @ 81D7AC2
- jumpifhalfword 0, 0x2024be8, 214, BattleScript_1D7AD6
+ jumpifhalfword 0, gUnknown_02024BE8, 214, BattleScript_1D7AD6
printstring BATTLE_TEXT_FastAsleep
waitmessage 64
statusanimation USER
@@ -1327,7 +1328,7 @@ BattleScript_1D7AD6: @ 81D7AD6
attackstring
ppreduce
accuracycheck BattleScript_1D6F77, 0
- setbyte 0x2024d21, 8
+ setbyte gUnknown_02024D1F + 0x2, 8
jump BattleScript_1D6F44
MoveEffect_Conversion2: @ 81D7AEA
@@ -1379,7 +1380,7 @@ BattleScript_1D7B52: @ 81D7B52
statusanimation USER
attackstring
ppreduce
- orword 0x2024c6c, 0x800
+ orword gHitMarker, 0x800
selectrandommovefromusermoves BattleScript_1D7B72
pause 64
jump BattleScript_ButItFailed
@@ -1387,8 +1388,8 @@ BattleScript_1D7B52: @ 81D7B52
BattleScript_1D7B72: @ 81D7B72
attackanimation
waitanimation
- setbyte 0x2016002, 0
- setbyte 0x20160a1, 0
+ setbyte gSharedMem + 0x16002, 0
+ setbyte gSharedMem + 0x160A1, 0
jumptoattack USER
MoveEffect_DestinyBond: @ 81D7B82
@@ -1428,13 +1429,13 @@ MoveEffect_HealBell: @ 81D7BB5
waitanimation
printfromtable BattleTextList_4015D8
waitmessage 64
- jumpifhalfword 1, 0x2024be6, 215, BattleScript_1D7BF2
- jumpifbyte 5, 0x2024d23, 1, BattleScript_1D7BE1
+ jumpifhalfword 1, gCurrentMove, 215, BattleScript_1D7BF2
+ jumpifbyte 5, gUnknown_02024D1F + 0x4, 1, BattleScript_1D7BE1
printstring BATTLE_TEXT_BlocksOther
waitmessage 64
BattleScript_1D7BE1: @ 81D7BE1
- jumpifbyte 5, 0x2024d23, 2, BattleScript_1D7BF2
+ jumpifbyte 5, gUnknown_02024D1F + 0x4, 2, BattleScript_1D7BF2
printstring BATTLE_TEXT_BlocksOther2
waitmessage 64
@@ -1447,28 +1448,28 @@ MoveEffect_TripleKick: @ 81D7BFA
attackcanceler
attackstring
ppreduce
- setbyte 0x20160de, 0
- setbyte 0x20160df, 0
+ setbyte gSharedMem + 0x160DE, 0
+ setbyte gSharedMem + 0x160DF, 0
atk8e
atk26 3
BattleScript_1D7C0C: @ 81D7C0C
jumpiffainted USER, BattleScript_1D7CAF
jumpiffainted TARGET, BattleScript_1D7C8D
- jumpifhalfword 0, 0x2024be8, 214, BattleScript_1D7C2E
+ jumpifhalfword 0, gUnknown_02024BE8, 214, BattleScript_1D7C2E
jumpifstatus USER, SLP, BattleScript_1D7C8D
BattleScript_1D7C2E: @ 81D7C2E
atk25
accuracycheck BattleScript_1D7C8D, 0
- addbyte 0x20160de, 10
- addbyte 0x20160e4, 1
- copyarray 0x2024dec, 0x20160de, 2
+ addbyte gSharedMem + 0x160DE, 10
+ addbyte gSharedMem + 0x160E4, 1
+ copyarray gDynamicBasePower, gSharedMem + 0x160DE, 2
critcalc
atk5
atk6
atk7
- jumpifbyte 4, 0x2024c68, 41, BattleScript_1D7C8D
+ jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_1D7C8D
attackanimation
waitanimation
missmessage
@@ -1480,9 +1481,9 @@ BattleScript_1D7C2E: @ 81D7C2E
waitmessage 64
printstring BATTLE_TEXT_Terminator2
waitmessage 1
- setbyte 0x201600c, 0
+ setbyte gSharedMem + 0x1600C, 0
atk49 2, 16
- jumpifbyte 4, 0x2024c68, 64, BattleScript_1D7C90
+ jumpifbyte 4, gBattleMoveFlags, 64, BattleScript_1D7C90
atk27 BattleScript_1D7C0C
jump BattleScript_1D7C90
@@ -1492,20 +1493,20 @@ BattleScript_1D7C8D: @ 81D7C8D
BattleScript_1D7C90: @ 81D7C90
resultmessage
waitmessage 64
- jumpifbyte 0, 0x20160e4, 0, BattleScript_1D7CAF
- copyarray gBattleTextBuff1, 0x20160e0, 6
+ jumpifbyte 0, gSharedMem + 0x160E4, 0, BattleScript_1D7CAF
+ copyarray gBattleTextBuff1, gSharedMem + 0x160E0, 6
printstring BATTLE_TEXT_HitMulti
waitmessage 64
BattleScript_1D7CAF: @ 81D7CAF
seteffectwithchancetarget
faintpokemon TARGET, 0, 0x0
- setbyte 0x201600c, 14
+ setbyte gSharedMem + 0x1600C, 14
atk49 0, 0
end
MoveEffect_Thief: @ 81D7CC1
- setbyte 0x2024d21, 31
+ setbyte gUnknown_02024D1F + 0x2, 31
jump BattleScript_1D6F14
MoveEffect_MeanLook: @ 81D7CCC
@@ -1516,7 +1517,7 @@ MoveEffect_MeanLook: @ 81D7CCC
jumpifsecondarytstatus TARGET, S_MEAN_LOOK, BattleScript_ButItFailed
attackanimation
waitanimation
- setbyte 0x2024d21, 32
+ setbyte gUnknown_02024D1F + 0x2, 32
seteffecttarget
printstring BATTLE_TEXT_CantEscapeNow
waitmessage 64
@@ -1534,7 +1535,7 @@ MoveEffect_Nightmare: @ 81D7CF4
BattleScript_1D7D1A: @ 81D7D1A
attackanimation
waitanimation
- setbyte 0x2024d21, 33
+ setbyte gUnknown_02024D1F + 0x2, 33
seteffecttarget
printstring BATTLE_TEXT_NightmareStart
waitmessage 64
@@ -1543,7 +1544,7 @@ BattleScript_1D7D1A: @ 81D7D1A
MoveEffect_Minimize: @ 81D7D2E
attackcanceler
setminimize
- setbyte 0x201601e, 23
+ setbyte gSharedMem + 0x1601E, 23
jump BattleScript_1D71B3
MoveEffect_Curse: @ 81D7D3B
@@ -1556,23 +1557,23 @@ MoveEffect_Curse: @ 81D7D3B
jumpifstat USER, 0, 2, 12, BattleScript_ButItFailed
BattleScript_1D7D60: @ 81D7D60
- copyarray 0x2024c08, 0x2024c07, 1
- setbyte 0x2016002, 1
+ copyarray gBankTarget, gBankAttacker, 1
+ setbyte gSharedMem + 0x16002, 1
attackanimation
waitanimation
- setbyte 0x201601e, 147
+ setbyte gSharedMem + 0x1601E, 147
statbuffchange 65, BattleScript_1D7D86
printfromtable BattleTextList_40157C
waitmessage 64
BattleScript_1D7D86: @ 81D7D86
- setbyte 0x201601e, 17
+ setbyte gSharedMem + 0x1601E, 17
statbuffchange 65, BattleScript_1D7D9A
printfromtable BattleTextList_401570
waitmessage 64
BattleScript_1D7D9A: @ 81D7D9A
- setbyte 0x201601e, 18
+ setbyte gSharedMem + 0x1601E, 18
statbuffchange 65, BattleScript_1D7DAE
printfromtable BattleTextList_401570
waitmessage 64
@@ -1581,7 +1582,7 @@ BattleScript_1D7DAE: @ 81D7DAE
jump BattleScript_EndTurn
BattleScript_1D7DB3: @ 81D7DB3
- jumpifarraynotequal 0x2024c07, 0x2024c08, 1, BattleScript_1D7DC4
+ jumpifarraynotequal gBankAttacker, gBankTarget, 1, BattleScript_1D7DC4
atk76 USER, 3
BattleScript_1D7DC4: @ 81D7DC4
@@ -1590,8 +1591,8 @@ BattleScript_1D7DC4: @ 81D7DC4
ppreduce
jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_ButItFailed
cursetarget BattleScript_ButItFailed
- orword 0x2024c6c, 0x100
- setbyte 0x2016002, 0
+ orword gHitMarker, 0x100
+ setbyte gSharedMem + 0x16002, 0
attackanimation
waitanimation
graphicalhpupdate USER
@@ -1645,14 +1646,14 @@ MoveEffect_PerishSong: @ 81D7E3D
waitanimation
printstring BATTLE_TEXT_PerishSong
waitmessage 64
- setbyte 0x2016003, 0
+ setbyte gSharedMem + 0x16003, 0
BattleScript_1D7E53: @ 81D7E53
jumpifability 10, ABILITY_SOUNDPROOF, BattleScript_1D7E73
BattleScript_1D7E5A: @ 81D7E5A
- addbyte 0x2016003, 1
- jumpifarraynotequal 0x2016003, 0x2024a68, 1, BattleScript_1D7E53
+ addbyte gSharedMem + 0x16003, 1
+ jumpifarraynotequal gSharedMem + 0x16003, gNoOfAllBanks, 1, BattleScript_1D7E53
jump BattleScript_EndTurn
BattleScript_1D7E73: @ 81D7E73
@@ -1690,18 +1691,18 @@ MoveEffect_Swagger: @ 81D7EA2
jumpifconfusedandattackmaxed 1, BattleScript_ButItFailed
attackanimation
waitanimation
- setbyte 0x201601e, 33
+ setbyte gSharedMem + 0x1601E, 33
statbuffchange 1, BattleScript_1D7EE5
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D7EE5
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D7EE5
atk47
- playanimation TARGET, 1, 0x20160a4
+ playanimation TARGET, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
printfromtable BattleTextList_401570
waitmessage 64
BattleScript_1D7EE5: @ 81D7EE5
jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_1D98E5
jumpifhalverset TARGET, 32, BattleScript_1D9037
- setbyte 0x2024d21, 7
+ setbyte gUnknown_02024D1F + 0x2, 7
seteffecttarget
jump BattleScript_EndTurn
@@ -1716,7 +1717,7 @@ BattleScript_1D7F0A: @ 81D7F0A
critcalc
atk5
atk6
- jumpifbyte 4, 0x2024c68, 41, BattleScript_1D7F0A
+ jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_1D7F0A
atk7
jump BattleScript_1D6F48
@@ -1755,7 +1756,7 @@ MoveEffect_Safeguard: @ 81D7F55
jump BattleScript_1D7786
MoveEffect_ThawHit: @ 81D7F5E
- setbyte 0x2024d21, 3
+ setbyte gUnknown_02024D1F + 0x2, 3
jump BattleScript_1D6F14
MoveEffect_Magnitude: @ 81D7F69
@@ -1791,7 +1792,7 @@ MoveEffect_BatonPass: @ 81D7F7C
jump BattleScript_EndTurn
MoveEffect_RapidSpin: @ 81D7FA9
- setbyte 0x2024d21, 163
+ setbyte gUnknown_02024D1F + 0x2, 163
jump BattleScript_1D6F14
MoveEffect_Sonicboom: @ 81D7FB4
@@ -1800,11 +1801,11 @@ MoveEffect_Sonicboom: @ 81D7FB4
attackstring
ppreduce
atk6
- bicbyte 0x2024c68, 6
- setbyte 0x2024bec, 20
- setbyte 0x2024bed, 0
- setbyte 0x2024bee, 0
- setbyte 0x2024bef, 0
+ bicbyte gBattleMoveFlags, 6
+ setbyte gBattleMoveDamage, 20
+ setbyte gBattleMoveDamage + 0x1, 0
+ setbyte gBattleMoveDamage + 0x2, 0
+ setbyte gBattleMoveDamage + 0x3, 0
atk69
jump BattleScript_1D6F48
@@ -1843,15 +1844,15 @@ MoveEffect_SunnyDay: @ 81D800E
jump BattleScript_1D7FFA
MoveEffect_DefenseUpHit: @ 81D8017
- setbyte 0x2024d21, 80
+ setbyte gUnknown_02024D1F + 0x2, 80
jump BattleScript_1D6F14
MoveEffect_AttackUpHit: @ 81D8022
- setbyte 0x2024d21, 79
+ setbyte gUnknown_02024D1F + 0x2, 79
jump BattleScript_1D6F14
MoveEffect_AllStatsUpHit: @ 81D802D
- setbyte 0x2024d21, 98
+ setbyte gUnknown_02024D1F + 0x2, 98
jump BattleScript_1D6F14
MoveEffect_BellyDrum: @ 81D8038
@@ -1859,7 +1860,7 @@ MoveEffect_BellyDrum: @ 81D8038
attackstring
ppreduce
maxattackhalvehp BattleScript_ButItFailed
- orword 0x2024c6c, 0x100
+ orword gHitMarker, 0x100
attackanimation
waitanimation
graphicalhpupdate USER
@@ -1891,14 +1892,14 @@ MoveEffect_MirrorCoat: @ 81D806F
MoveEffect_SkullBash: @ 81D8085
jumpifsecondarytstatus USER, S_CONTINUE, BattleScript_1D753D
- jumpifword 4, 0x2024c6c, 0x200, BattleScript_1D753D
- setbyte 0x2016055, 2
+ jumpifword 4, gHitMarker, 0x200, BattleScript_1D753D
+ setbyte gSharedMem + 0x16055, 2
callatk BattleScript_1D756C
- setbyte 0x201601e, 18
+ setbyte gSharedMem + 0x1601E, 18
statbuffchange 65, BattleScript_1D80CF
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D80CF
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D80CF
atk47
- playanimation USER, 1, 0x20160a4
+ playanimation USER, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
printfromtable BattleTextList_401570
waitmessage 64
@@ -1907,11 +1908,11 @@ BattleScript_1D80CF: @ 81D80CF
MoveEffect_Twister: @ 81D80D4
jumpifspecialstatusflag TARGET, 0x40, 1, BattleScript_1D80EE
- orword 0x2024c6c, 0x10000
- setbyte 0x201601f, 2
+ orword gHitMarker, 0x10000
+ setbyte gSharedMem + 0x1601F, 2
BattleScript_1D80EE: @ 81D80EE
- setbyte 0x2024d21, 8
+ setbyte gUnknown_02024D1F + 0x2, 8
jump BattleScript_1D6F14
MoveEffect_Earthquake: @ 81D80F9
@@ -1923,13 +1924,13 @@ MoveEffect_Earthquake: @ 81D80F9
BattleScript_1D80FD: @ 81D80FD
atk25
jumpifspecialstatusflag TARGET, 0x80, 1, BattleScript_1D811D
- orword 0x2024c6c, 0x20000
- setbyte 0x201601f, 2
+ orword gHitMarker, 0x20000
+ setbyte gSharedMem + 0x1601F, 2
jump BattleScript_1D812C
BattleScript_1D811D: @ 81D811D
- bicword 0x2024c6c, 0x20000
- setbyte 0x201601f, 1
+ bicword gHitMarker, 0x20000
+ setbyte gSharedMem + 0x1601F, 1
BattleScript_1D812C: @ 81D812C
accuracycheck BattleScript_1D8165, 0
@@ -1951,7 +1952,7 @@ BattleScript_1D812C: @ 81D812C
printstring BATTLE_TEXT_Terminator2
waitmessage 1
faintpokemon TARGET, 0, 0x0
- setbyte 0x201600c, 0
+ setbyte gSharedMem + 0x1600C, 0
atk49 2, 16
jumpwhiletargetvalid BattleScript_1D80FD
end
@@ -1962,7 +1963,7 @@ BattleScript_1D8165: @ 81D8165
missmessage
resultmessage
waitmessage 64
- setbyte 0x201600c, 0
+ setbyte gSharedMem + 0x1600C, 0
atk49 2, 16
jumpwhiletargetvalid BattleScript_1D80FD
end
@@ -1980,52 +1981,52 @@ MoveEffect_FutureSight: @ 81D817D
MoveEffect_Gust: @ 81D8194
jumpifspecialstatusflag TARGET, 0x40, 1, BattleScript_1D6F14
- orword 0x2024c6c, 0x10000
- setbyte 0x201601f, 2
+ orword gHitMarker, 0x10000
+ setbyte gSharedMem + 0x1601F, 2
jump BattleScript_1D6F14
MoveEffect_FlinchHit2: @ 81D81B3
jumpifspecialstatusflag TARGET, 0x100, 1, BattleScript_1D80EE
- setbyte 0x201601f, 2
+ setbyte gSharedMem + 0x1601F, 2
jump BattleScript_1D80EE
MoveEffect_Solarbeam: @ 81D81C9
jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_1D81E1
jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_1D81E1
- jumpifhalfword 4, 0x2024db8, 96, BattleScript_1D8209
+ jumpifhalfword 4, gBattleWeather, 96, BattleScript_1D8209
BattleScript_1D81E1: @ 81D81E1
jumpifsecondarytstatus USER, S_CONTINUE, BattleScript_1D753D
- jumpifword 4, 0x2024c6c, 0x200, BattleScript_1D753D
- setbyte 0x2016055, 1
+ jumpifword 4, gHitMarker, 0x200, BattleScript_1D753D
+ setbyte gSharedMem + 0x16055, 1
callatk BattleScript_1D756C
jump BattleScript_EndTurn
BattleScript_1D8209: @ 81D8209
- orword 0x2024c6c, 0x8000000
- setbyte 0x2024d21, 76
+ orword gHitMarker, 0x8000000
+ setbyte gUnknown_02024D1F + 0x2, 76
seteffecttarget
ppreduce
jump BattleScript_1D753D
MoveEffect_Thunder: @ 81D821F
- setbyte 0x2024d21, 5
- orword 0x2024c6c, 0x10000
+ setbyte gUnknown_02024D1F + 0x2, 5
+ orword gHitMarker, 0x10000
jump BattleScript_1D6F14
MoveEffect_Teleport: @ 81D8233
attackcanceler
attackstring
ppreduce
- jumpifhalfword 4, 0x20239f8, 8, BattleScript_ButItFailed
+ jumpifhalfword 4, gBattleTypeFlags, 8, BattleScript_ButItFailed
atk76 USER, 2
- jumpifbyte 0, 0x2024d1e, 1, BattleScript_ButItFailed
- jumpifbyte 0, 0x2024d1e, 2, BattleScript_1D8839
+ jumpifbyte 0, gBattleCommunication, 1, BattleScript_ButItFailed
+ jumpifbyte 0, gBattleCommunication, 2, BattleScript_1D8839
attackanimation
waitanimation
printstring BATTLE_TEXT_FledBattle
waitmessage 64
- setbyte 0x2024d26, 5
+ setbyte gBattleOutcome, 5
jump BattleScript_EndTurn
MoveEffect_BeatUp: @ 81D826E
@@ -2034,14 +2035,14 @@ MoveEffect_BeatUp: @ 81D826E
attackstring
pause 32
ppreduce
- setbyte 0x2024d1e, 0
+ setbyte gBattleCommunication, 0
BattleScript_1D8281: @ 81D8281
atk25
beatupcalculation BattleScript_1D82C4, BattleScript_ButItFailed
printstring BATTLE_TEXT_PokeAttack
critcalc
- jumpifbyte 1, 0x2024c0d, 2, BattleScript_1D829C
+ jumpifbyte 1, gCritMultiplier, 2, BattleScript_1D829C
manipulatedamage 2
BattleScript_1D829C: @ 81D829C
@@ -2058,7 +2059,7 @@ BattleScript_1D829C: @ 81D829C
resultmessage
waitmessage 64
faintpokemon TARGET, 0, 0x0
- setbyte 0x201600c, 0
+ setbyte gSharedMem + 0x1600C, 0
atk49 2, 16
jump BattleScript_1D8281
@@ -2067,23 +2068,23 @@ BattleScript_1D82C4: @ 81D82C4
MoveEffect_Fly: @ 81D82C5
jumpifsecondarytstatus USER, S_CONTINUE, BattleScript_1D8333
- jumpifword 4, 0x2024c6c, 0x200, BattleScript_1D8333
- jumpifhalfword 0, 0x2024be6, 19, BattleScript_1D8322
- jumpifhalfword 0, 0x2024be6, 291, BattleScript_1D8317
- jumpifhalfword 0, 0x2024be6, 340, BattleScript_1D830C
- setbyte 0x2016055, 5
+ jumpifword 4, gHitMarker, 0x200, BattleScript_1D8333
+ jumpifhalfword 0, gCurrentMove, 19, BattleScript_1D8322
+ jumpifhalfword 0, gCurrentMove, 291, BattleScript_1D8317
+ jumpifhalfword 0, gCurrentMove, 340, BattleScript_1D830C
+ setbyte gSharedMem + 0x16055, 5
jump BattleScript_1D8328
BattleScript_1D830C: @ 81D830C
- setbyte 0x2016055, 7
+ setbyte gSharedMem + 0x16055, 7
jump BattleScript_1D8328
BattleScript_1D8317: @ 81D8317
- setbyte 0x2016055, 6
+ setbyte gSharedMem + 0x16055, 6
jump BattleScript_1D8328
BattleScript_1D8322: @ 81D8322
- setbyte 0x2016055, 4
+ setbyte gSharedMem + 0x16055, 4
BattleScript_1D8328: @ 81D8328
callatk BattleScript_1D756C
@@ -2092,12 +2093,12 @@ BattleScript_1D8328: @ 81D8328
BattleScript_1D8333: @ 81D8333
attackcanceler
- setbyte 0x2024d21, 12
- setbyte 0x2016002, 1
+ setbyte gUnknown_02024D1F + 0x2, 12
+ setbyte gSharedMem + 0x16002, 1
clearstatus USER
- orword 0x2024c6c, 0x800
- jumpifhalfword 1, 0x2024be6, 340, BattleScript_1D835D
- setbyte 0x2024d21, 5
+ orword gHitMarker, 0x800
+ jumpifhalfword 1, gCurrentMove, 340, BattleScript_1D835D
+ setbyte gUnknown_02024D1F + 0x2, 5
BattleScript_1D835D: @ 81D835D
accuracycheck BattleScript_1D836A, 0
@@ -2113,9 +2114,9 @@ MoveEffect_DefenseCurl: @ 81D8370
attackstring
ppreduce
setcurled
- setbyte 0x201601e, 18
+ setbyte gSharedMem + 0x1601E, 18
statbuffchange 65, BattleScript_1D838D
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D71D8
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D71D8
attackanimation
waitanimation
@@ -2131,7 +2132,7 @@ MoveEffect_Softboiled: @ 81D8392
BattleScript_1D839B:: @ 81D839B
attackanimation
waitanimation
- orword 0x2024c6c, 0x100
+ orword gHitMarker, 0x100
graphicalhpupdate TARGET
datahpupdate TARGET
printstring BATTLE_TEXT_RegainedHealth
@@ -2147,7 +2148,7 @@ BattleScript_1D83B5:: @ 81D83B5
MoveEffect_FakeOut: @ 81D83C3
attackcanceler
jumpifnotfirstturn BattleScript_1D83D4
- setbyte 0x2024d21, 136
+ setbyte gUnknown_02024D1F + 0x2, 136
jump BattleScript_1D6F14
BattleScript_1D83D4: @ 81D83D4
@@ -2158,14 +2159,14 @@ BattleScript_1D83D5: @ 81D83D5
BattleScript_ButItFailed:: @ 81D83D6
pause 32
- orbyte 0x2024c68, 32
+ orbyte gBattleMoveFlags, 32
resultmessage
waitmessage 64
jump BattleScript_EndTurn
BattleScript_1D83E8: @ 81D83E8
pause 32
- orbyte 0x2024c68, 8
+ orbyte gBattleMoveFlags, 8
resultmessage
waitmessage 64
jump BattleScript_EndTurn
@@ -2173,7 +2174,7 @@ BattleScript_1D83E8: @ 81D83E8
MoveEffect_Uproar: @ 81D83FA
attackcanceler
accuracycheck BattleScript_1D6F72, 0
- setbyte 0x2024d21, 74
+ setbyte gUnknown_02024D1F + 0x2, 74
attackstring
jumpifsecondarytstatus USER, S_CONTINUE, BattleScript_1D8414
ppreduce
@@ -2195,7 +2196,7 @@ MoveEffect_Stockpile: @ 81D841A
MoveEffect_SpitUp: @ 81D842D
attackcanceler
- jumpifbyte 0, 0x2024d24, 1, BattleScript_1D845C
+ jumpifbyte 0, gUnknown_02024D1F + 0x5, 1, BattleScript_1D845C
attackstring
ppreduce
accuracycheck BattleScript_1D6F72, 0
@@ -2260,18 +2261,18 @@ MoveEffect_Flatter: @ 81D84B1
jumpifconfusedandattackmaxed 4, BattleScript_ButItFailed
attackanimation
waitanimation
- setbyte 0x201601e, 20
+ setbyte gSharedMem + 0x1601E, 20
statbuffchange 1, BattleScript_1D84F4
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D84F4
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D84F4
atk47
- playanimation TARGET, 1, 0x20160a4
+ playanimation TARGET, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
printfromtable BattleTextList_401570
waitmessage 64
BattleScript_1D84F4: @ 81D84F4
jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_1D98E5
jumpifhalverset TARGET, 32, BattleScript_1D9037
- setbyte 0x2024d21, 7
+ setbyte gUnknown_02024D1F + 0x2, 7
seteffecttarget
jump BattleScript_EndTurn
@@ -2288,13 +2289,13 @@ MoveEffect_WillOWisp: @ 81D850F
jumpifhalverset TARGET, 32, BattleScript_1D9037
attackanimation
waitanimation
- setbyte 0x2024d21, 3
+ setbyte gUnknown_02024D1F + 0x2, 3
seteffecttarget
jump BattleScript_EndTurn
BattleScript_1D855B: @ 81D855B
- copyarray 0x2024c0a, 0x2024c08, 1
- setbyte 0x2024d23, 0
+ copyarray gEffectBank, gBankTarget, 1
+ setbyte gUnknown_02024D1F + 0x4, 0
callatk BattleScript_BRNPrevention
jump BattleScript_EndTurn
@@ -2306,7 +2307,7 @@ BattleScript_1D8575: @ 81D8575
MoveEffect_Memento: @ 81D8583
attackcanceler
- jumpifbyte 0, 0x2024d24, 1, BattleScript_1D860A
+ jumpifbyte 0, gUnknown_02024D1F + 0x5, 1, BattleScript_1D860A
attackstring
ppreduce
jumpifattackandspecialattackcannotfall BattleScript_ButItFailed
@@ -2314,20 +2315,20 @@ MoveEffect_Memento: @ 81D8583
attackanimation
waitanimation
jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D85FF
- setbyte 0x20160dc, 0
+ setbyte gSharedMem + 0x160DC, 0
playstatchangeanimation TARGET, 18, 7
playstatchangeanimation TARGET, 2, 3
- setbyte 0x201601e, 161
+ setbyte gSharedMem + 0x1601E, 161
statbuffchange 1, BattleScript_1D85D0
- jumpifbyte 2, 0x2024d23, 1, BattleScript_1D85D0
+ jumpifbyte 2, gUnknown_02024D1F + 0x4, 1, BattleScript_1D85D0
printfromtable BattleTextList_40157C
waitmessage 64
BattleScript_1D85D0: @ 81D85D0
playstatchangeanimation TARGET, 16, 3
- setbyte 0x201601e, 164
+ setbyte gSharedMem + 0x1601E, 164
statbuffchange 1, BattleScript_1D85F3
- jumpifbyte 2, 0x2024d23, 1, BattleScript_1D85F3
+ jumpifbyte 2, gUnknown_02024D1F + 0x4, 1, BattleScript_1D85F3
printfromtable BattleTextList_40157C
waitmessage 64
@@ -2359,7 +2360,7 @@ MoveEffect_Facade: @ 81D8626
jump BattleScript_1D6F14
BattleScript_1D8635: @ 81D8635
- setbyte 0x201601f, 2
+ setbyte gSharedMem + 0x1601F, 2
jump BattleScript_1D6F14
MoveEffect_FocusPunch: @ 81D8640
@@ -2372,12 +2373,12 @@ MoveEffect_FocusPunch: @ 81D8640
MoveEffect_Smellingsalt: @ 81D8652
jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D6F14
- setbyte 0x2024d21, 164
+ setbyte gUnknown_02024D1F + 0x2, 164
jumpifstatus TARGET, PAR, BattleScript_1D8671
jump BattleScript_1D6F14
BattleScript_1D8671: @ 81D8671
- setbyte 0x201601f, 2
+ setbyte gSharedMem + 0x1601F, 2
jump BattleScript_1D6F14
MoveEffect_FollowMe: @ 81D867C
@@ -2476,8 +2477,8 @@ MoveEffect_Assist: @ 81D8736
assistattackselect BattleScript_1D83D5
attackanimation
waitanimation
- setbyte 0x2016002, 0
- setbyte 0x20160a1, 0
+ setbyte gSharedMem + 0x16002, 0
+ setbyte gSharedMem + 0x160A1, 0
jumptoattack USER
MoveEffect_Ingrain: @ 81D874D
@@ -2492,7 +2493,7 @@ MoveEffect_Ingrain: @ 81D874D
jump BattleScript_EndTurn
MoveEffect_Superpower: @ 81D8762
- setbyte 0x2024d21, 229
+ setbyte gUnknown_02024D1F + 0x2, 229
jump BattleScript_1D6F14
MoveEffect_MagicCoat: @ 81D876D
@@ -2531,13 +2532,13 @@ MoveEffect_BrickBreak: @ 81D879D
atk5
atk6
atk7
- jumpifbyte 0, 0x2016002, 0, BattleScript_1D87BD
- bicbyte 0x2024c68, 9
+ jumpifbyte 0, gSharedMem + 0x16002, 0, BattleScript_1D87BD
+ bicbyte gBattleMoveFlags, 9
BattleScript_1D87BD: @ 81D87BD
attackanimation
waitanimation
- jumpifbyte 3, 0x2016002, 2, BattleScript_1D87D0
+ jumpifbyte 3, gSharedMem + 0x16002, 2, BattleScript_1D87D0
printstring BATTLE_TEXT_BrokeWall
waitmessage 64
@@ -2574,7 +2575,7 @@ MoveEffect_Yawn: @ 81D87EE
jump BattleScript_EndTurn
BattleScript_1D882F: @ 81D882F
- copyarray 0x2016003, 0x20160f8, 1
+ copyarray gSharedMem + 0x16003, gSharedMem + 0x160F8, 1
BattleScript_1D8839: @ 81D8839
pause 32
@@ -2583,7 +2584,7 @@ BattleScript_1D8839: @ 81D8839
jump BattleScript_EndTurn
MoveEffect_KnockOff: @ 81D8847
- setbyte 0x2024d21, 54
+ setbyte gUnknown_02024D1F + 0x2, 54
jump BattleScript_1D6F14
MoveEffect_Endeavor: @ 81D8852
@@ -2591,12 +2592,12 @@ MoveEffect_Endeavor: @ 81D8852
attackstring
ppreduce
setdamagetohealthdifference BattleScript_ButItFailed
- copyarray 0x2024bf0, 0x2024bec, 4
+ copyarray gHP_dealt, gBattleMoveDamage, 4
accuracycheck BattleScript_1D6F77, 0
atk6
- jumpifbyte 4, 0x2024c68, 41, BattleScript_1D6F48
- bicbyte 0x2024c68, 6
- copyarray 0x2024bec, 0x2024bf0, 4
+ jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_1D6F48
+ bicbyte gBattleMoveFlags, 6
+ copyarray gBattleMoveDamage, gHP_dealt, 4
atk69
jump BattleScript_1D6F48
@@ -2675,19 +2676,19 @@ MoveEffect_SecretPower: @ 81D8918
jump BattleScript_1D6F14
MoveEffect_DoubleEdge: @ 81D891E
- setbyte 0x2024d21, 230
+ setbyte gUnknown_02024D1F + 0x2, 230
jump BattleScript_1D6F14
MoveEffect_TeeterDance: @ 81D8929
attackcanceler
attackstring
ppreduce
- setbyte 0x2024c08, 0
+ setbyte gBankTarget, 0
BattleScript_1D8932: @ 81D8932
atk25
- setbyte 0x2024d21, 7
- jumpifarrayequal 0x2024c07, 0x2024c08, 1, BattleScript_1D8978
+ setbyte gUnknown_02024D1F + 0x2, 7
+ jumpifarrayequal gBankAttacker, gBankTarget, 1, BattleScript_1D8978
jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_1D8996
jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D89B2
jumpifsecondarytstatus TARGET, S_CONFUSED, BattleScript_1D89C0
@@ -2700,10 +2701,10 @@ BattleScript_1D8932: @ 81D8932
waitmessage 64
BattleScript_1D8978: @ 81D8978
- setbyte 0x201600c, 0
+ setbyte gSharedMem + 0x1600C, 0
atk49 2, 16
- addbyte 0x2024c08, 1
- jumpifarraynotequal 0x2024c08, 0x2024a68, 1, BattleScript_1D8932
+ addbyte gBankTarget, 1
+ jumpifarraynotequal gBankTarget, gNoOfAllBanks, 1, BattleScript_1D8932
end
BattleScript_1D8996: @ 81D8996
@@ -2748,7 +2749,7 @@ MoveEffect_WaterSport: @ 81D89D7
jump BattleScript_EndTurn
MoveEffect_PoisonFang: @ 81D89EE
- setbyte 0x2024d21, 6
+ setbyte gUnknown_02024D1F + 0x2, 6
jump BattleScript_1D6F14
MoveEffect_WeatherBall: @ 81D89F9
@@ -2756,7 +2757,7 @@ MoveEffect_WeatherBall: @ 81D89F9
jump BattleScript_1D6F14
MoveEffect_Overheat: @ 81D89FF
- setbyte 0x2024d21, 251
+ setbyte gUnknown_02024D1F + 0x2, 251
jump BattleScript_1D6F14
MoveEffect_Tickle: @ 81D8A0A
@@ -2770,20 +2771,20 @@ BattleScript_1D8A1F: @ 81D8A1F
accuracycheck BattleScript_ButItFailed, 0
attackanimation
waitanimation
- setbyte 0x20160dc, 0
+ setbyte gSharedMem + 0x160DC, 0
playstatchangeanimation TARGET, 6, 5
playstatchangeanimation TARGET, 2, 1
- setbyte 0x201601e, 145
+ setbyte gSharedMem + 0x1601E, 145
statbuffchange 1, BattleScript_1D8A55
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D8A55
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8A55
printfromtable BattleTextList_40157C
waitmessage 64
BattleScript_1D8A55: @ 81D8A55
playstatchangeanimation TARGET, 4, 1
- setbyte 0x201601e, 146
+ setbyte gSharedMem + 0x1601E, 146
statbuffchange 1, BattleScript_1D8A78
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D8A78
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8A78
printfromtable BattleTextList_40157C
waitmessage 64
@@ -2792,7 +2793,7 @@ BattleScript_1D8A78: @ 81D8A78
BattleScript_1D8A7D: @ 81D8A7D
pause 32
- orbyte 0x2024c68, 32
+ orbyte gBattleMoveFlags, 32
printstring BATTLE_TEXT_StatNoLower
waitmessage 64
jump BattleScript_EndTurn
@@ -2807,18 +2808,18 @@ MoveEffect_CosmicPower: @ 81D8A91
BattleScript_1D8AA6: @ 81D8AA6
attackanimation
waitanimation
- setbyte 0x20160dc, 0
+ setbyte gSharedMem + 0x160DC, 0
playstatchangeanimation USER, 36, 0
- setbyte 0x201601e, 18
+ setbyte gSharedMem + 0x1601E, 18
statbuffchange 65, BattleScript_1D8AD1
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D8AD1
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8AD1
printfromtable BattleTextList_401570
waitmessage 64
BattleScript_1D8AD1: @ 81D8AD1
- setbyte 0x201601e, 21
+ setbyte gSharedMem + 0x1601E, 21
statbuffchange 65, BattleScript_1D8AF0
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D8AF0
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8AF0
printfromtable BattleTextList_401570
waitmessage 64
@@ -2826,7 +2827,7 @@ BattleScript_1D8AF0: @ 81D8AF0
jump BattleScript_EndTurn
MoveEffect_SkyUppercut: @ 81D8AF5
- orword 0x2024c6c, 0x10000
+ orword gHitMarker, 0x10000
jump BattleScript_1D6F14
MoveEffect_BulkUp: @ 81D8B03
@@ -2839,18 +2840,18 @@ MoveEffect_BulkUp: @ 81D8B03
BattleScript_1D8B18: @ 81D8B18
attackanimation
waitanimation
- setbyte 0x20160dc, 0
+ setbyte gSharedMem + 0x160DC, 0
playstatchangeanimation USER, 6, 0
- setbyte 0x201601e, 17
+ setbyte gSharedMem + 0x1601E, 17
statbuffchange 65, BattleScript_1D8B43
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D8B43
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8B43
printfromtable BattleTextList_401570
waitmessage 64
BattleScript_1D8B43: @ 81D8B43
- setbyte 0x201601e, 18
+ setbyte gSharedMem + 0x1601E, 18
statbuffchange 65, BattleScript_1D8B62
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D8B62
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8B62
printfromtable BattleTextList_401570
waitmessage 64
@@ -2867,18 +2868,18 @@ MoveEffect_CalmMind: @ 81D8B67
BattleScript_1D8B7C: @ 81D8B7C
attackanimation
waitanimation
- setbyte 0x20160dc, 0
+ setbyte gSharedMem + 0x160DC, 0
playstatchangeanimation USER, 48, 0
- setbyte 0x201601e, 20
+ setbyte gSharedMem + 0x1601E, 20
statbuffchange 65, BattleScript_1D8BA7
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D8BA7
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8BA7
printfromtable BattleTextList_401570
waitmessage 64
BattleScript_1D8BA7: @ 81D8BA7
- setbyte 0x201601e, 21
+ setbyte gSharedMem + 0x1601E, 21
statbuffchange 65, BattleScript_1D8BC6
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D8BC6
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8BC6
printfromtable BattleTextList_401570
waitmessage 64
@@ -2887,7 +2888,7 @@ BattleScript_1D8BC6: @ 81D8BC6
BattleScript_1D8BCB: @ 81D8BCB
pause 32
- orbyte 0x2024c68, 32
+ orbyte gBattleMoveFlags, 32
printstring BATTLE_TEXT_StatNoHigher
waitmessage 64
jump BattleScript_EndTurn
@@ -2902,18 +2903,18 @@ MoveEffect_DragonDance: @ 81D8BDF
BattleScript_1D8BF4: @ 81D8BF4
attackanimation
waitanimation
- setbyte 0x20160dc, 0
+ setbyte gSharedMem + 0x160DC, 0
playstatchangeanimation USER, 10, 0
- setbyte 0x201601e, 17
+ setbyte gSharedMem + 0x1601E, 17
statbuffchange 65, BattleScript_1D8C1F
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D8C1F
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8C1F
printfromtable BattleTextList_401570
waitmessage 64
BattleScript_1D8C1F: @ 81D8C1F
- setbyte 0x201601e, 19
+ setbyte gSharedMem + 0x1601E, 19
statbuffchange 65, BattleScript_1D8C3E
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D8C3E
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8C3E
printfromtable BattleTextList_401570
waitmessage 64
@@ -2948,40 +2949,40 @@ gUnknown_081D8C65:: @ 81D8C65
return
gUnknown_081D8C72:: @ 81D8C72
- setbyte 0x201600f, 0
+ setbyte gSharedMem + 0x1600F, 0
atk23 0
end2
gUnknown_081D8C7B:: @ 81D8C7B
atk24 BattleScript_1D8D87
- jumpifbyte 1, 0x2024d26, 0, BattleScript_1D8D86
- jumpifhalfword 4, 0x20239f8, 8, BattleScript_1D8CC2
- jumpifword 5, 0x2024c6c, 0x400000, BattleScript_1D8CC2
+ jumpifbyte 1, gBattleOutcome, 0, BattleScript_1D8D86
+ jumpifhalfword 4, gBattleTypeFlags, 8, BattleScript_1D8CC2
+ jumpifword 5, gHitMarker, 0x400000, BattleScript_1D8CC2
printstring BATTLE_TEXT_UseNext
- setbyte 0x2024d1e, 0
+ setbyte gBattleCommunication, 0
atk67
- jumpifbyte 0, 0x2024d1f, 0, BattleScript_1D8CC2
+ jumpifbyte 0, gUnknown_02024D1F, 0, BattleScript_1D8CC2
atk72 BattleScript_1D8D86
printstring BATTLE_TEXT_CantEscape
BattleScript_1D8CC2: @ 81D8CC2
openpartyscreen 3, BattleScript_1D8D86
atk51 3, 2
- jumpifhalfword 5, 0x20239f8, 8, BattleScript_1D8D66
- jumpifhalfword 4, 0x20239f8, 2, BattleScript_1D8D66
- jumpifhalfword 4, 0x20239f8, 256, BattleScript_1D8D66
- jumpifhalfword 4, 0x20239f8, 1, BattleScript_1D8D66
- jumpifword 4, 0x2024c6c, 0x400000, BattleScript_1D8D66
- jumpifbyte 0, 0x2016084, 1, BattleScript_1D8D66
+ jumpifhalfword 5, gBattleTypeFlags, 8, BattleScript_1D8D66
+ jumpifhalfword 4, gBattleTypeFlags, 2, BattleScript_1D8D66
+ jumpifhalfword 4, gBattleTypeFlags, 256, BattleScript_1D8D66
+ jumpifhalfword 4, gBattleTypeFlags, 1, BattleScript_1D8D66
+ jumpifword 4, gHitMarker, 0x400000, BattleScript_1D8D66
+ jumpifbyte 0, gSharedMem + 0x16084, 1, BattleScript_1D8D66
jumpifcannotswitch USER, BattleScript_1D8D66
printstring BATTLE_TEXT_WillSwitch
- setbyte 0x2024d1e, 0
+ setbyte gBattleCommunication, 0
atk67
- jumpifbyte 0, 0x2024d1f, 1, BattleScript_1D8D66
+ jumpifbyte 0, gUnknown_02024D1F, 1, BattleScript_1D8D66
atk6e
openpartyscreen 129, BattleScript_1D8D66
atk51 USER, 2
- jumpifbyte 0, 0x2024d1e, 6, BattleScript_1D8D66
+ jumpifbyte 0, gBattleCommunication, 6, BattleScript_1D8D66
atk6b
atk76 USER, 5
atk74 1
@@ -3011,7 +3012,7 @@ BattleScript_1D8D66: @ 81D8D66
switch3 3, 0
waitstateatk
atk52 3
- jumpifhalfword 4, 0x20239f8, 1, BattleScript_1D8D86
+ jumpifhalfword 4, gBattleTypeFlags, 1, BattleScript_1D8D86
atk68
BattleScript_1D8D86: @ 81D8D86
@@ -3036,7 +3037,7 @@ BattleScript_1D8D99: @ 81D8D99
switch3 3, 0
waitstateatk
atk52 5
- jumpifarraynotequal 0x2024c09, 0x2024a68, 1, BattleScript_1D8D99
+ jumpifarraynotequal gBank1, gNoOfAllBanks, 1, BattleScript_1D8D99
BattleScript_1D8DBD: @ 81D8DBD
end2
@@ -3056,9 +3057,9 @@ gUnknown_081D8DCE:: @ 81D8DCE
end2
gUnknown_081D8DD1:: @ 81D8DD1
- jumpifhalfword 4, 0x20239f8, 256, BattleScript_1D8E01
- jumpifhalfword 4, 0x20239f8, 2048, BattleScript_1D8E01
- jumpifhalfword 0, 0x202ff5e, 1024, BattleScript_1D8E01
+ jumpifhalfword 4, gBattleTypeFlags, 256, BattleScript_1D8E01
+ jumpifhalfword 4, gBattleTypeFlags, 2048, BattleScript_1D8E01
+ jumpifhalfword 0, gTrainerBattleOpponent, 1024, BattleScript_1D8E01
printstring BATTLE_TEXT_OutOfUsablePoke
waitmessage 64
printstring BATTLE_TEXT_WhitedOut
@@ -3081,7 +3082,7 @@ gUnknown_081D8E0D:: @ 81D8E0D
end2
gUnknown_081D8E14:: @ 81D8E14
- playanimation USER, 8, 0x0
+ playanimation USER, B_ANIM_SMOKEBALL_ESCAPE, 0x0
printstring BATTLE_TEXT_FledUsingItem
waitmessage 64
end2
@@ -3121,8 +3122,8 @@ gUnknown_081D8E4A:: @ 81D8E4A
gUnknown_081D8E4E:: @ 81D8E4E
atk74 1
printstring 2
- setbyte 0x201601f, 2
- jumpifbyte 4, 0x20239f8, 1, BattleScript_1D8E6B
+ setbyte gSharedMem + 0x1601F, 2
+ jumpifbyte 4, gBattleTypeFlags, 1, BattleScript_1D8E6B
atk26 1
jump BattleScript_1D8E6D
@@ -3152,9 +3153,9 @@ BattleScript_1D8E7A: @ 81D8E7A
switch3 USER, 0
waitstateatk
atk52 USER
- setbyte 0x201600c, 4
+ setbyte gSharedMem + 0x1600C, 4
atk49 1, 0
- setbyte 0x201600c, 15
+ setbyte gSharedMem + 0x1600C, 15
atk49 1, 0
end2
@@ -3178,11 +3179,11 @@ BattleScript_1D8EAD: @ 81D8EAD
resultmessage
waitmessage 64
faintpokemon TARGET, 0, 0x0
- setbyte 0x201600c, 3
+ setbyte gSharedMem + 0x1600C, 3
atk49 2, 6
atk76 TARGET, 4
- jumpifbyte 0, 0x2024d1e, 0, BattleScript_1D8EEE
- setbyte 0x201600f, 0
+ jumpifbyte 0, gBattleCommunication, 0, BattleScript_1D8EEE
+ setbyte gSharedMem + 0x1600F, 0
atk23 0
BattleScript_1D8EEE: @ 81D8EEE
@@ -3195,7 +3196,7 @@ BattleScript_Pausex20:: @ 81D8EEF
BattleScript_LevelUp:: @ 81D8EF3
atk55 0xe10016f
attackcanceler
- setbyte 0x201609c, 0
+ setbyte gSharedMem + 0x1609C, 0
atk6c
checkiflearnmoveinbattle BattleScript_1D8F4F, BattleScript_1D8F61, 1
jump BattleScript_1D8F19
@@ -3209,11 +3210,11 @@ BattleScript_1D8F19: @ 81D8F19
printstring BATTLE_TEXT_CantLearnMore
printstring BATTLE_TEXT_DeleteMove
waitstateatk
- setbyte 0x201601a, 0
+ setbyte gSharedMem + 0x1601A, 0
atk5a BattleScript_1D8F46
printstring BATTLE_TEXT_StopLearning
waitstateatk
- setbyte 0x201601a, 0
+ setbyte gSharedMem + 0x1601A, 0
atk5b BattleScript_1D8F19
printstring BATTLE_TEXT_DidNotLearn
jump BattleScript_1D8F0F
@@ -3237,8 +3238,8 @@ BattleScript_1D8F61: @ 81D8F61
gUnknown_081D8F62:: @ 81D8F62
printfromtable BattleTextList_401534
waitmessage 64
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D8F7C
- playanimation USER, 10, 0x0
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8F7C
+ playanimation USER, B_ANIM_RAIN_CONTINUES, 0x0
BattleScript_1D8F7C: @ 81D8F7C
end2
@@ -3246,16 +3247,16 @@ BattleScript_1D8F7C: @ 81D8F7C
gUnknown_081D8F7D:: @ 81D8F7D
printfromtable BattleTextList_401528
waitmessage 64
- atk46 1, 0x20160a4, 0x0
- setbyte 0x2024d1e, 0
+ atk46 1, gSharedMem + 0x160A4, 0x0
+ setbyte gBattleCommunication, 0
BattleScript_1D8F95: @ 81D8F95
- atk32 0x2024c07, 0x2024a7a, 0x2024d1e, 1
+ atk32 gBankAttacker, gTurnOrder, gBattleCommunication, 1
weatherdamage
- jumpifword 0, 0x2024bec, 0x0, BattleScript_1D8FD6
+ jumpifword 0, gBattleMoveDamage, 0x0, BattleScript_1D8FD6
printfromtable BattleTextList_40152C
waitmessage 64
- orword 0x2024c6c, 0x1100120
+ orword gHitMarker, 0x1100120
missmessage
atk5c USER
graphicalhpupdate USER
@@ -3264,12 +3265,12 @@ BattleScript_1D8F95: @ 81D8F95
atk24 BattleScript_1D8FD6
BattleScript_1D8FD6: @ 81D8FD6
- jumpifbyte 1, 0x2024d26, 0, BattleScript_1D8FF5
- addbyte 0x2024d1e, 1
- jumpifarraynotequal 0x2024d1e, 0x2024a68, 1, BattleScript_1D8F95
+ jumpifbyte 1, gBattleOutcome, 0, BattleScript_1D8FF5
+ addbyte gBattleCommunication, 1
+ jumpifarraynotequal gBattleCommunication, gNoOfAllBanks, 1, BattleScript_1D8F95
BattleScript_1D8FF5: @ 81D8FF5
- bicword 0x2024c6c, 0x1100120
+ bicword gHitMarker, 0x1100120
end2
gUnknown_081D8FFF:: @ 81D8FFF
@@ -3280,7 +3281,7 @@ gUnknown_081D8FFF:: @ 81D8FFF
gUnknown_081D9008:: @ 81D9008
printstring BATTLE_TEXT_SunStrong
waitmessage 64
- playanimation USER, 11, 0x0
+ playanimation USER, B_ANIM_SUN_CONTINUES, 0x0
end2
gUnknown_081D9016:: @ 81D9016
@@ -3291,7 +3292,7 @@ gUnknown_081D9016:: @ 81D9016
gUnknown_081D901D:: @ 81D901D
printfromtable BattleTextList_4015EE
waitmessage 64
- atk46 1, 0x20160a4, 0x0
+ atk46 1, gSharedMem + 0x160A4, 0x0
end3
gUnknown_081D9030:: @ 81D9030
@@ -3312,21 +3313,21 @@ gUnknown_081D9041:: @ 81D9041
end2
BattleScript_LeechSeedTurnDrain:: @ 81D904B
- playanimation USER, 14, 0x20160a4
- orword 0x2024c6c, 0x100100
+ playanimation USER, B_ANIM_LEECH_SEED_DRAIN, gSharedMem + 0x160A4
+ orword gHitMarker, 0x100100
graphicalhpupdate USER
datahpupdate USER
- copyarray 0x2024bec, 0x2024bf0, 4
+ copyarray gBattleMoveDamage, gHP_dealt, 4
jumpifability USER, ABILITY_LIQUID_OOZE, BattleScript_1D907D
manipulatedamage 0
- setbyte 0x2024d23, 3
+ setbyte gUnknown_02024D1F + 0x4, 3
jump BattleScript_1D9083
BattleScript_1D907D: @ 81D907D
- setbyte 0x2024d23, 4
+ setbyte gUnknown_02024D1F + 0x4, 4
BattleScript_1D9083: @ 81D9083
- orword 0x2024c6c, 0x100100
+ orword gHitMarker, 0x100100
graphicalhpupdate TARGET
datahpupdate TARGET
printfromtable BattleTextList_40154C
@@ -3345,10 +3346,10 @@ BattleScript_BideAttack:: @ 81D90B2
waitmessage 64
accuracycheck BattleScript_1D6F77, 0
atk6
- bicbyte 0x2024c68, 6
- copyarray 0x2024bec, 0x2016090, 4
+ bicbyte gBattleMoveFlags, 6
+ copyarray gBattleMoveDamage, gSharedMem + 0x16090, 4
atk69
- setbyte 0x2016002, 1
+ setbyte gSharedMem + 0x16002, 1
attackanimation
waitanimation
missmessage
@@ -3372,8 +3373,8 @@ gUnknown_081D90FC:: @ 81D90FC
atke2 TARGET
atk58 TARGET
waitstateatk
- jumpifhalfword 4, 0x20239f8, 8, BattleScript_1D9116
- setbyte 0x2024d26, 5
+ jumpifhalfword 4, gBattleTypeFlags, 8, BattleScript_1D9116
+ setbyte gBattleOutcome, 5
atkf6
BattleScript_1D9116: @ 81D9116
@@ -3418,14 +3419,14 @@ BattleScript_EncoredNoMore:: @ 81D914F
gUnknown_081D9156:: @ 81D9156
printstring BATTLE_TEXT_DestinyBondTaken
waitmessage 64
- orword 0x2024c6c, 0x100100
+ orword gHitMarker, 0x100100
graphicalhpupdate USER
datahpupdate USER
faintpokemon USER, 0, 0x0
return
gUnknown_081D9171:: @ 81D9171
- orword 0x2024c6c, 0x100100
+ orword gHitMarker, 0x100100
graphicalhpupdate USER
datahpupdate USER
callatk BattleScript_1D91FB
@@ -3434,12 +3435,12 @@ gUnknown_081D9171:: @ 81D9171
return
BattleScript_1D9192: @ 81D9192
- setbyte 0x201600f, 0
+ setbyte gSharedMem + 0x1600F, 0
atk23 1
jump gUnknown_081D8C7B
gUnknown_081D919F:: @ 81D919F
- orword 0x2024c6c, 0x100100
+ orword gHitMarker, 0x100100
graphicalhpupdate TARGET
datahpupdate TARGET
callatk BattleScript_1D91FB
@@ -3448,12 +3449,12 @@ gUnknown_081D919F:: @ 81D919F
return
BattleScript_1D91C0: @ 81D91C0
- setbyte 0x201600f, 0
+ setbyte gSharedMem + 0x1600F, 0
atk23 0
jump gUnknown_081D8C7B
gUnknown_081D91CD:: @ 81D91CD
- orword 0x2024c6c, 0x100100
+ orword gHitMarker, 0x100100
graphicalhpupdate 3
datahpupdate 3
callatk BattleScript_1D91FB
@@ -3462,7 +3463,7 @@ gUnknown_081D91CD:: @ 81D91CD
return
BattleScript_1D91EE: @ 81D91EE
- setbyte 0x201600f, 0
+ setbyte gSharedMem + 0x1600F, 0
atk23 3
jump gUnknown_081D8C7B
@@ -3474,7 +3475,7 @@ BattleScript_1D91FB: @ 81D91FB
BattleScript_PerishSongHits:: @ 81D9202
printstring BATTLE_TEXT_PerishSongFell
waitmessage 64
- orword 0x2024c6c, 0x100100
+ orword gHitMarker, 0x100100
graphicalhpupdate USER
datahpupdate USER
faintpokemon USER, 0, 0x0
@@ -3493,33 +3494,33 @@ BattleScript_AllStatsUp:: @ 81D9224
jumpifstat USER, 0, 5, 12, BattleScript_1D92BF
BattleScript_1D9251: @ 81D9251
- setbyte 0x20160dc, 0
+ setbyte gSharedMem + 0x160DC, 0
playstatchangeanimation USER, 62, 0
- setbyte 0x201601e, 17
+ setbyte gSharedMem + 0x1601E, 17
statbuffchange 65, BattleScript_1D926F
printfromtable BattleTextList_401570
waitmessage 64
BattleScript_1D926F: @ 81D926F
- setbyte 0x201601e, 18
+ setbyte gSharedMem + 0x1601E, 18
statbuffchange 65, BattleScript_1D9283
printfromtable BattleTextList_401570
waitmessage 64
BattleScript_1D9283: @ 81D9283
- setbyte 0x201601e, 19
+ setbyte gSharedMem + 0x1601E, 19
statbuffchange 65, BattleScript_1D9297
printfromtable BattleTextList_401570
waitmessage 64
BattleScript_1D9297: @ 81D9297
- setbyte 0x201601e, 20
+ setbyte gSharedMem + 0x1601E, 20
statbuffchange 65, BattleScript_1D92AB
printfromtable BattleTextList_401570
waitmessage 64
BattleScript_1D92AB: @ 81D92AB
- setbyte 0x201601e, 21
+ setbyte gSharedMem + 0x1601E, 21
statbuffchange 65, BattleScript_1D92BF
printfromtable BattleTextList_401570
waitmessage 64
@@ -3549,7 +3550,7 @@ BattleScript_SpikesFree:: @ 81D92D0
BattleScript_FutureSightHits:: @ 81D92D7
printstring BATTLE_TEXT_TookAttack
waitmessage 64
- jumpifbyte 1, 0x2024d23, 0, BattleScript_1D92F4
+ jumpifbyte 1, gUnknown_02024D1F + 0x4, 0, BattleScript_1D92F4
accuracycheck BattleScript_1D934B, 248
jump BattleScript_1D92FB
@@ -3558,12 +3559,12 @@ BattleScript_1D92F4: @ 81D92F4
BattleScript_1D92FB: @ 81D92FB
atk8
- jumpifbyte 1, 0x2024d23, 0, BattleScript_1D9313
- playanimation USER, 18, 0x0
+ jumpifbyte 1, gUnknown_02024D1F + 0x4, 0, BattleScript_1D9313
+ playanimation USER, B_ANIM_FUTURE_SIGHT_HIT, 0x0
jump BattleScript_1D931A
BattleScript_1D9313: @ 81D9313
- playanimation USER, 19, 0x0
+ playanimation USER, B_ANIM_DOOM_DESIRE_HIT, 0x0
BattleScript_1D931A: @ 81D931A
missmessage
@@ -3577,20 +3578,20 @@ BattleScript_1D931A: @ 81D931A
atk24 BattleScript_1D9332
BattleScript_1D9332: @ 81D9332
- setbyte 0x201600c, 0
+ setbyte gSharedMem + 0x1600C, 0
atk49 1, 0
- setbyte 0x201600c, 8
+ setbyte gSharedMem + 0x1600C, 8
atk49 2, 14
- setbyte 0x2024c68, 0
+ setbyte gBattleMoveFlags, 0
end2
BattleScript_1D934B: @ 81D934B
pause 32
- setbyte 0x2024c68, 0
- orbyte 0x2024c68, 32
+ setbyte gBattleMoveFlags, 0
+ orbyte gBattleMoveFlags, 32
resultmessage
waitmessage 64
- setbyte 0x2024c68, 0
+ setbyte gBattleMoveFlags, 0
end2
BattleScript_NoMovesLeft:: @ 81D9365
@@ -3626,10 +3627,10 @@ BattleScript_MoveUsedIsTaunted:: @ 81D938F
BattleScript_WishComesTrue:: @ 81D939A
atkd4 1, BattleScript_1D93C1
- playanimation TARGET, 22, 0x0
+ playanimation TARGET, B_ANIM_WISH_HEAL, 0x0
printstring BATTLE_TEXT_WishTrue
waitmessage 64
- orword 0x2024c6c, 0x100
+ orword gHitMarker, 0x100
graphicalhpupdate TARGET
datahpupdate TARGET
printstring BATTLE_TEXT_RegainedHealth
@@ -3645,10 +3646,10 @@ BattleScript_1D93C1: @ 81D93C1
end2
BattleScript_IngrainTurnHeal:: @ 81D93D1
- playanimation USER, 21, 0x0
+ playanimation USER, B_ANIM_INGRAIN_HEAL, 0x0
printstring BATTLE_TEXT_AbsorbNutrients
waitmessage 64
- orword 0x2024c6c, 0x100
+ orword gHitMarker, 0x100
graphicalhpupdate USER
datahpupdate USER
end2
@@ -3660,20 +3661,20 @@ BattleScript_1D93EC: @ 81D93EC
jump BattleScript_EndTurn
BattleScript_AtkDefDown:: @ 81D93FA
- setbyte 0x20160dc, 0
+ setbyte gSharedMem + 0x160DC, 0
playstatchangeanimation USER, 6, 13
playstatchangeanimation USER, 2, 9
- setbyte 0x201601e, 145
+ setbyte gSharedMem + 0x1601E, 145
statbuffchange 193, BattleScript_1D9427
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D9427
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D9427
printfromtable BattleTextList_40157C
waitmessage 64
BattleScript_1D9427: @ 81D9427
playstatchangeanimation USER, 4, 9
- setbyte 0x201601e, 146
+ setbyte gSharedMem + 0x1601E, 146
statbuffchange 193, BattleScript_1D944A
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D944A
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D944A
printfromtable BattleTextList_40157C
waitmessage 64
@@ -3681,7 +3682,7 @@ BattleScript_1D944A: @ 81D944A
return
BattleScript_KnockedOff:: @ 81D944B
- playanimation TARGET, 5, 0x0
+ playanimation TARGET, B_ANIM_ITEM_KNOCKOFF, 0x0
printstring BATTLE_TEXT_KnockedOffItem
waitmessage 64
return
@@ -3706,7 +3707,7 @@ BattleScript_MagicCoatBounce:: @ 81D946F
pause 32
printstring BATTLE_TEXT_MagicCoatBounce
waitmessage 64
- orword 0x2024c6c, 0x800c00
+ orword gHitMarker, 0x800c00
atk76 USER, 1
return
@@ -3714,10 +3715,10 @@ BattleScript_SnatchedMove:: @ 81D9487
attackstring
ppreduce
snatchmove
- playanimation TARGET, 17, 0x0
+ playanimation TARGET, B_ANIM_SNATCH_MOVE, 0x0
printstring BATTLE_TEXT_SnatchedMove
waitmessage 64
- orword 0x2024c6c, 0x800c00
+ orword gHitMarker, 0x800c00
atk5f
return
@@ -3732,21 +3733,21 @@ BattleScript_OneHitKOMsg:: @ 81D94A9
return
BattleScript_SAtkDown2:: @ 81D94B0
- setbyte 0x20160dc, 0
+ setbyte gSharedMem + 0x160DC, 0
playstatchangeanimation USER, 16, 11
- setbyte 0x201601e, 164
+ setbyte gSharedMem + 0x1601E, 164
statbuffchange 193, BattleScript_1D94D9
- jumpifbyte 0, 0x2024d23, 2, BattleScript_1D94D9
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D94D9
printfromtable BattleTextList_40157C
waitmessage 64
BattleScript_1D94D9: @ 81D94D9
return
-gUnknown_081D94DA:: @ 81D94DA
+BattleScript_FocusPunchSetUp:: @ 81D94DA
printstring BATTLE_TEXT_Terminator2
waitmessage 1
- playanimation USER, 20, 0x0
+ playanimation USER, B_ANIM_FOCUS_PUNCH_SET_UP, 0x0
printstring BATTLE_TEXT_TightenFocus
waitmessage 64
end2
@@ -3758,7 +3759,7 @@ BattleScript_MoveUsedIsAsleep:: @ 81D94EE
jump BattleScript_EndTurn
BattleScript_MoveUsedWokeUp:: @ 81D94FB
- bicword 0x2024c6c, 0x10
+ bicword gHitMarker, 0x10
printfromtable BattleTextList_401562
waitmessage 64
atk98 1
@@ -3778,7 +3779,7 @@ BattleScript_1D951E: @ 81D951E
statusanimation USER
BattleScript_1D9520: @ 81D9520
- orword 0x2024c6c, 0x100100
+ orword gHitMarker, 0x100100
graphicalhpupdate USER
datahpupdate USER
faintpokemon USER, 0, 0x0
@@ -3836,7 +3837,7 @@ BattleScript_MoveUsedIsConfused:: @ 81D9595
printstring BATTLE_TEXT_Confused
waitmessage 64
atk65 1, 0x7
- jumpifbyte 0, 0x2024d23, 0, BattleScript_1D95D3
+ jumpifbyte 0, gUnknown_02024D1F + 0x4, 0, BattleScript_1D95D3
BattleScript_1D95AC: @ 81D95AC
atk76 USER, 0
@@ -3846,7 +3847,7 @@ BattleScript_1D95AC: @ 81D95AC
missmessage
atk5c USER
waitstateatk
- orword 0x2024c6c, 0x100100
+ orword gHitMarker, 0x100100
graphicalhpupdate USER
datahpupdate USER
faintpokemon USER, 0, 0x0
@@ -3866,7 +3867,7 @@ gUnknown_081D95DB:: @ 81D95DB
return
BattleScript_WrapTurnDmg:: @ 81D95E2
- playanimation USER, 6, 0x20160a4
+ playanimation USER, B_ANIM_TURN_TRAP, gSharedMem + 0x160A4
printstring BATTLE_TEXT_HurtBy
waitmessage 64
jump BattleScript_1D9520
@@ -3976,11 +3977,11 @@ BattleScript_1D96BA:: @ 81D96BA
return
BattleScript_1D96C8:: @ 81D96C8
- jumpifhalfword 0, 0x2024be6, 165, BattleScript_1D96DB
+ jumpifhalfword 0, gCurrentMove, 165, BattleScript_1D96DB
jumpifability USER, ABILITY_ROCK_HEAD, BattleScript_1D96F5
BattleScript_1D96DB: @ 81D96DB
- orword 0x2024c6c, 0x100100
+ orword gHitMarker, 0x100100
graphicalhpupdate USER
datahpupdate USER
printstring BATTLE_TEXT_HitRecoil
@@ -3991,7 +3992,7 @@ BattleScript_1D96F5: @ 81D96F5
return
BattleScript_ItemSteal:: @ 81D96F6
- playanimation TARGET, 16, 0x0
+ playanimation TARGET, B_ANIM_ITEM_STEAL, 0x0
printstring BATTLE_TEXT_StoleSomething
waitmessage 64
return
@@ -4000,12 +4001,12 @@ BattleScript_DrizzleActivates:: @ 81D9704
pause 32
printstring BATTLE_TEXT_RainMade
waitstateatk
- playanimation 7, 10, 0x0
+ playanimation 7, B_ANIM_RAIN_CONTINUES, 0x0
callatk BattleScript_1D9761
end3
BattleScript_SpeedBoostActivates:: @ 81D9718
- playanimation USER, 1, 0x20160a4
+ playanimation USER, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
printstring BATTLE_TEXT_SpeedRisen
waitmessage 64
end3
@@ -4019,7 +4020,7 @@ BattleScript_TraceActivates:: @ 81D9726
BattleScript_RainDishActivates:: @ 81D9730
printstring BATTLE_TEXT_RestoredHPByItem
waitmessage 64
- orword 0x2024c6c, 0x100
+ orword gHitMarker, 0x100
graphicalhpupdate USER
datahpupdate USER
end3
@@ -4028,7 +4029,7 @@ BattleScript_SandstreamActivates:: @ 81D9744
pause 32
printstring BATTLE_TEXT_WhipSandstorm
waitstateatk
- playanimation 7, 12, 0x0
+ playanimation 7, B_ANIM_SANDSTORM_CONTINUES, 0x0
callatk BattleScript_1D9761
end3
@@ -4039,12 +4040,12 @@ BattleScript_ShedSkinActivates:: @ 81D9758
end3
BattleScript_1D9761: @ 81D9761
- setbyte 0x2016003, 0
+ setbyte gSharedMem + 0x16003, 0
BattleScript_1D9767: @ 81D9767
castformswitch
- addbyte 0x2016003, 1
- jumpifarraynotequal 0x2016003, 0x2024a68, 1, BattleScript_1D9767
+ addbyte gSharedMem + 0x16003, 1
+ jumpifarraynotequal gSharedMem + 0x16003, gNoOfAllBanks, 1, BattleScript_1D9767
return
BattleScript_CastformChange:: @ 81D977D
@@ -4066,8 +4067,8 @@ BattleScript_1D9792: @ 81D9792
pause 32
gUnknown_081D9795:: @ 81D9795
- setbyte 0x2024c08, 0
- setbyte 0x201601e, 145
+ setbyte gBankTarget, 0
+ setbyte gSharedMem + 0x1601E, 145
BattleScript_1D97A1: @ 81D97A1
atke1 BattleScript_1D97EF
@@ -4076,14 +4077,14 @@ BattleScript_1D97A1: @ 81D97A1
jumpifability TARGET, ABILITY_HYPER_CUTTER, BattleScript_1D97F0
jumpifability TARGET, ABILITY_WHITE_SMOKE, BattleScript_1D97F0
statbuffchange 33, BattleScript_1D97E4
- jumpifbyte 2, 0x2024d23, 1, BattleScript_1D97E4
+ jumpifbyte 2, gUnknown_02024D1F + 0x4, 1, BattleScript_1D97E4
atk47
- playanimation TARGET, 1, 0x20160a4
+ playanimation TARGET, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
printstring BATTLE_TEXT_CutsAttack
waitmessage 64
BattleScript_1D97E4: @ 81D97E4
- addbyte 0x2024c08, 1
+ addbyte gBankTarget, 1
jump BattleScript_1D97A1
BattleScript_1D97EF: @ 81D97EF
@@ -4099,7 +4100,7 @@ BattleScript_DroughtActivates:: @ 81D97FE
pause 32
printstring BATTLE_TEXT_SunIntensified
waitstateatk
- playanimation 7, 11, 0x0
+ playanimation 7, B_ANIM_SUN_CONTINUES, 0x0
callatk BattleScript_1D9761
end3
@@ -4108,7 +4109,7 @@ BattleScript_TookAttack:: @ 81D9812
pause 32
printstring BATTLE_TEXT_TookAttack2
waitmessage 64
- orword 0x2024c6c, 0x400
+ orword gHitMarker, 0x400
return
gUnknown_081D9826:: @ 81D9826
@@ -4129,12 +4130,12 @@ BattleScript_MoveHPDrain_PPLoss:: @ 81D9842
BattleScript_MoveHPDrain:: @ 81D9843
attackstring
pause 32
- orword 0x2024c6c, 0x100
+ orword gHitMarker, 0x100
graphicalhpupdate TARGET
datahpupdate TARGET
printstring BATTLE_TEXT_HPRestoredUsing
waitmessage 64
- orbyte 0x2024c68, 8
+ orbyte gBattleMoveFlags, 8
jump BattleScript_EndTurn
BattleScript_MoveHPDrain_FullHP_PPLoss:: @ 81D9865
@@ -4145,7 +4146,7 @@ BattleScript_MoveHPDrain_FullHP:: @ 81D9866
pause 32
printstring BATTLE_TEXT_MadeUseless
waitmessage 64
- orbyte 0x2024c68, 8
+ orbyte gBattleMoveFlags, 8
jump BattleScript_EndTurn
BattleScript_FlashFireBoost_PPLoss:: @ 81D987B
@@ -4218,7 +4219,7 @@ BattleScript_AbilityNoSpecificStatLoss:: @ 81D9903
pause 32
printstring BATTLE_TEXT_PreventedLoss
waitmessage 64
- setbyte 0x2024d23, 3
+ setbyte gUnknown_02024D1F + 0x4, 3
return
BattleScript_NoItemSteal:: @ 81D9913
@@ -4233,7 +4234,7 @@ BattleScript_ColorChangeActivates:: @ 81D9921
return
BattleScript_RoughSkinActivates:: @ 81D9928
- orword 0x2024c6c, 0x100100
+ orword gHitMarker, 0x100100
graphicalhpupdate USER
datahpupdate USER
printstring BATTLE_TEXT_HurtOther
@@ -4266,7 +4267,7 @@ gUnknown_081D9956:: @ 81D9956
gUnknown_081D995F:: @ 81D995F
printstring BATTLE_TEXT_IgnoredOrdersSLP
waitmessage 64
- setbyte 0x201600c, 0
+ setbyte gSharedMem + 0x1600C, 0
atk49 2, 16
end
@@ -4278,16 +4279,16 @@ gUnknown_081D996F:: @ 81D996F
BattleScript_MoveUsedLoafingAround:: @ 81D9977
printfromtable BattleTextList_40160E
waitmessage 64
- setbyte 0x201600c, 0
+ setbyte gSharedMem + 0x1600C, 0
atk49 2, 16
end
gUnknown_081D9989:: @ 81D9989
printstring BATTLE_TEXT_BeganNap
waitmessage 64
- setbyte 0x2024d21, 65
+ setbyte gUnknown_02024D1F + 0x2, 65
seteffecttarget
- setbyte 0x201600c, 0
+ setbyte gSharedMem + 0x1600C, 0
atk49 2, 16
end
@@ -4297,7 +4298,7 @@ gUnknown_081D99A0:: @ 81D99A0
jump BattleScript_1D95AC
BattleScript_SubstituteFade:: @ 81D99AB
- playanimation TARGET, 2, 0x0
+ playanimation TARGET, B_ANIM_SUBSTITUTE_FADE, 0x0
printstring BATTLE_TEXT_SubFaded
return
@@ -4306,7 +4307,7 @@ BattleScript_BerryCurePrlzEnd2:: @ 81D99B6
end2
BattleScript_BerryCureParRet:: @ 81D99BC
- playanimation 10, 7, 0x0
+ playanimation 10, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_CuredParalysis
waitmessage 64
atk98 10
@@ -4318,7 +4319,7 @@ BattleScript_BerryCurePsnEnd2:: @ 81D99CE
end2
BattleScript_BerryCurePsnRet:: @ 81D99D4
- playanimation 10, 7, 0x0
+ playanimation 10, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_CuredPoison
waitmessage 64
atk98 10
@@ -4330,7 +4331,7 @@ BattleScript_BerryCureBrnEnd2:: @ 81D99E6
end2
BattleScript_BerryCureBrnRet:: @ 81D99EC
- playanimation 10, 7, 0x0
+ playanimation 10, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_CuredBurn
waitmessage 64
atk98 10
@@ -4342,7 +4343,7 @@ BattleScript_BerryCureFrzEnd2:: @ 81D99FE
end2
BattleScript_BerryCureFrzRet:: @ 81D9A04
- playanimation 10, 7, 0x0
+ playanimation 10, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_CuredFreeze
waitmessage 64
atk98 10
@@ -4354,7 +4355,7 @@ BattleScript_BerryCureSlpEnd2:: @ 81D9A16
end2
BattleScript_BerryCureSlpRet:: @ 81D9A1C
- playanimation 10, 7, 0x0
+ playanimation 10, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_CuredSleep
waitmessage 64
atk98 10
@@ -4366,7 +4367,7 @@ BattleScript_BerryCureConfusionEnd2:: @ 81D9A2E
end2
BattleScript_BerryCureConfusionRet:: @ 81D9A34
- playanimation 10, 7, 0x0
+ playanimation 10, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_CuredConfusion
waitmessage 64
removeitem 10
@@ -4377,7 +4378,7 @@ gUnknown_081D9A44:: @ 81D9A44
end2
gUnknown_081D9A4A:: @ 81D9A4A
- playanimation 10, 7, 0x0
+ playanimation 10, B_ANIM_ITEM_EFFECT, 0x0
printfromtable BattleTextList_40162C
waitmessage 64
atk98 10
@@ -4389,24 +4390,24 @@ BattleScript_WhiteHerbEnd2:: @ 81D9A5E
end2
BattleScript_WhiteHerbRet:: @ 81D9A64
- playanimation 10, 7, 0x0
+ playanimation 10, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_RestoredStatus
waitmessage 64
removeitem 10
return
BattleScript_ItemHealHP_RemoveItem:: @ 81D9A74
- playanimation USER, 7, 0x0
+ playanimation USER, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_RestoredHealth
waitmessage 64
- orword 0x2024c6c, 0x100
+ orword gHitMarker, 0x100
graphicalhpupdate USER
datahpupdate USER
removeitem USER
end2
BattleScript_BerryPPHealEnd2:: @ 81D9A91
- playanimation USER, 7, 0x0
+ playanimation USER, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_RestoredPP
waitmessage 64
removeitem USER
@@ -4417,10 +4418,10 @@ BattleScript_ItemHealHP_End2:: @ 81D9AA1
end2
BattleScript_ItemHealHP_Ret:: @ 81D9AA7
- playanimation USER, 7, 0x0
+ playanimation USER, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_RestoredHPLittle
waitmessage 64
- orword 0x2024c6c, 0x100
+ orword gHitMarker, 0x100
graphicalhpupdate USER
datahpupdate USER
return
@@ -4430,37 +4431,37 @@ BattleScript_MoveSelectionChoiceBanded:: @ 81D9AC2
atk44
BattleScript_HangedOnMsg:: @ 81D9AC6
- playanimation TARGET, 9, 0x0
+ playanimation TARGET, B_ANIM_HANGED_ON, 0x0
printstring BATTLE_TEXT_FocusSash
waitmessage 64
return
BattleScript_BerryConfuseHealEnd2:: @ 81D9AD4
- playanimation USER, 7, 0x0
+ playanimation USER, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_RestoredHealth
waitmessage 64
- orword 0x2024c6c, 0x100
+ orword gHitMarker, 0x100
graphicalhpupdate USER
datahpupdate USER
printstring BATTLE_TEXT_UnknownString2
waitmessage 64
- setbyte 0x2024d21, 71
+ setbyte gUnknown_02024D1F + 0x2, 71
seteffecttarget
removeitem USER
end2
BattleScript_BerryStatRaiseEnd2:: @ 81D9AFE
- playanimation USER, 7, 0x0
+ playanimation USER, B_ANIM_ITEM_EFFECT, 0x0
statbuffchange 65, BattleScript_1D9B0B
BattleScript_1D9B0B: @ 81D9B0B
- setbyte 0x2024d23, 4
+ setbyte gUnknown_02024D1F + 0x4, 4
callatk BattleScript_StatUp
removeitem USER
end2
BattleScript_BerryFocusEnergyEnd2:: @ 81D9B19
- playanimation USER, 7, 0x0
+ playanimation USER, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_HustleUse
waitmessage 64
removeitem USER
diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s
index b10b7f96f..22ecc7769 100644
--- a/data/battle_scripts_2.s
+++ b/data/battle_scripts_2.s
@@ -5,7 +5,7 @@
.section script_data, "aw", %progbits
.align 2
-gUnknown_081D9E48:: @ 81D9E48
+gBattlescriptsForBallThrow:: @ 81D9E48
.4byte BattleScript_1D9EA8
.4byte BattleScript_1D9EA8
.4byte BattleScript_1D9EA8
@@ -28,10 +28,10 @@ gUnknown_081D9E7C:: @ 81D9E7C
.4byte BattleScript_1D9F9C
.4byte BattleScript_1D9FBB
-gUnknown_081D9E94:: @ 81D9E94
+gBattlescriptsForRunningByItem:: @ 81D9E94
.4byte BattleScript_1D9FDA
-gUnknown_081D9E98:: @ 81D9E98
+gBattlescriptsForSafariActions:: @ 81D9E98
.4byte BattleScript_1D9FE4
.4byte BattleScript_1D9FEB
.4byte BattleScript_1D9FF4
@@ -102,7 +102,7 @@ BattleScript_TrainerBallBlock:: @ 81D9F35
atkf6
BattleScript_1D9F45: @ 81D9F45
- setbyte 0x201600c, 15
+ setbyte gSharedMem + 0x1600C, 15
atk49 1, 0
end
@@ -118,7 +118,7 @@ BattleScript_1D9F4F: @ 81D9F4F
printstring BATTLE_TEXT_RestoredHealth
waitmessage 64
atk98 1
- setbyte 0x201600c, 15
+ setbyte gSharedMem + 0x1600C, 15
atk49 1, 0
atkf6
@@ -131,7 +131,7 @@ BattleScript_1D9F7B: @ 81D9F7B
printfromtable BattleTextList_401620
waitmessage 64
atk98 1
- setbyte 0x201600c, 15
+ setbyte gSharedMem + 0x1600C, 15
atk49 1, 0
atkf6
@@ -143,7 +143,7 @@ BattleScript_1D9F9C: @ 81D9F9C
atk75
printfromtable BattleTextList_401570
waitmessage 64
- setbyte 0x201600c, 15
+ setbyte gSharedMem + 0x1600C, 15
atk49 1, 0
atkf6
@@ -155,7 +155,7 @@ BattleScript_1D9FBB: @ 81D9FBB
atk75
printfromtable BattleTextList_4015A0
waitmessage 64
- setbyte 0x201600c, 15
+ setbyte gSharedMem + 0x1600C, 15
atk49 1, 0
atkf6
@@ -177,7 +177,7 @@ BattleScript_1D9FEB: @ 81D9FEB
BattleScript_1D9FF4: @ 81D9FF4
printstring BATTLE_TEXT_ThrewBlock
waitmessage 64
- playanimation USER, 4, 0x0
+ playanimation USER, B_ANIM_POKEBLOCK_THROW, 0x0
printfromtable BattleTextList_40161A
waitmessage 64
end2
diff --git a/data/battle_tower.s b/data/battle_tower.s
deleted file mode 100644
index a45dcf72c..000000000
--- a/data/battle_tower.s
+++ /dev/null
@@ -1,159 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-@ 8402F00
- .include "data/battle_tower/trainers.inc"
-
-@ 8403860
- .include "data/battle_tower/held_items.inc"
-
-@ 84038E0
- .include "data/battle_tower/level_50_mons.inc"
-
-@ 8404BA0
- .include "data/battle_tower/level_100_mons.inc"
-
-gUnknown_08405E60:: @ 8405E60
- .byte 4
- .byte 7
- .byte 8
- .byte 13
- .byte 14
- .byte 15
- .byte 16
- .byte 17
- .byte 18
- .byte 19
- .byte 20
- .byte 21
- .byte 23
- .byte 29
- .byte 32
- .byte 34
- .byte 36
- .byte 38
- .byte 39
- .byte 41
- .byte 43
- .byte 45
- .byte 46
- .byte 47
- .byte 53
- .byte 56
- .byte 64
- .byte 66
- .byte 72
- .byte 73
-
-gUnknown_08405E7E:: @ 8405E7E
- .byte 3
- .byte 6
- .byte 9
- .byte 10
- .byte 11
- .byte 12
- .byte 22
- .byte 30
- .byte 33
- .byte 35
- .byte 40
- .byte 42
- .byte 44
- .byte 48
- .byte 49
- .byte 50
- .byte 51
- .byte 65
- .byte 67
- .byte 71
-
-gUnknown_08405E92:: @ 8405E92
- .byte MAP_OBJ_GFX_HIKER
- .byte MAP_OBJ_GFX_TUBER_M
- .byte MAP_OBJ_GFX_MAN_4
- .byte MAP_OBJ_GFX_BOY_4
- .byte MAP_OBJ_GFX_MANIAC
- .byte MAP_OBJ_GFX_RUNNING_TRIATHLETE_M
- .byte MAP_OBJ_GFX_BLACK_BELT
- .byte MAP_OBJ_GFX_MAN_6
- .byte MAP_OBJ_GFX_MAN_6
- .byte MAP_OBJ_GFX_CAMPER
- .byte MAP_OBJ_GFX_MANIAC
- .byte MAP_OBJ_GFX_PSYCHIC_M
- .byte MAP_OBJ_GFX_GENTLEMAN
- .byte MAP_OBJ_GFX_SCHOOL_KID_M
- .byte MAP_OBJ_GFX_MAN_3
- .byte MAP_OBJ_GFX_OLD_MAN_1
- .byte MAP_OBJ_GFX_YOUNGSTER
- .byte MAP_OBJ_GFX_FISHERMAN
- .byte MAP_OBJ_GFX_CYCLING_TRIATHLETE_M
- .byte MAP_OBJ_GFX_RUNNING_TRIATHLETE_M
- .byte MAP_OBJ_GFX_RUNNING_TRIATHLETE_M
- .byte MAP_OBJ_GFX_MAN_4
- .byte MAP_OBJ_GFX_MAN_6
- .byte MAP_OBJ_GFX_LITTLE_BOY_1
- .byte MAP_OBJ_GFX_SAILOR
- .byte MAP_OBJ_GFX_MANIAC
- .byte MAP_OBJ_GFX_MAN_5
- .byte MAP_OBJ_GFX_CAMPER
- .byte MAP_OBJ_GFX_BUG_CATCHER
- .byte MAP_OBJ_GFX_HIKER
-
-gUnknown_08405EB0:: @ 8405EB0
- .byte MAP_OBJ_GFX_WOMAN_3
- .byte MAP_OBJ_GFX_TUBER_F
- .byte MAP_OBJ_GFX_WOMAN_7
- .byte MAP_OBJ_GFX_WOMAN_1
- .byte MAP_OBJ_GFX_WOMAN_3
- .byte MAP_OBJ_GFX_BEAUTY
- .byte MAP_OBJ_GFX_LASS
- .byte MAP_OBJ_GFX_GIRL_3
- .byte MAP_OBJ_GFX_WOMAN_2
- .byte MAP_OBJ_GFX_OLD_WOMAN_1
- .byte MAP_OBJ_GFX_CYCLING_TRIATHLETE_F
- .byte MAP_OBJ_GFX_RUNNING_TRIATHLETE_F
- .byte MAP_OBJ_GFX_RUNNING_TRIATHLETE_F
- .byte MAP_OBJ_GFX_GIRL_3
- .byte MAP_OBJ_GFX_WOMAN_7
- .byte MAP_OBJ_GFX_RUNNING_TRIATHLETE_F
- .byte MAP_OBJ_GFX_PICNICKER
- .byte MAP_OBJ_GFX_WOMAN_3
- .byte MAP_OBJ_GFX_PICNICKER
- .byte MAP_OBJ_GFX_LASS
-
- .align 1
-gBattleTowerBanlist:: @ 8405EC4
- .2byte SPECIES_MEW
- .2byte SPECIES_MEWTWO
- .2byte SPECIES_HO_OH
- .2byte SPECIES_LUGIA
- .2byte SPECIES_CELEBI
- .2byte SPECIES_KYOGRE
- .2byte SPECIES_GROUDON
- .2byte SPECIES_RAYQUAZA
- .2byte SPECIES_JIRACHI
- .2byte SPECIES_DEOXYS
- .2byte -1
-
- .align 1
-gUnknown_08405EDA:: @ 8405EDA
- .2byte ITEM_HP_UP
- .2byte ITEM_PROTEIN
- .2byte ITEM_IRON
- .2byte ITEM_CALCIUM
- .2byte ITEM_CARBOS
- .2byte ITEM_ZINC
-
- .align 1
-gUnknown_08405EE6:: @ 8405EE6
- .2byte ITEM_BRIGHT_POWDER
- .2byte ITEM_WHITE_HERB
- .2byte ITEM_QUICK_CLAW
- .2byte ITEM_LEFTOVERS
- .2byte ITEM_MENTAL_HERB
- .2byte ITEM_KINGS_ROCK
- .2byte ITEM_FOCUS_BAND
- .2byte ITEM_SCOPE_LENS
- .2byte ITEM_CHOICE_BAND
diff --git a/data/battle_tower/held_items.inc b/data/battle_tower/held_items.inc
deleted file mode 100644
index 6c4f0838b..000000000
--- a/data/battle_tower/held_items.inc
+++ /dev/null
@@ -1,65 +0,0 @@
- .align 1
-gBattleTowerHeldItems:: @ 8403860
- .2byte ITEM_NONE
- .2byte ITEM_KINGS_ROCK
- .2byte ITEM_SITRUS_BERRY
- .2byte ITEM_ORAN_BERRY
- .2byte ITEM_CHESTO_BERRY
- .2byte ITEM_HARD_STONE
- .2byte ITEM_FOCUS_BAND
- .2byte ITEM_PERSIM_BERRY
- .2byte ITEM_MIRACLE_SEED
- .2byte ITEM_BERRY_JUICE
- .2byte ITEM_MACHO_BRACE
- .2byte ITEM_SILVER_POWDER
- .2byte ITEM_CHERI_BERRY
- .2byte ITEM_BLACK_GLASSES
- .2byte ITEM_BLACK_BELT
- .2byte ITEM_SOUL_DEW
- .2byte ITEM_CHOICE_BAND
- .2byte ITEM_MAGNET
- .2byte ITEM_SILK_SCARF
- .2byte ITEM_WHITE_HERB
- .2byte ITEM_DEEP_SEA_SCALE
- .2byte ITEM_DEEP_SEA_TOOTH
- .2byte ITEM_MYSTIC_WATER
- .2byte ITEM_SHARP_BEAK
- .2byte ITEM_QUICK_CLAW
- .2byte ITEM_LEFTOVERS
- .2byte ITEM_RAWST_BERRY
- .2byte ITEM_LIGHT_BALL
- .2byte ITEM_POISON_BARB
- .2byte ITEM_NEVER_MELT_ICE
- .2byte ITEM_ASPEAR_BERRY
- .2byte ITEM_SPELL_TAG
- .2byte ITEM_BRIGHT_POWDER
- .2byte ITEM_LEPPA_BERRY
- .2byte ITEM_SCOPE_LENS
- .2byte ITEM_TWISTED_SPOON
- .2byte ITEM_METAL_COAT
- .2byte ITEM_MENTAL_HERB
- .2byte ITEM_CHARCOAL
- .2byte ITEM_PECHA_BERRY
- .2byte ITEM_SOFT_SAND
- .2byte ITEM_LUM_BERRY
- .2byte ITEM_DRAGON_SCALE
- .2byte ITEM_DRAGON_FANG
- .2byte ITEM_IAPAPA_BERRY
- .2byte ITEM_WIKI_BERRY
- .2byte ITEM_SEA_INCENSE
- .2byte ITEM_SHELL_BELL
- .2byte ITEM_SALAC_BERRY
- .2byte ITEM_LANSAT_BERRY
- .2byte ITEM_APICOT_BERRY
- .2byte ITEM_STARF_BERRY
- .2byte ITEM_LIECHI_BERRY
- .2byte ITEM_STICK
- .2byte ITEM_LAX_INCENSE
- .2byte ITEM_AGUAV_BERRY
- .2byte ITEM_FIGY_BERRY
- .2byte ITEM_THICK_CLUB
- .2byte ITEM_MAGO_BERRY
- .2byte ITEM_METAL_POWDER
- .2byte ITEM_PETAYA_BERRY
- .2byte ITEM_LUCKY_PUNCH
- .2byte ITEM_GANLON_BERRY
diff --git a/data/battle_tower/level_100_mons.inc b/data/battle_tower/level_100_mons.inc
deleted file mode 100644
index 9e678153e..000000000
--- a/data/battle_tower/level_100_mons.inc
+++ /dev/null
@@ -1,2701 +0,0 @@
- .align 2
-gBattleTowerLevel100Mons:: @ 8404BA0
-@ 0
- .2byte SPECIES_LINOONE
- .byte BATTLE_TOWER_ITEM_RAWST_BERRY
- .byte 0x42 @ team flags
- .2byte MOVE_SLASH, MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_SAND_ATTACK
- .byte F_EV_SPREAD_SPEED
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 1
- .2byte SPECIES_MIGHTYENA
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x41 @ team flags
- .2byte MOVE_BITE, MOVE_HOWL, MOVE_ODOR_SLEUTH, MOVE_SCARY_FACE
- .byte F_EV_SPREAD_ATTACK
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 2
- .2byte SPECIES_BEAUTIFLY
- .byte BATTLE_TOWER_ITEM_PERSIM_BERRY
- .byte 0x41 @ team flags
- .2byte MOVE_GIGA_DRAIN, MOVE_GUST, MOVE_STUN_SPORE, MOVE_PROTECT
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 3
- .2byte SPECIES_DUSTOX
- .byte BATTLE_TOWER_ITEM_PECHA_BERRY
- .byte 0x41 @ team flags
- .2byte MOVE_PSYBEAM, MOVE_GUST, MOVE_DOUBLE_TEAM, MOVE_SILVER_WIND
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 4
- .2byte SPECIES_LOMBRE
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x03 @ team flags
- .2byte MOVE_ASTONISH, MOVE_GROWL, MOVE_MEGA_DRAIN, MOVE_SURF
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_LONELY
- .2byte 0 @ padding
-
-@ 5
- .2byte SPECIES_NUZLEAF
- .byte BATTLE_TOWER_ITEM_WHITE_HERB
- .byte 0x01 @ team flags
- .2byte MOVE_BULLET_SEED, MOVE_RAZOR_WIND, MOVE_FAINT_ATTACK, MOVE_GROWTH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 6
- .2byte SPECIES_SWELLOW
- .byte BATTLE_TOWER_ITEM_SHARP_BEAK
- .byte 0x42 @ team flags
- .2byte MOVE_AERIAL_ACE, MOVE_GROWL, MOVE_ENDEAVOR, MOVE_FOCUS_ENERGY
- .byte F_EV_SPREAD_ATTACK
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 7
- .2byte SPECIES_PELIPPER
- .byte BATTLE_TOWER_ITEM_MYSTIC_WATER
- .byte 0x02 @ team flags
- .2byte MOVE_SURF, MOVE_WATER_SPORT, MOVE_PROTECT, MOVE_SUPERSONIC
- .byte F_EV_SPREAD_SP_ATTACK
- .byte NATURE_MILD
- .2byte 0 @ padding
-
-@ 8
- .2byte SPECIES_BRELOOM
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x42 @ team flags
- .2byte MOVE_MACH_PUNCH, MOVE_MEGA_DRAIN, MOVE_HEADBUTT, MOVE_STUN_SPORE
- .byte F_EV_SPREAD_ATTACK
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 9
- .2byte SPECIES_NINJASK
- .byte BATTLE_TOWER_ITEM_RAWST_BERRY
- .byte 0x41 @ team flags
- .2byte MOVE_SCRATCH, MOVE_SCREECH, MOVE_LEECH_LIFE, MOVE_FLASH
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 10
- .2byte SPECIES_CROBAT
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x01 @ team flags
- .2byte MOVE_BITE, MOVE_FLY, MOVE_SUPERSONIC, MOVE_HAZE
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_IMPISH
- .2byte 0 @ padding
-
-@ 11
- .2byte SPECIES_MAWILE
- .byte BATTLE_TOWER_ITEM_METAL_COAT
- .byte 0x03 @ team flags
- .2byte MOVE_VICE_GRIP, MOVE_SWEET_SCENT, MOVE_ASTONISH, MOVE_STRENGTH
- .byte F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 12
- .2byte SPECIES_NOSEPASS
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x01 @ team flags
- .2byte MOVE_ROCK_THROW, MOVE_SANDSTORM, MOVE_HARDEN, MOVE_PROTECT
- .byte F_EV_SPREAD_ATTACK
- .byte NATURE_IMPISH
- .2byte 0 @ padding
-
-@ 13
- .2byte SPECIES_DELCATTY
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x42 @ team flags
- .2byte MOVE_DOUBLE_SLAP, MOVE_TAIL_WHIP, MOVE_ATTRACT, MOVE_CHARM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_BOLD
- .2byte 0 @ padding
-
-@ 14
- .2byte SPECIES_CAMERUPT
- .byte BATTLE_TOWER_ITEM_CHARCOAL
- .byte 0x01 @ team flags
- .2byte MOVE_EMBER, MOVE_TAKE_DOWN, MOVE_GROWL, MOVE_SANDSTORM
- .byte F_EV_SPREAD_SP_DEFENSE
- .byte NATURE_RASH
- .2byte 0 @ padding
-
-@ 15
- .2byte SPECIES_MUK
- .byte BATTLE_TOWER_ITEM_ORAN_BERRY
- .byte 0x01 @ team flags
- .2byte MOVE_POISON_GAS, MOVE_MINIMIZE, MOVE_SLUDGE, MOVE_SCREECH
- .byte F_EV_SPREAD_HP
- .byte NATURE_CALM
- .2byte 0 @ padding
-
-@ 16
- .2byte SPECIES_SANDSLASH
- .byte BATTLE_TOWER_ITEM_SOFT_SAND
- .byte 0x03 @ team flags
- .2byte MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_DEFENSE_CURL, MOVE_SWIFT
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 17
- .2byte SPECIES_SPINDA
- .byte BATTLE_TOWER_ITEM_SILK_SCARF
- .byte 0x42 @ team flags
- .2byte MOVE_UPROAR, MOVE_WATER_PULSE, MOVE_THRASH, MOVE_SAFEGUARD
- .byte F_EV_SPREAD_SPEED
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 18
- .2byte SPECIES_WHISCASH
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x01 @ team flags
- .2byte MOVE_TICKLE, MOVE_MUD_SPORT, MOVE_WATER_GUN, MOVE_WATER_SPORT
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 19
- .2byte SPECIES_CACTURNE
- .byte BATTLE_TOWER_ITEM_POISON_BARB
- .byte 0x01 @ team flags
- .2byte MOVE_POISON_STING, MOVE_PIN_MISSILE, MOVE_ABSORB, MOVE_COTTON_SPORE
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 20
- .2byte SPECIES_JIGGLYPUFF
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x42 @ team flags
- .2byte MOVE_SING, MOVE_ROLLOUT, MOVE_POUND, MOVE_LIGHT_SCREEN
- .byte F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 21
- .2byte SPECIES_MARILL
- .byte BATTLE_TOWER_ITEM_MYSTIC_WATER
- .byte 0x42 @ team flags
- .2byte MOVE_BUBBLE_BEAM, MOVE_DEFENSE_CURL, MOVE_RAIN_DANCE, MOVE_IRON_TAIL
- .byte F_EV_SPREAD_SP_DEFENSE
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 22
- .2byte SPECIES_MAGNETON
- .byte BATTLE_TOWER_ITEM_RAWST_BERRY
- .byte 0x01 @ team flags
- .2byte MOVE_THUNDER_SHOCK, MOVE_SUPERSONIC, MOVE_FLASH, MOVE_SCREECH
- .byte F_EV_SPREAD_SPEED
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 23
- .2byte SPECIES_CARVANHA
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x01 @ team flags
- .2byte MOVE_BITE, MOVE_RAGE, MOVE_SCARY_FACE, MOVE_LEER
- .byte F_EV_SPREAD_ATTACK
- .byte NATURE_QUIRKY
- .2byte 0 @ padding
-
-@ 24
- .2byte SPECIES_KECLEON
- .byte BATTLE_TOWER_ITEM_PERSIM_BERRY
- .byte 0x03 @ team flags
- .2byte MOVE_THIEF, MOVE_LICK, MOVE_BIND, MOVE_FURY_SWIPES
- .byte F_EV_SPREAD_DEFENSE
- .byte NATURE_JOLLY
- .2byte 0 @ padding
-
-@ 25
- .2byte SPECIES_NINETALES
- .byte BATTLE_TOWER_ITEM_CHARCOAL
- .byte 0x02 @ team flags
- .2byte MOVE_EMBER, MOVE_CONFUSE_RAY, MOVE_FIRE_SPIN, MOVE_SAFEGUARD
- .byte F_EV_SPREAD_SP_ATTACK
- .byte NATURE_LONELY
- .2byte 0 @ padding
-
-@ 26
- .2byte SPECIES_RAICHU
- .byte BATTLE_TOWER_ITEM_PERSIM_BERRY
- .byte 0x42 @ team flags
- .2byte MOVE_SHOCK_WAVE, MOVE_GROWL, MOVE_DOUBLE_TEAM, MOVE_LIGHT_SCREEN
- .byte F_EV_SPREAD_DEFENSE
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 27
- .2byte SPECIES_SEALEO
- .byte BATTLE_TOWER_ITEM_NEVER_MELT_ICE
- .byte 0x01 @ team flags
- .2byte MOVE_ICE_BALL, MOVE_WATER_GUN, MOVE_ENCORE, MOVE_HAIL
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 28
- .2byte SPECIES_GRAVELER
- .byte BATTLE_TOWER_ITEM_HARD_STONE
- .byte 0x01 @ team flags
- .2byte MOVE_ROCK_THROW, MOVE_MUD_SPORT, MOVE_SANDSTORM, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 29
- .2byte SPECIES_SHUPPET
- .byte BATTLE_TOWER_ITEM_SPELL_TAG
- .byte 0x03 @ team flags
- .2byte MOVE_NIGHT_SHADE, MOVE_WILL_O_WISP, MOVE_SCREECH, MOVE_KNOCK_OFF
- .byte F_EV_SPREAD_SP_ATTACK
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 30
- .2byte SPECIES_LUVDISC
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x0A @ team flags
- .2byte MOVE_ATTRACT, MOVE_FLAIL, MOVE_SWEET_KISS, MOVE_WATER_PULSE
- .byte F_EV_SPREAD_SP_ATTACK
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 31
- .2byte SPECIES_LANTURN
- .byte BATTLE_TOWER_ITEM_CHERI_BERRY
- .byte 0x0A @ team flags
- .2byte MOVE_THUNDER_WAVE, MOVE_SUPERSONIC, MOVE_WATER_GUN, MOVE_SPARK
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_BOLD
- .2byte 0 @ padding
-
-@ 32
- .2byte SPECIES_CORSOLA
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x0A @ team flags
- .2byte MOVE_MIRROR_COAT, MOVE_BUBBLE, MOVE_HARDEN, MOVE_LIGHT_SCREEN
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 33
- .2byte SPECIES_WAILMER
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x05 @ team flags
- .2byte MOVE_SURF, MOVE_ROAR, MOVE_GROWL, MOVE_MIST
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 34
- .2byte SPECIES_RHYDON
- .byte BATTLE_TOWER_ITEM_FOCUS_BAND
- .byte 0x05 @ team flags
- .2byte MOVE_TAKE_DOWN, MOVE_SCARY_FACE, MOVE_TAIL_WHIP, MOVE_ROAR
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 35
- .2byte SPECIES_DODRIO
- .byte BATTLE_TOWER_ITEM_SHARP_BEAK
- .byte 0x05 @ team flags
- .2byte MOVE_FURY_ATTACK, MOVE_PURSUIT, MOVE_AERIAL_ACE, MOVE_AGILITY
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 36
- .2byte SPECIES_GOLDUCK
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x05 @ team flags
- .2byte MOVE_FURY_SWIPES, MOVE_TAIL_WHIP, MOVE_DISABLE, MOVE_PSYCH_UP
- .byte F_EV_SPREAD_ATTACK
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 37
- .2byte SPECIES_BELLOSSOM
- .byte BATTLE_TOWER_ITEM_MIRACLE_SEED
- .byte 0x0A @ team flags
- .2byte MOVE_GIGA_DRAIN, MOVE_POISON_POWDER, MOVE_STUN_SPORE, MOVE_ACID
- .byte F_EV_SPREAD_SP_ATTACK
- .byte NATURE_BOLD
- .2byte 0 @ padding
-
-@ 38
- .2byte SPECIES_TROPIUS
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x05 @ team flags
- .2byte MOVE_STOMP, MOVE_RAZOR_LEAF, MOVE_GUST, MOVE_SYNTHESIS
- .byte F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 39
- .2byte SPECIES_SABLEYE
- .byte BATTLE_TOWER_ITEM_SPELL_TAG
- .byte 0x0A @ team flags
- .2byte MOVE_NIGHT_SHADE, MOVE_FAKE_OUT, MOVE_PSYCH_UP, MOVE_DETECT
- .byte F_EV_SPREAD_SPEED
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 40
- .2byte SPECIES_ELECTRODE
- .byte BATTLE_TOWER_ITEM_FOCUS_BAND
- .byte 0x03 @ team flags
- .2byte MOVE_SONIC_BOOM, MOVE_SCREECH, MOVE_SPARK, MOVE_SELF_DESTRUCT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE
- .byte NATURE_QUIRKY
- .2byte 0 @ padding
-
-@ 41
- .2byte SPECIES_TENTACRUEL
- .byte BATTLE_TOWER_ITEM_POISON_BARB
- .byte 0x01 @ team flags
- .2byte MOVE_ACID, MOVE_WATER_PULSE, MOVE_BARRIER, MOVE_WRAP
- .byte F_EV_SPREAD_SPEED
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 42
- .2byte SPECIES_CLAYDOL
- .byte BATTLE_TOWER_ITEM_SOFT_SAND
- .byte 0x05 @ team flags
- .2byte MOVE_ANCIENT_POWER, MOVE_MUD_SLAP, MOVE_RAPID_SPIN, MOVE_CONFUSION
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 43
- .2byte SPECIES_GRUMPIG
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x0A @ team flags
- .2byte MOVE_PSYBEAM, MOVE_PSYCH_UP, MOVE_BOUNCE, MOVE_MAGIC_COAT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE
- .byte NATURE_NAUGHTY
- .2byte 0 @ padding
-
-@ 44
- .2byte SPECIES_CRAWDAUNT
- .byte BATTLE_TOWER_ITEM_MENTAL_HERB
- .byte 0x05 @ team flags
- .2byte MOVE_CRABHAMMER, MOVE_BUBBLE_BEAM, MOVE_BRICK_BREAK, MOVE_PROTECT
- .byte F_EV_SPREAD_ATTACK
- .byte NATURE_CALM
- .2byte 0 @ padding
-
-@ 45
- .2byte SPECIES_SEVIPER
- .byte BATTLE_TOWER_ITEM_POISON_BARB
- .byte 0x01 @ team flags
- .2byte MOVE_POISON_TAIL, MOVE_GLARE, MOVE_WRAP, MOVE_THIEF
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 46
- .2byte SPECIES_ZANGOOSE
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x05 @ team flags
- .2byte MOVE_FURY_CUTTER, MOVE_LEER, MOVE_QUICK_ATTACK, MOVE_DETECT
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 47
- .2byte SPECIES_ALTARIA
- .byte BATTLE_TOWER_ITEM_DRAGON_FANG
- .byte 0x03 @ team flags
- .2byte MOVE_DRAGON_BREATH, MOVE_SING, MOVE_SAFEGUARD, MOVE_TAKE_DOWN
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 48
- .2byte SPECIES_ROSELIA
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x0A @ team flags
- .2byte MOVE_LEECH_SEED, MOVE_MEGA_DRAIN, MOVE_GROWTH, MOVE_STUN_SPORE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK
- .byte NATURE_NAUGHTY
- .2byte 0 @ padding
-
-@ 49
- .2byte SPECIES_VOLBEAT
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x09 @ team flags
- .2byte MOVE_SIGNAL_BEAM, MOVE_CONFUSE_RAY, MOVE_DOUBLE_TEAM, MOVE_LIGHT_SCREEN
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 50
- .2byte SPECIES_ILLUMISE
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x09 @ team flags
- .2byte MOVE_CHARM, MOVE_ENCORE, MOVE_SOLAR_BEAM, MOVE_ATTRACT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 51
- .2byte SPECIES_MANECTRIC
- .byte BATTLE_TOWER_ITEM_MAGNET
- .byte 0x03 @ team flags
- .2byte MOVE_BITE, MOVE_HOWL, MOVE_THUNDER_WAVE, MOVE_SPARK
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 52
- .2byte SPECIES_MAWILE
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x0A @ team flags
- .2byte MOVE_CRUNCH, MOVE_IRON_DEFENSE, MOVE_TORMENT, MOVE_SANDSTORM
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_RASH
- .2byte 0 @ padding
-
-@ 53
- .2byte SPECIES_HARIYAMA
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x05 @ team flags
- .2byte MOVE_ARM_THRUST, MOVE_FAKE_OUT, MOVE_WHIRLWIND, MOVE_REVERSAL
- .byte F_EV_SPREAD_ATTACK
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 54
- .2byte SPECIES_SKARMORY
- .byte BATTLE_TOWER_ITEM_METAL_COAT
- .byte 0x01 @ team flags
- .2byte MOVE_STEEL_WING, MOVE_AGILITY, MOVE_TAUNT, MOVE_FLY
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 55
- .2byte SPECIES_TORKOAL
- .byte BATTLE_TOWER_ITEM_PECHA_BERRY
- .byte 0x03 @ team flags
- .2byte MOVE_FIRE_SPIN, MOVE_SMOKESCREEN, MOVE_BODY_SLAM, MOVE_AMNESIA
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_MILD
- .2byte 0 @ padding
-
-@ 56
- .2byte SPECIES_GYARADOS
- .byte BATTLE_TOWER_ITEM_PERSIM_BERRY
- .byte 0x05 @ team flags
- .2byte MOVE_THRASH, MOVE_DRAGON_RAGE, MOVE_TWISTER, MOVE_HYDRO_PUMP
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_QUIRKY
- .2byte 0 @ padding
-
-@ 57
- .2byte SPECIES_MIGHTYENA
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x05 @ team flags
- .2byte MOVE_CRUNCH, MOVE_HOWL, MOVE_IRON_TAIL, MOVE_TORMENT
- .byte F_EV_SPREAD_SP_ATTACK
- .byte NATURE_QUIRKY
- .2byte 0 @ padding
-
-@ 58
- .2byte SPECIES_LINOONE
- .byte BATTLE_TOWER_ITEM_CHERI_BERRY
- .byte 0x06 @ team flags
- .2byte MOVE_SLASH, MOVE_ATTRACT, MOVE_SHOCK_WAVE, MOVE_TOXIC
- .byte F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 59
- .2byte SPECIES_MASQUERAIN
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x0A @ team flags
- .2byte MOVE_TOXIC, MOVE_STUN_SPORE, MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 60
- .2byte SPECIES_SCEPTILE
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x06 @ team flags
- .2byte MOVE_BULLET_SEED, MOVE_SLAM, MOVE_SCREECH, MOVE_DETECT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 61
- .2byte SPECIES_BLAZIKEN
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x06 @ team flags
- .2byte MOVE_DOUBLE_KICK, MOVE_FLAMETHROWER, MOVE_DOUBLE_TEAM, MOVE_ROAR
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 62
- .2byte SPECIES_SWAMPERT
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x49 @ team flags
- .2byte MOVE_SURF, MOVE_MUD_SHOT, MOVE_MUD_SPORT, MOVE_RAIN_DANCE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 63
- .2byte SPECIES_SALAMENCE
- .byte BATTLE_TOWER_ITEM_DRAGON_FANG
- .byte 0x49 @ team flags
- .2byte MOVE_DRAGON_BREATH, MOVE_FLY, MOVE_TOXIC, MOVE_FACADE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_CALM
- .2byte 0 @ padding
-
-@ 64
- .2byte SPECIES_KINGDRA
- .byte BATTLE_TOWER_ITEM_PERSIM_BERRY
- .byte 0x49 @ team flags
- .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_SMOKESCREEN, MOVE_RAIN_DANCE
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 65
- .2byte SPECIES_CORSOLA
- .byte BATTLE_TOWER_ITEM_PERSIM_BERRY
- .byte 0x03 @ team flags
- .2byte MOVE_ANCIENT_POWER, MOVE_MIRROR_COAT, MOVE_SAFEGUARD, MOVE_REFLECT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_BOLD
- .2byte 0 @ padding
-
-@ 66
- .2byte SPECIES_RHYDON
- .byte BATTLE_TOWER_ITEM_FOCUS_BAND
- .byte 0x41 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_IRON_TAIL, MOVE_ROAR, MOVE_THUNDERBOLT
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 67
- .2byte SPECIES_HERACROSS
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x06 @ team flags
- .2byte MOVE_MEGAHORN, MOVE_COUNTER, MOVE_PROTECT, MOVE_LEER
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 68
- .2byte SPECIES_GIRAFARIG
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x09 @ team flags
- .2byte MOVE_PSYCHIC, MOVE_CRUNCH, MOVE_BATON_PASS, MOVE_AGILITY
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 69
- .2byte SPECIES_XATU
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x09 @ team flags
- .2byte MOVE_PSYCHIC, MOVE_FLY, MOVE_CONFUSE_RAY, MOVE_TOXIC
- .byte F_EV_SPREAD_SPEED
- .byte NATURE_BASHFUL
- .2byte 0 @ padding
-
-@ 70
- .2byte SPECIES_DODRIO
- .byte BATTLE_TOWER_ITEM_SHARP_BEAK
- .byte 0x03 @ team flags
- .2byte MOVE_DRILL_PECK, MOVE_TRI_ATTACK, MOVE_PURSUIT, MOVE_TORMENT
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 71
- .2byte SPECIES_VILEPLUME
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x89 @ team flags
- .2byte MOVE_POISON_POWDER, MOVE_STUN_SPORE, MOVE_SLEEP_POWDER, MOVE_PETAL_DANCE
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_MODEST
- .2byte 0 @ padding
-
-@ 72
- .2byte SPECIES_MEDICHAM
- .byte BATTLE_TOWER_ITEM_TWISTED_SPOON
- .byte 0x06 @ team flags
- .2byte MOVE_FOCUS_PUNCH, MOVE_LIGHT_SCREEN, MOVE_BULK_UP, MOVE_PSYCHIC
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_JOLLY
- .2byte 0 @ padding
-
-@ 73
- .2byte SPECIES_ABSOL
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x06 @ team flags
- .2byte MOVE_SLASH, MOVE_SWORDS_DANCE, MOVE_DOUBLE_TEAM, MOVE_ATTRACT
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 74
- .2byte SPECIES_DUSCLOPS
- .byte BATTLE_TOWER_ITEM_SPELL_TAG
- .byte 0x4B @ team flags
- .2byte MOVE_CONFUSE_RAY, MOVE_WILL_O_WISP, MOVE_NIGHT_SHADE, MOVE_DISABLE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 75
- .2byte SPECIES_SHUPPET
- .byte BATTLE_TOWER_ITEM_SPELL_TAG
- .byte 0x43 @ team flags
- .2byte MOVE_GRUDGE, MOVE_SHADOW_BALL, MOVE_CURSE, MOVE_KNOCK_OFF
- .byte F_EV_SPREAD_SP_ATTACK
- .byte NATURE_IMPISH
- .2byte 0 @ padding
-
-@ 76
- .2byte SPECIES_CASTFORM
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x82 @ team flags
- .2byte MOVE_WEATHER_BALL, MOVE_HAIL, MOVE_SUNNY_DAY, MOVE_RAIN_DANCE
- .byte F_EV_SPREAD_SPEED
- .byte NATURE_MODEST
- .2byte 0 @ padding
-
-@ 77
- .2byte SPECIES_MILOTIC
- .byte BATTLE_TOWER_ITEM_DRAGON_FANG
- .byte 0x02 @ team flags
- .2byte MOVE_SURF, MOVE_REFRESH, MOVE_RECOVER, MOVE_RAIN_DANCE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 78
- .2byte SPECIES_SHARPEDO
- .byte BATTLE_TOWER_ITEM_PERSIM_BERRY
- .byte 0x01 @ team flags
- .2byte MOVE_CRUNCH, MOVE_FOCUS_ENERGY, MOVE_SCARY_FACE, MOVE_SCREECH
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 79
- .2byte SPECIES_FLYGON
- .byte BATTLE_TOWER_ITEM_CHERI_BERRY
- .byte 0x06 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_SAND_ATTACK, MOVE_DRAGON_BREATH, MOVE_SAND_TOMB
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_NAUGHTY
- .2byte 0 @ padding
-
-@ 80
- .2byte SPECIES_TRAPINCH
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x09 @ team flags
- .2byte MOVE_TOXIC, MOVE_SAND_TOMB, MOVE_CRUNCH, MOVE_DOUBLE_TEAM
- .byte F_EV_SPREAD_ATTACK
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 81
- .2byte SPECIES_LUNATONE
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x43 @ team flags
- .2byte MOVE_PSYCHIC, MOVE_ROCK_THROW, MOVE_HYPNOSIS, MOVE_LIGHT_SCREEN
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 82
- .2byte SPECIES_SOLROCK
- .byte BATTLE_TOWER_ITEM_PECHA_BERRY
- .byte 0x43 @ team flags
- .2byte MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_COSMIC_POWER, MOVE_CALM_MIND
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 83
- .2byte SPECIES_BALTOY
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x43 @ team flags
- .2byte MOVE_PSYCHIC, MOVE_EARTHQUAKE, MOVE_REFLECT, MOVE_SELF_DESTRUCT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_BASHFUL
- .2byte 0 @ padding
-
-@ 84
- .2byte SPECIES_CRAWDAUNT
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x06 @ team flags
- .2byte MOVE_CRABHAMMER, MOVE_SURF, MOVE_PROTECT, MOVE_BRICK_BREAK
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_RASH
- .2byte 0 @ padding
-
-@ 85
- .2byte SPECIES_WHISCASH
- .byte BATTLE_TOWER_ITEM_ASPEAR_BERRY
- .byte 0x06 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_TICKLE, MOVE_AMNESIA, MOVE_SURF
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 86
- .2byte SPECIES_SEVIPER
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x09 @ team flags
- .2byte MOVE_POISON_TAIL, MOVE_CRUNCH, MOVE_GIGA_DRAIN, MOVE_HAZE
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 87
- .2byte SPECIES_MAGCARGO
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x89 @ team flags
- .2byte MOVE_FLAMETHROWER, MOVE_LIGHT_SCREEN, MOVE_AMNESIA, MOVE_ROCK_SLIDE
- .byte F_EV_SPREAD_ATTACK
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 88
- .2byte SPECIES_MACHAMP
- .byte BATTLE_TOWER_ITEM_BLACK_BELT
- .byte 0x09 @ team flags
- .2byte MOVE_KARATE_CHOP, MOVE_SEISMIC_TOSS, MOVE_BRICK_BREAK, MOVE_LOW_KICK
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 89
- .2byte SPECIES_SWALOT
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x86 @ team flags
- .2byte MOVE_YAWN, MOVE_WATER_PULSE, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_NAUGHTY
- .2byte 0 @ padding
-
-@ 90
- .2byte SPECIES_SCEPTILE
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x0C @ team flags
- .2byte MOVE_LEAF_BLADE, MOVE_GIGA_DRAIN, MOVE_FURY_CUTTER, MOVE_DETECT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 91
- .2byte SPECIES_BLAZIKEN
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x0C @ team flags
- .2byte MOVE_BLAZE_KICK, MOVE_FLAMETHROWER, MOVE_PROTECT, MOVE_QUICK_ATTACK
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 92
- .2byte SPECIES_SWAMPERT
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x4C @ team flags
- .2byte MOVE_SURF, MOVE_MUD_SHOT, MOVE_MUD_SLAP, MOVE_DOUBLE_TEAM
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 93
- .2byte SPECIES_MIGHTYENA
- .byte BATTLE_TOWER_ITEM_BLACK_GLASSES
- .byte 0x04 @ team flags
- .2byte MOVE_CRUNCH, MOVE_HOWL, MOVE_SWAGGER, MOVE_SHADOW_BALL
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_CALM
- .2byte 0 @ padding
-
-@ 94
- .2byte SPECIES_LINOONE
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x04 @ team flags
- .2byte MOVE_SLASH, MOVE_REST, MOVE_BELLY_DRUM, MOVE_THUNDERBOLT
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_MILD
- .2byte 0 @ padding
-
-@ 95
- .2byte SPECIES_BEAUTIFLY
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x08 @ team flags
- .2byte MOVE_GIGA_DRAIN, MOVE_ATTRACT, MOVE_MORNING_SUN, MOVE_STUN_SPORE
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 96
- .2byte SPECIES_DUSTOX
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x08 @ team flags
- .2byte MOVE_PSYCHIC, MOVE_SILVER_WIND, MOVE_MOONLIGHT, MOVE_TOXIC
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 97
- .2byte SPECIES_LUDICOLO
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x0C @ team flags
- .2byte MOVE_FAKE_OUT, MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_UPROAR
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 98
- .2byte SPECIES_SHIFTRY
- .byte BATTLE_TOWER_ITEM_PERSIM_BERRY
- .byte 0x0C @ team flags
- .2byte MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_TORMENT, MOVE_SWAGGER
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 99
- .2byte SPECIES_SWELLOW
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x88 @ team flags
- .2byte MOVE_FLY, MOVE_ENDEAVOR, MOVE_AERIAL_ACE, MOVE_TOXIC
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 100
- .2byte SPECIES_GARDEVOIR
- .byte BATTLE_TOWER_ITEM_BLACK_GLASSES
- .byte 0x4A @ team flags
- .2byte MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_PSYCHIC, MOVE_DOUBLE_TEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 101
- .2byte SPECIES_BRELOOM
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x0C @ team flags
- .2byte MOVE_DYNAMIC_PUNCH, MOVE_MIND_READER, MOVE_SNATCH, MOVE_MEGA_DRAIN
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 102
- .2byte SPECIES_VIGOROTH
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x04 @ team flags
- .2byte MOVE_SLASH, MOVE_UPROAR, MOVE_ENCORE, MOVE_FACADE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_CALM
- .2byte 0 @ padding
-
-@ 103
- .2byte SPECIES_NINJASK
- .byte BATTLE_TOWER_ITEM_SILVER_POWDER
- .byte 0x04 @ team flags
- .2byte MOVE_FURY_CUTTER, MOVE_GIGA_DRAIN, MOVE_SWORDS_DANCE, MOVE_DOUBLE_TEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 104
- .2byte SPECIES_SHEDINJA
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0xCA @ team flags
- .2byte MOVE_CONFUSE_RAY, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_GRUDGE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_JOLLY
- .2byte 0 @ padding
-
-@ 105
- .2byte SPECIES_LOUDRED
- .byte BATTLE_TOWER_ITEM_PECHA_BERRY
- .byte 0x04 @ team flags
- .2byte MOVE_HYPER_VOICE, MOVE_HOWL, MOVE_SHADOW_BALL, MOVE_TORMENT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 106
- .2byte SPECIES_HARIYAMA
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x04 @ team flags
- .2byte MOVE_ARM_THRUST, MOVE_BULK_UP, MOVE_BRICK_BREAK, MOVE_HIDDEN_POWER
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_BASHFUL
- .2byte 0 @ padding
-
-@ 107
- .2byte SPECIES_ALAKAZAM
- .byte BATTLE_TOWER_ITEM_TWISTED_SPOON
- .byte 0x88 @ team flags
- .2byte MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_FUTURE_SIGHT, MOVE_DISABLE
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 108
- .2byte SPECIES_CROBAT
- .byte BATTLE_TOWER_ITEM_CHERI_BERRY
- .byte 0x88 @ team flags
- .2byte MOVE_CONFUSE_RAY, MOVE_TOXIC, MOVE_MEAN_LOOK, MOVE_SNATCH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 109
- .2byte SPECIES_MAWILE
- .byte BATTLE_TOWER_ITEM_METAL_COAT
- .byte 0x04 @ team flags
- .2byte MOVE_CRUNCH, MOVE_IRON_DEFENSE, MOVE_FAKE_TEARS, MOVE_POISON_FANG
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 110
- .2byte SPECIES_AGGRON
- .byte BATTLE_TOWER_ITEM_METAL_COAT
- .byte 0x45 @ team flags
- .2byte MOVE_METAL_CLAW, MOVE_FLAMETHROWER, MOVE_METAL_SOUND, MOVE_ICE_BEAM
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 111
- .2byte SPECIES_GOLEM
- .byte BATTLE_TOWER_ITEM_SOFT_SAND
- .byte 0xC5 @ team flags
- .2byte MOVE_ROLLOUT, MOVE_DEFENSE_CURL, MOVE_DOUBLE_TEAM, MOVE_SELF_DESTRUCT
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 112
- .2byte SPECIES_MANECTRIC
- .byte BATTLE_TOWER_ITEM_MAGNET
- .byte 0x04 @ team flags
- .2byte MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_THUNDER_WAVE, MOVE_CHARGE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 113
- .2byte SPECIES_VOLBEAT
- .byte BATTLE_TOWER_ITEM_SILVER_POWDER
- .byte 0x08 @ team flags
- .2byte MOVE_CONFUSE_RAY, MOVE_SIGNAL_BEAM, MOVE_MOONLIGHT, MOVE_TAIL_GLOW
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 114
- .2byte SPECIES_ILLUMISE
- .byte BATTLE_TOWER_ITEM_SILVER_POWDER
- .byte 0x08 @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_FLATTER, MOVE_WISH, MOVE_ENCORE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 115
- .2byte SPECIES_MASQUERAIN
- .byte BATTLE_TOWER_ITEM_PERSIM_BERRY
- .byte 0x88 @ team flags
- .2byte MOVE_GIGA_DRAIN, MOVE_SILVER_WIND, MOVE_STUN_SPORE, MOVE_TOXIC
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 116
- .2byte SPECIES_ROSELIA
- .byte BATTLE_TOWER_ITEM_MIRACLE_SEED
- .byte 0x08 @ team flags
- .2byte MOVE_PETAL_DANCE, MOVE_GROWTH, MOVE_SYNTHESIS, MOVE_GRASS_WHISTLE
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_IMPISH
- .2byte 0 @ padding
-
-@ 117
- .2byte SPECIES_DELCATTY
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x08 @ team flags
- .2byte MOVE_SING, MOVE_ATTRACT, MOVE_DOUBLE_SLAP, MOVE_HEAL_BELL
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 118
- .2byte SPECIES_SEAKING
- .byte BATTLE_TOWER_ITEM_MYSTIC_WATER
- .byte 0x88 @ team flags
- .2byte MOVE_RAIN_DANCE, MOVE_SURF, MOVE_ATTRACT, MOVE_ICE_BEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 119
- .2byte SPECIES_GYARADOS
- .byte BATTLE_TOWER_ITEM_DRAGON_FANG
- .byte 0x8C @ team flags
- .2byte MOVE_HYDRO_PUMP, MOVE_EARTHQUAKE, MOVE_DRAGON_RAGE, MOVE_PROTECT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_CALM
- .2byte 0 @ padding
-
-@ 120
- .2byte SPECIES_SWALOT
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x42 @ team flags
- .2byte MOVE_STOCKPILE, MOVE_SWALLOW, MOVE_SPIT_UP, MOVE_YAWN
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_NAUGHTY
- .2byte 0 @ padding
-
-@ 121
- .2byte SPECIES_MAGCARGO
- .byte BATTLE_TOWER_ITEM_ASPEAR_BERRY
- .byte 0x41 @ team flags
- .2byte MOVE_ROCK_SLIDE, MOVE_FIRE_BLAST, MOVE_BODY_SLAM, MOVE_LIGHT_SCREEN
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_LONELY
- .2byte 0 @ padding
-
-@ 122
- .2byte SPECIES_MUK
- .byte BATTLE_TOWER_ITEM_POISON_BARB
- .byte 0xC3 @ team flags
- .2byte MOVE_SLUDGE_BOMB, MOVE_FLAMETHROWER, MOVE_ACID_ARMOR, MOVE_DISABLE
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 123
- .2byte SPECIES_SPINDA
- .byte BATTLE_TOWER_ITEM_SILK_SCARF
- .byte 0x42 @ team flags
- .2byte MOVE_DIZZY_PUNCH, MOVE_TEETER_DANCE, MOVE_PSYCH_UP, MOVE_FACADE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_MODEST
- .2byte 0 @ padding
-
-@ 124
- .2byte SPECIES_ALTARIA
- .byte BATTLE_TOWER_ITEM_DRAGON_FANG
- .byte 0x03 @ team flags
- .2byte MOVE_DRAGON_CLAW, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE, MOVE_REFRESH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_RASH
- .2byte 0 @ padding
-
-@ 125
- .2byte SPECIES_ZANGOOSE
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x03 @ team flags
- .2byte MOVE_CRUSH_CLAW, MOVE_TAUNT, MOVE_SWORDS_DANCE, MOVE_DETECT
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_QUIRKY
- .2byte 0 @ padding
-
-@ 126
- .2byte SPECIES_SEVIPER
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x41 @ team flags
- .2byte MOVE_SWAGGER, MOVE_TAUNT, MOVE_GLARE, MOVE_POISON_TAIL
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 127
- .2byte SPECIES_GRUMPIG
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x42 @ team flags
- .2byte MOVE_TOXIC, MOVE_BOUNCE, MOVE_CONFUSE_RAY, MOVE_ATTRACT
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 128
- .2byte SPECIES_CACTURNE
- .byte BATTLE_TOWER_ITEM_MIRACLE_SEED
- .byte 0x41 @ team flags
- .2byte MOVE_NEEDLE_ARM, MOVE_INGRAIN, MOVE_SPIKES, MOVE_COTTON_SPORE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 129
- .2byte SPECIES_CLAYDOL
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x03 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_SANDSTORM, MOVE_COSMIC_POWER, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 130
- .2byte SPECIES_TENTACRUEL
- .byte BATTLE_TOWER_ITEM_MENTAL_HERB
- .byte 0xC1 @ team flags
- .2byte MOVE_SLUDGE_BOMB, MOVE_HYDRO_PUMP, MOVE_BARRIER, MOVE_SUPERSONIC
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 131
- .2byte SPECIES_WIGGLYTUFF
- .byte BATTLE_TOWER_ITEM_RAWST_BERRY
- .byte 0xC3 @ team flags
- .2byte MOVE_SING, MOVE_FOCUS_PUNCH, MOVE_DISABLE, MOVE_FACADE
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 132
- .2byte SPECIES_AZUMARILL
- .byte BATTLE_TOWER_ITEM_CHERI_BERRY
- .byte 0xC2 @ team flags
- .2byte MOVE_SURF, MOVE_ATTRACT, MOVE_DEFENSE_CURL, MOVE_ROLLOUT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_RASH
- .2byte 0 @ padding
-
-@ 133
- .2byte SPECIES_ELECTRODE
- .byte BATTLE_TOWER_ITEM_CHERI_BERRY
- .byte 0xC3 @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_MIRROR_COAT, MOVE_LIGHT_SCREEN, MOVE_SELF_DESTRUCT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 134
- .2byte SPECIES_MILOTIC
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x42 @ team flags
- .2byte MOVE_HYDRO_PUMP, MOVE_ATTRACT, MOVE_RECOVER, MOVE_REFRESH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_JOLLY
- .2byte 0 @ padding
-
-@ 135
- .2byte SPECIES_KECLEON
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x43 @ team flags
- .2byte MOVE_SKILL_SWAP, MOVE_ANCIENT_POWER, MOVE_WATER_PULSE, MOVE_THUNDERBOLT
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_NAUGHTY
- .2byte 0 @ padding
-
-@ 136
- .2byte SPECIES_DUSCLOPS
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x43 @ team flags
- .2byte MOVE_CONFUSE_RAY, MOVE_CURSE, MOVE_REST, MOVE_MEAN_LOOK
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_BASHFUL
- .2byte 0 @ padding
-
-@ 137
- .2byte SPECIES_ABSOL
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x41 @ team flags
- .2byte MOVE_SLASH, MOVE_SWORDS_DANCE, MOVE_DOUBLE_TEAM, MOVE_SNATCH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 138
- .2byte SPECIES_NINETALES
- .byte BATTLE_TOWER_ITEM_APICOT_BERRY
- .byte 0xC2 @ team flags
- .2byte MOVE_FLAMETHROWER, MOVE_CONFUSE_RAY, MOVE_DOUBLE_TEAM, MOVE_WILL_O_WISP
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 139
- .2byte SPECIES_PIKACHU
- .byte BATTLE_TOWER_ITEM_LIGHT_BALL
- .byte 0xC2 @ team flags
- .2byte MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_ATTRACT
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 140
- .2byte SPECIES_VILEPLUME
- .byte BATTLE_TOWER_ITEM_ASPEAR_BERRY
- .byte 0xC3 @ team flags
- .2byte MOVE_GIGA_DRAIN, MOVE_SLEEP_POWDER, MOVE_MOONLIGHT, MOVE_SLUDGE_BOMB
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 141
- .2byte SPECIES_DONPHAN
- .byte BATTLE_TOWER_ITEM_PERSIM_BERRY
- .byte 0x41 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_DOUBLE_EDGE, MOVE_IRON_TAIL, MOVE_FISSURE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_QUIRKY
- .2byte 0 @ padding
-
-@ 142
- .2byte SPECIES_STARMIE
- .byte BATTLE_TOWER_ITEM_CHERI_BERRY
- .byte 0xC3 @ team flags
- .2byte MOVE_CONFUSE_RAY, MOVE_ICE_BEAM, MOVE_RECOVER, MOVE_DOUBLE_TEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 143
- .2byte SPECIES_WALREIN
- .byte BATTLE_TOWER_ITEM_NEVER_MELT_ICE
- .byte 0x43 @ team flags
- .2byte MOVE_ICE_BEAM, MOVE_BODY_SLAM, MOVE_ENCORE, MOVE_HAIL
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 144
- .2byte SPECIES_RELICANTH
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x41 @ team flags
- .2byte MOVE_YAWN, MOVE_MUD_SPORT, MOVE_DOUBLE_EDGE, MOVE_SANDSTORM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_LONELY
- .2byte 0 @ padding
-
-@ 145
- .2byte SPECIES_KINGDRA
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x43 @ team flags
- .2byte MOVE_RAIN_DANCE, MOVE_ICE_BEAM, MOVE_HYDRO_PUMP, MOVE_AGILITY
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 146
- .2byte SPECIES_CRADILY
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x43 @ team flags
- .2byte MOVE_CONFUSE_RAY, MOVE_INGRAIN, MOVE_ANCIENT_POWER, MOVE_GIGA_DRAIN
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_MILD
- .2byte 0 @ padding
-
-@ 147
- .2byte SPECIES_ARMALDO
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x43 @ team flags
- .2byte MOVE_SLASH, MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_WATER_PULSE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 148
- .2byte SPECIES_METAGROSS
- .byte BATTLE_TOWER_ITEM_METAL_COAT
- .byte 0x41 @ team flags
- .2byte MOVE_METAL_CLAW, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN, MOVE_AGILITY
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 149
- .2byte SPECIES_SALAMENCE
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x42 @ team flags
- .2byte MOVE_DRAGON_BREATH, MOVE_CRUNCH, MOVE_FLAMETHROWER, MOVE_AERIAL_ACE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 150
- .2byte SPECIES_MIGHTYENA
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x01 @ team flags
- .2byte MOVE_CRUNCH, MOVE_YAWN, MOVE_FACADE, MOVE_HOWL
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 151
- .2byte SPECIES_LINOONE
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x02 @ team flags
- .2byte MOVE_HYPER_BEAM, MOVE_FACADE, MOVE_ATTRACT, MOVE_TRICK
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 152
- .2byte SPECIES_LUDICOLO
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x03 @ team flags
- .2byte MOVE_SURF, MOVE_FOCUS_PUNCH, MOVE_FAKE_OUT, MOVE_SYNTHESIS
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 153
- .2byte SPECIES_EXPLOUD
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x01 @ team flags
- .2byte MOVE_UPROAR, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_FLAMETHROWER
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 154
- .2byte SPECIES_SWELLOW
- .byte BATTLE_TOWER_ITEM_LANSAT_BERRY
- .byte 0x02 @ team flags
- .2byte MOVE_FACADE, MOVE_SUPERSONIC, MOVE_WING_ATTACK, MOVE_ENDEAVOR
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 155
- .2byte SPECIES_PELIPPER
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x82 @ team flags
- .2byte MOVE_STOCKPILE, MOVE_SWALLOW, MOVE_SPIT_UP, MOVE_ATTRACT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 156
- .2byte SPECIES_BRELOOM
- .byte BATTLE_TOWER_ITEM_FOCUS_BAND
- .byte 0x01 @ team flags
- .2byte MOVE_DYNAMIC_PUNCH, MOVE_COUNTER, MOVE_BULK_UP, MOVE_MIND_READER
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 157
- .2byte SPECIES_SHEDINJA
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x01 @ team flags
- .2byte MOVE_RETURN, MOVE_DOUBLE_TEAM, MOVE_TOXIC, MOVE_SHADOW_BALL
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 158
- .2byte SPECIES_EXPLOUD
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x01 @ team flags
- .2byte MOVE_HYPER_BEAM, MOVE_SUPERSONIC, MOVE_FLAMETHROWER, MOVE_ICE_BEAM
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 159
- .2byte SPECIES_HARIYAMA
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x01 @ team flags
- .2byte MOVE_CROSS_CHOP, MOVE_COUNTER, MOVE_FACADE, MOVE_FAKE_OUT
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 160
- .2byte SPECIES_ALAKAZAM
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x83 @ team flags
- .2byte MOVE_PSYCHIC, MOVE_ENCORE, MOVE_DISABLE, MOVE_RECOVER
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 161
- .2byte SPECIES_CROBAT
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x81 @ team flags
- .2byte MOVE_CONFUSE_RAY, MOVE_AIR_CUTTER, MOVE_TORMENT, MOVE_DOUBLE_TEAM
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 162
- .2byte SPECIES_SABLEYE
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x83 @ team flags
- .2byte MOVE_TOXIC, MOVE_DETECT, MOVE_RECOVER, MOVE_TORMENT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 163
- .2byte SPECIES_MAWILE
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x02 @ team flags
- .2byte MOVE_CRUNCH, MOVE_SWORDS_DANCE, MOVE_IRON_DEFENSE, MOVE_REST
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 164
- .2byte SPECIES_AGGRON
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x01 @ team flags
- .2byte MOVE_DOUBLE_EDGE, MOVE_IRON_DEFENSE, MOVE_ROAR, MOVE_EARTHQUAKE
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 165
- .2byte SPECIES_GOLEM
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x01 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_FLAMETHROWER, MOVE_FACADE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 166
- .2byte SPECIES_NOSEPASS
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x81 @ team flags
- .2byte MOVE_THUNDER_WAVE, MOVE_ROCK_SLIDE, MOVE_TORMENT, MOVE_ATTRACT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 167
- .2byte SPECIES_MANECTRIC
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x02 @ team flags
- .2byte MOVE_THUNDER, MOVE_CRUNCH, MOVE_THUNDER_WAVE, MOVE_QUICK_ATTACK
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_JOLLY
- .2byte 0 @ padding
-
-@ 168
- .2byte SPECIES_ROSELIA
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x82 @ team flags
- .2byte MOVE_GRASS_WHISTLE, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_GROWTH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 169
- .2byte SPECIES_DELCATTY
- .byte BATTLE_TOWER_ITEM_STARF_BERRY
- .byte 0x02 @ team flags
- .2byte MOVE_ASSIST, MOVE_SING, MOVE_ATTRACT, MOVE_SUBSTITUTE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 170
- .2byte SPECIES_TROPIUS
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0xC2 @ team flags
- .2byte MOVE_RAZOR_LEAF, MOVE_EARTHQUAKE, MOVE_ATTRACT, MOVE_SYNTHESIS
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_JOLLY
- .2byte 0 @ padding
-
-@ 171
- .2byte SPECIES_SWALOT
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x03 @ team flags
- .2byte MOVE_YAWN, MOVE_SLUDGE_BOMB, MOVE_ATTRACT, MOVE_ICE_BEAM
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 172
- .2byte SPECIES_MACHAMP
- .byte BATTLE_TOWER_ITEM_BLACK_BELT
- .byte 0x01 @ team flags
- .2byte MOVE_CROSS_CHOP, MOVE_BULK_UP, MOVE_LOW_KICK, MOVE_BRICK_BREAK
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_BASHFUL
- .2byte 0 @ padding
-
-@ 173
- .2byte SPECIES_CAMERUPT
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x40 @ team flags
- .2byte MOVE_ERUPTION, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_OVERHEAT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 174
- .2byte SPECIES_MAGCARGO
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x03 @ team flags
- .2byte MOVE_FLAMETHROWER, MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_REFLECT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 175
- .2byte SPECIES_WEEZING
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x81 @ team flags
- .2byte MOVE_WILL_O_WISP, MOVE_HYPER_BEAM, MOVE_THUNDERBOLT, MOVE_DESTINY_BOND
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 176
- .2byte SPECIES_SPINDA
- .byte BATTLE_TOWER_ITEM_CHOICE_BAND
- .byte 0x82 @ team flags
- .2byte MOVE_TRICK, MOVE_TEETER_DANCE, MOVE_FOCUS_PUNCH, MOVE_FACADE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 177
- .2byte SPECIES_SKARMORY
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x01 @ team flags
- .2byte MOVE_DRILL_PECK, MOVE_STEEL_WING, MOVE_TORMENT, MOVE_PROTECT
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 178
- .2byte SPECIES_ALTARIA
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x02 @ team flags
- .2byte MOVE_SING, MOVE_DRAGON_CLAW, MOVE_ICE_BEAM, MOVE_EARTHQUAKE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 179
- .2byte SPECIES_GRUMPIG
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x82 @ team flags
- .2byte MOVE_PSYCHIC, MOVE_CONFUSE_RAY, MOVE_CALM_MIND, MOVE_REST
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 180
- .2byte SPECIES_SHIFTRY
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x20 @ team flags
- .2byte MOVE_SWAGGER, MOVE_FRUSTRATION, MOVE_ATTRACT, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 181
- .2byte SPECIES_CLAYDOL
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x20 @ team flags
- .2byte MOVE_COSMIC_POWER, MOVE_PSYCHIC, MOVE_EARTHQUAKE, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 182
- .2byte SPECIES_HARIYAMA
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x33 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_COUNTER, MOVE_BELLY_DRUM, MOVE_REST
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 183
- .2byte SPECIES_NOSEPASS
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x20 @ team flags
- .2byte MOVE_ROCK_SLIDE, MOVE_THUNDER_WAVE, MOVE_EARTHQUAKE, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 184
- .2byte SPECIES_DUSCLOPS
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x33 @ team flags
- .2byte MOVE_SHADOW_PUNCH, MOVE_WILL_O_WISP, MOVE_CONFUSE_RAY, MOVE_DESTINY_BOND
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 185
- .2byte SPECIES_SEAKING
- .byte BATTLE_TOWER_ITEM_LEPPA_BERRY
- .byte 0x20 @ team flags
- .2byte MOVE_HORN_DRILL, MOVE_AGILITY, MOVE_SLEEP_TALK, MOVE_REST
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 186
- .2byte SPECIES_CAMERUPT
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x73 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_ERUPTION, MOVE_ROCK_SLIDE, MOVE_FISSURE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 187
- .2byte SPECIES_LANTURN
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x13 @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_SURF, MOVE_THUNDER_WAVE, MOVE_CONFUSE_RAY
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 188
- .2byte SPECIES_WEEZING
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x33 @ team flags
- .2byte MOVE_SLUDGE_BOMB, MOVE_THUNDERBOLT, MOVE_FIRE_BLAST, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 189
- .2byte SPECIES_WHISCASH
- .byte BATTLE_TOWER_ITEM_LEPPA_BERRY
- .byte 0x20 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_SURF, MOVE_SPARK, MOVE_FISSURE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 190
- .2byte SPECIES_AGGRON
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x51 @ team flags
- .2byte MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_SURF, MOVE_DRAGON_CLAW
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 191
- .2byte SPECIES_KECLEON
- .byte BATTLE_TOWER_ITEM_CHOICE_BAND
- .byte 0x12 @ team flags
- .2byte MOVE_TRICK, MOVE_FOCUS_PUNCH, MOVE_ATTRACT, MOVE_SNATCH
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_MILD
- .2byte 0 @ padding
-
-@ 192
- .2byte SPECIES_SHARPEDO
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x11 @ team flags
- .2byte MOVE_CRUNCH, MOVE_DOUBLE_EDGE, MOVE_SURF, MOVE_SWAGGER
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 193
- .2byte SPECIES_ABSOL
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x12 @ team flags
- .2byte MOVE_DOUBLE_EDGE, MOVE_FACADE, MOVE_SWORDS_DANCE, MOVE_QUICK_ATTACK
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 194
- .2byte SPECIES_WAILORD
- .byte BATTLE_TOWER_ITEM_LEPPA_BERRY
- .byte 0x72 @ team flags
- .2byte MOVE_HYDRO_PUMP, MOVE_EARTHQUAKE, MOVE_ATTRACT, MOVE_FISSURE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 195
- .2byte SPECIES_TENTACRUEL
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x20 @ team flags
- .2byte MOVE_HYDRO_PUMP, MOVE_SLUDGE_BOMB, MOVE_BARRIER, MOVE_MIRROR_COAT
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_JOLLY
- .2byte 0 @ padding
-
-@ 196
- .2byte SPECIES_SABLEYE
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x32 @ team flags
- .2byte MOVE_SHADOW_BALL, MOVE_TOXIC, MOVE_RECOVER, MOVE_DOUBLE_TEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 197
- .2byte SPECIES_WOBBUFFET
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x20 @ team flags
- .2byte MOVE_ENCORE, MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_DESTINY_BOND
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_MILD
- .2byte 0 @ padding
-
-@ 198
- .2byte SPECIES_RHYDON
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x71 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_MEGAHORN, MOVE_BRICK_BREAK, MOVE_HORN_DRILL
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 199
- .2byte SPECIES_GLALIE
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x31 @ team flags
- .2byte MOVE_CRUNCH, MOVE_BLIZZARD, MOVE_HAIL, MOVE_SHEER_COLD
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_BASHFUL
- .2byte 0 @ padding
-
-@ 200
- .2byte SPECIES_SCEPTILE
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x8C @ team flags
- .2byte MOVE_LEAF_BLADE, MOVE_EARTHQUAKE, MOVE_DRAGON_CLAW, MOVE_CRUNCH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 201
- .2byte SPECIES_BLAZIKEN
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x8C @ team flags
- .2byte MOVE_BLAZE_KICK, MOVE_COUNTER, MOVE_ENDURE, MOVE_REVERSAL
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 202
- .2byte SPECIES_SWAMPERT
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x8C @ team flags
- .2byte MOVE_SURF, MOVE_EARTHQUAKE, MOVE_MIRROR_COAT, MOVE_BLIZZARD
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 203
- .2byte SPECIES_GARDEVOIR
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x1A @ team flags
- .2byte MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_DESTINY_BOND, MOVE_SNATCH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 204
- .2byte SPECIES_BRELOOM
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x15 @ team flags
- .2byte MOVE_SPORE, MOVE_FOCUS_PUNCH, MOVE_MACH_PUNCH, MOVE_ATTRACT
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 205
- .2byte SPECIES_ALAKAZAM
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x58 @ team flags
- .2byte MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_RECOVER
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 206
- .2byte SPECIES_HARIYAMA
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x15 @ team flags
- .2byte MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FAKE_OUT
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 207
- .2byte SPECIES_GYARADOS
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x55 @ team flags
- .2byte MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_SURF, MOVE_ICE_BEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_BOLD
- .2byte 0 @ padding
-
-@ 208
- .2byte SPECIES_CROBAT
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x58 @ team flags
- .2byte MOVE_SLUDGE_BOMB, MOVE_CONFUSE_RAY, MOVE_AIR_CUTTER, MOVE_DOUBLE_TEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 209
- .2byte SPECIES_MACHAMP
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x5D @ team flags
- .2byte MOVE_CROSS_CHOP, MOVE_FLAMETHROWER, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 210
- .2byte SPECIES_MANECTRIC
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x1A @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_ROAR, MOVE_CRUNCH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 211
- .2byte SPECIES_ELECTRODE
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x60 @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_MIRROR_COAT, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_BASHFUL
- .2byte 0 @ padding
-
-@ 212
- .2byte SPECIES_MUK
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x64 @ team flags
- .2byte MOVE_SLUDGE_BOMB, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_EXPLOSION
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 213
- .2byte SPECIES_FLYGON
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x1C @ team flags
- .2byte MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER, MOVE_CRUNCH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 214
- .2byte SPECIES_STARMIE
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x5C @ team flags
- .2byte MOVE_SURF, MOVE_THUNDERBOLT, MOVE_RECOVER, MOVE_CONFUSE_RAY
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 215
- .2byte SPECIES_NINETALES
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x4A @ team flags
- .2byte MOVE_CONFUSE_RAY, MOVE_TOXIC, MOVE_FIRE_SPIN, MOVE_HEAT_WAVE
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 216
- .2byte SPECIES_RAICHU
- .byte BATTLE_TOWER_ITEM_FOCUS_BAND
- .byte 0x5A @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_REVERSAL, MOVE_IRON_TAIL
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 217
- .2byte SPECIES_GOLDUCK
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x55 @ team flags
- .2byte MOVE_SURF, MOVE_CROSS_CHOP, MOVE_ICE_BEAM, MOVE_DIG
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_JOLLY
- .2byte 0 @ padding
-
-@ 218
- .2byte SPECIES_HERACROSS
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x5D @ team flags
- .2byte MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_ENDURE, MOVE_REVERSAL
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 219
- .2byte SPECIES_WALREIN
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x26 @ team flags
- .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_SHEER_COLD
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 220
- .2byte SPECIES_KINGDRA
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x5B @ team flags
- .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_DRAGON_BREATH, MOVE_REST
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 221
- .2byte SPECIES_SALAMENCE
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x0D @ team flags
- .2byte MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_FIRE_BLAST
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_NAUGHTY
- .2byte 0 @ padding
-
-@ 222
- .2byte SPECIES_METAGROSS
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x3D @ team flags
- .2byte MOVE_METEOR_MASH, MOVE_PSYCHIC, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 223
- .2byte SPECIES_REGIROCK
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x3C @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_THUNDERBOLT, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 224
- .2byte SPECIES_REGICE
- .byte BATTLE_TOWER_ITEM_LAX_INCENSE
- .byte 0x3C @ team flags
- .2byte MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 225
- .2byte SPECIES_REGISTEEL
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x3C @ team flags
- .2byte MOVE_METAL_CLAW, MOVE_EARTHQUAKE, MOVE_THUNDERBOLT, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 226
- .2byte SPECIES_LATIAS
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x0E @ team flags
- .2byte MOVE_MIST_BALL, MOVE_THUNDERBOLT, MOVE_RECOVER, MOVE_DRAGON_CLAW
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 227
- .2byte SPECIES_LATIOS
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x0D @ team flags
- .2byte MOVE_LUSTER_PURGE, MOVE_THUNDERBOLT, MOVE_RECOVER, MOVE_DRAGON_CLAW
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 228
- .2byte SPECIES_MILOTIC
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x1A @ team flags
- .2byte MOVE_SURF, MOVE_TOXIC, MOVE_RECOVER, MOVE_MIRROR_COAT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 229
- .2byte SPECIES_SLAKING
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x15 @ team flags
- .2byte MOVE_YAWN, MOVE_FOCUS_PUNCH, MOVE_COUNTER, MOVE_SLACK_OFF
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 230
- .2byte SPECIES_SCEPTILE
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x8C @ team flags
- .2byte MOVE_GIGA_DRAIN, MOVE_DOUBLE_TEAM, MOVE_LEECH_SEED, MOVE_ATTRACT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 231
- .2byte SPECIES_BLAZIKEN
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x8C @ team flags
- .2byte MOVE_BLAZE_KICK, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_QUICK_ATTACK
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 232
- .2byte SPECIES_SWAMPERT
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x8C @ team flags
- .2byte MOVE_MUDDY_WATER, MOVE_MUD_SHOT, MOVE_MIRROR_COAT, MOVE_ICE_BEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 233
- .2byte SPECIES_GARDEVOIR
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x0A @ team flags
- .2byte MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_HYPNOSIS, MOVE_DREAM_EATER
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 234
- .2byte SPECIES_BRELOOM
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x05 @ team flags
- .2byte MOVE_SPORE, MOVE_COUNTER, MOVE_SKY_UPPERCUT, MOVE_GIGA_DRAIN
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 235
- .2byte SPECIES_ALAKAZAM
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x58 @ team flags
- .2byte MOVE_PSYCHIC, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_RECOVER
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 236
- .2byte SPECIES_HARIYAMA
- .byte BATTLE_TOWER_ITEM_FOCUS_BAND
- .byte 0x04 @ team flags
- .2byte MOVE_CROSS_CHOP, MOVE_COUNTER, MOVE_ENDURE, MOVE_REVERSAL
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 237
- .2byte SPECIES_GYARADOS
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x44 @ team flags
- .2byte MOVE_HYPER_BEAM, MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_ICE_BEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_BOLD
- .2byte 0 @ padding
-
-@ 238
- .2byte SPECIES_CROBAT
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x48 @ team flags
- .2byte MOVE_TOXIC, MOVE_CONFUSE_RAY, MOVE_ATTRACT, MOVE_FLY
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 239
- .2byte SPECIES_MACHAMP
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x5D @ team flags
- .2byte MOVE_CROSS_CHOP, MOVE_COUNTER, MOVE_EARTHQUAKE, MOVE_FACADE
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 240
- .2byte SPECIES_MANECTRIC
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x0A @ team flags
- .2byte MOVE_THUNDER, MOVE_THUNDER_WAVE, MOVE_QUICK_ATTACK, MOVE_CRUNCH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 241
- .2byte SPECIES_ELECTRODE
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x60 @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_LIGHT_SCREEN, MOVE_MIRROR_COAT, MOVE_EXPLOSION
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_BASHFUL
- .2byte 0 @ padding
-
-@ 242
- .2byte SPECIES_MUK
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x64 @ team flags
- .2byte MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN, MOVE_FLAMETHROWER, MOVE_EXPLOSION
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 243
- .2byte SPECIES_FLYGON
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x1C @ team flags
- .2byte MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_IRON_TAIL, MOVE_CRUNCH
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 244
- .2byte SPECIES_STARMIE
- .byte BATTLE_TOWER_ITEM_APICOT_BERRY
- .byte 0x5C @ team flags
- .2byte MOVE_BLIZZARD, MOVE_THUNDERBOLT, MOVE_PSYCHIC, MOVE_RECOVER
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 245
- .2byte SPECIES_DODRIO
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x5A @ team flags
- .2byte MOVE_DRILL_PECK, MOVE_TRI_ATTACK, MOVE_AGILITY, MOVE_FACADE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 246
- .2byte SPECIES_RAICHU
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x4A @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_ATTRACT, MOVE_FOCUS_PUNCH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 247
- .2byte SPECIES_GOLDUCK
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x45 @ team flags
- .2byte MOVE_HYDRO_PUMP, MOVE_CROSS_CHOP, MOVE_BLIZZARD, MOVE_ATTRACT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 248
- .2byte SPECIES_HERACROSS
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x5D @ team flags
- .2byte MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_COUNTER, MOVE_REVERSAL
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 249
- .2byte SPECIES_WALREIN
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x26 @ team flags
- .2byte MOVE_SURF, MOVE_BLIZZARD, MOVE_ROCK_SLIDE, MOVE_SHEER_COLD
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 250
- .2byte SPECIES_KINGDRA
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x5C @ team flags
- .2byte MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_DRAGON_BREATH, MOVE_ATTRACT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 251
- .2byte SPECIES_SALAMENCE
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x1D @ team flags
- .2byte MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 252
- .2byte SPECIES_METAGROSS
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x3D @ team flags
- .2byte MOVE_METEOR_MASH, MOVE_PSYCHIC, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 253
- .2byte SPECIES_REGIROCK
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x3C @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_THUNDERBOLT, MOVE_FOCUS_PUNCH, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 254
- .2byte SPECIES_REGICE
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x3C @ team flags
- .2byte MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_HAIL, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 255
- .2byte SPECIES_REGISTEEL
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x3C @ team flags
- .2byte MOVE_METAL_CLAW, MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 256
- .2byte SPECIES_LATIAS
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x1E @ team flags
- .2byte MOVE_MIST_BALL, MOVE_ICE_BEAM, MOVE_RECOVER, MOVE_DRAGON_CLAW
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 257
- .2byte SPECIES_LATIOS
- .byte BATTLE_TOWER_ITEM_LAX_INCENSE
- .byte 0x1D @ team flags
- .2byte MOVE_LUSTER_PURGE, MOVE_ICE_BEAM, MOVE_RECOVER, MOVE_DRAGON_CLAW
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 258
- .2byte SPECIES_MILOTIC
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x1A @ team flags
- .2byte MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_RECOVER, MOVE_MIRROR_COAT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 259
- .2byte SPECIES_SLAKING
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x15 @ team flags
- .2byte MOVE_YAWN, MOVE_FOCUS_PUNCH, MOVE_COUNTER, MOVE_PURSUIT
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 260
- .2byte SPECIES_SCEPTILE
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x8C @ team flags
- .2byte MOVE_LEAF_BLADE, MOVE_ROCK_TOMB, MOVE_DRAGON_CLAW, MOVE_CRUNCH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 261
- .2byte SPECIES_BLAZIKEN
- .byte BATTLE_TOWER_ITEM_GANLON_BERRY
- .byte 0x8C @ team flags
- .2byte MOVE_FOCUS_PUNCH, MOVE_COUNTER, MOVE_SWAGGER, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 262
- .2byte SPECIES_SWAMPERT
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x8C @ team flags
- .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_ATTRACT, MOVE_REST
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 263
- .2byte SPECIES_GARDEVOIR
- .byte BATTLE_TOWER_ITEM_LAX_INCENSE
- .byte 0x0A @ team flags
- .2byte MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ATTRACT, MOVE_WILL_O_WISP
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 264
- .2byte SPECIES_BRELOOM
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x05 @ team flags
- .2byte MOVE_SPORE, MOVE_FOCUS_PUNCH, MOVE_MACH_PUNCH, MOVE_COUNTER
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 265
- .2byte SPECIES_ALAKAZAM
- .byte BATTLE_TOWER_ITEM_CHOICE_BAND
- .byte 0x58 @ team flags
- .2byte MOVE_PSYCHIC, MOVE_TRICK, MOVE_RECOVER, MOVE_SNATCH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 266
- .2byte SPECIES_HARIYAMA
- .byte BATTLE_TOWER_ITEM_FOCUS_BAND
- .byte 0x05 @ team flags
- .2byte MOVE_REVENGE, MOVE_COUNTER, MOVE_FOCUS_PUNCH, MOVE_REVERSAL
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 267
- .2byte SPECIES_LUDICOLO
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x0A @ team flags
- .2byte MOVE_RAIN_DANCE, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_DIVE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 268
- .2byte SPECIES_CROBAT
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x48 @ team flags
- .2byte MOVE_SLUDGE_BOMB, MOVE_CONFUSE_RAY, MOVE_SHADOW_BALL, MOVE_SNATCH
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 269
- .2byte SPECIES_MACHAMP
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x5D @ team flags
- .2byte MOVE_CROSS_CHOP, MOVE_FIRE_BLAST, MOVE_LOW_KICK, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 270
- .2byte SPECIES_MANECTRIC
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x08 @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_ATTRACT, MOVE_CRUNCH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 271
- .2byte SPECIES_ELECTRODE
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x60 @ team flags
- .2byte MOVE_THUNDER, MOVE_SWIFT, MOVE_MIRROR_COAT, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_BASHFUL
- .2byte 0 @ padding
-
-@ 272
- .2byte SPECIES_MUK
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x64 @ team flags
- .2byte MOVE_SLUDGE_BOMB, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_PUNCH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 273
- .2byte SPECIES_FLYGON
- .byte BATTLE_TOWER_ITEM_LAX_INCENSE
- .byte 0x0C @ team flags
- .2byte MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FIRE_BLAST, MOVE_SANDSTORM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 274
- .2byte SPECIES_STARMIE
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x4C @ team flags
- .2byte MOVE_SURF, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_PSYCHIC
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 275
- .2byte SPECIES_LUDICOLO
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x4A @ team flags
- .2byte MOVE_LEECH_SEED, MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_PROTECT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 276
- .2byte SPECIES_SKARMORY
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x4B @ team flags
- .2byte MOVE_DRILL_PECK, MOVE_STEEL_WING, MOVE_ATTRACT, MOVE_PURSUIT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 277
- .2byte SPECIES_GOLDUCK
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x49 @ team flags
- .2byte MOVE_SURF, MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_CROSS_CHOP
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_JOLLY
- .2byte 0 @ padding
-
-@ 278
- .2byte SPECIES_HERACROSS
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x5D @ team flags
- .2byte MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 279
- .2byte SPECIES_WALREIN
- .byte BATTLE_TOWER_ITEM_LEPPA_BERRY
- .byte 0x26 @ team flags
- .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_FISSURE, MOVE_SHEER_COLD
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 280
- .2byte SPECIES_KINGDRA
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x5C @ team flags
- .2byte MOVE_SURF, MOVE_BLIZZARD, MOVE_HYPER_BEAM, MOVE_FLAIL
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 281
- .2byte SPECIES_SALAMENCE
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x1D @ team flags
- .2byte MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FIRE_BLAST, MOVE_HYDRO_PUMP
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_NAUGHTY
- .2byte 0 @ padding
-
-@ 282
- .2byte SPECIES_METAGROSS
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x3D @ team flags
- .2byte MOVE_METEOR_MASH, MOVE_PSYCHIC, MOVE_EARTHQUAKE, MOVE_HYPER_BEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 283
- .2byte SPECIES_REGIROCK
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x3C @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_THUNDERBOLT, MOVE_SUPERPOWER, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 284
- .2byte SPECIES_REGICE
- .byte BATTLE_TOWER_ITEM_LAX_INCENSE
- .byte 0x3C @ team flags
- .2byte MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_ANCIENT_POWER, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 285
- .2byte SPECIES_REGISTEEL
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x3C @ team flags
- .2byte MOVE_METAL_CLAW, MOVE_THUNDERBOLT, MOVE_HYPER_BEAM, MOVE_EXPLOSION
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 286
- .2byte SPECIES_LATIAS
- .byte BATTLE_TOWER_ITEM_APICOT_BERRY
- .byte 0x1E @ team flags
- .2byte MOVE_MIST_BALL, MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_ICE_BEAM
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 287
- .2byte SPECIES_LATIOS
- .byte BATTLE_TOWER_ITEM_GANLON_BERRY
- .byte 0x1D @ team flags
- .2byte MOVE_LUSTER_PURGE, MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_ICE_BEAM
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 288
- .2byte SPECIES_MILOTIC
- .byte BATTLE_TOWER_ITEM_APICOT_BERRY
- .byte 0x1A @ team flags
- .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_RECOVER, MOVE_ATTRACT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 289
- .2byte SPECIES_ALTARIA
- .byte BATTLE_TOWER_ITEM_GANLON_BERRY
- .byte 0x0A @ team flags
- .2byte MOVE_DRAGON_CLAW, MOVE_ICE_BEAM, MOVE_SING, MOVE_FLAMETHROWER
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 290
- .2byte SPECIES_SCEPTILE
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x9C @ team flags
- .2byte MOVE_LEAF_BLADE, MOVE_DETECT, MOVE_DRAGON_CLAW, MOVE_CRUNCH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 291
- .2byte SPECIES_BLAZIKEN
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x9C @ team flags
- .2byte MOVE_BLAZE_KICK, MOVE_SKY_UPPERCUT, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 292
- .2byte SPECIES_SWAMPERT
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x9C @ team flags
- .2byte MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 293
- .2byte SPECIES_SHEDINJA
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x20 @ team flags
- .2byte MOVE_CONFUSE_RAY, MOVE_SHADOW_BALL, MOVE_TOXIC, MOVE_GRUDGE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 294
- .2byte SPECIES_METAGROSS
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x1D @ team flags
- .2byte MOVE_METEOR_MASH, MOVE_EARTHQUAKE, MOVE_DOUBLE_TEAM, MOVE_PROTECT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 295
- .2byte SPECIES_ALAKAZAM
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x58 @ team flags
- .2byte MOVE_PSYCHIC, MOVE_THUNDER_PUNCH, MOVE_ICE_PUNCH, MOVE_FIRE_PUNCH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 296
- .2byte SPECIES_LATIAS
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x1E @ team flags
- .2byte MOVE_MIST_BALL, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_DRAGON_CLAW
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 297
- .2byte SPECIES_LATIOS
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x1D @ team flags
- .2byte MOVE_LUSTER_PURGE, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_DRAGON_CLAW
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 298
- .2byte SPECIES_SALAMENCE
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x1D @ team flags
- .2byte MOVE_DRAGON_CLAW, MOVE_FLAMETHROWER, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 299
- .2byte SPECIES_MACHAMP
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x5D @ team flags
- .2byte MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_LOW_KICK, MOVE_ROCK_SLIDE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
diff --git a/data/battle_tower/level_50_mons.inc b/data/battle_tower/level_50_mons.inc
deleted file mode 100644
index 3dfc269a8..000000000
--- a/data/battle_tower/level_50_mons.inc
+++ /dev/null
@@ -1,2701 +0,0 @@
- .align 2
-gBattleTowerLevel50Mons:: @ 84038E0
-@ 0
- .2byte SPECIES_PIKACHU
- .byte BATTLE_TOWER_ITEM_ORAN_BERRY
- .byte 0x42 @ team flags
- .2byte MOVE_QUICK_ATTACK, MOVE_THUNDER_WAVE, MOVE_THUNDER_SHOCK, MOVE_GROWL
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 1
- .2byte SPECIES_BEAUTIFLY
- .byte BATTLE_TOWER_ITEM_MIRACLE_SEED
- .byte 0x41 @ team flags
- .2byte MOVE_ABSORB, MOVE_STUN_SPORE, MOVE_GUST, MOVE_SAFEGUARD
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 2
- .2byte SPECIES_SWELLOW
- .byte BATTLE_TOWER_ITEM_SHARP_BEAK
- .byte 0x07 @ team flags
- .2byte MOVE_PECK, MOVE_WING_ATTACK, MOVE_AERIAL_ACE, MOVE_AGILITY
- .byte F_EV_SPREAD_ATTACK
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 3
- .2byte SPECIES_WALREIN
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x0B @ team flags
- .2byte MOVE_HAIL, MOVE_ENCORE, MOVE_ICE_BALL, MOVE_TOXIC
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 4
- .2byte SPECIES_SEAKING
- .byte BATTLE_TOWER_ITEM_MYSTIC_WATER
- .byte 0x07 @ team flags
- .2byte MOVE_PECK, MOVE_FLAIL, MOVE_FURY_ATTACK, MOVE_SURF
- .byte F_EV_SPREAD_SPEED
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 5
- .2byte SPECIES_TORCHIC
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x42 @ team flags
- .2byte MOVE_FIRE_SPIN, MOVE_PROTECT, MOVE_SAND_ATTACK, MOVE_SLASH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 6
- .2byte SPECIES_MASQUERAIN
- .byte BATTLE_TOWER_ITEM_WHITE_HERB
- .byte 0x41 @ team flags
- .2byte MOVE_STUN_SPORE, MOVE_WATER_SPORT, MOVE_QUICK_ATTACK, MOVE_GUST
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_IMPISH
- .2byte 0 @ padding
-
-@ 7
- .2byte SPECIES_ILLUMISE
- .byte BATTLE_TOWER_ITEM_NONE
- .byte 0x41 @ team flags
- .2byte MOVE_FLATTER, MOVE_COVET, MOVE_WISH, MOVE_FACADE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 8
- .2byte SPECIES_DELCATTY
- .byte BATTLE_TOWER_ITEM_SILK_SCARF
- .byte 0x42 @ team flags
- .2byte MOVE_ATTRACT, MOVE_TAIL_WHIP, MOVE_FAINT_ATTACK, MOVE_DIG
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_LONELY
- .2byte 0 @ padding
-
-@ 9
- .2byte SPECIES_KECLEON
- .byte BATTLE_TOWER_ITEM_PERSIM_BERRY
- .byte 0x0B @ team flags
- .2byte MOVE_TAIL_WHIP, MOVE_SLASH, MOVE_LICK, MOVE_SCREECH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 10
- .2byte SPECIES_MIGHTYENA
- .byte BATTLE_TOWER_ITEM_PECHA_BERRY
- .byte 0x05 @ team flags
- .2byte MOVE_BITE, MOVE_TAKE_DOWN, MOVE_ROAR, MOVE_HOWL
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 11
- .2byte SPECIES_SLAKING
- .byte BATTLE_TOWER_ITEM_BLACK_GLASSES
- .byte 0x05 @ team flags
- .2byte MOVE_FAINT_ATTACK, MOVE_COUNTER, MOVE_SCRATCH, MOVE_TAUNT
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 12
- .2byte SPECIES_MACHOKE
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x05 @ team flags
- .2byte MOVE_LEER, MOVE_DIG, MOVE_LOW_KICK, MOVE_FOCUS_PUNCH
- .byte F_EV_SPREAD_SPEED
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 13
- .2byte SPECIES_RHYDON
- .byte BATTLE_TOWER_ITEM_PERSIM_BERRY
- .byte 0x05 @ team flags
- .2byte MOVE_STRENGTH, MOVE_ROCK_TOMB, MOVE_STOMP, MOVE_ROCK_SMASH
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_QUIRKY
- .2byte 0 @ padding
-
-@ 14
- .2byte SPECIES_CACTURNE
- .byte BATTLE_TOWER_ITEM_POISON_BARB
- .byte 0x0B @ team flags
- .2byte MOVE_POISON_STING, MOVE_GROWTH, MOVE_ABSORB, MOVE_SOLAR_BEAM
- .byte F_EV_SPREAD_SP_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 15
- .2byte SPECIES_ZIGZAGOON
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x0A @ team flags
- .2byte MOVE_FLAIL, MOVE_SAND_ATTACK, MOVE_REST, MOVE_SURF
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 16
- .2byte SPECIES_DODRIO
- .byte BATTLE_TOWER_ITEM_SHARP_BEAK
- .byte 0x03 @ team flags
- .2byte MOVE_PURSUIT, MOVE_TRI_ATTACK, MOVE_GROWL, MOVE_AGILITY
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 17
- .2byte SPECIES_WHISCASH
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x0B @ team flags
- .2byte MOVE_WATER_GUN, MOVE_AMNESIA, MOVE_MAGNITUDE, MOVE_MUD_SLAP
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 18
- .2byte SPECIES_NINJASK
- .byte BATTLE_TOWER_ITEM_SILVER_POWDER
- .byte 0x41 @ team flags
- .2byte MOVE_SAND_ATTACK, MOVE_FURY_CUTTER, MOVE_AGILITY, MOVE_HARDEN
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 19
- .2byte SPECIES_DUSCLOPS
- .byte BATTLE_TOWER_ITEM_PECHA_BERRY
- .byte 0x01 @ team flags
- .2byte MOVE_PROTECT, MOVE_NIGHT_SHADE, MOVE_ASTONISH, MOVE_WILL_O_WISP
- .byte F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 20
- .2byte SPECIES_CAMERUPT
- .byte BATTLE_TOWER_ITEM_CHARCOAL
- .byte 0x07 @ team flags
- .2byte MOVE_DIG, MOVE_EMBER, MOVE_GROWL, MOVE_ROCK_SMASH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_BOLD
- .2byte 0 @ padding
-
-@ 21
- .2byte SPECIES_SPINDA
- .byte BATTLE_TOWER_ITEM_CHERI_BERRY
- .byte 0x4A @ team flags
- .2byte MOVE_TEETER_DANCE, MOVE_FLAIL, MOVE_PSYCH_UP, MOVE_DOUBLE_EDGE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_CALM
- .2byte 0 @ padding
-
-@ 22
- .2byte SPECIES_SEVIPER
- .byte BATTLE_TOWER_ITEM_POISON_BARB
- .byte 0x09 @ team flags
- .2byte MOVE_SCREECH, MOVE_GLARE, MOVE_DIG, MOVE_POISON_FANG
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 23
- .2byte SPECIES_FLYGON
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x49 @ team flags
- .2byte MOVE_SAND_ATTACK, MOVE_SAND_TOMB, MOVE_FACADE, MOVE_TOXIC
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 24
- .2byte SPECIES_AZUMARILL
- .byte BATTLE_TOWER_ITEM_WHITE_HERB
- .byte 0x42 @ team flags
- .2byte MOVE_BUBBLE_BEAM, MOVE_TAIL_WHIP, MOVE_RAIN_DANCE, MOVE_ROLLOUT
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 25
- .2byte SPECIES_ZANGOOSE
- .byte BATTLE_TOWER_ITEM_MENTAL_HERB
- .byte 0x07 @ team flags
- .2byte MOVE_STRENGTH, MOVE_TAUNT, MOVE_CRUSH_CLAW, MOVE_DETECT
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 26
- .2byte SPECIES_MEDICHAM
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x07 @ team flags
- .2byte MOVE_REVERSAL, MOVE_MEDITATE, MOVE_CONFUSION, MOVE_FACADE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 27
- .2byte SPECIES_ROSELIA
- .byte BATTLE_TOWER_ITEM_MIRACLE_SEED
- .byte 0x0A @ team flags
- .2byte MOVE_GROWTH, MOVE_MEGA_DRAIN, MOVE_TOXIC, MOVE_CUT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK
- .byte NATURE_NAUGHTY
- .2byte 0 @ padding
-
-@ 28
- .2byte SPECIES_SWALOT
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x0B @ team flags
- .2byte MOVE_STOCKPILE, MOVE_SPIT_UP, MOVE_SLUDGE, MOVE_POISON_GAS
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 29
- .2byte SPECIES_MAGNETON
- .byte BATTLE_TOWER_ITEM_MAGNET
- .byte 0x0B @ team flags
- .2byte MOVE_SUPERSONIC, MOVE_THUNDER_WAVE, MOVE_SCREECH, MOVE_TRI_ATTACK
- .byte F_EV_SPREAD_SPEED
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 30
- .2byte SPECIES_GARDEVOIR
- .byte BATTLE_TOWER_ITEM_TWISTED_SPOON
- .byte 0x09 @ team flags
- .2byte MOVE_CONFUSION, MOVE_TOXIC, MOVE_TORMENT, MOVE_PROTECT
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_BOLD
- .2byte 0 @ padding
-
-@ 31
- .2byte SPECIES_RELICANTH
- .byte BATTLE_TOWER_ITEM_MYSTIC_WATER
- .byte 0x01 @ team flags
- .2byte MOVE_SURF, MOVE_ANCIENT_POWER, MOVE_ROCK_TOMB, MOVE_HARDEN
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 32
- .2byte SPECIES_NINETALES
- .byte BATTLE_TOWER_ITEM_RAWST_BERRY
- .byte 0x03 @ team flags
- .2byte MOVE_CONFUSE_RAY, MOVE_FIRE_SPIN, MOVE_QUICK_ATTACK, MOVE_FLAMETHROWER
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 33
- .2byte SPECIES_SHARPEDO
- .byte BATTLE_TOWER_ITEM_BLACK_GLASSES
- .byte 0x05 @ team flags
- .2byte MOVE_BITE, MOVE_SKULL_BASH, MOVE_RAIN_DANCE, MOVE_SURF
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 34
- .2byte SPECIES_GIRAFARIG
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x03 @ team flags
- .2byte MOVE_STRENGTH, MOVE_PSYBEAM, MOVE_AGILITY, MOVE_EARTHQUAKE
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_IMPISH
- .2byte 0 @ padding
-
-@ 35
- .2byte SPECIES_PELIPPER
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x0B @ team flags
- .2byte MOVE_MIST, MOVE_STOCKPILE, MOVE_SWALLOW, MOVE_SPIT_UP
- .byte F_EV_SPREAD_DEFENSE
- .byte NATURE_QUIRKY
- .2byte 0 @ padding
-
-@ 36
- .2byte SPECIES_SABLEYE
- .byte BATTLE_TOWER_ITEM_CHERI_BERRY
- .byte 0x09 @ team flags
- .2byte MOVE_SHADOW_BALL, MOVE_NIGHT_SHADE, MOVE_SNATCH, MOVE_FAKE_OUT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 37
- .2byte SPECIES_LUNATONE
- .byte BATTLE_TOWER_ITEM_HARD_STONE
- .byte 0x0B @ team flags
- .2byte MOVE_COSMIC_POWER, MOVE_SANDSTORM, MOVE_PSYCHIC, MOVE_ROCK_THROW
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 38
- .2byte SPECIES_LUDICOLO
- .byte BATTLE_TOWER_ITEM_NONE
- .byte 0x0B @ team flags
- .2byte MOVE_THIEF, MOVE_FAKE_OUT, MOVE_SURF, MOVE_RAIN_DANCE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 39
- .2byte SPECIES_GRUMPIG
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x0B @ team flags
- .2byte MOVE_ODOR_SLEUTH, MOVE_CONFUSE_RAY, MOVE_MAGIC_COAT, MOVE_PSYCHIC
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 40
- .2byte SPECIES_BRELOOM
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x0B @ team flags
- .2byte MOVE_CUT, MOVE_LEECH_SEED, MOVE_MEGA_DRAIN, MOVE_STUN_SPORE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 41
- .2byte SPECIES_WAILORD
- .byte BATTLE_TOWER_ITEM_MYSTIC_WATER
- .byte 0x03 @ team flags
- .2byte MOVE_WATER_SPOUT, MOVE_ROLLOUT, MOVE_MIST, MOVE_RAIN_DANCE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 42
- .2byte SPECIES_WEEZING
- .byte BATTLE_TOWER_ITEM_POISON_BARB
- .byte 0x05 @ team flags
- .2byte MOVE_SMOG, MOVE_SELF_DESTRUCT, MOVE_TOXIC, MOVE_SLUDGE_BOMB
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_BASHFUL
- .2byte 0 @ padding
-
-@ 43
- .2byte SPECIES_KADABRA
- .byte BATTLE_TOWER_ITEM_LEPPA_BERRY
- .byte 0x0B @ team flags
- .2byte MOVE_FUTURE_SIGHT, MOVE_FOCUS_PUNCH, MOVE_SKILL_SWAP, MOVE_SNATCH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 44
- .2byte SPECIES_MANECTRIC
- .byte BATTLE_TOWER_ITEM_MAGNET
- .byte 0x07 @ team flags
- .2byte MOVE_THUNDER_WAVE, MOVE_BITE, MOVE_SPARK, MOVE_QUICK_ATTACK
- .byte F_EV_SPREAD_SP_ATTACK
- .byte NATURE_RASH
- .2byte 0 @ padding
-
-@ 45
- .2byte SPECIES_RAICHU
- .byte BATTLE_TOWER_ITEM_ASPEAR_BERRY
- .byte 0x03 @ team flags
- .2byte MOVE_QUICK_ATTACK, MOVE_AGILITY, MOVE_LIGHT_SCREEN, MOVE_THUNDERBOLT
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 46
- .2byte SPECIES_XATU
- .byte BATTLE_TOWER_ITEM_TWISTED_SPOON
- .byte 0x03 @ team flags
- .2byte MOVE_NIGHT_SHADE, MOVE_PECK, MOVE_CONFUSE_RAY, MOVE_FUTURE_SIGHT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 47
- .2byte SPECIES_LOUDRED
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x05 @ team flags
- .2byte MOVE_UPROAR, MOVE_STOMP, MOVE_SCREECH, MOVE_EARTHQUAKE
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_MODEST
- .2byte 0 @ padding
-
-@ 48
- .2byte SPECIES_SOLROCK
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x03 @ team flags
- .2byte MOVE_ROCK_THROW, MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_SANDSTORM
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_MILD
- .2byte 0 @ padding
-
-@ 49
- .2byte SPECIES_CLAYDOL
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x03 @ team flags
- .2byte MOVE_SANDSTORM, MOVE_REFLECT, MOVE_ROCK_TOMB, MOVE_STRENGTH
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 50
- .2byte SPECIES_CRAWDAUNT
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x03 @ team flags
- .2byte MOVE_WATER_PULSE, MOVE_KNOCK_OFF, MOVE_HARDEN, MOVE_CUT
- .byte F_EV_SPREAD_HP
- .byte NATURE_JOLLY
- .2byte 0 @ padding
-
-@ 51
- .2byte SPECIES_GOLBAT
- .byte BATTLE_TOWER_ITEM_WHITE_HERB
- .byte 0x09 @ team flags
- .2byte MOVE_CONFUSE_RAY, MOVE_WING_ATTACK, MOVE_MEAN_LOOK, MOVE_BITE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 52
- .2byte SPECIES_BELLOSSOM
- .byte BATTLE_TOWER_ITEM_MIRACLE_SEED
- .byte 0x0A @ team flags
- .2byte MOVE_SOLAR_BEAM, MOVE_PETAL_DANCE, MOVE_SWEET_SCENT, MOVE_BULLET_SEED
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 53
- .2byte SPECIES_DONPHAN
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x05 @ team flags
- .2byte MOVE_ROCK_SMASH, MOVE_RAPID_SPIN, MOVE_FLAIL, MOVE_HORN_ATTACK
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_IMPISH
- .2byte 0 @ padding
-
-@ 54
- .2byte SPECIES_NOSEPASS
- .byte BATTLE_TOWER_ITEM_PERSIM_BERRY
- .byte 0x0B @ team flags
- .2byte MOVE_SANDSTORM, MOVE_ROCK_SLIDE, MOVE_BLOCK, MOVE_THUNDER_WAVE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_JOLLY
- .2byte 0 @ padding
-
-@ 55
- .2byte SPECIES_PINSIR
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x05 @ team flags
- .2byte MOVE_SWORDS_DANCE, MOVE_HARDEN, MOVE_CUT, MOVE_SEISMIC_TOSS
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 56
- .2byte SPECIES_GOLDUCK
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x0B @ team flags
- .2byte MOVE_DISABLE, MOVE_PSYCH_UP, MOVE_WATER_PULSE, MOVE_BRICK_BREAK
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 57
- .2byte SPECIES_SHIFTRY
- .byte BATTLE_TOWER_ITEM_MENTAL_HERB
- .byte 0x07 @ team flags
- .2byte MOVE_TORMENT, MOVE_EXTRASENSORY, MOVE_SOLAR_BEAM, MOVE_AERIAL_ACE
- .byte F_EV_SPREAD_DEFENSE
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 58
- .2byte SPECIES_DUSTOX
- .byte BATTLE_TOWER_ITEM_SILVER_POWDER
- .byte 0x01 @ team flags
- .2byte MOVE_CONFUSION, MOVE_SILVER_WIND, MOVE_PSYBEAM, MOVE_WHIRLWIND
- .byte F_EV_SPREAD_SPEED
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 59
- .2byte SPECIES_SHUPPET
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x03 @ team flags
- .2byte MOVE_WILL_O_WISP, MOVE_NIGHT_SHADE, MOVE_FAINT_ATTACK, MOVE_CURSE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 60
- .2byte SPECIES_SEAKING
- .byte BATTLE_TOWER_ITEM_MYSTIC_WATER
- .byte 0x07 @ team flags
- .2byte MOVE_RAIN_DANCE, MOVE_SURF, MOVE_HORN_ATTACK, MOVE_HORN_DRILL
- .byte F_EV_SPREAD_SP_DEFENSE
- .byte NATURE_LONELY
- .2byte 0 @ padding
-
-@ 61
- .2byte SPECIES_SKARMORY
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x07 @ team flags
- .2byte MOVE_STEEL_WING, MOVE_SAND_ATTACK, MOVE_SWIFT, MOVE_AGILITY
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 62
- .2byte SPECIES_TORKOAL
- .byte BATTLE_TOWER_ITEM_FOCUS_BAND
- .byte 0x43 @ team flags
- .2byte MOVE_FLAMETHROWER, MOVE_IRON_DEFENSE, MOVE_BODY_SLAM, MOVE_PROTECT
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_NAUGHTY
- .2byte 0 @ padding
-
-@ 63
- .2byte SPECIES_GOLEM
- .byte BATTLE_TOWER_ITEM_SOFT_SAND
- .byte 0x05 @ team flags
- .2byte MOVE_MAGNITUDE, MOVE_EXPLOSION, MOVE_STRENGTH, MOVE_SANDSTORM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 64
- .2byte SPECIES_GARDEVOIR
- .byte BATTLE_TOWER_ITEM_TWISTED_SPOON
- .byte 0x41 @ team flags
- .2byte MOVE_REFLECT, MOVE_PSYCHIC, MOVE_IMPRISON, MOVE_TOXIC
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 65
- .2byte SPECIES_SANDSLASH
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x07 @ team flags
- .2byte MOVE_SANDSTORM, MOVE_SLASH, MOVE_EARTHQUAKE, MOVE_SWIFT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 66
- .2byte SPECIES_WOBBUFFET
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x0B @ team flags
- .2byte MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_SAFEGUARD, MOVE_DESTINY_BOND
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_CALM
- .2byte 0 @ padding
-
-@ 67
- .2byte SPECIES_TENTACRUEL
- .byte BATTLE_TOWER_ITEM_CHERI_BERRY
- .byte 0x05 @ team flags
- .2byte MOVE_CONSTRICT, MOVE_SURF, MOVE_HYPER_BEAM, MOVE_SCREECH
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_IMPISH
- .2byte 0 @ padding
-
-@ 68
- .2byte SPECIES_TROPIUS
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x05 @ team flags
- .2byte MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_SYNTHESIS, MOVE_RAZOR_LEAF
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 69
- .2byte SPECIES_MAWILE
- .byte BATTLE_TOWER_ITEM_METAL_COAT
- .byte 0x43 @ team flags
- .2byte MOVE_IRON_DEFENSE, MOVE_SLUDGE_BOMB, MOVE_CRUNCH, MOVE_STRENGTH
- .byte F_EV_SPREAD_ATTACK
- .byte NATURE_CALM
- .2byte 0 @ padding
-
-@ 70
- .2byte SPECIES_MUK
- .byte BATTLE_TOWER_ITEM_RAWST_BERRY
- .byte 0x09 @ team flags
- .2byte MOVE_SLUDGE, MOVE_ACID_ARMOR, MOVE_GIGA_DRAIN, MOVE_DISABLE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 71
- .2byte SPECIES_MAGCARGO
- .byte BATTLE_TOWER_ITEM_CHARCOAL
- .byte 0x0D @ team flags
- .2byte MOVE_FLAMETHROWER, MOVE_ROCK_THROW, MOVE_HARDEN, MOVE_AMNESIA
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK
- .byte NATURE_NAUGHTY
- .2byte 0 @ padding
-
-@ 72
- .2byte SPECIES_LINOONE
- .byte BATTLE_TOWER_ITEM_PECHA_BERRY
- .byte 0x07 @ team flags
- .2byte MOVE_HEADBUTT, MOVE_TAIL_WHIP, MOVE_SURF, MOVE_DIG
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_QUIRKY
- .2byte 0 @ padding
-
-@ 73
- .2byte SPECIES_ELECTRODE
- .byte BATTLE_TOWER_ITEM_ASPEAR_BERRY
- .byte 0x05 @ team flags
- .2byte MOVE_LIGHT_SCREEN, MOVE_THUNDERBOLT, MOVE_SWIFT, MOVE_ROLLOUT
- .byte F_EV_SPREAD_SPEED
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 74
- .2byte SPECIES_DUSCLOPS
- .byte BATTLE_TOWER_ITEM_SPELL_TAG
- .byte 0x09 @ team flags
- .2byte MOVE_MEAN_LOOK, MOVE_NIGHT_SHADE, MOVE_SKILL_SWAP, MOVE_SHADOW_BALL
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 75
- .2byte SPECIES_VILEPLUME
- .byte BATTLE_TOWER_ITEM_MIRACLE_SEED
- .byte 0x0A @ team flags
- .2byte MOVE_TOXIC, MOVE_MOONLIGHT, MOVE_GIGA_DRAIN, MOVE_STUN_SPORE
- .byte F_EV_SPREAD_HP
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 76
- .2byte SPECIES_CROBAT
- .byte BATTLE_TOWER_ITEM_LEPPA_BERRY
- .byte 0x05 @ team flags
- .2byte MOVE_BITE, MOVE_HAZE, MOVE_WING_ATTACK, MOVE_STEEL_WING
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 77
- .2byte SPECIES_CORSOLA
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x0A @ team flags
- .2byte MOVE_RECOVER, MOVE_MIRROR_COAT, MOVE_HAIL, MOVE_SURF
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 78
- .2byte SPECIES_STARMIE
- .byte BATTLE_TOWER_ITEM_MYSTIC_WATER
- .byte 0x0B @ team flags
- .2byte MOVE_RAPID_SPIN, MOVE_WATER_PULSE, MOVE_REFLECT, MOVE_SKILL_SWAP
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 79
- .2byte SPECIES_EXPLOUD
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x41 @ team flags
- .2byte MOVE_HYPER_BEAM, MOVE_HOWL, MOVE_UPROAR, MOVE_EARTHQUAKE
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 80
- .2byte SPECIES_ALAKAZAM
- .byte BATTLE_TOWER_ITEM_TWISTED_SPOON
- .byte 0x0B @ team flags
- .2byte MOVE_PSYBEAM, MOVE_SNATCH, MOVE_REFLECT, MOVE_HYPER_BEAM
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 81
- .2byte SPECIES_HERACROSS
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x05 @ team flags
- .2byte MOVE_HORN_ATTACK, MOVE_COUNTER, MOVE_REVERSAL, MOVE_LEER
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_BOLD
- .2byte 0 @ padding
-
-@ 82
- .2byte SPECIES_CASTFORM
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x0B @ team flags
- .2byte MOVE_WEATHER_BALL, MOVE_SUNNY_DAY, MOVE_RAIN_DANCE, MOVE_HAIL
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 83
- .2byte SPECIES_VIGOROTH
- .byte BATTLE_TOWER_ITEM_FOCUS_BAND
- .byte 0x05 @ team flags
- .2byte MOVE_FOCUS_PUNCH, MOVE_REVERSAL, MOVE_COUNTER, MOVE_TAUNT
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 84
- .2byte SPECIES_DUSKULL
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x09 @ team flags
- .2byte MOVE_TOXIC, MOVE_CONFUSE_RAY, MOVE_SHADOW_BALL, MOVE_WILL_O_WISP
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 85
- .2byte SPECIES_LANTURN
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x07 @ team flags
- .2byte MOVE_FLAIL, MOVE_SURF, MOVE_SPARK, MOVE_TAKE_DOWN
- .byte F_EV_SPREAD_SPEED
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 86
- .2byte SPECIES_HARIYAMA
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x05 @ team flags
- .2byte MOVE_STRENGTH, MOVE_FAKE_OUT, MOVE_FACADE, MOVE_SAND_ATTACK
- .byte F_EV_SPREAD_SPEED
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 87
- .2byte SPECIES_KINGDRA
- .byte BATTLE_TOWER_ITEM_MYSTIC_WATER
- .byte 0x43 @ team flags
- .2byte MOVE_AGILITY, MOVE_DIVE, MOVE_ICE_BEAM, MOVE_PROTECT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 88
- .2byte SPECIES_GYARADOS
- .byte BATTLE_TOWER_ITEM_DRAGON_FANG
- .byte 0x41 @ team flags
- .2byte MOVE_RAIN_DANCE, MOVE_SURF, MOVE_WATER_PULSE, MOVE_HYPER_BEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_IMPISH
- .2byte 0 @ padding
-
-@ 89
- .2byte SPECIES_AGGRON
- .byte BATTLE_TOWER_ITEM_METAL_COAT
- .byte 0x45 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_BRICK_BREAK, MOVE_METAL_CLAW, MOVE_ROAR
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 90
- .2byte SPECIES_ABSOL
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0xC7 @ team flags
- .2byte MOVE_SWORDS_DANCE, MOVE_IRON_TAIL, MOVE_SLASH, MOVE_FACADE
- .byte F_EV_SPREAD_ATTACK
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 91
- .2byte SPECIES_SWELLOW
- .byte BATTLE_TOWER_ITEM_SHARP_BEAK
- .byte 0x0F @ team flags
- .2byte MOVE_DOUBLE_TEAM, MOVE_FLY, MOVE_TOXIC, MOVE_STEEL_WING
- .byte 0
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 92
- .2byte SPECIES_MACHAMP
- .byte BATTLE_TOWER_ITEM_BLACK_BELT
- .byte 0x05 @ team flags
- .2byte MOVE_STRENGTH, MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 93
- .2byte SPECIES_SWAMPERT
- .byte BATTLE_TOWER_ITEM_NEVER_MELT_ICE
- .byte 0x41 @ team flags
- .2byte MOVE_PROTECT, MOVE_ICE_BEAM, MOVE_HYPER_BEAM, MOVE_SURF
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 94
- .2byte SPECIES_SCEPTILE
- .byte BATTLE_TOWER_ITEM_MIRACLE_SEED
- .byte 0x41 @ team flags
- .2byte MOVE_LEAF_BLADE, MOVE_DRAGON_CLAW, MOVE_AGILITY, MOVE_PROTECT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 95
- .2byte SPECIES_BLAZIKEN
- .byte BATTLE_TOWER_ITEM_CHARCOAL
- .byte 0x41 @ team flags
- .2byte MOVE_BLAZE_KICK, MOVE_MIRROR_MOVE, MOVE_EARTHQUAKE, MOVE_PROTECT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 96
- .2byte SPECIES_ALTARIA
- .byte BATTLE_TOWER_ITEM_DRAGON_FANG
- .byte 0x43 @ team flags
- .2byte MOVE_DRAGON_CLAW, MOVE_DRAGON_DANCE, MOVE_TOXIC, MOVE_DOUBLE_TEAM
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 97
- .2byte SPECIES_LUDICOLO
- .byte BATTLE_TOWER_ITEM_BLACK_BELT
- .byte 0x43 @ team flags
- .2byte MOVE_BRICK_BREAK, MOVE_WATER_PULSE, MOVE_RAIN_DANCE, MOVE_FOCUS_PUNCH
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 98
- .2byte SPECIES_SABLEYE
- .byte BATTLE_TOWER_ITEM_SPELL_TAG
- .byte 0x49 @ team flags
- .2byte MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_DIG, MOVE_CONFUSE_RAY
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 99
- .2byte SPECIES_ZANGOOSE
- .byte BATTLE_TOWER_ITEM_BLACK_GLASSES
- .byte 0x0F @ team flags
- .2byte MOVE_FACADE, MOVE_THUNDERBOLT, MOVE_CRUSH_CLAW, MOVE_DETECT
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_CALM
- .2byte 0 @ padding
-
-@ 100
- .2byte SPECIES_LINOONE
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x0F @ team flags
- .2byte MOVE_IRON_TAIL, MOVE_HEADBUTT, MOVE_ATTRACT, MOVE_ICE_BEAM
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 101
- .2byte SPECIES_WHISCASH
- .byte BATTLE_TOWER_ITEM_SOFT_SAND
- .byte 0x07 @ team flags
- .2byte MOVE_MUD_SLAP, MOVE_EARTHQUAKE, MOVE_SURF, MOVE_AMNESIA
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_BOLD
- .2byte 0 @ padding
-
-@ 102
- .2byte SPECIES_SOLROCK
- .byte BATTLE_TOWER_ITEM_HARD_STONE
- .byte 0x43 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE, MOVE_CONFUSION
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_BASHFUL
- .2byte 0 @ padding
-
-@ 103
- .2byte SPECIES_STARMIE
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x03 @ team flags
- .2byte MOVE_RECOVER, MOVE_RAIN_DANCE, MOVE_SURF, MOVE_CONFUSE_RAY
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 104
- .2byte SPECIES_CACTURNE
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x0F @ team flags
- .2byte MOVE_INGRAIN, MOVE_LEECH_SEED, MOVE_PROTECT, MOVE_FRUSTRATION
- .byte 0
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 105
- .2byte SPECIES_SHIFTRY
- .byte BATTLE_TOWER_ITEM_FOCUS_BAND
- .byte 0x05 @ team flags
- .2byte MOVE_FRUSTRATION, MOVE_HYPER_BEAM, MOVE_GIGA_DRAIN, MOVE_TORMENT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 106
- .2byte SPECIES_MANECTRIC
- .byte BATTLE_TOWER_ITEM_MAGNET
- .byte 0x0F @ team flags
- .2byte MOVE_THUNDER, MOVE_THUNDER_WAVE, MOVE_IRON_TAIL, MOVE_ROAR
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 107
- .2byte SPECIES_KECLEON
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0xC3 @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_FOCUS_PUNCH, MOVE_IRON_TAIL, MOVE_FLAMETHROWER
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 108
- .2byte SPECIES_PINSIR
- .byte BATTLE_TOWER_ITEM_SOFT_SAND
- .byte 0x8D @ team flags
- .2byte MOVE_GUILLOTINE, MOVE_SUBMISSION, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 109
- .2byte SPECIES_METANG
- .byte BATTLE_TOWER_ITEM_METAL_COAT
- .byte 0x05 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_PSYCHIC, MOVE_METEOR_MASH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_IMPISH
- .2byte 0 @ padding
-
-@ 110
- .2byte SPECIES_CLAYDOL
- .byte BATTLE_TOWER_ITEM_PECHA_BERRY
- .byte 0x43 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_SELF_DESTRUCT, MOVE_SANDSTORM, MOVE_PROTECT
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 111
- .2byte SPECIES_MASQUERAIN
- .byte BATTLE_TOWER_ITEM_PERSIM_BERRY
- .byte 0x0A @ team flags
- .2byte MOVE_TOXIC, MOVE_SILVER_WIND, MOVE_ATTRACT, MOVE_ICE_BEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 112
- .2byte SPECIES_RELICANTH
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0xC5 @ team flags
- .2byte MOVE_ROCK_TOMB, MOVE_DOUBLE_EDGE, MOVE_SURF, MOVE_EARTHQUAKE
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 113
- .2byte SPECIES_WALREIN
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x0D @ team flags
- .2byte MOVE_SURF, MOVE_ENCORE, MOVE_BLIZZARD, MOVE_HYPER_BEAM
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 114
- .2byte SPECIES_WAILORD
- .byte BATTLE_TOWER_ITEM_APICOT_BERRY
- .byte 0x0B @ team flags
- .2byte MOVE_WATER_SPOUT, MOVE_REST, MOVE_AMNESIA, MOVE_HAIL
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 115
- .2byte SPECIES_GIRAFARIG
- .byte BATTLE_TOWER_ITEM_GANLON_BERRY
- .byte 0x4F @ team flags
- .2byte MOVE_DOUBLE_TEAM, MOVE_CRUNCH, MOVE_PSYCHIC, MOVE_EARTHQUAKE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 116
- .2byte SPECIES_MEDICHAM
- .byte BATTLE_TOWER_ITEM_APICOT_BERRY
- .byte 0x4B @ team flags
- .2byte MOVE_CALM_MIND, MOVE_REVERSAL, MOVE_ROCK_TOMB, MOVE_PSYCHIC
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 117
- .2byte SPECIES_TROPIUS
- .byte BATTLE_TOWER_ITEM_MENTAL_HERB
- .byte 0xC7 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_SYNTHESIS, MOVE_RAZOR_LEAF, MOVE_HYPER_BEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_BOLD
- .2byte 0 @ padding
-
-@ 118
- .2byte SPECIES_NINJASK
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x05 @ team flags
- .2byte MOVE_DOUBLE_TEAM, MOVE_SLASH, MOVE_SWORDS_DANCE, MOVE_LEECH_LIFE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 119
- .2byte SPECIES_CAMERUPT
- .byte BATTLE_TOWER_ITEM_CHARCOAL
- .byte 0x0D @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_ROCK_SLIDE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 120
- .2byte SPECIES_SHARPEDO
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x05 @ team flags
- .2byte MOVE_CRUNCH, MOVE_SURF, MOVE_EARTHQUAKE, MOVE_PROTECT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 121
- .2byte SPECIES_WIGGLYTUFF
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x0E @ team flags
- .2byte MOVE_PROTECT, MOVE_TOXIC, MOVE_DOUBLE_TEAM, MOVE_DIG
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 122
- .2byte SPECIES_SEVIPER
- .byte BATTLE_TOWER_ITEM_POISON_BARB
- .byte 0x05 @ team flags
- .2byte MOVE_SLUDGE_BOMB, MOVE_HAZE, MOVE_CRUNCH, MOVE_FLAMETHROWER
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 123
- .2byte SPECIES_CRADILY
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0xC1 @ team flags
- .2byte MOVE_ROCK_TOMB, MOVE_CONFUSE_RAY, MOVE_INGRAIN, MOVE_EARTHQUAKE
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 124
- .2byte SPECIES_ARMALDO
- .byte BATTLE_TOWER_ITEM_RAWST_BERRY
- .byte 0xC1 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_SANDSTORM, MOVE_PROTECT, MOVE_SLASH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 125
- .2byte SPECIES_MAGNETON
- .byte BATTLE_TOWER_ITEM_PERSIM_BERRY
- .byte 0x0D @ team flags
- .2byte MOVE_ZAP_CANNON, MOVE_SUPERSONIC, MOVE_TOXIC, MOVE_PROTECT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 126
- .2byte SPECIES_LANTURN
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x06 @ team flags
- .2byte MOVE_THUNDER, MOVE_SURF, MOVE_ICE_BEAM, MOVE_RAIN_DANCE
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 127
- .2byte SPECIES_SWALOT
- .byte BATTLE_TOWER_ITEM_CHERI_BERRY
- .byte 0x8B @ team flags
- .2byte MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_ENCORE, MOVE_BODY_SLAM
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 128
- .2byte SPECIES_SKARMORY
- .byte BATTLE_TOWER_ITEM_METAL_COAT
- .byte 0x81 @ team flags
- .2byte MOVE_STEEL_WING, MOVE_AGILITY, MOVE_TORMENT, MOVE_FACADE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 129
- .2byte SPECIES_DONPHAN
- .byte BATTLE_TOWER_ITEM_WHITE_HERB
- .byte 0x0D @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_FLAIL, MOVE_ROAR, MOVE_IRON_TAIL
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 130
- .2byte SPECIES_HERACROSS
- .byte BATTLE_TOWER_ITEM_FOCUS_BAND
- .byte 0x41 @ team flags
- .2byte MOVE_FACADE, MOVE_REVERSAL, MOVE_MEGAHORN, MOVE_EARTHQUAKE
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 131
- .2byte SPECIES_BANETTE
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x83 @ team flags
- .2byte MOVE_SHADOW_BALL, MOVE_HYPER_BEAM, MOVE_THUNDERBOLT, MOVE_SKILL_SWAP
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 132
- .2byte SPECIES_SANDSLASH
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x0F @ team flags
- .2byte MOVE_SANDSTORM, MOVE_TOXIC, MOVE_SLASH, MOVE_EARTHQUAKE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 133
- .2byte SPECIES_CRAWDAUNT
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x05 @ team flags
- .2byte MOVE_GUILLOTINE, MOVE_CRABHAMMER, MOVE_BLIZZARD, MOVE_SLUDGE_BOMB
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 134
- .2byte SPECIES_GRUMPIG
- .byte BATTLE_TOWER_ITEM_TWISTED_SPOON
- .byte 0x8B @ team flags
- .2byte MOVE_MAGIC_COAT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_CONFUSE_RAY
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_LONELY
- .2byte 0 @ padding
-
-@ 135
- .2byte SPECIES_RHYDON
- .byte BATTLE_TOWER_ITEM_CHOICE_BAND
- .byte 0x45 @ team flags
- .2byte MOVE_IRON_TAIL, MOVE_EARTHQUAKE, MOVE_SURF, MOVE_FIRE_BLAST
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK
- .byte NATURE_RASH
- .2byte 0 @ padding
-
-@ 136
- .2byte SPECIES_ALAKAZAM
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x8B @ team flags
- .2byte MOVE_PSYCHIC, MOVE_REFLECT, MOVE_RECOVER, MOVE_SKILL_SWAP
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 137
- .2byte SPECIES_DUSCLOPS
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x41 @ team flags
- .2byte MOVE_SHADOW_BALL, MOVE_WILL_O_WISP, MOVE_BLIZZARD, MOVE_PSYCHIC
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 138
- .2byte SPECIES_TORKOAL
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x09 @ team flags
- .2byte MOVE_FLAMETHROWER, MOVE_AMNESIA, MOVE_IRON_TAIL, MOVE_REST
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 139
- .2byte SPECIES_ELECTRODE
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x09 @ team flags
- .2byte MOVE_SCREECH, MOVE_EXPLOSION, MOVE_MIRROR_COAT, MOVE_PROTECT
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_RASH
- .2byte 0 @ padding
-
-@ 140
- .2byte SPECIES_BRELOOM
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x0B @ team flags
- .2byte MOVE_IRON_TAIL, MOVE_FOCUS_PUNCH, MOVE_DOUBLE_TEAM, MOVE_LEECH_SEED
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 141
- .2byte SPECIES_MUK
- .byte BATTLE_TOWER_ITEM_POISON_BARB
- .byte 0x05 @ team flags
- .2byte MOVE_SLUDGE_BOMB, MOVE_THUNDERBOLT, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 142
- .2byte SPECIES_WEEZING
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x05 @ team flags
- .2byte MOVE_EXPLOSION, MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_FLAMETHROWER
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 143
- .2byte SPECIES_RAICHU
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x4E @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_DOUBLE_TEAM, MOVE_FOCUS_PUNCH, MOVE_ATTRACT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_JOLLY
- .2byte 0 @ padding
-
-@ 144
- .2byte SPECIES_TENTACRUEL
- .byte BATTLE_TOWER_ITEM_MYSTIC_WATER
- .byte 0x09 @ team flags
- .2byte MOVE_DOUBLE_TEAM, MOVE_TOXIC, MOVE_SURF, MOVE_SLUDGE_BOMB
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_BOLD
- .2byte 0 @ padding
-
-@ 145
- .2byte SPECIES_EXPLOUD
- .byte BATTLE_TOWER_ITEM_CHOICE_BAND
- .byte 0x05 @ team flags
- .2byte MOVE_BLIZZARD, MOVE_FLAMETHROWER, MOVE_EARTHQUAKE, MOVE_RETURN
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_BASHFUL
- .2byte 0 @ padding
-
-@ 146
- .2byte SPECIES_XATU
- .byte BATTLE_TOWER_ITEM_WHITE_HERB
- .byte 0x43 @ team flags
- .2byte MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_TOXIC
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 147
- .2byte SPECIES_GOLEM
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x05 @ team flags
- .2byte MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB, MOVE_FLAMETHROWER
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_IMPISH
- .2byte 0 @ padding
-
-@ 148
- .2byte SPECIES_GOLDUCK
- .byte BATTLE_TOWER_ITEM_PECHA_BERRY
- .byte 0x83 @ team flags
- .2byte MOVE_SURF, MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_BLIZZARD
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 149
- .2byte SPECIES_NINETALES
- .byte BATTLE_TOWER_ITEM_CHARCOAL
- .byte 0x4A @ team flags
- .2byte MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_TOXIC, MOVE_CONFUSE_RAY
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 150
- .2byte SPECIES_KINGDRA
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x13 @ team flags
- .2byte MOVE_DOUBLE_TEAM, MOVE_REST, MOVE_SURF, MOVE_DRAGON_BREATH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 151
- .2byte SPECIES_SLAKING
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x03 @ team flags
- .2byte MOVE_CURSE, MOVE_AMNESIA, MOVE_YAWN, MOVE_FOCUS_PUNCH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 152
- .2byte SPECIES_GYARADOS
- .byte BATTLE_TOWER_ITEM_CHERI_BERRY
- .byte 0x03 @ team flags
- .2byte MOVE_THUNDER, MOVE_EARTHQUAKE, MOVE_HYDRO_PUMP, MOVE_RAIN_DANCE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK
- .byte NATURE_NAUGHTY
- .2byte 0 @ padding
-
-@ 153
- .2byte SPECIES_HARIYAMA
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x21 @ team flags
- .2byte MOVE_BELLY_DRUM, MOVE_ENDURE, MOVE_EARTHQUAKE, MOVE_REVERSAL
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 154
- .2byte SPECIES_ABSOL
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0xC3 @ team flags
- .2byte MOVE_FAINT_ATTACK, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_FLAMETHROWER
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 155
- .2byte SPECIES_ALTARIA
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x83 @ team flags
- .2byte MOVE_DRAGON_DANCE, MOVE_MIRROR_MOVE, MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_RASH
- .2byte 0 @ padding
-
-@ 156
- .2byte SPECIES_MACHAMP
- .byte BATTLE_TOWER_ITEM_BLACK_BELT
- .byte 0x11 @ team flags
- .2byte MOVE_CROSS_CHOP, MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_ENCORE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 157
- .2byte SPECIES_FLYGON
- .byte BATTLE_TOWER_ITEM_DRAGON_FANG
- .byte 0x43 @ team flags
- .2byte MOVE_CRUNCH, MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 158
- .2byte SPECIES_BLAZIKEN
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x33 @ team flags
- .2byte MOVE_COUNTER, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_FLAMETHROWER
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 159
- .2byte SPECIES_GLALIE
- .byte BATTLE_TOWER_ITEM_NEVER_MELT_ICE
- .byte 0x81 @ team flags
- .2byte MOVE_BLIZZARD, MOVE_CRUNCH, MOVE_ICY_WIND, MOVE_DOUBLE_TEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_JOLLY
- .2byte 0 @ padding
-
-@ 160
- .2byte SPECIES_HUNTAIL
- .byte BATTLE_TOWER_ITEM_MYSTIC_WATER
- .byte 0xA1 @ team flags
- .2byte MOVE_RAIN_DANCE, MOVE_HYDRO_PUMP, MOVE_CRUNCH, MOVE_BLIZZARD
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 161
- .2byte SPECIES_MILOTIC
- .byte BATTLE_TOWER_ITEM_GANLON_BERRY
- .byte 0xD3 @ team flags
- .2byte MOVE_SURF, MOVE_ATTRACT, MOVE_RECOVER, MOVE_TOXIC
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 162
- .2byte SPECIES_GOREBYSS
- .byte BATTLE_TOWER_ITEM_PECHA_BERRY
- .byte 0x83 @ team flags
- .2byte MOVE_PSYCHIC, MOVE_SURF, MOVE_BLIZZARD, MOVE_SHADOW_BALL
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 163
- .2byte SPECIES_SCEPTILE
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x53 @ team flags
- .2byte MOVE_LEAF_BLADE, MOVE_ENDEAVOR, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED
- .byte NATURE_BASHFUL
- .2byte 0 @ padding
-
-@ 164
- .2byte SPECIES_SWAMPERT
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x53 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_SURF, MOVE_MUD_SHOT, MOVE_BLIZZARD
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 165
- .2byte SPECIES_AGGRON
- .byte BATTLE_TOWER_ITEM_MENTAL_HERB
- .byte 0x41 @ team flags
- .2byte MOVE_DOUBLE_EDGE, MOVE_FLAMETHROWER, MOVE_IRON_TAIL, MOVE_BLIZZARD
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_BOLD
- .2byte 0 @ padding
-
-@ 166
- .2byte SPECIES_CRADILY
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0xE1 @ team flags
- .2byte MOVE_STOCKPILE, MOVE_SPIT_UP, MOVE_SWALLOW, MOVE_DOUBLE_TEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 167
- .2byte SPECIES_ARMALDO
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0xC1 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_HYPER_BEAM, MOVE_SLASH, MOVE_SWORDS_DANCE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 168
- .2byte SPECIES_BRELOOM
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x82 @ team flags
- .2byte MOVE_FOCUS_PUNCH, MOVE_COUNTER, MOVE_MACH_PUNCH, MOVE_SNATCH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 169
- .2byte SPECIES_LUDICOLO
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x83 @ team flags
- .2byte MOVE_RAIN_DANCE, MOVE_SURF, MOVE_PROTECT, MOVE_TOXIC
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 170
- .2byte SPECIES_SHIFTRY
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x03 @ team flags
- .2byte MOVE_TORMENT, MOVE_FAINT_ATTACK, MOVE_SHADOW_BALL, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 171
- .2byte SPECIES_TROPIUS
- .byte BATTLE_TOWER_ITEM_APICOT_BERRY
- .byte 0xC3 @ team flags
- .2byte MOVE_SUNNY_DAY, MOVE_SYNTHESIS, MOVE_SOLAR_BEAM, MOVE_LEECH_SEED
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 172
- .2byte SPECIES_GRUMPIG
- .byte BATTLE_TOWER_ITEM_MACHO_BRACE
- .byte 0x23 @ team flags
- .2byte MOVE_TRICK, MOVE_SKILL_SWAP, MOVE_PSYCHIC, MOVE_REST
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 173
- .2byte SPECIES_TORKOAL
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x81 @ team flags
- .2byte MOVE_IRON_DEFENSE, MOVE_TOXIC, MOVE_REST, MOVE_FLAMETHROWER
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 174
- .2byte SPECIES_MANECTRIC
- .byte BATTLE_TOWER_ITEM_NONE
- .byte 0x03 @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_CRUNCH, MOVE_ROAR, MOVE_THIEF
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 175
- .2byte SPECIES_PINSIR
- .byte BATTLE_TOWER_ITEM_LEPPA_BERRY
- .byte 0x61 @ team flags
- .2byte MOVE_GUILLOTINE, MOVE_EARTHQUAKE, MOVE_DOUBLE_TEAM, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 176
- .2byte SPECIES_STARMIE
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x93 @ team flags
- .2byte MOVE_LIGHT_SCREEN, MOVE_THUNDERBOLT, MOVE_SURF, MOVE_REST
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 177
- .2byte SPECIES_HERACROSS
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x51 @ team flags
- .2byte MOVE_MEGAHORN, MOVE_REVERSAL, MOVE_EARTHQUAKE, MOVE_COUNTER
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 178
- .2byte SPECIES_WALREIN
- .byte BATTLE_TOWER_ITEM_NEVER_MELT_ICE
- .byte 0x83 @ team flags
- .2byte MOVE_BLIZZARD, MOVE_EARTHQUAKE, MOVE_SURF, MOVE_ROCK_SLIDE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 179
- .2byte SPECIES_ALAKAZAM
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x13 @ team flags
- .2byte MOVE_PSYCHIC, MOVE_RECOVER, MOVE_ENCORE, MOVE_SNATCH
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 180
- .2byte SPECIES_MILOTIC
- .byte BATTLE_TOWER_ITEM_APICOT_BERRY
- .byte 0x93 @ team flags
- .2byte MOVE_SURF, MOVE_BLIZZARD, MOVE_RECOVER, MOVE_DOUBLE_TEAM
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 181
- .2byte SPECIES_REGICE
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x11 @ team flags
- .2byte MOVE_REST, MOVE_CURSE, MOVE_BLIZZARD, MOVE_EARTHQUAKE
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_MILD
- .2byte 0 @ padding
-
-@ 182
- .2byte SPECIES_REGISTEEL
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x11 @ team flags
- .2byte MOVE_REST, MOVE_IRON_DEFENSE, MOVE_THUNDERBOLT, MOVE_EARTHQUAKE
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_MILD
- .2byte 0 @ padding
-
-@ 183
- .2byte SPECIES_REGIROCK
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x91 @ team flags
- .2byte MOVE_ROCK_TOMB, MOVE_EARTHQUAKE, MOVE_THUNDERBOLT, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 184
- .2byte SPECIES_DUSCLOPS
- .byte BATTLE_TOWER_ITEM_SPELL_TAG
- .byte 0x20 @ team flags
- .2byte MOVE_SHADOW_BALL, MOVE_EARTHQUAKE, MOVE_BLIZZARD, MOVE_DESTINY_BOND
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_NAUGHTY
- .2byte 0 @ padding
-
-@ 185
- .2byte SPECIES_SEAKING
- .byte BATTLE_TOWER_ITEM_LEPPA_BERRY
- .byte 0xB2 @ team flags
- .2byte MOVE_HORN_DRILL, MOVE_AGILITY, MOVE_SLEEP_TALK, MOVE_REST
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 186
- .2byte SPECIES_CAMERUPT
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x00 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_ERUPTION, MOVE_ROCK_SLIDE, MOVE_FLAMETHROWER
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 187
- .2byte SPECIES_LANTURN
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x82 @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_SURF, MOVE_THUNDER_WAVE, MOVE_BLIZZARD
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 188
- .2byte SPECIES_WEEZING
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x20 @ team flags
- .2byte MOVE_SLUDGE_BOMB, MOVE_THUNDERBOLT, MOVE_FIRE_BLAST, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 189
- .2byte SPECIES_WHISCASH
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x41 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_SURF, MOVE_ROCK_TOMB, MOVE_ATTRACT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 190
- .2byte SPECIES_AGGRON
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x11 @ team flags
- .2byte MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_SURF, MOVE_DRAGON_CLAW
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 191
- .2byte SPECIES_CACTURNE
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x63 @ team flags
- .2byte MOVE_DYNAMIC_PUNCH, MOVE_COUNTER, MOVE_FAINT_ATTACK, MOVE_GIGA_DRAIN
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 192
- .2byte SPECIES_SHARPEDO
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x01 @ team flags
- .2byte MOVE_CRUNCH, MOVE_DOUBLE_EDGE, MOVE_SURF, MOVE_SWAGGER
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 193
- .2byte SPECIES_ABSOL
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x82 @ team flags
- .2byte MOVE_DOUBLE_EDGE, MOVE_FACADE, MOVE_SWORDS_DANCE, MOVE_QUICK_ATTACK
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 194
- .2byte SPECIES_WAILORD
- .byte BATTLE_TOWER_ITEM_LEPPA_BERRY
- .byte 0x23 @ team flags
- .2byte MOVE_HYDRO_PUMP, MOVE_EARTHQUAKE, MOVE_ATTRACT, MOVE_FISSURE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 195
- .2byte SPECIES_TENTACRUEL
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x21 @ team flags
- .2byte MOVE_HYDRO_PUMP, MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN, MOVE_MIRROR_COAT
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_RASH
- .2byte 0 @ padding
-
-@ 196
- .2byte SPECIES_LUDICOLO
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0xA2 @ team flags
- .2byte MOVE_RAIN_DANCE, MOVE_SURF, MOVE_TOXIC, MOVE_DOUBLE_TEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 197
- .2byte SPECIES_WOBBUFFET
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x23 @ team flags
- .2byte MOVE_ENCORE, MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_DESTINY_BOND
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 198
- .2byte SPECIES_RHYDON
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x21 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_MEGAHORN, MOVE_HORN_DRILL, MOVE_ROCK_SLIDE
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 199
- .2byte SPECIES_GLALIE
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x21 @ team flags
- .2byte MOVE_CRUNCH, MOVE_BLIZZARD, MOVE_HAIL, MOVE_EARTHQUAKE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 200
- .2byte SPECIES_SCEPTILE
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x13 @ team flags
- .2byte MOVE_LEAF_BLADE, MOVE_EARTHQUAKE, MOVE_DRAGON_CLAW, MOVE_CRUNCH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 201
- .2byte SPECIES_BLAZIKEN
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x17 @ team flags
- .2byte MOVE_BLAZE_KICK, MOVE_ROCK_TOMB, MOVE_ENDURE, MOVE_REVERSAL
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_RASH
- .2byte 0 @ padding
-
-@ 202
- .2byte SPECIES_SWAMPERT
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x17 @ team flags
- .2byte MOVE_SURF, MOVE_EARTHQUAKE, MOVE_MUD_SHOT, MOVE_BLIZZARD
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 203
- .2byte SPECIES_GARDEVOIR
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x19 @ team flags
- .2byte MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_DESTINY_BOND, MOVE_WILL_O_WISP
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 204
- .2byte SPECIES_BRELOOM
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0xF6 @ team flags
- .2byte MOVE_SPORE, MOVE_FOCUS_PUNCH, MOVE_BRICK_BREAK, MOVE_SLUDGE_BOMB
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 205
- .2byte SPECIES_ALAKAZAM
- .byte BATTLE_TOWER_ITEM_GANLON_BERRY
- .byte 0x1B @ team flags
- .2byte MOVE_PSYCHIC, MOVE_THUNDER_PUNCH, MOVE_REFLECT, MOVE_RECOVER
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 206
- .2byte SPECIES_SHIFTRY
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x89 @ team flags
- .2byte MOVE_FAINT_ATTACK, MOVE_SHADOW_BALL, MOVE_DOUBLE_TEAM, MOVE_REST
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 207
- .2byte SPECIES_HARIYAMA
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x85 @ team flags
- .2byte MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FAKE_OUT
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 208
- .2byte SPECIES_CROBAT
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x49 @ team flags
- .2byte MOVE_ATTRACT, MOVE_CONFUSE_RAY, MOVE_BITE, MOVE_DOUBLE_TEAM
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 209
- .2byte SPECIES_MACHAMP
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x15 @ team flags
- .2byte MOVE_CROSS_CHOP, MOVE_FLAMETHROWER, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 210
- .2byte SPECIES_MANECTRIC
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x0B @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_ROAR, MOVE_CRUNCH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 211
- .2byte SPECIES_ELECTRODE
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x27 @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_MIRROR_COAT, MOVE_EXPLOSION
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_BASHFUL
- .2byte 0 @ padding
-
-@ 212
- .2byte SPECIES_MUK
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x05 @ team flags
- .2byte MOVE_SLUDGE_BOMB, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_EXPLOSION
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 213
- .2byte SPECIES_FLYGON
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x4D @ team flags
- .2byte MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER, MOVE_CRUNCH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 214
- .2byte SPECIES_STARMIE
- .byte BATTLE_TOWER_ITEM_APICOT_BERRY
- .byte 0x1B @ team flags
- .2byte MOVE_SURF, MOVE_THUNDERBOLT, MOVE_RECOVER, MOVE_CONFUSE_RAY
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 215
- .2byte SPECIES_DODRIO
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x2B @ team flags
- .2byte MOVE_DRILL_PECK, MOVE_TRI_ATTACK, MOVE_AGILITY, MOVE_FACADE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 216
- .2byte SPECIES_RAICHU
- .byte BATTLE_TOWER_ITEM_FOCUS_BAND
- .byte 0x0A @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_REVERSAL, MOVE_ATTRACT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 217
- .2byte SPECIES_GOLDUCK
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x0A @ team flags
- .2byte MOVE_SURF, MOVE_CROSS_CHOP, MOVE_ICE_BEAM, MOVE_HYPER_BEAM
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 218
- .2byte SPECIES_HERACROSS
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x54 @ team flags
- .2byte MOVE_MEGAHORN, MOVE_ROCK_TOMB, MOVE_ENDURE, MOVE_REVERSAL
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 219
- .2byte SPECIES_WALREIN
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x06 @ team flags
- .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_REST
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_NAIVE
- .2byte 0 @ padding
-
-@ 220
- .2byte SPECIES_KINGDRA
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x1D @ team flags
- .2byte MOVE_SURF, MOVE_TOXIC, MOVE_PROTECT, MOVE_REST
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 221
- .2byte SPECIES_SALAMENCE
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x9C @ team flags
- .2byte MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_REST
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 222
- .2byte SPECIES_METAGROSS
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x15 @ team flags
- .2byte MOVE_METEOR_MASH, MOVE_PSYCHIC, MOVE_EARTHQUAKE, MOVE_LIGHT_SCREEN
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 223
- .2byte SPECIES_REGIROCK
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0xB5 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_FOCUS_PUNCH, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 224
- .2byte SPECIES_REGICE
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x96 @ team flags
- .2byte MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_DOUBLE_TEAM, MOVE_REST
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 225
- .2byte SPECIES_REGISTEEL
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x94 @ team flags
- .2byte MOVE_METAL_CLAW, MOVE_EARTHQUAKE, MOVE_THUNDERBOLT, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 226
- .2byte SPECIES_LATIAS
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x96 @ team flags
- .2byte MOVE_MIST_BALL, MOVE_THUNDERBOLT, MOVE_REST, MOVE_DRAGON_CLAW
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_MILD
- .2byte 0 @ padding
-
-@ 227
- .2byte SPECIES_LATIOS
- .byte BATTLE_TOWER_ITEM_APICOT_BERRY
- .byte 0x95 @ team flags
- .2byte MOVE_LUSTER_PURGE, MOVE_REFLECT, MOVE_RECOVER, MOVE_DRAGON_CLAW
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 228
- .2byte SPECIES_MILOTIC
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x96 @ team flags
- .2byte MOVE_SURF, MOVE_TOXIC, MOVE_RECOVER, MOVE_MIRROR_COAT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 229
- .2byte SPECIES_SLAKING
- .byte BATTLE_TOWER_ITEM_CHOICE_BAND
- .byte 0x05 @ team flags
- .2byte MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_NONE, MOVE_NONE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 230
- .2byte SPECIES_SCEPTILE
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x1F @ team flags
- .2byte MOVE_GIGA_DRAIN, MOVE_DOUBLE_TEAM, MOVE_LEECH_SEED, MOVE_ATTRACT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 231
- .2byte SPECIES_BLAZIKEN
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x17 @ team flags
- .2byte MOVE_BLAZE_KICK, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_REST
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 232
- .2byte SPECIES_SWAMPERT
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x17 @ team flags
- .2byte MOVE_MUDDY_WATER, MOVE_MUD_SHOT, MOVE_MIRROR_COAT, MOVE_ICE_BEAM
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 233
- .2byte SPECIES_GARDEVOIR
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x7B @ team flags
- .2byte MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_DESTINY_BOND, MOVE_SNATCH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_RELAXED
- .2byte 0 @ padding
-
-@ 234
- .2byte SPECIES_BRELOOM
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x56 @ team flags
- .2byte MOVE_SPORE, MOVE_COUNTER, MOVE_IRON_TAIL, MOVE_GIGA_DRAIN
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 235
- .2byte SPECIES_ALAKAZAM
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x0A @ team flags
- .2byte MOVE_PSYCHIC, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_RECOVER
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 236
- .2byte SPECIES_HARIYAMA
- .byte BATTLE_TOWER_ITEM_FOCUS_BAND
- .byte 0x05 @ team flags
- .2byte MOVE_CROSS_CHOP, MOVE_ROCK_TOMB, MOVE_ENDURE, MOVE_REVERSAL
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 237
- .2byte SPECIES_GYARADOS
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x0C @ team flags
- .2byte MOVE_HYPER_BEAM, MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_ICE_BEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_BOLD
- .2byte 0 @ padding
-
-@ 238
- .2byte SPECIES_CROBAT
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x49 @ team flags
- .2byte MOVE_TOXIC, MOVE_CONFUSE_RAY, MOVE_ATTRACT, MOVE_PROTECT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 239
- .2byte SPECIES_MACHAMP
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x15 @ team flags
- .2byte MOVE_CROSS_CHOP, MOVE_COUNTER, MOVE_EARTHQUAKE, MOVE_FACADE
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 240
- .2byte SPECIES_MANECTRIC
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x63 @ team flags
- .2byte MOVE_THUNDER, MOVE_THUNDER_WAVE, MOVE_REST, MOVE_CRUNCH
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 241
- .2byte SPECIES_ELECTRODE
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x07 @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_SCREECH, MOVE_MIRROR_COAT, MOVE_EXPLOSION
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_MODEST
- .2byte 0 @ padding
-
-@ 242
- .2byte SPECIES_MUK
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x45 @ team flags
- .2byte MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN, MOVE_ROCK_TOMB, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_RASH
- .2byte 0 @ padding
-
-@ 243
- .2byte SPECIES_FLYGON
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x4D @ team flags
- .2byte MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_IRON_TAIL, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_IMPISH
- .2byte 0 @ padding
-
-@ 244
- .2byte SPECIES_STARMIE
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x1B @ team flags
- .2byte MOVE_LIGHT_SCREEN, MOVE_THUNDERBOLT, MOVE_SURF, MOVE_REST
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 245
- .2byte SPECIES_NINETALES
- .byte BATTLE_TOWER_ITEM_SITRUS_BERRY
- .byte 0x0A @ team flags
- .2byte MOVE_CONFUSE_RAY, MOVE_OVERHEAT, MOVE_FLAMETHROWER, MOVE_IRON_TAIL
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 246
- .2byte SPECIES_GOLEM
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x25 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_ROAR, MOVE_FIRE_BLAST, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 247
- .2byte SPECIES_GOLDUCK
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x27 @ team flags
- .2byte MOVE_HYDRO_PUMP, MOVE_CROSS_CHOP, MOVE_BLIZZARD, MOVE_PSYCH_UP
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 248
- .2byte SPECIES_HERACROSS
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x55 @ team flags
- .2byte MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_COUNTER, MOVE_REVERSAL
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 249
- .2byte SPECIES_WALREIN
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x36 @ team flags
- .2byte MOVE_SURF, MOVE_BLIZZARD, MOVE_ROCK_SLIDE, MOVE_SHEER_COLD
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 250
- .2byte SPECIES_KINGDRA
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x5C @ team flags
- .2byte MOVE_HYDRO_PUMP, MOVE_PROTECT, MOVE_DRAGON_BREATH, MOVE_DOUBLE_TEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 251
- .2byte SPECIES_SALAMENCE
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x9D @ team flags
- .2byte MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 252
- .2byte SPECIES_METAGROSS
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x15 @ team flags
- .2byte MOVE_METEOR_MASH, MOVE_PSYCHIC, MOVE_EARTHQUAKE, MOVE_HYPER_BEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 253
- .2byte SPECIES_REGIROCK
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x95 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_ROCK_TOMB, MOVE_FACADE, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 254
- .2byte SPECIES_REGICE
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x96 @ team flags
- .2byte MOVE_BLIZZARD, MOVE_THUNDERBOLT, MOVE_HAIL, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE
- .byte NATURE_CAREFUL
- .2byte 0 @ padding
-
-@ 255
- .2byte SPECIES_REGISTEEL
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x94 @ team flags
- .2byte MOVE_METAL_CLAW, MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 256
- .2byte SPECIES_LATIAS
- .byte BATTLE_TOWER_ITEM_APICOT_BERRY
- .byte 0x96 @ team flags
- .2byte MOVE_MIST_BALL, MOVE_REFLECT, MOVE_RECOVER, MOVE_DRAGON_CLAW
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 257
- .2byte SPECIES_LATIOS
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x95 @ team flags
- .2byte MOVE_LUSTER_PURGE, MOVE_ICE_BEAM, MOVE_RECOVER, MOVE_DRAGON_CLAW
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 258
- .2byte SPECIES_MILOTIC
- .byte BATTLE_TOWER_ITEM_APICOT_BERRY
- .byte 0xD6 @ team flags
- .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_RECOVER, MOVE_DOUBLE_TEAM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 259
- .2byte SPECIES_KECLEON
- .byte BATTLE_TOWER_ITEM_CHOICE_BAND
- .byte 0x69 @ team flags
- .2byte MOVE_TRICK, MOVE_REST, MOVE_IRON_TAIL, MOVE_DISABLE
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_QUIRKY
- .2byte 0 @ padding
-
-@ 260
- .2byte SPECIES_SCEPTILE
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x5F @ team flags
- .2byte MOVE_LEAF_BLADE, MOVE_EARTHQUAKE, MOVE_REST, MOVE_CRUNCH
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 261
- .2byte SPECIES_BLAZIKEN
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x7F @ team flags
- .2byte MOVE_FOCUS_PUNCH, MOVE_COUNTER, MOVE_SWAGGER, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 262
- .2byte SPECIES_SWAMPERT
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x57 @ team flags
- .2byte MOVE_IRON_TAIL, MOVE_CURSE, MOVE_DOUBLE_TEAM, MOVE_REST
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 263
- .2byte SPECIES_GARDEVOIR
- .byte BATTLE_TOWER_ITEM_CHESTO_BERRY
- .byte 0x3B @ team flags
- .2byte MOVE_SHADOW_BALL, MOVE_PSYCHIC, MOVE_REST, MOVE_IMPRISON
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 264
- .2byte SPECIES_BRELOOM
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x56 @ team flags
- .2byte MOVE_SPORE, MOVE_FOCUS_PUNCH, MOVE_SLUDGE_BOMB, MOVE_IRON_TAIL
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 265
- .2byte SPECIES_ALAKAZAM
- .byte BATTLE_TOWER_ITEM_CHOICE_BAND
- .byte 0x1A @ team flags
- .2byte MOVE_PSYCHIC, MOVE_TRICK, MOVE_RECOVER, MOVE_SNATCH
- .byte F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HASTY
- .2byte 0 @ padding
-
-@ 266
- .2byte SPECIES_HARIYAMA
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x65 @ team flags
- .2byte MOVE_REVENGE, MOVE_COUNTER, MOVE_FOCUS_PUNCH, MOVE_REVERSAL
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 267
- .2byte SPECIES_LUDICOLO
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x54 @ team flags
- .2byte MOVE_RAIN_DANCE, MOVE_PROTECT, MOVE_TOXIC, MOVE_SURF
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 268
- .2byte SPECIES_CROBAT
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0x4B @ team flags
- .2byte MOVE_SLUDGE_BOMB, MOVE_BITE, MOVE_AIR_CUTTER, MOVE_SHADOW_BALL
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 269
- .2byte SPECIES_MACHAMP
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x75 @ team flags
- .2byte MOVE_CROSS_CHOP, MOVE_ROCK_SLIDE, MOVE_DYNAMIC_PUNCH, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 270
- .2byte SPECIES_MANECTRIC
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x0A @ team flags
- .2byte MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_ATTRACT, MOVE_CRUNCH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 271
- .2byte SPECIES_ELECTRODE
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x64 @ team flags
- .2byte MOVE_THUNDER, MOVE_DOUBLE_TEAM, MOVE_MIRROR_COAT, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_BASHFUL
- .2byte 0 @ padding
-
-@ 272
- .2byte SPECIES_MUK
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x49 @ team flags
- .2byte MOVE_SLUDGE_BOMB, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_PUNCH
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_GENTLE
- .2byte 0 @ padding
-
-@ 273
- .2byte SPECIES_FLYGON
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0xCD @ team flags
- .2byte MOVE_PROTECT, MOVE_DIG, MOVE_TOXIC, MOVE_SANDSTORM
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 274
- .2byte SPECIES_STARMIE
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x5B @ team flags
- .2byte MOVE_SURF, MOVE_THUNDERBOLT, MOVE_BLIZZARD, MOVE_PSYCHIC
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 275
- .2byte SPECIES_LUDICOLO
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0x1A @ team flags
- .2byte MOVE_RAIN_DANCE, MOVE_LEECH_SEED, MOVE_DIVE, MOVE_PROTECT
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 276
- .2byte SPECIES_RAICHU
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x4A @ team flags
- .2byte MOVE_THUNDER, MOVE_REVERSAL, MOVE_FACADE, MOVE_IRON_TAIL
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_TIMID
- .2byte 0 @ padding
-
-@ 277
- .2byte SPECIES_GOLDUCK
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x0A @ team flags
- .2byte MOVE_SURF, MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_IRON_TAIL
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 278
- .2byte SPECIES_HERACROSS
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0x15 @ team flags
- .2byte MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 279
- .2byte SPECIES_WALREIN
- .byte BATTLE_TOWER_ITEM_LEPPA_BERRY
- .byte 0x26 @ team flags
- .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_FISSURE, MOVE_SHEER_COLD
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 280
- .2byte SPECIES_KINGDRA
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x4D @ team flags
- .2byte MOVE_HYDRO_PUMP, MOVE_BLIZZARD, MOVE_HYPER_BEAM, MOVE_DISABLE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 281
- .2byte SPECIES_SALAMENCE
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x9C @ team flags
- .2byte MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FIRE_BLAST, MOVE_HYDRO_PUMP
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_NAUGHTY
- .2byte 0 @ padding
-
-@ 282
- .2byte SPECIES_METAGROSS
- .byte BATTLE_TOWER_ITEM_LIECHI_BERRY
- .byte 0xB5 @ team flags
- .2byte MOVE_METEOR_MASH, MOVE_PSYCHIC, MOVE_PURSUIT, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 283
- .2byte SPECIES_REGIROCK
- .byte BATTLE_TOWER_ITEM_APICOT_BERRY
- .byte 0x95 @ team flags
- .2byte MOVE_EARTHQUAKE, MOVE_TOXIC, MOVE_SUPERPOWER, MOVE_REST
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_SERIOUS
- .2byte 0 @ padding
-
-@ 284
- .2byte SPECIES_REGICE
- .byte BATTLE_TOWER_ITEM_LAX_INCENSE
- .byte 0x96 @ team flags
- .2byte MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_ANCIENT_POWER, MOVE_EXPLOSION
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE
- .byte NATURE_RASH
- .2byte 0 @ padding
-
-@ 285
- .2byte SPECIES_REGISTEEL
- .byte BATTLE_TOWER_ITEM_LEFTOVERS
- .byte 0xB4 @ team flags
- .2byte MOVE_CURSE, MOVE_AMNESIA, MOVE_RETURN, MOVE_REST
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_LAX
- .2byte 0 @ padding
-
-@ 286
- .2byte SPECIES_LATIAS
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x92 @ team flags
- .2byte MOVE_MIST_BALL, MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_ICE_BEAM
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 287
- .2byte SPECIES_LATIOS
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0x91 @ team flags
- .2byte MOVE_LUSTER_PURGE, MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_SURF
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 288
- .2byte SPECIES_MILOTIC
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0xB2 @ team flags
- .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_RECOVER, MOVE_ATTRACT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_BRAVE
- .2byte 0 @ padding
-
-@ 289
- .2byte SPECIES_SLAKING
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0x65 @ team flags
- .2byte MOVE_YAWN, MOVE_SLASH, MOVE_COUNTER, MOVE_HYPER_BEAM
- .byte F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 290
- .2byte SPECIES_SCEPTILE
- .byte BATTLE_TOWER_ITEM_SHELL_BELL
- .byte 0xDF @ team flags
- .2byte MOVE_LEAF_BLADE, MOVE_DETECT, MOVE_DRAGON_CLAW, MOVE_CRUNCH
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 291
- .2byte SPECIES_BLAZIKEN
- .byte BATTLE_TOWER_ITEM_SALAC_BERRY
- .byte 0xD7 @ team flags
- .2byte MOVE_BLAZE_KICK, MOVE_SKY_UPPERCUT, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK
- .byte NATURE_DOCILE
- .2byte 0 @ padding
-
-@ 292
- .2byte SPECIES_SWAMPERT
- .byte BATTLE_TOWER_ITEM_PETAYA_BERRY
- .byte 0x5F @ team flags
- .2byte MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_ROCK_TOMB
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP
- .byte NATURE_SASSY
- .2byte 0 @ padding
-
-@ 293
- .2byte SPECIES_SHEDINJA
- .byte BATTLE_TOWER_ITEM_BRIGHT_POWDER
- .byte 0xDB @ team flags
- .2byte MOVE_CONFUSE_RAY, MOVE_SHADOW_BALL, MOVE_TOXIC, MOVE_HYPER_BEAM
- .byte F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 294
- .2byte SPECIES_METAGROSS
- .byte BATTLE_TOWER_ITEM_QUICK_CLAW
- .byte 0x94 @ team flags
- .2byte MOVE_METEOR_MASH, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 295
- .2byte SPECIES_GRUMPIG
- .byte BATTLE_TOWER_ITEM_MACHO_BRACE
- .byte 0x4B @ team flags
- .2byte MOVE_PSYCHIC, MOVE_CONFUSE_RAY, MOVE_TRICK, MOVE_REFLECT
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 296
- .2byte SPECIES_LATIAS
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x92 @ team flags
- .2byte MOVE_MIST_BALL, MOVE_RECOVER, MOVE_ATTRACT, MOVE_DRAGON_CLAW
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_ADAMANT
- .2byte 0 @ padding
-
-@ 297
- .2byte SPECIES_LATIOS
- .byte BATTLE_TOWER_ITEM_KINGS_ROCK
- .byte 0x91 @ team flags
- .2byte MOVE_LUSTER_PURGE, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_DRAGON_CLAW
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_HARDY
- .2byte 0 @ padding
-
-@ 298
- .2byte SPECIES_STARMIE
- .byte BATTLE_TOWER_ITEM_LUM_BERRY
- .byte 0x1A @ team flags
- .2byte MOVE_SURF, MOVE_THUNDERBOLT, MOVE_PSYCHIC, MOVE_ICE_BEAM
- .byte F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED
- .byte NATURE_QUIET
- .2byte 0 @ padding
-
-@ 299
- .2byte SPECIES_MACHAMP
- .byte BATTLE_TOWER_ITEM_SCOPE_LENS
- .byte 0x14 @ team flags
- .2byte MOVE_CROSS_CHOP, MOVE_COUNTER, MOVE_ROCK_TOMB, MOVE_FLAMETHROWER
- .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP
- .byte NATURE_HARDY
- .2byte 0 @ padding
diff --git a/data/battle_tower/trainers.inc b/data/battle_tower/trainers.inc
deleted file mode 100644
index 05fadc320..000000000
--- a/data/battle_tower/trainers.inc
+++ /dev/null
@@ -1,1301 +0,0 @@
- .align 2
-gBattleTowerTrainers:: @ 8402F00
-@ 0
- .byte TRAINER_CLASS_YOUNGSTER
- .string "ALVIN$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word ARE
- ec_word YOU
- ec_word READY
- ec_word QUES
- ec_word HERE_I_COME
- ec_word EXCL
-
-@ 1
- .byte TRAINER_CLASS_BIRD_KEEPER
- .string "DIRK$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word OKAY
- ec_word I_AM
- ec_word GOING
- ec_word FOR
- ec_word IT
- ec_word EXCL
-
-@ 2
- .byte TRAINER_CLASS_LADY
- .string "CYBIL$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOU_RE
- ec_word A
- ec_word PUSHOVER
- ec_word LET_S
- ec_word GET
- ec_word GOING
-
-@ 3
- .byte TRAINER_CLASS_BLACK_BELT
- .string "CHEN$", 8
- .byte 0x05 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word MY
- ec_word SPIRIT
- ec_word IS
- ec_word ENOUGH
- ec_word SNORT
- ec_word ARRGH
-
-@ 4
- .byte TRAINER_CLASS_NINJA_BOY
- .string "YOSHI$", 8
- .byte 0x05 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word GO
- ec_word MY
- ec_word POKEMON
- ec_word FIGHT
- ec_word THE
- ec_word BATTLE
-
-@ 5
- .byte TRAINER_CLASS_SCHOOL_KID_F
- .string "TINA$", 8
- .byte 0x0A @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word STUDY
- ec_word IS
- ec_word BORING
- ec_word LET_S
- ec_word BATTLE
- ec_word NOW
-
-@ 6
- .byte TRAINER_CLASS_BUG_MANIAC
- .string "COREY$", 8
- .byte 0x41 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word HEY
- ec_word I
- ec_word WILL
- ec_move2 TRANSFORM
- ec_word FOR
- ec_move1 STRENGTH
-
-@ 7
- .byte TRAINER_CLASS_FISHERMAN
- .string "GORDON$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word NEED
- ec_word A
- ec_word VACATION
- ec_word RIGHT
- ec_word NOW
-
-@ 8
- .byte TRAINER_CLASS_TUBER_F
- .string "ANN$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WE
- ec_word ALL
- ec_word ADORE
- ec_word POKEMON
- ec_word ABSOLUTELY
- ec_word TRULY
-
-@ 9
- .byte TRAINER_CLASS_POKEFAN_F
- .string "JULIA$", 8
- .byte 0x42 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I_AM
- ec_word A
- ec_word CUTE
- ec_word LADY
- ec_word YES
- ec_word I_AM
-
-@ 10
- .byte TRAINER_CLASS_GENTLEMAN
- .string "GREGORY$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word THINK
- ec_word WE
- ec_word SHOULD
- ec_word START
- ec_word TODAY
-
-@ 11
- .byte TRAINER_CLASS_CAMPER
- .string "KEITH$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOU_RE
- ec_word MY
- ec_word FRIEND
- ec_word FROM
- ec_word NOW
- ec_word ON
-
-@ 12
- .byte TRAINER_CLASS_RUNNING_TRIATHLETE_F
- .string "KENDRA$", 8
- .byte 0x0A @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I_AM
- ec_move1 SWIFT
- ec_word HOW
- ec_word ABOUT
- ec_word YOU
- ec_word QUES
-
-@ 13
- .byte TRAINER_CLASS_HIKER
- .string "DEV$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WAHAHAHA
- ec_word I_AM
- ec_word FEELING
- ec_word LIKE
- ec_word IT_S
- ec_move2 PAY_DAY
-
-@ 14
- .byte TRAINER_CLASS_BATTLE_GIRL
- .string "CASSIE$", 8
- .byte 0x0A @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOU_RE
- ec_word STRONG
- ec_word AREN_T
- .2byte -1
- ec_word YOU
- ec_word QUES
-
-@ 15
- .byte TRAINER_CLASS_PSYCHIC_M
- .string "JULIAN$", 8
- .byte 0x05 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word FUFUFU
- .2byte -1
- ec_word YOU
- ec_word CAN_T
- ec_word WIN
- ec_word KID
-
-@ 16
- .byte TRAINER_CLASS_LASS
- .string "JOYCE$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word BE
- ec_word KIND
- ec_word TO
- ec_word THE
- ec_word DIGITAL
- ec_word IDOL
-
-@ 17
- .byte TRAINER_CLASS_GUITARIST
- .string "LES$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I_AM
- ec_word GREAT
- ec_word YOU_RE
- ec_word JUST
- ec_word RATHER
- ec_word OKAY
-
-@ 18
- .byte TRAINER_CLASS_RICH_BOY
- .string "CLINTON$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word HAVE
- ec_word ROUGH_SKIN
- ec_word I
- ec_word NEED
- ec_word NATURAL_CURE
-
-@ 19
- .byte TRAINER_CLASS_BUG_CATCHER
- .string "LEWIS$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word THIS
- ec_word IS
- ec_word EXCITING
- ec_word CAN
- ec_word I
- ec_word WIN
-
-@ 20
- .byte TRAINER_CLASS_PICNICKER
- .string "RACHAEL$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word LIKE
- ec_word WALKING
- ec_word WITH
- ec_word MY
- ec_word POKEMON
-
-@ 21
- .byte TRAINER_CLASS_COLLECTOR
- .string "HAROLD$", 8
- .byte 0x09 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word HERE
- ec_word THEY
- ec_word COME
- ec_word MY
- ec_move2 SUPERPOWER
- ec_word POKEMON
-
-@ 22
- .byte TRAINER_CLASS_TUBER_M
- .string "KIPP$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I_AM
- ec_word A
- ec_word GENIUS
- ec_word I
- ec_word SHOULD
- ec_word WIN
-
-@ 23
- .byte TRAINER_CLASS_KINDLER
- .string "IRWIN$", 8
- .byte 0x05 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOU
- ec_word WILL
- ec_word BE
- ec_word FEELING
- ec_word MY
- ec_word FIRE
-
-@ 24
- .byte TRAINER_CLASS_PSYCHIC_F
- .string "EILEEN$", 8
- .byte 0x0A @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word WILL
- ec_move1 ASTONISH
- ec_word YOU
- ec_word IN
- ec_word BATTLE
-
-@ 25
- .byte TRAINER_CLASS_SWIMMER_F
- .string "ANNE$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word SORRY
- ec_word BUT
- ec_word YOU
- ec_word WILL
- ec_word NOT
- ec_word WIN
-
-@ 26
- .byte TRAINER_CLASS_CYCLING_TRIATHLETE_F
- .string "RUTH$", 8
- .byte 0x06 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word A
- ec_word STRONG
- ec_word GIRL
- ec_word WANTS
- ec_word TOUGH
- ec_word POKEMON
-
-@ 27
- .byte TRAINER_CLASS_POKEMANIAC
- .string "JEREMY$", 8
- .byte 0x40 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word MY
- ec_word POKEMON
- ec_word ARE
- ec_word COOL
- ec_word YOURS
- ec_word CAN_T_WIN
-
-@ 28
- .byte TRAINER_CLASS_SAILOR
- .string "TREVOR$", 8
- .byte 0x09 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word MY
- ec_word OPPONENT
- ec_word IS
- ec_word FINALLY
- ec_word HERE
- ec_word EXCELLENT
-
-@ 29
- .byte TRAINER_CLASS_POKEMON_BREEDER_F
- .string "COLETTE$", 8
- .byte 0x06 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word AM
- ec_word HUNGRY
- ec_move2 POUND
- ec_word MY
- ec_move2 BELLY_DRUM
-
-@ 30
- .byte TRAINER_CLASS_HEX_MANIAC
- .string "PAULA$", 8
- .byte 0x42 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word IT_S
- ec_word HARD
- ec_word TO
- ec_word TAKE
- ec_word UGLY
- ec_move1 SPITE
-
-@ 31
- .byte TRAINER_CLASS_RUIN_MANIAC
- .string "STANLY$", 8
- .byte 0x41 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word ADVENTURE
- ec_word AND
- ec_word BATTLE
- ec_word ARE
- ec_word MY
- ec_word LIKES
-
-@ 32
- .byte TRAINER_CLASS_SWIMMING_TRIATHLETE_M
- .string "TROY$", 8
- .byte 0x09 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOU
- ec_word CAN_T
- ec_word LOSE
- ec_word TO
- ec_word A
- ec_word KID
-
-@ 33
- .byte TRAINER_CLASS_SCHOOL_KID_M
- .string "ED$", 8
- .byte 0x08 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word POKEMON
- ec_word DAILY
- ec_word AT
- ec_word SCHOOL
- ec_word IT_S
- ec_word AWESOME
-
-@ 34
- .byte TRAINER_CLASS_POKEMON_RANGER_F
- .string "ELLEN$", 8
- .byte 0x04 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word ARE
- ec_word YOU
- ec_word KIND
- ec_word TO
- ec_word YOUR
- ec_word POKEMON
-
-@ 35
- .byte TRAINER_CLASS_SWIMMER_M
- .string "ARNIE$", 8
- .byte 0x09 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word BATTLE
- ec_word SERIOUSLY
- ec_word BEAUTIFUL
- ec_word YOU
- ec_move1 DIG
-
-@ 36
- .byte TRAINER_CLASS_RUNNING_TRIATHLETE_M
- .string "HAL$", 8
- .byte 0x09 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word BOY
- ec_word I_AM
- ec_word TIRED
- ec_word READY
- ec_word FOR
- ec_word SLEEP
-
-@ 37
- .byte TRAINER_CLASS_BEAUTY
- .string "LAUREN$", 8
- .byte 0x06 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word A
- ec_word TRAINER
- ec_word LIKE
- ec_word YOU
- ec_word IS
- ec_word EXCITING
-
-@ 38
- .byte TRAINER_CLASS_AROMA_LADY
- .string "STACY$", 8
- .byte 0x06 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word HAVE
- ec_word YOU
- ec_word A
- ec_word STENCH
- ec_word OR
- ec_move1 SWEET_SCENT
-
-@ 39
- .byte TRAINER_CLASS_COLLECTOR
- .string "DARYL$", 8
- .byte 0x81 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOUR
- ec_word POKEMON
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- ec_word I
- ec_word WANT
- ec_word IT
-
-@ 40
- .byte TRAINER_CLASS_SWIMMING_TRIATHLETE_F
- .string "KATHY$", 8
- .byte 0x04 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word WILL
- ec_word TRY
- ec_word MY
- ec_word BEST
- ec_word TODAY
-
-@ 41
- .byte TRAINER_CLASS_POKEMON_RANGER_M
- .string "HARRIS$", 8
- .byte 0x0C @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WAAAH
- ec_word WAAAH
- ec_word WAAAH
- ec_word WAAAH
- ec_word EHEHE
- ec_move1 FAKE_TEARS
-
-@ 42
- .byte TRAINER_CLASS_POKEFAN_M
- .string "GLENN$", 8
- .byte 0x80 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word LISTEN
- ec_word TO
- ec_word MY
- ec_word LOUSY
- ec_word ANIME
- ec_word SONG
-
-@ 43
- .byte TRAINER_CLASS_CYCLING_TRIATHLETE_M
- .string "NICO$", 8
- .byte 0x04 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word DON_T
- ec_word JUST
- ec_word BATTLE
- ec_word DO
- ec_word SOMETHING
- ec_word ELSE
-
-@ 44
- .byte TRAINER_CLASS_POKEMON_BREEDER_M
- .string "BAILEY$", 8
- .byte 0x41 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word ARE
- ec_word YOU
- ec_word BUSY
- ec_word GET
- ec_word WITH
- ec_word IT
-
-@ 45
- .byte TRAINER_CLASS_PARASOL_LADY
- .string "ABBIE$", 8
- .byte 0x08 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word THE
- ec_move1 MORNING_SUN
- ec_word HAS
- ec_word SO
- ec_word MUCH
- ec_move1 COSMIC_POWER
-
-@ 46
- .byte TRAINER_CLASS_CAMPER
- .string "AL$", 8
- .byte 0x0C @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word LET_S
- ec_word HAVE
- ec_word AN
- ec_word EXCITING
- ec_word BATTLE
- ec_word YEEHAW_EXCL
-
-@ 47
- .byte TRAINER_CLASS_SCHOOL_KID_F
- .string "PEGGY$", 8
- .byte 0x42 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word WANT
- ec_word TO
- ec_word SEE
- ec_word SOME
- ec_move1 GROWTH
-
-@ 48
- .byte TRAINER_CLASS_BEAUTY
- .string "NAOMI$", 8
- .byte 0x04 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word IT
- ec_word WAS
- ec_word GREAT
- ec_word TO
- ec_word BE
- ec_word YOUNG
-
-@ 49
- .byte TRAINER_CLASS_NINJA_BOY
- .string "KENJI$", 8
- .byte 0x0C @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word PLEASE
- .2byte -1
- ec_word DON_T
- ec_word BE
- ec_word MEAN
- ec_word TO_ME
-
-@ 50
- .byte TRAINER_CLASS_CYCLING_TRIATHLETE_M
- .string "ROSS$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WAKE_UP
- ec_word MY
- ec_move2 HIDDEN_POWER
- ec_word AND
- ec_move1 ASTONISH
- ec_word ME
-
-@ 51
- .byte TRAINER_CLASS_POKEMON_RANGER_F
- .string "EDNA$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word BATTLE_TOWER
- ec_word IS
- ec_word SO
- ec_word ENTERTAINING
- ec_word IT_S
- ec_word AWESOME
-
-@ 52
- .byte TRAINER_CLASS_RUIN_MANIAC
- .string "ANTON$", 8
- .byte 0x41 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word BLEND
- ec_word THICK_FAT
- ec_word AND
- ec_word CHLOROPHYLL
- ec_word IT_S
- ec_word TASTY
-
-@ 53
- .byte TRAINER_CLASS_SWIMMER_M
- .string "MITCH$", 8
- .byte 0x81 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word NEXT
- ec_word A
- ec_word GIRL
- ec_word WITH
- ec_word A
- ec_move1 SCARY_FACE
-
-@ 54
- .byte TRAINER_CLASS_HEX_MANIAC
- .string "ROD$", 8
- .byte 0x42 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word GIMME
- ec_word A
- ec_word TOUGH
- ec_word BATTLE
- ec_word NOT
- ec_word WIMPY
-
-@ 55
- .byte TRAINER_CLASS_RUNNING_TRIATHLETE_M
- .string "RICH$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word TASTY
- ec_word WATER
- ec_word IS
- ec_word HIP_AND
- ec_word HAPPENING
- ec_word YES_SIR_EXCL
-
-@ 56
- .byte TRAINER_CLASS_POKEFAN_M
- .string "DANIEL$", 8
- .byte 0x80 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word GO
- ec_word FOR
- ec_word IT
- ec_word MY
- ec_word LOVEY_DOVEY
- ec_word POKEMON
-
-@ 57
- .byte TRAINER_CLASS_PSYCHIC_F
- .string "GLORIA$", 8
- .byte 0x82 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word LET_S
- ec_word GET
- ec_word THIS
- ec_word FIERY
- ec_word BATTLE
- ec_word HAPPENING
-
-@ 58
- .byte TRAINER_CLASS_GUITARIST
- .string "NELSON$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word MUSIC
- ec_word IS
- ec_word MY
- ec_word ALL
- ec_word MY
- ec_word DESTINY
-
-@ 59
- .byte TRAINER_CLASS_KINDLER
- .string "FERRIS$", 8
- .byte 0x41 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word GOOD
- ec_word IT
- ec_word IS
- ec_word SO
- ec_word VERY
- ec_word GOOD
-
-@ 60
- .byte TRAINER_CLASS_AROMA_LADY
- .string "AMANDA$", 8
- .byte 0x82 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WHAT
- ec_word KIND
- ec_word OF
- ec_word TRAINER
- ec_word ARE
- ec_word YOU
-
-@ 61
- .byte TRAINER_CLASS_SWIMMING_TRIATHLETE_M
- .string "MASON$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word DON_T
- ec_word KNOW
- ec_word HOW
- ec_word TO
- ec_word LOSE
-
-@ 62
- .byte TRAINER_CLASS_DRAGON_TAMER
- .string "NATE$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word DRAGON
- ec_word POKEMON
- ec_word ARE
- ec_word ALL
- ec_word THE
- ec_move1 RAGE
-
-@ 63
- .byte TRAINER_CLASS_LASS
- .string "MIRIAM$", 8
- .byte 0x82 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOU_RE
- ec_word TOO_STRONG
- ec_word SERIOUSLY
- ec_word IT_S
- ec_word BAD
- ec_word NEWS
-
-@ 64
- .byte TRAINER_CLASS_POKEMANIAC
- .string "THEO$", 8
- .byte 0x40 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word ADORE
- ec_word MY
- ec_word MEGA
- ec_word CUTE
- ec_word PLUSH_DOLL
-
-@ 65
- .byte TRAINER_CLASS_SWIMMING_TRIATHLETE_F
- .string "PAMELA$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word HERE_I_COME
- ec_word I_AM
- ec_word THE
- ec_word CUTE
- ec_move2 WATER_SPORT
- ec_word IDOL
-
-@ 66
- .byte TRAINER_CLASS_POKEFAN_F
- .string "ALISSA$", 8
- .byte 0x20 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word IT_S
- ec_word A
- ec_word PREPOSTEROUS
- ec_word MATCH
- ec_word I_AM
- ec_word SHOCKED
-
-@ 67
- .byte TRAINER_CLASS_GENTLEMAN
- .string "ARTHUR$", 8
- .byte 0x20 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word PLEASE
- ec_word GIVE
- ec_word ME
- ec_word A
- ec_word GOOD
- ec_word BATTLE
-
-@ 68
- .byte TRAINER_CLASS_SWIMMER_F
- .string "MARCY$", 8
- .byte 0x82 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I_AM
- ec_word BEAUTIFUL
- ec_word YOU
- ec_word CAN_T
- ec_word BEAT
- ec_word ME
-
-@ 69
- .byte TRAINER_CLASS_COOL_TRAINER_M
- .string "MILLER$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word BATTLE
- ec_word DAILY
- ec_word I
- ec_word WON_T
- ec_word LOSE
-
-@ 70
- .byte TRAINER_CLASS_BIRD_KEEPER
- .string "OLIVER$", 8
- .byte 0x11 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- ec_word GIGGLE
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- .2byte -1
- .2byte -1
- .2byte -1
-
-@ 71
- .byte TRAINER_CLASS_CYCLING_TRIATHLETE_F
- .string "MOLLY$", 8
- .byte 0x12 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word HOW
- ec_word ARE
- ec_word YOU
- ec_word ON
- ec_word MONDAY
- ec_word MORNING
-
-@ 72
- .byte TRAINER_CLASS_BUG_MANIAC
- .string "JASON$", 8
- .byte 0x40 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WATER
- ec_word AND
- ec_word BUG
- ec_word POKEMON
- ec_word ARE
- ec_word GREAT
-
-@ 73
- .byte TRAINER_CLASS_BATTLE_GIRL
- .string "AVA$", 8
- .byte 0x20 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word WHAT
- ec_word IS
- ec_word THIS
- ec_word PRESSURE
- ec_word ELLIPSIS
- ec_word STATIC
-
-@ 74
- .byte TRAINER_CLASS_FISHERMAN
- .string "HANK$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOU_RE
- ec_word A
- ec_word KID
- ec_word YOU
- ec_word CAN_T
- ec_word WIN
-
-@ 75
- .byte TRAINER_CLASS_SAILOR
- .string "PETER$", 8
- .byte 0x20 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word IT_S
- ec_word SERIOUSLY
- ec_word TERRIBLE
- ec_word I
- ec_word REALLY
- ec_word THINK
-
-@ 76
- .byte TRAINER_CLASS_EXPERT_F
- .string "MINDY$", 8
- .byte 0x20 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOU
- ec_word APPEAR
- ec_word TO
- ec_word TRAIN
- ec_word VERY
- ec_word WELL
-
-@ 77
- .byte TRAINER_CLASS_BUG_MANIAC
- .string "DWIGHT$", 8
- .byte 0x11 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word ARE
- ec_word YOU
- ec_word STRONG
- ec_word YOU
- ec_word ARE
- ec_word SCARY
-
-@ 78
- .byte TRAINER_CLASS_POKEMON_BREEDER_F
- .string "REENA$", 8
- .byte 0x12 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word ALWAYS
- ec_word LOSE
- ec_word MAYBE
- ec_word TODAY
- ec_word ELLIPSIS
-
-@ 79
- .byte TRAINER_CLASS_PARASOL_LADY
- .string "MEGAN$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word DON_T
- ec_word MAKE
- ec_word THAT
- ec_move1 SCARY_FACE
- ec_word AT
- ec_word ME
-
-@ 80
- .byte TRAINER_CLASS_RUNNING_TRIATHLETE_F
- .string "SIERRA$", 8
- .byte 0x04 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I_VE
- ec_word RUN
- ec_word A_LOT
- ec_word SO
- ec_word I_AM
- ec_word HEALTHY
-
-@ 81
- .byte TRAINER_CLASS_POKEMON_RANGER_M
- .string "ARNOLD$", 8
- .byte 0x08 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I_AM
- ec_word FEELING
- ec_word AWESOME
- ec_word MY
- ec_word POKEMON
- ec_word ROCK
-
-@ 82
- .byte TRAINER_CLASS_BLACK_BELT
- .string "XIN$", 8
- .byte 0x04 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word HOO_HAH
- ec_word ARE
- ec_word YOU
- ec_word READY
- ec_word TO
- ec_word ROCK
-
-@ 83
- .byte TRAINER_CLASS_COOL_TRAINER_F
- .string "KELLY$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YOU
- ec_word COULDN_T
- ec_word BEAT
- ec_word ME
- ec_word EVER
- ec_word KID
-
-@ 84
- .byte TRAINER_CLASS_COLLECTOR
- .string "VANCE$", 8
- .byte 0x80 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word POKEMON
- ec_word ALL
- ec_word OVER
- ec_word THE
- ec_word PLACE
- ec_word WOWEE
-
-@ 85
- .byte TRAINER_CLASS_SWIMMING_TRIATHLETE_M
- .string "TOBY$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word THIS
- ec_word ISN_T
- ec_word SPORTS
- ec_word IT_S
- ec_word A
- ec_word BATTLE
-
-@ 86
- .byte TRAINER_CLASS_GENTLEMAN
- .string "NORTON$", 8
- .byte 0x20 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word HAVE
- ec_word TO
- ec_word WIN
- ec_word PLEASE
- ec_word LOSE
-
-@ 87
- .byte TRAINER_CLASS_BATTLE_GIRL
- .string "ZOE$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word THIS
- ec_word IS
- ec_word SCARY
- ec_word PLEASE
- ec_word BE
- ec_word NICE
-
-@ 88
- .byte TRAINER_CLASS_BEAUTY
- .string "EMMA$", 8
- .byte 0x20 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word DON_T
- ec_word YOU
- ec_move1 FLAIL
- ec_word YOU
- ec_word CAN_T
- ec_move1 WITHDRAW
-
-@ 89
- .byte TRAINER_CLASS_HIKER
- .string "VINCE$", 8
- .byte 0x04 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word YAHOO
- ec_word YAHOO
- ec_word ARE
- ec_word YOU
- ec_word LISTENING
- ec_word QUES
-
-@ 90
- .byte TRAINER_CLASS_EXPERT_M
- .string "MARV$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word LEARN
- ec_word TO
- ec_word BATTLE
- ec_word THE
- ec_word CORRECT
- ec_word WAY
-
-@ 91
- .byte TRAINER_CLASS_POKEMON_BREEDER_M
- .string "TODD$", 8
- .byte 0x40 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word THE
- ec_word WAY
- ec_word YOU
- ec_word BATTLE
- ec_word IT_S
- ec_word CHILD_S_PLAY
-
-@ 92
- .byte TRAINER_CLASS_GUITARIST
- .string "GAVIN$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word BABY
- ec_word BABY
- ec_word BABY
- ec_word ROCK
- ec_word ME
- ec_word HARD
-
-@ 93
- .byte TRAINER_CLASS_PSYCHIC_M
- .string "QUINN$", 8
- .byte 0x08 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word HAVE
- ec_word A
- ec_word STICKY_HOLD
- ec_word ON
- ec_word YOU
-
-@ 94
- .byte TRAINER_CLASS_COOL_TRAINER_F
- .string "JENN$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I_AM
- ec_word ON
- ec_word A
- ec_word TOUGH
- ec_word TRAINER
- ec_word SEARCH
-
-@ 95
- .byte TRAINER_CLASS_EXPERT_M
- .string "JOEL$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word BELIEVE
- ec_word IN
- ec_word YOUR
- ec_word POKEMON
- ec_word AND
- ec_word WIN
-
-@ 96
- .byte TRAINER_CLASS_DRAGON_TAMER
- .string "KYLE$", 8
- .byte 0x0C @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word I
- ec_word LIKE
- ec_word A
- ec_word GIRL
- ec_word WITH
- ec_move2 FORESIGHT
-
-@ 97
- .byte TRAINER_CLASS_COOL_TRAINER_M
- .string "BRET$", 8
- .byte 0x01 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word TAKE
- ec_word MY
- ec_word OVERWHELMING
- ec_word POWER
- ec_word AND
- ec_word DISAPPEAR
-
-@ 98
- .byte TRAINER_CLASS_EXPERT_F
- .string "CARRIE$", 8
- .byte 0x10 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word TRAINER
- ec_word I
- ec_word SEE
- ec_word YOU
- ec_word ARE
- ec_word CAPABLE
-
-@ 99
- .byte TRAINER_CLASS_LADY
- .string "GILLIAN$", 8
- .byte 0x02 @ team flags
- .2byte 0 @ padding
-@ pre-battle dialogue
- ec_word COME_ON
- ec_word SHOW
- ec_word ME
- ec_word AN
- ec_word EXCELLENT
- ec_word TIME
diff --git a/data/cable_club.s b/data/cable_club.s
deleted file mode 100644
index f0ced6292..000000000
--- a/data/cable_club.s
+++ /dev/null
@@ -1,32 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-.ifdef ENGLISH
-TrainerCardColorName_Bronze:
- .string "BRONZE$", 7
-TrainerCardColorName_Copper:
- .string "COPPER$", 7
-TrainerCardColorName_Silver:
- .string "SILVER$", 7
-TrainerCardColorName_Gold:
- .string "GOLD$", 7
-.else
-TrainerCardColorName_Bronze:
- .string "BRONZE$", 7
-TrainerCardColorName_Copper:
- .string "KUPFER$", 7
-TrainerCardColorName_Silver:
- .string "SILBER$", 7
-TrainerCardColorName_Gold:
- .string "GOLD$", 7
-.endif
-
-
- .align 2
-gTrainerCardColorNames:: @ 839B21C
- .4byte TrainerCardColorName_Bronze
- .4byte TrainerCardColorName_Copper
- .4byte TrainerCardColorName_Silver
- .4byte TrainerCardColorName_Gold
diff --git a/data/contest.s b/data/contest.s
index 0e06e9290..0ffcfc636 100644
--- a/data/contest.s
+++ b/data/contest.s
@@ -1,3 +1,5 @@
+#include "constants/moves.h"
+#include "constants/species.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
@@ -297,10 +299,10 @@ gUnknown_083CC4B4:: @ 83CC4B4
.align 2
gUnknown_083CC4D4:: @ 83CC4D4
- obj_pal 0x20180A4, 33000
- obj_pal 0x20180C4, 33001
- obj_pal 0x20180E4, 33002
- obj_pal 0x2018104, 33003
+ obj_pal gSharedMem + 0x180A4, 33000
+ obj_pal gSharedMem + 0x180C4, 33001
+ obj_pal gSharedMem + 0x180E4, 33002
+ obj_pal gSharedMem + 0x18104, 33003
.align 2
gOamData_83CC4F4:: @ 83CC4F4
diff --git a/data/credits.s b/data/credits.s
deleted file mode 100644
index fe82968c0..000000000
--- a/data/credits.s
+++ /dev/null
@@ -1,159 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-gUnknown_0840B83C:: @ 840B83C
- .byte 0, 1, 0
- .byte 0xFF, 1,0xFF
- .byte 0xFF, 1,0xFF
- .byte 0xFF, 1,0xFF
- .byte 0xFF, 1,0xFF
-
-gUnknown_0840B84B:: @ 840B84B
- .byte 1,0xFF, 1
- .byte 1,0xFF, 1
- .byte 1, 2, 1
- .byte 1,0xFF, 1
- .byte 1,0xFF, 1
-
-gUnknown_0840B85A:: @ 840B85A
- .byte 1, 0, 0
- .byte 1,0xFF,0xFF
- .byte 1, 2, 2
- .byte 1,0xFF,0xFF
- .byte 1,0x80,0x80
-
-gUnknown_0840B869:: @ 840B869
- .byte 1, 3, 1
- .byte 1, 4, 1
- .byte 1, 5, 1
- .byte 1,0xC4, 1
- .byte 1,0xC3, 1
-
-gUnknown_0840B878:: @ 840B878
- .byte 1, 6, 7
- .byte 1, 8, 9
- .byte 1,0xFF, 1
- .byte 1,0x88,0x89
- .byte 1,0x86,0x87
-
-.ifdef GERMAN
- .byte 1, 0, 0
- .byte 1,0xFF,0xFF
- .byte 1,0x80,0x8A
- .byte 1,0xFF,0xFF
- .byte 1,0xFF,0xFF
- .byte 0, 1, 0
- .byte 0xFF, 1,0xFF
- .byte 0xFF, 1,0xFF
- .byte 0xFF, 1,0xFF
- .byte 0x80, 1,0x80
-.endif
-
- .include "data/text/credits.inc"
-
-gUnknown_0840CA00:: @ 840CA00
- .byte 104, 36
- .byte 120, 36
- .byte 136, 36
-
- .align 2
-gSpriteAnim_840CA08:
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 64, 8
- obj_image_anim_frame 128, 8
- obj_image_anim_frame 192, 8
- obj_image_anim_jump 0
-
-gSpriteAnim_840CA1C:
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 64, 4
- obj_image_anim_frame 128, 4
- obj_image_anim_frame 192, 4
- obj_image_anim_jump 0
-
-gSpriteAnim_840CA30:
- obj_image_anim_frame 256, 4
- obj_image_anim_frame 320, 4
- obj_image_anim_frame 384, 4
- obj_image_anim_end
-
-gSpriteAnim_840CA40:
- obj_image_anim_frame 384, 30
- obj_image_anim_frame 320, 30
- obj_image_anim_frame 256, 30
- obj_image_anim_frame 256, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_0840CA54:: @ 840CA54
- .4byte gSpriteAnim_840CA08
- .4byte gSpriteAnim_840CA1C
- .4byte gSpriteAnim_840CA30
- .4byte gSpriteAnim_840CA40
-
-
-gSpriteAnim_840CA64:
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 64, 8
- obj_image_anim_frame 128, 8
- obj_image_anim_frame 192, 8
- obj_image_anim_jump 0
-
-gSpriteAnim_840CA78:
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 64, 4
- obj_image_anim_frame 128, 4
- obj_image_anim_frame 192, 4
- obj_image_anim_jump 0
-
-gSpriteAnim_840CA8C:
- obj_image_anim_frame 0, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_0840CA94:: @ 840CA94
- .4byte gSpriteAnim_840CA64
- .4byte gSpriteAnim_840CA78
- .4byte gSpriteAnim_840CA8C
-
-
-gUnknown_0840CAA0:: @ 840CAA0
- obj_tiles gHallOfFame, 6144, 1001
- null_obj_tiles
-
-gUnknown_0840CAB0:: @ 840CAB0
- obj_pal unk_201f800, 1001
- null_obj_pal
-
- .align 2
-gOamData_840CAC0:: @ 840CAC0
- .2byte 0x00A0
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_840CAC8:: @ 840CAC8
- obj_image_anim_frame 0, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840CAD0:: @ 840CAD0
- obj_image_anim_frame 64, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840CAD8:: @ 840CAD8
- obj_image_anim_frame 128, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_840CAE0:: @ 840CAE0
- .4byte gSpriteAnim_840CAC8
- .4byte gSpriteAnim_840CAD0
- .4byte gSpriteAnim_840CAD8
-
- .align 2
-gSpriteTemplate_840CAEC:: @ 840CAEC
- spr_template 1001, 1001, gOamData_840CAC0, gSpriteAnimTable_840CAE0, NULL, gDummySpriteAffineAnimTable, spritecb_814580C
diff --git a/data/data2a.s b/data/data2a.s
index 657fc6908..103b723e8 100644
--- a/data/data2a.s
+++ b/data/data2a.s
@@ -1,5 +1,8 @@
@ the second big chunk of data
+#include "constants/items.h"
+#include "constants/moves.h"
+#include "constants/species.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
@@ -7,31 +10,31 @@
.align 2
gSpriteImageTable_81E7A10:: @ 81E7A10
- obj_frame_tiles 0x2008000, 0x800
- obj_frame_tiles 0x2008800, 0x800
- obj_frame_tiles 0x2009000, 0x800
- obj_frame_tiles 0x2009800, 0x800
+ obj_frame_tiles gSharedMem + 0x8000, 0x800
+ obj_frame_tiles gSharedMem + 0x8800, 0x800
+ obj_frame_tiles gSharedMem + 0x9000, 0x800
+ obj_frame_tiles gSharedMem + 0x9800, 0x800
.align 2
gSpriteImageTable_81E7A30:: @ 81E7A30
- obj_frame_tiles 0x200A000, 0x800
- obj_frame_tiles 0x200A800, 0x800
- obj_frame_tiles 0x200B000, 0x800
- obj_frame_tiles 0x200B800, 0x800
+ obj_frame_tiles gSharedMem + 0xA000, 0x800
+ obj_frame_tiles gSharedMem + 0xA800, 0x800
+ obj_frame_tiles gSharedMem + 0xB000, 0x800
+ obj_frame_tiles gSharedMem + 0xB800, 0x800
.align 2
gSpriteImageTable_81E7A50:: @ 81E7A50
- obj_frame_tiles 0x200C000, 0x800
- obj_frame_tiles 0x200C800, 0x800
- obj_frame_tiles 0x200D000, 0x800
- obj_frame_tiles 0x200D800, 0x800
+ obj_frame_tiles gSharedMem + 0xC000, 0x800
+ obj_frame_tiles gSharedMem + 0xC800, 0x800
+ obj_frame_tiles gSharedMem + 0xD000, 0x800
+ obj_frame_tiles gSharedMem + 0xD800, 0x800
.align 2
gSpriteImageTable_81E7A70:: @ 81E7A70
- obj_frame_tiles 0x200E000, 0x800
- obj_frame_tiles 0x200E800, 0x800
- obj_frame_tiles 0x200F000, 0x800
- obj_frame_tiles 0x200F800, 0x800
+ obj_frame_tiles gSharedMem + 0xE000, 0x800
+ obj_frame_tiles gSharedMem + 0xE800, 0x800
+ obj_frame_tiles gSharedMem + 0xF000, 0x800
+ obj_frame_tiles gSharedMem + 0xF800, 0x800
.align 2
gSpriteAnim_81E7A90:: @ 81E7A90
diff --git a/data/data2b.s b/data/data2b.s
index 329384396..e82e221c1 100644
--- a/data/data2b.s
+++ b/data/data2b.s
@@ -72,7 +72,7 @@ gSpriteTemplate_81FAF34:: @ 81FAF34
.align 2
gUnknown_081FAF4C:: @ 81FAF4C
- .4byte 0x02008000
- .4byte 0x0200a000
- .4byte 0x0200c000
- .4byte 0x0200e000
+ .4byte gSharedMem + 0x8000
+ .4byte gSharedMem + 0xA000
+ .4byte gSharedMem + 0xC000
+ .4byte gSharedMem + 0xE000
diff --git a/data/easy_chat.s b/data/easy_chat.s
index 436835d19..99a03f8f5 100644
--- a/data/easy_chat.s
+++ b/data/easy_chat.s
@@ -1,51 +1,56 @@
+#include "constants/easy_chat.h"
+#include "constants/moves.h"
+#include "constants/species.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
+#define EC_DUPLICATES(count) (0xFF00 + (count))
+
.section .rodata
.align 1
gMysteryEventPhrase:: @ 83DB678
- ec_word MYSTERY
- ec_word EVENT
- ec_word IS
- ec_word EXCITING
+ .2byte EC_WORD_MYSTERY
+ .2byte EC_WORD_EVENT
+ .2byte EC_WORD_IS
+ .2byte EC_WORD_EXCITING
.align 1
gBerryMasterWifePhrases:: @ 83DB680
.ifdef ENGLISH
- ec_word GREAT
- ec_word BATTLE
+ .2byte EC_WORD_GREAT
+ .2byte EC_WORD_BATTLE
- ec_word CHALLENGE
- ec_word CONTEST
+ .2byte EC_WORD_CHALLENGE
+ .2byte EC_WORD_CONTEST
- ec_word OVERWHELMING
- ec_pokemon1 LATIAS
+ .2byte EC_WORD_OVERWHELMING
+ .2byte EC_POKEMON(LATIAS)
- ec_word COOL
- ec_pokemon1 LATIOS
+ .2byte EC_WORD_COOL
+ .2byte EC_POKEMON(LATIOS)
- ec_word SUPER
- ec_word HUSTLE
+ .2byte EC_WORD_SUPER
+ .2byte EC_WORD_HUSTLE
.else
- ec_word GREAT
- ec_word FIGHT
+ .2byte EC_WORD_GREAT
+ .2byte EC_WORD_FIGHT
- ec_word CONTEST
- ec_word CHALLENGE
+ .2byte EC_WORD_CONTEST
+ .2byte EC_WORD_CHALLENGE
- ec_pokemon1 LATIAS
- ec_word OVERWHELMING
+ .2byte EC_POKEMON(LATIAS)
+ .2byte EC_WORD_OVERWHELMING
- ec_pokemon1 LATIOS
- ec_word COOL
+ .2byte EC_POKEMON(LATIOS)
+ .2byte EC_WORD_COOL
- ec_word SUPER
+ .2byte EC_WORD_SUPER
.2byte 0xFFFF
.endif
gUnknown_083DB694:: @ 83DB694
- .4byte 0x02001000
+ .4byte gSharedMem + 0x1000
.align 2
gUnknown_083DB698:: @ 83DB698
@@ -114,39 +119,39 @@ gUnknown_083DB7C0:: @ 83DB7C0
.align 2
gUnknown_083DB7DC:: @ 83DB7DC
.ifdef ENGLISH
- .4byte 0x0200ac80
- .4byte 0x0200acc9
- .4byte 0x0200ad12
- .4byte 0x0200ad5b
+ .4byte gSharedMem + 0xAC80
+ .4byte gSharedMem + 0xACC9
+ .4byte gSharedMem + 0xAD12
+ .4byte gSharedMem + 0xAD5B
.else
- .4byte 0x0200AFAC
- .4byte 0x0200AFF5
- .4byte 0x0200B03E
- .4byte 0x0200B087
+ .4byte gSharedMem + 0xAFAC
+ .4byte gSharedMem + 0xAFF5
+ .4byte gSharedMem + 0xB03E
+ .4byte gSharedMem + 0xB087
.endif
.align 1
gUnknown_083DB7EC:: @ 83DB7EC
.ifdef ENGLISH
- ec_word I_AM
- ec_word A
- ec_word POKEMON
- ec_word GREAT
+ .2byte EC_WORD_I_AM
+ .2byte EC_WORD_A
+ .2byte EC_WORD_POKEMON
+ .2byte EC_WORD_GREAT
.else
- ec_word I_AM
- ec_word BIG
- ec_word IN
- ec_word POKEMON
+ .2byte EC_WORD_I_AM
+ .2byte EC_WORD_BIG
+ .2byte EC_WORD_IN
+ .2byte EC_WORD_POKEMON
.endif
.align 1
gUnknown_083DB7F4:: @ 83DB7F4
- ec_word ARE
- ec_word YOU
- ec_word READY
- ec_word QUES
- ec_word HERE_I_COME
- ec_word EXCL
+ .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
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 854b52c9e..76b080a5b 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -1,3 +1,13 @@
+#include "constants/decorations.h"
+#include "constants/flags.h"
+#include "constants/game_stat.h"
+#include "constants/items.h"
+#include "constants/map_objects.h"
+#include "constants/maps.h"
+#include "constants/moves.h"
+#include "constants/opponents.h"
+#include "constants/songs.h"
+#include "constants/species.h"
.include "asm/macros.inc"
.include "asm/macros/event.inc"
.include "constants/constants.inc"
@@ -22,12 +32,12 @@ gSpecialVars::
.4byte gSpecialVar_0x8009
.4byte gSpecialVar_0x800A
.4byte gSpecialVar_0x800B
- .4byte gScriptFacing
- .4byte gScriptResult
- .4byte gScriptItemId
- .4byte gScriptLastTalked
- .4byte gScriptContestRank
- .4byte gScriptContestCategory
+ .4byte gSpecialVar_Facing
+ .4byte gSpecialVar_Result
+ .4byte gSpecialVar_ItemId
+ .4byte gSpecialVar_LastTalked
+ .4byte gSpecialVar_ContestRank
+ .4byte gSpecialVar_ContestCategory
.include "data/specials.inc"
@@ -391,7 +401,7 @@ gUnknown_0815F36C:: @ 815F36C
dofieldeffect 61
waitstate
waitmessage
- waitbutton
+ waitbuttonpress
playse 5
goto EventScript_15F384
end
@@ -399,7 +409,7 @@ gUnknown_0815F36C:: @ 815F36C
EventScript_15F384:
message UnknownString_81A3A87
waitmessage
- checkflag 268
+ checkflag FLAG_DECORATION_16
goto_if_eq EventScript_15F3A0
goto EventScript_15F3E2
end
@@ -452,7 +462,7 @@ gUnknown_0815F43A:: @ 815F43A
dofieldeffect 61
waitstate
waitmessage
- waitbutton
+ waitbuttonpress
playse 5
goto EventScript_15F452
end
@@ -486,7 +496,7 @@ EventScript_15F4A1:
goto_if_eq EventScript_15F452
msgbox UnknownString_81A3A22, 3
special sub_80BC5BC
- special sub_80C683C
+ special DoSecretBasePCTurnOffEffect
releaseall
end
@@ -496,13 +506,13 @@ EventScript_15F4E0:
goto_if_eq EventScript_15F452
msgbox UnknownString_81A3A3A, 3
special sub_80BC5BC
- special sub_80C683C
+ special DoSecretBasePCTurnOffEffect
releaseall
end
EventScript_15F503:
msgbox UnknownString_81A39C0, 3
- special sub_80C683C
+ special DoSecretBasePCTurnOffEffect
closemessage
releaseall
end
@@ -514,7 +524,7 @@ EventScript_15F511:
end
EventScript_15F51D:
- special sub_80C683C
+ special DoSecretBasePCTurnOffEffect
closemessage
releaseall
end
@@ -891,7 +901,7 @@ Std_2:
faceplayer
message 0x0
waitmessage
- waitbutton
+ waitbuttonpress
release
return
@@ -899,14 +909,14 @@ Std_3:
lockall
message 0x0
waitmessage
- waitbutton
+ waitbuttonpress
releaseall
return
Std_4:
message 0x0
waitmessage
- waitbutton
+ waitbuttonpress
return
Std_5:
@@ -943,7 +953,7 @@ gUnknown_0819F818:: @ 819F818
goto EventScript_19F8F2
EventScript_19F83F:
- ontrainerbattleend
+ gotopostbattlescript
gUnknown_0819F840:: @ 819F840
lock
@@ -962,19 +972,19 @@ gUnknown_0819F840:: @ 819F840
EventScript_19F870:
special ScrSpecial_ShowTrainerNonBattlingSpeech
waitmessage
- waitbutton
+ waitbuttonpress
release
end
EventScript_19F877:
- ontrainerbattleend
+ gotopostbattlescript
gUnknown_0819F878:: @ 819F878
applymovement LAST_TALKED, Movement_19F8F0
waitmovement 0
special PlayTrainerEncounterMusic
- battlebegin
- ontrainerbattleend
+ trainerbattlebegin
+ gotopostbattlescript
gUnknown_0819F887:: @ 819F887
call EventScript_19F8E5
@@ -985,14 +995,14 @@ gUnknown_0819F887:: @ 819F887
special sub_8082524
special ScrSpecial_ShowTrainerIntroSpeech
waitmessage
- waitbutton
+ waitbuttonpress
special ScrSpecial_StartTrainerEyeRematch
waitstate
releaseall
end
EventScript_19F8AD:
- ontrainerbattleend
+ gotopostbattlescript
gUnknown_0819F8AE:: @ 819F8AE
specialvar RESULT, ScrSpecial_GetTrainerEyeRematchFlag
@@ -1005,19 +1015,19 @@ gUnknown_0819F8AE:: @ 819F8AE
special sub_8082524
special ScrSpecial_ShowTrainerIntroSpeech
waitmessage
- waitbutton
+ waitbuttonpress
special ScrSpecial_StartTrainerEyeRematch
waitstate
releaseall
end
EventScript_19F8DD:
- ontrainerbattleend
+ gotopostbattlescript
EventScript_19F8DE:
special ScrSpecial_ShowTrainerNonBattlingSpeech
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -1033,8 +1043,8 @@ Movement_19F8F0::
EventScript_19F8F2:
special ScrSpecial_ShowTrainerIntroSpeech
waitmessage
- waitbutton
- battlebegin
+ waitbuttonpress
+ trainerbattlebegin
specialvar RESULT, ScrSpecial_GetTrainerBattleMode
compare RESULT, 0
goto_if_eq EventScript_19F934
@@ -1052,271 +1062,271 @@ EventScript_19F934:
end
EventScript_19F936:
- ontrainerbattleendgoto
+ gotobeatenscript
Std_6::
message 0x0
waitmessage
- waitbutton
+ waitbuttonpress
release
return
Event_ResetBerryTrees: @ 19F940
- plantberrytree 2, 7, 5
- plantberrytree 1, 3, 5
- plantberrytree 11, 7, 5
- plantberrytree 13, 3, 5
- plantberrytree 4, 7, 5
- plantberrytree 76, 1, 5
- plantberrytree 8, 1, 5
- plantberrytree 10, 6, 5
- plantberrytree 25, 20, 5
- plantberrytree 26, 2, 5
- plantberrytree 66, 2, 5
- plantberrytree 67, 20, 5
- plantberrytree 69, 22, 5
- plantberrytree 70, 22, 5
- plantberrytree 71, 22, 5
- plantberrytree 55, 17, 5
- plantberrytree 56, 17, 5
- plantberrytree 5, 1, 5
- plantberrytree 6, 6, 5
- plantberrytree 7, 1, 5
- plantberrytree 16, 18, 5
- plantberrytree 17, 18, 5
- plantberrytree 18, 18, 5
- plantberrytree 29, 19, 5
- plantberrytree 28, 19, 5
- plantberrytree 27, 19, 5
- plantberrytree 24, 4, 5
- plantberrytree 23, 3, 5
- plantberrytree 22, 3, 5
- plantberrytree 21, 4, 5
- plantberrytree 19, 16, 5
- plantberrytree 20, 16, 5
- plantberrytree 80, 7, 5
- plantberrytree 81, 7, 5
- plantberrytree 77, 8, 5
- plantberrytree 78, 8, 5
- plantberrytree 68, 8, 5
- plantberrytree 31, 10, 5
- plantberrytree 33, 10, 5
- plantberrytree 34, 21, 5
- plantberrytree 35, 21, 5
- plantberrytree 36, 21, 5
- plantberrytree 83, 24, 5
- plantberrytree 84, 24, 5
- plantberrytree 85, 10, 5
- plantberrytree 86, 6, 5
- plantberrytree 37, 5, 5
- plantberrytree 38, 5, 5
- plantberrytree 39, 5, 5
- plantberrytree 40, 3, 5
- plantberrytree 41, 3, 5
- plantberrytree 42, 3, 5
- plantberrytree 46, 19, 5
- plantberrytree 45, 20, 5
- plantberrytree 44, 18, 5
- plantberrytree 43, 16, 5
- plantberrytree 47, 8, 5
- plantberrytree 48, 5, 5
- plantberrytree 49, 4, 5
- plantberrytree 50, 2, 5
- plantberrytree 52, 18, 5
- plantberrytree 53, 18, 5
- plantberrytree 62, 6, 5
- plantberrytree 64, 6, 5
- plantberrytree 58, 21, 5
- plantberrytree 59, 21, 5
- plantberrytree 60, 25, 5
- plantberrytree 61, 25, 5
- plantberrytree 79, 23, 5
- plantberrytree 14, 23, 5
- plantberrytree 15, 21, 5
- plantberrytree 30, 21, 5
- plantberrytree 65, 25, 5
- plantberrytree 72, 25, 5
- plantberrytree 73, 23, 5
- plantberrytree 74, 23, 5
- plantberrytree 87, 3, 5
- plantberrytree 88, 10, 5
- plantberrytree 89, 4, 5
- plantberrytree 82, 36, 5
+ setberrytree 2, 7, 5
+ setberrytree 1, 3, 5
+ setberrytree 11, 7, 5
+ setberrytree 13, 3, 5
+ setberrytree 4, 7, 5
+ setberrytree 76, 1, 5
+ setberrytree 8, 1, 5
+ setberrytree 10, 6, 5
+ setberrytree 25, 20, 5
+ setberrytree 26, 2, 5
+ setberrytree 66, 2, 5
+ setberrytree 67, 20, 5
+ setberrytree 69, 22, 5
+ setberrytree 70, 22, 5
+ setberrytree 71, 22, 5
+ setberrytree 55, 17, 5
+ setberrytree 56, 17, 5
+ setberrytree 5, 1, 5
+ setberrytree 6, 6, 5
+ setberrytree 7, 1, 5
+ setberrytree 16, 18, 5
+ setberrytree 17, 18, 5
+ setberrytree 18, 18, 5
+ setberrytree 29, 19, 5
+ setberrytree 28, 19, 5
+ setberrytree 27, 19, 5
+ setberrytree 24, 4, 5
+ setberrytree 23, 3, 5
+ setberrytree 22, 3, 5
+ setberrytree 21, 4, 5
+ setberrytree 19, 16, 5
+ setberrytree 20, 16, 5
+ setberrytree 80, 7, 5
+ setberrytree 81, 7, 5
+ setberrytree 77, 8, 5
+ setberrytree 78, 8, 5
+ setberrytree 68, 8, 5
+ setberrytree 31, 10, 5
+ setberrytree 33, 10, 5
+ setberrytree 34, 21, 5
+ setberrytree 35, 21, 5
+ setberrytree 36, 21, 5
+ setberrytree 83, 24, 5
+ setberrytree 84, 24, 5
+ setberrytree 85, 10, 5
+ setberrytree 86, 6, 5
+ setberrytree 37, 5, 5
+ setberrytree 38, 5, 5
+ setberrytree 39, 5, 5
+ setberrytree 40, 3, 5
+ setberrytree 41, 3, 5
+ setberrytree 42, 3, 5
+ setberrytree 46, 19, 5
+ setberrytree 45, 20, 5
+ setberrytree 44, 18, 5
+ setberrytree 43, 16, 5
+ setberrytree 47, 8, 5
+ setberrytree 48, 5, 5
+ setberrytree 49, 4, 5
+ setberrytree 50, 2, 5
+ setberrytree 52, 18, 5
+ setberrytree 53, 18, 5
+ setberrytree 62, 6, 5
+ setberrytree 64, 6, 5
+ setberrytree 58, 21, 5
+ setberrytree 59, 21, 5
+ setberrytree 60, 25, 5
+ setberrytree 61, 25, 5
+ setberrytree 79, 23, 5
+ setberrytree 14, 23, 5
+ setberrytree 15, 21, 5
+ setberrytree 30, 21, 5
+ setberrytree 65, 25, 5
+ setberrytree 72, 25, 5
+ setberrytree 73, 23, 5
+ setberrytree 74, 23, 5
+ setberrytree 87, 3, 5
+ setberrytree 88, 10, 5
+ setberrytree 89, 4, 5
+ setberrytree 82, 36, 5
return
gUnknown_0819FA81:: @ 819FA81
- setflag 86
- setflag 769
- setflag 770
- setflag 771
- setflag 721
- setflag 889
- setflag 726
- setflag 867
- setflag 731
- setflag 732
- setflag 814
- setflag 868
- setflag 739
- setflag 881
- setflag 738
- setflag 740
- setflag 741
- setflag 743
- setflag 744
- setflag 906
- setflag 737
- setflag 747
- setflag 748
- setflag 749
- setflag 756
- setflag 774
- setflag 895
- setflag 776
- setflag 777
- setflag 778
- setflag 779
- setflag 780
- setflag 781
- setflag 782
- setflag 783
- setflag 734
- setflag 849
- setflag 789
- setflag 790
- setflag 791
- setflag 792
- setflag 797
- setflag 798
- setflag 799
- setflag 901
- setflag 902
- setflag 903
- setflag 904
- setflag 800
- setflag 801
- setflag 803
- setflag 802
- setflag 806
- setflag 808
- setflag 809
- setflag 984
- setflag 811
- setflag 812
- setflag 866
- setflag 815
- setflag 816
- setflag 869
- setflag 823
- setflag 828
- setflag 829
- setflag 831
- setflag 859
- setflag 841
- setflag 843
- setflag 844
- setflag 847
- setflag 845
- setflag 846
- setflag 860
- setflag 861
- setflag 835
- setflag 840
- setflag 848
- setflag 851
- setflag 855
- setflag 856
- setflag 973
- setflag 870
- setflag 872
- setflag 877
- setflag 879
- setflag 891
- setflag 880
- setflag 878
- setflag 807
- setflag 983
- setflag 886
- setflag 884
- setflag 885
- setflag 961
- setflag 888
- setflag 941
- setflag 752
- setflag 757
- setflag 892
- setflag 896
- setflag 897
- setflag 898
- setflag 909
- setflag 910
- setflag 911
- setflag 915
- setflag 912
- setflag 920
- setflag 921
- setflag 922
- setflag 923
- setflag 925
- setflag 929
- setflag 930
- setflag 934
- setflag 939
- setflag 940
- setflag 928
- setflag 834
- setflag 944
- setflag 945
- setflag 947
- setflag 948
- setflag 858
- setflag 950
- setflag 968
- setflag 1133
- setflag 727
- setflag 979
- setflag 751
- setflag 991
+ setflag FLAG_LINK_CONTEST_ROOM_POKEBALL
+ setflag FLAG_HIDE_VICTORIA_WINSTRATE
+ setflag FLAG_HIDE_VIVI_WINSTRATE
+ setflag FLAG_HIDE_VICKI_WINSTRATE
+ setflag FLAG_HIDE_BIRCH_IN_LAB
+ setflag FLAG_HIDE_RIVAL_BIRCH_LAB
+ setflag FLAG_HIDE_WALLY_PETALBURG
+ setflag FLAG_UNKNOWN_363
+ setflag FLAG_HIDE_GRUNT_RUSTBORO
+ setflag FLAG_HIDE_DEVON_RUSTBORO
+ setflag FLAG_HIDE_RIVAL_RUSTBORO
+ setflag FLAG_HIDE_FAT_MAN_LITTLEROOT
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE
+ setflag FLAG_HIDE_PEEKO_BRINEY_HOUSE
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104
+ setflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE109
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109
+ setflag FLAG_HIDE_FLOWER_SHOP_WORKER_OUTSIDE
+ setflag FLAG_UNKNOWN_2E1
+ setflag FLAG_UNKNOWN_2EB
+ setflag FLAG_UNKNOWN_2EC
+ setflag FLAG_UNKNOWN_2ED
+ setflag FLAG_UNKNOWN_2F4
+ setflag FLAG_HIDE_LILYCOVE_CONTEST_ATTENDENT_1
+ setflag FLAG_HIDE_ARTIST_LILCOVE_CONTEST
+ setflag FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_LADY
+ setflag FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_GIRL
+ setflag FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_MAN
+ setflag FLAG_HIDE_LILYCOVE_MUSEUM_PAINTER
+ setflag FLAG_HIDE_LILYCOVE_MUSEUM_VISITORS
+ setflag FLAG_HIDE_PETALBURG_GYM_GUIDE
+ setflag FLAG_UNKNOWN_30E
+ setflag FLAG_UNKNOWN_30F
+ setflag FLAG_HIDE_NORMAN_LITTLEROOT
+ setflag FLAG_HIDE_MAY_PICHU_DOLL
+ setflag FLAG_HIDE_FANCLUB_OLD_LADY
+ setflag FLAG_HIDE_FANCLUB_BOY
+ setflag FLAG_HIDE_FANCLUB_LITTLE_BOY
+ setflag FLAG_HIDE_FANCLUB_LADY
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE118_1
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE120_1
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE111_2
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE118_2
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE120_2
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE111_3
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE118_3
+ setflag FLAG_HIDE_CONTEST_REPORTER_FALLARBOR
+ setflag FLAG_HIDE_CONTEST_REPORTER_VERDANTURF
+ setflag FLAG_HIDE_CONTEST_REPORTER_SLATEPORT
+ setflag FLAG_HIDE_CONTEST_REPORTER_LILYCOVE
+ setflag FLAG_HIDE_WALLY_WANDAS_HOUSE
+ setflag FLAG_HIDE_BOYFRIEND_WANDAS_HOUSE
+ setflag FLAG_HIDE_WALLY_FATHER_WANDAS_HOUSE
+ setflag FLAG_HIDE_GIRLFRIEND_WANDAS_HOUSE
+ setflag FLAG_HIDE_WALLY_FATHER_PETALBURG
+ setflag FLAG_HIDE_WALLY_MOTHER_PETALBURG
+ setflag FLAG_HIDE_WALLY_PETALBURG_GYM
+ setflag FLAG_HIDE_WALLACE_SOOTOPOLIS_GYM
+ setflag FLAG_HIDE_WALLACE_SOOTOPOLIS
+ setflag FLAG_HIDE_BRINEY_SLATEPORT_SHIPYARD
+ setflag FLAG_UNKNOWN_337
+ setflag FLAG_HIDE_EVIL_LEADER_SEAFLOOR_CAVERN
+ setflag FLAG_HIDE_OTHER_LEADER_SEAFLOOR_CAVERN
+ setflag FLAG_HIDE_OTHER_TEAM_GRUNTS_SEAFLOOR_CAVERN
+ setflag FLAG_HIDE_AWAKENED_MON_SEAFLOOR_CAVERN
+ setflag FLAG_HIDE_STERN_SLATEPORT_HARBOR
+ setflag FLAG_UNKNOWN_34B
+ setflag FLAG_UNKNOWN_34C
+ setflag FLAG_UNKNOWN_34F
+ setflag FLAG_HIDE_GRUNT_1_SLATEPORT_HARBOR
+ setflag FLAG_HIDE_GRUNT_2_SLATEPORT_HARBOR
+ setflag FLAG_HIDE_SS_TIDAL_SLATEPORT_HARBOR
+ setflag FLAG_HIDE_SS_TIDAL_LILYCOVE_HARBOR
+ setflag FLAG_HIDE_GABBY_AND_TY_SLATEPORT
+ setflag FLAG_HIDE_STERN_SLATEPORT
+ setflag FLAG_HIDE_SUBMARINE_SHADOW_SLATEPORT_HARBOR
+ setflag FLAG_HIDE_RIVAL_ROUTE119
+ setflag FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_1
+ setflag FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_2
+ setflag FLAG_HIDE_STEVEN_SOOTOPOLIS
+ setflag FLAG_HIDE_LANETTE
+ setflag FLAG_HIDE_TRICKMASTER_ENTRANCE
+ setflag FLAG_HIDE_MT_CHIMNEY_PEOPLE
+ setflag FLAG_HIDE_BRINEY_RUSTURF_TUNNEL
+ setflag FLAG_HIDE_BRINEY_ROUTE116
+ setflag FLAG_HIDE_PEEKO_RUSTURF_TUNNEL
+ setflag FLAG_HIDE_GRUNT_RUSTURF_TUNNEL
+ setflag FLAG_HIDE_BOYFRIEND_RUSTURF_TUNNEL
+ setflag FLAG_HIDE_GIRLFRIEND_RUSTURF_TUNNEL
+ setflag FLAG_HIDE_EVIL_TEAM_LEADER_OCEANIC_MUSEUM_2F
+ setflag FLAG_HIDE_GRUNT_1_OCEANIC_MUSEUM_2F
+ setflag FLAG_HIDE_GRUNT_2_OCEANIC_MUSEUM_2F
+ setflag FLAG_HIDE_OCEANIC_MUSEUM_VISITORS
+ setflag FLAG_HIDE_BATTLE_TOWER_OPPONENT
+ setflag FLAG_HIDE_AWARD_MAN_BATTLE_TOWER
+ setflag FLAG_HIDE_MOM_LITTLEROOT
+ setflag FLAG_HIDE_MOM_UPSTAIRS
+ setflag FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_1F
+ setflag FLAG_UNKNOWN_BIRCH_380
+ setflag FLAG_HIDE_BIRCH_ROUTE101
+ setflag FLAG_HIDE_BIRCH_ROUTE103
+ setflag FLAG_HIDE_FERRY_SAILOR_LILYCOVE
+ setflag FLAG_HIDE_LATIOS_OR_LATIAS_FLYING
+ setflag FLAG_HIDE_LATIOS_OR_LATIAS_STATIONARY
+ setflag FLAG_UNKNOWN_393
+ setflag FLAG_HIDE_WATTSON_MAUVILLE
+ setflag FLAG_HIDE_RIVAL_CHAMPIONS_ROOM
+ setflag FLAG_HIDE_BIRCH_CHAMPIONS_ROOM
+ setflag FLAG_HIDE_RIVAL_ON_BIKE_ROUTE110
+ setflag FLAG_HIDE_RIVAL_ROUTE119_ON_BIKE
+ setflag FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE
+ setflag FLAG_HIDE_RIVAL_LAVARIDGE_1
+ setflag FLAG_HIDE_RIVAL_LAVARIDGE_2
+ setflag FLAG_HIDE_WINGULL_MOSSDEEP_HOUSE
+ setflag FLAG_HIDE_OTHER_TEAM_METEOR_FALLS_1F
+ setflag FLAG_HIDE_SLUDGE_BOMB_MAN_DEWFORD_HALL
+ setflag FLAG_HIDE_PROF_COSMO_FALLARBOR
+ setflag FLAG_HIDE_STEVEN_ROUTE128
+ setflag FLAG_HIDE_EVIL_LEADER_ROUTE128
+ setflag FLAG_HIDE_OTHER_LEADER_ROUTE128
+ setflag FLAG_HIDE_DEVON_EMPLOYEE_ROUTE116
+ setflag FLAG_HIDE_TM_SALESMAN_SLATEPORT
+ setflag FLAG_HIDE_WALLY_BATTLE_VICTORY_ROAD
+ setflag FLAG_HIDE_BRINEY_AND_PEEKO_SS_TIDAL
+ setflag FLAG_HIDE_BELDUM_BALL_STEVENS_HOUSE
+ setflag FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_1
+ setflag FLAG_HIDE_STEVENS_LETTER
+ setflag FLAG_HIDE_RIVAL_OLDALE_TOWN
+ setflag FLAG_HIDE_WALLY_DEFEATED_VICTORY_ROAD
+ setflag FLAG_HIDE_BOY_ROUTE101
call Event_ResetBerryTrees
end
EverGrandeCity_HallOfFame_EventScript_19FC13:: @ 819FC13
- clearflag 925
+ clearflag FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE
call EverGrandeCity_HallOfFame_EventScript_19FD09
- setflag 869
- clearflag 950
- clearflag 727
+ setflag FLAG_HIDE_BRINEY_SLATEPORT_SHIPYARD
+ clearflag FLAG_HIDE_BRINEY_AND_PEEKO_SS_TIDAL
+ clearflag FLAG_HIDE_STEVENS_LETTER
setvar 0x40c6, 1
- clearflag 751
- clearflag 860
- clearflag 861
+ clearflag FLAG_HIDE_WALLY_DEFEATED_VICTORY_ROAD
+ clearflag FLAG_HIDE_SS_TIDAL_SLATEPORT_HARBOR
+ clearflag FLAG_HIDE_SS_TIDAL_LILYCOVE_HARBOR
special sub_810FAA0
- checkflag 291
+ checkflag FLAG_RECEIVED_SS_TICKET
call_if 0, EverGrandeCity_HallOfFame_EventScript_19FC62
- checkflag 255
+ checkflag FLAG_LATIOS_OR_LATIAS_ROAMING
call_if 0, EverGrandeCity_HallOfFame_EventScript_19FC70
- checkflag 298
+ checkflag FLAG_RECEIVED_BELDUM
call_if 0, EverGrandeCity_HallOfFame_EventScript_19FC5A
- checkflag 123
+ checkflag FLAG_RECEIVED_HM08
call_if 0, EverGrandeCity_HallOfFame_EventScript_19FC5E
return
EverGrandeCity_HallOfFame_EventScript_19FC5A:: @ 819FC5A
- clearflag 968
+ clearflag FLAG_HIDE_BELDUM_BALL_STEVENS_HOUSE
return
EverGrandeCity_HallOfFame_EventScript_19FC5E:: @ 819FC5E
- clearflag 1133
+ clearflag FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_1
return
EverGrandeCity_HallOfFame_EventScript_19FC62:: @ 819FC62
setvar 0x4082, 3
setvar 0x408c, 3
- clearflag 734
+ clearflag FLAG_HIDE_NORMAN_LITTLEROOT
return
EverGrandeCity_HallOfFame_EventScript_19FC70:: @ 819FC70
- setflag 2141
+ setflag FLAG_SYS_TV_LATI
return
S_WhiteOut:: @ 819FC74
@@ -1326,11 +1336,11 @@ S_WhiteOut:: @ 819FC74
end
EventScript_19FC84:
- checkflag 221
+ checkflag FLAG_RECEIVED_GO_GOGGLES
goto_if_eq Route101_EventScript_1A14DC
- checkflag 1213
+ checkflag FLAG_DEFEATED_LAVARIDGE_GYM
goto_if 0, Route101_EventScript_1A14DC
- clearflag 929
+ clearflag FLAG_HIDE_RIVAL_LAVARIDGE_1
setvar 0x4053, 2
return
@@ -1344,42 +1354,42 @@ gUnknown_0819FC9F:: @ 819FC9F
end
EventScript_19FCC1:
- setflag 740
- setflag 743
- setflag 741
- setflag 744
- clearflag 742
- clearflag 739
- clearflag 881
+ setflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE109
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109
+ clearflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104
+ clearflag FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE
+ clearflag FLAG_HIDE_PEEKO_BRINEY_HOUSE
end
EventScript_19FCD7:
- setflag 741
- setflag 744
- setflag 738
- setflag 742
- setflag 739
- setflag 881
- clearflag 740
- clearflag 743
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE109
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE
+ setflag FLAG_HIDE_PEEKO_BRINEY_HOUSE
+ clearflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
+ clearflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD
end
EventScript_19FCF0:
- setflag 738
- setflag 742
- setflag 739
- setflag 881
- setflag 740
- setflag 743
- clearflag 741
- clearflag 744
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE
+ setflag FLAG_HIDE_PEEKO_BRINEY_HOUSE
+ setflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD
+ clearflag FLAG_HIDE_MR_BRINEY_ROUTE109
+ clearflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109
end
EverGrandeCity_HallOfFame_EventScript_19FD09:: @ 819FD09
- clearflag 1245
- clearflag 1246
- clearflag 1247
- clearflag 1248
+ clearflag FLAG_DEFEATED_ELITE_4_SYDNEY
+ clearflag FLAG_DEFEATED_ELITE_4_PHOEBE
+ clearflag FLAG_DEFEATED_ELITE_4_GLACIA
+ clearflag FLAG_DEFEATED_ELITE_4_DRAKE
setvar 0x409c, 0
return
@@ -1392,15 +1402,15 @@ 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 188
+ checkflag FLAG_RECEIVED_POKENAV
goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_1A14DC
- checkflag 1217
+ checkflag FLAG_DEFEATED_PETALBURG_GYM
goto_if_eq OldaleTown_PokemonCenter_1F_EventScript_1A14DC
- checkflag 742
+ checkflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104
goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_19FD49
- checkflag 740
+ checkflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_19FD4F
- checkflag 741
+ checkflag FLAG_HIDE_MR_BRINEY_ROUTE109
goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_19FD55
return
@@ -1450,7 +1460,7 @@ do_heal_party:: @ 819FD7C
applymovement 0x800b, OldaleTown_PokemonCenter_1F_Movement_1A0845
waitmovement 0
special ScrSpecial_HealPlayerParty
- checkflag 273
+ checkflag FLAG_POKERUS_EXPLAINED
goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_19FDCE
goto OldaleTown_PokemonCenter_1F_EventScript_19FDB0
end
@@ -1480,7 +1490,7 @@ OldaleTown_PokemonCenter_1F_EventScript_19FDCE:: @ 819FDCE
OldaleTown_PokemonCenter_1F_EventScript_19FDEA:: @ 819FDEA
message gText_NurseJoy_Pokerus
waitmessage
- setflag 273
+ setflag FLAG_POKERUS_EXPLAINED
return
OldaleTown_PokemonCenter_1F_Movement_19FDF4:: @ 819FDF4
@@ -1489,13 +1499,13 @@ OldaleTown_PokemonCenter_1F_Movement_19FDF4:: @ 819FDF4
step_end
Std_ObtainItem: @ 819FDF7
- additem 0x8000, 0x8001
+ giveitem 0x8000, 0x8001
copyvar 0x8007, RESULT
call Std_ObtainItem_
return
Std_ObtainItem_: @ 819FE07
- getitemname 1, 0x8000
+ bufferitemname 1, 0x8000
checkitemtype 0x8000
call GetItem_HandlePocket
compare 0x8007, 0x1
@@ -1514,31 +1524,31 @@ GetItem_HandlePocket:
end
GetItem_HandlePocket_Items:
- getstdstring 2, 0xE
+ bufferstdstring 2, 0xE
compare 0x8007, 1
call_if 1, PlayGetItemFanfare
return
GetItem_HandlePocket_KeyItems:
- getstdstring 2, 0xF
+ bufferstdstring 2, 0xF
compare 0x8007, 1
call_if 1, PlayGetItemFanfare
return
GetItem_HandlePocket_PokeBalls:
- getstdstring 2, 0x10
+ bufferstdstring 2, 0x10
compare 0x8007, 1
call_if 1, PlayGetItemFanfare
return
GetItem_HandlePocket_TMsHMs:
- getstdstring 2, 0x11
+ bufferstdstring 2, 0x11
compare 0x8007, 1
call_if 1, PlayGetTMHMFanfare
return
GetItem_HandlePocket_Berries:
- getstdstring 2, 0x12
+ bufferstdstring 2, 0x12
compare 0x8007, 1
call_if 1, PlayGetItemFanfare
return
@@ -1564,13 +1574,13 @@ PlayGetTMHMFanfare:
return
Std_ObtainDecoration: @ 819FEDA
- adddecor 0x8000
+ givedecoration 0x8000
copyvar 0x8007, RESULT
call Std_ObtainDecoration_
return
Std_ObtainDecoration_: @ 819FEE8
- getdecorname 1, 0x8000
+ bufferdecorationname 1, 0x8000
compare 0x8007, 1
call_if 1, Std_ObtainDecoration_Success
compare 0x8007, 0
@@ -1594,9 +1604,9 @@ Std_FindItem: @ 819FF21
lock
faceplayer
waitse
- additem 0x8000, 0x8001
+ giveitem 0x8000, 0x8001
copyvar 0x8007, RESULT
- getitemname 1, 0x8000
+ bufferitemname 1, 0x8000
checkitemtype 0x8000
call GetItem_HandlePocket
compare 0x8007, 1
@@ -1623,9 +1633,9 @@ Std_FindItem_Fail: @ 819FF65
HiddenItemScript:: @ 819FF7B
lockall
waitse
- additem 0x8005, 1
+ giveitem 0x8005, 1
copyvar 0x8007, RESULT
- getitemname 0x1, 0x8005
+ bufferitemname 0x1, 0x8005
checkitemtype 0x8005
call GetItem_HandlePocket
compare 0x8007, 1
@@ -1667,7 +1677,7 @@ UnusedMixRecordsScript_Yes: @ 819FFFA
UnusedMixRecordsScript_Done: @ 81A0000
message UnusedMixRecordsSeeYouAgainText
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -1707,9 +1717,9 @@ EventScript_1A0070:
EventScript_1A0085:
playse 2
- checkflag 2123
+ checkflag FLAG_SYS_PC_LANETTE
call_if 0, EventScript_1A00AC
- checkflag 2123
+ checkflag FLAG_SYS_PC_LANETTE
call_if 1, EventScript_1A00B5
msgbox UnknownString_81A0A35, 4
special ShowPokemonStorageSystem
@@ -1733,7 +1743,7 @@ EventScript_1A00BE:
end
EventScript_1A00CB:
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, EventScript_1A00BE
playse 2
special AccessHallOfFamePC
@@ -1791,8 +1801,8 @@ DewfordTown_Gym_EventScript_1A00FB:: @ 81A00FB
LavaridgeTown_Gym_1F_EventScript_1A00FB:: @ 81A00FB
MauvilleCity_Gym_EventScript_1A00FB:: @ 81A00FB
RustboroCity_Gym_EventScript_1A00FB:: @ 81A00FB
- clearflag 781
- setflag 296
+ clearflag FLAG_HIDE_PETALBURG_GYM_GUIDE
+ setflag FLAG_PETALBURG_MART_EXPANDED_ITEMS
return
DewfordTown_EventScript_1A0102:: @ 81A0102
@@ -1810,11 +1820,11 @@ Route109_EventScript_1A010C:: @ 81A010C
return
UseSurfScript:: @ 81A0117
- checkpokemove MOVE_SURF
+ checkpartymove MOVE_SURF
compare RESULT, 6
goto_if_eq UseSurfScript_NoMon
- getpartypokename 0, RESULT
- setfieldeffect 0, RESULT
+ bufferpartymonnick 0, RESULT
+ setfieldeffectargument 0, RESULT
lockall
msgbox UseSurfPromptText, 5
compare RESULT, 0
@@ -2157,24 +2167,24 @@ Route103_EventScript_1A02F4:: @ 81A02F4
return
Route101_EventScript_1A0358:: @ 81A0358
- clearflag 721
- clearflag 896
- setflag 897
- setflag 898
+ clearflag FLAG_HIDE_BIRCH_IN_LAB
+ clearflag FLAG_UNKNOWN_BIRCH_380
+ setflag FLAG_HIDE_BIRCH_ROUTE101
+ setflag FLAG_HIDE_BIRCH_ROUTE103
return
Route101_EventScript_1A0365:: @ 81A0365
- clearflag 897
- setflag 721
- setflag 896
- setflag 898
+ clearflag FLAG_HIDE_BIRCH_ROUTE101
+ setflag FLAG_HIDE_BIRCH_IN_LAB
+ setflag FLAG_UNKNOWN_BIRCH_380
+ setflag FLAG_HIDE_BIRCH_ROUTE103
return
Route101_EventScript_1A0372:: @ 81A0372
- clearflag 898
- setflag 897
- setflag 721
- setflag 896
+ clearflag FLAG_HIDE_BIRCH_ROUTE103
+ setflag FLAG_HIDE_BIRCH_ROUTE101
+ setflag FLAG_HIDE_BIRCH_IN_LAB
+ setflag FLAG_UNKNOWN_BIRCH_380
return
LittlerootTown_ProfessorBirchsLab_EventScript_1A037F:: @ 81A037F
@@ -2198,7 +2208,7 @@ Route101_EventScript_1A03A5:: @ 81A03A5
copyvar 0x8004, 0x8009
special ShowPokedexRatingMessage
waitmessage
- waitbutton
+ waitbuttonpress
return
EverGrandeCity_ChampionsRoom_EventScript_1A03B0:: @ 81A03B0
@@ -2208,8 +2218,8 @@ Route101_EventScript_1A03B0:: @ 81A03B0
copyvar 0x8008, 0x8005
copyvar 0x8009, 0x8006
copyvar 0x800a, RESULT
- getnumberstring 0, 0x8008
- getnumberstring 1, 0x8009
+ buffernumberstring 0, 0x8008
+ buffernumberstring 1, 0x8009
msgbox Route101_Text_1C44DC, 4
call Route101_EventScript_1A03A5
compare 0x800a, 0
@@ -2218,8 +2228,8 @@ Route101_EventScript_1A03B0:: @ 81A03B0
specialvar RESULT, ScriptGetPokedexInfo
copyvar 0x8008, 0x8005
copyvar 0x8009, 0x8006
- getnumberstring 0, 0x8008
- getnumberstring 1, 0x8009
+ buffernumberstring 0, 0x8008
+ buffernumberstring 1, 0x8009
msgbox Route101_Text_1C4B05, 4
return
@@ -2242,31 +2252,31 @@ SlateportCity_Harbor_Movement_1A041C:: @ 81A041C
step_end
PetalburgCity_Gym_EventScript_1A0424:: @ 81A0424
- setflag 740
- setflag 743
- setflag 741
- setflag 744
- setflag 738
- setflag 742
- setflag 739
- setflag 881
+ setflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE109
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE
+ setflag FLAG_HIDE_PEEKO_BRINEY_HOUSE
setvar 0x4096, 0
return
RusturfTunnel_EventScript_1A0442:: @ 81A0442
removeobject 1
removeobject 10
- clearflag 808
- clearflag 984
+ clearflag FLAG_HIDE_BOYFRIEND_WANDAS_HOUSE
+ clearflag FLAG_HIDE_GIRLFRIEND_WANDAS_HOUSE
setvar 0x409a, 6
- setflag 199
+ setflag FLAG_RUSTURF_TUNNEL_OPENED
return
EventScript_1A0457: @ unreferenced?
delay 30
applymovement 255, SlateportCity_OceanicMuseum_2F_Movement_1A0841
waitmovement 0
- showobject 255, 0, 0
+ showobjectat 255, MAP_PETALBURG_CITY
delay 30
applymovement 255, Movement_1A047A
waitmovement 0
@@ -2284,15 +2294,15 @@ SouthernIsland_Exterior_EventScript_1A047C:: @ 81A047C
compare FACING, 3
call_if 1, BattleTower_Outside_EventScript_160B3A
delay 30
- hideobject 255, 0, 0
+ hideobjectat 255, MAP_PETALBURG_CITY
call BattleTower_Outside_EventScript_1A040E
return
CaveOfOrigin_B4F_EventScript_1A04A0:: @ 81A04A0
lockall
waitse
- playpokecry SPECIES_GROUDON_OR_KYOGRE, 2
- waitpokecry
+ playmoncry SPECIES_GROUDON_OR_KYOGRE, 2
+ waitmoncry
setvar 0x4005, 1
releaseall
end
@@ -2346,13 +2356,13 @@ MagmaHideout_B1F_EventScript_1A04FD:: @ 81A04FD
faceplayer
setwildbattle SPECIES_ELECTRODE, 30, ITEM_NONE
waitse
- playpokecry SPECIES_ELECTRODE, 2
+ playmoncry SPECIES_ELECTRODE, 2
delay 40
- waitpokecry
- setflag 977
- setflag 2145
+ waitmoncry
+ setflag FLAG_HIDE_ELECTRODE_1_HIDEOUT
+ setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
- clearflag 2145
+ clearflag FLAG_SYS_CTRL_OBJ_DELETE
release
end
@@ -2362,13 +2372,13 @@ MagmaHideout_B1F_EventScript_1A051B:: @ 81A051B
faceplayer
setwildbattle SPECIES_ELECTRODE, 30, ITEM_NONE
waitse
- playpokecry SPECIES_ELECTRODE, 2
+ playmoncry SPECIES_ELECTRODE, 2
delay 40
- waitpokecry
- setflag 978
- setflag 2145
+ waitmoncry
+ setflag FLAG_HIDE_ELECTRODE_2_HIDEOUT
+ setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
- clearflag 2145
+ clearflag FLAG_SYS_CTRL_OBJ_DELETE
release
end
@@ -2445,9 +2455,9 @@ Route119_EventScript_1A05C3:: @ 81A05C3
applymovement LAST_TALKED, Route119_Movement_1A0662
waitmovement 0
waitse
- playpokecry SPECIES_KECLEON, 2
+ playmoncry SPECIES_KECLEON, 2
delay 40
- waitpokecry
+ waitmoncry
setwildbattle SPECIES_KECLEON, 30, ITEM_NONE
compare 0x8004, 1
call_if 1, Route119_EventScript_1A0646
@@ -2463,38 +2473,38 @@ Route119_EventScript_1A05C3:: @ 81A05C3
call_if 1, Route119_EventScript_1A065A
compare 0x8004, 7
call_if 1, Route119_EventScript_1A065E
- setflag 2145
+ setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
- clearflag 2145
+ clearflag FLAG_SYS_CTRL_OBJ_DELETE
release
end
Route119_EventScript_1A0646:: @ 81A0646
- setflag 982
+ setflag FLAG_HIDE_KECLEON_ROUTE120_3
return
Route119_EventScript_1A064A:: @ 81A064A
- setflag 985
+ setflag FLAG_HIDE_KECLEON_ROUTE120_4
return
Route119_EventScript_1A064E:: @ 81A064E
- setflag 986
+ setflag FLAG_HIDE_KECLEON_ROUTE120_5
return
Route119_EventScript_1A0652:: @ 81A0652
- setflag 987
+ setflag FLAG_HIDE_KECLEON_ROUTE120_6
return
Route119_EventScript_1A0656:: @ 81A0656
- setflag 988
+ setflag FLAG_HIDE_KECLEON_ROUTE120_7
return
Route119_EventScript_1A065A:: @ 81A065A
- setflag 989
+ setflag FLAG_HIDE_KECLEON_ROUTE119_1
return
Route119_EventScript_1A065E:: @ 81A065E
- setflag 990
+ setflag FLAG_HIDE_KECLEON_ROUTE119_2
return
FortreeCity_Movement_1A0662:: @ 81A0662
@@ -2536,12 +2546,12 @@ FallarborTown_House1_EventScript_1A067F:: @ 81A067F
GraniteCave_StevensRoom_EventScript_1A067F:: @ 81A067F
MtPyre_Summit_EventScript_1A067F:: @ 81A067F
SlateportCity_OceanicMuseum_2F_EventScript_1A067F:: @ 81A067F
- getitemname 0, 0x8004
+ bufferitemname 0, 0x8004
playfanfare 372
message FallarborTown_House1_Text_1A1498
waitmessage
waitfanfare
- removeitem 0x8004, 1
+ takeitem 0x8004, 1
return
EverGrandeCity_DrakesRoom_EventScript_1A0693:: @ 81A0693
@@ -2551,18 +2561,18 @@ EverGrandeCity_SidneysRoom_EventScript_1A0693:: @ 81A0693
applymovement 255, EverGrandeCity_SidneysRoom_Movement_1A0853
waitmovement 0
playse 8
- setmaptile 6, 1, 836, 0
- setmaptile 6, 2, 837, 0
- setmaptile 0, 2, 734, 1
- setmaptile 1, 2, 733, 1
- setmaptile 2, 2, 734, 1
- setmaptile 3, 2, 733, 1
- setmaptile 4, 2, 734, 1
- setmaptile 8, 2, 733, 1
- setmaptile 9, 2, 734, 1
- setmaptile 10, 2, 733, 1
- setmaptile 11, 2, 734, 1
- setmaptile 12, 2, 733, 1
+ setmetatile 6, 1, 836, 0
+ setmetatile 6, 2, 837, 0
+ setmetatile 0, 2, 734, 1
+ setmetatile 1, 2, 733, 1
+ setmetatile 2, 2, 734, 1
+ setmetatile 3, 2, 733, 1
+ setmetatile 4, 2, 734, 1
+ setmetatile 8, 2, 733, 1
+ setmetatile 9, 2, 734, 1
+ setmetatile 10, 2, 733, 1
+ setmetatile 11, 2, 734, 1
+ setmetatile 12, 2, 733, 1
special DrawWholeMapView
return
@@ -2573,12 +2583,12 @@ EverGrandeCity_SidneysRoom_EventScript_1A0710:: @ 81A0710
applymovement 255, EverGrandeCity_SidneysRoom_Movement_1A0847
waitmovement 0
playse 52
- setmaptile 5, 12, 518, 1
- setmaptile 6, 12, 518, 1
- setmaptile 7, 12, 518, 1
- setmaptile 5, 13, 526, 1
- setmaptile 6, 13, 526, 1
- setmaptile 7, 13, 526, 1
+ setmetatile 5, 12, 518, 1
+ setmetatile 6, 12, 518, 1
+ setmetatile 7, 12, 518, 1
+ setmetatile 5, 13, 526, 1
+ setmetatile 6, 13, 526, 1
+ setmetatile 7, 13, 526, 1
special DrawWholeMapView
return
@@ -2586,36 +2596,36 @@ EverGrandeCity_DrakesRoom_EventScript_1A0757:: @ 81A0757
EverGrandeCity_GlaciasRoom_EventScript_1A0757:: @ 81A0757
EverGrandeCity_PhoebesRoom_EventScript_1A0757:: @ 81A0757
EverGrandeCity_SidneysRoom_EventScript_1A0757:: @ 81A0757
- setmaptile 6, 1, 836, 0
- setmaptile 6, 2, 837, 0
- setmaptile 5, 12, 518, 1
- setmaptile 6, 12, 518, 1
- setmaptile 7, 12, 518, 1
- setmaptile 5, 13, 526, 1
- setmaptile 6, 13, 526, 1
- setmaptile 7, 13, 526, 1
- setmaptile 0, 2, 734, 1
- setmaptile 1, 2, 733, 1
- setmaptile 2, 2, 734, 1
- setmaptile 3, 2, 733, 1
- setmaptile 4, 2, 734, 1
- setmaptile 8, 2, 733, 1
- setmaptile 9, 2, 734, 1
- setmaptile 10, 2, 733, 1
- setmaptile 11, 2, 734, 1
- setmaptile 12, 2, 733, 1
+ setmetatile 6, 1, 836, 0
+ setmetatile 6, 2, 837, 0
+ setmetatile 5, 12, 518, 1
+ setmetatile 6, 12, 518, 1
+ setmetatile 7, 12, 518, 1
+ setmetatile 5, 13, 526, 1
+ setmetatile 6, 13, 526, 1
+ setmetatile 7, 13, 526, 1
+ setmetatile 0, 2, 734, 1
+ setmetatile 1, 2, 733, 1
+ setmetatile 2, 2, 734, 1
+ setmetatile 3, 2, 733, 1
+ setmetatile 4, 2, 734, 1
+ setmetatile 8, 2, 733, 1
+ setmetatile 9, 2, 734, 1
+ setmetatile 10, 2, 733, 1
+ setmetatile 11, 2, 734, 1
+ setmetatile 12, 2, 733, 1
return
EverGrandeCity_DrakesRoom_EventScript_1A07FA:: @ 81A07FA
EverGrandeCity_GlaciasRoom_EventScript_1A07FA:: @ 81A07FA
EverGrandeCity_PhoebesRoom_EventScript_1A07FA:: @ 81A07FA
EverGrandeCity_SidneysRoom_EventScript_1A07FA:: @ 81A07FA
- setmaptile 5, 12, 518, 1
- setmaptile 6, 12, 518, 1
- setmaptile 7, 12, 518, 1
- setmaptile 5, 13, 526, 1
- setmaptile 6, 13, 526, 1
- setmaptile 7, 13, 526, 1
+ setmetatile 5, 12, 518, 1
+ setmetatile 6, 12, 518, 1
+ setmetatile 7, 12, 518, 1
+ setmetatile 5, 13, 526, 1
+ setmetatile 6, 13, 526, 1
+ setmetatile 7, 13, 526, 1
return
SlateportCity_Movement_1A0831:: @ 81A0831
@@ -3261,7 +3271,7 @@ gUnknown_081A14B8:: @ 81A14B8
EventScript_1A14CA::
message UnknownString_81A1141
waitmessage
- waitbutton
+ waitbuttonpress
special sub_8081924
waitstate
fadescreen 1
@@ -3599,9 +3609,9 @@ gUnknown_081A2C51:: @ 81A2C51
special sub_80BB63C
compare RESULT, 1
goto_if_eq EventScript_1A2E45
- checkpokemove MOVE_SECRET_POWER
- setfieldeffect 0, RESULT
- getmovename 1, MOVE_SECRET_POWER
+ checkpartymove MOVE_SECRET_POWER
+ setfieldeffectargument 0, RESULT
+ buffermovename 1, MOVE_SECRET_POWER
compare 0x8007, 1
goto_if_eq EventScript_1A2CB0
compare 0x8007, 2
@@ -3620,7 +3630,7 @@ EventScript_1A2CB0:
lockall
compare RESULT, 6
goto_if_eq EventScript_1A2CF1
- getpartypokename 0, RESULT
+ bufferpartymonnick 0, RESULT
msgbox UnknownString_8198F34, 5
compare RESULT, 0
goto_if_eq EventScript_1A2F3A
@@ -3651,7 +3661,7 @@ EventScript_1A2D08:
lockall
compare RESULT, 6
goto_if_eq EventScript_1A2D49
- getpartypokename 0, RESULT
+ bufferpartymonnick 0, RESULT
msgbox UnknownString_81A197B, 5
compare RESULT, 0
goto_if_eq EventScript_1A2F3A
@@ -3682,7 +3692,7 @@ EventScript_1A2D60:
lockall
compare RESULT, 6
goto_if_eq EventScript_1A2DA1
- getpartypokename 0, RESULT
+ bufferpartymonnick 0, RESULT
msgbox UnknownString_81A1A4B, 5
compare RESULT, 0
goto_if_eq EventScript_1A2F3A
@@ -3713,7 +3723,7 @@ EventScript_1A2DB8:
closemessage
playse 9
setvar 0x4097, 0
- setflag 173
+ setflag FLAG_DECORATION_1
special sub_80BB8CC
special sub_80BBAF0
setvar 0x8004, 0
@@ -3737,7 +3747,7 @@ SecretBase_RedCave1_EventScript_1A2DDE:: @ 81A2DDE
SecretBase_RedCave1_EventScript_1A2E08:: @ 81A2E08
closemessage
- setflag 96
+ setflag FLAG_RECEIVED_SECRET_POWER
special sub_80BBC78
waitstate
end
@@ -3754,24 +3764,24 @@ gUnknown_081A2E14:: @ 81A2E14
special sub_80BC114
compare RESULT, 0
goto_if_eq EventScript_1A2E38
- clearflag 173
+ clearflag FLAG_DECORATION_1
special sub_80BBAF0
setvar 0x4089, 0
waitstate
end
EventScript_1A2E38:
- setflag 173
+ setflag FLAG_DECORATION_1
special sub_80BBAF0
setvar 0x4089, 0
waitstate
end
EventScript_1A2E45:
- checkpokemove MOVE_SECRET_POWER
+ checkpartymove MOVE_SECRET_POWER
compare RESULT, 6
goto_if_eq EventScript_1A2EF7
- setfieldeffect 0, RESULT
+ setfieldeffectargument 0, RESULT
setorcopyvar 0x8004, RESULT
lockall
special GetSecretBaseNearbyMapName
@@ -3788,8 +3798,8 @@ EventScript_1A2E45:
msgbox UnknownString_81A3CC9, 5
compare RESULT, 0
goto_if_eq EventScript_1A2F3A
- getpartypokename 0, 0x8004
- getmovename 1, MOVE_SECRET_POWER
+ bufferpartymonnick 0, 0x8004
+ buffermovename 1, MOVE_SECRET_POWER
msgbox UsedCutRockSmashText, 4
closemessage
closemessage
@@ -3831,20 +3841,20 @@ EventScript_1A2F3A::
LittlerootTown_BrendansHouse_2F_EventScript_1A2F3D:: @ 81A2F3D
LittlerootTown_MaysHouse_2F_EventScript_1A2F3D:: @ 81A2F3D
SecretBase_RedCave1_EventScript_1A2F3D:: @ 81A2F3D
- setflag 174
- setflag 175
- setflag 176
- setflag 177
- setflag 178
- setflag 179
- setflag 180
- setflag 181
- setflag 182
- setflag 183
- setflag 184
- setflag 185
- setflag 186
- setflag 187
+ setflag FLAG_DECORATION_2
+ setflag FLAG_DECORATION_3
+ setflag FLAG_DECORATION_4
+ setflag FLAG_DECORATION_5
+ setflag FLAG_DECORATION_6
+ setflag FLAG_DECORATION_7
+ setflag FLAG_DECORATION_8
+ setflag FLAG_DECORATION_9
+ setflag FLAG_DECORATION_10
+ setflag FLAG_DECORATION_11
+ setflag FLAG_DECORATION_12
+ setflag FLAG_DECORATION_13
+ setflag FLAG_DECORATION_14
+ setflag FLAG_DECORATION_15
return
LittlerootTown_BrendansHouse_2F_EventScript_1A2F68:: @ 81A2F68
@@ -3933,7 +3943,7 @@ SecretBase_YellowCave4_EventScript_1A2FC0:: @ 81A2FC0
end
SecretBase_RedCave1_EventScript_1A3032:: @ 81A3032
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A3086
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A30A5
@@ -3968,7 +3978,7 @@ SecretBase_RedCave1_EventScript_1A30A5:: @ 81A30A5
end
SecretBase_RedCave1_EventScript_1A30AE:: @ 81A30AE
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A3102
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3121
@@ -4003,7 +4013,7 @@ SecretBase_RedCave1_EventScript_1A3121:: @ 81A3121
end
SecretBase_RedCave1_EventScript_1A312A:: @ 81A312A
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A317E
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A319D
@@ -4038,7 +4048,7 @@ SecretBase_RedCave1_EventScript_1A319D:: @ 81A319D
end
SecretBase_RedCave1_EventScript_1A31A6:: @ 81A31A6
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A31FA
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3219
@@ -4073,7 +4083,7 @@ SecretBase_RedCave1_EventScript_1A3219:: @ 81A3219
end
SecretBase_RedCave1_EventScript_1A3222:: @ 81A3222
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A3276
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3295
@@ -4108,7 +4118,7 @@ SecretBase_RedCave1_EventScript_1A3295:: @ 81A3295
end
SecretBase_RedCave1_EventScript_1A329E:: @ 81A329E
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A32F2
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3311
@@ -4143,7 +4153,7 @@ SecretBase_RedCave1_EventScript_1A3311:: @ 81A3311
end
SecretBase_RedCave1_EventScript_1A331A:: @ 81A331A
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A336E
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A338D
@@ -4178,7 +4188,7 @@ SecretBase_RedCave1_EventScript_1A338D:: @ 81A338D
end
SecretBase_RedCave1_EventScript_1A3396:: @ 81A3396
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A33EA
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3409
@@ -4213,7 +4223,7 @@ SecretBase_RedCave1_EventScript_1A3409:: @ 81A3409
end
SecretBase_RedCave1_EventScript_1A3412:: @ 81A3412
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A3466
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3485
@@ -4248,7 +4258,7 @@ SecretBase_RedCave1_EventScript_1A3485:: @ 81A3485
end
SecretBase_RedCave1_EventScript_1A348E:: @ 81A348E
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, SecretBase_RedCave1_EventScript_1A34E2
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3501
@@ -4429,9 +4439,9 @@ SlateportCity_OceanicMuseum_1F_EventScript_1ADEE0:: @ 81ADEE0
compare RESULT, 1
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF96
copyvar 0x8009, 0x8006
- checkflag 105
+ checkflag FLAG_OCEANIC_MUSEUM_MET_REPORTER
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF25
- setflag 105
+ setflag FLAG_OCEANIC_MUSEUM_MET_REPORTER
msgbox SlateportCity_OceanicMuseum_1F_Text_1A927F, 5
compare RESULT, 1
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF44
@@ -4558,7 +4568,7 @@ SlateportCity_ContestLobby_EventScript_1AE0B6:: @ 81AE0B6
VerdanturfTown_ContestLobby_EventScript_1AE0B6:: @ 81AE0B6
lock
faceplayer
- checkflag 2
+ checkflag FLAG_TEMP_2
goto_if_eq FallarborTown_ContestLobby_EventScript_1AE17E
setvar 0x8005, 6
special sub_80BF2C4
@@ -4604,7 +4614,7 @@ FallarborTown_ContestLobby_EventScript_1AE137:: @ 81AE137
compare RESULT, 0
goto_if_eq FallarborTown_ContestLobby_EventScript_1AE12D
msgbox FallarborTown_ContestLobby_Text_1A7153, 4
- setflag 2
+ setflag FLAG_TEMP_2
setvar 0x8005, 6
goto FallarborTown_ContestLobby_EventScript_1ADE46
end
@@ -4634,19 +4644,19 @@ VerdanturfTown_ContestLobby_EventScript_1AE188:: @ 81AE188
end
FallarborTown_ContestLobby_EventScript_1AE1EE:: @ 81AE1EE
- clearflag 800
+ clearflag FLAG_HIDE_CONTEST_REPORTER_FALLARBOR
return
FallarborTown_ContestLobby_EventScript_1AE1F2:: @ 81AE1F2
- clearflag 801
+ clearflag FLAG_HIDE_CONTEST_REPORTER_VERDANTURF
return
FallarborTown_ContestLobby_EventScript_1AE1F6:: @ 81AE1F6
- clearflag 803
+ clearflag FLAG_HIDE_CONTEST_REPORTER_SLATEPORT
return
FallarborTown_ContestLobby_EventScript_1AE1FA:: @ 81AE1FA
- clearflag 802
+ clearflag FLAG_HIDE_CONTEST_REPORTER_LILYCOVE
return
FallarborTown_ContestLobby_EventScript_1AE1FE:: @ 81AE1FE
@@ -4655,7 +4665,7 @@ FallarborTown_ContestLobby_EventScript_1AE1FE:: @ 81AE1FE
BattleTower_Lobby_EventScript_1AE1FF:: @ 81AE1FF
lock
faceplayer
- checkflag 2
+ checkflag FLAG_TEMP_2
goto_if_eq BattleTower_Lobby_EventScript_1AE2E3
setvar 0x8005, 7
special sub_80BF2C4
@@ -4707,7 +4717,7 @@ BattleTower_Lobby_EventScript_1AE2B3:: @ 81AE2B3
compare RESULT, 0
goto_if_eq BattleTower_Lobby_EventScript_1AE2D9
msgbox BattleTower_Lobby_Text_1A7A6E, 4
- setflag 2
+ setflag FLAG_TEMP_2
copyvar 0x8004, 0x8008
setvar 0x8005, 7
goto BattleTower_Lobby_EventScript_1ADE46
@@ -4730,11 +4740,11 @@ BattleTower_Lobby_EventScript_1AE2ED:: @ 81AE2ED
special sub_80BF2C4
compare RESULT, 1
goto_if_eq BattleTower_Lobby_EventScript_1AE30F
- clearflag 918
+ clearflag FLAG_HIDE_REPORTER_BATTLE_TOWER
return
BattleTower_Lobby_EventScript_1AE30F:: @ 81AE30F
- setflag 918
+ setflag FLAG_HIDE_REPORTER_BATTLE_TOWER
return
.include "data/scripts/gabby_and_ty.inc"
@@ -4763,8 +4773,8 @@ BattleTower_Lobby_EventScript_1AE30F:: @ 81AE30F
.include "data/text/magma_summit.inc"
gUnknown_081B694A:: @ 81B694A
- animdarklevel 1
- setdarklevel 1
+ animateflash 1
+ setflashradius 1
end
.include "data/scripts/players_house.inc"
@@ -4875,7 +4885,7 @@ S_FallDownHole:: @ 81C6BC5
waitmovement 0
playse 43
delay 60
- warphole UNDEFINED
+ warphole MAP_UNDEFINED
waitstate
end
@@ -4918,7 +4928,7 @@ gUnknown_081C6C02:: @ 81C6C02
@ 81C6C1D
lockall
braillemessage Underwater_SealedChamber_Braille_1C533D
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
diff --git a/data/field_door.s b/data/field_door.s
deleted file mode 100644
index d7ccdd2d4..000000000
--- a/data/field_door.s
+++ /dev/null
@@ -1,416 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-DoorAnimTiles_04: @ 8308F1C
- .incbin "graphics/door_anims/04/0.4bpp"
- .incbin "graphics/door_anims/04/1.4bpp"
- .incbin "graphics/door_anims/04/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_05: @ 830923C
- .incbin "graphics/door_anims/05/0.4bpp"
- .incbin "graphics/door_anims/05/1.4bpp"
- .incbin "graphics/door_anims/05/2.4bpp"
-
- .align 2
-DoorAnimTiles_08: @ 830953C
- .incbin "graphics/door_anims/08/0.4bpp"
- .incbin "graphics/door_anims/08/1.4bpp"
- .incbin "graphics/door_anims/08/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_15: @ 830985C
- .incbin "graphics/door_anims/15/0.4bpp"
- .incbin "graphics/door_anims/15/1.4bpp"
- .incbin "graphics/door_anims/15/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_16: @ 8309B7C
- .incbin "graphics/door_anims/16/0.4bpp"
- .incbin "graphics/door_anims/16/1.4bpp"
- .incbin "graphics/door_anims/16/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_00: @ 8309E9C
- .incbin "graphics/door_anims/00/0.4bpp"
- .incbin "graphics/door_anims/00/1.4bpp"
- .incbin "graphics/door_anims/00/2.4bpp"
-
- .align 2
-DoorAnimTiles_01: @ 830A19C
- .incbin "graphics/door_anims/01/0.4bpp"
- .incbin "graphics/door_anims/01/1.4bpp"
- .incbin "graphics/door_anims/01/2.4bpp"
-
- .align 2
-DoorAnimTiles_02: @ 830A49C
- .incbin "graphics/door_anims/02/0.4bpp"
- .incbin "graphics/door_anims/02/1.4bpp"
- .incbin "graphics/door_anims/02/2.4bpp"
-
- .align 2
-DoorAnimTiles_03: @ 830A79C
- .incbin "graphics/door_anims/03/0.4bpp"
- .incbin "graphics/door_anims/03/1.4bpp"
- .incbin "graphics/door_anims/03/2.4bpp"
-
- .align 2
-DoorAnimTiles_06: @ 830AA9C
- .incbin "graphics/door_anims/06/0.4bpp"
- .incbin "graphics/door_anims/06/1.4bpp"
- .incbin "graphics/door_anims/06/2.4bpp"
-
- .align 2
-DoorAnimTiles_07: @ 830AD9C
- .incbin "graphics/door_anims/07/0.4bpp"
- .incbin "graphics/door_anims/07/1.4bpp"
- .incbin "graphics/door_anims/07/2.4bpp"
-
- .align 2
-DoorAnimTiles_09: @ 830B09C
- .incbin "graphics/door_anims/09/0.4bpp"
- .incbin "graphics/door_anims/09/1.4bpp"
- .incbin "graphics/door_anims/09/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_10: @ 830B3BC
- .incbin "graphics/door_anims/10/0.4bpp"
- .incbin "graphics/door_anims/10/1.4bpp"
- .incbin "graphics/door_anims/10/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_11: @ 830B6DC
- .incbin "graphics/door_anims/11/0.4bpp"
- .incbin "graphics/door_anims/11/1.4bpp"
- .incbin "graphics/door_anims/11/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_12: @ 830B9FC
- .incbin "graphics/door_anims/12/0.4bpp"
- .incbin "graphics/door_anims/12/1.4bpp"
- .incbin "graphics/door_anims/12/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_13: @ 830BD1C
- .incbin "graphics/door_anims/13/0.4bpp"
- .incbin "graphics/door_anims/13/1.4bpp"
- .incbin "graphics/door_anims/13/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_14: @ 830C03C
- .incbin "graphics/door_anims/14/0.4bpp"
- .incbin "graphics/door_anims/14/1.4bpp"
- .incbin "graphics/door_anims/14/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_17: @ 830C35C
- .incbin "graphics/door_anims/17/0.4bpp"
- .incbin "graphics/door_anims/17/1.4bpp"
- .incbin "graphics/door_anims/17/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_18: @ 830C67C
- .incbin "graphics/door_anims/18/0.4bpp"
- .incbin "graphics/door_anims/18/1.4bpp"
- .incbin "graphics/door_anims/18/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_19: @ 830C99C
- .incbin "graphics/door_anims/19/0.4bpp"
- .incbin "graphics/door_anims/19/1.4bpp"
- .incbin "graphics/door_anims/19/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_20: @ 830CCBC
- .incbin "graphics/door_anims/20/0.4bpp"
- .incbin "graphics/door_anims/20/1.4bpp"
- .incbin "graphics/door_anims/20/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_21: @ 830CFDC
- .incbin "graphics/door_anims/21/0.4bpp"
- .incbin "graphics/door_anims/21/1.4bpp"
- .incbin "graphics/door_anims/21/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_22: @ 830D2FC
- .incbin "graphics/door_anims/22/0.4bpp"
- .incbin "graphics/door_anims/22/1.4bpp"
- .incbin "graphics/door_anims/22/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_23: @ 830D61C
- .incbin "graphics/door_anims/23/0.4bpp"
- .incbin "graphics/door_anims/23/1.4bpp"
- .incbin "graphics/door_anims/23/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_24: @ 830D93C
- .incbin "graphics/door_anims/24/0.4bpp"
- .incbin "graphics/door_anims/24/1.4bpp"
- .incbin "graphics/door_anims/24/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_25: @ 830DC5C
- .incbin "graphics/door_anims/25/0.4bpp"
- .incbin "graphics/door_anims/25/1.4bpp"
- .incbin "graphics/door_anims/25/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_26: @ 830DF7C
- .incbin "graphics/door_anims/26/0.4bpp"
- .incbin "graphics/door_anims/26/1.4bpp"
- .incbin "graphics/door_anims/26/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_27: @ 830E29C
- .incbin "graphics/door_anims/27/0.4bpp"
- .incbin "graphics/door_anims/27/1.4bpp"
- .incbin "graphics/door_anims/27/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_28: @ 830E5BC
- .incbin "graphics/door_anims/28/0.4bpp"
- .incbin "graphics/door_anims/28/1.4bpp"
- .incbin "graphics/door_anims/28/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_29: @ 830E8DC
- .incbin "graphics/door_anims/29/0.4bpp"
- .incbin "graphics/door_anims/29/1.4bpp"
- .incbin "graphics/door_anims/29/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_30: @ 830EBFC
- .incbin "graphics/door_anims/30/0.4bpp"
- .incbin "graphics/door_anims/30/1.4bpp"
- .incbin "graphics/door_anims/30/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_31: @ 830EF1C
- .incbin "graphics/door_anims/31/0.4bpp"
- .incbin "graphics/door_anims/31/1.4bpp"
- .incbin "graphics/door_anims/31/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_32: @ 830F23C
- .incbin "graphics/door_anims/32/0.4bpp"
- .incbin "graphics/door_anims/32/1.4bpp"
- .incbin "graphics/door_anims/32/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_33: @ 830F55C
- .incbin "graphics/door_anims/33/0.4bpp"
- .incbin "graphics/door_anims/33/1.4bpp"
- .incbin "graphics/door_anims/33/2.4bpp"
-
- .space 32
-
-gDoorOpenAnimFrames:: @ 830F87C
- door_anim_frame 4, -1
- door_anim_frame 4, 0
- door_anim_frame 4, 0x100
- door_anim_frame 4, 0x200
- door_anim_frame 0, 0
-
-gDoorCloseAnimFrames:: @ 830F890
- door_anim_frame 4, 0x200
- door_anim_frame 4, 0x100
- door_anim_frame 4, 0
- door_anim_frame 4, -1
- door_anim_frame 0, 0
-
-DoorAnimPalettes_830F8A4:
- .byte 1, 1, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F8AC:
- .byte 1, 1, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F8B4:
- .byte 5, 5, 5, 5, 5, 5, 5, 5
-
-DoorAnimPalettes_830F8BC:
- .byte 0, 0, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F8C4:
- .byte 6, 6, 6, 6, 6, 6, 6, 6
-
-DoorAnimPalettes_830F8CC:
- .byte 8, 8, 8, 8, 8, 8, 8, 8
-
-DoorAnimPalettes_830F8D4:
- .byte 11, 11, 11, 11, 11, 11, 11, 11
-
-DoorAnimPalettes_830F8DC:
- .byte 10, 10, 10, 10, 10, 10, 10, 10
-
-DoorAnimPalettes_830F8E4:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F8EC:
- .byte 8, 8, 8, 8, 8, 8, 8, 8
-
-DoorAnimPalettes_830F8F4:
- .byte 9, 9, 9, 9, 9, 9, 9, 9
-
-DoorAnimPalettes_830F8FC:
- .byte 9, 9, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F904:
- .byte 8, 8, 8, 8, 8, 8, 8, 8
-
-DoorAnimPalettes_830F90C:
- .byte 9, 9, 9, 9, 9, 9, 9, 9
-
-DoorAnimPalettes_830F914:
- .byte 6, 6, 6, 6, 6, 6, 6, 6
-
-DoorAnimPalettes_830F91C:
- .byte 6, 6, 6, 6, 6, 6, 6, 6
-
-DoorAnimPalettes_830F924:
- .byte 0, 0, 5, 5, 5, 5, 5, 5
-
-DoorAnimPalettes_830F92C:
- .byte 6, 6, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F934:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F93C:
- .byte 6, 6, 5, 5, 5, 5, 5, 5
-
-DoorAnimPalettes_830F944:
- .byte 5, 5, 5, 5, 5, 5, 5, 5
-
-DoorAnimPalettes_830F94C:
- .byte 1, 1, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F954:
- .byte 6, 6, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F95C:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F964:
- .byte 5, 5, 5, 5, 5, 5, 5, 5
-
-DoorAnimPalettes_830F96C:
- .byte 9, 9, 9, 9, 9, 9, 9, 9
-
-DoorAnimPalettes_830F974:
- .byte 8, 8, 8, 8, 8, 8, 8, 8
-
-DoorAnimPalettes_830F97C:
- .byte 6, 6, 6, 6, 6, 6, 6, 6
-
-DoorAnimPalettes_830F984:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F98C:
- .byte 11, 11, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F994:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F99C:
- .byte 6, 6, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F9A4:
- .byte 9, 9, 9, 9, 9, 9, 9, 9
-
-DoorAnimPalettes_830F9AC:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
- .align 2
-gDoorAnimGraphicsTable:: @ 830F9B4
- door_anim_gfx 0x021, 0, DoorAnimTiles_00, DoorAnimPalettes_830F8A4
- door_anim_gfx 0x061, 1, DoorAnimTiles_01, DoorAnimPalettes_830F8AC
- door_anim_gfx 0x1CD, 1, DoorAnimTiles_02, DoorAnimPalettes_830F8B4
- door_anim_gfx 0x041, 1, DoorAnimTiles_03, DoorAnimPalettes_830F8BC
- door_anim_gfx 0x248, 0, DoorAnimTiles_04, DoorAnimPalettes_830F8C4
- door_anim_gfx 0x249, 0, DoorAnimTiles_05, DoorAnimPalettes_830F8CC
- door_anim_gfx 0x22F, 0, DoorAnimTiles_06, DoorAnimPalettes_830F8D4
- door_anim_gfx 0x21F, 0, DoorAnimTiles_07, DoorAnimPalettes_830F8DC
- door_anim_gfx 0x2A5, 0, DoorAnimTiles_08, DoorAnimPalettes_830F8E4
- door_anim_gfx 0x287, 0, DoorAnimTiles_09, DoorAnimPalettes_830F8F4
- door_anim_gfx 0x2AC, 0, DoorAnimTiles_10, DoorAnimPalettes_830F934
- door_anim_gfx 0x3A1, 0, DoorAnimTiles_11, DoorAnimPalettes_830F93C
- door_anim_gfx 0x2DC, 0, DoorAnimTiles_12, DoorAnimPalettes_830F92C
- door_anim_gfx 0x225, 0, DoorAnimTiles_13, DoorAnimPalettes_830F924
- door_anim_gfx 0x1DB, 1, DoorAnimTiles_14, DoorAnimPalettes_830F94C
- door_anim_gfx 0x246, 0, DoorAnimTiles_15, DoorAnimPalettes_830F8EC
- door_anim_gfx 0x28E, 0, DoorAnimTiles_16, DoorAnimPalettes_830F944
- door_anim_gfx 0x2A1, 0, DoorAnimTiles_17, DoorAnimPalettes_830F8FC
- door_anim_gfx 0x21C, 0, DoorAnimTiles_18, DoorAnimPalettes_830F914
- door_anim_gfx 0x21E, 0, DoorAnimTiles_19, DoorAnimPalettes_830F91C
- door_anim_gfx 0x21D, 1, DoorAnimTiles_20, DoorAnimPalettes_830F904
- door_anim_gfx 0x21A, 0, DoorAnimTiles_21, DoorAnimPalettes_830F90C
- door_anim_gfx 0x224, 0, DoorAnimTiles_22, DoorAnimPalettes_830F954
- door_anim_gfx 0x289, 0, DoorAnimTiles_23, DoorAnimPalettes_830F95C
- door_anim_gfx 0x30C, 1, DoorAnimTiles_24, DoorAnimPalettes_830F964
- door_anim_gfx 0x32D, 1, DoorAnimTiles_25, DoorAnimPalettes_830F96C
- door_anim_gfx 0x2ED, 1, DoorAnimTiles_26, DoorAnimPalettes_830F974
- door_anim_gfx 0x264, 1, DoorAnimTiles_27, DoorAnimPalettes_830F97C
- door_anim_gfx 0x22B, 0, DoorAnimTiles_28, DoorAnimPalettes_830F984
- door_anim_gfx 0x2F7, 0, DoorAnimTiles_29, DoorAnimPalettes_830F98C
- door_anim_gfx 0x297, 0, DoorAnimTiles_30, DoorAnimPalettes_830F994
- door_anim_gfx 0x285, 1, DoorAnimTiles_31, DoorAnimPalettes_830F99C
- door_anim_gfx 0x25D, 1, DoorAnimTiles_32, DoorAnimPalettes_830F9A4
- door_anim_gfx 0x20E, 1, DoorAnimTiles_33, DoorAnimPalettes_830F9AC
- door_anim_gfx 0, 0, 0, 0
diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s
index aabb1252d..900cc7009 100644
--- a/data/field_effect_scripts.s
+++ b/data/field_effect_scripts.s
@@ -67,7 +67,7 @@ gFieldEffectScriptPointers:: @ 81D9B34
.4byte gFieldEffectScript_CutGrass
.4byte gFieldEffectScript_FieldMoveShowMonInit
.4byte gFieldEffectScript_UseFlyAncientTomb
- .4byte gFieldEffectScript_PCTurnOn
+ .4byte gFieldEffectScript_SecretBasePCTurnOn
.4byte gFieldEffectScript_HallOfFameRecord
.4byte gFieldEffectScript_UseTeleport
@@ -317,8 +317,8 @@ gFieldEffectScript_UseFlyAncientTomb: @ 81D9E26
callnative FldEff_UseFlyAncientTomb
end
-gFieldEffectScript_PCTurnOn: @ 81D9E2C
- callnative FldEff_PCTurnOn
+gFieldEffectScript_SecretBasePCTurnOn: @ 81D9E2C
+ callnative FldEff_SecretBasePCTurnOn
end
gFieldEffectScript_HallOfFameRecord: @ 81D9E32
diff --git a/data/field_move_scripts.inc b/data/field_move_scripts.inc
index c36f95460..0a0eeaa73 100644
--- a/data/field_move_scripts.inc
+++ b/data/field_move_scripts.inc
@@ -1,13 +1,13 @@
S_CuttableTree:: @ 81B0DCC
lockall
- checkflag 2055
+ checkflag FLAG_BADGE01_GET
goto_if 0, CannotUseCut
- checkpokemove MOVE_CUT
+ checkpartymove MOVE_CUT
compare RESULT, 6
goto_if_eq CannotUseCut
- setfieldeffect 0, RESULT
- getpartypokename 0, RESULT
- getmovename 1, MOVE_CUT
+ setfieldeffectargument 0, RESULT
+ bufferpartymonnick 0, RESULT
+ buffermovename 1, MOVE_CUT
msgbox UseCutPromptText, 5
compare RESULT, 0
goto_if_eq Cut_ChoseNo
@@ -58,14 +58,14 @@ CannotUseCutText: @ 81B0E8E
S_BreakableRock:: @ 81B0EB7
lockall
- checkflag 2057
+ checkflag FLAG_BADGE03_GET
goto_if 0, CannotUseRockSmash
- checkpokemove MOVE_ROCK_SMASH
+ checkpartymove MOVE_ROCK_SMASH
compare RESULT, 6
goto_if_eq CannotUseRockSmash
- setfieldeffect 0, RESULT
- getpartypokename 0, RESULT
- getmovename 1, MOVE_ROCK_SMASH
+ setfieldeffectargument 0, RESULT
+ bufferpartymonnick 0, RESULT
+ buffermovename 1, MOVE_ROCK_SMASH
msgbox UseRockSmashPromptText, 5
compare RESULT, 0
goto_if_eq RockSmash_ChoseNo
@@ -125,14 +125,14 @@ CannotUseRockSmashText: @ 81B0F90
S_PushableBoulder:: @ 81B0FCB
lockall
- checkflag 2058
+ checkflag FLAG_BADGE04_GET
goto_if 0, CannotUseStrength
- checkflag 2089
+ checkflag FLAG_SYS_USE_STRENGTH
goto_if_eq AlreadyUsedStrength
- checkpokemove 70
+ checkpartymove 70
compare RESULT, 6
goto_if_eq CannotUseStrength
- setfieldeffect 0, RESULT
+ setfieldeffectargument 0, RESULT
msgbox UseStrengthPromptText, 5
compare RESULT, 0
goto_if_eq Strength_ChoseNo
@@ -150,7 +150,7 @@ S_UseStrength:: @ 81B100E
end
UsedStrength: @ 81B1019
- setflag 2089
+ setflag FLAG_SYS_USE_STRENGTH
msgbox UsedStrengthText, 3
releaseall
end
@@ -190,11 +190,11 @@ AlreadyUsedStrengthText: @ 81B1127
S_UseWaterfall:: @ 81B115A
lockall
- checkpokemove MOVE_WATERFALL
+ checkpartymove MOVE_WATERFALL
compare RESULT, 6
goto_if_eq Waterfall_NoMonKnows
- getpartypokename 0, RESULT
- setfieldeffect 0, RESULT
+ bufferpartymonnick 0, RESULT
+ setfieldeffectargument 0, RESULT
msgbox UseWaterfallPromptText, 5
compare RESULT, 0
goto_if_eq Waterfall_Done
@@ -223,12 +223,12 @@ UsedWaterfallText: @ 81B120D
UseDiveScript:: @ 81B1220
lockall
- checkpokemove MOVE_DIVE
+ checkpartymove MOVE_DIVE
compare RESULT, 6
goto_if_eq CannotUseDive
- getpartypokename 0, RESULT
- setfieldeffect 0, RESULT
- setfieldeffect 1, 1
+ bufferpartymonnick 0, RESULT
+ setfieldeffectargument 0, RESULT
+ setfieldeffectargument 1, 1
msgbox UseDivePromptText, 5
compare RESULT, 0
goto_if_eq Dive_Done
@@ -246,12 +246,12 @@ Dive_Done: @ 81B1267
S_UseDiveUnderwater:: @ 81B1269
lockall
- checkpokemove MOVE_DIVE
+ checkpartymove MOVE_DIVE
compare RESULT, 6
goto_if_eq UnderwaterCannotUseDive
- getpartypokename 0, RESULT
- setfieldeffect 0, RESULT
- setfieldeffect 1, 1
+ bufferpartymonnick 0, RESULT
+ setfieldeffectargument 0, RESULT
+ setfieldeffectargument 1, 1
msgbox UnderwaterUseDivePromptText, 5
compare RESULT, 0
goto_if_eq UnderwaterDive_Done
diff --git a/data/field_special_scene.s b/data/field_special_scene.s
deleted file mode 100644
index 9d3958924..000000000
--- a/data/field_special_scene.s
+++ /dev/null
@@ -1,41 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gMapObjectPic_MovingBox:: @ 83D28AC
- .incbin "graphics/map_objects/pics/misc/moving_box.4bpp"
-
- .align 2
-gMapObjectPalette19:: @ 83D292C
- .incbin "graphics/map_objects/palettes/19.gbapal"
-
-gTruckCamera_HorizontalTable:: @ 83D294C
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 1
- .byte 2
- .byte 2
- .byte 2
- .byte 2
- .byte 2
- .byte 2
- .byte -1
- .byte -1
- .byte -1
- .byte 0
-
-gUnknown_083D295F:: @ 83D295F
- step_18
- step_end
-
-gUnknown_083D2961:: @ 83D2961
- step_17
- step_end
diff --git a/data/field_weather.s b/data/field_weather.s
deleted file mode 100644
index 836bfbe99..000000000
--- a/data/field_weather.s
+++ /dev/null
@@ -1,490 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-DroughtPaletteData_0: @ 8393FE8
- .incbin "graphics/weather/drought0.bin.lz"
-
- .align 2
-DroughtPaletteData_1: @ 839480C
- .incbin "graphics/weather/drought1.bin.lz"
-
- .align 2
-DroughtPaletteData_2: @ 8395004
- .incbin "graphics/weather/drought2.bin.lz"
-
- .align 2
-DroughtPaletteData_3: @ 83957A0
- .incbin "graphics/weather/drought3.bin.lz"
-
- .align 2
-DroughtPaletteData_4: @ 8395FBC
- .incbin "graphics/weather/drought4.bin.lz"
-
- .align 2
-DroughtPaletteData_5: @ 8396784
- .incbin "graphics/weather/drought5.bin.lz"
-
- .align 2
-gUnknown_08396FA8:: @ 8396FA8
- .4byte DroughtPaletteData_0
- .4byte DroughtPaletteData_1
- .4byte DroughtPaletteData_2
- .4byte DroughtPaletteData_3
- .4byte DroughtPaletteData_4
- .4byte DroughtPaletteData_5
- .4byte 0x2000000
-
- .align 2
-gUnknown_08396FC4:: @ 8396FC4
- .4byte gUnknown_0202F7E8
-
- .align 2
-gUnknown_08396FC8:: @ 8396FC8
- .4byte sub_807CAE8, nullsub_38, sub_807CAE8, sub_807CB0C
- .4byte sub_807DE78, sub_807DEF4, sub_807DEC4, sub_807DF54
- .4byte sub_807DF9C, nullsub_55, sub_807DFC0, sub_807DFD0
- .4byte sub_807E364, sub_807E400, sub_807E3D0, sub_807E460
- .4byte sub_807E9C8, snowflakes_progress2, sub_807EA18, sub_807EAC0
- .4byte sub_807EE80, sub_807EFC0, sub_807EEF4, sub_807F34C
- .4byte sub_807F49C, sub_807F52C, sub_807F4FC, sub_807F5EC
- .4byte sub_807F7F8, sub_807F888, sub_807F858, sub_807F934
- .4byte sub_807FE9C, sub_807FF4C, sub_807FF1C, sub_807FFC8
- .4byte sub_807FB24, sub_807FBD8, sub_807FBA8, sub_807FC3C
- .4byte sub_807F49C, sub_807F52C, sub_807F4FC, sub_807F5EC
- .4byte sub_8080430, nullsub_56, sub_8080460, sub_8080470
- .4byte sub_807E110, sub_807E174, sub_807E144, sub_807E258
- .4byte sub_807EF24, sub_807EFC0, sub_807EF90, sub_807F34C
- .4byte sub_8080474, sub_80804F8, sub_80804C8, sub_808056C
-
- .align 2
-gUnknown_083970B8:: @ 83970B8
- .4byte sub_807CC24
- .4byte sub_807CCAC
- .4byte nullsub_39
- .4byte nullsub_39
-
-gUnknown_083970C8:: @ 83970C8
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 0
- .byte 0
- .byte 2
- .byte 1
- .byte 2
- .byte 2
- .byte 2
- .byte 2
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 2
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
-
- .align 2
-gUnknown_083970E8:: @ 83970E8
- .incbin "graphics/weather/0.gbapal"
-
- .align 2
-gUnknown_08397108:: @ 8397108
- .incbin "graphics/weather/1.gbapal"
-
- .align 2
-gUnknown_08397128:: @ 8397128
- .incbin "graphics/weather/2.gbapal"
-
- .align 2
-WeatherFog0Tiles: @ 8397148
- .incbin "graphics/weather/fog0.4bpp"
-
- .align 2
-gWeatherFog1Tiles:: @ 8397948
- .incbin "graphics/weather/fog1.4bpp"
-
- .align 2
-WeatherCloudTiles: @ 8398148
- .incbin "graphics/weather/cloud.4bpp"
-
- .align 2
-gSpriteImage_8398948:: @ 8398948
- .incbin "graphics/weather/snow0.4bpp"
-
- .align 2
-gSpriteImage_8398968:: @ 8398968
- .incbin "graphics/weather/snow1.4bpp"
-
- .align 2
-WeatherBubbleTiles: @ 8398988
- .incbin "graphics/weather/bubble.4bpp"
-
- .align 2
-WeatherAshTiles: @ 83989C8
- .incbin "graphics/weather/ash.4bpp"
-
- .align 2
-WeatherRainTiles: @ 83999C8
- .incbin "graphics/weather/rain.4bpp"
-
- .align 2
-WeatherSandstormTiles: @ 8399FC8
- .incbin "graphics/weather/sandstorm.4bpp"
-
- .align 1
-gUnknown_0839A9C8:: @ 839A9C8
- .2byte 0, 66
- .2byte 5, 73
- .2byte 10, 78
-
- .align 2
-gUnknown_0839A9D4:: @ 839A9D4
- obj_tiles WeatherCloudTiles, 0x800, 0x1200
-
- .align 2
-gOamData_839A9DC:: @ 839A9DC
- .2byte 0x0400
- .2byte 0xC000
- .2byte 0x0C00
-
- .align 2
-gSpriteAnim_839A9E4:: @ 839A9E4
- obj_image_anim_frame 0, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839A9EC:: @ 839A9EC
- .4byte gSpriteAnim_839A9E4
-
- .align 2
-gSpriteTemplate_839A9F0:: @ 839A9F0
- spr_template 4608, 4609, gOamData_839A9DC, gSpriteAnimTable_839A9EC, NULL, gDummySpriteAffineAnimTable, sub_807E0F4
-
- .align 1
-gUnknown_0839AA08:: @ 839AA08
- .2byte 0, 0
- .2byte 0, 160
- .2byte 0, 64
- .2byte 144, 224
- .2byte 144, 128
- .2byte 32, 32
- .2byte 32, 192
- .2byte 32, 96
- .2byte 72, 128
- .2byte 72, 32
- .2byte 72, 192
- .2byte 216, 96
- .2byte 216, 0
- .2byte 104, 160
- .2byte 104, 64
- .2byte 104, 224
- .2byte 144, 0
- .2byte 144, 160
- .2byte 144, 64
- .2byte 32, 224
- .2byte 32, 128
- .2byte 72, 32
- .2byte 72, 192
- .2byte 48, 96
-
- .align 2
-gOamData_839AA68:: @ 839AA68
- .2byte 0x8000
- .2byte 0x8000
- .2byte 0x2400
-
- .align 2
-gSpriteAnim_839AA70:: @ 839AA70
- obj_image_anim_frame 0, 16
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_839AA78:: @ 839AA78
- obj_image_anim_frame 8, 3
- obj_image_anim_frame 32, 2
- obj_image_anim_frame 40, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839AA88:: @ 839AA88
- obj_image_anim_frame 8, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 24, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839AA98:: @ 839AA98
- .4byte gSpriteAnim_839AA70
- .4byte gSpriteAnim_839AA78
- .4byte gSpriteAnim_839AA88
-
- .align 2
-gSpriteTemplate_839AAA4:: @ 839AAA4
- spr_template 4614, 4608, gOamData_839AA68, gSpriteAnimTable_839AA98, NULL, gDummySpriteAffineAnimTable, sub_807E5C0
-
- .align 1
-gUnknown_0839AABC:: @ 839AABC
- .2byte -104, 208
- .2byte -160, 320
-
- .align 1
-gUnknown_0839AAC4:: @ 839AAC4
- .2byte 18, 7, 12, 10
-
- .align 2
-gUnknown_0839AACC:: @ 839AACC
- obj_tiles WeatherRainTiles, 0x600, 0x1206
-
- .align 2
-gOamData_839AAD4:: @ 839AAD4
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gSpriteImageTable_839AADC:: @ 839AADC
- obj_frame_tiles gSpriteImage_8398948, 0x20
- obj_frame_tiles gSpriteImage_8398968, 0x20
-
- .align 2
-gSpriteAnim_839AAEC:: @ 839AAEC
- obj_image_anim_frame 0, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839AAF4:: @ 839AAF4
- obj_image_anim_frame 1, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839AAFC:: @ 839AAFC
- .4byte gSpriteAnim_839AAEC
- .4byte gSpriteAnim_839AAF4
-
- .align 2
-gSpriteTemplate_839AB04:: @ 839AB04
- spr_template 0xFFFF, 4608, gOamData_839AAD4, gSpriteAnimTable_839AAFC, gSpriteImageTable_839AADC, gDummySpriteAffineAnimTable, sub_807ED48
-
-@ unused data
- .2byte 0
- .2byte 6
- .2byte 6
- .2byte 12
- .2byte 18
- .2byte 42
- .2byte 300
- .2byte 300
-
- .align 2
-gOamData_839AB2C:: @ 839AB2C
- .2byte 0x0400
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_839AB34:: @ 839AB34
- obj_image_anim_frame 0, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839AB3C:: @ 839AB3C
- obj_image_anim_frame 32, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839AB44:: @ 839AB44
- obj_image_anim_frame 64, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839AB4C:: @ 839AB4C
- obj_image_anim_frame 96, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839AB54:: @ 839AB54
- obj_image_anim_frame 128, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839AB5C:: @ 839AB5C
- obj_image_anim_frame 160, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839AB64:: @ 839AB64
- .4byte gSpriteAnim_839AB34
- .4byte gSpriteAnim_839AB3C
- .4byte gSpriteAnim_839AB44
- .4byte gSpriteAnim_839AB4C
- .4byte gSpriteAnim_839AB54
- .4byte gSpriteAnim_839AB5C
-
- .align 2
-gSpriteAffineAnim_839AB7C:: @ 839AB7C
- obj_rot_scal_anim_frame 0x200, 0x200, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_839AB8C:: @ 839AB8C
- .4byte gSpriteAffineAnim_839AB7C
-
- .align 2
-gSpriteTemplate_839AB90:: @ 839AB90
- spr_template 4609, 4608, gOamData_839AB2C, gSpriteAnimTable_839AB64, NULL, gSpriteAffineAnimTable_839AB8C, sub_807F688
-
- .align 2
-gUnknown_0839ABA8:: @ 839ABA8
- obj_tiles gWeatherFog1Tiles, 0x800, 0x1201
-
- .align 2
-gUnknown_0839ABB0:: @ 839ABB0
- obj_tiles WeatherAshTiles, 0x1000, 0x1202
-
- .align 2
-gOamData_839ABB8:: @ 839ABB8
- .2byte 0x0400
- .2byte 0xC000
- .2byte 0xF400
-
- .align 2
-gSpriteAnim_839ABC0:: @ 839ABC0
- obj_image_anim_frame 0, 60
- obj_image_anim_frame 64, 60
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_839ABCC:: @ 839ABCC
- .4byte gSpriteAnim_839ABC0
-
- .align 2
-gSpriteTemplate_839ABD0:: @ 839ABD0
- spr_template 4610, 4608, gOamData_839ABB8, gSpriteAnimTable_839ABCC, NULL, gDummySpriteAffineAnimTable, sub_807FAA8
-
- .align 2
-gUnknown_0839ABE8:: @ 839ABE8
- obj_tiles WeatherFog0Tiles, 0x800, 0x1203
-
- .align 2
-gOamData_839ABF0:: @ 839ABF0
- .2byte 0x0400
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_839ABF8:: @ 839ABF8
- obj_image_anim_frame 0, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839AC00:: @ 839AC00
- .4byte gSpriteAnim_839ABF8
-
- .align 2
-gSpriteTemplate_839AC04:: @ 839AC04
- spr_template 4611, 4608, gOamData_839ABF0, gSpriteAnimTable_839AC00, NULL, gDummySpriteAffineAnimTable, sub_807FE3C
-
- .align 2
-gOamData_839AC1C:: @ 839AC1C
- .2byte 0x0400
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_839AC24:: @ 839AC24
- obj_image_anim_frame 0, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839AC2C:: @ 839AC2C
- obj_image_anim_frame 64, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839AC34:: @ 839AC34
- .4byte gSpriteAnim_839AC24
- .4byte gSpriteAnim_839AC2C
-
- .align 2
-gSpriteTemplate_839AC3C:: @ 839AC3C
- spr_template 4612, 4609, gOamData_839AC1C, gSpriteAnimTable_839AC34, NULL, gDummySpriteAffineAnimTable, sub_8080338
-
- .align 2
-gUnknown_0839AC54:: @ 839AC54
- obj_tiles WeatherSandstormTiles, 0xA00, 0x1204
-
- .align 1
-gUnknown_0839AC5C:: @ 839AC5C
- .2byte 0
- .2byte 120
- .2byte 80
- .2byte 160
- .2byte 40
- .2byte 0
-
-gUnknown_0839AC68:: @ 839AC68
- .byte 40
- .byte 90
- .byte 60
- .byte 90
- .byte 2
- .byte 60
- .byte 40
- .byte 30
-
- .align 2
-gUnknown_0839AC70:: @ 839AC70
- obj_tiles WeatherBubbleTiles, 0x40, 0x1205
-
- .align 1
-gUnknown_0839AC78:: @ 839AC78
- .2byte 120, 160
- .2byte 376, 160
- .2byte 40, 140
- .2byte 296, 140
- .2byte 180, 130
- .2byte 436, 130
- .2byte 60, 160
- .2byte 436, 160
- .2byte 220, 180
- .2byte 476, 180
- .2byte 10, 90
- .2byte 266, 90
- .2byte 256, 160
-
- .align 2
-gSpriteAnim_839ACAC:: @ 839ACAC
- obj_image_anim_frame 0, 16
- obj_image_anim_frame 1, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839ACB8:: @ 839ACB8
- .4byte gSpriteAnim_839ACAC
-
- .align 2
-gSpriteTemplate_839ACBC:: @ 839ACBC
- spr_template 4613, 4608, gOamData_837DF24, gSpriteAnimTable_839ACB8, NULL, gDummySpriteAffineAnimTable, unc_0807DAB4
-
-gUnknown_0839ACD4:: @ 839ACD4
- .byte 2, 3, 5, 3
-
-gUnknown_0839ACD8:: @ 839ACD8
- .byte 2, 2, 3, 2
diff --git a/data/fldeff_80C5CD4.s b/data/fldeff_80C5CD4.s
deleted file mode 100644
index 4f0e83832..000000000
--- a/data/fldeff_80C5CD4.s
+++ /dev/null
@@ -1,320 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_083D1898:: @ 83D1898
- obj_tiles gUnknownGfx_083D190C, 0x80, 0
-
- .align 2
-gUnknown_083D18A0:: @ 83D18A0
- obj_pal gUnknownPal_083D18EC, 0x0000
-
- .align 2
-gSpriteTemplate_83D18A8:: @ 83D18A8
- spr_template 0, 0, gOamData_83D18D8, gSpriteAnimTable_83D18E8, NULL, gDummySpriteAffineAnimTable, sub_80C60CC
-
- .align 2
-gSpriteTemplate_83D18C0:: @ 83D18C0
- spr_template 0, 0, gOamData_83D18D8, gSpriteAnimTable_83D18E8, NULL, gDummySpriteAffineAnimTable, sub_80C6130
-
- .align 2
-gOamData_83D18D8:: @ 83D18D8
- .2byte 0x4000
- .2byte 0x4000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_83D18E0:: @ 83D18E0
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D18E8:: @ 83D18E8
- .4byte gSpriteAnim_83D18E0
-
- .align 2
-gUnknownPal_083D18EC::
- .incbin "graphics/unknown/unknown_3D18EC.gbapal"
-
- .align 2
-gUnknownGfx_083D190C::
- .incbin "graphics/unknown/unknown_3D190C.4bpp"
-
- .align 2
-gSpriteImage_83D198C:: @ 83D198C
- .incbin "graphics/unknown_sprites/83D259C/0.4bpp"
-
- .align 2
-gSpriteImage_83D1A0C:: @ 83D1A0C
- .incbin "graphics/unknown_sprites/83D259C/1.4bpp"
-
- .align 2
-gSpriteImage_83D1A8C:: @ 83D1A8C
- .incbin "graphics/unknown_sprites/83D259C/2.4bpp"
-
- .align 2
-gSpriteImage_83D1B0C:: @ 83D1B0C
- .incbin "graphics/unknown_sprites/83D259C/3.4bpp"
-
- .align 2
-gSpriteImage_83D1B8C:: @ 83D1B8C
- .incbin "graphics/unknown_sprites/83D259C/4.4bpp"
-
- .space 32
-
- .align 2
-gFieldEffectObjectPalette7: @ 83D1C2C
- .incbin "graphics/field_effect_objects/palettes/07.gbapal"
-
- .align 2
-gSpriteImage_83D1C4C:: @ 83D1C4C
- .incbin "graphics/unknown_sprites/83D25EC/0.4bpp"
-
- .align 2
-gSpriteImage_83D1CCC:: @ 83D1CCC
- .incbin "graphics/unknown_sprites/83D25EC/1.4bpp"
-
- .align 2
-gSpriteImage_83D1D4C:: @ 83D1D4C
- .incbin "graphics/unknown_sprites/83D25EC/2.4bpp"
-
- .align 2
-gSpriteImage_83D1DCC:: @ 83D1DCC
- .incbin "graphics/unknown_sprites/83D25EC/3.4bpp"
-
- .align 2
-gSpriteImage_83D1E4C:: @ 83D1E4C
- .incbin "graphics/unknown_sprites/83D25EC/4.4bpp"
-
- .align 2
-gSpriteImage_83D1ECC:: @ 83D1ECC
- .incbin "graphics/unknown_sprites/83D25C4/0.4bpp"
-
- .align 2
-gSpriteImage_83D1F4C:: @ 83D1F4C
- .incbin "graphics/unknown_sprites/83D25C4/1.4bpp"
-
- .align 2
-gSpriteImage_83D1FCC:: @ 83D1FCC
- .incbin "graphics/unknown_sprites/83D25C4/2.4bpp"
-
- .align 2
-gSpriteImage_83D204C:: @ 83D204C
- .incbin "graphics/unknown_sprites/83D25C4/3.4bpp"
-
- .align 2
-gSpriteImage_83D20CC:: @ 83D20CC
- .incbin "graphics/unknown_sprites/83D25C4/4.4bpp"
-
- .align 2
- .incbin "graphics/unknown_sprites/83D25C4/5.4bpp"
-
- .align 2
-gFieldEffectObjectPalette8: @ 83D21CC
- .incbin "graphics/field_effect_objects/palettes/08.gbapal"
-
- .align 2
-gSpriteImage_83D21EC:: @ 83D21EC
- .incbin "graphics/unknown_sprites/83D2688/0.4bpp"
-
- .align 2
-gSpriteImage_83D22EC:: @ 83D22EC
- .incbin "graphics/unknown_sprites/83D2688/1.4bpp"
-
- .align 2
-gSpriteImage_83D23EC:: @ 83D23EC
- .incbin "graphics/unknown_sprites/83D2688/2.4bpp"
-
- .align 2
-gOamData_83D24EC:: @ 83D24EC
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83D24F4:: @ 83D24F4
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 1, 8
- obj_image_anim_frame 2, 8
- obj_image_anim_frame 3, 8
- obj_image_anim_frame 4, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D250C:: @ 83D250C
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 1, 8
- obj_image_anim_frame 2, 8
- obj_image_anim_frame 3, 8
- obj_image_anim_frame 4, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D2524:: @ 83D2524
- obj_image_anim_frame 4, 8
- obj_image_anim_frame 3, 8
- obj_image_anim_frame 2, 8
- obj_image_anim_frame 1, 8
- obj_image_anim_frame 0, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D253C:: @ 83D253C
- obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 1, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 2, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 3, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 4, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D2554:: @ 83D2554
- obj_image_anim_frame 4, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 3, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 2, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 1, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D256C:: @ 83D256C
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 1, 8
- obj_image_anim_frame 2, 8
- obj_image_anim_frame 3, 8
- obj_image_anim_frame 4, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D2584:: @ 83D2584
- .4byte gSpriteAnim_83D24F4
-
- .align 2
-gSpriteAnimTable_83D2588:: @ 83D2588
- .4byte gSpriteAnim_83D250C
- .4byte gSpriteAnim_83D2524
- .4byte gSpriteAnim_83D253C
- .4byte gSpriteAnim_83D2554
-
- .align 2
-gSpriteAnimTable_83D2598:: @ 83D2598
- .4byte gSpriteAnim_83D256C
-
- .align 2
-gSpriteImageTable_83D259C:: @ 83D259C
- obj_frame_tiles gSpriteImage_83D198C, 0x80
- obj_frame_tiles gSpriteImage_83D1A0C, 0x80
- obj_frame_tiles gSpriteImage_83D1A8C, 0x80
- obj_frame_tiles gSpriteImage_83D1B0C, 0x80
- obj_frame_tiles gSpriteImage_83D1B8C, 0x80
-
- .align 2
-gSpriteImageTable_83D25C4:: @ 83D25C4
- obj_frame_tiles gSpriteImage_83D1ECC, 0x80
- obj_frame_tiles gSpriteImage_83D1F4C, 0x80
- obj_frame_tiles gSpriteImage_83D1FCC, 0x80
- obj_frame_tiles gSpriteImage_83D204C, 0x80
- obj_frame_tiles gSpriteImage_83D20CC, 0x80
-
- .align 2
-gSpriteImageTable_83D25EC:: @ 83D25EC
- obj_frame_tiles gSpriteImage_83D1C4C, 0x80
- obj_frame_tiles gSpriteImage_83D1CCC, 0x80
- obj_frame_tiles gSpriteImage_83D1D4C, 0x80
- obj_frame_tiles gSpriteImage_83D1DCC, 0x80
- obj_frame_tiles gSpriteImage_83D1E4C, 0x80
-
- .align 2
-gSpriteTemplate_83D2614:: @ 83D2614
- spr_template 0xFFFF, 4099, gOamData_83D24EC, gSpriteAnimTable_83D2584, gSpriteImageTable_83D259C, gDummySpriteAffineAnimTable, sub_80C644C
-
- .align 2
-gSpriteTemplate_83D262C:: @ 83D262C
- spr_template 0xFFFF, 4104, gOamData_83D24EC, gSpriteAnimTable_83D2588, gSpriteImageTable_83D25C4, gDummySpriteAffineAnimTable, sub_80C6598
-
- .align 2
-gSpriteTemplate_83D2644:: @ 83D2644
- spr_template 0xFFFF, 4104, gOamData_83D24EC, gSpriteAnimTable_83D2598, gSpriteImageTable_83D25EC, gDummySpriteAffineAnimTable, sub_80C66BC
-
- .align 2
-gFieldEffectObjectPaletteInfo7:: @ 83D265C
- obj_pal gFieldEffectObjectPalette7, 0x1003
-
- .align 2
-gFieldEffectObjectPaletteInfo8:: @ 83D2664
- obj_pal gFieldEffectObjectPalette8, 0x1008
-
- .align 2
-gOamData_83D266C:: @ 83D266C
- .2byte 0x8000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83D2674:: @ 83D2674
- obj_image_anim_frame 0, 6
- obj_image_anim_frame 1, 6
- obj_image_anim_frame 2, 6
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D2684:: @ 83D2684
- .4byte gSpriteAnim_83D2674
-
- .align 2
-gSpriteImageTable_83D2688:: @ 83D2688
- obj_frame_tiles gSpriteImage_83D21EC, 0x100
- obj_frame_tiles gSpriteImage_83D22EC, 0x100
- obj_frame_tiles gSpriteImage_83D23EC, 0x100
-
- .align 2
-gSpriteTemplate_83D26A0:: @ 83D26A0
- spr_template 0xFFFF, 4110, gOamData_83D266C, gSpriteAnimTable_83D2684, gSpriteImageTable_83D2688, gDummySpriteAffineAnimTable, SpriteCB_SandPillar_0
-
-@ This uses one of the secret base palettes, so there is no "09.pal" file.
- .align 2
-gFieldEffectObjectPaletteInfo9:: @ 83D26B8
- obj_pal gTilesetPalettes_SecretBase + 5 * 0x20, 0x100E
-
- .align 2
-gSpriteImage_83D26C0:: @ 83D26C0
- .incbin "graphics/unknown_sprites/83D2860/0.4bpp"
-
- .align 2
-gSpriteImage_83D2740:: @ 83D2740
- .incbin "graphics/unknown_sprites/83D2860/1.4bpp"
-
- .align 2
-gSpriteImage_83D27C0:: @ 83D27C0
- .incbin "graphics/unknown_sprites/83D2860/2.4bpp"
-
- .align 2
-Palette_3D2840:: @ 83D2840
- .incbin "graphics/unknown/unknown_3D2840.gbapal"
-
- .align 2
-gSpriteImageTable_83D2860:: @ 83D2860
- obj_frame_tiles gSpriteImage_83D26C0, 0x80
- obj_frame_tiles gSpriteImage_83D2740, 0x80
- obj_frame_tiles gSpriteImage_83D27C0, 0x80
-
- .align 2
-gUnknown_083D2878:: @ 83D2878
- obj_pal Palette_3D2840, 4096
-
- .align 2
-gSpriteAnim_83D2880:: @ 83D2880
- obj_image_anim_frame 0, 30
- obj_image_anim_frame 1, 30
- obj_image_anim_frame 2, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D2890:: @ 83D2890
- .4byte gSpriteAnim_83D2880
-
- .align 2
-gSpriteTemplate_83D2894:: @ 83D2894
- spr_template 0xFFFF, 4096, gFieldOamData_32x8, gSpriteAnimTable_83D2890, gSpriteImageTable_83D2860, gDummySpriteAffineAnimTable, SpriteCallbackDummy
diff --git a/data/fldeff_cut.s b/data/fldeff_cut.s
deleted file mode 100644
index e1d27647e..000000000
--- a/data/fldeff_cut.s
+++ /dev/null
@@ -1,31 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gOamData_CutGrass:: @ 83C15DC
- .2byte 0
- .2byte 0
- .2byte 0x1401
-
- .align 2
-gSpriteAnim_CutGrass:: @ 83C15E4
- obj_image_anim_frame 0, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_CutGrass:: @ 83C15EC
- .4byte gSpriteAnim_CutGrass
-
- .align 2
-gSpriteImageTable_CutGrass:: @ 83C15F0
- obj_frame_tiles gFieldEffectPic_CutGrass, 0x20
-
- .align 2
-gFieldEffectObjectPaletteInfo6:: @ 83C15F8
- obj_pal gFieldEffectObjectPalette6, 0x1000
-
- .align 2
-gSpriteTemplate_CutGrass:: @ 83C1600
- spr_template 0xFFFF, 0x1000, gOamData_CutGrass, gSpriteAnimTable_CutGrass, gSpriteImageTable_CutGrass, gDummySpriteAffineAnimTable, sub_80A2A48
diff --git a/data/fldeff_flash.s b/data/fldeff_flash.s
deleted file mode 100644
index c8b6185f2..000000000
--- a/data/fldeff_flash.s
+++ /dev/null
@@ -1,71 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_083F7FC4:: @ 83F7FC4
- .byte 1, 4, 1, 0
- .4byte sub_810CFF8
- .byte 2, 4, 1, 0
- .4byte sub_810CFF8
- .byte 3, 4, 1, 0
- .4byte sub_810CFF8
- .byte 5, 4, 1, 0
- .4byte sub_810CFF8
- .byte 6, 4, 1, 0
- .4byte sub_810CFF8
- .byte 7, 4, 1, 0
- .4byte sub_810CFF8
- .byte 8, 4, 1, 0
- .4byte sub_810CFF8
- .byte 9, 4, 1, 0
- .4byte sub_810CFF8
-
- .byte 4, 1, 0, 1
- .4byte sub_810CE48
- .byte 4, 2, 0, 1
- .4byte sub_810CE48
- .byte 4, 3, 0, 1
- .4byte sub_810CE48
- .byte 4, 5, 0, 1
- .4byte sub_810CE48
- .byte 4, 6, 0, 1
- .4byte sub_810CE48
- .byte 4, 7, 0, 1
- .4byte sub_810CE48
- .byte 4, 8, 0, 1
- .4byte sub_810CE48
- .byte 4, 9, 0, 1
- .4byte sub_810CE48
-
- .byte 0, 0, 0, 0
- .4byte NULL
-
- .align 2
-gCaveTransitionPalette_White:: @ 83F804C
- .rept 16
- .2byte 0x7FFF
- .endr
-
- .align 2
-gCaveTransitionPalette_Black:: @ 83F806C
- .rept 16
- .2byte 0x0000
- .endr
-
- .align 1
-gUnknown_083F808C:: @ 83F808C
- .incbin "graphics/misc/83F808C.gbapal"
-
- .align 1
-gUnknown_083F809C:: @ 83F809C
- .incbin "graphics/misc/83F809C.gbapal"
-
- .align 2
-gCaveTransitionTilemap:: @ 83F80AC
- .incbin "graphics/misc/cave_transition_map.bin.lz"
-
- .align 2
-gCaveTransitionTiles:: @ 83F828C
- .incbin "graphics/misc/cave_transition.4bpp.lz"
diff --git a/data/graphics.s b/data/graphics.s
index d24039de6..7792e8a9e 100644
--- a/data/graphics.s
+++ b/data/graphics.s
@@ -2997,8 +2997,8 @@ gBattleAnimSpriteSheet_277:: @ 8E6DA54
.incbin "graphics/battle_anims/sprites/277.4bpp.lz"
.align 2
-gWeatherFog1Tilemap:: @ 8E6DE48
- .incbin "graphics/weather/fog1.bin.lz"
+gBattleAnimFogTilemap:: @ 8E6DE48
+ .incbin "graphics/battle_anims/backgrounds/fog.bin.lz"
.align 2
gBattleAnimSpritePalette_283:: @ 8E6DFC0
@@ -3960,6 +3960,9 @@ gUnknown_08E94510:: @ 8E94510
gUnknown_08E94550:: @ 8E94550
.incbin "graphics/unknown/unknown_E94550.bin"
+gUnknown_08E94590:: @ 8E94590
+ .incbin "graphics/unknown/unknown_E94590.bin"
+
gUnknown_08E945D0:: @ 8E945D0
.incbin "graphics/interface/wordgroup_layout.bin"
diff --git a/data/item_ball_scripts.inc b/data/item_ball_scripts.inc
index ad4386990..aae704ab2 100644
--- a/data/item_ball_scripts.inc
+++ b/data/item_ball_scripts.inc
@@ -1,539 +1,539 @@
Route102_EventScript_1B1439:: @ 81B1439
- giveitem ITEM_POTION, 1, 1
+ giveitem_std ITEM_POTION, 1, 1
end
Route103_EventScript_1B1446:: @ 81B1446
- giveitem ITEM_GUARD_SPEC, 1, 1
+ giveitem_std ITEM_GUARD_SPEC, 1, 1
end
Route104_EventScript_1B1453:: @ 81B1453
- giveitem ITEM_PP_UP, 1, 1
+ giveitem_std ITEM_PP_UP, 1, 1
end
Route104_EventScript_1B1460:: @ 81B1460
- giveitem ITEM_POKE_BALL, 1, 1
+ giveitem_std ITEM_POKE_BALL, 1, 1
end
Route104_EventScript_1B146D:: @ 81B146D
- giveitem ITEM_X_ACCURACY, 1, 1
+ giveitem_std ITEM_X_ACCURACY, 1, 1
end
Route104_EventScript_1B147A:: @ 81B147A
- giveitem ITEM_POTION, 1, 1
+ giveitem_std ITEM_POTION, 1, 1
end
Route105_EventScript_1B1487:: @ 81B1487
- giveitem ITEM_IRON, 1, 1
+ giveitem_std ITEM_IRON, 1, 1
end
Route106_EventScript_1B1494:: @ 81B1494
- giveitem ITEM_PROTEIN, 1, 1
+ giveitem_std ITEM_PROTEIN, 1, 1
end
Route109_EventScript_1B14A1:: @ 81B14A1
- giveitem ITEM_PP_UP, 1, 1
+ giveitem_std ITEM_PP_UP, 1, 1
end
Route110_EventScript_1B14AE:: @ 81B14AE
- giveitem ITEM_RARE_CANDY, 1, 1
+ giveitem_std ITEM_RARE_CANDY, 1, 1
end
Route110_EventScript_1B14BB:: @ 81B14BB
- giveitem ITEM_DIRE_HIT, 1, 1
+ giveitem_std ITEM_DIRE_HIT, 1, 1
end
Route111_EventScript_1B14C8:: @ 81B14C8
- giveitem ITEM_TM37, 1, 1
+ giveitem_std ITEM_TM37, 1, 1
end
Route111_EventScript_1B14D5:: @ 81B14D5
- giveitem ITEM_STARDUST, 1, 1
+ giveitem_std ITEM_STARDUST, 1, 1
end
Route111_EventScript_1B14E2:: @ 81B14E2
- giveitem ITEM_HP_UP, 1, 1
+ giveitem_std ITEM_HP_UP, 1, 1
end
Route112_EventScript_1B14EF:: @ 81B14EF
- giveitem ITEM_NUGGET, 1, 1
+ giveitem_std ITEM_NUGGET, 1, 1
end
Route113_EventScript_1B14FC:: @ 81B14FC
- giveitem ITEM_MAX_ETHER, 1, 1
+ giveitem_std ITEM_MAX_ETHER, 1, 1
end
Route113_EventScript_1B1509:: @ 81B1509
- giveitem ITEM_SUPER_REPEL, 1, 1
+ giveitem_std ITEM_SUPER_REPEL, 1, 1
end
Route114_EventScript_1B1516:: @ 81B1516
- giveitem ITEM_RARE_CANDY, 1, 1
+ giveitem_std ITEM_RARE_CANDY, 1, 1
end
Route114_EventScript_1B1523:: @ 81B1523
- giveitem ITEM_PROTEIN, 1, 1
+ giveitem_std ITEM_PROTEIN, 1, 1
end
Route115_EventScript_1B1530:: @ 81B1530
- giveitem ITEM_SUPER_POTION, 1, 1
+ giveitem_std ITEM_SUPER_POTION, 1, 1
end
Route115_EventScript_1B153D:: @ 81B153D
- giveitem ITEM_TM01, 1, 1
+ giveitem_std ITEM_TM01, 1, 1
end
Route115_EventScript_1B154A:: @ 81B154A
- giveitem ITEM_IRON, 1, 1
+ giveitem_std ITEM_IRON, 1, 1
end
Route115_EventScript_1B1557:: @ 81B1557
- giveitem ITEM_GREAT_BALL, 1, 1
+ giveitem_std ITEM_GREAT_BALL, 1, 1
end
Route116_EventScript_1B1564:: @ 81B1564
- giveitem ITEM_X_SPECIAL, 1, 1
+ giveitem_std ITEM_X_SPECIAL, 1, 1
end
Route116_EventScript_1B1571:: @ 81B1571
- giveitem ITEM_ETHER, 1, 1
+ giveitem_std ITEM_ETHER, 1, 1
end
Route116_EventScript_1B157E:: @ 81B157E
- giveitem ITEM_REPEL, 1, 1
+ giveitem_std ITEM_REPEL, 1, 1
end
Route116_EventScript_1B158B:: @ 81B158B
- giveitem ITEM_HP_UP, 1, 1
+ giveitem_std ITEM_HP_UP, 1, 1
end
Route117_EventScript_1B1598:: @ 81B1598
- giveitem ITEM_GREAT_BALL, 1, 1
+ giveitem_std ITEM_GREAT_BALL, 1, 1
end
Route117_EventScript_1B15A5:: @ 81B15A5
- giveitem ITEM_REVIVE, 1, 1
+ giveitem_std ITEM_REVIVE, 1, 1
end
Route118_EventScript_1B15B2:: @ 81B15B2
- giveitem ITEM_HYPER_POTION, 1, 1
+ giveitem_std ITEM_HYPER_POTION, 1, 1
end
Route119_EventScript_1B15BF:: @ 81B15BF
- giveitem ITEM_SUPER_REPEL, 1, 1
+ giveitem_std ITEM_SUPER_REPEL, 1, 1
end
Route119_EventScript_1B15CC:: @ 81B15CC
- giveitem ITEM_ZINC, 1, 1
+ giveitem_std ITEM_ZINC, 1, 1
end
Route119_EventScript_1B15D9:: @ 81B15D9
- giveitem ITEM_ELIXIR, 1, 1
+ giveitem_std ITEM_ELIXIR, 1, 1
end
Route119_EventScript_1B15E6:: @ 81B15E6
- giveitem ITEM_LEAF_STONE, 1, 1
+ giveitem_std ITEM_LEAF_STONE, 1, 1
end
Route119_EventScript_1B15F3:: @ 81B15F3
- giveitem ITEM_RARE_CANDY, 1, 1
+ giveitem_std ITEM_RARE_CANDY, 1, 1
end
Route119_EventScript_1B1600:: @ 81B1600
- giveitem ITEM_HYPER_POTION, 1, 1
+ giveitem_std ITEM_HYPER_POTION, 1, 1
end
Route119_EventScript_1B160D:: @ 81B160D
- giveitem ITEM_HYPER_POTION, 1, 1
+ giveitem_std ITEM_HYPER_POTION, 1, 1
end
Route120_EventScript_1B161A:: @ 81B161A
- giveitem ITEM_NUGGET, 1, 1
+ giveitem_std ITEM_NUGGET, 1, 1
end
Route120_EventScript_1B1627:: @ 81B1627
- giveitem ITEM_FULL_HEAL, 1, 1
+ giveitem_std ITEM_FULL_HEAL, 1, 1
end
Route120_EventScript_1B1634:: @ 81B1634
- giveitem ITEM_HYPER_POTION, 1, 1
+ giveitem_std ITEM_HYPER_POTION, 1, 1
end
Route120_EventScript_1B1641:: @ 81B1641
- giveitem ITEM_NEST_BALL, 1, 1
+ giveitem_std ITEM_NEST_BALL, 1, 1
end
Route121_EventScript_1B164E:: @ 81B164E
- giveitem ITEM_CARBOS, 1, 1
+ giveitem_std ITEM_CARBOS, 1, 1
end
Route123_EventScript_1B165B:: @ 81B165B
- giveitem ITEM_CALCIUM, 1, 1
+ giveitem_std ITEM_CALCIUM, 1, 1
end
Route123_EventScript_1B1668:: @ 81B1668
- giveitem ITEM_RARE_CANDY, 1, 1
+ giveitem_std ITEM_RARE_CANDY, 1, 1
end
Route123_EventScript_1B1675:: @ 81B1675
- giveitem ITEM_ULTRA_BALL, 1, 1
+ giveitem_std ITEM_ULTRA_BALL, 1, 1
end
Route123_EventScript_1B1682:: @ 81B1682
- giveitem ITEM_ELIXIR, 1, 1
+ giveitem_std ITEM_ELIXIR, 1, 1
end
Route124_EventScript_1B168F:: @ 81B168F
- giveitem ITEM_RED_SHARD, 1, 1
+ giveitem_std ITEM_RED_SHARD, 1, 1
end
Route124_EventScript_1B169C:: @ 81B169C
- giveitem ITEM_BLUE_SHARD, 1, 1
+ giveitem_std ITEM_BLUE_SHARD, 1, 1
end
Route124_EventScript_1B16A9:: @ 81B16A9
- giveitem ITEM_YELLOW_SHARD, 1, 1
+ giveitem_std ITEM_YELLOW_SHARD, 1, 1
end
Route126_EventScript_1B16B6:: @ 81B16B6
- giveitem ITEM_GREEN_SHARD, 1, 1
+ giveitem_std ITEM_GREEN_SHARD, 1, 1
end
Route127_EventScript_1B16C3:: @ 81B16C3
- giveitem ITEM_ZINC, 1, 1
+ giveitem_std ITEM_ZINC, 1, 1
end
Route127_EventScript_1B16D0:: @ 81B16D0
- giveitem ITEM_CARBOS, 1, 1
+ giveitem_std ITEM_CARBOS, 1, 1
end
Route132_EventScript_1B16DD:: @ 81B16DD
- giveitem ITEM_RARE_CANDY, 1, 1
+ giveitem_std ITEM_RARE_CANDY, 1, 1
end
Route133_EventScript_1B16EA:: @ 81B16EA
- giveitem ITEM_BIG_PEARL, 1, 1
+ giveitem_std ITEM_BIG_PEARL, 1, 1
end
Route133_EventScript_1B16F7:: @ 81B16F7
- giveitem ITEM_STAR_PIECE, 1, 1
+ giveitem_std ITEM_STAR_PIECE, 1, 1
end
PetalburgCity_EventScript_1B1704:: @ 81B1704
- giveitem ITEM_MAX_REVIVE, 1, 1
+ giveitem_std ITEM_MAX_REVIVE, 1, 1
end
PetalburgCity_EventScript_1B1711:: @ 81B1711
- giveitem ITEM_ETHER, 1, 1
+ giveitem_std ITEM_ETHER, 1, 1
end
MauvilleCity_EventScript_1B171E:: @ 81B171E
- giveitem ITEM_X_SPEED, 1, 1
+ giveitem_std ITEM_X_SPEED, 1, 1
end
RustboroCity_EventScript_1B172B:: @ 81B172B
- giveitem ITEM_X_DEFEND, 1, 1
+ giveitem_std ITEM_X_DEFEND, 1, 1
end
LilycoveCity_EventScript_1B1738:: @ 81B1738
- giveitem ITEM_MAX_REPEL, 1, 1
+ giveitem_std ITEM_MAX_REPEL, 1, 1
end
MossdeepCity_EventScript_1B1745:: @ 81B1745
- giveitem ITEM_NET_BALL, 1, 1
+ giveitem_std ITEM_NET_BALL, 1, 1
end
PetalburgWoods_EventScript_1B1752:: @ 81B1752
- giveitem ITEM_X_ATTACK, 1, 1
+ giveitem_std ITEM_X_ATTACK, 1, 1
end
PetalburgWoods_EventScript_1B175F:: @ 81B175F
- giveitem ITEM_GREAT_BALL, 1, 1
+ giveitem_std ITEM_GREAT_BALL, 1, 1
end
PetalburgWoods_EventScript_1B176C:: @ 81B176C
- giveitem ITEM_ETHER, 1, 1
+ giveitem_std ITEM_ETHER, 1, 1
end
PetalburgWoods_EventScript_1B1779:: @ 81B1779
- giveitem ITEM_PARALYZE_HEAL, 1, 1
+ giveitem_std ITEM_PARALYZE_HEAL, 1, 1
end
RusturfTunnel_EventScript_1B1786:: @ 81B1786
- giveitem ITEM_POKE_BALL, 1, 1
+ giveitem_std ITEM_POKE_BALL, 1, 1
end
RusturfTunnel_EventScript_1B1793:: @ 81B1793
- giveitem ITEM_MAX_ETHER, 1, 1
+ giveitem_std ITEM_MAX_ETHER, 1, 1
end
GraniteCave_1F_EventScript_1B17A0:: @ 81B17A0
- giveitem ITEM_ESCAPE_ROPE, 1, 1
+ giveitem_std ITEM_ESCAPE_ROPE, 1, 1
end
GraniteCave_B1F_EventScript_1B17AD:: @ 81B17AD
- giveitem ITEM_POKE_BALL, 1, 1
+ giveitem_std ITEM_POKE_BALL, 1, 1
end
GraniteCave_B2F_EventScript_1B17BA:: @ 81B17BA
- giveitem ITEM_REPEL, 1, 1
+ giveitem_std ITEM_REPEL, 1, 1
end
GraniteCave_B2F_EventScript_1B17C7:: @ 81B17C7
- giveitem ITEM_RARE_CANDY, 1, 1
+ giveitem_std ITEM_RARE_CANDY, 1, 1
end
JaggedPass_EventScript_1B17D4:: @ 81B17D4
- giveitem ITEM_BURN_HEAL, 1, 1
+ giveitem_std ITEM_BURN_HEAL, 1, 1
end
FieryPath_EventScript_1B17E1:: @ 81B17E1
- giveitem ITEM_FIRE_STONE, 1, 1
+ giveitem_std ITEM_FIRE_STONE, 1, 1
end
FieryPath_EventScript_1B17EE:: @ 81B17EE
- giveitem ITEM_TM06, 1, 1
+ giveitem_std ITEM_TM06, 1, 1
end
MeteorFalls_1F_1R_EventScript_1B17FB:: @ 81B17FB
- giveitem ITEM_TM23, 1, 1
+ giveitem_std ITEM_TM23, 1, 1
end
MeteorFalls_1F_1R_EventScript_1B1808:: @ 81B1808
- giveitem ITEM_FULL_HEAL, 1, 1
+ giveitem_std ITEM_FULL_HEAL, 1, 1
end
MeteorFalls_1F_1R_EventScript_1B1815:: @ 81B1815
- giveitem ITEM_MOON_STONE, 1, 1
+ giveitem_std ITEM_MOON_STONE, 1, 1
end
MeteorFalls_1F_1R_EventScript_1B1822:: @ 81B1822
- giveitem ITEM_PP_UP, 1, 1
+ giveitem_std ITEM_PP_UP, 1, 1
end
MeteorFalls_B1F_2R_EventScript_1B182F:: @ 81B182F
- giveitem ITEM_TM02, 1, 1
+ giveitem_std ITEM_TM02, 1, 1
end
NewMauville_Inside_EventScript_1B183C:: @ 81B183C
- giveitem ITEM_ULTRA_BALL, 1, 1
+ giveitem_std ITEM_ULTRA_BALL, 1, 1
end
NewMauville_Inside_EventScript_1B1849:: @ 81B1849
- giveitem ITEM_ESCAPE_ROPE, 1, 1
+ giveitem_std ITEM_ESCAPE_ROPE, 1, 1
end
NewMauville_Inside_EventScript_1B1856:: @ 81B1856
- giveitem ITEM_THUNDER_STONE, 1, 1
+ giveitem_std ITEM_THUNDER_STONE, 1, 1
end
NewMauville_Inside_EventScript_1B1863:: @ 81B1863
- giveitem ITEM_FULL_HEAL, 1, 1
+ giveitem_std ITEM_FULL_HEAL, 1, 1
end
NewMauville_Inside_EventScript_1B1870:: @ 81B1870
- giveitem ITEM_PARALYZE_HEAL, 1, 1
+ giveitem_std ITEM_PARALYZE_HEAL, 1, 1
end
AbandonedShip_Rooms_1F_EventScript_1B187D:: @ 81B187D
- giveitem ITEM_HARBOR_MAIL, 1, 1
+ giveitem_std ITEM_HARBOR_MAIL, 1, 1
end
AbandonedShip_Rooms_B1F_EventScript_1B188A:: @ 81B188A
- giveitem ITEM_ESCAPE_ROPE, 1, 1
+ giveitem_std ITEM_ESCAPE_ROPE, 1, 1
end
AbandonedShip_Rooms2_B1F_EventScript_1B1897:: @ 81B1897
- giveitem ITEM_DIVE_BALL, 1, 1
+ giveitem_std ITEM_DIVE_BALL, 1, 1
end
AbandonedShip_Room_B1F_EventScript_1B18A4:: @ 81B18A4
- giveitem ITEM_TM13, 1, 1
+ giveitem_std ITEM_TM13, 1, 1
end
AbandonedShip_Rooms2_1F_EventScript_1B18B1:: @ 81B18B1
- giveitem ITEM_REVIVE, 1, 1
+ giveitem_std ITEM_REVIVE, 1, 1
end
AbandonedShip_CaptainsOffice_EventScript_1B18BE:: @ 81B18BE
- giveitem ITEM_STORAGE_KEY, 1, 1
+ giveitem_std ITEM_STORAGE_KEY, 1, 1
end
AbandonedShip_HiddenFloorRooms_EventScript_1B18CB:: @ 81B18CB
- giveitem ITEM_LUXURY_BALL, 1, 1
+ giveitem_std ITEM_LUXURY_BALL, 1, 1
end
AbandonedShip_HiddenFloorRooms_EventScript_1B18D8:: @ 81B18D8
- giveitem ITEM_SCANNER, 1, 1
+ giveitem_std ITEM_SCANNER, 1, 1
end
AbandonedShip_HiddenFloorRooms_EventScript_1B18E5:: @ 81B18E5
- giveitem ITEM_WATER_STONE, 1, 1
+ giveitem_std ITEM_WATER_STONE, 1, 1
end
AbandonedShip_HiddenFloorRooms_EventScript_1B18F2:: @ 81B18F2
- giveitem ITEM_TM18, 1, 1
+ giveitem_std ITEM_TM18, 1, 1
end
ScorchedSlab_EventScript_1B18FF:: @ 81B18FF
- giveitem ITEM_TM11, 1, 1
+ giveitem_std ITEM_TM11, 1, 1
end
SafariZone_Northwest_EventScript_1B190C:: @ 81B190C
- giveitem ITEM_TM22, 1, 1
+ giveitem_std ITEM_TM22, 1, 1
end
SafariZone_Northeast_EventScript_1B1919:: @ 81B1919
- giveitem ITEM_CALCIUM, 1, 1
+ giveitem_std ITEM_CALCIUM, 1, 1
end
SafariZone_Southwest_EventScript_1B1926:: @ 81B1926
- giveitem ITEM_MAX_REVIVE, 1, 1
+ giveitem_std ITEM_MAX_REVIVE, 1, 1
end
MtPyre_2F_EventScript_1B1933:: @ 81B1933
- giveitem ITEM_ULTRA_BALL, 1, 1
+ giveitem_std ITEM_ULTRA_BALL, 1, 1
end
MtPyre_3F_EventScript_1B1940:: @ 81B1940
- giveitem ITEM_SUPER_REPEL, 1, 1
+ giveitem_std ITEM_SUPER_REPEL, 1, 1
end
MtPyre_4F_EventScript_1B194D:: @ 81B194D
- giveitem ITEM_SEA_INCENSE, 1, 1
+ giveitem_std ITEM_SEA_INCENSE, 1, 1
end
MtPyre_5F_EventScript_1B195A:: @ 81B195A
- giveitem ITEM_LAX_INCENSE, 1, 1
+ giveitem_std ITEM_LAX_INCENSE, 1, 1
end
MtPyre_6F_EventScript_1B1967:: @ 81B1967
- giveitem ITEM_TM30, 1, 1
+ giveitem_std ITEM_TM30, 1, 1
end
MtPyre_Exterior_EventScript_1B1974:: @ 81B1974
- giveitem ITEM_MAX_POTION, 1, 1
+ giveitem_std ITEM_MAX_POTION, 1, 1
end
MtPyre_Exterior_EventScript_1B1981:: @ 81B1981
- giveitem ITEM_TM48, 1, 1
+ giveitem_std ITEM_TM48, 1, 1
end
AquaHideout_B1F_EventScript_1B198E:: @ 81B198E
- giveitem ITEM_MASTER_BALL, 1, 1
+ giveitem_std ITEM_MASTER_BALL, 1, 1
end
AquaHideout_B1F_EventScript_1B199B:: @ 81B199B
- giveitem ITEM_NUGGET, 1, 1
+ giveitem_std ITEM_NUGGET, 1, 1
end
AquaHideout_B1F_EventScript_1B19A8:: @ 81B19A8
- giveitem ITEM_MAX_ELIXIR, 1, 1
+ giveitem_std ITEM_MAX_ELIXIR, 1, 1
end
AquaHideout_B2F_EventScript_1B19B5:: @ 81B19B5
- giveitem ITEM_NEST_BALL, 1, 1
+ giveitem_std ITEM_NEST_BALL, 1, 1
end
MagmaHideout_B1F_EventScript_1B19C2:: @ 81B19C2
- giveitem ITEM_MASTER_BALL, 1, 1
+ giveitem_std ITEM_MASTER_BALL, 1, 1
end
MagmaHideout_B1F_EventScript_1B19CF:: @ 81B19CF
- giveitem ITEM_NUGGET, 1, 1
+ giveitem_std ITEM_NUGGET, 1, 1
end
MagmaHideout_B1F_EventScript_1B19DC:: @ 81B19DC
- giveitem ITEM_MAX_ELIXIR, 1, 1
+ giveitem_std ITEM_MAX_ELIXIR, 1, 1
end
MagmaHideout_B2F_EventScript_1B19E9:: @ 81B19E9
- giveitem ITEM_NEST_BALL, 1, 1
+ giveitem_std ITEM_NEST_BALL, 1, 1
end
ShoalCave_LowTideEntranceRoom_EventScript_1B19F6:: @ 81B19F6
- giveitem ITEM_BIG_PEARL, 1, 1
+ giveitem_std ITEM_BIG_PEARL, 1, 1
end
ShoalCave_LowTideInnerRoom_EventScript_1B1A03:: @ 81B1A03
- giveitem ITEM_RARE_CANDY, 1, 1
+ giveitem_std ITEM_RARE_CANDY, 1, 1
end
ShoalCave_LowTideStairsRoom_EventScript_1B1A10:: @ 81B1A10
- giveitem ITEM_ICE_HEAL, 1, 1
+ giveitem_std ITEM_ICE_HEAL, 1, 1
end
ShoalCave_LowTideIceRoom_EventScript_1B1A1D:: @ 81B1A1D
- giveitem ITEM_TM07, 1, 1
+ giveitem_std ITEM_TM07, 1, 1
end
ShoalCave_LowTideIceRoom_EventScript_1B1A2A:: @ 81B1A2A
- giveitem ITEM_NEVER_MELT_ICE, 1, 1
+ giveitem_std ITEM_NEVER_MELT_ICE, 1, 1
end
SeafloorCavern_Room9_EventScript_1B1A37:: @ 81B1A37
- giveitem ITEM_TM26, 1, 1
+ giveitem_std ITEM_TM26, 1, 1
end
CaveOfOrigin_B3F_EventScript_1B1A44:: @ 81B1A44
- giveitem ITEM_HM07, 1, 1
+ giveitem_std ITEM_HM07, 1, 1
end
Route110_TrickHousePuzzle1_EventScript_1B1A51:: @ 81B1A51
- giveitem ITEM_ORANGE_MAIL, 1, 1
+ giveitem_std ITEM_ORANGE_MAIL, 1, 1
end
Route110_TrickHousePuzzle2_EventScript_1B1A5E:: @ 81B1A5E
- giveitem ITEM_HARBOR_MAIL, 1, 1
+ giveitem_std ITEM_HARBOR_MAIL, 1, 1
end
Route110_TrickHousePuzzle2_EventScript_1B1A6B:: @ 81B1A6B
- giveitem ITEM_WAVE_MAIL, 1, 1
+ giveitem_std ITEM_WAVE_MAIL, 1, 1
end
Route110_TrickHousePuzzle3_EventScript_1B1A78:: @ 81B1A78
- giveitem ITEM_SHADOW_MAIL, 1, 1
+ giveitem_std ITEM_SHADOW_MAIL, 1, 1
end
Route110_TrickHousePuzzle3_EventScript_1B1A85:: @ 81B1A85
- giveitem ITEM_WOOD_MAIL, 1, 1
+ giveitem_std ITEM_WOOD_MAIL, 1, 1
end
Route110_TrickHousePuzzle4_EventScript_1B1A92:: @ 81B1A92
- giveitem ITEM_MECH_MAIL, 1, 1
+ giveitem_std ITEM_MECH_MAIL, 1, 1
end
Route110_TrickHousePuzzle6_EventScript_1B1A9F:: @ 81B1A9F
- giveitem ITEM_GLITTER_MAIL, 1, 1
+ giveitem_std ITEM_GLITTER_MAIL, 1, 1
end
Route110_TrickHousePuzzle7_EventScript_1B1AAC:: @ 81B1AAC
- giveitem ITEM_TROPIC_MAIL, 1, 1
+ giveitem_std ITEM_TROPIC_MAIL, 1, 1
end
Route110_TrickHousePuzzle8_EventScript_1B1AB9:: @ 81B1AB9
- giveitem ITEM_BEAD_MAIL, 1, 1
+ giveitem_std ITEM_BEAD_MAIL, 1, 1
end
VictoryRoad_1F_EventScript_1B1AC6:: @ 81B1AC6
- giveitem ITEM_MAX_ELIXIR, 1, 1
+ giveitem_std ITEM_MAX_ELIXIR, 1, 1
end
VictoryRoad_1F_EventScript_1B1AD3:: @ 81B1AD3
- giveitem ITEM_PP_UP, 1, 1
+ giveitem_std ITEM_PP_UP, 1, 1
end
VictoryRoad_B1F_EventScript_1B1AE0:: @ 81B1AE0
- giveitem ITEM_TM29, 1, 1
+ giveitem_std ITEM_TM29, 1, 1
end
VictoryRoad_B1F_EventScript_1B1AED:: @ 81B1AED
- giveitem ITEM_FULL_RESTORE, 1, 1
+ giveitem_std ITEM_FULL_RESTORE, 1, 1
end
VictoryRoad_B2F_EventScript_1B1AFA:: @ 81B1AFA
- giveitem ITEM_FULL_HEAL, 1, 1
+ giveitem_std ITEM_FULL_HEAL, 1, 1
end
@ 81B1B07
- giveitem ITEM_HM08, 1, 1
+ giveitem_std ITEM_HM08, 1, 1
end
diff --git a/data/landmark.s b/data/landmark.s
deleted file mode 100644
index 3583365cb..000000000
--- a/data/landmark.s
+++ /dev/null
@@ -1,561 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-Landmark_FlowerShop:
- .4byte gLandmarkName_FlowerShop
- .2byte 2108 @ flag num.
-
- .align 2
-Landmark_PetalburgWoods:
- .4byte gLandmarkName_PetalburgWoods
- .2byte -1 @ flag num.
-
- .align 2
-Landmark_MrBrineysCottage:
- .4byte gLandmarkName_MrBrineysCottage
- .2byte 2109 @ flag num.
-
- .align 2
-Landmark_AbandonedShip:
- .4byte gLandmarkName_AbandonedShip
- .2byte 2110 @ flag num.
-
- .align 2
-Landmark_SeashoreHouse:
- .4byte gLandmarkName_SeashoreHouse
- .2byte 2111 @ flag num.
-
- .align 2
-Landmark_SlateportBeach:
- .4byte gLandmarkName_SlateportBeach
- .2byte -1 @ flag num.
-
- .align 2
-Landmark_CyclingRoad:
- .4byte gLandmarkName_CyclingRoad
- .2byte -1 @ flag num.
-
- .align 2
-Landmark_NewMauville:
- .4byte gLandmarkName_NewMauville
- .2byte 2112 @ flag num.
-
- .align 2
-Landmark_TrickHouse:
- .4byte gLandmarkName_TrickHouse
- .2byte 2114 @ flag num.
-
- .align 2
-Landmark_OldLadysRestShop:
- .4byte gLandmarkName_OldLadysRestShop
- .2byte 2113 @ flag num.
-
- .align 2
-Landmark_Desert:
- .4byte gLandmarkName_Desert
- .2byte -1 @ flag num.
-
- .align 2
-Landmark_WinstrateFamily:
- .4byte gLandmarkName_WinstrateFamily
- .2byte 2115 @ flag num.
-
- .align 2
-Landmark_CableCar:
- .4byte gLandmarkName_CableCar
- .2byte -1 @ flag num.
-
- .align 2
-Landmark_GlassWorkshop:
- .4byte gLandmarkName_GlassWorkshop
- .2byte 2116 @ flag num.
-
- .align 2
-Landmark_WeatherInstitute:
- .4byte gLandmarkName_WeatherInstitute
- .2byte -1 @ flag num.
-
- .align 2
-Landmark_MeteorFalls:
- .4byte gLandmarkName_MeteorFalls
- .2byte -1 @ flag num.
-
- .align 2
-Landmark_TunnelersRestHouse:
- .4byte gLandmarkName_TunnelersRestHouse
- .2byte 2138 @ flag num.
-
- .align 2
-Landmark_RusturfTunnel:
- .4byte gLandmarkName_RusturfTunnel
- .2byte -1 @ flag num.
-
- .align 2
-Landmark_PokemonDayCare:
- .4byte gLandmarkName_PokemonDayCare
- .2byte 2118 @ flag num.
-
- .align 2
-Landmark_SafariZoneEntrance:
- .4byte gLandmarkName_SafariZoneEntrance
- .2byte -1 @ flag num.
-
- .align 2
-Landmark_MtPyre:
- .4byte gLandmarkName_MtPyre
- .2byte -1 @ flag num.
-
- .align 2
-Landmark_ShoalCave:
- .4byte gLandmarkName_ShoalCave
- .2byte -1 @ flag num.
-
- .align 2
-Landmark_SeafloorCavern:
- .4byte gLandmarkName_SeafloorCavern
- .2byte 2119 @ flag num.
-
- .align 2
-Landmark_GraniteCave:
- .4byte gLandmarkName_GraniteCave
- .2byte -1 @ flag num.
-
- .align 2
-Landmark_OceanCurrent:
- .4byte gLandmarkName_OceanCurrent
- .2byte -1 @ flag num.
-
- .align 2
-Landmark_LanettesHouse:
- .4byte gLandmarkName_LanettesHouse
- .2byte 2117 @ flag num.
-
- .align 2
-Landmark_FieryPath:
- .4byte gLandmarkName_FieryPath
- .2byte 2122 @ flag num.
-
- .align 2
-Landmark_JaggedPass:
- .4byte gLandmarkName_JaggedPass
- .2byte -1 @ flag num.
-
- .align 2
-Landmark_BerryMastersHouse:
- .4byte gLandmarkName_BerryMastersHouse
- .2byte 2147 @ flag num.
-
- .align 2
-Landmark_IslandCave:
- .4byte gLandmarkName_IslandCave
- .2byte 2133 @ flag num.
-
- .align 2
-Landmark_DesertRuins:
- .4byte gLandmarkName_DesertRuins
- .2byte 2134 @ flag num.
-
- .align 2
-Landmark_ScorchedSlab:
- .4byte gLandmarkName_ScorchedSlab
- .2byte 2136 @ flag num.
-
- .align 2
-Landmark_AncientTomb:
- .4byte gLandmarkName_AncientTomb
- .2byte 2137 @ flag num.
-
- .align 2
-Landmark_SealedChamber:
- .4byte gLandmarkName_SealedChamber
- .2byte 2140 @ flag num.
-
- .align 2
-Landmark_FossilManiacsHouse:
- .4byte gLandmarkName_FossilManiacsHouse
- .2byte 2135 @ flag num.
-
- .align 2
-Landmark_HuntersHouse:
- .4byte gLandmarkName_HuntersHouse
- .2byte 2139 @ flag num.
-
- .align 2
-Landmark_SkyPillar:
- .4byte gLandmarkName_SkyPillar
- .2byte 2142 @ flag num.
-
- .align 2
-Landmarks_Route104_0:
- .4byte Landmark_FlowerShop
- .4byte NULL
-
- .align 2
-Landmarks_Route104_1:
- .4byte Landmark_PetalburgWoods
- .4byte Landmark_MrBrineysCottage
- .4byte NULL
-
- .align 2
-Landmarks_Route105_0:
- .4byte Landmark_IslandCave
- .4byte NULL
-
- .align 2
-Landmarks_Route106_1:
- .4byte Landmark_GraniteCave
- .4byte NULL
-
- .align 2
-Landmarks_Route108_0:
- .4byte Landmark_AbandonedShip
- .4byte NULL
-
- .align 2
-Landmarks_Route109_0:
- .4byte Landmark_SeashoreHouse
- .4byte Landmark_SlateportBeach
- .4byte NULL
-
- .align 2
-Landmarks_Route110_0:
- .4byte Landmark_CyclingRoad
- .4byte Landmark_NewMauville
- .4byte NULL
-
- .align 2
-Landmarks_Route110_1:
- .4byte Landmark_CyclingRoad
- .4byte NULL
-
- .align 2
-Landmarks_Route110_2:
- .4byte Landmark_CyclingRoad
- .4byte Landmark_TrickHouse
- .4byte NULL
-
- .align 2
-Landmarks_Route111_0:
- .4byte Landmark_OldLadysRestShop
- .4byte NULL
-
- .align 2
-Landmarks_Route111_1:
- .4byte Landmark_Desert
- .4byte NULL
-
- .align 2
-Landmarks_Route111_3:
- .4byte Landmark_DesertRuins
- .4byte Landmark_Desert
- .4byte NULL
-
- .align 2
-Landmarks_Route111_4:
- .4byte Landmark_WinstrateFamily
- .4byte Landmark_Desert
- .4byte NULL
-
- .align 2
-Landmarks_Route112_0:
- .4byte Landmark_FieryPath
- .4byte Landmark_JaggedPass
- .4byte NULL
-
- .align 2
-Landmarks_Route112_1:
- .4byte Landmark_CableCar
- .4byte Landmark_FieryPath
- .4byte NULL
-
- .align 2
-Landmarks_Route113_1:
- .4byte Landmark_GlassWorkshop
- .4byte NULL
-
- .align 2
-Landmarks_Route114_1:
- .4byte Landmark_FossilManiacsHouse
- .4byte NULL
-
- .align 2
-Landmarks_Route114_2:
- .4byte Landmark_LanettesHouse
- .4byte NULL
-
- .align 2
-Landmarks_MeteorFalls:
- .4byte Landmark_MeteorFalls
- .4byte NULL
-
- .align 2
-Landmarks_Route116_1:
- .4byte Landmark_TunnelersRestHouse
- .4byte Landmark_RusturfTunnel
- .4byte NULL
-
- .align 2
-Landmarks_Route116_2:
- .4byte Landmark_RusturfTunnel
- .4byte NULL
-
- .align 2
-Landmarks_Route117_2:
- .4byte Landmark_PokemonDayCare
- .4byte NULL
-
- .align 2
-Landmarks_Route119_1:
- .4byte Landmark_WeatherInstitute
- .4byte NULL
-
- .align 2
-Landmarks_Route120_0:
- .4byte Landmark_ScorchedSlab
- .4byte NULL
-
- .align 2
-Landmarks_Route120_2:
- .4byte Landmark_AncientTomb
- .4byte NULL
-
- .align 2
-Landmarks_Route121_2:
- .4byte Landmark_SafariZoneEntrance
- .4byte NULL
-
- .align 2
-Landmarks_Route122_0:
- .4byte Landmark_MtPyre
- .4byte NULL
-
- .align 2
-Landmarks_Route123_0:
- .4byte Landmark_BerryMastersHouse
- .4byte NULL
-
- .align 2
-Landmarks_Route124_7:
- .4byte Landmark_HuntersHouse
- .4byte NULL
-
- .align 2
-Landmarks_Route125_2:
- .4byte Landmark_ShoalCave
- .4byte NULL
-
- .align 2
-Landmarks_Route128_1:
- .4byte Landmark_SeafloorCavern
- .4byte NULL
-
- .align 2
-Landmarks_Route131_1:
- .4byte Landmark_SkyPillar
- .4byte NULL
-
- .align 2
-Landmarks_OceanCurrent:
- .4byte Landmark_OceanCurrent
- .4byte NULL
-
- .align 2
-Landmarks_Route134_2:
- .4byte Landmark_SealedChamber
- .4byte Landmark_OceanCurrent
- .4byte NULL
-
- .align 2
-Landmarks_MtChimney_2:
- .4byte Landmark_CableCar
- .4byte Landmark_JaggedPass
- .4byte NULL
-
- .align 2
-gLandmarkLists:: @ 83FBA18
- .byte MAPSEC_Route104, 0
- .space 2
- .4byte Landmarks_Route104_0
-
- .byte MAPSEC_Route104, 1
- .space 2
- .4byte Landmarks_Route104_1
-
- .byte MAPSEC_Route105, 0
- .space 2
- .4byte Landmarks_Route105_0
-
- .byte MAPSEC_Route106, 1
- .space 2
- .4byte Landmarks_Route106_1
-
- .byte MAPSEC_Route108, 0
- .space 2
- .4byte Landmarks_Route108_0
-
- .byte MAPSEC_Route109, 0
- .space 2
- .4byte Landmarks_Route109_0
-
- .byte MAPSEC_Route110, 0
- .space 2
- .4byte Landmarks_Route110_0
-
- .byte MAPSEC_Route110, 1
- .space 2
- .4byte Landmarks_Route110_1
-
- .byte MAPSEC_Route110, 2
- .space 2
- .4byte Landmarks_Route110_2
-
- .byte MAPSEC_Route111, 0
- .space 2
- .4byte Landmarks_Route111_0
-
- .byte MAPSEC_Route111, 1
- .space 2
- .4byte Landmarks_Route111_1
-
- .byte MAPSEC_Route111, 2
- .space 2
- .4byte Landmarks_Route111_1
-
- .byte MAPSEC_Route111, 3
- .space 2
- .4byte Landmarks_Route111_3
-
- .byte MAPSEC_Route111, 4
- .space 2
- .4byte Landmarks_Route111_4
-
- .byte MAPSEC_Route112, 0
- .space 2
- .4byte Landmarks_Route112_0
-
- .byte MAPSEC_Route112, 1
- .space 2
- .4byte Landmarks_Route112_1
-
- .byte MAPSEC_Route113, 1
- .space 2
- .4byte Landmarks_Route113_1
-
- .byte MAPSEC_Route114, 1
- .space 2
- .4byte Landmarks_Route114_1
-
- .byte MAPSEC_Route114, 2
- .space 2
- .4byte Landmarks_Route114_2
-
- .byte MAPSEC_Route114, 3
- .space 2
- .4byte Landmarks_MeteorFalls
-
- .byte MAPSEC_Route115, 0
- .space 2
- .4byte Landmarks_MeteorFalls
-
- .byte MAPSEC_Route115, 1
- .space 2
- .4byte Landmarks_MeteorFalls
-
- .byte MAPSEC_Route116, 1
- .space 2
- .4byte Landmarks_Route116_1
-
- .byte MAPSEC_Route116, 2
- .space 2
- .4byte Landmarks_Route116_2
-
- .byte MAPSEC_Route117, 2
- .space 2
- .4byte Landmarks_Route117_2
-
- .byte MAPSEC_Route119, 1
- .space 2
- .4byte Landmarks_Route119_1
-
- .byte MAPSEC_Route120, 0
- .space 2
- .4byte Landmarks_Route120_0
-
- .byte MAPSEC_Route120, 2
- .space 2
- .4byte Landmarks_Route120_2
-
- .byte MAPSEC_Route121, 2
- .space 2
- .4byte Landmarks_Route121_2
-
- .byte MAPSEC_Route122, 0
- .space 2
- .4byte Landmarks_Route122_0
-
- .byte MAPSEC_Route123, 0
- .space 2
- .4byte Landmarks_Route123_0
-
- .byte MAPSEC_Route122, 1
- .space 2
- .4byte Landmarks_Route122_0
-
- .byte MAPSEC_Route124, 7
- .space 2
- .4byte Landmarks_Route124_7
-
- .byte MAPSEC_Route125, 2
- .space 2
- .4byte Landmarks_Route125_2
-
- .byte MAPSEC_Route128, 1
- .space 2
- .4byte Landmarks_Route128_1
-
- .byte MAPSEC_Route131, 1
- .space 2
- .4byte Landmarks_Route131_1
-
- .byte MAPSEC_Route132, 0
- .space 2
- .4byte Landmarks_OceanCurrent
-
- .byte MAPSEC_Route132, 1
- .space 2
- .4byte Landmarks_OceanCurrent
-
- .byte MAPSEC_Route133, 0
- .space 2
- .4byte Landmarks_OceanCurrent
-
- .byte MAPSEC_Route133, 1
- .space 2
- .4byte Landmarks_OceanCurrent
-
- .byte MAPSEC_Route133, 2
- .space 2
- .4byte Landmarks_OceanCurrent
-
- .byte MAPSEC_Route134, 0
- .space 2
- .4byte Landmarks_OceanCurrent
-
- .byte MAPSEC_Route134, 1
- .space 2
- .4byte Landmarks_OceanCurrent
-
- .byte MAPSEC_Route134, 2
- .space 2
- .4byte Landmarks_Route134_2
-
- .byte MAPSEC_MtChimney, 2
- .space 2
- .4byte Landmarks_MtChimney_2
-
- .byte MAPSEC_Nothing, 0
- .space 2
- .4byte NULL
diff --git a/data/mail.s b/data/mail.s
deleted file mode 100644
index f5ae7f102..000000000
--- a/data/mail.s
+++ /dev/null
@@ -1,178 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 1
-gUnknown_083E562C:: @ 83E562C
- .2byte 0x6ACD, 0x51A5
- .2byte 0x45FC, 0x38D4
-
- .align 2
-gMailGraphicsTable:: @ 83E5634
- .4byte gMailPalette_Orange
- .4byte gMailTiles_Orange
- .4byte gMailTilemap_Orange
- .2byte 0x2C0
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Harbor
- .4byte gMailTiles_Harbor
- .4byte gMailTilemap_Harbor
- .2byte 0x2E0
- .2byte 0
- .2byte 0x7FFF
- .2byte 0x4631
-
- .4byte gMailPalette_Glitter
- .4byte gMailTiles_Glitter
- .4byte gMailTilemap_Glitter
- .2byte 0x400
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Mech
- .4byte gMailTiles_Mech
- .4byte gMailTilemap_Mech
- .2byte 0x1E0
- .2byte 0
- .2byte 0x7FFF
- .2byte 0x4631
-
- .4byte gMailPalette_Wood
- .4byte gMailTiles_Wood
- .4byte gMailTilemap_Wood
- .2byte 0x2E0
- .2byte 0
- .2byte 0x7FFF
- .2byte 0x4631
-
- .4byte gMailPalette_Wave
- .4byte gMailTiles_Wave
- .4byte gMailTilemap_Wave
- .2byte 0x300
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Bead
- .4byte gMailTiles_Bead
- .4byte gMailTilemap_Bead
- .2byte 0x140
- .2byte 0
- .2byte 0x7FFF
- .2byte 0x4631
-
- .4byte gMailPalette_Shadow
- .4byte gMailTiles_Shadow
- .4byte gMailTilemap_Shadow
- .2byte 0x300
- .2byte 0
- .2byte 0x7FFF
- .2byte 0x4631
-
- .4byte gMailPalette_Tropic
- .4byte gMailTiles_Tropic
- .4byte gMailTilemap_Tropic
- .2byte 0x220
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Dream
- .4byte gMailTiles_Dream
- .4byte gMailTilemap_Dream
- .2byte 0x340
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Fab
- .4byte gMailTiles_Fab
- .4byte gMailTilemap_Fab
- .2byte 0x2A0
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Retro
- .4byte gMailTiles_Retro
- .4byte gMailTilemap_Retro
- .2byte 0x520
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .align 2
-Unknown_3E5724: @ 83E5724
- .4byte 0xC
- .4byte 0xC
- .4byte 0xC
-
-gUnknown_083E5730:: @ 83E5730
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 16, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
-
- .align 2
-Unknown_3E5790: @ 83E5790
- .4byte 0x8
- .4byte 0x8
- .4byte 0x8
- .4byte 0x8
- .4byte 0x4
-
- .align 2
-gUnknown_083E57A4:: @ 83E57A4
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 16, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 16, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 16, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 16, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
-
-@ XXX: what is this?
- .align 2
- .4byte 0x2000000
diff --git a/data/main_menu.s b/data/main_menu.s
deleted file mode 100644
index 1fae3850b..000000000
--- a/data/main_menu.s
+++ /dev/null
@@ -1,59 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_081E764C:: @ 81E764C
- .incbin "graphics/birch_speech/bg0.gbapal"
- .incbin "graphics/birch_speech/bg1.gbapal"
-
- .align 2
-gBirchIntroShadowGfx:: @ 81E768C
- .incbin "graphics/birch_speech/shadow.4bpp.lz"
-
- .align 2
-gUnknown_081E7834:: @ 81E7834
- .incbin "graphics/birch_speech/map.bin.lz"
-
- .align 2
-gUnknown_081E795C:: @ 81E795C
- .incbin "graphics/birch_speech/bg2.gbapal"
-
- .align 2
-gUnknown_081E796C:: @ 81E796C
- .space 16
-
- .align 2
-gMainMenuPalette:: @ 81E797C
- .incbin "graphics/misc/main_menu.gbapal"
-
- .align 2
-gSpriteAffineAnim_81E799C:: @ 81E799C
- obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, 0, 48
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_81E79AC:: @ 81E79AC
- .4byte gSpriteAffineAnim_81E799C
-
- .align 2
-gUnknown_081E79B0:: @ 81E79B0
- .4byte gBirchText_Boy, 0
- .4byte gBirchText_Girl, 0
-
- .align 2
-gMalePresetNames:: @ 81E79C0
- .4byte gBirchText_NewName, 0
- .4byte gDefaultBoyName1, 0
- .4byte gDefaultBoyName2, 0
- .4byte gDefaultBoyName3, 0
- .4byte gDefaultBoyName4, 0
-
- .align 2
-gFemalePresetNames:: @ 81E79E8
- .4byte gBirchText_NewName, 0
- .4byte gDefaultGirlName1, 0
- .4byte gDefaultGirlName2, 0
- .4byte gDefaultGirlName3, 0
- .4byte gDefaultGirlName4, 0
diff --git a/data/map_events.s b/data/map_events.s
index 68c8e510e..e7fb03fb6 100644
--- a/data/map_events.s
+++ b/data/map_events.s
@@ -1,3 +1,7 @@
+#include "constants/flags.h"
+#include "constants/items.h"
+#include "constants/map_objects.h"
+#include "constants/maps.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
@@ -396,15 +400,4 @@
.include "data/maps/events/Route119_WeatherInstitute_1F.inc"
.include "data/maps/events/Route119_WeatherInstitute_2F.inc"
.include "data/maps/events/Route119_House.inc"
-Route124_DivingTreasureHuntersHouse_MapObjects:: @ 839300C
- object_event 1, MAP_OBJ_GFX_MAN_6, 0, 5, 0, 4, 0, 0, 9, 0, 0, 0, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_163E04, 0, 0, 0
-
-Route124_DivingTreasureHuntersHouse_MapWarps:: @ 8393024
- warp_def 3, 8, 0, 0, Route124
- warp_def 4, 8, 0, 0, Route124
-
-Route124_DivingTreasureHuntersHouse_MapBGEvents:: @ 8393034
- bg_event 7, 1, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_164335
-
-Route124_DivingTreasureHuntersHouse_MapEvents:: @ 8393040
- map_events Route124_DivingTreasureHuntersHouse_MapObjects, Route124_DivingTreasureHuntersHouse_MapWarps, 0x0, Route124_DivingTreasureHuntersHouse_MapBGEvents
+ .include "data/maps/events/Route124_DivingTreasureHuntersHouse.inc"
diff --git a/data/maps.s b/data/maps.s
index a8074c02a..92f5544a1 100644
--- a/data/maps.s
+++ b/data/maps.s
@@ -1,3 +1,5 @@
+#include "constants/maps.h"
+#include "constants/songs.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
diff --git a/data/maps/DewfordTown/connections.inc b/data/maps/DewfordTown/connections.inc
index 4f47ce304..52339411b 100644
--- a/data/maps/DewfordTown/connections.inc
+++ b/data/maps/DewfordTown/connections.inc
@@ -1,6 +1,6 @@
DewfordTown_MapConnectionsList:: @ 8308650
- connection up, -60, Route106
- connection right, 0, Route107
+ connection up, -60, MAP_ROUTE106
+ connection right, 0, MAP_ROUTE107
DewfordTown_MapConnections:: @ 8308668
.4byte 0x2
diff --git a/data/maps/EverGrandeCity/connections.inc b/data/maps/EverGrandeCity/connections.inc
index fd81ce46b..7833824d8 100644
--- a/data/maps/EverGrandeCity/connections.inc
+++ b/data/maps/EverGrandeCity/connections.inc
@@ -1,5 +1,5 @@
EverGrandeCity_MapConnectionsList:: @ 8308808
- connection left, 40, Route128
+ connection left, 40, MAP_ROUTE128
EverGrandeCity_MapConnections:: @ 8308814
.4byte 0x1
diff --git a/data/maps/FallarborTown/connections.inc b/data/maps/FallarborTown/connections.inc
index 259d5adf0..369d244fc 100644
--- a/data/maps/FallarborTown/connections.inc
+++ b/data/maps/FallarborTown/connections.inc
@@ -1,6 +1,6 @@
FallarborTown_MapConnectionsList:: @ 8308684
- connection left, 0, Route114
- connection right, 0, Route113
+ connection left, 0, MAP_ROUTE114
+ connection right, 0, MAP_ROUTE113
FallarborTown_MapConnections:: @ 830869C
.4byte 0x2
diff --git a/data/maps/FortreeCity/connections.inc b/data/maps/FortreeCity/connections.inc
index 3012973d8..4243269aa 100644
--- a/data/maps/FortreeCity/connections.inc
+++ b/data/maps/FortreeCity/connections.inc
@@ -1,6 +1,6 @@
FortreeCity_MapConnectionsList:: @ 8308794
- connection left, 0, Route119
- connection right, 0, Route120
+ connection left, 0, MAP_ROUTE119
+ connection right, 0, MAP_ROUTE120
FortreeCity_MapConnections:: @ 83087AC
.4byte 0x2
diff --git a/data/maps/LavaridgeTown/connections.inc b/data/maps/LavaridgeTown/connections.inc
index b31155ae3..5adf84bd2 100644
--- a/data/maps/LavaridgeTown/connections.inc
+++ b/data/maps/LavaridgeTown/connections.inc
@@ -1,5 +1,5 @@
LavaridgeTown_MapConnectionsList:: @ 8308670
- connection right, -40, Route112
+ connection right, -40, MAP_ROUTE112
LavaridgeTown_MapConnections:: @ 830867C
.4byte 0x1
diff --git a/data/maps/LilycoveCity/connections.inc b/data/maps/LilycoveCity/connections.inc
index a476e2de2..4181dbc05 100644
--- a/data/maps/LilycoveCity/connections.inc
+++ b/data/maps/LilycoveCity/connections.inc
@@ -1,6 +1,6 @@
LilycoveCity_MapConnectionsList:: @ 83087B4
- connection left, 10, Route121
- connection right, -10, Route124
+ connection left, 10, MAP_ROUTE121
+ connection right, -10, MAP_ROUTE124
LilycoveCity_MapConnections:: @ 83087CC
.4byte 0x2
diff --git a/data/maps/LittlerootTown/connections.inc b/data/maps/LittlerootTown/connections.inc
index d045d04d7..8484aa4b9 100644
--- a/data/maps/LittlerootTown/connections.inc
+++ b/data/maps/LittlerootTown/connections.inc
@@ -1,5 +1,5 @@
LittlerootTown_MapConnectionsList:: @ 8308610
- connection up, 0, Route101
+ connection up, 0, MAP_ROUTE101
LittlerootTown_MapConnections:: @ 830861C
.4byte 0x1
diff --git a/data/maps/MauvilleCity/connections.inc b/data/maps/MauvilleCity/connections.inc
index 07f3649cd..cc06f45e7 100644
--- a/data/maps/MauvilleCity/connections.inc
+++ b/data/maps/MauvilleCity/connections.inc
@@ -1,8 +1,8 @@
MauvilleCity_MapConnectionsList:: @ 8308730
- connection up, 0, Route111
- connection down, 0, Route110
- connection left, 0, Route117
- connection right, 0, Route118
+ connection up, 0, MAP_ROUTE111
+ connection down, 0, MAP_ROUTE110
+ connection left, 0, MAP_ROUTE117
+ connection right, 0, MAP_ROUTE118
MauvilleCity_MapConnections:: @ 8308760
.4byte 0x4
diff --git a/data/maps/MossdeepCity/connections.inc b/data/maps/MossdeepCity/connections.inc
index 0e654d9cc..5fb40e7f4 100644
--- a/data/maps/MossdeepCity/connections.inc
+++ b/data/maps/MossdeepCity/connections.inc
@@ -1,7 +1,7 @@
MossdeepCity_MapConnectionsList:: @ 83087D4
- connection up, 0, Route125
- connection down, 0, Route127
- connection left, -40, Route124
+ connection up, 0, MAP_ROUTE125
+ connection down, 0, MAP_ROUTE127
+ connection left, -40, MAP_ROUTE124
MossdeepCity_MapConnections:: @ 83087F8
.4byte 0x3
diff --git a/data/maps/OldaleTown/connections.inc b/data/maps/OldaleTown/connections.inc
index fc5495101..1e4bdeea8 100644
--- a/data/maps/OldaleTown/connections.inc
+++ b/data/maps/OldaleTown/connections.inc
@@ -1,7 +1,7 @@
OldaleTown_MapConnectionsList:: @ 8308624
- connection up, 0, Route103
- connection down, 0, Route101
- connection left, 0, Route102
+ connection up, 0, MAP_ROUTE103
+ connection down, 0, MAP_ROUTE101
+ connection left, 0, MAP_ROUTE102
OldaleTown_MapConnections:: @ 8308648
.4byte 0x3
diff --git a/data/maps/PacifidlogTown/connections.inc b/data/maps/PacifidlogTown/connections.inc
index 3c0ae1a62..0a6083d00 100644
--- a/data/maps/PacifidlogTown/connections.inc
+++ b/data/maps/PacifidlogTown/connections.inc
@@ -1,6 +1,6 @@
PacifidlogTown_MapConnectionsList:: @ 83086C4
- connection left, 0, Route132
- connection right, 0, Route131
+ connection left, 0, MAP_ROUTE132
+ connection right, 0, MAP_ROUTE131
PacifidlogTown_MapConnections:: @ 83086DC
.4byte 0x2
diff --git a/data/maps/PetalburgCity/connections.inc b/data/maps/PetalburgCity/connections.inc
index cabded017..b412774bf 100644
--- a/data/maps/PetalburgCity/connections.inc
+++ b/data/maps/PetalburgCity/connections.inc
@@ -1,6 +1,6 @@
PetalburgCity_MapConnectionsList:: @ 83086E4
- connection left, -50, Route104
- connection right, 10, Route102
+ connection left, -50, MAP_ROUTE104
+ connection right, 10, MAP_ROUTE102
PetalburgCity_MapConnections:: @ 83086FC
.4byte 0x2
diff --git a/data/maps/Route101/connections.inc b/data/maps/Route101/connections.inc
index 78f73238b..2dd103b89 100644
--- a/data/maps/Route101/connections.inc
+++ b/data/maps/Route101/connections.inc
@@ -1,6 +1,6 @@
Route101_MapConnectionsList:: @ 830881C
- connection up, 0, OldaleTown
- connection down, 0, LittlerootTown
+ connection up, 0, MAP_OLDALE_TOWN
+ connection down, 0, MAP_LITTLEROOT_TOWN
Route101_MapConnections:: @ 8308834
.4byte 0x2
diff --git a/data/maps/Route102/connections.inc b/data/maps/Route102/connections.inc
index c132f5fa7..56e30d843 100644
--- a/data/maps/Route102/connections.inc
+++ b/data/maps/Route102/connections.inc
@@ -1,6 +1,6 @@
Route102_MapConnectionsList:: @ 830883C
- connection left, -10, PetalburgCity
- connection right, 0, OldaleTown
+ connection left, -10, MAP_PETALBURG_CITY
+ connection right, 0, MAP_OLDALE_TOWN
Route102_MapConnections:: @ 8308854
.4byte 0x2
diff --git a/data/maps/Route103/connections.inc b/data/maps/Route103/connections.inc
index 1510b33d2..e3ce959f8 100644
--- a/data/maps/Route103/connections.inc
+++ b/data/maps/Route103/connections.inc
@@ -1,6 +1,6 @@
Route103_MapConnectionsList:: @ 830885C
- connection down, 0, OldaleTown
- connection right, -60, Route110
+ connection down, 0, MAP_OLDALE_TOWN
+ connection right, -60, MAP_ROUTE110
Route103_MapConnections:: @ 8308874
.4byte 0x2
diff --git a/data/maps/Route104/connections.inc b/data/maps/Route104/connections.inc
index 38085d1a8..488af7f8d 100644
--- a/data/maps/Route104/connections.inc
+++ b/data/maps/Route104/connections.inc
@@ -1,7 +1,7 @@
Route104_MapConnectionsList:: @ 830887C
- connection up, 0, RustboroCity
- connection down, 0, Route105
- connection right, 50, PetalburgCity
+ connection up, 0, MAP_RUSTBORO_CITY
+ connection down, 0, MAP_ROUTE105
+ connection right, 50, MAP_PETALBURG_CITY
Route104_MapConnections:: @ 83088A0
.4byte 0x3
diff --git a/data/maps/Route105/connections.inc b/data/maps/Route105/connections.inc
index 6915b9d08..dc0962e5f 100644
--- a/data/maps/Route105/connections.inc
+++ b/data/maps/Route105/connections.inc
@@ -1,6 +1,6 @@
Route105_MapConnectionsList:: @ 83088A8
- connection up, 0, Route104
- connection down, 0, Route106
+ connection up, 0, MAP_ROUTE104
+ connection down, 0, MAP_ROUTE106
Route105_MapConnections:: @ 83088C0
.4byte 0x2
diff --git a/data/maps/Route106/connections.inc b/data/maps/Route106/connections.inc
index 4d041e65c..41adbb9d1 100644
--- a/data/maps/Route106/connections.inc
+++ b/data/maps/Route106/connections.inc
@@ -1,6 +1,6 @@
Route106_MapConnectionsList:: @ 83088C8
- connection up, 0, Route105
- connection down, 60, DewfordTown
+ connection up, 0, MAP_ROUTE105
+ connection down, 60, MAP_DEWFORD_TOWN
Route106_MapConnections:: @ 83088E0
.4byte 0x2
diff --git a/data/maps/Route107/connections.inc b/data/maps/Route107/connections.inc
index a3da84672..c7c7174c1 100644
--- a/data/maps/Route107/connections.inc
+++ b/data/maps/Route107/connections.inc
@@ -1,6 +1,6 @@
Route107_MapConnectionsList:: @ 83088E8
- connection left, 0, DewfordTown
- connection right, 0, Route108
+ connection left, 0, MAP_DEWFORD_TOWN
+ connection right, 0, MAP_ROUTE108
Route107_MapConnections:: @ 8308900
.4byte 0x2
diff --git a/data/maps/Route108/connections.inc b/data/maps/Route108/connections.inc
index aba43d804..f5455457e 100644
--- a/data/maps/Route108/connections.inc
+++ b/data/maps/Route108/connections.inc
@@ -1,6 +1,6 @@
Route108_MapConnectionsList:: @ 8308908
- connection left, 0, Route107
- connection right, -40, Route109
+ connection left, 0, MAP_ROUTE107
+ connection right, -40, MAP_ROUTE109
Route108_MapConnections:: @ 8308920
.4byte 0x2
diff --git a/data/maps/Route109/connections.inc b/data/maps/Route109/connections.inc
index 5135e8e8b..44a65da35 100644
--- a/data/maps/Route109/connections.inc
+++ b/data/maps/Route109/connections.inc
@@ -1,6 +1,6 @@
Route109_MapConnectionsList:: @ 8308928
- connection up, 0, SlateportCity
- connection left, 40, Route108
+ connection up, 0, MAP_SLATEPORT_CITY
+ connection left, 40, MAP_ROUTE108
Route109_MapConnections:: @ 8308940
.4byte 0x2
diff --git a/data/maps/Route110/connections.inc b/data/maps/Route110/connections.inc
index d0f88deb3..9ba85fdbc 100644
--- a/data/maps/Route110/connections.inc
+++ b/data/maps/Route110/connections.inc
@@ -1,7 +1,7 @@
Route110_MapConnectionsList:: @ 8308948
- connection up, 0, MauvilleCity
- connection down, 0, SlateportCity
- connection left, 60, Route103
+ connection up, 0, MAP_MAUVILLE_CITY
+ connection down, 0, MAP_SLATEPORT_CITY
+ connection left, 60, MAP_ROUTE103
Route110_MapConnections:: @ 830896C
.4byte 0x3
diff --git a/data/maps/Route111/connections.inc b/data/maps/Route111/connections.inc
index 411dea34b..a48035299 100644
--- a/data/maps/Route111/connections.inc
+++ b/data/maps/Route111/connections.inc
@@ -1,7 +1,7 @@
Route111_MapConnectionsList:: @ 8308974
- connection down, 0, MauvilleCity
- connection left, 0, Route113
- connection left, 20, Route112
+ connection down, 0, MAP_MAUVILLE_CITY
+ connection left, 0, MAP_ROUTE113
+ connection left, 20, MAP_ROUTE112
Route111_MapConnections:: @ 8308998
.4byte 0x3
diff --git a/data/maps/Route112/connections.inc b/data/maps/Route112/connections.inc
index eee04163c..88571a0ea 100644
--- a/data/maps/Route112/connections.inc
+++ b/data/maps/Route112/connections.inc
@@ -1,7 +1,7 @@
Route112_MapConnectionsList:: @ 83089A0
- connection up, -60, Route113
- connection left, 40, LavaridgeTown
- connection right, -20, Route111
+ connection up, -60, MAP_ROUTE113
+ connection left, 40, MAP_LAVARIDGE_TOWN
+ connection right, -20, MAP_ROUTE111
Route112_MapConnections:: @ 83089C4
.4byte 0x3
diff --git a/data/maps/Route113/connections.inc b/data/maps/Route113/connections.inc
index ffa7b231d..fd6d20812 100644
--- a/data/maps/Route113/connections.inc
+++ b/data/maps/Route113/connections.inc
@@ -1,7 +1,7 @@
Route113_MapConnectionsList:: @ 83089CC
- connection down, 60, Route112
- connection left, 0, FallarborTown
- connection right, 0, Route111
+ connection down, 60, MAP_ROUTE112
+ connection left, 0, MAP_FALLARBOR_TOWN
+ connection right, 0, MAP_ROUTE111
Route113_MapConnections:: @ 83089F0
.4byte 0x3
diff --git a/data/maps/Route114/connections.inc b/data/maps/Route114/connections.inc
index 603c5e4b1..1a58d2439 100644
--- a/data/maps/Route114/connections.inc
+++ b/data/maps/Route114/connections.inc
@@ -1,6 +1,6 @@
Route114_MapConnectionsList:: @ 83089F8
- connection left, 40, Route115
- connection right, 0, FallarborTown
+ connection left, 40, MAP_ROUTE115
+ connection right, 0, MAP_FALLARBOR_TOWN
Route114_MapConnections:: @ 8308A10
.4byte 0x2
diff --git a/data/maps/Route115/connections.inc b/data/maps/Route115/connections.inc
index 3886f114f..80fad1097 100644
--- a/data/maps/Route115/connections.inc
+++ b/data/maps/Route115/connections.inc
@@ -1,6 +1,6 @@
Route115_MapConnectionsList:: @ 8308A18
- connection down, 0, RustboroCity
- connection right, -40, Route114
+ connection down, 0, MAP_RUSTBORO_CITY
+ connection right, -40, MAP_ROUTE114
Route115_MapConnections:: @ 8308A30
.4byte 0x2
diff --git a/data/maps/Route116/connections.inc b/data/maps/Route116/connections.inc
index 787314054..f8b3afd72 100644
--- a/data/maps/Route116/connections.inc
+++ b/data/maps/Route116/connections.inc
@@ -1,6 +1,6 @@
Route116_MapConnectionsList:: @ 8308A38
- connection down, 80, VerdanturfTown
- connection left, 0, RustboroCity
+ connection down, 80, MAP_VERDANTURF_TOWN
+ connection left, 0, MAP_RUSTBORO_CITY
Route116_MapConnections:: @ 8308A50
.4byte 0x2
diff --git a/data/maps/Route117/connections.inc b/data/maps/Route117/connections.inc
index 2de505e01..a66a5d6f9 100644
--- a/data/maps/Route117/connections.inc
+++ b/data/maps/Route117/connections.inc
@@ -1,6 +1,6 @@
Route117_MapConnectionsList:: @ 8308A58
- connection left, 0, VerdanturfTown
- connection right, 0, MauvilleCity
+ connection left, 0, MAP_VERDANTURF_TOWN
+ connection right, 0, MAP_MAUVILLE_CITY
Route117_MapConnections:: @ 8308A70
.4byte 0x2
diff --git a/data/maps/Route118/connections.inc b/data/maps/Route118/connections.inc
index 764071baf..9ec5d28b6 100644
--- a/data/maps/Route118/connections.inc
+++ b/data/maps/Route118/connections.inc
@@ -1,7 +1,7 @@
Route118_MapConnectionsList:: @ 8308A78
- connection up, 40, Route119
- connection left, 0, MauvilleCity
- connection right, 0, Route123
+ connection up, 40, MAP_ROUTE119
+ connection left, 0, MAP_MAUVILLE_CITY
+ connection right, 0, MAP_ROUTE123
Route118_MapConnections:: @ 8308A9C
.4byte 0x3
diff --git a/data/maps/Route119/connections.inc b/data/maps/Route119/connections.inc
index 26ce12a01..1a499afe5 100644
--- a/data/maps/Route119/connections.inc
+++ b/data/maps/Route119/connections.inc
@@ -1,6 +1,6 @@
Route119_MapConnectionsList:: @ 8308AA4
- connection down, -40, Route118
- connection right, 0, FortreeCity
+ connection down, -40, MAP_ROUTE118
+ connection right, 0, MAP_FORTREE_CITY
Route119_MapConnections:: @ 8308ABC
.4byte 0x2
diff --git a/data/maps/Route120/connections.inc b/data/maps/Route120/connections.inc
index a0f747c68..714d8294e 100644
--- a/data/maps/Route120/connections.inc
+++ b/data/maps/Route120/connections.inc
@@ -1,6 +1,6 @@
Route120_MapConnectionsList:: @ 8308AC4
- connection left, 0, FortreeCity
- connection right, 80, Route121
+ connection left, 0, MAP_FORTREE_CITY
+ connection right, 80, MAP_ROUTE121
Route120_MapConnections:: @ 8308ADC
.4byte 0x2
diff --git a/data/maps/Route121/connections.inc b/data/maps/Route121/connections.inc
index a77f1b828..80affb98d 100644
--- a/data/maps/Route121/connections.inc
+++ b/data/maps/Route121/connections.inc
@@ -1,7 +1,7 @@
Route121_MapConnectionsList:: @ 8308AE4
- connection down, 20, Route122
- connection left, -80, Route120
- connection right, -10, LilycoveCity
+ connection down, 20, MAP_ROUTE122
+ connection left, -80, MAP_ROUTE120
+ connection right, -10, MAP_LILYCOVE_CITY
Route121_MapConnections:: @ 8308B08
.4byte 0x3
diff --git a/data/maps/Route122/connections.inc b/data/maps/Route122/connections.inc
index 214826c04..9e70cc5c0 100644
--- a/data/maps/Route122/connections.inc
+++ b/data/maps/Route122/connections.inc
@@ -1,6 +1,6 @@
Route122_MapConnectionsList:: @ 8308B10
- connection up, -20, Route121
- connection down, -100, Route123
+ connection up, -20, MAP_ROUTE121
+ connection down, -100, MAP_ROUTE123
Route122_MapConnections:: @ 8308B28
.4byte 0x2
diff --git a/data/maps/Route123/connections.inc b/data/maps/Route123/connections.inc
index cc54683f4..b57ce9d3b 100644
--- a/data/maps/Route123/connections.inc
+++ b/data/maps/Route123/connections.inc
@@ -1,6 +1,6 @@
Route123_MapConnectionsList:: @ 8308B30
- connection up, 100, Route122
- connection left, 0, Route118
+ connection up, 100, MAP_ROUTE122
+ connection left, 0, MAP_ROUTE118
Route123_MapConnections:: @ 8308B48
.4byte 0x2
diff --git a/data/maps/Route124/connections.inc b/data/maps/Route124/connections.inc
index 5384926b0..e8ed0c8df 100644
--- a/data/maps/Route124/connections.inc
+++ b/data/maps/Route124/connections.inc
@@ -1,9 +1,9 @@
Route124_MapConnectionsList:: @ 8308B50
- connection down, 0, Route126
- connection left, 10, LilycoveCity
- connection right, 0, Route125
- connection right, 40, MossdeepCity
- connection dive, 0, Underwater1
+ connection down, 0, MAP_ROUTE126
+ connection left, 10, MAP_LILYCOVE_CITY
+ connection right, 0, MAP_ROUTE125
+ connection right, 40, MAP_MOSSDEEP_CITY
+ connection dive, 0, MAP_UNDERWATER1
Route124_MapConnections:: @ 8308B8C
.4byte 0x5
diff --git a/data/maps/Route125/connections.inc b/data/maps/Route125/connections.inc
index 33b7c705c..c573987eb 100644
--- a/data/maps/Route125/connections.inc
+++ b/data/maps/Route125/connections.inc
@@ -1,6 +1,6 @@
Route125_MapConnectionsList:: @ 8308B94
- connection down, 0, MossdeepCity
- connection left, 0, Route124
+ connection down, 0, MAP_MOSSDEEP_CITY
+ connection left, 0, MAP_ROUTE124
Route125_MapConnections:: @ 8308BAC
.4byte 0x2
diff --git a/data/maps/Route126/connections.inc b/data/maps/Route126/connections.inc
index 9ff9688af..2bcf57ced 100644
--- a/data/maps/Route126/connections.inc
+++ b/data/maps/Route126/connections.inc
@@ -1,7 +1,7 @@
Route126_MapConnectionsList:: @ 8308BB4
- connection up, 0, Route124
- connection right, 0, Route127
- connection dive, 0, Underwater2
+ connection up, 0, MAP_ROUTE124
+ connection right, 0, MAP_ROUTE127
+ connection dive, 0, MAP_UNDERWATER2
Route126_MapConnections:: @ 8308BD8
.4byte 0x3
diff --git a/data/maps/Route127/connections.inc b/data/maps/Route127/connections.inc
index 997c98c61..017f7de41 100644
--- a/data/maps/Route127/connections.inc
+++ b/data/maps/Route127/connections.inc
@@ -1,8 +1,8 @@
Route127_MapConnectionsList:: @ 8308BE0
- connection up, 0, MossdeepCity
- connection down, 0, Route128
- connection left, 0, Route126
- connection dive, 0, Underwater3
+ connection up, 0, MAP_MOSSDEEP_CITY
+ connection down, 0, MAP_ROUTE128
+ connection left, 0, MAP_ROUTE126
+ connection dive, 0, MAP_UNDERWATER3
Route127_MapConnections:: @ 8308C10
.4byte 0x4
diff --git a/data/maps/Route128/connections.inc b/data/maps/Route128/connections.inc
index b187c7f64..e66b44582 100644
--- a/data/maps/Route128/connections.inc
+++ b/data/maps/Route128/connections.inc
@@ -1,8 +1,8 @@
Route128_MapConnectionsList:: @ 8308C18
- connection up, 0, Route127
- connection down, 0, Route129
- connection right, -40, EverGrandeCity
- connection dive, 0, Underwater4
+ connection up, 0, MAP_ROUTE127
+ connection down, 0, MAP_ROUTE129
+ connection right, -40, MAP_EVER_GRANDE_CITY
+ connection dive, 0, MAP_UNDERWATER4
Route128_MapConnections:: @ 8308C48
.4byte 0x4
diff --git a/data/maps/Route129/connections.inc b/data/maps/Route129/connections.inc
index 7a1db2bc7..d1022353e 100644
--- a/data/maps/Route129/connections.inc
+++ b/data/maps/Route129/connections.inc
@@ -1,6 +1,6 @@
Route129_MapConnectionsList:: @ 8308C50
- connection up, 0, Route128
- connection left, 0, Route130
+ connection up, 0, MAP_ROUTE128
+ connection left, 0, MAP_ROUTE130
Route129_MapConnections:: @ 8308C68
.4byte 0x2
diff --git a/data/maps/Route130/connections.inc b/data/maps/Route130/connections.inc
index 211eba7f1..535725bb0 100644
--- a/data/maps/Route130/connections.inc
+++ b/data/maps/Route130/connections.inc
@@ -1,6 +1,6 @@
Route130_MapConnectionsList:: @ 8308C70
- connection left, 0, Route131
- connection right, 0, Route129
+ connection left, 0, MAP_ROUTE131
+ connection right, 0, MAP_ROUTE129
Route130_MapConnections:: @ 8308C88
.4byte 0x2
diff --git a/data/maps/Route131/connections.inc b/data/maps/Route131/connections.inc
index a1b1adff7..2ac2b6770 100644
--- a/data/maps/Route131/connections.inc
+++ b/data/maps/Route131/connections.inc
@@ -1,6 +1,6 @@
Route131_MapConnectionsList:: @ 8308C90
- connection left, 0, PacifidlogTown
- connection right, 0, Route130
+ connection left, 0, MAP_PACIFIDLOG_TOWN
+ connection right, 0, MAP_ROUTE130
Route131_MapConnections:: @ 8308CA8
.4byte 0x2
diff --git a/data/maps/Route132/connections.inc b/data/maps/Route132/connections.inc
index a0aff0a42..94feb7dec 100644
--- a/data/maps/Route132/connections.inc
+++ b/data/maps/Route132/connections.inc
@@ -1,6 +1,6 @@
Route132_MapConnectionsList:: @ 8308CB0
- connection left, 0, Route133
- connection right, 0, PacifidlogTown
+ connection left, 0, MAP_ROUTE133
+ connection right, 0, MAP_PACIFIDLOG_TOWN
Route132_MapConnections:: @ 8308CC8
.4byte 0x2
diff --git a/data/maps/Route133/connections.inc b/data/maps/Route133/connections.inc
index 979b49ee9..28445baca 100644
--- a/data/maps/Route133/connections.inc
+++ b/data/maps/Route133/connections.inc
@@ -1,6 +1,6 @@
Route133_MapConnectionsList:: @ 8308CD0
- connection left, 0, Route134
- connection right, 0, Route132
+ connection left, 0, MAP_ROUTE134
+ connection right, 0, MAP_ROUTE132
Route133_MapConnections:: @ 8308CE8
.4byte 0x2
diff --git a/data/maps/Route134/connections.inc b/data/maps/Route134/connections.inc
index aba5c2c9a..4b90e83ed 100644
--- a/data/maps/Route134/connections.inc
+++ b/data/maps/Route134/connections.inc
@@ -1,6 +1,6 @@
Route134_MapConnectionsList:: @ 8308CF0
- connection left, 0, SlateportCity
- connection right, 0, Route133
+ connection left, 0, MAP_SLATEPORT_CITY
+ connection right, 0, MAP_ROUTE133
Route134_MapConnections:: @ 8308D08
.4byte 0x2
diff --git a/data/maps/RustboroCity/connections.inc b/data/maps/RustboroCity/connections.inc
index fd1fa519c..70e96e5b6 100644
--- a/data/maps/RustboroCity/connections.inc
+++ b/data/maps/RustboroCity/connections.inc
@@ -1,7 +1,7 @@
RustboroCity_MapConnectionsList:: @ 8308768
- connection up, 0, Route115
- connection down, 0, Route104
- connection right, 0, Route116
+ connection up, 0, MAP_ROUTE115
+ connection down, 0, MAP_ROUTE104
+ connection right, 0, MAP_ROUTE116
RustboroCity_MapConnections:: @ 830878C
.4byte 0x3
diff --git a/data/maps/SafariZone_Northeast/connections.inc b/data/maps/SafariZone_Northeast/connections.inc
index 5c9c47793..6093ed2a0 100644
--- a/data/maps/SafariZone_Northeast/connections.inc
+++ b/data/maps/SafariZone_Northeast/connections.inc
@@ -1,6 +1,6 @@
SafariZone_Northeast_MapConnectionsList:: @ 8308DC8
- connection left, 0, SafariZone_Northwest
- connection down, 0, SafariZone_Southeast
+ connection left, 0, MAP_SAFARI_ZONE_NORTHWEST
+ connection down, 0, MAP_SAFARI_ZONE_SOUTHEAST
SafariZone_Northeast_MapConnections:: @ 8308DE0
.4byte 0x2
diff --git a/data/maps/SafariZone_Northwest/connections.inc b/data/maps/SafariZone_Northwest/connections.inc
index b36d15bad..a7b459df2 100644
--- a/data/maps/SafariZone_Northwest/connections.inc
+++ b/data/maps/SafariZone_Northwest/connections.inc
@@ -1,6 +1,6 @@
SafariZone_Northwest_MapConnectionsList:: @ 8308DA8
- connection right, 0, SafariZone_Northeast
- connection down, 0, SafariZone_Southwest
+ connection right, 0, MAP_SAFARI_ZONE_NORTHEAST
+ connection down, 0, MAP_SAFARI_ZONE_SOUTHWEST
SafariZone_Northwest_MapConnections:: @ 8308DC0
.4byte 0x2
diff --git a/data/maps/SafariZone_Southeast/connections.inc b/data/maps/SafariZone_Southeast/connections.inc
index e4782d1aa..c9c6d2143 100644
--- a/data/maps/SafariZone_Southeast/connections.inc
+++ b/data/maps/SafariZone_Southeast/connections.inc
@@ -1,6 +1,6 @@
SafariZone_Southeast_MapConnectionsList:: @ 8308E08
- connection up, 0, SafariZone_Northeast
- connection left, 0, SafariZone_Southwest
+ connection up, 0, MAP_SAFARI_ZONE_NORTHEAST
+ connection left, 0, MAP_SAFARI_ZONE_SOUTHWEST
SafariZone_Southeast_MapConnections:: @ 8308E20
.4byte 0x2
diff --git a/data/maps/SafariZone_Southwest/connections.inc b/data/maps/SafariZone_Southwest/connections.inc
index a0fea0609..84e103cb4 100644
--- a/data/maps/SafariZone_Southwest/connections.inc
+++ b/data/maps/SafariZone_Southwest/connections.inc
@@ -1,6 +1,6 @@
SafariZone_Southwest_MapConnectionsList:: @ 8308DE8
- connection up, 0, SafariZone_Northwest
- connection right, 0, SafariZone_Southeast
+ connection up, 0, MAP_SAFARI_ZONE_NORTHWEST
+ connection right, 0, MAP_SAFARI_ZONE_SOUTHEAST
SafariZone_Southwest_MapConnections:: @ 8308E00
.4byte 0x2
diff --git a/data/maps/SlateportCity/connections.inc b/data/maps/SlateportCity/connections.inc
index 2d3980a8c..082ed59e0 100644
--- a/data/maps/SlateportCity/connections.inc
+++ b/data/maps/SlateportCity/connections.inc
@@ -1,7 +1,7 @@
SlateportCity_MapConnectionsList:: @ 8308704
- connection up, 0, Route110
- connection down, 0, Route109
- connection right, 0, Route134
+ connection up, 0, MAP_ROUTE110
+ connection down, 0, MAP_ROUTE109
+ connection right, 0, MAP_ROUTE134
SlateportCity_MapConnections:: @ 8308728
.4byte 0x3
diff --git a/data/maps/Underwater1/connections.inc b/data/maps/Underwater1/connections.inc
index 65c1db901..7eaebf9da 100644
--- a/data/maps/Underwater1/connections.inc
+++ b/data/maps/Underwater1/connections.inc
@@ -1,6 +1,6 @@
Underwater1_MapConnectionsList:: @ 8308D10
- connection down, 0, Underwater2
- connection emerge, 0, Route124
+ connection down, 0, MAP_UNDERWATER2
+ connection emerge, 0, MAP_ROUTE124
Underwater1_MapConnections:: @ 8308D28
.4byte 0x2
diff --git a/data/maps/Underwater2/connections.inc b/data/maps/Underwater2/connections.inc
index 58a4db314..e24e6e122 100644
--- a/data/maps/Underwater2/connections.inc
+++ b/data/maps/Underwater2/connections.inc
@@ -1,7 +1,7 @@
Underwater2_MapConnectionsList:: @ 8308D30
- connection up, 0, Underwater1
- connection right, 0, Underwater3
- connection emerge, 0, Route126
+ connection up, 0, MAP_UNDERWATER1
+ connection right, 0, MAP_UNDERWATER3
+ connection emerge, 0, MAP_ROUTE126
Underwater2_MapConnections:: @ 8308D54
.4byte 0x3
diff --git a/data/maps/Underwater3/connections.inc b/data/maps/Underwater3/connections.inc
index 7d6401826..ef0acd44b 100644
--- a/data/maps/Underwater3/connections.inc
+++ b/data/maps/Underwater3/connections.inc
@@ -1,7 +1,7 @@
Underwater3_MapConnectionsList:: @ 8308D5C
- connection emerge, 0, Route127
- connection left, 0, Underwater2
- connection down, 0, Underwater4
+ connection emerge, 0, MAP_ROUTE127
+ connection left, 0, MAP_UNDERWATER2
+ connection down, 0, MAP_UNDERWATER4
Underwater3_MapConnections:: @ 8308D80
.4byte 0x3
diff --git a/data/maps/Underwater4/connections.inc b/data/maps/Underwater4/connections.inc
index 0b9a523ea..f29aba11e 100644
--- a/data/maps/Underwater4/connections.inc
+++ b/data/maps/Underwater4/connections.inc
@@ -1,6 +1,6 @@
Underwater4_MapConnectionsList:: @ 8308D88
- connection up, 0, Underwater3
- connection emerge, 0, Route128
+ connection up, 0, MAP_UNDERWATER3
+ connection emerge, 0, MAP_ROUTE128
Underwater4_MapConnections:: @ 8308DA0
.4byte 0x2
diff --git a/data/maps/VerdanturfTown/connections.inc b/data/maps/VerdanturfTown/connections.inc
index e1c9c2418..16b03bc03 100644
--- a/data/maps/VerdanturfTown/connections.inc
+++ b/data/maps/VerdanturfTown/connections.inc
@@ -1,6 +1,6 @@
VerdanturfTown_MapConnectionsList:: @ 83086A4
- connection up, -80, Route116
- connection right, 0, Route117
+ connection up, -80, MAP_ROUTE116
+ connection right, 0, MAP_ROUTE117
VerdanturfTown_MapConnections:: @ 83086BC
.4byte 0x2
diff --git a/data/maps/events/AbandonedShip_CaptainsOffice.inc b/data/maps/events/AbandonedShip_CaptainsOffice.inc
index e05bee18c..72740dc29 100644
--- a/data/maps/events/AbandonedShip_CaptainsOffice.inc
+++ b/data/maps/events/AbandonedShip_CaptainsOffice.inc
@@ -1,10 +1,10 @@
AbandonedShip_CaptainsOffice_MapObjects:: @ 838E45C
object_event 1, MAP_OBJ_GFX_SCIENTIST_1, 0, 3, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, AbandonedShip_CaptainsOffice_EventScript_15EAF5, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 0, 0, 6, 0, 3, 1, 17, 0, 0, 0, 0, 0, AbandonedShip_CaptainsOffice_EventScript_1B18BE, 1100, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 0, 0, 6, 0, 3, 1, 17, 0, 0, 0, 0, 0, AbandonedShip_CaptainsOffice_EventScript_1B18BE, FLAG_ITEM_ABANDONED_SHIP_CAPTAINS_OFFICE_1, 0, 0
AbandonedShip_CaptainsOffice_MapWarps:: @ 838E48C
- warp_def 7, 6, 3, 4, AbandonedShip_Deck
- warp_def 8, 6, 3, 4, AbandonedShip_Deck
+ warp_def 7, 6, 3, 4, MAP_ABANDONED_SHIP_DECK
+ warp_def 8, 6, 3, 4, MAP_ABANDONED_SHIP_DECK
AbandonedShip_CaptainsOffice_MapEvents:: @ 838E49C
map_events AbandonedShip_CaptainsOffice_MapObjects, AbandonedShip_CaptainsOffice_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/AbandonedShip_Corridors_1F.inc b/data/maps/events/AbandonedShip_Corridors_1F.inc
index 8a42d3204..661fbdb09 100644
--- a/data/maps/events/AbandonedShip_Corridors_1F.inc
+++ b/data/maps/events/AbandonedShip_Corridors_1F.inc
@@ -3,18 +3,18 @@ AbandonedShip_Corridors_1F_MapObjects:: @ 838E120
object_event 2, MAP_OBJ_GFX_TUBER_M, 0, 5, 0, 10, 0, 3, 45, 116, 0, 1, 0, 3, 0, AbandonedShip_Corridors_1F_EventScript_15E96E, 0, 0, 0
AbandonedShip_Corridors_1F_MapWarps:: @ 838E150
- warp_def 9, 11, 3, 2, AbandonedShip_Deck
- warp_def 8, 11, 3, 2, AbandonedShip_Deck
- warp_def 0, 11, 3, 3, AbandonedShip_Deck
- warp_def 1, 11, 3, 3, AbandonedShip_Deck
- warp_def 11, 9, 3, 0, AbandonedShip_Rooms_1F
- warp_def 14, 9, 3, 3, AbandonedShip_Rooms_1F
- warp_def 11, 3, 3, 2, AbandonedShip_Rooms_1F
- warp_def 14, 3, 3, 4, AbandonedShip_Rooms_1F
- warp_def 3, 9, 3, 0, AbandonedShip_Rooms2_1F
- warp_def 16, 2, 3, 7, AbandonedShip_Corridors_B1F
- warp_def 5, 2, 3, 6, AbandonedShip_Corridors_B1F
- warp_def 3, 3, 3, 2, AbandonedShip_Rooms2_1F
+ warp_def 9, 11, 3, 2, MAP_ABANDONED_SHIP_DECK
+ warp_def 8, 11, 3, 2, MAP_ABANDONED_SHIP_DECK
+ warp_def 0, 11, 3, 3, MAP_ABANDONED_SHIP_DECK
+ warp_def 1, 11, 3, 3, MAP_ABANDONED_SHIP_DECK
+ warp_def 11, 9, 3, 0, MAP_ABANDONED_SHIP_ROOMS_1F
+ warp_def 14, 9, 3, 3, MAP_ABANDONED_SHIP_ROOMS_1F
+ warp_def 11, 3, 3, 2, MAP_ABANDONED_SHIP_ROOMS_1F
+ warp_def 14, 3, 3, 4, MAP_ABANDONED_SHIP_ROOMS_1F
+ warp_def 3, 9, 3, 0, MAP_ABANDONED_SHIP_ROOMS2_1F
+ warp_def 16, 2, 3, 7, MAP_ABANDONED_SHIP_CORRIDORS_B1F
+ warp_def 5, 2, 3, 6, MAP_ABANDONED_SHIP_CORRIDORS_B1F
+ warp_def 3, 3, 3, 2, MAP_ABANDONED_SHIP_ROOMS2_1F
AbandonedShip_Corridors_1F_MapEvents:: @ 838E1B0
map_events AbandonedShip_Corridors_1F_MapObjects, AbandonedShip_Corridors_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/AbandonedShip_Corridors_B1F.inc b/data/maps/events/AbandonedShip_Corridors_B1F.inc
index 7b50cf2fe..d889f1ade 100644
--- a/data/maps/events/AbandonedShip_Corridors_B1F.inc
+++ b/data/maps/events/AbandonedShip_Corridors_B1F.inc
@@ -3,14 +3,14 @@ AbandonedShip_Corridors_B1F_MapObjects:: @ 838E238
object_event 2, MAP_OBJ_GFX_SAILOR, 0, 9, 0, 6, 0, 3, 14, 0, 0, 1, 0, 4, 0, AbandonedShip_Corridors_B1F_EventScript_15EA1E, 0, 0, 0
AbandonedShip_Corridors_B1F_MapWarps:: @ 838E268
- warp_def 6, 4, 3, 2, AbandonedShip_Rooms2_B1F
- warp_def 3, 4, 3, 0, AbandonedShip_Rooms2_B1F
- warp_def 5, 7, 3, 0, AbandonedShip_Rooms_B1F
- warp_def 8, 7, 3, 1, AbandonedShip_Rooms_B1F
- warp_def 11, 7, 3, 2, AbandonedShip_Rooms_B1F
- warp_def 11, 4, 3, 0, AbandonedShip_Room_B1F
- warp_def 0, 2, 3, 10, AbandonedShip_Corridors_1F
- warp_def 8, 2, 3, 9, AbandonedShip_Corridors_1F
+ warp_def 6, 4, 3, 2, MAP_ABANDONED_SHIP_ROOMS2_B1F
+ warp_def 3, 4, 3, 0, MAP_ABANDONED_SHIP_ROOMS2_B1F
+ warp_def 5, 7, 3, 0, MAP_ABANDONED_SHIP_ROOMS_B1F
+ warp_def 8, 7, 3, 1, MAP_ABANDONED_SHIP_ROOMS_B1F
+ warp_def 11, 7, 3, 2, MAP_ABANDONED_SHIP_ROOMS_B1F
+ warp_def 11, 4, 3, 0, MAP_ABANDONED_SHIP_ROOM_B1F
+ warp_def 0, 2, 3, 10, MAP_ABANDONED_SHIP_CORRIDORS_1F
+ warp_def 8, 2, 3, 9, MAP_ABANDONED_SHIP_CORRIDORS_1F
AbandonedShip_Corridors_B1F_MapBGEvents:: @ 838E2A8
bg_event 11, 4, 3, 0, 0, AbandonedShip_Corridors_B1F_EventScript_15E9D3
diff --git a/data/maps/events/AbandonedShip_Deck.inc b/data/maps/events/AbandonedShip_Deck.inc
index 6988f8568..15f54114b 100644
--- a/data/maps/events/AbandonedShip_Deck.inc
+++ b/data/maps/events/AbandonedShip_Deck.inc
@@ -1,9 +1,9 @@
AbandonedShip_Deck_MapWarps:: @ 838E0E4
- warp_def 13, 15, 3, 0, Route108
- warp_def 14, 15, 3, 0, Route108
- warp_def 13, 9, 3, 1, AbandonedShip_Corridors_1F
- warp_def 8, 9, 3, 2, AbandonedShip_Corridors_1F
- warp_def 12, 5, 3, 0, AbandonedShip_CaptainsOffice
+ warp_def 13, 15, 3, 0, MAP_ROUTE108
+ warp_def 14, 15, 3, 0, MAP_ROUTE108
+ warp_def 13, 9, 3, 1, MAP_ABANDONED_SHIP_CORRIDORS_1F
+ warp_def 8, 9, 3, 2, MAP_ABANDONED_SHIP_CORRIDORS_1F
+ warp_def 12, 5, 3, 0, MAP_ABANDONED_SHIP_CAPTAINS_OFFICE
AbandonedShip_Deck_MapEvents:: @ 838E10C
map_events 0x0, AbandonedShip_Deck_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/AbandonedShip_HiddenFloorCorridors.inc b/data/maps/events/AbandonedShip_HiddenFloorCorridors.inc
index e5f17046d..97bdf37c5 100644
--- a/data/maps/events/AbandonedShip_HiddenFloorCorridors.inc
+++ b/data/maps/events/AbandonedShip_HiddenFloorCorridors.inc
@@ -1,10 +1,10 @@
AbandonedShip_HiddenFloorCorridors_MapWarps:: @ 838E4CC
- warp_def 3, 8, 3, 0, AbandonedShip_HiddenFloorRooms
- warp_def 6, 8, 3, 2, AbandonedShip_HiddenFloorRooms
- warp_def 9, 8, 3, 4, AbandonedShip_HiddenFloorRooms
- warp_def 3, 3, 3, 6, AbandonedShip_HiddenFloorRooms
- warp_def 6, 3, 3, 7, AbandonedShip_HiddenFloorRooms
- warp_def 9, 3, 3, 8, AbandonedShip_HiddenFloorRooms
+ warp_def 3, 8, 3, 0, MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS
+ warp_def 6, 8, 3, 2, MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS
+ warp_def 9, 8, 3, 4, MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS
+ warp_def 3, 3, 3, 6, MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS
+ warp_def 6, 3, 3, 7, MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS
+ warp_def 9, 3, 3, 8, MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS
AbandonedShip_HiddenFloorCorridors_MapBGEvents:: @ 838E4FC
bg_event 3, 8, 3, 0, 0, AbandonedShip_HiddenFloorCorridors_EventScript_15EBF3
diff --git a/data/maps/events/AbandonedShip_HiddenFloorRooms.inc b/data/maps/events/AbandonedShip_HiddenFloorRooms.inc
index e110e051d..2e6bb9a3f 100644
--- a/data/maps/events/AbandonedShip_HiddenFloorRooms.inc
+++ b/data/maps/events/AbandonedShip_HiddenFloorRooms.inc
@@ -1,19 +1,19 @@
AbandonedShip_HiddenFloorRooms_MapObjects:: @ 838E540
- object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 41, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, AbandonedShip_HiddenFloorRooms_EventScript_1B18CB, 1077, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 16, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, AbandonedShip_HiddenFloorRooms_EventScript_1B18D8, 1078, 0, 0
- object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 5, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, AbandonedShip_HiddenFloorRooms_EventScript_1B18F2, 1102, 0, 0
- object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 31, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, AbandonedShip_HiddenFloorRooms_EventScript_1B18E5, 1101, 0, 0
+ object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 41, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, AbandonedShip_HiddenFloorRooms_EventScript_1B18CB, FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_1, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 16, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, AbandonedShip_HiddenFloorRooms_EventScript_1B18D8, FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_2, 0, 0
+ object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 5, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, AbandonedShip_HiddenFloorRooms_EventScript_1B18F2, FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_4, 0, 0
+ object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 31, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, AbandonedShip_HiddenFloorRooms_EventScript_1B18E5, FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_3, 0, 0
AbandonedShip_HiddenFloorRooms_MapWarps:: @ 838E5A0
- warp_def 6, 14, 3, 0, AbandonedShip_HiddenFloorCorridors
- warp_def 7, 14, 3, 0, AbandonedShip_HiddenFloorCorridors
- warp_def 21, 14, 3, 1, AbandonedShip_HiddenFloorCorridors
- warp_def 22, 14, 3, 1, AbandonedShip_HiddenFloorCorridors
- warp_def 36, 14, 3, 2, AbandonedShip_HiddenFloorCorridors
- warp_def 37, 14, 3, 2, AbandonedShip_HiddenFloorCorridors
- warp_def 6, 1, 3, 3, AbandonedShip_HiddenFloorCorridors
- warp_def 21, 1, 3, 4, AbandonedShip_HiddenFloorCorridors
- warp_def 36, 1, 3, 5, AbandonedShip_HiddenFloorCorridors
+ warp_def 6, 14, 3, 0, MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS
+ warp_def 7, 14, 3, 0, MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS
+ warp_def 21, 14, 3, 1, MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS
+ warp_def 22, 14, 3, 1, MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS
+ warp_def 36, 14, 3, 2, MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS
+ warp_def 37, 14, 3, 2, MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS
+ warp_def 6, 1, 3, 3, MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS
+ warp_def 21, 1, 3, 4, MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS
+ warp_def 36, 1, 3, 5, MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS
AbandonedShip_HiddenFloorRooms_MapBGEvents:: @ 838E5E8
bg_event 42, 10, 3, 7, 0, ITEM_ROOM_1_KEY, 31, 0
diff --git a/data/maps/events/AbandonedShip_Room_B1F.inc b/data/maps/events/AbandonedShip_Room_B1F.inc
index 9213f3e98..22739c99f 100644
--- a/data/maps/events/AbandonedShip_Room_B1F.inc
+++ b/data/maps/events/AbandonedShip_Room_B1F.inc
@@ -1,9 +1,9 @@
AbandonedShip_Room_B1F_MapObjects:: @ 838E3AC
- object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 4, 0, 3, 1, 17, 0, 0, 0, 0, 0, AbandonedShip_Room_B1F_EventScript_1B18A4, 1098, 0, 0
+ object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 4, 0, 3, 1, 17, 0, 0, 0, 0, 0, AbandonedShip_Room_B1F_EventScript_1B18A4, FLAG_ITEM_ABANDONED_SHIP_ROOM_B1F_1, 0, 0
AbandonedShip_Room_B1F_MapWarps:: @ 838E3C4
- warp_def 4, 7, 3, 5, AbandonedShip_Corridors_B1F
- warp_def 5, 7, 3, 5, AbandonedShip_Corridors_B1F
+ warp_def 4, 7, 3, 5, MAP_ABANDONED_SHIP_CORRIDORS_B1F
+ warp_def 5, 7, 3, 5, MAP_ABANDONED_SHIP_CORRIDORS_B1F
AbandonedShip_Room_B1F_MapEvents:: @ 838E3D4
map_events AbandonedShip_Room_B1F_MapObjects, AbandonedShip_Room_B1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/AbandonedShip_Rooms2_1F.inc b/data/maps/events/AbandonedShip_Rooms2_1F.inc
index 842f972fa..d68dd776d 100644
--- a/data/maps/events/AbandonedShip_Rooms2_1F.inc
+++ b/data/maps/events/AbandonedShip_Rooms2_1F.inc
@@ -1,12 +1,12 @@
AbandonedShip_Rooms2_1F_MapObjects:: @ 838E3E8
object_event 1, MAP_OBJ_GFX_MAN_5, 0, 7, 0, 13, 0, 3, 8, 0, 0, 1, 0, 0, 0, AbandonedShip_Rooms2_1F_EventScript_15EA68, 0, 0, 0
object_event 2, MAP_OBJ_GFX_WOMAN_5, 0, 6, 0, 13, 0, 3, 8, 0, 0, 1, 0, 0, 0, AbandonedShip_Rooms2_1F_EventScript_15EAAE, 0, 0, 0
- object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 4, 0, 3, 1, 17, 0, 0, 0, 0, 0, AbandonedShip_Rooms2_1F_EventScript_1B18B1, 1099, 0, 0
+ object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 4, 0, 3, 1, 17, 0, 0, 0, 0, 0, AbandonedShip_Rooms2_1F_EventScript_1B18B1, FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_1F_1, 0, 0
AbandonedShip_Rooms2_1F_MapWarps:: @ 838E430
- warp_def 4, 16, 3, 8, AbandonedShip_Corridors_1F
- warp_def 5, 16, 3, 8, AbandonedShip_Corridors_1F
- warp_def 4, 1, 3, 11, AbandonedShip_Corridors_1F
+ warp_def 4, 16, 3, 8, MAP_ABANDONED_SHIP_CORRIDORS_1F
+ warp_def 5, 16, 3, 8, MAP_ABANDONED_SHIP_CORRIDORS_1F
+ warp_def 4, 1, 3, 11, MAP_ABANDONED_SHIP_CORRIDORS_1F
AbandonedShip_Rooms2_1F_MapEvents:: @ 838E448
map_events AbandonedShip_Rooms2_1F_MapObjects, AbandonedShip_Rooms2_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/AbandonedShip_Rooms2_B1F.inc b/data/maps/events/AbandonedShip_Rooms2_B1F.inc
index 2ad55a5e9..8f21e82c4 100644
--- a/data/maps/events/AbandonedShip_Rooms2_B1F.inc
+++ b/data/maps/events/AbandonedShip_Rooms2_B1F.inc
@@ -1,12 +1,12 @@
AbandonedShip_Rooms2_B1F_MapObjects:: @ 838E324
object_event 1, MAP_OBJ_GFX_CAMPER, 0, 3, 0, 4, 0, 3, 2, 17, 0, 0, 0, 0, 0, AbandonedShip_Rooms2_B1F_EventScript_15EA4E, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 13, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, AbandonedShip_Rooms2_B1F_EventScript_1B1897, 1097, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 13, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, AbandonedShip_Rooms2_B1F_EventScript_1B1897, FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_B1F_1, 0, 0
AbandonedShip_Rooms2_B1F_MapWarps:: @ 838E354
- warp_def 4, 7, 3, 1, AbandonedShip_Corridors_B1F
- warp_def 5, 7, 3, 1, AbandonedShip_Corridors_B1F
- warp_def 13, 7, 3, 0, AbandonedShip_Corridors_B1F
- warp_def 14, 7, 3, 0, AbandonedShip_Corridors_B1F
+ warp_def 4, 7, 3, 1, MAP_ABANDONED_SHIP_CORRIDORS_B1F
+ warp_def 5, 7, 3, 1, MAP_ABANDONED_SHIP_CORRIDORS_B1F
+ warp_def 13, 7, 3, 0, MAP_ABANDONED_SHIP_CORRIDORS_B1F
+ warp_def 14, 7, 3, 0, MAP_ABANDONED_SHIP_CORRIDORS_B1F
AbandonedShip_Rooms2_B1F_MapEvents:: @ 838E374
map_events AbandonedShip_Rooms2_B1F_MapObjects, AbandonedShip_Rooms2_B1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/AbandonedShip_Rooms_1F.inc b/data/maps/events/AbandonedShip_Rooms_1F.inc
index 90578df28..8eaae1853 100644
--- a/data/maps/events/AbandonedShip_Rooms_1F.inc
+++ b/data/maps/events/AbandonedShip_Rooms_1F.inc
@@ -1,14 +1,14 @@
AbandonedShip_Rooms_1F_MapObjects:: @ 838E1C4
object_event 1, MAP_OBJ_GFX_GENTLEMAN, 0, 11, 0, 6, 0, 3, 2, 17, 0, 0, 0, 0, 0, AbandonedShip_Rooms_1F_EventScript_15E986, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 5, 0, 3, 1, 17, 0, 0, 0, 0, 0, AbandonedShip_Rooms_1F_EventScript_1B187D, 1095, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 5, 0, 3, 1, 17, 0, 0, 0, 0, 0, AbandonedShip_Rooms_1F_EventScript_1B187D, FLAG_ITEM_ABANDONED_SHIP_ROOMS_1F_1, 0, 0
AbandonedShip_Rooms_1F_MapWarps:: @ 838E1F4
- warp_def 4, 16, 3, 4, AbandonedShip_Corridors_1F
- warp_def 5, 16, 3, 4, AbandonedShip_Corridors_1F
- warp_def 4, 1, 3, 6, AbandonedShip_Corridors_1F
- warp_def 13, 16, 3, 5, AbandonedShip_Corridors_1F
- warp_def 13, 1, 3, 7, AbandonedShip_Corridors_1F
- warp_def 14, 16, 3, 5, AbandonedShip_Corridors_1F
+ warp_def 4, 16, 3, 4, MAP_ABANDONED_SHIP_CORRIDORS_1F
+ warp_def 5, 16, 3, 4, MAP_ABANDONED_SHIP_CORRIDORS_1F
+ warp_def 4, 1, 3, 6, MAP_ABANDONED_SHIP_CORRIDORS_1F
+ warp_def 13, 16, 3, 5, MAP_ABANDONED_SHIP_CORRIDORS_1F
+ warp_def 13, 1, 3, 7, MAP_ABANDONED_SHIP_CORRIDORS_1F
+ warp_def 14, 16, 3, 5, MAP_ABANDONED_SHIP_CORRIDORS_1F
AbandonedShip_Rooms_1F_MapEvents:: @ 838E224
map_events AbandonedShip_Rooms_1F_MapObjects, AbandonedShip_Rooms_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/AbandonedShip_Rooms_B1F.inc b/data/maps/events/AbandonedShip_Rooms_B1F.inc
index 692883bec..cb9ce260f 100644
--- a/data/maps/events/AbandonedShip_Rooms_B1F.inc
+++ b/data/maps/events/AbandonedShip_Rooms_B1F.inc
@@ -1,11 +1,11 @@
AbandonedShip_Rooms_B1F_MapObjects:: @ 838E2C8
object_event 1, MAP_OBJ_GFX_FAT_MAN, 0, 25, 0, 6, 0, 3, 9, 0, 0, 0, 0, 0, 0, AbandonedShip_Rooms_B1F_EventScript_15EA44, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 6, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, AbandonedShip_Rooms_B1F_EventScript_1B188A, 1096, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 6, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, AbandonedShip_Rooms_B1F_EventScript_1B188A, FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_1, 0, 0
AbandonedShip_Rooms_B1F_MapWarps:: @ 838E2F8
- warp_def 4, 1, 3, 2, AbandonedShip_Corridors_B1F
- warp_def 13, 1, 3, 3, AbandonedShip_Corridors_B1F
- warp_def 22, 1, 3, 4, AbandonedShip_Corridors_B1F
+ warp_def 4, 1, 3, 2, MAP_ABANDONED_SHIP_CORRIDORS_B1F
+ warp_def 13, 1, 3, 3, MAP_ABANDONED_SHIP_CORRIDORS_B1F
+ warp_def 22, 1, 3, 4, MAP_ABANDONED_SHIP_CORRIDORS_B1F
AbandonedShip_Rooms_B1F_MapEvents:: @ 838E310
map_events AbandonedShip_Rooms_B1F_MapObjects, AbandonedShip_Rooms_B1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/AbandonedShip_Underwater1.inc b/data/maps/events/AbandonedShip_Underwater1.inc
index 9a4634860..17a89c2aa 100644
--- a/data/maps/events/AbandonedShip_Underwater1.inc
+++ b/data/maps/events/AbandonedShip_Underwater1.inc
@@ -1,6 +1,6 @@
AbandonedShip_Underwater1_MapWarps:: @ 838E388
- warp_def 3, 7, 3, 0, AbandonedShip_Underwater2
- warp_def 4, 7, 3, 0, AbandonedShip_Underwater2
+ warp_def 3, 7, 3, 0, MAP_ABANDONED_SHIP_UNDERWATER2
+ warp_def 4, 7, 3, 0, MAP_ABANDONED_SHIP_UNDERWATER2
AbandonedShip_Underwater1_MapEvents:: @ 838E398
map_events 0x0, AbandonedShip_Underwater1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/AbandonedShip_Underwater2.inc b/data/maps/events/AbandonedShip_Underwater2.inc
index a3a181773..6eb94059c 100644
--- a/data/maps/events/AbandonedShip_Underwater2.inc
+++ b/data/maps/events/AbandonedShip_Underwater2.inc
@@ -1,5 +1,5 @@
AbandonedShip_Underwater2_MapWarps:: @ 838E4B0
- warp_def 3, 1, 3, 0, AbandonedShip_Underwater1
+ warp_def 3, 1, 3, 0, MAP_ABANDONED_SHIP_UNDERWATER1
AbandonedShip_Underwater2_MapEvents:: @ 838E4B8
map_events 0x0, AbandonedShip_Underwater2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/AncientTomb.inc b/data/maps/events/AncientTomb.inc
index 1f527288b..0aa15569e 100644
--- a/data/maps/events/AncientTomb.inc
+++ b/data/maps/events/AncientTomb.inc
@@ -1,10 +1,10 @@
AncientTomb_MapObjects:: @ 838E6DC
- object_event 1, MAP_OBJ_GFX_REGISTEEL, 0, 8, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, AncientTomb_EventScript_15F050, 937, 0, 0
+ object_event 1, MAP_OBJ_GFX_REGISTEEL, 0, 8, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, AncientTomb_EventScript_15F050, FLAG_HIDE_REGISTEEL, 0, 0
AncientTomb_MapWarps:: @ 838E6F4
- warp_def 8, 29, 3, 0, Route120
- warp_def 8, 20, 0, 2, AncientTomb
- warp_def 8, 11, 3, 1, AncientTomb
+ warp_def 8, 29, 3, 0, MAP_ROUTE120
+ warp_def 8, 20, 0, 2, MAP_ANCIENT_TOMB
+ warp_def 8, 11, 3, 1, MAP_ANCIENT_TOMB
AncientTomb_MapBGEvents:: @ 838E70C
bg_event 8, 20, 0, 0, 0, AncientTomb_EventScript_15F021
diff --git a/data/maps/events/AquaHideout_1F.inc b/data/maps/events/AquaHideout_1F.inc
index 5c59bbf12..ff3212aa9 100644
--- a/data/maps/events/AquaHideout_1F.inc
+++ b/data/maps/events/AquaHideout_1F.inc
@@ -1,12 +1,12 @@
AquaHideout_1F_MapObjects:: @ 838CD0C
- object_event 1, 241, 0, 13, 0, 11, 0, 3, 8, 0, 0, 0, 0, 0, 0, AquaHideout_1F_EventScript_15D7CE, 821, 0, 0
- object_event 2, 241, 0, 14, 0, 11, 0, 3, 8, 0, 0, 0, 0, 0, 0, AquaHideout_1F_EventScript_15D7ED, 822, 0, 0
- object_event 3, 241, 0, 20, 0, 4, 0, 3, 50, 93, 0, 1, 0, 3, 0, AquaHideout_1F_EventScript_15D80C, 924, 0, 0
+ object_event 1, 241, 0, 13, 0, 11, 0, 3, 8, 0, 0, 0, 0, 0, 0, AquaHideout_1F_EventScript_15D7CE, FLAG_HIDE_GRUNT_1_BLOCKING_HIDEOUT, 0, 0
+ object_event 2, 241, 0, 14, 0, 11, 0, 3, 8, 0, 0, 0, 0, 0, 0, AquaHideout_1F_EventScript_15D7ED, FLAG_HIDE_GRUNT_2_BLOCKING_HIDEOUT, 0, 0
+ object_event 3, 241, 0, 20, 0, 4, 0, 3, 50, 93, 0, 1, 0, 3, 0, AquaHideout_1F_EventScript_15D80C, FLAG_HIDE_GRUNTS_HIDEOUTS, 0, 0
AquaHideout_1F_MapWarps:: @ 838CD54
- warp_def 13, 27, 1, 6, LilycoveCity
- warp_def 14, 27, 1, 6, LilycoveCity
- warp_def 22, 1, 3, 0, AquaHideout_B1F
+ warp_def 13, 27, 1, 6, MAP_LILYCOVE_CITY
+ warp_def 14, 27, 1, 6, MAP_LILYCOVE_CITY
+ warp_def 22, 1, 3, 0, MAP_AQUA_HIDEOUT_B1F
AquaHideout_1F_MapEvents:: @ 838CD6C
map_events AquaHideout_1F_MapObjects, AquaHideout_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/AquaHideout_B1F.inc b/data/maps/events/AquaHideout_B1F.inc
index 742761833..3f4d8e4ec 100644
--- a/data/maps/events/AquaHideout_B1F.inc
+++ b/data/maps/events/AquaHideout_B1F.inc
@@ -1,39 +1,39 @@
AquaHideout_B1F_MapObjects:: @ 838CD80
- object_event 1, 241, 0, 27, 0, 18, 0, 3, 24, 0, 0, 1, 0, 3, 0, AquaHideout_B1F_EventScript_15D850, 924, 0, 0
- object_event 2, 241, 0, 6, 0, 6, 0, 3, 9, 0, 0, 1, 0, 5, 0, AquaHideout_B1F_EventScript_15D875, 924, 0, 0
- object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 29, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, AquaHideout_B1F_EventScript_1B19A8, 1071, 0, 0
- object_event 4, 242, 0, 20, 0, 18, 0, 3, 27, 4, 0, 1, 0, 4, 0, AquaHideout_B1F_EventScript_15D89A, 924, 0, 0
- object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 15, 0, 9, 0, 3, 1, 17, 0, 0, 0, 0, 0, AquaHideout_B1F_EventScript_1B198E, 1124, 0, 0
- object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 16, 0, 9, 0, 3, 1, 17, 0, 0, 0, 0, 0, AquaHideout_B1F_EventScript_1A04FD, 977, 0, 0
- object_event 7, MAP_OBJ_GFX_ITEM_BALL, 0, 15, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, AquaHideout_B1F_EventScript_1B199B, 1132, 0, 0
- object_event 8, MAP_OBJ_GFX_ITEM_BALL, 0, 16, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, AquaHideout_B1F_EventScript_1A051B, 978, 0, 0
+ object_event 1, 241, 0, 27, 0, 18, 0, 3, 24, 0, 0, 1, 0, 3, 0, AquaHideout_B1F_EventScript_15D850, FLAG_HIDE_GRUNTS_HIDEOUTS, 0, 0
+ object_event 2, 241, 0, 6, 0, 6, 0, 3, 9, 0, 0, 1, 0, 5, 0, AquaHideout_B1F_EventScript_15D875, FLAG_HIDE_GRUNTS_HIDEOUTS, 0, 0
+ object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 29, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, AquaHideout_B1F_EventScript_1B19A8, FLAG_ITEM_AQUA_HIDEOUT_B1F_1, 0, 0
+ object_event 4, 242, 0, 20, 0, 18, 0, 3, 27, 4, 0, 1, 0, 4, 0, AquaHideout_B1F_EventScript_15D89A, FLAG_HIDE_GRUNTS_HIDEOUTS, 0, 0
+ object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 15, 0, 9, 0, 3, 1, 17, 0, 0, 0, 0, 0, AquaHideout_B1F_EventScript_1B198E, FLAG_ITEM_AQUA_HIDEOUT_B1F_2, 0, 0
+ object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 16, 0, 9, 0, 3, 1, 17, 0, 0, 0, 0, 0, AquaHideout_B1F_EventScript_1A04FD, FLAG_HIDE_ELECTRODE_1_HIDEOUT, 0, 0
+ object_event 7, MAP_OBJ_GFX_ITEM_BALL, 0, 15, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, AquaHideout_B1F_EventScript_1B199B, FLAG_ITEM_AQUA_HIDEOUT_B1F_3, 0, 0
+ object_event 8, MAP_OBJ_GFX_ITEM_BALL, 0, 16, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, AquaHideout_B1F_EventScript_1A051B, FLAG_HIDE_ELECTRODE_2_HIDEOUT, 0, 0
AquaHideout_B1F_MapWarps:: @ 838CE40
- warp_def 29, 1, 3, 2, AquaHideout_1F
- warp_def 18, 1, 3, 0, AquaHideout_B2F
- warp_def 12, 1, 3, 1, AquaHideout_B2F
- warp_def 3, 3, 3, 2, AquaHideout_B2F
- warp_def 31, 4, 3, 7, AquaHideout_B1F
- warp_def 27, 4, 3, 8, AquaHideout_B1F
- warp_def 20, 4, 3, 10, AquaHideout_B1F
- warp_def 27, 12, 3, 4, AquaHideout_B1F
- warp_def 3, 15, 3, 5, AquaHideout_B1F
- warp_def 3, 20, 3, 12, AquaHideout_B1F
- warp_def 32, 19, 3, 6, AquaHideout_B1F
- warp_def 23, 10, 3, 22, AquaHideout_B1F
- warp_def 45, 3, 3, 9, AquaHideout_B1F
- warp_def 42, 5, 3, 18, AquaHideout_B1F
- warp_def 45, 5, 3, 12, AquaHideout_B1F
- warp_def 48, 5, 3, 16, AquaHideout_B1F
- warp_def 42, 9, 3, 15, AquaHideout_B1F
- warp_def 45, 9, 3, 20, AquaHideout_B1F
- warp_def 48, 9, 3, 13, AquaHideout_B1F
- warp_def 42, 13, 3, 24, AquaHideout_B1F
- warp_def 45, 13, 3, 17, AquaHideout_B1F
- warp_def 48, 13, 3, 12, AquaHideout_B1F
- warp_def 42, 17, 3, 11, AquaHideout_B1F
- warp_def 45, 17, 3, 17, AquaHideout_B1F
- warp_def 48, 17, 3, 19, AquaHideout_B1F
+ warp_def 29, 1, 3, 2, MAP_AQUA_HIDEOUT_1F
+ warp_def 18, 1, 3, 0, MAP_AQUA_HIDEOUT_B2F
+ warp_def 12, 1, 3, 1, MAP_AQUA_HIDEOUT_B2F
+ warp_def 3, 3, 3, 2, MAP_AQUA_HIDEOUT_B2F
+ warp_def 31, 4, 3, 7, MAP_AQUA_HIDEOUT_B1F
+ warp_def 27, 4, 3, 8, MAP_AQUA_HIDEOUT_B1F
+ warp_def 20, 4, 3, 10, MAP_AQUA_HIDEOUT_B1F
+ warp_def 27, 12, 3, 4, MAP_AQUA_HIDEOUT_B1F
+ warp_def 3, 15, 3, 5, MAP_AQUA_HIDEOUT_B1F
+ warp_def 3, 20, 3, 12, MAP_AQUA_HIDEOUT_B1F
+ warp_def 32, 19, 3, 6, MAP_AQUA_HIDEOUT_B1F
+ warp_def 23, 10, 3, 22, MAP_AQUA_HIDEOUT_B1F
+ warp_def 45, 3, 3, 9, MAP_AQUA_HIDEOUT_B1F
+ warp_def 42, 5, 3, 18, MAP_AQUA_HIDEOUT_B1F
+ warp_def 45, 5, 3, 12, MAP_AQUA_HIDEOUT_B1F
+ warp_def 48, 5, 3, 16, MAP_AQUA_HIDEOUT_B1F
+ warp_def 42, 9, 3, 15, MAP_AQUA_HIDEOUT_B1F
+ warp_def 45, 9, 3, 20, MAP_AQUA_HIDEOUT_B1F
+ warp_def 48, 9, 3, 13, MAP_AQUA_HIDEOUT_B1F
+ warp_def 42, 13, 3, 24, MAP_AQUA_HIDEOUT_B1F
+ warp_def 45, 13, 3, 17, MAP_AQUA_HIDEOUT_B1F
+ warp_def 48, 13, 3, 12, MAP_AQUA_HIDEOUT_B1F
+ warp_def 42, 17, 3, 11, MAP_AQUA_HIDEOUT_B1F
+ warp_def 45, 17, 3, 17, MAP_AQUA_HIDEOUT_B1F
+ warp_def 48, 17, 3, 19, MAP_AQUA_HIDEOUT_B1F
AquaHideout_B1F_MapEvents:: @ 838CF08
map_events AquaHideout_B1F_MapObjects, AquaHideout_B1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/AquaHideout_B2F.inc b/data/maps/events/AquaHideout_B2F.inc
index d2cce8ab9..c4b0abc78 100644
--- a/data/maps/events/AquaHideout_B2F.inc
+++ b/data/maps/events/AquaHideout_B2F.inc
@@ -1,21 +1,21 @@
AquaHideout_B2F_MapObjects:: @ 838CF1C
- object_event 1, 241, 0, 23, 0, 19, 0, 3, 9, 0, 0, 0, 0, 0, 0, AquaHideout_B2F_EventScript_15D8E1, 924, 0, 0
- object_event 2, 241, 0, 23, 0, 10, 0, 3, 45, 52, 0, 1, 0, 3, 0, AquaHideout_B2F_EventScript_15D962, 924, 0, 0
- object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 3, 0, 13, 0, 3, 1, 0, 0, 0, 0, 0, 0, AquaHideout_B2F_EventScript_1B19B5, 1072, 0, 0
- object_event 4, MAP_OBJ_GFX_SUBMARINE_SHADOW, 0, 19, 0, 20, 0, 1, 9, 0, 0, 0, 0, 0, 0, 0x0, 943, 0, 0
- object_event 5, 242, 0, 10, 0, 6, 0, 3, 7, 17, 0, 1, 0, 4, 0, AquaHideout_B2F_EventScript_15D987, 924, 0, 0
+ object_event 1, 241, 0, 23, 0, 19, 0, 3, 9, 0, 0, 0, 0, 0, 0, AquaHideout_B2F_EventScript_15D8E1, FLAG_HIDE_GRUNTS_HIDEOUTS, 0, 0
+ object_event 2, 241, 0, 23, 0, 10, 0, 3, 45, 52, 0, 1, 0, 3, 0, AquaHideout_B2F_EventScript_15D962, FLAG_HIDE_GRUNTS_HIDEOUTS, 0, 0
+ object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 3, 0, 13, 0, 3, 1, 0, 0, 0, 0, 0, 0, AquaHideout_B2F_EventScript_1B19B5, FLAG_ITEM_AQUA_HIDEOUT_B2F_1, 0, 0
+ object_event 4, MAP_OBJ_GFX_SUBMARINE_SHADOW, 0, 19, 0, 20, 0, 1, 9, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_SUBMARINE_SHADOW_HIDEOUT, 0, 0
+ object_event 5, 242, 0, 10, 0, 6, 0, 3, 7, 17, 0, 1, 0, 4, 0, AquaHideout_B2F_EventScript_15D987, FLAG_HIDE_GRUNTS_HIDEOUTS, 0, 0
AquaHideout_B2F_MapWarps:: @ 838CF94
- warp_def 18, 1, 3, 1, AquaHideout_B1F
- warp_def 12, 1, 3, 2, AquaHideout_B1F
- warp_def 3, 3, 3, 3, AquaHideout_B1F
- warp_def 31, 8, 3, 5, AquaHideout_B2F
- warp_def 8, 8, 3, 8, AquaHideout_B2F
- warp_def 5, 8, 3, 3, AquaHideout_B2F
- warp_def 18, 13, 3, 7, AquaHideout_B2F
- warp_def 12, 13, 3, 6, AquaHideout_B2F
- warp_def 31, 17, 3, 4, AquaHideout_B2F
- warp_def 32, 20, 3, 4, AquaHideout_B1F
+ warp_def 18, 1, 3, 1, MAP_AQUA_HIDEOUT_B1F
+ warp_def 12, 1, 3, 2, MAP_AQUA_HIDEOUT_B1F
+ warp_def 3, 3, 3, 3, MAP_AQUA_HIDEOUT_B1F
+ warp_def 31, 8, 3, 5, MAP_AQUA_HIDEOUT_B2F
+ warp_def 8, 8, 3, 8, MAP_AQUA_HIDEOUT_B2F
+ warp_def 5, 8, 3, 3, MAP_AQUA_HIDEOUT_B2F
+ warp_def 18, 13, 3, 7, MAP_AQUA_HIDEOUT_B2F
+ warp_def 12, 13, 3, 6, MAP_AQUA_HIDEOUT_B2F
+ warp_def 31, 17, 3, 4, MAP_AQUA_HIDEOUT_B2F
+ warp_def 32, 20, 3, 4, MAP_AQUA_HIDEOUT_B1F
AquaHideout_B2F_MapCoordEvents:: @ 838CFE4
coord_event 28, 17, 3, 0, 0x4001, 0, 0, AquaHideout_B2F_EventScript_15D8BD
diff --git a/data/maps/events/BattleTower_BattleRoom.inc b/data/maps/events/BattleTower_BattleRoom.inc
index dda5621b6..c1b2ad55e 100644
--- a/data/maps/events/BattleTower_BattleRoom.inc
+++ b/data/maps/events/BattleTower_BattleRoom.inc
@@ -1,10 +1,10 @@
BattleTower_BattleRoom_MapObjects:: @ 8391DAC
- object_event 1, 240, 0, 5, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 888, 0, 0
+ object_event 1, 240, 0, 5, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_BATTLE_TOWER_OPPONENT, 0, 0
object_event 2, MAP_OBJ_GFX_TEALA, 0, 1, 0, 7, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, 0, 0, 0
BattleTower_BattleRoom_MapWarps:: @ 8391DDC
- warp_def 5, 8, 0, 2, BattleTower_Lobby
- warp_def 6, 8, 0, 2, BattleTower_Lobby
+ warp_def 5, 8, 0, 2, MAP_BATTLE_TOWER_LOBBY
+ warp_def 6, 8, 0, 2, MAP_BATTLE_TOWER_LOBBY
BattleTower_BattleRoom_MapEvents:: @ 8391DEC
map_events BattleTower_BattleRoom_MapObjects, BattleTower_BattleRoom_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/BattleTower_Lobby.inc b/data/maps/events/BattleTower_Lobby.inc
index 6d4e15f7a..a4abdac87 100644
--- a/data/maps/events/BattleTower_Lobby.inc
+++ b/data/maps/events/BattleTower_Lobby.inc
@@ -3,13 +3,13 @@ BattleTower_Lobby_MapObjects:: @ 8391C8C
object_event 2, MAP_OBJ_GFX_MAN_5, 0, 12, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, BattleTower_Lobby_EventScript_1606A5, 0, 0, 0
object_event 3, MAP_OBJ_GFX_WOMAN_7, 0, 10, 0, 8, 0, 3, 2, 17, 0, 0, 0, 0, 0, BattleTower_Lobby_EventScript_160715, 0, 0, 0
object_event 4, MAP_OBJ_GFX_BOY_1, 0, 1, 0, 2, 0, 3, 2, 17, 0, 0, 0, 0, 0, BattleTower_Lobby_EventScript_16071E, 0, 0, 0
- object_event 5, MAP_OBJ_GFX_REPORTER_F, 0, 4, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, BattleTower_Lobby_EventScript_1AE1FF, 918, 0, 0
- object_event 6, MAP_OBJ_GFX_MAN_2, 0, 7, 0, 6, 0, 3, 9, 0, 0, 0, 0, 0, 0, BattleTower_Lobby_EventScript_160733, 941, 0, 0
+ object_event 5, MAP_OBJ_GFX_REPORTER_F, 0, 4, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, BattleTower_Lobby_EventScript_1AE1FF, FLAG_HIDE_REPORTER_BATTLE_TOWER, 0, 0
+ object_event 6, MAP_OBJ_GFX_MAN_2, 0, 7, 0, 6, 0, 3, 9, 0, 0, 0, 0, 0, 0, BattleTower_Lobby_EventScript_160733, FLAG_HIDE_AWARD_MAN_BATTLE_TOWER, 0, 0
BattleTower_Lobby_MapWarps:: @ 8391D1C
- warp_def 6, 8, 0, 0, BattleTower_Outside
- warp_def 7, 8, 0, 0, BattleTower_Outside
- warp_def 6, 1, 0, 0, BattleTower_BattleRoom
+ warp_def 6, 8, 0, 0, MAP_BATTLE_TOWER_OUTSIDE
+ warp_def 7, 8, 0, 0, MAP_BATTLE_TOWER_OUTSIDE
+ warp_def 6, 1, 0, 0, MAP_BATTLE_TOWER_BATTLE_ROOM
BattleTower_Lobby_MapBGEvents:: @ 8391D34
bg_event 3, 5, 3, 1, 0, BattleTower_Lobby_EventScript_160727
diff --git a/data/maps/events/BattleTower_Outside.inc b/data/maps/events/BattleTower_Outside.inc
index 04085c346..902a779f1 100644
--- a/data/maps/events/BattleTower_Outside.inc
+++ b/data/maps/events/BattleTower_Outside.inc
@@ -6,7 +6,7 @@ BattleTower_Outside_MapObjects:: @ 8391BEC
object_event 5, MAP_OBJ_GFX_BEAUTY, 0, 19, 0, 24, 0, 3, 7, 17, 0, 0, 0, 0, 0, BattleTower_Outside_EventScript_160168, 0, 0, 0
BattleTower_Outside_MapWarps:: @ 8391C64
- warp_def 14, 8, 0, 0, BattleTower_Lobby
+ warp_def 14, 8, 0, 0, MAP_BATTLE_TOWER_LOBBY
BattleTower_Outside_MapBGEvents:: @ 8391C6C
bg_event 16, 13, 0, 0, 0, BattleTower_Outside_EventScript_16025A
diff --git a/data/maps/events/CaveOfOrigin_1F.inc b/data/maps/events/CaveOfOrigin_1F.inc
index 43b0b615d..1e2185e9b 100644
--- a/data/maps/events/CaveOfOrigin_1F.inc
+++ b/data/maps/events/CaveOfOrigin_1F.inc
@@ -1,6 +1,6 @@
CaveOfOrigin_1F_MapWarps:: @ 838D718
- warp_def 11, 17, 3, 1, CaveOfOrigin_Entrance
- warp_def 14, 5, 3, 0, CaveOfOrigin_B1F
+ warp_def 11, 17, 3, 1, MAP_CAVE_OF_ORIGIN_ENTRANCE
+ warp_def 14, 5, 3, 0, MAP_CAVE_OF_ORIGIN_B1F
CaveOfOrigin_1F_MapCoordEvents:: @ 838D728
coord_event 7, 11, 3, 0, 0x4001, 0, 0, CaveOfOrigin_1F_EventScript_1A04AF
diff --git a/data/maps/events/CaveOfOrigin_B1F.inc b/data/maps/events/CaveOfOrigin_B1F.inc
index 0a3df0655..905954d9b 100644
--- a/data/maps/events/CaveOfOrigin_B1F.inc
+++ b/data/maps/events/CaveOfOrigin_B1F.inc
@@ -1,6 +1,6 @@
CaveOfOrigin_B1F_MapWarps:: @ 838D76C
- warp_def 13, 5, 3, 1, CaveOfOrigin_1F
- warp_def 5, 11, 3, 0, CaveOfOrigin_B2F
+ warp_def 13, 5, 3, 1, MAP_CAVE_OF_ORIGIN_1F
+ warp_def 5, 11, 3, 0, MAP_CAVE_OF_ORIGIN_B2F
CaveOfOrigin_B1F_MapCoordEvents:: @ 838D77C
coord_event 12, 15, 3, 0, 0x4001, 0, 0, CaveOfOrigin_B1F_EventScript_1A04AF
diff --git a/data/maps/events/CaveOfOrigin_B2F.inc b/data/maps/events/CaveOfOrigin_B2F.inc
index 9c04629f0..2d98e50ac 100644
--- a/data/maps/events/CaveOfOrigin_B2F.inc
+++ b/data/maps/events/CaveOfOrigin_B2F.inc
@@ -1,6 +1,6 @@
CaveOfOrigin_B2F_MapWarps:: @ 838D7C0
- warp_def 5, 10, 3, 1, CaveOfOrigin_B1F
- warp_def 8, 14, 3, 0, CaveOfOrigin_B3F
+ warp_def 5, 10, 3, 1, MAP_CAVE_OF_ORIGIN_B1F
+ warp_def 8, 14, 3, 0, MAP_CAVE_OF_ORIGIN_B3F
CaveOfOrigin_B2F_MapCoordEvents:: @ 838D7D0
coord_event 10, 6, 3, 0, 0x4001, 0, 0, CaveOfOrigin_B2F_EventScript_1A04AF
diff --git a/data/maps/events/CaveOfOrigin_B3F.inc b/data/maps/events/CaveOfOrigin_B3F.inc
index 0d0b44eea..2561dee6a 100644
--- a/data/maps/events/CaveOfOrigin_B3F.inc
+++ b/data/maps/events/CaveOfOrigin_B3F.inc
@@ -1,9 +1,9 @@
CaveOfOrigin_B3F_MapObjects:: @ 838D814
- object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 6, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, CaveOfOrigin_B3F_EventScript_1B1A44, 1059, 0, 0
+ object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 6, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, CaveOfOrigin_B3F_EventScript_1B1A44, FLAG_ITEM_CAVE_OF_ORIGIN_B3F_1, 0, 0
CaveOfOrigin_B3F_MapWarps:: @ 838D82C
- warp_def 7, 14, 3, 1, CaveOfOrigin_B2F
- warp_def 12, 6, 3, 0, CaveOfOrigin_B4F
+ warp_def 7, 14, 3, 1, MAP_CAVE_OF_ORIGIN_B2F
+ warp_def 12, 6, 3, 0, MAP_CAVE_OF_ORIGIN_B4F
CaveOfOrigin_B3F_MapCoordEvents:: @ 838D83C
coord_event 5, 11, 3, 0, 0x4001, 0, 0, CaveOfOrigin_B3F_EventScript_1A04AF
diff --git a/data/maps/events/CaveOfOrigin_B4F.inc b/data/maps/events/CaveOfOrigin_B4F.inc
index 3b4beb038..672604d3e 100644
--- a/data/maps/events/CaveOfOrigin_B4F.inc
+++ b/data/maps/events/CaveOfOrigin_B4F.inc
@@ -1,8 +1,8 @@
CaveOfOrigin_B4F_MapObjects:: @ 838D880
- object_event 1, 248, 0, 9, 0, 10, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 825, 0, 0
+ object_event 1, 248, 0, 9, 0, 10, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_LEGEND_MON_CAVE_OF_ORIGIN, 0, 0
CaveOfOrigin_B4F_MapWarps:: @ 838D898
- warp_def 12, 5, 3, 1, CaveOfOrigin_B3F
+ warp_def 12, 5, 3, 1, MAP_CAVE_OF_ORIGIN_B3F
CaveOfOrigin_B4F_MapCoordEvents:: @ 838D8A0
coord_event 9, 13, 3, 0, 0x409b, 0, 0, CaveOfOrigin_B4F_EventScript_15DDD7
diff --git a/data/maps/events/CaveOfOrigin_Entrance.inc b/data/maps/events/CaveOfOrigin_Entrance.inc
index 4e61e3d82..cab14e4d7 100644
--- a/data/maps/events/CaveOfOrigin_Entrance.inc
+++ b/data/maps/events/CaveOfOrigin_Entrance.inc
@@ -1,6 +1,6 @@
CaveOfOrigin_Entrance_MapWarps:: @ 838D6F4
- warp_def 9, 20, 3, 3, SootopolisCity
- warp_def 9, 5, 3, 0, CaveOfOrigin_1F
+ warp_def 9, 20, 3, 3, MAP_SOOTOPOLIS_CITY
+ warp_def 9, 5, 3, 0, MAP_CAVE_OF_ORIGIN_1F
CaveOfOrigin_Entrance_MapEvents:: @ 838D704
map_events 0x0, CaveOfOrigin_Entrance_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/DesertRuins.inc b/data/maps/events/DesertRuins.inc
index 849c7f729..ada0e0be5 100644
--- a/data/maps/events/DesertRuins.inc
+++ b/data/maps/events/DesertRuins.inc
@@ -1,10 +1,10 @@
DesertRuins_MapObjects:: @ 838BEBC
- object_event 1, MAP_OBJ_GFX_REGIROCK, 0, 8, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, DesertRuins_EventScript_15CB85, 935, 0, 0
+ object_event 1, MAP_OBJ_GFX_REGIROCK, 0, 8, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, DesertRuins_EventScript_15CB85, FLAG_HIDE_REGIROCK, 0, 0
DesertRuins_MapWarps:: @ 838BED4
- warp_def 8, 29, 3, 1, Route111
- warp_def 8, 20, 0, 2, DesertRuins
- warp_def 8, 11, 3, 1, DesertRuins
+ warp_def 8, 29, 3, 1, MAP_ROUTE111
+ warp_def 8, 20, 0, 2, MAP_DESERT_RUINS
+ warp_def 8, 11, 3, 1, MAP_DESERT_RUINS
DesertRuins_MapBGEvents:: @ 838BEEC
bg_event 8, 20, 0, 0, 0, DesertRuins_EventScript_15CB56
diff --git a/data/maps/events/DewfordTown.inc b/data/maps/events/DewfordTown.inc
index 8a5fc1fed..8ca6fa7a1 100644
--- a/data/maps/events/DewfordTown.inc
+++ b/data/maps/events/DewfordTown.inc
@@ -1,16 +1,16 @@
DewfordTown_MapObjects:: @ 8380B88
object_event 1, MAP_OBJ_GFX_WOMAN_3, 0, 7, 0, 12, 0, 3, 5, 1, 0, 0, 0, 0, 0, DewfordTown_EventScript_14E0A2, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_OLD_MAN_1, 0, 12, 0, 9, 0, 3, 9, 16, 0, 0, 0, 3, 0, DewfordTown_EventScript_14E002, 740, 0, 0
+ object_event 2, MAP_OBJ_GFX_OLD_MAN_1, 0, 12, 0, 9, 0, 3, 9, 16, 0, 0, 0, 3, 0, DewfordTown_EventScript_14E002, FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN, 0, 0
object_event 3, MAP_OBJ_GFX_FISHERMAN, 0, 12, 0, 14, 0, 3, 5, 1, 0, 0, 0, 0, 0, DewfordTown_EventScript_14E0C6, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_MR_BRINEYS_BOAT, 0, 12, 0, 8, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0x0, 743, 0, 0
+ object_event 4, MAP_OBJ_GFX_MR_BRINEYS_BOAT, 0, 12, 0, 8, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD, 0, 0
object_event 5, MAP_OBJ_GFX_BOY_1, 0, 1, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, DewfordTown_EventScript_14E413, 0, 0, 0
DewfordTown_MapWarps:: @ 8380C00
- warp_def 3, 3, 0, 0, DewfordTown_Hall
- warp_def 2, 10, 0, 0, DewfordTown_PokemonCenter_1F
- warp_def 8, 17, 0, 0, DewfordTown_Gym
- warp_def 17, 14, 0, 0, DewfordTown_House1
- warp_def 8, 8, 0, 0, DewfordTown_House2
+ warp_def 3, 3, 0, 0, MAP_DEWFORD_TOWN_HALL
+ warp_def 2, 10, 0, 0, MAP_DEWFORD_TOWN_POKEMON_CENTER_1F
+ warp_def 8, 17, 0, 0, MAP_DEWFORD_TOWN_GYM
+ warp_def 17, 14, 0, 0, MAP_DEWFORD_TOWN_HOUSE1
+ warp_def 8, 8, 0, 0, MAP_DEWFORD_TOWN_HOUSE2
DewfordTown_MapBGEvents:: @ 8380C28
bg_event 10, 10, 0, 0, 0, DewfordTown_EventScript_14E0AB
diff --git a/data/maps/events/DewfordTown_Gym.inc b/data/maps/events/DewfordTown_Gym.inc
index 2e36395c1..10a5f8499 100644
--- a/data/maps/events/DewfordTown_Gym.inc
+++ b/data/maps/events/DewfordTown_Gym.inc
@@ -6,8 +6,8 @@ DewfordTown_Gym_MapObjects:: @ 8385FBC
object_event 5, MAP_OBJ_GFX_MAN_2, 0, 5, 0, 24, 0, 3, 8, 0, 0, 0, 0, 0, 0, DewfordTown_Gym_EventScript_15323F, 0, 0, 0
DewfordTown_Gym_MapWarps:: @ 8386034
- warp_def 5, 27, 0, 2, DewfordTown
- warp_def 6, 27, 0, 2, DewfordTown
+ warp_def 5, 27, 0, 2, MAP_DEWFORD_TOWN
+ warp_def 6, 27, 0, 2, MAP_DEWFORD_TOWN
DewfordTown_Gym_MapBGEvents:: @ 8386044
bg_event 7, 21, 0, 1, 0, DewfordTown_Gym_EventScript_15325E
diff --git a/data/maps/events/DewfordTown_Hall.inc b/data/maps/events/DewfordTown_Hall.inc
index d58fbfbd4..56f7feb18 100644
--- a/data/maps/events/DewfordTown_Hall.inc
+++ b/data/maps/events/DewfordTown_Hall.inc
@@ -7,11 +7,11 @@ DewfordTown_Hall_MapObjects:: @ 8386088
object_event 6, MAP_OBJ_GFX_LITTLE_BOY_2, 0, 14, 0, 7, 0, 0, 5, 1, 0, 0, 0, 0, 0, DewfordTown_Hall_EventScript_153342, 0, 0, 0
object_event 7, MAP_OBJ_GFX_SCHOOL_KID_M, 0, 12, 0, 3, 0, 3, 10, 0, 0, 0, 0, 0, 0, DewfordTown_Hall_EventScript_1533F2, 0, 0, 0
object_event 8, MAP_OBJ_GFX_PSYCHIC_M, 0, 15, 0, 3, 0, 3, 9, 0, 0, 0, 0, 0, 0, DewfordTown_Hall_EventScript_1533FE, 0, 0, 0
- object_event 9, MAP_OBJ_GFX_MANIAC, 0, 8, 0, 6, 0, 3, 5, 1, 0, 0, 0, 0, 0, DewfordTown_Hall_EventScript_15359D, 940, 0, 0
+ object_event 9, MAP_OBJ_GFX_MANIAC, 0, 8, 0, 6, 0, 3, 5, 1, 0, 0, 0, 0, 0, DewfordTown_Hall_EventScript_15359D, FLAG_HIDE_SLUDGE_BOMB_MAN_DEWFORD_HALL, 0, 0
DewfordTown_Hall_MapWarps:: @ 8386160
- warp_def 5, 8, 0, 0, DewfordTown
- warp_def 6, 8, 0, 0, DewfordTown
+ warp_def 5, 8, 0, 0, MAP_DEWFORD_TOWN
+ warp_def 6, 8, 0, 0, MAP_DEWFORD_TOWN
DewfordTown_Hall_MapBGEvents:: @ 8386170
bg_event 0, 1, 3, 0, 0, DewfordTown_Hall_EventScript_153353
diff --git a/data/maps/events/DewfordTown_House1.inc b/data/maps/events/DewfordTown_House1.inc
index 9bed6ac7a..daedf3d19 100644
--- a/data/maps/events/DewfordTown_House1.inc
+++ b/data/maps/events/DewfordTown_House1.inc
@@ -4,8 +4,8 @@ DewfordTown_House1_MapObjects:: @ 8385E58
object_event 3, MAP_OBJ_GFX_ZIGZAGOON, 0, 4, 0, 2, 0, 3, 8, 19, 0, 0, 0, 0, 0, DewfordTown_House1_EventScript_153001, 0, 0, 0
DewfordTown_House1_MapWarps:: @ 8385EA0
- warp_def 3, 7, 0, 3, DewfordTown
- warp_def 4, 7, 0, 3, DewfordTown
+ warp_def 3, 7, 0, 3, MAP_DEWFORD_TOWN
+ warp_def 4, 7, 0, 3, MAP_DEWFORD_TOWN
DewfordTown_House1_MapEvents:: @ 8385EB0
map_events DewfordTown_House1_MapObjects, DewfordTown_House1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/DewfordTown_House2.inc b/data/maps/events/DewfordTown_House2.inc
index eae9ff28e..0553bc23a 100644
--- a/data/maps/events/DewfordTown_House2.inc
+++ b/data/maps/events/DewfordTown_House2.inc
@@ -3,8 +3,8 @@ DewfordTown_House2_MapObjects:: @ 838619C
object_event 2, MAP_OBJ_GFX_BOY_2, 0, 2, 0, 3, 0, 3, 1, 0, 0, 0, 0, 0, 0, DewfordTown_House2_EventScript_15361F, 0, 0, 0
DewfordTown_House2_MapWarps:: @ 83861CC
- warp_def 3, 8, 0, 4, DewfordTown
- warp_def 4, 8, 0, 4, DewfordTown
+ warp_def 3, 8, 0, 4, MAP_DEWFORD_TOWN
+ warp_def 4, 8, 0, 4, MAP_DEWFORD_TOWN
DewfordTown_House2_MapEvents:: @ 83861DC
map_events DewfordTown_House2_MapObjects, DewfordTown_House2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/DewfordTown_PokemonCenter_1F.inc b/data/maps/events/DewfordTown_PokemonCenter_1F.inc
index a870483b3..b1a13dd8a 100644
--- a/data/maps/events/DewfordTown_PokemonCenter_1F.inc
+++ b/data/maps/events/DewfordTown_PokemonCenter_1F.inc
@@ -4,9 +4,9 @@ DewfordTown_PokemonCenter_1F_MapObjects:: @ 8385EC4
object_event 3, MAP_OBJ_GFX_MAN_4, 0, 5, 0, 5, 0, 0, 5, 18, 0, 0, 0, 0, 0, DewfordTown_PokemonCenter_1F_EventScript_15303A, 0, 0, 0
DewfordTown_PokemonCenter_1F_MapWarps:: @ 8385F0C
- warp_def 7, 8, 3, 1, DewfordTown
- warp_def 6, 8, 3, 1, DewfordTown
- warp_def 1, 6, 4, 0, DewfordTown_PokemonCenter_2F
+ warp_def 7, 8, 3, 1, MAP_DEWFORD_TOWN
+ warp_def 6, 8, 3, 1, MAP_DEWFORD_TOWN
+ warp_def 1, 6, 4, 0, MAP_DEWFORD_TOWN_POKEMON_CENTER_2F
DewfordTown_PokemonCenter_1F_MapEvents:: @ 8385F24
map_events DewfordTown_PokemonCenter_1F_MapObjects, DewfordTown_PokemonCenter_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/DewfordTown_PokemonCenter_2F.inc b/data/maps/events/DewfordTown_PokemonCenter_2F.inc
index 0d17672de..00e066e2f 100644
--- a/data/maps/events/DewfordTown_PokemonCenter_2F.inc
+++ b/data/maps/events/DewfordTown_PokemonCenter_2F.inc
@@ -4,11 +4,11 @@ DewfordTown_PokemonCenter_2F_MapObjects:: @ 8385F38
object_event 3, MAP_OBJ_GFX_TEALA, 0, 10, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, DewfordTown_PokemonCenter_2F_EventScript_15305F, 0, 0, 0
DewfordTown_PokemonCenter_2F_MapWarps:: @ 8385F80
- warp_def 1, 5, 4, 2, DewfordTown_PokemonCenter_1F
- warp_def 5, 1, 0, 0, SingleBattleColosseum
- warp_def 8, 1, 0, 0, TradeCenter
- warp_def 11, 1, 0, 0, RecordCorner
- warp_def 0, 0, 0, 0, DoubleBattleColosseum
+ warp_def 1, 5, 4, 2, MAP_DEWFORD_TOWN_POKEMON_CENTER_1F
+ warp_def 5, 1, 0, 0, MAP_SINGLE_BATTLE_COLOSSEUM
+ warp_def 8, 1, 0, 0, MAP_TRADE_CENTER
+ warp_def 11, 1, 0, 0, MAP_RECORD_CORNER
+ warp_def 0, 0, 0, 0, MAP_DOUBLE_BATTLE_COLOSSEUM
DewfordTown_PokemonCenter_2F_MapEvents:: @ 8385FA8
map_events DewfordTown_PokemonCenter_2F_MapObjects, DewfordTown_PokemonCenter_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/DoubleBattleColosseum.inc b/data/maps/events/DoubleBattleColosseum.inc
index f6142c4b4..4c1058845 100644
--- a/data/maps/events/DoubleBattleColosseum.inc
+++ b/data/maps/events/DoubleBattleColosseum.inc
@@ -1,8 +1,8 @@
DoubleBattleColosseum_MapWarps:: @ 8391428
- warp_def 5, 8, 3, 127, NONE
- warp_def 6, 8, 3, 127, NONE
- warp_def 7, 8, 3, 127, NONE
- warp_def 8, 8, 3, 127, NONE
+ warp_def 5, 8, 3, 127, MAP_NONE
+ warp_def 6, 8, 3, 127, MAP_NONE
+ warp_def 7, 8, 3, 127, MAP_NONE
+ warp_def 8, 8, 3, 127, MAP_NONE
DoubleBattleColosseum_MapCoordEvents:: @ 8391448
coord_event 3, 4, 3, 0, 0x4000, 0, 0, DoubleBattleColosseum_EventScript_1A4383
diff --git a/data/maps/events/EverGrandeCity.inc b/data/maps/events/EverGrandeCity.inc
index 41fd48f06..a4b62f583 100644
--- a/data/maps/events/EverGrandeCity.inc
+++ b/data/maps/events/EverGrandeCity.inc
@@ -1,8 +1,8 @@
EverGrandeCity_MapWarps:: @ 83807DC
- warp_def 18, 5, 0, 0, EverGrandeCity_PokemonLeague
- warp_def 27, 48, 0, 0, EverGrandeCity_PokemonCenter_1F
- warp_def 18, 41, 0, 0, VictoryRoad_1F
- warp_def 18, 27, 0, 1, VictoryRoad_1F
+ warp_def 18, 5, 0, 0, MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE
+ warp_def 27, 48, 0, 0, MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F
+ warp_def 18, 41, 0, 0, MAP_VICTORY_ROAD_1F
+ warp_def 18, 27, 0, 1, MAP_VICTORY_ROAD_1F
EverGrandeCity_MapCoordEvents:: @ 83807FC
coord_event 17, 58, 1, 0, 0x4001, 0, 0, EverGrandeCity_EventScript_14D500
diff --git a/data/maps/events/EverGrandeCity_ChampionsRoom.inc b/data/maps/events/EverGrandeCity_ChampionsRoom.inc
index 5d97fe89c..c0e672813 100644
--- a/data/maps/events/EverGrandeCity_ChampionsRoom.inc
+++ b/data/maps/events/EverGrandeCity_ChampionsRoom.inc
@@ -1,11 +1,11 @@
EverGrandeCity_ChampionsRoom_MapObjects:: @ 838B334
object_event 1, MAP_OBJ_GFX_STEVEN, 0, 6, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 0, 0, 0
- object_event 2, 240, 0, 6, 0, 12, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, 920, 0, 0
- object_event 3, MAP_OBJ_GFX_PROF_BIRCH, 0, 6, 0, 12, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, 921, 0, 0
+ object_event 2, 240, 0, 6, 0, 12, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_RIVAL_CHAMPIONS_ROOM, 0, 0
+ object_event 3, MAP_OBJ_GFX_PROF_BIRCH, 0, 6, 0, 12, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_BIRCH_CHAMPIONS_ROOM, 0, 0
EverGrandeCity_ChampionsRoom_MapWarps:: @ 838B37C
- warp_def 6, 12, 3, 1, EverGrandeCity_Corridor4
- warp_def 6, 2, 0, 0, EverGrandeCity_HallOfFame
+ warp_def 6, 12, 3, 1, MAP_EVER_GRANDE_CITY_CORRIDOR4
+ warp_def 6, 2, 0, 0, MAP_EVER_GRANDE_CITY_HALL_OF_FAME
EverGrandeCity_ChampionsRoom_MapEvents:: @ 838B38C
map_events EverGrandeCity_ChampionsRoom_MapObjects, EverGrandeCity_ChampionsRoom_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/EverGrandeCity_Corridor1.inc b/data/maps/events/EverGrandeCity_Corridor1.inc
index df9176426..f3ec6727e 100644
--- a/data/maps/events/EverGrandeCity_Corridor1.inc
+++ b/data/maps/events/EverGrandeCity_Corridor1.inc
@@ -1,8 +1,8 @@
EverGrandeCity_Corridor1_MapWarps:: @ 838B3A0
- warp_def 5, 12, 3, 1, EverGrandeCity_SidneysRoom
- warp_def 5, 2, 0, 0, EverGrandeCity_PhoebesRoom
- warp_def 4, 12, 3, 1, EverGrandeCity_SidneysRoom
- warp_def 6, 12, 3, 1, EverGrandeCity_SidneysRoom
+ warp_def 5, 12, 3, 1, MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM
+ warp_def 5, 2, 0, 0, MAP_EVER_GRANDE_CITY_PHOEBES_ROOM
+ warp_def 4, 12, 3, 1, MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM
+ warp_def 6, 12, 3, 1, MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM
EverGrandeCity_Corridor1_MapEvents:: @ 838B3C0
map_events 0x0, EverGrandeCity_Corridor1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/EverGrandeCity_Corridor2.inc b/data/maps/events/EverGrandeCity_Corridor2.inc
index 35dfa181c..e9a9cdc4c 100644
--- a/data/maps/events/EverGrandeCity_Corridor2.inc
+++ b/data/maps/events/EverGrandeCity_Corridor2.inc
@@ -1,8 +1,8 @@
EverGrandeCity_Corridor2_MapWarps:: @ 838B3D4
- warp_def 5, 12, 3, 1, EverGrandeCity_PhoebesRoom
- warp_def 5, 2, 0, 0, EverGrandeCity_GlaciasRoom
- warp_def 4, 12, 3, 1, EverGrandeCity_PhoebesRoom
- warp_def 6, 12, 3, 1, EverGrandeCity_PhoebesRoom
+ warp_def 5, 12, 3, 1, MAP_EVER_GRANDE_CITY_PHOEBES_ROOM
+ warp_def 5, 2, 0, 0, MAP_EVER_GRANDE_CITY_GLACIAS_ROOM
+ warp_def 4, 12, 3, 1, MAP_EVER_GRANDE_CITY_PHOEBES_ROOM
+ warp_def 6, 12, 3, 1, MAP_EVER_GRANDE_CITY_PHOEBES_ROOM
EverGrandeCity_Corridor2_MapEvents:: @ 838B3F4
map_events 0x0, EverGrandeCity_Corridor2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/EverGrandeCity_Corridor3.inc b/data/maps/events/EverGrandeCity_Corridor3.inc
index daf135a5f..98d5f7b81 100644
--- a/data/maps/events/EverGrandeCity_Corridor3.inc
+++ b/data/maps/events/EverGrandeCity_Corridor3.inc
@@ -1,8 +1,8 @@
EverGrandeCity_Corridor3_MapWarps:: @ 838B408
- warp_def 5, 12, 3, 1, EverGrandeCity_GlaciasRoom
- warp_def 5, 2, 0, 0, EverGrandeCity_DrakesRoom
- warp_def 4, 12, 3, 1, EverGrandeCity_GlaciasRoom
- warp_def 6, 12, 3, 1, EverGrandeCity_GlaciasRoom
+ warp_def 5, 12, 3, 1, MAP_EVER_GRANDE_CITY_GLACIAS_ROOM
+ warp_def 5, 2, 0, 0, MAP_EVER_GRANDE_CITY_DRAKES_ROOM
+ warp_def 4, 12, 3, 1, MAP_EVER_GRANDE_CITY_GLACIAS_ROOM
+ warp_def 6, 12, 3, 1, MAP_EVER_GRANDE_CITY_GLACIAS_ROOM
EverGrandeCity_Corridor3_MapEvents:: @ 838B428
map_events 0x0, EverGrandeCity_Corridor3_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/EverGrandeCity_Corridor4.inc b/data/maps/events/EverGrandeCity_Corridor4.inc
index 55757ea4c..cbcf9f77e 100644
--- a/data/maps/events/EverGrandeCity_Corridor4.inc
+++ b/data/maps/events/EverGrandeCity_Corridor4.inc
@@ -1,6 +1,6 @@
EverGrandeCity_Corridor4_MapWarps:: @ 838B43C
- warp_def 5, 33, 3, 1, EverGrandeCity_DrakesRoom
- warp_def 5, 2, 0, 0, EverGrandeCity_ChampionsRoom
+ warp_def 5, 33, 3, 1, MAP_EVER_GRANDE_CITY_DRAKES_ROOM
+ warp_def 5, 2, 0, 0, MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM
EverGrandeCity_Corridor4_MapEvents:: @ 838B44C
map_events 0x0, EverGrandeCity_Corridor4_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/EverGrandeCity_Corridor5.inc b/data/maps/events/EverGrandeCity_Corridor5.inc
index bd07dd7e0..5b77148ca 100644
--- a/data/maps/events/EverGrandeCity_Corridor5.inc
+++ b/data/maps/events/EverGrandeCity_Corridor5.inc
@@ -1,8 +1,8 @@
EverGrandeCity_Corridor5_MapWarps:: @ 838B460
- warp_def 5, 12, 3, 2, EverGrandeCity_PokemonLeague
- warp_def 5, 2, 0, 0, EverGrandeCity_SidneysRoom
- warp_def 4, 12, 3, 2, EverGrandeCity_PokemonLeague
- warp_def 6, 12, 3, 2, EverGrandeCity_PokemonLeague
+ warp_def 5, 12, 3, 2, MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE
+ warp_def 5, 2, 0, 0, MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM
+ warp_def 4, 12, 3, 2, MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE
+ warp_def 6, 12, 3, 2, MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE
EverGrandeCity_Corridor5_MapEvents:: @ 838B480
map_events 0x0, EverGrandeCity_Corridor5_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/EverGrandeCity_DrakesRoom.inc b/data/maps/events/EverGrandeCity_DrakesRoom.inc
index a925ffed8..e7ac276aa 100644
--- a/data/maps/events/EverGrandeCity_DrakesRoom.inc
+++ b/data/maps/events/EverGrandeCity_DrakesRoom.inc
@@ -2,8 +2,8 @@ EverGrandeCity_DrakesRoom_MapObjects:: @ 838B2F8
object_event 1, MAP_OBJ_GFX_DRAKE, 0, 6, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, EverGrandeCity_DrakesRoom_EventScript_15B764, 0, 0, 0
EverGrandeCity_DrakesRoom_MapWarps:: @ 838B310
- warp_def 6, 13, 3, 1, EverGrandeCity_Corridor3
- warp_def 6, 2, 0, 0, EverGrandeCity_Corridor4
+ warp_def 6, 13, 3, 1, MAP_EVER_GRANDE_CITY_CORRIDOR3
+ warp_def 6, 2, 0, 0, MAP_EVER_GRANDE_CITY_CORRIDOR4
EverGrandeCity_DrakesRoom_MapEvents:: @ 838B320
map_events EverGrandeCity_DrakesRoom_MapObjects, EverGrandeCity_DrakesRoom_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/EverGrandeCity_GlaciasRoom.inc b/data/maps/events/EverGrandeCity_GlaciasRoom.inc
index 806cfe7e1..f6c6ce97e 100644
--- a/data/maps/events/EverGrandeCity_GlaciasRoom.inc
+++ b/data/maps/events/EverGrandeCity_GlaciasRoom.inc
@@ -2,8 +2,8 @@ EverGrandeCity_GlaciasRoom_MapObjects:: @ 838B2BC
object_event 1, MAP_OBJ_GFX_GLACIA, 0, 6, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, EverGrandeCity_GlaciasRoom_EventScript_15B6CA, 0, 0, 0
EverGrandeCity_GlaciasRoom_MapWarps:: @ 838B2D4
- warp_def 6, 13, 3, 1, EverGrandeCity_Corridor2
- warp_def 6, 2, 0, 0, EverGrandeCity_Corridor3
+ warp_def 6, 13, 3, 1, MAP_EVER_GRANDE_CITY_CORRIDOR2
+ warp_def 6, 2, 0, 0, MAP_EVER_GRANDE_CITY_CORRIDOR3
EverGrandeCity_GlaciasRoom_MapEvents:: @ 838B2E4
map_events EverGrandeCity_GlaciasRoom_MapObjects, EverGrandeCity_GlaciasRoom_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/EverGrandeCity_HallOfFame.inc b/data/maps/events/EverGrandeCity_HallOfFame.inc
index 1860ee397..9290c4530 100644
--- a/data/maps/events/EverGrandeCity_HallOfFame.inc
+++ b/data/maps/events/EverGrandeCity_HallOfFame.inc
@@ -2,7 +2,7 @@ EverGrandeCity_HallOfFame_MapObjects:: @ 838B528
object_event 1, MAP_OBJ_GFX_STEVEN, 0, 6, 0, 16, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, 0, 0, 0
EverGrandeCity_HallOfFame_MapWarps:: @ 838B540
- warp_def 7, 11, 3, 1, EverGrandeCity_ChampionsRoom
+ warp_def 7, 11, 3, 1, MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM
EverGrandeCity_HallOfFame_MapEvents:: @ 838B548
map_events EverGrandeCity_HallOfFame_MapObjects, EverGrandeCity_HallOfFame_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/EverGrandeCity_PhoebesRoom.inc b/data/maps/events/EverGrandeCity_PhoebesRoom.inc
index aab61bcf4..a2de097b8 100644
--- a/data/maps/events/EverGrandeCity_PhoebesRoom.inc
+++ b/data/maps/events/EverGrandeCity_PhoebesRoom.inc
@@ -2,8 +2,8 @@ EverGrandeCity_PhoebesRoom_MapObjects:: @ 838B280
object_event 1, MAP_OBJ_GFX_PHOEBE, 0, 6, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, EverGrandeCity_PhoebesRoom_EventScript_15B630, 0, 0, 0
EverGrandeCity_PhoebesRoom_MapWarps:: @ 838B298
- warp_def 6, 13, 3, 1, EverGrandeCity_Corridor1
- warp_def 6, 2, 0, 0, EverGrandeCity_Corridor2
+ warp_def 6, 13, 3, 1, MAP_EVER_GRANDE_CITY_CORRIDOR1
+ warp_def 6, 2, 0, 0, MAP_EVER_GRANDE_CITY_CORRIDOR2
EverGrandeCity_PhoebesRoom_MapEvents:: @ 838B2A8
map_events EverGrandeCity_PhoebesRoom_MapObjects, EverGrandeCity_PhoebesRoom_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/EverGrandeCity_PokemonCenter_1F.inc b/data/maps/events/EverGrandeCity_PokemonCenter_1F.inc
index 25aee1300..f0709710d 100644
--- a/data/maps/events/EverGrandeCity_PokemonCenter_1F.inc
+++ b/data/maps/events/EverGrandeCity_PokemonCenter_1F.inc
@@ -4,9 +4,9 @@ EverGrandeCity_PokemonCenter_1F_MapObjects:: @ 838B55C
object_event 3, MAP_OBJ_GFX_OLD_MAN_1, 0, 10, 0, 7, 0, 3, 10, 0, 0, 0, 0, 0, 0, EverGrandeCity_PokemonCenter_1F_EventScript_15BC87, 0, 0, 0
EverGrandeCity_PokemonCenter_1F_MapWarps:: @ 838B5A4
- warp_def 7, 8, 3, 1, EverGrandeCity
- warp_def 6, 8, 3, 1, EverGrandeCity
- warp_def 1, 6, 4, 0, EverGrandeCity_PokemonCenter_2F
+ warp_def 7, 8, 3, 1, MAP_EVER_GRANDE_CITY
+ warp_def 6, 8, 3, 1, MAP_EVER_GRANDE_CITY
+ warp_def 1, 6, 4, 0, MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F
EverGrandeCity_PokemonCenter_1F_MapEvents:: @ 838B5BC
map_events EverGrandeCity_PokemonCenter_1F_MapObjects, EverGrandeCity_PokemonCenter_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/EverGrandeCity_PokemonCenter_2F.inc b/data/maps/events/EverGrandeCity_PokemonCenter_2F.inc
index 2bc94cdcc..e7502055a 100644
--- a/data/maps/events/EverGrandeCity_PokemonCenter_2F.inc
+++ b/data/maps/events/EverGrandeCity_PokemonCenter_2F.inc
@@ -4,11 +4,11 @@ EverGrandeCity_PokemonCenter_2F_MapObjects:: @ 838B5D0
object_event 3, MAP_OBJ_GFX_TEALA, 0, 10, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, EverGrandeCity_PokemonCenter_2F_EventScript_15BCAC, 0, 0, 0
EverGrandeCity_PokemonCenter_2F_MapWarps:: @ 838B618
- warp_def 1, 5, 4, 2, EverGrandeCity_PokemonCenter_1F
- warp_def 5, 1, 0, 0, SingleBattleColosseum
- warp_def 8, 1, 0, 0, TradeCenter
- warp_def 11, 1, 0, 0, RecordCorner
- warp_def 0, 0, 0, 0, DoubleBattleColosseum
+ warp_def 1, 5, 4, 2, MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F
+ warp_def 5, 1, 0, 0, MAP_SINGLE_BATTLE_COLOSSEUM
+ warp_def 8, 1, 0, 0, MAP_TRADE_CENTER
+ warp_def 11, 1, 0, 0, MAP_RECORD_CORNER
+ warp_def 0, 0, 0, 0, MAP_DOUBLE_BATTLE_COLOSSEUM
EverGrandeCity_PokemonCenter_2F_MapEvents:: @ 838B640
map_events EverGrandeCity_PokemonCenter_2F_MapObjects, EverGrandeCity_PokemonCenter_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/EverGrandeCity_PokemonLeague.inc b/data/maps/events/EverGrandeCity_PokemonLeague.inc
index d60761727..77247e665 100644
--- a/data/maps/events/EverGrandeCity_PokemonLeague.inc
+++ b/data/maps/events/EverGrandeCity_PokemonLeague.inc
@@ -5,10 +5,10 @@ EverGrandeCity_PokemonLeague_MapObjects:: @ 838B494
object_event 4, MAP_OBJ_GFX_MAN_4, 0, 11, 0, 2, 0, 3, 8, 17, 0, 0, 0, 0, 0, EverGrandeCity_PokemonLeague_EventScript_15BAD2, 0, 0, 0
EverGrandeCity_PokemonLeague_MapWarps:: @ 838B4F4
- warp_def 9, 11, 3, 0, EverGrandeCity
- warp_def 10, 11, 3, 0, EverGrandeCity
- warp_def 9, 1, 3, 0, EverGrandeCity_Corridor5
- warp_def 10, 1, 3, 0, EverGrandeCity_Corridor5
+ warp_def 9, 11, 3, 0, MAP_EVER_GRANDE_CITY
+ warp_def 10, 11, 3, 0, MAP_EVER_GRANDE_CITY
+ warp_def 9, 1, 3, 0, MAP_EVER_GRANDE_CITY_CORRIDOR5
+ warp_def 10, 1, 3, 0, MAP_EVER_GRANDE_CITY_CORRIDOR5
EverGrandeCity_PokemonLeague_MapEvents:: @ 838B514
map_events EverGrandeCity_PokemonLeague_MapObjects, EverGrandeCity_PokemonLeague_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/EverGrandeCity_SidneysRoom.inc b/data/maps/events/EverGrandeCity_SidneysRoom.inc
index ff370d4ef..c2a7ce10d 100644
--- a/data/maps/events/EverGrandeCity_SidneysRoom.inc
+++ b/data/maps/events/EverGrandeCity_SidneysRoom.inc
@@ -2,8 +2,8 @@ EverGrandeCity_SidneysRoom_MapObjects:: @ 838B244
object_event 1, MAP_OBJ_GFX_SIDNEY, 0, 6, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, EverGrandeCity_SidneysRoom_EventScript_15B596, 0, 0, 0
EverGrandeCity_SidneysRoom_MapWarps:: @ 838B25C
- warp_def 6, 13, 3, 1, EverGrandeCity_Corridor5
- warp_def 6, 2, 0, 0, EverGrandeCity_Corridor1
+ warp_def 6, 13, 3, 1, MAP_EVER_GRANDE_CITY_CORRIDOR5
+ warp_def 6, 2, 0, 0, MAP_EVER_GRANDE_CITY_CORRIDOR1
EverGrandeCity_SidneysRoom_MapEvents:: @ 838B26C
map_events EverGrandeCity_SidneysRoom_MapObjects, EverGrandeCity_SidneysRoom_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/FallarborTown.inc b/data/maps/events/FallarborTown.inc
index 2d69688e7..755f205bc 100644
--- a/data/maps/events/FallarborTown.inc
+++ b/data/maps/events/FallarborTown.inc
@@ -2,14 +2,14 @@ FallarborTown_MapObjects:: @ 8380E04
object_event 1, MAP_OBJ_GFX_GIRL_1, 0, 8, 0, 11, 0, 3, 8, 16, 0, 0, 0, 0, 0, FallarborTown_EventScript_14E814, 0, 0, 0
object_event 2, MAP_OBJ_GFX_OLD_MAN_1, 0, 11, 0, 9, 0, 3, 5, 1, 0, 0, 0, 0, 0, FallarborTown_EventScript_14E7F5, 0, 0, 0
object_event 3, MAP_OBJ_GFX_GENTLEMAN, 0, 11, 0, 15, 0, 3, 3, 17, 0, 0, 0, 0, 0, FallarborTown_EventScript_14E81D, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_AZURILL, 0, 8, 0, 12, 0, 3, 1, 1, 0, 0, 0, 0, 0, FallarborTown_EventScript_14E826, 907, 0, 0
+ object_event 4, MAP_OBJ_GFX_AZURILL, 0, 8, 0, 12, 0, 3, 1, 1, 0, 0, 0, 0, 0, FallarborTown_EventScript_14E826, FLAG_HIDE_AZURILL_FALLARBOR, 0, 0
FallarborTown_MapWarps:: @ 8380E64
- warp_def 15, 15, 0, 0, FallarborTown_Mart
- warp_def 8, 7, 0, 0, FallarborTown_ContestLobby
- warp_def 14, 7, 0, 0, FallarborTown_PokemonCenter_1F
- warp_def 6, 17, 0, 0, FallarborTown_House1
- warp_def 1, 6, 0, 0, FallarborTown_House2
+ warp_def 15, 15, 0, 0, MAP_FALLARBOR_TOWN_MART
+ warp_def 8, 7, 0, 0, MAP_FALLARBOR_TOWN_CONTEST_LOBBY
+ warp_def 14, 7, 0, 0, MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F
+ warp_def 6, 17, 0, 0, MAP_FALLARBOR_TOWN_HOUSE1
+ warp_def 1, 6, 0, 0, MAP_FALLARBOR_TOWN_HOUSE2
FallarborTown_MapBGEvents:: @ 8380E8C
bg_event 16, 15, 0, 1, 0, FallarborTown_EventScript_1A00E1
diff --git a/data/maps/events/FallarborTown_ContestHall.inc b/data/maps/events/FallarborTown_ContestHall.inc
index 93b43eccc..30b602e60 100644
--- a/data/maps/events/FallarborTown_ContestHall.inc
+++ b/data/maps/events/FallarborTown_ContestHall.inc
@@ -4,8 +4,8 @@ FallarborTown_ContestHall_MapObjects:: @ 83867DC
object_event 3, MAP_OBJ_GFX_YOUNGSTER, 0, 0, 0, 15, 0, 0, 2, 51, 0, 0, 0, 0, 0, FallarborTown_ContestHall_EventScript_153AE1, 0, 0, 0
FallarborTown_ContestHall_MapWarps:: @ 8386824
- warp_def 10, 17, 0, 2, FallarborTown_ContestLobby
- warp_def 11, 17, 0, 2, FallarborTown_ContestLobby
+ warp_def 10, 17, 0, 2, MAP_FALLARBOR_TOWN_CONTEST_LOBBY
+ warp_def 11, 17, 0, 2, MAP_FALLARBOR_TOWN_CONTEST_LOBBY
FallarborTown_ContestHall_MapBGEvents:: @ 8386834
bg_event 12, 14, 3, 0, 0, FallarborTown_ContestHall_EventScript_153AEA
diff --git a/data/maps/events/FallarborTown_ContestLobby.inc b/data/maps/events/FallarborTown_ContestLobby.inc
index af7ca5ed1..811461c02 100644
--- a/data/maps/events/FallarborTown_ContestLobby.inc
+++ b/data/maps/events/FallarborTown_ContestLobby.inc
@@ -3,13 +3,13 @@ FallarborTown_ContestLobby_MapObjects:: @ 83866F0
object_event 2, MAP_OBJ_GFX_LITTLE_BOY_2, 0, 2, 0, 6, 0, 3, 5, 1, 0, 0, 0, 0, 0, FallarborTown_ContestLobby_EventScript_153A8E, 0, 0, 0
object_event 3, MAP_OBJ_GFX_LASS, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, FallarborTown_ContestLobby_EventScript_153AB2, 0, 0, 0
object_event 4, MAP_OBJ_GFX_OLD_MAN_1, 0, 11, 0, 5, 0, 3, 10, 0, 0, 0, 0, 0, 0, FallarborTown_ContestLobby_EventScript_1B778A, 0, 0, 0
- object_event 5, MAP_OBJ_GFX_REPORTER_M, 0, 7, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, FallarborTown_ContestLobby_EventScript_1AE0B6, 800, 0, 0
+ object_event 5, MAP_OBJ_GFX_REPORTER_M, 0, 7, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, FallarborTown_ContestLobby_EventScript_1AE0B6, FLAG_HIDE_CONTEST_REPORTER_FALLARBOR, 0, 0
object_event 6, MAP_OBJ_GFX_ARTIST, 0, 12, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, FallarborTown_ContestLobby_EventScript_153A97, 0, 0, 0
FallarborTown_ContestLobby_MapWarps:: @ 8386780
- warp_def 5, 6, 0, 1, FallarborTown
- warp_def 6, 6, 0, 1, FallarborTown
- warp_def 1, 1, 0, 0, FallarborTown_ContestHall
+ warp_def 5, 6, 0, 1, MAP_FALLARBOR_TOWN
+ warp_def 6, 6, 0, 1, MAP_FALLARBOR_TOWN
+ warp_def 1, 1, 0, 0, MAP_FALLARBOR_TOWN_CONTEST_HALL
FallarborTown_ContestLobby_MapBGEvents:: @ 8386798
bg_event 10, 3, 0, 0, 0, FallarborTown_ContestLobby_EventScript_1B7823
diff --git a/data/maps/events/FallarborTown_House1.inc b/data/maps/events/FallarborTown_House1.inc
index d4cd3e0c9..e3104fb1d 100644
--- a/data/maps/events/FallarborTown_House1.inc
+++ b/data/maps/events/FallarborTown_House1.inc
@@ -1,10 +1,10 @@
FallarborTown_House1_MapObjects:: @ 8386970
- object_event 1, MAP_OBJ_GFX_SCIENTIST_1, 0, 6, 0, 4, 0, 3, 2, 17, 0, 0, 0, 0, 0, FallarborTown_House1_EventScript_153BB5, 928, 0, 0
+ object_event 1, MAP_OBJ_GFX_SCIENTIST_1, 0, 6, 0, 4, 0, 3, 2, 17, 0, 0, 0, 0, 0, FallarborTown_House1_EventScript_153BB5, FLAG_HIDE_PROF_COSMO_FALLARBOR, 0, 0
object_event 2, MAP_OBJ_GFX_WOMAN_3, 0, 5, 0, 6, 0, 3, 5, 1, 0, 0, 0, 0, 0, FallarborTown_House1_EventScript_153C5E, 0, 0, 0
FallarborTown_House1_MapWarps:: @ 83869A0
- warp_def 3, 8, 0, 3, FallarborTown
- warp_def 4, 8, 0, 3, FallarborTown
+ warp_def 3, 8, 0, 3, MAP_FALLARBOR_TOWN
+ warp_def 4, 8, 0, 3, MAP_FALLARBOR_TOWN
FallarborTown_House1_MapEvents:: @ 83869B0
map_events FallarborTown_House1_MapObjects, FallarborTown_House1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/FallarborTown_House2.inc b/data/maps/events/FallarborTown_House2.inc
index 0b1c64162..e24fef7a9 100644
--- a/data/maps/events/FallarborTown_House2.inc
+++ b/data/maps/events/FallarborTown_House2.inc
@@ -2,8 +2,8 @@ FallarborTown_House2_MapObjects:: @ 83869C4
object_event 1, MAP_OBJ_GFX_FAT_MAN, 0, 4, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, FallarborTown_House2_EventScript_153C91, 0, 0, 0
FallarborTown_House2_MapWarps:: @ 83869DC
- warp_def 3, 7, 0, 4, FallarborTown
- warp_def 4, 7, 0, 4, FallarborTown
+ warp_def 3, 7, 0, 4, MAP_FALLARBOR_TOWN
+ warp_def 4, 7, 0, 4, MAP_FALLARBOR_TOWN
FallarborTown_House2_MapEvents:: @ 83869EC
map_events FallarborTown_House2_MapObjects, FallarborTown_House2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/FallarborTown_Mart.inc b/data/maps/events/FallarborTown_Mart.inc
index 584b70447..c343e017e 100644
--- a/data/maps/events/FallarborTown_Mart.inc
+++ b/data/maps/events/FallarborTown_Mart.inc
@@ -5,8 +5,8 @@ FallarborTown_Mart_MapObjects:: @ 838666C
object_event 4, MAP_OBJ_GFX_SKITTY, 0, 2, 0, 5, 0, 3, 1, 17, 0, 0, 0, 0, 0, FallarborTown_Mart_EventScript_1539AE, 0, 0, 0
FallarborTown_Mart_MapWarps:: @ 83866CC
- warp_def 3, 7, 0, 0, FallarborTown
- warp_def 4, 7, 0, 0, FallarborTown
+ warp_def 3, 7, 0, 0, MAP_FALLARBOR_TOWN
+ warp_def 4, 7, 0, 0, MAP_FALLARBOR_TOWN
FallarborTown_Mart_MapEvents:: @ 83866DC
map_events FallarborTown_Mart_MapObjects, FallarborTown_Mart_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/FallarborTown_PokemonCenter_1F.inc b/data/maps/events/FallarborTown_PokemonCenter_1F.inc
index 16f90af9d..ff2278e29 100644
--- a/data/maps/events/FallarborTown_PokemonCenter_1F.inc
+++ b/data/maps/events/FallarborTown_PokemonCenter_1F.inc
@@ -2,12 +2,12 @@ FallarborTown_PokemonCenter_1F_MapObjects:: @ 8386860
object_event 1, MAP_OBJ_GFX_NURSE, 0, 7, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, FallarborTown_PokemonCenter_1F_EventScript_153B02, 0, 0, 0
object_event 2, MAP_OBJ_GFX_GIRL_3, 0, 10, 0, 6, 0, 3, 10, 0, 0, 0, 0, 0, 0, FallarborTown_PokemonCenter_1F_EventScript_153B10, 0, 0, 0
object_event 3, MAP_OBJ_GFX_OLD_MAN_1, 0, 2, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, FallarborTown_PokemonCenter_1F_EventScript_153B19, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_WOMAN_3, 0, 10, 0, 2, 0, 3, 7, 0, 0, 0, 0, 0, 0, FallarborTown_PokemonCenter_1F_EventScript_153B22, 871, 0, 0
+ object_event 4, MAP_OBJ_GFX_WOMAN_3, 0, 10, 0, 2, 0, 3, 7, 0, 0, 0, 0, 0, 0, FallarborTown_PokemonCenter_1F_EventScript_153B22, FLAG_HIDE_LANETTE_FALLARBOR, 0, 0
FallarborTown_PokemonCenter_1F_MapWarps:: @ 83868C0
- warp_def 7, 8, 3, 2, FallarborTown
- warp_def 6, 8, 3, 2, FallarborTown
- warp_def 1, 6, 4, 0, FallarborTown_PokemonCenter_2F
+ warp_def 7, 8, 3, 2, MAP_FALLARBOR_TOWN
+ warp_def 6, 8, 3, 2, MAP_FALLARBOR_TOWN
+ warp_def 1, 6, 4, 0, MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F
FallarborTown_PokemonCenter_1F_MapEvents:: @ 83868D8
map_events FallarborTown_PokemonCenter_1F_MapObjects, FallarborTown_PokemonCenter_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/FallarborTown_PokemonCenter_2F.inc b/data/maps/events/FallarborTown_PokemonCenter_2F.inc
index 05ea78f75..1ae7bba2a 100644
--- a/data/maps/events/FallarborTown_PokemonCenter_2F.inc
+++ b/data/maps/events/FallarborTown_PokemonCenter_2F.inc
@@ -4,11 +4,11 @@ FallarborTown_PokemonCenter_2F_MapObjects:: @ 83868EC
object_event 3, MAP_OBJ_GFX_TEALA, 0, 7, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, FallarborTown_PokemonCenter_2F_EventScript_153BA2, 0, 0, 0
FallarborTown_PokemonCenter_2F_MapWarps:: @ 8386934
- warp_def 1, 5, 4, 2, FallarborTown_PokemonCenter_1F
- warp_def 5, 1, 3, 0, SingleBattleColosseum
- warp_def 8, 1, 3, 0, TradeCenter
- warp_def 11, 1, 3, 0, RecordCorner
- warp_def 0, 0, 0, 0, DoubleBattleColosseum
+ warp_def 1, 5, 4, 2, MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F
+ warp_def 5, 1, 3, 0, MAP_SINGLE_BATTLE_COLOSSEUM
+ warp_def 8, 1, 3, 0, MAP_TRADE_CENTER
+ warp_def 11, 1, 3, 0, MAP_RECORD_CORNER
+ warp_def 0, 0, 0, 0, MAP_DOUBLE_BATTLE_COLOSSEUM
FallarborTown_PokemonCenter_2F_MapEvents:: @ 838695C
map_events FallarborTown_PokemonCenter_2F_MapObjects, FallarborTown_PokemonCenter_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/FieryPath.inc b/data/maps/events/FieryPath.inc
index a4ac688d8..575f92bd5 100644
--- a/data/maps/events/FieryPath.inc
+++ b/data/maps/events/FieryPath.inc
@@ -1,16 +1,16 @@
FieryPath_MapObjects:: @ 838C718
- object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 8, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, FieryPath_EventScript_1B17EE, 1091, 0, 0
- object_event 2, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 10, 0, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 17, 0, 0
- object_event 3, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 17, 0, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 18, 0, 0
- object_event 4, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 8, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 19, 0, 0
- object_event 5, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 3, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 20, 0, 0
- object_event 6, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 23, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 21, 0, 0
- object_event 7, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 5, 0, 24, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 22, 0, 0
- object_event 8, MAP_OBJ_GFX_ITEM_BALL, 0, 7, 0, 32, 0, 3, 1, 17, 0, 0, 0, 0, 0, FieryPath_EventScript_1B17E1, 1111, 0, 0
+ object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 8, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, FieryPath_EventScript_1B17EE, FLAG_ITEM_FIERY_PATH_1, 0, 0
+ object_event 2, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 10, 0, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_11, 0, 0
+ object_event 3, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 17, 0, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_12, 0, 0
+ object_event 4, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 8, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_13, 0, 0
+ object_event 5, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 3, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_14, 0, 0
+ object_event 6, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 23, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_15, 0, 0
+ object_event 7, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 5, 0, 24, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_16, 0, 0
+ object_event 8, MAP_OBJ_GFX_ITEM_BALL, 0, 7, 0, 32, 0, 3, 1, 17, 0, 0, 0, 0, 0, FieryPath_EventScript_1B17E1, FLAG_ITEM_FIERY_PATH_2, 0, 0
FieryPath_MapWarps:: @ 838C7D8
- warp_def 26, 36, 3, 4, Route112
- warp_def 26, 4, 3, 5, Route112
+ warp_def 26, 36, 3, 4, MAP_ROUTE112
+ warp_def 26, 4, 3, 5, MAP_ROUTE112
FieryPath_MapEvents:: @ 838C7E8
map_events FieryPath_MapObjects, FieryPath_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/FortreeCity.inc b/data/maps/events/FortreeCity.inc
index 437852d25..4c80997f9 100644
--- a/data/maps/events/FortreeCity.inc
+++ b/data/maps/events/FortreeCity.inc
@@ -5,18 +5,18 @@ FortreeCity_MapObjects:: @ 8380020
object_event 4, MAP_OBJ_GFX_BOY_1, 0, 11, 0, 14, 0, 4, 1, 0, 0, 0, 0, 0, 0, FortreeCity_EventScript_14C98F, 0, 0, 0
object_event 5, MAP_OBJ_GFX_OLD_MAN_2, 0, 8, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, FortreeCity_EventScript_14C986, 0, 0, 0
object_event 6, MAP_OBJ_GFX_BOY_5, 0, 9, 0, 16, 0, 3, 8, 0, 0, 0, 0, 0, 0, FortreeCity_EventScript_14C998, 0, 0, 0
- object_event 7, MAP_OBJ_GFX_KECLEON_1, 0, 25, 0, 8, 0, 3, 76, 17, 0, 0, 0, 0, 0, FortreeCity_EventScript_14C9B3, 969, 0, 0
+ object_event 7, MAP_OBJ_GFX_KECLEON_1, 0, 25, 0, 8, 0, 3, 76, 17, 0, 0, 0, 0, 0, FortreeCity_EventScript_14C9B3, FLAG_HIDE_KECLEON_FORTREE, 0, 0
FortreeCity_MapWarps:: @ 83800C8
- warp_def 5, 6, 0, 0, FortreeCity_PokemonCenter_1F
- warp_def 10, 3, 0, 0, FortreeCity_House1
- warp_def 22, 11, 0, 0, FortreeCity_Gym
- warp_def 4, 14, 0, 0, FortreeCity_Mart
- warp_def 17, 3, 0, 0, FortreeCity_House2
- warp_def 25, 3, 0, 0, FortreeCity_House3
- warp_def 32, 2, 0, 0, FortreeCity_House4
- warp_def 12, 13, 0, 0, FortreeCity_House5
- warp_def 37, 13, 0, 0, FortreeCity_DecorationShop
+ warp_def 5, 6, 0, 0, MAP_FORTREE_CITY_POKEMON_CENTER_1F
+ warp_def 10, 3, 0, 0, MAP_FORTREE_CITY_HOUSE1
+ warp_def 22, 11, 0, 0, MAP_FORTREE_CITY_GYM
+ warp_def 4, 14, 0, 0, MAP_FORTREE_CITY_MART
+ warp_def 17, 3, 0, 0, MAP_FORTREE_CITY_HOUSE2
+ warp_def 25, 3, 0, 0, MAP_FORTREE_CITY_HOUSE3
+ warp_def 32, 2, 0, 0, MAP_FORTREE_CITY_HOUSE4
+ warp_def 12, 13, 0, 0, MAP_FORTREE_CITY_HOUSE5
+ warp_def 37, 13, 0, 0, MAP_FORTREE_CITY_DECORATION_SHOP
FortreeCity_MapBGEvents:: @ 8380110
bg_event 6, 9, 0, 0, 0, FortreeCity_EventScript_14C9A1
diff --git a/data/maps/events/FortreeCity_DecorationShop.inc b/data/maps/events/FortreeCity_DecorationShop.inc
index cc9894b5c..930a73b55 100644
--- a/data/maps/events/FortreeCity_DecorationShop.inc
+++ b/data/maps/events/FortreeCity_DecorationShop.inc
@@ -5,8 +5,8 @@ FortreeCity_DecorationShop_MapObjects:: @ 83893E0
object_event 4, MAP_OBJ_GFX_MART_EMPLOYEE, 0, 6, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, FortreeCity_DecorationShop_EventScript_158298, 0, 0, 0
FortreeCity_DecorationShop_MapWarps:: @ 8389440
- warp_def 3, 5, 0, 8, FortreeCity
- warp_def 4, 5, 0, 8, FortreeCity
+ warp_def 3, 5, 0, 8, MAP_FORTREE_CITY
+ warp_def 4, 5, 0, 8, MAP_FORTREE_CITY
FortreeCity_DecorationShop_MapEvents:: @ 8389450
map_events FortreeCity_DecorationShop_MapObjects, FortreeCity_DecorationShop_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/FortreeCity_Gym.inc b/data/maps/events/FortreeCity_Gym.inc
index ad983f81b..523dd3fdc 100644
--- a/data/maps/events/FortreeCity_Gym.inc
+++ b/data/maps/events/FortreeCity_Gym.inc
@@ -7,8 +7,8 @@ FortreeCity_Gym_MapObjects:: @ 8389018
object_event 6, MAP_OBJ_GFX_MAN_2, 0, 2, 0, 19, 0, 3, 8, 0, 0, 0, 0, 0, 0, FortreeCity_Gym_EventScript_157FBE, 0, 0, 0
FortreeCity_Gym_MapWarps:: @ 83890A8
- warp_def 2, 24, 0, 2, FortreeCity
- warp_def 3, 24, 0, 2, FortreeCity
+ warp_def 2, 24, 0, 2, MAP_FORTREE_CITY
+ warp_def 3, 24, 0, 2, MAP_FORTREE_CITY
FortreeCity_Gym_MapBGEvents:: @ 83890B8
bg_event 1, 21, 0, 1, 0, FortreeCity_Gym_EventScript_157FDD
diff --git a/data/maps/events/FortreeCity_House1.inc b/data/maps/events/FortreeCity_House1.inc
index ff383b464..23cd52fdc 100644
--- a/data/maps/events/FortreeCity_House1.inc
+++ b/data/maps/events/FortreeCity_House1.inc
@@ -4,8 +4,8 @@ FortreeCity_House1_MapObjects:: @ 8388FAC
object_event 3, MAP_OBJ_GFX_OLD_WOMAN_1, 0, 7, 0, 4, 0, 3, 1, 17, 0, 0, 0, 0, 0, FortreeCity_House1_EventScript_157EB7, 0, 0, 0
FortreeCity_House1_MapWarps:: @ 8388FF4
- warp_def 3, 5, 0, 1, FortreeCity
- warp_def 4, 5, 0, 1, FortreeCity
+ warp_def 3, 5, 0, 1, MAP_FORTREE_CITY
+ warp_def 4, 5, 0, 1, MAP_FORTREE_CITY
FortreeCity_House1_MapEvents:: @ 8389004
map_events FortreeCity_House1_MapObjects, FortreeCity_House1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/FortreeCity_House2.inc b/data/maps/events/FortreeCity_House2.inc
index 3b0943b2e..1c7246100 100644
--- a/data/maps/events/FortreeCity_House2.inc
+++ b/data/maps/events/FortreeCity_House2.inc
@@ -2,8 +2,8 @@ FortreeCity_House2_MapObjects:: @ 8389278
object_event 1, MAP_OBJ_GFX_OLD_WOMAN_1, 0, 2, 0, 3, 0, 3, 5, 1, 0, 0, 0, 0, 0, FortreeCity_House2_EventScript_1580B4, 0, 0, 0
FortreeCity_House2_MapWarps:: @ 8389290
- warp_def 3, 5, 0, 4, FortreeCity
- warp_def 4, 5, 0, 4, FortreeCity
+ warp_def 3, 5, 0, 4, MAP_FORTREE_CITY
+ warp_def 4, 5, 0, 4, MAP_FORTREE_CITY
FortreeCity_House2_MapEvents:: @ 83892A0
map_events FortreeCity_House2_MapObjects, FortreeCity_House2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/FortreeCity_House3.inc b/data/maps/events/FortreeCity_House3.inc
index b0b5a7412..359953246 100644
--- a/data/maps/events/FortreeCity_House3.inc
+++ b/data/maps/events/FortreeCity_House3.inc
@@ -3,8 +3,8 @@ FortreeCity_House3_MapObjects:: @ 83892B4
object_event 2, MAP_OBJ_GFX_SCHOOL_KID_M, 0, 5, 0, 4, 0, 3, 2, 17, 0, 0, 0, 0, 0, FortreeCity_House3_EventScript_158175, 0, 0, 0
FortreeCity_House3_MapWarps:: @ 83892E4
- warp_def 3, 5, 0, 5, FortreeCity
- warp_def 4, 5, 0, 5, FortreeCity
+ warp_def 3, 5, 0, 5, MAP_FORTREE_CITY
+ warp_def 4, 5, 0, 5, MAP_FORTREE_CITY
FortreeCity_House3_MapEvents:: @ 83892F4
map_events FortreeCity_House3_MapObjects, FortreeCity_House3_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/FortreeCity_House4.inc b/data/maps/events/FortreeCity_House4.inc
index 8b85660c7..0a5f81b6c 100644
--- a/data/maps/events/FortreeCity_House4.inc
+++ b/data/maps/events/FortreeCity_House4.inc
@@ -1,11 +1,11 @@
FortreeCity_House4_MapObjects:: @ 8389308
object_event 1, MAP_OBJ_GFX_WOMAN_5, 0, 6, 0, 4, 0, 3, 2, 17, 0, 0, 0, 0, 0, FortreeCity_House4_EventScript_15817F, 0, 0, 0
object_event 2, MAP_OBJ_GFX_BOY_3, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, FortreeCity_House4_EventScript_158188, 0, 0, 0
- object_event 3, MAP_OBJ_GFX_WINGULL, 0, 2, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, FortreeCity_House4_EventScript_15821E, 933, 0, 0
+ object_event 3, MAP_OBJ_GFX_WINGULL, 0, 2, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, FortreeCity_House4_EventScript_15821E, FLAG_HIDE_WINGULL_FORTREE_HOUSE, 0, 0
FortreeCity_House4_MapWarps:: @ 8389350
- warp_def 3, 5, 0, 6, FortreeCity
- warp_def 4, 5, 0, 6, FortreeCity
+ warp_def 3, 5, 0, 6, MAP_FORTREE_CITY
+ warp_def 4, 5, 0, 6, MAP_FORTREE_CITY
FortreeCity_House4_MapEvents:: @ 8389360
map_events FortreeCity_House4_MapObjects, FortreeCity_House4_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/FortreeCity_House5.inc b/data/maps/events/FortreeCity_House5.inc
index ffaa59e69..94ff0ebb1 100644
--- a/data/maps/events/FortreeCity_House5.inc
+++ b/data/maps/events/FortreeCity_House5.inc
@@ -4,8 +4,8 @@ FortreeCity_House5_MapObjects:: @ 8389374
object_event 3, MAP_OBJ_GFX_MAN_1, 0, 2, 0, 4, 0, 3, 10, 0, 0, 0, 0, 0, 0, FortreeCity_House5_EventScript_15823B, 0, 0, 0
FortreeCity_House5_MapWarps:: @ 83893BC
- warp_def 3, 5, 0, 7, FortreeCity
- warp_def 4, 5, 0, 7, FortreeCity
+ warp_def 3, 5, 0, 7, MAP_FORTREE_CITY
+ warp_def 4, 5, 0, 7, MAP_FORTREE_CITY
FortreeCity_House5_MapEvents:: @ 83893CC
map_events FortreeCity_House5_MapObjects, FortreeCity_House5_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/FortreeCity_Mart.inc b/data/maps/events/FortreeCity_Mart.inc
index 5d1996fc2..2353c3c1f 100644
--- a/data/maps/events/FortreeCity_Mart.inc
+++ b/data/maps/events/FortreeCity_Mart.inc
@@ -5,8 +5,8 @@ FortreeCity_Mart_MapObjects:: @ 83891F4
object_event 4, MAP_OBJ_GFX_BOY_2, 0, 5, 0, 6, 0, 3, 10, 17, 0, 0, 0, 0, 0, FortreeCity_Mart_EventScript_1580AA, 0, 0, 0
FortreeCity_Mart_MapWarps:: @ 8389254
- warp_def 3, 7, 0, 3, FortreeCity
- warp_def 4, 7, 0, 3, FortreeCity
+ warp_def 3, 7, 0, 3, MAP_FORTREE_CITY
+ warp_def 4, 7, 0, 3, MAP_FORTREE_CITY
FortreeCity_Mart_MapEvents:: @ 8389264
map_events FortreeCity_Mart_MapObjects, FortreeCity_Mart_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/FortreeCity_PokemonCenter_1F.inc b/data/maps/events/FortreeCity_PokemonCenter_1F.inc
index bd7877e24..bc06da7ca 100644
--- a/data/maps/events/FortreeCity_PokemonCenter_1F.inc
+++ b/data/maps/events/FortreeCity_PokemonCenter_1F.inc
@@ -5,9 +5,9 @@ FortreeCity_PokemonCenter_1F_MapObjects:: @ 83890E4
object_event 4, MAP_OBJ_GFX_BOY_3, 0, 2, 0, 3, 0, 3, 8, 17, 0, 0, 0, 0, 0, FortreeCity_PokemonCenter_1F_EventScript_15803B, 0, 0, 0
FortreeCity_PokemonCenter_1F_MapWarps:: @ 8389144
- warp_def 7, 8, 3, 0, FortreeCity
- warp_def 6, 8, 3, 0, FortreeCity
- warp_def 1, 6, 4, 0, FortreeCity_PokemonCenter_2F
+ warp_def 7, 8, 3, 0, MAP_FORTREE_CITY
+ warp_def 6, 8, 3, 0, MAP_FORTREE_CITY
+ warp_def 1, 6, 4, 0, MAP_FORTREE_CITY_POKEMON_CENTER_2F
FortreeCity_PokemonCenter_1F_MapEvents:: @ 838915C
map_events FortreeCity_PokemonCenter_1F_MapObjects, FortreeCity_PokemonCenter_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/FortreeCity_PokemonCenter_2F.inc b/data/maps/events/FortreeCity_PokemonCenter_2F.inc
index b6a10428c..f16c59cce 100644
--- a/data/maps/events/FortreeCity_PokemonCenter_2F.inc
+++ b/data/maps/events/FortreeCity_PokemonCenter_2F.inc
@@ -4,11 +4,11 @@ FortreeCity_PokemonCenter_2F_MapObjects:: @ 8389170
object_event 3, MAP_OBJ_GFX_TEALA, 0, 10, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, FortreeCity_PokemonCenter_2F_EventScript_158060, 0, 0, 0
FortreeCity_PokemonCenter_2F_MapWarps:: @ 83891B8
- warp_def 1, 5, 4, 2, FortreeCity_PokemonCenter_1F
- warp_def 5, 1, 0, 0, SingleBattleColosseum
- warp_def 8, 1, 0, 0, TradeCenter
- warp_def 11, 1, 0, 0, RecordCorner
- warp_def 0, 0, 0, 0, DoubleBattleColosseum
+ warp_def 1, 5, 4, 2, MAP_FORTREE_CITY_POKEMON_CENTER_1F
+ warp_def 5, 1, 0, 0, MAP_SINGLE_BATTLE_COLOSSEUM
+ warp_def 8, 1, 0, 0, MAP_TRADE_CENTER
+ warp_def 11, 1, 0, 0, MAP_RECORD_CORNER
+ warp_def 0, 0, 0, 0, MAP_DOUBLE_BATTLE_COLOSSEUM
FortreeCity_PokemonCenter_2F_MapEvents:: @ 83891E0
map_events FortreeCity_PokemonCenter_2F_MapObjects, FortreeCity_PokemonCenter_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/GraniteCave_1F.inc b/data/maps/events/GraniteCave_1F.inc
index 760c1b0e9..ade38322f 100644
--- a/data/maps/events/GraniteCave_1F.inc
+++ b/data/maps/events/GraniteCave_1F.inc
@@ -1,12 +1,12 @@
GraniteCave_1F_MapObjects:: @ 838BF24
object_event 1, MAP_OBJ_GFX_HIKER, 0, 36, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, GraniteCave_1F_EventScript_15CBA7, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 17, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, GraniteCave_1F_EventScript_1B17A0, 1050, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 17, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, GraniteCave_1F_EventScript_1B17A0, FLAG_ITEM_GRANITE_CAVE_1F_1, 0, 0
GraniteCave_1F_MapWarps:: @ 838BF54
- warp_def 37, 12, 3, 0, Route106
- warp_def 35, 3, 3, 0, GraniteCave_B1F
- warp_def 17, 11, 3, 1, GraniteCave_B1F
- warp_def 5, 10, 3, 0, GraniteCave_StevensRoom
+ warp_def 37, 12, 3, 0, MAP_ROUTE106
+ warp_def 35, 3, 3, 0, MAP_GRANITE_CAVE_B1F
+ warp_def 17, 11, 3, 1, MAP_GRANITE_CAVE_B1F
+ warp_def 5, 10, 3, 0, MAP_GRANITE_CAVE_STEVENS_ROOM
GraniteCave_1F_MapEvents:: @ 838BF74
map_events GraniteCave_1F_MapObjects, GraniteCave_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/GraniteCave_B1F.inc b/data/maps/events/GraniteCave_B1F.inc
index 2bfd8257d..e50fd09af 100644
--- a/data/maps/events/GraniteCave_B1F.inc
+++ b/data/maps/events/GraniteCave_B1F.inc
@@ -1,14 +1,14 @@
GraniteCave_B1F_MapObjects:: @ 838BF88
- object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 15, 0, 21, 0, 3, 1, 0, 0, 0, 0, 0, 0, GraniteCave_B1F_EventScript_1B17AD, 1051, 0, 0
+ object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 15, 0, 21, 0, 3, 1, 0, 0, 0, 0, 0, 0, GraniteCave_B1F_EventScript_1B17AD, FLAG_ITEM_GRANITE_CAVE_B1F_1, 0, 0
GraniteCave_B1F_MapWarps:: @ 838BFA0
- warp_def 25, 13, 3, 1, GraniteCave_1F
- warp_def 4, 21, 3, 2, GraniteCave_1F
- warp_def 29, 13, 3, 0, GraniteCave_B2F
- warp_def 28, 21, 3, 1, GraniteCave_B2F
- warp_def 8, 5, 3, 2, GraniteCave_B2F
- warp_def 12, 3, 3, 3, GraniteCave_B2F
- warp_def 29, 2, 3, 4, GraniteCave_B2F
+ warp_def 25, 13, 3, 1, MAP_GRANITE_CAVE_1F
+ warp_def 4, 21, 3, 2, MAP_GRANITE_CAVE_1F
+ warp_def 29, 13, 3, 0, MAP_GRANITE_CAVE_B2F
+ warp_def 28, 21, 3, 1, MAP_GRANITE_CAVE_B2F
+ warp_def 8, 5, 3, 2, MAP_GRANITE_CAVE_B2F
+ warp_def 12, 3, 3, 3, MAP_GRANITE_CAVE_B2F
+ warp_def 29, 2, 3, 4, MAP_GRANITE_CAVE_B2F
GraniteCave_B1F_MapEvents:: @ 838BFD8
map_events GraniteCave_B1F_MapObjects, GraniteCave_B1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/GraniteCave_B2F.inc b/data/maps/events/GraniteCave_B2F.inc
index 158577482..c8a7c5554 100644
--- a/data/maps/events/GraniteCave_B2F.inc
+++ b/data/maps/events/GraniteCave_B2F.inc
@@ -1,20 +1,20 @@
GraniteCave_B2F_MapObjects:: @ 838BFEC
- object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, GraniteCave_B2F_EventScript_1B17BA, 1053, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 29, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, GraniteCave_B2F_EventScript_1B17C7, 1054, 0, 0
- object_event 3, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 5, 0, 14, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 17, 0, 0
- object_event 4, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 3, 0, 14, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 18, 0, 0
- object_event 5, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 2, 0, 16, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 19, 0, 0
- object_event 6, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 7, 0, 12, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 20, 0, 0
- object_event 7, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 4, 0, 22, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 21, 0, 0
- object_event 8, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 6, 0, 22, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 22, 0, 0
- object_event 9, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 3, 0, 21, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 23, 0, 0
+ object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, GraniteCave_B2F_EventScript_1B17BA, FLAG_ITEM_GRANITE_CAVE_B2F_1, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 29, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, GraniteCave_B2F_EventScript_1B17C7, FLAG_ITEM_GRANITE_CAVE_B2F_2, 0, 0
+ object_event 3, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 5, 0, 14, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_11, 0, 0
+ object_event 4, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 3, 0, 14, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_12, 0, 0
+ object_event 5, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 2, 0, 16, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_13, 0, 0
+ object_event 6, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 7, 0, 12, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_14, 0, 0
+ object_event 7, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 4, 0, 22, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_15, 0, 0
+ object_event 8, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 6, 0, 22, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_16, 0, 0
+ object_event 9, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 3, 0, 21, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_17, 0, 0
GraniteCave_B2F_MapWarps:: @ 838C0C4
- warp_def 29, 13, 3, 2, GraniteCave_B1F
- warp_def 28, 21, 3, 3, GraniteCave_B1F
- warp_def 8, 5, 3, 4, GraniteCave_B1F
- warp_def 12, 3, 3, 5, GraniteCave_B1F
- warp_def 29, 2, 3, 6, GraniteCave_B1F
+ warp_def 29, 13, 3, 2, MAP_GRANITE_CAVE_B1F
+ warp_def 28, 21, 3, 3, MAP_GRANITE_CAVE_B1F
+ warp_def 8, 5, 3, 4, MAP_GRANITE_CAVE_B1F
+ warp_def 12, 3, 3, 5, MAP_GRANITE_CAVE_B1F
+ warp_def 29, 2, 3, 6, MAP_GRANITE_CAVE_B1F
GraniteCave_B2F_MapBGEvents:: @ 838C0EC
bg_event 28, 6, 3, 7, 0, ITEM_EVERSTONE, 48, 0
diff --git a/data/maps/events/GraniteCave_StevensRoom.inc b/data/maps/events/GraniteCave_StevensRoom.inc
index 2e4d9cd30..efab4fa71 100644
--- a/data/maps/events/GraniteCave_StevensRoom.inc
+++ b/data/maps/events/GraniteCave_StevensRoom.inc
@@ -1,8 +1,8 @@
GraniteCave_StevensRoom_MapObjects:: @ 838C118
- object_event 1, MAP_OBJ_GFX_STEVEN, 0, 7, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, GraniteCave_StevensRoom_EventScript_15CBFA, 833, 0, 0
+ object_event 1, MAP_OBJ_GFX_STEVEN, 0, 7, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, GraniteCave_StevensRoom_EventScript_15CBFA, FLAG_HIDE_STEVEN_GRANITE_CAVE, 0, 0
GraniteCave_StevensRoom_MapWarps:: @ 838C130
- warp_def 7, 3, 3, 3, GraniteCave_1F
+ warp_def 7, 3, 3, 3, MAP_GRANITE_CAVE_1F
GraniteCave_StevensRoom_MapEvents:: @ 838C138
map_events GraniteCave_StevensRoom_MapObjects, GraniteCave_StevensRoom_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/InsideOfTruck.inc b/data/maps/events/InsideOfTruck.inc
index faf7a5274..3b177129a 100644
--- a/data/maps/events/InsideOfTruck.inc
+++ b/data/maps/events/InsideOfTruck.inc
@@ -4,9 +4,9 @@ InsideOfTruck_MapObjects:: @ 8391618
object_event 3, MAP_OBJ_GFX_MOVING_BOX, 0, 2, 0, 3, 0, 8, 8, 0, 0, 0, 0, 0, 0, InsideOfTruck_EventScript_15FC8B, 0, 0, 0
InsideOfTruck_MapWarps:: @ 8391660
- warp_def 4, 1, 0, 127, NONE
- warp_def 4, 2, 0, 127, NONE
- warp_def 4, 3, 0, 127, NONE
+ warp_def 4, 1, 0, 127, MAP_NONE
+ warp_def 4, 2, 0, 127, MAP_NONE
+ warp_def 4, 3, 0, 127, MAP_NONE
InsideOfTruck_MapCoordEvents:: @ 8391678
coord_event 3, 1, 3, 0, 0x4092, 0, 0, InsideOfTruck_EventScript_15FC29
diff --git a/data/maps/events/IslandCave.inc b/data/maps/events/IslandCave.inc
index a3fbc959a..94fbce914 100644
--- a/data/maps/events/IslandCave.inc
+++ b/data/maps/events/IslandCave.inc
@@ -1,10 +1,10 @@
IslandCave_MapObjects:: @ 838E674
- object_event 1, MAP_OBJ_GFX_REGICE, 0, 8, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, IslandCave_EventScript_15EF9D, 936, 0, 0
+ object_event 1, MAP_OBJ_GFX_REGICE, 0, 8, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, IslandCave_EventScript_15EF9D, FLAG_HIDE_REGICE, 0, 0
IslandCave_MapWarps:: @ 838E68C
- warp_def 8, 29, 3, 0, Route105
- warp_def 8, 20, 0, 2, IslandCave
- warp_def 8, 11, 3, 1, IslandCave
+ warp_def 8, 29, 3, 0, MAP_ROUTE105
+ warp_def 8, 20, 0, 2, MAP_ISLAND_CAVE
+ warp_def 8, 11, 3, 1, MAP_ISLAND_CAVE
IslandCave_MapBGEvents:: @ 838E6A4
bg_event 8, 20, 0, 0, 0, IslandCave_EventScript_15EF59
diff --git a/data/maps/events/JaggedPass.inc b/data/maps/events/JaggedPass.inc
index 245871e9b..654cbb9ae 100644
--- a/data/maps/events/JaggedPass.inc
+++ b/data/maps/events/JaggedPass.inc
@@ -1,14 +1,14 @@
JaggedPass_MapObjects:: @ 838C61C
object_event 1, MAP_OBJ_GFX_HIKER, 0, 8, 0, 18, 0, 3, 8, 0, 0, 1, 0, 3, 0, JaggedPass_EventScript_15D285, 0, 0, 0
object_event 2, MAP_OBJ_GFX_CAMPER, 0, 16, 0, 22, 0, 3, 14, 0, 0, 1, 0, 2, 0, JaggedPass_EventScript_15D2DA, 0, 0, 0
- object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 23, 0, 24, 0, 3, 1, 0, 0, 0, 0, 0, 0, JaggedPass_EventScript_1B17D4, 1070, 0, 0
+ object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 23, 0, 24, 0, 3, 1, 0, 0, 0, 0, 0, 0, JaggedPass_EventScript_1B17D4, FLAG_ITEM_JAGGED_PASS_1, 0, 0
object_event 4, MAP_OBJ_GFX_PICNICKER, 0, 13, 0, 35, 0, 3, 15, 17, 0, 1, 0, 3, 0, JaggedPass_EventScript_15D29C, 0, 0, 0
JaggedPass_MapWarps:: @ 838C67C
- warp_def 14, 40, 3, 2, Route112
- warp_def 15, 40, 3, 3, Route112
- warp_def 13, 5, 3, 2, MtChimney
- warp_def 14, 5, 3, 3, MtChimney
+ warp_def 14, 40, 3, 2, MAP_ROUTE112
+ warp_def 15, 40, 3, 3, MAP_ROUTE112
+ warp_def 13, 5, 3, 2, MAP_MT_CHIMNEY
+ warp_def 14, 5, 3, 3, MAP_MT_CHIMNEY
JaggedPass_MapCoordEvents:: @ 838C69C
coord_event 13, 15, 3, 0, 2, 0, 0, 0x0
diff --git a/data/maps/events/LavaridgeTown.inc b/data/maps/events/LavaridgeTown.inc
index 47dd5ab4a..1c63eb83e 100644
--- a/data/maps/events/LavaridgeTown.inc
+++ b/data/maps/events/LavaridgeTown.inc
@@ -5,17 +5,17 @@ LavaridgeTown_MapObjects:: @ 8380C78
object_event 4, MAP_OBJ_GFX_LITTLE_GIRL_1, 0, 10, 0, 13, 0, 3, 3, 32, 0, 0, 0, 0, 0, LavaridgeTown_EventScript_14E736, 0, 0, 0
object_event 5, MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN, 0, 4, 0, 4, 0, 3, 18, 0, 0, 0, 0, 0, 0, LavaridgeTown_EventScript_14E73F, 0, 0, 0
object_event 6, MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN, 0, 5, 0, 4, 0, 3, 17, 0, 0, 0, 0, 0, 0, LavaridgeTown_EventScript_14E748, 0, 0, 0
- object_event 7, 243, 0, 6, 0, 16, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0x0, 930, 0, 0
- object_event 8, 240, 0, 12, 0, 15, 0, 0, 8, 0, 0, 0, 0, 0, 0, LavaridgeTown_EventScript_14E575, 929, 0, 0
+ object_event 7, 243, 0, 6, 0, 16, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_RIVAL_LAVARIDGE_2, 0, 0
+ object_event 8, 240, 0, 12, 0, 15, 0, 0, 8, 0, 0, 0, 0, 0, 0, LavaridgeTown_EventScript_14E575, FLAG_HIDE_RIVAL_LAVARIDGE_1, 0, 0
object_event 9, MAP_OBJ_GFX_OLD_WOMAN_1, 0, 4, 0, 7, 0, 3, 8, 17, 0, 0, 0, 0, 0, LavaridgeTown_EventScript_14E75A, 0, 0, 0
LavaridgeTown_MapWarps:: @ 8380D50
- warp_def 12, 15, 0, 0, LavaridgeTown_HerbShop
- warp_def 5, 15, 0, 0, LavaridgeTown_Gym_1F
- warp_def 15, 5, 0, 0, LavaridgeTown_Mart
- warp_def 9, 6, 0, 0, LavaridgeTown_PokemonCenter_1F
- warp_def 16, 15, 0, 0, LavaridgeTown_House
- warp_def 9, 2, 3, 3, LavaridgeTown_PokemonCenter_1F
+ warp_def 12, 15, 0, 0, MAP_LAVARIDGE_TOWN_HERB_SHOP
+ warp_def 5, 15, 0, 0, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 15, 5, 0, 0, MAP_LAVARIDGE_TOWN_MART
+ warp_def 9, 6, 0, 0, MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F
+ warp_def 16, 15, 0, 0, MAP_LAVARIDGE_TOWN_HOUSE
+ warp_def 9, 2, 3, 3, MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F
LavaridgeTown_MapCoordEvents:: @ 8380D80
coord_event 6, 3, 3, 0, 0, 0, 0, LavaridgeTown_EventScript_14E710
diff --git a/data/maps/events/LavaridgeTown_Gym_1F.inc b/data/maps/events/LavaridgeTown_Gym_1F.inc
index add699f5d..0df412932 100644
--- a/data/maps/events/LavaridgeTown_Gym_1F.inc
+++ b/data/maps/events/LavaridgeTown_Gym_1F.inc
@@ -8,28 +8,28 @@ LavaridgeTown_Gym_1F_MapObjects:: @ 838625C
object_event 7, MAP_OBJ_GFX_MAN_6, 0, 6, 0, 2, 0, 3, 8, 0, 0, 3, 0, 1, 0, LavaridgeTown_Gym_1F_EventScript_153808, 0, 0, 0
LavaridgeTown_Gym_1F_MapWarps:: @ 8386304
- warp_def 8, 23, 3, 1, LavaridgeTown
- warp_def 9, 23, 3, 1, LavaridgeTown
- warp_def 3, 21, 3, 0, LavaridgeTown_Gym_B1F
- warp_def 1, 14, 3, 2, LavaridgeTown_Gym_B1F
- warp_def 6, 14, 3, 4, LavaridgeTown_Gym_B1F
- warp_def 1, 6, 3, 3, LavaridgeTown_Gym_B1F
- warp_def 9, 2, 3, 1, LavaridgeTown_Gym_B1F
- warp_def 6, 20, 3, 5, LavaridgeTown_Gym_B1F
- warp_def 0, 23, 3, 6, LavaridgeTown_Gym_B1F
- warp_def 0, 17, 3, 7, LavaridgeTown_Gym_B1F
- warp_def 4, 17, 3, 8, LavaridgeTown_Gym_B1F
- warp_def 0, 11, 3, 9, LavaridgeTown_Gym_B1F
- warp_def 4, 12, 3, 10, LavaridgeTown_Gym_B1F
- warp_def 4, 9, 3, 11, LavaridgeTown_Gym_B1F
- warp_def 0, 2, 3, 12, LavaridgeTown_Gym_B1F
- warp_def 4, 6, 3, 13, LavaridgeTown_Gym_B1F
- warp_def 4, 2, 3, 14, LavaridgeTown_Gym_B1F
- warp_def 10, 19, 3, 15, LavaridgeTown_Gym_B1F
- warp_def 10, 14, 3, 16, LavaridgeTown_Gym_B1F
- warp_def 6, 6, 3, 17, LavaridgeTown_Gym_B1F
- warp_def 6, 2, 3, 18, LavaridgeTown_Gym_B1F
- warp_def 10, 6, 3, 19, LavaridgeTown_Gym_B1F
+ warp_def 8, 23, 3, 1, MAP_LAVARIDGE_TOWN
+ warp_def 9, 23, 3, 1, MAP_LAVARIDGE_TOWN
+ warp_def 3, 21, 3, 0, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 1, 14, 3, 2, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 6, 14, 3, 4, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 1, 6, 3, 3, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 9, 2, 3, 1, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 6, 20, 3, 5, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 0, 23, 3, 6, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 0, 17, 3, 7, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 4, 17, 3, 8, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 0, 11, 3, 9, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 4, 12, 3, 10, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 4, 9, 3, 11, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 0, 2, 3, 12, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 4, 6, 3, 13, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 4, 2, 3, 14, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 10, 19, 3, 15, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 10, 14, 3, 16, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 6, 6, 3, 17, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 6, 2, 3, 18, MAP_LAVARIDGE_TOWN_GYM_B1F
+ warp_def 10, 6, 3, 19, MAP_LAVARIDGE_TOWN_GYM_B1F
LavaridgeTown_Gym_1F_MapBGEvents:: @ 83863B4
bg_event 6, 17, 0, 1, 0, LavaridgeTown_Gym_1F_EventScript_153878
diff --git a/data/maps/events/LavaridgeTown_Gym_B1F.inc b/data/maps/events/LavaridgeTown_Gym_B1F.inc
index 4cff944bc..9492194a8 100644
--- a/data/maps/events/LavaridgeTown_Gym_B1F.inc
+++ b/data/maps/events/LavaridgeTown_Gym_B1F.inc
@@ -1,24 +1,24 @@
LavaridgeTown_Gym_B1F_MapWarps:: @ 83863E0
- warp_def 3, 21, 3, 2, LavaridgeTown_Gym_1F
- warp_def 9, 2, 3, 6, LavaridgeTown_Gym_1F
- warp_def 1, 14, 3, 3, LavaridgeTown_Gym_1F
- warp_def 1, 6, 3, 5, LavaridgeTown_Gym_1F
- warp_def 6, 14, 3, 4, LavaridgeTown_Gym_1F
- warp_def 6, 20, 3, 7, LavaridgeTown_Gym_1F
- warp_def 0, 23, 3, 8, LavaridgeTown_Gym_1F
- warp_def 0, 17, 3, 9, LavaridgeTown_Gym_1F
- warp_def 4, 17, 3, 10, LavaridgeTown_Gym_1F
- warp_def 0, 11, 3, 11, LavaridgeTown_Gym_1F
- warp_def 4, 12, 3, 12, LavaridgeTown_Gym_1F
- warp_def 4, 9, 3, 13, LavaridgeTown_Gym_1F
- warp_def 0, 2, 3, 14, LavaridgeTown_Gym_1F
- warp_def 4, 6, 3, 15, LavaridgeTown_Gym_1F
- warp_def 4, 2, 3, 16, LavaridgeTown_Gym_1F
- warp_def 10, 18, 3, 17, LavaridgeTown_Gym_1F
- warp_def 10, 14, 3, 18, LavaridgeTown_Gym_1F
- warp_def 6, 6, 3, 19, LavaridgeTown_Gym_1F
- warp_def 6, 2, 3, 20, LavaridgeTown_Gym_1F
- warp_def 10, 6, 3, 21, LavaridgeTown_Gym_1F
+ warp_def 3, 21, 3, 2, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 9, 2, 3, 6, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 1, 14, 3, 3, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 1, 6, 3, 5, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 6, 14, 3, 4, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 6, 20, 3, 7, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 0, 23, 3, 8, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 0, 17, 3, 9, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 4, 17, 3, 10, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 0, 11, 3, 11, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 4, 12, 3, 12, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 4, 9, 3, 13, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 0, 2, 3, 14, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 4, 6, 3, 15, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 4, 2, 3, 16, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 10, 18, 3, 17, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 10, 14, 3, 18, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 6, 6, 3, 19, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 6, 2, 3, 20, MAP_LAVARIDGE_TOWN_GYM_1F
+ warp_def 10, 6, 3, 21, MAP_LAVARIDGE_TOWN_GYM_1F
LavaridgeTown_Gym_B1F_MapEvents:: @ 8386480
map_events 0x0, LavaridgeTown_Gym_B1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LavaridgeTown_HerbShop.inc b/data/maps/events/LavaridgeTown_HerbShop.inc
index cb04b19d4..8223a30c3 100644
--- a/data/maps/events/LavaridgeTown_HerbShop.inc
+++ b/data/maps/events/LavaridgeTown_HerbShop.inc
@@ -4,8 +4,8 @@ LavaridgeTown_HerbShop_MapObjects:: @ 83861F0
object_event 3, MAP_OBJ_GFX_OLD_MAN_1, 0, 9, 0, 3, 0, 3, 5, 17, 0, 0, 0, 0, 0, LavaridgeTown_HerbShop_EventScript_15364C, 0, 0, 0
LavaridgeTown_HerbShop_MapWarps:: @ 8386238
- warp_def 3, 7, 0, 0, LavaridgeTown
- warp_def 4, 7, 0, 0, LavaridgeTown
+ warp_def 3, 7, 0, 0, MAP_LAVARIDGE_TOWN
+ warp_def 4, 7, 0, 0, MAP_LAVARIDGE_TOWN
LavaridgeTown_HerbShop_MapEvents:: @ 8386248
map_events LavaridgeTown_HerbShop_MapObjects, LavaridgeTown_HerbShop_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LavaridgeTown_House.inc b/data/maps/events/LavaridgeTown_House.inc
index feb226cd0..771b9669b 100644
--- a/data/maps/events/LavaridgeTown_House.inc
+++ b/data/maps/events/LavaridgeTown_House.inc
@@ -3,8 +3,8 @@ LavaridgeTown_House_MapObjects:: @ 8386494
object_event 2, MAP_OBJ_GFX_ZIGZAGOON, 0, 6, 0, 6, 0, 3, 1, 17, 0, 0, 0, 0, 0, LavaridgeTown_House_EventScript_1538B7, 0, 0, 0
LavaridgeTown_House_MapWarps:: @ 83864C4
- warp_def 3, 7, 0, 4, LavaridgeTown
- warp_def 4, 7, 0, 4, LavaridgeTown
+ warp_def 3, 7, 0, 4, MAP_LAVARIDGE_TOWN
+ warp_def 4, 7, 0, 4, MAP_LAVARIDGE_TOWN
LavaridgeTown_House_MapEvents:: @ 83864D4
map_events LavaridgeTown_House_MapObjects, LavaridgeTown_House_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LavaridgeTown_Mart.inc b/data/maps/events/LavaridgeTown_Mart.inc
index 8a07501f7..ff184b78e 100644
--- a/data/maps/events/LavaridgeTown_Mart.inc
+++ b/data/maps/events/LavaridgeTown_Mart.inc
@@ -4,8 +4,8 @@ LavaridgeTown_Mart_MapObjects:: @ 83864E8
object_event 3, MAP_OBJ_GFX_OLD_WOMAN_2, 0, 9, 0, 5, 0, 3, 10, 0, 0, 0, 0, 0, 0, LavaridgeTown_Mart_EventScript_153903, 0, 0, 0
LavaridgeTown_Mart_MapWarps:: @ 8386530
- warp_def 3, 7, 0, 2, LavaridgeTown
- warp_def 4, 7, 0, 2, LavaridgeTown
+ warp_def 3, 7, 0, 2, MAP_LAVARIDGE_TOWN
+ warp_def 4, 7, 0, 2, MAP_LAVARIDGE_TOWN
LavaridgeTown_Mart_MapEvents:: @ 8386540
map_events LavaridgeTown_Mart_MapObjects, LavaridgeTown_Mart_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LavaridgeTown_PokemonCenter_1F.inc b/data/maps/events/LavaridgeTown_PokemonCenter_1F.inc
index dac3d4a72..5e529bb1e 100644
--- a/data/maps/events/LavaridgeTown_PokemonCenter_1F.inc
+++ b/data/maps/events/LavaridgeTown_PokemonCenter_1F.inc
@@ -5,10 +5,10 @@ LavaridgeTown_PokemonCenter_1F_MapObjects:: @ 8386554
object_event 4, MAP_OBJ_GFX_GENTLEMAN, 0, 1, 0, 3, 0, 3, 10, 0, 0, 0, 0, 0, 0, LavaridgeTown_PokemonCenter_1F_EventScript_15393B, 0, 0, 0
LavaridgeTown_PokemonCenter_1F_MapWarps:: @ 83865B4
- warp_def 7, 8, 3, 3, LavaridgeTown
- warp_def 6, 8, 3, 3, LavaridgeTown
- warp_def 1, 6, 4, 0, LavaridgeTown_PokemonCenter_2F
- warp_def 2, 1, 0, 5, LavaridgeTown
+ warp_def 7, 8, 3, 3, MAP_LAVARIDGE_TOWN
+ warp_def 6, 8, 3, 3, MAP_LAVARIDGE_TOWN
+ warp_def 1, 6, 4, 0, MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F
+ warp_def 2, 1, 0, 5, MAP_LAVARIDGE_TOWN
LavaridgeTown_PokemonCenter_1F_MapEvents:: @ 83865D4
map_events LavaridgeTown_PokemonCenter_1F_MapObjects, LavaridgeTown_PokemonCenter_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LavaridgeTown_PokemonCenter_2F.inc b/data/maps/events/LavaridgeTown_PokemonCenter_2F.inc
index 3ef0517b1..39035ba87 100644
--- a/data/maps/events/LavaridgeTown_PokemonCenter_2F.inc
+++ b/data/maps/events/LavaridgeTown_PokemonCenter_2F.inc
@@ -4,11 +4,11 @@ LavaridgeTown_PokemonCenter_2F_MapObjects:: @ 83865E8
object_event 3, MAP_OBJ_GFX_TEALA, 0, 7, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, LavaridgeTown_PokemonCenter_2F_EventScript_15395A, 0, 0, 0
LavaridgeTown_PokemonCenter_2F_MapWarps:: @ 8386630
- warp_def 1, 5, 4, 2, LavaridgeTown_PokemonCenter_1F
- warp_def 5, 1, 0, 0, SingleBattleColosseum
- warp_def 8, 1, 0, 0, TradeCenter
- warp_def 11, 1, 0, 0, RecordCorner
- warp_def 0, 0, 0, 0, DoubleBattleColosseum
+ warp_def 1, 5, 4, 2, MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F
+ warp_def 5, 1, 0, 0, MAP_SINGLE_BATTLE_COLOSSEUM
+ warp_def 8, 1, 0, 0, MAP_TRADE_CENTER
+ warp_def 11, 1, 0, 0, MAP_RECORD_CORNER
+ warp_def 0, 0, 0, 0, MAP_DOUBLE_BATTLE_COLOSSEUM
LavaridgeTown_PokemonCenter_2F_MapEvents:: @ 8386658
map_events LavaridgeTown_PokemonCenter_2F_MapObjects, LavaridgeTown_PokemonCenter_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity.inc b/data/maps/events/LilycoveCity.inc
index a356e2b9e..8e53d3544 100644
--- a/data/maps/events/LilycoveCity.inc
+++ b/data/maps/events/LilycoveCity.inc
@@ -8,31 +8,31 @@ LilycoveCity_MapObjects:: @ 838016C
object_event 7, MAP_OBJ_GFX_OLD_MAN_1, 0, 35, 0, 37, 0, 5, 8, 0, 0, 0, 0, 0, 0, LilycoveCity_EventScript_14CC36, 0, 0, 0
object_event 8, MAP_OBJ_GFX_OLD_WOMAN_1, 0, 34, 0, 37, 0, 5, 8, 0, 0, 0, 0, 0, 0, LilycoveCity_EventScript_14CC3F, 0, 0, 0
object_event 9, MAP_OBJ_GFX_OLD_MAN_1, 0, 57, 0, 17, 0, 3, 1, 0, 0, 0, 0, 0, 0, LilycoveCity_EventScript_14CC48, 0, 0, 0
- object_event 10, 241, 0, 73, 0, 15, 0, 3, 10, 0, 0, 0, 0, 0, 0, LilycoveCity_EventScript_14CCE5, 852, 0, 0
- object_event 11, MAP_OBJ_GFX_ITEM_BALL, 0, 61, 0, 36, 0, 5, 1, 0, 0, 0, 0, 0, 0, LilycoveCity_EventScript_1B1738, 1042, 0, 0
- object_event 12, 241, 0, 43, 0, 18, 0, 3, 5, 1, 0, 0, 0, 0, 0, LilycoveCity_EventScript_14CD3D, 852, 0, 0
- object_event 13, 241, 0, 46, 0, 12, 0, 3, 9, 0, 0, 0, 0, 0, 0, LilycoveCity_EventScript_14CD22, 852, 0, 0
- object_event 14, 241, 0, 45, 0, 12, 0, 3, 10, 0, 0, 0, 0, 0, 0, LilycoveCity_EventScript_14CD2B, 852, 0, 0
- object_event 15, 241, 0, 38, 0, 9, 0, 5, 9, 0, 0, 0, 0, 0, 0, LilycoveCity_EventScript_14CD34, 852, 0, 0
+ object_event 10, 241, 0, 73, 0, 15, 0, 3, 10, 0, 0, 0, 0, 0, 0, LilycoveCity_EventScript_14CCE5, FLAG_HIDE_GRUNTS_LILYCOVE, 0, 0
+ object_event 11, MAP_OBJ_GFX_ITEM_BALL, 0, 61, 0, 36, 0, 5, 1, 0, 0, 0, 0, 0, 0, LilycoveCity_EventScript_1B1738, FLAG_ITEM_LILYCOVE_1, 0, 0
+ object_event 12, 241, 0, 43, 0, 18, 0, 3, 5, 1, 0, 0, 0, 0, 0, LilycoveCity_EventScript_14CD3D, FLAG_HIDE_GRUNTS_LILYCOVE, 0, 0
+ object_event 13, 241, 0, 46, 0, 12, 0, 3, 9, 0, 0, 0, 0, 0, 0, LilycoveCity_EventScript_14CD22, FLAG_HIDE_GRUNTS_LILYCOVE, 0, 0
+ object_event 14, 241, 0, 45, 0, 12, 0, 3, 10, 0, 0, 0, 0, 0, 0, LilycoveCity_EventScript_14CD2B, FLAG_HIDE_GRUNTS_LILYCOVE, 0, 0
+ object_event 15, 241, 0, 38, 0, 9, 0, 5, 9, 0, 0, 0, 0, 0, 0, LilycoveCity_EventScript_14CD34, FLAG_HIDE_GRUNTS_LILYCOVE, 0, 0
object_event 16, MAP_OBJ_GFX_GENTLEMAN, 0, 50, 0, 7, 0, 5, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_EventScript_14CB74, 0, 0, 0
- object_event 17, 240, 0, 27, 0, 7, 0, 5, 8, 17, 0, 0, 0, 0, 0, LilycoveCity_EventScript_14CD46, 971, 0, 0
+ object_event 17, 240, 0, 27, 0, 7, 0, 5, 8, 17, 0, 0, 0, 0, 0, LilycoveCity_EventScript_14CD46, FLAG_HIDE_RIVAL_LILYCOVE_MART, 0, 0
LilycoveCity_MapWarps:: @ 8380304
- warp_def 27, 6, 0, 0, LilycoveCity_DepartmentStore_1F
- warp_def 37, 24, 0, 0, LilycoveCity_CoveLilyMotel_1F
- warp_def 24, 14, 0, 0, LilycoveCity_PokemonCenter_1F
- warp_def 11, 5, 0, 0, LilycoveCity_LilycoveMuseum_1F
- warp_def 23, 24, 0, 0, LilycoveCity_ContestLobby
- warp_def 39, 14, 0, 1, LilycoveCity_PokemonTrainerFanClub
- warp_def 70, 5, 1, 0, AquaHideout_1F
- warp_def 36, 6, 0, 0, LilycoveCity_MoveDeletersHouse
- warp_def 42, 6, 0, 0, LilycoveCity_House1
- warp_def 55, 15, 0, 0, LilycoveCity_House2
- warp_def 11, 22, 0, 0, LilycoveCity_House3
- warp_def 12, 14, 0, 0, LilycoveCity_House4
- warp_def 12, 32, 0, 0, LilycoveCity_Harbor
- warp_def 12, 5, 0, 1, LilycoveCity_LilycoveMuseum_1F
- warp_def 71, 5, 1, 0, MagmaHideout_1F
+ warp_def 27, 6, 0, 0, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F
+ warp_def 37, 24, 0, 0, MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F
+ warp_def 24, 14, 0, 0, MAP_LILYCOVE_CITY_POKEMON_CENTER_1F
+ warp_def 11, 5, 0, 0, MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F
+ warp_def 23, 24, 0, 0, MAP_LILYCOVE_CITY_CONTEST_LOBBY
+ warp_def 39, 14, 0, 1, MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB
+ warp_def 70, 5, 1, 0, MAP_AQUA_HIDEOUT_1F
+ warp_def 36, 6, 0, 0, MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE
+ warp_def 42, 6, 0, 0, MAP_LILYCOVE_CITY_HOUSE1
+ warp_def 55, 15, 0, 0, MAP_LILYCOVE_CITY_HOUSE2
+ warp_def 11, 22, 0, 0, MAP_LILYCOVE_CITY_HOUSE3
+ warp_def 12, 14, 0, 0, MAP_LILYCOVE_CITY_HOUSE4
+ warp_def 12, 32, 0, 0, MAP_LILYCOVE_CITY_HARBOR
+ warp_def 12, 5, 0, 1, MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F
+ warp_def 71, 5, 1, 0, MAP_MAGMA_HIDEOUT_1F
LilycoveCity_MapBGEvents:: @ 838037C
bg_event 19, 7, 0, 0, 0, LilycoveCity_EventScript_14CC82
diff --git a/data/maps/events/LilycoveCity_ContestHall.inc b/data/maps/events/LilycoveCity_ContestHall.inc
index 4246afd33..307f23974 100644
--- a/data/maps/events/LilycoveCity_ContestHall.inc
+++ b/data/maps/events/LilycoveCity_ContestHall.inc
@@ -33,10 +33,10 @@ LilycoveCity_ContestHall_MapObjects:: @ 8389A18
object_event 32, MAP_OBJ_GFX_SAILOR, 0, 23, 0, 26, 0, 3, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_1590B6, 0, 0, 0
LilycoveCity_ContestHall_MapWarps:: @ 8389D18
- warp_def 19, 32, 0, 2, LilycoveCity_ContestLobby
- warp_def 30, 32, 0, 3, LilycoveCity_ContestLobby
- warp_def 20, 32, 0, 2, LilycoveCity_ContestLobby
- warp_def 31, 32, 0, 3, LilycoveCity_ContestLobby
+ warp_def 19, 32, 0, 2, MAP_LILYCOVE_CITY_CONTEST_LOBBY
+ warp_def 30, 32, 0, 3, MAP_LILYCOVE_CITY_CONTEST_LOBBY
+ warp_def 20, 32, 0, 2, MAP_LILYCOVE_CITY_CONTEST_LOBBY
+ warp_def 31, 32, 0, 3, MAP_LILYCOVE_CITY_CONTEST_LOBBY
LilycoveCity_ContestHall_MapBGEvents:: @ 8389D38
bg_event 27, 16, 0, 0, 0, LilycoveCity_ContestHall_EventScript_15930C
diff --git a/data/maps/events/LilycoveCity_ContestLobby.inc b/data/maps/events/LilycoveCity_ContestLobby.inc
index 2e41e6e49..ccbc645b2 100644
--- a/data/maps/events/LilycoveCity_ContestLobby.inc
+++ b/data/maps/events/LilycoveCity_ContestLobby.inc
@@ -2,23 +2,23 @@ LilycoveCity_ContestLobby_MapObjects:: @ 838984C
object_event 1, MAP_OBJ_GFX_TEALA, 0, 6, 0, 2, 0, 3, 8, 17, 0, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_158EB0, 0, 0, 0
object_event 2, MAP_OBJ_GFX_TEALA, 0, 7, 0, 2, 0, 3, 8, 17, 0, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_158B85, 0, 0, 0
object_event 3, MAP_OBJ_GFX_OLD_MAN_1, 0, 17, 0, 9, 0, 3, 10, 0, 0, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_1B77AB, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_ARTIST, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, 774, 0, 0
+ object_event 4, MAP_OBJ_GFX_ARTIST, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_LILYCOVE_CONTEST_ATTENDENT_1, 0, 0
object_event 5, MAP_OBJ_GFX_BLACK_BELT, 0, 14, 0, 6, 0, 3, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_15901E, 0, 0, 0
object_event 6, MAP_OBJ_GFX_GIRL_2, 0, 3, 0, 10, 0, 3, 2, 34, 0, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_159027, 0, 0, 0
object_event 7, MAP_OBJ_GFX_ARTIST, 0, 20, 0, 2, 0, 3, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_159042, 0, 0, 0
- object_event 8, MAP_OBJ_GFX_REPORTER_M, 0, 8, 0, 10, 0, 3, 9, 0, 0, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_1AE0B6, 802, 0, 0
+ object_event 8, MAP_OBJ_GFX_REPORTER_M, 0, 8, 0, 10, 0, 3, 9, 0, 0, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_1AE0B6, FLAG_HIDE_CONTEST_REPORTER_LILYCOVE, 0, 0
object_event 9, MAP_OBJ_GFX_BOY_1, 0, 18, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_15907B, 0, 0, 0
object_event 10, MAP_OBJ_GFX_GIRL_1, 0, 19, 0, 9, 0, 3, 9, 0, 0, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_159084, 0, 0, 0
- object_event 11, MAP_OBJ_GFX_ARTIST, 0, 13, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0x0, 895, 0, 0
+ object_event 11, MAP_OBJ_GFX_ARTIST, 0, 13, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_ARTIST_LILCOVE_CONTEST, 0, 0
object_event 12, MAP_OBJ_GFX_FISHERMAN, 0, 13, 0, 10, 0, 3, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_159054, 0, 0, 0
object_event 13, MAP_OBJ_GFX_FAT_MAN, 0, 1, 0, 6, 0, 3, 10, 0, 0, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_15904B, 0, 0, 0
object_event 14, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 7, 0, 7, 0, 3, 3, 16, 0, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_15905D, 0, 0, 0
LilycoveCity_ContestLobby_MapWarps:: @ 838999C
- warp_def 6, 11, 0, 4, LilycoveCity
- warp_def 7, 11, 0, 4, LilycoveCity
- warp_def 1, 1, 0, 0, LilycoveCity_ContestHall
- warp_def 13, 1, 0, 1, LilycoveCity_ContestHall
+ warp_def 6, 11, 0, 4, MAP_LILYCOVE_CITY
+ warp_def 7, 11, 0, 4, MAP_LILYCOVE_CITY
+ warp_def 1, 1, 0, 0, MAP_LILYCOVE_CITY_CONTEST_HALL
+ warp_def 13, 1, 0, 1, MAP_LILYCOVE_CITY_CONTEST_HALL
LilycoveCity_ContestLobby_MapBGEvents:: @ 83899BC
bg_event 18, 5, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_1B7835
diff --git a/data/maps/events/LilycoveCity_CoveLilyMotel_1F.inc b/data/maps/events/LilycoveCity_CoveLilyMotel_1F.inc
index 31bd1c94f..ec57d4ba8 100644
--- a/data/maps/events/LilycoveCity_CoveLilyMotel_1F.inc
+++ b/data/maps/events/LilycoveCity_CoveLilyMotel_1F.inc
@@ -2,9 +2,9 @@ LilycoveCity_CoveLilyMotel_1F_MapObjects:: @ 8389464
object_event 1, MAP_OBJ_GFX_MAN_1, 0, 10, 0, 3, 0, 3, 7, 0, 0, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_1F_EventScript_1582C5, 0, 0, 0
LilycoveCity_CoveLilyMotel_1F_MapWarps:: @ 838947C
- warp_def 5, 8, 0, 1, LilycoveCity
- warp_def 6, 8, 0, 1, LilycoveCity
- warp_def 2, 1, 0, 0, LilycoveCity_CoveLilyMotel_2F
+ warp_def 5, 8, 0, 1, MAP_LILYCOVE_CITY
+ warp_def 6, 8, 0, 1, MAP_LILYCOVE_CITY
+ warp_def 2, 1, 0, 0, MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F
LilycoveCity_CoveLilyMotel_1F_MapCoordEvents:: @ 8389494
coord_event 10, 2, 3, 0, 0x4001, 0, 0, LilycoveCity_CoveLilyMotel_1F_EventScript_15834D
diff --git a/data/maps/events/LilycoveCity_CoveLilyMotel_2F.inc b/data/maps/events/LilycoveCity_CoveLilyMotel_2F.inc
index 2117774f0..32c1181de 100644
--- a/data/maps/events/LilycoveCity_CoveLilyMotel_2F.inc
+++ b/data/maps/events/LilycoveCity_CoveLilyMotel_2F.inc
@@ -1,13 +1,13 @@
LilycoveCity_CoveLilyMotel_2F_MapObjects:: @ 83894B8
- object_event 1, MAP_OBJ_GFX_MAN_4, 0, 4, 0, 6, 0, 3, 9, 0, 0, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_1583A1, 925, 0, 0
- object_event 2, MAP_OBJ_GFX_SCIENTIST_1, 0, 1, 0, 4, 0, 3, 10, 0, 0, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_1583F7, 925, 0, 0
- object_event 3, MAP_OBJ_GFX_FAT_MAN, 0, 7, 0, 7, 0, 3, 10, 0, 0, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_158400, 925, 0, 0
- object_event 4, MAP_OBJ_GFX_MAN_5, 0, 10, 0, 3, 0, 3, 9, 0, 0, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_1583EE, 925, 0, 0
- object_event 5, MAP_OBJ_GFX_BOY_5, 0, 7, 0, 3, 0, 3, 8, 17, 0, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_158412, 925, 0, 0
- object_event 6, MAP_OBJ_GFX_WOMAN_3, 0, 4, 0, 4, 0, 3, 9, 17, 0, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_158409, 925, 0, 0
+ object_event 1, MAP_OBJ_GFX_MAN_4, 0, 4, 0, 6, 0, 3, 9, 0, 0, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_1583A1, FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE, 0, 0
+ object_event 2, MAP_OBJ_GFX_SCIENTIST_1, 0, 1, 0, 4, 0, 3, 10, 0, 0, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_1583F7, FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE, 0, 0
+ object_event 3, MAP_OBJ_GFX_FAT_MAN, 0, 7, 0, 7, 0, 3, 10, 0, 0, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_158400, FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE, 0, 0
+ object_event 4, MAP_OBJ_GFX_MAN_5, 0, 10, 0, 3, 0, 3, 9, 0, 0, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_1583EE, FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE, 0, 0
+ object_event 5, MAP_OBJ_GFX_BOY_5, 0, 7, 0, 3, 0, 3, 8, 17, 0, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_158412, FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE, 0, 0
+ object_event 6, MAP_OBJ_GFX_WOMAN_3, 0, 4, 0, 4, 0, 3, 9, 17, 0, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_158409, FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE, 0, 0
LilycoveCity_CoveLilyMotel_2F_MapWarps:: @ 8389548
- warp_def 2, 1, 0, 2, LilycoveCity_CoveLilyMotel_1F
+ warp_def 2, 1, 0, 2, MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F
LilycoveCity_CoveLilyMotel_2F_MapEvents:: @ 8389550
map_events LilycoveCity_CoveLilyMotel_2F_MapObjects, LilycoveCity_CoveLilyMotel_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity_DepartmentStoreElevator.inc b/data/maps/events/LilycoveCity_DepartmentStoreElevator.inc
index 896a96649..eea28d624 100644
--- a/data/maps/events/LilycoveCity_DepartmentStoreElevator.inc
+++ b/data/maps/events/LilycoveCity_DepartmentStoreElevator.inc
@@ -2,8 +2,8 @@ LilycoveCity_DepartmentStoreElevator_MapObjects:: @ 838A624
object_event 1, MAP_OBJ_GFX_TEALA, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, LilycoveCity_DepartmentStoreElevator_EventScript_15A39C, 0, 0, 0
LilycoveCity_DepartmentStoreElevator_MapWarps:: @ 838A63C
- warp_def 1, 5, 3, 127, NONE
- warp_def 2, 5, 3, 127, NONE
+ warp_def 1, 5, 3, 127, MAP_NONE
+ warp_def 2, 5, 3, 127, MAP_NONE
LilycoveCity_DepartmentStoreElevator_MapEvents:: @ 838A64C
map_events LilycoveCity_DepartmentStoreElevator_MapObjects, LilycoveCity_DepartmentStoreElevator_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity_DepartmentStoreRooftop.inc b/data/maps/events/LilycoveCity_DepartmentStoreRooftop.inc
index ac72a87c1..c5f094b3f 100644
--- a/data/maps/events/LilycoveCity_DepartmentStoreRooftop.inc
+++ b/data/maps/events/LilycoveCity_DepartmentStoreRooftop.inc
@@ -1,10 +1,10 @@
LilycoveCity_DepartmentStoreRooftop_MapObjects:: @ 838A5A8
object_event 1, MAP_OBJ_GFX_MAN_2, 0, 4, 0, 4, 0, 3, 7, 0, 0, 0, 0, 0, 0, LilycoveCity_DepartmentStoreRooftop_EventScript_15A1A0, 0, 0, 0
object_event 2, MAP_OBJ_GFX_MAN_4, 0, 7, 0, 5, 0, 3, 5, 1, 0, 0, 0, 0, 0, LilycoveCity_DepartmentStoreRooftop_EventScript_15A1C4, 0, 0, 0
- object_event 3, MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN, 0, 6, 0, 1, 0, 3, 8, 17, 0, 0, 0, 0, 0, LilycoveCity_DepartmentStoreRooftop_EventScript_15A167, 962, 0, 0
+ object_event 3, MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN, 0, 6, 0, 1, 0, 3, 8, 17, 0, 0, 0, 0, 0, LilycoveCity_DepartmentStoreRooftop_EventScript_15A167, FLAG_HIDE_ROOFTOP_LADY_LILYCOVE_MART, 0, 0
LilycoveCity_DepartmentStoreRooftop_MapWarps:: @ 838A5F0
- warp_def 13, 3, 0, 2, LilycoveCity_DepartmentStore_5F
+ warp_def 13, 3, 0, 2, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F
LilycoveCity_DepartmentStoreRooftop_MapBGEvents:: @ 838A5F8
bg_event 9, 1, 0, 0, 0, LilycoveCity_DepartmentStoreRooftop_EventScript_15A1CD
diff --git a/data/maps/events/LilycoveCity_DepartmentStore_1F.inc b/data/maps/events/LilycoveCity_DepartmentStore_1F.inc
index 28bc93a75..b9104a1ee 100644
--- a/data/maps/events/LilycoveCity_DepartmentStore_1F.inc
+++ b/data/maps/events/LilycoveCity_DepartmentStore_1F.inc
@@ -7,10 +7,10 @@ LilycoveCity_DepartmentStore_1F_MapObjects:: @ 838A218
object_event 6, MAP_OBJ_GFX_AZUMARILL, 0, 2, 0, 6, 0, 3, 1, 17, 0, 0, 0, 0, 0, LilycoveCity_DepartmentStore_1F_EventScript_159EF2, 0, 0, 0
LilycoveCity_DepartmentStore_1F_MapWarps:: @ 838A2A8
- warp_def 8, 7, 0, 0, LilycoveCity
- warp_def 9, 7, 0, 0, LilycoveCity
- warp_def 16, 1, 0, 0, LilycoveCity_DepartmentStore_2F
- warp_def 2, 1, 0, 0, LilycoveCity_DepartmentStoreElevator
+ warp_def 8, 7, 0, 0, MAP_LILYCOVE_CITY
+ warp_def 9, 7, 0, 0, MAP_LILYCOVE_CITY
+ warp_def 16, 1, 0, 0, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F
+ warp_def 2, 1, 0, 0, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR
LilycoveCity_DepartmentStore_1F_MapBGEvents:: @ 838A2C8
bg_event 0, 8, 0, 1, 0, LilycoveCity_DepartmentStore_1F_EventScript_159F05
diff --git a/data/maps/events/LilycoveCity_DepartmentStore_2F.inc b/data/maps/events/LilycoveCity_DepartmentStore_2F.inc
index fc8872103..441c43a4c 100644
--- a/data/maps/events/LilycoveCity_DepartmentStore_2F.inc
+++ b/data/maps/events/LilycoveCity_DepartmentStore_2F.inc
@@ -6,9 +6,9 @@ LilycoveCity_DepartmentStore_2F_MapObjects:: @ 838A2E8
object_event 5, MAP_OBJ_GFX_WOMAN_4, 0, 7, 0, 6, 0, 3, 7, 0, 0, 0, 0, 0, 0, LilycoveCity_DepartmentStore_2F_EventScript_159F2A, 0, 0, 0
LilycoveCity_DepartmentStore_2F_MapWarps:: @ 838A360
- warp_def 16, 1, 0, 2, LilycoveCity_DepartmentStore_1F
- warp_def 13, 1, 0, 0, LilycoveCity_DepartmentStore_3F
- warp_def 2, 1, 0, 0, LilycoveCity_DepartmentStoreElevator
+ warp_def 16, 1, 0, 2, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F
+ warp_def 13, 1, 0, 0, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F
+ warp_def 2, 1, 0, 0, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR
LilycoveCity_DepartmentStore_2F_MapEvents:: @ 838A378
map_events LilycoveCity_DepartmentStore_2F_MapObjects, LilycoveCity_DepartmentStore_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity_DepartmentStore_3F.inc b/data/maps/events/LilycoveCity_DepartmentStore_3F.inc
index bf3d1647f..920327ab8 100644
--- a/data/maps/events/LilycoveCity_DepartmentStore_3F.inc
+++ b/data/maps/events/LilycoveCity_DepartmentStore_3F.inc
@@ -6,9 +6,9 @@ LilycoveCity_DepartmentStore_3F_MapObjects:: @ 838A38C
object_event 5, MAP_OBJ_GFX_WOMAN_4, 0, 10, 0, 2, 0, 3, 8, 17, 0, 0, 0, 0, 0, LilycoveCity_DepartmentStore_3F_EventScript_159FB8, 0, 0, 0
LilycoveCity_DepartmentStore_3F_MapWarps:: @ 838A404
- warp_def 13, 1, 0, 1, LilycoveCity_DepartmentStore_2F
- warp_def 16, 1, 0, 0, LilycoveCity_DepartmentStore_4F
- warp_def 2, 1, 0, 0, LilycoveCity_DepartmentStoreElevator
+ warp_def 13, 1, 0, 1, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F
+ warp_def 16, 1, 0, 0, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F
+ warp_def 2, 1, 0, 0, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR
LilycoveCity_DepartmentStore_3F_MapEvents:: @ 838A41C
map_events LilycoveCity_DepartmentStore_3F_MapObjects, LilycoveCity_DepartmentStore_3F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity_DepartmentStore_4F.inc b/data/maps/events/LilycoveCity_DepartmentStore_4F.inc
index 007cc8bf4..a387cfbf2 100644
--- a/data/maps/events/LilycoveCity_DepartmentStore_4F.inc
+++ b/data/maps/events/LilycoveCity_DepartmentStore_4F.inc
@@ -6,9 +6,9 @@ LilycoveCity_DepartmentStore_4F_MapObjects:: @ 838A430
object_event 5, MAP_OBJ_GFX_WOMAN_4, 0, 9, 0, 6, 0, 3, 7, 0, 0, 0, 0, 0, 0, LilycoveCity_DepartmentStore_4F_EventScript_15A03C, 0, 0, 0
LilycoveCity_DepartmentStore_4F_MapWarps:: @ 838A4A8
- warp_def 16, 1, 0, 1, LilycoveCity_DepartmentStore_3F
- warp_def 13, 1, 0, 0, LilycoveCity_DepartmentStore_5F
- warp_def 2, 1, 0, 0, LilycoveCity_DepartmentStoreElevator
+ warp_def 16, 1, 0, 1, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F
+ warp_def 13, 1, 0, 0, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F
+ warp_def 2, 1, 0, 0, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR
LilycoveCity_DepartmentStore_4F_MapEvents:: @ 838A4C0
map_events LilycoveCity_DepartmentStore_4F_MapObjects, LilycoveCity_DepartmentStore_4F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity_DepartmentStore_5F.inc b/data/maps/events/LilycoveCity_DepartmentStore_5F.inc
index 85cf2431f..e794452b9 100644
--- a/data/maps/events/LilycoveCity_DepartmentStore_5F.inc
+++ b/data/maps/events/LilycoveCity_DepartmentStore_5F.inc
@@ -8,9 +8,9 @@ LilycoveCity_DepartmentStore_5F_MapObjects:: @ 838A4D4
object_event 7, MAP_OBJ_GFX_WOMAN_3, 0, 9, 0, 5, 0, 3, 10, 17, 0, 0, 0, 0, 0, LilycoveCity_DepartmentStore_5F_EventScript_15A12D, 0, 0, 0
LilycoveCity_DepartmentStore_5F_MapWarps:: @ 838A57C
- warp_def 13, 1, 0, 1, LilycoveCity_DepartmentStore_4F
- warp_def 2, 1, 0, 0, LilycoveCity_DepartmentStoreElevator
- warp_def 16, 1, 0, 0, LilycoveCity_DepartmentStoreRooftop
+ warp_def 13, 1, 0, 1, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F
+ warp_def 2, 1, 0, 0, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR
+ warp_def 16, 1, 0, 0, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP
LilycoveCity_DepartmentStore_5F_MapEvents:: @ 838A594
map_events LilycoveCity_DepartmentStore_5F_MapObjects, LilycoveCity_DepartmentStore_5F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity_EmptyMap.inc b/data/maps/events/LilycoveCity_EmptyMap.inc
index 906453882..4ac5c42b8 100644
--- a/data/maps/events/LilycoveCity_EmptyMap.inc
+++ b/data/maps/events/LilycoveCity_EmptyMap.inc
@@ -1,5 +1,5 @@
LilycoveCity_EmptyMap_MapWarps:: @ 838A028
- warp_def 7, 5, 0, 2, LilycoveCity_Harbor
+ warp_def 7, 5, 0, 2, MAP_LILYCOVE_CITY_HARBOR
LilycoveCity_EmptyMap_MapEvents:: @ 838A030
map_events 0x0, LilycoveCity_EmptyMap_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity_Harbor.inc b/data/maps/events/LilycoveCity_Harbor.inc
index 5682ada0e..3f7c592d1 100644
--- a/data/maps/events/LilycoveCity_Harbor.inc
+++ b/data/maps/events/LilycoveCity_Harbor.inc
@@ -1,14 +1,14 @@
LilycoveCity_Harbor_MapObjects:: @ 8389F94
- object_event 1, MAP_OBJ_GFX_BEAUTY, 0, 8, 0, 10, 0, 3, 8, 0, 0, 0, 0, 0, 0, LilycoveCity_Harbor_EventScript_1598A2, 908, 0, 0
- object_event 2, MAP_OBJ_GFX_SS_TIDAL, 0, 8, 0, 9, 0, 1, 10, 0, 0, 0, 0, 0, 0, 0x0, 861, 0, 0
+ object_event 1, MAP_OBJ_GFX_BEAUTY, 0, 8, 0, 10, 0, 3, 8, 0, 0, 0, 0, 0, 0, LilycoveCity_Harbor_EventScript_1598A2, FLAG_HIDE_FERRY_ATTENDANT_LILYCOVE, 0, 0
+ object_event 2, MAP_OBJ_GFX_SS_TIDAL, 0, 8, 0, 9, 0, 1, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_SS_TIDAL_LILYCOVE_HARBOR, 0, 0
object_event 3, MAP_OBJ_GFX_SAILOR, 0, 3, 0, 13, 0, 3, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_Harbor_EventScript_159A8D, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_SAILOR, 0, 8, 0, 10, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 909, 0, 0
+ object_event 4, MAP_OBJ_GFX_SAILOR, 0, 8, 0, 10, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_FERRY_SAILOR_LILYCOVE, 0, 0
LilycoveCity_Harbor_MapWarps:: @ 8389FF4
- warp_def 11, 14, 0, 12, LilycoveCity
- warp_def 12, 14, 0, 12, LilycoveCity
- warp_def 20, 15, 0, 0, LilycoveCity_EmptyMap
- warp_def 21, 15, 0, 0, LilycoveCity_EmptyMap
+ warp_def 11, 14, 0, 12, MAP_LILYCOVE_CITY
+ warp_def 12, 14, 0, 12, MAP_LILYCOVE_CITY
+ warp_def 20, 15, 0, 0, MAP_LILYCOVE_CITY_EMPTY_MAP
+ warp_def 21, 15, 0, 0, MAP_LILYCOVE_CITY_EMPTY_MAP
LilycoveCity_Harbor_MapEvents:: @ 838A014
map_events LilycoveCity_Harbor_MapObjects, LilycoveCity_Harbor_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity_House1.inc b/data/maps/events/LilycoveCity_House1.inc
index cdae83007..8d6e6b8ce 100644
--- a/data/maps/events/LilycoveCity_House1.inc
+++ b/data/maps/events/LilycoveCity_House1.inc
@@ -3,8 +3,8 @@ LilycoveCity_House1_MapObjects:: @ 838A080
object_event 2, MAP_OBJ_GFX_KECLEON_1, 0, 4, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, LilycoveCity_House1_EventScript_159B8F, 0, 0, 0
LilycoveCity_House1_MapWarps:: @ 838A0B0
- warp_def 3, 8, 0, 8, LilycoveCity
- warp_def 4, 8, 0, 8, LilycoveCity
+ warp_def 3, 8, 0, 8, MAP_LILYCOVE_CITY
+ warp_def 4, 8, 0, 8, MAP_LILYCOVE_CITY
LilycoveCity_House1_MapEvents:: @ 838A0C0
map_events LilycoveCity_House1_MapObjects, LilycoveCity_House1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity_House2.inc b/data/maps/events/LilycoveCity_House2.inc
index 50b44e253..8cb92dfa4 100644
--- a/data/maps/events/LilycoveCity_House2.inc
+++ b/data/maps/events/LilycoveCity_House2.inc
@@ -2,8 +2,8 @@ LilycoveCity_House2_MapObjects:: @ 838A0D4
object_event 1, MAP_OBJ_GFX_FAT_MAN, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, LilycoveCity_House2_EventScript_159BA3, 0, 0, 0
LilycoveCity_House2_MapWarps:: @ 838A0EC
- warp_def 2, 7, 0, 9, LilycoveCity
- warp_def 3, 7, 0, 9, LilycoveCity
+ warp_def 2, 7, 0, 9, MAP_LILYCOVE_CITY
+ warp_def 3, 7, 0, 9, MAP_LILYCOVE_CITY
LilycoveCity_House2_MapEvents:: @ 838A0FC
map_events LilycoveCity_House2_MapObjects, LilycoveCity_House2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity_House3.inc b/data/maps/events/LilycoveCity_House3.inc
index 43a1068f1..db7113ef1 100644
--- a/data/maps/events/LilycoveCity_House3.inc
+++ b/data/maps/events/LilycoveCity_House3.inc
@@ -7,8 +7,8 @@ LilycoveCity_House3_MapObjects:: @ 838A110
object_event 6, MAP_OBJ_GFX_MAN_1, 0, 7, 0, 5, 0, 3, 9, 17, 0, 0, 0, 0, 0, LilycoveCity_House3_EventScript_159C32, 0, 0, 0
LilycoveCity_House3_MapWarps:: @ 838A1A0
- warp_def 3, 7, 0, 10, LilycoveCity
- warp_def 4, 7, 0, 10, LilycoveCity
+ warp_def 3, 7, 0, 10, MAP_LILYCOVE_CITY
+ warp_def 4, 7, 0, 10, MAP_LILYCOVE_CITY
LilycoveCity_House3_MapEvents:: @ 838A1B0
map_events LilycoveCity_House3_MapObjects, LilycoveCity_House3_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity_House4.inc b/data/maps/events/LilycoveCity_House4.inc
index 88522497d..376afb431 100644
--- a/data/maps/events/LilycoveCity_House4.inc
+++ b/data/maps/events/LilycoveCity_House4.inc
@@ -3,8 +3,8 @@ LilycoveCity_House4_MapObjects:: @ 838A1C4
object_event 2, MAP_OBJ_GFX_MAN_1, 0, 7, 0, 4, 0, 3, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_House4_EventScript_159D4B, 0, 0, 0
LilycoveCity_House4_MapWarps:: @ 838A1F4
- warp_def 3, 8, 0, 11, LilycoveCity
- warp_def 4, 8, 0, 11, LilycoveCity
+ warp_def 3, 8, 0, 11, MAP_LILYCOVE_CITY
+ warp_def 4, 8, 0, 11, MAP_LILYCOVE_CITY
LilycoveCity_House4_MapEvents:: @ 838A204
map_events LilycoveCity_House4_MapObjects, LilycoveCity_House4_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity_LilycoveMuseum_1F.inc b/data/maps/events/LilycoveCity_LilycoveMuseum_1F.inc
index 983736d73..1ee241c5c 100644
--- a/data/maps/events/LilycoveCity_LilycoveMuseum_1F.inc
+++ b/data/maps/events/LilycoveCity_LilycoveMuseum_1F.inc
@@ -1,19 +1,19 @@
LilycoveCity_LilycoveMuseum_1F_MapObjects:: @ 8389564
object_event 1, MAP_OBJ_GFX_BEAUTY, 0, 5, 0, 12, 0, 3, 10, 0, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_15841C, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_GENTLEMAN, 0, 16, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_158425, 775, 0, 0
+ object_event 2, MAP_OBJ_GFX_GENTLEMAN, 0, 16, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_158425, FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR, 0, 0
object_event 3, MAP_OBJ_GFX_SCHOOL_KID_M, 0, 13, 0, 7, 0, 3, 10, 0, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_158558, 0, 0, 0
object_event 4, MAP_OBJ_GFX_ARTIST, 0, 13, 0, 10, 0, 3, 5, 2, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_158561, 0, 0, 0
object_event 5, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 2, 0, 8, 0, 3, 7, 0, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_15856A, 0, 0, 0
object_event 6, MAP_OBJ_GFX_WOMAN_5, 0, 3, 0, 8, 0, 3, 7, 0, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_158573, 0, 0, 0
- object_event 7, MAP_OBJ_GFX_WOMAN_3, 0, 11, 0, 3, 0, 3, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_15857C, 776, 0, 0
- object_event 8, MAP_OBJ_GFX_ARTIST, 0, 19, 0, 3, 0, 3, 7, 0, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_15858E, 779, 0, 0
- object_event 9, MAP_OBJ_GFX_FAT_MAN, 0, 2, 0, 2, 0, 3, 2, 34, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_1585A3, 780, 0, 0
- object_event 10, MAP_OBJ_GFX_PSYCHIC_M, 0, 6, 0, 2, 0, 3, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_158585, 778, 0, 0
+ object_event 7, MAP_OBJ_GFX_WOMAN_3, 0, 11, 0, 3, 0, 3, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_15857C, FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_LADY, 0, 0
+ object_event 8, MAP_OBJ_GFX_ARTIST, 0, 19, 0, 3, 0, 3, 7, 0, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_15858E, FLAG_HIDE_LILYCOVE_MUSEUM_PAINTER, 0, 0
+ object_event 9, MAP_OBJ_GFX_FAT_MAN, 0, 2, 0, 2, 0, 3, 2, 34, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_1585A3, FLAG_HIDE_LILYCOVE_MUSEUM_VISITORS, 0, 0
+ object_event 10, MAP_OBJ_GFX_PSYCHIC_M, 0, 6, 0, 2, 0, 3, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_158585, FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_MAN, 0, 0
LilycoveCity_LilycoveMuseum_1F_MapWarps:: @ 8389654
- warp_def 9, 13, 0, 3, LilycoveCity
- warp_def 10, 13, 0, 13, LilycoveCity
- warp_def 16, 1, 0, 0, LilycoveCity_LilycoveMuseum_2F
+ warp_def 9, 13, 0, 3, MAP_LILYCOVE_CITY
+ warp_def 10, 13, 0, 13, MAP_LILYCOVE_CITY
+ warp_def 16, 1, 0, 0, MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F
LilycoveCity_LilycoveMuseum_1F_MapBGEvents:: @ 838966C
bg_event 1, 1, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_158510
diff --git a/data/maps/events/LilycoveCity_LilycoveMuseum_2F.inc b/data/maps/events/LilycoveCity_LilycoveMuseum_2F.inc
index 98c1aa9cd..83077f069 100644
--- a/data/maps/events/LilycoveCity_LilycoveMuseum_2F.inc
+++ b/data/maps/events/LilycoveCity_LilycoveMuseum_2F.inc
@@ -1,11 +1,11 @@
LilycoveCity_LilycoveMuseum_2F_MapObjects:: @ 8389740
object_event 1, MAP_OBJ_GFX_GENTLEMAN, 0, 10, 0, 8, 0, 3, 7, 0, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_2F_EventScript_1586D8, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_GIRL_2, 0, 19, 0, 10, 0, 3, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_2F_EventScript_158805, 777, 0, 0
- object_event 3, MAP_OBJ_GFX_OLD_MAN_1, 0, 7, 0, 3, 0, 3, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_2F_EventScript_15880E, 780, 0, 0
- object_event 4, MAP_OBJ_GFX_BOY_4, 0, 14, 0, 6, 0, 3, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_2F_EventScript_158817, 780, 0, 0
+ object_event 2, MAP_OBJ_GFX_GIRL_2, 0, 19, 0, 10, 0, 3, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_2F_EventScript_158805, FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_GIRL, 0, 0
+ object_event 3, MAP_OBJ_GFX_OLD_MAN_1, 0, 7, 0, 3, 0, 3, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_2F_EventScript_15880E, FLAG_HIDE_LILYCOVE_MUSEUM_VISITORS, 0, 0
+ object_event 4, MAP_OBJ_GFX_BOY_4, 0, 14, 0, 6, 0, 3, 2, 17, 0, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_2F_EventScript_158817, FLAG_HIDE_LILYCOVE_MUSEUM_VISITORS, 0, 0
LilycoveCity_LilycoveMuseum_2F_MapWarps:: @ 83897A0
- warp_def 13, 1, 0, 2, LilycoveCity_LilycoveMuseum_1F
+ warp_def 13, 1, 0, 2, MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F
LilycoveCity_LilycoveMuseum_2F_MapBGEvents:: @ 83897A8
bg_event 14, 10, 0, 0, 0, LilycoveCity_LilycoveMuseum_2F_EventScript_15879D
diff --git a/data/maps/events/LilycoveCity_MoveDeletersHouse.inc b/data/maps/events/LilycoveCity_MoveDeletersHouse.inc
index 563052712..d4969c39e 100644
--- a/data/maps/events/LilycoveCity_MoveDeletersHouse.inc
+++ b/data/maps/events/LilycoveCity_MoveDeletersHouse.inc
@@ -2,8 +2,8 @@ LilycoveCity_MoveDeletersHouse_MapObjects:: @ 838A044
object_event 1, MAP_OBJ_GFX_OLD_MAN_1, 0, 4, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, LilycoveCity_MoveDeletersHouse_EventScript_159AAE, 0, 0, 0
LilycoveCity_MoveDeletersHouse_MapWarps:: @ 838A05C
- warp_def 3, 7, 0, 7, LilycoveCity
- warp_def 4, 7, 0, 7, LilycoveCity
+ warp_def 3, 7, 0, 7, MAP_LILYCOVE_CITY
+ warp_def 4, 7, 0, 7, MAP_LILYCOVE_CITY
LilycoveCity_MoveDeletersHouse_MapEvents:: @ 838A06C
map_events LilycoveCity_MoveDeletersHouse_MapObjects, LilycoveCity_MoveDeletersHouse_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity_PokemonCenter_1F.inc b/data/maps/events/LilycoveCity_PokemonCenter_1F.inc
index c33a07b6a..c0f27f6c7 100644
--- a/data/maps/events/LilycoveCity_PokemonCenter_1F.inc
+++ b/data/maps/events/LilycoveCity_PokemonCenter_1F.inc
@@ -4,9 +4,9 @@ LilycoveCity_PokemonCenter_1F_MapObjects:: @ 8389D94
object_event 3, MAP_OBJ_GFX_MANIAC, 0, 11, 0, 8, 0, 3, 7, 0, 0, 0, 0, 0, 0, LilycoveCity_PokemonCenter_1F_EventScript_159348, 0, 0, 0
LilycoveCity_PokemonCenter_1F_MapWarps:: @ 8389DDC
- warp_def 7, 8, 3, 2, LilycoveCity
- warp_def 6, 8, 3, 2, LilycoveCity
- warp_def 1, 6, 4, 0, LilycoveCity_PokemonCenter_2F
+ warp_def 7, 8, 3, 2, MAP_LILYCOVE_CITY
+ warp_def 6, 8, 3, 2, MAP_LILYCOVE_CITY
+ warp_def 1, 6, 4, 0, MAP_LILYCOVE_CITY_POKEMON_CENTER_2F
LilycoveCity_PokemonCenter_1F_MapEvents:: @ 8389DF4
map_events LilycoveCity_PokemonCenter_1F_MapObjects, LilycoveCity_PokemonCenter_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity_PokemonCenter_2F.inc b/data/maps/events/LilycoveCity_PokemonCenter_2F.inc
index 736ef1151..e1723d489 100644
--- a/data/maps/events/LilycoveCity_PokemonCenter_2F.inc
+++ b/data/maps/events/LilycoveCity_PokemonCenter_2F.inc
@@ -4,11 +4,11 @@ LilycoveCity_PokemonCenter_2F_MapObjects:: @ 8389E08
object_event 3, MAP_OBJ_GFX_TEALA, 0, 10, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, LilycoveCity_PokemonCenter_2F_EventScript_159383, 0, 0, 0
LilycoveCity_PokemonCenter_2F_MapWarps:: @ 8389E50
- warp_def 1, 5, 4, 2, LilycoveCity_PokemonCenter_1F
- warp_def 5, 1, 0, 0, SingleBattleColosseum
- warp_def 8, 1, 0, 0, TradeCenter
- warp_def 11, 1, 0, 0, RecordCorner
- warp_def 0, 0, 0, 0, DoubleBattleColosseum
+ warp_def 1, 5, 4, 2, MAP_LILYCOVE_CITY_POKEMON_CENTER_1F
+ warp_def 5, 1, 0, 0, MAP_SINGLE_BATTLE_COLOSSEUM
+ warp_def 8, 1, 0, 0, MAP_TRADE_CENTER
+ warp_def 11, 1, 0, 0, MAP_RECORD_CORNER
+ warp_def 0, 0, 0, 0, MAP_DOUBLE_BATTLE_COLOSSEUM
LilycoveCity_PokemonCenter_2F_MapEvents:: @ 8389E78
map_events LilycoveCity_PokemonCenter_2F_MapObjects, LilycoveCity_PokemonCenter_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity_PokemonTrainerFanClub.inc b/data/maps/events/LilycoveCity_PokemonTrainerFanClub.inc
index 38007b34f..59e8e03a3 100644
--- a/data/maps/events/LilycoveCity_PokemonTrainerFanClub.inc
+++ b/data/maps/events/LilycoveCity_PokemonTrainerFanClub.inc
@@ -3,14 +3,14 @@ LilycoveCity_PokemonTrainerFanClub_MapObjects:: @ 8389EB0
object_event 2, MAP_OBJ_GFX_MAN_5, 0, 8, 0, 10, 0, 3, 9, 0, 0, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_15952F, 0, 0, 0
object_event 3, MAP_OBJ_GFX_MAN_3, 0, 6, 0, 11, 0, 3, 7, 0, 0, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_15961D, 0, 0, 0
object_event 4, MAP_OBJ_GFX_LITTLE_GIRL_2, 0, 5, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_159694, 0, 0, 0
- object_event 5, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 7, 0, 11, 0, 3, 7, 0, 0, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_15970B, 791, 0, 0
- object_event 6, MAP_OBJ_GFX_BOY_2, 0, 1, 0, 9, 0, 3, 8, 0, 0, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_15976D, 790, 0, 0
- object_event 7, MAP_OBJ_GFX_WOMAN_4, 0, 3, 0, 10, 0, 3, 10, 0, 0, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_1597CF, 792, 0, 0
- object_event 8, MAP_OBJ_GFX_OLD_WOMAN_1, 0, 10, 0, 10, 0, 3, 9, 0, 0, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_159831, 789, 0, 0
+ object_event 5, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 7, 0, 11, 0, 3, 7, 0, 0, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_15970B, FLAG_HIDE_FANCLUB_LITTLE_BOY, 0, 0
+ object_event 6, MAP_OBJ_GFX_BOY_2, 0, 1, 0, 9, 0, 3, 8, 0, 0, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_15976D, FLAG_HIDE_FANCLUB_BOY, 0, 0
+ object_event 7, MAP_OBJ_GFX_WOMAN_4, 0, 3, 0, 10, 0, 3, 10, 0, 0, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_1597CF, FLAG_HIDE_FANCLUB_LADY, 0, 0
+ object_event 8, MAP_OBJ_GFX_OLD_WOMAN_1, 0, 10, 0, 10, 0, 3, 9, 0, 0, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_159831, FLAG_HIDE_FANCLUB_OLD_LADY, 0, 0
LilycoveCity_PokemonTrainerFanClub_MapWarps:: @ 8389F70
- warp_def 6, 13, 0, 5, LilycoveCity
- warp_def 5, 13, 0, 5, LilycoveCity
+ warp_def 6, 13, 0, 5, MAP_LILYCOVE_CITY
+ warp_def 5, 13, 0, 5, MAP_LILYCOVE_CITY
LilycoveCity_PokemonTrainerFanClub_MapEvents:: @ 8389F80
map_events LilycoveCity_PokemonTrainerFanClub_MapObjects, LilycoveCity_PokemonTrainerFanClub_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LilycoveCity_UnusedMart.inc b/data/maps/events/LilycoveCity_UnusedMart.inc
index 1eefb6a8f..4a0127506 100644
--- a/data/maps/events/LilycoveCity_UnusedMart.inc
+++ b/data/maps/events/LilycoveCity_UnusedMart.inc
@@ -1,6 +1,6 @@
LilycoveCity_UnusedMart_MapWarps:: @ 8389E8C
- warp_def 3, 7, 0, 0, LilycoveCity
- warp_def 4, 7, 0, 0, LilycoveCity
+ warp_def 3, 7, 0, 0, MAP_LILYCOVE_CITY
+ warp_def 4, 7, 0, 0, MAP_LILYCOVE_CITY
LilycoveCity_UnusedMart_MapEvents:: @ 8389E9C
map_events 0x0, LilycoveCity_UnusedMart_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/LinkContestRoom1.inc b/data/maps/events/LinkContestRoom1.inc
index 6c1e09430..18d1dcd74 100644
--- a/data/maps/events/LinkContestRoom1.inc
+++ b/data/maps/events/LinkContestRoom1.inc
@@ -11,7 +11,7 @@ LinkContestRoom1_MapObjects:: @ 839149C
object_event 10, 249, 0, 10, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 0, 0, 0
object_event 11, 250, 0, 12, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0x0, 0, 0, 0
object_event 12, 245, 0, 2, 0, 5, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, 0, 0, 0
- object_event 13, MAP_OBJ_GFX_ITEM_BALL, 0, 7, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 86, 0, 0
+ object_event 13, MAP_OBJ_GFX_ITEM_BALL, 0, 7, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_LINK_CONTEST_ROOM_POKEBALL, 0, 0
object_event 14, 243, 0, 10, 0, 7, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, 0, 0, 0
object_event 15, MAP_OBJ_GFX_ARTIST, 0, 12, 0, 6, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0x0, 0, 0, 0
diff --git a/data/maps/events/LittlerootTown.inc b/data/maps/events/LittlerootTown.inc
index 62a564821..23debe434 100644
--- a/data/maps/events/LittlerootTown.inc
+++ b/data/maps/events/LittlerootTown.inc
@@ -1,15 +1,15 @@
LittlerootTown_MapObjects:: @ 83808FC
object_event 1, MAP_OBJ_GFX_LITTLE_BOY_3, 0, 16, 0, 10, 0, 3, 2, 33, 0, 0, 0, 0, 0, LittlerootTown_EventScript_14D6DF, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_FAT_MAN, 0, 12, 0, 13, 0, 3, 2, 18, 0, 0, 0, 0, 0, LittlerootTown_EventScript_14D6CD, 868, 0, 0
+ object_event 2, MAP_OBJ_GFX_FAT_MAN, 0, 12, 0, 13, 0, 3, 2, 18, 0, 0, 0, 0, 0, LittlerootTown_EventScript_14D6CD, FLAG_HIDE_FAT_MAN_LITTLEROOT, 0, 0
object_event 3, MAP_OBJ_GFX_BOY_2, 0, 14, 0, 17, 0, 3, 2, 18, 0, 0, 0, 0, 0, LittlerootTown_EventScript_14D6D6, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_MOM, 0, 5, 0, 8, 0, 3, 7, 0, 0, 0, 0, 0, 0, LittlerootTown_EventScript_14DCE2, 752, 0, 0
- object_event 5, MAP_OBJ_GFX_TRUCK, 0, 2, 0, 10, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0x0, 761, 0, 0
- object_event 6, MAP_OBJ_GFX_TRUCK, 0, 11, 0, 10, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0x0, 762, 0, 0
+ object_event 4, MAP_OBJ_GFX_MOM, 0, 5, 0, 8, 0, 3, 7, 0, 0, 0, 0, 0, 0, LittlerootTown_EventScript_14DCE2, FLAG_HIDE_MOM_LITTLEROOT, 0, 0
+ object_event 5, MAP_OBJ_GFX_TRUCK, 0, 2, 0, 10, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_MOVING_TRUCK_BRENDAN, 0, 0
+ object_event 6, MAP_OBJ_GFX_TRUCK, 0, 11, 0, 10, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_MOVING_TRUCK_MAY, 0, 0
LittlerootTown_MapWarps:: @ 838098C
- warp_def 14, 8, 0, 1, LittlerootTown_MaysHouse_1F
- warp_def 5, 8, 0, 1, LittlerootTown_BrendansHouse_1F
- warp_def 7, 16, 0, 0, LittlerootTown_ProfessorBirchsLab
+ warp_def 14, 8, 0, 1, MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F
+ warp_def 5, 8, 0, 1, MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F
+ warp_def 7, 16, 0, 0, MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB
LittlerootTown_MapCoordEvents:: @ 83809A4
coord_event 10, 1, 3, 0, 0x4050, 0, 0, LittlerootTown_EventScript_14D739
diff --git a/data/maps/events/LittlerootTown_BrendansHouse_1F.inc b/data/maps/events/LittlerootTown_BrendansHouse_1F.inc
index f60a59018..bb3d3b195 100644
--- a/data/maps/events/LittlerootTown_BrendansHouse_1F.inc
+++ b/data/maps/events/LittlerootTown_BrendansHouse_1F.inc
@@ -1,14 +1,14 @@
LittlerootTown_BrendansHouse_1F_MapObjects:: @ 8385674
- object_event 1, MAP_OBJ_GFX_MOM, 0, 2, 0, 6, 0, 3, 10, 0, 0, 0, 0, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_1B6BE9, 758, 0, 0
- object_event 2, MAP_OBJ_GFX_MACHOKE_CARRYING_BOX, 0, 1, 0, 3, 0, 3, 28, 3, 0, 0, 0, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_1B6CB9, 755, 0, 0
- object_event 3, MAP_OBJ_GFX_MACHOKE_FACING_AWAY, 0, 4, 0, 5, 0, 3, 65, 0, 0, 0, 0, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_1B6CA6, 754, 0, 0
- object_event 4, MAP_OBJ_GFX_WOMAN_5, 0, 2, 0, 7, 0, 3, 10, 0, 0, 0, 0, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_1529EB, 784, 0, 0
- object_event 5, MAP_OBJ_GFX_NORMAN, 0, 5, 0, 6, 0, 3, 9, 17, 0, 0, 0, 0, 0, 0x0, 734, 0, 0
+ object_event 1, MAP_OBJ_GFX_MOM, 0, 2, 0, 6, 0, 3, 10, 0, 0, 0, 0, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_1B6BE9, FLAG_HIDE_BRENDAN_MOM_DOWNSTAIRS, 0, 0
+ object_event 2, MAP_OBJ_GFX_MACHOKE_CARRYING_BOX, 0, 1, 0, 3, 0, 3, 28, 3, 0, 0, 0, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_1B6CB9, FLAG_HIDE_MACHOKE_MOVER_2, 0, 0
+ object_event 3, MAP_OBJ_GFX_MACHOKE_FACING_AWAY, 0, 4, 0, 5, 0, 3, 65, 0, 0, 0, 0, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_1B6CA6, FLAG_HIDE_MACHOKE_MOVER_1, 0, 0
+ object_event 4, MAP_OBJ_GFX_WOMAN_5, 0, 2, 0, 7, 0, 3, 10, 0, 0, 0, 0, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_1529EB, FLAG_HIDE_BRENDAN_MOM, 0, 0
+ object_event 5, MAP_OBJ_GFX_NORMAN, 0, 5, 0, 6, 0, 3, 9, 17, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_NORMAN_LITTLEROOT, 0, 0
LittlerootTown_BrendansHouse_1F_MapWarps:: @ 83856EC
- warp_def 9, 8, 0, 1, LittlerootTown
- warp_def 8, 8, 0, 1, LittlerootTown
- warp_def 8, 2, 0, 0, LittlerootTown_BrendansHouse_2F
+ warp_def 9, 8, 0, 1, MAP_LITTLEROOT_TOWN
+ warp_def 8, 8, 0, 1, MAP_LITTLEROOT_TOWN
+ warp_def 8, 2, 0, 0, MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F
LittlerootTown_BrendansHouse_1F_MapCoordEvents:: @ 8385704
coord_event 8, 8, 0, 0, 0x4092, 4, 0, LittlerootTown_BrendansHouse_1F_EventScript_152789
diff --git a/data/maps/events/LittlerootTown_BrendansHouse_2F.inc b/data/maps/events/LittlerootTown_BrendansHouse_2F.inc
index a28a2d0d1..b7367b1d0 100644
--- a/data/maps/events/LittlerootTown_BrendansHouse_2F.inc
+++ b/data/maps/events/LittlerootTown_BrendansHouse_2F.inc
@@ -1,21 +1,21 @@
LittlerootTown_BrendansHouse_2F_MapObjects:: @ 8385728
- object_event 1, MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 0, 0, 0, 2, 0, 3, 7, 1, 0, 0, 0, 0, 0, LittlerootTown_BrendansHouse_2F_EventScript_152A9D, 760, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 3, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, MAP_OBJ_GFX_MOM, 0, 7, 0, 1, 0, 3, 8, 1, 0, 0, 0, 0, 0, 0x0, 757, 0, 0
+ object_event 1, MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 0, 0, 0, 2, 0, 3, 7, 1, 0, 0, 0, 0, 0, LittlerootTown_BrendansHouse_2F_EventScript_152A9D, FLAG_HIDE_BRENDAN_UPSTAIRS, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 3, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, MAP_OBJ_GFX_MOM, 0, 7, 0, 1, 0, 3, 8, 1, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_MOM_UPSTAIRS, 0, 0
LittlerootTown_BrendansHouse_2F_MapWarps:: @ 8385878
- warp_def 7, 1, 0, 2, LittlerootTown_BrendansHouse_1F
+ warp_def 7, 1, 0, 2, MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F
LittlerootTown_BrendansHouse_2F_MapBGEvents:: @ 8385880
bg_event 0, 1, 0, 1, 0, LittlerootTown_BrendansHouse_2F_EventScript_15281E
diff --git a/data/maps/events/LittlerootTown_MaysHouse_1F.inc b/data/maps/events/LittlerootTown_MaysHouse_1F.inc
index d5874624b..27a0efbed 100644
--- a/data/maps/events/LittlerootTown_MaysHouse_1F.inc
+++ b/data/maps/events/LittlerootTown_MaysHouse_1F.inc
@@ -1,14 +1,14 @@
LittlerootTown_MaysHouse_1F_MapObjects:: @ 83858C4
- object_event 1, MAP_OBJ_GFX_MOM, 0, 8, 0, 6, 0, 3, 9, 0, 0, 0, 0, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_1B6BE9, 759, 0, 0
- object_event 2, MAP_OBJ_GFX_MACHOKE_FACING_AWAY, 0, 6, 0, 5, 0, 3, 65, 0, 0, 0, 0, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_1B6CA6, 754, 0, 0
- object_event 3, MAP_OBJ_GFX_MACHOKE_CARRYING_BOX, 0, 9, 0, 3, 0, 3, 27, 3, 0, 0, 0, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_1B6CB9, 755, 0, 0
- object_event 4, MAP_OBJ_GFX_WOMAN_5, 0, 8, 0, 7, 0, 3, 9, 0, 0, 0, 0, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_1529EB, 785, 0, 0
- object_event 5, MAP_OBJ_GFX_NORMAN, 0, 5, 0, 6, 0, 3, 10, 17, 0, 0, 0, 0, 0, 0x0, 734, 0, 0
+ object_event 1, MAP_OBJ_GFX_MOM, 0, 8, 0, 6, 0, 3, 9, 0, 0, 0, 0, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_1B6BE9, FLAG_HIDE_MAY_MOM_DOWNSTAIRS, 0, 0
+ object_event 2, MAP_OBJ_GFX_MACHOKE_FACING_AWAY, 0, 6, 0, 5, 0, 3, 65, 0, 0, 0, 0, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_1B6CA6, FLAG_HIDE_MACHOKE_MOVER_1, 0, 0
+ object_event 3, MAP_OBJ_GFX_MACHOKE_CARRYING_BOX, 0, 9, 0, 3, 0, 3, 27, 3, 0, 0, 0, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_1B6CB9, FLAG_HIDE_MACHOKE_MOVER_2, 0, 0
+ object_event 4, MAP_OBJ_GFX_WOMAN_5, 0, 8, 0, 7, 0, 3, 9, 0, 0, 0, 0, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_1529EB, FLAG_HIDE_MAY_MOM, 0, 0
+ object_event 5, MAP_OBJ_GFX_NORMAN, 0, 5, 0, 6, 0, 3, 10, 17, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_NORMAN_LITTLEROOT, 0, 0
LittlerootTown_MaysHouse_1F_MapWarps:: @ 838593C
- warp_def 1, 8, 0, 0, LittlerootTown
- warp_def 2, 8, 0, 0, LittlerootTown
- warp_def 2, 2, 0, 0, LittlerootTown_MaysHouse_2F
+ warp_def 1, 8, 0, 0, MAP_LITTLEROOT_TOWN
+ warp_def 2, 8, 0, 0, MAP_LITTLEROOT_TOWN
+ warp_def 2, 2, 0, 0, MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F
LittlerootTown_MaysHouse_1F_MapCoordEvents:: @ 8385954
coord_event 2, 8, 0, 0, 0x4092, 4, 0, LittlerootTown_MaysHouse_1F_EventScript_152A35
diff --git a/data/maps/events/LittlerootTown_MaysHouse_2F.inc b/data/maps/events/LittlerootTown_MaysHouse_2F.inc
index 3a3656287..fbec5e0e7 100644
--- a/data/maps/events/LittlerootTown_MaysHouse_2F.inc
+++ b/data/maps/events/LittlerootTown_MaysHouse_2F.inc
@@ -1,22 +1,22 @@
LittlerootTown_MaysHouse_2F_MapObjects:: @ 8385978
- object_event 1, MAP_OBJ_GFX_RIVAL_MAY_NORMAL, 0, 8, 0, 2, 0, 3, 7, 1, 0, 0, 0, 0, 0, LittlerootTown_MaysHouse_2F_EventScript_152A9D, 722, 0, 0
- object_event 2, 240, 0, 0, 0, 6, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 1, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 2, 0, 6, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 3, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 4, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 5, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 2, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 3, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 4, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 5, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, MAP_OBJ_GFX_MOM, 0, 1, 0, 1, 0, 3, 8, 1, 0, 0, 0, 0, 0, 0x0, 757, 0, 0
- object_event 15, MAP_OBJ_GFX_PICHU_DOLL, 0, 3, 0, 4, 0, 4, 8, 17, 0, 0, 0, 0, 0, 0x0, 849, 0, 0
+ object_event 1, MAP_OBJ_GFX_RIVAL_MAY_NORMAL, 0, 8, 0, 2, 0, 3, 7, 1, 0, 0, 0, 0, 0, LittlerootTown_MaysHouse_2F_EventScript_152A9D, FLAG_HIDE_MAY_UPSTAIRS, 0, 0
+ object_event 2, 240, 0, 0, 0, 6, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 1, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 2, 0, 6, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 3, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 4, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 5, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 2, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 3, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 4, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 5, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, MAP_OBJ_GFX_MOM, 0, 1, 0, 1, 0, 3, 8, 1, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_MOM_UPSTAIRS, 0, 0
+ object_event 15, MAP_OBJ_GFX_PICHU_DOLL, 0, 3, 0, 4, 0, 4, 8, 17, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_MAY_PICHU_DOLL, 0, 0
LittlerootTown_MaysHouse_2F_MapWarps:: @ 8385AE0
- warp_def 1, 1, 0, 2, LittlerootTown_MaysHouse_1F
+ warp_def 1, 1, 0, 2, MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F
LittlerootTown_MaysHouse_2F_MapBGEvents:: @ 8385AE8
bg_event 5, 1, 0, 0, 0, LittlerootTown_MaysHouse_2F_EventScript_152870
diff --git a/data/maps/events/LittlerootTown_ProfessorBirchsLab.inc b/data/maps/events/LittlerootTown_ProfessorBirchsLab.inc
index cbc1e4154..fbe8df720 100644
--- a/data/maps/events/LittlerootTown_ProfessorBirchsLab.inc
+++ b/data/maps/events/LittlerootTown_ProfessorBirchsLab.inc
@@ -1,11 +1,11 @@
LittlerootTown_ProfessorBirchsLab_MapObjects:: @ 8385B2C
object_event 1, MAP_OBJ_GFX_SCIENTIST_1, 0, 9, 0, 8, 0, 3, 2, 17, 0, 0, 0, 0, 0, LittlerootTown_ProfessorBirchsLab_EventScript_152D63, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_PROF_BIRCH, 0, 6, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, LittlerootTown_ProfessorBirchsLab_EventScript_152D9A, 721, 0, 0
- object_event 3, 240, 0, 7, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, LittlerootTown_ProfessorBirchsLab_EventScript_152EA3, 889, 0, 0
+ object_event 2, MAP_OBJ_GFX_PROF_BIRCH, 0, 6, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, LittlerootTown_ProfessorBirchsLab_EventScript_152D9A, FLAG_HIDE_BIRCH_IN_LAB, 0, 0
+ object_event 3, 240, 0, 7, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, LittlerootTown_ProfessorBirchsLab_EventScript_152EA3, FLAG_HIDE_RIVAL_BIRCH_LAB, 0, 0
LittlerootTown_ProfessorBirchsLab_MapWarps:: @ 8385B74
- warp_def 6, 12, 0, 2, LittlerootTown
- warp_def 7, 12, 0, 2, LittlerootTown
+ warp_def 6, 12, 0, 2, MAP_LITTLEROOT_TOWN
+ warp_def 7, 12, 0, 2, MAP_LITTLEROOT_TOWN
LittlerootTown_ProfessorBirchsLab_MapBGEvents:: @ 8385B84
bg_event 10, 7, 0, 1, 0, LittlerootTown_ProfessorBirchsLab_EventScript_152E9A
diff --git a/data/maps/events/MagmaHideout_1F.inc b/data/maps/events/MagmaHideout_1F.inc
index b90e53ff8..2a41a962f 100644
--- a/data/maps/events/MagmaHideout_1F.inc
+++ b/data/maps/events/MagmaHideout_1F.inc
@@ -1,11 +1,11 @@
MagmaHideout_1F_MapObjects:: @ 838E9BC
- object_event 1, 241, 0, 13, 0, 19, 0, 3, 8, 17, 0, 0, 0, 0, 0, MagmaHideout_1F_EventScript_15D7CE, 821, 0, 0
- object_event 2, 241, 0, 14, 0, 19, 0, 3, 8, 17, 0, 0, 0, 0, 0, MagmaHideout_1F_EventScript_15D7ED, 822, 0, 0
+ object_event 1, 241, 0, 13, 0, 19, 0, 3, 8, 17, 0, 0, 0, 0, 0, MagmaHideout_1F_EventScript_15D7CE, FLAG_HIDE_GRUNT_1_BLOCKING_HIDEOUT, 0, 0
+ object_event 2, 241, 0, 14, 0, 19, 0, 3, 8, 17, 0, 0, 0, 0, 0, MagmaHideout_1F_EventScript_15D7ED, FLAG_HIDE_GRUNT_2_BLOCKING_HIDEOUT, 0, 0
object_event 3, 241, 0, 20, 0, 3, 0, 3, 50, 110, 0, 1, 0, 3, 0, MagmaHideout_1F_EventScript_15D80C, 0, 0, 0
MagmaHideout_1F_MapWarps:: @ 838EA04
- warp_def 13, 27, 1, 14, LilycoveCity
- warp_def 13, 1, 3, 0, MagmaHideout_B1F
+ warp_def 13, 27, 1, 14, MAP_LILYCOVE_CITY
+ warp_def 13, 1, 3, 0, MAP_MAGMA_HIDEOUT_B1F
MagmaHideout_1F_MapEvents:: @ 838EA14
map_events MagmaHideout_1F_MapObjects, MagmaHideout_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MagmaHideout_B1F.inc b/data/maps/events/MagmaHideout_B1F.inc
index c9f1101cc..3ed63b847 100644
--- a/data/maps/events/MagmaHideout_B1F.inc
+++ b/data/maps/events/MagmaHideout_B1F.inc
@@ -2,42 +2,42 @@ MagmaHideout_B1F_MapObjects:: @ 838EA28
object_event 1, 241, 0, 33, 0, 3, 0, 3, 9, 17, 0, 1, 0, 5, 0, MagmaHideout_B1F_EventScript_15D850, 0, 0, 0
object_event 2, 241, 0, 41, 0, 17, 0, 3, 23, 17, 0, 1, 0, 3, 0, MagmaHideout_B1F_EventScript_15D875, 0, 0, 0
object_event 3, 242, 0, 33, 0, 19, 0, 3, 27, 20, 0, 1, 0, 3, 0, MagmaHideout_B1F_EventScript_15D89A, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 26, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, MagmaHideout_B1F_EventScript_1B19C2, 1125, 0, 0
- object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 14, 0, 18, 0, 3, 1, 17, 0, 0, 0, 0, 0, MagmaHideout_B1F_EventScript_1B19DC, 1126, 0, 0
- object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 27, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, MagmaHideout_B1F_EventScript_1A04FD, 977, 0, 0
- object_event 7, MAP_OBJ_GFX_ITEM_BALL, 0, 26, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, MagmaHideout_B1F_EventScript_1B19CF, 1134, 0, 0
- object_event 8, MAP_OBJ_GFX_ITEM_BALL, 0, 27, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, MagmaHideout_B1F_EventScript_1A051B, 978, 0, 0
+ object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 26, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, MagmaHideout_B1F_EventScript_1B19C2, FLAG_ITEM_MAGMA_HIDEOUT_B1F_1, 0, 0
+ object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 14, 0, 18, 0, 3, 1, 17, 0, 0, 0, 0, 0, MagmaHideout_B1F_EventScript_1B19DC, FLAG_ITEM_MAGMA_HIDEOUT_B1F_2, 0, 0
+ object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 27, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, MagmaHideout_B1F_EventScript_1A04FD, FLAG_HIDE_ELECTRODE_1_HIDEOUT, 0, 0
+ object_event 7, MAP_OBJ_GFX_ITEM_BALL, 0, 26, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, MagmaHideout_B1F_EventScript_1B19CF, FLAG_ITEM_MAGMA_HIDEOUT_B1F_3, 0, 0
+ object_event 8, MAP_OBJ_GFX_ITEM_BALL, 0, 27, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, MagmaHideout_B1F_EventScript_1A051B, FLAG_HIDE_ELECTRODE_2_HIDEOUT, 0, 0
MagmaHideout_B1F_MapWarps:: @ 838EAE8
- warp_def 3, 3, 3, 1, MagmaHideout_1F
- warp_def 14, 3, 3, 0, MagmaHideout_B2F
- warp_def 23, 1, 3, 1, MagmaHideout_B2F
- warp_def 29, 1, 3, 2, MagmaHideout_B2F
- warp_def 8, 5, 3, 6, MagmaHideout_B1F
- warp_def 8, 7, 3, 9, MagmaHideout_B1F
- warp_def 14, 8, 3, 4, MagmaHideout_B1F
- warp_def 23, 5, 3, 10, MagmaHideout_B1F
- warp_def 39, 5, 3, 13, MagmaHideout_B1F
- warp_def 16, 16, 3, 5, MagmaHideout_B1F
- warp_def 21, 14, 3, 7, MagmaHideout_B1F
- warp_def 21, 20, 3, 12, MagmaHideout_B1F
- warp_def 38, 11, 3, 11, MagmaHideout_B1F
- warp_def 43, 19, 3, 8, MagmaHideout_B1F
- warp_def 34, 11, 3, 28, MagmaHideout_B1F
- warp_def 41, 11, 3, 16, MagmaHideout_B1F
- warp_def 56, 3, 3, 15, MagmaHideout_B1F
- warp_def 56, 5, 3, 16, MagmaHideout_B1F
- warp_def 53, 5, 3, 22, MagmaHideout_B1F
- warp_def 59, 5, 3, 20, MagmaHideout_B1F
- warp_def 53, 9, 3, 19, MagmaHideout_B1F
- warp_def 56, 9, 3, 24, MagmaHideout_B1F
- warp_def 59, 9, 3, 18, MagmaHideout_B1F
- warp_def 53, 13, 3, 17, MagmaHideout_B1F
- warp_def 56, 13, 3, 21, MagmaHideout_B1F
- warp_def 59, 13, 3, 26, MagmaHideout_B1F
- warp_def 53, 17, 3, 25, MagmaHideout_B1F
- warp_def 56, 17, 3, 21, MagmaHideout_B1F
- warp_def 59, 17, 3, 14, MagmaHideout_B1F
+ warp_def 3, 3, 3, 1, MAP_MAGMA_HIDEOUT_1F
+ warp_def 14, 3, 3, 0, MAP_MAGMA_HIDEOUT_B2F
+ warp_def 23, 1, 3, 1, MAP_MAGMA_HIDEOUT_B2F
+ warp_def 29, 1, 3, 2, MAP_MAGMA_HIDEOUT_B2F
+ warp_def 8, 5, 3, 6, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 8, 7, 3, 9, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 14, 8, 3, 4, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 23, 5, 3, 10, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 39, 5, 3, 13, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 16, 16, 3, 5, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 21, 14, 3, 7, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 21, 20, 3, 12, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 38, 11, 3, 11, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 43, 19, 3, 8, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 34, 11, 3, 28, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 41, 11, 3, 16, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 56, 3, 3, 15, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 56, 5, 3, 16, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 53, 5, 3, 22, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 59, 5, 3, 20, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 53, 9, 3, 19, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 56, 9, 3, 24, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 59, 9, 3, 18, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 53, 13, 3, 17, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 56, 13, 3, 21, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 59, 13, 3, 26, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 53, 17, 3, 25, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 56, 17, 3, 21, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 59, 17, 3, 14, MAP_MAGMA_HIDEOUT_B1F
MagmaHideout_B1F_MapEvents:: @ 838EBD0
map_events MagmaHideout_B1F_MapObjects, MagmaHideout_B1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MagmaHideout_B2F.inc b/data/maps/events/MagmaHideout_B2F.inc
index 258592732..16ac562b5 100644
--- a/data/maps/events/MagmaHideout_B2F.inc
+++ b/data/maps/events/MagmaHideout_B2F.inc
@@ -1,19 +1,19 @@
MagmaHideout_B2F_MapObjects:: @ 838EBE4
- object_event 1, 241, 0, 8, 0, 19, 0, 3, 10, 17, 0, 0, 0, 0, 0, MagmaHideout_B2F_EventScript_15D8E1, 924, 0, 0
- object_event 2, 241, 0, 31, 0, 11, 0, 3, 51, 71, 0, 1, 0, 3, 0, MagmaHideout_B2F_EventScript_15D962, 924, 0, 0
- object_event 3, MAP_OBJ_GFX_SUBMARINE_SHADOW, 0, 12, 0, 20, 0, 1, 10, 17, 0, 0, 0, 0, 0, 0x0, 943, 0, 0
- object_event 4, 242, 0, 13, 0, 3, 0, 3, 9, 17, 0, 1, 0, 4, 0, MagmaHideout_B2F_EventScript_15D987, 924, 0, 0
- object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 31, 0, 20, 0, 3, 8, 17, 0, 0, 0, 0, 0, MagmaHideout_B2F_EventScript_1B19E9, 1127, 0, 0
+ object_event 1, 241, 0, 8, 0, 19, 0, 3, 10, 17, 0, 0, 0, 0, 0, MagmaHideout_B2F_EventScript_15D8E1, FLAG_HIDE_GRUNTS_HIDEOUTS, 0, 0
+ object_event 2, 241, 0, 31, 0, 11, 0, 3, 51, 71, 0, 1, 0, 3, 0, MagmaHideout_B2F_EventScript_15D962, FLAG_HIDE_GRUNTS_HIDEOUTS, 0, 0
+ object_event 3, MAP_OBJ_GFX_SUBMARINE_SHADOW, 0, 12, 0, 20, 0, 1, 10, 17, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_SUBMARINE_SHADOW_HIDEOUT, 0, 0
+ object_event 4, 242, 0, 13, 0, 3, 0, 3, 9, 17, 0, 1, 0, 4, 0, MagmaHideout_B2F_EventScript_15D987, FLAG_HIDE_GRUNTS_HIDEOUTS, 0, 0
+ object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 31, 0, 20, 0, 3, 8, 17, 0, 0, 0, 0, 0, MagmaHideout_B2F_EventScript_1B19E9, FLAG_ITEM_MAGMA_HIDEOUT_B2F_1, 0, 0
MagmaHideout_B2F_MapWarps:: @ 838EC5C
- warp_def 3, 3, 3, 1, MagmaHideout_B1F
- warp_def 12, 1, 3, 2, MagmaHideout_B1F
- warp_def 18, 1, 3, 3, MagmaHideout_B1F
- warp_def 2, 14, 3, 4, MagmaHideout_B1F
- warp_def 12, 13, 3, 5, MagmaHideout_B2F
- warp_def 17, 13, 3, 4, MagmaHideout_B2F
- warp_def 31, 4, 3, 7, MagmaHideout_B2F
- warp_def 31, 16, 3, 6, MagmaHideout_B2F
+ warp_def 3, 3, 3, 1, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 12, 1, 3, 2, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 18, 1, 3, 3, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 2, 14, 3, 4, MAP_MAGMA_HIDEOUT_B1F
+ warp_def 12, 13, 3, 5, MAP_MAGMA_HIDEOUT_B2F
+ warp_def 17, 13, 3, 4, MAP_MAGMA_HIDEOUT_B2F
+ warp_def 31, 4, 3, 7, MAP_MAGMA_HIDEOUT_B2F
+ warp_def 31, 16, 3, 6, MAP_MAGMA_HIDEOUT_B2F
MagmaHideout_B2F_MapCoordEvents:: @ 838EC9C
coord_event 7, 16, 3, 0, 0x4001, 0, 0, MagmaHideout_B2F_EventScript_15D8BD
diff --git a/data/maps/events/MauvilleCity.inc b/data/maps/events/MauvilleCity.inc
index 4d228a92c..fee44bb1e 100644
--- a/data/maps/events/MauvilleCity.inc
+++ b/data/maps/events/MauvilleCity.inc
@@ -4,19 +4,19 @@ MauvilleCity_MapObjects:: @ 837FB90
object_event 3, MAP_OBJ_GFX_MANIAC, 0, 14, 0, 11, 0, 3, 10, 0, 0, 0, 0, 0, 0, MauvilleCity_EventScript_14C063, 0, 0, 0
object_event 4, MAP_OBJ_GFX_WOMAN_5, 0, 18, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, MauvilleCity_EventScript_14C06C, 0, 0, 0
object_event 5, MAP_OBJ_GFX_SCHOOL_KID_M, 0, 17, 0, 14, 0, 3, 8, 0, 0, 0, 0, 0, 0, MauvilleCity_EventScript_14C0A2, 0, 0, 0
- object_event 6, MAP_OBJ_GFX_WALLY, 0, 8, 0, 6, 0, 3, 7, 0, 0, 0, 0, 0, 0, MauvilleCity_EventScript_14C0F9, 804, 0, 0
- object_event 7, MAP_OBJ_GFX_MAN_3, 0, 9, 0, 6, 0, 3, 9, 0, 0, 0, 0, 0, 0, MauvilleCity_EventScript_14C0C4, 805, 0, 0
- object_event 8, MAP_OBJ_GFX_WATTSON, 0, 29, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, MauvilleCity_EventScript_14C2F2, 912, 0, 0
- object_event 9, MAP_OBJ_GFX_ITEM_BALL, 0, 28, 0, 19, 0, 3, 1, 17, 0, 0, 0, 0, 0, MauvilleCity_EventScript_1B171E, 1116, 0, 0
+ object_event 6, MAP_OBJ_GFX_WALLY, 0, 8, 0, 6, 0, 3, 7, 0, 0, 0, 0, 0, 0, MauvilleCity_EventScript_14C0F9, FLAG_HIDE_WALLY_MAUVILLE, 0, 0
+ object_event 7, MAP_OBJ_GFX_MAN_3, 0, 9, 0, 6, 0, 3, 9, 0, 0, 0, 0, 0, 0, MauvilleCity_EventScript_14C0C4, FLAG_HIDE_WALLY_FATHER_MAUVILLE, 0, 0
+ object_event 8, MAP_OBJ_GFX_WATTSON, 0, 29, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, MauvilleCity_EventScript_14C2F2, FLAG_HIDE_WATTSON_MAUVILLE, 0, 0
+ object_event 9, MAP_OBJ_GFX_ITEM_BALL, 0, 28, 0, 19, 0, 3, 1, 17, 0, 0, 0, 0, 0, MauvilleCity_EventScript_1B171E, FLAG_ITEM_MAUVILLE_1, 0, 0
MauvilleCity_MapWarps:: @ 837FC68
- warp_def 8, 5, 0, 0, MauvilleCity_Gym
- warp_def 22, 5, 0, 0, MauvilleCity_PokemonCenter_1F
- warp_def 35, 5, 0, 0, MauvilleCity_BikeShop
- warp_def 23, 14, 0, 0, MauvilleCity_Mart
- warp_def 32, 14, 0, 0, MauvilleCity_House1
- warp_def 8, 13, 0, 0, MauvilleCity_GameCorner
- warp_def 19, 14, 0, 0, MauvilleCity_House2
+ warp_def 8, 5, 0, 0, MAP_MAUVILLE_CITY_GYM
+ warp_def 22, 5, 0, 0, MAP_MAUVILLE_CITY_POKEMON_CENTER_1F
+ warp_def 35, 5, 0, 0, MAP_MAUVILLE_CITY_BIKE_SHOP
+ warp_def 23, 14, 0, 0, MAP_MAUVILLE_CITY_MART
+ warp_def 32, 14, 0, 0, MAP_MAUVILLE_CITY_HOUSE1
+ warp_def 8, 13, 0, 0, MAP_MAUVILLE_CITY_GAME_CORNER
+ warp_def 19, 14, 0, 0, MAP_MAUVILLE_CITY_HOUSE2
MauvilleCity_MapBGEvents:: @ 837FCA0
bg_event 23, 5, 0, 1, 0, MauvilleCity_EventScript_1A00EA
diff --git a/data/maps/events/MauvilleCity_BikeShop.inc b/data/maps/events/MauvilleCity_BikeShop.inc
index 6c064a1f7..c215f96b0 100644
--- a/data/maps/events/MauvilleCity_BikeShop.inc
+++ b/data/maps/events/MauvilleCity_BikeShop.inc
@@ -3,8 +3,8 @@ MauvilleCity_BikeShop_MapObjects:: @ 8388318
object_event 2, MAP_OBJ_GFX_MAN_6, 0, 7, 0, 6, 0, 3, 2, 17, 0, 0, 0, 0, 0, MauvilleCity_BikeShop_EventScript_15690B, 0, 0, 0
MauvilleCity_BikeShop_MapWarps:: @ 8388348
- warp_def 3, 8, 0, 2, MauvilleCity
- warp_def 4, 8, 0, 2, MauvilleCity
+ warp_def 3, 8, 0, 2, MAP_MAUVILLE_CITY
+ warp_def 4, 8, 0, 2, MAP_MAUVILLE_CITY
MauvilleCity_BikeShop_MapBGEvents:: @ 8388358
bg_event 8, 1, 0, 0, 0, MauvilleCity_BikeShop_EventScript_156914
diff --git a/data/maps/events/MauvilleCity_GameCorner.inc b/data/maps/events/MauvilleCity_GameCorner.inc
index ed8549079..bd0b472a2 100644
--- a/data/maps/events/MauvilleCity_GameCorner.inc
+++ b/data/maps/events/MauvilleCity_GameCorner.inc
@@ -13,8 +13,8 @@ MauvilleCity_GameCorner_MapObjects:: @ 83883C0
object_event 12, MAP_OBJ_GFX_WOMAN_7, 0, 4, 0, 6, 0, 3, 9, 17, 0, 0, 0, 0, 0, MauvilleCity_GameCorner_EventScript_157125, 0, 0, 0
MauvilleCity_GameCorner_MapWarps:: @ 83884E0
- warp_def 11, 10, 3, 5, MauvilleCity
- warp_def 12, 10, 3, 5, MauvilleCity
+ warp_def 11, 10, 3, 5, MAP_MAUVILLE_CITY
+ warp_def 12, 10, 3, 5, MAP_MAUVILLE_CITY
MauvilleCity_GameCorner_MapBGEvents:: @ 83884F0
bg_event 2, 6, 0, 3, 0, MauvilleCity_GameCorner_EventScript_157135
diff --git a/data/maps/events/MauvilleCity_Gym.inc b/data/maps/events/MauvilleCity_Gym.inc
index 4a9ee563f..d30c6b275 100644
--- a/data/maps/events/MauvilleCity_Gym.inc
+++ b/data/maps/events/MauvilleCity_Gym.inc
@@ -1,5 +1,5 @@
MauvilleCity_Gym_MapObjects:: @ 838821C
- object_event 1, MAP_OBJ_GFX_WATTSON, 0, 4, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, MauvilleCity_Gym_EventScript_1565AB, 913, 0, 0
+ object_event 1, MAP_OBJ_GFX_WATTSON, 0, 4, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, MauvilleCity_Gym_EventScript_1565AB, FLAG_HIDE_WATTSON_MAUVILLE_GYM, 0, 0
object_event 2, MAP_OBJ_GFX_MAN_6, 0, 6, 0, 9, 0, 3, 9, 0, 0, 1, 0, 2, 0, MauvilleCity_Gym_EventScript_1566FD, 0, 0, 0
object_event 3, MAP_OBJ_GFX_GIRL_3, 0, 7, 0, 11, 0, 3, 8, 0, 0, 1, 0, 1, 0, MauvilleCity_Gym_EventScript_15672B, 0, 0, 0
object_event 4, MAP_OBJ_GFX_YOUNGSTER, 0, 1, 0, 13, 0, 3, 10, 0, 0, 1, 0, 1, 0, MauvilleCity_Gym_EventScript_156714, 0, 0, 0
@@ -7,8 +7,8 @@ MauvilleCity_Gym_MapObjects:: @ 838821C
object_event 6, MAP_OBJ_GFX_MAN_2, 0, 7, 0, 20, 0, 3, 9, 0, 0, 0, 0, 0, 0, MauvilleCity_Gym_EventScript_156742, 0, 0, 0
MauvilleCity_Gym_MapWarps:: @ 83882AC
- warp_def 4, 20, 0, 0, MauvilleCity
- warp_def 5, 20, 0, 0, MauvilleCity
+ warp_def 4, 20, 0, 0, MAP_MAUVILLE_CITY
+ warp_def 5, 20, 0, 0, MAP_MAUVILLE_CITY
MauvilleCity_Gym_MapCoordEvents:: @ 83882BC
coord_event 0, 9, 3, 0, 0x4000, 0, 0, MauvilleCity_Gym_EventScript_15664B
diff --git a/data/maps/events/MauvilleCity_House1.inc b/data/maps/events/MauvilleCity_House1.inc
index 12d6d8cc8..86b07e3dd 100644
--- a/data/maps/events/MauvilleCity_House1.inc
+++ b/data/maps/events/MauvilleCity_House1.inc
@@ -2,8 +2,8 @@ MauvilleCity_House1_MapObjects:: @ 8388384
object_event 1, MAP_OBJ_GFX_SCIENTIST_1, 0, 4, 0, 4, 0, 3, 10, 0, 0, 0, 0, 0, 0, MauvilleCity_House1_EventScript_1569FD, 0, 0, 0
MauvilleCity_House1_MapWarps:: @ 838839C
- warp_def 3, 7, 0, 4, MauvilleCity
- warp_def 4, 7, 0, 4, MauvilleCity
+ warp_def 3, 7, 0, 4, MAP_MAUVILLE_CITY
+ warp_def 4, 7, 0, 4, MAP_MAUVILLE_CITY
MauvilleCity_House1_MapEvents:: @ 83883AC
map_events MauvilleCity_House1_MapObjects, MauvilleCity_House1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MauvilleCity_House2.inc b/data/maps/events/MauvilleCity_House2.inc
index 9feaafe2c..2e5a39157 100644
--- a/data/maps/events/MauvilleCity_House2.inc
+++ b/data/maps/events/MauvilleCity_House2.inc
@@ -2,8 +2,8 @@ MauvilleCity_House2_MapObjects:: @ 8388624
object_event 1, MAP_OBJ_GFX_WOMAN_4, 0, 4, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, MauvilleCity_House2_EventScript_1572C0, 0, 0, 0
MauvilleCity_House2_MapWarps:: @ 838863C
- warp_def 3, 8, 0, 6, MauvilleCity
- warp_def 4, 8, 0, 6, MauvilleCity
+ warp_def 3, 8, 0, 6, MAP_MAUVILLE_CITY
+ warp_def 4, 8, 0, 6, MAP_MAUVILLE_CITY
MauvilleCity_House2_MapEvents:: @ 838864C
map_events MauvilleCity_House2_MapObjects, MauvilleCity_House2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MauvilleCity_Mart.inc b/data/maps/events/MauvilleCity_Mart.inc
index 05951f578..3453c6fce 100644
--- a/data/maps/events/MauvilleCity_Mart.inc
+++ b/data/maps/events/MauvilleCity_Mart.inc
@@ -4,8 +4,8 @@ MauvilleCity_Mart_MapObjects:: @ 83887A0
object_event 3, MAP_OBJ_GFX_MAN_4, 0, 5, 0, 5, 0, 3, 10, 0, 0, 0, 0, 0, 0, MauvilleCity_Mart_EventScript_1573FD, 0, 0, 0
MauvilleCity_Mart_MapWarps:: @ 83887E8
- warp_def 3, 7, 0, 3, MauvilleCity
- warp_def 4, 7, 0, 3, MauvilleCity
+ warp_def 3, 7, 0, 3, MAP_MAUVILLE_CITY
+ warp_def 4, 7, 0, 3, MAP_MAUVILLE_CITY
MauvilleCity_Mart_MapEvents:: @ 83887F8
map_events MauvilleCity_Mart_MapObjects, MauvilleCity_Mart_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MauvilleCity_PokemonCenter_1F.inc b/data/maps/events/MauvilleCity_PokemonCenter_1F.inc
index 0f8e80d5c..da60ac284 100644
--- a/data/maps/events/MauvilleCity_PokemonCenter_1F.inc
+++ b/data/maps/events/MauvilleCity_PokemonCenter_1F.inc
@@ -6,9 +6,9 @@ MauvilleCity_PokemonCenter_1F_MapObjects:: @ 8388660
object_event 5, MAP_OBJ_GFX_YOUNGSTER, 0, 2, 0, 8, 0, 3, 1, 17, 0, 0, 0, 0, 0, MauvilleCity_PokemonCenter_1F_EventScript_157389, 0, 0, 0
MauvilleCity_PokemonCenter_1F_MapWarps:: @ 83886D8
- warp_def 7, 8, 3, 1, MauvilleCity
- warp_def 6, 8, 3, 1, MauvilleCity
- warp_def 1, 6, 4, 0, MauvilleCity_PokemonCenter_2F
+ warp_def 7, 8, 3, 1, MAP_MAUVILLE_CITY
+ warp_def 6, 8, 3, 1, MAP_MAUVILLE_CITY
+ warp_def 1, 6, 4, 0, MAP_MAUVILLE_CITY_POKEMON_CENTER_2F
MauvilleCity_PokemonCenter_1F_MapEvents:: @ 83886F0
map_events MauvilleCity_PokemonCenter_1F_MapObjects, MauvilleCity_PokemonCenter_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MauvilleCity_PokemonCenter_2F.inc b/data/maps/events/MauvilleCity_PokemonCenter_2F.inc
index dbd55e499..501c40012 100644
--- a/data/maps/events/MauvilleCity_PokemonCenter_2F.inc
+++ b/data/maps/events/MauvilleCity_PokemonCenter_2F.inc
@@ -5,11 +5,11 @@ MauvilleCity_PokemonCenter_2F_MapObjects:: @ 8388704
object_event 4, MAP_OBJ_GFX_YOUNGSTER, 0, 6, 0, 7, 0, 3, 5, 1, 0, 0, 0, 0, 0, MauvilleCity_PokemonCenter_2F_EventScript_1573B4, 0, 0, 0
MauvilleCity_PokemonCenter_2F_MapWarps:: @ 8388764
- warp_def 1, 5, 4, 2, MauvilleCity_PokemonCenter_1F
- warp_def 5, 1, 0, 0, SingleBattleColosseum
- warp_def 8, 1, 0, 0, TradeCenter
- warp_def 11, 1, 0, 0, RecordCorner
- warp_def 0, 0, 0, 0, DoubleBattleColosseum
+ warp_def 1, 5, 4, 2, MAP_MAUVILLE_CITY_POKEMON_CENTER_1F
+ warp_def 5, 1, 0, 0, MAP_SINGLE_BATTLE_COLOSSEUM
+ warp_def 8, 1, 0, 0, MAP_TRADE_CENTER
+ warp_def 11, 1, 0, 0, MAP_RECORD_CORNER
+ warp_def 0, 0, 0, 0, MAP_DOUBLE_BATTLE_COLOSSEUM
MauvilleCity_PokemonCenter_2F_MapEvents:: @ 838878C
map_events MauvilleCity_PokemonCenter_2F_MapObjects, MauvilleCity_PokemonCenter_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MeteorFalls_1F_1R.inc b/data/maps/events/MeteorFalls_1F_1R.inc
index 1178bf543..abccfa283 100644
--- a/data/maps/events/MeteorFalls_1F_1R.inc
+++ b/data/maps/events/MeteorFalls_1F_1R.inc
@@ -1,21 +1,21 @@
MeteorFalls_1F_1R_MapObjects:: @ 838BACC
- object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 2, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, MeteorFalls_1F_1R_EventScript_1B17FB, 1044, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 2, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, MeteorFalls_1F_1R_EventScript_1B1815, 1046, 0, 0
- object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 27, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, MeteorFalls_1F_1R_EventScript_1B1808, 1045, 0, 0
- object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 26, 0, 32, 0, 3, 1, 0, 0, 0, 0, 0, 0, MeteorFalls_1F_1R_EventScript_1B1822, 1047, 0, 0
- object_event 5, 241, 0, 12, 0, 20, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 938, 0, 0
- object_event 6, 241, 0, 14, 0, 21, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0x0, 938, 0, 0
- object_event 7, 247, 0, 6, 0, 20, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, 939, 0, 0
- object_event 8, 244, 0, 6, 0, 20, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, 939, 0, 0
- object_event 9, 244, 0, 6, 0, 21, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 939, 0, 0
- object_event 10, MAP_OBJ_GFX_SCIENTIST_1, 0, 13, 0, 23, 0, 3, 21, 0, 0, 0, 0, 0, 0, MeteorFalls_1F_1R_EventScript_15C656, 942, 0, 0
+ object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 2, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, MeteorFalls_1F_1R_EventScript_1B17FB, FLAG_ITEM_METEOR_FALLS_1F_1R_1, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 2, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, MeteorFalls_1F_1R_EventScript_1B1815, FLAG_ITEM_METEOR_FALLS_1F_1R_3, 0, 0
+ object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 27, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, MeteorFalls_1F_1R_EventScript_1B1808, FLAG_ITEM_METEOR_FALLS_1F_1R_2, 0, 0
+ object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 26, 0, 32, 0, 3, 1, 0, 0, 0, 0, 0, 0, MeteorFalls_1F_1R_EventScript_1B1822, FLAG_ITEM_METEOR_FALLS_1F_1R_4, 0, 0
+ object_event 5, 241, 0, 12, 0, 20, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_GRUNTS_METEOR_FALLS_1F, 0, 0
+ object_event 6, 241, 0, 14, 0, 21, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_GRUNTS_METEOR_FALLS_1F, 0, 0
+ object_event 7, 247, 0, 6, 0, 20, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_OTHER_TEAM_METEOR_FALLS_1F, 0, 0
+ object_event 8, 244, 0, 6, 0, 20, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_OTHER_TEAM_METEOR_FALLS_1F, 0, 0
+ object_event 9, 244, 0, 6, 0, 21, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_OTHER_TEAM_METEOR_FALLS_1F, 0, 0
+ object_event 10, MAP_OBJ_GFX_SCIENTIST_1, 0, 13, 0, 23, 0, 3, 21, 0, 0, 0, 0, 0, 0, MeteorFalls_1F_1R_EventScript_15C656, FLAG_HIDE_PROF_COSMO_METEOR_FALLS, 0, 0
MeteorFalls_1F_1R_MapWarps:: @ 838BBBC
- warp_def 27, 18, 4, 0, Route114
- warp_def 6, 39, 3, 0, Route115
- warp_def 10, 3, 3, 0, MeteorFalls_1F_2R
- warp_def 5, 4, 3, 4, MeteorFalls_B1F_1R
- warp_def 26, 28, 3, 5, MeteorFalls_B1F_1R
+ warp_def 27, 18, 4, 0, MAP_ROUTE114
+ warp_def 6, 39, 3, 0, MAP_ROUTE115
+ warp_def 10, 3, 3, 0, MAP_METEOR_FALLS_1F_2R
+ warp_def 5, 4, 3, 4, MAP_METEOR_FALLS_B1F_1R
+ warp_def 26, 28, 3, 5, MAP_METEOR_FALLS_B1F_1R
MeteorFalls_1F_1R_MapCoordEvents:: @ 838BBE4
coord_event 14, 18, 4, 0, 0x40bf, 0, 0, MeteorFalls_1F_1R_EventScript_15C49C
diff --git a/data/maps/events/MeteorFalls_1F_2R.inc b/data/maps/events/MeteorFalls_1F_2R.inc
index 549620aa9..060f9a84d 100644
--- a/data/maps/events/MeteorFalls_1F_2R.inc
+++ b/data/maps/events/MeteorFalls_1F_2R.inc
@@ -4,10 +4,10 @@ MeteorFalls_1F_2R_MapObjects:: @ 838BC20
object_event 3, MAP_OBJ_GFX_OLD_WOMAN_1, 0, 7, 0, 12, 0, 3, 8, 17, 0, 1, 0, 0, 0, MeteorFalls_1F_2R_EventScript_15C6FD, 0, 0, 0
MeteorFalls_1F_2R_MapWarps:: @ 838BC68
- warp_def 10, 29, 3, 2, MeteorFalls_1F_1R
- warp_def 4, 14, 3, 0, MeteorFalls_B1F_1R
- warp_def 7, 20, 3, 1, MeteorFalls_B1F_1R
- warp_def 21, 23, 3, 2, MeteorFalls_B1F_1R
+ warp_def 10, 29, 3, 2, MAP_METEOR_FALLS_1F_1R
+ warp_def 4, 14, 3, 0, MAP_METEOR_FALLS_B1F_1R
+ warp_def 7, 20, 3, 1, MAP_METEOR_FALLS_B1F_1R
+ warp_def 21, 23, 3, 2, MAP_METEOR_FALLS_B1F_1R
MeteorFalls_1F_2R_MapBGEvents:: @ 838BC88
bg_event 38, 9, 0, 1, 0, MeteorFalls_1F_2R_EventScript_14E842
diff --git a/data/maps/events/MeteorFalls_B1F_1R.inc b/data/maps/events/MeteorFalls_B1F_1R.inc
index 796e31cd2..053c932ce 100644
--- a/data/maps/events/MeteorFalls_B1F_1R.inc
+++ b/data/maps/events/MeteorFalls_B1F_1R.inc
@@ -1,10 +1,10 @@
MeteorFalls_B1F_1R_MapWarps:: @ 838BCB4
- warp_def 5, 6, 4, 1, MeteorFalls_1F_2R
- warp_def 7, 11, 5, 2, MeteorFalls_1F_2R
- warp_def 18, 15, 4, 3, MeteorFalls_1F_2R
- warp_def 17, 3, 3, 0, MeteorFalls_B1F_2R
- warp_def 3, 23, 5, 3, MeteorFalls_1F_1R
- warp_def 20, 36, 3, 4, MeteorFalls_1F_1R
+ warp_def 5, 6, 4, 1, MAP_METEOR_FALLS_1F_2R
+ warp_def 7, 11, 5, 2, MAP_METEOR_FALLS_1F_2R
+ warp_def 18, 15, 4, 3, MAP_METEOR_FALLS_1F_2R
+ warp_def 17, 3, 3, 0, MAP_METEOR_FALLS_B1F_2R
+ warp_def 3, 23, 5, 3, MAP_METEOR_FALLS_1F_1R
+ warp_def 20, 36, 3, 4, MAP_METEOR_FALLS_1F_1R
MeteorFalls_B1F_1R_MapEvents:: @ 838BCE4
map_events 0x0, MeteorFalls_B1F_1R_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MeteorFalls_B1F_2R.inc b/data/maps/events/MeteorFalls_B1F_2R.inc
index abdad1f03..13e39d682 100644
--- a/data/maps/events/MeteorFalls_B1F_2R.inc
+++ b/data/maps/events/MeteorFalls_B1F_2R.inc
@@ -1,8 +1,8 @@
MeteorFalls_B1F_2R_MapObjects:: @ 838BCF8
- object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 5, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, MeteorFalls_B1F_2R_EventScript_1B182F, 1080, 0, 0
+ object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 5, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, MeteorFalls_B1F_2R_EventScript_1B182F, FLAG_ITEM_METEOR_FALLS_B1F_2R_1, 0, 0
MeteorFalls_B1F_2R_MapWarps:: @ 838BD10
- warp_def 5, 15, 3, 3, MeteorFalls_B1F_1R
+ warp_def 5, 15, 3, 3, MAP_METEOR_FALLS_B1F_1R
MeteorFalls_B1F_2R_MapEvents:: @ 838BD18
map_events MeteorFalls_B1F_2R_MapObjects, MeteorFalls_B1F_2R_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MossdeepCity.inc b/data/maps/events/MossdeepCity.inc
index b73bc64f3..a5b4fa74a 100644
--- a/data/maps/events/MossdeepCity.inc
+++ b/data/maps/events/MossdeepCity.inc
@@ -4,22 +4,22 @@ MossdeepCity_MapObjects:: @ 838042C
object_event 3, MAP_OBJ_GFX_WOMAN_2, 0, 32, 0, 12, 0, 5, 2, 17, 0, 0, 0, 0, 0, MossdeepCity_EventScript_14CFAE, 0, 0, 0
object_event 4, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 26, 0, 21, 0, 5, 3, 16, 0, 0, 0, 0, 0, MossdeepCity_EventScript_14CFC0, 0, 0, 0
object_event 5, MAP_OBJ_GFX_GIRL_1, 0, 45, 0, 18, 0, 7, 9, 0, 0, 0, 0, 0, 0, MossdeepCity_EventScript_14CFD2, 0, 0, 0
- object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 62, 0, 35, 0, 5, 1, 0, 0, 0, 0, 0, 0, MossdeepCity_EventScript_1B1745, 1043, 0, 0
+ object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 62, 0, 35, 0, 5, 1, 0, 0, 0, 0, 0, 0, MossdeepCity_EventScript_1B1745, FLAG_ITEM_MOSSDEEP_1, 0, 0
object_event 7, MAP_OBJ_GFX_MAN_1, 0, 53, 0, 5, 0, 7, 7, 0, 0, 0, 0, 0, 0, MossdeepCity_EventScript_14D011, 0, 0, 0
object_event 8, MAP_OBJ_GFX_GIRL_1, 0, 56, 0, 21, 0, 7, 10, 17, 0, 0, 0, 0, 0, MossdeepCity_EventScript_14CFDB, 0, 0, 0
object_event 9, MAP_OBJ_GFX_BOY_2, 0, 23, 0, 13, 0, 5, 2, 17, 0, 0, 0, 0, 0, MossdeepCity_EventScript_14D027, 0, 0, 0
MossdeepCity_MapWarps:: @ 8380504
- warp_def 28, 9, 0, 0, MossdeepCity_House1
- warp_def 38, 9, 0, 0, MossdeepCity_Gym
- warp_def 28, 16, 0, 0, MossdeepCity_PokemonCenter_1F
- warp_def 67, 24, 0, 0, MossdeepCity_House2
- warp_def 37, 18, 0, 0, MossdeepCity_Mart
- warp_def 49, 6, 0, 0, MossdeepCity_House3
- warp_def 19, 10, 0, 0, MossdeepCity_StevensHouse
- warp_def 18, 16, 0, 1, MossdeepCity_House4
- warp_def 64, 13, 0, 0, MossdeepCity_SpaceCenter_1F
- warp_def 36, 24, 0, 0, MossdeepCity_GameCorner_1F
+ warp_def 28, 9, 0, 0, MAP_MOSSDEEP_CITY_HOUSE1
+ warp_def 38, 9, 0, 0, MAP_MOSSDEEP_CITY_GYM
+ warp_def 28, 16, 0, 0, MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F
+ warp_def 67, 24, 0, 0, MAP_MOSSDEEP_CITY_HOUSE2
+ warp_def 37, 18, 0, 0, MAP_MOSSDEEP_CITY_MART
+ warp_def 49, 6, 0, 0, MAP_MOSSDEEP_CITY_HOUSE3
+ warp_def 19, 10, 0, 0, MAP_MOSSDEEP_CITY_STEVENS_HOUSE
+ warp_def 18, 16, 0, 1, MAP_MOSSDEEP_CITY_HOUSE4
+ warp_def 64, 13, 0, 0, MAP_MOSSDEEP_CITY_SPACE_CENTER_1F
+ warp_def 36, 24, 0, 0, MAP_MOSSDEEP_CITY_GAME_CORNER_1F
MossdeepCity_MapCoordEvents:: @ 8380554
coord_event 25, 25, 0, 0, 0x4001, 0, 0, MossdeepCity_EventScript_14D008
diff --git a/data/maps/events/MossdeepCity_GameCorner_1F.inc b/data/maps/events/MossdeepCity_GameCorner_1F.inc
index 99350c4b0..f525533b2 100644
--- a/data/maps/events/MossdeepCity_GameCorner_1F.inc
+++ b/data/maps/events/MossdeepCity_GameCorner_1F.inc
@@ -2,9 +2,9 @@ MossdeepCity_GameCorner_1F_MapObjects:: @ 838AC6C
object_event 1, MAP_OBJ_GFX_OLD_MAN_1, 0, 4, 0, 4, 0, 3, 10, 0, 0, 0, 0, 0, 0, MossdeepCity_GameCorner_1F_EventScript_15AD42, 0, 0, 0
MossdeepCity_GameCorner_1F_MapWarps:: @ 838AC84
- warp_def 3, 7, 0, 9, MossdeepCity
- warp_def 4, 7, 0, 9, MossdeepCity
- warp_def 3, 1, 0, 0, MossdeepCity_GameCorner_B1F
+ warp_def 3, 7, 0, 9, MAP_MOSSDEEP_CITY
+ warp_def 4, 7, 0, 9, MAP_MOSSDEEP_CITY
+ warp_def 3, 1, 0, 0, MAP_MOSSDEEP_CITY_GAME_CORNER_B1F
MossdeepCity_GameCorner_1F_MapBGEvents:: @ 838AC9C
bg_event 3, 1, 0, 0, 0, MossdeepCity_GameCorner_1F_EventScript_15AE4C
diff --git a/data/maps/events/MossdeepCity_GameCorner_B1F.inc b/data/maps/events/MossdeepCity_GameCorner_B1F.inc
index 98c843f52..58acb3300 100644
--- a/data/maps/events/MossdeepCity_GameCorner_B1F.inc
+++ b/data/maps/events/MossdeepCity_GameCorner_B1F.inc
@@ -2,7 +2,7 @@ MossdeepCity_GameCorner_B1F_MapObjects:: @ 838ACBC
object_event 1, 240, 0, 6, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0x0, 0, 0, 0
MossdeepCity_GameCorner_B1F_MapWarps:: @ 838ACD4
- warp_def 3, 1, 0, 2, MossdeepCity_GameCorner_1F
+ warp_def 3, 1, 0, 2, MAP_MOSSDEEP_CITY_GAME_CORNER_1F
MossdeepCity_GameCorner_B1F_MapEvents:: @ 838ACDC
map_events MossdeepCity_GameCorner_B1F_MapObjects, MossdeepCity_GameCorner_B1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MossdeepCity_Gym.inc b/data/maps/events/MossdeepCity_Gym.inc
index d80237a3a..80812cc4d 100644
--- a/data/maps/events/MossdeepCity_Gym.inc
+++ b/data/maps/events/MossdeepCity_Gym.inc
@@ -10,8 +10,8 @@ MossdeepCity_Gym_MapObjects:: @ 838A660
object_event 9, MAP_OBJ_GFX_LIZA, 0, 9, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, MossdeepCity_Gym_EventScript_15A56B, 0, 0, 0
MossdeepCity_Gym_MapWarps:: @ 838A738
- warp_def 9, 29, 0, 1, MossdeepCity
- warp_def 10, 29, 0, 1, MossdeepCity
+ warp_def 9, 29, 0, 1, MAP_MOSSDEEP_CITY
+ warp_def 10, 29, 0, 1, MAP_MOSSDEEP_CITY
MossdeepCity_Gym_MapCoordEvents:: @ 838A748
coord_event 12, 3, 3, 0, 0x4001, 0, 0, MossdeepCity_Gym_EventScript_15A742
diff --git a/data/maps/events/MossdeepCity_House1.inc b/data/maps/events/MossdeepCity_House1.inc
index 251440343..ec7bbdc58 100644
--- a/data/maps/events/MossdeepCity_House1.inc
+++ b/data/maps/events/MossdeepCity_House1.inc
@@ -3,8 +3,8 @@ MossdeepCity_House1_MapObjects:: @ 838A7B4
object_event 2, MAP_OBJ_GFX_WOMAN_3, 0, 7, 0, 4, 0, 3, 9, 0, 0, 0, 0, 0, 0, MossdeepCity_House1_EventScript_15A85F, 0, 0, 0
MossdeepCity_House1_MapWarps:: @ 838A7E4
- warp_def 3, 7, 0, 0, MossdeepCity
- warp_def 4, 7, 0, 0, MossdeepCity
+ warp_def 3, 7, 0, 0, MAP_MOSSDEEP_CITY
+ warp_def 4, 7, 0, 0, MAP_MOSSDEEP_CITY
MossdeepCity_House1_MapEvents:: @ 838A7F4
map_events MossdeepCity_House1_MapObjects, MossdeepCity_House1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MossdeepCity_House2.inc b/data/maps/events/MossdeepCity_House2.inc
index 31ef3ab7b..6752007d7 100644
--- a/data/maps/events/MossdeepCity_House2.inc
+++ b/data/maps/events/MossdeepCity_House2.inc
@@ -1,11 +1,11 @@
MossdeepCity_House2_MapObjects:: @ 838A808
object_event 1, MAP_OBJ_GFX_MAN_5, 0, 6, 0, 6, 0, 3, 9, 0, 0, 0, 0, 0, 0, MossdeepCity_House2_EventScript_15A869, 0, 0, 0
object_event 2, MAP_OBJ_GFX_LITTLE_GIRL_1, 0, 4, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, MossdeepCity_House2_EventScript_15A872, 0, 0, 0
- object_event 3, MAP_OBJ_GFX_WINGULL, 0, 4, 0, 5, 0, 3, 7, 0, 0, 0, 0, 0, 0, MossdeepCity_House2_EventScript_15A87B, 934, 0, 0
+ object_event 3, MAP_OBJ_GFX_WINGULL, 0, 4, 0, 5, 0, 3, 7, 0, 0, 0, 0, 0, 0, MossdeepCity_House2_EventScript_15A87B, FLAG_HIDE_WINGULL_MOSSDEEP_HOUSE, 0, 0
MossdeepCity_House2_MapWarps:: @ 838A850
- warp_def 3, 8, 0, 3, MossdeepCity
- warp_def 4, 8, 0, 3, MossdeepCity
+ warp_def 3, 8, 0, 3, MAP_MOSSDEEP_CITY
+ warp_def 4, 8, 0, 3, MAP_MOSSDEEP_CITY
MossdeepCity_House2_MapEvents:: @ 838A860
map_events MossdeepCity_House2_MapObjects, MossdeepCity_House2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MossdeepCity_House3.inc b/data/maps/events/MossdeepCity_House3.inc
index b1503decc..37c96933c 100644
--- a/data/maps/events/MossdeepCity_House3.inc
+++ b/data/maps/events/MossdeepCity_House3.inc
@@ -2,8 +2,8 @@ MossdeepCity_House3_MapObjects:: @ 838AA08
object_event 1, MAP_OBJ_GFX_FISHERMAN, 0, 4, 0, 4, 0, 3, 10, 0, 0, 0, 0, 0, 0, MossdeepCity_House3_EventScript_15A972, 0, 0, 0
MossdeepCity_House3_MapWarps:: @ 838AA20
- warp_def 3, 7, 0, 5, MossdeepCity
- warp_def 4, 7, 0, 5, MossdeepCity
+ warp_def 3, 7, 0, 5, MAP_MOSSDEEP_CITY
+ warp_def 4, 7, 0, 5, MAP_MOSSDEEP_CITY
MossdeepCity_House3_MapEvents:: @ 838AA30
map_events MossdeepCity_House3_MapObjects, MossdeepCity_House3_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MossdeepCity_House4.inc b/data/maps/events/MossdeepCity_House4.inc
index dc0fdfed8..6c07d0101 100644
--- a/data/maps/events/MossdeepCity_House4.inc
+++ b/data/maps/events/MossdeepCity_House4.inc
@@ -4,8 +4,8 @@ MossdeepCity_House4_MapObjects:: @ 838AAF8
object_event 3, MAP_OBJ_GFX_SKITTY, 0, 2, 0, 4, 0, 3, 1, 17, 0, 0, 0, 0, 0, MossdeepCity_House4_EventScript_15AB77, 0, 0, 0
MossdeepCity_House4_MapWarps:: @ 838AB40
- warp_def 4, 7, 0, 7, MossdeepCity
- warp_def 3, 7, 0, 7, MossdeepCity
+ warp_def 4, 7, 0, 7, MAP_MOSSDEEP_CITY
+ warp_def 3, 7, 0, 7, MAP_MOSSDEEP_CITY
MossdeepCity_House4_MapEvents:: @ 838AB50
map_events MossdeepCity_House4_MapObjects, MossdeepCity_House4_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MossdeepCity_Mart.inc b/data/maps/events/MossdeepCity_Mart.inc
index 80514f1f8..74141c0cc 100644
--- a/data/maps/events/MossdeepCity_Mart.inc
+++ b/data/maps/events/MossdeepCity_Mart.inc
@@ -5,8 +5,8 @@ MossdeepCity_Mart_MapObjects:: @ 838A984
object_event 4, MAP_OBJ_GFX_SAILOR, 0, 5, 0, 3, 0, 3, 2, 17, 0, 0, 0, 0, 0, MossdeepCity_Mart_EventScript_15A968, 0, 0, 0
MossdeepCity_Mart_MapWarps:: @ 838A9E4
- warp_def 3, 7, 0, 4, MossdeepCity
- warp_def 4, 7, 0, 4, MossdeepCity
+ warp_def 3, 7, 0, 4, MAP_MOSSDEEP_CITY
+ warp_def 4, 7, 0, 4, MAP_MOSSDEEP_CITY
MossdeepCity_Mart_MapEvents:: @ 838A9F4
map_events MossdeepCity_Mart_MapObjects, MossdeepCity_Mart_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MossdeepCity_PokemonCenter_1F.inc b/data/maps/events/MossdeepCity_PokemonCenter_1F.inc
index d7cf07f6a..a9555d59b 100644
--- a/data/maps/events/MossdeepCity_PokemonCenter_1F.inc
+++ b/data/maps/events/MossdeepCity_PokemonCenter_1F.inc
@@ -4,9 +4,9 @@ MossdeepCity_PokemonCenter_1F_MapObjects:: @ 838A874
object_event 3, MAP_OBJ_GFX_GIRL_1, 0, 3, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, MossdeepCity_PokemonCenter_1F_EventScript_15A8F1, 0, 0, 0
MossdeepCity_PokemonCenter_1F_MapWarps:: @ 838A8BC
- warp_def 7, 8, 3, 2, MossdeepCity
- warp_def 6, 8, 3, 2, MossdeepCity
- warp_def 1, 6, 4, 0, MossdeepCity_PokemonCenter_2F
+ warp_def 7, 8, 3, 2, MAP_MOSSDEEP_CITY
+ warp_def 6, 8, 3, 2, MAP_MOSSDEEP_CITY
+ warp_def 1, 6, 4, 0, MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F
MossdeepCity_PokemonCenter_1F_MapEvents:: @ 838A8D4
map_events MossdeepCity_PokemonCenter_1F_MapObjects, MossdeepCity_PokemonCenter_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MossdeepCity_PokemonCenter_2F.inc b/data/maps/events/MossdeepCity_PokemonCenter_2F.inc
index 337467351..3f3d05e5a 100644
--- a/data/maps/events/MossdeepCity_PokemonCenter_2F.inc
+++ b/data/maps/events/MossdeepCity_PokemonCenter_2F.inc
@@ -5,11 +5,11 @@ MossdeepCity_PokemonCenter_2F_MapObjects:: @ 838A8E8
object_event 4, MAP_OBJ_GFX_WOMAN_7, 0, 10, 0, 6, 0, 3, 5, 18, 0, 0, 0, 0, 0, MossdeepCity_PokemonCenter_2F_EventScript_15A90A, 0, 0, 0
MossdeepCity_PokemonCenter_2F_MapWarps:: @ 838A948
- warp_def 1, 5, 4, 2, MossdeepCity_PokemonCenter_1F
- warp_def 5, 1, 0, 0, SingleBattleColosseum
- warp_def 8, 1, 0, 0, TradeCenter
- warp_def 11, 1, 0, 0, RecordCorner
- warp_def 0, 0, 0, 0, DoubleBattleColosseum
+ warp_def 1, 5, 4, 2, MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F
+ warp_def 5, 1, 0, 0, MAP_SINGLE_BATTLE_COLOSSEUM
+ warp_def 8, 1, 0, 0, MAP_TRADE_CENTER
+ warp_def 11, 1, 0, 0, MAP_RECORD_CORNER
+ warp_def 0, 0, 0, 0, MAP_DOUBLE_BATTLE_COLOSSEUM
MossdeepCity_PokemonCenter_2F_MapEvents:: @ 838A970
map_events MossdeepCity_PokemonCenter_2F_MapObjects, MossdeepCity_PokemonCenter_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MossdeepCity_SpaceCenter_1F.inc b/data/maps/events/MossdeepCity_SpaceCenter_1F.inc
index d79459eb8..ab9872c2f 100644
--- a/data/maps/events/MossdeepCity_SpaceCenter_1F.inc
+++ b/data/maps/events/MossdeepCity_SpaceCenter_1F.inc
@@ -6,9 +6,9 @@ MossdeepCity_SpaceCenter_1F_MapObjects:: @ 838AB64
object_event 5, MAP_OBJ_GFX_WOMAN_5, 0, 14, 0, 7, 0, 3, 3, 17, 0, 0, 0, 0, 0, MossdeepCity_SpaceCenter_1F_EventScript_15AC16, 0, 0, 0
MossdeepCity_SpaceCenter_1F_MapWarps:: @ 838ABDC
- warp_def 7, 9, 0, 8, MossdeepCity
- warp_def 8, 9, 0, 8, MossdeepCity
- warp_def 13, 1, 0, 0, MossdeepCity_SpaceCenter_2F
+ warp_def 7, 9, 0, 8, MAP_MOSSDEEP_CITY
+ warp_def 8, 9, 0, 8, MAP_MOSSDEEP_CITY
+ warp_def 13, 1, 0, 0, MAP_MOSSDEEP_CITY_SPACE_CENTER_2F
MossdeepCity_SpaceCenter_1F_MapEvents:: @ 838ABF4
map_events MossdeepCity_SpaceCenter_1F_MapObjects, MossdeepCity_SpaceCenter_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MossdeepCity_SpaceCenter_2F.inc b/data/maps/events/MossdeepCity_SpaceCenter_2F.inc
index 2dc4f843a..bcef30b09 100644
--- a/data/maps/events/MossdeepCity_SpaceCenter_2F.inc
+++ b/data/maps/events/MossdeepCity_SpaceCenter_2F.inc
@@ -4,7 +4,7 @@ MossdeepCity_SpaceCenter_2F_MapObjects:: @ 838AC08
object_event 3, MAP_OBJ_GFX_SCIENTIST_1, 0, 5, 0, 6, 0, 3, 2, 17, 0, 0, 0, 0, 0, MossdeepCity_SpaceCenter_2F_EventScript_15AC37, 0, 0, 0
MossdeepCity_SpaceCenter_2F_MapWarps:: @ 838AC50
- warp_def 13, 1, 0, 2, MossdeepCity_SpaceCenter_1F
+ warp_def 13, 1, 0, 2, MAP_MOSSDEEP_CITY_SPACE_CENTER_1F
MossdeepCity_SpaceCenter_2F_MapEvents:: @ 838AC58
map_events MossdeepCity_SpaceCenter_2F_MapObjects, MossdeepCity_SpaceCenter_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MossdeepCity_StevensHouse.inc b/data/maps/events/MossdeepCity_StevensHouse.inc
index ce240d81f..1428a7d8a 100644
--- a/data/maps/events/MossdeepCity_StevensHouse.inc
+++ b/data/maps/events/MossdeepCity_StevensHouse.inc
@@ -1,12 +1,12 @@
MossdeepCity_StevensHouse_MapObjects:: @ 838AA44
- object_event 1, MAP_OBJ_GFX_STEVEN, 0, 9, 0, 6, 0, 3, 10, 0, 0, 0, 0, 0, 0, MossdeepCity_StevensHouse_EventScript_15AAF9, 967, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, MossdeepCity_StevensHouse_EventScript_15AA7C, 968, 0, 0
- object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 5, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, MossdeepCity_StevensHouse_EventScript_15AB20, 1133, 0, 0
- object_event 4, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 6, 0, 4, 0, 3, 76, 17, 0, 0, 0, 0, 0, MossdeepCity_StevensHouse_EventScript_15AB02, 727, 0, 0
+ object_event 1, MAP_OBJ_GFX_STEVEN, 0, 9, 0, 6, 0, 3, 10, 0, 0, 0, 0, 0, 0, MossdeepCity_StevensHouse_EventScript_15AAF9, FLAG_HIDE_STEVEN_STEVENS_HOUSE, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, MossdeepCity_StevensHouse_EventScript_15AA7C, FLAG_HIDE_BELDUM_BALL_STEVENS_HOUSE, 0, 0
+ object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 5, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, MossdeepCity_StevensHouse_EventScript_15AB20, FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_1, 0, 0
+ object_event 4, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 6, 0, 4, 0, 3, 76, 17, 0, 0, 0, 0, 0, MossdeepCity_StevensHouse_EventScript_15AB02, FLAG_HIDE_STEVENS_LETTER, 0, 0
MossdeepCity_StevensHouse_MapWarps:: @ 838AAA4
- warp_def 3, 7, 0, 6, MossdeepCity
- warp_def 4, 7, 0, 6, MossdeepCity
+ warp_def 3, 7, 0, 6, MAP_MOSSDEEP_CITY
+ warp_def 4, 7, 0, 6, MAP_MOSSDEEP_CITY
MossdeepCity_StevensHouse_MapBGEvents:: @ 838AAB4
bg_event 0, 1, 0, 0, 0, MossdeepCity_StevensHouse_EventScript_15AAF0
diff --git a/data/maps/events/MtChimney.inc b/data/maps/events/MtChimney.inc
index 468edda1d..7bc90433c 100644
--- a/data/maps/events/MtChimney.inc
+++ b/data/maps/events/MtChimney.inc
@@ -1,38 +1,38 @@
MtChimney_MapObjects:: @ 838C330
- object_event 1, 247, 0, 24, 0, 19, 0, 3, 9, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_1B2C95, 927, 0, 0
- object_event 2, 246, 0, 13, 0, 6, 0, 3, 10, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_1B2CCB, 926, 0, 0
- object_event 3, 241, 0, 12, 0, 11, 0, 3, 9, 0, 0, 1, 0, 2, 0, MtChimney_EventScript_15D110, 926, 0, 0
- object_event 4, 241, 0, 32, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D162, 926, 0, 0
- object_event 5, 241, 0, 28, 0, 12, 0, 3, 10, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D159, 926, 0, 0
- object_event 6, 244, 0, 19, 0, 39, 0, 3, 10, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D0FE, 927, 0, 0
- object_event 7, 244, 0, 29, 0, 5, 0, 3, 10, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D0F5, 927, 0, 0
- object_event 8, 244, 0, 31, 0, 12, 0, 3, 9, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D107, 927, 0, 0
- object_event 9, MAP_OBJ_GFX_OLD_WOMAN_2, 0, 16, 0, 37, 0, 3, 8, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15CF95, 877, 0, 0
- object_event 10, 241, 0, 22, 0, 39, 0, 3, 9, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D162, 926, 0, 0
- object_event 11, MAP_OBJ_GFX_POOCHYENA, 0, 23, 0, 19, 0, 3, 74, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D174, 927, 0, 0
- object_event 12, MAP_OBJ_GFX_POOCHYENA, 0, 23, 0, 18, 0, 3, 64, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D16B, 926, 0, 0
- object_event 13, 241, 0, 23, 0, 17, 0, 3, 8, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D13E, 926, 0, 0
- object_event 14, MAP_OBJ_GFX_POOCHYENA, 0, 23, 0, 20, 0, 3, 65, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D16B, 926, 0, 0
- object_event 15, MAP_OBJ_GFX_POOCHYENA, 0, 22, 0, 19, 0, 3, 67, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D16B, 926, 0, 0
- object_event 16, 241, 0, 23, 0, 21, 0, 3, 7, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D150, 926, 0, 0
- object_event 17, 241, 0, 21, 0, 19, 0, 3, 10, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D13E, 926, 0, 0
- object_event 18, MAP_OBJ_GFX_POOCHYENA, 0, 30, 0, 12, 0, 3, 66, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D174, 927, 0, 0
- object_event 19, MAP_OBJ_GFX_POOCHYENA, 0, 29, 0, 12, 0, 3, 67, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D16B, 926, 0, 0
- object_event 20, MAP_OBJ_GFX_POOCHYENA, 0, 30, 0, 5, 0, 3, 67, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D174, 927, 0, 0
- object_event 21, MAP_OBJ_GFX_POOCHYENA, 0, 31, 0, 5, 0, 3, 66, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D16B, 926, 0, 0
- object_event 22, 241, 0, 9, 0, 15, 0, 3, 10, 0, 0, 1, 0, 3, 0, MtChimney_EventScript_15D127, 926, 0, 0
- object_event 23, MAP_OBJ_GFX_POOCHYENA, 0, 20, 0, 39, 0, 3, 67, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D174, 927, 0, 0
- object_event 24, MAP_OBJ_GFX_POOCHYENA, 0, 21, 0, 39, 0, 3, 66, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D16B, 926, 0, 0
- object_event 25, MAP_OBJ_GFX_OLD_WOMAN_1, 0, 16, 0, 18, 0, 3, 13, 0, 0, 1, 0, 3, 0, MtChimney_EventScript_15D1E3, 877, 0, 0
- object_event 26, MAP_OBJ_GFX_BEAUTY, 0, 14, 0, 7, 0, 3, 70, 0, 0, 1, 0, 4, 0, MtChimney_EventScript_15D221, 877, 0, 0
- object_event 27, MAP_OBJ_GFX_BEAUTY, 0, 29, 0, 7, 0, 3, 17, 17, 0, 1, 0, 3, 0, MtChimney_EventScript_15D238, 877, 0, 0
- object_event 28, MAP_OBJ_GFX_BEAUTY, 0, 27, 0, 17, 0, 3, 16, 17, 0, 1, 0, 3, 0, MtChimney_EventScript_15D24F, 877, 0, 0
+ object_event 1, 247, 0, 24, 0, 19, 0, 3, 9, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_1B2C95, FLAG_HIDE_OTEHR_TEAM_MT_CHIMNEY, 0, 0
+ object_event 2, 246, 0, 13, 0, 6, 0, 3, 10, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_1B2CCB, FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY, 0, 0
+ object_event 3, 241, 0, 12, 0, 11, 0, 3, 9, 0, 0, 1, 0, 2, 0, MtChimney_EventScript_15D110, FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY, 0, 0
+ object_event 4, 241, 0, 32, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D162, FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY, 0, 0
+ object_event 5, 241, 0, 28, 0, 12, 0, 3, 10, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D159, FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY, 0, 0
+ object_event 6, 244, 0, 19, 0, 39, 0, 3, 10, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D0FE, FLAG_HIDE_OTEHR_TEAM_MT_CHIMNEY, 0, 0
+ object_event 7, 244, 0, 29, 0, 5, 0, 3, 10, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D0F5, FLAG_HIDE_OTEHR_TEAM_MT_CHIMNEY, 0, 0
+ object_event 8, 244, 0, 31, 0, 12, 0, 3, 9, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D107, FLAG_HIDE_OTEHR_TEAM_MT_CHIMNEY, 0, 0
+ object_event 9, MAP_OBJ_GFX_OLD_WOMAN_2, 0, 16, 0, 37, 0, 3, 8, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15CF95, FLAG_HIDE_MT_CHIMNEY_PEOPLE, 0, 0
+ object_event 10, 241, 0, 22, 0, 39, 0, 3, 9, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D162, FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY, 0, 0
+ object_event 11, MAP_OBJ_GFX_POOCHYENA, 0, 23, 0, 19, 0, 3, 74, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D174, FLAG_HIDE_OTEHR_TEAM_MT_CHIMNEY, 0, 0
+ object_event 12, MAP_OBJ_GFX_POOCHYENA, 0, 23, 0, 18, 0, 3, 64, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D16B, FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY, 0, 0
+ object_event 13, 241, 0, 23, 0, 17, 0, 3, 8, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D13E, FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY, 0, 0
+ object_event 14, MAP_OBJ_GFX_POOCHYENA, 0, 23, 0, 20, 0, 3, 65, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D16B, FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY, 0, 0
+ object_event 15, MAP_OBJ_GFX_POOCHYENA, 0, 22, 0, 19, 0, 3, 67, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D16B, FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY, 0, 0
+ object_event 16, 241, 0, 23, 0, 21, 0, 3, 7, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D150, FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY, 0, 0
+ object_event 17, 241, 0, 21, 0, 19, 0, 3, 10, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D13E, FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY, 0, 0
+ object_event 18, MAP_OBJ_GFX_POOCHYENA, 0, 30, 0, 12, 0, 3, 66, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D174, FLAG_HIDE_OTEHR_TEAM_MT_CHIMNEY, 0, 0
+ object_event 19, MAP_OBJ_GFX_POOCHYENA, 0, 29, 0, 12, 0, 3, 67, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D16B, FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY, 0, 0
+ object_event 20, MAP_OBJ_GFX_POOCHYENA, 0, 30, 0, 5, 0, 3, 67, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D174, FLAG_HIDE_OTEHR_TEAM_MT_CHIMNEY, 0, 0
+ object_event 21, MAP_OBJ_GFX_POOCHYENA, 0, 31, 0, 5, 0, 3, 66, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D16B, FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY, 0, 0
+ object_event 22, 241, 0, 9, 0, 15, 0, 3, 10, 0, 0, 1, 0, 3, 0, MtChimney_EventScript_15D127, FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY, 0, 0
+ object_event 23, MAP_OBJ_GFX_POOCHYENA, 0, 20, 0, 39, 0, 3, 67, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D174, FLAG_HIDE_OTEHR_TEAM_MT_CHIMNEY, 0, 0
+ object_event 24, MAP_OBJ_GFX_POOCHYENA, 0, 21, 0, 39, 0, 3, 66, 0, 0, 0, 0, 0, 0, MtChimney_EventScript_15D16B, FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY, 0, 0
+ object_event 25, MAP_OBJ_GFX_OLD_WOMAN_1, 0, 16, 0, 18, 0, 3, 13, 0, 0, 1, 0, 3, 0, MtChimney_EventScript_15D1E3, FLAG_HIDE_MT_CHIMNEY_PEOPLE, 0, 0
+ object_event 26, MAP_OBJ_GFX_BEAUTY, 0, 14, 0, 7, 0, 3, 70, 0, 0, 1, 0, 4, 0, MtChimney_EventScript_15D221, FLAG_HIDE_MT_CHIMNEY_PEOPLE, 0, 0
+ object_event 27, MAP_OBJ_GFX_BEAUTY, 0, 29, 0, 7, 0, 3, 17, 17, 0, 1, 0, 3, 0, MtChimney_EventScript_15D238, FLAG_HIDE_MT_CHIMNEY_PEOPLE, 0, 0
+ object_event 28, MAP_OBJ_GFX_BEAUTY, 0, 27, 0, 17, 0, 3, 16, 17, 0, 1, 0, 3, 0, MtChimney_EventScript_15D24F, FLAG_HIDE_MT_CHIMNEY_PEOPLE, 0, 0
MtChimney_MapWarps:: @ 838C5D0
- warp_def 17, 36, 0, 0, MtChimney_CableCarStation
- warp_def 18, 36, 0, 1, MtChimney_CableCarStation
- warp_def 20, 41, 3, 2, JaggedPass
- warp_def 21, 41, 3, 3, JaggedPass
+ warp_def 17, 36, 0, 0, MAP_MT_CHIMNEY_CABLE_CAR_STATION
+ warp_def 18, 36, 0, 1, MAP_MT_CHIMNEY_CABLE_CAR_STATION
+ warp_def 20, 41, 3, 2, MAP_JAGGED_PASS
+ warp_def 21, 41, 3, 3, MAP_JAGGED_PASS
MtChimney_MapBGEvents:: @ 838C5F0
bg_event 14, 6, 0, 0, 0, MtChimney_EventScript_15D17D
diff --git a/data/maps/events/MtChimney_CableCarStation.inc b/data/maps/events/MtChimney_CableCarStation.inc
index db4eef0fa..971dcda65 100644
--- a/data/maps/events/MtChimney_CableCarStation.inc
+++ b/data/maps/events/MtChimney_CableCarStation.inc
@@ -3,8 +3,8 @@ MtChimney_CableCarStation_MapObjects:: @ 838B828
object_event 2, MAP_OBJ_GFX_CABLE_CAR, 0, 6, 0, 3, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 0, 0, 0
MtChimney_CableCarStation_MapWarps:: @ 838B858
- warp_def 6, 11, 0, 0, MtChimney
- warp_def 7, 11, 0, 1, MtChimney
+ warp_def 6, 11, 0, 0, MAP_MT_CHIMNEY
+ warp_def 7, 11, 0, 1, MAP_MT_CHIMNEY
MtChimney_CableCarStation_MapEvents:: @ 838B868
map_events MtChimney_CableCarStation_MapObjects, MtChimney_CableCarStation_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MtPyre_1F.inc b/data/maps/events/MtPyre_1F.inc
index 3f4263f9e..480bcdbe9 100644
--- a/data/maps/events/MtPyre_1F.inc
+++ b/data/maps/events/MtPyre_1F.inc
@@ -4,12 +4,12 @@ MtPyre_1F_MapObjects:: @ 838C7FC
object_event 3, MAP_OBJ_GFX_MAN_5, 0, 13, 0, 10, 0, 3, 9, 17, 0, 0, 0, 0, 0, MtPyre_1F_EventScript_15D365, 0, 0, 0
MtPyre_1F_MapWarps:: @ 838C844
- warp_def 17, 18, 3, 0, Route122
- warp_def 3, 6, 3, 0, MtPyre_Exterior
- warp_def 18, 18, 3, 0, Route122
- warp_def 4, 6, 3, 0, MtPyre_Exterior
- warp_def 11, 1, 3, 0, MtPyre_2F
- warp_def 20, 9, 3, 4, MtPyre_2F
+ warp_def 17, 18, 3, 0, MAP_ROUTE122
+ warp_def 3, 6, 3, 0, MAP_MT_PYRE_EXTERIOR
+ warp_def 18, 18, 3, 0, MAP_ROUTE122
+ warp_def 4, 6, 3, 0, MAP_MT_PYRE_EXTERIOR
+ warp_def 11, 1, 3, 0, MAP_MT_PYRE_2F
+ warp_def 20, 9, 3, 4, MAP_MT_PYRE_2F
MtPyre_1F_MapEvents:: @ 838C874
map_events MtPyre_1F_MapObjects, MtPyre_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MtPyre_2F.inc b/data/maps/events/MtPyre_2F.inc
index 320be57af..16e1d98b0 100644
--- a/data/maps/events/MtPyre_2F.inc
+++ b/data/maps/events/MtPyre_2F.inc
@@ -1,17 +1,17 @@
MtPyre_2F_MapObjects:: @ 838C888
object_event 1, MAP_OBJ_GFX_MANIAC, 0, 6, 0, 6, 0, 3, 17, 17, 0, 1, 0, 2, 0, MtPyre_2F_EventScript_15D39B, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 0, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, MtPyre_2F_EventScript_1B1933, 1129, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 0, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, MtPyre_2F_EventScript_1B1933, FLAG_ITEM_MT_PYRE_2F_1, 0, 0
object_event 3, MAP_OBJ_GFX_WOMAN_1, 0, 5, 0, 3, 0, 3, 10, 17, 0, 0, 0, 0, 0, MtPyre_2F_EventScript_15D389, 0, 0, 0
object_event 4, MAP_OBJ_GFX_MAN_3, 0, 7, 0, 11, 0, 3, 8, 17, 0, 0, 0, 0, 0, MtPyre_2F_EventScript_15D392, 0, 0, 0
object_event 5, MAP_OBJ_GFX_WOMAN_5, 0, 2, 0, 8, 0, 3, 8, 17, 0, 1, 0, 0, 0, MtPyre_2F_EventScript_15D3CD, 0, 0, 0
object_event 6, MAP_OBJ_GFX_MAN_5, 0, 3, 0, 8, 0, 3, 8, 17, 0, 1, 0, 0, 0, MtPyre_2F_EventScript_15D3B2, 0, 0, 0
MtPyre_2F_MapWarps:: @ 838C918
- warp_def 2, 1, 3, 4, MtPyre_1F
- warp_def 10, 1, 3, 0, MtPyre_3F
- warp_def 10, 12, 3, 4, MtPyre_3F
- warp_def 6, 12, 3, 5, MtPyre_3F
- warp_def 11, 9, 3, 5, MtPyre_1F
+ warp_def 2, 1, 3, 4, MAP_MT_PYRE_1F
+ warp_def 10, 1, 3, 0, MAP_MT_PYRE_3F
+ warp_def 10, 12, 3, 4, MAP_MT_PYRE_3F
+ warp_def 6, 12, 3, 5, MAP_MT_PYRE_3F
+ warp_def 11, 9, 3, 5, MAP_MT_PYRE_1F
MtPyre_2F_MapEvents:: @ 838C940
map_events MtPyre_2F_MapObjects, MtPyre_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MtPyre_3F.inc b/data/maps/events/MtPyre_3F.inc
index ba5428cb2..818d61533 100644
--- a/data/maps/events/MtPyre_3F.inc
+++ b/data/maps/events/MtPyre_3F.inc
@@ -1,15 +1,15 @@
MtPyre_3F_MapObjects:: @ 838C954
object_event 1, MAP_OBJ_GFX_PSYCHIC_M, 0, 1, 0, 4, 0, 3, 18, 17, 0, 1, 0, 3, 0, MtPyre_3F_EventScript_15D3E9, 0, 0, 0
object_event 2, MAP_OBJ_GFX_LASS, 0, 12, 0, 7, 0, 3, 17, 17, 0, 1, 0, 3, 0, MtPyre_3F_EventScript_15D400, 0, 0, 0
- object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 0, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, MtPyre_3F_EventScript_1B1940, 1120, 0, 0
+ object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 0, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, MtPyre_3F_EventScript_1B1940, FLAG_ITEM_MT_PYRE_3F_1, 0, 0
MtPyre_3F_MapWarps:: @ 838C99C
- warp_def 10, 1, 3, 1, MtPyre_2F
- warp_def 2, 1, 3, 1, MtPyre_4F
- warp_def 9, 10, 3, 4, MtPyre_4F
- warp_def 1, 12, 3, 5, MtPyre_4F
- warp_def 10, 12, 3, 2, MtPyre_2F
- warp_def 6, 12, 3, 3, MtPyre_2F
+ warp_def 10, 1, 3, 1, MAP_MT_PYRE_2F
+ warp_def 2, 1, 3, 1, MAP_MT_PYRE_4F
+ warp_def 9, 10, 3, 4, MAP_MT_PYRE_4F
+ warp_def 1, 12, 3, 5, MAP_MT_PYRE_4F
+ warp_def 10, 12, 3, 2, MAP_MT_PYRE_2F
+ warp_def 6, 12, 3, 3, MAP_MT_PYRE_2F
MtPyre_3F_MapEvents:: @ 838C9CC
map_events MtPyre_3F_MapObjects, MtPyre_3F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MtPyre_4F.inc b/data/maps/events/MtPyre_4F.inc
index c54b36645..4b954a45e 100644
--- a/data/maps/events/MtPyre_4F.inc
+++ b/data/maps/events/MtPyre_4F.inc
@@ -1,14 +1,14 @@
MtPyre_4F_MapObjects:: @ 838C9E0
object_event 1, MAP_OBJ_GFX_BLACK_BELT, 0, 11, 0, 7, 0, 3, 24, 17, 0, 1, 0, 2, 0, MtPyre_4F_EventScript_15D418, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 3, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, MtPyre_4F_EventScript_1B194D, 1130, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 3, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, MtPyre_4F_EventScript_1B194D, FLAG_ITEM_MT_PYRE_4F_1, 0, 0
MtPyre_4F_MapWarps:: @ 838CA10
- warp_def 10, 1, 3, 1, MtPyre_5F
- warp_def 2, 5, 3, 1, MtPyre_3F
- warp_def 12, 10, 3, 3, MtPyre_5F
- warp_def 12, 12, 3, 4, MtPyre_5F
- warp_def 9, 10, 3, 2, MtPyre_3F
- warp_def 2, 12, 3, 3, MtPyre_3F
+ warp_def 10, 1, 3, 1, MAP_MT_PYRE_5F
+ warp_def 2, 5, 3, 1, MAP_MT_PYRE_3F
+ warp_def 12, 10, 3, 3, MAP_MT_PYRE_5F
+ warp_def 12, 12, 3, 4, MAP_MT_PYRE_5F
+ warp_def 9, 10, 3, 2, MAP_MT_PYRE_3F
+ warp_def 2, 12, 3, 3, MAP_MT_PYRE_3F
MtPyre_4F_MapEvents:: @ 838CA40
map_events MtPyre_4F_MapObjects, MtPyre_4F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MtPyre_5F.inc b/data/maps/events/MtPyre_5F.inc
index 73b97a40d..9043c95de 100644
--- a/data/maps/events/MtPyre_5F.inc
+++ b/data/maps/events/MtPyre_5F.inc
@@ -1,13 +1,13 @@
MtPyre_5F_MapObjects:: @ 838CA54
object_event 1, MAP_OBJ_GFX_HEX_MANIAC, 0, 3, 0, 7, 0, 3, 17, 17, 0, 1, 0, 2, 0, MtPyre_5F_EventScript_15D430, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 6, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, MtPyre_5F_EventScript_1B195A, 1052, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 6, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, MtPyre_5F_EventScript_1B195A, FLAG_ITEM_MT_PYRE_5F_1, 0, 0
MtPyre_5F_MapWarps:: @ 838CA84
- warp_def 2, 1, 3, 0, MtPyre_6F
- warp_def 10, 5, 3, 0, MtPyre_4F
- warp_def 1, 10, 3, 1, MtPyre_6F
- warp_def 12, 10, 3, 2, MtPyre_4F
- warp_def 12, 12, 3, 3, MtPyre_4F
+ warp_def 2, 1, 3, 0, MAP_MT_PYRE_6F
+ warp_def 10, 5, 3, 0, MAP_MT_PYRE_4F
+ warp_def 1, 10, 3, 1, MAP_MT_PYRE_6F
+ warp_def 12, 10, 3, 2, MAP_MT_PYRE_4F
+ warp_def 12, 12, 3, 3, MAP_MT_PYRE_4F
MtPyre_5F_MapEvents:: @ 838CAAC
map_events MtPyre_5F_MapObjects, MtPyre_5F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MtPyre_6F.inc b/data/maps/events/MtPyre_6F.inc
index 70228bc42..67597ff58 100644
--- a/data/maps/events/MtPyre_6F.inc
+++ b/data/maps/events/MtPyre_6F.inc
@@ -1,10 +1,10 @@
MtPyre_6F_MapObjects:: @ 838CAC0
object_event 1, MAP_OBJ_GFX_HEX_MANIAC, 0, 6, 0, 3, 0, 3, 23, 17, 0, 1, 0, 2, 0, MtPyre_6F_EventScript_15D448, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 6, 0, 9, 0, 3, 1, 17, 0, 0, 0, 0, 0, MtPyre_6F_EventScript_1B1967, 1089, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 6, 0, 9, 0, 3, 1, 17, 0, 0, 0, 0, 0, MtPyre_6F_EventScript_1B1967, FLAG_ITEM_MT_PYRE_6F_1, 0, 0
MtPyre_6F_MapWarps:: @ 838CAF0
- warp_def 2, 1, 3, 0, MtPyre_5F
- warp_def 1, 10, 3, 2, MtPyre_5F
+ warp_def 2, 1, 3, 0, MAP_MT_PYRE_5F
+ warp_def 1, 10, 3, 2, MAP_MT_PYRE_5F
MtPyre_6F_MapEvents:: @ 838CB00
map_events MtPyre_6F_MapObjects, MtPyre_6F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/MtPyre_Exterior.inc b/data/maps/events/MtPyre_Exterior.inc
index ac372a2f0..71cb2095a 100644
--- a/data/maps/events/MtPyre_Exterior.inc
+++ b/data/maps/events/MtPyre_Exterior.inc
@@ -1,11 +1,11 @@
MtPyre_Exterior_MapObjects:: @ 838CB14
- object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 27, 0, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, MtPyre_Exterior_EventScript_1B1974, 1073, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 19, 0, 40, 0, 3, 1, 0, 0, 0, 0, 0, 0, MtPyre_Exterior_EventScript_1B1981, 1074, 0, 0
+ object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 27, 0, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, MtPyre_Exterior_EventScript_1B1974, FLAG_ITEM_MT_PYRE_EXTERIOR_1, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 19, 0, 40, 0, 3, 1, 0, 0, 0, 0, 0, 0, MtPyre_Exterior_EventScript_1B1981, FLAG_ITEM_MT_PYRE_EXTERIOR_2, 0, 0
MtPyre_Exterior_MapWarps:: @ 838CB44
- warp_def 10, 42, 3, 1, MtPyre_1F
- warp_def 19, 10, 3, 1, MtPyre_Summit
- warp_def 20, 10, 3, 1, MtPyre_Summit
+ warp_def 10, 42, 3, 1, MAP_MT_PYRE_1F
+ warp_def 19, 10, 3, 1, MAP_MT_PYRE_SUMMIT
+ warp_def 20, 10, 3, 1, MAP_MT_PYRE_SUMMIT
MtPyre_Exterior_MapCoordEvents:: @ 838CB5C
coord_event 24, 21, 3, 0, 0, 0, 0, MtPyre_Exterior_EventScript_15D4A7
diff --git a/data/maps/events/MtPyre_Summit.inc b/data/maps/events/MtPyre_Summit.inc
index 4f5047765..21217ac8f 100644
--- a/data/maps/events/MtPyre_Summit.inc
+++ b/data/maps/events/MtPyre_Summit.inc
@@ -1,15 +1,15 @@
MtPyre_Summit_MapObjects:: @ 838CBD8
object_event 1, MAP_OBJ_GFX_OLD_MAN_2, 0, 22, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, MtPyre_Summit_EventScript_15D5EF, 0, 0, 0
- object_event 2, 246, 0, 23, 0, 6, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, 916, 0, 0
+ object_event 2, 246, 0, 23, 0, 6, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_LEADER_MT_PYRE_SUMMIT, 0, 0
object_event 3, MAP_OBJ_GFX_OLD_WOMAN_1, 0, 23, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, MtPyre_Summit_EventScript_15D623, 0, 0, 0
- object_event 4, 241, 0, 21, 0, 18, 0, 3, 10, 0, 0, 1, 0, 3, 0, MtPyre_Summit_EventScript_1B2DA9, 917, 0, 0
- object_event 5, 241, 0, 25, 0, 15, 0, 3, 9, 0, 0, 1, 0, 3, 0, MtPyre_Summit_EventScript_1B2DC0, 917, 0, 0
- object_event 6, 241, 0, 21, 0, 11, 0, 3, 10, 0, 0, 1, 0, 3, 0, MtPyre_Summit_EventScript_1B2DD7, 917, 0, 0
+ object_event 4, 241, 0, 21, 0, 18, 0, 3, 10, 0, 0, 1, 0, 3, 0, MtPyre_Summit_EventScript_1B2DA9, FLAG_HIDE_GRUNTS_MT_PYRE_SUMMIT, 0, 0
+ object_event 5, 241, 0, 25, 0, 15, 0, 3, 9, 0, 0, 1, 0, 3, 0, MtPyre_Summit_EventScript_1B2DC0, FLAG_HIDE_GRUNTS_MT_PYRE_SUMMIT, 0, 0
+ object_event 6, 241, 0, 21, 0, 11, 0, 3, 10, 0, 0, 1, 0, 3, 0, MtPyre_Summit_EventScript_1B2DD7, FLAG_HIDE_GRUNTS_MT_PYRE_SUMMIT, 0, 0
MtPyre_Summit_MapWarps:: @ 838CC68
- warp_def 22, 31, 3, 1, MtPyre_Exterior
- warp_def 23, 31, 3, 1, MtPyre_Exterior
- warp_def 24, 31, 3, 1, MtPyre_Exterior
+ warp_def 22, 31, 3, 1, MAP_MT_PYRE_EXTERIOR
+ warp_def 23, 31, 3, 1, MAP_MT_PYRE_EXTERIOR
+ warp_def 24, 31, 3, 1, MAP_MT_PYRE_EXTERIOR
MtPyre_Summit_MapCoordEvents:: @ 838CC80
coord_event 22, 7, 3, 0, 0x40b9, 0, 0, MtPyre_Summit_EventScript_15D4BD
diff --git a/data/maps/events/NewMauville_Entrance.inc b/data/maps/events/NewMauville_Entrance.inc
index 482ff83ca..65405fbe7 100644
--- a/data/maps/events/NewMauville_Entrance.inc
+++ b/data/maps/events/NewMauville_Entrance.inc
@@ -1,6 +1,6 @@
NewMauville_Entrance_MapWarps:: @ 838DED4
- warp_def 4, 6, 3, 0, Route110
- warp_def 4, 1, 3, 0, NewMauville_Inside
+ warp_def 4, 6, 3, 0, MAP_ROUTE110
+ warp_def 4, 1, 3, 0, MAP_NEW_MAUVILLE_INSIDE
NewMauville_Entrance_MapCoordEvents:: @ 838DEE4
coord_event 4, 2, 3, 0, 0x40ba, 0, 0, NewMauville_Entrance_EventScript_15E4DC
diff --git a/data/maps/events/NewMauville_Inside.inc b/data/maps/events/NewMauville_Inside.inc
index a7384520d..a3b7ffbe2 100644
--- a/data/maps/events/NewMauville_Inside.inc
+++ b/data/maps/events/NewMauville_Inside.inc
@@ -1,15 +1,15 @@
NewMauville_Inside_MapObjects:: @ 838DF08
- object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 32, 0, 25, 0, 3, 1, 0, 0, 0, 0, 0, 0, NewMauville_Inside_EventScript_1B183C, 1075, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 16, 0, 22, 0, 3, 1, 0, 0, 0, 0, 0, 0, NewMauville_Inside_EventScript_1B1849, 1076, 0, 0
- object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 39, 0, 4, 0, 3, 1, 17, 0, 0, 0, 0, 0, NewMauville_Inside_EventScript_1B1856, 1110, 0, 0
- object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 17, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, NewMauville_Inside_EventScript_1B1863, 1122, 0, 0
- object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 2, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, NewMauville_Inside_EventScript_1B1870, 1123, 0, 0
- object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 25, 0, 18, 0, 3, 1, 17, 0, 0, 0, 0, 0, NewMauville_Inside_EventScript_15E900, 974, 0, 0
- object_event 7, MAP_OBJ_GFX_ITEM_BALL, 0, 6, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, NewMauville_Inside_EventScript_15E91E, 975, 0, 0
- object_event 8, MAP_OBJ_GFX_ITEM_BALL, 0, 13, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, NewMauville_Inside_EventScript_15E93C, 976, 0, 0
+ object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 32, 0, 25, 0, 3, 1, 0, 0, 0, 0, 0, 0, NewMauville_Inside_EventScript_1B183C, FLAG_ITEM_NEW_MAUVILLE_INSIDE_1, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 16, 0, 22, 0, 3, 1, 0, 0, 0, 0, 0, 0, NewMauville_Inside_EventScript_1B1849, FLAG_ITEM_NEW_MAUVILLE_INSIDE_2, 0, 0
+ object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 39, 0, 4, 0, 3, 1, 17, 0, 0, 0, 0, 0, NewMauville_Inside_EventScript_1B1856, FLAG_ITEM_NEW_MAUVILLE_INSIDE_3, 0, 0
+ object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 17, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, NewMauville_Inside_EventScript_1B1863, FLAG_ITEM_NEW_MAUVILLE_INSIDE_4, 0, 0
+ object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 2, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, NewMauville_Inside_EventScript_1B1870, FLAG_ITEM_NEW_MAUVILLE_INSIDE_5, 0, 0
+ object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 25, 0, 18, 0, 3, 1, 17, 0, 0, 0, 0, 0, NewMauville_Inside_EventScript_15E900, FLAG_HIDE_VOLTORB_1_NEW_MAUVILLE, 0, 0
+ object_event 7, MAP_OBJ_GFX_ITEM_BALL, 0, 6, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, NewMauville_Inside_EventScript_15E91E, FLAG_HIDE_VOLTORB_2_NEW_MAUVILLE, 0, 0
+ object_event 8, MAP_OBJ_GFX_ITEM_BALL, 0, 13, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, NewMauville_Inside_EventScript_15E93C, FLAG_HIDE_VOLTORB_3_NEW_MAUVILLE, 0, 0
NewMauville_Inside_MapWarps:: @ 838DFC8
- warp_def 32, 33, 3, 1, NewMauville_Entrance
+ warp_def 32, 33, 3, 1, MAP_NEW_MAUVILLE_ENTRANCE
NewMauville_Inside_MapCoordEvents:: @ 838DFD0
coord_event 30, 38, 3, 0, 0x4001, 0, 0, NewMauville_Inside_EventScript_15E5AA
diff --git a/data/maps/events/OldaleTown.inc b/data/maps/events/OldaleTown.inc
index a09a08fe2..828ffc986 100644
--- a/data/maps/events/OldaleTown.inc
+++ b/data/maps/events/OldaleTown.inc
@@ -2,13 +2,13 @@ OldaleTown_MapObjects:: @ 8380A78
object_event 1, MAP_OBJ_GFX_GIRL_3, 0, 16, 0, 11, 0, 3, 9, 0, 0, 0, 0, 0, 0, OldaleTown_EventScript_14DDB3, 0, 0, 0
object_event 2, MAP_OBJ_GFX_MART_EMPLOYEE, 0, 13, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, OldaleTown_EventScript_14DDBC, 0, 0, 0
object_event 3, MAP_OBJ_GFX_MANIAC, 0, 8, 0, 9, 0, 3, 10, 0, 0, 0, 0, 0, 0, OldaleTown_EventScript_14DEDF, 0, 0, 0
- object_event 4, 240, 0, 11, 0, 19, 0, 3, 7, 17, 0, 0, 0, 0, 0, OldaleTown_EventScript_14DF30, 979, 0, 0
+ object_event 4, 240, 0, 11, 0, 19, 0, 3, 7, 17, 0, 0, 0, 0, 0, OldaleTown_EventScript_14DF30, FLAG_HIDE_RIVAL_OLDALE_TOWN, 0, 0
OldaleTown_MapWarps:: @ 8380AD8
- warp_def 5, 7, 0, 0, OldaleTown_House1
- warp_def 15, 16, 0, 0, OldaleTown_House2
- warp_def 6, 16, 0, 0, OldaleTown_PokemonCenter_1F
- warp_def 14, 6, 0, 0, OldaleTown_Mart
+ warp_def 5, 7, 0, 0, MAP_OLDALE_TOWN_HOUSE1
+ warp_def 15, 16, 0, 0, MAP_OLDALE_TOWN_HOUSE2
+ warp_def 6, 16, 0, 0, MAP_OLDALE_TOWN_POKEMON_CENTER_1F
+ warp_def 14, 6, 0, 0, MAP_OLDALE_TOWN_MART
OldaleTown_MapCoordEvents:: @ 8380AF8
coord_event 0, 10, 3, 0, 0x4051, 0, 0, OldaleTown_EventScript_14DEFF
diff --git a/data/maps/events/OldaleTown_House1.inc b/data/maps/events/OldaleTown_House1.inc
index 16f29b00e..1c2eb5bce 100644
--- a/data/maps/events/OldaleTown_House1.inc
+++ b/data/maps/events/OldaleTown_House1.inc
@@ -2,8 +2,8 @@ OldaleTown_House1_MapObjects:: @ 8385C4C
object_event 1, MAP_OBJ_GFX_WOMAN_3, 0, 6, 0, 4, 0, 3, 2, 17, 0, 0, 0, 0, 0, OldaleTown_House1_EventScript_152EEC, 0, 0, 0
OldaleTown_House1_MapWarps:: @ 8385C64
- warp_def 3, 8, 0, 0, OldaleTown
- warp_def 4, 8, 0, 0, OldaleTown
+ warp_def 3, 8, 0, 0, MAP_OLDALE_TOWN
+ warp_def 4, 8, 0, 0, MAP_OLDALE_TOWN
OldaleTown_House1_MapEvents:: @ 8385C74
map_events OldaleTown_House1_MapObjects, OldaleTown_House1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/OldaleTown_House2.inc b/data/maps/events/OldaleTown_House2.inc
index 904291576..458ca9420 100644
--- a/data/maps/events/OldaleTown_House2.inc
+++ b/data/maps/events/OldaleTown_House2.inc
@@ -3,8 +3,8 @@ OldaleTown_House2_MapObjects:: @ 8385C88
object_event 2, MAP_OBJ_GFX_SCHOOL_KID_M, 0, 7, 0, 4, 0, 3, 9, 0, 0, 0, 0, 0, 0, OldaleTown_House2_EventScript_152EFF, 0, 0, 0
OldaleTown_House2_MapWarps:: @ 8385CB8
- warp_def 3, 7, 0, 1, OldaleTown
- warp_def 4, 7, 0, 1, OldaleTown
+ warp_def 3, 7, 0, 1, MAP_OLDALE_TOWN
+ warp_def 4, 7, 0, 1, MAP_OLDALE_TOWN
OldaleTown_House2_MapEvents:: @ 8385CC8
map_events OldaleTown_House2_MapObjects, OldaleTown_House2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/OldaleTown_Mart.inc b/data/maps/events/OldaleTown_Mart.inc
index a06ece505..839ec3b49 100644
--- a/data/maps/events/OldaleTown_Mart.inc
+++ b/data/maps/events/OldaleTown_Mart.inc
@@ -4,8 +4,8 @@ OldaleTown_Mart_MapObjects:: @ 8385DEC
object_event 3, MAP_OBJ_GFX_BOY_1, 0, 9, 0, 4, 0, 3, 3, 16, 0, 0, 0, 0, 0, OldaleTown_Mart_EventScript_152FE5, 0, 0, 0
OldaleTown_Mart_MapWarps:: @ 8385E34
- warp_def 3, 7, 0, 3, OldaleTown
- warp_def 4, 7, 0, 3, OldaleTown
+ warp_def 3, 7, 0, 3, MAP_OLDALE_TOWN
+ warp_def 4, 7, 0, 3, MAP_OLDALE_TOWN
OldaleTown_Mart_MapEvents:: @ 8385E44
map_events OldaleTown_Mart_MapObjects, OldaleTown_Mart_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/OldaleTown_PokemonCenter_1F.inc b/data/maps/events/OldaleTown_PokemonCenter_1F.inc
index 161baec86..0c9bdfe8c 100644
--- a/data/maps/events/OldaleTown_PokemonCenter_1F.inc
+++ b/data/maps/events/OldaleTown_PokemonCenter_1F.inc
@@ -5,9 +5,9 @@ OldaleTown_PokemonCenter_1F_MapObjects:: @ 8385CDC
object_event 4, MAP_OBJ_GFX_GIRL_3, 0, 3, 0, 7, 0, 3, 10, 17, 0, 0, 0, 0, 0, OldaleTown_PokemonCenter_1F_EventScript_152F37, 0, 0, 0
OldaleTown_PokemonCenter_1F_MapWarps:: @ 8385D3C
- warp_def 7, 8, 3, 2, OldaleTown
- warp_def 6, 8, 3, 2, OldaleTown
- warp_def 1, 6, 4, 0, OldaleTown_PokemonCenter_2F
+ warp_def 7, 8, 3, 2, MAP_OLDALE_TOWN
+ warp_def 6, 8, 3, 2, MAP_OLDALE_TOWN
+ warp_def 1, 6, 4, 0, MAP_OLDALE_TOWN_POKEMON_CENTER_2F
OldaleTown_PokemonCenter_1F_MapEvents:: @ 8385D54
map_events OldaleTown_PokemonCenter_1F_MapObjects, OldaleTown_PokemonCenter_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/OldaleTown_PokemonCenter_2F.inc b/data/maps/events/OldaleTown_PokemonCenter_2F.inc
index e2675bb14..e94d29970 100644
--- a/data/maps/events/OldaleTown_PokemonCenter_2F.inc
+++ b/data/maps/events/OldaleTown_PokemonCenter_2F.inc
@@ -4,11 +4,11 @@ OldaleTown_PokemonCenter_2F_MapObjects:: @ 8385D68
object_event 3, MAP_OBJ_GFX_TEALA, 0, 10, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, OldaleTown_PokemonCenter_2F_EventScript_152F72, 0, 0, 0
OldaleTown_PokemonCenter_2F_MapWarps:: @ 8385DB0
- warp_def 1, 5, 4, 2, OldaleTown_PokemonCenter_1F
- warp_def 5, 1, 0, 0, SingleBattleColosseum
- warp_def 8, 1, 0, 0, TradeCenter
- warp_def 11, 1, 0, 0, RecordCorner
- warp_def 0, 0, 0, 0, DoubleBattleColosseum
+ warp_def 1, 5, 4, 2, MAP_OLDALE_TOWN_POKEMON_CENTER_1F
+ warp_def 5, 1, 0, 0, MAP_SINGLE_BATTLE_COLOSSEUM
+ warp_def 8, 1, 0, 0, MAP_TRADE_CENTER
+ warp_def 11, 1, 0, 0, MAP_RECORD_CORNER
+ warp_def 0, 0, 0, 0, MAP_DOUBLE_BATTLE_COLOSSEUM
OldaleTown_PokemonCenter_2F_MapEvents:: @ 8385DD8
map_events OldaleTown_PokemonCenter_2F_MapObjects, OldaleTown_PokemonCenter_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/PacifidlogTown.inc b/data/maps/events/PacifidlogTown.inc
index 1823e9afd..2161172a5 100644
--- a/data/maps/events/PacifidlogTown.inc
+++ b/data/maps/events/PacifidlogTown.inc
@@ -4,12 +4,12 @@ PacifidlogTown_MapObjects:: @ 838100C
object_event 3, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 9, 0, 16, 0, 3, 8, 0, 0, 0, 0, 0, 0, PacifidlogTown_EventScript_14E900, 0, 0, 0
PacifidlogTown_MapWarps:: @ 8381054
- warp_def 8, 15, 0, 0, PacifidlogTown_PokemonCenter_1F
- warp_def 16, 13, 0, 0, PacifidlogTown_House1
- warp_def 3, 22, 0, 0, PacifidlogTown_House2
- warp_def 12, 24, 0, 0, PacifidlogTown_House3
- warp_def 2, 12, 0, 0, PacifidlogTown_House4
- warp_def 17, 21, 0, 0, PacifidlogTown_House5
+ warp_def 8, 15, 0, 0, MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F
+ warp_def 16, 13, 0, 0, MAP_PACIFIDLOG_TOWN_HOUSE1
+ warp_def 3, 22, 0, 0, MAP_PACIFIDLOG_TOWN_HOUSE2
+ warp_def 12, 24, 0, 0, MAP_PACIFIDLOG_TOWN_HOUSE3
+ warp_def 2, 12, 0, 0, MAP_PACIFIDLOG_TOWN_HOUSE4
+ warp_def 17, 21, 0, 0, MAP_PACIFIDLOG_TOWN_HOUSE5
PacifidlogTown_MapBGEvents:: @ 8381084
bg_event 9, 15, 0, 1, 0, PacifidlogTown_EventScript_1A00EA
diff --git a/data/maps/events/PacifidlogTown_House1.inc b/data/maps/events/PacifidlogTown_House1.inc
index 233fa7604..3e0e7dc23 100644
--- a/data/maps/events/PacifidlogTown_House1.inc
+++ b/data/maps/events/PacifidlogTown_House1.inc
@@ -3,8 +3,8 @@ PacifidlogTown_House1_MapObjects:: @ 8386F40
object_event 2, MAP_OBJ_GFX_WOMAN_5, 0, 6, 0, 4, 0, 3, 9, 0, 0, 0, 0, 0, 0, PacifidlogTown_House1_EventScript_15415E, 0, 0, 0
PacifidlogTown_House1_MapWarps:: @ 8386F70
- warp_def 4, 8, 0, 1, PacifidlogTown
- warp_def 5, 8, 0, 1, PacifidlogTown
+ warp_def 4, 8, 0, 1, MAP_PACIFIDLOG_TOWN
+ warp_def 5, 8, 0, 1, MAP_PACIFIDLOG_TOWN
PacifidlogTown_House1_MapEvents:: @ 8386F80
map_events PacifidlogTown_House1_MapObjects, PacifidlogTown_House1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/PacifidlogTown_House2.inc b/data/maps/events/PacifidlogTown_House2.inc
index aa1940d29..7c4de826c 100644
--- a/data/maps/events/PacifidlogTown_House2.inc
+++ b/data/maps/events/PacifidlogTown_House2.inc
@@ -4,8 +4,8 @@ PacifidlogTown_House2_MapObjects:: @ 8386F94
object_event 3, MAP_OBJ_GFX_AZURILL, 0, 1, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, PacifidlogTown_House2_EventScript_154282, 0, 0, 0
PacifidlogTown_House2_MapWarps:: @ 8386FDC
- warp_def 4, 8, 0, 2, PacifidlogTown
- warp_def 5, 8, 0, 2, PacifidlogTown
+ warp_def 4, 8, 0, 2, MAP_PACIFIDLOG_TOWN
+ warp_def 5, 8, 0, 2, MAP_PACIFIDLOG_TOWN
PacifidlogTown_House2_MapEvents:: @ 8386FEC
map_events PacifidlogTown_House2_MapObjects, PacifidlogTown_House2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/PacifidlogTown_House3.inc b/data/maps/events/PacifidlogTown_House3.inc
index 80ab8d7f5..642613434 100644
--- a/data/maps/events/PacifidlogTown_House3.inc
+++ b/data/maps/events/PacifidlogTown_House3.inc
@@ -3,8 +3,8 @@ PacifidlogTown_House3_MapObjects:: @ 8387000
object_event 2, MAP_OBJ_GFX_WOMAN_5, 0, 4, 0, 2, 0, 3, 10, 17, 0, 0, 0, 0, 0, PacifidlogTown_House3_EventScript_15429E, 0, 0, 0
PacifidlogTown_House3_MapWarps:: @ 8387030
- warp_def 4, 8, 0, 3, PacifidlogTown
- warp_def 5, 8, 0, 3, PacifidlogTown
+ warp_def 4, 8, 0, 3, MAP_PACIFIDLOG_TOWN
+ warp_def 5, 8, 0, 3, MAP_PACIFIDLOG_TOWN
PacifidlogTown_House3_MapEvents:: @ 8387040
map_events PacifidlogTown_House3_MapObjects, PacifidlogTown_House3_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/PacifidlogTown_House4.inc b/data/maps/events/PacifidlogTown_House4.inc
index a7dd1469b..bf010eaf3 100644
--- a/data/maps/events/PacifidlogTown_House4.inc
+++ b/data/maps/events/PacifidlogTown_House4.inc
@@ -4,8 +4,8 @@ PacifidlogTown_House4_MapObjects:: @ 8387054
object_event 3, MAP_OBJ_GFX_BOY_1, 0, 7, 0, 4, 0, 3, 2, 17, 0, 0, 0, 0, 0, PacifidlogTown_House4_EventScript_15435E, 0, 0, 0
PacifidlogTown_House4_MapWarps:: @ 838709C
- warp_def 4, 8, 0, 4, PacifidlogTown
- warp_def 5, 8, 0, 4, PacifidlogTown
+ warp_def 4, 8, 0, 4, MAP_PACIFIDLOG_TOWN
+ warp_def 5, 8, 0, 4, MAP_PACIFIDLOG_TOWN
PacifidlogTown_House4_MapEvents:: @ 83870AC
map_events PacifidlogTown_House4_MapObjects, PacifidlogTown_House4_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/PacifidlogTown_House5.inc b/data/maps/events/PacifidlogTown_House5.inc
index 963a319cf..cd7c5dae0 100644
--- a/data/maps/events/PacifidlogTown_House5.inc
+++ b/data/maps/events/PacifidlogTown_House5.inc
@@ -3,8 +3,8 @@ PacifidlogTown_House5_MapObjects:: @ 83870C0
object_event 2, MAP_OBJ_GFX_GENTLEMAN, 0, 3, 0, 4, 0, 3, 10, 0, 0, 0, 0, 0, 0, PacifidlogTown_House5_EventScript_1543BA, 0, 0, 0
PacifidlogTown_House5_MapWarps:: @ 83870F0
- warp_def 4, 8, 0, 5, PacifidlogTown
- warp_def 5, 8, 0, 5, PacifidlogTown
+ warp_def 4, 8, 0, 5, MAP_PACIFIDLOG_TOWN
+ warp_def 5, 8, 0, 5, MAP_PACIFIDLOG_TOWN
PacifidlogTown_House5_MapEvents:: @ 8387100
map_events PacifidlogTown_House5_MapObjects, PacifidlogTown_House5_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/PacifidlogTown_PokemonCenter_1F.inc b/data/maps/events/PacifidlogTown_PokemonCenter_1F.inc
index 432ba616d..e0990b224 100644
--- a/data/maps/events/PacifidlogTown_PokemonCenter_1F.inc
+++ b/data/maps/events/PacifidlogTown_PokemonCenter_1F.inc
@@ -5,9 +5,9 @@ PacifidlogTown_PokemonCenter_1F_MapObjects:: @ 8386E30
object_event 4, MAP_OBJ_GFX_WOMAN_1, 0, 4, 0, 5, 0, 3, 1, 17, 0, 0, 0, 0, 0, PacifidlogTown_PokemonCenter_1F_EventScript_154120, 0, 0, 0
PacifidlogTown_PokemonCenter_1F_MapWarps:: @ 8386E90
- warp_def 7, 8, 3, 0, PacifidlogTown
- warp_def 6, 8, 3, 0, PacifidlogTown
- warp_def 1, 6, 4, 0, PacifidlogTown_PokemonCenter_2F
+ warp_def 7, 8, 3, 0, MAP_PACIFIDLOG_TOWN
+ warp_def 6, 8, 3, 0, MAP_PACIFIDLOG_TOWN
+ warp_def 1, 6, 4, 0, MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F
PacifidlogTown_PokemonCenter_1F_MapEvents:: @ 8386EA8
map_events PacifidlogTown_PokemonCenter_1F_MapObjects, PacifidlogTown_PokemonCenter_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/PacifidlogTown_PokemonCenter_2F.inc b/data/maps/events/PacifidlogTown_PokemonCenter_2F.inc
index f4110623f..fb594733e 100644
--- a/data/maps/events/PacifidlogTown_PokemonCenter_2F.inc
+++ b/data/maps/events/PacifidlogTown_PokemonCenter_2F.inc
@@ -4,11 +4,11 @@ PacifidlogTown_PokemonCenter_2F_MapObjects:: @ 8386EBC
object_event 3, MAP_OBJ_GFX_TEALA, 0, 10, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, PacifidlogTown_PokemonCenter_2F_EventScript_15414E, 0, 0, 0
PacifidlogTown_PokemonCenter_2F_MapWarps:: @ 8386F04
- warp_def 1, 5, 4, 2, PacifidlogTown_PokemonCenter_1F
- warp_def 5, 1, 0, 0, SingleBattleColosseum
- warp_def 8, 1, 0, 0, TradeCenter
- warp_def 11, 1, 0, 0, RecordCorner
- warp_def 0, 1, 0, 0, DoubleBattleColosseum
+ warp_def 1, 5, 4, 2, MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F
+ warp_def 5, 1, 0, 0, MAP_SINGLE_BATTLE_COLOSSEUM
+ warp_def 8, 1, 0, 0, MAP_TRADE_CENTER
+ warp_def 11, 1, 0, 0, MAP_RECORD_CORNER
+ warp_def 0, 1, 0, 0, MAP_DOUBLE_BATTLE_COLOSSEUM
PacifidlogTown_PokemonCenter_2F_MapEvents:: @ 8386F2C
map_events PacifidlogTown_PokemonCenter_2F_MapObjects, PacifidlogTown_PokemonCenter_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/PetalburgCity.inc b/data/maps/events/PetalburgCity.inc
index 4c36c49ab..739cbf905 100644
--- a/data/maps/events/PetalburgCity.inc
+++ b/data/maps/events/PetalburgCity.inc
@@ -1,21 +1,21 @@
PetalburgCity_MapObjects:: @ 837F5F0
- object_event 1, MAP_OBJ_GFX_WOMAN_5, 0, 16, 0, 18, 0, 3, 2, 17, 0, 0, 0, 0, 0, PetalburgCity_EventScript_14B7C3, 728, 0, 0
- object_event 2, MAP_OBJ_GFX_WALLY, 0, 15, 0, 10, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, 726, 0, 0
+ object_event 1, MAP_OBJ_GFX_WOMAN_5, 0, 16, 0, 18, 0, 3, 2, 17, 0, 0, 0, 0, 0, PetalburgCity_EventScript_14B7C3, FLAG_HIDE_WALLY_MOM_PETALBURG_1, 0, 0
+ object_event 2, MAP_OBJ_GFX_WALLY, 0, 15, 0, 10, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_WALLY_PETALBURG, 0, 0
object_event 3, MAP_OBJ_GFX_BOY_1, 0, 8, 0, 22, 0, 3, 8, 0, 0, 0, 0, 0, 0, PetalburgCity_EventScript_14B7AC, 0, 0, 0
object_event 4, MAP_OBJ_GFX_GENTLEMAN, 0, 20, 0, 10, 0, 3, 3, 16, 0, 0, 0, 0, 0, PetalburgCity_EventScript_14B824, 0, 0, 0
- object_event 5, MAP_OBJ_GFX_MAN_1, 0, 15, 0, 11, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, 811, 0, 0
- object_event 6, MAP_OBJ_GFX_WOMAN_2, 0, 14, 0, 11, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, 812, 0, 0
- object_event 7, MAP_OBJ_GFX_ITEM_BALL, 0, 19, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, PetalburgCity_EventScript_1B1704, 1039, 0, 0
- object_event 8, MAP_OBJ_GFX_ITEM_BALL, 0, 3, 0, 28, 0, 3, 1, 0, 0, 0, 0, 0, 0, PetalburgCity_EventScript_1B1711, 1040, 0, 0
+ object_event 5, MAP_OBJ_GFX_MAN_1, 0, 15, 0, 11, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_WALLY_FATHER_PETALBURG, 0, 0
+ object_event 6, MAP_OBJ_GFX_WOMAN_2, 0, 14, 0, 11, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_WALLY_MOTHER_PETALBURG, 0, 0
+ object_event 7, MAP_OBJ_GFX_ITEM_BALL, 0, 19, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, PetalburgCity_EventScript_1B1704, FLAG_ITEM_PETALBURG_1, 0, 0
+ object_event 8, MAP_OBJ_GFX_ITEM_BALL, 0, 3, 0, 28, 0, 3, 1, 0, 0, 0, 0, 0, 0, PetalburgCity_EventScript_1B1711, FLAG_ITEM_PETALBURG_2, 0, 0
object_event 9, MAP_OBJ_GFX_BOY_2, 0, 12, 0, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, PetalburgCity_EventScript_14BA2D, 0, 0, 0
PetalburgCity_MapWarps:: @ 837F6C8
- warp_def 10, 19, 0, 0, PetalburgCity_House1
- warp_def 7, 5, 0, 0, PetalburgCity_WallysHouse
- warp_def 15, 8, 0, 0, PetalburgCity_Gym
- warp_def 20, 16, 0, 0, PetalburgCity_PokemonCenter_1F
- warp_def 20, 24, 0, 0, PetalburgCity_House2
- warp_def 25, 12, 0, 0, PetalburgCity_Mart
+ warp_def 10, 19, 0, 0, MAP_PETALBURG_CITY_HOUSE1
+ warp_def 7, 5, 0, 0, MAP_PETALBURG_CITY_WALLYS_HOUSE
+ warp_def 15, 8, 0, 0, MAP_PETALBURG_CITY_GYM
+ warp_def 20, 16, 0, 0, MAP_PETALBURG_CITY_POKEMON_CENTER_1F
+ warp_def 20, 24, 0, 0, MAP_PETALBURG_CITY_HOUSE2
+ warp_def 25, 12, 0, 0, MAP_PETALBURG_CITY_MART
PetalburgCity_MapCoordEvents:: @ 837F6F8
coord_event 8, 10, 3, 0, 0x4057, 0, 0, PetalburgCity_EventScript_14B836
diff --git a/data/maps/events/PetalburgCity_Gym.inc b/data/maps/events/PetalburgCity_Gym.inc
index 47205e253..781de130d 100644
--- a/data/maps/events/PetalburgCity_Gym.inc
+++ b/data/maps/events/PetalburgCity_Gym.inc
@@ -1,5 +1,5 @@
PetalburgCity_Gym_MapObjects:: @ 8387168
- object_event 1, MAP_OBJ_GFX_NORMAN, 0, 4, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, PetalburgCity_Gym_EventScript_1545B9, 772, 0, 0
+ object_event 1, MAP_OBJ_GFX_NORMAN, 0, 4, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, PetalburgCity_Gym_EventScript_1545B9, FLAG_HIDE_NORMAN_PETALBURG_GYM, 0, 0
object_event 2, MAP_OBJ_GFX_WOMAN_7, 0, 4, 0, 94, 0, 3, 8, 0, 0, 1, 0, 0, 0, PetalburgCity_Gym_EventScript_154EE6, 0, 0, 0
object_event 3, MAP_OBJ_GFX_MAN_4, 0, 4, 0, 81, 0, 3, 8, 0, 0, 1, 0, 0, 0, PetalburgCity_Gym_EventScript_154DF6, 0, 0, 0
object_event 4, MAP_OBJ_GFX_MAN_4, 0, 4, 0, 42, 0, 3, 8, 0, 0, 1, 0, 0, 0, PetalburgCity_Gym_EventScript_154E32, 0, 0, 0
@@ -7,48 +7,48 @@ PetalburgCity_Gym_MapObjects:: @ 8387168
object_event 6, MAP_OBJ_GFX_MAN_4, 0, 4, 0, 68, 0, 3, 8, 0, 0, 1, 0, 0, 0, PetalburgCity_Gym_EventScript_154E6E, 0, 0, 0
object_event 7, MAP_OBJ_GFX_WOMAN_7, 0, 4, 0, 16, 0, 3, 8, 0, 0, 1, 0, 0, 0, PetalburgCity_Gym_EventScript_154F5E, 0, 0, 0
object_event 8, MAP_OBJ_GFX_MAN_4, 0, 4, 0, 29, 0, 3, 8, 0, 0, 1, 0, 0, 0, PetalburgCity_Gym_EventScript_154EAA, 0, 0, 0
- object_event 9, MAP_OBJ_GFX_MAN_2, 0, 3, 0, 109, 0, 3, 8, 0, 0, 0, 0, 0, 0, PetalburgCity_Gym_EventScript_15518B, 781, 0, 0
- object_event 10, MAP_OBJ_GFX_WALLY, 0, 4, 0, 111, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, 866, 0, 0
+ object_event 9, MAP_OBJ_GFX_MAN_2, 0, 3, 0, 109, 0, 3, 8, 0, 0, 0, 0, 0, 0, PetalburgCity_Gym_EventScript_15518B, FLAG_HIDE_PETALBURG_GYM_GUIDE, 0, 0
+ object_event 10, MAP_OBJ_GFX_WALLY, 0, 4, 0, 111, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_WALLY_PETALBURG_GYM, 0, 0
PetalburgCity_Gym_MapWarps:: @ 8387258
- warp_def 4, 111, 3, 2, PetalburgCity
- warp_def 5, 111, 3, 2, PetalburgCity
- warp_def 1, 105, 3, 3, PetalburgCity_Gym
- warp_def 7, 85, 3, 2, PetalburgCity_Gym
- warp_def 6, 85, 3, 2, PetalburgCity_Gym
- warp_def 7, 105, 3, 6, PetalburgCity_Gym
- warp_def 1, 98, 3, 5, PetalburgCity_Gym
- warp_def 2, 98, 3, 5, PetalburgCity_Gym
- warp_def 1, 79, 3, 10, PetalburgCity_Gym
- warp_def 7, 79, 3, 12, PetalburgCity_Gym
- warp_def 7, 46, 3, 8, PetalburgCity_Gym
- warp_def 6, 46, 3, 8, PetalburgCity_Gym
- warp_def 1, 59, 3, 9, PetalburgCity_Gym
- warp_def 2, 59, 3, 9, PetalburgCity_Gym
- warp_def 1, 92, 3, 16, PetalburgCity_Gym
- warp_def 7, 92, 3, 18, PetalburgCity_Gym
- warp_def 7, 59, 3, 14, PetalburgCity_Gym
- warp_def 6, 59, 3, 14, PetalburgCity_Gym
- warp_def 1, 72, 3, 15, PetalburgCity_Gym
- warp_def 2, 72, 3, 15, PetalburgCity_Gym
- warp_def 7, 40, 3, 24, PetalburgCity_Gym
- warp_def 1, 53, 3, 26, PetalburgCity_Gym
- warp_def 7, 53, 3, 28, PetalburgCity_Gym
- warp_def 1, 66, 3, 30, PetalburgCity_Gym
- warp_def 1, 20, 3, 20, PetalburgCity_Gym
- warp_def 2, 20, 3, 20, PetalburgCity_Gym
- warp_def 7, 20, 3, 21, PetalburgCity_Gym
- warp_def 6, 20, 3, 21, PetalburgCity_Gym
- warp_def 1, 33, 3, 22, PetalburgCity_Gym
- warp_def 2, 33, 3, 22, PetalburgCity_Gym
- warp_def 7, 33, 3, 23, PetalburgCity_Gym
- warp_def 6, 33, 3, 23, PetalburgCity_Gym
- warp_def 7, 14, 3, 34, PetalburgCity_Gym
- warp_def 1, 27, 3, 36, PetalburgCity_Gym
- warp_def 1, 7, 3, 32, PetalburgCity_Gym
- warp_def 2, 7, 3, 32, PetalburgCity_Gym
- warp_def 7, 7, 3, 33, PetalburgCity_Gym
- warp_def 6, 7, 3, 33, PetalburgCity_Gym
+ warp_def 4, 111, 3, 2, MAP_PETALBURG_CITY
+ warp_def 5, 111, 3, 2, MAP_PETALBURG_CITY
+ warp_def 1, 105, 3, 3, MAP_PETALBURG_CITY_GYM
+ warp_def 7, 85, 3, 2, MAP_PETALBURG_CITY_GYM
+ warp_def 6, 85, 3, 2, MAP_PETALBURG_CITY_GYM
+ warp_def 7, 105, 3, 6, MAP_PETALBURG_CITY_GYM
+ warp_def 1, 98, 3, 5, MAP_PETALBURG_CITY_GYM
+ warp_def 2, 98, 3, 5, MAP_PETALBURG_CITY_GYM
+ warp_def 1, 79, 3, 10, MAP_PETALBURG_CITY_GYM
+ warp_def 7, 79, 3, 12, MAP_PETALBURG_CITY_GYM
+ warp_def 7, 46, 3, 8, MAP_PETALBURG_CITY_GYM
+ warp_def 6, 46, 3, 8, MAP_PETALBURG_CITY_GYM
+ warp_def 1, 59, 3, 9, MAP_PETALBURG_CITY_GYM
+ warp_def 2, 59, 3, 9, MAP_PETALBURG_CITY_GYM
+ warp_def 1, 92, 3, 16, MAP_PETALBURG_CITY_GYM
+ warp_def 7, 92, 3, 18, MAP_PETALBURG_CITY_GYM
+ warp_def 7, 59, 3, 14, MAP_PETALBURG_CITY_GYM
+ warp_def 6, 59, 3, 14, MAP_PETALBURG_CITY_GYM
+ warp_def 1, 72, 3, 15, MAP_PETALBURG_CITY_GYM
+ warp_def 2, 72, 3, 15, MAP_PETALBURG_CITY_GYM
+ warp_def 7, 40, 3, 24, MAP_PETALBURG_CITY_GYM
+ warp_def 1, 53, 3, 26, MAP_PETALBURG_CITY_GYM
+ warp_def 7, 53, 3, 28, MAP_PETALBURG_CITY_GYM
+ warp_def 1, 66, 3, 30, MAP_PETALBURG_CITY_GYM
+ warp_def 1, 20, 3, 20, MAP_PETALBURG_CITY_GYM
+ warp_def 2, 20, 3, 20, MAP_PETALBURG_CITY_GYM
+ warp_def 7, 20, 3, 21, MAP_PETALBURG_CITY_GYM
+ warp_def 6, 20, 3, 21, MAP_PETALBURG_CITY_GYM
+ warp_def 1, 33, 3, 22, MAP_PETALBURG_CITY_GYM
+ warp_def 2, 33, 3, 22, MAP_PETALBURG_CITY_GYM
+ warp_def 7, 33, 3, 23, MAP_PETALBURG_CITY_GYM
+ warp_def 6, 33, 3, 23, MAP_PETALBURG_CITY_GYM
+ warp_def 7, 14, 3, 34, MAP_PETALBURG_CITY_GYM
+ warp_def 1, 27, 3, 36, MAP_PETALBURG_CITY_GYM
+ warp_def 1, 7, 3, 32, MAP_PETALBURG_CITY_GYM
+ warp_def 2, 7, 3, 32, MAP_PETALBURG_CITY_GYM
+ warp_def 7, 7, 3, 33, MAP_PETALBURG_CITY_GYM
+ warp_def 6, 7, 3, 33, MAP_PETALBURG_CITY_GYM
PetalburgCity_Gym_MapBGEvents:: @ 8387388
bg_event 1, 105, 3, 0, 0, PetalburgCity_Gym_EventScript_154B73
diff --git a/data/maps/events/PetalburgCity_House1.inc b/data/maps/events/PetalburgCity_House1.inc
index 2d6a28056..9faa2873a 100644
--- a/data/maps/events/PetalburgCity_House1.inc
+++ b/data/maps/events/PetalburgCity_House1.inc
@@ -3,8 +3,8 @@ PetalburgCity_House1_MapObjects:: @ 8387444
object_event 2, MAP_OBJ_GFX_OLD_MAN_1, 0, 4, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, PetalburgCity_House1_EventScript_1551DF, 0, 0, 0
PetalburgCity_House1_MapWarps:: @ 8387474
- warp_def 3, 8, 0, 0, PetalburgCity
- warp_def 4, 8, 0, 0, PetalburgCity
+ warp_def 3, 8, 0, 0, MAP_PETALBURG_CITY
+ warp_def 4, 8, 0, 0, MAP_PETALBURG_CITY
PetalburgCity_House1_MapEvents:: @ 8387484
map_events PetalburgCity_House1_MapObjects, PetalburgCity_House1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/PetalburgCity_House2.inc b/data/maps/events/PetalburgCity_House2.inc
index 0797b9bab..29a2226d1 100644
--- a/data/maps/events/PetalburgCity_House2.inc
+++ b/data/maps/events/PetalburgCity_House2.inc
@@ -3,8 +3,8 @@ PetalburgCity_House2_MapObjects:: @ 8387498
object_event 2, MAP_OBJ_GFX_SCHOOL_KID_M, 0, 7, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, PetalburgCity_House2_EventScript_1551FB, 0, 0, 0
PetalburgCity_House2_MapWarps:: @ 83874C8
- warp_def 3, 7, 0, 4, PetalburgCity
- warp_def 4, 7, 0, 4, PetalburgCity
+ warp_def 3, 7, 0, 4, MAP_PETALBURG_CITY
+ warp_def 4, 7, 0, 4, MAP_PETALBURG_CITY
PetalburgCity_House2_MapEvents:: @ 83874D8
map_events PetalburgCity_House2_MapObjects, PetalburgCity_House2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/PetalburgCity_Mart.inc b/data/maps/events/PetalburgCity_Mart.inc
index 2fbed4b9d..358618d7e 100644
--- a/data/maps/events/PetalburgCity_Mart.inc
+++ b/data/maps/events/PetalburgCity_Mart.inc
@@ -5,8 +5,8 @@ PetalburgCity_Mart_MapObjects:: @ 8387614
object_event 4, MAP_OBJ_GFX_WOMAN_3, 0, 5, 0, 5, 0, 3, 10, 0, 0, 0, 0, 0, 0, PetalburgCity_Mart_EventScript_15531A, 0, 0, 0
PetalburgCity_Mart_MapWarps:: @ 8387674
- warp_def 3, 7, 0, 5, PetalburgCity
- warp_def 4, 7, 0, 5, PetalburgCity
+ warp_def 3, 7, 0, 5, MAP_PETALBURG_CITY
+ warp_def 4, 7, 0, 5, MAP_PETALBURG_CITY
PetalburgCity_Mart_MapEvents:: @ 8387684
map_events PetalburgCity_Mart_MapObjects, PetalburgCity_Mart_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/PetalburgCity_PokemonCenter_1F.inc b/data/maps/events/PetalburgCity_PokemonCenter_1F.inc
index 5fb3186e5..8bdc1e1bf 100644
--- a/data/maps/events/PetalburgCity_PokemonCenter_1F.inc
+++ b/data/maps/events/PetalburgCity_PokemonCenter_1F.inc
@@ -6,9 +6,9 @@ PetalburgCity_PokemonCenter_1F_MapObjects:: @ 83874EC
object_event 5, MAP_OBJ_GFX_WOMAN_7, 0, 5, 0, 4, 0, 3, 1, 17, 0, 0, 0, 0, 0, PetalburgCity_PokemonCenter_1F_EventScript_155233, 0, 0, 0
PetalburgCity_PokemonCenter_1F_MapWarps:: @ 8387564
- warp_def 7, 8, 3, 3, PetalburgCity
- warp_def 6, 8, 3, 3, PetalburgCity
- warp_def 1, 6, 4, 0, PetalburgCity_PokemonCenter_2F
+ warp_def 7, 8, 3, 3, MAP_PETALBURG_CITY
+ warp_def 6, 8, 3, 3, MAP_PETALBURG_CITY
+ warp_def 1, 6, 4, 0, MAP_PETALBURG_CITY_POKEMON_CENTER_2F
PetalburgCity_PokemonCenter_1F_MapEvents:: @ 838757C
map_events PetalburgCity_PokemonCenter_1F_MapObjects, PetalburgCity_PokemonCenter_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/PetalburgCity_PokemonCenter_2F.inc b/data/maps/events/PetalburgCity_PokemonCenter_2F.inc
index eab3d7dd5..cdbefe565 100644
--- a/data/maps/events/PetalburgCity_PokemonCenter_2F.inc
+++ b/data/maps/events/PetalburgCity_PokemonCenter_2F.inc
@@ -4,11 +4,11 @@ PetalburgCity_PokemonCenter_2F_MapObjects:: @ 8387590
object_event 3, MAP_OBJ_GFX_TEALA, 0, 10, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, PetalburgCity_PokemonCenter_2F_EventScript_1552A9, 0, 0, 0
PetalburgCity_PokemonCenter_2F_MapWarps:: @ 83875D8
- warp_def 1, 5, 4, 2, PetalburgCity_PokemonCenter_1F
- warp_def 5, 1, 0, 0, SingleBattleColosseum
- warp_def 8, 1, 0, 0, TradeCenter
- warp_def 11, 1, 0, 0, RecordCorner
- warp_def 0, 0, 0, 0, DoubleBattleColosseum
+ warp_def 1, 5, 4, 2, MAP_PETALBURG_CITY_POKEMON_CENTER_1F
+ warp_def 5, 1, 0, 0, MAP_SINGLE_BATTLE_COLOSSEUM
+ warp_def 8, 1, 0, 0, MAP_TRADE_CENTER
+ warp_def 11, 1, 0, 0, MAP_RECORD_CORNER
+ warp_def 0, 0, 0, 0, MAP_DOUBLE_BATTLE_COLOSSEUM
PetalburgCity_PokemonCenter_2F_MapEvents:: @ 8387600
map_events PetalburgCity_PokemonCenter_2F_MapObjects, PetalburgCity_PokemonCenter_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/PetalburgCity_WallysHouse.inc b/data/maps/events/PetalburgCity_WallysHouse.inc
index 724b84f0f..4485f518d 100644
--- a/data/maps/events/PetalburgCity_WallysHouse.inc
+++ b/data/maps/events/PetalburgCity_WallysHouse.inc
@@ -3,8 +3,8 @@ PetalburgCity_WallysHouse_MapObjects:: @ 8387114
object_event 2, MAP_OBJ_GFX_WOMAN_5, 0, 7, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, PetalburgCity_WallysHouse_EventScript_154445, 0, 0, 0
PetalburgCity_WallysHouse_MapWarps:: @ 8387144
- warp_def 3, 7, 0, 1, PetalburgCity
- warp_def 4, 7, 0, 1, PetalburgCity
+ warp_def 3, 7, 0, 1, MAP_PETALBURG_CITY
+ warp_def 4, 7, 0, 1, MAP_PETALBURG_CITY
PetalburgCity_WallysHouse_MapEvents:: @ 8387154
map_events PetalburgCity_WallysHouse_MapObjects, PetalburgCity_WallysHouse_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/PetalburgWoods.inc b/data/maps/events/PetalburgWoods.inc
index cb0ff7ca1..e80b33c13 100644
--- a/data/maps/events/PetalburgWoods.inc
+++ b/data/maps/events/PetalburgWoods.inc
@@ -1,25 +1,25 @@
PetalburgWoods_MapObjects:: @ 838C14C
- object_event 1, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 19, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 17, 0, 0
- object_event 2, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 19, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 18, 0, 0
- object_event 3, 241, 0, 26, 0, 17, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, 725, 0, 0
- object_event 4, MAP_OBJ_GFX_MAN_2, 0, 26, 0, 20, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 724, 0, 0
- object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 45, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, PetalburgWoods_EventScript_1B175F, 1056, 0, 0
- object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 35, 0, 20, 0, 3, 8, 0, 0, 0, 0, 0, 0, PetalburgWoods_EventScript_1B1752, 1055, 0, 0
- object_event 7, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, PetalburgWoods_EventScript_1B176C, 1058, 0, 0
+ object_event 1, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 19, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_11, 0, 0
+ object_event 2, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 19, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_12, 0, 0
+ object_event 3, 241, 0, 26, 0, 17, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_EVIL_TEAM_PETALBURG_WOODS, 0, 0
+ object_event 4, MAP_OBJ_GFX_MAN_2, 0, 26, 0, 20, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_DEVON_PETALBURG_WOODS, 0, 0
+ object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 45, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, PetalburgWoods_EventScript_1B175F, FLAG_ITEM_PETALBURG_WOODS_2, 0, 0
+ object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 35, 0, 20, 0, 3, 8, 0, 0, 0, 0, 0, 0, PetalburgWoods_EventScript_1B1752, FLAG_ITEM_PETALBURG_WOODS_1, 0, 0
+ object_event 7, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, PetalburgWoods_EventScript_1B176C, FLAG_ITEM_PETALBURG_WOODS_3, 0, 0
object_event 8, MAP_OBJ_GFX_BOY_2, 0, 15, 0, 19, 0, 3, 3, 33, 0, 0, 0, 0, 0, PetalburgWoods_EventScript_15CECA, 0, 0, 0
object_event 9, MAP_OBJ_GFX_BUG_CATCHER, 0, 7, 0, 32, 0, 3, 22, 0, 0, 1, 0, 3, 0, PetalburgWoods_EventScript_15CF27, 0, 0, 0
object_event 10, MAP_OBJ_GFX_BUG_CATCHER, 0, 4, 0, 14, 0, 3, 20, 0, 0, 1, 0, 3, 0, PetalburgWoods_EventScript_15CF3E, 0, 0, 0
object_event 11, MAP_OBJ_GFX_BOY_3, 0, 30, 0, 34, 0, 3, 2, 18, 0, 0, 0, 0, 0, PetalburgWoods_EventScript_15CED3, 0, 0, 0
- object_event 12, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 26, 0, 3, 1, 17, 0, 0, 0, 0, 0, PetalburgWoods_EventScript_1B1779, 1117, 0, 0
+ object_event 12, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 26, 0, 3, 1, 17, 0, 0, 0, 0, 0, PetalburgWoods_EventScript_1B1779, FLAG_ITEM_PETALBURG_WOODS_4, 0, 0
object_event 13, MAP_OBJ_GFX_GIRL_2, 0, 33, 0, 5, 0, 3, 1, 17, 0, 0, 0, 0, 0, PetalburgWoods_EventScript_15CEDC, 0, 0, 0
PetalburgWoods_MapWarps:: @ 838C284
- warp_def 14, 5, 0, 2, Route104
- warp_def 15, 5, 0, 3, Route104
- warp_def 16, 38, 0, 4, Route104
- warp_def 17, 38, 0, 5, Route104
- warp_def 36, 38, 0, 6, Route104
- warp_def 37, 38, 0, 7, Route104
+ warp_def 14, 5, 0, 2, MAP_ROUTE104
+ warp_def 15, 5, 0, 3, MAP_ROUTE104
+ warp_def 16, 38, 0, 4, MAP_ROUTE104
+ warp_def 17, 38, 0, 5, MAP_ROUTE104
+ warp_def 36, 38, 0, 6, MAP_ROUTE104
+ warp_def 37, 38, 0, 7, MAP_ROUTE104
PetalburgWoods_MapCoordEvents:: @ 838C2B4
coord_event 26, 23, 3, 0, 0x4098, 0, 0, PetalburgWoods_EventScript_15CCA8
diff --git a/data/maps/events/RecordCorner.inc b/data/maps/events/RecordCorner.inc
index 7062f61ea..df26386b3 100644
--- a/data/maps/events/RecordCorner.inc
+++ b/data/maps/events/RecordCorner.inc
@@ -2,10 +2,10 @@ RecordCorner_MapObjects:: @ 839139C
object_event 1, MAP_OBJ_GFX_WOMAN_6, 0, 10, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, RecordCorner_EventScript_1A44BC, 0, 0, 0
RecordCorner_MapWarps:: @ 83913B4
- warp_def 8, 9, 3, 127, NONE
- warp_def 9, 9, 3, 127, NONE
- warp_def 11, 9, 3, 127, NONE
- warp_def 10, 9, 3, 127, NONE
+ warp_def 8, 9, 3, 127, MAP_NONE
+ warp_def 9, 9, 3, 127, MAP_NONE
+ warp_def 11, 9, 3, 127, MAP_NONE
+ warp_def 10, 9, 3, 127, MAP_NONE
RecordCorner_MapCoordEvents:: @ 83913D4
coord_event 6, 4, 3, 0, 0x4000, 0, 0, RecordCorner_EventScript_1A4418
diff --git a/data/maps/events/Route101.inc b/data/maps/events/Route101.inc
index bad4e3ba9..a527ada51 100644
--- a/data/maps/events/Route101.inc
+++ b/data/maps/events/Route101.inc
@@ -1,10 +1,10 @@
Route101_MapObjects:: @ 83810BC
object_event 1, MAP_OBJ_GFX_YOUNGSTER, 0, 16, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route101_EventScript_14EA64, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_PROF_BIRCH, 0, 9, 0, 13, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0x0, 720, 0, 0
- object_event 3, MAP_OBJ_GFX_BIRCHS_BAG, 0, 7, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route101_EventScript_14EA7F, 700, 0, 0
- object_event 4, MAP_OBJ_GFX_POOCHYENA, 0, 10, 0, 13, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0x0, 750, 0, 0
- object_event 5, MAP_OBJ_GFX_PROF_BIRCH, 0, 5, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route101_EventScript_1A037F, 897, 0, 0
- object_event 6, MAP_OBJ_GFX_BOY_2, 0, 2, 0, 13, 0, 3, 5, 17, 0, 0, 0, 0, 0, Route101_EventScript_14EA6D, 991, 0, 0
+ object_event 2, MAP_OBJ_GFX_PROF_BIRCH, 0, 9, 0, 13, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_BIRCH_BATTLE_POOCHYENA, 0, 0
+ object_event 3, MAP_OBJ_GFX_BIRCHS_BAG, 0, 7, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route101_EventScript_14EA7F, FLAG_HIDE_BIRCH_STARTERS_BAG, 0, 0
+ object_event 4, MAP_OBJ_GFX_POOCHYENA, 0, 10, 0, 13, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_POOCHYENA_ROUTE101, 0, 0
+ object_event 5, MAP_OBJ_GFX_PROF_BIRCH, 0, 5, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route101_EventScript_1A037F, FLAG_HIDE_BIRCH_ROUTE101, 0, 0
+ object_event 6, MAP_OBJ_GFX_BOY_2, 0, 2, 0, 13, 0, 3, 5, 17, 0, 0, 0, 0, 0, Route101_EventScript_14EA6D, FLAG_HIDE_BOY_ROUTE101, 0, 0
Route101_MapCoordEvents:: @ 838114C
coord_event 10, 19, 3, 0, 0x4060, 1, 0, Route101_EventScript_14E948
diff --git a/data/maps/events/Route102.inc b/data/maps/events/Route102.inc
index 7ffa0e191..2736c7a61 100644
--- a/data/maps/events/Route102.inc
+++ b/data/maps/events/Route102.inc
@@ -4,7 +4,7 @@ Route102_MapObjects:: @ 83811FC
object_event 3, MAP_OBJ_GFX_BUG_CATCHER, 0, 25, 0, 15, 0, 3, 7, 0, 0, 1, 0, 2, 0, Route102_EventScript_14EB3C, 0, 0, 0
object_event 4, MAP_OBJ_GFX_LASS, 0, 8, 0, 7, 0, 3, 18, 0, 0, 1, 0, 3, 0, Route102_EventScript_14EB53, 0, 0, 0
object_event 5, MAP_OBJ_GFX_BOY_1, 0, 37, 0, 4, 0, 3, 2, 17, 0, 0, 0, 0, 0, Route102_EventScript_14EAF5, 0, 0, 0
- object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 11, 0, 15, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route102_EventScript_1B1439, 1000, 0, 0
+ object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 11, 0, 15, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route102_EventScript_1B1439, FLAG_ITEM_ROUTE102_1, 0, 0
object_event 7, MAP_OBJ_GFX_BERRY_TREE, 0, 24, 0, 2, 0, 3, 12, 0, 0, 0, 0, 2, 0, S_BerryTree, 0, 0, 0
object_event 8, MAP_OBJ_GFX_BERRY_TREE, 0, 25, 0, 2, 0, 3, 12, 0, 0, 0, 0, 1, 0, S_BerryTree, 0, 0, 0
object_event 9, MAP_OBJ_GFX_YOUNGSTER, 0, 19, 0, 4, 0, 3, 8, 17, 0, 1, 0, 3, 0, Route102_EventScript_14EB6A, 0, 0, 0
diff --git a/data/maps/events/Route103.inc b/data/maps/events/Route103.inc
index 462fe1a3b..580e8a91b 100644
--- a/data/maps/events/Route103.inc
+++ b/data/maps/events/Route103.inc
@@ -1,6 +1,6 @@
Route103_MapObjects:: @ 8381300
object_event 1, MAP_OBJ_GFX_MAN_4, 0, 49, 0, 12, 0, 3, 9, 0, 0, 0, 0, 0, 0, Route103_EventScript_14ED82, 0, 0, 0
- object_event 2, 240, 0, 10, 0, 2, 0, 3, 7, 0, 0, 0, 0, 0, 0, Route103_EventScript_14EB92, 723, 0, 0
+ object_event 2, 240, 0, 10, 0, 2, 0, 3, 7, 0, 0, 0, 0, 0, 0, Route103_EventScript_14EB92, FLAG_HIDE_RIVAL_ROUTE103, 0, 0
object_event 3, MAP_OBJ_GFX_WOMAN_3, 0, 71, 0, 10, 0, 3, 18, 0, 0, 1, 0, 3, 0, Route103_EventScript_14ED94, 0, 0, 0
object_event 4, MAP_OBJ_GFX_LITTLE_GIRL_1, 0, 65, 0, 11, 0, 3, 8, 0, 0, 1, 0, 0, 0, Route103_EventScript_14EDF1, 0, 0, 0
object_event 5, MAP_OBJ_GFX_LITTLE_GIRL_1, 0, 64, 0, 11, 0, 3, 8, 0, 0, 1, 0, 0, 0, Route103_EventScript_14EDAB, 0, 0, 0
@@ -9,11 +9,11 @@ Route103_MapObjects:: @ 8381300
object_event 8, MAP_OBJ_GFX_BERRY_TREE, 0, 59, 0, 5, 0, 3, 12, 0, 0, 0, 0, 6, 0, S_BerryTree, 0, 0, 0
object_event 9, MAP_OBJ_GFX_BERRY_TREE, 0, 60, 0, 5, 0, 3, 12, 0, 0, 0, 0, 7, 0, S_BerryTree, 0, 0, 0
object_event 10, MAP_OBJ_GFX_BOY_1, 0, 20, 0, 10, 0, 3, 2, 33, 0, 0, 0, 0, 0, Route103_EventScript_14ED79, 0, 0, 0
- object_event 11, MAP_OBJ_GFX_PROF_BIRCH, 0, 7, 0, 3, 0, 3, 2, 17, 0, 0, 0, 0, 0, Route103_EventScript_1A037F, 898, 0, 0
+ object_event 11, MAP_OBJ_GFX_PROF_BIRCH, 0, 7, 0, 3, 0, 3, 2, 17, 0, 0, 0, 0, 0, Route103_EventScript_1A037F, FLAG_HIDE_BIRCH_ROUTE103, 0, 0
object_event 12, MAP_OBJ_GFX_MAN_3, 0, 56, 0, 12, 0, 3, 10, 0, 0, 1, 0, 5, 0, Route103_EventScript_14EE4E, 0, 0, 0
- object_event 13, MAP_OBJ_GFX_ITEM_BALL, 0, 63, 0, 8, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route103_EventScript_1B1446, 1114, 0, 0
- object_event 14, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 67, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_CuttableTree, 18, 0, 0
- object_event 15, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 69, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_CuttableTree, 19, 0, 0
+ object_event 13, MAP_OBJ_GFX_ITEM_BALL, 0, 63, 0, 8, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route103_EventScript_1B1446, FLAG_ITEM_ROUTE103_1, 0, 0
+ object_event 14, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 67, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_12, 0, 0
+ object_event 15, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 69, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_13, 0, 0
Route103_MapBGEvents:: @ 8381468
bg_event 11, 9, 0, 0, 0, Route103_EventScript_14ED8B
diff --git a/data/maps/events/Route104.inc b/data/maps/events/Route104.inc
index b4c8a2834..f7034ff26 100644
--- a/data/maps/events/Route104.inc
+++ b/data/maps/events/Route104.inc
@@ -5,8 +5,8 @@ Route104_MapObjects:: @ 8381488
object_event 4, MAP_OBJ_GFX_BOY_1, 0, 27, 0, 63, 0, 3, 3, 16, 0, 0, 0, 0, 0, Route104_EventScript_14EF81, 0, 0, 0
object_event 5, MAP_OBJ_GFX_WOMAN_3, 0, 30, 0, 50, 0, 3, 2, 17, 0, 0, 0, 0, 0, Route104_EventScript_14EF8A, 0, 0, 0
object_event 6, MAP_OBJ_GFX_GIRL_3, 0, 28, 0, 74, 0, 3, 7, 0, 0, 0, 0, 0, 0, Route104_EventScript_14EFCC, 0, 0, 0
- object_event 7, MAP_OBJ_GFX_MR_BRINEYS_BOAT, 0, 12, 0, 54, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0x0, 742, 0, 0
- object_event 8, MAP_OBJ_GFX_OLD_MAN_1, 0, 12, 0, 51, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0x0, 738, 0, 0
+ object_event 7, MAP_OBJ_GFX_MR_BRINEYS_BOAT, 0, 12, 0, 54, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104, 0, 0
+ object_event 8, MAP_OBJ_GFX_OLD_MAN_1, 0, 12, 0, 51, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_MR_BRINEY_ROUTE104, 0, 0
object_event 9, MAP_OBJ_GFX_FISHERMAN, 0, 29, 0, 8, 0, 3, 8, 0, 0, 1, 0, 0, 0, Route104_EventScript_14F172, 0, 0, 0
object_event 10, MAP_OBJ_GFX_BERRY_TREE, 0, 34, 0, 6, 0, 3, 12, 0, 0, 0, 0, 8, 0, S_BerryTree, 0, 0, 0
object_event 11, MAP_OBJ_GFX_BERRY_TREE, 0, 35, 0, 6, 0, 3, 12, 0, 0, 0, 0, 9, 0, S_BerryTree, 0, 0, 0
@@ -19,28 +19,28 @@ Route104_MapObjects:: @ 8381488
object_event 18, MAP_OBJ_GFX_BERRY_TREE, 0, 3, 0, 23, 0, 3, 12, 0, 0, 0, 0, 4, 0, S_BerryTree, 0, 0, 0
object_event 19, MAP_OBJ_GFX_BERRY_TREE, 0, 3, 0, 24, 0, 3, 12, 0, 0, 0, 0, 75, 0, S_BerryTree, 0, 0, 0
object_event 20, MAP_OBJ_GFX_BERRY_TREE, 0, 3, 0, 25, 0, 3, 12, 0, 0, 0, 0, 76, 0, S_BerryTree, 0, 0, 0
- object_event 21, MAP_OBJ_GFX_ITEM_BALL, 0, 39, 0, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route104_EventScript_1B1453, 1002, 0, 0
- object_event 22, MAP_OBJ_GFX_WOMAN_7, 0, 8, 0, 19, 0, 3, 5, 1, 0, 0, 0, 0, 0, Route104_EventScript_14EF09, 906, 0, 0
+ object_event 21, MAP_OBJ_GFX_ITEM_BALL, 0, 39, 0, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route104_EventScript_1B1453, FLAG_ITEM_ROUTE104_1, 0, 0
+ object_event 22, MAP_OBJ_GFX_WOMAN_7, 0, 8, 0, 19, 0, 3, 5, 1, 0, 0, 0, 0, 0, Route104_EventScript_14EF09, FLAG_HIDE_FLOWER_SHOP_WORKER_OUTSIDE, 0, 0
object_event 23, MAP_OBJ_GFX_LITTLE_GIRL_1, 0, 27, 0, 15, 0, 3, 8, 0, 0, 1, 0, 0, 0, Route104_EventScript_14F25A, 0, 0, 0
object_event 24, MAP_OBJ_GFX_LITTLE_GIRL_1, 0, 28, 0, 15, 0, 3, 8, 0, 0, 1, 0, 0, 0, Route104_EventScript_14F279, 0, 0, 0
object_event 25, MAP_OBJ_GFX_BOY_4, 0, 11, 0, 44, 0, 3, 16, 0, 0, 1, 0, 3, 0, Route104_EventScript_14F1DE, 0, 0, 0
object_event 26, MAP_OBJ_GFX_WOMAN_3, 0, 22, 0, 25, 0, 3, 23, 0, 0, 1, 0, 3, 0, Route104_EventScript_14F21C, 0, 0, 0
- object_event 27, MAP_OBJ_GFX_ITEM_BALL, 0, 29, 0, 53, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route104_EventScript_1B1460, 1057, 0, 0
+ object_event 27, MAP_OBJ_GFX_ITEM_BALL, 0, 29, 0, 53, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route104_EventScript_1B1460, FLAG_ITEM_ROUTE104_2, 0, 0
object_event 28, MAP_OBJ_GFX_YOUNGSTER, 0, 18, 0, 67, 0, 3, 46, 101, 0, 1, 0, 2, 0, Route104_EventScript_14F189, 0, 0, 0
- object_event 29, MAP_OBJ_GFX_ITEM_BALL, 0, 37, 0, 22, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route104_EventScript_1B146D, 1115, 0, 0
- object_event 30, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 35, 0, 22, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_CuttableTree, 17, 0, 0
- object_event 31, MAP_OBJ_GFX_ITEM_BALL, 0, 5, 0, 8, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route104_EventScript_1B147A, 1135, 0, 0
+ object_event 29, MAP_OBJ_GFX_ITEM_BALL, 0, 37, 0, 22, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route104_EventScript_1B146D, FLAG_ITEM_ROUTE104_3, 0, 0
+ object_event 30, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 35, 0, 22, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_11, 0, 0
+ object_event 31, MAP_OBJ_GFX_ITEM_BALL, 0, 5, 0, 8, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route104_EventScript_1B147A, FLAG_ITEM_ROUTE104_4, 0, 0
object_event 32, MAP_OBJ_GFX_BOY_2, 0, 5, 0, 26, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route104_EventScript_14EF93, 0, 0, 0
Route104_MapWarps:: @ 8381788
- warp_def 17, 50, 0, 0, Route104_MrBrineysHouse
- warp_def 5, 18, 0, 0, Route104_PrettyPetalFlowerShop
- warp_def 10, 30, 3, 0, PetalburgWoods
- warp_def 11, 30, 3, 1, PetalburgWoods
- warp_def 10, 38, 3, 2, PetalburgWoods
- warp_def 11, 38, 3, 3, PetalburgWoods
- warp_def 32, 42, 3, 4, PetalburgWoods
- warp_def 33, 42, 3, 5, PetalburgWoods
+ warp_def 17, 50, 0, 0, MAP_ROUTE104_MR_BRINEYS_HOUSE
+ warp_def 5, 18, 0, 0, MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP
+ warp_def 10, 30, 3, 0, MAP_PETALBURG_WOODS
+ warp_def 11, 30, 3, 1, MAP_PETALBURG_WOODS
+ warp_def 10, 38, 3, 2, MAP_PETALBURG_WOODS
+ warp_def 11, 38, 3, 3, MAP_PETALBURG_WOODS
+ warp_def 32, 42, 3, 4, MAP_PETALBURG_WOODS
+ warp_def 33, 42, 3, 5, MAP_PETALBURG_WOODS
Route104_MapBGEvents:: @ 83817C8
bg_event 20, 50, 0, 0, 0, Route104_EventScript_14EF54
diff --git a/data/maps/events/Route104_MrBrineysHouse.inc b/data/maps/events/Route104_MrBrineysHouse.inc
index d8b2ff252..d77b2977a 100644
--- a/data/maps/events/Route104_MrBrineysHouse.inc
+++ b/data/maps/events/Route104_MrBrineysHouse.inc
@@ -1,10 +1,10 @@
Route104_MrBrineysHouse_MapObjects:: @ 838B654
- object_event 1, MAP_OBJ_GFX_OLD_MAN_1, 0, 5, 0, 3, 0, 3, 50, 51, 0, 0, 0, 0, 0, Route104_MrBrineysHouse_EventScript_15BCEB, 739, 0, 0
- object_event 2, MAP_OBJ_GFX_WINGULL, 0, 6, 0, 3, 0, 3, 8, 51, 0, 0, 0, 0, 0, Route104_MrBrineysHouse_EventScript_15BDD1, 881, 0, 0
+ object_event 1, MAP_OBJ_GFX_OLD_MAN_1, 0, 5, 0, 3, 0, 3, 50, 51, 0, 0, 0, 0, 0, Route104_MrBrineysHouse_EventScript_15BCEB, FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE, 0, 0
+ object_event 2, MAP_OBJ_GFX_WINGULL, 0, 6, 0, 3, 0, 3, 8, 51, 0, 0, 0, 0, 0, Route104_MrBrineysHouse_EventScript_15BDD1, FLAG_HIDE_PEEKO_BRINEY_HOUSE, 0, 0
Route104_MrBrineysHouse_MapWarps:: @ 838B684
- warp_def 5, 8, 0, 0, Route104
- warp_def 6, 8, 0, 0, Route104
+ warp_def 5, 8, 0, 0, MAP_ROUTE104
+ warp_def 6, 8, 0, 0, MAP_ROUTE104
Route104_MrBrineysHouse_MapEvents:: @ 838B694
map_events Route104_MrBrineysHouse_MapObjects, Route104_MrBrineysHouse_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route104_PrettyPetalFlowerShop.inc b/data/maps/events/Route104_PrettyPetalFlowerShop.inc
index 0c540e940..c02950add 100644
--- a/data/maps/events/Route104_PrettyPetalFlowerShop.inc
+++ b/data/maps/events/Route104_PrettyPetalFlowerShop.inc
@@ -4,8 +4,8 @@ Route104_PrettyPetalFlowerShop_MapObjects:: @ 838B6A8
object_event 3, MAP_OBJ_GFX_GIRL_1, 0, 11, 0, 6, 0, 4, 2, 34, 0, 0, 0, 0, 0, Route104_PrettyPetalFlowerShop_EventScript_15BEDA, 0, 0, 0
Route104_PrettyPetalFlowerShop_MapWarps:: @ 838B6F0
- warp_def 2, 8, 0, 1, Route104
- warp_def 3, 8, 0, 1, Route104
+ warp_def 2, 8, 0, 1, MAP_ROUTE104
+ warp_def 3, 8, 0, 1, MAP_ROUTE104
Route104_PrettyPetalFlowerShop_MapEvents:: @ 838B700
map_events Route104_PrettyPetalFlowerShop_MapObjects, Route104_PrettyPetalFlowerShop_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route104_Prototype.inc b/data/maps/events/Route104_Prototype.inc
index 6748fe0ed..80dcf5108 100644
--- a/data/maps/events/Route104_Prototype.inc
+++ b/data/maps/events/Route104_Prototype.inc
@@ -13,7 +13,7 @@ Route104_Prototype_MapObjects:: @ 8391F2C
object_event 12, MAP_OBJ_GFX_MAN_3, 0, 11, 0, 28, 0, 3, 2, 17, 0, 0, 0, 0, 0, Route104_Prototype_EventScript_160D0A, 0, 0, 0
Route104_Prototype_MapWarps:: @ 839204C
- warp_def 5, 24, 0, 0, Route104_PrototypePrettyPetalFlowerShop
+ warp_def 5, 24, 0, 0, MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP
Route104_Prototype_MapBGEvents:: @ 8392054
bg_event 7, 26, 0, 0, 0, Route104_Prototype_EventScript_160D1C
diff --git a/data/maps/events/Route104_PrototypePrettyPetalFlowerShop.inc b/data/maps/events/Route104_PrototypePrettyPetalFlowerShop.inc
index 96cac1e71..4ec99895c 100644
--- a/data/maps/events/Route104_PrototypePrettyPetalFlowerShop.inc
+++ b/data/maps/events/Route104_PrototypePrettyPetalFlowerShop.inc
@@ -2,8 +2,8 @@ Route104_PrototypePrettyPetalFlowerShop_MapObjects:: @ 8392080
object_event 1, MAP_OBJ_GFX_GIRL_1, 0, 2, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route104_PrototypePrettyPetalFlowerShop_EventScript_160DC1, 0, 0, 0
Route104_PrototypePrettyPetalFlowerShop_MapWarps:: @ 8392098
- warp_def 2, 8, 0, 0, Route104_Prototype
- warp_def 3, 8, 0, 0, Route104_Prototype
+ warp_def 2, 8, 0, 0, MAP_ROUTE104_PROTOTYPE
+ warp_def 3, 8, 0, 0, MAP_ROUTE104_PROTOTYPE
Route104_PrototypePrettyPetalFlowerShop_MapEvents:: @ 83920A8
map_events Route104_PrototypePrettyPetalFlowerShop_MapObjects, Route104_PrototypePrettyPetalFlowerShop_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route105.inc b/data/maps/events/Route105.inc
index 5f7f6c13d..45c0866e3 100644
--- a/data/maps/events/Route105.inc
+++ b/data/maps/events/Route105.inc
@@ -3,11 +3,11 @@ Route105_MapObjects:: @ 8381854
object_event 2, MAP_OBJ_GFX_SWIMMER_M, 0, 10, 0, 44, 0, 1, 27, 7, 0, 1, 0, 3, 0, Route105_EventScript_14F2E9, 0, 0, 0
object_event 3, MAP_OBJ_GFX_SWIMMER_F, 0, 26, 0, 36, 0, 1, 25, 112, 0, 1, 0, 3, 0, Route105_EventScript_14F300, 0, 0, 0
object_event 4, MAP_OBJ_GFX_SWIMMER_F, 0, 19, 0, 9, 0, 1, 24, 80, 0, 1, 0, 3, 0, Route105_EventScript_14F317, 0, 0, 0
- object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 8, 0, 73, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route105_EventScript_1B1487, 1003, 0, 0
+ object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 8, 0, 73, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route105_EventScript_1B1487, FLAG_ITEM_ROUTE105_1, 0, 0
object_event 6, MAP_OBJ_GFX_HIKER, 0, 12, 0, 51, 0, 3, 13, 0, 0, 1, 0, 3, 0, Route105_EventScript_14F2BB, 0, 0, 0
Route105_MapWarps:: @ 83818E4
- warp_def 9, 20, 0, 0, IslandCave
+ warp_def 9, 20, 0, 0, MAP_ISLAND_CAVE
Route105_MapBGEvents:: @ 83818EC
bg_event 15, 68, 3, 7, 0, ITEM_HEART_SCALE, 89, 0
diff --git a/data/maps/events/Route106.inc b/data/maps/events/Route106.inc
index 51c093fe5..991e12f74 100644
--- a/data/maps/events/Route106.inc
+++ b/data/maps/events/Route106.inc
@@ -3,10 +3,10 @@ Route106_MapObjects:: @ 838190C
object_event 2, MAP_OBJ_GFX_SWIMMER_F, 0, 18, 0, 5, 0, 3, 1, 0, 0, 1, 0, 3, 0, Route106_EventScript_14F34F, 0, 0, 0
object_event 3, MAP_OBJ_GFX_FISHERMAN, 0, 51, 0, 14, 0, 3, 10, 0, 0, 1, 0, 4, 0, Route106_EventScript_14F366, 0, 0, 0
object_event 4, MAP_OBJ_GFX_FISHERMAN, 0, 65, 0, 14, 0, 3, 1, 0, 0, 1, 0, 3, 0, Route106_EventScript_14F3A4, 0, 0, 0
- object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 29, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route106_EventScript_1B1494, 1004, 0, 0
+ object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 29, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route106_EventScript_1B1494, FLAG_ITEM_ROUTE106_1, 0, 0
Route106_MapWarps:: @ 8381984
- warp_def 48, 16, 0, 0, GraniteCave_1F
+ warp_def 48, 16, 0, 0, MAP_GRANITE_CAVE_1F
Route106_MapBGEvents:: @ 838198C
bg_event 41, 11, 3, 7, 0, ITEM_POKE_BALL, 63, 0
diff --git a/data/maps/events/Route108.inc b/data/maps/events/Route108.inc
index 1f49a1e0c..ad695e8b9 100644
--- a/data/maps/events/Route108.inc
+++ b/data/maps/events/Route108.inc
@@ -5,7 +5,7 @@ Route108_MapObjects:: @ 8381A74
object_event 4, MAP_OBJ_GFX_SWIMMER_F, 0, 36, 0, 12, 0, 1, 51, 54, 0, 1, 0, 3, 0, Route108_EventScript_14F4BB, 0, 0, 0
Route108_MapWarps:: @ 8381AD4
- warp_def 29, 6, 3, 0, AbandonedShip_Deck
+ warp_def 29, 6, 3, 0, MAP_ABANDONED_SHIP_DECK
Route108_MapBGEvents:: @ 8381ADC
bg_event 38, 14, 3, 7, 0, ITEM_RARE_CANDY, 86, 0
diff --git a/data/maps/events/Route109.inc b/data/maps/events/Route109.inc
index 511579650..5924bc0d2 100644
--- a/data/maps/events/Route109.inc
+++ b/data/maps/events/Route109.inc
@@ -1,6 +1,6 @@
Route109_MapObjects:: @ 8381AFC
- object_event 1, MAP_OBJ_GFX_MR_BRINEYS_BOAT, 0, 21, 0, 26, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0x0, 744, 0, 0
- object_event 2, MAP_OBJ_GFX_OLD_MAN_1, 0, 21, 0, 24, 0, 3, 7, 0, 0, 0, 0, 0, 0, Route109_EventScript_14F680, 741, 0, 0
+ object_event 1, MAP_OBJ_GFX_MR_BRINEYS_BOAT, 0, 21, 0, 26, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109, 0, 0
+ object_event 2, MAP_OBJ_GFX_OLD_MAN_1, 0, 21, 0, 24, 0, 3, 7, 0, 0, 0, 0, 0, 0, Route109_EventScript_14F680, FLAG_HIDE_MR_BRINEY_ROUTE109, 0, 0
object_event 3, MAP_OBJ_GFX_SWIMMER_M, 0, 12, 0, 36, 0, 3, 10, 0, 0, 1, 0, 5, 0, Route109_EventScript_14F7AD, 0, 0, 0
object_event 4, MAP_OBJ_GFX_SWIMMER_F, 0, 25, 0, 42, 0, 3, 15, 0, 0, 1, 0, 5, 0, Route109_EventScript_14F7C4, 0, 0, 0
object_event 5, MAP_OBJ_GFX_SAILOR, 0, 19, 0, 19, 0, 3, 10, 0, 0, 1, 0, 4, 0, Route109_EventScript_14F7DB, 0, 0, 0
@@ -8,7 +8,7 @@ Route109_MapObjects:: @ 8381AFC
object_event 7, MAP_OBJ_GFX_TUBER_M, 0, 21, 0, 11, 0, 3, 23, 0, 0, 1, 0, 3, 0, Route109_EventScript_14F809, 0, 0, 0
object_event 8, MAP_OBJ_GFX_TUBER_F, 0, 28, 0, 8, 0, 3, 10, 0, 0, 1, 0, 4, 0, Route109_EventScript_14F847, 0, 0, 0
object_event 9, MAP_OBJ_GFX_LITTLE_GIRL_2, 0, 11, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route109_EventScript_14F705, 0, 0, 0
- object_event 10, MAP_OBJ_GFX_ITEM_BALL, 0, 27, 0, 48, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route109_EventScript_1B14A1, 1005, 0, 0
+ object_event 10, MAP_OBJ_GFX_ITEM_BALL, 0, 27, 0, 48, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route109_EventScript_1B14A1, FLAG_ITEM_ROUTE109_1, 0, 0
object_event 11, MAP_OBJ_GFX_TUBER_F, 0, 29, 0, 32, 0, 3, 13, 0, 0, 1, 0, 3, 0, Route109_EventScript_14F89C, 0, 0, 0
object_event 12, MAP_OBJ_GFX_TUBER_F, 0, 28, 0, 31, 0, 3, 17, 0, 0, 1, 0, 3, 0, Route109_EventScript_14F885, 0, 0, 0
object_event 13, MAP_OBJ_GFX_FISHERMAN, 0, 15, 0, 52, 0, 3, 10, 0, 0, 1, 0, 0, 0, Route109_EventScript_14F8B3, 0, 0, 0
@@ -21,7 +21,7 @@ Route109_MapObjects:: @ 8381AFC
object_event 20, MAP_OBJ_GFX_ZIGZAGOON, 0, 32, 0, 6, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route109_EventScript_14F788, 0, 0, 0
Route109_MapWarps:: @ 8381CDC
- warp_def 12, 5, 0, 0, Route109_SeashoreHouse
+ warp_def 12, 5, 0, 0, MAP_ROUTE109_SEASHORE_HOUSE
Route109_MapBGEvents:: @ 8381CE4
bg_event 15, 5, 0, 0, 0, Route109_EventScript_14F79B
diff --git a/data/maps/events/Route109_SeashoreHouse.inc b/data/maps/events/Route109_SeashoreHouse.inc
index 5036df1e7..abaf7abcc 100644
--- a/data/maps/events/Route109_SeashoreHouse.inc
+++ b/data/maps/events/Route109_SeashoreHouse.inc
@@ -5,8 +5,8 @@ Route109_SeashoreHouse_MapObjects:: @ 83920BC
object_event 4, MAP_OBJ_GFX_BEAUTY, 0, 10, 0, 5, 0, 3, 14, 0, 0, 1, 0, 2, 0, Route109_SeashoreHouse_EventScript_160ED3, 0, 0, 0
Route109_SeashoreHouse_MapWarps:: @ 839211C
- warp_def 6, 9, 0, 0, Route109
- warp_def 7, 9, 0, 0, Route109
+ warp_def 6, 9, 0, 0, MAP_ROUTE109
+ warp_def 7, 9, 0, 0, MAP_ROUTE109
Route109_SeashoreHouse_MapEvents:: @ 839212C
map_events Route109_SeashoreHouse_MapObjects, Route109_SeashoreHouse_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route110.inc b/data/maps/events/Route110.inc
index 3db4ce8e8..91531dbe5 100644
--- a/data/maps/events/Route110.inc
+++ b/data/maps/events/Route110.inc
@@ -17,27 +17,27 @@ Route110_MapObjects:: @ 8381D58
object_event 16, MAP_OBJ_GFX_BERRY_TREE, 0, 5, 0, 11, 0, 3, 12, 0, 0, 0, 0, 16, 0, S_BerryTree, 0, 0, 0
object_event 17, MAP_OBJ_GFX_BERRY_TREE, 0, 6, 0, 11, 0, 3, 12, 0, 0, 0, 0, 17, 0, S_BerryTree, 0, 0, 0
object_event 18, MAP_OBJ_GFX_BERRY_TREE, 0, 7, 0, 11, 0, 3, 12, 0, 0, 0, 0, 18, 0, S_BerryTree, 0, 0, 0
- object_event 19, MAP_OBJ_GFX_ITEM_BALL, 0, 30, 0, 69, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_EventScript_1B14BB, 1007, 0, 0
- object_event 20, MAP_OBJ_GFX_ITEM_BALL, 0, 26, 0, 47, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_EventScript_1B14AE, 1006, 0, 0
+ object_event 19, MAP_OBJ_GFX_ITEM_BALL, 0, 30, 0, 69, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_EventScript_1B14BB, FLAG_ITEM_ROUTE110_2, 0, 0
+ object_event 20, MAP_OBJ_GFX_ITEM_BALL, 0, 26, 0, 47, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_EventScript_1B14AE, FLAG_ITEM_ROUTE110_1, 0, 0
object_event 21, MAP_OBJ_GFX_CYCLING_TRIATHLETE_M, 0, 27, 0, 92, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route110_EventScript_14FA53, 0, 0, 0
- object_event 22, 241, 0, 7, 0, 83, 0, 3, 7, 0, 0, 0, 0, 0, 0, Route110_EventScript_14F946, 900, 0, 0
- object_event 23, 241, 0, 8, 0, 83, 0, 3, 7, 0, 0, 0, 0, 0, 0, Route110_EventScript_14F95C, 900, 0, 0
- object_event 24, 241, 0, 9, 0, 83, 0, 3, 7, 0, 0, 0, 0, 0, 0, Route110_EventScript_14F972, 900, 0, 0
- object_event 25, 241, 0, 10, 0, 83, 0, 3, 7, 0, 0, 0, 0, 0, 0, Route110_EventScript_14F988, 900, 0, 0
- object_event 26, 241, 0, 8, 0, 82, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0x0, 900, 0, 0
+ object_event 22, 241, 0, 7, 0, 83, 0, 3, 7, 0, 0, 0, 0, 0, 0, Route110_EventScript_14F946, FLAG_HIDE_EVIL_TEAM_ROUTE110, 0, 0
+ object_event 23, 241, 0, 8, 0, 83, 0, 3, 7, 0, 0, 0, 0, 0, 0, Route110_EventScript_14F95C, FLAG_HIDE_EVIL_TEAM_ROUTE110, 0, 0
+ object_event 24, 241, 0, 9, 0, 83, 0, 3, 7, 0, 0, 0, 0, 0, 0, Route110_EventScript_14F972, FLAG_HIDE_EVIL_TEAM_ROUTE110, 0, 0
+ object_event 25, 241, 0, 10, 0, 83, 0, 3, 7, 0, 0, 0, 0, 0, 0, Route110_EventScript_14F988, FLAG_HIDE_EVIL_TEAM_ROUTE110, 0, 0
+ object_event 26, 241, 0, 8, 0, 82, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_EVIL_TEAM_ROUTE110, 0, 0
object_event 27, MAP_OBJ_GFX_CYCLING_TRIATHLETE_M, 0, 21, 0, 78, 0, 4, 51, 23, 0, 1, 0, 2, 0, Route110_EventScript_14FB11, 0, 0, 0
- object_event 28, 240, 0, 34, 0, 54, 0, 3, 14, 0, 0, 0, 0, 0, 0, 0x0, 919, 0, 0
- object_event 29, 243, 0, 34, 0, 54, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 922, 0, 0
+ object_event 28, 240, 0, 34, 0, 54, 0, 3, 14, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_RIVAL_ROUTE110, 0, 0
+ object_event 29, 243, 0, 34, 0, 54, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_RIVAL_ON_BIKE_ROUTE110, 0, 0
object_event 30, MAP_OBJ_GFX_YOUNGSTER, 0, 33, 0, 69, 0, 3, 14, 0, 0, 1, 0, 3, 0, Route110_EventScript_14FC10, 0, 0, 0
object_event 31, MAP_OBJ_GFX_WOMAN_2, 0, 11, 0, 73, 0, 3, 9, 0, 0, 1, 0, 4, 0, Route110_EventScript_14FBD2, 0, 0, 0
Route110_MapWarps:: @ 8382040
- warp_def 35, 24, 3, 0, NewMauville_Entrance
- warp_def 11, 66, 0, 0, Route110_TrickHouseEntrance
- warp_def 15, 16, 0, 0, Route110_SeasideCyclingRoadNorthEntrance
- warp_def 18, 16, 0, 2, Route110_SeasideCyclingRoadNorthEntrance
- warp_def 16, 88, 0, 0, Route110_SeasideCyclingRoadSouthEntrance
- warp_def 19, 88, 0, 2, Route110_SeasideCyclingRoadSouthEntrance
+ warp_def 35, 24, 3, 0, MAP_NEW_MAUVILLE_ENTRANCE
+ warp_def 11, 66, 0, 0, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 15, 16, 0, 0, MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE
+ warp_def 18, 16, 0, 2, MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE
+ warp_def 16, 88, 0, 0, MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE
+ warp_def 19, 88, 0, 2, MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE
Route110_MapCoordEvents:: @ 8382070
coord_event 28, 92, 3, 0, 0x40a9, 2, 0, Route110_EventScript_14FC27
diff --git a/data/maps/events/Route110_SeasideCyclingRoadNorthEntrance.inc b/data/maps/events/Route110_SeasideCyclingRoadNorthEntrance.inc
index e1ca6b4de..9051ad929 100644
--- a/data/maps/events/Route110_SeasideCyclingRoadNorthEntrance.inc
+++ b/data/maps/events/Route110_SeasideCyclingRoadNorthEntrance.inc
@@ -2,10 +2,10 @@ Route110_SeasideCyclingRoadNorthEntrance_MapObjects:: @ 8392CAC
object_event 1, MAP_OBJ_GFX_MART_EMPLOYEE, 0, 7, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route110_SeasideCyclingRoadNorthEntrance_EventScript_1634EB, 0, 0, 0
Route110_SeasideCyclingRoadNorthEntrance_MapWarps:: @ 8392CC4
- warp_def 1, 5, 0, 2, Route110
- warp_def 2, 5, 0, 2, Route110
- warp_def 12, 5, 0, 3, Route110
- warp_def 13, 5, 0, 3, Route110
+ warp_def 1, 5, 0, 2, MAP_ROUTE110
+ warp_def 2, 5, 0, 2, MAP_ROUTE110
+ warp_def 12, 5, 0, 3, MAP_ROUTE110
+ warp_def 13, 5, 0, 3, MAP_ROUTE110
Route110_SeasideCyclingRoadNorthEntrance_MapCoordEvents:: @ 8392CE4
coord_event 7, 4, 3, 0, 0x4001, 0, 0, Route110_SeasideCyclingRoadNorthEntrance_EventScript_1634F7
diff --git a/data/maps/events/Route110_SeasideCyclingRoadSouthEntrance.inc b/data/maps/events/Route110_SeasideCyclingRoadSouthEntrance.inc
index 24ae3600f..947cc714a 100644
--- a/data/maps/events/Route110_SeasideCyclingRoadSouthEntrance.inc
+++ b/data/maps/events/Route110_SeasideCyclingRoadSouthEntrance.inc
@@ -2,10 +2,10 @@ Route110_SeasideCyclingRoadSouthEntrance_MapObjects:: @ 8392C40
object_event 1, MAP_OBJ_GFX_MART_EMPLOYEE, 0, 7, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route110_SeasideCyclingRoadSouthEntrance_EventScript_16347F, 0, 0, 0
Route110_SeasideCyclingRoadSouthEntrance_MapWarps:: @ 8392C58
- warp_def 1, 5, 0, 4, Route110
- warp_def 2, 5, 0, 4, Route110
- warp_def 12, 5, 0, 5, Route110
- warp_def 13, 5, 0, 5, Route110
+ warp_def 1, 5, 0, 4, MAP_ROUTE110
+ warp_def 2, 5, 0, 4, MAP_ROUTE110
+ warp_def 12, 5, 0, 5, MAP_ROUTE110
+ warp_def 13, 5, 0, 5, MAP_ROUTE110
Route110_SeasideCyclingRoadSouthEntrance_MapCoordEvents:: @ 8392C78
coord_event 7, 4, 3, 0, 0x4001, 0, 0, Route110_SeasideCyclingRoadSouthEntrance_EventScript_16348B
diff --git a/data/maps/events/Route110_TrickHouseCorridor.inc b/data/maps/events/Route110_TrickHouseCorridor.inc
index 105701e55..4b7e39efd 100644
--- a/data/maps/events/Route110_TrickHouseCorridor.inc
+++ b/data/maps/events/Route110_TrickHouseCorridor.inc
@@ -1,8 +1,8 @@
Route110_TrickHouseCorridor_MapWarps:: @ 8392228
- warp_def 13, 3, 3, 1, Route110_TrickHouseEnd
- warp_def 14, 3, 3, 1, Route110_TrickHouseEnd
- warp_def 4, 23, 3, 2, Route110_TrickHouseEntrance
- warp_def 5, 23, 3, 2, Route110_TrickHouseEntrance
+ warp_def 13, 3, 3, 1, MAP_ROUTE110_TRICK_HOUSE_END
+ warp_def 14, 3, 3, 1, MAP_ROUTE110_TRICK_HOUSE_END
+ warp_def 4, 23, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 5, 23, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
Route110_TrickHouseCorridor_MapEvents:: @ 8392248
map_events 0x0, Route110_TrickHouseCorridor_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route110_TrickHouseEnd.inc b/data/maps/events/Route110_TrickHouseEnd.inc
index f050e3270..8c3cf7e11 100644
--- a/data/maps/events/Route110_TrickHouseEnd.inc
+++ b/data/maps/events/Route110_TrickHouseEnd.inc
@@ -1,9 +1,9 @@
Route110_TrickHouseEnd_MapObjects:: @ 83921D0
- object_event 1, MAP_OBJ_GFX_MAN_1, 0, 4, 0, 5, 0, 3, 10, 0, 0, 0, 0, 0, 0, Route110_TrickHouseEnd_EventScript_16199E, 899, 0, 0
+ object_event 1, MAP_OBJ_GFX_MAN_1, 0, 4, 0, 5, 0, 3, 10, 0, 0, 0, 0, 0, 0, Route110_TrickHouseEnd_EventScript_16199E, FLAG_HIDE_TRICKMASTER_END, 0, 0
Route110_TrickHouseEnd_MapWarps:: @ 83921E8
- warp_def 10, 1, 3, 2, Route110_TrickHousePuzzle1
- warp_def 2, 1, 3, 0, Route110_TrickHouseCorridor
+ warp_def 10, 1, 3, 2, MAP_ROUTE110_TRICK_HOUSE_PUZZLE1
+ warp_def 2, 1, 3, 0, MAP_ROUTE110_TRICK_HOUSE_CORRIDOR
Route110_TrickHouseEnd_MapCoordEvents:: @ 83921F8
coord_event 2, 2, 3, 0, 0x4002, 0, 0, Route110_TrickHouseEnd_EventScript_161CA0
diff --git a/data/maps/events/Route110_TrickHouseEntrance.inc b/data/maps/events/Route110_TrickHouseEntrance.inc
index a1f67bd3d..9f6e305cc 100644
--- a/data/maps/events/Route110_TrickHouseEntrance.inc
+++ b/data/maps/events/Route110_TrickHouseEntrance.inc
@@ -1,10 +1,10 @@
Route110_TrickHouseEntrance_MapObjects:: @ 8392140
- object_event 1, MAP_OBJ_GFX_MAN_1, 0, 6, 0, 2, 0, 3, 9, 0, 0, 0, 0, 0, 0, Route110_TrickHouseEntrance_EventScript_16121A, 872, 0, 0
+ object_event 1, MAP_OBJ_GFX_MAN_1, 0, 6, 0, 2, 0, 3, 9, 0, 0, 0, 0, 0, 0, Route110_TrickHouseEntrance_EventScript_16121A, FLAG_HIDE_TRICKMASTER_ENTRANCE, 0, 0
Route110_TrickHouseEntrance_MapWarps:: @ 8392158
- warp_def 5, 7, 3, 1, Route110
- warp_def 6, 7, 3, 1, Route110
- warp_def 5, 2, 3, 0, Route110_TrickHousePuzzle1
+ warp_def 5, 7, 3, 1, MAP_ROUTE110
+ warp_def 6, 7, 3, 1, MAP_ROUTE110
+ warp_def 5, 2, 3, 0, MAP_ROUTE110_TRICK_HOUSE_PUZZLE1
Route110_TrickHouseEntrance_MapCoordEvents:: @ 8392170
coord_event 4, 7, 3, 0, 0x40a5, 0, 0, Route110_TrickHouseEntrance_EventScript_1618B0
diff --git a/data/maps/events/Route110_TrickHousePuzzle1.inc b/data/maps/events/Route110_TrickHousePuzzle1.inc
index 3660e3c3f..61ae942ee 100644
--- a/data/maps/events/Route110_TrickHousePuzzle1.inc
+++ b/data/maps/events/Route110_TrickHousePuzzle1.inc
@@ -2,27 +2,27 @@ Route110_TrickHousePuzzle1_MapObjects:: @ 839225C
object_event 1, MAP_OBJ_GFX_LASS, 0, 13, 0, 21, 0, 3, 9, 0, 0, 1, 0, 5, 0, Route110_TrickHousePuzzle1_EventScript_161D31, 0, 0, 0
object_event 2, MAP_OBJ_GFX_YOUNGSTER, 0, 13, 0, 7, 0, 3, 8, 0, 0, 1, 0, 2, 0, Route110_TrickHousePuzzle1_EventScript_161D48, 0, 0, 0
object_event 3, MAP_OBJ_GFX_LASS, 0, 3, 0, 8, 0, 3, 9, 0, 0, 1, 0, 3, 0, Route110_TrickHousePuzzle1_EventScript_161D5F, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 3, 0, 18, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 19, 0, 0
- object_event 5, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 7, 0, 21, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 17, 0, 0
- object_event 6, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 12, 0, 18, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 18, 0, 0
- object_event 7, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 10, 0, 16, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 20, 0, 0
- object_event 8, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 12, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 23, 0, 0
- object_event 9, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 3, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 22, 0, 0
- object_event 10, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 0, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 21, 0, 0
- object_event 11, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 6, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 25, 0, 0
- object_event 12, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 2, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 24, 0, 0
- object_event 13, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 9, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 26, 0, 0
- object_event 14, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 2, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 28, 0, 0
- object_event 15, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 0, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 27, 0, 0
- object_event 16, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 6, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 29, 0, 0
- object_event 17, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 11, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 30, 0, 0
- object_event 18, MAP_OBJ_GFX_ITEM_BALL, 0, 9, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle1_EventScript_1B1A51, 1060, 0, 0
- object_event 19, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 14, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 31, 0, 0
+ object_event 4, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 3, 0, 18, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_13, 0, 0
+ object_event 5, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 7, 0, 21, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_11, 0, 0
+ object_event 6, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 12, 0, 18, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_12, 0, 0
+ object_event 7, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 10, 0, 16, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_14, 0, 0
+ object_event 8, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 12, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_17, 0, 0
+ object_event 9, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 3, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_16, 0, 0
+ object_event 10, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 0, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_15, 0, 0
+ object_event 11, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 6, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_19, 0, 0
+ object_event 12, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 2, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_18, 0, 0
+ object_event 13, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 9, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_1A, 0, 0
+ object_event 14, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 2, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_1C, 0, 0
+ object_event 15, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 0, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_1B, 0, 0
+ object_event 16, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 6, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_1D, 0, 0
+ object_event 17, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 11, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_1E, 0, 0
+ object_event 18, MAP_OBJ_GFX_ITEM_BALL, 0, 9, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle1_EventScript_1B1A51, FLAG_ITEM_TRICK_HOUSE_PUZZLE_1_1, 0, 0
+ object_event 19, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 14, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_1F, 0, 0
Route110_TrickHousePuzzle1_MapWarps:: @ 8392424
- warp_def 0, 21, 3, 2, Route110_TrickHouseEntrance
- warp_def 1, 21, 3, 2, Route110_TrickHouseEntrance
- warp_def 13, 1, 3, 0, Route110_TrickHouseEnd
+ warp_def 0, 21, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 1, 21, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 13, 1, 3, 0, MAP_ROUTE110_TRICK_HOUSE_END
Route110_TrickHousePuzzle1_MapBGEvents:: @ 839243C
bg_event 14, 8, 0, 0, 0, Route110_TrickHousePuzzle1_EventScript_161D14
diff --git a/data/maps/events/Route110_TrickHousePuzzle2.inc b/data/maps/events/Route110_TrickHousePuzzle2.inc
index d77fd66a1..264465641 100644
--- a/data/maps/events/Route110_TrickHousePuzzle2.inc
+++ b/data/maps/events/Route110_TrickHousePuzzle2.inc
@@ -2,13 +2,13 @@ Route110_TrickHousePuzzle2_MapObjects:: @ 839245C
object_event 1, MAP_OBJ_GFX_SCHOOL_KID_M, 0, 13, 0, 16, 0, 3, 8, 0, 0, 1, 0, 1, 0, Route110_TrickHousePuzzle2_EventScript_161E78, 0, 0, 0
object_event 2, MAP_OBJ_GFX_SCHOOL_KID_M, 0, 0, 0, 10, 0, 3, 10, 0, 0, 1, 0, 2, 0, Route110_TrickHousePuzzle2_EventScript_161E8F, 0, 0, 0
object_event 3, MAP_OBJ_GFX_GIRL_3, 0, 9, 0, 7, 0, 3, 9, 0, 0, 1, 0, 3, 0, Route110_TrickHousePuzzle2_EventScript_161EA6, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 5, 0, 19, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle2_EventScript_1B1A6B, 1062, 0, 0
- object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 0, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle2_EventScript_1B1A5E, 1061, 0, 0
+ object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 5, 0, 19, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle2_EventScript_1B1A6B, FLAG_ITEM_TRICK_HOUSE_PUZZLE_2_2, 0, 0
+ object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 0, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle2_EventScript_1B1A5E, FLAG_ITEM_TRICK_HOUSE_PUZZLE_2_1, 0, 0
Route110_TrickHousePuzzle2_MapWarps:: @ 83924D4
- warp_def 0, 21, 3, 2, Route110_TrickHouseEntrance
- warp_def 1, 21, 3, 2, Route110_TrickHouseEntrance
- warp_def 13, 1, 3, 0, Route110_TrickHouseEnd
+ warp_def 0, 21, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 1, 21, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 13, 1, 3, 0, MAP_ROUTE110_TRICK_HOUSE_END
Route110_TrickHousePuzzle2_MapCoordEvents:: @ 83924EC
coord_event 14, 21, 3, 0, 0x4001, 0, 0, Route110_TrickHousePuzzle2_EventScript_161DE0
diff --git a/data/maps/events/Route110_TrickHousePuzzle3.inc b/data/maps/events/Route110_TrickHousePuzzle3.inc
index abccae1d4..5c360ac6c 100644
--- a/data/maps/events/Route110_TrickHousePuzzle3.inc
+++ b/data/maps/events/Route110_TrickHousePuzzle3.inc
@@ -2,19 +2,19 @@ Route110_TrickHousePuzzle3_MapObjects:: @ 839254C
object_event 1, MAP_OBJ_GFX_CAMPER, 0, 10, 0, 16, 0, 3, 8, 0, 0, 1, 0, 1, 0, Route110_TrickHousePuzzle3_EventScript_162708, 0, 0, 0
object_event 2, MAP_OBJ_GFX_PICNICKER, 0, 1, 0, 13, 0, 3, 10, 0, 0, 1, 0, 1, 0, Route110_TrickHousePuzzle3_EventScript_16271F, 0, 0, 0
object_event 3, MAP_OBJ_GFX_HIKER, 0, 11, 0, 4, 0, 3, 8, 0, 0, 1, 0, 1, 0, Route110_TrickHousePuzzle3_EventScript_162736, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 4, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 17, 0, 0
- object_event 5, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 1, 0, 3, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 18, 0, 0
- object_event 6, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 11, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 19, 0, 0
- object_event 7, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 13, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 20, 0, 0
- object_event 8, MAP_OBJ_GFX_ITEM_BALL, 0, 0, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle3_EventScript_1B1A85, 1064, 0, 0
- object_event 9, MAP_OBJ_GFX_ITEM_BALL, 0, 7, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle3_EventScript_1B1A78, 1063, 0, 0
- object_event 10, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 1, 0, 20, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 21, 0, 0
- object_event 11, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 2, 0, 21, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 22, 0, 0
+ object_event 4, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 4, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_11, 0, 0
+ object_event 5, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 1, 0, 3, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_12, 0, 0
+ object_event 6, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 11, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_13, 0, 0
+ object_event 7, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 13, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_14, 0, 0
+ object_event 8, MAP_OBJ_GFX_ITEM_BALL, 0, 0, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle3_EventScript_1B1A85, FLAG_ITEM_TRICK_HOUSE_PUZZLE_3_2, 0, 0
+ object_event 9, MAP_OBJ_GFX_ITEM_BALL, 0, 7, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle3_EventScript_1B1A78, FLAG_ITEM_TRICK_HOUSE_PUZZLE_3_1, 0, 0
+ object_event 10, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 1, 0, 20, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_15, 0, 0
+ object_event 11, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 2, 0, 21, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_16, 0, 0
Route110_TrickHousePuzzle3_MapWarps:: @ 8392654
- warp_def 0, 21, 3, 2, Route110_TrickHouseEntrance
- warp_def 1, 21, 3, 2, Route110_TrickHouseEntrance
- warp_def 13, 1, 3, 0, Route110_TrickHouseEnd
+ warp_def 0, 21, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 1, 21, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 13, 1, 3, 0, MAP_ROUTE110_TRICK_HOUSE_END
Route110_TrickHousePuzzle3_MapCoordEvents:: @ 839266C
coord_event 5, 20, 3, 0, 0x4001, 0, 0, Route110_TrickHousePuzzle3_EventScript_1625AB
diff --git a/data/maps/events/Route110_TrickHousePuzzle4.inc b/data/maps/events/Route110_TrickHousePuzzle4.inc
index ef450800d..6c630a082 100644
--- a/data/maps/events/Route110_TrickHousePuzzle4.inc
+++ b/data/maps/events/Route110_TrickHousePuzzle4.inc
@@ -2,23 +2,23 @@ Route110_TrickHousePuzzle4_MapObjects:: @ 83926FC
object_event 1, MAP_OBJ_GFX_GIRL_3, 0, 12, 0, 8, 0, 3, 9, 0, 0, 1, 0, 1, 0, Route110_TrickHousePuzzle4_EventScript_16276B, 0, 0, 0
object_event 2, MAP_OBJ_GFX_GIRL_3, 0, 10, 0, 4, 0, 3, 10, 0, 0, 1, 0, 1, 0, Route110_TrickHousePuzzle4_EventScript_162799, 0, 0, 0
object_event 3, MAP_OBJ_GFX_BLACK_BELT, 0, 7, 0, 4, 0, 3, 9, 0, 0, 1, 0, 2, 0, Route110_TrickHousePuzzle4_EventScript_162782, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 4, 0, 0, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle4_EventScript_1B1A92, 1065, 0, 0
- object_event 5, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 13, 0, 3, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 17, 0, 0
- object_event 6, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 18, 0, 0
- object_event 7, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 2, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 19, 0, 0
- object_event 8, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 3, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 20, 0, 0
- object_event 9, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 12, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 21, 0, 0
- object_event 10, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 8, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 22, 0, 0
- object_event 11, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 9, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 23, 0, 0
- object_event 12, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 11, 0, 13, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 24, 0, 0
- object_event 13, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 14, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 25, 0, 0
- object_event 14, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 4, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 26, 0, 0
- object_event 15, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 14, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 27, 0, 0
+ object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 4, 0, 0, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle4_EventScript_1B1A92, FLAG_ITEM_TRICK_HOUSE_PUZZLE_4_1, 0, 0
+ object_event 5, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 13, 0, 3, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_11, 0, 0
+ object_event 6, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_12, 0, 0
+ object_event 7, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 2, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_13, 0, 0
+ object_event 8, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 3, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_14, 0, 0
+ object_event 9, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 12, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_15, 0, 0
+ object_event 10, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 8, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_16, 0, 0
+ object_event 11, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 9, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_17, 0, 0
+ object_event 12, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 11, 0, 13, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_18, 0, 0
+ object_event 13, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 14, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_19, 0, 0
+ object_event 14, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 4, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_1A, 0, 0
+ object_event 15, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 14, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_1B, 0, 0
Route110_TrickHousePuzzle4_MapWarps:: @ 8392864
- warp_def 0, 21, 3, 2, Route110_TrickHouseEntrance
- warp_def 1, 21, 3, 2, Route110_TrickHouseEntrance
- warp_def 13, 1, 3, 0, Route110_TrickHouseEnd
+ warp_def 0, 21, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 1, 21, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 13, 1, 3, 0, MAP_ROUTE110_TRICK_HOUSE_END
Route110_TrickHousePuzzle4_MapBGEvents:: @ 839287C
bg_event 0, 5, 3, 0, 0, Route110_TrickHousePuzzle4_EventScript_16274E
diff --git a/data/maps/events/Route110_TrickHousePuzzle5.inc b/data/maps/events/Route110_TrickHousePuzzle5.inc
index be38ef452..ac40ffef4 100644
--- a/data/maps/events/Route110_TrickHousePuzzle5.inc
+++ b/data/maps/events/Route110_TrickHousePuzzle5.inc
@@ -6,9 +6,9 @@ Route110_TrickHousePuzzle5_MapObjects:: @ 839289C
object_event 5, MAP_OBJ_GFX_MAN_1, 0, 1, 0, 6, 0, 3, 10, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle5_EventScript_162876, 0, 0, 0
Route110_TrickHousePuzzle5_MapWarps:: @ 8392914
- warp_def 0, 21, 3, 2, Route110_TrickHouseEntrance
- warp_def 1, 21, 3, 2, Route110_TrickHouseEntrance
- warp_def 13, 1, 3, 0, Route110_TrickHouseEnd
+ warp_def 0, 21, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 1, 21, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 13, 1, 3, 0, MAP_ROUTE110_TRICK_HOUSE_END
Route110_TrickHousePuzzle5_MapCoordEvents:: @ 839292C
coord_event 8, 19, 3, 0, 0x4001, 0, 0, Route110_TrickHousePuzzle5_EventScript_162897
diff --git a/data/maps/events/Route110_TrickHousePuzzle6.inc b/data/maps/events/Route110_TrickHousePuzzle6.inc
index 1e6c7869b..f01d5783d 100644
--- a/data/maps/events/Route110_TrickHousePuzzle6.inc
+++ b/data/maps/events/Route110_TrickHousePuzzle6.inc
@@ -2,12 +2,12 @@ Route110_TrickHousePuzzle6_MapObjects:: @ 8392A2C
object_event 1, MAP_OBJ_GFX_PICNICKER, 0, 10, 0, 9, 0, 3, 9, 0, 0, 1, 0, 2, 0, Route110_TrickHousePuzzle6_EventScript_163107, 0, 0, 0
object_event 2, MAP_OBJ_GFX_MAN_6, 0, 14, 0, 12, 0, 3, 9, 0, 0, 1, 0, 2, 0, Route110_TrickHousePuzzle6_EventScript_16311E, 0, 0, 0
object_event 3, MAP_OBJ_GFX_CAMPER, 0, 0, 0, 3, 0, 3, 10, 0, 0, 1, 0, 4, 0, Route110_TrickHousePuzzle6_EventScript_163135, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 8, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle6_EventScript_1B1A9F, 1067, 0, 0
+ object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 8, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle6_EventScript_1B1A9F, FLAG_ITEM_TRICK_HOUSE_PUZZLE_6_1, 0, 0
Route110_TrickHousePuzzle6_MapWarps:: @ 8392A8C
- warp_def 0, 21, 3, 2, Route110_TrickHouseEntrance
- warp_def 1, 21, 3, 2, Route110_TrickHouseEntrance
- warp_def 13, 1, 3, 0, Route110_TrickHouseEnd
+ warp_def 0, 21, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 1, 21, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 13, 1, 3, 0, MAP_ROUTE110_TRICK_HOUSE_END
Route110_TrickHousePuzzle6_MapBGEvents:: @ 8392AA4
bg_event 13, 9, 3, 0, 0, Route110_TrickHousePuzzle6_EventScript_1630EA
diff --git a/data/maps/events/Route110_TrickHousePuzzle7.inc b/data/maps/events/Route110_TrickHousePuzzle7.inc
index d5e4f14af..5beae5e18 100644
--- a/data/maps/events/Route110_TrickHousePuzzle7.inc
+++ b/data/maps/events/Route110_TrickHousePuzzle7.inc
@@ -2,12 +2,12 @@ Route110_TrickHousePuzzle7_MapObjects:: @ 8392AC4
object_event 1, MAP_OBJ_GFX_PSYCHIC_M, 0, 0, 0, 3, 0, 3, 10, 0, 0, 1, 0, 2, 0, Route110_TrickHousePuzzle7_EventScript_1633D6, 0, 0, 0
object_event 2, MAP_OBJ_GFX_LASS, 0, 14, 0, 3, 0, 3, 7, 0, 0, 1, 0, 1, 0, Route110_TrickHousePuzzle7_EventScript_163404, 0, 0, 0
object_event 3, MAP_OBJ_GFX_HEX_MANIAC, 0, 9, 0, 10, 0, 3, 23, 0, 0, 1, 0, 1, 0, Route110_TrickHousePuzzle7_EventScript_1633ED, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 11, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle7_EventScript_1B1AAC, 1068, 0, 0
+ object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 11, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle7_EventScript_1B1AAC, FLAG_ITEM_TRICK_HOUSE_PUZZLE_7_1, 0, 0
Route110_TrickHousePuzzle7_MapWarps:: @ 8392B24
- warp_def 0, 21, 3, 2, Route110_TrickHouseEntrance
- warp_def 1, 21, 3, 2, Route110_TrickHouseEntrance
- warp_def 13, 1, 3, 0, Route110_TrickHouseEnd
+ warp_def 0, 21, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 1, 21, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 13, 1, 3, 0, MAP_ROUTE110_TRICK_HOUSE_END
Route110_TrickHousePuzzle7_MapCoordEvents:: @ 8392B3C
coord_event 9, 2, 3, 0, 0x4001, 0, 0, Route110_TrickHousePuzzle7_EventScript_1632A8
diff --git a/data/maps/events/Route110_TrickHousePuzzle8.inc b/data/maps/events/Route110_TrickHousePuzzle8.inc
index accb0b3a2..2df410599 100644
--- a/data/maps/events/Route110_TrickHousePuzzle8.inc
+++ b/data/maps/events/Route110_TrickHousePuzzle8.inc
@@ -2,12 +2,12 @@ Route110_TrickHousePuzzle8_MapObjects:: @ 8392BA8
object_event 1, MAP_OBJ_GFX_MAN_4, 0, 12, 0, 21, 0, 3, 10, 0, 0, 1, 0, 2, 0, Route110_TrickHousePuzzle8_EventScript_163439, 0, 0, 0
object_event 2, MAP_OBJ_GFX_MAN_4, 0, 12, 0, 11, 0, 3, 10, 0, 0, 1, 0, 2, 0, Route110_TrickHousePuzzle8_EventScript_163467, 0, 0, 0
object_event 3, MAP_OBJ_GFX_WOMAN_7, 0, 10, 0, 11, 0, 3, 8, 0, 0, 1, 0, 1, 0, Route110_TrickHousePuzzle8_EventScript_163450, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 2, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle8_EventScript_1B1AB9, 1069, 0, 0
+ object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 2, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route110_TrickHousePuzzle8_EventScript_1B1AB9, FLAG_ITEM_TRICK_HOUSE_PUZZLE_8_1, 0, 0
Route110_TrickHousePuzzle8_MapWarps:: @ 8392C08
- warp_def 0, 21, 3, 2, Route110_TrickHouseEntrance
- warp_def 1, 21, 3, 2, Route110_TrickHouseEntrance
- warp_def 13, 1, 0, 0, Route110_TrickHouseEnd
+ warp_def 0, 21, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 1, 21, 3, 2, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
+ warp_def 13, 1, 0, 0, MAP_ROUTE110_TRICK_HOUSE_END
Route110_TrickHousePuzzle8_MapBGEvents:: @ 8392C20
bg_event 7, 11, 3, 0, 0, Route110_TrickHousePuzzle8_EventScript_16341C
diff --git a/data/maps/events/Route111.inc b/data/maps/events/Route111.inc
index e36cd7e74..b282c7a8d 100644
--- a/data/maps/events/Route111.inc
+++ b/data/maps/events/Route111.inc
@@ -1,8 +1,8 @@
Route111_MapObjects:: @ 83821A0
- object_event 1, MAP_OBJ_GFX_MAN_1, 0, 13, 0, 114, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route111_EventScript_1501D1, 768, 0, 0
- object_event 2, MAP_OBJ_GFX_WOMAN_2, 0, 13, 0, 113, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0x0, 769, 0, 0
- object_event 3, MAP_OBJ_GFX_LASS, 0, 13, 0, 113, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0x0, 770, 0, 0
- object_event 4, MAP_OBJ_GFX_OLD_WOMAN_1, 0, 13, 0, 113, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0x0, 771, 0, 0
+ object_event 1, MAP_OBJ_GFX_MAN_1, 0, 13, 0, 114, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route111_EventScript_1501D1, FLAG_HIDE_VICTOR_WINSTRATE, 0, 0
+ object_event 2, MAP_OBJ_GFX_WOMAN_2, 0, 13, 0, 113, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_VICTORIA_WINSTRATE, 0, 0
+ object_event 3, MAP_OBJ_GFX_LASS, 0, 13, 0, 113, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_VIVI_WINSTRATE, 0, 0
+ object_event 4, MAP_OBJ_GFX_OLD_WOMAN_1, 0, 13, 0, 113, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_VICKI_WINSTRATE, 0, 0
object_event 5, MAP_OBJ_GFX_PICNICKER, 0, 28, 0, 51, 0, 3, 17, 0, 0, 1, 0, 3, 0, Route111_EventScript_1503BE, 0, 0, 0
object_event 6, MAP_OBJ_GFX_BERRY_TREE, 0, 22, 0, 5, 0, 3, 12, 0, 0, 0, 0, 19, 0, S_BerryTree, 0, 0, 0
object_event 7, MAP_OBJ_GFX_BERRY_TREE, 0, 23, 0, 5, 0, 3, 12, 0, 0, 0, 0, 20, 0, S_BerryTree, 0, 0, 0
@@ -11,35 +11,35 @@ Route111_MapObjects:: @ 83821A0
object_event 10, MAP_OBJ_GFX_HIKER, 0, 27, 0, 69, 0, 3, 50, 34, 0, 1, 0, 2, 0, Route111_EventScript_150403, 0, 0, 0
object_event 11, MAP_OBJ_GFX_CAMPER, 0, 21, 0, 47, 0, 3, 9, 0, 0, 1, 0, 4, 0, Route111_EventScript_1503D5, 0, 0, 0
object_event 12, MAP_OBJ_GFX_PICNICKER, 0, 32, 0, 72, 0, 3, 24, 0, 0, 1, 0, 3, 0, Route111_EventScript_1503EC, 0, 0, 0
- object_event 13, MAP_OBJ_GFX_CAMERAMAN, 0, 14, 0, 86, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route111_EventScript_1AE442, 796, 0, 0
- object_event 14, MAP_OBJ_GFX_REPORTER_F, 0, 13, 0, 86, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route111_EventScript_1AE422, 796, 0, 0
- object_event 15, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 18, 0, 101, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 17, 0, 0
- object_event 16, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 19, 0, 100, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 18, 0, 0
+ object_event 13, MAP_OBJ_GFX_CAMERAMAN, 0, 14, 0, 86, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route111_EventScript_1AE442, FLAG_HIDE_GABBY_AND_TY_ROUTE111_1, 0, 0
+ object_event 14, MAP_OBJ_GFX_REPORTER_F, 0, 13, 0, 86, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route111_EventScript_1AE422, FLAG_HIDE_GABBY_AND_TY_ROUTE111_1, 0, 0
+ object_event 15, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 18, 0, 101, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_11, 0, 0
+ object_event 16, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 19, 0, 100, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_12, 0, 0
object_event 17, MAP_OBJ_GFX_GIRL_1, 0, 23, 0, 8, 0, 3, 5, 1, 0, 0, 0, 0, 0, Route111_EventScript_1500C5, 0, 0, 0
- object_event 18, MAP_OBJ_GFX_ITEM_BALL, 0, 32, 0, 105, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route111_EventScript_1B14C8, 1008, 0, 0
+ object_event 18, MAP_OBJ_GFX_ITEM_BALL, 0, 32, 0, 105, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route111_EventScript_1B14C8, FLAG_ITEM_ROUTE111_1, 0, 0
object_event 19, MAP_OBJ_GFX_BERRY_TREE, 0, 18, 0, 5, 0, 3, 12, 0, 0, 0, 0, 80, 0, S_BerryTree, 0, 0, 0
object_event 20, MAP_OBJ_GFX_BERRY_TREE, 0, 19, 0, 5, 0, 3, 12, 0, 0, 0, 0, 81, 0, S_BerryTree, 0, 0, 0
- object_event 21, MAP_OBJ_GFX_REPORTER_F, 0, 13, 0, 86, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route111_EventScript_1AE4E2, 799, 0, 0
- object_event 22, MAP_OBJ_GFX_CAMERAMAN, 0, 14, 0, 86, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route111_EventScript_1AE502, 799, 0, 0
- object_event 23, MAP_OBJ_GFX_REPORTER_F, 0, 13, 0, 86, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route111_EventScript_1AE562, 903, 0, 0
- object_event 24, MAP_OBJ_GFX_CAMERAMAN, 0, 14, 0, 86, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route111_EventScript_1AE582, 903, 0, 0
- object_event 25, MAP_OBJ_GFX_ITEM_BALL, 0, 12, 0, 54, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route111_EventScript_1B14D5, 1009, 0, 0
- object_event 26, MAP_OBJ_GFX_ITEM_BALL, 0, 3, 0, 114, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route111_EventScript_1B14E2, 1010, 0, 0
- object_event 27, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 22, 0, 21, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 19, 0, 0
+ object_event 21, MAP_OBJ_GFX_REPORTER_F, 0, 13, 0, 86, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route111_EventScript_1AE4E2, FLAG_HIDE_GABBY_AND_TY_ROUTE111_2, 0, 0
+ object_event 22, MAP_OBJ_GFX_CAMERAMAN, 0, 14, 0, 86, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route111_EventScript_1AE502, FLAG_HIDE_GABBY_AND_TY_ROUTE111_2, 0, 0
+ object_event 23, MAP_OBJ_GFX_REPORTER_F, 0, 13, 0, 86, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route111_EventScript_1AE562, FLAG_HIDE_GABBY_AND_TY_ROUTE111_3, 0, 0
+ object_event 24, MAP_OBJ_GFX_CAMERAMAN, 0, 14, 0, 86, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route111_EventScript_1AE582, FLAG_HIDE_GABBY_AND_TY_ROUTE111_3, 0, 0
+ object_event 25, MAP_OBJ_GFX_ITEM_BALL, 0, 12, 0, 54, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route111_EventScript_1B14D5, FLAG_ITEM_ROUTE111_2, 0, 0
+ object_event 26, MAP_OBJ_GFX_ITEM_BALL, 0, 3, 0, 114, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route111_EventScript_1B14E2, FLAG_ITEM_ROUTE111_3, 0, 0
+ object_event 27, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 22, 0, 21, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_13, 0, 0
object_event 28, MAP_OBJ_GFX_PICNICKER, 0, 10, 0, 82, 0, 3, 14, 0, 0, 1, 0, 2, 0, Route111_EventScript_150458, 0, 0, 0
object_event 29, MAP_OBJ_GFX_CAMPER, 0, 11, 0, 71, 0, 3, 22, 0, 0, 1, 0, 3, 0, Route111_EventScript_150441, 0, 0, 0
object_event 30, MAP_OBJ_GFX_BLACK_BELT, 0, 32, 0, 29, 0, 3, 28, 1, 0, 1, 0, 2, 0, Route111_EventScript_15046F, 0, 0, 0
object_event 31, MAP_OBJ_GFX_WOMAN_7, 0, 11, 0, 12, 0, 3, 7, 4, 0, 1, 0, 4, 0, Route111_EventScript_1504C4, 0, 0, 0
object_event 32, MAP_OBJ_GFX_MAN_4, 0, 9, 0, 27, 0, 3, 17, 0, 0, 1, 0, 3, 0, Route111_EventScript_150486, 0, 0, 0
- object_event 33, MAP_OBJ_GFX_BOY_1, 0, 13, 0, 20, 0, 3, 7, 17, 0, 0, 0, 0, 0, Route111_EventScript_1A3858, 960, 0, 0
- object_event 34, MAP_OBJ_GFX_FOSSIL, 0, 32, 0, 38, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route111_EventScript_150023, 963, 0, 0
- object_event 35, MAP_OBJ_GFX_FOSSIL, 0, 33, 0, 38, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route111_EventScript_150069, 964, 0, 0
+ object_event 33, MAP_OBJ_GFX_BOY_1, 0, 13, 0, 20, 0, 3, 7, 17, 0, 0, 0, 0, 0, Route111_EventScript_1A3858, FLAG_HIDE_SECRET_POWER_MAN, 0, 0
+ object_event 34, MAP_OBJ_GFX_FOSSIL, 0, 32, 0, 38, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route111_EventScript_150023, FLAG_HIDE_ROOT_FOSSIL, 0, 0
+ object_event 35, MAP_OBJ_GFX_FOSSIL, 0, 33, 0, 38, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route111_EventScript_150069, FLAG_HIDE_CLAW_FOSSIL, 0, 0
object_event 36, MAP_OBJ_GFX_MAN_5, 0, 20, 0, 114, 0, 3, 2, 17, 0, 0, 0, 0, 0, Route111_EventScript_15039E, 0, 0, 0
Route111_MapWarps:: @ 8382500
- warp_def 13, 113, 0, 0, Route111_WinstrateFamilysHouse
- warp_def 29, 87, 0, 0, DesertRuins
- warp_def 26, 18, 0, 0, Route111_OldLadysRestStop
+ warp_def 13, 113, 0, 0, MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE
+ warp_def 29, 87, 0, 0, MAP_DESERT_RUINS
+ warp_def 26, 18, 0, 0, MAP_ROUTE111_OLD_LADYS_REST_STOP
Route111_MapCoordEvents:: @ 8382518
coord_event 12, 62, 3, 0, 0, 0, 0, Route111_EventScript_1501C9
diff --git a/data/maps/events/Route111_OldLadysRestStop.inc b/data/maps/events/Route111_OldLadysRestStop.inc
index c295aa0c9..fbd9b7ab1 100644
--- a/data/maps/events/Route111_OldLadysRestStop.inc
+++ b/data/maps/events/Route111_OldLadysRestStop.inc
@@ -2,8 +2,8 @@ Route111_OldLadysRestStop_MapObjects:: @ 838B798
object_event 1, MAP_OBJ_GFX_OLD_WOMAN_1, 0, 6, 0, 3, 0, 3, 9, 0, 0, 0, 0, 0, 0, Route111_OldLadysRestStop_EventScript_15BFDB, 0, 0, 0
Route111_OldLadysRestStop_MapWarps:: @ 838B7B0
- warp_def 3, 7, 0, 2, Route111
- warp_def 4, 7, 0, 2, Route111
+ warp_def 3, 7, 0, 2, MAP_ROUTE111
+ warp_def 4, 7, 0, 2, MAP_ROUTE111
Route111_OldLadysRestStop_MapEvents:: @ 838B7C0
map_events Route111_OldLadysRestStop_MapObjects, Route111_OldLadysRestStop_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route111_WinstrateFamilysHouse.inc b/data/maps/events/Route111_WinstrateFamilysHouse.inc
index 8cb265965..ef2286c97 100644
--- a/data/maps/events/Route111_WinstrateFamilysHouse.inc
+++ b/data/maps/events/Route111_WinstrateFamilysHouse.inc
@@ -5,8 +5,8 @@ Route111_WinstrateFamilysHouse_MapObjects:: @ 838B714
object_event 4, MAP_OBJ_GFX_OLD_WOMAN_1, 0, 4, 0, 4, 0, 3, 10, 0, 0, 0, 0, 0, 0, Route111_WinstrateFamilysHouse_EventScript_15BF95, 0, 0, 0
Route111_WinstrateFamilysHouse_MapWarps:: @ 838B774
- warp_def 3, 7, 0, 0, Route111
- warp_def 4, 7, 0, 0, Route111
+ warp_def 3, 7, 0, 0, MAP_ROUTE111
+ warp_def 4, 7, 0, 0, MAP_ROUTE111
Route111_WinstrateFamilysHouse_MapEvents:: @ 838B784
map_events Route111_WinstrateFamilysHouse_MapObjects, Route111_WinstrateFamilysHouse_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route112.inc b/data/maps/events/Route112.inc
index a4991a907..c739f9d0b 100644
--- a/data/maps/events/Route112.inc
+++ b/data/maps/events/Route112.inc
@@ -1,24 +1,24 @@
Route112_MapObjects:: @ 8382818
- object_event 1, 241, 0, 26, 0, 30, 0, 3, 8, 17, 0, 0, 0, 0, 0, Route112_EventScript_150513, 819, 0, 0
+ object_event 1, 241, 0, 26, 0, 30, 0, 3, 8, 17, 0, 0, 0, 0, 0, Route112_EventScript_150513, FLAG_HIDE_GRUNTS_BLOCKING_CABLE_CAR, 0, 0
object_event 2, MAP_OBJ_GFX_HIKER, 0, 24, 0, 34, 0, 3, 14, 0, 0, 1, 0, 2, 0, Route112_EventScript_150549, 0, 0, 0
object_event 3, MAP_OBJ_GFX_CAMPER, 0, 29, 0, 49, 0, 3, 8, 0, 0, 1, 0, 3, 0, Route112_EventScript_15059E, 0, 0, 0
object_event 4, MAP_OBJ_GFX_PICNICKER, 0, 22, 0, 46, 0, 3, 23, 0, 0, 1, 0, 3, 0, Route112_EventScript_1505B5, 0, 0, 0
object_event 5, MAP_OBJ_GFX_HIKER, 0, 17, 0, 40, 0, 3, 16, 0, 0, 1, 0, 4, 0, Route112_EventScript_150560, 0, 0, 0
- object_event 6, 241, 0, 27, 0, 30, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route112_EventScript_15051C, 819, 0, 0
+ object_event 6, 241, 0, 27, 0, 30, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route112_EventScript_15051C, FLAG_HIDE_GRUNTS_BLOCKING_CABLE_CAR, 0, 0
object_event 7, MAP_OBJ_GFX_BERRY_TREE, 0, 27, 0, 6, 0, 0, 12, 0, 0, 0, 0, 24, 0, S_BerryTree, 0, 0, 0
object_event 8, MAP_OBJ_GFX_BERRY_TREE, 0, 28, 0, 6, 0, 0, 12, 0, 0, 0, 0, 23, 0, S_BerryTree, 0, 0, 0
object_event 9, MAP_OBJ_GFX_BERRY_TREE, 0, 29, 0, 6, 0, 0, 12, 0, 0, 0, 0, 22, 0, S_BerryTree, 0, 0, 0
object_event 10, MAP_OBJ_GFX_BERRY_TREE, 0, 30, 0, 6, 0, 3, 12, 0, 0, 0, 0, 21, 0, S_BerryTree, 0, 0, 0
object_event 11, MAP_OBJ_GFX_HIKER, 0, 8, 0, 50, 0, 3, 26, 48, 0, 0, 0, 0, 0, Route112_EventScript_150540, 0, 0, 0
- object_event 12, MAP_OBJ_GFX_ITEM_BALL, 0, 14, 0, 43, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route112_EventScript_1B14EF, 1011, 0, 0
+ object_event 12, MAP_OBJ_GFX_ITEM_BALL, 0, 14, 0, 43, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route112_EventScript_1B14EF, FLAG_ITEM_ROUTE112_1, 0, 0
Route112_MapWarps:: @ 8382938
- warp_def 28, 27, 0, 0, Route112_CableCarStation
- warp_def 29, 27, 0, 1, Route112_CableCarStation
- warp_def 6, 46, 3, 0, JaggedPass
- warp_def 7, 46, 3, 1, JaggedPass
- warp_def 11, 36, 0, 0, FieryPath
- warp_def 22, 10, 0, 1, FieryPath
+ warp_def 28, 27, 0, 0, MAP_ROUTE112_CABLE_CAR_STATION
+ warp_def 29, 27, 0, 1, MAP_ROUTE112_CABLE_CAR_STATION
+ warp_def 6, 46, 3, 0, MAP_JAGGED_PASS
+ warp_def 7, 46, 3, 1, MAP_JAGGED_PASS
+ warp_def 11, 36, 0, 0, MAP_FIERY_PATH
+ warp_def 22, 10, 0, 1, MAP_FIERY_PATH
Route112_MapBGEvents:: @ 8382968
bg_event 19, 44, 3, 0, 0, Route112_EventScript_15052E
diff --git a/data/maps/events/Route112_CableCarStation.inc b/data/maps/events/Route112_CableCarStation.inc
index 6ca18059b..cc2dfa38a 100644
--- a/data/maps/events/Route112_CableCarStation.inc
+++ b/data/maps/events/Route112_CableCarStation.inc
@@ -3,8 +3,8 @@ Route112_CableCarStation_MapObjects:: @ 838B7D4
object_event 2, MAP_OBJ_GFX_CABLE_CAR, 0, 6, 0, 3, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0x0, 0, 0, 0
Route112_CableCarStation_MapWarps:: @ 838B804
- warp_def 6, 11, 0, 0, Route112
- warp_def 7, 11, 0, 1, Route112
+ warp_def 6, 11, 0, 0, MAP_ROUTE112
+ warp_def 7, 11, 0, 1, MAP_ROUTE112
Route112_CableCarStation_MapEvents:: @ 838B814
map_events Route112_CableCarStation_MapObjects, Route112_CableCarStation_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route113.inc b/data/maps/events/Route113.inc
index ee145eb76..dec48e2e1 100644
--- a/data/maps/events/Route113.inc
+++ b/data/maps/events/Route113.inc
@@ -4,15 +4,15 @@ Route113_MapObjects:: @ 83829A0
object_event 3, MAP_OBJ_GFX_YOUNGSTER, 0, 62, 0, 8, 0, 3, 8, 0, 0, 1, 0, 3, 0, Route113_EventScript_15063B, 0, 0, 0
object_event 4, MAP_OBJ_GFX_YOUNGSTER, 0, 21, 0, 11, 0, 3, 17, 0, 0, 1, 0, 3, 0, Route113_EventScript_150652, 0, 0, 0
object_event 5, MAP_OBJ_GFX_WOMAN_7, 0, 51, 0, 11, 0, 3, 23, 0, 0, 1, 0, 2, 0, Route113_EventScript_150669, 0, 0, 0
- object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 53, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route113_EventScript_1B14FC, 1012, 0, 0
- object_event 7, MAP_OBJ_GFX_ITEM_BALL, 0, 78, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route113_EventScript_1B1509, 1013, 0, 0
+ object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 53, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route113_EventScript_1B14FC, FLAG_ITEM_ROUTE113_1, 0, 0
+ object_event 7, MAP_OBJ_GFX_ITEM_BALL, 0, 78, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route113_EventScript_1B1509, FLAG_ITEM_ROUTE113_2, 0, 0
object_event 8, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 66, 0, 3, 0, 3, 63, 0, 0, 3, 0, 1, 0, Route113_EventScript_1506A7, 0, 0, 0
object_event 9, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 29, 0, 6, 0, 3, 63, 0, 0, 3, 0, 1, 0, Route113_EventScript_1506E5, 0, 0, 0
object_event 10, MAP_OBJ_GFX_LITTLE_GIRL_1, 0, 45, 0, 6, 0, 3, 8, 17, 0, 1, 0, 0, 0, Route113_EventScript_1506FC, 0, 0, 0
object_event 11, MAP_OBJ_GFX_LITTLE_GIRL_1, 0, 46, 0, 6, 0, 3, 8, 17, 0, 1, 0, 0, 0, Route113_EventScript_150717, 0, 0, 0
Route113_MapWarps:: @ 8382AA8
- warp_def 33, 5, 0, 0, Route113_GlassWorkshop
+ warp_def 33, 5, 0, 0, MAP_ROUTE113_GLASS_WORKSHOP
Route113_MapCoordEvents:: @ 8382AB0
coord_event 19, 11, 3, 0, 8, 0, 0, 0x0
diff --git a/data/maps/events/Route113_GlassWorkshop.inc b/data/maps/events/Route113_GlassWorkshop.inc
index 68b47709d..74953c4da 100644
--- a/data/maps/events/Route113_GlassWorkshop.inc
+++ b/data/maps/events/Route113_GlassWorkshop.inc
@@ -3,8 +3,8 @@ Route113_GlassWorkshop_MapObjects:: @ 8392D18
object_event 2, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 5, 0, 4, 0, 3, 2, 17, 0, 0, 0, 0, 0, Route113_GlassWorkshop_EventScript_1639D6, 0, 0, 0
Route113_GlassWorkshop_MapWarps:: @ 8392D48
- warp_def 3, 8, 0, 0, Route113
- warp_def 4, 8, 0, 0, Route113
+ warp_def 3, 8, 0, 0, MAP_ROUTE113
+ warp_def 4, 8, 0, 0, MAP_ROUTE113
Route113_GlassWorkshop_MapEvents:: @ 8392D58
map_events Route113_GlassWorkshop_MapObjects, Route113_GlassWorkshop_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route114.inc b/data/maps/events/Route114.inc
index 1f4d761e3..0e4097651 100644
--- a/data/maps/events/Route114.inc
+++ b/data/maps/events/Route114.inc
@@ -7,26 +7,26 @@ Route114_MapObjects:: @ 8382C48
object_event 6, MAP_OBJ_GFX_PICNICKER, 0, 19, 0, 35, 0, 3, 1, 0, 0, 1, 0, 3, 0, Route114_EventScript_150836, 0, 0, 0
object_event 7, MAP_OBJ_GFX_MANIAC, 0, 20, 0, 56, 0, 3, 7, 0, 0, 1, 0, 3, 0, Route114_EventScript_15084D, 0, 0, 0
object_event 8, MAP_OBJ_GFX_BERRY_TREE, 0, 31, 0, 45, 0, 3, 12, 0, 0, 0, 0, 68, 0, S_BerryTree, 0, 0, 0
- object_event 9, MAP_OBJ_GFX_ITEM_BALL, 0, 7, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route114_EventScript_1B1516, 1014, 0, 0
- object_event 10, MAP_OBJ_GFX_ITEM_BALL, 0, 11, 0, 37, 0, 4, 1, 0, 0, 0, 0, 0, 0, Route114_EventScript_1B1523, 1015, 0, 0
- object_event 11, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 12, 0, 43, 0, 4, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 17, 0, 0
+ object_event 9, MAP_OBJ_GFX_ITEM_BALL, 0, 7, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route114_EventScript_1B1516, FLAG_ITEM_ROUTE114_1, 0, 0
+ object_event 10, MAP_OBJ_GFX_ITEM_BALL, 0, 11, 0, 37, 0, 4, 1, 0, 0, 0, 0, 0, 0, Route114_EventScript_1B1523, FLAG_ITEM_ROUTE114_2, 0, 0
+ object_event 11, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 12, 0, 43, 0, 4, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_11, 0, 0
object_event 12, MAP_OBJ_GFX_GENTLEMAN, 0, 19, 0, 11, 0, 3, 10, 0, 0, 0, 0, 0, 0, Route114_EventScript_150782, 0, 0, 0
object_event 13, MAP_OBJ_GFX_POOCHYENA, 0, 19, 0, 12, 0, 3, 10, 0, 0, 0, 0, 0, 0, Route114_EventScript_1507C3, 0, 0, 0
object_event 14, MAP_OBJ_GFX_MAN_5, 0, 27, 0, 42, 0, 3, 3, 16, 0, 0, 0, 0, 0, Route114_EventScript_150733, 0, 0, 0
object_event 15, MAP_OBJ_GFX_FISHERMAN, 0, 23, 0, 20, 0, 3, 8, 0, 0, 1, 0, 0, 0, Route114_EventScript_1508E0, 0, 0, 0
object_event 16, MAP_OBJ_GFX_FISHERMAN, 0, 19, 0, 26, 0, 3, 9, 0, 0, 1, 0, 0, 0, Route114_EventScript_1508C9, 0, 0, 0
object_event 17, MAP_OBJ_GFX_MAN_6, 0, 30, 0, 58, 0, 5, 23, 0, 0, 1, 0, 3, 0, Route114_EventScript_15088B, 0, 0, 0
- object_event 18, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 29, 0, 53, 0, 5, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 18, 0, 0
- object_event 19, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 30, 0, 54, 0, 5, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 19, 0, 0
- object_event 20, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 22, 0, 69, 0, 7, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 20, 0, 0
- object_event 21, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 11, 0, 64, 0, 5, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 21, 0, 0
+ object_event 18, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 29, 0, 53, 0, 5, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_12, 0, 0
+ object_event 19, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 30, 0, 54, 0, 5, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_13, 0, 0
+ object_event 20, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 22, 0, 69, 0, 7, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_14, 0, 0
+ object_event 21, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 11, 0, 64, 0, 5, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_15, 0, 0
object_event 22, MAP_OBJ_GFX_LASS, 0, 24, 0, 44, 0, 3, 8, 17, 0, 1, 0, 0, 0, Route114_EventScript_150912, 0, 0, 0
object_event 23, MAP_OBJ_GFX_LASS, 0, 23, 0, 44, 0, 3, 8, 17, 0, 1, 0, 0, 0, Route114_EventScript_1508F7, 0, 0, 0
Route114_MapWarps:: @ 8382E70
- warp_def 8, 63, 0, 0, MeteorFalls_1F_1R
- warp_def 29, 5, 0, 0, Route114_FossilManiacsHouse
- warp_def 27, 36, 0, 0, Route114_LanettesHouse
+ warp_def 8, 63, 0, 0, MAP_METEOR_FALLS_1F_1R
+ warp_def 29, 5, 0, 0, MAP_ROUTE114_FOSSIL_MANIACS_HOUSE
+ warp_def 27, 36, 0, 0, MAP_ROUTE114_LANETTES_HOUSE
Route114_MapBGEvents:: @ 8382E88
bg_event 7, 64, 0, 0, 0, Route114_EventScript_1507D6
diff --git a/data/maps/events/Route114_FossilManiacsHouse.inc b/data/maps/events/Route114_FossilManiacsHouse.inc
index f7bf465e9..01fc6106f 100644
--- a/data/maps/events/Route114_FossilManiacsHouse.inc
+++ b/data/maps/events/Route114_FossilManiacsHouse.inc
@@ -2,9 +2,9 @@ Route114_FossilManiacsHouse_MapObjects:: @ 838B87C
object_event 1, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 3, 0, 2, 0, 3, 8, 17, 0, 0, 0, 0, 0, Route114_FossilManiacsHouse_EventScript_15C1C3, 0, 0, 0
Route114_FossilManiacsHouse_MapWarps:: @ 838B894
- warp_def 4, 7, 0, 1, Route114
- warp_def 5, 7, 0, 1, Route114
- warp_def 4, 1, 0, 0, Route114_FossilManiacsTunnel
+ warp_def 4, 7, 0, 1, MAP_ROUTE114
+ warp_def 5, 7, 0, 1, MAP_ROUTE114
+ warp_def 4, 1, 0, 0, MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL
Route114_FossilManiacsHouse_MapBGEvents:: @ 838B8AC
bg_event 5, 3, 0, 1, 0, Route114_FossilManiacsHouse_EventScript_15C1FC
diff --git a/data/maps/events/Route114_FossilManiacsTunnel.inc b/data/maps/events/Route114_FossilManiacsTunnel.inc
index 89c231d7e..259445d43 100644
--- a/data/maps/events/Route114_FossilManiacsTunnel.inc
+++ b/data/maps/events/Route114_FossilManiacsTunnel.inc
@@ -2,8 +2,8 @@ Route114_FossilManiacsTunnel_MapObjects:: @ 838B8F0
object_event 1, MAP_OBJ_GFX_MANIAC, 0, 5, 0, 3, 0, 3, 7, 17, 0, 0, 0, 0, 0, Route114_FossilManiacsTunnel_EventScript_15C20F, 0, 0, 0
Route114_FossilManiacsTunnel_MapWarps:: @ 838B908
- warp_def 6, 25, 3, 2, Route114_FossilManiacsHouse
- warp_def 7, 25, 3, 2, Route114_FossilManiacsHouse
+ warp_def 6, 25, 3, 2, MAP_ROUTE114_FOSSIL_MANIACS_HOUSE
+ warp_def 7, 25, 3, 2, MAP_ROUTE114_FOSSIL_MANIACS_HOUSE
Route114_FossilManiacsTunnel_MapEvents:: @ 838B918
map_events Route114_FossilManiacsTunnel_MapObjects, Route114_FossilManiacsTunnel_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route114_LanettesHouse.inc b/data/maps/events/Route114_LanettesHouse.inc
index e62f6e0ad..3c14720a6 100644
--- a/data/maps/events/Route114_LanettesHouse.inc
+++ b/data/maps/events/Route114_LanettesHouse.inc
@@ -1,9 +1,9 @@
Route114_LanettesHouse_MapObjects:: @ 838B92C
- object_event 1, MAP_OBJ_GFX_WOMAN_3, 0, 5, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route114_LanettesHouse_EventScript_15C262, 870, 0, 0
+ object_event 1, MAP_OBJ_GFX_WOMAN_3, 0, 5, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route114_LanettesHouse_EventScript_15C262, FLAG_HIDE_LANETTE, 0, 0
Route114_LanettesHouse_MapWarps:: @ 838B944
- warp_def 5, 7, 0, 2, Route114
- warp_def 6, 7, 0, 2, Route114
+ warp_def 5, 7, 0, 2, MAP_ROUTE114
+ warp_def 6, 7, 0, 2, MAP_ROUTE114
Route114_LanettesHouse_MapBGEvents:: @ 838B954
bg_event 5, 1, 0, 0, 0, Route114_LanettesHouse_EventScript_15C299
diff --git a/data/maps/events/Route115.inc b/data/maps/events/Route115.inc
index ddca08fad..83c7e97b8 100644
--- a/data/maps/events/Route115.inc
+++ b/data/maps/events/Route115.inc
@@ -8,16 +8,16 @@ Route115_MapObjects:: @ 8382F2C
object_event 7, MAP_OBJ_GFX_GIRL_3, 0, 15, 0, 50, 0, 3, 64, 0, 0, 1, 0, 3, 0, Route115_EventScript_1509DC, 0, 0, 0
object_event 8, MAP_OBJ_GFX_BLACK_BELT, 0, 17, 0, 17, 0, 3, 50, 51, 0, 1, 0, 2, 0, Route115_EventScript_150987, 0, 0, 0
object_event 9, MAP_OBJ_GFX_MANIAC, 0, 25, 0, 61, 0, 3, 14, 0, 0, 1, 0, 3, 0, Route115_EventScript_150A1A, 0, 0, 0
- object_event 10, MAP_OBJ_GFX_ITEM_BALL, 0, 20, 0, 60, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route115_EventScript_1B1530, 1016, 0, 0
- object_event 11, MAP_OBJ_GFX_ITEM_BALL, 0, 19, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route115_EventScript_1B153D, 1017, 0, 0
- object_event 12, MAP_OBJ_GFX_ITEM_BALL, 0, 23, 0, 29, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route115_EventScript_1B154A, 1018, 0, 0
+ object_event 10, MAP_OBJ_GFX_ITEM_BALL, 0, 20, 0, 60, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route115_EventScript_1B1530, FLAG_ITEM_ROUTE115_1, 0, 0
+ object_event 11, MAP_OBJ_GFX_ITEM_BALL, 0, 19, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route115_EventScript_1B153D, FLAG_ITEM_ROUTE115_2, 0, 0
+ object_event 12, MAP_OBJ_GFX_ITEM_BALL, 0, 23, 0, 29, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route115_EventScript_1B154A, FLAG_ITEM_ROUTE115_3, 0, 0
object_event 13, MAP_OBJ_GFX_BERRY_TREE, 0, 31, 0, 64, 0, 3, 12, 0, 0, 0, 0, 55, 0, S_BerryTree, 0, 0, 0
object_event 14, MAP_OBJ_GFX_BERRY_TREE, 0, 31, 0, 65, 0, 3, 12, 0, 0, 0, 0, 56, 0, S_BerryTree, 0, 0, 0
- object_event 15, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 29, 0, 50, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 17, 0, 0
- object_event 16, MAP_OBJ_GFX_ITEM_BALL, 0, 31, 0, 56, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route115_EventScript_1B1557, 1118, 0, 0
+ object_event 15, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 29, 0, 50, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_11, 0, 0
+ object_event 16, MAP_OBJ_GFX_ITEM_BALL, 0, 31, 0, 56, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route115_EventScript_1B1557, FLAG_ITEM_ROUTE115_4, 0, 0
Route115_MapWarps:: @ 83830AC
- warp_def 27, 37, 0, 1, MeteorFalls_1F_1R
+ warp_def 27, 37, 0, 1, MAP_METEOR_FALLS_1F_1R
Route115_MapBGEvents:: @ 83830B4
bg_event 32, 6, 0, 8, 0, 72, 0, 0
diff --git a/data/maps/events/Route116.inc b/data/maps/events/Route116.inc
index b5f922524..77262f4c1 100644
--- a/data/maps/events/Route116.inc
+++ b/data/maps/events/Route116.inc
@@ -2,30 +2,30 @@ Route116_MapObjects:: @ 8383170
object_event 1, MAP_OBJ_GFX_BERRY_TREE, 0, 18, 0, 2, 0, 3, 12, 0, 0, 0, 0, 25, 0, S_BerryTree, 0, 0, 0
object_event 2, MAP_OBJ_GFX_BERRY_TREE, 0, 19, 0, 2, 0, 3, 12, 0, 0, 0, 0, 26, 0, S_BerryTree, 0, 0, 0
object_event 3, MAP_OBJ_GFX_YOUNGSTER, 0, 12, 0, 7, 0, 3, 16, 0, 0, 1, 0, 3, 0, Route116_EventScript_150C62, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 21, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 17, 0, 0
- object_event 5, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 33, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 18, 0, 0
+ object_event 4, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 21, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_11, 0, 0
+ object_event 5, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 33, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_12, 0, 0
object_event 6, MAP_OBJ_GFX_BUG_CATCHER, 0, 13, 0, 17, 0, 3, 24, 0, 0, 1, 0, 2, 0, Route116_EventScript_150C79, 0, 0, 0
- object_event 7, MAP_OBJ_GFX_ITEM_BALL, 0, 19, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route116_EventScript_1B1571, 1019, 0, 0
- object_event 8, MAP_OBJ_GFX_ITEM_BALL, 0, 10, 0, 17, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route116_EventScript_1B157E, 1020, 0, 0
+ object_event 7, MAP_OBJ_GFX_ITEM_BALL, 0, 19, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route116_EventScript_1B1571, FLAG_ITEM_ROUTE116_2, 0, 0
+ object_event 8, MAP_OBJ_GFX_ITEM_BALL, 0, 10, 0, 17, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route116_EventScript_1B157E, FLAG_ITEM_ROUTE116_3, 0, 0
object_event 9, MAP_OBJ_GFX_BERRY_TREE, 0, 20, 0, 2, 0, 3, 12, 0, 0, 0, 0, 66, 0, S_BerryTree, 0, 0, 0
object_event 10, MAP_OBJ_GFX_BERRY_TREE, 0, 21, 0, 2, 0, 3, 12, 0, 0, 0, 0, 67, 0, S_BerryTree, 0, 0, 0
- object_event 11, MAP_OBJ_GFX_OLD_MAN_1, 0, 46, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route116_EventScript_150B5D, 891, 0, 0
- object_event 12, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 30, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 19, 0, 0
+ object_event 11, MAP_OBJ_GFX_OLD_MAN_1, 0, 46, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route116_EventScript_150B5D, FLAG_HIDE_BRINEY_ROUTE116, 0, 0
+ object_event 12, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 30, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_13, 0, 0
object_event 13, MAP_OBJ_GFX_HIKER, 0, 36, 0, 15, 0, 3, 13, 0, 0, 1, 0, 2, 0, Route116_EventScript_150CCE, 0, 0, 0
- object_event 14, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 24, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 20, 0, 0
- object_event 15, MAP_OBJ_GFX_ITEM_BALL, 0, 80, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route116_EventScript_1B158B, 1021, 0, 0
+ object_event 14, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 24, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_14, 0, 0
+ object_event 15, MAP_OBJ_GFX_ITEM_BALL, 0, 80, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route116_EventScript_1B158B, FLAG_ITEM_ROUTE116_4, 0, 0
object_event 16, MAP_OBJ_GFX_LASS, 0, 22, 0, 16, 0, 3, 13, 0, 0, 1, 0, 3, 0, Route116_EventScript_150CE5, 0, 0, 0
object_event 17, MAP_OBJ_GFX_GIRL_3, 0, 25, 0, 4, 0, 3, 8, 0, 0, 1, 0, 2, 0, Route116_EventScript_150CFC, 0, 0, 0
object_event 18, MAP_OBJ_GFX_SCHOOL_KID_M, 0, 31, 0, 9, 0, 3, 9, 0, 0, 1, 0, 2, 0, Route116_EventScript_150C90, 0, 0, 0
- object_event 19, MAP_OBJ_GFX_MAN_2, 0, 46, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route116_EventScript_150A7B, 947, 0, 0
- object_event 20, MAP_OBJ_GFX_ITEM_BALL, 0, 56, 0, 12, 0, 4, 1, 17, 0, 0, 0, 0, 0, Route116_EventScript_1B1564, 1001, 0, 0
- object_event 21, MAP_OBJ_GFX_BLACK_BELT, 0, 38, 0, 9, 0, 3, 10, 17, 0, 0, 0, 0, 0, Route116_EventScript_150A49, 894, 0, 0
- object_event 22, MAP_OBJ_GFX_MANIAC, 0, 74, 0, 13, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route116_EventScript_150B8F, 813, 0, 0
+ object_event 19, MAP_OBJ_GFX_MAN_2, 0, 46, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route116_EventScript_150A7B, FLAG_HIDE_DEVON_EMPLOYEE_ROUTE116, 0, 0
+ object_event 20, MAP_OBJ_GFX_ITEM_BALL, 0, 56, 0, 12, 0, 4, 1, 17, 0, 0, 0, 0, 0, Route116_EventScript_1B1564, FLAG_ITEM_ROUTE116_1, 0, 0
+ object_event 21, MAP_OBJ_GFX_BLACK_BELT, 0, 38, 0, 9, 0, 3, 10, 17, 0, 0, 0, 0, 0, Route116_EventScript_150A49, FLAG_HIDE_TUNNER_DIGGER_ROUTE116, 0, 0
+ object_event 22, MAP_OBJ_GFX_MANIAC, 0, 74, 0, 13, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route116_EventScript_150B8F, FLAG_HIDE_LOST_GLASSES_MAN, 0, 0
Route116_MapWarps:: @ 8383380
- warp_def 47, 8, 0, 0, RusturfTunnel
- warp_def 38, 8, 0, 0, Route116_TunnelersRestHouse
- warp_def 65, 10, 0, 2, RusturfTunnel
+ warp_def 47, 8, 0, 0, MAP_RUSTURF_TUNNEL
+ warp_def 38, 8, 0, 0, MAP_ROUTE116_TUNNELERS_REST_HOUSE
+ warp_def 65, 10, 0, 2, MAP_RUSTURF_TUNNEL
Route116_MapCoordEvents:: @ 8383398
coord_event 47, 9, 3, 0, 0x406f, 1, 0, Route116_EventScript_150B6E
diff --git a/data/maps/events/Route116_TunnelersRestHouse.inc b/data/maps/events/Route116_TunnelersRestHouse.inc
index 4e4553567..2676d7a68 100644
--- a/data/maps/events/Route116_TunnelersRestHouse.inc
+++ b/data/maps/events/Route116_TunnelersRestHouse.inc
@@ -4,8 +4,8 @@ Route116_TunnelersRestHouse_MapObjects:: @ 838B98C
object_event 3, MAP_OBJ_GFX_MAN_3, 0, 7, 0, 2, 0, 3, 7, 1, 0, 0, 0, 0, 0, Route116_TunnelersRestHouse_EventScript_15C2F1, 0, 0, 0
Route116_TunnelersRestHouse_MapWarps:: @ 838B9D4
- warp_def 4, 8, 0, 1, Route116
- warp_def 5, 8, 0, 1, Route116
+ warp_def 4, 8, 0, 1, MAP_ROUTE116
+ warp_def 5, 8, 0, 1, MAP_ROUTE116
Route116_TunnelersRestHouse_MapEvents:: @ 838B9E4
map_events Route116_TunnelersRestHouse_MapObjects, Route116_TunnelersRestHouse_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route117.inc b/data/maps/events/Route117.inc
index bf6aeb5d0..90f3e1f8f 100644
--- a/data/maps/events/Route117.inc
+++ b/data/maps/events/Route117.inc
@@ -12,9 +12,9 @@ Route117_MapObjects:: @ 8383440
object_event 11, MAP_OBJ_GFX_BERRY_TREE, 0, 41, 0, 13, 0, 3, 12, 0, 0, 0, 0, 29, 0, S_BerryTree, 0, 0, 0
object_event 12, MAP_OBJ_GFX_BERRY_TREE, 0, 42, 0, 13, 0, 3, 12, 0, 0, 0, 0, 28, 0, S_BerryTree, 0, 0, 0
object_event 13, MAP_OBJ_GFX_BERRY_TREE, 0, 43, 0, 13, 0, 3, 12, 0, 0, 0, 0, 27, 0, S_BerryTree, 0, 0, 0
- object_event 14, MAP_OBJ_GFX_ITEM_BALL, 0, 16, 0, 18, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route117_EventScript_1B1598, 1022, 0, 0
- object_event 15, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 15, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 17, 0, 0
- object_event 16, MAP_OBJ_GFX_ITEM_BALL, 0, 9, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route117_EventScript_1B15A5, 1023, 0, 0
+ object_event 14, MAP_OBJ_GFX_ITEM_BALL, 0, 16, 0, 18, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route117_EventScript_1B1598, FLAG_ITEM_ROUTE117_1, 0, 0
+ object_event 15, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 15, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_11, 0, 0
+ object_event 16, MAP_OBJ_GFX_ITEM_BALL, 0, 9, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route117_EventScript_1B15A5, FLAG_ITEM_ROUTE117_2, 0, 0
object_event 17, MAP_OBJ_GFX_RUNNING_TRIATHLETE_F, 0, 21, 0, 1, 0, 3, 40, 68, 0, 1, 0, 3, 0, Route117_EventScript_150E47, 0, 0, 0
object_event 18, MAP_OBJ_GFX_MANIAC, 0, 17, 0, 12, 0, 3, 7, 17, 0, 1, 0, 4, 0, Route117_EventScript_150E85, 0, 0, 0
object_event 19, MAP_OBJ_GFX_LASS, 0, 46, 0, 15, 0, 3, 8, 0, 0, 1, 0, 0, 0, Route117_EventScript_150EE2, 0, 0, 0
@@ -22,7 +22,7 @@ Route117_MapObjects:: @ 8383440
object_event 21, MAP_OBJ_GFX_GIRL_2, 0, 48, 0, 10, 0, 3, 2, 17, 0, 0, 0, 0, 0, Route117_EventScript_150D69, 0, 0, 0
Route117_MapWarps:: @ 8383638
- warp_def 51, 5, 0, 0, Route117_PokemonDayCare
+ warp_def 51, 5, 0, 0, MAP_ROUTE117_POKEMON_DAY_CARE
Route117_MapBGEvents:: @ 8383640
bg_event 16, 6, 0, 0, 0, Route117_EventScript_150D72
diff --git a/data/maps/events/Route117_PokemonDayCare.inc b/data/maps/events/Route117_PokemonDayCare.inc
index 69ede9610..b1df05d06 100644
--- a/data/maps/events/Route117_PokemonDayCare.inc
+++ b/data/maps/events/Route117_PokemonDayCare.inc
@@ -2,8 +2,8 @@ Route117_PokemonDayCare_MapObjects:: @ 838B9F8
object_event 1, MAP_OBJ_GFX_OLD_WOMAN_2, 0, 2, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route117_PokemonDayCare_EventScript_1B2327, 0, 0, 0
Route117_PokemonDayCare_MapWarps:: @ 838BA10
- warp_def 2, 8, 0, 0, Route117
- warp_def 3, 8, 0, 0, Route117
+ warp_def 2, 8, 0, 0, MAP_ROUTE117
+ warp_def 3, 8, 0, 0, MAP_ROUTE117
Route117_PokemonDayCare_MapEvents:: @ 838BA20
map_events Route117_PokemonDayCare_MapObjects, Route117_PokemonDayCare_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route118.inc b/data/maps/events/Route118.inc
index df887ba1e..2faff5e7d 100644
--- a/data/maps/events/Route118.inc
+++ b/data/maps/events/Route118.inc
@@ -3,22 +3,22 @@ Route118_MapObjects:: @ 8383684
object_event 2, MAP_OBJ_GFX_BERRY_TREE, 0, 36, 0, 5, 0, 3, 12, 0, 0, 0, 0, 32, 0, S_BerryTree, 0, 0, 0
object_event 3, MAP_OBJ_GFX_BERRY_TREE, 0, 37, 0, 5, 0, 3, 12, 0, 0, 0, 0, 33, 0, S_BerryTree, 0, 0, 0
object_event 4, MAP_OBJ_GFX_MAN_6, 0, 64, 0, 10, 0, 3, 8, 0, 0, 1, 0, 3, 0, Route118_EventScript_151139, 0, 0, 0
- object_event 5, MAP_OBJ_GFX_REPORTER_F, 0, 33, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route118_EventScript_1AE462, 797, 0, 0
- object_event 6, MAP_OBJ_GFX_CAMERAMAN, 0, 34, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route118_EventScript_1AE482, 797, 0, 0
+ object_event 5, MAP_OBJ_GFX_REPORTER_F, 0, 33, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route118_EventScript_1AE462, FLAG_HIDE_GABBY_AND_TY_ROUTE118_1, 0, 0
+ object_event 6, MAP_OBJ_GFX_CAMERAMAN, 0, 34, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route118_EventScript_1AE482, FLAG_HIDE_GABBY_AND_TY_ROUTE118_1, 0, 0
object_event 7, MAP_OBJ_GFX_GIRL_2, 0, 12, 0, 8, 0, 3, 2, 17, 0, 0, 0, 0, 0, Route118_EventScript_150F93, 0, 0, 0
- object_event 8, MAP_OBJ_GFX_REPORTER_F, 0, 33, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route118_EventScript_1AE522, 901, 0, 0
- object_event 9, MAP_OBJ_GFX_CAMERAMAN, 0, 34, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route118_EventScript_1AE542, 901, 0, 0
- object_event 10, MAP_OBJ_GFX_REPORTER_F, 0, 33, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route118_EventScript_1AE562, 904, 0, 0
- object_event 11, MAP_OBJ_GFX_CAMERAMAN, 0, 34, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route118_EventScript_1AE582, 904, 0, 0
- object_event 12, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 38, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 17, 0, 0
+ object_event 8, MAP_OBJ_GFX_REPORTER_F, 0, 33, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route118_EventScript_1AE522, FLAG_HIDE_GABBY_AND_TY_ROUTE118_2, 0, 0
+ object_event 9, MAP_OBJ_GFX_CAMERAMAN, 0, 34, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route118_EventScript_1AE542, FLAG_HIDE_GABBY_AND_TY_ROUTE118_2, 0, 0
+ object_event 10, MAP_OBJ_GFX_REPORTER_F, 0, 33, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route118_EventScript_1AE562, FLAG_HIDE_GABBY_AND_TY_ROUTE118_3, 0, 0
+ object_event 11, MAP_OBJ_GFX_CAMERAMAN, 0, 34, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route118_EventScript_1AE582, FLAG_HIDE_GABBY_AND_TY_ROUTE118_3, 0, 0
+ object_event 12, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 38, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_11, 0, 0
object_event 13, MAP_OBJ_GFX_FISHERMAN, 0, 28, 0, 8, 0, 3, 9, 0, 0, 0, 0, 0, 0, Route118_EventScript_150F34, 0, 0, 0
object_event 14, MAP_OBJ_GFX_WOMAN_3, 0, 7, 0, 10, 0, 3, 24, 0, 0, 1, 0, 4, 0, Route118_EventScript_15108F, 0, 0, 0
object_event 15, MAP_OBJ_GFX_FISHERMAN, 0, 14, 0, 14, 0, 3, 8, 0, 0, 1, 0, 0, 0, Route118_EventScript_1510E4, 0, 0, 0
object_event 16, MAP_OBJ_GFX_MAN_6, 0, 56, 0, 7, 0, 3, 16, 0, 0, 1, 0, 3, 0, Route118_EventScript_151150, 0, 0, 0
object_event 17, MAP_OBJ_GFX_FISHERMAN, 0, 39, 0, 15, 0, 3, 1, 0, 0, 1, 0, 2, 0, Route118_EventScript_1510CD, 0, 0, 0
object_event 18, MAP_OBJ_GFX_MAN_6, 0, 17, 0, 11, 0, 3, 15, 17, 0, 1, 0, 3, 0, Route118_EventScript_1510FB, 0, 0, 0
- object_event 19, MAP_OBJ_GFX_STEVEN, 0, 44, 0, 7, 0, 3, 8, 17, 0, 0, 0, 0, 0, 0x0, 966, 0, 0
- object_event 20, MAP_OBJ_GFX_ITEM_BALL, 0, 69, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route118_EventScript_1B15B2, 1121, 0, 0
+ object_event 19, MAP_OBJ_GFX_STEVEN, 0, 44, 0, 7, 0, 3, 8, 17, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_STEVEN_ROUTE118, 0, 0
+ object_event 20, MAP_OBJ_GFX_ITEM_BALL, 0, 69, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route118_EventScript_1B15B2, FLAG_ITEM_ROUTE118_1, 0, 0
Route118_MapCoordEvents:: @ 8383864
coord_event 43, 11, 3, 0, 0x4071, 0, 0, Route118_EventScript_150FAE
diff --git a/data/maps/events/Route119.inc b/data/maps/events/Route119.inc
index 08e6e3649..506256be0 100644
--- a/data/maps/events/Route119.inc
+++ b/data/maps/events/Route119.inc
@@ -14,32 +14,32 @@ Route119_MapObjects:: @ 8383914
object_event 13, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 19, 0, 49, 0, 3, 58, 0, 0, 1, 0, 3, 0, Route119_EventScript_151580, 0, 0, 0
object_event 14, MAP_OBJ_GFX_MAN_6, 0, 10, 0, 50, 0, 4, 10, 0, 0, 1, 0, 3, 0, Route119_EventScript_15153B, 0, 0, 0
object_event 15, MAP_OBJ_GFX_MAN_6, 0, 8, 0, 62, 0, 3, 8, 0, 0, 1, 0, 3, 0, Route119_EventScript_151552, 0, 0, 0
- object_event 16, 240, 0, 25, 0, 32, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, 851, 0, 0
- object_event 17, MAP_OBJ_GFX_ITEM_BALL, 0, 12, 0, 121, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route119_EventScript_1B15BF, 1024, 0, 0
- object_event 18, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 96, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route119_EventScript_1B15CC, 1025, 0, 0
- object_event 19, MAP_OBJ_GFX_ITEM_BALL, 0, 29, 0, 53, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route119_EventScript_1B15D9, 1026, 0, 0
- object_event 20, MAP_OBJ_GFX_ITEM_BALL, 0, 25, 0, 76, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route119_EventScript_1B15E6, 1027, 0, 0
- object_event 21, MAP_OBJ_GFX_ITEM_BALL, 0, 8, 0, 18, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route119_EventScript_1B15F3, 1028, 0, 0
- object_event 22, MAP_OBJ_GFX_ITEM_BALL, 0, 33, 0, 117, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route119_EventScript_1B1600, 1029, 0, 0
- object_event 23, 241, 0, 13, 0, 33, 0, 4, 10, 0, 0, 0, 0, 0, 0, Route119_EventScript_1515C5, 890, 0, 0
- object_event 24, 241, 0, 13, 0, 34, 0, 4, 10, 0, 0, 0, 0, 0, 0, Route119_EventScript_1515DC, 890, 0, 0
- object_event 25, 243, 0, 17, 0, 33, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0x0, 923, 0, 0
+ object_event 16, 240, 0, 25, 0, 32, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_RIVAL_ROUTE119, 0, 0
+ object_event 17, MAP_OBJ_GFX_ITEM_BALL, 0, 12, 0, 121, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route119_EventScript_1B15BF, FLAG_ITEM_ROUTE119_1, 0, 0
+ object_event 18, MAP_OBJ_GFX_ITEM_BALL, 0, 4, 0, 96, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route119_EventScript_1B15CC, FLAG_ITEM_ROUTE119_2, 0, 0
+ object_event 19, MAP_OBJ_GFX_ITEM_BALL, 0, 29, 0, 53, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route119_EventScript_1B15D9, FLAG_ITEM_ROUTE119_3, 0, 0
+ object_event 20, MAP_OBJ_GFX_ITEM_BALL, 0, 25, 0, 76, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route119_EventScript_1B15E6, FLAG_ITEM_ROUTE119_4, 0, 0
+ object_event 21, MAP_OBJ_GFX_ITEM_BALL, 0, 8, 0, 18, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route119_EventScript_1B15F3, FLAG_ITEM_ROUTE119_5, 0, 0
+ object_event 22, MAP_OBJ_GFX_ITEM_BALL, 0, 33, 0, 117, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route119_EventScript_1B1600, FLAG_ITEM_ROUTE119_6, 0, 0
+ object_event 23, 241, 0, 13, 0, 33, 0, 4, 10, 0, 0, 0, 0, 0, 0, Route119_EventScript_1515C5, FLAG_HIDE_EVIL_TEAM_WEATHER_INSTITUTE, 0, 0
+ object_event 24, 241, 0, 13, 0, 34, 0, 4, 10, 0, 0, 0, 0, 0, 0, Route119_EventScript_1515DC, FLAG_HIDE_EVIL_TEAM_WEATHER_INSTITUTE, 0, 0
+ object_event 25, 243, 0, 17, 0, 33, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_RIVAL_ROUTE119_ON_BIKE, 0, 0
object_event 26, MAP_OBJ_GFX_BOY_3, 0, 31, 0, 109, 0, 3, 8, 17, 0, 0, 0, 0, 0, Route119_EventScript_1515F3, 0, 0, 0
object_event 27, MAP_OBJ_GFX_BERRY_TREE, 0, 8, 0, 23, 0, 3, 12, 0, 0, 0, 0, 83, 0, S_BerryTree, 0, 0, 0
object_event 28, MAP_OBJ_GFX_BERRY_TREE, 0, 9, 0, 23, 0, 3, 12, 0, 0, 0, 0, 84, 0, S_BerryTree, 0, 0, 0
object_event 29, MAP_OBJ_GFX_BERRY_TREE, 0, 29, 0, 90, 0, 3, 12, 0, 0, 0, 0, 85, 0, S_BerryTree, 0, 0, 0
object_event 30, MAP_OBJ_GFX_BERRY_TREE, 0, 30, 0, 90, 0, 3, 12, 0, 0, 0, 0, 86, 0, S_BerryTree, 0, 0, 0
object_event 31, MAP_OBJ_GFX_CYCLING_TRIATHLETE_M, 0, 19, 0, 133, 0, 3, 5, 18, 0, 0, 0, 0, 0, Route119_EventScript_15141A, 0, 0, 0
- object_event 32, MAP_OBJ_GFX_ITEM_BALL, 0, 3, 0, 56, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route119_EventScript_1B160D, 1106, 0, 0
+ object_event 32, MAP_OBJ_GFX_ITEM_BALL, 0, 3, 0, 56, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route119_EventScript_1B160D, FLAG_ITEM_ROUTE119_7, 0, 0
object_event 33, MAP_OBJ_GFX_BOY_2, 0, 35, 0, 93, 0, 4, 2, 17, 0, 0, 0, 0, 0, Route119_EventScript_1515FC, 0, 0, 0
object_event 34, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 29, 0, 6, 0, 3, 57, 17, 0, 1, 0, 3, 0, Route119_EventScript_151597, 0, 0, 0
- object_event 35, MAP_OBJ_GFX_KECLEON_1, 0, 31, 0, 6, 0, 3, 76, 17, 0, 0, 0, 0, 0, Route119_EventScript_1A057A, 989, 0, 0
- object_event 36, MAP_OBJ_GFX_KECLEON_1, 0, 20, 0, 13, 0, 4, 76, 17, 0, 0, 0, 0, 0, Route119_EventScript_1A0587, 990, 0, 0
+ object_event 35, MAP_OBJ_GFX_KECLEON_1, 0, 31, 0, 6, 0, 3, 76, 17, 0, 0, 0, 0, 0, Route119_EventScript_1A057A, FLAG_HIDE_KECLEON_ROUTE119_1, 0, 0
+ object_event 36, MAP_OBJ_GFX_KECLEON_1, 0, 20, 0, 13, 0, 4, 76, 17, 0, 0, 0, 0, 0, Route119_EventScript_1A0587, FLAG_HIDE_KECLEON_ROUTE119_2, 0, 0
object_event 37, MAP_OBJ_GFX_FISHERMAN, 0, 13, 0, 104, 0, 3, 10, 17, 0, 1, 0, 0, 0, Route119_EventScript_1515AE, 0, 0, 0
Route119_MapWarps:: @ 8383C8C
- warp_def 6, 32, 0, 0, Route119_WeatherInstitute_1F
- warp_def 33, 109, 0, 0, Route119_House
+ warp_def 6, 32, 0, 0, MAP_ROUTE119_WEATHER_INSTITUTE_1F
+ warp_def 33, 109, 0, 0, MAP_ROUTE119_HOUSE
Route119_MapCoordEvents:: @ 8383C9C
coord_event 25, 31, 0, 0, 0x4072, 0, 0, Route119_EventScript_1511C5
diff --git a/data/maps/events/Route119_House.inc b/data/maps/events/Route119_House.inc
index 45267ca0e..255913651 100644
--- a/data/maps/events/Route119_House.inc
+++ b/data/maps/events/Route119_House.inc
@@ -8,8 +8,8 @@ Route119_House_MapObjects:: @ 8392F40
object_event 7, MAP_OBJ_GFX_WINGULL, 0, 5, 0, 3, 0, 3, 2, 49, 0, 0, 0, 0, 0, Route119_House_EventScript_163DE7, 0, 0, 0
Route119_House_MapWarps:: @ 8392FE8
- warp_def 3, 8, 0, 1, Route119
- warp_def 4, 8, 0, 1, Route119
+ warp_def 3, 8, 0, 1, MAP_ROUTE119
+ warp_def 4, 8, 0, 1, MAP_ROUTE119
Route119_House_MapEvents:: @ 8392FF8
map_events Route119_House_MapObjects, Route119_House_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route119_WeatherInstitute_1F.inc b/data/maps/events/Route119_WeatherInstitute_1F.inc
index 1472fb569..920439340 100644
--- a/data/maps/events/Route119_WeatherInstitute_1F.inc
+++ b/data/maps/events/Route119_WeatherInstitute_1F.inc
@@ -1,14 +1,14 @@
Route119_WeatherInstitute_1F_MapObjects:: @ 8392DC0
- object_event 1, 241, 0, 15, 0, 3, 0, 3, 9, 0, 0, 1, 0, 3, 0, Route119_WeatherInstitute_1F_EventScript_163C94, 890, 0, 0
- object_event 2, 242, 0, 10, 0, 5, 0, 3, 8, 0, 0, 1, 0, 2, 0, Route119_WeatherInstitute_1F_EventScript_163CAB, 890, 0, 0
- object_event 3, MAP_OBJ_GFX_MAN_5, 0, 5, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route119_WeatherInstitute_1F_EventScript_163C7A, 892, 0, 0
- object_event 4, MAP_OBJ_GFX_MAN_5, 0, 2, 0, 11, 0, 3, 1, 1, 0, 0, 0, 0, 0, Route119_WeatherInstitute_1F_EventScript_163C71, 892, 0, 0
+ object_event 1, 241, 0, 15, 0, 3, 0, 3, 9, 0, 0, 1, 0, 3, 0, Route119_WeatherInstitute_1F_EventScript_163C94, FLAG_HIDE_EVIL_TEAM_WEATHER_INSTITUTE, 0, 0
+ object_event 2, 242, 0, 10, 0, 5, 0, 3, 8, 0, 0, 1, 0, 2, 0, Route119_WeatherInstitute_1F_EventScript_163CAB, FLAG_HIDE_EVIL_TEAM_WEATHER_INSTITUTE, 0, 0
+ object_event 3, MAP_OBJ_GFX_MAN_5, 0, 5, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route119_WeatherInstitute_1F_EventScript_163C7A, FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_1F, 0, 0
+ object_event 4, MAP_OBJ_GFX_MAN_5, 0, 2, 0, 11, 0, 3, 1, 1, 0, 0, 0, 0, 0, Route119_WeatherInstitute_1F_EventScript_163C71, FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_1F, 0, 0
object_event 5, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 14, 0, 11, 0, 3, 2, 17, 0, 0, 0, 0, 0, Route119_WeatherInstitute_1F_EventScript_163C4D, 0, 0, 0
Route119_WeatherInstitute_1F_MapWarps:: @ 8392E38
- warp_def 9, 12, 0, 0, Route119
- warp_def 10, 12, 0, 0, Route119
- warp_def 17, 1, 0, 0, Route119_WeatherInstitute_2F
+ warp_def 9, 12, 0, 0, MAP_ROUTE119
+ warp_def 10, 12, 0, 0, MAP_ROUTE119
+ warp_def 17, 1, 0, 0, MAP_ROUTE119_WEATHER_INSTITUTE_2F
Route119_WeatherInstitute_1F_MapBGEvents:: @ 8392E50
bg_event 1, 2, 0, 0, 0, Route119_WeatherInstitute_1F_EventScript_163C83
diff --git a/data/maps/events/Route119_WeatherInstitute_2F.inc b/data/maps/events/Route119_WeatherInstitute_2F.inc
index d2dbce24d..4a2db97f1 100644
--- a/data/maps/events/Route119_WeatherInstitute_2F.inc
+++ b/data/maps/events/Route119_WeatherInstitute_2F.inc
@@ -1,13 +1,13 @@
Route119_WeatherInstitute_2F_MapObjects:: @ 8392E94
- object_event 1, 241, 0, 15, 0, 6, 0, 3, 10, 0, 0, 1, 0, 4, 0, Route119_WeatherInstitute_2F_EventScript_163CFC, 890, 0, 0
- object_event 2, 241, 0, 10, 0, 8, 0, 3, 13, 0, 0, 1, 0, 2, 0, Route119_WeatherInstitute_2F_EventScript_163D13, 890, 0, 0
- object_event 3, 242, 0, 4, 0, 6, 0, 3, 10, 0, 0, 1, 0, 0, 0, Route119_WeatherInstitute_2F_EventScript_163D2A, 890, 0, 0
- object_event 4, MAP_OBJ_GFX_MAN_5, 0, 0, 0, 6, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, 893, 0, 0
+ object_event 1, 241, 0, 15, 0, 6, 0, 3, 10, 0, 0, 1, 0, 4, 0, Route119_WeatherInstitute_2F_EventScript_163CFC, FLAG_HIDE_EVIL_TEAM_WEATHER_INSTITUTE, 0, 0
+ object_event 2, 241, 0, 10, 0, 8, 0, 3, 13, 0, 0, 1, 0, 2, 0, Route119_WeatherInstitute_2F_EventScript_163D13, FLAG_HIDE_EVIL_TEAM_WEATHER_INSTITUTE, 0, 0
+ object_event 3, 242, 0, 4, 0, 6, 0, 3, 10, 0, 0, 1, 0, 0, 0, Route119_WeatherInstitute_2F_EventScript_163D2A, FLAG_HIDE_EVIL_TEAM_WEATHER_INSTITUTE, 0, 0
+ object_event 4, MAP_OBJ_GFX_MAN_5, 0, 0, 0, 6, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_2F, 0, 0
object_event 5, MAP_OBJ_GFX_SCIENTIST_1, 0, 18, 0, 6, 0, 3, 1, 18, 0, 0, 0, 0, 0, Route119_WeatherInstitute_2F_EventScript_163DCC, 0, 0, 0
- object_event 6, MAP_OBJ_GFX_MAN_5, 0, 1, 0, 7, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, 893, 0, 0
+ object_event 6, MAP_OBJ_GFX_MAN_5, 0, 1, 0, 7, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_2F, 0, 0
Route119_WeatherInstitute_2F_MapWarps:: @ 8392F24
- warp_def 17, 1, 0, 2, Route119_WeatherInstitute_1F
+ warp_def 17, 1, 0, 2, MAP_ROUTE119_WEATHER_INSTITUTE_1F
Route119_WeatherInstitute_2F_MapEvents:: @ 8392F2C
map_events Route119_WeatherInstitute_2F_MapObjects, Route119_WeatherInstitute_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route120.inc b/data/maps/events/Route120.inc
index 81fa21c7f..4ddfe4978 100644
--- a/data/maps/events/Route120.inc
+++ b/data/maps/events/Route120.inc
@@ -14,36 +14,36 @@ Route120_MapObjects:: @ 8383F30
object_event 13, MAP_OBJ_GFX_CAMPER, 0, 27, 0, 51, 0, 3, 9, 0, 0, 1, 0, 7, 0, Route120_EventScript_151A08, 0, 0, 0
object_event 14, MAP_OBJ_GFX_PICNICKER, 0, 36, 0, 45, 0, 3, 9, 0, 0, 1, 0, 2, 0, Route120_EventScript_151A1F, 0, 0, 0
object_event 15, MAP_OBJ_GFX_MANIAC, 0, 19, 0, 80, 0, 5, 15, 0, 0, 1, 0, 3, 0, Route120_EventScript_151A36, 0, 0, 0
- object_event 16, MAP_OBJ_GFX_ITEM_BALL, 0, 20, 0, 55, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route120_EventScript_1B161A, 1030, 0, 0
- object_event 17, MAP_OBJ_GFX_CAMERAMAN, 0, 37, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route120_EventScript_1AE4C2, 798, 0, 0
- object_event 18, MAP_OBJ_GFX_REPORTER_F, 0, 36, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route120_EventScript_1AE4A2, 798, 0, 0
- object_event 19, MAP_OBJ_GFX_REPORTER_F, 0, 36, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route120_EventScript_1AE562, 902, 0, 0
- object_event 20, MAP_OBJ_GFX_CAMERAMAN, 0, 37, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route120_EventScript_1AE582, 902, 0, 0
- object_event 21, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 35, 0, 32, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 17, 0, 0
- object_event 22, MAP_OBJ_GFX_ITEM_BALL, 0, 7, 0, 89, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route120_EventScript_1B1627, 1031, 0, 0
+ object_event 16, MAP_OBJ_GFX_ITEM_BALL, 0, 20, 0, 55, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route120_EventScript_1B161A, FLAG_ITEM_ROUTE120_1, 0, 0
+ object_event 17, MAP_OBJ_GFX_CAMERAMAN, 0, 37, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route120_EventScript_1AE4C2, FLAG_HIDE_GABBY_AND_TY_ROUTE120_1, 0, 0
+ object_event 18, MAP_OBJ_GFX_REPORTER_F, 0, 36, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route120_EventScript_1AE4A2, FLAG_HIDE_GABBY_AND_TY_ROUTE120_1, 0, 0
+ object_event 19, MAP_OBJ_GFX_REPORTER_F, 0, 36, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route120_EventScript_1AE562, FLAG_HIDE_GABBY_AND_TY_ROUTE120_2, 0, 0
+ object_event 20, MAP_OBJ_GFX_CAMERAMAN, 0, 37, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route120_EventScript_1AE582, FLAG_HIDE_GABBY_AND_TY_ROUTE120_2, 0, 0
+ object_event 21, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 35, 0, 32, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_11, 0, 0
+ object_event 22, MAP_OBJ_GFX_ITEM_BALL, 0, 7, 0, 89, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route120_EventScript_1B1627, FLAG_ITEM_ROUTE120_2, 0, 0
object_event 23, MAP_OBJ_GFX_BEAUTY, 0, 14, 0, 92, 0, 5, 5, 1, 0, 0, 0, 0, 0, Route120_EventScript_151739, 0, 0, 0
object_event 24, MAP_OBJ_GFX_WOMAN_7, 0, 28, 0, 35, 0, 3, 15, 0, 0, 1, 0, 4, 0, Route120_EventScript_151A74, 0, 0, 0
object_event 25, MAP_OBJ_GFX_HIKER, 0, 9, 0, 60, 0, 3, 21, 0, 0, 1, 0, 4, 0, Route120_EventScript_151A8B, 0, 0, 0
object_event 26, MAP_OBJ_GFX_WOMAN_7, 0, 16, 0, 6, 0, 3, 23, 0, 0, 1, 0, 4, 0, Route120_EventScript_151AA2, 0, 0, 0
object_event 27, MAP_OBJ_GFX_WOMAN_7, 0, 18, 0, 34, 0, 3, 17, 0, 0, 1, 0, 3, 0, Route120_EventScript_151AB9, 0, 0, 0
- object_event 28, MAP_OBJ_GFX_ITEM_BALL, 0, 22, 0, 13, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route120_EventScript_1B1641, 1108, 0, 0
- object_event 29, MAP_OBJ_GFX_ITEM_BALL, 0, 23, 0, 82, 0, 5, 1, 17, 0, 0, 0, 0, 0, Route120_EventScript_1B1634, 1107, 0, 0
- object_event 30, MAP_OBJ_GFX_KECLEON_1, 0, 12, 0, 16, 0, 4, 76, 17, 0, 0, 0, 0, 0, Route120_EventScript_151998, 970, 0, 0
- object_event 31, MAP_OBJ_GFX_STEVEN, 0, 13, 0, 15, 0, 4, 8, 17, 0, 0, 0, 0, 0, Route120_EventScript_151853, 972, 0, 0
- object_event 32, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 20, 0, 1, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_CuttableTree, 20, 0, 0
- object_event 33, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 15, 0, 1, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_CuttableTree, 18, 0, 0
+ object_event 28, MAP_OBJ_GFX_ITEM_BALL, 0, 22, 0, 13, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route120_EventScript_1B1641, FLAG_ITEM_ROUTE120_4, 0, 0
+ object_event 29, MAP_OBJ_GFX_ITEM_BALL, 0, 23, 0, 82, 0, 5, 1, 17, 0, 0, 0, 0, 0, Route120_EventScript_1B1634, FLAG_ITEM_ROUTE120_3, 0, 0
+ object_event 30, MAP_OBJ_GFX_KECLEON_1, 0, 12, 0, 16, 0, 4, 76, 17, 0, 0, 0, 0, 0, Route120_EventScript_151998, FLAG_HIDE_KECLEON_ROUTE120_1, 0, 0
+ object_event 31, MAP_OBJ_GFX_STEVEN, 0, 13, 0, 15, 0, 4, 8, 17, 0, 0, 0, 0, 0, Route120_EventScript_151853, FLAG_HIDE_STEVEN_ROUTE120, 0, 0
+ object_event 32, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 20, 0, 1, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_14, 0, 0
+ object_event 33, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 15, 0, 1, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_12, 0, 0
object_event 34, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 10, 0, 72, 0, 3, 58, 17, 0, 1, 0, 3, 0, Route120_EventScript_151AD0, 0, 0, 0
object_event 35, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 19, 0, 28, 0, 3, 57, 17, 0, 1, 0, 3, 0, Route120_EventScript_151AE7, 0, 0, 0
- object_event 36, MAP_OBJ_GFX_KECLEON_2, 0, 12, 0, 16, 0, 3, 8, 17, 0, 0, 0, 0, 0, 0x0, 981, 0, 0
- object_event 37, MAP_OBJ_GFX_KECLEON_1, 0, 20, 0, 11, 0, 3, 76, 17, 0, 0, 0, 0, 0, Route120_EventScript_1A0539, 982, 0, 0
- object_event 38, MAP_OBJ_GFX_KECLEON_1, 0, 27, 0, 2, 0, 3, 76, 17, 0, 0, 0, 0, 0, Route120_EventScript_1A0546, 985, 0, 0
- object_event 39, MAP_OBJ_GFX_KECLEON_1, 0, 4, 0, 77, 0, 3, 76, 17, 0, 0, 0, 0, 0, Route120_EventScript_1A0553, 986, 0, 0
- object_event 40, MAP_OBJ_GFX_KECLEON_1, 0, 7, 0, 51, 0, 3, 76, 17, 0, 0, 0, 0, 0, Route120_EventScript_1A056D, 988, 0, 0
- object_event 41, MAP_OBJ_GFX_KECLEON_1, 0, 19, 0, 48, 0, 3, 76, 17, 0, 0, 0, 0, 0, Route120_EventScript_1A0560, 987, 0, 0
+ object_event 36, MAP_OBJ_GFX_KECLEON_2, 0, 12, 0, 16, 0, 3, 8, 17, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_KECLEON_ROUTE120_2, 0, 0
+ object_event 37, MAP_OBJ_GFX_KECLEON_1, 0, 20, 0, 11, 0, 3, 76, 17, 0, 0, 0, 0, 0, Route120_EventScript_1A0539, FLAG_HIDE_KECLEON_ROUTE120_3, 0, 0
+ object_event 38, MAP_OBJ_GFX_KECLEON_1, 0, 27, 0, 2, 0, 3, 76, 17, 0, 0, 0, 0, 0, Route120_EventScript_1A0546, FLAG_HIDE_KECLEON_ROUTE120_4, 0, 0
+ object_event 39, MAP_OBJ_GFX_KECLEON_1, 0, 4, 0, 77, 0, 3, 76, 17, 0, 0, 0, 0, 0, Route120_EventScript_1A0553, FLAG_HIDE_KECLEON_ROUTE120_5, 0, 0
+ object_event 40, MAP_OBJ_GFX_KECLEON_1, 0, 7, 0, 51, 0, 3, 76, 17, 0, 0, 0, 0, 0, Route120_EventScript_1A056D, FLAG_HIDE_KECLEON_ROUTE120_7, 0, 0
+ object_event 41, MAP_OBJ_GFX_KECLEON_1, 0, 19, 0, 48, 0, 3, 76, 17, 0, 0, 0, 0, 0, Route120_EventScript_1A0560, FLAG_HIDE_KECLEON_ROUTE120_6, 0, 0
Route120_MapWarps:: @ 8384308
- warp_def 7, 55, 0, 0, AncientTomb
- warp_def 19, 23, 1, 0, ScorchedSlab
+ warp_def 7, 55, 0, 0, MAP_ANCIENT_TOMB
+ warp_def 19, 23, 1, 0, MAP_SCORCHED_SLAB
Route120_MapCoordEvents:: @ 8384318
coord_event 7, 15, 0, 0, 3, 0, 0, 0x0
diff --git a/data/maps/events/Route121.inc b/data/maps/events/Route121.inc
index 9961344a8..b97f956c2 100644
--- a/data/maps/events/Route121.inc
+++ b/data/maps/events/Route121.inc
@@ -10,20 +10,20 @@ Route121_MapObjects:: @ 8384504
object_event 9, MAP_OBJ_GFX_BERRY_TREE, 0, 67, 0, 14, 0, 3, 12, 0, 0, 0, 0, 54, 0, S_BerryTree, 0, 0, 0
object_event 10, MAP_OBJ_GFX_LASS, 0, 39, 0, 9, 0, 3, 8, 0, 0, 1, 0, 0, 0, Route121_EventScript_151BDE, 0, 0, 0
object_event 11, MAP_OBJ_GFX_LASS, 0, 40, 0, 9, 0, 3, 8, 0, 0, 1, 0, 0, 0, Route121_EventScript_151BF9, 0, 0, 0
- object_event 12, 241, 0, 30, 0, 8, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, 914, 0, 0
- object_event 13, 241, 0, 30, 0, 7, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, 914, 0, 0
- object_event 14, 241, 0, 31, 0, 7, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0x0, 914, 0, 0
- object_event 15, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 32, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 17, 0, 0
- object_event 16, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 65, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 18, 0, 0
+ object_event 12, 241, 0, 30, 0, 8, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_GRUNTS_ROUTE121, 0, 0
+ object_event 13, 241, 0, 30, 0, 7, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_GRUNTS_ROUTE121, 0, 0
+ object_event 14, 241, 0, 31, 0, 7, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_GRUNTS_ROUTE121, 0, 0
+ object_event 15, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 32, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_11, 0, 0
+ object_event 16, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 65, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_12, 0, 0
object_event 17, MAP_OBJ_GFX_WOMAN_2, 0, 63, 0, 5, 0, 3, 9, 0, 0, 1, 0, 4, 0, Route121_EventScript_151B72, 0, 0, 0
object_event 18, MAP_OBJ_GFX_GENTLEMAN, 0, 55, 0, 8, 0, 3, 17, 0, 0, 1, 0, 3, 0, Route121_EventScript_151B89, 0, 0, 0
object_event 19, MAP_OBJ_GFX_HEX_MANIAC, 0, 11, 0, 10, 0, 3, 15, 0, 0, 1, 0, 4, 0, Route121_EventScript_151BC7, 0, 0, 0
object_event 20, MAP_OBJ_GFX_BEAUTY, 0, 22, 0, 5, 0, 3, 17, 0, 0, 1, 0, 4, 0, Route121_EventScript_151C14, 0, 0, 0
- object_event 21, MAP_OBJ_GFX_ITEM_BALL, 0, 55, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route121_EventScript_1B164E, 1103, 0, 0
- object_event 22, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 26, 0, 12, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_CuttableTree, 19, 0, 0
+ object_event 21, MAP_OBJ_GFX_ITEM_BALL, 0, 55, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route121_EventScript_1B164E, FLAG_ITEM_ROUTE121_1, 0, 0
+ object_event 22, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 26, 0, 12, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_13, 0, 0
Route121_MapWarps:: @ 8384714
- warp_def 37, 5, 0, 2, Route121_SafariZoneEntrance
+ warp_def 37, 5, 0, 2, MAP_ROUTE121_SAFARI_ZONE_ENTRANCE
Route121_MapCoordEvents:: @ 838471C
coord_event 25, 5, 3, 0, 0x4074, 0, 0, Route121_EventScript_151B25
diff --git a/data/maps/events/Route121_SafariZoneEntrance.inc b/data/maps/events/Route121_SafariZoneEntrance.inc
index c3880d4b3..68ee79ca1 100644
--- a/data/maps/events/Route121_SafariZoneEntrance.inc
+++ b/data/maps/events/Route121_SafariZoneEntrance.inc
@@ -4,10 +4,10 @@ Route121_SafariZoneEntrance_MapObjects:: @ 838BA34
object_event 3, MAP_OBJ_GFX_CAMPER, 0, 8, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 0, 0, 0
Route121_SafariZoneEntrance_MapWarps:: @ 838BA7C
- warp_def 2, 5, 0, 0, SafariZone_Southeast
- warp_def 3, 5, 0, 0, SafariZone_Southeast
- warp_def 14, 13, 0, 0, Route121
- warp_def 15, 13, 0, 0, Route121
+ warp_def 2, 5, 0, 0, MAP_SAFARI_ZONE_SOUTHEAST
+ warp_def 3, 5, 0, 0, MAP_SAFARI_ZONE_SOUTHEAST
+ warp_def 14, 13, 0, 0, MAP_ROUTE121
+ warp_def 15, 13, 0, 0, MAP_ROUTE121
Route121_SafariZoneEntrance_MapCoordEvents:: @ 838BA9C
coord_event 8, 4, 3, 0, 0x4001, 0, 0, Route121_SafariZoneEntrance_EventScript_15C383
diff --git a/data/maps/events/Route122.inc b/data/maps/events/Route122.inc
index 217c28ee1..3bad2b895 100644
--- a/data/maps/events/Route122.inc
+++ b/data/maps/events/Route122.inc
@@ -1,5 +1,5 @@
Route122_MapWarps:: @ 83847DC
- warp_def 22, 29, 0, 0, MtPyre_1F
+ warp_def 22, 29, 0, 0, MAP_MT_PYRE_1F
Route122_MapEvents:: @ 83847E4
map_events 0x0, Route122_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route123.inc b/data/maps/events/Route123.inc
index dc5ac0fb4..ff4f066b8 100644
--- a/data/maps/events/Route123.inc
+++ b/data/maps/events/Route123.inc
@@ -16,11 +16,11 @@ Route123_MapObjects:: @ 83847F8
object_event 15, MAP_OBJ_GFX_BERRY_TREE, 0, 18, 0, 3, 0, 3, 12, 0, 0, 0, 0, 14, 0, S_BerryTree, 0, 0, 0
object_event 16, MAP_OBJ_GFX_BERRY_TREE, 0, 11, 0, 5, 0, 3, 12, 0, 0, 0, 0, 15, 0, S_BerryTree, 0, 0, 0
object_event 17, MAP_OBJ_GFX_BERRY_TREE, 0, 12, 0, 5, 0, 3, 12, 0, 0, 0, 0, 30, 0, S_BerryTree, 0, 0, 0
- object_event 18, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 101, 0, 13, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 17, 0, 0
- object_event 19, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 129, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 18, 0, 0
- object_event 20, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 92, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, 19, 0, 0
- object_event 21, MAP_OBJ_GFX_ITEM_BALL, 0, 31, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route123_EventScript_1B165B, 1032, 0, 0
- object_event 22, MAP_OBJ_GFX_ITEM_BALL, 0, 139, 0, 18, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route123_EventScript_1B1668, 1033, 0, 0
+ object_event 18, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 101, 0, 13, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_11, 0, 0
+ object_event 19, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 129, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_12, 0, 0
+ object_event 20, MAP_OBJ_GFX_CUTTABLE_TREE, 0, 92, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_CuttableTree, FLAG_TEMP_13, 0, 0
+ object_event 21, MAP_OBJ_GFX_ITEM_BALL, 0, 31, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route123_EventScript_1B165B, FLAG_ITEM_ROUTE123_1, 0, 0
+ object_event 22, MAP_OBJ_GFX_ITEM_BALL, 0, 139, 0, 18, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route123_EventScript_1B1668, FLAG_ITEM_ROUTE123_2, 0, 0
object_event 23, MAP_OBJ_GFX_GIRL_3, 0, 108, 0, 13, 0, 3, 15, 0, 0, 0, 0, 0, 0, Route123_EventScript_151C5D, 0, 0, 0
object_event 24, MAP_OBJ_GFX_BERRY_TREE, 0, 109, 0, 13, 0, 3, 12, 0, 0, 0, 0, 87, 0, S_BerryTree, 0, 0, 0
object_event 25, MAP_OBJ_GFX_BERRY_TREE, 0, 110, 0, 13, 0, 3, 12, 0, 0, 0, 0, 88, 0, S_BerryTree, 0, 0, 0
@@ -31,11 +31,11 @@ Route123_MapObjects:: @ 83847F8
object_event 30, MAP_OBJ_GFX_PSYCHIC_M, 0, 138, 0, 12, 0, 3, 9, 0, 0, 1, 0, 6, 0, Route123_EventScript_151D16, 0, 0, 0
object_event 31, MAP_OBJ_GFX_LASS, 0, 50, 0, 16, 0, 3, 8, 0, 0, 1, 0, 1, 0, Route123_EventScript_151D54, 0, 0, 0
object_event 32, MAP_OBJ_GFX_HEX_MANIAC, 0, 87, 0, 14, 0, 3, 1, 0, 0, 1, 0, 3, 0, Route123_EventScript_151DC8, 0, 0, 0
- object_event 33, MAP_OBJ_GFX_ITEM_BALL, 0, 27, 0, 18, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route123_EventScript_1B1675, 1104, 0, 0
- object_event 34, MAP_OBJ_GFX_ITEM_BALL, 0, 75, 0, 9, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route123_EventScript_1B1682, 1109, 0, 0
+ object_event 33, MAP_OBJ_GFX_ITEM_BALL, 0, 27, 0, 18, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route123_EventScript_1B1675, FLAG_ITEM_ROUTE123_3, 0, 0
+ object_event 34, MAP_OBJ_GFX_ITEM_BALL, 0, 75, 0, 9, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route123_EventScript_1B1682, FLAG_ITEM_ROUTE123_4, 0, 0
Route123_MapWarps:: @ 8384B28
- warp_def 22, 6, 0, 0, Route123_BerryMastersHouse
+ warp_def 22, 6, 0, 0, MAP_ROUTE123_BERRY_MASTERS_HOUSE
Route123_MapCoordEvents:: @ 8384B30
coord_event 90, 16, 3, 0, 21, 0, 0, 0x0
diff --git a/data/maps/events/Route123_BerryMastersHouse.inc b/data/maps/events/Route123_BerryMastersHouse.inc
index 183e19415..a17a04e19 100644
--- a/data/maps/events/Route123_BerryMastersHouse.inc
+++ b/data/maps/events/Route123_BerryMastersHouse.inc
@@ -3,8 +3,8 @@ Route123_BerryMastersHouse_MapObjects:: @ 8392D6C
object_event 2, MAP_OBJ_GFX_OLD_WOMAN_2, 0, 7, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, Route123_BerryMastersHouse_EventScript_163A64, 0, 0, 0
Route123_BerryMastersHouse_MapWarps:: @ 8392D9C
- warp_def 3, 7, 0, 0, Route123
- warp_def 4, 7, 0, 0, Route123
+ warp_def 3, 7, 0, 0, MAP_ROUTE123
+ warp_def 4, 7, 0, 0, MAP_ROUTE123
Route123_BerryMastersHouse_MapEvents:: @ 8392DAC
map_events Route123_BerryMastersHouse_MapObjects, Route123_BerryMastersHouse_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route124.inc b/data/maps/events/Route124.inc
index 83db7f24b..eb92f81a4 100644
--- a/data/maps/events/Route124.inc
+++ b/data/maps/events/Route124.inc
@@ -4,14 +4,14 @@ Route124_MapObjects:: @ 8384D10
object_event 3, MAP_OBJ_GFX_SWIMMER_F, 0, 14, 0, 27, 0, 1, 24, 0, 0, 1, 0, 3, 0, Route124_EventScript_151E26, 0, 0, 0
object_event 4, MAP_OBJ_GFX_SWIMMER_F, 0, 49, 0, 45, 0, 1, 24, 134, 0, 1, 0, 3, 0, Route124_EventScript_151E64, 0, 0, 0
object_event 5, MAP_OBJ_GFX_SWIMMER_M, 0, 60, 0, 74, 0, 1, 28, 7, 0, 1, 0, 2, 0, Route124_EventScript_151E7B, 0, 0, 0
- object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 28, 0, 12, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route124_EventScript_1B168F, 1092, 0, 0
- object_event 7, MAP_OBJ_GFX_ITEM_BALL, 0, 31, 0, 53, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route124_EventScript_1B169C, 1093, 0, 0
- object_event 8, MAP_OBJ_GFX_ITEM_BALL, 0, 58, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route124_EventScript_1B16A9, 1066, 0, 0
+ object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 28, 0, 12, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route124_EventScript_1B168F, FLAG_ITEM_ROUTE124_2, 0, 0
+ object_event 7, MAP_OBJ_GFX_ITEM_BALL, 0, 31, 0, 53, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route124_EventScript_1B169C, FLAG_ITEM_ROUTE124_3, 0, 0
+ object_event 8, MAP_OBJ_GFX_ITEM_BALL, 0, 58, 0, 11, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route124_EventScript_1B16A9, FLAG_ITEM_ROUTE124_1, 0, 0
object_event 9, MAP_OBJ_GFX_SWIMMER_F, 0, 18, 0, 44, 0, 1, 8, 17, 0, 1, 0, 0, 0, Route124_EventScript_151E92, 0, 0, 0
object_event 10, MAP_OBJ_GFX_TUBER_M_SWIMMING, 0, 17, 0, 44, 0, 1, 8, 17, 0, 1, 0, 0, 0, Route124_EventScript_151ED8, 0, 0, 0
Route124_MapWarps:: @ 8384E00
- warp_def 70, 48, 3, 0, Route124_DivingTreasureHuntersHouse
+ warp_def 70, 48, 3, 0, MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE
Route124_MapBGEvents:: @ 8384E08
bg_event 73, 48, 3, 0, 0, Route124_EventScript_151DEF
diff --git a/data/maps/events/Route124_DivingTreasureHuntersHouse.inc b/data/maps/events/Route124_DivingTreasureHuntersHouse.inc
new file mode 100755
index 000000000..17ec713de
--- /dev/null
+++ b/data/maps/events/Route124_DivingTreasureHuntersHouse.inc
@@ -0,0 +1,12 @@
+Route124_DivingTreasureHuntersHouse_MapObjects:: @ 839300C
+ object_event 1, MAP_OBJ_GFX_MAN_6, 0, 5, 0, 4, 0, 0, 9, 0, 0, 0, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_163E04, 0, 0, 0
+
+Route124_DivingTreasureHuntersHouse_MapWarps:: @ 8393024
+ warp_def 3, 8, 0, 0, MAP_ROUTE124
+ warp_def 4, 8, 0, 0, MAP_ROUTE124
+
+Route124_DivingTreasureHuntersHouse_MapBGEvents:: @ 8393034
+ bg_event 7, 1, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_164335
+
+Route124_DivingTreasureHuntersHouse_MapEvents:: @ 8393040
+ map_events Route124_DivingTreasureHuntersHouse_MapObjects, Route124_DivingTreasureHuntersHouse_MapWarps, 0x0, Route124_DivingTreasureHuntersHouse_MapBGEvents
diff --git a/data/maps/events/Route125.inc b/data/maps/events/Route125.inc
index 0c7d12643..585296ac3 100644
--- a/data/maps/events/Route125.inc
+++ b/data/maps/events/Route125.inc
@@ -8,7 +8,7 @@ Route125_MapObjects:: @ 8384E28
object_event 7, MAP_OBJ_GFX_LASS, 0, 21, 0, 21, 0, 3, 8, 17, 0, 1, 0, 0, 0, Route125_EventScript_151FE3, 0, 0, 0
Route125_MapWarps:: @ 8384ED0
- warp_def 22, 19, 0, 0, ShoalCave_LowTideEntranceRoom
+ warp_def 22, 19, 0, 0, MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM
Route125_MapBGEvents:: @ 8384ED8
bg_event 53, 10, 0, 8, 0, ITEM_ULTRA_BALL, 0, 0
diff --git a/data/maps/events/Route126.inc b/data/maps/events/Route126.inc
index 50d1dca52..a8855c41f 100644
--- a/data/maps/events/Route126.inc
+++ b/data/maps/events/Route126.inc
@@ -3,7 +3,7 @@ Route126_MapObjects:: @ 8384F1C
object_event 2, MAP_OBJ_GFX_SWIMMER_M, 0, 33, 0, 63, 0, 1, 28, 9, 0, 1, 0, 3, 0, Route126_EventScript_152025, 0, 0, 0
object_event 3, MAP_OBJ_GFX_SWIMMER_F, 0, 9, 0, 49, 0, 1, 7, 0, 0, 1, 0, 3, 0, Route126_EventScript_15203C, 0, 0, 0
object_event 4, MAP_OBJ_GFX_SWIMMER_F, 0, 64, 0, 44, 0, 1, 24, 0, 0, 1, 0, 3, 0, Route126_EventScript_152053, 0, 0, 0
- object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 14, 0, 1, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route126_EventScript_1B16B6, 1105, 0, 0
+ object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 14, 0, 1, 0, 3, 1, 17, 0, 0, 0, 0, 0, Route126_EventScript_1B16B6, FLAG_ITEM_ROUTE126_1, 0, 0
Route126_MapEvents:: @ 8384F94
map_events Route126_MapObjects, 0x0, 0x0, 0x0
diff --git a/data/maps/events/Route127.inc b/data/maps/events/Route127.inc
index b3744194e..d71b15c74 100644
--- a/data/maps/events/Route127.inc
+++ b/data/maps/events/Route127.inc
@@ -1,8 +1,8 @@
Route127_MapObjects:: @ 8384FA8
object_event 1, MAP_OBJ_GFX_SWIMMER_M, 0, 18, 0, 68, 0, 1, 14, 0, 0, 1, 0, 2, 0, Route127_EventScript_15207A, 0, 0, 0
object_event 2, MAP_OBJ_GFX_SWIMMER_F, 0, 45, 0, 44, 0, 1, 21, 0, 0, 1, 0, 4, 0, Route127_EventScript_152091, 0, 0, 0
- object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 10, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route127_EventScript_1B16C3, 1034, 0, 0
- object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 64, 0, 39, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route127_EventScript_1B16D0, 1035, 0, 0
+ object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 10, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route127_EventScript_1B16C3, FLAG_ITEM_ROUTE127_1, 0, 0
+ object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 64, 0, 39, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route127_EventScript_1B16D0, FLAG_ITEM_ROUTE127_2, 0, 0
object_event 5, MAP_OBJ_GFX_FISHERMAN, 0, 53, 0, 13, 0, 3, 7, 17, 0, 1, 0, 0, 0, Route127_EventScript_1520A8, 0, 0, 0
object_event 6, MAP_OBJ_GFX_FISHERMAN, 0, 52, 0, 25, 0, 3, 8, 17, 0, 1, 0, 0, 0, Route127_EventScript_1520D6, 0, 0, 0
object_event 7, MAP_OBJ_GFX_FISHERMAN, 0, 64, 0, 19, 0, 3, 10, 17, 0, 1, 0, 0, 0, Route127_EventScript_1520BF, 0, 0, 0
diff --git a/data/maps/events/Route128.inc b/data/maps/events/Route128.inc
index 74f99d02c..1f86907bd 100644
--- a/data/maps/events/Route128.inc
+++ b/data/maps/events/Route128.inc
@@ -1,9 +1,9 @@
Route128_MapObjects:: @ 83850D0
object_event 1, MAP_OBJ_GFX_SWIMMER_M, 0, 77, 0, 24, 0, 1, 48, 85, 0, 1, 0, 3, 0, Route128_EventScript_1522A4, 0, 0, 0
object_event 2, MAP_OBJ_GFX_SWIMMER_F, 0, 35, 0, 34, 0, 1, 28, 5, 0, 1, 0, 7, 0, Route128_EventScript_1522E2, 0, 0, 0
- object_event 3, MAP_OBJ_GFX_STEVEN, 0, 40, 0, 22, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 834, 0, 0
- object_event 4, 246, 0, 37, 0, 22, 0, 3, 9, 17, 0, 0, 0, 0, 0, 0x0, 944, 0, 0
- object_event 5, 247, 0, 38, 0, 21, 0, 3, 7, 17, 0, 0, 0, 0, 0, 0x0, 945, 0, 0
+ object_event 3, MAP_OBJ_GFX_STEVEN, 0, 40, 0, 22, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_STEVEN_ROUTE128, 0, 0
+ object_event 4, 246, 0, 37, 0, 22, 0, 3, 9, 17, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_EVIL_LEADER_ROUTE128, 0, 0
+ object_event 5, 247, 0, 38, 0, 21, 0, 3, 7, 17, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_OTHER_LEADER_ROUTE128, 0, 0
object_event 6, MAP_OBJ_GFX_FISHERMAN, 0, 63, 0, 28, 0, 3, 7, 17, 0, 1, 0, 0, 0, Route128_EventScript_15234E, 0, 0, 0
object_event 7, MAP_OBJ_GFX_MAN_4, 0, 24, 0, 8, 0, 3, 17, 17, 0, 1, 0, 2, 0, Route128_EventScript_152337, 0, 0, 0
object_event 8, MAP_OBJ_GFX_WOMAN_7, 0, 47, 0, 9, 0, 3, 10, 17, 0, 1, 0, 3, 0, Route128_EventScript_152320, 0, 0, 0
diff --git a/data/maps/events/Route130.inc b/data/maps/events/Route130.inc
index 009604d4b..027519c2d 100644
--- a/data/maps/events/Route130.inc
+++ b/data/maps/events/Route130.inc
@@ -1,7 +1,7 @@
Route130_MapObjects:: @ 838523C
object_event 1, MAP_OBJ_GFX_SWIMMER_M, 0, 7, 0, 26, 0, 1, 29, 99, 0, 1, 0, 3, 0, Route130_EventScript_152410, 0, 0, 0
object_event 2, MAP_OBJ_GFX_SWIMMER_F, 0, 68, 0, 22, 0, 1, 13, 17, 0, 1, 0, 3, 0, Route130_EventScript_152427, 0, 0, 0
- object_event 3, MAP_OBJ_GFX_BERRY_TREE, 0, 52, 0, 9, 0, 3, 12, 0, 0, 0, 0, 82, 0, S_BerryTree, 17, 0, 0
+ object_event 3, MAP_OBJ_GFX_BERRY_TREE, 0, 52, 0, 9, 0, 3, 12, 0, 0, 0, 0, 82, 0, S_BerryTree, FLAG_TEMP_11, 0, 0
Route130_MapEvents:: @ 8385284
map_events Route130_MapObjects, 0x0, 0x0, 0x0
diff --git a/data/maps/events/Route131.inc b/data/maps/events/Route131.inc
index ed1a33768..d387233d2 100644
--- a/data/maps/events/Route131.inc
+++ b/data/maps/events/Route131.inc
@@ -7,7 +7,7 @@ Route131_MapObjects:: @ 8385298
object_event 6, MAP_OBJ_GFX_TUBER_M_SWIMMING, 0, 8, 0, 16, 0, 1, 8, 17, 0, 1, 0, 0, 0, Route131_EventScript_1524C9, 0, 0, 0
Route131_MapWarps:: @ 8385328
- warp_def 36, 6, 3, 0, SkyPillar_Entrance
+ warp_def 36, 6, 3, 0, MAP_SKY_PILLAR_ENTRANCE
Route131_MapEvents:: @ 8385330
map_events Route131_MapObjects, Route131_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Route132.inc b/data/maps/events/Route132.inc
index b19e96363..97fc3d5db 100644
--- a/data/maps/events/Route132.inc
+++ b/data/maps/events/Route132.inc
@@ -1,7 +1,7 @@
Route132_MapObjects:: @ 8385344
object_event 1, MAP_OBJ_GFX_SWIMMER_M, 0, 7, 0, 3, 0, 1, 46, 51, 0, 1, 0, 2, 0, Route132_EventScript_1524E5, 0, 0, 0
object_event 2, MAP_OBJ_GFX_SWIMMER_F, 0, 41, 0, 16, 0, 1, 49, 68, 0, 1, 0, 2, 0, Route132_EventScript_1524FC, 0, 0, 0
- object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 10, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route132_EventScript_1B16DD, 1036, 0, 0
+ object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 10, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route132_EventScript_1B16DD, FLAG_ITEM_ROUTE132_1, 0, 0
object_event 4, MAP_OBJ_GFX_BLACK_BELT, 0, 46, 0, 28, 0, 3, 10, 0, 0, 1, 0, 4, 0, Route132_EventScript_15252A, 0, 0, 0
object_event 5, MAP_OBJ_GFX_FISHERMAN, 0, 9, 0, 16, 0, 3, 8, 0, 0, 1, 0, 1, 0, Route132_EventScript_152513, 0, 0, 0
diff --git a/data/maps/events/Route133.inc b/data/maps/events/Route133.inc
index 1461293e8..3d73ef1c9 100644
--- a/data/maps/events/Route133.inc
+++ b/data/maps/events/Route133.inc
@@ -2,8 +2,8 @@ Route133_MapObjects:: @ 83853D0
object_event 1, MAP_OBJ_GFX_SWIMMER_M, 0, 6, 0, 4, 0, 1, 1, 0, 0, 1, 0, 3, 0, Route133_EventScript_152542, 0, 0, 0
object_event 2, MAP_OBJ_GFX_SWIMMER_F, 0, 68, 0, 24, 0, 1, 8, 0, 0, 1, 0, 3, 0, Route133_EventScript_152570, 0, 0, 0
object_event 3, MAP_OBJ_GFX_SWIMMER_F, 0, 69, 0, 24, 0, 1, 8, 0, 0, 1, 0, 3, 0, Route133_EventScript_152559, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 58, 0, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route133_EventScript_1B16EA, 1037, 0, 0
- object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 8, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route133_EventScript_1B16F7, 1038, 0, 0
+ object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 58, 0, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route133_EventScript_1B16EA, FLAG_ITEM_ROUTE133_1, 0, 0
+ object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 8, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, Route133_EventScript_1B16F7, FLAG_ITEM_ROUTE133_2, 0, 0
object_event 6, MAP_OBJ_GFX_MAN_6, 0, 37, 0, 16, 0, 3, 13, 17, 0, 1, 0, 1, 0, Route133_EventScript_15259E, 0, 0, 0
object_event 7, MAP_OBJ_GFX_MAN_4, 0, 7, 0, 14, 0, 3, 10, 0, 0, 1, 0, 4, 0, Route133_EventScript_152587, 0, 0, 0
diff --git a/data/maps/events/RustboroCity.inc b/data/maps/events/RustboroCity.inc
index 4bbf0a6a2..c16bfcdb0 100644
--- a/data/maps/events/RustboroCity.inc
+++ b/data/maps/events/RustboroCity.inc
@@ -7,26 +7,26 @@ RustboroCity_MapObjects:: @ 837FD14
object_event 6, MAP_OBJ_GFX_MAN_4, 0, 26, 0, 23, 0, 3, 1, 17, 0, 0, 0, 0, 0, RustboroCity_EventScript_14C3BA, 0, 0, 0
object_event 7, MAP_OBJ_GFX_LITTLE_BOY_2, 0, 24, 0, 51, 0, 3, 10, 0, 0, 0, 0, 0, 0, RustboroCity_EventScript_14C449, 0, 0, 0
object_event 8, MAP_OBJ_GFX_LITTLE_GIRL_2, 0, 25, 0, 51, 0, 3, 9, 0, 0, 0, 0, 0, 0, RustboroCity_EventScript_14C45F, 0, 0, 0
- object_event 9, MAP_OBJ_GFX_MAN_2, 0, 30, 0, 10, 0, 3, 10, 17, 0, 0, 0, 0, 0, RustboroCity_EventScript_14C5FF, 732, 0, 0
- object_event 10, 241, 0, 13, 0, 21, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, 731, 0, 0
+ object_event 9, MAP_OBJ_GFX_MAN_2, 0, 30, 0, 10, 0, 3, 10, 17, 0, 0, 0, 0, 0, RustboroCity_EventScript_14C5FF, FLAG_HIDE_DEVON_RUSTBORO, 0, 0
+ object_event 10, 241, 0, 13, 0, 21, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_GRUNT_RUSTBORO, 0, 0
object_event 11, MAP_OBJ_GFX_MAN_7, 0, 13, 0, 34, 0, 3, 2, 17, 0, 0, 0, 0, 0, RustboroCity_EventScript_14C3A5, 0, 0, 0
- object_event 12, MAP_OBJ_GFX_ITEM_BALL, 0, 36, 0, 51, 0, 3, 1, 0, 0, 0, 0, 0, 0, RustboroCity_EventScript_1B172B, 1041, 0, 0
+ object_event 12, MAP_OBJ_GFX_ITEM_BALL, 0, 36, 0, 51, 0, 3, 1, 0, 0, 0, 0, 0, 0, RustboroCity_EventScript_1B172B, FLAG_ITEM_RUSTBORO_1, 0, 0
object_event 13, MAP_OBJ_GFX_MAN_5, 0, 19, 0, 27, 0, 3, 8, 16, 0, 0, 0, 0, 0, RustboroCity_EventScript_14C475, 0, 0, 0
- object_event 14, 240, 0, 16, 0, 50, 0, 3, 1, 17, 0, 0, 0, 0, 0, RustboroCity_EventScript_14C8DA, 814, 0, 0
+ object_event 14, 240, 0, 16, 0, 50, 0, 3, 1, 17, 0, 0, 0, 0, 0, RustboroCity_EventScript_14C8DA, FLAG_HIDE_RIVAL_RUSTBORO, 0, 0
RustboroCity_MapWarps:: @ 837FE64
- warp_def 27, 19, 0, 0, RustboroCity_Gym
- warp_def 13, 30, 0, 0, RustboroCity_Flat1_1F
- warp_def 16, 45, 0, 0, RustboroCity_Mart
- warp_def 16, 38, 0, 0, RustboroCity_PokemonCenter_1F
- warp_def 27, 34, 0, 0, RustboroCity_PokemonSchool
- warp_def 11, 15, 0, 0, RustboroCity_DevonCorp_1F
- warp_def 12, 15, 0, 1, RustboroCity_DevonCorp_1F
- warp_def 33, 19, 0, 0, RustboroCity_House1
- warp_def 9, 38, 0, 0, RustboroCity_CuttersHouse
- warp_def 30, 28, 0, 0, RustboroCity_House2
- warp_def 5, 51, 0, 0, RustboroCity_Flat2_1F
- warp_def 26, 46, 0, 0, RustboroCity_House3
+ warp_def 27, 19, 0, 0, MAP_RUSTBORO_CITY_GYM
+ warp_def 13, 30, 0, 0, MAP_RUSTBORO_CITY_FLAT1_1F
+ warp_def 16, 45, 0, 0, MAP_RUSTBORO_CITY_MART
+ warp_def 16, 38, 0, 0, MAP_RUSTBORO_CITY_POKEMON_CENTER_1F
+ warp_def 27, 34, 0, 0, MAP_RUSTBORO_CITY_POKEMON_SCHOOL
+ warp_def 11, 15, 0, 0, MAP_RUSTBORO_CITY_DEVON_CORP_1F
+ warp_def 12, 15, 0, 1, MAP_RUSTBORO_CITY_DEVON_CORP_1F
+ warp_def 33, 19, 0, 0, MAP_RUSTBORO_CITY_HOUSE1
+ warp_def 9, 38, 0, 0, MAP_RUSTBORO_CITY_CUTTERS_HOUSE
+ warp_def 30, 28, 0, 0, MAP_RUSTBORO_CITY_HOUSE2
+ warp_def 5, 51, 0, 0, MAP_RUSTBORO_CITY_FLAT2_1F
+ warp_def 26, 46, 0, 0, MAP_RUSTBORO_CITY_HOUSE3
RustboroCity_MapCoordEvents:: @ 837FEC4
coord_event 23, 20, 3, 0, 0x405a, 1, 0, RustboroCity_EventScript_14C481
diff --git a/data/maps/events/RustboroCity_CuttersHouse.inc b/data/maps/events/RustboroCity_CuttersHouse.inc
index b38fc9afe..e26127f38 100644
--- a/data/maps/events/RustboroCity_CuttersHouse.inc
+++ b/data/maps/events/RustboroCity_CuttersHouse.inc
@@ -3,8 +3,8 @@ RustboroCity_CuttersHouse_MapObjects:: @ 8388D9C
object_event 2, MAP_OBJ_GFX_LASS, 0, 9, 0, 2, 0, 3, 5, 1, 0, 0, 0, 0, 0, RustboroCity_CuttersHouse_EventScript_157D5D, 0, 0, 0
RustboroCity_CuttersHouse_MapWarps:: @ 8388DCC
- warp_def 5, 8, 0, 8, RustboroCity
- warp_def 6, 8, 0, 8, RustboroCity
+ warp_def 5, 8, 0, 8, MAP_RUSTBORO_CITY
+ warp_def 6, 8, 0, 8, MAP_RUSTBORO_CITY
RustboroCity_CuttersHouse_MapEvents:: @ 8388DDC
map_events RustboroCity_CuttersHouse_MapObjects, RustboroCity_CuttersHouse_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/RustboroCity_DevonCorp_1F.inc b/data/maps/events/RustboroCity_DevonCorp_1F.inc
index 72437229c..165089ee7 100644
--- a/data/maps/events/RustboroCity_DevonCorp_1F.inc
+++ b/data/maps/events/RustboroCity_DevonCorp_1F.inc
@@ -4,9 +4,9 @@ RustboroCity_DevonCorp_1F_MapObjects:: @ 838880C
object_event 3, MAP_OBJ_GFX_WOMAN_4, 0, 5, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, RustboroCity_DevonCorp_1F_EventScript_15748F, 0, 0, 0
RustboroCity_DevonCorp_1F_MapWarps:: @ 8388854
- warp_def 5, 8, 0, 5, RustboroCity
- warp_def 6, 8, 0, 6, RustboroCity
- warp_def 14, 1, 0, 0, RustboroCity_DevonCorp_2F
+ warp_def 5, 8, 0, 5, MAP_RUSTBORO_CITY
+ warp_def 6, 8, 0, 6, MAP_RUSTBORO_CITY
+ warp_def 14, 1, 0, 0, MAP_RUSTBORO_CITY_DEVON_CORP_2F
RustboroCity_DevonCorp_1F_MapEvents:: @ 838886C
map_events RustboroCity_DevonCorp_1F_MapObjects, RustboroCity_DevonCorp_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/RustboroCity_DevonCorp_2F.inc b/data/maps/events/RustboroCity_DevonCorp_2F.inc
index 3ca57bf10..93335d22e 100644
--- a/data/maps/events/RustboroCity_DevonCorp_2F.inc
+++ b/data/maps/events/RustboroCity_DevonCorp_2F.inc
@@ -6,8 +6,8 @@ RustboroCity_DevonCorp_2F_MapObjects:: @ 8388880
object_event 5, MAP_OBJ_GFX_SCIENTIST_1, 0, 14, 0, 8, 0, 3, 7, 17, 0, 0, 0, 0, 0, RustboroCity_DevonCorp_2F_EventScript_157564, 0, 0, 0
RustboroCity_DevonCorp_2F_MapWarps:: @ 83888F8
- warp_def 14, 1, 0, 2, RustboroCity_DevonCorp_1F
- warp_def 2, 1, 0, 0, RustboroCity_DevonCorp_3F
+ warp_def 14, 1, 0, 2, MAP_RUSTBORO_CITY_DEVON_CORP_1F
+ warp_def 2, 1, 0, 0, MAP_RUSTBORO_CITY_DEVON_CORP_3F
RustboroCity_DevonCorp_2F_MapEvents:: @ 8388908
map_events RustboroCity_DevonCorp_2F_MapObjects, RustboroCity_DevonCorp_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/RustboroCity_DevonCorp_3F.inc b/data/maps/events/RustboroCity_DevonCorp_3F.inc
index f0f8fadec..41f37c7b1 100644
--- a/data/maps/events/RustboroCity_DevonCorp_3F.inc
+++ b/data/maps/events/RustboroCity_DevonCorp_3F.inc
@@ -1,10 +1,10 @@
RustboroCity_DevonCorp_3F_MapObjects:: @ 838891C
object_event 1, MAP_OBJ_GFX_GENTLEMAN, 0, 17, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, RustboroCity_DevonCorp_3F_EventScript_15783B, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_MAN_2, 0, 3, 0, 5, 0, 3, 10, 0, 0, 0, 0, 0, 0, RustboroCity_DevonCorp_3F_EventScript_1578B0, 949, 0, 0
+ object_event 2, MAP_OBJ_GFX_MAN_2, 0, 3, 0, 5, 0, 3, 10, 0, 0, 0, 0, 0, 0, RustboroCity_DevonCorp_3F_EventScript_1578B0, FLAG_HIDE_EMPLOYEE_DEVON_CORP_3F, 0, 0
object_event 3, MAP_OBJ_GFX_GENTLEMAN, 0, 15, 0, 5, 0, 3, 76, 17, 0, 0, 0, 0, 0, RustboroCity_DevonCorp_3F_EventScript_15783B, 0, 0, 0
RustboroCity_DevonCorp_3F_MapWarps:: @ 8388964
- warp_def 2, 1, 0, 1, RustboroCity_DevonCorp_2F
+ warp_def 2, 1, 0, 1, MAP_RUSTBORO_CITY_DEVON_CORP_2F
RustboroCity_DevonCorp_3F_MapBGEvents:: @ 838896C
bg_event 1, 5, 3, 0, 0, RustboroCity_DevonCorp_3F_EventScript_1578CF
diff --git a/data/maps/events/RustboroCity_Flat1_1F.inc b/data/maps/events/RustboroCity_Flat1_1F.inc
index 9c637f0fb..d44df7638 100644
--- a/data/maps/events/RustboroCity_Flat1_1F.inc
+++ b/data/maps/events/RustboroCity_Flat1_1F.inc
@@ -3,9 +3,9 @@ RustboroCity_Flat1_1F_MapObjects:: @ 8388CB8
object_event 2, MAP_OBJ_GFX_WOMAN_7, 0, 12, 0, 4, 0, 3, 9, 0, 0, 0, 0, 0, 0, RustboroCity_Flat1_1F_EventScript_157C69, 0, 0, 0
RustboroCity_Flat1_1F_MapWarps:: @ 8388CE8
- warp_def 6, 7, 0, 1, RustboroCity
- warp_def 7, 7, 0, 1, RustboroCity
- warp_def 2, 1, 0, 0, RustboroCity_Flat1_2F
+ warp_def 6, 7, 0, 1, MAP_RUSTBORO_CITY
+ warp_def 7, 7, 0, 1, MAP_RUSTBORO_CITY
+ warp_def 2, 1, 0, 0, MAP_RUSTBORO_CITY_FLAT1_2F
RustboroCity_Flat1_1F_MapEvents:: @ 8388D00
map_events RustboroCity_Flat1_1F_MapObjects, RustboroCity_Flat1_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/RustboroCity_Flat1_2F.inc b/data/maps/events/RustboroCity_Flat1_2F.inc
index 2d1d187e9..91f1d2f20 100644
--- a/data/maps/events/RustboroCity_Flat1_2F.inc
+++ b/data/maps/events/RustboroCity_Flat1_2F.inc
@@ -2,7 +2,7 @@ RustboroCity_Flat1_2F_MapObjects:: @ 8388D14
object_event 1, MAP_OBJ_GFX_WOMAN_2, 0, 8, 0, 6, 0, 3, 5, 19, 0, 0, 0, 0, 0, RustboroCity_Flat1_2F_EventScript_157C73, 0, 0, 0
RustboroCity_Flat1_2F_MapWarps:: @ 8388D2C
- warp_def 2, 1, 0, 2, RustboroCity_Flat1_1F
+ warp_def 2, 1, 0, 2, MAP_RUSTBORO_CITY_FLAT1_1F
RustboroCity_Flat1_2F_MapEvents:: @ 8388D34
map_events RustboroCity_Flat1_2F_MapObjects, RustboroCity_Flat1_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/RustboroCity_Flat2_1F.inc b/data/maps/events/RustboroCity_Flat2_1F.inc
index bd9f4904e..17c11b21f 100644
--- a/data/maps/events/RustboroCity_Flat2_1F.inc
+++ b/data/maps/events/RustboroCity_Flat2_1F.inc
@@ -3,9 +3,9 @@ RustboroCity_Flat2_1F_MapObjects:: @ 8388E44
object_event 2, MAP_OBJ_GFX_OLD_WOMAN_2, 0, 8, 0, 4, 0, 3, 10, 0, 0, 0, 0, 0, 0, RustboroCity_Flat2_1F_EventScript_157D7A, 0, 0, 0
RustboroCity_Flat2_1F_MapWarps:: @ 8388E74
- warp_def 2, 8, 0, 10, RustboroCity
- warp_def 3, 8, 0, 10, RustboroCity
- warp_def 3, 1, 0, 0, RustboroCity_Flat2_2F
+ warp_def 2, 8, 0, 10, MAP_RUSTBORO_CITY
+ warp_def 3, 8, 0, 10, MAP_RUSTBORO_CITY
+ warp_def 3, 1, 0, 0, MAP_RUSTBORO_CITY_FLAT2_2F
RustboroCity_Flat2_1F_MapEvents:: @ 8388E8C
map_events RustboroCity_Flat2_1F_MapObjects, RustboroCity_Flat2_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/RustboroCity_Flat2_2F.inc b/data/maps/events/RustboroCity_Flat2_2F.inc
index 988e3797d..b881e1bd2 100644
--- a/data/maps/events/RustboroCity_Flat2_2F.inc
+++ b/data/maps/events/RustboroCity_Flat2_2F.inc
@@ -3,8 +3,8 @@ RustboroCity_Flat2_2F_MapObjects:: @ 8388EA0
object_event 2, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 7, 0, 3, 0, 3, 5, 2, 0, 0, 0, 0, 0, RustboroCity_Flat2_2F_EventScript_157DA0, 0, 0, 0
RustboroCity_Flat2_2F_MapWarps:: @ 8388ED0
- warp_def 3, 1, 0, 2, RustboroCity_Flat2_1F
- warp_def 1, 1, 0, 0, RustboroCity_Flat2_3F
+ warp_def 3, 1, 0, 2, MAP_RUSTBORO_CITY_FLAT2_1F
+ warp_def 1, 1, 0, 0, MAP_RUSTBORO_CITY_FLAT2_3F
RustboroCity_Flat2_2F_MapEvents:: @ 8388EE0
map_events RustboroCity_Flat2_2F_MapObjects, RustboroCity_Flat2_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/RustboroCity_Flat2_3F.inc b/data/maps/events/RustboroCity_Flat2_3F.inc
index 3c09ce553..4a00bb8f4 100644
--- a/data/maps/events/RustboroCity_Flat2_3F.inc
+++ b/data/maps/events/RustboroCity_Flat2_3F.inc
@@ -3,7 +3,7 @@ RustboroCity_Flat2_3F_MapObjects:: @ 8388EF4
object_event 2, MAP_OBJ_GFX_WOMAN_1, 0, 12, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, RustboroCity_Flat2_3F_EventScript_157DE3, 0, 0, 0
RustboroCity_Flat2_3F_MapWarps:: @ 8388F24
- warp_def 1, 1, 0, 1, RustboroCity_Flat2_2F
+ warp_def 1, 1, 0, 1, MAP_RUSTBORO_CITY_FLAT2_2F
RustboroCity_Flat2_3F_MapEvents:: @ 8388F2C
map_events RustboroCity_Flat2_3F_MapObjects, RustboroCity_Flat2_3F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/RustboroCity_Gym.inc b/data/maps/events/RustboroCity_Gym.inc
index cfe9f420d..e77b55b7f 100644
--- a/data/maps/events/RustboroCity_Gym.inc
+++ b/data/maps/events/RustboroCity_Gym.inc
@@ -5,8 +5,8 @@ RustboroCity_Gym_MapObjects:: @ 8388998
object_event 4, MAP_OBJ_GFX_MAN_2, 0, 3, 0, 17, 0, 3, 8, 0, 0, 0, 0, 0, 0, RustboroCity_Gym_EventScript_15798E, 0, 0, 0
RustboroCity_Gym_MapWarps:: @ 83889F8
- warp_def 5, 18, 0, 0, RustboroCity
- warp_def 6, 18, 0, 0, RustboroCity
+ warp_def 5, 18, 0, 0, MAP_RUSTBORO_CITY
+ warp_def 6, 18, 0, 0, MAP_RUSTBORO_CITY
RustboroCity_Gym_MapBGEvents:: @ 8388A08
bg_event 2, 17, 0, 1, 0, RustboroCity_Gym_EventScript_1579AD
diff --git a/data/maps/events/RustboroCity_House1.inc b/data/maps/events/RustboroCity_House1.inc
index 8e1cb1c7e..a6471da2e 100644
--- a/data/maps/events/RustboroCity_House1.inc
+++ b/data/maps/events/RustboroCity_House1.inc
@@ -3,8 +3,8 @@ RustboroCity_House1_MapObjects:: @ 8388D48
object_event 2, MAP_OBJ_GFX_HIKER, 0, 9, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, RustboroCity_House1_EventScript_157D1D, 0, 0, 0
RustboroCity_House1_MapWarps:: @ 8388D78
- warp_def 5, 7, 0, 7, RustboroCity
- warp_def 6, 7, 0, 7, RustboroCity
+ warp_def 5, 7, 0, 7, MAP_RUSTBORO_CITY
+ warp_def 6, 7, 0, 7, MAP_RUSTBORO_CITY
RustboroCity_House1_MapEvents:: @ 8388D88
map_events RustboroCity_House1_MapObjects, RustboroCity_House1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/RustboroCity_House2.inc b/data/maps/events/RustboroCity_House2.inc
index 33159faa4..5cdb4fc6c 100644
--- a/data/maps/events/RustboroCity_House2.inc
+++ b/data/maps/events/RustboroCity_House2.inc
@@ -3,8 +3,8 @@ RustboroCity_House2_MapObjects:: @ 8388DF0
object_event 2, MAP_OBJ_GFX_LITTLE_GIRL_2, 0, 4, 0, 5, 0, 3, 7, 0, 0, 0, 0, 0, 0, RustboroCity_House2_EventScript_157D70, 0, 0, 0
RustboroCity_House2_MapWarps:: @ 8388E20
- warp_def 5, 8, 0, 9, RustboroCity
- warp_def 6, 8, 0, 9, RustboroCity
+ warp_def 5, 8, 0, 9, MAP_RUSTBORO_CITY
+ warp_def 6, 8, 0, 9, MAP_RUSTBORO_CITY
RustboroCity_House2_MapEvents:: @ 8388E30
map_events RustboroCity_House2_MapObjects, RustboroCity_House2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/RustboroCity_House3.inc b/data/maps/events/RustboroCity_House3.inc
index 696350f00..96c2f2699 100644
--- a/data/maps/events/RustboroCity_House3.inc
+++ b/data/maps/events/RustboroCity_House3.inc
@@ -4,8 +4,8 @@ RustboroCity_House3_MapObjects:: @ 8388F40
object_event 3, MAP_OBJ_GFX_PIKACHU, 0, 4, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, RustboroCity_House3_EventScript_157DFF, 0, 0, 0
RustboroCity_House3_MapWarps:: @ 8388F88
- warp_def 5, 8, 0, 11, RustboroCity
- warp_def 6, 8, 0, 11, RustboroCity
+ warp_def 5, 8, 0, 11, MAP_RUSTBORO_CITY
+ warp_def 6, 8, 0, 11, MAP_RUSTBORO_CITY
RustboroCity_House3_MapEvents:: @ 8388F98
map_events RustboroCity_House3_MapObjects, RustboroCity_House3_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/RustboroCity_Mart.inc b/data/maps/events/RustboroCity_Mart.inc
index 3949dcd2e..b95aa32af 100644
--- a/data/maps/events/RustboroCity_Mart.inc
+++ b/data/maps/events/RustboroCity_Mart.inc
@@ -5,8 +5,8 @@ RustboroCity_Mart_MapObjects:: @ 8388C34
object_event 4, MAP_OBJ_GFX_BUG_CATCHER, 0, 8, 0, 2, 0, 3, 7, 17, 0, 0, 0, 0, 0, RustboroCity_Mart_EventScript_157C56, 0, 0, 0
RustboroCity_Mart_MapWarps:: @ 8388C94
- warp_def 3, 7, 0, 2, RustboroCity
- warp_def 4, 7, 0, 2, RustboroCity
+ warp_def 3, 7, 0, 2, MAP_RUSTBORO_CITY
+ warp_def 4, 7, 0, 2, MAP_RUSTBORO_CITY
RustboroCity_Mart_MapEvents:: @ 8388CA4
map_events RustboroCity_Mart_MapObjects, RustboroCity_Mart_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/RustboroCity_PokemonCenter_1F.inc b/data/maps/events/RustboroCity_PokemonCenter_1F.inc
index a0e7a3f76..83655d001 100644
--- a/data/maps/events/RustboroCity_PokemonCenter_1F.inc
+++ b/data/maps/events/RustboroCity_PokemonCenter_1F.inc
@@ -5,9 +5,9 @@ RustboroCity_PokemonCenter_1F_MapObjects:: @ 8388B24
object_event 4, MAP_OBJ_GFX_GIRL_3, 0, 10, 0, 6, 0, 3, 10, 0, 0, 0, 0, 0, 0, RustboroCity_PokemonCenter_1F_EventScript_157BA8, 0, 0, 0
RustboroCity_PokemonCenter_1F_MapWarps:: @ 8388B84
- warp_def 7, 8, 3, 3, RustboroCity
- warp_def 6, 8, 3, 3, RustboroCity
- warp_def 1, 6, 4, 0, RustboroCity_PokemonCenter_2F
+ warp_def 7, 8, 3, 3, MAP_RUSTBORO_CITY
+ warp_def 6, 8, 3, 3, MAP_RUSTBORO_CITY
+ warp_def 1, 6, 4, 0, MAP_RUSTBORO_CITY_POKEMON_CENTER_2F
RustboroCity_PokemonCenter_1F_MapEvents:: @ 8388B9C
map_events RustboroCity_PokemonCenter_1F_MapObjects, RustboroCity_PokemonCenter_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/RustboroCity_PokemonCenter_2F.inc b/data/maps/events/RustboroCity_PokemonCenter_2F.inc
index c75817126..d0c39d80f 100644
--- a/data/maps/events/RustboroCity_PokemonCenter_2F.inc
+++ b/data/maps/events/RustboroCity_PokemonCenter_2F.inc
@@ -4,11 +4,11 @@ RustboroCity_PokemonCenter_2F_MapObjects:: @ 8388BB0
object_event 3, MAP_OBJ_GFX_TEALA, 0, 10, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, RustboroCity_PokemonCenter_2F_EventScript_157BCD, 0, 0, 0
RustboroCity_PokemonCenter_2F_MapWarps:: @ 8388BF8
- warp_def 1, 5, 4, 2, RustboroCity_PokemonCenter_1F
- warp_def 5, 1, 0, 0, SingleBattleColosseum
- warp_def 8, 1, 0, 0, TradeCenter
- warp_def 11, 1, 0, 0, RecordCorner
- warp_def 0, 0, 0, 0, DoubleBattleColosseum
+ warp_def 1, 5, 4, 2, MAP_RUSTBORO_CITY_POKEMON_CENTER_1F
+ warp_def 5, 1, 0, 0, MAP_SINGLE_BATTLE_COLOSSEUM
+ warp_def 8, 1, 0, 0, MAP_TRADE_CENTER
+ warp_def 11, 1, 0, 0, MAP_RECORD_CORNER
+ warp_def 0, 0, 0, 0, MAP_DOUBLE_BATTLE_COLOSSEUM
RustboroCity_PokemonCenter_2F_MapEvents:: @ 8388C20
map_events RustboroCity_PokemonCenter_2F_MapObjects, RustboroCity_PokemonCenter_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/RustboroCity_PokemonSchool.inc b/data/maps/events/RustboroCity_PokemonSchool.inc
index 5ae481bad..ef873edb8 100644
--- a/data/maps/events/RustboroCity_PokemonSchool.inc
+++ b/data/maps/events/RustboroCity_PokemonSchool.inc
@@ -7,8 +7,8 @@ RustboroCity_PokemonSchool_MapObjects:: @ 8388A34
object_event 6, MAP_OBJ_GFX_GENTLEMAN, 0, 5, 0, 3, 0, 3, 8, 17, 0, 0, 0, 0, 0, RustboroCity_PokemonSchool_EventScript_157ACE, 0, 0, 0
RustboroCity_PokemonSchool_MapWarps:: @ 8388AC4
- warp_def 5, 10, 0, 4, RustboroCity
- warp_def 6, 10, 0, 4, RustboroCity
+ warp_def 5, 10, 0, 4, MAP_RUSTBORO_CITY
+ warp_def 6, 10, 0, 4, MAP_RUSTBORO_CITY
RustboroCity_PokemonSchool_MapBGEvents:: @ 8388AD4
bg_event 5, 2, 0, 0, 0, RustboroCity_PokemonSchool_EventScript_1579E2
diff --git a/data/maps/events/RusturfTunnel.inc b/data/maps/events/RusturfTunnel.inc
index ef1559687..4c25d2131 100644
--- a/data/maps/events/RusturfTunnel.inc
+++ b/data/maps/events/RusturfTunnel.inc
@@ -1,19 +1,19 @@
RusturfTunnel_MapObjects:: @ 838BD2C
- object_event 1, MAP_OBJ_GFX_BLACK_BELT, 0, 23, 0, 5, 0, 3, 10, 0, 0, 0, 0, 0, 0, RusturfTunnel_EventScript_15C799, 807, 0, 0
- object_event 2, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 24, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 931, 0, 0
- object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 3, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, RusturfTunnel_EventScript_1B1786, 1048, 0, 0
- object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 30, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, RusturfTunnel_EventScript_1B1793, 1049, 0, 0
- object_event 5, MAP_OBJ_GFX_OLD_MAN_1, 0, 5, 0, 4, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, 879, 0, 0
- object_event 6, 241, 0, 14, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, RusturfTunnel_EventScript_15C9EA, 878, 0, 0
- object_event 7, MAP_OBJ_GFX_WINGULL, 0, 14, 0, 4, 0, 3, 9, 0, 0, 0, 0, 0, 0, RusturfTunnel_EventScript_15C9D7, 880, 0, 0
- object_event 8, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 24, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, S_BreakableRock, 932, 0, 0
+ object_event 1, MAP_OBJ_GFX_BLACK_BELT, 0, 23, 0, 5, 0, 3, 10, 0, 0, 0, 0, 0, 0, RusturfTunnel_EventScript_15C799, FLAG_HIDE_BOYFRIEND_RUSTURF_TUNNEL, 0, 0
+ object_event 2, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 24, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1, 0, 0
+ object_event 3, MAP_OBJ_GFX_ITEM_BALL, 0, 3, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, RusturfTunnel_EventScript_1B1786, FLAG_ITEM_RUSTURF_TUNNEL_1, 0, 0
+ object_event 4, MAP_OBJ_GFX_ITEM_BALL, 0, 30, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, RusturfTunnel_EventScript_1B1793, FLAG_ITEM_RUSTURF_TUNNEL_2, 0, 0
+ object_event 5, MAP_OBJ_GFX_OLD_MAN_1, 0, 5, 0, 4, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_BRINEY_RUSTURF_TUNNEL, 0, 0
+ object_event 6, 241, 0, 14, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, RusturfTunnel_EventScript_15C9EA, FLAG_HIDE_GRUNT_RUSTURF_TUNNEL, 0, 0
+ object_event 7, MAP_OBJ_GFX_WINGULL, 0, 14, 0, 4, 0, 3, 9, 0, 0, 0, 0, 0, 0, RusturfTunnel_EventScript_15C9D7, FLAG_HIDE_PEEKO_RUSTURF_TUNNEL, 0, 0
+ object_event 8, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 24, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2, 0, 0
object_event 9, MAP_OBJ_GFX_HIKER, 0, 32, 0, 13, 0, 3, 9, 17, 0, 1, 0, 3, 0, RusturfTunnel_EventScript_15CACD, 0, 0, 0
- object_event 10, MAP_OBJ_GFX_WOMAN_3, 0, 25, 0, 4, 0, 3, 9, 17, 0, 0, 0, 0, 0, RusturfTunnel_EventScript_15C782, 983, 0, 0
+ object_event 10, MAP_OBJ_GFX_WOMAN_3, 0, 25, 0, 4, 0, 3, 9, 17, 0, 0, 0, 0, 0, RusturfTunnel_EventScript_15C782, FLAG_HIDE_GIRLFRIEND_RUSTURF_TUNNEL, 0, 0
RusturfTunnel_MapWarps:: @ 838BE1C
- warp_def 4, 10, 3, 0, Route116
- warp_def 29, 16, 3, 4, VerdanturfTown
- warp_def 18, 20, 3, 2, Route116
+ warp_def 4, 10, 3, 0, MAP_ROUTE116
+ warp_def 29, 16, 3, 4, MAP_VERDANTURF_TOWN
+ warp_def 18, 20, 3, 2, MAP_ROUTE116
RusturfTunnel_MapCoordEvents:: @ 838BE34
coord_event 23, 4, 3, 0, 0, 0, 0, RusturfTunnel_EventScript_15C999
diff --git a/data/maps/events/SSTidalCorridor.inc b/data/maps/events/SSTidalCorridor.inc
index b7eb1eb8f..9ca3db288 100644
--- a/data/maps/events/SSTidalCorridor.inc
+++ b/data/maps/events/SSTidalCorridor.inc
@@ -1,19 +1,19 @@
SSTidalCorridor_MapObjects:: @ 83916F8
object_event 1, MAP_OBJ_GFX_SAILOR, 0, 1, 0, 11, 0, 3, 7, 0, 0, 0, 0, 0, 0, SSTidalCorridor_EventScript_15FDD6, 0, 0, 0
object_event 2, MAP_OBJ_GFX_SAILOR, 0, 16, 0, 7, 0, 3, 3, 32, 0, 0, 0, 0, 0, SSTidalCorridor_EventScript_15FE60, 0, 0, 0
- object_event 3, MAP_OBJ_GFX_OLD_MAN_1, 0, 9, 0, 2, 0, 3, 8, 17, 0, 0, 0, 0, 0, SSTidalCorridor_EventScript_15FD96, 950, 0, 0
- object_event 4, MAP_OBJ_GFX_WINGULL, 0, 7, 0, 2, 0, 3, 1, 17, 0, 0, 0, 0, 0, SSTidalCorridor_EventScript_15FD9F, 950, 0, 0
+ object_event 3, MAP_OBJ_GFX_OLD_MAN_1, 0, 9, 0, 2, 0, 3, 8, 17, 0, 0, 0, 0, 0, SSTidalCorridor_EventScript_15FD96, FLAG_HIDE_BRINEY_AND_PEEKO_SS_TIDAL, 0, 0
+ object_event 4, MAP_OBJ_GFX_WINGULL, 0, 7, 0, 2, 0, 3, 1, 17, 0, 0, 0, 0, 0, SSTidalCorridor_EventScript_15FD9F, FLAG_HIDE_BRINEY_AND_PEEKO_SS_TIDAL, 0, 0
SSTidalCorridor_MapWarps:: @ 8391758
- warp_def 4, 9, 3, 0, SSTidalRooms
- warp_def 7, 9, 3, 2, SSTidalRooms
- warp_def 10, 9, 3, 4, SSTidalRooms
- warp_def 13, 9, 3, 6, SSTidalRooms
- warp_def 4, 3, 3, 8, SSTidalRooms
- warp_def 7, 3, 3, 9, SSTidalRooms
- warp_def 10, 3, 3, 10, SSTidalRooms
- warp_def 13, 3, 3, 11, SSTidalRooms
- warp_def 16, 2, 3, 0, SSTidalLowerDeck
+ warp_def 4, 9, 3, 0, MAP_SS_TIDAL_ROOMS
+ warp_def 7, 9, 3, 2, MAP_SS_TIDAL_ROOMS
+ warp_def 10, 9, 3, 4, MAP_SS_TIDAL_ROOMS
+ warp_def 13, 9, 3, 6, MAP_SS_TIDAL_ROOMS
+ warp_def 4, 3, 3, 8, MAP_SS_TIDAL_ROOMS
+ warp_def 7, 3, 3, 9, MAP_SS_TIDAL_ROOMS
+ warp_def 10, 3, 3, 10, MAP_SS_TIDAL_ROOMS
+ warp_def 13, 3, 3, 11, MAP_SS_TIDAL_ROOMS
+ warp_def 16, 2, 3, 0, MAP_SS_TIDAL_LOWER_DECK
SSTidalCorridor_MapBGEvents:: @ 83917A0
bg_event 2, 1, 0, 0, 0, SSTidalCorridor_EventScript_15FE3A
diff --git a/data/maps/events/SSTidalLowerDeck.inc b/data/maps/events/SSTidalLowerDeck.inc
index 6e8530c36..74c8458ce 100644
--- a/data/maps/events/SSTidalLowerDeck.inc
+++ b/data/maps/events/SSTidalLowerDeck.inc
@@ -3,7 +3,7 @@ SSTidalLowerDeck_MapObjects:: @ 8391844
object_event 2, MAP_OBJ_GFX_SAILOR, 0, 7, 0, 4, 0, 3, 50, 71, 0, 1, 0, 3, 0, SSTidalLowerDeck_EventScript_15FEEE, 0, 0, 0
SSTidalLowerDeck_MapWarps:: @ 8391874
- warp_def 15, 2, 3, 8, SSTidalCorridor
+ warp_def 15, 2, 3, 8, MAP_SS_TIDAL_CORRIDOR
SSTidalLowerDeck_MapBGEvents:: @ 839187C
bg_event 0, 2, 0, 7, 0, ITEM_LEFTOVERS, 35, 0
diff --git a/data/maps/events/SSTidalRooms.inc b/data/maps/events/SSTidalRooms.inc
index 0ffe1cbe7..af5fdbfa4 100644
--- a/data/maps/events/SSTidalRooms.inc
+++ b/data/maps/events/SSTidalRooms.inc
@@ -6,21 +6,21 @@ SSTidalRooms_MapObjects:: @ 839189C
object_event 5, MAP_OBJ_GFX_WOMAN_5, 0, 6, 0, 13, 0, 3, 8, 0, 0, 1, 0, 0, 0, SSTidalRooms_EventScript_15FFBD, 0, 0, 0
object_event 6, MAP_OBJ_GFX_BOY_4, 0, 22, 0, 11, 0, 3, 8, 17, 0, 1, 0, 3, 0, SSTidalRooms_EventScript_15FFD8, 0, 0, 0
object_event 7, MAP_OBJ_GFX_WOMAN_3, 0, 15, 0, 6, 0, 3, 9, 0, 0, 1, 0, 0, 0, SSTidalRooms_EventScript_15FFEF, 0, 0, 0
- object_event 8, MAP_OBJ_GFX_MANIAC, 0, 28, 0, 5, 0, 3, 7, 17, 0, 0, 0, 0, 0, SSTidalRooms_EventScript_15FF06, 951, 0, 0
+ object_event 8, MAP_OBJ_GFX_MANIAC, 0, 28, 0, 5, 0, 3, 7, 17, 0, 0, 0, 0, 0, SSTidalRooms_EventScript_15FF06, FLAG_HIDE_TM_49_GIVER_SS_TIDAL, 0, 0
SSTidalRooms_MapWarps:: @ 839195C
- warp_def 4, 16, 0, 0, SSTidalCorridor
- warp_def 5, 16, 0, 0, SSTidalCorridor
- warp_def 13, 16, 0, 1, SSTidalCorridor
- warp_def 14, 16, 0, 1, SSTidalCorridor
- warp_def 22, 16, 0, 2, SSTidalCorridor
- warp_def 23, 16, 0, 2, SSTidalCorridor
- warp_def 31, 16, 0, 3, SSTidalCorridor
- warp_def 32, 16, 0, 3, SSTidalCorridor
- warp_def 4, 1, 0, 4, SSTidalCorridor
- warp_def 13, 1, 0, 5, SSTidalCorridor
- warp_def 22, 1, 0, 6, SSTidalCorridor
- warp_def 31, 1, 0, 7, SSTidalCorridor
+ warp_def 4, 16, 0, 0, MAP_SS_TIDAL_CORRIDOR
+ warp_def 5, 16, 0, 0, MAP_SS_TIDAL_CORRIDOR
+ warp_def 13, 16, 0, 1, MAP_SS_TIDAL_CORRIDOR
+ warp_def 14, 16, 0, 1, MAP_SS_TIDAL_CORRIDOR
+ warp_def 22, 16, 0, 2, MAP_SS_TIDAL_CORRIDOR
+ warp_def 23, 16, 0, 2, MAP_SS_TIDAL_CORRIDOR
+ warp_def 31, 16, 0, 3, MAP_SS_TIDAL_CORRIDOR
+ warp_def 32, 16, 0, 3, MAP_SS_TIDAL_CORRIDOR
+ warp_def 4, 1, 0, 4, MAP_SS_TIDAL_CORRIDOR
+ warp_def 13, 1, 0, 5, MAP_SS_TIDAL_CORRIDOR
+ warp_def 22, 1, 0, 6, MAP_SS_TIDAL_CORRIDOR
+ warp_def 31, 1, 0, 7, MAP_SS_TIDAL_CORRIDOR
SSTidalRooms_MapBGEvents:: @ 83919BC
bg_event 15, 11, 0, 0, 0, SSTidalRooms_EventScript_15FF47
diff --git a/data/maps/events/SafariZone_Northeast.inc b/data/maps/events/SafariZone_Northeast.inc
index cea87fb14..68c32e585 100644
--- a/data/maps/events/SafariZone_Northeast.inc
+++ b/data/maps/events/SafariZone_Northeast.inc
@@ -1,13 +1,13 @@
SafariZone_Northeast_MapObjects:: @ 8391A2C
object_event 1, MAP_OBJ_GFX_FISHERMAN, 0, 22, 0, 9, 0, 3, 2, 17, 0, 0, 0, 0, 0, SafariZone_Northeast_EventScript_160011, 0, 0, 0
object_event 2, MAP_OBJ_GFX_MAN_5, 0, 6, 0, 29, 0, 3, 2, 17, 0, 0, 0, 0, 0, SafariZone_Northeast_EventScript_16001A, 0, 0, 0
- object_event 3, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 25, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 17, 0, 0
- object_event 4, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 25, 0, 13, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 18, 0, 0
- object_event 5, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 28, 0, 14, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 19, 0, 0
- object_event 6, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 23, 0, 6, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 20, 0, 0
- object_event 7, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 20, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 21, 0, 0
- object_event 8, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 27, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 22, 0, 0
- object_event 9, MAP_OBJ_GFX_ITEM_BALL, 0, 7, 0, 6, 0, 3, 1, 17, 0, 0, 0, 0, 0, SafariZone_Northeast_EventScript_1B1919, 1119, 0, 0
+ object_event 3, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 25, 0, 10, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_11, 0, 0
+ object_event 4, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 25, 0, 13, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_12, 0, 0
+ object_event 5, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 28, 0, 14, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_13, 0, 0
+ object_event 6, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 23, 0, 6, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_14, 0, 0
+ object_event 7, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 20, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_15, 0, 0
+ object_event 8, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 27, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_16, 0, 0
+ object_event 9, MAP_OBJ_GFX_ITEM_BALL, 0, 7, 0, 6, 0, 3, 1, 17, 0, 0, 0, 0, 0, SafariZone_Northeast_EventScript_1B1919, FLAG_ITEM_SAFARI_ZONE_NORTHEAST_1, 0, 0
SafariZone_Northeast_MapEvents:: @ 8391B04
map_events SafariZone_Northeast_MapObjects, 0x0, 0x0, 0x0
diff --git a/data/maps/events/SafariZone_Northwest.inc b/data/maps/events/SafariZone_Northwest.inc
index 0a1846b29..e2cabbd38 100644
--- a/data/maps/events/SafariZone_Northwest.inc
+++ b/data/maps/events/SafariZone_Northwest.inc
@@ -1,6 +1,6 @@
SafariZone_Northwest_MapObjects:: @ 83919E8
object_event 1, MAP_OBJ_GFX_MAN_1, 0, 8, 0, 8, 0, 5, 8, 0, 0, 0, 0, 0, 0, SafariZone_Northwest_EventScript_160007, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 33, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, SafariZone_Northwest_EventScript_1B190C, 1094, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 33, 0, 7, 0, 3, 1, 17, 0, 0, 0, 0, 0, SafariZone_Northwest_EventScript_1B190C, FLAG_ITEM_SAFARI_ZONE_NORTHWEST_1, 0, 0
SafariZone_Northwest_MapEvents:: @ 8391A18
map_events SafariZone_Northwest_MapObjects, 0x0, 0x0, 0x0
diff --git a/data/maps/events/SafariZone_RestHouse.inc b/data/maps/events/SafariZone_RestHouse.inc
index d6de3f747..f52e734b7 100644
--- a/data/maps/events/SafariZone_RestHouse.inc
+++ b/data/maps/events/SafariZone_RestHouse.inc
@@ -4,8 +4,8 @@ SafariZone_RestHouse_MapObjects:: @ 8391EC0
object_event 3, MAP_OBJ_GFX_FAT_MAN, 0, 2, 0, 5, 0, 3, 10, 17, 0, 0, 0, 0, 0, SafariZone_RestHouse_EventScript_160C41, 0, 0, 0
SafariZone_RestHouse_MapWarps:: @ 8391F08
- warp_def 3, 8, 0, 0, SafariZone_Southwest
- warp_def 4, 8, 0, 0, SafariZone_Southwest
+ warp_def 3, 8, 0, 0, MAP_SAFARI_ZONE_SOUTHWEST
+ warp_def 4, 8, 0, 0, MAP_SAFARI_ZONE_SOUTHWEST
SafariZone_RestHouse_MapEvents:: @ 8391F18
map_events SafariZone_RestHouse_MapObjects, SafariZone_RestHouse_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SafariZone_Southeast.inc b/data/maps/events/SafariZone_Southeast.inc
index d67f018ab..c40dc967d 100644
--- a/data/maps/events/SafariZone_Southeast.inc
+++ b/data/maps/events/SafariZone_Southeast.inc
@@ -5,7 +5,7 @@ SafariZone_Southeast_MapObjects:: @ 8391B70
object_event 4, MAP_OBJ_GFX_YOUNGSTER, 0, 15, 0, 31, 0, 3, 2, 17, 0, 0, 0, 0, 0, SafariZone_Southeast_EventScript_16009E, 0, 0, 0
SafariZone_Southeast_MapWarps:: @ 8391BD0
- warp_def 32, 33, 0, 0, Route121_SafariZoneEntrance
+ warp_def 32, 33, 0, 0, MAP_ROUTE121_SAFARI_ZONE_ENTRANCE
SafariZone_Southeast_MapEvents:: @ 8391BD8
map_events SafariZone_Southeast_MapObjects, SafariZone_Southeast_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SafariZone_Southwest.inc b/data/maps/events/SafariZone_Southwest.inc
index 4f7f21de5..2beec82ae 100644
--- a/data/maps/events/SafariZone_Southwest.inc
+++ b/data/maps/events/SafariZone_Southwest.inc
@@ -1,9 +1,9 @@
SafariZone_Southwest_MapObjects:: @ 8391B18
object_event 1, MAP_OBJ_GFX_WOMAN_3, 0, 22, 0, 9, 0, 3, 8, 0, 0, 0, 0, 0, 0, SafariZone_Southwest_EventScript_160024, 0, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 0, 0, 37, 0, 3, 1, 17, 0, 0, 0, 0, 0, SafariZone_Southwest_EventScript_1B1926, 1131, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 0, 0, 37, 0, 3, 1, 17, 0, 0, 0, 0, 0, SafariZone_Southwest_EventScript_1B1926, FLAG_ITEM_SAFARI_ZONE_SOUTHWEST, 0, 0
SafariZone_Southwest_MapWarps:: @ 8391B48
- warp_def 29, 7, 3, 0, SafariZone_RestHouse
+ warp_def 29, 7, 3, 0, MAP_SAFARI_ZONE_REST_HOUSE
SafariZone_Southwest_MapBGEvents:: @ 8391B50
bg_event 32, 7, 3, 0, 0, SafariZone_Southwest_EventScript_16002D
diff --git a/data/maps/events/ScorchedSlab.inc b/data/maps/events/ScorchedSlab.inc
index 4b6625b52..1a4f4d92d 100644
--- a/data/maps/events/ScorchedSlab.inc
+++ b/data/maps/events/ScorchedSlab.inc
@@ -1,8 +1,8 @@
ScorchedSlab_MapObjects:: @ 838E988
- object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 7, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, ScorchedSlab_EventScript_1B18FF, 1079, 0, 0
+ object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 7, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, ScorchedSlab_EventScript_1B18FF, FLAG_ITEM_SCORCHED_SLAB_1, 0, 0
ScorchedSlab_MapWarps:: @ 838E9A0
- warp_def 7, 16, 1, 1, Route120
+ warp_def 7, 16, 1, 1, MAP_ROUTE120
ScorchedSlab_MapEvents:: @ 838E9A8
map_events ScorchedSlab_MapObjects, ScorchedSlab_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SeafloorCavern_Entrance.inc b/data/maps/events/SeafloorCavern_Entrance.inc
index a7f08532c..4f6fa0c07 100644
--- a/data/maps/events/SeafloorCavern_Entrance.inc
+++ b/data/maps/events/SeafloorCavern_Entrance.inc
@@ -1,6 +1,6 @@
SeafloorCavern_Entrance_MapWarps:: @ 838D094
- warp_def 10, 18, 3, 0, Underwater4
- warp_def 10, 1, 3, 0, SeafloorCavern_Room1
+ warp_def 10, 18, 3, 0, MAP_UNDERWATER4
+ warp_def 10, 1, 3, 0, MAP_SEAFLOOR_CAVERN_ROOM1
SeafloorCavern_Entrance_MapEvents:: @ 838D0A4
map_events 0x0, SeafloorCavern_Entrance_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SeafloorCavern_Room1.inc b/data/maps/events/SeafloorCavern_Room1.inc
index 093934481..b86a61cb8 100644
--- a/data/maps/events/SeafloorCavern_Room1.inc
+++ b/data/maps/events/SeafloorCavern_Room1.inc
@@ -1,14 +1,14 @@
SeafloorCavern_Room1_MapObjects:: @ 838D0B8
- object_event 1, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 5, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 17, 0, 0
- object_event 2, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 12, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 18, 0, 0
- object_event 3, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 5, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 19, 0, 0
- object_event 4, 241, 0, 8, 0, 6, 0, 3, 1, 17, 0, 1, 0, 2, 0, SeafloorCavern_Room1_EventScript_15DA6D, 946, 0, 0
- object_event 5, 241, 0, 15, 0, 10, 0, 3, 16, 17, 0, 1, 0, 3, 0, SeafloorCavern_Room1_EventScript_15DA84, 946, 0, 0
+ object_event 1, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 5, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_11, 0, 0
+ object_event 2, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 12, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_12, 0, 0
+ object_event 3, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 5, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_13, 0, 0
+ object_event 4, 241, 0, 8, 0, 6, 0, 3, 1, 17, 0, 1, 0, 2, 0, SeafloorCavern_Room1_EventScript_15DA6D, FLAG_HIDE_EVIL_TEAM_GRUNTS_SEAFLOOR_CAVERN, 0, 0
+ object_event 5, 241, 0, 15, 0, 10, 0, 3, 16, 17, 0, 1, 0, 3, 0, SeafloorCavern_Room1_EventScript_15DA84, FLAG_HIDE_EVIL_TEAM_GRUNTS_SEAFLOOR_CAVERN, 0, 0
SeafloorCavern_Room1_MapWarps:: @ 838D130
- warp_def 5, 18, 3, 1, SeafloorCavern_Entrance
- warp_def 17, 13, 3, 0, SeafloorCavern_Room5
- warp_def 6, 2, 3, 0, SeafloorCavern_Room2
+ warp_def 5, 18, 3, 1, MAP_SEAFLOOR_CAVERN_ENTRANCE
+ warp_def 17, 13, 3, 0, MAP_SEAFLOOR_CAVERN_ROOM5
+ warp_def 6, 2, 3, 0, MAP_SEAFLOOR_CAVERN_ROOM2
SeafloorCavern_Room1_MapEvents:: @ 838D148
map_events SeafloorCavern_Room1_MapObjects, SeafloorCavern_Room1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SeafloorCavern_Room2.inc b/data/maps/events/SeafloorCavern_Room2.inc
index 86a0354e4..e9da0033e 100644
--- a/data/maps/events/SeafloorCavern_Room2.inc
+++ b/data/maps/events/SeafloorCavern_Room2.inc
@@ -1,19 +1,19 @@
SeafloorCavern_Room2_MapObjects:: @ 838D15C
- object_event 1, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 17, 0, 0
- object_event 2, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 18, 0, 0
- object_event 3, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 19, 0, 0
- object_event 4, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 11, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 20, 0, 0
- object_event 5, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 11, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 21, 0, 0
- object_event 6, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 11, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 22, 0, 0
- object_event 7, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 11, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 24, 0, 0
- object_event 8, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 7, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 25, 0, 0
- object_event 9, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 15, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 23, 0, 0
+ object_event 1, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_11, 0, 0
+ object_event 2, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_12, 0, 0
+ object_event 3, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_13, 0, 0
+ object_event 4, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 11, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_14, 0, 0
+ object_event 5, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 11, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_15, 0, 0
+ object_event 6, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 11, 0, 14, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_16, 0, 0
+ object_event 7, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 11, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_18, 0, 0
+ object_event 8, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 7, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_19, 0, 0
+ object_event 9, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 15, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_17, 0, 0
SeafloorCavern_Room2_MapWarps:: @ 838D234
- warp_def 12, 19, 3, 2, SeafloorCavern_Room1
- warp_def 5, 19, 3, 0, SeafloorCavern_Room4
- warp_def 5, 2, 3, 0, SeafloorCavern_Room6
- warp_def 12, 2, 3, 0, SeafloorCavern_Room7
+ warp_def 12, 19, 3, 2, MAP_SEAFLOOR_CAVERN_ROOM1
+ warp_def 5, 19, 3, 0, MAP_SEAFLOOR_CAVERN_ROOM4
+ warp_def 5, 2, 3, 0, MAP_SEAFLOOR_CAVERN_ROOM6
+ warp_def 12, 2, 3, 0, MAP_SEAFLOOR_CAVERN_ROOM7
SeafloorCavern_Room2_MapEvents:: @ 838D254
map_events SeafloorCavern_Room2_MapObjects, SeafloorCavern_Room2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SeafloorCavern_Room3.inc b/data/maps/events/SeafloorCavern_Room3.inc
index 5c5c9c219..a78848955 100644
--- a/data/maps/events/SeafloorCavern_Room3.inc
+++ b/data/maps/events/SeafloorCavern_Room3.inc
@@ -1,19 +1,19 @@
SeafloorCavern_Room3_MapObjects:: @ 838D268
- object_event 1, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 13, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 17, 0, 0
- object_event 2, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 8, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 18, 0, 0
- object_event 3, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 7, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 19, 0, 0
- object_event 4, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 9, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 20, 0, 0
- object_event 5, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 21, 0, 0
- object_event 6, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 8, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 22, 0, 0
- object_event 7, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 5, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 23, 0, 0
- object_event 8, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 7, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 24, 0, 0
- object_event 9, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 9, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 25, 0, 0
- object_event 10, 242, 0, 10, 0, 5, 0, 3, 8, 17, 0, 1, 0, 3, 0, SeafloorCavern_Room3_EventScript_15DAA8, 946, 0, 0
+ object_event 1, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 13, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_11, 0, 0
+ object_event 2, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 8, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_12, 0, 0
+ object_event 3, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 7, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_13, 0, 0
+ object_event 4, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 9, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_14, 0, 0
+ object_event 5, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_15, 0, 0
+ object_event 6, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 8, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_16, 0, 0
+ object_event 7, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 5, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_17, 0, 0
+ object_event 8, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 7, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_18, 0, 0
+ object_event 9, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 9, 0, 9, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_19, 0, 0
+ object_event 10, 242, 0, 10, 0, 5, 0, 3, 8, 17, 0, 1, 0, 3, 0, SeafloorCavern_Room3_EventScript_15DAA8, FLAG_HIDE_EVIL_TEAM_GRUNTS_SEAFLOOR_CAVERN, 0, 0
SeafloorCavern_Room3_MapWarps:: @ 838D358
- warp_def 8, 1, 3, 1, SeafloorCavern_Room8
- warp_def 10, 13, 3, 1, SeafloorCavern_Room7
- warp_def 4, 15, 3, 1, SeafloorCavern_Room6
+ warp_def 8, 1, 3, 1, MAP_SEAFLOOR_CAVERN_ROOM8
+ warp_def 10, 13, 3, 1, MAP_SEAFLOOR_CAVERN_ROOM7
+ warp_def 4, 15, 3, 1, MAP_SEAFLOOR_CAVERN_ROOM6
SeafloorCavern_Room3_MapEvents:: @ 838D370
map_events SeafloorCavern_Room3_MapObjects, SeafloorCavern_Room3_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SeafloorCavern_Room4.inc b/data/maps/events/SeafloorCavern_Room4.inc
index 3233123b3..565bcfcae 100644
--- a/data/maps/events/SeafloorCavern_Room4.inc
+++ b/data/maps/events/SeafloorCavern_Room4.inc
@@ -1,11 +1,11 @@
SeafloorCavern_Room4_MapObjects:: @ 838D384
- object_event 1, 241, 0, 4, 0, 8, 0, 3, 23, 17, 0, 1, 0, 3, 0, SeafloorCavern_Room4_EventScript_15DACB, 946, 0, 0
+ object_event 1, 241, 0, 4, 0, 8, 0, 3, 23, 17, 0, 1, 0, 3, 0, SeafloorCavern_Room4_EventScript_15DACB, FLAG_HIDE_EVIL_TEAM_GRUNTS_SEAFLOOR_CAVERN, 0, 0
SeafloorCavern_Room4_MapWarps:: @ 838D39C
- warp_def 13, 1, 3, 1, SeafloorCavern_Room2
- warp_def 4, 1, 3, 1, SeafloorCavern_Room5
- warp_def 9, 10, 3, 2, SeafloorCavern_Room5
- warp_def 10, 15, 3, 1, SeafloorCavern_Entrance
+ warp_def 13, 1, 3, 1, MAP_SEAFLOOR_CAVERN_ROOM2
+ warp_def 4, 1, 3, 1, MAP_SEAFLOOR_CAVERN_ROOM5
+ warp_def 9, 10, 3, 2, MAP_SEAFLOOR_CAVERN_ROOM5
+ warp_def 10, 15, 3, 1, MAP_SEAFLOOR_CAVERN_ENTRANCE
SeafloorCavern_Room4_MapEvents:: @ 838D3BC
map_events SeafloorCavern_Room4_MapObjects, SeafloorCavern_Room4_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SeafloorCavern_Room5.inc b/data/maps/events/SeafloorCavern_Room5.inc
index 37a501512..887ee1eb9 100644
--- a/data/maps/events/SeafloorCavern_Room5.inc
+++ b/data/maps/events/SeafloorCavern_Room5.inc
@@ -1,15 +1,15 @@
SeafloorCavern_Room5_MapObjects:: @ 838D3D0
- object_event 1, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 3, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 17, 0, 0
- object_event 2, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 4, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 18, 0, 0
- object_event 3, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 11, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 19, 0, 0
- object_event 4, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 3, 0, 13, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 21, 0, 0
- object_event 5, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 13, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 22, 0, 0
- object_event 6, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 12, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 20, 0, 0
+ object_event 1, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 3, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_11, 0, 0
+ object_event 2, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 4, 0, 11, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_12, 0, 0
+ object_event 3, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 11, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_13, 0, 0
+ object_event 4, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 3, 0, 13, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_15, 0, 0
+ object_event 5, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 13, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_16, 0, 0
+ object_event 6, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 12, 0, 8, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_14, 0, 0
SeafloorCavern_Room5_MapWarps:: @ 838D460
- warp_def 4, 1, 3, 1, SeafloorCavern_Room1
- warp_def 15, 12, 3, 1, SeafloorCavern_Room4
- warp_def 7, 17, 3, 2, SeafloorCavern_Room4
+ warp_def 4, 1, 3, 1, MAP_SEAFLOOR_CAVERN_ROOM1
+ warp_def 15, 12, 3, 1, MAP_SEAFLOOR_CAVERN_ROOM4
+ warp_def 7, 17, 3, 2, MAP_SEAFLOOR_CAVERN_ROOM4
SeafloorCavern_Room5_MapEvents:: @ 838D478
map_events SeafloorCavern_Room5_MapObjects, SeafloorCavern_Room5_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SeafloorCavern_Room6.inc b/data/maps/events/SeafloorCavern_Room6.inc
index 9055af75b..adf36455a 100644
--- a/data/maps/events/SeafloorCavern_Room6.inc
+++ b/data/maps/events/SeafloorCavern_Room6.inc
@@ -1,7 +1,7 @@
SeafloorCavern_Room6_MapWarps:: @ 838D48C
- warp_def 11, 21, 3, 2, SeafloorCavern_Room2
- warp_def 4, 1, 3, 2, SeafloorCavern_Room3
- warp_def 14, 8, 1, 1, SeafloorCavern_Entrance
+ warp_def 11, 21, 3, 2, MAP_SEAFLOOR_CAVERN_ROOM2
+ warp_def 4, 1, 3, 2, MAP_SEAFLOOR_CAVERN_ROOM3
+ warp_def 14, 8, 1, 1, MAP_SEAFLOOR_CAVERN_ENTRANCE
SeafloorCavern_Room6_MapEvents:: @ 838D4A4
map_events 0x0, SeafloorCavern_Room6_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SeafloorCavern_Room7.inc b/data/maps/events/SeafloorCavern_Room7.inc
index 7125027fd..616376e32 100644
--- a/data/maps/events/SeafloorCavern_Room7.inc
+++ b/data/maps/events/SeafloorCavern_Room7.inc
@@ -1,6 +1,6 @@
SeafloorCavern_Room7_MapWarps:: @ 838D4B8
- warp_def 3, 23, 3, 3, SeafloorCavern_Room2
- warp_def 5, 1, 3, 1, SeafloorCavern_Room3
+ warp_def 3, 23, 3, 3, MAP_SEAFLOOR_CAVERN_ROOM2
+ warp_def 5, 1, 3, 1, MAP_SEAFLOOR_CAVERN_ROOM3
SeafloorCavern_Room7_MapEvents:: @ 838D4C8
map_events 0x0, SeafloorCavern_Room7_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SeafloorCavern_Room8.inc b/data/maps/events/SeafloorCavern_Room8.inc
index 2d7329aec..35d230ff2 100644
--- a/data/maps/events/SeafloorCavern_Room8.inc
+++ b/data/maps/events/SeafloorCavern_Room8.inc
@@ -1,20 +1,20 @@
SeafloorCavern_Room8_MapObjects:: @ 838D4DC
- object_event 1, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 4, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 17, 0, 0
- object_event 2, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 5, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 18, 0, 0
- object_event 3, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 19, 0, 0
- object_event 4, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 3, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 20, 0, 0
- object_event 5, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 7, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 21, 0, 0
- object_event 6, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 4, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 22, 0, 0
- object_event 7, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 5, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 23, 0, 0
- object_event 8, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 24, 0, 0
- object_event 9, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 3, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 25, 0, 0
- object_event 10, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 4, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 26, 0, 0
- object_event 11, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 27, 0, 0
- object_event 12, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 7, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 28, 0, 0
+ object_event 1, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 4, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_11, 0, 0
+ object_event 2, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 5, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_12, 0, 0
+ object_event 3, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_13, 0, 0
+ object_event 4, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 3, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_14, 0, 0
+ object_event 5, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 7, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_15, 0, 0
+ object_event 6, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 4, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_16, 0, 0
+ object_event 7, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 5, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_17, 0, 0
+ object_event 8, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_18, 0, 0
+ object_event 9, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 3, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_19, 0, 0
+ object_event 10, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 4, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_1A, 0, 0
+ object_event 11, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 6, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_1B, 0, 0
+ object_event 12, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 7, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_1C, 0, 0
SeafloorCavern_Room8_MapWarps:: @ 838D5FC
- warp_def 5, 2, 3, 0, SeafloorCavern_Room9
- warp_def 5, 12, 3, 0, SeafloorCavern_Room3
+ warp_def 5, 2, 3, 0, MAP_SEAFLOOR_CAVERN_ROOM9
+ warp_def 5, 12, 3, 0, MAP_SEAFLOOR_CAVERN_ROOM3
SeafloorCavern_Room8_MapEvents:: @ 838D60C
map_events SeafloorCavern_Room8_MapObjects, SeafloorCavern_Room8_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SeafloorCavern_Room9.inc b/data/maps/events/SeafloorCavern_Room9.inc
index 2fccd4fec..77719389b 100644
--- a/data/maps/events/SeafloorCavern_Room9.inc
+++ b/data/maps/events/SeafloorCavern_Room9.inc
@@ -1,14 +1,14 @@
SeafloorCavern_Room9_MapObjects:: @ 838D620
- object_event 1, 248, 0, 17, 0, 38, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 859, 0, 0
- object_event 2, 246, 0, 9, 0, 42, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, 828, 0, 0
- object_event 3, 247, 0, 9, 0, 42, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, 829, 0, 0
- object_event 4, 244, 0, 8, 0, 41, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, 831, 0, 0
- object_event 5, 245, 0, 8, 0, 42, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, 831, 0, 0
- object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 14, 0, 5, 0, 3, 1, 17, 0, 0, 0, 0, 0, SeafloorCavern_Room9_EventScript_1B1A37, 1090, 0, 0
- object_event 7, 249, 0, 17, 0, 38, 0, 3, 8, 17, 0, 0, 0, 0, 0, 0x0, 733, 0, 0
+ object_event 1, 248, 0, 17, 0, 38, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_AWAKENED_MON_SEAFLOOR_CAVERN, 0, 0
+ object_event 2, 246, 0, 9, 0, 42, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_EVIL_LEADER_SEAFLOOR_CAVERN, 0, 0
+ object_event 3, 247, 0, 9, 0, 42, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_OTHER_LEADER_SEAFLOOR_CAVERN, 0, 0
+ object_event 4, 244, 0, 8, 0, 41, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_OTHER_TEAM_GRUNTS_SEAFLOOR_CAVERN, 0, 0
+ object_event 5, 245, 0, 8, 0, 42, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_OTHER_TEAM_GRUNTS_SEAFLOOR_CAVERN, 0, 0
+ object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 14, 0, 5, 0, 3, 1, 17, 0, 0, 0, 0, 0, SeafloorCavern_Room9_EventScript_1B1A37, FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_1, 0, 0
+ object_event 7, 249, 0, 17, 0, 38, 0, 3, 8, 17, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_SLEEPING_MON_SEAFLOOR_CAVERN, 0, 0
SeafloorCavern_Room9_MapWarps:: @ 838D6C8
- warp_def 5, 4, 3, 0, SeafloorCavern_Room8
+ warp_def 5, 4, 3, 0, MAP_SEAFLOOR_CAVERN_ROOM8
SeafloorCavern_Room9_MapCoordEvents:: @ 838D6D0
coord_event 17, 42, 3, 0, 0x40a2, 0, 0, SeafloorCavern_Room9_EventScript_15DAFA
diff --git a/data/maps/events/SealedChamber_InnerRoom.inc b/data/maps/events/SealedChamber_InnerRoom.inc
index 260de2dd9..a457a4e03 100644
--- a/data/maps/events/SealedChamber_InnerRoom.inc
+++ b/data/maps/events/SealedChamber_InnerRoom.inc
@@ -1,5 +1,5 @@
SealedChamber_InnerRoom_MapWarps:: @ 838E900
- warp_def 10, 19, 3, 0, SealedChamber_OuterRoom
+ warp_def 10, 19, 3, 0, MAP_SEALED_CHAMBER_OUTER_ROOM
SealedChamber_InnerRoom_MapBGEvents:: @ 838E908
bg_event 10, 4, 0, 0, 0, SealedChamber_InnerRoom_EventScript_15F1E8
diff --git a/data/maps/events/SealedChamber_OuterRoom.inc b/data/maps/events/SealedChamber_OuterRoom.inc
index 5251d401a..634f41f60 100644
--- a/data/maps/events/SealedChamber_OuterRoom.inc
+++ b/data/maps/events/SealedChamber_OuterRoom.inc
@@ -1,5 +1,5 @@
SealedChamber_OuterRoom_MapWarps:: @ 838E788
- warp_def 10, 2, 3, 0, SealedChamber_InnerRoom
+ warp_def 10, 2, 3, 0, MAP_SEALED_CHAMBER_INNER_ROOM
SealedChamber_OuterRoom_MapBGEvents:: @ 838E790
bg_event 5, 6, 0, 0, 0, SealedChamber_OuterRoom_EventScript_15F12C
diff --git a/data/maps/events/SecretBase_BlueCave1.inc b/data/maps/events/SecretBase_BlueCave1.inc
index 25bab40da..1ef513e65 100644
--- a/data/maps/events/SecretBase_BlueCave1.inc
+++ b/data/maps/events/SecretBase_BlueCave1.inc
@@ -1,22 +1,22 @@
SecretBase_BlueCave1_MapObjects:: @ 838F18C
- object_event 1, 255, 0, 4, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_BlueCave1_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 4, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_BlueCave1_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_BlueCave1_MapWarps:: @ 838F2F4
- warp_def 5, 7, 0, 126, NONE
+ warp_def 5, 7, 0, 126, MAP_NONE
SecretBase_BlueCave1_MapEvents:: @ 838F2FC
map_events SecretBase_BlueCave1_MapObjects, SecretBase_BlueCave1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_BlueCave2.inc b/data/maps/events/SecretBase_BlueCave2.inc
index a7eac24a4..2a2fdb421 100644
--- a/data/maps/events/SecretBase_BlueCave2.inc
+++ b/data/maps/events/SecretBase_BlueCave2.inc
@@ -1,22 +1,22 @@
SecretBase_BlueCave2_MapObjects:: @ 838FAA4
- object_event 1, 255, 0, 2, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_BlueCave2_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 2, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_BlueCave2_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_BlueCave2_MapWarps:: @ 838FC0C
- warp_def 7, 5, 0, 126, NONE
+ warp_def 7, 5, 0, 126, MAP_NONE
SecretBase_BlueCave2_MapEvents:: @ 838FC14
map_events SecretBase_BlueCave2_MapObjects, SecretBase_BlueCave2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_BlueCave3.inc b/data/maps/events/SecretBase_BlueCave3.inc
index 202c2bc4e..8fc65ad54 100644
--- a/data/maps/events/SecretBase_BlueCave3.inc
+++ b/data/maps/events/SecretBase_BlueCave3.inc
@@ -1,22 +1,22 @@
SecretBase_BlueCave3_MapObjects:: @ 83903BC
- object_event 1, 255, 0, 5, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_BlueCave3_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 5, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_BlueCave3_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_BlueCave3_MapWarps:: @ 8390524
- warp_def 4, 15, 0, 126, NONE
+ warp_def 4, 15, 0, 126, MAP_NONE
SecretBase_BlueCave3_MapEvents:: @ 839052C
map_events SecretBase_BlueCave3_MapObjects, SecretBase_BlueCave3_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_BlueCave4.inc b/data/maps/events/SecretBase_BlueCave4.inc
index 2975c0b37..497123d44 100644
--- a/data/maps/events/SecretBase_BlueCave4.inc
+++ b/data/maps/events/SecretBase_BlueCave4.inc
@@ -1,22 +1,22 @@
SecretBase_BlueCave4_MapObjects:: @ 8390CD4
- object_event 1, 255, 0, 5, 0, 13, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_BlueCave4_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 5, 0, 13, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_BlueCave4_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_BlueCave4_MapWarps:: @ 8390E3C
- warp_def 4, 15, 0, 126, NONE
+ warp_def 4, 15, 0, 126, MAP_NONE
SecretBase_BlueCave4_MapEvents:: @ 8390E44
map_events SecretBase_BlueCave4_MapObjects, SecretBase_BlueCave4_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_BrownCave1.inc b/data/maps/events/SecretBase_BrownCave1.inc
index 31e2d0117..2db31b4d2 100644
--- a/data/maps/events/SecretBase_BrownCave1.inc
+++ b/data/maps/events/SecretBase_BrownCave1.inc
@@ -1,22 +1,22 @@
SecretBase_BrownCave1_MapObjects:: @ 838F008
- object_event 1, 255, 0, 5, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_BrownCave1_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 5, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_BrownCave1_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_BrownCave1_MapWarps:: @ 838F170
- warp_def 5, 7, 0, 126, NONE
+ warp_def 5, 7, 0, 126, MAP_NONE
SecretBase_BrownCave1_MapEvents:: @ 838F178
map_events SecretBase_BrownCave1_MapObjects, SecretBase_BrownCave1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_BrownCave2.inc b/data/maps/events/SecretBase_BrownCave2.inc
index 93f9a3c03..72fb53a86 100644
--- a/data/maps/events/SecretBase_BrownCave2.inc
+++ b/data/maps/events/SecretBase_BrownCave2.inc
@@ -1,22 +1,22 @@
SecretBase_BrownCave2_MapObjects:: @ 838F920
- object_event 1, 255, 0, 11, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_BrownCave2_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 11, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_BrownCave2_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_BrownCave2_MapWarps:: @ 838FA88
- warp_def 1, 7, 0, 126, NONE
+ warp_def 1, 7, 0, 126, MAP_NONE
SecretBase_BrownCave2_MapEvents:: @ 838FA90
map_events SecretBase_BrownCave2_MapObjects, SecretBase_BrownCave2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_BrownCave3.inc b/data/maps/events/SecretBase_BrownCave3.inc
index 5aa5aed7a..2b320d6bb 100644
--- a/data/maps/events/SecretBase_BrownCave3.inc
+++ b/data/maps/events/SecretBase_BrownCave3.inc
@@ -1,22 +1,22 @@
SecretBase_BrownCave3_MapObjects:: @ 8390238
- object_event 1, 255, 0, 1, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_BrownCave3_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 1, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_BrownCave3_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_BrownCave3_MapWarps:: @ 83903A0
- warp_def 11, 9, 0, 126, NONE
+ warp_def 11, 9, 0, 126, MAP_NONE
SecretBase_BrownCave3_MapEvents:: @ 83903A8
map_events SecretBase_BrownCave3_MapObjects, SecretBase_BrownCave3_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_BrownCave4.inc b/data/maps/events/SecretBase_BrownCave4.inc
index fc66e8fb5..26b0f2537 100644
--- a/data/maps/events/SecretBase_BrownCave4.inc
+++ b/data/maps/events/SecretBase_BrownCave4.inc
@@ -1,22 +1,22 @@
SecretBase_BrownCave4_MapObjects:: @ 8390B50
- object_event 1, 255, 0, 2, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_BrownCave4_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 2, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_BrownCave4_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_BrownCave4_MapWarps:: @ 8390CB8
- warp_def 2, 8, 0, 126, NONE
+ warp_def 2, 8, 0, 126, MAP_NONE
SecretBase_BrownCave4_MapEvents:: @ 8390CC0
map_events SecretBase_BrownCave4_MapObjects, SecretBase_BrownCave4_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_RedCave1.inc b/data/maps/events/SecretBase_RedCave1.inc
index dbc8c7593..733d4d808 100644
--- a/data/maps/events/SecretBase_RedCave1.inc
+++ b/data/maps/events/SecretBase_RedCave1.inc
@@ -1,22 +1,22 @@
SecretBase_RedCave1_MapObjects:: @ 838EE84
- object_event 1, 255, 0, 7, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_RedCave1_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 7, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_RedCave1_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_RedCave1_MapWarps:: @ 838EFEC
- warp_def 5, 7, 0, 126, NONE
+ warp_def 5, 7, 0, 126, MAP_NONE
SecretBase_RedCave1_MapEvents:: @ 838EFF4
map_events SecretBase_RedCave1_MapObjects, SecretBase_RedCave1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_RedCave2.inc b/data/maps/events/SecretBase_RedCave2.inc
index 910b2c074..84fcd52f0 100644
--- a/data/maps/events/SecretBase_RedCave2.inc
+++ b/data/maps/events/SecretBase_RedCave2.inc
@@ -1,22 +1,22 @@
SecretBase_RedCave2_MapObjects:: @ 838F79C
- object_event 1, 255, 0, 3, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_RedCave2_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 3, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_RedCave2_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_RedCave2_MapWarps:: @ 838F904
- warp_def 3, 14, 0, 126, NONE
+ warp_def 3, 14, 0, 126, MAP_NONE
SecretBase_RedCave2_MapEvents:: @ 838F90C
map_events SecretBase_RedCave2_MapObjects, SecretBase_RedCave2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_RedCave3.inc b/data/maps/events/SecretBase_RedCave3.inc
index 8745b272f..f129a82fb 100644
--- a/data/maps/events/SecretBase_RedCave3.inc
+++ b/data/maps/events/SecretBase_RedCave3.inc
@@ -1,22 +1,22 @@
SecretBase_RedCave3_MapObjects:: @ 83900B4
- object_event 1, 255, 0, 12, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_RedCave3_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 12, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_RedCave3_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_RedCave3_MapWarps:: @ 839021C
- warp_def 3, 6, 0, 126, NONE
+ warp_def 3, 6, 0, 126, MAP_NONE
SecretBase_RedCave3_MapEvents:: @ 8390224
map_events SecretBase_RedCave3_MapObjects, SecretBase_RedCave3_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_RedCave4.inc b/data/maps/events/SecretBase_RedCave4.inc
index 60928ef5c..97e71648e 100644
--- a/data/maps/events/SecretBase_RedCave4.inc
+++ b/data/maps/events/SecretBase_RedCave4.inc
@@ -1,22 +1,22 @@
SecretBase_RedCave4_MapObjects:: @ 83909CC
- object_event 1, 255, 0, 5, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_RedCave4_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 5, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_RedCave4_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_RedCave4_MapWarps:: @ 8390B34
- warp_def 2, 12, 0, 126, NONE
+ warp_def 2, 12, 0, 126, MAP_NONE
SecretBase_RedCave4_MapEvents:: @ 8390B3C
map_events SecretBase_RedCave4_MapObjects, SecretBase_RedCave4_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_Shrub1.inc b/data/maps/events/SecretBase_Shrub1.inc
index 17c2f2530..7727f5efb 100644
--- a/data/maps/events/SecretBase_Shrub1.inc
+++ b/data/maps/events/SecretBase_Shrub1.inc
@@ -1,22 +1,22 @@
SecretBase_Shrub1_MapObjects:: @ 838F618
- object_event 1, 255, 0, 5, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_Shrub1_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 5, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_Shrub1_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_Shrub1_MapWarps:: @ 838F780
- warp_def 5, 7, 0, 126, NONE
+ warp_def 5, 7, 0, 126, MAP_NONE
SecretBase_Shrub1_MapEvents:: @ 838F788
map_events SecretBase_Shrub1_MapObjects, SecretBase_Shrub1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_Shrub2.inc b/data/maps/events/SecretBase_Shrub2.inc
index 6b973e730..32b495b05 100644
--- a/data/maps/events/SecretBase_Shrub2.inc
+++ b/data/maps/events/SecretBase_Shrub2.inc
@@ -1,22 +1,22 @@
SecretBase_Shrub2_MapObjects:: @ 838FF30
- object_event 1, 255, 0, 13, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_Shrub2_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 13, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_Shrub2_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_Shrub2_MapWarps:: @ 8390098
- warp_def 7, 5, 0, 126, NONE
+ warp_def 7, 5, 0, 126, MAP_NONE
SecretBase_Shrub2_MapEvents:: @ 83900A0
map_events SecretBase_Shrub2_MapObjects, SecretBase_Shrub2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_Shrub3.inc b/data/maps/events/SecretBase_Shrub3.inc
index 12e2c7c81..173305a86 100644
--- a/data/maps/events/SecretBase_Shrub3.inc
+++ b/data/maps/events/SecretBase_Shrub3.inc
@@ -1,22 +1,22 @@
SecretBase_Shrub3_MapObjects:: @ 8390848
- object_event 1, 255, 0, 5, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_Shrub3_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 5, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_Shrub3_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_Shrub3_MapWarps:: @ 83909B0
- warp_def 6, 9, 0, 126, NONE
+ warp_def 6, 9, 0, 126, MAP_NONE
SecretBase_Shrub3_MapEvents:: @ 83909B8
map_events SecretBase_Shrub3_MapObjects, SecretBase_Shrub3_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_Shrub4.inc b/data/maps/events/SecretBase_Shrub4.inc
index bd3b94522..1920bbd08 100644
--- a/data/maps/events/SecretBase_Shrub4.inc
+++ b/data/maps/events/SecretBase_Shrub4.inc
@@ -1,22 +1,22 @@
SecretBase_Shrub4_MapObjects:: @ 8391160
- object_event 1, 255, 0, 9, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_Shrub4_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 9, 0, 7, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_Shrub4_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_Shrub4_MapWarps:: @ 83912C8
- warp_def 11, 8, 0, 126, NONE
+ warp_def 11, 8, 0, 126, MAP_NONE
SecretBase_Shrub4_MapEvents:: @ 83912D0
map_events SecretBase_Shrub4_MapObjects, SecretBase_Shrub4_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_Tree1.inc b/data/maps/events/SecretBase_Tree1.inc
index 465a0d2be..a43b1ad76 100644
--- a/data/maps/events/SecretBase_Tree1.inc
+++ b/data/maps/events/SecretBase_Tree1.inc
@@ -1,22 +1,22 @@
SecretBase_Tree1_MapObjects:: @ 838F494
- object_event 1, 255, 0, 5, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_Tree1_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 5, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_Tree1_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_Tree1_MapWarps:: @ 838F5FC
- warp_def 5, 7, 0, 126, NONE
+ warp_def 5, 7, 0, 126, MAP_NONE
SecretBase_Tree1_MapEvents:: @ 838F604
map_events SecretBase_Tree1_MapObjects, SecretBase_Tree1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_Tree2.inc b/data/maps/events/SecretBase_Tree2.inc
index d780ed779..aa0ef4b7d 100644
--- a/data/maps/events/SecretBase_Tree2.inc
+++ b/data/maps/events/SecretBase_Tree2.inc
@@ -1,22 +1,22 @@
SecretBase_Tree2_MapObjects:: @ 838FDAC
- object_event 1, 255, 0, 3, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_Tree2_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 3, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_Tree2_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_Tree2_MapWarps:: @ 838FF14
- warp_def 3, 14, 0, 126, NONE
+ warp_def 3, 14, 0, 126, MAP_NONE
SecretBase_Tree2_MapEvents:: @ 838FF1C
map_events SecretBase_Tree2_MapObjects, SecretBase_Tree2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_Tree3.inc b/data/maps/events/SecretBase_Tree3.inc
index 0c8888764..69414c222 100644
--- a/data/maps/events/SecretBase_Tree3.inc
+++ b/data/maps/events/SecretBase_Tree3.inc
@@ -1,22 +1,22 @@
SecretBase_Tree3_MapObjects:: @ 83906C4
- object_event 1, 255, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_Tree3_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_Tree3_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_Tree3_MapWarps:: @ 839082C
- warp_def 8, 6, 0, 126, NONE
+ warp_def 8, 6, 0, 126, MAP_NONE
SecretBase_Tree3_MapEvents:: @ 8390834
map_events SecretBase_Tree3_MapObjects, SecretBase_Tree3_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_Tree4.inc b/data/maps/events/SecretBase_Tree4.inc
index 675ee1b8e..3ea6c57ea 100644
--- a/data/maps/events/SecretBase_Tree4.inc
+++ b/data/maps/events/SecretBase_Tree4.inc
@@ -1,22 +1,22 @@
SecretBase_Tree4_MapObjects:: @ 8390FDC
- object_event 1, 255, 0, 10, 0, 9, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_Tree4_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 10, 0, 9, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_Tree4_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_Tree4_MapWarps:: @ 8391144
- warp_def 7, 12, 0, 126, NONE
+ warp_def 7, 12, 0, 126, MAP_NONE
SecretBase_Tree4_MapEvents:: @ 839114C
map_events SecretBase_Tree4_MapObjects, SecretBase_Tree4_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_YellowCave1.inc b/data/maps/events/SecretBase_YellowCave1.inc
index 8c6999f9b..12fd311e3 100644
--- a/data/maps/events/SecretBase_YellowCave1.inc
+++ b/data/maps/events/SecretBase_YellowCave1.inc
@@ -1,22 +1,22 @@
SecretBase_YellowCave1_MapObjects:: @ 838F310
- object_event 1, 255, 0, 3, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_YellowCave1_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 3, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_YellowCave1_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_YellowCave1_MapWarps:: @ 838F478
- warp_def 5, 7, 0, 126, NONE
+ warp_def 5, 7, 0, 126, MAP_NONE
SecretBase_YellowCave1_MapEvents:: @ 838F480
map_events SecretBase_YellowCave1_MapObjects, SecretBase_YellowCave1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_YellowCave2.inc b/data/maps/events/SecretBase_YellowCave2.inc
index 8825836bf..5e3abde63 100644
--- a/data/maps/events/SecretBase_YellowCave2.inc
+++ b/data/maps/events/SecretBase_YellowCave2.inc
@@ -1,22 +1,22 @@
SecretBase_YellowCave2_MapObjects:: @ 838FC28
- object_event 1, 255, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_YellowCave2_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_YellowCave2_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_YellowCave2_MapWarps:: @ 838FD90
- warp_def 12, 7, 0, 126, NONE
+ warp_def 12, 7, 0, 126, MAP_NONE
SecretBase_YellowCave2_MapEvents:: @ 838FD98
map_events SecretBase_YellowCave2_MapObjects, SecretBase_YellowCave2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_YellowCave3.inc b/data/maps/events/SecretBase_YellowCave3.inc
index a88e44190..3a139d2d9 100644
--- a/data/maps/events/SecretBase_YellowCave3.inc
+++ b/data/maps/events/SecretBase_YellowCave3.inc
@@ -1,22 +1,22 @@
SecretBase_YellowCave3_MapObjects:: @ 8390540
- object_event 1, 255, 0, 7, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_YellowCave3_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 7, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_YellowCave3_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_YellowCave3_MapWarps:: @ 83906A8
- warp_def 5, 9, 0, 126, NONE
+ warp_def 5, 9, 0, 126, MAP_NONE
SecretBase_YellowCave3_MapEvents:: @ 83906B0
map_events SecretBase_YellowCave3_MapObjects, SecretBase_YellowCave3_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SecretBase_YellowCave4.inc b/data/maps/events/SecretBase_YellowCave4.inc
index 0280e088a..5812a25e0 100644
--- a/data/maps/events/SecretBase_YellowCave4.inc
+++ b/data/maps/events/SecretBase_YellowCave4.inc
@@ -1,22 +1,22 @@
SecretBase_YellowCave4_MapObjects:: @ 8390E58
- object_event 1, 255, 0, 9, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_YellowCave4_EventScript_1A2FC0, 173, 0, 0
- object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 174, 0, 0
- object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 175, 0, 0
- object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 176, 0, 0
- object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 177, 0, 0
- object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 178, 0, 0
- object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 179, 0, 0
- object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 180, 0, 0
- object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 181, 0, 0
- object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 182, 0, 0
- object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 183, 0, 0
- object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 184, 0, 0
- object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 185, 0, 0
- object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 186, 0, 0
- object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 187, 0, 0
+ object_event 1, 255, 0, 9, 0, 8, 0, 3, 8, 0, 0, 0, 0, 0, 0, SecretBase_YellowCave4_EventScript_1A2FC0, FLAG_DECORATION_1, 0, 0
+ object_event 2, 240, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_2, 0, 0
+ object_event 3, 241, 0, 0, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_3, 0, 0
+ object_event 4, 242, 0, 0, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_4, 0, 0
+ object_event 5, 243, 0, 0, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_5, 0, 0
+ object_event 6, 244, 0, 0, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_6, 0, 0
+ object_event 7, 245, 0, 0, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_7, 0, 0
+ object_event 8, 246, 0, 0, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_8, 0, 0
+ object_event 9, 247, 0, 1, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_9, 0, 0
+ object_event 10, 248, 0, 1, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_10, 0, 0
+ object_event 11, 249, 0, 1, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_11, 0, 0
+ object_event 12, 250, 0, 1, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_12, 0, 0
+ object_event 13, 251, 0, 1, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_13, 0, 0
+ object_event 14, 252, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_14, 0, 0
+ object_event 15, 253, 0, 1, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_DECORATION_15, 0, 0
SecretBase_YellowCave4_MapWarps:: @ 8390FC0
- warp_def 6, 12, 0, 126, NONE
+ warp_def 6, 12, 0, 126, MAP_NONE
SecretBase_YellowCave4_MapEvents:: @ 8390FC8
map_events SecretBase_YellowCave4_MapObjects, SecretBase_YellowCave4_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/ShoalCave_LowTideEntranceRoom.inc b/data/maps/events/ShoalCave_LowTideEntranceRoom.inc
index a9381d0c4..8d38fb3ee 100644
--- a/data/maps/events/ShoalCave_LowTideEntranceRoom.inc
+++ b/data/maps/events/ShoalCave_LowTideEntranceRoom.inc
@@ -1,12 +1,12 @@
ShoalCave_LowTideEntranceRoom_MapObjects:: @ 838DCDC
- object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 30, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, ShoalCave_LowTideEntranceRoom_EventScript_1B19F6, 1081, 0, 0
+ object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 30, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, ShoalCave_LowTideEntranceRoom_EventScript_1B19F6, FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ENTRANCE_1, 0, 0
object_event 2, MAP_OBJ_GFX_OLD_MAN_1, 0, 18, 0, 15, 0, 3, 9, 17, 0, 0, 0, 0, 0, ShoalCave_LowTideEntranceRoom_EventScript_15E076, 0, 0, 0
ShoalCave_LowTideEntranceRoom_MapWarps:: @ 838DD0C
- warp_def 20, 30, 3, 0, Route125
- warp_def 19, 5, 3, 0, ShoalCave_LowTideInnerRoom
- warp_def 6, 2, 3, 6, ShoalCave_LowTideInnerRoom
- warp_def 27, 2, 3, 7, ShoalCave_LowTideInnerRoom
+ warp_def 20, 30, 3, 0, MAP_ROUTE125
+ warp_def 19, 5, 3, 0, MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM
+ warp_def 6, 2, 3, 6, MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM
+ warp_def 27, 2, 3, 7, MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM
ShoalCave_LowTideEntranceRoom_MapEvents:: @ 838DD2C
map_events ShoalCave_LowTideEntranceRoom_MapObjects, ShoalCave_LowTideEntranceRoom_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/ShoalCave_LowTideIceRoom.inc b/data/maps/events/ShoalCave_LowTideIceRoom.inc
index 2d5958a37..6e1b36d08 100644
--- a/data/maps/events/ShoalCave_LowTideIceRoom.inc
+++ b/data/maps/events/ShoalCave_LowTideIceRoom.inc
@@ -1,9 +1,9 @@
ShoalCave_LowTideIceRoom_MapObjects:: @ 838EDE0
- object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 12, 0, 8, 0, 3, 1, 17, 0, 0, 0, 0, 0, ShoalCave_LowTideIceRoom_EventScript_1B1A1D, 1112, 0, 0
- object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 12, 0, 21, 0, 4, 1, 17, 0, 0, 0, 0, 0, ShoalCave_LowTideIceRoom_EventScript_1B1A2A, 1113, 0, 0
+ object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 12, 0, 8, 0, 3, 1, 17, 0, 0, 0, 0, 0, ShoalCave_LowTideIceRoom_EventScript_1B1A1D, FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ICE_ROOM_1, 0, 0
+ object_event 2, MAP_OBJ_GFX_ITEM_BALL, 0, 12, 0, 21, 0, 4, 1, 17, 0, 0, 0, 0, 0, ShoalCave_LowTideIceRoom_EventScript_1B1A2A, FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ICE_ROOM_2, 0, 0
ShoalCave_LowTideIceRoom_MapWarps:: @ 838EE10
- warp_def 17, 10, 3, 3, ShoalCave_LowTideLowerRoom
+ warp_def 17, 10, 3, 3, MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM
ShoalCave_LowTideIceRoom_MapEvents:: @ 838EE18
map_events ShoalCave_LowTideIceRoom_MapObjects, ShoalCave_LowTideIceRoom_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/ShoalCave_LowTideInnerRoom.inc b/data/maps/events/ShoalCave_LowTideInnerRoom.inc
index 954c4c5e9..c699b5e11 100644
--- a/data/maps/events/ShoalCave_LowTideInnerRoom.inc
+++ b/data/maps/events/ShoalCave_LowTideInnerRoom.inc
@@ -1,15 +1,15 @@
ShoalCave_LowTideInnerRoom_MapObjects:: @ 838DD40
- object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 26, 0, 14, 0, 5, 1, 17, 0, 0, 0, 0, 0, ShoalCave_LowTideInnerRoom_EventScript_1B1A03, 1082, 0, 0
+ object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 26, 0, 14, 0, 5, 1, 17, 0, 0, 0, 0, 0, ShoalCave_LowTideInnerRoom_EventScript_1B1A03, FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_INNER_ROOM_1, 0, 0
ShoalCave_LowTideInnerRoom_MapWarps:: @ 838DD58
- warp_def 34, 29, 3, 1, ShoalCave_LowTideEntranceRoom
- warp_def 38, 15, 3, 0, ShoalCave_LowTideStairsRoom
- warp_def 42, 4, 3, 1, ShoalCave_LowTideStairsRoom
- warp_def 19, 14, 4, 0, ShoalCave_LowTideLowerRoom
- warp_def 15, 19, 3, 1, ShoalCave_LowTideLowerRoom
- warp_def 30, 25, 3, 2, ShoalCave_LowTideLowerRoom
- warp_def 14, 33, 5, 2, ShoalCave_LowTideEntranceRoom
- warp_def 40, 33, 5, 3, ShoalCave_LowTideEntranceRoom
+ warp_def 34, 29, 3, 1, MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM
+ warp_def 38, 15, 3, 0, MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM
+ warp_def 42, 4, 3, 1, MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM
+ warp_def 19, 14, 4, 0, MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM
+ warp_def 15, 19, 3, 1, MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM
+ warp_def 30, 25, 3, 2, MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM
+ warp_def 14, 33, 5, 2, MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM
+ warp_def 40, 33, 5, 3, MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM
ShoalCave_LowTideInnerRoom_MapBGEvents:: @ 838DD98
bg_event 31, 8, 5, 0, 0, ShoalCave_LowTideInnerRoom_EventScript_15E329
diff --git a/data/maps/events/ShoalCave_LowTideLowerRoom.inc b/data/maps/events/ShoalCave_LowTideLowerRoom.inc
index 858f919e0..ba5a0f495 100644
--- a/data/maps/events/ShoalCave_LowTideLowerRoom.inc
+++ b/data/maps/events/ShoalCave_LowTideLowerRoom.inc
@@ -1,12 +1,12 @@
ShoalCave_LowTideLowerRoom_MapObjects:: @ 838DE3C
- object_event 1, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 25, 0, 3, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 17, 0, 0
+ object_event 1, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 25, 0, 3, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_11, 0, 0
object_event 2, MAP_OBJ_GFX_BLACK_BELT, 0, 11, 0, 4, 0, 3, 2, 17, 0, 0, 0, 0, 0, ShoalCave_LowTideLowerRoom_EventScript_15E44F, 0, 0, 0
ShoalCave_LowTideLowerRoom_MapWarps:: @ 838DE6C
- warp_def 7, 2, 3, 3, ShoalCave_LowTideInnerRoom
- warp_def 2, 6, 3, 4, ShoalCave_LowTideInnerRoom
- warp_def 19, 11, 3, 5, ShoalCave_LowTideInnerRoom
- warp_def 28, 11, 3, 0, ShoalCave_LowTideIceRoom
+ warp_def 7, 2, 3, 3, MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM
+ warp_def 2, 6, 3, 4, MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM
+ warp_def 19, 11, 3, 5, MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM
+ warp_def 28, 11, 3, 0, MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM
ShoalCave_LowTideLowerRoom_MapBGEvents:: @ 838DE8C
bg_event 18, 2, 3, 0, 0, ShoalCave_LowTideLowerRoom_EventScript_15E413
diff --git a/data/maps/events/ShoalCave_LowTideStairsRoom.inc b/data/maps/events/ShoalCave_LowTideStairsRoom.inc
index 878b1fca0..f4027a22f 100644
--- a/data/maps/events/ShoalCave_LowTideStairsRoom.inc
+++ b/data/maps/events/ShoalCave_LowTideStairsRoom.inc
@@ -1,9 +1,9 @@
ShoalCave_LowTideStairsRoom_MapObjects:: @ 838DDF4
- object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 13, 0, 12, 0, 3, 1, 17, 0, 0, 0, 0, 0, ShoalCave_LowTideStairsRoom_EventScript_1B1A10, 1083, 0, 0
+ object_event 1, MAP_OBJ_GFX_ITEM_BALL, 0, 13, 0, 12, 0, 3, 1, 17, 0, 0, 0, 0, 0, ShoalCave_LowTideStairsRoom_EventScript_1B1A10, FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM_1, 0, 0
ShoalCave_LowTideStairsRoom_MapWarps:: @ 838DE0C
- warp_def 3, 12, 3, 1, ShoalCave_LowTideInnerRoom
- warp_def 7, 4, 3, 2, ShoalCave_LowTideInnerRoom
+ warp_def 3, 12, 3, 1, MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM
+ warp_def 7, 4, 3, 2, MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM
ShoalCave_LowTideStairsRoom_MapBGEvents:: @ 838DE1C
bg_event 11, 11, 3, 0, 0, ShoalCave_LowTideStairsRoom_EventScript_15E3B7
diff --git a/data/maps/events/SingleBattleColosseum.inc b/data/maps/events/SingleBattleColosseum.inc
index 1d4b51476..181195444 100644
--- a/data/maps/events/SingleBattleColosseum.inc
+++ b/data/maps/events/SingleBattleColosseum.inc
@@ -2,8 +2,8 @@ SingleBattleColosseum_MapObjects:: @ 83912E4
object_event 1, MAP_OBJ_GFX_WOMAN_6, 0, 9, 0, 3, 0, 3, 9, 0, 0, 0, 0, 0, 0, SingleBattleColosseum_EventScript_1A449E, 0, 0, 0
SingleBattleColosseum_MapWarps:: @ 83912FC
- warp_def 6, 8, 3, 127, NONE
- warp_def 7, 8, 3, 127, NONE
+ warp_def 6, 8, 3, 127, MAP_NONE
+ warp_def 7, 8, 3, 127, MAP_NONE
SingleBattleColosseum_MapCoordEvents:: @ 839130C
coord_event 3, 5, 3, 0, 0x4000, 0, 0, SingleBattleColosseum_EventScript_1A436F
diff --git a/data/maps/events/SkyPillar_1F.inc b/data/maps/events/SkyPillar_1F.inc
index eaf7fa955..2af7aaa76 100644
--- a/data/maps/events/SkyPillar_1F.inc
+++ b/data/maps/events/SkyPillar_1F.inc
@@ -1,7 +1,7 @@
SkyPillar_1F_MapWarps:: @ 838ED38
- warp_def 6, 13, 3, 1, SkyPillar_Outside
- warp_def 7, 13, 3, 1, SkyPillar_Outside
- warp_def 10, 1, 3, 0, SkyPillar_2F
+ warp_def 6, 13, 3, 1, MAP_SKY_PILLAR_OUTSIDE
+ warp_def 7, 13, 3, 1, MAP_SKY_PILLAR_OUTSIDE
+ warp_def 10, 1, 3, 0, MAP_SKY_PILLAR_2F
SkyPillar_1F_MapEvents:: @ 838ED50
map_events 0x0, SkyPillar_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SkyPillar_2F.inc b/data/maps/events/SkyPillar_2F.inc
index ffd0d7d25..48fcb9fec 100644
--- a/data/maps/events/SkyPillar_2F.inc
+++ b/data/maps/events/SkyPillar_2F.inc
@@ -1,6 +1,6 @@
SkyPillar_2F_MapWarps:: @ 838ED64
- warp_def 10, 1, 3, 2, SkyPillar_1F
- warp_def 3, 1, 3, 0, SkyPillar_3F
+ warp_def 10, 1, 3, 2, MAP_SKY_PILLAR_1F
+ warp_def 3, 1, 3, 0, MAP_SKY_PILLAR_3F
SkyPillar_2F_MapEvents:: @ 838ED74
map_events 0x0, SkyPillar_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SkyPillar_3F.inc b/data/maps/events/SkyPillar_3F.inc
index c34440ab7..4aeda3339 100644
--- a/data/maps/events/SkyPillar_3F.inc
+++ b/data/maps/events/SkyPillar_3F.inc
@@ -1,7 +1,7 @@
SkyPillar_3F_MapWarps:: @ 838ED88
- warp_def 3, 1, 3, 1, SkyPillar_2F
- warp_def 11, 1, 3, 0, SkyPillar_4F
- warp_def 7, 1, 3, 1, SkyPillar_4F
+ warp_def 3, 1, 3, 1, MAP_SKY_PILLAR_2F
+ warp_def 11, 1, 3, 0, MAP_SKY_PILLAR_4F
+ warp_def 7, 1, 3, 1, MAP_SKY_PILLAR_4F
SkyPillar_3F_MapEvents:: @ 838EDA0
map_events 0x0, SkyPillar_3F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SkyPillar_4F.inc b/data/maps/events/SkyPillar_4F.inc
index 77586a25a..3e908ed74 100644
--- a/data/maps/events/SkyPillar_4F.inc
+++ b/data/maps/events/SkyPillar_4F.inc
@@ -1,7 +1,7 @@
SkyPillar_4F_MapWarps:: @ 838EDB4
- warp_def 11, 1, 3, 1, SkyPillar_3F
- warp_def 7, 1, 3, 2, SkyPillar_3F
- warp_def 3, 1, 3, 0, SkyPillar_5F
+ warp_def 11, 1, 3, 1, MAP_SKY_PILLAR_3F
+ warp_def 7, 1, 3, 2, MAP_SKY_PILLAR_3F
+ warp_def 3, 1, 3, 0, MAP_SKY_PILLAR_5F
SkyPillar_4F_MapEvents:: @ 838EDCC
map_events 0x0, SkyPillar_4F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SkyPillar_5F.inc b/data/maps/events/SkyPillar_5F.inc
index 7c4ea5a97..badae77af 100644
--- a/data/maps/events/SkyPillar_5F.inc
+++ b/data/maps/events/SkyPillar_5F.inc
@@ -1,6 +1,6 @@
SkyPillar_5F_MapWarps:: @ 838EE2C
- warp_def 3, 1, 3, 2, SkyPillar_4F
- warp_def 10, 1, 3, 0, SkyPillar_Top
+ warp_def 3, 1, 3, 2, MAP_SKY_PILLAR_4F
+ warp_def 10, 1, 3, 0, MAP_SKY_PILLAR_TOP
SkyPillar_5F_MapEvents:: @ 838EE3C
map_events 0x0, SkyPillar_5F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SkyPillar_Entrance.inc b/data/maps/events/SkyPillar_Entrance.inc
index d27442989..904b3b9ae 100644
--- a/data/maps/events/SkyPillar_Entrance.inc
+++ b/data/maps/events/SkyPillar_Entrance.inc
@@ -1,6 +1,6 @@
SkyPillar_Entrance_MapWarps:: @ 838ECF0
- warp_def 6, 16, 3, 0, Route131
- warp_def 14, 4, 3, 0, SkyPillar_Outside
+ warp_def 6, 16, 3, 0, MAP_ROUTE131
+ warp_def 14, 4, 3, 0, MAP_SKY_PILLAR_OUTSIDE
SkyPillar_Entrance_MapEvents:: @ 838ED00
map_events 0x0, SkyPillar_Entrance_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SkyPillar_Outside.inc b/data/maps/events/SkyPillar_Outside.inc
index 05ffe4df8..120cd982b 100644
--- a/data/maps/events/SkyPillar_Outside.inc
+++ b/data/maps/events/SkyPillar_Outside.inc
@@ -1,6 +1,6 @@
SkyPillar_Outside_MapWarps:: @ 838ED14
- warp_def 17, 13, 3, 1, SkyPillar_Entrance
- warp_def 14, 5, 3, 0, SkyPillar_1F
+ warp_def 17, 13, 3, 1, MAP_SKY_PILLAR_ENTRANCE
+ warp_def 14, 5, 3, 0, MAP_SKY_PILLAR_1F
SkyPillar_Outside_MapEvents:: @ 838ED24
map_events 0x0, SkyPillar_Outside_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SkyPillar_Top.inc b/data/maps/events/SkyPillar_Top.inc
index 6c9d8abc6..5d5fc52d4 100644
--- a/data/maps/events/SkyPillar_Top.inc
+++ b/data/maps/events/SkyPillar_Top.inc
@@ -1,8 +1,8 @@
SkyPillar_Top_MapObjects:: @ 838EE50
- object_event 1, MAP_OBJ_GFX_RAYQUAZA, 0, 14, 0, 6, 0, 3, 8, 17, 0, 0, 0, 0, 0, SkyPillar_Top_EventScript_15F316, 773, 0, 0
+ object_event 1, MAP_OBJ_GFX_RAYQUAZA, 0, 14, 0, 6, 0, 3, 8, 17, 0, 0, 0, 0, 0, SkyPillar_Top_EventScript_15F316, FLAG_HIDE_RAYQUAZA, 0, 0
SkyPillar_Top_MapWarps:: @ 838EE68
- warp_def 16, 14, 3, 1, SkyPillar_5F
+ warp_def 16, 14, 3, 1, MAP_SKY_PILLAR_5F
SkyPillar_Top_MapEvents:: @ 838EE70
map_events SkyPillar_Top_MapObjects, SkyPillar_Top_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SlateportCity.inc b/data/maps/events/SlateportCity.inc
index bef2bf0d9..adb85b96f 100644
--- a/data/maps/events/SlateportCity.inc
+++ b/data/maps/events/SlateportCity.inc
@@ -3,13 +3,13 @@ SlateportCity_MapObjects:: @ 837F7AC
object_event 2, MAP_OBJ_GFX_MAN_1, 0, 35, 0, 27, 0, 3, 5, 1, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BBF3, 0, 0, 0
object_event 3, MAP_OBJ_GFX_BOY_4, 0, 15, 0, 13, 0, 3, 2, 33, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BBB5, 0, 0, 0
object_event 4, MAP_OBJ_GFX_WOMAN_5, 0, 26, 0, 29, 0, 3, 1, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BC14, 0, 0, 0
- object_event 5, 240, 0, 31, 0, 27, 0, 3, 7, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BD3A, 882, 0, 0
+ object_event 5, 240, 0, 31, 0, 27, 0, 3, 7, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BD3A, FLAG_HIDE_EVIL_TEAM_SLATEPORT, 0, 0
object_event 6, MAP_OBJ_GFX_COOK, 0, 5, 0, 43, 0, 3, 8, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BB3F, 0, 0, 0
object_event 7, MAP_OBJ_GFX_OLD_WOMAN_2, 0, 20, 0, 37, 0, 3, 1, 17, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BB60, 0, 0, 0
object_event 8, MAP_OBJ_GFX_GIRL_1, 0, 8, 0, 42, 0, 3, 2, 17, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BB81, 0, 0, 0
- object_event 9, MAP_OBJ_GFX_CAMERAMAN, 0, 29, 0, 13, 0, 3, 9, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14C017, 835, 0, 0
- object_event 10, MAP_OBJ_GFX_REPORTER_F, 0, 28, 0, 14, 0, 3, 7, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14C020, 835, 0, 0
- object_event 11, MAP_OBJ_GFX_SCIENTIST_1, 0, 28, 0, 13, 0, 3, 10, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BEBC, 840, 0, 0
+ object_event 9, MAP_OBJ_GFX_CAMERAMAN, 0, 29, 0, 13, 0, 3, 9, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14C017, FLAG_HIDE_GABBY_AND_TY_SLATEPORT, 0, 0
+ object_event 10, MAP_OBJ_GFX_REPORTER_F, 0, 28, 0, 14, 0, 3, 7, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14C020, FLAG_HIDE_GABBY_AND_TY_SLATEPORT, 0, 0
+ object_event 11, MAP_OBJ_GFX_SCIENTIST_1, 0, 28, 0, 13, 0, 3, 10, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BEBC, FLAG_HIDE_STERN_SLATEPORT, 0, 0
object_event 12, MAP_OBJ_GFX_SAILOR, 0, 35, 0, 36, 0, 3, 10, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BCE2, 0, 0, 0
object_event 13, MAP_OBJ_GFX_SAILOR, 0, 28, 0, 46, 0, 3, 5, 1, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BCEB, 0, 0, 0
object_event 14, MAP_OBJ_GFX_WOMAN_2, 0, 9, 0, 50, 0, 3, 3, 16, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BCF4, 0, 0, 0
@@ -17,32 +17,32 @@ SlateportCity_MapObjects:: @ 837F7AC
object_event 16, MAP_OBJ_GFX_SCHOOL_KID_M, 0, 12, 0, 18, 0, 3, 2, 17, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BD06, 0, 0, 0
object_event 17, MAP_OBJ_GFX_MANIAC, 0, 8, 0, 24, 0, 3, 3, 16, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BCB8, 0, 0, 0
object_event 18, MAP_OBJ_GFX_WOMAN_7, 0, 15, 0, 31, 0, 3, 1, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BCD9, 0, 0, 0
- object_event 19, 241, 0, 30, 0, 27, 0, 3, 10, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BD51, 882, 0, 0
- object_event 20, 241, 0, 29, 0, 27, 0, 3, 10, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BD68, 882, 0, 0
+ object_event 19, 241, 0, 30, 0, 27, 0, 3, 10, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BD51, FLAG_HIDE_EVIL_TEAM_SLATEPORT, 0, 0
+ object_event 20, 241, 0, 29, 0, 27, 0, 3, 10, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BD68, FLAG_HIDE_EVIL_TEAM_SLATEPORT, 0, 0
object_event 21, MAP_OBJ_GFX_MART_EMPLOYEE, 0, 6, 0, 38, 0, 3, 10, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BE20, 0, 0, 0
object_event 22, MAP_OBJ_GFX_MART_EMPLOYEE, 0, 5, 0, 51, 0, 3, 8, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BDF2, 0, 0, 0
object_event 23, MAP_OBJ_GFX_MAN_6, 0, 34, 0, 51, 0, 3, 8, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14C029, 0, 0, 0
object_event 24, MAP_OBJ_GFX_WOMAN_7, 0, 4, 0, 47, 0, 3, 8, 0, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BAE0, 0, 0, 0
- object_event 25, MAP_OBJ_GFX_MART_EMPLOYEE, 0, 11, 0, 47, 0, 3, 8, 17, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BE9A, 948, 0, 0
+ object_event 25, MAP_OBJ_GFX_MART_EMPLOYEE, 0, 11, 0, 47, 0, 3, 8, 17, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BE9A, FLAG_HIDE_TM_SALESMAN_SLATEPORT, 0, 0
object_event 26, MAP_OBJ_GFX_MAN_3, 0, 5, 0, 47, 0, 3, 8, 17, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BAB6, 0, 0, 0
- object_event 27, 241, 0, 22, 0, 27, 0, 3, 10, 17, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BD7F, 882, 0, 0
- object_event 28, 241, 0, 23, 0, 27, 0, 3, 7, 17, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BD96, 882, 0, 0
- object_event 29, 241, 0, 24, 0, 27, 0, 3, 10, 17, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BDAD, 882, 0, 0
- object_event 30, 241, 0, 21, 0, 26, 0, 3, 10, 17, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BDC4, 882, 0, 0
- object_event 31, 241, 0, 20, 0, 26, 0, 3, 10, 17, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BDDB, 882, 0, 0
+ object_event 27, 241, 0, 22, 0, 27, 0, 3, 10, 17, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BD7F, FLAG_HIDE_EVIL_TEAM_SLATEPORT, 0, 0
+ object_event 28, 241, 0, 23, 0, 27, 0, 3, 7, 17, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BD96, FLAG_HIDE_EVIL_TEAM_SLATEPORT, 0, 0
+ object_event 29, 241, 0, 24, 0, 27, 0, 3, 10, 17, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BDAD, FLAG_HIDE_EVIL_TEAM_SLATEPORT, 0, 0
+ object_event 30, 241, 0, 21, 0, 26, 0, 3, 10, 17, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BDC4, FLAG_HIDE_EVIL_TEAM_SLATEPORT, 0, 0
+ object_event 31, 241, 0, 20, 0, 26, 0, 3, 10, 17, 0, 0, 0, 0, 0, SlateportCity_EventScript_14BDDB, FLAG_HIDE_EVIL_TEAM_SLATEPORT, 0, 0
SlateportCity_MapWarps:: @ 837FA94
- warp_def 19, 19, 0, 0, SlateportCity_PokemonCenter_1F
- warp_def 13, 26, 0, 0, SlateportCity_Mart
- warp_def 26, 38, 0, 0, SlateportCity_SternsShipyard_1F
- warp_def 10, 12, 0, 0, SlateportCity_ContestLobby
- warp_def 4, 26, 0, 0, SlateportCity_PokemonFanClub
- warp_def 30, 26, 0, 0, SlateportCity_OceanicMuseum_1F
- warp_def 5, 19, 0, 0, SlateportCity_House1
- warp_def 31, 26, 0, 1, SlateportCity_OceanicMuseum_1F
- warp_def 28, 12, 0, 0, SlateportCity_Harbor
- warp_def 40, 7, 0, 2, SlateportCity_Harbor
- warp_def 21, 44, 0, 0, SlateportCity_House2
+ warp_def 19, 19, 0, 0, MAP_SLATEPORT_CITY_POKEMON_CENTER_1F
+ warp_def 13, 26, 0, 0, MAP_SLATEPORT_CITY_MART
+ warp_def 26, 38, 0, 0, MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F
+ warp_def 10, 12, 0, 0, MAP_SLATEPORT_CITY_CONTEST_LOBBY
+ warp_def 4, 26, 0, 0, MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB
+ warp_def 30, 26, 0, 0, MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F
+ warp_def 5, 19, 0, 0, MAP_SLATEPORT_CITY_HOUSE1
+ warp_def 31, 26, 0, 1, MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F
+ warp_def 28, 12, 0, 0, MAP_SLATEPORT_CITY_HARBOR
+ warp_def 40, 7, 0, 2, MAP_SLATEPORT_CITY_HARBOR
+ warp_def 21, 44, 0, 0, MAP_SLATEPORT_CITY_HOUSE2
SlateportCity_MapBGEvents:: @ 837FAEC
bg_event 8, 19, 0, 0, 0, SlateportCity_EventScript_14BCAF
diff --git a/data/maps/events/SlateportCity_ContestHall.inc b/data/maps/events/SlateportCity_ContestHall.inc
index ae3e4ea7b..6bb6a4285 100644
--- a/data/maps/events/SlateportCity_ContestHall.inc
+++ b/data/maps/events/SlateportCity_ContestHall.inc
@@ -14,8 +14,8 @@ SlateportCity_ContestHall_MapObjects:: @ 83878A4
object_event 13, MAP_OBJ_GFX_SAILOR, 0, 0, 0, 17, 0, 3, 2, 65, 0, 0, 0, 0, 0, SlateportCity_ContestHall_EventScript_15555E, 0, 0, 0
SlateportCity_ContestHall_MapWarps:: @ 83879DC
- warp_def 10, 17, 0, 2, SlateportCity_ContestLobby
- warp_def 11, 17, 0, 2, SlateportCity_ContestLobby
+ warp_def 10, 17, 0, 2, MAP_SLATEPORT_CITY_CONTEST_LOBBY
+ warp_def 11, 17, 0, 2, MAP_SLATEPORT_CITY_CONTEST_LOBBY
SlateportCity_ContestHall_MapBGEvents:: @ 83879EC
bg_event 12, 14, 3, 0, 0, SlateportCity_ContestHall_EventScript_155671
diff --git a/data/maps/events/SlateportCity_ContestLobby.inc b/data/maps/events/SlateportCity_ContestLobby.inc
index 74a8bc131..0c701e0ca 100644
--- a/data/maps/events/SlateportCity_ContestLobby.inc
+++ b/data/maps/events/SlateportCity_ContestLobby.inc
@@ -3,15 +3,15 @@ SlateportCity_ContestLobby_MapObjects:: @ 8387788
object_event 2, MAP_OBJ_GFX_OLD_MAN_1, 0, 11, 0, 5, 0, 3, 10, 0, 0, 0, 0, 0, 0, SlateportCity_ContestLobby_EventScript_1B7795, 0, 0, 0
object_event 3, MAP_OBJ_GFX_MAN_4, 0, 0, 0, 3, 0, 3, 3, 16, 0, 0, 0, 0, 0, SlateportCity_ContestLobby_EventScript_1554DE, 0, 0, 0
object_event 4, MAP_OBJ_GFX_GIRL_1, 0, 9, 0, 6, 0, 3, 2, 17, 0, 0, 0, 0, 0, SlateportCity_ContestLobby_EventScript_1554E7, 0, 0, 0
- object_event 5, MAP_OBJ_GFX_REPORTER_M, 0, 7, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, SlateportCity_ContestLobby_EventScript_1AE0B6, 803, 0, 0
+ object_event 5, MAP_OBJ_GFX_REPORTER_M, 0, 7, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, SlateportCity_ContestLobby_EventScript_1AE0B6, FLAG_HIDE_CONTEST_REPORTER_SLATEPORT, 0, 0
object_event 6, MAP_OBJ_GFX_BOY_1, 0, 13, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, SlateportCity_ContestLobby_EventScript_155536, 0, 0, 0
object_event 7, MAP_OBJ_GFX_LITTLE_GIRL_2, 0, 1, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, SlateportCity_ContestLobby_EventScript_1554F9, 0, 0, 0
object_event 8, MAP_OBJ_GFX_WOMAN_3, 0, 12, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SlateportCity_ContestLobby_EventScript_1554F0, 0, 0, 0
SlateportCity_ContestLobby_MapWarps:: @ 8387848
- warp_def 5, 6, 0, 3, SlateportCity
- warp_def 6, 6, 0, 3, SlateportCity
- warp_def 1, 1, 0, 0, SlateportCity_ContestHall
+ warp_def 5, 6, 0, 3, MAP_SLATEPORT_CITY
+ warp_def 6, 6, 0, 3, MAP_SLATEPORT_CITY
+ warp_def 1, 1, 0, 0, MAP_SLATEPORT_CITY_CONTEST_HALL
SlateportCity_ContestLobby_MapBGEvents:: @ 8387860
bg_event 10, 3, 0, 0, 0, SlateportCity_ContestLobby_EventScript_1B7829
diff --git a/data/maps/events/SlateportCity_Harbor.inc b/data/maps/events/SlateportCity_Harbor.inc
index 3fbbd72c2..801f16779 100644
--- a/data/maps/events/SlateportCity_Harbor.inc
+++ b/data/maps/events/SlateportCity_Harbor.inc
@@ -1,18 +1,18 @@
SlateportCity_Harbor_MapObjects:: @ 8387F30
- object_event 1, MAP_OBJ_GFX_BEAUTY, 0, 8, 0, 10, 0, 3, 8, 0, 0, 0, 0, 0, 0, SlateportCity_Harbor_EventScript_1560C4, 905, 0, 0
- object_event 2, MAP_OBJ_GFX_SAILOR, 0, 4, 0, 12, 0, 3, 9, 0, 0, 0, 0, 0, 0, SlateportCity_Harbor_EventScript_1561FF, 905, 0, 0
- object_event 3, MAP_OBJ_GFX_FAT_MAN, 0, 1, 0, 12, 0, 3, 10, 0, 0, 0, 0, 0, 0, SlateportCity_Harbor_EventScript_156208, 905, 0, 0
- object_event 4, MAP_OBJ_GFX_SCIENTIST_1, 0, 6, 0, 13, 0, 3, 1, 0, 0, 0, 0, 0, 0, SlateportCity_Harbor_EventScript_156211, 841, 0, 0
- object_event 5, MAP_OBJ_GFX_SS_TIDAL, 0, 8, 0, 9, 0, 1, 10, 0, 0, 0, 0, 0, 0, 0x0, 860, 0, 0
- object_event 6, 241, 0, 7, 0, 10, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, 845, 0, 0
- object_event 7, 246, 0, 8, 0, 10, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0x0, 846, 0, 0
- object_event 8, MAP_OBJ_GFX_SUBMARINE_SHADOW, 0, 7, 0, 9, 0, 1, 10, 0, 0, 0, 0, 0, 0, 0x0, 848, 0, 0
+ object_event 1, MAP_OBJ_GFX_BEAUTY, 0, 8, 0, 10, 0, 3, 8, 0, 0, 0, 0, 0, 0, SlateportCity_Harbor_EventScript_1560C4, FLAG_HIDE_WORKERS_SLATEPORT_HARBOR, 0, 0
+ object_event 2, MAP_OBJ_GFX_SAILOR, 0, 4, 0, 12, 0, 3, 9, 0, 0, 0, 0, 0, 0, SlateportCity_Harbor_EventScript_1561FF, FLAG_HIDE_WORKERS_SLATEPORT_HARBOR, 0, 0
+ object_event 3, MAP_OBJ_GFX_FAT_MAN, 0, 1, 0, 12, 0, 3, 10, 0, 0, 0, 0, 0, 0, SlateportCity_Harbor_EventScript_156208, FLAG_HIDE_WORKERS_SLATEPORT_HARBOR, 0, 0
+ object_event 4, MAP_OBJ_GFX_SCIENTIST_1, 0, 6, 0, 13, 0, 3, 1, 0, 0, 0, 0, 0, 0, SlateportCity_Harbor_EventScript_156211, FLAG_HIDE_STERN_SLATEPORT_HARBOR, 0, 0
+ object_event 5, MAP_OBJ_GFX_SS_TIDAL, 0, 8, 0, 9, 0, 1, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_SS_TIDAL_SLATEPORT_HARBOR, 0, 0
+ object_event 6, 241, 0, 7, 0, 10, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_GRUNT_1_SLATEPORT_HARBOR, 0, 0
+ object_event 7, 246, 0, 8, 0, 10, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_GRUNT_2_SLATEPORT_HARBOR, 0, 0
+ object_event 8, MAP_OBJ_GFX_SUBMARINE_SHADOW, 0, 7, 0, 9, 0, 1, 10, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_SUBMARINE_SHADOW_SLATEPORT_HARBOR, 0, 0
SlateportCity_Harbor_MapWarps:: @ 8387FF0
- warp_def 11, 14, 0, 8, SlateportCity
- warp_def 12, 14, 0, 8, SlateportCity
- warp_def 19, 15, 0, 9, SlateportCity
- warp_def 20, 15, 0, 9, SlateportCity
+ warp_def 11, 14, 0, 8, MAP_SLATEPORT_CITY
+ warp_def 12, 14, 0, 8, MAP_SLATEPORT_CITY
+ warp_def 19, 15, 0, 9, MAP_SLATEPORT_CITY
+ warp_def 20, 15, 0, 9, MAP_SLATEPORT_CITY
SlateportCity_Harbor_MapCoordEvents:: @ 8388010
coord_event 8, 11, 3, 0, 0x40a0, 1, 0, SlateportCity_Harbor_EventScript_155F9B
diff --git a/data/maps/events/SlateportCity_House1.inc b/data/maps/events/SlateportCity_House1.inc
index 3379b7fef..6f5f72944 100644
--- a/data/maps/events/SlateportCity_House1.inc
+++ b/data/maps/events/SlateportCity_House1.inc
@@ -2,8 +2,8 @@ SlateportCity_House1_MapObjects:: @ 8387A18
object_event 1, MAP_OBJ_GFX_OLD_MAN_1, 0, 7, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, SlateportCity_House1_EventScript_15567B, 0, 0, 0
SlateportCity_House1_MapWarps:: @ 8387A30
- warp_def 3, 7, 0, 6, SlateportCity
- warp_def 4, 7, 0, 6, SlateportCity
+ warp_def 3, 7, 0, 6, MAP_SLATEPORT_CITY
+ warp_def 4, 7, 0, 6, MAP_SLATEPORT_CITY
SlateportCity_House1_MapEvents:: @ 8387A40
map_events SlateportCity_House1_MapObjects, SlateportCity_House1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SlateportCity_House2.inc b/data/maps/events/SlateportCity_House2.inc
index a147ec7ce..ae3f01900 100644
--- a/data/maps/events/SlateportCity_House2.inc
+++ b/data/maps/events/SlateportCity_House2.inc
@@ -3,8 +3,8 @@ SlateportCity_House2_MapObjects:: @ 8388064
object_event 2, MAP_OBJ_GFX_GIRL_3, 0, 7, 0, 4, 0, 3, 9, 0, 0, 0, 0, 0, 0, SlateportCity_House2_EventScript_156399, 0, 0, 0
SlateportCity_House2_MapWarps:: @ 8388094
- warp_def 3, 7, 0, 10, SlateportCity
- warp_def 4, 7, 0, 10, SlateportCity
+ warp_def 3, 7, 0, 10, MAP_SLATEPORT_CITY
+ warp_def 4, 7, 0, 10, MAP_SLATEPORT_CITY
SlateportCity_House2_MapEvents:: @ 83880A4
map_events SlateportCity_House2_MapObjects, SlateportCity_House2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SlateportCity_Mart.inc b/data/maps/events/SlateportCity_Mart.inc
index 54072eccc..ae111b933 100644
--- a/data/maps/events/SlateportCity_Mart.inc
+++ b/data/maps/events/SlateportCity_Mart.inc
@@ -4,8 +4,8 @@ SlateportCity_Mart_MapObjects:: @ 83881B0
object_event 3, MAP_OBJ_GFX_MAN_4, 0, 5, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, SlateportCity_Mart_EventScript_156447, 0, 0, 0
SlateportCity_Mart_MapWarps:: @ 83881F8
- warp_def 3, 7, 0, 1, SlateportCity
- warp_def 4, 7, 0, 1, SlateportCity
+ warp_def 3, 7, 0, 1, MAP_SLATEPORT_CITY
+ warp_def 4, 7, 0, 1, MAP_SLATEPORT_CITY
SlateportCity_Mart_MapEvents:: @ 8388208
map_events SlateportCity_Mart_MapObjects, SlateportCity_Mart_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SlateportCity_OceanicMuseum_1F.inc b/data/maps/events/SlateportCity_OceanicMuseum_1F.inc
index 9756d6745..a4c92861d 100644
--- a/data/maps/events/SlateportCity_OceanicMuseum_1F.inc
+++ b/data/maps/events/SlateportCity_OceanicMuseum_1F.inc
@@ -1,23 +1,23 @@
SlateportCity_OceanicMuseum_1F_MapObjects:: @ 8387B38
object_event 1, MAP_OBJ_GFX_BEAUTY, 0, 7, 0, 7, 0, 3, 10, 0, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155ADB, 0, 0, 0
- object_event 2, 241, 0, 18, 0, 5, 0, 3, 7, 0, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155BA1, 883, 0, 0
- object_event 3, 241, 0, 12, 0, 2, 0, 3, 7, 0, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155BAA, 883, 0, 0
- object_event 4, 241, 0, 2, 0, 8, 0, 3, 7, 0, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155B98, 883, 0, 0
- object_event 5, 240, 0, 3, 0, 4, 0, 3, 9, 0, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155B8F, 883, 0, 0
- object_event 6, 241, 0, 14, 0, 4, 0, 3, 10, 0, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155BB3, 883, 0, 0
+ object_event 2, 241, 0, 18, 0, 5, 0, 3, 7, 0, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155BA1, FLAG_HIDE_EVIL_TEAM_OCEANIC_MUSEUM, 0, 0
+ object_event 3, 241, 0, 12, 0, 2, 0, 3, 7, 0, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155BAA, FLAG_HIDE_EVIL_TEAM_OCEANIC_MUSEUM, 0, 0
+ object_event 4, 241, 0, 2, 0, 8, 0, 3, 7, 0, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155B98, FLAG_HIDE_EVIL_TEAM_OCEANIC_MUSEUM, 0, 0
+ object_event 5, 240, 0, 3, 0, 4, 0, 3, 9, 0, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155B8F, FLAG_HIDE_EVIL_TEAM_OCEANIC_MUSEUM, 0, 0
+ object_event 6, 241, 0, 14, 0, 4, 0, 3, 10, 0, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155BB3, FLAG_HIDE_EVIL_TEAM_OCEANIC_MUSEUM, 0, 0
object_event 7, MAP_OBJ_GFX_BEAUTY, 0, 12, 0, 7, 0, 3, 9, 0, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155ADB, 0, 0, 0
- object_event 8, 241, 0, 8, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155BBC, 883, 0, 0
- object_event 9, MAP_OBJ_GFX_WOMAN_7, 0, 4, 0, 2, 0, 3, 1, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155C16, 961, 0, 0
- object_event 10, MAP_OBJ_GFX_MANIAC, 0, 10, 0, 2, 0, 3, 7, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155C1F, 961, 0, 0
- object_event 11, MAP_OBJ_GFX_MAN_3, 0, 17, 0, 7, 0, 3, 10, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155C28, 961, 0, 0
- object_event 12, MAP_OBJ_GFX_LITTLE_GIRL_2, 0, 18, 0, 8, 0, 3, 7, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155C31, 961, 0, 0
- object_event 13, 241, 0, 9, 0, 4, 0, 3, 21, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155C3A, 965, 0, 0
- object_event 14, MAP_OBJ_GFX_REPORTER_M, 0, 7, 0, 4, 0, 3, 1, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_1ADEE0, 961, 0, 0
+ object_event 8, 241, 0, 8, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155BBC, FLAG_HIDE_EVIL_TEAM_OCEANIC_MUSEUM, 0, 0
+ object_event 9, MAP_OBJ_GFX_WOMAN_7, 0, 4, 0, 2, 0, 3, 1, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155C16, FLAG_HIDE_OCEANIC_MUSEUM_VISITORS, 0, 0
+ object_event 10, MAP_OBJ_GFX_MANIAC, 0, 10, 0, 2, 0, 3, 7, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155C1F, FLAG_HIDE_OCEANIC_MUSEUM_VISITORS, 0, 0
+ object_event 11, MAP_OBJ_GFX_MAN_3, 0, 17, 0, 7, 0, 3, 10, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155C28, FLAG_HIDE_OCEANIC_MUSEUM_VISITORS, 0, 0
+ object_event 12, MAP_OBJ_GFX_LITTLE_GIRL_2, 0, 18, 0, 8, 0, 3, 7, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155C31, FLAG_HIDE_OCEANIC_MUSEUM_VISITORS, 0, 0
+ object_event 13, 241, 0, 9, 0, 4, 0, 3, 21, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155C3A, FLAG_HIDE_SCARED_GRUNT_OCEANIC_MUSEUM, 0, 0
+ object_event 14, MAP_OBJ_GFX_REPORTER_M, 0, 7, 0, 4, 0, 3, 1, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_1ADEE0, FLAG_HIDE_OCEANIC_MUSEUM_VISITORS, 0, 0
SlateportCity_OceanicMuseum_1F_MapWarps:: @ 8387C88
- warp_def 9, 8, 0, 5, SlateportCity
- warp_def 10, 8, 0, 7, SlateportCity
- warp_def 6, 1, 0, 0, SlateportCity_OceanicMuseum_2F
+ warp_def 9, 8, 0, 5, MAP_SLATEPORT_CITY
+ warp_def 10, 8, 0, 7, MAP_SLATEPORT_CITY
+ warp_def 6, 1, 0, 0, MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F
SlateportCity_OceanicMuseum_1F_MapCoordEvents:: @ 8387CA0
coord_event 9, 7, 3, 0, 0x40aa, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_155AE4
diff --git a/data/maps/events/SlateportCity_OceanicMuseum_2F.inc b/data/maps/events/SlateportCity_OceanicMuseum_2F.inc
index a081e15d3..911d8e7e2 100644
--- a/data/maps/events/SlateportCity_OceanicMuseum_2F.inc
+++ b/data/maps/events/SlateportCity_OceanicMuseum_2F.inc
@@ -1,14 +1,14 @@
SlateportCity_OceanicMuseum_2F_MapObjects:: @ 8387D70
- object_event 1, MAP_OBJ_GFX_SCIENTIST_1, 0, 13, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_2F_EventScript_155CE6, 887, 0, 0
- object_event 2, 246, 0, 6, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 886, 0, 0
- object_event 3, 241, 0, 6, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 884, 0, 0
- object_event 4, 241, 0, 6, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, 885, 0, 0
- object_event 5, MAP_OBJ_GFX_OLD_MAN_2, 0, 12, 0, 7, 0, 3, 10, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_2F_EventScript_155F34, 961, 0, 0
- object_event 6, MAP_OBJ_GFX_WOMAN_2, 0, 9, 0, 6, 0, 3, 1, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_2F_EventScript_155F3D, 961, 0, 0
- object_event 7, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 1, 0, 3, 0, 3, 10, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_2F_EventScript_155F46, 961, 0, 0
+ object_event 1, MAP_OBJ_GFX_SCIENTIST_1, 0, 13, 0, 6, 0, 3, 8, 0, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_2F_EventScript_155CE6, FLAG_HIDE_STERN_OCEANIC_MUSEUM_2F, 0, 0
+ object_event 2, 246, 0, 6, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_EVIL_TEAM_LEADER_OCEANIC_MUSEUM_2F, 0, 0
+ object_event 3, 241, 0, 6, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_GRUNT_1_OCEANIC_MUSEUM_2F, 0, 0
+ object_event 4, 241, 0, 6, 0, 1, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_GRUNT_2_OCEANIC_MUSEUM_2F, 0, 0
+ object_event 5, MAP_OBJ_GFX_OLD_MAN_2, 0, 12, 0, 7, 0, 3, 10, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_2F_EventScript_155F34, FLAG_HIDE_OCEANIC_MUSEUM_VISITORS, 0, 0
+ object_event 6, MAP_OBJ_GFX_WOMAN_2, 0, 9, 0, 6, 0, 3, 1, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_2F_EventScript_155F3D, FLAG_HIDE_OCEANIC_MUSEUM_VISITORS, 0, 0
+ object_event 7, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 1, 0, 3, 0, 3, 10, 17, 0, 0, 0, 0, 0, SlateportCity_OceanicMuseum_2F_EventScript_155F46, FLAG_HIDE_OCEANIC_MUSEUM_VISITORS, 0, 0
SlateportCity_OceanicMuseum_2F_MapWarps:: @ 8387E18
- warp_def 6, 1, 0, 2, SlateportCity_OceanicMuseum_1F
+ warp_def 6, 1, 0, 2, MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F
SlateportCity_OceanicMuseum_2F_MapBGEvents:: @ 8387E20
bg_event 18, 4, 0, 0, 0, SlateportCity_OceanicMuseum_2F_EventScript_155EDA
diff --git a/data/maps/events/SlateportCity_PokemonCenter_1F.inc b/data/maps/events/SlateportCity_PokemonCenter_1F.inc
index dfd38dc51..bdfabe5c6 100644
--- a/data/maps/events/SlateportCity_PokemonCenter_1F.inc
+++ b/data/maps/events/SlateportCity_PokemonCenter_1F.inc
@@ -4,9 +4,9 @@ SlateportCity_PokemonCenter_1F_MapObjects:: @ 83880B8
object_event 3, MAP_OBJ_GFX_WOMAN_7, 0, 10, 0, 7, 0, 3, 10, 0, 0, 0, 0, 0, 0, SlateportCity_PokemonCenter_1F_EventScript_1563E5, 0, 0, 0
SlateportCity_PokemonCenter_1F_MapWarps:: @ 8388100
- warp_def 7, 8, 3, 0, SlateportCity
- warp_def 6, 8, 3, 0, SlateportCity
- warp_def 1, 6, 4, 0, SlateportCity_PokemonCenter_2F
+ warp_def 7, 8, 3, 0, MAP_SLATEPORT_CITY
+ warp_def 6, 8, 3, 0, MAP_SLATEPORT_CITY
+ warp_def 1, 6, 4, 0, MAP_SLATEPORT_CITY_POKEMON_CENTER_2F
SlateportCity_PokemonCenter_1F_MapEvents:: @ 8388118
map_events SlateportCity_PokemonCenter_1F_MapObjects, SlateportCity_PokemonCenter_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SlateportCity_PokemonCenter_2F.inc b/data/maps/events/SlateportCity_PokemonCenter_2F.inc
index db723fa33..2ecc48423 100644
--- a/data/maps/events/SlateportCity_PokemonCenter_2F.inc
+++ b/data/maps/events/SlateportCity_PokemonCenter_2F.inc
@@ -4,11 +4,11 @@ SlateportCity_PokemonCenter_2F_MapObjects:: @ 838812C
object_event 3, MAP_OBJ_GFX_TEALA, 0, 10, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SlateportCity_PokemonCenter_2F_EventScript_15640A, 0, 0, 0
SlateportCity_PokemonCenter_2F_MapWarps:: @ 8388174
- warp_def 1, 5, 4, 2, SlateportCity_PokemonCenter_1F
- warp_def 5, 1, 0, 0, SingleBattleColosseum
- warp_def 8, 1, 0, 0, TradeCenter
- warp_def 11, 1, 0, 0, RecordCorner
- warp_def 0, 0, 0, 0, DoubleBattleColosseum
+ warp_def 1, 5, 4, 2, MAP_SLATEPORT_CITY_POKEMON_CENTER_1F
+ warp_def 5, 1, 0, 0, MAP_SINGLE_BATTLE_COLOSSEUM
+ warp_def 8, 1, 0, 0, MAP_TRADE_CENTER
+ warp_def 11, 1, 0, 0, MAP_RECORD_CORNER
+ warp_def 0, 0, 0, 0, MAP_DOUBLE_BATTLE_COLOSSEUM
SlateportCity_PokemonCenter_2F_MapEvents:: @ 838819C
map_events SlateportCity_PokemonCenter_2F_MapObjects, SlateportCity_PokemonCenter_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SlateportCity_PokemonFanClub.inc b/data/maps/events/SlateportCity_PokemonFanClub.inc
index 8003a3439..481886da8 100644
--- a/data/maps/events/SlateportCity_PokemonFanClub.inc
+++ b/data/maps/events/SlateportCity_PokemonFanClub.inc
@@ -9,8 +9,8 @@ SlateportCity_PokemonFanClub_MapObjects:: @ 8387A54
object_event 8, MAP_OBJ_GFX_AZUMARILL, 0, 10, 0, 8, 0, 3, 1, 17, 0, 0, 0, 0, 0, SlateportCity_PokemonFanClub_EventScript_155AB7, 0, 0, 0
SlateportCity_PokemonFanClub_MapWarps:: @ 8387B14
- warp_def 6, 10, 0, 4, SlateportCity
- warp_def 7, 10, 0, 4, SlateportCity
+ warp_def 6, 10, 0, 4, MAP_SLATEPORT_CITY
+ warp_def 7, 10, 0, 4, MAP_SLATEPORT_CITY
SlateportCity_PokemonFanClub_MapEvents:: @ 8387B24
map_events SlateportCity_PokemonFanClub_MapObjects, SlateportCity_PokemonFanClub_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SlateportCity_SternsShipyard_1F.inc b/data/maps/events/SlateportCity_SternsShipyard_1F.inc
index 38d14fa4e..a20a2f1b6 100644
--- a/data/maps/events/SlateportCity_SternsShipyard_1F.inc
+++ b/data/maps/events/SlateportCity_SternsShipyard_1F.inc
@@ -2,12 +2,12 @@ SlateportCity_SternsShipyard_1F_MapObjects:: @ 8387698
object_event 1, MAP_OBJ_GFX_MAN_1, 0, 5, 0, 5, 0, 3, 8, 0, 0, 0, 0, 0, 0, SlateportCity_SternsShipyard_1F_EventScript_155336, 0, 0, 0
object_event 2, MAP_OBJ_GFX_SCIENTIST_1, 0, 10, 0, 7, 0, 3, 7, 0, 0, 0, 0, 0, 0, SlateportCity_SternsShipyard_1F_EventScript_1553E3, 0, 0, 0
object_event 3, MAP_OBJ_GFX_SCIENTIST_1, 0, 18, 0, 8, 0, 3, 5, 1, 0, 0, 0, 0, 0, SlateportCity_SternsShipyard_1F_EventScript_1553EC, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_OLD_MAN_1, 0, 12, 0, 11, 0, 3, 2, 33, 0, 0, 0, 0, 0, SlateportCity_SternsShipyard_1F_EventScript_1553F5, 869, 0, 0
+ object_event 4, MAP_OBJ_GFX_OLD_MAN_1, 0, 12, 0, 11, 0, 3, 2, 33, 0, 0, 0, 0, 0, SlateportCity_SternsShipyard_1F_EventScript_1553F5, FLAG_HIDE_BRINEY_SLATEPORT_SHIPYARD, 0, 0
SlateportCity_SternsShipyard_1F_MapWarps:: @ 83876F8
- warp_def 2, 14, 0, 2, SlateportCity
- warp_def 3, 14, 0, 2, SlateportCity
- warp_def 3, 1, 0, 0, SlateportCity_SternsShipyard_2F
+ warp_def 2, 14, 0, 2, MAP_SLATEPORT_CITY
+ warp_def 3, 14, 0, 2, MAP_SLATEPORT_CITY
+ warp_def 3, 1, 0, 0, MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F
SlateportCity_SternsShipyard_1F_MapEvents:: @ 8387710
map_events SlateportCity_SternsShipyard_1F_MapObjects, SlateportCity_SternsShipyard_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SlateportCity_SternsShipyard_2F.inc b/data/maps/events/SlateportCity_SternsShipyard_2F.inc
index cd26ed1cc..e6d3e7636 100644
--- a/data/maps/events/SlateportCity_SternsShipyard_2F.inc
+++ b/data/maps/events/SlateportCity_SternsShipyard_2F.inc
@@ -4,7 +4,7 @@ SlateportCity_SternsShipyard_2F_MapObjects:: @ 8387724
object_event 3, MAP_OBJ_GFX_SCIENTIST_1, 0, 0, 0, 9, 0, 3, 7, 0, 0, 0, 0, 0, 0, SlateportCity_SternsShipyard_2F_EventScript_155408, 0, 0, 0
SlateportCity_SternsShipyard_2F_MapWarps:: @ 838776C
- warp_def 3, 1, 0, 2, SlateportCity_SternsShipyard_1F
+ warp_def 3, 1, 0, 2, MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F
SlateportCity_SternsShipyard_2F_MapEvents:: @ 8387774
map_events SlateportCity_SternsShipyard_2F_MapObjects, SlateportCity_SternsShipyard_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SootopolisCity.inc b/data/maps/events/SootopolisCity.inc
index a93db6a93..3bbd87f0b 100644
--- a/data/maps/events/SootopolisCity.inc
+++ b/data/maps/events/SootopolisCity.inc
@@ -1,29 +1,29 @@
SootopolisCity_MapObjects:: @ 8380608
- object_event 1, MAP_OBJ_GFX_BEAUTY, 0, 29, 0, 20, 0, 3, 8, 0, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D18D, 855, 0, 0
- object_event 2, MAP_OBJ_GFX_BEAUTY, 0, 33, 0, 20, 0, 3, 8, 0, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D196, 856, 0, 0
- object_event 3, MAP_OBJ_GFX_OLD_MAN_1, 0, 36, 0, 21, 0, 3, 8, 0, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D16E, 854, 0, 0
- object_event 4, MAP_OBJ_GFX_WOMAN_5, 0, 47, 0, 42, 0, 3, 8, 0, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D268, 854, 0, 0
- object_event 5, MAP_OBJ_GFX_WALLACE, 0, 32, 0, 21, 0, 3, 9, 0, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D48F, 816, 0, 0
- object_event 6, MAP_OBJ_GFX_GIRL_2, 0, 9, 0, 43, 0, 3, 5, 1, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D19F, 854, 0, 0
- object_event 7, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 51, 0, 14, 0, 3, 8, 0, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D2C5, 854, 0, 0
- object_event 8, MAP_OBJ_GFX_BOY_1, 0, 43, 0, 26, 0, 3, 1, 0, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D2E4, 854, 0, 0
- object_event 9, MAP_OBJ_GFX_MAN_1, 0, 26, 0, 4, 0, 3, 5, 1, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D287, 854, 0, 0
- object_event 10, MAP_OBJ_GFX_STEVEN, 0, 30, 0, 21, 0, 3, 10, 17, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D498, 973, 0, 0
- object_event 11, MAP_OBJ_GFX_WOMAN_7, 0, 49, 0, 34, 0, 3, 3, 17, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D2A6, 854, 0, 0
+ object_event 1, MAP_OBJ_GFX_BEAUTY, 0, 29, 0, 20, 0, 3, 8, 0, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D18D, FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_1, 0, 0
+ object_event 2, MAP_OBJ_GFX_BEAUTY, 0, 33, 0, 20, 0, 3, 8, 0, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D196, FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_2, 0, 0
+ object_event 3, MAP_OBJ_GFX_OLD_MAN_1, 0, 36, 0, 21, 0, 3, 8, 0, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D16E, FLAG_HIDE_SOOTOPOLIS_RESIDENTS, 0, 0
+ object_event 4, MAP_OBJ_GFX_WOMAN_5, 0, 47, 0, 42, 0, 3, 8, 0, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D268, FLAG_HIDE_SOOTOPOLIS_RESIDENTS, 0, 0
+ object_event 5, MAP_OBJ_GFX_WALLACE, 0, 32, 0, 21, 0, 3, 9, 0, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D48F, FLAG_HIDE_WALLACE_SOOTOPOLIS, 0, 0
+ object_event 6, MAP_OBJ_GFX_GIRL_2, 0, 9, 0, 43, 0, 3, 5, 1, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D19F, FLAG_HIDE_SOOTOPOLIS_RESIDENTS, 0, 0
+ object_event 7, MAP_OBJ_GFX_LITTLE_BOY_1, 0, 51, 0, 14, 0, 3, 8, 0, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D2C5, FLAG_HIDE_SOOTOPOLIS_RESIDENTS, 0, 0
+ object_event 8, MAP_OBJ_GFX_BOY_1, 0, 43, 0, 26, 0, 3, 1, 0, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D2E4, FLAG_HIDE_SOOTOPOLIS_RESIDENTS, 0, 0
+ object_event 9, MAP_OBJ_GFX_MAN_1, 0, 26, 0, 4, 0, 3, 5, 1, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D287, FLAG_HIDE_SOOTOPOLIS_RESIDENTS, 0, 0
+ object_event 10, MAP_OBJ_GFX_STEVEN, 0, 30, 0, 21, 0, 3, 10, 17, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D498, FLAG_HIDE_STEVEN_SOOTOPOLIS, 0, 0
+ object_event 11, MAP_OBJ_GFX_WOMAN_7, 0, 49, 0, 34, 0, 3, 3, 17, 0, 0, 0, 0, 0, SootopolisCity_EventScript_14D2A6, FLAG_HIDE_SOOTOPOLIS_RESIDENTS, 0, 0
SootopolisCity_MapWarps:: @ 8380710
- warp_def 43, 31, 0, 0, SootopolisCity_PokemonCenter_1F
- warp_def 17, 29, 0, 0, SootopolisCity_Mart
- warp_def 31, 32, 0, 0, SootopolisCity_Gym_1F
- warp_def 31, 16, 3, 0, CaveOfOrigin_Entrance
- warp_def 9, 6, 0, 0, SootopolisCity_House1
- warp_def 45, 6, 0, 0, SootopolisCity_House2
- warp_def 9, 17, 0, 0, SootopolisCity_House3
- warp_def 44, 17, 0, 0, SootopolisCity_House4
- warp_def 9, 26, 0, 0, SootopolisCity_House5
- warp_def 53, 28, 0, 0, SootopolisCity_House6
- warp_def 8, 35, 0, 0, SootopolisCity_House7
- warp_def 48, 25, 0, 0, SootopolisCity_House8
+ warp_def 43, 31, 0, 0, MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F
+ warp_def 17, 29, 0, 0, MAP_SOOTOPOLIS_CITY_MART
+ warp_def 31, 32, 0, 0, MAP_SOOTOPOLIS_CITY_GYM_1F
+ warp_def 31, 16, 3, 0, MAP_CAVE_OF_ORIGIN_ENTRANCE
+ warp_def 9, 6, 0, 0, MAP_SOOTOPOLIS_CITY_HOUSE1
+ warp_def 45, 6, 0, 0, MAP_SOOTOPOLIS_CITY_HOUSE2
+ warp_def 9, 17, 0, 0, MAP_SOOTOPOLIS_CITY_HOUSE3
+ warp_def 44, 17, 0, 0, MAP_SOOTOPOLIS_CITY_HOUSE4
+ warp_def 9, 26, 0, 0, MAP_SOOTOPOLIS_CITY_HOUSE5
+ warp_def 53, 28, 0, 0, MAP_SOOTOPOLIS_CITY_HOUSE6
+ warp_def 8, 35, 0, 0, MAP_SOOTOPOLIS_CITY_HOUSE7
+ warp_def 48, 25, 0, 0, MAP_SOOTOPOLIS_CITY_HOUSE8
SootopolisCity_MapCoordEvents:: @ 8380770
coord_event 25, 6, 3, 0, 0x405e, 1, 0, SootopolisCity_EventScript_14D308
diff --git a/data/maps/events/SootopolisCity_Gym_1F.inc b/data/maps/events/SootopolisCity_Gym_1F.inc
index 88707692e..4e655191d 100644
--- a/data/maps/events/SootopolisCity_Gym_1F.inc
+++ b/data/maps/events/SootopolisCity_Gym_1F.inc
@@ -1,11 +1,11 @@
SootopolisCity_Gym_1F_MapObjects:: @ 838ACF0
- object_event 1, MAP_OBJ_GFX_WALLACE, 0, 8, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SootopolisCity_Gym_1F_EventScript_15AFFF, 815, 0, 0
+ object_event 1, MAP_OBJ_GFX_WALLACE, 0, 8, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SootopolisCity_Gym_1F_EventScript_15AFFF, FLAG_HIDE_WALLACE_SOOTOPOLIS_GYM, 0, 0
object_event 2, MAP_OBJ_GFX_MAN_2, 0, 7, 0, 24, 0, 3, 8, 0, 0, 0, 0, 0, 0, SootopolisCity_Gym_1F_EventScript_15B084, 0, 0, 0
SootopolisCity_Gym_1F_MapWarps:: @ 838AD20
- warp_def 8, 25, 0, 2, SootopolisCity
- warp_def 9, 25, 0, 2, SootopolisCity
- warp_def 11, 22, 3, 0, SootopolisCity_Gym_B1F
+ warp_def 8, 25, 0, 2, MAP_SOOTOPOLIS_CITY
+ warp_def 9, 25, 0, 2, MAP_SOOTOPOLIS_CITY
+ warp_def 11, 22, 3, 0, MAP_SOOTOPOLIS_CITY_GYM_B1F
SootopolisCity_Gym_1F_MapBGEvents:: @ 838AD38
bg_event 6, 24, 0, 0, 0, SootopolisCity_Gym_1F_EventScript_15B0A3
diff --git a/data/maps/events/SootopolisCity_Gym_B1F.inc b/data/maps/events/SootopolisCity_Gym_B1F.inc
index 44827aaf5..a1f3c92cb 100644
--- a/data/maps/events/SootopolisCity_Gym_B1F.inc
+++ b/data/maps/events/SootopolisCity_Gym_B1F.inc
@@ -9,7 +9,7 @@ SootopolisCity_Gym_B1F_MapObjects:: @ 838AD64
object_event 8, MAP_OBJ_GFX_BEAUTY, 0, 12, 0, 7, 0, 3, 9, 0, 0, 1, 0, 3, 0, SootopolisCity_Gym_B1F_EventScript_15B14B, 0, 0, 0
SootopolisCity_Gym_B1F_MapWarps:: @ 838AE24
- warp_def 11, 22, 3, 2, SootopolisCity_Gym_1F
+ warp_def 11, 22, 3, 2, MAP_SOOTOPOLIS_CITY_GYM_1F
SootopolisCity_Gym_B1F_MapEvents:: @ 838AE2C
map_events SootopolisCity_Gym_B1F_MapObjects, SootopolisCity_Gym_B1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SootopolisCity_House1.inc b/data/maps/events/SootopolisCity_House1.inc
index bddda2d88..fc6a57516 100644
--- a/data/maps/events/SootopolisCity_House1.inc
+++ b/data/maps/events/SootopolisCity_House1.inc
@@ -3,8 +3,8 @@ SootopolisCity_House1_MapObjects:: @ 838AFA4
object_event 2, MAP_OBJ_GFX_KECLEON_1, 0, 2, 0, 3, 0, 3, 8, 0, 0, 0, 0, 0, 0, SootopolisCity_House1_EventScript_15B2D1, 0, 0, 0
SootopolisCity_House1_MapWarps:: @ 838AFD4
- warp_def 3, 6, 0, 4, SootopolisCity
- warp_def 4, 6, 0, 4, SootopolisCity
+ warp_def 3, 6, 0, 4, MAP_SOOTOPOLIS_CITY
+ warp_def 4, 6, 0, 4, MAP_SOOTOPOLIS_CITY
SootopolisCity_House1_MapEvents:: @ 838AFE4
map_events SootopolisCity_House1_MapObjects, SootopolisCity_House1_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SootopolisCity_House2.inc b/data/maps/events/SootopolisCity_House2.inc
index 01cf77ddb..5fac2c45e 100644
--- a/data/maps/events/SootopolisCity_House2.inc
+++ b/data/maps/events/SootopolisCity_House2.inc
@@ -2,8 +2,8 @@ SootopolisCity_House2_MapObjects:: @ 838AFF8
object_event 1, MAP_OBJ_GFX_OLD_WOMAN_1, 0, 3, 0, 3, 0, 3, 10, 0, 0, 0, 0, 0, 0, SootopolisCity_House2_EventScript_15B2E5, 0, 0, 0
SootopolisCity_House2_MapWarps:: @ 838B010
- warp_def 3, 6, 0, 5, SootopolisCity
- warp_def 4, 6, 0, 5, SootopolisCity
+ warp_def 3, 6, 0, 5, MAP_SOOTOPOLIS_CITY
+ warp_def 4, 6, 0, 5, MAP_SOOTOPOLIS_CITY
SootopolisCity_House2_MapEvents:: @ 838B020
map_events SootopolisCity_House2_MapObjects, SootopolisCity_House2_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SootopolisCity_House3.inc b/data/maps/events/SootopolisCity_House3.inc
index dfae0f969..343bc0d2b 100644
--- a/data/maps/events/SootopolisCity_House3.inc
+++ b/data/maps/events/SootopolisCity_House3.inc
@@ -3,8 +3,8 @@ SootopolisCity_House3_MapObjects:: @ 838B034
object_event 2, MAP_OBJ_GFX_GIRL_2, 0, 6, 0, 4, 0, 3, 2, 17, 0, 0, 0, 0, 0, SootopolisCity_House3_EventScript_15B343, 0, 0, 0
SootopolisCity_House3_MapWarps:: @ 838B064
- warp_def 3, 6, 0, 6, SootopolisCity
- warp_def 4, 6, 0, 6, SootopolisCity
+ warp_def 3, 6, 0, 6, MAP_SOOTOPOLIS_CITY
+ warp_def 4, 6, 0, 6, MAP_SOOTOPOLIS_CITY
SootopolisCity_House3_MapEvents:: @ 838B074
map_events SootopolisCity_House3_MapObjects, SootopolisCity_House3_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SootopolisCity_House4.inc b/data/maps/events/SootopolisCity_House4.inc
index 766dbc682..f50aa1fe1 100644
--- a/data/maps/events/SootopolisCity_House4.inc
+++ b/data/maps/events/SootopolisCity_House4.inc
@@ -4,8 +4,8 @@ SootopolisCity_House4_MapObjects:: @ 838B088
object_event 3, MAP_OBJ_GFX_AZUMARILL, 0, 2, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, SootopolisCity_House4_EventScript_15B35F, 0, 0, 0
SootopolisCity_House4_MapWarps:: @ 838B0D0
- warp_def 3, 6, 0, 7, SootopolisCity
- warp_def 4, 6, 0, 7, SootopolisCity
+ warp_def 3, 6, 0, 7, MAP_SOOTOPOLIS_CITY
+ warp_def 4, 6, 0, 7, MAP_SOOTOPOLIS_CITY
SootopolisCity_House4_MapEvents:: @ 838B0E0
map_events SootopolisCity_House4_MapObjects, SootopolisCity_House4_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SootopolisCity_House5.inc b/data/maps/events/SootopolisCity_House5.inc
index 499bc26de..f574443e8 100644
--- a/data/maps/events/SootopolisCity_House5.inc
+++ b/data/maps/events/SootopolisCity_House5.inc
@@ -3,8 +3,8 @@ SootopolisCity_House5_MapObjects:: @ 838B0F4
object_event 2, MAP_OBJ_GFX_GIRL_3, 0, 6, 0, 3, 0, 3, 9, 0, 0, 0, 0, 0, 0, SootopolisCity_House5_EventScript_15B37C, 0, 0, 0
SootopolisCity_House5_MapWarps:: @ 838B124
- warp_def 3, 6, 0, 8, SootopolisCity
- warp_def 4, 6, 0, 8, SootopolisCity
+ warp_def 3, 6, 0, 8, MAP_SOOTOPOLIS_CITY
+ warp_def 4, 6, 0, 8, MAP_SOOTOPOLIS_CITY
SootopolisCity_House5_MapEvents:: @ 838B134
map_events SootopolisCity_House5_MapObjects, SootopolisCity_House5_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SootopolisCity_House6.inc b/data/maps/events/SootopolisCity_House6.inc
index 9fcb17f50..a943baf27 100644
--- a/data/maps/events/SootopolisCity_House6.inc
+++ b/data/maps/events/SootopolisCity_House6.inc
@@ -2,8 +2,8 @@ SootopolisCity_House6_MapObjects:: @ 838B148
object_event 1, MAP_OBJ_GFX_WOMAN_3, 0, 4, 0, 3, 0, 3, 2, 17, 0, 0, 0, 0, 0, SootopolisCity_House6_EventScript_15B386, 0, 0, 0
SootopolisCity_House6_MapWarps:: @ 838B160
- warp_def 3, 6, 0, 9, SootopolisCity
- warp_def 4, 6, 0, 9, SootopolisCity
+ warp_def 3, 6, 0, 9, MAP_SOOTOPOLIS_CITY
+ warp_def 4, 6, 0, 9, MAP_SOOTOPOLIS_CITY
SootopolisCity_House6_MapEvents:: @ 838B170
map_events SootopolisCity_House6_MapObjects, SootopolisCity_House6_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SootopolisCity_House7.inc b/data/maps/events/SootopolisCity_House7.inc
index d23992a32..f1ac930cc 100644
--- a/data/maps/events/SootopolisCity_House7.inc
+++ b/data/maps/events/SootopolisCity_House7.inc
@@ -3,8 +3,8 @@ SootopolisCity_House7_MapObjects:: @ 838B184
object_event 2, MAP_OBJ_GFX_WOMAN_2, 0, 1, 0, 4, 0, 3, 2, 17, 0, 0, 0, 0, 0, SootopolisCity_House7_EventScript_15B3F7, 0, 0, 0
SootopolisCity_House7_MapWarps:: @ 838B1B4
- warp_def 3, 6, 0, 10, SootopolisCity
- warp_def 4, 6, 0, 10, SootopolisCity
+ warp_def 3, 6, 0, 10, MAP_SOOTOPOLIS_CITY
+ warp_def 4, 6, 0, 10, MAP_SOOTOPOLIS_CITY
SootopolisCity_House7_MapEvents:: @ 838B1C4
map_events SootopolisCity_House7_MapObjects, SootopolisCity_House7_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SootopolisCity_House8.inc b/data/maps/events/SootopolisCity_House8.inc
index 4fd384f2b..b6f35a8d0 100644
--- a/data/maps/events/SootopolisCity_House8.inc
+++ b/data/maps/events/SootopolisCity_House8.inc
@@ -3,8 +3,8 @@ SootopolisCity_House8_MapObjects:: @ 838B1D8
object_event 2, MAP_OBJ_GFX_HIKER, 0, 5, 0, 4, 0, 3, 9, 0, 0, 0, 0, 0, 0, SootopolisCity_House8_EventScript_15B401, 0, 0, 0
SootopolisCity_House8_MapWarps:: @ 838B208
- warp_def 3, 6, 0, 11, SootopolisCity
- warp_def 4, 6, 0, 11, SootopolisCity
+ warp_def 3, 6, 0, 11, MAP_SOOTOPOLIS_CITY
+ warp_def 4, 6, 0, 11, MAP_SOOTOPOLIS_CITY
SootopolisCity_House8_MapBGEvents:: @ 838B218
bg_event 5, 1, 0, 0, 0, SootopolisCity_House8_EventScript_15B523
diff --git a/data/maps/events/SootopolisCity_Mart.inc b/data/maps/events/SootopolisCity_Mart.inc
index 144a2b79b..0cc9dc532 100644
--- a/data/maps/events/SootopolisCity_Mart.inc
+++ b/data/maps/events/SootopolisCity_Mart.inc
@@ -4,8 +4,8 @@ SootopolisCity_Mart_MapObjects:: @ 838AF38
object_event 3, MAP_OBJ_GFX_GENTLEMAN, 0, 9, 0, 5, 0, 3, 10, 0, 0, 0, 0, 0, 0, SootopolisCity_Mart_EventScript_15B272, 0, 0, 0
SootopolisCity_Mart_MapWarps:: @ 838AF80
- warp_def 3, 7, 0, 1, SootopolisCity
- warp_def 4, 7, 0, 1, SootopolisCity
+ warp_def 3, 7, 0, 1, MAP_SOOTOPOLIS_CITY
+ warp_def 4, 7, 0, 1, MAP_SOOTOPOLIS_CITY
SootopolisCity_Mart_MapEvents:: @ 838AF90
map_events SootopolisCity_Mart_MapObjects, SootopolisCity_Mart_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SootopolisCity_PokemonCenter_1F.inc b/data/maps/events/SootopolisCity_PokemonCenter_1F.inc
index c69ebb84c..94091956e 100644
--- a/data/maps/events/SootopolisCity_PokemonCenter_1F.inc
+++ b/data/maps/events/SootopolisCity_PokemonCenter_1F.inc
@@ -4,9 +4,9 @@ SootopolisCity_PokemonCenter_1F_MapObjects:: @ 838AE40
object_event 3, MAP_OBJ_GFX_WOMAN_7, 0, 4, 0, 7, 0, 3, 5, 1, 0, 0, 0, 0, 0, SootopolisCity_PokemonCenter_1F_EventScript_15B1D0, 0, 0, 0
SootopolisCity_PokemonCenter_1F_MapWarps:: @ 838AE88
- warp_def 7, 8, 3, 0, SootopolisCity
- warp_def 6, 8, 3, 0, SootopolisCity
- warp_def 1, 6, 4, 0, SootopolisCity_PokemonCenter_2F
+ warp_def 7, 8, 3, 0, MAP_SOOTOPOLIS_CITY
+ warp_def 6, 8, 3, 0, MAP_SOOTOPOLIS_CITY
+ warp_def 1, 6, 4, 0, MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F
SootopolisCity_PokemonCenter_1F_MapEvents:: @ 838AEA0
map_events SootopolisCity_PokemonCenter_1F_MapObjects, SootopolisCity_PokemonCenter_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SootopolisCity_PokemonCenter_2F.inc b/data/maps/events/SootopolisCity_PokemonCenter_2F.inc
index 217185c78..4ce8631e8 100644
--- a/data/maps/events/SootopolisCity_PokemonCenter_2F.inc
+++ b/data/maps/events/SootopolisCity_PokemonCenter_2F.inc
@@ -4,11 +4,11 @@ SootopolisCity_PokemonCenter_2F_MapObjects:: @ 838AEB4
object_event 3, MAP_OBJ_GFX_TEALA, 0, 10, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, SootopolisCity_PokemonCenter_2F_EventScript_15B214, 0, 0, 0
SootopolisCity_PokemonCenter_2F_MapWarps:: @ 838AEFC
- warp_def 1, 5, 4, 2, SootopolisCity_PokemonCenter_1F
- warp_def 5, 1, 0, 0, SingleBattleColosseum
- warp_def 8, 1, 0, 0, TradeCenter
- warp_def 11, 1, 0, 0, RecordCorner
- warp_def 0, 0, 0, 0, DoubleBattleColosseum
+ warp_def 1, 5, 4, 2, MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F
+ warp_def 5, 1, 0, 0, MAP_SINGLE_BATTLE_COLOSSEUM
+ warp_def 8, 1, 0, 0, MAP_TRADE_CENTER
+ warp_def 11, 1, 0, 0, MAP_RECORD_CORNER
+ warp_def 0, 0, 0, 0, MAP_DOUBLE_BATTLE_COLOSSEUM
SootopolisCity_PokemonCenter_2F_MapEvents:: @ 838AF24
map_events SootopolisCity_PokemonCenter_2F_MapObjects, SootopolisCity_PokemonCenter_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/SouthernIsland_Exterior.inc b/data/maps/events/SouthernIsland_Exterior.inc
index 062b72d1f..da65af081 100644
--- a/data/maps/events/SouthernIsland_Exterior.inc
+++ b/data/maps/events/SouthernIsland_Exterior.inc
@@ -3,8 +3,8 @@ SouthernIsland_Exterior_MapObjects:: @ 8391E00
object_event 2, MAP_OBJ_GFX_SS_TIDAL, 0, 13, 0, 25, 0, 1, 10, 0, 0, 0, 0, 0, 0, 0x0, 0, 0, 0
SouthernIsland_Exterior_MapWarps:: @ 8391E30
- warp_def 14, 5, 3, 0, SouthernIsland_Interior
- warp_def 15, 5, 3, 1, SouthernIsland_Interior
+ warp_def 14, 5, 3, 0, MAP_SOUTHERN_ISLAND_INTERIOR
+ warp_def 15, 5, 3, 1, MAP_SOUTHERN_ISLAND_INTERIOR
SouthernIsland_Exterior_MapBGEvents:: @ 8391E40
bg_event 16, 7, 3, 0, 0, SouthernIsland_Exterior_EventScript_160B4A
diff --git a/data/maps/events/SouthernIsland_Interior.inc b/data/maps/events/SouthernIsland_Interior.inc
index 77073fc85..bab1d1baf 100644
--- a/data/maps/events/SouthernIsland_Interior.inc
+++ b/data/maps/events/SouthernIsland_Interior.inc
@@ -1,10 +1,10 @@
SouthernIsland_Interior_MapObjects:: @ 8391E60
- object_event 1, 240, 0, 13, 0, 12, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, 910, 0, 0
- object_event 2, 241, 0, 13, 0, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0x0, 911, 0, 0
+ object_event 1, 240, 0, 13, 0, 12, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_LATIOS_OR_LATIAS_FLYING, 0, 0
+ object_event 2, 241, 0, 13, 0, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0x0, FLAG_HIDE_LATIOS_OR_LATIAS_STATIONARY, 0, 0
SouthernIsland_Interior_MapWarps:: @ 8391E90
- warp_def 13, 18, 3, 0, SouthernIsland_Exterior
- warp_def 14, 18, 3, 1, SouthernIsland_Exterior
+ warp_def 13, 18, 3, 0, MAP_SOUTHERN_ISLAND_EXTERIOR
+ warp_def 14, 18, 3, 1, MAP_SOUTHERN_ISLAND_EXTERIOR
SouthernIsland_Interior_MapBGEvents:: @ 8391EA0
bg_event 13, 11, 3, 1, 0, SouthernIsland_Interior_EventScript_160B9B
diff --git a/data/maps/events/TradeCenter.inc b/data/maps/events/TradeCenter.inc
index 8c5ff5578..8ecbb7e09 100644
--- a/data/maps/events/TradeCenter.inc
+++ b/data/maps/events/TradeCenter.inc
@@ -2,8 +2,8 @@ TradeCenter_MapObjects:: @ 8391340
object_event 1, MAP_OBJ_GFX_WOMAN_6, 0, 9, 0, 6, 0, 3, 9, 0, 0, 0, 0, 0, 0, TradeCenter_EventScript_1A44AD, 0, 0, 0
TradeCenter_MapWarps:: @ 8391358
- warp_def 5, 8, 3, 127, NONE
- warp_def 6, 8, 3, 127, NONE
+ warp_def 5, 8, 3, 127, MAP_NONE
+ warp_def 6, 8, 3, 127, MAP_NONE
TradeCenter_MapCoordEvents:: @ 8391368
coord_event 4, 5, 3, 0, 0x4000, 0, 0, TradeCenter_EventScript_1A43F0
diff --git a/data/maps/events/Underwater2.inc b/data/maps/events/Underwater2.inc
index a9ecbd465..89b36919b 100644
--- a/data/maps/events/Underwater2.inc
+++ b/data/maps/events/Underwater2.inc
@@ -1,5 +1,5 @@
Underwater2_MapWarps:: @ 8385580
- warp_def 45, 65, 0, 0, Underwater_SootopolisCity
+ warp_def 45, 65, 0, 0, MAP_UNDERWATER_SOOTOPOLIS_CITY
Underwater2_MapBGEvents:: @ 8385588
bg_event 30, 17, 3, 7, 0, ITEM_HEART_SCALE, 14, 0
diff --git a/data/maps/events/Underwater4.inc b/data/maps/events/Underwater4.inc
index 711131621..1d3938031 100644
--- a/data/maps/events/Underwater4.inc
+++ b/data/maps/events/Underwater4.inc
@@ -1,5 +1,5 @@
Underwater4_MapWarps:: @ 8385640
- warp_def 38, 26, 3, 0, Underwater_SeafloorCavern
+ warp_def 38, 26, 3, 0, MAP_UNDERWATER_SEAFLOOR_CAVERN
Underwater4_MapBGEvents:: @ 8385648
bg_event 38, 19, 3, 7, 0, ITEM_PROTEIN, 25, 0
diff --git a/data/maps/events/Underwater_Route134.inc b/data/maps/events/Underwater_Route134.inc
index f6c734112..6dc462c80 100644
--- a/data/maps/events/Underwater_Route134.inc
+++ b/data/maps/events/Underwater_Route134.inc
@@ -1,5 +1,5 @@
Underwater_Route134_MapWarps:: @ 838E744
- warp_def 8, 8, 0, 0, Underwater_SealedChamber
+ warp_def 8, 8, 0, 0, MAP_UNDERWATER_SEALED_CHAMBER
Underwater_Route134_MapEvents:: @ 838E74C
map_events 0x0, Underwater_Route134_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Underwater_SeafloorCavern.inc b/data/maps/events/Underwater_SeafloorCavern.inc
index e06e0a498..fa8c12c65 100644
--- a/data/maps/events/Underwater_SeafloorCavern.inc
+++ b/data/maps/events/Underwater_SeafloorCavern.inc
@@ -1,11 +1,11 @@
Underwater_SeafloorCavern_MapObjects:: @ 838D018
- object_event 1, MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 0, 5, 0, 4, 0, 3, 76, 17, 0, 0, 0, 0, 0, Underwater_SeafloorCavern_EventScript_15DA3F, 980, 0, 0
- object_event 2, MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 0, 6, 0, 4, 0, 3, 76, 17, 0, 0, 0, 0, 0, Underwater_SeafloorCavern_EventScript_15DA3F, 980, 0, 0
- object_event 3, MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 0, 7, 0, 4, 0, 3, 76, 17, 0, 0, 0, 0, 0, Underwater_SeafloorCavern_EventScript_15DA3F, 980, 0, 0
- object_event 4, MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 0, 8, 0, 4, 0, 3, 76, 17, 0, 0, 0, 0, 0, Underwater_SeafloorCavern_EventScript_15DA3F, 980, 0, 0
+ object_event 1, MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 0, 5, 0, 4, 0, 3, 76, 17, 0, 0, 0, 0, 0, Underwater_SeafloorCavern_EventScript_15DA3F, FLAG_HIDE_UNDERWATER_SUBMARINE_INTERACTION, 0, 0
+ object_event 2, MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 0, 6, 0, 4, 0, 3, 76, 17, 0, 0, 0, 0, 0, Underwater_SeafloorCavern_EventScript_15DA3F, FLAG_HIDE_UNDERWATER_SUBMARINE_INTERACTION, 0, 0
+ object_event 3, MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 0, 7, 0, 4, 0, 3, 76, 17, 0, 0, 0, 0, 0, Underwater_SeafloorCavern_EventScript_15DA3F, FLAG_HIDE_UNDERWATER_SUBMARINE_INTERACTION, 0, 0
+ object_event 4, MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 0, 8, 0, 4, 0, 3, 76, 17, 0, 0, 0, 0, 0, Underwater_SeafloorCavern_EventScript_15DA3F, FLAG_HIDE_UNDERWATER_SUBMARINE_INTERACTION, 0, 0
Underwater_SeafloorCavern_MapWarps:: @ 838D078
- warp_def 6, 7, 0, 0, Underwater4
+ warp_def 6, 7, 0, 0, MAP_UNDERWATER4
Underwater_SeafloorCavern_MapEvents:: @ 838D080
map_events Underwater_SeafloorCavern_MapObjects, Underwater_SeafloorCavern_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/Underwater_SealedChamber.inc b/data/maps/events/Underwater_SealedChamber.inc
index 867527aaf..ede501142 100644
--- a/data/maps/events/Underwater_SealedChamber.inc
+++ b/data/maps/events/Underwater_SealedChamber.inc
@@ -1,5 +1,5 @@
Underwater_SealedChamber_MapWarps:: @ 838E760
- warp_def 7, 1, 0, 0, Underwater_Route134
+ warp_def 7, 1, 0, 0, MAP_UNDERWATER_ROUTE134
Underwater_SealedChamber_MapBGEvents:: @ 838E768
bg_event 12, 43, 0, 0, 0, Underwater_SealedChamber_EventScript_15F0B8
diff --git a/data/maps/events/Underwater_SootopolisCity.inc b/data/maps/events/Underwater_SootopolisCity.inc
index fb48a32fb..f745dc557 100644
--- a/data/maps/events/Underwater_SootopolisCity.inc
+++ b/data/maps/events/Underwater_SootopolisCity.inc
@@ -1,6 +1,6 @@
Underwater_SootopolisCity_MapWarps:: @ 838BE98
- warp_def 9, 8, 0, 0, Underwater2
- warp_def 10, 8, 0, 0, Underwater2
+ warp_def 9, 8, 0, 0, MAP_UNDERWATER2
+ warp_def 10, 8, 0, 0, MAP_UNDERWATER2
Underwater_SootopolisCity_MapEvents:: @ 838BEA8
map_events 0x0, Underwater_SootopolisCity_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/VerdanturfTown.inc b/data/maps/events/VerdanturfTown.inc
index 1d40f7f53..b8f74073e 100644
--- a/data/maps/events/VerdanturfTown.inc
+++ b/data/maps/events/VerdanturfTown.inc
@@ -5,13 +5,13 @@ VerdanturfTown_MapObjects:: @ 8380F00
object_event 4, MAP_OBJ_GFX_CAMPER, 0, 6, 0, 10, 0, 3, 5, 1, 0, 0, 0, 0, 0, VerdanturfTown_EventScript_14E8A2, 0, 0, 0
VerdanturfTown_MapWarps:: @ 8380F60
- warp_def 4, 7, 0, 0, VerdanturfTown_ContestLobby
- warp_def 12, 3, 0, 0, VerdanturfTown_Mart
- warp_def 16, 3, 0, 0, VerdanturfTown_PokemonCenter_1F
- warp_def 10, 14, 0, 0, VerdanturfTown_WandasHouse
- warp_def 8, 1, 0, 1, RusturfTunnel
- warp_def 1, 14, 0, 0, VerdanturfTown_FriendshipRatersHouse
- warp_def 17, 15, 0, 0, VerdanturfTown_House
+ warp_def 4, 7, 0, 0, MAP_VERDANTURF_TOWN_CONTEST_LOBBY
+ warp_def 12, 3, 0, 0, MAP_VERDANTURF_TOWN_MART
+ warp_def 16, 3, 0, 0, MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F
+ warp_def 10, 14, 0, 0, MAP_VERDANTURF_TOWN_WANDAS_HOUSE
+ warp_def 8, 1, 0, 1, MAP_RUSTURF_TUNNEL
+ warp_def 1, 14, 0, 0, MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE
+ warp_def 17, 15, 0, 0, MAP_VERDANTURF_TOWN_HOUSE
VerdanturfTown_MapBGEvents:: @ 8380F98
bg_event 14, 3, 0, 1, 0, VerdanturfTown_EventScript_1A00E1
diff --git a/data/maps/events/VerdanturfTown_ContestHall.inc b/data/maps/events/VerdanturfTown_ContestHall.inc
index 36f4d58e4..4e21027c4 100644
--- a/data/maps/events/VerdanturfTown_ContestHall.inc
+++ b/data/maps/events/VerdanturfTown_ContestHall.inc
@@ -4,8 +4,8 @@ VerdanturfTown_ContestHall_MapObjects:: @ 8386AEC
object_event 3, MAP_OBJ_GFX_LITTLE_GIRL_2, 0, 9, 0, 8, 0, 3, 2, 34, 0, 0, 0, 0, 0, VerdanturfTown_ContestHall_EventScript_153EA0, 0, 0, 0
VerdanturfTown_ContestHall_MapWarps:: @ 8386B34
- warp_def 11, 17, 0, 2, VerdanturfTown_ContestLobby
- warp_def 10, 17, 0, 2, VerdanturfTown_ContestLobby
+ warp_def 11, 17, 0, 2, MAP_VERDANTURF_TOWN_CONTEST_LOBBY
+ warp_def 10, 17, 0, 2, MAP_VERDANTURF_TOWN_CONTEST_LOBBY
VerdanturfTown_ContestHall_MapBGEvents:: @ 8386B44
bg_event 12, 14, 3, 0, 0, VerdanturfTown_ContestHall_EventScript_153EB2
diff --git a/data/maps/events/VerdanturfTown_ContestLobby.inc b/data/maps/events/VerdanturfTown_ContestLobby.inc
index ec9d88d71..465bb2fde 100644
--- a/data/maps/events/VerdanturfTown_ContestLobby.inc
+++ b/data/maps/events/VerdanturfTown_ContestLobby.inc
@@ -3,13 +3,13 @@ VerdanturfTown_ContestLobby_MapObjects:: @ 8386A00
object_event 2, MAP_OBJ_GFX_OLD_MAN_1, 0, 11, 0, 5, 0, 3, 10, 0, 0, 0, 0, 0, 0, VerdanturfTown_ContestLobby_EventScript_1B77A0, 0, 0, 0
object_event 3, MAP_OBJ_GFX_GIRL_1, 0, 14, 0, 2, 0, 3, 9, 0, 0, 0, 0, 0, 0, VerdanturfTown_ContestLobby_EventScript_153E47, 0, 0, 0
object_event 4, MAP_OBJ_GFX_BOY_2, 0, 1, 0, 6, 0, 3, 2, 17, 0, 0, 0, 0, 0, VerdanturfTown_ContestLobby_EventScript_153E3E, 0, 0, 0
- object_event 5, MAP_OBJ_GFX_REPORTER_M, 0, 7, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, VerdanturfTown_ContestLobby_EventScript_1AE0B6, 801, 0, 0
+ object_event 5, MAP_OBJ_GFX_REPORTER_M, 0, 7, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, VerdanturfTown_ContestLobby_EventScript_1AE0B6, FLAG_HIDE_CONTEST_REPORTER_VERDANTURF, 0, 0
object_event 6, MAP_OBJ_GFX_BOY_3, 0, 0, 0, 3, 0, 3, 3, 16, 0, 0, 0, 0, 0, VerdanturfTown_ContestLobby_EventScript_153E80, 0, 0, 0
VerdanturfTown_ContestLobby_MapWarps:: @ 8386A90
- warp_def 5, 6, 0, 0, VerdanturfTown
- warp_def 6, 6, 0, 0, VerdanturfTown
- warp_def 1, 1, 0, 1, VerdanturfTown_ContestHall
+ warp_def 5, 6, 0, 0, MAP_VERDANTURF_TOWN
+ warp_def 6, 6, 0, 0, MAP_VERDANTURF_TOWN
+ warp_def 1, 1, 0, 1, MAP_VERDANTURF_TOWN_CONTEST_HALL
VerdanturfTown_ContestLobby_MapBGEvents:: @ 8386AA8
bg_event 10, 3, 0, 0, 0, VerdanturfTown_ContestLobby_EventScript_1B782F
diff --git a/data/maps/events/VerdanturfTown_FriendshipRatersHouse.inc b/data/maps/events/VerdanturfTown_FriendshipRatersHouse.inc
index 6ec948511..8a731fab0 100644
--- a/data/maps/events/VerdanturfTown_FriendshipRatersHouse.inc
+++ b/data/maps/events/VerdanturfTown_FriendshipRatersHouse.inc
@@ -3,8 +3,8 @@ VerdanturfTown_FriendshipRatersHouse_MapObjects:: @ 8386D88
object_event 2, MAP_OBJ_GFX_PIKACHU, 0, 4, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, VerdanturfTown_FriendshipRatersHouse_EventScript_1540D9, 0, 0, 0
VerdanturfTown_FriendshipRatersHouse_MapWarps:: @ 8386DB8
- warp_def 3, 7, 0, 5, VerdanturfTown
- warp_def 4, 7, 0, 5, VerdanturfTown
+ warp_def 3, 7, 0, 5, MAP_VERDANTURF_TOWN
+ warp_def 4, 7, 0, 5, MAP_VERDANTURF_TOWN
VerdanturfTown_FriendshipRatersHouse_MapEvents:: @ 8386DC8
map_events VerdanturfTown_FriendshipRatersHouse_MapObjects, VerdanturfTown_FriendshipRatersHouse_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/VerdanturfTown_House.inc b/data/maps/events/VerdanturfTown_House.inc
index 91a54684b..5bf1c7cae 100644
--- a/data/maps/events/VerdanturfTown_House.inc
+++ b/data/maps/events/VerdanturfTown_House.inc
@@ -3,8 +3,8 @@ VerdanturfTown_House_MapObjects:: @ 8386DDC
object_event 2, MAP_OBJ_GFX_WOMAN_7, 0, 4, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, VerdanturfTown_House_EventScript_1540F6, 0, 0, 0
VerdanturfTown_House_MapWarps:: @ 8386E0C
- warp_def 3, 8, 0, 6, VerdanturfTown
- warp_def 4, 8, 0, 6, VerdanturfTown
+ warp_def 3, 8, 0, 6, MAP_VERDANTURF_TOWN
+ warp_def 4, 8, 0, 6, MAP_VERDANTURF_TOWN
VerdanturfTown_House_MapEvents:: @ 8386E1C
map_events VerdanturfTown_House_MapObjects, VerdanturfTown_House_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/VerdanturfTown_Mart.inc b/data/maps/events/VerdanturfTown_Mart.inc
index 90e1cf014..341055a52 100644
--- a/data/maps/events/VerdanturfTown_Mart.inc
+++ b/data/maps/events/VerdanturfTown_Mart.inc
@@ -5,8 +5,8 @@ VerdanturfTown_Mart_MapObjects:: @ 8386B70
object_event 4, MAP_OBJ_GFX_LASS, 0, 3, 0, 2, 0, 3, 9, 17, 0, 0, 0, 0, 0, VerdanturfTown_Mart_EventScript_153F00, 0, 0, 0
VerdanturfTown_Mart_MapWarps:: @ 8386BD0
- warp_def 3, 7, 0, 1, VerdanturfTown
- warp_def 4, 7, 0, 1, VerdanturfTown
+ warp_def 3, 7, 0, 1, MAP_VERDANTURF_TOWN
+ warp_def 4, 7, 0, 1, MAP_VERDANTURF_TOWN
VerdanturfTown_Mart_MapEvents:: @ 8386BE0
map_events VerdanturfTown_Mart_MapObjects, VerdanturfTown_Mart_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/VerdanturfTown_PokemonCenter_1F.inc b/data/maps/events/VerdanturfTown_PokemonCenter_1F.inc
index 3db30796c..db6d4400b 100644
--- a/data/maps/events/VerdanturfTown_PokemonCenter_1F.inc
+++ b/data/maps/events/VerdanturfTown_PokemonCenter_1F.inc
@@ -4,9 +4,9 @@ VerdanturfTown_PokemonCenter_1F_MapObjects:: @ 8386BF4
object_event 3, MAP_OBJ_GFX_OLD_MAN_1, 0, 12, 0, 2, 0, 3, 7, 0, 0, 0, 0, 0, 0, VerdanturfTown_PokemonCenter_1F_EventScript_153F2F, 0, 0, 0
VerdanturfTown_PokemonCenter_1F_MapWarps:: @ 8386C3C
- warp_def 7, 8, 3, 2, VerdanturfTown
- warp_def 6, 8, 3, 2, VerdanturfTown
- warp_def 1, 6, 4, 0, VerdanturfTown_PokemonCenter_2F
+ warp_def 7, 8, 3, 2, MAP_VERDANTURF_TOWN
+ warp_def 6, 8, 3, 2, MAP_VERDANTURF_TOWN
+ warp_def 1, 6, 4, 0, MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F
VerdanturfTown_PokemonCenter_1F_MapEvents:: @ 8386C54
map_events VerdanturfTown_PokemonCenter_1F_MapObjects, VerdanturfTown_PokemonCenter_1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/VerdanturfTown_PokemonCenter_2F.inc b/data/maps/events/VerdanturfTown_PokemonCenter_2F.inc
index 89f02e31f..43cd0dc12 100644
--- a/data/maps/events/VerdanturfTown_PokemonCenter_2F.inc
+++ b/data/maps/events/VerdanturfTown_PokemonCenter_2F.inc
@@ -4,11 +4,11 @@ VerdanturfTown_PokemonCenter_2F_MapObjects:: @ 8386C68
object_event 3, MAP_OBJ_GFX_TEALA, 0, 10, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, VerdanturfTown_PokemonCenter_2F_EventScript_153F54, 0, 0, 0
VerdanturfTown_PokemonCenter_2F_MapWarps:: @ 8386CB0
- warp_def 1, 5, 4, 2, VerdanturfTown_PokemonCenter_1F
- warp_def 5, 1, 0, 0, SingleBattleColosseum
- warp_def 8, 1, 0, 0, TradeCenter
- warp_def 11, 1, 0, 0, RecordCorner
- warp_def 0, 0, 0, 0, DoubleBattleColosseum
+ warp_def 1, 5, 4, 2, MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F
+ warp_def 5, 1, 0, 0, MAP_SINGLE_BATTLE_COLOSSEUM
+ warp_def 8, 1, 0, 0, MAP_TRADE_CENTER
+ warp_def 11, 1, 0, 0, MAP_RECORD_CORNER
+ warp_def 0, 0, 0, 0, MAP_DOUBLE_BATTLE_COLOSSEUM
VerdanturfTown_PokemonCenter_2F_MapEvents:: @ 8386CD8
map_events VerdanturfTown_PokemonCenter_2F_MapObjects, VerdanturfTown_PokemonCenter_2F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/VerdanturfTown_WandasHouse.inc b/data/maps/events/VerdanturfTown_WandasHouse.inc
index 5d0f3e572..26c178a87 100644
--- a/data/maps/events/VerdanturfTown_WandasHouse.inc
+++ b/data/maps/events/VerdanturfTown_WandasHouse.inc
@@ -1,13 +1,13 @@
VerdanturfTown_WandasHouse_MapObjects:: @ 8386CEC
- object_event 1, MAP_OBJ_GFX_WALLY, 0, 14, 0, 5, 0, 3, 2, 17, 0, 0, 0, 0, 0, VerdanturfTown_WandasHouse_EventScript_153F5B, 806, 0, 0
- object_event 2, MAP_OBJ_GFX_BLACK_BELT, 0, 5, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, VerdanturfTown_WandasHouse_EventScript_153FAF, 808, 0, 0
- object_event 3, MAP_OBJ_GFX_MAN_3, 0, 7, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, VerdanturfTown_WandasHouse_EventScript_153F7D, 809, 0, 0
+ object_event 1, MAP_OBJ_GFX_WALLY, 0, 14, 0, 5, 0, 3, 2, 17, 0, 0, 0, 0, 0, VerdanturfTown_WandasHouse_EventScript_153F5B, FLAG_HIDE_WALLY_WANDAS_HOUSE, 0, 0
+ object_event 2, MAP_OBJ_GFX_BLACK_BELT, 0, 5, 0, 4, 0, 3, 8, 0, 0, 0, 0, 0, 0, VerdanturfTown_WandasHouse_EventScript_153FAF, FLAG_HIDE_BOYFRIEND_WANDAS_HOUSE, 0, 0
+ object_event 3, MAP_OBJ_GFX_MAN_3, 0, 7, 0, 2, 0, 3, 8, 0, 0, 0, 0, 0, 0, VerdanturfTown_WandasHouse_EventScript_153F7D, FLAG_HIDE_WALLY_FATHER_WANDAS_HOUSE, 0, 0
object_event 4, MAP_OBJ_GFX_WOMAN_2, 0, 2, 0, 4, 0, 3, 10, 0, 0, 0, 0, 0, 0, VerdanturfTown_WandasHouse_EventScript_153FEA, 0, 0, 0
- object_event 5, MAP_OBJ_GFX_WOMAN_3, 0, 5, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, VerdanturfTown_WandasHouse_EventScript_153FB8, 984, 0, 0
+ object_event 5, MAP_OBJ_GFX_WOMAN_3, 0, 5, 0, 5, 0, 3, 9, 0, 0, 0, 0, 0, 0, VerdanturfTown_WandasHouse_EventScript_153FB8, FLAG_HIDE_GIRLFRIEND_WANDAS_HOUSE, 0, 0
VerdanturfTown_WandasHouse_MapWarps:: @ 8386D64
- warp_def 7, 7, 0, 3, VerdanturfTown
- warp_def 8, 7, 0, 3, VerdanturfTown
+ warp_def 7, 7, 0, 3, MAP_VERDANTURF_TOWN
+ warp_def 8, 7, 0, 3, MAP_VERDANTURF_TOWN
VerdanturfTown_WandasHouse_MapEvents:: @ 8386D74
map_events VerdanturfTown_WandasHouse_MapObjects, VerdanturfTown_WandasHouse_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/VictoryRoad_1F.inc b/data/maps/events/VictoryRoad_1F.inc
index f3f8dcad6..593f2df02 100644
--- a/data/maps/events/VictoryRoad_1F.inc
+++ b/data/maps/events/VictoryRoad_1F.inc
@@ -2,17 +2,17 @@ VictoryRoad_1F_MapObjects:: @ 838D8E4
object_event 1, MAP_OBJ_GFX_MAN_4, 0, 33, 0, 22, 0, 3, 8, 0, 0, 1, 0, 3, 0, VictoryRoad_1F_EventScript_15DF6F, 0, 0, 0
object_event 2, MAP_OBJ_GFX_WOMAN_7, 0, 6, 0, 15, 0, 4, 9, 0, 0, 1, 0, 4, 0, VictoryRoad_1F_EventScript_15DF9D, 0, 0, 0
object_event 3, MAP_OBJ_GFX_MAN_4, 0, 27, 0, 34, 0, 3, 18, 0, 0, 1, 0, 3, 0, VictoryRoad_1F_EventScript_15DF86, 0, 0, 0
- object_event 4, MAP_OBJ_GFX_WALLY, 0, 31, 0, 12, 0, 3, 7, 17, 0, 0, 0, 0, 0, VictoryRoad_1F_EventScript_15DF28, 858, 0, 0
- object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 40, 0, 26, 0, 3, 1, 17, 0, 0, 0, 0, 0, VictoryRoad_1F_EventScript_1B1AC6, 1084, 0, 0
- object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 37, 0, 39, 0, 4, 1, 17, 0, 0, 0, 0, 0, VictoryRoad_1F_EventScript_1B1AD3, 1085, 0, 0
- object_event 7, MAP_OBJ_GFX_WALLY, 0, 31, 0, 9, 0, 3, 1, 17, 0, 0, 0, 0, 0, VictoryRoad_1F_EventScript_15DF31, 751, 0, 0
+ object_event 4, MAP_OBJ_GFX_WALLY, 0, 31, 0, 12, 0, 3, 7, 17, 0, 0, 0, 0, 0, VictoryRoad_1F_EventScript_15DF28, FLAG_HIDE_WALLY_BATTLE_VICTORY_ROAD, 0, 0
+ object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 40, 0, 26, 0, 3, 1, 17, 0, 0, 0, 0, 0, VictoryRoad_1F_EventScript_1B1AC6, FLAG_ITEM_VICTORY_ROAD_1F_1, 0, 0
+ object_event 6, MAP_OBJ_GFX_ITEM_BALL, 0, 37, 0, 39, 0, 4, 1, 17, 0, 0, 0, 0, 0, VictoryRoad_1F_EventScript_1B1AD3, FLAG_ITEM_VICTORY_ROAD_1F_2, 0, 0
+ object_event 7, MAP_OBJ_GFX_WALLY, 0, 31, 0, 9, 0, 3, 1, 17, 0, 0, 0, 0, 0, VictoryRoad_1F_EventScript_15DF31, FLAG_HIDE_WALLY_DEFEATED_VICTORY_ROAD, 0, 0
VictoryRoad_1F_MapWarps:: @ 838D98C
- warp_def 15, 40, 3, 2, EverGrandeCity
- warp_def 39, 5, 3, 3, EverGrandeCity
- warp_def 21, 32, 3, 5, VictoryRoad_B1F
- warp_def 42, 38, 4, 2, VictoryRoad_B1F
- warp_def 9, 14, 4, 4, VictoryRoad_B1F
+ warp_def 15, 40, 3, 2, MAP_EVER_GRANDE_CITY
+ warp_def 39, 5, 3, 3, MAP_EVER_GRANDE_CITY
+ warp_def 21, 32, 3, 5, MAP_VICTORY_ROAD_B1F
+ warp_def 42, 38, 4, 2, MAP_VICTORY_ROAD_B1F
+ warp_def 9, 14, 4, 4, MAP_VICTORY_ROAD_B1F
VictoryRoad_1F_MapCoordEvents:: @ 838D9B4
coord_event 34, 3, 3, 0, 0x40c3, 0, 0, VictoryRoad_1F_EventScript_15DE97
diff --git a/data/maps/events/VictoryRoad_B1F.inc b/data/maps/events/VictoryRoad_B1F.inc
index b00074990..0c30a96fa 100644
--- a/data/maps/events/VictoryRoad_B1F.inc
+++ b/data/maps/events/VictoryRoad_B1F.inc
@@ -1,32 +1,32 @@
VictoryRoad_B1F_MapObjects:: @ 838DA04
- object_event 1, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 20, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 19, 0, 0
- object_event 2, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 21, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 20, 0, 0
- object_event 3, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 4, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 17, 0, 0
- object_event 4, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 9, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 18, 0, 0
- object_event 5, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 20, 0, 26, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 23, 0, 0
- object_event 6, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 21, 0, 25, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 22, 0, 0
- object_event 7, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 35, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 30, 0, 0
- object_event 8, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 19, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 25, 0, 0
- object_event 9, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 20, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 26, 0, 0
- object_event 10, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 18, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 27, 0, 0
- object_event 11, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 20, 0, 25, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 28, 0, 0
- object_event 12, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 21, 0, 26, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, 29, 0, 0
- object_event 13, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 34, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, 31, 0, 0
+ object_event 1, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 20, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_13, 0, 0
+ object_event 2, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 21, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_14, 0, 0
+ object_event 3, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 4, 0, 7, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_11, 0, 0
+ object_event 4, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 9, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_12, 0, 0
+ object_event 5, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 20, 0, 26, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_17, 0, 0
+ object_event 6, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 21, 0, 25, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_16, 0, 0
+ object_event 7, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 35, 0, 6, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_1E, 0, 0
+ object_event 8, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 19, 0, 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_19, 0, 0
+ object_event 9, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 20, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_1A, 0, 0
+ object_event 10, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 18, 0, 12, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_1B, 0, 0
+ object_event 11, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 20, 0, 25, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_1C, 0, 0
+ object_event 12, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 21, 0, 26, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_TEMP_1D, 0, 0
+ object_event 13, MAP_OBJ_GFX_PUSHABLE_BOULDER, 0, 34, 0, 4, 0, 3, 1, 0, 0, 0, 0, 0, 0, S_PushableBoulder, FLAG_TEMP_1F, 0, 0
object_event 14, MAP_OBJ_GFX_MAN_4, 0, 37, 0, 12, 0, 3, 9, 0, 0, 1, 0, 3, 0, VictoryRoad_B1F_EventScript_15DFB5, 0, 0, 0
object_event 15, MAP_OBJ_GFX_WOMAN_7, 0, 26, 0, 16, 0, 3, 7, 0, 0, 1, 0, 4, 0, VictoryRoad_B1F_EventScript_15DFCC, 0, 0, 0
object_event 16, MAP_OBJ_GFX_WOMAN_7, 0, 5, 0, 21, 0, 3, 9, 0, 0, 1, 0, 2, 0, VictoryRoad_B1F_EventScript_15DFE3, 0, 0, 0
- object_event 17, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 34, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, 32, 0, 0
- object_event 18, MAP_OBJ_GFX_ITEM_BALL, 0, 42, 0, 8, 0, 4, 1, 17, 0, 0, 0, 0, 0, VictoryRoad_B1F_EventScript_1B1AE0, 1086, 0, 0
- object_event 19, MAP_OBJ_GFX_ITEM_BALL, 0, 32, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, VictoryRoad_B1F_EventScript_1B1AED, 1087, 0, 0
+ object_event 17, MAP_OBJ_GFX_BREAKABLE_ROCK, 0, 34, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, S_BreakableRock, FLAG_VICTORY_ROAD_ROCK, 0, 0
+ object_event 18, MAP_OBJ_GFX_ITEM_BALL, 0, 42, 0, 8, 0, 4, 1, 17, 0, 0, 0, 0, 0, VictoryRoad_B1F_EventScript_1B1AE0, FLAG_ITEM_VICTORY_ROAD_B1F_1, 0, 0
+ object_event 19, MAP_OBJ_GFX_ITEM_BALL, 0, 32, 0, 3, 0, 3, 1, 17, 0, 0, 0, 0, 0, VictoryRoad_B1F_EventScript_1B1AED, FLAG_ITEM_VICTORY_ROAD_B1F_2, 0, 0
VictoryRoad_B1F_MapWarps:: @ 838DBCC
- warp_def 30, 25, 3, 0, VictoryRoad_B2F
- warp_def 17, 16, 3, 2, VictoryRoad_B2F
- warp_def 42, 25, 3, 3, VictoryRoad_1F
- warp_def 42, 2, 4, 1, VictoryRoad_B2F
- warp_def 8, 3, 3, 4, VictoryRoad_1F
- warp_def 20, 21, 3, 2, VictoryRoad_1F
- warp_def 5, 26, 3, 3, VictoryRoad_B2F
+ warp_def 30, 25, 3, 0, MAP_VICTORY_ROAD_B2F
+ warp_def 17, 16, 3, 2, MAP_VICTORY_ROAD_B2F
+ warp_def 42, 25, 3, 3, MAP_VICTORY_ROAD_1F
+ warp_def 42, 2, 4, 1, MAP_VICTORY_ROAD_B2F
+ warp_def 8, 3, 3, 4, MAP_VICTORY_ROAD_1F
+ warp_def 20, 21, 3, 2, MAP_VICTORY_ROAD_1F
+ warp_def 5, 26, 3, 3, MAP_VICTORY_ROAD_B2F
VictoryRoad_B1F_MapEvents:: @ 838DC04
map_events VictoryRoad_B1F_MapObjects, VictoryRoad_B1F_MapWarps, 0x0, 0x0
diff --git a/data/maps/events/VictoryRoad_B2F.inc b/data/maps/events/VictoryRoad_B2F.inc
index b4aa07e59..e9d549f04 100644
--- a/data/maps/events/VictoryRoad_B2F.inc
+++ b/data/maps/events/VictoryRoad_B2F.inc
@@ -3,13 +3,13 @@ VictoryRoad_B2F_MapObjects:: @ 838DC18
object_event 2, MAP_OBJ_GFX_MAN_4, 0, 43, 0, 14, 0, 3, 7, 17, 0, 1, 0, 4, 0, VictoryRoad_B2F_EventScript_15E012, 0, 0, 0
object_event 3, MAP_OBJ_GFX_WOMAN_7, 0, 2, 0, 17, 0, 3, 8, 17, 0, 1, 0, 2, 0, VictoryRoad_B2F_EventScript_15E029, 0, 0, 0
object_event 4, MAP_OBJ_GFX_WOMAN_7, 0, 35, 0, 22, 0, 3, 9, 17, 0, 1, 0, 2, 0, VictoryRoad_B2F_EventScript_15E040, 0, 0, 0
- object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 13, 0, 8, 0, 3, 1, 17, 0, 0, 0, 0, 0, VictoryRoad_B2F_EventScript_1B1AFA, 1088, 0, 0
+ object_event 5, MAP_OBJ_GFX_ITEM_BALL, 0, 13, 0, 8, 0, 3, 1, 17, 0, 0, 0, 0, 0, VictoryRoad_B2F_EventScript_1B1AFA, FLAG_ITEM_VICTORY_ROAD_B2F_1, 0, 0
VictoryRoad_B2F_MapWarps:: @ 838DC90
- warp_def 30, 25, 3, 0, VictoryRoad_B1F
- warp_def 43, 2, 3, 3, VictoryRoad_B1F
- warp_def 19, 12, 3, 1, VictoryRoad_B1F
- warp_def 5, 26, 3, 6, VictoryRoad_B1F
+ warp_def 30, 25, 3, 0, MAP_VICTORY_ROAD_B1F
+ warp_def 43, 2, 3, 3, MAP_VICTORY_ROAD_B1F
+ warp_def 19, 12, 3, 1, MAP_VICTORY_ROAD_B1F
+ warp_def 5, 26, 3, 6, MAP_VICTORY_ROAD_B1F
VictoryRoad_B2F_MapBGEvents:: @ 838DCB0
bg_event 28, 5, 3, 7, 0, ITEM_ELIXIR, 82, 0
diff --git a/data/matsuda_debug_menu.s b/data/matsuda_debug_menu.s
deleted file mode 100644
index c4f7adcb7..000000000
--- a/data/matsuda_debug_menu.s
+++ /dev/null
@@ -1,201 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-@ 83C9150
- .string "テストです$" @ "test"
-
-gMatsudaDebugMenu_ActionContestText:
- .string "Contest$"
-
-gMatsudaDebugMenu_ActionContestResultsText:
- .string "Contest results$"
- .string "パラメータへんこう$" @ "Change parameter"
- .string "わざ へんこう$" @ "Change move"
-
-gMatsudaDebugMenu_ActionContestCommText:
- .string "Contest (comm.)$"
-
-gMatsudaDebugMenu_ActionCommTestText:
- .string "Init comm. data$"
-
-gMatsudaDebugMenu_ActionSetHighScoreText:
- .string "Set highest score$"
-
-gMatsudaDebugMenu_ActionResetHighScoreText:
- .string "Reset highest score$"
-
-gMatsudaDebugMenu_ActionSetAllArtMuseumText:
- .string "Set all art museum items$"
-
- .align 2
-gMatsudaDebugMenuActions:: @ 83C91F0
- .4byte gMatsudaDebugMenu_ActionContestText, MatsudaDebugMenu_Contest
- .4byte gMatsudaDebugMenu_ActionContestResultsText, MatsudaDebugMenu_ContestResults
- .4byte gMatsudaDebugMenu_ActionContestCommText, MatsudaDebugMenu_ContestComm
- .4byte gMatsudaDebugMenu_ActionCommTestText, MatsudaDebugMenu_CommTest
- .4byte gMatsudaDebugMenu_ActionSetHighScoreText, MatsudaDebugMenu_SetHighScore
- .4byte gMatsudaDebugMenu_ActionResetHighScoreText, MatsudaDebugMenu_ResetHighScore
- .4byte gMatsudaDebugMenu_ActionSetAllArtMuseumText, MatsudaDebugMenu_SetArtMuseumItems
-
-gMatsudaDebugMenu_UnknownByteArray:: @ 83C9228
- .byte 0xFC, 0x02, 0x0F, 0x00, 0xFF
-
-Unknown_083C922D:
- .incbin "graphics/unknown/ball.4bpp"
-
- .align 1
-Unknown_083C924E:
- .incbin "graphics/unknown/ball.gbapal"
-
-gUnknown_083C926E:: @ 83C926E
- .byte 2, 0
- .byte 17, 0
- .byte 2, 2
- .byte 17, 2
-
-gMatsudaDebugMenuContestTopLeft:: @ 83C9276
- .byte 0, 6
- .byte 15, 6
- .byte 0, 8
- .byte 15, 8
- .byte 0, 10
- .byte 15, 10
-
-gUnknown_083C9282:: @ 83C9282
- .byte 7, 6
- .byte 22, 6
- .byte 7, 8
- .byte 22, 8
- .byte 7, 10
- .byte 22, 10
-
-gUnknown_083C928E:: @ 83C928E
- .byte 2, 14
- .byte 17, 14
- .byte 2, 16
- .byte 17, 16
-
-gUnknown_083C9296:: @ 83C9296
- .byte 0x08, 0x80, 0x08, 0x80, 0x10, 0x10, 0x30, 0xA8, 0x30, 0xA8, 0x30, 0xA8, 0x08, 0x80, 0x08, 0x80, 0x10, 0x88
-
-gUnknown_083C92A8:: @ 83C92A8
- .byte 0x08, 0x18, 0x28, 0x38, 0x48, 0x58, 0x78, 0x88, 0x98
-
- .align 2
-gUnknown_083C92B4:: @ 83C92B4
- obj_tiles Unknown_083C922D, 32, 0x04b0
-
- .align 2
-gUnknown_083C92BC:: @ 83C92BC
- obj_pal Unknown_083C924E, 0x04B0
-
- .align 2
-gOamData_83C92C4:: @ 83C92C4
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteTemplate_83C92CC:: @ 83C92CC
- spr_template 1200, 1200, gOamData_83C92C4, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80AA754
-
- .align 2
-gUnknown_083C92E4:: @ 83C92E4
- .4byte sub_80AA8C8
- .4byte sub_80AA8D8
- .4byte sub_80AA8E8
- .4byte sub_80AA8F8
- .4byte sub_80AAC5C
- .4byte sub_80AAC5C
- .4byte sub_80AA930
- .4byte sub_80AA974
- .4byte sub_80AA9B8
- .4byte sub_80AA9FC
- .4byte sub_80AAA40
- .4byte sub_80AAA84
- .4byte sub_80AAAF0
- .4byte sub_80AAB30
- .4byte sub_80AAB70
- .4byte sub_80AABB0
- .4byte sub_80AABF0
- .4byte sub_80AAD44
-
-gMatsudaDebugMenu_StartText:: @ 83C932C
- .string "{COLOR CYAN}{HIGHLIGHT RED}$"
- .string "かいし$" @ Start
-
-gMatsudaDebugMenu_GoBackText:: @ 83C9337
- .string "もどる$" @ Go Back
-
-gMatsudaDebugMenu_BattlePointsText:: @ 83C933B
-.ifdef ENGLISH
- .string "{COLOR MAGENTA}BP.$"
-.else
- .string "{COLOR MAGENTA}BP,$"
-.endif
-
-MatsudaDebugMenuText_Cool:
- .string "かっこよさ$" @ coolness
-MatsudaDebugMenuText_Cute:
- .string "かわいさ$" @ cuteness
-MatsudaDebugMenuText_Beauty:
- .string "うつくしさ$" @ beauty
-MatsudaDebugMenuText_Smart:
- .string "かしこさ$" @ smartness
-MatsudaDebugMenuText_Tough:
- .string "たくましさ$" @ toughness
-MatsudaDebugMenuText_Sheen:
- .string "けづや$" @ sheen
-
- .align 2
-gMatsudaDebugMenuTextList1:: @ 83C9364
- .4byte MatsudaDebugMenuText_Cool
- .4byte MatsudaDebugMenuText_Cute
- .4byte MatsudaDebugMenuText_Beauty
- .4byte MatsudaDebugMenuText_Smart
- .4byte MatsudaDebugMenuText_Tough
- .4byte MatsudaDebugMenuText_Sheen
-
-MatsudaDebugMenuText_CoolContest:
- .string "かっこよさコンテスト$" @ Cool Contest
-MatsudaDebugMenuText_BeautyContest:
- .string "うつくしさコンテスト$" @ Beauty Contest
-MatsudaDebugMenuText_CuteContest:
- .string "かわいさコンテスト $" @ Cute Contest
-MatsudaDebugMenuText_SmartContest:
- .string "かしこさコンテスト $" @ Smart Contest
-MatsudaDebugMenuText_ToughContest:
- .string "たくましさコンテスト$" @ Tough Contest
-
- .align 2
-gMatsudaDebugMenuTextList2:: @ 83C93B4
- .4byte MatsudaDebugMenuText_CoolContest
- .4byte MatsudaDebugMenuText_BeautyContest
- .4byte MatsudaDebugMenuText_CuteContest
- .4byte MatsudaDebugMenuText_SmartContest
- .4byte MatsudaDebugMenuText_ToughContest
-
-MatsudaDebugMenuText_Fallarbor:
- .string "ハジツゲ/ノーマル$" @ Fallarbor / Normal
-MatsudaDebugMenuText_Verdanturf:
- .string "シダケ/スーパー $" @ Verdanturf / Super
-MatsudaDebugMenuText_Slateport:
- .string "カイナ/ハイパー $" @ Slateport / Hyper
-MatsudaDebugMenuText_Lilycove:
- .string "ミナモ/マスター $" @ Lilycove / Master
-
- .align 2
-gMatsudaDebugMenuTextList3:: @ 83C93F0
- .4byte MatsudaDebugMenuText_Fallarbor @ Normal
- .4byte MatsudaDebugMenuText_Verdanturf @ Super
- .4byte MatsudaDebugMenuText_Slateport @ Hyper
- .4byte MatsudaDebugMenuText_Lilycove @ Master
-
-@ OamData
- .align 2
-gUnknown_083C9400:: @ 83C9400
- .2byte 0x4000
- .2byte 0x4000
- .2byte 0xF3FF
diff --git a/data/mon_markings.s b/data/mon_markings.s
deleted file mode 100644
index b9ec7735f..000000000
--- a/data/mon_markings.s
+++ /dev/null
@@ -1,207 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_083E49F4:: @ 83E49F4
- .incbin "graphics/misc/mon_markings.gbapal"
-
- .align 2
-gUnknown_083E4A14:: @ 83E4A14
- .incbin "graphics/misc/mon_markings.4bpp"
-
- .align 2
-gOamData_83E5214:: @ 83E5214
- .2byte 0x0
- .2byte 0xC000
- .2byte 0x0
-
- .align 2
-gOamData_83E521C:: @ 83E521C
- .2byte 0x0
- .2byte 0x0
- .2byte 0x0
-
- .align 2
-gSpriteAnim_83E5224:: @ 83E5224
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E522C:: @ 83E522C
- obj_image_anim_frame 1, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5234:: @ 83E5234
- obj_image_anim_frame 2, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E523C:: @ 83E523C
- obj_image_anim_frame 3, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5244:: @ 83E5244
- obj_image_anim_frame 4, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E524C:: @ 83E524C
- obj_image_anim_frame 5, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5254:: @ 83E5254
- obj_image_anim_frame 6, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E525C:: @ 83E525C
- obj_image_anim_frame 7, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5264:: @ 83E5264
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E526C:: @ 83E526C
- obj_image_anim_frame 9, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83E5274:: @ 83E5274
- .4byte gSpriteAnim_83E5224
- .4byte gSpriteAnim_83E522C
- .4byte gSpriteAnim_83E5234
- .4byte gSpriteAnim_83E523C
- .4byte gSpriteAnim_83E5244
- .4byte gSpriteAnim_83E524C
- .4byte gSpriteAnim_83E5254
- .4byte gSpriteAnim_83E525C
- .4byte gSpriteAnim_83E5264
- .4byte gSpriteAnim_83E526C
-
- .align 2
-gSpriteAnim_83E529C:: @ 83E529C
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52A4:: @ 83E52A4
- obj_image_anim_frame 64, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83E52AC:: @ 83E52AC
- .4byte gSpriteAnim_83E529C
- .4byte gSpriteAnim_83E52A4
-
- .align 2
-gOamData_83E52B4:: @ 83E52B4
- .2byte 0x4000
- .2byte 0x4000
- .2byte 0x0
-
- .align 2
-gSpriteAnim_83E52BC:: @ 83E52BC
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52C4:: @ 83E52C4
- obj_image_anim_frame 4, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52CC:: @ 83E52CC
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52D4:: @ 83E52D4
- obj_image_anim_frame 12, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52DC:: @ 83E52DC
- obj_image_anim_frame 16, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52E4:: @ 83E52E4
- obj_image_anim_frame 20, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52EC:: @ 83E52EC
- obj_image_anim_frame 24, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52F4:: @ 83E52F4
- obj_image_anim_frame 28, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52FC:: @ 83E52FC
- obj_image_anim_frame 32, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5304:: @ 83E5304
- obj_image_anim_frame 36, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E530C:: @ 83E530C
- obj_image_anim_frame 40, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5314:: @ 83E5314
- obj_image_anim_frame 44, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E531C:: @ 83E531C
- obj_image_anim_frame 48, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5324:: @ 83E5324
- obj_image_anim_frame 52, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E532C:: @ 83E532C
- obj_image_anim_frame 56, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5334:: @ 83E5334
- obj_image_anim_frame 60, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83E533C:: @ 83E533C
- .4byte gSpriteAnim_83E52BC
- .4byte gSpriteAnim_83E52C4
- .4byte gSpriteAnim_83E52CC
- .4byte gSpriteAnim_83E52D4
- .4byte gSpriteAnim_83E52DC
- .4byte gSpriteAnim_83E52E4
- .4byte gSpriteAnim_83E52EC
- .4byte gSpriteAnim_83E52F4
- .4byte gSpriteAnim_83E52FC
- .4byte gSpriteAnim_83E5304
- .4byte gSpriteAnim_83E530C
- .4byte gSpriteAnim_83E5314
- .4byte gSpriteAnim_83E531C
- .4byte gSpriteAnim_83E5324
- .4byte gSpriteAnim_83E532C
- .4byte gSpriteAnim_83E5334
diff --git a/data/money.s b/data/money.s
deleted file mode 100644
index 04e54a836..000000000
--- a/data/money.s
+++ /dev/null
@@ -1,31 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gOamData_83CF558:: @ 83CF558
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_83CF560:: @ 83CF560
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83CF568:: @ 83CF568
- .4byte gSpriteAnim_83CF560
-
- .align 2
-gSpriteTemplate_83CF56C:: @ 83CF56C
- spr_template 10018, 10018, gOamData_83CF558, gSpriteAnimTable_83CF568, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_083CF584:: @ 83CF584
- obj_tiles gMenuMoneyGfx, 256, 0x2722
-
- .align 2
-gUnknown_083CF58C:: @ 83CF58C
- obj_pal gMenuMoneyPal, 0x2722
diff --git a/data/mori_debug_menu.s b/data/mori_debug_menu.s
deleted file mode 100644
index 2545b2b15..000000000
--- a/data/mori_debug_menu.s
+++ /dev/null
@@ -1,72 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-@ These seem to be strings for keypad test code.
-gUnknown_0839B22C:: @ 839B22C
- .string " A$" @ A
- .string " B$" @ B
- .string "SL$" @ SELECT
- .string "ST$" @ START
- .string "RK$" @ right
- .string "LK$" @ left
- .string "UK$" @ up
- .string "DK$" @ down
- .string "RT$" @ R
- .string "LT$" @ L
-
-gUnknown_0839B24A:: @ 839B24A
- .string "ND$"
-
-gUnknown_0839B24D:: @ 839B24D
- .string "の こどもは\n$" @ "'s child <topic-particle>"
-
-gUnknown_0839B255:: @ 839B255
- .string " $"
-
-gUnknown_0839B257:: @ 839B257
- .string "ながいなまえぽけもん$" @ "long name pokemon" (used as test name)
-
-Text_39B262: @ 839B262
- .string "Search a child$"
-
-Text_39B271: @ 839B271
- .string "Egg$"
-
-Text_39B275: @ 839B275
- .string "Egg (male)$"
-
-Text_39B280: @ 839B280
- .string "1000 steps$"
-
-Text_39B28B: @ 839B28B
- .string "10000 steps$"
-
-Text_39B297: @ 839B297
- .string "MOVE TUTOR$"
-
-Text_39B2A2: @ 839B2A2
- .string "Breed an egg$"
-
-Text_39B2AF: @ 839B2AF
- .string "Long name$"
-
-Text_39B2B9: @ 839B2B9
-.ifdef ENGLISH
- .string "ポロックけす$" @ "{POKEBLOCK} CASE$"
-.else
- .string "Delete {POKEBLOCK}$"
-.endif
-
- .align 2
-gMoriDebugMenuActions:: @ 839B2C0
- .4byte Text_39B262, MoriDebugMenu_SearchChild
- .4byte Text_39B271, MoriDebugMenu_Egg
- .4byte Text_39B275, MoriDebugMenu_MaleEgg
- .4byte Text_39B280, MoriDebugMenu_1000Steps
- .4byte Text_39B28B, MoriDebugMenu_10000Steps
- .4byte Text_39B297, MoriDebugMenu_MoveTutor
- .4byte Text_39B2A2, MoriDebugMenu_BreedEgg
- .4byte Text_39B2AF, MoriDebugMenu_LongName
- .4byte Text_39B2B9, MoriDebugMenu_PokeblockCase
diff --git a/data/pc_screen_effect.s b/data/pc_screen_effect.s
new file mode 100755
index 000000000..c33957945
--- /dev/null
+++ b/data/pc_screen_effect.s
@@ -0,0 +1,27 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gOamData_83D18D8:: @ 83D18D8
+ .2byte 0x4000
+ .2byte 0x4000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_83D18E0:: @ 83D18E0
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D18E8:: @ 83D18E8
+ .4byte gSpriteAnim_83D18E0
+
+ .align 2
+gUnknownPal_083D18EC::
+ .incbin "graphics/unknown/unknown_3D18EC.gbapal"
+
+ .align 2
+gUnknownGfx_083D190C::
+ .incbin "graphics/unknown/unknown_3D190C.4bpp"
diff --git a/data/pokedex_area_screen.s b/data/pokedex_area_screen.s
index 9c23f8e89..0d15169d0 100644
--- a/data/pokedex_area_screen.s
+++ b/data/pokedex_area_screen.s
@@ -20,13 +20,13 @@ gUnknown_083F856E:: @ 83F856E
.align 1
gUnknown_083F857A:: @ 83F857A
- .2byte 85, 2142
- .2byte 68, 2119
+ .2byte 85, 2142 @ FLAG_LANDMARK_SKY_PILLAR
+ .2byte 68, 2119 @ FLAG_LANDMARK_SEAFLOOR_CAVERN
.2byte 88, 0
@ XXX: what is this?
.align 2
- .4byte 0x2000000
+ .4byte gSharedMem
.align 2
gUnknown_083F858C:: @ 83F858C
@@ -60,7 +60,7 @@ gUnknown_083F865C:: @ 83F865C
.align 2
gUnknown_083F8664:: @ 83F8664
- obj_tiles 0x02000FB4, 0x600, 3
+ obj_tiles gSharedMem + 0xFB4, 0x600, 3
.align 2
gOamData_83F866C:: @ 83F866C
diff --git a/data/pokedex_cry_screen.s b/data/pokedex_cry_screen.s
index d5faa24de..0908ddacb 100644
--- a/data/pokedex_cry_screen.s
+++ b/data/pokedex_cry_screen.s
@@ -37,7 +37,7 @@ gUnknown_083FB274:: @ 83FB274
.2byte 0x3,0x7,0xB,0xF,0x13,0x17,0x1B,0x1F,0x403,0x407,0x40B,0x40F,0x413,0x417,0x41B,0x41F,0x803,0x807,0x80B,0x80F,0x813,0x817,0x81B,0x81F,0xC03,0xC07,0xC0B,0xC0F,0xC13,0xC17,0xC1B,0xC1F,0x1003,0x1007,0x100B,0x100F,0x1013,0x1017,0x101B,0x101F,0x1403,0x1407,0x140B,0x140F,0x1413,0x1417,0x141B,0x141F,0x1803,0x1807,0x180B,0x180F,0x1813,0x1817,0x181B,0x181F,0x1C03,0x1C07,0x1C0B,0x1C0F,0x1C13,0x1C17,0x1C1B,0x1C1F,0x2003,0x2007,0x200B,0x200F,0x2013,0x2017,0x201B,0x201F
.align 2
- .4byte 0x201C000
+ .4byte gSharedMem + 0x1C000
.align 1
gUnknown_083FB6F8:: @ 83FB6F8
diff --git a/data/pokemon_storage_system.s b/data/pokemon_storage_system.s
index e5d3e9282..b765656f7 100644
--- a/data/pokemon_storage_system.s
+++ b/data/pokemon_storage_system.s
@@ -126,7 +126,7 @@ gUnknown_083B6D94:: @ 83B6D94
.align 2
gUnknown_083B6DB4:: @ 83B6DB4
- .4byte 0x02000000
+ .4byte gSharedMem
.align 2
gUnknown_083B6DB8:: @ 83B6DB8
@@ -142,11 +142,11 @@ gWaveformSpriteSheet:: @ 83B6DC4
.align 2
gUnknown_083B6DCC:: @ 83B6DCC
- obj_tiles 0x02002784, 0x800, 2
+ obj_tiles gSharedMem + 0x2784, 0x800, 2
.align 2
gUnknown_083B6DD4:: @ 83B6DD4
- obj_pal 0x02002704, 56007
+ obj_pal gSharedMem + 0x2704, 56007
.align 2
gSpriteTemplate_83B6DDC:: @ 83B6DDC
diff --git a/data/pokemon_summary_screen.s b/data/pokemon_summary_screen.s
deleted file mode 100644
index 5d577ca84..000000000
--- a/data/pokemon_summary_screen.s
+++ /dev/null
@@ -1,393 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-@ 83BC680
- .include "data/text/move_descriptions.inc"
-
-@ 83C0F60
- .include "data/text/nature_names.inc"
-
- .align 2
-gUnknown_083C1068:: @ 83C1068
- .4byte gEmptyString_81E72B0
- .4byte OtherText_PokeInfo
- .4byte OtherText_PokeSkills
- .4byte OtherText_BattleMoves
- .4byte OtherText_ContestMoves
- .4byte OtherText_Switch
- .4byte OtherText_Info
- .4byte gOtherText_CancelNoTerminator
-
- .align 2
-gSpriteAffineAnim_83C1088:: @ 83C1088
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83C1098:: @ 83C1098
- .4byte gSpriteAffineAnim_83C1088
-
- .align 2
-gOamData_83C109C:: @ 83C109C
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83C10A4:: @ 83C10A4
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10AC:: @ 83C10AC
- obj_image_anim_frame 8, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10B4:: @ 83C10B4
- obj_image_anim_frame 16, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10BC:: @ 83C10BC
- obj_image_anim_frame 24, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10C4:: @ 83C10C4
- obj_image_anim_frame 32, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10CC:: @ 83C10CC
- obj_image_anim_frame 40, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10D4:: @ 83C10D4
- obj_image_anim_frame 48, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10DC:: @ 83C10DC
- obj_image_anim_frame 56, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10E4:: @ 83C10E4
- obj_image_anim_frame 64, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10EC:: @ 83C10EC
- obj_image_anim_frame 72, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10F4:: @ 83C10F4
- obj_image_anim_frame 80, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10FC:: @ 83C10FC
- obj_image_anim_frame 88, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1104:: @ 83C1104
- obj_image_anim_frame 96, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C110C:: @ 83C110C
- obj_image_anim_frame 104, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1114:: @ 83C1114
- obj_image_anim_frame 112, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C111C:: @ 83C111C
- obj_image_anim_frame 120, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1124:: @ 83C1124
- obj_image_anim_frame 128, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C112C:: @ 83C112C
- obj_image_anim_frame 136, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1134:: @ 83C1134
- obj_image_anim_frame 144, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C113C:: @ 83C113C
- obj_image_anim_frame 152, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1144:: @ 83C1144
- obj_image_anim_frame 160, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C114C:: @ 83C114C
- obj_image_anim_frame 168, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1154:: @ 83C1154
- obj_image_anim_frame 176, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83C115C:: @ 83C115C
- .4byte gSpriteAnim_83C10A4
- .4byte gSpriteAnim_83C10AC
- .4byte gSpriteAnim_83C10B4
- .4byte gSpriteAnim_83C10BC
- .4byte gSpriteAnim_83C10C4
- .4byte gSpriteAnim_83C10CC
- .4byte gSpriteAnim_83C10D4
- .4byte gSpriteAnim_83C10DC
- .4byte gSpriteAnim_83C10E4
- .4byte gSpriteAnim_83C10EC
- .4byte gSpriteAnim_83C10F4
- .4byte gSpriteAnim_83C10FC
- .4byte gSpriteAnim_83C1104
- .4byte gSpriteAnim_83C110C
- .4byte gSpriteAnim_83C1114
- .4byte gSpriteAnim_83C111C
- .4byte gSpriteAnim_83C1124
- .4byte gSpriteAnim_83C112C
- .4byte gSpriteAnim_83C1134
- .4byte gSpriteAnim_83C113C
- .4byte gSpriteAnim_83C1144
- .4byte gSpriteAnim_83C114C
- .4byte gSpriteAnim_83C1154
-
- .align 2
-gUnknown_083C11B8:: @ 83C11B8
- obj_tiles gMoveTypes_Gfx, 5888, 0x7532
-
- .align 2
-gSpriteTemplate_83C11C0:: @ 83C11C0
- spr_template 30002, 30002, gOamData_83C109C, gSpriteAnimTable_83C115C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_083C11D8:: @ 83C11D8
- .byte 0xD,0xD,0xE,0xE,0xD,0xD,0xF,0xE,0xD,0xF,0xD,0xE,0xF,0xD,0xE,0xE,0xF,0xD,0xD,0xE,0xE,0xF,0xD
-
- .align 2
-gOamData_83C11F0:: @ 83C11F0
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83C11F8:: @ 83C11F8
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1200:: @ 83C1200
- obj_image_anim_frame 4, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1208:: @ 83C1208
- obj_image_anim_frame 8, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1210:: @ 83C1210
- obj_image_anim_frame 12, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1218:: @ 83C1218
- obj_image_anim_frame 16, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1220:: @ 83C1220
- obj_image_anim_frame 16, 0, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1228:: @ 83C1228
- obj_image_anim_frame 20, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1230:: @ 83C1230
- obj_image_anim_frame 24, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1238:: @ 83C1238
- obj_image_anim_frame 24, 0, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1240:: @ 83C1240
- obj_image_anim_frame 28, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83C1248:: @ 83C1248
- .4byte gSpriteAnim_83C11F8
- .4byte gSpriteAnim_83C1200
- .4byte gSpriteAnim_83C1208
- .4byte gSpriteAnim_83C1210
- .4byte gSpriteAnim_83C1218
- .4byte gSpriteAnim_83C1220
- .4byte gSpriteAnim_83C1228
- .4byte gSpriteAnim_83C1230
- .4byte gSpriteAnim_83C1238
- .4byte gSpriteAnim_83C1240
-
- .align 2
-gUnknown_083C1270:: @ 83C1270
- obj_tiles gMenuSummaryGfx, 1024, 0x7530
-
- .align 2
-gUnknown_083C1278:: @ 83C1278
- obj_pal gMenuSummaryPal, 0x7530
-
- .align 2
-gSpriteTemplate_83C1280:: @ 83C1280
- spr_template 30000, 30000, gOamData_83C11F0, gSpriteAnimTable_83C1248, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_83C1298:: @ 83C1298
- .2byte 0x4000
- .2byte 0x4000
- .2byte 0x0C00
-
- .align 2
-gSpriteAnim_83C12A0:: @ 83C12A0
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C12A8:: @ 83C12A8
- obj_image_anim_frame 4, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C12B0:: @ 83C12B0
- obj_image_anim_frame 8, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C12B8:: @ 83C12B8
- obj_image_anim_frame 12, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C12C0:: @ 83C12C0
- obj_image_anim_frame 16, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C12C8:: @ 83C12C8
- obj_image_anim_frame 20, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C12D0:: @ 83C12D0
- obj_image_anim_frame 24, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83C12D8:: @ 83C12D8
- .4byte gSpriteAnim_83C12A0
- .4byte gSpriteAnim_83C12A8
- .4byte gSpriteAnim_83C12B0
- .4byte gSpriteAnim_83C12B8
- .4byte gSpriteAnim_83C12C0
- .4byte gSpriteAnim_83C12C8
- .4byte gSpriteAnim_83C12D0
-
- .align 2
-gUnknown_083C12F4:: @ 83C12F4
- obj_tiles gStatusGfx_Icons, 896, 0x7531
-
- .align 2
-gUnknown_083C12FC:: @ 83C12FC
- obj_pal gStatusPal_Icons, 0x7531
-
- .align 2
-gSpriteTemplate_83C1304:: @ 83C1304
- spr_template 30001, 30001, gOamData_83C1298, gSpriteAnimTable_83C12D8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSummaryScreenMonMarkingsPalette:: @ 83C131C
- .incbin "graphics/summary_screen/mon_markings.gbapal"
-
-.ifdef ENGLISH
- .align 2
-gSummaryScreenTextTiles:: @ 83C133C
- .incbin "graphics/summary_screen/text.4bpp"
-.endif
-
- .align 2
-gSummaryScreenButtonTiles:: @ 83C147C
- .incbin "graphics/summary_screen/buttons.4bpp"
-
- .align 1
-gUnknown_083C157C:: @ 83C157C
- .2byte 0x5F5A @ palette color
-
- .align 1
-gUnknown_083C157E:: @ 83C157E
- .2byte 0x6FDE @ palette color
-
- .align 2
-gUnknown_083C1580:: @ 83C1580
- .4byte sub_809FC0C
- .4byte sub_809FEB8
-
- .align 2
-gUnknown_083C1588:: @ 83C1588
- .4byte sub_809F63C
- .4byte sub_809F650
- .4byte sub_809F664
- .4byte sub_809F664
-
- .align 2
-gUnknown_083C1598:: @ 83C1598
- .4byte sub_809FE6C
- .4byte sub_80A0090
- .4byte sub_80A015C
- .4byte sub_80A015C
-
-gUnknown_083C15A8:: @ 83C15A8
- .byte 0, 2, 3, 1, 4, 5
-
-gUnknown_083C15AE:: @ 83C15AE
- .string "{STR_VAR_1}{CLEAR_TO 64}$"
-
-gUnknown_083C15B4:: @ 83C15B4
- .string "{STR_VAR_1}{CLEAR_TO 72}$"
-
- .align 2
-gUnknown_083C15BC:: @ 83C15BC
- .byte 9, 1, 0, 2
- .byte 10, 3, 0, 4
- .byte 8, 5, 0, 6
- .byte 11, 7, 0, 8
- .byte 14, 9, 0, 10
- .byte 12, 11, 0, 12
- .byte 13, 13, 0, 14
- .byte -1, 15, 0, 10
diff --git a/data/pokenav.s b/data/pokenav.s
index 3ea704c03..f84e45596 100644
--- a/data/pokenav.s
+++ b/data/pokenav.s
@@ -5,7 +5,7 @@
.align 2
gUnknown_083DFEC4:: @ 83DFEC4
- .4byte 0x2000000
+ .4byte gSharedMem
.align 2
gUnknown_083DFEC8:: @ 83DFEC8
diff --git a/data/reset_rtc_screen.s b/data/reset_rtc_screen.s
deleted file mode 100644
index a9a3ac847..000000000
--- a/data/reset_rtc_screen.s
+++ /dev/null
@@ -1,67 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_08376420:: @ 8376420
- .byte 3, 0, 1, 0, 15, 39, 0, 2, 0, 0, 0, 0
- .byte 4, 0, 0, 0, 23, 0, 1, 3, 0, 0, 0, 0
- .byte 5, 0, 0, 0, 59, 0, 2, 4, 0, 0, 0, 0
- .byte 6, 0, 0, 0, 59, 0, 3, 5, 0, 0, 0, 0
- .byte 7, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0
-
- .align 2
-gOamData_837645C:: @ 837645C
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteImage_8376464:: @ 8376464
- .incbin "graphics/unknown_sprites/83764AC/0.4bpp"
-
- .align 2
-gSpriteImage_8376484:: @ 8376484
- .incbin "graphics/unknown_sprites/83764AC/1.4bpp"
-
- .align 2
-Palette_3764A4: @ 83764A4
- .incbin "graphics/unknown/83764A4.gbapal"
-
- .align 2
-gSpriteImageTable_83764AC:: @ 83764AC
- obj_frame_tiles gSpriteImage_8376464, 0x20
- obj_frame_tiles gSpriteImage_8376484, 0x20
-
- .align 2
-gUnknown_083764BC:: @ 83764BC
- obj_pal Palette_3764A4, 0x1000
-
- .align 2
-gSpriteAnim_83764C4:: @ 83764C4
- obj_image_anim_frame 0, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83764CC:: @ 83764CC
- obj_image_anim_frame 0, 30, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83764D4:: @ 83764D4
- obj_image_anim_frame 1, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83764DC:: @ 83764DC
- .4byte gSpriteAnim_83764C4
- .4byte gSpriteAnim_83764CC
- .4byte gSpriteAnim_83764D4
-
- .align 2
-gSpriteTemplate_83764E8:: @ 83764E8
- spr_template 0xFFFF, 0x1000, gOamData_837645C, gSpriteAnimTable_83764DC, gSpriteImageTable_83764AC, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_08376500:: @ 8376500
- .string " : $"
diff --git a/data/roulette.s b/data/roulette.s
index 47aa45215..64b7b82e2 100644
--- a/data/roulette.s
+++ b/data/roulette.s
@@ -621,10 +621,10 @@ gOamData_83FA328:: @ 83FA328
.align 2
gSpriteImageTable_83FA330:: @ 83FA330
- obj_frame_tiles 0x02017E00, 0x80
- obj_frame_tiles 0x02017E80, 0x80
- obj_frame_tiles 0x02017F00, 0x80
- obj_frame_tiles 0x02017F80, 0x80
+ obj_frame_tiles gSharedMem + 0x17E00, 0x80
+ obj_frame_tiles gSharedMem + 0x17E80, 0x80
+ obj_frame_tiles gSharedMem + 0x17F00, 0x80
+ obj_frame_tiles gSharedMem + 0x17F80, 0x80
.align 2
gSpriteAnim_83FA350:: @ 83FA350
@@ -732,13 +732,13 @@ gOamData_83FA454:: @ 83FA454
.align 2
gSpriteImageTable_83FA45C:: @ 83FA45C
- obj_frame_tiles 0x02017000, 0x200
- obj_frame_tiles 0x02017200, 0x200
- obj_frame_tiles 0x02017400, 0x200
- obj_frame_tiles 0x02017600, 0x200
- obj_frame_tiles 0x02017800, 0x200
- obj_frame_tiles 0x02017A00, 0x200
- obj_frame_tiles 0x02017C00, 0x200
+ obj_frame_tiles gSharedMem + 0x17000, 0x200
+ obj_frame_tiles gSharedMem + 0x17200, 0x200
+ obj_frame_tiles gSharedMem + 0x17400, 0x200
+ obj_frame_tiles gSharedMem + 0x17600, 0x200
+ obj_frame_tiles gSharedMem + 0x17800, 0x200
+ obj_frame_tiles gSharedMem + 0x17A00, 0x200
+ obj_frame_tiles gSharedMem + 0x17C00, 0x200
.align 2
gSpriteAnim_83FA494:: @ 83FA494
@@ -825,11 +825,11 @@ gOamData_83FA54C:: @ 83FA54C
.align 2
gSpriteImageTable_83FA554: @ 83FA554
- obj_frame_tiles 0x02018000, 0x80
+ obj_frame_tiles gSharedMem + 0x18000, 0x80
.align 2
gSpriteImageTable_83FA55C: @ 83FA55C
- obj_frame_tiles 0x02018080, 0x100
+ obj_frame_tiles gSharedMem + 0x18080, 0x100
.align 2
gSpriteAffineAnim_83FA564:: @ 83FA564
diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc
index b6b7401f3..3f47da1da 100644
--- a/data/script_cmd_table.inc
+++ b/data/script_cmd_table.inc
@@ -67,18 +67,18 @@ gScriptCmdTable:: @ 814AE30
.4byte ScrCmd_setdivewarp @ 0x40
.4byte ScrCmd_setholewarp @ 0x41
.4byte ScrCmd_getplayerxy @ 0x42
- .4byte ScrCmd_countpokemon @ 0x43
- .4byte ScrCmd_additem @ 0x44
- .4byte ScrCmd_removeitem @ 0x45
+ .4byte ScrCmd_getpartysize @ 0x43
+ .4byte ScrCmd_giveitem @ 0x44
+ .4byte ScrCmd_takeitem @ 0x45
.4byte ScrCmd_checkitemspace @ 0x46
.4byte ScrCmd_checkitem @ 0x47
.4byte ScrCmd_checkitemtype @ 0x48
- .4byte ScrCmd_addpcitem @ 0x49
+ .4byte ScrCmd_givepcitem @ 0x49
.4byte ScrCmd_checkpcitem @ 0x4A
- .4byte ScrCmd_adddecor @ 0x4B
- .4byte ScrCmd_removedecor @ 0x4C
- .4byte ScrCmd_hasdecor @ 0x4D
- .4byte ScrCmd_checkdecor @ 0x4E
+ .4byte ScrCmd_givedecoration @ 0x4B
+ .4byte ScrCmd_takedecoration @ 0x4C
+ .4byte ScrCmd_checkdecor @ 0x4D
+ .4byte ScrCmd_checkdecorspace @ 0x4E
.4byte ScrCmd_applymovement @ 0x4F
.4byte ScrCmd_applymovement_at @ 0x50
.4byte ScrCmd_waitmovement @ 0x51
@@ -88,14 +88,14 @@ gScriptCmdTable:: @ 814AE30
.4byte ScrCmd_addobject @ 0x55
.4byte ScrCmd_addobject_at @ 0x56
.4byte ScrCmd_setobjectxy @ 0x57
- .4byte ScrCmd_showobject @ 0x58
- .4byte ScrCmd_hideobject @ 0x59
+ .4byte ScrCmd_showobjectat @ 0x58
+ .4byte ScrCmd_hideobjectat @ 0x59
.4byte ScrCmd_faceplayer @ 0x5A
.4byte ScrCmd_turnobject @ 0x5B
.4byte ScrCmd_trainerbattle @ 0x5C
- .4byte ScrCmd_battlebegin @ 0x5D
- .4byte ScrCmd_ontrainerbattleend @ 0x5E
- .4byte ScrCmd_ontrainerbattleendgoto @ 0x5F
+ .4byte ScrCmd_trainerbattlebegin @ 0x5D
+ .4byte ScrCmd_gotopostbattlescript @ 0x5E
+ .4byte ScrCmd_gotobeatenscript @ 0x5F
.4byte ScrCmd_checktrainerflag @ 0x60
.4byte ScrCmd_settrainerflag @ 0x61
.4byte ScrCmd_cleartrainerflag @ 0x62
@@ -109,7 +109,7 @@ gScriptCmdTable:: @ 814AE30
.4byte ScrCmd_lock @ 0x6A
.4byte ScrCmd_releaseall @ 0x6B
.4byte ScrCmd_release @ 0x6C
- .4byte ScrCmd_waitbutton @ 0x6D
+ .4byte ScrCmd_waitbuttonpress @ 0x6D
.4byte ScrCmd_yesnobox @ 0x6E
.4byte ScrCmd_multichoice @ 0x6F
.4byte ScrCmd_multichoicedefault @ 0x70
@@ -117,29 +117,29 @@ gScriptCmdTable:: @ 814AE30
.4byte ScrCmd_drawbox @ 0x72
.4byte ScrCmd_erasebox @ 0x73
.4byte ScrCmd_drawboxtext @ 0x74
- .4byte ScrCmd_drawpokepic @ 0x75
- .4byte ScrCmd_erasepokepic @ 0x76
+ .4byte ScrCmd_drawmonpic @ 0x75
+ .4byte ScrCmd_erasemonpic @ 0x76
.4byte ScrCmd_drawcontestwinner @ 0x77
.4byte ScrCmd_braillemessage @ 0x78
- .4byte ScrCmd_givepoke @ 0x79
+ .4byte ScrCmd_givemon @ 0x79
.4byte ScrCmd_giveegg @ 0x7A
- .4byte ScrCmd_setpokemove @ 0x7B
- .4byte ScrCmd_checkpokemove @ 0x7C
- .4byte ScrCmd_getspeciesname @ 0x7D
- .4byte ScrCmd_getfirstpartypokename @ 0x7E
- .4byte ScrCmd_getpartypokename @ 0x7F
- .4byte ScrCmd_getitemname @ 0x80
- .4byte ScrCmd_getdecorname @ 0x81
- .4byte ScrCmd_getmovename @ 0x82
- .4byte ScrCmd_getnumberstring @ 0x83
- .4byte ScrCmd_getstdstring @ 0x84
- .4byte ScrCmd_getstring @ 0x85
+ .4byte ScrCmd_setmonmove @ 0x7B
+ .4byte ScrCmd_checkpartymove @ 0x7C
+ .4byte ScrCmd_bufferspeciesname @ 0x7D
+ .4byte ScrCmd_bufferleadmonspeciesname @ 0x7E
+ .4byte ScrCmd_bufferpartymonnick @ 0x7F
+ .4byte ScrCmd_bufferitemname @ 0x80
+ .4byte ScrCmd_bufferdecorationname @ 0x81
+ .4byte ScrCmd_buffermovename @ 0x82
+ .4byte ScrCmd_buffernumberstring @ 0x83
+ .4byte ScrCmd_bufferstdstring @ 0x84
+ .4byte ScrCmd_bufferstring @ 0x85
.4byte ScrCmd_pokemart @ 0x86
- .4byte ScrCmd_pokemartdecor @ 0x87
- .4byte ScrCmd_pokemartbp @ 0x88
+ .4byte ScrCmd_pokemartdecoration @ 0x87
+ .4byte ScrCmd_pokemartdecoration2 @ 0x88
.4byte ScrCmd_playslotmachine @ 0x89
- .4byte ScrCmd_plantberrytree @ 0x8A
- .4byte ScrCmd_choosecontestpkmn @ 0x8B
+ .4byte ScrCmd_setberrytree @ 0x8A
+ .4byte ScrCmd_choosecontestmon @ 0x8B
.4byte ScrCmd_startcontest @ 0x8C
.4byte ScrCmd_showcontestresults @ 0x8D
.4byte ScrCmd_contestlinktransfer @ 0x8E
@@ -152,21 +152,21 @@ gScriptCmdTable:: @ 814AE30
.4byte ScrCmd_updatemoneybox @ 0x95
.4byte ScrCmd_getpricereduction @ 0x96
.4byte ScrCmd_fadescreen @ 0x97
- .4byte ScrCmd_fadescreendelay @ 0x98
- .4byte ScrCmd_setdarklevel @ 0x99
- .4byte ScrCmd_animdarklevel @ 0x9A
+ .4byte ScrCmd_fadescreenspeed @ 0x98
+ .4byte ScrCmd_setflashradius @ 0x99
+ .4byte ScrCmd_animateflash @ 0x9A
.4byte ScrCmd_messageautoscroll @ 0x9B
.4byte ScrCmd_dofieldeffect @ 0x9C
- .4byte ScrCmd_setfieldeffect @ 0x9D
+ .4byte ScrCmd_setfieldeffectargument @ 0x9D
.4byte ScrCmd_waitfieldeffect @ 0x9E
- .4byte ScrCmd_sethealplace @ 0x9F
+ .4byte ScrCmd_setrespawn @ 0x9F
.4byte ScrCmd_checkplayergender @ 0xA0
- .4byte ScrCmd_playpokecry @ 0xA1
- .4byte ScrCmd_setmaptile @ 0xA2
+ .4byte ScrCmd_playmoncry @ 0xA1
+ .4byte ScrCmd_setmetatile @ 0xA2
.4byte ScrCmd_resetweather @ 0xA3
.4byte ScrCmd_setweather @ 0xA4
.4byte ScrCmd_doweather @ 0xA5
- .4byte ScrCmd_tileeffect @ 0xA6
+ .4byte ScrCmd_setstepcallback @ 0xA6
.4byte ScrCmd_setmaplayoutindex @ 0xA7
.4byte ScrCmd_setobjectpriority @ 0xA8
.4byte ScrCmd_resetobjectpriority @ 0xA9
@@ -190,14 +190,14 @@ gScriptCmdTable:: @ 814AE30
.4byte ScrCmd_vgoto_if @ 0xBB
.4byte ScrCmd_vcall_if @ 0xBC
.4byte ScrCmd_vmessage @ 0xBD
- .4byte ScrCmd_vloadword @ 0xBE
- .4byte ScrCmd_vgetstring @ 0xBF
+ .4byte ScrCmd_vloadptr @ 0xBE
+ .4byte ScrCmd_vbufferstring @ 0xBF
.4byte ScrCmd_showcoinsbox @ 0xC0
.4byte ScrCmd_hidecoinsbox @ 0xC1
.4byte ScrCmd_updatecoinsbox @ 0xC2
.4byte ScrCmd_incrementgamestat @ 0xC3
.4byte ScrCmd_setescapewarp @ 0xC4
- .4byte ScrCmd_waitpokecry @ 0xC5
+ .4byte ScrCmd_waitmoncry @ 0xC5
gScriptCmdTableEnd::
.4byte ScrCmd_nop
diff --git a/data/scripts/berry_tree.inc b/data/scripts/berry_tree.inc
index 9e219a339..ab700cbc3 100644
--- a/data/scripts/berry_tree.inc
+++ b/data/scripts/berry_tree.inc
@@ -14,7 +14,7 @@ Route102_EventScript_1A1533:: @ 81A1533
lockall
message Route102_Text_1A1946
waitmessage
- waitbutton
+ waitbuttonpress
releaseall
end
@@ -26,7 +26,7 @@ Route102_EventScript_1A153D:: @ 81A153D
goto_if_eq Route102_EventScript_1A1558
message Route102_Text_1A16B6
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -41,11 +41,11 @@ Route102_EventScript_1A1558:: @ 81A1558
Route102_EventScript_1A1577:: @ 81A1577
fadescreen 1
closemessage
- special sub_80B4EE4
+ special Berry_FadeAndGoToBerryBagMenu
waitstate
compare ITEM_ID, 0
goto_if_eq Route102_EventScript_1A1593
- removeitem ITEM_ID, 1
+ takeitem ITEM_ID, 1
call Route102_EventScript_1A16A9
Route102_EventScript_1A1593:: @ 81A1593
@@ -56,21 +56,21 @@ Route102_EventScript_1A1595:: @ 81A1595
lockall
message Route102_Text_1A172C
waitmessage
- waitbutton
+ waitbuttonpress
goto Route102_EventScript_1A165F
Route102_EventScript_1A15A2:: @ 81A15A2
lockall
message Route102_Text_1A174B
waitmessage
- waitbutton
+ waitbuttonpress
goto Route102_EventScript_1A165F
Route102_EventScript_1A15AF:: @ 81A15AF
lockall
message Route102_Text_1A175C
waitmessage
- waitbutton
+ waitbuttonpress
goto Route102_EventScript_1A165F
Route102_EventScript_1A15BC:: @ 81A15BC
@@ -78,7 +78,7 @@ Route102_EventScript_1A15BC:: @ 81A15BC
lockall
message Route102_Text_1A177D
waitmessage
- waitbutton
+ waitbuttonpress
goto Route102_EventScript_1A165F
Route102_EventScript_1A15CE:: @ 81A15CE
@@ -86,19 +86,19 @@ Route102_EventScript_1A15CE:: @ 81A15CE
goto_if_eq Route102_EventScript_1A15F2
compare 0x8005, 4
goto_if_eq Route102_EventScript_1A15EB
- getstring 1, Route102_Text_1A17B7
+ bufferstring 1, Route102_Text_1A17B7
return
Route102_EventScript_1A15EB:: @ 81A15EB
- getstring 1, Route102_Text_1A179F
+ bufferstring 1, Route102_Text_1A179F
return
Route102_EventScript_1A15F2:: @ 81A15F2
- getstring 1, Route102_Text_1A17B0
+ bufferstring 1, Route102_Text_1A17B0
return
Route102_EventScript_1A15F9:: @ 81A15F9
- getnumberstring 1, 0x8006
+ buffernumberstring 1, 0x8006
lock
faceplayer
msgbox Route102_Text_1A17C0, 5
@@ -116,24 +116,24 @@ Route102_EventScript_1A161D:: @ 81A161D
playfanfare 387
waitmessage
waitfanfare
- waitbutton
+ waitbuttonpress
message Route102_Text_1A181A
waitmessage
- waitbutton
+ waitbuttonpress
release
end
Route102_EventScript_1A1642:: @ 81A1642
message Route102_Text_1A1881
waitmessage
- waitbutton
+ waitbuttonpress
release
end
Route102_EventScript_1A164B:: @ 81A164B
message Route102_Text_1A18C5
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -170,7 +170,7 @@ Route102_EventScript_1A1693:: @ 81A1693
waitstate
message Route102_Text_1A1925
waitmessage
- waitbutton
+ waitbuttonpress
releaseall
end
@@ -179,5 +179,5 @@ Route102_EventScript_1A16A9:: @ 81A16A9
incrementgamestat GAME_STAT_PLANTED_BERRIES
message Route102_Text_1A16FB
waitmessage
- waitbutton
+ waitbuttonpress
return
diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc
index 9f44e131b..0cedcd0d5 100644
--- a/data/scripts/cable_club.inc
+++ b/data/scripts/cable_club.inc
@@ -52,15 +52,15 @@ VerdanturfTown_PokemonCenter_2F_MapScript1_1A3D32:: @ 81A3D32
end
OldaleTown_PokemonCenter_2F_EventScript_1A3D6A:: @ 81A3D6A
- setmaptile 5, 3, 514, 0
+ setmetatile 5, 3, 514, 0
end
OldaleTown_PokemonCenter_2F_EventScript_1A3D74:: @ 81A3D74
- setmaptile 8, 3, 514, 0
+ setmetatile 8, 3, 514, 0
end
OldaleTown_PokemonCenter_2F_EventScript_1A3D7E:: @ 81A3D7E
- setmaptile 11, 3, 514, 0
+ setmetatile 11, 3, 514, 0
end
DewfordTown_PokemonCenter_2F_MapScript2_1A3D88:: @ 81A3D88
@@ -119,7 +119,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A3E0C:: @ 81A3E0C
OldaleTown_PokemonCenter_2F_EventScript_1A3E17:: @ 81A3E17
lockall
call OldaleTown_PokemonCenter_2F_EventScript_1A3E30
- setmaptile 8, 3, 605, 1
+ setmetatile 8, 3, 605, 1
special DrawWholeMapView
erasebox 0, 0, 29, 19
releaseall
@@ -147,14 +147,14 @@ OldaleTown_PokemonCenter_2F_EventScript_1A3E30:: @ 81A3E30
OldaleTown_PokemonCenter_2F_EventScript_1A3E7B:: @ 81A3E7B
call OldaleTown_PokemonCenter_2F_EventScript_1A3DB2
- setmaptile 11, 3, 605, 1
+ setmetatile 11, 3, 605, 1
special DrawWholeMapView
end
OldaleTown_PokemonCenter_2F_EventScript_1A3E8D:: @ 81A3E8D
lockall
call OldaleTown_PokemonCenter_2F_EventScript_1A3DDA
- setmaptile 5, 3, 605, 1
+ setmetatile 5, 3, 605, 1
special DrawWholeMapView
erasebox 0, 0, 29, 19
releaseall
@@ -174,7 +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 2049
+ checkflag FLAG_SYS_POKEDEX_GET
goto_if 0, OldaleTown_PokemonCenter_2F_EventScript_1A4342
copyvar 0x8007, LAST_TALKED
lock
@@ -221,7 +221,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A3F5E:: @ 81A3F5E
copyvar 0x4087, 0x8004
messageautoscroll OldaleTown_PokemonCenter_2F_Text_1A4A22
waitmessage
- setmaptile 5, 3, 514, 0
+ setmetatile 5, 3, 514, 0
special DrawWholeMapView
delay 60
applymovement LAST_TALKED, OldaleTown_PokemonCenter_2F_Movement_1A4356
@@ -233,21 +233,21 @@ OldaleTown_PokemonCenter_2F_EventScript_1A3F5E:: @ 81A3F5E
waitdooranim
applymovement 255, OldaleTown_PokemonCenter_2F_Movement_1A435F
waitmovement 0
- hideobject 255, 0, 0
+ hideobjectat 255, MAP_PETALBURG_CITY
closedoor 5, 1
waitdooranim
release
compare 0x8004, 5
goto_if_eq OldaleTown_PokemonCenter_2F_EventScript_1A3FCD
special SetCableClubWarp
- warp SingleBattleColosseum, 255, 6, 8
+ warp MAP_SINGLE_BATTLE_COLOSSEUM, 255, 6, 8
special DoCableClubWarp
waitstate
end
OldaleTown_PokemonCenter_2F_EventScript_1A3FCD:: @ 81A3FCD
special SetCableClubWarp
- warp DoubleBattleColosseum, 255, 5, 8
+ warp MAP_DOUBLE_BATTLE_COLOSSEUM, 255, 5, 8
special DoCableClubWarp
waitstate
end
@@ -255,7 +255,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A3FCD:: @ 81A3FCD
OldaleTown_PokemonCenter_2F_EventScript_1A3FDD:: @ 81A3FDD
message OldaleTown_PokemonCenter_2F_Text_1A4696
waitmessage
- waitbutton
+ waitbuttonpress
message OldaleTown_PokemonCenter_2F_Text_1A4826
waitmessage
goto OldaleTown_PokemonCenter_2F_EventScript_1A3EBC
@@ -289,7 +289,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A4042:: @ 81A4042
OldaleTown_PokemonCenter_2F_EventScript_1A4056:: @ 81A4056
message OldaleTown_PokemonCenter_2F_Text_1A486A
waitmessage
- waitbutton
+ waitbuttonpress
goto OldaleTown_PokemonCenter_2F_EventScript_1A3FEF
OldaleTown_PokemonCenter_2F_EventScript_1A4062:: @ 81A4062
@@ -307,28 +307,28 @@ OldaleTown_PokemonCenter_2F_EventScript_1A4093:: @ 81A4093
special CloseLink
message OldaleTown_PokemonCenter_2F_Text_1A4C03
waitmessage
- waitbutton
+ waitbuttonpress
goto OldaleTown_PokemonCenter_2F_EventScript_1A40C0
OldaleTown_PokemonCenter_2F_EventScript_1A40A2:: @ 81A40A2
special CloseLink
message OldaleTown_PokemonCenter_2F_Text_1A4BCC
waitmessage
- waitbutton
+ waitbuttonpress
goto OldaleTown_PokemonCenter_2F_EventScript_1A40C0
OldaleTown_PokemonCenter_2F_EventScript_1A40B1:: @ 81A40B1
special CloseLink
message OldaleTown_PokemonCenter_2F_Text_1A4B95
waitmessage
- waitbutton
+ waitbuttonpress
goto OldaleTown_PokemonCenter_2F_EventScript_1A40C0
OldaleTown_PokemonCenter_2F_EventScript_1A40C0:: @ 81A40C0
special CloseLink
message OldaleTown_PokemonCenter_2F_Text_1A4C38
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -346,7 +346,7 @@ 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 2049
+ checkflag FLAG_SYS_POKEDEX_GET
goto_if 0, OldaleTown_PokemonCenter_2F_EventScript_1A4339
copyvar 0x8007, LAST_TALKED
lock
@@ -386,7 +386,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A4166:: @ 81A4166
copyvar 0x4087, 0x8004
messageautoscroll OldaleTown_PokemonCenter_2F_Text_1A4A22
waitmessage
- setmaptile 8, 3, 514, 0
+ setmetatile 8, 3, 514, 0
special DrawWholeMapView
delay 60
applymovement LAST_TALKED, OldaleTown_PokemonCenter_2F_Movement_1A4356
@@ -398,7 +398,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A4166:: @ 81A4166
waitdooranim
applymovement 255, OldaleTown_PokemonCenter_2F_Movement_1A435F
waitmovement 0
- hideobject 255, 0, 0
+ hideobjectat 255, MAP_PETALBURG_CITY
closedoor 8, 1
waitdooranim
release
@@ -417,14 +417,14 @@ OldaleTown_PokemonCenter_2F_EventScript_1A41BB:: @ 81A41BB
OldaleTown_PokemonCenter_2F_EventScript_1A41E1:: @ 81A41E1
message OldaleTown_PokemonCenter_2F_Text_1A48A3
waitmessage
- waitbutton
+ waitbuttonpress
setvar RESULT, 0
return
OldaleTown_PokemonCenter_2F_EventScript_1A41EE:: @ 81A41EE
message OldaleTown_PokemonCenter_2F_Text_1A48DD
waitmessage
- waitbutton
+ waitbuttonpress
setvar RESULT, 0
return
@@ -443,7 +443,7 @@ 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 2072
+ checkflag FLAG_VISITED_MAUVILLE_CITY
goto_if 0, OldaleTown_PokemonCenter_2F_EventScript_1A434B
copyvar 0x8007, LAST_TALKED
lock
@@ -484,7 +484,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A4294:: @ 81A4294
copyvar 0x4087, 0x8004
messageautoscroll OldaleTown_PokemonCenter_2F_Text_1A4A22
waitmessage
- setmaptile 11, 3, 514, 0
+ setmetatile 11, 3, 514, 0
special DrawWholeMapView
delay 60
applymovement LAST_TALKED, OldaleTown_PokemonCenter_2F_Movement_1A4356
@@ -496,7 +496,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A4294:: @ 81A4294
waitdooranim
applymovement 255, OldaleTown_PokemonCenter_2F_Movement_1A435F
waitmovement 0
- hideobject 255, 0, 0
+ hideobjectat 255, MAP_PETALBURG_CITY
closedoor 11, 1
waitdooranim
release
@@ -506,7 +506,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A42E9:: @ 81A42E9
special CloseLink
message OldaleTown_PokemonCenter_2F_Text_1A4AC8
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -514,7 +514,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A42F5:: @ 81A42F5
special CloseLink
message OldaleTown_PokemonCenter_2F_Text_1A4A85
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -522,7 +522,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A4301:: @ 81A4301
special CloseLink
message OldaleTown_PokemonCenter_2F_Text_1A4A30
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -530,7 +530,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A430D:: @ 81A430D
special CloseLink
message OldaleTown_PokemonCenter_2F_Text_1A4B1D
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -538,7 +538,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A4319:: @ 81A4319
special CloseLink
message OldaleTown_PokemonCenter_2F_Text_1A4B59
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -552,7 +552,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A432D:: @ 81A432D
special CloseLink
message OldaleTown_PokemonCenter_2F_Text_1A4B6C
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -598,7 +598,7 @@ OldaleTown_PokemonCenter_2F_Movement_1A4361:: @ 81A4361
gUnknown_081A4363:: @ 81A4363
lockall
special ShowLinkBattleRecords
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -719,17 +719,17 @@ RecordCorner_EventScript_1A4457:: @ 81A4457
end
RecordCorner_EventScript_1A446C:: @ 81A446C
- getitemname 1, 0x4001
+ bufferitemname 1, 0x4001
message RecordCorner_Text_1A4E3B
waitmessage
- waitbutton
+ waitbuttonpress
releaseall
end
TradeRoom_ReadTrainerCard1:: @ 81A4479
message CableClub_LookAtTrainerCard1
waitmessage
- waitbutton
+ waitbuttonpress
fadescreen 1
special sub_8083BDC
waitstate
@@ -738,7 +738,7 @@ TradeRoom_ReadTrainerCard1:: @ 81A4479
TradeRoom_ReadTrainerCard2:: @ 81A4487
message CableClub_LookAtTrainerCard2
waitmessage
- waitbutton
+ waitbuttonpress
fadescreen 1
special sub_8083BDC
waitstate
@@ -747,7 +747,7 @@ TradeRoom_ReadTrainerCard2:: @ 81A4487
TradeRoom_TooBusyToNotice:: @ 81A4495
message CableClub_TooBusyToNotice
waitmessage
- waitbutton
+ waitbuttonpress
closemessage
end
@@ -755,7 +755,7 @@ SingleBattleColosseum_EventScript_1A449E:: @ 81A449E
special sub_8064EAC
message SingleBattleColosseum_Text_1A4D7E
waitmessage
- waitbutton
+ waitbuttonpress
special sub_8064ED4
closemessage
end
@@ -764,7 +764,7 @@ TradeCenter_EventScript_1A44AD:: @ 81A44AD
special sub_8064EAC
message TradeCenter_Text_1A4DAB
waitmessage
- waitbutton
+ waitbuttonpress
special sub_8064ED4
closemessage
end
@@ -775,7 +775,7 @@ RecordCorner_EventScript_1A44BC:: @ 81A44BC
special sub_8064EAC
message RecordCorner_Text_1A4DD7
waitmessage
- waitbutton
+ waitbuttonpress
special sub_8064ED4
closemessage
end
@@ -784,7 +784,7 @@ RecordCorner_EventScript_1A44D6:: @ 81A44D6
special sub_8064EAC
message RecordCorner_Text_1A4DF7
waitmessage
- waitbutton
+ waitbuttonpress
special sub_8064ED4
closemessage
end
diff --git a/data/scripts/contest_hall.inc b/data/scripts/contest_hall.inc
index 1b5c29fee..50202c7d6 100644
--- a/data/scripts/contest_hall.inc
+++ b/data/scripts/contest_hall.inc
@@ -9,19 +9,19 @@ VerdanturfTown_ContestLobby_EventScript_1A4E92:: @ 81A4E92
call_if 1, FallarborTown_ContestLobby_EventScript_1A4EDD
compare 0x408a, 0
goto_if 5, FallarborTown_ContestLobby_EventScript_1A4F4E
- checkflag 1
+ checkflag FLAG_TEMP_1
goto_if_eq FallarborTown_ContestLobby_EventScript_1A4F8F
- getstdstring 0, 0x800b
+ bufferstdstring 0, 0x800b
msgbox FallarborTown_ContestLobby_Text_1A5DFC, 4
checkitem ITEM_CONTEST_PASS, 1
compare RESULT, 0
goto_if_eq FallarborTown_ContestLobby_EventScript_1A4EE1
- setflag 1
+ setflag FLAG_TEMP_1
goto FallarborTown_ContestLobby_EventScript_1A4F8F
end
FallarborTown_ContestLobby_EventScript_1A4EDD:: @ 81A4EDD
- clearflag 1
+ clearflag FLAG_TEMP_1
return
FallarborTown_ContestLobby_EventScript_1A4EE1:: @ 81A4EE1
@@ -40,12 +40,12 @@ FallarborTown_ContestLobby_EventScript_1A4EF6:: @ 81A4EF6
end
FallarborTown_ContestLobby_EventScript_1A4F13:: @ 81A4F13
- checkflag 150
+ checkflag FLAG_RECEIVED_CONTEST_PASS
goto_if_eq FallarborTown_ContestLobby_EventScript_1A4F44
msgbox FallarborTown_ContestLobby_Text_1A6583, 4
- giveitem ITEM_CONTEST_PASS
- setflag 150
- setflag 1
+ giveitem_std ITEM_CONTEST_PASS
+ setflag FLAG_RECEIVED_CONTEST_PASS
+ setflag FLAG_TEMP_1
msgbox FallarborTown_ContestLobby_Text_1A5E98, 4
goto FallarborTown_ContestLobby_EventScript_1A4F8F
end
@@ -62,7 +62,7 @@ FallarborTown_ContestLobby_EventScript_1A4F4E:: @ 81A4F4E
end
FallarborTown_ContestLobby_EventScript_1A4F67:: @ 81A4F67
- giveitem ITEM_LUXURY_BALL
+ giveitem_std ITEM_LUXURY_BALL
compare RESULT, 0
goto_if_eq FallarborTown_ContestLobby_EventScript_1A4F86
setvar 0x408a, 0
@@ -119,7 +119,7 @@ FallarborTown_ContestLobby_EventScript_1A503E:: @ 81A503E
FallarborTown_ContestLobby_EventScript_1A5048:: @ 81A5048
msgbox FallarborTown_ContestLobby_Text_1A6319, 4
- choosecontestpkmn
+ choosecontestmon
compare 0x8004, 255
goto_if_eq FallarborTown_ContestLobby_EventScript_1A5097
special sub_80C43F4
@@ -260,8 +260,8 @@ LinkContestRoom1_EventScript_1A523F:: @ 81A523F
return
LinkContestRoom1_EventScript_1A5245:: @ 81A5245
- getstdstring 1, 0x8008
- getstdstring 2, 0x8009
+ bufferstdstring 1, 0x8008
+ bufferstdstring 2, 0x8009
call LinkContestRoom1_EventScript_1A525F
lockall
applymovement 1, LinkContestRoom1_Movement_1A5D87
@@ -339,7 +339,7 @@ LinkContestRoom1_EventScript_1A5311:: @ 81A5311
LinkContestRoom1_EventScript_1A5323:: @ 81A5323
special sub_80C4C64
addvar 0x8006, 1
- getnumberstring 1, 0x8006
+ buffernumberstring 1, 0x8006
lockall
applymovement 0x800b, LinkContestRoom1_Movement_1A5D9C
waitmovement 0
@@ -885,7 +885,7 @@ LinkContestRoom1_EventScript_1A5A49:: @ 81A5A49
special sub_80C47F0
special sub_80C4858
addvar 0x8005, 1
- getnumberstring 1, 0x8005
+ buffernumberstring 1, 0x8005
addvar 0x8005, -1
call LinkContestRoom1_EventScript_1A5A75
applymovement 0x4003, LinkContestRoom1_Movement_1A5D99
@@ -996,7 +996,7 @@ LinkContestRoom1_EventScript_1A5BAB:: @ 81A5BAB
compare 0x4088, 5
goto_if_eq LinkContestRoom1_EventScript_1A5C4C
call LinkContestRoom1_EventScript_1A5C12
- checkflag 2
+ checkflag FLAG_TEMP_2
goto_if_eq LinkContestRoom1_EventScript_1A5BF6
msgbox LinkContestRoom1_Text_1A6DC5, 3
waitmessage
@@ -1035,14 +1035,14 @@ LinkContestRoom1_EventScript_1A5C23:: @ 81A5C23
LinkContestRoom1_EventScript_1A5C32:: @ 81A5C32
compare CONTEST_RANK, 3
goto_if_eq LinkContestRoom1_EventScript_1A5C41
- setflag 2
+ setflag FLAG_TEMP_2
return
LinkContestRoom1_EventScript_1A5C41:: @ 81A5C41
return
LinkContestRoom1_EventScript_1A5C42:: @ 81A5C42
- setflag 270
+ setflag FLAG_CONTEST_SKETCH_CREATED
return
LinkContestRoom1_EventScript_1A5C46:: @ 81A5C46
@@ -1134,7 +1134,7 @@ LinkContestRoom1_EventScript_1A5D2D:: @ 81A5D2D
return
LinkContestRoom1_EventScript_1A5D3B:: @ 81A5D3B
- giveitem ITEM_LUXURY_BALL
+ giveitem_std ITEM_LUXURY_BALL
compare RESULT, 0
goto_if_eq LinkContestRoom1_EventScript_1A5D2D
msgbox LinkContestRoom1_Text_1A6DF1, 3
@@ -1143,7 +1143,7 @@ LinkContestRoom1_EventScript_1A5D3B:: @ 81A5D3B
LinkContestRoom1_EventScript_1A5D5B:: @ 81A5D5B
special sub_80C44C0
incrementgamestat GAME_STAT_RECEIVED_RIBBONS
- setflag 2107
+ setflag FLAG_SYS_RIBBON_GET
lockall
msgbox LinkContestRoom1_Text_1A6D6A, 4
playfanfare 370
diff --git a/data/scripts/day_care.inc b/data/scripts/day_care.inc
index f8151b86a..fd3273c78 100644
--- a/data/scripts/day_care.inc
+++ b/data/scripts/day_care.inc
@@ -1,8 +1,8 @@
Route117_EventScript_1B222D:: @ 81B222D
lock
faceplayer
- special sp0B5_daycare
- specialvar RESULT, sp0B6_daycare
+ special GetDaycareMonNicknames
+ specialvar RESULT, GetDaycareState
compare RESULT, 1
goto_if_eq Route117_EventScript_1B2262
compare RESULT, 2
@@ -21,8 +21,8 @@ Route117_EventScript_1B2262:: @ 81B2262
compare RESULT, 1
goto_if_eq Route117_EventScript_1B2298
msgbox Route117_Text_1B2745, 4
- clearflag 134
- special sub_8041E7C
+ clearflag FLAG_PENDING_DAYCARE_EGG
+ special RejectEggFromDayCare
release
end
@@ -39,10 +39,10 @@ Route117_EventScript_1B22B2:: @ 81B22B2
playfanfare 367
waitfanfare
waitmessage
- waitbutton
+ waitbuttonpress
msgbox Route117_Text_1B27CD, 4
- special sp0B8_daycare
- clearflag 134
+ special GiveEggFromDaycare
+ clearflag FLAG_PENDING_DAYCARE_EGG
release
end
@@ -57,7 +57,7 @@ Route117_EventScript_1B22DE:: @ 81B22DE
return
Route117_EventScript_1B22E7:: @ 81B22E7
- special sp0B5_daycare
+ special GetDaycareMonNicknames
msgbox Route117_Text_1B2710, 4
setvar 0x8004, 0
call Route117_EventScript_1B22CD
@@ -65,12 +65,12 @@ Route117_EventScript_1B22E7:: @ 81B22E7
end
Route117_EventScript_1B22FE:: @ 81B22FE
- special sp0B5_daycare
+ special GetDaycareMonNicknames
msgbox Route117_Text_1B2897, 4
- special sp0B9_daycare_relationship_comment
+ special SetDaycareCompatibilityString
special ShowFieldMessageStringVar4
waitmessage
- waitbutton
+ waitbuttonpress
setvar 0x8004, 0
call Route117_EventScript_1B22CD
setvar 0x8004, 1
@@ -81,7 +81,7 @@ Route117_EventScript_1B22FE:: @ 81B22FE
Route117_PokemonDayCare_EventScript_1B2327:: @ 81B2327
lock
faceplayer
- specialvar RESULT, sp0B6_daycare
+ specialvar RESULT, GetDaycareState
compare RESULT, 1
goto_if_eq Route117_PokemonDayCare_EventScript_1B2407
compare RESULT, 2
@@ -108,14 +108,14 @@ Route117_PokemonDayCare_EventScript_1B236C:: @ 81B236C
specialvar RESULT, sub_8095C10
compare RESULT, 0
goto_if_eq Route117_PokemonDayCare_EventScript_1B23FD
- specialvar 0x8005, sub_8042328
+ specialvar 0x8005, GetSelectedDaycareMonNickname
waitse
- playpokecry 0x8005, 0
+ playmoncry 0x8005, 0
msgbox Route117_PokemonDayCare_Text_1B296E, 4
- waitpokecry
- special Daycare_SendPokemon_Special
+ waitmoncry
+ special StoreSelectedPokemonInDaycare
incrementgamestat GAME_STAT_USED_DAYCARE
- specialvar RESULT, sp0B6_daycare
+ specialvar RESULT, GetDaycareState
compare RESULT, 2
goto_if_eq Route117_PokemonDayCare_EventScript_1B23DA
release
@@ -153,7 +153,7 @@ Route117_PokemonDayCare_EventScript_1B2411:: @ 81B2411
return
Route117_PokemonDayCare_EventScript_1B241A:: @ 81B241A
- specialvar RESULT, sub_80417B8
+ specialvar RESULT, GetNumLevelsGainedFromDaycare
compare RESULT, 0
call_if 5, Route117_PokemonDayCare_EventScript_1B2411
return
@@ -175,7 +175,7 @@ Route117_PokemonDayCare_EventScript_1B2469:: @ 81B2469
specialvar RESULT, CalculatePlayerPartyCount
compare RESULT, 6
goto_if_eq Route117_PokemonDayCare_EventScript_1B2539
- specialvar RESULT, sp0B6_daycare
+ specialvar RESULT, GetDaycareState
setvar 0x8004, 0
compare RESULT, 2
goto_if_eq Route117_PokemonDayCare_EventScript_1B24A8
@@ -188,7 +188,7 @@ Route117_PokemonDayCare_EventScript_1B2469:: @ 81B2469
end
Route117_PokemonDayCare_EventScript_1B24A8:: @ 81B24A8
- special sub_8041770
+ special GetDaycareCost
msgbox Route117_PokemonDayCare_Text_1B2B49, 5
compare RESULT, 1
goto_if_eq Route117_PokemonDayCare_EventScript_1B24C4
@@ -206,15 +206,15 @@ Route117_PokemonDayCare_EventScript_1B24C4:: @ 81B24C4
Route117_PokemonDayCare_EventScript_1B24DE:: @ 81B24DE
applymovement 1, Route117_PokemonDayCare_Movement_1B2543
waitmovement 0
- specialvar RESULT, sub_8041648
+ specialvar RESULT, TakePokemonFromDaycare
special sub_80B7D0C
playse 95
msgbox Route117_PokemonDayCare_Text_1B2B75, 4
waitse
- playpokecry RESULT, 0
+ playmoncry RESULT, 0
msgbox Route117_PokemonDayCare_Text_1B2B93, 4
- waitpokecry
- specialvar RESULT, sp0B6_daycare
+ waitmoncry
+ specialvar RESULT, GetDaycareState
compare RESULT, 2
goto_if_eq Route117_PokemonDayCare_EventScript_1B2520
goto Route117_PokemonDayCare_EventScript_1B23D0
@@ -276,7 +276,7 @@ Route117_PokemonDayCare_EventScript_1B2558:: @ 81B2558
compare RESULT, 2
goto_if_eq Route117_PokemonDayCare_EventScript_1B23D0
copyvar 0x8004, RESULT
- specialvar RESULT, sub_8041648
+ specialvar RESULT, TakePokemonFromDaycare
msgbox Route117_PokemonDayCare_Text_1B2B75, 4
msgbox Route117_PokemonDayCare_Text_1B2A76, 4
release
diff --git a/data/scripts/gabby_and_ty.inc b/data/scripts/gabby_and_ty.inc
index 214c61142..a3d79d09e 100644
--- a/data/scripts/gabby_and_ty.inc
+++ b/data/scripts/gabby_and_ty.inc
@@ -60,67 +60,67 @@ Route111_EventScript_1AE3D7:: @ 81AE3D7
return
Route111_EventScript_1AE3E2:: @ 81AE3E2
- setflag 796
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE111_1
return
Route111_EventScript_1AE3E6:: @ 81AE3E6
- clearflag 796
+ clearflag FLAG_HIDE_GABBY_AND_TY_ROUTE111_1
return
Route111_EventScript_1AE3EA:: @ 81AE3EA
- setflag 797
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE118_1
return
Route111_EventScript_1AE3EE:: @ 81AE3EE
- clearflag 797
+ clearflag FLAG_HIDE_GABBY_AND_TY_ROUTE118_1
return
Route111_EventScript_1AE3F2:: @ 81AE3F2
- setflag 798
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE120_1
return
Route111_EventScript_1AE3F6:: @ 81AE3F6
- clearflag 798
+ clearflag FLAG_HIDE_GABBY_AND_TY_ROUTE120_1
return
Route111_EventScript_1AE3FA:: @ 81AE3FA
- setflag 799
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE111_2
return
Route111_EventScript_1AE3FE:: @ 81AE3FE
- clearflag 799
+ clearflag FLAG_HIDE_GABBY_AND_TY_ROUTE111_2
return
Route111_EventScript_1AE402:: @ 81AE402
- setflag 901
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE118_2
return
Route111_EventScript_1AE406:: @ 81AE406
- clearflag 901
+ clearflag FLAG_HIDE_GABBY_AND_TY_ROUTE118_2
return
Route111_EventScript_1AE40A:: @ 81AE40A
- setflag 902
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE120_2
return
Route111_EventScript_1AE40E:: @ 81AE40E
- clearflag 902
+ clearflag FLAG_HIDE_GABBY_AND_TY_ROUTE120_2
return
Route111_EventScript_1AE412:: @ 81AE412
- setflag 903
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE111_3
return
Route111_EventScript_1AE416:: @ 81AE416
- clearflag 903
+ clearflag FLAG_HIDE_GABBY_AND_TY_ROUTE111_3
return
Route111_EventScript_1AE41A:: @ 81AE41A
- setflag 904
+ setflag FLAG_HIDE_GABBY_AND_TY_ROUTE118_3
return
Route111_EventScript_1AE41E:: @ 81AE41E
- clearflag 904
+ clearflag FLAG_HIDE_GABBY_AND_TY_ROUTE118_3
return
Route111_EventScript_1AE422:: @ 81AE422
@@ -208,7 +208,7 @@ Route111_EventScript_1AE5A2:: @ 81AE5A2
call_if 1, Route111_EventScript_1AE5EB
compare FACING, 4
call_if 1, Route111_EventScript_1AE5FD
- checkflag 1
+ checkflag FLAG_TEMP_1
goto_if_eq Route111_EventScript_1AE73A
msgbox Route111_Text_1AC015, 5
goto Route111_EventScript_1AE6F3
@@ -242,7 +242,7 @@ Route120_EventScript_1AE60F:: @ 81AE60F
call_if 1, Route111_EventScript_1AE5EB
compare FACING, 4
call_if 1, Route111_EventScript_1AE5FD
- checkflag 1
+ checkflag FLAG_TEMP_1
goto_if_eq Route111_EventScript_1AE73A
specialvar RESULT, GabbyAndTyGetLastQuote
compare RESULT, 0
@@ -311,13 +311,13 @@ Route111_EventScript_1AE6F3:: @ 81AE6F3
goto_if_eq Route111_EventScript_1AE72D
msgbox Route111_Text_1AC487, 4
special sub_80BDC14
- setflag 1
+ setflag FLAG_TEMP_1
release
end
Route111_EventScript_1AE72D:: @ 81AE72D
msgbox Route111_Text_1AC553, 4
- setflag 1
+ setflag FLAG_TEMP_1
release
end
diff --git a/data/scripts/magma_chimney.inc b/data/scripts/magma_chimney.inc
index f13b319f4..d104b52d4 100644
--- a/data/scripts/magma_chimney.inc
+++ b/data/scripts/magma_chimney.inc
@@ -1,14 +1,14 @@
MtChimney_EventScript_1B2C95:: @ 81B2C95
lock
faceplayer
- checkflag 219
+ checkflag FLAG_EVIL_LEADER_PLEASE_STOP
call_if 0, MtChimney_EventScript_1B2CB9
- checkflag 219
+ checkflag FLAG_EVIL_LEADER_PLEASE_STOP
call_if 1, MtChimney_EventScript_1B2CC2
closemessage
applymovement 1, MtChimney_Movement_1A083D
waitmovement 0
- setflag 219
+ setflag FLAG_EVIL_LEADER_PLEASE_STOP
release
end
@@ -63,7 +63,7 @@ MtChimney_EventScript_1B2CCB:: @ 81B2CCB
removeobject 2
removeobject 3
removeobject 22
- setflag 926
+ setflag FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY
fadescreen 0
setobjectxyperm 1, 10, 12
addobject 1
@@ -84,10 +84,10 @@ MtChimney_EventScript_1B2CCB:: @ 81B2CCB
compare FACING, 2
call_if 1, MtChimney_EventScript_1B2D9E
removeobject 1
- setflag 927
- setflag 139
- clearflag 928
- setflag 942
+ setflag FLAG_HIDE_OTEHR_TEAM_MT_CHIMNEY
+ setflag FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY
+ clearflag FLAG_HIDE_PROF_COSMO_FALLARBOR
+ setflag FLAG_HIDE_PROF_COSMO_METEOR_FALLS
releaseall
end
diff --git a/data/scripts/maps/AbandonedShip_CaptainsOffice.inc b/data/scripts/maps/AbandonedShip_CaptainsOffice.inc
index eb912028a..2430ba4af 100644
--- a/data/scripts/maps/AbandonedShip_CaptainsOffice.inc
+++ b/data/scripts/maps/AbandonedShip_CaptainsOffice.inc
@@ -4,12 +4,12 @@ AbandonedShip_CaptainsOffice_MapScripts:: @ 815EAF4
AbandonedShip_CaptainsOffice_EventScript_15EAF5:: @ 815EAF5
lock
faceplayer
- checkflag 294
+ checkflag FLAG_EXCHANGED_SCANNER
goto_if_eq AbandonedShip_CaptainsOffice_EventScript_15EB2D
checkitem ITEM_SCANNER, 1
compare RESULT, 1
goto_if_eq AbandonedShip_CaptainsOffice_EventScript_15EB23
- checkflag 1078
+ checkflag FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_2
goto_if_eq AbandonedShip_CaptainsOffice_EventScript_15EB2D
msgbox AbandonedShip_CaptainsOffice_Text_198C85, 4
release
diff --git a/data/scripts/maps/AbandonedShip_Corridors_B1F.inc b/data/scripts/maps/AbandonedShip_Corridors_B1F.inc
index f3c3c0aa0..c27951abb 100644
--- a/data/scripts/maps/AbandonedShip_Corridors_B1F.inc
+++ b/data/scripts/maps/AbandonedShip_Corridors_B1F.inc
@@ -4,22 +4,22 @@ AbandonedShip_Corridors_B1F_MapScripts:: @ 815E98F
.byte 0
AbandonedShip_Corridors_B1F_MapScript1_15E99A:: @ 815E99A
- setdivewarp AbandonedShip_Underwater1, 255, 5, 4
+ setdivewarp MAP_ABANDONED_SHIP_UNDERWATER1, 255, 5, 4
end
AbandonedShip_Corridors_B1F_MapScript1_15E9A3:: @ 815E9A3
- checkflag 239
+ checkflag FLAG_USED_STORAGE_KEY
call_if 0, AbandonedShip_Corridors_B1F_EventScript_15E9B6
- checkflag 239
+ checkflag FLAG_USED_STORAGE_KEY
call_if 1, AbandonedShip_Corridors_B1F_EventScript_15E9C0
end
AbandonedShip_Corridors_B1F_EventScript_15E9B6:: @ 815E9B6
- setmaptile 11, 4, 563, 1
+ setmetatile 11, 4, 563, 1
return
AbandonedShip_Corridors_B1F_EventScript_15E9C0:: @ 815E9C0
- setmaptile 11, 4, 555, 1
+ setmetatile 11, 4, 555, 1
return
AbandonedShip_Corridors_B1F_EventScript_15E9CA:: @ 815E9CA
@@ -28,15 +28,15 @@ AbandonedShip_Corridors_B1F_EventScript_15E9CA:: @ 815E9CA
AbandonedShip_Corridors_B1F_EventScript_15E9D3:: @ 815E9D3
lockall
- checkflag 239
+ checkflag FLAG_USED_STORAGE_KEY
goto_if_eq 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
- removeitem ITEM_STORAGE_KEY, 1
- setflag 239
+ takeitem ITEM_STORAGE_KEY, 1
+ setflag FLAG_USED_STORAGE_KEY
call AbandonedShip_Corridors_B1F_EventScript_15E9C0
special DrawWholeMapView
releaseall
diff --git a/data/scripts/maps/AbandonedShip_Deck.inc b/data/scripts/maps/AbandonedShip_Deck.inc
index 49f837744..68d872f01 100644
--- a/data/scripts/maps/AbandonedShip_Deck.inc
+++ b/data/scripts/maps/AbandonedShip_Deck.inc
@@ -3,5 +3,5 @@ AbandonedShip_Deck_MapScripts:: @ 815E95A
.byte 0
AbandonedShip_Deck_MapScript1_15E960:: @ 815E960
- setflag 2110
+ setflag FLAG_LANDMARK_ABANDONED_SHIP
end
diff --git a/data/scripts/maps/AbandonedShip_HiddenFloorCorridors.inc b/data/scripts/maps/AbandonedShip_HiddenFloorCorridors.inc
index 29a89a620..35e86543b 100644
--- a/data/scripts/maps/AbandonedShip_HiddenFloorCorridors.inc
+++ b/data/scripts/maps/AbandonedShip_HiddenFloorCorridors.inc
@@ -4,71 +4,71 @@ AbandonedShip_HiddenFloorCorridors_MapScripts:: @ 815EB46
.byte 0
AbandonedShip_HiddenFloorCorridors_MapScript1_15EB51:: @ 815EB51
- setdivewarp AbandonedShip_Underwater1, 255, 5, 4
+ setdivewarp MAP_ABANDONED_SHIP_UNDERWATER1, 255, 5, 4
end
AbandonedShip_HiddenFloorCorridors_MapScript1_15EB5A:: @ 815EB5A
- checkflag 240
+ checkflag FLAG_USED_ROOM_1_KEY
call_if 0, AbandonedShip_HiddenFloorCorridors_EventScript_15EBCB
- checkflag 241
+ checkflag FLAG_USED_ROOM_2_KEY
call_if 0, AbandonedShip_HiddenFloorCorridors_EventScript_15EBD5
- checkflag 242
+ checkflag FLAG_USED_ROOM_4_KEY
call_if 0, AbandonedShip_HiddenFloorCorridors_EventScript_15EBDF
- checkflag 243
+ checkflag FLAG_USED_ROOM_6_KEY
call_if 0, AbandonedShip_HiddenFloorCorridors_EventScript_15EBE9
- checkflag 240
+ checkflag FLAG_USED_ROOM_1_KEY
call_if 1, AbandonedShip_HiddenFloorCorridors_EventScript_15EBA3
- checkflag 241
+ checkflag FLAG_USED_ROOM_2_KEY
call_if 1, AbandonedShip_HiddenFloorCorridors_EventScript_15EBAD
- checkflag 242
+ checkflag FLAG_USED_ROOM_4_KEY
call_if 1, AbandonedShip_HiddenFloorCorridors_EventScript_15EBB7
- checkflag 243
+ checkflag FLAG_USED_ROOM_6_KEY
call_if 1, AbandonedShip_HiddenFloorCorridors_EventScript_15EBC1
end
AbandonedShip_HiddenFloorCorridors_EventScript_15EBA3:: @ 815EBA3
- setmaptile 3, 8, 555, 1
+ setmetatile 3, 8, 555, 1
return
AbandonedShip_HiddenFloorCorridors_EventScript_15EBAD:: @ 815EBAD
- setmaptile 6, 8, 555, 1
+ setmetatile 6, 8, 555, 1
return
AbandonedShip_HiddenFloorCorridors_EventScript_15EBB7:: @ 815EBB7
- setmaptile 3, 3, 538, 0
+ setmetatile 3, 3, 538, 0
return
AbandonedShip_HiddenFloorCorridors_EventScript_15EBC1:: @ 815EBC1
- setmaptile 9, 3, 538, 0
+ setmetatile 9, 3, 538, 0
return
AbandonedShip_HiddenFloorCorridors_EventScript_15EBCB:: @ 815EBCB
- setmaptile 3, 8, 563, 1
+ setmetatile 3, 8, 563, 1
return
AbandonedShip_HiddenFloorCorridors_EventScript_15EBD5:: @ 815EBD5
- setmaptile 6, 8, 563, 1
+ setmetatile 6, 8, 563, 1
return
AbandonedShip_HiddenFloorCorridors_EventScript_15EBDF:: @ 815EBDF
- setmaptile 3, 3, 564, 0
+ setmetatile 3, 3, 564, 0
return
AbandonedShip_HiddenFloorCorridors_EventScript_15EBE9:: @ 815EBE9
- setmaptile 9, 3, 564, 0
+ setmetatile 9, 3, 564, 0
return
AbandonedShip_HiddenFloorCorridors_EventScript_15EBF3:: @ 815EBF3
lockall
- checkflag 240
+ checkflag FLAG_USED_ROOM_1_KEY
goto_if_eq 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
- removeitem ITEM_ROOM_1_KEY, 1
- setflag 240
+ takeitem ITEM_ROOM_1_KEY, 1
+ setflag FLAG_USED_ROOM_1_KEY
call AbandonedShip_HiddenFloorCorridors_EventScript_15EBA3
special DrawWholeMapView
releaseall
@@ -76,15 +76,15 @@ AbandonedShip_HiddenFloorCorridors_EventScript_15EBF3:: @ 815EBF3
AbandonedShip_HiddenFloorCorridors_EventScript_15EC2A:: @ 815EC2A
lockall
- checkflag 241
+ checkflag FLAG_USED_ROOM_2_KEY
goto_if_eq 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
- removeitem ITEM_ROOM_2_KEY, 1
- setflag 241
+ takeitem ITEM_ROOM_2_KEY, 1
+ setflag FLAG_USED_ROOM_2_KEY
call AbandonedShip_HiddenFloorCorridors_EventScript_15EBAD
special DrawWholeMapView
releaseall
@@ -92,15 +92,15 @@ AbandonedShip_HiddenFloorCorridors_EventScript_15EC2A:: @ 815EC2A
AbandonedShip_HiddenFloorCorridors_EventScript_15EC61:: @ 815EC61
lockall
- checkflag 242
+ checkflag FLAG_USED_ROOM_4_KEY
goto_if_eq 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
- removeitem ITEM_ROOM_4_KEY, 1
- setflag 242
+ takeitem ITEM_ROOM_4_KEY, 1
+ setflag FLAG_USED_ROOM_4_KEY
call AbandonedShip_HiddenFloorCorridors_EventScript_15EBB7
special DrawWholeMapView
releaseall
@@ -108,15 +108,15 @@ AbandonedShip_HiddenFloorCorridors_EventScript_15EC61:: @ 815EC61
AbandonedShip_HiddenFloorCorridors_EventScript_15EC98:: @ 815EC98
lockall
- checkflag 243
+ checkflag FLAG_USED_ROOM_6_KEY
goto_if_eq 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
- removeitem ITEM_ROOM_6_KEY, 1
- setflag 243
+ takeitem ITEM_ROOM_6_KEY, 1
+ setflag FLAG_USED_ROOM_6_KEY
call AbandonedShip_HiddenFloorCorridors_EventScript_15EBC1
special DrawWholeMapView
releaseall
diff --git a/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc b/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc
index eb5c1dccd..c1e77a8c7 100644
--- a/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc
+++ b/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc
@@ -39,9 +39,9 @@ AbandonedShip_HiddenFloorRooms_EventScript_15ED95:: @ 815ED95
AbandonedShip_HiddenFloorRooms_EventScript_15ED9B:: @ 815ED9B
delay 20
- setfieldeffect 0, 10
- setfieldeffect 1, 10
- setfieldeffect 2, 0
+ setfieldeffectargument 0, 10
+ setfieldeffectargument 1, 10
+ setfieldeffectargument 2, 0
dofieldeffect 54
specialvar RESULT, sub_810F4D4
compare RESULT, 0
@@ -69,13 +69,13 @@ AbandonedShip_HiddenFloorRooms_EventScript_15EDEA:: @ 815EDEA
AbandonedShip_HiddenFloorRooms_EventScript_15EDEB:: @ 815EDEB
delay 20
- setfieldeffect 0, 8
- setfieldeffect 1, 5
- setfieldeffect 2, 0
+ setfieldeffectargument 0, 8
+ setfieldeffectargument 1, 5
+ setfieldeffectargument 2, 0
dofieldeffect 54
- setfieldeffect 0, 11
- setfieldeffect 1, 3
- setfieldeffect 2, 0
+ setfieldeffectargument 0, 11
+ setfieldeffectargument 1, 3
+ setfieldeffectargument 2, 0
dofieldeffect 54
specialvar RESULT, sub_810F4FC
compare RESULT, 0
@@ -86,17 +86,17 @@ AbandonedShip_HiddenFloorRooms_EventScript_15EDEB:: @ 815EDEB
AbandonedShip_HiddenFloorRooms_EventScript_15EE23:: @ 815EE23
delay 20
- setfieldeffect 0, 16
- setfieldeffect 1, 3
- setfieldeffect 2, 0
+ setfieldeffectargument 0, 16
+ setfieldeffectargument 1, 3
+ setfieldeffectargument 2, 0
dofieldeffect 54
- setfieldeffect 0, 25
- setfieldeffect 1, 2
- setfieldeffect 2, 0
+ setfieldeffectargument 0, 25
+ setfieldeffectargument 1, 2
+ setfieldeffectargument 2, 0
dofieldeffect 54
- setfieldeffect 0, 24
- setfieldeffect 1, 6
- setfieldeffect 2, 0
+ setfieldeffectargument 0, 24
+ setfieldeffectargument 1, 6
+ setfieldeffectargument 2, 0
dofieldeffect 54
specialvar RESULT, sub_810F4B0
compare RESULT, 0
@@ -109,30 +109,30 @@ AbandonedShip_HiddenFloorRooms_EventScript_15EE6A:: @ 815EE6A
end
AbandonedShip_HiddenFloorRooms_EventScript_15EE6B:: @ 815EE6B
- setfieldeffect 0, 42
- setfieldeffect 1, 10
- setfieldeffect 2, 0
+ setfieldeffectargument 0, 42
+ setfieldeffectargument 1, 10
+ setfieldeffectargument 2, 0
dofieldeffect 54
return
AbandonedShip_HiddenFloorRooms_EventScript_15EE7B:: @ 815EE7B
- setfieldeffect 0, 20
- setfieldeffect 1, 5
- setfieldeffect 2, 0
+ setfieldeffectargument 0, 20
+ setfieldeffectargument 1, 5
+ setfieldeffectargument 2, 0
dofieldeffect 54
return
AbandonedShip_HiddenFloorRooms_EventScript_15EE8B:: @ 815EE8B
- setfieldeffect 0, 1
- setfieldeffect 1, 12
- setfieldeffect 2, 0
+ setfieldeffectargument 0, 1
+ setfieldeffectargument 1, 12
+ setfieldeffectargument 2, 0
dofieldeffect 54
return
AbandonedShip_HiddenFloorRooms_EventScript_15EE9B:: @ 815EE9B
- setfieldeffect 0, 1
- setfieldeffect 1, 2
- setfieldeffect 2, 0
+ setfieldeffectargument 0, 1
+ setfieldeffectargument 1, 2
+ setfieldeffectargument 2, 0
dofieldeffect 54
return
diff --git a/data/scripts/maps/AbandonedShip_Rooms_B1F.inc b/data/scripts/maps/AbandonedShip_Rooms_B1F.inc
index 218f1a2ca..4299c7da4 100644
--- a/data/scripts/maps/AbandonedShip_Rooms_B1F.inc
+++ b/data/scripts/maps/AbandonedShip_Rooms_B1F.inc
@@ -3,7 +3,7 @@ AbandonedShip_Rooms_B1F_MapScripts:: @ 815EA35
.byte 0
AbandonedShip_Rooms_B1F_MapScript1_15EA3B:: @ 815EA3B
- setdivewarp AbandonedShip_Underwater2, 255, 17, 4
+ setdivewarp MAP_ABANDONED_SHIP_UNDERWATER2, 255, 17, 4
end
AbandonedShip_Rooms_B1F_EventScript_15EA44:: @ 815EA44
diff --git a/data/scripts/maps/AbandonedShip_Underwater1.inc b/data/scripts/maps/AbandonedShip_Underwater1.inc
index afac470ea..52ba61136 100644
--- a/data/scripts/maps/AbandonedShip_Underwater1.inc
+++ b/data/scripts/maps/AbandonedShip_Underwater1.inc
@@ -3,5 +3,5 @@ AbandonedShip_Underwater1_MapScripts:: @ 815EA57
.byte 0
AbandonedShip_Underwater1_MapScript1_15EA5D:: @ 815EA5D
- setdivewarp AbandonedShip_HiddenFloorCorridors, 255, 0, 10
+ setdivewarp MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS, 255, 0, 10
end
diff --git a/data/scripts/maps/AbandonedShip_Underwater2.inc b/data/scripts/maps/AbandonedShip_Underwater2.inc
index b8facc4ec..22113661a 100644
--- a/data/scripts/maps/AbandonedShip_Underwater2.inc
+++ b/data/scripts/maps/AbandonedShip_Underwater2.inc
@@ -3,5 +3,5 @@ AbandonedShip_Underwater2_MapScripts:: @ 815EB37
.byte 0
AbandonedShip_Underwater2_MapScript1_15EB3D:: @ 815EB3D
- setdivewarp AbandonedShip_Rooms_B1F, 255, 13, 7
+ setdivewarp MAP_ABANDONED_SHIP_ROOMS_B1F, 255, 13, 7
end
diff --git a/data/scripts/maps/AncientTomb.inc b/data/scripts/maps/AncientTomb.inc
index 188691e73..b849f41ba 100644
--- a/data/scripts/maps/AncientTomb.inc
+++ b/data/scripts/maps/AncientTomb.inc
@@ -5,7 +5,7 @@ AncientTomb_MapScripts:: @ 815EFBE
.byte 0
AncientTomb_MapScript1_15EFCE:: @ 815EFCE
- checkflag 2145
+ checkflag FLAG_SYS_CTRL_OBJ_DELETE
call_if 1, AncientTomb_EventScript_15EFD8
end
@@ -14,29 +14,29 @@ AncientTomb_EventScript_15EFD8:: @ 815EFD8
return
AncientTomb_MapScript1_15EFDC:: @ 815EFDC
- setflag 2137
+ setflag FLAG_LANDMARK_ANCIENT_TOMB
end
AncientTomb_MapScript1_15EFE0:: @ 815EFE0
- checkflag 2130
+ checkflag FLAG_SYS_BRAILLE_FLY
call_if 0, AncientTomb_EventScript_15EFEA
end
AncientTomb_EventScript_15EFEA:: @ 815EFEA
- setmaptile 7, 19, 553, 1
- setmaptile 8, 19, 553, 1
- setmaptile 9, 19, 553, 1
- setmaptile 7, 20, 565, 1
- setmaptile 8, 20, 565, 1
- setmaptile 9, 20, 565, 1
+ setmetatile 7, 19, 553, 1
+ setmetatile 8, 19, 553, 1
+ setmetatile 9, 19, 553, 1
+ setmetatile 7, 20, 565, 1
+ setmetatile 8, 20, 565, 1
+ setmetatile 9, 20, 565, 1
return
AncientTomb_EventScript_15F021:: @ 815F021
lockall
- checkflag 2130
+ checkflag FLAG_SYS_BRAILLE_FLY
goto_if_eq AncientTomb_EventScript_15F038
braillemessage AncientTomb_Braille_1C552E
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -49,7 +49,7 @@ AncientTomb_EventScript_15F038:: @ 815F038
AncientTomb_EventScript_15F042:: @ 815F042
lockall
braillemessage AncientTomb_Braille_1C552E
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -58,14 +58,14 @@ AncientTomb_EventScript_15F050:: @ 815F050
lock
faceplayer
waitse
- playpokecry SPECIES_REGISTEEL, 2
+ playmoncry SPECIES_REGISTEEL, 2
delay 40
- waitpokecry
+ waitmoncry
setwildbattle SPECIES_REGISTEEL, 40, ITEM_NONE
- setflag 937
- setflag 2145
+ setflag FLAG_HIDE_REGISTEEL
+ setflag FLAG_SYS_CTRL_OBJ_DELETE
special ScrSpecial_StartRegiBattle
waitstate
- clearflag 2145
+ clearflag FLAG_SYS_CTRL_OBJ_DELETE
release
end
diff --git a/data/scripts/maps/AquaHideout_1F.inc b/data/scripts/maps/AquaHideout_1F.inc
index 2eb2ae7e9..028a0ee7b 100644
--- a/data/scripts/maps/AquaHideout_1F.inc
+++ b/data/scripts/maps/AquaHideout_1F.inc
@@ -10,7 +10,7 @@ AquaHideout_1F_EventScript_15D7CE:: @ 815D7CE
MagmaHideout_1F_EventScript_15D7CE:: @ 815D7CE
lock
faceplayer
- checkflag 111
+ checkflag FLAG_MT_PYRE_ORB_STOLEN
goto_if_eq AquaHideout_1F_EventScript_15D7E3
msgbox AquaHideout_1F_Text_196AFD, 4
release
@@ -25,7 +25,7 @@ AquaHideout_1F_EventScript_15D7ED:: @ 815D7ED
MagmaHideout_1F_EventScript_15D7ED:: @ 815D7ED
lock
faceplayer
- checkflag 111
+ checkflag FLAG_MT_PYRE_ORB_STOLEN
goto_if_eq AquaHideout_1F_EventScript_15D802
msgbox AquaHideout_1F_Text_196C83, 4
release
diff --git a/data/scripts/maps/AquaHideout_B1F.inc b/data/scripts/maps/AquaHideout_B1F.inc
index 0001d7574..82d0c10c5 100644
--- a/data/scripts/maps/AquaHideout_B1F.inc
+++ b/data/scripts/maps/AquaHideout_B1F.inc
@@ -4,7 +4,7 @@ AquaHideout_B1F_MapScripts:: @ 815D831
.byte 0
AquaHideout_B1F_MapScript1_15D83C:: @ 815D83C
- checkflag 2145
+ checkflag FLAG_SYS_CTRL_OBJ_DELETE
call_if 1, AquaHideout_B1F_EventScript_15D846
end
diff --git a/data/scripts/maps/AquaHideout_B2F.inc b/data/scripts/maps/AquaHideout_B2F.inc
index 230d0e2db..a587fcc92 100644
--- a/data/scripts/maps/AquaHideout_B2F.inc
+++ b/data/scripts/maps/AquaHideout_B2F.inc
@@ -64,8 +64,8 @@ AquaHideout_B2F_EventScript_15D8FD:: @ 815D8FD
applymovement 0x8008, AquaHideout_B2F_Movement_1A0839
waitmovement 0
msgbox AquaHideout_B2F_Text_1971AE, 4
- setflag 112
- setflag 852
+ setflag FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE
+ setflag FLAG_HIDE_GRUNTS_LILYCOVE
release
end
diff --git a/data/scripts/maps/BattleTower_BattleRoom.inc b/data/scripts/maps/BattleTower_BattleRoom.inc
index 3f1aad4a0..3065c0cbb 100644
--- a/data/scripts/maps/BattleTower_BattleRoom.inc
+++ b/data/scripts/maps/BattleTower_BattleRoom.inc
@@ -16,8 +16,8 @@ BattleTower_BattleRoom_EventScript_1608FA:: @ 81608FA
addobject 1
applymovement 1, BattleTower_BattleRoom_Movement_160AC0
waitmovement 0
- special sub_8135474
- msgbox 0x20234cc, 4
+ special PrintBattleTowerTrainerGreeting
+ msgbox gStringVar4, 4
waitmessage
closemessage
special ScrSpecial_HealPlayerParty
@@ -35,7 +35,7 @@ BattleTower_BattleRoom_EventScript_1608FA:: @ 81608FA
special sub_8135668
setvar 0x8004, 3
special sub_810FF60
- warp BattleTower_Lobby, 255, 6, 6
+ warp MAP_BATTLE_TOWER_LOBBY, 255, 6, 6
waitstate
BattleTower_BattleRoom_EventScript_160961:: @ 8160961
@@ -101,7 +101,7 @@ BattleTower_BattleRoom_EventScript_160A56:: @ 8160A56
special sub_8135668
setvar 0x8004, 3
special sub_810FF60
- warp BattleTower_Lobby, 255, 6, 6
+ warp MAP_BATTLE_TOWER_LOBBY, 255, 6, 6
waitstate
BattleTower_BattleRoom_EventScript_160A94:: @ 8160A94
@@ -116,7 +116,7 @@ BattleTower_BattleRoom_EventScript_160A94:: @ 8160A94
BattleTower_BattleRoom_EventScript_160AB1:: @ 8160AB1
fadescreen 1
- special sub_8135C38
+ special BattleTower_SoftReset
end
BattleTower_BattleRoom_Movement_160AB7:: @ 8160AB7
diff --git a/data/scripts/maps/BattleTower_Corridor.inc b/data/scripts/maps/BattleTower_Corridor.inc
index 9d4fbc844..828d975fc 100644
--- a/data/scripts/maps/BattleTower_Corridor.inc
+++ b/data/scripts/maps/BattleTower_Corridor.inc
@@ -6,13 +6,13 @@ BattleTower_Corridor_MapScripts:: @ 8160845
BattleTower_Corridor_MapScript1_160850:: @ 8160850
compare 0x8006, 1
goto_if_eq BattleTower_Corridor_EventScript_16086E
- setmaptile 12, 0, 519, 0
- setmaptile 12, 1, 527, 0
+ setmetatile 12, 0, 519, 0
+ setmetatile 12, 1, 527, 0
end
BattleTower_Corridor_EventScript_16086E:: @ 816086E
- setmaptile 15, 0, 519, 0
- setmaptile 15, 1, 527, 0
+ setmetatile 15, 0, 519, 0
+ setmetatile 15, 1, 527, 0
end
BattleTower_Corridor_MapScript2_160881:: @ 8160881
@@ -35,7 +35,7 @@ BattleTower_Corridor_EventScript_1608B1:: @ 81608B1
BattleTower_Corridor_EventScript_1608C2:: @ 81608C2
setvar 0x4000, 0
- warp BattleTower_BattleRoom, 255, 4, 8
+ warp MAP_BATTLE_TOWER_BATTLE_ROOM, 255, 4, 8
waitstate
end
diff --git a/data/scripts/maps/BattleTower_Elevator.inc b/data/scripts/maps/BattleTower_Elevator.inc
index a147a3b5a..c006cdffe 100644
--- a/data/scripts/maps/BattleTower_Elevator.inc
+++ b/data/scripts/maps/BattleTower_Elevator.inc
@@ -19,7 +19,7 @@ BattleTower_Elevator_EventScript_1607E4:: @ 81607E4
applymovement 255, BattleTower_Elevator_Movement_160841
waitmovement 0
setvar 0x4000, 0
- warp BattleTower_Corridor, 255, 8, 1
+ warp MAP_BATTLE_TOWER_CORRIDOR, 255, 8, 1
waitstate
end
diff --git a/data/scripts/maps/BattleTower_Lobby.inc b/data/scripts/maps/BattleTower_Lobby.inc
index 3227df991..69db45ede 100644
--- a/data/scripts/maps/BattleTower_Lobby.inc
+++ b/data/scripts/maps/BattleTower_Lobby.inc
@@ -13,14 +13,14 @@ BattleTower_Lobby_MapScript1_160293:: @ 8160293
BattleTower_Lobby_EventScript_16029C:: @ 816029C
setvar 0x8004, 10
special sub_8135668
- checkflag 238
+ checkflag FLAG_RECEIVED_GOLD_SHIELD
goto_if_eq BattleTower_Lobby_EventScript_1602E4
- checkflag 237
+ checkflag FLAG_RECEIVED_SILVER_SHIELD
goto_if_eq BattleTower_Lobby_EventScript_1602CD
specialvar 0x8007, sub_810F404
compare 0x8007, 50
goto_if 0, BattleTower_Lobby_EventScript_1602E4
- clearflag 941
+ clearflag FLAG_HIDE_AWARD_MAN_BATTLE_TOWER
special sub_810F8FC
return
@@ -28,12 +28,12 @@ BattleTower_Lobby_EventScript_1602CD:: @ 81602CD
specialvar 0x8007, sub_810F404
compare 0x8007, 100
goto_if 0, BattleTower_Lobby_EventScript_1602E4
- clearflag 941
+ clearflag FLAG_HIDE_AWARD_MAN_BATTLE_TOWER
special sub_810F8FC
return
BattleTower_Lobby_EventScript_1602E4:: @ 81602E4
- setflag 941
+ setflag FLAG_HIDE_AWARD_MAN_BATTLE_TOWER
return
BattleTower_Lobby_MapScript1_1602E8:: @ 81602E8
@@ -79,7 +79,7 @@ BattleTower_Lobby_EventScript_160342:: @ 8160342
special sub_81358A4
compare RESULT, 6
goto_if_eq BattleTower_Lobby_EventScript_16037D
- special sub_8135E50
+ special AwardBattleTowerRibbons
compare RESULT, 0
goto_if_eq BattleTower_Lobby_EventScript_16037D
message BattleTower_Lobby_Text_19A6BE
@@ -97,7 +97,7 @@ BattleTower_Lobby_EventScript_16037D:: @ 816037D
waitmessage
setvar 0x8004, 13
special sub_8135668
- special sub_8135D84
+ special DetermineBattleTowerPrize
setvar 0x8004, 3
special sub_8135BA0
playse 55
@@ -109,7 +109,7 @@ BattleTower_Lobby_EventScript_1603AD:: @ 81603AD
special sub_8135668
message BattleTower_Lobby_Text_19A4BB
waitmessage
- special sub_8135DEC
+ special GiveBattleTowerPrize
switch RESULT
case 0, BattleTower_Lobby_EventScript_160408
message BattleTower_Lobby_Text_19A506
@@ -177,7 +177,7 @@ BattleTower_Lobby_EventScript_16044B:: @ 816044B
msgbox BattleTower_Lobby_Text_19A0A8, 4
closemessage
call BattleTower_Lobby_EventScript_160664
- warp BattleTower_Elevator, 255, 1, 6
+ warp MAP_BATTLE_TOWER_ELEVATOR, 255, 1, 6
setvar 0x4000, 0
waitstate
@@ -254,7 +254,7 @@ BattleTower_Lobby_EventScript_160587:: @ 8160587
msgbox BattleTower_Lobby_Text_19A0A8, 4
closemessage
call BattleTower_Lobby_EventScript_160664
- warp BattleTower_Elevator, 255, 1, 6
+ warp MAP_BATTLE_TOWER_ELEVATOR, 255, 1, 6
setvar 0x4000, 0
waitstate
@@ -379,7 +379,7 @@ BattleTower_Lobby_EventScript_16071E:: @ 816071E
BattleTower_Lobby_EventScript_160727:: @ 8160727
lockall
special ShowBattleTowerRecords
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -387,16 +387,16 @@ BattleTower_Lobby_EventScript_160727:: @ 8160727
BattleTower_Lobby_EventScript_160733:: @ 8160733
lock
faceplayer
- checkflag 238
+ checkflag FLAG_RECEIVED_GOLD_SHIELD
goto_if_eq BattleTower_Lobby_EventScript_1607C5
- checkflag 237
+ checkflag FLAG_RECEIVED_SILVER_SHIELD
goto_if_eq BattleTower_Lobby_EventScript_160773
msgbox BattleTower_Lobby_Text_19A9EE, 4
- setvar 0x8008, 42
- givedecoration 42
+ setvar 0x8008, DECOR_SILVER_SHIELD
+ givedecoration_std DECOR_SILVER_SHIELD
compare RESULT, 0
goto_if_eq BattleTower_Lobby_EventScript_1607AF
- setflag 237
+ setflag FLAG_RECEIVED_SILVER_SHIELD
msgbox BattleTower_Lobby_Text_19ABAA, 4
release
end
@@ -406,17 +406,17 @@ BattleTower_Lobby_EventScript_160773:: @ 8160773
compare RESULT, 100
goto_if 0, BattleTower_Lobby_EventScript_1607C5
msgbox BattleTower_Lobby_Text_19AAC4, 4
- setvar 0x8008, 43
- givedecoration 43
+ setvar 0x8008, DECOR_GOLD_SHIELD
+ givedecoration_std DECOR_GOLD_SHIELD
compare RESULT, 0
goto_if_eq BattleTower_Lobby_EventScript_1607AF
- setflag 238
+ setflag FLAG_RECEIVED_GOLD_SHIELD
msgbox BattleTower_Lobby_Text_19ABAA, 4
release
end
BattleTower_Lobby_EventScript_1607AF:: @ 81607AF
- getdecorname 1, 0x8008
+ bufferdecorationname 1, 0x8008
msgbox BattleTower_Lobby_Text_1A0CEF, 4
msgbox BattleTower_Lobby_Text_19ABED, 4
release
diff --git a/data/scripts/maps/BattleTower_Outside.inc b/data/scripts/maps/BattleTower_Outside.inc
index 95c5a9d77..e0aba0b9c 100644
--- a/data/scripts/maps/BattleTower_Outside.inc
+++ b/data/scripts/maps/BattleTower_Outside.inc
@@ -3,9 +3,9 @@ BattleTower_Outside_MapScripts:: @ 8160156
.byte 0
BattleTower_Outside_MapScript1_16015C:: @ 816015C
- setflag 2120
+ setflag FLAG_LANDMARK_BATTLE_TOWER
setvar 0x40bc, 0
- setflag 918
+ setflag FLAG_HIDE_REPORTER_BATTLE_TOWER
end
BattleTower_Outside_EventScript_160168:: @ 8160168
@@ -40,7 +40,7 @@ BattleTower_Outside_EventScript_1601D0:: @ 81601D0
goto_if_eq BattleTower_Outside_EventScript_160226
msgbox BattleTower_Outside_Text_199E4B, 4
call BattleTower_Outside_EventScript_160232
- warp SlateportCity_Harbor, 255, 8, 11
+ warp MAP_SLATEPORT_CITY_HARBOR, 255, 8, 11
waitstate
release
end
@@ -51,7 +51,7 @@ BattleTower_Outside_EventScript_1601FB:: @ 81601FB
goto_if_eq BattleTower_Outside_EventScript_160226
msgbox BattleTower_Outside_Text_199E4B, 4
call BattleTower_Outside_EventScript_160232
- warp LilycoveCity_Harbor, 255, 8, 11
+ warp MAP_LILYCOVE_CITY_HARBOR, 255, 8, 11
waitstate
release
end
@@ -67,7 +67,7 @@ BattleTower_Outside_EventScript_160232:: @ 8160232
applymovement LAST_TALKED, BattleTower_Outside_Movement_1A0845
waitmovement 0
delay 30
- hideobject 5, 26, 4
+ hideobjectat 5, MAP_BATTLE_TOWER_OUTSIDE
setvar 0x8004, 4
call BattleTower_Outside_EventScript_1A047C
return
diff --git a/data/scripts/maps/CaveOfOrigin_1F.inc b/data/scripts/maps/CaveOfOrigin_1F.inc
index 3ad36cc18..6411aad49 100644
--- a/data/scripts/maps/CaveOfOrigin_1F.inc
+++ b/data/scripts/maps/CaveOfOrigin_1F.inc
@@ -3,6 +3,6 @@ CaveOfOrigin_1F_MapScripts:: @ 815DD6C
.byte 0
CaveOfOrigin_1F_MapScript1_15DD72:: @ 815DD72
- checkflag 113
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
call_if 1, CaveOfOrigin_1F_EventScript_1A04E3
end
diff --git a/data/scripts/maps/CaveOfOrigin_B1F.inc b/data/scripts/maps/CaveOfOrigin_B1F.inc
index c3bbdd45f..b8d4149b6 100644
--- a/data/scripts/maps/CaveOfOrigin_B1F.inc
+++ b/data/scripts/maps/CaveOfOrigin_B1F.inc
@@ -3,6 +3,6 @@ CaveOfOrigin_B1F_MapScripts:: @ 815DD7C
.byte 0
CaveOfOrigin_B1F_MapScript1_15DD82:: @ 815DD82
- checkflag 113
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
call_if 1, CaveOfOrigin_B1F_EventScript_1A04E3
end
diff --git a/data/scripts/maps/CaveOfOrigin_B2F.inc b/data/scripts/maps/CaveOfOrigin_B2F.inc
index fb65de171..9b014d0e9 100644
--- a/data/scripts/maps/CaveOfOrigin_B2F.inc
+++ b/data/scripts/maps/CaveOfOrigin_B2F.inc
@@ -3,6 +3,6 @@ CaveOfOrigin_B2F_MapScripts:: @ 815DD8C
.byte 0
CaveOfOrigin_B2F_MapScript1_15DD92:: @ 815DD92
- checkflag 113
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
call_if 1, CaveOfOrigin_B2F_EventScript_1A04E3
end
diff --git a/data/scripts/maps/CaveOfOrigin_B3F.inc b/data/scripts/maps/CaveOfOrigin_B3F.inc
index c21b04e91..d6f7bdaf1 100644
--- a/data/scripts/maps/CaveOfOrigin_B3F.inc
+++ b/data/scripts/maps/CaveOfOrigin_B3F.inc
@@ -3,6 +3,6 @@ CaveOfOrigin_B3F_MapScripts:: @ 815DD9C
.byte 0
CaveOfOrigin_B3F_MapScript1_15DDA2:: @ 815DDA2
- checkflag 113
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
call_if 1, CaveOfOrigin_B3F_EventScript_1A04E3
end
diff --git a/data/scripts/maps/CaveOfOrigin_B4F.inc b/data/scripts/maps/CaveOfOrigin_B4F.inc
index c6c3cd45e..1b5146760 100644
--- a/data/scripts/maps/CaveOfOrigin_B4F.inc
+++ b/data/scripts/maps/CaveOfOrigin_B4F.inc
@@ -4,7 +4,7 @@ CaveOfOrigin_B4F_MapScripts:: @ 815DDAC
.byte 0
CaveOfOrigin_B4F_MapScript1_15DDB7:: @ 815DDB7
- checkflag 2145
+ checkflag FLAG_SYS_CTRL_OBJ_DELETE
call_if 1, CaveOfOrigin_B4F_EventScript_15DDC1
end
@@ -19,7 +19,7 @@ CaveOfOrigin_B4F_MapScript1_15DDC5:: @ 815DDC5
setmaplayoutindex 313
.endif
call CaveOfOrigin_B4F_EventScript_1A01B5
- checkflag 113
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
call_if 1, CaveOfOrigin_B4F_EventScript_1A04E3
end
@@ -38,9 +38,9 @@ CaveOfOrigin_B4F_EventScript_15DDD7:: @ 815DDD7
special WaitWeather
waitstate
playse 209
- setfieldeffect 0, 9
- setfieldeffect 1, 13
- setfieldeffect 2, 0
+ setfieldeffectargument 0, 9
+ setfieldeffectargument 1, 13
+ setfieldeffectargument 2, 0
dofieldeffect 54
waitfieldeffect 54
.ifdef SAPPHIRE
@@ -58,26 +58,26 @@ CaveOfOrigin_B4F_EventScript_15DDD7:: @ 815DDD7
delay 60
setwildbattle SPECIES_GROUDON_OR_KYOGRE, 45, ITEM_NONE
waitse
- playpokecry SPECIES_GROUDON_OR_KYOGRE, 2
+ playmoncry SPECIES_GROUDON_OR_KYOGRE, 2
delay 40
- waitpokecry
- setflag 2145
+ waitmoncry
+ setflag FLAG_SYS_CTRL_OBJ_DELETE
special ScrSpecial_StartGroudonKyogreBattle
waitstate
- clearflag 2145
+ clearflag FLAG_SYS_CTRL_OBJ_DELETE
specialvar RESULT, sub_810E300
compare RESULT, 1
call_if 1, CaveOfOrigin_B4F_EventScript_15DE73
- setflag 816
- setflag 855
- setflag 856
- clearflag 815
+ setflag FLAG_HIDE_WALLACE_SOOTOPOLIS
+ setflag FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_1
+ setflag FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_2
+ clearflag FLAG_HIDE_WALLACE_SOOTOPOLIS_GYM
setvar 0x409b, 1
- setflag 113
- clearflag 854
- clearflag 2090
+ setflag FLAG_LEGENDARY_BATTLE_COMPLETED
+ clearflag FLAG_HIDE_SOOTOPOLIS_RESIDENTS
+ clearflag FLAG_SYS_WEATHER_CTRL
setvar 0x40b9, 2
- clearflag 916
+ clearflag FLAG_HIDE_LEADER_MT_PYRE_SUMMIT
releaseall
end
diff --git a/data/scripts/maps/DesertRuins.inc b/data/scripts/maps/DesertRuins.inc
index 9f6f7b388..7aa56a82d 100644
--- a/data/scripts/maps/DesertRuins.inc
+++ b/data/scripts/maps/DesertRuins.inc
@@ -5,7 +5,7 @@ DesertRuins_MapScripts:: @ 815CAF3
.byte 0
DesertRuins_MapScript1_15CB03:: @ 815CB03
- checkflag 2145
+ checkflag FLAG_SYS_CTRL_OBJ_DELETE
call_if 1, DesertRuins_EventScript_15CB0D
end
@@ -14,29 +14,29 @@ DesertRuins_EventScript_15CB0D:: @ 815CB0D
return
DesertRuins_MapScript1_15CB11:: @ 815CB11
- checkflag 2128
+ checkflag FLAG_SYS_BRAILLE_STRENGTH
call_if 0, DesertRuins_EventScript_15CB1B
end
DesertRuins_EventScript_15CB1B:: @ 815CB1B
- setmaptile 7, 19, 553, 1
- setmaptile 8, 19, 553, 1
- setmaptile 9, 19, 553, 1
- setmaptile 7, 20, 565, 1
- setmaptile 8, 20, 565, 1
- setmaptile 9, 20, 565, 1
+ setmetatile 7, 19, 553, 1
+ setmetatile 8, 19, 553, 1
+ setmetatile 9, 19, 553, 1
+ setmetatile 7, 20, 565, 1
+ setmetatile 8, 20, 565, 1
+ setmetatile 9, 20, 565, 1
return
DesertRuins_MapScript1_15CB52:: @ 815CB52
- setflag 2134
+ setflag FLAG_LANDMARK_DESERT_RUINS
end
DesertRuins_EventScript_15CB56:: @ 815CB56
lockall
- checkflag 2128
+ checkflag FLAG_SYS_BRAILLE_STRENGTH
goto_if_eq DesertRuins_EventScript_15CB6D
braillemessage DesertRuins_Braille_1C54C8
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -49,7 +49,7 @@ DesertRuins_EventScript_15CB6D:: @ 815CB6D
DesertRuins_EventScript_15CB77:: @ 815CB77
lockall
braillemessage DesertRuins_Braille_1C54C8
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -58,14 +58,14 @@ DesertRuins_EventScript_15CB85:: @ 815CB85
lock
faceplayer
waitse
- playpokecry SPECIES_REGIROCK, 2
+ playmoncry SPECIES_REGIROCK, 2
delay 40
- waitpokecry
+ waitmoncry
setwildbattle SPECIES_REGIROCK, 40, ITEM_NONE
- setflag 935
- setflag 2145
+ setflag FLAG_HIDE_REGIROCK
+ setflag FLAG_SYS_CTRL_OBJ_DELETE
special ScrSpecial_StartRegiBattle
waitstate
- clearflag 2145
+ clearflag FLAG_SYS_CTRL_OBJ_DELETE
release
end
diff --git a/data/scripts/maps/DewfordTown.inc b/data/scripts/maps/DewfordTown.inc
index aa3584741..bb1fdeda4 100644
--- a/data/scripts/maps/DewfordTown.inc
+++ b/data/scripts/maps/DewfordTown.inc
@@ -3,13 +3,13 @@ DewfordTown_MapScripts:: @ 814DFF8
.byte 0
DewfordTown_MapScript1_14DFFE:: @ 814DFFE
- setflag 2065
+ setflag FLAG_VISITED_DEWFORD_TOWN
end
DewfordTown_EventScript_14E002:: @ 814E002
lock
faceplayer
- checkflag 189
+ checkflag FLAG_DELIVERED_STEVEN_LETTER
goto_if 0, DewfordTown_EventScript_14E076
message DewfordTown_Text_16B522
waitmessage
@@ -74,7 +74,7 @@ DewfordTown_EventScript_14E0BD:: @ 814E0BD
DewfordTown_EventScript_14E0C6:: @ 814E0C6
lock
faceplayer
- checkflag 257
+ checkflag FLAG_RECEIVED_OLD_ROD
goto_if_eq DewfordTown_EventScript_14E11B
msgbox DewfordTown_Text_16B665, 5
compare RESULT, 1
@@ -85,8 +85,8 @@ DewfordTown_EventScript_14E0C6:: @ 814E0C6
DewfordTown_EventScript_14E0F0:: @ 814E0F0
msgbox DewfordTown_Text_16B6A8, 4
- giveitem ITEM_OLD_ROD
- setflag 257
+ giveitem_std ITEM_OLD_ROD
+ setflag FLAG_RECEIVED_OLD_ROD
msgbox DewfordTown_Text_16B6F9, 4
release
end
@@ -118,31 +118,31 @@ DewfordTown_EventScript_14E147:: @ 814E147
DewfordTown_EventScript_14E151:: @ 814E151
call DewfordTown_EventScript_1A010C
- setobjectpriority 2, 0, 11, 0
- setobjectpriority 255, 0, 11, 0
+ setobjectpriority 2, MAP_DEWFORD_TOWN, 0
+ setobjectpriority 255, MAP_DEWFORD_TOWN, 0
applymovement 2, DewfordTown_Movement_14E40E
waitmovement 0
removeobject 2
applymovement 255, DewfordTown_Movement_14E402
waitmovement 0
- hideobject 255, 0, 11
+ hideobjectat 255, MAP_DEWFORD_TOWN
call DewfordTown_EventScript_1A02E7
applymovement 4, DewfordTown_Movement_14E293
applymovement 255, DewfordTown_Movement_14E293
waitmovement 0
- showobject 255, 0, 19
+ showobjectat 255, MAP_ROUTE104
call DewfordTown_EventScript_1A02EF
applymovement 255, DewfordTown_Movement_14E405
waitmovement 0
- showobject 255, 0, 19
- clearflag 739
- clearflag 881
- clearflag 742
- setflag 743
- hideobject 4, 0, 11
+ showobjectat 255, MAP_ROUTE104
+ clearflag FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE
+ clearflag FLAG_HIDE_PEEKO_BRINEY_HOUSE
+ clearflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD
+ hideobjectat 4, MAP_DEWFORD_TOWN
setvar 0x408e, 2
- resetobjectpriority 255, 0, 11
- warp Route104_MrBrineysHouse, 255, 5, 4
+ resetobjectpriority 255, MAP_DEWFORD_TOWN
+ warp MAP_ROUTE104_MR_BRINEYS_HOUSE, 255, 5, 4
copyvar 0x4096, 0x8008
waitstate
release
@@ -150,40 +150,40 @@ DewfordTown_EventScript_14E151:: @ 814E151
DewfordTown_EventScript_14E1D8:: @ 814E1D8
call DewfordTown_EventScript_1A010C
- setobjectpriority 2, 0, 11, 0
- setobjectpriority 255, 0, 11, 1
+ setobjectpriority 2, MAP_DEWFORD_TOWN, 0
+ setobjectpriority 255, MAP_DEWFORD_TOWN, 1
applymovement 2, DewfordTown_Movement_14E40E
waitmovement 0
removeobject 2
applymovement 255, DewfordTown_Movement_14E402
waitmovement 0
- hideobject 255, 0, 11
+ hideobjectat 255, MAP_DEWFORD_TOWN
call DewfordTown_EventScript_1A02E7
applymovement 4, DewfordTown_Movement_14E356
applymovement 255, DewfordTown_Movement_14E356
waitmovement 0
call DewfordTown_EventScript_1A02EF
- showobject 255, 0, 24
+ showobjectat 255, MAP_ROUTE109
applymovement 255, DewfordTown_Movement_14E409
waitmovement 0
setobjectxyperm 2, 21, 26
addobject 2
- setobjectpriority 2, 0, 24, 0
+ setobjectpriority 2, MAP_ROUTE109, 0
applymovement 2, DewfordTown_Movement_14E410
waitmovement 0
- clearflag 741
+ clearflag FLAG_HIDE_MR_BRINEY_ROUTE109
addobject 1
- clearflag 744
- setflag 743
- hideobject 4, 0, 11
- checkflag 149
+ 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 149
+ checkflag FLAG_DELIVERED_DEVON_GOODS
call_if 1, DewfordTown_EventScript_14E28A
closemessage
copyvar 0x4096, 0x8008
- resetobjectpriority 255, 0, 11
- resetobjectpriority 2, 0, 24
+ resetobjectpriority 255, MAP_DEWFORD_TOWN
+ resetobjectpriority 2, MAP_ROUTE109
moveobjectoffscreen 2
release
end
diff --git a/data/scripts/maps/DewfordTown_Gym.inc b/data/scripts/maps/DewfordTown_Gym.inc
index 92776afb1..afd918a96 100644
--- a/data/scripts/maps/DewfordTown_Gym.inc
+++ b/data/scripts/maps/DewfordTown_Gym.inc
@@ -20,23 +20,23 @@ DewfordTown_Gym_EventScript_153071:: @ 8153071
goto DewfordTown_Gym_EventScript_1530AE
DewfordTown_Gym_EventScript_1530AA:: @ 81530AA
- setdarklevel 0
+ setflashradius 0
return
DewfordTown_Gym_EventScript_1530AE:: @ 81530AE
- setdarklevel 1
+ setflashradius 1
return
DewfordTown_Gym_EventScript_1530B2:: @ 81530B2
- setdarklevel 2
+ setflashradius 2
return
DewfordTown_Gym_EventScript_1530B6:: @ 81530B6
- setdarklevel 3
+ setflashradius 3
return
DewfordTown_Gym_EventScript_1530BA:: @ 81530BA
- setdarklevel 4
+ setflashradius 4
return
DewfordTown_Gym_EventScript_1530BE:: @ 81530BE
@@ -57,25 +57,25 @@ DewfordTown_Gym_EventScript_1530F5:: @ 81530F5
DewfordTown_Gym_EventScript_1530F6:: @ 81530F6
playse 35
- animdarklevel 3
+ animateflash 3
call DewfordTown_Gym_EventScript_153071
return
DewfordTown_Gym_EventScript_153101:: @ 8153101
playse 35
- animdarklevel 2
+ animateflash 2
call DewfordTown_Gym_EventScript_153071
return
DewfordTown_Gym_EventScript_15310C:: @ 815310C
playse 35
- animdarklevel 1
+ animateflash 1
call DewfordTown_Gym_EventScript_153071
return
DewfordTown_Gym_EventScript_153117:: @ 8153117
playse 35
- animdarklevel 0
+ animateflash 0
call DewfordTown_Gym_EventScript_153071
return
@@ -100,7 +100,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 166
+ checkflag FLAG_RECEIVED_TM08
goto_if 0, DewfordTown_Gym_EventScript_1531B5
msgbox DewfordTown_Gym_Text_175412, 4
release
@@ -112,8 +112,8 @@ DewfordTown_Gym_EventScript_153177:: @ 8153177
waitmessage
call DewfordTown_Gym_EventScript_1A02C5
msgbox DewfordTown_Gym_Text_1752E6, 4
- setflag 1204
- setflag 2056
+ setflag FLAG_DEFEATED_DEWFORD_GYM
+ setflag FLAG_BADGE02_GET
addvar 0x4085, 1
compare 0x4085, 6
call_if 1, DewfordTown_Gym_EventScript_1A00FB
@@ -123,11 +123,11 @@ DewfordTown_Gym_EventScript_153177:: @ 8153177
end
DewfordTown_Gym_EventScript_1531B5:: @ 81531B5
- giveitem ITEM_TM08
+ giveitem_std ITEM_TM08
compare RESULT, 0
goto_if_eq DewfordTown_Gym_EventScript_1A029B
msgbox DewfordTown_Gym_Text_1753BF, 4
- setflag 166
+ setflag FLAG_RECEIVED_TM08
release
end
@@ -164,7 +164,7 @@ DewfordTown_Gym_EventScript_153238:: @ 8153238
DewfordTown_Gym_EventScript_15323F:: @ 815323F
lock
faceplayer
- checkflag 1204
+ checkflag FLAG_DEFEATED_DEWFORD_GYM
goto_if_eq DewfordTown_Gym_EventScript_153254
msgbox DewfordTown_Gym_Text_174D98, 4
release
@@ -177,14 +177,14 @@ DewfordTown_Gym_EventScript_153254:: @ 8153254
DewfordTown_Gym_EventScript_15325E:: @ 815325E
lockall
- checkflag 2056
+ checkflag FLAG_BADGE02_GET
goto_if_eq DewfordTown_Gym_EventScript_15327E
goto DewfordTown_Gym_EventScript_153288
end
DewfordTown_Gym_EventScript_15326E:: @ 815326E
lockall
- checkflag 2056
+ checkflag FLAG_BADGE02_GET
goto_if_eq 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 ea4016147..a3830ebb8 100644
--- a/data/scripts/maps/DewfordTown_Hall.inc
+++ b/data/scripts/maps/DewfordTown_Hall.inc
@@ -252,13 +252,13 @@ DewfordTown_Hall_EventScript_15359D:: @ 815359D
lock
faceplayer
call DewfordTown_Hall_EventScript_1A0102
- checkflag 230
+ checkflag FLAG_RECEIVED_TM36
goto_if_eq DewfordTown_Hall_EventScript_1535D1
msgbox DewfordTown_Hall_Text_175E13, 4
- giveitem ITEM_TM36
+ giveitem_std ITEM_TM36
compare RESULT, 0
goto_if_eq DewfordTown_Hall_EventScript_1A029B
- setflag 230
+ setflag FLAG_RECEIVED_TM36
release
end
diff --git a/data/scripts/maps/DewfordTown_House1.inc b/data/scripts/maps/DewfordTown_House1.inc
index e8897b974..4a112eea2 100644
--- a/data/scripts/maps/DewfordTown_House1.inc
+++ b/data/scripts/maps/DewfordTown_House1.inc
@@ -13,8 +13,8 @@ DewfordTown_House1_EventScript_153001:: @ 8153001
lock
faceplayer
waitse
- playpokecry SPECIES_ZIGZAGOON, 0
+ playmoncry SPECIES_ZIGZAGOON, 0
msgbox DewfordTown_House1_Text_174CC8, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/DewfordTown_House2.inc b/data/scripts/maps/DewfordTown_House2.inc
index befe47404..e704efa50 100644
--- a/data/scripts/maps/DewfordTown_House2.inc
+++ b/data/scripts/maps/DewfordTown_House2.inc
@@ -4,13 +4,13 @@ DewfordTown_House2_MapScripts:: @ 81535DB
DewfordTown_House2_EventScript_1535DC:: @ 81535DC
lock
faceplayer
- checkflag 289
+ checkflag FLAG_RECEIVED_SILK_SCARF
goto_if_eq DewfordTown_House2_EventScript_153615
msgbox DewfordTown_House2_Text_175EFE, 4
- giveitem ITEM_SILK_SCARF
+ giveitem_std ITEM_SILK_SCARF
compare RESULT, 0
goto_if_eq DewfordTown_House2_EventScript_15360B
- setflag 289
+ setflag FLAG_RECEIVED_SILK_SCARF
release
end
diff --git a/data/scripts/maps/DewfordTown_PokemonCenter_1F.inc b/data/scripts/maps/DewfordTown_PokemonCenter_1F.inc
index 70e75492e..c1288078f 100644
--- a/data/scripts/maps/DewfordTown_PokemonCenter_1F.inc
+++ b/data/scripts/maps/DewfordTown_PokemonCenter_1F.inc
@@ -3,7 +3,7 @@ DewfordTown_PokemonCenter_1F_MapScripts:: @ 8153014
.byte 0
DewfordTown_PokemonCenter_1F_MapScript1_15301A:: @ 815301A
- sethealplace 15
+ setrespawn 15
call DewfordTown_PokemonCenter_1F_EventScript_19FD1B
end
@@ -11,7 +11,7 @@ DewfordTown_PokemonCenter_1F_EventScript_153023:: @ 8153023
setvar 0x800b, 1
call DewfordTown_PokemonCenter_1F_EventScript_19FD5B
waitmessage
- waitbutton
+ waitbuttonpress
release
end
diff --git a/data/scripts/maps/EverGrandeCity.inc b/data/scripts/maps/EverGrandeCity.inc
index c9768d006..b4fa64cae 100644
--- a/data/scripts/maps/EverGrandeCity.inc
+++ b/data/scripts/maps/EverGrandeCity.inc
@@ -3,7 +3,7 @@ EverGrandeCity_MapScripts:: @ 814D4D5
.byte 0
EverGrandeCity_MapScript1_14D4DB:: @ 814D4DB
- checkflag 2090
+ checkflag FLAG_SYS_WEATHER_CTRL
call_if 1, EverGrandeCity_EventScript_1A02C1
end
@@ -20,6 +20,6 @@ EverGrandeCity_EventScript_14D4F7:: @ 814D4F7
end
EverGrandeCity_EventScript_14D500:: @ 814D500
- setflag 2078
+ setflag FLAG_VISITED_EVER_GRANDE_CITY
setvar 0x4001, 1
end
diff --git a/data/scripts/maps/EverGrandeCity_ChampionsRoom.inc b/data/scripts/maps/EverGrandeCity_ChampionsRoom.inc
index 90df9ab4e..d59476417 100644
--- a/data/scripts/maps/EverGrandeCity_ChampionsRoom.inc
+++ b/data/scripts/maps/EverGrandeCity_ChampionsRoom.inc
@@ -46,8 +46,8 @@ EverGrandeCity_ChampionsRoom_EventScript_15B805:: @ 815B805
EverGrandeCity_ChampionsRoom_EventScript_15B821:: @ 815B821
playse 8
- setmaptile 6, 1, 838, 0
- setmaptile 6, 2, 839, 0
+ setmetatile 6, 1, 838, 0
+ setmetatile 6, 2, 839, 0
special DrawWholeMapView
msgbox EverGrandeCity_ChampionsRoom_Text_1910FE, 4
closemessage
@@ -136,8 +136,8 @@ EverGrandeCity_ChampionsRoom_EventScript_15B8F0:: @ 815B8F0
applymovement 1, EverGrandeCity_ChampionsRoom_Movement_15B9FF
applymovement 255, EverGrandeCity_ChampionsRoom_Movement_15B9E0
waitmovement 0
- setflag 781
- warp EverGrandeCity_HallOfFame, 255, 7, 16
+ setflag FLAG_HIDE_PETALBURG_GYM_GUIDE
+ warp MAP_EVER_GRANDE_CITY_HALL_OF_FAME, 255, 7, 16
waitstate
releaseall
end
diff --git a/data/scripts/maps/EverGrandeCity_DrakesRoom.inc b/data/scripts/maps/EverGrandeCity_DrakesRoom.inc
index 3d3d56ff9..f7088e821 100644
--- a/data/scripts/maps/EverGrandeCity_DrakesRoom.inc
+++ b/data/scripts/maps/EverGrandeCity_DrakesRoom.inc
@@ -24,7 +24,7 @@ EverGrandeCity_DrakesRoom_EventScript_15B736:: @ 815B736
end
EverGrandeCity_DrakesRoom_MapScript1_15B743:: @ 815B743
- checkflag 1248
+ checkflag FLAG_DEFEATED_ELITE_4_DRAKE
call_if 1, EverGrandeCity_DrakesRoom_EventScript_15B758
compare 0x409c, 4
call_if 1, EverGrandeCity_DrakesRoom_EventScript_15B75E
@@ -41,7 +41,7 @@ EverGrandeCity_DrakesRoom_EventScript_15B75E:: @ 815B75E
EverGrandeCity_DrakesRoom_EventScript_15B764:: @ 815B764
lock
faceplayer
- checkflag 1248
+ checkflag FLAG_DEFEATED_ELITE_4_DRAKE
goto_if_eq EverGrandeCity_DrakesRoom_EventScript_15B78B
playbgm 450, 0
msgbox EverGrandeCity_DrakesRoom_Text_190CEB, 4
@@ -57,7 +57,7 @@ EverGrandeCity_DrakesRoom_EventScript_15B78B:: @ 815B78B
EverGrandeCity_DrakesRoom_EventScript_15B795:: @ 815B795
setvar 0x8004, 0
special sub_810FF60
- setflag 1248
+ setflag FLAG_DEFEATED_ELITE_4_DRAKE
call EverGrandeCity_DrakesRoom_EventScript_1A0693
msgbox EverGrandeCity_DrakesRoom_Text_190E5D, 4
release
diff --git a/data/scripts/maps/EverGrandeCity_GlaciasRoom.inc b/data/scripts/maps/EverGrandeCity_GlaciasRoom.inc
index 07f6e8877..be9e7a897 100644
--- a/data/scripts/maps/EverGrandeCity_GlaciasRoom.inc
+++ b/data/scripts/maps/EverGrandeCity_GlaciasRoom.inc
@@ -24,7 +24,7 @@ EverGrandeCity_GlaciasRoom_EventScript_15B69C:: @ 815B69C
end
EverGrandeCity_GlaciasRoom_MapScript1_15B6A9:: @ 815B6A9
- checkflag 1247
+ checkflag FLAG_DEFEATED_ELITE_4_GLACIA
call_if 1, EverGrandeCity_GlaciasRoom_EventScript_15B6BE
compare 0x409c, 3
call_if 1, EverGrandeCity_GlaciasRoom_EventScript_15B6C4
@@ -41,7 +41,7 @@ EverGrandeCity_GlaciasRoom_EventScript_15B6C4:: @ 815B6C4
EverGrandeCity_GlaciasRoom_EventScript_15B6CA:: @ 815B6CA
lock
faceplayer
- checkflag 1247
+ checkflag FLAG_DEFEATED_ELITE_4_GLACIA
goto_if_eq EverGrandeCity_GlaciasRoom_EventScript_15B6F1
playbgm 450, 0
msgbox EverGrandeCity_GlaciasRoom_Text_190AF9, 4
@@ -55,7 +55,7 @@ EverGrandeCity_GlaciasRoom_EventScript_15B6F1:: @ 815B6F1
end
EverGrandeCity_GlaciasRoom_EventScript_15B6FB:: @ 815B6FB
- setflag 1247
+ setflag FLAG_DEFEATED_ELITE_4_GLACIA
call EverGrandeCity_GlaciasRoom_EventScript_1A0693
msgbox EverGrandeCity_GlaciasRoom_Text_190C8F, 4
release
diff --git a/data/scripts/maps/EverGrandeCity_HallOfFame.inc b/data/scripts/maps/EverGrandeCity_HallOfFame.inc
index d9baaee89..904dc7531 100644
--- a/data/scripts/maps/EverGrandeCity_HallOfFame.inc
+++ b/data/scripts/maps/EverGrandeCity_HallOfFame.inc
@@ -51,16 +51,16 @@ EverGrandeCity_HallOfFame_EventScript_15BBA8:: @ 815BBA8
end
EverGrandeCity_HallOfFame_EventScript_15BC41:: @ 815BC41
- sethealplace 1
- fadescreendelay 1, 24
+ setrespawn 1
+ fadescreenspeed 1, 24
special GameClear
waitstate
releaseall
end
EverGrandeCity_HallOfFame_EventScript_15BC4D:: @ 815BC4D
- sethealplace 2
- fadescreendelay 1, 24
+ setrespawn 2
+ fadescreenspeed 1, 24
special GameClear
waitstate
releaseall
diff --git a/data/scripts/maps/EverGrandeCity_PhoebesRoom.inc b/data/scripts/maps/EverGrandeCity_PhoebesRoom.inc
index b7c1618ba..5ffa16d37 100644
--- a/data/scripts/maps/EverGrandeCity_PhoebesRoom.inc
+++ b/data/scripts/maps/EverGrandeCity_PhoebesRoom.inc
@@ -24,7 +24,7 @@ EverGrandeCity_PhoebesRoom_EventScript_15B602:: @ 815B602
end
EverGrandeCity_PhoebesRoom_MapScript1_15B60F:: @ 815B60F
- checkflag 1246
+ checkflag FLAG_DEFEATED_ELITE_4_PHOEBE
call_if 1, EverGrandeCity_PhoebesRoom_EventScript_15B624
compare 0x409c, 2
call_if 1, EverGrandeCity_PhoebesRoom_EventScript_15B62A
@@ -41,7 +41,7 @@ EverGrandeCity_PhoebesRoom_EventScript_15B62A:: @ 815B62A
EverGrandeCity_PhoebesRoom_EventScript_15B630:: @ 815B630
lock
faceplayer
- checkflag 1246
+ checkflag FLAG_DEFEATED_ELITE_4_PHOEBE
goto_if_eq EverGrandeCity_PhoebesRoom_EventScript_15B657
playbgm 450, 0
msgbox EverGrandeCity_PhoebesRoom_Text_1908F5, 4
@@ -55,7 +55,7 @@ EverGrandeCity_PhoebesRoom_EventScript_15B657:: @ 815B657
end
EverGrandeCity_PhoebesRoom_EventScript_15B661:: @ 815B661
- setflag 1246
+ setflag FLAG_DEFEATED_ELITE_4_PHOEBE
call EverGrandeCity_PhoebesRoom_EventScript_1A0693
msgbox EverGrandeCity_PhoebesRoom_Text_190A2A, 4
release
diff --git a/data/scripts/maps/EverGrandeCity_PokemonCenter_1F.inc b/data/scripts/maps/EverGrandeCity_PokemonCenter_1F.inc
index 57262b211..018658416 100644
--- a/data/scripts/maps/EverGrandeCity_PokemonCenter_1F.inc
+++ b/data/scripts/maps/EverGrandeCity_PokemonCenter_1F.inc
@@ -3,7 +3,7 @@ EverGrandeCity_PokemonCenter_1F_MapScripts:: @ 815BC66
.byte 0
EverGrandeCity_PokemonCenter_1F_MapScript1_15BC6C:: @ 815BC6C
- sethealplace 11
+ setrespawn 11
end
EverGrandeCity_PokemonCenter_1F_EventScript_15BC70:: @ 815BC70
@@ -11,7 +11,7 @@ SootopolisCity_PokemonCenter_1F_EventScript_15BC70:: @ 815BC70
setvar 0x800b, 1
call SootopolisCity_PokemonCenter_1F_EventScript_19FD5B
waitmessage
- waitbutton
+ waitbuttonpress
release
end
diff --git a/data/scripts/maps/EverGrandeCity_PokemonLeague.inc b/data/scripts/maps/EverGrandeCity_PokemonLeague.inc
index acbdac899..4a8919b98 100644
--- a/data/scripts/maps/EverGrandeCity_PokemonLeague.inc
+++ b/data/scripts/maps/EverGrandeCity_PokemonLeague.inc
@@ -3,9 +3,9 @@ EverGrandeCity_PokemonLeague_MapScripts:: @ 815BA75
.byte 0
EverGrandeCity_PokemonLeague_MapScript1_15BA7B:: @ 815BA7B
- sethealplace 20
- setflag 2132
- checkflag 263
+ setrespawn 20
+ setflag FLAG_SYS_POKEMON_LEAGUE_FLY
+ checkflag FLAG_ENTERED_ELITE_FOUR
call_if 0, EverGrandeCity_PokemonLeague_EventScript_15BA8B
end
@@ -18,7 +18,7 @@ EverGrandeCity_PokemonLeague_EventScript_15BA9A:: @ 815BA9A
setvar 0x800b, 1
call EverGrandeCity_PokemonLeague_EventScript_19FD5B
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -47,7 +47,7 @@ EverGrandeCity_PokemonLeague_Items:: @ 815BAC0
EverGrandeCity_PokemonLeague_EventScript_15BAD2:: @ 815BAD2
lockall
- checkflag 263
+ checkflag FLAG_ENTERED_ELITE_FOUR
goto_if_eq EverGrandeCity_PokemonLeague_EventScript_15BB57
getplayerxy 0x4000, 0x4001
compare 0x4000, 11
@@ -57,7 +57,7 @@ EverGrandeCity_PokemonLeague_EventScript_15BAD2:: @ 815BAD2
message EverGrandeCity_PokemonLeague_Text_1916FD
waitmessage
delay 75
- checkflag 2060
+ checkflag FLAG_BADGE06_GET
goto_if 0, EverGrandeCity_PokemonLeague_EventScript_15BB4A
closemessage
applymovement 3, EverGrandeCity_PokemonLeague_Movement_15BB7E
@@ -71,7 +71,7 @@ EverGrandeCity_PokemonLeague_EventScript_15BAD2:: @ 815BAD2
closemessage
moveobjectoffscreen 3
moveobjectoffscreen 4
- setflag 263
+ setflag FLAG_ENTERED_ELITE_FOUR
releaseall
end
diff --git a/data/scripts/maps/EverGrandeCity_SidneysRoom.inc b/data/scripts/maps/EverGrandeCity_SidneysRoom.inc
index daca98176..6e958aeed 100644
--- a/data/scripts/maps/EverGrandeCity_SidneysRoom.inc
+++ b/data/scripts/maps/EverGrandeCity_SidneysRoom.inc
@@ -5,7 +5,7 @@ EverGrandeCity_SidneysRoom_MapScripts:: @ 815B53F
.byte 0
EverGrandeCity_SidneysRoom_MapScript1_15B54F:: @ 815B54F
- checkflag 1245
+ checkflag FLAG_DEFEATED_ELITE_4_SYDNEY
call_if 1, EverGrandeCity_SidneysRoom_EventScript_15B564
compare 0x409c, 1
call_if 1, EverGrandeCity_SidneysRoom_EventScript_15B56A
@@ -42,7 +42,7 @@ EverGrandeCity_SidneysRoom_EventScript_15B589:: @ 815B589
EverGrandeCity_SidneysRoom_EventScript_15B596:: @ 815B596
lock
faceplayer
- checkflag 1245
+ checkflag FLAG_DEFEATED_ELITE_4_SYDNEY
goto_if_eq EverGrandeCity_SidneysRoom_EventScript_15B5BD
playbgm 450, 0
msgbox EverGrandeCity_SidneysRoom_Text_190728, 4
@@ -56,7 +56,7 @@ EverGrandeCity_SidneysRoom_EventScript_15B5BD:: @ 815B5BD
end
EverGrandeCity_SidneysRoom_EventScript_15B5C7:: @ 815B5C7
- setflag 1245
+ setflag FLAG_DEFEATED_ELITE_4_SYDNEY
call EverGrandeCity_SidneysRoom_EventScript_1A0693
msgbox EverGrandeCity_SidneysRoom_Text_19086D, 4
release
diff --git a/data/scripts/maps/FallarborTown.inc b/data/scripts/maps/FallarborTown.inc
index 13c8a9f2e..8ea580e28 100644
--- a/data/scripts/maps/FallarborTown.inc
+++ b/data/scripts/maps/FallarborTown.inc
@@ -3,16 +3,16 @@ FallarborTown_MapScripts:: @ 814E7E0
.byte 0
FallarborTown_MapScript1_14E7E6:: @ 814E7E6
- setflag 2067
+ setflag FLAG_VISITED_FALLARBOR_TOWN
setvar 0x4086, 0
- setflag 800
- clearflag 270
+ setflag FLAG_HIDE_CONTEST_REPORTER_FALLARBOR
+ clearflag FLAG_CONTEST_SKETCH_CREATED
end
FallarborTown_EventScript_14E7F5:: @ 814E7F5
lock
faceplayer
- checkflag 139
+ checkflag FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY
goto_if_eq FallarborTown_EventScript_14E80A
msgbox FallarborTown_Text_16C7FF, 4
release
@@ -35,9 +35,9 @@ FallarborTown_EventScript_14E826:: @ 814E826
lock
faceplayer
waitse
- playpokecry SPECIES_AZURILL, 0
+ playmoncry SPECIES_AZURILL, 0
msgbox FallarborTown_Text_16C92C, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/FallarborTown_ContestLobby.inc b/data/scripts/maps/FallarborTown_ContestLobby.inc
index c4c590b53..72da4cd40 100644
--- a/data/scripts/maps/FallarborTown_ContestLobby.inc
+++ b/data/scripts/maps/FallarborTown_ContestLobby.inc
@@ -14,7 +14,7 @@ FallarborTown_ContestLobby_EventScript_1539CD:: @ 81539CD
special sub_80C4BF0
call FallarborTown_ContestLobby_EventScript_15FBDB
setvar 0x4088, 2
- warp LinkContestRoom1, 255, 7, 5
+ warp MAP_LINK_CONTEST_ROOM1, 255, 7, 5
waitstate
end
@@ -23,14 +23,14 @@ FallarborTown_ContestLobby_EventScript_1539F8:: @ 81539F8
applymovement 1, FallarborTown_ContestLobby_Movement_153A7C
waitmovement 0
playse 71
- setmaptile 4, 2, 545, 1
- setmaptile 4, 3, 609, 1
+ setmetatile 4, 2, 545, 1
+ setmetatile 4, 3, 609, 1
special DrawWholeMapView
applymovement 1, FallarborTown_ContestLobby_Movement_153A7F
waitmovement 0
playse 71
- setmaptile 4, 2, 721, 1
- setmaptile 4, 3, 729, 1
+ setmetatile 4, 2, 721, 1
+ setmetatile 4, 3, 729, 1
special DrawWholeMapView
delay 20
applymovement 1, FallarborTown_ContestLobby_Movement_153A8C
@@ -92,7 +92,7 @@ FallarborTown_ContestLobby_EventScript_153A8E:: @ 8153A8E
end
FallarborTown_ContestLobby_EventScript_153A97:: @ 8153A97
- checkflag 270
+ checkflag FLAG_CONTEST_SKETCH_CREATED
goto_if_eq FallarborTown_ContestLobby_EventScript_153AA9
msgbox FallarborTown_ContestLobby_Text_177246, 2
end
@@ -115,7 +115,7 @@ FallarborTown_ContestLobby_EventScript_153ABB:: @ 8153ABB
FallarborTown_ContestLobby_EventScript_153AC2:: @ 8153AC2
lockall
special ShowBerryBlenderRecordWindow
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
diff --git a/data/scripts/maps/FallarborTown_House1.inc b/data/scripts/maps/FallarborTown_House1.inc
index 0228fe25d..17267f926 100644
--- a/data/scripts/maps/FallarborTown_House1.inc
+++ b/data/scripts/maps/FallarborTown_House1.inc
@@ -8,7 +8,7 @@ FallarborTown_House1_MapScript1_153BB4:: @ 8153BB4
FallarborTown_House1_EventScript_153BB5:: @ 8153BB5
lock
faceplayer
- checkflag 229
+ checkflag FLAG_RECEIVED_TM27
goto_if_eq FallarborTown_House1_EventScript_153C54
checkitem ITEM_METEORITE, 1
compare RESULT, 1
@@ -18,19 +18,19 @@ FallarborTown_House1_EventScript_153BB5:: @ 8153BB5
end
FallarborTown_House1_EventScript_153BDA:: @ 8153BDA
- checkflag 2
+ checkflag FLAG_TEMP_2
call_if 0, FallarborTown_House1_EventScript_153C2D
- checkflag 2
+ checkflag FLAG_TEMP_2
call_if 1, FallarborTown_House1_EventScript_153C3E
compare RESULT, 0
goto_if_eq FallarborTown_House1_EventScript_153C47
msgbox FallarborTown_House1_Text_1778C4, 4
- giveitem ITEM_TM27
+ giveitem_std ITEM_TM27
compare RESULT, 0
goto_if_eq FallarborTown_House1_EventScript_1A029B
setvar 0x8004, 280
call FallarborTown_House1_EventScript_1A067F
- setflag 229
+ setflag FLAG_RECEIVED_TM27
msgbox FallarborTown_House1_Text_177910, 4
release
end
@@ -45,7 +45,7 @@ FallarborTown_House1_EventScript_153C3E:: @ 8153C3E
return
FallarborTown_House1_EventScript_153C47:: @ 8153C47
- setflag 2
+ setflag FLAG_TEMP_2
msgbox FallarborTown_House1_Text_17797D, 4
release
end
@@ -58,9 +58,9 @@ FallarborTown_House1_EventScript_153C54:: @ 8153C54
FallarborTown_House1_EventScript_153C5E:: @ 8153C5E
lock
faceplayer
- checkflag 229
+ checkflag FLAG_RECEIVED_TM27
goto_if_eq FallarborTown_House1_EventScript_153C86
- checkflag 139
+ checkflag FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY
goto_if_eq FallarborTown_House1_EventScript_153C7C
msgbox FallarborTown_House1_Text_177A2B, 4
release
diff --git a/data/scripts/maps/FallarborTown_House2.inc b/data/scripts/maps/FallarborTown_House2.inc
index 3b215a697..001863d5c 100644
--- a/data/scripts/maps/FallarborTown_House2.inc
+++ b/data/scripts/maps/FallarborTown_House2.inc
@@ -5,10 +5,10 @@ FallarborTown_House2_EventScript_153C91:: @ 8153C91
lockall
applymovement 1, FallarborTown_House2_Movement_1A0839
waitmovement 0
- checkflag 1
+ checkflag FLAG_TEMP_1
goto_if_eq FallarborTown_House2_EventScript_153CB6
msgbox FallarborTown_House2_Text_177AF4, 4
- setflag 1
+ setflag FLAG_TEMP_1
goto FallarborTown_House2_EventScript_153CB6
end
@@ -43,7 +43,7 @@ FallarborTown_House2_EventScript_153D1A:: @ 8153D1A
compare 0x8004, 0
goto_if_eq FallarborTown_House2_EventScript_153CE4
msgbox FallarborTown_House2_Text_177CC3, 4
- removeitem ITEM_HEART_SCALE, 1
+ takeitem ITEM_HEART_SCALE, 1
goto FallarborTown_House2_EventScript_153D60
end
diff --git a/data/scripts/maps/FallarborTown_Mart.inc b/data/scripts/maps/FallarborTown_Mart.inc
index e6f715697..cfd239e8a 100644
--- a/data/scripts/maps/FallarborTown_Mart.inc
+++ b/data/scripts/maps/FallarborTown_Mart.inc
@@ -41,8 +41,8 @@ FallarborTown_Mart_EventScript_1539AE:: @ 81539AE
lock
faceplayer
waitse
- playpokecry SPECIES_SKITTY, 0
+ playmoncry SPECIES_SKITTY, 0
msgbox FallarborTown_Mart_Text_1770D3, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/FallarborTown_PokemonCenter_1F.inc b/data/scripts/maps/FallarborTown_PokemonCenter_1F.inc
index 5b1f1c948..dd6e83be3 100644
--- a/data/scripts/maps/FallarborTown_PokemonCenter_1F.inc
+++ b/data/scripts/maps/FallarborTown_PokemonCenter_1F.inc
@@ -3,7 +3,7 @@ FallarborTown_PokemonCenter_1F_MapScripts:: @ 8153AF3
.byte 0
FallarborTown_PokemonCenter_1F_MapScript1_153AF9:: @ 8153AF9
- sethealplace 17
+ setrespawn 17
call FallarborTown_PokemonCenter_1F_EventScript_19FD1B
end
@@ -11,7 +11,7 @@ FallarborTown_PokemonCenter_1F_EventScript_153B02:: @ 8153B02
setvar 0x800b, 1
call FallarborTown_PokemonCenter_1F_EventScript_19FD5B
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -48,7 +48,7 @@ FallarborTown_PokemonCenter_1F_EventScript_153B59:: @ 8153B59
FallarborTown_PokemonCenter_1F_EventScript_153B69:: @ 8153B69
playse 18
removeobject 4
- clearflag 870
+ clearflag FLAG_HIDE_LANETTE
release
end
diff --git a/data/scripts/maps/FieryPath.inc b/data/scripts/maps/FieryPath.inc
index bd984ad20..f0bd22071 100644
--- a/data/scripts/maps/FieryPath.inc
+++ b/data/scripts/maps/FieryPath.inc
@@ -3,5 +3,5 @@ FieryPath_MapScripts:: @ 815D318
.byte 0
FieryPath_MapScript1_15D31E:: @ 815D31E
- setflag 2122
+ setflag FLAG_LANDMARK_FIERY_PATH
end
diff --git a/data/scripts/maps/FortreeCity.inc b/data/scripts/maps/FortreeCity.inc
index 6ea89dcb7..239c1410d 100644
--- a/data/scripts/maps/FortreeCity.inc
+++ b/data/scripts/maps/FortreeCity.inc
@@ -4,11 +4,11 @@ FortreeCity_MapScripts:: @ 814C943
.byte 0
FortreeCity_MapScript1_14C94E:: @ 814C94E
- setflag 2074
+ setflag FLAG_VISITED_FORTREE_CITY
end
FortreeCity_MapScript1_14C952:: @ 814C952
- tileeffect 2
+ setstepcallback 2
end
FortreeCity_EventScript_14C955:: @ 814C955
@@ -18,7 +18,7 @@ FortreeCity_EventScript_14C955:: @ 814C955
FortreeCity_EventScript_14C95E:: @ 814C95E
lock
faceplayer
- checkflag 295
+ checkflag FLAG_KECLEON_FLED_FORTREE
goto_if_eq FortreeCity_EventScript_14C973
msgbox FortreeCity_Text_1675C2, 4
release
@@ -76,13 +76,13 @@ FortreeCity_EventScript_14C9E4:: @ 814C9E4
applymovement LAST_TALKED, FortreeCity_Movement_1A0662
waitmovement 0
waitse
- playpokecry SPECIES_KECLEON, 2
+ playmoncry SPECIES_KECLEON, 2
delay 40
- waitpokecry
+ waitmoncry
applymovement LAST_TALKED, FortreeCity_Movement_14CA13
waitmovement 0
removeobject LAST_TALKED
- setflag 295
+ setflag FLAG_KECLEON_FLED_FORTREE
release
end
diff --git a/data/scripts/maps/FortreeCity_DecorationShop.inc b/data/scripts/maps/FortreeCity_DecorationShop.inc
index fca20b866..56a360708 100644
--- a/data/scripts/maps/FortreeCity_DecorationShop.inc
+++ b/data/scripts/maps/FortreeCity_DecorationShop.inc
@@ -14,7 +14,7 @@ FortreeCity_DecorationShop_EventScript_15826A:: @ 815826A
faceplayer
message FortreeCity_DecorationShop_Text_1A0BE4
waitmessage
- pokemartdecor FortreeCity_DecorationShop_Decorations1
+ pokemartdecoration FortreeCity_DecorationShop_Decorations1
msgbox FortreeCity_DecorationShop_Text_1A0C02, 4
release
end
@@ -38,7 +38,7 @@ FortreeCity_DecorationShop_EventScript_158298:: @ 8158298
faceplayer
message FortreeCity_DecorationShop_Text_1A0BE4
waitmessage
- pokemartdecor FortreeCity_DecorationShop_Decorations2
+ pokemartdecoration FortreeCity_DecorationShop_Decorations2
msgbox FortreeCity_DecorationShop_Text_1A0C02, 4
release
end
diff --git a/data/scripts/maps/FortreeCity_Gym.inc b/data/scripts/maps/FortreeCity_Gym.inc
index 7309be0bb..a0eb6186a 100644
--- a/data/scripts/maps/FortreeCity_Gym.inc
+++ b/data/scripts/maps/FortreeCity_Gym.inc
@@ -17,7 +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 170
+ checkflag FLAG_RECEIVED_TM40
goto_if 0, FortreeCity_Gym_EventScript_157F3E
msgbox FortreeCity_Gym_Text_185F98, 4
release
@@ -28,19 +28,19 @@ FortreeCity_Gym_EventScript_157F15:: @ 8157F15
waitmessage
call FortreeCity_Gym_EventScript_1A02C5
msgbox FortreeCity_Gym_Text_185E73, 4
- setflag 1225
- setflag 2060
+ setflag FLAG_DEFEATED_FORTREE_GYM
+ setflag FLAG_BADGE06_GET
setvar 0x8008, 6
call FortreeCity_Gym_EventScript_1A01C0
goto FortreeCity_Gym_EventScript_157F3E
end
FortreeCity_Gym_EventScript_157F3E:: @ 8157F3E
- giveitem ITEM_TM40
+ giveitem_std ITEM_TM40
compare RESULT, 0
goto_if_eq FortreeCity_Gym_EventScript_1A029B
msgbox FortreeCity_Gym_Text_185F4A, 4
- setflag 170
+ setflag FLAG_RECEIVED_TM40
release
end
@@ -67,7 +67,7 @@ FortreeCity_Gym_EventScript_157FA7:: @ 8157FA7
FortreeCity_Gym_EventScript_157FBE:: @ 8157FBE
lock
faceplayer
- checkflag 1225
+ checkflag FLAG_DEFEATED_FORTREE_GYM
goto_if_eq FortreeCity_Gym_EventScript_157FD3
msgbox FortreeCity_Gym_Text_18589C, 4
release
@@ -80,14 +80,14 @@ FortreeCity_Gym_EventScript_157FD3:: @ 8157FD3
FortreeCity_Gym_EventScript_157FDD:: @ 8157FDD
lockall
- checkflag 2060
+ checkflag FLAG_BADGE06_GET
goto_if_eq FortreeCity_Gym_EventScript_157FFD
goto FortreeCity_Gym_EventScript_158007
end
FortreeCity_Gym_EventScript_157FED:: @ 8157FED
lockall
- checkflag 2060
+ checkflag FLAG_BADGE06_GET
goto_if_eq 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 7b7ef0b2e..14b9b2c31 100644
--- a/data/scripts/maps/FortreeCity_House1.inc
+++ b/data/scripts/maps/FortreeCity_House1.inc
@@ -4,7 +4,7 @@ FortreeCity_House1_MapScripts:: @ 8157E12
FortreeCity_House1_EventScript_157E13:: @ 8157E13
lock
faceplayer
- checkflag 155
+ checkflag FLAG_FORTREE_NPC_TRADE_COMPLETED
goto_if_eq FortreeCity_House1_EventScript_157EAD
setvar 0x8008, 1
copyvar 0x8004, 0x8008
@@ -28,9 +28,9 @@ FortreeCity_House1_EventScript_157E13:: @ 8157E13
special sub_804DB68
special sub_804E174
waitstate
- getspeciesname 0, 0x8009
+ bufferspeciesname 0, 0x8009
msgbox FortreeCity_House1_Text_1856F7, 4
- setflag 155
+ setflag FLAG_FORTREE_NPC_TRADE_COMPLETED
release
end
@@ -40,7 +40,7 @@ FortreeCity_House1_EventScript_157E95:: @ 8157E95
end
FortreeCity_House1_EventScript_157E9F:: @ 8157E9F
- getspeciesname 0, 0x8009
+ bufferspeciesname 0, 0x8009
msgbox FortreeCity_House1_Text_185737, 4
release
end
@@ -58,8 +58,8 @@ FortreeCity_House1_EventScript_157EC0:: @ 8157EC0
lock
faceplayer
waitse
- playpokecry SPECIES_ZIGZAGOON, 0
+ playmoncry SPECIES_ZIGZAGOON, 0
msgbox FortreeCity_House1_Text_185888, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/FortreeCity_House2.inc b/data/scripts/maps/FortreeCity_House2.inc
index f210dd3ac..ae70b8644 100644
--- a/data/scripts/maps/FortreeCity_House2.inc
+++ b/data/scripts/maps/FortreeCity_House2.inc
@@ -4,9 +4,9 @@ FortreeCity_House2_MapScripts:: @ 81580B3
FortreeCity_House2_EventScript_1580B4:: @ 81580B4
lock
faceplayer
- checkflag 264
+ checkflag FLAG_RECEIVED_TM10
goto_if_eq FortreeCity_House2_EventScript_158157
- checkflag 118
+ checkflag FLAG_MET_HIDDEN_POWER_GIVER
call_if 0, FortreeCity_House2_EventScript_15814B
msgbox FortreeCity_House2_Text_186360, 4
multichoice 21, 8, 54, 1
@@ -21,17 +21,17 @@ FortreeCity_House2_EventScript_1580B4:: @ 81580B4
switch RESULT
case 0, FortreeCity_House2_EventScript_158161
msgbox FortreeCity_House2_Text_1864C6, 4
- giveitem ITEM_TM10
+ giveitem_std ITEM_TM10
compare RESULT, 0
goto_if_eq FortreeCity_House2_EventScript_1A029B
- setflag 264
+ setflag FLAG_RECEIVED_TM10
msgbox FortreeCity_House2_Text_18652F, 4
release
end
FortreeCity_House2_EventScript_15814B:: @ 815814B
msgbox FortreeCity_House2_Text_186306, 4
- setflag 118
+ setflag FLAG_MET_HIDDEN_POWER_GIVER
return
FortreeCity_House2_EventScript_158157:: @ 8158157
diff --git a/data/scripts/maps/FortreeCity_House4.inc b/data/scripts/maps/FortreeCity_House4.inc
index b261e14fb..1b1b41877 100644
--- a/data/scripts/maps/FortreeCity_House4.inc
+++ b/data/scripts/maps/FortreeCity_House4.inc
@@ -7,16 +7,16 @@ FortreeCity_House4_EventScript_15817F:: @ 815817F
FortreeCity_House4_EventScript_158188:: @ 8158188
lockall
- checkflag 223
+ checkflag FLAG_RECEIVED_MENTAL_HERB
goto_if_eq FortreeCity_House4_EventScript_158204
- checkflag 224
+ checkflag FLAG_WINGULL_DELIVERED_MAIL
goto_if_eq FortreeCity_House4_EventScript_1581D6
- checkflag 222
+ checkflag FLAG_WINGULL_SENT_ON_ERRAND
goto_if_eq FortreeCity_House4_EventScript_1581C2
msgbox FortreeCity_House4_Text_186835, 4
closemessage
- setflag 222
- clearflag 934
+ setflag FLAG_WINGULL_SENT_ON_ERRAND
+ clearflag FLAG_HIDE_WINGULL_MOSSDEEP_HOUSE
applymovement 3, FortreeCity_House4_Movement_158218
waitmovement 0
removeobject 3
@@ -34,10 +34,10 @@ FortreeCity_House4_EventScript_1581D6:: @ 81581D6
applymovement LAST_TALKED, FortreeCity_House4_Movement_1A0839
waitmovement 0
msgbox FortreeCity_House4_Text_186881, 4
- giveitem ITEM_MENTAL_HERB
+ giveitem_std ITEM_MENTAL_HERB
compare RESULT, 0
goto_if_eq FortreeCity_House4_EventScript_1A029B
- setflag 223
+ setflag FLAG_RECEIVED_MENTAL_HERB
releaseall
end
@@ -60,8 +60,8 @@ FortreeCity_House4_EventScript_15821E:: @ 815821E
lock
faceplayer
waitse
- playpokecry SPECIES_WINGULL, 0
+ playmoncry SPECIES_WINGULL, 0
msgbox FortreeCity_House4_Text_18695C, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/FortreeCity_House5.inc b/data/scripts/maps/FortreeCity_House5.inc
index fe10b53b0..888ebe0e2 100644
--- a/data/scripts/maps/FortreeCity_House5.inc
+++ b/data/scripts/maps/FortreeCity_House5.inc
@@ -13,8 +13,8 @@ FortreeCity_House5_EventScript_158244:: @ 8158244
lock
faceplayer
waitse
- playpokecry SPECIES_ZIGZAGOON, 0
+ playmoncry SPECIES_ZIGZAGOON, 0
msgbox FortreeCity_House5_Text_186A4F, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/FortreeCity_PokemonCenter_1F.inc b/data/scripts/maps/FortreeCity_PokemonCenter_1F.inc
index 5268cbeed..b82927be1 100644
--- a/data/scripts/maps/FortreeCity_PokemonCenter_1F.inc
+++ b/data/scripts/maps/FortreeCity_PokemonCenter_1F.inc
@@ -3,14 +3,14 @@ FortreeCity_PokemonCenter_1F_MapScripts:: @ 8158011
.byte 0
FortreeCity_PokemonCenter_1F_MapScript1_158017:: @ 8158017
- sethealplace 7
+ setrespawn 7
end
FortreeCity_PokemonCenter_1F_EventScript_15801B:: @ 815801B
setvar 0x800b, 1
call FortreeCity_PokemonCenter_1F_EventScript_19FD5B
waitmessage
- waitbutton
+ waitbuttonpress
release
end
diff --git a/data/scripts/maps/GraniteCave_1F.inc b/data/scripts/maps/GraniteCave_1F.inc
index f389a774e..33296e510 100644
--- a/data/scripts/maps/GraniteCave_1F.inc
+++ b/data/scripts/maps/GraniteCave_1F.inc
@@ -4,11 +4,11 @@ GraniteCave_1F_MapScripts:: @ 815CBA6
GraniteCave_1F_EventScript_15CBA7:: @ 815CBA7
lock
faceplayer
- checkflag 109
+ checkflag FLAG_RECEIVED_HM05
goto_if_eq GraniteCave_1F_EventScript_15CBD3
msgbox GraniteCave_1F_Text_194917, 4
- giveitem ITEM_HM05
- setflag 109
+ giveitem_std ITEM_HM05
+ setflag FLAG_RECEIVED_HM05
msgbox GraniteCave_1F_Text_194A3E, 4
release
end
diff --git a/data/scripts/maps/GraniteCave_B1F.inc b/data/scripts/maps/GraniteCave_B1F.inc
index aa8d705c7..c6be3feca 100644
--- a/data/scripts/maps/GraniteCave_B1F.inc
+++ b/data/scripts/maps/GraniteCave_B1F.inc
@@ -5,6 +5,6 @@ GraniteCave_B1F_MapScripts:: @ 815CBDD
.byte 0
GraniteCave_B1F_MapScript1_15CBED:: @ 815CBED
- tileeffect 7
- setholewarp GraniteCave_B2F, 255, 0, 0
+ setstepcallback 7
+ setholewarp MAP_GRANITE_CAVE_B2F, 255, 0, 0
end
diff --git a/data/scripts/maps/GraniteCave_StevensRoom.inc b/data/scripts/maps/GraniteCave_StevensRoom.inc
index 070276e58..344ccd479 100644
--- a/data/scripts/maps/GraniteCave_StevensRoom.inc
+++ b/data/scripts/maps/GraniteCave_StevensRoom.inc
@@ -5,11 +5,11 @@ GraniteCave_StevensRoom_EventScript_15CBFA:: @ 815CBFA
lock
faceplayer
msgbox GraniteCave_StevensRoom_Text_194AE5, 4
- setvar 0x8004, 274
+ setvar 0x8004, ITEM_LETTER
call GraniteCave_StevensRoom_EventScript_1A067F
- setflag 189
+ setflag FLAG_DELIVERED_STEVEN_LETTER
msgbox GraniteCave_StevensRoom_Text_194BDD, 4
- giveitem ITEM_TM47
+ giveitem_std ITEM_TM47
compare RESULT, 0
call_if 1, GraniteCave_StevensRoom_EventScript_15CC83
msgbox GraniteCave_StevensRoom_Text_194C8D, 4
diff --git a/data/scripts/maps/InsideOfTruck.inc b/data/scripts/maps/InsideOfTruck.inc
index fc2930aa5..18cfb904d 100644
--- a/data/scripts/maps/InsideOfTruck.inc
+++ b/data/scripts/maps/InsideOfTruck.inc
@@ -4,13 +4,13 @@ InsideOfTruck_MapScripts:: @ 815FBFF
.byte 0
InsideOfTruck_MapScript1_15FC0A:: @ 815FC0A
- setmaptile 4, 1, 520, 0
- setmaptile 4, 2, 528, 0
- setmaptile 4, 3, 536, 0
+ setmetatile 4, 1, 520, 0
+ setmetatile 4, 2, 528, 0
+ setmetatile 4, 3, 536, 0
end
InsideOfTruck_MapScript1_15FC26:: @ 815FC26
- tileeffect 5
+ setstepcallback 5
end
InsideOfTruck_EventScript_15FC29:: @ 815FC29
@@ -24,26 +24,26 @@ InsideOfTruck_EventScript_15FC29:: @ 815FC29
end
InsideOfTruck_EventScript_15FC45:: @ 815FC45
- sethealplace 1
+ setrespawn 1
setvar 0x4092, 1
- setflag 759
- setflag 762
- setflag 784
- setflag 760
+ setflag FLAG_HIDE_MAY_MOM_DOWNSTAIRS
+ setflag FLAG_HIDE_MOVING_TRUCK_MAY
+ setflag FLAG_HIDE_BRENDAN_MOM
+ setflag FLAG_HIDE_BRENDAN_UPSTAIRS
setvar 0x408c, 1
- setdynamicwarp LittlerootTown, 255, 3, 10
+ setdynamicwarp MAP_LITTLEROOT_TOWN, 255, 3, 10
releaseall
end
InsideOfTruck_EventScript_15FC68:: @ 815FC68
- sethealplace 2
+ setrespawn 2
setvar 0x4092, 2
- setflag 758
- setflag 761
- setflag 785
- setflag 722
+ setflag FLAG_HIDE_BRENDAN_MOM_DOWNSTAIRS
+ setflag FLAG_HIDE_MOVING_TRUCK_BRENDAN
+ setflag FLAG_HIDE_MAY_MOM
+ setflag FLAG_HIDE_MAY_UPSTAIRS
setvar 0x4082, 1
- setdynamicwarp LittlerootTown, 255, 12, 10
+ setdynamicwarp MAP_LITTLEROOT_TOWN, 255, 12, 10
releaseall
end
diff --git a/data/scripts/maps/IslandCave.inc b/data/scripts/maps/IslandCave.inc
index 75399bde8..dbc71b6bb 100644
--- a/data/scripts/maps/IslandCave.inc
+++ b/data/scripts/maps/IslandCave.inc
@@ -5,7 +5,7 @@ IslandCave_MapScripts:: @ 815EEB6
.byte 0
IslandCave_MapScript1_15EEC6:: @ 815EEC6
- checkflag 2145
+ checkflag FLAG_SYS_CTRL_OBJ_DELETE
call_if 1, IslandCave_EventScript_15EED0
end
@@ -14,38 +14,38 @@ IslandCave_EventScript_15EED0:: @ 815EED0
return
IslandCave_MapScript1_15EED4:: @ 815EED4
- checkflag 2129
+ checkflag FLAG_SYS_BRAILLE_WAIT
call_if 0, IslandCave_EventScript_15EEDE
end
IslandCave_EventScript_15EEDE:: @ 815EEDE
- setmaptile 7, 19, 553, 1
- setmaptile 8, 19, 553, 1
- setmaptile 9, 19, 553, 1
- setmaptile 7, 20, 565, 1
- setmaptile 8, 20, 565, 1
- setmaptile 9, 20, 565, 1
+ setmetatile 7, 19, 553, 1
+ setmetatile 8, 19, 553, 1
+ setmetatile 9, 19, 553, 1
+ setmetatile 7, 20, 565, 1
+ setmetatile 8, 20, 565, 1
+ setmetatile 9, 20, 565, 1
return
IslandCave_MapScript1_15EF15:: @ 815EF15
- setflag 2133
+ setflag FLAG_LANDMARK_ISLAND_CAVE
end
S_OpenRegiceChamber:: @ 815EF19
- setmaptile 7, 19, 554, 1
- setmaptile 8, 19, 555, 1
- setmaptile 9, 19, 556, 1
- setmaptile 7, 20, 562, 1
- setmaptile 8, 20, 563, 0
- setmaptile 9, 20, 564, 1
+ setmetatile 7, 19, 554, 1
+ setmetatile 8, 19, 555, 1
+ setmetatile 9, 19, 556, 1
+ setmetatile 7, 20, 562, 1
+ setmetatile 8, 20, 563, 0
+ setmetatile 9, 20, 564, 1
special DrawWholeMapView
playse SE_BAN
- setflag 2129
+ setflag FLAG_SYS_BRAILLE_WAIT
end
IslandCave_EventScript_15EF59:: @ 815EF59
lockall
- checkflag 2129
+ checkflag FLAG_SYS_BRAILLE_WAIT
goto_if_eq IslandCave_EventScript_15EF72
braillemessage IslandCave_Braille_1C54FC
special DoBrailleWait
@@ -61,7 +61,7 @@ IslandCave_EventScript_15EF72:: @ 815EF72
IslandCave_EventScript_15EF7C:: @ 815EF7C
lockall
braillemessage IslandCave_Braille_1C54FC
- checkflag 2129
+ checkflag FLAG_SYS_BRAILLE_WAIT
goto_if_eq IslandCave_EventScript_15EF95
special DoBrailleWait
waitstate
@@ -69,7 +69,7 @@ IslandCave_EventScript_15EF7C:: @ 815EF7C
end
IslandCave_EventScript_15EF95:: @ 815EF95
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -78,14 +78,14 @@ IslandCave_EventScript_15EF9D:: @ 815EF9D
lock
faceplayer
waitse
- playpokecry SPECIES_REGICE, 2
+ playmoncry SPECIES_REGICE, 2
delay 40
- waitpokecry
+ waitmoncry
setwildbattle SPECIES_REGICE, 40, ITEM_NONE
- setflag 936
- setflag 2145
+ setflag FLAG_HIDE_REGICE
+ setflag FLAG_SYS_CTRL_OBJ_DELETE
special ScrSpecial_StartRegiBattle
waitstate
- clearflag 2145
+ clearflag FLAG_SYS_CTRL_OBJ_DELETE
release
end
diff --git a/data/scripts/maps/JaggedPass.inc b/data/scripts/maps/JaggedPass.inc
index 6f910d0ad..c7efee318 100644
--- a/data/scripts/maps/JaggedPass.inc
+++ b/data/scripts/maps/JaggedPass.inc
@@ -4,7 +4,7 @@ JaggedPass_MapScripts:: @ 815D266
.byte 0
JaggedPass_MapScript1_15D271:: @ 815D271
- tileeffect 1
+ setstepcallback 1
end
JaggedPass_MapScript1_15D274:: @ 815D274
diff --git a/data/scripts/maps/LavaridgeTown.inc b/data/scripts/maps/LavaridgeTown.inc
index 5192176a7..8b4384ed8 100644
--- a/data/scripts/maps/LavaridgeTown.inc
+++ b/data/scripts/maps/LavaridgeTown.inc
@@ -4,8 +4,8 @@ LavaridgeTown_MapScripts:: @ 814E4A3
.byte 0
LavaridgeTown_MapScript1_14E4AE:: @ 814E4AE
- setflag 2066
- checkflag 139
+ setflag FLAG_VISITED_LAVARIDGE_TOWN
+ checkflag FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY
call_if 1, LavaridgeTown_EventScript_14E4DF
call LavaridgeTown_EventScript_1A014E
call LavaridgeTown_EventScript_1A0172
@@ -19,7 +19,7 @@ LavaridgeTown_EventScript_14E4D0:: @ 814E4D0
return
LavaridgeTown_EventScript_14E4DF:: @ 814E4DF
- clearflag 877
+ clearflag FLAG_HIDE_MT_CHIMNEY_PEOPLE
return
LavaridgeTown_MapScript2_14E4E3:: @ 814E4E3
@@ -83,16 +83,16 @@ LavaridgeTown_EventScript_14E575:: @ 814E575
LavaridgeTown_EventScript_14E5AB:: @ 814E5AB
msgbox LavaridgeTown_Text_16BDA4, 4
- giveitem ITEM_GO_GOGGLES
- setflag 221
+ giveitem_std ITEM_GO_GOGGLES
+ setflag FLAG_RECEIVED_GO_GOGGLES
msgbox LavaridgeTown_Text_16BE7D, 4
goto LavaridgeTown_EventScript_14E5F5
end
LavaridgeTown_EventScript_14E5D0:: @ 814E5D0
msgbox LavaridgeTown_Text_16BF92, 4
- giveitem ITEM_GO_GOGGLES
- setflag 221
+ giveitem_std ITEM_GO_GOGGLES
+ setflag FLAG_RECEIVED_GO_GOGGLES
msgbox LavaridgeTown_Text_16C020, 4
goto LavaridgeTown_EventScript_14E5F5
end
@@ -272,16 +272,16 @@ LavaridgeTown_EventScript_14E751:: @ 814E751
LavaridgeTown_EventScript_14E75A:: @ 814E75A
lock
faceplayer
- checkflag 266
+ checkflag FLAG_RECEIVED_LAVARIDGE_EGG
goto_if_eq LavaridgeTown_EventScript_14E79E
msgbox LavaridgeTown_Text_16C174, 5
compare RESULT, 0
goto_if_eq LavaridgeTown_EventScript_14E7B2
- countpokemon
+ getpartysize
compare RESULT, 6
goto_if_eq LavaridgeTown_EventScript_14E7A8
msgbox LavaridgeTown_Text_16C2B6, 4
- setflag 266
+ setflag FLAG_RECEIVED_LAVARIDGE_EGG
playfanfare 370
message LavaridgeTown_Text_16C2EA
waitfanfare
diff --git a/data/scripts/maps/LavaridgeTown_Gym_1F.inc b/data/scripts/maps/LavaridgeTown_Gym_1F.inc
index 2edffe9f0..9dd1ae59d 100644
--- a/data/scripts/maps/LavaridgeTown_Gym_1F.inc
+++ b/data/scripts/maps/LavaridgeTown_Gym_1F.inc
@@ -70,7 +70,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 168
+ checkflag FLAG_RECEIVED_TM50
goto_if 0, LavaridgeTown_Gym_1F_EventScript_1537A7
msgbox LavaridgeTown_Gym_1F_Text_176C4A, 4
release
@@ -81,24 +81,24 @@ LavaridgeTown_Gym_1F_EventScript_153766:: @ 8153766
waitmessage
call LavaridgeTown_Gym_1F_EventScript_1A02C5
msgbox LavaridgeTown_Gym_1F_Text_176A8C, 4
- setflag 1213
- setflag 2058
+ setflag FLAG_DEFEATED_LAVARIDGE_GYM
+ setflag FLAG_BADGE04_GET
addvar 0x4085, 1
compare 0x4085, 6
call_if 1, LavaridgeTown_Gym_1F_EventScript_1A00FB
setvar 0x8008, 4
call LavaridgeTown_Gym_1F_EventScript_1A01C0
- setflag 806
+ setflag FLAG_HIDE_WALLY_WANDAS_HOUSE
setvar 0x4053, 1
goto LavaridgeTown_Gym_1F_EventScript_1537A7
end
LavaridgeTown_Gym_1F_EventScript_1537A7:: @ 81537A7
- giveitem ITEM_TM50
+ giveitem_std ITEM_TM50
compare RESULT, 0
goto_if_eq LavaridgeTown_Gym_1F_EventScript_1A029B
msgbox LavaridgeTown_Gym_1F_Text_176B8F, 4
- setflag 168
+ setflag FLAG_RECEIVED_TM50
release
end
@@ -135,7 +135,7 @@ LavaridgeTown_Gym_1F_EventScript_15383E:: @ 815383E
LavaridgeTown_Gym_1F_EventScript_153859:: @ 8153859
lock
faceplayer
- checkflag 1213
+ checkflag FLAG_DEFEATED_LAVARIDGE_GYM
goto_if_eq LavaridgeTown_Gym_1F_EventScript_15386E
msgbox LavaridgeTown_Gym_1F_Text_176312, 4
release
@@ -148,14 +148,14 @@ LavaridgeTown_Gym_1F_EventScript_15386E:: @ 815386E
LavaridgeTown_Gym_1F_EventScript_153878:: @ 8153878
lockall
- checkflag 2058
+ checkflag FLAG_BADGE04_GET
goto_if_eq LavaridgeTown_Gym_1F_EventScript_153898
goto LavaridgeTown_Gym_1F_EventScript_1538A2
end
LavaridgeTown_Gym_1F_EventScript_153888:: @ 8153888
lockall
- checkflag 2058
+ checkflag FLAG_BADGE04_GET
goto_if_eq 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 5ec6731d4..913734dd5 100644
--- a/data/scripts/maps/LavaridgeTown_HerbShop.inc
+++ b/data/scripts/maps/LavaridgeTown_HerbShop.inc
@@ -28,13 +28,13 @@ LavaridgeTown_HerbShop_EventScript_15364C:: @ 815364C
LavaridgeTown_HerbShop_EventScript_153655:: @ 8153655
lock
faceplayer
- checkflag 254
+ checkflag FLAG_RECEIVED_CHARCOAL
goto_if_eq LavaridgeTown_HerbShop_EventScript_153684
msgbox LavaridgeTown_HerbShop_Text_1761A2, 4
- giveitem ITEM_CHARCOAL
+ giveitem_std ITEM_CHARCOAL
compare RESULT, 0
goto_if_eq LavaridgeTown_HerbShop_EventScript_1A029B
- setflag 254
+ setflag FLAG_RECEIVED_CHARCOAL
release
end
diff --git a/data/scripts/maps/LavaridgeTown_House.inc b/data/scripts/maps/LavaridgeTown_House.inc
index c75cb9e4b..6fc14e0b6 100644
--- a/data/scripts/maps/LavaridgeTown_House.inc
+++ b/data/scripts/maps/LavaridgeTown_House.inc
@@ -9,8 +9,8 @@ LavaridgeTown_House_EventScript_1538B7:: @ 81538B7
lock
faceplayer
waitse
- playpokecry SPECIES_ZIGZAGOON, 0
+ playmoncry SPECIES_ZIGZAGOON, 0
msgbox LavaridgeTown_House_Text_176D94, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/LavaridgeTown_PokemonCenter_1F.inc b/data/scripts/maps/LavaridgeTown_PokemonCenter_1F.inc
index 9d0f31059..0efda9c1e 100644
--- a/data/scripts/maps/LavaridgeTown_PokemonCenter_1F.inc
+++ b/data/scripts/maps/LavaridgeTown_PokemonCenter_1F.inc
@@ -3,7 +3,7 @@ LavaridgeTown_PokemonCenter_1F_MapScripts:: @ 815390C
.byte 0
LavaridgeTown_PokemonCenter_1F_MapScript1_153912:: @ 8153912
- sethealplace 16
+ setrespawn 16
call LavaridgeTown_PokemonCenter_1F_EventScript_19FD1B
end
@@ -11,7 +11,7 @@ LavaridgeTown_PokemonCenter_1F_EventScript_15391B:: @ 815391B
setvar 0x800b, 1
call LavaridgeTown_PokemonCenter_1F_EventScript_19FD5B
waitmessage
- waitbutton
+ waitbuttonpress
release
end
diff --git a/data/scripts/maps/LilycoveCity.inc b/data/scripts/maps/LilycoveCity.inc
index cf8e2e07d..6494f2a6f 100644
--- a/data/scripts/maps/LilycoveCity.inc
+++ b/data/scripts/maps/LilycoveCity.inc
@@ -4,10 +4,10 @@ LilycoveCity_MapScripts:: @ 814CA15
.byte 0
LilycoveCity_MapScript1_14CA20:: @ 814CA20
- setflag 2075
+ setflag FLAG_VISITED_LILYCOVE_CITY
setvar 0x4086, 0
- setflag 802
- checkflag 2090
+ setflag FLAG_HIDE_CONTEST_REPORTER_LILYCOVE
+ checkflag FLAG_SYS_WEATHER_CTRL
call_if 1, LilycoveCity_EventScript_1A02C1
call LilycoveCity_EventScript_1A0196
call LilycoveCity_EventScript_1A014E
@@ -15,64 +15,64 @@ LilycoveCity_MapScript1_14CA20:: @ 814CA20
LilycoveCity_MapScript1_14CA3F:: @ 814CA3F
.ifndef SAPPHIRE
- setmaptile 69, 4, 169, 1
- setmaptile 70, 4, 680, 1
- setmaptile 71, 4, 681, 1
- setmaptile 72, 4, 682, 1
- setmaptile 69, 5, 145, 1
- setmaptile 70, 5, 688, 1
- setmaptile 71, 5, 689, 0
- setmaptile 72, 5, 690, 1
- setmaptile 69, 6, 446, 0
- setmaptile 70, 6, 447, 0
- setmaptile 71, 6, 368, 0
- setmaptile 72, 6, 445, 0
+ setmetatile 69, 4, 169, 1
+ setmetatile 70, 4, 680, 1
+ setmetatile 71, 4, 681, 1
+ setmetatile 72, 4, 682, 1
+ setmetatile 69, 5, 145, 1
+ setmetatile 70, 5, 688, 1
+ setmetatile 71, 5, 689, 0
+ setmetatile 72, 5, 690, 1
+ setmetatile 69, 6, 446, 0
+ setmetatile 70, 6, 447, 0
+ setmetatile 71, 6, 368, 0
+ setmetatile 72, 6, 445, 0
.endif
- checkflag 112
+ checkflag FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE
call_if 0, LilycoveCity_EventScript_14CABE
- checkflag 2061
+ checkflag FLAG_BADGE07_GET
call_if 1, LilycoveCity_EventScript_14CB2B
end
LilycoveCity_EventScript_14CABE:: @ 814CABE
- setmaptile 76, 12, 656, 1
- setmaptile 77, 12, 657, 1
- setmaptile 76, 13, 672, 1
- setmaptile 77, 13, 673, 1
- setmaptile 76, 14, 664, 1
- setmaptile 77, 14, 665, 1
- setmaptile 76, 15, 672, 1
- setmaptile 77, 15, 673, 1
- setmaptile 77, 16, 664, 1
- setmaptile 78, 16, 665, 1
- setmaptile 77, 17, 672, 1
- setmaptile 78, 17, 673, 1
+ setmetatile 76, 12, 656, 1
+ setmetatile 77, 12, 657, 1
+ setmetatile 76, 13, 672, 1
+ setmetatile 77, 13, 673, 1
+ setmetatile 76, 14, 664, 1
+ setmetatile 77, 14, 665, 1
+ setmetatile 76, 15, 672, 1
+ setmetatile 77, 15, 673, 1
+ setmetatile 77, 16, 664, 1
+ setmetatile 78, 16, 665, 1
+ setmetatile 77, 17, 672, 1
+ setmetatile 78, 17, 673, 1
return
LilycoveCity_EventScript_14CB2B:: @ 814CB2B
- setmaptile 69, 4, 169, 1
- setmaptile 70, 4, 169, 1
- setmaptile 71, 4, 169, 1
- setmaptile 72, 4, 169, 1
- setmaptile 69, 5, 145, 1
- setmaptile 70, 5, 145, 1
- setmaptile 71, 5, 145, 1
- setmaptile 72, 5, 145, 1
+ setmetatile 69, 4, 169, 1
+ setmetatile 70, 4, 169, 1
+ setmetatile 71, 4, 169, 1
+ setmetatile 72, 4, 169, 1
+ setmetatile 69, 5, 145, 1
+ setmetatile 70, 5, 145, 1
+ setmetatile 71, 5, 145, 1
+ setmetatile 72, 5, 145, 1
return
LilycoveCity_EventScript_14CB74:: @ 814CB74
lock
faceplayer
dodailyevents
- checkflag 2255
+ checkflag FLAG_DAILY_RECEIVED_BERRY_LILYCOVE
goto_if_eq LilycoveCity_EventScript_14CBB4
msgbox LilycoveCity_Text_1C5A7A, 4
random 10
- addvar RESULT, 133
- giveitem RESULT
+ addvar RESULT, ITEM_CHERI_BERRY
+ giveitem_std RESULT
compare RESULT, 0
goto_if_eq LilycoveCity_EventScript_1A029B
- setflag 2255
+ setflag FLAG_DAILY_RECEIVED_BERRY_LILYCOVE
msgbox LilycoveCity_Text_1C5B1D, 4
release
end
@@ -89,7 +89,7 @@ LilycoveCity_EventScript_14CBBE:: @ 814CBBE
LilycoveCity_EventScript_14CBC7:: @ 814CBC7
lock
faceplayer
- checkflag 2061
+ checkflag FLAG_BADGE07_GET
goto_if_eq LilycoveCity_EventScript_14CBDC
msgbox LilycoveCity_Text_168750, 4
release
@@ -107,7 +107,7 @@ LilycoveCity_EventScript_14CBE6:: @ 814CBE6
LilycoveCity_EventScript_14CBEF:: @ 814CBEF
lock
faceplayer
- checkflag 112
+ checkflag FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE
goto_if_eq LilycoveCity_EventScript_14CC04
msgbox LilycoveCity_Text_1688C1, 4
release
@@ -121,7 +121,7 @@ LilycoveCity_EventScript_14CC04:: @ 814CC04
LilycoveCity_EventScript_14CC0E:: @ 814CC0E
lock
faceplayer
- checkflag 112
+ checkflag FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE
goto_if_eq LilycoveCity_EventScript_14CC23
msgbox LilycoveCity_Text_1689BF, 4
release
@@ -147,7 +147,7 @@ LilycoveCity_EventScript_14CC3F:: @ 814CC3F
LilycoveCity_EventScript_14CC48:: @ 814CC48
lock
faceplayer
- checkflag 2061
+ checkflag FLAG_BADGE07_GET
goto_if_eq LilycoveCity_EventScript_14CC5D
msgbox LilycoveCity_Text_168C16, 4
release
@@ -186,7 +186,7 @@ LilycoveCity_EventScript_14CCA2:: @ 814CCA2
LilycoveCity_EventScript_14CCAC:: @ 814CCAC
lockall
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if_eq LilycoveCity_EventScript_14CCC0
msgbox LilycoveCity_Text_168EDA, 4
releaseall
@@ -211,7 +211,7 @@ LilycoveCity_EventScript_14CCDC:: @ 814CCDC
LilycoveCity_EventScript_14CCE5:: @ 814CCE5
lockall
- checkflag 218
+ checkflag FLAG_MET_WAILMER_TRAINER
goto_if_eq LilycoveCity_EventScript_14CD18
msgbox LilycoveCity_Text_16864A, 4
applymovement LAST_TALKED, LilycoveCity_Movement_1A0839
@@ -219,7 +219,7 @@ LilycoveCity_EventScript_14CCE5:: @ 814CCE5
msgbox LilycoveCity_Text_168675, 4
applymovement LAST_TALKED, LilycoveCity_Movement_1A083D
waitmovement 0
- setflag 218
+ setflag FLAG_MET_WAILMER_TRAINER
releaseall
end
@@ -256,9 +256,9 @@ LilycoveCity_EventScript_14CD46:: @ 814CD46
LilycoveCity_EventScript_14CD60:: @ 814CD60
playbgm 415, 1
- checkflag 286
+ checkflag FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE
call_if 1, LilycoveCity_EventScript_14CDB0
- checkflag 286
+ checkflag FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE
call_if 0, LilycoveCity_EventScript_14CDB9
compare RESULT, 0
goto_if_eq LilycoveCity_EventScript_14CDC2
@@ -278,7 +278,7 @@ LilycoveCity_EventScript_14CDB9:: @ 814CDB9
return
LilycoveCity_EventScript_14CDC2:: @ 814CDC2
- setflag 286
+ setflag FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE
msgbox LilycoveCity_Text_167AEB, 4
savebgm 0
fadedefaultbgm
@@ -287,9 +287,9 @@ LilycoveCity_EventScript_14CDC2:: @ 814CDC2
LilycoveCity_EventScript_14CDD3:: @ 814CDD3
playbgm 421, 1
- checkflag 286
+ checkflag FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE
call_if 1, LilycoveCity_EventScript_14CE23
- checkflag 286
+ checkflag FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE
call_if 0, LilycoveCity_EventScript_14CE2C
compare RESULT, 0
goto_if_eq LilycoveCity_EventScript_14CE35
@@ -309,7 +309,7 @@ LilycoveCity_EventScript_14CE2C:: @ 814CE2C
return
LilycoveCity_EventScript_14CE35:: @ 814CE35
- setflag 286
+ setflag FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE
msgbox LilycoveCity_Text_16802C, 4
savebgm 0
fadedefaultbgm
@@ -349,19 +349,19 @@ LilycoveCity_EventScript_14CE96:: @ 814CE96
LilycoveCity_EventScript_14CEA6:: @ 814CEA6
msgbox LilycoveCity_Text_167C6B, 4
setvar RESULT, 0
- checkflag 2060
+ checkflag FLAG_BADGE06_GET
call_if 1, LilycoveCity_EventScript_14CEDE
compare RESULT, 0
call_if 1, LilycoveCity_EventScript_14CEEE
compare RESULT, 1
call_if 1, LilycoveCity_EventScript_14CEF7
- clearflag 722
- clearflag 849
+ clearflag FLAG_HIDE_MAY_UPSTAIRS
+ clearflag FLAG_HIDE_MAY_PICHU_DOLL
goto LilycoveCity_EventScript_14CF6B
end
LilycoveCity_EventScript_14CEDE:: @ 814CEDE
- checkflag 2062
+ checkflag FLAG_BADGE08_GET
goto_if_eq LilycoveCity_EventScript_14CEE8
return
@@ -374,7 +374,7 @@ LilycoveCity_EventScript_14CEEE:: @ 814CEEE
return
LilycoveCity_EventScript_14CEF7:: @ 814CEF7
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if_eq LilycoveCity_EventScript_14CF09
msgbox LilycoveCity_Text_167DDD, 4
return
@@ -386,13 +386,13 @@ LilycoveCity_EventScript_14CF09:: @ 814CF09
LilycoveCity_EventScript_14CF12:: @ 814CF12
msgbox LilycoveCity_Text_168149, 4
setvar RESULT, 0
- checkflag 2060
+ checkflag FLAG_BADGE06_GET
call_if 1, LilycoveCity_EventScript_14CEDE
compare RESULT, 0
call_if 1, LilycoveCity_EventScript_14CF47
compare RESULT, 1
call_if 1, LilycoveCity_EventScript_14CF50
- clearflag 760
+ clearflag FLAG_HIDE_BRENDAN_UPSTAIRS
goto LilycoveCity_EventScript_14CF6B
end
@@ -401,7 +401,7 @@ LilycoveCity_EventScript_14CF47:: @ 814CF47
return
LilycoveCity_EventScript_14CF50:: @ 814CF50
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if_eq LilycoveCity_EventScript_14CF62
msgbox LilycoveCity_Text_168282, 4
return
@@ -415,13 +415,13 @@ LilycoveCity_EventScript_14CF6B:: @ 814CF6B
applymovement LAST_TALKED, LilycoveCity_Movement_1A0845
waitmovement 0
delay 50
- setfieldeffect 0, 1
+ setfieldeffectargument 0, 1
dofieldeffect 30
delay 15
removeobject LAST_TALKED
waitfieldeffect 30
savebgm 0
fadedefaultbgm
- setflag 292
+ setflag FLAG_MET_RIVAL_LILYCOVE
release
end
diff --git a/data/scripts/maps/LilycoveCity_ContestLobby.inc b/data/scripts/maps/LilycoveCity_ContestLobby.inc
index a8c32a4fe..c97a01989 100644
--- a/data/scripts/maps/LilycoveCity_ContestLobby.inc
+++ b/data/scripts/maps/LilycoveCity_ContestLobby.inc
@@ -13,7 +13,7 @@ LilycoveCity_ContestLobby_MapScript2_158877:: @ 8158877
.2byte 0
LilycoveCity_ContestLobby_EventScript_158889:: @ 8158889
- checkflag 775
+ checkflag FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR
goto_if_eq LilycoveCity_ContestLobby_EventScript_158898
setvar 0x4099, 0
end
@@ -97,23 +97,23 @@ LilycoveCity_ContestLobby_EventScript_158994:: @ 8158994
return
LilycoveCity_ContestLobby_EventScript_1589D6:: @ 81589D6
- clearflag 776
+ clearflag FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_LADY
return
LilycoveCity_ContestLobby_EventScript_1589DA:: @ 81589DA
- clearflag 777
+ clearflag FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_GIRL
return
LilycoveCity_ContestLobby_EventScript_1589DE:: @ 81589DE
- clearflag 778
+ clearflag FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_MAN
return
LilycoveCity_ContestLobby_EventScript_1589E2:: @ 81589E2
- clearflag 779
+ clearflag FLAG_HIDE_LILYCOVE_MUSEUM_PAINTER
return
LilycoveCity_ContestLobby_EventScript_1589E6:: @ 81589E6
- clearflag 780
+ clearflag FLAG_HIDE_LILYCOVE_MUSEUM_VISITORS
return
LilycoveCity_ContestLobby_EventScript_1589EA:: @ 81589EA
@@ -126,23 +126,23 @@ LilycoveCity_ContestLobby_EventScript_1589EA:: @ 81589EA
return
LilycoveCity_ContestLobby_EventScript_158A27:: @ 8158A27
- setflag 160
+ setflag FLAG_COOL_PAINTING_MADE
return
LilycoveCity_ContestLobby_EventScript_158A2B:: @ 8158A2B
- setflag 161
+ setflag FLAG_BEAUTY_PAINTING_MADE
return
LilycoveCity_ContestLobby_EventScript_158A2F:: @ 8158A2F
- setflag 162
+ setflag FLAG_CUTE_PAINTING_MADE
return
LilycoveCity_ContestLobby_EventScript_158A33:: @ 8158A33
- setflag 163
+ setflag FLAG_SMART_PAINTING_MADE
return
LilycoveCity_ContestLobby_EventScript_158A37:: @ 8158A37
- setflag 164
+ setflag FLAG_TOUGH_PAINTING_MADE
return
LilycoveCity_ContestLobby_Movement_158A3B:: @ 8158A3B
@@ -188,7 +188,7 @@ LilycoveCity_ContestLobby_Movement_158A52:: @ 8158A52
step_end
LilycoveCity_ContestLobby_EventScript_158A5B:: @ 8158A5B
- checkflag 775
+ checkflag FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR
goto_if_eq LilycoveCity_ContestLobby_EventScript_158A6A
setvar 0x4099, 0
end
@@ -307,11 +307,11 @@ LilycoveCity_ContestLobby_EventScript_158B85:: @ 8158B85
checkitem ITEM_CONTEST_PASS, 1
compare RESULT, 0
goto_if_eq LilycoveCity_ContestLobby_EventScript_158BBA
- checkflag 2
+ checkflag FLAG_TEMP_2
goto_if_eq LilycoveCity_ContestLobby_EventScript_158BAE
message LilycoveCity_ContestLobby_Text_18848C
waitmessage
- setflag 2
+ setflag FLAG_TEMP_2
goto LilycoveCity_ContestLobby_EventScript_158BF0
end
@@ -334,7 +334,7 @@ LilycoveCity_ContestLobby_EventScript_158BC4:: @ 8158BC4
erasebox 0, 0, 15, 9
compare RESULT, 0
goto_if_eq LilycoveCity_ContestLobby_EventScript_158C35
- setflag 3
+ setflag FLAG_TEMP_3
return
LilycoveCity_ContestLobby_EventScript_158BF0:: @ 8158BF0
@@ -354,13 +354,13 @@ LilycoveCity_ContestLobby_EventScript_158C27:: @ 8158C27
LilycoveCity_ContestLobby_EventScript_158C35:: @ 8158C35
msgbox LilycoveCity_ContestLobby_Text_188559, 4
releaseall
- clearflag 3
+ clearflag FLAG_TEMP_3
end
LilycoveCity_ContestLobby_EventScript_158C42:: @ 8158C42
msgbox LilycoveCity_ContestLobby_Text_188703, 4
setvar CONTEST_RANK, 0
- choosecontestpkmn
+ choosecontestmon
compare 0x8004, 255
goto_if_eq LilycoveCity_ContestLobby_EventScript_158CEA
special sub_80C43F4
@@ -402,7 +402,7 @@ LilycoveCity_ContestLobby_EventScript_158CC0:: @ 8158CC0
end
LilycoveCity_ContestLobby_EventScript_158CEA:: @ 8158CEA
- checkflag 3
+ checkflag FLAG_TEMP_3
call_if 0, LilycoveCity_ContestLobby_EventScript_158BC4
message LilycoveCity_ContestLobby_Text_1886DC
waitmessage
@@ -445,7 +445,7 @@ LilycoveCity_ContestLobby_EventScript_158D90:: @ 8158D90
msgbox LilycoveCity_ContestLobby_Text_18878D, 4
closemessage
releaseall
- clearflag 3
+ clearflag FLAG_TEMP_3
end
LilycoveCity_ContestLobby_EventScript_158DA1:: @ 8158DA1
@@ -453,7 +453,7 @@ LilycoveCity_ContestLobby_EventScript_158DA1:: @ 8158DA1
msgbox LilycoveCity_ContestLobby_Text_1887F4, 4
closemessage
releaseall
- clearflag 3
+ clearflag FLAG_TEMP_3
end
LilycoveCity_ContestLobby_EventScript_158DB2:: @ 8158DB2
@@ -461,7 +461,7 @@ LilycoveCity_ContestLobby_EventScript_158DB2:: @ 8158DB2
msgbox LilycoveCity_ContestLobby_Text_18881F, 4
closemessage
releaseall
- clearflag 3
+ clearflag FLAG_TEMP_3
end
LilycoveCity_ContestLobby_EventScript_158DC3:: @ 8158DC3
@@ -472,7 +472,7 @@ LilycoveCity_ContestLobby_EventScript_158DC3:: @ 8158DC3
LilycoveCity_ContestLobby_EventScript_158DD1:: @ 8158DD1
special sub_80C496C
addvar 0x8004, 1
- getnumberstring 1, 32772
+ buffernumberstring 1, 32772
messageautoscroll LilycoveCity_ContestLobby_Text_188845
waitmessage
addvar 0x8004, 65535
@@ -497,14 +497,14 @@ LilycoveCity_ContestLobby_EventScript_158E0B:: @ 8158E0B
applymovement 2, LilycoveCity_ContestLobby_Movement_158E9C
waitmovement 0
playse 71
- setmaptile 9, 2, 545, 1
- setmaptile 9, 3, 609, 1
+ setmetatile 9, 2, 545, 1
+ setmetatile 9, 3, 609, 1
special DrawWholeMapView
applymovement 2, LilycoveCity_ContestLobby_Movement_158EA0
waitmovement 0
playse 71
- setmaptile 9, 2, 721, 1
- setmaptile 9, 3, 729, 1
+ setmetatile 9, 2, 721, 1
+ setmetatile 9, 3, 729, 1
special DrawWholeMapView
delay 20
applymovement 2, LilycoveCity_ContestLobby_Movement_158EAE
@@ -583,13 +583,13 @@ LilycoveCity_ContestLobby_EventScript_158EB0:: @ 8158EB0
end
LilycoveCity_ContestLobby_EventScript_158EE8:: @ 8158EE8
- setflag 775
+ setflag FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR
copyvar 0x4094, 0x1
- additem ITEM_CONTEST_PASS, 1
+ giveitem ITEM_CONTEST_PASS, 1
setvar 0x800b, 8
setvar CONTEST_RANK, 3
setvar 0x4099, 1
- setflag 2107
+ setflag FLAG_SYS_RIBBON_GET
end
LilycoveCity_ContestLobby_EventScript_158F08:: @ 8158F08
@@ -602,31 +602,31 @@ LilycoveCity_ContestLobby_EventScript_158F08:: @ 8158F08
return
LilycoveCity_ContestLobby_EventScript_158F45:: @ 8158F45
- setwarp LinkContestRoom4, 255, 7, 5
+ setwarp MAP_LINK_CONTEST_ROOM4, 255, 7, 5
special sub_8081334
waitstate
return
LilycoveCity_ContestLobby_EventScript_158F52:: @ 8158F52
- setwarp LinkContestRoom2, 255, 7, 5
+ setwarp MAP_LINK_CONTEST_ROOM2, 255, 7, 5
special sub_8081334
waitstate
return
LilycoveCity_ContestLobby_EventScript_158F5F:: @ 8158F5F
- setwarp LinkContestRoom6, 255, 7, 5
+ setwarp MAP_LINK_CONTEST_ROOM6, 255, 7, 5
special sub_8081334
waitstate
return
LilycoveCity_ContestLobby_EventScript_158F6C:: @ 8158F6C
- setwarp LinkContestRoom5, 255, 7, 5
+ setwarp MAP_LINK_CONTEST_ROOM5, 255, 7, 5
special sub_8081334
waitstate
return
LilycoveCity_ContestLobby_EventScript_158F79:: @ 8158F79
- setwarp LinkContestRoom3, 255, 7, 5
+ setwarp MAP_LINK_CONTEST_ROOM3, 255, 7, 5
special sub_8081334
waitstate
return
@@ -636,14 +636,14 @@ LilycoveCity_ContestLobby_EventScript_158F86:: @ 8158F86
applymovement 1, LilycoveCity_ContestLobby_Movement_15900B
waitmovement 0
playse 71
- setmaptile 4, 2, 545, 1
- setmaptile 4, 3, 609, 1
+ setmetatile 4, 2, 545, 1
+ setmetatile 4, 3, 609, 1
special DrawWholeMapView
applymovement 1, LilycoveCity_ContestLobby_Movement_15900F
waitmovement 0
playse 71
- setmaptile 4, 2, 721, 1
- setmaptile 4, 3, 729, 1
+ setmetatile 4, 2, 721, 1
+ setmetatile 4, 3, 729, 1
special DrawWholeMapView
delay 20
applymovement 1, LilycoveCity_ContestLobby_Movement_15901C
@@ -707,7 +707,7 @@ LilycoveCity_ContestLobby_EventScript_15901E:: @ 815901E
end
LilycoveCity_ContestLobby_EventScript_159027:: @ 8159027
- checkflag 150
+ checkflag FLAG_RECEIVED_CONTEST_PASS
goto_if 0, LilycoveCity_ContestLobby_EventScript_159039
msgbox LilycoveCity_ContestLobby_Text_188DDA, 2
end
@@ -765,7 +765,7 @@ LilycoveCity_ContestLobby_EventScript_15908D:: @ 815908D
SlateportCity_ContestLobby_EventScript_15908D:: @ 815908D
lockall
special ShowBerryBlenderRecordWindow
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
diff --git a/data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.inc b/data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.inc
index 7b602b2c7..3e4caf100 100644
--- a/data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.inc
+++ b/data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.inc
@@ -3,9 +3,9 @@ LilycoveCity_CoveLilyMotel_1F_MapScripts:: @ 81582C4
LilycoveCity_CoveLilyMotel_1F_EventScript_1582C5:: @ 81582C5
lockall
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if_eq LilycoveCity_CoveLilyMotel_1F_EventScript_158326
- checkflag 2061
+ checkflag FLAG_BADGE07_GET
goto_if_eq LilycoveCity_CoveLilyMotel_1F_EventScript_1582FF
msgbox LilycoveCity_CoveLilyMotel_1F_Text_186B71, 4
applymovement 1, LilycoveCity_CoveLilyMotel_1F_Movement_1A0839
diff --git a/data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.inc b/data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.inc
index fd9ea8a58..00a10b655 100644
--- a/data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.inc
+++ b/data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.inc
@@ -4,9 +4,9 @@ LilycoveCity_CoveLilyMotel_2F_MapScripts:: @ 81583A0
LilycoveCity_CoveLilyMotel_2F_EventScript_1583A1:: @ 81583A1
lock
faceplayer
- checkflag 2
+ checkflag FLAG_TEMP_2
call_if 0, LilycoveCity_CoveLilyMotel_2F_EventScript_1583C7
- checkflag 2
+ checkflag FLAG_TEMP_2
call_if 1, LilycoveCity_CoveLilyMotel_2F_EventScript_1583DD
specialvar RESULT, sub_8090FC0
compare RESULT, 1
@@ -19,7 +19,7 @@ LilycoveCity_CoveLilyMotel_2F_EventScript_1583C7:: @ 81583C7
return
LilycoveCity_CoveLilyMotel_2F_EventScript_1583D0:: @ 81583D0
- setflag 2
+ setflag FLAG_TEMP_2
playfanfare 370
waitfanfare
goto LilycoveCity_CoveLilyMotel_2F_EventScript_1583DD
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStoreElevator.inc b/data/scripts/maps/LilycoveCity_DepartmentStoreElevator.inc
index 9d04d2e33..ca60bbc89 100644
--- a/data/scripts/maps/LilycoveCity_DepartmentStoreElevator.inc
+++ b/data/scripts/maps/LilycoveCity_DepartmentStoreElevator.inc
@@ -4,7 +4,7 @@ LilycoveCity_DepartmentStoreElevator_MapScripts:: @ 815A39B
LilycoveCity_DepartmentStoreElevator_EventScript_15A39C:: @ 815A39C
lock
faceplayer
- checkflag 2
+ checkflag FLAG_TEMP_2
call_if 0, LilycoveCity_DepartmentStoreElevator_EventScript_15A4CF
copyvar 0x8005, 0x4043
special sub_810E944
@@ -21,7 +21,7 @@ LilycoveCity_DepartmentStoreElevator_EventScript_15A39C:: @ 815A39C
end
LilycoveCity_DepartmentStoreElevator_EventScript_15A402:: @ 815A402
- setdynamicwarp LilycoveCity_DepartmentStore_1F, 255, 2, 1
+ setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F, 255, 2, 1
compare 0x4043, 0
goto_if_eq LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1
call LilycoveCity_DepartmentStoreElevator_EventScript_15A4B8
@@ -30,7 +30,7 @@ LilycoveCity_DepartmentStoreElevator_EventScript_15A402:: @ 815A402
end
LilycoveCity_DepartmentStoreElevator_EventScript_15A425:: @ 815A425
- setdynamicwarp LilycoveCity_DepartmentStore_2F, 255, 2, 1
+ setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F, 255, 2, 1
compare 0x4043, 1
goto_if_eq LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1
call LilycoveCity_DepartmentStoreElevator_EventScript_15A4B8
@@ -39,7 +39,7 @@ LilycoveCity_DepartmentStoreElevator_EventScript_15A425:: @ 815A425
end
LilycoveCity_DepartmentStoreElevator_EventScript_15A448:: @ 815A448
- setdynamicwarp LilycoveCity_DepartmentStore_3F, 255, 2, 1
+ setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F, 255, 2, 1
compare 0x4043, 2
goto_if_eq LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1
call LilycoveCity_DepartmentStoreElevator_EventScript_15A4B8
@@ -48,7 +48,7 @@ LilycoveCity_DepartmentStoreElevator_EventScript_15A448:: @ 815A448
end
LilycoveCity_DepartmentStoreElevator_EventScript_15A46B:: @ 815A46B
- setdynamicwarp LilycoveCity_DepartmentStore_4F, 255, 2, 1
+ setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F, 255, 2, 1
compare 0x4043, 3
goto_if_eq LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1
call LilycoveCity_DepartmentStoreElevator_EventScript_15A4B8
@@ -57,7 +57,7 @@ LilycoveCity_DepartmentStoreElevator_EventScript_15A46B:: @ 815A46B
end
LilycoveCity_DepartmentStoreElevator_EventScript_15A48E:: @ 815A48E
- setdynamicwarp LilycoveCity_DepartmentStore_5F, 255, 2, 1
+ setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F, 255, 2, 1
compare 0x4043, 4
goto_if_eq LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1
call LilycoveCity_DepartmentStoreElevator_EventScript_15A4B8
@@ -76,7 +76,7 @@ LilycoveCity_DepartmentStoreElevator_EventScript_15A4B8:: @ 815A4B8
waitmovement 0
special sub_810EBEC
waitstate
- setflag 2
+ setflag FLAG_TEMP_2
return
LilycoveCity_DepartmentStoreElevator_EventScript_15A4CF:: @ 815A4CF
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc b/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc
index 29914a9b5..2806b6125 100644
--- a/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc
+++ b/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc
@@ -11,11 +11,11 @@ LilycoveCity_DepartmentStoreRooftop_MapScript1_15A145:: @ 815A145
end
LilycoveCity_DepartmentStoreRooftop_EventScript_15A15F:: @ 815A15F
- clearflag 962
+ clearflag FLAG_HIDE_ROOFTOP_LADY_LILYCOVE_MART
return
LilycoveCity_DepartmentStoreRooftop_EventScript_15A163:: @ 815A163
- setflag 962
+ setflag FLAG_HIDE_ROOFTOP_LADY_LILYCOVE_MART
return
LilycoveCity_DepartmentStoreRooftop_EventScript_15A167:: @ 815A167
@@ -23,7 +23,7 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_15A167:: @ 815A167
faceplayer
message LilycoveCity_DepartmentStoreRooftop_Text_1A0BE4
waitmessage
- pokemartdecor LilycoveCity_DepartmentStoreRooftop_Decorations
+ pokemartdecoration LilycoveCity_DepartmentStoreRooftop_Decorations
msgbox LilycoveCity_DepartmentStoreRooftop_Text_1A0C02, 4
release
end
@@ -146,12 +146,12 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_15A267:: @ 815A267
call_if 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A260
updatemoneybox 0, 0
nop
- getitemname 0, 0x4000
+ bufferitemname 0, 0x4000
playse 106
msgbox LilycoveCity_DepartmentStoreRooftop_Text_18C75F, 4
- additem 0x4000, 1
- getitemname 1, 0x4000
- getstdstring 2, 14
+ giveitem 0x4000, 1
+ bufferitemname 1, 0x4000
+ bufferstdstring 2, 14
msgbox LilycoveCity_DepartmentStoreRooftop_Text_1A0C8C, 4
random 64
compare RESULT, 0
@@ -161,9 +161,9 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_15A267:: @ 815A267
goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_15A388
playse 106
msgbox LilycoveCity_DepartmentStoreRooftop_Text_18C780, 4
- additem 0x4000, 1
- getitemname 1, 0x4000
- getstdstring 2, 14
+ giveitem 0x4000, 1
+ bufferitemname 1, 0x4000
+ bufferstdstring 2, 14
msgbox LilycoveCity_DepartmentStoreRooftop_Text_1A0C8C, 4
random 64
compare RESULT, 0
@@ -173,9 +173,9 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_15A267:: @ 815A267
goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_15A388
playse 106
msgbox LilycoveCity_DepartmentStoreRooftop_Text_18C780, 4
- additem 0x4000, 1
- getitemname 1, 0x4000
- getstdstring 2, 14
+ giveitem 0x4000, 1
+ bufferitemname 1, 0x4000
+ bufferstdstring 2, 14
msgbox LilycoveCity_DepartmentStoreRooftop_Text_1A0C8C, 4
goto LilycoveCity_DepartmentStoreRooftop_EventScript_15A36E
end
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStore_1F.inc b/data/scripts/maps/LilycoveCity_DepartmentStore_1F.inc
index 7acd29523..dbfd79e98 100644
--- a/data/scripts/maps/LilycoveCity_DepartmentStore_1F.inc
+++ b/data/scripts/maps/LilycoveCity_DepartmentStore_1F.inc
@@ -11,12 +11,12 @@ LilycoveCity_DepartmentStore_1F_EventScript_159D5E:: @ 8159D5E
dodailyevents
compare 0x4045, 0
goto_if 5, LilycoveCity_DepartmentStore_1F_EventScript_159EB1
- checkflag 2250
+ 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_eq LilycoveCity_DepartmentStore_1F_EventScript_159E56
- setflag 2250
+ setflag FLAG_DAILY_PICKED_LOTTO_TICKET
message LilycoveCity_DepartmentStore_1F_Text_1C4CC6
waitmessage
special RetrieveLotteryNumber
@@ -40,7 +40,7 @@ LilycoveCity_DepartmentStore_1F_EventScript_159D5E:: @ 8159D5E
call_if 1, LilycoveCity_DepartmentStore_1F_EventScript_159E3A
compare 0x8006, 1
call_if 1, LilycoveCity_DepartmentStore_1F_EventScript_159E43
- getitemname 0, 0x8005
+ bufferitemname 0, 0x8005
compare 0x8004, 1
call_if 1, LilycoveCity_DepartmentStore_1F_EventScript_159E78
compare 0x8004, 2
@@ -49,7 +49,7 @@ LilycoveCity_DepartmentStore_1F_EventScript_159D5E:: @ 8159D5E
call_if 1, LilycoveCity_DepartmentStore_1F_EventScript_159E8A
compare 0x8004, 4
call_if 1, LilycoveCity_DepartmentStore_1F_EventScript_159E93
- giveitem 0x8005
+ giveitem_std 0x8005
compare RESULT, 0
goto_if_eq LilycoveCity_DepartmentStore_1F_EventScript_159E9C
goto LilycoveCity_DepartmentStore_1F_EventScript_159E6E
@@ -111,7 +111,7 @@ LilycoveCity_DepartmentStore_1F_EventScript_159EA7:: @ 8159EA7
LilycoveCity_DepartmentStore_1F_EventScript_159EB1:: @ 8159EB1
msgbox LilycoveCity_DepartmentStore_1F_Text_1C4FCC, 4
- giveitem 0x4045
+ giveitem_std 0x4045
compare RESULT, 0
goto_if_eq LilycoveCity_DepartmentStore_1F_EventScript_159EA7
setvar 0x4045, 0
@@ -134,9 +134,9 @@ LilycoveCity_DepartmentStore_1F_EventScript_159EF2:: @ 8159EF2
lock
faceplayer
waitse
- playpokecry SPECIES_AZUMARILL, 0
+ playmoncry SPECIES_AZUMARILL, 0
msgbox LilycoveCity_DepartmentStore_1F_Text_18C0C3, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStore_5F.inc b/data/scripts/maps/LilycoveCity_DepartmentStore_5F.inc
index 835a0f48d..184d3b816 100644
--- a/data/scripts/maps/LilycoveCity_DepartmentStore_5F.inc
+++ b/data/scripts/maps/LilycoveCity_DepartmentStore_5F.inc
@@ -6,7 +6,7 @@ LilycoveCity_DepartmentStore_5F_EventScript_15A061:: @ 815A061
faceplayer
message LilycoveCity_DepartmentStore_5F_Text_1A0BE4
waitmessage
- pokemartbp LilycoveCity_DepartmentStore_5F_Items1
+ pokemartdecoration2 LilycoveCity_DepartmentStore_5F_Items1
msgbox LilycoveCity_DepartmentStore_5F_Text_1A0C02, 4
release
end
@@ -34,7 +34,7 @@ LilycoveCity_DepartmentStore_5F_EventScript_15A094:: @ 815A094
faceplayer
message LilycoveCity_DepartmentStore_5F_Text_1A0BE4
waitmessage
- pokemartbp LilycoveCity_DepartmentStore_5F_Items2
+ pokemartdecoration2 LilycoveCity_DepartmentStore_5F_Items2
msgbox LilycoveCity_DepartmentStore_5F_Text_1A0C02, 4
release
end
@@ -59,7 +59,7 @@ LilycoveCity_DepartmentStore_5F_EventScript_15A0C2:: @ 815A0C2
faceplayer
message LilycoveCity_DepartmentStore_5F_Text_1A0BE4
waitmessage
- pokemartbp LilycoveCity_DepartmentStore_5F_Items3
+ pokemartdecoration2 LilycoveCity_DepartmentStore_5F_Items3
msgbox LilycoveCity_DepartmentStore_5F_Text_1A0C02, 4
release
end
@@ -84,7 +84,7 @@ LilycoveCity_DepartmentStore_5F_EventScript_15A0F2:: @ 815A0F2
faceplayer
message LilycoveCity_DepartmentStore_5F_Text_1A0BE4
waitmessage
- pokemartbp LilycoveCity_DepartmentStore_5F_Items4
+ pokemartdecoration2 LilycoveCity_DepartmentStore_5F_Items4
msgbox LilycoveCity_DepartmentStore_5F_Text_1A0C02, 4
release
end
diff --git a/data/scripts/maps/LilycoveCity_Harbor.inc b/data/scripts/maps/LilycoveCity_Harbor.inc
index 7e14db994..9687c73fe 100644
--- a/data/scripts/maps/LilycoveCity_Harbor.inc
+++ b/data/scripts/maps/LilycoveCity_Harbor.inc
@@ -3,7 +3,7 @@ LilycoveCity_Harbor_MapScripts:: @ 8159893
.byte 0
LilycoveCity_Harbor_MapScript1_159899:: @ 8159899
- setescapewarp LilycoveCity, 255, 12, 33
+ setescapewarp MAP_LILYCOVE_CITY, 255, 12, 33
end
LilycoveCity_Harbor_EventScript_1598A2:: @ 81598A2
@@ -16,7 +16,7 @@ LilycoveCity_Harbor_EventScript_1598A2:: @ 81598A2
end
LilycoveCity_Harbor_EventScript_1598BA:: @ 81598BA
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if_eq LilycoveCity_Harbor_EventScript_1598CD
msgbox LilycoveCity_Harbor_Text_18B306, 4
release
@@ -52,7 +52,7 @@ LilycoveCity_Harbor_EventScript_159933:: @ 8159933
goto_if_eq LilycoveCity_Harbor_EventScript_15997E
setvar 0x40b4, 5
call LilycoveCity_Harbor_EventScript_15998A
- warp SSTidalCorridor, 255, 1, 10
+ warp MAP_SS_TIDAL_CORRIDOR, 255, 1, 10
waitstate
release
end
@@ -62,7 +62,7 @@ LilycoveCity_Harbor_EventScript_15995B:: @ 815995B
compare RESULT, 0
goto_if_eq LilycoveCity_Harbor_EventScript_15997E
call LilycoveCity_Harbor_EventScript_15998A
- warp BattleTower_Outside, 255, 19, 23
+ warp MAP_BATTLE_TOWER_OUTSIDE, 255, 19, 23
waitstate
release
end
@@ -79,13 +79,13 @@ LilycoveCity_Harbor_EventScript_15998A:: @ 815998A
applymovement LAST_TALKED, LilycoveCity_Harbor_Movement_1A0841
waitmovement 0
delay 30
- hideobject LAST_TALKED, 13, 10
+ hideobjectat LAST_TALKED, MAP_LILYCOVE_CITY_HARBOR
compare FACING, 2
call_if 1, LilycoveCity_Harbor_EventScript_1599D9
compare FACING, 4
call_if 1, LilycoveCity_Harbor_EventScript_1599CE
delay 30
- hideobject 255, 0, 0
+ hideobjectat 255, MAP_PETALBURG_CITY
setvar 0x8004, 2
call LilycoveCity_Harbor_EventScript_1A040E
return
@@ -106,18 +106,18 @@ LilycoveCity_Harbor_EventScript_1599E4:: @ 81599E4
end
LilycoveCity_Harbor_EventScript_1599EE:: @ 81599EE
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, LilycoveCity_Harbor_EventScript_1598BA
- checkflag 206
+ checkflag FLAG_ECOUNTERED_LATIAS_OR_LATIOS
goto_if_eq LilycoveCity_Harbor_EventScript_1598BA
- checkflag 2131
+ checkflag FLAG_SYS_HAS_EON_TICKET
goto_if 0, LilycoveCity_Harbor_EventScript_1598BA
msgbox LilycoveCity_Harbor_Text_1C50F2, 4
closemessage
applymovement LAST_TALKED, LilycoveCity_Harbor_Movement_1A0841
waitmovement 0
delay 30
- hideobject LAST_TALKED, 13, 10
+ hideobjectat LAST_TALKED, MAP_LILYCOVE_CITY_HARBOR
delay 60
addobject 4
delay 30
@@ -134,11 +134,11 @@ LilycoveCity_Harbor_EventScript_1599EE:: @ 81599EE
compare FACING, 4
call_if 1, LilycoveCity_Harbor_EventScript_1599CE
delay 30
- hideobject 255, 0, 0
+ hideobjectat 255, MAP_PETALBURG_CITY
special ScrSpecial_HealPlayerParty
setvar 0x8004, 2
call LilycoveCity_Harbor_EventScript_1A040E
- warp SouthernIsland_Exterior, 255, 13, 22
+ warp MAP_SOUTHERN_ISLAND_EXTERIOR, 255, 13, 22
waitstate
release
end
@@ -159,7 +159,7 @@ LilycoveCity_Harbor_Movement_159A89:: @ 8159A89
LilycoveCity_Harbor_EventScript_159A8D:: @ 8159A8D
lock
faceplayer
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if_eq LilycoveCity_Harbor_EventScript_159AA2
msgbox LilycoveCity_Harbor_Text_18B504, 4
release
diff --git a/data/scripts/maps/LilycoveCity_House1.inc b/data/scripts/maps/LilycoveCity_House1.inc
index 4defe37b8..15535a122 100644
--- a/data/scripts/maps/LilycoveCity_House1.inc
+++ b/data/scripts/maps/LilycoveCity_House1.inc
@@ -9,8 +9,8 @@ LilycoveCity_House1_EventScript_159B8F:: @ 8159B8F
lock
faceplayer
waitse
- playpokecry SPECIES_KECLEON, 0
+ playmoncry SPECIES_KECLEON, 0
msgbox LilycoveCity_House1_Text_18B82B, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/LilycoveCity_House2.inc b/data/scripts/maps/LilycoveCity_House2.inc
index d3399f5ac..d0065c9e8 100644
--- a/data/scripts/maps/LilycoveCity_House2.inc
+++ b/data/scripts/maps/LilycoveCity_House2.inc
@@ -4,13 +4,13 @@ LilycoveCity_House2_MapScripts:: @ 8159BA2
LilycoveCity_House2_EventScript_159BA3:: @ 8159BA3
lock
faceplayer
- checkflag 234
+ checkflag FLAG_RECEIVED_TM44
goto_if_eq LilycoveCity_House2_EventScript_159BDA
msgbox LilycoveCity_House2_Text_18B83C, 4
- giveitem ITEM_TM44
+ giveitem_std ITEM_TM44
compare RESULT, 0
goto_if_eq LilycoveCity_House2_EventScript_1A029B
- setflag 234
+ setflag FLAG_RECEIVED_TM44
msgbox LilycoveCity_House2_Text_18B883, 4
release
end
diff --git a/data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.inc b/data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.inc
index 06e82d5f8..5d5b04114 100644
--- a/data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.inc
+++ b/data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.inc
@@ -49,7 +49,7 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_1584BD:: @ 81584BD
lockall
applymovement 255, LilycoveCity_LilycoveMuseum_1F_Movement_158504
waitmovement 0
- warp LilycoveCity_LilycoveMuseum_2F, 255, 11, 8
+ warp MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, 255, 11, 8
waitstate
end
@@ -57,7 +57,7 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_1584D2:: @ 81584D2
lockall
applymovement 255, LilycoveCity_LilycoveMuseum_1F_Movement_1584FE
waitmovement 0
- warp LilycoveCity_LilycoveMuseum_2F, 255, 11, 8
+ warp MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, 255, 11, 8
waitstate
end
@@ -65,7 +65,7 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_1584E7:: @ 81584E7
lockall
applymovement 255, LilycoveCity_LilycoveMuseum_1F_Movement_158501
waitmovement 0
- warp LilycoveCity_LilycoveMuseum_2F, 255, 11, 8
+ warp MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, 255, 11, 8
waitstate
end
diff --git a/data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.inc b/data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.inc
index a4599f14a..577805fb2 100644
--- a/data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.inc
+++ b/data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.inc
@@ -4,61 +4,61 @@ LilycoveCity_LilycoveMuseum_2F_MapScripts:: @ 81585AC
.byte 0
LilycoveCity_LilycoveMuseum_2F_MapScript1_1585B7:: @ 81585B7
- checkflag 160
+ checkflag FLAG_COOL_PAINTING_MADE
goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_1585FD
goto LilycoveCity_LilycoveMuseum_2F_EventScript_1585C6
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1585C6:: @ 81585C6
- checkflag 161
+ checkflag FLAG_BEAUTY_PAINTING_MADE
goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_158615
goto LilycoveCity_LilycoveMuseum_2F_EventScript_1585D5
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1585D5:: @ 81585D5
- checkflag 162
+ checkflag FLAG_CUTE_PAINTING_MADE
goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_15862D
goto LilycoveCity_LilycoveMuseum_2F_EventScript_1585E4
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1585E4:: @ 81585E4
- checkflag 163
+ checkflag FLAG_SMART_PAINTING_MADE
goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_158645
goto LilycoveCity_LilycoveMuseum_2F_EventScript_1585F3
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1585F3:: @ 81585F3
- checkflag 164
+ checkflag FLAG_TOUGH_PAINTING_MADE
goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_15865D
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1585FD:: @ 81585FD
- setmaptile 10, 6, 606, 1
- setmaptile 11, 6, 607, 1
+ setmetatile 10, 6, 606, 1
+ setmetatile 11, 6, 607, 1
goto LilycoveCity_LilycoveMuseum_2F_EventScript_1585C6
end
LilycoveCity_LilycoveMuseum_2F_EventScript_158615:: @ 8158615
- setmaptile 18, 6, 604, 1
- setmaptile 19, 6, 605, 1
+ setmetatile 18, 6, 604, 1
+ setmetatile 19, 6, 605, 1
goto LilycoveCity_LilycoveMuseum_2F_EventScript_1585D5
end
LilycoveCity_LilycoveMuseum_2F_EventScript_15862D:: @ 815862D
- setmaptile 14, 10, 608, 1
- setmaptile 15, 10, 609, 1
+ setmetatile 14, 10, 608, 1
+ setmetatile 15, 10, 609, 1
goto LilycoveCity_LilycoveMuseum_2F_EventScript_1585E4
end
LilycoveCity_LilycoveMuseum_2F_EventScript_158645:: @ 8158645
- setmaptile 6, 10, 602, 1
- setmaptile 7, 10, 603, 1
+ setmetatile 6, 10, 602, 1
+ setmetatile 7, 10, 603, 1
goto LilycoveCity_LilycoveMuseum_2F_EventScript_1585F3
end
LilycoveCity_LilycoveMuseum_2F_EventScript_15865D:: @ 815865D
- setmaptile 2, 6, 610, 1
- setmaptile 3, 6, 611, 1
+ setmetatile 2, 6, 610, 1
+ setmetatile 3, 6, 611, 1
end
LilycoveCity_LilycoveMuseum_2F_MapScript2_158670:: @ 8158670
@@ -96,7 +96,7 @@ LilycoveCity_LilycoveMuseum_2F_Movement_1586D5:: @ 81586D5
LilycoveCity_LilycoveMuseum_2F_EventScript_1586D8:: @ 81586D8
lockall
- checkflag 236
+ checkflag FLAG_RECEIVED_GLASS_ORNAMENT
goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_158793
specialvar 0x8004, sub_80C4D50
switch 0x8004
@@ -124,10 +124,10 @@ LilycoveCity_LilycoveMuseum_2F_EventScript_158735:: @ 8158735
LilycoveCity_LilycoveMuseum_2F_EventScript_15875C:: @ 815875C
applymovement 1, LilycoveCity_LilycoveMuseum_2F_Movement_1A0839
msgbox LilycoveCity_LilycoveMuseum_2F_Text_188120, 4
- givedecoration 44
+ givedecoration_std DECOR_GLASS_ORNAMENT
compare RESULT, 0
goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_158783
- setflag 236
+ setflag FLAG_RECEIVED_GLASS_ORNAMENT
closemessage
releaseall
end
@@ -146,35 +146,35 @@ LilycoveCity_LilycoveMuseum_2F_EventScript_158793:: @ 8158793
LilycoveCity_LilycoveMuseum_2F_EventScript_15879D:: @ 815879D
lockall
- checkflag 162
+ checkflag FLAG_CUTE_PAINTING_MADE
goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_15883C
msgbox LilycoveCity_LilycoveMuseum_2F_Text_188219, 3
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1587B0:: @ 81587B0
lockall
- checkflag 164
+ checkflag FLAG_TOUGH_PAINTING_MADE
goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_158858
msgbox LilycoveCity_LilycoveMuseum_2F_Text_18824C, 3
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1587C3:: @ 81587C3
lockall
- checkflag 160
+ checkflag FLAG_COOL_PAINTING_MADE
goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_158820
msgbox LilycoveCity_LilycoveMuseum_2F_Text_1882B4, 3
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1587D6:: @ 81587D6
lockall
- checkflag 161
+ checkflag FLAG_BEAUTY_PAINTING_MADE
goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_15882E
msgbox LilycoveCity_LilycoveMuseum_2F_Text_188281, 3
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1587E9:: @ 81587E9
lockall
- checkflag 163
+ checkflag FLAG_SMART_PAINTING_MADE
goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_15884A
msgbox LilycoveCity_LilycoveMuseum_2F_Text_1882E6, 3
end
diff --git a/data/scripts/maps/LilycoveCity_PokemonCenter_1F.inc b/data/scripts/maps/LilycoveCity_PokemonCenter_1F.inc
index 20b5c5f13..38428311b 100644
--- a/data/scripts/maps/LilycoveCity_PokemonCenter_1F.inc
+++ b/data/scripts/maps/LilycoveCity_PokemonCenter_1F.inc
@@ -3,14 +3,14 @@ LilycoveCity_PokemonCenter_1F_MapScripts:: @ 8159327
.byte 0
LilycoveCity_PokemonCenter_1F_MapScript1_15932D:: @ 815932D
- sethealplace 8
+ setrespawn 8
end
LilycoveCity_PokemonCenter_1F_EventScript_159331:: @ 8159331
setvar 0x800b, 1
call LilycoveCity_PokemonCenter_1F_EventScript_19FD5B
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -21,7 +21,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_15933F:: @ 815933F
LilycoveCity_PokemonCenter_1F_EventScript_159348:: @ 8159348
lock
faceplayer
- checkflag 2061
+ checkflag FLAG_BADGE07_GET
goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_15935D
msgbox LilycoveCity_PokemonCenter_1F_Text_18A048, 4
release
diff --git a/data/scripts/maps/LittlerootTown.inc b/data/scripts/maps/LittlerootTown.inc
index 220aeead7..13c18d51e 100644
--- a/data/scripts/maps/LittlerootTown.inc
+++ b/data/scripts/maps/LittlerootTown.inc
@@ -4,10 +4,10 @@ LittlerootTown_MapScripts:: @ 814D509
.byte 0
LittlerootTown_MapScript1_14D514:: @ 814D514
- setflag 2063
+ setflag FLAG_VISITED_LITTLEROOT_TOWN
compare 0x4092, 2
call_if 1, LittlerootTown_EventScript_14D57B
- checkflag 82
+ checkflag FLAG_RESCUED_BIRCH
call_if 0, LittlerootTown_EventScript_14D583
compare 0x4050, 3
call_if 1, LittlerootTown_EventScript_14D5A6
@@ -22,12 +22,12 @@ LittlerootTown_MapScript1_14D514:: @ 814D514
end
LittlerootTown_EventScript_14D563:: @ 814D563
- setflag 301
+ setflag FLAG_RIVAL_LEFT_FOR_ROUTE103
return
LittlerootTown_EventScript_14D567:: @ 814D567
setvar 0x40c7, 2
- setflag 979
+ setflag FLAG_HIDE_RIVAL_OLDALE_TOWN
return
LittlerootTown_EventScript_14D570:: @ 814D570
@@ -52,7 +52,7 @@ LittlerootTown_EventScript_14D59A:: @ 814D59A
return
LittlerootTown_EventScript_14D5A6:: @ 814D5A6
- clearflag 752
+ clearflag FLAG_HIDE_MOM_LITTLEROOT
setobjectmovementtype 4, 8
checkplayergender
compare RESULT, 0
@@ -80,8 +80,8 @@ LittlerootTown_EventScript_14D5EF:: @ 814D5EF
setvar 0x8004, 5
setvar 0x8005, 8
call LittlerootTown_EventScript_14D62B
- setflag 761
- warpsilent LittlerootTown_BrendansHouse_1F, 255, 8, 8
+ setflag FLAG_HIDE_MOVING_TRUCK_BRENDAN
+ warpsilent MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F, 255, 8, 8
waitstate
releaseall
end
@@ -91,8 +91,8 @@ LittlerootTown_EventScript_14D60D:: @ 814D60D
setvar 0x8004, 14
setvar 0x8005, 8
call LittlerootTown_EventScript_14D62B
- setflag 762
- warpsilent LittlerootTown_MaysHouse_1F, 255, 2, 8
+ setflag FLAG_HIDE_MOVING_TRUCK_MAY
+ warpsilent MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F, 255, 2, 8
waitstate
releaseall
end
@@ -122,12 +122,12 @@ LittlerootTown_EventScript_14D62B:: @ 814D62B
applymovement 4, LittlerootTown_Movement_14D6B5
applymovement 255, LittlerootTown_Movement_14D6BD
waitmovement 0
- setflag 752
+ setflag FLAG_HIDE_MOM_LITTLEROOT
setvar 0x4092, 3
- hideobject 255, 0, 0
+ hideobjectat 255, MAP_PETALBURG_CITY
closedoor 0x8004, 0x8005
waitdooranim
- clearflag 868
+ clearflag FLAG_HIDE_FAT_MAN_LITTLEROOT
clearflag 0x4000
return
@@ -187,9 +187,9 @@ LittlerootTown_EventScript_14D6D6:: @ 814D6D6
LittlerootTown_EventScript_14D6DF:: @ 814D6DF
lock
faceplayer
- checkflag 116
+ checkflag FLAG_ADVENTURE_STARTED
goto_if_eq LittlerootTown_EventScript_14D72F
- checkflag 82
+ checkflag FLAG_RESCUED_BIRCH
goto_if_eq LittlerootTown_EventScript_14D722
compare 0x4050, 0
goto_if 5, LittlerootTown_EventScript_14D708
@@ -599,7 +599,7 @@ LittlerootTown_EventScript_14DB46:: @ 814DB46
waitdooranim
applymovement 4, LittlerootTown_Movement_14DCE0
waitmovement 0
- hideobject 4, 0, 9
+ hideobjectat 4, MAP_LITTLEROOT_TOWN
closedoor 0x8009, 0x800a
waitdooranim
return
@@ -611,7 +611,7 @@ LittlerootTown_EventScript_14DB6C:: @ 814DB6C
waitdooranim
applymovement 4, LittlerootTown_Movement_14DCE0
waitmovement 0
- hideobject 4, 0, 9
+ hideobjectat 4, MAP_LITTLEROOT_TOWN
closedoor 0x8009, 0x800a
waitdooranim
return
@@ -623,7 +623,7 @@ LittlerootTown_EventScript_14DB92:: @ 814DB92
waitdooranim
applymovement 4, LittlerootTown_Movement_14DCE0
waitmovement 0
- hideobject 4, 0, 9
+ hideobjectat 4, MAP_LITTLEROOT_TOWN
closedoor 0x8009, 0x800a
waitdooranim
return
@@ -635,7 +635,7 @@ LittlerootTown_EventScript_14DBB8:: @ 814DBB8
waitdooranim
applymovement 4, LittlerootTown_Movement_14DCE0
waitmovement 0
- hideobject 4, 0, 9
+ hideobjectat 4, MAP_LITTLEROOT_TOWN
closedoor 0x8009, 0x800a
waitdooranim
return
@@ -647,7 +647,7 @@ LittlerootTown_EventScript_14DBDE:: @ 814DBDE
waitdooranim
applymovement 4, LittlerootTown_Movement_14DCE0
waitmovement 0
- hideobject 4, 0, 9
+ hideobjectat 4, MAP_LITTLEROOT_TOWN
closedoor 0x8009, 0x800a
waitdooranim
return
@@ -659,7 +659,7 @@ LittlerootTown_EventScript_14DC04:: @ 814DC04
waitdooranim
applymovement 4, LittlerootTown_Movement_14DCE0
waitmovement 0
- hideobject 4, 0, 9
+ hideobjectat 4, MAP_LITTLEROOT_TOWN
closedoor 0x8009, 0x800a
waitdooranim
return
@@ -671,7 +671,7 @@ LittlerootTown_EventScript_14DC2A:: @ 814DC2A
waitdooranim
applymovement 4, LittlerootTown_Movement_14DCE0
waitmovement 0
- hideobject 4, 0, 9
+ hideobjectat 4, MAP_LITTLEROOT_TOWN
closedoor 0x8009, 0x800a
waitdooranim
return
@@ -683,7 +683,7 @@ LittlerootTown_EventScript_14DC50:: @ 814DC50
waitdooranim
applymovement 4, LittlerootTown_Movement_14DCE0
waitmovement 0
- hideobject 4, 0, 9
+ hideobjectat 4, MAP_LITTLEROOT_TOWN
closedoor 0x8009, 0x800a
waitdooranim
return
@@ -853,7 +853,7 @@ LittlerootTown_EventScript_14DCE2:: @ 814DCE2
waitdooranim
applymovement 4, LittlerootTown_Movement_14DCE0
waitmovement 0
- hideobject 4, 0, 9
+ hideobjectat 4, MAP_LITTLEROOT_TOWN
closedoor 0x8009, 0x800a
waitdooranim
goto LittlerootTown_EventScript_14DD2B
@@ -861,7 +861,7 @@ LittlerootTown_EventScript_14DCE2:: @ 814DCE2
LittlerootTown_EventScript_14DD2B:: @ 814DD2B
removeobject 4
- setflag 2144
+ setflag FLAG_SYS_B_DASH
setvar 0x4050, 4
release
end
@@ -872,7 +872,7 @@ LittlerootTown_EventScript_14DD38:: @ 814DD38
message LittlerootTown_Text_16AA32
waitfanfare
waitmessage
- setflag 274
+ setflag FLAG_RECEIVED_RUNNING_SHOES
msgbox LittlerootTown_Text_16AA5C, 4
msgbox LittlerootTown_Text_16AB10, 4
closemessage
diff --git a/data/scripts/maps/LittlerootTown_BrendansHouse_1F.inc b/data/scripts/maps/LittlerootTown_BrendansHouse_1F.inc
index 04256cacb..d4dd94aae 100644
--- a/data/scripts/maps/LittlerootTown_BrendansHouse_1F.inc
+++ b/data/scripts/maps/LittlerootTown_BrendansHouse_1F.inc
@@ -7,13 +7,13 @@ LittlerootTown_BrendansHouse_1F_MapScripts:: @ 815263B
LittlerootTown_BrendansHouse_1F_MapScript1_15264B:: @ 815264B
compare 0x4092, 6
call_if 0, LittlerootTown_BrendansHouse_1F_EventScript_152660
- checkflag 274
+ checkflag FLAG_RECEIVED_RUNNING_SHOES
call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_152673
end
LittlerootTown_BrendansHouse_1F_EventScript_152660:: @ 8152660
- setmaptile 5, 4, 624, 1
- setmaptile 5, 2, 616, 1
+ setmetatile 5, 4, 624, 1
+ setmetatile 5, 2, 616, 1
return
LittlerootTown_BrendansHouse_1F_EventScript_152673:: @ 8152673
@@ -23,7 +23,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_152673:: @ 8152673
return
LittlerootTown_BrendansHouse_1F_EventScript_152680:: @ 8152680
- setmaptile 3, 7, 659, 1
+ setmetatile 3, 7, 659, 1
return
LittlerootTown_BrendansHouse_1F_MapScript1_15268A:: @ 815268A
@@ -65,7 +65,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_1526FA:: @ 81526FA
applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_152720
applymovement 1, LittlerootTown_BrendansHouse_1F_Movement_152720
waitmovement 0
- warp LittlerootTown_BrendansHouse_2F, 255, 7, 1
+ warp MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, 255, 7, 1
waitstate
releaseall
end
@@ -100,7 +100,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_152744:: @ 8152744
waitmovement 0
special GetRivalSonDaughterString
msgbox LittlerootTown_BrendansHouse_1F_Text_1730C2, 4
- setflag 87
+ setflag FLAG_MET_RIVAL_MOM
setvar 0x4082, 2
releaseall
end
diff --git a/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc b/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc
index 8ff7f8b81..8f3b07312 100644
--- a/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc
+++ b/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc
@@ -4,7 +4,7 @@ LittlerootTown_BrendansHouse_2F_MapScripts:: @ 81527A4
.byte 0
LittlerootTown_BrendansHouse_2F_MapScript1_1527AF:: @ 81527AF
- checkflag 130
+ checkflag FLAG_DEFEATED_RIVAL_ROUTE103
call_if 0, LittlerootTown_BrendansHouse_2F_EventScript_1527CE
compare 0x4092, 4
call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_1B6950
diff --git a/data/scripts/maps/LittlerootTown_MaysHouse_1F.inc b/data/scripts/maps/LittlerootTown_MaysHouse_1F.inc
index 14c7f5d8a..e23a05243 100644
--- a/data/scripts/maps/LittlerootTown_MaysHouse_1F.inc
+++ b/data/scripts/maps/LittlerootTown_MaysHouse_1F.inc
@@ -7,13 +7,13 @@ LittlerootTown_MaysHouse_1F_MapScripts:: @ 8152879
LittlerootTown_MaysHouse_1F_MapScript1_152889:: @ 8152889
compare 0x4092, 6
call_if 0, LittlerootTown_MaysHouse_1F_EventScript_15289E
- checkflag 274
+ checkflag FLAG_RECEIVED_RUNNING_SHOES
call_if 1, LittlerootTown_MaysHouse_1F_EventScript_1528B1
end
LittlerootTown_MaysHouse_1F_EventScript_15289E:: @ 815289E
- setmaptile 5, 4, 624, 1
- setmaptile 5, 2, 616, 1
+ setmetatile 5, 4, 624, 1
+ setmetatile 5, 2, 616, 1
return
LittlerootTown_MaysHouse_1F_EventScript_1528B1:: @ 81528B1
@@ -23,7 +23,7 @@ LittlerootTown_MaysHouse_1F_EventScript_1528B1:: @ 81528B1
return
LittlerootTown_MaysHouse_1F_EventScript_1528BE:: @ 81528BE
- setmaptile 6, 7, 659, 1
+ setmetatile 6, 7, 659, 1
return
LittlerootTown_MaysHouse_1F_MapScript1_1528C8:: @ 81528C8
@@ -65,7 +65,7 @@ LittlerootTown_MaysHouse_1F_EventScript_152938:: @ 8152938
applymovement 255, LittlerootTown_MaysHouse_1F_Movement_15295E
applymovement 1, LittlerootTown_MaysHouse_1F_Movement_15295E
waitmovement 0
- warp LittlerootTown_MaysHouse_2F, 255, 1, 1
+ warp MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F, 255, 1, 1
waitstate
releaseall
end
@@ -100,7 +100,7 @@ LittlerootTown_MaysHouse_1F_EventScript_152982:: @ 8152982
waitmovement 0
special GetRivalSonDaughterString
msgbox LittlerootTown_MaysHouse_1F_Text_1730C2, 4
- setflag 87
+ setflag FLAG_MET_RIVAL_MOM
setvar 0x408c, 2
releaseall
end
@@ -135,9 +135,9 @@ LittlerootTown_BrendansHouse_1F_EventScript_1529EB:: @ 81529EB
LittlerootTown_MaysHouse_1F_EventScript_1529EB:: @ 81529EB
lock
faceplayer
- checkflag 130
+ checkflag FLAG_DEFEATED_RIVAL_ROUTE103
goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_152A21
- checkflag 301
+ checkflag FLAG_RIVAL_LEFT_FOR_ROUTE103
goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_152A17
compare 0x408d, 3
goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_152A2B
diff --git a/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc b/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc
index 68bdf0fcb..020c39eac 100644
--- a/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc
+++ b/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc
@@ -4,7 +4,7 @@ LittlerootTown_MaysHouse_2F_MapScripts:: @ 8152A50
.byte 0
LittlerootTown_MaysHouse_2F_MapScript1_152A5B:: @ 8152A5B
- checkflag 130
+ checkflag FLAG_DEFEATED_RIVAL_ROUTE103
call_if 0, LittlerootTown_MaysHouse_2F_EventScript_152A7A
compare 0x4092, 4
call_if 1, LittlerootTown_MaysHouse_2F_EventScript_1B6950
@@ -30,7 +30,7 @@ LittlerootTown_MaysHouse_2F_EventScript_152A90:: @ 8152A90
LittlerootTown_BrendansHouse_2F_EventScript_152A9D:: @ 8152A9D
LittlerootTown_MaysHouse_2F_EventScript_152A9D:: @ 8152A9D
lockall
- checkflag 292
+ checkflag FLAG_MET_RIVAL_LILYCOVE
goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_152BB5
checkplayergender
compare RESULT, 0
@@ -117,18 +117,18 @@ LittlerootTown_BrendansHouse_2F_EventScript_152BB5:: @ 8152BB5
call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_152BDB
compare RESULT, 1
call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_152BED
- setflag 293
+ setflag FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE
releaseall
end
LittlerootTown_BrendansHouse_2F_EventScript_152BDB:: @ 8152BDB
- checkflag 293
+ checkflag FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE
goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_152BFF
msgbox LittlerootTown_BrendansHouse_2F_Text_1737AE, 4
return
LittlerootTown_BrendansHouse_2F_EventScript_152BED:: @ 8152BED
- checkflag 293
+ checkflag FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE
goto_if_eq 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 e7ccd73f6..6792c5932 100644
--- a/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc
+++ b/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc
@@ -24,7 +24,7 @@ LittlerootTown_ProfessorBirchsLab_MapScript2_152CAC:: @ 8152CAC
LittlerootTown_ProfessorBirchsLab_EventScript_152CBE:: @ 8152CBE
lockall
- getfirstpartypokename 0
+ bufferleadmonspeciesname 0
message LittlerootTown_ProfessorBirchsLab_Text_173D94
waitmessage
playfanfare 370
@@ -52,7 +52,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_152CFA:: @ 8152CFA
LittlerootTown_ProfessorBirchsLab_EventScript_152D19:: @ 8152D19
msgbox LittlerootTown_ProfessorBirchsLab_Text_174015, 4
- clearflag 991
+ clearflag FLAG_HIDE_BOY_ROUTE101
setvar 0x4084, 3
releaseall
end
@@ -87,10 +87,10 @@ LittlerootTown_ProfessorBirchsLab_EventScript_152D63:: @ 8152D63
faceplayer
compare 0x4084, 3
goto_if 4, LittlerootTown_ProfessorBirchsLab_EventScript_152D90
- checkflag 88
+ checkflag FLAG_BIRCH_AIDE_MET
goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_152D86
msgbox LittlerootTown_ProfessorBirchsLab_Text_173B29, 4
- setflag 88
+ setflag FLAG_BIRCH_AIDE_MET
release
end
@@ -107,7 +107,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_152D90:: @ 8152D90
LittlerootTown_ProfessorBirchsLab_EventScript_152D9A:: @ 8152D9A
lock
faceplayer
- checkflag 896
+ checkflag FLAG_UNKNOWN_BIRCH_380
goto_if 0, LittlerootTown_ProfessorBirchsLab_EventScript_1A037F
compare 0x4084, 5
goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_152E7B
@@ -129,7 +129,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_152DBA:: @ 8152DBA
compare RESULT, 1
call_if 1, LittlerootTown_ProfessorBirchsLab_EventScript_152E40
setvar 0x4084, 5
- setflag 116
+ setflag FLAG_ADVENTURE_STARTED
setvar 0x4051, 1
setvar 0x408d, 4
setvar 0x4050, 3
@@ -138,7 +138,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_152DBA:: @ 8152DBA
LittlerootTown_ProfessorBirchsLab_EventScript_152E13:: @ 8152E13
msgbox LittlerootTown_ProfessorBirchsLab_Text_1743D4, 4
- giveitem ITEM_POKE_BALL, 5
+ giveitem_std ITEM_POKE_BALL, 5
compare RESULT, 0
call_if 1, LittlerootTown_ProfessorBirchsLab_EventScript_152E85
msgbox LittlerootTown_ProfessorBirchsLab_Text_17443D, 4
@@ -147,7 +147,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_152E13:: @ 8152E13
LittlerootTown_ProfessorBirchsLab_EventScript_152E40:: @ 8152E40
msgbox LittlerootTown_ProfessorBirchsLab_Text_17453C, 4
- giveitem ITEM_POKE_BALL, 5
+ giveitem_std ITEM_POKE_BALL, 5
compare RESULT, 0
call_if 1, LittlerootTown_ProfessorBirchsLab_EventScript_152E8E
msgbox LittlerootTown_ProfessorBirchsLab_Text_17458C, 4
@@ -159,7 +159,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_152E6D:: @ 8152E6D
message LittlerootTown_ProfessorBirchsLab_Text_17422F
waitfanfare
waitmessage
- setflag 2049
+ setflag FLAG_SYS_POKEDEX_GET
return
LittlerootTown_ProfessorBirchsLab_EventScript_152E7B:: @ 8152E7B
diff --git a/data/scripts/maps/MagmaHideout_B1F.inc b/data/scripts/maps/MagmaHideout_B1F.inc
index 780eea4f5..6dbdc0461 100644
--- a/data/scripts/maps/MagmaHideout_B1F.inc
+++ b/data/scripts/maps/MagmaHideout_B1F.inc
@@ -3,7 +3,7 @@ MagmaHideout_B1F_MapScripts:: @ 815F2A8
.byte 0
MagmaHideout_B1F_MapScript1_15F2AE:: @ 815F2AE
- checkflag 2145
+ checkflag FLAG_SYS_CTRL_OBJ_DELETE
call_if 1, MagmaHideout_B1F_EventScript_15F2B8
end
diff --git a/data/scripts/maps/MauvilleCity.inc b/data/scripts/maps/MauvilleCity.inc
index 5c93aa252..6a7e02848 100644
--- a/data/scripts/maps/MauvilleCity.inc
+++ b/data/scripts/maps/MauvilleCity.inc
@@ -3,18 +3,18 @@ MauvilleCity_MapScripts:: @ 814C032
.byte 0
MauvilleCity_MapScript1_14C038:: @ 814C038
- setflag 2072
- clearflag 961
- setflag 2098
- clearflag 99
+ setflag FLAG_VISITED_MAUVILLE_CITY
+ clearflag FLAG_HIDE_OCEANIC_MUSEUM_VISITORS
+ setflag FLAG_SYS_TV_START
+ clearflag FLAG_MAUVILLE_GYM_BARRIERS_STATE
setvar 0x4093, 0
- checkflag 209
+ checkflag FLAG_RECEIVED_TM24
call_if 1, MauvilleCity_EventScript_14C053
end
MauvilleCity_EventScript_14C053:: @ 814C053
- clearflag 913
- setflag 912
+ clearflag FLAG_HIDE_WATTSON_MAUVILLE_GYM
+ setflag FLAG_HIDE_WATTSON_MAUVILLE
return
MauvilleCity_EventScript_14C05A:: @ 814C05A
@@ -52,10 +52,10 @@ MauvilleCity_EventScript_14C099:: @ 814C099
MauvilleCity_EventScript_14C0A2:: @ 814C0A2
lock
faceplayer
- checkflag 98
+ checkflag FLAG_TV_EXPLAINED
goto_if_eq MauvilleCity_EventScript_14C0BA
msgbox MauvilleCity_Text_16674A, 4
- setflag 98
+ setflag FLAG_TV_EXPLAINED
release
end
@@ -67,7 +67,7 @@ MauvilleCity_EventScript_14C0BA:: @ 814C0BA
MauvilleCity_EventScript_14C0C4:: @ 814C0C4
lock
faceplayer
- checkflag 284
+ checkflag FLAG_DECLINED_WALLY_BATTLE_MAUVILLE
goto_if_eq MauvilleCity_EventScript_14C0E4
msgbox MauvilleCity_Text_165B76, 4
closemessage
@@ -86,7 +86,7 @@ MauvilleCity_EventScript_14C0E4:: @ 814C0E4
MauvilleCity_EventScript_14C0F9:: @ 814C0F9
lockall
- checkflag 284
+ checkflag FLAG_DECLINED_WALLY_BATTLE_MAUVILLE
goto_if_eq MauvilleCity_EventScript_14C292
applymovement 6, MauvilleCity_Movement_1A0843
waitmovement 0
@@ -156,9 +156,9 @@ MauvilleCity_EventScript_14C1D9:: @ 814C1D9
MauvilleCity_EventScript_14C22B:: @ 814C22B
removeobject 6
removeobject 7
- clearflag 806
- clearflag 809
- setflag 190
+ clearflag FLAG_HIDE_WALLY_WANDAS_HOUSE
+ clearflag FLAG_HIDE_WALLY_FATHER_WANDAS_HOUSE
+ setflag FLAG_DEFEATED_WALLY_MAUVILLE
releaseall
end
@@ -177,7 +177,7 @@ MauvilleCity_EventScript_14C23C:: @ 814C23C
return
MauvilleCity_EventScript_14C285:: @ 814C285
- setflag 284
+ setflag FLAG_DECLINED_WALLY_BATTLE_MAUVILLE
msgbox MauvilleCity_Text_165DE8, 4
release
end
@@ -284,15 +284,15 @@ MauvilleCity_Movement_14C2E8:: @ 814C2E8
MauvilleCity_EventScript_14C2F2:: @ 814C2F2
lock
faceplayer
- checkflag 209
+ checkflag FLAG_RECEIVED_TM24
goto_if_eq MauvilleCity_EventScript_14C368
compare 0x40ba, 2
goto_if_eq MauvilleCity_EventScript_14C33C
- checkflag 208
+ checkflag FLAG_RECEIVED_BASEMENT_KEY
goto_if_eq MauvilleCity_EventScript_14C332
msgbox MauvilleCity_Text_1661C1, 4
- giveitem ITEM_BASEMENT_KEY
- setflag 208
+ giveitem_std ITEM_BASEMENT_KEY
+ setflag FLAG_RECEIVED_BASEMENT_KEY
msgbox MauvilleCity_Text_166331, 4
release
end
@@ -304,10 +304,10 @@ MauvilleCity_EventScript_14C332:: @ 814C332
MauvilleCity_EventScript_14C33C:: @ 814C33C
msgbox MauvilleCity_Text_1663EB, 4
- giveitem ITEM_TM24
+ giveitem_std ITEM_TM24
compare RESULT, 0
goto_if_eq MauvilleCity_EventScript_1A029B
- setflag 209
+ setflag FLAG_RECEIVED_TM24
msgbox MauvilleCity_Text_166488, 4
release
end
diff --git a/data/scripts/maps/MauvilleCity_BikeShop.inc b/data/scripts/maps/MauvilleCity_BikeShop.inc
index a93ff5170..6c2dc57e1 100644
--- a/data/scripts/maps/MauvilleCity_BikeShop.inc
+++ b/data/scripts/maps/MauvilleCity_BikeShop.inc
@@ -4,9 +4,9 @@ MauvilleCity_BikeShop_MapScripts:: @ 8156795
MauvilleCity_BikeShop_EventScript_156796:: @ 8156796
lock
faceplayer
- checkflag 90
+ checkflag FLAG_RECEIVED_BIKE
goto_if_eq MauvilleCity_BikeShop_EventScript_15686E
- checkflag 89
+ checkflag FLAG_DECLINED_BIKE
goto_if_eq MauvilleCity_BikeShop_EventScript_1567D1
msgbox MauvilleCity_BikeShop_Text_180F9F, 4
msgbox MauvilleCity_BikeShop_Text_181016, 5
@@ -34,25 +34,25 @@ MauvilleCity_BikeShop_EventScript_1567F0:: @ 81567F0
end
MauvilleCity_BikeShop_EventScript_156817:: @ 8156817
- setflag 89
+ setflag FLAG_DECLINED_BIKE
msgbox MauvilleCity_BikeShop_Text_181067, 4
release
end
MauvilleCity_BikeShop_EventScript_156824:: @ 8156824
- setflag 90
+ setflag FLAG_RECEIVED_BIKE
goto MauvilleCity_BikeShop_EventScript_1567F0
end
MauvilleCity_BikeShop_EventScript_15682D:: @ 815682D
msgbox MauvilleCity_BikeShop_Text_181332, 4
- giveitem ITEM_MACH_BIKE
+ giveitem_std ITEM_MACH_BIKE
goto MauvilleCity_BikeShop_EventScript_156861
end
MauvilleCity_BikeShop_EventScript_156847:: @ 8156847
msgbox MauvilleCity_BikeShop_Text_18134A, 4
- giveitem ITEM_ACRO_BIKE
+ giveitem_std ITEM_ACRO_BIKE
goto MauvilleCity_BikeShop_EventScript_156861
end
@@ -90,16 +90,16 @@ MauvilleCity_BikeShop_EventScript_1568BF:: @ 81568BF
MauvilleCity_BikeShop_EventScript_1568C9:: @ 81568C9
incrementgamestat GAME_STAT_TRADED_BIKES
msgbox MauvilleCity_BikeShop_Text_181439, 4
- removeitem ITEM_ACRO_BIKE, 1
- giveitem ITEM_MACH_BIKE
+ takeitem ITEM_ACRO_BIKE, 1
+ giveitem_std ITEM_MACH_BIKE
goto MauvilleCity_BikeShop_EventScript_156861
end
MauvilleCity_BikeShop_EventScript_1568EA:: @ 81568EA
incrementgamestat GAME_STAT_TRADED_BIKES
msgbox MauvilleCity_BikeShop_Text_181408, 4
- removeitem ITEM_MACH_BIKE, 1
- giveitem ITEM_ACRO_BIKE
+ takeitem ITEM_MACH_BIKE, 1
+ giveitem_std ITEM_ACRO_BIKE
goto MauvilleCity_BikeShop_EventScript_156861
end
diff --git a/data/scripts/maps/MauvilleCity_GameCorner.inc b/data/scripts/maps/MauvilleCity_GameCorner.inc
index 2e0231287..8228238f3 100644
--- a/data/scripts/maps/MauvilleCity_GameCorner.inc
+++ b/data/scripts/maps/MauvilleCity_GameCorner.inc
@@ -129,17 +129,17 @@ MauvilleCity_GameCorner_EventScript_156BA6:: @ 8156BA6
MauvilleCity_GameCorner_EventScript_156BE2:: @ 8156BE2
setvar 0x4001, 1
- getdecorname 0, 88
+ bufferdecorationname 0, 88
goto MauvilleCity_GameCorner_EventScript_156C0C
MauvilleCity_GameCorner_EventScript_156BF0:: @ 8156BF0
setvar 0x4001, 2
- getdecorname 0, 89
+ bufferdecorationname 0, 89
goto MauvilleCity_GameCorner_EventScript_156C0C
MauvilleCity_GameCorner_EventScript_156BFE:: @ 8156BFE
setvar 0x4001, 3
- getdecorname 0, 90
+ bufferdecorationname 0, 90
goto MauvilleCity_GameCorner_EventScript_156C0C
MauvilleCity_GameCorner_EventScript_156C0C:: @ 8156C0C
@@ -156,12 +156,12 @@ MauvilleCity_GameCorner_EventScript_156C46:: @ 8156C46
checkcoins 16386
compare 0x4002, 1000
goto_if 0, MauvilleCity_GameCorner_EventScript_156CF4
- getdecorname 1, 88
- checkdecor 88
+ bufferdecorationname 1, 88
+ checkdecorspace 88
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156D02
takecoins 1000
- adddecor 88
+ givedecoration 88
updatecoinsbox 0, 0
playse 95
msgbox MauvilleCity_GameCorner_Text_181E49, 4
@@ -172,12 +172,12 @@ MauvilleCity_GameCorner_EventScript_156C80:: @ 8156C80
checkcoins 16386
compare 0x4002, 1000
goto_if 0, MauvilleCity_GameCorner_EventScript_156CF4
- getdecorname 1, 89
- checkdecor 89
+ bufferdecorationname 1, 89
+ checkdecorspace 89
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156D02
takecoins 1000
- adddecor 89
+ givedecoration 89
updatecoinsbox 0, 0
playse 95
msgbox MauvilleCity_GameCorner_Text_181E49, 4
@@ -188,12 +188,12 @@ MauvilleCity_GameCorner_EventScript_156CBA:: @ 8156CBA
checkcoins 16386
compare 0x4002, 1000
goto_if 0, MauvilleCity_GameCorner_EventScript_156CF4
- getdecorname 1, 90
- checkdecor 90
+ bufferdecorationname 1, 90
+ checkdecorspace 90
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156D02
takecoins 1000
- adddecor 90
+ givedecoration 90
updatecoinsbox 0, 0
playse 95
msgbox MauvilleCity_GameCorner_Text_181E49, 4
@@ -252,27 +252,27 @@ MauvilleCity_GameCorner_EventScript_156D54:: @ 8156D54
MauvilleCity_GameCorner_EventScript_156DA6:: @ 8156DA6
setvar 0x4001, 1
- getitemname 0, ITEM_TM32
+ bufferitemname 0, ITEM_TM32
goto MauvilleCity_GameCorner_EventScript_156DEC
MauvilleCity_GameCorner_EventScript_156DB4:: @ 8156DB4
setvar 0x4001, 2
- getitemname 0, ITEM_TM29
+ bufferitemname 0, ITEM_TM29
goto MauvilleCity_GameCorner_EventScript_156DEC
MauvilleCity_GameCorner_EventScript_156DC2:: @ 8156DC2
setvar 0x4001, 3
- getitemname 0, ITEM_TM35
+ bufferitemname 0, ITEM_TM35
goto MauvilleCity_GameCorner_EventScript_156DEC
MauvilleCity_GameCorner_EventScript_156DD0:: @ 8156DD0
setvar 0x4001, 4
- getitemname 0, ITEM_TM24
+ bufferitemname 0, ITEM_TM24
goto MauvilleCity_GameCorner_EventScript_156DEC
MauvilleCity_GameCorner_EventScript_156DDE:: @ 8156DDE
setvar 0x4001, 5
- getitemname 0, ITEM_TM13
+ bufferitemname 0, ITEM_TM13
goto MauvilleCity_GameCorner_EventScript_156DEC
MauvilleCity_GameCorner_EventScript_156DEC:: @ 8156DEC
@@ -295,7 +295,7 @@ MauvilleCity_GameCorner_EventScript_156E3C:: @ 8156E3C
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156F6C
takecoins 1500
- additem ITEM_TM32, 1
+ giveitem ITEM_TM32, 1
updatecoinsbox 0, 0
playse 95
msgbox MauvilleCity_GameCorner_Text_181F08, 4
@@ -310,7 +310,7 @@ MauvilleCity_GameCorner_EventScript_156E76:: @ 8156E76
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156F6C
takecoins 3500
- additem ITEM_TM29, 1
+ giveitem ITEM_TM29, 1
updatecoinsbox 0, 0
playse 95
msgbox MauvilleCity_GameCorner_Text_181F08, 4
@@ -325,7 +325,7 @@ MauvilleCity_GameCorner_EventScript_156EB0:: @ 8156EB0
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156F6C
takecoins 4000
- additem ITEM_TM35, 1
+ giveitem ITEM_TM35, 1
updatecoinsbox 0, 0
playse 95
msgbox MauvilleCity_GameCorner_Text_181F08, 4
@@ -340,7 +340,7 @@ MauvilleCity_GameCorner_EventScript_156EEA:: @ 8156EEA
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156F6C
takecoins 4000
- additem ITEM_TM24, 1
+ giveitem ITEM_TM24, 1
updatecoinsbox 0, 0
playse 95
msgbox MauvilleCity_GameCorner_Text_181F08, 4
@@ -355,7 +355,7 @@ MauvilleCity_GameCorner_EventScript_156F24:: @ 8156F24
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156F6C
takecoins 4000
- additem ITEM_TM13, 1
+ giveitem ITEM_TM13, 1
updatecoinsbox 0, 0
playse 95
msgbox MauvilleCity_GameCorner_Text_181F08, 4
@@ -389,7 +389,7 @@ MauvilleCity_GameCorner_EventScript_156F8D:: @ 8156F8D
MauvilleCity_GameCorner_EventScript_156F96:: @ 8156F96
lock
faceplayer
- checkflag 226
+ checkflag FLAG_RECEIVED_STARTER_DOLL
goto_if_eq MauvilleCity_GameCorner_EventScript_157072
msgbox MauvilleCity_GameCorner_Text_181F3D, 5
compare RESULT, 0
@@ -401,35 +401,35 @@ MauvilleCity_GameCorner_EventScript_156F96:: @ 8156F96
end
MauvilleCity_GameCorner_EventScript_156FDB:: @ 8156FDB
- getdecorname 1, 88
- checkdecor 88
+ bufferdecorationname 1, DECOR_TREECKO_DOLL
+ checkdecorspace DECOR_TREECKO_DOLL
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_157059
msgbox MauvilleCity_GameCorner_Text_181F89, 4
- givedecoration 88
- setflag 226
+ givedecoration_std DECOR_TREECKO_DOLL
+ setflag FLAG_RECEIVED_STARTER_DOLL
goto MauvilleCity_GameCorner_EventScript_157072
end
MauvilleCity_GameCorner_EventScript_157005:: @ 8157005
- getdecorname 1, 89
- checkdecor 89
+ bufferdecorationname 1, DECOR_TORCHIC_DOLL
+ checkdecorspace DECOR_TORCHIC_DOLL
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_157059
msgbox MauvilleCity_GameCorner_Text_181F89, 4
- givedecoration 89
- setflag 226
+ givedecoration_std DECOR_TORCHIC_DOLL
+ setflag FLAG_RECEIVED_STARTER_DOLL
goto MauvilleCity_GameCorner_EventScript_157072
end
MauvilleCity_GameCorner_EventScript_15702F:: @ 815702F
- getdecorname 1, 90
- checkdecor 90
+ bufferdecorationname 1, DECOR_MUDKIP_DOLL
+ checkdecorspace DECOR_MUDKIP_DOLL
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_157059
msgbox MauvilleCity_GameCorner_Text_181F89, 4
- givedecoration 90
- setflag 226
+ givedecoration_std DECOR_MUDKIP_DOLL
+ setflag FLAG_RECEIVED_STARTER_DOLL
goto MauvilleCity_GameCorner_EventScript_157072
end
@@ -460,12 +460,12 @@ MauvilleCity_GameCorner_EventScript_15707C:: @ 815707C
end
MauvilleCity_GameCorner_EventScript_15709C:: @ 815709C
- checkflag 225
+ checkflag FLAG_RECEIVED_20_COINS
goto_if_eq MauvilleCity_GameCorner_EventScript_1570CA
checkcoins 16385
compare 0x4001, 1
goto_if 4, MauvilleCity_GameCorner_EventScript_1570CA
- setflag 225
+ setflag FLAG_RECEIVED_20_COINS
givecoins 20
msgbox MauvilleCity_GameCorner_Text_18208E, 4
playse 95
diff --git a/data/scripts/maps/MauvilleCity_Gym.inc b/data/scripts/maps/MauvilleCity_Gym.inc
index 5221add7a..799fb0992 100644
--- a/data/scripts/maps/MauvilleCity_Gym.inc
+++ b/data/scripts/maps/MauvilleCity_Gym.inc
@@ -3,7 +3,7 @@ MauvilleCity_Gym_MapScripts:: @ 8156450
.byte 0
MauvilleCity_Gym_MapScript1_156456:: @ 8156456
- checkflag 1208
+ checkflag FLAG_DEFEATED_MAUVILLE_GYM
goto_if_eq MauvilleCity_Gym_EventScript_1565A7
switch 0x4093
case 0, MauvilleCity_Gym_EventScript_156491
@@ -13,36 +13,36 @@ MauvilleCity_Gym_MapScript1_156456:: @ 8156456
end
MauvilleCity_Gym_EventScript_156491:: @ 8156491
- checkflag 99
+ checkflag FLAG_MAUVILLE_GYM_BARRIERS_STATE
goto_if_eq MauvilleCity_Gym_EventScript_15649B
end
MauvilleCity_Gym_EventScript_15649B:: @ 815649B
- setmaptile 4, 7, 560, 0
- setmaptile 4, 8, 568, 0
- setmaptile 5, 7, 561, 0
- setmaptile 5, 8, 569, 0
- setmaptile 3, 8, 578, 1
- setmaptile 3, 9, 538, 0
- setmaptile 3, 10, 593, 0
- setmaptile 1, 10, 546, 0
- setmaptile 1, 11, 554, 1
- setmaptile 2, 10, 547, 0
- setmaptile 2, 11, 555, 1
- setmaptile 4, 10, 546, 0
- setmaptile 4, 11, 554, 1
- setmaptile 5, 10, 547, 0
- setmaptile 5, 11, 555, 1
- setmaptile 6, 11, 578, 1
- setmaptile 6, 12, 538, 0
- setmaptile 6, 13, 593, 0
- setmaptile 3, 11, 577, 1
- setmaptile 3, 12, 585, 1
- setmaptile 3, 13, 592, 1
- setmaptile 4, 13, 560, 0
- setmaptile 4, 14, 568, 0
- setmaptile 5, 13, 561, 0
- setmaptile 5, 14, 569, 0
+ setmetatile 4, 7, 560, 0
+ setmetatile 4, 8, 568, 0
+ setmetatile 5, 7, 561, 0
+ setmetatile 5, 8, 569, 0
+ setmetatile 3, 8, 578, 1
+ setmetatile 3, 9, 538, 0
+ setmetatile 3, 10, 593, 0
+ setmetatile 1, 10, 546, 0
+ setmetatile 1, 11, 554, 1
+ setmetatile 2, 10, 547, 0
+ setmetatile 2, 11, 555, 1
+ setmetatile 4, 10, 546, 0
+ setmetatile 4, 11, 554, 1
+ setmetatile 5, 10, 547, 0
+ setmetatile 5, 11, 555, 1
+ setmetatile 6, 11, 578, 1
+ setmetatile 6, 12, 538, 0
+ setmetatile 6, 13, 593, 0
+ setmetatile 3, 11, 577, 1
+ setmetatile 3, 12, 585, 1
+ setmetatile 3, 13, 592, 1
+ setmetatile 4, 13, 560, 0
+ setmetatile 4, 14, 568, 0
+ setmetatile 5, 13, 561, 0
+ setmetatile 5, 14, 569, 0
end
MauvilleCity_Gym_EventScript_15657D:: @ 815657D
@@ -69,7 +69,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 167
+ checkflag FLAG_RECEIVED_TM34
goto_if 0, MauvilleCity_Gym_EventScript_15661D
compare 0x40ba, 2
goto_if_eq MauvilleCity_Gym_EventScript_156641
@@ -82,8 +82,8 @@ MauvilleCity_Gym_EventScript_1565DB:: @ 81565DB
waitmessage
call MauvilleCity_Gym_EventScript_1A02C5
msgbox MauvilleCity_Gym_Text_180DDA, 4
- setflag 1208
- setflag 2057
+ setflag FLAG_DEFEATED_MAUVILLE_GYM
+ setflag FLAG_BADGE03_GET
addvar 0x4085, 1
compare 0x4085, 6
call_if 1, MauvilleCity_Gym_EventScript_1A00FB
@@ -96,11 +96,11 @@ MauvilleCity_Gym_EventScript_1565DB:: @ 81565DB
end
MauvilleCity_Gym_EventScript_15661D:: @ 815661D
- giveitem ITEM_TM34
+ giveitem_std ITEM_TM34
compare RESULT, 0
goto_if_eq MauvilleCity_Gym_EventScript_1A029B
msgbox MauvilleCity_Gym_Text_180E76, 4
- setflag 167
+ setflag FLAG_RECEIVED_TM34
release
end
@@ -111,7 +111,7 @@ MauvilleCity_Gym_EventScript_156641:: @ 8156641
MauvilleCity_Gym_EventScript_15664B:: @ 815664B
lockall
- checkflag 1208
+ checkflag FLAG_DEFEATED_MAUVILLE_GYM
goto_if_eq MauvilleCity_Gym_EventScript_1566DA
compare 0x4093, 1
goto_if_eq MauvilleCity_Gym_EventScript_1566DA
@@ -122,7 +122,7 @@ MauvilleCity_Gym_EventScript_15664B:: @ 815664B
MauvilleCity_Gym_EventScript_156670:: @ 8156670
lockall
- checkflag 1208
+ checkflag FLAG_DEFEATED_MAUVILLE_GYM
goto_if_eq MauvilleCity_Gym_EventScript_1566DA
compare 0x4093, 2
goto_if_eq MauvilleCity_Gym_EventScript_1566DA
@@ -133,7 +133,7 @@ MauvilleCity_Gym_EventScript_156670:: @ 8156670
MauvilleCity_Gym_EventScript_156695:: @ 8156695
lockall
- checkflag 1208
+ checkflag FLAG_DEFEATED_MAUVILLE_GYM
goto_if_eq MauvilleCity_Gym_EventScript_1566DA
compare 0x4093, 3
goto_if_eq MauvilleCity_Gym_EventScript_1566DA
@@ -147,9 +147,9 @@ MauvilleCity_Gym_EventScript_1566BA:: @ 81566BA
special MauvilleGymSpecial1
special DrawWholeMapView
playse 44
- checkflag 99
+ checkflag FLAG_MAUVILLE_GYM_BARRIERS_STATE
goto_if_eq MauvilleCity_Gym_EventScript_1566E1
- checkflag 99
+ checkflag FLAG_MAUVILLE_GYM_BARRIERS_STATE
goto_if 0, MauvilleCity_Gym_EventScript_1566DC
releaseall
end
@@ -159,12 +159,12 @@ MauvilleCity_Gym_EventScript_1566DA:: @ 81566DA
end
MauvilleCity_Gym_EventScript_1566DC:: @ 81566DC
- setflag 99
+ setflag FLAG_MAUVILLE_GYM_BARRIERS_STATE
releaseall
end
MauvilleCity_Gym_EventScript_1566E1:: @ 81566E1
- clearflag 99
+ clearflag FLAG_MAUVILLE_GYM_BARRIERS_STATE
releaseall
end
@@ -191,7 +191,7 @@ MauvilleCity_Gym_EventScript_15672B:: @ 815672B
MauvilleCity_Gym_EventScript_156742:: @ 8156742
lock
faceplayer
- checkflag 1208
+ checkflag FLAG_DEFEATED_MAUVILLE_GYM
goto_if_eq MauvilleCity_Gym_EventScript_156757
msgbox MauvilleCity_Gym_Text_180815, 4
release
@@ -204,14 +204,14 @@ MauvilleCity_Gym_EventScript_156757:: @ 8156757
MauvilleCity_Gym_EventScript_156761:: @ 8156761
lockall
- checkflag 2057
+ checkflag FLAG_BADGE03_GET
goto_if_eq MauvilleCity_Gym_EventScript_156781
goto MauvilleCity_Gym_EventScript_15678B
end
MauvilleCity_Gym_EventScript_156771:: @ 8156771
lockall
- checkflag 2057
+ checkflag FLAG_BADGE03_GET
goto_if_eq 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 e76564847..210288517 100644
--- a/data/scripts/maps/MauvilleCity_House1.inc
+++ b/data/scripts/maps/MauvilleCity_House1.inc
@@ -4,11 +4,11 @@ MauvilleCity_House1_MapScripts:: @ 81569FC
MauvilleCity_House1_EventScript_1569FD:: @ 81569FD
lock
faceplayer
- checkflag 107
+ checkflag FLAG_RECEIVED_HM06
goto_if_eq MauvilleCity_House1_EventScript_156A29
msgbox MauvilleCity_House1_Text_181B1A, 4
- giveitem ITEM_HM06
- setflag 107
+ giveitem_std ITEM_HM06
+ setflag FLAG_RECEIVED_HM06
msgbox MauvilleCity_House1_Text_181B64, 4
release
end
diff --git a/data/scripts/maps/MauvilleCity_House2.inc b/data/scripts/maps/MauvilleCity_House2.inc
index a500a246e..a058003bc 100644
--- a/data/scripts/maps/MauvilleCity_House2.inc
+++ b/data/scripts/maps/MauvilleCity_House2.inc
@@ -4,7 +4,7 @@ MauvilleCity_House2_MapScripts:: @ 81572BF
MauvilleCity_House2_EventScript_1572C0:: @ 81572C0
lock
faceplayer
- checkflag 258
+ checkflag FLAG_RECEIVED_COIN_CASE
goto_if_eq MauvilleCity_House2_EventScript_15733D
msgbox MauvilleCity_House2_Text_18244E, 4
checkitem ITEM_HARBOR_MAIL, 1
@@ -28,9 +28,9 @@ MauvilleCity_House2_EventScript_1572E5:: @ 81572E5
MauvilleCity_House2_EventScript_15731B:: @ 815731B
msgbox MauvilleCity_House2_Text_182515, 4
- removeitem ITEM_HARBOR_MAIL, 1
- giveitem ITEM_COIN_CASE
- setflag 258
+ takeitem ITEM_HARBOR_MAIL, 1
+ giveitem_std ITEM_COIN_CASE
+ setflag FLAG_RECEIVED_COIN_CASE
goto MauvilleCity_House2_EventScript_15733D
end
diff --git a/data/scripts/maps/MauvilleCity_PokemonCenter_1F.inc b/data/scripts/maps/MauvilleCity_PokemonCenter_1F.inc
index 7122b8c3c..de30e21cd 100644
--- a/data/scripts/maps/MauvilleCity_PokemonCenter_1F.inc
+++ b/data/scripts/maps/MauvilleCity_PokemonCenter_1F.inc
@@ -3,7 +3,7 @@ MauvilleCity_PokemonCenter_1F_MapScripts:: @ 8157351
.byte 0
MauvilleCity_PokemonCenter_1F_MapScript1_157357:: @ 8157357
- sethealplace 5
+ setrespawn 5
call MauvilleCity_PokemonCenter_1F_EventScript_19FD1B
goto MauvilleCity_PokemonCenter_1F_EventScript_157365
end
@@ -16,7 +16,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_157369:: @ 8157369
setvar 0x800b, 1
call MauvilleCity_PokemonCenter_1F_EventScript_19FD5B
waitmessage
- waitbutton
+ waitbuttonpress
release
end
diff --git a/data/scripts/maps/MeteorFalls_1F_1R.inc b/data/scripts/maps/MeteorFalls_1F_1R.inc
index 06abbc8f6..7ce6e3704 100644
--- a/data/scripts/maps/MeteorFalls_1F_1R.inc
+++ b/data/scripts/maps/MeteorFalls_1F_1R.inc
@@ -77,7 +77,7 @@ MeteorFalls_1F_1R_EventScript_15C49C:: @ 815C49C
removeobject 7
removeobject 8
removeobject 9
- setflag 819
+ setflag FLAG_HIDE_GRUNTS_BLOCKING_CABLE_CAR
setvar 0x40bf, 1
releaseall
end
@@ -215,9 +215,9 @@ MeteorFalls_1F_1R_Movement_15C64F:: @ 815C64F
MeteorFalls_1F_1R_EventScript_15C656:: @ 815C656
lock
faceplayer
- checkflag 244
+ checkflag FLAG_MET_PROF_COSMO
goto_if_eq MeteorFalls_1F_1R_EventScript_15C66E
- setflag 244
+ setflag FLAG_MET_PROF_COSMO
msgbox MeteorFalls_1F_1R_Text_1937EB, 4
release
end
diff --git a/data/scripts/maps/MossdeepCity.inc b/data/scripts/maps/MossdeepCity.inc
index 44deb9d63..f165bd3ef 100644
--- a/data/scripts/maps/MossdeepCity.inc
+++ b/data/scripts/maps/MossdeepCity.inc
@@ -3,11 +3,11 @@ MossdeepCity_MapScripts:: @ 814CF92
.byte 0
MossdeepCity_MapScript1_14CF98:: @ 814CF98
- clearflag 100
- clearflag 101
- clearflag 102
- clearflag 103
- checkflag 2090
+ clearflag FLAG_MOSSDEEP_GYM_SWITCH_1
+ 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
end
@@ -52,7 +52,7 @@ MossdeepCity_EventScript_14CFFF:: @ 814CFFF
end
MossdeepCity_EventScript_14D008:: @ 814D008
- setflag 2076
+ setflag FLAG_VISITED_MOSSDEEP_CITY
setvar 0x4001, 1
end
@@ -68,16 +68,16 @@ MossdeepCity_EventScript_14D011:: @ 814D011
MossdeepCity_EventScript_14D027:: @ 814D027
lock
faceplayer
- checkflag 276
+ checkflag FLAG_RECEIVED_KINGS_ROCK
goto_if_eq MossdeepCity_EventScript_14D069
msgbox MossdeepCity_Text_1690A9, 5
compare RESULT, 0
goto_if_eq MossdeepCity_EventScript_14D073
msgbox MossdeepCity_Text_169117, 4
- giveitem ITEM_KINGS_ROCK
+ giveitem_std ITEM_KINGS_ROCK
compare RESULT, 0
goto_if_eq MossdeepCity_EventScript_1A029B
- setflag 276
+ setflag FLAG_RECEIVED_KINGS_ROCK
release
end
diff --git a/data/scripts/maps/MossdeepCity_GameCorner_1F.inc b/data/scripts/maps/MossdeepCity_GameCorner_1F.inc
index 66ad747f9..75fc3c6b8 100644
--- a/data/scripts/maps/MossdeepCity_GameCorner_1F.inc
+++ b/data/scripts/maps/MossdeepCity_GameCorner_1F.inc
@@ -5,18 +5,18 @@ MossdeepCity_GameCorner_1F_MapScripts:: @ 815AC52
.byte 0
MossdeepCity_GameCorner_1F_MapScript1_15AC62:: @ 815AC62
- special sub_813601C
+ special ValidateEReaderTrainer
compare RESULT, 1
call_if 1, MossdeepCity_GameCorner_1F_EventScript_15AC71
end
MossdeepCity_GameCorner_1F_EventScript_15AC71:: @ 815AC71
- setmaptile 3, 0, 653, 1
- setmaptile 3, 1, 661, 1
+ setmetatile 3, 0, 653, 1
+ setmetatile 3, 1, 661, 1
return
MossdeepCity_GameCorner_1F_MapScript1_15AC84:: @ 815AC84
- special sub_813601C
+ special ValidateEReaderTrainer
compare RESULT, 0
call_if 1, MossdeepCity_GameCorner_1F_EventScript_15AC9E
compare 0x40c0, 0
@@ -117,7 +117,7 @@ MossdeepCity_GameCorner_1F_EventScript_15AD59:: @ 815AD59
call_if 1, MossdeepCity_GameCorner_1F_EventScript_15AE16
compare FACING, 3
call_if 1, MossdeepCity_GameCorner_1F_EventScript_15AE28
- warp MossdeepCity_GameCorner_B1F, 255, 3, 1
+ warp MAP_MOSSDEEP_CITY_GAME_CORNER_B1F, 255, 3, 1
waitstate
release
end
diff --git a/data/scripts/maps/MossdeepCity_GameCorner_B1F.inc b/data/scripts/maps/MossdeepCity_GameCorner_B1F.inc
index 886c64d29..12a94154b 100644
--- a/data/scripts/maps/MossdeepCity_GameCorner_B1F.inc
+++ b/data/scripts/maps/MossdeepCity_GameCorner_B1F.inc
@@ -4,7 +4,7 @@ MossdeepCity_GameCorner_B1F_MapScripts:: @ 815AE55
.byte 0
MossdeepCity_GameCorner_B1F_MapScript1_15AE60:: @ 815AE60
- special sub_8134AB4
+ special SetEReaderTrainerGfxId
end
MossdeepCity_GameCorner_B1F_MapScript2_15AE64:: @ 815AE64
@@ -15,8 +15,8 @@ MossdeepCity_GameCorner_B1F_EventScript_15AE6E:: @ 815AE6E
lockall
applymovement 255, MossdeepCity_GameCorner_B1F_Movement_15AEF9
waitmovement 0
- special sub_81360C0
- msgbox 0x20234cc, 4
+ special PrintEReaderTrainerGreeting
+ msgbox gStringVar4, 4
closemessage
setvar 0x8004, 2
setvar 0x8005, 0
@@ -34,7 +34,7 @@ MossdeepCity_GameCorner_B1F_EventScript_15AE6E:: @ 815AE6E
waitmovement 0
special LoadPlayerParty
setvar 0x4001, 1
- warp MossdeepCity_GameCorner_1F, 255, 3, 1
+ warp MAP_MOSSDEEP_CITY_GAME_CORNER_1F, 255, 3, 1
waitstate
releaseall
end
@@ -48,14 +48,14 @@ MossdeepCity_GameCorner_B1F_EventScript_15AEE3:: @ 815AEE3
setvar 0x40c0, 1
special ShowFieldMessageStringVar4
waitmessage
- waitbutton
+ waitbuttonpress
return
MossdeepCity_GameCorner_B1F_EventScript_15AEEE:: @ 815AEEE
setvar 0x40c0, 2
special ShowFieldMessageStringVar4
waitmessage
- waitbutton
+ waitbuttonpress
return
MossdeepCity_GameCorner_B1F_Movement_15AEF9:: @ 815AEF9
diff --git a/data/scripts/maps/MossdeepCity_Gym.inc b/data/scripts/maps/MossdeepCity_Gym.inc
index 944860f2d..b1550a4c1 100644
--- a/data/scripts/maps/MossdeepCity_Gym.inc
+++ b/data/scripts/maps/MossdeepCity_Gym.inc
@@ -3,54 +3,54 @@ MossdeepCity_Gym_MapScripts:: @ 815A4D3
.byte 0
MossdeepCity_Gym_MapScript1_15A4D9:: @ 815A4D9
- checkflag 100
+ checkflag FLAG_MOSSDEEP_GYM_SWITCH_1
goto_if_eq MossdeepCity_Gym_EventScript_15A510
goto MossdeepCity_Gym_EventScript_15A4E8
end
MossdeepCity_Gym_EventScript_15A4E8:: @ 815A4E8
- checkflag 101
+ checkflag FLAG_MOSSDEEP_GYM_SWITCH_2
goto_if_eq MossdeepCity_Gym_EventScript_15A528
goto MossdeepCity_Gym_EventScript_15A4F7
end
MossdeepCity_Gym_EventScript_15A4F7:: @ 815A4F7
- checkflag 102
+ checkflag FLAG_MOSSDEEP_GYM_SWITCH_3
goto_if_eq MossdeepCity_Gym_EventScript_15A540
goto MossdeepCity_Gym_EventScript_15A506
end
MossdeepCity_Gym_EventScript_15A506:: @ 815A506
- checkflag 103
+ checkflag FLAG_MOSSDEEP_GYM_SWITCH_4
goto_if_eq MossdeepCity_Gym_EventScript_15A558
end
MossdeepCity_Gym_EventScript_15A510:: @ 815A510
- setmaptile 5, 5, 516, 0
- setmaptile 2, 7, 569, 1
+ setmetatile 5, 5, 516, 0
+ setmetatile 2, 7, 569, 1
goto MossdeepCity_Gym_EventScript_15A4E8
end
MossdeepCity_Gym_EventScript_15A528:: @ 815A528
- setmaptile 8, 14, 516, 0
- setmaptile 8, 10, 569, 1
+ setmetatile 8, 14, 516, 0
+ setmetatile 8, 10, 569, 1
goto MossdeepCity_Gym_EventScript_15A4F7
end
MossdeepCity_Gym_EventScript_15A540:: @ 815A540
- setmaptile 15, 17, 524, 0
- setmaptile 17, 15, 569, 1
+ setmetatile 15, 17, 524, 0
+ setmetatile 17, 15, 569, 1
goto MossdeepCity_Gym_EventScript_15A506
end
MossdeepCity_Gym_EventScript_15A558:: @ 815A558
- setmaptile 1, 23, 525, 0
- setmaptile 5, 24, 569, 1
+ setmetatile 1, 23, 525, 0
+ setmetatile 5, 24, 569, 1
end
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 171
+ checkflag FLAG_RECEIVED_TM04
goto_if 0, MossdeepCity_Gym_EventScript_15A5C6
msgbox MossdeepCity_Gym_Text_18D273, 4
release
@@ -61,34 +61,34 @@ MossdeepCity_Gym_EventScript_15A594:: @ 815A594
waitmessage
call MossdeepCity_Gym_EventScript_1A02C5
msgbox MossdeepCity_Gym_Text_18D128, 4
- setflag 1229
- setflag 2061
- clearflag 869
- clearflag 915
+ setflag FLAG_DEFEATED_MOSSDEEP_GYM
+ setflag FLAG_BADGE07_GET
+ clearflag FLAG_HIDE_BRINEY_SLATEPORT_SHIPYARD
+ clearflag FLAG_UNKNOWN_393
setvar 0x8008, 7
call MossdeepCity_Gym_EventScript_1A01C0
- clearflag 905
+ clearflag FLAG_HIDE_WORKERS_SLATEPORT_HARBOR
goto MossdeepCity_Gym_EventScript_15A5C6
end
MossdeepCity_Gym_EventScript_15A5C6:: @ 815A5C6
- giveitem ITEM_TM04
+ giveitem_std ITEM_TM04
compare RESULT, 0
goto_if_eq MossdeepCity_Gym_EventScript_1A029B
msgbox MossdeepCity_Gym_Text_18D1CF, 4
- setflag 171
+ setflag FLAG_RECEIVED_TM04
release
end
MossdeepCity_Gym_EventScript_15A5EA:: @ 815A5EA
lockall
- checkflag 100
+ checkflag FLAG_MOSSDEEP_GYM_SWITCH_1
goto_if_eq MossdeepCity_Gym_EventScript_15A621
- setflag 100
+ setflag FLAG_MOSSDEEP_GYM_SWITCH_1
applymovement 255, MossdeepCity_Gym_Movement_15A7F7
waitmovement 0
- setmaptile 5, 5, 516, 0
- setmaptile 2, 7, 569, 1
+ setmetatile 5, 5, 516, 0
+ setmetatile 2, 7, 569, 1
goto MossdeepCity_Gym_EventScript_15A619
end
@@ -99,80 +99,80 @@ MossdeepCity_Gym_EventScript_15A619:: @ 815A619
end
MossdeepCity_Gym_EventScript_15A621:: @ 815A621
- clearflag 100
+ clearflag FLAG_MOSSDEEP_GYM_SWITCH_1
applymovement 255, MossdeepCity_Gym_Movement_15A7F7
waitmovement 0
- setmaptile 5, 5, 524, 0
- setmaptile 2, 7, 568, 1
+ setmetatile 5, 5, 524, 0
+ setmetatile 2, 7, 568, 1
goto MossdeepCity_Gym_EventScript_15A619
end
MossdeepCity_Gym_EventScript_15A646:: @ 815A646
lockall
- checkflag 101
+ checkflag FLAG_MOSSDEEP_GYM_SWITCH_2
goto_if_eq MossdeepCity_Gym_EventScript_15A675
- setflag 101
+ setflag FLAG_MOSSDEEP_GYM_SWITCH_2
applymovement 255, MossdeepCity_Gym_Movement_15A7F7
waitmovement 0
- setmaptile 8, 14, 516, 0
- setmaptile 8, 10, 569, 1
+ setmetatile 8, 14, 516, 0
+ setmetatile 8, 10, 569, 1
goto MossdeepCity_Gym_EventScript_15A619
end
MossdeepCity_Gym_EventScript_15A675:: @ 815A675
- clearflag 101
+ clearflag FLAG_MOSSDEEP_GYM_SWITCH_2
applymovement 255, MossdeepCity_Gym_Movement_15A7F7
waitmovement 0
- setmaptile 8, 14, 517, 0
- setmaptile 8, 10, 568, 1
+ setmetatile 8, 14, 517, 0
+ setmetatile 8, 10, 568, 1
goto MossdeepCity_Gym_EventScript_15A619
end
MossdeepCity_Gym_EventScript_15A69A:: @ 815A69A
lockall
- checkflag 102
+ checkflag FLAG_MOSSDEEP_GYM_SWITCH_3
goto_if_eq MossdeepCity_Gym_EventScript_15A6C9
- setflag 102
+ setflag FLAG_MOSSDEEP_GYM_SWITCH_3
applymovement 255, MossdeepCity_Gym_Movement_15A7F7
waitmovement 0
- setmaptile 15, 17, 524, 0
- setmaptile 17, 15, 569, 1
+ setmetatile 15, 17, 524, 0
+ setmetatile 17, 15, 569, 1
goto MossdeepCity_Gym_EventScript_15A619
end
MossdeepCity_Gym_EventScript_15A6C9:: @ 815A6C9
- clearflag 102
+ clearflag FLAG_MOSSDEEP_GYM_SWITCH_3
applymovement 255, MossdeepCity_Gym_Movement_15A7F7
waitmovement 0
- setmaptile 15, 17, 516, 0
- setmaptile 17, 15, 568, 1
+ setmetatile 15, 17, 516, 0
+ setmetatile 17, 15, 568, 1
goto MossdeepCity_Gym_EventScript_15A619
end
MossdeepCity_Gym_EventScript_15A6EE:: @ 815A6EE
lockall
- checkflag 103
+ checkflag FLAG_MOSSDEEP_GYM_SWITCH_4
goto_if_eq MossdeepCity_Gym_EventScript_15A71D
- setflag 103
+ setflag FLAG_MOSSDEEP_GYM_SWITCH_4
applymovement 255, MossdeepCity_Gym_Movement_15A7F7
waitmovement 0
- setmaptile 1, 23, 525, 0
- setmaptile 5, 24, 569, 1
+ setmetatile 1, 23, 525, 0
+ setmetatile 5, 24, 569, 1
goto MossdeepCity_Gym_EventScript_15A619
end
MossdeepCity_Gym_EventScript_15A71D:: @ 815A71D
- clearflag 103
+ clearflag FLAG_MOSSDEEP_GYM_SWITCH_4
applymovement 255, MossdeepCity_Gym_Movement_15A7F7
waitmovement 0
- setmaptile 1, 23, 516, 0
- setmaptile 5, 24, 568, 1
+ setmetatile 1, 23, 516, 0
+ setmetatile 5, 24, 568, 1
goto MossdeepCity_Gym_EventScript_15A619
end
MossdeepCity_Gym_EventScript_15A742:: @ 815A742
lockall
- warpteleport MossdeepCity_Gym, 255, 14, 29
+ warpteleport MAP_MOSSDEEP_CITY_GYM, 255, 14, 29
waitstate
releaseall
end
@@ -210,7 +210,7 @@ MossdeepCity_Gym_EventScript_15A7C1:: @ 815A7C1
MossdeepCity_Gym_EventScript_15A7D8:: @ 815A7D8
lock
faceplayer
- checkflag 1229
+ checkflag FLAG_DEFEATED_MOSSDEEP_GYM
goto_if_eq MossdeepCity_Gym_EventScript_15A7ED
msgbox MossdeepCity_Gym_Text_18C7E3, 4
release
@@ -228,14 +228,14 @@ MossdeepCity_Gym_Movement_15A7F7:: @ 815A7F7
MossdeepCity_Gym_EventScript_15A7FA:: @ 815A7FA
lockall
- checkflag 2061
+ checkflag FLAG_BADGE07_GET
goto_if_eq MossdeepCity_Gym_EventScript_15A81A
goto MossdeepCity_Gym_EventScript_15A824
end
MossdeepCity_Gym_EventScript_15A80A:: @ 815A80A
lockall
- checkflag 2061
+ checkflag FLAG_BADGE07_GET
goto_if_eq MossdeepCity_Gym_EventScript_15A81A
goto MossdeepCity_Gym_EventScript_15A824
end
diff --git a/data/scripts/maps/MossdeepCity_House1.inc b/data/scripts/maps/MossdeepCity_House1.inc
index 62edffc8b..97a5fc452 100644
--- a/data/scripts/maps/MossdeepCity_House1.inc
+++ b/data/scripts/maps/MossdeepCity_House1.inc
@@ -4,7 +4,7 @@ MossdeepCity_House1_MapScripts:: @ 815A82E
MossdeepCity_House1_EventScript_15A82F:: @ 815A82F
lock
faceplayer
- getfirstpartypokename 0
+ bufferleadmonspeciesname 0
msgbox MossdeepCity_House1_Text_18D465, 4
specialvar RESULT, GetPokeblockNameByMonNature
compare RESULT, 0
diff --git a/data/scripts/maps/MossdeepCity_House2.inc b/data/scripts/maps/MossdeepCity_House2.inc
index f7f66b843..1da204ff0 100644
--- a/data/scripts/maps/MossdeepCity_House2.inc
+++ b/data/scripts/maps/MossdeepCity_House2.inc
@@ -13,12 +13,12 @@ MossdeepCity_House2_EventScript_15A87B:: @ 815A87B
lock
faceplayer
waitse
- playpokecry SPECIES_WINGULL, 0
+ playmoncry SPECIES_WINGULL, 0
msgbox MossdeepCity_House2_Text_18D61E, 4
- waitpokecry
+ waitmoncry
closemessage
- setflag 224
- clearflag 933
+ setflag FLAG_WINGULL_DELIVERED_MAIL
+ clearflag FLAG_HIDE_WINGULL_FORTREE_HOUSE
compare FACING, 2
call_if 1, MossdeepCity_House2_EventScript_15A8AE
compare FACING, 3
diff --git a/data/scripts/maps/MossdeepCity_House3.inc b/data/scripts/maps/MossdeepCity_House3.inc
index 8f9bf4dc5..6632ac793 100644
--- a/data/scripts/maps/MossdeepCity_House3.inc
+++ b/data/scripts/maps/MossdeepCity_House3.inc
@@ -4,14 +4,14 @@ MossdeepCity_House3_MapScripts:: @ 815A971
MossdeepCity_House3_EventScript_15A972:: @ 815A972
lock
faceplayer
- checkflag 152
+ checkflag FLAG_RECEIVED_SUPER_ROD
goto_if_eq MossdeepCity_House3_EventScript_15A9B1
msgbox MossdeepCity_House3_Text_18D909, 5
compare RESULT, 0
goto_if_eq MossdeepCity_House3_EventScript_15A9BB
msgbox MossdeepCity_House3_Text_18D9A9, 4
- giveitem ITEM_SUPER_ROD
- setflag 152
+ giveitem_std ITEM_SUPER_ROD
+ setflag FLAG_RECEIVED_SUPER_ROD
msgbox MossdeepCity_House3_Text_18D9E3, 4
release
end
diff --git a/data/scripts/maps/MossdeepCity_House4.inc b/data/scripts/maps/MossdeepCity_House4.inc
index fd173899d..856ee1287 100644
--- a/data/scripts/maps/MossdeepCity_House4.inc
+++ b/data/scripts/maps/MossdeepCity_House4.inc
@@ -4,7 +4,7 @@ MossdeepCity_House4_MapScripts:: @ 815AB30
MossdeepCity_House4_EventScript_15AB31:: @ 815AB31
lock
faceplayer
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if_eq MossdeepCity_House4_EventScript_15AB46
msgbox MossdeepCity_House4_Text_18E0E3, 4
release
@@ -35,8 +35,8 @@ MossdeepCity_House4_EventScript_15AB77:: @ 815AB77
lock
faceplayer
waitse
- playpokecry SPECIES_SKITTY, 0
+ playmoncry SPECIES_SKITTY, 0
msgbox MossdeepCity_House4_Text_18E1E1, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/MossdeepCity_PokemonCenter_1F.inc b/data/scripts/maps/MossdeepCity_PokemonCenter_1F.inc
index 4ed3ea57e..c26238102 100644
--- a/data/scripts/maps/MossdeepCity_PokemonCenter_1F.inc
+++ b/data/scripts/maps/MossdeepCity_PokemonCenter_1F.inc
@@ -3,14 +3,14 @@ MossdeepCity_PokemonCenter_1F_MapScripts:: @ 815A8D0
.byte 0
MossdeepCity_PokemonCenter_1F_MapScript1_15A8D6:: @ 815A8D6
- sethealplace 9
+ setrespawn 9
end
MossdeepCity_PokemonCenter_1F_EventScript_15A8DA:: @ 815A8DA
setvar 0x800b, 1
call MossdeepCity_PokemonCenter_1F_EventScript_19FD5B
waitmessage
- waitbutton
+ waitbuttonpress
release
end
diff --git a/data/scripts/maps/MossdeepCity_SpaceCenter_1F.inc b/data/scripts/maps/MossdeepCity_SpaceCenter_1F.inc
index 260cb4b6e..884124567 100644
--- a/data/scripts/maps/MossdeepCity_SpaceCenter_1F.inc
+++ b/data/scripts/maps/MossdeepCity_SpaceCenter_1F.inc
@@ -6,7 +6,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_15AB8B:: @ 815AB8B
faceplayer
dodailyevents
specialvar RESULT, GetWeekCount
- getnumberstring 0, RESULT
+ buffernumberstring 0, RESULT
compare RESULT, 0
call_if 1, MossdeepCity_SpaceCenter_1F_EventScript_15ABBA
compare RESULT, 1
@@ -32,13 +32,13 @@ MossdeepCity_SpaceCenter_1F_EventScript_15ABCC:: @ 815ABCC
MossdeepCity_SpaceCenter_1F_EventScript_15ABD5:: @ 815ABD5
lock
faceplayer
- checkflag 192
+ checkflag FLAG_RECEIVED_SUN_STONE_MOSSDEEP
goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_15AC0C
msgbox MossdeepCity_SpaceCenter_1F_Text_18E335, 4
- giveitem ITEM_SUN_STONE
+ giveitem_std ITEM_SUN_STONE
compare RESULT, 0
goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_1A029B
- setflag 192
+ setflag FLAG_RECEIVED_SUN_STONE_MOSSDEEP
msgbox MossdeepCity_SpaceCenter_1F_Text_18E39B, 4
release
end
diff --git a/data/scripts/maps/MossdeepCity_StevensHouse.inc b/data/scripts/maps/MossdeepCity_StevensHouse.inc
index 8bf899780..7e08cfa69 100644
--- a/data/scripts/maps/MossdeepCity_StevensHouse.inc
+++ b/data/scripts/maps/MossdeepCity_StevensHouse.inc
@@ -5,12 +5,12 @@ MossdeepCity_StevensHouse_MapScripts:: @ 815A9C5
.byte 0
MossdeepCity_StevensHouse_MapScript1_15A9D5:: @ 815A9D5
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
call_if 0, MossdeepCity_StevensHouse_EventScript_15A9DF
end
MossdeepCity_StevensHouse_EventScript_15A9DF:: @ 815A9DF
- setmaptile 6, 4, 753, 1
+ setmetatile 6, 4, 753, 1
return
MossdeepCity_StevensHouse_MapScript1_15A9E9:: @ 815A9E9
@@ -39,9 +39,9 @@ MossdeepCity_StevensHouse_EventScript_15AA0B:: @ 815AA0B
applymovement 1, MossdeepCity_StevensHouse_Movement_15AA6E
waitmovement 0
msgbox MossdeepCity_StevensHouse_Text_18DA77, 4
- giveitem ITEM_HM08
- setflag 123
- setflag 302
+ giveitem_std ITEM_HM08
+ setflag FLAG_RECEIVED_HM08
+ setflag FLAG_OMIT_DIVE_FROM_STEVEN_LETTER
msgbox MossdeepCity_StevensHouse_Text_18DB22, 4
closemessage
delay 20
@@ -74,7 +74,7 @@ MossdeepCity_StevensHouse_EventScript_15AA7C:: @ 815AA7C
msgbox MossdeepCity_StevensHouse_Text_18DD12, 5
compare RESULT, 0
goto_if_eq MossdeepCity_StevensHouse_EventScript_15AAE6
- countpokemon
+ getpartysize
compare RESULT, 6
goto_if_eq MossdeepCity_StevensHouse_EventScript_15AADC
copyvar 0x8004, RESULT
@@ -83,13 +83,13 @@ MossdeepCity_StevensHouse_EventScript_15AA7C:: @ 815AA7C
message MossdeepCity_StevensHouse_Text_18DD61
waitfanfare
waitmessage
- givepoke SPECIES_BELDUM, 5, ITEM_NONE, 0x0, 0x0, 0
- getspeciesname 1, SPECIES_BELDUM
+ 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
- setflag 968
- setflag 298
+ setflag FLAG_HIDE_BELDUM_BALL_STEVENS_HOUSE
+ setflag FLAG_RECEIVED_BELDUM
releaseall
end
@@ -113,7 +113,7 @@ MossdeepCity_StevensHouse_EventScript_15AAF9:: @ 815AAF9
MossdeepCity_StevensHouse_EventScript_15AB02:: @ 815AB02
lockall
- checkflag 302
+ checkflag FLAG_OMIT_DIVE_FROM_STEVEN_LETTER
goto_if_eq MossdeepCity_StevensHouse_EventScript_15AB16
msgbox MossdeepCity_StevensHouse_Text_18DF1A, 4
releaseall
@@ -125,6 +125,6 @@ MossdeepCity_StevensHouse_EventScript_15AB16:: @ 815AB16
end
MossdeepCity_StevensHouse_EventScript_15AB20:: @ 815AB20
- giveitem ITEM_HM08, 1, 1
- setflag 123
+ giveitem_std ITEM_HM08, 1, 1
+ setflag FLAG_RECEIVED_HM08
end
diff --git a/data/scripts/maps/MtChimney.inc b/data/scripts/maps/MtChimney.inc
index a8eec9a32..a51695b59 100644
--- a/data/scripts/maps/MtChimney.inc
+++ b/data/scripts/maps/MtChimney.inc
@@ -9,7 +9,7 @@ MtChimney_MapScript1_15CF87:: @ 815CF87
end
MtChimney_MapScript1_15CF92:: @ 815CF92
- tileeffect 1
+ setstepcallback 1
end
MtChimney_EventScript_15CF95:: @ 815CF95
@@ -27,7 +27,7 @@ MtChimney_EventScript_15CF95:: @ 815CF95
checkitemspace ITEM_LAVA_COOKIE, 1
compare RESULT, 1
call_if 1, MtChimney_EventScript_15D000
- giveitem ITEM_LAVA_COOKIE
+ giveitem_std ITEM_LAVA_COOKIE
compare RESULT, 0
goto_if_eq MtChimney_EventScript_15CFF3
hidemoneybox 0, 0
@@ -406,16 +406,16 @@ MtChimney_EventScript_15D174:: @ 815D174
MtChimney_EventScript_15D17D:: @ 815D17D
lockall
- checkflag 139
+ checkflag FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY
goto_if 0, MtChimney_EventScript_15D1D0
- checkflag 115
+ checkflag FLAG_RECEIVED_METEORITE
goto_if_eq MtChimney_EventScript_15D1C6
msgbox MtChimney_Text_195870, 5
compare RESULT, 0
goto_if_eq MtChimney_EventScript_15D1BC
msgbox MtChimney_Text_1958C6, 4
- giveitem ITEM_METEORITE
- setflag 115
+ giveitem_std ITEM_METEORITE
+ setflag FLAG_RECEIVED_METEORITE
releaseall
end
diff --git a/data/scripts/maps/MtPyre_1F.inc b/data/scripts/maps/MtPyre_1F.inc
index 026d54bfe..7073000d5 100644
--- a/data/scripts/maps/MtPyre_1F.inc
+++ b/data/scripts/maps/MtPyre_1F.inc
@@ -4,13 +4,13 @@ MtPyre_1F_MapScripts:: @ 815D322
MtPyre_1F_EventScript_15D323:: @ 815D323
lock
faceplayer
- checkflag 282
+ checkflag FLAG_RECEIVED_CLEANSE_TAG
goto_if_eq MtPyre_1F_EventScript_15D352
msgbox MtPyre_1F_Text_196151, 4
- giveitem ITEM_CLEANSE_TAG
+ giveitem_std ITEM_CLEANSE_TAG
compare RESULT, 0
goto_if_eq MtPyre_1F_EventScript_1A029B
- setflag 282
+ setflag FLAG_RECEIVED_CLEANSE_TAG
release
end
diff --git a/data/scripts/maps/MtPyre_2F.inc b/data/scripts/maps/MtPyre_2F.inc
index 8d48dac84..1d2368597 100644
--- a/data/scripts/maps/MtPyre_2F.inc
+++ b/data/scripts/maps/MtPyre_2F.inc
@@ -5,8 +5,8 @@ MtPyre_2F_MapScripts:: @ 815D36E
.byte 0
MtPyre_2F_MapScript1_15D37E:: @ 815D37E
- tileeffect 7
- setholewarp MtPyre_1F, 255, 0, 0
+ setstepcallback 7
+ setholewarp MAP_MT_PYRE_1F, 255, 0, 0
end
MtPyre_2F_EventScript_15D389:: @ 815D389
diff --git a/data/scripts/maps/MtPyre_Summit.inc b/data/scripts/maps/MtPyre_Summit.inc
index 533fb6e90..73e2e4d97 100644
--- a/data/scripts/maps/MtPyre_Summit.inc
+++ b/data/scripts/maps/MtPyre_Summit.inc
@@ -47,8 +47,8 @@ MtPyre_Summit_EventScript_15D4E1:: @ 815D4E1
removeobject 4
removeobject 5
removeobject 6
- setflag 916
- setflag 917
+ setflag FLAG_HIDE_LEADER_MT_PYRE_SUMMIT
+ setflag FLAG_HIDE_GRUNTS_MT_PYRE_SUMMIT
fadescreen 0
delay 20
call MtPyre_Summit_EventScript_15D57A
@@ -63,16 +63,16 @@ MtPyre_Summit_EventScript_15D4E1:: @ 815D4E1
.else
msgbox MtPyre_Summit_Text_1B5FE6, 4
.endif
- giveitem ITEM_RED_OR_BLUE_ORB
- setflag 212
+ giveitem_std ITEM_RED_OR_BLUE_ORB
+ setflag FLAG_RECEIVED_RED_OR_BLUE_ORB
releaseall
end
MtPyre_Summit_EventScript_15D57A:: @ 815D57A
- setflag 111
+ setflag FLAG_MT_PYRE_ORB_STOLEN
setvar 0x4058, 1
- clearflag 840
- clearflag 835
+ clearflag FLAG_HIDE_STERN_SLATEPORT
+ clearflag FLAG_HIDE_GABBY_AND_TY_SLATEPORT
setvar 0x40a0, 1
setvar 0x40b9, 1
return
@@ -169,11 +169,11 @@ MtPyre_Summit_EventScript_15D61A:: @ 815D61A
MtPyre_Summit_EventScript_15D623:: @ 815D623
lock
faceplayer
- checkflag 259
+ checkflag FLAG_RETURNED_RED_OR_BLUE_ORB
goto_if_eq MtPyre_Summit_EventScript_15D6C4
- checkflag 113
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
goto_if_eq MtPyre_Summit_EventScript_15D64A
- checkflag 129
+ checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
goto_if_eq MtPyre_Summit_EventScript_15D6BA
.ifdef SAPPHIRE
msgbox UnknownString_81B54BE, 4
@@ -210,7 +210,7 @@ MtPyre_Summit_EventScript_15D669:: @ 815D669
.else
msgbox MtPyre_Summit_Text_1B639C, 4
.endif
- setflag 259
+ setflag FLAG_RETURNED_RED_OR_BLUE_ORB
release
end
diff --git a/data/scripts/maps/NewMauville_Entrance.inc b/data/scripts/maps/NewMauville_Entrance.inc
index 6429ff2f9..a88b35087 100644
--- a/data/scripts/maps/NewMauville_Entrance.inc
+++ b/data/scripts/maps/NewMauville_Entrance.inc
@@ -9,16 +9,16 @@ NewMauville_Entrance_MapScript1_15E495:: @ 815E495
end
NewMauville_Entrance_EventScript_15E4A1:: @ 815E4A1
- setmaptile 3, 0, 788, 1
- setmaptile 4, 0, 789, 1
- setmaptile 5, 0, 790, 1
- setmaptile 3, 1, 796, 1
- setmaptile 4, 1, 797, 1
- setmaptile 5, 1, 798, 1
+ setmetatile 3, 0, 788, 1
+ setmetatile 4, 0, 789, 1
+ setmetatile 5, 0, 790, 1
+ setmetatile 3, 1, 796, 1
+ setmetatile 4, 1, 797, 1
+ setmetatile 5, 1, 798, 1
return
NewMauville_Entrance_MapScript1_15E4D8:: @ 815E4D8
- setflag 2112
+ setflag FLAG_LANDMARK_NEW_MAUVILLE
end
NewMauville_Entrance_EventScript_15E4DC:: @ 815E4DC
@@ -33,12 +33,12 @@ NewMauville_Entrance_EventScript_15E4DC:: @ 815E4DC
compare RESULT, 0
goto_if_eq NewMauville_Entrance_EventScript_15E55D
msgbox NewMauville_Entrance_Text_1982EA, 4
- setmaptile 3, 0, 707, 0
- setmaptile 4, 0, 708, 0
- setmaptile 5, 0, 709, 0
- setmaptile 3, 1, 715, 1
- setmaptile 4, 1, 716, 0
- setmaptile 5, 1, 717, 1
+ setmetatile 3, 0, 707, 0
+ setmetatile 4, 0, 708, 0
+ setmetatile 5, 0, 709, 0
+ setmetatile 3, 1, 715, 1
+ setmetatile 4, 1, 716, 0
+ setmetatile 5, 1, 717, 1
special DrawWholeMapView
playse 20
setvar 0x40ba, 1
diff --git a/data/scripts/maps/NewMauville_Inside.inc b/data/scripts/maps/NewMauville_Inside.inc
index 2d2a46ab4..aefb23c61 100644
--- a/data/scripts/maps/NewMauville_Inside.inc
+++ b/data/scripts/maps/NewMauville_Inside.inc
@@ -9,7 +9,7 @@ NewMauville_Inside_MapScript1_15E56F:: @ 815E56F
call_if 1, NewMauville_Inside_EventScript_15E5DA
compare 0x4002, 1
call_if 1, NewMauville_Inside_EventScript_15E728
- checkflag 2145
+ checkflag FLAG_SYS_CTRL_OBJ_DELETE
call_if 1, NewMauville_Inside_EventScript_15E58F
end
@@ -48,83 +48,83 @@ NewMauville_Inside_EventScript_15E5C2:: @ 815E5C2
end
NewMauville_Inside_EventScript_15E5DA:: @ 815E5DA
- setmaptile 23, 34, 617, 1
- setmaptile 23, 35, 625, 1
- setmaptile 23, 36, 621, 0
- setmaptile 23, 37, 641, 0
- setmaptile 10, 16, 617, 1
- setmaptile 10, 17, 625, 1
- setmaptile 10, 18, 621, 0
- setmaptile 10, 19, 641, 0
- setmaptile 10, 0, 617, 1
- setmaptile 10, 1, 625, 1
- setmaptile 10, 2, 621, 0
- setmaptile 10, 3, 641, 0
- setmaptile 37, 33, 694, 1
- setmaptile 37, 34, 702, 1
- setmaptile 37, 35, 710, 1
- setmaptile 37, 36, 718, 1
- setmaptile 28, 22, 694, 1
- setmaptile 28, 23, 702, 1
- setmaptile 28, 24, 710, 1
- setmaptile 28, 25, 718, 1
- setmaptile 10, 24, 694, 1
- setmaptile 10, 25, 702, 1
- setmaptile 10, 26, 710, 1
- setmaptile 10, 27, 718, 1
- setmaptile 21, 2, 694, 1
- setmaptile 21, 3, 702, 1
- setmaptile 21, 4, 710, 1
- setmaptile 21, 5, 718, 1
- setmaptile 6, 11, 591, 0
- setmaptile 13, 10, 591, 0
- setmaptile 16, 22, 591, 0
- setmaptile 4, 26, 591, 0
- setmaptile 30, 38, 591, 0
- setmaptile 2, 11, 558, 0
- setmaptile 17, 10, 558, 0
- setmaptile 25, 18, 558, 0
- setmaptile 18, 36, 558, 0
+ setmetatile 23, 34, 617, 1
+ setmetatile 23, 35, 625, 1
+ setmetatile 23, 36, 621, 0
+ setmetatile 23, 37, 641, 0
+ setmetatile 10, 16, 617, 1
+ setmetatile 10, 17, 625, 1
+ setmetatile 10, 18, 621, 0
+ setmetatile 10, 19, 641, 0
+ setmetatile 10, 0, 617, 1
+ setmetatile 10, 1, 625, 1
+ setmetatile 10, 2, 621, 0
+ setmetatile 10, 3, 641, 0
+ setmetatile 37, 33, 694, 1
+ setmetatile 37, 34, 702, 1
+ setmetatile 37, 35, 710, 1
+ setmetatile 37, 36, 718, 1
+ setmetatile 28, 22, 694, 1
+ setmetatile 28, 23, 702, 1
+ setmetatile 28, 24, 710, 1
+ setmetatile 28, 25, 718, 1
+ setmetatile 10, 24, 694, 1
+ setmetatile 10, 25, 702, 1
+ setmetatile 10, 26, 710, 1
+ setmetatile 10, 27, 718, 1
+ setmetatile 21, 2, 694, 1
+ setmetatile 21, 3, 702, 1
+ setmetatile 21, 4, 710, 1
+ setmetatile 21, 5, 718, 1
+ setmetatile 6, 11, 591, 0
+ setmetatile 13, 10, 591, 0
+ setmetatile 16, 22, 591, 0
+ setmetatile 4, 26, 591, 0
+ setmetatile 30, 38, 591, 0
+ setmetatile 2, 11, 558, 0
+ setmetatile 17, 10, 558, 0
+ setmetatile 25, 18, 558, 0
+ setmetatile 18, 36, 558, 0
return
NewMauville_Inside_EventScript_15E728:: @ 815E728
- setmaptile 23, 34, 695, 1
- setmaptile 23, 35, 703, 1
- setmaptile 23, 36, 711, 1
- setmaptile 23, 37, 719, 1
- setmaptile 10, 16, 695, 1
- setmaptile 10, 17, 703, 1
- setmaptile 10, 18, 711, 1
- setmaptile 10, 19, 719, 1
- setmaptile 10, 0, 695, 1
- setmaptile 10, 1, 703, 1
- setmaptile 10, 2, 711, 1
- setmaptile 10, 3, 719, 1
- setmaptile 37, 33, 617, 1
- setmaptile 37, 34, 625, 1
- setmaptile 37, 35, 621, 0
- setmaptile 37, 36, 641, 0
- setmaptile 28, 22, 617, 1
- setmaptile 28, 23, 625, 1
- setmaptile 28, 24, 621, 0
- setmaptile 28, 25, 641, 0
- setmaptile 10, 24, 617, 1
- setmaptile 10, 25, 625, 1
- setmaptile 10, 26, 621, 0
- setmaptile 10, 27, 641, 0
- setmaptile 21, 2, 617, 1
- setmaptile 21, 3, 625, 1
- setmaptile 21, 4, 621, 0
- setmaptile 21, 5, 641, 0
- setmaptile 2, 11, 591, 0
- setmaptile 17, 10, 591, 0
- setmaptile 25, 18, 591, 0
- setmaptile 18, 36, 591, 0
- setmaptile 6, 11, 566, 0
- setmaptile 13, 10, 566, 0
- setmaptile 16, 22, 566, 0
- setmaptile 4, 26, 566, 0
- setmaptile 30, 38, 566, 0
+ setmetatile 23, 34, 695, 1
+ setmetatile 23, 35, 703, 1
+ setmetatile 23, 36, 711, 1
+ setmetatile 23, 37, 719, 1
+ setmetatile 10, 16, 695, 1
+ setmetatile 10, 17, 703, 1
+ setmetatile 10, 18, 711, 1
+ setmetatile 10, 19, 719, 1
+ setmetatile 10, 0, 695, 1
+ setmetatile 10, 1, 703, 1
+ setmetatile 10, 2, 711, 1
+ setmetatile 10, 3, 719, 1
+ setmetatile 37, 33, 617, 1
+ setmetatile 37, 34, 625, 1
+ setmetatile 37, 35, 621, 0
+ setmetatile 37, 36, 641, 0
+ setmetatile 28, 22, 617, 1
+ setmetatile 28, 23, 625, 1
+ setmetatile 28, 24, 621, 0
+ setmetatile 28, 25, 641, 0
+ setmetatile 10, 24, 617, 1
+ setmetatile 10, 25, 625, 1
+ setmetatile 10, 26, 621, 0
+ setmetatile 10, 27, 641, 0
+ setmetatile 21, 2, 617, 1
+ setmetatile 21, 3, 625, 1
+ setmetatile 21, 4, 621, 0
+ setmetatile 21, 5, 641, 0
+ setmetatile 2, 11, 591, 0
+ setmetatile 17, 10, 591, 0
+ setmetatile 25, 18, 591, 0
+ setmetatile 18, 36, 591, 0
+ setmetatile 6, 11, 566, 0
+ setmetatile 13, 10, 566, 0
+ setmetatile 16, 22, 566, 0
+ setmetatile 4, 26, 566, 0
+ setmetatile 30, 38, 566, 0
return
NewMauville_Inside_EventScript_15E876:: @ 815E876
@@ -136,15 +136,15 @@ NewMauville_Inside_EventScript_15E876:: @ 815E876
end
NewMauville_Inside_EventScript_15E88B:: @ 815E88B
- setmaptile 33, 6, 591, 0
- setmaptile 32, 2, 752, 1
- setmaptile 33, 2, 753, 1
- setmaptile 34, 2, 754, 1
- setmaptile 35, 2, 755, 1
- setmaptile 32, 3, 756, 1
- setmaptile 33, 3, 757, 1
- setmaptile 34, 3, 758, 1
- setmaptile 35, 3, 759, 1
+ setmetatile 33, 6, 591, 0
+ setmetatile 32, 2, 752, 1
+ setmetatile 33, 2, 753, 1
+ setmetatile 34, 2, 754, 1
+ setmetatile 35, 2, 755, 1
+ setmetatile 32, 3, 756, 1
+ setmetatile 33, 3, 757, 1
+ setmetatile 34, 3, 758, 1
+ setmetatile 35, 3, 759, 1
special DrawWholeMapView
return
@@ -166,13 +166,13 @@ NewMauville_Inside_EventScript_15E900:: @ 815E900
faceplayer
setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE
waitse
- playpokecry SPECIES_VOLTORB, 2
+ playmoncry SPECIES_VOLTORB, 2
delay 40
- waitpokecry
- setflag 974
- setflag 2145
+ waitmoncry
+ setflag FLAG_HIDE_VOLTORB_1_NEW_MAUVILLE
+ setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
- clearflag 2145
+ clearflag FLAG_SYS_CTRL_OBJ_DELETE
release
end
@@ -181,13 +181,13 @@ NewMauville_Inside_EventScript_15E91E:: @ 815E91E
faceplayer
setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE
waitse
- playpokecry SPECIES_VOLTORB, 2
+ playmoncry SPECIES_VOLTORB, 2
delay 40
- waitpokecry
- setflag 975
- setflag 2145
+ waitmoncry
+ setflag FLAG_HIDE_VOLTORB_2_NEW_MAUVILLE
+ setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
- clearflag 2145
+ clearflag FLAG_SYS_CTRL_OBJ_DELETE
release
end
@@ -196,12 +196,12 @@ NewMauville_Inside_EventScript_15E93C:: @ 815E93C
faceplayer
setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE
waitse
- playpokecry SPECIES_VOLTORB, 2
+ playmoncry SPECIES_VOLTORB, 2
delay 40
- waitpokecry
- setflag 976
- setflag 2145
+ waitmoncry
+ setflag FLAG_HIDE_VOLTORB_3_NEW_MAUVILLE
+ setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
- clearflag 2145
+ clearflag FLAG_SYS_CTRL_OBJ_DELETE
release
end
diff --git a/data/scripts/maps/OldaleTown.inc b/data/scripts/maps/OldaleTown.inc
index e80df2cd2..465cbcfc6 100644
--- a/data/scripts/maps/OldaleTown.inc
+++ b/data/scripts/maps/OldaleTown.inc
@@ -4,12 +4,12 @@ OldaleTown_MapScripts:: @ 814DD62
OldaleTown_MapScript1_14DD68:: @ 814DD68
call OldaleTown_EventScript_1A014E
- setflag 2064
- checkflag 116
+ setflag FLAG_VISITED_OLDALE_TOWN
+ checkflag FLAG_ADVENTURE_STARTED
call_if 0, OldaleTown_EventScript_14DD92
- checkflag 132
+ checkflag FLAG_RECEIVED_POTION_OLDALE
call_if 0, OldaleTown_EventScript_14DD9E
- checkflag 116
+ checkflag FLAG_ADVENTURE_STARTED
call_if 1, OldaleTown_EventScript_14DD8C
end
@@ -38,11 +38,11 @@ OldaleTown_EventScript_14DDB3:: @ 814DDB3
OldaleTown_EventScript_14DDBC:: @ 814DDBC
lock
faceplayer
- checkflag 132
+ checkflag FLAG_RECEIVED_POTION_OLDALE
goto_if_eq OldaleTown_EventScript_14DE79
- checkflag 1
+ checkflag FLAG_TEMP_1
goto_if_eq OldaleTown_EventScript_14DE79
- setflag 1
+ setflag FLAG_TEMP_1
playbgm 420, 0
msgbox OldaleTown_Text_16AEF2, 4
closemessage
@@ -75,11 +75,11 @@ OldaleTown_EventScript_14DE35:: @ 814DE35
OldaleTown_EventScript_14DE4C:: @ 814DE4C
msgbox OldaleTown_Text_16AF2F, 4
- giveitem ITEM_POTION
+ giveitem_std ITEM_POTION
compare RESULT, 0
goto_if_eq OldaleTown_EventScript_14DE83
msgbox OldaleTown_Text_16AFE1, 4
- setflag 132
+ setflag FLAG_RECEIVED_POTION_OLDALE
fadedefaultbgm
release
end
@@ -195,7 +195,7 @@ OldaleTown_Movement_14DECB:: @ 814DECB
OldaleTown_EventScript_14DEDF:: @ 814DEDF
lock
faceplayer
- checkflag 116
+ checkflag FLAG_ADVENTURE_STARTED
goto_if_eq OldaleTown_EventScript_14DF26
msgbox OldaleTown_Text_16B0CC, 4
closemessage
@@ -279,7 +279,7 @@ OldaleTown_EventScript_14DFC6:: @ 814DFC6
waitmovement 0
removeobject 4
setvar 0x40c7, 2
- setflag 979
+ setflag FLAG_HIDE_RIVAL_OLDALE_TOWN
releaseall
end
diff --git a/data/scripts/maps/OldaleTown_Mart.inc b/data/scripts/maps/OldaleTown_Mart.inc
index b9698b58f..f90c787c2 100644
--- a/data/scripts/maps/OldaleTown_Mart.inc
+++ b/data/scripts/maps/OldaleTown_Mart.inc
@@ -6,7 +6,7 @@ OldaleTown_Mart_EventScript_152F79:: @ 8152F79
faceplayer
message OldaleTown_Mart_Text_1A0BE4
waitmessage
- checkflag 116
+ checkflag FLAG_ADVENTURE_STARTED
goto_if_eq OldaleTown_Mart_EventScript_152FA8
pokemart OldaleTown_Mart_Items1
msgbox OldaleTown_Mart_Text_1A0C02, 4
@@ -43,7 +43,7 @@ OldaleTown_Mart_Items2:: @ 8152FB8
OldaleTown_Mart_EventScript_152FC6:: @ 8152FC6
lock
faceplayer
- checkflag 116
+ checkflag FLAG_ADVENTURE_STARTED
goto_if_eq OldaleTown_Mart_EventScript_152FDB
msgbox OldaleTown_Mart_Text_174A8A, 4
release
diff --git a/data/scripts/maps/OldaleTown_PokemonCenter_1F.inc b/data/scripts/maps/OldaleTown_PokemonCenter_1F.inc
index 494f109fe..cbf3acd27 100644
--- a/data/scripts/maps/OldaleTown_PokemonCenter_1F.inc
+++ b/data/scripts/maps/OldaleTown_PokemonCenter_1F.inc
@@ -3,7 +3,7 @@ OldaleTown_PokemonCenter_1F_MapScripts:: @ 8152F08
.byte 0
OldaleTown_PokemonCenter_1F_MapScript1_152F0E:: @ 8152F0E
- sethealplace 14
+ setrespawn 14
call OldaleTown_PokemonCenter_1F_EventScript_19FD1B
end
@@ -11,7 +11,7 @@ OldaleTown_PokemonCenter_1F_EventScript_152F17:: @ 8152F17
setvar 0x800b, 1
call OldaleTown_PokemonCenter_1F_EventScript_19FD5B
waitmessage
- waitbutton
+ waitbuttonpress
release
end
@@ -26,7 +26,7 @@ OldaleTown_PokemonCenter_1F_EventScript_152F2E:: @ 8152F2E
OldaleTown_PokemonCenter_1F_EventScript_152F37:: @ 8152F37
lock
faceplayer
- checkflag 2049
+ checkflag FLAG_SYS_POKEDEX_GET
goto_if_eq OldaleTown_PokemonCenter_1F_EventScript_152F4C
msgbox OldaleTown_PokemonCenter_1F_Text_1749C0, 4
release
diff --git a/data/scripts/maps/PacifidlogTown.inc b/data/scripts/maps/PacifidlogTown.inc
index c7cfb08df..d7ac80a0a 100644
--- a/data/scripts/maps/PacifidlogTown.inc
+++ b/data/scripts/maps/PacifidlogTown.inc
@@ -4,11 +4,11 @@ PacifidlogTown_MapScripts:: @ 814E8EE
.byte 0
PacifidlogTown_MapScript1_14E8F9:: @ 814E8F9
- setflag 2069
+ setflag FLAG_VISITED_PACIFIDLOG_TOWN
end
PacifidlogTown_MapScript1_14E8FD:: @ 814E8FD
- tileeffect 3
+ setstepcallback 3
end
PacifidlogTown_EventScript_14E900:: @ 814E900
diff --git a/data/scripts/maps/PacifidlogTown_House2.inc b/data/scripts/maps/PacifidlogTown_House2.inc
index e04a8caae..f073201ca 100644
--- a/data/scripts/maps/PacifidlogTown_House2.inc
+++ b/data/scripts/maps/PacifidlogTown_House2.inc
@@ -6,13 +6,13 @@ PacifidlogTown_House2_EventScript_154168:: @ 8154168
faceplayer
dodailyevents
call PacifidlogTown_House2_EventScript_1541B4
- checkflag 299
+ checkflag FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK
goto_if_eq PacifidlogTown_House2_EventScript_154254
- checkflag 300
+ checkflag FLAG_MET_FANCLUB_YOUNGER_BROTHER
call_if 1, PacifidlogTown_House2_EventScript_1541CE
- checkflag 300
+ checkflag FLAG_MET_FANCLUB_YOUNGER_BROTHER
call_if 0, PacifidlogTown_House2_EventScript_1541D7
- setflag 300
+ setflag FLAG_MET_FANCLUB_YOUNGER_BROTHER
specialvar RESULT, GetLeadMonFriendshipScore
compare RESULT, 4
goto_if 4, PacifidlogTown_House2_EventScript_1541EC
@@ -23,7 +23,7 @@ PacifidlogTown_House2_EventScript_154168:: @ 8154168
end
PacifidlogTown_House2_EventScript_1541B4:: @ 81541B4
- checkflag 299
+ checkflag FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK
goto_if 0, PacifidlogTown_House2_EventScript_1A14DC
specialvar RESULT, sub_810F908
compare RESULT, 0
@@ -40,15 +40,15 @@ PacifidlogTown_House2_EventScript_1541D7:: @ 81541D7
return
PacifidlogTown_House2_EventScript_1541E8:: @ 81541E8
- clearflag 299
+ clearflag FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK
return
PacifidlogTown_House2_EventScript_1541EC:: @ 81541EC
msgbox PacifidlogTown_House2_Text_179169, 4
- giveitem ITEM_TM27
+ giveitem_std ITEM_TM27
compare RESULT, 0
goto_if_eq PacifidlogTown_House2_EventScript_1A029B
- setflag 299
+ setflag FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK
special sub_810F950
msgbox PacifidlogTown_House2_Text_179283, 4
release
@@ -61,10 +61,10 @@ PacifidlogTown_House2_EventScript_15421B:: @ 815421B
PacifidlogTown_House2_EventScript_154225:: @ 8154225
msgbox PacifidlogTown_House2_Text_17922D, 4
- giveitem ITEM_TM21
+ giveitem_std ITEM_TM21
compare RESULT, 0
goto_if_eq PacifidlogTown_House2_EventScript_1A029B
- setflag 299
+ setflag FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK
special sub_810F950
msgbox PacifidlogTown_House2_Text_179283, 4
release
@@ -72,7 +72,7 @@ PacifidlogTown_House2_EventScript_154225:: @ 8154225
PacifidlogTown_House2_EventScript_154254:: @ 8154254
specialvar RESULT, sub_810F908
- getnumberstring 0, RESULT
+ buffernumberstring 0, RESULT
msgbox PacifidlogTown_House2_Text_1792F2, 4
release
end
@@ -81,9 +81,9 @@ PacifidlogTown_House2_EventScript_154267:: @ 8154267
lock
faceplayer
waitse
- playpokecry SPECIES_AZURILL, 0
+ playmoncry SPECIES_AZURILL, 0
msgbox PacifidlogTown_House2_Text_17938B, 4
- waitpokecry
+ waitmoncry
msgbox PacifidlogTown_House2_Text_17939B, 4
release
end
@@ -92,9 +92,9 @@ PacifidlogTown_House2_EventScript_154282:: @ 8154282
lock
faceplayer
waitse
- playpokecry SPECIES_AZURILL, 2
+ playmoncry SPECIES_AZURILL, 2
msgbox PacifidlogTown_House2_Text_1793CC, 4
- waitpokecry
+ waitmoncry
msgbox PacifidlogTown_House2_Text_1793DD, 4
release
end
diff --git a/data/scripts/maps/PacifidlogTown_House3.inc b/data/scripts/maps/PacifidlogTown_House3.inc
index 28b9dbd80..624a221d5 100644
--- a/data/scripts/maps/PacifidlogTown_House3.inc
+++ b/data/scripts/maps/PacifidlogTown_House3.inc
@@ -4,7 +4,7 @@ PacifidlogTown_House3_MapScripts:: @ 815429D
PacifidlogTown_House3_EventScript_15429E:: @ 815429E
lock
faceplayer
- checkflag 154
+ checkflag FLAG_PACIFIDLOG_NPC_TRADE_COMPLETED
goto_if_eq PacifidlogTown_House3_EventScript_154338
setvar 0x8008, 2
copyvar 0x8004, 0x8008
@@ -28,9 +28,9 @@ PacifidlogTown_House3_EventScript_15429E:: @ 815429E
special sub_804DB68
special sub_804E174
waitstate
- getspeciesname 0, 0x8009
+ bufferspeciesname 0, 0x8009
msgbox PacifidlogTown_House3_Text_1794C4, 4
- setflag 154
+ setflag FLAG_PACIFIDLOG_NPC_TRADE_COMPLETED
release
end
@@ -40,7 +40,7 @@ PacifidlogTown_House3_EventScript_154320:: @ 8154320
end
PacifidlogTown_House3_EventScript_15432A:: @ 815432A
- getspeciesname 0, 0x8009
+ bufferspeciesname 0, 0x8009
msgbox PacifidlogTown_House3_Text_1794DF, 4
release
end
diff --git a/data/scripts/maps/PacifidlogTown_PokemonCenter_1F.inc b/data/scripts/maps/PacifidlogTown_PokemonCenter_1F.inc
index 64dd5008c..95d5448e8 100644
--- a/data/scripts/maps/PacifidlogTown_PokemonCenter_1F.inc
+++ b/data/scripts/maps/PacifidlogTown_PokemonCenter_1F.inc
@@ -3,14 +3,14 @@ PacifidlogTown_PokemonCenter_1F_MapScripts:: @ 81540FF
.byte 0
PacifidlogTown_PokemonCenter_1F_MapScript1_154105:: @ 8154105
- sethealplace 19
+ setrespawn 19
end
@ 8154109
setvar 0x800b, 1
call VerdanturfTown_PokemonCenter_1F_EventScript_19FD5B
waitmessage
- waitbutton
+ waitbuttonpress
release
end
diff --git a/data/scripts/maps/PetalburgCity.inc b/data/scripts/maps/PetalburgCity.inc
index 1c2711b83..45cdce991 100644
--- a/data/scripts/maps/PetalburgCity.inc
+++ b/data/scripts/maps/PetalburgCity.inc
@@ -4,7 +4,7 @@ PetalburgCity_MapScripts:: @ 814B70C
.byte 0
PetalburgCity_MapScript1_14B717:: @ 814B717
- setflag 2070
+ setflag FLAG_VISITED_PETALBURG_CITY
compare 0x4057, 0
call_if 1, PetalburgCity_EventScript_14B731
compare 0x4057, 2
@@ -45,7 +45,7 @@ PetalburgCity_EventScript_14B747:: @ 814B747
clearflag 0x4001
special LoadPlayerParty
setvar 0x4085, 1
- warp PetalburgCity_Gym, 255, 4, 108
+ warp MAP_PETALBURG_CITY_GYM, 255, 4, 108
waitstate
releaseall
end
diff --git a/data/scripts/maps/PetalburgCity_Gym.inc b/data/scripts/maps/PetalburgCity_Gym.inc
index b2d104894..add786bf0 100644
--- a/data/scripts/maps/PetalburgCity_Gym.inc
+++ b/data/scripts/maps/PetalburgCity_Gym.inc
@@ -48,7 +48,7 @@ PetalburgCity_Gym_MapScript1_15451B:: @ 815451B
call_if 1, PetalburgCity_Gym_EventScript_15453B
compare 0x4085, 6
call_if 0, PetalburgCity_Gym_EventScript_154543
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
call_if 1, PetalburgCity_Gym_EventScript_15454B
end
@@ -86,7 +86,7 @@ PetalburgCity_Gym_EventScript_15456C:: @ 815456C
waitmovement 0
playse 9
removeobject 10
- setflag 726
+ setflag FLAG_HIDE_WALLY_PETALBURG
delay 30
applymovement 255, PetalburgCity_Gym_Movement_1A0841
waitmovement 0
@@ -205,14 +205,14 @@ PetalburgCity_Gym_EventScript_154669:: @ 8154669
compare 0x8008, 3
call_if 1, PetalburgCity_Gym_EventScript_154872
removeobject 10
- setflag 728
+ setflag FLAG_HIDE_WALLY_MOM_PETALBURG_1
setvar 0x4085, 1
setvar 0x4057, 2
- clearflag 726
- clearflag 866
- setflag 889
+ clearflag FLAG_HIDE_WALLY_PETALBURG
+ clearflag FLAG_HIDE_WALLY_PETALBURG_GYM
+ setflag FLAG_HIDE_RIVAL_BIRCH_LAB
special InitBirchState
- warp PetalburgCity, 255, 15, 8
+ warp MAP_PETALBURG_CITY, 255, 15, 8
waitstate
release
end
@@ -354,9 +354,9 @@ PetalburgCity_Gym_EventScript_15493D:: @ 815493D
call PetalburgCity_Gym_EventScript_154969
compare RESULT, 1
goto_if_eq PetalburgCity_Gym_EventScript_1549B8
- checkflag 169
+ checkflag FLAG_RECEIVED_TM42
goto_if 0, PetalburgCity_Gym_EventScript_154A2C
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if_eq PetalburgCity_Gym_EventScript_154B69
msgbox PetalburgCity_Gym_Text_17AA6B, 4
release
@@ -383,7 +383,7 @@ PetalburgCity_Gym_EventScript_1549B2:: @ 81549B2
return
PetalburgCity_Gym_EventScript_1549B8:: @ 81549B8
- giveitem ITEM_ENIGMA_BERRY
+ giveitem_std ITEM_ENIGMA_BERRY
compare RESULT, 0
goto_if_eq PetalburgCity_Gym_EventScript_1A029B
setvar 0x402d, 0
@@ -397,25 +397,25 @@ PetalburgCity_Gym_EventScript_1549D6:: @ 81549D6
waitmessage
call PetalburgCity_Gym_EventScript_1A02C5
msgbox PetalburgCity_Gym_Text_17A805, 4
- setflag 1217
+ setflag FLAG_DEFEATED_PETALBURG_GYM
setvar 0x4085, 7
- setflag 2059
+ setflag FLAG_BADGE05_GET
call PetalburgCity_Gym_EventScript_1A0424
- setflag 913
- clearflag 912
+ setflag FLAG_HIDE_WATTSON_MAUVILLE_GYM
+ clearflag FLAG_HIDE_WATTSON_MAUVILLE
setvar 0x8008, 5
call PetalburgCity_Gym_EventScript_1A01C0
- clearflag 940
+ clearflag FLAG_HIDE_SLUDGE_BOMB_MAN_DEWFORD_HALL
call PetalburgCity_Gym_EventScript_1544ED
special DrawWholeMapView
goto PetalburgCity_Gym_EventScript_154A2C
end
PetalburgCity_Gym_EventScript_154A2C:: @ 8154A2C
- giveitem ITEM_TM42
+ giveitem_std ITEM_TM42
compare RESULT, 0
goto_if_eq PetalburgCity_Gym_EventScript_1A029B
- setflag 169
+ setflag FLAG_RECEIVED_TM42
msgbox PetalburgCity_Gym_Text_17A8CF, 4
msgbox PetalburgCity_Gym_Text_17A976, 4
closemessage
@@ -606,7 +606,7 @@ PetalburgCity_Gym_EventScript_154B73:: @ 8154B73
PetalburgCity_Gym_EventScript_154BA8:: @ 8154BA8
closemessage
delay 30
- warpdoor PetalburgCity_Gym, 255, 32776, 32777
+ warpdoor MAP_PETALBURG_CITY_GYM, 255, 32776, 32777
waitstate
releaseall
end
@@ -765,7 +765,7 @@ PetalburgCity_Gym_EventScript_154DC3:: @ 8154DC3
PetalburgCity_Gym_EventScript_154DF6:: @ 8154DF6
trainerbattle 2, OPPONENT_RANDALL, 0, PetalburgCity_Gym_Text_17ADA5, PetalburgCity_Gym_Text_17AE11, PetalburgCity_Gym_EventScript_154E1A
- checkflag 1217
+ checkflag FLAG_DEFEATED_PETALBURG_GYM
goto_if_eq PetalburgCity_Gym_EventScript_154E29
msgbox PetalburgCity_Gym_Text_17AE30, 6
end
@@ -783,7 +783,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 1217
+ checkflag FLAG_DEFEATED_PETALBURG_GYM
goto_if_eq PetalburgCity_Gym_EventScript_154E65
msgbox PetalburgCity_Gym_Text_17AFD3, 6
end
@@ -801,7 +801,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 1217
+ checkflag FLAG_DEFEATED_PETALBURG_GYM
goto_if_eq PetalburgCity_Gym_EventScript_154EA1
msgbox PetalburgCity_Gym_Text_17B12C, 6
end
@@ -819,7 +819,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 1217
+ checkflag FLAG_DEFEATED_PETALBURG_GYM
goto_if_eq PetalburgCity_Gym_EventScript_154EDD
msgbox PetalburgCity_Gym_Text_17B2E4, 6
end
@@ -837,7 +837,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 1217
+ checkflag FLAG_DEFEATED_PETALBURG_GYM
goto_if_eq PetalburgCity_Gym_EventScript_154F19
msgbox PetalburgCity_Gym_Text_17B46F, 6
end
@@ -855,7 +855,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 1217
+ checkflag FLAG_DEFEATED_PETALBURG_GYM
goto_if_eq PetalburgCity_Gym_EventScript_154F55
msgbox PetalburgCity_Gym_Text_17B5EA, 6
end
@@ -873,7 +873,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 1217
+ checkflag FLAG_DEFEATED_PETALBURG_GYM
goto_if_eq PetalburgCity_Gym_EventScript_154F91
msgbox PetalburgCity_Gym_Text_17B749, 6
end
@@ -962,51 +962,51 @@ PetalburgCity_Gym_EventScript_155081:: @ 8155081
return
PetalburgCity_Gym_EventScript_1550A2:: @ 81550A2
- setmaptile 6, 85, 528, 0
- setmaptile 7, 85, 529, 0
- setmaptile 1, 98, 528, 0
- setmaptile 2, 98, 529, 0
+ setmetatile 6, 85, 528, 0
+ setmetatile 7, 85, 529, 0
+ setmetatile 1, 98, 528, 0
+ setmetatile 2, 98, 529, 0
return
PetalburgCity_Gym_EventScript_1550C7:: @ 81550C7
- setmaptile 6, 46, 528, 0
- setmaptile 7, 46, 529, 0
- setmaptile 1, 59, 528, 0
- setmaptile 2, 59, 529, 0
+ setmetatile 6, 46, 528, 0
+ setmetatile 7, 46, 529, 0
+ setmetatile 1, 59, 528, 0
+ setmetatile 2, 59, 529, 0
return
PetalburgCity_Gym_EventScript_1550EC:: @ 81550EC
- setmaptile 6, 59, 528, 0
- setmaptile 7, 59, 529, 0
- setmaptile 1, 72, 528, 0
- setmaptile 2, 72, 529, 0
+ setmetatile 6, 59, 528, 0
+ setmetatile 7, 59, 529, 0
+ setmetatile 1, 72, 528, 0
+ setmetatile 2, 72, 529, 0
return
PetalburgCity_Gym_EventScript_155111:: @ 8155111
- setmaptile 1, 20, 528, 0
- setmaptile 2, 20, 529, 0
+ setmetatile 1, 20, 528, 0
+ setmetatile 2, 20, 529, 0
return
PetalburgCity_Gym_EventScript_155124:: @ 8155124
- setmaptile 6, 20, 528, 0
- setmaptile 7, 20, 529, 0
- setmaptile 1, 33, 528, 0
- setmaptile 2, 33, 529, 0
+ setmetatile 6, 20, 528, 0
+ setmetatile 7, 20, 529, 0
+ setmetatile 1, 33, 528, 0
+ setmetatile 2, 33, 529, 0
return
PetalburgCity_Gym_EventScript_155149:: @ 8155149
- setmaptile 6, 33, 528, 0
- setmaptile 7, 33, 529, 0
+ setmetatile 6, 33, 528, 0
+ setmetatile 7, 33, 529, 0
return
PetalburgCity_Gym_EventScript_15515C:: @ 815515C
- setmaptile 1, 7, 528, 0
- setmaptile 2, 7, 529, 0
+ setmetatile 1, 7, 528, 0
+ setmetatile 2, 7, 529, 0
return
PetalburgCity_Gym_EventScript_15516F:: @ 815516F
- setmaptile 6, 7, 528, 0
- setmaptile 7, 7, 529, 0
+ setmetatile 6, 7, 528, 0
+ setmetatile 7, 7, 529, 0
return
PetalburgCity_Gym_EventScript_155182:: @ 8155182
@@ -1021,7 +1021,7 @@ PetalburgCity_Gym_EventScript_155187:: @ 8155187
PetalburgCity_Gym_EventScript_15518B:: @ 815518B
lock
faceplayer
- checkflag 1217
+ checkflag FLAG_DEFEATED_PETALBURG_GYM
goto_if_eq PetalburgCity_Gym_EventScript_1551A0
msgbox PetalburgCity_Gym_Text_17AB96, 4
release
@@ -1034,14 +1034,14 @@ PetalburgCity_Gym_EventScript_1551A0:: @ 81551A0
PetalburgCity_Gym_EventScript_1551AA:: @ 81551AA
lockall
- checkflag 2059
+ checkflag FLAG_BADGE05_GET
goto_if_eq PetalburgCity_Gym_EventScript_1551CA
goto PetalburgCity_Gym_EventScript_1551D4
end
PetalburgCity_Gym_EventScript_1551BA:: @ 81551BA
lockall
- checkflag 2059
+ checkflag FLAG_BADGE05_GET
goto_if_eq 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 e4186eaae..66e247323 100644
--- a/data/scripts/maps/PetalburgCity_Mart.inc
+++ b/data/scripts/maps/PetalburgCity_Mart.inc
@@ -6,7 +6,7 @@ PetalburgCity_Mart_EventScript_1552B0:: @ 81552B0
faceplayer
message PetalburgCity_Mart_Text_1A0BE4
waitmessage
- checkflag 296
+ checkflag FLAG_PETALBURG_MART_EXPANDED_ITEMS
goto_if_eq PetalburgCity_Mart_EventScript_1552EA
pokemart PetalburgCity_Mart_Items1
msgbox PetalburgCity_Mart_Text_1A0C02, 4
diff --git a/data/scripts/maps/PetalburgCity_PokemonCenter_1F.inc b/data/scripts/maps/PetalburgCity_PokemonCenter_1F.inc
index e2013a1d6..1dc99159a 100644
--- a/data/scripts/maps/PetalburgCity_PokemonCenter_1F.inc
+++ b/data/scripts/maps/PetalburgCity_PokemonCenter_1F.inc
@@ -3,7 +3,7 @@ PetalburgCity_PokemonCenter_1F_MapScripts:: @ 8155204
.byte 0
PetalburgCity_PokemonCenter_1F_MapScript1_15520A:: @ 815520A
- sethealplace 3
+ setrespawn 3
call PetalburgCity_PokemonCenter_1F_EventScript_19FD1B
end
@@ -11,7 +11,7 @@ PetalburgCity_PokemonCenter_1F_EventScript_155213:: @ 8155213
setvar 0x800b, 1
call PetalburgCity_PokemonCenter_1F_EventScript_19FD5B
waitmessage
- waitbutton
+ waitbuttonpress
release
end
diff --git a/data/scripts/maps/PetalburgCity_WallysHouse.inc b/data/scripts/maps/PetalburgCity_WallysHouse.inc
index d8e95d8c6..08bbcb0c7 100644
--- a/data/scripts/maps/PetalburgCity_WallysHouse.inc
+++ b/data/scripts/maps/PetalburgCity_WallysHouse.inc
@@ -4,29 +4,29 @@ PetalburgCity_WallysHouse_MapScripts:: @ 81543C3
PetalburgCity_WallysHouse_EventScript_1543C4:: @ 81543C4
lock
faceplayer
- checkflag 126
+ checkflag FLAG_DEFEATED_WALLY_VICTORY_ROAD
goto_if_eq PetalburgCity_WallysHouse_EventScript_1543F7
- checkflag 122
+ checkflag FLAG_RECEIVED_HM03
goto_if_eq PetalburgCity_WallysHouse_EventScript_154427
- checkflag 1217
+ checkflag FLAG_DEFEATED_PETALBURG_GYM
goto_if_eq PetalburgCity_WallysHouse_EventScript_154406
- checkflag 135
+ checkflag FLAG_THANKED_FOR_PLAYING_WITH_WALLY
goto_if_eq PetalburgCity_WallysHouse_EventScript_15443B
msgbox PetalburgCity_WallysHouse_Text_179805, 4
- setflag 135
+ setflag FLAG_THANKED_FOR_PLAYING_WITH_WALLY
release
end
PetalburgCity_WallysHouse_EventScript_1543F7:: @ 81543F7
- checkflag 122
+ checkflag FLAG_RECEIVED_HM03
goto_if_eq PetalburgCity_WallysHouse_EventScript_154431
goto PetalburgCity_WallysHouse_EventScript_154406
end
PetalburgCity_WallysHouse_EventScript_154406:: @ 8154406
msgbox PetalburgCity_WallysHouse_Text_179996, 4
- giveitem ITEM_HM03
- setflag 122
+ giveitem_std ITEM_HM03
+ setflag FLAG_RECEIVED_HM03
msgbox PetalburgCity_WallysHouse_Text_179B14, 4
release
end
@@ -49,9 +49,9 @@ PetalburgCity_WallysHouse_EventScript_15443B:: @ 815443B
PetalburgCity_WallysHouse_EventScript_154445:: @ 8154445
lock
faceplayer
- checkflag 122
+ checkflag FLAG_RECEIVED_HM03
goto_if_eq PetalburgCity_WallysHouse_EventScript_15446D
- checkflag 1217
+ checkflag FLAG_DEFEATED_PETALBURG_GYM
goto_if_eq PetalburgCity_WallysHouse_EventScript_154463
msgbox PetalburgCity_WallysHouse_Text_179C2C, 4
release
diff --git a/data/scripts/maps/PetalburgWoods.inc b/data/scripts/maps/PetalburgWoods.inc
index 0b0c72f70..be74cbf4c 100644
--- a/data/scripts/maps/PetalburgWoods.inc
+++ b/data/scripts/maps/PetalburgWoods.inc
@@ -90,7 +90,7 @@ PetalburgWoods_EventScript_15CDFA:: @ 815CDFA
applymovement 255, PetalburgWoods_Movement_1A0845
waitmovement 0
msgbox PetalburgWoods_Text_19507E, 4
- giveitem ITEM_GREAT_BALL
+ giveitem_std ITEM_GREAT_BALL
compare RESULT, 0
goto_if_eq PetalburgWoods_EventScript_15CE3F
goto PetalburgWoods_EventScript_15CE4D
@@ -241,13 +241,13 @@ PetalburgWoods_EventScript_15CED3:: @ 815CED3
PetalburgWoods_EventScript_15CEDC:: @ 815CEDC
lock
faceplayer
- checkflag 297
+ checkflag FLAG_RECEIVED_MIRACLE_SEED
goto_if_eq PetalburgWoods_EventScript_15CF0B
msgbox PetalburgWoods_Text_19549E, 4
- giveitem ITEM_MIRACLE_SEED
+ giveitem_std ITEM_MIRACLE_SEED
compare RESULT, 0
goto_if_eq PetalburgWoods_EventScript_1A029B
- setflag 297
+ setflag FLAG_RECEIVED_MIRACLE_SEED
release
end
diff --git a/data/scripts/maps/Route101.inc b/data/scripts/maps/Route101.inc
index 2fe80e098..1810a6495 100644
--- a/data/scripts/maps/Route101.inc
+++ b/data/scripts/maps/Route101.inc
@@ -217,8 +217,8 @@ Route101_EventScript_14EA76:: @ 814EA76
Route101_EventScript_14EA7F:: @ 814EA7F
lock
faceplayer
- setflag 2048
- setflag 82
+ setflag FLAG_SYS_POKEMON_GET
+ setflag FLAG_RESCUED_BIRCH
fadescreen 1
removeobject 4
setobjectxy 255, 6, 13
@@ -230,13 +230,13 @@ Route101_EventScript_14EA7F:: @ 814EA7F
waitmovement 0
msgbox Route101_Text_16D191, 4
special ScrSpecial_HealPlayerParty
- setflag 720
- clearflag 721
- setflag 700
+ setflag FLAG_HIDE_BIRCH_BATTLE_POOCHYENA
+ clearflag FLAG_HIDE_BIRCH_IN_LAB
+ setflag FLAG_HIDE_BIRCH_STARTERS_BAG
setvar 0x4084, 2
setvar 0x4060, 3
clearflag 0x4000
- warp LittlerootTown_ProfessorBirchsLab, 255, 6, 5
+ warp MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB, 255, 6, 5
waitstate
release
end
diff --git a/data/scripts/maps/Route103.inc b/data/scripts/maps/Route103.inc
index ff0ccce30..ee9decedc 100644
--- a/data/scripts/maps/Route103.inc
+++ b/data/scripts/maps/Route103.inc
@@ -119,10 +119,10 @@ Route103_EventScript_14ED46:: @ 814ED46
removeobject 2
setvar 0x4062, 1
setvar 0x4084, 4
- clearflag 889
- setflag 130
+ clearflag FLAG_HIDE_RIVAL_BIRCH_LAB
+ setflag FLAG_DEFEATED_RIVAL_ROUTE103
setvar 0x40c7, 1
- clearflag 979
+ clearflag FLAG_HIDE_RIVAL_OLDALE_TOWN
savebgm 0
fadedefaultbgm
releaseall
diff --git a/data/scripts/maps/Route104.inc b/data/scripts/maps/Route104.inc
index 651f2afb4..a04dcd86d 100644
--- a/data/scripts/maps/Route104.inc
+++ b/data/scripts/maps/Route104.inc
@@ -17,27 +17,27 @@ Route104_MapScript1_14EEA8:: @ 814EEA8
end
Route104_EventScript_14EEAE:: @ 814EEAE
- checkflag 127
+ checkflag FLAG_MET_PRETTY_PETAL_SHOP_OWNER
goto_if 0, Route104_EventScript_14EEC4
- checkflag 2057
+ checkflag FLAG_BADGE03_GET
goto_if 0, Route104_EventScript_14EEC4
- clearflag 906
+ clearflag FLAG_HIDE_FLOWER_SHOP_WORKER_OUTSIDE
return
Route104_EventScript_14EEC4:: @ 814EEC4
- setflag 906
+ setflag FLAG_HIDE_FLOWER_SHOP_WORKER_OUTSIDE
return
Route104_EventScript_14EEC8:: @ 814EEC8
lock
faceplayer
- checkflag 246
+ checkflag FLAG_RECEIVED_CHESTO_BERRY_ROUTE104
goto_if_eq Route104_EventScript_14EEFF
msgbox Route104_Text_1C55B9, 4
- giveitem ITEM_CHESTO_BERRY
+ giveitem_std ITEM_CHESTO_BERRY
compare RESULT, 0
goto_if_eq Route104_EventScript_1A029B
- setflag 246
+ setflag FLAG_RECEIVED_CHESTO_BERRY_ROUTE104
msgbox Route104_Text_1C5665, 4
release
end
@@ -50,13 +50,13 @@ Route104_EventScript_14EEFF:: @ 814EEFF
Route104_EventScript_14EF09:: @ 814EF09
lock
faceplayer
- checkflag 279
+ checkflag FLAG_RECEIVED_WHITE_HERB
goto_if_eq Route104_EventScript_14EF38
msgbox Route104_Text_16DD91, 4
- giveitem ITEM_WHITE_HERB
+ giveitem_std ITEM_WHITE_HERB
compare RESULT, 0
goto_if_eq Route104_EventScript_1A029B
- setflag 279
+ setflag FLAG_RECEIVED_WHITE_HERB
release
end
@@ -104,13 +104,13 @@ Route104_EventScript_14EF8A:: @ 814EF8A
Route104_EventScript_14EF93:: @ 814EF93
lock
faceplayer
- checkflag 262
+ checkflag FLAG_RECEIVED_TM09
goto_if_eq Route104_EventScript_14EFC2
msgbox Route104_Text_16DC5F, 4
- giveitem ITEM_TM09
+ giveitem_std ITEM_TM09
compare RESULT, 0
goto_if_eq Route104_EventScript_1A029B
- setflag 262
+ setflag FLAG_RECEIVED_TM09
release
end
@@ -124,14 +124,14 @@ Route104_EventScript_14EFCC:: @ 814EFCC
end
Route104_EventScript_14EFD5:: @ 814EFD5
- setobjectpriority 8, 0, 19, 0
- setobjectpriority 255, 0, 19, 0
+ setobjectpriority 8, MAP_ROUTE104, 0
+ setobjectpriority 255, MAP_ROUTE104, 0
applymovement 8, Route104_Movement_14F16C
waitmovement 0
removeobject 8
applymovement 255, Route104_Movement_14F162
waitmovement 0
- hideobject 255, 0, 19
+ hideobjectat 255, MAP_ROUTE104
call Route104_EventScript_1A02E7
applymovement 7, Route104_Movement_14F09F
applymovement 255, Route104_Movement_14F09F
@@ -139,28 +139,28 @@ Route104_EventScript_14EFD5:: @ 814EFD5
applymovement 255, Route104_Movement_14F166
waitmovement 0
call Route104_EventScript_1A02EF
- showobject 255, 0, 11
+ showobjectat 255, MAP_DEWFORD_TOWN
applymovement 255, Route104_Movement_14F168
waitmovement 0
setobjectxyperm 2, 12, 8
addobject 2
- setobjectpriority 2, 0, 11, 0
- clearflag 740
+ setobjectpriority 2, MAP_DEWFORD_TOWN, 0
+ clearflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
applymovement 2, Route104_Movement_14F16F
waitmovement 0
addobject 4
- clearflag 743
+ clearflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD
call Route104_EventScript_1A02EF
- setflag 742
- hideobject 7, 0, 19
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104
+ hideobjectat 7, MAP_ROUTE104
copyvar 0x4096, 0x8008
- resetobjectpriority 255, 0, 19
- resetobjectpriority 2, 0, 11
+ resetobjectpriority 255, MAP_ROUTE104
+ resetobjectpriority 2, MAP_DEWFORD_TOWN
moveobjectoffscreen 2
setvar 0x408e, 0
- checkflag 189
+ checkflag FLAG_DELIVERED_STEVEN_LETTER
goto_if 0, Route104_EventScript_14F08B
- checkflag 189
+ checkflag FLAG_DELIVERED_STEVEN_LETTER
goto_if_eq Route104_EventScript_14F095
end
diff --git a/data/scripts/maps/Route104_MrBrineysHouse.inc b/data/scripts/maps/Route104_MrBrineysHouse.inc
index f24e92cd4..4eb1d9705 100644
--- a/data/scripts/maps/Route104_MrBrineysHouse.inc
+++ b/data/scripts/maps/Route104_MrBrineysHouse.inc
@@ -3,15 +3,15 @@ Route104_MrBrineysHouse_MapScripts:: @ 815BCB2
.byte 0
Route104_MrBrineysHouse_MapScript1_15BCB8:: @ 815BCB8
- setflag 2109
+ setflag FLAG_LANDMARK_MR_BRINEY_HOUSE
compare 0x4090, 1
call_if 1, Route104_MrBrineysHouse_EventScript_15BCD4
- checkflag 188
+ checkflag FLAG_RECEIVED_POKENAV
call_if 1, Route104_MrBrineysHouse_EventScript_15BCD0
end
Route104_MrBrineysHouse_EventScript_15BCD0:: @ 815BCD0
- setflag 814
+ setflag FLAG_HIDE_RIVAL_RUSTBORO
return
Route104_MrBrineysHouse_EventScript_15BCD4:: @ 815BCD4
@@ -24,17 +24,17 @@ Route104_MrBrineysHouse_EventScript_15BCD4:: @ 815BCD4
Route104_MrBrineysHouse_EventScript_15BCEB:: @ 815BCEB
lock
faceplayer
- checkflag 147
+ checkflag FLAG_MR_BRINEY_SAILING_INTRO
call_if 0, Route104_MrBrineysHouse_EventScript_15BD0E
- checkflag 189
+ checkflag FLAG_DELIVERED_STEVEN_LETTER
goto_if 0, Route104_MrBrineysHouse_EventScript_15BD65
- checkflag 149
+ checkflag FLAG_DELIVERED_DEVON_GOODS
goto_if 0, Route104_MrBrineysHouse_EventScript_15BD7E
goto Route104_MrBrineysHouse_EventScript_15BD32
end
Route104_MrBrineysHouse_EventScript_15BD0E:: @ 815BD0E
- setflag 147
+ setflag FLAG_MR_BRINEY_SAILING_INTRO
msgbox Route104_MrBrineysHouse_Text_191A82, 4
msgbox Route104_MrBrineysHouse_Text_191AAD, 5
compare RESULT, 0
@@ -80,10 +80,10 @@ Route104_MrBrineysHouse_EventScript_15BDAB:: @ 815BDAB
msgbox Route104_MrBrineysHouse_Text_191BFD, 4
call Route104_MrBrineysHouse_EventScript_1A010C
setvar 0x408e, 1
- clearflag 738
- setflag 739
- setflag 881
- warp Route104, 255, 13, 51
+ clearflag FLAG_HIDE_MR_BRINEY_ROUTE104
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE
+ setflag FLAG_HIDE_PEEKO_BRINEY_HOUSE
+ warp MAP_ROUTE104, 255, 13, 51
waitstate
releaseall
end
@@ -92,8 +92,8 @@ Route104_MrBrineysHouse_EventScript_15BDD1:: @ 815BDD1
lock
faceplayer
waitse
- playpokecry SPECIES_WINGULL, 0
+ playmoncry SPECIES_WINGULL, 0
msgbox Route104_MrBrineysHouse_Text_191FB9, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/Route104_PrettyPetalFlowerShop.inc b/data/scripts/maps/Route104_PrettyPetalFlowerShop.inc
index 4c5becf88..2de6bf51f 100644
--- a/data/scripts/maps/Route104_PrettyPetalFlowerShop.inc
+++ b/data/scripts/maps/Route104_PrettyPetalFlowerShop.inc
@@ -3,12 +3,12 @@ Route104_PrettyPetalFlowerShop_MapScripts:: @ 815BDE4
.byte 0
Route104_PrettyPetalFlowerShop_MapScript1_15BDEA:: @ 815BDEA
- setflag 2108
- checkflag 127
+ setflag FLAG_LANDMARK_FLOWER_SHOP
+ checkflag FLAG_MET_PRETTY_PETAL_SHOP_OWNER
goto_if 0, Route104_PrettyPetalFlowerShop_EventScript_15BE03
- checkflag 2057
+ checkflag FLAG_BADGE03_GET
goto_if 0, Route104_PrettyPetalFlowerShop_EventScript_15BE03
- setflag 1
+ setflag FLAG_TEMP_1
end
Route104_PrettyPetalFlowerShop_EventScript_15BE03:: @ 815BE03
@@ -18,12 +18,12 @@ Route104_PrettyPetalFlowerShop_EventScript_15BE03:: @ 815BE03
Route104_PrettyPetalFlowerShop_EventScript_15BE0B:: @ 815BE0B
lock
faceplayer
- checkflag 1
+ checkflag FLAG_TEMP_1
goto_if_eq Route104_PrettyPetalFlowerShop_EventScript_15BE7C
msgbox Route104_PrettyPetalFlowerShop_Text_1C5EC6, 4
- checkflag 127
+ checkflag FLAG_MET_PRETTY_PETAL_SHOP_OWNER
goto_if_eq Route104_PrettyPetalFlowerShop_EventScript_15BE4A
- setflag 127
+ setflag FLAG_MET_PRETTY_PETAL_SHOP_OWNER
msgbox Route104_PrettyPetalFlowerShop_Text_1C5F48, 5
compare RESULT, 1
call_if 1, Route104_PrettyPetalFlowerShop_EventScript_15BE6A
@@ -52,7 +52,7 @@ Route104_PrettyPetalFlowerShop_EventScript_15BE73:: @ 815BE73
Route104_PrettyPetalFlowerShop_EventScript_15BE7C:: @ 815BE7C
message Route104_PrettyPetalFlowerShop_Text_1A0C42
waitmessage
- pokemartbp Route104_PrettyPetalFlowerShop_Items
+ pokemartdecoration2 Route104_PrettyPetalFlowerShop_Items
msgbox Route104_PrettyPetalFlowerShop_Text_1A0C02, 4
release
end
@@ -72,7 +72,7 @@ Route104_PrettyPetalFlowerShop_Items:: @ 815BE94
Route104_PrettyPetalFlowerShop_EventScript_15BEA4:: @ 815BEA4
lock
faceplayer
- checkflag 94
+ checkflag FLAG_RECEIVED_WAILMER_PAIL
goto_if 0, Route104_PrettyPetalFlowerShop_EventScript_15BEB9
msgbox Route104_PrettyPetalFlowerShop_Text_1C61E8, 4
release
@@ -80,9 +80,9 @@ Route104_PrettyPetalFlowerShop_EventScript_15BEA4:: @ 815BEA4
Route104_PrettyPetalFlowerShop_EventScript_15BEB9:: @ 815BEB9
msgbox Route104_PrettyPetalFlowerShop_Text_1C6158, 4
- giveitem ITEM_WAILMER_PAIL
+ giveitem_std ITEM_WAILMER_PAIL
msgbox Route104_PrettyPetalFlowerShop_Text_1C61E8, 4
- setflag 94
+ setflag FLAG_RECEIVED_WAILMER_PAIL
release
end
@@ -90,15 +90,15 @@ Route104_PrettyPetalFlowerShop_EventScript_15BEDA:: @ 815BEDA
lock
faceplayer
dodailyevents
- checkflag 2256
+ checkflag FLAG_DAILY_RECEIVED_BERRY_FLOWER_SHOP
goto_if_eq Route104_PrettyPetalFlowerShop_EventScript_15BF1A
msgbox Route104_PrettyPetalFlowerShop_Text_1C62DA, 4
random 8
- addvar RESULT, 133
- giveitem RESULT
+ addvar RESULT, ITEM_CHERI_BERRY
+ giveitem_std RESULT
compare RESULT, 0
goto_if_eq Route104_PrettyPetalFlowerShop_EventScript_1A029B
- setflag 2256
+ setflag FLAG_DAILY_RECEIVED_BERRY_FLOWER_SHOP
msgbox Route104_PrettyPetalFlowerShop_Text_1C6335, 4
release
end
diff --git a/data/scripts/maps/Route104_Prototype.inc b/data/scripts/maps/Route104_Prototype.inc
index 3c218747a..b3b256d79 100644
--- a/data/scripts/maps/Route104_Prototype.inc
+++ b/data/scripts/maps/Route104_Prototype.inc
@@ -16,9 +16,9 @@ Route104_Prototype_EventScript_160C4B:: @ 8160C4B
goto_if 0, Route104_Prototype_EventScript_160C99
checktrainerflag OPPONENT_MIKE_1
goto_if 0, Route104_Prototype_EventScript_160C99
- setflag 215
+ setflag FLAG_ROUTE104_PROTOTYPE_COMPLETED_1
msgbox Route104_Prototype_Text_19B267, 4
- checkflag 216
+ checkflag FLAG_ROUTE104_PROTOTYPE_COMPLETED_2
goto_if_eq Route104_Prototype_EventScript_160CFB
release
end
@@ -43,9 +43,9 @@ Route104_Prototype_EventScript_160CA3:: @ 8160CA3
goto_if 0, Route104_Prototype_EventScript_160CF1
checktrainerflag OPPONENT_MIKE_1
goto_if 0, Route104_Prototype_EventScript_160CF1
- setflag 216
+ setflag FLAG_ROUTE104_PROTOTYPE_COMPLETED_2
msgbox Route104_Prototype_Text_19B2E9, 4
- checkflag 215
+ checkflag FLAG_ROUTE104_PROTOTYPE_COMPLETED_1
goto_if_eq Route104_Prototype_EventScript_160CFB
release
end
diff --git a/data/scripts/maps/Route105.inc b/data/scripts/maps/Route105.inc
index 1182dae7e..30157e52f 100644
--- a/data/scripts/maps/Route105.inc
+++ b/data/scripts/maps/Route105.inc
@@ -3,13 +3,13 @@ Route105_MapScripts:: @ 814F298
.byte 0
Route105_MapScript1_14F29E:: @ 814F29E
- checkflag 228
+ checkflag FLAG_REGI_DOORS_OPENED
call_if 0, Route105_EventScript_14F2A8
end
Route105_EventScript_14F2A8:: @ 814F2A8
- setmaptile 9, 19, 124, 1
- setmaptile 9, 20, 145, 1
+ setmetatile 9, 19, 124, 1
+ setmetatile 9, 20, 145, 1
return
Route105_EventScript_14F2BB:: @ 814F2BB
diff --git a/data/scripts/maps/Route109.inc b/data/scripts/maps/Route109.inc
index 9f0ef8c8d..a9fa7d906 100644
--- a/data/scripts/maps/Route109.inc
+++ b/data/scripts/maps/Route109.inc
@@ -3,8 +3,8 @@ Route109_MapScripts:: @ 814F4D2
Route109_EventScript_14F4D3:: @ 814F4D3
call Route109_EventScript_1A010C
- setobjectpriority 2, 0, 24, 0
- setobjectpriority 255, 0, 24, 0
+ setobjectpriority 2, MAP_ROUTE109, 0
+ setobjectpriority 255, MAP_ROUTE109, 0
applymovement 2, Route109_Movement_14F67B
waitmovement 0
removeobject 2
@@ -33,30 +33,30 @@ Route109_EventScript_14F538:: @ 814F538
end
Route109_EventScript_14F548:: @ 814F548
- hideobject 255, 0, 24
+ hideobjectat 255, MAP_ROUTE109
call Route109_EventScript_1A02E7
applymovement 1, Route109_Movement_14F5BF
applymovement 255, Route109_Movement_14F5BF
waitmovement 0
call Route109_EventScript_1A02EF
- showobject 255, 0, 11
+ showobjectat 255, MAP_DEWFORD_TOWN
applymovement 255, Route109_Movement_14F670
waitmovement 0
addobject 4
- clearflag 743
+ clearflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD
setobjectxyperm 2, 12, 8
addobject 2
- setobjectpriority 2, 0, 11, 0
+ setobjectpriority 2, MAP_DEWFORD_TOWN, 0
applymovement 2, Route109_Movement_14F67D
waitmovement 0
- clearflag 740
- setflag 744
- hideobject 1, 0, 24
+ clearflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
+ setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109
+ hideobjectat 1, MAP_ROUTE109
msgbox Route109_Text_16B4B5, 4
closemessage
copyvar 0x4096, 0x8008
- resetobjectpriority 255, 0, 24
- resetobjectpriority 2, 0, 11
+ resetobjectpriority 255, MAP_ROUTE109
+ resetobjectpriority 2, MAP_DEWFORD_TOWN
moveobjectoffscreen 2
release
end
@@ -271,7 +271,7 @@ Route109_Movement_14F67D:: @ 814F67D
Route109_EventScript_14F680:: @ 814F680
lock
faceplayer
- checkflag 149
+ checkflag FLAG_DELIVERED_DEVON_GOODS
goto_if 0, Route109_EventScript_14F691
goto Route109_EventScript_14F6AF
end
@@ -328,16 +328,16 @@ Route109_EventScript_14F725:: @ 814F725
lock
faceplayer
special GetPlayerBigGuyGirlString
- checkflag 280
+ checkflag FLAG_RECEIVED_SOFT_SAND
goto_if_eq Route109_EventScript_14F762
msgbox Route109_Text_16E433, 4
- giveitem ITEM_SOFT_SAND
+ giveitem_std ITEM_SOFT_SAND
compare RESULT, 0
goto_if_eq Route109_EventScript_1A029B
closemessage
applymovement LAST_TALKED, Route109_Movement_1A083D
waitmovement 0
- setflag 280
+ setflag FLAG_RECEIVED_SOFT_SAND
release
end
@@ -360,9 +360,9 @@ Route109_EventScript_14F788:: @ 814F788
lock
faceplayer
waitse
- playpokecry SPECIES_ZIGZAGOON, 0
+ playmoncry SPECIES_ZIGZAGOON, 0
msgbox Route109_Text_16E5CA, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/Route109_SeashoreHouse.inc b/data/scripts/maps/Route109_SeashoreHouse.inc
index 4d8d363aa..7a12f5850 100644
--- a/data/scripts/maps/Route109_SeashoreHouse.inc
+++ b/data/scripts/maps/Route109_SeashoreHouse.inc
@@ -3,20 +3,20 @@ Route109_SeashoreHouse_MapScripts:: @ 8160DCA
.byte 0
Route109_SeashoreHouse_MapScript1_160DD0:: @ 8160DD0
- setflag 2111
+ setflag FLAG_LANDMARK_SEASHORE_HOUSE
end
Route109_SeashoreHouse_EventScript_160DD4:: @ 8160DD4
lock
faceplayer
- checkflag 140
+ checkflag FLAG_RECEIVED_6_SODA_POP
goto_if_eq Route109_SeashoreHouse_EventScript_160E36
- checkflag 141
+ checkflag FLAG_DEFEATED_SEASHORE_HOUSE_TRAINERS
goto_if_eq Route109_SeashoreHouse_EventScript_160E08
- checkflag 2
+ checkflag FLAG_TEMP_2
goto_if_eq Route109_SeashoreHouse_EventScript_160DFE
msgbox Route109_SeashoreHouse_Text_19B4D9, 4
- setflag 2
+ setflag FLAG_TEMP_2
release
end
@@ -27,10 +27,10 @@ Route109_SeashoreHouse_EventScript_160DFE:: @ 8160DFE
Route109_SeashoreHouse_EventScript_160E08:: @ 8160E08
msgbox Route109_SeashoreHouse_Text_19B609, 4
- giveitem ITEM_SODA_POP, 6
+ giveitem_std ITEM_SODA_POP, 6
compare RESULT, 0
goto_if_eq Route109_SeashoreHouse_EventScript_160E2C
- setflag 140
+ setflag FLAG_RECEIVED_6_SODA_POP
release
end
@@ -61,7 +61,7 @@ Route109_SeashoreHouse_EventScript_160E5A:: @ 8160E5A
takemoney 0x12c, 0
updatemoneybox 0, 0
nop
- giveitem ITEM_SODA_POP
+ giveitem_std ITEM_SODA_POP
hidemoneybox 0, 0
release
end
@@ -100,7 +100,7 @@ Route109_SeashoreHouse_EventScript_160F09:: @ 8160F09
goto_if 0, Route109_SeashoreHouse_EventScript_160F29
checktrainerflag OPPONENT_SIMON
goto_if 0, Route109_SeashoreHouse_EventScript_160F29
- setflag 141
+ setflag FLAG_DEFEATED_SEASHORE_HOUSE_TRAINERS
release
end
diff --git a/data/scripts/maps/Route110.inc b/data/scripts/maps/Route110.inc
index 146be5959..5e10782e9 100644
--- a/data/scripts/maps/Route110.inc
+++ b/data/scripts/maps/Route110.inc
@@ -420,7 +420,7 @@ Route110_EventScript_14FE8A:: @ 814FE8A
end
Route110_EventScript_14FEA5:: @ 814FEA5
- giveitem ITEM_ITEMFINDER
+ giveitem_std ITEM_ITEMFINDER
return
Route110_EventScript_14FEB2:: @ 814FEB2
diff --git a/data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.inc b/data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.inc
index c60bc366e..8e33517ca 100644
--- a/data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.inc
+++ b/data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.inc
@@ -28,7 +28,7 @@ Route110_SeasideCyclingRoadNorthEntrance_EventScript_1634F7:: @ 81634F7
call_if 1, Route110_SeasideCyclingRoadNorthEntrance_EventScript_16351D
compare RESULT, 0
goto_if_eq Route110_SeasideCyclingRoadNorthEntrance_EventScript_163523
- setflag 2091
+ setflag FLAG_SYS_CYCLING_ROAD
setvar 0x4001, 1
releaseall
end
@@ -55,7 +55,7 @@ Route110_SeasideCyclingRoadNorthEntrance_EventScript_16353A:: @ 816353A
@ Coord event directly in front of the gatesman heading right to left
lockall
setvar 0x40a9, 0
- clearflag 2091
+ clearflag FLAG_SYS_CYCLING_ROAD
setvar 0x4001, 0
releaseall
end
diff --git a/data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.inc b/data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.inc
index cf18a8e36..51cab5ddd 100644
--- a/data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.inc
+++ b/data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.inc
@@ -13,7 +13,7 @@ Route110_SeasideCyclingRoadSouthEntrance_EventScript_16348B:: @ 816348B
specialvar RESULT, GetPlayerAvatarBike
compare RESULT, 0
goto_if_eq Route110_SeasideCyclingRoadSouthEntrance_EventScript_1634A6
- setflag 2091
+ setflag FLAG_SYS_CYCLING_ROAD
setvar 0x4001, 1
releaseall
end
@@ -32,7 +32,7 @@ Route110_SeasideCyclingRoadSouthEntrance_Movement_1634BB:: @ 81634BB
Route110_SeasideCyclingRoadSouthEntrance_EventScript_1634BD:: @ 81634BD
lockall
- clearflag 2091
+ clearflag FLAG_SYS_CYCLING_ROAD
setvar 0x4001, 0
releaseall
end
diff --git a/data/scripts/maps/Route110_TrickHouseEnd.inc b/data/scripts/maps/Route110_TrickHouseEnd.inc
index 12309207c..813cbb9e9 100644
--- a/data/scripts/maps/Route110_TrickHouseEnd.inc
+++ b/data/scripts/maps/Route110_TrickHouseEnd.inc
@@ -22,7 +22,7 @@ Route110_TrickHouseEnd_MapScript2_161965:: @ 8161965
Route110_TrickHouseEnd_EventScript_16196F:: @ 816196F
addobject 1
- showobject 1, 29, 1
+ showobjectat 1, MAP_ROUTE110_TRICK_HOUSE_END
turnobject 1, 4
end
@@ -37,7 +37,7 @@ Route110_TrickHouseEnd_EventScript_161986:: @ 8161986
end
Route110_TrickHouseEnd_EventScript_161994:: @ 8161994
- setmaptile 10, 1, 539, 1
+ setmetatile 10, 1, 539, 1
return
Route110_TrickHouseEnd_EventScript_16199E:: @ 816199E
@@ -60,7 +60,7 @@ Route110_TrickHouseEnd_EventScript_161A0B:: @ 8161A0B
msgbox Route110_TrickHouseEnd_Text_19C2B2, 4
msgbox Route110_TrickHouseEnd_Text_19C90B, 4
setvar 0x40c1, 0
- giveitem ITEM_RARE_CANDY
+ giveitem_std ITEM_RARE_CANDY
compare RESULT, 0
call_if 1, Route110_TrickHouseEnd_EventScript_161C4E
msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
@@ -73,7 +73,7 @@ Route110_TrickHouseEnd_EventScript_161A47:: @ 8161A47
msgbox Route110_TrickHouseEnd_Text_19C333, 4
msgbox Route110_TrickHouseEnd_Text_19C90B, 4
setvar 0x40c1, 0
- giveitem ITEM_TIMER_BALL
+ giveitem_std ITEM_TIMER_BALL
compare RESULT, 0
call_if 1, Route110_TrickHouseEnd_EventScript_161C4E
msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
@@ -86,7 +86,7 @@ Route110_TrickHouseEnd_EventScript_161A83:: @ 8161A83
msgbox Route110_TrickHouseEnd_Text_19C3A7, 4
msgbox Route110_TrickHouseEnd_Text_19C90B, 4
setvar 0x40c1, 0
- giveitem ITEM_HARD_STONE
+ giveitem_std ITEM_HARD_STONE
compare RESULT, 0
call_if 1, Route110_TrickHouseEnd_EventScript_161C4E
msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
@@ -99,7 +99,7 @@ Route110_TrickHouseEnd_EventScript_161ABF:: @ 8161ABF
msgbox Route110_TrickHouseEnd_Text_19C41F, 4
msgbox Route110_TrickHouseEnd_Text_19C90B, 4
setvar 0x40c1, 0
- giveitem ITEM_SMOKE_BALL
+ giveitem_std ITEM_SMOKE_BALL
compare RESULT, 0
call_if 1, Route110_TrickHouseEnd_EventScript_161C4E
msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
@@ -112,7 +112,7 @@ Route110_TrickHouseEnd_EventScript_161AFB:: @ 8161AFB
msgbox Route110_TrickHouseEnd_Text_19C491, 4
msgbox Route110_TrickHouseEnd_Text_19C90B, 4
setvar 0x40c1, 0
- giveitem ITEM_TM12
+ giveitem_std ITEM_TM12
compare RESULT, 0
call_if 1, Route110_TrickHouseEnd_EventScript_161C4E
msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
@@ -125,7 +125,7 @@ Route110_TrickHouseEnd_EventScript_161B37:: @ 8161B37
msgbox Route110_TrickHouseEnd_Text_19C515, 4
msgbox Route110_TrickHouseEnd_Text_19C90B, 4
setvar 0x40c1, 0
- giveitem ITEM_MAGNET
+ giveitem_std ITEM_MAGNET
compare RESULT, 0
call_if 1, Route110_TrickHouseEnd_EventScript_161C4E
msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
@@ -138,7 +138,7 @@ Route110_TrickHouseEnd_EventScript_161B73:: @ 8161B73
msgbox Route110_TrickHouseEnd_Text_19C567, 4
msgbox Route110_TrickHouseEnd_Text_19C90B, 4
setvar 0x40c1, 0
- giveitem ITEM_PP_MAX
+ giveitem_std ITEM_PP_MAX
compare RESULT, 0
call_if 1, Route110_TrickHouseEnd_EventScript_161C4E
msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
@@ -167,9 +167,9 @@ Route110_TrickHouseEnd_EventScript_161BAF:: @ 8161BAF
msgbox Route110_TrickHouseEnd_Text_19C691, 4
setvar 0x40c1, 0
.ifdef SAPPHIRE
- givedecoration 32
+ givedecoration_std 32
.else
- givedecoration 31
+ givedecoration_std 31
.endc
compare RESULT, 0
call_if 1, Route110_TrickHouseEnd_EventScript_161C61
diff --git a/data/scripts/maps/Route110_TrickHouseEntrance.inc b/data/scripts/maps/Route110_TrickHouseEntrance.inc
index 568ba2af6..b9582b64c 100644
--- a/data/scripts/maps/Route110_TrickHouseEntrance.inc
+++ b/data/scripts/maps/Route110_TrickHouseEntrance.inc
@@ -5,7 +5,7 @@ Route110_TrickHouseEntrance_MapScripts:: @ 8160F2B
.byte 0
Route110_TrickHouseEntrance_MapScript1_160F3B:: @ 8160F3B
- setflag 2114
+ setflag FLAG_LANDMARK_TRICK_HOUSE
compare 0x40b5, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_160FCE
compare 0x40c1, 1
@@ -63,37 +63,37 @@ Route110_TrickHouseEntrance_EventScript_160FDE:: @ 8160FDE
return
Route110_TrickHouseEntrance_EventScript_16103C:: @ 816103C
- checkflag 2057
+ checkflag FLAG_BADGE03_GET
call_if 0, Route110_TrickHouseEntrance_EventScript_161088
return
Route110_TrickHouseEntrance_EventScript_161046:: @ 8161046
- checkflag 2058
+ checkflag FLAG_BADGE04_GET
call_if 0, Route110_TrickHouseEntrance_EventScript_161088
return
Route110_TrickHouseEntrance_EventScript_161050:: @ 8161050
- checkflag 2059
+ checkflag FLAG_BADGE05_GET
call_if 0, Route110_TrickHouseEntrance_EventScript_161088
return
Route110_TrickHouseEntrance_EventScript_16105A:: @ 816105A
- checkflag 2060
+ checkflag FLAG_BADGE06_GET
call_if 0, Route110_TrickHouseEntrance_EventScript_161088
return
Route110_TrickHouseEntrance_EventScript_161064:: @ 8161064
- checkflag 2061
+ checkflag FLAG_BADGE07_GET
call_if 0, Route110_TrickHouseEntrance_EventScript_161088
return
Route110_TrickHouseEntrance_EventScript_16106E:: @ 816106E
- checkflag 2062
+ checkflag FLAG_BADGE08_GET
call_if 0, Route110_TrickHouseEntrance_EventScript_161088
return
Route110_TrickHouseEntrance_EventScript_161078:: @ 8161078
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
call_if 0, Route110_TrickHouseEntrance_EventScript_161088
return
@@ -139,14 +139,14 @@ Route110_TrickHouseEntrance_MapScript2_1610B2:: @ 81610B2
Route110_TrickHouseEntrance_EventScript_1610F4:: @ 81610F4
addobject 1
- showobject 1, 29, 0
+ showobjectat 1, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
turnobject 1, 4
turnobject 255, 3
end
Route110_TrickHouseEntrance_EventScript_161105:: @ 8161105
addobject 1
- hideobject 1, 29, 0
+ hideobjectat 1, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE
switch 0x4044
case 0, Route110_TrickHouseEntrance_EventScript_16116B
case 1, Route110_TrickHouseEntrance_EventScript_161173
@@ -266,7 +266,7 @@ Route110_TrickHouseEntrance_EventScript_16124D:: @ 816124D
call_if 1, Route110_TrickHouseEntrance_EventScript_16130C
closemessage
setvar 0x40a6, 1
- warp Route110_TrickHouseEntrance, 255, 6, 2
+ warp MAP_ROUTE110_TRICK_HOUSE_ENTRANCE, 255, 6, 2
waitstate
releaseall
end
@@ -368,7 +368,7 @@ Route110_TrickHouseEntrance_EventScript_16136E:: @ 816136E
end
Route110_TrickHouseEntrance_EventScript_1613CE:: @ 81613CE
- giveitem ITEM_RARE_CANDY
+ giveitem_std ITEM_RARE_CANDY
compare RESULT, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_161502
compare RESULT, 0
@@ -378,7 +378,7 @@ Route110_TrickHouseEntrance_EventScript_1613CE:: @ 81613CE
end
Route110_TrickHouseEntrance_EventScript_1613FA:: @ 81613FA
- giveitem ITEM_TIMER_BALL
+ giveitem_std ITEM_TIMER_BALL
compare RESULT, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_161502
compare RESULT, 0
@@ -388,7 +388,7 @@ Route110_TrickHouseEntrance_EventScript_1613FA:: @ 81613FA
end
Route110_TrickHouseEntrance_EventScript_161426:: @ 8161426
- giveitem ITEM_HARD_STONE
+ giveitem_std ITEM_HARD_STONE
compare RESULT, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_161502
compare RESULT, 0
@@ -398,7 +398,7 @@ Route110_TrickHouseEntrance_EventScript_161426:: @ 8161426
end
Route110_TrickHouseEntrance_EventScript_161452:: @ 8161452
- giveitem ITEM_SMOKE_BALL
+ giveitem_std ITEM_SMOKE_BALL
compare RESULT, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_161502
compare RESULT, 0
@@ -408,7 +408,7 @@ Route110_TrickHouseEntrance_EventScript_161452:: @ 8161452
end
Route110_TrickHouseEntrance_EventScript_16147E:: @ 816147E
- giveitem ITEM_TM12
+ giveitem_std ITEM_TM12
compare RESULT, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_161502
compare RESULT, 0
@@ -418,7 +418,7 @@ Route110_TrickHouseEntrance_EventScript_16147E:: @ 816147E
end
Route110_TrickHouseEntrance_EventScript_1614AA:: @ 81614AA
- giveitem ITEM_MAGNET
+ giveitem_std ITEM_MAGNET
compare RESULT, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_161502
compare RESULT, 0
@@ -428,7 +428,7 @@ Route110_TrickHouseEntrance_EventScript_1614AA:: @ 81614AA
end
Route110_TrickHouseEntrance_EventScript_1614D6:: @ 81614D6
- giveitem ITEM_PP_MAX
+ giveitem_std ITEM_PP_MAX
compare RESULT, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_161502
compare RESULT, 0
@@ -450,9 +450,9 @@ Route110_TrickHouseEntrance_EventScript_161518:: @ 8161518
waitmovement 0
msgbox Route110_TrickHouseEntrance_Text_19C128, 4
.ifdef SAPPHIRE
- givedecoration 32
+ givedecoration_std 32
.else
- givedecoration 31
+ givedecoration_std 31
.endif
compare RESULT, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_161551
@@ -501,7 +501,7 @@ Route110_TrickHouseEntrance_EventScript_1615C7:: @ 81615C7
end
Route110_TrickHouseEntrance_EventScript_1615DD:: @ 81615DD
- setmaptile 5, 1, 537, 0
+ setmetatile 5, 1, 537, 0
special DrawWholeMapView
delay 20
applymovement 255, Route110_TrickHouseEntrance_Movement_1A0856
@@ -524,49 +524,49 @@ Route110_TrickHouseEntrance_Movement_16165E:: @ 816165E
step_end
Route110_TrickHouseEntrance_EventScript_161660:: @ 8161660
- warp Route110_TrickHousePuzzle1, 255, 0, 21
+ warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE1, 255, 0, 21
waitstate
releaseall
end
Route110_TrickHouseEntrance_EventScript_16166B:: @ 816166B
- warp Route110_TrickHousePuzzle2, 255, 0, 21
+ warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE2, 255, 0, 21
waitstate
releaseall
end
Route110_TrickHouseEntrance_EventScript_161676:: @ 8161676
- warp Route110_TrickHousePuzzle3, 255, 0, 21
+ warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE3, 255, 0, 21
waitstate
releaseall
end
Route110_TrickHouseEntrance_EventScript_161681:: @ 8161681
- warp Route110_TrickHousePuzzle4, 255, 0, 21
+ warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE4, 255, 0, 21
waitstate
releaseall
end
Route110_TrickHouseEntrance_EventScript_16168C:: @ 816168C
- warp Route110_TrickHousePuzzle5, 255, 0, 21
+ warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE5, 255, 0, 21
waitstate
releaseall
end
Route110_TrickHouseEntrance_EventScript_161697:: @ 8161697
- warp Route110_TrickHousePuzzle6, 255, 0, 21
+ warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE6, 255, 0, 21
waitstate
releaseall
end
Route110_TrickHouseEntrance_EventScript_1616A2:: @ 81616A2
- warp Route110_TrickHousePuzzle7, 255, 0, 21
+ warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE7, 255, 0, 21
waitstate
releaseall
end
Route110_TrickHouseEntrance_EventScript_1616AD:: @ 81616AD
- warp Route110_TrickHousePuzzle8, 255, 0, 21
+ warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE8, 255, 0, 21
waitstate
releaseall
end
@@ -607,7 +607,7 @@ Route110_TrickHouseEntrance_EventScript_161740:: @ 8161740
msgbox UnknownString_819CAD1, 4
playse SE_PIN
setvar 0x40AB, 2
- setmaptile 13, 1, 523, 0
+ setmetatile 13, 1, 523, 0
special DrawWholeMapView
releaseall
end
@@ -618,7 +618,7 @@ Route110_TrickHouseEntrance_EventScript_161769:: @ 8161769
msgbox UnknownString_819CCCB, 4
playse SE_PIN
setvar 0x40AC, 2
- setmaptile 13, 1, 523, 0
+ setmetatile 13, 1, 523, 0
special DrawWholeMapView
releaseall
end
@@ -629,7 +629,7 @@ Route110_TrickHouseEntrance_EventScript_161792:: @ 8161792
msgbox UnknownString_819CEF9, 4
playse SE_PIN
setvar 0x40AD, 2
- setmaptile 13, 1, 523, 0
+ setmetatile 13, 1, 523, 0
special DrawWholeMapView
releaseall
end
@@ -640,7 +640,7 @@ Route110_TrickHouseEntrance_EventScript_1617BB:: @ 81617BB
msgbox UnknownString_819D164, 4
playse SE_PIN
setvar 0x40AE, 2
- setmaptile 13, 1, 523, 0
+ setmetatile 13, 1, 523, 0
special DrawWholeMapView
releaseall
end
@@ -651,7 +651,7 @@ Route110_TrickHouseEntrance_EventScript_1617E4:: @ 81617E4
msgbox UnknownString_819D3A5, 4
playse SE_PIN
setvar 0x40AF, 2
- setmaptile 13, 1, 523, 0
+ setmetatile 13, 1, 523, 0
special DrawWholeMapView
releaseall
end
@@ -662,7 +662,7 @@ Route110_TrickHouseEntrance_EventScript_16180D:: @ 816180D
msgbox UnknownString_819DC0A, 4
playse SE_PIN
setvar 0x40B0, 2
- setmaptile 13, 1, 523, 0
+ setmetatile 13, 1, 523, 0
special DrawWholeMapView
releaseall
end
@@ -673,7 +673,7 @@ Route110_TrickHouseEntrance_EventScript_161836:: @ 8161836
msgbox UnknownString_819DE8D, 4
playse SE_PIN
setvar 0x40B1, 2
- setmaptile 13, 1, 523, 0
+ setmetatile 13, 1, 523, 0
special DrawWholeMapView
releaseall
end
@@ -684,7 +684,7 @@ Route110_TrickHouseEntrance_EventScript_16185F:: @ 816185F
msgbox UnknownString_819E0FF, 4
playse SE_PIN
setvar 0x40B2, 2
- setmaptile 13, 1, 523, 0
+ setmetatile 13, 1, 523, 0
special DrawWholeMapView
releaseall
end
@@ -757,9 +757,9 @@ Route110_TrickHouseEntrance_EventScript_16190B:: @ 816190B
return
Route110_TrickHouseEntrance_EventScript_161920:: @ 8161920
- setfieldeffect 0, 32772
- setfieldeffect 1, 32773
- setfieldeffect 2, 32774
+ setfieldeffectargument 0, 32772
+ setfieldeffectargument 1, 32773
+ setfieldeffectargument 2, 32774
dofieldeffect 54
waitfieldeffect 54
delay 10
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle1.inc b/data/scripts/maps/Route110_TrickHousePuzzle1.inc
index 3a89c2db1..4fffd9914 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle1.inc
+++ b/data/scripts/maps/Route110_TrickHousePuzzle1.inc
@@ -8,7 +8,7 @@ Route110_TrickHousePuzzle1_MapScript1_161CFE:: @ 8161CFE
end
Route110_TrickHousePuzzle1_EventScript_161D0A:: @ 8161D0A
- setmaptile 13, 1, 523, 0
+ setmetatile 13, 1, 523, 0
end
Route110_TrickHousePuzzle1_EventScript_161D14:: @ 8161D14
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle2.inc b/data/scripts/maps/Route110_TrickHousePuzzle2.inc
index f71a9611a..6425d05cb 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle2.inc
+++ b/data/scripts/maps/Route110_TrickHousePuzzle2.inc
@@ -70,23 +70,23 @@ Route110_TrickHousePuzzle2_EventScript_161E19:: @ 8161E19
end
Route110_TrickHousePuzzle2_EventScript_161E2C:: @ 8161E2C
- setmaptile 14, 21, 601, 0
- setmaptile 1, 12, 618, 0
+ setmetatile 14, 21, 601, 0
+ setmetatile 1, 12, 618, 0
return
Route110_TrickHousePuzzle2_EventScript_161E3F:: @ 8161E3F
- setmaptile 8, 17, 601, 0
- setmaptile 12, 13, 618, 0
+ setmetatile 8, 17, 601, 0
+ setmetatile 12, 13, 618, 0
return
Route110_TrickHousePuzzle2_EventScript_161E52:: @ 8161E52
- setmaptile 4, 10, 601, 0
- setmaptile 8, 4, 618, 0
+ setmetatile 4, 10, 601, 0
+ setmetatile 8, 4, 618, 0
return
Route110_TrickHousePuzzle2_EventScript_161E65:: @ 8161E65
- setmaptile 5, 2, 601, 0
- setmaptile 12, 5, 618, 0
+ setmetatile 5, 2, 601, 0
+ setmetatile 12, 5, 618, 0
return
Route110_TrickHousePuzzle2_EventScript_161E78:: @ 8161E78
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle3.inc b/data/scripts/maps/Route110_TrickHousePuzzle3.inc
index a50ecd3ce..54cea16c9 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle3.inc
+++ b/data/scripts/maps/Route110_TrickHousePuzzle3.inc
@@ -24,13 +24,13 @@ Route110_TrickHousePuzzle3_MapScript1_161EE4:: @ 8161EE4
end
Route110_TrickHousePuzzle3_EventScript_161F12:: @ 8161F12
- setmaptile 5, 20, 600, 0
- setmaptile 4, 12, 600, 0
- setmaptile 11, 10, 600, 0
- setmaptile 3, 8, 600, 0
- setmaptile 13, 7, 600, 0
- setmaptile 1, 3, 600, 0
- setmaptile 10, 2, 600, 0
+ setmetatile 5, 20, 600, 0
+ setmetatile 4, 12, 600, 0
+ setmetatile 11, 10, 600, 0
+ setmetatile 3, 8, 600, 0
+ setmetatile 13, 7, 600, 0
+ setmetatile 1, 3, 600, 0
+ setmetatile 10, 2, 600, 0
compare 0x4008, 1
call_if 1, Route110_TrickHousePuzzle3_EventScript_161F9F
compare 0x4008, 2
@@ -48,201 +48,201 @@ Route110_TrickHousePuzzle3_EventScript_161F12:: @ 8161F12
return
Route110_TrickHousePuzzle3_EventScript_161F9F:: @ 8161F9F
- setmaptile 5, 20, 601, 0
+ setmetatile 5, 20, 601, 0
return
Route110_TrickHousePuzzle3_EventScript_161FA9:: @ 8161FA9
- setmaptile 4, 12, 601, 0
+ setmetatile 4, 12, 601, 0
return
Route110_TrickHousePuzzle3_EventScript_161FB3:: @ 8161FB3
- setmaptile 11, 10, 601, 0
+ setmetatile 11, 10, 601, 0
return
Route110_TrickHousePuzzle3_EventScript_161FBD:: @ 8161FBD
- setmaptile 3, 8, 601, 0
+ setmetatile 3, 8, 601, 0
return
Route110_TrickHousePuzzle3_EventScript_161FC7:: @ 8161FC7
- setmaptile 13, 7, 601, 0
+ setmetatile 13, 7, 601, 0
return
Route110_TrickHousePuzzle3_EventScript_161FD1:: @ 8161FD1
- setmaptile 1, 3, 601, 0
+ setmetatile 1, 3, 601, 0
return
Route110_TrickHousePuzzle3_EventScript_161FDB:: @ 8161FDB
- setmaptile 10, 2, 601, 0
+ setmetatile 10, 2, 601, 0
return
Route110_TrickHousePuzzle3_EventScript_161FE5:: @ 8161FE5
- setmaptile 1, 6, 587, 0
- setmaptile 2, 6, 588, 0
- setmaptile 1, 7, 595, 0
- setmaptile 2, 7, 596, 0
- setmaptile 4, 9, 587, 0
- setmaptile 5, 9, 588, 0
- setmaptile 4, 10, 595, 0
- setmaptile 5, 10, 596, 0
- setmaptile 4, 18, 587, 0
- setmaptile 5, 18, 588, 0
- setmaptile 4, 19, 595, 0
- setmaptile 5, 19, 596, 0
- setmaptile 7, 3, 587, 0
- setmaptile 8, 3, 588, 0
- setmaptile 7, 4, 595, 0
- setmaptile 8, 4, 596, 0
- setmaptile 7, 9, 587, 0
- setmaptile 8, 9, 588, 0
- setmaptile 7, 10, 595, 0
- setmaptile 8, 10, 596, 0
- setmaptile 7, 18, 587, 0
- setmaptile 8, 18, 588, 0
- setmaptile 7, 19, 595, 0
- setmaptile 8, 19, 596, 0
- setmaptile 13, 3, 587, 0
- setmaptile 14, 3, 588, 0
- setmaptile 13, 4, 595, 0
- setmaptile 14, 4, 596, 0
- setmaptile 13, 9, 587, 0
- setmaptile 14, 9, 588, 0
- setmaptile 13, 10, 595, 0
- setmaptile 14, 10, 596, 0
- setmaptile 13, 15, 587, 0
- setmaptile 14, 15, 588, 0
- setmaptile 13, 16, 595, 0
- setmaptile 14, 16, 596, 0
- setmaptile 3, 13, 589, 1
- setmaptile 3, 14, 597, 0
- setmaptile 6, 7, 589, 1
- setmaptile 6, 8, 597, 0
- setmaptile 9, 16, 589, 1
- setmaptile 9, 17, 597, 0
- setmaptile 12, 4, 589, 1
- setmaptile 12, 5, 597, 0
- setmaptile 12, 10, 589, 1
- setmaptile 12, 11, 597, 0
- setmaptile 1, 15, 568, 0
- setmaptile 2, 15, 569, 0
- setmaptile 1, 16, 576, 1
- setmaptile 2, 16, 577, 1
- setmaptile 4, 6, 568, 0
- setmaptile 5, 6, 569, 0
- setmaptile 4, 7, 576, 1
- setmaptile 5, 7, 577, 1
- setmaptile 7, 12, 568, 0
- setmaptile 8, 12, 569, 0
- setmaptile 7, 13, 576, 1
- setmaptile 8, 13, 577, 1
- setmaptile 10, 12, 568, 0
- setmaptile 11, 12, 569, 0
- setmaptile 10, 13, 576, 1
- setmaptile 11, 13, 577, 1
- setmaptile 10, 18, 568, 0
- setmaptile 11, 18, 569, 0
- setmaptile 10, 19, 576, 1
- setmaptile 11, 19, 577, 1
- setmaptile 3, 4, 570, 1
- setmaptile 3, 5, 578, 1
- setmaptile 6, 10, 570, 1
- setmaptile 6, 11, 578, 1
- setmaptile 6, 13, 570, 1
- setmaptile 6, 14, 578, 1
- setmaptile 6, 16, 570, 1
- setmaptile 6, 17, 578, 1
- setmaptile 9, 4, 570, 1
- setmaptile 9, 5, 578, 1
- setmaptile 9, 7, 570, 1
- setmaptile 9, 8, 578, 1
- setmaptile 12, 13, 570, 1
- setmaptile 12, 14, 578, 1
- setmaptile 12, 16, 570, 1
- setmaptile 12, 17, 578, 1
+ setmetatile 1, 6, 587, 0
+ setmetatile 2, 6, 588, 0
+ setmetatile 1, 7, 595, 0
+ setmetatile 2, 7, 596, 0
+ setmetatile 4, 9, 587, 0
+ setmetatile 5, 9, 588, 0
+ setmetatile 4, 10, 595, 0
+ setmetatile 5, 10, 596, 0
+ setmetatile 4, 18, 587, 0
+ setmetatile 5, 18, 588, 0
+ setmetatile 4, 19, 595, 0
+ setmetatile 5, 19, 596, 0
+ setmetatile 7, 3, 587, 0
+ setmetatile 8, 3, 588, 0
+ setmetatile 7, 4, 595, 0
+ setmetatile 8, 4, 596, 0
+ setmetatile 7, 9, 587, 0
+ setmetatile 8, 9, 588, 0
+ setmetatile 7, 10, 595, 0
+ setmetatile 8, 10, 596, 0
+ setmetatile 7, 18, 587, 0
+ setmetatile 8, 18, 588, 0
+ setmetatile 7, 19, 595, 0
+ setmetatile 8, 19, 596, 0
+ setmetatile 13, 3, 587, 0
+ setmetatile 14, 3, 588, 0
+ setmetatile 13, 4, 595, 0
+ setmetatile 14, 4, 596, 0
+ setmetatile 13, 9, 587, 0
+ setmetatile 14, 9, 588, 0
+ setmetatile 13, 10, 595, 0
+ setmetatile 14, 10, 596, 0
+ setmetatile 13, 15, 587, 0
+ setmetatile 14, 15, 588, 0
+ setmetatile 13, 16, 595, 0
+ setmetatile 14, 16, 596, 0
+ setmetatile 3, 13, 589, 1
+ setmetatile 3, 14, 597, 0
+ setmetatile 6, 7, 589, 1
+ setmetatile 6, 8, 597, 0
+ setmetatile 9, 16, 589, 1
+ setmetatile 9, 17, 597, 0
+ setmetatile 12, 4, 589, 1
+ setmetatile 12, 5, 597, 0
+ setmetatile 12, 10, 589, 1
+ setmetatile 12, 11, 597, 0
+ setmetatile 1, 15, 568, 0
+ setmetatile 2, 15, 569, 0
+ setmetatile 1, 16, 576, 1
+ setmetatile 2, 16, 577, 1
+ setmetatile 4, 6, 568, 0
+ setmetatile 5, 6, 569, 0
+ setmetatile 4, 7, 576, 1
+ setmetatile 5, 7, 577, 1
+ setmetatile 7, 12, 568, 0
+ setmetatile 8, 12, 569, 0
+ setmetatile 7, 13, 576, 1
+ setmetatile 8, 13, 577, 1
+ setmetatile 10, 12, 568, 0
+ setmetatile 11, 12, 569, 0
+ setmetatile 10, 13, 576, 1
+ setmetatile 11, 13, 577, 1
+ setmetatile 10, 18, 568, 0
+ setmetatile 11, 18, 569, 0
+ setmetatile 10, 19, 576, 1
+ setmetatile 11, 19, 577, 1
+ setmetatile 3, 4, 570, 1
+ setmetatile 3, 5, 578, 1
+ setmetatile 6, 10, 570, 1
+ setmetatile 6, 11, 578, 1
+ setmetatile 6, 13, 570, 1
+ setmetatile 6, 14, 578, 1
+ setmetatile 6, 16, 570, 1
+ setmetatile 6, 17, 578, 1
+ setmetatile 9, 4, 570, 1
+ setmetatile 9, 5, 578, 1
+ setmetatile 9, 7, 570, 1
+ setmetatile 9, 8, 578, 1
+ setmetatile 12, 13, 570, 1
+ setmetatile 12, 14, 578, 1
+ setmetatile 12, 16, 570, 1
+ setmetatile 12, 17, 578, 1
return
Route110_TrickHousePuzzle3_EventScript_1622C8:: @ 81622C8
- setmaptile 1, 6, 571, 0
- setmaptile 2, 6, 572, 0
- setmaptile 1, 7, 579, 1
- setmaptile 2, 7, 580, 1
- setmaptile 4, 9, 571, 0
- setmaptile 5, 9, 572, 0
- setmaptile 4, 10, 579, 1
- setmaptile 5, 10, 580, 1
- setmaptile 4, 18, 571, 0
- setmaptile 5, 18, 572, 0
- setmaptile 4, 19, 579, 1
- setmaptile 5, 19, 580, 1
- setmaptile 7, 3, 571, 0
- setmaptile 8, 3, 572, 0
- setmaptile 7, 4, 579, 1
- setmaptile 8, 4, 580, 1
- setmaptile 7, 9, 571, 0
- setmaptile 8, 9, 572, 0
- setmaptile 7, 10, 579, 1
- setmaptile 8, 10, 580, 1
- setmaptile 7, 18, 571, 0
- setmaptile 8, 18, 572, 0
- setmaptile 7, 19, 579, 1
- setmaptile 8, 19, 580, 1
- setmaptile 13, 3, 571, 0
- setmaptile 14, 3, 572, 0
- setmaptile 13, 4, 579, 1
- setmaptile 14, 4, 580, 1
- setmaptile 13, 9, 571, 0
- setmaptile 14, 9, 572, 0
- setmaptile 13, 10, 579, 1
- setmaptile 14, 10, 580, 1
- setmaptile 13, 15, 571, 0
- setmaptile 14, 15, 572, 0
- setmaptile 13, 16, 579, 1
- setmaptile 14, 16, 580, 1
- setmaptile 3, 13, 573, 1
- setmaptile 3, 14, 581, 1
- setmaptile 6, 7, 573, 1
- setmaptile 6, 8, 581, 1
- setmaptile 9, 16, 573, 1
- setmaptile 9, 17, 581, 1
- setmaptile 12, 4, 573, 1
- setmaptile 12, 5, 581, 1
- setmaptile 12, 10, 573, 1
- setmaptile 12, 11, 581, 1
- setmaptile 1, 15, 584, 0
- setmaptile 2, 15, 585, 0
- setmaptile 1, 16, 592, 0
- setmaptile 2, 16, 593, 0
- setmaptile 4, 6, 584, 0
- setmaptile 5, 6, 585, 0
- setmaptile 4, 7, 592, 0
- setmaptile 5, 7, 593, 0
- setmaptile 7, 12, 584, 0
- setmaptile 8, 12, 585, 0
- setmaptile 7, 13, 592, 0
- setmaptile 8, 13, 593, 0
- setmaptile 10, 12, 584, 0
- setmaptile 11, 12, 585, 0
- setmaptile 10, 13, 592, 0
- setmaptile 11, 13, 593, 0
- setmaptile 10, 18, 584, 0
- setmaptile 11, 18, 585, 0
- setmaptile 10, 19, 592, 0
- setmaptile 11, 19, 593, 0
- setmaptile 3, 4, 586, 1
- setmaptile 3, 5, 594, 0
- setmaptile 6, 10, 586, 1
- setmaptile 6, 11, 594, 0
- setmaptile 6, 13, 586, 1
- setmaptile 6, 14, 594, 0
- setmaptile 6, 16, 586, 1
- setmaptile 6, 17, 594, 0
- setmaptile 9, 4, 586, 1
- setmaptile 9, 5, 594, 0
- setmaptile 9, 7, 586, 1
- setmaptile 9, 8, 594, 0
- setmaptile 12, 13, 586, 1
- setmaptile 12, 14, 594, 0
- setmaptile 12, 16, 586, 1
- setmaptile 12, 17, 594, 0
+ setmetatile 1, 6, 571, 0
+ setmetatile 2, 6, 572, 0
+ setmetatile 1, 7, 579, 1
+ setmetatile 2, 7, 580, 1
+ setmetatile 4, 9, 571, 0
+ setmetatile 5, 9, 572, 0
+ setmetatile 4, 10, 579, 1
+ setmetatile 5, 10, 580, 1
+ setmetatile 4, 18, 571, 0
+ setmetatile 5, 18, 572, 0
+ setmetatile 4, 19, 579, 1
+ setmetatile 5, 19, 580, 1
+ setmetatile 7, 3, 571, 0
+ setmetatile 8, 3, 572, 0
+ setmetatile 7, 4, 579, 1
+ setmetatile 8, 4, 580, 1
+ setmetatile 7, 9, 571, 0
+ setmetatile 8, 9, 572, 0
+ setmetatile 7, 10, 579, 1
+ setmetatile 8, 10, 580, 1
+ setmetatile 7, 18, 571, 0
+ setmetatile 8, 18, 572, 0
+ setmetatile 7, 19, 579, 1
+ setmetatile 8, 19, 580, 1
+ setmetatile 13, 3, 571, 0
+ setmetatile 14, 3, 572, 0
+ setmetatile 13, 4, 579, 1
+ setmetatile 14, 4, 580, 1
+ setmetatile 13, 9, 571, 0
+ setmetatile 14, 9, 572, 0
+ setmetatile 13, 10, 579, 1
+ setmetatile 14, 10, 580, 1
+ setmetatile 13, 15, 571, 0
+ setmetatile 14, 15, 572, 0
+ setmetatile 13, 16, 579, 1
+ setmetatile 14, 16, 580, 1
+ setmetatile 3, 13, 573, 1
+ setmetatile 3, 14, 581, 1
+ setmetatile 6, 7, 573, 1
+ setmetatile 6, 8, 581, 1
+ setmetatile 9, 16, 573, 1
+ setmetatile 9, 17, 581, 1
+ setmetatile 12, 4, 573, 1
+ setmetatile 12, 5, 581, 1
+ setmetatile 12, 10, 573, 1
+ setmetatile 12, 11, 581, 1
+ setmetatile 1, 15, 584, 0
+ setmetatile 2, 15, 585, 0
+ setmetatile 1, 16, 592, 0
+ setmetatile 2, 16, 593, 0
+ setmetatile 4, 6, 584, 0
+ setmetatile 5, 6, 585, 0
+ setmetatile 4, 7, 592, 0
+ setmetatile 5, 7, 593, 0
+ setmetatile 7, 12, 584, 0
+ setmetatile 8, 12, 585, 0
+ setmetatile 7, 13, 592, 0
+ setmetatile 8, 13, 593, 0
+ setmetatile 10, 12, 584, 0
+ setmetatile 11, 12, 585, 0
+ setmetatile 10, 13, 592, 0
+ setmetatile 11, 13, 593, 0
+ setmetatile 10, 18, 584, 0
+ setmetatile 11, 18, 585, 0
+ setmetatile 10, 19, 592, 0
+ setmetatile 11, 19, 593, 0
+ setmetatile 3, 4, 586, 1
+ setmetatile 3, 5, 594, 0
+ setmetatile 6, 10, 586, 1
+ setmetatile 6, 11, 594, 0
+ setmetatile 6, 13, 586, 1
+ setmetatile 6, 14, 594, 0
+ setmetatile 6, 16, 586, 1
+ setmetatile 6, 17, 594, 0
+ setmetatile 9, 4, 586, 1
+ setmetatile 9, 5, 594, 0
+ setmetatile 9, 7, 586, 1
+ setmetatile 9, 8, 594, 0
+ setmetatile 12, 13, 586, 1
+ setmetatile 12, 14, 594, 0
+ setmetatile 12, 16, 586, 1
+ setmetatile 12, 17, 594, 0
return
Route110_TrickHousePuzzle3_EventScript_1625AB:: @ 81625AB
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle5.inc b/data/scripts/maps/Route110_TrickHousePuzzle5.inc
index 222a71138..4b9031715 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle5.inc
+++ b/data/scripts/maps/Route110_TrickHousePuzzle5.inc
@@ -401,7 +401,7 @@ Route110_TrickHousePuzzle5_EventScript_162D90:: @ 8162D90
closemessage
msgbox Route110_TrickHousePuzzle5_Text_19D615, 4
closemessage
- warp Route110_TrickHousePuzzle5, 255, 0, 21
+ warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE5, 255, 0, 21
waitstate
releaseall
end
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle7.inc b/data/scripts/maps/Route110_TrickHousePuzzle7.inc
index 3361e3e9d..4ff925639 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle7.inc
+++ b/data/scripts/maps/Route110_TrickHousePuzzle7.inc
@@ -10,76 +10,76 @@ Route110_TrickHousePuzzle7_MapScript1_163161:: @ 8163161
end
Route110_TrickHousePuzzle7_EventScript_163167:: @ 8163167
- checkflag 194
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1
call_if 1, Route110_TrickHousePuzzle7_EventScript_163195
- checkflag 195
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2
call_if 1, Route110_TrickHousePuzzle7_EventScript_1631A8
- checkflag 196
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3
call_if 1, Route110_TrickHousePuzzle7_EventScript_1631BB
- checkflag 197
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4
call_if 1, Route110_TrickHousePuzzle7_EventScript_1631CE
- checkflag 198
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5
call_if 1, Route110_TrickHousePuzzle7_EventScript_1631E1
return
Route110_TrickHousePuzzle7_EventScript_163195:: @ 8163195
- setmaptile 13, 17, 610, 0
- setmaptile 12, 16, 575, 1
+ setmetatile 13, 17, 610, 0
+ setmetatile 12, 16, 575, 1
return
Route110_TrickHousePuzzle7_EventScript_1631A8:: @ 81631A8
- setmaptile 12, 13, 610, 0
- setmaptile 12, 11, 575, 1
+ setmetatile 12, 13, 610, 0
+ setmetatile 12, 11, 575, 1
return
Route110_TrickHousePuzzle7_EventScript_1631BB:: @ 81631BB
- setmaptile 7, 12, 610, 0
- setmaptile 5, 10, 575, 1
+ setmetatile 7, 12, 610, 0
+ setmetatile 5, 10, 575, 1
return
Route110_TrickHousePuzzle7_EventScript_1631CE:: @ 81631CE
- setmaptile 6, 6, 636, 0
- setmaptile 4, 4, 575, 1
+ setmetatile 6, 6, 636, 0
+ setmetatile 4, 4, 575, 1
return
Route110_TrickHousePuzzle7_EventScript_1631E1:: @ 81631E1
- setmaptile 8, 4, 609, 0
- setmaptile 7, 5, 575, 1
+ setmetatile 8, 4, 609, 0
+ setmetatile 7, 5, 575, 1
return
Route110_TrickHousePuzzle7_EventScript_1631F4:: @ 81631F4
- setmaptile 13, 17, 611, 0
- setmaptile 12, 16, 574, 1
+ setmetatile 13, 17, 611, 0
+ setmetatile 12, 16, 574, 1
return
Route110_TrickHousePuzzle7_EventScript_163207:: @ 8163207
- setmaptile 12, 13, 609, 0
- setmaptile 12, 11, 574, 1
+ setmetatile 12, 13, 609, 0
+ setmetatile 12, 11, 574, 1
return
Route110_TrickHousePuzzle7_EventScript_16321A:: @ 816321A
- setmaptile 7, 12, 611, 0
- setmaptile 5, 10, 574, 1
+ setmetatile 7, 12, 611, 0
+ setmetatile 5, 10, 574, 1
return
Route110_TrickHousePuzzle7_EventScript_16322D:: @ 816322D
- setmaptile 6, 6, 635, 0
- setmaptile 4, 4, 574, 1
+ setmetatile 6, 6, 635, 0
+ setmetatile 4, 4, 574, 1
return
Route110_TrickHousePuzzle7_EventScript_163240:: @ 8163240
- setmaptile 8, 4, 608, 0
- setmaptile 7, 5, 574, 1
+ setmetatile 8, 4, 608, 0
+ setmetatile 7, 5, 574, 1
return
Route110_TrickHousePuzzle7_MapScript1_163253:: @ 8163253
compare 0x40b6, 1
goto_if_eq Route110_TrickHousePuzzle7_EventScript_16326E
- clearflag 194
- clearflag 195
- clearflag 196
- clearflag 197
- clearflag 198
+ clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1
+ clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2
+ clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3
+ clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4
+ clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5
end
Route110_TrickHousePuzzle7_EventScript_16326E:: @ 816326E
@@ -113,7 +113,7 @@ Route110_TrickHousePuzzle7_EventScript_16329D:: @ 816329D
Route110_TrickHousePuzzle7_EventScript_1632A8:: @ 81632A8
lockall
setvar 0x40b6, 1
- warpteleport Route110_TrickHousePuzzle7, 255, 3, 19
+ warpteleport MAP_ROUTE110_TRICK_HOUSE_PUZZLE7, 255, 3, 19
waitstate
releaseall
end
@@ -121,125 +121,125 @@ Route110_TrickHousePuzzle7_EventScript_1632A8:: @ 81632A8
Route110_TrickHousePuzzle7_EventScript_1632B9:: @ 81632B9
lockall
delay 32
- checkflag 194
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1
call_if 0, Route110_TrickHousePuzzle7_EventScript_163195
- checkflag 194
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1
call_if 1, Route110_TrickHousePuzzle7_EventScript_1631F4
special DrawWholeMapView
playse 36
- checkflag 194
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1
goto_if 0, Route110_TrickHousePuzzle7_EventScript_1633A4
- checkflag 194
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1
goto_if_eq Route110_TrickHousePuzzle7_EventScript_1633A9
end
Route110_TrickHousePuzzle7_EventScript_1632E8:: @ 81632E8
lockall
delay 32
- checkflag 195
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2
call_if 0, Route110_TrickHousePuzzle7_EventScript_1631A8
- checkflag 195
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2
call_if 1, Route110_TrickHousePuzzle7_EventScript_163207
special DrawWholeMapView
playse 36
- checkflag 195
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2
goto_if 0, Route110_TrickHousePuzzle7_EventScript_1633AE
- checkflag 195
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2
goto_if_eq Route110_TrickHousePuzzle7_EventScript_1633B3
end
Route110_TrickHousePuzzle7_EventScript_163317:: @ 8163317
lockall
delay 32
- checkflag 196
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3
call_if 0, Route110_TrickHousePuzzle7_EventScript_1631BB
- checkflag 196
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3
call_if 1, Route110_TrickHousePuzzle7_EventScript_16321A
special DrawWholeMapView
playse 36
- checkflag 196
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3
goto_if 0, Route110_TrickHousePuzzle7_EventScript_1633B8
- checkflag 196
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3
goto_if_eq Route110_TrickHousePuzzle7_EventScript_1633BD
end
Route110_TrickHousePuzzle7_EventScript_163346:: @ 8163346
lockall
delay 32
- checkflag 197
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4
call_if 0, Route110_TrickHousePuzzle7_EventScript_1631CE
- checkflag 197
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4
call_if 1, Route110_TrickHousePuzzle7_EventScript_16322D
special DrawWholeMapView
playse 36
- checkflag 197
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4
goto_if 0, Route110_TrickHousePuzzle7_EventScript_1633C2
- checkflag 197
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4
goto_if_eq Route110_TrickHousePuzzle7_EventScript_1633C7
end
Route110_TrickHousePuzzle7_EventScript_163375:: @ 8163375
lockall
delay 32
- checkflag 198
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5
call_if 0, Route110_TrickHousePuzzle7_EventScript_1631E1
- checkflag 198
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5
call_if 1, Route110_TrickHousePuzzle7_EventScript_163240
special DrawWholeMapView
playse 36
- checkflag 198
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5
goto_if 0, Route110_TrickHousePuzzle7_EventScript_1633CC
- checkflag 198
+ checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5
goto_if_eq Route110_TrickHousePuzzle7_EventScript_1633D1
end
Route110_TrickHousePuzzle7_EventScript_1633A4:: @ 81633A4
- setflag 194
+ setflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1
releaseall
end
Route110_TrickHousePuzzle7_EventScript_1633A9:: @ 81633A9
- clearflag 194
+ clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1
releaseall
end
Route110_TrickHousePuzzle7_EventScript_1633AE:: @ 81633AE
- setflag 195
+ setflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2
releaseall
end
Route110_TrickHousePuzzle7_EventScript_1633B3:: @ 81633B3
- clearflag 195
+ clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2
releaseall
end
Route110_TrickHousePuzzle7_EventScript_1633B8:: @ 81633B8
- setflag 196
+ setflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3
releaseall
end
Route110_TrickHousePuzzle7_EventScript_1633BD:: @ 81633BD
- clearflag 196
+ clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3
releaseall
end
Route110_TrickHousePuzzle7_EventScript_1633C2:: @ 81633C2
- setflag 197
+ setflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4
releaseall
end
Route110_TrickHousePuzzle7_EventScript_1633C7:: @ 81633C7
- clearflag 197
+ clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4
releaseall
end
Route110_TrickHousePuzzle7_EventScript_1633CC:: @ 81633CC
- setflag 198
+ setflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5
releaseall
end
Route110_TrickHousePuzzle7_EventScript_1633D1:: @ 81633D1
- clearflag 198
+ clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5
releaseall
end
diff --git a/data/scripts/maps/Route111.inc b/data/scripts/maps/Route111.inc
index 545e62921..0a7e6befc 100644
--- a/data/scripts/maps/Route111.inc
+++ b/data/scripts/maps/Route111.inc
@@ -4,13 +4,13 @@ Route111_MapScripts:: @ 814FF91
.byte 0
Route111_MapScript1_14FF9C:: @ 814FF9C
- checkflag 228
+ checkflag FLAG_REGI_DOORS_OPENED
call_if 0, Route111_EventScript_14FFA6
end
Route111_EventScript_14FFA6:: @ 814FFA6
- setmaptile 29, 86, 124, 1
- setmaptile 29, 87, 145, 1
+ setmetatile 29, 86, 124, 1
+ setmetatile 29, 87, 145, 1
return
Route111_MapScript1_14FFB9:: @ 814FFB9
@@ -40,10 +40,10 @@ Route111_EventScript_15000C:: @ 815000C
return
Route111_EventScript_15000D:: @ 815000D
- clearflag 768
- setflag 769
- setflag 770
- setflag 771
+ clearflag FLAG_HIDE_VICTOR_WINSTRATE
+ setflag FLAG_HIDE_VICTORIA_WINSTRATE
+ setflag FLAG_HIDE_VIVI_WINSTRATE
+ setflag FLAG_HIDE_VICKI_WINSTRATE
cleartrainerflag OPPONENT_VICTOR
cleartrainerflag OPPONENT_VICTORIA
cleartrainerflag OPPONENT_VIVI
@@ -54,10 +54,10 @@ Route111_EventScript_150023:: @ 8150023
msgbox Route111_Text_16FA54, 5
compare RESULT, 0
goto_if_eq Route111_EventScript_15005F
- giveitem ITEM_ROOT_FOSSIL
+ giveitem_std ITEM_ROOT_FOSSIL
closemessage
- setflag 963
- setflag 964
+ setflag FLAG_HIDE_ROOT_FOSSIL
+ setflag FLAG_HIDE_CLAW_FOSSIL
removeobject 34
delay 30
applymovement 35, Route111_Movement_1500AF
@@ -76,10 +76,10 @@ Route111_EventScript_150069:: @ 8150069
msgbox Route111_Text_16FAED, 5
compare RESULT, 0
goto_if_eq Route111_EventScript_1500A5
- giveitem ITEM_CLAW_FOSSIL
+ giveitem_std ITEM_CLAW_FOSSIL
closemessage
- setflag 964
- setflag 963
+ setflag FLAG_HIDE_CLAW_FOSSIL
+ setflag FLAG_HIDE_ROOT_FOSSIL
removeobject 35
delay 30
applymovement 34, Route111_Movement_1500AF
@@ -121,13 +121,13 @@ Route111_EventScript_1500C5:: @ 81500C5
lock
faceplayer
dodailyevents
- checkflag 2252
+ checkflag FLAG_DAILY_RECEIVED_BERRY_ROUTE111
goto_if_eq Route111_EventScript_150100
msgbox Route111_Text_1C56F0, 4
- giveitem ITEM_RAZZ_BERRY
+ giveitem_std ITEM_RAZZ_BERRY
compare RESULT, 0
goto_if_eq Route111_EventScript_1A029B
- setflag 2252
+ setflag FLAG_DAILY_RECEIVED_BERRY_ROUTE111
special GetPlayerBigGuyGirlString
msgbox Route111_Text_1C5781, 4
release
@@ -236,7 +236,7 @@ Route111_EventScript_1501C9:: @ 81501C9
Route111_EventScript_1501D1:: @ 81501D1
lock
faceplayer
- setflag 2115
+ setflag FLAG_LANDMARK_WINSTRATE_FAMILY
msgbox Route111_Text_16F705, 5
compare RESULT, 1
goto_if_eq Route111_EventScript_1501F3
diff --git a/data/scripts/maps/Route111_OldLadysRestStop.inc b/data/scripts/maps/Route111_OldLadysRestStop.inc
index 5576a44ff..c0fb6f489 100644
--- a/data/scripts/maps/Route111_OldLadysRestStop.inc
+++ b/data/scripts/maps/Route111_OldLadysRestStop.inc
@@ -3,7 +3,7 @@ Route111_OldLadysRestStop_MapScripts:: @ 815BFD1
.byte 0
Route111_OldLadysRestStop_MapScript1_15BFD7:: @ 815BFD7
- setflag 2113
+ setflag FLAG_LANDMARK_OLD_LADY_REST_SHOP
end
Route111_OldLadysRestStop_EventScript_15BFDB:: @ 815BFDB
diff --git a/data/scripts/maps/Route111_WinstrateFamilysHouse.inc b/data/scripts/maps/Route111_WinstrateFamilysHouse.inc
index d9a94ce75..981971e41 100644
--- a/data/scripts/maps/Route111_WinstrateFamilysHouse.inc
+++ b/data/scripts/maps/Route111_WinstrateFamilysHouse.inc
@@ -13,13 +13,13 @@ Route111_WinstrateFamilysHouse_EventScript_15BF3A:: @ 815BF3A
lock
faceplayer
setvar 0x8008, 3
- checkflag 277
+ checkflag FLAG_RECEIVED_MACHO_BRACE
goto_if_eq Route111_WinstrateFamilysHouse_EventScript_15BF72
msgbox Route111_WinstrateFamilysHouse_Text_19208A, 4
- giveitem ITEM_MACHO_BRACE
+ giveitem_std ITEM_MACHO_BRACE
compare RESULT, 0
goto_if_eq Route111_WinstrateFamilysHouse_EventScript_1A029B
- setflag 277
+ setflag FLAG_RECEIVED_MACHO_BRACE
goto Route111_WinstrateFamilysHouse_EventScript_15BFC4
end
@@ -40,10 +40,10 @@ Route111_WinstrateFamilysHouse_EventScript_15BF95:: @ 815BF95
lock
faceplayer
setvar 0x8008, 4
- checkflag 4
+ checkflag FLAG_TEMP_4
goto_if_eq Route111_WinstrateFamilysHouse_EventScript_15BFB6
msgbox Route111_WinstrateFamilysHouse_Text_192219, 4
- setflag 4
+ setflag FLAG_TEMP_4
goto Route111_WinstrateFamilysHouse_EventScript_15BFC4
end
diff --git a/data/scripts/maps/Route112_CableCarStation.inc b/data/scripts/maps/Route112_CableCarStation.inc
index 22534aa77..d414ca8ed 100644
--- a/data/scripts/maps/Route112_CableCarStation.inc
+++ b/data/scripts/maps/Route112_CableCarStation.inc
@@ -4,7 +4,7 @@ Route112_CableCarStation_MapScripts:: @ 815C033
.byte 0
Route112_CableCarStation_MapScript1_15C03E:: @ 815C03E
- setescapewarp Route112, 255, 28, 28
+ setescapewarp MAP_ROUTE112, 255, 28, 28
compare 0x40a3, 2
call_if 1, Route112_CableCarStation_EventScript_15C052
end
diff --git a/data/scripts/maps/Route113.inc b/data/scripts/maps/Route113.inc
index 2eb34cdf3..37fd0ed3f 100644
--- a/data/scripts/maps/Route113.inc
+++ b/data/scripts/maps/Route113.inc
@@ -4,7 +4,7 @@ Route113_MapScripts:: @ 81505CC
.byte 0
Route113_MapScript1_1505D7:: @ 81505D7
- tileeffect 1
+ setstepcallback 1
end
Route113_MapScript1_1505DA:: @ 81505DA
diff --git a/data/scripts/maps/Route113_GlassWorkshop.inc b/data/scripts/maps/Route113_GlassWorkshop.inc
index d0b608339..8d853b88d 100644
--- a/data/scripts/maps/Route113_GlassWorkshop.inc
+++ b/data/scripts/maps/Route113_GlassWorkshop.inc
@@ -3,7 +3,7 @@ Route113_GlassWorkshop_MapScripts:: @ 816354A
.byte 0
Route113_GlassWorkshop_MapScript1_163550:: @ 8163550
- setflag 2116
+ setflag FLAG_LANDMARK_GLASS_WORKSHOP
compare 0x40be, 1
call_if 1, Route113_GlassWorkshop_EventScript_16355F
end
@@ -22,7 +22,7 @@ Route113_GlassWorkshop_EventScript_163565:: @ 8163565
compare 0x40be, 1
goto_if_eq Route113_GlassWorkshop_EventScript_1635AB
msgbox Route113_GlassWorkshop_Text_19E4E6, 4
- giveitem ITEM_SOOT_SACK
+ giveitem_std ITEM_SOOT_SACK
setvar 0x40be, 1
msgbox Route113_GlassWorkshop_Text_19E59B, 4
release
@@ -68,7 +68,7 @@ Route113_GlassWorkshop_EventScript_1635EE:: @ 81635EE
Route113_GlassWorkshop_EventScript_163660:: @ 8163660
setvar 0x8008, 39
- getitemname 0, 0x8008
+ bufferitemname 0, 0x8008
setvar 0x800a, 250
compare 0x4048, 250
goto_if 0, Route113_GlassWorkshop_EventScript_163830
@@ -82,7 +82,7 @@ Route113_GlassWorkshop_EventScript_163660:: @ 8163660
Route113_GlassWorkshop_EventScript_16369C:: @ 816369C
setvar 0x8008, 40
- getitemname 0, 0x8008
+ bufferitemname 0, 0x8008
setvar 0x800a, 500
compare 0x4048, 500
goto_if 0, Route113_GlassWorkshop_EventScript_163830
@@ -96,7 +96,7 @@ Route113_GlassWorkshop_EventScript_16369C:: @ 816369C
Route113_GlassWorkshop_EventScript_1636D8:: @ 81636D8
setvar 0x8008, 41
- getitemname 0, 0x8008
+ bufferitemname 0, 0x8008
setvar 0x800a, 500
compare 0x4048, 500
goto_if 0, Route113_GlassWorkshop_EventScript_163830
@@ -110,7 +110,7 @@ Route113_GlassWorkshop_EventScript_1636D8:: @ 81636D8
Route113_GlassWorkshop_EventScript_163714:: @ 8163714
setvar 0x8008, 43
- getitemname 0, 0x8008
+ bufferitemname 0, 0x8008
setvar 0x800a, 1000
compare 0x4048, 1000
goto_if 0, Route113_GlassWorkshop_EventScript_163830
@@ -124,7 +124,7 @@ Route113_GlassWorkshop_EventScript_163714:: @ 8163714
Route113_GlassWorkshop_EventScript_163750:: @ 8163750
setvar 0x8008, 42
- getitemname 0, 0x8008
+ bufferitemname 0, 0x8008
setvar 0x800a, 1000
compare 0x4048, 1000
goto_if 0, Route113_GlassWorkshop_EventScript_163830
@@ -139,7 +139,7 @@ Route113_GlassWorkshop_EventScript_163750:: @ 8163750
Route113_GlassWorkshop_EventScript_16378C:: @ 816378C
setvar 0x8009, 1
setvar 0x8008, 13
- getdecorname 0, 0x8008
+ bufferdecorationname 0, 0x8008
setvar 0x800a, 6000
compare 0x4048, 6000
goto_if 0, Route113_GlassWorkshop_EventScript_163830
@@ -154,7 +154,7 @@ Route113_GlassWorkshop_EventScript_16378C:: @ 816378C
Route113_GlassWorkshop_EventScript_1637CD:: @ 81637CD
setvar 0x8009, 1
setvar 0x8008, 6
- getdecorname 0, 0x8008
+ bufferdecorationname 0, 0x8008
setvar 0x800a, 8000
compare 0x4048, 8000
goto_if 0, Route113_GlassWorkshop_EventScript_163830
@@ -174,14 +174,14 @@ Route113_GlassWorkshop_EventScript_16380E:: @ 816380E
Route113_GlassWorkshop_EventScript_163818:: @ 8163818
setvar 0x800a, 250
subvar 0x800a, 16456
- getnumberstring 0, 32778
+ buffernumberstring 0, 32778
msgbox Route113_GlassWorkshop_Text_19E697, 4
release
end
Route113_GlassWorkshop_EventScript_163830:: @ 8163830
subvar 0x800a, 16456
- getnumberstring 1, 32778
+ buffernumberstring 1, 32778
message Route113_GlassWorkshop_Text_19E890
waitmessage
goto Route113_GlassWorkshop_EventScript_1635EE
@@ -210,13 +210,13 @@ Route113_GlassWorkshop_EventScript_163851:: @ 8163851
end
Route113_GlassWorkshop_EventScript_163889:: @ 8163889
- giveitem 0x8008
+ giveitem_std 0x8008
compare RESULT, 0
goto_if_eq Route113_GlassWorkshop_EventScript_1638B4
return
Route113_GlassWorkshop_EventScript_1638A1:: @ 81638A1
- givedecoration 0x8008
+ givedecoration_std 0x8008
compare RESULT, 0
goto_if_eq Route113_GlassWorkshop_EventScript_1638C3
return
@@ -247,49 +247,49 @@ Route113_GlassWorkshop_EventScript_1638D2:: @ 81638D2
Route113_GlassWorkshop_EventScript_163925:: @ 8163925
setvar 0x8009, 0
setvar 0x8008, 39
- getitemname 0, 0x8008
+ bufferitemname 0, 0x8008
goto Route113_GlassWorkshop_EventScript_1639B1
end
Route113_GlassWorkshop_EventScript_163939:: @ 8163939
setvar 0x8009, 0
setvar 0x8008, 40
- getitemname 0, 0x8008
+ bufferitemname 0, 0x8008
goto Route113_GlassWorkshop_EventScript_1639B1
end
Route113_GlassWorkshop_EventScript_16394D:: @ 816394D
setvar 0x8009, 0
setvar 0x8008, 41
- getitemname 0, 0x8008
+ bufferitemname 0, 0x8008
goto Route113_GlassWorkshop_EventScript_1639B1
end
Route113_GlassWorkshop_EventScript_163961:: @ 8163961
setvar 0x8009, 0
setvar 0x8008, 43
- getitemname 0, 0x8008
+ bufferitemname 0, 0x8008
goto Route113_GlassWorkshop_EventScript_1639B1
end
Route113_GlassWorkshop_EventScript_163975:: @ 8163975
setvar 0x8009, 0
setvar 0x8008, 42
- getitemname 0, 0x8008
+ bufferitemname 0, 0x8008
goto Route113_GlassWorkshop_EventScript_1639B1
end
Route113_GlassWorkshop_EventScript_163989:: @ 8163989
setvar 0x8009, 1
setvar 0x8008, 13
- getdecorname 0, 13
+ bufferdecorationname 0, 13
goto Route113_GlassWorkshop_EventScript_1639B1
end
Route113_GlassWorkshop_EventScript_16399D:: @ 816399D
setvar 0x8009, 1
setvar 0x8008, 6
- getdecorname 0, 6
+ bufferdecorationname 0, 6
goto Route113_GlassWorkshop_EventScript_1639B1
end
diff --git a/data/scripts/maps/Route114.inc b/data/scripts/maps/Route114.inc
index 0730db23a..302c162b0 100644
--- a/data/scripts/maps/Route114.inc
+++ b/data/scripts/maps/Route114.inc
@@ -5,16 +5,16 @@ Route114_EventScript_150733:: @ 8150733
lock
faceplayer
dodailyevents
- checkflag 2251
+ checkflag FLAG_DAILY_RECEIVED_BERRY_ROUTE114
goto_if_eq Route114_EventScript_150778
msgbox Route114_Text_1C5803, 4
random 5
addvar RESULT, 15
addvar RESULT, 133
- giveitem RESULT
+ giveitem_std RESULT
compare RESULT, 0
goto_if_eq Route114_EventScript_1A029B
- setflag 2251
+ setflag FLAG_DAILY_RECEIVED_BERRY_ROUTE114
msgbox Route114_Text_1C5861, 4
release
end
@@ -27,13 +27,13 @@ Route114_EventScript_150778:: @ 8150778
Route114_EventScript_150782:: @ 8150782
lock
faceplayer
- checkflag 231
+ checkflag FLAG_RECEIVED_TM05
goto_if_eq Route114_EventScript_1507B9
msgbox Route114_Text_170154, 4
- giveitem ITEM_TM05
+ giveitem_std ITEM_TM05
compare RESULT, 0
goto_if_eq Route114_EventScript_1A029B
- setflag 231
+ setflag FLAG_RECEIVED_TM05
msgbox Route114_Text_1701C5, 4
release
end
@@ -47,9 +47,9 @@ Route114_EventScript_1507C3:: @ 81507C3
lock
faceplayer
waitse
- playpokecry SPECIES_POOCHYENA, 2
+ playmoncry SPECIES_POOCHYENA, 2
msgbox Route114_Text_1701F9, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/Route114_FossilManiacsHouse.inc b/data/scripts/maps/Route114_FossilManiacsHouse.inc
index b217f24c4..1a1445fde 100644
--- a/data/scripts/maps/Route114_FossilManiacsHouse.inc
+++ b/data/scripts/maps/Route114_FossilManiacsHouse.inc
@@ -3,19 +3,19 @@ Route114_FossilManiacsHouse_MapScripts:: @ 815C1B9
.byte 0
Route114_FossilManiacsHouse_MapScript1_15C1BF:: @ 815C1BF
- setflag 2135
+ setflag FLAG_LANDMARK_FOSSIL_MANIACS_HOUSE
end
Route114_FossilManiacsHouse_EventScript_15C1C3:: @ 815C1C3
lock
faceplayer
- checkflag 261
+ checkflag FLAG_RECEIVED_TM28
goto_if_eq Route114_FossilManiacsHouse_EventScript_15C1F2
msgbox Route114_FossilManiacsHouse_Text_1925E1, 4
- giveitem ITEM_TM28
+ giveitem_std ITEM_TM28
compare RESULT, 0
goto_if_eq Route114_FossilManiacsHouse_EventScript_1A029B
- setflag 261
+ setflag FLAG_RECEIVED_TM28
release
end
diff --git a/data/scripts/maps/Route114_FossilManiacsTunnel.inc b/data/scripts/maps/Route114_FossilManiacsTunnel.inc
index 13843f758..2ce9c1bfa 100644
--- a/data/scripts/maps/Route114_FossilManiacsTunnel.inc
+++ b/data/scripts/maps/Route114_FossilManiacsTunnel.inc
@@ -4,7 +4,7 @@ Route114_FossilManiacsTunnel_MapScripts:: @ 815C20E
Route114_FossilManiacsTunnel_EventScript_15C20F:: @ 815C20F
lock
faceplayer
- checkflag 267
+ checkflag FLAG_RECEIVED_FOSSIL_MON
goto_if_eq Route114_FossilManiacsTunnel_EventScript_15C24E
checkitem ITEM_ROOT_FOSSIL, 1
compare RESULT, 1
diff --git a/data/scripts/maps/Route114_LanettesHouse.inc b/data/scripts/maps/Route114_LanettesHouse.inc
index e4334647c..f8ff5de73 100644
--- a/data/scripts/maps/Route114_LanettesHouse.inc
+++ b/data/scripts/maps/Route114_LanettesHouse.inc
@@ -3,24 +3,24 @@ Route114_LanettesHouse_MapScripts:: @ 815C258
.byte 0
Route114_LanettesHouse_MapScript1_15C25E:: @ 815C25E
- setflag 2117
+ setflag FLAG_LANDMARK_LANETTES_HOUSE
end
Route114_LanettesHouse_EventScript_15C262:: @ 815C262
lock
faceplayer
- checkflag 131
+ checkflag FLAG_RECEIVED_DOLL_LANETTE
goto_if_eq Route114_LanettesHouse_EventScript_15C28F
- setflag 2123
+ setflag FLAG_SYS_PC_LANETTE
msgbox Route114_LanettesHouse_Text_192A0D, 4
.ifdef SAPPHIRE
- givedecoration 99
+ givedecoration_std DECOR_LOTAD_DOLL
.else
- givedecoration 100
+ givedecoration_std DECOR_SEEDOT_DOLL
.endif
compare RESULT, 0
goto_if_eq Route114_LanettesHouse_EventScript_1A02AE
- setflag 131
+ setflag FLAG_RECEIVED_DOLL_LANETTE
release
end
diff --git a/data/scripts/maps/Route116.inc b/data/scripts/maps/Route116.inc
index beb01e083..9aadedb32 100644
--- a/data/scripts/maps/Route116.inc
+++ b/data/scripts/maps/Route116.inc
@@ -3,7 +3,7 @@ Route116_MapScripts:: @ 8150A31
.byte 0
Route116_MapScript1_150A37:: @ 8150A37
- checkflag 143
+ checkflag FLAG_RECOVERED_DEVON_GOODS
call_if 1, Route116_EventScript_150A41
end
@@ -14,9 +14,9 @@ Route116_EventScript_150A41:: @ 8150A41
Route116_EventScript_150A49:: @ 8150A49
lock
faceplayer
- checkflag 143
+ checkflag FLAG_RECOVERED_DEVON_GOODS
goto_if_eq Route116_EventScript_150A67
- checkflag 142
+ checkflag FLAG_DEVON_GOODS_STOLEN
goto_if_eq Route116_EventScript_150A71
msgbox Route116_Text_1703CF, 4
release
@@ -35,15 +35,15 @@ Route116_EventScript_150A71:: @ 8150A71
Route116_EventScript_150A7B:: @ 8150A7B
lock
faceplayer
- checkflag 287
+ checkflag FLAG_MET_DEVON_EMPLOYEE
goto_if_eq Route116_EventScript_150B04
msgbox Route116_Text_1705AE, 4
goto Route116_EventScript_150A94
end
Route116_EventScript_150A94:: @ 8150A94
- setflag 287
- giveitem ITEM_REPEAT_BALL
+ setflag FLAG_MET_DEVON_EMPLOYEE
+ giveitem_std ITEM_REPEAT_BALL
compare RESULT, 0
goto_if_eq Route116_EventScript_150B12
msgbox Route116_Text_1707B8, 4
@@ -57,8 +57,8 @@ Route116_EventScript_150A94:: @ 8150A94
compare FACING, 4
call_if 1, Route116_EventScript_150AF9
removeobject LAST_TALKED
- clearflag 949
- setflag 256
+ clearflag FLAG_HIDE_EMPLOYEE_DEVON_CORP_3F
+ setflag FLAG_RECEIVED_REPEAT_BALL
release
end
diff --git a/data/scripts/maps/Route116_TunnelersRestHouse.inc b/data/scripts/maps/Route116_TunnelersRestHouse.inc
index 10991c38c..24091c4ac 100644
--- a/data/scripts/maps/Route116_TunnelersRestHouse.inc
+++ b/data/scripts/maps/Route116_TunnelersRestHouse.inc
@@ -3,7 +3,7 @@ Route116_TunnelersRestHouse_MapScripts:: @ 815C2DE
.byte 0
Route116_TunnelersRestHouse_MapScript1_15C2E4:: @ 815C2E4
- setflag 2138
+ setflag FLAG_LANDMARK_TUNNELERS_REST_HOUSE
end
Route116_TunnelersRestHouse_EventScript_15C2E8:: @ 815C2E8
@@ -17,7 +17,7 @@ Route116_TunnelersRestHouse_EventScript_15C2F1:: @ 815C2F1
Route116_TunnelersRestHouse_EventScript_15C2FA:: @ 815C2FA
lock
faceplayer
- checkflag 199
+ checkflag FLAG_RUSTURF_TUNNEL_OPENED
goto_if_eq Route116_TunnelersRestHouse_EventScript_15C30F
msgbox Route116_TunnelersRestHouse_Text_193135, 4
release
diff --git a/data/scripts/maps/Route117.inc b/data/scripts/maps/Route117.inc
index 40affd3fd..44c4c156c 100644
--- a/data/scripts/maps/Route117.inc
+++ b/data/scripts/maps/Route117.inc
@@ -7,7 +7,7 @@ Route117_MapScript1_150D40:: @ 8150D40
end
Route117_EventScript_150D46:: @ 8150D46
- checkflag 134
+ checkflag FLAG_PENDING_DAYCARE_EGG
goto_if 0, Route117_EventScript_150D56
setobjectxyperm 3, 47, 6
diff --git a/data/scripts/maps/Route117_PokemonDayCare.inc b/data/scripts/maps/Route117_PokemonDayCare.inc
index 2a3ee79e1..9ad740b4e 100644
--- a/data/scripts/maps/Route117_PokemonDayCare.inc
+++ b/data/scripts/maps/Route117_PokemonDayCare.inc
@@ -3,5 +3,5 @@ Route117_PokemonDayCare_MapScripts:: @ 815C319
.byte 0
Route117_PokemonDayCare_MapScript1_15C31F:: @ 815C31F
- setflag 2118
+ setflag FLAG_LANDMARK_POKEMON_DAYCARE
end
diff --git a/data/scripts/maps/Route118.inc b/data/scripts/maps/Route118.inc
index b96346f15..ca69e01c4 100644
--- a/data/scripts/maps/Route118.inc
+++ b/data/scripts/maps/Route118.inc
@@ -9,7 +9,7 @@ Route118_MapScript1_150F2E:: @ 8150F2E
Route118_EventScript_150F34:: @ 8150F34
lock
faceplayer
- checkflag 227
+ checkflag FLAG_RECEIVED_GOOD_ROD
goto_if_eq Route118_EventScript_150F89
msgbox Route118_Text_170F12, 5
compare RESULT, 1
@@ -20,8 +20,8 @@ Route118_EventScript_150F34:: @ 8150F34
Route118_EventScript_150F5E:: @ 8150F5E
msgbox Route118_Text_170F46, 4
- giveitem ITEM_GOOD_ROD
- setflag 227
+ giveitem_std ITEM_GOOD_ROD
+ setflag FLAG_RECEIVED_GOOD_ROD
msgbox Route118_Text_170F7E, 4
release
end
diff --git a/data/scripts/maps/Route119.inc b/data/scripts/maps/Route119.inc
index 2179a7e18..aff1254a9 100644
--- a/data/scripts/maps/Route119.inc
+++ b/data/scripts/maps/Route119.inc
@@ -4,7 +4,7 @@ Route119_MapScripts:: @ 8151167
.byte 0
Route119_MapScript1_151172:: @ 8151172
- checkflag 2145
+ checkflag FLAG_SYS_CTRL_OBJ_DELETE
call_if 1, Route119_EventScript_15117C
end
@@ -33,8 +33,8 @@ Route119_MapScript1_15119B:: @ 815119B
end
Route119_EventScript_1511B9:: @ 81511B9
- setflag 893
- clearflag 892
+ setflag FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_2F
+ clearflag FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_1F
setvar 0x40b3, 2
return
@@ -148,8 +148,8 @@ Route119_EventScript_151337:: @ 8151337
end
Route119_EventScript_151352:: @ 8151352
- giveitem ITEM_HM02
- setflag 110
+ giveitem_std ITEM_HM02
+ setflag FLAG_RECEIVED_HM02
return
Route119_EventScript_151362:: @ 8151362
diff --git a/data/scripts/maps/Route119_House.inc b/data/scripts/maps/Route119_House.inc
index 42cc89068..76763c68e 100644
--- a/data/scripts/maps/Route119_House.inc
+++ b/data/scripts/maps/Route119_House.inc
@@ -9,8 +9,8 @@ Route119_House_EventScript_163DE7:: @ 8163DE7
lock
faceplayer
waitse
- playpokecry SPECIES_WINGULL, 0
+ playmoncry SPECIES_WINGULL, 0
msgbox Route119_House_Text_19F406, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/Route119_WeatherInstitute_2F.inc b/data/scripts/maps/Route119_WeatherInstitute_2F.inc
index ac64904a2..991725b8c 100644
--- a/data/scripts/maps/Route119_WeatherInstitute_2F.inc
+++ b/data/scripts/maps/Route119_WeatherInstitute_2F.inc
@@ -39,10 +39,10 @@ Route119_WeatherInstitute_2F_EventScript_163D45:: @ 8163D45
msgbox Route119_WeatherInstitute_2F_Text_19F11B, 4
closemessage
setvar 0x40b3, 1
- clearflag 893
+ clearflag FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_2F
fadedefaultbgm
fadescreen 1
- setflag 890
+ setflag FLAG_HIDE_EVIL_TEAM_WEATHER_INSTITUTE
removeobject 1
removeobject 2
removeobject 3
@@ -55,15 +55,15 @@ Route119_WeatherInstitute_2F_EventScript_163D45:: @ 8163D45
Route119_WeatherInstitute_2F_EventScript_163D7A:: @ 8163D7A
msgbox Route119_WeatherInstitute_2F_Text_19F1CF, 4
- countpokemon
+ getpartysize
compare RESULT, 6
goto_if_eq Route119_WeatherInstitute_2F_EventScript_163DB4
playfanfare 370
message Route119_WeatherInstitute_2F_Text_19F267
waitfanfare
waitmessage
- givepoke SPECIES_CASTFORM, 25, ITEM_MYSTIC_WATER, 0x0, 0x0, 0
- setflag 151
+ givemon SPECIES_CASTFORM, 25, ITEM_MYSTIC_WATER, 0x0, 0x0, 0
+ setflag FLAG_RECEIVED_CASTFORM
msgbox Route119_WeatherInstitute_2F_Text_19F27D, 4
release
end
@@ -87,7 +87,7 @@ Route119_WeatherInstitute_2F_Movement_163DC8:: @ 8163DC8
Route119_WeatherInstitute_2F_EventScript_163DCC:: @ 8163DCC
lock
faceplayer
- checkflag 151
+ checkflag FLAG_RECEIVED_CASTFORM
goto_if_eq 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 868d00324..cd84f95af 100644
--- a/data/scripts/maps/Route120.inc
+++ b/data/scripts/maps/Route120.inc
@@ -5,7 +5,7 @@ Route120_MapScripts:: @ 815160E
.byte 0
Route120_MapScript1_15161E:: @ 815161E
- checkflag 2145
+ checkflag FLAG_SYS_CTRL_OBJ_DELETE
call_if 1, Route120_EventScript_151628
end
@@ -50,24 +50,24 @@ Route120_EventScript_151682:: @ 8151682
return
Route120_MapScript1_151686:: @ 8151686
- checkflag 228
+ checkflag FLAG_REGI_DOORS_OPENED
call_if 0, Route120_EventScript_1516A2
- checkflag 285
+ checkflag FLAG_RECEIVED_DEVON_SCOPE
call_if 1, Route120_EventScript_1516B5
- checkflag 285
+ checkflag FLAG_RECEIVED_DEVON_SCOPE
call_if 0, Route120_EventScript_1516DA
end
Route120_EventScript_1516A2:: @ 81516A2
- setmaptile 7, 54, 124, 1
- setmaptile 7, 55, 145, 1
+ setmetatile 7, 54, 124, 1
+ setmetatile 7, 55, 145, 1
return
Route120_EventScript_1516B5:: @ 81516B5
- setmaptile 13, 15, 663, 0
- setmaptile 12, 16, 671, 0
- setmaptile 12, 17, 161, 0
- setmaptile 13, 17, 161, 0
+ setmetatile 13, 15, 663, 0
+ setmetatile 12, 16, 671, 0
+ setmetatile 12, 17, 161, 0
+ setmetatile 13, 17, 161, 0
return
Route120_EventScript_1516DA:: @ 81516DA
@@ -113,7 +113,7 @@ Route120_EventScript_151739:: @ 8151739
lock
faceplayer
dodailyevents
- checkflag 2254
+ checkflag FLAG_DAILY_RECEIVED_BERRY_ROUTE120
goto_if_eq Route120_EventScript_151837
msgbox Route120_Text_1C58F1, 5
compare RESULT, 1
@@ -135,35 +135,35 @@ Route120_EventScript_151739:: @ 8151739
end
Route120_EventScript_1517DC:: @ 81517DC
- setvar 0x8004, 143
+ setvar 0x8004, ITEM_FIGY_BERRY
goto Route120_EventScript_151813
end
Route120_EventScript_1517E7:: @ 81517E7
- setvar 0x8004, 144
+ setvar 0x8004, ITEM_WIKI_BERRY
goto Route120_EventScript_151813
end
Route120_EventScript_1517F2:: @ 81517F2
- setvar 0x8004, 145
+ setvar 0x8004, ITEM_MAGO_BERRY
goto Route120_EventScript_151813
end
Route120_EventScript_1517FD:: @ 81517FD
- setvar 0x8004, 146
+ setvar 0x8004, ITEM_AGUAV_BERRY
goto Route120_EventScript_151813
end
Route120_EventScript_151808:: @ 8151808
- setvar 0x8004, 147
+ setvar 0x8004, ITEM_IAPAPA_BERRY
goto Route120_EventScript_151813
end
Route120_EventScript_151813:: @ 8151813
- giveitem 0x8004
+ giveitem_std 0x8004
compare RESULT, 0
goto_if_eq Route120_EventScript_1A029B
- setflag 2254
+ setflag FLAG_DAILY_RECEIVED_BERRY_ROUTE120
msgbox Route120_Text_1C5A0B, 4
release
end
@@ -184,7 +184,7 @@ Route120_EventScript_15184A:: @ 815184A
Route120_EventScript_151853:: @ 8151853
lock
faceplayer
- checkflag 290
+ checkflag FLAG_NOT_READY_FOR_BATTLE_ROUTE120
goto_if_eq Route120_EventScript_151884
msgbox Route120_Text_171827, 5
compare RESULT, 0
@@ -194,7 +194,7 @@ Route120_EventScript_151853:: @ 8151853
Route120_EventScript_151877:: @ 8151877
msgbox Route120_Text_17193D, 4
- setflag 290
+ setflag FLAG_NOT_READY_FOR_BATTLE_ROUTE120
release
end
@@ -222,14 +222,14 @@ Route120_EventScript_15189D:: @ 815189D
applymovement 30, Route120_Movement_1A0662
waitmovement 0
waitse
- playpokecry SPECIES_KECLEON, 2
+ playmoncry SPECIES_KECLEON, 2
delay 40
- waitpokecry
+ waitmoncry
setwildbattle SPECIES_KECLEON, 30, ITEM_NONE
setvar 0x8004, 0
- setflag 2145
+ setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
- clearflag 2145
+ clearflag FLAG_SYS_CTRL_OBJ_DELETE
goto Route120_EventScript_151908
end
@@ -238,22 +238,22 @@ Route120_EventScript_151908:: @ 8151908
applymovement 255, Route120_Movement_1A0841
waitmovement 0
msgbox Route120_Text_171A40, 4
- giveitem ITEM_DEVON_SCOPE
- setflag 285
+ giveitem_std ITEM_DEVON_SCOPE
+ setflag FLAG_RECEIVED_DEVON_SCOPE
msgbox Route120_Text_171B0E, 4
closemessage
applymovement 31, Route120_Movement_1A0845
waitmovement 0
delay 50
- setfieldeffect 0, 1
+ setfieldeffectargument 0, 1
dofieldeffect 30
delay 15
removeobject 31
waitfieldeffect 30
- setmaptile 13, 15, 663, 0
- setmaptile 12, 16, 671, 0
- setmaptile 12, 17, 161, 0
- setmaptile 13, 17, 161, 0
+ setmetatile 13, 15, 663, 0
+ setmetatile 12, 16, 671, 0
+ setmetatile 12, 17, 161, 0
+ setmetatile 13, 17, 161, 0
special DrawWholeMapView
release
end
diff --git a/data/scripts/maps/Route121_SafariZoneEntrance.inc b/data/scripts/maps/Route121_SafariZoneEntrance.inc
index 9649271f4..431444dae 100644
--- a/data/scripts/maps/Route121_SafariZoneEntrance.inc
+++ b/data/scripts/maps/Route121_SafariZoneEntrance.inc
@@ -82,12 +82,12 @@ Route121_SafariZoneEntrance_EventScript_15C3B3:: @ 815C3B3
waitmovement 0
special EnterSafariMode
setvar 0x40a4, 2
- warp SafariZone_Southeast, 255, 32, 33
+ warp MAP_SAFARI_ZONE_SOUTHEAST, 255, 32, 33
waitstate
end
Route121_SafariZoneEntrance_EventScript_15C425:: @ 815C425
- countpokemon
+ getpartysize
compare RESULT, 6
goto_if 5, Route121_SafariZoneEntrance_EventScript_15C44F
specialvar RESULT, CheckFreePokemonStorageSpace
diff --git a/data/scripts/maps/Route123.inc b/data/scripts/maps/Route123.inc
index 14c5a2dba..adfebfe08 100644
--- a/data/scripts/maps/Route123.inc
+++ b/data/scripts/maps/Route123.inc
@@ -9,17 +9,17 @@ Route123_MapScript1_151C59:: @ 8151C59
Route123_EventScript_151C5D:: @ 8151C5D
lock
faceplayer
- checkflag 232
+ checkflag FLAG_RECEIVED_TM19
goto_if_eq 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 ITEM_TM19
+ giveitem_std ITEM_TM19
compare RESULT, 0
goto_if_eq Route123_EventScript_1A029B
- setflag 232
+ setflag FLAG_RECEIVED_TM19
msgbox Route123_Text_171E34, 4
release
end
diff --git a/data/scripts/maps/Route123_BerryMastersHouse.inc b/data/scripts/maps/Route123_BerryMastersHouse.inc
index 64888759d..6948bff87 100644
--- a/data/scripts/maps/Route123_BerryMastersHouse.inc
+++ b/data/scripts/maps/Route123_BerryMastersHouse.inc
@@ -3,28 +3,28 @@ Route123_BerryMastersHouse_MapScripts:: @ 81639DF
.byte 0
Route123_BerryMastersHouse_MapScript1_1639E5:: @ 81639E5
- setflag 2147
+ setflag FLAG_LANDMARK_BERRY_MASTERS_HOUSE
end
Route123_BerryMastersHouse_EventScript_1639E9:: @ 81639E9
lock
faceplayer
dodailyevents
- checkflag 2253
+ checkflag FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER
goto_if_eq Route123_BerryMastersHouse_EventScript_163A5A
msgbox Route123_BerryMastersHouse_Text_1C5BC4, 4
random 10
addvar RESULT, 20
addvar RESULT, 133
- giveitem RESULT
+ giveitem_std RESULT
compare RESULT, 0
goto_if_eq Route123_BerryMastersHouse_EventScript_1A029B
- setflag 2253
+ setflag FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER
msgbox Route123_BerryMastersHouse_Text_1C5C66, 4
random 10
addvar RESULT, 20
addvar RESULT, 133
- giveitem RESULT
+ giveitem_std RESULT
compare RESULT, 0
goto_if_eq Route123_BerryMastersHouse_EventScript_1A029B
msgbox Route123_BerryMastersHouse_Text_1C5C83, 4
@@ -40,7 +40,7 @@ Route123_BerryMastersHouse_EventScript_163A64:: @ 8163A64
lock
faceplayer
dodailyevents
- checkflag 2257
+ checkflag FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER_WIFE
goto_if_eq Route123_BerryMastersHouse_EventScript_163C13
msgbox Route123_BerryMastersHouse_Text_1C5D24, 4
setvar 0x8004, 13
@@ -77,8 +77,8 @@ Route123_BerryMastersHouse_EventScript_163AAD:: @ 8163AAD
Route123_BerryMastersHouse_EventScript_163AF0:: @ 8163AF0
msgbox Route123_BerryMastersHouse_Text_1C5E0E, 4
random 10
- addvar RESULT, 133
- giveitem RESULT
+ addvar RESULT, ITEM_CHERI_BERRY
+ giveitem_std RESULT
compare RESULT, 0
goto_if_eq Route123_BerryMastersHouse_EventScript_1A029B
goto Route123_BerryMastersHouse_EventScript_163C1D
@@ -86,57 +86,57 @@ Route123_BerryMastersHouse_EventScript_163AF0:: @ 8163AF0
end
Route123_BerryMastersHouse_EventScript_163B1E:: @ 8163B1E
- checkflag 248
+ checkflag FLAG_RECEIVED_SPELON_BERRY
goto_if_eq Route123_BerryMastersHouse_EventScript_163AF0
msgbox Route123_BerryMastersHouse_Text_1C5DC1, 4
- giveitem ITEM_SPELON_BERRY
+ giveitem_std ITEM_SPELON_BERRY
compare RESULT, 0
goto_if_eq Route123_BerryMastersHouse_EventScript_1A029B
- setflag 248
+ setflag FLAG_RECEIVED_SPELON_BERRY
goto Route123_BerryMastersHouse_EventScript_163C1D
end
Route123_BerryMastersHouse_EventScript_163B4F:: @ 8163B4F
- checkflag 249
+ checkflag FLAG_RECEIVED_PAMTRE_BERRY
goto_if_eq Route123_BerryMastersHouse_EventScript_163AF0
msgbox Route123_BerryMastersHouse_Text_1C5DC1, 4
- giveitem ITEM_PAMTRE_BERRY
+ giveitem_std ITEM_PAMTRE_BERRY
compare RESULT, 0
goto_if_eq Route123_BerryMastersHouse_EventScript_1A029B
- setflag 249
+ setflag FLAG_RECEIVED_PAMTRE_BERRY
goto Route123_BerryMastersHouse_EventScript_163C1D
end
Route123_BerryMastersHouse_EventScript_163B80:: @ 8163B80
- checkflag 250
+ checkflag FLAG_RECEIVED_WATMEL_BERRY
goto_if_eq Route123_BerryMastersHouse_EventScript_163AF0
msgbox Route123_BerryMastersHouse_Text_1C5DC1, 4
- giveitem ITEM_WATMEL_BERRY
+ giveitem_std ITEM_WATMEL_BERRY
compare RESULT, 0
goto_if_eq Route123_BerryMastersHouse_EventScript_1A029B
- setflag 250
+ setflag FLAG_RECEIVED_WATMEL_BERRY
goto Route123_BerryMastersHouse_EventScript_163C1D
end
Route123_BerryMastersHouse_EventScript_163BB1:: @ 8163BB1
- checkflag 251
+ checkflag FLAG_RECEIVED_DURIN_BERRY
goto_if_eq Route123_BerryMastersHouse_EventScript_163AF0
msgbox Route123_BerryMastersHouse_Text_1C5DC1, 4
- giveitem ITEM_DURIN_BERRY
+ giveitem_std ITEM_DURIN_BERRY
compare RESULT, 0
goto_if_eq Route123_BerryMastersHouse_EventScript_1A029B
- setflag 251
+ setflag FLAG_RECEIVED_DURIN_BERRY
goto Route123_BerryMastersHouse_EventScript_163C1D
end
Route123_BerryMastersHouse_EventScript_163BE2:: @ 8163BE2
- checkflag 252
+ checkflag FLAG_RECEIVED_BELUE_BERRY
goto_if_eq Route123_BerryMastersHouse_EventScript_163AF0
msgbox Route123_BerryMastersHouse_Text_1C5DC1, 4
- giveitem ITEM_BELUE_BERRY
+ giveitem_std ITEM_BELUE_BERRY
compare RESULT, 0
goto_if_eq Route123_BerryMastersHouse_EventScript_1A029B
- setflag 252
+ setflag FLAG_RECEIVED_BELUE_BERRY
goto Route123_BerryMastersHouse_EventScript_163C1D
end
@@ -146,7 +146,7 @@ Route123_BerryMastersHouse_EventScript_163C13:: @ 8163C13
end
Route123_BerryMastersHouse_EventScript_163C1D:: @ 8163C1D
- setflag 2257
+ setflag FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER_WIFE
msgbox Route123_BerryMastersHouse_Text_1C5E59, 4
release
end
diff --git a/data/scripts/maps/Route124.inc b/data/scripts/maps/Route124.inc
index ffe4cef97..3e062bfdc 100644
--- a/data/scripts/maps/Route124.inc
+++ b/data/scripts/maps/Route124.inc
@@ -3,7 +3,7 @@ Route124_MapScripts:: @ 8151DDF
.byte 0
Route124_MapScript1_151DE5:: @ 8151DE5
- checkflag 2090
+ checkflag FLAG_SYS_WEATHER_CTRL
call_if 1, Route124_EventScript_1A02C1
end
diff --git a/data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc b/data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc
index 7421e94e0..4902d9f08 100644
--- a/data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc
+++ b/data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc
@@ -3,16 +3,16 @@ Route124_DivingTreasureHuntersHouse_MapScripts:: @ 8163DFA
.byte 0
Route124_DivingTreasureHuntersHouse_MapScript1_163E00:: @ 8163E00
- setflag 2139
+ setflag FLAG_LANDMARK_HUNTERS_HOUSE
end
Route124_DivingTreasureHuntersHouse_EventScript_163E04:: @ 8163E04
lock
faceplayer
- checkflag 217
+ checkflag FLAG_MET_DIVING_TREASURE_HUNTER
goto_if_eq Route124_DivingTreasureHuntersHouse_EventScript_163E20
msgbox Route124_DivingTreasureHuntersHouse_Text_19F416, 4
- setflag 217
+ setflag FLAG_MET_DIVING_TREASURE_HUNTER
goto Route124_DivingTreasureHuntersHouse_EventScript_163E2E
end
@@ -244,8 +244,8 @@ Route124_DivingTreasureHuntersHouse_EventScript_164283:: @ 8164283
goto Route124_DivingTreasureHuntersHouse_EventScript_164292
Route124_DivingTreasureHuntersHouse_EventScript_164292:: @ 8164292
- getitemname 0, 0x8008
- getitemname 1, 0x8009
+ bufferitemname 0, 0x8008
+ bufferitemname 1, 0x8009
msgbox Route124_DivingTreasureHuntersHouse_Text_19F5E0, 5
compare RESULT, 0
goto_if_eq Route124_DivingTreasureHuntersHouse_EventScript_16431F
@@ -259,8 +259,8 @@ Route124_DivingTreasureHuntersHouse_EventScript_164292:: @ 8164292
end
Route124_DivingTreasureHuntersHouse_EventScript_1642D3:: @ 81642D3
- removeitem 0x8008, 1
- giveitem 0x8009
+ takeitem 0x8008, 1
+ giveitem_std 0x8009
msgbox Route124_DivingTreasureHuntersHouse_Text_19F606, 4
call Route124_DivingTreasureHuntersHouse_EventScript_163E44
compare 0x4001, 0
diff --git a/data/scripts/maps/Route125.inc b/data/scripts/maps/Route125.inc
index 489a7314b..ea24434e2 100644
--- a/data/scripts/maps/Route125.inc
+++ b/data/scripts/maps/Route125.inc
@@ -3,7 +3,7 @@ Route125_MapScripts:: @ 8151F1E
.byte 0
Route125_MapScript1_151F24:: @ 8151F24
- checkflag 2090
+ checkflag FLAG_SYS_WEATHER_CTRL
call_if 1, Route125_EventScript_1A02C1
end
diff --git a/data/scripts/maps/Route126.inc b/data/scripts/maps/Route126.inc
index 729922681..a89087994 100644
--- a/data/scripts/maps/Route126.inc
+++ b/data/scripts/maps/Route126.inc
@@ -3,7 +3,7 @@ Route126_MapScripts:: @ 8151FFE
.byte 0
Route126_MapScript1_152004:: @ 8152004
- checkflag 2090
+ checkflag FLAG_SYS_WEATHER_CTRL
call_if 1, Route126_EventScript_1A02C1
end
diff --git a/data/scripts/maps/Route127.inc b/data/scripts/maps/Route127.inc
index 284d1fbd4..5fb122821 100644
--- a/data/scripts/maps/Route127.inc
+++ b/data/scripts/maps/Route127.inc
@@ -3,7 +3,7 @@ Route127_MapScripts:: @ 815206A
.byte 0
Route127_MapScript1_152070:: @ 8152070
- checkflag 2090
+ checkflag FLAG_SYS_WEATHER_CTRL
call_if 1, Route127_EventScript_1A02C1
end
diff --git a/data/scripts/maps/Route128.inc b/data/scripts/maps/Route128.inc
index 615662fc1..a81e73c3e 100644
--- a/data/scripts/maps/Route128.inc
+++ b/data/scripts/maps/Route128.inc
@@ -4,7 +4,7 @@ Route128_MapScripts:: @ 815211B
.byte 0
Route128_MapScript1_152126:: @ 8152126
- checkflag 2090
+ checkflag FLAG_SYS_WEATHER_CTRL
call_if 1, Route128_EventScript_1A02C1
call Route128_EventScript_1A0196
end
@@ -52,7 +52,7 @@ Route128_EventScript_15213F:: @ 815213F
removeobject 5
removeobject 4
delay 100
- setfieldeffect 0, 1
+ setfieldeffectargument 0, 1
dofieldeffect 30
waitfieldeffect 30
addobject 3
@@ -77,7 +77,7 @@ Route128_EventScript_15213F:: @ 815213F
applymovement 3, Route128_Movement_1A0845
waitmovement 0
delay 50
- setfieldeffect 0, 1
+ setfieldeffectargument 0, 1
dofieldeffect 30
delay 15
removeobject 3
diff --git a/data/scripts/maps/Route130.inc b/data/scripts/maps/Route130.inc
index 69da29471..b0381969d 100644
--- a/data/scripts/maps/Route130.inc
+++ b/data/scripts/maps/Route130.inc
@@ -6,22 +6,22 @@ Route130_MapScript1_1523C8:: @ 81523C8
specialvar RESULT, IsMirageIslandPresent
compare RESULT, 1
goto_if_eq Route130_EventScript_15240C
- setflag 17
- setflag 18
- setflag 19
- setflag 20
- setflag 21
- setflag 22
- setflag 23
- setflag 24
- setflag 25
- setflag 26
- setflag 27
- setflag 28
- setflag 29
- setflag 30
- setflag 31
- setflag 32
+ setflag FLAG_TEMP_11
+ setflag FLAG_TEMP_12
+ setflag FLAG_TEMP_13
+ setflag FLAG_TEMP_14
+ setflag FLAG_TEMP_15
+ setflag FLAG_TEMP_16
+ setflag FLAG_TEMP_17
+ setflag FLAG_TEMP_18
+ setflag FLAG_TEMP_19
+ setflag FLAG_TEMP_1A
+ setflag FLAG_TEMP_1B
+ setflag FLAG_TEMP_1C
+ setflag FLAG_TEMP_1D
+ setflag FLAG_TEMP_1E
+ setflag FLAG_TEMP_1F
+ setflag FLAG_TEMP_20
setmaplayoutindex 264
end
diff --git a/data/scripts/maps/Route131.inc b/data/scripts/maps/Route131.inc
index 50ad4222b..efa26ecd2 100644
--- a/data/scripts/maps/Route131.inc
+++ b/data/scripts/maps/Route131.inc
@@ -3,7 +3,7 @@ Route131_MapScripts:: @ 815243E
.byte 0
Route131_MapScript1_152444:: @ 8152444
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
call_if 1, Route131_EventScript_15244E
end
diff --git a/data/scripts/maps/Route134.inc b/data/scripts/maps/Route134.inc
index 6b4d330d1..06b53ce31 100644
--- a/data/scripts/maps/Route134.inc
+++ b/data/scripts/maps/Route134.inc
@@ -3,7 +3,7 @@ Route134_MapScripts:: @ 81525B5
.byte 0
Route134_MapScript1_1525BB:: @ 81525BB
- setdivewarp Underwater_Route134, 255, 8, 6
+ setdivewarp MAP_UNDERWATER_ROUTE134, 255, 8, 6
end
Route134_EventScript_1525C4:: @ 81525C4
diff --git a/data/scripts/maps/RustboroCity.inc b/data/scripts/maps/RustboroCity.inc
index 916eb8108..c45389b9f 100644
--- a/data/scripts/maps/RustboroCity.inc
+++ b/data/scripts/maps/RustboroCity.inc
@@ -3,7 +3,7 @@ RustboroCity_MapScripts:: @ 814C372
.byte 0
RustboroCity_MapScript1_14C378:: @ 814C378
- setflag 2073
+ setflag FLAG_VISITED_RUSTBORO_CITY
call RustboroCity_EventScript_1A0196
call RustboroCity_EventScript_1A014E
end
@@ -11,7 +11,7 @@ RustboroCity_MapScript1_14C378:: @ 814C378
RustboroCity_EventScript_14C386:: @ 814C386
lock
faceplayer
- checkflag 142
+ checkflag FLAG_DEVON_GOODS_STOLEN
goto_if_eq RustboroCity_EventScript_14C39B
msgbox RustboroCity_Text_16689D, 4
release
@@ -36,7 +36,7 @@ RustboroCity_EventScript_14C3B1:: @ 814C3B1
RustboroCity_EventScript_14C3BA:: @ 814C3BA
lock
faceplayer
- checkflag 2055
+ checkflag FLAG_BADGE01_GET
goto_if_eq RustboroCity_EventScript_14C3CF
msgbox RustboroCity_Text_16696D, 4
release
@@ -50,7 +50,7 @@ RustboroCity_EventScript_14C3CF:: @ 814C3CF
RustboroCity_EventScript_14C3D9:: @ 814C3D9
lock
faceplayer
- checkflag 188
+ checkflag FLAG_RECEIVED_POKENAV
goto_if_eq RustboroCity_EventScript_14C3EE
msgbox RustboroCity_Text_166B86, 4
release
@@ -178,16 +178,16 @@ RustboroCity_EventScript_14C4F4:: @ 814C4F4
waitmovement 0
removeobject 9
setobjectxyperm 9, 30, 10
- clearflag 732
- setflag 142
+ clearflag FLAG_HIDE_DEVON_RUSTBORO
+ setflag FLAG_DEVON_GOODS_STOLEN
setvar 0x405a, 2
setvar 0x409a, 2
setvar 0x406f, 1
- clearflag 891
- clearflag 880
- clearflag 878
- setflag 739
- setflag 881
+ clearflag FLAG_HIDE_BRINEY_ROUTE116
+ clearflag FLAG_HIDE_PEEKO_RUSTURF_TUNNEL
+ clearflag FLAG_HIDE_GRUNT_RUSTURF_TUNNEL
+ setflag FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE
+ setflag FLAG_HIDE_PEEKO_BRINEY_HOUSE
releaseall
end
@@ -326,7 +326,7 @@ RustboroCity_Movement_14C5F7:: @ 814C5F7
RustboroCity_EventScript_14C5FF:: @ 814C5FF
lock
faceplayer
- checkflag 143
+ checkflag FLAG_RECOVERED_DEVON_GOODS
goto_if_eq RustboroCity_EventScript_14C614
msgbox RustboroCity_Text_166F6B, 4
release
@@ -371,7 +371,7 @@ RustboroCity_EventScript_14C650:: @ 814C650
call_if 1, RustboroCity_EventScript_14C6E9
compare 0x4001, 3
call_if 1, RustboroCity_EventScript_14C715
- setflag 159
+ setflag FLAG_UNKNOWN_9F
setvar 0x405a, 3
moveobjectoffscreen 9
msgbox RustboroCity_Text_166EA5, 4
@@ -468,16 +468,16 @@ RustboroCity_EventScript_14C77D:: @ 814C77D
compare 0x4001, 4
call_if 1, RustboroCity_EventScript_14C8B8
msgbox RustboroCity_Text_166FB4, 4
- giveitem ITEM_GREAT_BALL
+ giveitem_std ITEM_GREAT_BALL
compare RESULT, 0
call_if 1, RustboroCity_EventScript_14C7F5
msgbox RustboroCity_Text_16707F, 4
closemessage
- setflag 144
- setflag 732
+ setflag FLAG_RETURNED_DEVON_GOODS
+ setflag FLAG_HIDE_DEVON_RUSTBORO
setvar 0x405a, 5
delay 30
- warp RustboroCity_DevonCorp_3F, 255, 2, 2
+ warp MAP_RUSTBORO_CITY_DEVON_CORP_3F, 255, 2, 2
waitstate
releaseall
end
@@ -549,7 +549,7 @@ RustboroCity_EventScript_14C8B8:: @ 814C8B8
RustboroCity_EventScript_14C8DA:: @ 814C8DA
lock
faceplayer
- checkflag 288
+ checkflag FLAG_MET_RIVAL_RUSTBORO
goto_if_eq RustboroCity_EventScript_14C917
checkplayergender
compare RESULT, 0
@@ -559,13 +559,13 @@ RustboroCity_EventScript_14C8DA:: @ 814C8DA
end
RustboroCity_EventScript_14C8FD:: @ 814C8FD
- setflag 288
+ setflag FLAG_MET_RIVAL_RUSTBORO
msgbox RustboroCity_Text_1670A7, 4
release
end
RustboroCity_EventScript_14C90A:: @ 814C90A
- setflag 288
+ setflag FLAG_MET_RIVAL_RUSTBORO
msgbox RustboroCity_Text_167213, 4
release
end
diff --git a/data/scripts/maps/RustboroCity_CuttersHouse.inc b/data/scripts/maps/RustboroCity_CuttersHouse.inc
index 3e98746f3..3371005c0 100644
--- a/data/scripts/maps/RustboroCity_CuttersHouse.inc
+++ b/data/scripts/maps/RustboroCity_CuttersHouse.inc
@@ -4,11 +4,11 @@ RustboroCity_CuttersHouse_MapScripts:: @ 8157D26
RustboroCity_CuttersHouse_EventScript_157D27:: @ 8157D27
lock
faceplayer
- checkflag 137
+ checkflag FLAG_RECEIVED_HM01
goto_if_eq RustboroCity_CuttersHouse_EventScript_157D53
msgbox RustboroCity_CuttersHouse_Text_18509C, 4
- giveitem ITEM_HM01
- setflag 137
+ giveitem_std ITEM_HM01
+ setflag FLAG_RECEIVED_HM01
msgbox RustboroCity_CuttersHouse_Text_1851C9, 4
release
end
diff --git a/data/scripts/maps/RustboroCity_DevonCorp_1F.inc b/data/scripts/maps/RustboroCity_DevonCorp_1F.inc
index 48d8aaf9f..f9e902763 100644
--- a/data/scripts/maps/RustboroCity_DevonCorp_1F.inc
+++ b/data/scripts/maps/RustboroCity_DevonCorp_1F.inc
@@ -3,7 +3,7 @@ RustboroCity_DevonCorp_1F_MapScripts:: @ 8157406
.byte 0
RustboroCity_DevonCorp_1F_MapScript1_15740C:: @ 815740C
- checkflag 144
+ checkflag FLAG_RETURNED_DEVON_GOODS
call_if 0, RustboroCity_DevonCorp_1F_EventScript_157416
end
@@ -15,9 +15,9 @@ RustboroCity_DevonCorp_1F_EventScript_157416:: @ 8157416
RustboroCity_DevonCorp_1F_EventScript_157422:: @ 8157422
lock
faceplayer
- checkflag 144
+ checkflag FLAG_RETURNED_DEVON_GOODS
goto_if_eq RustboroCity_DevonCorp_1F_EventScript_15744A
- checkflag 142
+ checkflag FLAG_DEVON_GOODS_STOLEN
goto_if_eq RustboroCity_DevonCorp_1F_EventScript_157440
msgbox RustboroCity_DevonCorp_1F_Text_1829A4, 4
release
@@ -36,11 +36,11 @@ RustboroCity_DevonCorp_1F_EventScript_15744A:: @ 815744A
RustboroCity_DevonCorp_1F_EventScript_157454:: @ 8157454
lock
faceplayer
- checkflag 144
+ checkflag FLAG_RETURNED_DEVON_GOODS
goto_if_eq RustboroCity_DevonCorp_1F_EventScript_15747B
- checkflag 143
+ checkflag FLAG_RECOVERED_DEVON_GOODS
goto_if_eq RustboroCity_DevonCorp_1F_EventScript_157485
- checkflag 142
+ checkflag FLAG_DEVON_GOODS_STOLEN
goto_if_eq RustboroCity_DevonCorp_1F_EventScript_157485
msgbox RustboroCity_DevonCorp_1F_Text_182AF0, 4
release
@@ -59,11 +59,11 @@ RustboroCity_DevonCorp_1F_EventScript_157485:: @ 8157485
RustboroCity_DevonCorp_1F_EventScript_15748F:: @ 815748F
lock
faceplayer
- checkflag 144
+ checkflag FLAG_RETURNED_DEVON_GOODS
goto_if_eq RustboroCity_DevonCorp_1F_EventScript_1574B6
- checkflag 143
+ checkflag FLAG_RECOVERED_DEVON_GOODS
goto_if_eq RustboroCity_DevonCorp_1F_EventScript_1574C0
- checkflag 142
+ checkflag FLAG_DEVON_GOODS_STOLEN
goto_if_eq RustboroCity_DevonCorp_1F_EventScript_1574C0
msgbox RustboroCity_DevonCorp_1F_Text_1828EE, 4
release
diff --git a/data/scripts/maps/RustboroCity_DevonCorp_2F.inc b/data/scripts/maps/RustboroCity_DevonCorp_2F.inc
index f40c1b87b..89d59258d 100644
--- a/data/scripts/maps/RustboroCity_DevonCorp_2F.inc
+++ b/data/scripts/maps/RustboroCity_DevonCorp_2F.inc
@@ -25,7 +25,7 @@ RustboroCity_DevonCorp_2F_EventScript_1574F9:: @ 81574F9
faceplayer
compare 0x40c4, 1
call_if 1, RustboroCity_DevonCorp_2F_EventScript_1574DC
- checkflag 287
+ checkflag FLAG_MET_DEVON_EMPLOYEE
goto_if_eq RustboroCity_DevonCorp_2F_EventScript_157519
msgbox RustboroCity_DevonCorp_2F_Text_182BD8, 4
release
@@ -41,7 +41,7 @@ RustboroCity_DevonCorp_2F_EventScript_157523:: @ 8157523
faceplayer
compare 0x40c4, 1
call_if 1, RustboroCity_DevonCorp_2F_EventScript_1574DC
- checkflag 188
+ checkflag FLAG_RECEIVED_POKENAV
goto_if_eq RustboroCity_DevonCorp_2F_EventScript_157543
msgbox RustboroCity_DevonCorp_2F_Text_182D2A, 4
release
@@ -88,9 +88,9 @@ RustboroCity_DevonCorp_2F_EventScript_1575A6:: @ 81575A6
msgbox RustboroCity_DevonCorp_2F_Text_182F35, 5
compare RESULT, 0
goto_if_eq RustboroCity_DevonCorp_2F_EventScript_157636
- getitemname 0, ITEM_ROOT_FOSSIL
+ bufferitemname 0, ITEM_ROOT_FOSSIL
msgbox RustboroCity_DevonCorp_2F_Text_183023, 4
- removeitem ITEM_ROOT_FOSSIL, 1
+ takeitem ITEM_ROOT_FOSSIL, 1
setvar 0x40c4, 1
setvar 0x40c5, 1
release
@@ -106,9 +106,9 @@ RustboroCity_DevonCorp_2F_EventScript_1575EE:: @ 81575EE
msgbox RustboroCity_DevonCorp_2F_Text_182F35, 5
compare RESULT, 0
goto_if_eq RustboroCity_DevonCorp_2F_EventScript_157636
- getitemname 0, ITEM_CLAW_FOSSIL
+ bufferitemname 0, ITEM_CLAW_FOSSIL
msgbox RustboroCity_DevonCorp_2F_Text_183023, 4
- removeitem ITEM_CLAW_FOSSIL, 1
+ takeitem ITEM_CLAW_FOSSIL, 1
setvar 0x40c4, 1
setvar 0x40c5, 2
release
@@ -132,19 +132,19 @@ RustboroCity_DevonCorp_2F_EventScript_15764A:: @ 815764A
end
RustboroCity_DevonCorp_2F_EventScript_157661:: @ 8157661
- getspeciesname 1, SPECIES_LILEEP
+ bufferspeciesname 1, SPECIES_LILEEP
msgbox RustboroCity_DevonCorp_2F_Text_183124, 4
- countpokemon
+ getpartysize
compare RESULT, 6
goto_if_eq RustboroCity_DevonCorp_2F_EventScript_157707
copyvar 0x8004, RESULT
setvar 0x40c4, 0
- setflag 267
+ setflag FLAG_RECEIVED_FOSSIL_MON
playfanfare 370
message RustboroCity_DevonCorp_2F_Text_18319E
waitfanfare
waitmessage
- givepoke SPECIES_LILEEP, 20, ITEM_NONE, 0x0, 0x0, 0
+ 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
@@ -152,19 +152,19 @@ RustboroCity_DevonCorp_2F_EventScript_157661:: @ 8157661
end
RustboroCity_DevonCorp_2F_EventScript_1576B4:: @ 81576B4
- getspeciesname 1, SPECIES_ANORITH
+ bufferspeciesname 1, SPECIES_ANORITH
msgbox RustboroCity_DevonCorp_2F_Text_183124, 4
- countpokemon
+ getpartysize
compare RESULT, 6
goto_if_eq RustboroCity_DevonCorp_2F_EventScript_157707
copyvar 0x8004, RESULT
setvar 0x40c4, 0
- setflag 267
+ setflag FLAG_RECEIVED_FOSSIL_MON
playfanfare 370
message RustboroCity_DevonCorp_2F_Text_18319E
waitfanfare
waitmessage
- givepoke SPECIES_ANORITH, 20, ITEM_NONE, 0x0, 0x0, 0
+ 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
diff --git a/data/scripts/maps/RustboroCity_DevonCorp_3F.inc b/data/scripts/maps/RustboroCity_DevonCorp_3F.inc
index 6f0152e60..e2e70d4c0 100644
--- a/data/scripts/maps/RustboroCity_DevonCorp_3F.inc
+++ b/data/scripts/maps/RustboroCity_DevonCorp_3F.inc
@@ -48,22 +48,22 @@ RustboroCity_DevonCorp_3F_EventScript_157752:: @ 8157752
applymovement 255, RustboroCity_DevonCorp_3F_Movement_157835
waitmovement 0
msgbox RustboroCity_DevonCorp_3F_Text_18320B, 4
- giveitem ITEM_LETTER
+ giveitem_std ITEM_LETTER
msgbox RustboroCity_DevonCorp_3F_Text_18337E, 4
playfanfare 370
message RustboroCity_DevonCorp_3F_Text_183422
waitfanfare
waitmessage
- setflag 2050
- setflag 188
+ setflag FLAG_SYS_POKENAV_GET
+ setflag FLAG_RECEIVED_POKENAV
msgbox RustboroCity_DevonCorp_3F_Text_183439, 4
- setflag 894
- clearflag 807
- clearflag 983
- clearflag 739
- clearflag 881
+ setflag FLAG_HIDE_TUNNER_DIGGER_ROUTE116
+ clearflag FLAG_HIDE_BOYFRIEND_RUSTURF_TUNNEL
+ clearflag FLAG_HIDE_GIRLFRIEND_RUSTURF_TUNNEL
+ clearflag FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE
+ clearflag FLAG_HIDE_PEEKO_BRINEY_HOUSE
setvar 0x4096, 1
- clearflag 814
+ clearflag FLAG_HIDE_RIVAL_RUSTBORO
setvar 0x408f, 1
releaseall
end
@@ -146,9 +146,9 @@ RustboroCity_DevonCorp_3F_Movement_157835:: @ 8157835
RustboroCity_DevonCorp_3F_EventScript_15783B:: @ 815783B
lock
faceplayer
- checkflag 272
+ checkflag FLAG_RECEIVED_EXP_SHARE
goto_if_eq RustboroCity_DevonCorp_3F_EventScript_15789B
- checkflag 189
+ checkflag FLAG_DELIVERED_STEVEN_LETTER
goto_if_eq RustboroCity_DevonCorp_3F_EventScript_157864
msgbox RustboroCity_DevonCorp_3F_Text_18351E, 4
closemessage
@@ -159,10 +159,10 @@ RustboroCity_DevonCorp_3F_EventScript_15783B:: @ 815783B
RustboroCity_DevonCorp_3F_EventScript_157864:: @ 8157864
msgbox RustboroCity_DevonCorp_3F_Text_18353E, 4
- giveitem ITEM_EXP_SHARE
+ giveitem_std ITEM_EXP_SHARE
compare RESULT, 0
goto_if_eq RustboroCity_DevonCorp_3F_EventScript_1A029B
- setflag 272
+ setflag FLAG_RECEIVED_EXP_SHARE
msgbox RustboroCity_DevonCorp_3F_Text_1835B3, 4
closemessage
applymovement LAST_TALKED, RustboroCity_DevonCorp_3F_Movement_1A083D
@@ -181,7 +181,7 @@ RustboroCity_DevonCorp_3F_EventScript_15789B:: @ 815789B
RustboroCity_DevonCorp_3F_EventScript_1578B0:: @ 81578B0
lock
faceplayer
- checkflag 256
+ checkflag FLAG_RECEIVED_REPEAT_BALL
goto_if_eq RustboroCity_DevonCorp_3F_EventScript_1578C5
msgbox RustboroCity_DevonCorp_3F_Text_18395C, 4
release
diff --git a/data/scripts/maps/RustboroCity_Flat2_1F.inc b/data/scripts/maps/RustboroCity_Flat2_1F.inc
index b6b8b41b1..a6ba54ce7 100644
--- a/data/scripts/maps/RustboroCity_Flat2_1F.inc
+++ b/data/scripts/maps/RustboroCity_Flat2_1F.inc
@@ -9,8 +9,8 @@ RustboroCity_Flat2_1F_EventScript_157D83:: @ 8157D83
lock
faceplayer
waitse
- playpokecry SPECIES_SKITTY, 0
+ playmoncry SPECIES_SKITTY, 0
msgbox RustboroCity_Flat2_1F_Text_185410, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/RustboroCity_Flat2_2F.inc b/data/scripts/maps/RustboroCity_Flat2_2F.inc
index 0dfec5cfa..3a2242c7a 100644
--- a/data/scripts/maps/RustboroCity_Flat2_2F.inc
+++ b/data/scripts/maps/RustboroCity_Flat2_2F.inc
@@ -8,13 +8,13 @@ RustboroCity_Flat2_2F_EventScript_157D97:: @ 8157D97
RustboroCity_Flat2_2F_EventScript_157DA0:: @ 8157DA0
lock
faceplayer
- checkflag 213
+ checkflag FLAG_RECEIVED_PREMIER_BALL_RUSTBORO
goto_if_eq RustboroCity_Flat2_2F_EventScript_157DCF
msgbox RustboroCity_Flat2_2F_Text_185461, 4
- giveitem ITEM_PREMIER_BALL
+ giveitem_std ITEM_PREMIER_BALL
compare RESULT, 0
goto_if_eq RustboroCity_Flat2_2F_EventScript_1A029B
- setflag 213
+ setflag FLAG_RECEIVED_PREMIER_BALL_RUSTBORO
release
end
diff --git a/data/scripts/maps/RustboroCity_Gym.inc b/data/scripts/maps/RustboroCity_Gym.inc
index b1bbfb8d8..0dc403ec7 100644
--- a/data/scripts/maps/RustboroCity_Gym.inc
+++ b/data/scripts/maps/RustboroCity_Gym.inc
@@ -3,7 +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 165
+ checkflag FLAG_RECEIVED_TM39
goto_if 0, RustboroCity_Gym_EventScript_15793C
msgbox RustboroCity_Gym_Text_184252, 4
release
@@ -14,8 +14,8 @@ RustboroCity_Gym_EventScript_1578FE:: @ 81578FE
waitmessage
call RustboroCity_Gym_EventScript_1A02C5
msgbox RustboroCity_Gym_Text_1840D5, 4
- setflag 1201
- setflag 2055
+ setflag FLAG_DEFEATED_RUSTBORO_GYM
+ setflag FLAG_BADGE01_GET
setvar 0x405a, 1
addvar 0x4085, 1
setvar 0x8008, 1
@@ -26,10 +26,10 @@ RustboroCity_Gym_EventScript_1578FE:: @ 81578FE
end
RustboroCity_Gym_EventScript_15793C:: @ 815793C
- giveitem ITEM_TM39
+ giveitem_std ITEM_TM39
compare RESULT, 0
goto_if_eq RustboroCity_Gym_EventScript_1A029B
- setflag 165
+ setflag FLAG_RECEIVED_TM39
msgbox RustboroCity_Gym_Text_184170, 4
release
end
@@ -47,7 +47,7 @@ RustboroCity_Gym_EventScript_157977:: @ 8157977
RustboroCity_Gym_EventScript_15798E:: @ 815798E
lock
faceplayer
- checkflag 1201
+ checkflag FLAG_DEFEATED_RUSTBORO_GYM
goto_if_eq RustboroCity_Gym_EventScript_1579A3
msgbox RustboroCity_Gym_Text_183A4B, 4
release
@@ -60,14 +60,14 @@ RustboroCity_Gym_EventScript_1579A3:: @ 81579A3
RustboroCity_Gym_EventScript_1579AD:: @ 81579AD
lockall
- checkflag 2055
+ checkflag FLAG_BADGE01_GET
goto_if_eq RustboroCity_Gym_EventScript_1579CD
goto RustboroCity_Gym_EventScript_1579D7
end
RustboroCity_Gym_EventScript_1579BD:: @ 81579BD
lockall
- checkflag 2055
+ checkflag FLAG_BADGE01_GET
goto_if_eq 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 b983617e0..0cad33204 100644
--- a/data/scripts/maps/RustboroCity_House1.inc
+++ b/data/scripts/maps/RustboroCity_House1.inc
@@ -4,7 +4,7 @@ RustboroCity_House1_MapScripts:: @ 8157C7C
RustboroCity_House1_EventScript_157C7D:: @ 8157C7D
lock
faceplayer
- checkflag 153
+ checkflag FLAG_RUSTBORO_NPC_TRADE_COMPLETED
goto_if_eq RustboroCity_House1_EventScript_157D13
setvar 0x8008, 0
copyvar 0x8004, 0x8008
@@ -29,7 +29,7 @@ RustboroCity_House1_EventScript_157C7D:: @ 8157C7D
special sub_804E174
waitstate
msgbox RustboroCity_House1_Text_184F6B, 4
- setflag 153
+ setflag FLAG_RUSTBORO_NPC_TRADE_COMPLETED
release
end
@@ -39,7 +39,7 @@ RustboroCity_House1_EventScript_157CFB:: @ 8157CFB
end
RustboroCity_House1_EventScript_157D05:: @ 8157D05
- getspeciesname 0, 0x8009
+ bufferspeciesname 0, 0x8009
msgbox RustboroCity_House1_Text_184F8F, 4
release
end
diff --git a/data/scripts/maps/RustboroCity_House3.inc b/data/scripts/maps/RustboroCity_House3.inc
index a5088175e..86d77c18e 100644
--- a/data/scripts/maps/RustboroCity_House3.inc
+++ b/data/scripts/maps/RustboroCity_House3.inc
@@ -13,8 +13,8 @@ RustboroCity_House3_EventScript_157DFF:: @ 8157DFF
lock
faceplayer
waitse
- playpokecry SPECIES_PIKACHU, 0
+ playmoncry SPECIES_PIKACHU, 0
msgbox RustboroCity_House3_Text_18567D, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/RustboroCity_Mart.inc b/data/scripts/maps/RustboroCity_Mart.inc
index cb722a6af..69f977e79 100644
--- a/data/scripts/maps/RustboroCity_Mart.inc
+++ b/data/scripts/maps/RustboroCity_Mart.inc
@@ -6,9 +6,9 @@ RustboroCity_Mart_EventScript_157BD4:: @ 8157BD4
faceplayer
message RustboroCity_Mart_Text_1A0BE4
waitmessage
- checkflag 287
+ checkflag FLAG_MET_DEVON_EMPLOYEE
goto_if 0, RustboroCity_Mart_EventScript_157BEF
- checkflag 287
+ checkflag FLAG_MET_DEVON_EMPLOYEE
goto_if_eq RustboroCity_Mart_EventScript_157C18
end
diff --git a/data/scripts/maps/RustboroCity_PokemonCenter_1F.inc b/data/scripts/maps/RustboroCity_PokemonCenter_1F.inc
index 53b481832..a1c0ac31b 100644
--- a/data/scripts/maps/RustboroCity_PokemonCenter_1F.inc
+++ b/data/scripts/maps/RustboroCity_PokemonCenter_1F.inc
@@ -3,7 +3,7 @@ RustboroCity_PokemonCenter_1F_MapScripts:: @ 8157B79
.byte 0
RustboroCity_PokemonCenter_1F_MapScript1_157B7F:: @ 8157B7F
- sethealplace 6
+ setrespawn 6
call RustboroCity_PokemonCenter_1F_EventScript_19FD1B
end
@@ -11,7 +11,7 @@ RustboroCity_PokemonCenter_1F_EventScript_157B88:: @ 8157B88
setvar 0x800b, 1
call RustboroCity_PokemonCenter_1F_EventScript_19FD5B
waitmessage
- waitbutton
+ waitbuttonpress
release
end
diff --git a/data/scripts/maps/RustboroCity_PokemonSchool.inc b/data/scripts/maps/RustboroCity_PokemonSchool.inc
index 73b364f5e..21fdf3d3b 100644
--- a/data/scripts/maps/RustboroCity_PokemonSchool.inc
+++ b/data/scripts/maps/RustboroCity_PokemonSchool.inc
@@ -77,20 +77,20 @@ RustboroCity_PokemonSchool_EventScript_157AC5:: @ 8157AC5
RustboroCity_PokemonSchool_EventScript_157ACE:: @ 8157ACE
lock
faceplayer
- checkflag 275
+ checkflag FLAG_RECEIVED_QUICK_CLAW
goto_if_eq RustboroCity_PokemonSchool_EventScript_157B34
compare FACING, 4
call_if 1, RustboroCity_PokemonSchool_EventScript_157B1E
compare FACING, 3
call_if 1, RustboroCity_PokemonSchool_EventScript_157B29
msgbox RustboroCity_PokemonSchool_Text_1846A2, 4
- giveitem ITEM_QUICK_CLAW
+ giveitem_std ITEM_QUICK_CLAW
compare RESULT, 0
goto_if_eq RustboroCity_PokemonSchool_EventScript_1A029B
closemessage
applymovement LAST_TALKED, RustboroCity_PokemonSchool_Movement_1A0845
waitmovement 0
- setflag 275
+ setflag FLAG_RECEIVED_QUICK_CLAW
release
end
diff --git a/data/scripts/maps/RusturfTunnel.inc b/data/scripts/maps/RusturfTunnel.inc
index 28f6f0ad4..64fce8118 100644
--- a/data/scripts/maps/RusturfTunnel.inc
+++ b/data/scripts/maps/RusturfTunnel.inc
@@ -32,9 +32,9 @@ RusturfTunnel_EventScript_15C782:: @ 815C782
RusturfTunnel_EventScript_15C799:: @ 815C799
lock
faceplayer
- checkflag 1
+ checkflag FLAG_TEMP_1
goto_if_eq RusturfTunnel_EventScript_15C7BC
- setflag 1
+ setflag FLAG_TEMP_1
msgbox RusturfTunnel_Text_1944C5, 4
closemessage
applymovement LAST_TALKED, RusturfTunnel_Movement_1A083D
@@ -64,8 +64,8 @@ RusturfTunnel_EventScript_15C7D1:: @ 815C7D1
call_if 1, RusturfTunnel_EventScript_15C8EB
compare 0x4001, 3
call_if 1, RusturfTunnel_EventScript_15C8EB
- giveitem ITEM_HM04
- setflag 106
+ giveitem_std ITEM_HM04
+ setflag FLAG_RECEIVED_HM04
msgbox RusturfTunnel_Text_194693, 4
closemessage
compare 0x4001, 1
@@ -300,9 +300,9 @@ RusturfTunnel_EventScript_15C9D7:: @ 815C9D7
lock
faceplayer
waitse
- playpokecry SPECIES_WINGULL, 0
+ playmoncry SPECIES_WINGULL, 0
msgbox RusturfTunnel_Text_194188, 4
- waitpokecry
+ waitmoncry
release
end
@@ -313,7 +313,7 @@ RusturfTunnel_EventScript_15C9EA:: @ 815C9EA
msgbox RusturfTunnel_Text_19419B, 4
trainerbattle 3, OPPONENT_RUSTURF_TUNNEL_GRUNT, 0, RusturfTunnel_Text_194243
msgbox RusturfTunnel_Text_194274, 4
- giveitem ITEM_DEVON_GOODS
+ giveitem_std ITEM_DEVON_GOODS
closemessage
applymovement 255, RusturfTunnel_Movement_15CA99
applymovement 6, RusturfTunnel_Movement_15CAA2
@@ -332,20 +332,20 @@ RusturfTunnel_EventScript_15C9EA:: @ 815C9EA
message RusturfTunnel_Text_19434F
waitmessage
waitse
- playpokecry SPECIES_WINGULL, 0
- waitbutton
- waitpokecry
+ playmoncry SPECIES_WINGULL, 0
+ waitbuttonpress
+ waitmoncry
closemessage
applymovement 5, RusturfTunnel_Movement_15CAB4
applymovement 7, RusturfTunnel_Movement_15CAC3
waitmovement 0
removeobject 5
removeobject 7
- clearflag 142
- setflag 143
+ clearflag FLAG_DEVON_GOODS_STOLEN
+ setflag FLAG_RECOVERED_DEVON_GOODS
setvar 0x405a, 4
setvar 0x4090, 1
- setflag 891
+ setflag FLAG_HIDE_BRINEY_ROUTE116
release
end
diff --git a/data/scripts/maps/SSTidalCorridor.inc b/data/scripts/maps/SSTidalCorridor.inc
index 2c55a9443..8e9a404a2 100644
--- a/data/scripts/maps/SSTidalCorridor.inc
+++ b/data/scripts/maps/SSTidalCorridor.inc
@@ -88,9 +88,9 @@ SSTidalCorridor_EventScript_15FD9F:: @ 815FD9F
lock
faceplayer
waitse
- playpokecry SPECIES_WINGULL, 0
+ playmoncry SPECIES_WINGULL, 0
msgbox SSTidalCorridor_Text_199388, 4
- waitpokecry
+ waitmoncry
release
end
@@ -122,27 +122,27 @@ SSTidalCorridor_EventScript_15FDD6:: @ 815FDD6
end
SSTidalCorridor_EventScript_15FDF8:: @ 815FDF8
- sethealplace 8
+ setrespawn 8
msgbox SSTidalCorridor_Text_1991F4, 4
- checkflag 260
+ checkflag FLAG_RECEIVED_TM49
call_if 1, SSTidalCorridor_EventScript_15FE36
- warp LilycoveCity_Harbor, 255, 8, 11
+ warp MAP_LILYCOVE_CITY_HARBOR, 255, 8, 11
waitstate
release
end
SSTidalCorridor_EventScript_15FE17:: @ 815FE17
- sethealplace 4
+ setrespawn 4
msgbox SSTidalCorridor_Text_1991F4, 4
- checkflag 260
+ checkflag FLAG_RECEIVED_TM49
call_if 1, SSTidalCorridor_EventScript_15FE36
- warp SlateportCity_Harbor, 255, 8, 11
+ warp MAP_SLATEPORT_CITY_HARBOR, 255, 8, 11
waitstate
release
end
SSTidalCorridor_EventScript_15FE36:: @ 815FE36
- setflag 951
+ setflag FLAG_HIDE_TM_49_GIVER_SS_TIDAL
return
SSTidalCorridor_EventScript_15FE3A:: @ 815FE3A
@@ -163,7 +163,7 @@ SSTidalCorridor_EventScript_15FE5B:: @ 815FE5B
SSTidalCorridor_EventScript_15FE60:: @ 815FE60
lock
faceplayer
- checkflag 247
+ checkflag FLAG_DEFEATED_SS_TIDAL_TRAINERS
goto_if_eq SSTidalCorridor_EventScript_15FE7A
call SSTidalCorridor_EventScript_15FE84
msgbox SSTidalCorridor_Text_199203, 4
@@ -192,7 +192,7 @@ SSTidalCorridor_EventScript_15FE84:: @ 815FE84
goto_if 0, SSTidalCorridor_EventScript_15FED5
checktrainerflag OPPONENT_ANETTE
goto_if 0, SSTidalCorridor_EventScript_15FED5
- setflag 247
+ 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 c7cd4447d..0390177de 100644
--- a/data/scripts/maps/SSTidalRooms.inc
+++ b/data/scripts/maps/SSTidalRooms.inc
@@ -4,13 +4,13 @@ SSTidalRooms_MapScripts:: @ 815FF05
SSTidalRooms_EventScript_15FF06:: @ 815FF06
lock
faceplayer
- checkflag 260
+ checkflag FLAG_RECEIVED_TM49
goto_if_eq SSTidalRooms_EventScript_15FF3D
msgbox SSTidalRooms_Text_199B65, 4
- giveitem ITEM_TM49
+ giveitem_std ITEM_TM49
compare RESULT, 0
goto_if_eq SSTidalRooms_EventScript_1A029B
- setflag 260
+ setflag FLAG_RECEIVED_TM49
msgbox SSTidalRooms_Text_199C1A, 4
release
end
diff --git a/data/scripts/maps/SafariZone_Southeast.inc b/data/scripts/maps/SafariZone_Southeast.inc
index 06a400810..6d31cf981 100644
--- a/data/scripts/maps/SafariZone_Southeast.inc
+++ b/data/scripts/maps/SafariZone_Southeast.inc
@@ -94,7 +94,7 @@ SafariZone_Southeast_EventScript_16011F:: @ 816011F
SafariZone_Southeast_EventScript_160139:: @ 8160139
setvar 0x40a4, 1
special ExitSafariMode
- warpdoor Route121_SafariZoneEntrance, 255, 2, 5
+ warpdoor MAP_ROUTE121_SAFARI_ZONE_ENTRANCE, 255, 2, 5
waitstate
end
diff --git a/data/scripts/maps/ScorchedSlab.inc b/data/scripts/maps/ScorchedSlab.inc
index 112289083..f0ed9c005 100644
--- a/data/scripts/maps/ScorchedSlab.inc
+++ b/data/scripts/maps/ScorchedSlab.inc
@@ -3,5 +3,5 @@ ScorchedSlab_MapScripts:: @ 815F29D
.byte 0
ScorchedSlab_MapScript1_15F2A3:: @ 815F2A3
- setflag 2136
+ setflag FLAG_LANDMARK_SCORCHED_SLAB
end
diff --git a/data/scripts/maps/SeafloorCavern_Entrance.inc b/data/scripts/maps/SeafloorCavern_Entrance.inc
index 7ea46d9b0..9d59279ea 100644
--- a/data/scripts/maps/SeafloorCavern_Entrance.inc
+++ b/data/scripts/maps/SeafloorCavern_Entrance.inc
@@ -3,6 +3,6 @@ SeafloorCavern_Entrance_MapScripts:: @ 815DA4A
.byte 0
SeafloorCavern_Entrance_MapScript1_15DA50:: @ 815DA50
- setdivewarp Underwater_SeafloorCavern, 255, 6, 5
- setescapewarp Underwater_SeafloorCavern, 255, 6, 5
+ setdivewarp MAP_UNDERWATER_SEAFLOOR_CAVERN, 255, 6, 5
+ setescapewarp MAP_UNDERWATER_SEAFLOOR_CAVERN, 255, 6, 5
end
diff --git a/data/scripts/maps/SeafloorCavern_Room9.inc b/data/scripts/maps/SeafloorCavern_Room9.inc
index eb3d108a6..b31e8fc25 100644
--- a/data/scripts/maps/SeafloorCavern_Room9.inc
+++ b/data/scripts/maps/SeafloorCavern_Room9.inc
@@ -79,9 +79,9 @@ SeafloorCavern_Room9_EventScript_15DAFA:: @ 815DAFA
setvar RESULT, 0
.endif
playse 209
- setfieldeffect 0, 16
- setfieldeffect 1, 42
- setfieldeffect 2, 0
+ setfieldeffectargument 0, 16
+ setfieldeffectargument 1, 42
+ setfieldeffectargument 2, 0
dofieldeffect 54
waitfieldeffect 54
.ifdef SAPPHIRE
@@ -192,25 +192,25 @@ SeafloorCavern_Room9_EventScript_15DAFA:: @ 815DAFA
msgbox SeafloorCavern_Room9_Text_1B4ECA, 4
.endif
setvar 0x407b, 1
- clearflag 855
- clearflag 856
- clearflag 816
- clearflag 973
+ clearflag FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_1
+ clearflag FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_2
+ clearflag FLAG_HIDE_WALLACE_SOOTOPOLIS
+ clearflag FLAG_HIDE_STEVEN_SOOTOPOLIS
setvar 0x405e, 1
- clearflag 944
- clearflag 945
- setflag 2090
- setflag 854
- setflag 129
- setflag 967
+ clearflag FLAG_HIDE_EVIL_LEADER_ROUTE128
+ clearflag FLAG_HIDE_OTHER_LEADER_ROUTE128
+ setflag FLAG_SYS_WEATHER_CTRL
+ setflag FLAG_HIDE_SOOTOPOLIS_RESIDENTS
+ setflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
+ setflag FLAG_HIDE_STEVEN_STEVENS_HOUSE
setvar 0x40c6, 1
setvar 0x40a2, 1
- setflag 828
- setflag 829
- setflag 831
- setflag 859
- setflag 946
- warp Route128, 255, 38, 22
+ setflag FLAG_HIDE_EVIL_LEADER_SEAFLOOR_CAVERN
+ setflag FLAG_HIDE_OTHER_LEADER_SEAFLOOR_CAVERN
+ setflag FLAG_HIDE_OTHER_TEAM_GRUNTS_SEAFLOOR_CAVERN
+ setflag FLAG_HIDE_AWAKENED_MON_SEAFLOOR_CAVERN
+ setflag FLAG_HIDE_EVIL_TEAM_GRUNTS_SEAFLOOR_CAVERN
+ warp MAP_ROUTE128, 255, 38, 22
waitstate
releaseall
end
diff --git a/data/scripts/maps/SealedChamber_InnerRoom.inc b/data/scripts/maps/SealedChamber_InnerRoom.inc
index 526ada367..cd778202c 100644
--- a/data/scripts/maps/SealedChamber_InnerRoom.inc
+++ b/data/scripts/maps/SealedChamber_InnerRoom.inc
@@ -4,9 +4,9 @@ SealedChamber_InnerRoom_MapScripts:: @ 815F1E7
SealedChamber_InnerRoom_EventScript_15F1E8:: @ 815F1E8
lockall
braillemessage SealedChamber_InnerRoom_Braille_1C53C1
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
- checkflag 228
+ checkflag FLAG_REGI_DOORS_OPENED
goto_if_eq SealedChamber_InnerRoom_EventScript_15F247
specialvar RESULT, CheckRelicanthWailord
compare RESULT, 0
@@ -31,7 +31,7 @@ SealedChamber_InnerRoom_EventScript_15F1E8:: @ 815F1E8
msgbox SealedChamber_InnerRoom_Text_1A138B, 4
closemessage
fadeinbgm 0
- setflag 228
+ setflag FLAG_REGI_DOORS_OPENED
releaseall
end
@@ -42,7 +42,7 @@ SealedChamber_InnerRoom_EventScript_15F247:: @ 815F247
SealedChamber_InnerRoom_EventScript_15F249:: @ 815F249
lockall
braillemessage SealedChamber_InnerRoom_Braille_1C53F2
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -50,7 +50,7 @@ SealedChamber_InnerRoom_EventScript_15F249:: @ 815F249
SealedChamber_InnerRoom_EventScript_15F257:: @ 815F257
lockall
braillemessage SealedChamber_InnerRoom_Braille_1C5414
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -58,7 +58,7 @@ SealedChamber_InnerRoom_EventScript_15F257:: @ 815F257
SealedChamber_InnerRoom_EventScript_15F265:: @ 815F265
lockall
braillemessage SealedChamber_InnerRoom_Braille_1C5435
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -66,7 +66,7 @@ SealedChamber_InnerRoom_EventScript_15F265:: @ 815F265
SealedChamber_InnerRoom_EventScript_15F273:: @ 815F273
lockall
braillemessage SealedChamber_InnerRoom_Braille_1C545C
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -74,7 +74,7 @@ SealedChamber_InnerRoom_EventScript_15F273:: @ 815F273
SealedChamber_InnerRoom_EventScript_15F281:: @ 815F281
lockall
braillemessage SealedChamber_InnerRoom_Braille_1C5470
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -82,7 +82,7 @@ SealedChamber_InnerRoom_EventScript_15F281:: @ 815F281
SealedChamber_InnerRoom_EventScript_15F28F:: @ 815F28F
lockall
braillemessage SealedChamber_InnerRoom_Braille_1C549B
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
diff --git a/data/scripts/maps/SealedChamber_OuterRoom.inc b/data/scripts/maps/SealedChamber_OuterRoom.inc
index f16a88802..ad17819c2 100644
--- a/data/scripts/maps/SealedChamber_OuterRoom.inc
+++ b/data/scripts/maps/SealedChamber_OuterRoom.inc
@@ -5,32 +5,32 @@ SealedChamber_OuterRoom_MapScripts:: @ 815F0C6
.byte 0
SealedChamber_OuterRoom_MapScript1_15F0D6:: @ 815F0D6
- setdivewarp Underwater_SealedChamber, 255, 12, 44
- setescapewarp Underwater_SealedChamber, 255, 12, 44
+ setdivewarp MAP_UNDERWATER_SEALED_CHAMBER, 255, 12, 44
+ setescapewarp MAP_UNDERWATER_SEALED_CHAMBER, 255, 12, 44
end
SealedChamber_OuterRoom_MapScript1_15F0E7:: @ 815F0E7
- setflag 2140
+ setflag FLAG_LANDMARK_SEALED_CHAMBER
end
SealedChamber_OuterRoom_MapScript1_15F0EB:: @ 815F0EB
- checkflag 2127
+ checkflag FLAG_SYS_BRAILLE_DIG
call_if 0, SealedChamber_OuterRoom_EventScript_15F0F5
end
SealedChamber_OuterRoom_EventScript_15F0F5:: @ 815F0F5
- setmaptile 9, 1, 553, 1
- setmaptile 10, 1, 553, 1
- setmaptile 11, 1, 553, 1
- setmaptile 9, 2, 565, 1
- setmaptile 10, 2, 565, 1
- setmaptile 11, 2, 565, 1
+ setmetatile 9, 1, 553, 1
+ setmetatile 10, 1, 553, 1
+ setmetatile 11, 1, 553, 1
+ setmetatile 9, 2, 565, 1
+ setmetatile 10, 2, 565, 1
+ setmetatile 11, 2, 565, 1
return
SealedChamber_OuterRoom_EventScript_15F12C:: @ 815F12C
lockall
braillemessage SealedChamber_OuterRoom_Braille_1C534F
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -38,7 +38,7 @@ SealedChamber_OuterRoom_EventScript_15F12C:: @ 815F12C
SealedChamber_OuterRoom_EventScript_15F13A:: @ 815F13A
lockall
braillemessage SealedChamber_OuterRoom_Braille_1C5359
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -46,7 +46,7 @@ SealedChamber_OuterRoom_EventScript_15F13A:: @ 815F13A
SealedChamber_OuterRoom_EventScript_15F148:: @ 815F148
lockall
braillemessage SealedChamber_OuterRoom_Braille_1C5363
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -54,7 +54,7 @@ SealedChamber_OuterRoom_EventScript_15F148:: @ 815F148
SealedChamber_OuterRoom_EventScript_15F156:: @ 815F156
lockall
braillemessage SealedChamber_OuterRoom_Braille_1C536D
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -62,7 +62,7 @@ SealedChamber_OuterRoom_EventScript_15F156:: @ 815F156
SealedChamber_OuterRoom_EventScript_15F164:: @ 815F164
lockall
braillemessage SealedChamber_OuterRoom_Braille_1C5377
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -70,7 +70,7 @@ SealedChamber_OuterRoom_EventScript_15F164:: @ 815F164
SealedChamber_OuterRoom_EventScript_15F172:: @ 815F172
lockall
braillemessage SealedChamber_OuterRoom_Braille_1C5381
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -78,7 +78,7 @@ SealedChamber_OuterRoom_EventScript_15F172:: @ 815F172
SealedChamber_OuterRoom_EventScript_15F180:: @ 815F180
lockall
braillemessage SealedChamber_OuterRoom_Braille_1C538B
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -86,7 +86,7 @@ SealedChamber_OuterRoom_EventScript_15F180:: @ 815F180
SealedChamber_OuterRoom_EventScript_15F18E:: @ 815F18E
lockall
braillemessage SealedChamber_OuterRoom_Braille_1C5396
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -94,7 +94,7 @@ SealedChamber_OuterRoom_EventScript_15F18E:: @ 815F18E
SealedChamber_OuterRoom_EventScript_15F19C:: @ 815F19C
lockall
braillemessage SealedChamber_OuterRoom_Braille_1C539E
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -102,17 +102,17 @@ SealedChamber_OuterRoom_EventScript_15F19C:: @ 815F19C
SealedChamber_OuterRoom_EventScript_15F1AA:: @ 815F1AA
lockall
braillemessage SealedChamber_OuterRoom_Braille_1C53A9
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
SealedChamber_OuterRoom_EventScript_15F1B8:: @ 815F1B8
lockall
- checkflag 2127
+ checkflag FLAG_SYS_BRAILLE_DIG
goto_if_eq SealedChamber_OuterRoom_EventScript_15F1CF
braillemessage SealedChamber_OuterRoom_Braille_1C53B1
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
@@ -125,7 +125,7 @@ SealedChamber_OuterRoom_EventScript_15F1CF:: @ 815F1CF
SealedChamber_OuterRoom_EventScript_15F1D9:: @ 815F1D9
lockall
braillemessage SealedChamber_OuterRoom_Braille_1C53B1
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
diff --git a/data/scripts/maps/SecretBase_YellowCave4.inc b/data/scripts/maps/SecretBase_YellowCave4.inc
index 302bc3930..f72c3d76e 100644
--- a/data/scripts/maps/SecretBase_YellowCave4.inc
+++ b/data/scripts/maps/SecretBase_YellowCave4.inc
@@ -6,7 +6,7 @@ SecretBase_YellowCave4_MapScripts:: @ 815F337
.byte 0
SecretBase_RedCave1_MapScript1_15F34C:: @ 815F34C
- tileeffect 6
+ setstepcallback 6
end
SecretBase_RedCave1_MapScript1_15F34F:: @ 815F34F
diff --git a/data/scripts/maps/ShoalCave_LowTideEntranceRoom.inc b/data/scripts/maps/ShoalCave_LowTideEntranceRoom.inc
index 52d430db5..533c46850 100644
--- a/data/scripts/maps/ShoalCave_LowTideEntranceRoom.inc
+++ b/data/scripts/maps/ShoalCave_LowTideEntranceRoom.inc
@@ -4,7 +4,7 @@ ShoalCave_LowTideEntranceRoom_MapScripts:: @ 815E057
ShoalCave_LowTideEntranceRoom_MapScript1_15E05D:: @ 815E05D
special UpdateShoalTideFlag
- checkflag 2106
+ checkflag FLAG_SYS_SHOAL_TIDE
goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_15E06E
goto ShoalCave_LowTideEntranceRoom_EventScript_15E072
@@ -20,7 +20,7 @@ ShoalCave_LowTideEntranceRoom_EventScript_15E076:: @ 815E076
lock
faceplayer
dodailyevents
- checkflag 2143
+ checkflag FLAG_SYS_SHOAL_ITEM
call_if 1, ShoalCave_LowTideEntranceRoom_EventScript_15E176
checkitem ITEM_SHOAL_SALT, 4
compare RESULT, 0
@@ -37,13 +37,13 @@ ShoalCave_LowTideEntranceRoom_EventScript_15E076:: @ 815E076
compare RESULT, 2
goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_15E12E
msgbox ShoalCave_LowTideEntranceRoom_Text_1C6808, 4
- removeitem ITEM_SHOAL_SALT, 4
- removeitem ITEM_SHOAL_SHELL, 4
- giveitem ITEM_SHELL_BELL
+ takeitem ITEM_SHOAL_SALT, 4
+ takeitem ITEM_SHOAL_SHELL, 4
+ giveitem_std ITEM_SHELL_BELL
compare RESULT, 0
goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_1A029B
msgbox ShoalCave_LowTideEntranceRoom_Text_1C688E, 4
- setflag 2
+ setflag FLAG_TEMP_2
release
end
@@ -90,13 +90,13 @@ ShoalCave_LowTideEntranceRoom_EventScript_15E16C:: @ 815E16C
end
ShoalCave_LowTideEntranceRoom_EventScript_15E176:: @ 815E176
- clearflag 952
- clearflag 953
- clearflag 954
- clearflag 955
- clearflag 956
- clearflag 957
- clearflag 958
- clearflag 959
- clearflag 2143
+ clearflag FLAG_HIDE_TOOK_SHOAL_SALT_1
+ clearflag FLAG_HIDE_TOOK_SHOAL_SALT_2
+ clearflag FLAG_HIDE_TOOK_SHOAL_SALT_3
+ clearflag FLAG_HIDE_TOOK_SHOAL_SALT_4
+ clearflag FLAG_HIDE_TOOK_SHOAL_SHELL_1
+ clearflag FLAG_HIDE_TOOK_SHOAL_SHELL_2
+ clearflag FLAG_HIDE_TOOK_SHOAL_SHELL_3
+ clearflag FLAG_HIDE_TOOK_SHOAL_SHELL_4
+ clearflag FLAG_SYS_SHOAL_ITEM
return
diff --git a/data/scripts/maps/ShoalCave_LowTideInnerRoom.inc b/data/scripts/maps/ShoalCave_LowTideInnerRoom.inc
index ada997023..b6aba9523 100644
--- a/data/scripts/maps/ShoalCave_LowTideInnerRoom.inc
+++ b/data/scripts/maps/ShoalCave_LowTideInnerRoom.inc
@@ -4,7 +4,7 @@ ShoalCave_LowTideInnerRoom_MapScripts:: @ 815E192
.byte 0
ShoalCave_LowTideInnerRoom_MapScript1_15E19D:: @ 815E19D
- checkflag 2106
+ checkflag FLAG_SYS_SHOAL_TIDE
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E1AB
goto ShoalCave_LowTideInnerRoom_EventScript_15E1AF
@@ -21,48 +21,48 @@ ShoalCave_LowTideInnerRoom_MapScript1_15E1B3:: @ 815E1B3
end
ShoalCave_LowTideInnerRoom_EventScript_15E1B9:: @ 815E1B9
- checkflag 952
+ checkflag FLAG_HIDE_TOOK_SHOAL_SALT_1
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E1DA
- checkflag 2106
+ checkflag FLAG_SYS_SHOAL_TIDE
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E1DA
- setmaptile 31, 8, 856, 1
+ setmetatile 31, 8, 856, 1
goto ShoalCave_LowTideInnerRoom_EventScript_15E1DA
end
ShoalCave_LowTideInnerRoom_EventScript_15E1DA:: @ 815E1DA
- checkflag 953
+ checkflag FLAG_HIDE_TOOK_SHOAL_SALT_2
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E1FB
- checkflag 2106
+ checkflag FLAG_SYS_SHOAL_TIDE
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E1FB
- setmaptile 14, 26, 856, 1
+ setmetatile 14, 26, 856, 1
goto ShoalCave_LowTideInnerRoom_EventScript_15E1FB
end
ShoalCave_LowTideInnerRoom_EventScript_15E1FB:: @ 815E1FB
- checkflag 956
+ checkflag FLAG_HIDE_TOOK_SHOAL_SHELL_1
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E213
- setmaptile 41, 20, 857, 1
+ setmetatile 41, 20, 857, 1
goto ShoalCave_LowTideInnerRoom_EventScript_15E213
end
ShoalCave_LowTideInnerRoom_EventScript_15E213:: @ 815E213
- checkflag 957
+ checkflag FLAG_HIDE_TOOK_SHOAL_SHELL_2
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E22B
- setmaptile 41, 10, 857, 1
+ setmetatile 41, 10, 857, 1
goto ShoalCave_LowTideInnerRoom_EventScript_15E22B
end
ShoalCave_LowTideInnerRoom_EventScript_15E22B:: @ 815E22B
- checkflag 958
+ checkflag FLAG_HIDE_TOOK_SHOAL_SHELL_3
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E243
- setmaptile 6, 9, 857, 1
+ setmetatile 6, 9, 857, 1
goto ShoalCave_LowTideInnerRoom_EventScript_15E243
end
ShoalCave_LowTideInnerRoom_EventScript_15E243:: @ 815E243
- checkflag 959
+ checkflag FLAG_HIDE_TOOK_SHOAL_SHELL_4
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E256
- setmaptile 16, 13, 857, 1
+ setmetatile 16, 13, 857, 1
return
ShoalCave_LowTideInnerRoom_EventScript_15E256:: @ 815E256
@@ -70,14 +70,14 @@ ShoalCave_LowTideInnerRoom_EventScript_15E256:: @ 815E256
ShoalCave_LowTideInnerRoom_EventScript_15E257:: @ 815E257
lockall
- checkflag 956
+ checkflag FLAG_HIDE_TOOK_SHOAL_SHELL_1
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E289
- giveitem ITEM_SHOAL_SHELL
+ giveitem_std ITEM_SHOAL_SHELL
compare RESULT, 0
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_1A029B
- setmaptile 41, 20, 859, 0
+ setmetatile 41, 20, 859, 0
special DrawWholeMapView
- setflag 956
+ setflag FLAG_HIDE_TOOK_SHOAL_SHELL_1
releaseall
end
@@ -88,53 +88,53 @@ ShoalCave_LowTideInnerRoom_EventScript_15E289:: @ 815E289
ShoalCave_LowTideInnerRoom_EventScript_15E293:: @ 815E293
lockall
- checkflag 957
+ checkflag FLAG_HIDE_TOOK_SHOAL_SHELL_2
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E289
- giveitem ITEM_SHOAL_SHELL
+ giveitem_std ITEM_SHOAL_SHELL
compare RESULT, 0
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_1A029B
- setmaptile 41, 10, 859, 0
+ setmetatile 41, 10, 859, 0
special DrawWholeMapView
- setflag 957
+ setflag FLAG_HIDE_TOOK_SHOAL_SHELL_2
releaseall
end
ShoalCave_LowTideInnerRoom_EventScript_15E2C5:: @ 815E2C5
lockall
- checkflag 958
+ checkflag FLAG_HIDE_TOOK_SHOAL_SHELL_3
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E289
- giveitem ITEM_SHOAL_SHELL
+ giveitem_std ITEM_SHOAL_SHELL
compare RESULT, 0
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_1A029B
- setmaptile 6, 9, 859, 0
+ setmetatile 6, 9, 859, 0
special DrawWholeMapView
- setflag 958
+ setflag FLAG_HIDE_TOOK_SHOAL_SHELL_3
releaseall
end
ShoalCave_LowTideInnerRoom_EventScript_15E2F7:: @ 815E2F7
lockall
- checkflag 959
+ checkflag FLAG_HIDE_TOOK_SHOAL_SHELL_4
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E289
- giveitem ITEM_SHOAL_SHELL
+ giveitem_std ITEM_SHOAL_SHELL
compare RESULT, 0
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_1A029B
- setmaptile 16, 13, 859, 0
+ setmetatile 16, 13, 859, 0
special DrawWholeMapView
- setflag 959
+ setflag FLAG_HIDE_TOOK_SHOAL_SHELL_4
releaseall
end
ShoalCave_LowTideInnerRoom_EventScript_15E329:: @ 815E329
lockall
- checkflag 952
+ checkflag FLAG_HIDE_TOOK_SHOAL_SALT_1
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E35B
- giveitem ITEM_SHOAL_SALT
+ giveitem_std ITEM_SHOAL_SALT
compare RESULT, 0
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_1A029B
- setmaptile 31, 8, 858, 0
+ setmetatile 31, 8, 858, 0
special DrawWholeMapView
- setflag 952
+ setflag FLAG_HIDE_TOOK_SHOAL_SALT_1
releaseall
end
@@ -145,13 +145,13 @@ ShoalCave_LowTideInnerRoom_EventScript_15E35B:: @ 815E35B
ShoalCave_LowTideInnerRoom_EventScript_15E365:: @ 815E365
lockall
- checkflag 953
+ checkflag FLAG_HIDE_TOOK_SHOAL_SALT_2
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E35B
- giveitem ITEM_SHOAL_SALT
+ giveitem_std ITEM_SHOAL_SALT
compare RESULT, 0
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_1A029B
- setmaptile 14, 26, 858, 0
+ setmetatile 14, 26, 858, 0
special DrawWholeMapView
- setflag 953
+ setflag FLAG_HIDE_TOOK_SHOAL_SALT_2
releaseall
end
diff --git a/data/scripts/maps/ShoalCave_LowTideLowerRoom.inc b/data/scripts/maps/ShoalCave_LowTideLowerRoom.inc
index db5779efe..c7cb08a9b 100644
--- a/data/scripts/maps/ShoalCave_LowTideLowerRoom.inc
+++ b/data/scripts/maps/ShoalCave_LowTideLowerRoom.inc
@@ -7,9 +7,9 @@ ShoalCave_LowTideLowerRoom_MapScript1_15E3F9:: @ 815E3F9
end
ShoalCave_LowTideLowerRoom_EventScript_15E3FF:: @ 815E3FF
- checkflag 955
+ checkflag FLAG_HIDE_TOOK_SHOAL_SALT_4
goto_if_eq ShoalCave_LowTideLowerRoom_EventScript_15E412
- setmaptile 18, 2, 856, 1
+ setmetatile 18, 2, 856, 1
return
ShoalCave_LowTideLowerRoom_EventScript_15E412:: @ 815E412
@@ -17,14 +17,14 @@ ShoalCave_LowTideLowerRoom_EventScript_15E412:: @ 815E412
ShoalCave_LowTideLowerRoom_EventScript_15E413:: @ 815E413
lockall
- checkflag 955
+ checkflag FLAG_HIDE_TOOK_SHOAL_SALT_4
goto_if_eq ShoalCave_LowTideLowerRoom_EventScript_15E445
- giveitem ITEM_SHOAL_SALT
+ giveitem_std ITEM_SHOAL_SALT
compare RESULT, 0
goto_if_eq ShoalCave_LowTideLowerRoom_EventScript_1A029B
- setmaptile 18, 2, 858, 0
+ setmetatile 18, 2, 858, 0
special DrawWholeMapView
- setflag 955
+ setflag FLAG_HIDE_TOOK_SHOAL_SALT_4
releaseall
end
@@ -36,13 +36,13 @@ ShoalCave_LowTideLowerRoom_EventScript_15E445:: @ 815E445
ShoalCave_LowTideLowerRoom_EventScript_15E44F:: @ 815E44F
lock
faceplayer
- checkflag 283
+ checkflag FLAG_RECEIVED_FOCUS_BAND
goto_if_eq ShoalCave_LowTideLowerRoom_EventScript_15E47E
msgbox ShoalCave_LowTideLowerRoom_Text_198200, 4
- giveitem ITEM_FOCUS_BAND
+ giveitem_std ITEM_FOCUS_BAND
compare RESULT, 0
goto_if_eq ShoalCave_LowTideLowerRoom_EventScript_1A029B
- setflag 283
+ setflag FLAG_RECEIVED_FOCUS_BAND
release
end
diff --git a/data/scripts/maps/ShoalCave_LowTideStairsRoom.inc b/data/scripts/maps/ShoalCave_LowTideStairsRoom.inc
index bffb7bd49..efcad59d3 100644
--- a/data/scripts/maps/ShoalCave_LowTideStairsRoom.inc
+++ b/data/scripts/maps/ShoalCave_LowTideStairsRoom.inc
@@ -7,9 +7,9 @@ ShoalCave_LowTideStairsRoom_MapScript1_15E39D:: @ 815E39D
end
ShoalCave_LowTideStairsRoom_EventScript_15E3A3:: @ 815E3A3
- checkflag 954
+ checkflag FLAG_HIDE_TOOK_SHOAL_SALT_3
goto_if_eq ShoalCave_LowTideStairsRoom_EventScript_15E3B6
- setmaptile 11, 11, 856, 1
+ setmetatile 11, 11, 856, 1
return
ShoalCave_LowTideStairsRoom_EventScript_15E3B6:: @ 815E3B6
@@ -17,14 +17,14 @@ ShoalCave_LowTideStairsRoom_EventScript_15E3B6:: @ 815E3B6
ShoalCave_LowTideStairsRoom_EventScript_15E3B7:: @ 815E3B7
lockall
- checkflag 954
+ checkflag FLAG_HIDE_TOOK_SHOAL_SALT_3
goto_if_eq ShoalCave_LowTideStairsRoom_EventScript_15E3E9
- giveitem ITEM_SHOAL_SALT
+ giveitem_std ITEM_SHOAL_SALT
compare RESULT, 0
goto_if_eq ShoalCave_LowTideStairsRoom_EventScript_1A029B
- setmaptile 11, 11, 858, 0
+ setmetatile 11, 11, 858, 0
special DrawWholeMapView
- setflag 954
+ setflag FLAG_HIDE_TOOK_SHOAL_SALT_3
releaseall
end
diff --git a/data/scripts/maps/SkyPillar_2F.inc b/data/scripts/maps/SkyPillar_2F.inc
index 3b3585bf8..bd87e8562 100644
--- a/data/scripts/maps/SkyPillar_2F.inc
+++ b/data/scripts/maps/SkyPillar_2F.inc
@@ -5,6 +5,6 @@ SkyPillar_2F_MapScripts:: @ 815F2C9
.byte 0
SkyPillar_2F_MapScript1_15F2D9:: @ 815F2D9
- tileeffect 7
- setholewarp SkyPillar_1F, 255, 0, 0
+ setstepcallback 7
+ setholewarp MAP_SKY_PILLAR_1F, 255, 0, 0
end
diff --git a/data/scripts/maps/SkyPillar_4F.inc b/data/scripts/maps/SkyPillar_4F.inc
index 3d535a25a..860f35b48 100644
--- a/data/scripts/maps/SkyPillar_4F.inc
+++ b/data/scripts/maps/SkyPillar_4F.inc
@@ -5,6 +5,6 @@ SkyPillar_4F_MapScripts:: @ 815F2E5
.byte 0
SkyPillar_4F_MapScript1_15F2F5:: @ 815F2F5
- tileeffect 7
- setholewarp SkyPillar_3F, 255, 0, 0
+ setstepcallback 7
+ setholewarp MAP_SKY_PILLAR_3F, 255, 0, 0
end
diff --git a/data/scripts/maps/SkyPillar_Entrance.inc b/data/scripts/maps/SkyPillar_Entrance.inc
index 7a3927332..ab991d845 100644
--- a/data/scripts/maps/SkyPillar_Entrance.inc
+++ b/data/scripts/maps/SkyPillar_Entrance.inc
@@ -3,5 +3,5 @@ SkyPillar_Entrance_MapScripts:: @ 815F2BD
.byte 0
SkyPillar_Entrance_MapScript1_15F2C3:: @ 815F2C3
- setflag 2142
+ setflag FLAG_LANDMARK_SKY_PILLAR
end
diff --git a/data/scripts/maps/SkyPillar_Top.inc b/data/scripts/maps/SkyPillar_Top.inc
index 1dee6e9c4..07a78d2c4 100644
--- a/data/scripts/maps/SkyPillar_Top.inc
+++ b/data/scripts/maps/SkyPillar_Top.inc
@@ -3,7 +3,7 @@ SkyPillar_Top_MapScripts:: @ 815F302
.byte 0
SkyPillar_Top_MapScript1_15F308:: @ 815F308
- checkflag 2145
+ checkflag FLAG_SYS_CTRL_OBJ_DELETE
call_if 1, SkyPillar_Top_EventScript_15F312
end
@@ -16,13 +16,13 @@ SkyPillar_Top_EventScript_15F316:: @ 815F316
faceplayer
setwildbattle SPECIES_RAYQUAZA, 70, ITEM_NONE
waitse
- playpokecry SPECIES_RAYQUAZA, 2
+ playmoncry SPECIES_RAYQUAZA, 2
delay 40
- waitpokecry
- setflag 773
- setflag 2145
+ waitmoncry
+ setflag FLAG_HIDE_RAYQUAZA
+ setflag FLAG_SYS_CTRL_OBJ_DELETE
special ScrSpecial_StartRayquazaBattle
waitstate
- clearflag 2145
+ clearflag FLAG_SYS_CTRL_OBJ_DELETE
release
end
diff --git a/data/scripts/maps/SlateportCity.inc b/data/scripts/maps/SlateportCity.inc
index bea1455a7..56fc0e59b 100644
--- a/data/scripts/maps/SlateportCity.inc
+++ b/data/scripts/maps/SlateportCity.inc
@@ -17,9 +17,9 @@ SlateportCity_MapScript1_14BA3C:: @ 814BA3C
end
SlateportCity_EventScript_14BA5C:: @ 814BA5C
- setflag 2071
+ setflag FLAG_VISITED_SLATEPORT_CITY
setvar 0x4086, 0
- setflag 803
+ setflag FLAG_HIDE_CONTEST_REPORTER_SLATEPORT
return
SlateportCity_EventScript_14BA68:: @ 814BA68
@@ -64,7 +64,7 @@ SlateportCity_Items1:: @ 814BAD0
SlateportCity_EventScript_14BAE0:: @ 814BAE0
lock
faceplayer
- getfirstpartypokename 0
+ bufferleadmonspeciesname 0
msgbox SlateportCity_Text_164682, 4
specialvar RESULT, LeadMonHasEffortRibbon
compare RESULT, 1
@@ -125,7 +125,7 @@ SlateportCity_EventScript_14BB81:: @ 814BB81
faceplayer
compare 0x4058, 1
call_if 1, SlateportCity_EventScript_14BBA1
- checkflag 96
+ checkflag FLAG_RECEIVED_SECRET_POWER
goto_if_eq SlateportCity_EventScript_14BBAB
msgbox SlateportCity_Text_164937, 4
release
@@ -182,7 +182,7 @@ SlateportCity_EventScript_14BC0A:: @ 814BC0A
SlateportCity_EventScript_14BC14:: @ 814BC14
lock
faceplayer
- checkflag 148
+ checkflag FLAG_DOCK_REJECTED_DEVON_GOODS
goto_if_eq SlateportCity_EventScript_14BC29
msgbox SlateportCity_Text_164BBF, 4
release
@@ -199,9 +199,9 @@ SlateportCity_EventScript_14BC33:: @ 814BC33
SlateportCity_EventScript_14BC3C:: @ 814BC3C
lockall
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if_eq SlateportCity_EventScript_14BC63
- checkflag 2061
+ checkflag FLAG_BADGE07_GET
goto_if_eq SlateportCity_EventScript_14BC59
msgbox SlateportCity_Text_1658A0, 4
releaseall
@@ -235,7 +235,7 @@ SlateportCity_EventScript_14BC88:: @ 814BC88
SlateportCity_EventScript_14BC91:: @ 814BC91
lockall
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if_eq SlateportCity_EventScript_14BCA5
msgbox SlateportCity_Text_165A8B, 4
releaseall
@@ -388,7 +388,7 @@ SlateportCity_EventScript_14BDF2:: @ 814BDF2
faceplayer
message SlateportCity_Text_1A0BE4
waitmessage
- pokemartdecor SlateportCity_Decorations1
+ pokemartdecoration SlateportCity_Decorations1
msgbox SlateportCity_Text_1A0C02, 4
release
end
@@ -410,11 +410,11 @@ SlateportCity_EventScript_14BE16:: @ 814BE16
SlateportCity_EventScript_14BE20:: @ 814BE20
lock
faceplayer
- checkflag 96
+ checkflag FLAG_RECEIVED_SECRET_POWER
goto_if 0, SlateportCity_EventScript_14BE16
message SlateportCity_Text_1A0BE4
waitmessage
- pokemartdecor SlateportCity_Decorations2
+ pokemartdecoration SlateportCity_Decorations2
msgbox SlateportCity_Text_1A0C02, 4
release
end
@@ -442,11 +442,11 @@ SlateportCity_Decorations2:: @ 814BE40
@ 814BE60
lock
faceplayer
- checkflag 96
+ checkflag FLAG_RECEIVED_SECRET_POWER
goto_if 0, SlateportCity_EventScript_14BE16
message SlateportCity_Text_1A0BE4
waitmessage
- pokemartdecor SlateportCity_Decorations3
+ pokemartdecoration SlateportCity_Decorations3
msgbox SlateportCity_Text_1A0C02, 4
release
end
@@ -533,12 +533,12 @@ SlateportCity_EventScript_14BEBC:: @ 814BEBC
applymovement 255, SlateportCity_Movement_14C008
waitmovement 0
removeobject 11
- clearflag 841
- clearflag 848
- clearflag 845
- clearflag 846
+ clearflag FLAG_HIDE_STERN_SLATEPORT_HARBOR
+ clearflag FLAG_HIDE_SUBMARINE_SHADOW_SLATEPORT_HARBOR
+ clearflag FLAG_HIDE_GRUNT_1_SLATEPORT_HARBOR
+ clearflag FLAG_HIDE_GRUNT_2_SLATEPORT_HARBOR
setvar 0x4058, 2
- warp SlateportCity_Harbor, 255, 11, 14
+ warp MAP_SLATEPORT_CITY_HARBOR, 255, 11, 14
waitstate
releaseall
end
diff --git a/data/scripts/maps/SlateportCity_ContestHall.inc b/data/scripts/maps/SlateportCity_ContestHall.inc
index f8070f1a1..0a6f40c75 100644
--- a/data/scripts/maps/SlateportCity_ContestHall.inc
+++ b/data/scripts/maps/SlateportCity_ContestHall.inc
@@ -12,13 +12,13 @@ SlateportCity_ContestHall_EventScript_155555:: @ 8155555
SlateportCity_ContestHall_EventScript_15555E:: @ 815555E
lock
faceplayer
- checkflag 265
+ checkflag FLAG_RECEIVED_TM41
goto_if_eq SlateportCity_ContestHall_EventScript_155595
msgbox SlateportCity_ContestHall_Text_17CCE2, 4
- giveitem ITEM_TM41
+ giveitem_std ITEM_TM41
compare RESULT, 0
goto_if_eq SlateportCity_ContestHall_EventScript_1A029B
- setflag 265
+ setflag FLAG_RECEIVED_TM41
msgbox SlateportCity_ContestHall_Text_17CE28, 4
release
end
diff --git a/data/scripts/maps/SlateportCity_ContestLobby.inc b/data/scripts/maps/SlateportCity_ContestLobby.inc
index cb4632d77..c4a44d9c9 100644
--- a/data/scripts/maps/SlateportCity_ContestLobby.inc
+++ b/data/scripts/maps/SlateportCity_ContestLobby.inc
@@ -14,7 +14,7 @@ SlateportCity_ContestLobby_EventScript_15541D:: @ 815541D
special sub_80C4BF0
call SlateportCity_ContestLobby_EventScript_15FBDB
setvar 0x4088, 3
- warp LinkContestRoom1, 255, 7, 5
+ warp MAP_LINK_CONTEST_ROOM1, 255, 7, 5
waitstate
end
@@ -23,14 +23,14 @@ SlateportCity_ContestLobby_EventScript_155448:: @ 8155448
applymovement 1, SlateportCity_ContestLobby_Movement_1554CC
waitmovement 0
playse 71
- setmaptile 4, 2, 545, 1
- setmaptile 4, 3, 609, 1
+ setmetatile 4, 2, 545, 1
+ setmetatile 4, 3, 609, 1
special DrawWholeMapView
applymovement 1, SlateportCity_ContestLobby_Movement_1554CF
waitmovement 0
playse 71
- setmaptile 4, 2, 721, 1
- setmaptile 4, 3, 729, 1
+ setmetatile 4, 2, 721, 1
+ setmetatile 4, 3, 729, 1
special DrawWholeMapView
delay 20
applymovement 1, SlateportCity_ContestLobby_Movement_1554DC
@@ -101,13 +101,13 @@ SlateportCity_ContestLobby_EventScript_1554F0:: @ 81554F0
SlateportCity_ContestLobby_EventScript_1554F9:: @ 81554F9
lockall
- checkflag 95
+ checkflag FLAG_RECEIVED_POKEBLOCK_CASE
goto_if_eq SlateportCity_ContestLobby_EventScript_155526
applymovement 7, SlateportCity_ContestLobby_Movement_1A0839
waitmovement 0
msgbox SlateportCity_ContestLobby_Text_17CA67, 4
- giveitem ITEM_POKEBLOCK_CASE
- setflag 95
+ giveitem_std ITEM_POKEBLOCK_CASE
+ setflag FLAG_RECEIVED_POKEBLOCK_CASE
releaseall
end
@@ -129,7 +129,7 @@ SlateportCity_ContestLobby_EventScript_155536:: @ 8155536
@ 815553F
lockall
special ShowBerryBlenderRecordWindow
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
diff --git a/data/scripts/maps/SlateportCity_Harbor.inc b/data/scripts/maps/SlateportCity_Harbor.inc
index f145c4a3d..304013b08 100644
--- a/data/scripts/maps/SlateportCity_Harbor.inc
+++ b/data/scripts/maps/SlateportCity_Harbor.inc
@@ -3,23 +3,23 @@ SlateportCity_Harbor_MapScripts:: @ 8155F5D
.byte 0
SlateportCity_Harbor_MapScript1_155F63:: @ 8155F63
- setescapewarp SlateportCity, 255, 28, 13
+ setescapewarp MAP_SLATEPORT_CITY, 255, 28, 13
setvar 0x4001, 0
compare 0x40a0, 1
call_if 1, SlateportCity_Harbor_EventScript_155F89
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
call_if 1, SlateportCity_Harbor_EventScript_155F85
end
SlateportCity_Harbor_EventScript_155F85:: @ 8155F85
- clearflag 860
+ clearflag FLAG_HIDE_SS_TIDAL_SLATEPORT_HARBOR
return
SlateportCity_Harbor_EventScript_155F89:: @ 8155F89
savebgm BGM_EVIL_TEAM
setobjectxyperm 4, 12, 13
setobjectmovementtype 4, 9
- setflag 905
+ setflag FLAG_HIDE_WORKERS_SLATEPORT_HARBOR
return
SlateportCity_Harbor_EventScript_155F9B:: @ 8155F9B
@@ -73,8 +73,8 @@ SlateportCity_Harbor_EventScript_155FD5:: @ 8155FD5
call_if 1, SlateportCity_Harbor_EventScript_156086
msgbox SlateportCity_Harbor_Text_17FE60, 4
closemessage
- setflag 821
- setflag 822
+ setflag FLAG_HIDE_GRUNT_1_BLOCKING_HIDEOUT
+ setflag FLAG_HIDE_GRUNT_2_BLOCKING_HIDEOUT
moveobjectoffscreen 4
setobjectmovementtype 4, 10
releaseall
@@ -159,7 +159,7 @@ SlateportCity_Harbor_Movement_1560C2:: @ 81560C2
SlateportCity_Harbor_EventScript_1560C4:: @ 81560C4
lock
faceplayer
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if_eq SlateportCity_Harbor_EventScript_1560D9
msgbox SlateportCity_Harbor_Text_17FA0A, 4
release
@@ -195,7 +195,7 @@ SlateportCity_Harbor_EventScript_15613F:: @ 815613F
goto_if_eq SlateportCity_Harbor_EventScript_15618A
setvar 0x40b4, 1
call SlateportCity_Harbor_EventScript_156196
- warp SSTidalCorridor, 255, 1, 10
+ warp MAP_SS_TIDAL_CORRIDOR, 255, 1, 10
waitstate
release
end
@@ -205,7 +205,7 @@ SlateportCity_Harbor_EventScript_156167:: @ 8156167
compare RESULT, 0
goto_if_eq SlateportCity_Harbor_EventScript_15618A
call SlateportCity_Harbor_EventScript_156196
- warp BattleTower_Outside, 255, 19, 23
+ warp MAP_BATTLE_TOWER_OUTSIDE, 255, 19, 23
waitstate
release
end
@@ -222,13 +222,13 @@ SlateportCity_Harbor_EventScript_156196:: @ 8156196
applymovement LAST_TALKED, SlateportCity_Harbor_Movement_1A0841
waitmovement 0
delay 30
- hideobject LAST_TALKED, 9, 8
+ hideobjectat LAST_TALKED, MAP_SLATEPORT_CITY_HARBOR
compare FACING, 2
call_if 1, SlateportCity_Harbor_EventScript_1561EF
compare FACING, 4
call_if 1, SlateportCity_Harbor_EventScript_1561E4
delay 30
- hideobject 255, 0, 0
+ hideobjectat 255, MAP_PETALBURG_CITY
setvar 0x8004, 5
call SlateportCity_Harbor_EventScript_1A040E
return
@@ -268,11 +268,11 @@ SlateportCity_Harbor_EventScript_156208:: @ 8156208
SlateportCity_Harbor_EventScript_156211:: @ 8156211
lock
faceplayer
- checkflag 2061
+ checkflag FLAG_BADGE07_GET
goto_if_eq SlateportCity_Harbor_EventScript_15626F
- checkflag 271
+ checkflag FLAG_EVIL_TEAM_ESCAPED_STERN_SPOKE
goto_if_eq SlateportCity_Harbor_EventScript_156265
- checkflag 112
+ checkflag FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE
goto_if_eq SlateportCity_Harbor_EventScript_156258
compare 0x40a0, 2
goto_if_eq SlateportCity_Harbor_EventScript_15624E
@@ -289,7 +289,7 @@ SlateportCity_Harbor_EventScript_15624E:: @ 815624E
end
SlateportCity_Harbor_EventScript_156258:: @ 8156258
- setflag 271
+ setflag FLAG_EVIL_TEAM_ESCAPED_STERN_SPOKE
msgbox SlateportCity_Harbor_Text_17FF35, 4
release
end
@@ -305,7 +305,7 @@ SlateportCity_Harbor_EventScript_15626F:: @ 815626F
checkitem ITEM_SCANNER, 1
compare RESULT, 1
goto_if_eq SlateportCity_Harbor_EventScript_1562A7
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if_eq SlateportCity_Harbor_EventScript_15629D
msgbox SlateportCity_Harbor_Text_18017B, 4
release
@@ -335,12 +335,12 @@ SlateportCity_Harbor_EventScript_1562EA:: @ 81562EA
msgbox SlateportCity_Harbor_Text_1803DD, 5
compare RESULT, 0
goto_if_eq SlateportCity_Harbor_EventScript_156374
- giveitem ITEM_DEEP_SEA_TOOTH
+ giveitem_std ITEM_DEEP_SEA_TOOTH
compare RESULT, 0
goto_if_eq SlateportCity_Harbor_EventScript_1A029B
- removeitem ITEM_SCANNER, 1
+ takeitem ITEM_SCANNER, 1
msgbox SlateportCity_Harbor_Text_18046B, 4
- setflag 294
+ setflag FLAG_EXCHANGED_SCANNER
goto SlateportCity_Harbor_EventScript_156380
end
@@ -348,12 +348,12 @@ SlateportCity_Harbor_EventScript_15632A:: @ 815632A
msgbox SlateportCity_Harbor_Text_180412, 5
compare RESULT, 0
goto_if_eq SlateportCity_Harbor_EventScript_156374
- giveitem ITEM_DEEP_SEA_SCALE
+ giveitem_std ITEM_DEEP_SEA_SCALE
compare RESULT, 0
goto_if_eq SlateportCity_Harbor_EventScript_1A029B
- removeitem ITEM_SCANNER, 1
+ takeitem ITEM_SCANNER, 1
msgbox SlateportCity_Harbor_Text_18046B, 4
- setflag 294
+ setflag FLAG_EXCHANGED_SCANNER
goto SlateportCity_Harbor_EventScript_156380
end
diff --git a/data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc b/data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc
index 1ee8ff39b..9e002e61e 100644
--- a/data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc
+++ b/data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc
@@ -57,7 +57,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_155B2D:: @ 8155B2D
end
SlateportCity_OceanicMuseum_1F_EventScript_155B5A:: @ 8155B5A
- checkflag 149
+ checkflag FLAG_DELIVERED_DEVON_GOODS
goto_if 0, SlateportCity_OceanicMuseum_1F_EventScript_155B7B
msgbox SlateportCity_OceanicMuseum_1F_Text_17E1F5, 4
closemessage
@@ -164,10 +164,10 @@ SlateportCity_OceanicMuseum_1F_EventScript_155C3A:: @ 8155C3A
applymovement 13, SlateportCity_OceanicMuseum_1F_Movement_1A0835
waitmovement 0
msgbox SlateportCity_OceanicMuseum_1F_Text_17E582, 4
- giveitem ITEM_TM46
+ giveitem_std ITEM_TM46
compare RESULT, 0
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_155CC2
- setflag 269
+ setflag FLAG_RECEIVED_TM46
msgbox SlateportCity_OceanicMuseum_1F_Text_17E606, 4
closemessage
compare FACING, 2
@@ -179,7 +179,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_155C3A:: @ 8155C3A
SlateportCity_OceanicMuseum_1F_EventScript_155C98:: @ 8155C98
applymovement 13, SlateportCity_OceanicMuseum_1F_Movement_155CD3
waitmovement 0
- setflag 965
+ setflag FLAG_HIDE_SCARED_GRUNT_OCEANIC_MUSEUM
playse 9
removeobject 13
release
@@ -188,7 +188,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_155C98:: @ 8155C98
SlateportCity_OceanicMuseum_1F_EventScript_155CAD:: @ 8155CAD
applymovement 13, SlateportCity_OceanicMuseum_1F_Movement_155CCC
waitmovement 0
- setflag 965
+ setflag FLAG_HIDE_SCARED_GRUNT_OCEANIC_MUSEUM
playse 9
removeobject 13
release
diff --git a/data/scripts/maps/SlateportCity_OceanicMuseum_2F.inc b/data/scripts/maps/SlateportCity_OceanicMuseum_2F.inc
index e379c633d..7fcd0fff1 100644
--- a/data/scripts/maps/SlateportCity_OceanicMuseum_2F.inc
+++ b/data/scripts/maps/SlateportCity_OceanicMuseum_2F.inc
@@ -74,7 +74,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_155CE6:: @ 8155CE6
removeobject 4
fadescreen 0
delay 30
- setflag 883
+ setflag FLAG_HIDE_EVIL_TEAM_OCEANIC_MUSEUM
applymovement 255, SlateportCity_OceanicMuseum_2F_Movement_1A0843
waitmovement 0
msgbox SlateportCity_OceanicMuseum_2F_Text_17F352, 4
@@ -86,10 +86,10 @@ SlateportCity_OceanicMuseum_2F_EventScript_155CE6:: @ 8155CE6
waitmovement 0
playse 9
removeobject 1
- setflag 900
- setflag 149
- clearflag 947
- setflag 949
+ setflag FLAG_HIDE_EVIL_TEAM_ROUTE110
+ setflag FLAG_DELIVERED_DEVON_GOODS
+ clearflag FLAG_HIDE_DEVON_EMPLOYEE_ROUTE116
+ setflag FLAG_HIDE_EMPLOYEE_DEVON_CORP_3F
release
end
diff --git a/data/scripts/maps/SlateportCity_PokemonCenter_1F.inc b/data/scripts/maps/SlateportCity_PokemonCenter_1F.inc
index 9aa326f70..ac4e8f240 100644
--- a/data/scripts/maps/SlateportCity_PokemonCenter_1F.inc
+++ b/data/scripts/maps/SlateportCity_PokemonCenter_1F.inc
@@ -3,7 +3,7 @@ SlateportCity_PokemonCenter_1F_MapScripts:: @ 81563BF
.byte 0
SlateportCity_PokemonCenter_1F_MapScript1_1563C5:: @ 81563C5
- sethealplace 4
+ setrespawn 4
call SlateportCity_PokemonCenter_1F_EventScript_19FD1B
end
@@ -11,7 +11,7 @@ SlateportCity_PokemonCenter_1F_EventScript_1563CE:: @ 81563CE
setvar 0x800b, 1
call SlateportCity_PokemonCenter_1F_EventScript_19FD5B
waitmessage
- waitbutton
+ waitbuttonpress
release
end
diff --git a/data/scripts/maps/SlateportCity_PokemonFanClub.inc b/data/scripts/maps/SlateportCity_PokemonFanClub.inc
index 4195ad43a..593e18fee 100644
--- a/data/scripts/maps/SlateportCity_PokemonFanClub.inc
+++ b/data/scripts/maps/SlateportCity_PokemonFanClub.inc
@@ -23,15 +23,15 @@ SlateportCity_PokemonFanClub_EventScript_155795:: @ 8155795
SlateportCity_PokemonFanClub_EventScript_1557A8:: @ 81557A8
setvar 0x4002, 0
- checkflag 204
+ checkflag FLAG_RECEIVED_YELLOW_SCARF
call_if 1, SlateportCity_PokemonFanClub_EventScript_155893
- checkflag 203
+ checkflag FLAG_RECEIVED_GREEN_SCARF
call_if 1, SlateportCity_PokemonFanClub_EventScript_155893
- checkflag 202
+ checkflag FLAG_RECEIVED_PINK_SCARF
call_if 1, SlateportCity_PokemonFanClub_EventScript_155893
- checkflag 201
+ checkflag FLAG_RECEIVED_BLUE_SCARF
call_if 1, SlateportCity_PokemonFanClub_EventScript_155893
- checkflag 200
+ checkflag FLAG_RECEIVED_RED_SCARF
call_if 1, SlateportCity_PokemonFanClub_EventScript_155893
compare 0x4002, 5
call_if 1, SlateportCity_PokemonFanClub_EventScript_15588D
@@ -49,17 +49,17 @@ SlateportCity_PokemonFanClub_EventScript_1557FE:: @ 81557FE
SlateportCity_PokemonFanClub_EventScript_155808:: @ 8155808
msgbox SlateportCity_PokemonFanClub_Text_17DA49, 4
setvar 0x4001, 0
- checkflag 204
+ checkflag FLAG_RECEIVED_YELLOW_SCARF
call_if 0, SlateportCity_PokemonFanClub_EventScript_1559FE
- checkflag 203
+ checkflag FLAG_RECEIVED_GREEN_SCARF
call_if 0, SlateportCity_PokemonFanClub_EventScript_1559E7
- checkflag 202
+ checkflag FLAG_RECEIVED_PINK_SCARF
call_if 0, SlateportCity_PokemonFanClub_EventScript_1559D0
- checkflag 201
+ checkflag FLAG_RECEIVED_BLUE_SCARF
call_if 0, SlateportCity_PokemonFanClub_EventScript_1559B9
- checkflag 200
+ checkflag FLAG_RECEIVED_RED_SCARF
call_if 0, SlateportCity_PokemonFanClub_EventScript_1559A2
- getfirstpartypokename 0
+ bufferleadmonspeciesname 0
switch 0x4001
case 0, SlateportCity_PokemonFanClub_EventScript_155899
case 1, SlateportCity_PokemonFanClub_EventScript_1558A3
@@ -88,8 +88,8 @@ SlateportCity_PokemonFanClub_EventScript_1558A3:: @ 81558A3
compare RESULT, 0
goto_if_eq SlateportCity_PokemonFanClub_EventScript_155998
msgbox SlateportCity_PokemonFanClub_Text_17DB89, 4
- setflag 200
- giveitem ITEM_RED_SCARF
+ setflag FLAG_RECEIVED_RED_SCARF
+ giveitem_std ITEM_RED_SCARF
msgbox SlateportCity_PokemonFanClub_Text_17DC1B, 4
release
end
@@ -99,8 +99,8 @@ SlateportCity_PokemonFanClub_EventScript_1558D4:: @ 81558D4
compare RESULT, 0
goto_if_eq SlateportCity_PokemonFanClub_EventScript_155998
msgbox SlateportCity_PokemonFanClub_Text_17DB89, 4
- setflag 201
- giveitem ITEM_BLUE_SCARF
+ setflag FLAG_RECEIVED_BLUE_SCARF
+ giveitem_std ITEM_BLUE_SCARF
msgbox SlateportCity_PokemonFanClub_Text_17DC74, 4
release
end
@@ -110,8 +110,8 @@ SlateportCity_PokemonFanClub_EventScript_155905:: @ 8155905
compare RESULT, 0
goto_if_eq SlateportCity_PokemonFanClub_EventScript_155998
msgbox SlateportCity_PokemonFanClub_Text_17DB89, 4
- setflag 202
- giveitem ITEM_PINK_SCARF
+ setflag FLAG_RECEIVED_PINK_SCARF
+ giveitem_std ITEM_PINK_SCARF
msgbox SlateportCity_PokemonFanClub_Text_17DCCB, 4
release
end
@@ -121,8 +121,8 @@ SlateportCity_PokemonFanClub_EventScript_155936:: @ 8155936
compare RESULT, 0
goto_if_eq SlateportCity_PokemonFanClub_EventScript_155998
msgbox SlateportCity_PokemonFanClub_Text_17DB89, 4
- setflag 203
- giveitem ITEM_GREEN_SCARF
+ setflag FLAG_RECEIVED_GREEN_SCARF
+ giveitem_std ITEM_GREEN_SCARF
msgbox SlateportCity_PokemonFanClub_Text_17DD27, 4
release
end
@@ -132,8 +132,8 @@ SlateportCity_PokemonFanClub_EventScript_155967:: @ 8155967
compare RESULT, 0
goto_if_eq SlateportCity_PokemonFanClub_EventScript_155998
msgbox SlateportCity_PokemonFanClub_Text_17DB89, 4
- setflag 204
- giveitem ITEM_YELLOW_SCARF
+ setflag FLAG_RECEIVED_YELLOW_SCARF
+ giveitem_std ITEM_YELLOW_SCARF
msgbox SlateportCity_PokemonFanClub_Text_17DD78, 4
release
end
@@ -196,7 +196,7 @@ SlateportCity_PokemonFanClub_EventScript_155A0F:: @ 8155A0F
SlateportCity_PokemonFanClub_EventScript_155A15:: @ 8155A15
lock
faceplayer
- checkflag 278
+ checkflag FLAG_RECEIVED_SOOTHE_BELL
goto_if_eq SlateportCity_PokemonFanClub_EventScript_155A75
msgbox SlateportCity_PokemonFanClub_Text_17DE6B, 4
specialvar RESULT, GetLeadMonFriendshipScore
@@ -212,10 +212,10 @@ SlateportCity_PokemonFanClub_EventScript_155A3A:: @ 8155A3A
applymovement LAST_TALKED, SlateportCity_PokemonFanClub_Movement_1A0835
waitmovement 0
msgbox SlateportCity_PokemonFanClub_Text_17DF57, 4
- giveitem ITEM_SOOTHE_BELL
+ giveitem_std ITEM_SOOTHE_BELL
compare RESULT, 0
goto_if_eq SlateportCity_PokemonFanClub_EventScript_1A029B
- setflag 278
+ setflag FLAG_RECEIVED_SOOTHE_BELL
release
end
@@ -236,9 +236,9 @@ SlateportCity_PokemonFanClub_EventScript_155A91:: @ 8155A91
lock
faceplayer
waitse
- playpokecry SPECIES_SKITTY, 0
+ playmoncry SPECIES_SKITTY, 0
msgbox SlateportCity_PokemonFanClub_Text_17E14E, 4
- waitpokecry
+ waitmoncry
release
end
@@ -246,9 +246,9 @@ SlateportCity_PokemonFanClub_EventScript_155AA4:: @ 8155AA4
lock
faceplayer
waitse
- playpokecry SPECIES_ZIGZAGOON, 0
+ playmoncry SPECIES_ZIGZAGOON, 0
msgbox SlateportCity_PokemonFanClub_Text_17E164, 4
- waitpokecry
+ waitmoncry
release
end
@@ -256,8 +256,8 @@ SlateportCity_PokemonFanClub_EventScript_155AB7:: @ 8155AB7
lock
faceplayer
waitse
- playpokecry SPECIES_AZUMARILL, 0
+ playmoncry SPECIES_AZUMARILL, 0
msgbox SlateportCity_PokemonFanClub_Text_17E178, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/SlateportCity_SternsShipyard_1F.inc b/data/scripts/maps/SlateportCity_SternsShipyard_1F.inc
index 9fe7f1f1a..46dc8419c 100644
--- a/data/scripts/maps/SlateportCity_SternsShipyard_1F.inc
+++ b/data/scripts/maps/SlateportCity_SternsShipyard_1F.inc
@@ -3,13 +3,13 @@ SlateportCity_SternsShipyard_1F_MapScripts:: @ 8155335
SlateportCity_SternsShipyard_1F_EventScript_155336:: @ 8155336
lockall
- checkflag 2052
+ checkflag FLAG_SYS_GAME_CLEAR
goto_if_eq SlateportCity_SternsShipyard_1F_EventScript_155388
- checkflag 2061
+ checkflag FLAG_BADGE07_GET
goto_if_eq SlateportCity_SternsShipyard_1F_EventScript_15539C
- checkflag 149
+ checkflag FLAG_DELIVERED_DEVON_GOODS
goto_if_eq SlateportCity_SternsShipyard_1F_EventScript_1553CF
- checkflag 148
+ checkflag FLAG_DOCK_REJECTED_DEVON_GOODS
goto_if_eq SlateportCity_SternsShipyard_1F_EventScript_1553B0
msgbox SlateportCity_SternsShipyard_1F_Text_17C14B, 4
applymovement 1, SlateportCity_SternsShipyard_1F_Movement_1A0839
@@ -18,8 +18,8 @@ SlateportCity_SternsShipyard_1F_EventScript_155336:: @ 8155336
closemessage
applymovement 1, SlateportCity_SternsShipyard_1F_Movement_1A083D
waitmovement 0
- setflag 148
- setflag 882
+ setflag FLAG_DOCK_REJECTED_DEVON_GOODS
+ setflag FLAG_HIDE_EVIL_TEAM_SLATEPORT
releaseall
end
diff --git a/data/scripts/maps/SootopolisCity.inc b/data/scripts/maps/SootopolisCity.inc
index bddc5965d..f4842bd40 100644
--- a/data/scripts/maps/SootopolisCity.inc
+++ b/data/scripts/maps/SootopolisCity.inc
@@ -5,39 +5,39 @@ SootopolisCity_MapScripts:: @ 814D07D
.byte 0
SootopolisCity_MapScript1_14D08D:: @ 814D08D
- checkflag 129
+ checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
call_if 0, SootopolisCity_EventScript_14D0A0
- checkflag 129
+ checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
call_if 1, SootopolisCity_EventScript_14D0B1
end
SootopolisCity_EventScript_14D0A0:: @ 814D0A0
setobjectxyperm 3, 31, 18
- setmaptile 31, 32, 592, 1
+ setmetatile 31, 32, 592, 1
return
SootopolisCity_EventScript_14D0B1:: @ 814D0B1
- checkflag 113
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
call_if 0, SootopolisCity_EventScript_14D0BB
return
SootopolisCity_EventScript_14D0BB:: @ 814D0BB
- setmaptile 9, 6, 584, 1
- setmaptile 9, 17, 584, 1
- setmaptile 9, 26, 584, 1
- setmaptile 44, 17, 584, 1
- setmaptile 8, 35, 584, 1
- setmaptile 53, 28, 584, 1
- setmaptile 45, 6, 584, 1
- setmaptile 48, 25, 584, 1
- setmaptile 31, 32, 592, 1
+ setmetatile 9, 6, 584, 1
+ setmetatile 9, 17, 584, 1
+ setmetatile 9, 26, 584, 1
+ setmetatile 44, 17, 584, 1
+ setmetatile 8, 35, 584, 1
+ setmetatile 53, 28, 584, 1
+ setmetatile 45, 6, 584, 1
+ setmetatile 48, 25, 584, 1
+ setmetatile 31, 32, 592, 1
return
SootopolisCity_MapScript1_14D10D:: @ 814D10D
- setflag 2077
- checkflag 113
+ setflag FLAG_VISITED_SOOTOPOLIS_CITY
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
call_if 1, SootopolisCity_EventScript_14D159
- checkflag 2090
+ checkflag FLAG_SYS_WEATHER_CTRL
call_if 1, SootopolisCity_EventScript_14D123
end
@@ -62,13 +62,13 @@ SootopolisCity_EventScript_14D159:: @ 814D159
return
SootopolisCity_MapScript1_14D165:: @ 814D165
- setdivewarp Underwater_SootopolisCity, 255, 9, 6
+ setdivewarp MAP_UNDERWATER_SOOTOPOLIS_CITY, 255, 9, 6
end
SootopolisCity_EventScript_14D16E:: @ 814D16E
lock
faceplayer
- checkflag 113
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
goto_if_eq SootopolisCity_EventScript_14D183
msgbox SootopolisCity_Text_1696A4, 4
release
@@ -92,16 +92,16 @@ SootopolisCity_EventScript_14D19F:: @ 814D19F
faceplayer
dodailyevents
special GetPlayerBigGuyGirlString
- checkflag 2258
+ checkflag FLAG_DAILY_RECEIVED_BERRY_SOOTOPOLIS
goto_if_eq SootopolisCity_EventScript_14D241
msgbox SootopolisCity_Text_1C63F2, 4
random 10
addvar RESULT, 20
- addvar RESULT, 133
- giveitem RESULT
+ addvar RESULT, ITEM_CHERI_BERRY
+ giveitem_std RESULT
compare RESULT, 0
goto_if_eq SootopolisCity_EventScript_1A029B
- setflag 2258
+ setflag FLAG_DAILY_RECEIVED_BERRY_SOOTOPOLIS
msgbox SootopolisCity_Text_1C64D0, 4
random 2
compare RESULT, 0
@@ -111,7 +111,7 @@ SootopolisCity_EventScript_14D19F:: @ 814D19F
end
SootopolisCity_EventScript_14D1FF:: @ 814D1FF
- giveitem ITEM_FIGY_BERRY
+ giveitem_std ITEM_FIGY_BERRY
compare RESULT, 0
goto_if_eq SootopolisCity_EventScript_1A029B
msgbox SootopolisCity_Text_1C650B, 4
@@ -119,7 +119,7 @@ SootopolisCity_EventScript_14D1FF:: @ 814D1FF
end
SootopolisCity_EventScript_14D220:: @ 814D220
- giveitem ITEM_IAPAPA_BERRY
+ giveitem_std ITEM_IAPAPA_BERRY
compare RESULT, 0
goto_if_eq SootopolisCity_EventScript_1A029B
msgbox SootopolisCity_Text_1C650B, 4
@@ -142,7 +142,7 @@ SootopolisCity_EventScript_14D25E:: @ 814D25E
SootopolisCity_EventScript_14D268:: @ 814D268
lock
faceplayer
- checkflag 1236
+ checkflag FLAG_DEFEATED_SOOTOPOLIS_GYM
goto_if_eq SootopolisCity_EventScript_14D27D
msgbox SootopolisCity_Text_16A4D6, 4
release
@@ -156,7 +156,7 @@ SootopolisCity_EventScript_14D27D:: @ 814D27D
SootopolisCity_EventScript_14D287:: @ 814D287
lock
faceplayer
- checkflag 113
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
goto_if_eq SootopolisCity_EventScript_14D29C
msgbox SootopolisCity_Text_169813, 4
release
@@ -170,7 +170,7 @@ SootopolisCity_EventScript_14D29C:: @ 814D29C
SootopolisCity_EventScript_14D2A6:: @ 814D2A6
lock
faceplayer
- checkflag 113
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
goto_if_eq SootopolisCity_EventScript_14D2BB
msgbox SootopolisCity_Text_1698A0, 4
release
@@ -184,7 +184,7 @@ SootopolisCity_EventScript_14D2BB:: @ 814D2BB
SootopolisCity_EventScript_14D2C5:: @ 814D2C5
lock
faceplayer
- checkflag 113
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
goto_if_eq SootopolisCity_EventScript_14D2DA
msgbox SootopolisCity_Text_1697A7, 4
release
@@ -445,7 +445,7 @@ SootopolisCity_EventScript_14D48F:: @ 814D48F
SootopolisCity_EventScript_14D498:: @ 814D498
lock
faceplayer
- checkflag 113
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
goto_if_eq SootopolisCity_EventScript_14D4AD
.ifdef SAPPHIRE
msgbox SootopolisCity_Text_169DA6, 4
@@ -461,7 +461,7 @@ SootopolisCity_EventScript_14D4AD:: @ 814D4AD
applymovement LAST_TALKED, SootopolisCity_Movement_1A0845
waitmovement 0
delay 50
- setfieldeffect 0, 1
+ setfieldeffectargument 0, 1
dofieldeffect 30
delay 15
removeobject LAST_TALKED
diff --git a/data/scripts/maps/SootopolisCity_Gym_1F.inc b/data/scripts/maps/SootopolisCity_Gym_1F.inc
index 51b67ee4b..65ed13d87 100644
--- a/data/scripts/maps/SootopolisCity_Gym_1F.inc
+++ b/data/scripts/maps/SootopolisCity_Gym_1F.inc
@@ -10,7 +10,7 @@ SootopolisCity_Gym_1F_MapScript1_15AF1C:: @ 815AF1C
end
SootopolisCity_Gym_1F_MapScript1_15AF22:: @ 815AF22
- tileeffect 4
+ setstepcallback 4
end
SootopolisCity_Gym_1F_MapScript1_15AF25:: @ 815AF25
@@ -25,16 +25,16 @@ SootopolisCity_Gym_1F_EventScript_15AF2E:: @ 815AF2E
goto_if 0, SootopolisCity_Gym_1F_EventScript_15AF73
compare 0x4022, 69
goto_if 0, SootopolisCity_Gym_1F_EventScript_15AF61
- setmaptile 8, 4, 519, 0
- setmaptile 8, 5, 519, 0
+ setmetatile 8, 4, 519, 0
+ setmetatile 8, 5, 519, 0
SootopolisCity_Gym_1F_EventScript_15AF61:: @ 815AF61
- setmaptile 8, 10, 519, 0
- setmaptile 8, 11, 519, 0
+ setmetatile 8, 10, 519, 0
+ setmetatile 8, 11, 519, 0
SootopolisCity_Gym_1F_EventScript_15AF73:: @ 815AF73
- setmaptile 8, 15, 519, 0
- setmaptile 8, 16, 519, 0
+ setmetatile 8, 15, 519, 0
+ setmetatile 8, 16, 519, 0
SootopolisCity_Gym_1F_EventScript_15AF85:: @ 815AF85
return
@@ -77,7 +77,7 @@ SootopolisCity_Gym_1F_EventScript_15AFE4:: @ 815AFE4
waitmovement 0
playse 43
delay 60
- warphole SootopolisCity_Gym_B1F
+ warphole MAP_SOOTOPOLIS_CITY_GYM_B1F
waitstate
end
@@ -87,9 +87,9 @@ 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 172
+ checkflag FLAG_RECEIVED_TM03
goto_if 0, SootopolisCity_Gym_1F_EventScript_15B056
- checkflag 2060
+ checkflag FLAG_BADGE06_GET
goto_if 0, SootopolisCity_Gym_1F_EventScript_15B07A
msgbox SootopolisCity_Gym_1F_Text_18F4D7, 4
release
@@ -100,19 +100,19 @@ SootopolisCity_Gym_1F_EventScript_15B02D:: @ 815B02D
waitmessage
call SootopolisCity_Gym_1F_EventScript_1A02C5
msgbox SootopolisCity_Gym_1F_Text_18F36B, 4
- setflag 1236
- setflag 2062
+ setflag FLAG_DEFEATED_SOOTOPOLIS_GYM
+ setflag FLAG_BADGE08_GET
setvar 0x8008, 8
call SootopolisCity_Gym_1F_EventScript_1A01C0
goto SootopolisCity_Gym_1F_EventScript_15B056
end
SootopolisCity_Gym_1F_EventScript_15B056:: @ 815B056
- giveitem ITEM_TM03
+ giveitem_std ITEM_TM03
compare RESULT, 0
goto_if_eq SootopolisCity_Gym_1F_EventScript_1A029B
msgbox SootopolisCity_Gym_1F_Text_18F466, 4
- setflag 172
+ setflag FLAG_RECEIVED_TM03
release
end
@@ -124,7 +124,7 @@ SootopolisCity_Gym_1F_EventScript_15B07A:: @ 815B07A
SootopolisCity_Gym_1F_EventScript_15B084:: @ 815B084
lock
faceplayer
- checkflag 1236
+ checkflag FLAG_DEFEATED_SOOTOPOLIS_GYM
goto_if_eq SootopolisCity_Gym_1F_EventScript_15B099
msgbox SootopolisCity_Gym_1F_Text_18E8A5, 4
release
@@ -137,14 +137,14 @@ SootopolisCity_Gym_1F_EventScript_15B099:: @ 815B099
SootopolisCity_Gym_1F_EventScript_15B0A3:: @ 815B0A3
lockall
- checkflag 2062
+ checkflag FLAG_BADGE08_GET
goto_if_eq SootopolisCity_Gym_1F_EventScript_15B0C3
goto SootopolisCity_Gym_1F_EventScript_15B0CD
end
SootopolisCity_Gym_1F_EventScript_15B0B3:: @ 815B0B3
lockall
- checkflag 2062
+ checkflag FLAG_BADGE08_GET
goto_if_eq 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 4877d6d6e..074c9a179 100644
--- a/data/scripts/maps/SootopolisCity_House1.inc
+++ b/data/scripts/maps/SootopolisCity_House1.inc
@@ -4,11 +4,11 @@ SootopolisCity_House1_MapScripts:: @ 815B29A
SootopolisCity_House1_EventScript_15B29B:: @ 815B29B
lock
faceplayer
- checkflag 121
+ checkflag FLAG_RECEIVED_TM31
goto_if_eq SootopolisCity_House1_EventScript_15B2C7
msgbox SootopolisCity_House1_Text_18F991, 4
- giveitem ITEM_TM31
- setflag 121
+ giveitem_std ITEM_TM31
+ setflag FLAG_RECEIVED_TM31
msgbox SootopolisCity_House1_Text_18FA03, 4
release
end
@@ -22,8 +22,8 @@ SootopolisCity_House1_EventScript_15B2D1:: @ 815B2D1
lock
faceplayer
waitse
- playpokecry SPECIES_KECLEON, 0
+ playmoncry SPECIES_KECLEON, 0
msgbox SootopolisCity_House1_Text_18FA50, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/SootopolisCity_House4.inc b/data/scripts/maps/SootopolisCity_House4.inc
index c192a0340..b552cc6d6 100644
--- a/data/scripts/maps/SootopolisCity_House4.inc
+++ b/data/scripts/maps/SootopolisCity_House4.inc
@@ -13,8 +13,8 @@ SootopolisCity_House4_EventScript_15B35F:: @ 815B35F
lock
faceplayer
waitse
- playpokecry SPECIES_AZUMARILL, 0
+ playmoncry SPECIES_AZUMARILL, 0
msgbox SootopolisCity_House4_Text_18FDD8, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/SootopolisCity_House6.inc b/data/scripts/maps/SootopolisCity_House6.inc
index a0fdc5ca4..fb91202f3 100644
--- a/data/scripts/maps/SootopolisCity_House6.inc
+++ b/data/scripts/maps/SootopolisCity_House6.inc
@@ -4,16 +4,16 @@ SootopolisCity_House6_MapScripts:: @ 815B385
SootopolisCity_House6_EventScript_15B386:: @ 815B386
lock
faceplayer
- checkflag 245
+ 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
msgbox SootopolisCity_House6_Text_18FF12, 4
- givedecoration 117
+ givedecoration_std DECOR_WAILMER_DOLL
compare RESULT, 0
goto_if_eq SootopolisCity_House6_EventScript_15B3D7
- setflag 245
+ setflag FLAG_RECEIVED_WAILMER_DOLL
release
end
@@ -28,7 +28,7 @@ SootopolisCity_House6_EventScript_15B3CD:: @ 815B3CD
end
SootopolisCity_House6_EventScript_15B3D7:: @ 815B3D7
- getdecorname 1, 117
+ bufferdecorationname 1, DECOR_WAILMER_DOLL
msgbox SootopolisCity_House6_Text_1A0CEF, 4
msgbox SootopolisCity_House6_Text_18FF28, 4
release
diff --git a/data/scripts/maps/SootopolisCity_House8.inc b/data/scripts/maps/SootopolisCity_House8.inc
index df536004e..bdff79375 100644
--- a/data/scripts/maps/SootopolisCity_House8.inc
+++ b/data/scripts/maps/SootopolisCity_House8.inc
@@ -38,7 +38,7 @@ SootopolisCity_House8_EventScript_15B45C:: @ 815B45C
SootopolisCity_House8_EventScript_15B466:: @ 815B466
msgbox SootopolisCity_House8_Text_19021D, 4
- giveitem ITEM_ELIXIR
+ giveitem_std ITEM_ELIXIR
compare RESULT, 0
goto_if_eq SootopolisCity_House8_EventScript_15B488
closemessage
@@ -87,7 +87,7 @@ SootopolisCity_House8_EventScript_15B4ED:: @ 815B4ED
SootopolisCity_House8_EventScript_15B4F7:: @ 815B4F7
msgbox SootopolisCity_House8_Text_190536, 4
- giveitem ITEM_ELIXIR
+ giveitem_std ITEM_ELIXIR
compare RESULT, 0
goto_if_eq SootopolisCity_House8_EventScript_15B519
closemessage
diff --git a/data/scripts/maps/SootopolisCity_Mart.inc b/data/scripts/maps/SootopolisCity_Mart.inc
index b88347002..115ed0453 100644
--- a/data/scripts/maps/SootopolisCity_Mart.inc
+++ b/data/scripts/maps/SootopolisCity_Mart.inc
@@ -29,9 +29,9 @@ SootopolisCity_Mart_Items:: @ 815B234
SootopolisCity_Mart_EventScript_15B24A:: @ 815B24A
lock
faceplayer
- checkflag 113
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
goto_if_eq SootopolisCity_Mart_EventScript_15B268
- checkflag 129
+ checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
goto_if 0, SootopolisCity_Mart_EventScript_15B268
msgbox SootopolisCity_Mart_Text_18F8D7, 4
release
@@ -45,9 +45,9 @@ SootopolisCity_Mart_EventScript_15B268:: @ 815B268
SootopolisCity_Mart_EventScript_15B272:: @ 815B272
lock
faceplayer
- checkflag 113
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
goto_if_eq SootopolisCity_Mart_EventScript_15B290
- checkflag 129
+ checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
goto_if 0, SootopolisCity_Mart_EventScript_15B290
msgbox SootopolisCity_Mart_Text_18F96B, 4
release
diff --git a/data/scripts/maps/SootopolisCity_PokemonCenter_1F.inc b/data/scripts/maps/SootopolisCity_PokemonCenter_1F.inc
index cb09d8856..7b87bc7fc 100644
--- a/data/scripts/maps/SootopolisCity_PokemonCenter_1F.inc
+++ b/data/scripts/maps/SootopolisCity_PokemonCenter_1F.inc
@@ -3,23 +3,23 @@ SootopolisCity_PokemonCenter_1F_MapScripts:: @ 815B190
.byte 0
SootopolisCity_PokemonCenter_1F_MapScript1_15B196:: @ 815B196
- sethealplace 10
+ setrespawn 10
end
@ 815B19A
setvar 0x800B, 1
call VerdanturfTown_PokemonCenter_1F_EventScript_19FD5B
waitmessage
- waitbutton
+ waitbuttonpress
release
end
SootopolisCity_PokemonCenter_1F_EventScript_15B1A8:: @ 815B1A8
lock
faceplayer
- checkflag 113
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
goto_if_eq SootopolisCity_PokemonCenter_1F_EventScript_15B1C6
- checkflag 129
+ checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
goto_if 0, SootopolisCity_PokemonCenter_1F_EventScript_15B1C6
msgbox SootopolisCity_PokemonCenter_1F_Text_18F770, 4
release
@@ -33,9 +33,9 @@ SootopolisCity_PokemonCenter_1F_EventScript_15B1C6:: @ 815B1C6
SootopolisCity_PokemonCenter_1F_EventScript_15B1D0:: @ 815B1D0
lock
faceplayer
- checkflag 113
+ checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
goto_if_eq SootopolisCity_PokemonCenter_1F_EventScript_15B1EE
- checkflag 129
+ checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
goto_if 0, SootopolisCity_PokemonCenter_1F_EventScript_15B1EE
msgbox SootopolisCity_PokemonCenter_1F_Text_18F860, 4
release
diff --git a/data/scripts/maps/SouthernIsland_Exterior.inc b/data/scripts/maps/SouthernIsland_Exterior.inc
index 3c6426024..f62becf08 100644
--- a/data/scripts/maps/SouthernIsland_Exterior.inc
+++ b/data/scripts/maps/SouthernIsland_Exterior.inc
@@ -3,7 +3,7 @@ SouthernIsland_Exterior_MapScripts:: @ 8160AD6
.byte 0
SouthernIsland_Exterior_MapScript1_160ADC:: @ 8160ADC
- setflag 2121
+ setflag FLAG_LANDMARK_SOUTHERN_ISLAND
end
SouthernIsland_Exterior_EventScript_160AE0:: @ 8160AE0
@@ -17,10 +17,10 @@ SouthernIsland_Exterior_EventScript_160AE0:: @ 8160AE0
applymovement LAST_TALKED, SouthernIsland_Exterior_Movement_1A0845
waitmovement 0
delay 30
- hideobject 1, 26, 9
+ hideobjectat 1, MAP_SOUTHERN_ISLAND_EXTERIOR
setvar 0x8004, 2
call SouthernIsland_Exterior_EventScript_1A047C
- warp LilycoveCity_Harbor, 255, 8, 11
+ warp MAP_LILYCOVE_CITY_HARBOR, 255, 8, 11
waitstate
release
end
diff --git a/data/scripts/maps/SouthernIsland_Interior.inc b/data/scripts/maps/SouthernIsland_Interior.inc
index bcb316f96..ea2f852f4 100644
--- a/data/scripts/maps/SouthernIsland_Interior.inc
+++ b/data/scripts/maps/SouthernIsland_Interior.inc
@@ -4,7 +4,7 @@ SouthernIsland_Interior_MapScripts:: @ 8160B53
.byte 0
SouthernIsland_Interior_MapScript1_160B5E:: @ 8160B5E
- checkflag 2145
+ checkflag FLAG_SYS_CTRL_OBJ_DELETE
call_if 1, SouthernIsland_Interior_EventScript_160B68
end
@@ -44,19 +44,19 @@ SouthernIsland_Interior_EventScript_160B9B:: @ 8160B9B
end
SouthernIsland_Interior_EventScript_160BA7:: @ 8160BA7
- checkflag 206
+ checkflag FLAG_ECOUNTERED_LATIAS_OR_LATIOS
goto_if_eq SouthernIsland_Interior_EventScript_160C08
- checkflag 2131
+ checkflag FLAG_SYS_HAS_EON_TICKET
goto_if 0, SouthernIsland_Interior_EventScript_160C08
- setflag 206
+ setflag FLAG_ECOUNTERED_LATIAS_OR_LATIOS
special SpawnCameraDummy
applymovement 127, SouthernIsland_Interior_Movement_160C12
waitmovement 0
delay 50
waitse
- playpokecry SPECIES_LATIAS_OR_LATIOS, 0
+ playmoncry SPECIES_LATIAS_OR_LATIOS, 0
delay 30
- waitpokecry
+ waitmoncry
addobject 2
delay 30
applymovement 127, SouthernIsland_Interior_Movement_160C16
@@ -65,11 +65,11 @@ SouthernIsland_Interior_EventScript_160BA7:: @ 8160BA7
delay 50
special RemoveCameraDummy
setwildbattle SPECIES_LATIAS_OR_LATIOS, 50, ITEM_SOUL_DEW
- setflag 911
- setflag 2145
+ setflag FLAG_HIDE_LATIOS_OR_LATIAS_STATIONARY
+ setflag FLAG_SYS_CTRL_OBJ_DELETE
special ScrSpecial_StartSouthernIslandBattle
waitstate
- clearflag 2145
+ clearflag FLAG_SYS_CTRL_OBJ_DELETE
releaseall
end
diff --git a/data/scripts/maps/Underwater_Route134.inc b/data/scripts/maps/Underwater_Route134.inc
index bbe7e1ce2..464731b10 100644
--- a/data/scripts/maps/Underwater_Route134.inc
+++ b/data/scripts/maps/Underwater_Route134.inc
@@ -3,5 +3,5 @@ Underwater_Route134_MapScripts:: @ 815F071
.byte 0
Underwater_Route134_MapScript1_15F077:: @ 815F077
- setdivewarp Route134, 255, 60, 31
+ setdivewarp MAP_ROUTE134, 255, 60, 31
end
diff --git a/data/scripts/maps/Underwater_SeafloorCavern.inc b/data/scripts/maps/Underwater_SeafloorCavern.inc
index 3d2fe81b2..d991a7096 100644
--- a/data/scripts/maps/Underwater_SeafloorCavern.inc
+++ b/data/scripts/maps/Underwater_SeafloorCavern.inc
@@ -5,37 +5,37 @@ Underwater_SeafloorCavern_MapScripts:: @ 815D99E
.byte 0
Underwater_SeafloorCavern_MapScript1_15D9AE:: @ 815D9AE
- setflag 2119
- checkflag 129
+ setflag FLAG_LANDMARK_SEAFLOOR_CAVERN
+ checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
goto_if_eq Underwater_SeafloorCavern_EventScript_15D9BB
end
Underwater_SeafloorCavern_EventScript_15D9BB:: @ 815D9BB
- setflag 980
+ setflag FLAG_HIDE_UNDERWATER_SUBMARINE_INTERACTION
end
Underwater_SeafloorCavern_MapScript1_15D9BF:: @ 815D9BF
- checkflag 129
+ checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
call_if 1, Underwater_SeafloorCavern_EventScript_15D9C9
end
Underwater_SeafloorCavern_EventScript_15D9C9:: @ 815D9C9
- setmaptile 5, 3, 542, 1
- setmaptile 6, 3, 542, 1
- setmaptile 7, 3, 542, 1
- setmaptile 8, 3, 542, 1
- setmaptile 5, 4, 552, 0
- setmaptile 6, 4, 552, 0
- setmaptile 7, 4, 552, 0
- setmaptile 8, 4, 552, 0
- setmaptile 5, 5, 552, 0
- setmaptile 6, 5, 552, 0
- setmaptile 7, 5, 552, 0
- setmaptile 8, 5, 552, 0
+ setmetatile 5, 3, 542, 1
+ setmetatile 6, 3, 542, 1
+ setmetatile 7, 3, 542, 1
+ setmetatile 8, 3, 542, 1
+ setmetatile 5, 4, 552, 0
+ setmetatile 6, 4, 552, 0
+ setmetatile 7, 4, 552, 0
+ setmetatile 8, 4, 552, 0
+ setmetatile 5, 5, 552, 0
+ setmetatile 6, 5, 552, 0
+ setmetatile 7, 5, 552, 0
+ setmetatile 8, 5, 552, 0
return
Underwater_SeafloorCavern_MapScript1_15DA36:: @ 815DA36
- setdivewarp SeafloorCavern_Entrance, 255, 10, 17
+ setdivewarp MAP_SEAFLOOR_CAVERN_ENTRANCE, 255, 10, 17
end
Underwater_SeafloorCavern_EventScript_15DA3F:: @ 815DA3F
diff --git a/data/scripts/maps/Underwater_SealedChamber.inc b/data/scripts/maps/Underwater_SealedChamber.inc
index 836ad86e2..cb5c713ee 100644
--- a/data/scripts/maps/Underwater_SealedChamber.inc
+++ b/data/scripts/maps/Underwater_SealedChamber.inc
@@ -11,17 +11,17 @@ Underwater_SealedChamber_MapScript1_15F086:: @ 815F086
goto Underwater_SealedChamber_EventScript_15F0AF
Underwater_SealedChamber_EventScript_15F0A6:: @ 815F0A6
- setdivewarp Route134, 255, 60, 31
+ setdivewarp MAP_ROUTE134, 255, 60, 31
end
Underwater_SealedChamber_EventScript_15F0AF:: @ 815F0AF
- setdivewarp SealedChamber_OuterRoom, 255, 10, 19
+ setdivewarp MAP_SEALED_CHAMBER_OUTER_ROOM, 255, 10, 19
end
Underwater_SealedChamber_EventScript_15F0B8:: @ 815F0B8
lockall
braillemessage Underwater_SealedChamber_Braille_1C533D
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
diff --git a/data/scripts/maps/Underwater_SootopolisCity.inc b/data/scripts/maps/Underwater_SootopolisCity.inc
index c9405dfd7..bba04eec8 100644
--- a/data/scripts/maps/Underwater_SootopolisCity.inc
+++ b/data/scripts/maps/Underwater_SootopolisCity.inc
@@ -3,5 +3,5 @@ Underwater_SootopolisCity_MapScripts:: @ 815CAE4
.byte 0
Underwater_SootopolisCity_MapScript1_15CAEA:: @ 815CAEA
- setdivewarp SootopolisCity, 255, 29, 53
+ setdivewarp MAP_SOOTOPOLIS_CITY, 255, 29, 53
end
diff --git a/data/scripts/maps/UnknownMap_25_34.inc b/data/scripts/maps/UnknownMap_25_34.inc
index 34d0bb70b..1e0f14728 100644
--- a/data/scripts/maps/UnknownMap_25_34.inc
+++ b/data/scripts/maps/UnknownMap_25_34.inc
@@ -68,7 +68,7 @@ LinkContestRoom1_EventScript_15F61A:: @ 815F61A
end
LinkContestRoom1_EventScript_15F625:: @ 815F625
- hideobject 255, 0, 9
+ hideobjectat 255, MAP_LITTLEROOT_TOWN
call LinkContestRoom1_EventScript_15F919
end
@@ -382,30 +382,30 @@ LinkContestRoom1_EventScript_15FB64:: @ 815FB64
LinkContestRoom1_EventScript_15FBA1:: @ 815FBA1
incrementgamestat GAME_STAT_ENTERED_CONTEST
- warp VerdanturfTown_ContestLobby, 255, 5, 4
+ warp MAP_VERDANTURF_TOWN_CONTEST_LOBBY, 255, 5, 4
waitstate
end
LinkContestRoom1_EventScript_15FBAD:: @ 815FBAD
incrementgamestat GAME_STAT_ENTERED_CONTEST
- warp FallarborTown_ContestLobby, 255, 5, 4
+ warp MAP_FALLARBOR_TOWN_CONTEST_LOBBY, 255, 5, 4
waitstate
end
LinkContestRoom1_EventScript_15FBB9:: @ 815FBB9
incrementgamestat GAME_STAT_ENTERED_CONTEST
- warp SlateportCity_ContestLobby, 255, 5, 4
+ warp MAP_SLATEPORT_CITY_CONTEST_LOBBY, 255, 5, 4
waitstate
end
LinkContestRoom1_EventScript_15FBC5:: @ 815FBC5
incrementgamestat GAME_STAT_ENTERED_CONTEST
- warp LilycoveCity_ContestLobby, 255, 6, 4
+ warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 255, 6, 4
waitstate
end
LinkContestRoom1_EventScript_15FBD1:: @ 815FBD1
- warp LilycoveCity_ContestLobby, 255, 7, 4
+ warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 255, 7, 4
waitstate
end
diff --git a/data/scripts/maps/VerdanturfTown.inc b/data/scripts/maps/VerdanturfTown.inc
index 3e8f02302..b9e9b85a5 100644
--- a/data/scripts/maps/VerdanturfTown.inc
+++ b/data/scripts/maps/VerdanturfTown.inc
@@ -3,15 +3,15 @@ VerdanturfTown_MapScripts:: @ 814E854
.byte 0
VerdanturfTown_MapScript1_14E85A:: @ 814E85A
- setflag 2068
+ setflag FLAG_VISITED_VERDANTURF_TOWN
setvar 0x4086, 0
- setflag 801
+ setflag FLAG_HIDE_CONTEST_REPORTER_VERDANTURF
end
VerdanturfTown_EventScript_14E866:: @ 814E866
lock
faceplayer
- checkflag 199
+ checkflag FLAG_RUSTURF_TUNNEL_OPENED
goto_if_eq VerdanturfTown_EventScript_14E885
msgbox VerdanturfTown_Text_16CAEB, 4
applymovement 2, VerdanturfTown_Movement_1A083D
@@ -37,7 +37,7 @@ VerdanturfTown_EventScript_14E8A2:: @ 814E8A2
VerdanturfTown_EventScript_14E8AB:: @ 814E8AB
lock
faceplayer
- checkflag 199
+ checkflag FLAG_RUSTURF_TUNNEL_OPENED
goto_if_eq VerdanturfTown_EventScript_14E8C0
msgbox VerdanturfTown_Text_16CD4D, 4
release
diff --git a/data/scripts/maps/VerdanturfTown_ContestLobby.inc b/data/scripts/maps/VerdanturfTown_ContestLobby.inc
index 8462892e6..3694f089d 100644
--- a/data/scripts/maps/VerdanturfTown_ContestLobby.inc
+++ b/data/scripts/maps/VerdanturfTown_ContestLobby.inc
@@ -14,7 +14,7 @@ VerdanturfTown_ContestLobby_EventScript_153D76:: @ 8153D76
special sub_80C4BF0
call VerdanturfTown_ContestLobby_EventScript_15FBDB
setvar 0x4088, 1
- warp LinkContestRoom1, 255, 7, 5
+ warp MAP_LINK_CONTEST_ROOM1, 255, 7, 5
waitstate
end
@@ -23,14 +23,14 @@ VerdanturfTown_ContestLobby_EventScript_153DA1:: @ 8153DA1
applymovement 1, VerdanturfTown_ContestLobby_Movement_153E25
waitmovement 0
playse 71
- setmaptile 4, 2, 545, 1
- setmaptile 4, 3, 609, 1
+ setmetatile 4, 2, 545, 1
+ setmetatile 4, 3, 609, 1
special DrawWholeMapView
applymovement 1, VerdanturfTown_ContestLobby_Movement_153E28
waitmovement 0
playse 71
- setmaptile 4, 2, 721, 1
- setmaptile 4, 3, 729, 1
+ setmetatile 4, 2, 721, 1
+ setmetatile 4, 3, 729, 1
special DrawWholeMapView
delay 20
applymovement 1, VerdanturfTown_ContestLobby_Movement_153E35
@@ -101,13 +101,13 @@ VerdanturfTown_ContestLobby_EventScript_153E3E:: @ 8153E3E
VerdanturfTown_ContestLobby_EventScript_153E47:: @ 8153E47
lock
faceplayer
- checkflag 235
+ checkflag FLAG_RECEIVED_TM45
goto_if_eq VerdanturfTown_ContestLobby_EventScript_153E76
msgbox VerdanturfTown_ContestLobby_Text_177DEC, 4
- giveitem ITEM_TM45
+ giveitem_std ITEM_TM45
compare RESULT, 0
goto_if_eq VerdanturfTown_ContestLobby_EventScript_1A029B
- setflag 235
+ setflag FLAG_RECEIVED_TM45
release
end
@@ -123,7 +123,7 @@ VerdanturfTown_ContestLobby_EventScript_153E80:: @ 8153E80
VerdanturfTown_ContestLobby_EventScript_153E89:: @ 8153E89
lockall
special ShowBerryBlenderRecordWindow
- waitbutton
+ waitbuttonpress
erasebox 0, 0, 29, 19
releaseall
end
diff --git a/data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.inc b/data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.inc
index 1cfa785d3..ed60ec1c7 100644
--- a/data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.inc
+++ b/data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.inc
@@ -56,8 +56,8 @@ VerdanturfTown_FriendshipRatersHouse_EventScript_1540D9:: @ 81540D9
lock
faceplayer
waitse
- playpokecry SPECIES_PIKACHU, 0
+ playmoncry SPECIES_PIKACHU, 0
msgbox VerdanturfTown_FriendshipRatersHouse_Text_178CFD, 4
- waitpokecry
+ waitmoncry
release
end
diff --git a/data/scripts/maps/VerdanturfTown_PokemonCenter_1F.inc b/data/scripts/maps/VerdanturfTown_PokemonCenter_1F.inc
index a0b1f87de..598c3f60b 100644
--- a/data/scripts/maps/VerdanturfTown_PokemonCenter_1F.inc
+++ b/data/scripts/maps/VerdanturfTown_PokemonCenter_1F.inc
@@ -3,7 +3,7 @@ VerdanturfTown_PokemonCenter_1F_MapScripts:: @ 8153F09
.byte 0
VerdanturfTown_PokemonCenter_1F_MapScript1_153F0F:: @ 8153F0F
- sethealplace 18
+ setrespawn 18
call VerdanturfTown_PokemonCenter_1F_EventScript_19FD1B
end
@@ -12,7 +12,7 @@ VerdanturfTown_PokemonCenter_1F_EventScript_153F18:: @ 8153F18
setvar 0x800b, 1
call VerdanturfTown_PokemonCenter_1F_EventScript_19FD5B
waitmessage
- waitbutton
+ waitbuttonpress
release
end
diff --git a/data/scripts/maps/VerdanturfTown_WandasHouse.inc b/data/scripts/maps/VerdanturfTown_WandasHouse.inc
index fad64292b..205a4315c 100644
--- a/data/scripts/maps/VerdanturfTown_WandasHouse.inc
+++ b/data/scripts/maps/VerdanturfTown_WandasHouse.inc
@@ -4,10 +4,10 @@ VerdanturfTown_WandasHouse_MapScripts:: @ 8153F5A
VerdanturfTown_WandasHouse_EventScript_153F5B:: @ 8153F5B
lock
faceplayer
- checkflag 193
+ checkflag FLAG_WALLY_SPEECH
goto_if_eq VerdanturfTown_WandasHouse_EventScript_153F73
msgbox VerdanturfTown_WandasHouse_Text_1783F6, 4
- setflag 193
+ setflag FLAG_WALLY_SPEECH
release
end
@@ -19,9 +19,9 @@ VerdanturfTown_WandasHouse_EventScript_153F73:: @ 8153F73
VerdanturfTown_WandasHouse_EventScript_153F7D:: @ 8153F7D
lock
faceplayer
- checkflag 126
+ checkflag FLAG_DEFEATED_WALLY_VICTORY_ROAD
goto_if_eq VerdanturfTown_WandasHouse_EventScript_153FA5
- checkflag 1213
+ checkflag FLAG_DEFEATED_LAVARIDGE_GYM
goto_if_eq VerdanturfTown_WandasHouse_EventScript_153F9B
msgbox VerdanturfTown_WandasHouse_Text_17859A, 4
release
@@ -44,9 +44,9 @@ VerdanturfTown_WandasHouse_EventScript_153FAF:: @ 8153FAF
VerdanturfTown_WandasHouse_EventScript_153FB8:: @ 8153FB8
lock
faceplayer
- checkflag 1213
+ checkflag FLAG_DEFEATED_LAVARIDGE_GYM
goto_if_eq VerdanturfTown_WandasHouse_EventScript_153FE0
- checkflag 190
+ checkflag FLAG_DEFEATED_WALLY_MAUVILLE
goto_if_eq VerdanturfTown_WandasHouse_EventScript_153FD6
msgbox VerdanturfTown_WandasHouse_Text_1787FB, 4
release
@@ -65,11 +65,11 @@ VerdanturfTown_WandasHouse_EventScript_153FE0:: @ 8153FE0
VerdanturfTown_WandasHouse_EventScript_153FEA:: @ 8153FEA
lock
faceplayer
- checkflag 126
+ checkflag FLAG_DEFEATED_WALLY_VICTORY_ROAD
goto_if_eq VerdanturfTown_WandasHouse_EventScript_154025
- checkflag 1213
+ checkflag FLAG_DEFEATED_LAVARIDGE_GYM
goto_if_eq VerdanturfTown_WandasHouse_EventScript_15401B
- checkflag 199
+ checkflag FLAG_RUSTURF_TUNNEL_OPENED
goto_if_eq VerdanturfTown_WandasHouse_EventScript_154011
msgbox VerdanturfTown_WandasHouse_Text_1788B1, 4
release
diff --git a/data/scripts/maps/VictoryRoad_1F.inc b/data/scripts/maps/VictoryRoad_1F.inc
index fe775d793..7e48d3d90 100644
--- a/data/scripts/maps/VictoryRoad_1F.inc
+++ b/data/scripts/maps/VictoryRoad_1F.inc
@@ -3,12 +3,12 @@ VictoryRoad_1F_MapScripts:: @ 815DE83
.byte 0
VictoryRoad_1F_MapScript1_15DE89:: @ 815DE89
- checkflag 126
+ checkflag FLAG_DEFEATED_WALLY_VICTORY_ROAD
call_if 1, VictoryRoad_1F_EventScript_15DE93
end
VictoryRoad_1F_EventScript_15DE93:: @ 815DE93
- setflag 858
+ setflag FLAG_HIDE_WALLY_BATTLE_VICTORY_ROAD
return
VictoryRoad_1F_EventScript_15DE97:: @ 815DE97
@@ -41,9 +41,9 @@ VictoryRoad_1F_EventScript_15DED3:: @ 815DED3
msgbox VictoryRoad_1F_Text_19782B, 4
trainerbattle 3, OPPONENT_WALLY_1, 0, VictoryRoad_1F_Text_197943
msgbox VictoryRoad_1F_Text_197967, 4
- clearflag 858
+ clearflag FLAG_HIDE_WALLY_BATTLE_VICTORY_ROAD
moveobjectoffscreen 4
- setflag 126
+ setflag FLAG_DEFEATED_WALLY_VICTORY_ROAD
setvar 0x40c3, 1
releaseall
end
diff --git a/data/scripts/mauville_man.inc b/data/scripts/mauville_man.inc
index 402afae23..3ccfbeb29 100644
--- a/data/scripts/mauville_man.inc
+++ b/data/scripts/mauville_man.inc
@@ -1,11 +1,4 @@
-@ From mauville_old_man.h
-@ TODO: Put these in a header
-
-MAUVILLE_MAN_BARD = 0
-MAUVILLE_MAN_HIPSTER = 1
-MAUVILLE_MAN_TRADER = 2
-MAUVILLE_MAN_STORYTELLER = 3
-MAUVILLE_MAN_GIDDY = 4
+#include "constants/mauville_man.h"
MauvilleCity_PokemonCenter_1F_EventScript_1AE744:: @ 81AE744
special ScrSpecial_GetCurrentMauvilleMan
@@ -91,7 +84,7 @@ dont_write_lyrics:
SpeakToHipster:
lock
faceplayer
- setflag 2054
+ setflag FLAG_SYS_HIPSTER_MEET
msgbox gTextHipster_TheyCallMeTheHipster, 4
special ScrSpecial_GetHipsterSpokenFlag
compare RESULT, FALSE
@@ -240,7 +233,7 @@ choose_story:
setvar 0x8008, 1
special ScrSpecial_StorytellerDisplayStory
waitmessage
- waitbutton
+ waitbuttonpress
specialvar RESULT, ScrSpecial_StorytellerUpdateStat
compare RESULT, FALSE
goto_if_eq no_stat_update
diff --git a/data/scripts/mystery_event_club.inc b/data/scripts/mystery_event_club.inc
index df097fc19..d8f628709 100644
--- a/data/scripts/mystery_event_club.inc
+++ b/data/scripts/mystery_event_club.inc
@@ -1,7 +1,7 @@
PetalburgCity_PokemonCenter_1F_EventScript_1B1B14:: @ 81B1B14
lock
faceplayer
- checkflag 2053
+ checkflag FLAG_SYS_CHAT_USED
goto_if_eq PetalburgCity_PokemonCenter_1F_EventScript_1B1BDB
msgbox PetalburgCity_PokemonCenter_1F_Text_1B1C97, 4
goto PetalburgCity_PokemonCenter_1F_EventScript_1B1B2D
@@ -97,11 +97,11 @@ PetalburgCity_PokemonCenter_1F_EventScript_1B1C6D:: @ 81B1C6D
end
PetalburgCity_PokemonCenter_1F_EventScript_1B1C77:: @ 81B1C77
- checkflag 2059
+ checkflag FLAG_BADGE05_GET
goto_if 0, PetalburgCity_PokemonCenter_1F_EventScript_1B1C96
- checkflag 2124
+ checkflag FLAG_SYS_EXDATA_ENABLE
goto_if_eq PetalburgCity_PokemonCenter_1F_EventScript_1B1C96
- setflag 2124
+ setflag FLAG_SYS_EXDATA_ENABLE
msgbox PetalburgCity_PokemonCenter_1F_Text_1B21CC, 3
release
end
diff --git a/data/scripts/players_house.inc b/data/scripts/players_house.inc
index 69a4dc3e9..ea8128ee3 100644
--- a/data/scripts/players_house.inc
+++ b/data/scripts/players_house.inc
@@ -59,15 +59,15 @@ LittlerootTown_MaysHouse_2F_EventScript_1B69DF:: @ 81B69DF
LittlerootTown_BrendansHouse_2F_EventScript_1B69EB:: @ 81B69EB
LittlerootTown_MaysHouse_2F_EventScript_1B69EB:: @ 81B69EB
- checkflag 81
+ checkflag FLAG_SET_WALL_CLOCK
goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_1B6A91
msgbox LittlerootTown_BrendansHouse_2F_Text_172E18, 4
call LittlerootTown_BrendansHouse_2F_EventScript_1B6A9B
delay 30
setvar 0x4092, 6
- setflag 81
- setflag 754
- setflag 755
+ setflag FLAG_SET_WALL_CLOCK
+ setflag FLAG_HIDE_MACHOKE_MOVER_1
+ setflag FLAG_HIDE_MACHOKE_MOVER_2
checkplayergender
compare RESULT, 0
call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_1B6A31
@@ -222,7 +222,7 @@ LittlerootTown_MaysHouse_1F_EventScript_1B6BBE:: @ 81B6BBE
msgbox LittlerootTown_BrendansHouse_1F_Text_172841, 4
fadedefaultbgm
special TurnOffTVScreen
- setflag 2096
+ setflag FLAG_SYS_TV_HOME
delay 35
return
@@ -256,9 +256,9 @@ LittlerootTown_MaysHouse_1F_EventScript_1B6BE9:: @ 81B6BE9
goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6C33
compare 0x408c, 4
goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6C33
- checkflag 2059
+ checkflag FLAG_BADGE05_GET
goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6C3D
- checkflag 82
+ checkflag FLAG_RESCUED_BIRCH
goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6C72
compare 0x4001, 1
goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6C80
@@ -274,14 +274,14 @@ LittlerootTown_BrendansHouse_1F_EventScript_1B6C33:: @ 81B6C33
end
LittlerootTown_BrendansHouse_1F_EventScript_1B6C3D:: @ 81B6C3D
- checkflag 133
+ checkflag FLAG_RECEIVED_AMULET_COIN
goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6C72
msgbox LittlerootTown_BrendansHouse_1F_Text_172782, 4
- giveitem ITEM_AMULET_COIN
+ giveitem_std ITEM_AMULET_COIN
compare RESULT, 0
goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1A029B
msgbox LittlerootTown_BrendansHouse_1F_Text_1727CD, 4
- setflag 133
+ setflag FLAG_RECEIVED_AMULET_COIN
release
end
@@ -313,9 +313,9 @@ LittlerootTown_MaysHouse_1F_EventScript_1B6CA6:: @ 81B6CA6
lock
faceplayer
waitse
- playpokecry SPECIES_MACHOKE, 0
+ playmoncry SPECIES_MACHOKE, 0
msgbox LittlerootTown_BrendansHouse_1F_Text_17281D, 4
- waitpokecry
+ waitmoncry
release
end
@@ -324,9 +324,9 @@ LittlerootTown_MaysHouse_1F_EventScript_1B6CB9:: @ 81B6CB9
lock
faceplayer
waitse
- playpokecry SPECIES_MACHOKE, 0
+ playmoncry SPECIES_MACHOKE, 0
msgbox LittlerootTown_BrendansHouse_1F_Text_172831, 4
- waitpokecry
+ waitmoncry
release
end
@@ -383,7 +383,7 @@ LittlerootTown_MaysHouse_1F_EventScript_1B6CDE:: @ 81B6CDE
compare 0x8008, 1
call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1B6DD8
msgbox LittlerootTown_BrendansHouse_1F_Text_17298B, 4
- giveitem ITEM_SS_TICKET
+ giveitem_std ITEM_SS_TICKET
msgbox LittlerootTown_BrendansHouse_1F_Text_172A7D, 4
closemessage
compare 0x8008, 0
@@ -398,7 +398,7 @@ LittlerootTown_MaysHouse_1F_EventScript_1B6CDE:: @ 81B6CDE
call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1B6E0B
playse 8
removeobject 0x8009
- setflag 291
+ setflag FLAG_RECEIVED_SS_TICKET
setvar 0x4082, 4
setvar 0x408c, 4
releaseall
diff --git a/data/scripts/pokeblocks.inc b/data/scripts/pokeblocks.inc
index 6fe754097..42e73e17c 100644
--- a/data/scripts/pokeblocks.inc
+++ b/data/scripts/pokeblocks.inc
@@ -76,7 +76,7 @@ FallarborTown_ContestLobby_EventScript_1B76EF:: @ 81B76EF
FallarborTown_ContestLobby_EventScript_1B770E:: @ 81B770E
msgbox FallarborTown_ContestLobby_Text_1B6FF0, 4
dodailyevents
- checkflag 2241
+ checkflag FLAG_DAILY_RECEIVED_BERRY_FALLARBOR
goto_if_eq FallarborTown_ContestLobby_EventScript_1B774F
goto FallarborTown_ContestLobby_EventScript_1B7759
end
@@ -106,8 +106,8 @@ FallarborTown_ContestLobby_EventScript_1B774F:: @ 81B774F
FallarborTown_ContestLobby_EventScript_1B7759:: @ 81B7759
msgbox FallarborTown_ContestLobby_Text_1B704A, 4
- giveitem ITEM_PECHA_BERRY
- setflag 2241
+ giveitem_std ITEM_PECHA_BERRY
+ setflag FLAG_DAILY_RECEIVED_BERRY_FALLARBOR
goto FallarborTown_ContestLobby_EventScript_1B76EF
end
@@ -162,7 +162,7 @@ FallarborTown_ContestLobby_EventScript_1B77DC:: @ 81B77DC
FallarborTown_ContestLobby_EventScript_1B77E6:: @ 81B77E6
dodailyevents
- checkflag 2241
+ checkflag FLAG_DAILY_RECEIVED_BERRY_FALLARBOR
goto_if_eq FallarborTown_ContestLobby_EventScript_1B77F6
goto FallarborTown_ContestLobby_EventScript_1B7800
end
@@ -174,8 +174,8 @@ FallarborTown_ContestLobby_EventScript_1B77F6:: @ 81B77F6
FallarborTown_ContestLobby_EventScript_1B7800:: @ 81B7800
msgbox FallarborTown_ContestLobby_Text_1B74B4, 4
- giveitem ITEM_PECHA_BERRY
- setflag 2241
+ giveitem_std ITEM_PECHA_BERRY
+ setflag FLAG_DAILY_RECEIVED_BERRY_FALLARBOR
msgbox FallarborTown_ContestLobby_Text_1B753A, 4
release
end
diff --git a/data/scripts/safari_zone.inc b/data/scripts/safari_zone.inc
index d0283f072..892630ac8 100644
--- a/data/scripts/safari_zone.inc
+++ b/data/scripts/safari_zone.inc
@@ -1,13 +1,13 @@
gUnknown_081C340A:: @ 81C340A
setvar 0x40a4, 1
special ExitSafariMode
- setwarp Route121_SafariZoneEntrance, 255, 2, 5
+ setwarp MAP_ROUTE121_SAFARI_ZONE_ENTRANCE, 255, 2, 5
end
EventScript_1C341B: @ 81C341B
setvar 0x40a4, 1
special ExitSafariMode
- warp Route121_SafariZoneEntrance, 255, 2, 5
+ warp MAP_ROUTE121_SAFARI_ZONE_ENTRANCE, 255, 2, 5
waitstate
end
@@ -27,7 +27,7 @@ gUnknown_081C3448:: @ 81C3448
playse 73
message UnknownString_81C34E4
waitmessage
- waitbutton
+ waitbuttonpress
releaseall
goto EventScript_1C341B
@@ -36,7 +36,7 @@ gUnknown_081C3459:: @ 81C3459
playse 73
message UnknownString_81C3514
waitmessage
- waitbutton
+ waitbuttonpress
releaseall
goto EventScript_1C341B
@@ -62,13 +62,13 @@ EventScript_1C348E:
EventScript_1C34A0:
message UnknownString_81C35A9
waitmessage
- waitbutton
+ waitbuttonpress
releaseall
end
EventScript_1C34A9:
message UnknownString_81C3583
waitmessage
- waitbutton
+ waitbuttonpress
releaseall
end
diff --git a/data/scripts/secret_power_tm.inc b/data/scripts/secret_power_tm.inc
index f3c03a853..deb30187f 100644
--- a/data/scripts/secret_power_tm.inc
+++ b/data/scripts/secret_power_tm.inc
@@ -9,13 +9,13 @@ Route111_EventScript_1A3858:: @ 81A3858
end
Route111_EventScript_1A3877:: @ 81A3877
- giveitem ITEM_TM43
+ giveitem_std ITEM_TM43
compare RESULT, 0
goto_if_eq Route111_EventScript_1A38D9
msgbox Route111_Text_1A35C5, 4
closemessage
- setflag 96
- clearflag 948
+ setflag FLAG_RECEIVED_SECRET_POWER
+ clearflag FLAG_HIDE_TM_SALESMAN_SLATEPORT
compare FACING, 3
call_if 1, Route111_EventScript_1A38C3
compare FACING, 4
diff --git a/data/scripts/tv.inc b/data/scripts/tv.inc
index 425f42a85..cf5fb26c5 100644
--- a/data/scripts/tv.inc
+++ b/data/scripts/tv.inc
@@ -7,9 +7,9 @@ Event_TV:: @ 81A6E72
goto_if_eq EventScript_1A6F01
compare RESULT, 1
goto_if_eq EventScript_1A6F0B
- checkflag 2098
+ checkflag FLAG_SYS_TV_START
goto_if 0, EventScript_1A6EF1
- checkflag 2097
+ checkflag FLAG_SYS_TV_WATCH
goto_if_eq EventScript_1A6EF1
specialvar RESULT, IsTVShowInSearchOfTrainersAiring
compare RESULT, 1
@@ -49,8 +49,8 @@ EventScript_1A6F0B:
msgbox UnknownString_8172C50, 4
.endif
special InitRoamer
- clearflag 2141
- setflag 255
+ clearflag FLAG_SYS_TV_LATI
+ setflag FLAG_LATIOS_OR_LATIAS_ROAMING
special TurnOffTVScreen
releaseall
end
@@ -58,7 +58,7 @@ EventScript_1A6F0B:
EventScript_1A6F21:
special DoTVShow
waitmessage
- waitbutton
+ waitbuttonpress
compare RESULT, 1
goto_if 5, EventScript_1A6F21
goto EventScript_1A6F37
@@ -66,7 +66,7 @@ EventScript_1A6F21:
EventScript_1A6F37:
special TurnOffTVScreen
- setflag 2097
+ setflag FLAG_SYS_TV_WATCH
releaseall
end
@@ -81,14 +81,14 @@ EventScript_1A6F50:
compare RESULT, 0
goto_if_eq EventScript_1A6EBB
waitmessage
- waitbutton
+ waitbuttonpress
goto EventScript_1A6F37
end
EventScript_1A6F66:
special DoTVShowInSearchOfTrainers
waitmessage
- waitbutton
+ waitbuttonpress
compare RESULT, 0
goto_if_eq EventScript_1A6F66
goto EventScript_1A6F37
diff --git a/data/secret_base.s b/data/secret_base.s
deleted file mode 100644
index 59ded8ddf..000000000
--- a/data/secret_base.s
+++ /dev/null
@@ -1,77 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 1
-gUnknown_083D1358:: @ 83D1358
- .2byte 0x26, 0x36
- .2byte 0x27, 0x37
- .2byte 0x1A0, 0x1A1
- .2byte 0x1A8, 0x1A9
- .2byte 0x1B0, 0x1B1
- .2byte 0x208, 0x210
- .2byte 0x271, 0x278
-
-gUnknown_083D1374:: @ 83D1374
- .byte 0, 0
- .byte 1, 3
- .byte 6, 0
- .byte 5, 9
- .byte 12, 0
- .byte 1, 3
- .byte 18, 0
- .byte 7, 13
- .byte 1, 0
- .byte 2, 3
- .byte 7, 0
- .byte 9, 2
- .byte 13, 0
- .byte 13, 4
- .byte 19, 0
- .byte 1, 2
- .byte 2, 0
- .byte 1, 3
- .byte 8, 0
- .byte 1, 2
- .byte 14, 0
- .byte 3, 15
- .byte 20, 0
- .byte 3, 14
- .byte 3, 0
- .byte 9, 3
- .byte 9, 0
- .byte 8, 7
- .byte 15, 0
- .byte 3, 6
- .byte 21, 0
- .byte 5, 9
- .byte 4, 0
- .byte 2, 3
- .byte 10, 0
- .byte 5, 6
- .byte 16, 0
- .byte 15, 3
- .byte 22, 0
- .byte 4, 10
- .byte 5, 0
- .byte 3, 3
- .byte 11, 0
- .byte 1, 2
- .byte 17, 0
- .byte 7, 8
- .byte 23, 0
- .byte 9, 6
-
- .align 2
-gUnknown_083D13D4:: @ 83D13D4
- .4byte SecretBaseText_DelRegist, sub_80BCA84
- .4byte gUnknownText_Exit, sub_80BCBF8
-
- .align 2
-gUnknown_083D13E4:: @ 83D13E4
- .4byte sub_80BCB90
- .4byte sub_80BCBC0
-
-gUnknown_083D13EC:: @ 83D13EC
- .byte 0x23,0x24,0xF,0x1F,0x21,0x2F,0xE,0x14,0x20,0x22,0x0,0x0
diff --git a/data/slot_machine.s b/data/slot_machine.s
index 5f97c1f5e..9bd6fe5c9 100644
--- a/data/slot_machine.s
+++ b/data/slot_machine.s
@@ -534,23 +534,23 @@ gOamData_83ED0B8:: @ 83ED0B8
.align 2
gSpriteImageTable_83ED0C0:: @ 83ED0C0
- obj_frame_tiles 0x02013200, 0x800
- obj_frame_tiles 0x02013A00, 0x800
- obj_frame_tiles 0x02014200, 0x800
- obj_frame_tiles 0x02014A00, 0x800
- obj_frame_tiles 0x02015200, 0x800
+ 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 0x02015A00, 0x300
+ obj_frame_tiles gSharedMem + 0x15A00, 0x300
.align 2
gSpriteImageTable_83ED0F0:: @ 83ED0F0
- obj_frame_tiles 0x02015D00, 0x500
+ obj_frame_tiles gSharedMem + 0x15D00, 0x500
.align 2
gSpriteImageTable_83ED0F8:: @ 83ED0F8
- obj_frame_tiles 0x02016200, 0x600
+ obj_frame_tiles gSharedMem + 0x16200, 0x600
.align 2
gSpriteImageTable_83ED100:: @ 83ED100
@@ -593,67 +593,67 @@ gSpriteImageTable_83ED170:: @ 83ED170
.align 2
gSpriteImageTable_83ED178:: @ 83ED178
- obj_frame_tiles 0x02010000, 0x600
+ obj_frame_tiles gSharedMem + 0x10000, 0x600
.align 2
gSpriteImageTable_83ED180:: @ 83ED180
- obj_frame_tiles 0x02010600, 0x200
+ obj_frame_tiles gSharedMem + 0x10600, 0x200
.align 2
gSpriteImageTable_83ED188:: @ 83ED188
- obj_frame_tiles 0x02010800, 0x200
+ obj_frame_tiles gSharedMem + 0x10800, 0x200
.align 2
gSpriteImageTable_83ED190:: @ 83ED190
- obj_frame_tiles 0x02010A00, 0x200
+ obj_frame_tiles gSharedMem + 0x10A00, 0x200
.align 2
gSpriteImageTable_83ED198:: @ 83ED198
- obj_frame_tiles 0x02010C00, 0x300
+ obj_frame_tiles gSharedMem + 0x10C00, 0x300
.align 2
gSpriteImageTable_83ED1A0:: @ 83ED1A0
- obj_frame_tiles 0x02011000, 0x400
+ obj_frame_tiles gSharedMem + 0x11000, 0x400
.align 2
gSpriteImageTable_83ED1A8:: @ 83ED1A8
- obj_frame_tiles 0x02011400, 0x200
+ obj_frame_tiles gSharedMem + 0x11400, 0x200
.align 2
gSpriteImageTable_83ED1B0:: @ 83ED1B0
- obj_frame_tiles 0x02011600, 0x300
+ obj_frame_tiles gSharedMem + 0x11600, 0x300
.align 2
gSpriteImageTable_83ED1B8:: @ 83ED1B8
- obj_frame_tiles 0x02011900, 0x300
+ obj_frame_tiles gSharedMem + 0x11900, 0x300
.align 2
gSpriteImageTable_83ED1C0:: @ 83ED1C0
- obj_frame_tiles 0x02011C00, 0x200
- obj_frame_tiles 0x02011E00, 0x200
- obj_frame_tiles 0x02011E00, 0x200
+ 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 0x02012000, 0x280
+ obj_frame_tiles gSharedMem + 0x12000, 0x280
.align 2
gSpriteImageTable_83ED1E0:: @ 83ED1E0
- obj_frame_tiles 0x02012280, 0x80
- obj_frame_tiles 0x02012300, 0x80
- obj_frame_tiles 0x02012380, 0x80
- obj_frame_tiles 0x02012400, 0x80
- obj_frame_tiles 0x02012480, 0x80
+ 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 0x02012600, 0x480
- obj_frame_tiles 0x02012A80, 0x480
+ obj_frame_tiles gSharedMem + 0x12600, 0x480
+ obj_frame_tiles gSharedMem + 0x12A80, 0x480
.align 2
gSpriteImageTable_83ED218:: @ 83ED218
- obj_frame_tiles 0x02012F00, 0x180
- obj_frame_tiles 0x02013080, 0x180
+ obj_frame_tiles gSharedMem + 0x12F00, 0x180
+ obj_frame_tiles gSharedMem + 0x13080, 0x180
.align 2
gSpriteImageTable_83ED228:: @ 83ED228
@@ -1402,15 +1402,15 @@ gUnknown_083EDC2C:: @ 83EDC2C
obj_tiles gSlotMachineNumber7Tiles, 0x40, 14
obj_tiles gSlotMachineNumber8Tiles, 0x40, 15
obj_tiles gSlotMachineNumber9Tiles, 0x40, 16
- obj_tiles 0x2010a00, 0x200, 18
- obj_tiles 0x2011400, 0x200, 19
- obj_tiles 0x2011600, 0x300, 20
- obj_tiles 0x2011900, 0x300, 21
+ 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 0x02010000, 2048, 0x0011
+ obj_tiles gSharedMem + 0x10000, 2048, 0x0011
.align 2
gUnknown_083EDCE4:: @ 83EDCE4
diff --git a/data/specials.inc b/data/specials.inc
index 6ce9b5b1e..2924f2173 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -33,7 +33,7 @@ gSpecials::
def_special sub_8100A7C
def_special sub_80BBC78
def_special sub_80BCE4C
- def_special sub_80C683C
+ def_special DoSecretBasePCTurnOffEffect
def_special sub_80B929C
def_special sub_808347C
def_special sub_80834E4
@@ -51,7 +51,7 @@ gSpecials::
def_special sub_80C5568
def_special sub_8083BDC
def_special FieldObjectInteractionGetBerryTreeData
- def_special sub_80B4EE4
+ def_special Berry_FadeAndGoToBerryBagMenu
def_special FieldObjectInteractionPlantBerryTree
def_special FieldObjectInteractionPickBerryTree
def_special FieldObjectInteractionRemoveBerryTree
@@ -188,18 +188,18 @@ gSpecials::
def_special sub_80BDD18
def_special GabbyAndTySetScriptVarsToFieldObjectLocalIds
def_special sub_810E300
- def_special sp0B5_daycare
- def_special sp0B6_daycare
- def_special sub_8041E7C
- def_special sp0B8_daycare
- def_special sp0B9_daycare_relationship_comment
- def_special sub_8042328
- def_special Daycare_SendPokemon_Special
+ def_special GetDaycareMonNicknames
+ def_special GetDaycareState
+ def_special RejectEggFromDayCare
+ def_special GiveEggFromDaycare
+ def_special SetDaycareCompatibilityString
+ def_special GetSelectedDaycareMonNickname
+ def_special StoreSelectedPokemonInDaycare
def_special ChooseSendDaycareMon
def_special ShowDaycareLevelMenu
- def_special sub_80417B8
- def_special sub_8041770
- def_special sub_8041648
+ def_special GetNumLevelsGainedFromDaycare
+ def_special GetDaycareCost
+ def_special TakePokemonFromDaycare
def_special ScriptHatchMon
def_special EggHatch
def_special sub_8042B4C
@@ -241,19 +241,19 @@ gSpecials::
def_special sub_8134548
def_special sub_81347F8
def_special CheckPartyBattleTowerBanlist
- def_special sub_8135474
- def_special sub_81360C0
+ def_special PrintBattleTowerTrainerGreeting
+ def_special PrintEReaderTrainerGreeting
def_special sub_813556C
def_special sub_8135668
def_special sub_81358A4
def_special sub_8135A14
def_special sub_8135BA0
- def_special sub_8135C38
- def_special sub_8135D84
- def_special sub_8135DEC
- def_special sub_8135E50
+ def_special BattleTower_SoftReset
+ def_special DetermineBattleTowerPrize
+ def_special GiveBattleTowerPrize
+ def_special AwardBattleTowerRibbons
def_special ChooseBattleTowerPlayerParty
- def_special sub_813601C
+ def_special ValidateEReaderTrainer
def_special sub_810F404
def_special ReducePlayerPartyToThree
def_special BedroomPC
@@ -329,7 +329,7 @@ gSpecials::
def_special sp13F_fall_to_last_warp
def_special ShowContestEntryMonPic
def_special sub_80C5164
- def_special sub_8134AB4
+ def_special SetEReaderTrainerGfxId
def_special ScrSpecial_StartSouthernIslandBattle
def_special SetRoute119Weather
def_special SetRoute123Weather
diff --git a/data/text/battle_strings.inc b/data/text/battle_strings.inc
deleted file mode 100644
index 7a47caa0e..000000000
--- a/data/text/battle_strings.inc
+++ /dev/null
@@ -1,1830 +0,0 @@
-BattleText_UnknownString:
- .string "{STRING 33}$"
-BattleText_GainExpPoints:
- .string "{STRING 0} gained{STRING 1}\n{STRING 42} EXP. Points!\p$"
-BattleText_Terminator:
- .string "$"
-BattleText_BoostedExp:
- .string " a boosted$"
-BattleText_GrewLevel:
- .string "{STRING 0} grew to\nLV. {STRING 1}!{UNKNOWN_A}\p$"
-BattleText_LearnedMove:
- .string "{STRING 0} learned\n{STRING 1}!{UNKNOWN_A}\p$"
-BattleText_TryingToLearnMove:
- .string "{STRING 0} is trying to\nlearn {STRING 1}.\p$"
-BattleText_CantLearnMore:
- .string "But, {STRING 0} can’t learn\nmore than four moves.\p$"
-BattleText_DeleteMove:
- .string "Delete a move to make\nroom for {STRING 1}?$"
-BattleText_DeletedMove:
- .string "{STRING 0} forgot\n{STRING 1}.\p$"
-BattleText_StopLearning:
- .string "{PAUSE 32}Stop learning\n{STRING 1}?$"
-BattleText_DidNotLearn:
- .string "{STRING 0} did not learn\n{STRING 1}.\p$"
-BattleText_UseNext:
- .string "Use next POKéMON?$"
-BattleText_AttackMissed:
- .string "{ATTACKING_MON}’s\nattack missed!$"
-BattleText_ProtectedItself:
- .string "{DEFENDING_MON}\nprotected itself!$"
-BattleText_AvoidedDamage:
- .string "{DEFENDING_MON} avoided\ndamage with {STRING 22}!$"
-BattleText_GroundMoveNegate:
- .string "{DEFENDING_MON} makes GROUND\nmoves miss with {STRING 22}!$"
-BattleText_AvoidedAttack:
- .string "{DEFENDING_MON} avoided\nthe attack!$"
-BattleText_DoesntAffect:
- .string "It doesn’t affect\n{DEFENDING_MON}...$"
-BattleText_AttackingFainted:
- .string "{ATTACKING_MON}\nfainted!\p$"
-BattleText_DefendingFainted:
- .string "{DEFENDING_MON}\nfainted!\p$"
-BattleText_WinningPrize:
- .string "{STRING 32} got ¥{STRING 0}\nfor winning!\p$"
-BattleText_OutOfUsablePoke:
- .string "{STRING 32} is out of\nuseable POKéMON!\p$"
-BattleText_WhitedOut:
- .string "{STRING 32} whited out!{PAUSE_UNTIL_PRESS}$"
-BattleText_PreventEscape:
- .string "{STRING 16} prevents\nescape with {STRING 23}!\p$"
-BattleText_CantEscape:
- .string "Can’t escape!\p$"
-BattleText_AttackingCantEscape:
- .string "{ATTACKING_MON}\ncan’t escape!$"
-BattleText_HitMulti:
- .string "Hit {STRING 0} time(s)!$"
-BattleText_FellAsleep:
- .string "{STRING 14}\nfell asleep!$"
-BattleText_MadeAsleep:
- .string "{STRING 16}’s {STRING 23}\nmade {STRING 14} sleep!$"
-BattleText_DefendingAsleep:
- .string "{DEFENDING_MON} is\nalready asleep!$"
-BattleText_AttackingAsleep:
- .string "{ATTACKING_MON} is\nalready asleep!$"
-BattleText_WasntAffected:
- .string "{DEFENDING_MON}\nwasn’t affected!$"
-BattleText_Poisoned:
- .string "{STRING 14}\nwas poisoned!$"
-BattleText_Poisoned2:
- .string "{STRING 16}’s {STRING 23}\npoisoned {STRING 14}!$"
-BattleText_PoisonHurt:
- .string "{ATTACKING_MON} is hurt\nby poison!$"
-BattleText_AlreadyPoisoned:
- .string "{DEFENDING_MON} is already\npoisoned.$"
-BattleText_BadlyPoisoned:
- .string "{STRING 14} is badly\npoisoned!$"
-BattleText_EnergyDrained:
- .string "{DEFENDING_MON} had its\nenergy drained!$"
-BattleText_Burned:
- .string "{STRING 14} was burned!$"
-BattleText_Burned2:
- .string "{STRING 16}’s {STRING 23}\nburned {STRING 14}!$"
-BattleText_BurnHurt:
- .string "{ATTACKING_MON} is hurt\nby its burn!$"
-BattleText_AlreadyBurned:
- .string "{DEFENDING_MON} already\nhas a burn.$"
-BattleText_Frozen:
- .string "{STRING 14} was\nfrozen solid!$"
-BattleText_Frozen2:
- .string "{STRING 16}’s {STRING 23}\nfroze {STRING 14} solid!$"
-BattleText_FrozenSolid:
- .string "{ATTACKING_MON} is\nfrozen solid!$"
-BattleText_DefendingDefrosted:
- .string "{DEFENDING_MON} was\ndefrosted!$"
-BattleText_AttackingDefrosted:
- .string "{ATTACKING_MON} was\ndefrosted!$"
-BattleText_Defrosted:
- .string "{ATTACKING_MON} was\ndefrosted by {STRING 17}!$"
-BattleText_Paralyzed:
- .string "{STRING 14} is paralyzed!\nIt may be unable to move!$"
-BattleText_Paralyzed2:
- .string "{STRING 16}’s {STRING 23}\nparalyzed {STRING 14}!\lIt may be unable to move!$"
-BattleText_Paralyzed3:
- .string "{ATTACKING_MON} is paralyzed!\nIt can’t move!$"
-BattleText_AlreadyParalyzed:
- .string "{DEFENDING_MON} is\nalready paralyzed!$"
-BattleText_ParalysisHealed:
- .string "{DEFENDING_MON} was\nhealed of paralysis!$"
-BattleText_DreamEaten:
- .string "{DEFENDING_MON}’s\ndream was eaten!$"
-BattleText_AttackingStatNoHigher:
- .string "{ATTACKING_MON}’s {STRING 0}\nwon’t go higher!$"
-BattleText_DefendingStatNoHigher:
- .string "{DEFENDING_MON}’s {STRING 0}\nwon’t go lower!$"
-BattleText_StoppedWorking:
- .string "Your team’s {STRING 0}\nstopped working!$"
-BattleText_StoppedWorking2:
- .string "The foe’s {STRING 0}\nstopped working!$"
-BattleText_Confused:
- .string "{ATTACKING_MON} is\nconfused!$"
-BattleText_ConfusionSnapOut:
- .string "{ATTACKING_MON} snapped\nout of confusion!$"
-BattleText_BecameConfused:
- .string "{STRING 14} became\nconfused!$"
-BattleText_AlreadyConfused:
- .string "{DEFENDING_MON} is\nalready confused!$"
-BattleText_FellLove:
- .string "{DEFENDING_MON}\nfell in love!$"
-BattleText_InLoveWith:
- .string "{ATTACKING_MON} is in love\nwith {STRING 16}!$"
-BattleText_ImmobilizedBy:
- .string "{ATTACKING_MON} is\nimmobilized by love!$"
-BattleText_BlownAway:
- .string "{DEFENDING_MON} was\nblown away!$"
-BattleText_TypeTransform:
- .string "{ATTACKING_MON} transformed\ninto the {STRING 0} type!$"
-BattleText_Flinched:
- .string "{ATTACKING_MON} flinched!$"
-BattleText_RegainedHealth:
- .string "{DEFENDING_MON} regained\nhealth!$"
-BattleText_HPFull:
- .string "{DEFENDING_MON}’s\nHP is full!$"
-BattleText_RaisedSpDef:
- .string "{STRING 38}’s {STRING 17}\nraised SP. DEF!$"
-BattleText_RaisedSpDefLittle:
- .string "{STRING 38}’s {STRING 17}\nraised SP. DEF a little!$"
-BattleText_RaisedDefense:
- .string "{STRING 38}’s {STRING 17}\nraised DEFENSE!$"
-BattleText_RaisedDefenseLittle:
- .string "{STRING 38}’s {STRING 17}\nraised DEFENSE a little!$"
-BattleText_CoveredVeil:
- .string "{STRING 38} is covered\nby a veil!$"
-BattleText_SafeguardActive:
- .string "{DEFENDING_MON} is protected\nby SAFEGUARD!$"
-BattleText_SafeguardFaded:
- .string "{STRING 40}’s SAFEGUARD\nfaded!$"
-BattleText_WentToSleep:
- .string "{ATTACKING_MON} went\nto sleep!$"
-BattleText_SpeltHealthy:
- .string "{ATTACKING_MON} slept and\nbecame healthy!$"
-BattleText_WhipWhirlwind:
- .string "{ATTACKING_MON} whipped\nup a whirlwind!$"
-BattleText_TookSunlight:
- .string "{ATTACKING_MON} took\nin sunlight!$"
-BattleText_LoweredHead:
- .string "{ATTACKING_MON} lowered\nits head!$"
-BattleText_IsGlowing:
- .string "{ATTACKING_MON} is glowing!$"
-BattleText_FlewHigh:
- .string "{ATTACKING_MON} flew\nup high!$"
-BattleText_DugHole:
- .string "{ATTACKING_MON} dug a hole!$"
-BattleText_HidUnderwater:
- .string "{ATTACKING_MON} hid\nunderwater!$"
-BattleText_SprangUp:
- .string "{ATTACKING_MON} sprang up!$"
-BattleText_SqueezedBind:
- .string "{DEFENDING_MON} was squeezed by\n{ATTACKING_MON}’s BIND!$"
-BattleText_TrappedVortex:
- .string "{DEFENDING_MON} was trapped\nin the vortex!$"
-BattleText_SandTombTrapped:
- .string "{DEFENDING_MON} was trapped\nby SAND TOMB!$"
-BattleText_Wrapped:
- .string "{DEFENDING_MON} was WRAPPED by\n{ATTACKING_MON}!$"
-BattleText_Clamped:
- .string "{ATTACKING_MON} CLAMPED\n{DEFENDING_MON}!$"
-BattleText_HurtBy:
- .string "{ATTACKING_MON} is hurt\nby {STRING 0}!$"
-BattleText_FreedFrom:
- .string "{ATTACKING_MON} was freed\nfrom {STRING 0}!$"
-BattleText_KeptGoingCrash:
- .string "{ATTACKING_MON} kept going\nand crashed!$"
-
-gUnknown_083FEE5D:: @ 83FEE5D
-BattleText_MistShroud:
- .string "{STRING 38} became\nshrouded in MIST!$"
-BattleText_MistProtect:
- .string "{STRING 16} is protected\nby MIST!$"
-
-gUnknown_083FEE92:: @ 83FEE92
-BattleText_GetPumped:
- .string "{ATTACKING_MON} is getting\npumped!$"
-BattleText_HitRecoil:
- .string "{ATTACKING_MON} is hit\nwith recoil!$"
-BattleText_ProtectedItself2:
- .string "{ATTACKING_MON} protected\nitself!$"
-BattleText_SandBuffeted:
- .string "{ATTACKING_MON} is buffeted\nby the sandstorm!$"
-BattleText_HailStricken:
- .string "{ATTACKING_MON} is stricken\nby HAIL!$"
-BattleText_WoreOff:
- .string "{STRING 36}’s {STRING 0}\nwore off!$"
-BattleText_WasSeeded:
- .string "{DEFENDING_MON} was seeded!$"
-BattleText_EvadedAttack:
- .string "{DEFENDING_MON} evaded\nthe attack!$"
-BattleText_HealthSapped:
- .string "{ATTACKING_MON}’s health is\nsapped by LEECH SEED!$"
-BattleText_FastAsleep:
- .string "{ATTACKING_MON} is fast\nasleep.$"
-BattleText_WokeUp:
- .string "{ATTACKING_MON} woke up!$"
-BattleText_UproarAwake:
- .string "But {STRING 16}’s UPROAR\nkept it awake!$"
-BattleText_UproarWoke:
- .string "{ATTACKING_MON} woke up\nin the UPROAR!$"
-BattleText_UproarCaused:
- .string "{ATTACKING_MON} caused\nan UPROAR!$"
-BattleText_UproarMaking:
- .string "{ATTACKING_MON} is making\nan UPROAR!$"
-BattleText_CalmedDown:
- .string "{ATTACKING_MON} calmed down.$"
-BattleText_UproarCantSleep:
- .string "But {DEFENDING_MON} can’t\nsleep in an UPROAR!$"
-BattleText_Stockpiled:
- .string "{ATTACKING_MON} STOCKPILED\n{STRING 0}!$"
-BattleText_StockpiledCant:
- .string "{ATTACKING_MON} can’t\nSTOCKPILE any more!$"
-BattleText_UproarCantSleep2:
- .string "But {DEFENDING_MON} can’t\nsleep in an UPROAR!$"
-BattleText_UproarKeptAwake:
- .string "But the UPROAR kept\n{DEFENDING_MON} awake!$"
-BattleText_StayedAwake:
- .string "{DEFENDING_MON} stayed awake\nusing its {STRING 22}!$"
-BattleText_StoringEnergy:
- .string "{ATTACKING_MON} is storing\nenergy!$"
-BattleText_UnleashedEnergy:
- .string "{ATTACKING_MON} unleashed\nenergy!$"
-BattleText_FatigueConfuse:
- .string "{ATTACKING_MON} became\nconfused out of fatigue!$"
-BattleText_PickedUpYen:
- .string "{STRING 32} picked up\n¥{STRING 0}!\p$"
-BattleText_Unaffected:
- .string "{DEFENDING_MON} is\nunaffected!$"
-BattleText_Transformed:
- .string "{ATTACKING_MON} transformed\ninto {STRING 0}!$"
-BattleText_SubMade:
- .string "{ATTACKING_MON} made\na SUBSTITUTE!$"
-BattleText_SubAlready:
- .string "{ATTACKING_MON} already\nhas a SUBSTITUTE!$"
-BattleText_SubTookDamage:
- .string "The SUBSTITUTE took damage\nfor {DEFENDING_MON}!\p$"
-BattleText_SubFaded:
- .string "{DEFENDING_MON}’s\nSUBSTITUTE faded!\p$"
-BattleText_MustRecharge:
- .string "{ATTACKING_MON} must\nrecharge!$"
-BattleText_RageBuilding:
- .string "{DEFENDING_MON}’s RAGE\nis building!$"
-BattleText_MoveWasDisabled:
- .string "{DEFENDING_MON}’s {STRING 0}\nwas disabled!$"
-BattleText_DisabledNoMore:
- .string "{ATTACKING_MON} is disabled\nno more!$"
-BattleText_EncoreGot:
- .string "{DEFENDING_MON} got\nan ENCORE!$"
-BattleText_EncoreEnded:
- .string "{ATTACKING_MON}’s ENCORE\nended!$"
-BattleText_TookAim:
- .string "{ATTACKING_MON} took aim\nat {DEFENDING_MON}!$"
-BattleText_SketchedMove:
- .string "{ATTACKING_MON} SKETCHED\n{STRING 0}!$"
-BattleText_DestinyBondTake:
- .string "{ATTACKING_MON} is trying\nto take its foe with it!$"
-BattleText_DestinyBondTaken:
- .string "{DEFENDING_MON} took\n{ATTACKING_MON} with it!$"
-BattleText_ReducedBy:
- .string "Reduced {DEFENDING_MON}’s\n{STRING 0} by {STRING 1}!$"
-BattleText_StoleSomething:
- .string "{ATTACKING_MON} stole\n{DEFENDING_MON}’s {STRING 19}!$"
-BattleText_CantEscapeNow:
- .string "{DEFENDING_MON} can’t\nescape now!$"
-BattleText_NightmareStart:
- .string "{DEFENDING_MON} fell into\na NIGHTMARE!$"
-BattleText_NightmareLock:
- .string "{ATTACKING_MON} is locked\nin a NIGHTMARE!$"
-BattleText_CurseLay:
- .string "{ATTACKING_MON} cut its own HP\nand laid a CURSE on\l{DEFENDING_MON}!$"
-BattleText_CurseAfflict:
- .string "{ATTACKING_MON} is afflicted\nby the CURSE!$"
-BattleText_SpikesScattered:
- .string "{STRING 37} POKéMON team had SPIKES\nscattered around it!$"
-BattleText_SpikesHurt:
- .string "{STRING 16} is hurt\nby SPIKES!$"
-BattleText_IdentifiedPoke:
- .string "{ATTACKING_MON} identified\n{DEFENDING_MON}!$"
-BattleText_PerishSongFell:
- .string "{ATTACKING_MON}’s PERISH count\nfell to {STRING 0}!$"
-BattleText_BracedItself:
- .string "{ATTACKING_MON} braced\nitself!$"
-BattleText_EnduredHit:
- .string "{DEFENDING_MON} ENDURED\nthe hit!$"
-BattleText_MagnitudeCount:
- .string "MAGNITUDE {STRING 0}!$"
-BattleText_CutHPMaxATK:
- .string "{ATTACKING_MON} cut its own HP\nand maximized ATTACK!$"
-BattleText_CopyStatChanges:
- .string "{ATTACKING_MON} copied\n{DEFENDING_MON}’s stat changes!$"
-BattleText_GotFreeFrom:
- .string "{ATTACKING_MON} got free of\n{DEFENDING_MON}’s {STRING 0}!$"
-BattleText_LeechShed:
- .string "{ATTACKING_MON} shed\nLEECH SEED!$"
-BattleText_SpikesBlownAway:
- .string "{ATTACKING_MON} blew away\nSPIKES!$"
-BattleText_FledBattle:
- .string "{ATTACKING_MON} fled from\nbattle!$"
-BattleText_ForesawAttack:
- .string "{ATTACKING_MON} foresaw\nan attack!$"
-BattleText_TookAttack:
- .string "{DEFENDING_MON} took\n{STRING 0}’s attack!$"
-BattleText_ChoseDestiny:
- .string "{ATTACKING_MON} chose\n{STRING 17} as its destiny!$"
-BattleText_PokeAttack:
- .string "{STRING 0}’s attack!$"
-BattleText_CenterAttention:
- .string "{ATTACKING_MON} became the\ncenter of attention!$"
-BattleText_ChargingPower:
- .string "{ATTACKING_MON} began\ncharging power!$"
-BattleText_NaturePower:
- .string "NATURE POWER turned into\n{STRING 17}!$"
-BattleText_StatusNormal:
- .string "{ATTACKING_MON}’s status\nreturned to normal!$"
-BattleText_TormentSubject:
- .string "{DEFENDING_MON} was subjected\nto TORMENT!$"
-BattleText_TightenFocus:
- .string "{ATTACKING_MON} is tightening\nits focus!$"
-BattleText_TauntFell:
- .string "{DEFENDING_MON} fell for\nthe TAUNT!$"
-BattleText_ReadyToHelp:
- .string "{ATTACKING_MON} is ready to\nhelp {DEFENDING_MON}!$"
-BattleText_SwitchedItems:
- .string "{ATTACKING_MON} switched\nitems with its opponent!$"
-BattleText_Obtained1:
- .string "{ATTACKING_MON} obtained\n{STRING 0}.$"
-BattleText_Obtained2:
- .string "{DEFENDING_MON} obtained\n{STRING 1}.$"
-BattleText_Obtained3:
- .string "{ATTACKING_MON} obtained\n{STRING 0}.\p{DEFENDING_MON} obtained\n{STRING 1}.$"
-BattleText_CopiedObject:
- .string "{ATTACKING_MON} copied\n{DEFENDING_MON}’s {STRING 22}!$"
-BattleText_WishMade:
- .string "{ATTACKING_MON} made a WISH!$"
-BattleText_WishTrue:
- .string "{STRING 0}’s WISH\ncame true!$"
-BattleText_PlantedRoots:
- .string "{ATTACKING_MON} planted its roots!$"
-BattleText_AbsorbNutrients:
- .string "{ATTACKING_MON} absorbed\nnutrients with its roots!$"
-BattleText_AnchoredItself:
- .string "{DEFENDING_MON} anchored\nitself with its roots!$"
-BattleText_DrowsyMade:
- .string "{ATTACKING_MON} made\n{DEFENDING_MON} drowsy!$"
-BattleText_KnockedOffItem:
- .string "{ATTACKING_MON} knocked off\n{DEFENDING_MON}’s {STRING 19}!$"
-BattleText_AbilitySwap:
- .string "{ATTACKING_MON} swapped abilities\nwith its opponent!$"
-BattleText_SealedMove:
- .string "{ATTACKING_MON} sealed the\nopponent’s move(s)!$"
-BattleText_GrudgeBear:
- .string "{ATTACKING_MON} wants the\nopponent to bear a GRUDGE!$"
-BattleText_GrudgeLosePP:
- .string "{ATTACKING_MON}’s {STRING 0}\nlost all its PP due to\lthe GRUDGE!$"
-BattleText_ShroudedItself:
- .string "{ATTACKING_MON} shrouded\nitself in {STRING 17}!$"
-BattleText_MagicCoatBounce:
- .string "{ATTACKING_MON}’s {STRING 17}\nwas bounced back by MAGIC COAT!$"
-BattleText_AwaitMove:
- .string "{ATTACKING_MON} awaits its foe\nto make a move!$"
-BattleText_SnatchedMove:
- .string "{DEFENDING_MON} SNATCHED\n{STRING 16}’s move!$"
-BattleText_ElecWeakened:
- .string "Electricity’s power was\nweakened!$"
-BattleText_FireWeakened:
- .string "Fire’s power was\nweakened!$"
-BattleText_FoundOne:
- .string "{ATTACKING_MON} found\none {STRING 19}!$"
-BattleText_SoothingAroma:
- .string "A soothing aroma wafted\nthrough the area!$"
-BattleText_CantUseItems:
- .string "Items can’t be used now.{PAUSE 64}$"
-BattleText_UnknownString2:
- .string "For {STRING 16},\n{STRING 19} {STRING 0}$"
-BattleText_HustleUse:
- .string "{STRING 16} used\n{STRING 19} to hustle!$"
-BattleText_LostFocus:
- .string "{ATTACKING_MON} lost its\nfocus and couldn’t move!$"
-BattleText_DraggedOut:
- .string "{DEFENDING_MON} was\ndragged out!\p$"
-BattleText_BrokeWall:
- .string "The wall shattered!$"
-BattleText_NoEffect:
- .string "But it had no effect!$"
-BattleText_NoMovesLeft:
- .string "{STRING 15} has no\nmoves left!\p$"
-BattleText_MoveIsDisabled:
- .string "{STRING 15}’s {STRING 17}\nis disabled!\p$"
-BattleText_TormentNoUse:
- .string "{STRING 15} can’t use the same\nmove twice in a row due to the TORMENT!\p$"
-BattleText_TauntNoUse:
- .string "{STRING 15} can’t use\n{STRING 17} after the TAUNT!\p$"
-BattleText_SealedNoUse:
- .string "{STRING 15} can’t use the\nsealed {STRING 17}!\p$"
-BattleText_RainMade:
- .string "{STRING 16}’s {STRING 23}\nmade it rain!$"
-BattleText_SpeedRisen:
- .string "{STRING 16}’s {STRING 23}\nraised its SPEED!$"
-BattleText_ProtectedBy:
- .string "{DEFENDING_MON} was protected\nby {STRING 22}!$"
-BattleText_PreventedBy:
- .string "{DEFENDING_MON}’s {STRING 22}\nprevents {ATTACKING_MON}\lfrom using {STRING 17}!$"
-BattleText_HPRestoredUsing:
- .string "{DEFENDING_MON} restored HP\nusing its {STRING 22}!$"
-BattleText_MadeUseless:
- .string "{DEFENDING_MON}’s {STRING 22}\nmade {STRING 17} useless!$"
-BattleText_MadeType:
- .string "{DEFENDING_MON}’s {STRING 22}\nmade it the {STRING 0} type!$"
-BattleText_PreventedPara:
- .string "{STRING 14}’s {STRING 22}\nprevents paralysis!$"
-BattleText_PreventedRomance:
- .string "{DEFENDING_MON}’s {STRING 22}\nprevents romance!$"
-BattleText_PreventedPoison:
- .string "{STRING 14}’s {STRING 22}\nprevents poisoning!$"
-BattleText_PreventedConfusion:
- .string "{DEFENDING_MON}’s {STRING 22}\nprevents confusion!$"
-BattleText_RaisedFirePower:
- .string "{DEFENDING_MON}’s {STRING 22}\nraised its FIRE power!$"
-BattleText_AnchorsItself:
- .string "{DEFENDING_MON} anchors\nitself with {STRING 22}!$"
-BattleText_CutsAttack:
- .string "{STRING 16}’s {STRING 23}\ncuts {DEFENDING_MON}’s ATTACK!$"
-BattleText_PreventedStatLoss:
- .string "{STRING 16}’s {STRING 23}\nprevents stat loss!$"
-BattleText_HurtOther:
- .string "{DEFENDING_MON}’s {STRING 22}\nhurt {ATTACKING_MON}!$"
-BattleText_Traced:
- .string "{STRING 16} TRACED\n{STRING 0}’s {STRING 1}!$"
-BattleText_PreventedBurn:
- .string "{STRING 14}’s {STRING 24}\nprevents burns!$"
-BattleText_BlocksOther:
- .string "{DEFENDING_MON}’s {STRING 22}\nblocks {STRING 17}!$"
-BattleText_BlocksOther2:
- .string "{STRING 16}’s {STRING 23}\nblocks {STRING 17}!$"
-BattleText_RestoredHPByItem:
- .string "{ATTACKING_MON}’s {STRING 21}\nrestored some HP!$"
-BattleText_WhipSandstorm:
- .string "{STRING 16}’s {STRING 23}\nwhipped up a sandstorm!$"
-BattleText_SunIntensified:
- .string "{STRING 16}’s {STRING 23}\nintensified the sun’s rays!$"
-BattleText_PreventedLoss:
- .string "{STRING 16}’s {STRING 23}\nprevents {STRING 0} loss!$"
-BattleText_InfatuatedPoke:
- .string "{DEFENDING_MON}’s {STRING 22}\ninfatuated {ATTACKING_MON}!$"
-BattleText_MadeIneffective:
- .string "{DEFENDING_MON}’s {STRING 22}\nmade {STRING 17} ineffective!$"
-BattleText_CuredProblem:
- .string "{STRING 16}’s {STRING 23}\ncured its {STRING 0} problem!$"
-BattleText_OozeSuckup:
- .string "It sucked up the\nLIQUID OOZE!$"
-BattleText_Transformed2:
- .string "{STRING 16} transformed!$"
-BattleText_TookAttack2:
- .string "{DEFENDING_MON}’s {STRING 22}\ntook the attack!$"
-
-gUnknown_083FFCCA:: @ 83FFCCA
-BattleText_PreventedSwitch::
- .string "{STRING 0}’s {STRING 20}\nprevents switching!\p$"
-BattleText_PreventedOther:
- .string "{DEFENDING_MON}’s {STRING 22}\nprevented {STRING 16}’s\l{STRING 0} from working!$"
-BattleText_MadeIneffective2:
- .string "{STRING 16}’s {STRING 23}\nmade it ineffective!$"
-BattleText_PreventedFlinching:
- .string "{STRING 14}’s {STRING 24}\nprevents flinching!$"
-BattleText_PreventedOther2:
- .string "{ATTACKING_MON}’s {STRING 21}\nprevents {DEFENDING_MON}’s\l{STRING 22} from working!$"
-BattleText_CuredOfProblem:
- .string "{STRING 16}’s {STRING 23}\ncured its {STRING 0} problem!$"
-BattleText_NoEffectOn:
- .string "{STRING 16}’s {STRING 23}\nhad no effect on {STRING 14}!$"
-BattleText_Sharply:
- .string "sharply $"
-
-gUnknown_083FFDB3:: @ 83FFDB3
-BattleText_Rose:
- .string "rose!$"
-BattleText_Harshly:
- .string "harshly $"
-BattleText_Fell:
- .string "fell!$"
-BattleText_UnknownString7:
- .string "{ATTACKING_MON}’s {STRING 0}\n{STRING 1}$"
-
-gUnknown_083FFDD3:: @ 83FFDD3
-BattleText_UnknownString3:
- .string "{DEFENDING_MON}’s {STRING 0}\n{STRING 1}$"
-BattleText_UnknownString4:
- .string "Using {STRING 19}, the {STRING 0}\nof {STRING 16} {STRING 1}$"
-BattleText_UnknownString5:
- .string "{ATTACKING_MON}’s {STRING 0}\n{STRING 1}$"
-BattleText_UnknownString6:
- .string "{DEFENDING_MON}’s {STRING 0}\n{STRING 1}$"
-BattleText_StatNoHigher:
- .string "{ATTACKING_MON}’s stats won’t\ngo any higher!$"
-BattleText_StatNoLower:
- .string "{DEFENDING_MON}’s stats won’t\ngo any lower!$"
-BattleText_Critical:
- .string "A critical hit!$"
-BattleText_GrandSlam:
- .string "It’s a one-hit KO!$"
-BattleText_MoveForget123:
- .string "{PAUSE 32}1, {PAUSE 15}2 and...{PAUSE 15} ...{PAUSE 15} ...{PAUSE 15}\n{PAUSE 15}{PLAY_SE SE_KON}Poof!\p$"
-BattleText_MoveForgetAnd:
- .string "And...\p$"
-BattleText_CantForgetHM:
- .string "HM moves can’t be\nforgotten now.\p$"
-BattleText_NotEffective:
- .string "It’s not very effective...$"
-BattleText_SuperEffective:
- .string "It’s super effective!$"
-
-gUnknown_083FFEFC:: @ 83FFEFC
-BattleText_GotAwaySafely:
- .string "{PLAY_SE SE_NIGERU}Got away safely!\p$"
-BattleText_FledUsingItem:
- .string "{PLAY_SE SE_NIGERU}{ATTACKING_MON} fled\nusing its {STRING 19}!\p$"
-BattleText_FledUsingOther:
- .string "{PLAY_SE SE_NIGERU}{ATTACKING_MON} fled\nusing {STRING 21}!\p$"
-BattleText_FledWild:
- .string "{PLAY_SE SE_NIGERU}Wild {STRING 0} fled!$"
-
-gUnknown_083FFF56:: @ 83FFF56
-BattleText_PlayerDefeatedTrainer:
- .string "Player defeated\n{STRING 29}!$"
-
-gUnknown_083FFF6A:: @ 83FFF6A
-BattleText_PlayerDefeatedTrainers:
- .string "Player beat {STRING 30}\nand {STRING 29}!$"
-
-gUnknown_083FFF81:: @ 83FFF81
-BattleText_PlayerLostTrainer:
- .string "Player lost against\n{STRING 29}!$"
-
-gUnknown_083FFF99:: @ 83FFF99
-BattleText_PlayerLostTrainers:
- .string "Player lost to {STRING 30}\nand {STRING 29}!$"
-
-gUnknown_083FFFB3:: @ 83FFFB3
-BattleText_PlayerTiedTrainer:
- .string "Player tied against\n{STRING 29}!$"
-
-gUnknown_083FFFCB:: @ 83FFFCB
-BattleText_PlayerTiedTrainers:
- .string "Player tied against {STRING 30}\nand {STRING 29}!$"
-
-gUnknown_083FFFEA:: @ 83FFFEA
-BattleText_FledSingle:
- .string "{PLAY_SE SE_NIGERU}{STRING 29} fled!$"
-
-gUnknown_083FFFF7:: @ 83FFFF7
-BattleText_FledDouble:
- .string "{PLAY_SE SE_NIGERU}{STRING 29} and\n{STRING 30} fled!$"
-BattleText_NoRunning:
- .string "No! There’s no running\nfrom a TRAINER battle!\p$"
-BattleText_CantEscape2:
- .string "Can’t escape!\p$"
-BattleText_BirchDontLeaveMe:
- .string "PROF. BIRCH: D-don’t leave\nme here like this!\p$"
-BattleText_Nothing:
- .string "But nothing happened!$"
-BattleText_Failed:
- .string "But it failed!$"
-BattleText_HurtItself:
- .string "It hurt itself in its\nconfusion!$"
-BattleText_MirrorFail:
- .string "The MIRROR MOVE failed!$"
-BattleText_RainStart:
- .string "It started to rain!$"
-BattleText_PourStart:
- .string "A downpour started!$"
-BattleText_RainCont1:
- .string "Rain continues to fall.$"
-BattleText_PourCont:
- .string "The downpour continues.$"
-BattleText_RainStop:
- .string "The rain stopped.$"
-BattleText_SandBrewed:
- .string "A sandstorm brewed!$"
-BattleText_SandRages:
- .string "The sandstorm rages.$"
-BattleText_SandSubsided:
- .string "The sandstorm subsided.$"
-BattleText_SunBright:
- .string "The sunlight got bright!$"
-BattleText_SunStrong:
- .string "The sunlight is strong.$"
-BattleText_SunFaded:
- .string "The sunlight faded.$"
-BattleText_HailStart:
- .string "It started to hail!$"
-BattleText_HailCont:
- .string "Hail continues to fall.$"
-BattleText_HailStop:
- .string "The hail stopped.$"
-BattleText_SpitUpFail:
- .string "But it failed to SPIT UP\na thing!$"
-BattleText_SwallowFail:
- .string "But it failed to SWALLOW\na thing!$"
-BattleText_WindHeatWave:
- .string "The wind turned into a\nHEAT WAVE!$"
-BattleText_StatElim:
- .string "All stat changes were\neliminated!$"
-BattleText_CoinScatter:
- .string "Coins scattered everywhere!$"
-BattleText_SubWeak:
- .string "It was too weak to make\na SUBSTITUTE!$"
-BattleText_PainSplit:
- .string "The battlers shared\ntheir pain!$"
-BattleText_BellChime:
- .string "A bell chimed!$"
-BattleText_PerishSong:
- .string "All affected POKéMON will\nfaint in 3 turns!$"
-BattleText_NoPP1:
- .string "There’s no PP left for\nthis move!\p$"
-BattleText_NoPP2:
- .string "But there was no PP left\nfor the move!$"
-BattleText_IgnoredOrdersSLP:
- .string "{ATTACKING_MON} ignored\norders while asleep!$"
-BattleText_IgnoredOrders:
- .string "{ATTACKING_MON} ignored\norders!$"
-BattleText_BeganNap:
- .string "{ATTACKING_MON} began to nap!$"
-BattleText_LoafingAround:
- .string "{ATTACKING_MON} is\nloafing around!$"
-BattleText_WontObey:
- .string "{ATTACKING_MON} won’t\nobey!$"
-BattleText_TurnedAway:
- .string "{ATTACKING_MON} turned away!$"
-BattleText_NotNotice:
- .string "{ATTACKING_MON} pretended\nto not notice!$"
-BattleText_WillSwitch:
- .string "{STRING 25} {STRING 26} is\nabout to use {STRING 1}.\pWill {STRING 32} change\nPOKéMON?$"
-BattleText_LearnedMove2:
- .string "{ATTACKING_MON} learned\n{STRING 0}!$"
-BattleText_PlayerDefeatedTrainer2:
- .string "Player defeated\n{STRING 25} {STRING 26}!\p$"
-BattleText_CreptCloser:
- .string "{STRING 32} crept closer to\n{STRING 3}!$"
-BattleText_CantGetCloser:
- .string "{STRING 32} can’t get any closer!$"
-BattleText_WatchingCarefully:
- .string "{STRING 3} is watching\ncarefully!$"
-BattleText_CuriousAbout:
- .string "{STRING 3} is curious about\nthe {STRING 0}!$"
-BattleText_EnthralledBy:
- .string "{STRING 3} is enthralled by\nthe {STRING 0}!$"
-BattleText_IgnoredThing:
- .string "{STRING 3} completely ignored\nthe {STRING 0}!$"
-BattleText_ThrewBlock:
- .string "{STRING 32} threw a {POKEBLOCK}\nat the {STRING 3}!$"
-BattleText_SafariOver:
- .string "{PLAY_SE SE_PINPON}ANNOUNCER: You’re out of\nSAFARI BALLS! Game over!\p$"
-
-gUnknown_08400555:: @ 8400555
-BattleText_WildAppeared1:
- .string "Wild {STRING 3} appeared!\p$"
-
-gUnknown_08400568:: @ 8400568
-BattleText_WildAppeared2:
- .string "Wild {STRING 3} appeared!\p$"
-
-gUnknown_0840057B:: @ 840057B
-BattleText_WildAppeared3:
- .string "Wild {STRING 3} appeared!{PAUSE 127}$"
-
-gUnknown_08400590:: @ 8400590
-BattleText_WildDoubleAppeared:
- .string "Wild {STRING 5} and\n{STRING 3} appeared!\p$"
-
-gUnknown_084005AA:: @ 84005AA
-BattleText_SingleWantToBattle1:
- .string "{STRING 25} {STRING 26}\nwould like to battle!\p$"
-
-gUnknown_084005C7:: @ 84005C7
-BattleText_SingleWantToBattle2:
- .string "{STRING 29}\nwants to battle!$"
-
-gUnknown_084005DB:: @ 84005DB
-BattleText_DoubleWantToBattle:
- .string "{STRING 29} and {STRING 30}\nwant to battle!$"
-
-gUnknown_084005F5:: @ 84005F5
-BattleText_SentOutSingle1:
- .string "{STRING 25} {STRING 26} sent\nout {STRING 3}!$"
-
-gUnknown_08400608:: @ 8400608
-BattleText_SentOutDouble1:
- .string "{STRING 25} {STRING 26} sent\nout {STRING 3} and {STRING 5}!$"
-
-gUnknown_08400622:: @ 8400622
-BattleText_SentOutSingle2:
- .string "{STRING 25} {STRING 26} sent\nout {STRING 0}!$"
-
-gUnknown_08400635:: @ 8400635
-BattleText_SentOutSingle3:
- .string "{STRING 29} sent\nout {STRING 3}!$"
-
-gUnknown_08400645:: @ 8400645
-BattleText_SentOutDouble2:
- .string "{STRING 29} sent out\n{STRING 3} and {STRING 5}!$"
-
-gUnknown_0840065C:: @ 840065C
-BattleText_SentOutDouble3:
- .string "{STRING 29} sent out\n{STRING 7}!\p{STRING 30} sent out\n{STRING 9}!$"
-
-gUnknown_0840067C:: @ 840067C
-BattleText_SentOutSingle4:
- .string "{STRING 29} sent out\n{STRING 0}!$"
-
-gUnknown_0840068C:: @ 840068C
-BattleText_SentOutSingle5:
- .string "{STRING 31} sent out\n{STRING 0}!$"
-
-gUnknown_0840069C:: @ 840069C
-BattleText_SentOutSingle6:
- .string "Go! {STRING 2}!$"
-
-gUnknown_084006A4:: @ 84006A4
-BattleText_SentOutDouble4:
- .string "Go! {STRING 2} and\n{STRING 4}!$"
-
-gUnknown_084006B3:: @ 84006B3
-BattleText_SentOutSingle7:
- .string "Go! {STRING 0}!$"
-
-gUnknown_084006BB:: @ 84006BB
-BattleText_SentOutSingle8:
- .string "Do it! {STRING 0}!$"
-
-gUnknown_084006C6:: @ 84006C6
-BattleText_SentOutSingle9:
- .string "Go for it, {STRING 0}!$"
-
-gUnknown_084006D5:: @ 84006D5
-BattleText_SentOutSingle10:
- .string "Your foe’s weak!\nGet’m, {STRING 0}!$"
-
-gUnknown_084006F1:: @ 84006F1
-BattleText_SentOutSingle11:
- .string "{STRING 28} sent out\n{STRING 8}!\pGo! {STRING 6}!$"
-
-gUnknown_08400709:: @ 8400709
-BattleText_ComeBackSingle1:
- .string "{STRING 0}, that’s enough!\nCome back!$"
-
-gUnknown_08400727:: @ 8400727
-BattleText_ComeBackSingle2:
- .string "{STRING 0}, come back!$"
-
-gUnknown_08400736:: @ 8400736
-BattleText_ComeBackSingle3:
- .string "{STRING 0}, OK!\nCome back!$"
-
-gUnknown_08400749:: @ 8400749
-BattleText_ComeBackSingle4:
- .string "{STRING 0}, good!\nCome back!$"
-
-gUnknown_0840075E:: @ 840075E
-BattleText_WithdrewPoke1:
- .string "{STRING 25} {STRING 26}\nwithdrew {STRING 0}!$"
-
-gUnknown_08400771:: @ 8400771
-BattleText_WithdrewPoke2:
- .string "{STRING 29} withdrew\n{STRING 0}!$"
-
-gUnknown_08400781:: @ 8400781
-BattleText_WithdrewPoke3:
- .string "{STRING 31} withdrew\n{STRING 0}!$"
-
-gUnknown_08400791:: @ 8400791
-BattleText_Wild:
- .string "Wild $"
-
-gUnknown_08400797:: @ 8400797
-BattleText_Foe:
- .string "Foe $"
-
-gUnknown_0840079C:: @ 840079C
-BattleText_Foe2:
- .string "Foe $"
-
-gUnknown_084007A1:: @ 84007A1
-BattleText_Ally:
- .string "Ally $"
-
-gUnknown_084007A7:: @ 84007A7
-BattleText_Foe3:
- .string "Foe $"
-
-gUnknown_084007AC:: @ 84007AC
-BattleText_Ally2:
- .string "Ally $"
-
-gUnknown_084007B2:: @ 84007B2
-BattleText_Foe4:
- .string "Foe $"
-
-gUnknown_084007B7:: @ 84007B7
-BattleText_Ally3:
- .string "Ally $"
-
-gUnknown_084007BD:: @ 84007BD
-BattleText_OpponentUsedMove:
- .string "{ATTACKING_MON} used\n{STRING 1}$"
-
-gUnknown_084007C8:: @ 84007C8
-BattleText_Exclamation2: @ out of order but whatever
- .string "!$"
-
-gUnknown_084007CA:: @ 84007CA
-BattleText_Exclamation3:
- .string "!$"
-
-gUnknown_084007CC:: @ 84007CC
-BattleText_Exclamation4:
- .string "!$"
-
-gUnknown_084007CE:: @ 84007CE
-BattleText_Exclamation5:
- .string "!$"
-
-gUnknown_084007D0:: @ 84007D0
-BattleText_Exclamation:
- .string "!$"
-BattleStatText_HP:
- .string "HP$"
-BattleStatText_Attack:
- .string "ATTACK$"
-BattleStatText_Defense:
- .string "DEFENSE$"
-BattleStatText_Speed:
- .string "SPEED$"
-BattleStatText_SpAtk:
- .string "SP. ATK$"
-BattleStatText_SpDef:
- .string "SP. DEF$"
-BattleStatText_Accuracy:
- .string "accuracy$"
-BattleStatText_Evasion:
- .string "evasiveness$"
-ContestStatText_TooSpicy:
- .string "was too spicy!$"
-ContestStatText_TooDry:
- .string "was too dry!$"
-ContestStatText_TooSweet:
- .string "was too sweet!$"
-ContestStatText_TooBitter:
- .string "was too bitter!$"
-ContestStatText_TooSour:
- .string "was too sour!$"
-BattleText_Used1:
- .string "{STRING 32} used\n{STRING 19}!$"
-BattleText_TutorialUsed:
- .string "WALLY used\n{STRING 19}!$"
-BattleText_Used2:
- .string "{STRING 25} {STRING 26}\nused {STRING 19}!$"
-BattleText_BlockBall:
- .string "The TRAINER blocked the BALL!$"
-BattleText_DontBeAThief:
- .string "Don’t be a thief!$"
-BattleText_DodgeBall:
- .string "It dodged the thrown BALL!\nThis POKéMON can’t be caught!$"
-BattleText_MissPoke:
- .string "You missed the POKéMON!$"
-BattleText_BallBrokeOhNo:
- .string "Oh, no!\nThe POKéMON broke free!$"
-BattleText_BallBrokeAppeared:
- .string "Aww!\nIt appeared to be caught!$"
-BattleText_BallBrokeAlmost:
- .string "Aargh!\nAlmost had it!$"
-BattleText_BallBrokeSoClose:
- .string "Shoot!\nIt was so close, too!$"
-BattleText_BallCaught1:
- .string "Gotcha!\n{STRING 3} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}\p$"
-BattleText_BallCaught2:
- .string "Gotcha!\n{STRING 3} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}{PAUSE 127}$"
-BattleText_GiveNickname:
- .string "Give a nickname to the\ncaptured {STRING 3}?$"
-BattleText_SentToPC:
- .string "{STRING 3} was sent to\n{STRING 35} PC.$"
-
-gUnknown_084009ED:: @ 84009ED
-BattleText_Someone:
- .string "someone’s$"
-
-gUnknown_084009F7:: @ 84009F7
-BattleText_Lanette:
- .string "LANETTE’s$"
-BattleText_AddedToDex:
- .string "{STRING 3}’s data was\nadded to the POKéDEX.\p$"
-BattleText_Raining:
- .string "It is raining.$"
-BattleText_Sandstorm:
- .string "A sandstorm is raging.$"
-BattleText_BoxFull:
- .string "The BOX is full!\nYou can’t catch any more!\p$"
-
-gUnknown_08400A78:: @ 8400A78
-BattleText_EnigmaBerry:
- .string "ENIGMA BERRY$"
-
-gUnknown_08400A85:: @ 8400A85
-BattleText_Berry:
- .string " BERRY$"
-BattleText_CuredParalysis:
- .string "{STRING 16}’s {STRING 19}\ncured paralysis!$"
-BattleText_CuredPoison:
- .string "{STRING 16}’s {STRING 19}\ncured poison!$"
-BattleText_CuredBurn:
- .string "{STRING 16}’s {STRING 19}\nhealed its burn!$"
-BattleText_CuredFreeze:
- .string "{STRING 16}’s {STRING 19}\ndefrosted it!$"
-BattleText_CuredSleep:
- .string "{STRING 16}’s {STRING 19}\nwoke it from its sleep!$"
-BattleText_CuredConfusion:
- .string "{STRING 16}’s {STRING 19}\nsnapped it out of confusion!$"
-BattleText_CuredStatus:
- .string "{STRING 16}’s {STRING 19}\ncured its {STRING 0} problem!$"
-BattleText_NormalizedStatus:
- .string "{STRING 16}’s {STRING 19}\nnormalized its status!$"
-BattleText_RestoredHealth:
- .string "{STRING 16}’s {STRING 19}\nrestored health!$"
-BattleText_RestoredPP:
- .string "{STRING 16}’s {STRING 19}\nrestored {STRING 0}’s PP!$"
-BattleText_RestoredStatus:
- .string "{STRING 16}’s {STRING 19}\nrestored its status!$"
-BattleText_RestoredHPLittle:
- .string "{STRING 16}’s {STRING 19}\nrestored its HP a little!$"
-BattleText_ChoiceBand:
- .string "{STRING 19} allows the\nuse of only {STRING 17}!\p$"
-BattleText_FocusSash:
- .string "{DEFENDING_MON} hung on\nusing its {STRING 19}!$"
-BattleText_Terminator2:
- .string "$"
-BattleText_WallyBall:
- .string "You throw a BALL now, right?\nI... I’ll do my best!$"
-
-gUnknown_08400C4A:: @ 8400C4A
-BattleText_StartEvo:
- .string "What?\n{STRING 2} is evolving!$"
-
-gUnknown_08400C60:: @ 8400C60
-BattleText_FinishEvo:
- .string "Congratulations! Your {STRING 2}\nevolved into {STRING 3}!{UNKNOWN_A}\p$"
-
-gUnknown_08400C8D:: @ 8400C8D
-BattleText_StopEvo:
- .string "Huh? {STRING 2}\nstopped evolving!\p$"
-
-gUnknown_08400CA8:: @ 8400CA8
-BattleText_OtherMenu:
- .string "What should\n{STRING 15} do?$"
-
-gUnknown_08400CBB:: @ 8400CBB
-BattleText_PlayerMenu:
- .string "What will\n{STRING 32} do?$"
-
-gUnknown_08400CCC:: @ 8400CCC
-BattleText_WallyMenu:
- .string "What will\nWALLY do?$"
-
-gUnknown_08400CE0:: @ 8400CE0
-BattleText_LinkStandby:
- .string "{PAUSE 16}Link standby...$"
-
-gUnknown_08400CF3:: @ 8400CF3
-BattleText_MenuOptions:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}FIGHT{CLEAR_TO 0x2E}BAG\nPOKéMON{CLEAR_TO 0x2E}RUN$"
-
-gUnknown_08400D15:: @ 8400D15
-BattleText_MenuOptionsSafari:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}BALL{CLEAR_TO 0x2E}{POKEBLOCK}\nGO NEAR{CLEAR_TO 0x2E}RUN$"
-
-gUnknown_08400D38:: @ 8400D38
-BattleText_PP:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}PP\nTYPE/$"
-
-gUnknown_08400D49:: @ 8400D49
-BattleText_Format: @ cant think of a better name
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}$"
-
-gUnknown_08400D52:: @ 8400D52
-BattleText_ForgetMove:
- .string "{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}{PALETTE 5}Which move should\nbe forgotten?$"
-
-gUnknown_08400D7A:: @ 8400D7A
-BattleText_YesNo:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Yes\nNo$"
-
-gUnknown_08400D89:: @ 8400D89
-BattleText_SwitchWhich:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Switch\nwhich?$"
-
-gUnknown_08400D9F:: @ 8400D9F
-BattleText_Format2:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}$"
-BattleText_RightArrow:
- .string "{RIGHT_ARROW}$"
-
-gUnknown_08400DAA:: @ 8400DAA
-BattleText_Plus:
- .string "+$"
-
-gUnknown_08400DAC:: @ 8400DAC
-@ someone improve the formatting of this please
-BattleText_Dash:
- .string "-$"
-BattleText_HP:
- .string "HP $"
-BattleText_Attack:
- .string "ATTACK $"
-BattleText_Defense:
- .string "DEFENSE$"
-BattleText_SpAtk:
- .string "SP. ATK$"
-BattleText_SpDef:
- .string "SP. DEF$"
-
-gUnknown_08400DD6:: @ 8400DD6
-BattleText_SafariBalls::
- .string "{HIGHLIGHT RED}SAFARI BALLS$"
-
-gUnknown_08400DE6:: @ 8400DE6
-BattleText_SafariBallsLeft::
- .string "{HIGHLIGHT RED}Left: $"
-
-gUnknown_08400DF0:: @ 8400DF0
-BattleText_HighlightRed::
- .string "{HIGHLIGHT RED}$"
-
-BattleText_Sleep::
- .string "sleep$"
-BattleText_PoisonStatus::
- .string "poison$"
-BattleText_Burn::
- .string "burn$"
-BattleText_Paralysis::
- .string "paralysis$"
-BattleText_IceStatus::
- .string "ice$"
-BattleText_Confusion::
- .string "confusion$"
-BattleText_Love::
- .string "love$"
-
-gUnknown_08400E23:: @ 8400E23
-BattleText_Format3:
- .string " and $"
-
-gUnknown_08400E29:: @ 8400E29
-BattleText_Format4:
- .string ", $"
-
-gUnknown_08400E2C:: @ 8400E2C
-BattleText_Format5:
- .string " $"
-
-gUnknown_08400E2E:: @ 8400E2E
-BattleText_Format6:
- .string "\l$"
-
-gUnknown_08400E30:: @ 8400E30
-BattleText_Format7:
- .string "\n$"
-
-gUnknown_08400E32:: @ 8400E32
-BattleText_Format8:
- .string "are$"
-
-gUnknown_08400E36:: @ 8400E36
-BattleText_Format9:
- .string "are$"
-
-gBadEggNickname:: @ 8400E3A
- .string "Bad EGG$"
-
-gUnknown_08400E42:: @ 8400E42
-BattleText_Wally::
- .string "WALLY$"
-
-BattleText_Win:: @ 8400E48
- .string "{HIGHLIGHT TRANSPARENT}Win$"
-
-BattleText_Loss:: @ 8400E4F
- .string "{HIGHLIGHT TRANSPARENT}Loss$"
-
-BattleText_Tie:: @ 8400E57
- .string "{HIGHLIGHT TRANSPARENT}Tie$"
-
-gUnknown_08400E5E:: @ 8400E5E
-BattleText_Format10:
- .string " is$"
-
-gUnknown_08400E62:: @ 8400E62
-BattleText_Format11:
- .string "’s$"
-BattleText_Normal:
- .string "a NORMAL move$"
-BattleText_Fighting:
- .string "a FIGHTING move$"
-BattleText_Flying:
- .string "a FLYING move$"
-BattleText_Poison:
- .string "a POISON move$"
-BattleText_Ground:
- .string "a GROUND move$"
-BattleText_Rock:
- .string "a ROCK move$"
-BattleText_Bug:
- .string "a BUG move$"
-BattleText_Ghost:
- .string "a GHOST move$"
-BattleText_Steel:
- .string "a STEEL move$"
-BattleText_Typeless:
- .string "a ??? move$"
-BattleText_Fire:
- .string "a FIRE move$"
-BattleText_Water:
- .string "a WATER move$"
-BattleText_Grass:
- .string "a GRASS move$"
-BattleText_Electric:
- .string "an ELECTRIC move$"
-BattleText_Psychic:
- .string "a PSYCHIC move$"
-BattleText_Ice:
- .string "an ICE move$"
-BattleText_Dragon:
- .string "a DRAGON move$"
-BattleText_Dark:
- .string "a DARK move$"
-
- .align 2
-gUnknown_08400F58:: @ 8400F58
- .4byte BattleStatText_HP
- .4byte BattleStatText_Attack
- .4byte BattleStatText_Defense
- .4byte BattleStatText_Speed
- .4byte BattleStatText_SpAtk
- .4byte BattleStatText_SpDef
- .4byte BattleStatText_Accuracy
- .4byte BattleStatText_Evasion
-
- .align 2
-gUnknown_08400F78:: @ 8400F78
- .4byte ContestStatText_TooSpicy
- .4byte ContestStatText_TooDry
- .4byte ContestStatText_TooSweet
- .4byte ContestStatText_TooBitter
- .4byte ContestStatText_TooSour
-
- .align 2
-gBattleStringsTable:: @ 8400F8C
- .4byte BattleText_UnknownString
- .4byte BattleText_GainExpPoints
- .4byte BattleText_GrewLevel
- .4byte BattleText_LearnedMove
- .4byte BattleText_TryingToLearnMove
- .4byte BattleText_CantLearnMore
- .4byte BattleText_DeleteMove
- .4byte BattleText_DeletedMove
- .4byte BattleText_StopLearning
- .4byte BattleText_DidNotLearn
- .4byte BattleText_LearnedMove2
- .4byte BattleText_AttackMissed
- .4byte BattleText_ProtectedItself
- .4byte BattleText_StatNoHigher
- .4byte BattleText_AvoidedDamage
- .4byte BattleText_DoesntAffect
- .4byte BattleText_AttackingFainted
- .4byte BattleText_DefendingFainted
- .4byte BattleText_WinningPrize
- .4byte BattleText_OutOfUsablePoke
- .4byte BattleText_WhitedOut
- .4byte BattleText_PreventEscape
- .4byte BattleText_HitMulti
- .4byte BattleText_FellAsleep
- .4byte BattleText_MadeAsleep
- .4byte BattleText_DefendingAsleep
- .4byte BattleText_AttackingAsleep
- .4byte BattleText_WasntAffected
- .4byte BattleText_Poisoned
- .4byte BattleText_Poisoned2
- .4byte BattleText_PoisonHurt
- .4byte BattleText_AlreadyPoisoned
- .4byte BattleText_BadlyPoisoned
- .4byte BattleText_EnergyDrained
- .4byte BattleText_Burned
- .4byte BattleText_Burned2
- .4byte BattleText_BurnHurt
- .4byte BattleText_Frozen
- .4byte BattleText_Frozen2
- .4byte BattleText_FrozenSolid
- .4byte BattleText_DefendingDefrosted
- .4byte BattleText_AttackingDefrosted
- .4byte BattleText_Defrosted
- .4byte BattleText_Paralyzed
- .4byte BattleText_Paralyzed2
- .4byte BattleText_Paralyzed3
- .4byte BattleText_AlreadyParalyzed
- .4byte BattleText_ParalysisHealed
- .4byte BattleText_DreamEaten
- .4byte BattleText_AttackingStatNoHigher
- .4byte BattleText_DefendingStatNoHigher
- .4byte BattleText_StoppedWorking
- .4byte BattleText_StoppedWorking2
- .4byte BattleText_Confused
- .4byte BattleText_ConfusionSnapOut
- .4byte BattleText_BecameConfused
- .4byte BattleText_AlreadyConfused
- .4byte BattleText_FellLove
- .4byte BattleText_InLoveWith
- .4byte BattleText_ImmobilizedBy
- .4byte BattleText_BlownAway
- .4byte BattleText_TypeTransform
- .4byte BattleText_Flinched
- .4byte BattleText_RegainedHealth
- .4byte BattleText_HPFull
- .4byte BattleText_RaisedSpDef
- .4byte BattleText_RaisedDefense
- .4byte BattleText_CoveredVeil
- .4byte BattleText_SafeguardActive
- .4byte BattleText_SafeguardFaded
- .4byte BattleText_WentToSleep
- .4byte BattleText_SpeltHealthy
- .4byte BattleText_WhipWhirlwind
- .4byte BattleText_TookSunlight
- .4byte BattleText_LoweredHead
- .4byte BattleText_IsGlowing
- .4byte BattleText_FlewHigh
- .4byte BattleText_DugHole
- .4byte BattleText_SqueezedBind
- .4byte BattleText_TrappedVortex
- .4byte BattleText_Wrapped
- .4byte BattleText_Clamped
- .4byte BattleText_HurtBy
- .4byte BattleText_FreedFrom
- .4byte BattleText_KeptGoingCrash
- .4byte BattleText_MistShroud
- .4byte BattleText_MistProtect
- .4byte BattleText_GetPumped
- .4byte BattleText_HitRecoil
- .4byte BattleText_ProtectedItself2
- .4byte BattleText_SandBuffeted
- .4byte BattleText_HailStricken
- .4byte BattleText_WasSeeded
- .4byte BattleText_EvadedAttack
- .4byte BattleText_HealthSapped
- .4byte BattleText_FastAsleep
- .4byte BattleText_WokeUp
- .4byte BattleText_UproarAwake
- .4byte BattleText_UproarWoke
- .4byte BattleText_UproarCaused
- .4byte BattleText_UproarMaking
- .4byte BattleText_CalmedDown
- .4byte BattleText_UproarCantSleep
- .4byte BattleText_Stockpiled
- .4byte BattleText_StockpiledCant
- .4byte BattleText_UproarCantSleep2
- .4byte BattleText_UproarKeptAwake
- .4byte BattleText_StayedAwake
- .4byte BattleText_StoringEnergy
- .4byte BattleText_UnleashedEnergy
- .4byte BattleText_FatigueConfuse
- .4byte BattleText_PickedUpYen
- .4byte BattleText_Unaffected
- .4byte BattleText_Transformed
- .4byte BattleText_SubMade
- .4byte BattleText_SubAlready
- .4byte BattleText_SubTookDamage
- .4byte BattleText_SubFaded
- .4byte BattleText_MustRecharge
- .4byte BattleText_RageBuilding
- .4byte BattleText_MoveWasDisabled
- .4byte BattleText_MoveIsDisabled
- .4byte BattleText_DisabledNoMore
- .4byte BattleText_EncoreGot
- .4byte BattleText_EncoreEnded
- .4byte BattleText_TookAim
- .4byte BattleText_SketchedMove
- .4byte BattleText_DestinyBondTake
- .4byte BattleText_DestinyBondTaken
- .4byte BattleText_ReducedBy
- .4byte BattleText_StoleSomething
- .4byte BattleText_CantEscapeNow
- .4byte BattleText_NightmareStart
- .4byte BattleText_NightmareLock
- .4byte BattleText_CurseLay
- .4byte BattleText_CurseAfflict
- .4byte BattleText_SpikesScattered
- .4byte BattleText_SpikesHurt
- .4byte BattleText_IdentifiedPoke
- .4byte BattleText_PerishSongFell
- .4byte BattleText_BracedItself
- .4byte BattleText_EnduredHit
- .4byte BattleText_MagnitudeCount
- .4byte BattleText_CutHPMaxATK
- .4byte BattleText_CopyStatChanges
- .4byte BattleText_GotFreeFrom
- .4byte BattleText_LeechShed
- .4byte BattleText_SpikesBlownAway
- .4byte BattleText_FledBattle
- .4byte BattleText_ForesawAttack
- .4byte BattleText_TookAttack
- .4byte BattleText_PokeAttack
- .4byte BattleText_CenterAttention
- .4byte BattleText_ChargingPower
- .4byte BattleText_NaturePower
- .4byte BattleText_StatusNormal
- .4byte BattleText_NoMovesLeft
- .4byte BattleText_TormentSubject
- .4byte BattleText_TormentNoUse
- .4byte BattleText_TightenFocus
- .4byte BattleText_TauntFell
- .4byte BattleText_TauntNoUse
- .4byte BattleText_ReadyToHelp
- .4byte BattleText_SwitchedItems
- .4byte BattleText_CopiedObject
- .4byte BattleText_WishMade
- .4byte BattleText_WishTrue
- .4byte BattleText_PlantedRoots
- .4byte BattleText_AbsorbNutrients
- .4byte BattleText_AnchoredItself
- .4byte BattleText_DrowsyMade
- .4byte BattleText_KnockedOffItem
- .4byte BattleText_AbilitySwap
- .4byte BattleText_SealedMove
- .4byte BattleText_SealedNoUse
- .4byte BattleText_GrudgeBear
- .4byte BattleText_GrudgeLosePP
- .4byte BattleText_ShroudedItself
- .4byte BattleText_MagicCoatBounce
- .4byte BattleText_AwaitMove
- .4byte BattleText_SnatchedMove
- .4byte BattleText_RainMade
- .4byte BattleText_SpeedRisen
- .4byte BattleText_ProtectedBy
- .4byte BattleText_PreventedBy
- .4byte BattleText_HPRestoredUsing
- .4byte BattleText_MadeType
- .4byte BattleText_PreventedPara
- .4byte BattleText_PreventedRomance
- .4byte BattleText_PreventedPoison
- .4byte BattleText_PreventedConfusion
- .4byte BattleText_RaisedFirePower
- .4byte BattleText_AnchorsItself
- .4byte BattleText_CutsAttack
- .4byte BattleText_PreventedStatLoss
- .4byte BattleText_HurtOther
- .4byte BattleText_Traced
- .4byte BattleText_Sharply
- .4byte BattleText_Rose
- .4byte BattleText_Harshly
- .4byte BattleText_Fell
- .4byte BattleText_UnknownString7
- .4byte BattleText_UnknownString3
- .4byte BattleText_UnknownString5
- .4byte BattleText_UnknownString6
- .4byte BattleText_Critical
- .4byte BattleText_GrandSlam
- .4byte BattleText_MoveForget123
- .4byte BattleText_MoveForgetAnd
- .4byte BattleText_NotEffective
- .4byte BattleText_SuperEffective
- .4byte BattleText_GotAwaySafely
- .4byte BattleText_FledWild
- .4byte BattleText_NoRunning
- .4byte BattleText_CantEscape2
- .4byte BattleText_BirchDontLeaveMe
- .4byte BattleText_Nothing
- .4byte BattleText_Failed
- .4byte BattleText_HurtItself
- .4byte BattleText_MirrorFail
- .4byte BattleText_RainStart
- .4byte BattleText_PourStart
- .4byte BattleText_RainCont1
- .4byte BattleText_PourCont
- .4byte BattleText_RainStop
- .4byte BattleText_SandBrewed
- .4byte BattleText_SandRages
- .4byte BattleText_SandSubsided
- .4byte BattleText_SunBright
- .4byte BattleText_SunStrong
- .4byte BattleText_SunFaded
- .4byte BattleText_HailStart
- .4byte BattleText_HailCont
- .4byte BattleText_HailStop
- .4byte BattleText_SpitUpFail
- .4byte BattleText_SwallowFail
- .4byte BattleText_WindHeatWave
- .4byte BattleText_StatElim
- .4byte BattleText_CoinScatter
- .4byte BattleText_SubWeak
- .4byte BattleText_PainSplit
- .4byte BattleText_BellChime
- .4byte BattleText_PerishSong
- .4byte BattleText_NoPP1
- .4byte BattleText_NoPP2
- .4byte BattleText_Used1
- .4byte BattleText_TutorialUsed
- .4byte BattleText_BlockBall
- .4byte BattleText_DontBeAThief
- .4byte BattleText_DodgeBall
- .4byte BattleText_MissPoke
- .4byte BattleText_BallBrokeOhNo
- .4byte BattleText_BallBrokeAppeared
- .4byte BattleText_BallBrokeAlmost
- .4byte BattleText_BallBrokeSoClose
- .4byte BattleText_BallCaught1
- .4byte BattleText_BallCaught2
- .4byte BattleText_GiveNickname
- .4byte BattleText_SentToPC
- .4byte BattleText_AddedToDex
- .4byte BattleText_Raining
- .4byte BattleText_Sandstorm
- .4byte BattleText_CantEscape
- .4byte BattleText_IgnoredOrdersSLP
- .4byte BattleText_IgnoredOrders
- .4byte BattleText_BeganNap
- .4byte BattleText_LoafingAround
- .4byte BattleText_WontObey
- .4byte BattleText_TurnedAway
- .4byte BattleText_NotNotice
- .4byte BattleText_WillSwitch
- .4byte BattleText_CreptCloser
- .4byte BattleText_CantGetCloser
- .4byte BattleText_WatchingCarefully
- .4byte BattleText_CuriousAbout
- .4byte BattleText_EnthralledBy
- .4byte BattleText_IgnoredThing
- .4byte BattleText_ThrewBlock
- .4byte BattleText_SafariOver
- .4byte BattleText_CuredParalysis
- .4byte BattleText_CuredPoison
- .4byte BattleText_CuredBurn
- .4byte BattleText_CuredFreeze
- .4byte BattleText_CuredSleep
- .4byte BattleText_CuredConfusion
- .4byte BattleText_CuredStatus
- .4byte BattleText_RestoredHealth
- .4byte BattleText_RestoredPP
- .4byte BattleText_RestoredStatus
- .4byte BattleText_RestoredHPLittle
- .4byte BattleText_ChoiceBand
- .4byte BattleText_FocusSash
- .4byte BattleText_Terminator2 @ terminator?
- .4byte BattleText_PreventedBurn
- .4byte BattleText_BlocksOther
- .4byte BattleText_RestoredHPByItem
- .4byte BattleText_WhipSandstorm
- .4byte BattleText_PreventedLoss
- .4byte BattleText_InfatuatedPoke
- .4byte BattleText_MadeIneffective
- .4byte BattleText_CuredProblem
- .4byte BattleText_OozeSuckup
- .4byte BattleText_Transformed2
- .4byte BattleText_ElecWeakened
- .4byte BattleText_FireWeakened
- .4byte BattleText_HidUnderwater
- .4byte BattleText_SprangUp
- .4byte BattleText_CantForgetHM
- .4byte BattleText_FoundOne
- .4byte BattleText_PlayerDefeatedTrainer2
- .4byte BattleText_SoothingAroma
- .4byte BattleText_CantUseItems
- .4byte BattleText_UnknownString2
- .4byte BattleText_UnknownString4
- .4byte BattleText_HustleUse
- .4byte BattleText_MadeUseless
- .4byte BattleText_SandTombTrapped @ sand tomb
- .4byte BattleText_Terminator
- .4byte BattleText_BoostedExp
- .4byte BattleText_SunIntensified
- .4byte BattleText_GroundMoveNegate
- .4byte BattleText_WallyBall
- .4byte BattleText_TookAttack2
- .4byte BattleText_ChoseDestiny
- .4byte BattleText_LostFocus
- .4byte BattleText_UseNext
- .4byte BattleText_FledUsingItem
- .4byte BattleText_FledUsingOther
- .4byte BattleText_DraggedOut
- .4byte BattleText_PreventedOther
- .4byte BattleText_NormalizedStatus
- .4byte BattleText_Used2
- .4byte BattleText_BoxFull
- .4byte BattleText_AvoidedAttack
- .4byte BattleText_MadeIneffective2
- .4byte BattleText_PreventedFlinching
- .4byte BattleText_AlreadyBurned
- .4byte BattleText_StatNoLower
- .4byte BattleText_BlocksOther2
- .4byte BattleText_WoreOff
- .4byte BattleText_RaisedDefenseLittle
- .4byte BattleText_RaisedSpDefLittle
- .4byte BattleText_BrokeWall
- .4byte BattleText_PreventedOther2
- .4byte BattleText_CuredOfProblem
- .4byte BattleText_AttackingCantEscape
- .4byte BattleText_Obtained1
- .4byte BattleText_Obtained2
- .4byte BattleText_Obtained3
- .4byte BattleText_NoEffect
- .4byte BattleText_NoEffectOn
-
- .align 1
-gMissStrings:: @ 8401508
-@ Each entry refers to a text pointer in gBattleStringsTable, but the values are offset
-@ by 0xc. For example, 0x0017 refers to BattleText_AttackMissed because it is the
-@ 11th entry in the pointer table.
- .2byte BATTLE_TEXT_AttackMissed
- .2byte BATTLE_TEXT_ProtectedItself
- .2byte BATTLE_TEXT_AvoidedAttack
- .2byte BATTLE_TEXT_AvoidedDamage
- .2byte BATTLE_TEXT_GroundMoveNegate
-
-BattleTextList_401512:: @ 8401512
- .2byte BATTLE_TEXT_CantEscape2
- .2byte BATTLE_TEXT_BirchDontLeaveMe
- .2byte BATTLE_TEXT_PreventEscape
- .2byte BATTLE_TEXT_CantEscape
- .2byte BATTLE_TEXT_AttackingCantEscape
-
-BattleTextList_40151C:: @ 840151C
- .2byte BATTLE_TEXT_RainStart
- .2byte BATTLE_TEXT_PourStart
- .2byte BATTLE_TEXT_Failed
- .2byte BATTLE_TEXT_SandBrewed
- .2byte BATTLE_TEXT_SunBright
- .2byte BATTLE_TEXT_HailStart
-
-BattleTextList_401528:: @ 8401528
- .2byte BATTLE_TEXT_SandRages
- .2byte BATTLE_TEXT_HailCont
-
-BattleTextList_40152C:: @ 840152C
- .2byte BATTLE_TEXT_SandBuffeted
- .2byte BATTLE_TEXT_HailStricken
-
-BattleTextList_401530:: @ 8401530
- .2byte BATTLE_TEXT_SandSubsided
- .2byte BATTLE_TEXT_HailStop
-
-BattleTextList_401534:: @ 8401534
- .2byte BATTLE_TEXT_RainCont1
- .2byte BATTLE_TEXT_PourCont
- .2byte BATTLE_TEXT_RainStop
-
-BattleTextList_40153A:: @ 840153A
- .2byte BATTLE_TEXT_ProtectedItself2
- .2byte BATTLE_TEXT_BracedItself
- .2byte BATTLE_TEXT_Failed
-
-BattleTextList_401540:: @ 8401540
- .2byte BATTLE_TEXT_Failed
- .2byte BATTLE_TEXT_RaisedDefense
- .2byte BATTLE_TEXT_RaisedDefenseLittle
- .2byte BATTLE_TEXT_RaisedSpDef
- .2byte BATTLE_TEXT_RaisedSpDefLittle
- .2byte BATTLE_TEXT_CoveredVeil
-
-BattleTextList_40154C:: @ 840154C
- .2byte BATTLE_TEXT_WasSeeded
- .2byte BATTLE_TEXT_EvadedAttack
- .2byte BATTLE_TEXT_DoesntAffect
- .2byte BATTLE_TEXT_HealthSapped
- .2byte BATTLE_TEXT_OozeSuckup
-
-BattleTextList_401556:: @ 8401556
- .2byte BATTLE_TEXT_WentToSleep
- .2byte BATTLE_TEXT_SpeltHealthy
-
-BattleTextList_40155A:: @ 840155A
- .2byte BATTLE_TEXT_UproarMaking
- .2byte BATTLE_TEXT_CalmedDown
-
-BattleTextList_40155E:: @ 840155E
- .2byte BATTLE_TEXT_Stockpiled
- .2byte BATTLE_TEXT_StockpiledCant
-
-BattleTextList_401562:: @ 8401562
- .2byte BATTLE_TEXT_WokeUp
- .2byte BATTLE_TEXT_UproarWoke
-
-BattleTextList_401566:: @ 8401566
- .2byte BATTLE_TEXT_SwallowFail
- .2byte BATTLE_TEXT_HPFull
-
-BattleTextList_40156A:: @ 840156A
- .2byte BATTLE_TEXT_UproarCantSleep2
- .2byte BATTLE_TEXT_UproarKeptAwake
- .2byte BATTLE_TEXT_StayedAwake
-
-BattleTextList_401570:: @ 8401570
- .2byte BATTLE_TEXT_UnknownString7
- .2byte BATTLE_TEXT_UnknownString3
- .2byte BATTLE_TEXT_AttackingStatNoHigher
- .2byte BATTLE_TEXT_Terminator2
- .2byte BATTLE_TEXT_UnknownString4
- .2byte BATTLE_TEXT_HustleUse
-
-BattleTextList_40157C:: @ 840157C
- .2byte BATTLE_TEXT_UnknownString5
- .2byte BATTLE_TEXT_UnknownString6
- .2byte BATTLE_TEXT_DefendingStatNoHigher
- .2byte BATTLE_TEXT_Terminator2
-
-BattleTextList_401584:: @ 8401584
- .2byte BATTLE_TEXT_WhipWhirlwind
- .2byte BATTLE_TEXT_TookSunlight
- .2byte BATTLE_TEXT_LoweredHead
- .2byte BATTLE_TEXT_IsGlowing
- .2byte BATTLE_TEXT_FlewHigh
- .2byte BATTLE_TEXT_DugHole
- .2byte BATTLE_TEXT_HidUnderwater
- .2byte BATTLE_TEXT_SprangUp
-
-BattleTextList_401594:: @ 8401594
- .2byte BATTLE_TEXT_SqueezedBind
- .2byte BATTLE_TEXT_Wrapped
- .2byte BATTLE_TEXT_TrappedVortex
- .2byte BATTLE_TEXT_Clamped
- .2byte BATTLE_TEXT_TrappedVortex
- .2byte BATTLE_TEXT_SandTombTrapped
-
-BattleTextList_4015A0:: @ 84015A0
- .2byte BATTLE_TEXT_MistShroud
- .2byte BATTLE_TEXT_Failed
-
-BattleTextList_4015A4:: @ 84015A4
- .2byte BATTLE_TEXT_GetPumped
- .2byte BATTLE_TEXT_Failed
-
-BattleTextList_4015A8:: @ 84015A8
- .2byte BATTLE_TEXT_Transformed
- .2byte BATTLE_TEXT_Failed
-
-BattleTextList_4015AC:: @ 84015AC
- .2byte BATTLE_TEXT_SubMade
- .2byte BATTLE_TEXT_SubWeak
-
-BattleTextList_4015B0:: @ 84015B0
- .2byte BATTLE_TEXT_Poisoned
- .2byte BATTLE_TEXT_Poisoned2
-
-BattleTextList_4015B4:: @ 84015B4
- .2byte BATTLE_TEXT_Paralyzed
- .2byte BATTLE_TEXT_Paralyzed2
-
-BattleTextList_4015B8:: @ 84015B8
- .2byte BATTLE_TEXT_FellAsleep
- .2byte BATTLE_TEXT_MadeAsleep
-
-BattleTextList_4015BC:: @ 84015BC
- .2byte BATTLE_TEXT_Burned
- .2byte BATTLE_TEXT_Burned2
-
-BattleTextList_4015C0:: @ 84015C0
- .2byte BATTLE_TEXT_Frozen
- .2byte BATTLE_TEXT_Frozen2
-
-BattleTextList_4015C4:: @ 84015C4
- .2byte BATTLE_TEXT_AttackingDefrosted
- .2byte BATTLE_TEXT_Defrosted
-
-BattleTextList_4015C8:: @ 84015C8
- .2byte BATTLE_TEXT_AttackMissed
- .2byte BATTLE_TEXT_Unaffected
- .2byte BATTLE_TEXT_FellLove
- .2byte BATTLE_TEXT_InfatuatedPoke
-
-BattleTextList_4015D0:: @ 84015D0
- .2byte BATTLE_TEXT_EnergyDrained
- .2byte BATTLE_TEXT_OozeSuckup
-
-BattleTextList_4015D4:: @ 84015D4
- .2byte BATTLE_TEXT_ElecWeakened
- .2byte BATTLE_TEXT_FireWeakened
-
-BattleTextList_4015D8:: @ 84015D8
- .2byte BATTLE_TEXT_BellChime
- .2byte BATTLE_TEXT_BellChime
- .2byte BATTLE_TEXT_BellChime
- .2byte BATTLE_TEXT_BellChime
- .2byte BATTLE_TEXT_SoothingAroma
-
-BattleTextList_4015E2:: @ 84015E2
- .2byte BATTLE_TEXT_ForesawAttack
- .2byte BATTLE_TEXT_ChoseDestiny
-
-BattleTextList_4015E6:: @ 84015E6
- .2byte BATTLE_TEXT_BallBrokeOhNo
- .2byte BATTLE_TEXT_BallBrokeAppeared
- .2byte BATTLE_TEXT_BallBrokeAlmost
- .2byte BATTLE_TEXT_BallBrokeSoClose
-
-BattleTextList_4015EE:: @ 84015EE
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Sandstorm
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_SunStrong
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
-
-BattleTextList_40160E:: @ 840160E
- .2byte BATTLE_TEXT_LoafingAround
- .2byte BATTLE_TEXT_WontObey
- .2byte BATTLE_TEXT_TurnedAway
- .2byte BATTLE_TEXT_NotNotice
-
-BattleTextList_401616:: @ 8401616
- .2byte BATTLE_TEXT_CreptCloser
- .2byte BATTLE_TEXT_CantGetCloser
-
-BattleTextList_40161A:: @ 840161A
- .2byte BATTLE_TEXT_CuriousAbout
- .2byte BATTLE_TEXT_EnthralledBy
- .2byte BATTLE_TEXT_IgnoredThing
-
-BattleTextList_401620:: @ 8401620
- .2byte BATTLE_TEXT_CuredConfusion
- .2byte BATTLE_TEXT_CuredParalysis
- .2byte BATTLE_TEXT_CuredFreeze
- .2byte BATTLE_TEXT_CuredBurn
- .2byte BATTLE_TEXT_CuredPoison
- .2byte BATTLE_TEXT_CuredSleep
-
-BattleTextList_40162C:: @ 840162C
- .2byte BATTLE_TEXT_CuredStatus
- .2byte BATTLE_TEXT_NormalizedStatus
-
-BattleTextList_401630:: @ 8401630
- .2byte BATTLE_TEXT_PreventedBurn
- .2byte BATTLE_TEXT_PreventedOther2
- .2byte BATTLE_TEXT_NoEffectOn
-
-BattleTextList_401636:: @ 8401636
- .2byte BATTLE_TEXT_PreventedPara
- .2byte BATTLE_TEXT_PreventedOther2
- .2byte BATTLE_TEXT_NoEffectOn
-
-BattleTextList_40163C:: @ 840163C
- .2byte BATTLE_TEXT_PreventedPoison
- .2byte BATTLE_TEXT_PreventedOther2
- .2byte BATTLE_TEXT_NoEffectOn
-
-BattleTextList_401642:: @ 8401642
- .2byte BATTLE_TEXT_Obtained1
- .2byte BATTLE_TEXT_Obtained2
- .2byte BATTLE_TEXT_Obtained3
-
-BattleTextList_401648:: @ 8401648
- .2byte BATTLE_TEXT_RaisedFirePower
- .2byte BATTLE_TEXT_MadeIneffective
-
-gTrappingMoves:: @ 840164C
- .2byte MOVE_BIND
- .2byte MOVE_WRAP
- .2byte MOVE_FIRE_SPIN
- .2byte MOVE_CLAMP
- .2byte MOVE_WHIRLPOOL
- .2byte MOVE_SAND_TOMB
- .2byte 0xFFFF
-
- .align 2
-gUnknown_0840165C:: @ 840165C
- .4byte BattleText_HP
- .4byte BattleText_SpAtk
- .4byte BattleText_Attack
- .4byte BattleText_SpDef
- .4byte BattleText_Defense
- .4byte BattleStatText_Speed
-
- .align 2
-gUnknown_08401674:: @ 8401674
- .4byte BattleText_Normal
- .4byte BattleText_Fighting
- .4byte BattleText_Flying
- .4byte BattleText_Poison
- .4byte BattleText_Ground
- .4byte BattleText_Rock
- .4byte BattleText_Bug
- .4byte BattleText_Ghost
- .4byte BattleText_Steel
- .4byte BattleText_Typeless
- .4byte BattleText_Fire
- .4byte BattleText_Water
- .4byte BattleText_Grass
- .4byte BattleText_Electric
- .4byte BattleText_Psychic
- .4byte BattleText_Ice
- .4byte BattleText_Dragon
- .4byte BattleText_Dark
diff --git a/data/text/contest_strings.inc b/data/text/contest_strings.inc
index 4c4f37fc4..94366cc41 100644
--- a/data/text/contest_strings.inc
+++ b/data/text/contest_strings.inc
@@ -96,7 +96,7 @@ ContestString_DescStopExcitement:
.string "Temporarily stops the\ncrowd from growing excited.$"
.align 2
-gUnknown_083CADD4:: @ 83CADD4
+gContestEffectStrings:: @ 83CADD4
.4byte ContestString_DescHighlyAppealing
.4byte ContestString_DescStartled1
.4byte ContestString_DescGreatLock
diff --git a/data/text/credits.inc b/data/text/credits.inc
deleted file mode 100644
index 29abccf91..000000000
--- a/data/text/credits.inc
+++ /dev/null
@@ -1,1011 +0,0 @@
-Category_Credits:
- .string "{PALETTE 9}Credits$"
-Category_ExecutiveDirector:
- .string "{PALETTE 9}Executive Director$"
-Category_Director:
- .string "{PALETTE 9}Director$"
-Category_ArtDirector:
- .string "{PALETTE 9}Art Director$"
-Category_BattleDirector:
- .string "{PALETTE 9}Battle Director$"
-Category_MainProgrammer:
- .string "{PALETTE 9}Main Programmer$"
-Category_BattleSystemProgrammer:
- .string "{PALETTE 9}Battle System Programmer$"
-Category_FieldSystemProgrammer:
- .string "{PALETTE 9}Field System Programmer$"
-Category_Programmers:
- .string "{PALETTE 9}Programmers$"
-Category_MainGraphicDesigner:
- .string "{PALETTE 9}Main Graphic Designer$"
-Category_POKeMONGraphicDesigners:
- .string "{PALETTE 9}POKéMON & Graphic Designers$"
-Category_POKeMONDesigners:
- .string "{PALETTE 9}POKéMON Designers$"
-Category_MusicComposition:
- .string "{PALETTE 9}Music Composition$"
-Category_SoundEffectsPOKeMONVoices:
- .string "{PALETTE 9}Sound Effects & POKéMON Voices$"
-Category_GameDesigners:
- .string "{PALETTE 9}Game Designers$"
-Category_PlotScenario:
- .string "{PALETTE 9}Plot Scenario$"
-Category_GameScenario:
- .string "{PALETTE 9}Game Scenario$"
-Category_ScriptDesigners:
- .string "{PALETTE 9}Script Designers$"
-Category_MapDesigners:
- .string "{PALETTE 9}Map Designers$"
-Category_MapDataDesigners:
- .string "{PALETTE 9}Map Data Designers$"
-Category_ParametricDesigners:
- .string "{PALETTE 9}Parametric Designers$"
-Category_POKeDEXText:
- .string "{PALETTE 9}POKéDEX Text$"
-Category_EnvironmentToolProgrammers:
- .string "{PALETTE 9}Environment & Tool Programmers$"
-Category_ProductTesting:
- .string "{PALETTE 9}Product Testing$"
-Category_SpecialThanks:
- .string "{PALETTE 9}Special Thanks$"
-Category_Coordinators:
- .string "{PALETTE 9}Coordinators$"
-Category_Producers:
- .string "{PALETTE 9}Producers$"
-Category_ExecutiveProducers:
- .string "{PALETTE 9}Executive Producers$"
-Category_InformationSupervisors:
- .string "{PALETTE 9}Information Supervisors$"
-Category_TaskManagers:
- .string "{PALETTE 9}Task Managers$"
-Category_BrailleCodeCheck:
- .string "{PALETTE 9}Braille Code Check$"
-Category_EnglishVersionCoordinators:
- .string "{PALETTE 9}English Version Coordinators$"
-Category_Translator:
- .string "{PALETTE 9}Translator$"
-Category_ProductSupport:
- .string "{PALETTE 9}Product Support$"
-Category_Artwork:
- .string "{PALETTE 9}Artwork$"
-Category_TextEditor:
- .string "{PALETTE 9}Text Editor$"
-Category_NOAProductTesting:
- .string "{PALETTE 9}NOA Product Testing$"
-Category_GraphicDesigners:
- .string "{PALETTE 9}Graphic Designers$"
-Text_SatoshiTajiri:
- .string "Satoshi Tajiri$"
-Text_Masuda:
- .string "Junichi Masuda$"
-Text_Sugimori:
- .string "Ken Sugimori$"
-Text_Morimoto:
- .string "Shigeki Morimoto$"
-Text_TetsuyaWatanabe:
- .string "Tetsuya Watanabe$"
-Text_Sogabe:
- .string "Hisashi Sogabe$"
-Text_Tamada:
- .string "Sousuke Tamada$"
-Text_Mori:
- .string "Akito Mori$"
-Text_Kagaya:
- .string "Keita Kagaya$"
-Text_Matsuda:
- .string "Yoshinori Matsuda$"
-Text_HiroyukiNakamura:
- .string "Hiroyuki Nakamura$"
-Text_Taya:
- .string "Masao Taya$"
-Text_Nohara:
- .string "Satoshi Nohara$"
-Text_TomomichiOhta:
- .string "Tomomichi Ohta$"
-Text_Iwasawa:
- .string "Miyuki Iwasawa$"
-Text_TakenoriOhta:
- .string "Takenori Ohta$"
-Text_Yoshida:
- .string "Hironobu Yoshida$"
-Text_Fujiwara:
- .string "Motofumi Fujiwara$"
-Text_SatoshiOhta:
- .string "Satoshi Ohta$"
-Text_Iwashita:
- .string "Asuka Iwashita$"
-Text_Tomita:
- .string "Aimi Tomita$"
-Text_Unno:
- .string "Takao Unno$"
-Text_Eo:
- .string "Kanako Eo$"
-Text_Okutani:
- .string "Jun Okutani$"
-Text_Nishida:
- .string "Atsuko Nishida$"
-Text_Saito:
- .string "Muneo Saito$"
-Text_Yoshikawa:
- .string "Rena Yoshikawa$"
-Text_Ichinose:
- .string "Go Ichinose$"
-Text_Aoki:
- .string "Morikazu Aoki$"
-Text_Nishino:
- .string "Koji Nishino$"
-Text_Matsushima:
- .string "Kenji Matsushima$"
-Text_TetsujiOhta:
- .string "Tetsuji Ohta$"
-Text_Sato:
- .string "Hitomi Sato$"
-Text_Kawachimaru:
- .string "Takeshi Kawachimaru$"
-Text_Shimoyamada:
- .string "Teruyuki Shimoyamada$"
-Text_Ohmori:
- .string "Shigeru Ohmori$"
-Text_Takahashi:
- .string "Tadashi Takahashi$"
-Text_ToshinobuMatsumiya:
- .string "Toshinobu Matsumiya$"
-Text_Tomisawa:
- .string "Akihito Tomisawa$"
-Text_Enomoto:
- .string "Hiroki Enomoto$"
-Text_Terada:
- .string "Kazuyuki Terada$"
-Text_Sakurai:
- .string "Yuri Sakurai$"
-Text_Sagawa:
- .string "Hiromi Sagawa$"
-Text_Tominaga:
- .string "Kenji Tominaga$"
-Text_YoshioTajiri:
- .string "Yoshio Tajiri$"
-Text_Sasaki:
- .string "Teiko Sasaki$"
-Text_Hamano:
- .string "Sachiko Hamano$"
-Text_ChieMatsumiya:
- .string "Chie Matsumiya$"
-Text_Shinozaki:
- .string "Akiko Shinozaki$"
-Text_Fujii:
- .string "Atsuko Fujii$"
-Text_SuperMarioClub:
- .string "NCL Super Mario Club$"
-Text_Tada:
- .string "Atsushi Tada$"
-Text_Ohnishi:
- .string "Takahiro Ohnishi$"
-Text_Okamura:
- .string "Norihide Okamura$"
-Text_HiroNakamura:
- .string "Hiro Nakamura$"
-Text_Uesugi:
- .string "Hiroyuki Uesugi$"
-Text_Murakawa:
- .string "Teruki Murakawa$"
-Text_Kinashi:
- .string "Akira Kinashi$"
-Text_Takizawa:
- .string "Michiko Takizawa$"
-Text_Takada:
- .string "Makiko Takada$"
-Text_Kondo:
- .string "Takanao Kondo$"
-Text_Mashima:
- .string "Ai Mashima$"
-Text_Nomoto:
- .string "Gakuji Nomoto$"
-Text_Izushi:
- .string "Takehiro Izushi$"
-Text_Yamagami:
- .string "Hitoshi Yamagami$"
-Text_KyokoWatanabe:
- .string "Kyoko Watanabe$"
-Text_Nakano:
- .string "Takao Nakano$"
-Text_Jinnai:
- .string "Hiroyuki Jinnai$"
-Text_Tsuru:
- .string "Hiroaki Tsuru$"
-Text_Ishihara:
- .string "Tsunekaz Ishihara$"
-Text_Iwata:
- .string "Satoru Iwata$"
-Text_Suyama:
- .string "Kazuya Suyama$"
-Text_Mitsuhara:
- .string "Satoshi Mitsuhara$"
-Text_JapanBrailleLibrary:
- .string "Japan Braille Library$"
-Text_Komura:
- .string "Tomotaka Komura$"
-Text_Ohashi:
- .string "Mikiko Ohashi$"
-Text_McMahill:
- .string "Seth McMahill$"
-Text_Ogasawara:
- .string "Nob Ogasawara$"
-Text_Yamamoto:
- .string "Souichi Yamamoto$"
-Text_Funakoshi:
- .string "Masanori Funakoshi$"
-Text_Fujihara:
- .string "Kazuhiro Fujihara$"
-Text_Nakamichi:
- .string "Kimiko Nakamichi$"
-Text_Hara:
- .string "Daisuke Hara$"
-Text_Okada:
- .string "Atsushi Okada$"
-Text_Lillygren:
- .string "Teresa Lillygren$"
-Text_Hertzog:
- .string "Thomas Hertzog$"
-Text_Ridgeway:
- .string "Ed Ridgeway$"
-Text_NFotB:
- .string "National Federation of the Blind$"
-Text_Maurer:
- .string "Patricia A. Maurer$"
-Text_Ford:
- .string "Sayoko Blodgett-Ford$"
-Text_Barlow:
- .string "Nicola Pratt-Barlow$"
-Text_Uyama:
- .string "Koji Uyama$"
-Text_Howitt:
- .string "Anthony Howitt$"
-Text_Tilden:
- .string "Gail Tilden$"
-Text_EBU:
- .string "European Blind Union$"
-Text_ABA:
- .string "Australian Braille Authority$"
-Text_RNZFotB:
- .string "Royal New Zealand Federation for the Blind$"
-Text_CreditsTerminator:
- .string "$"
-Text_Version:
- .ifdef SAPPHIRE
- .string "{PALETTE 9}POKéMON SAPPHIRE VERSION$"
- .else
- .string "{PALETTE 9}POKéMON RUBY VERSION$"
- .endif
-
-@ pointer table
-
-CreditsTerminator::
- credits_entry 0, Text_CreditsTerminator
-
-CreditsVersion::
- .ifdef SAPPHIRE
- credits_entry 7, Text_Version
- .else
- credits_entry 8, Text_Version
- .endif
-
-CreditsCredits::
- credits_entry 11, Category_Credits
-
-CreditsExecutiveDirector::
- credits_entry 8, Category_ExecutiveDirector
-
-CreditsDirector::
- credits_entry 12, Category_Director
-
-CreditsArtDirector::
- credits_entry 10, Category_ArtDirector
-
-CreditsBattleDirector::
- credits_entry 10, Category_BattleDirector
-
-CreditsMainProgrammer::
- credits_entry 10, Category_MainProgrammer
-
-CreditsBattleSystemProgrammer::
- credits_entry 8, Category_BattleSystemProgrammer
-
-CreditsFieldSystemProgrammer::
- credits_entry 7, Category_FieldSystemProgrammer
-
-CreditsProgrammers::
- credits_entry 12, Category_Programmers
-
-CreditsMainGraphicDesigner::
- credits_entry 7, Category_MainGraphicDesigner
-
-CreditsPOKeMONGraphicDesigners::
- credits_entry 6, Category_POKeMONGraphicDesigners
-
-CreditsPOKeMONDesigners::
- credits_entry 10, Category_POKeMONDesigners
-
-CreditsMusicComposition::
- credits_entry 13, Category_MusicComposition
-
-CreditsSoundEffectsPOKeMONVoices::
- credits_entry 4, Category_SoundEffectsPOKeMONVoices
-
-CreditsGameDesigners::
- credits_entry 11, Category_GameDesigners
-
-CreditsPlotScenario::
- credits_entry 11, Category_PlotScenario
-
-CreditsGameScenario::
- credits_entry 13, Category_GameScenario
-
-CreditsScriptDesigners::
- credits_entry 10, Category_ScriptDesigners
-
-CreditsMapDesigners::
- credits_entry 11, Category_MapDesigners
-
-CreditsMapDataDesigners::
- credits_entry 9, Category_MapDataDesigners
-
-CreditsParametricDesigners::
- credits_entry 9, Category_ParametricDesigners
-
-CreditsPOKeDEXText::
- credits_entry 11, Category_POKeDEXText
-
-CreditsEnvironmentToolProgrammers::
- credits_entry 6, Category_EnvironmentToolProgrammers
-
-CreditsProductTesting::
- credits_entry 11, Category_ProductTesting
-
-CreditsSpecialThanks::
- credits_entry 10, Category_SpecialThanks
-
-CreditsCoordinators::
- credits_entry 11, Category_Coordinators
-
-CreditsProducers::
- credits_entry 11, Category_Producers
-
-CreditsExecutiveProducers::
- credits_entry 7, Category_ExecutiveProducers
-
-CreditsInformationSupervisors::
- credits_entry 10, Category_InformationSupervisors
-
-CreditsTaskManagers::
- credits_entry 8, Category_TaskManagers
-
-CreditsBrailleCodeCheck::
- credits_entry 10, Category_BrailleCodeCheck
-
-CreditsSatoshiTajiri::
- credits_entry 11, Text_SatoshiTajiri
-
-CreditsMasuda::
- credits_entry 11, Text_Masuda
-
-CreditsSugimori::
- credits_entry 11, Text_Sugimori
-
-CreditsMorimoto::
- credits_entry 11, Text_Morimoto
-
-CreditsTetsuyaWatanabe::
- credits_entry 11, Text_TetsuyaWatanabe
-
-CreditsSogabe::
- credits_entry 11, Text_Sogabe
-
-CreditsTamada::
- credits_entry 11, Text_Tamada
-
-CreditsMori::
- credits_entry 11, Text_Mori
-
-CreditsKagaya::
- credits_entry 11, Text_Kagaya
-
-CreditsMatsuda::
- credits_entry 11, Text_Matsuda
-
-CreditsHiroyukiNakamura::
- credits_entry 11, Text_HiroyukiNakamura
-
-CreditsTaya::
- credits_entry 11, Text_Taya
-
-CreditsNohara::
- credits_entry 11, Text_Nohara
-
-CreditsTomomichiOhta::
- credits_entry 11, Text_TomomichiOhta
-
-CreditsIwasawa::
- credits_entry 11, Text_Iwasawa
-
-CreditsTakenoriOhta::
- credits_entry 11, Text_TakenoriOhta
-
-CreditsYoshida::
- credits_entry 11, Text_Yoshida
-
-CreditsFujiwara::
- credits_entry 11, Text_Fujiwara
-
-CreditsSatoshiOhta::
- credits_entry 11, Text_SatoshiOhta
-
-CreditsIwashita::
- credits_entry 11, Text_Iwashita
-
-CreditsTomita::
- credits_entry 11, Text_Tomita
-
-CreditsUnno::
- credits_entry 11, Text_Unno
-
-CreditsEo::
- credits_entry 11, Text_Eo
-
-CreditsOkutani::
- credits_entry 11, Text_Okutani
-
-CreditsNishida::
- credits_entry 11, Text_Nishida
-
-CreditsSaito::
- credits_entry 11, Text_Saito
-
-CreditsYoshikawa::
- credits_entry 11, Text_Yoshikawa
-
-CreditsIchinose::
- credits_entry 11, Text_Ichinose
-
-CreditsAoki::
- credits_entry 11, Text_Aoki
-
-CreditsNishino::
- credits_entry 11, Text_Nishino
-
-CreditsMatsushima::
- credits_entry 11, Text_Matsushima
-
-CreditsTetsujiOhta::
- credits_entry 11, Text_TetsujiOhta
-
-CreditsSato::
- credits_entry 11, Text_Sato
-
-CreditsKawachimaru::
- credits_entry 11, Text_Kawachimaru
-
-CreditsShimoyamada::
- credits_entry 11, Text_Shimoyamada
-
-CreditsOhmori::
- credits_entry 11, Text_Ohmori
-
-CreditsTakahashi::
- credits_entry 11, Text_Takahashi
-
-CreditsToshinobuMatsumiya::
- credits_entry 11, Text_ToshinobuMatsumiya
-
-CreditsTomisawa::
- credits_entry 11, Text_Tomisawa
-
-CreditsEnomoto::
- credits_entry 11, Text_Enomoto
-
-CreditsTerada::
- credits_entry 11, Text_Terada
-
-CreditsSakurai::
- credits_entry 11, Text_Sakurai
-
-CreditsSagawa::
- credits_entry 11, Text_Sagawa
-
-CreditsTominaga::
- credits_entry 11, Text_Tominaga
-
-CreditsYoshiroTajiri::
- credits_entry 11, Text_YoshioTajiri
-
-CreditsSasaki::
- credits_entry 11, Text_Sasaki
-
-CreditsHamano::
- credits_entry 11, Text_Hamano
-
-CreditsChieMatsumiya::
- credits_entry 11, Text_ChieMatsumiya
-
-CreditsShinozaki::
- credits_entry 11, Text_Shinozaki
-
-CreditsFujii::
- credits_entry 11, Text_Fujii
-
-CreditsSuperMarioClub::
- credits_entry 11, Text_SuperMarioClub
-
-CreditsTada::
- credits_entry 11, Text_Tada
-
-CreditsOhnishi::
- credits_entry 11, Text_Ohnishi
-
-CreditsOkamura::
- credits_entry 11, Text_Okamura
-
-CreditsHiroNakamura::
- credits_entry 11, Text_HiroNakamura
-
-CreditsUesugi::
- credits_entry 11, Text_Uesugi
-
-CreditsMurakawa::
- credits_entry 11, Text_Murakawa
-
-CreditsKinashi::
- credits_entry 11, Text_Kinashi
-
-CreditsTakizawa::
- credits_entry 11, Text_Takizawa
-
-CreditsTakada::
- credits_entry 11, Text_Takada
-
-CreditsKondo::
- credits_entry 11, Text_Kondo
-
-CreditsMashima::
- credits_entry 11, Text_Mashima
-
-CreditsNomoto::
- credits_entry 11, Text_Nomoto
-
-CreditsIzushi::
- credits_entry 11, Text_Izushi
-
-CreditsYamagami::
- credits_entry 11, Text_Yamagami
-
-CreditsKyokoWatanabe::
- credits_entry 11, Text_KyokoWatanabe
-
-CreditsNakano::
- credits_entry 11, Text_Nakano
-
-CreditsJinnai::
- credits_entry 11, Text_Jinnai
-
-CreditsTsuru::
- credits_entry 11, Text_Tsuru
-
-CreditsIshihara::
- credits_entry 11, Text_Ishihara
-
-CreditsIwata::
- credits_entry 11, Text_Iwata
-
-CreditsSuyama::
- credits_entry 11, Text_Suyama
-
-CreditsMitsuhara::
- credits_entry 11, Text_Mitsuhara
-
-CreditsJapanBrailleLibrary::
- credits_entry 9, Text_JapanBrailleLibrary
-
-CreditsKomura::
- credits_entry 11, Text_Komura
-
-CreditsOhashi::
- credits_entry 11, Text_Ohashi
-
-CreditsEnglishVersionCoordinators::
- credits_entry 0, Category_EnglishVersionCoordinators
-
-CreditsTranslator::
- credits_entry 0, Category_Translator
-
-CreditsProductSupport::
- credits_entry 0, Category_ProductSupport
-
-CreditsArtwork::
- credits_entry 0, Category_Artwork
-
-CreditsTextEditor::
- credits_entry 0, Category_TextEditor
-
-CreditsNOAProductTesting::
- credits_entry 0, Category_NOAProductTesting
-
-CreditsGraphicDesigners::
- credits_entry 0, Category_GraphicDesigners
-
-CreditsMcMahill::
- credits_entry 0, Text_McMahill
-
-CreditsOgasawara::
- credits_entry 0, Text_Ogasawara
-
-CreditsYamamoto::
- credits_entry 0, Text_Yamamoto
-
-CreditsFunakoshi::
- credits_entry 0, Text_Funakoshi
-
-CreditsFujihara::
- credits_entry 0, Text_Fujihara
-
-CreditsNakamichi::
- credits_entry 0, Text_Nakamichi
-
-CreditsHara::
- credits_entry 0, Text_Hara
-
-CreditsOkada::
- credits_entry 0, Text_Okada
-
-CreditsLillygren::
- credits_entry 0, Text_Lillygren
-
-CreditsHertzog::
- credits_entry 0, Text_Hertzog
-
-CreditsRidgeway::
- credits_entry 0, Text_Ridgeway
-
-CreditsNFotB::
- credits_entry 0, Text_NFotB
-
-CreditsMaurer::
- credits_entry 0, Text_Maurer
-
-CreditsFord::
- credits_entry 0, Text_Ford
-
-CreditsBarlow::
- credits_entry 0, Text_Barlow
-
-CreditsUyama::
- credits_entry 0, Text_Uyama
-
-CreditsHowitt::
- credits_entry 0, Text_Howitt
-
-CreditsTilden::
- credits_entry 0, Text_Tilden
-
-CreditsEBU::
- credits_entry 0, Text_EBU
-
-CreditsABA::
- credits_entry 0, Text_ABA
-
-CreditsRNZFotB::
- credits_entry 0, Text_RNZFotB
-
-@ pointer table to credits entries
-
- .align 2
-gCreditsEntryPointerTable:: @ 840C5F0
- .4byte CreditsTerminator
- .4byte CreditsVersion
- .4byte CreditsCredits
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsDirector
- .4byte CreditsMasuda
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsArtDirector
- .4byte CreditsSugimori
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsBattleDirector
- .4byte CreditsMorimoto
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsMainProgrammer
- .4byte CreditsTetsuyaWatanabe
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsBattleSystemProgrammer
- .4byte CreditsSogabe
- .4byte CreditsFieldSystemProgrammer
- .4byte CreditsTamada
- .4byte CreditsTerminator
-
- .4byte CreditsProgrammers
- .4byte CreditsMori
- .4byte CreditsKagaya
- .4byte CreditsMatsuda
- .4byte CreditsTerminator
-
- .4byte CreditsProgrammers
- .4byte CreditsHiroyukiNakamura
- .4byte CreditsTaya
- .4byte CreditsNohara
- .4byte CreditsTerminator
-
- .4byte CreditsProgrammers
- .4byte CreditsTomomichiOhta
- .4byte CreditsIwasawa
- .4byte CreditsTakenoriOhta
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsMainGraphicDesigner
- .4byte CreditsYoshida
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsPOKeMONGraphicDesigners
- .4byte CreditsSugimori
- .4byte CreditsYoshida
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsPOKeMONGraphicDesigners
- .4byte CreditsFujiwara
- .4byte CreditsSatoshiOhta
- .4byte CreditsIwashita
- .4byte CreditsTerminator
-
- .4byte CreditsPOKeMONGraphicDesigners
- .4byte CreditsTomita
- .4byte CreditsUnno
- .4byte CreditsEo
- .4byte CreditsTerminator
-
- .4byte CreditsPOKeMONDesigners
- .4byte CreditsMorimoto
- .4byte CreditsOkutani
- .4byte CreditsNishida
- .4byte CreditsTerminator
-
- .4byte CreditsPOKeMONDesigners
- .4byte CreditsSaito
- .4byte CreditsYoshikawa
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsMusicComposition
- .4byte CreditsIchinose
- .4byte CreditsAoki
- .4byte CreditsMasuda
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsSoundEffectsPOKeMONVoices
- .4byte CreditsAoki
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsGameDesigners
- .4byte CreditsMasuda
- .4byte CreditsMorimoto
- .4byte CreditsNishino
- .4byte CreditsTerminator
-
- .4byte CreditsGameDesigners
- .4byte CreditsMatsushima
- .4byte CreditsTetsujiOhta
- .4byte CreditsSato
- .4byte CreditsKawachimaru
-
- .4byte CreditsGameDesigners
- .4byte CreditsShimoyamada
- .4byte CreditsOhmori
- .4byte CreditsTakahashi
- .4byte CreditsTerminator
-
- .4byte CreditsPlotScenario
- .4byte CreditsMasuda
- .4byte CreditsTomisawa
- .4byte CreditsNishino
- .4byte CreditsTerminator
-
- .4byte CreditsGameScenario
- .4byte CreditsToshinobuMatsumiya
- .4byte CreditsTomisawa
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsScriptDesigners
- .4byte CreditsNohara
- .4byte CreditsTetsujiOhta
- .4byte CreditsTomomichiOhta
- .4byte CreditsTerminator
-
- .4byte CreditsMapDesigners
- .4byte CreditsOhmori
- .4byte CreditsTetsujiOhta
- .4byte CreditsNishino
- .4byte CreditsTerminator
-
- .4byte CreditsMapDataDesigners
- .4byte CreditsTetsujiOhta
- .4byte CreditsTakahashi
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsParametricDesigners
- .4byte CreditsNishino
- .4byte CreditsMorimoto
- .4byte CreditsTetsujiOhta
- .4byte CreditsShimoyamada
-
- .4byte CreditsTerminator
- .4byte CreditsPOKeDEXText
- .4byte CreditsMatsushima
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsEnvironmentToolProgrammers
- .4byte CreditsSogabe
- .4byte CreditsTamada
- .4byte CreditsHiroyukiNakamura
- .4byte CreditsMori
-
- .4byte CreditsProductTesting
- .4byte CreditsSuperMarioClub
- .4byte CreditsTada
- .4byte CreditsOhnishi
- .4byte CreditsOkamura
-
- .4byte CreditsSpecialThanks
- .4byte CreditsTominaga
- .4byte CreditsYoshiroTajiri
- .4byte CreditsSasaki
- .4byte CreditsTerminator
-
- .4byte CreditsSpecialThanks
- .4byte CreditsHamano
- .4byte CreditsChieMatsumiya
- .4byte CreditsShinozaki
- .4byte CreditsFujii
-
- .4byte CreditsSpecialThanks
- .4byte CreditsSuyama
- .4byte CreditsMitsuhara
- .4byte CreditsKomura
- .4byte CreditsOhashi
-
- .4byte CreditsSpecialThanks
- .4byte CreditsTakizawa
- .4byte CreditsTakada
- .4byte CreditsKondo
- .4byte CreditsMashima
-
- .4byte CreditsInformationSupervisors
- .4byte CreditsEnomoto
- .4byte CreditsTerada
- .4byte CreditsSakurai
- .4byte CreditsSagawa
-
- .4byte CreditsCoordinators
- .4byte CreditsKyokoWatanabe
- .4byte CreditsNakano
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTaskManagers
- .4byte CreditsYamagami
- .4byte CreditsNomoto
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsProducers
- .4byte CreditsJinnai
- .4byte CreditsIzushi
- .4byte CreditsTsuru
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsExecutiveDirector
- .4byte CreditsSatoshiTajiri
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsExecutiveProducers
- .4byte CreditsIwata
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsExecutiveProducers
- .4byte CreditsIshihara
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsEnglishVersionCoordinators
- .4byte CreditsHiroNakamura
- .4byte CreditsMcMahill
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsTranslator
- .4byte CreditsOgasawara
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsProgrammers
- .4byte CreditsMurakawa
- .4byte CreditsYamamoto
- .4byte CreditsFunakoshi
- .4byte CreditsKinashi
-
- .4byte CreditsGraphicDesigners
- .4byte CreditsYamamoto
- .4byte CreditsKinashi
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsProductSupport
- .4byte CreditsNakamichi
- .4byte CreditsHara
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsArtwork
- .4byte CreditsOkada
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsTerminator
- .4byte CreditsTextEditor
- .4byte CreditsLillygren
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsNOAProductTesting
- .4byte CreditsHertzog
- .4byte CreditsRidgeway
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsBrailleCodeCheck
- .4byte CreditsNFotB
- .4byte CreditsMaurer
- .4byte CreditsJapanBrailleLibrary
- .4byte CreditsEBU
-
- .4byte CreditsBrailleCodeCheck
- .4byte CreditsABA
- .4byte CreditsRNZFotB
- .4byte CreditsTerminator
- .4byte CreditsTerminator
-
- .4byte CreditsSpecialThanks
- .4byte CreditsFord
- .4byte CreditsBarlow
- .4byte CreditsUesugi
- .4byte CreditsUyama
-
- .4byte CreditsSpecialThanks
- .4byte CreditsHowitt
- .4byte CreditsTilden
- .4byte CreditsFujihara
- .4byte CreditsTerminator
diff --git a/data/text/easy_chat/words_by_letter.inc b/data/text/easy_chat/words_by_letter.inc
index 86fba988e..3c7f5bafc 100644
--- a/data/text/easy_chat/words_by_letter.inc
+++ b/data/text/easy_chat/words_by_letter.inc
@@ -1,1893 +1,1893 @@
.align 1
gEasyChatWordsAlphabetized:: @ 83DE138
gEasyChatWordsByLetter_Others:
- ec_word EXCL
- ec_word EXCL_EXCL
- ec_word DASH
- ec_word DASH_DASH_DASH
- ec_word ELLIPSIS
- ec_word ELLIPSIS_EXCL
- ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS
- ec_word 1_HIT_KO_EXCL
- ec_word QUES
- ec_word QUES_EXCL
+ .2byte EC_WORD_EXCL
+ .2byte EC_WORD_EXCL_EXCL
+ .2byte EC_WORD_DASH
+ .2byte EC_WORD_DASH_DASH_DASH
+ .2byte EC_WORD_ELLIPSIS
+ .2byte EC_WORD_ELLIPSIS_EXCL
+ .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS
+ .2byte EC_WORD_1_HIT_KO_EXCL
+ .2byte EC_WORD_QUES
+ .2byte EC_WORD_QUES_EXCL
gEasyChatWordsByLetter_A:
- ec_word A
- ec_word A_LITTLE
- ec_word A_LOT
- ec_word A_TINY_BIT
- ec_word ABOUT
- ec_word ABOVE
- ec_duplicates 2
- ec_pokemon1 ABRA
- ec_pokemon2 ABRA
- ec_word ABSENT
- ec_pokemon1 ABSOL
- ec_word ABSOLUTELY
- ec_move1 ABSORB
- ec_word ACCEPT
- ec_move2 ACID
- ec_move2 ACID_ARMOR
- ec_word ADORE
- ec_word ADULT
- ec_word ADVENTURE
- ec_move2 AERIAL_ACE
- ec_move1 AEROBLAST
- ec_pokemon2 AERODACTYL
- ec_word AFTER
- ec_word AGE
- ec_pokemon1 AGGRON
- ec_move1 AGILITY
- ec_word AGREE
- ec_word AHAHA
- ec_word AIM
- ec_pokemon2 AIPOM
- ec_move1 AIR_CUTTER
- ec_word AIR_LOCK
- ec_word AIYEEH
- ec_duplicates 2
- ec_pokemon1 ALAKAZAM
- ec_pokemon2 ALAKAZAM
- ec_word ALL
- ec_word ALL_RIGHT
- ec_word ALLOW
- ec_word ALLOWANCE
- ec_word ALLY
- ec_word ALMOST
- ec_word ALONE
- ec_word ALSO
- ec_word ALT_COLOR
- ec_pokemon1 ALTARIA
- ec_word ALTHOUGH
- ec_word ALWAYS
- ec_word AM
- ec_move2 AMNESIA
- ec_pokemon2 AMPHAROS
- ec_word AMUSING
- ec_word AN
- ec_move1 ANCIENT_POWER
- ec_word AND
- ec_word ANGER
- ec_word ANGERS
- ec_word ANGRY
- ec_word ANIME
- ec_pokemon1 ANORITH
- ec_word ANOTHER
- ec_word ANTICIPATION
- ec_word ANY
- ec_word ANYWHERE
- ec_word APOLOGIZE
- ec_word APPEAL
- ec_word APPEAR
- ec_word APPEARS
- ec_word APPRECIATE
- ec_word APPROVED
- ec_pokemon2 ARBOK
- ec_pokemon2 ARCANINE
- ec_word ARE
- ec_word AREN_T
- ec_word ARENA_TRAP
- ec_pokemon2 ARIADOS
- ec_move2 ARM_THRUST
- ec_pokemon1 ARMALDO
- ec_move1 AROMATHERAPY
- ec_pokemon1 ARON
- ec_word AROUND
- ec_word ARRGH
- ec_pokemon2 ARTICUNO
- ec_word AS
- ec_word AS_IF
- ec_word AS_MUCH_AS
- ec_move2 ASSIST
- ec_move1 ASTONISH
- ec_word AT
- ec_word ATTACK
- ec_move2 ATTRACT
- ec_word AUNT
- ec_move1 AURORA_BEAM
- ec_word AVANT_GARDE
- ec_word AWAY
- ec_word AWESOME
- ec_word AWFUL
- ec_word AWFULLY
- ec_word AWW
- ec_duplicates 2
- ec_pokemon1 AZUMARILL
- ec_pokemon2 AZUMARILL
- ec_pokemon1 AZURILL
+ .2byte EC_WORD_A
+ .2byte EC_WORD_A_LITTLE
+ .2byte EC_WORD_A_LOT
+ .2byte EC_WORD_A_TINY_BIT
+ .2byte EC_WORD_ABOUT
+ .2byte EC_WORD_ABOVE
+ ec_duplicates 2
+ .2byte EC_POKEMON(ABRA)
+ .2byte EC_POKEMON2(ABRA)
+ .2byte EC_WORD_ABSENT
+ .2byte EC_POKEMON(ABSOL)
+ .2byte EC_WORD_ABSOLUTELY
+ .2byte EC_MOVE(ABSORB)
+ .2byte EC_WORD_ACCEPT
+ .2byte EC_MOVE2(ACID)
+ .2byte EC_MOVE2(ACID_ARMOR)
+ .2byte EC_WORD_ADORE
+ .2byte EC_WORD_ADULT
+ .2byte EC_WORD_ADVENTURE
+ .2byte EC_MOVE2(AERIAL_ACE)
+ .2byte EC_MOVE(AEROBLAST)
+ .2byte EC_POKEMON2(AERODACTYL)
+ .2byte EC_WORD_AFTER
+ .2byte EC_WORD_AGE
+ .2byte EC_POKEMON(AGGRON)
+ .2byte EC_MOVE(AGILITY)
+ .2byte EC_WORD_AGREE
+ .2byte EC_WORD_AHAHA
+ .2byte EC_WORD_AIM
+ .2byte EC_POKEMON2(AIPOM)
+ .2byte EC_MOVE(AIR_CUTTER)
+ .2byte EC_WORD_AIR_LOCK
+ .2byte EC_WORD_AIYEEH
+ ec_duplicates 2
+ .2byte EC_POKEMON(ALAKAZAM)
+ .2byte EC_POKEMON2(ALAKAZAM)
+ .2byte EC_WORD_ALL
+ .2byte EC_WORD_ALL_RIGHT
+ .2byte EC_WORD_ALLOW
+ .2byte EC_WORD_ALLOWANCE
+ .2byte EC_WORD_ALLY
+ .2byte EC_WORD_ALMOST
+ .2byte EC_WORD_ALONE
+ .2byte EC_WORD_ALSO
+ .2byte EC_WORD_ALT_COLOR
+ .2byte EC_POKEMON(ALTARIA)
+ .2byte EC_WORD_ALTHOUGH
+ .2byte EC_WORD_ALWAYS
+ .2byte EC_WORD_AM
+ .2byte EC_MOVE2(AMNESIA)
+ .2byte EC_POKEMON2(AMPHAROS)
+ .2byte EC_WORD_AMUSING
+ .2byte EC_WORD_AN
+ .2byte EC_MOVE(ANCIENT_POWER)
+ .2byte EC_WORD_AND
+ .2byte EC_WORD_ANGER
+ .2byte EC_WORD_ANGERS
+ .2byte EC_WORD_ANGRY
+ .2byte EC_WORD_ANIME
+ .2byte EC_POKEMON(ANORITH)
+ .2byte EC_WORD_ANOTHER
+ .2byte EC_WORD_ANTICIPATION
+ .2byte EC_WORD_ANY
+ .2byte EC_WORD_ANYWHERE
+ .2byte EC_WORD_APOLOGIZE
+ .2byte EC_WORD_APPEAL
+ .2byte EC_WORD_APPEAR
+ .2byte EC_WORD_APPEARS
+ .2byte EC_WORD_APPRECIATE
+ .2byte EC_WORD_APPROVED
+ .2byte EC_POKEMON2(ARBOK)
+ .2byte EC_POKEMON2(ARCANINE)
+ .2byte EC_WORD_ARE
+ .2byte EC_WORD_AREN_T
+ .2byte EC_WORD_ARENA_TRAP
+ .2byte EC_POKEMON2(ARIADOS)
+ .2byte EC_MOVE2(ARM_THRUST)
+ .2byte EC_POKEMON(ARMALDO)
+ .2byte EC_MOVE(AROMATHERAPY)
+ .2byte EC_POKEMON(ARON)
+ .2byte EC_WORD_AROUND
+ .2byte EC_WORD_ARRGH
+ .2byte EC_POKEMON2(ARTICUNO)
+ .2byte EC_WORD_AS
+ .2byte EC_WORD_AS_IF
+ .2byte EC_WORD_AS_MUCH_AS
+ .2byte EC_MOVE2(ASSIST)
+ .2byte EC_MOVE(ASTONISH)
+ .2byte EC_WORD_AT
+ .2byte EC_WORD_ATTACK
+ .2byte EC_MOVE2(ATTRACT)
+ .2byte EC_WORD_AUNT
+ .2byte EC_MOVE(AURORA_BEAM)
+ .2byte EC_WORD_AVANT_GARDE
+ .2byte EC_WORD_AWAY
+ .2byte EC_WORD_AWESOME
+ .2byte EC_WORD_AWFUL
+ .2byte EC_WORD_AWFULLY
+ .2byte EC_WORD_AWW
+ ec_duplicates 2
+ .2byte EC_POKEMON(AZUMARILL)
+ .2byte EC_POKEMON2(AZUMARILL)
+ .2byte EC_POKEMON(AZURILL)
gEasyChatWordsByLetter_B:
- ec_word BABE
- ec_word BABY
- ec_word BACK
- ec_word BAD
- ec_word BADLY
- ec_pokemon1 BAGON
- ec_word BALL
- ec_pokemon1 BALTOY
- ec_pokemon1 BANETTE
- ec_word BANG
- ec_pokemon1 BARBOACH
- ec_move2 BARRAGE
- ec_move2 BARRIER
- ec_word BATH
- ec_move2 BATON_PASS
- ec_word BATTLE
- ec_word BATTLE_ARMOR
- ec_word BATTLE_ROOM
- ec_word BATTLE_TOWER
- ec_pokemon2 BAYLEEF
- ec_word BE
- ec_word BEAT
- ec_move2 BEAT_UP
- ec_pokemon1 BEAUTIFLY
- ec_word BEAUTIFUL
- ec_word BEAUTY
- ec_word BECOMES
- ec_pokemon2 BEEDRILL
- ec_word BEEN
- ec_word BEFORE
- ec_word BEGINNING
- ec_word BEING
- ec_pokemon1 BELDUM
- ec_word BELIEVE
- ec_duplicates 2
- ec_pokemon1 BELLOSSOM
- ec_pokemon2 BELLOSSOM
- ec_pokemon2 BELLSPROUT
- ec_move2 BELLY_DRUM
- ec_word BELONGS_TO
- ec_word BELOW
- ec_word BERRY
- ec_word BESIDE
- ec_word BEST
- ec_word BETTER
- ec_move1 BIDE
- ec_word BIG
- ec_word BIKE
- ec_move1 BIND
- ec_move1 BITE
- ec_pokemon2 BLASTOISE
- ec_word BLAZE
- ec_move2 BLAZE_KICK
- ec_pokemon1 BLAZIKEN
- ec_word BLEND
- ec_pokemon2 BLISSEY
- ec_move2 BLIZZARD
- ec_move2 BLOCK
- ec_word BOARD
- ec_move2 BODY_SLAM
- ec_move2 BONE_CLUB
- ec_move2 BONE_RUSH
- ec_move2 BONEMERANG
- ec_word BOOK
- ec_word BORED
- ec_word BORING
- ec_move2 BOUNCE
- ec_word BOY
- ec_word BRAG
- ec_word BREAK
- ec_pokemon1 BRELOOM
- ec_move1 BRICK_BREAK
- ec_word BROTHER
- ec_move1 BUBBLE
- ec_move2 BUBBLE_BEAM
- ec_word BUG
- ec_pokemon2 BULBASAUR
- ec_move2 BULK_UP
- ec_move2 BULLET_SEED
- ec_word BUSY
- ec_word BUT
- ec_pokemon2 BUTTERFREE
- ec_word BYE_BYE
+ .2byte EC_WORD_BABE
+ .2byte EC_WORD_BABY
+ .2byte EC_WORD_BACK
+ .2byte EC_WORD_BAD
+ .2byte EC_WORD_BADLY
+ .2byte EC_POKEMON(BAGON)
+ .2byte EC_WORD_BALL
+ .2byte EC_POKEMON(BALTOY)
+ .2byte EC_POKEMON(BANETTE)
+ .2byte EC_WORD_BANG
+ .2byte EC_POKEMON(BARBOACH)
+ .2byte EC_MOVE2(BARRAGE)
+ .2byte EC_MOVE2(BARRIER)
+ .2byte EC_WORD_BATH
+ .2byte EC_MOVE2(BATON_PASS)
+ .2byte EC_WORD_BATTLE
+ .2byte EC_WORD_BATTLE_ARMOR
+ .2byte EC_WORD_BATTLE_ROOM
+ .2byte EC_WORD_BATTLE_TOWER
+ .2byte EC_POKEMON2(BAYLEEF)
+ .2byte EC_WORD_BE
+ .2byte EC_WORD_BEAT
+ .2byte EC_MOVE2(BEAT_UP)
+ .2byte EC_POKEMON(BEAUTIFLY)
+ .2byte EC_WORD_BEAUTIFUL
+ .2byte EC_WORD_BEAUTY
+ .2byte EC_WORD_BECOMES
+ .2byte EC_POKEMON2(BEEDRILL)
+ .2byte EC_WORD_BEEN
+ .2byte EC_WORD_BEFORE
+ .2byte EC_WORD_BEGINNING
+ .2byte EC_WORD_BEING
+ .2byte EC_POKEMON(BELDUM)
+ .2byte EC_WORD_BELIEVE
+ ec_duplicates 2
+ .2byte EC_POKEMON(BELLOSSOM)
+ .2byte EC_POKEMON2(BELLOSSOM)
+ .2byte EC_POKEMON2(BELLSPROUT)
+ .2byte EC_MOVE2(BELLY_DRUM)
+ .2byte EC_WORD_BELONGS_TO
+ .2byte EC_WORD_BELOW
+ .2byte EC_WORD_BERRY
+ .2byte EC_WORD_BESIDE
+ .2byte EC_WORD_BEST
+ .2byte EC_WORD_BETTER
+ .2byte EC_MOVE(BIDE)
+ .2byte EC_WORD_BIG
+ .2byte EC_WORD_BIKE
+ .2byte EC_MOVE(BIND)
+ .2byte EC_MOVE(BITE)
+ .2byte EC_POKEMON2(BLASTOISE)
+ .2byte EC_WORD_BLAZE
+ .2byte EC_MOVE2(BLAZE_KICK)
+ .2byte EC_POKEMON(BLAZIKEN)
+ .2byte EC_WORD_BLEND
+ .2byte EC_POKEMON2(BLISSEY)
+ .2byte EC_MOVE2(BLIZZARD)
+ .2byte EC_MOVE2(BLOCK)
+ .2byte EC_WORD_BOARD
+ .2byte EC_MOVE2(BODY_SLAM)
+ .2byte EC_MOVE2(BONE_CLUB)
+ .2byte EC_MOVE2(BONE_RUSH)
+ .2byte EC_MOVE2(BONEMERANG)
+ .2byte EC_WORD_BOOK
+ .2byte EC_WORD_BORED
+ .2byte EC_WORD_BORING
+ .2byte EC_MOVE2(BOUNCE)
+ .2byte EC_WORD_BOY
+ .2byte EC_WORD_BRAG
+ .2byte EC_WORD_BREAK
+ .2byte EC_POKEMON(BRELOOM)
+ .2byte EC_MOVE(BRICK_BREAK)
+ .2byte EC_WORD_BROTHER
+ .2byte EC_MOVE(BUBBLE)
+ .2byte EC_MOVE2(BUBBLE_BEAM)
+ .2byte EC_WORD_BUG
+ .2byte EC_POKEMON2(BULBASAUR)
+ .2byte EC_MOVE2(BULK_UP)
+ .2byte EC_MOVE2(BULLET_SEED)
+ .2byte EC_WORD_BUSY
+ .2byte EC_WORD_BUT
+ .2byte EC_POKEMON2(BUTTERFREE)
+ .2byte EC_WORD_BYE_BYE
gEasyChatWordsByLetter_C:
- ec_pokemon1 CACNEA
- ec_pokemon1 CACTURNE
- ec_move2 CALM_MIND
- ec_word CAME
- ec_word CAMERA
- ec_pokemon1 CAMERUPT
- ec_move2 CAMOUFLAGE
- ec_word CAN
- ec_word CAN_WIN
- ec_word CAN_T
- ec_word CAN_T_WIN
- ec_word CANCEL
- ec_word CAPABLE
- ec_word CARDS
- ec_word CARE
- ec_word CARES
- ec_pokemon1 CARVANHA
- ec_pokemon1 CASCOON
- ec_word CASE
- ec_pokemon1 CASTFORM
- ec_pokemon2 CATERPIE
- ec_word CAUSE
- ec_pokemon2 CELEBI
- ec_word CENTER
- ec_word CHALLENGE
- ec_word CHANGE
- ec_word CHANNEL
- ec_pokemon2 CHANSEY
- ec_move1 CHARGE
- ec_pokemon2 CHARIZARD
- ec_move1 CHARM
- ec_pokemon2 CHARMANDER
- ec_pokemon2 CHARMELEON
- ec_word CHAT
- ec_pokemon2 CHIKORITA
- ec_word CHILD_S_PLAY
- ec_word CHILDREN
- ec_pokemon1 CHIMECHO
- ec_duplicates 2
- ec_pokemon1 CHINCHOU
- ec_pokemon2 CHINCHOU
- ec_word CHLOROPHYLL
- ec_word CHOICE
- ec_word CHOOSE
- ec_word CHORES
- ec_move1 CLAMP
- ec_pokemon1 CLAMPERL
- ec_word CLASS
- ec_pokemon1 CLAYDOL
- ec_word CLEAR_BODY
- ec_pokemon2 CLEFABLE
- ec_pokemon2 CLEFAIRY
- ec_pokemon2 CLEFFA
- ec_word CLOSE
- ec_word CLOUD_NINE
- ec_pokemon2 CLOYSTER
- ec_word COLD
- ec_word COLLECT
- ec_word COLLECTION
- ec_word COLOR
- ec_word COLOR_CHANGE
- ec_pokemon1 COMBUSKEN
- ec_word COME
- ec_word COME_ON
- ec_word COME_OVER
- ec_move2 COMET_PUNCH
- ec_word COMICS
- ec_word COMMEMORATE
- ec_word COMPLETE
- ec_word COMPOUNDEYES
- ec_word CONCEDE
- ec_move1 CONFUSE_RAY
- ec_word CONFUSED
- ec_move2 CONFUSION
- ec_word CONGRATS
- ec_move1 CONSTRICT
- ec_word CONTEST
- ec_word CONVERSATION
- ec_move2 CONVERSION
- ec_move2 CONVERSION_2
- ec_word COOL
- ec_word COOLNESS
- ec_pokemon1 CORPHISH
- ec_word CORRECT
- ec_duplicates 2
- ec_pokemon1 CORSOLA
- ec_pokemon2 CORSOLA
- ec_move1 COSMIC_POWER
- ec_move2 COTTON_SPORE
- ec_word COULD
- ec_word COULDN_T
- ec_word COUNT_ON
- ec_move1 COUNTER
- ec_word COUPLE
- ec_move2 COVET
- ec_move1 CRABHAMMER
- ec_pokemon1 CRADILY
- ec_pokemon1 CRAWDAUNT
- ec_word CRIES
- ec_duplicates 2
- ec_pokemon1 CROBAT
- ec_pokemon2 CROBAT
- ec_pokemon2 CROCONAW
- ec_move1 CROSS_CHOP
- ec_move1 CRUNCH
- ec_move2 CRUSH_CLAW
- ec_word CRY
- ec_pokemon2 CUBONE
- ec_word CURRENT
- ec_move2 CURSE
- ec_move1 CUT
- ec_word CUTE
- ec_word CUTE_CHARM
- ec_word CUTENESS
- ec_pokemon2 CYNDAQUIL
+ .2byte EC_POKEMON(CACNEA)
+ .2byte EC_POKEMON(CACTURNE)
+ .2byte EC_MOVE2(CALM_MIND)
+ .2byte EC_WORD_CAME
+ .2byte EC_WORD_CAMERA
+ .2byte EC_POKEMON(CAMERUPT)
+ .2byte EC_MOVE2(CAMOUFLAGE)
+ .2byte EC_WORD_CAN
+ .2byte EC_WORD_CAN_WIN
+ .2byte EC_WORD_CAN_T
+ .2byte EC_WORD_CAN_T_WIN
+ .2byte EC_WORD_CANCEL
+ .2byte EC_WORD_CAPABLE
+ .2byte EC_WORD_CARDS
+ .2byte EC_WORD_CARE
+ .2byte EC_WORD_CARES
+ .2byte EC_POKEMON(CARVANHA)
+ .2byte EC_POKEMON(CASCOON)
+ .2byte EC_WORD_CASE
+ .2byte EC_POKEMON(CASTFORM)
+ .2byte EC_POKEMON2(CATERPIE)
+ .2byte EC_WORD_CAUSE
+ .2byte EC_POKEMON2(CELEBI)
+ .2byte EC_WORD_CENTER
+ .2byte EC_WORD_CHALLENGE
+ .2byte EC_WORD_CHANGE
+ .2byte EC_WORD_CHANNEL
+ .2byte EC_POKEMON2(CHANSEY)
+ .2byte EC_MOVE(CHARGE)
+ .2byte EC_POKEMON2(CHARIZARD)
+ .2byte EC_MOVE(CHARM)
+ .2byte EC_POKEMON2(CHARMANDER)
+ .2byte EC_POKEMON2(CHARMELEON)
+ .2byte EC_WORD_CHAT
+ .2byte EC_POKEMON2(CHIKORITA)
+ .2byte EC_WORD_CHILD_S_PLAY
+ .2byte EC_WORD_CHILDREN
+ .2byte EC_POKEMON(CHIMECHO)
+ ec_duplicates 2
+ .2byte EC_POKEMON(CHINCHOU)
+ .2byte EC_POKEMON2(CHINCHOU)
+ .2byte EC_WORD_CHLOROPHYLL
+ .2byte EC_WORD_CHOICE
+ .2byte EC_WORD_CHOOSE
+ .2byte EC_WORD_CHORES
+ .2byte EC_MOVE(CLAMP)
+ .2byte EC_POKEMON(CLAMPERL)
+ .2byte EC_WORD_CLASS
+ .2byte EC_POKEMON(CLAYDOL)
+ .2byte EC_WORD_CLEAR_BODY
+ .2byte EC_POKEMON2(CLEFABLE)
+ .2byte EC_POKEMON2(CLEFAIRY)
+ .2byte EC_POKEMON2(CLEFFA)
+ .2byte EC_WORD_CLOSE
+ .2byte EC_WORD_CLOUD_NINE
+ .2byte EC_POKEMON2(CLOYSTER)
+ .2byte EC_WORD_COLD
+ .2byte EC_WORD_COLLECT
+ .2byte EC_WORD_COLLECTION
+ .2byte EC_WORD_COLOR
+ .2byte EC_WORD_COLOR_CHANGE
+ .2byte EC_POKEMON(COMBUSKEN)
+ .2byte EC_WORD_COME
+ .2byte EC_WORD_COME_ON
+ .2byte EC_WORD_COME_OVER
+ .2byte EC_MOVE2(COMET_PUNCH)
+ .2byte EC_WORD_COMICS
+ .2byte EC_WORD_COMMEMORATE
+ .2byte EC_WORD_COMPLETE
+ .2byte EC_WORD_COMPOUNDEYES
+ .2byte EC_WORD_CONCEDE
+ .2byte EC_MOVE(CONFUSE_RAY)
+ .2byte EC_WORD_CONFUSED
+ .2byte EC_MOVE2(CONFUSION)
+ .2byte EC_WORD_CONGRATS
+ .2byte EC_MOVE(CONSTRICT)
+ .2byte EC_WORD_CONTEST
+ .2byte EC_WORD_CONVERSATION
+ .2byte EC_MOVE2(CONVERSION)
+ .2byte EC_MOVE2(CONVERSION_2)
+ .2byte EC_WORD_COOL
+ .2byte EC_WORD_COOLNESS
+ .2byte EC_POKEMON(CORPHISH)
+ .2byte EC_WORD_CORRECT
+ ec_duplicates 2
+ .2byte EC_POKEMON(CORSOLA)
+ .2byte EC_POKEMON2(CORSOLA)
+ .2byte EC_MOVE(COSMIC_POWER)
+ .2byte EC_MOVE2(COTTON_SPORE)
+ .2byte EC_WORD_COULD
+ .2byte EC_WORD_COULDN_T
+ .2byte EC_WORD_COUNT_ON
+ .2byte EC_MOVE(COUNTER)
+ .2byte EC_WORD_COUPLE
+ .2byte EC_MOVE2(COVET)
+ .2byte EC_MOVE(CRABHAMMER)
+ .2byte EC_POKEMON(CRADILY)
+ .2byte EC_POKEMON(CRAWDAUNT)
+ .2byte EC_WORD_CRIES
+ ec_duplicates 2
+ .2byte EC_POKEMON(CROBAT)
+ .2byte EC_POKEMON2(CROBAT)
+ .2byte EC_POKEMON2(CROCONAW)
+ .2byte EC_MOVE(CROSS_CHOP)
+ .2byte EC_MOVE(CRUNCH)
+ .2byte EC_MOVE2(CRUSH_CLAW)
+ .2byte EC_WORD_CRY
+ .2byte EC_POKEMON2(CUBONE)
+ .2byte EC_WORD_CURRENT
+ .2byte EC_MOVE2(CURSE)
+ .2byte EC_MOVE(CUT)
+ .2byte EC_WORD_CUTE
+ .2byte EC_WORD_CUTE_CHARM
+ .2byte EC_WORD_CUTENESS
+ .2byte EC_POKEMON2(CYNDAQUIL)
gEasyChatWordsByLetter_D:
- ec_word DAILY
- ec_word DAMP
- ec_word DANCE
- ec_word DANGER
- ec_word DARK
- ec_word DARN
- ec_word DATE
- ec_word DAUGHTER
- ec_word DAY
- ec_word DAYS
- ec_word DAYTIME
- ec_word DECIDE
- ec_word DECIDED
- ec_word DEEP
- ec_word DEFEATED
- ec_move2 DEFENSE_CURL
- ec_pokemon1 DELCATTY
- ec_pokemon2 DELIBIRD
- ec_pokemon1 DEOXYS
- ec_word DEPT_STORE
- ec_word DESIGN
- ec_word DESTINY
- ec_move2 DESTINY_BOND
- ec_word DESTROYED
- ec_move2 DETECT
- ec_pokemon2 DEWGONG
- ec_word DID
- ec_word DIDN_T
- ec_word DIET
- ec_word DIFFERENT
- ec_move1 DIG
- ec_word DIGITAL
- ec_pokemon2 DIGLETT
- ec_move1 DISABLE
- ec_word DISAPPEAR
- ec_word DISAPPOINT
- ec_word DISAPPOINTED
- ec_word DISAPPOINTS
- ec_word DISASTER
- ec_word DISLIKE
- ec_word DISLIKES
- ec_pokemon2 DITTO
- ec_move2 DIVE
- ec_move2 DIZZY_PUNCH
- ec_word DO
- ec_word DOCILE
- ec_duplicates 2
- ec_pokemon1 DODRIO
- ec_pokemon2 DODRIO
- ec_duplicates 2
- ec_pokemon1 DODUO
- ec_pokemon2 DODUO
- ec_word DOES
- ec_word DOESN_T
- ec_word DON_T
- ec_word DONE
- ec_duplicates 2
- ec_pokemon1 DONPHAN
- ec_pokemon2 DONPHAN
- ec_move2 DOUBLE_KICK
- ec_move1 DOUBLE_TEAM
- ec_move1 DOUBLE_EDGE
- ec_move1 DOUBLE_SLAP
- ec_word DOWN
- ec_word DOWNCAST
- ec_word DRAGON
- ec_move2 DRAGON_CLAW
- ec_move2 DRAGON_DANCE
- ec_move2 DRAGON_RAGE
- ec_pokemon2 DRAGONAIR
- ec_move2 DRAGON_BREATH
- ec_pokemon2 DRAGONITE
- ec_pokemon2 DRATINI
- ec_word DREAM
- ec_move2 DREAM_EATER
- ec_move2 DRILL_PECK
- ec_word DRINK
- ec_word DRINKS
- ec_word DRIZZLE
- ec_word DROOLING
- ec_word DROUGHT
- ec_pokemon2 DROWZEE
- ec_word DUDE
- ec_pokemon2 DUGTRIO
- ec_pokemon2 DUNSPARCE
- ec_pokemon1 DUSCLOPS
- ec_pokemon1 DUSKULL
- ec_pokemon1 DUSTOX
- ec_move2 DYNAMIC_PUNCH
+ .2byte EC_WORD_DAILY
+ .2byte EC_WORD_DAMP
+ .2byte EC_WORD_DANCE
+ .2byte EC_WORD_DANGER
+ .2byte EC_WORD_DARK
+ .2byte EC_WORD_DARN
+ .2byte EC_WORD_DATE
+ .2byte EC_WORD_DAUGHTER
+ .2byte EC_WORD_DAY
+ .2byte EC_WORD_DAYS
+ .2byte EC_WORD_DAYTIME
+ .2byte EC_WORD_DECIDE
+ .2byte EC_WORD_DECIDED
+ .2byte EC_WORD_DEEP
+ .2byte EC_WORD_DEFEATED
+ .2byte EC_MOVE2(DEFENSE_CURL)
+ .2byte EC_POKEMON(DELCATTY)
+ .2byte EC_POKEMON2(DELIBIRD)
+ .2byte EC_POKEMON(DEOXYS)
+ .2byte EC_WORD_DEPT_STORE
+ .2byte EC_WORD_DESIGN
+ .2byte EC_WORD_DESTINY
+ .2byte EC_MOVE2(DESTINY_BOND)
+ .2byte EC_WORD_DESTROYED
+ .2byte EC_MOVE2(DETECT)
+ .2byte EC_POKEMON2(DEWGONG)
+ .2byte EC_WORD_DID
+ .2byte EC_WORD_DIDN_T
+ .2byte EC_WORD_DIET
+ .2byte EC_WORD_DIFFERENT
+ .2byte EC_MOVE(DIG)
+ .2byte EC_WORD_DIGITAL
+ .2byte EC_POKEMON2(DIGLETT)
+ .2byte EC_MOVE(DISABLE)
+ .2byte EC_WORD_DISAPPEAR
+ .2byte EC_WORD_DISAPPOINT
+ .2byte EC_WORD_DISAPPOINTED
+ .2byte EC_WORD_DISAPPOINTS
+ .2byte EC_WORD_DISASTER
+ .2byte EC_WORD_DISLIKE
+ .2byte EC_WORD_DISLIKES
+ .2byte EC_POKEMON2(DITTO)
+ .2byte EC_MOVE2(DIVE)
+ .2byte EC_MOVE2(DIZZY_PUNCH)
+ .2byte EC_WORD_DO
+ .2byte EC_WORD_DOCILE
+ ec_duplicates 2
+ .2byte EC_POKEMON(DODRIO)
+ .2byte EC_POKEMON2(DODRIO)
+ ec_duplicates 2
+ .2byte EC_POKEMON(DODUO)
+ .2byte EC_POKEMON2(DODUO)
+ .2byte EC_WORD_DOES
+ .2byte EC_WORD_DOESN_T
+ .2byte EC_WORD_DON_T
+ .2byte EC_WORD_DONE
+ ec_duplicates 2
+ .2byte EC_POKEMON(DONPHAN)
+ .2byte EC_POKEMON2(DONPHAN)
+ .2byte EC_MOVE2(DOUBLE_KICK)
+ .2byte EC_MOVE(DOUBLE_TEAM)
+ .2byte EC_MOVE(DOUBLE_EDGE)
+ .2byte EC_MOVE(DOUBLE_SLAP)
+ .2byte EC_WORD_DOWN
+ .2byte EC_WORD_DOWNCAST
+ .2byte EC_WORD_DRAGON
+ .2byte EC_MOVE2(DRAGON_CLAW)
+ .2byte EC_MOVE2(DRAGON_DANCE)
+ .2byte EC_MOVE2(DRAGON_RAGE)
+ .2byte EC_POKEMON2(DRAGONAIR)
+ .2byte EC_MOVE2(DRAGON_BREATH)
+ .2byte EC_POKEMON2(DRAGONITE)
+ .2byte EC_POKEMON2(DRATINI)
+ .2byte EC_WORD_DREAM
+ .2byte EC_MOVE2(DREAM_EATER)
+ .2byte EC_MOVE2(DRILL_PECK)
+ .2byte EC_WORD_DRINK
+ .2byte EC_WORD_DRINKS
+ .2byte EC_WORD_DRIZZLE
+ .2byte EC_WORD_DROOLING
+ .2byte EC_WORD_DROUGHT
+ .2byte EC_POKEMON2(DROWZEE)
+ .2byte EC_WORD_DUDE
+ .2byte EC_POKEMON2(DUGTRIO)
+ .2byte EC_POKEMON2(DUNSPARCE)
+ .2byte EC_POKEMON(DUSCLOPS)
+ .2byte EC_POKEMON(DUSKULL)
+ .2byte EC_POKEMON(DUSTOX)
+ .2byte EC_MOVE2(DYNAMIC_PUNCH)
gEasyChatWordsByLetter_E:
- ec_word EARLIER
- ec_word EARLY_BIRD
- ec_move1 EARTHQUAKE
- ec_word EASY
- ec_word EAT
- ec_word EATS
- ec_word EEK
- ec_pokemon2 EEVEE
- ec_word EFFECT_SPORE
- ec_word EGG
- ec_move2 EGG_BOMB
- ec_word EH_QUES
- ec_word EHEHE
- ec_pokemon2 EKANS
- ec_pokemon2 ELECTABUZZ
- ec_word ELECTRIC
- ec_pokemon1 ELECTRIKE
- ec_duplicates 2
- ec_pokemon1 ELECTRODE
- ec_pokemon2 ELECTRODE
- ec_pokemon2 ELEKID
- ec_word ELSE
- ec_move2 EMBER
- ec_move1 ENCORE
- ec_word ENCYCLOPEDIA
- ec_word END
- ec_move1 ENDEAVOR
- ec_move1 ENDURE
- ec_word ENJOY
- ec_word ENJOYS
- ec_word ENOUGH
- ec_pokemon2 ENTEI
- ec_word ENTERTAINING
- ec_move2 ERUPTION
- ec_word ESCAPE
- ec_pokemon2 ESPEON
- ec_word EVEN_SO
- ec_word EVENT
- ec_word EVENTS
- ec_word EVER
- ec_word EVERY
- ec_word EVOLUTION
- ec_word EVOLVE
- ec_word EXCELLENT
- ec_word EXCESS
- ec_word EXCITE
- ec_word EXCITING
- ec_word EXCUSE
- ec_word EXCUSE_ME
- ec_pokemon2 EXEGGCUTE
- ec_pokemon2 EXEGGUTOR
- ec_word EXISTS
- ec_word EXPENSIVE
- ec_move2 EXPLOSION
- ec_pokemon1 EXPLOUD
- ec_move1 EXTRASENSORY
- ec_move1 EXTREME_SPEED
+ .2byte EC_WORD_EARLIER
+ .2byte EC_WORD_EARLY_BIRD
+ .2byte EC_MOVE(EARTHQUAKE)
+ .2byte EC_WORD_EASY
+ .2byte EC_WORD_EAT
+ .2byte EC_WORD_EATS
+ .2byte EC_WORD_EEK
+ .2byte EC_POKEMON2(EEVEE)
+ .2byte EC_WORD_EFFECT_SPORE
+ .2byte EC_WORD_EGG
+ .2byte EC_MOVE2(EGG_BOMB)
+ .2byte EC_WORD_EH_QUES
+ .2byte EC_WORD_EHEHE
+ .2byte EC_POKEMON2(EKANS)
+ .2byte EC_POKEMON2(ELECTABUZZ)
+ .2byte EC_WORD_ELECTRIC
+ .2byte EC_POKEMON(ELECTRIKE)
+ ec_duplicates 2
+ .2byte EC_POKEMON(ELECTRODE)
+ .2byte EC_POKEMON2(ELECTRODE)
+ .2byte EC_POKEMON2(ELEKID)
+ .2byte EC_WORD_ELSE
+ .2byte EC_MOVE2(EMBER)
+ .2byte EC_MOVE(ENCORE)
+ .2byte EC_WORD_ENCYCLOPEDIA
+ .2byte EC_WORD_END
+ .2byte EC_MOVE(ENDEAVOR)
+ .2byte EC_MOVE(ENDURE)
+ .2byte EC_WORD_ENJOY
+ .2byte EC_WORD_ENJOYS
+ .2byte EC_WORD_ENOUGH
+ .2byte EC_POKEMON2(ENTEI)
+ .2byte EC_WORD_ENTERTAINING
+ .2byte EC_MOVE2(ERUPTION)
+ .2byte EC_WORD_ESCAPE
+ .2byte EC_POKEMON2(ESPEON)
+ .2byte EC_WORD_EVEN_SO
+ .2byte EC_WORD_EVENT
+ .2byte EC_WORD_EVENTS
+ .2byte EC_WORD_EVER
+ .2byte EC_WORD_EVERY
+ .2byte EC_WORD_EVOLUTION
+ .2byte EC_WORD_EVOLVE
+ .2byte EC_WORD_EXCELLENT
+ .2byte EC_WORD_EXCESS
+ .2byte EC_WORD_EXCITE
+ .2byte EC_WORD_EXCITING
+ .2byte EC_WORD_EXCUSE
+ .2byte EC_WORD_EXCUSE_ME
+ .2byte EC_POKEMON2(EXEGGCUTE)
+ .2byte EC_POKEMON2(EXEGGUTOR)
+ .2byte EC_WORD_EXISTS
+ .2byte EC_WORD_EXPENSIVE
+ .2byte EC_MOVE2(EXPLOSION)
+ .2byte EC_POKEMON(EXPLOUD)
+ .2byte EC_MOVE(EXTRASENSORY)
+ .2byte EC_MOVE(EXTREME_SPEED)
gEasyChatWordsByLetter_F:
- ec_word FABULOUS
- ec_move1 FACADE
- ec_word FAINT
- ec_move2 FAINT_ATTACK
- ec_word FAINTED
- ec_move2 FAKE_OUT
- ec_move1 FAKE_TEARS
- ec_word FALL
- ec_move2 FALSE_SWIPE
- ec_word FAMILY
- ec_word FANTASTIC
- ec_word FAR
- ec_pokemon2 FARFETCHD
- ec_word FASHION
- ec_word FAST
- ec_word FATHER
- ec_word FEAR
- ec_pokemon2 FEAROW
- ec_move2 FEATHER_DANCE
- ec_pokemon1 FEEBAS
- ec_word FEELING
- ec_pokemon2 FERALIGATR
- ec_word FESTIVAL
- ec_word FEVER
- ec_word FIERY
- ec_word FIGHT
- ec_word FIGHTING
- ec_word FIGHTS
- ec_word FINAL
- ec_word FINALLY
- ec_word FINISH
- ec_word FIRE
- ec_move2 FIRE_BLAST
- ec_move2 FIRE_PUNCH
- ec_move2 FIRE_SPIN
- ec_word FISHING
- ec_move1 FISSURE
- ec_pokemon2 FLAAFFY
- ec_move1 FLAIL
- ec_word FLAME_BODY
- ec_move1 FLAME_WHEEL
- ec_move1 FLAMETHROWER
- ec_pokemon2 FLAREON
- ec_move2 FLASH
- ec_word FLASH_FIRE
- ec_word FLATTEN
- ec_move1 FLATTER
- ec_word FLOWERS
- ec_move1 FLY
- ec_pokemon1 FLYGON
- ec_word FLYING
- ec_move1 FOCUS_ENERGY
- ec_move1 FOCUS_PUNCH
- ec_word FOE
- ec_move1 FOLLOW_ME
- ec_word FOR
- ec_word FOR_NOW
- ec_word FORECAST
- ec_move2 FORESIGHT
- ec_word FOREVER
- ec_word FORGET
- ec_word FORGETS
- ec_word FORGIVE
- ec_pokemon2 FORRETRESS
- ec_word FRIDAY
- ec_word FRIEND
- ec_word FROM
- ec_word FRONT
- ec_move2 FRUSTRATION
- ec_word FUFUFU
- ec_word FULL
- ec_word FUNNY
- ec_pokemon2 FURRET
- ec_move2 FURY_ATTACK
- ec_move2 FURY_CUTTER
- ec_move2 FURY_SWIPES
- ec_move2 FUTURE_SIGHT
+ .2byte EC_WORD_FABULOUS
+ .2byte EC_MOVE(FACADE)
+ .2byte EC_WORD_FAINT
+ .2byte EC_MOVE2(FAINT_ATTACK)
+ .2byte EC_WORD_FAINTED
+ .2byte EC_MOVE2(FAKE_OUT)
+ .2byte EC_MOVE(FAKE_TEARS)
+ .2byte EC_WORD_FALL
+ .2byte EC_MOVE2(FALSE_SWIPE)
+ .2byte EC_WORD_FAMILY
+ .2byte EC_WORD_FANTASTIC
+ .2byte EC_WORD_FAR
+ .2byte EC_POKEMON2(FARFETCHD)
+ .2byte EC_WORD_FASHION
+ .2byte EC_WORD_FAST
+ .2byte EC_WORD_FATHER
+ .2byte EC_WORD_FEAR
+ .2byte EC_POKEMON2(FEAROW)
+ .2byte EC_MOVE2(FEATHER_DANCE)
+ .2byte EC_POKEMON(FEEBAS)
+ .2byte EC_WORD_FEELING
+ .2byte EC_POKEMON2(FERALIGATR)
+ .2byte EC_WORD_FESTIVAL
+ .2byte EC_WORD_FEVER
+ .2byte EC_WORD_FIERY
+ .2byte EC_WORD_FIGHT
+ .2byte EC_WORD_FIGHTING
+ .2byte EC_WORD_FIGHTS
+ .2byte EC_WORD_FINAL
+ .2byte EC_WORD_FINALLY
+ .2byte EC_WORD_FINISH
+ .2byte EC_WORD_FIRE
+ .2byte EC_MOVE2(FIRE_BLAST)
+ .2byte EC_MOVE2(FIRE_PUNCH)
+ .2byte EC_MOVE2(FIRE_SPIN)
+ .2byte EC_WORD_FISHING
+ .2byte EC_MOVE(FISSURE)
+ .2byte EC_POKEMON2(FLAAFFY)
+ .2byte EC_MOVE(FLAIL)
+ .2byte EC_WORD_FLAME_BODY
+ .2byte EC_MOVE(FLAME_WHEEL)
+ .2byte EC_MOVE(FLAMETHROWER)
+ .2byte EC_POKEMON2(FLAREON)
+ .2byte EC_MOVE2(FLASH)
+ .2byte EC_WORD_FLASH_FIRE
+ .2byte EC_WORD_FLATTEN
+ .2byte EC_MOVE(FLATTER)
+ .2byte EC_WORD_FLOWERS
+ .2byte EC_MOVE(FLY)
+ .2byte EC_POKEMON(FLYGON)
+ .2byte EC_WORD_FLYING
+ .2byte EC_MOVE(FOCUS_ENERGY)
+ .2byte EC_MOVE(FOCUS_PUNCH)
+ .2byte EC_WORD_FOE
+ .2byte EC_MOVE(FOLLOW_ME)
+ .2byte EC_WORD_FOR
+ .2byte EC_WORD_FOR_NOW
+ .2byte EC_WORD_FORECAST
+ .2byte EC_MOVE2(FORESIGHT)
+ .2byte EC_WORD_FOREVER
+ .2byte EC_WORD_FORGET
+ .2byte EC_WORD_FORGETS
+ .2byte EC_WORD_FORGIVE
+ .2byte EC_POKEMON2(FORRETRESS)
+ .2byte EC_WORD_FRIDAY
+ .2byte EC_WORD_FRIEND
+ .2byte EC_WORD_FROM
+ .2byte EC_WORD_FRONT
+ .2byte EC_MOVE2(FRUSTRATION)
+ .2byte EC_WORD_FUFUFU
+ .2byte EC_WORD_FULL
+ .2byte EC_WORD_FUNNY
+ .2byte EC_POKEMON2(FURRET)
+ .2byte EC_MOVE2(FURY_ATTACK)
+ .2byte EC_MOVE2(FURY_CUTTER)
+ .2byte EC_MOVE2(FURY_SWIPES)
+ .2byte EC_MOVE2(FUTURE_SIGHT)
gEasyChatWordsByLetter_G:
- ec_word GAME
- ec_pokemon1 GARDEVOIR
- ec_pokemon2 GASTLY
- ec_pokemon2 GENGAR
- ec_word GENIUS
- ec_duplicates 2
- ec_pokemon1 GEODUDE
- ec_pokemon2 GEODUDE
- ec_word GET
- ec_word GETS
- ec_word GHOST
- ec_word GIDDY
- ec_move1 GIGA_DRAIN
- ec_word GIGGLE
- ec_word GIMME
- ec_duplicates 2
- ec_pokemon1 GIRAFARIG
- ec_pokemon2 GIRAFARIG
- ec_word GIRL
- ec_word GIVE
- ec_word GIVE_ME
- ec_word GIVE_UP
- ec_word GIVES
- ec_pokemon1 GLALIE
- ec_move2 GLARE
- ec_pokemon2 GLIGAR
- ec_duplicates 2
- ec_pokemon1 GLOOM
- ec_pokemon2 GLOOM
- ec_word GO
- ec_word GO_AHEAD
- ec_word GO_EASY
- ec_word GO_HOME
- ec_word GOES
- ec_word GOING
- ec_duplicates 2
- ec_pokemon1 GOLBAT
- ec_pokemon2 GOLBAT
- ec_duplicates 2
- ec_pokemon1 GOLDEEN
- ec_pokemon2 GOLDEEN
- ec_duplicates 2
- ec_pokemon1 GOLDUCK
- ec_pokemon2 GOLDUCK
- ec_duplicates 2
- ec_pokemon1 GOLEM
- ec_pokemon2 GOLEM
- ec_word GOOD
- ec_word GOOD_BYE
- ec_pokemon1 GOREBYSS
- ec_word GOT
- ec_word GOTCHA
- ec_word GOURMET
- ec_word GRAAAH
- ec_pokemon2 GRANBULL
- ec_word GRANDFATHER
- ec_word GRANDMOTHER
- ec_word GRASS
- ec_move1 GRASS_WHISTLE
- ec_duplicates 2
- ec_pokemon1 GRAVELER
- ec_pokemon2 GRAVELER
- ec_word GREAT
- ec_duplicates 2
- ec_pokemon1 GRIMER
- ec_pokemon2 GRIMER
- ec_pokemon1 GROUDON
- ec_word GROUND
- ec_word GROUP
- ec_pokemon1 GROVYLE
- ec_move2 GROWL
- ec_pokemon2 GROWLITHE
- ec_move1 GROWTH
- ec_move1 GRUDGE
- ec_pokemon1 GRUMPIG
- ec_word GUARD
- ec_move2 GUILLOTINE
- ec_pokemon1 GULPIN
- ec_move1 GUST
- ec_word GUTS
- ec_word GUTSY
- ec_word GWAH
- ec_word GWAHAHAHA
- ec_duplicates 2
- ec_pokemon1 GYARADOS
- ec_pokemon2 GYARADOS
+ .2byte EC_WORD_GAME
+ .2byte EC_POKEMON(GARDEVOIR)
+ .2byte EC_POKEMON2(GASTLY)
+ .2byte EC_POKEMON2(GENGAR)
+ .2byte EC_WORD_GENIUS
+ ec_duplicates 2
+ .2byte EC_POKEMON(GEODUDE)
+ .2byte EC_POKEMON2(GEODUDE)
+ .2byte EC_WORD_GET
+ .2byte EC_WORD_GETS
+ .2byte EC_WORD_GHOST
+ .2byte EC_WORD_GIDDY
+ .2byte EC_MOVE(GIGA_DRAIN)
+ .2byte EC_WORD_GIGGLE
+ .2byte EC_WORD_GIMME
+ ec_duplicates 2
+ .2byte EC_POKEMON(GIRAFARIG)
+ .2byte EC_POKEMON2(GIRAFARIG)
+ .2byte EC_WORD_GIRL
+ .2byte EC_WORD_GIVE
+ .2byte EC_WORD_GIVE_ME
+ .2byte EC_WORD_GIVE_UP
+ .2byte EC_WORD_GIVES
+ .2byte EC_POKEMON(GLALIE)
+ .2byte EC_MOVE2(GLARE)
+ .2byte EC_POKEMON2(GLIGAR)
+ ec_duplicates 2
+ .2byte EC_POKEMON(GLOOM)
+ .2byte EC_POKEMON2(GLOOM)
+ .2byte EC_WORD_GO
+ .2byte EC_WORD_GO_AHEAD
+ .2byte EC_WORD_GO_EASY
+ .2byte EC_WORD_GO_HOME
+ .2byte EC_WORD_GOES
+ .2byte EC_WORD_GOING
+ ec_duplicates 2
+ .2byte EC_POKEMON(GOLBAT)
+ .2byte EC_POKEMON2(GOLBAT)
+ ec_duplicates 2
+ .2byte EC_POKEMON(GOLDEEN)
+ .2byte EC_POKEMON2(GOLDEEN)
+ ec_duplicates 2
+ .2byte EC_POKEMON(GOLDUCK)
+ .2byte EC_POKEMON2(GOLDUCK)
+ ec_duplicates 2
+ .2byte EC_POKEMON(GOLEM)
+ .2byte EC_POKEMON2(GOLEM)
+ .2byte EC_WORD_GOOD
+ .2byte EC_WORD_GOOD_BYE
+ .2byte EC_POKEMON(GOREBYSS)
+ .2byte EC_WORD_GOT
+ .2byte EC_WORD_GOTCHA
+ .2byte EC_WORD_GOURMET
+ .2byte EC_WORD_GRAAAH
+ .2byte EC_POKEMON2(GRANBULL)
+ .2byte EC_WORD_GRANDFATHER
+ .2byte EC_WORD_GRANDMOTHER
+ .2byte EC_WORD_GRASS
+ .2byte EC_MOVE(GRASS_WHISTLE)
+ ec_duplicates 2
+ .2byte EC_POKEMON(GRAVELER)
+ .2byte EC_POKEMON2(GRAVELER)
+ .2byte EC_WORD_GREAT
+ ec_duplicates 2
+ .2byte EC_POKEMON(GRIMER)
+ .2byte EC_POKEMON2(GRIMER)
+ .2byte EC_POKEMON(GROUDON)
+ .2byte EC_WORD_GROUND
+ .2byte EC_WORD_GROUP
+ .2byte EC_POKEMON(GROVYLE)
+ .2byte EC_MOVE2(GROWL)
+ .2byte EC_POKEMON2(GROWLITHE)
+ .2byte EC_MOVE(GROWTH)
+ .2byte EC_MOVE(GRUDGE)
+ .2byte EC_POKEMON(GRUMPIG)
+ .2byte EC_WORD_GUARD
+ .2byte EC_MOVE2(GUILLOTINE)
+ .2byte EC_POKEMON(GULPIN)
+ .2byte EC_MOVE(GUST)
+ .2byte EC_WORD_GUTS
+ .2byte EC_WORD_GUTSY
+ .2byte EC_WORD_GWAH
+ .2byte EC_WORD_GWAHAHAHA
+ ec_duplicates 2
+ .2byte EC_POKEMON(GYARADOS)
+ .2byte EC_POKEMON2(GYARADOS)
gEasyChatWordsByLetter_H:
- ec_word HABIT
- ec_word HAH
- ec_word HAHAHA
- ec_move1 HAIL
- ec_word HALL_OF_FAME
- ec_word HAPPENING
- ec_word HAPPILY
- ec_word HAPPINESS
- ec_word HAPPY
- ec_word HARD
- ec_move1 HARDEN
- ec_pokemon1 HARIYAMA
- ec_word HAS
- ec_word HASSLE
- ec_pokemon2 HAUNTER
- ec_word HAVE
- ec_word HAVEN_T
- ec_move1 HAZE
- ec_word HE
- ec_word HE_S
- ec_move1 HEADBUTT
- ec_move1 HEAL_BELL
- ec_word HEALTHY
- ec_word HEAR
- ec_word HEARING
- ec_word HEARS
- ec_word HEART
- ec_move2 HEAT_WAVE
- ec_word HEH
- ec_word HEHE
- ec_word HEHEHE
- ec_word HELLO
- ec_move2 HELPING_HAND
- ec_word HER
- ec_word HERS
- ec_duplicates 2
- ec_pokemon1 HERACROSS
- ec_pokemon2 HERACROSS
- ec_word HERE
- ec_word HERE_GOES
- ec_word HERE_I_COME
- ec_word HERE_IT_IS
- ec_word HERO
- ec_word HEROINE
- ec_word HEY
- ec_word HEY_THERE
- ec_word HEY_QUES
- ec_word HI
- ec_move2 HI_JUMP_KICK
- ec_word HIDDEN
- ec_move2 HIDDEN_POWER
- ec_word HIGH
- ec_word HIGHS
- ec_word HIM
- ec_word HIP_AND
- ec_word HIS
- ec_word HIT
- ec_pokemon2 HITMONCHAN
- ec_pokemon2 HITMONLEE
- ec_pokemon2 HITMONTOP
- ec_word HIYAH
- ec_word HMM
- ec_pokemon2 HO_OH
- ec_word HOBBY
- ec_word HOHOHO
- ec_word HOLIDAY
- ec_word HOME
- ec_word HOO_HAH
- ec_pokemon2 HOOTHOOT
- ec_word HOPELESS
- ec_pokemon2 HOPPIP
- ec_move2 HORN_ATTACK
- ec_move2 HORN_DRILL
- ec_duplicates 2
- ec_pokemon1 HORSEA
- ec_pokemon2 HORSEA
- ec_word HOT
- ec_pokemon2 HOUNDOOM
- ec_pokemon2 HOUNDOUR
- ec_word HOW
- ec_word HOW_DO
- ec_word HOWEVER
- ec_move2 HOWL
- ec_word HUGE_POWER
- ec_word HUH_QUES
- ec_word HUMPH
- ec_word HUNGRY
- ec_pokemon1 HUNTAIL
- ec_word HURRIED
- ec_word HUSTLE
- ec_move2 HYDRO_PUMP
- ec_word HYPER
- ec_move2 HYPER_BEAM
- ec_word HYPER_CUTTER
- ec_move2 HYPER_FANG
- ec_move2 HYPER_VOICE
- ec_pokemon2 HYPNO
- ec_move1 HYPNOSIS
+ .2byte EC_WORD_HABIT
+ .2byte EC_WORD_HAH
+ .2byte EC_WORD_HAHAHA
+ .2byte EC_MOVE(HAIL)
+ .2byte EC_WORD_HALL_OF_FAME
+ .2byte EC_WORD_HAPPENING
+ .2byte EC_WORD_HAPPILY
+ .2byte EC_WORD_HAPPINESS
+ .2byte EC_WORD_HAPPY
+ .2byte EC_WORD_HARD
+ .2byte EC_MOVE(HARDEN)
+ .2byte EC_POKEMON(HARIYAMA)
+ .2byte EC_WORD_HAS
+ .2byte EC_WORD_HASSLE
+ .2byte EC_POKEMON2(HAUNTER)
+ .2byte EC_WORD_HAVE
+ .2byte EC_WORD_HAVEN_T
+ .2byte EC_MOVE(HAZE)
+ .2byte EC_WORD_HE
+ .2byte EC_WORD_HE_S
+ .2byte EC_MOVE(HEADBUTT)
+ .2byte EC_MOVE(HEAL_BELL)
+ .2byte EC_WORD_HEALTHY
+ .2byte EC_WORD_HEAR
+ .2byte EC_WORD_HEARING
+ .2byte EC_WORD_HEARS
+ .2byte EC_WORD_HEART
+ .2byte EC_MOVE2(HEAT_WAVE)
+ .2byte EC_WORD_HEH
+ .2byte EC_WORD_HEHE
+ .2byte EC_WORD_HEHEHE
+ .2byte EC_WORD_HELLO
+ .2byte EC_MOVE2(HELPING_HAND)
+ .2byte EC_WORD_HER
+ .2byte EC_WORD_HERS
+ ec_duplicates 2
+ .2byte EC_POKEMON(HERACROSS)
+ .2byte EC_POKEMON2(HERACROSS)
+ .2byte EC_WORD_HERE
+ .2byte EC_WORD_HERE_GOES
+ .2byte EC_WORD_HERE_I_COME
+ .2byte EC_WORD_HERE_IT_IS
+ .2byte EC_WORD_HERO
+ .2byte EC_WORD_HEROINE
+ .2byte EC_WORD_HEY
+ .2byte EC_WORD_HEY_THERE
+ .2byte EC_WORD_HEY_QUES
+ .2byte EC_WORD_HI
+ .2byte EC_MOVE2(HI_JUMP_KICK)
+ .2byte EC_WORD_HIDDEN
+ .2byte EC_MOVE2(HIDDEN_POWER)
+ .2byte EC_WORD_HIGH
+ .2byte EC_WORD_HIGHS
+ .2byte EC_WORD_HIM
+ .2byte EC_WORD_HIP_AND
+ .2byte EC_WORD_HIS
+ .2byte EC_WORD_HIT
+ .2byte EC_POKEMON2(HITMONCHAN)
+ .2byte EC_POKEMON2(HITMONLEE)
+ .2byte EC_POKEMON2(HITMONTOP)
+ .2byte EC_WORD_HIYAH
+ .2byte EC_WORD_HMM
+ .2byte EC_POKEMON2(HO_OH)
+ .2byte EC_WORD_HOBBY
+ .2byte EC_WORD_HOHOHO
+ .2byte EC_WORD_HOLIDAY
+ .2byte EC_WORD_HOME
+ .2byte EC_WORD_HOO_HAH
+ .2byte EC_POKEMON2(HOOTHOOT)
+ .2byte EC_WORD_HOPELESS
+ .2byte EC_POKEMON2(HOPPIP)
+ .2byte EC_MOVE2(HORN_ATTACK)
+ .2byte EC_MOVE2(HORN_DRILL)
+ ec_duplicates 2
+ .2byte EC_POKEMON(HORSEA)
+ .2byte EC_POKEMON2(HORSEA)
+ .2byte EC_WORD_HOT
+ .2byte EC_POKEMON2(HOUNDOOM)
+ .2byte EC_POKEMON2(HOUNDOUR)
+ .2byte EC_WORD_HOW
+ .2byte EC_WORD_HOW_DO
+ .2byte EC_WORD_HOWEVER
+ .2byte EC_MOVE2(HOWL)
+ .2byte EC_WORD_HUGE_POWER
+ .2byte EC_WORD_HUH_QUES
+ .2byte EC_WORD_HUMPH
+ .2byte EC_WORD_HUNGRY
+ .2byte EC_POKEMON(HUNTAIL)
+ .2byte EC_WORD_HURRIED
+ .2byte EC_WORD_HUSTLE
+ .2byte EC_MOVE2(HYDRO_PUMP)
+ .2byte EC_WORD_HYPER
+ .2byte EC_MOVE2(HYPER_BEAM)
+ .2byte EC_WORD_HYPER_CUTTER
+ .2byte EC_MOVE2(HYPER_FANG)
+ .2byte EC_MOVE2(HYPER_VOICE)
+ .2byte EC_POKEMON2(HYPNO)
+ .2byte EC_MOVE(HYPNOSIS)
gEasyChatWordsByLetter_I:
- ec_word I
- ec_word I_AM
- ec_word I_CHOOSE_YOU
- ec_word I_WAS
- ec_word I_VE
- ec_word I_VE_ARRIVED
- ec_word ICE
- ec_move1 ICE_BALL
- ec_move2 ICE_BEAM
- ec_move2 ICE_PUNCH
- ec_move1 ICY_WIND
- ec_word IDOL
- ec_word IF
- ec_word IF_I_LOSE
- ec_word IF_I_WIN
- ec_duplicates 2
- ec_pokemon1 IGGLYBUFF
- ec_pokemon2 IGGLYBUFF
- ec_word IGNORANT
- ec_word ILLUMINATE
- ec_pokemon1 ILLUMISE
- ec_word IMMUNITY
- ec_word IMPORTANT
- ec_word IMPOSSIBLE
- ec_move2 IMPRISON
- ec_word IN
- ec_word INCREASING
- ec_word INCREDIBLE
- ec_word INFORMATION
- ec_move2 INGRAIN
- ec_word INNER_FOCUS
- ec_word INSIDE
- ec_word INSOMNIA
- ec_word INSTEAD
- ec_word INTIMIDATE
- ec_word INVINCIBLE
- ec_move2 IRON_DEFENSE
- ec_move1 IRON_TAIL
- ec_word IS
- ec_word IS_IT_QUES
- ec_word ISN_T
- ec_word ISN_T_IT_QUES
- ec_word IT
- ec_word IT_S
- ec_word ITEM
- ec_pokemon2 IVYSAUR
+ .2byte EC_WORD_I
+ .2byte EC_WORD_I_AM
+ .2byte EC_WORD_I_CHOOSE_YOU
+ .2byte EC_WORD_I_WAS
+ .2byte EC_WORD_I_VE
+ .2byte EC_WORD_I_VE_ARRIVED
+ .2byte EC_WORD_ICE
+ .2byte EC_MOVE(ICE_BALL)
+ .2byte EC_MOVE2(ICE_BEAM)
+ .2byte EC_MOVE2(ICE_PUNCH)
+ .2byte EC_MOVE(ICY_WIND)
+ .2byte EC_WORD_IDOL
+ .2byte EC_WORD_IF
+ .2byte EC_WORD_IF_I_LOSE
+ .2byte EC_WORD_IF_I_WIN
+ ec_duplicates 2
+ .2byte EC_POKEMON(IGGLYBUFF)
+ .2byte EC_POKEMON2(IGGLYBUFF)
+ .2byte EC_WORD_IGNORANT
+ .2byte EC_WORD_ILLUMINATE
+ .2byte EC_POKEMON(ILLUMISE)
+ .2byte EC_WORD_IMMUNITY
+ .2byte EC_WORD_IMPORTANT
+ .2byte EC_WORD_IMPOSSIBLE
+ .2byte EC_MOVE2(IMPRISON)
+ .2byte EC_WORD_IN
+ .2byte EC_WORD_INCREASING
+ .2byte EC_WORD_INCREDIBLE
+ .2byte EC_WORD_INFORMATION
+ .2byte EC_MOVE2(INGRAIN)
+ .2byte EC_WORD_INNER_FOCUS
+ .2byte EC_WORD_INSIDE
+ .2byte EC_WORD_INSOMNIA
+ .2byte EC_WORD_INSTEAD
+ .2byte EC_WORD_INTIMIDATE
+ .2byte EC_WORD_INVINCIBLE
+ .2byte EC_MOVE2(IRON_DEFENSE)
+ .2byte EC_MOVE(IRON_TAIL)
+ .2byte EC_WORD_IS
+ .2byte EC_WORD_IS_IT_QUES
+ .2byte EC_WORD_ISN_T
+ .2byte EC_WORD_ISN_T_IT_QUES
+ .2byte EC_WORD_IT
+ .2byte EC_WORD_IT_S
+ .2byte EC_WORD_ITEM
+ .2byte EC_POKEMON2(IVYSAUR)
gEasyChatWordsByLetter_J:
ec_duplicates 2
- ec_pokemon1 JIGGLYPUFF
- ec_pokemon2 JIGGLYPUFF
- ec_pokemon1 JIRACHI
- ec_word JOKING
- ec_pokemon2 JOLTEON
- ec_word JOY
- ec_word JUDGE
- ec_move2 JUMP_KICK
- ec_pokemon2 JUMPLUFF
- ec_word JUST
- ec_pokemon2 JYNX
+ .2byte EC_POKEMON(JIGGLYPUFF)
+ .2byte EC_POKEMON2(JIGGLYPUFF)
+ .2byte EC_POKEMON(JIRACHI)
+ .2byte EC_WORD_JOKING
+ .2byte EC_POKEMON2(JOLTEON)
+ .2byte EC_WORD_JOY
+ .2byte EC_WORD_JUDGE
+ .2byte EC_MOVE2(JUMP_KICK)
+ .2byte EC_POKEMON2(JUMPLUFF)
+ .2byte EC_WORD_JUST
+ .2byte EC_POKEMON2(JYNX)
gEasyChatWordsByLetter_K:
- ec_pokemon2 KABUTO
- ec_pokemon2 KABUTOPS
- ec_duplicates 2
- ec_pokemon1 KADABRA
- ec_pokemon2 KADABRA
- ec_pokemon2 KAKUNA
- ec_pokemon2 KANGASKHAN
- ec_move1 KARATE_CHOP
- ec_pokemon1 KECLEON
- ec_word KEEN_EYE
- ec_word KID
- ec_word KIDDING
- ec_word KIND
- ec_word KINDERGARTEN
- ec_move1 KINESIS
- ec_duplicates 2
- ec_pokemon1 KINGDRA
- ec_pokemon2 KINGDRA
- ec_pokemon2 KINGLER
- ec_pokemon1 KIRLIA
- ec_move2 KNOCK_OFF
- ec_word KNOCKOUT
- ec_word KNOW
- ec_word KNOWS
- ec_duplicates 2
- ec_pokemon1 KOFFING
- ec_pokemon2 KOFFING
- ec_pokemon2 KRABBY
- ec_word KTHX_BYE
- ec_pokemon1 KYOGRE
+ .2byte EC_POKEMON2(KABUTO)
+ .2byte EC_POKEMON2(KABUTOPS)
+ ec_duplicates 2
+ .2byte EC_POKEMON(KADABRA)
+ .2byte EC_POKEMON2(KADABRA)
+ .2byte EC_POKEMON2(KAKUNA)
+ .2byte EC_POKEMON2(KANGASKHAN)
+ .2byte EC_MOVE(KARATE_CHOP)
+ .2byte EC_POKEMON(KECLEON)
+ .2byte EC_WORD_KEEN_EYE
+ .2byte EC_WORD_KID
+ .2byte EC_WORD_KIDDING
+ .2byte EC_WORD_KIND
+ .2byte EC_WORD_KINDERGARTEN
+ .2byte EC_MOVE(KINESIS)
+ ec_duplicates 2
+ .2byte EC_POKEMON(KINGDRA)
+ .2byte EC_POKEMON2(KINGDRA)
+ .2byte EC_POKEMON2(KINGLER)
+ .2byte EC_POKEMON(KIRLIA)
+ .2byte EC_MOVE2(KNOCK_OFF)
+ .2byte EC_WORD_KNOCKOUT
+ .2byte EC_WORD_KNOW
+ .2byte EC_WORD_KNOWS
+ ec_duplicates 2
+ .2byte EC_POKEMON(KOFFING)
+ .2byte EC_POKEMON2(KOFFING)
+ .2byte EC_POKEMON2(KRABBY)
+ .2byte EC_WORD_KTHX_BYE
+ .2byte EC_POKEMON(KYOGRE)
gEasyChatWordsByLetter_L:
- ec_word LACKING
- ec_word LACKS
- ec_word LADY
- ec_pokemon1 LAIRON
- ec_word LALALA
- ec_duplicates 2
- ec_pokemon1 LANTURN
- ec_pokemon2 LANTURN
- ec_pokemon2 LAPRAS
- ec_pokemon2 LARVITAR
- ec_word LAST
- ec_word LATE
- ec_word LATER
- ec_pokemon1 LATIAS
- ec_pokemon1 LATIOS
- ec_word LAVISH
- ec_word LAY
- ec_word LEADER
- ec_word LEADERS
- ec_move2 LEAF_BLADE
- ec_word LEARN
- ec_pokemon2 LEDIAN
- ec_pokemon2 LEDYBA
- ec_move1 LEECH_LIFE
- ec_move2 LEECH_SEED
- ec_move2 LEER
- ec_word LEFT
- ec_word LEGEND
- ec_word LESS
- ec_word LESSONS
- ec_word LET_ME_WIN
- ec_word LET_S
- ec_word LETTER
- ec_word LEVEL
- ec_word LEVITATE
- ec_move1 LICK
- ec_pokemon2 LICKITUNG
- ec_word LIE
- ec_word LIFE
- ec_move2 LIGHT_SCREEN
- ec_word LIGHTNINGROD
- ec_word LIKE
- ec_word LIKELY_TO
- ec_word LIKES
- ec_pokemon1 LILEEP
- ec_word LIMBER
- ec_word LINK
- ec_pokemon1 LINOONE
- ec_word LIQUID_OOZE
- ec_word LISTEN
- ec_word LISTENING
- ec_word LISTENS
- ec_word LIVING
- ec_move2 LOCK_ON
- ec_word LOCOMOTIVE
- ec_word LOL
- ec_word LOLLING
- ec_pokemon1 LOMBRE
- ec_word LONESOME
- ec_word LOOK
- ec_word LOOKS
- ec_word LOSE
- ec_word LOSER
- ec_word LOSING
- ec_word LOSS
- ec_word LOST
- ec_pokemon1 LOTAD
- ec_pokemon1 LOUDRED
- ec_word LOUSY
- ec_move1 LOVELY_KISS
- ec_word LOVEY_DOVEY
- ec_word LOW
- ec_move1 LOW_KICK
- ec_word LOWS
- ec_pokemon1 LUDICOLO
- ec_pokemon2 LUGIA
- ec_word LUKEWARM
- ec_pokemon1 LUNATONE
- ec_move2 LUSTER_PURGE
- ec_pokemon1 LUVDISC
+ .2byte EC_WORD_LACKING
+ .2byte EC_WORD_LACKS
+ .2byte EC_WORD_LADY
+ .2byte EC_POKEMON(LAIRON)
+ .2byte EC_WORD_LALALA
+ ec_duplicates 2
+ .2byte EC_POKEMON(LANTURN)
+ .2byte EC_POKEMON2(LANTURN)
+ .2byte EC_POKEMON2(LAPRAS)
+ .2byte EC_POKEMON2(LARVITAR)
+ .2byte EC_WORD_LAST
+ .2byte EC_WORD_LATE
+ .2byte EC_WORD_LATER
+ .2byte EC_POKEMON(LATIAS)
+ .2byte EC_POKEMON(LATIOS)
+ .2byte EC_WORD_LAVISH
+ .2byte EC_WORD_LAY
+ .2byte EC_WORD_LEADER
+ .2byte EC_WORD_LEADERS
+ .2byte EC_MOVE2(LEAF_BLADE)
+ .2byte EC_WORD_LEARN
+ .2byte EC_POKEMON2(LEDIAN)
+ .2byte EC_POKEMON2(LEDYBA)
+ .2byte EC_MOVE(LEECH_LIFE)
+ .2byte EC_MOVE2(LEECH_SEED)
+ .2byte EC_MOVE2(LEER)
+ .2byte EC_WORD_LEFT
+ .2byte EC_WORD_LEGEND
+ .2byte EC_WORD_LESS
+ .2byte EC_WORD_LESSONS
+ .2byte EC_WORD_LET_ME_WIN
+ .2byte EC_WORD_LET_S
+ .2byte EC_WORD_LETTER
+ .2byte EC_WORD_LEVEL
+ .2byte EC_WORD_LEVITATE
+ .2byte EC_MOVE(LICK)
+ .2byte EC_POKEMON2(LICKITUNG)
+ .2byte EC_WORD_LIE
+ .2byte EC_WORD_LIFE
+ .2byte EC_MOVE2(LIGHT_SCREEN)
+ .2byte EC_WORD_LIGHTNINGROD
+ .2byte EC_WORD_LIKE
+ .2byte EC_WORD_LIKELY_TO
+ .2byte EC_WORD_LIKES
+ .2byte EC_POKEMON(LILEEP)
+ .2byte EC_WORD_LIMBER
+ .2byte EC_WORD_LINK
+ .2byte EC_POKEMON(LINOONE)
+ .2byte EC_WORD_LIQUID_OOZE
+ .2byte EC_WORD_LISTEN
+ .2byte EC_WORD_LISTENING
+ .2byte EC_WORD_LISTENS
+ .2byte EC_WORD_LIVING
+ .2byte EC_MOVE2(LOCK_ON)
+ .2byte EC_WORD_LOCOMOTIVE
+ .2byte EC_WORD_LOL
+ .2byte EC_WORD_LOLLING
+ .2byte EC_POKEMON(LOMBRE)
+ .2byte EC_WORD_LONESOME
+ .2byte EC_WORD_LOOK
+ .2byte EC_WORD_LOOKS
+ .2byte EC_WORD_LOSE
+ .2byte EC_WORD_LOSER
+ .2byte EC_WORD_LOSING
+ .2byte EC_WORD_LOSS
+ .2byte EC_WORD_LOST
+ .2byte EC_POKEMON(LOTAD)
+ .2byte EC_POKEMON(LOUDRED)
+ .2byte EC_WORD_LOUSY
+ .2byte EC_MOVE(LOVELY_KISS)
+ .2byte EC_WORD_LOVEY_DOVEY
+ .2byte EC_WORD_LOW
+ .2byte EC_MOVE(LOW_KICK)
+ .2byte EC_WORD_LOWS
+ .2byte EC_POKEMON(LUDICOLO)
+ .2byte EC_POKEMON2(LUGIA)
+ .2byte EC_WORD_LUKEWARM
+ .2byte EC_POKEMON(LUNATONE)
+ .2byte EC_MOVE2(LUSTER_PURGE)
+ .2byte EC_POKEMON(LUVDISC)
gEasyChatWordsByLetter_M:
- ec_move2 MACH_PUNCH
- ec_duplicates 2
- ec_pokemon1 MACHAMP
- ec_pokemon2 MACHAMP
- ec_word MACHINE
- ec_duplicates 2
- ec_pokemon1 MACHOKE
- ec_pokemon2 MACHOKE
- ec_duplicates 2
- ec_pokemon1 MACHOP
- ec_pokemon2 MACHOP
- ec_word MAGAZINE
- ec_pokemon2 MAGBY
- ec_duplicates 2
- ec_pokemon1 MAGCARGO
- ec_pokemon2 MAGCARGO
- ec_move2 MAGIC_COAT
- ec_move2 MAGICAL_LEAF
- ec_duplicates 2
- ec_pokemon1 MAGIKARP
- ec_pokemon2 MAGIKARP
- ec_word MAGMA_ARMOR
- ec_pokemon2 MAGMAR
- ec_duplicates 2
- ec_pokemon1 MAGNEMITE
- ec_pokemon2 MAGNEMITE
- ec_word MAGNET_PULL
- ec_duplicates 2
- ec_pokemon1 MAGNETON
- ec_pokemon2 MAGNETON
- ec_move2 MAGNITUDE
- ec_word MAIL
- ec_word MAKE
- ec_word MAKING
- ec_pokemon1 MAKUHITA
- ec_word MAN
- ec_pokemon1 MANECTRIC
- ec_pokemon2 MANKEY
- ec_pokemon2 MANTINE
- ec_pokemon2 MAREEP
- ec_duplicates 2
- ec_pokemon1 MARILL
- ec_pokemon2 MARILL
- ec_pokemon2 MAROWAK
- ec_pokemon1 MARSHTOMP
- ec_word MARVEL_SCALE
- ec_pokemon1 MASQUERAIN
- ec_word MASTER
- ec_word MATCH
- ec_word MATCH_UP
- ec_pokemon1 MAWILE
- ec_word MAYBE
- ec_word MC
- ec_word ME
- ec_word MEAN
- ec_move1 MEAN_LOOK
- ec_pokemon1 MEDICHAM
- ec_move2 MEDITATE
- ec_pokemon1 MEDITITE
- ec_word MEET
- ec_word MEET_YOU
- ec_word MEETS
- ec_word MEGA
- ec_move2 MEGA_DRAIN
- ec_move2 MEGA_KICK
- ec_move2 MEGA_PUNCH
- ec_move2 MEGAHORN
- ec_pokemon2 MEGANIUM
- ec_move1 MEMENTO
- ec_pokemon2 MEOWTH
- ec_word MESSAGE
- ec_pokemon1 METAGROSS
- ec_move2 METAL_CLAW
- ec_move1 METAL_SOUND
- ec_pokemon1 METANG
- ec_pokemon2 METAPOD
- ec_move1 METEOR_MASH
- ec_move2 METRONOME
- ec_pokemon2 MEW
- ec_pokemon2 MEWTWO
- ec_pokemon1 MIGHTYENA
- ec_move2 MILK_DRINK
- ec_pokemon1 MILOTIC
- ec_pokemon2 MILTANK
- ec_move2 MIMIC
- ec_move1 MIND_READER
- ec_move2 MINIMIZE
- ec_pokemon1 MINUN
- ec_word MINUS
- ec_move2 MIRROR_COAT
- ec_move1 MIRROR_MOVE
- ec_pokemon2 MISDREAVUS
- ec_word MISHEARD
- ec_word MISS
- ec_move1 MIST
- ec_move2 MIST_BALL
- ec_word MISTAKE
- ec_word MMM
- ec_word MODE
- ec_word MODERN
- ec_pokemon2 MOLTRES
- ec_word MOMENTUM
- ec_word MONDAY
- ec_word MONEY
- ec_word MONTH
- ec_word MOOD
- ec_move2 MOONLIGHT
- ec_word MORE
- ec_word MORNING
- ec_move1 MORNING_SUN
- ec_word MOTHER
- ec_word MOVE
- ec_word MOVIE
- ec_word MR
- ec_pokemon2 MR_MIME
- ec_word MRS
- ec_word MUCH
- ec_word MUCH_OBLIGED
- ec_move2 MUD_SHOT
- ec_move2 MUD_SPORT
- ec_move2 MUD_SLAP
- ec_move2 MUDDY_WATER
- ec_pokemon1 MUDKIP
- ec_word MUFUFU
- ec_duplicates 2
- ec_pokemon1 MUK
- ec_pokemon2 MUK
- ec_pokemon2 MURKROW
- ec_word MUSIC
- ec_word MUST_BE
- ec_word MY
- ec_word MYSELF
- ec_word MYSTERY
+ .2byte EC_MOVE2(MACH_PUNCH)
+ ec_duplicates 2
+ .2byte EC_POKEMON(MACHAMP)
+ .2byte EC_POKEMON2(MACHAMP)
+ .2byte EC_WORD_MACHINE
+ ec_duplicates 2
+ .2byte EC_POKEMON(MACHOKE)
+ .2byte EC_POKEMON2(MACHOKE)
+ ec_duplicates 2
+ .2byte EC_POKEMON(MACHOP)
+ .2byte EC_POKEMON2(MACHOP)
+ .2byte EC_WORD_MAGAZINE
+ .2byte EC_POKEMON2(MAGBY)
+ ec_duplicates 2
+ .2byte EC_POKEMON(MAGCARGO)
+ .2byte EC_POKEMON2(MAGCARGO)
+ .2byte EC_MOVE2(MAGIC_COAT)
+ .2byte EC_MOVE2(MAGICAL_LEAF)
+ ec_duplicates 2
+ .2byte EC_POKEMON(MAGIKARP)
+ .2byte EC_POKEMON2(MAGIKARP)
+ .2byte EC_WORD_MAGMA_ARMOR
+ .2byte EC_POKEMON2(MAGMAR)
+ ec_duplicates 2
+ .2byte EC_POKEMON(MAGNEMITE)
+ .2byte EC_POKEMON2(MAGNEMITE)
+ .2byte EC_WORD_MAGNET_PULL
+ ec_duplicates 2
+ .2byte EC_POKEMON(MAGNETON)
+ .2byte EC_POKEMON2(MAGNETON)
+ .2byte EC_MOVE2(MAGNITUDE)
+ .2byte EC_WORD_MAIL
+ .2byte EC_WORD_MAKE
+ .2byte EC_WORD_MAKING
+ .2byte EC_POKEMON(MAKUHITA)
+ .2byte EC_WORD_MAN
+ .2byte EC_POKEMON(MANECTRIC)
+ .2byte EC_POKEMON2(MANKEY)
+ .2byte EC_POKEMON2(MANTINE)
+ .2byte EC_POKEMON2(MAREEP)
+ ec_duplicates 2
+ .2byte EC_POKEMON(MARILL)
+ .2byte EC_POKEMON2(MARILL)
+ .2byte EC_POKEMON2(MAROWAK)
+ .2byte EC_POKEMON(MARSHTOMP)
+ .2byte EC_WORD_MARVEL_SCALE
+ .2byte EC_POKEMON(MASQUERAIN)
+ .2byte EC_WORD_MASTER
+ .2byte EC_WORD_MATCH
+ .2byte EC_WORD_MATCH_UP
+ .2byte EC_POKEMON(MAWILE)
+ .2byte EC_WORD_MAYBE
+ .2byte EC_WORD_MC
+ .2byte EC_WORD_ME
+ .2byte EC_WORD_MEAN
+ .2byte EC_MOVE(MEAN_LOOK)
+ .2byte EC_POKEMON(MEDICHAM)
+ .2byte EC_MOVE2(MEDITATE)
+ .2byte EC_POKEMON(MEDITITE)
+ .2byte EC_WORD_MEET
+ .2byte EC_WORD_MEET_YOU
+ .2byte EC_WORD_MEETS
+ .2byte EC_WORD_MEGA
+ .2byte EC_MOVE2(MEGA_DRAIN)
+ .2byte EC_MOVE2(MEGA_KICK)
+ .2byte EC_MOVE2(MEGA_PUNCH)
+ .2byte EC_MOVE2(MEGAHORN)
+ .2byte EC_POKEMON2(MEGANIUM)
+ .2byte EC_MOVE(MEMENTO)
+ .2byte EC_POKEMON2(MEOWTH)
+ .2byte EC_WORD_MESSAGE
+ .2byte EC_POKEMON(METAGROSS)
+ .2byte EC_MOVE2(METAL_CLAW)
+ .2byte EC_MOVE(METAL_SOUND)
+ .2byte EC_POKEMON(METANG)
+ .2byte EC_POKEMON2(METAPOD)
+ .2byte EC_MOVE(METEOR_MASH)
+ .2byte EC_MOVE2(METRONOME)
+ .2byte EC_POKEMON2(MEW)
+ .2byte EC_POKEMON2(MEWTWO)
+ .2byte EC_POKEMON(MIGHTYENA)
+ .2byte EC_MOVE2(MILK_DRINK)
+ .2byte EC_POKEMON(MILOTIC)
+ .2byte EC_POKEMON2(MILTANK)
+ .2byte EC_MOVE2(MIMIC)
+ .2byte EC_MOVE(MIND_READER)
+ .2byte EC_MOVE2(MINIMIZE)
+ .2byte EC_POKEMON(MINUN)
+ .2byte EC_WORD_MINUS
+ .2byte EC_MOVE2(MIRROR_COAT)
+ .2byte EC_MOVE(MIRROR_MOVE)
+ .2byte EC_POKEMON2(MISDREAVUS)
+ .2byte EC_WORD_MISHEARD
+ .2byte EC_WORD_MISS
+ .2byte EC_MOVE(MIST)
+ .2byte EC_MOVE2(MIST_BALL)
+ .2byte EC_WORD_MISTAKE
+ .2byte EC_WORD_MMM
+ .2byte EC_WORD_MODE
+ .2byte EC_WORD_MODERN
+ .2byte EC_POKEMON2(MOLTRES)
+ .2byte EC_WORD_MOMENTUM
+ .2byte EC_WORD_MONDAY
+ .2byte EC_WORD_MONEY
+ .2byte EC_WORD_MONTH
+ .2byte EC_WORD_MOOD
+ .2byte EC_MOVE2(MOONLIGHT)
+ .2byte EC_WORD_MORE
+ .2byte EC_WORD_MORNING
+ .2byte EC_MOVE(MORNING_SUN)
+ .2byte EC_WORD_MOTHER
+ .2byte EC_WORD_MOVE
+ .2byte EC_WORD_MOVIE
+ .2byte EC_WORD_MR
+ .2byte EC_POKEMON2(MR_MIME)
+ .2byte EC_WORD_MRS
+ .2byte EC_WORD_MUCH
+ .2byte EC_WORD_MUCH_OBLIGED
+ .2byte EC_MOVE2(MUD_SHOT)
+ .2byte EC_MOVE2(MUD_SPORT)
+ .2byte EC_MOVE2(MUD_SLAP)
+ .2byte EC_MOVE2(MUDDY_WATER)
+ .2byte EC_POKEMON(MUDKIP)
+ .2byte EC_WORD_MUFUFU
+ ec_duplicates 2
+ .2byte EC_POKEMON(MUK)
+ .2byte EC_POKEMON2(MUK)
+ .2byte EC_POKEMON2(MURKROW)
+ .2byte EC_WORD_MUSIC
+ .2byte EC_WORD_MUST_BE
+ .2byte EC_WORD_MY
+ .2byte EC_WORD_MYSELF
+ .2byte EC_WORD_MYSTERY
gEasyChatWordsByLetter_N:
- ec_word NAME
- ec_word NAP
- ec_duplicates 2
- ec_pokemon1 NATU
- ec_pokemon2 NATU
- ec_word NATURAL
- ec_word NATURAL_CURE
- ec_word NATURALLY
- ec_word NATURE
- ec_move1 NATURE_POWER
- ec_word NEAR
- ec_word NEARLY
- ec_word NEED
- ec_move2 NEEDLE_ARM
- ec_word NEGATIVE
- ec_word NEVER
- ec_word NEW
- ec_word NEWS
- ec_word NEXT
- ec_word NICE
- ec_pokemon2 NIDOKING
- ec_pokemon2 NIDOQUEEN
- ec_pokemon2 NIDORAN_F
- ec_pokemon2 NIDORAN_M
- ec_pokemon2 NIDORINA
- ec_pokemon2 NIDORINO
- ec_word NIGHT
- ec_move2 NIGHT_SHADE
- ec_move1 NIGHTMARE
- ec_word NIGHTTIME
- ec_pokemon1 NINCADA
- ec_duplicates 2
- ec_pokemon1 NINETALES
- ec_pokemon2 NINETALES
- ec_pokemon1 NINJASK
- ec_word NITWIT
- ec_word NO
- ec_word NO_MATCH
- ec_word NO_1
- ec_pokemon2 NOCTOWL
- ec_word NOISY
- ec_word NON_STOP
- ec_word NONE
- ec_word NOPE
- ec_word NORMAL
- ec_pokemon1 NOSEPASS
- ec_word NOT
- ec_word NOT_VERY
- ec_word NOTHING
- ec_word NOW
- ec_pokemon1 NUMEL
- ec_pokemon1 NUZLEAF
+ .2byte EC_WORD_NAME
+ .2byte EC_WORD_NAP
+ ec_duplicates 2
+ .2byte EC_POKEMON(NATU)
+ .2byte EC_POKEMON2(NATU)
+ .2byte EC_WORD_NATURAL
+ .2byte EC_WORD_NATURAL_CURE
+ .2byte EC_WORD_NATURALLY
+ .2byte EC_WORD_NATURE
+ .2byte EC_MOVE(NATURE_POWER)
+ .2byte EC_WORD_NEAR
+ .2byte EC_WORD_NEARLY
+ .2byte EC_WORD_NEED
+ .2byte EC_MOVE2(NEEDLE_ARM)
+ .2byte EC_WORD_NEGATIVE
+ .2byte EC_WORD_NEVER
+ .2byte EC_WORD_NEW
+ .2byte EC_WORD_NEWS
+ .2byte EC_WORD_NEXT
+ .2byte EC_WORD_NICE
+ .2byte EC_POKEMON2(NIDOKING)
+ .2byte EC_POKEMON2(NIDOQUEEN)
+ .2byte EC_POKEMON2(NIDORAN_F)
+ .2byte EC_POKEMON2(NIDORAN_M)
+ .2byte EC_POKEMON2(NIDORINA)
+ .2byte EC_POKEMON2(NIDORINO)
+ .2byte EC_WORD_NIGHT
+ .2byte EC_MOVE2(NIGHT_SHADE)
+ .2byte EC_MOVE(NIGHTMARE)
+ .2byte EC_WORD_NIGHTTIME
+ .2byte EC_POKEMON(NINCADA)
+ ec_duplicates 2
+ .2byte EC_POKEMON(NINETALES)
+ .2byte EC_POKEMON2(NINETALES)
+ .2byte EC_POKEMON(NINJASK)
+ .2byte EC_WORD_NITWIT
+ .2byte EC_WORD_NO
+ .2byte EC_WORD_NO_MATCH
+ .2byte EC_WORD_NO_1
+ .2byte EC_POKEMON2(NOCTOWL)
+ .2byte EC_WORD_NOISY
+ .2byte EC_WORD_NON_STOP
+ .2byte EC_WORD_NONE
+ .2byte EC_WORD_NOPE
+ .2byte EC_WORD_NORMAL
+ .2byte EC_POKEMON(NOSEPASS)
+ .2byte EC_WORD_NOT
+ .2byte EC_WORD_NOT_VERY
+ .2byte EC_WORD_NOTHING
+ .2byte EC_WORD_NOW
+ .2byte EC_POKEMON(NUMEL)
+ .2byte EC_POKEMON(NUZLEAF)
gEasyChatWordsByLetter_O:
- ec_word OBLIVIOUS
- ec_move1 OCTAZOOKA
- ec_pokemon2 OCTILLERY
- ec_duplicates 2
- ec_pokemon1 ODDISH
- ec_pokemon2 ODDISH
- ec_move1 ODOR_SLEUTH
- ec_word OF
- ec_word OFF
- ec_word OFFENSIVE
- ec_word OH
- ec_word OH_DEAR
- ec_word OH_YEAH
- ec_word OH_KAY
- ec_word OH_QUES
- ec_word OI
- ec_word OI_OI_OI
- ec_word OK_QUES
- ec_word OKAY
- ec_word OLD
- ec_word OLDEN
- ec_pokemon2 OMANYTE
- ec_pokemon2 OMASTAR
- ec_word ON
- ec_word ONCE
- ec_pokemon2 ONIX
- ec_word ONLY
- ec_word OOPS
- ec_word OPPONENT
- ec_word OPPOSITE
- ec_word OR
- ec_word OTHER
- ec_word OUR
- ec_word OUT
- ec_move1 OUTRAGE
- ec_word OUTSIDE
- ec_word OVER
- ec_word OVERDO
- ec_word OVERGROW
- ec_move1 OVERHEAT
- ec_word OVERWHELMING
- ec_word OWN
- ec_word OWN_TEMPO
+ .2byte EC_WORD_OBLIVIOUS
+ .2byte EC_MOVE(OCTAZOOKA)
+ .2byte EC_POKEMON2(OCTILLERY)
+ ec_duplicates 2
+ .2byte EC_POKEMON(ODDISH)
+ .2byte EC_POKEMON2(ODDISH)
+ .2byte EC_MOVE(ODOR_SLEUTH)
+ .2byte EC_WORD_OF
+ .2byte EC_WORD_OFF
+ .2byte EC_WORD_OFFENSIVE
+ .2byte EC_WORD_OH
+ .2byte EC_WORD_OH_DEAR
+ .2byte EC_WORD_OH_YEAH
+ .2byte EC_WORD_OH_KAY
+ .2byte EC_WORD_OH_QUES
+ .2byte EC_WORD_OI
+ .2byte EC_WORD_OI_OI_OI
+ .2byte EC_WORD_OK_QUES
+ .2byte EC_WORD_OKAY
+ .2byte EC_WORD_OLD
+ .2byte EC_WORD_OLDEN
+ .2byte EC_POKEMON2(OMANYTE)
+ .2byte EC_POKEMON2(OMASTAR)
+ .2byte EC_WORD_ON
+ .2byte EC_WORD_ONCE
+ .2byte EC_POKEMON2(ONIX)
+ .2byte EC_WORD_ONLY
+ .2byte EC_WORD_OOPS
+ .2byte EC_WORD_OPPONENT
+ .2byte EC_WORD_OPPOSITE
+ .2byte EC_WORD_OR
+ .2byte EC_WORD_OTHER
+ .2byte EC_WORD_OUR
+ .2byte EC_WORD_OUT
+ .2byte EC_MOVE(OUTRAGE)
+ .2byte EC_WORD_OUTSIDE
+ .2byte EC_WORD_OVER
+ .2byte EC_WORD_OVERDO
+ .2byte EC_WORD_OVERGROW
+ .2byte EC_MOVE(OVERHEAT)
+ .2byte EC_WORD_OVERWHELMING
+ .2byte EC_WORD_OWN
+ .2byte EC_WORD_OWN_TEMPO
gEasyChatWordsByLetter_P:
- ec_move1 PAIN_SPLIT
- ec_pokemon2 PARAS
- ec_pokemon2 PARASECT
- ec_word PARDON
- ec_word PARENT
- ec_word PARTNER
- ec_word PARTY
- ec_word PATTERN
- ec_move2 PAY_DAY
- ec_word PC
- ec_move2 PECK
- ec_pokemon1 PELIPPER
- ec_word PERFECT
- ec_word PERFECTION
- ec_move2 PERISH_SONG
- ec_pokemon2 PERSIAN
- ec_word PERSON
- ec_move2 PETAL_DANCE
- ec_duplicates 2
- ec_pokemon1 PHANPY
- ec_pokemon2 PHANPY
- ec_word PHONE
- ec_duplicates 2
- ec_pokemon1 PICHU
- ec_pokemon2 PICHU
- ec_word PICKUP
- ec_pokemon2 PIDGEOT
- ec_pokemon2 PIDGEOTTO
- ec_pokemon2 PIDGEY
- ec_duplicates 2
- ec_pokemon1 PIKACHU
- ec_pokemon2 PIKACHU
- ec_pokemon2 PILOSWINE
- ec_move2 PIN_MISSILE
- ec_pokemon2 PINECO
- ec_duplicates 2
- ec_pokemon1 PINSIR
- ec_pokemon2 PINSIR
- ec_word PKRS
- ec_word PLACE
- ec_word PLANS
- ec_word PLAY
- ec_word PLAYED
- ec_word PLAYS
- ec_word PLEASE
- ec_word PLUS
- ec_word PLUSH_DOLL
- ec_pokemon1 PLUSLE
- ec_word POINTS
- ec_word POISON
- ec_move2 POISON_FANG
- ec_move2 POISON_GAS
- ec_word POISON_POINT
- ec_move2 POISON_STING
- ec_move2 POISON_TAIL
- ec_move2 POISON_POWDER
- ec_word POKEBLOCK
- ec_word POKEDEX
- ec_word POKEMON
- ec_word POKENAV
- ec_pokemon2 POLITOED
- ec_pokemon2 POLIWAG
- ec_pokemon2 POLIWHIRL
- ec_pokemon2 POLIWRATH
- ec_pokemon2 PONYTA
- ec_pokemon1 POOCHYENA
- ec_word POPULAR
- ec_pokemon2 PORYGON
- ec_pokemon2 PORYGON2
- ec_move2 POUND
- ec_move1 POWDER_SNOW
- ec_word POWER
- ec_word PRAISE
- ec_word PREPOSTEROUS
- ec_move2 PRESENT
- ec_word PRESSURE
- ec_word PRETEND
- ec_word PRETTY
- ec_pokemon2 PRIMEAPE
- ec_word PROBABLY
- ec_word PROMISE
- ec_move2 PROTECT
- ec_move1 PSYBEAM
- ec_move1 PSYCH_UP
- ec_duplicates 2
- ec_word PSYCHIC
- ec_move1 PSYCHIC
- ec_duplicates 2
- ec_pokemon1 PSYDUCK
- ec_pokemon2 PSYDUCK
- ec_move1 PSYWAVE
- ec_pokemon2 PUPITAR
- ec_word PURE_POWER
- ec_move1 PURSUIT
- ec_word PUSHOVER
+ .2byte EC_MOVE(PAIN_SPLIT)
+ .2byte EC_POKEMON2(PARAS)
+ .2byte EC_POKEMON2(PARASECT)
+ .2byte EC_WORD_PARDON
+ .2byte EC_WORD_PARENT
+ .2byte EC_WORD_PARTNER
+ .2byte EC_WORD_PARTY
+ .2byte EC_WORD_PATTERN
+ .2byte EC_MOVE2(PAY_DAY)
+ .2byte EC_WORD_PC
+ .2byte EC_MOVE2(PECK)
+ .2byte EC_POKEMON(PELIPPER)
+ .2byte EC_WORD_PERFECT
+ .2byte EC_WORD_PERFECTION
+ .2byte EC_MOVE2(PERISH_SONG)
+ .2byte EC_POKEMON2(PERSIAN)
+ .2byte EC_WORD_PERSON
+ .2byte EC_MOVE2(PETAL_DANCE)
+ ec_duplicates 2
+ .2byte EC_POKEMON(PHANPY)
+ .2byte EC_POKEMON2(PHANPY)
+ .2byte EC_WORD_PHONE
+ ec_duplicates 2
+ .2byte EC_POKEMON(PICHU)
+ .2byte EC_POKEMON2(PICHU)
+ .2byte EC_WORD_PICKUP
+ .2byte EC_POKEMON2(PIDGEOT)
+ .2byte EC_POKEMON2(PIDGEOTTO)
+ .2byte EC_POKEMON2(PIDGEY)
+ ec_duplicates 2
+ .2byte EC_POKEMON(PIKACHU)
+ .2byte EC_POKEMON2(PIKACHU)
+ .2byte EC_POKEMON2(PILOSWINE)
+ .2byte EC_MOVE2(PIN_MISSILE)
+ .2byte EC_POKEMON2(PINECO)
+ ec_duplicates 2
+ .2byte EC_POKEMON(PINSIR)
+ .2byte EC_POKEMON2(PINSIR)
+ .2byte EC_WORD_PKRS
+ .2byte EC_WORD_PLACE
+ .2byte EC_WORD_PLANS
+ .2byte EC_WORD_PLAY
+ .2byte EC_WORD_PLAYED
+ .2byte EC_WORD_PLAYS
+ .2byte EC_WORD_PLEASE
+ .2byte EC_WORD_PLUS
+ .2byte EC_WORD_PLUSH_DOLL
+ .2byte EC_POKEMON(PLUSLE)
+ .2byte EC_WORD_POINTS
+ .2byte EC_WORD_POISON
+ .2byte EC_MOVE2(POISON_FANG)
+ .2byte EC_MOVE2(POISON_GAS)
+ .2byte EC_WORD_POISON_POINT
+ .2byte EC_MOVE2(POISON_STING)
+ .2byte EC_MOVE2(POISON_TAIL)
+ .2byte EC_MOVE2(POISON_POWDER)
+ .2byte EC_WORD_POKEBLOCK
+ .2byte EC_WORD_POKEDEX
+ .2byte EC_WORD_POKEMON
+ .2byte EC_WORD_POKENAV
+ .2byte EC_POKEMON2(POLITOED)
+ .2byte EC_POKEMON2(POLIWAG)
+ .2byte EC_POKEMON2(POLIWHIRL)
+ .2byte EC_POKEMON2(POLIWRATH)
+ .2byte EC_POKEMON2(PONYTA)
+ .2byte EC_POKEMON(POOCHYENA)
+ .2byte EC_WORD_POPULAR
+ .2byte EC_POKEMON2(PORYGON)
+ .2byte EC_POKEMON2(PORYGON2)
+ .2byte EC_MOVE2(POUND)
+ .2byte EC_MOVE(POWDER_SNOW)
+ .2byte EC_WORD_POWER
+ .2byte EC_WORD_PRAISE
+ .2byte EC_WORD_PREPOSTEROUS
+ .2byte EC_MOVE2(PRESENT)
+ .2byte EC_WORD_PRESSURE
+ .2byte EC_WORD_PRETEND
+ .2byte EC_WORD_PRETTY
+ .2byte EC_POKEMON2(PRIMEAPE)
+ .2byte EC_WORD_PROBABLY
+ .2byte EC_WORD_PROMISE
+ .2byte EC_MOVE2(PROTECT)
+ .2byte EC_MOVE(PSYBEAM)
+ .2byte EC_MOVE(PSYCH_UP)
+ ec_duplicates 2
+ .2byte EC_WORD_PSYCHIC
+ .2byte EC_MOVE(PSYCHIC)
+ ec_duplicates 2
+ .2byte EC_POKEMON(PSYDUCK)
+ .2byte EC_POKEMON2(PSYDUCK)
+ .2byte EC_MOVE(PSYWAVE)
+ .2byte EC_POKEMON2(PUPITAR)
+ .2byte EC_WORD_PURE_POWER
+ .2byte EC_MOVE(PURSUIT)
+ .2byte EC_WORD_PUSHOVER
gEasyChatWordsByLetter_Q:
- ec_pokemon2 QUAGSIRE
- ec_word QUESTION
- ec_move2 QUICK_ATTACK
- ec_pokemon2 QUILAVA
- ec_word QUITE
- ec_pokemon2 QWILFISH
+ .2byte EC_POKEMON2(QUAGSIRE)
+ .2byte EC_WORD_QUESTION
+ .2byte EC_MOVE2(QUICK_ATTACK)
+ .2byte EC_POKEMON2(QUILAVA)
+ .2byte EC_WORD_QUITE
+ .2byte EC_POKEMON2(QWILFISH)
gEasyChatWordsByLetter_R:
- ec_word RADIO
- ec_move1 RAGE
- ec_duplicates 2
- ec_pokemon1 RAICHU
- ec_pokemon2 RAICHU
- ec_pokemon2 RAIKOU
- ec_move1 RAIN_DANCE
- ec_word RAIN_DISH
- ec_pokemon1 RALTS
- ec_word RANK
- ec_move1 RAPID_SPIN
- ec_pokemon2 RAPIDASH
- ec_word RARE
- ec_word RATHER
- ec_pokemon2 RATICATE
- ec_pokemon2 RATTATA
- ec_pokemon1 RAYQUAZA
- ec_move2 RAZOR_LEAF
- ec_move1 RAZOR_WIND
- ec_word READY
- ec_word REALLY
- ec_word REAR
- ec_word RECEIVED
- ec_word RECOMMEND
- ec_move1 RECOVER
- ec_move2 RECYCLE
- ec_move2 REFLECT
- ec_move2 REFRESH
- ec_word REFRESHING
- ec_word REFUSE
- ec_pokemon1 REGICE
- ec_pokemon1 REGIROCK
- ec_pokemon1 REGISTEEL
- ec_word REJECT
- ec_word RELEASE
- ec_pokemon1 RELICANTH
- ec_pokemon2 REMORAID
- ec_word RENTAL
- ec_move2 REST
- ec_word RESUSCITATE
- ec_move1 RETURN
- ec_move2 REVENGE
- ec_move1 REVERSAL
- ec_duplicates 2
- ec_pokemon1 RHYDON
- ec_pokemon2 RHYDON
- ec_duplicates 2
- ec_pokemon1 RHYHORN
- ec_pokemon2 RHYHORN
- ec_word RIBBON
- ec_word RICKETY
- ec_word RIGHT
- ec_word RIPPED
- ec_word RIVAL
- ec_move2 ROAR
- ec_word ROCK
- ec_move2 ROCK_BLAST
- ec_word ROCK_HEAD
- ec_move1 ROCK_SLIDE
- ec_move1 ROCK_SMASH
- ec_move1 ROCK_THROW
- ec_move1 ROCK_TOMB
- ec_word ROCK_SOLID
- ec_move2 ROLE_PLAY
- ec_move2 ROLLING_KICK
- ec_move1 ROLLOUT
- ec_word ROMANTIC
- ec_pokemon1 ROSELIA
- ec_word ROUGH_SKIN
- ec_word RPG
- ec_word RUBY
- ec_word RULE
- ec_word RUN
- ec_word RUN_AWAY
- ec_word RUNS
+ .2byte EC_WORD_RADIO
+ .2byte EC_MOVE(RAGE)
+ ec_duplicates 2
+ .2byte EC_POKEMON(RAICHU)
+ .2byte EC_POKEMON2(RAICHU)
+ .2byte EC_POKEMON2(RAIKOU)
+ .2byte EC_MOVE(RAIN_DANCE)
+ .2byte EC_WORD_RAIN_DISH
+ .2byte EC_POKEMON(RALTS)
+ .2byte EC_WORD_RANK
+ .2byte EC_MOVE(RAPID_SPIN)
+ .2byte EC_POKEMON2(RAPIDASH)
+ .2byte EC_WORD_RARE
+ .2byte EC_WORD_RATHER
+ .2byte EC_POKEMON2(RATICATE)
+ .2byte EC_POKEMON2(RATTATA)
+ .2byte EC_POKEMON(RAYQUAZA)
+ .2byte EC_MOVE2(RAZOR_LEAF)
+ .2byte EC_MOVE(RAZOR_WIND)
+ .2byte EC_WORD_READY
+ .2byte EC_WORD_REALLY
+ .2byte EC_WORD_REAR
+ .2byte EC_WORD_RECEIVED
+ .2byte EC_WORD_RECOMMEND
+ .2byte EC_MOVE(RECOVER)
+ .2byte EC_MOVE2(RECYCLE)
+ .2byte EC_MOVE2(REFLECT)
+ .2byte EC_MOVE2(REFRESH)
+ .2byte EC_WORD_REFRESHING
+ .2byte EC_WORD_REFUSE
+ .2byte EC_POKEMON(REGICE)
+ .2byte EC_POKEMON(REGIROCK)
+ .2byte EC_POKEMON(REGISTEEL)
+ .2byte EC_WORD_REJECT
+ .2byte EC_WORD_RELEASE
+ .2byte EC_POKEMON(RELICANTH)
+ .2byte EC_POKEMON2(REMORAID)
+ .2byte EC_WORD_RENTAL
+ .2byte EC_MOVE2(REST)
+ .2byte EC_WORD_RESUSCITATE
+ .2byte EC_MOVE(RETURN)
+ .2byte EC_MOVE2(REVENGE)
+ .2byte EC_MOVE(REVERSAL)
+ ec_duplicates 2
+ .2byte EC_POKEMON(RHYDON)
+ .2byte EC_POKEMON2(RHYDON)
+ ec_duplicates 2
+ .2byte EC_POKEMON(RHYHORN)
+ .2byte EC_POKEMON2(RHYHORN)
+ .2byte EC_WORD_RIBBON
+ .2byte EC_WORD_RICKETY
+ .2byte EC_WORD_RIGHT
+ .2byte EC_WORD_RIPPED
+ .2byte EC_WORD_RIVAL
+ .2byte EC_MOVE2(ROAR)
+ .2byte EC_WORD_ROCK
+ .2byte EC_MOVE2(ROCK_BLAST)
+ .2byte EC_WORD_ROCK_HEAD
+ .2byte EC_MOVE(ROCK_SLIDE)
+ .2byte EC_MOVE(ROCK_SMASH)
+ .2byte EC_MOVE(ROCK_THROW)
+ .2byte EC_MOVE(ROCK_TOMB)
+ .2byte EC_WORD_ROCK_SOLID
+ .2byte EC_MOVE2(ROLE_PLAY)
+ .2byte EC_MOVE2(ROLLING_KICK)
+ .2byte EC_MOVE(ROLLOUT)
+ .2byte EC_WORD_ROMANTIC
+ .2byte EC_POKEMON(ROSELIA)
+ .2byte EC_WORD_ROUGH_SKIN
+ .2byte EC_WORD_RPG
+ .2byte EC_WORD_RUBY
+ .2byte EC_WORD_RULE
+ .2byte EC_WORD_RUN
+ .2byte EC_WORD_RUN_AWAY
+ .2byte EC_WORD_RUNS
gEasyChatWordsByLetter_S:
- ec_pokemon1 SABLEYE
- ec_move1 SACRED_FIRE
- ec_word SAD
- ec_word SADLY
- ec_move1 SAFEGUARD
- ec_word SAID
- ec_pokemon1 SALAMENCE
- ec_word SAND_STREAM
- ec_move1 SAND_TOMB
- ec_word SAND_VEIL
- ec_move1 SAND_ATTACK
- ec_duplicates 2
- ec_pokemon1 SANDSHREW
- ec_pokemon2 SANDSHREW
- ec_duplicates 2
- ec_pokemon1 SANDSLASH
- ec_pokemon2 SANDSLASH
- ec_move1 SANDSTORM
- ec_word SAPPHIRE
- ec_word SATISFIED
- ec_word SATURDAY
- ec_word SAYS
- ec_word SCARY
- ec_move1 SCARY_FACE
- ec_word SCATTER
- ec_pokemon1 SCEPTILE
- ec_word SCHOOL
- ec_pokemon2 SCIZOR
- ec_move2 SCRATCH
- ec_move1 SCREECH
- ec_pokemon2 SCYTHER
- ec_duplicates 2
- ec_pokemon1 SEADRA
- ec_pokemon2 SEADRA
- ec_duplicates 2
- ec_pokemon1 SEAKING
- ec_pokemon2 SEAKING
- ec_pokemon1 SEALEO
- ec_word SEARCH
- ec_word SECRET
- ec_word SECRET_BASE
- ec_move2 SECRET_POWER
- ec_word SEE
- ec_word SEE_YA
- ec_pokemon1 SEEDOT
- ec_word SEEK
- ec_pokemon2 SEEL
- ec_word SEEMS
- ec_word SEES
- ec_move2 SEISMIC_TOSS
- ec_move1 SELF_DESTRUCT
- ec_word SENSE
- ec_pokemon2 SENTRET
- ec_word SERENE_GRACE
- ec_word SERIOUS
- ec_word SERIOUSLY
- ec_word SERVICE
- ec_pokemon1 SEVIPER
- ec_move1 SHADOW_BALL
- ec_move1 SHADOW_PUNCH
- ec_word SHADOW_TAG
- ec_word SHADY
- ec_word SHAKE
- ec_word SHAKY
- ec_word SHALLOW
- ec_pokemon1 SHARPEDO
- ec_move1 SHARPEN
- ec_word SHE
- ec_word SHE_IS
- ec_word SHE_WAS
- ec_word SHED_SKIN
- ec_pokemon1 SHEDINJA
- ec_move1 SHEER_COLD
- ec_pokemon1 SHELGON
- ec_word SHELL_ARMOR
- ec_pokemon2 SHELLDER
- ec_word SHIELD_DUST
- ec_pokemon1 SHIFTRY
- ec_word SHINE
- ec_move2 SHOCK_WAVE
- ec_word SHOCKED
- ec_word SHOPPING
- ec_word SHOULD
- ec_word SHOW
- ec_word SHREDDED
- ec_pokemon1 SHROOMISH
- ec_pokemon2 SHUCKLE
- ec_pokemon1 SHUPPET
- ec_word SIBLINGS
- ec_word SIGH
- ec_move1 SIGNAL_BEAM
- ec_pokemon1 SILCOON
- ec_word SILKY
- ec_move1 SILVER_WIND
- ec_word SIMPLE
- ec_word SINCE
- ec_move1 SING
- ec_word SINK
- ec_word SISTER
- ec_duplicates 2
- ec_pokemon1 SKARMORY
- ec_pokemon2 SKARMORY
- ec_move1 SKETCH
- ec_word SKILL
- ec_move1 SKILL_SWAP
- ec_word SKILLED
- ec_pokemon2 SKIPLOOM
- ec_pokemon1 SKITTY
- ec_move2 SKULL_BASH
- ec_move1 SKY_ATTACK
- ec_move1 SKY_UPPERCUT
- ec_move2 SLACK_OFF
- ec_pokemon1 SLAKING
- ec_pokemon1 SLAKOTH
- ec_move2 SLAM
- ec_move1 SLASH
- ec_word SLEEP
- ec_move2 SLEEP_POWDER
- ec_move2 SLEEP_TALK
- ec_word SLEPT
- ec_word SLIDE
- ec_word SLIMY
- ec_pokemon2 SLOWBRO
- ec_pokemon2 SLOWKING
- ec_pokemon2 SLOWPOKE
- ec_move2 SLUDGE
- ec_move2 SLUDGE_BOMB
- ec_duplicates 2
- ec_pokemon1 SLUGMA
- ec_pokemon2 SLUGMA
- ec_word SMACK
- ec_word SMALL
- ec_word SMART
- ec_word SMARTNESS
- ec_pokemon2 SMEARGLE
- ec_word SMELL
- ec_word SMELL_YA
- ec_move1 SMELLING_SALT
- ec_word SMITE
- ec_move1 SMOG
- ec_move1 SMOKESCREEN
- ec_pokemon2 SMOOCHUM
- ec_word SMOOTH
- ec_move2 SNATCH
- ec_pokemon2 SNEASEL
- ec_move1 SNORE
- ec_pokemon2 SNORLAX
- ec_word SNORT
- ec_pokemon1 SNORUNT
- ec_pokemon2 SNUBBULL
- ec_word SO
- ec_move2 SOFT_BOILED
- ec_word SOFTWARE
- ec_move1 SOLAR_BEAM
- ec_pokemon1 SOLROCK
- ec_word SOME
- ec_word SOMEHOW
- ec_word SOMEONE
- ec_word SOMETHING
- ec_word SOMETIME
- ec_word SON
- ec_word SONG
- ec_word SONGS
- ec_move1 SONIC_BOOM
- ec_word SOON
- ec_word SORRY
- ec_word SOUNDPROOF
- ec_word SP_ABILITY
- ec_move1 SPARK
- ec_pokemon2 SPEAROW
- ec_word SPECTATOR
- ec_word SPEED_BOOST
- ec_pokemon1 SPHEAL
- ec_move1 SPIDER_WEB
- ec_move2 SPIKE_CANNON
- ec_move2 SPIKES
- ec_pokemon2 SPINARAK
- ec_pokemon1 SPINDA
- ec_word SPIRALING
- ec_word SPIRIT
- ec_move2 SPIT_UP
- ec_move1 SPITE
- ec_move2 SPLASH
- ec_pokemon1 SPOINK
- ec_move1 SPORE
- ec_word SPORTS
- ec_word SPRING
- ec_pokemon2 SQUIRTLE
- ec_word STAGE
- ec_pokemon2 STANTLER
- ec_duplicates 2
- ec_pokemon1 STARMIE
- ec_pokemon2 STARMIE
- ec_word START
- ec_duplicates 2
- ec_pokemon1 STARYU
- ec_pokemon2 STARYU
- ec_word STATIC
- ec_word STAY_AT_HOME
- ec_word STEEL
- ec_move2 STEEL_WING
- ec_pokemon2 STEELIX
- ec_word STENCH
- ec_word STICKY_HOLD
- ec_move2 STOCKPILE
- ec_move2 STOMP
- ec_word STOP
- ec_word STORE
- ec_word STORES
- ec_word STORY
- ec_word STRATEGY
- ec_move1 STRENGTH
- ec_move1 STRING_SHOT
- ec_word STRONG
- ec_move2 STRUGGLE
- ec_word STUDY
- ec_move1 STUN_SPORE
- ec_word STURDY
- ec_move1 SUBMISSION
- ec_move2 SUBSTITUTE
- ec_word SUCTION_CUPS
- ec_pokemon2 SUDOWOODO
- ec_pokemon2 SUICUNE
- ec_word SUMMER
- ec_word SUNDAY
- ec_pokemon2 SUNFLORA
- ec_pokemon2 SUNKERN
- ec_move2 SUNNY_DAY
- ec_word SUPER
- ec_move1 SUPER_FANG
- ec_move2 SUPERPOWER
- ec_move2 SUPERSONIC
- ec_move2 SURF
- ec_word SURPRISE
- ec_word SURRENDER
- ec_pokemon1 SURSKIT
- ec_pokemon1 SWABLU
- ec_move1 SWAGGER
- ec_move2 SWALLOW
- ec_pokemon1 SWALOT
- ec_pokemon1 SWAMPERT
- ec_word SWARM
- ec_move2 SWEET_KISS
- ec_move1 SWEET_SCENT
- ec_word SWEETS
- ec_pokemon1 SWELLOW
- ec_move1 SWIFT
- ec_word SWIFT_SWIM
- ec_pokemon2 SWINUB
- ec_move2 SWORDS_DANCE
- ec_word SYNCHRONIZE
- ec_move1 SYNTHESIS
- ec_word SYSTEM
+ .2byte EC_POKEMON(SABLEYE)
+ .2byte EC_MOVE(SACRED_FIRE)
+ .2byte EC_WORD_SAD
+ .2byte EC_WORD_SADLY
+ .2byte EC_MOVE(SAFEGUARD)
+ .2byte EC_WORD_SAID
+ .2byte EC_POKEMON(SALAMENCE)
+ .2byte EC_WORD_SAND_STREAM
+ .2byte EC_MOVE(SAND_TOMB)
+ .2byte EC_WORD_SAND_VEIL
+ .2byte EC_MOVE(SAND_ATTACK)
+ ec_duplicates 2
+ .2byte EC_POKEMON(SANDSHREW)
+ .2byte EC_POKEMON2(SANDSHREW)
+ ec_duplicates 2
+ .2byte EC_POKEMON(SANDSLASH)
+ .2byte EC_POKEMON2(SANDSLASH)
+ .2byte EC_MOVE(SANDSTORM)
+ .2byte EC_WORD_SAPPHIRE
+ .2byte EC_WORD_SATISFIED
+ .2byte EC_WORD_SATURDAY
+ .2byte EC_WORD_SAYS
+ .2byte EC_WORD_SCARY
+ .2byte EC_MOVE(SCARY_FACE)
+ .2byte EC_WORD_SCATTER
+ .2byte EC_POKEMON(SCEPTILE)
+ .2byte EC_WORD_SCHOOL
+ .2byte EC_POKEMON2(SCIZOR)
+ .2byte EC_MOVE2(SCRATCH)
+ .2byte EC_MOVE(SCREECH)
+ .2byte EC_POKEMON2(SCYTHER)
+ ec_duplicates 2
+ .2byte EC_POKEMON(SEADRA)
+ .2byte EC_POKEMON2(SEADRA)
+ ec_duplicates 2
+ .2byte EC_POKEMON(SEAKING)
+ .2byte EC_POKEMON2(SEAKING)
+ .2byte EC_POKEMON(SEALEO)
+ .2byte EC_WORD_SEARCH
+ .2byte EC_WORD_SECRET
+ .2byte EC_WORD_SECRET_BASE
+ .2byte EC_MOVE2(SECRET_POWER)
+ .2byte EC_WORD_SEE
+ .2byte EC_WORD_SEE_YA
+ .2byte EC_POKEMON(SEEDOT)
+ .2byte EC_WORD_SEEK
+ .2byte EC_POKEMON2(SEEL)
+ .2byte EC_WORD_SEEMS
+ .2byte EC_WORD_SEES
+ .2byte EC_MOVE2(SEISMIC_TOSS)
+ .2byte EC_MOVE(SELF_DESTRUCT)
+ .2byte EC_WORD_SENSE
+ .2byte EC_POKEMON2(SENTRET)
+ .2byte EC_WORD_SERENE_GRACE
+ .2byte EC_WORD_SERIOUS
+ .2byte EC_WORD_SERIOUSLY
+ .2byte EC_WORD_SERVICE
+ .2byte EC_POKEMON(SEVIPER)
+ .2byte EC_MOVE(SHADOW_BALL)
+ .2byte EC_MOVE(SHADOW_PUNCH)
+ .2byte EC_WORD_SHADOW_TAG
+ .2byte EC_WORD_SHADY
+ .2byte EC_WORD_SHAKE
+ .2byte EC_WORD_SHAKY
+ .2byte EC_WORD_SHALLOW
+ .2byte EC_POKEMON(SHARPEDO)
+ .2byte EC_MOVE(SHARPEN)
+ .2byte EC_WORD_SHE
+ .2byte EC_WORD_SHE_IS
+ .2byte EC_WORD_SHE_WAS
+ .2byte EC_WORD_SHED_SKIN
+ .2byte EC_POKEMON(SHEDINJA)
+ .2byte EC_MOVE(SHEER_COLD)
+ .2byte EC_POKEMON(SHELGON)
+ .2byte EC_WORD_SHELL_ARMOR
+ .2byte EC_POKEMON2(SHELLDER)
+ .2byte EC_WORD_SHIELD_DUST
+ .2byte EC_POKEMON(SHIFTRY)
+ .2byte EC_WORD_SHINE
+ .2byte EC_MOVE2(SHOCK_WAVE)
+ .2byte EC_WORD_SHOCKED
+ .2byte EC_WORD_SHOPPING
+ .2byte EC_WORD_SHOULD
+ .2byte EC_WORD_SHOW
+ .2byte EC_WORD_SHREDDED
+ .2byte EC_POKEMON(SHROOMISH)
+ .2byte EC_POKEMON2(SHUCKLE)
+ .2byte EC_POKEMON(SHUPPET)
+ .2byte EC_WORD_SIBLINGS
+ .2byte EC_WORD_SIGH
+ .2byte EC_MOVE(SIGNAL_BEAM)
+ .2byte EC_POKEMON(SILCOON)
+ .2byte EC_WORD_SILKY
+ .2byte EC_MOVE(SILVER_WIND)
+ .2byte EC_WORD_SIMPLE
+ .2byte EC_WORD_SINCE
+ .2byte EC_MOVE(SING)
+ .2byte EC_WORD_SINK
+ .2byte EC_WORD_SISTER
+ ec_duplicates 2
+ .2byte EC_POKEMON(SKARMORY)
+ .2byte EC_POKEMON2(SKARMORY)
+ .2byte EC_MOVE(SKETCH)
+ .2byte EC_WORD_SKILL
+ .2byte EC_MOVE(SKILL_SWAP)
+ .2byte EC_WORD_SKILLED
+ .2byte EC_POKEMON2(SKIPLOOM)
+ .2byte EC_POKEMON(SKITTY)
+ .2byte EC_MOVE2(SKULL_BASH)
+ .2byte EC_MOVE(SKY_ATTACK)
+ .2byte EC_MOVE(SKY_UPPERCUT)
+ .2byte EC_MOVE2(SLACK_OFF)
+ .2byte EC_POKEMON(SLAKING)
+ .2byte EC_POKEMON(SLAKOTH)
+ .2byte EC_MOVE2(SLAM)
+ .2byte EC_MOVE(SLASH)
+ .2byte EC_WORD_SLEEP
+ .2byte EC_MOVE2(SLEEP_POWDER)
+ .2byte EC_MOVE2(SLEEP_TALK)
+ .2byte EC_WORD_SLEPT
+ .2byte EC_WORD_SLIDE
+ .2byte EC_WORD_SLIMY
+ .2byte EC_POKEMON2(SLOWBRO)
+ .2byte EC_POKEMON2(SLOWKING)
+ .2byte EC_POKEMON2(SLOWPOKE)
+ .2byte EC_MOVE2(SLUDGE)
+ .2byte EC_MOVE2(SLUDGE_BOMB)
+ ec_duplicates 2
+ .2byte EC_POKEMON(SLUGMA)
+ .2byte EC_POKEMON2(SLUGMA)
+ .2byte EC_WORD_SMACK
+ .2byte EC_WORD_SMALL
+ .2byte EC_WORD_SMART
+ .2byte EC_WORD_SMARTNESS
+ .2byte EC_POKEMON2(SMEARGLE)
+ .2byte EC_WORD_SMELL
+ .2byte EC_WORD_SMELL_YA
+ .2byte EC_MOVE(SMELLING_SALT)
+ .2byte EC_WORD_SMITE
+ .2byte EC_MOVE(SMOG)
+ .2byte EC_MOVE(SMOKESCREEN)
+ .2byte EC_POKEMON2(SMOOCHUM)
+ .2byte EC_WORD_SMOOTH
+ .2byte EC_MOVE2(SNATCH)
+ .2byte EC_POKEMON2(SNEASEL)
+ .2byte EC_MOVE(SNORE)
+ .2byte EC_POKEMON2(SNORLAX)
+ .2byte EC_WORD_SNORT
+ .2byte EC_POKEMON(SNORUNT)
+ .2byte EC_POKEMON2(SNUBBULL)
+ .2byte EC_WORD_SO
+ .2byte EC_MOVE2(SOFT_BOILED)
+ .2byte EC_WORD_SOFTWARE
+ .2byte EC_MOVE(SOLAR_BEAM)
+ .2byte EC_POKEMON(SOLROCK)
+ .2byte EC_WORD_SOME
+ .2byte EC_WORD_SOMEHOW
+ .2byte EC_WORD_SOMEONE
+ .2byte EC_WORD_SOMETHING
+ .2byte EC_WORD_SOMETIME
+ .2byte EC_WORD_SON
+ .2byte EC_WORD_SONG
+ .2byte EC_WORD_SONGS
+ .2byte EC_MOVE(SONIC_BOOM)
+ .2byte EC_WORD_SOON
+ .2byte EC_WORD_SORRY
+ .2byte EC_WORD_SOUNDPROOF
+ .2byte EC_WORD_SP_ABILITY
+ .2byte EC_MOVE(SPARK)
+ .2byte EC_POKEMON2(SPEAROW)
+ .2byte EC_WORD_SPECTATOR
+ .2byte EC_WORD_SPEED_BOOST
+ .2byte EC_POKEMON(SPHEAL)
+ .2byte EC_MOVE(SPIDER_WEB)
+ .2byte EC_MOVE2(SPIKE_CANNON)
+ .2byte EC_MOVE2(SPIKES)
+ .2byte EC_POKEMON2(SPINARAK)
+ .2byte EC_POKEMON(SPINDA)
+ .2byte EC_WORD_SPIRALING
+ .2byte EC_WORD_SPIRIT
+ .2byte EC_MOVE2(SPIT_UP)
+ .2byte EC_MOVE(SPITE)
+ .2byte EC_MOVE2(SPLASH)
+ .2byte EC_POKEMON(SPOINK)
+ .2byte EC_MOVE(SPORE)
+ .2byte EC_WORD_SPORTS
+ .2byte EC_WORD_SPRING
+ .2byte EC_POKEMON2(SQUIRTLE)
+ .2byte EC_WORD_STAGE
+ .2byte EC_POKEMON2(STANTLER)
+ ec_duplicates 2
+ .2byte EC_POKEMON(STARMIE)
+ .2byte EC_POKEMON2(STARMIE)
+ .2byte EC_WORD_START
+ ec_duplicates 2
+ .2byte EC_POKEMON(STARYU)
+ .2byte EC_POKEMON2(STARYU)
+ .2byte EC_WORD_STATIC
+ .2byte EC_WORD_STAY_AT_HOME
+ .2byte EC_WORD_STEEL
+ .2byte EC_MOVE2(STEEL_WING)
+ .2byte EC_POKEMON2(STEELIX)
+ .2byte EC_WORD_STENCH
+ .2byte EC_WORD_STICKY_HOLD
+ .2byte EC_MOVE2(STOCKPILE)
+ .2byte EC_MOVE2(STOMP)
+ .2byte EC_WORD_STOP
+ .2byte EC_WORD_STORE
+ .2byte EC_WORD_STORES
+ .2byte EC_WORD_STORY
+ .2byte EC_WORD_STRATEGY
+ .2byte EC_MOVE(STRENGTH)
+ .2byte EC_MOVE(STRING_SHOT)
+ .2byte EC_WORD_STRONG
+ .2byte EC_MOVE2(STRUGGLE)
+ .2byte EC_WORD_STUDY
+ .2byte EC_MOVE(STUN_SPORE)
+ .2byte EC_WORD_STURDY
+ .2byte EC_MOVE(SUBMISSION)
+ .2byte EC_MOVE2(SUBSTITUTE)
+ .2byte EC_WORD_SUCTION_CUPS
+ .2byte EC_POKEMON2(SUDOWOODO)
+ .2byte EC_POKEMON2(SUICUNE)
+ .2byte EC_WORD_SUMMER
+ .2byte EC_WORD_SUNDAY
+ .2byte EC_POKEMON2(SUNFLORA)
+ .2byte EC_POKEMON2(SUNKERN)
+ .2byte EC_MOVE2(SUNNY_DAY)
+ .2byte EC_WORD_SUPER
+ .2byte EC_MOVE(SUPER_FANG)
+ .2byte EC_MOVE2(SUPERPOWER)
+ .2byte EC_MOVE2(SUPERSONIC)
+ .2byte EC_MOVE2(SURF)
+ .2byte EC_WORD_SURPRISE
+ .2byte EC_WORD_SURRENDER
+ .2byte EC_POKEMON(SURSKIT)
+ .2byte EC_POKEMON(SWABLU)
+ .2byte EC_MOVE(SWAGGER)
+ .2byte EC_MOVE2(SWALLOW)
+ .2byte EC_POKEMON(SWALOT)
+ .2byte EC_POKEMON(SWAMPERT)
+ .2byte EC_WORD_SWARM
+ .2byte EC_MOVE2(SWEET_KISS)
+ .2byte EC_MOVE(SWEET_SCENT)
+ .2byte EC_WORD_SWEETS
+ .2byte EC_POKEMON(SWELLOW)
+ .2byte EC_MOVE(SWIFT)
+ .2byte EC_WORD_SWIFT_SWIM
+ .2byte EC_POKEMON2(SWINUB)
+ .2byte EC_MOVE2(SWORDS_DANCE)
+ .2byte EC_WORD_SYNCHRONIZE
+ .2byte EC_MOVE(SYNTHESIS)
+ .2byte EC_WORD_SYSTEM
gEasyChatWordsByLetter_T:
- ec_move2 TACKLE
- ec_move2 TAIL_GLOW
- ec_move1 TAIL_WHIP
- ec_pokemon1 TAILLOW
- ec_word TAKE
- ec_move2 TAKE_DOWN
- ec_word TAKE_THAT
- ec_word TALENT
- ec_word TALK
- ec_word TALKING
- ec_pokemon2 TANGELA
- ec_word TASTY
- ec_move2 TAUNT
- ec_pokemon2 TAUROS
- ec_word TCH
- ec_word TEACH
- ec_word TEACHER
- ec_word TEACHES
- ec_pokemon2 TEDDIURSA
- ec_move2 TEETER_DANCE
- ec_move2 TELEPORT
- ec_word TELEVISION
- ec_duplicates 2
- ec_pokemon1 TENTACOOL
- ec_pokemon2 TENTACOOL
- ec_duplicates 2
- ec_pokemon1 TENTACRUEL
- ec_pokemon2 TENTACRUEL
- ec_word TERRIBLE
- ec_word TEST
- ec_word THAN
- ec_word THANK_YOU
- ec_word THANKS
- ec_word THAT
- ec_word THAT_WAS
- ec_word THAT_S
- ec_word THAT_S_IT_EXCL
- ec_word THE
- ec_word THEIR
- ec_word THERE
- ec_word THESE
- ec_word THESE_WERE
- ec_word THEY
- ec_word THEY_WERE
- ec_word THEY_RE
- ec_word THEY_VE
- ec_word THICK
- ec_word THICK_FAT
- ec_move2 THIEF
- ec_word THIN
- ec_word THING
- ec_word THINGS
- ec_word THINK
- ec_word THINKS
- ec_word THIRSTY
- ec_word THIS
- ec_word THIS_IS_IT_EXCL
- ec_word THOSE
- ec_word THOSE_ARE
- ec_word THOSE_WERE
- ec_move1 THRASH
- ec_word THROW
- ec_move1 THUNDER
- ec_move2 THUNDER_WAVE
- ec_move1 THUNDERBOLT
- ec_move1 THUNDER_PUNCH
- ec_move2 THUNDER_SHOCK
- ec_word THURSDAY
- ec_move1 TICKLE
- ec_word TICKLISH
- ec_word TIGHT
- ec_word TIME
- ec_word TIMES
- ec_word TIRED
- ec_word TO
- ec_word TO_HER
- ec_word TO_ME
- ec_word TO_THEM
- ec_word TO_US
- ec_word TO_WHOM
- ec_word TODAY
- ec_pokemon2 TOGEPI
- ec_word TOGETHER
- ec_pokemon2 TOGETIC
- ec_word TOMORROW
- ec_word TOO
- ec_word TOO_LATE
- ec_word TOO_STRONG
- ec_word TOO_WEAK
- ec_word TOP
- ec_pokemon1 TORCHIC
- ec_pokemon1 TORKOAL
- ec_move1 TORMENT
- ec_word TORRENT
- ec_word TOTALLY
- ec_pokemon2 TOTODILE
- ec_word TOUGH
- ec_word TOUGHNESS
- ec_word TOURNAMENT
- ec_move2 TOXIC
- ec_word TOYS
- ec_word TRACE
- ec_word TRADE
- ec_word TRAIN
- ec_word TRAINER
- ec_word TRAINS
- ec_move2 TRANSFORM
- ec_pokemon1 TRAPINCH
- ec_word TRAVEL
- ec_word TREASURE
- ec_pokemon1 TREECKO
- ec_word TRENDY
- ec_move2 TRI_ATTACK
- ec_move2 TRICK
- ec_word TRIES
- ec_move2 TRIPLE_KICK
- ec_pokemon1 TROPIUS
- ec_word TRUANT
- ec_word TRULY
- ec_word TRUMP_CARD
- ec_word TRUST
- ec_word TRY
- ec_word TUESDAY
- ec_move2 TWINEEDLE
- ec_word TWIRLING
- ec_move2 TWISTER
- ec_word TYPE
- ec_pokemon2 TYPHLOSION
- ec_pokemon2 TYRANITAR
- ec_pokemon2 TYROGUE
+ .2byte EC_MOVE2(TACKLE)
+ .2byte EC_MOVE2(TAIL_GLOW)
+ .2byte EC_MOVE(TAIL_WHIP)
+ .2byte EC_POKEMON(TAILLOW)
+ .2byte EC_WORD_TAKE
+ .2byte EC_MOVE2(TAKE_DOWN)
+ .2byte EC_WORD_TAKE_THAT
+ .2byte EC_WORD_TALENT
+ .2byte EC_WORD_TALK
+ .2byte EC_WORD_TALKING
+ .2byte EC_POKEMON2(TANGELA)
+ .2byte EC_WORD_TASTY
+ .2byte EC_MOVE2(TAUNT)
+ .2byte EC_POKEMON2(TAUROS)
+ .2byte EC_WORD_TCH
+ .2byte EC_WORD_TEACH
+ .2byte EC_WORD_TEACHER
+ .2byte EC_WORD_TEACHES
+ .2byte EC_POKEMON2(TEDDIURSA)
+ .2byte EC_MOVE2(TEETER_DANCE)
+ .2byte EC_MOVE2(TELEPORT)
+ .2byte EC_WORD_TELEVISION
+ ec_duplicates 2
+ .2byte EC_POKEMON(TENTACOOL)
+ .2byte EC_POKEMON2(TENTACOOL)
+ ec_duplicates 2
+ .2byte EC_POKEMON(TENTACRUEL)
+ .2byte EC_POKEMON2(TENTACRUEL)
+ .2byte EC_WORD_TERRIBLE
+ .2byte EC_WORD_TEST
+ .2byte EC_WORD_THAN
+ .2byte EC_WORD_THANK_YOU
+ .2byte EC_WORD_THANKS
+ .2byte EC_WORD_THAT
+ .2byte EC_WORD_THAT_WAS
+ .2byte EC_WORD_THAT_S
+ .2byte EC_WORD_THAT_S_IT_EXCL
+ .2byte EC_WORD_THE
+ .2byte EC_WORD_THEIR
+ .2byte EC_WORD_THERE
+ .2byte EC_WORD_THESE
+ .2byte EC_WORD_THESE_WERE
+ .2byte EC_WORD_THEY
+ .2byte EC_WORD_THEY_WERE
+ .2byte EC_WORD_THEY_RE
+ .2byte EC_WORD_THEY_VE
+ .2byte EC_WORD_THICK
+ .2byte EC_WORD_THICK_FAT
+ .2byte EC_MOVE2(THIEF)
+ .2byte EC_WORD_THIN
+ .2byte EC_WORD_THING
+ .2byte EC_WORD_THINGS
+ .2byte EC_WORD_THINK
+ .2byte EC_WORD_THINKS
+ .2byte EC_WORD_THIRSTY
+ .2byte EC_WORD_THIS
+ .2byte EC_WORD_THIS_IS_IT_EXCL
+ .2byte EC_WORD_THOSE
+ .2byte EC_WORD_THOSE_ARE
+ .2byte EC_WORD_THOSE_WERE
+ .2byte EC_MOVE(THRASH)
+ .2byte EC_WORD_THROW
+ .2byte EC_MOVE(THUNDER)
+ .2byte EC_MOVE2(THUNDER_WAVE)
+ .2byte EC_MOVE(THUNDERBOLT)
+ .2byte EC_MOVE(THUNDER_PUNCH)
+ .2byte EC_MOVE2(THUNDER_SHOCK)
+ .2byte EC_WORD_THURSDAY
+ .2byte EC_MOVE(TICKLE)
+ .2byte EC_WORD_TICKLISH
+ .2byte EC_WORD_TIGHT
+ .2byte EC_WORD_TIME
+ .2byte EC_WORD_TIMES
+ .2byte EC_WORD_TIRED
+ .2byte EC_WORD_TO
+ .2byte EC_WORD_TO_HER
+ .2byte EC_WORD_TO_ME
+ .2byte EC_WORD_TO_THEM
+ .2byte EC_WORD_TO_US
+ .2byte EC_WORD_TO_WHOM
+ .2byte EC_WORD_TODAY
+ .2byte EC_POKEMON2(TOGEPI)
+ .2byte EC_WORD_TOGETHER
+ .2byte EC_POKEMON2(TOGETIC)
+ .2byte EC_WORD_TOMORROW
+ .2byte EC_WORD_TOO
+ .2byte EC_WORD_TOO_LATE
+ .2byte EC_WORD_TOO_STRONG
+ .2byte EC_WORD_TOO_WEAK
+ .2byte EC_WORD_TOP
+ .2byte EC_POKEMON(TORCHIC)
+ .2byte EC_POKEMON(TORKOAL)
+ .2byte EC_MOVE(TORMENT)
+ .2byte EC_WORD_TORRENT
+ .2byte EC_WORD_TOTALLY
+ .2byte EC_POKEMON2(TOTODILE)
+ .2byte EC_WORD_TOUGH
+ .2byte EC_WORD_TOUGHNESS
+ .2byte EC_WORD_TOURNAMENT
+ .2byte EC_MOVE2(TOXIC)
+ .2byte EC_WORD_TOYS
+ .2byte EC_WORD_TRACE
+ .2byte EC_WORD_TRADE
+ .2byte EC_WORD_TRAIN
+ .2byte EC_WORD_TRAINER
+ .2byte EC_WORD_TRAINS
+ .2byte EC_MOVE2(TRANSFORM)
+ .2byte EC_POKEMON(TRAPINCH)
+ .2byte EC_WORD_TRAVEL
+ .2byte EC_WORD_TREASURE
+ .2byte EC_POKEMON(TREECKO)
+ .2byte EC_WORD_TRENDY
+ .2byte EC_MOVE2(TRI_ATTACK)
+ .2byte EC_MOVE2(TRICK)
+ .2byte EC_WORD_TRIES
+ .2byte EC_MOVE2(TRIPLE_KICK)
+ .2byte EC_POKEMON(TROPIUS)
+ .2byte EC_WORD_TRUANT
+ .2byte EC_WORD_TRULY
+ .2byte EC_WORD_TRUMP_CARD
+ .2byte EC_WORD_TRUST
+ .2byte EC_WORD_TRY
+ .2byte EC_WORD_TUESDAY
+ .2byte EC_MOVE2(TWINEEDLE)
+ .2byte EC_WORD_TWIRLING
+ .2byte EC_MOVE2(TWISTER)
+ .2byte EC_WORD_TYPE
+ .2byte EC_POKEMON2(TYPHLOSION)
+ .2byte EC_POKEMON2(TYRANITAR)
+ .2byte EC_POKEMON2(TYROGUE)
gEasyChatWordsByLetter_U:
- ec_word UGLY
- ec_word UH_HUH
- ec_word UH_OH
- ec_word UM
- ec_pokemon2 UMBREON
- ec_word UNAVOIDABLE
- ec_word UNBELIEVABLE
- ec_word UNCLE
- ec_word UNDERSTAND
- ec_word UNDERSTANDS
- ec_word UNDERSTOOD
- ec_pokemon2 UNOWN
- ec_word UNTIL
- ec_word UP
- ec_word UPBEAT
- ec_move1 UPROAR
- ec_word UPSIDE_DOWN
- ec_word URGH
- ec_pokemon2 URSARING
- ec_word USE
- ec_word USELESS
- ec_word USES
- ec_word USING
+ .2byte EC_WORD_UGLY
+ .2byte EC_WORD_UH_HUH
+ .2byte EC_WORD_UH_OH
+ .2byte EC_WORD_UM
+ .2byte EC_POKEMON2(UMBREON)
+ .2byte EC_WORD_UNAVOIDABLE
+ .2byte EC_WORD_UNBELIEVABLE
+ .2byte EC_WORD_UNCLE
+ .2byte EC_WORD_UNDERSTAND
+ .2byte EC_WORD_UNDERSTANDS
+ .2byte EC_WORD_UNDERSTOOD
+ .2byte EC_POKEMON2(UNOWN)
+ .2byte EC_WORD_UNTIL
+ .2byte EC_WORD_UP
+ .2byte EC_WORD_UPBEAT
+ .2byte EC_MOVE(UPROAR)
+ .2byte EC_WORD_UPSIDE_DOWN
+ .2byte EC_WORD_URGH
+ .2byte EC_POKEMON2(URSARING)
+ .2byte EC_WORD_USE
+ .2byte EC_WORD_USELESS
+ .2byte EC_WORD_USES
+ .2byte EC_WORD_USING
gEasyChatWordsByLetter_V:
- ec_word VACATION
- ec_pokemon2 VAPOREON
- ec_pokemon2 VENOMOTH
- ec_pokemon2 VENONAT
- ec_pokemon2 VENUSAUR
- ec_word VERSION
- ec_word VERSUS
- ec_word VERY
- ec_pokemon1 VIBRAVA
- ec_move2 VICE_GRIP
- ec_word VICTORY
- ec_pokemon2 VICTREEBEL
- ec_word VIEWING
- ec_pokemon1 VIGOROTH
- ec_duplicates 2
- ec_pokemon1 VILEPLUME
- ec_pokemon2 VILEPLUME
- ec_move2 VINE_WHIP
- ec_word VITAL_SPIRIT
- ec_move1 VITAL_THROW
- ec_pokemon1 VOLBEAT
- ec_word VOLT_ABSORB
- ec_duplicates 2
- ec_pokemon1 VOLTORB
- ec_pokemon2 VOLTORB
- ec_word VORACIOUS
- ec_duplicates 2
- ec_pokemon1 VULPIX
- ec_pokemon2 VULPIX
+ .2byte EC_WORD_VACATION
+ .2byte EC_POKEMON2(VAPOREON)
+ .2byte EC_POKEMON2(VENOMOTH)
+ .2byte EC_POKEMON2(VENONAT)
+ .2byte EC_POKEMON2(VENUSAUR)
+ .2byte EC_WORD_VERSION
+ .2byte EC_WORD_VERSUS
+ .2byte EC_WORD_VERY
+ .2byte EC_POKEMON(VIBRAVA)
+ .2byte EC_MOVE2(VICE_GRIP)
+ .2byte EC_WORD_VICTORY
+ .2byte EC_POKEMON2(VICTREEBEL)
+ .2byte EC_WORD_VIEWING
+ .2byte EC_POKEMON(VIGOROTH)
+ ec_duplicates 2
+ .2byte EC_POKEMON(VILEPLUME)
+ .2byte EC_POKEMON2(VILEPLUME)
+ .2byte EC_MOVE2(VINE_WHIP)
+ .2byte EC_WORD_VITAL_SPIRIT
+ .2byte EC_MOVE(VITAL_THROW)
+ .2byte EC_POKEMON(VOLBEAT)
+ .2byte EC_WORD_VOLT_ABSORB
+ ec_duplicates 2
+ .2byte EC_POKEMON(VOLTORB)
+ .2byte EC_POKEMON2(VOLTORB)
+ .2byte EC_WORD_VORACIOUS
+ ec_duplicates 2
+ .2byte EC_POKEMON(VULPIX)
+ .2byte EC_POKEMON2(VULPIX)
gEasyChatWordsByLetter_W:
- ec_word WAAAH
- ec_word WAHAHAHA
- ec_pokemon1 WAILMER
- ec_pokemon1 WAILORD
- ec_word WAIT
- ec_word WAKE_UP
- ec_word WAKES_UP
- ec_word WALK
- ec_word WALKING
- ec_word WALKS
- ec_pokemon1 WALREIN
- ec_word WANDERING
- ec_word WANNABE
- ec_word WANT
- ec_word WANTS
- ec_pokemon2 WARTORTLE
- ec_word WAS
- ec_word WASN_T
- ec_word WATER
- ec_word WATER_ABSORB
- ec_move2 WATER_GUN
- ec_move2 WATER_PULSE
- ec_move2 WATER_SPORT
- ec_move1 WATER_SPOUT
- ec_word WATER_VEIL
- ec_move2 WATERFALL
- ec_word WAY
- ec_word WE
- ec_word WE_RE
- ec_word WE_VE
- ec_word WEAK
- ec_word WEAKENED
- ec_move1 WEATHER_BALL
- ec_word WEDNESDAY
- ec_pokemon2 WEEDLE
- ec_word WEEK
- ec_pokemon2 WEEPINBELL
- ec_duplicates 2
- ec_pokemon1 WEEZING
- ec_pokemon2 WEEZING
- ec_word WEIRD
- ec_word WELCOME
- ec_word WELL
- ec_word WELL_THEN
- ec_word WENT
- ec_word WERE
- ec_word WEREN_T
- ec_word WHAT
- ec_word WHAT_S_UP_QUES
- ec_word WHEN
- ec_word WHEN_I_WIN
- ec_word WHERE
- ec_word WHICH
- ec_word WHILE
- ec_move1 WHIRLPOOL
- ec_move2 WHIRLWIND
- ec_pokemon1 WHISCASH
- ec_pokemon1 WHISMUR
- ec_word WHITE_SMOKE
- ec_word WHO
- ec_word WHO_IS
- ec_word WHO_WAS
- ec_word WHOAH
- ec_word WHOM
- ec_word WHOSE
- ec_word WHY
- ec_duplicates 2
- ec_pokemon1 WIGGLYTUFF
- ec_pokemon2 WIGGLYTUFF
- ec_word WILD
- ec_word WILL
- ec_word WILL_BE_HERE
- ec_move1 WILL_O_WISP
- ec_word WIMPY
- ec_word WIN
- ec_move2 WING_ATTACK
- ec_pokemon1 WINGULL
- ec_word WINNER
- ec_word WINS
- ec_word WINTER
- ec_move2 WISH
- ec_word WITH
- ec_move1 WITHDRAW
- ec_word WITHOUT
- ec_word WOBBLY
- ec_duplicates 2
- ec_pokemon1 WOBBUFFET
- ec_pokemon2 WOBBUFFET
- ec_word WOMAN
- ec_word WON
- ec_word WON_T
- ec_word WONDER
- ec_word WONDER_GUARD
- ec_pokemon2 WOOPER
- ec_word WORD
- ec_word WORK
- ec_word WORKING
- ec_word WORKS
- ec_word WORLD
- ec_word WORRY
- ec_word WOULD
- ec_word WOW
- ec_word WOWEE
- ec_move2 WRAP
- ec_word WROOOAAR_EXCL
- ec_pokemon1 WURMPLE
- ec_pokemon1 WYNAUT
+ .2byte EC_WORD_WAAAH
+ .2byte EC_WORD_WAHAHAHA
+ .2byte EC_POKEMON(WAILMER)
+ .2byte EC_POKEMON(WAILORD)
+ .2byte EC_WORD_WAIT
+ .2byte EC_WORD_WAKE_UP
+ .2byte EC_WORD_WAKES_UP
+ .2byte EC_WORD_WALK
+ .2byte EC_WORD_WALKING
+ .2byte EC_WORD_WALKS
+ .2byte EC_POKEMON(WALREIN)
+ .2byte EC_WORD_WANDERING
+ .2byte EC_WORD_WANNABE
+ .2byte EC_WORD_WANT
+ .2byte EC_WORD_WANTS
+ .2byte EC_POKEMON2(WARTORTLE)
+ .2byte EC_WORD_WAS
+ .2byte EC_WORD_WASN_T
+ .2byte EC_WORD_WATER
+ .2byte EC_WORD_WATER_ABSORB
+ .2byte EC_MOVE2(WATER_GUN)
+ .2byte EC_MOVE2(WATER_PULSE)
+ .2byte EC_MOVE2(WATER_SPORT)
+ .2byte EC_MOVE(WATER_SPOUT)
+ .2byte EC_WORD_WATER_VEIL
+ .2byte EC_MOVE2(WATERFALL)
+ .2byte EC_WORD_WAY
+ .2byte EC_WORD_WE
+ .2byte EC_WORD_WE_RE
+ .2byte EC_WORD_WE_VE
+ .2byte EC_WORD_WEAK
+ .2byte EC_WORD_WEAKENED
+ .2byte EC_MOVE(WEATHER_BALL)
+ .2byte EC_WORD_WEDNESDAY
+ .2byte EC_POKEMON2(WEEDLE)
+ .2byte EC_WORD_WEEK
+ .2byte EC_POKEMON2(WEEPINBELL)
+ ec_duplicates 2
+ .2byte EC_POKEMON(WEEZING)
+ .2byte EC_POKEMON2(WEEZING)
+ .2byte EC_WORD_WEIRD
+ .2byte EC_WORD_WELCOME
+ .2byte EC_WORD_WELL
+ .2byte EC_WORD_WELL_THEN
+ .2byte EC_WORD_WENT
+ .2byte EC_WORD_WERE
+ .2byte EC_WORD_WEREN_T
+ .2byte EC_WORD_WHAT
+ .2byte EC_WORD_WHAT_S_UP_QUES
+ .2byte EC_WORD_WHEN
+ .2byte EC_WORD_WHEN_I_WIN
+ .2byte EC_WORD_WHERE
+ .2byte EC_WORD_WHICH
+ .2byte EC_WORD_WHILE
+ .2byte EC_MOVE(WHIRLPOOL)
+ .2byte EC_MOVE2(WHIRLWIND)
+ .2byte EC_POKEMON(WHISCASH)
+ .2byte EC_POKEMON(WHISMUR)
+ .2byte EC_WORD_WHITE_SMOKE
+ .2byte EC_WORD_WHO
+ .2byte EC_WORD_WHO_IS
+ .2byte EC_WORD_WHO_WAS
+ .2byte EC_WORD_WHOAH
+ .2byte EC_WORD_WHOM
+ .2byte EC_WORD_WHOSE
+ .2byte EC_WORD_WHY
+ ec_duplicates 2
+ .2byte EC_POKEMON(WIGGLYTUFF)
+ .2byte EC_POKEMON2(WIGGLYTUFF)
+ .2byte EC_WORD_WILD
+ .2byte EC_WORD_WILL
+ .2byte EC_WORD_WILL_BE_HERE
+ .2byte EC_MOVE(WILL_O_WISP)
+ .2byte EC_WORD_WIMPY
+ .2byte EC_WORD_WIN
+ .2byte EC_MOVE2(WING_ATTACK)
+ .2byte EC_POKEMON(WINGULL)
+ .2byte EC_WORD_WINNER
+ .2byte EC_WORD_WINS
+ .2byte EC_WORD_WINTER
+ .2byte EC_MOVE2(WISH)
+ .2byte EC_WORD_WITH
+ .2byte EC_MOVE(WITHDRAW)
+ .2byte EC_WORD_WITHOUT
+ .2byte EC_WORD_WOBBLY
+ ec_duplicates 2
+ .2byte EC_POKEMON(WOBBUFFET)
+ .2byte EC_POKEMON2(WOBBUFFET)
+ .2byte EC_WORD_WOMAN
+ .2byte EC_WORD_WON
+ .2byte EC_WORD_WON_T
+ .2byte EC_WORD_WONDER
+ .2byte EC_WORD_WONDER_GUARD
+ .2byte EC_POKEMON2(WOOPER)
+ .2byte EC_WORD_WORD
+ .2byte EC_WORD_WORK
+ .2byte EC_WORD_WORKING
+ .2byte EC_WORD_WORKS
+ .2byte EC_WORD_WORLD
+ .2byte EC_WORD_WORRY
+ .2byte EC_WORD_WOULD
+ .2byte EC_WORD_WOW
+ .2byte EC_WORD_WOWEE
+ .2byte EC_MOVE2(WRAP)
+ .2byte EC_WORD_WROOOAAR_EXCL
+ .2byte EC_POKEMON(WURMPLE)
+ .2byte EC_POKEMON(WYNAUT)
gEasyChatWordsByLetter_X:
ec_duplicates 2
- ec_pokemon1 XATU
- ec_pokemon2 XATU
+ .2byte EC_POKEMON(XATU)
+ .2byte EC_POKEMON2(XATU)
gEasyChatWordsByLetter_Y:
- ec_word YAHOO
- ec_pokemon2 YANMA
- ec_move1 YAWN
- ec_word YAY
- ec_word YEAH
- ec_word YEAH_YEAH
- ec_word YEEHAW_EXCL
- ec_word YES
- ec_word YES_SIR_EXCL
- ec_word YESTERDAY
- ec_word YET
- ec_word YO
- ec_word YOU
- ec_word YOU_RE
- ec_word YOU_VE
- ec_word YOUNG
- ec_word YOUR
- ec_word YOURS
- ec_word YUP
+ .2byte EC_WORD_YAHOO
+ .2byte EC_POKEMON2(YANMA)
+ .2byte EC_MOVE(YAWN)
+ .2byte EC_WORD_YAY
+ .2byte EC_WORD_YEAH
+ .2byte EC_WORD_YEAH_YEAH
+ .2byte EC_WORD_YEEHAW_EXCL
+ .2byte EC_WORD_YES
+ .2byte EC_WORD_YES_SIR_EXCL
+ .2byte EC_WORD_YESTERDAY
+ .2byte EC_WORD_YET
+ .2byte EC_WORD_YO
+ .2byte EC_WORD_YOU
+ .2byte EC_WORD_YOU_RE
+ .2byte EC_WORD_YOU_VE
+ .2byte EC_WORD_YOUNG
+ .2byte EC_WORD_YOUR
+ .2byte EC_WORD_YOURS
+ .2byte EC_WORD_YUP
gEasyChatWordsByLetter_Z:
- ec_pokemon1 ZANGOOSE
- ec_move2 ZAP_CANNON
- ec_pokemon2 ZAPDOS
- ec_pokemon1 ZIGZAGOON
+ .2byte EC_POKEMON(ZANGOOSE)
+ .2byte EC_MOVE2(ZAP_CANNON)
+ .2byte EC_POKEMON2(ZAPDOS)
+ .2byte EC_POKEMON(ZIGZAGOON)
ec_duplicates 2
- ec_pokemon1 ZUBAT
- ec_pokemon2 ZUBAT
+ .2byte EC_POKEMON(ZUBAT)
+ .2byte EC_POKEMON2(ZUBAT)
gEasyChatWordsByLetter_End:
.align 1
diff --git a/data/text/move_descriptions.inc b/data/text/move_descriptions.inc
deleted file mode 100644
index 29e325ad7..000000000
--- a/data/text/move_descriptions.inc
+++ /dev/null
@@ -1,1772 +0,0 @@
-gMoveDescription_Pound: @ 83BC680
- .string "Pounds the foe with\n"
- .string "forelegs or tail.$"
-
-gMoveDescription_KarateChop: @ 83BC6A6
- .string "A chopping attack with a\n"
- .string "high critical-hit ratio.$"
-
-gMoveDescription_DoubleSlap: @ 83BC6D8
- .string "Repeatedly slaps the foe\n"
- .string "2 to 5 times.$"
-
-gMoveDescription_CometPunch: @ 83BC6FF
- .string "Repeatedly punches the foe\n"
- .string "2 to 5 times.$"
-
-gMoveDescription_MegaPunch: @ 83BC728
- .string "A strong punch thrown with\n"
- .string "incredible power.$"
-
-gMoveDescription_PayDay: @ 83BC755
- .string "Throws coins at the foe.\n"
- .string "Money is recovered after.$"
-
-gMoveDescription_FirePunch: @ 83BC788
- .string "A fiery punch that may burn\n"
- .string "the foe.$"
-
-gMoveDescription_IcePunch: @ 83BC7AD
- .string "An icy punch that may\n"
- .string "freeze the foe.$"
-
-gMoveDescription_ThunderPunch: @ 83BC7D3
- .string "An electrified punch that\n"
- .string "may paralyze the foe.$"
-
-gMoveDescription_Scratch: @ 83BC803
- .string "Scratches the foe with\n"
- .string "sharp claws.$"
-
-gMoveDescription_ViceGrip: @ 83BC827
- .string "Grips the foe with large and\n"
- .string "powerful pincers.$"
-
-gMoveDescription_Guillotine: @ 83BC856
- .string "A powerful pincer attack\n"
- .string "that may cause fainting.$"
-
-gMoveDescription_RazorWind: @ 83BC888
- .string "A 2-turn move that strikes\n"
- .string "the foe on the 2nd turn.$"
-
-gMoveDescription_SwordsDance: @ 83BC8BC
- .string "A fighting dance that\n"
- .string "sharply raises ATTACK.$"
-
-gMoveDescription_Cut: @ 83BC8E9
- .string "Cuts the foe with sharp\n"
- .string "scythes, claws, etc.$"
-
-gMoveDescription_Gust: @ 83BC916
- .string "Strikes the foe with a gust\n"
- .string "of wind whipped up by wings.$"
-
-gMoveDescription_WingAttack: @ 83BC94F
- .string "Strikes the foe with wings\n"
- .string "spread wide.$"
-
-gMoveDescription_Whirlwind: @ 83BC977
- .string "Blows away the foe with\n"
- .string "wind and ends the battle.$"
-
-gMoveDescription_Fly: @ 83BC9A9
- .string "Flies up on the first turn,\n"
- .string "then strikes the next turn.$"
-
-gMoveDescription_Bind: @ 83BC9E1
- .string "Binds and squeezes the foe\n"
- .string "for 2 to 5 turns.$"
-
-gMoveDescription_Slam: @ 83BCA0E
- .string "Slams the foe with a long\n"
- .string "tail, vine, etc.$"
-
-gMoveDescription_VineWhip: @ 83BCA39
- .string "Strikes the foe with\n"
- .string "slender, whiplike vines.$"
-
-gMoveDescription_Stomp: @ 83BCA67
- .string "Stomps the enemy with a big\n"
- .string "foot. May cause flinching.$"
-
-gMoveDescription_DoubleKick: @ 83BCA9E
- .string "A double-kicking attack\n"
- .string "that strikes the foe twice.$"
-
-gMoveDescription_MegaKick: @ 83BCAD2
- .string "An extremely powerful kick\n"
- .string "with intense force.$"
-
-gMoveDescription_JumpKick: @ 83BCB01
- .string "A strong jumping kick. May\n"
- .string "miss and hurt the kicker.$"
-
-gMoveDescription_RollingKick: @ 83BCB36
- .string "A fast kick delivered from\n"
- .string "a rapid spin.$"
-
-gMoveDescription_SandAttack: @ 83BCB5F
- .string "Reduces the foe’s accuracy\n"
- .string "by hurling sand in its face.$"
-
-gMoveDescription_Headbutt: @ 83BCB97
- .string "A ramming attack that may\n"
- .string "cause flinching.$"
-
-gMoveDescription_HornAttack: @ 83BCBC2
- .string "Jabs the foe with sharp\n"
- .string "horns.$"
-
-gMoveDescription_FuryAttack: @ 83BCBE1
- .string "Jabs the foe 2 to 5 times\n"
- .string "with sharp horns, etc.$"
-
-gMoveDescription_HornDrill: @ 83BCC12
- .string "A one-hit KO attack that\n"
- .string "uses a horn like a drill.$"
-
-gMoveDescription_Tackle: @ 83BCC45
- .string "Charges the foe with a full-\n"
- .string "body tackle.$"
-
-gMoveDescription_BodySlam: @ 83BCC6F
- .string "A full-body slam that may\n"
- .string "cause paralysis.$"
-
-gMoveDescription_Wrap: @ 83BCC9A
- .string "Wraps and squeezes the foe\n"
- .string "2 to 5 times with vines, etc.$"
-
-gMoveDescription_TakeDown: @ 83BCCD3
- .string "A reckless charge attack\n"
- .string "that also hurts the user.$"
-
-gMoveDescription_Thrash: @ 83BCD06
- .string "A rampage of 2 to 3 turns\n"
- .string "that confuses the user.$"
-
-gMoveDescription_DoubleEdge: @ 83BCD38
- .string "A life-risking tackle that\n"
- .string "also hurts the user.$"
-
-gMoveDescription_TailWhip: @ 83BCD68
- .string "Wags the tail to lower the\n"
- .string "foe’s DEFENSE.$"
-
-gMoveDescription_PoisonSting: @ 83BCD92
- .string "A toxic attack with barbs,\n"
- .string "etc., that may poison.$"
-
-gMoveDescription_Twineedle: @ 83BCDC4
- .string "Stingers on the forelegs\n"
- .string "jab the foe twice.$"
-
-gMoveDescription_PinMissile: @ 83BCDF0
- .string "Sharp pins are fired to\n"
- .string "strike 2 to 5 times.$"
-
-gMoveDescription_Leer: @ 83BCE1D
- .string "Frightens the foe with a\n"
- .string "leer to lower DEFENSE.$"
-
-gMoveDescription_Bite: @ 83BCE4D
- .string "Bites with vicious fangs.\n"
- .string "May cause flinching.$"
-
-gMoveDescription_Growl: @ 83BCE7C
- .string "Growls cutely to reduce the\n"
- .string "foe’s ATTACK.$"
-
-gMoveDescription_Roar: @ 83BCEA6
- .string "Makes the foe flee to end\n"
- .string "the battle.$"
-
-gMoveDescription_Sing: @ 83BCECC
- .string "A soothing song lulls the\n"
- .string "foe into a deep slumber.$"
-
-gMoveDescription_Supersonic: @ 83BCEFF
- .string "Emits bizarre sound waves\n"
- .string "that may confuse the foe.$"
-
-gMoveDescription_SonicBoom: @ 83BCF33
- .string "Launches shock waves that\n"
- .string "always inflict 20 HP damage.$"
-
-gMoveDescription_Disable: @ 83BCF6A
- .string "Psychically disables one of\n"
- .string "the foe’s moves.$"
-
-gMoveDescription_Acid: @ 83BCF97
- .string "Sprays a hide-melting acid.\n"
- .string "May lower DEFENSE.$"
-
-gMoveDescription_Ember: @ 83BCFC6
- .string "A weak fire attack that may\n"
- .string "inflict a burn.$"
-
-gMoveDescription_Flamethrower: @ 83BCFF2
- .string "A powerful fire attack that\n"
- .string "may inflict a burn.$"
-
-gMoveDescription_Mist: @ 83BD022
- .string "Creates a mist that stops\n"
- .string "reduction of abilities.$"
-
-gMoveDescription_WaterGun: @ 83BD054
- .string "Squirts water to attack\n"
- .string "the foe.$"
-
-gMoveDescription_HydroPump: @ 83BD075
- .string "Blasts water at high power\n"
- .string "to strike the foe.$"
-
-gMoveDescription_Surf: @ 83BD0A3
- .string "Creates a huge wave, then\n"
- .string "crashes it down on the foe.$"
-
-gMoveDescription_IceBeam: @ 83BD0D9
- .string "Blasts the foe with an icy\n"
- .string "beam that may freeze it.$"
-
-gMoveDescription_Blizzard: @ 83BD10D
- .string "Hits the foe with an icy\n"
- .string "storm that may freeze it.$"
-
-gMoveDescription_Psybeam: @ 83BD140
- .string "Fires a peculiar ray that\n"
- .string "may confuse the foe.$"
-
-gMoveDescription_BubbleBeam: @ 83BD16F
- .string "Forcefully sprays bubbles\n"
- .string "that may lower SPEED.$"
-
-gMoveDescription_AuroraBeam: @ 83BD19F
- .string "Fires a rainbow-colored\n"
- .string "beam that may lower ATTACK.$"
-
-gMoveDescription_HyperBeam: @ 83BD1D3
- .string "Powerful, but leaves the\n"
- .string "user immobile the next turn.$"
-
-gMoveDescription_Peck: @ 83BD209
- .string "Attacks the foe with a\n"
- .string "jabbing beak, etc.$"
-
-gMoveDescription_DrillPeck: @ 83BD233
- .string "A corkscrewing attack with\n"
- .string "the beak acting as a drill.$"
-
-gMoveDescription_Submission: @ 83BD26A
- .string "A reckless body slam that\n"
- .string "also hurts the user.$"
-
-gMoveDescription_LowKick: @ 83BD299
- .string "A kick that inflicts more\n"
- .string "damage on heavier foes.$"
-
-gMoveDescription_Counter: @ 83BD2CB
- .string "Retaliates any physical hit\n"
- .string "with double the power.$"
-
-gMoveDescription_SeismicToss: @ 83BD2FE
- .string "Inflicts damage identical\n"
- .string "to the user’s level.$"
-
-gMoveDescription_Strength: @ 83BD32D
- .string "Builds enormous power,\n"
- .string "then slams the foe.$"
-
-gMoveDescription_Absorb: @ 83BD358
- .string "An attack that absorbs\n"
- .string "half the damage inflicted.$"
-
-gMoveDescription_MegaDrain: @ 83BD38A
- .string "An attack that absorbs\n"
- .string "half the damage inflicted.$"
-
-gMoveDescription_LeechSeed: @ 83BD3BC
- .string "Plants a seed on the foe to\n"
- .string "steal HP on every turn.$"
-
-gMoveDescription_Growth: @ 83BD3F0
- .string "Forces the body to grow\n"
- .string "and heightens SP. ATK.$"
-
-gMoveDescription_RazorLeaf: @ 83BD41F
- .string "Cuts the enemy with leaves.\n"
- .string "High critical-hit ratio.$"
-
-gMoveDescription_SolarBeam: @ 83BD454
- .string "Absorbs light in one turn,\n"
- .string "then attacks next turn.$"
-
-gMoveDescription_PoisonPowder: @ 83BD487
- .string "Scatters a toxic powder\n"
- .string "that may poison the foe.$"
-
-gMoveDescription_StunSpore: @ 83BD4B8
- .string "Scatters a powder that may\n"
- .string "paralyze the foe.$"
-
-gMoveDescription_SleepPowder: @ 83BD4E5
- .string "Scatters a powder that may\n"
- .string "cause the foe to sleep.$"
-
-gMoveDescription_PetalDance: @ 83BD518
- .string "A rampage of 2 to 3 turns\n"
- .string "that confuses the user.$"
-
-gMoveDescription_StringShot: @ 83BD54A
- .string "Binds the foe with string\n"
- .string "to reduce its SPEED.$"
-
-gMoveDescription_DragonRage: @ 83BD579
- .string "Launches shock waves that\n"
- .string "always inflict 40 HP damage.$"
-
-gMoveDescription_FireSpin: @ 83BD5B0
- .string "Traps the foe in a ring of\n"
- .string "fire for 2 to 5 turns.$"
-
-gMoveDescription_ThunderShock: @ 83BD5E2
- .string "An electrical attack that\n"
- .string "may paralyze the foe.$"
-
-gMoveDescription_Thunderbolt: @ 83BD612
- .string "A strong electrical attack\n"
- .string "that may paralyze the foe.$"
-
-gMoveDescription_ThunderWave: @ 83BD648
- .string "A weak jolt of electricity\n"
- .string "that paralyzes the foe.$"
-
-gMoveDescription_Thunder: @ 83BD67B
- .string "A lightning attack that may\n"
- .string "cause paralysis.$"
-
-gMoveDescription_RockThrow: @ 83BD6A8
- .string "Throws small rocks to\n"
- .string "strike the foe.$"
-
-gMoveDescription_Earthquake: @ 83BD6CE
- .string "A powerful quake, but has\n"
- .string "no effect on flying foes.$"
-
-gMoveDescription_Fissure: @ 83BD702
- .string "A one-hit KO move that\n"
- .string "drops the foe in a fissure.$"
-
-gMoveDescription_Dig: @ 83BD735
- .string "Digs underground the first\n"
- .string "turn and strikes next turn.$"
-
-gMoveDescription_Toxic: @ 83BD76C
- .string "Poisons the foe with an\n"
- .string "intensifying toxin.$"
-
-gMoveDescription_Confusion: @ 83BD798
- .string "A psychic attack that may\n"
- .string "cause confusion.$"
-
-gMoveDescription_Psychic: @ 83BD7C3
- .string "A powerful psychic attack\n"
- .string "that may lower SP. DEF.$"
-
-gMoveDescription_Hypnosis: @ 83BD7F5
- .string "A hypnotizing move that\n"
- .string "may induce sleep.$"
-
-gMoveDescription_Meditate: @ 83BD81F
- .string "Meditates in a peaceful\n"
- .string "fashion to raise ATTACK.$"
-
-gMoveDescription_Agility: @ 83BD850
- .string "Relaxes the body to sharply\n"
- .string "boost SPEED.$"
-
-gMoveDescription_QuickAttack: @ 83BD879
- .string "An extremely fast attack\n"
- .string "that always strikes first.$"
-
-gMoveDescription_Rage: @ 83BD8AD
- .string "Raises the user’s ATTACK\n"
- .string "every time it is hit.$"
-
-gMoveDescription_Teleport: @ 83BD8DC
- .string "A psychic move for fleeing\n"
- .string "from battle instantly.$"
-
-gMoveDescription_NightShade: @ 83BD90E
- .string "Inflicts damage identical\n"
- .string "to the user’s level.$"
-
-gMoveDescription_Mimic: @ 83BD93D
- .string "Copies a move used by the\n"
- .string "foe during one battle.$"
-
-gMoveDescription_Screech: @ 83BD96E
- .string "Emits a screech to sharply\n"
- .string "reduce the foe’s DEFENSE.$"
-
-gMoveDescription_DoubleTeam: @ 83BD9A3
- .string "Creates illusory copies to\n"
- .string "raise evasiveness.$"
-
-gMoveDescription_Recover: @ 83BD9D1
- .string "Recovers up to half the\n"
- .string "user’s maximum HP.$"
-
-gMoveDescription_Harden: @ 83BD9FC
- .string "Stiffens the body’s \n"
- .string "muscles to raise DEFENSE.$"
-
-gMoveDescription_Minimize: @ 83BDA2B
- .string "Minimizes the user’s size\n"
- .string "to raise evasiveness.$"
-
-gMoveDescription_Smokescreen: @ 83BDA5B
- .string "Lowers the foe’s accuracy\n"
- .string "using smoke, ink, etc.$"
-
-gMoveDescription_ConfuseRay: @ 83BDA8C
- .string "A sinister ray that\n"
- .string "confuses the foe.$"
-
-gMoveDescription_Withdraw: @ 83BDAB2
- .string "Withdraws the body into its\n"
- .string "hard shell to raise DEFENSE.$"
-
-gMoveDescription_DefenseCurl: @ 83BDAEB
- .string "Curls up to conceal weak\n"
- .string "spots and raise DEFENSE.$"
-
-gMoveDescription_Barrier: @ 83BDB1D
- .string "Creates a barrier that\n"
- .string "sharply raises DEFENSE.$"
-
-gMoveDescription_LightScreen: @ 83BDB4C
- .string "Creates a wall of light that\n"
- .string "lowers SP. ATK damage.$"
-
-gMoveDescription_Haze: @ 83BDB80
- .string "Creates a black haze that\n"
- .string "eliminates all stat changes.$"
-
-gMoveDescription_Reflect: @ 83BDBB7
- .string "Creates a wall of light that\n"
- .string "weakens physical attacks.$"
-
-gMoveDescription_FocusEnergy: @ 83BDBEE
- .string "Focuses power to raise the\n"
- .string "critical-hit ratio.$"
-
-gMoveDescription_Bide: @ 83BDC1D
- .string "Endures attack for 2\n"
- .string "turns to retaliate double.$"
-
-gMoveDescription_Metronome: @ 83BDC4D
- .string "Waggles a finger to use any\n"
- .string "POKéMON move at random.$"
-
-gMoveDescription_MirrorMove: @ 83BDC81
- .string "Counters the foe’s attack\n"
- .string "with the same move.$"
-
-gMoveDescription_SelfDestruct: @ 83BDCAF
- .string "Inflicts severe damage but\n"
- .string "makes the user faint.$"
-
-gMoveDescription_EggBomb: @ 83BDCE0
- .string "An egg is forcibly hurled at\n"
- .string "the foe.$"
-
-gMoveDescription_Lick: @ 83BDD06
- .string "Licks with a long tongue to\n"
- .string "injure. May also paralyze.$"
-
-gMoveDescription_Smog: @ 83BDD3D
- .string "An exhaust-gas attack\n"
- .string "that may also poison.$"
-
-gMoveDescription_Sludge: @ 83BDD69
- .string "Sludge is hurled to inflict\n"
- .string "damage. May also poison.$"
-
-gMoveDescription_BoneClub: @ 83BDD9E
- .string "Clubs the foe with a bone.\n"
- .string "May cause flinching.$"
-
-gMoveDescription_FireBlast: @ 83BDDCE
- .string "A fiery blast that scorches\n"
- .string "all. May cause a burn.$"
-
-gMoveDescription_Waterfall: @ 83BDE01
- .string "Charges the foe with speed\n"
- .string "to climb waterfalls.$"
-
-gMoveDescription_Clamp: @ 83BDE31
- .string "Traps and squeezes the\n"
- .string "foe for 2 to 5 turns.$"
-
-gMoveDescription_Swift: @ 83BDE5E
- .string "Sprays star-shaped rays\n"
- .string "that never miss.$"
-
-gMoveDescription_SkullBash: @ 83BDE87
- .string "Tucks in the head, then\n"
- .string "attacks on the next turn.$"
-
-gMoveDescription_SpikeCannon: @ 83BDEB9
- .string "Launches sharp spikes that\n"
- .string "strike 2 to 5 times.$"
-
-gMoveDescription_Constrict: @ 83BDEE9
- .string "Constricts to inflict pain.\n"
- .string "May lower SPEED.$"
-
-gMoveDescription_Amnesia: @ 83BDF16
- .string "Forgets about something\n"
- .string "and sharply raises SP. DEF.$"
-
-gMoveDescription_Kinesis: @ 83BDF4A
- .string "Distracts the foe.\n"
- .string "May lower accuracy.$"
-
-gMoveDescription_SoftBoiled: @ 83BDF71
- .string "Recovers up to half the\n"
- .string "user’s maximum HP.$"
-
-gMoveDescription_HiJumpKick: @ 83BDF9C
- .string "A jumping knee kick. If it\n"
- .string "misses, the user is hurt.$"
-
-gMoveDescription_Glare: @ 83BDFD1
- .string "Intimidates and frightens\n"
- .string "the foe into paralysis.$"
-
-gMoveDescription_DreamEater: @ 83BE003
- .string "Takes one half the damage\n"
- .string "inflicted on a sleeping foe.$"
-
-gMoveDescription_PoisonGas: @ 83BE03A
- .string "Envelops the foe in a toxic\n"
- .string "gas that may poison.$"
-
-gMoveDescription_Barrage: @ 83BE06B
- .string "Hurls round objects at the\n"
- .string "foe 2 to 5 times.$"
-
-gMoveDescription_LeechLife: @ 83BE098
- .string "An attack that steals half\n"
- .string "the damage inflicted.$"
-
-gMoveDescription_LovelyKiss: @ 83BE0C9
- .string "Demands a kiss with a scary\n"
- .string "face that induces sleep.$"
-
-gMoveDescription_SkyAttack: @ 83BE0FE
- .string "Searches out weak spots,\n"
- .string "then strikes the next turn.$"
-
-gMoveDescription_Transform: @ 83BE133
- .string "Alters the user’s cells to\n"
- .string "become a copy of the foe.$"
-
-gMoveDescription_Bubble: @ 83BE168
- .string "An attack using bubbles.\n"
- .string "May lower the foe’s SPEED.$"
-
-gMoveDescription_DizzyPunch: @ 83BE19C
- .string "A rhythmic punch that may\n"
- .string "confuse the foe.$"
-
-gMoveDescription_Spore: @ 83BE1C7
- .string "Scatters a cloud of spores\n"
- .string "that always induce sleep.$"
-
-gMoveDescription_Flash: @ 83BE1FC
- .string "Looses a powerful blast of\n"
- .string "light that cuts accuracy.$"
-
-gMoveDescription_Psywave: @ 83BE231
- .string "Attacks with a psychic\n"
- .string "wave of varying intensity.$"
-
-gMoveDescription_Splash: @ 83BE263
- .string "It’s just a splash...\n"
- .string "Has no effect whatsoever.$"
-
-gMoveDescription_AcidArmor: @ 83BE293
- .string "Liquifies the user’s body\n"
- .string "to sharply raise DEFENSE.$"
-
-gMoveDescription_Crabhammer: @ 83BE2C7
- .string "Hammers with a pincer. Has a\n"
- .string "high critical-hit ratio.$"
-
-gMoveDescription_Explosion: @ 83BE2FD
- .string "Inflicts severe damage but\n"
- .string "makes the user faint.$"
-
-gMoveDescription_FurySwipes: @ 83BE32E
- .string "Rakes the foe with sharp\n"
- .string "claws, etc., 2 to 5 times.$"
-
-gMoveDescription_Bonemerang: @ 83BE362
- .string "Throws a bone boomerang\n"
- .string "that strikes twice.$"
-
-gMoveDescription_Rest: @ 83BE38E
- .string "The user sleeps for 2 turns,\n"
- .string "restoring HP and status.$"
-
-gMoveDescription_RockSlide: @ 83BE3C4
- .string "Large boulders are hurled.\n"
- .string "May cause flinching.$"
-
-gMoveDescription_HyperFang: @ 83BE3F4
- .string "Attacks with sharp fangs.\n"
- .string "May cause flinching.$"
-
-gMoveDescription_Sharpen: @ 83BE423
- .string "Reduces the polygon count\n"
- .string "and raises ATTACK.$"
-
-gMoveDescription_Conversion: @ 83BE450
- .string "Changes the user’s type\n"
- .string "into an own move’s type.$"
-
-gMoveDescription_TriAttack: @ 83BE481
- .string "Fires three types of beams\n"
- .string "at the same time.$"
-
-gMoveDescription_SuperFang: @ 83BE4AE
- .string "Attacks with sharp fangs\n"
- .string "and cuts half the foe’s HP.$"
-
-gMoveDescription_Slash: @ 83BE4E3
- .string "Slashes with claws, etc. Has\n"
- .string "a high critical-hit ratio.$"
-
-gMoveDescription_Substitute: @ 83BE51B
- .string "Creates a decoy using 1/4\n"
- .string "of the user’s maximum HP.$"
-
-gMoveDescription_Struggle: @ 83BE54F
- .string "Used only if all PP are gone.\n"
- .string "Also hurts the user a little.$"
-
-gMoveDescription_Sketch: @ 83BE58B
- .string "Copies the foe’s last move\n"
- .string "permanently.$"
-
-gMoveDescription_TripleKick: @ 83BE5B3
- .string "Kicks the foe 3 times in a\n"
- .string "row with rising intensity.$"
-
-gMoveDescription_Thief: @ 83BE5E9
- .string "While attacking, it may\n"
- .string "steal the foe’s held item.$"
-
-gMoveDescription_SpiderWeb: @ 83BE61C
- .string "Ensnares the foe to stop it\n"
- .string "from fleeing or switching.$"
-
-gMoveDescription_MindReader: @ 83BE653
- .string "Senses the foe’s action to\n"
- .string "ensure the next move’s hit.$"
-
-gMoveDescription_Nightmare: @ 83BE68A
- .string "Inflicts 1/4 damage on a\n"
- .string "sleeping foe every turn.$"
-
-gMoveDescription_FlameWheel: @ 83BE6BC
- .string "A fiery charge attack that\n"
- .string "may inflict a burn.$"
-
-gMoveDescription_Snore: @ 83BE6EB
- .string "A loud attack that can be\n"
- .string "used only while asleep.$"
-
-gMoveDescription_Curse: @ 83BE71D
- .string "A move that functions\n"
- .string "differently for GHOSTS.$"
-
-gMoveDescription_Flail: @ 83BE74B
- .string "Inflicts more damage when\n"
- .string "the user’s HP is down.$"
-
-gMoveDescription_Conversion2: @ 83BE77C
- .string "Makes the user resistant\n"
- .string "to the last attack’s type.$"
-
-gMoveDescription_Aeroblast: @ 83BE7B0
- .string "Launches a vacuumed blast.\n"
- .string "High critical-hit ratio.$"
-
-gMoveDescription_CottonSpore: @ 83BE7E4
- .string "Spores cling to the foe,\n"
- .string "sharply reducing SPEED.$"
-
-gMoveDescription_Reversal: @ 83BE815
- .string "Inflicts more damage when\n"
- .string "the user’s HP is down.$"
-
-gMoveDescription_Spite: @ 83BE846
- .string "Spitefully cuts the PP\n"
- .string "of the foe’s last move.$"
-
-gMoveDescription_PowderSnow: @ 83BE875
- .string "Blasts the foe with a snowy\n"
- .string "gust. May cause freezing.$"
-
-gMoveDescription_Protect: @ 83BE8AB
- .string "Evades attack, but may fail\n"
- .string "if used in succession.$"
-
-gMoveDescription_MachPunch: @ 83BE8DE
- .string "A punch is thrown at wicked\n"
- .string "speed to strike first.$"
-
-gMoveDescription_ScaryFace: @ 83BE911
- .string "Frightens with a scary face\n"
- .string "to sharply reduce SPEED.$"
-
-gMoveDescription_FaintAttack: @ 83BE946
- .string "Draws the foe close, then\n"
- .string "strikes without fail.$"
-
-gMoveDescription_SweetKiss: @ 83BE976
- .string "Demands a kiss with a cute\n"
- .string "look. May cause confusion.$"
-
-gMoveDescription_BellyDrum: @ 83BE9AC
- .string "Maximizes ATTACK while\n"
- .string "sacrificing HP.$"
-
-gMoveDescription_SludgeBomb: @ 83BE9D3
- .string "Sludge is hurled to inflict\n"
- .string "damage. May also poison.$"
-
-gMoveDescription_MudSlap: @ 83BEA08
- .string "Hurls mud in the foe’s face\n"
- .string "to reduce its accuracy.$"
-
-gMoveDescription_Octazooka: @ 83BEA3C
- .string "Fires a lump of ink to\n"
- .string "damage and cut accuracy.$"
-
-gMoveDescription_Spikes: @ 83BEA6C
- .string "Sets spikes that hurt a \n"
- .string "foe switching out.$"
-
-gMoveDescription_ZapCannon: @ 83BEA98
- .string "Powerful and sure to cause\n"
- .string "paralysis, but inaccurate.$"
-
-gMoveDescription_Foresight: @ 83BEACE
- .string "Negates the foe’s efforts\n"
- .string "to heighten evasiveness.$"
-
-gMoveDescription_DestinyBond: @ 83BEB01
- .string "If the user faints, the foe\n"
- .string "is also made to faint.$"
-
-gMoveDescription_PerishSong: @ 83BEB34
- .string "Any POKéMON hearing this\n"
- .string "song faints in 3 turns.$"
-
-gMoveDescription_IcyWind: @ 83BEB65
- .string "A chilling attack that\n"
- .string "lowers the foe’s SPEED.$"
-
-gMoveDescription_Detect: @ 83BEB94
- .string "Evades attack, but may fail\n"
- .string "if used in succession.$"
-
-gMoveDescription_BoneRush: @ 83BEBC7
- .string "Strikes the foe with a bone\n"
- .string "in hand 2 to 5 times.$"
-
-gMoveDescription_LockOn: @ 83BEBF9
- .string "Locks on to the foe to\n"
- .string "ensure the next move hits.$"
-
-gMoveDescription_Outrage: @ 83BEC2B
- .string "A rampage of 2 to 3 turns\n"
- .string "that confuses the user.$"
-
-gMoveDescription_Sandstorm: @ 83BEC5D
- .string "Causes a sandstorm that\n"
- .string "rages for several turns.$"
-
-gMoveDescription_GigaDrain: @ 83BEC8E
- .string "An attack that steals half\n"
- .string "the damage inflicted.$"
-
-gMoveDescription_Endure: @ 83BECBF
- .string "Endures any attack for\n"
- .string "1 turn, leaving at least 1HP.$"
-
-gMoveDescription_Charm: @ 83BECF4
- .string "Charms the foe and sharply\n"
- .string "reduces its ATTACK.$"
-
-gMoveDescription_Rollout: @ 83BED23
- .string "An attack lasting 5 turns\n"
- .string "with rising intensity.$"
-
-gMoveDescription_FalseSwipe: @ 83BED54
- .string "An attack that leaves the\n"
- .string "foe with at least 1 HP.$"
-
-gMoveDescription_Swagger: @ 83BED86
- .string "Confuses the foe, but also\n"
- .string "sharply raises ATTACK.$"
-
-gMoveDescription_MilkDrink: @ 83BEDB8
- .string "Recovers up to half the\n"
- .string "user’s maximum HP.$"
-
-gMoveDescription_Spark: @ 83BEDE3
- .string "An electrified tackle that\n"
- .string "may paralyze the foe.$"
-
-gMoveDescription_FuryCutter: @ 83BEE14
- .string "An attack that intensifies\n"
- .string "on each successive hit.$"
-
-gMoveDescription_SteelWing: @ 83BEE47
- .string "Strikes the foe with hard\n"
- .string "wings spread wide.$"
-
-gMoveDescription_MeanLook: @ 83BEE74
- .string "Fixes the foe with a mean\n"
- .string "look that prevents escape.$"
-
-gMoveDescription_Attract: @ 83BEEA9
- .string "Makes the opposite gender\n"
- .string "less likely to attack.$"
-
-gMoveDescription_SleepTalk: @ 83BEEDA
- .string "Uses an own move randomly\n"
- .string "while asleep.$"
-
-gMoveDescription_HealBell: @ 83BEF02
- .string "Chimes soothingly to heal\n"
- .string "all status abnormalities.$"
-
-gMoveDescription_Return: @ 83BEF36
- .string "An attack that increases\n"
- .string "in power with friendship.$"
-
-gMoveDescription_Present: @ 83BEF69
- .string "A gift in the form of a\n"
- .string "bomb. May restore HP.$"
-
-gMoveDescription_Frustration: @ 83BEF97
- .string "An attack that is stronger\n"
- .string "if the TRAINER is disliked.$"
-
-gMoveDescription_Safeguard: @ 83BEFCE
- .string "A mystical force prevents\n"
- .string "all status problems.$"
-
-gMoveDescription_PainSplit: @ 83BEFFD
- .string "Adds the user and foe’s HP,\n"
- .string "then shares them equally.$"
-
-gMoveDescription_SacredFire: @ 83BF033
- .string "A mystical fire attack that\n"
- .string "may inflict a burn.$"
-
-gMoveDescription_Magnitude: @ 83BF063
- .string "A ground-shaking attack\n"
- .string "of random intensity.$"
-
-gMoveDescription_DynamicPunch: @ 83BF090
- .string "Powerful and sure to cause\n"
- .string "confusion, but inaccurate.$"
-
-gMoveDescription_Megahorn: @ 83BF0C6
- .string "A brutal ramming attack\n"
- .string "using out-thrust horns.$"
-
-gMoveDescription_DragonBreath: @ 83BF0F6
- .string "Strikes the foe with an\n"
- .string "incredible blast of breath.$"
-
-gMoveDescription_BatonPass: @ 83BF12A
- .string "Switches out the user while\n"
- .string "keeping effects in play.$"
-
-gMoveDescription_Encore: @ 83BF15F
- .string "Makes the foe repeat its\n"
- .string "last move over 2 to 6 turns.$"
-
-gMoveDescription_Pursuit: @ 83BF195
- .string "Inflicts bad damage if used\n"
- .string "on a foe switching out.$"
-
-gMoveDescription_RapidSpin: @ 83BF1C9
- .string "Spins the body at high\n"
- .string "speed to strike the foe.$"
-
-gMoveDescription_SweetScent: @ 83BF1F9
- .string "Allures the foe to reduce\n"
- .string "evasiveness.$"
-
-gMoveDescription_IronTail: @ 83BF220
- .string "Attacks with a rock-hard\n"
- .string "tail. May lower DEFENSE.$"
-
-gMoveDescription_MetalClaw: @ 83BF252
- .string "A claw attack that may\n"
- .string "raise the user’s ATTACK.$"
-
-gMoveDescription_VitalThrow: @ 83BF282
- .string "Makes the user’s move last,\n"
- .string "but it never misses.$"
-
-gMoveDescription_MorningSun: @ 83BF2B3
- .string "Restores HP. The amount\n"
- .string "varies with the weather.$"
-
-gMoveDescription_Synthesis: @ 83BF2E4
- .string "Restores HP. The amount\n"
- .string "varies with the weather.$"
-
-gMoveDescription_Moonlight: @ 83BF315
- .string "Restores HP. The amount\n"
- .string "varies with the weather.$"
-
-gMoveDescription_HiddenPower: @ 83BF346
- .string "The effectiveness varies\n"
- .string "with the user.$"
-
-gMoveDescription_CrossChop: @ 83BF36E
- .string "A double-chopping attack.\n"
- .string "High critical-hit ratio.$"
-
-gMoveDescription_Twister: @ 83BF3A1
- .string "Whips up a vicious twister\n"
- .string "to tear at the foe.$"
-
-gMoveDescription_RainDance: @ 83BF3D0
- .string "Boosts the power of WATER-\n"
- .string "type moves for 5 turns.$"
-
-gMoveDescription_SunnyDay: @ 83BF403
- .string "Boosts the power of FIRE-\n"
- .string "type moves for 5 turns.$"
-
-gMoveDescription_Crunch: @ 83BF435
- .string "Crunches with sharp fangs.\n"
- .string "May lower SP. DEF.$"
-
-gMoveDescription_MirrorCoat: @ 83BF463
- .string "Counters the foe’s special\n"
- .string "attack at double the power.$"
-
-gMoveDescription_PsychUp: @ 83BF49A
- .string "Copies the foe’s effect(s)\n"
- .string "and gives to the user.$"
-
-gMoveDescription_ExtremeSpeed: @ 83BF4CC
- .string "An extremely fast and\n"
- .string "powerful attack.$"
-
-gMoveDescription_AncientPower: @ 83BF4F3
- .string "An attack that may raise\n"
- .string "all stats.$"
-
-gMoveDescription_ShadowBall: @ 83BF517
- .string "Hurls a black blob that may\n"
- .string "lower the foe’s SP. DEF.$"
-
-gMoveDescription_FutureSight: @ 83BF54C
- .string "Heightens inner power to\n"
- .string "strike 2 turns later.$"
-
-gMoveDescription_RockSmash: @ 83BF57B
- .string "A rock-crushing attack\n"
- .string "that may lower DEFENSE.$"
-
-gMoveDescription_Whirlpool: @ 83BF5AA
- .string "Traps and hurts the foe in\n"
- .string "a whirlpool for 2 to 5 turns.$"
-
-gMoveDescription_BeatUp: @ 83BF5E3
- .string "Summons party POKéMON to\n"
- .string "join in the attack.$"
-
-gMoveDescription_FakeOut: @ 83BF610
- .string "A 1st-turn, 1st-strike move\n"
- .string "that causes flinching.$"
-
-gMoveDescription_Uproar: @ 83BF643
- .string "Causes an uproar for 2 to 5\n"
- .string "turns and prevents sleep.$"
-
-gMoveDescription_Stockpile: @ 83BF679
- .string "Charges up power for up to\n"
- .string "3 turns.$"
-
-gMoveDescription_SpitUp: @ 83BF69D
- .string "Releases stockpiled power\n"
- .string "(the more the better).$"
-
-gMoveDescription_Swallow: @ 83BF6CE
- .string "Absorbs stockpiled power\n"
- .string "and restores HP.$"
-
-gMoveDescription_HeatWave: @ 83BF6F8
- .string "Exhales a hot breath on the\n"
- .string "foe. May inflict a burn.$"
-
-gMoveDescription_Hail: @ 83BF72D
- .string "Summons a hailstorm that\n"
- .string "strikes every turn.$"
-
-gMoveDescription_Torment: @ 83BF75A
- .string "Torments the foe and stops\n"
- .string "successive use of a move.$"
-
-gMoveDescription_Flatter: @ 83BF78F
- .string "Confuses the foe, but\n"
- .string "raises its SP. ATK.$"
-
-gMoveDescription_WillOWisp: @ 83BF7B9
- .string "Inflicts a burn on the foe\n"
- .string "with intense fire.$"
-
-gMoveDescription_Memento: @ 83BF7E7
- .string "The user faints and lowers\n"
- .string "the foe’s abilities.$"
-
-gMoveDescription_Facade: @ 83BF817
- .string "Boosts ATTACK when burned,\n"
- .string "paralyzed, or poisoned.$"
-
-gMoveDescription_FocusPunch: @ 83BF84A
- .string "A powerful loyalty attack.\n"
- .string "The user flinches if hit.$"
-
-gMoveDescription_SmellingSalt: @ 83BF87F
- .string "Powerful against paralyzed\n"
- .string "foes, but also heals them.$"
-
-gMoveDescription_FollowMe: @ 83BF8B5
- .string "Draws attention to make\n"
- .string "foes attack only the user.$"
-
-gMoveDescription_NaturePower: @ 83BF8E8
- .string "The type of attack varies\n"
- .string "depending on the location.$"
-
-gMoveDescription_Charge: @ 83BF91D
- .string "Charges power to boost the\n"
- .string "electric move used next.$"
-
-gMoveDescription_Taunt: @ 83BF951
- .string "Taunts the foe into only\n"
- .string "using attack moves.$"
-
-gMoveDescription_HelpingHand: @ 83BF97E
- .string "Boosts the power of the\n"
- .string "recipient’s moves.$"
-
-gMoveDescription_Trick: @ 83BF9A9
- .string "Tricks the foe into trading\n"
- .string "held items.$"
-
-gMoveDescription_RolePlay: @ 83BF9D1
- .string "Mimics the target and\n"
- .string "copies its special ability.$"
-
-gMoveDescription_Wish: @ 83BFA03
- .string "A wish that restores HP.\n"
- .string "It takes time to work.$"
-
-gMoveDescription_Assist: @ 83BFA33
- .string "Attacks randomly with one\n"
- .string "of the partner’s moves.$"
-
-gMoveDescription_Ingrain: @ 83BFA65
- .string "Lays roots that restore HP.\n"
- .string "The user can’t switch out.$"
-
-gMoveDescription_Superpower: @ 83BFA9C
- .string "Boosts strength sharply,\n"
- .string "but lowers abilities.$"
-
-gMoveDescription_MagicCoat: @ 83BFACB
- .string "Reflects special effects\n"
- .string "back to the attacker.$"
-
-gMoveDescription_Recycle: @ 83BFAFA
- .string "Recycles a used item for\n"
- .string "one more use.$"
-
-gMoveDescription_Revenge: @ 83BFB21
- .string "An attack that gains power\n"
- .string "if injured by the foe.$"
-
-gMoveDescription_BrickBreak: @ 83BFB53
- .string "Destroys barriers such as\n"
- .string "REFLECT and causes damage.$"
-
-gMoveDescription_Yawn: @ 83BFB88
- .string "Lulls the foe into yawning,\n"
- .string "then sleeping next turn.$"
-
-gMoveDescription_KnockOff: @ 83BFBBD
- .string "Knocks down the foe’s held\n"
- .string "item to prevent its use.$"
-
-gMoveDescription_Endeavor: @ 83BFBF1
- .string "Gains power if the user’s HP\n"
- .string "is lower than the foe’s HP.$"
-
-gMoveDescription_Eruption: @ 83BFC2A
- .string "The higher the user’s HP,\n"
- .string "the more damage caused.$"
-
-gMoveDescription_SkillSwap: @ 83BFC5C
- .string "The user swaps special\n"
- .string "abilities with the target.$"
-
-gMoveDescription_Imprison: @ 83BFC8E
- .string "Prevents foes from using\n"
- .string "moves known by the user.$"
-
-gMoveDescription_Refresh: @ 83BFCC0
- .string "Heals poisoning, paralysis,\n"
- .string "or a burn.$"
-
-gMoveDescription_Grudge: @ 83BFCE7
- .string "If the user faints, deletes\n"
- .string "the PP of the final move.$"
-
-gMoveDescription_Snatch: @ 83BFD1D
- .string "Steals the effects of the\n"
- .string "move the foe uses next.$"
-
-gMoveDescription_SecretPower: @ 83BFD4F
- .string "An attack with effects\n"
- .string "that vary by location.$"
-
-gMoveDescription_Dive: @ 83BFD7D
- .string "Dives underwater the first\n"
- .string "turn and strikes next turn.$"
-
-gMoveDescription_ArmThrust: @ 83BFDB4
- .string "Straight-arm punches that\n"
- .string "strike the foe 2 to 5 times.$"
-
-gMoveDescription_Camouflage: @ 83BFDEB
- .string "Alters the POKéMON’s type\n"
- .string "depending on the location.$"
-
-gMoveDescription_TailGlow: @ 83BFE20
- .string "Flashes a light that sharply\n"
- .string "raises SP. ATK.$"
-
-gMoveDescription_LusterPurge: @ 83BFE4D
- .string "Attacks with a burst of\n"
- .string "light. May lower SP. DEF.$"
-
-gMoveDescription_MistBall: @ 83BFE7F
- .string "Attacks with a flurry of\n"
- .string "down. May lower SP. ATK.$"
-
-gMoveDescription_FeatherDance: @ 83BFEB1
- .string "Envelops the foe with down\n"
- .string "to sharply reduce ATTACK.$"
-
-gMoveDescription_TeeterDance: @ 83BFEE6
- .string "Confuses all POKéMON on\n"
- .string "the scene.$"
-
-gMoveDescription_BlazeKick: @ 83BFF09
- .string "A kick with a high critical-\n"
- .string "hit ratio. May cause a burn.$"
-
-gMoveDescription_MudSport: @ 83BFF43
- .string "Covers the user in mud to\n"
- .string "raise electrical resistance.$"
-
-gMoveDescription_IceBall: @ 83BFF7A
- .string "A 5-turn attack that gains\n"
- .string "power on successive hits.$"
-
-gMoveDescription_NeedleArm: @ 83BFFAF
- .string "Attacks with thorny arms.\n"
- .string "May cause flinching.$"
-
-gMoveDescription_SlackOff: @ 83BFFDE
- .string "Slacks off and restores\n"
- .string "half the maximum HP.$"
-
-gMoveDescription_HyperVoice: @ 83C000B
- .string "A loud attack that uses\n"
- .string "sound waves to injure.$"
-
-gMoveDescription_PoisonFang: @ 83C003A
- .string "A sharp-fanged attack.\n"
- .string "May badly poison the foe.$"
-
-gMoveDescription_CrushClaw: @ 83C006B
- .string "Tears at the foe with sharp\n"
- .string "claws. May lower DEFENSE.$"
-
-gMoveDescription_BlastBurn: @ 83C00A1
- .string "Powerful, but leaves the\n"
- .string "user immobile the next turn.$"
-
-gMoveDescription_HydroCannon: @ 83C00D7
- .string "Powerful, but leaves the\n"
- .string "user immobile the next turn.$"
-
-gMoveDescription_MeteorMash: @ 83C010D
- .string "Fires a meteor-like punch.\n"
- .string "May raise ATTACK.$"
-
-gMoveDescription_Astonish: @ 83C013A
- .string "An attack that may shock\n"
- .string "the foe into flinching.$"
-
-gMoveDescription_WeatherBall: @ 83C016B
- .string "The move’s type and power\n"
- .string "change with the weather.$"
-
-gMoveDescription_Aromatherapy: @ 83C019E
- .string "Heals all status problems\n"
- .string "with a soothing scent.$"
-
-gMoveDescription_FakeTears: @ 83C01CF
- .string "Feigns crying to sharply\n"
- .string "lower the foe’s SP. DEF.$"
-
-gMoveDescription_AirCutter: @ 83C0201
- .string "Hacks with razorlike wind.\n"
- .string "High critical-hit ratio.$"
-
-gMoveDescription_Overheat: @ 83C0235
- .string "Allows a full-power attack,\n"
- .string "but sharply lowers SP. ATK.$"
-
-gMoveDescription_OdorSleuth: @ 83C026D
- .string "Negates the foe’s efforts\n"
- .string "to heighten evasiveness.$"
-
-gMoveDescription_RockTomb: @ 83C02A0
- .string "Stops the foe from moving\n"
- .string "with rocks and cuts SPEED.$"
-
-gMoveDescription_SilverWind: @ 83C02D5
- .string "A powdery attack that may\n"
- .string "raise abilities.$"
-
-gMoveDescription_MetalSound: @ 83C0300
- .string "Emits a horrible screech\n"
- .string "that sharply lowers SP. DEF.$"
-
-gMoveDescription_GrassWhistle: @ 83C0336
- .string "Lulls the foe into sleep\n"
- .string "with a pleasant melody.$"
-
-gMoveDescription_Tickle: @ 83C0367
- .string "Makes the foe laugh to\n"
- .string "lower ATTACK and DEFENSE.$"
-
-gMoveDescription_CosmicPower: @ 83C0398
- .string "Raises DEFENSE and SP. DEF\n"
- .string "with a mystic power.$"
-
-gMoveDescription_WaterSpout: @ 83C03C8
- .string "Inflicts more damage if the\n"
- .string "user’s HP is high.$"
-
-gMoveDescription_SignalBeam: @ 83C03F7
- .string "A strange beam attack that\n"
- .string "may confuse the foe.$"
-
-gMoveDescription_ShadowPunch: @ 83C0427
- .string "An unavoidable punch that\n"
- .string "is thrown from shadows.$"
-
-gMoveDescription_Extrasensory: @ 83C0459
- .string "Attacks with a peculiar\n"
- .string "power. May cause flinching.$"
-
-gMoveDescription_SkyUppercut: @ 83C048D
- .string "An uppercut thrown as if\n"
- .string "leaping into the sky.$"
-
-gMoveDescription_SandTomb: @ 83C04BC
- .string "Traps and hurts the foe in\n"
- .string "quicksand for 2 to 5 turns.$"
-
-gMoveDescription_SheerCold: @ 83C04F3
- .string "A chilling attack that\n"
- .string "causes fainting if it hits.$"
-
-gMoveDescription_MuddyWater: @ 83C0526
- .string "Attacks with muddy water.\n"
- .string "May lower accuracy.$"
-
-gMoveDescription_BulletSeed: @ 83C0554
- .string "Shoots 2 to 5 seeds in a row\n"
- .string "to strike the foe.$"
-
-gMoveDescription_AerialAce: @ 83C0584
- .string "An extremely speedy and\n"
- .string "unavoidable attack.$"
-
-gMoveDescription_IcicleSpear: @ 83C05B0
- .string "Attacks the foe by firing\n"
- .string "2 to 5 icicles in a row.$"
-
-gMoveDescription_IronDefense: @ 83C05E3
- .string "Hardens the body’s surface\n"
- .string "to sharply raise DEFENSE.$"
-
-gMoveDescription_Block: @ 83C0618
- .string "Blocks the foe’s way to\n"
- .string "prevent escape.$"
-
-gMoveDescription_Howl: @ 83C0640
- .string "Howls to raise the spirit\n"
- .string "and boosts ATTACK.$"
-
-gMoveDescription_DragonClaw: @ 83C066D
- .string "Slashes the foe with sharp\n"
- .string "claws.$"
-
-gMoveDescription_FrenzyPlant: @ 83C068F
- .string "Powerful, but leaves the\n"
- .string "user immobile the next turn.$"
-
-gMoveDescription_BulkUp: @ 83C06C5
- .string "Bulks up the body to boost\n"
- .string "both ATTACK and DEFENSE.$"
-
-gMoveDescription_Bounce: @ 83C06F9
- .string "Bounces up, then down the\n"
- .string "next turn. May paralyze.$"
-
-gMoveDescription_MudShot: @ 83C072C
- .string "Hurls mud at the foe and\n"
- .string "reduces SPEED.$"
-
-gMoveDescription_PoisonTail: @ 83C0754
- .string "Has a high critical-hit\n"
- .string "ratio. May also poison.$"
-
-gMoveDescription_Covet: @ 83C0784
- .string "Cutely begs to obtain an\n"
- .string "item held by the foe.$"
-
-gMoveDescription_VoltTackle: @ 83C07B3
- .string "A life-risking tackle that\n"
- .string "slightly hurts the user.$"
-
-gMoveDescription_MagicalLeaf: @ 83C07E7
- .string "Attacks with a strange leaf\n"
- .string "that cannot be evaded.$"
-
-gMoveDescription_WaterSport: @ 83C081A
- .string "The user becomes soaked to\n"
- .string "raise resistance to fire.$"
-
-gMoveDescription_CalmMind: @ 83C084F
- .string "Raises SP. ATK and SP. DEF\n"
- .string "by focusing the mind.$"
-
-gMoveDescription_LeafBlade: @ 83C0880
- .string "Slashes with a sharp leaf.\n"
- .string "High critical-hit ratio.$"
-
-gMoveDescription_DragonDance: @ 83C08B4
- .string "A mystical dance that ups\n"
- .string "ATTACK and SPEED.$"
-
-gMoveDescription_RockBlast: @ 83C08E0
- .string "Hurls boulders at the foe\n"
- .string "2 to 5 times in a row.$"
-
-gMoveDescription_ShockWave: @ 83C0911
- .string "A fast and unavoidable\n"
- .string "electric attack.$"
-
-gMoveDescription_WaterPulse: @ 83C0939
- .string "Attacks with ultrasonic\n"
- .string "waves. May confuse the foe$"
-
-gMoveDescription_DoomDesire: @ 83C096C
- .string "Summons strong sunlight to\n"
- .string "attack 2 turns later.$"
-
-gMoveDescription_PsychoBoost: @ 83C099D
- .string "Allows a full-power attack,\n"
- .string "but sharply lowers SP. ATK.$"
-
- .align 2
-gMoveDescriptions:: @ 83C09D8
- .4byte gMoveDescription_Pound
- .4byte gMoveDescription_KarateChop
- .4byte gMoveDescription_DoubleSlap
- .4byte gMoveDescription_CometPunch
- .4byte gMoveDescription_MegaPunch
- .4byte gMoveDescription_PayDay
- .4byte gMoveDescription_FirePunch
- .4byte gMoveDescription_IcePunch
- .4byte gMoveDescription_ThunderPunch
- .4byte gMoveDescription_Scratch
- .4byte gMoveDescription_ViceGrip
- .4byte gMoveDescription_Guillotine
- .4byte gMoveDescription_RazorWind
- .4byte gMoveDescription_SwordsDance
- .4byte gMoveDescription_Cut
- .4byte gMoveDescription_Gust
- .4byte gMoveDescription_WingAttack
- .4byte gMoveDescription_Whirlwind
- .4byte gMoveDescription_Fly
- .4byte gMoveDescription_Bind
- .4byte gMoveDescription_Slam
- .4byte gMoveDescription_VineWhip
- .4byte gMoveDescription_Stomp
- .4byte gMoveDescription_DoubleKick
- .4byte gMoveDescription_MegaKick
- .4byte gMoveDescription_JumpKick
- .4byte gMoveDescription_RollingKick
- .4byte gMoveDescription_SandAttack
- .4byte gMoveDescription_Headbutt
- .4byte gMoveDescription_HornAttack
- .4byte gMoveDescription_FuryAttack
- .4byte gMoveDescription_HornDrill
- .4byte gMoveDescription_Tackle
- .4byte gMoveDescription_BodySlam
- .4byte gMoveDescription_Wrap
- .4byte gMoveDescription_TakeDown
- .4byte gMoveDescription_Thrash
- .4byte gMoveDescription_DoubleEdge
- .4byte gMoveDescription_TailWhip
- .4byte gMoveDescription_PoisonSting
- .4byte gMoveDescription_Twineedle
- .4byte gMoveDescription_PinMissile
- .4byte gMoveDescription_Leer
- .4byte gMoveDescription_Bite
- .4byte gMoveDescription_Growl
- .4byte gMoveDescription_Roar
- .4byte gMoveDescription_Sing
- .4byte gMoveDescription_Supersonic
- .4byte gMoveDescription_SonicBoom
- .4byte gMoveDescription_Disable
- .4byte gMoveDescription_Acid
- .4byte gMoveDescription_Ember
- .4byte gMoveDescription_Flamethrower
- .4byte gMoveDescription_Mist
- .4byte gMoveDescription_WaterGun
- .4byte gMoveDescription_HydroPump
- .4byte gMoveDescription_Surf
- .4byte gMoveDescription_IceBeam
- .4byte gMoveDescription_Blizzard
- .4byte gMoveDescription_Psybeam
- .4byte gMoveDescription_BubbleBeam
- .4byte gMoveDescription_AuroraBeam
- .4byte gMoveDescription_HyperBeam
- .4byte gMoveDescription_Peck
- .4byte gMoveDescription_DrillPeck
- .4byte gMoveDescription_Submission
- .4byte gMoveDescription_LowKick
- .4byte gMoveDescription_Counter
- .4byte gMoveDescription_SeismicToss
- .4byte gMoveDescription_Strength
- .4byte gMoveDescription_Absorb
- .4byte gMoveDescription_MegaDrain
- .4byte gMoveDescription_LeechSeed
- .4byte gMoveDescription_Growth
- .4byte gMoveDescription_RazorLeaf
- .4byte gMoveDescription_SolarBeam
- .4byte gMoveDescription_PoisonPowder
- .4byte gMoveDescription_StunSpore
- .4byte gMoveDescription_SleepPowder
- .4byte gMoveDescription_PetalDance
- .4byte gMoveDescription_StringShot
- .4byte gMoveDescription_DragonRage
- .4byte gMoveDescription_FireSpin
- .4byte gMoveDescription_ThunderShock
- .4byte gMoveDescription_Thunderbolt
- .4byte gMoveDescription_ThunderWave
- .4byte gMoveDescription_Thunder
- .4byte gMoveDescription_RockThrow
- .4byte gMoveDescription_Earthquake
- .4byte gMoveDescription_Fissure
- .4byte gMoveDescription_Dig
- .4byte gMoveDescription_Toxic
- .4byte gMoveDescription_Confusion
- .4byte gMoveDescription_Psychic
- .4byte gMoveDescription_Hypnosis
- .4byte gMoveDescription_Meditate
- .4byte gMoveDescription_Agility
- .4byte gMoveDescription_QuickAttack
- .4byte gMoveDescription_Rage
- .4byte gMoveDescription_Teleport
- .4byte gMoveDescription_NightShade
- .4byte gMoveDescription_Mimic
- .4byte gMoveDescription_Screech
- .4byte gMoveDescription_DoubleTeam
- .4byte gMoveDescription_Recover
- .4byte gMoveDescription_Harden
- .4byte gMoveDescription_Minimize
- .4byte gMoveDescription_Smokescreen
- .4byte gMoveDescription_ConfuseRay
- .4byte gMoveDescription_Withdraw
- .4byte gMoveDescription_DefenseCurl
- .4byte gMoveDescription_Barrier
- .4byte gMoveDescription_LightScreen
- .4byte gMoveDescription_Haze
- .4byte gMoveDescription_Reflect
- .4byte gMoveDescription_FocusEnergy
- .4byte gMoveDescription_Bide
- .4byte gMoveDescription_Metronome
- .4byte gMoveDescription_MirrorMove
- .4byte gMoveDescription_SelfDestruct
- .4byte gMoveDescription_EggBomb
- .4byte gMoveDescription_Lick
- .4byte gMoveDescription_Smog
- .4byte gMoveDescription_Sludge
- .4byte gMoveDescription_BoneClub
- .4byte gMoveDescription_FireBlast
- .4byte gMoveDescription_Waterfall
- .4byte gMoveDescription_Clamp
- .4byte gMoveDescription_Swift
- .4byte gMoveDescription_SkullBash
- .4byte gMoveDescription_SpikeCannon
- .4byte gMoveDescription_Constrict
- .4byte gMoveDescription_Amnesia
- .4byte gMoveDescription_Kinesis
- .4byte gMoveDescription_SoftBoiled
- .4byte gMoveDescription_HiJumpKick
- .4byte gMoveDescription_Glare
- .4byte gMoveDescription_DreamEater
- .4byte gMoveDescription_PoisonGas
- .4byte gMoveDescription_Barrage
- .4byte gMoveDescription_LeechLife
- .4byte gMoveDescription_LovelyKiss
- .4byte gMoveDescription_SkyAttack
- .4byte gMoveDescription_Transform
- .4byte gMoveDescription_Bubble
- .4byte gMoveDescription_DizzyPunch
- .4byte gMoveDescription_Spore
- .4byte gMoveDescription_Flash
- .4byte gMoveDescription_Psywave
- .4byte gMoveDescription_Splash
- .4byte gMoveDescription_AcidArmor
- .4byte gMoveDescription_Crabhammer
- .4byte gMoveDescription_Explosion
- .4byte gMoveDescription_FurySwipes
- .4byte gMoveDescription_Bonemerang
- .4byte gMoveDescription_Rest
- .4byte gMoveDescription_RockSlide
- .4byte gMoveDescription_HyperFang
- .4byte gMoveDescription_Sharpen
- .4byte gMoveDescription_Conversion
- .4byte gMoveDescription_TriAttack
- .4byte gMoveDescription_SuperFang
- .4byte gMoveDescription_Slash
- .4byte gMoveDescription_Substitute
- .4byte gMoveDescription_Struggle
- .4byte gMoveDescription_Sketch
- .4byte gMoveDescription_TripleKick
- .4byte gMoveDescription_Thief
- .4byte gMoveDescription_SpiderWeb
- .4byte gMoveDescription_MindReader
- .4byte gMoveDescription_Nightmare
- .4byte gMoveDescription_FlameWheel
- .4byte gMoveDescription_Snore
- .4byte gMoveDescription_Curse
- .4byte gMoveDescription_Flail
- .4byte gMoveDescription_Conversion2
- .4byte gMoveDescription_Aeroblast
- .4byte gMoveDescription_CottonSpore
- .4byte gMoveDescription_Reversal
- .4byte gMoveDescription_Spite
- .4byte gMoveDescription_PowderSnow
- .4byte gMoveDescription_Protect
- .4byte gMoveDescription_MachPunch
- .4byte gMoveDescription_ScaryFace
- .4byte gMoveDescription_FaintAttack
- .4byte gMoveDescription_SweetKiss
- .4byte gMoveDescription_BellyDrum
- .4byte gMoveDescription_SludgeBomb
- .4byte gMoveDescription_MudSlap
- .4byte gMoveDescription_Octazooka
- .4byte gMoveDescription_Spikes
- .4byte gMoveDescription_ZapCannon
- .4byte gMoveDescription_Foresight
- .4byte gMoveDescription_DestinyBond
- .4byte gMoveDescription_PerishSong
- .4byte gMoveDescription_IcyWind
- .4byte gMoveDescription_Detect
- .4byte gMoveDescription_BoneRush
- .4byte gMoveDescription_LockOn
- .4byte gMoveDescription_Outrage
- .4byte gMoveDescription_Sandstorm
- .4byte gMoveDescription_GigaDrain
- .4byte gMoveDescription_Endure
- .4byte gMoveDescription_Charm
- .4byte gMoveDescription_Rollout
- .4byte gMoveDescription_FalseSwipe
- .4byte gMoveDescription_Swagger
- .4byte gMoveDescription_MilkDrink
- .4byte gMoveDescription_Spark
- .4byte gMoveDescription_FuryCutter
- .4byte gMoveDescription_SteelWing
- .4byte gMoveDescription_MeanLook
- .4byte gMoveDescription_Attract
- .4byte gMoveDescription_SleepTalk
- .4byte gMoveDescription_HealBell
- .4byte gMoveDescription_Return
- .4byte gMoveDescription_Present
- .4byte gMoveDescription_Frustration
- .4byte gMoveDescription_Safeguard
- .4byte gMoveDescription_PainSplit
- .4byte gMoveDescription_SacredFire
- .4byte gMoveDescription_Magnitude
- .4byte gMoveDescription_DynamicPunch
- .4byte gMoveDescription_Megahorn
- .4byte gMoveDescription_DragonBreath
- .4byte gMoveDescription_BatonPass
- .4byte gMoveDescription_Encore
- .4byte gMoveDescription_Pursuit
- .4byte gMoveDescription_RapidSpin
- .4byte gMoveDescription_SweetScent
- .4byte gMoveDescription_IronTail
- .4byte gMoveDescription_MetalClaw
- .4byte gMoveDescription_VitalThrow
- .4byte gMoveDescription_MorningSun
- .4byte gMoveDescription_Synthesis
- .4byte gMoveDescription_Moonlight
- .4byte gMoveDescription_HiddenPower
- .4byte gMoveDescription_CrossChop
- .4byte gMoveDescription_Twister
- .4byte gMoveDescription_RainDance
- .4byte gMoveDescription_SunnyDay
- .4byte gMoveDescription_Crunch
- .4byte gMoveDescription_MirrorCoat
- .4byte gMoveDescription_PsychUp
- .4byte gMoveDescription_ExtremeSpeed
- .4byte gMoveDescription_AncientPower
- .4byte gMoveDescription_ShadowBall
- .4byte gMoveDescription_FutureSight
- .4byte gMoveDescription_RockSmash
- .4byte gMoveDescription_Whirlpool
- .4byte gMoveDescription_BeatUp
- .4byte gMoveDescription_FakeOut
- .4byte gMoveDescription_Uproar
- .4byte gMoveDescription_Stockpile
- .4byte gMoveDescription_SpitUp
- .4byte gMoveDescription_Swallow
- .4byte gMoveDescription_HeatWave
- .4byte gMoveDescription_Hail
- .4byte gMoveDescription_Torment
- .4byte gMoveDescription_Flatter
- .4byte gMoveDescription_WillOWisp
- .4byte gMoveDescription_Memento
- .4byte gMoveDescription_Facade
- .4byte gMoveDescription_FocusPunch
- .4byte gMoveDescription_SmellingSalt
- .4byte gMoveDescription_FollowMe
- .4byte gMoveDescription_NaturePower
- .4byte gMoveDescription_Charge
- .4byte gMoveDescription_Taunt
- .4byte gMoveDescription_HelpingHand
- .4byte gMoveDescription_Trick
- .4byte gMoveDescription_RolePlay
- .4byte gMoveDescription_Wish
- .4byte gMoveDescription_Assist
- .4byte gMoveDescription_Ingrain
- .4byte gMoveDescription_Superpower
- .4byte gMoveDescription_MagicCoat
- .4byte gMoveDescription_Recycle
- .4byte gMoveDescription_Revenge
- .4byte gMoveDescription_BrickBreak
- .4byte gMoveDescription_Yawn
- .4byte gMoveDescription_KnockOff
- .4byte gMoveDescription_Endeavor
- .4byte gMoveDescription_Eruption
- .4byte gMoveDescription_SkillSwap
- .4byte gMoveDescription_Imprison
- .4byte gMoveDescription_Refresh
- .4byte gMoveDescription_Grudge
- .4byte gMoveDescription_Snatch
- .4byte gMoveDescription_SecretPower
- .4byte gMoveDescription_Dive
- .4byte gMoveDescription_ArmThrust
- .4byte gMoveDescription_Camouflage
- .4byte gMoveDescription_TailGlow
- .4byte gMoveDescription_LusterPurge
- .4byte gMoveDescription_MistBall
- .4byte gMoveDescription_FeatherDance
- .4byte gMoveDescription_TeeterDance
- .4byte gMoveDescription_BlazeKick
- .4byte gMoveDescription_MudSport
- .4byte gMoveDescription_IceBall
- .4byte gMoveDescription_NeedleArm
- .4byte gMoveDescription_SlackOff
- .4byte gMoveDescription_HyperVoice
- .4byte gMoveDescription_PoisonFang
- .4byte gMoveDescription_CrushClaw
- .4byte gMoveDescription_BlastBurn
- .4byte gMoveDescription_HydroCannon
- .4byte gMoveDescription_MeteorMash
- .4byte gMoveDescription_Astonish
- .4byte gMoveDescription_WeatherBall
- .4byte gMoveDescription_Aromatherapy
- .4byte gMoveDescription_FakeTears
- .4byte gMoveDescription_AirCutter
- .4byte gMoveDescription_Overheat
- .4byte gMoveDescription_OdorSleuth
- .4byte gMoveDescription_RockTomb
- .4byte gMoveDescription_SilverWind
- .4byte gMoveDescription_MetalSound
- .4byte gMoveDescription_GrassWhistle
- .4byte gMoveDescription_Tickle
- .4byte gMoveDescription_CosmicPower
- .4byte gMoveDescription_WaterSpout
- .4byte gMoveDescription_SignalBeam
- .4byte gMoveDescription_ShadowPunch
- .4byte gMoveDescription_Extrasensory
- .4byte gMoveDescription_SkyUppercut
- .4byte gMoveDescription_SandTomb
- .4byte gMoveDescription_SheerCold
- .4byte gMoveDescription_MuddyWater
- .4byte gMoveDescription_BulletSeed
- .4byte gMoveDescription_AerialAce
- .4byte gMoveDescription_IcicleSpear
- .4byte gMoveDescription_IronDefense
- .4byte gMoveDescription_Block
- .4byte gMoveDescription_Howl
- .4byte gMoveDescription_DragonClaw
- .4byte gMoveDescription_FrenzyPlant
- .4byte gMoveDescription_BulkUp
- .4byte gMoveDescription_Bounce
- .4byte gMoveDescription_MudShot
- .4byte gMoveDescription_PoisonTail
- .4byte gMoveDescription_Covet
- .4byte gMoveDescription_VoltTackle
- .4byte gMoveDescription_MagicalLeaf
- .4byte gMoveDescription_WaterSport
- .4byte gMoveDescription_CalmMind
- .4byte gMoveDescription_LeafBlade
- .4byte gMoveDescription_DragonDance
- .4byte gMoveDescription_RockBlast
- .4byte gMoveDescription_ShockWave
- .4byte gMoveDescription_WaterPulse
- .4byte gMoveDescription_DoomDesire
- .4byte gMoveDescription_PsychoBoost
diff --git a/data/text/nature_names.inc b/data/text/nature_names.inc
deleted file mode 100644
index f191f80ba..000000000
--- a/data/text/nature_names.inc
+++ /dev/null
@@ -1,102 +0,0 @@
-gNatureName_Hardy: @ 83C0F60
- .string "HARDY$"
-
-gNatureName_Lonely: @ 83C0F66
- .string "LONELY$"
-
-gNatureName_Brave: @ 83C0F6D
- .string "BRAVE$"
-
-gNatureName_Adamant: @ 83C0F73
- .string "ADAMANT$"
-
-gNatureName_Naughty: @ 83C0F7B
- .string "NAUGHTY$"
-
-gNatureName_Bold: @ 83C0F83
- .string "BOLD$"
-
-gNatureName_Docile: @ 83C0F88
- .string "DOCILE$"
-
-gNatureName_Relaxed: @ 83C0F8F
- .string "RELAXED$"
-
-gNatureName_Impish: @ 83C0F97
- .string "IMPISH$"
-
-gNatureName_Lax: @ 83C0F9E
- .string "LAX$"
-
-gNatureName_Timid: @ 83C0FA2
- .string "TIMID$"
-
-gNatureName_Hasty: @ 83C0FA8
- .string "HASTY$"
-
-gNatureName_Serious: @ 83C0FAE
- .string "SERIOUS$"
-
-gNatureName_Jolly: @ 83C0FB6
- .string "JOLLY$"
-
-gNatureName_Naive: @ 83C0FBC
- .string "NAIVE$"
-
-gNatureName_Modest: @ 83C0FC2
- .string "MODEST$"
-
-gNatureName_Mild: @ 83C0FC9
- .string "MILD$"
-
-gNatureName_Quiet: @ 83C0FCE
- .string "QUIET$"
-
-gNatureName_Bashful: @ 83C0FD4
- .string "BASHFUL$"
-
-gNatureName_Rash: @ 83C0FDC
- .string "RASH$"
-
-gNatureName_Calm: @ 83C0FE1
- .string "CALM$"
-
-gNatureName_Gentle: @ 83C0FE6
- .string "GENTLE$"
-
-gNatureName_Sassy: @ 83C0FED
- .string "SASSY$"
-
-gNatureName_Careful: @ 83C0FF3
- .string "CAREFUL$"
-
-gNatureName_Quirky: @ 83C0FFB
- .string "QUIRKY$"
-
- .align 2
-gNatureNames:: @ 83C1004
- .4byte gNatureName_Hardy
- .4byte gNatureName_Lonely
- .4byte gNatureName_Brave
- .4byte gNatureName_Adamant
- .4byte gNatureName_Naughty
- .4byte gNatureName_Bold
- .4byte gNatureName_Docile
- .4byte gNatureName_Relaxed
- .4byte gNatureName_Impish
- .4byte gNatureName_Lax
- .4byte gNatureName_Timid
- .4byte gNatureName_Hasty
- .4byte gNatureName_Serious
- .4byte gNatureName_Jolly
- .4byte gNatureName_Naive
- .4byte gNatureName_Modest
- .4byte gNatureName_Mild
- .4byte gNatureName_Quiet
- .4byte gNatureName_Bashful
- .4byte gNatureName_Rash
- .4byte gNatureName_Calm
- .4byte gNatureName_Gentle
- .4byte gNatureName_Sassy
- .4byte gNatureName_Careful
- .4byte gNatureName_Quirky
diff --git a/data/text_window.s b/data/text_window.s
deleted file mode 100644
index d8a3dbb38..000000000
--- a/data/text_window.s
+++ /dev/null
@@ -1,31 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_083761F0:: @ 83761F0
- .4byte gTextWindowFrame1_Gfx, gTextWindowFrame1_Pal
- .4byte gTextWindowFrame2_Gfx, gTextWindowFrame2_Pal
- .4byte gTextWindowFrame3_Gfx, gTextWindowFrame3_Pal
- .4byte gTextWindowFrame4_Gfx, gTextWindowFrame4_Pal
- .4byte gTextWindowFrame5_Gfx, gTextWindowFrame5_Pal
- .4byte gTextWindowFrame6_Gfx, gTextWindowFrame6_Pal
- .4byte gTextWindowFrame7_Gfx, gTextWindowFrame7_Pal
- .4byte gTextWindowFrame8_Gfx, gTextWindowFrame8_Pal
- .4byte gTextWindowFrame9_Gfx, gTextWindowFrame9_Pal
- .4byte gTextWindowFrame10_Gfx, gTextWindowFrame10_Pal
- .4byte gTextWindowFrame11_Gfx, gTextWindowFrame11_Pal
- .4byte gTextWindowFrame12_Gfx, gTextWindowFrame12_Pal
- .4byte gTextWindowFrame13_Gfx, gTextWindowFrame13_Pal
- .4byte gTextWindowFrame14_Gfx, gTextWindowFrame14_Pal
- .4byte gTextWindowFrame15_Gfx, gTextWindowFrame15_Pal
- .4byte gTextWindowFrame16_Gfx, gTextWindowFrame16_Pal
- .4byte gTextWindowFrame17_Gfx, gTextWindowFrame17_Pal
- .4byte gTextWindowFrame18_Gfx, gTextWindowFrame18_Pal
- .4byte gTextWindowFrame19_Gfx, gTextWindowFrame19_Pal
- .4byte gTextWindowFrame20_Gfx, gTextWindowFrame20_Pal
-
- .align 1
-gMessageBoxTilemap:: @ 8376290
- .incbin "graphics/text_window/message_box_map.bin"
diff --git a/data/tileset_anim.s b/data/tileset_anim.s
deleted file mode 100644
index e34d50953..000000000
--- a/data/tileset_anim.s
+++ /dev/null
@@ -1,637 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-TilesetAnimTiles_General_0_1: @ 8376D84
- .incbin "data/tilesets/primary/general/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_General_0_0: @ 8376E04
- .incbin "data/tilesets/primary/general/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_General_0_2: @ 8376E84
- .incbin "data/tilesets/primary/general/anim/0/2.4bpp"
-
- .space 32
-
- .align 2
-gTilesetAnimTable_General_0:: @ 8376F24
- .4byte TilesetAnimTiles_General_0_0
- .4byte TilesetAnimTiles_General_0_1
- .4byte TilesetAnimTiles_General_0_0
- .4byte TilesetAnimTiles_General_0_2
-
- .align 2
-TilesetAnimTiles_General_1_0: @ 8376F34
- .incbin "data/tilesets/primary/general/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_1: @ 83772F4
- .incbin "data/tilesets/primary/general/anim/1/1.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_2: @ 83776B4
- .incbin "data/tilesets/primary/general/anim/1/2.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_3: @ 8377A74
- .incbin "data/tilesets/primary/general/anim/1/3.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_4: @ 8377E34
- .incbin "data/tilesets/primary/general/anim/1/4.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_5: @ 83781F4
- .incbin "data/tilesets/primary/general/anim/1/5.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_6: @ 83785B4
- .incbin "data/tilesets/primary/general/anim/1/6.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_7: @ 8378974
- .incbin "data/tilesets/primary/general/anim/1/7.4bpp"
-
- .align 2
-gTilesetAnimTable_General_1:: @ 8378D34
- .4byte TilesetAnimTiles_General_1_0
- .4byte TilesetAnimTiles_General_1_1
- .4byte TilesetAnimTiles_General_1_2
- .4byte TilesetAnimTiles_General_1_3
- .4byte TilesetAnimTiles_General_1_4
- .4byte TilesetAnimTiles_General_1_5
- .4byte TilesetAnimTiles_General_1_6
- .4byte TilesetAnimTiles_General_1_7
-
- .align 2
-TilesetAnimTiles_General_2_0: @ 8378D54
- .incbin "data/tilesets/primary/general/anim/2/0.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_1: @ 8378E94
- .incbin "data/tilesets/primary/general/anim/2/1.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_2: @ 8378FD4
- .incbin "data/tilesets/primary/general/anim/2/2.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_3: @ 8379114
- .incbin "data/tilesets/primary/general/anim/2/3.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_4: @ 8379254
- .incbin "data/tilesets/primary/general/anim/2/4.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_5: @ 8379394
- .incbin "data/tilesets/primary/general/anim/2/5.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_6: @ 83794D4
- .incbin "data/tilesets/primary/general/anim/2/6.4bpp"
-
- .align 2
-gTilesetAnimTable_General_2:: @ 8379614
- .4byte TilesetAnimTiles_General_2_0
- .4byte TilesetAnimTiles_General_2_1
- .4byte TilesetAnimTiles_General_2_2
- .4byte TilesetAnimTiles_General_2_3
- .4byte TilesetAnimTiles_General_2_4
- .4byte TilesetAnimTiles_General_2_5
- .4byte TilesetAnimTiles_General_2_6
- .4byte TilesetAnimTiles_General_2_0
-
- .align 2
-TilesetAnimTiles_General_3_0: @ 8379634
- .incbin "data/tilesets/primary/general/anim/3/0.4bpp"
-
- .align 2
-TilesetAnimTiles_General_3_1: @ 83796F4
- .incbin "data/tilesets/primary/general/anim/3/1.4bpp"
-
- .align 2
-TilesetAnimTiles_General_3_2: @ 83797B4
- .incbin "data/tilesets/primary/general/anim/3/2.4bpp"
-
- .align 2
-TilesetAnimTiles_General_3_3: @ 8379874
- .incbin "data/tilesets/primary/general/anim/3/3.4bpp"
-
- .align 2
-gTilesetAnimTable_General_3:: @ 8379934
- .4byte TilesetAnimTiles_General_3_0
- .4byte TilesetAnimTiles_General_3_1
- .4byte TilesetAnimTiles_General_3_2
- .4byte TilesetAnimTiles_General_3_3
-
- .align 2
-TilesetAnimTiles_General_4_0: @ 8379944
- .incbin "data/tilesets/primary/general/anim/4/0.4bpp"
-
- .align 2
-TilesetAnimTiles_General_4_1: @ 8379A84
- .incbin "data/tilesets/primary/general/anim/4/1.4bpp"
-
- .align 2
-TilesetAnimTiles_General_4_2: @ 8379BC4
- .incbin "data/tilesets/primary/general/anim/4/2.4bpp"
-
- .align 2
-TilesetAnimTiles_General_4_3: @ 8379D04
- .incbin "data/tilesets/primary/general/anim/4/3.4bpp"
-
- .align 2
-gTilesetAnimTable_General_4:: @ 8379E44
- .4byte TilesetAnimTiles_General_4_0
- .4byte TilesetAnimTiles_General_4_1
- .4byte TilesetAnimTiles_General_4_2
- .4byte TilesetAnimTiles_General_4_3
-
- .align 2
-TilesetAnimTiles_Lavaridge_0: @ 8379E54
- .incbin "data/tilesets/secondary/lavaridge/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Lavaridge_1: @ 8379ED4
- .incbin "data/tilesets/secondary/lavaridge/anim/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Lavaridge_2: @ 8379F54
- .incbin "data/tilesets/secondary/lavaridge/anim/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Lavaridge_3: @ 8379FD4
- .incbin "data/tilesets/secondary/lavaridge/anim/3.4bpp"
-
- .align 2
-gTilesetAnimTable_Lavaridge:: @ 837A054
- .4byte TilesetAnimTiles_Lavaridge_0
- .4byte TilesetAnimTiles_Lavaridge_1
- .4byte TilesetAnimTiles_Lavaridge_2
- .4byte TilesetAnimTiles_Lavaridge_3
-
- .align 2
-TilesetAnimTiles_Pacifidlog_0_0: @ 837A064
- .incbin "data/tilesets/secondary/pacifidlog/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_0_1: @ 837A424
- .incbin "data/tilesets/secondary/pacifidlog/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_0_2: @ 837A7E4
- .incbin "data/tilesets/secondary/pacifidlog/anim/0/2.4bpp"
-
- .align 2
-gTilesetAnimTable_Pacifidlog_0:: @ 837ABA4
- .4byte TilesetAnimTiles_Pacifidlog_0_0
- .4byte TilesetAnimTiles_Pacifidlog_0_1
- .4byte TilesetAnimTiles_Pacifidlog_0_2
- .4byte TilesetAnimTiles_Pacifidlog_0_1
-
- .align 2
-TilesetAnimTiles_Underwater_0: @ 837ABB4
- .incbin "data/tilesets/secondary/underwater/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Underwater_1: @ 837AC34
- .incbin "data/tilesets/secondary/underwater/anim/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Underwater_2: @ 837ACB4
- .incbin "data/tilesets/secondary/underwater/anim/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Underwater_3: @ 837AD34
- .incbin "data/tilesets/secondary/underwater/anim/3.4bpp"
-
- .align 2
-gTilesetAnimTable_Underwater:: @ 837ADB4
- .4byte TilesetAnimTiles_Underwater_0
- .4byte TilesetAnimTiles_Underwater_1
- .4byte TilesetAnimTiles_Underwater_2
- .4byte TilesetAnimTiles_Underwater_3
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_0: @ 837ADC4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_1: @ 837AEC4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_2: @ 837AFC4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_3: @ 837B0C4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/3.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_4: @ 837B1C4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/4.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_5: @ 837B2C4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/5.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_6: @ 837B3C4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/6.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_7: @ 837B4C4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/7.4bpp"
-
- .align 2
-gTilesetAnimTable_Pacifidlog_1:: @ 837B5C4
- .4byte TilesetAnimTiles_Pacifidlog_1_0
- .4byte TilesetAnimTiles_Pacifidlog_1_1
- .4byte TilesetAnimTiles_Pacifidlog_1_2
- .4byte TilesetAnimTiles_Pacifidlog_1_3
- .4byte TilesetAnimTiles_Pacifidlog_1_4
- .4byte TilesetAnimTiles_Pacifidlog_1_5
- .4byte TilesetAnimTiles_Pacifidlog_1_6
- .4byte TilesetAnimTiles_Pacifidlog_1_7
-
- .align 2
-TilesetAnimTiles_Mauville_0_0: @ 837B5E4
- .incbin "data/tilesets/secondary/mauville/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_0_1: @ 837B664
- .incbin "data/tilesets/secondary/mauville/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_0_2: @ 837B6E4
- .incbin "data/tilesets/secondary/mauville/anim/0/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_0_3: @ 837B764
- .incbin "data/tilesets/secondary/mauville/anim/0/3.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_0_4: @ 837B7E4
- .incbin "data/tilesets/secondary/mauville/anim/0/4.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_1_0: @ 837B864
- .incbin "data/tilesets/secondary/mauville/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_1_1: @ 837B8E4
- .incbin "data/tilesets/secondary/mauville/anim/1/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_1_2: @ 837B964
- .incbin "data/tilesets/secondary/mauville/anim/1/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_1_3: @ 837B9E4
- .incbin "data/tilesets/secondary/mauville/anim/1/3.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_1_4: @ 837BA64
- .incbin "data/tilesets/secondary/mauville/anim/1/4.4bpp"
-
- .align 2
-gUnknown_0837BAE4:: @ 837BAE4
- .4byte 0x06004C00
- .4byte 0x06004C80
- .4byte 0x06004D00
- .4byte 0x06004D80
- .4byte 0x06004E00
- .4byte 0x06004E80
- .4byte 0x06004F00
- .4byte 0x06004F80
-
- .align 2
-gUnknown_0837BB04:: @ 837BB04
- .4byte 0x06005000
- .4byte 0x06005080
- .4byte 0x06005100
- .4byte 0x06005180
- .4byte 0x06005200
- .4byte 0x06005280
- .4byte 0x06005300
- .4byte 0x06005380
-
- .align 2
-gTilesetAnimTable_Mauville_0A:: @ 837BB24
- .4byte TilesetAnimTiles_Mauville_0_0
- .4byte TilesetAnimTiles_Mauville_0_0
- .4byte TilesetAnimTiles_Mauville_0_1
- .4byte TilesetAnimTiles_Mauville_0_2
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_2
- .4byte TilesetAnimTiles_Mauville_0_1
-
- .align 2
-gTilesetAnimTable_Mauville_1A:: @ 837BB54
- .4byte TilesetAnimTiles_Mauville_1_0
- .4byte TilesetAnimTiles_Mauville_1_0
- .4byte TilesetAnimTiles_Mauville_1_1
- .4byte TilesetAnimTiles_Mauville_1_2
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_2
- .4byte TilesetAnimTiles_Mauville_1_1
-
- .align 2
-gTilesetAnimTable_Mauville_0B:: @ 837BB84
- .4byte TilesetAnimTiles_Mauville_0_0
- .4byte TilesetAnimTiles_Mauville_0_0
- .4byte TilesetAnimTiles_Mauville_0_4
- .4byte TilesetAnimTiles_Mauville_0_4
-
- .align 2
-gTilesetAnimTable_Mauville_1B:: @ 837BB94
- .4byte TilesetAnimTiles_Mauville_1_0
- .4byte TilesetAnimTiles_Mauville_1_0
- .4byte TilesetAnimTiles_Mauville_1_4
- .4byte TilesetAnimTiles_Mauville_1_4
-
- .align 2
-TilesetAnimTiles_Rustboro_0_0: @ 837BBA4
- .incbin "data/tilesets/secondary/rustboro/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_1: @ 837BC24
- .incbin "data/tilesets/secondary/rustboro/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_2: @ 837BCA4
- .incbin "data/tilesets/secondary/rustboro/anim/0/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_3: @ 837BD24
- .incbin "data/tilesets/secondary/rustboro/anim/0/3.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_4: @ 837BDA4
- .incbin "data/tilesets/secondary/rustboro/anim/0/4.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_5: @ 837BE24
- .incbin "data/tilesets/secondary/rustboro/anim/0/5.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_6: @ 837BEA4
- .incbin "data/tilesets/secondary/rustboro/anim/0/6.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_7: @ 837BF24
- .incbin "data/tilesets/secondary/rustboro/anim/0/7.4bpp"
-
- .align 2
-gUnknown_0837BFA4:: @ 837BFA4
- .4byte 0x06005000
- .4byte 0x06005080
- .4byte 0x06005100
- .4byte 0x06005180
- .4byte 0x06005200
- .4byte 0x06005280
- .4byte 0x06005300
- .4byte 0x06005380
-
- .align 2
-gTilesetAnimTable_Rustboro_0:: @ 837BFC4
- .4byte TilesetAnimTiles_Rustboro_0_0
- .4byte TilesetAnimTiles_Rustboro_0_1
- .4byte TilesetAnimTiles_Rustboro_0_2
- .4byte TilesetAnimTiles_Rustboro_0_3
- .4byte TilesetAnimTiles_Rustboro_0_4
- .4byte TilesetAnimTiles_Rustboro_0_5
- .4byte TilesetAnimTiles_Rustboro_0_6
- .4byte TilesetAnimTiles_Rustboro_0_7
-
- .align 2
-TilesetAnimTiles_Rustboro_1_0: @ 837BFE4
- .incbin "data/tilesets/secondary/rustboro/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_1_1: @ 837C064
- .incbin "data/tilesets/secondary/rustboro/anim/1/1.4bpp"
-
- .align 2
-gTilesetAnimTable_Rustboro_1:: @ 837C0E4
- .4byte TilesetAnimTiles_Rustboro_1_0
- .4byte TilesetAnimTiles_Rustboro_1_1
-
- .align 2
-TilesetAnimTiles_Cave_0: @ 837C0EC
- .incbin "data/tilesets/secondary/cave/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Cave_1: @ 837C16C
- .incbin "data/tilesets/secondary/cave/anim/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Cave_2: @ 837C1EC
- .incbin "data/tilesets/secondary/cave/anim/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Cave_3: @ 837C26C
- .incbin "data/tilesets/secondary/cave/anim/3.4bpp"
-
- .incbin "data/tilesets/secondary/cave/anim/unused/0.4bpp"
- .incbin "data/tilesets/secondary/cave/anim/unused/1.4bpp"
- .incbin "data/tilesets/secondary/cave/anim/unused/2.4bpp"
- .incbin "data/tilesets/secondary/cave/anim/unused/3.4bpp"
-
- .space 32
-
- .align 2
-gTilesetAnimTable_Cave:: @ 837C50C
- .4byte TilesetAnimTiles_Cave_0
- .4byte TilesetAnimTiles_Cave_1
- .4byte TilesetAnimTiles_Cave_2
- .4byte TilesetAnimTiles_Cave_3
-
- .align 2
-TilesetAnimTiles_EverGrande_0: @ 837C51C
- .incbin "data/tilesets/secondary/ever_grande/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_1: @ 837C59C
- .incbin "data/tilesets/secondary/ever_grande/anim/1.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_2: @ 837C61C
- .incbin "data/tilesets/secondary/ever_grande/anim/2.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_3: @ 837C69C
- .incbin "data/tilesets/secondary/ever_grande/anim/3.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_4: @ 837C71C
- .incbin "data/tilesets/secondary/ever_grande/anim/4.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_5: @ 837C79C
- .incbin "data/tilesets/secondary/ever_grande/anim/5.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_6: @ 837C81C
- .incbin "data/tilesets/secondary/ever_grande/anim/6.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_7: @ 837C89C
- .incbin "data/tilesets/secondary/ever_grande/anim/7.4bpp"
-
- .space 32
-
- .align 2
-gUnknown_0837C93C:: @ 837C93C
- .4byte 0x06005C00
- .4byte 0x06005C80
- .4byte 0x06005D00
- .4byte 0x06005D80
- .4byte 0x06005E00
- .4byte 0x06005E80
- .4byte 0x06005F00
- .4byte 0x06005F80
-
- .align 2
-gTilesetAnimTable_EverGrande:: @ 837C95C
- .4byte TilesetAnimTiles_EverGrande_0
- .4byte TilesetAnimTiles_EverGrande_1
- .4byte TilesetAnimTiles_EverGrande_2
- .4byte TilesetAnimTiles_EverGrande_3
- .4byte TilesetAnimTiles_EverGrande_4
- .4byte TilesetAnimTiles_EverGrande_5
- .4byte TilesetAnimTiles_EverGrande_6
- .4byte TilesetAnimTiles_EverGrande_7
-
- .align 2
-TilesetAnimTiles_Building_0: @ 837C97C
- .incbin "data/tilesets/primary/building/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Building_1: @ 837C9FC
- .incbin "data/tilesets/primary/building/anim/1.4bpp"
-
- .align 2
-gTilesetAnimTable_Building:: @ 837CA7C
- .4byte TilesetAnimTiles_Building_0
- .4byte TilesetAnimTiles_Building_1
-
- .align 2
-TilesetAnimTiles_SootopolisGym_0_0: @ 837CA84
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_SootopolisGym_0_1: @ 837CC04
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_SootopolisGym_0_2: @ 837CD84
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/0/2.4bpp"
-
- .align 2
-TilesetAnimTiles_SootopolisGym_1_0: @ 837CF04
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_SootopolisGym_1_1: @ 837D184
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/1/1.4bpp"
-
- .align 2
-TilesetAnimTiles_SootopolisGym_1_2: @ 837D404
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/1/2.4bpp"
-
- .align 2
-gTilesetAnimTable_SootopolisGym_0:: @ 837D684
- .4byte TilesetAnimTiles_SootopolisGym_0_0
- .4byte TilesetAnimTiles_SootopolisGym_0_1
- .4byte TilesetAnimTiles_SootopolisGym_0_2
-
- .align 2
-gTilesetAnimTable_SootopolisGym_1:: @ 837D690
- .4byte TilesetAnimTiles_SootopolisGym_1_0
- .4byte TilesetAnimTiles_SootopolisGym_1_1
- .4byte TilesetAnimTiles_SootopolisGym_1_2
-
- .align 2
-TilesetAnimTiles_EliteFour_1_0: @ 837D69C
- .incbin "data/tilesets/secondary/elite_four/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_EliteFour_1_1: @ 837D71C
- .incbin "data/tilesets/secondary/elite_four/anim/1/1.4bpp"
-
- .align 2
-TilesetAnimTiles_EliteFour_0_0: @ 837D79C
- .incbin "data/tilesets/secondary/elite_four/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_EliteFour_0_1: @ 837D7BC
- .incbin "data/tilesets/secondary/elite_four/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_EliteFour_0_2: @ 837D7DC
- .incbin "data/tilesets/secondary/elite_four/anim/0/2.4bpp"
-
- .align 2
-TilesetAnimTiles_EliteFour_0_3: @ 837D7FC
- .incbin "data/tilesets/secondary/elite_four/anim/0/3.4bpp"
-
- .space 32
-
- .align 2
-gTilesetAnimTable_EliteFour_0:: @ 837D83C
- .4byte TilesetAnimTiles_EliteFour_0_0
- .4byte TilesetAnimTiles_EliteFour_0_1
- .4byte TilesetAnimTiles_EliteFour_0_2
- .4byte TilesetAnimTiles_EliteFour_0_3
-
- .align 2
-gTilesetAnimTable_EliteFour_1:: @ 837D84C
- .4byte TilesetAnimTiles_EliteFour_1_0
- .4byte TilesetAnimTiles_EliteFour_1_1
-
- .align 2
-TilesetAnimTiles_MauvilleGym_0: @ 837D854
- .incbin "data/tilesets/secondary/mauville_gym/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_MauvilleGym_1: @ 837DA54
- .incbin "data/tilesets/secondary/mauville_gym/anim/1.4bpp"
-
- .space 32
-
- .align 2
-gTilesetAnimTable_MauvilleGym:: @ 837DC74
- .4byte TilesetAnimTiles_MauvilleGym_0
- .4byte TilesetAnimTiles_MauvilleGym_1
-
- .align 2
-TilesetAnimTiles_BikeShop_0: @ 837DC7C
- .incbin "data/tilesets/secondary/bike_shop/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_BikeShop_1: @ 837DD9C
- .incbin "data/tilesets/secondary/bike_shop/anim/1.4bpp"
-
- .space 32
-
- .align 2
-gTilesetAnimTable_BikeShop:: @ 837DEDC
- .4byte TilesetAnimTiles_BikeShop_0
- .4byte TilesetAnimTiles_BikeShop_1
diff --git a/data/tv.s b/data/tv.s
deleted file mode 100644
index 293f84217..000000000
--- a/data/tv.s
+++ /dev/null
@@ -1,205 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-gPokeOutbreakSpeciesList:: @ 83D13F8
- .2byte SPECIES_SURSKIT
- .2byte MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE
- .byte 3
- .byte MAPSEC_Route102
-
- .2byte SPECIES_SURSKIT
- .2byte MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE
- .byte 15
- .byte MAPSEC_Route114
-
- .2byte SPECIES_SURSKIT
- .2byte MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE
- .byte 15
- .byte MAPSEC_Route117
-
- .2byte SPECIES_SURSKIT
- .2byte MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE
- .byte 28
- .byte MAPSEC_Route120
-
- .2byte SPECIES_SKITTY
- .2byte MOVE_GROWL, MOVE_TACKLE, MOVE_NONE, MOVE_NONE
- .byte 15
- .byte MAPSEC_Route116
-
- .align 2
-gTVNewsTextGroup1:: @ 83D1434
- .4byte 0x0
- .4byte gTVNewsText_EnergyGuru1
- .4byte gTVNewsText_GameCorner1
- .4byte gTVNewsText_LilycoveDepartment1
-
- .align 2
-gTVNewsTextGroup2:: @ 83D1444
- .4byte 0x0
- .4byte gTVNewsText_EnergyGuru2
- .4byte gTVNewsText_GameCorner2
- .4byte gTVNewsText_LilycoveDepartment2
-
- .align 2
-gTVNewsTextGroup3:: @ 83D1454
- .4byte 0x0
- .4byte gTVNewsText_EnergyGuru3
- .4byte gTVNewsText_GameCorner3
- .4byte gTVNewsText_LilycoveDepartment3
-
- .align 2
-gUnknown_083D1464:: @ 83D1464
- .4byte gStringVar1
- .4byte gStringVar2
- .4byte gStringVar3
-
- .align 2
-gTVFanClubTextGroup:: @ 83D1470
- .4byte gTVFanClubText1
- .4byte gTVFanClubText2
- .4byte gTVFanClubText3
- .4byte gTVFanClubText4
- .4byte gTVFanClubText5
- .4byte gTVFanClubText6
- .4byte gTVFanClubText7
- .4byte gTVFanClubText8
-
- .align 2
-gTVRecentHappeningsTextGroup:: @ 83D1490
- .4byte gTVRecentHappeningsText1
- .4byte gTVRecentHappeningsText2
- .4byte gTVRecentHappeningsText3
- .4byte gTVRecentHappeningsText4
- .4byte gTVRecentHappeningsText5
- .4byte gTVRecentHappeningsText6
-
- .align 2
-gTVFanClubOpinionsTextGroup:: @ 83D14A8
- .4byte gTVFanClubOpinionsText1
- .4byte gTVFanClubOpinionsText2
- .4byte gTVFanClubOpinionsText3
- .4byte gTVFanClubOpinionsText4
- .4byte gTVFanClubOpinionsText5
-
- .align 2
-gTVPokemonOutbreakTextGroup:: @ 83D14BC
- .4byte gTVPokemonOutbreakText
-
- .align 2
-gTVPokemonTodayTextGroup:: @ 83D14C0
- .4byte gTVPokemonTodayText1
- .4byte gTVPokemonTodayText2
- .4byte gTVPokemonTodayText3
- .4byte gTVPokemonTodayText4
- .4byte gTVPokemonTodayText5
- .4byte gTVPokemonTodayText6
- .4byte gTVPokemonTodayText7
- .4byte gTVPokemonTodayText8
- .4byte gTVPokemonTodayText9
- .4byte gTVPokemonTodayText10
- .4byte gTVPokemonTodayText11
- .4byte gTVPokemonTodayText12
-
- .align 2
-gTVSmartShopperTextGroup:: @ 83D14F0
- .4byte gTVSmartShopperText1
- .4byte gTVSmartShopperText2
- .4byte gTVSmartShopperText3
- .4byte gTVSmartShopperText4
- .4byte gTVSmartShopperText5
- .4byte gTVSmartShopperText6
- .4byte gTVSmartShopperText7
- .4byte gTVSmartShopperText8
- .4byte gTVSmartShopperText9
- .4byte gTVSmartShopperText10
- .4byte gTVSmartShopperText11
- .4byte gTVSmartShopperText12
- .4byte gTVSmartShopperText13
-
- .align 2
-gTVBravoTrainerTextGroup:: @ 83D1524
- .4byte gTVBravoTrainerText1
- .4byte gTVBravoTrainerText2
- .4byte gTVBravoTrainerText3
- .4byte gTVBravoTrainerText4
- .4byte gTVBravoTrainerText5
- .4byte gTVBravoTrainerText6
- .4byte gTVBravoTrainerText7
- .4byte gTVBravoTrainerText8
- .4byte gTVBravoTrainerText9
-
- .align 2
-gTVBravoTrainerBattleTowerTextGroup:: @ 83D1548
- .4byte gTVBravoTrainerBattleTowerText1
- .4byte gTVBravoTrainerBattleTowerText2
- .4byte gTVBravoTrainerBattleTowerText3
- .4byte gTVBravoTrainerBattleTowerText4
- .4byte gTVBravoTrainerBattleTowerText5
- .4byte gTVBravoTrainerBattleTowerText6
- .4byte gTVBravoTrainerBattleTowerText7
- .4byte gTVBravoTrainerBattleTowerText8
- .4byte gTVBravoTrainerBattleTowerText9
- .4byte gTVBravoTrainerBattleTowerText10
- .4byte gTVBravoTrainerBattleTowerText11
- .4byte gTVBravoTrainerBattleTowerText12
- .4byte gTVBravoTrainerBattleTowerText13
- .4byte gTVBravoTrainerBattleTowerText14
- .4byte gTVBravoTrainerBattleTowerText15
-
- .align 2
-gTVNameRaterTextGroup:: @ 83D1584
- .4byte gTVNameRaterText1
- .4byte gTVNameRaterText2
- .4byte gTVNameRaterText3
- .4byte gTVNameRaterText4
- .4byte gTVNameRaterText5
- .4byte gTVNameRaterText6
- .4byte gTVNameRaterText7
- .4byte gTVNameRaterText8
- .4byte gTVNameRaterText9
- .4byte gTVNameRaterText10
- .4byte gTVNameRaterText11
- .4byte gTVNameRaterText12
- .4byte gTVNameRaterText13
- .4byte gTVNameRaterText14
- .4byte gTVNameRaterText15
- .4byte gTVNameRaterText16
- .4byte gTVNameRaterText17
- .4byte gTVNameRaterText18
- .4byte gTVNameRaterText19
-
- .align 2
-gTVPokemonTodayFailedCaptureTextGroup:: @ 83D15D0
- .4byte gTVPokemonTodayFailedCaptureText1
- .4byte gTVPokemonTodayFailedCaptureText2
- .4byte gTVPokemonTodayFailedCaptureText3
- .4byte gTVPokemonTodayFailedCaptureText4
- .4byte gTVPokemonTodayFailedCaptureText5
- .4byte gTVPokemonTodayFailedCaptureText6
- .4byte gTVPokemonTodayFailedCaptureText7
-
- .align 2
-gTVFishingGuruAdviceTextGroup:: @ 83D15EC
- .4byte gTVFishingGuruAdviceText1
- .4byte gTVFishingGuruAdviceText2
-
- .align 2
-gTVWorldOfMastersTextGroup:: @ 83D15F4
- .4byte gTVWorldOfMastersText1
- .4byte gTVWorldOfMastersText2
- .4byte gTVWorldOfMastersText3
-
- .align 2
-gTVGabbyAndTyTextGroup:: @ 83D1600
- .4byte gTVGabbyAndTyText1
- .4byte gTVGabbyAndTyText2
- .4byte gTVGabbyAndTyText3
- .4byte gTVGabbyAndTyText4
- .4byte gTVGabbyAndTyText5
- .4byte gTVGabbyAndTyText6
- .4byte gTVGabbyAndTyText7
- .4byte gTVGabbyAndTyText8
- .4byte gTVGabbyAndTyText9
diff --git a/data/wild_encounter.s b/data/wild_encounter.s
deleted file mode 100644
index 317502aa9..000000000
--- a/data/wild_encounter.s
+++ /dev/null
@@ -1,18 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-@ 839B540
- .include "data/wild_mons.inc"
-
- .align 2
-gWildFeebasRoute119Data:: @ 839DBFC
- .byte 20, 25 @ Min/Max level
- .2byte SPECIES_FEEBAS
-
- .align 2
-gRoute119WaterTileData:: @ 839DC00
- .2byte 0x0, 0x2D, 0x0
- .2byte 0x2E, 0x5B, 0x83
- .2byte 0x5C, 0x8B, 0x12A
diff --git a/data/wild_mons.inc b/data/wild_mons.inc
deleted file mode 100644
index 01ebd8a16..000000000
--- a/data/wild_mons.inc
+++ /dev/null
@@ -1,688 +0,0 @@
-
- .align 2
-gWildMonHeaders::
- map PetalburgCity
- .2byte 0 @ padding
- .4byte NULL
- .4byte PetalburgCity_WaterMonsInfo
- .4byte NULL
- .4byte PetalburgCity_FishingMonsInfo
-
- map SlateportCity
- .2byte 0 @ padding
- .4byte NULL
- .4byte SlateportCity_WaterMonsInfo
- .4byte NULL
- .4byte SlateportCity_FishingMonsInfo
-
- map LilycoveCity
- .2byte 0 @ padding
- .4byte NULL
- .4byte LilycoveCity_WaterMonsInfo
- .4byte NULL
- .4byte LilycoveCity_FishingMonsInfo
-
- map MossdeepCity
- .2byte 0 @ padding
- .4byte NULL
- .4byte MossdeepCity_WaterMonsInfo
- .4byte NULL
- .4byte MossdeepCity_FishingMonsInfo
-
- map SootopolisCity
- .2byte 0 @ padding
- .4byte NULL
- .4byte SootopolisCity_WaterMonsInfo
- .4byte NULL
- .4byte SootopolisCity_FishingMonsInfo
-
- map EverGrandeCity
- .2byte 0 @ padding
- .4byte NULL
- .4byte EverGrandeCity_WaterMonsInfo
- .4byte NULL
- .4byte EverGrandeCity_FishingMonsInfo
-
- map MeteorFalls_1F_1R
- .2byte 0 @ padding
- .4byte MeteorFalls_1F_1R_LandMonsInfo
- .4byte MeteorFalls_1F_1R_WaterMonsInfo
- .4byte NULL
- .4byte MeteorFalls_1F_1R_FishingMonsInfo
-
- map MeteorFalls_1F_2R
- .2byte 0 @ padding
- .4byte MeteorFalls_1F_2R_LandMonsInfo
- .4byte MeteorFalls_1F_2R_WaterMonsInfo
- .4byte NULL
- .4byte MeteorFalls_1F_2R_FishingMonsInfo
-
- map MeteorFalls_B1F_1R
- .2byte 0 @ padding
- .4byte MeteorFalls_B1F_1R_LandMonsInfo
- .4byte MeteorFalls_B1F_1R_WaterMonsInfo
- .4byte NULL
- .4byte MeteorFalls_B1F_1R_FishingMonsInfo
-
- map MeteorFalls_B1F_2R
- .2byte 0 @ padding
- .4byte MeteorFalls_B1F_2R_LandMonsInfo
- .4byte MeteorFalls_B1F_2R_WaterMonsInfo
- .4byte NULL
- .4byte MeteorFalls_B1F_2R_FishingMonsInfo
-
- map RusturfTunnel
- .2byte 0 @ padding
- .4byte RusturfTunnel_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map GraniteCave_1F
- .2byte 0 @ padding
- .4byte GraniteCave_1F_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map GraniteCave_B1F
- .2byte 0 @ padding
- .4byte GraniteCave_B1F_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map GraniteCave_B2F
- .2byte 0 @ padding
- .4byte GraniteCave_B2F_LandMonsInfo
- .4byte NULL
- .4byte GraniteCave_B2F_RockSmashMonsInfo
- .4byte NULL
-
- map GraniteCave_StevensRoom
- .2byte 0 @ padding
- .4byte GraniteCave_StevensRoom_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map PetalburgWoods
- .2byte 0 @ padding
- .4byte PetalburgWoods_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map JaggedPass
- .2byte 0 @ padding
- .4byte JaggedPass_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map FieryPath
- .2byte 0 @ padding
- .4byte FieryPath_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map MtPyre_1F
- .2byte 0 @ padding
- .4byte MtPyre_1F_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map MtPyre_2F
- .2byte 0 @ padding
- .4byte MtPyre_2F_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map MtPyre_3F
- .2byte 0 @ padding
- .4byte MtPyre_3F_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map MtPyre_4F
- .2byte 0 @ padding
- .4byte MtPyre_4F_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map MtPyre_5F
- .2byte 0 @ padding
- .4byte MtPyre_5F_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map MtPyre_6F
- .2byte 0 @ padding
- .4byte MtPyre_6F_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map MtPyre_Exterior
- .2byte 0 @ padding
- .4byte MtPyre_Exterior_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map MtPyre_Summit
- .2byte 0 @ padding
- .4byte MtPyre_Summit_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map SeafloorCavern_Entrance
- .2byte 0 @ padding
- .4byte NULL
- .4byte SeafloorCavern_Entrance_WaterMonsInfo
- .4byte NULL
- .4byte SeafloorCavern_Entrance_FishingMonsInfo
-
- map SeafloorCavern_Room1
- .2byte 0 @ padding
- .4byte SeafloorCavern_Room1_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map SeafloorCavern_Room2
- .2byte 0 @ padding
- .4byte SeafloorCavern_Room2_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map SeafloorCavern_Room3
- .2byte 0 @ padding
- .4byte SeafloorCavern_Room3_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map SeafloorCavern_Room4
- .2byte 0 @ padding
- .4byte SeafloorCavern_Room4_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map SeafloorCavern_Room5
- .2byte 0 @ padding
- .4byte SeafloorCavern_Room5_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map SeafloorCavern_Room6
- .2byte 0 @ padding
- .4byte SeafloorCavern_Room6_LandMonsInfo
- .4byte SeafloorCavern_Room6_WaterMonsInfo
- .4byte NULL
- .4byte SeafloorCavern_Room6_FishingMonsInfo
-
- map SeafloorCavern_Room7
- .2byte 0 @ padding
- .4byte SeafloorCavern_Room7_LandMonsInfo
- .4byte SeafloorCavern_Room7_WaterMonsInfo
- .4byte NULL
- .4byte SeafloorCavern_Room7_FishingMonsInfo
-
- map SeafloorCavern_Room8
- .2byte 0 @ padding
- .4byte SeafloorCavern_Room8_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map CaveOfOrigin_Entrance
- .2byte 0 @ padding
- .4byte CaveOfOrigin_Entrance_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map CaveOfOrigin_1F
- .2byte 0 @ padding
- .4byte CaveOfOrigin_1F_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map CaveOfOrigin_B1F
- .2byte 0 @ padding
- .4byte CaveOfOrigin_B1F_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map CaveOfOrigin_B2F
- .2byte 0 @ padding
- .4byte CaveOfOrigin_B2F_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map CaveOfOrigin_B3F
- .2byte 0 @ padding
- .4byte CaveOfOrigin_B3F_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map VictoryRoad_1F
- .2byte 0 @ padding
- .4byte VictoryRoad_1F_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map VictoryRoad_B1F
- .2byte 0 @ padding
- .4byte VictoryRoad_B1F_LandMonsInfo
- .4byte NULL
- .4byte VictoryRoad_B1F_RockSmashMonsInfo
- .4byte NULL
-
- map VictoryRoad_B2F
- .2byte 0 @ padding
- .4byte VictoryRoad_B2F_LandMonsInfo
- .4byte VictoryRoad_B2F_WaterMonsInfo
- .4byte NULL
- .4byte VictoryRoad_B2F_FishingMonsInfo
-
- map ShoalCave_LowTideEntranceRoom
- .2byte 0 @ padding
- .4byte ShoalCave_LowTideEntranceRoom_LandMonsInfo
- .4byte ShoalCave_LowTideEntranceRoom_WaterMonsInfo
- .4byte NULL
- .4byte ShoalCave_LowTideEntranceRoom_FishingMonsInfo
-
- map ShoalCave_LowTideInnerRoom
- .2byte 0 @ padding
- .4byte ShoalCave_LowTideInnerRoom_LandMonsInfo
- .4byte ShoalCave_LowTideInnerRoom_WaterMonsInfo
- .4byte NULL
- .4byte ShoalCave_LowTideInnerRoom_FishingMonsInfo
-
- map ShoalCave_LowTideStairsRoom
- .2byte 0 @ padding
- .4byte ShoalCave_LowTideStairsRoom_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map ShoalCave_LowTideLowerRoom
- .2byte 0 @ padding
- .4byte ShoalCave_LowTideLowerRoom_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map ShoalCave_LowTideIceRoom
- .2byte 0 @ padding
- .4byte ShoalCave_LowTideIceRoom_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map NewMauville_Entrance
- .2byte 0 @ padding
- .4byte NewMauville_Entrance_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map NewMauville_Inside
- .2byte 0 @ padding
- .4byte NewMauville_Inside_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map AbandonedShip_Rooms_B1F
- .2byte 0 @ padding
- .4byte NULL
- .4byte AbandonedShip_Rooms_B1F_WaterMonsInfo
- .4byte NULL
- .4byte AbandonedShip_Rooms_B1F_FishingMonsInfo
-
- map AbandonedShip_HiddenFloorCorridors
- .2byte 0 @ padding
- .4byte NULL
- .4byte AbandonedShip_HiddenFloorCorridors_WaterMonsInfo
- .4byte NULL
- .4byte AbandonedShip_HiddenFloorCorridors_FishingMonsInfo
-
- map SkyPillar_1F
- .2byte 0 @ padding
- .4byte SkyPillar_1F_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map SkyPillar_3F
- .2byte 0 @ padding
- .4byte SkyPillar_3F_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map SkyPillar_5F
- .2byte 0 @ padding
- .4byte SkyPillar_5F_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map Route101
- .2byte 0 @ padding
- .4byte Route101_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map Route102
- .2byte 0 @ padding
- .4byte Route102_LandMonsInfo
- .4byte Route102_WaterMonsInfo
- .4byte NULL
- .4byte Route102_FishingMonsInfo
-
- map Route103
- .2byte 0 @ padding
- .4byte Route103_LandMonsInfo
- .4byte Route103_WaterMonsInfo
- .4byte NULL
- .4byte Route103_FishingMonsInfo
-
- map Route104
- .2byte 0 @ padding
- .4byte Route104_LandMonsInfo
- .4byte Route104_WaterMonsInfo
- .4byte NULL
- .4byte Route104_FishingMonsInfo
-
- map Route105
- .2byte 0 @ padding
- .4byte NULL
- .4byte Route105_WaterMonsInfo
- .4byte NULL
- .4byte Route105_FishingMonsInfo
-
- map Route106
- .2byte 0 @ padding
- .4byte NULL
- .4byte Route106_WaterMonsInfo
- .4byte NULL
- .4byte Route106_FishingMonsInfo
-
- map Route107
- .2byte 0 @ padding
- .4byte NULL
- .4byte Route107_WaterMonsInfo
- .4byte NULL
- .4byte Route107_FishingMonsInfo
-
- map Route108
- .2byte 0 @ padding
- .4byte NULL
- .4byte Route108_WaterMonsInfo
- .4byte NULL
- .4byte Route108_FishingMonsInfo
-
- map Route109
- .2byte 0 @ padding
- .4byte NULL
- .4byte Route109_WaterMonsInfo
- .4byte NULL
- .4byte Route109_FishingMonsInfo
-
- map Route110
- .2byte 0 @ padding
- .4byte Route110_LandMonsInfo
- .4byte Route110_WaterMonsInfo
- .4byte NULL
- .4byte Route110_FishingMonsInfo
-
- map Route111
- .2byte 0 @ padding
- .4byte Route111_LandMonsInfo
- .4byte Route111_WaterMonsInfo
- .4byte Route111_RockSmashMonsInfo
- .4byte Route111_FishingMonsInfo
-
- map Route112
- .2byte 0 @ padding
- .4byte Route112_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map Route113
- .2byte 0 @ padding
- .4byte Route113_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map Route114
- .2byte 0 @ padding
- .4byte Route114_LandMonsInfo
- .4byte Route114_WaterMonsInfo
- .4byte Route114_RockSmashMonsInfo
- .4byte Route114_FishingMonsInfo
-
- map Route115
- .2byte 0 @ padding
- .4byte Route115_LandMonsInfo
- .4byte Route115_WaterMonsInfo
- .4byte NULL
- .4byte Route115_FishingMonsInfo
-
- map Route116
- .2byte 0 @ padding
- .4byte Route116_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map Route117
- .2byte 0 @ padding
- .4byte Route117_LandMonsInfo
- .4byte Route117_WaterMonsInfo
- .4byte NULL
- .4byte Route117_FishingMonsInfo
-
- map Route118
- .2byte 0 @ padding
- .4byte Route118_LandMonsInfo
- .4byte Route118_WaterMonsInfo
- .4byte NULL
- .4byte Route118_FishingMonsInfo
-
- map Route119
- .2byte 0 @ padding
- .4byte Route119_LandMonsInfo
- .4byte Route119_WaterMonsInfo
- .4byte NULL
- .4byte Route119_FishingMonsInfo
-
- map Route120
- .2byte 0 @ padding
- .4byte Route120_LandMonsInfo
- .4byte Route120_WaterMonsInfo
- .4byte NULL
- .4byte Route120_FishingMonsInfo
-
- map Route121
- .2byte 0 @ padding
- .4byte Route121_LandMonsInfo
- .4byte Route121_WaterMonsInfo
- .4byte NULL
- .4byte Route121_FishingMonsInfo
-
- map Route122
- .2byte 0 @ padding
- .4byte NULL
- .4byte Route122_WaterMonsInfo
- .4byte NULL
- .4byte Route122_FishingMonsInfo
-
- map Route123
- .2byte 0 @ padding
- .4byte Route123_LandMonsInfo
- .4byte Route123_WaterMonsInfo
- .4byte NULL
- .4byte Route123_FishingMonsInfo
-
- map Route124
- .2byte 0 @ padding
- .4byte NULL
- .4byte Route124_WaterMonsInfo
- .4byte NULL
- .4byte Route124_FishingMonsInfo
-
- map Route125
- .2byte 0 @ padding
- .4byte NULL
- .4byte Route125_WaterMonsInfo
- .4byte NULL
- .4byte Route125_FishingMonsInfo
-
- map Route126
- .2byte 0 @ padding
- .4byte NULL
- .4byte Route126_WaterMonsInfo
- .4byte NULL
- .4byte Route126_FishingMonsInfo
-
- map Route127
- .2byte 0 @ padding
- .4byte NULL
- .4byte Route127_WaterMonsInfo
- .4byte NULL
- .4byte Route127_FishingMonsInfo
-
- map Route128
- .2byte 0 @ padding
- .4byte NULL
- .4byte Route128_WaterMonsInfo
- .4byte NULL
- .4byte Route128_FishingMonsInfo
-
- map Route129
- .2byte 0 @ padding
- .4byte NULL
- .4byte Route129_WaterMonsInfo
- .4byte NULL
- .4byte Route129_FishingMonsInfo
-
- map Route130
- .2byte 0 @ padding
- .4byte Route130_LandMonsInfo
- .4byte Route130_WaterMonsInfo
- .4byte NULL
- .4byte Route130_FishingMonsInfo
-
- map Route131
- .2byte 0 @ padding
- .4byte NULL
- .4byte Route131_WaterMonsInfo
- .4byte NULL
- .4byte Route131_FishingMonsInfo
-
- map Route132
- .2byte 0 @ padding
- .4byte NULL
- .4byte Route132_WaterMonsInfo
- .4byte NULL
- .4byte Route132_FishingMonsInfo
-
- map Route133
- .2byte 0 @ padding
- .4byte NULL
- .4byte Route133_WaterMonsInfo
- .4byte NULL
- .4byte Route133_FishingMonsInfo
-
- map Route134
- .2byte 0 @ padding
- .4byte NULL
- .4byte Route134_WaterMonsInfo
- .4byte NULL
- .4byte Route134_FishingMonsInfo
-
- map SafariZone_Northwest
- .2byte 0 @ padding
- .4byte SafariZone_Northwest_LandMonsInfo
- .4byte SafariZone_Northwest_WaterMonsInfo
- .4byte NULL
- .4byte SafariZone_Northwest_FishingMonsInfo
-
- map SafariZone_Northeast
- .2byte 0 @ padding
- .4byte SafariZone_Northeast_LandMonsInfo
- .4byte NULL
- .4byte SafariZone_Northeast_RockSmashMonsInfo
- .4byte NULL
-
- map SafariZone_Southwest
- .2byte 0 @ padding
- .4byte SafariZone_Southwest_LandMonsInfo
- .4byte SafariZone_Southwest_WaterMonsInfo
- .4byte NULL
- .4byte SafariZone_Southwest_FishingMonsInfo
-
- map SafariZone_Southeast
- .2byte 0 @ padding
- .4byte SafariZone_Southeast_LandMonsInfo
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- map DewfordTown
- .2byte 0 @ padding
- .4byte NULL
- .4byte DewfordTown_WaterMonsInfo
- .4byte NULL
- .4byte DewfordTown_FishingMonsInfo
-
- map PacifidlogTown
- .2byte 0 @ padding
- .4byte NULL
- .4byte PacifidlogTown_WaterMonsInfo
- .4byte NULL
- .4byte PacifidlogTown_FishingMonsInfo
-
- map Underwater1
- .2byte 0 @ padding
- .4byte NULL
- .4byte Underwater1_WaterMonsInfo
- .4byte NULL
- .4byte NULL
-
- map Underwater2
- .2byte 0 @ padding
- .4byte NULL
- .4byte Underwater2_WaterMonsInfo
- .4byte NULL
- .4byte NULL
-
- map UNDEFINED
- .2byte 0 @ padding
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
diff --git a/graphics/weather/fog1.bin b/graphics/battle_anims/backgrounds/fog.bin
index 1f9d53f95..1f9d53f95 100644
--- a/graphics/weather/fog1.bin
+++ b/graphics/battle_anims/backgrounds/fog.bin
Binary files differ
diff --git a/graphics/birch_speech/blank_pal.pal b/graphics/birch_speech/blank_pal.pal
new file mode 100755
index 000000000..7dc528e38
--- /dev/null
+++ b/graphics/birch_speech/blank_pal.pal
@@ -0,0 +1,11 @@
+JASC-PAL
+0100
+8
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/trade/gba.png b/graphics/trade/gba.png
index 61ce32b4f..03519c998 100644
--- a/graphics/trade/gba.png
+++ b/graphics/trade/gba.png
Binary files differ
diff --git a/graphics/unknown/unknown_E94550.bin b/graphics/unknown/unknown_E94550.bin
index ba6830b73..ed5feb3d6 100644
--- a/graphics/unknown/unknown_E94550.bin
+++ b/graphics/unknown/unknown_E94550.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E94590.bin b/graphics/unknown/unknown_E94590.bin
new file mode 100644
index 000000000..bed9142e8
--- /dev/null
+++ b/graphics/unknown/unknown_E94590.bin
Binary files differ
diff --git a/graphics/weather/fog0.png b/graphics/weather/fog2.png
index 198c6f494..198c6f494 100644
--- a/graphics/weather/fog0.png
+++ b/graphics/weather/fog2.png
Binary files differ
diff --git a/include/abilities.h b/include/abilities.h
deleted file mode 100644
index 36a7ab671..000000000
--- a/include/abilities.h
+++ /dev/null
@@ -1,86 +0,0 @@
-#ifndef GUARD_ABILITIES_H
-#define GUARD_ABILITIES_H
-
-enum
-{
- ABILITY_NONE,
- ABILITY_STENCH,
- ABILITY_DRIZZLE,
- ABILITY_SPEED_BOOST,
- ABILITY_BATTLE_ARMOR,
- ABILITY_STURDY,
- ABILITY_DAMP,
- ABILITY_LIMBER,
- ABILITY_SAND_VEIL,
- ABILITY_STATIC,
- ABILITY_VOLT_ABSORB,
- ABILITY_WATER_ABSORB,
- ABILITY_OBLIVIOUS,
- ABILITY_CLOUD_NINE,
- ABILITY_COMPOUND_EYES,
- ABILITY_INSOMNIA,
- ABILITY_COLOR_CHANGE,
- ABILITY_IMMUNITY,
- ABILITY_FLASH_FIRE,
- ABILITY_SHIELD_DUST,
- ABILITY_OWN_TEMPO,
- ABILITY_SUCTION_CUPS,
- ABILITY_INTIMIDATE,
- ABILITY_SHADOW_TAG,
- ABILITY_ROUGH_SKIN,
- ABILITY_WONDER_GUARD,
- ABILITY_LEVITATE,
- ABILITY_EFFECT_SPORE,
- ABILITY_SYNCHRONIZE,
- ABILITY_CLEAR_BODY,
- ABILITY_NATURAL_CURE,
- ABILITY_LIGHTNING_ROD,
- ABILITY_SERENE_GRACE,
- ABILITY_SWIFT_SWIM,
- ABILITY_CHLOROPHYLL,
- ABILITY_ILLUMINATE,
- ABILITY_TRACE,
- ABILITY_HUGE_POWER,
- ABILITY_POISON_POINT,
- ABILITY_INNER_FOCUS,
- ABILITY_MAGMA_ARMOR,
- ABILITY_WATER_VEIL,
- ABILITY_MAGNET_PULL,
- ABILITY_SOUNDPROOF,
- ABILITY_RAIN_DISH,
- ABILITY_SAND_STREAM,
- ABILITY_PRESSURE,
- ABILITY_THICK_FAT,
- ABILITY_EARLY_BIRD,
- ABILITY_FLAME_BODY,
- ABILITY_RUN_AWAY,
- ABILITY_KEEN_EYE,
- ABILITY_HYPER_CUTTER,
- ABILITY_PICKUP,
- ABILITY_TRUANT,
- ABILITY_HUSTLE,
- ABILITY_CUTE_CHARM,
- ABILITY_PLUS,
- ABILITY_MINUS,
- ABILITY_FORECAST,
- ABILITY_STICKY_HOLD,
- ABILITY_SHED_SKIN,
- ABILITY_GUTS,
- ABILITY_MARVEL_SCALE,
- ABILITY_LIQUID_OOZE,
- ABILITY_OVERGROW,
- ABILITY_BLAZE,
- ABILITY_TORRENT,
- ABILITY_SWARM,
- ABILITY_ROCK_HEAD,
- ABILITY_DROUGHT,
- ABILITY_ARENA_TRAP,
- ABILITY_VITAL_SPIRIT,
- ABILITY_WHITE_SMOKE,
- ABILITY_PURE_POWER,
- ABILITY_SHELL_ARMOR,
- ABILITY_CACOPHONY,
- ABILITY_AIR_LOCK
-};
-
-#endif // GUARD_ABILITIES_H
diff --git a/include/battle.h b/include/battle.h
index f973849b7..3b37c0853 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -175,6 +175,52 @@
#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT))
#define WEATHER_HAIL (1 << 7)
+// status animation table
+#define B_ANIM_STATUS_PSN 0x0
+#define B_ANIM_STATUS_CONFUSION 0x1
+#define B_ANIM_STATUS_BRN 0x2
+#define B_ANIM_STATUS_INFATUATION 0x3
+#define B_ANIM_STATUS_SLP 0x4
+#define B_ANIM_STATUS_PRZ 0x5
+#define B_ANIM_STATUS_FRZ 0x6
+#define B_ANIM_STATUS_CURSED 0x7
+#define B_ANIM_STATUS_NIGHTMARE 0x8
+#define B_ANIM_STATUS_WRAPPED 0x9
+
+// general animation table
+#define B_ANIM_CASTFORM_CHANGE 0x0
+#define B_ANIM_STATS_CHANGE 0x1
+#define B_ANIM_SUBSTITUTE_FADE 0x2
+#define B_ANIM_SUBSTITUTE_APPEAR 0x3
+#define B_ANIM_POKEBLOCK_THROW 0x4
+#define B_ANIM_ITEM_KNOCKOFF 0x5
+#define B_ANIM_TURN_TRAP 0x6
+#define B_ANIM_ITEM_EFFECT 0x7
+#define B_ANIM_SMOKEBALL_ESCAPE 0x8
+#define B_ANIM_HANGED_ON 0x9
+#define B_ANIM_RAIN_CONTINUES 0xA
+#define B_ANIM_SUN_CONTINUES 0xB
+#define B_ANIM_SANDSTORM_CONTINUES 0xC
+#define B_ANIM_HAIL_CONTINUES 0xD
+#define B_ANIM_LEECH_SEED_DRAIN 0xE
+#define B_ANIM_MON_HIT 0xF
+#define B_ANIM_ITEM_STEAL 0x10
+#define B_ANIM_SNATCH_MOVE 0x11
+#define B_ANIM_FUTURE_SIGHT_HIT 0x12
+#define B_ANIM_DOOM_DESIRE_HIT 0x13
+#define B_ANIM_FOCUS_PUNCH_SET_UP 0x14
+#define B_ANIM_INGRAIN_HEAL 0x15
+#define B_ANIM_WISH_HEAL 0x16
+
+// special animation table
+#define B_ANIM_LVL_UP 0x0
+#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1
+#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2
+#define B_ANIM_BALL_THROW 0x3
+#define B_ANIM_SAFARI_BALL_THROW 0x4
+#define B_ANIM_SUBSTITUTE_TO_MON 0x5
+#define B_ANIM_MON_TO_SUBSTITUTE 0x6
+
enum
{
BATTLE_TERRAIN_GRASS,
@@ -189,9 +235,6 @@ enum
BATTLE_TERRAIN_PLAIN,
};
-// needed to match the hack that is get_item, thanks cam, someone else clean this up later.
-extern u8 unk_2000000[];
-
struct Trainer
{
/*0x00*/ u8 partyFlags;
@@ -237,7 +280,11 @@ struct AI_ThinkingStruct /* 0x2016800 */
struct BattleStruct /* 0x2000000 */
{
- u8 filler0[0x15DDE];
+ /*0x00000*/ u8 unk0;
+ /*0x00001*/ bool8 unk1;
+ /*0x00002*/ u8 unk2;
+ /*0x00003*/ bool8 unk3;
+ u8 filler4[0x15DDA];
/*0x15DDE*/ u8 unk15DDE;
/*0x15DDF*/ u8 unk15DDF;
/*0x15DE0*/ u8 filler15DE0[0x220];
@@ -533,6 +580,21 @@ struct BattleResults
u8 unk36[10]; // usedBalls?
};
+struct Struct2017100
+{
+ u32 arr[4];
+};
+
+struct Struct2019348
+{
+ u16 unk0;
+ u16 unk2;
+ u8 unk4;
+ u32 unk8;
+ u32 unkC;
+ u32 unk10;
+};
+
struct Struct2017800
{
u8 invisible:1;
@@ -545,25 +607,25 @@ struct Struct2017800
struct Struct2017810
{
- u8 unk0_0:1;
- u8 unk0_1:1;
- u8 unk0_2:1;
- u8 unk0_3:1;
- u8 unk0_4:1;
- u8 unk0_5:1;
- u8 unk0_6:1;
- u8 unk0_7:1;
- u8 unk1_0:1;
- u8 unk1_1:5;
- u8 unk2;
- u8 unk3;
- u8 unk4;
- u8 unk5;
- u8 unk6;
- u8 unk7;
- u8 unk8;
- u8 unk9;
- u8 fillerA[2];
+ /*0x00*/ u8 unk0_0:1;
+ /*0x00*/ u8 unk0_1:1;
+ /*0x00*/ u8 unk0_2:1;
+ /*0x00*/ u8 unk0_3:1;
+ /*0x00*/ u8 unk0_4:1;
+ /*0x00*/ u8 unk0_5:1;
+ /*0x00*/ u8 unk0_6:1;
+ /*0x00*/ u8 unk0_7:1;
+ /*0x01*/ u8 unk1_0:1;
+ /*0x01*/ u8 unk1_1:5;
+ /*0x02*/ u8 unk2;
+ /*0x03*/ u8 unk3;
+ /*0x04*/ u8 unk4;
+ /*0x05*/ u8 unk5;
+ /*0x06*/ u8 unk6;
+ /*0x07*/ u8 unk7;
+ /*0x08*/ u8 unk8;
+ /*0x09*/ u8 unk9;
+ /*0x0A*/ u8 fillerA[2];
};
struct Struct2017840
@@ -671,20 +733,31 @@ extern struct WishFutureKnock gWishFutureKnock;
extern struct AI_ThinkingStruct gAIThinkingSpace;
extern struct Struct20238C8 gUnknown_020238C8;
-// TODO: move ewram to global.h
-extern u8 ewram[];
-
-#define BATTLE_STRUCT ((struct BattleStruct *) (ewram + 0x00000))
-#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(ewram + 0x16800))
-#define UNK_2016A00_STRUCT ((struct UnkBattleStruct1 *) (ewram + 0x16A00))
-#define AI_STACK ((struct AI_Stack *) (ewram + 0x16C00))
-#define AI_ARRAY_160CC ((struct SmallItemStruct *) (ewram + 0x160CC))
-#define B_BATTLESCRIPTS_STACK ((struct scriptsStack *) (ewram + 0x17110))
-#define B_FUNCTION_STACK ((struct funcStack *) (ewram + 0x17140))
-#define ewram17800 ((struct Struct2017800 *) (ewram + 0x17800))
-#define ewram17810 ((struct Struct2017810 *) (ewram + 0x17810))
-#define ewram17840 (*(struct Struct2017840 *) (ewram + 0x17840))
-#define ewram17000 ((u32 *) (ewram + 0x17100))
+// used in many battle files, it seems as though Hisashi Sogabe wrote
+// some sort of macro to replace the use of actually calling memset.
+// Perhaps it was thought calling memset was much slower?
+
+// The compiler wont allow us to locally declare ptr in this macro; some
+// functions that invoke this macro will not match without this egregeous
+// assumption about the variable names, so in order to avoid this assumption,
+// we opt to pass the variables themselves, even though it is likely that
+// Sogabe assumed the variables were named src and dest. Trust me: I tried to
+// avoid assuming variable names, but the ROM just will not match without the
+// assumptions. Therefore, these macros are bad practice, but I'm putting them
+// here anyway.
+#define MEMSET_ALT(data, c, size, var, dest) \
+{ \
+ dest = (u8 *)data; \
+ for(var = 0; var < (u32)size; var++) \
+ dest[var] = c; \
+} \
+
+#define MEMCPY_ALT(data, dest, size, var, src) \
+{ \
+ src = (u8 *)data; \
+ for(var = 0; var < (u32)size; var++) \
+ dest[var] = src[var]; \
+} \
typedef void (*BattleCmdFunc)(void);
@@ -725,7 +798,6 @@ void EmitEffectivenessSound(u8 a, u16 sound); //0x2B
void Emitcmd44(u8 a, u16 sound); //0x2C
void EmitFaintingCry(u8 a); //0x2D
void EmitIntroSlide(u8 a, u8 b); //0x2E
-void Emitcmd48(u8 a, u8 *b, u8 c); //0x30
void Emitcmd49(u8 a); //0x31
void EmitSpriteInvisibility(u8 a, u8 b); //0x33
void EmitBattleAnimation(u8 a, u8 b, u16 c); //0x34
diff --git a/include/battle_ai.h b/include/battle_ai.h
index 2922da0b3..60ca5d000 100644
--- a/include/battle_ai.h
+++ b/include/battle_ai.h
@@ -1,11 +1,6 @@
#ifndef GUARD_BATTLEAI_H
#define GUARD_BATTLEAI_H
-#define AIScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24)
-#define AIScriptRead16(ptr) ((ptr)[0] | (ptr)[1] << 8)
-#define AIScriptRead8(ptr) ((ptr)[0])
-#define AIScriptReadPtr(ptr) (u8*) AIScriptRead32(ptr)
-
enum
{
TARGET,
diff --git a/include/battle_anim.h b/include/battle_anim.h
index 2386c515c..9598c5e5f 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -3,20 +3,10 @@
#include "sprite.h"
-#define SCRIPT_READ_8(ptr) ((ptr)[0])
-#define SCRIPT_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8))
-#define SCRIPT_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
-
#define REG_BGnCNT_BITFIELD(n) (*(struct BGCntrlBitfield *)REG_ADDR_BG##n##CNT)
#define REG_BG1CNT_BITFIELD REG_BGnCNT_BITFIELD(1)
#define REG_BG2CNT_BITFIELD REG_BGnCNT_BITFIELD(2)
-#define EWRAM_14800 ((u16 *)(unk_2000000 + 0x14800))
-#define EWRAM_17800 ((struct UnknownStruct1 *)(unk_2000000 + 0x17800))
-#define EWRAM_17810 ((struct UnknownStruct3 *)(unk_2000000 + 0x17810))
-#define EWRAM_18000 ((u16 *)(unk_2000000 + 0x18000))
-#define EWRAM_19348 (*(u16 *)(unk_2000000 + 0x19348))
-
struct BGCntrlBitfield
{
volatile u16 priority:2;
@@ -55,13 +45,13 @@ struct UnknownStruct3
void DoMoveAnim(const u8 *const moveAnims[], u16 b, u8 c);
bool8 IsAnimBankSpriteVisible(u8 a);
void sub_8076034(u8, u8);
-bool8 IsContest(void);
+bool8 NotInBattle(void);
void battle_anim_clear_some_data(void);
void move_anim_8072740(struct Sprite *sprite);
void DestroyAnimVisualTask(u8 task);
void DestroyAnimVisualTask(u8 task);
bool8 IsAnimBankSpriteVisible(u8);
-u8 IsContest();
-
+s8 sub_8076F98(s8 a);
+void sub_80763FC(u16 a, u16 *b, u32 c, u8 d);
#endif
diff --git a/include/battle_anim_80CA710.h b/include/battle_anim_80CA710.h
index fbbe23b97..14a6ca898 100644
--- a/include/battle_anim_80CA710.h
+++ b/include/battle_anim_80CA710.h
@@ -2,5 +2,7 @@
#define GUARD_BATTLE_ANIM_80CA710_H
void sub_80E4EF8(int, int, int, int, u16, u8, int);
+s16 sub_81174E0(s16 a);
+s16 sub_81174C4(s16 a, s16 b);
#endif // GUARD_BATTLE_ANIM_80CA710_H
diff --git a/include/battle_move_effects.h b/include/battle_move_effects.h
deleted file mode 100644
index 4a9415379..000000000
--- a/include/battle_move_effects.h
+++ /dev/null
@@ -1,222 +0,0 @@
-#ifndef GUARD_BATTLE_MOVE_EFFECTS_H
-#define GUARD_BATTLE_MOVE_EFFECTS_H
-
-enum
-{
- EFFECT_HIT,
- EFFECT_SLEEP,
- EFFECT_POISON_HIT,
- EFFECT_ABSORB,
- EFFECT_BURN_HIT,
- EFFECT_FREEZE_HIT,
- EFFECT_PARALYZE_HIT,
- EFFECT_EXPLOSION,
- EFFECT_DREAM_EATER,
- EFFECT_MIRROR_MOVE,
- EFFECT_ATTACK_UP,
- EFFECT_DEFENSE_UP,
- EFFECT_SPEED_UP,
- EFFECT_SPECIAL_ATTACK_UP,
- EFFECT_SPECIAL_DEFENSE_UP,
- EFFECT_ACCURACY_UP,
- EFFECT_EVASION_UP,
- EFFECT_ALWAYS_HIT,
- EFFECT_ATTACK_DOWN,
- EFFECT_DEFENSE_DOWN,
- EFFECT_SPEED_DOWN,
- EFFECT_SPECIAL_ATTACK_DOWN, // unused
- EFFECT_SPECIAL_DEFENSE_DOWN, // unused
- EFFECT_ACCURACY_DOWN,
- EFFECT_EVASION_DOWN,
- EFFECT_HAZE,
- EFFECT_BIDE,
- EFFECT_RAMPAGE,
- EFFECT_ROAR,
- EFFECT_MULTI_HIT,
- EFFECT_CONVERSION,
- EFFECT_FLINCH_HIT,
- EFFECT_RESTORE_HP,
- EFFECT_TOXIC,
- EFFECT_PAY_DAY,
- EFFECT_LIGHT_SCREEN,
- EFFECT_TRI_ATTACK,
- EFFECT_REST,
- EFFECT_OHKO,
- EFFECT_RAZOR_WIND,
- EFFECT_SUPER_FANG,
- EFFECT_DRAGON_RAGE,
- EFFECT_TRAP,
- EFFECT_HIGH_CRITICAL,
- EFFECT_DOUBLE_HIT,
- EFFECT_RECOIL_IF_MISS,
- EFFECT_MIST,
- EFFECT_FOCUS_ENERGY,
- EFFECT_RECOIL,
- EFFECT_CONFUSE,
- EFFECT_ATTACK_UP_2,
- EFFECT_DEFENSE_UP_2,
- EFFECT_SPEED_UP_2,
- EFFECT_SPECIAL_ATTACK_UP_2,
- EFFECT_SPECIAL_DEFENSE_UP_2,
- EFFECT_ACCURACY_UP_2,
- EFFECT_EVASION_UP_2,
- EFFECT_TRANSFORM,
- EFFECT_ATTACK_DOWN_2,
- EFFECT_DEFENSE_DOWN_2,
- EFFECT_SPEED_DOWN_2,
- EFFECT_SPECIAL_ATTACK_DOWN_2,
- EFFECT_SPECIAL_DEFENSE_DOWN_2,
- EFFECT_ACCURACY_DOWN_2,
- EFFECT_EVASION_DOWN_2,
- EFFECT_REFLECT,
- EFFECT_POISON,
- EFFECT_PARALYZE,
- EFFECT_ATTACK_DOWN_HIT,
- EFFECT_DEFENSE_DOWN_HIT,
- EFFECT_SPEED_DOWN_HIT,
- EFFECT_SPECIAL_ATTACK_DOWN_HIT,
- EFFECT_SPECIAL_DEFENSE_DOWN_HIT,
- EFFECT_ACCURACY_DOWN_HIT,
- EFFECT_EVASION_DOWN_HIT,
- EFFECT_SKY_ATTACK,
- EFFECT_CONFUSE_HIT,
- EFFECT_TWINEEDLE,
- EFFECT_VITAL_THROW,
- EFFECT_SUBSTITUTE,
- EFFECT_RECHARGE,
- EFFECT_RAGE,
- EFFECT_MIMIC,
- EFFECT_METRONOME,
- EFFECT_LEECH_SEED,
- EFFECT_SPLASH,
- EFFECT_DISABLE,
- EFFECT_LEVEL_DAMAGE,
- EFFECT_PSYWAVE,
- EFFECT_COUNTER,
- EFFECT_ENCORE,
- EFFECT_PAIN_SPLIT,
- EFFECT_SNORE,
- EFFECT_CONVERSION_2,
- EFFECT_LOCK_ON,
- EFFECT_SKETCH,
- EFFECT_UNUSED_60, // thaw
- EFFECT_SLEEP_TALK,
- EFFECT_DESTINY_BOND,
- EFFECT_FLAIL,
- EFFECT_SPITE,
- EFFECT_FALSE_SWIPE,
- EFFECT_HEAL_BELL,
- EFFECT_QUICK_ATTACK,
- EFFECT_TRIPLE_KICK,
- EFFECT_THIEF,
- EFFECT_MEAN_LOOK,
- EFFECT_NIGHTMARE,
- EFFECT_MINIMIZE,
- EFFECT_CURSE,
- EFFECT_UNUSED_6E,
- EFFECT_PROTECT,
- EFFECT_SPIKES,
- EFFECT_FORESIGHT,
- EFFECT_PERISH_SONG,
- EFFECT_SANDSTORM,
- EFFECT_ENDURE,
- EFFECT_ROLLOUT,
- EFFECT_SWAGGER,
- EFFECT_FURY_CUTTER,
- EFFECT_ATTRACT,
- EFFECT_RETURN,
- EFFECT_PRESENT,
- EFFECT_FRUSTRATION,
- EFFECT_SAFEGUARD,
- EFFECT_THAW_HIT,
- EFFECT_MAGNITUDE,
- EFFECT_BATON_PASS,
- EFFECT_PURSUIT,
- EFFECT_RAPID_SPIN,
- EFFECT_SONICBOOM,
- EFFECT_UNUSED_83,
- EFFECT_MORNING_SUN,
- EFFECT_SYNTHESIS,
- EFFECT_MOONLIGHT,
- EFFECT_HIDDEN_POWER,
- EFFECT_RAIN_DANCE,
- EFFECT_SUNNY_DAY,
- EFFECT_DEFENSE_UP_HIT,
- EFFECT_ATTACK_UP_HIT,
- EFFECT_ALL_STATS_UP_HIT,
- EFFECT_UNUSED_8D, // incomplete fake out in gen 2
- EFFECT_BELLY_DRUM,
- EFFECT_PSYCH_UP,
- EFFECT_MIRROR_COAT,
- EFFECT_SKULL_BASH,
- EFFECT_TWISTER,
- EFFECT_EARTHQUAKE,
- EFFECT_FUTURE_SIGHT,
- EFFECT_GUST,
- EFFECT_FLINCH_HIT_2, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
- EFFECT_SOLARBEAM,
- EFFECT_THUNDER,
- EFFECT_TELEPORT,
- EFFECT_BEAT_UP,
- EFFECT_FLY,
- EFFECT_DEFENSE_CURL,
- EFFECT_SOFTBOILED,
- EFFECT_FAKE_OUT,
- EFFECT_UPROAR,
- EFFECT_STOCKPILE,
- EFFECT_SPIT_UP,
- EFFECT_SWALLOW,
- EFFECT_UNUSED_A3,
- EFFECT_HAIL,
- EFFECT_TORMENT,
- EFFECT_FLATTER,
- EFFECT_WILL_O_WISP,
- EFFECT_MEMENTO,
- EFFECT_FACADE,
- EFFECT_FOCUS_PUNCH,
- EFFECT_SMELLINGSALT,
- EFFECT_FOLLOW_ME,
- EFFECT_NATURE_POWER,
- EFFECT_CHARGE,
- EFFECT_TAUNT,
- EFFECT_HELPING_HAND,
- EFFECT_TRICK,
- EFFECT_ROLE_PLAY,
- EFFECT_WISH,
- EFFECT_ASSIST,
- EFFECT_INGRAIN,
- EFFECT_SUPERPOWER,
- EFFECT_MAGIC_COAT,
- EFFECT_RECYCLE,
- EFFECT_REVENGE,
- EFFECT_BRICK_BREAK,
- EFFECT_YAWN,
- EFFECT_KNOCK_OFF,
- EFFECT_ENDEAVOR,
- EFFECT_ERUPTION,
- EFFECT_SKILL_SWAP,
- EFFECT_IMPRISON,
- EFFECT_REFRESH,
- EFFECT_GRUDGE,
- EFFECT_SNATCH,
- EFFECT_LOW_KICK,
- EFFECT_SECRET_POWER,
- EFFECT_DOUBLE_EDGE,
- EFFECT_TEETER_DANCE,
- EFFECT_BLAZE_KICK,
- EFFECT_MUD_SPORT,
- EFFECT_POISON_FANG,
- EFFECT_WEATHER_BALL,
- EFFECT_OVERHEAT,
- EFFECT_TICKLE,
- EFFECT_COSMIC_POWER,
- EFFECT_SKY_UPPERCUT,
- EFFECT_BULK_UP,
- EFFECT_POISON_TAIL,
- EFFECT_WATER_SPORT,
- EFFECT_CALM_MIND,
- EFFECT_DRAGON_DANCE,
- EFFECT_CAMOUFLAGE,
-};
-
-#endif // GUARD_BATTLE_MOVE_EFFECTS_H
diff --git a/include/battle_party_menu.h b/include/battle_party_menu.h
index 200b0c653..d7ad53eed 100644
--- a/include/battle_party_menu.h
+++ b/include/battle_party_menu.h
@@ -1,9 +1,6 @@
#ifndef GUARD_BATTLE_PARTY_MENU_H
#define GUARD_BATTLE_PARTY_MENU_H
-extern u8 unk_2000000[];
-#define EWRAM_1609D unk_2000000[0x1609D]
-
void HandleBattlePartyMenu(u8);
bool8 SetUpBattlePartyMenu(void);
diff --git a/include/battle_tower.h b/include/battle_tower.h
index 75ea405ab..a3e1ff28c 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -1,8 +1,102 @@
#ifndef GUARD_BATTLE_TOWER_H
#define GUARD_BATTLE_TOWER_H
-void sub_8134AC0(void *);
+#define BATTLE_TOWER_EREADER_TRAINER_ID 200
+#define BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID 100
+
+enum
+{
+ F_EV_SPREAD_HP = 1 << 0,
+ F_EV_SPREAD_ATTACK = 1 << 1,
+ F_EV_SPREAD_DEFENSE = 1 << 2,
+ F_EV_SPREAD_SPEED = 1 << 3,
+ F_EV_SPREAD_SP_ATTACK = 1 << 4,
+ F_EV_SPREAD_SP_DEFENSE = 1 << 5,
+};
+
+enum
+{
+ BATTLE_TOWER_ITEM_NONE,
+ BATTLE_TOWER_ITEM_KINGS_ROCK,
+ BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ BATTLE_TOWER_ITEM_ORAN_BERRY,
+ BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ BATTLE_TOWER_ITEM_HARD_STONE,
+ BATTLE_TOWER_ITEM_FOCUS_BAND,
+ BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ BATTLE_TOWER_ITEM_MIRACLE_SEED,
+ BATTLE_TOWER_ITEM_BERRY_JUICE,
+ BATTLE_TOWER_ITEM_MACHO_BRACE,
+ BATTLE_TOWER_ITEM_SILVER_POWDER,
+ BATTLE_TOWER_ITEM_CHERI_BERRY,
+ BATTLE_TOWER_ITEM_BLACK_GLASSES,
+ BATTLE_TOWER_ITEM_BLACK_BELT,
+ BATTLE_TOWER_ITEM_SOUL_DEW,
+ BATTLE_TOWER_ITEM_CHOICE_BAND,
+ BATTLE_TOWER_ITEM_MAGNET,
+ BATTLE_TOWER_ITEM_SILK_SCARF,
+ BATTLE_TOWER_ITEM_WHITE_HERB,
+ BATTLE_TOWER_ITEM_DEEP_SEA_SCALE,
+ BATTLE_TOWER_ITEM_DEEP_SEA_TOOTH,
+ BATTLE_TOWER_ITEM_MYSTIC_WATER,
+ BATTLE_TOWER_ITEM_SHARP_BEAK,
+ BATTLE_TOWER_ITEM_QUICK_CLAW,
+ BATTLE_TOWER_ITEM_LEFTOVERS,
+ BATTLE_TOWER_ITEM_RAWST_BERRY,
+ BATTLE_TOWER_ITEM_LIGHT_BALL,
+ BATTLE_TOWER_ITEM_POISON_BARB,
+ BATTLE_TOWER_ITEM_NEVER_MELT_ICE,
+ BATTLE_TOWER_ITEM_ASPEAR_BERRY,
+ BATTLE_TOWER_ITEM_SPELL_TAG,
+ BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ BATTLE_TOWER_ITEM_LEPPA_BERRY,
+ BATTLE_TOWER_ITEM_SCOPE_LENS,
+ BATTLE_TOWER_ITEM_TWISTED_SPOON,
+ BATTLE_TOWER_ITEM_METAL_COAT,
+ BATTLE_TOWER_ITEM_MENTAL_HERB,
+ BATTLE_TOWER_ITEM_CHARCOAL,
+ BATTLE_TOWER_ITEM_PECHA_BERRY,
+ BATTLE_TOWER_ITEM_SOFT_SAND,
+ BATTLE_TOWER_ITEM_LUM_BERRY,
+ BATTLE_TOWER_ITEM_DRAGON_SCALE,
+ BATTLE_TOWER_ITEM_DRAGON_FANG,
+ BATTLE_TOWER_ITEM_IAPAPA_BERRY,
+ BATTLE_TOWER_ITEM_WIKI_BERRY,
+ BATTLE_TOWER_ITEM_SEA_INCENSE,
+ BATTLE_TOWER_ITEM_SHELL_BELL,
+ BATTLE_TOWER_ITEM_SALAC_BERRY,
+ BATTLE_TOWER_ITEM_LANSAT_BERRY,
+ BATTLE_TOWER_ITEM_APICOT_BERRY,
+ BATTLE_TOWER_ITEM_STARF_BERRY,
+ BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ BATTLE_TOWER_ITEM_STICK,
+ BATTLE_TOWER_ITEM_LAX_INCENSE,
+ BATTLE_TOWER_ITEM_AGUAV_BERRY,
+ BATTLE_TOWER_ITEM_FIGY_BERRY,
+ BATTLE_TOWER_ITEM_THICK_CLUB,
+ BATTLE_TOWER_ITEM_MAGO_BERRY,
+ BATTLE_TOWER_ITEM_METAL_POWDER,
+ BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ BATTLE_TOWER_ITEM_LUCKY_PUNCH,
+ BATTLE_TOWER_ITEM_GANLON_BERRY,
+};
+
+struct BattleTowerPokemon
+{
+ /*0x00*/u16 species;
+ /*0x02*/u8 heldItem; // entry in sBattleTowerHeldItems
+ /*0x03*/u8 teamFlags;
+ /*0x04*/u16 moves[4];
+ /*0x0C*/u8 evSpread;
+ /*0x0D*/u8 nature;
+};
+
+u16 GetCurrentBattleTowerWinStreak(u8);
+void sub_8134AC0(struct BattleTowerRecord *);
u16 sub_8135D3C(u8);
-void sub_8135FF4(u8*);
+void SetEReaderTrainerName(u8*);
+u8 GetEReaderTrainerPicIndex(void);
+u8 GetEReaderTrainerClassNameIndex(void);
+void ValidateEReaderTrainer(void);
#endif // GUARD_BATTLE_TOWER_H
diff --git a/include/berry.h b/include/berry.h
index f0acbe0ad..a7ac5ba94 100644
--- a/include/berry.h
+++ b/include/berry.h
@@ -11,38 +11,39 @@ enum
BERRY_FIRMNESS_SUPER_HARD,
};
-void ClearEnigmaBerries(void);
+// berry stages
+enum
+{
+ BERRY_STAGE_NO_BERRY, // there is no tree planted and the soil is completely flat.
+ BERRY_STAGE_PLANTED,
+ BERRY_STAGE_SPROUTED,
+ BERRY_STAGE_TALLER,
+ BERRY_STAGE_FLOWERING,
+ BERRY_STAGE_BERRIES,
+ BERRY_STAGE_SPARKLING = 0xFF,
+};
+
void SetEnigmaBerry(u8 *src);
-u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry);
bool32 IsEnigmaBerryValid(void);
const struct Berry *GetBerryInfo(u8 berry);
-struct BerryTree *GetBerryTreeInfo(u8 id);
bool32 FieldObjectInteractionWaterBerryTree(void);
-bool8 IsPlayerFacingPlantedBerryTree(void);
+bool8 IsPlayerFacingUnplantedSoil(void);
bool8 TryToWaterBerryTree(void);
void ClearBerryTrees(void);
-bool32 BerryTreeGrow(struct BerryTree *tree);
void BerryTreeTimeUpdate(s32 minutes);
void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle);
void RemoveBerryTree(u8 id);
u8 GetBerryTypeByBerryTreeId(u8 id);
u8 GetStageByBerryTreeId(u8);
u8 ItemIdToBerryType(u16 item);
-u16 BerryTypeToItemId(u16 berry);
void GetBerryNameByBerryType(u8 berry, u8 *string);
void ResetBerryTreeSparkleFlag(u8 id);
-u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree);
-u8 GetNumStagesWateredByBerryTreeId(u8 id);
-u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water);
-u8 CalcBerryYield(struct BerryTree *tree);
-u8 GetBerryCountByBerryTreeId(u8 id);
-u16 GetStageDurationByBerryType(u8);
void FieldObjectInteractionGetBerryTreeData(void);
-void sub_80B4EE4(void);
+void Berry_FadeAndGoToBerryBagMenu(void);
void FieldObjectInteractionPlantBerryTree(void);
void FieldObjectInteractionPickBerryTree(void);
void FieldObjectInteractionRemoveBerryTree(void);
-u8 PlayerHasBerries(void);
+bool8 PlayerHasBerries(void);
void ResetBerryTreeSparkleFlags(void);
#endif // GUARD_BERRY_H
diff --git a/include/bike.h b/include/bike.h
index decbd1d49..28aa2037d 100644
--- a/include/bike.h
+++ b/include/bike.h
@@ -1,15 +1,17 @@
#ifndef GUARD_BIKE_H
#define GUARD_BIKE_H
-struct UnknownStruct1
+// the struct below is used for checking button combinations of the last input so that the acro can potentially perform a side/turn jump.
+// its possible that at some point Game Freak intended for the acro bike to have more complex tricks: but only the acro jump combinations can be seen in the final ROM.
+struct BikeHistoryInputInfo
{
- u32 unk0;
- u32 unk4;
- u32 unk8;
- u32 unkC;
- const u8 *unk10;
- const u8 *unk14;
- u32 unk18;
+ u32 dirHistoryMatch; // the direction you need to press
+ u32 abStartSelectHistoryMatch; // the button you need to press
+ u32 dirHistoryMask; // mask applied so that way only the recent nybble (the recent input) is checked
+ u32 abStartSelectHistoryMask; // mask applied so that way only the recent nybble (the recent input) is checked
+ const u8 *dirTimerHistoryList; // list of timers to check for direction before the button+dir combination can be verified.
+ const u8 *abStartSelectHistoryList; // list of timers to check for buttons before the button+dir combination can be verified.
+ u32 direction; // direction to jump
};
// Player speeds
@@ -22,7 +24,16 @@ enum
SPEED_FASTEST,
};
-//Acro bike states
+// mach bike transitions enum
+enum
+{
+ MACH_TRANS_FACE_DIRECTION,
+ MACH_TRANS_TURN_DIRECTION,
+ MACH_TRANS_KEEP_MOVING,
+ MACH_TRANS_START_MOVING
+};
+
+// Acro bike states
enum
{
ACRO_STATE_NORMAL,
@@ -30,27 +41,37 @@ enum
ACRO_STATE_WHEELIE_STANDING,
ACRO_STATE_BUNNY_HOP,
ACRO_STATE_WHEELIE_MOVING,
- ACRO_STATE_5,
- ACRO_STATE_6,
+ ACRO_STATE_SIDE_JUMP,
+ ACRO_STATE_TURN_JUMP,
};
-//Acro bike transitions
+// Acro bike transitions
enum
{
ACRO_TRANS_FACE_DIRECTION,
- ACRO_TRANS_NORMAL_TO_WHEELIE = 3,
+ ACRO_TRANS_TURN_DIRECTION,
+ ACRO_TRANS_MOVING,
+ ACRO_TRANS_NORMAL_TO_WHEELIE,
ACRO_TRANS_WHEELIE_TO_NORMAL,
+ ACRO_TRANS_WHEELIE_IDLE,
+ ACRO_TRANS_WHEELIE_HOPPING_STANDING,
+ ACRO_TRANS_WHEELIE_HOPPING_MOVING,
+ ACRO_TRANS_SIDE_JUMP,
+ ACRO_TRANS_TURN_JUMP,
+ ACRO_TRANS_WHEELIE_MOVING,
+ ACRO_TRANS_WHEELIE_RISING_MOVING,
+ ACRO_TRANS_WHEELIE_LOWERING_MOVING,
};
void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys);
-void sub_80E5B38(u16 a, u16 b);
+void Bike_TryAcroBikeHistoryUpdate(u16 a, u16 b);
bool8 IsRunningDisallowed(u8 tile);
bool8 IsBikingDisallowedByPlayer(void);
bool8 player_should_look_direction_be_enforced_upon_movement(void);
void GetOnOffBike(u8 var);
void BikeClearState(int var1, int var2);
-void sub_80E6010(u8 var);
+void Bike_UpdateBikeCounterSpeed(u8 var);
s16 GetPlayerSpeed(void);
-void sub_80E6084(void);
+void Bike_HandleBumpySlopeJump(void);
#endif
diff --git a/include/constants/abilities.h b/include/constants/abilities.h
new file mode 100644
index 000000000..4e2c4056c
--- /dev/null
+++ b/include/constants/abilities.h
@@ -0,0 +1,83 @@
+#ifndef GUARD_CONSTANTS_ABILITIES_H
+#define GUARD_CONSTANTS_ABILITIES_H
+
+#define ABILITY_NONE 0
+#define ABILITY_STENCH 1
+#define ABILITY_DRIZZLE 2
+#define ABILITY_SPEED_BOOST 3
+#define ABILITY_BATTLE_ARMOR 4
+#define ABILITY_STURDY 5
+#define ABILITY_DAMP 6
+#define ABILITY_LIMBER 7
+#define ABILITY_SAND_VEIL 8
+#define ABILITY_STATIC 9
+#define ABILITY_VOLT_ABSORB 10
+#define ABILITY_WATER_ABSORB 11
+#define ABILITY_OBLIVIOUS 12
+#define ABILITY_CLOUD_NINE 13
+#define ABILITY_COMPOUND_EYES 14
+#define ABILITY_INSOMNIA 15
+#define ABILITY_COLOR_CHANGE 16
+#define ABILITY_IMMUNITY 17
+#define ABILITY_FLASH_FIRE 18
+#define ABILITY_SHIELD_DUST 19
+#define ABILITY_OWN_TEMPO 20
+#define ABILITY_SUCTION_CUPS 21
+#define ABILITY_INTIMIDATE 22
+#define ABILITY_SHADOW_TAG 23
+#define ABILITY_ROUGH_SKIN 24
+#define ABILITY_WONDER_GUARD 25
+#define ABILITY_LEVITATE 26
+#define ABILITY_EFFECT_SPORE 27
+#define ABILITY_SYNCHRONIZE 28
+#define ABILITY_CLEAR_BODY 29
+#define ABILITY_NATURAL_CURE 30
+#define ABILITY_LIGHTNING_ROD 31
+#define ABILITY_SERENE_GRACE 32
+#define ABILITY_SWIFT_SWIM 33
+#define ABILITY_CHLOROPHYLL 34
+#define ABILITY_ILLUMINATE 35
+#define ABILITY_TRACE 36
+#define ABILITY_HUGE_POWER 37
+#define ABILITY_POISON_POINT 38
+#define ABILITY_INNER_FOCUS 39
+#define ABILITY_MAGMA_ARMOR 40
+#define ABILITY_WATER_VEIL 41
+#define ABILITY_MAGNET_PULL 42
+#define ABILITY_SOUNDPROOF 43
+#define ABILITY_RAIN_DISH 44
+#define ABILITY_SAND_STREAM 45
+#define ABILITY_PRESSURE 46
+#define ABILITY_THICK_FAT 47
+#define ABILITY_EARLY_BIRD 48
+#define ABILITY_FLAME_BODY 49
+#define ABILITY_RUN_AWAY 50
+#define ABILITY_KEEN_EYE 51
+#define ABILITY_HYPER_CUTTER 52
+#define ABILITY_PICKUP 53
+#define ABILITY_TRUANT 54
+#define ABILITY_HUSTLE 55
+#define ABILITY_CUTE_CHARM 56
+#define ABILITY_PLUS 57
+#define ABILITY_MINUS 58
+#define ABILITY_FORECAST 59
+#define ABILITY_STICKY_HOLD 60
+#define ABILITY_SHED_SKIN 61
+#define ABILITY_GUTS 62
+#define ABILITY_MARVEL_SCALE 63
+#define ABILITY_LIQUID_OOZE 64
+#define ABILITY_OVERGROW 65
+#define ABILITY_BLAZE 66
+#define ABILITY_TORRENT 67
+#define ABILITY_SWARM 68
+#define ABILITY_ROCK_HEAD 69
+#define ABILITY_DROUGHT 70
+#define ABILITY_ARENA_TRAP 71
+#define ABILITY_VITAL_SPIRIT 72
+#define ABILITY_WHITE_SMOKE 73
+#define ABILITY_PURE_POWER 74
+#define ABILITY_SHELL_ARMOR 75
+#define ABILITY_CACOPHONY 76
+#define ABILITY_AIR_LOCK 77
+
+#endif // GUARD_CONSTANTS_ABILITIES_H
diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h
new file mode 100644
index 000000000..c0d433d1d
--- /dev/null
+++ b/include/constants/battle_move_effects.h
@@ -0,0 +1,219 @@
+#ifndef GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
+#define GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
+
+#define EFFECT_HIT 0
+#define EFFECT_SLEEP 1
+#define EFFECT_POISON_HIT 2
+#define EFFECT_ABSORB 3
+#define EFFECT_BURN_HIT 4
+#define EFFECT_FREEZE_HIT 5
+#define EFFECT_PARALYZE_HIT 6
+#define EFFECT_EXPLOSION 7
+#define EFFECT_DREAM_EATER 8
+#define EFFECT_MIRROR_MOVE 9
+#define EFFECT_ATTACK_UP 10
+#define EFFECT_DEFENSE_UP 11
+#define EFFECT_SPEED_UP 12
+#define EFFECT_SPECIAL_ATTACK_UP 13
+#define EFFECT_SPECIAL_DEFENSE_UP 14
+#define EFFECT_ACCURACY_UP 15
+#define EFFECT_EVASION_UP 16
+#define EFFECT_ALWAYS_HIT 17
+#define EFFECT_ATTACK_DOWN 18
+#define EFFECT_DEFENSE_DOWN 19
+#define EFFECT_SPEED_DOWN 20
+#define EFFECT_SPECIAL_ATTACK_DOWN 21 // unused
+#define EFFECT_SPECIAL_DEFENSE_DOWN 22 // unused
+#define EFFECT_ACCURACY_DOWN 23
+#define EFFECT_EVASION_DOWN 24
+#define EFFECT_HAZE 25
+#define EFFECT_BIDE 26
+#define EFFECT_RAMPAGE 27
+#define EFFECT_ROAR 28
+#define EFFECT_MULTI_HIT 29
+#define EFFECT_CONVERSION 30
+#define EFFECT_FLINCH_HIT 31
+#define EFFECT_RESTORE_HP 32
+#define EFFECT_TOXIC 33
+#define EFFECT_PAY_DAY 34
+#define EFFECT_LIGHT_SCREEN 35
+#define EFFECT_TRI_ATTACK 36
+#define EFFECT_REST 37
+#define EFFECT_OHKO 38
+#define EFFECT_RAZOR_WIND 39
+#define EFFECT_SUPER_FANG 40
+#define EFFECT_DRAGON_RAGE 41
+#define EFFECT_TRAP 42
+#define EFFECT_HIGH_CRITICAL 43
+#define EFFECT_DOUBLE_HIT 44
+#define EFFECT_RECOIL_IF_MISS 45
+#define EFFECT_MIST 46
+#define EFFECT_FOCUS_ENERGY 47
+#define EFFECT_RECOIL 48
+#define EFFECT_CONFUSE 49
+#define EFFECT_ATTACK_UP_2 50
+#define EFFECT_DEFENSE_UP_2 51
+#define EFFECT_SPEED_UP_2 52
+#define EFFECT_SPECIAL_ATTACK_UP_2 53
+#define EFFECT_SPECIAL_DEFENSE_UP_2 54
+#define EFFECT_ACCURACY_UP_2 55
+#define EFFECT_EVASION_UP_2 56
+#define EFFECT_TRANSFORM 57
+#define EFFECT_ATTACK_DOWN_2 58
+#define EFFECT_DEFENSE_DOWN_2 59
+#define EFFECT_SPEED_DOWN_2 60
+#define EFFECT_SPECIAL_ATTACK_DOWN_2 61
+#define EFFECT_SPECIAL_DEFENSE_DOWN_2 62
+#define EFFECT_ACCURACY_DOWN_2 63
+#define EFFECT_EVASION_DOWN_2 64
+#define EFFECT_REFLECT 65
+#define EFFECT_POISON 66
+#define EFFECT_PARALYZE 67
+#define EFFECT_ATTACK_DOWN_HIT 68
+#define EFFECT_DEFENSE_DOWN_HIT 69
+#define EFFECT_SPEED_DOWN_HIT 70
+#define EFFECT_SPECIAL_ATTACK_DOWN_HIT 71
+#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT 72
+#define EFFECT_ACCURACY_DOWN_HIT 73
+#define EFFECT_EVASION_DOWN_HIT 74
+#define EFFECT_SKY_ATTACK 75
+#define EFFECT_CONFUSE_HIT 76
+#define EFFECT_TWINEEDLE 77
+#define EFFECT_VITAL_THROW 78
+#define EFFECT_SUBSTITUTE 79
+#define EFFECT_RECHARGE 80
+#define EFFECT_RAGE 81
+#define EFFECT_MIMIC 82
+#define EFFECT_METRONOME 83
+#define EFFECT_LEECH_SEED 84
+#define EFFECT_SPLASH 85
+#define EFFECT_DISABLE 86
+#define EFFECT_LEVEL_DAMAGE 87
+#define EFFECT_PSYWAVE 88
+#define EFFECT_COUNTER 89
+#define EFFECT_ENCORE 90
+#define EFFECT_PAIN_SPLIT 91
+#define EFFECT_SNORE 92
+#define EFFECT_CONVERSION_2 93
+#define EFFECT_LOCK_ON 94
+#define EFFECT_SKETCH 95
+#define EFFECT_UNUSED_60 96 // thaw
+#define EFFECT_SLEEP_TALK 97
+#define EFFECT_DESTINY_BOND 98
+#define EFFECT_FLAIL 99
+#define EFFECT_SPITE 100
+#define EFFECT_FALSE_SWIPE 101
+#define EFFECT_HEAL_BELL 102
+#define EFFECT_QUICK_ATTACK 103
+#define EFFECT_TRIPLE_KICK 104
+#define EFFECT_THIEF 105
+#define EFFECT_MEAN_LOOK 106
+#define EFFECT_NIGHTMARE 107
+#define EFFECT_MINIMIZE 108
+#define EFFECT_CURSE 109
+#define EFFECT_UNUSED_6E 110
+#define EFFECT_PROTECT 111
+#define EFFECT_SPIKES 112
+#define EFFECT_FORESIGHT 113
+#define EFFECT_PERISH_SONG 114
+#define EFFECT_SANDSTORM 115
+#define EFFECT_ENDURE 116
+#define EFFECT_ROLLOUT 117
+#define EFFECT_SWAGGER 118
+#define EFFECT_FURY_CUTTER 119
+#define EFFECT_ATTRACT 120
+#define EFFECT_RETURN 121
+#define EFFECT_PRESENT 122
+#define EFFECT_FRUSTRATION 123
+#define EFFECT_SAFEGUARD 124
+#define EFFECT_THAW_HIT 125
+#define EFFECT_MAGNITUDE 126
+#define EFFECT_BATON_PASS 127
+#define EFFECT_PURSUIT 128
+#define EFFECT_RAPID_SPIN 129
+#define EFFECT_SONICBOOM 130
+#define EFFECT_UNUSED_83 131
+#define EFFECT_MORNING_SUN 132
+#define EFFECT_SYNTHESIS 133
+#define EFFECT_MOONLIGHT 134
+#define EFFECT_HIDDEN_POWER 135
+#define EFFECT_RAIN_DANCE 136
+#define EFFECT_SUNNY_DAY 137
+#define EFFECT_DEFENSE_UP_HIT 138
+#define EFFECT_ATTACK_UP_HIT 139
+#define EFFECT_ALL_STATS_UP_HIT 140
+#define EFFECT_UNUSED_8D 141 // incomplete fake out in gen 2
+#define EFFECT_BELLY_DRUM 142
+#define EFFECT_PSYCH_UP 143
+#define EFFECT_MIRROR_COAT 144
+#define EFFECT_SKULL_BASH 145
+#define EFFECT_TWISTER 146
+#define EFFECT_EARTHQUAKE 147
+#define EFFECT_FUTURE_SIGHT 148
+#define EFFECT_GUST 149
+#define EFFECT_FLINCH_HIT_2 150 // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
+#define EFFECT_SOLARBEAM 151
+#define EFFECT_THUNDER 152
+#define EFFECT_TELEPORT 153
+#define EFFECT_BEAT_UP 154
+#define EFFECT_FLY 155
+#define EFFECT_DEFENSE_CURL 156
+#define EFFECT_SOFTBOILED 157
+#define EFFECT_FAKE_OUT 158
+#define EFFECT_UPROAR 159
+#define EFFECT_STOCKPILE 160
+#define EFFECT_SPIT_UP 161
+#define EFFECT_SWALLOW 162
+#define EFFECT_UNUSED_A3 163
+#define EFFECT_HAIL 164
+#define EFFECT_TORMENT 165
+#define EFFECT_FLATTER 166
+#define EFFECT_WILL_O_WISP 167
+#define EFFECT_MEMENTO 168
+#define EFFECT_FACADE 169
+#define EFFECT_FOCUS_PUNCH 170
+#define EFFECT_SMELLINGSALT 171
+#define EFFECT_FOLLOW_ME 172
+#define EFFECT_NATURE_POWER 173
+#define EFFECT_CHARGE 174
+#define EFFECT_TAUNT 175
+#define EFFECT_HELPING_HAND 176
+#define EFFECT_TRICK 177
+#define EFFECT_ROLE_PLAY 178
+#define EFFECT_WISH 179
+#define EFFECT_ASSIST 180
+#define EFFECT_INGRAIN 181
+#define EFFECT_SUPERPOWER 182
+#define EFFECT_MAGIC_COAT 183
+#define EFFECT_RECYCLE 184
+#define EFFECT_REVENGE 185
+#define EFFECT_BRICK_BREAK 186
+#define EFFECT_YAWN 187
+#define EFFECT_KNOCK_OFF 188
+#define EFFECT_ENDEAVOR 189
+#define EFFECT_ERUPTION 190
+#define EFFECT_SKILL_SWAP 191
+#define EFFECT_IMPRISON 192
+#define EFFECT_REFRESH 193
+#define EFFECT_GRUDGE 194
+#define EFFECT_SNATCH 195
+#define EFFECT_LOW_KICK 196
+#define EFFECT_SECRET_POWER 197
+#define EFFECT_DOUBLE_EDGE 198
+#define EFFECT_TEETER_DANCE 199
+#define EFFECT_BLAZE_KICK 200
+#define EFFECT_MUD_SPORT 201
+#define EFFECT_POISON_FANG 202
+#define EFFECT_WEATHER_BALL 203
+#define EFFECT_OVERHEAT 204
+#define EFFECT_TICKLE 205
+#define EFFECT_COSMIC_POWER 206
+#define EFFECT_SKY_UPPERCUT 207
+#define EFFECT_BULK_UP 208
+#define EFFECT_POISON_TAIL 209
+#define EFFECT_WATER_SPORT 210
+#define EFFECT_CALM_MIND 211
+#define EFFECT_DRAGON_DANCE 212
+#define EFFECT_CAMOUFLAGE 213
+
+#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
diff --git a/include/constants/decorations.h b/include/constants/decorations.h
new file mode 100644
index 000000000..2e3558721
--- /dev/null
+++ b/include/constants/decorations.h
@@ -0,0 +1,126 @@
+#ifndef GUARD_CONSTANTS_DECORATIONS_H
+#define GUARD_CONSTANTS_DECORATIONS_H
+
+#define DECOR_NONE 0
+#define DECOR_SMALL_DESK 1
+#define DECOR_POKEMON_DESK 2
+#define DECOR_HEAVY_DESK 3
+#define DECOR_RAGGED_DESK 4
+#define DECOR_COMFORT_DESK 5
+#define DECOR_PRETTY_DESK 6
+#define DECOR_BRICK_DESK 7
+#define DECOR_CAMP_DESK 8
+#define DECOR_HARD_DESK 9
+#define DECOR_SMALL_CHAIR 10
+#define DECOR_POKEMON_CHAIR 11
+#define DECOR_HEAVY_CHAIR 12
+#define DECOR_PRETTY_CHAIR 13
+#define DECOR_COMFORT_CHAIR 14
+#define DECOR_RAGGED_CHAIR 15
+#define DECOR_BRICK_CHAIR 16
+#define DECOR_CAMP_CHAIR 17
+#define DECOR_HARD_CHAIR 18
+#define DECOR_RED_PLANT 19
+#define DECOR_TROPICAL_PLANT 20
+#define DECOR_PRETTY_FLOWERS 21
+#define DECOR_COLORFUL_PLANT 22
+#define DECOR_BIG_PLANT 23
+#define DECOR_GORGEOUS_PLANT 24
+#define DECOR_RED_BRICK 25
+#define DECOR_YELLOW_BRICK 26
+#define DECOR_BLUE_BRICK 27
+#define DECOR_RED_BALLOON 28
+#define DECOR_BLUE_BALLOON 29
+#define DECOR_YELLOW_BALLOON 30
+#define DECOR_RED_TENT 31
+#define DECOR_BLUE_TENT 32
+#define DECOR_SOLID_BOARD 33
+#define DECOR_SLIDE 34
+#define DECOR_FENCE_LENGTH 35
+#define DECOR_FENCE_WIDTH 36
+#define DECOR_TIRE 37
+#define DECOR_STAND 38
+#define DECOR_MUD_BALL 39
+#define DECOR_BREAKABLE_DOOR 40
+#define DECOR_SAND_ORNAMENT 41
+#define DECOR_SILVER_SHIELD 42
+#define DECOR_GOLD_SHIELD 43
+#define DECOR_GLASS_ORNAMENT 44
+#define DECOR_TV 45
+#define DECOR_ROUND_TV 46
+#define DECOR_CUTE_TV 47
+#define DECOR_GLITTER_MAT 48
+#define DECOR_JUMP_MAT 49
+#define DECOR_SPIN_MAT 50
+#define DECOR_C_LOW_NOTE_MAT 51
+#define DECOR_D_NOTE_MAT 52
+#define DECOR_E_NOTE_MAT 53
+#define DECOR_F_NOTE_MAT 54
+#define DECOR_G_NOTE_MAT 55
+#define DECOR_A_NOTE_MAT 56
+#define DECOR_B_NOTE_MAT 57
+#define DECOR_C_HIGH_NOTE_MAT 58
+#define DECOR_SURF_MAT 59
+#define DECOR_THUNDER_MAT 60
+#define DECOR_FIRE_BLAST_MAT 61
+#define DECOR_POWDER_SNOW_MAT 62
+#define DECOR_ATTRACT_MAT 63
+#define DECOR_FISSURE_MAT 64
+#define DECOR_SPIKES_MAT 65
+#define DECOR_BALL_POSTER 66
+#define DECOR_GREEN_POSTER 67
+#define DECOR_RED_POSTER 68
+#define DECOR_BLUE_POSTER 69
+#define DECOR_CUTE_POSTER 70
+#define DECOR_PIKA_POSTER 71
+#define DECOR_LONG_POSTER 72
+#define DECOR_SEA_POSTER 73
+#define DECOR_SKY_POSTER 74
+#define DECOR_KISS_POSTER 75
+#define DECOR_PICHU_DOLL 76
+#define DECOR_PIKACHU_DOLL 77
+#define DECOR_MARILL_DOLL 78
+#define DECOR_TOGEPI_DOLL 79
+#define DECOR_CYNDAQUIL_DOLL 80
+#define DECOR_CHIKORITA_DOLL 81
+#define DECOR_TOTODILE_DOLL 82
+#define DECOR_JIGGLYPUFF_DOLL 83
+#define DECOR_MEOWTH_DOLL 84
+#define DECOR_CLEFAIRY_DOLL 85
+#define DECOR_DITTO_DOLL 86
+#define DECOR_SMOOCHUM_DOLL 87
+#define DECOR_TREECKO_DOLL 88
+#define DECOR_TORCHIC_DOLL 89
+#define DECOR_MUDKIP_DOLL 90
+#define DECOR_DUSKULL_DOLL 91
+#define DECOR_WYNAUT_DOLL 92
+#define DECOR_BALTOY_DOLL 93
+#define DECOR_KECLEON_DOLL 94
+#define DECOR_AZURILL_DOLL 95
+#define DECOR_SKITTY_DOLL 96
+#define DECOR_SWABLU_DOLL 97
+#define DECOR_GULPIN_DOLL 98
+#define DECOR_LOTAD_DOLL 99
+#define DECOR_SEEDOT_DOLL 100
+#define DECOR_PIKA_CUSHION 101
+#define DECOR_ROUND_CUSHION 102
+#define DECOR_KISS_CUSHION 103
+#define DECOR_ZIGZAG_CUSHION 104
+#define DECOR_SPIN_CUSHION 105
+#define DECOR_DIAMOND_CUSHION 106
+#define DECOR_BALL_CUSHION 107
+#define DECOR_GRASS_CUSHION 108
+#define DECOR_FIRE_CUSHION 109
+#define DECOR_WATER_CUSHION 110
+#define DECOR_SNORLAX_DOLL 111
+#define DECOR_RHYDON_DOLL 112
+#define DECOR_LAPRAS_DOLL 113
+#define DECOR_VENUSAUR_DOLL 114
+#define DECOR_CHARIZARD_DOLL 115
+#define DECOR_BLASTOISE_DOLL 116
+#define DECOR_WAILMER_DOLL 117
+#define DECOR_REGIROCK_DOLL 118
+#define DECOR_REGICE_DOLL 119
+#define DECOR_REGISTEEL_DOLL 120
+
+#endif // GUARD_CONSTANTS_DECORATIONS_H
diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h
new file mode 100644
index 000000000..12350aebe
--- /dev/null
+++ b/include/constants/easy_chat.h
@@ -0,0 +1,1064 @@
+#ifndef GUARD_CONSTANTS_EASY_CHAT_H
+#define GUARD_CONSTANTS_EASY_CHAT_H
+
+#define EC_GROUP_POKEMON 0x0
+#define EC_GROUP_TRAINER 0x1
+#define EC_GROUP_STATUS 0x2
+#define EC_GROUP_BATTLE 0x3
+#define EC_GROUP_GREETINGS 0x4
+#define EC_GROUP_PEOPLE 0x5
+#define EC_GROUP_VOICES 0x6
+#define EC_GROUP_SPEECH 0x7
+#define EC_GROUP_ENDINGS 0x8
+#define EC_GROUP_FEELINGS 0x9
+#define EC_GROUP_CONDITIONS 0xa
+#define EC_GROUP_ACTIONS 0xb
+#define EC_GROUP_LIFESTYLE 0xc
+#define EC_GROUP_HOBBIES 0xd
+#define EC_GROUP_TIME 0xe
+#define EC_GROUP_MISC 0xf
+#define EC_GROUP_ADJECTIVES 0x10
+#define EC_GROUP_EVENTS 0x11
+#define EC_GROUP_MOVE_1 0x12
+#define EC_GROUP_MOVE_2 0x13
+#define EC_GROUP_TRENDY_SAYING 0x14
+#define EC_GROUP_POKEMON_2 0x15
+
+// TRAINER
+#define EC_WORD_I_CHOOSE_YOU (EC_GROUP_TRAINER << 9) | 0x0
+#define EC_WORD_GOTCHA (EC_GROUP_TRAINER << 9) | 0x1
+#define EC_WORD_TRADE (EC_GROUP_TRAINER << 9) | 0x2
+#define EC_WORD_SAPPHIRE (EC_GROUP_TRAINER << 9) | 0x3
+#define EC_WORD_EVOLVE (EC_GROUP_TRAINER << 9) | 0x4
+#define EC_WORD_ENCYCLOPEDIA (EC_GROUP_TRAINER << 9) | 0x5
+#define EC_WORD_NATURE (EC_GROUP_TRAINER << 9) | 0x6
+#define EC_WORD_CENTER (EC_GROUP_TRAINER << 9) | 0x7
+#define EC_WORD_EGG (EC_GROUP_TRAINER << 9) | 0x8
+#define EC_WORD_LINK (EC_GROUP_TRAINER << 9) | 0x9
+#define EC_WORD_SP_ABILITY (EC_GROUP_TRAINER << 9) | 0xa
+#define EC_WORD_TRAINER (EC_GROUP_TRAINER << 9) | 0xb
+#define EC_WORD_VERSION (EC_GROUP_TRAINER << 9) | 0xc
+#define EC_WORD_POKENAV (EC_GROUP_TRAINER << 9) | 0xd
+#define EC_WORD_POKEMON (EC_GROUP_TRAINER << 9) | 0xe
+#define EC_WORD_GET (EC_GROUP_TRAINER << 9) | 0xf
+#define EC_WORD_POKEDEX (EC_GROUP_TRAINER << 9) | 0x10
+#define EC_WORD_RUBY (EC_GROUP_TRAINER << 9) | 0x11
+#define EC_WORD_LEVEL (EC_GROUP_TRAINER << 9) | 0x12
+
+// STATUS
+#define EC_WORD_DARK (EC_GROUP_STATUS << 9) | 0x0
+#define EC_WORD_STENCH (EC_GROUP_STATUS << 9) | 0x1
+#define EC_WORD_THICK_FAT (EC_GROUP_STATUS << 9) | 0x2
+#define EC_WORD_RAIN_DISH (EC_GROUP_STATUS << 9) | 0x3
+#define EC_WORD_DRIZZLE (EC_GROUP_STATUS << 9) | 0x4
+#define EC_WORD_ARENA_TRAP (EC_GROUP_STATUS << 9) | 0x5
+#define EC_WORD_INTIMIDATE (EC_GROUP_STATUS << 9) | 0x6
+#define EC_WORD_ROCK_HEAD (EC_GROUP_STATUS << 9) | 0x7
+#define EC_WORD_COLOR (EC_GROUP_STATUS << 9) | 0x8
+#define EC_WORD_ALT_COLOR (EC_GROUP_STATUS << 9) | 0x9
+#define EC_WORD_ROCK (EC_GROUP_STATUS << 9) | 0xa
+#define EC_WORD_BEAUTIFUL (EC_GROUP_STATUS << 9) | 0xb
+#define EC_WORD_BEAUTY (EC_GROUP_STATUS << 9) | 0xc
+#define EC_WORD_AIR_LOCK (EC_GROUP_STATUS << 9) | 0xd
+#define EC_WORD_PSYCHIC (EC_GROUP_STATUS << 9) | 0xe
+#define EC_WORD_HYPER_CUTTER (EC_GROUP_STATUS << 9) | 0xf
+#define EC_WORD_FIGHTING (EC_GROUP_STATUS << 9) | 0x10
+#define EC_WORD_SHADOW_TAG (EC_GROUP_STATUS << 9) | 0x11
+#define EC_WORD_SMART (EC_GROUP_STATUS << 9) | 0x12
+#define EC_WORD_SMARTNESS (EC_GROUP_STATUS << 9) | 0x13
+#define EC_WORD_SPEED_BOOST (EC_GROUP_STATUS << 9) | 0x14
+#define EC_WORD_COOL (EC_GROUP_STATUS << 9) | 0x15
+#define EC_WORD_COOLNESS (EC_GROUP_STATUS << 9) | 0x16
+#define EC_WORD_BATTLE_ARMOR (EC_GROUP_STATUS << 9) | 0x17
+#define EC_WORD_CUTE (EC_GROUP_STATUS << 9) | 0x18
+#define EC_WORD_CUTENESS (EC_GROUP_STATUS << 9) | 0x19
+#define EC_WORD_STURDY (EC_GROUP_STATUS << 9) | 0x1a
+#define EC_WORD_SUCTION_CUPS (EC_GROUP_STATUS << 9) | 0x1b
+#define EC_WORD_GRASS (EC_GROUP_STATUS << 9) | 0x1c
+#define EC_WORD_CLEAR_BODY (EC_GROUP_STATUS << 9) | 0x1d
+#define EC_WORD_TORRENT (EC_GROUP_STATUS << 9) | 0x1e
+#define EC_WORD_GHOST (EC_GROUP_STATUS << 9) | 0x1f
+#define EC_WORD_ICE (EC_GROUP_STATUS << 9) | 0x20
+#define EC_WORD_GUTS (EC_GROUP_STATUS << 9) | 0x21
+#define EC_WORD_ROUGH_SKIN (EC_GROUP_STATUS << 9) | 0x22
+#define EC_WORD_SHELL_ARMOR (EC_GROUP_STATUS << 9) | 0x23
+#define EC_WORD_NATURAL_CURE (EC_GROUP_STATUS << 9) | 0x24
+#define EC_WORD_DAMP (EC_GROUP_STATUS << 9) | 0x25
+#define EC_WORD_GROUND (EC_GROUP_STATUS << 9) | 0x26
+#define EC_WORD_LIMBER (EC_GROUP_STATUS << 9) | 0x27
+#define EC_WORD_MAGNET_PULL (EC_GROUP_STATUS << 9) | 0x28
+#define EC_WORD_WHITE_SMOKE (EC_GROUP_STATUS << 9) | 0x29
+#define EC_WORD_SYNCHRONIZE (EC_GROUP_STATUS << 9) | 0x2a
+#define EC_WORD_OVERGROW (EC_GROUP_STATUS << 9) | 0x2b
+#define EC_WORD_SWIFT_SWIM (EC_GROUP_STATUS << 9) | 0x2c
+#define EC_WORD_SAND_STREAM (EC_GROUP_STATUS << 9) | 0x2d
+#define EC_WORD_SAND_VEIL (EC_GROUP_STATUS << 9) | 0x2e
+#define EC_WORD_KEEN_EYE (EC_GROUP_STATUS << 9) | 0x2f
+#define EC_WORD_INNER_FOCUS (EC_GROUP_STATUS << 9) | 0x30
+#define EC_WORD_STATIC (EC_GROUP_STATUS << 9) | 0x31
+#define EC_WORD_TYPE (EC_GROUP_STATUS << 9) | 0x32
+#define EC_WORD_TOUGH (EC_GROUP_STATUS << 9) | 0x33
+#define EC_WORD_TOUGHNESS (EC_GROUP_STATUS << 9) | 0x34
+#define EC_WORD_SHED_SKIN (EC_GROUP_STATUS << 9) | 0x35
+#define EC_WORD_HUGE_POWER (EC_GROUP_STATUS << 9) | 0x36
+#define EC_WORD_VOLT_ABSORB (EC_GROUP_STATUS << 9) | 0x37
+#define EC_WORD_WATER_ABSORB (EC_GROUP_STATUS << 9) | 0x38
+#define EC_WORD_ELECTRIC (EC_GROUP_STATUS << 9) | 0x39
+#define EC_WORD_FORECAST (EC_GROUP_STATUS << 9) | 0x3a
+#define EC_WORD_SERENE_GRACE (EC_GROUP_STATUS << 9) | 0x3b
+#define EC_WORD_POISON (EC_GROUP_STATUS << 9) | 0x3c
+#define EC_WORD_POISON_POINT (EC_GROUP_STATUS << 9) | 0x3d
+#define EC_WORD_DRAGON (EC_GROUP_STATUS << 9) | 0x3e
+#define EC_WORD_TRACE (EC_GROUP_STATUS << 9) | 0x3f
+#define EC_WORD_OBLIVIOUS (EC_GROUP_STATUS << 9) | 0x40
+#define EC_WORD_TRUANT (EC_GROUP_STATUS << 9) | 0x41
+#define EC_WORD_RUN_AWAY (EC_GROUP_STATUS << 9) | 0x42
+#define EC_WORD_STICKY_HOLD (EC_GROUP_STATUS << 9) | 0x43
+#define EC_WORD_CLOUD_NINE (EC_GROUP_STATUS << 9) | 0x44
+#define EC_WORD_NORMAL (EC_GROUP_STATUS << 9) | 0x45
+#define EC_WORD_STEEL (EC_GROUP_STATUS << 9) | 0x46
+#define EC_WORD_ILLUMINATE (EC_GROUP_STATUS << 9) | 0x47
+#define EC_WORD_EARLY_BIRD (EC_GROUP_STATUS << 9) | 0x48
+#define EC_WORD_HUSTLE (EC_GROUP_STATUS << 9) | 0x49
+#define EC_WORD_SHINE (EC_GROUP_STATUS << 9) | 0x4a
+#define EC_WORD_FLYING (EC_GROUP_STATUS << 9) | 0x4b
+#define EC_WORD_DROUGHT (EC_GROUP_STATUS << 9) | 0x4c
+#define EC_WORD_LIGHTNINGROD (EC_GROUP_STATUS << 9) | 0x4d
+#define EC_WORD_COMPOUNDEYES (EC_GROUP_STATUS << 9) | 0x4e
+#define EC_WORD_MARVEL_SCALE (EC_GROUP_STATUS << 9) | 0x4f
+#define EC_WORD_WONDER_GUARD (EC_GROUP_STATUS << 9) | 0x50
+#define EC_WORD_INSOMNIA (EC_GROUP_STATUS << 9) | 0x51
+#define EC_WORD_LEVITATE (EC_GROUP_STATUS << 9) | 0x52
+#define EC_WORD_PLUS (EC_GROUP_STATUS << 9) | 0x53
+#define EC_WORD_PRESSURE (EC_GROUP_STATUS << 9) | 0x54
+#define EC_WORD_LIQUID_OOZE (EC_GROUP_STATUS << 9) | 0x55
+#define EC_WORD_COLOR_CHANGE (EC_GROUP_STATUS << 9) | 0x56
+#define EC_WORD_SOUNDPROOF (EC_GROUP_STATUS << 9) | 0x57
+#define EC_WORD_EFFECT_SPORE (EC_GROUP_STATUS << 9) | 0x58
+#define EC_WORD_PKRS (EC_GROUP_STATUS << 9) | 0x59
+#define EC_WORD_FIRE (EC_GROUP_STATUS << 9) | 0x5a
+#define EC_WORD_FLAME_BODY (EC_GROUP_STATUS << 9) | 0x5b
+#define EC_WORD_MINUS (EC_GROUP_STATUS << 9) | 0x5c
+#define EC_WORD_OWN_TEMPO (EC_GROUP_STATUS << 9) | 0x5d
+#define EC_WORD_MAGMA_ARMOR (EC_GROUP_STATUS << 9) | 0x5e
+#define EC_WORD_WATER (EC_GROUP_STATUS << 9) | 0x5f
+#define EC_WORD_WATER_VEIL (EC_GROUP_STATUS << 9) | 0x60
+#define EC_WORD_BUG (EC_GROUP_STATUS << 9) | 0x61
+#define EC_WORD_SWARM (EC_GROUP_STATUS << 9) | 0x62
+#define EC_WORD_CUTE_CHARM (EC_GROUP_STATUS << 9) | 0x63
+#define EC_WORD_IMMUNITY (EC_GROUP_STATUS << 9) | 0x64
+#define EC_WORD_BLAZE (EC_GROUP_STATUS << 9) | 0x65
+#define EC_WORD_PICKUP (EC_GROUP_STATUS << 9) | 0x66
+#define EC_WORD_PATTERN (EC_GROUP_STATUS << 9) | 0x67
+#define EC_WORD_FLASH_FIRE (EC_GROUP_STATUS << 9) | 0x68
+#define EC_WORD_VITAL_SPIRIT (EC_GROUP_STATUS << 9) | 0x69
+#define EC_WORD_CHLOROPHYLL (EC_GROUP_STATUS << 9) | 0x6a
+#define EC_WORD_PURE_POWER (EC_GROUP_STATUS << 9) | 0x6b
+#define EC_WORD_SHIELD_DUST (EC_GROUP_STATUS << 9) | 0x6c
+
+// BATTLE
+#define EC_WORD_MATCH_UP (EC_GROUP_BATTLE << 9) | 0x0
+#define EC_WORD_GO (EC_GROUP_BATTLE << 9) | 0x1
+#define EC_WORD_NO_1 (EC_GROUP_BATTLE << 9) | 0x2
+#define EC_WORD_DECIDE (EC_GROUP_BATTLE << 9) | 0x3
+#define EC_WORD_LET_ME_WIN (EC_GROUP_BATTLE << 9) | 0x4
+#define EC_WORD_WINS (EC_GROUP_BATTLE << 9) | 0x5
+#define EC_WORD_WIN (EC_GROUP_BATTLE << 9) | 0x6
+#define EC_WORD_WON (EC_GROUP_BATTLE << 9) | 0x7
+#define EC_WORD_IF_I_WIN (EC_GROUP_BATTLE << 9) | 0x8
+#define EC_WORD_WHEN_I_WIN (EC_GROUP_BATTLE << 9) | 0x9
+#define EC_WORD_CAN_T_WIN (EC_GROUP_BATTLE << 9) | 0xa
+#define EC_WORD_CAN_WIN (EC_GROUP_BATTLE << 9) | 0xb
+#define EC_WORD_NO_MATCH (EC_GROUP_BATTLE << 9) | 0xc
+#define EC_WORD_SPIRIT (EC_GROUP_BATTLE << 9) | 0xd
+#define EC_WORD_DECIDED (EC_GROUP_BATTLE << 9) | 0xe
+#define EC_WORD_TRUMP_CARD (EC_GROUP_BATTLE << 9) | 0xf
+#define EC_WORD_TAKE_THAT (EC_GROUP_BATTLE << 9) | 0x10
+#define EC_WORD_COME_ON (EC_GROUP_BATTLE << 9) | 0x11
+#define EC_WORD_ATTACK (EC_GROUP_BATTLE << 9) | 0x12
+#define EC_WORD_SURRENDER (EC_GROUP_BATTLE << 9) | 0x13
+#define EC_WORD_GUTSY (EC_GROUP_BATTLE << 9) | 0x14
+#define EC_WORD_TALENT (EC_GROUP_BATTLE << 9) | 0x15
+#define EC_WORD_STRATEGY (EC_GROUP_BATTLE << 9) | 0x16
+#define EC_WORD_SMITE (EC_GROUP_BATTLE << 9) | 0x17
+#define EC_WORD_MATCH (EC_GROUP_BATTLE << 9) | 0x18
+#define EC_WORD_VICTORY (EC_GROUP_BATTLE << 9) | 0x19
+#define EC_WORD_OFFENSIVE (EC_GROUP_BATTLE << 9) | 0x1a
+#define EC_WORD_SENSE (EC_GROUP_BATTLE << 9) | 0x1b
+#define EC_WORD_VERSUS (EC_GROUP_BATTLE << 9) | 0x1c
+#define EC_WORD_FIGHTS (EC_GROUP_BATTLE << 9) | 0x1d
+#define EC_WORD_POWER (EC_GROUP_BATTLE << 9) | 0x1e
+#define EC_WORD_CHALLENGE (EC_GROUP_BATTLE << 9) | 0x1f
+#define EC_WORD_STRONG (EC_GROUP_BATTLE << 9) | 0x20
+#define EC_WORD_TOO_STRONG (EC_GROUP_BATTLE << 9) | 0x21
+#define EC_WORD_GO_EASY (EC_GROUP_BATTLE << 9) | 0x22
+#define EC_WORD_FOE (EC_GROUP_BATTLE << 9) | 0x23
+#define EC_WORD_GENIUS (EC_GROUP_BATTLE << 9) | 0x24
+#define EC_WORD_LEGEND (EC_GROUP_BATTLE << 9) | 0x25
+#define EC_WORD_ESCAPE (EC_GROUP_BATTLE << 9) | 0x26
+#define EC_WORD_AIM (EC_GROUP_BATTLE << 9) | 0x27
+#define EC_WORD_BATTLE (EC_GROUP_BATTLE << 9) | 0x28
+#define EC_WORD_FIGHT (EC_GROUP_BATTLE << 9) | 0x29
+#define EC_WORD_RESUSCITATE (EC_GROUP_BATTLE << 9) | 0x2a
+#define EC_WORD_POINTS (EC_GROUP_BATTLE << 9) | 0x2b
+#define EC_WORD_SERIOUS (EC_GROUP_BATTLE << 9) | 0x2c
+#define EC_WORD_GIVE_UP (EC_GROUP_BATTLE << 9) | 0x2d
+#define EC_WORD_LOSS (EC_GROUP_BATTLE << 9) | 0x2e
+#define EC_WORD_IF_I_LOSE (EC_GROUP_BATTLE << 9) | 0x2f
+#define EC_WORD_LOST (EC_GROUP_BATTLE << 9) | 0x30
+#define EC_WORD_LOSE (EC_GROUP_BATTLE << 9) | 0x31
+#define EC_WORD_GUARD (EC_GROUP_BATTLE << 9) | 0x32
+#define EC_WORD_PARTNER (EC_GROUP_BATTLE << 9) | 0x33
+#define EC_WORD_REJECT (EC_GROUP_BATTLE << 9) | 0x34
+#define EC_WORD_ACCEPT (EC_GROUP_BATTLE << 9) | 0x35
+#define EC_WORD_INVINCIBLE (EC_GROUP_BATTLE << 9) | 0x36
+#define EC_WORD_RECEIVED (EC_GROUP_BATTLE << 9) | 0x37
+#define EC_WORD_EASY (EC_GROUP_BATTLE << 9) | 0x38
+#define EC_WORD_WEAK (EC_GROUP_BATTLE << 9) | 0x39
+#define EC_WORD_TOO_WEAK (EC_GROUP_BATTLE << 9) | 0x3a
+#define EC_WORD_PUSHOVER (EC_GROUP_BATTLE << 9) | 0x3b
+#define EC_WORD_LEADER (EC_GROUP_BATTLE << 9) | 0x3c
+#define EC_WORD_RULE (EC_GROUP_BATTLE << 9) | 0x3d
+#define EC_WORD_MOVE (EC_GROUP_BATTLE << 9) | 0x3e
+
+// GREETINGS
+#define EC_WORD_THANKS (EC_GROUP_GREETINGS << 9) | 0x0
+#define EC_WORD_YES (EC_GROUP_GREETINGS << 9) | 0x1
+#define EC_WORD_HERE_GOES (EC_GROUP_GREETINGS << 9) | 0x2
+#define EC_WORD_HERE_I_COME (EC_GROUP_GREETINGS << 9) | 0x3
+#define EC_WORD_HERE_IT_IS (EC_GROUP_GREETINGS << 9) | 0x4
+#define EC_WORD_YEAH (EC_GROUP_GREETINGS << 9) | 0x5
+#define EC_WORD_WELCOME (EC_GROUP_GREETINGS << 9) | 0x6
+#define EC_WORD_OI (EC_GROUP_GREETINGS << 9) | 0x7
+#define EC_WORD_HOW_DO (EC_GROUP_GREETINGS << 9) | 0x8
+#define EC_WORD_CONGRATS (EC_GROUP_GREETINGS << 9) | 0x9
+#define EC_WORD_GIVE_ME (EC_GROUP_GREETINGS << 9) | 0xa
+#define EC_WORD_SORRY (EC_GROUP_GREETINGS << 9) | 0xb
+#define EC_WORD_APOLOGIZE (EC_GROUP_GREETINGS << 9) | 0xc
+#define EC_WORD_FORGIVE (EC_GROUP_GREETINGS << 9) | 0xd
+#define EC_WORD_HEY_THERE (EC_GROUP_GREETINGS << 9) | 0xe
+#define EC_WORD_HELLO (EC_GROUP_GREETINGS << 9) | 0xf
+#define EC_WORD_GOOD_BYE (EC_GROUP_GREETINGS << 9) | 0x10
+#define EC_WORD_THANK_YOU (EC_GROUP_GREETINGS << 9) | 0x11
+#define EC_WORD_I_VE_ARRIVED (EC_GROUP_GREETINGS << 9) | 0x12
+#define EC_WORD_PARDON (EC_GROUP_GREETINGS << 9) | 0x13
+#define EC_WORD_EXCUSE (EC_GROUP_GREETINGS << 9) | 0x14
+#define EC_WORD_SEE_YA (EC_GROUP_GREETINGS << 9) | 0x15
+#define EC_WORD_EXCUSE_ME (EC_GROUP_GREETINGS << 9) | 0x16
+#define EC_WORD_WELL_THEN (EC_GROUP_GREETINGS << 9) | 0x17
+#define EC_WORD_GO_AHEAD (EC_GROUP_GREETINGS << 9) | 0x18
+#define EC_WORD_APPRECIATE (EC_GROUP_GREETINGS << 9) | 0x19
+#define EC_WORD_HEY_QUES (EC_GROUP_GREETINGS << 9) | 0x1a
+#define EC_WORD_WHAT_S_UP_QUES (EC_GROUP_GREETINGS << 9) | 0x1b
+#define EC_WORD_HUH_QUES (EC_GROUP_GREETINGS << 9) | 0x1c
+#define EC_WORD_NO (EC_GROUP_GREETINGS << 9) | 0x1d
+#define EC_WORD_HI (EC_GROUP_GREETINGS << 9) | 0x1e
+#define EC_WORD_YEAH_YEAH (EC_GROUP_GREETINGS << 9) | 0x1f
+#define EC_WORD_BYE_BYE (EC_GROUP_GREETINGS << 9) | 0x20
+#define EC_WORD_MEET_YOU (EC_GROUP_GREETINGS << 9) | 0x21
+#define EC_WORD_HEY (EC_GROUP_GREETINGS << 9) | 0x22
+#define EC_WORD_SMELL (EC_GROUP_GREETINGS << 9) | 0x23
+#define EC_WORD_LISTENING (EC_GROUP_GREETINGS << 9) | 0x24
+#define EC_WORD_HOO_HAH (EC_GROUP_GREETINGS << 9) | 0x25
+#define EC_WORD_YAHOO (EC_GROUP_GREETINGS << 9) | 0x26
+#define EC_WORD_YO (EC_GROUP_GREETINGS << 9) | 0x27
+#define EC_WORD_COME_OVER (EC_GROUP_GREETINGS << 9) | 0x28
+#define EC_WORD_COUNT_ON (EC_GROUP_GREETINGS << 9) | 0x29
+
+// PEOPLE
+#define EC_WORD_OPPONENT (EC_GROUP_PEOPLE << 9) | 0x0
+#define EC_WORD_I (EC_GROUP_PEOPLE << 9) | 0x1
+#define EC_WORD_YOU (EC_GROUP_PEOPLE << 9) | 0x2
+#define EC_WORD_YOURS (EC_GROUP_PEOPLE << 9) | 0x3
+#define EC_WORD_SON (EC_GROUP_PEOPLE << 9) | 0x4
+#define EC_WORD_YOUR (EC_GROUP_PEOPLE << 9) | 0x5
+#define EC_WORD_YOU_RE (EC_GROUP_PEOPLE << 9) | 0x6
+#define EC_WORD_YOU_VE (EC_GROUP_PEOPLE << 9) | 0x7
+#define EC_WORD_MOTHER (EC_GROUP_PEOPLE << 9) | 0x8
+#define EC_WORD_GRANDFATHER (EC_GROUP_PEOPLE << 9) | 0x9
+#define EC_WORD_UNCLE (EC_GROUP_PEOPLE << 9) | 0xa
+#define EC_WORD_FATHER (EC_GROUP_PEOPLE << 9) | 0xb
+#define EC_WORD_BOY (EC_GROUP_PEOPLE << 9) | 0xc
+#define EC_WORD_ADULT (EC_GROUP_PEOPLE << 9) | 0xd
+#define EC_WORD_BROTHER (EC_GROUP_PEOPLE << 9) | 0xe
+#define EC_WORD_SISTER (EC_GROUP_PEOPLE << 9) | 0xf
+#define EC_WORD_GRANDMOTHER (EC_GROUP_PEOPLE << 9) | 0x10
+#define EC_WORD_AUNT (EC_GROUP_PEOPLE << 9) | 0x11
+#define EC_WORD_PARENT (EC_GROUP_PEOPLE << 9) | 0x12
+#define EC_WORD_MAN (EC_GROUP_PEOPLE << 9) | 0x13
+#define EC_WORD_ME (EC_GROUP_PEOPLE << 9) | 0x14
+#define EC_WORD_GIRL (EC_GROUP_PEOPLE << 9) | 0x15
+#define EC_WORD_BABE (EC_GROUP_PEOPLE << 9) | 0x16
+#define EC_WORD_FAMILY (EC_GROUP_PEOPLE << 9) | 0x17
+#define EC_WORD_HER (EC_GROUP_PEOPLE << 9) | 0x18
+#define EC_WORD_HIM (EC_GROUP_PEOPLE << 9) | 0x19
+#define EC_WORD_HE (EC_GROUP_PEOPLE << 9) | 0x1a
+#define EC_WORD_PLACE (EC_GROUP_PEOPLE << 9) | 0x1b
+#define EC_WORD_DAUGHTER (EC_GROUP_PEOPLE << 9) | 0x1c
+#define EC_WORD_HIS (EC_GROUP_PEOPLE << 9) | 0x1d
+#define EC_WORD_HE_S (EC_GROUP_PEOPLE << 9) | 0x1e
+#define EC_WORD_AREN_T (EC_GROUP_PEOPLE << 9) | 0x1f
+#define EC_WORD_SIBLINGS (EC_GROUP_PEOPLE << 9) | 0x20
+#define EC_WORD_KID (EC_GROUP_PEOPLE << 9) | 0x21
+#define EC_WORD_CHILDREN (EC_GROUP_PEOPLE << 9) | 0x22
+#define EC_WORD_MR (EC_GROUP_PEOPLE << 9) | 0x23
+#define EC_WORD_MRS (EC_GROUP_PEOPLE << 9) | 0x24
+#define EC_WORD_MYSELF (EC_GROUP_PEOPLE << 9) | 0x25
+#define EC_WORD_I_WAS (EC_GROUP_PEOPLE << 9) | 0x26
+#define EC_WORD_TO_ME (EC_GROUP_PEOPLE << 9) | 0x27
+#define EC_WORD_MY (EC_GROUP_PEOPLE << 9) | 0x28
+#define EC_WORD_I_AM (EC_GROUP_PEOPLE << 9) | 0x29
+#define EC_WORD_I_VE (EC_GROUP_PEOPLE << 9) | 0x2a
+#define EC_WORD_WHO (EC_GROUP_PEOPLE << 9) | 0x2b
+#define EC_WORD_SOMEONE (EC_GROUP_PEOPLE << 9) | 0x2c
+#define EC_WORD_WHO_WAS (EC_GROUP_PEOPLE << 9) | 0x2d
+#define EC_WORD_TO_WHOM (EC_GROUP_PEOPLE << 9) | 0x2e
+#define EC_WORD_WHOSE (EC_GROUP_PEOPLE << 9) | 0x2f
+#define EC_WORD_WHO_IS (EC_GROUP_PEOPLE << 9) | 0x30
+#define EC_WORD_IT_S (EC_GROUP_PEOPLE << 9) | 0x31
+#define EC_WORD_LADY (EC_GROUP_PEOPLE << 9) | 0x32
+#define EC_WORD_FRIEND (EC_GROUP_PEOPLE << 9) | 0x33
+#define EC_WORD_ALLY (EC_GROUP_PEOPLE << 9) | 0x34
+#define EC_WORD_PERSON (EC_GROUP_PEOPLE << 9) | 0x35
+#define EC_WORD_DUDE (EC_GROUP_PEOPLE << 9) | 0x36
+#define EC_WORD_THEY (EC_GROUP_PEOPLE << 9) | 0x37
+#define EC_WORD_THEY_WERE (EC_GROUP_PEOPLE << 9) | 0x38
+#define EC_WORD_TO_THEM (EC_GROUP_PEOPLE << 9) | 0x39
+#define EC_WORD_THEIR (EC_GROUP_PEOPLE << 9) | 0x3a
+#define EC_WORD_THEY_RE (EC_GROUP_PEOPLE << 9) | 0x3b
+#define EC_WORD_THEY_VE (EC_GROUP_PEOPLE << 9) | 0x3c
+#define EC_WORD_WE (EC_GROUP_PEOPLE << 9) | 0x3d
+#define EC_WORD_BEEN (EC_GROUP_PEOPLE << 9) | 0x3e
+#define EC_WORD_TO_US (EC_GROUP_PEOPLE << 9) | 0x3f
+#define EC_WORD_OUR (EC_GROUP_PEOPLE << 9) | 0x40
+#define EC_WORD_WE_RE (EC_GROUP_PEOPLE << 9) | 0x41
+#define EC_WORD_RIVAL (EC_GROUP_PEOPLE << 9) | 0x42
+#define EC_WORD_WE_VE (EC_GROUP_PEOPLE << 9) | 0x43
+#define EC_WORD_WOMAN (EC_GROUP_PEOPLE << 9) | 0x44
+#define EC_WORD_SHE (EC_GROUP_PEOPLE << 9) | 0x45
+#define EC_WORD_SHE_WAS (EC_GROUP_PEOPLE << 9) | 0x46
+#define EC_WORD_TO_HER (EC_GROUP_PEOPLE << 9) | 0x47
+#define EC_WORD_HERS (EC_GROUP_PEOPLE << 9) | 0x48
+#define EC_WORD_SHE_IS (EC_GROUP_PEOPLE << 9) | 0x49
+#define EC_WORD_SOME (EC_GROUP_PEOPLE << 9) | 0x4a
+
+// VOICES
+#define EC_WORD_EXCL (EC_GROUP_VOICES << 9) | 0x0
+#define EC_WORD_EXCL_EXCL (EC_GROUP_VOICES << 9) | 0x1
+#define EC_WORD_QUES_EXCL (EC_GROUP_VOICES << 9) | 0x2
+#define EC_WORD_QUES (EC_GROUP_VOICES << 9) | 0x3
+#define EC_WORD_ELLIPSIS (EC_GROUP_VOICES << 9) | 0x4
+#define EC_WORD_ELLIPSIS_EXCL (EC_GROUP_VOICES << 9) | 0x5
+#define EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS (EC_GROUP_VOICES << 9) | 0x6
+#define EC_WORD_DASH (EC_GROUP_VOICES << 9) | 0x7
+#define EC_WORD_DASH_DASH_DASH (EC_GROUP_VOICES << 9) | 0x8
+#define EC_WORD_UH_OH (EC_GROUP_VOICES << 9) | 0x9
+#define EC_WORD_WAAAH (EC_GROUP_VOICES << 9) | 0xa
+#define EC_WORD_AHAHA (EC_GROUP_VOICES << 9) | 0xb
+#define EC_WORD_OH_QUES (EC_GROUP_VOICES << 9) | 0xc
+#define EC_WORD_NOPE (EC_GROUP_VOICES << 9) | 0xd
+#define EC_WORD_URGH (EC_GROUP_VOICES << 9) | 0xe
+#define EC_WORD_HMM (EC_GROUP_VOICES << 9) | 0xf
+#define EC_WORD_WHOAH (EC_GROUP_VOICES << 9) | 0x10
+#define EC_WORD_WROOOAAR_EXCL (EC_GROUP_VOICES << 9) | 0x11
+#define EC_WORD_WOW (EC_GROUP_VOICES << 9) | 0x12
+#define EC_WORD_GIGGLE (EC_GROUP_VOICES << 9) | 0x13
+#define EC_WORD_SIGH (EC_GROUP_VOICES << 9) | 0x14
+#define EC_WORD_UNBELIEVABLE (EC_GROUP_VOICES << 9) | 0x15
+#define EC_WORD_CRIES (EC_GROUP_VOICES << 9) | 0x16
+#define EC_WORD_AGREE (EC_GROUP_VOICES << 9) | 0x17
+#define EC_WORD_EH_QUES (EC_GROUP_VOICES << 9) | 0x18
+#define EC_WORD_CRY (EC_GROUP_VOICES << 9) | 0x19
+#define EC_WORD_EHEHE (EC_GROUP_VOICES << 9) | 0x1a
+#define EC_WORD_OI_OI_OI (EC_GROUP_VOICES << 9) | 0x1b
+#define EC_WORD_OH_YEAH (EC_GROUP_VOICES << 9) | 0x1c
+#define EC_WORD_OH (EC_GROUP_VOICES << 9) | 0x1d
+#define EC_WORD_OOPS (EC_GROUP_VOICES << 9) | 0x1e
+#define EC_WORD_SHOCKED (EC_GROUP_VOICES << 9) | 0x1f
+#define EC_WORD_EEK (EC_GROUP_VOICES << 9) | 0x20
+#define EC_WORD_GRAAAH (EC_GROUP_VOICES << 9) | 0x21
+#define EC_WORD_GWAHAHAHA (EC_GROUP_VOICES << 9) | 0x22
+#define EC_WORD_WAY (EC_GROUP_VOICES << 9) | 0x23
+#define EC_WORD_TCH (EC_GROUP_VOICES << 9) | 0x24
+#define EC_WORD_HEHE (EC_GROUP_VOICES << 9) | 0x25
+#define EC_WORD_HAH (EC_GROUP_VOICES << 9) | 0x26
+#define EC_WORD_YUP (EC_GROUP_VOICES << 9) | 0x27
+#define EC_WORD_HAHAHA (EC_GROUP_VOICES << 9) | 0x28
+#define EC_WORD_AIYEEH (EC_GROUP_VOICES << 9) | 0x29
+#define EC_WORD_HIYAH (EC_GROUP_VOICES << 9) | 0x2a
+#define EC_WORD_FUFUFU (EC_GROUP_VOICES << 9) | 0x2b
+#define EC_WORD_LOL (EC_GROUP_VOICES << 9) | 0x2c
+#define EC_WORD_SNORT (EC_GROUP_VOICES << 9) | 0x2d
+#define EC_WORD_HUMPH (EC_GROUP_VOICES << 9) | 0x2e
+#define EC_WORD_HEHEHE (EC_GROUP_VOICES << 9) | 0x2f
+#define EC_WORD_HEH (EC_GROUP_VOICES << 9) | 0x30
+#define EC_WORD_HOHOHO (EC_GROUP_VOICES << 9) | 0x31
+#define EC_WORD_UH_HUH (EC_GROUP_VOICES << 9) | 0x32
+#define EC_WORD_OH_DEAR (EC_GROUP_VOICES << 9) | 0x33
+#define EC_WORD_ARRGH (EC_GROUP_VOICES << 9) | 0x34
+#define EC_WORD_MUFUFU (EC_GROUP_VOICES << 9) | 0x35
+#define EC_WORD_MMM (EC_GROUP_VOICES << 9) | 0x36
+#define EC_WORD_OH_KAY (EC_GROUP_VOICES << 9) | 0x37
+#define EC_WORD_OKAY (EC_GROUP_VOICES << 9) | 0x38
+#define EC_WORD_LALALA (EC_GROUP_VOICES << 9) | 0x39
+#define EC_WORD_YAY (EC_GROUP_VOICES << 9) | 0x3a
+#define EC_WORD_AWW (EC_GROUP_VOICES << 9) | 0x3b
+#define EC_WORD_WOWEE (EC_GROUP_VOICES << 9) | 0x3c
+#define EC_WORD_GWAH (EC_GROUP_VOICES << 9) | 0x3d
+#define EC_WORD_WAHAHAHA (EC_GROUP_VOICES << 9) | 0x3e
+
+// SPEECH
+#define EC_WORD_LISTEN (EC_GROUP_SPEECH << 9) | 0x0
+#define EC_WORD_NOT_VERY (EC_GROUP_SPEECH << 9) | 0x1
+#define EC_WORD_MEAN (EC_GROUP_SPEECH << 9) | 0x2
+#define EC_WORD_LIE (EC_GROUP_SPEECH << 9) | 0x3
+#define EC_WORD_LAY (EC_GROUP_SPEECH << 9) | 0x4
+#define EC_WORD_RECOMMEND (EC_GROUP_SPEECH << 9) | 0x5
+#define EC_WORD_NITWIT (EC_GROUP_SPEECH << 9) | 0x6
+#define EC_WORD_QUITE (EC_GROUP_SPEECH << 9) | 0x7
+#define EC_WORD_FROM (EC_GROUP_SPEECH << 9) | 0x8
+#define EC_WORD_FEELING (EC_GROUP_SPEECH << 9) | 0x9
+#define EC_WORD_BUT (EC_GROUP_SPEECH << 9) | 0xa
+#define EC_WORD_HOWEVER (EC_GROUP_SPEECH << 9) | 0xb
+#define EC_WORD_CASE (EC_GROUP_SPEECH << 9) | 0xc
+#define EC_WORD_THE (EC_GROUP_SPEECH << 9) | 0xd
+#define EC_WORD_MISS (EC_GROUP_SPEECH << 9) | 0xe
+#define EC_WORD_HOW (EC_GROUP_SPEECH << 9) | 0xf
+#define EC_WORD_HIT (EC_GROUP_SPEECH << 9) | 0x10
+#define EC_WORD_ENOUGH (EC_GROUP_SPEECH << 9) | 0x11
+#define EC_WORD_A_LOT (EC_GROUP_SPEECH << 9) | 0x12
+#define EC_WORD_A_LITTLE (EC_GROUP_SPEECH << 9) | 0x13
+#define EC_WORD_ABSOLUTELY (EC_GROUP_SPEECH << 9) | 0x14
+#define EC_WORD_AND (EC_GROUP_SPEECH << 9) | 0x15
+#define EC_WORD_ONLY (EC_GROUP_SPEECH << 9) | 0x16
+#define EC_WORD_AROUND (EC_GROUP_SPEECH << 9) | 0x17
+#define EC_WORD_PROBABLY (EC_GROUP_SPEECH << 9) | 0x18
+#define EC_WORD_IF (EC_GROUP_SPEECH << 9) | 0x19
+#define EC_WORD_VERY (EC_GROUP_SPEECH << 9) | 0x1a
+#define EC_WORD_A_TINY_BIT (EC_GROUP_SPEECH << 9) | 0x1b
+#define EC_WORD_WILD (EC_GROUP_SPEECH << 9) | 0x1c
+#define EC_WORD_THAT_S (EC_GROUP_SPEECH << 9) | 0x1d
+#define EC_WORD_JUST (EC_GROUP_SPEECH << 9) | 0x1e
+#define EC_WORD_EVEN_SO (EC_GROUP_SPEECH << 9) | 0x1f
+#define EC_WORD_MUST_BE (EC_GROUP_SPEECH << 9) | 0x20
+#define EC_WORD_NATURALLY (EC_GROUP_SPEECH << 9) | 0x21
+#define EC_WORD_FOR_NOW (EC_GROUP_SPEECH << 9) | 0x22
+#define EC_WORD_UNDERSTOOD (EC_GROUP_SPEECH << 9) | 0x23
+#define EC_WORD_JOKING (EC_GROUP_SPEECH << 9) | 0x24
+#define EC_WORD_READY (EC_GROUP_SPEECH << 9) | 0x25
+#define EC_WORD_SOMETHING (EC_GROUP_SPEECH << 9) | 0x26
+#define EC_WORD_SOMEHOW (EC_GROUP_SPEECH << 9) | 0x27
+#define EC_WORD_ALTHOUGH (EC_GROUP_SPEECH << 9) | 0x28
+#define EC_WORD_ALSO (EC_GROUP_SPEECH << 9) | 0x29
+#define EC_WORD_PERFECT (EC_GROUP_SPEECH << 9) | 0x2a
+#define EC_WORD_AS_MUCH_AS (EC_GROUP_SPEECH << 9) | 0x2b
+#define EC_WORD_REALLY (EC_GROUP_SPEECH << 9) | 0x2c
+#define EC_WORD_TRULY (EC_GROUP_SPEECH << 9) | 0x2d
+#define EC_WORD_SERIOUSLY (EC_GROUP_SPEECH << 9) | 0x2e
+#define EC_WORD_TOTALLY (EC_GROUP_SPEECH << 9) | 0x2f
+#define EC_WORD_UNTIL (EC_GROUP_SPEECH << 9) | 0x30
+#define EC_WORD_AS_IF (EC_GROUP_SPEECH << 9) | 0x31
+#define EC_WORD_MOOD (EC_GROUP_SPEECH << 9) | 0x32
+#define EC_WORD_RATHER (EC_GROUP_SPEECH << 9) | 0x33
+#define EC_WORD_AWFULLY (EC_GROUP_SPEECH << 9) | 0x34
+#define EC_WORD_MODE (EC_GROUP_SPEECH << 9) | 0x35
+#define EC_WORD_MORE (EC_GROUP_SPEECH << 9) | 0x36
+#define EC_WORD_TOO_LATE (EC_GROUP_SPEECH << 9) | 0x37
+#define EC_WORD_FINALLY (EC_GROUP_SPEECH << 9) | 0x38
+#define EC_WORD_ANY (EC_GROUP_SPEECH << 9) | 0x39
+#define EC_WORD_INSTEAD (EC_GROUP_SPEECH << 9) | 0x3a
+#define EC_WORD_FANTASTIC (EC_GROUP_SPEECH << 9) | 0x3b
+
+// ENDINGS
+#define EC_WORD_WILL (EC_GROUP_ENDINGS << 9) | 0x0
+#define EC_WORD_WILL_BE_HERE (EC_GROUP_ENDINGS << 9) | 0x1
+#define EC_WORD_OR (EC_GROUP_ENDINGS << 9) | 0x2
+#define EC_WORD_TIMES (EC_GROUP_ENDINGS << 9) | 0x3
+#define EC_WORD_WONDER (EC_GROUP_ENDINGS << 9) | 0x4
+#define EC_WORD_IS_IT_QUES (EC_GROUP_ENDINGS << 9) | 0x5
+#define EC_WORD_BE (EC_GROUP_ENDINGS << 9) | 0x6
+#define EC_WORD_GIMME (EC_GROUP_ENDINGS << 9) | 0x7
+#define EC_WORD_COULD (EC_GROUP_ENDINGS << 9) | 0x8
+#define EC_WORD_LIKELY_TO (EC_GROUP_ENDINGS << 9) | 0x9
+#define EC_WORD_WOULD (EC_GROUP_ENDINGS << 9) | 0xa
+#define EC_WORD_IS (EC_GROUP_ENDINGS << 9) | 0xb
+#define EC_WORD_ISN_T_IT_QUES (EC_GROUP_ENDINGS << 9) | 0xc
+#define EC_WORD_LET_S (EC_GROUP_ENDINGS << 9) | 0xd
+#define EC_WORD_OTHER (EC_GROUP_ENDINGS << 9) | 0xe
+#define EC_WORD_ARE (EC_GROUP_ENDINGS << 9) | 0xf
+#define EC_WORD_WAS (EC_GROUP_ENDINGS << 9) | 0x10
+#define EC_WORD_WERE (EC_GROUP_ENDINGS << 9) | 0x11
+#define EC_WORD_THOSE (EC_GROUP_ENDINGS << 9) | 0x12
+#define EC_WORD_ISN_T (EC_GROUP_ENDINGS << 9) | 0x13
+#define EC_WORD_WON_T (EC_GROUP_ENDINGS << 9) | 0x14
+#define EC_WORD_CAN_T (EC_GROUP_ENDINGS << 9) | 0x15
+#define EC_WORD_CAN (EC_GROUP_ENDINGS << 9) | 0x16
+#define EC_WORD_DON_T (EC_GROUP_ENDINGS << 9) | 0x17
+#define EC_WORD_DO (EC_GROUP_ENDINGS << 9) | 0x18
+#define EC_WORD_DOES (EC_GROUP_ENDINGS << 9) | 0x19
+#define EC_WORD_WHOM (EC_GROUP_ENDINGS << 9) | 0x1a
+#define EC_WORD_WHICH (EC_GROUP_ENDINGS << 9) | 0x1b
+#define EC_WORD_WASN_T (EC_GROUP_ENDINGS << 9) | 0x1c
+#define EC_WORD_WEREN_T (EC_GROUP_ENDINGS << 9) | 0x1d
+#define EC_WORD_HAVE (EC_GROUP_ENDINGS << 9) | 0x1e
+#define EC_WORD_HAVEN_T (EC_GROUP_ENDINGS << 9) | 0x1f
+#define EC_WORD_A (EC_GROUP_ENDINGS << 9) | 0x20
+#define EC_WORD_AN (EC_GROUP_ENDINGS << 9) | 0x21
+#define EC_WORD_NOT (EC_GROUP_ENDINGS << 9) | 0x22
+#define EC_WORD_THERE (EC_GROUP_ENDINGS << 9) | 0x23
+#define EC_WORD_OK_QUES (EC_GROUP_ENDINGS << 9) | 0x24
+#define EC_WORD_SO (EC_GROUP_ENDINGS << 9) | 0x25
+#define EC_WORD_MAYBE (EC_GROUP_ENDINGS << 9) | 0x26
+#define EC_WORD_ABOUT (EC_GROUP_ENDINGS << 9) | 0x27
+#define EC_WORD_OVER (EC_GROUP_ENDINGS << 9) | 0x28
+#define EC_WORD_IT (EC_GROUP_ENDINGS << 9) | 0x29
+#define EC_WORD_ALL (EC_GROUP_ENDINGS << 9) | 0x2a
+#define EC_WORD_FOR (EC_GROUP_ENDINGS << 9) | 0x2b
+#define EC_WORD_ON (EC_GROUP_ENDINGS << 9) | 0x2c
+#define EC_WORD_OFF (EC_GROUP_ENDINGS << 9) | 0x2d
+#define EC_WORD_AS (EC_GROUP_ENDINGS << 9) | 0x2e
+#define EC_WORD_TO (EC_GROUP_ENDINGS << 9) | 0x2f
+#define EC_WORD_WITH (EC_GROUP_ENDINGS << 9) | 0x30
+#define EC_WORD_BETTER (EC_GROUP_ENDINGS << 9) | 0x31
+#define EC_WORD_EVER (EC_GROUP_ENDINGS << 9) | 0x32
+#define EC_WORD_SINCE (EC_GROUP_ENDINGS << 9) | 0x33
+#define EC_WORD_OF (EC_GROUP_ENDINGS << 9) | 0x34
+#define EC_WORD_BELONGS_TO (EC_GROUP_ENDINGS << 9) | 0x35
+#define EC_WORD_AT (EC_GROUP_ENDINGS << 9) | 0x36
+#define EC_WORD_IN (EC_GROUP_ENDINGS << 9) | 0x37
+#define EC_WORD_OUT (EC_GROUP_ENDINGS << 9) | 0x38
+#define EC_WORD_TOO (EC_GROUP_ENDINGS << 9) | 0x39
+#define EC_WORD_LIKE (EC_GROUP_ENDINGS << 9) | 0x3a
+#define EC_WORD_DID (EC_GROUP_ENDINGS << 9) | 0x3b
+#define EC_WORD_DIDN_T (EC_GROUP_ENDINGS << 9) | 0x3c
+#define EC_WORD_DOESN_T (EC_GROUP_ENDINGS << 9) | 0x3d
+#define EC_WORD_WITHOUT (EC_GROUP_ENDINGS << 9) | 0x3e
+#define EC_WORD_AFTER (EC_GROUP_ENDINGS << 9) | 0x3f
+#define EC_WORD_BEFORE (EC_GROUP_ENDINGS << 9) | 0x40
+#define EC_WORD_WHILE (EC_GROUP_ENDINGS << 9) | 0x41
+#define EC_WORD_THAN (EC_GROUP_ENDINGS << 9) | 0x42
+#define EC_WORD_ONCE (EC_GROUP_ENDINGS << 9) | 0x43
+#define EC_WORD_ANYWHERE (EC_GROUP_ENDINGS << 9) | 0x44
+
+// FEELINGS
+#define EC_WORD_MEET (EC_GROUP_FEELINGS << 9) | 0x0
+#define EC_WORD_PLAY (EC_GROUP_FEELINGS << 9) | 0x1
+#define EC_WORD_HURRIED (EC_GROUP_FEELINGS << 9) | 0x2
+#define EC_WORD_GOES (EC_GROUP_FEELINGS << 9) | 0x3
+#define EC_WORD_GIDDY (EC_GROUP_FEELINGS << 9) | 0x4
+#define EC_WORD_HAPPY (EC_GROUP_FEELINGS << 9) | 0x5
+#define EC_WORD_HAPPINESS (EC_GROUP_FEELINGS << 9) | 0x6
+#define EC_WORD_EXCITE (EC_GROUP_FEELINGS << 9) | 0x7
+#define EC_WORD_IMPORTANT (EC_GROUP_FEELINGS << 9) | 0x8
+#define EC_WORD_FUNNY (EC_GROUP_FEELINGS << 9) | 0x9
+#define EC_WORD_GOT (EC_GROUP_FEELINGS << 9) | 0xa
+#define EC_WORD_GO_HOME (EC_GROUP_FEELINGS << 9) | 0xb
+#define EC_WORD_DISAPPOINTED (EC_GROUP_FEELINGS << 9) | 0xc
+#define EC_WORD_DISAPPOINTS (EC_GROUP_FEELINGS << 9) | 0xd
+#define EC_WORD_SAD (EC_GROUP_FEELINGS << 9) | 0xe
+#define EC_WORD_TRY (EC_GROUP_FEELINGS << 9) | 0xf
+#define EC_WORD_TRIES (EC_GROUP_FEELINGS << 9) | 0x10
+#define EC_WORD_HEARS (EC_GROUP_FEELINGS << 9) | 0x11
+#define EC_WORD_THINK (EC_GROUP_FEELINGS << 9) | 0x12
+#define EC_WORD_HEAR (EC_GROUP_FEELINGS << 9) | 0x13
+#define EC_WORD_WANTS (EC_GROUP_FEELINGS << 9) | 0x14
+#define EC_WORD_MISHEARD (EC_GROUP_FEELINGS << 9) | 0x15
+#define EC_WORD_DISLIKE (EC_GROUP_FEELINGS << 9) | 0x16
+#define EC_WORD_ANGRY (EC_GROUP_FEELINGS << 9) | 0x17
+#define EC_WORD_ANGER (EC_GROUP_FEELINGS << 9) | 0x18
+#define EC_WORD_SCARY (EC_GROUP_FEELINGS << 9) | 0x19
+#define EC_WORD_LONESOME (EC_GROUP_FEELINGS << 9) | 0x1a
+#define EC_WORD_DISAPPOINT (EC_GROUP_FEELINGS << 9) | 0x1b
+#define EC_WORD_JOY (EC_GROUP_FEELINGS << 9) | 0x1c
+#define EC_WORD_GETS (EC_GROUP_FEELINGS << 9) | 0x1d
+#define EC_WORD_NEVER (EC_GROUP_FEELINGS << 9) | 0x1e
+#define EC_WORD_DARN (EC_GROUP_FEELINGS << 9) | 0x1f
+#define EC_WORD_DOWNCAST (EC_GROUP_FEELINGS << 9) | 0x20
+#define EC_WORD_INCREDIBLE (EC_GROUP_FEELINGS << 9) | 0x21
+#define EC_WORD_LIKES (EC_GROUP_FEELINGS << 9) | 0x22
+#define EC_WORD_DISLIKES (EC_GROUP_FEELINGS << 9) | 0x23
+#define EC_WORD_BORING (EC_GROUP_FEELINGS << 9) | 0x24
+#define EC_WORD_CARE (EC_GROUP_FEELINGS << 9) | 0x25
+#define EC_WORD_CARES (EC_GROUP_FEELINGS << 9) | 0x26
+#define EC_WORD_ALL_RIGHT (EC_GROUP_FEELINGS << 9) | 0x27
+#define EC_WORD_ADORE (EC_GROUP_FEELINGS << 9) | 0x28
+#define EC_WORD_DISASTER (EC_GROUP_FEELINGS << 9) | 0x29
+#define EC_WORD_ENJOY (EC_GROUP_FEELINGS << 9) | 0x2a
+#define EC_WORD_ENJOYS (EC_GROUP_FEELINGS << 9) | 0x2b
+#define EC_WORD_EAT (EC_GROUP_FEELINGS << 9) | 0x2c
+#define EC_WORD_LACKING (EC_GROUP_FEELINGS << 9) | 0x2d
+#define EC_WORD_BAD (EC_GROUP_FEELINGS << 9) | 0x2e
+#define EC_WORD_HARD (EC_GROUP_FEELINGS << 9) | 0x2f
+#define EC_WORD_TERRIBLE (EC_GROUP_FEELINGS << 9) | 0x30
+#define EC_WORD_SHOULD (EC_GROUP_FEELINGS << 9) | 0x31
+#define EC_WORD_NICE (EC_GROUP_FEELINGS << 9) | 0x32
+#define EC_WORD_DRINK (EC_GROUP_FEELINGS << 9) | 0x33
+#define EC_WORD_SURPRISE (EC_GROUP_FEELINGS << 9) | 0x34
+#define EC_WORD_FEAR (EC_GROUP_FEELINGS << 9) | 0x35
+#define EC_WORD_WANT (EC_GROUP_FEELINGS << 9) | 0x36
+#define EC_WORD_WAIT (EC_GROUP_FEELINGS << 9) | 0x37
+#define EC_WORD_SATISFIED (EC_GROUP_FEELINGS << 9) | 0x38
+#define EC_WORD_SEE (EC_GROUP_FEELINGS << 9) | 0x39
+#define EC_WORD_RARE (EC_GROUP_FEELINGS << 9) | 0x3a
+#define EC_WORD_NEGATIVE (EC_GROUP_FEELINGS << 9) | 0x3b
+#define EC_WORD_DONE (EC_GROUP_FEELINGS << 9) | 0x3c
+#define EC_WORD_DANGER (EC_GROUP_FEELINGS << 9) | 0x3d
+#define EC_WORD_DEFEATED (EC_GROUP_FEELINGS << 9) | 0x3e
+#define EC_WORD_BEAT (EC_GROUP_FEELINGS << 9) | 0x3f
+#define EC_WORD_GREAT (EC_GROUP_FEELINGS << 9) | 0x40
+#define EC_WORD_ROMANTIC (EC_GROUP_FEELINGS << 9) | 0x41
+#define EC_WORD_QUESTION (EC_GROUP_FEELINGS << 9) | 0x42
+#define EC_WORD_UNDERSTAND (EC_GROUP_FEELINGS << 9) | 0x43
+#define EC_WORD_UNDERSTANDS (EC_GROUP_FEELINGS << 9) | 0x44
+
+// CONDITIONS
+#define EC_WORD_HOT (EC_GROUP_CONDITIONS << 9) | 0x0
+#define EC_WORD_EXISTS (EC_GROUP_CONDITIONS << 9) | 0x1
+#define EC_WORD_EXCESS (EC_GROUP_CONDITIONS << 9) | 0x2
+#define EC_WORD_APPROVED (EC_GROUP_CONDITIONS << 9) | 0x3
+#define EC_WORD_HAS (EC_GROUP_CONDITIONS << 9) | 0x4
+#define EC_WORD_GOOD (EC_GROUP_CONDITIONS << 9) | 0x5
+#define EC_WORD_LESS (EC_GROUP_CONDITIONS << 9) | 0x6
+#define EC_WORD_MOMENTUM (EC_GROUP_CONDITIONS << 9) | 0x7
+#define EC_WORD_GOING (EC_GROUP_CONDITIONS << 9) | 0x8
+#define EC_WORD_WEIRD (EC_GROUP_CONDITIONS << 9) | 0x9
+#define EC_WORD_BUSY (EC_GROUP_CONDITIONS << 9) | 0xa
+#define EC_WORD_TOGETHER (EC_GROUP_CONDITIONS << 9) | 0xb
+#define EC_WORD_FULL (EC_GROUP_CONDITIONS << 9) | 0xc
+#define EC_WORD_ABSENT (EC_GROUP_CONDITIONS << 9) | 0xd
+#define EC_WORD_BEING (EC_GROUP_CONDITIONS << 9) | 0xe
+#define EC_WORD_NEED (EC_GROUP_CONDITIONS << 9) | 0xf
+#define EC_WORD_TASTY (EC_GROUP_CONDITIONS << 9) | 0x10
+#define EC_WORD_SKILLED (EC_GROUP_CONDITIONS << 9) | 0x11
+#define EC_WORD_NOISY (EC_GROUP_CONDITIONS << 9) | 0x12
+#define EC_WORD_BIG (EC_GROUP_CONDITIONS << 9) | 0x13
+#define EC_WORD_LATE (EC_GROUP_CONDITIONS << 9) | 0x14
+#define EC_WORD_CLOSE (EC_GROUP_CONDITIONS << 9) | 0x15
+#define EC_WORD_DOCILE (EC_GROUP_CONDITIONS << 9) | 0x16
+#define EC_WORD_AMUSING (EC_GROUP_CONDITIONS << 9) | 0x17
+#define EC_WORD_ENTERTAINING (EC_GROUP_CONDITIONS << 9) | 0x18
+#define EC_WORD_PERFECTION (EC_GROUP_CONDITIONS << 9) | 0x19
+#define EC_WORD_PRETTY (EC_GROUP_CONDITIONS << 9) | 0x1a
+#define EC_WORD_HEALTHY (EC_GROUP_CONDITIONS << 9) | 0x1b
+#define EC_WORD_EXCELLENT (EC_GROUP_CONDITIONS << 9) | 0x1c
+#define EC_WORD_UPSIDE_DOWN (EC_GROUP_CONDITIONS << 9) | 0x1d
+#define EC_WORD_COLD (EC_GROUP_CONDITIONS << 9) | 0x1e
+#define EC_WORD_REFRESHING (EC_GROUP_CONDITIONS << 9) | 0x1f
+#define EC_WORD_UNAVOIDABLE (EC_GROUP_CONDITIONS << 9) | 0x20
+#define EC_WORD_MUCH (EC_GROUP_CONDITIONS << 9) | 0x21
+#define EC_WORD_OVERWHELMING (EC_GROUP_CONDITIONS << 9) | 0x22
+#define EC_WORD_FABULOUS (EC_GROUP_CONDITIONS << 9) | 0x23
+#define EC_WORD_ELSE (EC_GROUP_CONDITIONS << 9) | 0x24
+#define EC_WORD_EXPENSIVE (EC_GROUP_CONDITIONS << 9) | 0x25
+#define EC_WORD_CORRECT (EC_GROUP_CONDITIONS << 9) | 0x26
+#define EC_WORD_IMPOSSIBLE (EC_GROUP_CONDITIONS << 9) | 0x27
+#define EC_WORD_SMALL (EC_GROUP_CONDITIONS << 9) | 0x28
+#define EC_WORD_DIFFERENT (EC_GROUP_CONDITIONS << 9) | 0x29
+#define EC_WORD_TIRED (EC_GROUP_CONDITIONS << 9) | 0x2a
+#define EC_WORD_SKILL (EC_GROUP_CONDITIONS << 9) | 0x2b
+#define EC_WORD_TOP (EC_GROUP_CONDITIONS << 9) | 0x2c
+#define EC_WORD_NON_STOP (EC_GROUP_CONDITIONS << 9) | 0x2d
+#define EC_WORD_PREPOSTEROUS (EC_GROUP_CONDITIONS << 9) | 0x2e
+#define EC_WORD_NONE (EC_GROUP_CONDITIONS << 9) | 0x2f
+#define EC_WORD_NOTHING (EC_GROUP_CONDITIONS << 9) | 0x30
+#define EC_WORD_NATURAL (EC_GROUP_CONDITIONS << 9) | 0x31
+#define EC_WORD_BECOMES (EC_GROUP_CONDITIONS << 9) | 0x32
+#define EC_WORD_LUKEWARM (EC_GROUP_CONDITIONS << 9) | 0x33
+#define EC_WORD_FAST (EC_GROUP_CONDITIONS << 9) | 0x34
+#define EC_WORD_LOW (EC_GROUP_CONDITIONS << 9) | 0x35
+#define EC_WORD_AWFUL (EC_GROUP_CONDITIONS << 9) | 0x36
+#define EC_WORD_ALONE (EC_GROUP_CONDITIONS << 9) | 0x37
+#define EC_WORD_BORED (EC_GROUP_CONDITIONS << 9) | 0x38
+#define EC_WORD_SECRET (EC_GROUP_CONDITIONS << 9) | 0x39
+#define EC_WORD_MYSTERY (EC_GROUP_CONDITIONS << 9) | 0x3a
+#define EC_WORD_LACKS (EC_GROUP_CONDITIONS << 9) | 0x3b
+#define EC_WORD_BEST (EC_GROUP_CONDITIONS << 9) | 0x3c
+#define EC_WORD_LOUSY (EC_GROUP_CONDITIONS << 9) | 0x3d
+#define EC_WORD_MISTAKE (EC_GROUP_CONDITIONS << 9) | 0x3e
+#define EC_WORD_KIND (EC_GROUP_CONDITIONS << 9) | 0x3f
+#define EC_WORD_WELL (EC_GROUP_CONDITIONS << 9) | 0x40
+#define EC_WORD_WEAKENED (EC_GROUP_CONDITIONS << 9) | 0x41
+#define EC_WORD_SIMPLE (EC_GROUP_CONDITIONS << 9) | 0x42
+#define EC_WORD_SEEMS (EC_GROUP_CONDITIONS << 9) | 0x43
+#define EC_WORD_BADLY (EC_GROUP_CONDITIONS << 9) | 0x44
+
+// ACTIONS
+#define EC_WORD_MEETS (EC_GROUP_ACTIONS << 9) | 0x0
+#define EC_WORD_CONCEDE (EC_GROUP_ACTIONS << 9) | 0x1
+#define EC_WORD_GIVE (EC_GROUP_ACTIONS << 9) | 0x2
+#define EC_WORD_GIVES (EC_GROUP_ACTIONS << 9) | 0x3
+#define EC_WORD_PLAYED (EC_GROUP_ACTIONS << 9) | 0x4
+#define EC_WORD_PLAYS (EC_GROUP_ACTIONS << 9) | 0x5
+#define EC_WORD_COLLECT (EC_GROUP_ACTIONS << 9) | 0x6
+#define EC_WORD_WALKING (EC_GROUP_ACTIONS << 9) | 0x7
+#define EC_WORD_WALKS (EC_GROUP_ACTIONS << 9) | 0x8
+#define EC_WORD_SAYS (EC_GROUP_ACTIONS << 9) | 0x9
+#define EC_WORD_WENT (EC_GROUP_ACTIONS << 9) | 0xa
+#define EC_WORD_SAID (EC_GROUP_ACTIONS << 9) | 0xb
+#define EC_WORD_WAKE_UP (EC_GROUP_ACTIONS << 9) | 0xc
+#define EC_WORD_WAKES_UP (EC_GROUP_ACTIONS << 9) | 0xd
+#define EC_WORD_ANGERS (EC_GROUP_ACTIONS << 9) | 0xe
+#define EC_WORD_TEACH (EC_GROUP_ACTIONS << 9) | 0xf
+#define EC_WORD_TEACHES (EC_GROUP_ACTIONS << 9) | 0x10
+#define EC_WORD_PLEASE (EC_GROUP_ACTIONS << 9) | 0x11
+#define EC_WORD_LEARN (EC_GROUP_ACTIONS << 9) | 0x12
+#define EC_WORD_CHANGE (EC_GROUP_ACTIONS << 9) | 0x13
+#define EC_WORD_STORY (EC_GROUP_ACTIONS << 9) | 0x14
+#define EC_WORD_TRUST (EC_GROUP_ACTIONS << 9) | 0x15
+#define EC_WORD_LAVISH (EC_GROUP_ACTIONS << 9) | 0x16
+#define EC_WORD_LISTENS (EC_GROUP_ACTIONS << 9) | 0x17
+#define EC_WORD_HEARING (EC_GROUP_ACTIONS << 9) | 0x18
+#define EC_WORD_TRAINS (EC_GROUP_ACTIONS << 9) | 0x19
+#define EC_WORD_CHOOSE (EC_GROUP_ACTIONS << 9) | 0x1a
+#define EC_WORD_COME (EC_GROUP_ACTIONS << 9) | 0x1b
+#define EC_WORD_CAME (EC_GROUP_ACTIONS << 9) | 0x1c
+#define EC_WORD_SEARCH (EC_GROUP_ACTIONS << 9) | 0x1d
+#define EC_WORD_MAKE (EC_GROUP_ACTIONS << 9) | 0x1e
+#define EC_WORD_CAUSE (EC_GROUP_ACTIONS << 9) | 0x1f
+#define EC_WORD_KNOW (EC_GROUP_ACTIONS << 9) | 0x20
+#define EC_WORD_KNOWS (EC_GROUP_ACTIONS << 9) | 0x21
+#define EC_WORD_REFUSE (EC_GROUP_ACTIONS << 9) | 0x22
+#define EC_WORD_STORES (EC_GROUP_ACTIONS << 9) | 0x23
+#define EC_WORD_BRAG (EC_GROUP_ACTIONS << 9) | 0x24
+#define EC_WORD_IGNORANT (EC_GROUP_ACTIONS << 9) | 0x25
+#define EC_WORD_THINKS (EC_GROUP_ACTIONS << 9) | 0x26
+#define EC_WORD_BELIEVE (EC_GROUP_ACTIONS << 9) | 0x27
+#define EC_WORD_SLIDE (EC_GROUP_ACTIONS << 9) | 0x28
+#define EC_WORD_EATS (EC_GROUP_ACTIONS << 9) | 0x29
+#define EC_WORD_USE (EC_GROUP_ACTIONS << 9) | 0x2a
+#define EC_WORD_USES (EC_GROUP_ACTIONS << 9) | 0x2b
+#define EC_WORD_USING (EC_GROUP_ACTIONS << 9) | 0x2c
+#define EC_WORD_COULDN_T (EC_GROUP_ACTIONS << 9) | 0x2d
+#define EC_WORD_CAPABLE (EC_GROUP_ACTIONS << 9) | 0x2e
+#define EC_WORD_DISAPPEAR (EC_GROUP_ACTIONS << 9) | 0x2f
+#define EC_WORD_APPEAR (EC_GROUP_ACTIONS << 9) | 0x30
+#define EC_WORD_THROW (EC_GROUP_ACTIONS << 9) | 0x31
+#define EC_WORD_WORRY (EC_GROUP_ACTIONS << 9) | 0x32
+#define EC_WORD_SLEPT (EC_GROUP_ACTIONS << 9) | 0x33
+#define EC_WORD_SLEEP (EC_GROUP_ACTIONS << 9) | 0x34
+#define EC_WORD_RELEASE (EC_GROUP_ACTIONS << 9) | 0x35
+#define EC_WORD_DRINKS (EC_GROUP_ACTIONS << 9) | 0x36
+#define EC_WORD_RUNS (EC_GROUP_ACTIONS << 9) | 0x37
+#define EC_WORD_RUN (EC_GROUP_ACTIONS << 9) | 0x38
+#define EC_WORD_WORKS (EC_GROUP_ACTIONS << 9) | 0x39
+#define EC_WORD_WORKING (EC_GROUP_ACTIONS << 9) | 0x3a
+#define EC_WORD_TALKING (EC_GROUP_ACTIONS << 9) | 0x3b
+#define EC_WORD_TALK (EC_GROUP_ACTIONS << 9) | 0x3c
+#define EC_WORD_SINK (EC_GROUP_ACTIONS << 9) | 0x3d
+#define EC_WORD_SMACK (EC_GROUP_ACTIONS << 9) | 0x3e
+#define EC_WORD_PRETEND (EC_GROUP_ACTIONS << 9) | 0x3f
+#define EC_WORD_PRAISE (EC_GROUP_ACTIONS << 9) | 0x40
+#define EC_WORD_OVERDO (EC_GROUP_ACTIONS << 9) | 0x41
+#define EC_WORD_SHOW (EC_GROUP_ACTIONS << 9) | 0x42
+#define EC_WORD_LOOKS (EC_GROUP_ACTIONS << 9) | 0x43
+#define EC_WORD_SEES (EC_GROUP_ACTIONS << 9) | 0x44
+#define EC_WORD_SEEK (EC_GROUP_ACTIONS << 9) | 0x45
+#define EC_WORD_OWN (EC_GROUP_ACTIONS << 9) | 0x46
+#define EC_WORD_TAKE (EC_GROUP_ACTIONS << 9) | 0x47
+#define EC_WORD_ALLOW (EC_GROUP_ACTIONS << 9) | 0x48
+#define EC_WORD_FORGET (EC_GROUP_ACTIONS << 9) | 0x49
+#define EC_WORD_FORGETS (EC_GROUP_ACTIONS << 9) | 0x4a
+#define EC_WORD_APPEARS (EC_GROUP_ACTIONS << 9) | 0x4b
+#define EC_WORD_FAINT (EC_GROUP_ACTIONS << 9) | 0x4c
+#define EC_WORD_FAINTED (EC_GROUP_ACTIONS << 9) | 0x4d
+
+// LIFESTYLE
+#define EC_WORD_CHORES (EC_GROUP_LIFESTYLE << 9) | 0x0
+#define EC_WORD_HOME (EC_GROUP_LIFESTYLE << 9) | 0x1
+#define EC_WORD_MONEY (EC_GROUP_LIFESTYLE << 9) | 0x2
+#define EC_WORD_ALLOWANCE (EC_GROUP_LIFESTYLE << 9) | 0x3
+#define EC_WORD_BATH (EC_GROUP_LIFESTYLE << 9) | 0x4
+#define EC_WORD_CONVERSATION (EC_GROUP_LIFESTYLE << 9) | 0x5
+#define EC_WORD_SCHOOL (EC_GROUP_LIFESTYLE << 9) | 0x6
+#define EC_WORD_COMMEMORATE (EC_GROUP_LIFESTYLE << 9) | 0x7
+#define EC_WORD_HABIT (EC_GROUP_LIFESTYLE << 9) | 0x8
+#define EC_WORD_GROUP (EC_GROUP_LIFESTYLE << 9) | 0x9
+#define EC_WORD_WORD (EC_GROUP_LIFESTYLE << 9) | 0xa
+#define EC_WORD_STORE (EC_GROUP_LIFESTYLE << 9) | 0xb
+#define EC_WORD_SERVICE (EC_GROUP_LIFESTYLE << 9) | 0xc
+#define EC_WORD_WORK (EC_GROUP_LIFESTYLE << 9) | 0xd
+#define EC_WORD_SYSTEM (EC_GROUP_LIFESTYLE << 9) | 0xe
+#define EC_WORD_TRAIN (EC_GROUP_LIFESTYLE << 9) | 0xf
+#define EC_WORD_CLASS (EC_GROUP_LIFESTYLE << 9) | 0x10
+#define EC_WORD_LESSONS (EC_GROUP_LIFESTYLE << 9) | 0x11
+#define EC_WORD_INFORMATION (EC_GROUP_LIFESTYLE << 9) | 0x12
+#define EC_WORD_LIVING (EC_GROUP_LIFESTYLE << 9) | 0x13
+#define EC_WORD_TEACHER (EC_GROUP_LIFESTYLE << 9) | 0x14
+#define EC_WORD_TOURNAMENT (EC_GROUP_LIFESTYLE << 9) | 0x15
+#define EC_WORD_LETTER (EC_GROUP_LIFESTYLE << 9) | 0x16
+#define EC_WORD_EVENT (EC_GROUP_LIFESTYLE << 9) | 0x17
+#define EC_WORD_DIGITAL (EC_GROUP_LIFESTYLE << 9) | 0x18
+#define EC_WORD_TEST (EC_GROUP_LIFESTYLE << 9) | 0x19
+#define EC_WORD_DEPT_STORE (EC_GROUP_LIFESTYLE << 9) | 0x1a
+#define EC_WORD_TELEVISION (EC_GROUP_LIFESTYLE << 9) | 0x1b
+#define EC_WORD_PHONE (EC_GROUP_LIFESTYLE << 9) | 0x1c
+#define EC_WORD_ITEM (EC_GROUP_LIFESTYLE << 9) | 0x1d
+#define EC_WORD_NAME (EC_GROUP_LIFESTYLE << 9) | 0x1e
+#define EC_WORD_NEWS (EC_GROUP_LIFESTYLE << 9) | 0x1f
+#define EC_WORD_POPULAR (EC_GROUP_LIFESTYLE << 9) | 0x20
+#define EC_WORD_PARTY (EC_GROUP_LIFESTYLE << 9) | 0x21
+#define EC_WORD_STUDY (EC_GROUP_LIFESTYLE << 9) | 0x22
+#define EC_WORD_MACHINE (EC_GROUP_LIFESTYLE << 9) | 0x23
+#define EC_WORD_MAIL (EC_GROUP_LIFESTYLE << 9) | 0x24
+#define EC_WORD_MESSAGE (EC_GROUP_LIFESTYLE << 9) | 0x25
+#define EC_WORD_PROMISE (EC_GROUP_LIFESTYLE << 9) | 0x26
+#define EC_WORD_DREAM (EC_GROUP_LIFESTYLE << 9) | 0x27
+#define EC_WORD_KINDERGARTEN (EC_GROUP_LIFESTYLE << 9) | 0x28
+#define EC_WORD_LIFE (EC_GROUP_LIFESTYLE << 9) | 0x29
+#define EC_WORD_RADIO (EC_GROUP_LIFESTYLE << 9) | 0x2a
+#define EC_WORD_RENTAL (EC_GROUP_LIFESTYLE << 9) | 0x2b
+#define EC_WORD_WORLD (EC_GROUP_LIFESTYLE << 9) | 0x2c
+
+// HOBBIES
+#define EC_WORD_IDOL (EC_GROUP_HOBBIES << 9) | 0x0
+#define EC_WORD_ANIME (EC_GROUP_HOBBIES << 9) | 0x1
+#define EC_WORD_SONG (EC_GROUP_HOBBIES << 9) | 0x2
+#define EC_WORD_MOVIE (EC_GROUP_HOBBIES << 9) | 0x3
+#define EC_WORD_SWEETS (EC_GROUP_HOBBIES << 9) | 0x4
+#define EC_WORD_CHAT (EC_GROUP_HOBBIES << 9) | 0x5
+#define EC_WORD_CHILD_S_PLAY (EC_GROUP_HOBBIES << 9) | 0x6
+#define EC_WORD_TOYS (EC_GROUP_HOBBIES << 9) | 0x7
+#define EC_WORD_MUSIC (EC_GROUP_HOBBIES << 9) | 0x8
+#define EC_WORD_CARDS (EC_GROUP_HOBBIES << 9) | 0x9
+#define EC_WORD_SHOPPING (EC_GROUP_HOBBIES << 9) | 0xa
+#define EC_WORD_CAMERA (EC_GROUP_HOBBIES << 9) | 0xb
+#define EC_WORD_VIEWING (EC_GROUP_HOBBIES << 9) | 0xc
+#define EC_WORD_SPECTATOR (EC_GROUP_HOBBIES << 9) | 0xd
+#define EC_WORD_GOURMET (EC_GROUP_HOBBIES << 9) | 0xe
+#define EC_WORD_GAME (EC_GROUP_HOBBIES << 9) | 0xf
+#define EC_WORD_RPG (EC_GROUP_HOBBIES << 9) | 0x10
+#define EC_WORD_COLLECTION (EC_GROUP_HOBBIES << 9) | 0x11
+#define EC_WORD_COMPLETE (EC_GROUP_HOBBIES << 9) | 0x12
+#define EC_WORD_MAGAZINE (EC_GROUP_HOBBIES << 9) | 0x13
+#define EC_WORD_WALK (EC_GROUP_HOBBIES << 9) | 0x14
+#define EC_WORD_BIKE (EC_GROUP_HOBBIES << 9) | 0x15
+#define EC_WORD_HOBBY (EC_GROUP_HOBBIES << 9) | 0x16
+#define EC_WORD_SPORTS (EC_GROUP_HOBBIES << 9) | 0x17
+#define EC_WORD_SOFTWARE (EC_GROUP_HOBBIES << 9) | 0x18
+#define EC_WORD_SONGS (EC_GROUP_HOBBIES << 9) | 0x19
+#define EC_WORD_DIET (EC_GROUP_HOBBIES << 9) | 0x1a
+#define EC_WORD_TREASURE (EC_GROUP_HOBBIES << 9) | 0x1b
+#define EC_WORD_TRAVEL (EC_GROUP_HOBBIES << 9) | 0x1c
+#define EC_WORD_DANCE (EC_GROUP_HOBBIES << 9) | 0x1d
+#define EC_WORD_CHANNEL (EC_GROUP_HOBBIES << 9) | 0x1e
+#define EC_WORD_MAKING (EC_GROUP_HOBBIES << 9) | 0x1f
+#define EC_WORD_FISHING (EC_GROUP_HOBBIES << 9) | 0x20
+#define EC_WORD_DATE (EC_GROUP_HOBBIES << 9) | 0x21
+#define EC_WORD_DESIGN (EC_GROUP_HOBBIES << 9) | 0x22
+#define EC_WORD_LOCOMOTIVE (EC_GROUP_HOBBIES << 9) | 0x23
+#define EC_WORD_PLUSH_DOLL (EC_GROUP_HOBBIES << 9) | 0x24
+#define EC_WORD_PC (EC_GROUP_HOBBIES << 9) | 0x25
+#define EC_WORD_FLOWERS (EC_GROUP_HOBBIES << 9) | 0x26
+#define EC_WORD_HERO (EC_GROUP_HOBBIES << 9) | 0x27
+#define EC_WORD_NAP (EC_GROUP_HOBBIES << 9) | 0x28
+#define EC_WORD_HEROINE (EC_GROUP_HOBBIES << 9) | 0x29
+#define EC_WORD_FASHION (EC_GROUP_HOBBIES << 9) | 0x2a
+#define EC_WORD_ADVENTURE (EC_GROUP_HOBBIES << 9) | 0x2b
+#define EC_WORD_BOARD (EC_GROUP_HOBBIES << 9) | 0x2c
+#define EC_WORD_BALL (EC_GROUP_HOBBIES << 9) | 0x2d
+#define EC_WORD_BOOK (EC_GROUP_HOBBIES << 9) | 0x2e
+#define EC_WORD_FESTIVAL (EC_GROUP_HOBBIES << 9) | 0x2f
+#define EC_WORD_COMICS (EC_GROUP_HOBBIES << 9) | 0x30
+#define EC_WORD_HOLIDAY (EC_GROUP_HOBBIES << 9) | 0x31
+#define EC_WORD_PLANS (EC_GROUP_HOBBIES << 9) | 0x32
+#define EC_WORD_TRENDY (EC_GROUP_HOBBIES << 9) | 0x33
+#define EC_WORD_VACATION (EC_GROUP_HOBBIES << 9) | 0x34
+#define EC_WORD_LOOK (EC_GROUP_HOBBIES << 9) | 0x35
+
+// TIME
+#define EC_WORD_FALL (EC_GROUP_TIME << 9) | 0x0
+#define EC_WORD_MORNING (EC_GROUP_TIME << 9) | 0x1
+#define EC_WORD_TOMORROW (EC_GROUP_TIME << 9) | 0x2
+#define EC_WORD_LAST (EC_GROUP_TIME << 9) | 0x3
+#define EC_WORD_DAY (EC_GROUP_TIME << 9) | 0x4
+#define EC_WORD_SOMETIME (EC_GROUP_TIME << 9) | 0x5
+#define EC_WORD_ALWAYS (EC_GROUP_TIME << 9) | 0x6
+#define EC_WORD_CURRENT (EC_GROUP_TIME << 9) | 0x7
+#define EC_WORD_FOREVER (EC_GROUP_TIME << 9) | 0x8
+#define EC_WORD_DAYS (EC_GROUP_TIME << 9) | 0x9
+#define EC_WORD_END (EC_GROUP_TIME << 9) | 0xa
+#define EC_WORD_TUESDAY (EC_GROUP_TIME << 9) | 0xb
+#define EC_WORD_YESTERDAY (EC_GROUP_TIME << 9) | 0xc
+#define EC_WORD_TODAY (EC_GROUP_TIME << 9) | 0xd
+#define EC_WORD_FRIDAY (EC_GROUP_TIME << 9) | 0xe
+#define EC_WORD_MONDAY (EC_GROUP_TIME << 9) | 0xf
+#define EC_WORD_LATER (EC_GROUP_TIME << 9) | 0x10
+#define EC_WORD_EARLIER (EC_GROUP_TIME << 9) | 0x11
+#define EC_WORD_ANOTHER (EC_GROUP_TIME << 9) | 0x12
+#define EC_WORD_TIME (EC_GROUP_TIME << 9) | 0x13
+#define EC_WORD_FINISH (EC_GROUP_TIME << 9) | 0x14
+#define EC_WORD_WEDNESDAY (EC_GROUP_TIME << 9) | 0x15
+#define EC_WORD_SOON (EC_GROUP_TIME << 9) | 0x16
+#define EC_WORD_START (EC_GROUP_TIME << 9) | 0x17
+#define EC_WORD_MONTH (EC_GROUP_TIME << 9) | 0x18
+#define EC_WORD_STOP (EC_GROUP_TIME << 9) | 0x19
+#define EC_WORD_NOW (EC_GROUP_TIME << 9) | 0x1a
+#define EC_WORD_FINAL (EC_GROUP_TIME << 9) | 0x1b
+#define EC_WORD_NEXT (EC_GROUP_TIME << 9) | 0x1c
+#define EC_WORD_AGE (EC_GROUP_TIME << 9) | 0x1d
+#define EC_WORD_SATURDAY (EC_GROUP_TIME << 9) | 0x1e
+#define EC_WORD_SUMMER (EC_GROUP_TIME << 9) | 0x1f
+#define EC_WORD_SUNDAY (EC_GROUP_TIME << 9) | 0x20
+#define EC_WORD_BEGINNING (EC_GROUP_TIME << 9) | 0x21
+#define EC_WORD_SPRING (EC_GROUP_TIME << 9) | 0x22
+#define EC_WORD_DAYTIME (EC_GROUP_TIME << 9) | 0x23
+#define EC_WORD_WINTER (EC_GROUP_TIME << 9) | 0x24
+#define EC_WORD_DAILY (EC_GROUP_TIME << 9) | 0x25
+#define EC_WORD_OLDEN (EC_GROUP_TIME << 9) | 0x26
+#define EC_WORD_ALMOST (EC_GROUP_TIME << 9) | 0x27
+#define EC_WORD_NEARLY (EC_GROUP_TIME << 9) | 0x28
+#define EC_WORD_THURSDAY (EC_GROUP_TIME << 9) | 0x29
+#define EC_WORD_NIGHTTIME (EC_GROUP_TIME << 9) | 0x2a
+#define EC_WORD_NIGHT (EC_GROUP_TIME << 9) | 0x2b
+#define EC_WORD_WEEK (EC_GROUP_TIME << 9) | 0x2c
+
+// MISC
+#define EC_WORD_HIGHS (EC_GROUP_MISC << 9) | 0x0
+#define EC_WORD_LOWS (EC_GROUP_MISC << 9) | 0x1
+#define EC_WORD_UM (EC_GROUP_MISC << 9) | 0x2
+#define EC_WORD_REAR (EC_GROUP_MISC << 9) | 0x3
+#define EC_WORD_THINGS (EC_GROUP_MISC << 9) | 0x4
+#define EC_WORD_THING (EC_GROUP_MISC << 9) | 0x5
+#define EC_WORD_BELOW (EC_GROUP_MISC << 9) | 0x6
+#define EC_WORD_ABOVE (EC_GROUP_MISC << 9) | 0x7
+#define EC_WORD_BACK (EC_GROUP_MISC << 9) | 0x8
+#define EC_WORD_HIGH (EC_GROUP_MISC << 9) | 0x9
+#define EC_WORD_HERE (EC_GROUP_MISC << 9) | 0xa
+#define EC_WORD_INSIDE (EC_GROUP_MISC << 9) | 0xb
+#define EC_WORD_OUTSIDE (EC_GROUP_MISC << 9) | 0xc
+#define EC_WORD_BESIDE (EC_GROUP_MISC << 9) | 0xd
+#define EC_WORD_THIS_IS_IT_EXCL (EC_GROUP_MISC << 9) | 0xe
+#define EC_WORD_THIS (EC_GROUP_MISC << 9) | 0xf
+#define EC_WORD_EVERY (EC_GROUP_MISC << 9) | 0x10
+#define EC_WORD_THESE (EC_GROUP_MISC << 9) | 0x11
+#define EC_WORD_THESE_WERE (EC_GROUP_MISC << 9) | 0x12
+#define EC_WORD_DOWN (EC_GROUP_MISC << 9) | 0x13
+#define EC_WORD_THAT (EC_GROUP_MISC << 9) | 0x14
+#define EC_WORD_THOSE_ARE (EC_GROUP_MISC << 9) | 0x15
+#define EC_WORD_THOSE_WERE (EC_GROUP_MISC << 9) | 0x16
+#define EC_WORD_THAT_S_IT_EXCL (EC_GROUP_MISC << 9) | 0x17
+#define EC_WORD_AM (EC_GROUP_MISC << 9) | 0x18
+#define EC_WORD_THAT_WAS (EC_GROUP_MISC << 9) | 0x19
+#define EC_WORD_FRONT (EC_GROUP_MISC << 9) | 0x1a
+#define EC_WORD_UP (EC_GROUP_MISC << 9) | 0x1b
+#define EC_WORD_CHOICE (EC_GROUP_MISC << 9) | 0x1c
+#define EC_WORD_FAR (EC_GROUP_MISC << 9) | 0x1d
+#define EC_WORD_AWAY (EC_GROUP_MISC << 9) | 0x1e
+#define EC_WORD_NEAR (EC_GROUP_MISC << 9) | 0x1f
+#define EC_WORD_WHERE (EC_GROUP_MISC << 9) | 0x20
+#define EC_WORD_WHEN (EC_GROUP_MISC << 9) | 0x21
+#define EC_WORD_WHAT (EC_GROUP_MISC << 9) | 0x22
+#define EC_WORD_DEEP (EC_GROUP_MISC << 9) | 0x23
+#define EC_WORD_SHALLOW (EC_GROUP_MISC << 9) | 0x24
+#define EC_WORD_WHY (EC_GROUP_MISC << 9) | 0x25
+#define EC_WORD_CONFUSED (EC_GROUP_MISC << 9) | 0x26
+#define EC_WORD_OPPOSITE (EC_GROUP_MISC << 9) | 0x27
+#define EC_WORD_LEFT (EC_GROUP_MISC << 9) | 0x28
+#define EC_WORD_RIGHT (EC_GROUP_MISC << 9) | 0x29
+
+// ADJECTIVES
+#define EC_WORD_WANDERING (EC_GROUP_ADJECTIVES << 9) | 0x0
+#define EC_WORD_RICKETY (EC_GROUP_ADJECTIVES << 9) | 0x1
+#define EC_WORD_ROCK_SOLID (EC_GROUP_ADJECTIVES << 9) | 0x2
+#define EC_WORD_HUNGRY (EC_GROUP_ADJECTIVES << 9) | 0x3
+#define EC_WORD_TIGHT (EC_GROUP_ADJECTIVES << 9) | 0x4
+#define EC_WORD_TICKLISH (EC_GROUP_ADJECTIVES << 9) | 0x5
+#define EC_WORD_TWIRLING (EC_GROUP_ADJECTIVES << 9) | 0x6
+#define EC_WORD_SPIRALING (EC_GROUP_ADJECTIVES << 9) | 0x7
+#define EC_WORD_THIRSTY (EC_GROUP_ADJECTIVES << 9) | 0x8
+#define EC_WORD_LOLLING (EC_GROUP_ADJECTIVES << 9) | 0x9
+#define EC_WORD_SILKY (EC_GROUP_ADJECTIVES << 9) | 0xa
+#define EC_WORD_SADLY (EC_GROUP_ADJECTIVES << 9) | 0xb
+#define EC_WORD_HOPELESS (EC_GROUP_ADJECTIVES << 9) | 0xc
+#define EC_WORD_USELESS (EC_GROUP_ADJECTIVES << 9) | 0xd
+#define EC_WORD_DROOLING (EC_GROUP_ADJECTIVES << 9) | 0xe
+#define EC_WORD_EXCITING (EC_GROUP_ADJECTIVES << 9) | 0xf
+#define EC_WORD_THICK (EC_GROUP_ADJECTIVES << 9) | 0x10
+#define EC_WORD_SMOOTH (EC_GROUP_ADJECTIVES << 9) | 0x11
+#define EC_WORD_SLIMY (EC_GROUP_ADJECTIVES << 9) | 0x12
+#define EC_WORD_THIN (EC_GROUP_ADJECTIVES << 9) | 0x13
+#define EC_WORD_BREAK (EC_GROUP_ADJECTIVES << 9) | 0x14
+#define EC_WORD_VORACIOUS (EC_GROUP_ADJECTIVES << 9) | 0x15
+#define EC_WORD_SCATTER (EC_GROUP_ADJECTIVES << 9) | 0x16
+#define EC_WORD_AWESOME (EC_GROUP_ADJECTIVES << 9) | 0x17
+#define EC_WORD_WIMPY (EC_GROUP_ADJECTIVES << 9) | 0x18
+#define EC_WORD_WOBBLY (EC_GROUP_ADJECTIVES << 9) | 0x19
+#define EC_WORD_SHAKY (EC_GROUP_ADJECTIVES << 9) | 0x1a
+#define EC_WORD_RIPPED (EC_GROUP_ADJECTIVES << 9) | 0x1b
+#define EC_WORD_SHREDDED (EC_GROUP_ADJECTIVES << 9) | 0x1c
+#define EC_WORD_INCREASING (EC_GROUP_ADJECTIVES << 9) | 0x1d
+#define EC_WORD_YET (EC_GROUP_ADJECTIVES << 9) | 0x1e
+#define EC_WORD_DESTROYED (EC_GROUP_ADJECTIVES << 9) | 0x1f
+#define EC_WORD_FIERY (EC_GROUP_ADJECTIVES << 9) | 0x20
+#define EC_WORD_LOVEY_DOVEY (EC_GROUP_ADJECTIVES << 9) | 0x21
+#define EC_WORD_HAPPILY (EC_GROUP_ADJECTIVES << 9) | 0x22
+#define EC_WORD_ANTICIPATION (EC_GROUP_ADJECTIVES << 9) | 0x23
+
+// EVENTS
+#define EC_WORD_APPEAL (EC_GROUP_EVENTS << 9) | 0x0
+#define EC_WORD_EVENTS (EC_GROUP_EVENTS << 9) | 0x1
+#define EC_WORD_STAY_AT_HOME (EC_GROUP_EVENTS << 9) | 0x2
+#define EC_WORD_BERRY (EC_GROUP_EVENTS << 9) | 0x3
+#define EC_WORD_CONTEST (EC_GROUP_EVENTS << 9) | 0x4
+#define EC_WORD_MC (EC_GROUP_EVENTS << 9) | 0x5
+#define EC_WORD_JUDGE (EC_GROUP_EVENTS << 9) | 0x6
+#define EC_WORD_SUPER (EC_GROUP_EVENTS << 9) | 0x7
+#define EC_WORD_STAGE (EC_GROUP_EVENTS << 9) | 0x8
+#define EC_WORD_HALL_OF_FAME (EC_GROUP_EVENTS << 9) | 0x9
+#define EC_WORD_EVOLUTION (EC_GROUP_EVENTS << 9) | 0xa
+#define EC_WORD_HYPER (EC_GROUP_EVENTS << 9) | 0xb
+#define EC_WORD_BATTLE_TOWER (EC_GROUP_EVENTS << 9) | 0xc
+#define EC_WORD_LEADERS (EC_GROUP_EVENTS << 9) | 0xd
+#define EC_WORD_BATTLE_ROOM (EC_GROUP_EVENTS << 9) | 0xe
+#define EC_WORD_HIDDEN (EC_GROUP_EVENTS << 9) | 0xf
+#define EC_WORD_SECRET_BASE (EC_GROUP_EVENTS << 9) | 0x10
+#define EC_WORD_BLEND (EC_GROUP_EVENTS << 9) | 0x11
+#define EC_WORD_POKEBLOCK (EC_GROUP_EVENTS << 9) | 0x12
+#define EC_WORD_MASTER (EC_GROUP_EVENTS << 9) | 0x13
+#define EC_WORD_RANK (EC_GROUP_EVENTS << 9) | 0x14
+#define EC_WORD_RIBBON (EC_GROUP_EVENTS << 9) | 0x15
+
+// TRENDY_SAYING
+#define EC_WORD_KTHX_BYE (EC_GROUP_TRENDY_SAYING << 9) | 0x0
+#define EC_WORD_YES_SIR_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x1
+#define EC_WORD_AVANT_GARDE (EC_GROUP_TRENDY_SAYING << 9) | 0x2
+#define EC_WORD_COUPLE (EC_GROUP_TRENDY_SAYING << 9) | 0x3
+#define EC_WORD_MUCH_OBLIGED (EC_GROUP_TRENDY_SAYING << 9) | 0x4
+#define EC_WORD_YEEHAW_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x5
+#define EC_WORD_MEGA (EC_GROUP_TRENDY_SAYING << 9) | 0x6
+#define EC_WORD_1_HIT_KO_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x7
+#define EC_WORD_DESTINY (EC_GROUP_TRENDY_SAYING << 9) | 0x8
+#define EC_WORD_CANCEL (EC_GROUP_TRENDY_SAYING << 9) | 0x9
+#define EC_WORD_NEW (EC_GROUP_TRENDY_SAYING << 9) | 0xa
+#define EC_WORD_FLATTEN (EC_GROUP_TRENDY_SAYING << 9) | 0xb
+#define EC_WORD_KIDDING (EC_GROUP_TRENDY_SAYING << 9) | 0xc
+#define EC_WORD_LOSER (EC_GROUP_TRENDY_SAYING << 9) | 0xd
+#define EC_WORD_LOSING (EC_GROUP_TRENDY_SAYING << 9) | 0xe
+#define EC_WORD_HAPPENING (EC_GROUP_TRENDY_SAYING << 9) | 0xf
+#define EC_WORD_HIP_AND (EC_GROUP_TRENDY_SAYING << 9) | 0x10
+#define EC_WORD_SHAKE (EC_GROUP_TRENDY_SAYING << 9) | 0x11
+#define EC_WORD_SHADY (EC_GROUP_TRENDY_SAYING << 9) | 0x12
+#define EC_WORD_UPBEAT (EC_GROUP_TRENDY_SAYING << 9) | 0x13
+#define EC_WORD_MODERN (EC_GROUP_TRENDY_SAYING << 9) | 0x14
+#define EC_WORD_SMELL_YA (EC_GROUP_TRENDY_SAYING << 9) | 0x15
+#define EC_WORD_BANG (EC_GROUP_TRENDY_SAYING << 9) | 0x16
+#define EC_WORD_KNOCKOUT (EC_GROUP_TRENDY_SAYING << 9) | 0x17
+#define EC_WORD_HASSLE (EC_GROUP_TRENDY_SAYING << 9) | 0x18
+#define EC_WORD_WINNER (EC_GROUP_TRENDY_SAYING << 9) | 0x19
+#define EC_WORD_FEVER (EC_GROUP_TRENDY_SAYING << 9) | 0x1a
+#define EC_WORD_WANNABE (EC_GROUP_TRENDY_SAYING << 9) | 0x1b
+#define EC_WORD_BABY (EC_GROUP_TRENDY_SAYING << 9) | 0x1c
+#define EC_WORD_HEART (EC_GROUP_TRENDY_SAYING << 9) | 0x1d
+#define EC_WORD_OLD (EC_GROUP_TRENDY_SAYING << 9) | 0x1e
+#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_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)
+
+#define EC_GROUP(word) ((word) >> 9)
+#define EC_INDEX(word) ((word) & 0x1FF)
+
+#endif // GUARD_CONSTANTS_EASY_CHAT_H
diff --git a/include/constants/flags.h b/include/constants/flags.h
new file mode 100644
index 000000000..eff147fb8
--- /dev/null
+++ b/include/constants/flags.h
@@ -0,0 +1,804 @@
+#ifndef GUARD_CONSTANTS_FLAGS_H
+#define GUARD_CONSTANTS_FLAGS_H
+
+// temporary flags
+// These temporary are are cleared every time a map is loaded. They are used for
+// things like shortening an NPCs introduction text if the player already spoke
+// to them once.
+#define FLAG_TEMP_1 0x1
+#define FLAG_TEMP_2 0x2
+#define FLAG_TEMP_3 0x3
+#define FLAG_TEMP_4 0x4
+#define FLAG_TEMP_5 0x5
+#define FLAG_TEMP_6 0x6
+#define FLAG_TEMP_7 0x7
+#define FLAG_TEMP_8 0x8
+#define FLAG_TEMP_9 0x9
+#define FLAG_TEMP_A 0xA
+#define FLAG_TEMP_B 0xB
+#define FLAG_TEMP_C 0xC
+#define FLAG_TEMP_D 0xD
+#define FLAG_TEMP_E 0xE
+#define FLAG_TEMP_F 0xF
+#define FLAG_TEMP_10 0x10
+#define FLAG_TEMP_11 0x11
+#define FLAG_TEMP_12 0x12
+#define FLAG_TEMP_13 0x13
+#define FLAG_TEMP_14 0x14
+#define FLAG_TEMP_15 0x15
+#define FLAG_TEMP_16 0x16
+#define FLAG_TEMP_17 0x17
+#define FLAG_TEMP_18 0x18
+#define FLAG_TEMP_19 0x19
+#define FLAG_TEMP_1A 0x1A
+#define FLAG_TEMP_1B 0x1B
+#define FLAG_TEMP_1C 0x1C
+#define FLAG_TEMP_1D 0x1D
+#define FLAG_TEMP_1E 0x1E
+#define FLAG_TEMP_1F 0x1F
+// FLAG_TEMP_20 was supposed to be used as a temporary flag (see above), but there
+// was either an oversight or off-by-one error.
+#define FLAG_TEMP_20 0x20
+#define FLAG_VICTORY_ROAD_ROCK FLAG_TEMP_20
+
+// scripts
+#define FLAG_SET_WALL_CLOCK 0x51
+#define FLAG_RESCUED_BIRCH 0x52
+
+#define FLAG_LINK_CONTEST_ROOM_POKEBALL 0x56
+#define FLAG_MET_RIVAL_MOM 0x57
+#define FLAG_BIRCH_AIDE_MET 0x58
+#define FLAG_DECLINED_BIKE 0x59
+#define FLAG_RECEIVED_BIKE 0x5A
+
+#define FLAG_RECEIVED_WAILMER_PAIL 0x5E
+#define FLAG_RECEIVED_POKEBLOCK_CASE 0x5F
+#define FLAG_RECEIVED_SECRET_POWER 0x60
+
+#define FLAG_TV_EXPLAINED 0x62
+#define FLAG_MAUVILLE_GYM_BARRIERS_STATE 0x63
+#define FLAG_MOSSDEEP_GYM_SWITCH_1 0x64
+#define FLAG_MOSSDEEP_GYM_SWITCH_2 0x65
+#define FLAG_MOSSDEEP_GYM_SWITCH_3 0x66
+#define FLAG_MOSSDEEP_GYM_SWITCH_4 0x67
+
+#define FLAG_OCEANIC_MUSEUM_MET_REPORTER 0x69
+#define FLAG_RECEIVED_HM04 0x6A
+#define FLAG_RECEIVED_HM06 0x6B
+
+#define FLAG_RECEIVED_HM05 0x6D
+#define FLAG_RECEIVED_HM02 0x6E
+#define FLAG_MT_PYRE_ORB_STOLEN 0x6F
+#define FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE 0x70
+#define FLAG_LEGENDARY_BATTLE_COMPLETED 0x71 // defeated or caught Groudon/Kyogre in Cave of Origin
+
+#define FLAG_RECEIVED_METEORITE 0x73
+#define FLAG_ADVENTURE_STARTED 0x74 // received pokedex and set loose
+
+#define FLAG_MET_HIDDEN_POWER_GIVER 0x76
+
+#define FLAG_RECEIVED_TM31 0x79
+#define FLAG_RECEIVED_HM03 0x7A
+#define FLAG_RECEIVED_HM08 0x7B
+
+#define FLAG_DEFEATED_WALLY_VICTORY_ROAD 0x7E
+#define FLAG_MET_PRETTY_PETAL_SHOP_OWNER 0x7F
+
+#define FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN 0x81
+#define FLAG_DEFEATED_RIVAL_ROUTE103 0x82
+#define FLAG_RECEIVED_DOLL_LANETTE 0x83
+#define FLAG_RECEIVED_POTION_OLDALE 0x84
+#define FLAG_RECEIVED_AMULET_COIN 0x85
+#define FLAG_PENDING_DAYCARE_EGG 0x86
+#define FLAG_THANKED_FOR_PLAYING_WITH_WALLY 0x87
+
+#define FLAG_RECEIVED_HM01 0x89
+
+#define FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY 0x8B
+#define FLAG_RECEIVED_6_SODA_POP 0x8C
+#define FLAG_DEFEATED_SEASHORE_HOUSE_TRAINERS 0x8D
+#define FLAG_DEVON_GOODS_STOLEN 0x8E
+#define FLAG_RECOVERED_DEVON_GOODS 0x8F
+#define FLAG_RETURNED_DEVON_GOODS 0x90
+
+#define FLAG_MR_BRINEY_SAILING_INTRO 0x93
+#define FLAG_DOCK_REJECTED_DEVON_GOODS 0x94
+#define FLAG_DELIVERED_DEVON_GOODS 0x95
+#define FLAG_RECEIVED_CONTEST_PASS 0x96
+#define FLAG_RECEIVED_CASTFORM 0x97
+#define FLAG_RECEIVED_SUPER_ROD 0x98
+#define FLAG_RUSTBORO_NPC_TRADE_COMPLETED 0x99
+#define FLAG_PACIFIDLOG_NPC_TRADE_COMPLETED 0x9A
+#define FLAG_FORTREE_NPC_TRADE_COMPLETED 0x9B
+
+#define FLAG_UNKNOWN_9F 0x9F
+#define FLAG_COOL_PAINTING_MADE 0xA0
+#define FLAG_BEAUTY_PAINTING_MADE 0xA1
+#define FLAG_CUTE_PAINTING_MADE 0xA2
+#define FLAG_SMART_PAINTING_MADE 0xA3
+#define FLAG_TOUGH_PAINTING_MADE 0xA4
+#define FLAG_RECEIVED_TM39 0xA5
+#define FLAG_RECEIVED_TM08 0xA6
+#define FLAG_RECEIVED_TM34 0xA7
+#define FLAG_RECEIVED_TM50 0xA8
+#define FLAG_RECEIVED_TM42 0xA9
+#define FLAG_RECEIVED_TM40 0xAA
+#define FLAG_RECEIVED_TM04 0xAB
+#define FLAG_RECEIVED_TM03 0xAC
+#define FLAG_DECORATION_1 0xAD
+#define FLAG_DECORATION_2 0xAE
+#define FLAG_DECORATION_3 0xAF
+#define FLAG_DECORATION_4 0xB0
+#define FLAG_DECORATION_5 0xB1
+#define FLAG_DECORATION_6 0xB2
+#define FLAG_DECORATION_7 0xB3
+#define FLAG_DECORATION_8 0xB4
+#define FLAG_DECORATION_9 0xB5
+#define FLAG_DECORATION_10 0xB6
+#define FLAG_DECORATION_11 0xB7
+#define FLAG_DECORATION_12 0xB8
+#define FLAG_DECORATION_13 0xB9
+#define FLAG_DECORATION_14 0xBA
+#define FLAG_DECORATION_15 0xBB
+#define FLAG_RECEIVED_POKENAV 0xBC
+#define FLAG_DELIVERED_STEVEN_LETTER 0xBD
+#define FLAG_DEFEATED_WALLY_MAUVILLE 0xBE
+
+#define FLAG_RECEIVED_SUN_STONE_MOSSDEEP 0xC0
+#define FLAG_WALLY_SPEECH 0xC1
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1 0xC2
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2 0xC3
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3 0xC4
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4 0xC5
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5 0xC6
+#define FLAG_RUSTURF_TUNNEL_OPENED 0xC7
+#define FLAG_RECEIVED_RED_SCARF 0xC8
+#define FLAG_RECEIVED_BLUE_SCARF 0xC9
+#define FLAG_RECEIVED_PINK_SCARF 0xCA
+#define FLAG_RECEIVED_GREEN_SCARF 0xCB
+#define FLAG_RECEIVED_YELLOW_SCARF 0xCC
+
+#define FLAG_ECOUNTERED_LATIAS_OR_LATIOS 0xCE
+
+#define FLAG_RECEIVED_BASEMENT_KEY 0xD0
+#define FLAG_RECEIVED_TM24 0xD1
+
+#define FLAG_RECEIVED_RED_OR_BLUE_ORB 0xD4
+#define FLAG_RECEIVED_PREMIER_BALL_RUSTBORO 0xD5
+
+#define FLAG_ROUTE104_PROTOTYPE_COMPLETED_1 0xD7
+#define FLAG_ROUTE104_PROTOTYPE_COMPLETED_2 0xD8
+#define FLAG_MET_DIVING_TREASURE_HUNTER 0xD9
+#define FLAG_MET_WAILMER_TRAINER 0xDA
+#define FLAG_EVIL_LEADER_PLEASE_STOP 0xDB
+
+#define FLAG_RECEIVED_GO_GOGGLES 0xDD
+#define FLAG_WINGULL_SENT_ON_ERRAND 0xDE
+#define FLAG_RECEIVED_MENTAL_HERB 0xDF
+#define FLAG_WINGULL_DELIVERED_MAIL 0xE0
+#define FLAG_RECEIVED_20_COINS 0xE1
+#define FLAG_RECEIVED_STARTER_DOLL 0xE2
+#define FLAG_RECEIVED_GOOD_ROD 0xE3
+#define FLAG_REGI_DOORS_OPENED 0xE4
+#define FLAG_RECEIVED_TM27 0xE5
+#define FLAG_RECEIVED_TM36 0xE6
+#define FLAG_RECEIVED_TM05 0xE7
+#define FLAG_RECEIVED_TM19 0xE8
+
+#define FLAG_RECEIVED_TM44 0xEA
+#define FLAG_RECEIVED_TM45 0xEB
+#define FLAG_RECEIVED_GLASS_ORNAMENT 0xEC
+#define FLAG_RECEIVED_SILVER_SHIELD 0xED
+#define FLAG_RECEIVED_GOLD_SHIELD 0xEE
+#define FLAG_USED_STORAGE_KEY 0xEF
+#define FLAG_USED_ROOM_1_KEY 0xF0
+#define FLAG_USED_ROOM_2_KEY 0xF1
+#define FLAG_USED_ROOM_4_KEY 0xF2
+#define FLAG_USED_ROOM_6_KEY 0xF3
+#define FLAG_MET_PROF_COSMO 0xF4
+#define FLAG_RECEIVED_WAILMER_DOLL 0xF5
+#define FLAG_RECEIVED_CHESTO_BERRY_ROUTE104 0xF6
+#define FLAG_DEFEATED_SS_TIDAL_TRAINERS 0xF7
+#define FLAG_RECEIVED_SPELON_BERRY 0xF8
+#define FLAG_RECEIVED_PAMTRE_BERRY 0xF9
+#define FLAG_RECEIVED_WATMEL_BERRY 0xFA
+#define FLAG_RECEIVED_DURIN_BERRY 0xFB
+#define FLAG_RECEIVED_BELUE_BERRY 0xFC
+
+#define FLAG_RECEIVED_CHARCOAL 0xFE
+#define FLAG_LATIOS_OR_LATIAS_ROAMING 0xFF
+#define FLAG_RECEIVED_REPEAT_BALL 0x100
+#define FLAG_RECEIVED_OLD_ROD 0x101
+#define FLAG_RECEIVED_COIN_CASE 0x102
+#define FLAG_RETURNED_RED_OR_BLUE_ORB 0x103
+#define FLAG_RECEIVED_TM49 0x104
+#define FLAG_RECEIVED_TM28 0x105
+#define FLAG_RECEIVED_TM09 0x106
+#define FLAG_ENTERED_ELITE_FOUR 0x107
+#define FLAG_RECEIVED_TM10 0x108
+#define FLAG_RECEIVED_TM41 0x109
+#define FLAG_RECEIVED_LAVARIDGE_EGG 0x10A
+#define FLAG_RECEIVED_FOSSIL_MON 0x10B
+#define FLAG_DECORATION_16 0x10C
+#define FLAG_RECEIVED_TM46 0x10D
+#define FLAG_CONTEST_SKETCH_CREATED 0x10E
+#define FLAG_EVIL_TEAM_ESCAPED_STERN_SPOKE 0x10F
+#define FLAG_RECEIVED_EXP_SHARE 0x110
+#define FLAG_POKERUS_EXPLAINED 0x111
+#define FLAG_RECEIVED_RUNNING_SHOES 0x112
+#define FLAG_RECEIVED_QUICK_CLAW 0x113
+#define FLAG_RECEIVED_KINGS_ROCK 0x114
+#define FLAG_RECEIVED_MACHO_BRACE 0x115
+#define FLAG_RECEIVED_SOOTHE_BELL 0x116
+#define FLAG_RECEIVED_WHITE_HERB 0x117
+#define FLAG_RECEIVED_SOFT_SAND 0x118
+
+#define FLAG_RECEIVED_CLEANSE_TAG 0x11A
+#define FLAG_RECEIVED_FOCUS_BAND 0x11B
+#define FLAG_DECLINED_WALLY_BATTLE_MAUVILLE 0x11C
+#define FLAG_RECEIVED_DEVON_SCOPE 0x11D
+#define FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE 0x11E
+#define FLAG_MET_DEVON_EMPLOYEE 0x11F
+#define FLAG_MET_RIVAL_RUSTBORO 0x120
+#define FLAG_RECEIVED_SILK_SCARF 0x121
+#define FLAG_NOT_READY_FOR_BATTLE_ROUTE120 0x122
+#define FLAG_RECEIVED_SS_TICKET 0x123
+#define FLAG_MET_RIVAL_LILYCOVE 0x124
+#define FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE 0x125
+#define FLAG_EXCHANGED_SCANNER 0x126
+#define FLAG_KECLEON_FLED_FORTREE 0x127
+#define FLAG_PETALBURG_MART_EXPANDED_ITEMS 0x128
+#define FLAG_RECEIVED_MIRACLE_SEED 0x129
+#define FLAG_RECEIVED_BELDUM 0x12A
+#define FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK 0x12B
+#define FLAG_MET_FANCLUB_YOUNGER_BROTHER 0x12C
+#define FLAG_RIVAL_LEFT_FOR_ROUTE103 0x12D
+#define FLAG_OMIT_DIVE_FROM_STEVEN_LETTER 0x12E
+
+#define FLAG_UNKNOWN_2B8 0x2B8 // TODO: pokemon storage system?
+
+#define FLAG_HIDE_BIRCH_STARTERS_BAG 0x2BC
+
+#define FLAG_HIDE_BIRCH_BATTLE_POOCHYENA 0x2D0
+#define FLAG_HIDE_BIRCH_IN_LAB 0x2D1
+#define FLAG_HIDE_MAY_UPSTAIRS 0x2D2
+#define FLAG_HIDE_RIVAL_ROUTE103 0x2D3
+#define FLAG_HIDE_DEVON_PETALBURG_WOODS 0x2D4
+#define FLAG_HIDE_EVIL_TEAM_PETALBURG_WOODS 0x2D5
+#define FLAG_HIDE_WALLY_PETALBURG 0x2D6
+#define FLAG_HIDE_STEVENS_LETTER 0x2D7
+#define FLAG_HIDE_WALLY_MOM_PETALBURG_1 0x2D8
+
+#define FLAG_HIDE_GRUNT_RUSTBORO 0x2DB
+#define FLAG_HIDE_DEVON_RUSTBORO 0x2DC
+#define FLAG_HIDE_SLEEPING_MON_SEAFLOOR_CAVERN 0x2DD
+#define FLAG_HIDE_NORMAN_LITTLEROOT 0x2DE
+
+#define FLAG_UNKNOWN_2E1 0x2E1
+#define FLAG_HIDE_MR_BRINEY_ROUTE104 0x2E2
+#define FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE 0x2E3
+#define FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN 0x2E4
+#define FLAG_HIDE_MR_BRINEY_ROUTE109 0x2E5
+#define FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104 0x2E6
+#define FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD 0x2E7
+#define FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109 0x2E8
+
+#define FLAG_UNKNOWN_2EB 0x2EB
+#define FLAG_UNKNOWN_2EC 0x2EC
+#define FLAG_UNKNOWN_2ED 0x2ED
+#define FLAG_HIDE_POOCHYENA_ROUTE101 0x2EE
+#define FLAG_HIDE_WALLY_DEFEATED_VICTORY_ROAD 0x2EF
+#define FLAG_HIDE_MOM_LITTLEROOT 0x2F0
+
+#define FLAG_HIDE_MACHOKE_MOVER_1 0x2F2
+#define FLAG_HIDE_MACHOKE_MOVER_2 0x2F3
+#define FLAG_UNKNOWN_2F4 0x2F4
+#define FLAG_HIDE_MOM_UPSTAIRS 0x2F5
+#define FLAG_HIDE_BRENDAN_MOM_DOWNSTAIRS 0x2F6
+#define FLAG_HIDE_MAY_MOM_DOWNSTAIRS 0x2F7
+#define FLAG_HIDE_BRENDAN_UPSTAIRS 0x2F8
+#define FLAG_HIDE_MOVING_TRUCK_BRENDAN 0x2F9
+#define FLAG_HIDE_MOVING_TRUCK_MAY 0x2FA
+
+#define FLAG_HIDE_VICTOR_WINSTRATE 0x300
+#define FLAG_HIDE_VICTORIA_WINSTRATE 0x301
+#define FLAG_HIDE_VIVI_WINSTRATE 0x302
+#define FLAG_HIDE_VICKI_WINSTRATE 0x303
+#define FLAG_HIDE_NORMAN_PETALBURG_GYM 0x304
+#define FLAG_HIDE_RAYQUAZA 0x305
+#define FLAG_HIDE_LILYCOVE_CONTEST_ATTENDENT_1 0x306
+#define FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR 0x307
+#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_LADY 0x308
+#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_GIRL 0x309
+#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_MAN 0x30A
+#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTER 0x30B
+#define FLAG_HIDE_LILYCOVE_MUSEUM_VISITORS 0x30C
+#define FLAG_HIDE_PETALBURG_GYM_GUIDE 0x30D
+#define FLAG_UNKNOWN_30E 0x30E
+#define FLAG_UNKNOWN_30F 0x30F
+#define FLAG_HIDE_BRENDAN_MOM 0x310
+#define FLAG_HIDE_MAY_MOM 0x311
+
+#define FLAG_HIDE_FANCLUB_OLD_LADY 0x315
+#define FLAG_HIDE_FANCLUB_BOY 0x316
+#define FLAG_HIDE_FANCLUB_LITTLE_BOY 0x317
+#define FLAG_HIDE_FANCLUB_LADY 0x318
+
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE111_1 0x31C
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE118_1 0x31D
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE120_1 0x31E
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE111_2 0x31F
+#define FLAG_HIDE_CONTEST_REPORTER_FALLARBOR 0x320
+#define FLAG_HIDE_CONTEST_REPORTER_VERDANTURF 0x321
+#define FLAG_HIDE_CONTEST_REPORTER_LILYCOVE 0x322
+#define FLAG_HIDE_CONTEST_REPORTER_SLATEPORT 0x323
+#define FLAG_HIDE_WALLY_MAUVILLE 0x324
+#define FLAG_HIDE_WALLY_FATHER_MAUVILLE 0x325
+#define FLAG_HIDE_WALLY_WANDAS_HOUSE 0x326
+#define FLAG_HIDE_BOYFRIEND_RUSTURF_TUNNEL 0x327
+#define FLAG_HIDE_BOYFRIEND_WANDAS_HOUSE 0x328
+#define FLAG_HIDE_WALLY_FATHER_WANDAS_HOUSE 0x329
+
+#define FLAG_HIDE_WALLY_FATHER_PETALBURG 0x32B
+#define FLAG_HIDE_WALLY_MOTHER_PETALBURG 0x32C
+#define FLAG_HIDE_LOST_GLASSES_MAN 0x32D
+#define FLAG_HIDE_RIVAL_RUSTBORO 0x32E
+#define FLAG_HIDE_WALLACE_SOOTOPOLIS_GYM 0x32F
+#define FLAG_HIDE_WALLACE_SOOTOPOLIS 0x330
+
+#define FLAG_HIDE_GRUNTS_BLOCKING_CABLE_CAR 0x333
+
+#define FLAG_HIDE_GRUNT_1_BLOCKING_HIDEOUT 0x335
+#define FLAG_HIDE_GRUNT_2_BLOCKING_HIDEOUT 0x336
+#define FLAG_UNKNOWN_337 0x337
+
+#define FLAG_HIDE_LEGEND_MON_CAVE_OF_ORIGIN 0x339
+
+#define FLAG_HIDE_EVIL_LEADER_SEAFLOOR_CAVERN 0x33C
+#define FLAG_HIDE_OTHER_LEADER_SEAFLOOR_CAVERN 0x33D
+
+#define FLAG_HIDE_OTHER_TEAM_GRUNTS_SEAFLOOR_CAVERN 0x33F
+
+#define FLAG_HIDE_STEVEN_GRANITE_CAVE 0x341
+#define FLAG_HIDE_STEVEN_ROUTE128 0x342
+#define FLAG_HIDE_GABBY_AND_TY_SLATEPORT 0x343
+
+#define FLAG_HIDE_STERN_SLATEPORT 0x348
+#define FLAG_HIDE_STERN_SLATEPORT_HARBOR 0x349
+
+#define FLAG_UNKNOWN_34B 0x34B
+#define FLAG_UNKNOWN_34C 0x34C
+#define FLAG_HIDE_GRUNT_1_SLATEPORT_HARBOR 0x34D
+#define FLAG_HIDE_GRUNT_2_SLATEPORT_HARBOR 0x34E
+#define FLAG_UNKNOWN_34F 0x34F
+#define FLAG_HIDE_SUBMARINE_SHADOW_SLATEPORT_HARBOR 0x350
+#define FLAG_HIDE_MAY_PICHU_DOLL 0x351
+
+#define FLAG_HIDE_RIVAL_ROUTE119 0x353
+#define FLAG_HIDE_GRUNTS_LILYCOVE 0x354
+
+#define FLAG_HIDE_SOOTOPOLIS_RESIDENTS 0x356
+#define FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_1 0x357
+#define FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_2 0x358
+
+#define FLAG_HIDE_WALLY_BATTLE_VICTORY_ROAD 0x35A
+#define FLAG_HIDE_AWAKENED_MON_SEAFLOOR_CAVERN 0x35B
+#define FLAG_HIDE_SS_TIDAL_SLATEPORT_HARBOR 0x35C
+#define FLAG_HIDE_SS_TIDAL_LILYCOVE_HARBOR 0x35D
+
+#define FLAG_HIDE_WALLY_PETALBURG_GYM 0x362
+#define FLAG_UNKNOWN_363 0x363
+#define FLAG_HIDE_FAT_MAN_LITTLEROOT 0x364
+#define FLAG_HIDE_BRINEY_SLATEPORT_SHIPYARD 0x365
+#define FLAG_HIDE_LANETTE 0x366
+#define FLAG_HIDE_LANETTE_FALLARBOR 0x367
+#define FLAG_HIDE_TRICKMASTER_ENTRANCE 0x368
+
+#define FLAG_HIDE_MT_CHIMNEY_PEOPLE 0x36D
+#define FLAG_HIDE_GRUNT_RUSTURF_TUNNEL 0x36E
+#define FLAG_HIDE_BRINEY_RUSTURF_TUNNEL 0x36F
+#define FLAG_HIDE_PEEKO_RUSTURF_TUNNEL 0x370
+#define FLAG_HIDE_PEEKO_BRINEY_HOUSE 0x371
+#define FLAG_HIDE_EVIL_TEAM_SLATEPORT 0x372
+#define FLAG_HIDE_EVIL_TEAM_OCEANIC_MUSEUM 0x373
+#define FLAG_HIDE_GRUNT_1_OCEANIC_MUSEUM_2F 0x374
+#define FLAG_HIDE_GRUNT_2_OCEANIC_MUSEUM_2F 0x375
+#define FLAG_HIDE_EVIL_TEAM_LEADER_OCEANIC_MUSEUM_2F 0x376
+#define FLAG_HIDE_STERN_OCEANIC_MUSEUM_2F 0x377
+#define FLAG_HIDE_BATTLE_TOWER_OPPONENT 0x378
+#define FLAG_HIDE_RIVAL_BIRCH_LAB 0x379
+#define FLAG_HIDE_EVIL_TEAM_WEATHER_INSTITUTE 0x37A
+#define FLAG_HIDE_BRINEY_ROUTE116 0x37B
+#define FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_1F 0x37C
+#define FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_2F 0x37D
+#define FLAG_HIDE_TUNNER_DIGGER_ROUTE116 0x37E
+#define FLAG_HIDE_ARTIST_LILCOVE_CONTEST 0x37F
+#define FLAG_UNKNOWN_BIRCH_380 0x380 // TODO: what should this be called?
+#define FLAG_HIDE_BIRCH_ROUTE101 0x381
+#define FLAG_HIDE_BIRCH_ROUTE103 0x382
+#define FLAG_HIDE_TRICKMASTER_END 0x383
+#define FLAG_HIDE_EVIL_TEAM_ROUTE110 0x384
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE118_2 0x385
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE120_2 0x386
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE111_3 0x387
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE118_3 0x388
+#define FLAG_HIDE_WORKERS_SLATEPORT_HARBOR 0x389
+#define FLAG_HIDE_FLOWER_SHOP_WORKER_OUTSIDE 0x38A
+#define FLAG_HIDE_AZURILL_FALLARBOR 0x38B
+#define FLAG_HIDE_FERRY_ATTENDANT_LILYCOVE 0x38C
+#define FLAG_HIDE_FERRY_SAILOR_LILYCOVE 0x38D
+#define FLAG_HIDE_LATIOS_OR_LATIAS_FLYING 0x38E
+#define FLAG_HIDE_LATIOS_OR_LATIAS_STATIONARY 0x38F
+#define FLAG_HIDE_WATTSON_MAUVILLE 0x390
+#define FLAG_HIDE_WATTSON_MAUVILLE_GYM 0x391
+#define FLAG_HIDE_GRUNTS_ROUTE121 0x392
+#define FLAG_UNKNOWN_393 0x393
+#define FLAG_HIDE_LEADER_MT_PYRE_SUMMIT 0x394
+#define FLAG_HIDE_GRUNTS_MT_PYRE_SUMMIT 0x395
+#define FLAG_HIDE_REPORTER_BATTLE_TOWER 0x396
+#define FLAG_HIDE_RIVAL_ROUTE110 0x397
+#define FLAG_HIDE_RIVAL_CHAMPIONS_ROOM 0x398
+#define FLAG_HIDE_BIRCH_CHAMPIONS_ROOM 0x399
+#define FLAG_HIDE_RIVAL_ON_BIKE_ROUTE110 0x39A
+#define FLAG_HIDE_RIVAL_ROUTE119_ON_BIKE 0x39B
+#define FLAG_HIDE_GRUNTS_HIDEOUTS 0x39C
+#define FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE 0x39D
+#define FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY 0x39E
+#define FLAG_HIDE_OTEHR_TEAM_MT_CHIMNEY 0x39F
+#define FLAG_HIDE_PROF_COSMO_FALLARBOR 0x3A0
+#define FLAG_HIDE_RIVAL_LAVARIDGE_1 0x3A1
+#define FLAG_HIDE_RIVAL_LAVARIDGE_2 0x3A2
+#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1 0x3A3
+#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2 0x3A4
+#define FLAG_HIDE_WINGULL_FORTREE_HOUSE 0x3A5
+#define FLAG_HIDE_WINGULL_MOSSDEEP_HOUSE 0x3A6
+#define FLAG_HIDE_REGIROCK 0x3A7
+#define FLAG_HIDE_REGICE 0x3A8
+#define FLAG_HIDE_REGISTEEL 0x3A9
+#define FLAG_HIDE_GRUNTS_METEOR_FALLS_1F 0x3AA
+#define FLAG_HIDE_OTHER_TEAM_METEOR_FALLS_1F 0x3AB
+#define FLAG_HIDE_SLUDGE_BOMB_MAN_DEWFORD_HALL 0x3AC
+#define FLAG_HIDE_AWARD_MAN_BATTLE_TOWER 0x3AD
+#define FLAG_HIDE_PROF_COSMO_METEOR_FALLS 0x3AE
+#define FLAG_HIDE_SUBMARINE_SHADOW_HIDEOUT 0x3AF
+#define FLAG_HIDE_EVIL_LEADER_ROUTE128 0x3B0
+#define FLAG_HIDE_OTHER_LEADER_ROUTE128 0x3B1
+#define FLAG_HIDE_EVIL_TEAM_GRUNTS_SEAFLOOR_CAVERN 0x3B2
+#define FLAG_HIDE_DEVON_EMPLOYEE_ROUTE116 0x3B3
+#define FLAG_HIDE_TM_SALESMAN_SLATEPORT 0x3B4
+#define FLAG_HIDE_EMPLOYEE_DEVON_CORP_3F 0x3B5
+#define FLAG_HIDE_BRINEY_AND_PEEKO_SS_TIDAL 0x3B6
+#define FLAG_HIDE_TM_49_GIVER_SS_TIDAL 0x3B7
+#define FLAG_HIDE_TOOK_SHOAL_SALT_1 0x3B8
+#define FLAG_HIDE_TOOK_SHOAL_SALT_2 0x3B9
+#define FLAG_HIDE_TOOK_SHOAL_SALT_3 0x3BA
+#define FLAG_HIDE_TOOK_SHOAL_SALT_4 0x3BB
+#define FLAG_HIDE_TOOK_SHOAL_SHELL_1 0x3BC
+#define FLAG_HIDE_TOOK_SHOAL_SHELL_2 0x3BD
+#define FLAG_HIDE_TOOK_SHOAL_SHELL_3 0x3BE
+#define FLAG_HIDE_TOOK_SHOAL_SHELL_4 0x3BF
+#define FLAG_HIDE_SECRET_POWER_MAN 0x3C0
+#define FLAG_HIDE_OCEANIC_MUSEUM_VISITORS 0x3C1
+#define FLAG_HIDE_ROOFTOP_LADY_LILYCOVE_MART 0x3C2
+#define FLAG_HIDE_ROOT_FOSSIL 0x3C3
+#define FLAG_HIDE_CLAW_FOSSIL 0x3C4
+#define FLAG_HIDE_SCARED_GRUNT_OCEANIC_MUSEUM 0x3C5
+#define FLAG_HIDE_STEVEN_ROUTE118 0x3C6
+#define FLAG_HIDE_STEVEN_STEVENS_HOUSE 0x3C7
+#define FLAG_HIDE_BELDUM_BALL_STEVENS_HOUSE 0x3C8
+#define FLAG_HIDE_KECLEON_FORTREE 0x3C9
+#define FLAG_HIDE_KECLEON_ROUTE120_1 0x3CA
+#define FLAG_HIDE_RIVAL_LILYCOVE_MART 0x3CB
+#define FLAG_HIDE_STEVEN_ROUTE120 0x3CC
+#define FLAG_HIDE_STEVEN_SOOTOPOLIS 0x3CD
+#define FLAG_HIDE_VOLTORB_1_NEW_MAUVILLE 0x3CE
+#define FLAG_HIDE_VOLTORB_2_NEW_MAUVILLE 0x3CF
+#define FLAG_HIDE_VOLTORB_3_NEW_MAUVILLE 0x3D0
+#define FLAG_HIDE_ELECTRODE_1_HIDEOUT 0x3D1
+#define FLAG_HIDE_ELECTRODE_2_HIDEOUT 0x3D2
+#define FLAG_HIDE_RIVAL_OLDALE_TOWN 0x3D3
+#define FLAG_HIDE_UNDERWATER_SUBMARINE_INTERACTION 0x3D4
+#define FLAG_HIDE_KECLEON_ROUTE120_2 0x3D5
+#define FLAG_HIDE_KECLEON_ROUTE120_3 0x3D6
+#define FLAG_HIDE_GIRLFRIEND_RUSTURF_TUNNEL 0x3D7
+#define FLAG_HIDE_GIRLFRIEND_WANDAS_HOUSE 0x3D8
+#define FLAG_HIDE_KECLEON_ROUTE120_4 0x3D9
+#define FLAG_HIDE_KECLEON_ROUTE120_5 0x3DA
+#define FLAG_HIDE_KECLEON_ROUTE120_6 0x3DB
+#define FLAG_HIDE_KECLEON_ROUTE120_7 0x3DC
+#define FLAG_HIDE_KECLEON_ROUTE119_1 0x3DD
+#define FLAG_HIDE_KECLEON_ROUTE119_2 0x3DE
+#define FLAG_HIDE_BOY_ROUTE101 0x3DF
+
+#define FLAG_ITEM_ROUTE102_1 0x3E8
+#define FLAG_ITEM_ROUTE116_1 0x3E9
+#define FLAG_ITEM_ROUTE104_1 0x3EA
+#define FLAG_ITEM_ROUTE105_1 0x3EB
+#define FLAG_ITEM_ROUTE106_1 0x3EC
+#define FLAG_ITEM_ROUTE109_1 0x3ED
+#define FLAG_ITEM_ROUTE110_1 0x3EE
+#define FLAG_ITEM_ROUTE110_2 0x3EF
+#define FLAG_ITEM_ROUTE111_1 0x3F0
+#define FLAG_ITEM_ROUTE111_2 0x3F1
+#define FLAG_ITEM_ROUTE111_3 0x3F2
+#define FLAG_ITEM_ROUTE112_1 0x3F3
+#define FLAG_ITEM_ROUTE113_1 0x3F4
+#define FLAG_ITEM_ROUTE113_2 0x3F5
+#define FLAG_ITEM_ROUTE114_1 0x3F6
+#define FLAG_ITEM_ROUTE114_2 0x3F7
+#define FLAG_ITEM_ROUTE115_1 0x3F8
+#define FLAG_ITEM_ROUTE115_2 0x3F9
+#define FLAG_ITEM_ROUTE115_3 0x3FA
+#define FLAG_ITEM_ROUTE116_2 0x3FB
+#define FLAG_ITEM_ROUTE116_3 0x3FC
+#define FLAG_ITEM_ROUTE116_4 0x3FD
+#define FLAG_ITEM_ROUTE117_1 0x3FE
+#define FLAG_ITEM_ROUTE117_2 0x3FF
+#define FLAG_ITEM_ROUTE119_1 0x400
+#define FLAG_ITEM_ROUTE119_2 0x401
+#define FLAG_ITEM_ROUTE119_3 0x402
+#define FLAG_ITEM_ROUTE119_4 0x403
+#define FLAG_ITEM_ROUTE119_5 0x404
+#define FLAG_ITEM_ROUTE119_6 0x405
+#define FLAG_ITEM_ROUTE120_1 0x406
+#define FLAG_ITEM_ROUTE120_2 0x407
+#define FLAG_ITEM_ROUTE123_1 0x408
+#define FLAG_ITEM_ROUTE123_2 0x409
+#define FLAG_ITEM_ROUTE127_1 0x40A
+#define FLAG_ITEM_ROUTE127_2 0x40B
+#define FLAG_ITEM_ROUTE132_1 0x40C
+#define FLAG_ITEM_ROUTE133_1 0x40D
+#define FLAG_ITEM_ROUTE133_2 0x40E
+#define FLAG_ITEM_PETALBURG_1 0x40F
+#define FLAG_ITEM_PETALBURG_2 0x410
+#define FLAG_ITEM_RUSTBORO_1 0x411
+#define FLAG_ITEM_LILYCOVE_1 0x412
+#define FLAG_ITEM_MOSSDEEP_1 0x413
+#define FLAG_ITEM_METEOR_FALLS_1F_1R_1 0x414
+#define FLAG_ITEM_METEOR_FALLS_1F_1R_2 0x415
+#define FLAG_ITEM_METEOR_FALLS_1F_1R_3 0x416
+#define FLAG_ITEM_METEOR_FALLS_1F_1R_4 0x417
+#define FLAG_ITEM_RUSTURF_TUNNEL_1 0x418
+#define FLAG_ITEM_RUSTURF_TUNNEL_2 0x419
+#define FLAG_ITEM_GRANITE_CAVE_1F_1 0x41A
+#define FLAG_ITEM_GRANITE_CAVE_B1F_1 0x41B
+#define FLAG_ITEM_MT_PYRE_5F_1 0x41C
+#define FLAG_ITEM_GRANITE_CAVE_B2F_1 0x41D
+#define FLAG_ITEM_GRANITE_CAVE_B2F_2 0x41E
+#define FLAG_ITEM_PETALBURG_WOODS_1 0x41F
+#define FLAG_ITEM_PETALBURG_WOODS_2 0x420
+#define FLAG_ITEM_ROUTE104_2 0x421
+#define FLAG_ITEM_PETALBURG_WOODS_3 0x422
+#define FLAG_ITEM_CAVE_OF_ORIGIN_B3F_1 0x423
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_1_1 0x424
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_2_1 0x425
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_2_2 0x426
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_3_1 0x427
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_3_2 0x428
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_4_1 0x429
+#define FLAG_ITEM_ROUTE124_1 0x42A
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_6_1 0x42B
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_7_1 0x42C
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_8_1 0x42D
+#define FLAG_ITEM_JAGGED_PASS_1 0x42E
+#define FLAG_ITEM_AQUA_HIDEOUT_B1F_1 0x42F
+#define FLAG_ITEM_AQUA_HIDEOUT_B2F_1 0x430
+#define FLAG_ITEM_MT_PYRE_EXTERIOR_1 0x431
+#define FLAG_ITEM_MT_PYRE_EXTERIOR_2 0x432
+#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_1 0x433
+#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_2 0x434
+#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_1 0x435
+#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_2 0x436
+#define FLAG_ITEM_SCORCHED_SLAB_1 0x437
+#define FLAG_ITEM_METEOR_FALLS_B1F_2R_1 0x438
+#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ENTRANCE_1 0x439
+#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_INNER_ROOM_1 0x43A
+#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM_1 0x43B
+#define FLAG_ITEM_VICTORY_ROAD_1F_1 0x43C
+#define FLAG_ITEM_VICTORY_ROAD_1F_2 0x43D
+#define FLAG_ITEM_VICTORY_ROAD_B1F_1 0x43E
+#define FLAG_ITEM_VICTORY_ROAD_B1F_2 0x43F
+#define FLAG_ITEM_VICTORY_ROAD_B2F_1 0x440
+#define FLAG_ITEM_MT_PYRE_6F_1 0x441
+#define FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_1 0x442
+#define FLAG_ITEM_FIERY_PATH_1 0x443
+#define FLAG_ITEM_ROUTE124_2 0x444
+#define FLAG_ITEM_ROUTE124_3 0x445
+#define FLAG_ITEM_SAFARI_ZONE_NORTHWEST_1 0x446
+#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_1F_1 0x447
+#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_1 0x448
+#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_B1F_1 0x449
+#define FLAG_ITEM_ABANDONED_SHIP_ROOM_B1F_1 0x44A
+#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_1F_1 0x44B
+#define FLAG_ITEM_ABANDONED_SHIP_CAPTAINS_OFFICE_1 0x44C
+#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_3 0x44D
+#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_4 0x44E
+#define FLAG_ITEM_ROUTE121_1 0x44F
+#define FLAG_ITEM_ROUTE123_3 0x450
+#define FLAG_ITEM_ROUTE126_1 0x451
+#define FLAG_ITEM_ROUTE119_7 0x452
+#define FLAG_ITEM_ROUTE120_3 0x453
+#define FLAG_ITEM_ROUTE120_4 0x454
+#define FLAG_ITEM_ROUTE123_4 0x455
+#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_3 0x456
+#define FLAG_ITEM_FIERY_PATH_2 0x457
+#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ICE_ROOM_1 0x458
+#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ICE_ROOM_2 0x459
+#define FLAG_ITEM_ROUTE103_1 0x45A
+#define FLAG_ITEM_ROUTE104_3 0x45B
+#define FLAG_ITEM_MAUVILLE_1 0x45C
+#define FLAG_ITEM_PETALBURG_WOODS_4 0x45D
+#define FLAG_ITEM_ROUTE115_4 0x45E
+#define FLAG_ITEM_SAFARI_ZONE_NORTHEAST_1 0x45F
+#define FLAG_ITEM_MT_PYRE_3F_1 0x460
+#define FLAG_ITEM_ROUTE118_1 0x461
+#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_4 0x462
+#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_5 0x463
+#define FLAG_ITEM_AQUA_HIDEOUT_B1F_2 0x464
+#define FLAG_ITEM_MAGMA_HIDEOUT_B1F_1 0x465
+#define FLAG_ITEM_MAGMA_HIDEOUT_B1F_2 0x466
+#define FLAG_ITEM_MAGMA_HIDEOUT_B2F_1 0x467
+
+#define FLAG_ITEM_MT_PYRE_2F_1 0x469
+#define FLAG_ITEM_MT_PYRE_4F_1 0x46A
+#define FLAG_ITEM_SAFARI_ZONE_SOUTHWEST 0x46B
+#define FLAG_ITEM_AQUA_HIDEOUT_B1F_3 0x46C
+#define FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_1 0x46D
+#define FLAG_ITEM_MAGMA_HIDEOUT_B1F_3 0x46E
+#define FLAG_ITEM_ROUTE104_4 0x46F
+
+#define FLAG_DEFEATED_RUSTBORO_GYM 0x4B1
+
+#define FLAG_DEFEATED_DEWFORD_GYM 0x4B4
+
+#define FLAG_DEFEATED_MAUVILLE_GYM 0x4B8
+
+#define FLAG_DEFEATED_LAVARIDGE_GYM 0x4BD
+
+#define FLAG_DEFEATED_PETALBURG_GYM 0x4C1
+
+#define FLAG_DEFEATED_FORTREE_GYM 0x4C9
+
+#define FLAG_DEFEATED_MOSSDEEP_GYM 0x4CD
+
+#define FLAG_DEFEATED_SOOTOPOLIS_GYM 0x4D4
+
+#define FLAG_DEFEATED_ELITE_4_SYDNEY 0x4DD
+#define FLAG_DEFEATED_ELITE_4_PHOEBE 0x4DE
+#define FLAG_DEFEATED_ELITE_4_GLACIA 0x4DF
+#define FLAG_DEFEATED_ELITE_4_DRAKE 0x4E0
+
+
+#define TRAINER_FLAG_START 0x500
+
+
+// SYSTEM FLAGS
+
+#define NUMBER_OF_TRAINERS 693
+#define SYSTEM_FLAGS (TRAINER_FLAG_START + NUMBER_OF_TRAINERS + 0x4B) // 0x800
+
+#define FLAG_SYS_POKEMON_GET (SYSTEM_FLAGS + 0x00)
+#define FLAG_SYS_POKEDEX_GET (SYSTEM_FLAGS + 0x01)
+#define FLAG_SYS_POKENAV_GET (SYSTEM_FLAGS + 0x02)
+#define FLAG_SYS_GAME_CLEAR (SYSTEM_FLAGS + 0x04)
+#define FLAG_SYS_CHAT_USED (SYSTEM_FLAGS + 0x05)
+#define FLAG_SYS_HIPSTER_MEET (SYSTEM_FLAGS + 0x06)
+
+// badges
+#define FLAG_BADGE01_GET (SYSTEM_FLAGS + 0x07)
+#define FLAG_BADGE02_GET (SYSTEM_FLAGS + 0x08)
+#define FLAG_BADGE03_GET (SYSTEM_FLAGS + 0x09)
+#define FLAG_BADGE04_GET (SYSTEM_FLAGS + 0x0A)
+#define FLAG_BADGE05_GET (SYSTEM_FLAGS + 0x0B)
+#define FLAG_BADGE06_GET (SYSTEM_FLAGS + 0x0C)
+#define FLAG_BADGE07_GET (SYSTEM_FLAGS + 0x0D)
+#define FLAG_BADGE08_GET (SYSTEM_FLAGS + 0x0E)
+
+// cities and towns
+#define FLAG_VISITED_LITTLEROOT_TOWN (SYSTEM_FLAGS + 0x0F)
+#define FLAG_VISITED_OLDALE_TOWN (SYSTEM_FLAGS + 0x10)
+#define FLAG_VISITED_DEWFORD_TOWN (SYSTEM_FLAGS + 0x11)
+#define FLAG_VISITED_LAVARIDGE_TOWN (SYSTEM_FLAGS + 0x12)
+#define FLAG_VISITED_FALLARBOR_TOWN (SYSTEM_FLAGS + 0x13)
+#define FLAG_VISITED_VERDANTURF_TOWN (SYSTEM_FLAGS + 0x14)
+#define FLAG_VISITED_PACIFIDLOG_TOWN (SYSTEM_FLAGS + 0x15)
+#define FLAG_VISITED_PETALBURG_CITY (SYSTEM_FLAGS + 0x16)
+#define FLAG_VISITED_SLATEPORT_CITY (SYSTEM_FLAGS + 0x17)
+#define FLAG_VISITED_MAUVILLE_CITY (SYSTEM_FLAGS + 0x18)
+#define FLAG_VISITED_RUSTBORO_CITY (SYSTEM_FLAGS + 0x19)
+#define FLAG_VISITED_FORTREE_CITY (SYSTEM_FLAGS + 0x1A)
+#define FLAG_VISITED_LILYCOVE_CITY (SYSTEM_FLAGS + 0x1B)
+#define FLAG_VISITED_MOSSDEEP_CITY (SYSTEM_FLAGS + 0x1C)
+#define FLAG_VISITED_SOOTOPOLIS_CITY (SYSTEM_FLAGS + 0x1D)
+#define FLAG_VISITED_EVER_GRANDE_CITY (SYSTEM_FLAGS + 0x1E)
+
+#define FLAG_SYS_USE_FLASH (SYSTEM_FLAGS + 0x28)
+#define FLAG_SYS_USE_STRENGTH (SYSTEM_FLAGS + 0x29)
+#define FLAG_SYS_WEATHER_CTRL (SYSTEM_FLAGS + 0x2A)
+#define FLAG_SYS_CYCLING_ROAD (SYSTEM_FLAGS + 0x2B)
+#define FLAG_SYS_SAFARI_MODE (SYSTEM_FLAGS + 0x2C)
+#define FLAG_SYS_CRUISE_MODE (SYSTEM_FLAGS + 0x2D)
+
+#define FLAG_SYS_TV_HOME (SYSTEM_FLAGS + 0x30)
+#define FLAG_SYS_TV_WATCH (SYSTEM_FLAGS + 0x31)
+#define FLAG_SYS_TV_START (SYSTEM_FLAGS + 0x32)
+#define FLAG_SYS_POPWORD_INPUT (SYSTEM_FLAGS + 0x33)
+#define FLAG_SYS_MIX_RECORD (SYSTEM_FLAGS + 0x34)
+#define FLAG_SYS_CLOCK_SET (SYSTEM_FLAGS + 0x35)
+#define FLAG_SYS_NATIONAL_DEX (SYSTEM_FLAGS + 0x36)
+#define FLAG_SYS_CAVE_SHIP (SYSTEM_FLAGS + 0x37)
+#define FLAG_SYS_CAVE_WONDER (SYSTEM_FLAGS + 0x38)
+#define FLAG_SYS_CAVE_BATTLE (SYSTEM_FLAGS + 0x39)
+#define FLAG_SYS_SHOAL_TIDE (SYSTEM_FLAGS + 0x3A)
+#define FLAG_SYS_RIBBON_GET (SYSTEM_FLAGS + 0x3B)
+
+#define FLAG_LANDMARK_FLOWER_SHOP (SYSTEM_FLAGS + 0x3C)
+#define FLAG_LANDMARK_MR_BRINEY_HOUSE (SYSTEM_FLAGS + 0x3D)
+#define FLAG_LANDMARK_ABANDONED_SHIP (SYSTEM_FLAGS + 0x3E)
+#define FLAG_LANDMARK_SEASHORE_HOUSE (SYSTEM_FLAGS + 0x3F)
+#define FLAG_LANDMARK_NEW_MAUVILLE (SYSTEM_FLAGS + 0x40)
+#define FLAG_LANDMARK_OLD_LADY_REST_SHOP (SYSTEM_FLAGS + 0x41)
+#define FLAG_LANDMARK_TRICK_HOUSE (SYSTEM_FLAGS + 0x42)
+#define FLAG_LANDMARK_WINSTRATE_FAMILY (SYSTEM_FLAGS + 0x43)
+#define FLAG_LANDMARK_GLASS_WORKSHOP (SYSTEM_FLAGS + 0x44)
+#define FLAG_LANDMARK_LANETTES_HOUSE (SYSTEM_FLAGS + 0x45)
+#define FLAG_LANDMARK_POKEMON_DAYCARE (SYSTEM_FLAGS + 0x46)
+#define FLAG_LANDMARK_SEAFLOOR_CAVERN (SYSTEM_FLAGS + 0x47)
+#define FLAG_LANDMARK_BATTLE_TOWER (SYSTEM_FLAGS + 0x48)
+#define FLAG_LANDMARK_SOUTHERN_ISLAND (SYSTEM_FLAGS + 0x49)
+#define FLAG_LANDMARK_FIERY_PATH (SYSTEM_FLAGS + 0x4A)
+
+#define FLAG_SYS_PC_LANETTE (SYSTEM_FLAGS + 0x4B)
+#define FLAG_SYS_EXDATA_ENABLE (SYSTEM_FLAGS + 0x4C)
+#define FLAG_SYS_ENC_UP_ITEM (SYSTEM_FLAGS + 0x4D)
+#define FLAG_SYS_ENC_DOWN_ITEM (SYSTEM_FLAGS + 0x4E)
+#define FLAG_SYS_BRAILLE_DIG (SYSTEM_FLAGS + 0x4F)
+#define FLAG_SYS_BRAILLE_STRENGTH (SYSTEM_FLAGS + 0x50)
+#define FLAG_SYS_BRAILLE_WAIT (SYSTEM_FLAGS + 0x51)
+#define FLAG_SYS_BRAILLE_FLY (SYSTEM_FLAGS + 0x52)
+#define FLAG_SYS_HAS_EON_TICKET (SYSTEM_FLAGS + 0x53)
+#define FLAG_SYS_POKEMON_LEAGUE_FLY (SYSTEM_FLAGS + 0x54)
+
+#define FLAG_LANDMARK_ISLAND_CAVE (SYSTEM_FLAGS + 0x55)
+#define FLAG_LANDMARK_DESERT_RUINS (SYSTEM_FLAGS + 0x56)
+#define FLAG_LANDMARK_FOSSIL_MANIACS_HOUSE (SYSTEM_FLAGS + 0x57)
+#define FLAG_LANDMARK_SCORCHED_SLAB (SYSTEM_FLAGS + 0x58)
+#define FLAG_LANDMARK_ANCIENT_TOMB (SYSTEM_FLAGS + 0x59)
+#define FLAG_LANDMARK_TUNNELERS_REST_HOUSE (SYSTEM_FLAGS + 0x5A)
+#define FLAG_LANDMARK_HUNTERS_HOUSE (SYSTEM_FLAGS + 0x5B)
+#define FLAG_LANDMARK_SEALED_CHAMBER (SYSTEM_FLAGS + 0x5C)
+
+#define FLAG_SYS_TV_LATI (SYSTEM_FLAGS + 0x5D)
+
+#define FLAG_LANDMARK_SKY_PILLAR (SYSTEM_FLAGS + 0x5E)
+
+#define FLAG_SYS_SHOAL_ITEM (SYSTEM_FLAGS + 0x5F)
+#define FLAG_SYS_B_DASH (SYSTEM_FLAGS + 0x60) // got Running Shoes
+#define FLAG_SYS_CTRL_OBJ_DELETE (SYSTEM_FLAGS + 0x61)
+#define FLAG_SYS_RESET_RTC_ENABLE (SYSTEM_FLAGS + 0x62)
+
+#define FLAG_LANDMARK_BERRY_MASTERS_HOUSE (SYSTEM_FLAGS + 0x63)
+
+
+// Daily Flags. These 64 flags are cleared once per day.
+#define DAILY_FLAGS_START (SYSTEM_FLAGS + 0xC0)
+
+#define FLAG_DAILY_RECEIVED_BERRY_FALLARBOR (SYSTEM_FLAGS + 0xC1)
+#define FLAG_DAILY_UNKNOWN_8C2 (SYSTEM_FLAGS + 0xC2)
+
+#define FLAG_DAILY_PICKED_LOTTO_TICKET (SYSTEM_FLAGS + 0xCA)
+#define FLAG_DAILY_RECEIVED_BERRY_ROUTE114 (SYSTEM_FLAGS + 0xCB)
+#define FLAG_DAILY_RECEIVED_BERRY_ROUTE111 (SYSTEM_FLAGS + 0xCC)
+#define FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER (SYSTEM_FLAGS + 0xCD)
+#define FLAG_DAILY_RECEIVED_BERRY_ROUTE120 (SYSTEM_FLAGS + 0xCE)
+#define FLAG_DAILY_RECEIVED_BERRY_LILYCOVE (SYSTEM_FLAGS + 0xCF)
+#define FLAG_DAILY_RECEIVED_BERRY_FLOWER_SHOP (SYSTEM_FLAGS + 0xD0)
+#define FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER_WIFE (SYSTEM_FLAGS + 0xD1)
+#define FLAG_DAILY_RECEIVED_BERRY_SOOTOPOLIS (SYSTEM_FLAGS + 0xD2)
+// Daily flags end at 0x8FF
+
+// SPECIAL FLAGS (unknown purpose)
+
+#define FLAG_SPECIAL_FLAG_1 0x4001
+
+#endif // GUARD_CONSTANTS_FLAGS_H
diff --git a/include/game_stat.h b/include/constants/game_stat.h
index 70b6f51ce..47d703d85 100644
--- a/include/game_stat.h
+++ b/include/constants/game_stat.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_GAME_STAT_H
-#define GUARD_GAME_STAT_H
+#ifndef GUARD_CONSTANTS_GAME_STAT_H
+#define GUARD_CONSTANTS_GAME_STAT_H
#define GAME_STAT_SAVED_GAME 0
#define GAME_STAT_FIRST_HOF_PLAY_TIME 1
@@ -53,4 +53,4 @@
#define GAME_STAT_ENTERED_HOT_SPRINGS 49
#define NUM_GAME_STATS 50
-#endif // GUARD_GAME_STAT_H
+#endif // GUARD_CONSTANTS_GAME_STAT_H
diff --git a/include/hold_effects.h b/include/constants/hold_effects.h
index b653f5a92..17bc6846d 100644
--- a/include/hold_effects.h
+++ b/include/constants/hold_effects.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_HOLD_EFFECTS_H
-#define GUARD_HOLD_EFFECTS_H
+#ifndef GUARD_CONSTANTS_HOLD_EFFECTS_H
+#define GUARD_CONSTANTS_HOLD_EFFECTS_H
#define HOLD_EFFECT_NONE 0
#define HOLD_EFFECT_RESTORE_HP 1
@@ -69,4 +69,4 @@
#define HOLD_EFFECT_THICK_CLUB 65
#define HOLD_EFFECT_STICK 66
-#endif // GUARD_HOLD_EFFECTS_H
+#endif // GUARD_CONSTANTS_HOLD_EFFECTS_H
diff --git a/include/constants/items.h b/include/constants/items.h
new file mode 100644
index 000000000..48fba1427
--- /dev/null
+++ b/include/constants/items.h
@@ -0,0 +1,389 @@
+#ifndef GUARD_CONSTANTS_ITEMS_H
+#define GUARD_CONSTANTS_ITEMS_H
+
+#define ITEM_NONE 0
+#define ITEM_MASTER_BALL 1
+#define ITEM_ULTRA_BALL 2
+#define ITEM_GREAT_BALL 3
+#define ITEM_POKE_BALL 4
+#define ITEM_SAFARI_BALL 5
+#define ITEM_NET_BALL 6
+#define ITEM_DIVE_BALL 7
+#define ITEM_NEST_BALL 8
+#define ITEM_REPEAT_BALL 9
+#define ITEM_TIMER_BALL 10
+#define ITEM_LUXURY_BALL 11
+#define ITEM_PREMIER_BALL 12
+#define ITEM_POTION 13
+#define ITEM_ANTIDOTE 14
+#define ITEM_BURN_HEAL 15
+#define ITEM_ICE_HEAL 16
+#define ITEM_AWAKENING 17
+#define ITEM_PARALYZE_HEAL 18
+#define ITEM_FULL_RESTORE 19
+#define ITEM_MAX_POTION 20
+#define ITEM_HYPER_POTION 21
+#define ITEM_SUPER_POTION 22
+#define ITEM_FULL_HEAL 23
+#define ITEM_REVIVE 24
+#define ITEM_MAX_REVIVE 25
+#define ITEM_FRESH_WATER 26
+#define ITEM_SODA_POP 27
+#define ITEM_LEMONADE 28
+#define ITEM_MOOMOO_MILK 29
+#define ITEM_ENERGY_POWDER 30
+#define ITEM_ENERGY_ROOT 31
+#define ITEM_HEAL_POWDER 32
+#define ITEM_REVIVAL_HERB 33
+#define ITEM_ETHER 34
+#define ITEM_MAX_ETHER 35
+#define ITEM_ELIXIR 36
+#define ITEM_MAX_ELIXIR 37
+#define ITEM_LAVA_COOKIE 38
+#define ITEM_BLUE_FLUTE 39
+#define ITEM_YELLOW_FLUTE 40
+#define ITEM_RED_FLUTE 41
+#define ITEM_BLACK_FLUTE 42
+#define ITEM_WHITE_FLUTE 43
+#define ITEM_BERRY_JUICE 44
+#define ITEM_SACRED_ASH 45
+#define ITEM_SHOAL_SALT 46
+#define ITEM_SHOAL_SHELL 47
+#define ITEM_RED_SHARD 48
+#define ITEM_BLUE_SHARD 49
+#define ITEM_YELLOW_SHARD 50
+#define ITEM_GREEN_SHARD 51
+#define ITEM_034 52
+#define ITEM_035 53
+#define ITEM_036 54
+#define ITEM_037 55
+#define ITEM_038 56
+#define ITEM_039 57
+#define ITEM_03A 58
+#define ITEM_03B 59
+#define ITEM_03C 60
+#define ITEM_03D 61
+#define ITEM_03E 62
+#define ITEM_HP_UP 63
+#define ITEM_PROTEIN 64
+#define ITEM_IRON 65
+#define ITEM_CARBOS 66
+#define ITEM_CALCIUM 67
+#define ITEM_RARE_CANDY 68
+#define ITEM_PP_UP 69
+#define ITEM_ZINC 70
+#define ITEM_PP_MAX 71
+#define ITEM_048 72
+#define ITEM_GUARD_SPEC 73
+#define ITEM_DIRE_HIT 74
+#define ITEM_X_ATTACK 75
+#define ITEM_X_DEFEND 76
+#define ITEM_X_SPEED 77
+#define ITEM_X_ACCURACY 78
+#define ITEM_X_SPECIAL 79
+#define ITEM_POKE_DOLL 80
+#define ITEM_FLUFFY_TAIL 81
+#define ITEM_052 82
+#define ITEM_SUPER_REPEL 83
+#define ITEM_MAX_REPEL 84
+#define ITEM_ESCAPE_ROPE 85
+#define ITEM_REPEL 86
+#define ITEM_057 87
+#define ITEM_058 88
+#define ITEM_059 89
+#define ITEM_05A 90
+#define ITEM_05B 91
+#define ITEM_05C 92
+#define ITEM_SUN_STONE 93
+#define ITEM_MOON_STONE 94
+#define ITEM_FIRE_STONE 95
+#define ITEM_THUNDER_STONE 96
+#define ITEM_WATER_STONE 97
+#define ITEM_LEAF_STONE 98
+#define ITEM_063 99
+#define ITEM_064 100
+#define ITEM_065 101
+#define ITEM_066 102
+#define ITEM_TINY_MUSHROOM 103
+#define ITEM_BIG_MUSHROOM 104
+#define ITEM_069 105
+#define ITEM_PEARL 106
+#define ITEM_BIG_PEARL 107
+#define ITEM_STARDUST 108
+#define ITEM_STAR_PIECE 109
+#define ITEM_NUGGET 110
+#define ITEM_HEART_SCALE 111
+#define ITEM_070 112
+#define ITEM_071 113
+#define ITEM_072 114
+#define ITEM_073 115
+#define ITEM_074 116
+#define ITEM_075 117
+#define ITEM_076 118
+#define ITEM_077 119
+#define ITEM_078 120
+#define ITEM_ORANGE_MAIL 121
+#define ITEM_HARBOR_MAIL 122
+#define ITEM_GLITTER_MAIL 123
+#define ITEM_MECH_MAIL 124
+#define ITEM_WOOD_MAIL 125
+#define ITEM_WAVE_MAIL 126
+#define ITEM_BEAD_MAIL 127
+#define ITEM_SHADOW_MAIL 128
+#define ITEM_TROPIC_MAIL 129
+#define ITEM_DREAM_MAIL 130
+#define ITEM_FAB_MAIL 131
+#define ITEM_RETRO_MAIL 132
+#define ITEM_CHERI_BERRY 133
+#define ITEM_CHESTO_BERRY 134
+#define ITEM_PECHA_BERRY 135
+#define ITEM_RAWST_BERRY 136
+#define ITEM_ASPEAR_BERRY 137
+#define ITEM_LEPPA_BERRY 138
+#define ITEM_ORAN_BERRY 139
+#define ITEM_PERSIM_BERRY 140
+#define ITEM_LUM_BERRY 141
+#define ITEM_SITRUS_BERRY 142
+#define ITEM_FIGY_BERRY 143
+#define ITEM_WIKI_BERRY 144
+#define ITEM_MAGO_BERRY 145
+#define ITEM_AGUAV_BERRY 146
+#define ITEM_IAPAPA_BERRY 147
+#define ITEM_RAZZ_BERRY 148
+#define ITEM_BLUK_BERRY 149
+#define ITEM_NANAB_BERRY 150
+#define ITEM_WEPEAR_BERRY 151
+#define ITEM_PINAP_BERRY 152
+#define ITEM_POMEG_BERRY 153
+#define ITEM_KELPSY_BERRY 154
+#define ITEM_QUALOT_BERRY 155
+#define ITEM_HONDEW_BERRY 156
+#define ITEM_GREPA_BERRY 157
+#define ITEM_TAMATO_BERRY 158
+#define ITEM_CORNN_BERRY 159
+#define ITEM_MAGOST_BERRY 160
+#define ITEM_RABUTA_BERRY 161
+#define ITEM_NOMEL_BERRY 162
+#define ITEM_SPELON_BERRY 163
+#define ITEM_PAMTRE_BERRY 164
+#define ITEM_WATMEL_BERRY 165
+#define ITEM_DURIN_BERRY 166
+#define ITEM_BELUE_BERRY 167
+#define ITEM_LIECHI_BERRY 168
+#define ITEM_GANLON_BERRY 169
+#define ITEM_SALAC_BERRY 170
+#define ITEM_PETAYA_BERRY 171
+#define ITEM_APICOT_BERRY 172
+#define ITEM_LANSAT_BERRY 173
+#define ITEM_STARF_BERRY 174
+#define ITEM_ENIGMA_BERRY 175
+#define ITEM_0B0 176
+#define ITEM_0B1 177
+#define ITEM_0B2 178
+#define ITEM_BRIGHT_POWDER 179
+#define ITEM_WHITE_HERB 180
+#define ITEM_MACHO_BRACE 181
+#define ITEM_EXP_SHARE 182
+#define ITEM_QUICK_CLAW 183
+#define ITEM_SOOTHE_BELL 184
+#define ITEM_MENTAL_HERB 185
+#define ITEM_CHOICE_BAND 186
+#define ITEM_KINGS_ROCK 187
+#define ITEM_SILVER_POWDER 188
+#define ITEM_AMULET_COIN 189
+#define ITEM_CLEANSE_TAG 190
+#define ITEM_SOUL_DEW 191
+#define ITEM_DEEP_SEA_TOOTH 192
+#define ITEM_DEEP_SEA_SCALE 193
+#define ITEM_SMOKE_BALL 194
+#define ITEM_EVERSTONE 195
+#define ITEM_FOCUS_BAND 196
+#define ITEM_LUCKY_EGG 197
+#define ITEM_SCOPE_LENS 198
+#define ITEM_METAL_COAT 199
+#define ITEM_LEFTOVERS 200
+#define ITEM_DRAGON_SCALE 201
+#define ITEM_LIGHT_BALL 202
+#define ITEM_SOFT_SAND 203
+#define ITEM_HARD_STONE 204
+#define ITEM_MIRACLE_SEED 205
+#define ITEM_BLACK_GLASSES 206
+#define ITEM_BLACK_BELT 207
+#define ITEM_MAGNET 208
+#define ITEM_MYSTIC_WATER 209
+#define ITEM_SHARP_BEAK 210
+#define ITEM_POISON_BARB 211
+#define ITEM_NEVER_MELT_ICE 212
+#define ITEM_SPELL_TAG 213
+#define ITEM_TWISTED_SPOON 214
+#define ITEM_CHARCOAL 215
+#define ITEM_DRAGON_FANG 216
+#define ITEM_SILK_SCARF 217
+#define ITEM_UP_GRADE 218
+#define ITEM_SHELL_BELL 219
+#define ITEM_SEA_INCENSE 220
+#define ITEM_LAX_INCENSE 221
+#define ITEM_LUCKY_PUNCH 222
+#define ITEM_METAL_POWDER 223
+#define ITEM_THICK_CLUB 224
+#define ITEM_STICK 225
+#define ITEM_0E2 226
+#define ITEM_0E3 227
+#define ITEM_0E4 228
+#define ITEM_0E5 229
+#define ITEM_0E6 230
+#define ITEM_0E7 231
+#define ITEM_0E8 232
+#define ITEM_0E9 233
+#define ITEM_0EA 234
+#define ITEM_0EB 235
+#define ITEM_0EC 236
+#define ITEM_0ED 237
+#define ITEM_0EE 238
+#define ITEM_0EF 239
+#define ITEM_0F0 240
+#define ITEM_0F1 241
+#define ITEM_0F2 242
+#define ITEM_0F3 243
+#define ITEM_0F4 244
+#define ITEM_0F5 245
+#define ITEM_0F6 246
+#define ITEM_0F7 247
+#define ITEM_0F8 248
+#define ITEM_0F9 249
+#define ITEM_0FA 250
+#define ITEM_0FB 251
+#define ITEM_0FC 252
+#define ITEM_0FD 253
+#define ITEM_RED_SCARF 254
+#define ITEM_BLUE_SCARF 255
+#define ITEM_PINK_SCARF 256
+#define ITEM_GREEN_SCARF 257
+#define ITEM_YELLOW_SCARF 258
+#define ITEM_MACH_BIKE 259
+#define ITEM_COIN_CASE 260
+#define ITEM_ITEMFINDER 261
+#define ITEM_OLD_ROD 262
+#define ITEM_GOOD_ROD 263
+#define ITEM_SUPER_ROD 264
+#define ITEM_SS_TICKET 265
+#define ITEM_CONTEST_PASS 266
+#define ITEM_10B 267
+#define ITEM_WAILMER_PAIL 268
+#define ITEM_DEVON_GOODS 269
+#define ITEM_SOOT_SACK 270
+#define ITEM_BASEMENT_KEY 271
+#define ITEM_ACRO_BIKE 272
+#define ITEM_POKEBLOCK_CASE 273
+#define ITEM_LETTER 274
+#define ITEM_EON_TICKET 275
+#define ITEM_RED_ORB 276
+#define ITEM_BLUE_ORB 277
+#define ITEM_SCANNER 278
+#define ITEM_GO_GOGGLES 279
+#define ITEM_METEORITE 280
+#define ITEM_ROOM_1_KEY 281
+#define ITEM_ROOM_2_KEY 282
+#define ITEM_ROOM_4_KEY 283
+#define ITEM_ROOM_6_KEY 284
+#define ITEM_STORAGE_KEY 285
+#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
+#define ITEM_15B 347
+#define ITEM_15C 348
+
+// FireRed/LeafGreen
+#define ITEM_OAKS_PARCEL 349
+#define ITEM_POKE_FLUTE 350
+#define ITEM_SECRET_KEY 351
+#define ITEM_BIKE_VOUCHER 352
+#define ITEM_GOLD_TEETH 353
+#define ITEM_OLD_AMBER 354
+#define ITEM_CARD_KEY 355
+#define ITEM_LIFT_KEY 356
+#define ITEM_HELIX_FOSSIL 357
+#define ITEM_DOME_FOSSIL 358
+#define ITEM_SILPH_SCOPE 359
+#define ITEM_BICYCLE 360
+#define ITEM_TOWN_MAP 361
+#define ITEM_VS_SEEKER 362
+#define ITEM_FAME_CHECKER 363
+#define ITEM_TM_CASE 364
+#define ITEM_BERRY_POUCH 365
+#define ITEM_TEACHY_TV 366
+#define ITEM_TRI_PASS 367
+#define ITEM_RAINBOW_PASS 368
+#define ITEM_TEA 369
+#define ITEM_MYSTIC_TICKET 370
+#define ITEM_AURORA_TICKET 371
+#define ITEM_POWDER_JAR 372
+#define ITEM_RUBY 373
+#define ITEM_SAPPHIRE 374
+
+// Emerald
+#define ITEM_MAGMA_EMBLEM 375
+#define ITEM_OLD_SEA_MAP 376
+
+#define NUM_TECHNICAL_MACHINES 50
+#define NUM_HIDDEN_MACHINES 8
+
+#endif // GUARD_CONSTANTS_ITEMS_H
diff --git a/include/constants/map_objects.h b/include/constants/map_objects.h
new file mode 100644
index 000000000..6a1c9e11a
--- /dev/null
+++ b/include/constants/map_objects.h
@@ -0,0 +1,232 @@
+#ifndef GUARD_CONSTANTS_MAP_OBJECTS_H
+#define GUARD_CONSTANTS_MAP_OBJECTS_H
+
+#define MAP_OBJ_GFX_BRENDAN_NORMAL 0
+#define MAP_OBJ_GFX_BRENDAN_MACH_BIKE 1
+#define MAP_OBJ_GFX_BRENDAN_SURFING 2
+#define MAP_OBJ_GFX_BRENDAN_FIELD_MOVE 3
+#define MAP_OBJ_GFX_QUINTY_PLUMP 4
+#define MAP_OBJ_GFX_LITTLE_BOY_1 5
+#define MAP_OBJ_GFX_LITTLE_GIRL_1 6
+#define MAP_OBJ_GFX_BOY_1 7
+#define MAP_OBJ_GFX_GIRL_1 8
+#define MAP_OBJ_GFX_BOY_2 9
+#define MAP_OBJ_GFX_GIRL_2 10
+#define MAP_OBJ_GFX_LITTLE_BOY_2 11
+#define MAP_OBJ_GFX_LITTLE_GIRL_2 12
+#define MAP_OBJ_GFX_BOY_3 13
+#define MAP_OBJ_GFX_GIRL_3 14
+#define MAP_OBJ_GFX_BOY_4 15
+#define MAP_OBJ_GFX_WOMAN_1 16
+#define MAP_OBJ_GFX_FAT_MAN 17
+#define MAP_OBJ_GFX_WOMAN_2 18
+#define MAP_OBJ_GFX_MAN_1 19
+#define MAP_OBJ_GFX_WOMAN_3 20
+#define MAP_OBJ_GFX_OLD_MAN_1 21
+#define MAP_OBJ_GFX_OLD_WOMAN_1 22
+#define MAP_OBJ_GFX_MAN_2 23
+#define MAP_OBJ_GFX_WOMAN_4 24
+#define MAP_OBJ_GFX_MAN_3 25
+#define MAP_OBJ_GFX_WOMAN_5 26
+#define MAP_OBJ_GFX_COOK 27
+#define MAP_OBJ_GFX_WOMAN_6 28
+#define MAP_OBJ_GFX_OLD_MAN_2 29
+#define MAP_OBJ_GFX_OLD_WOMAN_2 30
+#define MAP_OBJ_GFX_CAMPER 31
+#define MAP_OBJ_GFX_PICNICKER 32
+#define MAP_OBJ_GFX_MAN_4 33
+#define MAP_OBJ_GFX_WOMAN_7 34
+#define MAP_OBJ_GFX_YOUNGSTER 35
+#define MAP_OBJ_GFX_BUG_CATCHER 36
+#define MAP_OBJ_GFX_PSYCHIC_M 37
+#define MAP_OBJ_GFX_SCHOOL_KID_M 38
+#define MAP_OBJ_GFX_MANIAC 39
+#define MAP_OBJ_GFX_HEX_MANIAC 40
+#define MAP_OBJ_GFX_WOMAN_8 41
+#define MAP_OBJ_GFX_SWIMMER_M 42
+#define MAP_OBJ_GFX_SWIMMER_F 43
+#define MAP_OBJ_GFX_BLACK_BELT 44
+#define MAP_OBJ_GFX_BEAUTY 45
+#define MAP_OBJ_GFX_SCIENTIST_1 46
+#define MAP_OBJ_GFX_LASS 47
+#define MAP_OBJ_GFX_GENTLEMAN 48
+#define MAP_OBJ_GFX_SAILOR 49
+#define MAP_OBJ_GFX_FISHERMAN 50
+#define MAP_OBJ_GFX_RUNNING_TRIATHLETE_M 51
+#define MAP_OBJ_GFX_RUNNING_TRIATHLETE_F 52
+#define MAP_OBJ_GFX_TUBER_F 53
+#define MAP_OBJ_GFX_TUBER_M 54
+#define MAP_OBJ_GFX_HIKER 55
+#define MAP_OBJ_GFX_CYCLING_TRIATHLETE_M 56
+#define MAP_OBJ_GFX_CYCLING_TRIATHLETE_F 57
+#define MAP_OBJ_GFX_NURSE 58
+#define MAP_OBJ_GFX_ITEM_BALL 59
+#define MAP_OBJ_GFX_BERRY_TREE 60
+#define MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES 61
+#define MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES 62
+#define MAP_OBJ_GFX_BRENDAN_ACRO_BIKE 63
+#define MAP_OBJ_GFX_PROF_BIRCH 64
+#define MAP_OBJ_GFX_MAN_5 65
+#define MAP_OBJ_GFX_MAN_6 66
+#define MAP_OBJ_GFX_REPORTER_M 67
+#define MAP_OBJ_GFX_REPORTER_F 68
+#define MAP_OBJ_GFX_BARD 69
+#define MAP_OBJ_GFX_HIPSTER 70
+#define MAP_OBJ_GFX_TRADER 71
+#define MAP_OBJ_GFX_STORYTELLER 72
+#define MAP_OBJ_GFX_GIDDY 73
+#define MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_1 74
+#define MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_2 75
+#define MAP_OBJ_GFX_UNUSED_NATU_DOLL 76
+#define MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL 77
+#define MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL 78
+#define MAP_OBJ_GFX_UNUSED_WOOPER_DOLL 79
+#define MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL 80
+#define MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL 81
+#define MAP_OBJ_GFX_CUTTABLE_TREE 82
+#define MAP_OBJ_GFX_MART_EMPLOYEE 83
+#define MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN 84
+#define MAP_OBJ_GFX_TEALA 85
+#define MAP_OBJ_GFX_BREAKABLE_ROCK 86
+#define MAP_OBJ_GFX_PUSHABLE_BOULDER 87
+#define MAP_OBJ_GFX_MR_BRINEYS_BOAT 88
+#define MAP_OBJ_GFX_MAY_NORMAL 89
+#define MAP_OBJ_GFX_MAY_MACH_BIKE 90
+#define MAP_OBJ_GFX_MAY_ACRO_BIKE 91
+#define MAP_OBJ_GFX_MAY_SURFING 92
+#define MAP_OBJ_GFX_MAY_FIELD_MOVE 93
+#define MAP_OBJ_GFX_TRUCK 94
+#define MAP_OBJ_GFX_MACHOKE_CARRYING_BOX 95
+#define MAP_OBJ_GFX_MACHOKE_FACING_AWAY 96
+#define MAP_OBJ_GFX_BIRCHS_BAG 97
+#define MAP_OBJ_GFX_POOCHYENA 98
+#define MAP_OBJ_GFX_ARTIST 99
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL 100
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE 101
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE 102
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING 103
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE 104
+#define MAP_OBJ_GFX_RIVAL_MAY_NORMAL 105
+#define MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE 106
+#define MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE 107
+#define MAP_OBJ_GFX_RIVAL_MAY_SURFING 108
+#define MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE 109
+#define MAP_OBJ_GFX_CAMERAMAN 110
+#define MAP_OBJ_GFX_BRENDAN_UNDERWATER 111
+#define MAP_OBJ_GFX_MAY_UNDERWATER 112
+#define MAP_OBJ_GFX_MOVING_BOX 113
+#define MAP_OBJ_GFX_CABLE_CAR 114
+#define MAP_OBJ_GFX_SCIENTIST_2 115
+#define MAP_OBJ_GFX_MAN_7 116
+#define MAP_OBJ_GFX_AQUA_MEMBER_M 117
+#define MAP_OBJ_GFX_AQUA_MEMBER_F 118
+#define MAP_OBJ_GFX_MAGMA_MEMBER_M 119
+#define MAP_OBJ_GFX_MAGMA_MEMBER_F 120
+#define MAP_OBJ_GFX_SIDNEY 121
+#define MAP_OBJ_GFX_PHOEBE 122
+#define MAP_OBJ_GFX_GLACIA 123
+#define MAP_OBJ_GFX_DRAKE 124
+#define MAP_OBJ_GFX_ROXANNE 125
+#define MAP_OBJ_GFX_BRAWLY 126
+#define MAP_OBJ_GFX_WATTSON 127
+#define MAP_OBJ_GFX_FLANNERY 128
+#define MAP_OBJ_GFX_NORMAN 129
+#define MAP_OBJ_GFX_WINONA 130
+#define MAP_OBJ_GFX_LIZA 131
+#define MAP_OBJ_GFX_TATE 132
+#define MAP_OBJ_GFX_WALLACE 133
+#define MAP_OBJ_GFX_STEVEN 134
+#define MAP_OBJ_GFX_WALLY 135
+#define MAP_OBJ_GFX_LITTLE_BOY_3 136
+#define MAP_OBJ_GFX_BRENDAN_FISHING 137
+#define MAP_OBJ_GFX_MAY_FISHING 138
+#define MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN 139
+#define MAP_OBJ_GFX_SS_TIDAL 140
+#define MAP_OBJ_GFX_SUBMARINE_SHADOW 141
+#define MAP_OBJ_GFX_PICHU_DOLL 142
+#define MAP_OBJ_GFX_PIKACHU_DOLL 143
+#define MAP_OBJ_GFX_MARILL_DOLL 144
+#define MAP_OBJ_GFX_TOGEPI_DOLL 145
+#define MAP_OBJ_GFX_CYNDAQUIL_DOLL 146
+#define MAP_OBJ_GFX_CHIKORITA_DOLL 147
+#define MAP_OBJ_GFX_TOTODILE_DOLL 148
+#define MAP_OBJ_GFX_JIGGLYPUFF_DOLL 149
+#define MAP_OBJ_GFX_MEOWTH_DOLL 150
+#define MAP_OBJ_GFX_CLEFAIRY_DOLL 151
+#define MAP_OBJ_GFX_DITTO_DOLL 152
+#define MAP_OBJ_GFX_SMOOCHUM_DOLL 153
+#define MAP_OBJ_GFX_TREECKO_DOLL 154
+#define MAP_OBJ_GFX_TORCHIC_DOLL 155
+#define MAP_OBJ_GFX_MUDKIP_DOLL 156
+#define MAP_OBJ_GFX_DUSKULL_DOLL 157
+#define MAP_OBJ_GFX_WYNAUT_DOLL 158
+#define MAP_OBJ_GFX_BALTOY_DOLL 159
+#define MAP_OBJ_GFX_KECLEON_DOLL 160
+#define MAP_OBJ_GFX_AZURILL_DOLL 161
+#define MAP_OBJ_GFX_SKITTY_DOLL 162
+#define MAP_OBJ_GFX_SWABLU_DOLL 163
+#define MAP_OBJ_GFX_GULPIN_DOLL 164
+#define MAP_OBJ_GFX_LOTAD_DOLL 165
+#define MAP_OBJ_GFX_SEEDOT_DOLL 166
+#define MAP_OBJ_GFX_PIKA_CUSHION 167
+#define MAP_OBJ_GFX_ROUND_CUSHION 168
+#define MAP_OBJ_GFX_KISS_CUSHION 169
+#define MAP_OBJ_GFX_ZIGZAG_CUSHION 170
+#define MAP_OBJ_GFX_SPIN_CUSHION 171
+#define MAP_OBJ_GFX_DIAMOND_CUSHION 172
+#define MAP_OBJ_GFX_BALL_CUSHION 173
+#define MAP_OBJ_GFX_GRASS_CUSHION 174
+#define MAP_OBJ_GFX_FIRE_CUSHION 175
+#define MAP_OBJ_GFX_WATER_CUSHION 176
+#define MAP_OBJ_GFX_BIG_SNORLAX_DOLL 177
+#define MAP_OBJ_GFX_BIG_RHYDON_DOLL 178
+#define MAP_OBJ_GFX_BIG_LAPRAS_DOLL 179
+#define MAP_OBJ_GFX_BIG_VENUSAUR_DOLL 180
+#define MAP_OBJ_GFX_BIG_CHARIZARD_DOLL 181
+#define MAP_OBJ_GFX_BIG_BLASTOISE_DOLL 182
+#define MAP_OBJ_GFX_BIG_WAILMER_DOLL 183
+#define MAP_OBJ_GFX_BIG_REGIROCK_DOLL 184
+#define MAP_OBJ_GFX_BIG_REGICE_DOLL 185
+#define MAP_OBJ_GFX_BIG_REGISTEEL_DOLL 186
+#define MAP_OBJ_GFX_LATIAS 187
+#define MAP_OBJ_GFX_LATIOS 188
+#define MAP_OBJ_GFX_BOY_5 189
+#define MAP_OBJ_GFX_CONTEST_JUDGE 190
+#define MAP_OBJ_GFX_BRENDAN_WATERING 191
+#define MAP_OBJ_GFX_MAY_WATERING 192
+#define MAP_OBJ_GFX_BRENDAN_DECORATING 193
+#define MAP_OBJ_GFX_MAY_DECORATING 194
+#define MAP_OBJ_GFX_ARCHIE 195
+#define MAP_OBJ_GFX_MAXIE 196
+#define MAP_OBJ_GFX_KYOGRE_1 197
+#define MAP_OBJ_GFX_GROUDON_1 198
+#define MAP_OBJ_GFX_FOSSIL 199
+#define MAP_OBJ_GFX_REGIROCK 200
+#define MAP_OBJ_GFX_REGICE 201
+#define MAP_OBJ_GFX_REGISTEEL 202
+#define MAP_OBJ_GFX_SKITTY 203
+#define MAP_OBJ_GFX_KECLEON_1 204
+#define MAP_OBJ_GFX_KYOGRE_2 205
+#define MAP_OBJ_GFX_GROUDON_2 206
+#define MAP_OBJ_GFX_RAYQUAZA 207
+#define MAP_OBJ_GFX_ZIGZAGOON 208
+#define MAP_OBJ_GFX_PIKACHU 209
+#define MAP_OBJ_GFX_AZUMARILL 210
+#define MAP_OBJ_GFX_WINGULL 211
+#define MAP_OBJ_GFX_KECLEON_2 212
+#define MAP_OBJ_GFX_TUBER_M_SWIMMING 213
+#define MAP_OBJ_GFX_AZURILL 214
+#define MAP_OBJ_GFX_MOM 215
+#define MAP_OBJ_GFX_LINK_BRENDAN 216
+#define MAP_OBJ_GFX_LINK_MAY 217
+
+#define SHADOW_SIZE_S 0
+#define SHADOW_SIZE_M 1
+#define SHADOW_SIZE_L 2
+#define SHADOW_SIZE_XL 3
+
+#define TRACKS_NONE 0
+#define TRACKS_FOOT 1
+#define TRACKS_BIKE_TIRE 2
+
+#endif // GUARD_CONSTANTS_MAP_OBJECTS_H
diff --git a/include/constants/maps.h b/include/constants/maps.h
new file mode 100644
index 000000000..f96591f60
--- /dev/null
+++ b/include/constants/maps.h
@@ -0,0 +1,474 @@
+#ifndef GUARD_CONSTANTS_MAPS_H
+#define GUARD_CONSTANTS_MAPS_H
+
+// Map Group 0
+#define MAP_PETALBURG_CITY (0 | (0 << 8))
+#define MAP_SLATEPORT_CITY (1 | (0 << 8))
+#define MAP_MAUVILLE_CITY (2 | (0 << 8))
+#define MAP_RUSTBORO_CITY (3 | (0 << 8))
+#define MAP_FORTREE_CITY (4 | (0 << 8))
+#define MAP_LILYCOVE_CITY (5 | (0 << 8))
+#define MAP_MOSSDEEP_CITY (6 | (0 << 8))
+#define MAP_SOOTOPOLIS_CITY (7 | (0 << 8))
+#define MAP_EVER_GRANDE_CITY (8 | (0 << 8))
+#define MAP_LITTLEROOT_TOWN (9 | (0 << 8))
+#define MAP_OLDALE_TOWN (10 | (0 << 8))
+#define MAP_DEWFORD_TOWN (11 | (0 << 8))
+#define MAP_LAVARIDGE_TOWN (12 | (0 << 8))
+#define MAP_FALLARBOR_TOWN (13 | (0 << 8))
+#define MAP_VERDANTURF_TOWN (14 | (0 << 8))
+#define MAP_PACIFIDLOG_TOWN (15 | (0 << 8))
+#define MAP_ROUTE101 (16 | (0 << 8))
+#define MAP_ROUTE102 (17 | (0 << 8))
+#define MAP_ROUTE103 (18 | (0 << 8))
+#define MAP_ROUTE104 (19 | (0 << 8))
+#define MAP_ROUTE105 (20 | (0 << 8))
+#define MAP_ROUTE106 (21 | (0 << 8))
+#define MAP_ROUTE107 (22 | (0 << 8))
+#define MAP_ROUTE108 (23 | (0 << 8))
+#define MAP_ROUTE109 (24 | (0 << 8))
+#define MAP_ROUTE110 (25 | (0 << 8))
+#define MAP_ROUTE111 (26 | (0 << 8))
+#define MAP_ROUTE112 (27 | (0 << 8))
+#define MAP_ROUTE113 (28 | (0 << 8))
+#define MAP_ROUTE114 (29 | (0 << 8))
+#define MAP_ROUTE115 (30 | (0 << 8))
+#define MAP_ROUTE116 (31 | (0 << 8))
+#define MAP_ROUTE117 (32 | (0 << 8))
+#define MAP_ROUTE118 (33 | (0 << 8))
+#define MAP_ROUTE119 (34 | (0 << 8))
+#define MAP_ROUTE120 (35 | (0 << 8))
+#define MAP_ROUTE121 (36 | (0 << 8))
+#define MAP_ROUTE122 (37 | (0 << 8))
+#define MAP_ROUTE123 (38 | (0 << 8))
+#define MAP_ROUTE124 (39 | (0 << 8))
+#define MAP_ROUTE125 (40 | (0 << 8))
+#define MAP_ROUTE126 (41 | (0 << 8))
+#define MAP_ROUTE127 (42 | (0 << 8))
+#define MAP_ROUTE128 (43 | (0 << 8))
+#define MAP_ROUTE129 (44 | (0 << 8))
+#define MAP_ROUTE130 (45 | (0 << 8))
+#define MAP_ROUTE131 (46 | (0 << 8))
+#define MAP_ROUTE132 (47 | (0 << 8))
+#define MAP_ROUTE133 (48 | (0 << 8))
+#define MAP_ROUTE134 (49 | (0 << 8))
+#define MAP_UNDERWATER1 (50 | (0 << 8))
+#define MAP_UNDERWATER2 (51 | (0 << 8))
+#define MAP_UNDERWATER3 (52 | (0 << 8))
+#define MAP_UNDERWATER4 (53 | (0 << 8))
+
+// Map Group 1
+#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8))
+#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F (1 | (1 << 8))
+#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F (2 | (1 << 8))
+#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F (3 | (1 << 8))
+#define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8))
+
+// Map Group 2
+#define MAP_OLDALE_TOWN_HOUSE1 (0 | (2 << 8))
+#define MAP_OLDALE_TOWN_HOUSE2 (1 | (2 << 8))
+#define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8))
+#define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8))
+#define MAP_OLDALE_TOWN_MART (4 | (2 << 8))
+
+// Map Group 3
+#define MAP_DEWFORD_TOWN_HOUSE1 (0 | (3 << 8))
+#define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8))
+#define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8))
+#define MAP_DEWFORD_TOWN_GYM (3 | (3 << 8))
+#define MAP_DEWFORD_TOWN_HALL (4 | (3 << 8))
+#define MAP_DEWFORD_TOWN_HOUSE2 (5 | (3 << 8))
+
+// Map Group 4
+#define MAP_LAVARIDGE_TOWN_HERB_SHOP (0 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_GYM_1F (1 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_GYM_B1F (2 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_HOUSE (3 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_MART (4 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8))
+
+// Map Group 5
+#define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_CONTEST_LOBBY (1 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_CONTEST_HALL (2 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (3 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (4 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_HOUSE1 (5 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_HOUSE2 (6 | (5 << 8))
+
+// Map Group 6
+#define MAP_VERDANTURF_TOWN_CONTEST_LOBBY (0 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_CONTEST_HALL (1 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_MART (2 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F (3 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F (4 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_WANDAS_HOUSE (5 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (6 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_HOUSE (7 | (6 << 8))
+
+// Map Group 7
+#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE1 (2 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE2 (3 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE3 (4 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE4 (5 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE5 (6 | (7 << 8))
+
+// Map Group 8
+#define MAP_PETALBURG_CITY_WALLYS_HOUSE (0 | (8 << 8))
+#define MAP_PETALBURG_CITY_GYM (1 | (8 << 8))
+#define MAP_PETALBURG_CITY_HOUSE1 (2 | (8 << 8))
+#define MAP_PETALBURG_CITY_HOUSE2 (3 | (8 << 8))
+#define MAP_PETALBURG_CITY_POKEMON_CENTER_1F (4 | (8 << 8))
+#define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8))
+#define MAP_PETALBURG_CITY_MART (6 | (8 << 8))
+
+// Map Group 9
+#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8))
+#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8))
+#define MAP_SLATEPORT_CITY_CONTEST_LOBBY (2 | (9 << 8))
+#define MAP_SLATEPORT_CITY_CONTEST_HALL (3 | (9 << 8))
+#define MAP_SLATEPORT_CITY_HOUSE1 (4 | (9 << 8))
+#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (5 | (9 << 8))
+#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (6 | (9 << 8))
+#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (7 | (9 << 8))
+#define MAP_SLATEPORT_CITY_HARBOR (8 | (9 << 8))
+#define MAP_SLATEPORT_CITY_HOUSE2 (9 | (9 << 8))
+#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (10 | (9 << 8))
+#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (11 | (9 << 8))
+#define MAP_SLATEPORT_CITY_MART (12 | (9 << 8))
+
+// Map Group 10
+#define MAP_MAUVILLE_CITY_GYM (0 | (10 << 8))
+#define MAP_MAUVILLE_CITY_BIKE_SHOP (1 | (10 << 8))
+#define MAP_MAUVILLE_CITY_HOUSE1 (2 | (10 << 8))
+#define MAP_MAUVILLE_CITY_GAME_CORNER (3 | (10 << 8))
+#define MAP_MAUVILLE_CITY_HOUSE2 (4 | (10 << 8))
+#define MAP_MAUVILLE_CITY_POKEMON_CENTER_1F (5 | (10 << 8))
+#define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8))
+#define MAP_MAUVILLE_CITY_MART (7 | (10 << 8))
+
+// Map Group 11
+#define MAP_RUSTBORO_CITY_DEVON_CORP_1F (0 | (11 << 8))
+#define MAP_RUSTBORO_CITY_DEVON_CORP_2F (1 | (11 << 8))
+#define MAP_RUSTBORO_CITY_DEVON_CORP_3F (2 | (11 << 8))
+#define MAP_RUSTBORO_CITY_GYM (3 | (11 << 8))
+#define MAP_RUSTBORO_CITY_POKEMON_SCHOOL (4 | (11 << 8))
+#define MAP_RUSTBORO_CITY_POKEMON_CENTER_1F (5 | (11 << 8))
+#define MAP_RUSTBORO_CITY_POKEMON_CENTER_2F (6 | (11 << 8))
+#define MAP_RUSTBORO_CITY_MART (7 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT1_1F (8 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT1_2F (9 | (11 << 8))
+#define MAP_RUSTBORO_CITY_HOUSE1 (10 | (11 << 8))
+#define MAP_RUSTBORO_CITY_CUTTERS_HOUSE (11 | (11 << 8))
+#define MAP_RUSTBORO_CITY_HOUSE2 (12 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT2_1F (13 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT2_2F (14 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT2_3F (15 | (11 << 8))
+#define MAP_RUSTBORO_CITY_HOUSE3 (16 | (11 << 8))
+
+// Map Group 12
+#define MAP_FORTREE_CITY_HOUSE1 (0 | (12 << 8))
+#define MAP_FORTREE_CITY_GYM (1 | (12 << 8))
+#define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8))
+#define MAP_FORTREE_CITY_POKEMON_CENTER_2F (3 | (12 << 8))
+#define MAP_FORTREE_CITY_MART (4 | (12 << 8))
+#define MAP_FORTREE_CITY_HOUSE2 (5 | (12 << 8))
+#define MAP_FORTREE_CITY_HOUSE3 (6 | (12 << 8))
+#define MAP_FORTREE_CITY_HOUSE4 (7 | (12 << 8))
+#define MAP_FORTREE_CITY_HOUSE5 (8 | (12 << 8))
+#define MAP_FORTREE_CITY_DECORATION_SHOP (9 | (12 << 8))
+
+// Map Group 13
+#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F (0 | (13 << 8))
+#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F (1 | (13 << 8))
+#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F (2 | (13 << 8))
+#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F (3 | (13 << 8))
+#define MAP_LILYCOVE_CITY_CONTEST_LOBBY (4 | (13 << 8))
+#define MAP_LILYCOVE_CITY_CONTEST_HALL (5 | (13 << 8))
+#define MAP_LILYCOVE_CITY_POKEMON_CENTER_1F (6 | (13 << 8))
+#define MAP_LILYCOVE_CITY_POKEMON_CENTER_2F (7 | (13 << 8))
+#define MAP_LILYCOVE_CITY_UNUSED_MART (8 | (13 << 8))
+#define MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HARBOR (10 | (13 << 8))
+#define MAP_LILYCOVE_CITY_EMPTY_MAP (11 | (13 << 8))
+#define MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE (12 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HOUSE1 (13 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HOUSE2 (14 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HOUSE3 (15 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HOUSE4 (16 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F (17 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F (18 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F (19 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F (20 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F (21 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (22 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (23 | (13 << 8))
+
+// Map Group 14
+#define MAP_MOSSDEEP_CITY_GYM (0 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_HOUSE1 (1 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_HOUSE2 (2 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F (3 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F (4 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_MART (5 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_HOUSE3 (6 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_STEVENS_HOUSE (7 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_HOUSE4 (8 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_SPACE_CENTER_1F (9 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_SPACE_CENTER_2F (10 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_GAME_CORNER_1F (11 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F (12 | (14 << 8))
+
+// Map Group 15
+#define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F (3 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_MART (4 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE1 (5 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE2 (6 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE3 (7 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE4 (8 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE5 (9 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE6 (10 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE7 (11 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE8 (12 | (15 << 8))
+
+// Map Group 16
+#define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM (1 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM (2 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_DRAKES_ROOM (3 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM (4 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR1 (5 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR2 (6 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR3 (7 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR4 (8 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR5 (9 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE (10 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_HALL_OF_FAME (11 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F (12 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8))
+
+// Map Group 17
+#define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8))
+#define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8))
+
+// Map Group 18
+#define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8))
+#define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8))
+
+// Map Group 19
+#define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8))
+#define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8))
+
+// Map Group 20
+#define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE (0 | (20 << 8))
+#define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8))
+#define MAP_ROUTE114_LANETTES_HOUSE (2 | (20 << 8))
+
+// Map Group 21
+#define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8))
+
+// Map Group 22
+#define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8))
+
+// Map Group 23
+#define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8))
+
+// Map Group 24
+#define MAP_METEOR_FALLS_1F_1R (0 | (24 << 8))
+#define MAP_METEOR_FALLS_1F_2R (1 | (24 << 8))
+#define MAP_METEOR_FALLS_B1F_1R (2 | (24 << 8))
+#define MAP_METEOR_FALLS_B1F_2R (3 | (24 << 8))
+#define MAP_RUSTURF_TUNNEL (4 | (24 << 8))
+#define MAP_UNDERWATER_SOOTOPOLIS_CITY (5 | (24 << 8))
+#define MAP_DESERT_RUINS (6 | (24 << 8))
+#define MAP_GRANITE_CAVE_1F (7 | (24 << 8))
+#define MAP_GRANITE_CAVE_B1F (8 | (24 << 8))
+#define MAP_GRANITE_CAVE_B2F (9 | (24 << 8))
+#define MAP_GRANITE_CAVE_STEVENS_ROOM (10 | (24 << 8))
+#define MAP_PETALBURG_WOODS (11 | (24 << 8))
+#define MAP_MT_CHIMNEY (12 | (24 << 8))
+#define MAP_JAGGED_PASS (13 | (24 << 8))
+#define MAP_FIERY_PATH (14 | (24 << 8))
+#define MAP_MT_PYRE_1F (15 | (24 << 8))
+#define MAP_MT_PYRE_2F (16 | (24 << 8))
+#define MAP_MT_PYRE_3F (17 | (24 << 8))
+#define MAP_MT_PYRE_4F (18 | (24 << 8))
+#define MAP_MT_PYRE_5F (19 | (24 << 8))
+#define MAP_MT_PYRE_6F (20 | (24 << 8))
+#define MAP_MT_PYRE_EXTERIOR (21 | (24 << 8))
+#define MAP_MT_PYRE_SUMMIT (22 | (24 << 8))
+#define MAP_AQUA_HIDEOUT_1F (23 | (24 << 8))
+#define MAP_AQUA_HIDEOUT_B1F (24 | (24 << 8))
+#define MAP_AQUA_HIDEOUT_B2F (25 | (24 << 8))
+#define MAP_UNDERWATER_SEAFLOOR_CAVERN (26 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ENTRANCE (27 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM1 (28 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM2 (29 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM3 (30 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM4 (31 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM5 (32 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM6 (33 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM7 (34 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM8 (35 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM9 (36 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_ENTRANCE (37 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_1F (38 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_B1F (39 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_B2F (40 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_B3F (41 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_B4F (42 | (24 << 8))
+#define MAP_VICTORY_ROAD_1F (43 | (24 << 8))
+#define MAP_VICTORY_ROAD_B1F (44 | (24 << 8))
+#define MAP_VICTORY_ROAD_B2F (45 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM (46 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM (47 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM (48 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM (49 | (24 << 8))
+#define MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM (50 | (24 << 8))
+#define MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM (51 | (24 << 8))
+#define MAP_NEW_MAUVILLE_ENTRANCE (52 | (24 << 8))
+#define MAP_NEW_MAUVILLE_INSIDE (53 | (24 << 8))
+#define MAP_ABANDONED_SHIP_DECK (54 | (24 << 8))
+#define MAP_ABANDONED_SHIP_CORRIDORS_1F (55 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOMS_1F (56 | (24 << 8))
+#define MAP_ABANDONED_SHIP_CORRIDORS_B1F (57 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOMS_B1F (58 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOMS2_B1F (59 | (24 << 8))
+#define MAP_ABANDONED_SHIP_UNDERWATER1 (60 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOM_B1F (61 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOMS2_1F (62 | (24 << 8))
+#define MAP_ABANDONED_SHIP_CAPTAINS_OFFICE (63 | (24 << 8))
+#define MAP_ABANDONED_SHIP_UNDERWATER2 (64 | (24 << 8))
+#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS (65 | (24 << 8))
+#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS (66 | (24 << 8))
+#define MAP_ISLAND_CAVE (67 | (24 << 8))
+#define MAP_ANCIENT_TOMB (68 | (24 << 8))
+#define MAP_UNDERWATER_ROUTE134 (69 | (24 << 8))
+#define MAP_UNDERWATER_SEALED_CHAMBER (70 | (24 << 8))
+#define MAP_SEALED_CHAMBER_OUTER_ROOM (71 | (24 << 8))
+#define MAP_SEALED_CHAMBER_INNER_ROOM (72 | (24 << 8))
+#define MAP_SCORCHED_SLAB (73 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_1F (74 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_B1F (75 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_B2F (76 | (24 << 8))
+#define MAP_SKY_PILLAR_ENTRANCE (77 | (24 << 8))
+#define MAP_SKY_PILLAR_OUTSIDE (78 | (24 << 8))
+#define MAP_SKY_PILLAR_1F (79 | (24 << 8))
+#define MAP_SKY_PILLAR_2F (80 | (24 << 8))
+#define MAP_SKY_PILLAR_3F (81 | (24 << 8))
+#define MAP_SKY_PILLAR_4F (82 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM (83 | (24 << 8))
+#define MAP_SKY_PILLAR_5F (84 | (24 << 8))
+#define MAP_SKY_PILLAR_TOP (85 | (24 << 8))
+
+// Map Group 25
+#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8))
+#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8))
+#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8))
+#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8))
+#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8))
+#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8))
+#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8))
+#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8))
+#define MAP_SINGLE_BATTLE_COLOSSEUM (24 | (25 << 8))
+#define MAP_TRADE_CENTER (25 | (25 << 8))
+#define MAP_RECORD_CORNER (26 | (25 << 8))
+#define MAP_DOUBLE_BATTLE_COLOSSEUM (27 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM1 (28 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_29 (29 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_30 (30 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_31 (31 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_32 (32 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_33 (33 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_34 (34 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM2 (35 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM3 (36 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM4 (37 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM5 (38 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM6 (39 | (25 << 8))
+#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8))
+#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8))
+#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8))
+#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8))
+
+// Map Group 26
+#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8))
+#define MAP_SAFARI_ZONE_NORTHEAST (1 | (26 << 8))
+#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8))
+#define MAP_SAFARI_ZONE_SOUTHEAST (3 | (26 << 8))
+#define MAP_BATTLE_TOWER_OUTSIDE (4 | (26 << 8))
+#define MAP_BATTLE_TOWER_LOBBY (5 | (26 << 8))
+#define MAP_BATTLE_TOWER_ELEVATOR (6 | (26 << 8))
+#define MAP_BATTLE_TOWER_CORRIDOR (7 | (26 << 8))
+#define MAP_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8))
+#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8))
+#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8))
+#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8))
+
+// Map Group 27
+#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8))
+#define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8))
+
+// Map Group 28
+#define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8))
+
+// Map Group 29
+#define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE (0 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_END (1 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR (2 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE1 (3 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE2 (4 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE3 (5 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE4 (6 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE5 (7 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE6 (8 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE7 (9 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE8 (10 | (29 << 8))
+#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (11 | (29 << 8))
+#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (12 | (29 << 8))
+
+// Map Group 30
+#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8))
+
+// Map Group 31
+#define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8))
+
+// Map Group 32
+#define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8))
+#define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8))
+#define MAP_ROUTE119_HOUSE (2 | (32 << 8))
+
+// Map Group 33
+#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8))
+
+
+#define MAP_NONE (0x7F | (0x7F << 8))
+#define MAP_UNDEFINED (0xFF | (0xFF << 8))
+
+
+#define MAP_GROUP(map) (MAP_##map >> 8)
+#define MAP_NUM(map) (MAP_##map & 0xFF)
+
+#endif // GUARD_CONSTANTS_MAPS_H
diff --git a/include/constants/mauville_man.h b/include/constants/mauville_man.h
new file mode 100644
index 000000000..b00e3a291
--- /dev/null
+++ b/include/constants/mauville_man.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_CONSTANTS_MAUVILLE_MAN_H
+#define GUARD_CONSTANTS_MAUVILLE_MAN_H
+
+#define MAUVILLE_MAN_BARD 0
+#define MAUVILLE_MAN_HIPSTER 1
+#define MAUVILLE_MAN_TRADER 2
+#define MAUVILLE_MAN_STORYTELLER 3
+#define MAUVILLE_MAN_GIDDY 4
+
+#endif // GUARD_CONSTANTS_MAUVILLE_MAN_H
diff --git a/include/constants/moves.h b/include/constants/moves.h
new file mode 100644
index 000000000..ceec76c13
--- /dev/null
+++ b/include/constants/moves.h
@@ -0,0 +1,360 @@
+#ifndef GUARD_CONSTANTS_MOVES_H
+#define GUARD_CONSTANTS_MOVES_H
+
+#define MOVE_NONE 0
+#define MOVE_POUND 1
+#define MOVE_KARATE_CHOP 2
+#define MOVE_DOUBLE_SLAP 3
+#define MOVE_COMET_PUNCH 4
+#define MOVE_MEGA_PUNCH 5
+#define MOVE_PAY_DAY 6
+#define MOVE_FIRE_PUNCH 7
+#define MOVE_ICE_PUNCH 8
+#define MOVE_THUNDER_PUNCH 9
+#define MOVE_SCRATCH 10
+#define MOVE_VICE_GRIP 11
+#define MOVE_GUILLOTINE 12
+#define MOVE_RAZOR_WIND 13
+#define MOVE_SWORDS_DANCE 14
+#define MOVE_CUT 15
+#define MOVE_GUST 16
+#define MOVE_WING_ATTACK 17
+#define MOVE_WHIRLWIND 18
+#define MOVE_FLY 19
+#define MOVE_BIND 20
+#define MOVE_SLAM 21
+#define MOVE_VINE_WHIP 22
+#define MOVE_STOMP 23
+#define MOVE_DOUBLE_KICK 24
+#define MOVE_MEGA_KICK 25
+#define MOVE_JUMP_KICK 26
+#define MOVE_ROLLING_KICK 27
+#define MOVE_SAND_ATTACK 28
+#define MOVE_HEADBUTT 29
+#define MOVE_HORN_ATTACK 30
+#define MOVE_FURY_ATTACK 31
+#define MOVE_HORN_DRILL 32
+#define MOVE_TACKLE 33
+#define MOVE_BODY_SLAM 34
+#define MOVE_WRAP 35
+#define MOVE_TAKE_DOWN 36
+#define MOVE_THRASH 37
+#define MOVE_DOUBLE_EDGE 38
+#define MOVE_TAIL_WHIP 39
+#define MOVE_POISON_STING 40
+#define MOVE_TWINEEDLE 41
+#define MOVE_PIN_MISSILE 42
+#define MOVE_LEER 43
+#define MOVE_BITE 44
+#define MOVE_GROWL 45
+#define MOVE_ROAR 46
+#define MOVE_SING 47
+#define MOVE_SUPERSONIC 48
+#define MOVE_SONIC_BOOM 49
+#define MOVE_DISABLE 50
+#define MOVE_ACID 51
+#define MOVE_EMBER 52
+#define MOVE_FLAMETHROWER 53
+#define MOVE_MIST 54
+#define MOVE_WATER_GUN 55
+#define MOVE_HYDRO_PUMP 56
+#define MOVE_SURF 57
+#define MOVE_ICE_BEAM 58
+#define MOVE_BLIZZARD 59
+#define MOVE_PSYBEAM 60
+#define MOVE_BUBBLE_BEAM 61
+#define MOVE_AURORA_BEAM 62
+#define MOVE_HYPER_BEAM 63
+#define MOVE_PECK 64
+#define MOVE_DRILL_PECK 65
+#define MOVE_SUBMISSION 66
+#define MOVE_LOW_KICK 67
+#define MOVE_COUNTER 68
+#define MOVE_SEISMIC_TOSS 69
+#define MOVE_STRENGTH 70
+#define MOVE_ABSORB 71
+#define MOVE_MEGA_DRAIN 72
+#define MOVE_LEECH_SEED 73
+#define MOVE_GROWTH 74
+#define MOVE_RAZOR_LEAF 75
+#define MOVE_SOLAR_BEAM 76
+#define MOVE_POISON_POWDER 77
+#define MOVE_STUN_SPORE 78
+#define MOVE_SLEEP_POWDER 79
+#define MOVE_PETAL_DANCE 80
+#define MOVE_STRING_SHOT 81
+#define MOVE_DRAGON_RAGE 82
+#define MOVE_FIRE_SPIN 83
+#define MOVE_THUNDER_SHOCK 84
+#define MOVE_THUNDERBOLT 85
+#define MOVE_THUNDER_WAVE 86
+#define MOVE_THUNDER 87
+#define MOVE_ROCK_THROW 88
+#define MOVE_EARTHQUAKE 89
+#define MOVE_FISSURE 90
+#define MOVE_DIG 91
+#define MOVE_TOXIC 92
+#define MOVE_CONFUSION 93
+#define MOVE_PSYCHIC 94
+#define MOVE_HYPNOSIS 95
+#define MOVE_MEDITATE 96
+#define MOVE_AGILITY 97
+#define MOVE_QUICK_ATTACK 98
+#define MOVE_RAGE 99
+#define MOVE_TELEPORT 100
+#define MOVE_NIGHT_SHADE 101
+#define MOVE_MIMIC 102
+#define MOVE_SCREECH 103
+#define MOVE_DOUBLE_TEAM 104
+#define MOVE_RECOVER 105
+#define MOVE_HARDEN 106
+#define MOVE_MINIMIZE 107
+#define MOVE_SMOKESCREEN 108
+#define MOVE_CONFUSE_RAY 109
+#define MOVE_WITHDRAW 110
+#define MOVE_DEFENSE_CURL 111
+#define MOVE_BARRIER 112
+#define MOVE_LIGHT_SCREEN 113
+#define MOVE_HAZE 114
+#define MOVE_REFLECT 115
+#define MOVE_FOCUS_ENERGY 116
+#define MOVE_BIDE 117
+#define MOVE_METRONOME 118
+#define MOVE_MIRROR_MOVE 119
+#define MOVE_SELF_DESTRUCT 120
+#define MOVE_EGG_BOMB 121
+#define MOVE_LICK 122
+#define MOVE_SMOG 123
+#define MOVE_SLUDGE 124
+#define MOVE_BONE_CLUB 125
+#define MOVE_FIRE_BLAST 126
+#define MOVE_WATERFALL 127
+#define MOVE_CLAMP 128
+#define MOVE_SWIFT 129
+#define MOVE_SKULL_BASH 130
+#define MOVE_SPIKE_CANNON 131
+#define MOVE_CONSTRICT 132
+#define MOVE_AMNESIA 133
+#define MOVE_KINESIS 134
+#define MOVE_SOFT_BOILED 135
+#define MOVE_HI_JUMP_KICK 136
+#define MOVE_GLARE 137
+#define MOVE_DREAM_EATER 138
+#define MOVE_POISON_GAS 139
+#define MOVE_BARRAGE 140
+#define MOVE_LEECH_LIFE 141
+#define MOVE_LOVELY_KISS 142
+#define MOVE_SKY_ATTACK 143
+#define MOVE_TRANSFORM 144
+#define MOVE_BUBBLE 145
+#define MOVE_DIZZY_PUNCH 146
+#define MOVE_SPORE 147
+#define MOVE_FLASH 148
+#define MOVE_PSYWAVE 149
+#define MOVE_SPLASH 150
+#define MOVE_ACID_ARMOR 151
+#define MOVE_CRABHAMMER 152
+#define MOVE_EXPLOSION 153
+#define MOVE_FURY_SWIPES 154
+#define MOVE_BONEMERANG 155
+#define MOVE_REST 156
+#define MOVE_ROCK_SLIDE 157
+#define MOVE_HYPER_FANG 158
+#define MOVE_SHARPEN 159
+#define MOVE_CONVERSION 160
+#define MOVE_TRI_ATTACK 161
+#define MOVE_SUPER_FANG 162
+#define MOVE_SLASH 163
+#define MOVE_SUBSTITUTE 164
+#define MOVE_STRUGGLE 165
+#define MOVE_SKETCH 166
+#define MOVE_TRIPLE_KICK 167
+#define MOVE_THIEF 168
+#define MOVE_SPIDER_WEB 169
+#define MOVE_MIND_READER 170
+#define MOVE_NIGHTMARE 171
+#define MOVE_FLAME_WHEEL 172
+#define MOVE_SNORE 173
+#define MOVE_CURSE 174
+#define MOVE_FLAIL 175
+#define MOVE_CONVERSION_2 176
+#define MOVE_AEROBLAST 177
+#define MOVE_COTTON_SPORE 178
+#define MOVE_REVERSAL 179
+#define MOVE_SPITE 180
+#define MOVE_POWDER_SNOW 181
+#define MOVE_PROTECT 182
+#define MOVE_MACH_PUNCH 183
+#define MOVE_SCARY_FACE 184
+#define MOVE_FAINT_ATTACK 185
+#define MOVE_SWEET_KISS 186
+#define MOVE_BELLY_DRUM 187
+#define MOVE_SLUDGE_BOMB 188
+#define MOVE_MUD_SLAP 189
+#define MOVE_OCTAZOOKA 190
+#define MOVE_SPIKES 191
+#define MOVE_ZAP_CANNON 192
+#define MOVE_FORESIGHT 193
+#define MOVE_DESTINY_BOND 194
+#define MOVE_PERISH_SONG 195
+#define MOVE_ICY_WIND 196
+#define MOVE_DETECT 197
+#define MOVE_BONE_RUSH 198
+#define MOVE_LOCK_ON 199
+#define MOVE_OUTRAGE 200
+#define MOVE_SANDSTORM 201
+#define MOVE_GIGA_DRAIN 202
+#define MOVE_ENDURE 203
+#define MOVE_CHARM 204
+#define MOVE_ROLLOUT 205
+#define MOVE_FALSE_SWIPE 206
+#define MOVE_SWAGGER 207
+#define MOVE_MILK_DRINK 208
+#define MOVE_SPARK 209
+#define MOVE_FURY_CUTTER 210
+#define MOVE_STEEL_WING 211
+#define MOVE_MEAN_LOOK 212
+#define MOVE_ATTRACT 213
+#define MOVE_SLEEP_TALK 214
+#define MOVE_HEAL_BELL 215
+#define MOVE_RETURN 216
+#define MOVE_PRESENT 217
+#define MOVE_FRUSTRATION 218
+#define MOVE_SAFEGUARD 219
+#define MOVE_PAIN_SPLIT 220
+#define MOVE_SACRED_FIRE 221
+#define MOVE_MAGNITUDE 222
+#define MOVE_DYNAMIC_PUNCH 223
+#define MOVE_MEGAHORN 224
+#define MOVE_DRAGON_BREATH 225
+#define MOVE_BATON_PASS 226
+#define MOVE_ENCORE 227
+#define MOVE_PURSUIT 228
+#define MOVE_RAPID_SPIN 229
+#define MOVE_SWEET_SCENT 230
+#define MOVE_IRON_TAIL 231
+#define MOVE_METAL_CLAW 232
+#define MOVE_VITAL_THROW 233
+#define MOVE_MORNING_SUN 234
+#define MOVE_SYNTHESIS 235
+#define MOVE_MOONLIGHT 236
+#define MOVE_HIDDEN_POWER 237
+#define MOVE_CROSS_CHOP 238
+#define MOVE_TWISTER 239
+#define MOVE_RAIN_DANCE 240
+#define MOVE_SUNNY_DAY 241
+#define MOVE_CRUNCH 242
+#define MOVE_MIRROR_COAT 243
+#define MOVE_PSYCH_UP 244
+#define MOVE_EXTREME_SPEED 245
+#define MOVE_ANCIENT_POWER 246
+#define MOVE_SHADOW_BALL 247
+#define MOVE_FUTURE_SIGHT 248
+#define MOVE_ROCK_SMASH 249
+#define MOVE_WHIRLPOOL 250
+#define MOVE_BEAT_UP 251
+#define MOVE_FAKE_OUT 252
+#define MOVE_UPROAR 253
+#define MOVE_STOCKPILE 254
+#define MOVE_SPIT_UP 255
+#define MOVE_SWALLOW 256
+#define MOVE_HEAT_WAVE 257
+#define MOVE_HAIL 258
+#define MOVE_TORMENT 259
+#define MOVE_FLATTER 260
+#define MOVE_WILL_O_WISP 261
+#define MOVE_MEMENTO 262
+#define MOVE_FACADE 263
+#define MOVE_FOCUS_PUNCH 264
+#define MOVE_SMELLING_SALT 265
+#define MOVE_FOLLOW_ME 266
+#define MOVE_NATURE_POWER 267
+#define MOVE_CHARGE 268
+#define MOVE_TAUNT 269
+#define MOVE_HELPING_HAND 270
+#define MOVE_TRICK 271
+#define MOVE_ROLE_PLAY 272
+#define MOVE_WISH 273
+#define MOVE_ASSIST 274
+#define MOVE_INGRAIN 275
+#define MOVE_SUPERPOWER 276
+#define MOVE_MAGIC_COAT 277
+#define MOVE_RECYCLE 278
+#define MOVE_REVENGE 279
+#define MOVE_BRICK_BREAK 280
+#define MOVE_YAWN 281
+#define MOVE_KNOCK_OFF 282
+#define MOVE_ENDEAVOR 283
+#define MOVE_ERUPTION 284
+#define MOVE_SKILL_SWAP 285
+#define MOVE_IMPRISON 286
+#define MOVE_REFRESH 287
+#define MOVE_GRUDGE 288
+#define MOVE_SNATCH 289
+#define MOVE_SECRET_POWER 290
+#define MOVE_DIVE 291
+#define MOVE_ARM_THRUST 292
+#define MOVE_CAMOUFLAGE 293
+#define MOVE_TAIL_GLOW 294
+#define MOVE_LUSTER_PURGE 295
+#define MOVE_MIST_BALL 296
+#define MOVE_FEATHER_DANCE 297
+#define MOVE_TEETER_DANCE 298
+#define MOVE_BLAZE_KICK 299
+#define MOVE_MUD_SPORT 300
+#define MOVE_ICE_BALL 301
+#define MOVE_NEEDLE_ARM 302
+#define MOVE_SLACK_OFF 303
+#define MOVE_HYPER_VOICE 304
+#define MOVE_POISON_FANG 305
+#define MOVE_CRUSH_CLAW 306
+#define MOVE_BLAST_BURN 307
+#define MOVE_HYDRO_CANNON 308
+#define MOVE_METEOR_MASH 309
+#define MOVE_ASTONISH 310
+#define MOVE_WEATHER_BALL 311
+#define MOVE_AROMATHERAPY 312
+#define MOVE_FAKE_TEARS 313
+#define MOVE_AIR_CUTTER 314
+#define MOVE_OVERHEAT 315
+#define MOVE_ODOR_SLEUTH 316
+#define MOVE_ROCK_TOMB 317
+#define MOVE_SILVER_WIND 318
+#define MOVE_METAL_SOUND 319
+#define MOVE_GRASS_WHISTLE 320
+#define MOVE_TICKLE 321
+#define MOVE_COSMIC_POWER 322
+#define MOVE_WATER_SPOUT 323
+#define MOVE_SIGNAL_BEAM 324
+#define MOVE_SHADOW_PUNCH 325
+#define MOVE_EXTRASENSORY 326
+#define MOVE_SKY_UPPERCUT 327
+#define MOVE_SAND_TOMB 328
+#define MOVE_SHEER_COLD 329
+#define MOVE_MUDDY_WATER 330
+#define MOVE_BULLET_SEED 331
+#define MOVE_AERIAL_ACE 332
+#define MOVE_ICICLE_SPEAR 333
+#define MOVE_IRON_DEFENSE 334
+#define MOVE_BLOCK 335
+#define MOVE_HOWL 336
+#define MOVE_DRAGON_CLAW 337
+#define MOVE_FRENZY_PLANT 338
+#define MOVE_BULK_UP 339
+#define MOVE_BOUNCE 340
+#define MOVE_MUD_SHOT 341
+#define MOVE_POISON_TAIL 342
+#define MOVE_COVET 343
+#define MOVE_VOLT_TACKLE 344
+#define MOVE_MAGICAL_LEAF 345
+#define MOVE_WATER_SPORT 346
+#define MOVE_CALM_MIND 347
+#define MOVE_LEAF_BLADE 348
+#define MOVE_DRAGON_DANCE 349
+#define MOVE_ROCK_BLAST 350
+#define MOVE_SHOCK_WAVE 351
+#define MOVE_WATER_PULSE 352
+#define MOVE_DOOM_DESIRE 353
+#define MOVE_PSYCHO_BOOST 354
+
+#endif // GUARD_CONSTANTS_MOVES_H
diff --git a/include/constants/opponents.h b/include/constants/opponents.h
new file mode 100644
index 000000000..d907153bd
--- /dev/null
+++ b/include/constants/opponents.h
@@ -0,0 +1,699 @@
+#ifndef GUARD_CONSTANTS_OPPONENTS_H
+#define GUARD_CONSTANTS_OPPONENTS_H
+
+#define OPPONENT_NONE 0
+#define OPPONENT_ARCHIE_1 1
+#define OPPONENT_GRUNT_1 2
+#define OPPONENT_GRUNT_2 3
+#define OPPONENT_GRUNT_3 4
+#define OPPONENT_GRUNT_4 5
+#define OPPONENT_GRUNT_5 6
+#define OPPONENT_GRUNT_6 7
+#define OPPONENT_GRUNT_7 8
+#define OPPONENT_GRUNT_8 9
+#define OPPONENT_GRUNT_9 10
+#define OPPONENT_GRUNT_10 11
+#define OPPONENT_GRUNT_11 12
+#define OPPONENT_GRUNT_12 13
+#define OPPONENT_GRUNT_13 14
+#define OPPONENT_GRUNT_14 15
+#define OPPONENT_GRUNT_15 16
+#define OPPONENT_GRUNT_16 17
+#define OPPONENT_GRUNT_17 18
+#define OPPONENT_GRUNT_18 19
+#define OPPONENT_GRUNT_19 20
+#define OPPONENT_GRUNT_20 21
+#define OPPONENT_GRUNT_21 22
+#define OPPONENT_GRUNT_22 23
+#define OPPONENT_GRUNT_23 24
+#define OPPONENT_GRUNT_24 25
+#define OPPONENT_GRUNT_25 26
+#define OPPONENT_GRUNT_26 27
+#define OPPONENT_GRUNT_27 28
+#define OPPONENT_ANONYMOUS_1 29
+#define OPPONENT_MATT_1 30
+#define OPPONENT_MATT_2 31
+#define OPPONENT_SHELLY_1 32
+#define OPPONENT_SHELLY_2 33
+#define OPPONENT_ARCHIE_2 34
+#define OPPONENT_ARCHIE_3 35
+#define OPPONENT_DAISY 36
+#define OPPONENT_ROSE_1 37
+#define OPPONENT_LILY 38
+#define OPPONENT_VIOLET 39
+#define OPPONENT_ROSE_2 40
+#define OPPONENT_ROSE_3 41
+#define OPPONENT_ROSE_4 42
+#define OPPONENT_ROSE_5 43
+#define OPPONENT_DUSTY_1 44
+#define OPPONENT_CHIP 45
+#define OPPONENT_FOSTER 46
+#define OPPONENT_DUSTY_2 47
+#define OPPONENT_DUSTY_3 48
+#define OPPONENT_DUSTY_4 49
+#define OPPONENT_DUSTY_5 50
+#define OPPONENT_GABBY_AND_TY_1 51
+#define OPPONENT_GABBY_AND_TY_2 52
+#define OPPONENT_GABBY_AND_TY_3 53
+#define OPPONENT_GABBY_AND_TY_4 54
+#define OPPONENT_GABBY_AND_TY_5 55
+#define OPPONENT_GABBY_AND_TY_6 56
+#define OPPONENT_LOLA_1 57
+#define OPPONENT_CARMEN 58
+#define OPPONENT_GWEN 59
+#define OPPONENT_LOLA_2 60
+#define OPPONENT_LOLA_3 61
+#define OPPONENT_LOLA_4 62
+#define OPPONENT_LOLA_5 63
+#define OPPONENT_RICKY_1 64
+#define OPPONENT_SIMON 65
+#define OPPONENT_CHARLIE 66
+#define OPPONENT_RICKY_2 67
+#define OPPONENT_RICKY_3 68
+#define OPPONENT_RICKY_4 69
+#define OPPONENT_RICKY_5 70
+#define OPPONENT_RANDALL 71
+#define OPPONENT_PARKER 72
+#define OPPONENT_GEORGE 73
+#define OPPONENT_BERKE 74
+#define OPPONENT_CLYDE 75
+#define OPPONENT_VINCENT 76
+#define OPPONENT_LEROY 77
+#define OPPONENT_WILTON_1 78
+#define OPPONENT_EDGAR 79
+#define OPPONENT_ALBERT 80
+#define OPPONENT_SAMUEL 81
+#define OPPONENT_VITO 82
+#define OPPONENT_OWEN 83
+#define OPPONENT_WILTON_2 84
+#define OPPONENT_WILTON_3 85
+#define OPPONENT_WILTON_4 86
+#define OPPONENT_WILTON_5 87
+#define OPPONENT_WARREN 88
+#define OPPONENT_MARY 89
+#define OPPONENT_LORI 90
+#define OPPONENT_JODY 91
+#define OPPONENT_WENDY 92
+#define OPPONENT_ELAINE 93
+#define OPPONENT_BROOKE_1 94
+#define OPPONENT_JENNIFER 95
+#define OPPONENT_HOPE 96
+#define OPPONENT_SHANNON 97
+#define OPPONENT_MICHELLE 98
+#define OPPONENT_CAROLINE 99
+#define OPPONENT_JULIE 100
+#define OPPONENT_BROOKE_2 101
+#define OPPONENT_BROOKE_3 102
+#define OPPONENT_BROOKE_4 103
+#define OPPONENT_BROOKE_5 104
+#define OPPONENT_PATRICIA 105
+#define OPPONENT_KINDRA 106
+#define OPPONENT_TAMMY 107
+#define OPPONENT_VALERIE_1 108
+#define OPPONENT_TASHA 109
+#define OPPONENT_VALERIE_2 110
+#define OPPONENT_VALERIE_3 111
+#define OPPONENT_VALERIE_4 112
+#define OPPONENT_VALERIE_5 113
+#define OPPONENT_CINDY_1 114
+#define OPPONENT_ANONYMOUS_2 115
+#define OPPONENT_BRIANNA_1 116
+#define OPPONENT_CINDY_2 117
+#define OPPONENT_BRIANNA_2 118
+#define OPPONENT_ANETTE 119
+#define OPPONENT_CINDY_3 120
+#define OPPONENT_CINDY_4 121
+#define OPPONENT_CINDY_5 122
+#define OPPONENT_CINDY_6 123
+#define OPPONENT_MELISSA 124
+#define OPPONENT_SHEILA 125
+#define OPPONENT_SHIRLEY 126
+#define OPPONENT_JESSICA_1 127
+#define OPPONENT_CONNIE 128
+#define OPPONENT_BRIDGET 129
+#define OPPONENT_OLIVIA 130
+#define OPPONENT_TIFFANY 131
+#define OPPONENT_JESSICA_2 132
+#define OPPONENT_JESSICA_3 133
+#define OPPONENT_JESSICA_4 134
+#define OPPONENT_JESSICA_5 135
+#define OPPONENT_WINSTON_1 136
+#define OPPONENT_ANONYMOUS_3 137
+#define OPPONENT_GARRET 138
+#define OPPONENT_WINSTON_2 139
+#define OPPONENT_WINSTON_3 140
+#define OPPONENT_WINSTON_4 141
+#define OPPONENT_WINSTON_5 142
+#define OPPONENT_STEVE_1 143
+#define OPPONENT_CHRIS 144
+#define OPPONENT_MARK 145
+#define OPPONENT_KENN 146
+#define OPPONENT_STEVE_2 147
+#define OPPONENT_STEVE_3 148
+#define OPPONENT_STEVE_4 149
+#define OPPONENT_STEVE_5 150
+#define OPPONENT_LUIS 151
+#define OPPONENT_AUSTIN 152
+#define OPPONENT_DOUGLAS 153
+#define OPPONENT_DARRIN 154
+#define OPPONENT_TONY_1 155
+#define OPPONENT_JEROME 156
+#define OPPONENT_MATTHEW 157
+#define OPPONENT_DAVID 158
+#define OPPONENT_SPENCER 159
+#define OPPONENT_ROLAND 160
+#define OPPONENT_CODY 161
+#define OPPONENT_STAN 162
+#define OPPONENT_BARRY 163
+#define OPPONENT_DEAN 164
+#define OPPONENT_RODNEY 165
+#define OPPONENT_RICHARD 166
+#define OPPONENT_HERMAN 167
+#define OPPONENT_ANONYMOUS_4 168
+#define OPPONENT_GILBERT 169
+#define OPPONENT_FRANKLIN 170
+#define OPPONENT_DANNY 171
+#define OPPONENT_JACK 172
+#define OPPONENT_DUDLEY 173
+#define OPPONENT_CHAD 174
+#define OPPONENT_TONY_2 175
+#define OPPONENT_TONY_3 176
+#define OPPONENT_TONY_4 177
+#define OPPONENT_TONY_5 178
+#define OPPONENT_HIDEKI 179
+#define OPPONENT_HITOSHI 180
+#define OPPONENT_KIYO 181
+#define OPPONENT_KOICHI 182
+#define OPPONENT_NOB_1 183
+#define OPPONENT_NOB_2 184
+#define OPPONENT_NOB_3 185
+#define OPPONENT_NOB_4 186
+#define OPPONENT_NOB_5 187
+#define OPPONENT_YUJI 188
+#define OPPONENT_DAISUKE 189
+#define OPPONENT_ATSUSHI 190
+#define OPPONENT_KIRK 191
+#define OPPONENT_SCOTT 192
+#define OPPONENT_HARVEY 193
+#define OPPONENT_SHAWN 194
+#define OPPONENT_RANDY 195
+#define OPPONENT_DALTON_1 196
+#define OPPONENT_DALTON_2 197
+#define OPPONENT_DALTON_3 198
+#define OPPONENT_DALTON_4 199
+#define OPPONENT_DALTON_5 200
+#define OPPONENT_COLE 201
+#define OPPONENT_FLINT 202
+#define OPPONENT_AXLE 203
+#define OPPONENT_JAKE 204
+#define OPPONENT_ANDY 205
+#define OPPONENT_BERNIE_1 206
+#define OPPONENT_BERNIE_2 207
+#define OPPONENT_BERNIE_3 208
+#define OPPONENT_BERNIE_4 209
+#define OPPONENT_BERNIE_5 210
+#define OPPONENT_DREW 211
+#define OPPONENT_CLIFF 212
+#define OPPONENT_LARRY 213
+#define OPPONENT_SHANE 214
+#define OPPONENT_JUSTIN 215
+#define OPPONENT_ETHAN_1 216
+#define OPPONENT_JEFF 217
+#define OPPONENT_TRAVIS 218
+#define OPPONENT_ETHAN_2 219
+#define OPPONENT_ETHAN_3 220
+#define OPPONENT_ETHAN_4 221
+#define OPPONENT_ETHAN_5 222
+#define OPPONENT_BRENT 223
+#define OPPONENT_DONALD 224
+#define OPPONENT_TAYLOR 225
+#define OPPONENT_BRANDON_1 226
+#define OPPONENT_DEREK 227
+#define OPPONENT_BRANDON_2 228
+#define OPPONENT_BRANDON_3 229
+#define OPPONENT_BRANDON_4 230
+#define OPPONENT_BRANDON_5 231
+#define OPPONENT_EDWARD 232
+#define OPPONENT_PRESTON 233
+#define OPPONENT_VIRGIL 234
+#define OPPONENT_FRITZ 235
+#define OPPONENT_WILLIAM 236
+#define OPPONENT_JOSHUA 237
+#define OPPONENT_CAMERON_1 238
+#define OPPONENT_CAMERON_2 239
+#define OPPONENT_CAMERON_3 240
+#define OPPONENT_CAMERON_4 241
+#define OPPONENT_CAMERON_5 242
+#define OPPONENT_JACLYN 243
+#define OPPONENT_HANNAH 244
+#define OPPONENT_SAMANTHA 245
+#define OPPONENT_MAURA 246
+#define OPPONENT_KAYLA 247
+#define OPPONENT_ALEXIS 248
+#define OPPONENT_JACKI_1 249
+#define OPPONENT_JACKI_2 250
+#define OPPONENT_JACKI_3 251
+#define OPPONENT_JACKI_4 252
+#define OPPONENT_JACKI_5 253
+#define OPPONENT_WALTER_1 254
+#define OPPONENT_TUCKER 255
+#define OPPONENT_THOMAS 256
+#define OPPONENT_WALTER_2 257
+#define OPPONENT_WALTER_3 258
+#define OPPONENT_WALTER_4 259
+#define OPPONENT_WALTER_5 260
+#define OPPONENT_SIDNEY 261
+#define OPPONENT_PHOEBE 262
+#define OPPONENT_GLACIA 263
+#define OPPONENT_DRAKE 264
+#define OPPONENT_ROXANNE 265
+#define OPPONENT_BRAWLY 266
+#define OPPONENT_WATTSON 267
+#define OPPONENT_FLANNERY 268
+#define OPPONENT_NORMAN 269
+#define OPPONENT_WINONA 270
+#define OPPONENT_TATE_AND_LIZA 271
+#define OPPONENT_WALLACE 272
+#define OPPONENT_JERRY_1 273
+#define OPPONENT_TED 274
+#define OPPONENT_PAUL 275
+#define OPPONENT_JERRY_2 276
+#define OPPONENT_JERRY_3 277
+#define OPPONENT_JERRY_4 278
+#define OPPONENT_JERRY_5 279
+#define OPPONENT_KAREN_1 280
+#define OPPONENT_GEORGIA 281
+#define OPPONENT_KAREN_2 282
+#define OPPONENT_KAREN_3 283
+#define OPPONENT_KAREN_4 284
+#define OPPONENT_KAREN_5 285
+#define OPPONENT_KATE_AND_JOY 286
+#define OPPONENT_ANNA_AND_MEG_1 287
+#define OPPONENT_ANNA_AND_MEG_2 288
+#define OPPONENT_ANNA_AND_MEG_3 289
+#define OPPONENT_ANNA_AND_MEG_4 290
+#define OPPONENT_ANNA_AND_MEG_5 291
+#define OPPONENT_VICTOR 292
+#define OPPONENT_MIGUEL_1 293
+#define OPPONENT_COLTON 294
+#define OPPONENT_MIGUEL_2 295
+#define OPPONENT_MIGUEL_3 296
+#define OPPONENT_MIGUEL_4 297
+#define OPPONENT_MIGUEL_5 298
+#define OPPONENT_VICTORIA 299
+#define OPPONENT_VANESSA 300
+#define OPPONENT_MARISSA 301
+#define OPPONENT_ISABEL_1 302
+#define OPPONENT_ISABEL_2 303
+#define OPPONENT_ISABEL_3 304
+#define OPPONENT_ISABEL_4 305
+#define OPPONENT_ISABEL_5 306
+#define OPPONENT_TIMOTHY_1 307
+#define OPPONENT_TIMOTHY_2 308
+#define OPPONENT_TIMOTHY_3 309
+#define OPPONENT_TIMOTHY_4 310
+#define OPPONENT_TIMOTHY_5 311
+#define OPPONENT_VICKY 312
+#define OPPONENT_SHELBY_1 313
+#define OPPONENT_SHELBY_2 314
+#define OPPONENT_SHELBY_3 315
+#define OPPONENT_SHELBY_4 316
+#define OPPONENT_SHELBY_5 317
+#define OPPONENT_CALVIN_1 318
+#define OPPONENT_BILLY 319
+#define OPPONENT_JOSH 320
+#define OPPONENT_TOMMY 321
+#define OPPONENT_JOEY 322
+#define OPPONENT_BEN 323
+#define OPPONENT_ANONYMOUS_5 324
+#define OPPONENT_KEVIN 325
+#define OPPONENT_NEAL 326
+#define OPPONENT_DILLON 327
+#define OPPONENT_CALVIN_2 328
+#define OPPONENT_CALVIN_3 329
+#define OPPONENT_CALVIN_4 330
+#define OPPONENT_CALVIN_5 331
+#define OPPONENT_EDDIE 332
+#define OPPONENT_ALLEN 333
+#define OPPONENT_TIMMY 334
+#define OPPONENT_STEVEN 335
+#define OPPONENT_ANDREW 336
+#define OPPONENT_IVAN 337
+#define OPPONENT_CLAUDE 338
+#define OPPONENT_ELLIOT_1 339
+#define OPPONENT_NED 340
+#define OPPONENT_DALE 341
+#define OPPONENT_NOLAN 342
+#define OPPONENT_BARNY 343
+#define OPPONENT_WADE 344
+#define OPPONENT_CARTER 345
+#define OPPONENT_ELLIOT_2 346
+#define OPPONENT_ELLIOT_3 347
+#define OPPONENT_ELLIOT_4 348
+#define OPPONENT_ELLIOT_5 349
+#define OPPONENT_RONALD 350
+#define OPPONENT_JACOB 351
+#define OPPONENT_ANTHONY 352
+#define OPPONENT_BENJAMIN_1 353
+#define OPPONENT_BENJAMIN_2 354
+#define OPPONENT_BENJAMIN_3 355
+#define OPPONENT_BENJAMIN_4 356
+#define OPPONENT_BENJAMIN_5 357
+#define OPPONENT_ABIGAIL_1 358
+#define OPPONENT_JASMINE 359
+#define OPPONENT_ABIGAIL_2 360
+#define OPPONENT_ABIGAIL_3 361
+#define OPPONENT_ABIGAIL_4 362
+#define OPPONENT_ABIGAIL_5 363
+#define OPPONENT_DYLAN_1 364
+#define OPPONENT_DYLAN_2 365
+#define OPPONENT_DYLAN_3 366
+#define OPPONENT_DYLAN_4 367
+#define OPPONENT_DYLAN_5 368
+#define OPPONENT_MARIA_1 369
+#define OPPONENT_MARIA_2 370
+#define OPPONENT_MARIA_3 371
+#define OPPONENT_MARIA_4 372
+#define OPPONENT_MARIA_5 373
+#define OPPONENT_CALEB 374
+#define OPPONENT_ANONYMOUS_6 375
+#define OPPONENT_ISAIAH_1 376
+#define OPPONENT_ANONYMOUS_7 377
+#define OPPONENT_CHASE 378
+#define OPPONENT_ISAIAH_2 379
+#define OPPONENT_ISAIAH_3 380
+#define OPPONENT_ISAIAH_4 381
+#define OPPONENT_ISAIAH_5 382
+#define OPPONENT_ANONYMOUS_8 383
+#define OPPONENT_CONNOR 384
+#define OPPONENT_ANONYMOUS_9 385
+#define OPPONENT_KATELYN_1 386
+#define OPPONENT_ALLISON 387
+#define OPPONENT_KATELYN_2 388
+#define OPPONENT_KATELYN_3 389
+#define OPPONENT_KATELYN_4 390
+#define OPPONENT_KATELYN_5 391
+#define OPPONENT_NICOLAS_1 392
+#define OPPONENT_NICOLAS_2 393
+#define OPPONENT_NICOLAS_3 394
+#define OPPONENT_NICOLAS_4 395
+#define OPPONENT_NICOLAS_5 396
+#define OPPONENT_AARON 397
+#define OPPONENT_PERRY 398
+#define OPPONENT_HUGH 399
+#define OPPONENT_PHIL 400
+#define OPPONENT_JARED 401
+#define OPPONENT_ANONYMOUS_10 402
+#define OPPONENT_TANNER 403
+#define OPPONENT_WILL 404
+#define OPPONENT_COLIN 405
+#define OPPONENT_ROBERT_1 406
+#define OPPONENT_BENNY 407
+#define OPPONENT_CHESTER 408
+#define OPPONENT_ROBERT_2 409
+#define OPPONENT_ROBERT_3 410
+#define OPPONENT_ROBERT_4 411
+#define OPPONENT_ROBERT_5 412
+#define OPPONENT_ALEX 413
+#define OPPONENT_BECK 414
+#define OPPONENT_YASU 415
+#define OPPONENT_TAKASHI 416
+#define OPPONENT_MAKOTO 417
+#define OPPONENT_HIDEO_1 418
+#define OPPONENT_LAO_1 419
+#define OPPONENT_LUNG 420
+#define OPPONENT_LAO_2 421
+#define OPPONENT_LAO_3 422
+#define OPPONENT_LAO_4 423
+#define OPPONENT_LAO_5 424
+#define OPPONENT_TESSA 425
+#define OPPONENT_LAURA 426
+#define OPPONENT_CYNDY_1 427
+#define OPPONENT_CORA 428
+#define OPPONENT_JILL 429
+#define OPPONENT_CYNDY_2 430
+#define OPPONENT_CYNDY_3 431
+#define OPPONENT_CYNDY_4 432
+#define OPPONENT_CYNDY_5 433
+#define OPPONENT_MADELINE_1 434
+#define OPPONENT_CLARISSA 435
+#define OPPONENT_ANGELICA 436
+#define OPPONENT_MADELINE_2 437
+#define OPPONENT_MADELINE_3 438
+#define OPPONENT_MADELINE_4 439
+#define OPPONENT_MADELINE_5 440
+#define OPPONENT_BEVERLY 441
+#define OPPONENT_DAWN 442
+#define OPPONENT_NICOLE 443
+#define OPPONENT_DENISE 444
+#define OPPONENT_BETH 445
+#define OPPONENT_TARA 446
+#define OPPONENT_MISSY 447
+#define OPPONENT_ALICE 448
+#define OPPONENT_JENNY_1 449
+#define OPPONENT_GRACE 450
+#define OPPONENT_TANYA 451
+#define OPPONENT_SHARON 452
+#define OPPONENT_NIKKI 453
+#define OPPONENT_BRENDA 454
+#define OPPONENT_KATIE 455
+#define OPPONENT_SUSIE 456
+#define OPPONENT_KARA 457
+#define OPPONENT_DANA 458
+#define OPPONENT_ERIN 459
+#define OPPONENT_DEBRA 460
+#define OPPONENT_LINDA 461
+#define OPPONENT_KAYLEE 462
+#define OPPONENT_LAUREL 463
+#define OPPONENT_DARCY 464
+#define OPPONENT_JENNY_2 465
+#define OPPONENT_JENNY_3 466
+#define OPPONENT_JENNY_4 467
+#define OPPONENT_JENNY_5 468
+#define OPPONENT_HEIDI 469
+#define OPPONENT_BECKY 470
+#define OPPONENT_CAROL 471
+#define OPPONENT_NANCY 472
+#define OPPONENT_MARTHA 473
+#define OPPONENT_DIANA_1 474
+#define OPPONENT_NINA 475
+#define OPPONENT_IRENE 476
+#define OPPONENT_DIANA_2 477
+#define OPPONENT_DIANA_3 478
+#define OPPONENT_DIANA_4 479
+#define OPPONENT_DIANA_5 480
+#define OPPONENT_AMY_AND_LIV_1 481
+#define OPPONENT_AMY_AND_LIV_2 482
+#define OPPONENT_GINA_AND_MIA_1 483
+#define OPPONENT_MIU_AND_YUKI 484
+#define OPPONENT_AMY_AND_LIV_3 485
+#define OPPONENT_GINA_AND_MIA_2 486
+#define OPPONENT_AMY_AND_LIV_4 487
+#define OPPONENT_AMY_AND_LIV_5 488
+#define OPPONENT_AMY_AND_LIV_6 489
+#define OPPONENT_HUEY 490
+#define OPPONENT_EDMOND 491
+#define OPPONENT_ERNEST_1 492
+#define OPPONENT_DWAYNE 493
+#define OPPONENT_PHILLIP 494
+#define OPPONENT_LEONARD 495
+#define OPPONENT_DUNCAN 496
+#define OPPONENT_ERNEST_2 497
+#define OPPONENT_ERNEST_3 498
+#define OPPONENT_ERNEST_4 499
+#define OPPONENT_ERNEST_5 500
+#define OPPONENT_ANONYMOUS_11 501
+#define OPPONENT_ANONYMOUS_12 502
+#define OPPONENT_ANONYMOUS_13 503
+#define OPPONENT_SONNY 504
+#define OPPONENT_DONOVAN 505
+#define OPPONENT_GERALD 506
+#define OPPONENT_KELVIN 507
+#define OPPONENT_KODY 508
+#define OPPONENT_TEVIN 509
+#define OPPONENT_DAMON 510
+#define OPPONENT_PABLO 511
+#define OPPONENT_EDWIN_1 512
+#define OPPONENT_HECTOR_1 513
+#define OPPONENT_HECTOR_2 514
+#define OPPONENT_EDWIN_2 515
+#define OPPONENT_EDWIN_3 516
+#define OPPONENT_EDWIN_4 517
+#define OPPONENT_EDWIN_5 518
+#define OPPONENT_WALLY_1 519
+#define OPPONENT_BRENDAN_1 520
+#define OPPONENT_BRENDAN_2 521
+#define OPPONENT_BRENDAN_3 522
+#define OPPONENT_BRENDAN_4 523
+#define OPPONENT_BRENDAN_5 524
+#define OPPONENT_BRENDAN_6 525
+#define OPPONENT_BRENDAN_7 526
+#define OPPONENT_BRENDAN_8 527
+#define OPPONENT_BRENDAN_9 528
+#define OPPONENT_MAY_1 529
+#define OPPONENT_MAY_2 530
+#define OPPONENT_MAY_3 531
+#define OPPONENT_MAY_4 532
+#define OPPONENT_MAY_5 533
+#define OPPONENT_MAY_6 534
+#define OPPONENT_MAY_7 535
+#define OPPONENT_MAY_8 536
+#define OPPONENT_MAY_9 537
+#define OPPONENT_ISAAC_1 538
+#define OPPONENT_RILEY 539
+#define OPPONENT_AIDAN 540
+#define OPPONENT_ISAAC_2 541
+#define OPPONENT_ISAAC_3 542
+#define OPPONENT_ISAAC_4 543
+#define OPPONENT_ISAAC_5 544
+#define OPPONENT_LYDIA_1 545
+#define OPPONENT_ALEXIA 546
+#define OPPONENT_DANIELLE 547
+#define OPPONENT_LYDIA_2 548
+#define OPPONENT_LYDIA_3 549
+#define OPPONENT_LYDIA_4 550
+#define OPPONENT_LYDIA_5 551
+#define OPPONENT_JACKSON_1 552
+#define OPPONENT_CARLOS 553
+#define OPPONENT_SEBASTIAN 554
+#define OPPONENT_JACKSON_2 555
+#define OPPONENT_JACKSON_3 556
+#define OPPONENT_JACKSON_4 557
+#define OPPONENT_JACKSON_5 558
+#define OPPONENT_CATHERINE_1 559
+#define OPPONENT_JENNA 560
+#define OPPONENT_SOPHIA 561
+#define OPPONENT_CATHERINE_2 562
+#define OPPONENT_CATHERINE_3 563
+#define OPPONENT_CATHERINE_4 564
+#define OPPONENT_CATHERINE_5 565
+#define OPPONENT_MAXIE_1 566
+#define OPPONENT_GRUNT_28 567
+#define OPPONENT_GRUNT_29 568
+#define OPPONENT_GRUNT_30 569
+#define OPPONENT_GRUNT_31 570
+#define OPPONENT_GRUNT_32 571
+#define OPPONENT_GRUNT_33 572
+#define OPPONENT_GRUNT_34 573
+#define OPPONENT_GRUNT_35 574
+#define OPPONENT_GRUNT_36 575
+#define OPPONENT_GRUNT_37 576
+#define OPPONENT_GRUNT_38 577
+#define OPPONENT_GRUNT_39 578
+#define OPPONENT_GRUNT_40 579
+#define OPPONENT_GRUNT_41 580
+#define OPPONENT_GRUNT_42 581
+#define OPPONENT_GRUNT_43 582
+#define OPPONENT_GRUNT_44 583
+#define OPPONENT_GRUNT_45 584
+#define OPPONENT_GRUNT_46 585
+#define OPPONENT_GRUNT_47 586
+#define OPPONENT_GRUNT_48 587
+#define OPPONENT_GRUNT_49 588
+#define OPPONENT_GRUNT_50 589
+#define OPPONENT_GRUNT_51 590
+#define OPPONENT_GRUNT_52 591
+#define OPPONENT_GRUNT_53 592
+#define OPPONENT_GRUNT_54 593
+#define OPPONENT_ANONYMOUS_14 594
+#define OPPONENT_ANONYMOUS_15 595
+#define OPPONENT_TABITHA_1 596
+#define OPPONENT_TABITHA_2 597
+#define OPPONENT_ANONYMOUS_16 598
+#define OPPONENT_COURTNEY_1 599
+#define OPPONENT_COURTNEY_2 600
+#define OPPONENT_MAXIE_2 601
+#define OPPONENT_MAXIE_3 602
+#define OPPONENT_TIANA 603
+#define OPPONENT_HALEY_1 604
+#define OPPONENT_JANICE 605
+#define OPPONENT_VIVI 606
+#define OPPONENT_HALEY_2 607
+#define OPPONENT_HALEY_3 608
+#define OPPONENT_HALEY_4 609
+#define OPPONENT_HALEY_5 610
+#define OPPONENT_SALLY 611
+#define OPPONENT_ROBIN 612
+#define OPPONENT_ANDREA 613
+#define OPPONENT_CRISSY 614
+#define OPPONENT_RICK 615
+#define OPPONENT_LYLE 616
+#define OPPONENT_JOSE 617
+#define OPPONENT_DOUG 618
+#define OPPONENT_GREG 619
+#define OPPONENT_KENT 620
+#define OPPONENT_JAMES_1 621
+#define OPPONENT_JAMES_2 622
+#define OPPONENT_JAMES_3 623
+#define OPPONENT_JAMES_4 624
+#define OPPONENT_JAMES_5 625
+#define OPPONENT_BRICE 626
+#define OPPONENT_TRENT_1 627
+#define OPPONENT_LENNY 628
+#define OPPONENT_LUCAS_1 629
+#define OPPONENT_ALAN 630
+#define OPPONENT_CLARK 631
+#define OPPONENT_ERIC 632
+#define OPPONENT_LUCAS_2 633
+#define OPPONENT_MIKE_1 634
+#define OPPONENT_MIKE_2 635
+#define OPPONENT_TRENT_2 636
+#define OPPONENT_TRENT_3 637
+#define OPPONENT_TRENT_4 638
+#define OPPONENT_TRENT_5 639
+#define OPPONENT_DEZ_AND_LUKE 640
+#define OPPONENT_LEA_AND_JED 641
+#define OPPONENT_LOIS_AND_HAL_1 642
+#define OPPONENT_LOIS_AND_HAL_2 643
+#define OPPONENT_LOIS_AND_HAL_3 644
+#define OPPONENT_LOIS_AND_HAL_4 645
+#define OPPONENT_LOIS_AND_HAL_5 646
+#define OPPONENT_JOHANNA 647
+#define OPPONENT_ZANE 648
+#define OPPONENT_VIVIAN 649
+#define OPPONENT_SADIE 650
+#define OPPONENT_HIDEO_2 651
+#define OPPONENT_KEIGO 652
+#define OPPONENT_TSUNAO 653
+#define OPPONENT_TERRELL 654
+#define OPPONENT_KYLEE 655
+#define OPPONENT_WALLY_2 656
+#define OPPONENT_WALLY_3 657
+#define OPPONENT_WALLY_4 658
+#define OPPONENT_WALLY_5 659
+#define OPPONENT_WALLY_6 660
+#define OPPONENT_BRENDAN_10 661
+#define OPPONENT_BRENDAN_11 662
+#define OPPONENT_BRENDAN_12 663
+#define OPPONENT_MAY_10 664
+#define OPPONENT_MAY_11 665
+#define OPPONENT_MAY_12 666
+#define OPPONENT_JONAH 667
+#define OPPONENT_HENRY 668
+#define OPPONENT_ROGER 669
+#define OPPONENT_ALEXA 670
+#define OPPONENT_RUBEN 671
+#define OPPONENT_KOJI 672
+#define OPPONENT_WAYNE 673
+#define OPPONENT_BYRON 674
+#define OPPONENT_REED 675
+#define OPPONENT_TISHA 676
+#define OPPONENT_TORI_AND_TIA 677
+#define OPPONENT_KIM_AND_IRIS 678
+#define OPPONENT_TYRA_AND_IVY 679
+#define OPPONENT_MEL_AND_PAUL 680
+#define OPPONENT_JOHN_AND_JAY_1 681
+#define OPPONENT_JOHN_AND_JAY_2 682
+#define OPPONENT_JOHN_AND_JAY_3 683
+#define OPPONENT_JOHN_AND_JAY_4 684
+#define OPPONENT_JOHN_AND_JAY_5 685
+#define OPPONENT_RELI_AND_IAN 686
+#define OPPONENT_RITA_AND_SAM_1 687
+#define OPPONENT_RITA_AND_SAM_2 688
+#define OPPONENT_RITA_AND_SAM_3 689
+#define OPPONENT_RITA_AND_SAM_4 690
+#define OPPONENT_RITA_AND_SAM_5 691
+#define OPPONENT_LISA_AND_RAY 692
+#define OPPONENT_EUGENE 693
+
+#endif // GUARD_CONSTANTS_OPPONENTS_H
diff --git a/include/constants/songs.h b/include/constants/songs.h
new file mode 100644
index 000000000..5225f5899
--- /dev/null
+++ b/include/constants/songs.h
@@ -0,0 +1,373 @@
+#ifndef GUARD_CONSTANTS_SONGS_H
+#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_MU_PACHI 35
+#define SE_TK_KASYA 36
+#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_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_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_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_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_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 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_ROUTE_118 0x7FFF // What is this for?
+
+#endif // GUARD_CONSTANTS_SONGS_H
diff --git a/include/constants/species.h b/include/constants/species.h
new file mode 100644
index 000000000..f698ada14
--- /dev/null
+++ b/include/constants/species.h
@@ -0,0 +1,450 @@
+#ifndef GUARD_CONSTANTS_SPECIES_H
+#define GUARD_CONSTANTS_SPECIES_H
+
+#define SPECIES_NONE 0
+#define SPECIES_BULBASAUR 1
+#define SPECIES_IVYSAUR 2
+#define SPECIES_VENUSAUR 3
+#define SPECIES_CHARMANDER 4
+#define SPECIES_CHARMELEON 5
+#define SPECIES_CHARIZARD 6
+#define SPECIES_SQUIRTLE 7
+#define SPECIES_WARTORTLE 8
+#define SPECIES_BLASTOISE 9
+#define SPECIES_CATERPIE 10
+#define SPECIES_METAPOD 11
+#define SPECIES_BUTTERFREE 12
+#define SPECIES_WEEDLE 13
+#define SPECIES_KAKUNA 14
+#define SPECIES_BEEDRILL 15
+#define SPECIES_PIDGEY 16
+#define SPECIES_PIDGEOTTO 17
+#define SPECIES_PIDGEOT 18
+#define SPECIES_RATTATA 19
+#define SPECIES_RATICATE 20
+#define SPECIES_SPEAROW 21
+#define SPECIES_FEAROW 22
+#define SPECIES_EKANS 23
+#define SPECIES_ARBOK 24
+#define SPECIES_PIKACHU 25
+#define SPECIES_RAICHU 26
+#define SPECIES_SANDSHREW 27
+#define SPECIES_SANDSLASH 28
+#define SPECIES_NIDORAN_F 29
+#define SPECIES_NIDORINA 30
+#define SPECIES_NIDOQUEEN 31
+#define SPECIES_NIDORAN_M 32
+#define SPECIES_NIDORINO 33
+#define SPECIES_NIDOKING 34
+#define SPECIES_CLEFAIRY 35
+#define SPECIES_CLEFABLE 36
+#define SPECIES_VULPIX 37
+#define SPECIES_NINETALES 38
+#define SPECIES_JIGGLYPUFF 39
+#define SPECIES_WIGGLYTUFF 40
+#define SPECIES_ZUBAT 41
+#define SPECIES_GOLBAT 42
+#define SPECIES_ODDISH 43
+#define SPECIES_GLOOM 44
+#define SPECIES_VILEPLUME 45
+#define SPECIES_PARAS 46
+#define SPECIES_PARASECT 47
+#define SPECIES_VENONAT 48
+#define SPECIES_VENOMOTH 49
+#define SPECIES_DIGLETT 50
+#define SPECIES_DUGTRIO 51
+#define SPECIES_MEOWTH 52
+#define SPECIES_PERSIAN 53
+#define SPECIES_PSYDUCK 54
+#define SPECIES_GOLDUCK 55
+#define SPECIES_MANKEY 56
+#define SPECIES_PRIMEAPE 57
+#define SPECIES_GROWLITHE 58
+#define SPECIES_ARCANINE 59
+#define SPECIES_POLIWAG 60
+#define SPECIES_POLIWHIRL 61
+#define SPECIES_POLIWRATH 62
+#define SPECIES_ABRA 63
+#define SPECIES_KADABRA 64
+#define SPECIES_ALAKAZAM 65
+#define SPECIES_MACHOP 66
+#define SPECIES_MACHOKE 67
+#define SPECIES_MACHAMP 68
+#define SPECIES_BELLSPROUT 69
+#define SPECIES_WEEPINBELL 70
+#define SPECIES_VICTREEBEL 71
+#define SPECIES_TENTACOOL 72
+#define SPECIES_TENTACRUEL 73
+#define SPECIES_GEODUDE 74
+#define SPECIES_GRAVELER 75
+#define SPECIES_GOLEM 76
+#define SPECIES_PONYTA 77
+#define SPECIES_RAPIDASH 78
+#define SPECIES_SLOWPOKE 79
+#define SPECIES_SLOWBRO 80
+#define SPECIES_MAGNEMITE 81
+#define SPECIES_MAGNETON 82
+#define SPECIES_FARFETCHD 83
+#define SPECIES_DODUO 84
+#define SPECIES_DODRIO 85
+#define SPECIES_SEEL 86
+#define SPECIES_DEWGONG 87
+#define SPECIES_GRIMER 88
+#define SPECIES_MUK 89
+#define SPECIES_SHELLDER 90
+#define SPECIES_CLOYSTER 91
+#define SPECIES_GASTLY 92
+#define SPECIES_HAUNTER 93
+#define SPECIES_GENGAR 94
+#define SPECIES_ONIX 95
+#define SPECIES_DROWZEE 96
+#define SPECIES_HYPNO 97
+#define SPECIES_KRABBY 98
+#define SPECIES_KINGLER 99
+#define SPECIES_VOLTORB 100
+#define SPECIES_ELECTRODE 101
+#define SPECIES_EXEGGCUTE 102
+#define SPECIES_EXEGGUTOR 103
+#define SPECIES_CUBONE 104
+#define SPECIES_MAROWAK 105
+#define SPECIES_HITMONLEE 106
+#define SPECIES_HITMONCHAN 107
+#define SPECIES_LICKITUNG 108
+#define SPECIES_KOFFING 109
+#define SPECIES_WEEZING 110
+#define SPECIES_RHYHORN 111
+#define SPECIES_RHYDON 112
+#define SPECIES_CHANSEY 113
+#define SPECIES_TANGELA 114
+#define SPECIES_KANGASKHAN 115
+#define SPECIES_HORSEA 116
+#define SPECIES_SEADRA 117
+#define SPECIES_GOLDEEN 118
+#define SPECIES_SEAKING 119
+#define SPECIES_STARYU 120
+#define SPECIES_STARMIE 121
+#define SPECIES_MR_MIME 122
+#define SPECIES_SCYTHER 123
+#define SPECIES_JYNX 124
+#define SPECIES_ELECTABUZZ 125
+#define SPECIES_MAGMAR 126
+#define SPECIES_PINSIR 127
+#define SPECIES_TAUROS 128
+#define SPECIES_MAGIKARP 129
+#define SPECIES_GYARADOS 130
+#define SPECIES_LAPRAS 131
+#define SPECIES_DITTO 132
+#define SPECIES_EEVEE 133
+#define SPECIES_VAPOREON 134
+#define SPECIES_JOLTEON 135
+#define SPECIES_FLAREON 136
+#define SPECIES_PORYGON 137
+#define SPECIES_OMANYTE 138
+#define SPECIES_OMASTAR 139
+#define SPECIES_KABUTO 140
+#define SPECIES_KABUTOPS 141
+#define SPECIES_AERODACTYL 142
+#define SPECIES_SNORLAX 143
+#define SPECIES_ARTICUNO 144
+#define SPECIES_ZAPDOS 145
+#define SPECIES_MOLTRES 146
+#define SPECIES_DRATINI 147
+#define SPECIES_DRAGONAIR 148
+#define SPECIES_DRAGONITE 149
+#define SPECIES_MEWTWO 150
+#define SPECIES_MEW 151
+#define SPECIES_CHIKORITA 152
+#define SPECIES_BAYLEEF 153
+#define SPECIES_MEGANIUM 154
+#define SPECIES_CYNDAQUIL 155
+#define SPECIES_QUILAVA 156
+#define SPECIES_TYPHLOSION 157
+#define SPECIES_TOTODILE 158
+#define SPECIES_CROCONAW 159
+#define SPECIES_FERALIGATR 160
+#define SPECIES_SENTRET 161
+#define SPECIES_FURRET 162
+#define SPECIES_HOOTHOOT 163
+#define SPECIES_NOCTOWL 164
+#define SPECIES_LEDYBA 165
+#define SPECIES_LEDIAN 166
+#define SPECIES_SPINARAK 167
+#define SPECIES_ARIADOS 168
+#define SPECIES_CROBAT 169
+#define SPECIES_CHINCHOU 170
+#define SPECIES_LANTURN 171
+#define SPECIES_PICHU 172
+#define SPECIES_CLEFFA 173
+#define SPECIES_IGGLYBUFF 174
+#define SPECIES_TOGEPI 175
+#define SPECIES_TOGETIC 176
+#define SPECIES_NATU 177
+#define SPECIES_XATU 178
+#define SPECIES_MAREEP 179
+#define SPECIES_FLAAFFY 180
+#define SPECIES_AMPHAROS 181
+#define SPECIES_BELLOSSOM 182
+#define SPECIES_MARILL 183
+#define SPECIES_AZUMARILL 184
+#define SPECIES_SUDOWOODO 185
+#define SPECIES_POLITOED 186
+#define SPECIES_HOPPIP 187
+#define SPECIES_SKIPLOOM 188
+#define SPECIES_JUMPLUFF 189
+#define SPECIES_AIPOM 190
+#define SPECIES_SUNKERN 191
+#define SPECIES_SUNFLORA 192
+#define SPECIES_YANMA 193
+#define SPECIES_WOOPER 194
+#define SPECIES_QUAGSIRE 195
+#define SPECIES_ESPEON 196
+#define SPECIES_UMBREON 197
+#define SPECIES_MURKROW 198
+#define SPECIES_SLOWKING 199
+#define SPECIES_MISDREAVUS 200
+#define SPECIES_UNOWN 201
+#define SPECIES_WOBBUFFET 202
+#define SPECIES_GIRAFARIG 203
+#define SPECIES_PINECO 204
+#define SPECIES_FORRETRESS 205
+#define SPECIES_DUNSPARCE 206
+#define SPECIES_GLIGAR 207
+#define SPECIES_STEELIX 208
+#define SPECIES_SNUBBULL 209
+#define SPECIES_GRANBULL 210
+#define SPECIES_QWILFISH 211
+#define SPECIES_SCIZOR 212
+#define SPECIES_SHUCKLE 213
+#define SPECIES_HERACROSS 214
+#define SPECIES_SNEASEL 215
+#define SPECIES_TEDDIURSA 216
+#define SPECIES_URSARING 217
+#define SPECIES_SLUGMA 218
+#define SPECIES_MAGCARGO 219
+#define SPECIES_SWINUB 220
+#define SPECIES_PILOSWINE 221
+#define SPECIES_CORSOLA 222
+#define SPECIES_REMORAID 223
+#define SPECIES_OCTILLERY 224
+#define SPECIES_DELIBIRD 225
+#define SPECIES_MANTINE 226
+#define SPECIES_SKARMORY 227
+#define SPECIES_HOUNDOUR 228
+#define SPECIES_HOUNDOOM 229
+#define SPECIES_KINGDRA 230
+#define SPECIES_PHANPY 231
+#define SPECIES_DONPHAN 232
+#define SPECIES_PORYGON2 233
+#define SPECIES_STANTLER 234
+#define SPECIES_SMEARGLE 235
+#define SPECIES_TYROGUE 236
+#define SPECIES_HITMONTOP 237
+#define SPECIES_SMOOCHUM 238
+#define SPECIES_ELEKID 239
+#define SPECIES_MAGBY 240
+#define SPECIES_MILTANK 241
+#define SPECIES_BLISSEY 242
+#define SPECIES_RAIKOU 243
+#define SPECIES_ENTEI 244
+#define SPECIES_SUICUNE 245
+#define SPECIES_LARVITAR 246
+#define SPECIES_PUPITAR 247
+#define SPECIES_TYRANITAR 248
+#define SPECIES_LUGIA 249
+#define SPECIES_HO_OH 250
+#define SPECIES_CELEBI 251
+
+#define SPECIES_OLD_UNOWN_B 252
+#define SPECIES_OLD_UNOWN_C 253
+#define SPECIES_OLD_UNOWN_D 254
+#define SPECIES_OLD_UNOWN_E 255
+#define SPECIES_OLD_UNOWN_F 256
+#define SPECIES_OLD_UNOWN_G 257
+#define SPECIES_OLD_UNOWN_H 258
+#define SPECIES_OLD_UNOWN_I 259
+#define SPECIES_OLD_UNOWN_J 260
+#define SPECIES_OLD_UNOWN_K 261
+#define SPECIES_OLD_UNOWN_L 262
+#define SPECIES_OLD_UNOWN_M 263
+#define SPECIES_OLD_UNOWN_N 264
+#define SPECIES_OLD_UNOWN_O 265
+#define SPECIES_OLD_UNOWN_P 266
+#define SPECIES_OLD_UNOWN_Q 267
+#define SPECIES_OLD_UNOWN_R 268
+#define SPECIES_OLD_UNOWN_S 269
+#define SPECIES_OLD_UNOWN_T 270
+#define SPECIES_OLD_UNOWN_U 271
+#define SPECIES_OLD_UNOWN_V 272
+#define SPECIES_OLD_UNOWN_W 273
+#define SPECIES_OLD_UNOWN_X 274
+#define SPECIES_OLD_UNOWN_Y 275
+#define SPECIES_OLD_UNOWN_Z 276
+
+#define SPECIES_TREECKO 277
+#define SPECIES_GROVYLE 278
+#define SPECIES_SCEPTILE 279
+#define SPECIES_TORCHIC 280
+#define SPECIES_COMBUSKEN 281
+#define SPECIES_BLAZIKEN 282
+#define SPECIES_MUDKIP 283
+#define SPECIES_MARSHTOMP 284
+#define SPECIES_SWAMPERT 285
+#define SPECIES_POOCHYENA 286
+#define SPECIES_MIGHTYENA 287
+#define SPECIES_ZIGZAGOON 288
+#define SPECIES_LINOONE 289
+#define SPECIES_WURMPLE 290
+#define SPECIES_SILCOON 291
+#define SPECIES_BEAUTIFLY 292
+#define SPECIES_CASCOON 293
+#define SPECIES_DUSTOX 294
+#define SPECIES_LOTAD 295
+#define SPECIES_LOMBRE 296
+#define SPECIES_LUDICOLO 297
+#define SPECIES_SEEDOT 298
+#define SPECIES_NUZLEAF 299
+#define SPECIES_SHIFTRY 300
+#define SPECIES_NINCADA 301
+#define SPECIES_NINJASK 302
+#define SPECIES_SHEDINJA 303
+#define SPECIES_TAILLOW 304
+#define SPECIES_SWELLOW 305
+#define SPECIES_SHROOMISH 306
+#define SPECIES_BRELOOM 307
+#define SPECIES_SPINDA 308
+#define SPECIES_WINGULL 309
+#define SPECIES_PELIPPER 310
+#define SPECIES_SURSKIT 311
+#define SPECIES_MASQUERAIN 312
+#define SPECIES_WAILMER 313
+#define SPECIES_WAILORD 314
+#define SPECIES_SKITTY 315
+#define SPECIES_DELCATTY 316
+#define SPECIES_KECLEON 317
+#define SPECIES_BALTOY 318
+#define SPECIES_CLAYDOL 319
+#define SPECIES_NOSEPASS 320
+#define SPECIES_TORKOAL 321
+#define SPECIES_SABLEYE 322
+#define SPECIES_BARBOACH 323
+#define SPECIES_WHISCASH 324
+#define SPECIES_LUVDISC 325
+#define SPECIES_CORPHISH 326
+#define SPECIES_CRAWDAUNT 327
+#define SPECIES_FEEBAS 328
+#define SPECIES_MILOTIC 329
+#define SPECIES_CARVANHA 330
+#define SPECIES_SHARPEDO 331
+#define SPECIES_TRAPINCH 332
+#define SPECIES_VIBRAVA 333
+#define SPECIES_FLYGON 334
+#define SPECIES_MAKUHITA 335
+#define SPECIES_HARIYAMA 336
+#define SPECIES_ELECTRIKE 337
+#define SPECIES_MANECTRIC 338
+#define SPECIES_NUMEL 339
+#define SPECIES_CAMERUPT 340
+#define SPECIES_SPHEAL 341
+#define SPECIES_SEALEO 342
+#define SPECIES_WALREIN 343
+#define SPECIES_CACNEA 344
+#define SPECIES_CACTURNE 345
+#define SPECIES_SNORUNT 346
+#define SPECIES_GLALIE 347
+#define SPECIES_LUNATONE 348
+#define SPECIES_SOLROCK 349
+#define SPECIES_AZURILL 350
+#define SPECIES_SPOINK 351
+#define SPECIES_GRUMPIG 352
+#define SPECIES_PLUSLE 353
+#define SPECIES_MINUN 354
+#define SPECIES_MAWILE 355
+#define SPECIES_MEDITITE 356
+#define SPECIES_MEDICHAM 357
+#define SPECIES_SWABLU 358
+#define SPECIES_ALTARIA 359
+#define SPECIES_WYNAUT 360
+#define SPECIES_DUSKULL 361
+#define SPECIES_DUSCLOPS 362
+#define SPECIES_ROSELIA 363
+#define SPECIES_SLAKOTH 364
+#define SPECIES_VIGOROTH 365
+#define SPECIES_SLAKING 366
+#define SPECIES_GULPIN 367
+#define SPECIES_SWALOT 368
+#define SPECIES_TROPIUS 369
+#define SPECIES_WHISMUR 370
+#define SPECIES_LOUDRED 371
+#define SPECIES_EXPLOUD 372
+#define SPECIES_CLAMPERL 373
+#define SPECIES_HUNTAIL 374
+#define SPECIES_GOREBYSS 375
+#define SPECIES_ABSOL 376
+#define SPECIES_SHUPPET 377
+#define SPECIES_BANETTE 378
+#define SPECIES_SEVIPER 379
+#define SPECIES_ZANGOOSE 380
+#define SPECIES_RELICANTH 381
+#define SPECIES_ARON 382
+#define SPECIES_LAIRON 383
+#define SPECIES_AGGRON 384
+#define SPECIES_CASTFORM 385
+#define SPECIES_VOLBEAT 386
+#define SPECIES_ILLUMISE 387
+#define SPECIES_LILEEP 388
+#define SPECIES_CRADILY 389
+#define SPECIES_ANORITH 390
+#define SPECIES_ARMALDO 391
+#define SPECIES_RALTS 392
+#define SPECIES_KIRLIA 393
+#define SPECIES_GARDEVOIR 394
+#define SPECIES_BAGON 395
+#define SPECIES_SHELGON 396
+#define SPECIES_SALAMENCE 397
+#define SPECIES_BELDUM 398
+#define SPECIES_METANG 399
+#define SPECIES_METAGROSS 400
+#define SPECIES_REGIROCK 401
+#define SPECIES_REGICE 402
+#define SPECIES_REGISTEEL 403
+#define SPECIES_KYOGRE 404
+#define SPECIES_GROUDON 405
+#define SPECIES_RAYQUAZA 406
+#define SPECIES_LATIAS 407
+#define SPECIES_LATIOS 408
+#define SPECIES_JIRACHI 409
+#define SPECIES_DEOXYS 410
+#define SPECIES_CHIMECHO 411
+#define SPECIES_EGG 412
+
+#define SPECIES_UNOWN_B 413
+#define SPECIES_UNOWN_C 414
+#define SPECIES_UNOWN_D 415
+#define SPECIES_UNOWN_E 416
+#define SPECIES_UNOWN_F 417
+#define SPECIES_UNOWN_G 418
+#define SPECIES_UNOWN_H 419
+#define SPECIES_UNOWN_I 420
+#define SPECIES_UNOWN_J 421
+#define SPECIES_UNOWN_K 422
+#define SPECIES_UNOWN_L 423
+#define SPECIES_UNOWN_M 424
+#define SPECIES_UNOWN_N 425
+#define SPECIES_UNOWN_O 426
+#define SPECIES_UNOWN_P 427
+#define SPECIES_UNOWN_Q 428
+#define SPECIES_UNOWN_R 429
+#define SPECIES_UNOWN_S 430
+#define SPECIES_UNOWN_T 431
+#define SPECIES_UNOWN_U 432
+#define SPECIES_UNOWN_V 433
+#define SPECIES_UNOWN_W 434
+#define SPECIES_UNOWN_X 435
+#define SPECIES_UNOWN_Y 436
+#define SPECIES_UNOWN_Z 437
+#define SPECIES_UNOWN_EMARK 438
+#define SPECIES_UNOWN_QMARK 439
+
+#define NUM_SPECIES SPECIES_EGG
+
+#endif // GUARD_CONSTANTS_SPECIES_H
diff --git a/include/vars.h b/include/constants/vars.h
index 179fd6f93..21834879f 100644
--- a/include/vars.h
+++ b/include/constants/vars.h
@@ -1,5 +1,7 @@
-#ifndef GUARD_VARS_H
-#define GUARD_VARS_H
+#ifndef GUARD_CONSTANTS_VARS_H
+#define GUARD_CONSTANTS_VARS_H
+
+#define VAR_0x3F20 0x3F20
#define VAR_0x4000 0x4000
#define VAR_0x4001 0x4001
@@ -51,4 +53,4 @@
#define VAR_0x40BC 0x40BC
#define VAR_0x40C2 0x40C2
-#endif // GUARD_VARS_H
+#endif // GUARD_CONSTANTS_VARS_H
diff --git a/include/daycare.h b/include/daycare.h
index e46351d72..c612113b9 100644
--- a/include/daycare.h
+++ b/include/daycare.h
@@ -1,15 +1,17 @@
#ifndef GUARD_DAYCARE_H
#define GUARD_DAYCARE_H
-u8 Daycare_CountPokemon(struct DayCareData *);
-void sub_8041324(struct BoxPokemon *, struct RecordMixingDayCareMail *);
-void sub_8041790(u16 i);
-u16 sub_8041870(u16);
-void sub_8041940(void);
-void sub_8041950(void);
-void sub_8042044(struct Pokemon *mon, u16, u8);
-u8 sub_80422A0(void);
-u8 daycare_relationship_score_from_savegame(void);
+u8 *GetMonNick(struct Pokemon *, u8 *);
+u8 *GetBoxMonNick(struct BoxPokemon *, u8 *);
+u8 CountPokemonInDaycare(struct DayCare *);
+void InitDaycareMailRecordMixing(struct BoxPokemon *, struct RecordMixingDayCareMail *);
+void Debug_AddDaycareSteps(u16 i);
+u16 GetEggSpecies(u16);
+void TriggerPendingDaycareEgg(void);
+void TriggerPendingDaycareMaleEgg(void);
+void CreateEgg(struct Pokemon *mon, u16, u8);
+u8 ShouldEggHatch(void);
+u8 GetDaycareCompatibilityScoreFromSave(void);
bool8 NameHasGenderSymbol(const u8 *, u8);
#endif // GUARD_DAYCARE_H
diff --git a/include/decoration.h b/include/decoration.h
index 2e72e305a..972e82faf 100644
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -3,130 +3,6 @@
#include "task.h"
-enum DecoId {
- /*000*/ DECOR_NONE,
- /*001*/ DECOR_SMALL_DESK,
- /*002*/ DECOR_POKEMON_DESK,
- /*003*/ DECOR_HEAVY_DESK,
- /*004*/ DECOR_RAGGED_DESK,
- /*005*/ DECOR_COMFORT_DESK,
- /*006*/ DECOR_PRETTY_DESK,
- /*007*/ DECOR_BRICK_DESK,
- /*008*/ DECOR_CAMP_DESK,
- /*009*/ DECOR_HARD_DESK,
- /*010*/ DECOR_SMALL_CHAIR,
- /*011*/ DECOR_POKEMON_CHAIR,
- /*012*/ DECOR_HEAVY_CHAIR,
- /*013*/ DECOR_PRETTY_CHAIR,
- /*014*/ DECOR_COMFORT_CHAIR,
- /*015*/ DECOR_RAGGED_CHAIR,
- /*016*/ DECOR_BRICK_CHAIR,
- /*017*/ DECOR_CAMP_CHAIR,
- /*018*/ DECOR_HARD_CHAIR,
- /*019*/ DECOR_RED_PLANT,
- /*020*/ DECOR_TROPICAL_PLANT,
- /*021*/ DECOR_PRETTY_FLOWERS,
- /*022*/ DECOR_COLORFUL_PLANT,
- /*023*/ DECOR_BIG_PLANT,
- /*024*/ DECOR_GORGEOUS_PLANT,
- /*025*/ DECOR_RED_BRICK,
- /*026*/ DECOR_YELLOW_BRICK,
- /*027*/ DECOR_BLUE_BRICK,
- /*028*/ DECOR_RED_BALLOON,
- /*029*/ DECOR_BLUE_BALLOON,
- /*030*/ DECOR_YELLOW_BALLOON,
- /*031*/ DECOR_RED_TENT,
- /*032*/ DECOR_BLUE_TENT,
- /*033*/ DECOR_SOLID_BOARD,
- /*034*/ DECOR_SLIDE,
- /*035*/ DECOR_FENCE_LENGTH,
- /*036*/ DECOR_FENCE_WIDTH,
- /*037*/ DECOR_TIRE,
- /*038*/ DECOR_STAND,
- /*039*/ DECOR_MUD_BALL,
- /*040*/ DECOR_BREAKABLE_DOOR,
- /*041*/ DECOR_SAND_ORNAMENT,
- /*042*/ DECOR_SILVER_SHIELD,
- /*043*/ DECOR_GOLD_SHIELD,
- /*044*/ DECOR_GLASS_ORNAMENT,
- /*045*/ DECOR_TV,
- /*046*/ DECOR_ROUND_TV,
- /*047*/ DECOR_CUTE_TV,
- /*048*/ DECOR_GLITTER_MAT,
- /*049*/ DECOR_JUMP_MAT,
- /*050*/ DECOR_SPIN_MAT,
- /*051*/ DECOR_C_LOW_NOTE_MAT,
- /*052*/ DECOR_D_NOTE_MAT,
- /*053*/ DECOR_E_NOTE_MAT,
- /*054*/ DECOR_F_NOTE_MAT,
- /*055*/ DECOR_G_NOTE_MAT,
- /*056*/ DECOR_A_NOTE_MAT,
- /*057*/ DECOR_B_NOTE_MAT,
- /*058*/ DECOR_C_HIGH_NOTE_MAT,
- /*059*/ DECOR_SURF_MAT,
- /*060*/ DECOR_THUNDER_MAT,
- /*061*/ DECOR_FIRE_BLAST_MAT,
- /*062*/ DECOR_POWDER_SNOW_MAT,
- /*063*/ DECOR_ATTRACT_MAT,
- /*064*/ DECOR_FISSURE_MAT,
- /*065*/ DECOR_SPIKES_MAT,
- /*066*/ DECOR_BALL_POSTER,
- /*067*/ DECOR_GREEN_POSTER,
- /*068*/ DECOR_RED_POSTER,
- /*069*/ DECOR_BLUE_POSTER,
- /*070*/ DECOR_CUTE_POSTER,
- /*071*/ DECOR_PIKA_POSTER,
- /*072*/ DECOR_LONG_POSTER,
- /*073*/ DECOR_SEA_POSTER,
- /*074*/ DECOR_SKY_POSTER,
- /*075*/ DECOR_KISS_POSTER,
- /*076*/ DECOR_PICHU_DOLL,
- /*077*/ DECOR_PIKACHU_DOLL,
- /*078*/ DECOR_MARILL_DOLL,
- /*079*/ DECOR_TOGEPI_DOLL,
- /*080*/ DECOR_CYNDAQUIL_DOLL,
- /*081*/ DECOR_CHIKORITA_DOLL,
- /*082*/ DECOR_TOTODILE_DOLL,
- /*083*/ DECOR_JIGGLYPUFF_DOLL,
- /*084*/ DECOR_MEOWTH_DOLL,
- /*085*/ DECOR_CLEFAIRY_DOLL,
- /*086*/ DECOR_DITTO_DOLL,
- /*087*/ DECOR_SMOOCHUM_DOLL,
- /*088*/ DECOR_TREECKO_DOLL,
- /*089*/ DECOR_TORCHIC_DOLL,
- /*090*/ DECOR_MUDKIP_DOLL,
- /*091*/ DECOR_DUSKULL_DOLL,
- /*092*/ DECOR_WYNAUT_DOLL,
- /*093*/ DECOR_BALTOY_DOLL,
- /*094*/ DECOR_KECLEON_DOLL,
- /*095*/ DECOR_AZURILL_DOLL,
- /*096*/ DECOR_SKITTY_DOLL,
- /*097*/ DECOR_SWABLU_DOLL,
- /*098*/ DECOR_GULPIN_DOLL,
- /*099*/ DECOR_LOTAD_DOLL,
- /*100*/ DECOR_SEEDOT_DOLL,
- /*101*/ DECOR_PIKA_CUSHION,
- /*102*/ DECOR_ROUND_CUSHION,
- /*103*/ DECOR_KISS_CUSHION,
- /*104*/ DECOR_ZIGZAG_CUSHION,
- /*105*/ DECOR_SPIN_CUSHION,
- /*106*/ DECOR_DIAMOND_CUSHION,
- /*107*/ DECOR_BALL_CUSHION,
- /*108*/ DECOR_GRASS_CUSHION,
- /*109*/ DECOR_FIRE_CUSHION,
- /*110*/ DECOR_WATER_CUSHION,
- /*111*/ DECOR_SNORLAX_DOLL,
- /*112*/ DECOR_RHYDON_DOLL,
- /*113*/ DECOR_LAPRAS_DOLL,
- /*114*/ DECOR_VENUSAUR_DOLL,
- /*115*/ DECOR_CHARIZARD_DOLL,
- /*116*/ DECOR_BLASTOISE_DOLL,
- /*117*/ DECOR_WAILMER_DOLL,
- /*118*/ DECOR_REGIROCK_DOLL,
- /*119*/ DECOR_REGICE_DOLL,
- /*120*/ DECOR_REGISTEEL_DOLL
-};
-
enum DecorPerm {
/*
* The nomenclature here describes collision and placement permissions, in that order.
@@ -204,9 +80,6 @@ struct UnkStruct_803EC860
extern const struct UnkStruct_803EC860 gUnknown_083EC860[];
-extern u8 ewram[];
-#define ewram_1f000 (*(struct DecoPCPointers *)(ewram + 0x1f000))
-
struct UnkStruct_02038900
{
/*0x000; 0x02038900*/ const struct Decoration *decoration;
@@ -291,7 +164,9 @@ 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);
+void Task_SecretBasePC_Decoration(u8 taskId);
void sub_80FE2B4(void);
void Task_DecorationPCProcessMenuInput(u8);
void sub_80FE394(void);
diff --git a/include/dewford_trend.h b/include/dewford_trend.h
index 26075d633..c12d0d740 100644
--- a/include/dewford_trend.h
+++ b/include/dewford_trend.h
@@ -1,9 +1,6 @@
#ifndef GUARD_DEWFORDTREND_H
#define GUARD_DEWFORDTREND_H
-#define ARRAY_2007800 ((struct EasyChatPair *)(unk_2000000 + 0x7800))
-#define ARRAY_2007900 ((struct EasyChatPair *)(unk_2000000 + 0x7900))
-
void InitDewfordTrend(void);
void sub_80FA4E4(void *, u32, u8);
void UpdateDewfordTrendPerDay(u16);
diff --git a/include/easy_chat.h b/include/easy_chat.h
index 8a820353f..a6277fba8 100644
--- a/include/easy_chat.h
+++ b/include/easy_chat.h
@@ -1,1070 +1,6 @@
#ifndef GUARD_EASYCHAT_H
#define GUARD_EASYCHAT_H
-enum
-{
- EC_GROUP_POKEMON,
- EC_GROUP_TRAINER,
- EC_GROUP_STATUS,
- EC_GROUP_BATTLE,
- EC_GROUP_GREETINGS,
- EC_GROUP_PEOPLE,
- EC_GROUP_VOICES,
- EC_GROUP_SPEECH,
- EC_GROUP_ENDINGS,
- EC_GROUP_FEELINGS,
- EC_GROUP_CONDITIONS,
- EC_GROUP_ACTIONS,
- EC_GROUP_LIFESTYLE,
- EC_GROUP_HOBBIES,
- EC_GROUP_TIME,
- EC_GROUP_MISC,
- EC_GROUP_ADJECTIVES,
- EC_GROUP_EVENTS,
- EC_GROUP_MOVE_1,
- EC_GROUP_MOVE_2,
- EC_GROUP_TRENDY_SAYING,
- EC_GROUP_POKEMON_2,
-};
-
-enum {
- EC_WORD_I_CHOOSE_YOU = EC_GROUP_TRAINER << 9,
- EC_WORD_GOTCHA,
- EC_WORD_TRADE,
- EC_WORD_SAPPHIRE,
- EC_WORD_EVOLVE,
- EC_WORD_ENCYCLOPEDIA,
- EC_WORD_NATURE,
- EC_WORD_CENTER,
- EC_WORD_EGG,
- EC_WORD_LINK,
- EC_WORD_SP_ABILITY,
- EC_WORD_TRAINER,
- EC_WORD_VERSION,
- EC_WORD_POKENAV,
- EC_WORD_POKEMON,
- EC_WORD_GET,
- EC_WORD_POKEDEX,
- EC_WORD_RUBY,
- EC_WORD_LEVEL
-};
-enum {
- EC_WORD_DARK = EC_GROUP_STATUS << 9,
- EC_WORD_STENCH,
- EC_WORD_THICK_FAT,
- EC_WORD_RAIN_DISH,
- EC_WORD_DRIZZLE,
- EC_WORD_ARENA_TRAP,
- EC_WORD_INTIMIDATE,
- EC_WORD_ROCK_HEAD,
- EC_WORD_COLOR,
- EC_WORD_ALT_COLOR,
- EC_WORD_ROCK,
- EC_WORD_BEAUTIFUL,
- EC_WORD_BEAUTY,
- EC_WORD_AIR_LOCK,
- EC_WORD_PSYCHIC,
- EC_WORD_HYPER_CUTTER,
- EC_WORD_FIGHTING,
- EC_WORD_SHADOW_TAG,
- EC_WORD_SMART,
- EC_WORD_SMARTNESS,
- EC_WORD_SPEED_BOOST,
- EC_WORD_COOL,
- EC_WORD_COOLNESS,
- EC_WORD_BATTLE_ARMOR,
- EC_WORD_CUTE,
- EC_WORD_CUTENESS,
- EC_WORD_STURDY,
- EC_WORD_SUCTION_CUPS,
- EC_WORD_GRASS,
- EC_WORD_CLEAR_BODY,
- EC_WORD_TORRENT,
- EC_WORD_GHOST,
- EC_WORD_ICE,
- EC_WORD_GUTS,
- EC_WORD_ROUGH_SKIN,
- EC_WORD_SHELL_ARMOR,
- EC_WORD_NATURAL_CURE,
- EC_WORD_DAMP,
- EC_WORD_GROUND,
- EC_WORD_LIMBER,
- EC_WORD_MAGNET_PULL,
- EC_WORD_WHITE_SMOKE,
- EC_WORD_SYNCHRONIZE,
- EC_WORD_OVERGROW,
- EC_WORD_SWIFT_SWIM,
- EC_WORD_SAND_STREAM,
- EC_WORD_SAND_VEIL,
- EC_WORD_KEEN_EYE,
- EC_WORD_INNER_FOCUS,
- EC_WORD_STATIC,
- EC_WORD_TYPE,
- EC_WORD_TOUGH,
- EC_WORD_TOUGHNESS,
- EC_WORD_SHED_SKIN,
- EC_WORD_HUGE_POWER,
- EC_WORD_VOLT_ABSORB,
- EC_WORD_WATER_ABSORB,
- EC_WORD_ELECTRIC,
- EC_WORD_FORECAST,
- EC_WORD_SERENE_GRACE,
- EC_WORD_POISON,
- EC_WORD_POISON_POINT,
- EC_WORD_DRAGON,
- EC_WORD_TRACE,
- EC_WORD_OBLIVIOUS,
- EC_WORD_TRUANT,
- EC_WORD_RUN_AWAY,
- EC_WORD_STICKY_HOLD,
- EC_WORD_CLOUD_NINE,
- EC_WORD_NORMAL,
- EC_WORD_STEEL,
- EC_WORD_ILLUMINATE,
- EC_WORD_EARLY_BIRD,
- EC_WORD_HUSTLE,
- EC_WORD_SHINE,
- EC_WORD_FLYING,
- EC_WORD_DROUGHT,
- EC_WORD_LIGHTNINGROD,
- EC_WORD_COMPOUNDEYES,
- EC_WORD_MARVEL_SCALE,
- EC_WORD_WONDER_GUARD,
- EC_WORD_INSOMNIA,
- EC_WORD_LEVITATE,
- EC_WORD_PLUS,
- EC_WORD_PRESSURE,
- EC_WORD_LIQUID_OOZE,
- EC_WORD_COLOR_CHANGE,
- EC_WORD_SOUNDPROOF,
- EC_WORD_EFFECT_SPORE,
- EC_WORD_PKRS,
- EC_WORD_FIRE,
- EC_WORD_FLAME_BODY,
- EC_WORD_MINUS,
- EC_WORD_OWN_TEMPO,
- EC_WORD_MAGMA_ARMOR,
- EC_WORD_WATER,
- EC_WORD_WATER_VEIL,
- EC_WORD_BUG,
- EC_WORD_SWARM,
- EC_WORD_CUTE_CHARM,
- EC_WORD_IMMUNITY,
- EC_WORD_BLAZE,
- EC_WORD_PICKUP,
- EC_WORD_PATTERN,
- EC_WORD_FLASH_FIRE,
- EC_WORD_VITAL_SPIRIT,
- EC_WORD_CHLOROPHYLL,
- EC_WORD_PURE_POWER,
- EC_WORD_SHIELD_DUST,
-};
-enum {
- EC_WORD_MATCH_UP = EC_GROUP_BATTLE << 9,
- EC_WORD_GO,
- EC_WORD_NO_1,
- EC_WORD_DECIDE,
- EC_WORD_LET_ME_WIN,
- EC_WORD_WINS,
- EC_WORD_WIN,
- EC_WORD_WON,
- EC_WORD_IF_I_WIN,
- EC_WORD_WHEN_I_WIN,
- EC_WORD_CAN_T_WIN,
- EC_WORD_CAN_WIN,
- EC_WORD_NO_MATCH,
- EC_WORD_SPIRIT,
- EC_WORD_DECIDED,
- EC_WORD_TRUMP_CARD,
- EC_WORD_TAKE_THAT,
- EC_WORD_COME_ON,
- EC_WORD_ATTACK,
- EC_WORD_SURRENDER,
- EC_WORD_GUTSY,
- EC_WORD_TALENT,
- EC_WORD_STRATEGY,
- EC_WORD_SMITE,
- EC_WORD_MATCH,
- EC_WORD_VICTORY,
- EC_WORD_OFFENSIVE,
- EC_WORD_SENSE,
- EC_WORD_VERSUS,
- EC_WORD_FIGHTS,
- EC_WORD_POWER,
- EC_WORD_CHALLENGE,
- EC_WORD_STRONG,
- EC_WORD_TOO_STRONG,
- EC_WORD_GO_EASY,
- EC_WORD_FOE,
- EC_WORD_GENIUS,
- EC_WORD_LEGEND,
- EC_WORD_ESCAPE,
- EC_WORD_AIM,
- EC_WORD_BATTLE,
- EC_WORD_FIGHT,
- EC_WORD_RESUSCITATE,
- EC_WORD_POINTS,
- EC_WORD_SERIOUS,
- EC_WORD_GIVE_UP,
- EC_WORD_LOSS,
- EC_WORD_IF_I_LOSE,
- EC_WORD_LOST,
- EC_WORD_LOSE,
- EC_WORD_GUARD,
- EC_WORD_PARTNER,
- EC_WORD_REJECT,
- EC_WORD_ACCEPT,
- EC_WORD_INVINCIBLE,
- EC_WORD_RECEIVED,
- EC_WORD_EASY,
- EC_WORD_WEAK,
- EC_WORD_TOO_WEAK,
- EC_WORD_PUSHOVER,
- EC_WORD_LEADER,
- EC_WORD_RULE,
- EC_WORD_MOVE
-};
-enum {
- EC_WORD_THANKS = EC_GROUP_GREETINGS << 9,
- EC_WORD_YES,
- EC_WORD_HERE_GOES,
- EC_WORD_HERE_I_COME,
- EC_WORD_HERE_IT_IS,
- EC_WORD_YEAH,
- EC_WORD_WELCOME,
- EC_WORD_OI,
- EC_WORD_HOW_DO,
- EC_WORD_CONGRATS,
- EC_WORD_GIVE_ME,
- EC_WORD_SORRY,
- EC_WORD_APOLOGIZE,
- EC_WORD_FORGIVE,
- EC_WORD_HEY_THERE,
- EC_WORD_HELLO,
- EC_WORD_GOOD_BYE,
- EC_WORD_THANK_YOU,
- EC_WORD_I_VE_ARRIVED,
- EC_WORD_PARDON,
- EC_WORD_EXCUSE,
- EC_WORD_SEE_YA,
- EC_WORD_EXCUSE_ME,
- EC_WORD_WELL_THEN,
- EC_WORD_GO_AHEAD,
- EC_WORD_APPRECIATE,
- EC_WORD_HEY_QUES,
- EC_WORD_WHAT_S_UP_QUES,
- EC_WORD_HUH_QUES,
- EC_WORD_NO,
- EC_WORD_HI,
- EC_WORD_YEAH_YEAH,
- EC_WORD_BYE_BYE,
- EC_WORD_MEET_YOU,
- EC_WORD_HEY,
- EC_WORD_SMELL,
- EC_WORD_LISTENING,
- EC_WORD_HOO_HAH,
- EC_WORD_YAHOO,
- EC_WORD_YO,
- EC_WORD_COME_OVER,
- EC_WORD_COUNT_ON
-};
-enum {
- EC_WORD_OPPONENT = EC_GROUP_PEOPLE << 9,
- EC_WORD_I,
- EC_WORD_YOU,
- EC_WORD_YOURS,
- EC_WORD_SON,
- EC_WORD_YOUR,
- EC_WORD_YOU_RE,
- EC_WORD_YOU_VE,
- EC_WORD_MOTHER,
- EC_WORD_GRANDFATHER,
- EC_WORD_UNCLE,
- EC_WORD_FATHER,
- EC_WORD_BOY,
- EC_WORD_ADULT,
- EC_WORD_BROTHER,
- EC_WORD_SISTER,
- EC_WORD_GRANDMOTHER,
- EC_WORD_AUNT,
- EC_WORD_PARENT,
- EC_WORD_MAN,
- EC_WORD_ME,
- EC_WORD_GIRL,
- EC_WORD_BABE,
- EC_WORD_FAMILY,
- EC_WORD_HER,
- EC_WORD_HIM,
- EC_WORD_HE,
- EC_WORD_PLACE,
- EC_WORD_DAUGHTER,
- EC_WORD_HIS,
- EC_WORD_HE_S,
- EC_WORD_AREN_T,
- EC_WORD_SIBLINGS,
- EC_WORD_KID,
- EC_WORD_CHILDREN,
- EC_WORD_MR,
- EC_WORD_MRS,
- EC_WORD_MYSELF,
- EC_WORD_I_WAS,
- EC_WORD_TO_ME,
- EC_WORD_MY,
- EC_WORD_I_AM,
- EC_WORD_I_VE,
- EC_WORD_WHO,
- EC_WORD_SOMEONE,
- EC_WORD_WHO_WAS,
- EC_WORD_TO_WHOM,
- EC_WORD_WHOSE,
- EC_WORD_WHO_IS,
- EC_WORD_IT_S,
- EC_WORD_LADY,
- EC_WORD_FRIEND,
- EC_WORD_ALLY,
- EC_WORD_PERSON,
- EC_WORD_DUDE,
- EC_WORD_THEY,
- EC_WORD_THEY_WERE,
- EC_WORD_TO_THEM,
- EC_WORD_THEIR,
- EC_WORD_THEY_RE,
- EC_WORD_THEY_VE,
- EC_WORD_WE,
- EC_WORD_BEEN,
- EC_WORD_TO_US,
- EC_WORD_OUR,
- EC_WORD_WE_RE,
- EC_WORD_RIVAL,
- EC_WORD_WE_VE,
- EC_WORD_WOMAN,
- EC_WORD_SHE,
- EC_WORD_SHE_WAS,
- EC_WORD_TO_HER,
- EC_WORD_HERS,
- EC_WORD_SHE_IS,
- EC_WORD_SOME
-};
-enum {
- EC_WORD_EXCL = EC_GROUP_VOICES << 9,
- EC_WORD_EXCL_EXCL,
- EC_WORD_QUES_EXCL,
- EC_WORD_QUES,
- EC_WORD_ELLIPSIS,
- EC_WORD_ELLIPSIS_EXCL,
- EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
- EC_WORD_DASH,
- EC_WORD_DASH_DASH_DASH,
- EC_WORD_UH_OH,
- EC_WORD_WAAAH,
- EC_WORD_AHAHA,
- EC_WORD_OH_QUES,
- EC_WORD_NOPE,
- EC_WORD_URGH,
- EC_WORD_HMM,
- EC_WORD_WHOAH,
- EC_WORD_WROOOAAR_EXCL,
- EC_WORD_WOW,
- EC_WORD_GIGGLE,
- EC_WORD_SIGH,
- EC_WORD_UNBELIEVABLE,
- EC_WORD_CRIES,
- EC_WORD_AGREE,
- EC_WORD_EH_QUES,
- EC_WORD_CRY,
- EC_WORD_EHEHE,
- EC_WORD_OI_OI_OI,
- EC_WORD_OH_YEAH,
- EC_WORD_OH,
- EC_WORD_OOPS,
- EC_WORD_SHOCKED,
- EC_WORD_EEK,
- EC_WORD_GRAAAH,
- EC_WORD_GWAHAHAHA,
- EC_WORD_WAY,
- EC_WORD_TCH,
- EC_WORD_HEHE,
- EC_WORD_HAH,
- EC_WORD_YUP,
- EC_WORD_HAHAHA,
- EC_WORD_AIYEEH,
- EC_WORD_HIYAH,
- EC_WORD_FUFUFU,
- EC_WORD_LOL,
- EC_WORD_SNORT,
- EC_WORD_HUMPH,
- EC_WORD_HEHEHE,
- EC_WORD_HEH,
- EC_WORD_HOHOHO,
- EC_WORD_UH_HUH,
- EC_WORD_OH_DEAR,
- EC_WORD_ARRGH,
- EC_WORD_MUFUFU,
- EC_WORD_MMM,
- EC_WORD_OH_KAY,
- EC_WORD_OKAY,
- EC_WORD_LALALA,
- EC_WORD_YAY,
- EC_WORD_AWW,
- EC_WORD_WOWEE,
- EC_WORD_GWAH,
- EC_WORD_WAHAHAHA
-};
-enum {
- EC_WORD_LISTEN = EC_GROUP_SPEECH << 9,
- EC_WORD_NOT_VERY,
- EC_WORD_MEAN,
- EC_WORD_LIE,
- EC_WORD_LAY,
- EC_WORD_RECOMMEND,
- EC_WORD_NITWIT,
- EC_WORD_QUITE,
- EC_WORD_FROM,
- EC_WORD_FEELING,
- EC_WORD_BUT,
- EC_WORD_HOWEVER,
- EC_WORD_CASE,
- EC_WORD_THE,
- EC_WORD_MISS,
- EC_WORD_HOW,
- EC_WORD_HIT,
- EC_WORD_ENOUGH,
- EC_WORD_A_LOT,
- EC_WORD_A_LITTLE,
- EC_WORD_ABSOLUTELY,
- EC_WORD_AND,
- EC_WORD_ONLY,
- EC_WORD_AROUND,
- EC_WORD_PROBABLY,
- EC_WORD_IF,
- EC_WORD_VERY,
- EC_WORD_A_TINY_BIT,
- EC_WORD_WILD,
- EC_WORD_THAT_S,
- EC_WORD_JUST,
- EC_WORD_EVEN_SO,
- EC_WORD_MUST_BE,
- EC_WORD_NATURALLY,
- EC_WORD_FOR_NOW,
- EC_WORD_UNDERSTOOD,
- EC_WORD_JOKING,
- EC_WORD_READY,
- EC_WORD_SOMETHING,
- EC_WORD_SOMEHOW,
- EC_WORD_ALTHOUGH,
- EC_WORD_ALSO,
- EC_WORD_PERFECT,
- EC_WORD_AS_MUCH_AS,
- EC_WORD_REALLY,
- EC_WORD_TRULY,
- EC_WORD_SERIOUSLY,
- EC_WORD_TOTALLY,
- EC_WORD_UNTIL,
- EC_WORD_AS_IF,
- EC_WORD_MOOD,
- EC_WORD_RATHER,
- EC_WORD_AWFULLY,
- EC_WORD_MODE,
- EC_WORD_MORE,
- EC_WORD_TOO_LATE,
- EC_WORD_FINALLY,
- EC_WORD_ANY,
- EC_WORD_INSTEAD,
- EC_WORD_FANTASTIC
-};
-enum {
- EC_WORD_WILL = EC_GROUP_ENDINGS << 9,
- EC_WORD_WILL_BE_HERE,
- EC_WORD_OR,
- EC_WORD_TIMES,
- EC_WORD_WONDER,
- EC_WORD_IS_IT_QUES,
- EC_WORD_BE,
- EC_WORD_GIMME,
- EC_WORD_COULD,
- EC_WORD_LIKELY_TO,
- EC_WORD_WOULD,
- EC_WORD_IS,
- EC_WORD_ISN_T_IT_QUES,
- EC_WORD_LET_S,
- EC_WORD_OTHER,
- EC_WORD_ARE,
- EC_WORD_WAS,
- EC_WORD_WERE,
- EC_WORD_THOSE,
- EC_WORD_ISN_T,
- EC_WORD_WON_T,
- EC_WORD_CAN_T,
- EC_WORD_CAN,
- EC_WORD_DON_T,
- EC_WORD_DO,
- EC_WORD_DOES,
- EC_WORD_WHOM,
- EC_WORD_WHICH,
- EC_WORD_WASN_T,
- EC_WORD_WEREN_T,
- EC_WORD_HAVE,
- EC_WORD_HAVEN_T,
- EC_WORD_A,
- EC_WORD_AN,
- EC_WORD_NOT,
- EC_WORD_THERE,
- EC_WORD_OK_QUES,
- EC_WORD_SO,
- EC_WORD_MAYBE,
- EC_WORD_ABOUT,
- EC_WORD_OVER,
- EC_WORD_IT,
- EC_WORD_ALL,
- EC_WORD_FOR,
- EC_WORD_ON,
- EC_WORD_OFF,
- EC_WORD_AS,
- EC_WORD_TO,
- EC_WORD_WITH,
- EC_WORD_BETTER,
- EC_WORD_EVER,
- EC_WORD_SINCE,
- EC_WORD_OF,
- EC_WORD_BELONGS_TO,
- EC_WORD_AT,
- EC_WORD_IN,
- EC_WORD_OUT,
- EC_WORD_TOO,
- EC_WORD_LIKE,
- EC_WORD_DID,
- EC_WORD_DIDN_T,
- EC_WORD_DOESN_T,
- EC_WORD_WITHOUT,
- EC_WORD_AFTER,
- EC_WORD_BEFORE,
- EC_WORD_WHILE,
- EC_WORD_THAN,
- EC_WORD_ONCE,
- EC_WORD_ANYWHERE
-};
-enum {
- EC_WORD_MEET = EC_GROUP_FEELINGS << 9,
- EC_WORD_PLAY,
- EC_WORD_HURRIED,
- EC_WORD_GOES,
- EC_WORD_GIDDY,
- EC_WORD_HAPPY,
- EC_WORD_HAPPINESS,
- EC_WORD_EXCITE,
- EC_WORD_IMPORTANT,
- EC_WORD_FUNNY,
- EC_WORD_GOT,
- EC_WORD_GO_HOME,
- EC_WORD_DISAPPOINTED,
- EC_WORD_DISAPPOINTS,
- EC_WORD_SAD,
- EC_WORD_TRY,
- EC_WORD_TRIES,
- EC_WORD_HEARS,
- EC_WORD_THINK,
- EC_WORD_HEAR,
- EC_WORD_WANTS,
- EC_WORD_MISHEARD,
- EC_WORD_DISLIKE,
- EC_WORD_ANGRY,
- EC_WORD_ANGER,
- EC_WORD_SCARY,
- EC_WORD_LONESOME,
- EC_WORD_DISAPPOINT,
- EC_WORD_JOY,
- EC_WORD_GETS,
- EC_WORD_NEVER,
- EC_WORD_DARN,
- EC_WORD_DOWNCAST,
- EC_WORD_INCREDIBLE,
- EC_WORD_LIKES,
- EC_WORD_DISLIKES,
- EC_WORD_BORING,
- EC_WORD_CARE,
- EC_WORD_CARES,
- EC_WORD_ALL_RIGHT,
- EC_WORD_ADORE,
- EC_WORD_DISASTER,
- EC_WORD_ENJOY,
- EC_WORD_ENJOYS,
- EC_WORD_EAT,
- EC_WORD_LACKING,
- EC_WORD_BAD,
- EC_WORD_HARD,
- EC_WORD_TERRIBLE,
- EC_WORD_SHOULD,
- EC_WORD_NICE,
- EC_WORD_DRINK,
- EC_WORD_SURPRISE,
- EC_WORD_FEAR,
- EC_WORD_WANT,
- EC_WORD_WAIT,
- EC_WORD_SATISFIED,
- EC_WORD_SEE,
- EC_WORD_RARE,
- EC_WORD_NEGATIVE,
- EC_WORD_DONE,
- EC_WORD_DANGER,
- EC_WORD_DEFEATED,
- EC_WORD_BEAT,
- EC_WORD_GREAT,
- EC_WORD_ROMANTIC,
- EC_WORD_QUESTION,
- EC_WORD_UNDERSTAND,
- EC_WORD_UNDERSTANDS
-};
-enum {
- EC_WORD_HOT = EC_GROUP_CONDITIONS << 9,
- EC_WORD_EXISTS,
- EC_WORD_EXCESS,
- EC_WORD_APPROVED,
- EC_WORD_HAS,
- EC_WORD_GOOD,
- EC_WORD_LESS,
- EC_WORD_MOMENTUM,
- EC_WORD_GOING,
- EC_WORD_WEIRD,
- EC_WORD_BUSY,
- EC_WORD_TOGETHER,
- EC_WORD_FULL,
- EC_WORD_ABSENT,
- EC_WORD_BEING,
- EC_WORD_NEED,
- EC_WORD_TASTY,
- EC_WORD_SKILLED,
- EC_WORD_NOISY,
- EC_WORD_BIG,
- EC_WORD_LATE,
- EC_WORD_CLOSE,
- EC_WORD_DOCILE,
- EC_WORD_AMUSING,
- EC_WORD_ENTERTAINING,
- EC_WORD_PERFECTION,
- EC_WORD_PRETTY,
- EC_WORD_HEALTHY,
- EC_WORD_EXCELLENT,
- EC_WORD_UPSIDE_DOWN,
- EC_WORD_COLD,
- EC_WORD_REFRESHING,
- EC_WORD_UNAVOIDABLE,
- EC_WORD_MUCH,
- EC_WORD_OVERWHELMING,
- EC_WORD_FABULOUS,
- EC_WORD_ELSE,
- EC_WORD_EXPENSIVE,
- EC_WORD_CORRECT,
- EC_WORD_IMPOSSIBLE,
- EC_WORD_SMALL,
- EC_WORD_DIFFERENT,
- EC_WORD_TIRED,
- EC_WORD_SKILL,
- EC_WORD_TOP,
- EC_WORD_NON_STOP,
- EC_WORD_PREPOSTEROUS,
- EC_WORD_NONE,
- EC_WORD_NOTHING,
- EC_WORD_NATURAL,
- EC_WORD_BECOMES,
- EC_WORD_LUKEWARM,
- EC_WORD_FAST,
- EC_WORD_LOW,
- EC_WORD_AWFUL,
- EC_WORD_ALONE,
- EC_WORD_BORED,
- EC_WORD_SECRET,
- EC_WORD_MYSTERY,
- EC_WORD_LACKS,
- EC_WORD_BEST,
- EC_WORD_LOUSY,
- EC_WORD_MISTAKE,
- EC_WORD_KIND,
- EC_WORD_WELL,
- EC_WORD_WEAKENED,
- EC_WORD_SIMPLE,
- EC_WORD_SEEMS,
- EC_WORD_BADLY
-};
-enum {
- EC_WORD_MEETS = EC_GROUP_ACTIONS << 9,
- EC_WORD_CONCEDE,
- EC_WORD_GIVE,
- EC_WORD_GIVES,
- EC_WORD_PLAYED,
- EC_WORD_PLAYS,
- EC_WORD_COLLECT,
- EC_WORD_WALKING,
- EC_WORD_WALKS,
- EC_WORD_SAYS,
- EC_WORD_WENT,
- EC_WORD_SAID,
- EC_WORD_WAKE_UP,
- EC_WORD_WAKES_UP,
- EC_WORD_ANGERS,
- EC_WORD_TEACH,
- EC_WORD_TEACHES,
- EC_WORD_PLEASE,
- EC_WORD_LEARN,
- EC_WORD_CHANGE,
- EC_WORD_STORY,
- EC_WORD_TRUST,
- EC_WORD_LAVISH,
- EC_WORD_LISTENS,
- EC_WORD_HEARING,
- EC_WORD_TRAINS,
- EC_WORD_CHOOSE,
- EC_WORD_COME,
- EC_WORD_CAME,
- EC_WORD_SEARCH,
- EC_WORD_MAKE,
- EC_WORD_CAUSE,
- EC_WORD_KNOW,
- EC_WORD_KNOWS,
- EC_WORD_REFUSE,
- EC_WORD_STORES,
- EC_WORD_BRAG,
- EC_WORD_IGNORANT,
- EC_WORD_THINKS,
- EC_WORD_BELIEVE,
- EC_WORD_SLIDE,
- EC_WORD_EATS,
- EC_WORD_USE,
- EC_WORD_USES,
- EC_WORD_USING,
- EC_WORD_COULDN_T,
- EC_WORD_CAPABLE,
- EC_WORD_DISAPPEAR,
- EC_WORD_APPEAR,
- EC_WORD_THROW,
- EC_WORD_WORRY,
- EC_WORD_SLEPT,
- EC_WORD_SLEEP,
- EC_WORD_RELEASE,
- EC_WORD_DRINKS,
- EC_WORD_RUNS,
- EC_WORD_RUN,
- EC_WORD_WORKS,
- EC_WORD_WORKING,
- EC_WORD_TALKING,
- EC_WORD_TALK,
- EC_WORD_SINK,
- EC_WORD_SMACK,
- EC_WORD_PRETEND,
- EC_WORD_PRAISE,
- EC_WORD_OVERDO,
- EC_WORD_SHOW,
- EC_WORD_LOOKS,
- EC_WORD_SEES,
- EC_WORD_SEEK,
- EC_WORD_OWN,
- EC_WORD_TAKE,
- EC_WORD_ALLOW,
- EC_WORD_FORGET,
- EC_WORD_FORGETS,
- EC_WORD_APPEARS,
- EC_WORD_FAINT,
- EC_WORD_FAINTED
-};
-enum {
- EC_WORD_CHORES = EC_GROUP_LIFESTYLE << 9,
- EC_WORD_HOME,
- EC_WORD_MONEY,
- EC_WORD_ALLOWANCE,
- EC_WORD_BATH,
- EC_WORD_CONVERSATION,
- EC_WORD_SCHOOL,
- EC_WORD_COMMEMORATE,
- EC_WORD_HABIT,
- EC_WORD_GROUP,
- EC_WORD_WORD,
- EC_WORD_STORE,
- EC_WORD_SERVICE,
- EC_WORD_WORK,
- EC_WORD_SYSTEM,
- EC_WORD_TRAIN,
- EC_WORD_CLASS,
- EC_WORD_LESSONS,
- EC_WORD_INFORMATION,
- EC_WORD_LIVING,
- EC_WORD_TEACHER,
- EC_WORD_TOURNAMENT,
- EC_WORD_LETTER,
- EC_WORD_EVENT,
- EC_WORD_DIGITAL,
- EC_WORD_TEST,
- EC_WORD_DEPT_STORE,
- EC_WORD_TELEVISION,
- EC_WORD_PHONE,
- EC_WORD_ITEM,
- EC_WORD_NAME,
- EC_WORD_NEWS,
- EC_WORD_POPULAR,
- EC_WORD_PARTY,
- EC_WORD_STUDY,
- EC_WORD_MACHINE,
- EC_WORD_MAIL,
- EC_WORD_MESSAGE,
- EC_WORD_PROMISE,
- EC_WORD_DREAM,
- EC_WORD_KINDERGARTEN,
- EC_WORD_LIFE,
- EC_WORD_RADIO,
- EC_WORD_RENTAL,
- EC_WORD_WORLD
-};
-enum {
- EC_WORD_IDOL = EC_GROUP_HOBBIES << 9,
- EC_WORD_ANIME,
- EC_WORD_SONG,
- EC_WORD_MOVIE,
- EC_WORD_SWEETS,
- EC_WORD_CHAT,
- EC_WORD_CHILD_S_PLAY,
- EC_WORD_TOYS,
- EC_WORD_MUSIC,
- EC_WORD_CARDS,
- EC_WORD_SHOPPING,
- EC_WORD_CAMERA,
- EC_WORD_VIEWING,
- EC_WORD_SPECTATOR,
- EC_WORD_GOURMET,
- EC_WORD_GAME,
- EC_WORD_RPG,
- EC_WORD_COLLECTION,
- EC_WORD_COMPLETE,
- EC_WORD_MAGAZINE,
- EC_WORD_WALK,
- EC_WORD_BIKE,
- EC_WORD_HOBBY,
- EC_WORD_SPORTS,
- EC_WORD_SOFTWARE,
- EC_WORD_SONGS,
- EC_WORD_DIET,
- EC_WORD_TREASURE,
- EC_WORD_TRAVEL,
- EC_WORD_DANCE,
- EC_WORD_CHANNEL,
- EC_WORD_MAKING,
- EC_WORD_FISHING,
- EC_WORD_DATE,
- EC_WORD_DESIGN,
- EC_WORD_LOCOMOTIVE,
- EC_WORD_PLUSH_DOLL,
- EC_WORD_PC,
- EC_WORD_FLOWERS,
- EC_WORD_HERO,
- EC_WORD_NAP,
- EC_WORD_HEROINE,
- EC_WORD_FASHION,
- EC_WORD_ADVENTURE,
- EC_WORD_BOARD,
- EC_WORD_BALL,
- EC_WORD_BOOK,
- EC_WORD_FESTIVAL,
- EC_WORD_COMICS,
- EC_WORD_HOLIDAY,
- EC_WORD_PLANS,
- EC_WORD_TRENDY,
- EC_WORD_VACATION,
- EC_WORD_LOOK
-};
-enum {
- EC_WORD_FALL = EC_GROUP_TIME << 9,
- EC_WORD_MORNING,
- EC_WORD_TOMORROW,
- EC_WORD_LAST,
- EC_WORD_DAY,
- EC_WORD_SOMETIME,
- EC_WORD_ALWAYS,
- EC_WORD_CURRENT,
- EC_WORD_FOREVER,
- EC_WORD_DAYS,
- EC_WORD_END,
- EC_WORD_TUESDAY,
- EC_WORD_YESTERDAY,
- EC_WORD_TODAY,
- EC_WORD_FRIDAY,
- EC_WORD_MONDAY,
- EC_WORD_LATER,
- EC_WORD_EARLIER,
- EC_WORD_ANOTHER,
- EC_WORD_TIME,
- EC_WORD_FINISH,
- EC_WORD_WEDNESDAY,
- EC_WORD_SOON,
- EC_WORD_START,
- EC_WORD_MONTH,
- EC_WORD_STOP,
- EC_WORD_NOW,
- EC_WORD_FINAL,
- EC_WORD_NEXT,
- EC_WORD_AGE,
- EC_WORD_SATURDAY,
- EC_WORD_SUMMER,
- EC_WORD_SUNDAY,
- EC_WORD_BEGINNING,
- EC_WORD_SPRING,
- EC_WORD_DAYTIME,
- EC_WORD_WINTER,
- EC_WORD_DAILY,
- EC_WORD_OLDEN,
- EC_WORD_ALMOST,
- EC_WORD_NEARLY,
- EC_WORD_THURSDAY,
- EC_WORD_NIGHTTIME,
- EC_WORD_NIGHT,
- EC_WORD_WEEK
-};
-enum {
- EC_WORD_HIGHS = EC_GROUP_MISC << 9,
- EC_WORD_LOWS,
- EC_WORD_UM,
- EC_WORD_REAR,
- EC_WORD_THINGS,
- EC_WORD_THING,
- EC_WORD_BELOW,
- EC_WORD_ABOVE,
- EC_WORD_BACK,
- EC_WORD_HIGH,
- EC_WORD_HERE,
- EC_WORD_INSIDE,
- EC_WORD_OUTSIDE,
- EC_WORD_BESIDE,
- EC_WORD_THIS_IS_IT_EXCL,
- EC_WORD_THIS,
- EC_WORD_EVERY,
- EC_WORD_THESE,
- EC_WORD_THESE_WERE,
- EC_WORD_DOWN,
- EC_WORD_THAT,
- EC_WORD_THOSE_ARE,
- EC_WORD_THOSE_WERE,
- EC_WORD_THAT_S_IT_EXCL,
- EC_WORD_AM,
- EC_WORD_THAT_WAS,
- EC_WORD_FRONT,
- EC_WORD_UP,
- EC_WORD_CHOICE,
- EC_WORD_FAR,
- EC_WORD_AWAY,
- EC_WORD_NEAR,
- EC_WORD_WHERE,
- EC_WORD_WHEN,
- EC_WORD_WHAT,
- EC_WORD_DEEP,
- EC_WORD_SHALLOW,
- EC_WORD_WHY,
- EC_WORD_CONFUSED,
- EC_WORD_OPPOSITE,
- EC_WORD_LEFT,
- EC_WORD_RIGHT
-};
-enum {
- EC_WORD_WANDERING = EC_GROUP_ADJECTIVES << 9,
- EC_WORD_RICKETY,
- EC_WORD_ROCK_SOLID,
- EC_WORD_HUNGRY,
- EC_WORD_TIGHT,
- EC_WORD_TICKLISH,
- EC_WORD_TWIRLING,
- EC_WORD_SPIRALING,
- EC_WORD_THIRSTY,
- EC_WORD_LOLLING,
- EC_WORD_SILKY,
- EC_WORD_SADLY,
- EC_WORD_HOPELESS,
- EC_WORD_USELESS,
- EC_WORD_DROOLING,
- EC_WORD_EXCITING,
- EC_WORD_THICK,
- EC_WORD_SMOOTH,
- EC_WORD_SLIMY,
- EC_WORD_THIN,
- EC_WORD_BREAK,
- EC_WORD_VORACIOUS,
- EC_WORD_SCATTER,
- EC_WORD_AWESOME,
- EC_WORD_WIMPY,
- EC_WORD_WOBBLY,
- EC_WORD_SHAKY,
- EC_WORD_RIPPED,
- EC_WORD_SHREDDED,
- EC_WORD_INCREASING,
- EC_WORD_YET,
- EC_WORD_DESTROYED,
- EC_WORD_FIERY,
- EC_WORD_LOVEY_DOVEY,
- EC_WORD_HAPPILY,
- EC_WORD_ANTICIPATION
-};
-enum {
- EC_WORD_APPEAL = EC_GROUP_EVENTS << 9,
- EC_WORD_EVENTS,
- EC_WORD_STAY_AT_HOME,
- EC_WORD_BERRY,
- EC_WORD_CONTEST,
- EC_WORD_MC,
- EC_WORD_JUDGE,
- EC_WORD_SUPER,
- EC_WORD_STAGE,
- EC_WORD_HALL_OF_FAME,
- EC_WORD_EVOLUTION,
- EC_WORD_HYPER,
- EC_WORD_BATTLE_TOWER,
- EC_WORD_LEADERS,
- EC_WORD_BATTLE_ROOM,
- EC_WORD_HIDDEN,
- EC_WORD_SECRET_BASE,
- EC_WORD_BLEND,
- EC_WORD_POKEBLOCK,
- EC_WORD_MASTER,
- EC_WORD_RANK,
- EC_WORD_RIBBON
-};
-enum {
- EC_WORD_KTHX_BYE = EC_GROUP_TRENDY_SAYING << 9,
- EC_WORD_YES_SIR_EXCL,
- EC_WORD_AVANT_GARDE,
- EC_WORD_COUPLE,
- EC_WORD_MUCH_OBLIGED,
- EC_WORD_YEEHAW_EXCL,
- EC_WORD_MEGA,
- EC_WORD_1_HIT_KO_EXCL,
- EC_WORD_DESTINY,
- EC_WORD_CANCEL,
- EC_WORD_NEW,
- EC_WORD_FLATTEN,
- EC_WORD_KIDDING,
- EC_WORD_LOSER,
- EC_WORD_LOSING,
- EC_WORD_HAPPENING,
- EC_WORD_HIP_AND,
- EC_WORD_SHAKE,
- EC_WORD_SHADY,
- EC_WORD_UPBEAT,
- EC_WORD_MODERN,
- EC_WORD_SMELL_YA,
- EC_WORD_BANG,
- EC_WORD_KNOCKOUT,
- EC_WORD_HASSLE,
- EC_WORD_WINNER,
- EC_WORD_FEVER,
- EC_WORD_WANNABE,
- EC_WORD_BABY,
- EC_WORD_HEART,
- EC_WORD_OLD,
- EC_WORD_YOUNG,
- EC_WORD_UGLY
-};
-
-#define EC_POKEMON(mon) ((EC_GROUP_POKEMON << 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)
-
-#define EC_GROUP(word) ((word) >> 9)
-#define EC_INDEX(word) ((word) & 0x1FF)
-
extern u8 gUnknown_020388AC;
u16 sub_80EB72C(u16 group);
@@ -1080,6 +16,7 @@ u8 sub_80EB868(u8);
void sub_80EB890(u8);
u8 sub_80EB8C0(void);
u16 sub_80EB8EC(void);
+u8 *sub_80EB544(u8 *dst, u16 *words, u16 arg2, u16 arg3);
#if GERMAN
u32 de_sub_80EB748(u32, u32);
diff --git a/include/event_data.h b/include/event_data.h
index ae048af4c..5656ab8dc 100644
--- a/include/event_data.h
+++ b/include/event_data.h
@@ -1,12 +1,12 @@
#ifndef GUARD_EVENT_DATA_H
#define GUARD_EVENT_DATA_H
-#include "flags.h"
-#include "vars.h"
+#include "constants/flags.h"
+#include "constants/vars.h"
void InitEventData(void);
void ClearTempFieldEventData(void);
-void ClearUpperFlags(void);
+void ClearDailyFlags(void);
void DisableNationalPokedex(void);
void EnableNationalPokedex(void);
bool32 IsNationalPokedexEnabled(void);
@@ -37,8 +37,8 @@ extern u16 gSpecialVar_0x8008;
extern u16 gSpecialVar_0x8009;
extern u16 gSpecialVar_0x800A;
extern u16 gSpecialVar_0x800B;
-extern u16 gScriptResult;
-extern u16 gScriptLastTalked;
-extern u16 gScriptFacing;
+extern u16 gSpecialVar_Result;
+extern u16 gSpecialVar_LastTalked;
+extern u16 gSpecialVar_Facing;
#endif // GUARD_EVENT_DATA_H
diff --git a/include/ewram.h b/include/ewram.h
new file mode 100755
index 000000000..e5ee17008
--- /dev/null
+++ b/include/ewram.h
@@ -0,0 +1,261 @@
+#ifndef GUARD_EWRAM_H
+#define GUARD_EWRAM_H
+
+extern u8 gSharedMem[];
+#define ewram_addr 0x02000000 // used in gSharedMem addr hacks
+
+// Note: we have duplicate ewram labels because its clear some memory
+// 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 ewram0_2 (*(struct Struct2000000 *)(gSharedMem + 0x0))
+#define namingScreenData (*(struct NamingScreenData *)(gSharedMem + 0x0))
+#define ewramBerryPic (gSharedMem + 0x0)
+#define ewram0_3 (*(struct UnknownStruct3 *)(gSharedMem + 0x0))
+#define ewram0_4 (*(struct Unk2000000 *)(gSharedMem + 0x0))
+#define ewram0_5 (*(struct UnkStruct *)(gSharedMem + 0x0))
+#define eMatsudaDebugVar (gSharedMem[0x0])
+#define eBrendanSprite (gSharedMem + 0x0)
+#define ewram0_6 (u32)(&gSharedMem[0])
+#define ewram0_7 (&gSharedMem[0])
+#define eSaveSection (struct SaveSection *)(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 ewram0_9(i) (u8 *)(ewram_addr + (i * 0x20))
+#define ewram0_10 (*(struct UnknownPokenav0*)(gSharedMem + 0))
+#define ewram0_11 (*(struct UnknownPokenav0_1*)(gSharedMem + 0))
+#define ewram4 (*(struct UnknownStruct8 *)(gSharedMem + 0x4))
+#define ewram520 ((struct UnknownStruct7 *)(gSharedMem + 0x00520))
+#define ewram520_2 (u8 *)(ewram_addr + 0x520)
+#define eMaySprite (gSharedMem + 0x800)
+#define ewram888 (gSharedMem + 0x888)
+#define ewramBlankMapName (gSharedMem + 0xA48)
+#define ewramA6E (gSharedMem[0xA6E])
+#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))
+#define ARRAY_2007900 ((struct EasyChatPair *)(gSharedMem + 0x7900))
+#define ewram_2008000 (*(struct PlayerRecords *)(gSharedMem + 0x08000))
+#define ewram8000 (&gSharedMem[0x8000])
+#define ePokedexPalAddr1 (void *)(gSharedMem + 0x8000)
+#define ewram8800 (&gSharedMem[0x8800])
+#define ewram9000 (&gSharedMem[0x9000])
+#define ewram9000_hack (void *)(ewram_addr + 0x9000) // TODO: Fix this.
+#define ewram9800 (&gSharedMem[0x9800])
+#define ewramA000 (&gSharedMem[0xA000])
+#define ewramA800 (&gSharedMem[0xA800])
+#define ewramB000 (&gSharedMem[0xB000])
+#define ewramB800 (&gSharedMem[0xB800])
+#define TRANSITION_STRUCT (*(struct TransitionData *) (gSharedMem + 0xC000))
+#define ewramC000 (&gSharedMem[0xC000])
+#define ePokedexPalAddr2 (void *)(gSharedMem + 0xC000)
+#define ewramC03C (&gSharedMem[0xC03C])
+#define ewramC800 (&gSharedMem[0xC800])
+#define ewramD000 (&gSharedMem[0xD000])
+#define ewramD800 (&gSharedMem[0xD800])
+#define ewramE000 (&gSharedMem[0xE000])
+#define ewramE800 (&gSharedMem[0xE800])
+#define ewramF000 (&gSharedMem[0xF000])
+#define ewramF800 (&gSharedMem[0xF800])
+#define ewram_2010000 (*(struct TradeEwramStruct *)(gSharedMem + 0x10000))
+#define ewram10000 (&gSharedMem[0x10000])
+#define ewram10000_2 (void *)(gSharedMem + 0x10000) // slot machine
+#define ePokedexPalAddr3 (void *)(gSharedMem + 0x10000)
+#define ewram10800 (&gSharedMem[0x10800])
+#define ewram11000 (&gSharedMem[0x11000])
+#define ewram11800 (&gSharedMem[0x11800])
+#define ewram12000 (&gSharedMem[0x12000])
+#define ewram12800 (&gSharedMem[0x12800])
+#define ewram13000 (&gSharedMem[0x13000])
+#define ewram13800 (&gSharedMem[0x13800])
+#define EWRAM_14000 ((u8 *)(gSharedMem + 0x14000))
+#define ewram14000 (&gSharedMem[0x14000])
+#define ePokedexPalAddr4 (void *)(gSharedMem + 0x14000)
+#define ewram14000arr(i, data) (gSharedMem[0x14000 + i + data])
+#define ewram14004arr(i, data) (gSharedMem[0x14004 + i + data])
+#define ewram14008arr(i, data) (gSharedMem[0x14008 + data + i])
+#define ewram14800 (&gSharedMem[0x14800])
+#define EWRAM_14800 ((u16 *)(gSharedMem + 0x14800))
+#define sEvoInfo ((*(struct EvoInfo*)(gSharedMem + 0x14800)))
+#define EWRAM_15000 ((u8 *)(gSharedMem + 0x15000))
+#define ewram15000 (&gSharedMem[0x15000])
+#define ewram15000arr(i, data) (gSharedMem[0x15000 + data + i])
+#define ewram15800 (&gSharedMem[0x15800])
+#define ewram15DDE (gSharedMem[0x15DDE])
+#define ewram15DDF (gSharedMem[0x15DDF])
+#define ewram15DE0 ((*(struct ContestEntry*)(gSharedMem + 0x15DE0)))
+#define ewram15E00 ((*(struct Unk2015E00*)(gSharedMem + 0x15E00)))
+#define ewram16000 (gSharedMem[0x16000])
+#define ewram16000_2 (&gSharedMem[0x16000])
+#define ewram16001 (gSharedMem[0x16001])
+#define ewram16002 (gSharedMem[0x16002])
+#define ewram16003 (gSharedMem[0x16003])
+#define ewram16004arr(i, bank) (gSharedMem[0x16004 + i + bank * 2])
+#define ewram1600C (gSharedMem[0x1600C])
+#define ewram1600E (gSharedMem[0x1600E])
+#define ewram16010arr(bank) (gSharedMem[0x16010 + bank])
+#define ewram1601B (gSharedMem[0x1601B])
+#define eDynamicMoveType (gSharedMem[0x1601C])
+#define eDmgMultiplier (gSharedMem[0x1601F])
+#define ewram16020 ((u8 *)(gSharedMem + 0x16020))
+#define ewram16020arr(i) (gSharedMem[0x16020 + i])
+#define ewram16054 (gSharedMem[0x16054])
+#define ewram16056 (gSharedMem[0x16056])
+#define ewram16058 (gSharedMem[0x16058])
+#define ewram16059 (gSharedMem[0x16059])
+#define ewram16060(bank) (gSharedMem[0x16060 + bank])
+#define BATTLE_PARTY_ID(bank) (gSharedMem[0x16064 + bank])
+#define ewram16064 (&gSharedMem[0x16064])
+#define ewram16064arr(bank) (gSharedMem[0x16064 + bank])
+#define ewram16068arr(i) (gSharedMem[0x16068 + i])
+#define UNK_201606C_ARRAY (gSharedMem + 0x1606C) // lazy define but whatever.
+#define ewram1606Carr(i, a) (gSharedMem[0x1606C + i + a * 3])
+#define ewram16078 (gSharedMem[0x16078])
+#define ewram16084 (gSharedMem[0x16084])
+#define ewram16086 (gSharedMem[0x16086])
+#define ewram16087 (gSharedMem[0x16087])
+#define ewram16088 (gSharedMem[0x16088])
+#define ewram16088_2 (*(u8 *)(gSharedMem + 0x16088))
+#define ewram16089 (gSharedMem[0x16089])
+#define ewram16089_2 (*(u8 *)(gSharedMem + 0x16089))
+#define ewram1608Carr(bank) (gSharedMem[0x1608C + bank])
+#define EWRAM_1609D (gSharedMem[0x1609D])
+#define ewram160A1 (gSharedMem[0x160A1])
+#define ewram160A6 (gSharedMem[0x160A6])
+#define ewram160A8 (gSharedMem[0x160A8])
+#define ewram160A9 (gSharedMem[0x160A9])
+#define ewram160AA (gSharedMem[0x160AA])
+#define ewram160AB (gSharedMem[0x160AB])
+#define ewram160AC ((u8 *)(gSharedMem + 0x160AC))
+#define ewram160ACarr(i) (gSharedMem[0x160AC + i])
+#define ewram160ACarr2(i, bank) (gSharedMem[0x160AC + i + bank * 2])
+#define ewram160BC ((u16 *)(gSharedMem + 0x160BC)) // hp
+#define ewram160BCarr(bank) (gSharedMem[0x160BC + bank * 2])
+#define ewram160C0 (gSharedMem[0x160C0])
+#define ewram160C2_Flags ((u16 *)(gSharedMem + 0x160C2))
+#define ewram160C4_Callback ((MainCallback *)(gSharedMem + 0x160C4))
+#define ewram160C8 (gSharedMem[0x160C8])
+#define ewram160C8arr(bank) (gSharedMem[0x160C8 + (bank / 2)])
+#define ewram160C9 (gSharedMem[0x160C9])
+#define ewram160CB (gSharedMem[0x160CB])
+#define ewram160CC ((u8 *)(gSharedMem + 0x160CC))
+#define ewram160CCarr(i) (gSharedMem[0x160CC + i])
+#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 ewram160DD (gSharedMem[0x160DD])
+#define ewram160E0(i) (gSharedMem[0x160E0 + i])
+#define ewram160E6 (gSharedMem[0x160E6])
+#define CHOICED_MOVE(bank) (((u16*)(&gSharedMem[0x160E8 + bank * 2])))
+#define ewram160E8 ((u8 *)(gSharedMem + 0x160E8))
+#define ewram160E8arr(i) (gSharedMem[0x160E8 + i])
+#define ewram160E8arr2(i, bank) (gSharedMem[0x160E8 + i + bank * 2])
+#define ewram160F0 ((u8 *)(gSharedMem + 0x160F0))
+#define ewram160F0arr(i) (gSharedMem[0x160F0 + i])
+#define ewram160F8 (gSharedMem[0x160F8])
+#define ewram160F9 (gSharedMem[0x160F9])
+#define eStatHp (gSharedMem[0x160FA])
+#define ewram160FB (gSharedMem[0x160FB])
+#define ewram16100 ((u8 *)(gSharedMem + 0x16100))
+#define ewram16100arr(i) (gSharedMem[0x16100 + i])
+#define ewram16100arr2(i, bank) (gSharedMem[0x16100 + i + bank * 4])
+#define ewram16108 ((u8 *)(gSharedMem + 0x16108))
+#define ewram16108arr(i) (gSharedMem[0x16108 + i])
+#define ewram16110 (gSharedMem[0x16110])
+#define ewram16111 (gSharedMem[0x16111])
+#define ewram16113 (gSharedMem[0x16113])
+#define ewram16400 (gSharedMem + 0x16400)
+#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gSharedMem + 0x16800))
+#define UNK_2016A00_STRUCT ((struct UnkBattleStruct1 *) (gSharedMem + 0x16A00))
+#define AI_STACK ((struct AI_Stack *) (gSharedMem + 0x16C00))
+#define AI_ARRAY_160CC(i) (gSharedMem[0x160CC + i * 2])
+#define ewram16800 (&gSharedMem[0x16800])
+#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))
+#define ewram17130 (gSharedMem[0x17130])
+#define B_FUNCTION_STACK ((struct funcStack *) (gSharedMem + 0x17140))
+#define ewram17160 (gSharedMem[0x17160])
+#define ewram17800 ((struct Struct2017800 *) (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 ewram_2018000 (*(struct PlayerRecords *)(gSharedMem + 0x18000))
+#define EWRAM_18000 ((u16 *)(gSharedMem + 0x18000))
+#define ewram18000 ((u16 *)(gSharedMem + 0x18000))
+#define ewram18000_2 (&gSharedMem[0x18000])
+#define ewram18000_3 *(struct Pokemon **)(gSharedMem + 0x18000)
+#define eBerryBlenderData (struct BerryBlenderData*)(&gSharedMem[0x18000])
+#define eEggHatchData (struct EggHatchData*)(&gSharedMem[0x18000])
+#define ePokedexView1 (struct PokedexView *)(gSharedMem + 0x18000)
+#define UNK_2018000_STRUCT (*(struct UnknownStruct2018000 *)(gSharedMem + 0x18000))
+#define pssData (*(struct PokemonSummaryScreenStruct *)(gSharedMem + 0x18000))
+#define ewram18300 ((u16 *)(gSharedMem + 0x18300))
+#define ewram18800 (&gSharedMem[0x18800])
+#define ePokedexView2 (struct PokedexView *)(gSharedMem + 0x18800)
+#define ewram19000 (&gSharedMem[0x19000])
+#define eCableCar2 ((struct CableCarEwramStruct2 *)(gSharedMem + 0x19000))
+#define ePokedexView3 (struct PokedexView *)(gSharedMem + 0x19000)
+#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])
+#define ewram1A800 (&gSharedMem[0x1A800])
+#define ewram1B000 (*(struct Unk201B000 *)(gSharedMem + 0x1B000))
+#define ewram1B000_alt (*(struct Struct201B000 *)(gSharedMem + 0x1B000))
+#define EWRAM_1B000 ewram1B000_alt // FIXME
+#define EWRAM_1B000_2 (*(struct Struct201B000 *)(gSharedMem + 0x1B000))
+#define ewram1B000_2 (&gSharedMem[0x1B000])
+#define ewram1B800 (&gSharedMem[0x1B800])
+#define EWRAM_1C000 (*(struct Struct201C000 *)(gSharedMem + 0x1C000))
+#define ewram1C000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000))
+#define ewram1c000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000)) // FIXME, names too similar
+#define eHallOfFameMons1 (struct HallofFameMons*)(&gSharedMem[0x1C000])
+#define EWRAM_1C800 (*(struct Unk201C800 *)(gSharedMem + 0x1C800))
+#define ewram1D000 ((struct Pokemon *)(gSharedMem + 0x1D000))
+#define ewram1D000_2 ((u16 *)(gSharedMem + 0x1D000))
+#define ewram1D400 ((u16 *)(gSharedMem + 0x1D400))
+#define ewramSavedItemsPocket ((struct ItemSlot *)(gSharedMem + 0x1E000)) // saved items pocket (for Wally battle)
+#define ewram1E000(i) (gSharedMem[0x1E000 + i])
+#define eHallOfFameMons2 (struct HallofFameMons*)(&gSharedMem[0x1E000])
+#define eHallOfFame (struct HallOfFame *)(gSharedMem + 0x1E000)
+#define HALL_OF_FAME_SHEET_0 ((u8 *)(gSharedMem + 0x1E000))
+#define ewram1E000_2 (const u8 *)(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)
+#define HALL_OF_FAME_SHEET_2 ((u8 *)(gSharedMem + 0x1F000))
+#define EWRAM_1F800 ((u16 *)(gSharedMem + 0x1F800))
+#define ewram_1F800_2 (const u16 *)(gSharedMem + 0x1F800)
+#define ewram1FE00 (*(struct Unk201FE00 *)(gSharedMem + 0x1FE00))
+#define eMailboxInfo (*(struct MailboxStruct *)(gSharedMem + 0x1FE00))
+#define eCutGrassSpriteArray (gSharedMem + 0x1FFF0) // 8 sprite IDs
+#define ewram1FFFC (gSharedMem[0x1FFFC])
+#define ewram1FFFD (gSharedMem[0x1FFFD])
+#define gHelperState (gSharedMem[0x1FFFE])
+#define ewram1FFFE (gSharedMem[0x1FFFE])
+#define gReshowState (gSharedMem[0x1FFFF])
+#define ewramBagSetupStep (gSharedMem[0x1FFFF])
+#define ewram1FFFF (gSharedMem[0x1FFFF])
+
+#endif
diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h
index a85e02132..2d5693e40 100644
--- a/include/field_control_avatar.h
+++ b/include/field_control_avatar.h
@@ -30,7 +30,7 @@ u8 *sub_80682A8(struct MapPosition *, u8, u8);
void overworld_poison_timer_set(void);
void prev_quest_postbuffer_cursor_backup_reset(void);
u8 *sub_8068E24(struct MapPosition *);
-u8 *GetFieldObjectScriptPointerForComparison();
+u8 *GetFieldObjectScriptPointerPlayerFacing(void);
bool8 mapheader_trigger_activate_at__run_now(struct MapPosition *);
bool8 sub_8068870(u16 a);
bool8 sub_8068894(void);
diff --git a/include/field_door.h b/include/field_door.h
index 31fdd154b..091aac27f 100644
--- a/include/field_door.h
+++ b/include/field_door.h
@@ -5,8 +5,8 @@ struct DoorGraphics
{
u16 metatileNum;
u8 unk2;
- void *tiles;
- void *palette;
+ const void *tiles;
+ const void *palette;
};
struct DoorAnimFrame
diff --git a/include/field_effect.h b/include/field_effect.h
index a509697e4..9f71efba1 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -67,7 +67,7 @@ enum FieldEffectScriptIdx
FLDEFF_CUT_GRASS,
FLDEFF_FIELD_MOVE_SHOW_MON_INIT,
FLDEFF_USE_FLY_ANCIENT_TOMB,
- FLDEFF_PCTURN_ON,
+ FLDEFF_SECRET_BASE_PC_TURN_ON,
FLDEFF_HALL_OF_FAME_RECORD,
FLDEFF_USE_TELEPORT
};
@@ -253,6 +253,6 @@ void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8);
void sub_80878A8(void);
void sub_8087BA8(void);
-extern u32 gFieldEffectArguments[8];
+extern s32 gFieldEffectArguments[8];
#endif // GUARD_FIELD_EFFECT_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index 641a28ed3..f0b0bb5ab 100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -9,18 +9,18 @@ extern const u8 gUnknown_0830FD14[];
static u8 callback(struct MapObject *, struct Sprite *);\
void setup(struct Sprite *sprite)\
{\
- meta_step(&gMapObjects[sprite->data0], sprite, callback);\
+ meta_step(&gMapObjects[sprite->data[0]], sprite, callback);\
}\
static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\
{\
- return table[sprite->data1](mapObject, sprite);\
+ return table[sprite->data[1]](mapObject, sprite);\
}
#define fieldmap_object_null_cb(setup, callback) \
static u8 callback(struct MapObject *, struct Sprite *);\
void setup(struct Sprite *sprite)\
{\
- meta_step(&gMapObjects[sprite->data0], sprite, callback);\
+ meta_step(&gMapObjects[sprite->data[0]], sprite, callback);\
}\
static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\
{\
@@ -38,6 +38,9 @@ extern const u16 gMapObjectPalette19[];
extern const u32 gMapObjectPic_MovingBox[32];
extern const struct SpriteFrameImage gMapObjectPicTable_PechaBerryTree[];
+extern const u8 gFieldEffectPic_CutGrass[];
+extern const u16 gFieldEffectObjectPalette6[];
+
void sub_805C058(struct MapObject *mapObject, s16 a, s16 b);
void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18);
void MoveCoords(u8 direction, s16 *x, s16 *y);
@@ -344,7 +347,7 @@ void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8);
const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8);
void FieldObjectHandleDynamicGraphicsId(struct MapObject *);
void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
-void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *);
+void FieldObjectGetLocalIdAndMap(struct MapObject *, void *, void *, void *);
void sub_805BCC0(s16 x, s16 y);
void sub_805BCF0(u8, u8, u8, u8);
void sub_805BD48(u8, u8, u8);
@@ -381,7 +384,7 @@ void npc_set_running_behaviour_etc(struct MapObject *, u8);
u8 npc_running_behaviour_by_direction(u8);
u8 npc_block_way(struct MapObject *, s16, s16, u32);
u8 sub_8060024(struct MapObject *, s16, s16, u8);
-u8 sub_8060234(u8, u8, u8);
+bool8 IsBerryTreeSparkling(u8, u8, u8);
void sub_8060288(u8, u8, u8);
void sub_8060388(s16, s16, s16 *, s16 *);
void sub_80603CC(s16 x, s16 y, s16 *pInt, s16 *pInt1);
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index 86b1af3fb..1b25aad24 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -19,7 +19,7 @@ u8 ForcedMovement_SlideSouth(void);
u8 ForcedMovement_SlideNorth(void);
u8 ForcedMovement_SlideWest(void);
u8 ForcedMovement_SlideEast(void);
-u8 sub_8058C04(void);
+u8 ForcedMovement_MatJump(void);
u8 sub_8058C10(void);
u8 ForcedMovement_MuddySlope(void);
void PlayerNotOnBikeNotMoving(u8 direction, u16 heldKeys);
@@ -37,23 +37,23 @@ void sub_80591F4(struct MapObject *a);
void sub_8059204(void);
u8 player_get_x22(void);
void PlayerSetAnimId(u8 a, u8 b);
-void PlayerGoSpeed0(u8 a);
-void sub_80593C4(u8 a);
+void PlayerGoSpeed1(u8 a);
+void PlayerGoSpeed2(u8 a);
void npc_use_some_d2s(u8 a);
-void sub_80593F4(u8 a);
+void PlayerGoSpeed4(u8 a);
void sub_805940C(u8 a);
void PlayerOnBikeCollide(u8);
void PlayerFaceDirection(u8 a);
void PlayerTurnInPlace(u8 a);
void PlayerJumpLedge(u8 a);
void sub_80594C0(void);
-void sub_8059504(u8 a);
+void PlayerIdleWheelie(u8 a);
void PlayerStartWheelie(u8 a);
-void sub_8059534(u8 a);
-void sub_805954C(u8 a);
-void sub_8059570(u8 a);
-void sub_8059594(u8 a);
-void sub_80595B8(u8 a);
+void PlayerEndWheelie(u8 a);
+void PlayerStandingHoppingWheelie(u8 a);
+void PlayerMovingHoppingWheelie(u8 a);
+void PlayerLedgeHoppingWheelie(u8 a);
+void PlayerAcroTurnJump(u8 a);
void sub_80595DC(u8 a);
void sub_8059600(u8 a);
void sub_8059618(u8 a);
@@ -64,7 +64,7 @@ u8 player_get_direction_lower_nybble(void);
u8 player_get_direction_upper_nybble(void);
u8 PlayerGetZCoord(void);
u8 TestPlayerAvatarFlags(u8);
-// sub_80597D0
+u8 sub_80597D0(void);
u8 GetPlayerAvatarObjectId(void);
void sub_80597E8(void);
void sub_80597F4(void);
@@ -83,11 +83,11 @@ void sub_8059B88(u8);
void sub_8059BF4(void);
// sub_8059C3C
void sub_8059C94(u8);
-// sub_8059D08
+void sub_8059D08(u8);
u8 sub_8059E84(struct Task *task, struct MapObject *b, struct MapObject *c);
u8 sub_8059EA4(struct Task *task, struct MapObject *b, struct MapObject *c);
u8 sub_8059F40(struct Task *task, struct MapObject *b, struct MapObject *c);
-u8 sub_805A000(struct Task *task, struct MapObject *mapObject);
+u8 PlayerAvatar_DoSecretBaseMatJump(struct Task *task, struct MapObject *mapObject);
u8 sub_805A0D8(struct Task *task, struct MapObject *mapObject);
u8 sub_805A100(struct Task *task, struct MapObject *mapObject);
u8 sub_805A178(struct Task *task, struct MapObject *mapObject);
diff --git a/include/field_special_scene.h b/include/field_special_scene.h
index d674f09df..240e9ecb6 100644
--- a/include/field_special_scene.h
+++ b/include/field_special_scene.h
@@ -1,8 +1,8 @@
#ifndef GUARD_FIELD_SPECIAL_SCENE_H
#define GUARD_FIELD_SPECIAL_SCENE_H
-s32 GetTruckCameraBobbingY(int a1);
-s32 GetTruckBoxMovement(int a1);
+s16 GetTruckCameraBobbingY(int a1);
+s16 GetTruckBoxMovement(int a1);
void Task_Truck1(u8 taskId);
void Task_Truck2(u8 taskId);
void Task_Truck3(u8 taskId);
diff --git a/include/field_specials.h b/include/field_specials.h
index d61aa3b20..52325879c 100644
--- a/include/field_specials.h
+++ b/include/field_specials.h
@@ -25,5 +25,6 @@ void ScriptShowElevatorMenu(void);
void SetShoalItemFlag(u16);
u8 GetLeadMonIndex(void);
void ResetFanClub(void);
+u8 sub_810FB10(u8 a0);
#endif // GUARD_FIELD_SPECIALS_H
diff --git a/include/field_weather.h b/include/field_weather.h
index d3b1f4ffd..ba72a47bc 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -1,15 +1,142 @@
#ifndef GUARD_WEATHER_H
#define GUARD_WEATHER_H
-void sub_807C828(void);
+#define WEATHER_NONE 0
+#define WEATHER_CLOUDS 1
+#define WEATHER_RAIN_LIGHT 3
+#define WEATHER_SNOW 4
+#define WEATHER_RAIN_MED 5
+#define WEATHER_FOG_1 6
+#define WEATHER_ASH 7
+#define WEATHER_FOG_2 9
+#define WEATHER_DROUGHT 12
+#define WEATHER_RAIN_HEAVY 13
+#define WEATHER_BUBBLES 14
+
+struct Sprite;
+
+struct Weather
+{
+ union
+ {
+ struct
+ {
+ struct Sprite *rainSprites[24];
+ struct Sprite *snowflakeSprites[101];
+ struct Sprite *cloudSprites[3];
+ } s1;
+ struct
+ {
+ u8 filler0[0xA0];
+ struct Sprite *fog1Sprites[20];
+ struct Sprite *ashSprites[20];
+ struct Sprite *fog2Sprites[20];
+ struct Sprite *sandstormSprites1[20];
+ 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 unknown_6CA;
+ u8 unknown_6CB;
+ u16 initStep;
+ u16 finishStep;
+ u8 currWeather;
+ u8 nextWeather;
+ u8 weatherGfxLoaded;
+ u8 unknown_6D3;
+ u8 unknown_6D4;
+ u8 unknown_6D5;
+ u16 unknown_6D6;
+ u8 unknown_6D8;
+ u8 unknown_6D9;
+ u8 rainSpriteCount;
+ u8 unknown_6DB;
+ u8 unknown_6DC;
+ u8 rainStrength;
+ /*0x6DE*/ u8 cloudSpritesCreated;
+ u8 filler_6DF[1];
+ u16 unknown_6E0;
+ u16 unknown_6E2;
+ u8 snowflakeSpriteCount;
+ u8 unknown_6E5;
+ u16 unknown_6E6;
+ u16 thunderCounter;
+ u8 unknown_6EA;
+ u8 unknown_6EB;
+ u8 unknown_6EC;
+ u8 unknown_6ED;
+ u16 fog1ScrollPosX;
+ u16 unknown_6F0;
+ u16 unknown_6F2;
+ u8 unknown_6F4[6];
+ u8 unknown_6FA;
+ u8 fog1SpritesCreated;
+ u16 unknown_6FC;
+ u16 unknown_6FE;
+ u8 ashSpritesCreated;
+ u8 filler_701[3];
+ u32 unknown_704;
+ u32 unknown_708;
+ u8 filler_70C[2];
+ u16 unknown_70E;
+ u16 unknown_710;
+ u16 unknown_712;
+ u16 unknown_714;
+ u8 sandstormSprites1Created;
+ u8 sandstormSprites2Created;
+ u16 unknown_718;
+ u16 unknown_71A;
+ u16 unknown_71C;
+ u16 unknown_71E;
+ u16 unknown_720;
+ u16 unknown_722;
+ u8 fog2SpritesCreated;
+ u8 filler_725[1];
+ u16 unknown_726;
+ u16 unknown_728;
+ u16 unknown_72A;
+ u16 unknown_72C;
+ u8 unknown_72E;
+ u8 filler_72F;
+ u16 currBlendEVA;
+ u16 currBlendEVB;
+ u16 targetBlendEVA;
+ u16 targetBlendEVB;
+ u8 unknown_738;
+ u8 unknown_739;
+ u8 blendDelay;
+ u8 filler_73B[0x3C-0x3B];
+ s16 unknown_73C;
+ s16 unknown_73E;
+ s16 unknown_740;
+ s16 unknown_742;
+ u8 filler_744[0xD-4];
+ s8 unknown_74D;
+ u8 unknown_74E;
+};
+
+void StartWeather(void);
void DoWeatherEffect(u8 effect);
void sub_807C988(u8 effect);
void sub_807C9B4(u8 effect);
-void sub_807C9E4(u8);
-void sub_807CA34(u8);
+void Task_WeatherInit(u8);
+void Task_WeatherMain(u8);
void sub_807CAE8(void);
void nullsub_38(void);
-u32 sub_807CB0C(void);
void sub_807CB10(void);
void sub_807CC24(void);
void sub_807CCAC(void);
@@ -20,8 +147,9 @@ void nullsub_39(void);
// ASM
void sub_807CEBC(u8, u8, s8);
-void sub_807D1BC(u8, u8, u8, u8, u16);
-void sub_807D304(int, u8, u16);
+//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);
@@ -29,7 +157,7 @@ void fade_screen(u8, u8);
void sub_807D78C(u8 tag);
void sub_807D874(u8);
// ...
-void sub_807DB64(u8, u8);
+void Weather_SetBlendCoeffs(u8, u8);
// ...
void sub_807DE68(void);
// ...
@@ -37,68 +165,18 @@ void PlayRainSoundEffect(void);
// ...
void SetSav1Weather(u32);
u8 GetSav1Weather(void);
-void sub_80806E4(void);
+void SetSav1WeatherFromCurrMapHeader(void);
// ...
void DoCurrentWeather(void);
void sub_8080750();
-u8 sub_807D770(void);
+bool8 sub_807D770(void);
bool8 sub_807DDFC(void);
void SetWeather(u32);
void UpdateWeatherPerDay(u16);
-struct Weather
-{
- u8 filler_000[0xf0];
- struct Sprite *unk_0f0[20];
- u8 filler_140[0xc0];
- u8 unknown_200[2][32];
- u8 filler_240[0x480];
- 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 unknown_6CA;
- u8 unknown_6CB;
- u8 filler_6CC[2];
- u16 unknown_6CE;
- u8 unknown_6D0;
- u8 unknown_6D1;
- u8 filler_6D2[1];
- u8 unknown_6D3;
- u8 unknown_6D4;
- u8 unknown_6D5;
- u8 filler_6D6[2];
- u8 unknown_6D8;
- u8 filler_6D9[1];
- u8 unknown_6DA;
- u8 filler_6DB[3];
- u8 unknown_6DE;
- u8 filler_6DF[5];
- u8 unknown_6E4;
- u8 filler_6E5[0x15];
- u8 unknown_6FA;
- u8 unknown_6FB;
- u16 unknown_6FC;
- u8 filler_6FE[2];
- u8 unknown_700;
- u8 filler_701[0x15];
- u8 unknown_716;
- u8 unknown_717;
- u8 filler_718[0xc];
- u8 unknown_724;
- u8 filler_725[9];
- u8 unknown_72E;
-};
-
-#define gWeather gUnknown_0202F7E8
extern struct Weather gWeather;
-extern struct Weather *const gUnknown_08396FC4;
+extern struct Weather *const gWeatherPtr;
#endif // GUARD_WEATHER_H
diff --git a/include/flags.h b/include/flags.h
deleted file mode 100644
index a60de6ea0..000000000
--- a/include/flags.h
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef GUARD_FLAGS_H
-#define GUARD_FLAGS_H
-
-#define TRAINER_FLAG_START 0x500
-
-// SYSTEM FLAGS
-
-#define SYS_POKEMON_GET 0x800
-#define SYS_POKEDEX_GET 0x801
-#define SYS_POKENAV_GET 0x802
-#define SYS_GAME_CLEAR 0x804
-#define SYS_CHAT_USED 0x805
-#define SYS_HIPSTER_MEET 0x806
-
-// badges
-#define BADGE01_GET 0x807
-#define BADGE02_GET 0x808
-#define BADGE03_GET 0x809
-#define BADGE04_GET 0x80A
-#define BADGE05_GET 0x80B
-#define BADGE06_GET 0x80C
-#define BADGE07_GET 0x80D
-#define BADGE08_GET 0x80E
-
-// cities and towns
-#define FLAG_VISITED_LITTLEROOT_TOWN 0x80F
-#define FLAG_VISITED_OLDALE_TOWN 0x810
-#define FLAG_VISITED_DEWFORD_TOWN 0x811
-#define FLAG_VISITED_LAVARIDGE_TOWN 0x812
-#define FLAG_VISITED_FALLARBOR_TOWN 0x813
-#define FLAG_VISITED_VERDANTURF_TOWN 0x814
-#define FLAG_VISITED_PACIFIDLOG_TOWN 0x815
-#define FLAG_VISITED_PETALBURG_CITY 0x816
-#define FLAG_VISITED_SLATEPORT_CITY 0x817
-#define FLAG_VISITED_MAUVILLE_CITY 0x818
-#define FLAG_VISITED_RUSTBORO_CITY 0x819
-#define FLAG_VISITED_FORTREE_CITY 0x81A
-#define FLAG_VISITED_LILYCOVE_CITY 0x81B
-#define FLAG_VISITED_MOSSDEEP_CITY 0x81C
-#define FLAG_VISITED_SOOTOPOLIS_CITY 0x81D
-#define FLAG_VISITED_EVER_GRANDE_CITY 0x81E
-
-#define SYS_USE_FLASH 0x828
-#define SYS_USE_STRENGTH 0x829
-#define SYS_WEATHER_CTRL 0x82A
-#define SYS_CYCLING_ROAD 0x82B
-#define SYS_SAFARI_MODE 0x82C
-#define SYS_CRUISE_MODE 0x82D
-
-#define SYS_TV_HOME 0x830
-#define SYS_TV_WATCH 0x831
-#define SYS_TV_START 0x832
-#define SYS_POPWORD_INPUT 0x833
-#define SYS_MIX_RECORD 0x834
-#define SYS_CLOCK_SET 0x835
-#define SYS_NATIONAL_DEX 0x836
-#define SYS_CAVE_SHIP 0x837
-#define SYS_CAVE_WONDER 0x838
-#define SYS_CAVE_BATTLE 0x839
-#define SYS_SHOAL_TIDE 0x83A
-#define SYS_RIBBON_GET 0x83B
-
-#define FLAG_UNLOCK_BATTLE_TOWER 0x848
-#define FLAG_UNLOCK_SOUTHERN_ISLAND 0x849
-
-#define SYS_PC_LANETTE 0x84B
-#define SYS_EXDATA_ENABLE 0x84C
-#define SYS_ENC_UP_ITEM 0x84D
-#define SYS_ENC_DOWN_ITEM 0x84E
-#define SYS_BRAILLE_DIG 0x84F
-#define SYS_BRAILLE_STRENGTH 0x850
-#define SYS_BRAILLE_WAIT 0x851
-#define SYS_BRAILLE_FLY 0x852
-#define SYS_HAS_EON_TICKET 0x853
-
-#define SYS_POKEMON_LEAGUE_FLY 0x854
-
-#define SYS_TV_LATI 0x85D
-
-#define SYS_SHOAL_ITEM 0x85F
-#define SYS_B_DASH 0x860 // got Running Shoes
-#define SYS_CTRL_OBJ_DELETE 0x861
-#define SYS_RESET_RTC_ENABLE 0x862
-
-// SPECIAL FLAGS (unknown purpose)
-
-#define SPECIAL_FLAG_1 0x4001
-
-#endif // GUARD_FLAGS_H
-
-bool8 FlagGet(u16 flag);
diff --git a/include/fldeff_80C5CD4.h b/include/fldeff_80C5CD4.h
deleted file mode 100644
index 413e8ad96..000000000
--- a/include/fldeff_80C5CD4.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef GUARD_FLDEFF_80C5CD4_H
-#define GUARD_FLDEFF_80C5CD4_H
-
-void DoFieldPoisonEffect(void);
-bool32 FieldPoisonEffectIsRunning(void);
-void CreateRecordMixingSprite(void);
-void DestroyRecordMixingSprite(void);
-
-#endif // GUARD_FLDEFF_80C5CD4_H
diff --git a/include/fldeff_decoration.h b/include/fldeff_decoration.h
new file mode 100644
index 000000000..50b075b89
--- /dev/null
+++ b/include/fldeff_decoration.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_FLDEFF_DECORATION_H
+#define GUARD_FLDEFF_DECORATION_H
+
+void sub_80C68A4(s16 metatileId, s16 x, s16 y);
+void sub_80C6A54(s16 x, s16 y);
+void DoDecorationSoundEffect(s16 metatileId);
+void DoYellowCave4Sparkle(void);
+
+#endif // GUARD_FLDEFF_DECORATION_H
diff --git a/include/fldeff_poison.h b/include/fldeff_poison.h
new file mode 100644
index 000000000..fe3308ba9
--- /dev/null
+++ b/include/fldeff_poison.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_FLDEFF_POISON_H
+#define GUARD_FLDEFF_POISON_H
+
+void DoFieldPoisonEffect(void);
+bool32 FieldPoisonEffectIsRunning(void);
+
+#endif // GUARD_FLDEFF_POISON_H
diff --git a/include/fldeff_recordmixing.h b/include/fldeff_recordmixing.h
new file mode 100644
index 000000000..550705eb6
--- /dev/null
+++ b/include/fldeff_recordmixing.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_FLDEFF_RECORDMIXING_H
+#define GUARD_FLDEFF_RECORDMIXING_H
+
+u8 CreateRecordMixingSprite(void);
+void DestroyRecordMixingSprite(void);
+
+#endif // GUARD_FLDEFF_RECORDMIXING_H
diff --git a/include/gba/defines.h b/include/gba/defines.h
index 0f7f06755..7fd429d9e 100644
--- a/include/gba/defines.h
+++ b/include/gba/defines.h
@@ -29,15 +29,16 @@
#define BG_VRAM VRAM
#define BG_VRAM_SIZE 0x10000
-#define BG_CHAR_ADDR(n) (BG_VRAM + (0x4000 * (n)))
-#define BG_SCREEN_ADDR(n) (BG_VRAM + (0x800 * (n)))
+#define BG_CHAR_ADDR(n) (void *)(BG_VRAM + (0x4000 * (n)))
+#define BG_SCREEN_ADDR(n) (void *)(BG_VRAM + (0x800 * (n)))
+#define BG_TILE_ADDR(n) (void *)(BG_VRAM + (0x80 * (n)))
// text-mode BG
-#define OBJ_VRAM0 (VRAM + 0x10000)
+#define OBJ_VRAM0 (void *)(VRAM + 0x10000)
#define OBJ_VRAM0_SIZE 0x8000
// bitmap-mode BG
-#define OBJ_VRAM1 (VRAM + 0x14000)
+#define OBJ_VRAM1 (void *)(VRAM + 0x14000)
#define OBJ_VRAM1_SIZE 0x4000
#define OAM 0x7000000
diff --git a/include/gba/flash_internal.h b/include/gba/flash_internal.h
index cbcfb5466..39e14ef73 100644
--- a/include/gba/flash_internal.h
+++ b/include/gba/flash_internal.h
@@ -35,7 +35,7 @@ struct FlashType {
struct FlashSetupInfo
{
u16 (*programFlashByte)(u16, u32, u8);
- u16 (*programFlashSector)(u16, u8 *);
+ u16 (*programFlashSector)(u16, void *);
u16 (*eraseFlashChip)(void);
u16 (*eraseFlashSector)(u16);
u16 (*WaitForFlashWrite)(u8, u8 *, u8);
@@ -46,7 +46,7 @@ struct FlashSetupInfo
extern u16 gFlashNumRemainingBytes;
extern u16 (*ProgramFlashByte)(u16, u32, u8);
-extern u16 (*ProgramFlashSector)(u16, u8 *);
+extern u16 (*ProgramFlashSector)(u16, void *);
extern u16 (*EraseFlashChip)(void);
extern u16 (*EraseFlashSector)(u16);
extern u16 (*WaitForFlashWrite)(u8, u8 *, u8);
@@ -67,15 +67,15 @@ void SetReadFlash1(u16 *dest);
void StopFlashTimer(void);
u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void));
u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src);
-void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size);
-u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, u8 *src, u32 n);
+void ReadFlash(u16 sectorNum, u32 offset, void *dest, u32 size);
+u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, void *dataSrc, u32 n);
u16 WaitForFlashWrite_Common(u8 phase, u8 *addr, u8 lastData);
u16 EraseFlashChip_MX(void);
u16 EraseFlashSector_MX(u16 sectorNum);
u16 ProgramFlashByte_MX(u16 sectorNum, u32 offset, u8 data);
-u16 ProgramFlashSector_MX(u16 sectorNum, u8 *src);
+u16 ProgramFlashSector_MX(u16 sectorNum, void *src);
// agb_flash_1m
u16 IdentifyFlash(void);
diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h
index d483d4ddc..6dbe5e8ed 100644
--- a/include/gba/io_reg.h
+++ b/include/gba/io_reg.h
@@ -539,7 +539,28 @@
#define BGCNT_AFF1024x1024 0xC000
// BLDCNT
-
+// Bits 0-5 select layers for the 1st target
+#define BLDCNT_TGT1_BG0 (1 << 0)
+#define BLDCNT_TGT1_BG1 (1 << 1)
+#define BLDCNT_TGT1_BG2 (1 << 2)
+#define BLDCNT_TGT1_BG3 (1 << 3)
+#define BLDCNT_TGT1_OBJ (1 << 4)
+#define BLDCNT_TGT1_BD (1 << 5)
+// Bits 6-7 select the special effect
+#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect
+#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA)
+#define BLDCNT_EFFECT_LIGHTEN (2 << 6) // 1st target becomes whiter (controlled by BLDY)
+#define BLDCNT_EFFECT_DARKEN (3 << 6) // 1st target becomes blacker (controlled by BLDY)
+// Bits 8-13 select layers for the 2nd target
+#define BLDCNT_TGT2_BG0 (1 << 8)
+#define BLDCNT_TGT2_BG1 (1 << 9)
+#define BLDCNT_TGT2_BG2 (1 << 10)
+#define BLDCNT_TGT2_BG3 (1 << 11)
+#define BLDCNT_TGT2_OBJ (1 << 12)
+#define BLDCNT_TGT2_BD (1 << 13)
+
+// BLDALPHA
+#define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1))
// SOUNDCNT_H
#define SOUND_CGB_MIX_QUARTER 0x0000
diff --git a/include/gba/macro.h b/include/gba/macro.h
index a183a44fc..67d2b3a07 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -103,6 +103,22 @@
} \
}
+#define DmaClearLarge(dmaNum, dest, size, block, bit) \
+{ \
+ u32 _size = size; \
+ while (1) \
+ { \
+ DmaFill##bit(dmaNum, 0, dest, (block)); \
+ dest += (block); \
+ _size -= (block); \
+ if (_size <= (block)) \
+ { \
+ DmaFill##bit(dmaNum, 0, dest, _size); \
+ break; \
+ } \
+ } \
+}
+
#define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16)
#define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32)
diff --git a/include/global.berry.h b/include/global.berry.h
index 096d8b1d8..21a0dd500 100644
--- a/include/global.berry.h
+++ b/include/global.berry.h
@@ -3,33 +3,33 @@
struct Berry
{
- /*0x00*/const u8 name[7];
- /*0x07*/u8 firmness;
- /*0x08*/u16 size;
- /*0x0A*/u8 maxYield;
- /*0x0B*/u8 minYield;
- /*0x0C*/const u8 *description1;
- /*0x10*/const u8 *description2;
- /*0x14*/u8 stageDuration;
- /*0x15*/u8 spicy;
- /*0x16*/u8 dry;
- /*0x17*/u8 sweet;
- /*0x18*/u8 bitter;
- /*0x19*/u8 sour;
- /*0x1A*/u8 smoothness;
+ /*0x00*/ const u8 name[7];
+ /*0x07*/ u8 firmness;
+ /*0x08*/ u16 size;
+ /*0x0A*/ u8 maxYield;
+ /*0x0B*/ u8 minYield;
+ /*0x0C*/ const u8 *description1;
+ /*0x10*/ const u8 *description2;
+ /*0x14*/ u8 stageDuration;
+ /*0x15*/ u8 spicy;
+ /*0x16*/ u8 dry;
+ /*0x17*/ u8 sweet;
+ /*0x18*/ u8 bitter;
+ /*0x19*/ u8 sour;
+ /*0x1A*/ u8 smoothness;
};
struct EnigmaBerry
{
- /*0x000*/struct Berry berry;
- /*0x01B*/u8 pic[(6 * 6) * TILE_SIZE_4BPP];
- /*0x49C*/u16 palette[16];
- /*0x4BC*/u8 description1[45];
- /*0x4E9*/u8 description2[45];
- /*0x516*/u8 itemEffect[18];
- /*0x528*/u8 holdEffect;
- /*0x529*/u8 holdEffectParam;
- /*0x52C*/u32 checksum;
+ /*0x000*/ struct Berry berry;
+ /*0x01B*/ u8 pic[(6 * 6) * TILE_SIZE_4BPP];
+ /*0x49C*/ u16 palette[16];
+ /*0x4BC*/ u8 description1[45];
+ /*0x4E9*/ u8 description2[45];
+ /*0x516*/ u8 itemEffect[18];
+ /*0x528*/ u8 holdEffect;
+ /*0x529*/ u8 holdEffectParam;
+ /*0x52C*/ u32 checksum;
};
struct BattleEnigmaBerry
@@ -42,16 +42,21 @@ struct BattleEnigmaBerry
struct BerryTree
{
- u8 berry;
- u8 stage:7;
- u8 growthSparkle:1;
- u16 minutesUntilNextStage;
- u8 berryYield;
- u8 regrowthCount:4;
- u8 watered1:1;
- u8 watered2:1;
- u8 watered3:1;
- u8 watered4:1;
+ /*0x00*/ u8 berry;
+ /*0x01*/ u8 stage:7;
+ /*
+ A berry sparkle is a state that a berry tree
+ can be in after growing within the player's
+ viewport.
+ */
+ /*0x01*/ bool8 growthSparkle:1;
+ /*0x02*/ u16 minutesUntilNextStage;
+ /*0x04*/ u8 berryYield;
+ /*0x05*/ u8 regrowthCount:4;
+ /*0x05*/ u8 watered1:1;
+ /*0x05*/ u8 watered2:1;
+ /*0x05*/ u8 watered3:1;
+ /*0x05*/ u8 watered4:1;
};
#endif // GUARD_GLOBAL_BERRY_H
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index 5c93eb8ab..488cc11d9 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -111,11 +111,11 @@ struct CoordEvent
struct BgEvent
{
- u16 x, y;
- u8 unk4;
- u8 kind;
- // 0x2 padding for the union beginning.
- union { // carried over from diego's FR/LG work, seems to be the same struct
+ /*0x00*/u16 x;
+ /*0x02*/u16 y;
+ /*0x04*/u8 unk4;
+ /*0x05*/u8 kind;
+ /*0x08*/union { // carried over from diego's FR/LG work, seems to be the same struct
// in gen 3, "kind" (0x3 in BgEvent struct) determines the method to read the union.
u8 *script;
@@ -353,25 +353,42 @@ enum
COLLISION_LEDGE_JUMP = 6
};
+// player running states
+enum
+{
+ NOT_MOVING,
+ TURN_DIRECTION, // not the same as turning! turns your avatar without moving. also known as a turn frame in some circles
+ MOVING,
+};
+
+// player tile transition states
+enum
+{
+ T_NOT_MOVING,
+ T_TILE_TRANSITION,
+ T_TILE_CENTER, // player is on a frame in which they are centered on a tile during which the player either stops or keeps their momentum and keeps going, changing direction if necessary.
+};
+
struct PlayerAvatar /* 0x202E858 */
{
/*0x00*/ u8 flags;
- /*0x01*/ u8 bike;
- /*0x02*/ u8 running2;
- /*0x03*/ u8 running1;
+ /*0x01*/ u8 unk1; // used to be named bike, but its definitely not that. seems to be some transition flags
+ /*0x02*/ u8 runningState; // this is a static running state. 00 is not moving, 01 is turn direction, 02 is moving.
+ /*0x03*/ u8 tileTransitionState; // this is a transition running state: 00 is not moving, 01 is transition between tiles, 02 means you are on the frame in which you have centered on a tile but are about to keep moving, even if changing directions. 2 is also used for a ledge hop, since you are transitioning.
/*0x04*/ u8 spriteId;
/*0x05*/ u8 mapObjectId;
- /*0x06*/ u8 unk6;
+ /*0x06*/ bool8 preventStep;
/*0x07*/ u8 gender;
- u8 acroBikeState;
- u8 unk9;
- u8 bikeFrameCounter;
- u8 unkB;
- u32 unkC;
- u32 unk10;
- u8 unk14[8];
- u8 unk1C[8];
- // TODO: rest of struct
+ /*0x08*/ u8 acroBikeState; // 00 is normal, 01 is turning, 02 is standing wheelie, 03 is hopping wheelie
+ /*0x09*/ u8 newDirBackup; // during bike movement, the new direction as opposed to player's direction is backed up here.
+ /*0x0A*/ u8 bikeFrameCounter; // on the mach bike, when this value is 1, the bike is moving but not accelerating yet for 1 tile. on the acro bike, this acts as a timer for acro bike.
+ /*0x0B*/ u8 bikeSpeed;
+ // acro bike only
+ /*0x0C*/ u32 directionHistory; // up/down/left/right history is stored in each nybble, but using the field directions and not the io inputs.
+ /*0x10*/ u32 abStartSelectHistory; // same as above but for A + B + start + select only
+ // these two are timer history arrays which [0] is the active timer for acro bike. every element is backed up to the next element upon update.
+ /*0x14*/ u8 dirTimerHistory[8];
+ /*0x1C*/ u8 abStartSelectTimerHistory[8];
};
struct Camera
diff --git a/include/global.h b/include/global.h
index a22f0d817..150484f54 100644
--- a/include/global.h
+++ b/include/global.h
@@ -55,6 +55,24 @@ enum
B_32 = 4
};
+// There are many quirks in the source code which have overarching behavioral differences from
+// a number of other files. For example, diploma.c seems to declare rodata before each use while
+// other files declare out of order and must be at the beginning. There are also a number of
+// macros which differ from one file to the next due to the method of obtaining the result, such
+// as these below. Because of this, there is a theory (Two Team Theory) that states that these
+// programming projects had more than 1 "programming team" which utilized different macros for
+// each of the files that were worked on.
+#define T1_READ_8(ptr) ((ptr)[0])
+#define T1_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8))
+#define T1_READ_32(ptr) ((ptr)[0] | ((ptr)[1] << 8) | ((ptr)[2] << 16) | ((ptr)[3] << 24))
+#define T1_READ_PTR(ptr) (u8*) T1_READ_32(ptr)
+
+// T2_READ_8 is a duplicate to remain consistent with each group.
+#define T2_READ_8(ptr) ((ptr)[0])
+#define T2_READ_16(ptr) ((ptr)[0] + ((ptr)[1] << 8))
+#define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
+#define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr)
+
enum
{
VERSION_SAPPHIRE = 1,
@@ -130,13 +148,13 @@ struct UCoords16
struct SecretBaseRecord
{
- /*ID?*/ /*0x1A08*/ u8 sbr_field_0;
+ /*0x1A08*/ u8 secretBaseId;
/*0x1A09*/ u8 sbr_field_1_0:4;
/*0x1A09*/ u8 gender:1;
/*0x1A09*/ u8 sbr_field_1_5:1;
/*0x1A09*/ u8 sbr_field_1_6:2;
- /*0x1A0A*/ u8 sbr_field_2[7]; // 0xFF bytes?
- /*0x1A12*/ u8 trainerId[4]; // byte 0 is used for determining trainer class
+ /*0x1A0A*/ u8 playerName[OT_NAME_LENGTH];
+ /*0x1A11*/ u8 trainerId[4]; // byte 0 is used for determining trainer class
/*0x1A16*/ u16 sbr_field_e;
/*0x1A18*/ u8 sbr_field_10;
/*0x1A19*/ u8 sbr_field_11;
@@ -150,7 +168,7 @@ struct SecretBaseRecord
/*0x1AA2*/ u8 partyEVs[6];
};
-#include "game_stat.h"
+#include "constants/game_stat.h"
#include "global.fieldmap.h"
#include "global.berry.h"
#include "pokemon.h"
@@ -569,15 +587,15 @@ struct DayCareMail
struct DayCareStepCountersEtc {
u32 steps[2];
- u16 personalityLo;
- u8 unk_11a;
+ u16 pendingEggPersonality;
+ u8 eggCycleStepsRemaining;
};
struct RecordMixingDayCareMail
{
struct DayCareMail mail[2];
- u32 unk70;
- u16 unk74[2];
+ u32 numDaycareMons;
+ u16 itemsHeld[2]; // marks whether or not each daycare mon is currently holding an item.
};
struct DayCareMisc
@@ -586,7 +604,7 @@ struct DayCareMisc
struct DayCareStepCountersEtc countersEtc;
};
-struct DayCareData {
+struct DayCare {
struct BoxPokemon mons[2];
struct DayCareMisc misc;
};
@@ -681,10 +699,12 @@ struct SaveBlock1 /* 0x02025734 */
/*0x2B0D*/ u8 outbreakPokemonProbability;
/*0x2B0E*/ u16 outbreakUnk5;
/*0x2B10*/ struct GabbyAndTyData gabbyAndTyData;
- /*0x2B1C*/ u16 unk2B1C[6];
- /*0x2B28*/ u16 unk2B28[6];
- /*0x2B34*/ u16 unk2B34[6];
- /*0x2B40*/ u16 unk2B40[6];
+ /*0x2B1C*/ struct {
+ /*0x2B1C*/ u16 unk2B1C[6];
+ /*0x2B28*/ u16 unk2B28[6];
+ /*0x2B34*/ u16 unk2B34[6];
+ /*0x2B40*/ u16 unk2B40[6];
+ } easyChats;
/*0x2B4C*/ struct MailStruct mail[16];
/*0x2D8C*/ u8 unk2D8C[4];
/*0x2D90*/ u8 filler_2D90[0x4];
@@ -692,7 +712,7 @@ struct SaveBlock1 /* 0x02025734 */
/*0x2DD4*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff
/*0x2DFC*/ u8 filler_2DFC[0x8];
/*0x2E04*/ SB_Struct sbStruct;
- /*0x2F9C*/ struct DayCareData daycareData;
+ /*0x2F9C*/ struct DayCare daycare;
/*0x30B8*/ struct LinkBattleRecord linkBattleRecords[5];
/*0x3108*/ u8 filler_3108[8];
/*0x3110*/ u8 giftRibbons[11];
@@ -727,26 +747,74 @@ struct Pokedex
/*0x44*/ u8 seen[DEX_FLAGS_NO];
};
-struct SaveBlock2_Sub
+struct BattleTowerTrainer
{
- /*0x0000, 0x00A8*/ u8 filler_000[0x3D8];
- /*0x03D8, 0x0480*/ u16 var_480;
- /*0x03DA, 0x0482*/ u16 var_482;
- /*0x03DC, 0x0484*/ u8 filler_3DC[0x14];
- /*0x03F0, 0x0498*/ u8 ereaderTrainer[0xBC];
- /*0x04AC, 0x0554*/ u8 var_4AC;
- /*0x04AD, 0x0555*/ u8 var_4AD;
+ u8 trainerClass;
+ u8 name[8];
+ u8 teamFlags;
+ struct {
+ u16 easyChat[6];
+ } greeting;
+};
+
+struct BattleTowerRecord // record mixing
+{
+ /*0x00*/u8 battleTowerLevelType; // 0 = level 50, 1 = level 100
+ /*0x01*/u8 trainerClass;
+ /*0x02*/u16 winStreak;
+ /*0x04*/u8 name[8];
+ /*0x0C*/u8 trainerId[4];
+ /*0x10*/struct {
+ u16 easyChat[6];
+ } greeting;
+ /*0x1C*/struct UnknownPokemonStruct party[3];
+ /*0xA0*/u32 checksum;
+};
+
+struct BattleTowerEReaderTrainer
+{
+ /*0x00*/u8 unk0;
+ /*0x01*/u8 trainerClass;
+ /*0x02*/u16 winStreak;
+ /*0x04*/u8 name[8];
+ /*0x0C*/u8 trainerId[4];
+ /*0x10*/struct {
+ u16 easyChat[6];
+ } greeting;
+ /*0x1C*/struct {
+ u16 easyChat[6];
+ } farewellPlayerLost;
+ /*0x28*/struct {
+ u16 easyChat[6];
+ } farewellPlayerWon;
+ /*0x34*/struct UnknownPokemonStruct party[3];
+ /*0xB8*/u32 checksum;
+};
+
+struct BattleTowerData
+{
+ /*0x0000, 0x00A8*/ struct BattleTowerRecord playerRecord;
+ /*0x00A4, 0x014C*/ struct BattleTowerRecord records[5]; // from record mixing
+ /*0x03D8, 0x0480*/ u16 firstMonSpecies; // species of the first pokemon in the player's battle tower party
+ /*0x03DA, 0x0482*/ u16 defeatedBySpecies; // species of the pokemon that defated the player
+ /*0x03DC, 0x0484*/ u8 defeatedByTrainerName[8];
+ /*0x03E4, 0x048C*/ u8 firstMonNickname[POKEMON_NAME_LENGTH]; // nickname of the first pokemon in the player's battle tower party
+ /*0x03F0, 0x0498*/ struct BattleTowerEReaderTrainer ereaderTrainer;
+ /*0x04AC, 0x0554*/ u8 battleTowerLevelType:1; // 0 = level 50; 1 = level 100
+ /*0x04AC, 0x0554*/ u8 unk_554:1;
+ /*0x04AD, 0x0555*/ u8 battleOutcome;
/*0x04AE, 0x0556*/ u8 var_4AE[2];
- /*0x04B0, 0x0558*/ u16 var_4B0;
- /*0x04B2, 0x055A*/ u16 var_4B2;
- /*0x04B4, 0x055C*/ u16 var_4B4;
- /*0x04B6, 0x055E*/ u16 var_4B6;
- /*0x04B8, 0x0560*/ u16 recordWinStreak[2];
- /*0x04BC, 0x0564*/ u8 filler_4BC[0xC];
- /*0x04C8, 0x0570*/ u16 var_4C8;
- /*0x04CA, 0x0572*/ u16 var_4CA;
- /*0x04CC, 0x0574*/ u16 winStreak[2];
- /*0x04D0, 0x0578*/ u8 var_4D0;
+ /*0x04B0, 0x0558*/ u16 curChallengeBattleNum[2]; // 1-based index of battle in the current challenge. (challenges consist of 7 battles)
+ /*0x04B4, 0x055C*/ u16 curStreakChallengesNum[2]; // 1-based index of the current challenge in the current streak.
+ /*0x04B8, 0x0560*/ u16 recordWinStreaks[2];
+ /*0x04BC, 0x0564*/ u8 battleTowerTrainerId; // index for gBattleTowerTrainers table
+ /*0x04BD, 0x0565*/ u8 selectedPartyMons[0x3]; // indices of the 3 selected player party mons.
+ /*0x04C0, 0x0568*/ u16 prizeItem;
+ /*0x04C2, 0x056A*/ u8 filler_4C2[0x6];
+ /*0x04C8, 0x0570*/ u16 totalBattleTowerWins;
+ /*0x04CA, 0x0572*/ u16 bestBattleTowerWinStreak;
+ /*0x04CC, 0x0574*/ u16 currentWinStreaks[2];
+ /*0x04D0, 0x0578*/ u8 lastStreakLevelType; // 0 = level 50, 1 = level 100. level type of the last streak. Used by tv to report the level mode.
/*0x04D1, 0x0579*/ u8 filler_4D1[0x317];
};
@@ -771,7 +839,7 @@ struct SaveBlock2 /* 0x02024EA4 */
/*0x90*/ u8 filler_90[0x8];
/*0x98*/ struct Time localTimeOffset;
/*0xA0*/ struct Time lastBerryTreeUpdate;
- /*0xA8*/ struct SaveBlock2_Sub filler_A8;
+ /*0xA8*/ struct BattleTowerData battleTower;
};
struct MapPosition
diff --git a/include/graphics.h b/include/graphics.h
index f3a722b40..7c23e90ab 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -2551,6 +2551,44 @@ extern const u8 gBerryPalette_Lansat[];
extern const u8 gBerryPalette_Starf[];
extern const u8 gBerryPalette_Enigma[];
+// data/graphics.s
+extern const u16 gMailPalette_Orange[];
+extern const u16 gMailPalette_Harbor[];
+extern const u16 gMailPalette_Glitter[];
+extern const u16 gMailPalette_Mech[];
+extern const u16 gMailPalette_Wood[];
+extern const u16 gMailPalette_Wave[];
+extern const u16 gMailPalette_Bead[];
+extern const u16 gMailPalette_Shadow[];
+extern const u16 gMailPalette_Tropic[];
+extern const u16 gMailPalette_Dream[];
+extern const u16 gMailPalette_Fab[];
+extern const u16 gMailPalette_Retro[];
+extern const u8 gMailTiles_Orange[];
+extern const u8 gMailTiles_Harbor[];
+extern const u8 gMailTiles_Glitter[];
+extern const u8 gMailTiles_Mech[];
+extern const u8 gMailTiles_Wood[];
+extern const u8 gMailTiles_Wave[];
+extern const u8 gMailTiles_Bead[];
+extern const u8 gMailTiles_Shadow[];
+extern const u8 gMailTiles_Tropic[];
+extern const u8 gMailTiles_Dream[];
+extern const u8 gMailTiles_Fab[];
+extern const u8 gMailTiles_Retro[];
+extern const u8 gMailTilemap_Orange[];
+extern const u8 gMailTilemap_Harbor[];
+extern const u8 gMailTilemap_Glitter[];
+extern const u8 gMailTilemap_Mech[];
+extern const u8 gMailTilemap_Wood[];
+extern const u8 gMailTilemap_Wave[];
+extern const u8 gMailTilemap_Bead[];
+extern const u8 gMailTilemap_Shadow[];
+extern const u8 gMailTilemap_Tropic[];
+extern const u8 gMailTilemap_Dream[];
+extern const u8 gMailTilemap_Fab[];
+extern const u8 gMailTilemap_Retro[];
+
extern const u8 gUnknown_08E96EC8[];
extern const u8 gMenuTrainerCard_Gfx[];
diff --git a/include/item_use.h b/include/item_use.h
index 227c0c9ee..ee7939824 100644
--- a/include/item_use.h
+++ b/include/item_use.h
@@ -1,7 +1,7 @@
#ifndef GUARD_ITEM_USE_H
#define GUARD_ITEM_USE_H
-extern u16 gScriptItemId;
+extern u16 gSpecialVar_ItemId;
void ItemUseOutOfBattle_Mail(u8);
void ItemUseOutOfBattle_Bike(u8);
diff --git a/include/items.h b/include/items.h
deleted file mode 100644
index 44b0f2013..000000000
--- a/include/items.h
+++ /dev/null
@@ -1,392 +0,0 @@
-#ifndef GUARD_ITEMS_H
-#define GUARD_ITEMS_H
-
-enum
-{
- ITEM_NONE, // 0x000
- ITEM_MASTER_BALL, // 0x001
- ITEM_ULTRA_BALL, // 0x002
- ITEM_GREAT_BALL, // 0x003
- ITEM_POKE_BALL, // 0x004
- ITEM_SAFARI_BALL, // 0x005
- ITEM_NET_BALL, // 0x006
- ITEM_DIVE_BALL, // 0x007
- ITEM_NEST_BALL, // 0x008
- ITEM_REPEAT_BALL, // 0x009
- ITEM_TIMER_BALL, // 0x00a
- ITEM_LUXURY_BALL, // 0x00b
- ITEM_PREMIER_BALL, // 0x00c
- ITEM_POTION, // 0x00d
- ITEM_ANTIDOTE, // 0x00e
- ITEM_BURN_HEAL, // 0x00f
- ITEM_ICE_HEAL, // 0x010
- ITEM_AWAKENING, // 0x011
- ITEM_PARALYZE_HEAL, // 0x012
- ITEM_FULL_RESTORE, // 0x013
- ITEM_MAX_POTION, // 0x014
- ITEM_HYPER_POTION, // 0x015
- ITEM_SUPER_POTION, // 0x016
- ITEM_FULL_HEAL, // 0x017
- ITEM_REVIVE, // 0x018
- ITEM_MAX_REVIVE, // 0x019
- ITEM_FRESH_WATER, // 0x01a
- ITEM_SODA_POP, // 0x01b
- ITEM_LEMONADE, // 0x01c
- ITEM_MOOMOO_MILK, // 0x01d
- ITEM_ENERGY_POWDER, // 0x01e
- ITEM_ENERGY_ROOT, // 0x01f
- ITEM_HEAL_POWDER, // 0x020
- ITEM_REVIVAL_HERB, // 0x021
- ITEM_ETHER, // 0x022
- ITEM_MAX_ETHER, // 0x023
- ITEM_ELIXIR, // 0x024
- ITEM_MAX_ELIXIR, // 0x025
- ITEM_LAVA_COOKIE, // 0x026
- ITEM_BLUE_FLUTE, // 0x027
- ITEM_YELLOW_FLUTE, // 0x028
- ITEM_RED_FLUTE, // 0x029
- ITEM_BLACK_FLUTE, // 0x02a
- ITEM_WHITE_FLUTE, // 0x02b
- ITEM_BERRY_JUICE, // 0x02c
- ITEM_SACRED_ASH, // 0x02d
- ITEM_SHOAL_SALT, // 0x02e
- ITEM_SHOAL_SHELL, // 0x02f
- ITEM_RED_SHARD, // 0x030
- ITEM_BLUE_SHARD, // 0x031
- ITEM_YELLOW_SHARD, // 0x032
- ITEM_GREEN_SHARD, // 0x033
- ITEM_034,
- ITEM_035,
- ITEM_036,
- ITEM_037,
- ITEM_038,
- ITEM_039,
- ITEM_03A,
- ITEM_03B,
- ITEM_03C,
- ITEM_03D,
- ITEM_03E,
- ITEM_HP_UP, // 0x03f
- ITEM_PROTEIN, // 0x040
- ITEM_IRON, // 0x041
- ITEM_CARBOS, // 0x042
- ITEM_CALCIUM, // 0x043
- ITEM_RARE_CANDY, // 0x044
- ITEM_PP_UP, // 0x045
- ITEM_ZINC, // 0x046
- ITEM_PP_MAX, // 0x047
- ITEM_048,
- ITEM_GUARD_SPEC, // 0x049
- ITEM_DIRE_HIT, // 0x04a
- ITEM_X_ATTACK, // 0x04b
- ITEM_X_DEFEND, // 0x04c
- ITEM_X_SPEED, // 0x04d
- ITEM_X_ACCURACY, // 0x04e
- ITEM_X_SPECIAL, // 0x04f
- ITEM_POKE_DOLL, // 0x050
- ITEM_FLUFFY_TAIL, // 0x051
- ITEM_052,
- ITEM_SUPER_REPEL, // 0x053
- ITEM_MAX_REPEL, // 0x054
- ITEM_ESCAPE_ROPE, // 0x055
- ITEM_REPEL, // 0x056
- ITEM_057,
- ITEM_058,
- ITEM_059,
- ITEM_05A,
- ITEM_05B,
- ITEM_05C,
- ITEM_SUN_STONE, // 0x05d
- ITEM_MOON_STONE, // 0x05e
- ITEM_FIRE_STONE, // 0x05f
- ITEM_THUNDER_STONE, // 0x060
- ITEM_WATER_STONE, // 0x061
- ITEM_LEAF_STONE, // 0x062
- ITEM_063,
- ITEM_064,
- ITEM_065,
- ITEM_066,
- ITEM_TINY_MUSHROOM, // 0x067
- ITEM_BIG_MUSHROOM, // 0x068
- ITEM_069,
- ITEM_PEARL, // 0x06a
- ITEM_BIG_PEARL, // 0x06b
- ITEM_STARDUST, // 0x06c
- ITEM_STAR_PIECE, // 0x06d
- ITEM_NUGGET, // 0x06e
- ITEM_HEART_SCALE, // 0x06f
- ITEM_070,
- ITEM_071,
- ITEM_072,
- ITEM_073,
- ITEM_074,
- ITEM_075,
- ITEM_076,
- ITEM_077,
- ITEM_078,
- ITEM_ORANGE_MAIL, // 0x079
- ITEM_HARBOR_MAIL, // 0x07a
- ITEM_GLITTER_MAIL, // 0x07b
- ITEM_MECH_MAIL, // 0x07c
- ITEM_WOOD_MAIL, // 0x07d
- ITEM_WAVE_MAIL, // 0x07e
- ITEM_BEAD_MAIL, // 0x07f
- ITEM_SHADOW_MAIL, // 0x080
- ITEM_TROPIC_MAIL, // 0x081
- ITEM_DREAM_MAIL, // 0x082
- ITEM_FAB_MAIL, // 0x083
- ITEM_RETRO_MAIL, // 0x084
- ITEM_CHERI_BERRY, // 0x085
- ITEM_CHESTO_BERRY, // 0x086
- ITEM_PECHA_BERRY, // 0x087
- ITEM_RAWST_BERRY, // 0x088
- ITEM_ASPEAR_BERRY, // 0x089
- ITEM_LEPPA_BERRY, // 0x08a
- ITEM_ORAN_BERRY, // 0x08b
- ITEM_PERSIM_BERRY, // 0x08c
- ITEM_LUM_BERRY, // 0x08d
- ITEM_SITRUS_BERRY, // 0x08e
- ITEM_FIGY_BERRY, // 0x08f
- ITEM_WIKI_BERRY, // 0x090
- ITEM_MAGO_BERRY, // 0x091
- ITEM_AGUAV_BERRY, // 0x092
- ITEM_IAPAPA_BERRY, // 0x093
- ITEM_RAZZ_BERRY, // 0x094
- ITEM_BLUK_BERRY, // 0x095
- ITEM_NANAB_BERRY, // 0x096
- ITEM_WEPEAR_BERRY, // 0x097
- ITEM_PINAP_BERRY, // 0x098
- ITEM_POMEG_BERRY, // 0x099
- ITEM_KELPSY_BERRY, // 0x09a
- ITEM_QUALOT_BERRY, // 0x09b
- ITEM_HONDEW_BERRY, // 0x09c
- ITEM_GREPA_BERRY, // 0x09d
- ITEM_TAMATO_BERRY, // 0x09e
- ITEM_CORNN_BERRY, // 0x09f
- ITEM_MAGOST_BERRY, // 0x0a0
- ITEM_RABUTA_BERRY, // 0x0a1
- ITEM_NOMEL_BERRY, // 0x0a2
- ITEM_SPELON_BERRY, // 0x0a3
- ITEM_PAMTRE_BERRY, // 0x0a4
- ITEM_WATMEL_BERRY, // 0x0a5
- ITEM_DURIN_BERRY, // 0x0a6
- ITEM_BELUE_BERRY, // 0x0a7
- ITEM_LIECHI_BERRY, // 0x0a8
- ITEM_GANLON_BERRY, // 0x0a9
- ITEM_SALAC_BERRY, // 0x0aa
- ITEM_PETAYA_BERRY, // 0x0ab
- ITEM_APICOT_BERRY, // 0x0ac
- ITEM_LANSAT_BERRY, // 0x0ad
- ITEM_STARF_BERRY, // 0x0ae
- ITEM_ENIGMA_BERRY, // 0x0af
- ITEM_0B0,
- ITEM_0B1,
- ITEM_0B2,
- ITEM_BRIGHT_POWDER, // 0x0b3
- ITEM_WHITE_HERB, // 0x0b4
- ITEM_MACHO_BRACE, // 0x0b5
- ITEM_EXP_SHARE, // 0x0b6
- ITEM_QUICK_CLAW, // 0x0b7
- ITEM_SOOTHE_BELL, // 0x0b8
- ITEM_MENTAL_HERB, // 0x0b9
- ITEM_CHOICE_BAND, // 0x0ba
- ITEM_KINGS_ROCK, // 0x0bb
- ITEM_SILVER_POWDER, // 0x0bc
- ITEM_AMULET_COIN, // 0x0bd
- ITEM_CLEANSE_TAG, // 0x0be
- ITEM_SOUL_DEW, // 0x0bf
- ITEM_DEEP_SEA_TOOTH, // 0x0c0
- ITEM_DEEP_SEA_SCALE, // 0x0c1
- ITEM_SMOKE_BALL, // 0x0c2
- ITEM_EVERSTONE, // 0x0c3
- ITEM_FOCUS_BAND, // 0x0c4
- ITEM_LUCKY_EGG, // 0x0c5
- ITEM_SCOPE_LENS, // 0x0c6
- ITEM_METAL_COAT, // 0x0c7
- ITEM_LEFTOVERS, // 0x0c8
- ITEM_DRAGON_SCALE, // 0x0c9
- ITEM_LIGHT_BALL, // 0x0ca
- ITEM_SOFT_SAND, // 0x0cb
- ITEM_HARD_STONE, // 0x0cc
- ITEM_MIRACLE_SEED, // 0x0cd
- ITEM_BLACK_GLASSES, // 0x0ce
- ITEM_BLACK_BELT, // 0x0cf
- ITEM_MAGNET, // 0x0d0
- ITEM_MYSTIC_WATER, // 0x0d1
- ITEM_SHARP_BEAK, // 0x0d2
- ITEM_POISON_BARB, // 0x0d3
- ITEM_NEVER_MELT_ICE, // 0x0d4
- ITEM_SPELL_TAG, // 0x0d5
- ITEM_TWISTED_SPOON, // 0x0d6
- ITEM_CHARCOAL, // 0x0d7
- ITEM_DRAGON_FANG, // 0x0d8
- ITEM_SILK_SCARF, // 0x0d9
- ITEM_UP_GRADE, // 0x0da
- ITEM_SHELL_BELL, // 0x0db
- ITEM_SEA_INCENSE, // 0x0dc
- ITEM_LAX_INCENSE, // 0x0dd
- ITEM_LUCKY_PUNCH, // 0x0de
- ITEM_METAL_POWDER, // 0x0df
- ITEM_THICK_CLUB, // 0x0e0
- ITEM_STICK, // 0x0e1
- ITEM_0E2,
- ITEM_0E3,
- ITEM_0E4,
- ITEM_0E5,
- ITEM_0E6,
- ITEM_0E7,
- ITEM_0E8,
- ITEM_0E9,
- ITEM_0EA,
- ITEM_0EB,
- ITEM_0EC,
- ITEM_0ED,
- ITEM_0EE,
- ITEM_0EF,
- ITEM_0F0,
- ITEM_0F1,
- ITEM_0F2,
- ITEM_0F3,
- ITEM_0F4,
- ITEM_0F5,
- ITEM_0F6,
- ITEM_0F7,
- ITEM_0F8,
- ITEM_0F9,
- ITEM_0FA,
- ITEM_0FB,
- ITEM_0FC,
- ITEM_0FD,
- ITEM_RED_SCARF, // 0x0fe
- ITEM_BLUE_SCARF, // 0x0ff
- ITEM_PINK_SCARF, // 0x100
- ITEM_GREEN_SCARF, // 0x101
- ITEM_YELLOW_SCARF, // 0x102
- ITEM_MACH_BIKE, // 0x103
- ITEM_COIN_CASE, // 0x104
- ITEM_ITEMFINDER, // 0x105
- ITEM_OLD_ROD, // 0x106
- ITEM_GOOD_ROD, // 0x107
- ITEM_SUPER_ROD, // 0x108
- ITEM_SS_TICKET, // 0x109
- ITEM_CONTEST_PASS, // 0x10a
- ITEM_10B,
- ITEM_WAILMER_PAIL, // 0x10c
- ITEM_DEVON_GOODS, // 0x10d
- ITEM_SOOT_SACK, // 0x10e
- ITEM_BASEMENT_KEY, // 0x10f
- ITEM_ACRO_BIKE, // 0x110
- ITEM_POKEBLOCK_CASE, // 0x111
- ITEM_LETTER, // 0x112
- ITEM_EON_TICKET, // 0x113
- ITEM_RED_ORB, // 0x114
- ITEM_BLUE_ORB, // 0x115
- ITEM_SCANNER, // 0x116
- ITEM_GO_GOGGLES, // 0x117
- ITEM_METEORITE, // 0x118
- ITEM_ROOM_1_KEY, // 0x119
- ITEM_ROOM_2_KEY, // 0x11a
- ITEM_ROOM_4_KEY, // 0x11b
- ITEM_ROOM_6_KEY, // 0x11c
- ITEM_STORAGE_KEY, // 0x11d
- ITEM_ROOT_FOSSIL, // 0x11e
- ITEM_CLAW_FOSSIL, // 0x11f
- ITEM_DEVON_SCOPE, // 0x120
- ITEM_TM01, // 0x121
- ITEM_TM02, // 0x122
- ITEM_TM03, // 0x123
- ITEM_TM04, // 0x124
- ITEM_TM05, // 0x125
- ITEM_TM06, // 0x126
- ITEM_TM07, // 0x127
- ITEM_TM08, // 0x128
- ITEM_TM09, // 0x129
- ITEM_TM10, // 0x12a
- ITEM_TM11, // 0x12b
- ITEM_TM12, // 0x12c
- ITEM_TM13, // 0x12d
- ITEM_TM14, // 0x12e
- ITEM_TM15, // 0x12f
- ITEM_TM16, // 0x130
- ITEM_TM17, // 0x131
- ITEM_TM18, // 0x132
- ITEM_TM19, // 0x133
- ITEM_TM20, // 0x134
- ITEM_TM21, // 0x135
- ITEM_TM22, // 0x136
- ITEM_TM23, // 0x137
- ITEM_TM24, // 0x138
- ITEM_TM25, // 0x139
- ITEM_TM26, // 0x13a
- ITEM_TM27, // 0x13b
- ITEM_TM28, // 0x13c
- ITEM_TM29, // 0x13d
- ITEM_TM30, // 0x13e
- ITEM_TM31, // 0x13f
- ITEM_TM32, // 0x140
- ITEM_TM33, // 0x141
- ITEM_TM34, // 0x142
- ITEM_TM35, // 0x143
- ITEM_TM36, // 0x144
- ITEM_TM37, // 0x145
- ITEM_TM38, // 0x146
- ITEM_TM39, // 0x147
- ITEM_TM40, // 0x148
- ITEM_TM41, // 0x149
- ITEM_TM42, // 0x14a
- ITEM_TM43, // 0x14b
- ITEM_TM44, // 0x14c
- ITEM_TM45, // 0x14d
- ITEM_TM46, // 0x14e
- ITEM_TM47, // 0x14f
- ITEM_TM48, // 0x150
- ITEM_TM49, // 0x151
- ITEM_TM50, // 0x152
- ITEM_HM01, // 0x153
- ITEM_HM02, // 0x154
- ITEM_HM03, // 0x155
- ITEM_HM04, // 0x156
- ITEM_HM05, // 0x157
- ITEM_HM06, // 0x158
- ITEM_HM07, // 0x159
- ITEM_HM08, // 0x15a
- ITEM_15B,
- ITEM_15C,
-
- // FireRed/LeafGreen
- ITEM_OAKS_PARCEL, // 0x15d
- ITEM_POKE_FLUTE, // 0x15e
- ITEM_SECRET_KEY, // 0x15f
- ITEM_BIKE_VOUCHER, // 0x160
- ITEM_GOLD_TEETH, // 0x161
- ITEM_OLD_AMBER, // 0x162
- ITEM_CARD_KEY, // 0x163
- ITEM_LIFT_KEY, // 0x164
- ITEM_HELIX_FOSSIL, // 0x165
- ITEM_DOME_FOSSIL, // 0x166
- ITEM_SILPH_SCOPE, // 0x167
- ITEM_BICYCLE, // 0x168
- ITEM_TOWN_MAP, // 0x169
- ITEM_VS_SEEKER, // 0x16a
- ITEM_FAME_CHECKER, // 0x16b
- ITEM_TM_CASE, // 0x16c
- ITEM_BERRY_POUCH, // 0x16d
- ITEM_TEACHY_TV, // 0x16e
- ITEM_TRI_PASS, // 0x16f
- ITEM_RAINBOW_PASS, // 0x170
- ITEM_TEA, // 0x171
- ITEM_MYSTIC_TICKET, // 0x172
- ITEM_AURORA_TICKET, // 0x173
- ITEM_POWDER_JAR, // 0x174
- ITEM_RUBY, // 0x175
- ITEM_SAPPHIRE, // 0x176
-
- // Emerald
- ITEM_MAGMA_EMBLEM, // 0x177
- ITEM_OLD_SEA_MAP, // 0x178
-};
-
-#define NUM_TECHNICAL_MACHINES 50
-#define NUM_HIDDEN_MACHINES 8
-
-#endif // GUARD_ITEMS_H
diff --git a/include/landmark.h b/include/landmark.h
index eee5ac8c2..395905033 100644
--- a/include/landmark.h
+++ b/include/landmark.h
@@ -1,6 +1,6 @@
#ifndef GUARD_LANDMARK_H
#define GUARD_LANDMARK_H
-u8 *GetLandmarkName(u8 mapSection, u8 id, u8 count);
+const u8 *GetLandmarkName(u8 mapSection, u8 id, u8 count);
#endif // GUARD_LANDMARK_H
diff --git a/include/learn_move.h b/include/learn_move.h
index 85fbf046e..7a05ea60b 100644
--- a/include/learn_move.h
+++ b/include/learn_move.h
@@ -1,6 +1,21 @@
#ifndef GUARD_LEARN_MOVE_H
#define GUARD_LEARN_MOVE_H
+struct ContestMove
+{
+ u8 effect;
+ u8 contestCategory:3;
+ u8 comboStarterId;
+ u8 comboMoves[4];
+};
+
+struct ContestEffect
+{
+ u8 effectType;
+ u8 appeal;
+ u8 jam;
+};
+
void sub_8132670(void);
#endif // GUARD_LEARN_MOVE_H
diff --git a/include/map_constants.h b/include/map_constants.h
deleted file mode 100644
index f525f43a3..000000000
--- a/include/map_constants.h
+++ /dev/null
@@ -1,1098 +0,0 @@
-#ifndef GUARD_MAP_CONSTANTS_H
-#define GUARD_MAP_CONSTANTS_H
-
-//--------------------------------------------------
-// Map Group 0
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_PETALBURG_CITY,
- MAP_ID_SLATEPORT_CITY,
- MAP_ID_MAUVILLE_CITY,
- MAP_ID_RUSTBORO_CITY,
- MAP_ID_FORTREE_CITY,
- MAP_ID_LILYCOVE_CITY,
- MAP_ID_MOSSDEEP_CITY,
- MAP_ID_SOOTOPOLIS_CITY,
- MAP_ID_EVER_GRANDE_CITY,
- MAP_ID_LITTLEROOT_TOWN,
- MAP_ID_OLDALE_TOWN,
- MAP_ID_DEWFORD_TOWN,
- MAP_ID_LAVARIDGE_TOWN,
- MAP_ID_FALLARBOR_TOWN,
- MAP_ID_VERDANTURF_TOWN,
- MAP_ID_PACIFIDLOG_TOWN,
- MAP_ID_ROUTE101,
- MAP_ID_ROUTE102,
- MAP_ID_ROUTE103,
- MAP_ID_ROUTE104,
- MAP_ID_ROUTE105,
- MAP_ID_ROUTE106,
- MAP_ID_ROUTE107,
- MAP_ID_ROUTE108,
- MAP_ID_ROUTE109,
- MAP_ID_ROUTE110,
- MAP_ID_ROUTE111,
- MAP_ID_ROUTE112,
- MAP_ID_ROUTE113,
- MAP_ID_ROUTE114,
- MAP_ID_ROUTE115,
- MAP_ID_ROUTE116,
- MAP_ID_ROUTE117,
- MAP_ID_ROUTE118,
- MAP_ID_ROUTE119,
- MAP_ID_ROUTE120,
- MAP_ID_ROUTE121,
- MAP_ID_ROUTE122,
- MAP_ID_ROUTE123,
- MAP_ID_ROUTE124,
- MAP_ID_ROUTE125,
- MAP_ID_ROUTE126,
- MAP_ID_ROUTE127,
- MAP_ID_ROUTE128,
- MAP_ID_ROUTE129,
- MAP_ID_ROUTE130,
- MAP_ID_ROUTE131,
- MAP_ID_ROUTE132,
- MAP_ID_ROUTE133,
- MAP_ID_ROUTE134,
- MAP_ID_UNDERWATER1,
- MAP_ID_UNDERWATER2,
- MAP_ID_UNDERWATER3,
- MAP_ID_UNDERWATER4,
-};
-
-#define MAP_GROUP_PETALBURG_CITY 0
-#define MAP_GROUP_SLATEPORT_CITY 0
-#define MAP_GROUP_MAUVILLE_CITY 0
-#define MAP_GROUP_RUSTBORO_CITY 0
-#define MAP_GROUP_FORTREE_CITY 0
-#define MAP_GROUP_LILYCOVE_CITY 0
-#define MAP_GROUP_MOSSDEEP_CITY 0
-#define MAP_GROUP_SOOTOPOLIS_CITY 0
-#define MAP_GROUP_EVER_GRANDE_CITY 0
-#define MAP_GROUP_LITTLEROOT_TOWN 0
-#define MAP_GROUP_OLDALE_TOWN 0
-#define MAP_GROUP_DEWFORD_TOWN 0
-#define MAP_GROUP_LAVARIDGE_TOWN 0
-#define MAP_GROUP_FALLARBOR_TOWN 0
-#define MAP_GROUP_VERDANTURF_TOWN 0
-#define MAP_GROUP_PACIFIDLOG_TOWN 0
-#define MAP_GROUP_ROUTE101 0
-#define MAP_GROUP_ROUTE102 0
-#define MAP_GROUP_ROUTE103 0
-#define MAP_GROUP_ROUTE104 0
-#define MAP_GROUP_ROUTE105 0
-#define MAP_GROUP_ROUTE106 0
-#define MAP_GROUP_ROUTE107 0
-#define MAP_GROUP_ROUTE108 0
-#define MAP_GROUP_ROUTE109 0
-#define MAP_GROUP_ROUTE110 0
-#define MAP_GROUP_ROUTE111 0
-#define MAP_GROUP_ROUTE112 0
-#define MAP_GROUP_ROUTE113 0
-#define MAP_GROUP_ROUTE114 0
-#define MAP_GROUP_ROUTE115 0
-#define MAP_GROUP_ROUTE116 0
-#define MAP_GROUP_ROUTE117 0
-#define MAP_GROUP_ROUTE118 0
-#define MAP_GROUP_ROUTE119 0
-#define MAP_GROUP_ROUTE120 0
-#define MAP_GROUP_ROUTE121 0
-#define MAP_GROUP_ROUTE122 0
-#define MAP_GROUP_ROUTE123 0
-#define MAP_GROUP_ROUTE124 0
-#define MAP_GROUP_ROUTE125 0
-#define MAP_GROUP_ROUTE126 0
-#define MAP_GROUP_ROUTE127 0
-#define MAP_GROUP_ROUTE128 0
-#define MAP_GROUP_ROUTE129 0
-#define MAP_GROUP_ROUTE130 0
-#define MAP_GROUP_ROUTE131 0
-#define MAP_GROUP_ROUTE132 0
-#define MAP_GROUP_ROUTE133 0
-#define MAP_GROUP_ROUTE134 0
-#define MAP_GROUP_UNDERWATER1 0
-#define MAP_GROUP_UNDERWATER2 0
-#define MAP_GROUP_UNDERWATER3 0
-#define MAP_GROUP_UNDERWATER4 0
-
-//--------------------------------------------------
-// Map Group 1
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F,
- MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F,
- MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F,
- MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_2F,
- MAP_ID_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB,
-};
-
-#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F 1
-#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 1
-#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_1F 1
-#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_2F 1
-#define MAP_GROUP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB 1
-
-//--------------------------------------------------
-// Map Group 2
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_OLDALE_TOWN_HOUSE1,
- MAP_ID_OLDALE_TOWN_HOUSE2,
- MAP_ID_OLDALE_TOWN_POKEMON_CENTER_1F,
- MAP_ID_OLDALE_TOWN_POKEMON_CENTER_2F,
- MAP_ID_OLDALE_TOWN_MART,
-};
-
-#define MAP_GROUP_OLDALE_TOWN_HOUSE1 2
-#define MAP_GROUP_OLDALE_TOWN_HOUSE2 2
-#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_1F 2
-#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_2F 2
-#define MAP_GROUP_OLDALE_TOWN_MART 2
-
-//--------------------------------------------------
-// Map Group 3
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_DEWFORD_TOWN_HOUSE1,
- MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_1F,
- MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_2F,
- MAP_ID_DEWFORD_TOWN_GYM,
- MAP_ID_DEWFORD_TOWN_HALL,
- MAP_ID_DEWFORD_TOWN_HOUSE2,
-};
-
-#define MAP_GROUP_DEWFORD_TOWN_HOUSE1 3
-#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_1F 3
-#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_2F 3
-#define MAP_GROUP_DEWFORD_TOWN_GYM 3
-#define MAP_GROUP_DEWFORD_TOWN_HALL 3
-#define MAP_GROUP_DEWFORD_TOWN_HOUSE2 3
-
-//--------------------------------------------------
-// Map Group 4
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_LAVARIDGE_TOWN_HERB_SHOP,
- MAP_ID_LAVARIDGE_TOWN_GYM_1F,
- MAP_ID_LAVARIDGE_TOWN_GYM_B1F,
- MAP_ID_LAVARIDGE_TOWN_HOUSE,
- MAP_ID_LAVARIDGE_TOWN_MART,
- MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_1F,
- MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_2F,
-};
-
-#define MAP_GROUP_LAVARIDGE_TOWN_HERB_SHOP 4
-#define MAP_GROUP_LAVARIDGE_TOWN_GYM_1F 4
-#define MAP_GROUP_LAVARIDGE_TOWN_GYM_B1F 4
-#define MAP_GROUP_LAVARIDGE_TOWN_HOUSE 4
-#define MAP_GROUP_LAVARIDGE_TOWN_MART 4
-#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_1F 4
-#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_2F 4
-
-//--------------------------------------------------
-// Map Group 5
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_FALLARBOR_TOWN_MART,
- MAP_ID_FALLARBOR_TOWN_CONTEST_LOBBY,
- MAP_ID_FALLARBOR_TOWN_CONTEST_HALL,
- MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_1F,
- MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_2F,
- MAP_ID_FALLARBOR_TOWN_HOUSE1,
- MAP_ID_FALLARBOR_TOWN_HOUSE2,
-};
-
-#define MAP_GROUP_FALLARBOR_TOWN_MART 5
-#define MAP_GROUP_FALLARBOR_TOWN_CONTEST_LOBBY 5
-#define MAP_GROUP_FALLARBOR_TOWN_CONTEST_HALL 5
-#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_1F 5
-#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_2F 5
-#define MAP_GROUP_FALLARBOR_TOWN_HOUSE1 5
-#define MAP_GROUP_FALLARBOR_TOWN_HOUSE2 5
-
-//--------------------------------------------------
-// Map Group 6
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_VERDANTURF_TOWN_CONTEST_LOBBY,
- MAP_ID_VERDANTURF_TOWN_CONTEST_HALL,
- MAP_ID_VERDANTURF_TOWN_MART,
- MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_1F,
- MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_2F,
- MAP_ID_VERDANTURF_TOWN_WANDAS_HOUSE,
- MAP_ID_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE,
- MAP_ID_VERDANTURF_TOWN_HOUSE,
-};
-
-#define MAP_GROUP_VERDANTURF_TOWN_CONTEST_LOBBY 6
-#define MAP_GROUP_VERDANTURF_TOWN_CONTEST_HALL 6
-#define MAP_GROUP_VERDANTURF_TOWN_MART 6
-#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_1F 6
-#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_2F 6
-#define MAP_GROUP_VERDANTURF_TOWN_WANDAS_HOUSE 6
-#define MAP_GROUP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE 6
-#define MAP_GROUP_VERDANTURF_TOWN_HOUSE 6
-
-//--------------------------------------------------
-// Map Group 7
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_1F,
- MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_2F,
- MAP_ID_PACIFIDLOG_TOWN_HOUSE1,
- MAP_ID_PACIFIDLOG_TOWN_HOUSE2,
- MAP_ID_PACIFIDLOG_TOWN_HOUSE3,
- MAP_ID_PACIFIDLOG_TOWN_HOUSE4,
- MAP_ID_PACIFIDLOG_TOWN_HOUSE5,
-};
-
-#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE1 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE2 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE3 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE4 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE5 7
-
-//--------------------------------------------------
-// Map Group 8
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_PETALBURG_CITY_WALLYS_HOUSE,
- MAP_ID_PETALBURG_CITY_GYM,
- MAP_ID_PETALBURG_CITY_HOUSE1,
- MAP_ID_PETALBURG_CITY_HOUSE2,
- MAP_ID_PETALBURG_CITY_POKEMON_CENTER_1F,
- MAP_ID_PETALBURG_CITY_POKEMON_CENTER_2F,
- MAP_ID_PETALBURG_CITY_MART,
-};
-
-#define MAP_GROUP_PETALBURG_CITY_WALLYS_HOUSE 8
-#define MAP_GROUP_PETALBURG_CITY_GYM 8
-#define MAP_GROUP_PETALBURG_CITY_HOUSE1 8
-#define MAP_GROUP_PETALBURG_CITY_HOUSE2 8
-#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_1F 8
-#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_2F 8
-#define MAP_GROUP_PETALBURG_CITY_MART 8
-
-//--------------------------------------------------
-// Map Group 9
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_1F,
- MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_2F,
- MAP_ID_SLATEPORT_CITY_CONTEST_LOBBY,
- MAP_ID_SLATEPORT_CITY_CONTEST_HALL,
- MAP_ID_SLATEPORT_CITY_HOUSE1,
- MAP_ID_SLATEPORT_CITY_POKEMON_FAN_CLUB,
- MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_1F,
- MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_2F,
- MAP_ID_SLATEPORT_CITY_HARBOR,
- MAP_ID_SLATEPORT_CITY_HOUSE2,
- MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_1F,
- MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_2F,
- MAP_ID_SLATEPORT_CITY_MART,
-};
-
-#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_1F 9
-#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_2F 9
-#define MAP_GROUP_SLATEPORT_CITY_CONTEST_LOBBY 9
-#define MAP_GROUP_SLATEPORT_CITY_CONTEST_HALL 9
-#define MAP_GROUP_SLATEPORT_CITY_HOUSE1 9
-#define MAP_GROUP_SLATEPORT_CITY_POKEMON_FAN_CLUB 9
-#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 9
-#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 9
-#define MAP_GROUP_SLATEPORT_CITY_HARBOR 9
-#define MAP_GROUP_SLATEPORT_CITY_HOUSE2 9
-#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_1F 9
-#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_2F 9
-#define MAP_GROUP_SLATEPORT_CITY_MART 9
-
-//--------------------------------------------------
-// Map Group 10
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_MAUVILLE_CITY_GYM,
- MAP_ID_MAUVILLE_CITY_BIKE_SHOP,
- MAP_ID_MAUVILLE_CITY_HOUSE1,
- MAP_ID_MAUVILLE_CITY_GAME_CORNER,
- MAP_ID_MAUVILLE_CITY_HOUSE2,
- MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_1F,
- MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_2F,
- MAP_ID_MAUVILLE_CITY_MART,
-};
-
-#define MAP_GROUP_MAUVILLE_CITY_GYM 10
-#define MAP_GROUP_MAUVILLE_CITY_BIKE_SHOP 10
-#define MAP_GROUP_MAUVILLE_CITY_HOUSE1 10
-#define MAP_GROUP_MAUVILLE_CITY_GAME_CORNER 10
-#define MAP_GROUP_MAUVILLE_CITY_HOUSE2 10
-#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_1F 10
-#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_2F 10
-#define MAP_GROUP_MAUVILLE_CITY_MART 10
-
-//--------------------------------------------------
-// Map Group 11
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_RUSTBORO_CITY_DEVON_CORP_1F,
- MAP_ID_RUSTBORO_CITY_DEVON_CORP_2F,
- MAP_ID_RUSTBORO_CITY_DEVON_CORP_3F,
- MAP_ID_RUSTBORO_CITY_GYM,
- MAP_ID_RUSTBORO_CITY_POKEMON_SCHOOL,
- MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_1F,
- MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_2F,
- MAP_ID_RUSTBORO_CITY_MART,
- MAP_ID_RUSTBORO_CITY_FLAT1_1F,
- MAP_ID_RUSTBORO_CITY_FLAT1_2F,
- MAP_ID_RUSTBORO_CITY_HOUSE1,
- MAP_ID_RUSTBORO_CITY_CUTTERS_HOUSE,
- MAP_ID_RUSTBORO_CITY_HOUSE2,
- MAP_ID_RUSTBORO_CITY_FLAT2_1F,
- MAP_ID_RUSTBORO_CITY_FLAT2_2F,
- MAP_ID_RUSTBORO_CITY_FLAT2_3F,
- MAP_ID_RUSTBORO_CITY_HOUSE3,
-};
-
-#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_1F 11
-#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_2F 11
-#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_3F 11
-#define MAP_GROUP_RUSTBORO_CITY_GYM 11
-#define MAP_GROUP_RUSTBORO_CITY_POKEMON_SCHOOL 11
-#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_1F 11
-#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_2F 11
-#define MAP_GROUP_RUSTBORO_CITY_MART 11
-#define MAP_GROUP_RUSTBORO_CITY_FLAT1_1F 11
-#define MAP_GROUP_RUSTBORO_CITY_FLAT1_2F 11
-#define MAP_GROUP_RUSTBORO_CITY_HOUSE1 11
-#define MAP_GROUP_RUSTBORO_CITY_CUTTERS_HOUSE 11
-#define MAP_GROUP_RUSTBORO_CITY_HOUSE2 11
-#define MAP_GROUP_RUSTBORO_CITY_FLAT2_1F 11
-#define MAP_GROUP_RUSTBORO_CITY_FLAT2_2F 11
-#define MAP_GROUP_RUSTBORO_CITY_FLAT2_3F 11
-#define MAP_GROUP_RUSTBORO_CITY_HOUSE3 11
-
-//--------------------------------------------------
-// Map Group 12
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_FORTREE_CITY_HOUSE1,
- MAP_ID_FORTREE_CITY_GYM,
- MAP_ID_FORTREE_CITY_POKEMON_CENTER_1F,
- MAP_ID_FORTREE_CITY_POKEMON_CENTER_2F,
- MAP_ID_FORTREE_CITY_MART,
- MAP_ID_FORTREE_CITY_HOUSE2,
- MAP_ID_FORTREE_CITY_HOUSE3,
- MAP_ID_FORTREE_CITY_HOUSE4,
- MAP_ID_FORTREE_CITY_HOUSE5,
- MAP_ID_FORTREE_CITY_DECORATION_SHOP,
-};
-
-#define MAP_GROUP_FORTREE_CITY_HOUSE1 12
-#define MAP_GROUP_FORTREE_CITY_GYM 12
-#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_1F 12
-#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_2F 12
-#define MAP_GROUP_FORTREE_CITY_MART 12
-#define MAP_GROUP_FORTREE_CITY_HOUSE2 12
-#define MAP_GROUP_FORTREE_CITY_HOUSE3 12
-#define MAP_GROUP_FORTREE_CITY_HOUSE4 12
-#define MAP_GROUP_FORTREE_CITY_HOUSE5 12
-#define MAP_GROUP_FORTREE_CITY_DECORATION_SHOP 12
-
-//--------------------------------------------------
-// Map Group 13
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F,
- MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_2F,
- MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F,
- MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F,
- MAP_ID_LILYCOVE_CITY_CONTEST_LOBBY,
- MAP_ID_LILYCOVE_CITY_CONTEST_HALL,
- MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_1F,
- MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_2F,
- MAP_ID_LILYCOVE_CITY_UNUSED_MART,
- MAP_ID_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB,
- MAP_ID_LILYCOVE_CITY_HARBOR,
- MAP_ID_LILYCOVE_CITY_EMPTY_MAP,
- MAP_ID_LILYCOVE_CITY_MOVE_DELETERS_HOUSE,
- MAP_ID_LILYCOVE_CITY_HOUSE1,
- MAP_ID_LILYCOVE_CITY_HOUSE2,
- MAP_ID_LILYCOVE_CITY_HOUSE3,
- MAP_ID_LILYCOVE_CITY_HOUSE4,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_1F,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_2F,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_3F,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_4F,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_5F,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR,
-};
-
-#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F 13
-#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F 13
-#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F 13
-#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F 13
-#define MAP_GROUP_LILYCOVE_CITY_CONTEST_LOBBY 13
-#define MAP_GROUP_LILYCOVE_CITY_CONTEST_HALL 13
-#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_1F 13
-#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_2F 13
-#define MAP_GROUP_LILYCOVE_CITY_UNUSED_MART 13
-#define MAP_GROUP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB 13
-#define MAP_GROUP_LILYCOVE_CITY_HARBOR 13
-#define MAP_GROUP_LILYCOVE_CITY_EMPTY_MAP 13
-#define MAP_GROUP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE 13
-#define MAP_GROUP_LILYCOVE_CITY_HOUSE1 13
-#define MAP_GROUP_LILYCOVE_CITY_HOUSE2 13
-#define MAP_GROUP_LILYCOVE_CITY_HOUSE3 13
-#define MAP_GROUP_LILYCOVE_CITY_HOUSE4 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_1F 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_2F 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_3F 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_4F 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_5F 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR 13
-
-//--------------------------------------------------
-// Map Group 14
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_MOSSDEEP_CITY_GYM,
- MAP_ID_MOSSDEEP_CITY_HOUSE1,
- MAP_ID_MOSSDEEP_CITY_HOUSE2,
- MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_1F,
- MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_2F,
- MAP_ID_MOSSDEEP_CITY_MART,
- MAP_ID_MOSSDEEP_CITY_HOUSE3,
- MAP_ID_MOSSDEEP_CITY_STEVENS_HOUSE,
- MAP_ID_MOSSDEEP_CITY_HOUSE4,
- MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_1F,
- MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_2F,
- MAP_ID_MOSSDEEP_CITY_GAME_CORNER_1F,
- MAP_ID_MOSSDEEP_CITY_GAME_CORNER_B1F,
-};
-
-#define MAP_GROUP_MOSSDEEP_CITY_GYM 14
-#define MAP_GROUP_MOSSDEEP_CITY_HOUSE1 14
-#define MAP_GROUP_MOSSDEEP_CITY_HOUSE2 14
-#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_1F 14
-#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_2F 14
-#define MAP_GROUP_MOSSDEEP_CITY_MART 14
-#define MAP_GROUP_MOSSDEEP_CITY_HOUSE3 14
-#define MAP_GROUP_MOSSDEEP_CITY_STEVENS_HOUSE 14
-#define MAP_GROUP_MOSSDEEP_CITY_HOUSE4 14
-#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_1F 14
-#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_2F 14
-#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_1F 14
-#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_B1F 14
-
-//--------------------------------------------------
-// Map Group 15
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_SOOTOPOLIS_CITY_GYM_1F,
- MAP_ID_SOOTOPOLIS_CITY_GYM_B1F,
- MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_1F,
- MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_2F,
- MAP_ID_SOOTOPOLIS_CITY_MART,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE1,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE2,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE3,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE4,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE5,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE6,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE7,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE8,
-};
-
-#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_1F 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_B1F 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_MART 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE1 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE2 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE3 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE4 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE5 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE6 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE7 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE8 15
-
-//--------------------------------------------------
-// Map Group 16
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_EVER_GRANDE_CITY_SIDNEYS_ROOM,
- MAP_ID_EVER_GRANDE_CITY_PHOEBES_ROOM,
- MAP_ID_EVER_GRANDE_CITY_GLACIAS_ROOM,
- MAP_ID_EVER_GRANDE_CITY_DRAKES_ROOM,
- MAP_ID_EVER_GRANDE_CITY_CHAMPIONS_ROOM,
- MAP_ID_EVER_GRANDE_CITY_CORRIDOR1,
- MAP_ID_EVER_GRANDE_CITY_CORRIDOR2,
- MAP_ID_EVER_GRANDE_CITY_CORRIDOR3,
- MAP_ID_EVER_GRANDE_CITY_CORRIDOR4,
- MAP_ID_EVER_GRANDE_CITY_CORRIDOR5,
- MAP_ID_EVER_GRANDE_CITY_POKEMON_LEAGUE,
- MAP_ID_EVER_GRANDE_CITY_HALL_OF_FAME,
- MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_1F,
- MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_2F,
-};
-
-#define MAP_GROUP_EVER_GRANDE_CITY_SIDNEYS_ROOM 16
-#define MAP_GROUP_EVER_GRANDE_CITY_PHOEBES_ROOM 16
-#define MAP_GROUP_EVER_GRANDE_CITY_GLACIAS_ROOM 16
-#define MAP_GROUP_EVER_GRANDE_CITY_DRAKES_ROOM 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CHAMPIONS_ROOM 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR1 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR2 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR3 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR4 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR5 16
-#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_LEAGUE 16
-#define MAP_GROUP_EVER_GRANDE_CITY_HALL_OF_FAME 16
-#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_1F 16
-#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_2F 16
-
-//--------------------------------------------------
-// Map Group 17
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE104_MR_BRINEYS_HOUSE,
- MAP_ID_ROUTE104_PRETTY_PETAL_FLOWER_SHOP,
-};
-
-#define MAP_GROUP_ROUTE104_MR_BRINEYS_HOUSE 17
-#define MAP_GROUP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP 17
-
-//--------------------------------------------------
-// Map Group 18
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE111_WINSTRATE_FAMILYS_HOUSE,
- MAP_ID_ROUTE111_OLD_LADYS_REST_STOP,
-};
-
-#define MAP_GROUP_ROUTE111_WINSTRATE_FAMILYS_HOUSE 18
-#define MAP_GROUP_ROUTE111_OLD_LADYS_REST_STOP 18
-
-//--------------------------------------------------
-// Map Group 19
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE112_CABLE_CAR_STATION,
- MAP_ID_MT_CHIMNEY_CABLE_CAR_STATION,
-};
-
-#define MAP_GROUP_ROUTE112_CABLE_CAR_STATION 19
-#define MAP_GROUP_MT_CHIMNEY_CABLE_CAR_STATION 19
-
-//--------------------------------------------------
-// Map Group 20
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE114_FOSSIL_MANIACS_HOUSE,
- MAP_ID_ROUTE114_FOSSIL_MANIACS_TUNNEL,
- MAP_ID_ROUTE114_LANETTES_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_HOUSE 20
-#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_TUNNEL 20
-#define MAP_GROUP_ROUTE114_LANETTES_HOUSE 20
-
-//--------------------------------------------------
-// Map Group 21
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE116_TUNNELERS_REST_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE116_TUNNELERS_REST_HOUSE 21
-
-//--------------------------------------------------
-// Map Group 22
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE117_POKEMON_DAY_CARE,
-};
-
-#define MAP_GROUP_ROUTE117_POKEMON_DAY_CARE 22
-
-//--------------------------------------------------
-// Map Group 23
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE121_SAFARI_ZONE_ENTRANCE,
-};
-
-#define MAP_GROUP_ROUTE121_SAFARI_ZONE_ENTRANCE 23
-
-//--------------------------------------------------
-// Map Group 24
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_METEOR_FALLS_1F_1R,
- MAP_ID_METEOR_FALLS_1F_2R,
- MAP_ID_METEOR_FALLS_B1F_1R,
- MAP_ID_METEOR_FALLS_B1F_2R,
- MAP_ID_RUSTURF_TUNNEL,
- MAP_ID_UNDERWATER_SOOTOPOLIS_CITY,
- MAP_ID_DESERT_RUINS,
- MAP_ID_GRANITE_CAVE_1F,
- MAP_ID_GRANITE_CAVE_B1F,
- MAP_ID_GRANITE_CAVE_B2F,
- MAP_ID_GRANITE_CAVE_STEVENS_ROOM,
- MAP_ID_PETALBURG_WOODS,
- MAP_ID_MT_CHIMNEY,
- MAP_ID_JAGGED_PASS,
- MAP_ID_FIERY_PATH,
- MAP_ID_MT_PYRE_1F,
- MAP_ID_MT_PYRE_2F,
- MAP_ID_MT_PYRE_3F,
- MAP_ID_MT_PYRE_4F,
- MAP_ID_MT_PYRE_5F,
- MAP_ID_MT_PYRE_6F,
- MAP_ID_MT_PYRE_EXTERIOR,
- MAP_ID_MT_PYRE_SUMMIT,
- MAP_ID_AQUA_HIDEOUT_1F,
- MAP_ID_AQUA_HIDEOUT_B1F,
- MAP_ID_AQUA_HIDEOUT_B2F,
- MAP_ID_UNDERWATER_SEAFLOOR_CAVERN,
- MAP_ID_SEAFLOOR_CAVERN_ENTRANCE,
- MAP_ID_SEAFLOOR_CAVERN_ROOM1,
- MAP_ID_SEAFLOOR_CAVERN_ROOM2,
- MAP_ID_SEAFLOOR_CAVERN_ROOM3,
- MAP_ID_SEAFLOOR_CAVERN_ROOM4,
- MAP_ID_SEAFLOOR_CAVERN_ROOM5,
- MAP_ID_SEAFLOOR_CAVERN_ROOM6,
- MAP_ID_SEAFLOOR_CAVERN_ROOM7,
- MAP_ID_SEAFLOOR_CAVERN_ROOM8,
- MAP_ID_SEAFLOOR_CAVERN_ROOM9,
- MAP_ID_CAVE_OF_ORIGIN_ENTRANCE,
- MAP_ID_CAVE_OF_ORIGIN_1F,
- MAP_ID_CAVE_OF_ORIGIN_B1F,
- MAP_ID_CAVE_OF_ORIGIN_B2F,
- MAP_ID_CAVE_OF_ORIGIN_B3F,
- MAP_ID_CAVE_OF_ORIGIN_B4F,
- MAP_ID_VICTORY_ROAD_1F,
- MAP_ID_VICTORY_ROAD_B1F,
- MAP_ID_VICTORY_ROAD_B2F,
- MAP_ID_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM,
- MAP_ID_SHOAL_CAVE_LOW_TIDE_INNER_ROOM,
- MAP_ID_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM,
- MAP_ID_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM,
- MAP_ID_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM,
- MAP_ID_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM,
- MAP_ID_NEW_MAUVILLE_ENTRANCE,
- MAP_ID_NEW_MAUVILLE_INSIDE,
- MAP_ID_ABANDONED_SHIP_DECK,
- MAP_ID_ABANDONED_SHIP_CORRIDORS_1F,
- MAP_ID_ABANDONED_SHIP_ROOMS_1F,
- MAP_ID_ABANDONED_SHIP_CORRIDORS_B1F,
- MAP_ID_ABANDONED_SHIP_ROOMS_B1F,
- MAP_ID_ABANDONED_SHIP_ROOMS2_B1F,
- MAP_ID_ABANDONED_SHIP_UNDERWATER1,
- MAP_ID_ABANDONED_SHIP_ROOM_B1F,
- MAP_ID_ABANDONED_SHIP_ROOMS2_1F,
- MAP_ID_ABANDONED_SHIP_CAPTAINS_OFFICE,
- MAP_ID_ABANDONED_SHIP_UNDERWATER2,
- MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS,
- MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS,
- MAP_ID_ISLAND_CAVE,
- MAP_ID_ANCIENT_TOMB,
- MAP_ID_UNDERWATER_ROUTE134,
- MAP_ID_UNDERWATER_SEALED_CHAMBER,
- MAP_ID_SEALED_CHAMBER_OUTER_ROOM,
- MAP_ID_SEALED_CHAMBER_INNER_ROOM,
- MAP_ID_SCORCHED_SLAB,
- MAP_ID_MAGMA_HIDEOUT_1F,
- MAP_ID_MAGMA_HIDEOUT_B1F,
- MAP_ID_MAGMA_HIDEOUT_B2F,
- MAP_ID_SKY_PILLAR_ENTRANCE,
- MAP_ID_SKY_PILLAR_OUTSIDE,
- MAP_ID_SKY_PILLAR_1F,
- MAP_ID_SKY_PILLAR_2F,
- MAP_ID_SKY_PILLAR_3F,
- MAP_ID_SKY_PILLAR_4F,
- MAP_ID_SHOAL_CAVE_LOW_TIDE_ICE_ROOM,
- MAP_ID_SKY_PILLAR_5F,
- MAP_ID_SKY_PILLAR_TOP,
-};
-
-#define MAP_GROUP_METEOR_FALLS_1F_1R 24
-#define MAP_GROUP_METEOR_FALLS_1F_2R 24
-#define MAP_GROUP_METEOR_FALLS_B1F_1R 24
-#define MAP_GROUP_METEOR_FALLS_B1F_2R 24
-#define MAP_GROUP_RUSTURF_TUNNEL 24
-#define MAP_GROUP_UNDERWATER_SOOTOPOLIS_CITY 24
-#define MAP_GROUP_DESERT_RUINS 24
-#define MAP_GROUP_GRANITE_CAVE_1F 24
-#define MAP_GROUP_GRANITE_CAVE_B1F 24
-#define MAP_GROUP_GRANITE_CAVE_B2F 24
-#define MAP_GROUP_GRANITE_CAVE_STEVENS_ROOM 24
-#define MAP_GROUP_PETALBURG_WOODS 24
-#define MAP_GROUP_MT_CHIMNEY 24
-#define MAP_GROUP_JAGGED_PASS 24
-#define MAP_GROUP_FIERY_PATH 24
-#define MAP_GROUP_MT_PYRE_1F 24
-#define MAP_GROUP_MT_PYRE_2F 24
-#define MAP_GROUP_MT_PYRE_3F 24
-#define MAP_GROUP_MT_PYRE_4F 24
-#define MAP_GROUP_MT_PYRE_5F 24
-#define MAP_GROUP_MT_PYRE_6F 24
-#define MAP_GROUP_MT_PYRE_EXTERIOR 24
-#define MAP_GROUP_MT_PYRE_SUMMIT 24
-#define MAP_GROUP_AQUA_HIDEOUT_1F 24
-#define MAP_GROUP_AQUA_HIDEOUT_B1F 24
-#define MAP_GROUP_AQUA_HIDEOUT_B2F 24
-#define MAP_GROUP_UNDERWATER_SEAFLOOR_CAVERN 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ENTRANCE 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM1 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM2 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM3 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM4 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM5 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM6 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM7 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM8 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM9 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_ENTRANCE 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_1F 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_B1F 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_B2F 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_B3F 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_B4F 24
-#define MAP_GROUP_VICTORY_ROAD_1F 24
-#define MAP_GROUP_VICTORY_ROAD_B1F 24
-#define MAP_GROUP_VICTORY_ROAD_B2F 24
-#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM 24
-#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM 24
-#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM 24
-#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 24
-#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 24
-#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 24
-#define MAP_GROUP_NEW_MAUVILLE_ENTRANCE 24
-#define MAP_GROUP_NEW_MAUVILLE_INSIDE 24
-#define MAP_GROUP_ABANDONED_SHIP_DECK 24
-#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_1F 24
-#define MAP_GROUP_ABANDONED_SHIP_ROOMS_1F 24
-#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_B1F 24
-#define MAP_GROUP_ABANDONED_SHIP_ROOMS_B1F 24
-#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_B1F 24
-#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER1 24
-#define MAP_GROUP_ABANDONED_SHIP_ROOM_B1F 24
-#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_1F 24
-#define MAP_GROUP_ABANDONED_SHIP_CAPTAINS_OFFICE 24
-#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER2 24
-#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS 24
-#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS 24
-#define MAP_GROUP_ISLAND_CAVE 24
-#define MAP_GROUP_ANCIENT_TOMB 24
-#define MAP_GROUP_UNDERWATER_ROUTE134 24
-#define MAP_GROUP_UNDERWATER_SEALED_CHAMBER 24
-#define MAP_GROUP_SEALED_CHAMBER_OUTER_ROOM 24
-#define MAP_GROUP_SEALED_CHAMBER_INNER_ROOM 24
-#define MAP_GROUP_SCORCHED_SLAB 24
-#define MAP_GROUP_MAGMA_HIDEOUT_1F 24
-#define MAP_GROUP_MAGMA_HIDEOUT_B1F 24
-#define MAP_GROUP_MAGMA_HIDEOUT_B2F 24
-#define MAP_GROUP_SKY_PILLAR_ENTRANCE 24
-#define MAP_GROUP_SKY_PILLAR_OUTSIDE 24
-#define MAP_GROUP_SKY_PILLAR_1F 24
-#define MAP_GROUP_SKY_PILLAR_2F 24
-#define MAP_GROUP_SKY_PILLAR_3F 24
-#define MAP_GROUP_SKY_PILLAR_4F 24
-#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM 24
-#define MAP_GROUP_SKY_PILLAR_5F 24
-#define MAP_GROUP_SKY_PILLAR_TOP 24
-
-//--------------------------------------------------
-// Map Group 25
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_SECRET_BASE_RED_CAVE1,
- MAP_ID_SECRET_BASE_BROWN_CAVE1,
- MAP_ID_SECRET_BASE_BLUE_CAVE1,
- MAP_ID_SECRET_BASE_YELLOW_CAVE1,
- MAP_ID_SECRET_BASE_TREE1,
- MAP_ID_SECRET_BASE_SHRUB1,
- MAP_ID_SECRET_BASE_RED_CAVE2,
- MAP_ID_SECRET_BASE_BROWN_CAVE2,
- MAP_ID_SECRET_BASE_BLUE_CAVE2,
- MAP_ID_SECRET_BASE_YELLOW_CAVE2,
- MAP_ID_SECRET_BASE_TREE2,
- MAP_ID_SECRET_BASE_SHRUB2,
- MAP_ID_SECRET_BASE_RED_CAVE3,
- MAP_ID_SECRET_BASE_BROWN_CAVE3,
- MAP_ID_SECRET_BASE_BLUE_CAVE3,
- MAP_ID_SECRET_BASE_YELLOW_CAVE3,
- MAP_ID_SECRET_BASE_TREE3,
- MAP_ID_SECRET_BASE_SHRUB3,
- MAP_ID_SECRET_BASE_RED_CAVE4,
- MAP_ID_SECRET_BASE_BROWN_CAVE4,
- MAP_ID_SECRET_BASE_BLUE_CAVE4,
- MAP_ID_SECRET_BASE_YELLOW_CAVE4,
- MAP_ID_SECRET_BASE_TREE4,
- MAP_ID_SECRET_BASE_SHRUB4,
- MAP_ID_SINGLE_BATTLE_COLOSSEUM,
- MAP_ID_TRADE_CENTER,
- MAP_ID_RECORD_CORNER,
- MAP_ID_DOUBLE_BATTLE_COLOSSEUM,
- MAP_ID_LINK_CONTEST_ROOM1,
- MAP_ID_UNKNOWN_MAP_25_29,
- MAP_ID_UNKNOWN_MAP_25_30,
- MAP_ID_UNKNOWN_MAP_25_31,
- MAP_ID_UNKNOWN_MAP_25_32,
- MAP_ID_UNKNOWN_MAP_25_33,
- MAP_ID_UNKNOWN_MAP_25_34,
- MAP_ID_LINK_CONTEST_ROOM2,
- MAP_ID_LINK_CONTEST_ROOM3,
- MAP_ID_LINK_CONTEST_ROOM4,
- MAP_ID_LINK_CONTEST_ROOM5,
- MAP_ID_LINK_CONTEST_ROOM6,
- MAP_ID_INSIDE_OF_TRUCK,
- MAP_ID_SS_TIDAL_CORRIDOR,
- MAP_ID_SS_TIDAL_LOWER_DECK,
- MAP_ID_SS_TIDAL_ROOMS,
-};
-
-#define MAP_GROUP_SECRET_BASE_RED_CAVE1 25
-#define MAP_GROUP_SECRET_BASE_BROWN_CAVE1 25
-#define MAP_GROUP_SECRET_BASE_BLUE_CAVE1 25
-#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE1 25
-#define MAP_GROUP_SECRET_BASE_TREE1 25
-#define MAP_GROUP_SECRET_BASE_SHRUB1 25
-#define MAP_GROUP_SECRET_BASE_RED_CAVE2 25
-#define MAP_GROUP_SECRET_BASE_BROWN_CAVE2 25
-#define MAP_GROUP_SECRET_BASE_BLUE_CAVE2 25
-#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE2 25
-#define MAP_GROUP_SECRET_BASE_TREE2 25
-#define MAP_GROUP_SECRET_BASE_SHRUB2 25
-#define MAP_GROUP_SECRET_BASE_RED_CAVE3 25
-#define MAP_GROUP_SECRET_BASE_BROWN_CAVE3 25
-#define MAP_GROUP_SECRET_BASE_BLUE_CAVE3 25
-#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE3 25
-#define MAP_GROUP_SECRET_BASE_TREE3 25
-#define MAP_GROUP_SECRET_BASE_SHRUB3 25
-#define MAP_GROUP_SECRET_BASE_RED_CAVE4 25
-#define MAP_GROUP_SECRET_BASE_BROWN_CAVE4 25
-#define MAP_GROUP_SECRET_BASE_BLUE_CAVE4 25
-#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE4 25
-#define MAP_GROUP_SECRET_BASE_TREE4 25
-#define MAP_GROUP_SECRET_BASE_SHRUB4 25
-#define MAP_GROUP_SINGLE_BATTLE_COLOSSEUM 25
-#define MAP_GROUP_TRADE_CENTER 25
-#define MAP_GROUP_RECORD_CORNER 25
-#define MAP_GROUP_DOUBLE_BATTLE_COLOSSEUM 25
-#define MAP_GROUP_LINK_CONTEST_ROOM1 25
-#define MAP_GROUP_UNKNOWN_MAP_25_29 25
-#define MAP_GROUP_UNKNOWN_MAP_25_30 25
-#define MAP_GROUP_UNKNOWN_MAP_25_31 25
-#define MAP_GROUP_UNKNOWN_MAP_25_32 25
-#define MAP_GROUP_UNKNOWN_MAP_25_33 25
-#define MAP_GROUP_UNKNOWN_MAP_25_34 25
-#define MAP_GROUP_LINK_CONTEST_ROOM2 25
-#define MAP_GROUP_LINK_CONTEST_ROOM3 25
-#define MAP_GROUP_LINK_CONTEST_ROOM4 25
-#define MAP_GROUP_LINK_CONTEST_ROOM5 25
-#define MAP_GROUP_LINK_CONTEST_ROOM6 25
-#define MAP_GROUP_INSIDE_OF_TRUCK 25
-#define MAP_GROUP_SS_TIDAL_CORRIDOR 25
-#define MAP_GROUP_SS_TIDAL_LOWER_DECK 25
-#define MAP_GROUP_SS_TIDAL_ROOMS 25
-
-//--------------------------------------------------
-// Map Group 26
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_SAFARI_ZONE_NORTHWEST,
- MAP_ID_SAFARI_ZONE_NORTHEAST,
- MAP_ID_SAFARI_ZONE_SOUTHWEST,
- MAP_ID_SAFARI_ZONE_SOUTHEAST,
- MAP_ID_BATTLE_TOWER_OUTSIDE,
- MAP_ID_BATTLE_TOWER_LOBBY,
- MAP_ID_BATTLE_TOWER_ELEVATOR,
- MAP_ID_BATTLE_TOWER_CORRIDOR,
- MAP_ID_BATTLE_TOWER_BATTLE_ROOM,
- MAP_ID_SOUTHERN_ISLAND_EXTERIOR,
- MAP_ID_SOUTHERN_ISLAND_INTERIOR,
- MAP_ID_SAFARI_ZONE_REST_HOUSE,
-};
-
-#define MAP_GROUP_SAFARI_ZONE_NORTHWEST 26
-#define MAP_GROUP_SAFARI_ZONE_NORTHEAST 26
-#define MAP_GROUP_SAFARI_ZONE_SOUTHWEST 26
-#define MAP_GROUP_SAFARI_ZONE_SOUTHEAST 26
-#define MAP_GROUP_BATTLE_TOWER_OUTSIDE 26
-#define MAP_GROUP_BATTLE_TOWER_LOBBY 26
-#define MAP_GROUP_BATTLE_TOWER_ELEVATOR 26
-#define MAP_GROUP_BATTLE_TOWER_CORRIDOR 26
-#define MAP_GROUP_BATTLE_TOWER_BATTLE_ROOM 26
-#define MAP_GROUP_SOUTHERN_ISLAND_EXTERIOR 26
-#define MAP_GROUP_SOUTHERN_ISLAND_INTERIOR 26
-#define MAP_GROUP_SAFARI_ZONE_REST_HOUSE 26
-
-//--------------------------------------------------
-// Map Group 27
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE104_PROTOTYPE,
- MAP_ID_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP,
-};
-
-#define MAP_GROUP_ROUTE104_PROTOTYPE 27
-#define MAP_GROUP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP 27
-
-//--------------------------------------------------
-// Map Group 28
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE109_SEASHORE_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE109_SEASHORE_HOUSE 28
-
-//--------------------------------------------------
-// Map Group 29
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE110_TRICK_HOUSE_ENTRANCE,
- MAP_ID_ROUTE110_TRICK_HOUSE_END,
- MAP_ID_ROUTE110_TRICK_HOUSE_CORRIDOR,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE1,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE2,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE3,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE4,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE5,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE6,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE7,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE8,
- MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE,
- MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE,
-};
-
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_ENTRANCE 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_END 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_CORRIDOR 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE1 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE2 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE3 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE4 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE5 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE6 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE7 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE8 29
-#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE 29
-#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE 29
-
-//--------------------------------------------------
-// Map Group 30
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE113_GLASS_WORKSHOP,
-};
-
-#define MAP_GROUP_ROUTE113_GLASS_WORKSHOP 30
-
-//--------------------------------------------------
-// Map Group 31
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE123_BERRY_MASTERS_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE123_BERRY_MASTERS_HOUSE 31
-
-//--------------------------------------------------
-// Map Group 32
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE119_WEATHER_INSTITUTE_1F,
- MAP_ID_ROUTE119_WEATHER_INSTITUTE_2F,
- MAP_ID_ROUTE119_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_1F 32
-#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_2F 32
-#define MAP_GROUP_ROUTE119_HOUSE 32
-
-//--------------------------------------------------
-// Map Group 33
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE 33
-
-#endif // GUARD_MAP_CONSTANTS_H
diff --git a/include/map_object_constants.h b/include/map_object_constants.h
deleted file mode 100644
index 79482b54a..000000000
--- a/include/map_object_constants.h
+++ /dev/null
@@ -1,239 +0,0 @@
-#ifndef GUARD_MAP_OBJECT_CONSTANTS_H
-#define GUARD_MAP_OBJECT_CONSTANTS_H
-
-enum
-{
- MAP_OBJ_GFX_BRENDAN_NORMAL,
- MAP_OBJ_GFX_BRENDAN_MACH_BIKE,
- MAP_OBJ_GFX_BRENDAN_SURFING,
- MAP_OBJ_GFX_BRENDAN_FIELD_MOVE,
- MAP_OBJ_GFX_QUINTY_PLUMP,
- MAP_OBJ_GFX_LITTLE_BOY_1,
- MAP_OBJ_GFX_LITTLE_GIRL_1,
- MAP_OBJ_GFX_BOY_1,
- MAP_OBJ_GFX_GIRL_1,
- MAP_OBJ_GFX_BOY_2,
- MAP_OBJ_GFX_GIRL_2,
- MAP_OBJ_GFX_LITTLE_BOY_2,
- MAP_OBJ_GFX_LITTLE_GIRL_2,
- MAP_OBJ_GFX_BOY_3,
- MAP_OBJ_GFX_GIRL_3,
- MAP_OBJ_GFX_BOY_4,
- MAP_OBJ_GFX_WOMAN_1,
- MAP_OBJ_GFX_FAT_MAN,
- MAP_OBJ_GFX_WOMAN_2,
- MAP_OBJ_GFX_MAN_1,
- MAP_OBJ_GFX_WOMAN_3,
- MAP_OBJ_GFX_OLD_MAN_1,
- MAP_OBJ_GFX_OLD_WOMAN_1,
- MAP_OBJ_GFX_MAN_2,
- MAP_OBJ_GFX_WOMAN_4,
- MAP_OBJ_GFX_MAN_3,
- MAP_OBJ_GFX_WOMAN_5,
- MAP_OBJ_GFX_COOK,
- MAP_OBJ_GFX_WOMAN_6,
- MAP_OBJ_GFX_OLD_MAN_2,
- MAP_OBJ_GFX_OLD_WOMAN_2,
- MAP_OBJ_GFX_CAMPER,
- MAP_OBJ_GFX_PICNICKER,
- MAP_OBJ_GFX_MAN_4,
- MAP_OBJ_GFX_WOMAN_7,
- MAP_OBJ_GFX_YOUNGSTER,
- MAP_OBJ_GFX_BUG_CATCHER,
- MAP_OBJ_GFX_PSYCHIC_M,
- MAP_OBJ_GFX_SCHOOL_KID_M,
- MAP_OBJ_GFX_MANIAC,
- MAP_OBJ_GFX_HEX_MANIAC,
- MAP_OBJ_GFX_WOMAN_8,
- MAP_OBJ_GFX_SWIMMER_M,
- MAP_OBJ_GFX_SWIMMER_F,
- MAP_OBJ_GFX_BLACK_BELT,
- MAP_OBJ_GFX_BEAUTY,
- MAP_OBJ_GFX_SCIENTIST_1,
- MAP_OBJ_GFX_LASS,
- MAP_OBJ_GFX_GENTLEMAN,
- MAP_OBJ_GFX_SAILOR,
- MAP_OBJ_GFX_FISHERMAN,
- MAP_OBJ_GFX_RUNNING_TRIATHLETE_M,
- MAP_OBJ_GFX_RUNNING_TRIATHLETE_F,
- MAP_OBJ_GFX_TUBER_F,
- MAP_OBJ_GFX_TUBER_M,
- MAP_OBJ_GFX_HIKER,
- MAP_OBJ_GFX_CYCLING_TRIATHLETE_M,
- MAP_OBJ_GFX_CYCLING_TRIATHLETE_F,
- MAP_OBJ_GFX_NURSE,
- MAP_OBJ_GFX_ITEM_BALL,
- MAP_OBJ_GFX_BERRY_TREE,
- MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES,
- MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES,
- MAP_OBJ_GFX_BRENDAN_ACRO_BIKE,
- MAP_OBJ_GFX_PROF_BIRCH,
- MAP_OBJ_GFX_MAN_5,
- MAP_OBJ_GFX_MAN_6,
- MAP_OBJ_GFX_REPORTER_M,
- MAP_OBJ_GFX_REPORTER_F,
- MAP_OBJ_GFX_BARD,
- MAP_OBJ_GFX_HIPSTER,
- MAP_OBJ_GFX_TRADER,
- MAP_OBJ_GFX_STORYTELLER,
- MAP_OBJ_GFX_GIDDY,
- MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_1,
- MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_2,
- MAP_OBJ_GFX_UNUSED_NATU_DOLL,
- MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL,
- MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL,
- MAP_OBJ_GFX_UNUSED_WOOPER_DOLL,
- MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL,
- MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL,
- MAP_OBJ_GFX_CUTTABLE_TREE,
- MAP_OBJ_GFX_MART_EMPLOYEE,
- MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN,
- MAP_OBJ_GFX_TEALA,
- MAP_OBJ_GFX_BREAKABLE_ROCK,
- MAP_OBJ_GFX_PUSHABLE_BOULDER,
- MAP_OBJ_GFX_MR_BRINEYS_BOAT,
- MAP_OBJ_GFX_MAY_NORMAL,
- MAP_OBJ_GFX_MAY_MACH_BIKE,
- MAP_OBJ_GFX_MAY_ACRO_BIKE,
- MAP_OBJ_GFX_MAY_SURFING,
- MAP_OBJ_GFX_MAY_FIELD_MOVE,
- MAP_OBJ_GFX_TRUCK,
- MAP_OBJ_GFX_MACHOKE_CARRYING_BOX,
- MAP_OBJ_GFX_MACHOKE_FACING_AWAY,
- MAP_OBJ_GFX_BIRCHS_BAG,
- MAP_OBJ_GFX_POOCHYENA,
- MAP_OBJ_GFX_ARTIST,
- MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL,
- MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE,
- MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE,
- MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING,
- MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE,
- MAP_OBJ_GFX_RIVAL_MAY_NORMAL,
- MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE,
- MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE,
- MAP_OBJ_GFX_RIVAL_MAY_SURFING,
- MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE,
- MAP_OBJ_GFX_CAMERAMAN,
- MAP_OBJ_GFX_BRENDAN_UNDERWATER,
- MAP_OBJ_GFX_MAY_UNDERWATER,
- MAP_OBJ_GFX_MOVING_BOX,
- MAP_OBJ_GFX_CABLE_CAR,
- MAP_OBJ_GFX_SCIENTIST_2,
- MAP_OBJ_GFX_MAN_7,
- MAP_OBJ_GFX_AQUA_MEMBER_M,
- MAP_OBJ_GFX_AQUA_MEMBER_F,
- MAP_OBJ_GFX_MAGMA_MEMBER_M,
- MAP_OBJ_GFX_MAGMA_MEMBER_F,
- MAP_OBJ_GFX_SIDNEY,
- MAP_OBJ_GFX_PHOEBE,
- MAP_OBJ_GFX_GLACIA,
- MAP_OBJ_GFX_DRAKE,
- MAP_OBJ_GFX_ROXANNE,
- MAP_OBJ_GFX_BRAWLY,
- MAP_OBJ_GFX_WATTSON,
- MAP_OBJ_GFX_FLANNERY,
- MAP_OBJ_GFX_NORMAN,
- MAP_OBJ_GFX_WINONA,
- MAP_OBJ_GFX_LIZA,
- MAP_OBJ_GFX_TATE,
- MAP_OBJ_GFX_WALLACE,
- MAP_OBJ_GFX_STEVEN,
- MAP_OBJ_GFX_WALLY,
- MAP_OBJ_GFX_LITTLE_BOY_3,
- MAP_OBJ_GFX_BRENDAN_FISHING,
- MAP_OBJ_GFX_MAY_FISHING,
- MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN,
- MAP_OBJ_GFX_SS_TIDAL,
- MAP_OBJ_GFX_SUBMARINE_SHADOW,
- MAP_OBJ_GFX_PICHU_DOLL,
- MAP_OBJ_GFX_PIKACHU_DOLL,
- MAP_OBJ_GFX_MARILL_DOLL,
- MAP_OBJ_GFX_TOGEPI_DOLL,
- MAP_OBJ_GFX_CYNDAQUIL_DOLL,
- MAP_OBJ_GFX_CHIKORITA_DOLL,
- MAP_OBJ_GFX_TOTODILE_DOLL,
- MAP_OBJ_GFX_JIGGLYPUFF_DOLL,
- MAP_OBJ_GFX_MEOWTH_DOLL,
- MAP_OBJ_GFX_CLEFAIRY_DOLL,
- MAP_OBJ_GFX_DITTO_DOLL,
- MAP_OBJ_GFX_SMOOCHUM_DOLL,
- MAP_OBJ_GFX_TREECKO_DOLL,
- MAP_OBJ_GFX_TORCHIC_DOLL,
- MAP_OBJ_GFX_MUDKIP_DOLL,
- MAP_OBJ_GFX_DUSKULL_DOLL,
- MAP_OBJ_GFX_WYNAUT_DOLL,
- MAP_OBJ_GFX_BALTOY_DOLL,
- MAP_OBJ_GFX_KECLEON_DOLL,
- MAP_OBJ_GFX_AZURILL_DOLL,
- MAP_OBJ_GFX_SKITTY_DOLL,
- MAP_OBJ_GFX_SWABLU_DOLL,
- MAP_OBJ_GFX_GULPIN_DOLL,
- MAP_OBJ_GFX_LOTAD_DOLL,
- MAP_OBJ_GFX_SEEDOT_DOLL,
- MAP_OBJ_GFX_PIKA_CUSHION,
- MAP_OBJ_GFX_ROUND_CUSHION,
- MAP_OBJ_GFX_KISS_CUSHION,
- MAP_OBJ_GFX_ZIGZAG_CUSHION,
- MAP_OBJ_GFX_SPIN_CUSHION,
- MAP_OBJ_GFX_DIAMOND_CUSHION,
- MAP_OBJ_GFX_BALL_CUSHION,
- MAP_OBJ_GFX_GRASS_CUSHION,
- MAP_OBJ_GFX_FIRE_CUSHION,
- MAP_OBJ_GFX_WATER_CUSHION,
- MAP_OBJ_GFX_BIG_SNORLAX_DOLL,
- MAP_OBJ_GFX_BIG_RHYDON_DOLL,
- MAP_OBJ_GFX_BIG_LAPRAS_DOLL,
- MAP_OBJ_GFX_BIG_VENUSAUR_DOLL,
- MAP_OBJ_GFX_BIG_CHARIZARD_DOLL,
- MAP_OBJ_GFX_BIG_BLASTOISE_DOLL,
- MAP_OBJ_GFX_BIG_WAILMER_DOLL,
- MAP_OBJ_GFX_BIG_REGIROCK_DOLL,
- MAP_OBJ_GFX_BIG_REGICE_DOLL,
- MAP_OBJ_GFX_BIG_REGISTEEL_DOLL,
- MAP_OBJ_GFX_LATIAS,
- MAP_OBJ_GFX_LATIOS,
- MAP_OBJ_GFX_BOY_5,
- MAP_OBJ_GFX_CONTEST_JUDGE,
- MAP_OBJ_GFX_BRENDAN_WATERING,
- MAP_OBJ_GFX_MAY_WATERING,
- MAP_OBJ_GFX_BRENDAN_DECORATING,
- MAP_OBJ_GFX_MAY_DECORATING,
- MAP_OBJ_GFX_ARCHIE,
- MAP_OBJ_GFX_MAXIE,
- MAP_OBJ_GFX_KYOGRE_1,
- MAP_OBJ_GFX_GROUDON_1,
- MAP_OBJ_GFX_FOSSIL,
- MAP_OBJ_GFX_REGIROCK,
- MAP_OBJ_GFX_REGICE,
- MAP_OBJ_GFX_REGISTEEL,
- MAP_OBJ_GFX_SKITTY,
- MAP_OBJ_GFX_KECLEON_1,
- MAP_OBJ_GFX_KYOGRE_2,
- MAP_OBJ_GFX_GROUDON_2,
- MAP_OBJ_GFX_RAYQUAZA,
- MAP_OBJ_GFX_ZIGZAGOON,
- MAP_OBJ_GFX_PIKACHU,
- MAP_OBJ_GFX_AZUMARILL,
- MAP_OBJ_GFX_WINGULL,
- MAP_OBJ_GFX_KECLEON_2,
- MAP_OBJ_GFX_TUBER_M_SWIMMING,
- MAP_OBJ_GFX_AZURILL,
- MAP_OBJ_GFX_MOM,
- MAP_OBJ_GFX_LINK_BRENDAN,
- MAP_OBJ_GFX_LINK_MAY,
-};
-
-enum {
- SHADOW_SIZE_S,
- SHADOW_SIZE_M,
- SHADOW_SIZE_L,
- SHADOW_SIZE_XL
-};
-
-enum {
- TRACKS_NONE,
- TRACKS_FOOT,
- TRACKS_BIKE_TIRE
-};
-
-#endif // GUARD_MAP_OBJECT_CONSTANTS_H
diff --git a/include/matsuda_debug_menu.h b/include/matsuda_debug_menu.h
index 5df53d688..60f2dc48c 100644
--- a/include/matsuda_debug_menu.h
+++ b/include/matsuda_debug_menu.h
@@ -7,5 +7,31 @@ void sub_80AB184(void);
void sub_80AA280(u8);
void sub_80AA5E8(u8);
void sub_80AA658(u8);
+u8 MatsudaDebugMenu_Contest(void);
+u8 MatsudaDebugMenu_ContestResults(void);
+u8 MatsudaDebugMenu_ContestComm(void);
+u8 MatsudaDebugMenu_CommTest(void);
+u8 MatsudaDebugMenu_SetHighScore(void);
+u8 MatsudaDebugMenu_ResetHighScore(void);
+u8 MatsudaDebugMenu_SetArtMuseumItems(void);
+void sub_80AA754(struct Sprite *sprite);
+void sub_80AA8C8(struct Sprite *, s8);
+void sub_80AA8D8(struct Sprite *, s8);
+void sub_80AA8E8(struct Sprite *, s8);
+void sub_80AA8F8(struct Sprite *, s8);
+void sub_80AAC5C(struct Sprite *, s8);
+void sub_80AAC5C(struct Sprite *, s8);
+void sub_80AA930(struct Sprite *, s8);
+void sub_80AA974(struct Sprite *, s8);
+void sub_80AA9B8(struct Sprite *, s8);
+void sub_80AA9FC(struct Sprite *, s8);
+void sub_80AAA40(struct Sprite *, s8);
+void sub_80AAA84(struct Sprite *, s8);
+void sub_80AAAF0(struct Sprite *, s8);
+void sub_80AAB30(struct Sprite *, s8);
+void sub_80AAB70(struct Sprite *, s8);
+void sub_80AABB0(struct Sprite *, s8);
+void sub_80AABF0(struct Sprite *, s8);
+void sub_80AAD44(struct Sprite *, s8);
#endif
diff --git a/include/mauville_man.h b/include/mauville_man.h
index 2b8f139f2..622cd1bfb 100644
--- a/include/mauville_man.h
+++ b/include/mauville_man.h
@@ -1,15 +1,7 @@
#ifndef GUARD_MAUVILLE_OLD_MAN_H
#define GUARD_MAUVILLE_OLD_MAN_H
-// IDs
-enum
-{
- MAUVILLE_MAN_BARD,
- MAUVILLE_MAN_HIPSTER,
- MAUVILLE_MAN_TRADER,
- MAUVILLE_MAN_STORYTELLER,
- MAUVILLE_MAN_GIDDY,
-};
+#include "constants/mauville_man.h"
void SetupMauvilleOldMan(void);
void sub_80F7F30(void);
diff --git a/include/mori_debug_menu.h b/include/mori_debug_menu.h
index f1dc0de93..9b0a39fe3 100644
--- a/include/mori_debug_menu.h
+++ b/include/mori_debug_menu.h
@@ -3,14 +3,14 @@
bool8 sub_8083D4C(void);
u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr);
-s8 MoriDebugMenu_Egg(void);
-s8 MoriDebugMenu_MaleEgg(void);
-s8 MoriDebugMenu_1000Steps(void);
-s8 MoriDebugMenu_10000Steps(void);
-s8 MoriDebugMenu_MoveTutor(void);
-s8 MoriDebugMenu_BreedEgg(void);
-s8 MoriDebugMenu_LongName(void);
-s8 MoriDebugMenu_PokeblockCase(void);
+u8 MoriDebugMenu_Egg(void);
+u8 MoriDebugMenu_MaleEgg(void);
+u8 MoriDebugMenu_1000Steps(void);
+u8 MoriDebugMenu_10000Steps(void);
+u8 MoriDebugMenu_MoveTutor(void);
+u8 MoriDebugMenu_BreedEgg(void);
+u8 MoriDebugMenu_LongName(void);
+u8 MoriDebugMenu_PokeblockCase(void);
bool8 MoriDebugMenuProcessInput(void);
s8 InitMoriDebugMenu(void);
diff --git a/include/moves.h b/include/moves.h
deleted file mode 100644
index e3b6d3113..000000000
--- a/include/moves.h
+++ /dev/null
@@ -1,363 +0,0 @@
-#ifndef GUARD_MOVES_H
-#define GUARD_MOVES_H
-
-enum
-{
- MOVE_NONE,
- MOVE_POUND,
- MOVE_KARATE_CHOP,
- MOVE_DOUBLE_SLAP,
- MOVE_COMET_PUNCH,
- MOVE_MEGA_PUNCH,
- MOVE_PAY_DAY,
- MOVE_FIRE_PUNCH,
- MOVE_ICE_PUNCH,
- MOVE_THUNDER_PUNCH,
- MOVE_SCRATCH,
- MOVE_VICE_GRIP,
- MOVE_GUILLOTINE,
- MOVE_RAZOR_WIND,
- MOVE_SWORDS_DANCE,
- MOVE_CUT,
- MOVE_GUST,
- MOVE_WING_ATTACK,
- MOVE_WHIRLWIND,
- MOVE_FLY,
- MOVE_BIND,
- MOVE_SLAM,
- MOVE_VINE_WHIP,
- MOVE_STOMP,
- MOVE_DOUBLE_KICK,
- MOVE_MEGA_KICK,
- MOVE_JUMP_KICK,
- MOVE_ROLLING_KICK,
- MOVE_SAND_ATTACK,
- MOVE_HEADBUTT,
- MOVE_HORN_ATTACK,
- MOVE_FURY_ATTACK,
- MOVE_HORN_DRILL,
- MOVE_TACKLE,
- MOVE_BODY_SLAM,
- MOVE_WRAP,
- MOVE_TAKE_DOWN,
- MOVE_THRASH,
- MOVE_DOUBLE_EDGE,
- MOVE_TAIL_WHIP,
- MOVE_POISON_STING,
- MOVE_TWINEEDLE,
- MOVE_PIN_MISSILE,
- MOVE_LEER,
- MOVE_BITE,
- MOVE_GROWL,
- MOVE_ROAR,
- MOVE_SING,
- MOVE_SUPERSONIC,
- MOVE_SONIC_BOOM,
- MOVE_DISABLE,
- MOVE_ACID,
- MOVE_EMBER,
- MOVE_FLAMETHROWER,
- MOVE_MIST,
- MOVE_WATER_GUN,
- MOVE_HYDRO_PUMP,
- MOVE_SURF,
- MOVE_ICE_BEAM,
- MOVE_BLIZZARD,
- MOVE_PSYBEAM,
- MOVE_BUBBLE_BEAM,
- MOVE_AURORA_BEAM,
- MOVE_HYPER_BEAM,
- MOVE_PECK,
- MOVE_DRILL_PECK,
- MOVE_SUBMISSION,
- MOVE_LOW_KICK,
- MOVE_COUNTER,
- MOVE_SEISMIC_TOSS,
- MOVE_STRENGTH,
- MOVE_ABSORB,
- MOVE_MEGA_DRAIN,
- MOVE_LEECH_SEED,
- MOVE_GROWTH,
- MOVE_RAZOR_LEAF,
- MOVE_SOLAR_BEAM,
- MOVE_POISON_POWDER,
- MOVE_STUN_SPORE,
- MOVE_SLEEP_POWDER,
- MOVE_PETAL_DANCE,
- MOVE_STRING_SHOT,
- MOVE_DRAGON_RAGE,
- MOVE_FIRE_SPIN,
- MOVE_THUNDER_SHOCK,
- MOVE_THUNDERBOLT,
- MOVE_THUNDER_WAVE,
- MOVE_THUNDER,
- MOVE_ROCK_THROW,
- MOVE_EARTHQUAKE,
- MOVE_FISSURE,
- MOVE_DIG,
- MOVE_TOXIC,
- MOVE_CONFUSION,
- MOVE_PSYCHIC,
- MOVE_HYPNOSIS,
- MOVE_MEDITATE,
- MOVE_AGILITY,
- MOVE_QUICK_ATTACK,
- MOVE_RAGE,
- MOVE_TELEPORT,
- MOVE_NIGHT_SHADE,
- MOVE_MIMIC,
- MOVE_SCREECH,
- MOVE_DOUBLE_TEAM,
- MOVE_RECOVER,
- MOVE_HARDEN,
- MOVE_MINIMIZE,
- MOVE_SMOKESCREEN,
- MOVE_CONFUSE_RAY,
- MOVE_WITHDRAW,
- MOVE_DEFENSE_CURL,
- MOVE_BARRIER,
- MOVE_LIGHT_SCREEN,
- MOVE_HAZE,
- MOVE_REFLECT,
- MOVE_FOCUS_ENERGY,
- MOVE_BIDE,
- MOVE_METRONOME,
- MOVE_MIRROR_MOVE,
- MOVE_SELF_DESTRUCT,
- MOVE_EGG_BOMB,
- MOVE_LICK,
- MOVE_SMOG,
- MOVE_SLUDGE,
- MOVE_BONE_CLUB,
- MOVE_FIRE_BLAST,
- MOVE_WATERFALL,
- MOVE_CLAMP,
- MOVE_SWIFT,
- MOVE_SKULL_BASH,
- MOVE_SPIKE_CANNON,
- MOVE_CONSTRICT,
- MOVE_AMNESIA,
- MOVE_KINESIS,
- MOVE_SOFT_BOILED,
- MOVE_HI_JUMP_KICK,
- MOVE_GLARE,
- MOVE_DREAM_EATER,
- MOVE_POISON_GAS,
- MOVE_BARRAGE,
- MOVE_LEECH_LIFE,
- MOVE_LOVELY_KISS,
- MOVE_SKY_ATTACK,
- MOVE_TRANSFORM,
- MOVE_BUBBLE,
- MOVE_DIZZY_PUNCH,
- MOVE_SPORE,
- MOVE_FLASH,
- MOVE_PSYWAVE,
- MOVE_SPLASH,
- MOVE_ACID_ARMOR,
- MOVE_CRABHAMMER,
- MOVE_EXPLOSION,
- MOVE_FURY_SWIPES,
- MOVE_BONEMERANG,
- MOVE_REST,
- MOVE_ROCK_SLIDE,
- MOVE_HYPER_FANG,
- MOVE_SHARPEN,
- MOVE_CONVERSION,
- MOVE_TRI_ATTACK,
- MOVE_SUPER_FANG,
- MOVE_SLASH,
- MOVE_SUBSTITUTE,
- MOVE_STRUGGLE,
- MOVE_SKETCH,
- MOVE_TRIPLE_KICK,
- MOVE_THIEF,
- MOVE_SPIDER_WEB,
- MOVE_MIND_READER,
- MOVE_NIGHTMARE,
- MOVE_FLAME_WHEEL,
- MOVE_SNORE,
- MOVE_CURSE,
- MOVE_FLAIL,
- MOVE_CONVERSION_2,
- MOVE_AEROBLAST,
- MOVE_COTTON_SPORE,
- MOVE_REVERSAL,
- MOVE_SPITE,
- MOVE_POWDER_SNOW,
- MOVE_PROTECT,
- MOVE_MACH_PUNCH,
- MOVE_SCARY_FACE,
- MOVE_FAINT_ATTACK,
- MOVE_SWEET_KISS,
- MOVE_BELLY_DRUM,
- MOVE_SLUDGE_BOMB,
- MOVE_MUD_SLAP,
- MOVE_OCTAZOOKA,
- MOVE_SPIKES,
- MOVE_ZAP_CANNON,
- MOVE_FORESIGHT,
- MOVE_DESTINY_BOND,
- MOVE_PERISH_SONG,
- MOVE_ICY_WIND,
- MOVE_DETECT,
- MOVE_BONE_RUSH,
- MOVE_LOCK_ON,
- MOVE_OUTRAGE,
- MOVE_SANDSTORM,
- MOVE_GIGA_DRAIN,
- MOVE_ENDURE,
- MOVE_CHARM,
- MOVE_ROLLOUT,
- MOVE_FALSE_SWIPE,
- MOVE_SWAGGER,
- MOVE_MILK_DRINK,
- MOVE_SPARK,
- MOVE_FURY_CUTTER,
- MOVE_STEEL_WING,
- MOVE_MEAN_LOOK,
- MOVE_ATTRACT,
- MOVE_SLEEP_TALK,
- MOVE_HEAL_BELL,
- MOVE_RETURN,
- MOVE_PRESENT,
- MOVE_FRUSTRATION,
- MOVE_SAFEGUARD,
- MOVE_PAIN_SPLIT,
- MOVE_SACRED_FIRE,
- MOVE_MAGNITUDE,
- MOVE_DYNAMIC_PUNCH,
- MOVE_MEGAHORN,
- MOVE_DRAGON_BREATH,
- MOVE_BATON_PASS,
- MOVE_ENCORE,
- MOVE_PURSUIT,
- MOVE_RAPID_SPIN,
- MOVE_SWEET_SCENT,
- MOVE_IRON_TAIL,
- MOVE_METAL_CLAW,
- MOVE_VITAL_THROW,
- MOVE_MORNING_SUN,
- MOVE_SYNTHESIS,
- MOVE_MOONLIGHT,
- MOVE_HIDDEN_POWER,
- MOVE_CROSS_CHOP,
- MOVE_TWISTER,
- MOVE_RAIN_DANCE,
- MOVE_SUNNY_DAY,
- MOVE_CRUNCH,
- MOVE_MIRROR_COAT,
- MOVE_PSYCH_UP,
- MOVE_EXTREME_SPEED,
- MOVE_ANCIENT_POWER,
- MOVE_SHADOW_BALL,
- MOVE_FUTURE_SIGHT,
- MOVE_ROCK_SMASH,
- MOVE_WHIRLPOOL,
- MOVE_BEAT_UP,
- MOVE_FAKE_OUT,
- MOVE_UPROAR,
- MOVE_STOCKPILE,
- MOVE_SPIT_UP,
- MOVE_SWALLOW,
- MOVE_HEAT_WAVE,
- MOVE_HAIL,
- MOVE_TORMENT,
- MOVE_FLATTER,
- MOVE_WILL_O_WISP,
- MOVE_MEMENTO,
- MOVE_FACADE,
- MOVE_FOCUS_PUNCH,
- MOVE_SMELLING_SALT,
- MOVE_FOLLOW_ME,
- MOVE_NATURE_POWER,
- MOVE_CHARGE,
- MOVE_TAUNT,
- MOVE_HELPING_HAND,
- MOVE_TRICK,
- MOVE_ROLE_PLAY,
- MOVE_WISH,
- MOVE_ASSIST,
- MOVE_INGRAIN,
- MOVE_SUPERPOWER,
- MOVE_MAGIC_COAT,
- MOVE_RECYCLE,
- MOVE_REVENGE,
- MOVE_BRICK_BREAK,
- MOVE_YAWN,
- MOVE_KNOCK_OFF,
- MOVE_ENDEAVOR,
- MOVE_ERUPTION,
- MOVE_SKILL_SWAP,
- MOVE_IMPRISON,
- MOVE_REFRESH,
- MOVE_GRUDGE,
- MOVE_SNATCH,
- MOVE_SECRET_POWER,
- MOVE_DIVE,
- MOVE_ARM_THRUST,
- MOVE_CAMOUFLAGE,
- MOVE_TAIL_GLOW,
- MOVE_LUSTER_PURGE,
- MOVE_MIST_BALL,
- MOVE_FEATHER_DANCE,
- MOVE_TEETER_DANCE,
- MOVE_BLAZE_KICK,
- MOVE_MUD_SPORT,
- MOVE_ICE_BALL,
- MOVE_NEEDLE_ARM,
- MOVE_SLACK_OFF,
- MOVE_HYPER_VOICE,
- MOVE_POISON_FANG,
- MOVE_CRUSH_CLAW,
- MOVE_BLAST_BURN,
- MOVE_HYDRO_CANNON,
- MOVE_METEOR_MASH,
- MOVE_ASTONISH,
- MOVE_WEATHER_BALL,
- MOVE_AROMATHERAPY,
- MOVE_FAKE_TEARS,
- MOVE_AIR_CUTTER,
- MOVE_OVERHEAT,
- MOVE_ODOR_SLEUTH,
- MOVE_ROCK_TOMB,
- MOVE_SILVER_WIND,
- MOVE_METAL_SOUND,
- MOVE_GRASS_WHISTLE,
- MOVE_TICKLE,
- MOVE_COSMIC_POWER,
- MOVE_WATER_SPOUT,
- MOVE_SIGNAL_BEAM,
- MOVE_SHADOW_PUNCH,
- MOVE_EXTRASENSORY,
- MOVE_SKY_UPPERCUT,
- MOVE_SAND_TOMB,
- MOVE_SHEER_COLD,
- MOVE_MUDDY_WATER,
- MOVE_BULLET_SEED,
- MOVE_AERIAL_ACE,
- MOVE_ICICLE_SPEAR,
- MOVE_IRON_DEFENSE,
- MOVE_BLOCK,
- MOVE_HOWL,
- MOVE_DRAGON_CLAW,
- MOVE_FRENZY_PLANT,
- MOVE_BULK_UP,
- MOVE_BOUNCE,
- MOVE_MUD_SHOT,
- MOVE_POISON_TAIL,
- MOVE_COVET,
- MOVE_VOLT_TACKLE,
- MOVE_MAGICAL_LEAF,
- MOVE_WATER_SPORT,
- MOVE_CALM_MIND,
- MOVE_LEAF_BLADE,
- MOVE_DRAGON_DANCE,
- MOVE_ROCK_BLAST,
- MOVE_SHOCK_WAVE,
- MOVE_WATER_PULSE,
- MOVE_DOOM_DESIRE,
- MOVE_PSYCHO_BOOST,
-};
-
-#endif // GUARD_MOVES_H \ No newline at end of file
diff --git a/include/opponent_constants.h b/include/opponent_constants.h
deleted file mode 100644
index 1829facaa..000000000
--- a/include/opponent_constants.h
+++ /dev/null
@@ -1,702 +0,0 @@
-#ifndef GUARD_OPPONENT_CONSTANTS_H
-#define GUARD_OPPONENT_CONSTANTS_H
-
-enum
-{
- OPPONENT_NONE,
- OPPONENT_ARCHIE_1,
- OPPONENT_GRUNT_1,
- OPPONENT_GRUNT_2,
- OPPONENT_GRUNT_3,
- OPPONENT_GRUNT_4,
- OPPONENT_GRUNT_5,
- OPPONENT_GRUNT_6,
- OPPONENT_GRUNT_7,
- OPPONENT_GRUNT_8,
- OPPONENT_GRUNT_9,
- OPPONENT_GRUNT_10,
- OPPONENT_GRUNT_11,
- OPPONENT_GRUNT_12,
- OPPONENT_GRUNT_13,
- OPPONENT_GRUNT_14,
- OPPONENT_GRUNT_15,
- OPPONENT_GRUNT_16,
- OPPONENT_GRUNT_17,
- OPPONENT_GRUNT_18,
- OPPONENT_GRUNT_19,
- OPPONENT_GRUNT_20,
- OPPONENT_GRUNT_21,
- OPPONENT_GRUNT_22,
- OPPONENT_GRUNT_23,
- OPPONENT_GRUNT_24,
- OPPONENT_GRUNT_25,
- OPPONENT_GRUNT_26,
- OPPONENT_GRUNT_27,
- OPPONENT_ANONYMOUS_1,
- OPPONENT_MATT_1,
- OPPONENT_MATT_2,
- OPPONENT_SHELLY_1,
- OPPONENT_SHELLY_2,
- OPPONENT_ARCHIE_2,
- OPPONENT_ARCHIE_3,
- OPPONENT_DAISY,
- OPPONENT_ROSE_1,
- OPPONENT_LILY,
- OPPONENT_VIOLET,
- OPPONENT_ROSE_2,
- OPPONENT_ROSE_3,
- OPPONENT_ROSE_4,
- OPPONENT_ROSE_5,
- OPPONENT_DUSTY_1,
- OPPONENT_CHIP,
- OPPONENT_FOSTER,
- OPPONENT_DUSTY_2,
- OPPONENT_DUSTY_3,
- OPPONENT_DUSTY_4,
- OPPONENT_DUSTY_5,
- OPPONENT_GABBY_AND_TY_1,
- OPPONENT_GABBY_AND_TY_2,
- OPPONENT_GABBY_AND_TY_3,
- OPPONENT_GABBY_AND_TY_4,
- OPPONENT_GABBY_AND_TY_5,
- OPPONENT_GABBY_AND_TY_6,
- OPPONENT_LOLA_1,
- OPPONENT_CARMEN,
- OPPONENT_GWEN,
- OPPONENT_LOLA_2,
- OPPONENT_LOLA_3,
- OPPONENT_LOLA_4,
- OPPONENT_LOLA_5,
- OPPONENT_RICKY_1,
- OPPONENT_SIMON,
- OPPONENT_CHARLIE,
- OPPONENT_RICKY_2,
- OPPONENT_RICKY_3,
- OPPONENT_RICKY_4,
- OPPONENT_RICKY_5,
- OPPONENT_RANDALL,
- OPPONENT_PARKER,
- OPPONENT_GEORGE,
- OPPONENT_BERKE,
- OPPONENT_CLYDE,
- OPPONENT_VINCENT,
- OPPONENT_LEROY,
- OPPONENT_WILTON_1,
- OPPONENT_EDGAR,
- OPPONENT_ALBERT,
- OPPONENT_SAMUEL,
- OPPONENT_VITO,
- OPPONENT_OWEN,
- OPPONENT_WILTON_2,
- OPPONENT_WILTON_3,
- OPPONENT_WILTON_4,
- OPPONENT_WILTON_5,
- OPPONENT_WARREN,
- OPPONENT_MARY,
- OPPONENT_LORI,
- OPPONENT_JODY,
- OPPONENT_WENDY,
- OPPONENT_ELAINE,
- OPPONENT_BROOKE_1,
- OPPONENT_JENNIFER,
- OPPONENT_HOPE,
- OPPONENT_SHANNON,
- OPPONENT_MICHELLE,
- OPPONENT_CAROLINE,
- OPPONENT_JULIE,
- OPPONENT_BROOKE_2,
- OPPONENT_BROOKE_3,
- OPPONENT_BROOKE_4,
- OPPONENT_BROOKE_5,
- OPPONENT_PATRICIA,
- OPPONENT_KINDRA,
- OPPONENT_TAMMY,
- OPPONENT_VALERIE_1,
- OPPONENT_TASHA,
- OPPONENT_VALERIE_2,
- OPPONENT_VALERIE_3,
- OPPONENT_VALERIE_4,
- OPPONENT_VALERIE_5,
- OPPONENT_CINDY_1,
- OPPONENT_ANONYMOUS_2,
- OPPONENT_BRIANNA_1,
- OPPONENT_CINDY_2,
- OPPONENT_BRIANNA_2,
- OPPONENT_ANETTE,
- OPPONENT_CINDY_3,
- OPPONENT_CINDY_4,
- OPPONENT_CINDY_5,
- OPPONENT_CINDY_6,
- OPPONENT_MELISSA,
- OPPONENT_SHEILA,
- OPPONENT_SHIRLEY,
- OPPONENT_JESSICA_1,
- OPPONENT_CONNIE,
- OPPONENT_BRIDGET,
- OPPONENT_OLIVIA,
- OPPONENT_TIFFANY,
- OPPONENT_JESSICA_2,
- OPPONENT_JESSICA_3,
- OPPONENT_JESSICA_4,
- OPPONENT_JESSICA_5,
- OPPONENT_WINSTON_1,
- OPPONENT_ANONYMOUS_3,
- OPPONENT_GARRET,
- OPPONENT_WINSTON_2,
- OPPONENT_WINSTON_3,
- OPPONENT_WINSTON_4,
- OPPONENT_WINSTON_5,
- OPPONENT_STEVE_1,
- OPPONENT_CHRIS,
- OPPONENT_MARK,
- OPPONENT_KENN,
- OPPONENT_STEVE_2,
- OPPONENT_STEVE_3,
- OPPONENT_STEVE_4,
- OPPONENT_STEVE_5,
- OPPONENT_LUIS,
- OPPONENT_AUSTIN,
- OPPONENT_DOUGLAS,
- OPPONENT_DARRIN,
- OPPONENT_TONY_1,
- OPPONENT_JEROME,
- OPPONENT_MATTHEW,
- OPPONENT_DAVID,
- OPPONENT_SPENCER,
- OPPONENT_ROLAND,
- OPPONENT_CODY,
- OPPONENT_STAN,
- OPPONENT_BARRY,
- OPPONENT_DEAN,
- OPPONENT_RODNEY,
- OPPONENT_RICHARD,
- OPPONENT_HERMAN,
- OPPONENT_ANONYMOUS_4,
- OPPONENT_GILBERT,
- OPPONENT_FRANKLIN,
- OPPONENT_DANNY,
- OPPONENT_JACK,
- OPPONENT_DUDLEY,
- OPPONENT_CHAD,
- OPPONENT_TONY_2,
- OPPONENT_TONY_3,
- OPPONENT_TONY_4,
- OPPONENT_TONY_5,
- OPPONENT_HIDEKI,
- OPPONENT_HITOSHI,
- OPPONENT_KIYO,
- OPPONENT_KOICHI,
- OPPONENT_NOB_1,
- OPPONENT_NOB_2,
- OPPONENT_NOB_3,
- OPPONENT_NOB_4,
- OPPONENT_NOB_5,
- OPPONENT_YUJI,
- OPPONENT_DAISUKE,
- OPPONENT_ATSUSHI,
- OPPONENT_KIRK,
- OPPONENT_SCOTT,
- OPPONENT_HARVEY,
- OPPONENT_SHAWN,
- OPPONENT_RANDY,
- OPPONENT_DALTON_1,
- OPPONENT_DALTON_2,
- OPPONENT_DALTON_3,
- OPPONENT_DALTON_4,
- OPPONENT_DALTON_5,
- OPPONENT_COLE,
- OPPONENT_FLINT,
- OPPONENT_AXLE,
- OPPONENT_JAKE,
- OPPONENT_ANDY,
- OPPONENT_BERNIE_1,
- OPPONENT_BERNIE_2,
- OPPONENT_BERNIE_3,
- OPPONENT_BERNIE_4,
- OPPONENT_BERNIE_5,
- OPPONENT_DREW,
- OPPONENT_CLIFF,
- OPPONENT_LARRY,
- OPPONENT_SHANE,
- OPPONENT_JUSTIN,
- OPPONENT_ETHAN_1,
- OPPONENT_JEFF,
- OPPONENT_TRAVIS,
- OPPONENT_ETHAN_2,
- OPPONENT_ETHAN_3,
- OPPONENT_ETHAN_4,
- OPPONENT_ETHAN_5,
- OPPONENT_BRENT,
- OPPONENT_DONALD,
- OPPONENT_TAYLOR,
- OPPONENT_BRANDON_1,
- OPPONENT_DEREK,
- OPPONENT_BRANDON_2,
- OPPONENT_BRANDON_3,
- OPPONENT_BRANDON_4,
- OPPONENT_BRANDON_5,
- OPPONENT_EDWARD,
- OPPONENT_PRESTON,
- OPPONENT_VIRGIL,
- OPPONENT_FRITZ,
- OPPONENT_WILLIAM,
- OPPONENT_JOSHUA,
- OPPONENT_CAMERON_1,
- OPPONENT_CAMERON_2,
- OPPONENT_CAMERON_3,
- OPPONENT_CAMERON_4,
- OPPONENT_CAMERON_5,
- OPPONENT_JACLYN,
- OPPONENT_HANNAH,
- OPPONENT_SAMANTHA,
- OPPONENT_MAURA,
- OPPONENT_KAYLA,
- OPPONENT_ALEXIS,
- OPPONENT_JACKI_1,
- OPPONENT_JACKI_2,
- OPPONENT_JACKI_3,
- OPPONENT_JACKI_4,
- OPPONENT_JACKI_5,
- OPPONENT_WALTER_1,
- OPPONENT_TUCKER,
- OPPONENT_THOMAS,
- OPPONENT_WALTER_2,
- OPPONENT_WALTER_3,
- OPPONENT_WALTER_4,
- OPPONENT_WALTER_5,
- OPPONENT_SIDNEY,
- OPPONENT_PHOEBE,
- OPPONENT_GLACIA,
- OPPONENT_DRAKE,
- OPPONENT_ROXANNE,
- OPPONENT_BRAWLY,
- OPPONENT_WATTSON,
- OPPONENT_FLANNERY,
- OPPONENT_NORMAN,
- OPPONENT_WINONA,
- OPPONENT_TATE_AND_LIZA,
- OPPONENT_WALLACE,
- OPPONENT_JERRY_1,
- OPPONENT_TED,
- OPPONENT_PAUL,
- OPPONENT_JERRY_2,
- OPPONENT_JERRY_3,
- OPPONENT_JERRY_4,
- OPPONENT_JERRY_5,
- OPPONENT_KAREN_1,
- OPPONENT_GEORGIA,
- OPPONENT_KAREN_2,
- OPPONENT_KAREN_3,
- OPPONENT_KAREN_4,
- OPPONENT_KAREN_5,
- OPPONENT_KATE_AND_JOY,
- OPPONENT_ANNA_AND_MEG_1,
- OPPONENT_ANNA_AND_MEG_2,
- OPPONENT_ANNA_AND_MEG_3,
- OPPONENT_ANNA_AND_MEG_4,
- OPPONENT_ANNA_AND_MEG_5,
- OPPONENT_VICTOR,
- OPPONENT_MIGUEL_1,
- OPPONENT_COLTON,
- OPPONENT_MIGUEL_2,
- OPPONENT_MIGUEL_3,
- OPPONENT_MIGUEL_4,
- OPPONENT_MIGUEL_5,
- OPPONENT_VICTORIA,
- OPPONENT_VANESSA,
- OPPONENT_MARISSA,
- OPPONENT_ISABEL_1,
- OPPONENT_ISABEL_2,
- OPPONENT_ISABEL_3,
- OPPONENT_ISABEL_4,
- OPPONENT_ISABEL_5,
- OPPONENT_TIMOTHY_1,
- OPPONENT_TIMOTHY_2,
- OPPONENT_TIMOTHY_3,
- OPPONENT_TIMOTHY_4,
- OPPONENT_TIMOTHY_5,
- OPPONENT_VICKY,
- OPPONENT_SHELBY_1,
- OPPONENT_SHELBY_2,
- OPPONENT_SHELBY_3,
- OPPONENT_SHELBY_4,
- OPPONENT_SHELBY_5,
- OPPONENT_CALVIN_1,
- OPPONENT_BILLY,
- OPPONENT_JOSH,
- OPPONENT_TOMMY,
- OPPONENT_JOEY,
- OPPONENT_BEN,
- OPPONENT_ANONYMOUS_5,
- OPPONENT_KEVIN,
- OPPONENT_NEAL,
- OPPONENT_DILLON,
- OPPONENT_CALVIN_2,
- OPPONENT_CALVIN_3,
- OPPONENT_CALVIN_4,
- OPPONENT_CALVIN_5,
- OPPONENT_EDDIE,
- OPPONENT_ALLEN,
- OPPONENT_TIMMY,
- OPPONENT_STEVEN,
- OPPONENT_ANDREW,
- OPPONENT_IVAN,
- OPPONENT_CLAUDE,
- OPPONENT_ELLIOT_1,
- OPPONENT_NED,
- OPPONENT_DALE,
- OPPONENT_NOLAN,
- OPPONENT_BARNY,
- OPPONENT_WADE,
- OPPONENT_CARTER,
- OPPONENT_ELLIOT_2,
- OPPONENT_ELLIOT_3,
- OPPONENT_ELLIOT_4,
- OPPONENT_ELLIOT_5,
- OPPONENT_RONALD,
- OPPONENT_JACOB,
- OPPONENT_ANTHONY,
- OPPONENT_BENJAMIN_1,
- OPPONENT_BENJAMIN_2,
- OPPONENT_BENJAMIN_3,
- OPPONENT_BENJAMIN_4,
- OPPONENT_BENJAMIN_5,
- OPPONENT_ABIGAIL_1,
- OPPONENT_JASMINE,
- OPPONENT_ABIGAIL_2,
- OPPONENT_ABIGAIL_3,
- OPPONENT_ABIGAIL_4,
- OPPONENT_ABIGAIL_5,
- OPPONENT_DYLAN_1,
- OPPONENT_DYLAN_2,
- OPPONENT_DYLAN_3,
- OPPONENT_DYLAN_4,
- OPPONENT_DYLAN_5,
- OPPONENT_MARIA_1,
- OPPONENT_MARIA_2,
- OPPONENT_MARIA_3,
- OPPONENT_MARIA_4,
- OPPONENT_MARIA_5,
- OPPONENT_CALEB,
- OPPONENT_ANONYMOUS_6,
- OPPONENT_ISAIAH_1,
- OPPONENT_ANONYMOUS_7,
- OPPONENT_CHASE,
- OPPONENT_ISAIAH_2,
- OPPONENT_ISAIAH_3,
- OPPONENT_ISAIAH_4,
- OPPONENT_ISAIAH_5,
- OPPONENT_ANONYMOUS_8,
- OPPONENT_CONNOR,
- OPPONENT_ANONYMOUS_9,
- OPPONENT_KATELYN_1,
- OPPONENT_ALLISON,
- OPPONENT_KATELYN_2,
- OPPONENT_KATELYN_3,
- OPPONENT_KATELYN_4,
- OPPONENT_KATELYN_5,
- OPPONENT_NICOLAS_1,
- OPPONENT_NICOLAS_2,
- OPPONENT_NICOLAS_3,
- OPPONENT_NICOLAS_4,
- OPPONENT_NICOLAS_5,
- OPPONENT_AARON,
- OPPONENT_PERRY,
- OPPONENT_HUGH,
- OPPONENT_PHIL,
- OPPONENT_JARED,
- OPPONENT_ANONYMOUS_10,
- OPPONENT_TANNER,
- OPPONENT_WILL,
- OPPONENT_COLIN,
- OPPONENT_ROBERT_1,
- OPPONENT_BENNY,
- OPPONENT_CHESTER,
- OPPONENT_ROBERT_2,
- OPPONENT_ROBERT_3,
- OPPONENT_ROBERT_4,
- OPPONENT_ROBERT_5,
- OPPONENT_ALEX,
- OPPONENT_BECK,
- OPPONENT_YASU,
- OPPONENT_TAKASHI,
- OPPONENT_MAKOTO,
- OPPONENT_HIDEO_1,
- OPPONENT_LAO_1,
- OPPONENT_LUNG,
- OPPONENT_LAO_2,
- OPPONENT_LAO_3,
- OPPONENT_LAO_4,
- OPPONENT_LAO_5,
- OPPONENT_TESSA,
- OPPONENT_LAURA,
- OPPONENT_CYNDY_1,
- OPPONENT_CORA,
- OPPONENT_JILL,
- OPPONENT_CYNDY_2,
- OPPONENT_CYNDY_3,
- OPPONENT_CYNDY_4,
- OPPONENT_CYNDY_5,
- OPPONENT_MADELINE_1,
- OPPONENT_CLARISSA,
- OPPONENT_ANGELICA,
- OPPONENT_MADELINE_2,
- OPPONENT_MADELINE_3,
- OPPONENT_MADELINE_4,
- OPPONENT_MADELINE_5,
- OPPONENT_BEVERLY,
- OPPONENT_DAWN,
- OPPONENT_NICOLE,
- OPPONENT_DENISE,
- OPPONENT_BETH,
- OPPONENT_TARA,
- OPPONENT_MISSY,
- OPPONENT_ALICE,
- OPPONENT_JENNY_1,
- OPPONENT_GRACE,
- OPPONENT_TANYA,
- OPPONENT_SHARON,
- OPPONENT_NIKKI,
- OPPONENT_BRENDA,
- OPPONENT_KATIE,
- OPPONENT_SUSIE,
- OPPONENT_KARA,
- OPPONENT_DANA,
- OPPONENT_ERIN,
- OPPONENT_DEBRA,
- OPPONENT_LINDA,
- OPPONENT_KAYLEE,
- OPPONENT_LAUREL,
- OPPONENT_DARCY,
- OPPONENT_JENNY_2,
- OPPONENT_JENNY_3,
- OPPONENT_JENNY_4,
- OPPONENT_JENNY_5,
- OPPONENT_HEIDI,
- OPPONENT_BECKY,
- OPPONENT_CAROL,
- OPPONENT_NANCY,
- OPPONENT_MARTHA,
- OPPONENT_DIANA_1,
- OPPONENT_NINA,
- OPPONENT_IRENE,
- OPPONENT_DIANA_2,
- OPPONENT_DIANA_3,
- OPPONENT_DIANA_4,
- OPPONENT_DIANA_5,
- OPPONENT_AMY_AND_LIV_1,
- OPPONENT_AMY_AND_LIV_2,
- OPPONENT_GINA_AND_MIA_1,
- OPPONENT_MIU_AND_YUKI,
- OPPONENT_AMY_AND_LIV_3,
- OPPONENT_GINA_AND_MIA_2,
- OPPONENT_AMY_AND_LIV_4,
- OPPONENT_AMY_AND_LIV_5,
- OPPONENT_AMY_AND_LIV_6,
- OPPONENT_HUEY,
- OPPONENT_EDMOND,
- OPPONENT_ERNEST_1,
- OPPONENT_DWAYNE,
- OPPONENT_PHILLIP,
- OPPONENT_LEONARD,
- OPPONENT_DUNCAN,
- OPPONENT_ERNEST_2,
- OPPONENT_ERNEST_3,
- OPPONENT_ERNEST_4,
- OPPONENT_ERNEST_5,
- OPPONENT_ANONYMOUS_11,
- OPPONENT_ANONYMOUS_12,
- OPPONENT_ANONYMOUS_13,
- OPPONENT_SONNY,
- OPPONENT_DONOVAN,
- OPPONENT_GERALD,
- OPPONENT_KELVIN,
- OPPONENT_KODY,
- OPPONENT_TEVIN,
- OPPONENT_DAMON,
- OPPONENT_PABLO,
- OPPONENT_EDWIN_1,
- OPPONENT_HECTOR_1,
- OPPONENT_HECTOR_2,
- OPPONENT_EDWIN_2,
- OPPONENT_EDWIN_3,
- OPPONENT_EDWIN_4,
- OPPONENT_EDWIN_5,
- OPPONENT_WALLY_1,
- OPPONENT_BRENDAN_1,
- OPPONENT_BRENDAN_2,
- OPPONENT_BRENDAN_3,
- OPPONENT_BRENDAN_4,
- OPPONENT_BRENDAN_5,
- OPPONENT_BRENDAN_6,
- OPPONENT_BRENDAN_7,
- OPPONENT_BRENDAN_8,
- OPPONENT_BRENDAN_9,
- OPPONENT_MAY_1,
- OPPONENT_MAY_2,
- OPPONENT_MAY_3,
- OPPONENT_MAY_4,
- OPPONENT_MAY_5,
- OPPONENT_MAY_6,
- OPPONENT_MAY_7,
- OPPONENT_MAY_8,
- OPPONENT_MAY_9,
- OPPONENT_ISAAC_1,
- OPPONENT_RILEY,
- OPPONENT_AIDAN,
- OPPONENT_ISAAC_2,
- OPPONENT_ISAAC_3,
- OPPONENT_ISAAC_4,
- OPPONENT_ISAAC_5,
- OPPONENT_LYDIA_1,
- OPPONENT_ALEXIA,
- OPPONENT_DANIELLE,
- OPPONENT_LYDIA_2,
- OPPONENT_LYDIA_3,
- OPPONENT_LYDIA_4,
- OPPONENT_LYDIA_5,
- OPPONENT_JACKSON_1,
- OPPONENT_CARLOS,
- OPPONENT_SEBASTIAN,
- OPPONENT_JACKSON_2,
- OPPONENT_JACKSON_3,
- OPPONENT_JACKSON_4,
- OPPONENT_JACKSON_5,
- OPPONENT_CATHERINE_1,
- OPPONENT_JENNA,
- OPPONENT_SOPHIA,
- OPPONENT_CATHERINE_2,
- OPPONENT_CATHERINE_3,
- OPPONENT_CATHERINE_4,
- OPPONENT_CATHERINE_5,
- OPPONENT_MAXIE_1,
- OPPONENT_GRUNT_28,
- OPPONENT_GRUNT_29,
- OPPONENT_GRUNT_30,
- OPPONENT_GRUNT_31,
- OPPONENT_GRUNT_32,
- OPPONENT_GRUNT_33,
- OPPONENT_GRUNT_34,
- OPPONENT_GRUNT_35,
- OPPONENT_GRUNT_36,
- OPPONENT_GRUNT_37,
- OPPONENT_GRUNT_38,
- OPPONENT_GRUNT_39,
- OPPONENT_GRUNT_40,
- OPPONENT_GRUNT_41,
- OPPONENT_GRUNT_42,
- OPPONENT_GRUNT_43,
- OPPONENT_GRUNT_44,
- OPPONENT_GRUNT_45,
- OPPONENT_GRUNT_46,
- OPPONENT_GRUNT_47,
- OPPONENT_GRUNT_48,
- OPPONENT_GRUNT_49,
- OPPONENT_GRUNT_50,
- OPPONENT_GRUNT_51,
- OPPONENT_GRUNT_52,
- OPPONENT_GRUNT_53,
- OPPONENT_GRUNT_54,
- OPPONENT_ANONYMOUS_14,
- OPPONENT_ANONYMOUS_15,
- OPPONENT_TABITHA_1,
- OPPONENT_TABITHA_2,
- OPPONENT_ANONYMOUS_16,
- OPPONENT_COURTNEY_1,
- OPPONENT_COURTNEY_2,
- OPPONENT_MAXIE_2,
- OPPONENT_MAXIE_3,
- OPPONENT_TIANA,
- OPPONENT_HALEY_1,
- OPPONENT_JANICE,
- OPPONENT_VIVI,
- OPPONENT_HALEY_2,
- OPPONENT_HALEY_3,
- OPPONENT_HALEY_4,
- OPPONENT_HALEY_5,
- OPPONENT_SALLY,
- OPPONENT_ROBIN,
- OPPONENT_ANDREA,
- OPPONENT_CRISSY,
- OPPONENT_RICK,
- OPPONENT_LYLE,
- OPPONENT_JOSE,
- OPPONENT_DOUG,
- OPPONENT_GREG,
- OPPONENT_KENT,
- OPPONENT_JAMES_1,
- OPPONENT_JAMES_2,
- OPPONENT_JAMES_3,
- OPPONENT_JAMES_4,
- OPPONENT_JAMES_5,
- OPPONENT_BRICE,
- OPPONENT_TRENT_1,
- OPPONENT_LENNY,
- OPPONENT_LUCAS_1,
- OPPONENT_ALAN,
- OPPONENT_CLARK,
- OPPONENT_ERIC,
- OPPONENT_LUCAS_2,
- OPPONENT_MIKE_1,
- OPPONENT_MIKE_2,
- OPPONENT_TRENT_2,
- OPPONENT_TRENT_3,
- OPPONENT_TRENT_4,
- OPPONENT_TRENT_5,
- OPPONENT_DEZ_AND_LUKE,
- OPPONENT_LEA_AND_JED,
- OPPONENT_LOIS_AND_HAL_1,
- OPPONENT_LOIS_AND_HAL_2,
- OPPONENT_LOIS_AND_HAL_3,
- OPPONENT_LOIS_AND_HAL_4,
- OPPONENT_LOIS_AND_HAL_5,
- OPPONENT_JOHANNA,
- OPPONENT_ZANE,
- OPPONENT_VIVIAN,
- OPPONENT_SADIE,
- OPPONENT_HIDEO_2,
- OPPONENT_KEIGO,
- OPPONENT_TSUNAO,
- OPPONENT_TERRELL,
- OPPONENT_KYLEE,
- OPPONENT_WALLY_2,
- OPPONENT_WALLY_3,
- OPPONENT_WALLY_4,
- OPPONENT_WALLY_5,
- OPPONENT_WALLY_6,
- OPPONENT_BRENDAN_10,
- OPPONENT_BRENDAN_11,
- OPPONENT_BRENDAN_12,
- OPPONENT_MAY_10,
- OPPONENT_MAY_11,
- OPPONENT_MAY_12,
- OPPONENT_JONAH,
- OPPONENT_HENRY,
- OPPONENT_ROGER,
- OPPONENT_ALEXA,
- OPPONENT_RUBEN,
- OPPONENT_KOJI,
- OPPONENT_WAYNE,
- OPPONENT_BYRON,
- OPPONENT_REED,
- OPPONENT_TISHA,
- OPPONENT_TORI_AND_TIA,
- OPPONENT_KIM_AND_IRIS,
- OPPONENT_TYRA_AND_IVY,
- OPPONENT_MEL_AND_PAUL,
- OPPONENT_JOHN_AND_JAY_1,
- OPPONENT_JOHN_AND_JAY_2,
- OPPONENT_JOHN_AND_JAY_3,
- OPPONENT_JOHN_AND_JAY_4,
- OPPONENT_JOHN_AND_JAY_5,
- OPPONENT_RELI_AND_IAN,
- OPPONENT_RITA_AND_SAM_1,
- OPPONENT_RITA_AND_SAM_2,
- OPPONENT_RITA_AND_SAM_3,
- OPPONENT_RITA_AND_SAM_4,
- OPPONENT_RITA_AND_SAM_5,
- OPPONENT_LISA_AND_RAY,
- OPPONENT_EUGENE,
-};
-
-#endif // GUARD_OPPONENT_CONSTANTS_H
diff --git a/include/party_menu.h b/include/party_menu.h
index f13c2c2df..3998054da 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -101,12 +101,6 @@ struct UnknownPokemonStruct2
/*0x1D*/ u8 language;
};
-extern u8 ewram[];
-#define ewram01000 (*(struct Unk2001000 *)(ewram + 0x01000))
-#define ewram1B000 (*(struct Unk201B000 *)(ewram + 0x1B000))
-#define ewram1B000_alt (*(struct Struct201B000 *)(ewram + 0x1B000))
-#define EWRAM_1B000 ewram1B000_alt
-
void CB2_PartyMenuMain(void);
void ChangeBattleTowerPartyMenuSelection(u8 taskId, s8 directionPressed);
void SetPartyMenuSettings(u8 menuType, u8 battleTypeFlags, TaskFunc menuHandlerFunc, u8 textId);
@@ -222,5 +216,6 @@ void PartyMenuTryGiveMonMail(u8 taskId, TaskFunc func);
void sub_806D668(u8 monIndex);
void TaughtMove(u8 taskId);
void StopTryingToTeachMove_806F588(u8 taskId);
+bool8 IsHMMove(u16 move);
#endif // GUARD_PARTY_MENU_H
diff --git a/include/player_pc.h b/include/player_pc.h
index 8debeda88..3302ec634 100644
--- a/include/player_pc.h
+++ b/include/player_pc.h
@@ -13,6 +13,7 @@
#define SWAP_ITEM_INDEX data[8]
#define SWITCH_MODE_ACTIVE data[9]
+// this is potentially an ewram access occuring in high ewram. TODO: investigate this further.
#define NEW_GAME_PC_ITEMS(i, type) ((u16)((u16 *)gNewGamePCItems + type)[i * 2])
// defined and used in the above macro
diff --git a/include/pokemon.h b/include/pokemon.h
index 4c3e27609..a1c30f1f3 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -32,7 +32,7 @@
#define MON_DATA_HP_EV 26
#define MON_DATA_ATK_EV 27
#define MON_DATA_DEF_EV 28
-#define MON_DATA_SPD_EV 29
+#define MON_DATA_SPEED_EV 29
#define MON_DATA_SPATK_EV 30
#define MON_DATA_SPDEF_EV 31
#define MON_DATA_FRIENDSHIP 32
@@ -45,7 +45,7 @@
#define MON_DATA_HP_IV 39
#define MON_DATA_ATK_IV 40
#define MON_DATA_DEF_IV 41
-#define MON_DATA_SPD_IV 42
+#define MON_DATA_SPEED_IV 42
#define MON_DATA_SPATK_IV 43
#define MON_DATA_SPDEF_IV 44
#define MON_DATA_IS_EGG 45
@@ -64,7 +64,7 @@
#define MON_DATA_MAX_HP 58
#define MON_DATA_ATK 59
#define MON_DATA_DEF 60
-#define MON_DATA_SPD 61
+#define MON_DATA_SPEED 61
#define MON_DATA_SPATK 62
#define MON_DATA_SPDEF 63
#define MON_DATA_MAIL 64
@@ -89,7 +89,7 @@
#define MON_DATA_83 83
#define MON_DATA_ATK2 84
#define MON_DATA_DEF2 85
-#define MON_DATA_SPD2 86
+#define MON_DATA_SPEED2 86
#define MON_DATA_SPATK2 87
#define MON_DATA_SPDEF2 88
@@ -288,29 +288,29 @@ struct Pokemon
struct UnknownPokemonStruct
{
- u16 species;
- u16 heldItem;
- u16 moves[4];
- u8 level;
- u8 ppBonuses;
- u8 hpEV;
- u8 attackEV;
- u8 defenseEV;
- u8 speedEV;
- u8 spAttackEV;
- u8 spDefenseEV;
- u32 otId;
- u32 hpIV:5;
- u32 attackIV:5;
- u32 defenseIV:5;
- u32 speedIV:5;
- u32 spAttackIV:5;
- u32 spDefenseIV:5;
- u32 gap:1;
- u32 altAbility:1;
- u32 personality;
- u8 nickname[POKEMON_NAME_LENGTH + 1];
- u8 friendship;
+ /*0x00*/u16 species;
+ /*0x02*/u16 heldItem;
+ /*0x04*/u16 moves[4];
+ /*0x0C*/u8 level;
+ /*0x0D*/u8 ppBonuses;
+ /*0x0E*/u8 hpEV;
+ /*0x0F*/u8 attackEV;
+ /*0x10*/u8 defenseEV;
+ /*0x11*/u8 speedEV;
+ /*0x12*/u8 spAttackEV;
+ /*0x13*/u8 spDefenseEV;
+ /*0x14*/u32 otId;
+ /*0x18*/u32 hpIV:5;
+ /*0x18*/u32 attackIV:5;
+ /*0x19*/u32 defenseIV:5;
+ /*0x19*/u32 speedIV:5;
+ /*0x1A*/u32 spAttackIV:5;
+ /*0x1A*/u32 spDefenseIV:5;
+ /*0x1B*/u32 gap:1;
+ /*0x1B*/u32 altAbility:1;
+ /*0x1C*/u32 personality;
+ /*0x20*/u8 nickname[POKEMON_NAME_LENGTH + 1];
+ /*0x2B*/u8 friendship;
};
struct BattlePokemon
@@ -541,11 +541,13 @@ union PokemonSubstruct *GetSubstruct(struct BoxPokemon *boxMon, u32 personality,
// but they are not used since some code erroneously omits the third arg.
// u32 GetMonData(struct Pokemon *mon, s32 field, u8 *data);
// u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data);
+// void SetMonData(struct Pokemon *mon, s32 field, const void *dataArg);
+// void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg);
u32 GetMonData();
u32 GetBoxMonData();
+void SetMonData();
+void SetBoxMonData();
-void SetMonData(struct Pokemon *mon, s32 field, const u8 *data);
-void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const u8 *data);
void CopyMon(void *dest, void *src, size_t size);
u8 GiveMonToPlayer(struct Pokemon *mon);
u8 SendMonToPC(struct Pokemon *mon);
@@ -576,6 +578,7 @@ void MonRestorePP(struct Pokemon *);
u8 *sub_803F378(u16 itemId);
+u16 SpeciesToPokedexNum(u16 species);
u16 NationalPokedexNumToSpecies(u16 nationalNum);
u16 NationalToHoennOrder(u16);
u16 SpeciesToNationalPokedexNum(u16);
@@ -609,6 +612,9 @@ const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *);
bool8 IsPokeSpriteNotFlipped(u16);
u8 GetLevelUpMovesBySpecies(u16, u16 *);
u8 TryIncrementMonLevel(struct Pokemon *);
+bool8 IsShiny(struct Pokemon *mon);
+
+struct Sprite *sub_80F7920(u16, u16, const u16 *);
#endif // GUARD_POKEMON_H
diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h
index c1b99c367..945e810a3 100644
--- a/include/pokemon_summary_screen.h
+++ b/include/pokemon_summary_screen.h
@@ -1,11 +1,65 @@
#ifndef GUARD_POKEMON_SUMMARY_SCREEN_H
#define GUARD_POKEMON_SUMMARY_SCREEN_H
+#include "main.h"
+#include "task.h"
+
extern const u8 *const gNatureNames[];
-void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, void (*)(void), int);
-void sub_809D9F0(struct Pokemon *party, u8, u8, void *, u32);
-void sub_809D9F0(struct Pokemon *, u8, u8, void *, u32);
+// The Pokemon Summary Screen can operate in different modes. Certain features,
+// such as move re-ordering, are available in the different modes.
+enum PokemonSummaryScreenMode
+{
+ PSS_MODE_NORMAL,
+ PSS_MODE_MOVES_ONLY,
+ PSS_MODE_SELECT_MOVE,
+ PSS_MODE_UNKNOWN, // TODO: this mode might be used by pokemon_storage_system
+ PSS_MODE_NO_MOVE_ORDER_EDIT,
+ PSS_MODE_PC_NORMAL,
+ PSS_MODE_PC_MOVES_ONLY,
+};
+
+enum PokemonSummaryScreenPage
+{
+ PSS_PAGE_INFO,
+ PSS_PAGE_SKILLS,
+ PSS_PAGE_BATTLE_MOVES,
+ PSS_PAGE_CONTEST_MOVES,
+};
+
+struct PokemonSummaryScreenStruct
+{
+ /*0x00*/ union {
+ struct Pokemon *partyMons;
+ struct BoxPokemon *boxMons;
+ } monList;
+ /*0x04*/ MainCallback callback;
+ /*0x08*/ u8 mode; // see enum PokemonSummaryScreenMode
+ /*0x09*/ u8 monIndex;
+ /*0x0A*/ u8 maxMonIndex;
+ /*0x0B*/ u8 page; // enum PokemonSummaryScreenPage
+ /*0x0C*/ u8 monSpriteId;
+ /*0x0D*/ u8 ballSpriteId;
+ /*0x0E*/ bool8 usingPC;
+ /*0x0F*/ u8 inputHandlingTaskId;
+ /*0x10*/ struct Pokemon loadedMon;
+ /*0x74*/ u8 loadGfxState;
+ /*0x75*/ u8 firstPage;
+ /*0x76*/ u8 lastPage;
+ /*0x77*/ u8 unk77;
+ /*0x78*/ u8 unk78;
+ /*0x79*/ u8 selectedMoveIndex;
+ /*0x7A*/ u8 switchMoveIndex;
+ /*0x7B*/ bool8 disableMoveOrderEditing;
+ /*0x7C*/ u16 moveToLearn;
+ /*0x7E*/ u8 headerTextId; // used as index into sPageHeaderTexts
+ /*0x7F*/ u8 headerActionTextId; // used as index into sPageHeaderTexts
+ /*0x80*/ u8 bgToggle;
+ /*0x84*/ TaskFunc unk84;
+};
+
+void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u8);
+void ShowSelectMovePokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u16);
u8 sub_809FA30(void);
u8 pokemon_ailments_get_primary(u32);
u8 GetMonStatusAndPokerus();
@@ -14,4 +68,5 @@ u8 *PokemonSummaryScreen_CopyPokemonLevel(u8 *dest, u8 level);
u8 PokemonSummaryScreen_CheckOT(struct Pokemon *pokemon);
bool8 CheckPartyPokerus(struct Pokemon *, u8);
+
#endif // GUARD_POKEMON_SUMMARY_SCREEN_H
diff --git a/include/pokenav.h b/include/pokenav.h
index 70cc4135f..f77f93e2d 100644
--- a/include/pokenav.h
+++ b/include/pokenav.h
@@ -1,6 +1,8 @@
#ifndef GUARD_POKENAV_H
#define GUARD_POKENAV_H
+#include "region_map.h"
+
struct UnkPokenavStruct_Sub {
/*0x0*/ u16 unk0;
/*0x2*/ u8 filler2[6];
@@ -30,28 +32,61 @@ struct UnkPokenavStruct_Sub2 {
/*0x26*/ u16 unk26;
};
+struct UnkPokenavStruct_Sub3 {
+ /*0x00*/s16 unk0;
+};
+
struct UnkUsePokeblockSub {
/*0*/ u8 fil0[2];
/*2*/ u8 partyIdx:5;
+ /*2*/ u16 unk2:9;
};
struct UnkPokenavStruct {
- /*0x0000*/ u8 filler0000[0x30c];
- /*0x0000*/ u16 unk030C;
- /*0x0000*/ u8 filler030E[0x6a9e];
+ /*0x0000*/ u8 filler0000[0x306];
+ /*0x0306*/ u16 unk306;
+ /*0x0306*/ u8 filler0308[0x4];
+ /*0x030C*/ union { // TODO: what?
+ u16 val;
+ struct UnkPokenavStruct_Sub3 unk030C;
+ } unk030C;
+ /*0x0310*/ u8 filler030E[0x6a90];
+ /*0x6DA0*/ u16 unk6DA0;
+ /*0x6DA2*/ u16 unk6DA2;
+ /*0x6DA4*/ u16 taskId6DA4;
+ /*0x6DA6*/ u8 filler6DA6[0x6];
/*0x6DAC*/ u8 unk6DAC;
- /*0x6DAD*/ u8 filler6DAD[0x8fd];
+ /*0x6DAD*/ u8 filler6DAD[0x6B];
+ /*0x6E18*/ struct RegionMap regionMap;
+ /*0x7698*/ u16 unk7698;
+ /*0x769A*/ u16 unk769A;
+ /*0x769C*/ u8 unk769C;
+ /*0x769D*/ u8 unk769D;
+ /*0x769E*/ u8 unk769E;
+ /*0x769F*/ u8 filler769F[0xB];
/*0x76AA*/ u8 unk76AA;
/*0x76AB*/ u8 filler76AB[0x10bd];
/*0x8768*/ struct UnkPokenavStruct_Sub2 *unk8768;
- /*0x876C*/ u8 filler876C[0x6e];
+ /*0x876C*/ u8 filler876C[0x2];
+ /*0x876E*/ u8 unk876E;
+ /*0x876F*/ u8 filler876F[0x7];
+ /*0x8776*/ u16 unk8776;
+ /*0x8778*/ u16 unk8778;
+ /*0x877A*/ u8 filler877A[0xE];
+ /*0x8788*/ u8 unk8788[0x40];
+ /*0x87C8*/ u8 unk87C8;
+ /*0x87C9*/ u8 filler87C9;
+ /*0x87CA*/ u8 unk87CA;
+ /*0x87CB*/ u8 filler87CB[0xF];
/*0x87DA*/ s16 unk87DA;
/*0x87DC*/ s16 unk87DC;
/*0x87DE*/ s16 unk87DE;
/*0x87E0*/ void *unk87E0;
/*0x87E4*/ u8 filler87E4[0x44];
/*0x8828*/ u8 unk8828;
- /*0x8829*/ u8 filler8829[0x113];
+ /*0x8829*/ u8 unk8829[3][64];
+ /*0x88E9*/ u8 unk88E9[3][24];
+ /*0x8931*/ u8 unk8931[11];
/*0x893C*/ struct UnkUsePokeblockSub unk893c[0x1ab];
/*0x8fe8*/ u8 fil8fe8[1];
/*0x8fe9*/ s8 unk8fe9;
@@ -61,11 +96,20 @@ struct UnkPokenavStruct {
/*0x9004*/ u8 unk9004[3][20];
/*0x9040*/ u8 unk9040[0x304];
/*0x9344*/ u8 unk9344;
- /*0x9345*/ u8 filler9345[0x3ba3];
+ /*0x9345*/ u8 filler9345[0x2955];
+ /*0xBC9A*/ u8 unkBC9A;
+ /*0xBC9B*/ u8 unkBC9B;
+ /*0xBC9C*/ u8 unkBC9C[22][200];
+ /*0xCDCC*/ const u8 *unkCDCC[16][2];
+ /*0xCE4C*/ u16 unkCE4C;
+ /*0xCE4E*/ u16 unkCE4E;
+ /*0xCE50*/ u16 unkCE50;
+ /*0xCE52*/ u16 palettesCE52[30];
+ /*0xCE8E*/ u16 palettesCE8E[0x2D];
/*0xCEE8*/ struct UnkPokenavStruct_Sub unkCEE8[78];
/*0xD158*/ u16 unkD158;
/*0xD15A*/ u8 fillerD15A[6];
- /*0xD162*/ u16 unkD160;
+ /*0xD160*/ u16 unkD160;
/*0xD162*/ u8 unkD162[2];
/*0xD164*/ struct UnkPokenavStruct_Sub1 unkD164;
};
diff --git a/include/rng.h b/include/random.h
index dec8c6e26..a928a97b5 100644
--- a/include/rng.h
+++ b/include/random.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_RNG_H
-#define GUARD_RNG_H
+#ifndef GUARD_RANDOM_H
+#define GUARD_RANDOM_H
extern u32 gRngValue;
@@ -12,4 +12,5 @@ u16 Random(void);
//Sets the initial seed value of the pseudorandom number generator
void SeedRng(u16 seed);
-#endif // GUARD_RNG_H
+#endif // GUARD_RANDOM_H
+
diff --git a/include/record_mixing.h b/include/record_mixing.h
index ca60b04a7..96105f3f7 100644
--- a/include/record_mixing.h
+++ b/include/record_mixing.h
@@ -21,7 +21,7 @@ u16 *GetPlayerRecvBuffer(u8 player);
void sub_80B9A78(void);
void sub_80B9A88(u8 *a);
void sub_80B9B1C(u8 *a, size_t size, u8 index);
-void sub_80B9B70(u8 *a, size_t size, u8 index);
+void sub_80B9B70(void *a, u32 size, u8 index);
u8 sub_80B9BBC(u16 *a);
void sub_80B9BC4(u8 *, size_t, u8[][2], u8 d, u8 e);
u8 sub_80B9C4C(u8 *a);
diff --git a/include/region_map.h b/include/region_map.h
index 3d970fa0a..4061c5e3d 100644
--- a/include/region_map.h
+++ b/include/region_map.h
@@ -3,8 +3,8 @@
struct RegionMap
{
- u8 mapSecName[0x14];
- u16 mapSecId;
+ u8 mapSectionName[20];
+ u16 mapSectionId;
u8 unk16;
u8 everGrandeCityArea;
u8 (*inputCallback)(void);
@@ -62,10 +62,10 @@ void sub_80FAEC4(void);
u8 sub_80FAFC0(void);
void UpdateRegionMapVideoRegs(void);
void sub_80FB2A4(s16, s16);
-u16 sub_80FBA04(u16 mapSecId);
+u16 sub_80FBA04(u16 mapSectionId);
void CreateRegionMapCursor(u16, u16);
void CreateRegionMapPlayerIcon(u16, u16);
-const u8 *GetMapSectionName(u8 *dest, u16 mapSecId, u16 length);
+const u8 *GetMapSectionName(u8 *dest, u16 mapSectionId, u16 length);
const u8 *CopyMapName(u8 *dest, u16 b);
const u8 *CopyLocationName(u8 *dest, u16 b);
diff --git a/include/region_map_sections.h b/include/region_map_sections.h
new file mode 100755
index 000000000..a3bd60b59
--- /dev/null
+++ b/include/region_map_sections.h
@@ -0,0 +1,60 @@
+#ifndef GUARD_REGIONMAPSEC_H
+#define GUARD_REGIONMAPSEC_H
+
+enum
+{
+ MAPSEC_LittlerootTown, // 0x00
+ MAPSEC_OldaleTown, // 0x01
+ MAPSEC_DewfordTown, // 0x02
+ MAPSEC_LavaridgeTown, // 0x03
+ MAPSEC_FallarborTown, // 0x04
+ MAPSEC_VerdanturfTown, // 0x05
+ MAPSEC_PacifidlogTown, // 0x06
+ MAPSEC_PetalburgCity, // 0x07
+ MAPSEC_SlateportCity, // 0x08
+ MAPSEC_MauvilleCity, // 0x09
+ MAPSEC_RustboroCity, // 0x0A
+ MAPSEC_FortreeCity, // 0x0B
+ MAPSEC_LilycoveCity, // 0x0C
+ MAPSEC_MossdeepCity, // 0x0D
+ MAPSEC_SootopolisCity, // 0x0E
+ MAPSEC_EverGrandeCity, // 0x0F
+ MAPSEC_Route101, // 0x10
+ MAPSEC_Route102, // 0x11
+ MAPSEC_Route103, // 0x12
+ MAPSEC_Route104, // 0x13
+ MAPSEC_Route105, // 0x14
+ MAPSEC_Route106, // 0x15
+ MAPSEC_Route107, // 0x16
+ MAPSEC_Route108, // 0x17
+ MAPSEC_Route109, // 0x18
+ MAPSEC_Route110, // 0x19
+ MAPSEC_Route111, // 0x1A
+ MAPSEC_Route112, // 0x1B
+ MAPSEC_Route113, // 0x1C
+ MAPSEC_Route114, // 0x1D
+ MAPSEC_Route115, // 0x1E
+ MAPSEC_Route116, // 0x1F
+ MAPSEC_Route117, // 0x20
+ MAPSEC_Route118, // 0x21
+ MAPSEC_Route119, // 0x22
+ MAPSEC_Route120, // 0x23
+ MAPSEC_Route121, // 0x24
+ MAPSEC_Route122, // 0x25
+ MAPSEC_Route123, // 0x26
+ MAPSEC_Route124, // 0x27
+ MAPSEC_Route125, // 0x28
+ MAPSEC_Route126, // 0x29
+ MAPSEC_Route127, // 0x2A
+ MAPSEC_Route128, // 0x2B
+ MAPSEC_Route129, // 0x2C
+ MAPSEC_Route130, // 0x2D
+ MAPSEC_Route131, // 0x2E
+ MAPSEC_Route132, // 0x2F
+ MAPSEC_Route133, // 0x30
+ MAPSEC_Route134, // 0x31
+ MAPSEC_MtChimney = 0x38, // 0x38
+ MAPSEC_Nothing = 0x58, // 0x58
+};
+
+#endif // GUARD_REGIONMAPSEC_H
diff --git a/include/rom3.h b/include/rom3.h
index 81bb56df1..19c6def25 100644
--- a/include/rom3.h
+++ b/include/rom3.h
@@ -1,6 +1,12 @@
#ifndef GUARD_ROM3_H
#define GUARD_ROM3_H
+struct HpAndStatus
+{
+ u16 hp;
+ u32 status;
+};
+
struct DisableStruct;
void sub_800B858(void);
@@ -55,7 +61,7 @@ void Emitcmd44(u8 a, u16 b);
void EmitFaintingCry(u8 a);
void EmitIntroSlide(u8 a, u8 b);
void EmitTrainerBallThrow(u8 a);
-void Emitcmd48(u8 a, u8 *b, u8 c);
+void EmitDrawPartyStatusSummary(u8 a, struct HpAndStatus *hpAndStatus, u8 c); //0x30
void Emitcmd49(u8 a);
void Emitcmd50(u8 a);
void EmitSpriteInvisibility(u8 a, u8 b);
diff --git a/include/rom6.h b/include/rom6.h
index e7a3ba48e..8c3691624 100644
--- a/include/rom6.h
+++ b/include/rom6.h
@@ -1,6 +1,8 @@
#ifndef GUARD_ROM6_H
#define GUARD_ROM6_H
+extern struct MapPosition gUnknown_0203923C;
+
bool8 npc_before_player_of_type(u8);
u8 oei_task_add(void);
diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h
index 94e535df5..70bd6fe5a 100644
--- a/include/rom_8077ABC.h
+++ b/include/rom_8077ABC.h
@@ -12,10 +12,16 @@ enum
ANIM_BANK_DEF_PARTNER
};
+struct Struct_sub_8078914 {
+ u8 *field_0;
+ u8 *field_4;
+ u8 field_8;
+};
+
u8 sub_8077ABC(u8, u8);
u8 sub_8077E44(u8 slot, u16 species, u8 a3);
u8 GetAnimBankSpriteId(u8 side);
-void StoreSpriteCallbackInData6(struct Sprite *sprite, void(*callback)(struct Sprite *));
+void StoreSpriteCallbackInData(struct Sprite *sprite, void(*callback)(struct Sprite *));
void sub_8078314(struct Sprite *sprite);
void sub_8078364(struct Sprite *sprite);
void sub_8078458(struct Sprite *sprite);
@@ -54,7 +60,7 @@ void sub_80797EC(struct Task *task);
void sub_8079814(u8 taskId);
void sub_8079A64(u8 sprite);
u16 sub_8079B10(u8 sprite);
-void sub_8079BF4(s16 *bottom, s16 *top, void *ptr);
+void sub_8079BF4(s16 *bottom, s16 *top, const void *ptr);
void *sub_8079BFC(s16 bottom, s16 top);
void sub_8079E24();
u8 sub_8079E90(u8 slot);
@@ -64,5 +70,42 @@ void sub_807A850(struct Task *task, u8 taskId);
void sub_807A8D4(struct Sprite *sprite);
void sub_807A960(struct Sprite *sprite);
void sub_8078A34(struct Sprite *sprite);
+void sub_80787B0(struct Sprite *sprite, u8);
+void sub_8078764(struct Sprite *sprite, u8);
+void sub_8078B34(struct Sprite *sprite);
+void sub_8078D60(struct Sprite *sprite);
+void sub_80786EC(struct Sprite *sprite);
+void sub_80782D8(struct Sprite *sprite);
+void sub_8078CC0(struct Sprite *sprite);
+void sub_8078600(struct Sprite *sprite);
+void sub_8078504(struct Sprite *sprite);
+void sub_807861C(struct Sprite *sprite);
+void sub_8078650(struct Sprite *sprite);
+void sub_8078394(struct Sprite *sprite);
+void sub_80785E4(struct Sprite *sprite);
+void sub_8078278(struct Sprite *sprite);
+void sub_8078C00(struct Sprite *sprite);
+void sub_8078114(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);
+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);
+u8 sub_8077EE4(u8 slot, u8 a2);
+u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7);
+u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4);
+s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8 a1);
+void obj_delete_but_dont_free_vram(struct Sprite *sprite);
+void sub_8079108(u16 a1, bool8 a2);
+void sub_80798F4(struct Task *task, u8 a2, const void *a3);
+bool8 sub_807992C(struct Task *task);
+u8 sub_8077FC0(u8 slot);
+void move_anim_8074EE0(struct Sprite *sprite);
+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);
#endif // GUARD_ROM_8077ABC_H
diff --git a/include/save.h b/include/save.h
index 6c47c6f60..c35ad547a 100644
--- a/include/save.h
+++ b/include/save.h
@@ -3,7 +3,7 @@
struct SaveSectionLocation
{
- void *data;
+ u8 *data;
u16 size;
};
diff --git a/include/script_movement.h b/include/script_movement.h
index dc6d7e51b..17c1abed7 100644
--- a/include/script_movement.h
+++ b/include/script_movement.h
@@ -1,7 +1,7 @@
#ifndef GUARD_SCRIPT_MOVEMENT_H
#define GUARD_SCRIPT_MOVEMENT_H
-bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, u8 *);
+bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, const u8 *);
bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8);
void sub_80A2178(void);
diff --git a/include/script_pokemon_80F9.h b/include/script_pokemon_80F9.h
index fa5d57f0e..eed32f5cf 100644
--- a/include/script_pokemon_80F9.h
+++ b/include/script_pokemon_80F9.h
@@ -7,8 +7,6 @@ struct UnknownStruct2018000
u8 unk8;
};
-extern struct UnknownStruct2018000 unk_2018000;
-
void OpenPartyMenuFromScriptContext(u8 taskId);
void sub_80F9C00(void);
void sub_80F9E1C(void);
diff --git a/include/secret_base.h b/include/secret_base.h
index bb747bb02..abe5d781f 100644
--- a/include/secret_base.h
+++ b/include/secret_base.h
@@ -1,17 +1,24 @@
#ifndef GUARD_SECRET_BASE_H
#define GUARD_SECRET_BASE_H
+// Maximum number of secret bases the game can store. This include 1 for the player, and up to 19 others from linked players.
+#define MAX_SECRET_BASES 20
+
void ResetSecretBases(void);
-void sub_80BB970(struct MapEvents *);
+void sub_80BB5E4(void);
+void sub_80BB63C(void);
+void sub_80BB800(void);
+void sub_80BB970(struct MapEvents *events);
u8 sub_80BBB24(void);
-void sub_80BBCCC(u8);
-void sub_80BC038();
+void sub_80BBCCC(u8 flagIn);
+void sub_80BBFD8(struct MapPosition *, struct MapEvents *);
+void sub_80BC038(struct MapPosition *, struct MapEvents *);
u8 sub_80BC050();
-u8 *GetSecretBaseMapName(u8 *);
+u8 *GetSecretBaseMapName(u8 *dest);
void sub_80BC300();
-const u8 sub_80BCCA4(u8);
-u8 *sub_80BCCE8(void);
-void sub_80BCF1C(u8);
-void sub_80BD674(void *, u32, u8);
+u8 sub_80BCCA4(u8 secretBaseIndex);
+const u8 *sub_80BCCE8(void);
+void sub_80BCF1C(u8 taskId);
+void sub_80BD674(void *playerRecords, u32 size, u8 c);
#endif // GUARD_SECRET_BASE_H
diff --git a/include/songs.h b/include/songs.h
deleted file mode 100644
index afd26d683..000000000
--- a/include/songs.h
+++ /dev/null
@@ -1,374 +0,0 @@
-#ifndef GUARD_SONGS_H
-#define GUARD_SONGS_H
-
-enum
-{
- /*0x00*/ SE_STOP,
- /*0x01*/ SE_KAIFUKU,
- /*0x02*/ SE_PC_LOGON,
- /*0x03*/ SE_PC_OFF,
- /*0x04*/ SE_PC_ON,
- /*0x05*/ SE_SELECT,
- /*0x06*/ SE_WIN_OPEN,
- /*0x07*/ SE_WALL_HIT,
- /*0x08*/ SE_DOOR,
- /*0x09*/ SE_KAIDAN,
- /*0x0A*/ SE_DANSA,
- /*0x0B*/ SE_JITENSYA,
- /*0x0C*/ SE_KOUKA_L,
- /*0x0D*/ SE_KOUKA_M,
- /*0x0E*/ SE_KOUKA_H,
- /*0x0F*/ SE_BOWA2,
- /*0x10*/ SE_POKE_DEAD,
- /*0x11*/ SE_NIGERU,
- /*0x12*/ SE_JIDO_DOA,
- /*0x13*/ SE_NAMINORI,
- /*0x14*/ SE_BAN,
- /*0x15*/ SE_PIN,
- /*0x16*/ SE_BOO,
- /*0x17*/ SE_BOWA,
- /*0x18*/ SE_JYUNI,
- /*0x19*/ SE_A,
- /*0x1A*/ SE_I,
- /*0x1B*/ SE_U,
- /*0x1C*/ SE_E,
- /*0x1D*/ SE_O,
- /*0x1E*/ SE_N,
- /*0x1F*/ SE_SEIKAI,
- /*0x20*/ SE_HAZURE,
- /*0x21*/ SE_EXP,
- /*0x22*/ SE_JITE_PYOKO,
- /*0x23*/ SE_MU_PACHI,
- /*0x24*/ SE_TK_KASYA,
- /*0x25*/ SE_FU_ZAKU,
- /*0x26*/ SE_FU_ZAKU2,
- /*0x27*/ SE_FU_ZUZUZU,
- /*0x28*/ SE_RU_GASHIN,
- /*0x29*/ SE_RU_GASYAN,
- /*0x2A*/ SE_RU_BARI,
- /*0x2B*/ SE_RU_HYUU,
- /*0x2C*/ SE_KI_GASYAN,
- /*0x2D*/ SE_TK_WARPIN,
- /*0x2E*/ SE_TK_WARPOUT,
- /*0x2F*/ SE_TU_SAA,
- /*0x30*/ SE_HI_TURUN,
- /*0x31*/ SE_TRACK_MOVE,
- /*0x32*/ SE_TRACK_STOP,
- /*0x33*/ SE_TRACK_HAIK,
- /*0x34*/ SE_TRACK_DOOR,
- /*0x35*/ SE_MOTER,
- /*0x36*/ SE_CARD,
- /*0x37*/ SE_SAVE,
- /*0x38*/ SE_KON,
- /*0x39*/ SE_KON2,
- /*0x3A*/ SE_KON3,
- /*0x3B*/ SE_KON4,
- /*0x3C*/ SE_SUIKOMU,
- /*0x3D*/ SE_NAGERU,
- SE_TOY_C,
- SE_TOY_D,
- SE_TOY_E,
- SE_TOY_F,
- SE_TOY_G,
- SE_TOY_A,
- SE_TOY_B,
- SE_TOY_C1,
- SE_MIZU,
- SE_HASHI,
- SE_DAUGI,
- SE_PINPON,
- SE_FUUSEN1,
- SE_FUUSEN2,
- SE_FUUSEN3,
- SE_TOY_KABE,
- SE_TOY_DANGO,
- SE_DOKU,
- SE_ESUKA,
- SE_T_AME,
- SE_T_AME_E,
- SE_T_OOAME,
- SE_T_OOAME_E,
- SE_T_KOAME,
- SE_T_KOAME_E,
- SE_T_KAMI,
- SE_T_KAMI2,
- SE_ELEBETA,
- /*0x5A*/ SE_HINSI,
- /*0x5B*/ SE_EXPMAX,
- /*0x5C*/ SE_TAMAKORO,
- /*0x5D*/ SE_TAMAKORO_E,
- /*0x5E*/ SE_BASABASA,
- /*0x5F*/ SE_REGI,
- SE_C_GAJI,
- SE_C_MAKU_U,
- SE_C_MAKU_D,
- SE_C_PASI,
- SE_C_SYU,
- SE_C_PIKON,
- /*0x66*/ SE_REAPOKE,
- /*0x67*/ SE_OP_BASYU,
- /*0x68*/ SE_BT_START,
- SE_DENDOU,
- SE_JIHANKI,
- SE_TAMA,
- SE_Z_SCROLL,
- /*0x6D*/ SE_Z_PAGE,
- /*0x6E*/ SE_PN_ON,
- /*0x6F*/ SE_PN_OFF,
- /*0x70*/ SE_Z_SEARCH,
- /*0x71*/ SE_TAMAGO,
- /*0x72*/ SE_TB_START,
- /*0x73*/ SE_TB_KON,
- /*0x74*/ SE_TB_KARA,
- /*0x75*/ SE_BIDORO,
- /*0x76*/ SE_W085,
- /*0x77*/ SE_W085B,
- /*0x78*/ SE_W231,
- /*0x79*/ SE_W171,
- /*0x7A*/ SE_W233,
- /*0x7B*/ SE_W233B,
- /*0x7C*/ SE_W145,
- /*0x7D*/ SE_W145B,
- /*0x7E*/ SE_W145C,
- /*0x7F*/ SE_W240,
- /*0x80*/ SE_W015,
- /*0x81*/ SE_W081,
- /*0x82*/ SE_W081B,
- /*0x83*/ SE_W088,
- /*0x84*/ SE_W016,
- /*0x85*/ SE_W016B,
- /*0x86*/ SE_W003,
- /*0x87*/ SE_W104,
- /*0x88*/ SE_W013,
- /*0x89*/ SE_W196,
- /*0x8A*/ SE_W086,
- /*0x8B*/ SE_W004,
- /*0x8C*/ SE_W025,
- /*0x8D*/ SE_W025B,
- SE_W152,
- SE_W026,
- SE_W172,
- SE_W172B,
- SE_W053,
- SE_W007,
- SE_W092,
- SE_W221,
- SE_W221B,
- SE_W052,
- SE_W036,
- SE_W059,
- SE_W059B,
- SE_W010,
- SE_W011,
- SE_W017,
- SE_W019,
- SE_W028,
- SE_W013B,
- SE_W044,
- SE_W029,
- SE_W057,
- SE_W056,
- SE_W250,
- SE_W030,
- SE_W039,
- SE_W054,
- SE_W077,
- SE_W020,
- SE_W082,
- SE_W047,
- SE_W195,
- SE_W006,
- SE_W091,
- SE_W146,
- SE_W120,
- SE_W153,
- SE_W071B,
- SE_W071,
- SE_W103,
- /*0xB6*/ SE_W062,
- /*0xB7*/ SE_W062B,
- /*0xB8*/ SE_W048,
- /*0xB9*/ SE_W187,
- /*0xBA*/ SE_W118,
- /*0xBB*/ SE_W155,
- /*0xBC*/ SE_W122,
- /*0xBD*/ SE_W060,
- /*0xBE*/ SE_W185,
- /*0xBF*/ SE_W014,
- /*0xC0*/ SE_W043,
- /*0xC1*/ SE_W207,
- /*0xC2*/ SE_W207B,
- /*0xC3*/ SE_W215,
- /*0xC4*/ SE_W109,
- /*0xC5*/ SE_W173,
- /*0xC6*/ SE_W280,
- /*0xC7*/ SE_W202,
- /*0xC8*/ SE_W060B,
- /*0xC9*/ SE_W076,
- /*0xCA*/ SE_W080,
- /*0xCB*/ SE_W100,
- /*0xCC*/ SE_W107,
- SE_W166,
- SE_W129,
- SE_W115,
- SE_W112,
- SE_W197,
- SE_W199,
- SE_W236,
- SE_W204,
- SE_W268,
- SE_W070,
- SE_W063,
- SE_W127,
- SE_W179,
- SE_W151,
- SE_W201,
- SE_W161,
- SE_W161B,
- SE_W227,
- SE_W227B,
- SE_W226,
- SE_W208,
- SE_W213,
- SE_W213B,
- SE_W234,
- SE_W260,
- SE_W328,
- SE_W320,
- SE_W255,
- SE_W291,
- SE_W089,
- SE_W239,
- SE_W230,
- SE_W281,
- SE_W327,
- SE_W287,
- SE_W257,
- SE_W253,
- SE_W258,
- SE_W322,
- SE_W298,
- SE_W287B,
- SE_W114,
- SE_W063B,
- BGM_STOP = 349,
- BGM_TETSUJI,
- BGM_FIELD13,
- BGM_KACHI22,
- BGM_KACHI2,
- BGM_KACHI3,
- BGM_KACHI5,
- BGM_PCC,
- BGM_NIBI,
- BGM_SUIKUN,
- BGM_DOORO1,
- BGM_DOORO_X1,
- BGM_DOORO_X3,
- BGM_MACHI_S2,
- BGM_MACHI_S4,
- BGM_GIM,
- BGM_NAMINORI,
- BGM_DAN01,
- /*0x16F*/ BGM_FANFA1,
- /*0x170*/ BGM_ME_ASA,
- /*0x171*/ BGM_ME_BACHI,
- /*0x172*/ BGM_FANFA4,
- /*0x173*/ BGM_FANFA5,
- /*0x174*/ BGM_ME_WAZA,
- /*0x175*/ BGM_BIJYUTU,
- /*0x176*/ BGM_DOORO_X4,
- /*0x177*/ BGM_FUNE_KAN,
- /*0x178*/ BGM_ME_SHINKA,
- /*0x179*/ BGM_SHINKA,
- /*0x17A*/ BGM_ME_WASURE,
- /*0x17B*/ BGM_SYOUJOEYE,
- /*0x17C*/ BGM_BOYEYE,
- /*0x17D*/ BGM_DAN02,
- /*0x17E*/ BGM_MACHI_S3,
- /*0x17F*/ BGM_ODAMAKI,
- /*0x180*/ BGM_B_TOWER,
- /*0x181*/ BGM_SWIMEYE,
- /*0x182*/ BGM_DAN03,
- /*0x183*/ BGM_ME_KINOMI,
- /*0x184*/ BGM_ME_TAMA,
- /*0x185*/ BGM_ME_B_BIG,
- /*0x186*/ BGM_ME_B_SMALL,
- /*0x187*/ BGM_ME_ZANNEN,
- /*0x188*/ BGM_BD_TIME,
- /*0x189*/ BGM_TEST1,
- /*0x18A*/ BGM_TEST2,
- /*0x18B*/ BGM_TEST3,
- /*0x18C*/ BGM_TEST4,
- /*0x18D*/ BGM_TEST,
- /*0x18E*/ BGM_GOMACHI0,
- /*0x18F*/ BGM_GOTOWN,
- /*0x190*/ BGM_POKECEN,
- /*0x191*/ BGM_NEXTROAD,
- /*0x192*/ BGM_GRANROAD,
- /*0x193*/ BGM_CYCLING,
- BGM_FRIENDLY,
- BGM_MISHIRO,
- BGM_TOZAN,
- BGM_GIRLEYE,
- BGM_MINAMO,
- BGM_ASHROAD,
- BGM_EVENT0,
- BGM_DEEPDEEP,
- BGM_KACHI1,
- BGM_TITLE3,
- BGM_DEMO1,
- BGM_GIRL_SUP,
- BGM_HAGESHII,
- BGM_KAKKOII,
- BGM_KAZANBAI,
- BGM_AQA_0,
- BGM_TSURETEK,
- BGM_BOY_SUP,
- BGM_RAINBOW,
- BGM_AYASII,
- BGM_KACHI4,
- BGM_ROPEWAY,
- BGM_CASINO,
- BGM_HIGHTOWN,
- BGM_SAFARI,
- BGM_C_ROAD,
- BGM_AJITO,
- BGM_M_BOAT,
- BGM_M_DUNGON,
- BGM_FINECITY,
- BGM_MACHUPI,
- BGM_P_SCHOOL,
- BGM_DENDOU,
- BGM_TONEKUSA,
- BGM_MABOROSI,
- BGM_CON_FAN,
- BGM_CONTEST0,
- BGM_MGM0,
- BGM_T_BATTLE,
- BGM_OOAME,
- BGM_HIDERI,
- BGM_RUNECITY,
- BGM_CON_K,
- BGM_EIKOU_R,
- BGM_KARAKURI,
- BGM_HUTAGO,
- BGM_SITENNOU,
- BGM_YAMA_EYE,
- BGM_CONLOBBY,
- BGM_INTER_V,
- BGM_DAIGO,
- BGM_THANKFOR,
- BGM_END,
- BGM_BATTLE27, // wild
- BGM_BATTLE31, // aqua/magma grunt
- BGM_BATTLE20, // trainer
- BGM_BATTLE32, // gym leader
- BGM_BATTLE33, // champion
- BGM_BATTLE36, // regi
- BGM_BATTLE34, // weather trio
- BGM_BATTLE35, // rival
- BGM_BATTLE38, // elite four
- BGM_BATTLE30, // aqua/magma leader
-};
-
-#endif // GUARD_SONGS_H
diff --git a/include/species.h b/include/species.h
deleted file mode 100644
index 9ab0565cb..000000000
--- a/include/species.h
+++ /dev/null
@@ -1,453 +0,0 @@
-#ifndef GUARD_SPECIES_H
-#define GUARD_SPECIES_H
-
-enum
-{
- SPECIES_NONE, // 0x000
- SPECIES_BULBASAUR, // 0x001
- SPECIES_IVYSAUR, // 0x002
- SPECIES_VENUSAUR, // 0x003
- SPECIES_CHARMANDER, // 0x004
- SPECIES_CHARMELEON, // 0x005
- SPECIES_CHARIZARD, // 0x006
- SPECIES_SQUIRTLE, // 0x007
- SPECIES_WARTORTLE, // 0x008
- SPECIES_BLASTOISE, // 0x009
- SPECIES_CATERPIE, // 0x00a
- SPECIES_METAPOD, // 0x00b
- SPECIES_BUTTERFREE, // 0x00c
- SPECIES_WEEDLE, // 0x00d
- SPECIES_KAKUNA, // 0x00e
- SPECIES_BEEDRILL, // 0x00f
- SPECIES_PIDGEY, // 0x010
- SPECIES_PIDGEOTTO, // 0x011
- SPECIES_PIDGEOT, // 0x012
- SPECIES_RATTATA, // 0x013
- SPECIES_RATICATE, // 0x014
- SPECIES_SPEAROW, // 0x015
- SPECIES_FEAROW, // 0x016
- SPECIES_EKANS, // 0x017
- SPECIES_ARBOK, // 0x018
- SPECIES_PIKACHU, // 0x019
- SPECIES_RAICHU, // 0x01a
- SPECIES_SANDSHREW, // 0x01b
- SPECIES_SANDSLASH, // 0x01c
- SPECIES_NIDORAN_F, // 0x01d
- SPECIES_NIDORINA, // 0x01e
- SPECIES_NIDOQUEEN, // 0x01f
- SPECIES_NIDORAN_M, // 0x020
- SPECIES_NIDORINO, // 0x021
- SPECIES_NIDOKING, // 0x022
- SPECIES_CLEFAIRY, // 0x023
- SPECIES_CLEFABLE, // 0x024
- SPECIES_VULPIX, // 0x025
- SPECIES_NINETALES, // 0x026
- SPECIES_JIGGLYPUFF, // 0x027
- SPECIES_WIGGLYTUFF, // 0x028
- SPECIES_ZUBAT, // 0x029
- SPECIES_GOLBAT, // 0x02a
- SPECIES_ODDISH, // 0x02b
- SPECIES_GLOOM, // 0x02c
- SPECIES_VILEPLUME, // 0x02d
- SPECIES_PARAS, // 0x02e
- SPECIES_PARASECT, // 0x02f
- SPECIES_VENONAT, // 0x030
- SPECIES_VENOMOTH, // 0x031
- SPECIES_DIGLETT, // 0x032
- SPECIES_DUGTRIO, // 0x033
- SPECIES_MEOWTH, // 0x034
- SPECIES_PERSIAN, // 0x035
- SPECIES_PSYDUCK, // 0x036
- SPECIES_GOLDUCK, // 0x037
- SPECIES_MANKEY, // 0x038
- SPECIES_PRIMEAPE, // 0x039
- SPECIES_GROWLITHE, // 0x03a
- SPECIES_ARCANINE, // 0x03b
- SPECIES_POLIWAG, // 0x03c
- SPECIES_POLIWHIRL, // 0x03d
- SPECIES_POLIWRATH, // 0x03e
- SPECIES_ABRA, // 0x03f
- SPECIES_KADABRA, // 0x040
- SPECIES_ALAKAZAM, // 0x041
- SPECIES_MACHOP, // 0x042
- SPECIES_MACHOKE, // 0x043
- SPECIES_MACHAMP, // 0x044
- SPECIES_BELLSPROUT, // 0x045
- SPECIES_WEEPINBELL, // 0x046
- SPECIES_VICTREEBEL, // 0x047
- SPECIES_TENTACOOL, // 0x048
- SPECIES_TENTACRUEL, // 0x049
- SPECIES_GEODUDE, // 0x04a
- SPECIES_GRAVELER, // 0x04b
- SPECIES_GOLEM, // 0x04c
- SPECIES_PONYTA, // 0x04d
- SPECIES_RAPIDASH, // 0x04e
- SPECIES_SLOWPOKE, // 0x04f
- SPECIES_SLOWBRO, // 0x050
- SPECIES_MAGNEMITE, // 0x051
- SPECIES_MAGNETON, // 0x052
- SPECIES_FARFETCHD, // 0x053
- SPECIES_DODUO, // 0x054
- SPECIES_DODRIO, // 0x055
- SPECIES_SEEL, // 0x056
- SPECIES_DEWGONG, // 0x057
- SPECIES_GRIMER, // 0x058
- SPECIES_MUK, // 0x059
- SPECIES_SHELLDER, // 0x05a
- SPECIES_CLOYSTER, // 0x05b
- SPECIES_GASTLY, // 0x05c
- SPECIES_HAUNTER, // 0x05d
- SPECIES_GENGAR, // 0x05e
- SPECIES_ONIX, // 0x05f
- SPECIES_DROWZEE, // 0x060
- SPECIES_HYPNO, // 0x061
- SPECIES_KRABBY, // 0x062
- SPECIES_KINGLER, // 0x063
- SPECIES_VOLTORB, // 0x064
- SPECIES_ELECTRODE, // 0x065
- SPECIES_EXEGGCUTE, // 0x066
- SPECIES_EXEGGUTOR, // 0x067
- SPECIES_CUBONE, // 0x068
- SPECIES_MAROWAK, // 0x069
- SPECIES_HITMONLEE, // 0x06a
- SPECIES_HITMONCHAN, // 0x06b
- SPECIES_LICKITUNG, // 0x06c
- SPECIES_KOFFING, // 0x06d
- SPECIES_WEEZING, // 0x06e
- SPECIES_RHYHORN, // 0x06f
- SPECIES_RHYDON, // 0x070
- SPECIES_CHANSEY, // 0x071
- SPECIES_TANGELA, // 0x072
- SPECIES_KANGASKHAN, // 0x073
- SPECIES_HORSEA, // 0x074
- SPECIES_SEADRA, // 0x075
- SPECIES_GOLDEEN, // 0x076
- SPECIES_SEAKING, // 0x077
- SPECIES_STARYU, // 0x078
- SPECIES_STARMIE, // 0x079
- SPECIES_MR_MIME, // 0x07a
- SPECIES_SCYTHER, // 0x07b
- SPECIES_JYNX, // 0x07c
- SPECIES_ELECTABUZZ, // 0x07d
- SPECIES_MAGMAR, // 0x07e
- SPECIES_PINSIR, // 0x07f
- SPECIES_TAUROS, // 0x080
- SPECIES_MAGIKARP, // 0x081
- SPECIES_GYARADOS, // 0x082
- SPECIES_LAPRAS, // 0x083
- SPECIES_DITTO, // 0x084
- SPECIES_EEVEE, // 0x085
- SPECIES_VAPOREON, // 0x086
- SPECIES_JOLTEON, // 0x087
- SPECIES_FLAREON, // 0x088
- SPECIES_PORYGON, // 0x089
- SPECIES_OMANYTE, // 0x08a
- SPECIES_OMASTAR, // 0x08b
- SPECIES_KABUTO, // 0x08c
- SPECIES_KABUTOPS, // 0x08d
- SPECIES_AERODACTYL, // 0x08e
- SPECIES_SNORLAX, // 0x08f
- SPECIES_ARTICUNO, // 0x090
- SPECIES_ZAPDOS, // 0x091
- SPECIES_MOLTRES, // 0x092
- SPECIES_DRATINI, // 0x093
- SPECIES_DRAGONAIR, // 0x094
- SPECIES_DRAGONITE, // 0x095
- SPECIES_MEWTWO, // 0x096
- SPECIES_MEW, // 0x097
- SPECIES_CHIKORITA, // 0x098
- SPECIES_BAYLEEF, // 0x099
- SPECIES_MEGANIUM, // 0x09a
- SPECIES_CYNDAQUIL, // 0x09b
- SPECIES_QUILAVA, // 0x09c
- SPECIES_TYPHLOSION, // 0x09d
- SPECIES_TOTODILE, // 0x09e
- SPECIES_CROCONAW, // 0x09f
- SPECIES_FERALIGATR, // 0x0a0
- SPECIES_SENTRET, // 0x0a1
- SPECIES_FURRET, // 0x0a2
- SPECIES_HOOTHOOT, // 0x0a3
- SPECIES_NOCTOWL, // 0x0a4
- SPECIES_LEDYBA, // 0x0a5
- SPECIES_LEDIAN, // 0x0a6
- SPECIES_SPINARAK, // 0x0a7
- SPECIES_ARIADOS, // 0x0a8
- SPECIES_CROBAT, // 0x0a9
- SPECIES_CHINCHOU, // 0x0aa
- SPECIES_LANTURN, // 0x0ab
- SPECIES_PICHU, // 0x0ac
- SPECIES_CLEFFA, // 0x0ad
- SPECIES_IGGLYBUFF, // 0x0ae
- SPECIES_TOGEPI, // 0x0af
- SPECIES_TOGETIC, // 0x0b0
- SPECIES_NATU, // 0x0b1
- SPECIES_XATU, // 0x0b2
- SPECIES_MAREEP, // 0x0b3
- SPECIES_FLAAFFY, // 0x0b4
- SPECIES_AMPHAROS, // 0x0b5
- SPECIES_BELLOSSOM, // 0x0b6
- SPECIES_MARILL, // 0x0b7
- SPECIES_AZUMARILL, // 0x0b8
- SPECIES_SUDOWOODO, // 0x0b9
- SPECIES_POLITOED, // 0x0ba
- SPECIES_HOPPIP, // 0x0bb
- SPECIES_SKIPLOOM, // 0x0bc
- SPECIES_JUMPLUFF, // 0x0bd
- SPECIES_AIPOM, // 0x0be
- SPECIES_SUNKERN, // 0x0bf
- SPECIES_SUNFLORA, // 0x0c0
- SPECIES_YANMA, // 0x0c1
- SPECIES_WOOPER, // 0x0c2
- SPECIES_QUAGSIRE, // 0x0c3
- SPECIES_ESPEON, // 0x0c4
- SPECIES_UMBREON, // 0x0c5
- SPECIES_MURKROW, // 0x0c6
- SPECIES_SLOWKING, // 0x0c7
- SPECIES_MISDREAVUS, // 0x0c8
- SPECIES_UNOWN, // 0x0c9
- SPECIES_WOBBUFFET, // 0x0ca
- SPECIES_GIRAFARIG, // 0x0cb
- SPECIES_PINECO, // 0x0cc
- SPECIES_FORRETRESS, // 0x0cd
- SPECIES_DUNSPARCE, // 0x0ce
- SPECIES_GLIGAR, // 0x0cf
- SPECIES_STEELIX, // 0x0d0
- SPECIES_SNUBBULL, // 0x0d1
- SPECIES_GRANBULL, // 0x0d2
- SPECIES_QWILFISH, // 0x0d3
- SPECIES_SCIZOR, // 0x0d4
- SPECIES_SHUCKLE, // 0x0d5
- SPECIES_HERACROSS, // 0x0d6
- SPECIES_SNEASEL, // 0x0d7
- SPECIES_TEDDIURSA, // 0x0d8
- SPECIES_URSARING, // 0x0d9
- SPECIES_SLUGMA, // 0x0da
- SPECIES_MAGCARGO, // 0x0db
- SPECIES_SWINUB, // 0x0dc
- SPECIES_PILOSWINE, // 0x0dd
- SPECIES_CORSOLA, // 0x0de
- SPECIES_REMORAID, // 0x0df
- SPECIES_OCTILLERY, // 0x0e0
- SPECIES_DELIBIRD, // 0x0e1
- SPECIES_MANTINE, // 0x0e2
- SPECIES_SKARMORY, // 0x0e3
- SPECIES_HOUNDOUR, // 0x0e4
- SPECIES_HOUNDOOM, // 0x0e5
- SPECIES_KINGDRA, // 0x0e6
- SPECIES_PHANPY, // 0x0e7
- SPECIES_DONPHAN, // 0x0e8
- SPECIES_PORYGON2, // 0x0e9
- SPECIES_STANTLER, // 0x0ea
- SPECIES_SMEARGLE, // 0x0eb
- SPECIES_TYROGUE, // 0x0ec
- SPECIES_HITMONTOP, // 0x0ed
- SPECIES_SMOOCHUM, // 0x0ee
- SPECIES_ELEKID, // 0x0ef
- SPECIES_MAGBY, // 0x0f0
- SPECIES_MILTANK, // 0x0f1
- SPECIES_BLISSEY, // 0x0f2
- SPECIES_RAIKOU, // 0x0f3
- SPECIES_ENTEI, // 0x0f4
- SPECIES_SUICUNE, // 0x0f5
- SPECIES_LARVITAR, // 0x0f6
- SPECIES_PUPITAR, // 0x0f7
- SPECIES_TYRANITAR, // 0x0f8
- SPECIES_LUGIA, // 0x0f9
- SPECIES_HO_OH, // 0x0fa
- SPECIES_CELEBI, // 0x0fb
-
- SPECIES_OLD_UNOWN_B,
- SPECIES_OLD_UNOWN_C,
- SPECIES_OLD_UNOWN_D,
- SPECIES_OLD_UNOWN_E,
- SPECIES_OLD_UNOWN_F,
- SPECIES_OLD_UNOWN_G,
- SPECIES_OLD_UNOWN_H,
- SPECIES_OLD_UNOWN_I,
- SPECIES_OLD_UNOWN_J,
- SPECIES_OLD_UNOWN_K,
- SPECIES_OLD_UNOWN_L,
- SPECIES_OLD_UNOWN_M,
- SPECIES_OLD_UNOWN_N,
- SPECIES_OLD_UNOWN_O,
- SPECIES_OLD_UNOWN_P,
- SPECIES_OLD_UNOWN_Q,
- SPECIES_OLD_UNOWN_R,
- SPECIES_OLD_UNOWN_S,
- SPECIES_OLD_UNOWN_T,
- SPECIES_OLD_UNOWN_U,
- SPECIES_OLD_UNOWN_V,
- SPECIES_OLD_UNOWN_W,
- SPECIES_OLD_UNOWN_X,
- SPECIES_OLD_UNOWN_Y,
- SPECIES_OLD_UNOWN_Z,
-
- SPECIES_TREECKO, // 0x115
- SPECIES_GROVYLE, // 0x116
- SPECIES_SCEPTILE, // 0x117
- SPECIES_TORCHIC, // 0x118
- SPECIES_COMBUSKEN, // 0x119
- SPECIES_BLAZIKEN, // 0x11a
- SPECIES_MUDKIP, // 0x11b
- SPECIES_MARSHTOMP, // 0x11c
- SPECIES_SWAMPERT, // 0x11d
- SPECIES_POOCHYENA, // 0x11e
- SPECIES_MIGHTYENA, // 0x11f
- SPECIES_ZIGZAGOON, // 0x120
- SPECIES_LINOONE, // 0x121
- SPECIES_WURMPLE, // 0x122
- SPECIES_SILCOON, // 0x123
- SPECIES_BEAUTIFLY, // 0x124
- SPECIES_CASCOON, // 0x125
- SPECIES_DUSTOX, // 0x126
- SPECIES_LOTAD, // 0x127
- SPECIES_LOMBRE, // 0x128
- SPECIES_LUDICOLO, // 0x129
- SPECIES_SEEDOT, // 0x12a
- SPECIES_NUZLEAF, // 0x12b
- SPECIES_SHIFTRY, // 0x12c
- SPECIES_NINCADA, // 0x12d
- SPECIES_NINJASK, // 0x12e
- SPECIES_SHEDINJA, // 0x12f
- SPECIES_TAILLOW, // 0x130
- SPECIES_SWELLOW, // 0x131
- SPECIES_SHROOMISH, // 0x132
- SPECIES_BRELOOM, // 0x133
- SPECIES_SPINDA, // 0x134
- SPECIES_WINGULL, // 0x135
- SPECIES_PELIPPER, // 0x136
- SPECIES_SURSKIT, // 0x137
- SPECIES_MASQUERAIN, // 0x138
- SPECIES_WAILMER, // 0x139
- SPECIES_WAILORD, // 0x13a
- SPECIES_SKITTY, // 0x13b
- SPECIES_DELCATTY, // 0x13c
- SPECIES_KECLEON, // 0x13d
- SPECIES_BALTOY, // 0x13e
- SPECIES_CLAYDOL, // 0x13f
- SPECIES_NOSEPASS, // 0x140
- SPECIES_TORKOAL, // 0x141
- SPECIES_SABLEYE, // 0x142
- SPECIES_BARBOACH, // 0x143
- SPECIES_WHISCASH, // 0x144
- SPECIES_LUVDISC, // 0x145
- SPECIES_CORPHISH, // 0x146
- SPECIES_CRAWDAUNT, // 0x147
- SPECIES_FEEBAS, // 0x148
- SPECIES_MILOTIC, // 0x149
- SPECIES_CARVANHA, // 0x14a
- SPECIES_SHARPEDO, // 0x14b
- SPECIES_TRAPINCH, // 0x14c
- SPECIES_VIBRAVA, // 0x14d
- SPECIES_FLYGON, // 0x14e
- SPECIES_MAKUHITA, // 0x14f
- SPECIES_HARIYAMA, // 0x150
- SPECIES_ELECTRIKE, // 0x151
- SPECIES_MANECTRIC, // 0x152
- SPECIES_NUMEL, // 0x153
- SPECIES_CAMERUPT, // 0x154
- SPECIES_SPHEAL, // 0x155
- SPECIES_SEALEO, // 0x156
- SPECIES_WALREIN, // 0x157
- SPECIES_CACNEA, // 0x158
- SPECIES_CACTURNE, // 0x159
- SPECIES_SNORUNT, // 0x15a
- SPECIES_GLALIE, // 0x15b
- SPECIES_LUNATONE, // 0x15c
- SPECIES_SOLROCK, // 0x15d
- SPECIES_AZURILL, // 0x15e
- SPECIES_SPOINK, // 0x15f
- SPECIES_GRUMPIG, // 0x160
- SPECIES_PLUSLE, // 0x161
- SPECIES_MINUN, // 0x162
- SPECIES_MAWILE, // 0x163
- SPECIES_MEDITITE, // 0x164
- SPECIES_MEDICHAM, // 0x165
- SPECIES_SWABLU, // 0x166
- SPECIES_ALTARIA, // 0x167
- SPECIES_WYNAUT, // 0x168
- SPECIES_DUSKULL, // 0x169
- SPECIES_DUSCLOPS, // 0x16a
- SPECIES_ROSELIA, // 0x16b
- SPECIES_SLAKOTH, // 0x16c
- SPECIES_VIGOROTH, // 0x16d
- SPECIES_SLAKING, // 0x16e
- SPECIES_GULPIN, // 0x16f
- SPECIES_SWALOT, // 0x170
- SPECIES_TROPIUS, // 0x171
- SPECIES_WHISMUR, // 0x172
- SPECIES_LOUDRED, // 0x173
- SPECIES_EXPLOUD, // 0x174
- SPECIES_CLAMPERL, // 0x175
- SPECIES_HUNTAIL, // 0x176
- SPECIES_GOREBYSS, // 0x177
- SPECIES_ABSOL, // 0x178
- SPECIES_SHUPPET, // 0x179
- SPECIES_BANETTE, // 0x17a
- SPECIES_SEVIPER, // 0x17b
- SPECIES_ZANGOOSE, // 0x17c
- SPECIES_RELICANTH, // 0x17d
- SPECIES_ARON, // 0x17e
- SPECIES_LAIRON, // 0x17f
- SPECIES_AGGRON, // 0x180
- SPECIES_CASTFORM, // 0x181
- SPECIES_VOLBEAT, // 0x182
- SPECIES_ILLUMISE, // 0x183
- SPECIES_LILEEP, // 0x184
- SPECIES_CRADILY, // 0x185
- SPECIES_ANORITH, // 0x186
- SPECIES_ARMALDO, // 0x187
- SPECIES_RALTS, // 0x188
- SPECIES_KIRLIA, // 0x189
- SPECIES_GARDEVOIR, // 0x18a
- SPECIES_BAGON, // 0x18b
- SPECIES_SHELGON, // 0x18c
- SPECIES_SALAMENCE, // 0x18d
- SPECIES_BELDUM, // 0x18e
- SPECIES_METANG, // 0x18f
- SPECIES_METAGROSS, // 0x190
- SPECIES_REGIROCK, // 0x191
- SPECIES_REGICE, // 0x192
- SPECIES_REGISTEEL, // 0x193
- SPECIES_KYOGRE, // 0x194
- SPECIES_GROUDON, // 0x195
- SPECIES_RAYQUAZA, // 0x196
- SPECIES_LATIAS, // 0x197
- SPECIES_LATIOS, // 0x198
- SPECIES_JIRACHI, // 0x199
- SPECIES_DEOXYS, // 0x19a
- SPECIES_CHIMECHO, // 0x19b
- SPECIES_EGG, // 0x19c
-
- SPECIES_UNOWN_B,
- SPECIES_UNOWN_C,
- SPECIES_UNOWN_D,
- SPECIES_UNOWN_E,
- SPECIES_UNOWN_F,
- SPECIES_UNOWN_G,
- SPECIES_UNOWN_H,
- SPECIES_UNOWN_I,
- SPECIES_UNOWN_J,
- SPECIES_UNOWN_K,
- SPECIES_UNOWN_L,
- SPECIES_UNOWN_M,
- SPECIES_UNOWN_N,
- SPECIES_UNOWN_O,
- SPECIES_UNOWN_P,
- SPECIES_UNOWN_Q,
- SPECIES_UNOWN_R,
- SPECIES_UNOWN_S,
- SPECIES_UNOWN_T,
- SPECIES_UNOWN_U,
- SPECIES_UNOWN_V,
- SPECIES_UNOWN_W,
- SPECIES_UNOWN_X,
- SPECIES_UNOWN_Y,
- SPECIES_UNOWN_Z,
- SPECIES_UNOWN_EMARK,
- SPECIES_UNOWN_QMARK,
-};
-
-#define NUM_SPECIES SPECIES_EGG
-
-#endif // GUARD_SPECIES_H
diff --git a/include/sprite.h b/include/sprite.h
index 68bb0b0e1..4b0fde448 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -191,14 +191,7 @@ struct Sprite
/*0x2D*/ u8 animLoopCounter;
// general purpose data fields
- /*0x2E*/ s16 data0;
- /*0x30*/ s16 data1;
- /*0x32*/ s16 data2;
- /*0x34*/ s16 data3;
- /*0x36*/ s16 data4;
- /*0x38*/ s16 data5;
- /*0x3A*/ s16 data6;
- /*0x3C*/ s16 data7;
+ /*0x2E*/ s16 data[8];
/*0x3E*/ u16 inUse:1; //1
u16 coordOffsetEnabled:1; //2
@@ -225,6 +218,14 @@ struct Sprite
/*0x43*/ u8 subpriority;
};
+struct OamMatrix
+{
+ s16 a;
+ s16 b;
+ s16 c;
+ s16 d;
+};
+
extern const struct OamData gDummyOamData;
extern const union AnimCmd *const gDummySpriteAnimTable[];
extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[];
@@ -248,7 +249,7 @@ void SetOamMatrix(u8 matrixNum, u16 a, u16 b, u16 c, u16 d);
void CalcCenterToCornerVec(struct Sprite *sprite, u8 shape, u8 size, u8 affineMode);
void SpriteCallbackDummy(struct Sprite *sprite);
void ProcessSpriteCopyRequests(void);
-void RequestSpriteCopy(const u8 *src, u8 *dest, u16 size);
+void RequestSpriteCopy(const void *src, u8 *dest, u16 size);
void FreeSpriteTiles(struct Sprite *sprite);
void FreeSpritePalette(struct Sprite *sprite);
void FreeSpriteOamMatrix(struct Sprite *sprite);
diff --git a/include/string_util.h b/include/string_util.h
index 7a4bfa4c1..55fa988b4 100644
--- a/include/string_util.h
+++ b/include/string_util.h
@@ -29,7 +29,7 @@ u8 *ConvertIntToHexStringN(u8 *dest, s32 value, enum StringConvertMode mode, u8
u8 *ConvertIntToDecimalString(u8 *dest, s32 value);
u8 *StringExpandPlaceholders(u8 *dest, const u8 *src);
u8 *StringBraille(u8 *dest, const u8 *src);
-u8 *GetExpandedPlaceholder(u32 id);
+const u8 *GetExpandedPlaceholder(u32 id);
u8 *StringFill(u8 *dest, u8 c, u16 n);
u8 *StringCopyPadded(u8 *dest, const u8 *src, u8 c, u16 n);
u8 *StringFillWithTerminator(u8 *dest, u16 n);
diff --git a/include/text_window.h b/include/text_window.h
index afd645540..7df1453ca 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -5,8 +5,8 @@
struct FrameGraphics
{
- u8 *tiles;
- u16 *palette;
+ const u8 *tiles;
+ const u16 *palette;
};
u16 SetTextWindowBaseTileNum(u16 baseTileNum);
diff --git a/include/tv.h b/include/tv.h
index 3243fff2c..0f355043c 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -18,8 +18,6 @@ enum
TVSHOW_MASS_OUTBREAK = 41,
};
-extern u8 *const gUnknown_083D1464[3];
-
void ClearTVShowData(void);
u8 sub_80BDEAC(u8 *);
void sub_80BE028(void);
@@ -107,5 +105,6 @@ void sub_80BE3BC(void);
void UpdateTVShowsPerDay(u16);
void sub_80C045C();
void sub_80BF088(u8, s32);
+void sub_80BFD20(void);
#endif // GUARD_TV_H
diff --git a/include/unknown_task.h b/include/unknown_task.h
index d7ac63931..011e5f5b5 100644
--- a/include/unknown_task.h
+++ b/include/unknown_task.h
@@ -9,6 +9,24 @@ struct UnknownTaskStruct
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);
diff --git a/include/use_pokeblock.h b/include/use_pokeblock.h
new file mode 100644
index 000000000..978476d89
--- /dev/null
+++ b/include/use_pokeblock.h
@@ -0,0 +1,13 @@
+//
+// Created by Scott Norton on 5/31/17.
+//
+
+#ifndef POKERUBY_USE_POKEBLOCK_H
+#define POKERUBY_USE_POKEBLOCK_H
+
+extern void *gUnknown_02030400;
+extern s16 gUnknown_02039312;
+
+void sub_8136130(struct Pokeblock *, MainCallback);
+
+#endif //POKERUBY_USE_POKEBLOCK_H
diff --git a/include/wild_encounter.h b/include/wild_encounter.h
index d4b343126..c9d7c3fa1 100644
--- a/include/wild_encounter.h
+++ b/include/wild_encounter.h
@@ -18,13 +18,13 @@ struct WildPokemonHeader
{
u8 mapGroup;
u8 mapNum;
- struct WildPokemonInfo *landMonsInfo;
- struct WildPokemonInfo *waterMonsInfo;
- struct WildPokemonInfo *rockSmashMonsInfo;
- struct WildPokemonInfo *fishingMonsInfo;
+ const struct WildPokemonInfo *landMonsInfo;
+ const struct WildPokemonInfo *waterMonsInfo;
+ const struct WildPokemonInfo *rockSmashMonsInfo;
+ const struct WildPokemonInfo *fishingMonsInfo;
};
-extern struct WildPokemonHeader gWildMonHeaders[];
+extern const struct WildPokemonHeader gWildMonHeaders[];
void DisableWildEncounters(bool8 disabled);
bool8 StandardWildEncounter(u16 a, u16 b);
diff --git a/ld_script.txt b/ld_script.txt
index 84785c7b9..a1e1d969d 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -9,8 +9,6 @@ SECTIONS {
ewram (NOLOAD) :
ALIGN(4)
{
- . = 0x20000;
-
<EWRAM>
. = 0x40000;
@@ -67,7 +65,7 @@ SECTIONS {
src/pokemon/pokemon_3.o(.text);
src/de_rom_8040FE0.o(.text);
src/engine/trig.o(.text);
- src/engine/rng.o(.text);
+ src/engine/random.o(.text);
src/engine/util.o(.text);
src/engine/blend_palette.o(.text);
src/field/daycare.o(.text);
@@ -113,7 +111,7 @@ SECTIONS {
src/battle/battle_anim_807B69C.o(.text);
src/scene/title_screen.o(.text);
src/field/field_weather.o(.text);
- asm/field_weather.o(.text);
+ src/field/field_weather_effects.o(.text);
src/field/field_fadetransition.o(.text);
src/field/field_screen_effect.o(.text);
src/battle/battle_setup.o(.text);
@@ -129,13 +127,12 @@ SECTIONS {
src/engine/trainer_card.o(.text);
src/engine/save_menu_util.o(.text);
src/battle/battle_party_menu.o(.text);
+ asm/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_icon.o(.text);
- asm/pokemon_summary_screen.o(.text);
src/pokemon/pokemon_summary_screen.o(.text);
- asm/pokemon_summary_screen.o(.text_80A0958);
src/field/script_movement.o(.text);
src/field/fldeff_cut.o(.text);
src/pokemon/mail_data.o(.text);
@@ -154,25 +151,162 @@ SECTIONS {
src/engine/record_mixing.o(.text);
src/debug/sound_check_menu.o(.text);
src/field/secret_base.o(.text);
- asm/secret_base.o(.text_80BC1D0);
src/field/tv.o(.text);
asm/contest_link_80C2020.o(.text);
src/script_pokemon_util_80C4BF0.o(.text);
src/field/field_poison.o(.text);
src/pokemon/pokemon_size_record.o(.text);
- asm/fldeff_80C5CD4.o(.text);
+ src/field/pc_screen_effect.o(.text);
+ asm/pc_screen_effect.o(.text);
+ src/field/fldeff_secretpower.o(.text);
+ src/field/fldeff_secret_base_pc.o(.text);
+ src/field/fldeff_decoration.o(.text);
+ src/field/fldeff_poison.o(.text);
+ src/field/fldeff_berrytree.o(.text);
+ src/field/fldeff_recordmixing.o(.text);
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);
- asm/battle_anim_80CA710.o(.text);
+ src/battle/anim/powder.o(.text);
+ src/battle/anim/orbs.o(.text);
+ src/battle/anim/seed.o(.text);
+ src/battle/anim/orbit.o(.text);
+ src/battle/anim/leaf.o(.text);
+ src/battle/anim/cutter.o(.text);
+ src/battle/anim/tendrils.o(.text);
+ src/battle/anim/silhouette.o(.text);
+ src/battle/anim/copy_orb.o(.text);
+ src/battle/anim/roots.o(.text);
+ src/battle/anim/osmose.o(.text);
+ src/battle/anim/hop.o(.text);
+ src/battle/anim/heal.o(.text);
+ src/battle/anim/hop_2.o(.text);
+ src/battle/anim/switch.o(.text);
+ src/battle/anim/flying_path.o(.text);
+ src/battle/anim/flying_petals.o(.text);
+ src/battle/anim/shimmer.o(.text);
+ src/battle/anim/homing.o(.text);
+ src/battle/anim/whip.o(.text);
+ src/battle/anim/unused_1.o(.text);
+ src/battle/anim/slice.o(.text);
+ src/battle/anim/unused_2.o(.text);
+ src/battle/anim/shield.o(.text);
+ src/battle/anim/bottle.o(.text);
+ src/battle/anim/glitter.o(.text);
+ src/battle/anim/unused_3.o(.text);
+ src/battle/anim/sleep.o(.text);
+ src/battle/anim/scan.o(.text);
+ src/battle/anim/lunge_1.o(.text);
+ src/battle/anim/unused_4.o(.text);
+ src/battle/anim/lunge_2.o(.text);
+ src/battle/anim/slash.o(.text);
+ src/battle/anim/brace.o(.text);
+ src/battle/anim/cube.o(.text);
+ src/battle/anim/tile_in.o(.text);
+ src/battle/anim/tile_out.o(.text);
+ src/battle/anim/moon.o(.text);
+ src/battle/anim/twinkle.o(.text);
+ src/battle/anim/flash.o(.text);
+ src/battle/anim/strike.o(.text);
+ src/battle/anim/evasion.o(.text);
+ src/battle/anim/fang.o(.text);
+ src/battle/anim/note_wave.o(.text);
+ src/battle/anim/note_scatter.o(.text);
+ src/battle/anim/drum.o(.text);
+ src/battle/anim/note_scatter_2.o(.text);
+ src/battle/anim/thought.o(.text);
+ src/battle/anim/wave_finger.o(.text);
+ src/battle/anim/spin_finger.o(.text);
+ src/battle/anim/taunt_finger.o(.text);
+ src/battle/anim/unused_5.o(.text);
+ src/battle/anim/unused_6.o(.text);
+ src/battle/anim/unused_7.o(.text);
+ src/battle/anim/unused_8.o(.text);
+ src/battle/anim/withdraw.o(.text);
+ src/battle/anim/alert.o(.text);
+ src/battle/anim/sword.o(.text);
+ src/battle/anim/sonic.o(.text);
+ src/battle/anim/sonic_task.o(.text);
+ src/battle/anim/unused_9.o(.text);
+ src/battle/anim/money.o(.text);
+ src/battle/anim/bullet.o(.text);
+ src/battle/anim/cyclone.o(.text);
+ src/battle/anim/grip.o(.text);
+ src/battle/anim/guillotine.o(.text);
+ src/battle/anim/shadow_enlarge.o(.text);
+ src/battle/anim/shadow_minimize.o(.text);
+ src/battle/anim/splash.o(.text);
+ src/battle/anim/grow.o(.text);
+ src/battle/anim/breath.o(.text);
+ src/battle/anim/anger.o(.text);
+ src/battle/anim/thrashing.o(.text);
+ src/battle/anim/draw.o(.text);
+ src/battle/anim/ring.o(.text);
+ src/battle/anim/egg.o(.text);
+ src/battle/anim/espeed.o(.text);
+ src/battle/anim/smoke.o(.text);
+ src/battle/anim/glow.o(.text);
+ src/battle/anim/note_rain.o(.text);
+ src/battle/anim/heart_1.o(.text);
+ src/battle/anim/curtain.o(.text);
+ src/battle/anim/startle.o(.text);
+ src/battle/anim/blow_kiss.o(.text);
+ src/battle/anim/kiss_fountain.o(.text);
+ src/battle/anim/flying_hearts.o(.text);
+ src/battle/anim/love_bg.o(.text);
+ src/battle/anim/scary_face.o(.text);
+ src/battle/anim/orbit_fast.o(.text);
+ src/battle/anim/orbit_scatter.o(.text);
+ src/battle/anim/spit.o(.text);
+ src/battle/anim/perceive.o(.text);
+ src/battle/anim/angel.o(.text);
+ src/battle/anim/angel_kiss.o(.text);
+ src/battle/anim/devil.o(.text);
+ src/battle/anim/swipe.o(.text);
+ src/battle/anim/struggle.o(.text);
+ src/battle/anim/uproar.o(.text);
+ src/battle/anim/noise.o(.text);
+ src/battle/anim/note_spin.o(.text);
+ src/battle/anim/guard.o(.text);
+ src/battle/anim/fury_cutter_count.o(.text);
+ src/battle/anim/rain.o(.text);
+ src/battle/anim/bubble.o(.text);
+ src/battle/anim/aurora.o(.text);
+ src/battle/anim/energy_wave.o(.text);
+ src/battle/anim/water.o(.text);
+ asm/water.o(.text);
+ asm/fire.o(.text);
+ src/battle/anim/sunlight.o(.text);
+ asm/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/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);
+ asm/flying.o(.text);
+ asm/psychic.o(.text);
+ asm/bug.o(.text);
+ asm/rock.o(.text);
+ asm/ghost.o(.text);
+ asm/dragon.o(.text);
+ asm/dark.o(.text);
+ asm/ground.o(.text);
+ asm/normal.o(.text);
+ asm/battle_intro.o(.text);
src/field/bike.o(.text);
asm/easy_chat.o(.text);
src/field/easy_chat.o(.text);
+ src/pokenav_before.o(.text);
asm/pokenav.o(.text);
- src/field/pokenav.o(.text);
+ src/pokenav_after.o(.text);
asm/pokenav.o(.text_80F708C);
src/pokemon/mon_markings.o(.text);
src/field/mauville_man.o(.text);
@@ -233,7 +367,7 @@ SECTIONS {
src/field/fldeff_softboiled.o(.text);
src/field/decoration_inventory.o(.text);
src/field/roamer.o(.text);
- asm/battle_tower.o(.text);
+ src/field/battle_tower.o(.text);
src/field/use_pokeblock.o(.text);
src/battle/battle_controller_wally.o(.text);
src/field/player_pc.o(.text);
@@ -313,7 +447,7 @@ SECTIONS {
src/engine/string_util.o(.rodata);
src/engine/link.o(.rodata);
src/engine/rtc.o(.rodata);
- data/main_menu.o(.rodata);
+ src/engine/main_menu.o(.rodata);
data/data2a.o(.rodata);
src/battle/battle_4.o(.rodata);
src/battle/battle_controller_player.o(.rodata);
@@ -338,21 +472,21 @@ SECTIONS {
data/maps.o(.rodata);
src/field/fieldmap.o(.rodata);
src/field/metatile_behavior.o(.rodata);
- data/field_door.o(.rodata);
+ src/field/field_door.o(.rodata);
src/field/field_player_avatar.o(.rodata);
src/field/field_map_obj.o(.rodata);
src/field/field_ground_effect.o(.rodata);
data/field_map_obj_helpers.o(.rodata);
- data/text_window.o(.rodata);
+ src/engine/text_window.o(.rodata);
src/engine/script.o(.rodata);
src/field/scrcmd.o(.rodata);
src/field/coord_event_weather.o(.rodata);
src/field/field_tasks.o(.rodata);
- data/reset_rtc_screen.o(.rodata);
+ src/engine/reset_rtc_screen.o(.rodata);
src/field/party_menu.o(.rodata);
src/field/start_menu.o(.rodata);
src/engine/menu.o(.rodata);
- data/tileset_anim.o(.rodata);
+ src/engine/tileset_anim.o(.rodata);
src/engine/palette.o(.rodata);
src/engine/sound.o(.rodata);
data/battle_anim.o(.rodata);
@@ -363,15 +497,15 @@ SECTIONS {
src/engine/task.o(.rodata);
src/battle/battle_anim_807B69C.o(.rodata);
src/scene/title_screen.o(.rodata);
- data/field_weather.o(.rodata);
+ src/field/field_weather.o(.rodata);
+ src/field/field_weather_effects.o(.rodata);
src/field/field_screen_effect.o(.rodata);
src/battle/battle_setup.o(.rodata);
- data/cable_club.o(.rodata);
- data/mori_debug_menu.o(.rodata);
+ src/engine/cable_club.o(.rodata);
+ src/debug/mori_debug_menu.o(.rodata);
src/field/trainer_see.o(.rodata);
data/trainer_see.o(.rodata);
src/field/wild_encounter.o(.rodata);
- data/wild_encounter.o(.rodata);
src/field/field_effect.o(.rodata);
src/pokemon/pokemon_menu.o(.rodata);
src/engine/option_menu.o(.rodata);
@@ -380,39 +514,42 @@ SECTIONS {
src/battle/battle_party_menu.o(.rodata);
data/pokemon_storage_system.o(.rodata);
src/pokemon/pokemon_icon.o(.rodata);
- data/pokemon_summary_screen.o(.rodata);
- data/fldeff_cut.o(.rodata);
+ src/pokemon/pokemon_summary_screen.o(.rodata);
+ src/field/fldeff_cut.o(.rodata);
src/field/item_menu.o(.rodata);
data/battle_anim_80A7E7C.o(.rodata);
src/field/item.o(.rodata);
- data/matsuda_debug_menu.o(.rodata);
+ src/debug/matsuda_debug_menu.o(.rodata);
data/contest.o(.rodata);
src/field/shop.o(.rodata);
src/field/berry.o(.rodata);
src/field/script_menu.o(.rodata);
src/engine/naming_screen.o(.rodata);
data/naming_screen.o(.rodata);
- data/money.o(.rodata);
+ src/field/money.o(.rodata);
data/contest_effect.o(.rodata);
src/engine/record_mixing.o(.data);
src/engine/record_mixing.o(.rodata);
src/debug/sound_check_menu.o(.rodata);
- data/secret_base.o(.rodata);
- data/tv.o(.rodata);
+ src/field/secret_base.o(.rodata);
+ src/field/tv.o(.rodata);
data/contest_link_80C2020.o(.rodata);
src/pokemon/pokemon_size_record.o(.rodata);
- data/fldeff_80C5CD4.o(.rodata);
+ src/field/pc_screen_effect.o(.rodata);
+ data/pc_screen_effect.o(.rodata);
+ src/field/fldeff_secretpower.o(.rodata);
+ src/field/fldeff_decoration.o(.rodata);
+ src/field/fldeff_recordmixing.o(.rodata);
src/field/field_special_scene.o(.rodata);
- data/field_special_scene.o(.rodata);
src/field/rotating_gate.o(.rodata);
src/field/item_use.o(.rodata);
data/battle_anim_80CA710.o(.rodata);
src/field/bike.o(.rodata);
data/easy_chat.o(.rodata);
data/pokenav.o(.rodata);
- data/mon_markings.o(.rodata);
+ src/pokemon/mon_markings.o(.rodata);
src/field/mauville_man.o(.rodata);
- data/mail.o(.rodata);
+ src/pokemon/mail.o(.rodata);
src/field/menu_helpers.o(.rodata);
src/field/heal_location.o(.rodata);
src/field/region_map.o(.rodata);
@@ -425,17 +562,17 @@ SECTIONS {
src/field/starter_choose.o(.rodata);
src/field/wallclock.o(.rodata);
src/field/pokeblock.o(.rodata);
- data/fldeff_flash.o(.rodata);
+ src/field/fldeff_flash.o(.rodata);
src/engine/time_events.o(.rodata);
src/field/field_specials.o(.rodata);
data/pokedex_area_screen.o(.rodata);
src/scene/evolution_scene.o(.rodata);
data/roulette.o(.rodata);
data/pokedex_cry_screen.o(.rodata);
- data/landmark.o(.rodata);
+ src/field/landmark.o(.rodata);
src/battle/battle_transition.o(.rodata);
src/battle/battle_controller_linkpartner.o(.rodata);
- data/battle_message.o(.rodata);
+ src/battle/battle_message.o(.rodata);
src/field/choose_party.o(.rodata);
src/scene/cable_car.o(.rodata);
src/engine/save.o(.rodata);
@@ -446,7 +583,7 @@ SECTIONS {
src/pokemon/learn_move.o(.rodata);
src/field/decoration_inventory.o(.rodata);
src/field/roamer.o(.rodata);
- data/battle_tower.o(.rodata);
+ src/field/battle_tower.o(.rodata);
src/field/use_pokeblock.o(.rodata);
src/battle/battle_controller_wally.o(.rodata);
src/field/player_pc.o(.rodata);
@@ -454,7 +591,6 @@ SECTIONS {
data/battle_anim_813F0F4.o(.rodata);
src/scene/hall_of_fame.o(.rodata);
src/scene/credits.o(.rodata);
- data/credits.o(.rodata);
src/field/lottery_corner.o(.rodata);
src/field/diploma.o(.rodata);
src/strings.o(.rodata);
diff --git a/shared_syms.txt b/shared_syms.txt
deleted file mode 100644
index 571e0633e..000000000
--- a/shared_syms.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-unk_2000000 = 0x2000000;
-ewram = 0x2000000;
-
-unk_2004000 = 0x2004000;
-
-gUnk_2009000 = 0x2009000;
-
-unk_2007800 = 0x2007800;
-unk_2007900 = 0x2007900;
-
-unk_2008000 = 0x2008000;
-
-unk_2015de0 = 0x2015de0;
-unk_2015e00 = 0x2015e00;
-unk_2016000 = 0x2016000;
-
-unk_201606C = 0x201606C;
-
-unk_20160BC = 0x20160BC;
-
-unk_2016A00 = 0x2016A00;
-unk_2016C00 = 0x2016C00;
-
-gTransformStatuses = 0x2017800;
-unk_2017810 = 0x2017810;
-
-gMailboxInfo = 0x201FE00;
-
-gSecretBaseRecord = 0x2017000;
-
-dword_2017100 = 0x2017100;
-
-unk_2018000 = 0x2018000;
-
-unk_2019348 = 0x2019348;
-
-unk_201B260 = 0x201b260;
-unk_201B264 = 0x201B264;
-unk_201C000 = 0x201C000;
-
-gHallOfFame = 0x201E000;
-unk_201f800 = 0x201F800;
-gCutGrassSpriteArray = 0x201FFF0;
diff --git a/src/battle/anim/alert.c b/src/battle/anim/alert.c
new file mode 100755
index 000000000..538008be0
--- /dev/null
+++ b/src/battle/anim/alert.c
@@ -0,0 +1,33 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// alert (red thunder from the sides of a Pokemon, simulating more alert behavior.)
+// Used in Kinesis.
+
+void sub_80CF610(struct Sprite* sprite)
+{
+ sub_8078650(sprite);
+ sub_807867C(sprite, gBattleAnimArgs[0]);
+ sprite->pos1.y += gBattleAnimArgs[1];
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ {
+ sprite->hFlip = 1;
+ if (gBattleAnimArgs[2] != 0)
+ sprite->vFlip = 1;
+ }
+ else
+ {
+ if (gBattleAnimArgs[2] != 0)
+ sprite->vFlip = 1;
+ }
+
+ sprite->callback = sub_8078600;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+}
diff --git a/src/battle/anim/angel.c b/src/battle/anim/angel.c
new file mode 100755
index 000000000..916ebfdfd
--- /dev/null
+++ b/src/battle/anim/angel.c
@@ -0,0 +1,37 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// angel (a little angel descends from somewhere towards a position)
+// Used in Sweet Kiss.
+
+void sub_80D2938(struct Sprite* sprite)
+{
+ s16 r5;
+ if (sprite->data[0] == 0)
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ }
+
+ sprite->data[0]++;
+ r5 = (sprite->data[0] * 10) & 0xFF;
+ sprite->pos2.x = Sin(r5, 0x50) >> 8;
+ if (sprite->data[0] <= 0x4F)
+ sprite->pos2.y = (sprite->data[0] / 2) + (Cos(r5, 0x50) >> 8);
+
+ if (sprite->data[0] > 0x5A)
+ {
+ sprite->data[2]++;
+ sprite->pos2.x -= sprite->data[2] / 2;
+ }
+
+ if (sprite->data[0] > 0x64)
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/angel_kiss.c b/src/battle/anim/angel_kiss.c
new file mode 100755
index 000000000..453c4d802
--- /dev/null
+++ b/src/battle/anim/angel_kiss.c
@@ -0,0 +1,87 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "random.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// angel_kiss (a different variation of kiss_fountain.)
+// Used in Sweet Kiss.
+
+void sub_80D29CC(struct Sprite* sprite)
+{
+ sprite->data[5]++;
+ sprite->pos2.x = Sin(sprite->data[3], 5);
+ sprite->pos2.y = sprite->data[5] / 2;
+ sprite->data[3] = (sprite->data[3] + 3) & 0xFF;
+ if (sprite->data[5] > 20)
+ sprite->invisible = sprite->data[5] % 2;
+
+ if (sprite->data[5] > 30)
+ move_anim_8072740(sprite);
+}
+
+void sub_80D2A38(struct Sprite* sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ sprite->data[1] = gBattleAnimArgs[0];
+ sprite->data[2] = gBattleAnimArgs[1];
+ sprite->data[0]++;
+ }
+ else
+ {
+ sprite->data[4] += sprite->data[1];
+ sprite->pos2.x = sprite->data[4] >> 8;
+ sprite->pos2.y = Sin(sprite->data[3], sprite->data[2]);
+ sprite->data[3] = (sprite->data[3] + 3) & 0xFF;
+ if (sprite->data[3] > 0x46)
+ {
+ sprite->callback = sub_80D29CC;
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data[3] = Random() % 0xB4;
+ }
+ }
+}
+
+// this is for the next file, but i didnt feel like deleting it from the original 80C file.
+/* void sub_80D2ABC(struct Sprite* sprite)
+{
+ int var;
+ s16 var2;
+ int var3;
+ if (sprite->data[3] == 0)
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ StartSpriteAnim(sprite, 0);
+ sprite->subpriority = sub_8079E90(gBattleAnimBankTarget) - 1;
+ sprite->data[2] = 1;
+ }
+
+ sprite->data[0] += sprite->data[2];
+ var = sprite->data[0] * 4;
+ if (var < 0)
+ var += 0xFF;
+
+ sprite->data[1] = (sprite->data[0] * 4) -(((var) >> 8) << 8);
+ if (sprite->data[1] < 0)
+ sprite->data[1] = 0;
+
+ var3 = sprite->data[1];
+ var2 = sprite->data[0];
+ var2 /= 4;
+ sprite->pos2.x = Cos(var3, 30 - var2);
+ var3 = sprite->data[1];
+ var2 = sprite->data[0] / 8;
+ sprite->pos2.x = Sin(var3, 10 - var2);
+ if (sprite->data[1] > 0x80 && sprite->data[2] > 0)
+ sprite->data[2] = 0xFFFF;
+} */
diff --git a/src/battle/anim/anger.c b/src/battle/anim/anger.c
new file mode 100755
index 000000000..8962e0855
--- /dev/null
+++ b/src/battle/anim/anger.c
@@ -0,0 +1,34 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// anger (anger emotes, usually above the Pokemon's head, indicating annoyed emotions.)
+// Used in Frustration, Rage, Swagger, Torment, and Taunt.
+
+void sub_80D09C0(struct Sprite* sprite)
+{
+ u8 bank;
+ if (gBattleAnimArgs[0] == 0)
+ bank = gBattleAnimBankAttacker;
+ else
+ bank = gBattleAnimBankTarget;
+
+ if (GetBankSide(bank) == 1)
+ {
+ gBattleAnimArgs[1] *= -1;
+ }
+
+ sprite->pos1.x = sub_8077ABC(bank, 2) + gBattleAnimArgs[1];
+ sprite->pos1.y = sub_8077ABC(bank, 3) + gBattleAnimArgs[2];
+ if (sprite->pos1.y <= 7)
+ sprite->pos1.y = 8;
+
+ StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
+ sprite->callback = sub_80785E4;
+}
diff --git a/src/battle/anim/aurora.c b/src/battle/anim/aurora.c
new file mode 100644
index 000000000..1ca5e649f
--- /dev/null
+++ b/src/battle/anim/aurora.c
@@ -0,0 +1,72 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "palette.h"
+#include "rom_8077ABC.h"
+#include "sprite.h"
+#include "task.h"
+
+extern s16 gBattleAnimArgs[8];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D344C(struct Sprite *);
+static void sub_80D34D4(u8);
+
+void sub_80D33B4(struct Sprite *sprite)
+{
+ s16 r6;
+
+ sub_80787B0(sprite, 1);
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ r6 = -gBattleAnimArgs[2];
+ else
+ r6 = gBattleAnimArgs[2];
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2) + r6;
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3) + gBattleAnimArgs[3];
+ obj_translate_based_on_private_1_2_3_4(sprite);
+ sprite->callback = sub_80D344C;
+ sprite->affineAnimPaused = TRUE;
+ sprite->callback(sprite);
+}
+
+static void sub_80D344C(struct Sprite *sprite)
+{
+ if ((u16)gBattleAnimArgs[7] == 0xFFFF)
+ {
+ StartSpriteAnim(sprite, 1);
+ sprite->affineAnimPaused = FALSE;
+ }
+ if (sub_8078B5C(sprite) != 0)
+ move_anim_8072740(sprite);
+}
+
+void sub_80D3490(u8 taskId)
+{
+ gTasks[taskId].data[0] = gBattleAnimArgs[0];
+ gTasks[taskId].data[2] = 0x100 + IndexOfSpritePaletteTag(0x279C) * 16;
+ gTasks[taskId].func = sub_80D34D4;
+}
+
+static void sub_80D34D4(u8 taskId)
+{
+ gTasks[taskId].data[10]++;
+ if (gTasks[taskId].data[10] == 3)
+ {
+ u16 r5;
+ u16 r6;
+ s32 i;
+
+ gTasks[taskId].data[10] = 0;
+ r5 = gTasks[taskId].data[2] + 1;
+ r6 = gPlttBufferFaded[r5];
+ for (i = 1; i < 8; i++)
+ gPlttBufferFaded[r5 + i - 1] = gPlttBufferFaded[r5 + i];
+ gPlttBufferFaded[r5 + 7] = r6;
+ }
+ gTasks[taskId].data[11]++;
+ if (gTasks[taskId].data[11] == gTasks[taskId].data[0])
+ DestroyAnimVisualTask(taskId);
+}
diff --git a/src/battle/anim/beta_beat_up.c b/src/battle/anim/beta_beat_up.c
new file mode 100644
index 000000000..499e52a80
--- /dev/null
+++ b/src/battle/anim/beta_beat_up.c
@@ -0,0 +1,34 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+
+extern s16 gBattleAnimArgs[8];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D6278(struct Sprite *);
+
+// beta_beat_up
+
+void sub_80D6234(struct Sprite *sprite)
+{
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ {
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ }
+ else
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ }
+
+ sprite->callback = sub_80D6278;
+}
+
+static void sub_80D6278(struct Sprite *sprite)
+{
+ if (sprite->affineAnimEnded)
+ {
+ move_anim_8074EE0(sprite);
+ }
+}
diff --git a/src/battle/anim/blow_kiss.c b/src/battle/anim/blow_kiss.c
new file mode 100755
index 000000000..e63f7189d
--- /dev/null
+++ b/src/battle/anim/blow_kiss.c
@@ -0,0 +1,39 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D1FA4(struct Sprite* sprite);
+
+// blow_kiss (a heart floating across the screen.)
+// Used in Attract.
+
+void sub_80D1F58(struct Sprite* sprite)
+{
+ sub_80787B0(sprite, 1);
+ sprite->data[0] = 0x5F;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2);
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3);
+ obj_translate_based_on_private_1_2_3_4(sprite);
+ sprite->callback = sub_80D1FA4;
+}
+
+void sub_80D1FA4(struct Sprite* sprite)
+{
+ if (sub_8078B5C(sprite) == 0)
+ {
+ sprite->pos2.y += Sin(sprite->data[5], 14);
+ sprite->data[5] = (sprite->data[5] + 4) & 0xFF;
+ }
+ else
+ {
+ move_anim_8072740(sprite);
+ }
+}
diff --git a/src/battle/anim/bottle.c b/src/battle/anim/bottle.c
new file mode 100755
index 000000000..ac5e51881
--- /dev/null
+++ b/src/battle/anim/bottle.c
@@ -0,0 +1,125 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CCF70(struct Sprite* sprite);
+static void sub_80CD0CC(struct Sprite* sprite, int unk1, int unk2);
+
+// bottle (shows a bottle swinging back and forth.)
+// Used by Milk Drink.
+
+void sub_80CCF04(struct Sprite* sprite)
+{
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankTarget, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankTarget, 3) + 0xFFE8;
+ sprite->data[0] = 0;
+ sprite->data[1] = 0;
+ sprite->data[2] = 0;
+ sprite->data[3] = 0;
+ sprite->data[4] = 0;
+ sprite->data[6] = 0;
+ sprite->data[7] = 16;
+ REG_BLDCNT = 0x3F40;
+ REG_BLDALPHA = (sprite->data[7] << 8) | sprite->data[6];
+ sprite->callback = sub_80CCF70;
+}
+
+void sub_80CCF70(struct Sprite* sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ if (++sprite->data[2] > 0)
+ {
+ sprite->data[2] = 0;
+ if (((++sprite->data[1]) & 1) != 0)
+ {
+ if (sprite->data[6] <= 15)
+ sprite->data[6]++;
+ }
+ else if (sprite->data[7] > 0)
+ sprite->data[7]--;
+
+ REG_BLDALPHA = (sprite->data[7] << 8) | sprite->data[6];
+ if (sprite->data[6] == 16 && sprite->data[7] == 0)
+ {
+ sprite->data[1] = 0;
+ sprite->data[0]++;
+ }
+ }
+ break;
+ case 1:
+ if (++sprite->data[1] > 8)
+ {
+ sprite->data[1] = 0;
+ StartSpriteAffineAnim(sprite, 1);
+ sprite->data[0]++;
+ }
+ break;
+ case 2:
+ sub_80CD0CC(sprite, 16, 4);
+ if (++sprite->data[1] > 2)
+ {
+ sprite->data[1] = 0;
+ sprite->pos1.y++;
+ }
+
+ if (++sprite->data[2] <= 29)
+ break;
+
+ if (sprite->data[2] & 1)
+ {
+ if (sprite->data[6] > 0)
+ sprite->data[6]--;
+ }
+ else if (sprite->data[7] <= 15)
+ {
+ sprite->data[7]++;
+ }
+
+ REG_BLDALPHA = (sprite->data[7] << 8) | sprite->data[6];
+ if (sprite->data[6] == 0 && sprite->data[7] == 16)
+ {
+ sprite->data[1] = 0;
+ sprite->data[2] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 3:
+ sprite->invisible = 1;
+ sprite->data[0]++;
+ break;
+ case 4:
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ move_anim_8072740(sprite);
+ break;
+ }
+}
+
+void sub_80CD0CC(struct Sprite* sprite, int unk1, int unk2)
+{
+ if (sprite->data[3] <= 11)
+ sprite->data[4] += 2;
+
+ if ((u16)(sprite->data[3] - 0x12) <= 0x17)
+ sprite->data[4] -= 2;
+
+ if ((sprite->data[3]) > 0x2F)
+ sprite->data[4] += 2;
+
+ sprite->pos2.x = sprite->data[4] / 9;
+ sprite->pos2.y = sprite->data[4] / 14;
+ if (sprite->pos2.y < 0)
+ sprite->pos2.y *= -1;
+
+ sprite->data[3]++;
+ if (sprite->data[3] > 0x3B)
+ sprite->data[3] = 0;
+}
diff --git a/src/battle/anim/brace.c b/src/battle/anim/brace.c
new file mode 100755
index 000000000..7b084efbb
--- /dev/null
+++ b/src/battle/anim/brace.c
@@ -0,0 +1,45 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CDF70(struct Sprite* sprite);
+
+// brace (the Pokemon prepares to endure a hit)
+// Used in Endure.
+
+void sub_80CDF0C(struct Sprite* sprite)
+{
+ if (gBattleAnimArgs[0] == 0)
+ {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 0) + gBattleAnimArgs[1];
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 1) + gBattleAnimArgs[2];
+ }
+ else
+ {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankTarget, 0) + gBattleAnimArgs[1];
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankTarget, 1) + gBattleAnimArgs[2];
+ }
+
+ sprite->data[0] = 0;
+ sprite->data[1] = gBattleAnimArgs[3];
+ sprite->callback = sub_80CDF70;
+}
+
+void sub_80CDF70(struct Sprite* sprite)
+{
+ if (++sprite->data[0] > sprite->data[1])
+ {
+ sprite->data[0] = 0;
+ sprite->pos1.y--;
+ }
+
+ sprite->pos1.y -= sprite->data[0];
+ if (sprite->animEnded)
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/breath.c b/src/battle/anim/breath.c
new file mode 100755
index 000000000..0fcc7fa08
--- /dev/null
+++ b/src/battle/anim/breath.c
@@ -0,0 +1,36 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// breath (a puff of smoke, usually from the mouth or nose of the Pokemon.)
+// Used in Swagger and Bulk Up.
+
+void sub_80D0930(struct Sprite* sprite)
+{
+ if (GetBankSide(gBattleAnimBankAttacker) == 0)
+ {
+ StartSpriteAnim(sprite, 0);
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2) + 32;
+ sprite->data[1] = 0x40;
+ }
+ else
+ {
+ StartSpriteAnim(sprite, 1);
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2) - 32;
+ sprite->data[1] = -0x40;
+ }
+
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ sprite->data[0] = 0x34;
+ sprite->data[2] = 0;
+ sprite->data[3] = 0;
+ sprite->data[4] = 0;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+ sprite->callback = sub_8078394;
+}
diff --git a/src/battle/anim/bubble.c b/src/battle/anim/bubble.c
new file mode 100644
index 000000000..5da0d9929
--- /dev/null
+++ b/src/battle/anim/bubble.c
@@ -0,0 +1,102 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "util.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D32E8(struct Sprite *sprite);
+static void sub_80D3370(struct Sprite *sprite);
+static void sub_80D3398(struct Sprite *sprite);
+
+// bubble (indidivual bubble that floats around)
+// Used in Bubble and Bubblebeam
+
+void sub_80D31C8(struct Sprite* sprite)
+{
+ u8 newSpriteId;
+
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2) - gBattleAnimArgs[0];
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3) + gBattleAnimArgs[1];
+ }
+ else
+ {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2) + gBattleAnimArgs[0];
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3) + gBattleAnimArgs[1];
+ }
+
+ sprite->animPaused = 1;
+
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ {
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ }
+
+ sprite->data[0] = gBattleAnimArgs[6];
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2);
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3);
+
+ obj_translate_based_on_private_1_2_3_4(sprite);
+
+ newSpriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy);
+ sprite->data[5] = newSpriteId;
+
+ sprite->pos1.x -= Sin((u8)gBattleAnimArgs[4], gBattleAnimArgs[2]);
+ sprite->pos1.y -= Cos((u8)gBattleAnimArgs[4], gBattleAnimArgs[3]);
+
+ gSprites[newSpriteId].data[0] = gBattleAnimArgs[2];
+ gSprites[newSpriteId].data[1] = gBattleAnimArgs[3];
+ gSprites[newSpriteId].data[2] = gBattleAnimArgs[5];
+ gSprites[newSpriteId].data[3] = (u8)gBattleAnimArgs[4] * 256;
+ gSprites[newSpriteId].data[4] = gBattleAnimArgs[6];
+
+ sprite->callback = sub_80D32E8;
+ sprite->callback(sprite);
+}
+
+static void sub_80D32E8(struct Sprite *sprite)
+{
+ u8 spriteId = sprite->data[5];
+
+ u8 counter = gSprites[spriteId].data[4];
+ u16 index = gSprites[spriteId].data[3];
+
+ sprite->data[0] = 1;
+ sub_8078B5C(sprite);
+
+ sprite->pos2.x += Sin(index / 256, gSprites[spriteId].data[0]);
+ sprite->pos2.y += Cos(index / 256, gSprites[spriteId].data[1]);
+
+ gSprites[spriteId].data[3] = gSprites[spriteId].data[2] + index;
+
+ if (--counter != 0)
+ {
+ gSprites[spriteId].data[4] = counter;
+ }
+ else
+ {
+ sprite->callback = sub_80D3370;
+ DestroySprite(&gSprites[spriteId]);
+ }
+}
+
+static void sub_80D3370(struct Sprite *sprite)
+{
+ sprite->animPaused = 0;
+ sprite->callback = sub_8078600;
+ StoreSpriteCallbackInData(sprite, sub_80D3398);
+}
+
+static void sub_80D3398(struct Sprite *sprite)
+{
+ sprite->data[0] = 10;
+ sprite->callback = sub_80782D8;
+ StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
+}
diff --git a/src/battle/anim/bullet.c b/src/battle/anim/bullet.c
new file mode 100755
index 000000000..11306873a
--- /dev/null
+++ b/src/battle/anim/bullet.c
@@ -0,0 +1,69 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "random.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D0030(struct Sprite* sprite);
+static void sub_80D00B4(struct Sprite* sprite);
+
+// bullet (shoot seeds as ammunition.)
+// Used by Bullet Seed.
+
+void sub_80CFFD8(struct Sprite* sprite)
+{
+ sub_80787B0(sprite, 1);
+ sprite->data[0] = 20;
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2);
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3);
+ sprite->callback = sub_8078B34;
+ sprite->affineAnimPaused = 1;
+ StoreSpriteCallbackInData(sprite, sub_80D0030);
+}
+
+void sub_80D0030(struct Sprite* sprite)
+{
+ int i;
+ u16 rand;
+ s16* ptr;
+ PlaySE12WithPanning(0xA6, sub_8076F98(0x3F));
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.y = 0;
+ sprite->pos2.x = 0;
+ ptr = &sprite->data[7];
+ for (i = 0; i < 8; i++)
+ {
+ ptr[i - 7] = 0;
+ }
+
+ rand = Random();
+ sprite->data[6] = 0xFFF4 - (rand & 7);
+ rand = Random();
+ sprite->data[7] = (rand % 0xA0) + 0xA0;
+ sprite->callback = sub_80D00B4;
+ sprite->affineAnimPaused = 0;
+}
+
+void sub_80D00B4(struct Sprite* sprite)
+{
+ sprite->data[0] += sprite->data[7];
+ sprite->pos2.x = sprite->data[0] >> 8;
+ if (sprite->data[7] & 1)
+ sprite->pos2.x = -sprite->pos2.x;
+
+ sprite->pos2.y = Sin(sprite->data[1], sprite->data[6]);
+ sprite->data[1] += 8;
+ if (sprite->data[1] > 0x7E)
+ {
+ sprite->data[1] = 0;
+ sprite->data[2] /= 2;
+ if (++sprite->data[3] == 1)
+ move_anim_8072740(sprite);
+ }
+}
diff --git a/src/battle/anim/copy_orb.c b/src/battle/anim/copy_orb.c
new file mode 100755
index 000000000..96d2910f0
--- /dev/null
+++ b/src/battle/anim/copy_orb.c
@@ -0,0 +1,46 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// copy_orb
+// Used in Mimic.
+
+void sub_80CB4CC(struct Sprite* sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ {
+ if (GetBankSide(gBattleAnimBankTarget) == 0)
+ {
+ s16 a = gBattleAnimArgs[0];
+ gBattleAnimArgs[0] = -a;
+ }
+
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankTarget, 0) + gBattleAnimArgs[0];
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankTarget, 1) + gBattleAnimArgs[1];
+ sprite->invisible = 1;
+ sprite->data[0]++;
+ break;
+ }
+ case 1:
+ {
+ sprite->invisible = 0;
+ if (sprite->affineAnimEnded)
+ {
+ ChangeSpriteAffineAnim(sprite, 1);
+ sprite->data[0] = 25;
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ sprite->callback = sub_8078CC0;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+ break;
+ }
+ }
+ }
+}
diff --git a/src/battle/anim/cube.c b/src/battle/anim/cube.c
new file mode 100755
index 000000000..07b3ea517
--- /dev/null
+++ b/src/battle/anim/cube.c
@@ -0,0 +1,52 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "constants/songs.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CE000(struct Sprite* sprite);
+
+// cube (shows a sphere sharpening into a cube.)
+// Used in Sharpen.
+
+void sub_80CDFB0(struct Sprite* sprite)
+{
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3) - 12;
+ sprite->data[0] = 0;
+ sprite->data[1] = 2;
+ sprite->data[2] = 0;
+ sprite->data[3] = 0;
+ sprite->data[4] = 0;
+ sprite->data[5] = sub_8076F98(-0x40);
+ sprite->callback = sub_80CE000;
+}
+
+void sub_80CE000(struct Sprite* sprite)
+{
+ if (++sprite->data[0] >= sprite->data[1])
+ {
+ sprite->invisible = !sprite->invisible;
+ if (!sprite->invisible)
+ {
+ sprite->data[4]++;
+ if (!(sprite->data[4] & 1))
+ PlaySE12WithPanning(SE_W207B, sprite->data[5]);
+ }
+
+ sprite->data[0] = 0;
+ if (++sprite->data[2] > 1)
+ {
+ sprite->data[2] = 0;
+ sprite->data[1]++;
+ }
+ }
+
+ if (sprite->animEnded && sprite->data[1] > 16 && sprite->invisible)
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/curtain.c b/src/battle/anim/curtain.c
new file mode 100755
index 000000000..1f34cb173
--- /dev/null
+++ b/src/battle/anim/curtain.c
@@ -0,0 +1,82 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "palette.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern u16 gUnknown_03004240;
+extern u16 gUnknown_030042C4;
+
+static void sub_80D1D48(u8 taskId);
+static void sub_80D1D9C(u8 taskId);
+
+// curtain (a sweeping blackening curtain in the BG)
+// Used in Fake Out.
+
+void sub_80D1CD0(u8 taskId)
+{
+ int zero;
+ bool8 result = NotInBattle();
+ u16 var = 0xF0;
+ if (result)
+ {
+ var = 0x98;
+ zero = 0;
+ }
+ else
+ {
+ zero = 0;
+ }
+
+ gUnknown_030042C4 = var;
+ gUnknown_03004240 = 0xA0;
+ REG_WIN0H = var;
+ REG_WIN0V = 0xA0;
+ REG_WININ = 0x3F1F;
+ REG_WINOUT = 0x3F3F;
+ REG_BLDCNT = 0xC8;
+ REG_BLDY = 0x10;
+ gTasks[taskId].data[0] = zero;
+ gTasks[taskId].data[1] = var;
+ gTasks[taskId].func = sub_80D1D48;
+}
+
+void sub_80D1D48(u8 taskId)
+{
+ gTasks[taskId].data[0] += 13;
+ gTasks[taskId].data[1] -= 13;
+ if (gTasks[taskId].data[0] >= gTasks[taskId].data[1])
+ {
+ gUnknown_030042C4 = 0;
+ gTasks[taskId].func = sub_80D1D9C;
+ }
+ else
+ {
+ gUnknown_030042C4 = gTasks[taskId].data[1] | (gTasks[taskId].data[0] << 8);
+ }
+}
+
+void sub_80D1D9C(u8 taskId)
+{
+ if (++gTasks[taskId].data[10] == 5)
+ {
+ gTasks[taskId].data[11] = 0x88;
+ RequestSpriteCopy((u8 *)(&gTasks[taskId].data[11]), (u8 *)(&REG_BLDCNT), 2);
+ BlendPalettes(sub_80791A8(1, 0, 0, 0, 0, 0, 0), 16, RGB(31, 31, 31));
+ }
+ else if (gTasks[taskId].data[10] > 4)
+ {
+ gUnknown_030042C4 = 0;
+ gUnknown_03004240 = 0;
+ REG_WININ = 0x3F3F;
+ REG_WINOUT = 0x3F3F;
+ REG_BLDCNT = 0;
+ REG_BLDY = 0;
+ DestroyAnimVisualTask(taskId);
+ }
+}
diff --git a/src/battle/anim/cutter.c b/src/battle/anim/cutter.c
new file mode 100755
index 000000000..9859497e5
--- /dev/null
+++ b/src/battle/anim/cutter.c
@@ -0,0 +1,130 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CB09C(struct Sprite* sprite);
+static void sub_80CB1A4(struct Sprite* sprite);
+
+// cutter (the cresent shaped leaf used in throwing projectiles for the listed moves.)
+// Used by Razor Leaf and Magical Leaf.
+
+void sub_80CAFD0(struct Sprite* sprite)
+{
+ sub_80787B0(sprite, 1);
+ if (GetBankSide(gBattleAnimBankAttacker))
+ {
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ }
+
+ sprite->data[0] = gBattleAnimArgs[4];
+ if (!(gBattleAnimArgs[6]))
+ {
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[2];
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3) + gBattleAnimArgs[3];
+ }
+ else
+ {
+ sub_807A3FC(gBattleAnimBankTarget, 1, &sprite->data[2], &sprite->data[4]);
+ sprite->data[2] += gBattleAnimArgs[2];
+ sprite->data[4] += gBattleAnimArgs[3];
+ }
+
+ sprite->data[5] = gBattleAnimArgs[5];
+ sub_80786EC(sprite);
+ if (GetBankSide(gBattleAnimBankAttacker) == GetBankSide(gBattleAnimBankTarget))
+ {
+ sprite->data[0] = 1;
+ }
+ else
+ {
+ sprite->data[0] = 0;
+ }
+
+ sprite->callback = sub_80CB09C;
+}
+
+void sub_80CB09C(struct Sprite* sprite)
+{
+ bool8 c = FALSE;
+ s16 a = sprite->data[0];
+ s16 b = sprite->data[7];
+ s16 r0;
+
+ sprite->data[0] = 1;
+ sub_8078718(sprite);
+ r0 = sprite->data[7];
+ sprite->data[0] = a;
+ if (b > 0xC8 && r0 <= 0x37 && sprite->oam.affineParam == 0)
+ sprite->oam.affineParam++;
+
+ if (sprite->oam.affineParam != 0 && sprite->data[0] != 0)
+ {
+ sprite->invisible ^= 1;
+ sprite->oam.affineParam++;
+ if (sprite->oam.affineParam == 0x1E)
+ c = TRUE;
+ }
+
+ if (sprite->pos1.x + sprite->pos2.x > 0x100
+ || sprite->pos1.x + sprite->pos2.x < -16
+ || sprite->pos1.y + sprite->pos2.y > 0xA0
+ || sprite->pos1.y + sprite->pos2.y < -16)
+ c = TRUE;
+
+ if (c)
+ move_anim_8072740(sprite);
+}
+
+void sub_80CB144(struct Sprite* sprite)
+{
+ if (!NotInBattle() && IsDoubleBattle() == TRUE)
+ {
+ sub_807A3FC(gBattleAnimBankTarget, 1, &sprite->pos1.x, &sprite->pos1.y);
+ }
+
+ sprite->pos1.y += 32;
+ sprite->data[0] = gBattleAnimArgs[0];
+ sprite->data[1] = gBattleAnimArgs[1];
+ sprite->data[2] = gBattleAnimArgs[2];
+ sprite->data[3] = gBattleAnimArgs[3];
+ sprite->data[4] = gBattleAnimArgs[4];
+ sprite->callback = sub_80CB1A4;
+}
+
+void sub_80CB1A4(struct Sprite* sprite)
+{
+ if (sprite->data[1] == 0xFF)
+ {
+ sprite->pos1.y -= 2;
+ }
+ else if (sprite->data[1] > 0)
+ {
+ sprite->pos1.y -= 2;
+ sprite->data[1] -= 2;
+ }
+
+ sprite->data[5] += sprite->data[2];
+ if (sprite->data[0] < sprite->data[4])
+ sprite->data[5] += sprite->data[2];
+
+ sprite->data[5] &= 0xFF;
+ sprite->pos2.x = Cos(sprite->data[5], sprite->data[3]);
+ sprite->pos2.y = Sin(sprite->data[5], 5);
+ if (sprite->data[5] <= 0x7F)
+ {
+ sprite->oam.priority = sub_8079ED4(gBattleAnimBankTarget) - 1;
+ }
+ else
+ {
+ sprite->oam.priority = sub_8079ED4(gBattleAnimBankTarget) + 1;
+ }
+
+ sprite->data[0]--;
+ if (!sprite->data[0])
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/cyclone.c b/src/battle/anim/cyclone.c
new file mode 100755
index 000000000..b19304f17
--- /dev/null
+++ b/src/battle/anim/cyclone.c
@@ -0,0 +1,28 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// cyclone (creates a circling motion like a cyclone, usually a wind sprite.)
+// Used in Razor Wind.
+
+void sub_80D0118(struct Sprite* sprite)
+{
+ sub_80787B0(sprite, 0);
+ if (GetBankSide(gBattleAnimBankAttacker) == 0)
+ sprite->pos1.y += 16;
+
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[1] = gBattleAnimArgs[2];
+ sprite->data[2] = gBattleAnimArgs[5];
+ sprite->data[3] = gBattleAnimArgs[6];
+ sprite->data[4] = gBattleAnimArgs[3];
+ sprite->callback = sub_8078114;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+ sprite->callback(sprite);
+}
diff --git a/src/battle/anim/devil.c b/src/battle/anim/devil.c
new file mode 100644
index 000000000..345ee53ea
--- /dev/null
+++ b/src/battle/anim/devil.c
@@ -0,0 +1,37 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "rom_8077ABC.h"
+#include "sprite.h"
+#include "trig.h"
+
+extern s16 gBattleAnimArgs[8];
+extern u8 gBattleAnimBankTarget;
+
+void sub_80D2ABC(struct Sprite *sprite)
+{
+ if (sprite->data[3] == 0)
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ StartSpriteAnim(sprite, 0);
+ sprite->subpriority = sub_8079E90(gBattleAnimBankTarget) - 1;
+ sprite->data[2] = 1;
+ }
+ sprite->data[0] += sprite->data[2];
+ sprite->data[1] = (sprite->data[0] * 4) % 256;
+ if (sprite->data[1] < 0)
+ sprite->data[1] = 0;
+ sprite->pos2.x = Cos(sprite->data[1], 30 - sprite->data[0] / 4);
+ sprite->pos2.y = Sin(sprite->data[1], 10 - sprite->data[0] / 8);
+ if (sprite->data[1] > 128 && sprite->data[2] > 0)
+ sprite->data[2] = -1;
+ if (sprite->data[1] == 0 && sprite->data[2] < 0)
+ sprite->data[2] = 1;
+ sprite->data[3]++;
+ if (sprite->data[3] < 10 || sprite->data[3] > 0x50)
+ sprite->invisible = sprite->data[0] % 2;
+ else
+ sprite->invisible = FALSE;
+ if (sprite->data[3] > 0x5A)
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/draw.c b/src/battle/anim/draw.c
new file mode 100755
index 000000000..c075af097
--- /dev/null
+++ b/src/battle/anim/draw.c
@@ -0,0 +1,292 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "unknown_task.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern u16 gUnknown_03004288;
+extern u16 gUnknown_030042C0;
+
+static void sub_80D0D68(u8 taskId);
+static void sub_80D0E8C(struct Sprite* sprite);
+
+// draw (draws the Pokemon into the world using a pencil.)
+// Used in Sketch.
+
+void sub_80D0C88(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ struct UnknownTaskStruct sp;
+ s16 i;
+ task->data[0] = sub_8077FC0(gBattleAnimBankTarget) + 32;
+ task->data[1] = 4;
+ task->data[2] = 0;
+ task->data[3] = 0;
+ task->data[4] = 0;
+ task->data[5] = 0;
+ task->data[15] = sub_807A100(gBattleAnimBankTarget, 0);
+ if (GetBankIdentity_permutated(gBattleAnimBankTarget) == 1)
+ {
+ task->data[6] = gUnknown_030042C0;
+ sp.dest = (u16 *)REG_ADDR_BG1HOFS;
+ }
+ else
+ {
+ task->data[6] = gUnknown_03004288;
+ sp.dest = (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;
+ }
+ }
+
+ sp.control = 0xa2600001;
+ sp.unk8 = 1;
+ sp.unk9 = 0;
+ sub_80895F8(sp);
+ task->func = sub_80D0D68;
+}
+
+#ifdef NONMATCHING
+void sub_80D0D68(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+
+ switch (task->data[4])
+ {
+ case 0:
+ if (++task->data[5] > 20)
+ task->data[4]++;
+ break;
+ case 1:
+ if (++task->data[1] > 3)
+ {
+ task->data[1] = 0;
+ task->data[2] = task->data[3] & 3;
+ task->data[5] = task->data[0] - task->data[3];
+ switch (task->data[2])
+ {
+ case 0:
+ break;
+ case 1:
+ task->data[5] -= 2;
+ break;
+ case 2:
+ task->data[5] += 1;
+ break;
+ case 3:
+ task->data[5] += 1;
+ break;
+ }
+
+ if (task->data[5] >= 0)
+ {
+ gUnknown_03004DE0[0][task->data[5]] = task->data[6];
+ gUnknown_03004DE0[1][task->data[5]] = task->data[6];
+ }
+
+ if (++task->data[3] >= task->data[15])
+ {
+ gUnknown_03004DC0.unk15 = 3;
+ DestroyAnimVisualTask(taskId);
+ }
+ }
+ break;
+ }
+}
+#else
+__attribute__((naked))
+void sub_80D0D68(u8 taskId)
+{
+ asm(".syntax unified\n\
+ push {r4,lr}\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ lsls r0, r4, 2\n\
+ adds r0, r4\n\
+ lsls r0, 3\n\
+ ldr r1, _080D0D88 @ =gTasks\n\
+ adds r3, r0, r1\n\
+ movs r1, 0x10\n\
+ ldrsh r0, [r3, r1]\n\
+ cmp r0, 0\n\
+ beq _080D0D8C\n\
+ cmp r0, 0x1\n\
+ beq _080D0DA2\n\
+ b _080D0E22\n\
+ .align 2, 0\n\
+_080D0D88: .4byte gTasks\n\
+_080D0D8C:\n\
+ ldrh r0, [r3, 0x12]\n\
+ adds r0, 0x1\n\
+ strh r0, [r3, 0x12]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x14\n\
+ ble _080D0E22\n\
+ ldrh r0, [r3, 0x10]\n\
+ adds r0, 0x1\n\
+ strh r0, [r3, 0x10]\n\
+ b _080D0E22\n\
+_080D0DA2:\n\
+ ldrh r0, [r3, 0xA]\n\
+ adds r0, 0x1\n\
+ strh r0, [r3, 0xA]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x3\n\
+ ble _080D0E22\n\
+ movs r0, 0\n\
+ strh r0, [r3, 0xA]\n\
+ ldrh r1, [r3, 0xE]\n\
+ movs r0, 0x3\n\
+ ands r0, r1\n\
+ strh r0, [r3, 0xC]\n\
+ ldrh r0, [r3, 0x8]\n\
+ subs r0, r1\n\
+ strh r0, [r3, 0x12]\n\
+ movs r2, 0xC\n\
+ ldrsh r1, [r3, r2]\n\
+ cmp r1, 0x1\n\
+ beq _080D0DD8\n\
+ cmp r1, 0x1\n\
+ ble _080D0DE0\n\
+ cmp r1, 0x2\n\
+ beq _080D0DDC\n\
+ cmp r1, 0x3\n\
+ beq _080D0DDC\n\
+ b _080D0DE0\n\
+_080D0DD8:\n\
+ subs r0, 0x2\n\
+ b _080D0DDE\n\
+_080D0DDC:\n\
+ adds r0, 0x1\n\
+_080D0DDE:\n\
+ strh r0, [r3, 0x12]\n\
+_080D0DE0:\n\
+ movs r1, 0x12\n\
+ ldrsh r0, [r3, r1]\n\
+ cmp r0, 0\n\
+ blt _080D0E04\n\
+ ldr r2, _080D0E28 @ =gUnknown_03004DE0\n\
+ lsls r0, 1\n\
+ adds r0, r2\n\
+ ldrh r1, [r3, 0x14]\n\
+ strh r1, [r0]\n\
+ movs r1, 0x12\n\
+ ldrsh r0, [r3, r1]\n\
+ lsls r0, 1\n\
+ movs r1, 0xF0\n\
+ lsls r1, 3\n\
+ adds r2, r1\n\
+ adds r0, r2\n\
+ ldrh r1, [r3, 0x14]\n\
+ strh r1, [r0]\n\
+_080D0E04:\n\
+ ldrh r0, [r3, 0xE]\n\
+ adds r0, 0x1\n\
+ strh r0, [r3, 0xE]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ movs r2, 0x26\n\
+ ldrsh r1, [r3, r2]\n\
+ cmp r0, r1\n\
+ blt _080D0E22\n\
+ ldr r1, _080D0E2C @ =gUnknown_03004DC0\n\
+ movs r0, 0x3\n\
+ strb r0, [r1, 0x15]\n\
+ adds r0, r4, 0\n\
+ bl DestroyAnimVisualTask\n\
+_080D0E22:\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080D0E28: .4byte gUnknown_03004DE0\n\
+_080D0E2C: .4byte gUnknown_03004DC0\n\
+.syntax divided\n");
+}
+#endif
+
+void sub_80D0E30(struct Sprite* sprite)
+{
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankTarget, 0) - 16;
+ sprite->pos1.y = sub_8077FC0(gBattleAnimBankTarget) + 16;
+ sprite->data[0] = 0;
+ sprite->data[1] = 0;
+ sprite->data[2] = 0;
+ sprite->data[3] = 16;
+ sprite->data[4] = 0;
+ sprite->data[5] = sub_807A100(gBattleAnimBankTarget, 0) + 2;
+ sprite->data[6] = sub_8076F98(0x3F);
+ sprite->callback = sub_80D0E8C;
+}
+
+void sub_80D0E8C(struct Sprite* sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ if (++sprite->data[2] > 1)
+ {
+ sprite->data[2] = 0;
+ sprite->invisible = !sprite->invisible;
+ }
+ if (++sprite->data[1] > 16)
+ {
+ sprite->invisible = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 1:
+ if (++sprite->data[1] > 3 && sprite->data[2] < sprite->data[5])
+ {
+ sprite->data[1] = 0;
+ sprite->pos1.y -= 1;
+ sprite->data[2]++;
+ if (sprite->data[2] % 10 == 0)
+ PlaySE12WithPanning(0xCD, sprite->data[6]);
+ }
+ sprite->data[4] += sprite->data[3];
+ if (sprite->data[4] > 31)
+ {
+ sprite->data[4] = 0x40 - sprite->data[4];
+ sprite->data[3] *= -1;
+ }
+ else if (sprite->data[4] <= -32)
+ {
+ sprite->data[4] = -0x40 - sprite->data[4];
+ sprite->data[3] *= -1;
+ }
+ sprite->pos2.x = sprite->data[4];
+ if (sprite->data[5] == sprite->data[2])
+ {
+ sprite->data[1] = 0;
+ sprite->data[2] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 2:
+ if (++sprite->data[2] > 1)
+ {
+ sprite->data[2] = 0;
+ sprite->invisible = !sprite->invisible;
+ }
+ if (++sprite->data[1] > 16)
+ {
+ sprite->invisible = 0;
+ move_anim_8072740(sprite);
+ }
+ break;
+ }
+}
diff --git a/src/battle/anim/drum.c b/src/battle/anim/drum.c
new file mode 100755
index 000000000..60cb2acc1
--- /dev/null
+++ b/src/battle/anim/drum.c
@@ -0,0 +1,32 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// drum (using hands to slap the Pokemon's belly in a rhythm.)
+// Used in Belly Drum.
+
+void sub_80CEDF0(struct Sprite* sprite)
+{
+ s16 a;
+ if (gBattleAnimArgs[0] == 1)
+ {
+ sprite->oam.matrixNum = 8;
+ a = 16;
+ }
+ else
+ {
+ a = -16;
+ }
+
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2) + a;
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3) + 8;
+ sprite->data[0] = 8;
+ sprite->callback = sub_80782D8;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+}
diff --git a/src/battle/anim/egg.c b/src/battle/anim/egg.c
new file mode 100755
index 000000000..a5bcffa6d
--- /dev/null
+++ b/src/battle/anim/egg.c
@@ -0,0 +1,122 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D13AC(struct Sprite* sprite);
+static void sub_80D1424(struct Sprite* sprite);
+static void sub_80D144C(struct Sprite* sprite);
+static void sub_80D14C4(struct Sprite* sprite);
+static void sub_80D1504(struct Sprite* sprite);
+static void sub_80D154C(struct Sprite* sprite);
+static void sub_80D158C(struct Sprite* sprite);
+
+// egg (a hatching egg)
+// Used in Softboiled.
+
+void sub_80D1368(struct Sprite* sprite)
+{
+ s16 r1;
+ sub_80787B0(sprite, 0);
+ r1 = (GetBankSide(gBattleAnimBankAttacker)) ? -0xA0 : 0xA0;
+ sprite->data[0] = 0x380;
+ sprite->data[1] = r1;
+ sprite->data[7] = gBattleAnimArgs[2];
+ sprite->callback = sub_80D13AC;
+}
+
+void sub_80D13AC(struct Sprite* sprite)
+{
+ s16 add;
+ sprite->pos2.y -= (sprite->data[0] >> 8);
+ sprite->pos2.x = sprite->data[1] >> 8;
+ sprite->data[0] -= 32;
+ add = (GetBankSide(gBattleAnimBankAttacker)) ? -0xA0 : 0xA0;
+ sprite->data[1] += add;
+ if (sprite->pos2.y > 0)
+ {
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos2.y = 0;
+ sprite->pos2.x = 0;
+ sprite->data[0] = 0;
+ StartSpriteAffineAnim(sprite, 1);
+ sprite->callback = sub_80D1424;
+ }
+}
+
+void sub_80D1424(struct Sprite* sprite)
+{
+ if (sprite->data[0]++ > 19)
+ {
+ StartSpriteAffineAnim(sprite, 2);
+ sprite->callback = sub_80D144C;
+ }
+}
+
+void sub_80D144C(struct Sprite* sprite)
+{
+ if (sprite->affineAnimEnded)
+ {
+ StartSpriteAffineAnim(sprite, 1);
+ sprite->data[0] = 0;
+ if (sprite->data[7] == 0)
+ {
+ sprite->oam.tileNum += 16;
+ sprite->callback = sub_80D14C4;
+ }
+ else
+ {
+ sprite->oam.tileNum += 32;
+ sprite->callback = sub_80D154C;
+ }
+ }
+}
+
+void sub_80D14C4(struct Sprite* sprite)
+{
+ sprite->pos2.y -= 2;
+ if (++sprite->data[0] == 9)
+ {
+ sprite->data[0] = 16;
+ sprite->data[1] = 0;
+ REG_BLDCNT = 0x3F40;
+ REG_BLDALPHA = sprite->data[0];
+ sprite->callback = sub_80D1504;
+ }
+}
+
+void sub_80D1504(struct Sprite* sprite)
+{
+ if (sprite->data[1]++ % 3 == 0)
+ {
+ sprite->data[0]--;
+ REG_BLDALPHA = sprite->data[0] | ((16 - sprite->data[0]) << 8);
+ if (sprite->data[0] == 0)
+ sprite->callback = sub_80D154C;
+ }
+}
+
+void sub_80D154C(struct Sprite* sprite)
+{
+ if ((u16)gBattleAnimArgs[7] == 0xFFFF)
+ {
+ sprite->invisible = 1;
+ if (sprite->data[7] == 0)
+ sprite->callback = sub_80D158C;
+ else
+ sprite->callback = move_anim_8072740;
+ }
+}
+
+void sub_80D158C(struct Sprite* sprite)
+{
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/energy_wave.c b/src/battle/anim/energy_wave.c
new file mode 100644
index 000000000..ffba5c300
--- /dev/null
+++ b/src/battle/anim/energy_wave.c
@@ -0,0 +1,162 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "rom_8077ABC.h"
+#include "sprite.h"
+#include "task.h"
+#include "trig.h"
+
+extern s16 gBattleAnimArgs[8];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+extern const struct SpriteTemplate gSpriteTemplate_83D9130[];
+
+static void sub_80D35DC(struct Sprite *);
+static void sub_80D365C(u8);
+static void sub_80D370C(struct Sprite *);
+
+// energy_wave (animates steady "waves" of energy)
+// Used in Hydro Pump, Mud Shot, Signal Beam, Flamethrower, Psywave, and
+// Hydro Cannon.
+
+void sub_80D3554(struct Sprite *sprite)
+{
+ sub_80787B0(sprite, 1);
+
+ sprite->data[0] = 30;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2);
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3);
+
+ obj_translate_based_on_private_1_2_3_4(sprite);
+
+ sprite->data[5] = 0xD200 / sprite->data[0];
+ sprite->data[7] = gBattleAnimArgs[3];
+
+ if (gBattleAnimArgs[7] > 127)
+ {
+ sprite->data[6] = (gBattleAnimArgs[7] - 127) << 8;
+ sprite->data[7] = -sprite->data[7];
+ }
+ else
+ {
+ sprite->data[6] = gBattleAnimArgs[7] << 8;
+ }
+
+ sprite->callback = sub_80D35DC;
+ sprite->callback(sprite);
+}
+
+static void sub_80D35DC(struct Sprite *sprite)
+{
+ if (sub_8078B5C(sprite))
+ {
+ move_anim_8072740(sprite);
+ }
+
+ sprite->pos2.y += Sin(sprite->data[6] >> 8, sprite->data[7]);
+ if (((sprite->data[6] + sprite->data[5]) >> 8) > 127)
+ {
+ sprite->data[6] = 0;
+ sprite->data[7] = -sprite->data[7];
+ }
+ else
+ {
+ sprite->data[6] += sprite->data[5];
+ }
+}
+
+void sub_80D3630(u8 taskId)
+{
+ gTasks[taskId].data[0] = gBattleAnimArgs[0];
+ gBattleAnimArgs[7] = 0;
+ gTasks[taskId].func = sub_80D365C;
+}
+
+static void sub_80D365C(u8 taskId)
+{
+ gBattleAnimArgs[7] = (gBattleAnimArgs[7] + 3) & 0xFF;
+ if (--gTasks[taskId].data[0] == 0)
+ {
+ DestroyAnimVisualTask(taskId);
+ }
+}
+
+void sub_80D3698(struct Sprite *sprite)
+{
+ u8 subpriority;
+
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 0);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 1);
+ sprite->pos2.y = -10;
+
+ subpriority = sub_8079E90(gBattleAnimBankAttacker);
+
+ if (!NotInBattle())
+ {
+ if (GetBankSide(gBattleAnimBankAttacker) == 0)
+ {
+ sprite->pos2.x = 10;
+ sprite->subpriority = subpriority + 2;
+ }
+ else
+ {
+ sprite->pos2.x = -10;
+ sprite->subpriority = subpriority - 2;
+ }
+ }
+ else
+ {
+ sprite->pos2.x = -10;
+ sprite->subpriority = subpriority + 2;
+ }
+
+ sprite->callback = sub_80D370C;
+}
+
+static void sub_80D370C(struct Sprite *sprite)
+{
+ if (sprite->affineAnimEnded)
+ {
+ move_anim_8072740(sprite);
+ }
+}
+
+void sub_80D3728(struct Sprite *sprite)
+{
+ int var1, var2;
+
+ if (GetBankSide(gBattleAnimBankAttacker) == GetBankSide(gBattleAnimBankTarget))
+ {
+ gBattleAnimArgs[0] *= -1;
+
+ if (GetBankIdentity(gBattleAnimBankAttacker) == 0 || GetBankIdentity(gBattleAnimBankAttacker) == 1)
+ {
+ gBattleAnimArgs[0] *= -1;
+ }
+
+ }
+
+ if ((gBattleAnimArgs[5] & 0xFF00) == 0)
+ var1 = 1;
+ else
+ var1 = 0;
+
+ if ((u8)gBattleAnimArgs[5] == 0)
+ var2 = 3;
+ else
+ var2 = 1;
+
+ sub_80787B0(sprite, var1);
+
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ {
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ }
+
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[2];
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, var2) + gBattleAnimArgs[3];
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+}
diff --git a/src/battle/anim/espeed.c b/src/battle/anim/espeed.c
new file mode 100755
index 000000000..621d386e1
--- /dev/null
+++ b/src/battle/anim/espeed.c
@@ -0,0 +1,241 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern s8 gUnknown_083D7A00[4][2];
+
+extern struct AffineAnimFrameCmd gUnknown_083D79BC;
+extern struct SpriteTemplate gSpriteTemplate_83D79E8;
+
+static void sub_80D15E0(u8 taskId);
+static void sub_80D16A0(u8 taskId);
+static void sub_80D1808(u8 taskId);
+static void sub_80D1930(u8 taskId);
+
+// espeed (the Pokemon's width decreases as the sprite becomes vertically compressed)
+// Used in Extremespeed.
+
+// apply espeed
+void sub_80D15A4(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ u8 spriteId = GetAnimBankSpriteId(0);
+ task->data[0] = spriteId;
+ sub_80798F4(task, spriteId, &gUnknown_083D79BC);
+ task->func = sub_80D15E0;
+}
+
+void sub_80D15E0(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ if (sub_807992C(task) == 0)
+ {
+ gSprites[task->data[0]].pos2.y = 0;
+ gSprites[task->data[0]].invisible = 1;
+ DestroyAnimVisualTask(taskId);
+ }
+}
+
+// espeed hit effect
+void sub_80D1638(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ task->data[0] = 0;
+ task->data[1] = 0;
+ task->data[2] = 0;
+ task->data[3] = 0;
+ task->data[12] = 3;
+ if (GetBankSide(gBattleAnimBankTarget) == 0)
+ {
+ task->data[13] = 0xFFFF;
+ task->data[14] = 8;
+ }
+ else
+ {
+ task->data[13] = 1;
+ task->data[14] = -8;
+ }
+
+ task->data[15] = GetAnimBankSpriteId(1);
+ task->func = sub_80D16A0;
+}
+
+void sub_80D16A0(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ gSprites[task->data[15]].pos2.x += task->data[14];
+ task->data[1] = 0;
+ task->data[2] = 0;
+ task->data[3] = 0;
+ task->data[0]++;
+ break;
+ case 1:
+ if (++task->data[1] > 1)
+ {
+ task->data[1] = 0;
+ task->data[2]++;
+ if (task->data[2] & 1)
+ gSprites[task->data[15]].pos2.x += 6;
+ else
+ gSprites[task->data[15]].pos2.x -= 6;
+
+ if (++task->data[3] > 4)
+ {
+ if (task->data[2] & 1)
+ gSprites[task->data[15]].pos2.x -= 6;
+
+ task->data[0]++;
+ }
+ }
+ break;
+ case 2:
+ if (--task->data[12] != 0)
+ task->data[0] = 0;
+ else
+ task->data[0]++;
+ break;
+ case 3:
+ gSprites[task->data[15]].pos2.x += task->data[13];
+ if (gSprites[task->data[15]].pos2.x == 0)
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+// espeed poke flicker in
+void sub_80D17C4(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ task->data[0] = 0;
+ task->data[1] = 0;
+ task->data[2] = 0;
+ task->data[3] = 0;
+ task->data[4] = 1;
+ task->data[13] = 14;
+ task->data[14] = 2;
+ task->data[15] = GetAnimBankSpriteId(0);
+ task->func = sub_80D1808;
+}
+
+void sub_80D1808(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ if (task->data[0] == 0 && ++task->data[1] > task->data[4])
+ {
+ task->data[1] = 0;
+ if (++task->data[2] & 1)
+ gSprites[task->data[15]].invisible = 0;
+ else
+ gSprites[task->data[15]].invisible = 1;
+
+ if (++task->data[3] >= task->data[13])
+ {
+ if (++task->data[4] < task->data[14])
+ {
+ task->data[1] = 0;
+ task->data[2] = 0;
+ task->data[3] = 0;
+ }
+ else
+ {
+ gSprites[task->data[15]].invisible = 0;
+ DestroyAnimVisualTask(taskId);
+ }
+ }
+ }
+}
+
+// espeed smoke flicker
+void sub_80D18D4(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ task->data[0] = 0;
+ task->data[1] = 4;
+ task->data[2] = 0;
+ task->data[3] = 0;
+ task->data[4] = 0;
+ task->data[5] = 0;
+ task->data[6] = 0;
+ task->data[7] = 0;
+ task->data[8] = 0;
+ task->data[13] = 0;
+ task->data[14] = sub_8077ABC(gBattleAnimBankAttacker, 0);
+ task->data[15] = sub_8077ABC(gBattleAnimBankAttacker, 1);
+ task->func = sub_80D1930;
+}
+
+void sub_80D1930(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ switch (task->data[8])
+ {
+ case 0:
+ if (++task->data[4] > 1)
+ {
+ task->data[4] = 0;
+ task->data[5] = (task->data[5] + 1) & 1;
+ if (++task->data[6] > 20)
+ {
+ if (task->data[7] == 0)
+ {
+ task->data[6] = 0;
+ task->data[8] = 1;
+ }
+ else
+ task->data[8] = 2;
+ }
+ }
+ break;
+ case 1:
+ task->data[5] = 0;
+ if (++task->data[4] > 20)
+ {
+ task->data[7] = 1;
+ task->data[8] = 0;
+ }
+ break;
+ case 2:
+ task->data[5] = 1;
+ break;
+ }
+
+ switch (task->data[0])
+ {
+ case 0:
+ if (++task->data[1] > 4)
+ {
+ u8 spriteId;
+ task->data[1] = 0;
+ spriteId = CreateSprite(&gSpriteTemplate_83D79E8, task->data[14], task->data[15], 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = 13;
+ gSprites[spriteId].pos2.x = gUnknown_083D7A00[task->data[2]][0];
+ gSprites[spriteId].pos2.y = gUnknown_083D7A00[task->data[2]][1];
+ task->data[13]++;
+ if (++task->data[2] > 3)
+ {
+ task->data[2] = 0;
+ if (++task->data[3] > 5)
+ task->data[0]++;
+ }
+ }
+ }
+ break;
+ case 1:
+ if (task->data[13] == 0)
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
diff --git a/src/battle/anim/evasion.c b/src/battle/anim/evasion.c
new file mode 100755
index 000000000..b4e81009b
--- /dev/null
+++ b/src/battle/anim/evasion.c
@@ -0,0 +1,95 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "palette.h"
+#include "blend_palette.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CE910(u8 taskId);
+static void sub_80CE974(struct Sprite* sprite);
+
+// evasion (the shadow seen during evasion increases, mainly Double Team.)
+// Used by Double Team.
+
+void sub_80CE7E0(u8 taskId)
+{
+ u16 i;
+ int obj;
+ u16 r3;
+ u16 r4;
+ struct Task* task = &gTasks[taskId];
+ task->data[0] = GetAnimBankSpriteId(0);
+ task->data[1] = AllocSpritePalette(0x2771);
+ r3 = (task->data[1] * 16) + 0x100;
+ r4 = (gSprites[task->data[0]].oam.paletteNum + 16) << 4;
+ for (i = 1; i < 16; i++)
+ {
+ gPlttBufferUnfaded[r3 + i] = gPlttBufferUnfaded[r4 + i];
+ }
+
+ BlendPalette(r3, 16, 11, 0);
+ task->data[3] = 0;
+ i = 0;
+ while (i <= 1 && (obj = duplicate_obj_of_side_rel2move_in_transparent_mode(0)) >= 0)
+ {
+ gSprites[obj].oam.paletteNum = task->data[1];
+ gSprites[obj].data[0] = 0;
+ gSprites[obj].data[1] = i << 7;
+ gSprites[obj].data[2] = taskId;
+ gSprites[obj].callback = sub_80CE974;
+ task->data[3]++;
+ i++;
+ }
+
+ task->func = sub_80CE910;
+ if (GetBankIdentity_permutated(gBattleAnimBankAttacker) == 1)
+ {
+ REG_DISPCNT &= 0xFDFF;
+ }
+ else
+ {
+ REG_DISPCNT &= 0xFBFF;
+ }
+}
+
+void sub_80CE910(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ if (!task->data[3])
+ {
+ if (GetBankIdentity_permutated(gBattleAnimBankAttacker) == 1)
+ REG_DISPCNT |= 0x200;
+ else
+ REG_DISPCNT |= 0x400;
+
+ FreeSpritePaletteByTag(0x2771);
+ DestroyAnimVisualTask(taskId);
+ }
+}
+
+void sub_80CE974(struct Sprite* sprite)
+{
+ if (++sprite->data[3] > 1)
+ {
+ sprite->data[3] = 0;
+ sprite->data[0]++;
+ }
+
+ if (sprite->data[0] > 0x40)
+ {
+ gTasks[sprite->data[2]].data[3]--;
+ obj_delete_but_dont_free_vram(sprite);
+ }
+ else
+ {
+ sprite->data[4] = gSineTable[sprite->data[0]] / 6;
+ sprite->data[5] = gSineTable[sprite->data[0]] / 13;
+ sprite->data[1] = (sprite->data[1] + sprite->data[5]) & 0xFF;
+ sprite->pos2.x = Sin(sprite->data[1], sprite->data[4]);
+ }
+}
diff --git a/src/battle/anim/fang.c b/src/battle/anim/fang.c
new file mode 100755
index 000000000..4df450691
--- /dev/null
+++ b/src/battle/anim/fang.c
@@ -0,0 +1,19 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// fang
+// Used by Super Fang (and probably Hyper Fang, but the actual callbacks are not in this file.)
+// (Look into this one later.)
+
+void sub_80CEA04(struct Sprite* sprite)
+{
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+ sprite->callback = sub_8078600;
+}
diff --git a/src/battle/anim/flash.c b/src/battle/anim/flash.c
new file mode 100755
index 000000000..0e087ec2d
--- /dev/null
+++ b/src/battle/anim/flash.c
@@ -0,0 +1,123 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "palette.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern struct SpriteTemplate gBattleAnimSpriteTemplate_83D6FC8;
+extern struct SpriteTemplate gBattleAnimSpriteTemplate_83D6FF8;
+
+static void sub_80CE4D4(u8 taskId);
+
+// flash (a "ting!" flash effect.)
+// Used in Moonlight.
+
+void sub_80CE3EC(u8 taskId)
+{
+ int a = sub_80791A8(1, 0, 0, 0, 0, 0, 0) & 0xFFFF;
+ int b;
+ int c;
+ int d;
+
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = a;
+ gTasks[taskId].data[4] = 0;
+ gTasks[taskId].data[5] = 0;
+ gTasks[taskId].data[6] = 0;
+ gTasks[taskId].data[7] = 13;
+ gTasks[taskId].data[8] = 14;
+ gTasks[taskId].data[9] = 15;
+ b = sub_80792C0(1, 1, 1, 1);
+ c = a | b;
+ sub_8079BF4(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void*)c);
+ b = b | (0x10000 << IndexOfSpritePaletteTag(0x27D2));
+ d = IndexOfSpritePaletteTag(0x27D3);
+ BeginNormalPaletteFade((0x10000 << d) | b, 0, 0, 0x10, 32699);
+ gTasks[taskId].func = sub_80CE4D4;
+ sub_80CE4D4(taskId);
+}
+
+void sub_80CE4D4(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ switch (task->data[0])
+ {
+ case 0:
+ if (++task->data[1] > 0)
+ {
+ u16 color;
+ u16 bitmask;
+ u16 r3;
+ u16 i;
+ u16 j;
+ task->data[1] = 0;
+ if (++task->data[2] <= 15)
+ {
+ u16 red;
+ u16 green;
+ u16 blue;
+ task->data[4] += task->data[7];
+ task->data[5] += task->data[8];
+ task->data[6] += task->data[9];
+ red = task->data[4] >> 3;
+ green = task->data[5] >> 3;
+ blue = task->data[6] >> 3;
+ color = RGB(red, green, blue);
+ }
+ else
+ {
+ color = RGB(27, 29, 31);
+ task->data[0]++;
+ }
+
+ bitmask = 1;
+ r3 = 0;
+ for (i = 0; i <= 15; i++)
+ {
+ if (task->data[3] & bitmask)
+ {
+ for (j = 1; j <= 15; j++)
+ {
+ gPlttBufferFaded[r3 + j] = color;
+ }
+ }
+
+ bitmask <<= 1;
+ r3 += 16;
+ }
+ }
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ u8 spriteId;
+ for (spriteId = 0; spriteId < MAX_SPRITES; spriteId++)
+ {
+ if (gSprites[spriteId].template == &gBattleAnimSpriteTemplate_83D6FC8 || gSprites[spriteId].template == &gBattleAnimSpriteTemplate_83D6FF8)
+ gSprites[spriteId].data[0] = 1;
+ }
+
+ task->data[1] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 2:
+ if (++task->data[1] > 30)
+ {
+ BeginNormalPaletteFade((u32)sub_8079BFC(task->data[14], task->data[15]), 0, 16, 0, RGB(27, 29, 31));
+ task->data[0]++;
+ }
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
diff --git a/src/battle/anim/flying_hearts.c b/src/battle/anim/flying_hearts.c
new file mode 100755
index 000000000..5b7d31a51
--- /dev/null
+++ b/src/battle/anim/flying_hearts.c
@@ -0,0 +1,40 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D2094(struct Sprite* sprite);
+
+// flying_hearts (hearts float upward from the bottom of the screen.)
+// Used in Attract.
+
+void sub_80D2064(struct Sprite* sprite)
+{
+ sprite->pos1.x = gBattleAnimArgs[0];
+ sprite->pos1.y = 0xA0;
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[1] = gBattleAnimArgs[1];
+ sprite->callback = sub_80782D8;
+ StoreSpriteCallbackInData(sprite, sub_80D2094);
+}
+
+void sub_80D2094(struct Sprite* sprite)
+{
+ s16 y;
+ sprite->data[2] += sprite->data[1];
+ sprite->pos2.y = -((u16)sprite->data[2] >> 8);
+ sprite->pos2.x = Sin(sprite->data[3], 4);
+ sprite->data[3] = (sprite->data[3] + 3) & 0xFF;
+ y = sprite->pos1.y + sprite->pos2.y;
+ if (y <= 0x48)
+ {
+ sprite->invisible = sprite->data[3] % 2;
+ if (y <= 0x40)
+ move_anim_8072740(sprite);
+ }
+}
diff --git a/src/battle/anim/flying_path.c b/src/battle/anim/flying_path.c
new file mode 100755
index 000000000..017f89858
--- /dev/null
+++ b/src/battle/anim/flying_path.c
@@ -0,0 +1,296 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern struct SpriteTemplate gSpriteTemplate_83D6884;
+
+static void sub_80CBF5C(u8 taskId);
+static s16 sub_80CC338(struct Sprite* sprite);
+static void sub_80CC358(struct Task* task, u8 taskId);
+static void sub_80CC408(struct Sprite* sprite);
+
+// flying_path (guides a sprite along a specific path.)
+// Used by Leaf Blade.
+
+void sub_80CBDF4(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ task->data[4] = sub_8079E90(gBattleAnimBankTarget) - 1;
+ task->data[6] = sub_8077ABC(gBattleAnimBankTarget, 2);
+ task->data[7] = sub_8077ABC(gBattleAnimBankTarget, 3);
+ task->data[10] = sub_807A100(gBattleAnimBankTarget, 1);
+ task->data[11] = sub_807A100(gBattleAnimBankTarget, 0);
+ task->data[5] = (GetBankSide(gBattleAnimBankTarget) == 1) ? 1 : -1;
+ task->data[9] = 0x38 - (task->data[5] * 64);
+ task->data[8] = task->data[7] - task->data[9] + task->data[6];
+ task->data[2] = CreateSprite(&gSpriteTemplate_83D6884, task->data[8], task->data[9], task->data[4]);
+ if (task->data[2] == 0x40)
+ DestroyAnimVisualTask(taskId);
+
+ gSprites[task->data[2]].data[0] = 10;
+ gSprites[task->data[2]].data[1] = task->data[8];
+ gSprites[task->data[2]].data[2] = task->data[6] - (task->data[10] / 2 + 10) * task->data[5];
+ gSprites[task->data[2]].data[3] = task->data[9];
+ gSprites[task->data[2]].data[4] = task->data[7] + (task->data[11] / 2 + 10) * task->data[5];
+ gSprites[task->data[2]].data[5] = sub_80CC338(&gSprites[task->data[2]]);
+ sub_80786EC(&gSprites[task->data[2]]);
+ task->func = sub_80CBF5C;
+}
+
+void sub_80CBF5C(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ struct Sprite* sprite = &gSprites[task->data[2]];
+ int a = task->data[0];
+ switch (a)
+ {
+ case 4:
+ sub_80CC358(task, taskId);
+ if (sub_8078718(sprite) == 0)
+ {
+ break;
+ }
+ else
+ {
+ task->data[15] = 5;
+ task->data[0] = 0xFF;
+ }
+ break;
+ case 8:
+ sub_80CC358(task, taskId);
+ if (sub_8078718(sprite) == 0)
+ {
+ break;
+ }
+ else
+ {
+ task->data[15] = 9;
+ task->data[0] = 0xFF;
+ }
+ break;
+ case 0:
+ sub_80CC358(task, taskId);
+ if (sub_8078718(sprite) == 0)
+ break;
+
+ task->data[15] = 1;
+ task->data[0] = 0xFF;
+ break;
+ case 1:
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data[0] = 10;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = task->data[6];
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = task->data[7];
+ sprite->data[5] = sub_80CC338(sprite);
+ task->data[4] += 2;
+ task->data[3] = a;
+ sprite->subpriority = task->data[4];
+ StartSpriteAnim(sprite, task->data[3]);
+ sub_80786EC(sprite);
+ task->data[0]++;
+ break;
+ case 2:
+ sub_80CC358(task, taskId);
+ if (sub_8078718(sprite) == 0)
+ break;
+
+ task->data[15] = 3;
+ task->data[0] = 0xFF;
+ break;
+ case 3:
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data[0] = 10;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = task->data[6] - ((task->data[10] / 2) + 10) * task->data[5];
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = task->data[7] - ((task->data[11] / 2) + 10) * task->data[5];
+ sprite->data[5] = sub_80CC338(sprite);
+ task->data[3] = 2;
+ sprite->subpriority = task->data[4];
+ StartSpriteAnim(sprite, task->data[3]);
+ sub_80786EC(sprite);
+ task->data[0]++;
+ break;
+ case 5:
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data[0] = 10;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = task->data[6] + ((task->data[10] / 2) + 10) * task->data[5];
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = task->data[7] + ((task->data[11] / 2) + 10) * task->data[5];
+ sprite->data[5] = sub_80CC338(sprite);
+ task->data[4] -= 2;
+ task->data[3] = 3;
+ sprite->subpriority = task->data[4];
+ StartSpriteAnim(sprite, task->data[3]);
+ sub_80786EC(sprite);
+ task->data[0]++;
+ break;
+ case 6:
+ sub_80CC358(task, taskId);
+ if (sub_8078718(sprite) == 0)
+ break;
+
+ task->data[15] = 7;
+ task->data[0] = 0xFF;
+ break;
+ case 7:
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data[0] = 10;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = task->data[6];
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = task->data[7];
+ sprite->data[5] = sub_80CC338(sprite);
+ task->data[4] += 2;
+ task->data[3] = 4;
+ sprite->subpriority = task->data[4];
+ StartSpriteAnim(sprite, task->data[3]);
+ sub_80786EC(sprite);
+ task->data[0]++;
+ break;
+ case 9:
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data[0] = 10;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = task->data[6] - ((task->data[10] / 2) + 10) * task->data[5];
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = task->data[7] + ((task->data[11] / 2) + 10) * task->data[5];
+ sprite->data[5] = sub_80CC338(sprite);
+ task->data[3] = 5;
+ sprite->subpriority = task->data[4];
+ StartSpriteAnim(sprite, task->data[3]);
+ sub_80786EC(sprite);
+ task->data[0]++;
+ break;
+ case 10:
+ sub_80CC358(task, taskId);
+ if (sub_8078718(sprite) == 0)
+ {
+ break;
+ }
+ else
+ {
+ task->data[15] = 11;
+ task->data[0] = 0xFF;
+ }
+ break;
+ case 11:
+ {
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data[0] = 10;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = task->data[8];
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = task->data[9];
+ sprite->data[5] = sub_80CC338(sprite);
+ task->data[4] -= 2;
+ task->data[3] = 6;
+ sprite->subpriority = task->data[4];
+ StartSpriteAnim(sprite, task->data[3]);
+ sub_80786EC(sprite);
+ task->data[0]++;
+ break;
+ }
+ case 12:
+ sub_80CC358(task, taskId);
+ if (sub_8078718(sprite) != 0)
+ {
+ DestroySprite(sprite);
+ task->data[0]++;
+ }
+ break;
+ case 13:
+ if (task->data[12] == 0)
+ {
+ DestroyAnimVisualTask(taskId);
+ }
+ break;
+ case 255:
+ task->data[1]++;
+ if (task->data[1] > 5)
+ {
+ task->data[1] = 0;
+ task->data[0] = task->data[15];
+ }
+ break;
+ }
+}
+
+s16 sub_80CC338(struct Sprite* sprite)
+{
+ s16 var = 8;
+ if (sprite->data[4] < sprite->pos1.y)
+ var = -var;
+
+ return var;
+}
+
+void sub_80CC358(struct Task* task, u8 taskId)
+{
+ task->data[14]++;
+ if (task->data[14] > 0)
+ {
+ u8 spriteId;
+ s16 spriteX;
+ s16 spriteY;
+ task->data[14] = 0;
+ spriteX = gSprites[task->data[2]].pos1.x + gSprites[task->data[2]].pos2.x;
+ spriteY = gSprites[task->data[2]].pos1.y + gSprites[task->data[2]].pos2.y;
+ spriteId = CreateSprite(&gSpriteTemplate_83D6884, spriteX, spriteY, task->data[4]);
+ if (spriteId != 0x40)
+ {
+ gSprites[spriteId].data[6] = taskId;
+ gSprites[spriteId].data[7] = 12;
+ gTasks[taskId].data[12]++;
+ gSprites[spriteId].data[0] = task->data[13] & 1;
+ gTasks[taskId].data[13]++;
+ StartSpriteAnim(&gSprites[spriteId], task->data[3]);
+ gSprites[spriteId].subpriority = task->data[4];
+ gSprites[spriteId].callback = sub_80CC408;
+ }
+ }
+}
+
+void sub_80CC408(struct Sprite* sprite)
+{
+ sprite->data[0]++;
+ if (sprite->data[0] > 1)
+ {
+ sprite->data[0] = 0;
+ sprite->invisible ^= 1;
+ sprite->data[1]++;
+ if (sprite->data[1] > 8)
+ {
+ gTasks[sprite->data[6]].data[sprite->data[7]]--;
+ DestroySprite(sprite);
+ }
+ }
+}
diff --git a/src/battle/anim/flying_petals.c b/src/battle/anim/flying_petals.c
new file mode 100755
index 000000000..ed6497b7a
--- /dev/null
+++ b/src/battle/anim/flying_petals.c
@@ -0,0 +1,83 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CC580(struct Sprite* sprite);
+
+// flying_petals (petals fly across the screen.)
+// Used by Aromatherapy.
+
+void sub_80CC474(struct Sprite* sprite)
+{
+ u8 bank;
+ if (!gBattleAnimArgs[6])
+ bank = gBattleAnimBankAttacker;
+ else
+ bank = gBattleAnimBankTarget;
+
+ if (GetBankSide(bank) != 0)
+ {
+ sprite->data[4] = 0;
+ sprite->data[2] = gBattleAnimArgs[3];
+ sprite->pos1.x = 0xFFF0;
+ }
+ else
+ {
+ sprite->data[4] = 1;
+ sprite->data[2] = -gBattleAnimArgs[3];
+ sprite->pos1.x = 0x100;
+ }
+
+ sprite->data[1] = gBattleAnimArgs[1];
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[3] = gBattleAnimArgs[4];
+ switch (gBattleAnimArgs[5])
+ {
+ case 0:
+ sprite->pos1.y = gBattleAnimArgs[0];
+ sprite->oam.priority = sub_8079ED4(bank);
+ break;
+ case 1:
+ sprite->pos1.y = gBattleAnimArgs[0];
+ sprite->oam.priority = sub_8079ED4(bank) + 1;
+ break;
+ case 2:
+ sprite->pos1.y = sub_8077ABC(bank, 3) + gBattleAnimArgs[0];
+ sprite->oam.priority = sub_8079ED4(bank);
+ break;
+ case 3:
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankTarget, 3) + gBattleAnimArgs[0];
+ GetAnimBankSpriteId(1);
+ sprite->oam.priority = sub_8079ED4(bank) + 1;
+ break;
+ }
+
+ sprite->callback = sub_80CC580;
+}
+
+void sub_80CC580(struct Sprite* sprite)
+{
+ int a = sprite->data[7];
+ sprite->data[7]++;
+ sprite->pos2.y = (sprite->data[1] * gSineTable[sprite->data[0]]) >> 8;
+ sprite->pos2.x = sprite->data[2] * a;
+ sprite->data[0] = (sprite->data[3] * a) & 0xFF;
+ if (sprite->data[4] == 0)
+ {
+ if (sprite->pos2.x + sprite->pos1.x <= 0xF7)
+ return;
+ }
+ else
+ {
+ if (sprite->pos2.x + sprite->pos1.x > -16)
+ return;
+ }
+
+ move_anim_8074EE0(sprite);
+}
diff --git a/src/battle/anim/fury_cutter_count.c b/src/battle/anim/fury_cutter_count.c
new file mode 100644
index 000000000..17b084585
--- /dev/null
+++ b/src/battle/anim/fury_cutter_count.c
@@ -0,0 +1,20 @@
+#include "global.h"
+#include "battle_anim.h"
+
+extern s16 gBattleAnimArgs[8];
+extern u8 *gDisableStructMoveAnim; // TODO: this is declared with a different type in different files
+
+// fury_cutter (updates the direction and count of the fury cutter animation)
+// Used in Fury Cutter.
+
+void UpdateFuryCutterAnimDirection(u8 taskId)
+{
+ gBattleAnimArgs[7] = gDisableStructMoveAnim[16] & 1;
+ DestroyAnimVisualTask(taskId);
+}
+
+void UpdateFuryCutterAnimCount(u8 taskId)
+{
+ gBattleAnimArgs[7] = gDisableStructMoveAnim[16];
+ DestroyAnimVisualTask(taskId);
+}
diff --git a/src/battle/anim/glitter.c b/src/battle/anim/glitter.c
new file mode 100755
index 000000000..548397932
--- /dev/null
+++ b/src/battle/anim/glitter.c
@@ -0,0 +1,63 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// glitter (the sparkling effect seen on Pokemon, usually after healing or a beneficial effect.)
+// Used by Heal Bell, Cosmic Power, and Aromatherapy.
+
+void sub_80CD140(struct Sprite* sprite)
+{
+ if (!gBattleAnimArgs[2])
+ sub_8078650(sprite);
+
+ sub_807867C(sprite, gBattleAnimArgs[0]);
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->data[0] = gBattleAnimArgs[5];
+ sprite->data[1] = gBattleAnimArgs[3];
+ sprite->data[2] = gBattleAnimArgs[4];
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+ sprite->callback = sub_8078394;
+}
+
+void sub_80CD190(struct Sprite* sprite)
+{
+ u8 bank;
+ if (!gBattleAnimArgs[2])
+ bank = gBattleAnimBankAttacker;
+ else
+ bank = gBattleAnimBankTarget;
+
+ if (IsDoubleBattle() && IsAnimBankSpriteVisible(bank ^ 2))
+ {
+ sub_807A3FC(bank, gBattleAnimArgs[6], &sprite->pos1.x, &sprite->pos1.y);
+ sub_807867C(sprite, gBattleAnimArgs[0]);
+ sprite->pos1.y += gBattleAnimArgs[1];
+ }
+ else
+ {
+ if (!gBattleAnimArgs[6])
+ {
+ sprite->pos1.x = sub_8077ABC(bank, 0);
+ sprite->pos1.y = sub_8077ABC(bank, 1) + gBattleAnimArgs[1];
+ }
+ else
+ {
+ sprite->pos1.x = sub_8077ABC(bank, 2);
+ sprite->pos1.y = sub_8077ABC(bank, 3) + gBattleAnimArgs[1];
+ }
+
+ sub_807867C(sprite, gBattleAnimArgs[0]);
+ }
+
+ sprite->data[0] = gBattleAnimArgs[5];
+ sprite->data[1] = gBattleAnimArgs[3];
+ sprite->data[2] = gBattleAnimArgs[4];
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+ sprite->callback = sub_8078394;
+}
diff --git a/src/battle/anim/glow.c b/src/battle/anim/glow.c
new file mode 100755
index 000000000..6038825af
--- /dev/null
+++ b/src/battle/anim/glow.c
@@ -0,0 +1,55 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "ewram.h"
+#include "palette.h"
+#include "decompress.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern u16 gUnknown_083D7A5C[5];
+
+extern struct INCBIN_U8 gBattleAnimSpritePalette_206;
+
+// glow (a whitening effect where the Pokemon glows white in a cycle.)
+// Used in Heal Bell.
+
+void sub_80D1ADC(u8 taskId)
+{
+ int i;
+ u8 sp[8];
+ void* src;
+ void* dest;
+ void* what;
+ sp[0] = IndexOfSpritePaletteTag(0x27DE);
+ for (i = 1; i <= 4; i++)
+ {
+ sp[i] = AllocSpritePalette(0x2710 - i);
+ }
+
+ src = &gBattleAnimSpritePalette_206;
+ dest = (NotInBattle()) ? gSharedMem + 0x18000 - 0x3800: gSharedMem + 0x18000;
+ LZDecompressWram(src, dest);
+ for (i = 0; i <= 4; i++)
+ {
+ what = ((NotInBattle()) ? gSharedMem + 0x14800 : gSharedMem + 0x18000) + (i << 5);
+ LoadPalette(what, (u16)((sp[i] << 4) + 0x100), 32);
+ }
+
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_80D1B80(u8 taskId)
+{
+ int i;
+ for (i = 0; i < 5; i++)
+ {
+ FreeSpritePaletteByTag(gUnknown_083D7A5C[i]);
+ }
+
+ DestroyAnimVisualTask(taskId);
+}
diff --git a/src/battle/anim/grip.c b/src/battle/anim/grip.c
new file mode 100755
index 000000000..93c3dba96
--- /dev/null
+++ b/src/battle/anim/grip.c
@@ -0,0 +1,44 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D020C(struct Sprite* sprite);
+
+// grip (does a slash which is capable of mirroring for the effect of "gripping".)
+// Used in Vice Grip.
+
+void sub_80D0178(struct Sprite* sprite)
+{
+ s16 r7 = 32;
+ s16 r4 = -32;
+ s16 r8 = 16;
+ s16 r6 = -16;
+ if (gBattleAnimArgs[0] != 0)
+ {
+ r7 = r4;
+ r4 = 32;
+ r8 = r6;
+ r6 = 16;
+ StartSpriteAnim(sprite, 1);
+ }
+
+ sprite->pos1.x += r7;
+ sprite->pos1.y += r4;
+ sprite->data[0] = 6;
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2) + r8;
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3) + r6;
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, sub_80D020C);
+}
+
+void sub_80D020C(struct Sprite* sprite)
+{
+ if (sprite->animEnded == 1)
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/grow.c b/src/battle/anim/grow.c
new file mode 100755
index 000000000..35047c8b0
--- /dev/null
+++ b/src/battle/anim/grow.c
@@ -0,0 +1,31 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern struct AffineAnimFrameCmd gUnknown_083D7714;
+
+static void sub_80D0904(u8 taskId);
+
+// grow (grows a Pokemon then shrinks back to normal size.)
+// Used in Swagger and Bulk Up.
+
+void sub_80D08C8(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ u8 spriteId = GetAnimBankSpriteId(0);
+ sub_80798F4(task, spriteId, &gUnknown_083D7714);
+ task->func = sub_80D0904;
+}
+
+void sub_80D0904(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ if (!sub_807992C(task))
+ DestroyAnimVisualTask(taskId);
+}
diff --git a/src/battle/anim/guard.c b/src/battle/anim/guard.c
new file mode 100644
index 000000000..4769db2e4
--- /dev/null
+++ b/src/battle/anim/guard.c
@@ -0,0 +1,34 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "rom_8077ABC.h"
+
+extern s16 gBattleAnimArgs[8];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+extern u16 gBattleTypeFlags;
+
+// guard (moves guard rings upwards)
+// Used in Safeguard.
+
+void sub_80D3014(struct Sprite *sprite)
+{
+ if ((gBattleTypeFlags & 1) && IsAnimBankSpriteVisible(gBattleAnimBankAttacker ^ 2))
+ {
+ sub_807A3FC(gBattleAnimBankAttacker, 0, &sprite->pos1.x, &sprite->pos1.y);
+ sprite->pos1.y += 40;
+
+ StartSpriteAffineAnim(sprite, 1);
+ }
+ else
+ {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 0);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 1) + 40;
+ }
+
+ sprite->data[0] = 13;
+ sprite->data[2] = sprite->pos1.x;
+ sprite->data[4] = sprite->pos1.y - 72;
+
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+}
diff --git a/src/battle/anim/guillotine.c b/src/battle/anim/guillotine.c
new file mode 100755
index 000000000..b710f372a
--- /dev/null
+++ b/src/battle/anim/guillotine.c
@@ -0,0 +1,90 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D02D0(struct Sprite* sprite);
+static void sub_80D0344(struct Sprite* sprite);
+static void sub_80D03A8(struct Sprite* sprite);
+
+// guillotine (does a reverse grip where the slices can reverse at a given period.)
+// Used in Guillotine.
+
+void sub_80D0228(struct Sprite* sprite)
+{
+ s16 r8 = 32;
+ s16 r4 = -32;
+ s16 r9 = 16;
+ s16 r6 = -16;
+ if (gBattleAnimArgs[0] != 0)
+ {
+ r8 = r4;
+ r4 = 32;
+ r9 = r6;
+ r6 = 16;
+ StartSpriteAnim(sprite, gBattleAnimArgs[0]);
+ }
+
+ sprite->pos1.x += r8;
+ sprite->pos1.y += r4;
+ sprite->data[0] = 6;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2) + r9;
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3) + r6;
+ obj_translate_based_on_private_1_2_3_4(sprite);
+ sprite->data[5] = gBattleAnimArgs[0];
+ sprite->data[6] = sprite->data[0];
+ sprite->callback = sub_80D02D0;
+}
+
+void sub_80D02D0(struct Sprite* sprite)
+{
+ if (sub_8078B5C(sprite) && sprite->animEnded == 1)
+ {
+ SeekSpriteAnim(sprite, 0);
+ sprite->animPaused = 1;
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.x = 2;
+ sprite->pos2.y = -2;
+ sprite->data[0] = sprite->data[6];
+ sprite->data[1] ^= 1;
+ sprite->data[2] ^= 1;
+ sprite->data[4] = 0;
+ sprite->data[3] = 0;
+ sprite->callback = sub_80D0344;
+ }
+}
+
+void sub_80D0344(struct Sprite* sprite)
+{
+ if (sprite->data[3])
+ {
+ sprite->pos2.x = -sprite->pos2.x;
+ sprite->pos2.y = -sprite->pos2.y;
+ }
+
+ sprite->data[3] ^= 1;
+ if (++sprite->data[4] == 0x33)
+ {
+ sprite->pos2.y = 0;
+ sprite->pos2.x = 0;
+ sprite->data[4] = 0;
+ sprite->data[3] = 0;
+ sprite->animPaused = 0;
+ StartSpriteAnim(sprite, sprite->data[5] ^ 1);
+ sprite->callback = sub_80D03A8;
+ }
+}
+
+void sub_80D03A8(struct Sprite* sprite)
+{
+ if (sub_8078B5C(sprite) != 0)
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/heal.c b/src/battle/anim/heal.c
new file mode 100755
index 000000000..c5950650c
--- /dev/null
+++ b/src/battle/anim/heal.c
@@ -0,0 +1,27 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// heal (healing sparkles on a Pokemon)
+// Used in Present, if the move heals instead of damages.
+
+void sub_80CBAA4(struct Sprite* sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ sub_8078764(sprite, 0);
+ sprite->data[1] = gBattleAnimArgs[2];
+ }
+
+ sprite->data[0]++;
+ sprite->pos2.y = sprite->data[1] * sprite->data[0];
+ if (sprite->animEnded)
+ {
+ move_anim_8072740(sprite);
+ }
+}
diff --git a/src/battle/anim/heart_1.c b/src/battle/anim/heart_1.c
new file mode 100755
index 000000000..1ab83136c
--- /dev/null
+++ b/src/battle/anim/heart_1.c
@@ -0,0 +1,25 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// heart_1 (a floating heart in a wave pattern upward.)
+// Used in Charm, Covet, and when a Pokemon is infatuated.
+
+void sub_80D1C80(struct Sprite* sprite)
+{
+ if (++sprite->data[0] == 1)
+ sub_80787B0(sprite, 0);
+
+ sprite->pos2.x = Sin(sprite->data[1], 8);
+ sprite->pos2.y = sprite->data[2] >> 8;
+ sprite->data[1] = (sprite->data[1] + 7) & 0xFF;
+ sprite->data[2] -= 0x80;
+ if (sprite->data[0] == 0x3C)
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/heated_rock.c b/src/battle/anim/heated_rock.c
new file mode 100644
index 000000000..1d59669cf
--- /dev/null
+++ b/src/battle/anim/heated_rock.c
@@ -0,0 +1,205 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "rom_8077ABC.h"
+
+extern s16 gBattleAnimArgs[8];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+extern u16 gBattleTypeFlags;
+
+void sub_80D59B0(struct Sprite *);
+static void sub_80D5A74(struct Sprite *);
+
+// heated_rock (moves heated rock sprites)
+// Used in Eruption.
+
+void sub_80D58FC(struct Sprite *sprite)
+{
+ sub_80D59B0(sprite);
+
+ if (sprite->invisible)
+ {
+ gTasks[sprite->data[6]].data[sprite->data[7]]--;
+ DestroySprite(sprite);
+ }
+}
+
+u16 sub_80D5940(u8 spriteId)
+{
+ u16 var1 = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y + gSprites[spriteId].centerToCornerVecY;
+
+ if (GetBankSide(gBattleAnimBankAttacker) == 0)
+ {
+ var1 = ((var1 << 16) + 0x4A0000) >> 16;
+ }
+ else
+ {
+ var1 = ((var1 << 16) + 0x2C0000) >> 16;
+ }
+
+ return var1;
+}
+
+void sub_80D5994(struct Sprite *sprite, s16 x, s16 y)
+{
+ sprite->data[0] = 0;
+ sprite->data[1] = 0;
+ sprite->data[2] = (u16)sprite->pos1.x * 8;
+ sprite->data[3] = (u16)sprite->pos1.y * 8;
+ sprite->data[4] = x * 8;
+ sprite->data[5] = y * 8;
+}
+
+#ifdef NONMATCHING
+void sub_80D59B0(struct Sprite *sprite)
+{
+ int var1;
+ int var2;
+
+ if (++sprite->data[0] > 2)
+ {
+ sprite->data[0] = 0;
+ ++sprite->data[1];
+ sprite->data[3] += ((u16)sprite->data[1] * (u16)sprite->data[1]);
+ }
+
+ var1 = (u16)sprite->data[4] + (u16)sprite->data[2];
+ sprite->data[2] = var1;
+ var1 = (s16)var1 >> 3;
+ sprite->pos1.x = var1;
+
+ var2 = (u16)sprite->data[5] + (u16)sprite->data[3];
+ sprite->data[3] = var2;
+ var2 = (s16)var2 >> 3;
+ sprite->pos1.y = var2;
+
+ if ((u32)((var1 + 8) << 16) > 0x1000000 || var2 < -8 || var2 > 120)
+ {
+ sprite->invisible = 1;
+ }
+}
+#else
+__attribute__((naked))
+void sub_80D59B0(struct Sprite *sprite)
+{
+ asm(".syntax unified\n\
+ push {lr}\n\
+ adds r2, r0, 0\n\
+ ldrh r0, [r2, 0x2E]\n\
+ adds r0, 0x1\n\
+ strh r0, [r2, 0x2E]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x2\n\
+ ble _080D59DA\n\
+ movs r0, 0\n\
+ strh r0, [r2, 0x2E]\n\
+ ldrh r0, [r2, 0x30]\n\
+ adds r0, 0x1\n\
+ strh r0, [r2, 0x30]\n\
+ ldrh r0, [r2, 0x30]\n\
+ adds r1, r0, 0\n\
+ muls r1, r0\n\
+ adds r0, r1, 0\n\
+ ldrh r3, [r2, 0x34]\n\
+ adds r0, r3\n\
+ strh r0, [r2, 0x34]\n\
+_080D59DA:\n\
+ ldrh r0, [r2, 0x36]\n\
+ ldrh r1, [r2, 0x32]\n\
+ adds r0, r1\n\
+ strh r0, [r2, 0x32]\n\
+ lsls r0, 16\n\
+ asrs r0, 19\n\
+ strh r0, [r2, 0x20]\n\
+ ldrh r1, [r2, 0x38]\n\
+ ldrh r3, [r2, 0x34]\n\
+ adds r1, r3\n\
+ strh r1, [r2, 0x34]\n\
+ lsls r1, 16\n\
+ asrs r3, r1, 19\n\
+ strh r3, [r2, 0x22]\n\
+ adds r0, 0x8\n\
+ lsls r0, 16\n\
+ movs r1, 0x80\n\
+ lsls r1, 17\n\
+ cmp r0, r1\n\
+ bhi _080D5A10\n\
+ adds r1, r3, 0\n\
+ movs r0, 0x8\n\
+ negs r0, r0\n\
+ cmp r1, r0\n\
+ blt _080D5A10\n\
+ cmp r1, 0x78\n\
+ ble _080D5A1C\n\
+_080D5A10:\n\
+ adds r0, r2, 0\n\
+ adds r0, 0x3E\n\
+ ldrb r1, [r0]\n\
+ movs r2, 0x4\n\
+ orrs r1, r2\n\
+ strb r1, [r0]\n\
+_080D5A1C:\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
+
+void sub_80D5A20(struct Sprite *sprite)
+{
+ sprite->pos1.x = gBattleAnimArgs[0];
+ sprite->pos1.y = gBattleAnimArgs[1];
+
+ sprite->data[0] = 0;
+ sprite->data[1] = 0;
+ sprite->data[2] = 0;
+ sprite->data[6] = gBattleAnimArgs[2];
+ sprite->data[7] = gBattleAnimArgs[3];
+
+ sprite->oam.tileNum += gBattleAnimArgs[4] * 16;
+ sprite->callback = sub_80D5A74;
+}
+
+static void sub_80D5A74(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ if (sprite->data[6] != 0)
+ {
+ sprite->data[6]--;
+ return;
+ }
+
+ sprite->data[0]++;
+ // fall through
+ case 1:
+ sprite->pos1.y += 8;
+ if (sprite->pos1.y >= sprite->data[7])
+ {
+ sprite->pos1.y = sprite->data[7];
+ sprite->data[0]++;
+ }
+ break;
+ case 2:
+ if (++sprite->data[1] > 1)
+ {
+ sprite->data[1] = 0;
+ if ((++sprite->data[2] & 1) != 0)
+ {
+ sprite->pos2.y = -3;
+ }
+ else
+ {
+ sprite->pos2.y = 3;
+ }
+ }
+
+ if (++sprite->data[3] > 16)
+ {
+ move_anim_8072740(sprite);
+ }
+ break;
+ }
+}
diff --git a/src/battle/anim/homing.c b/src/battle/anim/homing.c
new file mode 100755
index 000000000..c5e372d78
--- /dev/null
+++ b/src/battle/anim/homing.c
@@ -0,0 +1,86 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CC7D4(struct Sprite* sprite);
+
+// homing (the spinning effect of sprites going inward in a static rotation.)
+// Used by Needle Arm.
+
+void sub_80CC6CC(struct Sprite* sprite)
+{
+ u8 a;
+ u8 b;
+ u16 c;
+ u16 x;
+ u16 y;
+
+ if (gBattleAnimArgs[4] == 0)
+ {
+ move_anim_8072740(sprite);
+ }
+ else
+ {
+ if (gBattleAnimArgs[0] == 0)
+ {
+ a = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ b = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ }
+ else
+ {
+ a = sub_8077ABC(gBattleAnimBankTarget, 2);
+ b = sub_8077ABC(gBattleAnimBankTarget, 3);
+ }
+
+ sprite->data[0] = gBattleAnimArgs[4];
+ if (gBattleAnimArgs[1] == 0)
+ {
+ sprite->pos1.x = gBattleAnimArgs[2] + a;
+ sprite->pos1.y = gBattleAnimArgs[3] + b;
+ sprite->data[5] = a;
+ sprite->data[6] = b;
+ }
+ else
+ {
+ sprite->pos1.x = a;
+ sprite->pos1.y = b;
+ sprite->data[5] = gBattleAnimArgs[2] + a;
+ sprite->data[6] = gBattleAnimArgs[3] + b;
+ }
+
+ x = sprite->pos1.x;
+ sprite->data[1] = x * 16;
+ y = sprite->pos1.y;
+ sprite->data[2] = y * 16;
+ sprite->data[3] = (sprite->data[5] - sprite->pos1.x) * 16 / gBattleAnimArgs[4];
+ sprite->data[4] = (sprite->data[6] - sprite->pos1.y) * 16 / gBattleAnimArgs[4];
+ c = sub_80790F0(sprite->data[5] - x, sprite->data[6] - y);
+ if (NotInBattle())
+ c -= 0x8000;
+
+ sub_8078FDC(sprite, 0, 0x100, 0x100, c);
+ sprite->callback = sub_80CC7D4;
+ }
+}
+
+void sub_80CC7D4(struct Sprite* sprite)
+{
+ if (sprite->data[0])
+ {
+ sprite->data[1] += sprite->data[3];
+ sprite->data[2] += sprite->data[4];
+ sprite->pos1.x = sprite->data[1] >> 4 ;
+ sprite->pos1.y = sprite->data[2] >> 4 ;
+ sprite->data[0]--;
+ }
+ else
+ {
+ move_anim_8074EE0(sprite);
+ }
+}
diff --git a/src/battle/anim/hop.c b/src/battle/anim/hop.c
new file mode 100755
index 000000000..60f3b8a48
--- /dev/null
+++ b/src/battle/anim/hop.c
@@ -0,0 +1,160 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// hop (where a sprite "hops" across the screen)
+// Used by Present, Trick, and the item knock off effect.
+
+void sub_80CB7EC(struct Sprite* sprite, s16 c)
+{
+ s32 a = (sprite->pos1.x * 256) | sprite->pos1.y;
+ s32 b = (sprite->data[6] * 256) | sprite->data[7];
+ c *= 256;
+ sprite->data[5] = a;
+ sprite->data[6] = b;
+ sprite->data[7] = c;
+}
+
+bool8 sub_80CB814(struct Sprite* sprite)
+{
+ u16 r10 = (u8)(sprite->data[5] >> 8);
+ u16 r9 = (u8)sprite->data[5];
+ s32 r2 = (u8)(sprite->data[6] >> 8);
+ s32 r4 = (u8)sprite->data[6];
+ s16 r6 = sprite->data[7] >> 8;
+ s16 r3 = sprite->data[7] & 0xFF;
+ s16 r4_2;
+ s16 r0;
+ s32 var1;
+ s32 var2;
+
+ if (r2 == 0)
+ {
+ r2 = -32;
+ }
+ else if (r2 == 255)
+ {
+ r2 = 0x110;
+ }
+
+ r4_2 = r4 - r9;
+ r0 = r2 - r10;
+ var1 = r0 * r3 / r6;
+ var2 = r4_2 * r3 / r6;
+ sprite->pos1.x = var1 + r10;
+ sprite->pos1.y = var2 + r9;
+ if (++r3 == r6)
+ return TRUE;
+
+ sprite->data[7] = (r6 << 8) | r3;
+ return FALSE;
+}
+
+void sub_80CB8B8(struct Sprite* sprite)
+{
+ if (sprite->data[0] == 10)
+ {
+ StartSpriteAffineAnim(sprite, 1);
+ }
+
+ sprite->data[0]++;
+ if (sprite->data[0] > 50)
+ {
+ move_anim_8072740(sprite);
+ }
+}
+
+void sub_80CB8E8(struct Sprite* sprite)
+{
+ sprite->data[0] += sprite->data[3] * 128 / sprite->data[4];
+ if (sprite->data[0] >= 128)
+ {
+ sprite->data[1]++;
+ sprite->data[0] = 0;
+ }
+
+ sprite->pos2.y = Sin(sprite->data[0] + 128, 30 - sprite->data[1] * 8);
+ if (sub_80CB814(sprite))
+ {
+ sprite->pos2.y = 0;
+ sprite->data[0] = 0;
+ sprite->callback = sub_80CB8B8;
+ }
+}
+
+void sub_80CB94C(struct Sprite* sprite)
+{
+ s16 e1;
+ s16 e2;
+ sub_80787B0(sprite, 0);
+ e1 = sub_8077ABC(gBattleAnimBankTarget, 0);
+ e2 = sub_8077ABC(gBattleAnimBankTarget, 1);
+ if ((gBattleAnimBankAttacker ^ 2) == gBattleAnimBankTarget)
+ {
+ sprite->data[6] = e1;
+ sprite->data[7] = e2 + 10;
+ sub_80CB7EC(sprite, 0x3C);
+ sprite->data[3] = 1;
+ }
+ else
+ {
+ sprite->data[6] = e1;
+ sprite->data[7] = e2 + 10;
+ sub_80CB7EC(sprite, 0x3C);
+ sprite->data[3] = 3;
+ }
+
+ sprite->data[4] = 0x3C;
+ sprite->callback = sub_80CB8E8;
+}
+
+void sub_80CB9C4(struct Sprite* sprite)
+{
+ int zero;
+ sprite->data[0] += ((sprite->data[3] * 128) / sprite->data[4]);
+ zero = 0;
+ if (sprite->data[0] > 0x7F)
+ {
+ sprite->data[1]++;
+ sprite->data[0] = zero;
+ }
+
+ sprite->pos2.y = Sin(sprite->data[0] + 0x80, 30 - sprite->data[1] * 8);
+ if (sub_80CB814(sprite))
+ {
+ sprite->pos2.y = zero;
+ sprite->data[0] = zero;
+ move_anim_8072740(sprite);
+ }
+}
+
+void sub_80CBA28(struct Sprite* sprite)
+{
+ s16 e = sub_8077ABC(gBattleAnimBankTarget, 1);
+ if (GetBankSide(gBattleAnimBankTarget) == 0)
+ {
+ sprite->data[6] = 0;
+ sprite->data[7] = e + 10;
+ sub_80CB7EC(sprite, 0x28);
+ sprite->data[3] = 3;
+ sprite->data[4] = 0x3C;
+ sprite->callback = sub_80CB8E8;
+ }
+ else
+ {
+ sprite->data[6] = 255;
+ sprite->data[7] = e + 10;
+ if (NotInBattle())
+ sprite->data[6] = 0;
+
+ sub_80CB7EC(sprite, 0x28);
+ sprite->data[3] = 3;
+ sprite->data[4] = 0x3C;
+ sprite->callback = sub_80CB9C4;
+ }
+}
diff --git a/src/battle/anim/hop_2.c b/src/battle/anim/hop_2.c
new file mode 100755
index 000000000..5458c4599
--- /dev/null
+++ b/src/battle/anim/hop_2.c
@@ -0,0 +1,70 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern void sub_80CB7EC(struct Sprite* sprite, s16 c);
+extern bool8 sub_80CB814(struct Sprite* sprite);
+extern void sub_80CB8B8(struct Sprite* sprite);
+
+static void sub_80CBB60(struct Sprite* sprite);
+
+// hop_2
+// Used in item steal.
+
+void sub_80CBAE8(struct Sprite* sprite)
+{
+ s16 p1;
+ s16 p2;
+ sub_8078764(sprite, 0);
+ p1 = sub_8077ABC(gBattleAnimBankAttacker, 0);
+ p2 = sub_8077ABC(gBattleAnimBankAttacker, 1);
+ if ((gBattleAnimBankTarget ^ 2) == gBattleAnimBankAttacker)
+ {
+ sprite->data[6] = p1;
+ sprite->data[7] = p2 + 10;
+ sub_80CB7EC(sprite, 0x3c);
+ sprite->data[3] = 1;
+ }
+ else
+ {
+ sprite->data[6] = p1;
+ sprite->data[7] = p2 + 10;
+ sub_80CB7EC(sprite, 0x3c);
+ sprite->data[3] = 3;
+ }
+
+ sprite->data[4] = 0x3C;
+ sprite->callback = sub_80CBB60;
+}
+
+void sub_80CBB60(struct Sprite* sprite)
+{
+ int zero;
+ sprite->data[0] += ((sprite->data[3] * 128) / sprite->data[4]);
+ zero = 0;
+ if (sprite->data[0] > 0x7F)
+ {
+ sprite->data[1]++;
+ sprite->data[0] = zero;
+ }
+
+ sprite->pos2.y = Sin(sprite->data[0] + 0x80, 30 - sprite->data[1] * 8);
+ if (sprite->pos2.y == 0)
+ {
+ PlaySE12WithPanning(0x7D, sub_8076F98(0x3F));
+ }
+
+ if (sub_80CB814(sprite))
+ {
+ sprite->pos2.y = 0;
+ sprite->data[0] = 0;
+ sprite->callback = sub_80CB8B8;
+ PlaySE12WithPanning(0x7D, sub_8076F98(-0x40));
+ }
+}
diff --git a/src/battle/anim/kiss_fountain.c b/src/battle/anim/kiss_fountain.c
new file mode 100755
index 000000000..2e7f64c11
--- /dev/null
+++ b/src/battle/anim/kiss_fountain.c
@@ -0,0 +1,38 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// kiss_fountain (a series of hearts pour out of a target Pokemon.)
+// Used in Attract and Sweet Kiss.
+
+void sub_80D1FDC(struct Sprite* sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ sprite->data[1] = gBattleAnimArgs[0];
+ sprite->data[2] = gBattleAnimArgs[1];
+ sprite->data[0]++;
+ }
+ else
+ {
+ sprite->data[4] += sprite->data[1];
+ sprite->pos2.x = sprite->data[4] >> 8;
+ sprite->pos2.y = Sin(sprite->data[3], sprite->data[2]);
+ sprite->data[3] = (sprite->data[3] + 3) & 0xFF;
+ if (sprite->data[3] > 0x64)
+ {
+ sprite->invisible = sprite->data[3] % 2;
+ }
+
+ if (sprite->data[3] > 0x78)
+ {
+ move_anim_8072740(sprite);
+ }
+ }
+}
diff --git a/src/battle/anim/leaf.c b/src/battle/anim/leaf.c
new file mode 100755
index 000000000..13d1bc9f5
--- /dev/null
+++ b/src/battle/anim/leaf.c
@@ -0,0 +1,74 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CAF20(struct Sprite* sprite);
+static void sub_80CAF6C(struct Sprite* sprite);
+
+// leaf
+// Used by Razor Leaf and Twister.
+
+void sub_80CAED8(struct Sprite* sprite)
+{
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ sprite->data[0] = gBattleAnimArgs[0];
+ sprite->data[1] = gBattleAnimArgs[1];
+ sprite->data[2] = gBattleAnimArgs[2];
+ sprite->callback = sub_80CAF20;
+}
+
+void sub_80CAF20(struct Sprite* sprite)
+{
+ if (!sprite->data[2])
+ {
+ if (sprite->data[1] & 1)
+ {
+ sprite->data[0] = 0x80;
+ sprite->data[1] = 0;
+ sprite->data[2] = 0;
+ }
+ else
+ {
+ sprite->data[0] = sprite->data[1] & 1;
+ sprite->data[1] = sprite->data[1] & 1;
+ sprite->data[2] = sprite->data[1] & 1;
+ }
+ sprite->callback = sub_80CAF6C;
+ }
+ else
+ {
+ sprite->data[2]--;
+ sprite->pos1.x += sprite->data[0];
+ sprite->pos1.y += sprite->data[1];
+ }
+}
+
+void sub_80CAF6C(struct Sprite* sprite)
+{
+ if (GetBankSide(gBattleAnimBankAttacker))
+ {
+ sprite->pos2.x = -Sin(sprite->data[0], 0x19);
+ }
+ else
+ {
+ sprite->pos2.x = Sin(sprite->data[0], 0x19);
+ }
+
+ sprite->data[0] = (sprite->data[0] + 2) & 0xFF;
+ sprite->data[1]++;
+ if (!(sprite->data[1] & 1))
+ {
+ sprite->pos2.y++;
+ }
+
+ if (sprite->data[1] > 0x50)
+ {
+ move_anim_8072740(sprite);
+ }
+}
diff --git a/src/battle/anim/love_bg.c b/src/battle/anim/love_bg.c
new file mode 100755
index 000000000..1e49b536c
--- /dev/null
+++ b/src/battle/anim/love_bg.c
@@ -0,0 +1,121 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "decompress.h"
+#include "palette.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern struct INCBIN_U8 gAttractTilemap;
+extern struct INCBIN_U8 gAttractGfx;
+extern struct INCBIN_U8 gAttractPal;
+
+extern u16 gUnknown_030041B4;
+extern u16 gUnknown_030042C0;
+
+static void sub_80D21F0(u8 taskId);
+
+// love_bg (makes the BG a background of hearts.)
+// Used in Attract.
+
+void sub_80D2100(u8 taskId)
+{
+ struct Struct_sub_8078914 subStruct;
+ u8* tempvar;
+ REG_BLDCNT = 0x3F42;
+ REG_BLDALPHA = 0x1000;
+ REG_BG1CNT_BITFIELD.priority = 3;
+ REG_BG1CNT_BITFIELD.screenSize = 0;
+ if (!NotInBattle())
+ REG_BG1CNT_BITFIELD.charBaseBlock = 1;
+
+ gUnknown_030042C0 = 0;
+ gUnknown_030041B4 = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ sub_8078914(&subStruct);
+ tempvar = subStruct.field_4;
+ DmaFill32(3, 0x0, tempvar, 0x1000);
+ LZDecompressVram(&gAttractTilemap, tempvar);
+ LZDecompressVram(&gAttractGfx, subStruct.field_0);
+ LoadCompressedPalette(&gAttractPal, subStruct.field_8 << 4, 32);
+ if (NotInBattle())
+ sub_80763FC(subStruct.field_8, (u16 *)subStruct.field_4, 0, 0);
+
+ gTasks[taskId].func = sub_80D21F0;
+}
+
+void sub_80D21F0(u8 taskId)
+{
+ struct Struct_sub_8078914 subStruct;
+
+ 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] == 16)
+ {
+ gTasks[taskId].data[12]++;
+ gTasks[taskId].data[11] = 0;
+ }
+ }
+ break;
+ case 1:
+ if (++gTasks[taskId].data[11] == 0x8D)
+ {
+ gTasks[taskId].data[11] = 16;
+ 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);
+ {
+ 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;
+ }
+ }
+ }
+ DmaClear32(3, subStruct.field_4, 0x800);
+ if (!NotInBattle())
+ REG_BG1CNT_BITFIELD.charBaseBlock = 0;
+
+ gTasks[taskId].data[12]++;
+ // fall through
+ case 4:
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BG1CNT_BITFIELD.priority = 1;
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
diff --git a/src/battle/anim/lunge_1.c b/src/battle/anim/lunge_1.c
new file mode 100755
index 000000000..f1e1e35b6
--- /dev/null
+++ b/src/battle/anim/lunge_1.c
@@ -0,0 +1,124 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern u8 gObjectBankIDs[];
+
+static void sub_80CD7CC(struct Sprite* sprite);
+static void sub_80CD81C(struct Sprite* sprite);
+static void sub_80CD8A8(struct Sprite* sprite);
+static void sub_80CD8F8(struct Sprite* sprite);
+static void sub_80CD91C(struct Sprite* sprite);
+static void sub_80CD9B8(struct Sprite* sprite);
+
+// lunge_1 (makes the pokemon sprite do a "lunge" where it leans back to attack, usually with its head or horn.)
+// Used in Drill Peck, Headbutt, Horn Attack, and Horn Drill.
+
+void sub_80CD774(struct Sprite* sprite)
+{
+ sprite->invisible = 1;
+ sprite->data[0] = 0;
+ switch (gBattleAnimArgs[0])
+ {
+ case 0:
+ sprite->callback = sub_80CD7CC;
+ break;
+ case 1:
+ sprite->callback = sub_80CD8A8;
+ break;
+ case 2:
+ sprite->callback = sub_80CD8F8;
+ break;
+ default:
+ sprite->callback = sub_80CD9B8;
+ break;
+ }
+}
+
+void sub_80CD7CC(struct Sprite* sprite)
+{
+ sprite->data[0] = 6;
+ sprite->data[1] = (GetBankSide(gBattleAnimBankAttacker)) ? 2 : -2;
+ sprite->data[2] = 0;
+ sprite->data[3] = gObjectBankIDs[gBattleAnimBankAttacker];
+ StoreSpriteCallbackInData(sprite, sub_80CD81C);
+ sprite->callback = sub_8078458;
+}
+
+void sub_80CD81C(struct Sprite* sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ sprite->data[3] = gObjectBankIDs[gBattleAnimBankAttacker];
+ sub_8078E70(sprite->data[3], 0);
+ sprite->data[4] = (sprite->data[6] = GetBankSide(gBattleAnimBankAttacker)) ? 0x300 : 0xFFFFFD00;
+ sprite->data[5] = 0;
+ }
+
+ sprite->data[5] += sprite->data[4];
+ obj_id_set_rotscale(sprite->data[3], 0x100, 0x100, sprite->data[5]);
+ sub_8078F9C(sprite->data[3]);
+ if (++sprite->data[0] > 3)
+ {
+ sprite->data[0] = 0;
+ sprite->callback = sub_80CD9B8;
+ }
+}
+
+void sub_80CD8A8(struct Sprite* sprite)
+{
+ sprite->data[0] = 4;
+ sprite->data[1] = (GetBankSide(gBattleAnimBankAttacker)) ? -3 : 3;
+ sprite->data[2] = 0;
+ sprite->data[3] = gObjectBankIDs[gBattleAnimBankAttacker];
+ StoreSpriteCallbackInData(sprite, sub_80CD9B8);
+ sprite->callback = sub_8078458;
+}
+
+void sub_80CD8F8(struct Sprite* sprite)
+{
+ if (++sprite->data[0] > 8)
+ {
+ sprite->data[0] = 0;
+ sprite->callback = sub_80CD91C;
+ }
+}
+
+void sub_80CD91C(struct Sprite* sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ sprite->data[3] = gObjectBankIDs[gBattleAnimBankAttacker];
+ sprite->data[6] = GetBankSide(gBattleAnimBankAttacker);
+ if (GetBankSide(gBattleAnimBankAttacker))
+ {
+ sprite->data[4] = 0xFC00;
+ sprite->data[5] = 0xC00;
+ }
+ else
+ {
+ sprite->data[4] = 0x400;
+ sprite->data[5] = 0xF400;
+ }
+ }
+
+ sprite->data[5] += sprite->data[4];
+ obj_id_set_rotscale(sprite->data[3], 0x100, 0x100, sprite->data[5]);
+ sub_8078F9C(sprite->data[3]);
+ if (++sprite->data[0] > 2)
+ {
+ sub_8078F40(sprite->data[3]);
+ sprite->callback = sub_80CD9B8;
+ }
+}
+
+void sub_80CD9B8(struct Sprite* sprite)
+{
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/lunge_2.c b/src/battle/anim/lunge_2.c
new file mode 100755
index 000000000..3972bee59
--- /dev/null
+++ b/src/battle/anim/lunge_2.c
@@ -0,0 +1,163 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern u8 gObjectBankIDs[];
+
+static void sub_80CDB60(u8 taskId);
+static void sub_80CDD20(u8 taskId);
+
+// lunge_2
+// Drill Peck
+
+void sub_80CDAC8(u8 taskId)
+{
+ u8 a;
+
+ gTasks[taskId].data[0] = gObjectBankIDs[gBattleAnimBankAttacker];
+ a = GetBankSide(gBattleAnimBankAttacker);
+ gTasks[taskId].data[1] = a;
+ gTasks[taskId].data[2] = 0;
+ switch (gBattleAnimArgs[0])
+ {
+ default:
+ DestroyAnimVisualTask(taskId);
+ break;
+ case 0:
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 8;
+ gTasks[taskId].data[4] = 0;
+ gTasks[taskId].data[5] = 3;
+ if (a == 0)
+ gTasks[taskId].data[5] *= -1;
+
+ gTasks[taskId].func = sub_80CDB60;
+ break;
+ case 1:
+ gTasks[taskId].data[3] = 8;
+ gTasks[taskId].data[4] = 0x600;
+ gTasks[taskId].data[5] = 0xC0;
+ if (a == 0)
+ {
+ gTasks[taskId].data[4] = -gTasks[taskId].data[4];
+ gTasks[taskId].data[5] = -gTasks[taskId].data[5];
+ }
+
+ gTasks[taskId].func = sub_80CDD20;
+ break;
+ }
+}
+
+void sub_80CDB60(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ switch (task->data[2])
+ {
+ case 0:
+ if (task->data[3])
+ {
+ task->data[4] += task->data[5];
+ gSprites[task->data[0]].pos2.x = task->data[4];
+ task->data[3]--;
+ }
+ else
+ {
+ task->data[3] = 8;
+ task->data[4] = 0;
+ task->data[5] = (task->data[1] == 0) ? -0xC0 : 0xC0;
+ sub_8078E70(task->data[0], 0);
+ task->data[2]++;
+ }
+ break;
+ case 1:
+ if (task->data[3])
+ {
+ task->data[4] += task->data[5];
+ obj_id_set_rotscale(task->data[0], 0x100, 0x100, task->data[4]);
+ sub_8078F9C(task->data[0]);
+ task->data[3]--;
+ }
+ else
+ {
+ task->data[3] = 8;
+ task->data[4] = gSprites[task->data[0]].pos2.x;
+ task->data[5] = (task->data[1] == 0) ? 0x2 : -0x2;
+ task->data[6] = 1;
+ task->data[2]++;
+ }
+ break;
+ case 2:
+ if (task->data[3])
+ {
+ if (task->data[6])
+ {
+ task->data[6]--;
+ }
+ else
+ {
+ if (task->data[3] & 1)
+ gSprites[task->data[0]].pos2.x = task->data[4] + task->data[5];
+ else
+ gSprites[task->data[0]].pos2.x = task->data[4] - task->data[5];
+
+ task->data[6] = 1;
+ task->data[3]--;
+ }
+ }
+ else
+ {
+ gSprites[task->data[0]].pos2.x = task->data[4];
+ task->data[3] = 12;
+ task->data[2]++;
+ }
+ break;
+ case 3:
+ if (task->data[3])
+ {
+ task->data[3]--;
+ }
+ else
+ {
+ task->data[3] = 3;
+ task->data[4] = gSprites[task->data[0]].pos2.x;
+ task->data[5] = (task->data[1] == 0) ? 8 : -8;
+ task->data[2]++;
+ }
+ break;
+ case 4:
+ if (task->data[3])
+ {
+ task->data[4] += task->data[5];
+ gSprites[task->data[0]].pos2.x = task->data[4];
+ task->data[3]--;
+ }
+ else
+ {
+ DestroyAnimVisualTask(taskId);
+ }
+ break;
+ }
+}
+
+void sub_80CDD20(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ if (task->data[3])
+ {
+ task->data[4] -= task->data[5];
+ obj_id_set_rotscale(task->data[0], 0x100, 0x100, task->data[4]);
+ sub_8078F9C(task->data[0]);
+ task->data[3]--;
+ }
+ else
+ {
+ sub_8078F40(task->data[0]);
+ DestroyAnimVisualTask(taskId);
+ }
+}
diff --git a/src/battle/anim/money.c b/src/battle/anim/money.c
new file mode 100755
index 000000000..91eaf20b1
--- /dev/null
+++ b/src/battle/anim/money.c
@@ -0,0 +1,62 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CFF68(struct Sprite* sprite);
+
+// money
+// Used by Pay Day.
+
+void sub_80CFE9C(struct Sprite* sprite)
+{
+ s16 r6;
+ s16 r7;
+ u16 var;
+
+ sub_80787B0(sprite, 1);
+ r6 = sub_8077ABC(gBattleAnimBankTarget, 2);
+ r7 = sub_8077ABC(gBattleAnimBankTarget, 3) + gBattleAnimArgs[3];
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+
+ r6 += gBattleAnimArgs[2];
+ var = sub_80790F0(r6 - sprite->pos1.x, r7 - sprite->pos1.y);
+ var += 0xC000;
+ sub_8078FDC(sprite, 0, 0x100, 0x100, var);
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = r6;
+ sprite->data[4] = r7;
+ sprite->callback = sub_8078C00;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+}
+
+void sub_80CFF50(struct Sprite* sprite)
+{
+ sprite->data[2] = -16;
+ sprite->pos1.y += 8;
+ sprite->callback = sub_80CFF68;
+}
+
+void sub_80CFF68(struct Sprite* sprite)
+{
+ sprite->data[0] += 0x80;
+ sprite->pos2.x = sprite->data[0] >> 8;
+ if (GetBankSide(gBattleAnimBankAttacker) == 0)
+ sprite->pos2.x = -sprite->pos2.x;
+
+ sprite->pos2.y = Sin(sprite->data[1], sprite->data[2]);
+ sprite->data[1] += 5;
+ if (sprite->data[1] > 0x7E)
+ {
+ sprite->data[1] = 0;
+ sprite->data[2] /= 2;
+ if (++sprite->data[3] == 2)
+ move_anim_8072740(sprite);
+ }
+}
diff --git a/src/battle/anim/moon.c b/src/battle/anim/moon.c
new file mode 100755
index 000000000..e2a31d14d
--- /dev/null
+++ b/src/battle/anim/moon.c
@@ -0,0 +1,39 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CE354(struct Sprite* sprite);
+
+// moon (shows a moon image.)
+// Used in Moonlight.
+
+void sub_80CE30C(struct Sprite* sprite)
+{
+ if (NotInBattle())
+ {
+ sprite->pos1.x = 0x30;
+ sprite->pos1.y = 0x28;
+ }
+ else
+ {
+ sprite->pos1.x = gBattleAnimArgs[0];
+ sprite->pos1.y = gBattleAnimArgs[1];
+ }
+
+ sprite->oam.shape = 0;
+ sprite->oam.size = 3;
+ sprite->data[0] = 0;
+ sprite->callback = sub_80CE354;
+}
+
+void sub_80CE354(struct Sprite* sprite)
+{
+ if (sprite->data[0])
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/noise.c b/src/battle/anim/noise.c
new file mode 100644
index 000000000..78953d96a
--- /dev/null
+++ b/src/battle/anim/noise.c
@@ -0,0 +1,56 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "battle_anim.h"
+
+extern s16 gBattleAnimArgs[8];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D2E30(struct Sprite *);
+
+// noise (moving music note)
+// Used in Uproar.
+
+void sub_80D2D68(struct Sprite* sprite)
+{
+ int var1;
+ u8 slot = gBattleAnimArgs[0] == 0 ? gBattleAnimBankAttacker : gBattleAnimBankTarget;
+
+ if (GetBankSide(slot) == 1)
+ {
+ gBattleAnimArgs[1] *= -1;
+ }
+
+ sprite->pos1.x = sub_8077ABC(slot, 2) + gBattleAnimArgs[1];
+ sprite->pos1.y = sub_8077ABC(slot, 3) + gBattleAnimArgs[2];
+ sprite->data[0] = 0;
+ sprite->data[1] = (u16)sprite->pos1.x << 3;
+ sprite->data[2] = (u16)sprite->pos1.y << 3;
+
+ var1 = gBattleAnimArgs[1] << 3;
+ if (var1 < 0)
+ var1 += 7;
+ sprite->data[3] = var1 >> 3;
+
+ var1 = gBattleAnimArgs[2] << 3;
+ if (var1 < 0)
+ var1 += 7;
+ sprite->data[4] = var1 >> 3;
+
+ sprite->oam.tileNum += gBattleAnimArgs[3] * 16;
+ sprite->callback = sub_80D2E30;
+}
+
+static void sub_80D2E30(struct Sprite *sprite)
+{
+ sprite->data[1] += sprite->data[3];
+ sprite->data[2] += sprite->data[4];
+
+ sprite->pos1.x = sprite->data[1] >> 3;
+ sprite->pos1.y = sprite->data[2] >> 3;
+
+ if (++sprite->data[0] > 16)
+ {
+ move_anim_8072740(sprite);
+ }
+}
diff --git a/src/battle/anim/note_rain.c b/src/battle/anim/note_rain.c
new file mode 100755
index 000000000..fd62b7176
--- /dev/null
+++ b/src/battle/anim/note_rain.c
@@ -0,0 +1,37 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern u16 gUnknown_083D7A5C[5];
+
+// note_rain (notes rain from a source point, usually a bell.)
+// Used in Heal Bell.
+
+void sub_80D1BA8(struct Sprite* sprite, u8 a, u8 b)
+{
+ u8 tile;
+ tile = (b & 1);
+ tile = ((-tile | tile) >> 31) & 32;
+ sprite->oam.tileNum += tile + (a << 2);
+ sprite->oam.paletteNum = IndexOfSpritePaletteTag(gUnknown_083D7A5C[b >> 1]);
+}
+
+void sub_80D1C08(struct Sprite* sprite)
+{
+ sub_80787B0(sprite, 0);
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankAttacker, 0) + gBattleAnimArgs[2];
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankAttacker, 1) + gBattleAnimArgs[3];
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+ sub_80D1BA8(sprite, gBattleAnimArgs[5], gBattleAnimArgs[6]);
+}
diff --git a/src/battle/anim/note_scatter.c b/src/battle/anim/note_scatter.c
new file mode 100755
index 000000000..9ff49ee9d
--- /dev/null
+++ b/src/battle/anim/note_scatter.c
@@ -0,0 +1,54 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CED78(struct Sprite* sprite);
+
+// note_scatter
+// Used by Teeter Dance.
+
+void sub_80CECE8(struct Sprite* sprite)
+{
+ int a;
+ if (GetBankSide(gBattleAnimBankAttacker) == 1)
+ {
+ a = gBattleAnimArgs[1];
+ (u16)gBattleAnimArgs[1] = -a;
+ }
+
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2) + gBattleAnimArgs[1];
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3) + gBattleAnimArgs[2];
+ StartSpriteAnim(sprite, gBattleAnimArgs[0]);
+ sprite->data[2] = 0;
+ sprite->data[3] = 0;
+ sprite->data[4] = sprite->pos1.x << 4;
+ sprite->data[5] = sprite->pos1.y << 4;
+ sprite->data[6] = (gBattleAnimArgs[1] << 4) / 5;
+ sprite->data[7] = (gBattleAnimArgs[2] << 7) / 5;
+ sprite->callback = sub_80CED78;
+}
+
+void sub_80CED78(struct Sprite* sprite)
+{
+ sprite->data[4] += sprite->data[6];
+ sprite->data[5] += sprite->data[7];
+ sprite->pos1.x = sprite->data[4] >> 4;
+ sprite->pos1.y = sprite->data[5] >> 4;
+ if (sprite->data[0] > 5 && sprite->data[3] == 0)
+ {
+ sprite->data[2] = (sprite->data[2] + 16) & 0xFF;
+ sprite->pos2.x = Cos(sprite->data[2], 18);
+ sprite->pos2.y = Sin(sprite->data[2], 18);
+ if (sprite->data[2] == 0)
+ sprite->data[3] = 1;
+ }
+
+ if (++sprite->data[0] == 0x30)
+ move_anim_8074EE0(sprite);
+}
diff --git a/src/battle/anim/note_scatter_2.c b/src/battle/anim/note_scatter_2.c
new file mode 100755
index 000000000..a163aa9a5
--- /dev/null
+++ b/src/battle/anim/note_scatter_2.c
@@ -0,0 +1,57 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern u16 gUnknown_083D712C[4][6];
+
+static void sub_80CEEE8(struct Sprite* sprite);
+
+// note_scatter_2 (slower scatter of notes.)
+// Used in Belly Drum.
+
+void sub_80CEE60(struct Sprite* sprite)
+{
+ s16 a;
+ u8 index;
+ sub_8078650(sprite);
+ sprite->pos1.y += 8;
+ StartSpriteAnim(sprite, gBattleAnimArgs[1]);
+ index = IndexOfSpritePaletteTag(gUnknown_083D712C[gBattleAnimArgs[2]][0]);
+ if (index != 0xFF)
+ sprite->oam.paletteNum = index;
+
+ a = (gBattleAnimArgs[0] == 0) ? 0xFFE0 : 0x20;
+ sprite->data[0] = 40;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = a + sprite->data[1];
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = sprite->data[3] - 40;
+ obj_translate_based_on_private_1_2_3_4(sprite);
+ sprite->data[5] = gBattleAnimArgs[3];
+ sprite->callback = sub_80CEEE8;
+}
+
+void sub_80CEEE8(struct Sprite* sprite)
+{
+ if (sub_8078B5C(sprite) == 0)
+ {
+ s16 a;
+ a = Sin(sprite->data[5], 8);
+ if (sprite->pos2.x < 0)
+ a = -a;
+
+ sprite->pos2.x += a;
+ sprite->pos2.y += Sin(sprite->data[5], 4);
+ sprite->data[5] = (sprite->data[5] + 8) & 0xFF;
+ }
+ else
+ {
+ move_anim_8072740(sprite);
+ }
+}
diff --git a/src/battle/anim/note_spin.c b/src/battle/anim/note_spin.c
new file mode 100644
index 000000000..bdc0f4615
--- /dev/null
+++ b/src/battle/anim/note_spin.c
@@ -0,0 +1,110 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+
+extern s16 gBattleAnimArgs[8];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D2F80(struct Sprite *);
+static void sub_80D2FA4(struct Sprite *);
+
+// note_spin (spins music notes around, and rotates them)
+// Used in Perish Song.
+
+void sub_80D2E68(struct Sprite *sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ sprite->data[1] = 120 - gBattleAnimArgs[0];
+ sprite->invisible = 1;
+ }
+
+ if (++sprite->data[0] == sprite->data[1])
+ {
+ sub_8079108(sprite->oam.paletteNum + 16, 0);
+ }
+
+ if (sprite->data[0] == sprite->data[1] + 80)
+ {
+ move_anim_8072740(sprite);
+ }
+}
+
+void sub_80D2EC8(struct Sprite *sprite)
+{
+ int index;
+ int var2;
+
+ if (sprite->data[0] == 0)
+ {
+ sprite->pos1.x = 120;
+ sprite->pos1.y = (gBattleAnimArgs[0] + (((u16)gBattleAnimArgs[0]) >> 31)) / 2 - 15;
+
+ StartSpriteAnim(sprite, gBattleAnimArgs[1]);
+
+ sprite->data[5] = 120;
+ sprite->data[3] = gBattleAnimArgs[2];
+ }
+
+ sprite->data[0]++;
+
+ sprite->data[1] = (sprite->data[0] + ((u16)sprite->data[0] >> 31)) / 2;
+ index = ((sprite->data[0] * 3) + (u16)sprite->data[3]);
+ var2 = 0xFF;
+ sprite->data[6] = (sprite->data[6] + 10) & 0xFF;
+
+ index &= var2;
+ sprite->pos2.x = Cos(index, 100);
+
+ sprite->pos2.y = sprite->data[1] + Sin(index, 10) + Cos(sprite->data[6], 4);
+
+ if (sprite->data[0] > sprite->data[5])
+ {
+ sprite->callback = sub_80D2F80;
+
+ sprite->data[0] = 0;
+ oamt_add_pos2_onto_pos1(sprite);
+ sprite->data[2] = 5;
+ sprite->data[4] = 0;
+ sprite->data[3] = 0;
+
+ StartSpriteAffineAnim(sprite, 1);
+ }
+}
+
+static void sub_80D2F80(struct Sprite *sprite)
+{
+ if (++sprite->data[0] > 10)
+ {
+ sprite->data[0] = 0;
+ sprite->callback = sub_80D2FA4;
+ }
+}
+
+static void sub_80D2FA4(struct Sprite *sprite)
+{
+ sprite->data[3] += sprite->data[2];
+ sprite->pos2.y = sprite->data[3];
+
+ sprite->data[2]++;
+
+ if (sprite->data[3] > 48 && sprite->data[2] > 0)
+ {
+ sprite->data[2] = sprite->data[4] - 5;
+ sprite->data[4]++;
+ }
+
+ if (sprite->data[4] > 3)
+ {
+ int var1 = sprite->data[2];
+ sprite->invisible = var1 - (((s32)(var1 + ((u32)var1 >> 31)) >> 1) << 1);
+ move_anim_8072740(sprite);
+ }
+
+ if (sprite->data[4] == 4)
+ {
+ move_anim_8072740(sprite);
+ }
+}
diff --git a/src/battle/anim/note_wave.c b/src/battle/anim/note_wave.c
new file mode 100755
index 000000000..4dc3ceb75
--- /dev/null
+++ b/src/battle/anim/note_wave.c
@@ -0,0 +1,143 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "palette.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern u16 gUnknown_083D712C[4][6];
+
+static void sub_80CEBC4(s16 a, s16 b, s16* c, s16* d, s8 e);
+static void sub_80CEC1C(struct Sprite* sprite);
+
+// note_wave
+// Used by Grasswhistle, Belly Drum, and Sing.
+
+// rainbow effect for musical notes
+void sub_80CEA20(u8 taskId)
+{
+ u16 i;
+ u16 j;
+ u16 index;
+
+ index = IndexOfSpritePaletteTag(gUnknown_083D712C[0][0]);
+ if (index != 0xFF)
+ {
+ index = (index << 4) + 0x100;
+ for (i = 1; i < 6; i++)
+ {
+ gPlttBufferFaded[index + i] = gUnknown_083D712C[0][i];
+ }
+ }
+
+ for (j = 1; j < 4; j++)
+ {
+ index = AllocSpritePalette(gUnknown_083D712C[j][0]);
+ if (index != 0xFF)
+ {
+ index = (index << 4) + 0x100;
+ for (i = 1; i < 6; i++)
+ {
+ gPlttBufferFaded[index + i] = gUnknown_083D712C[j][i];
+ }
+ }
+ }
+ DestroyAnimVisualTask(taskId);
+}
+
+// clears the rainbow effect for musical notes.
+void sub_80CEAD8(u8 taskId)
+{
+ u16 i;
+ for (i = 1; i < 4; i++)
+ {
+ FreeSpritePaletteByTag(gUnknown_083D712C[i][0]);
+ }
+
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_80CEB0C(struct Sprite* sprite)
+{
+ u8 index;
+ u8 a;
+ u8 b;
+ sub_8078650(sprite);
+ StartSpriteAnim(sprite, gBattleAnimArgs[0]);
+ if ((index = IndexOfSpritePaletteTag(gUnknown_083D712C[gBattleAnimArgs[1]][0])) != 0xFF)
+ sprite->oam.paletteNum = index;
+
+ sprite->data[1] = gBattleAnimArgs[1];
+ sprite->data[2] = 0;
+ sprite->data[3] = gBattleAnimArgs[2];
+ if (NotInBattle())
+ {
+ a = 0x30;
+ b = 0x28;
+ }
+ else
+ {
+ a = sub_8077ABC(gBattleAnimBankTarget, 2);
+ b = sub_8077ABC(gBattleAnimBankTarget, 3);
+ }
+
+ sprite->data[4] = sprite->pos1.x << 4;
+ sprite->data[5] = sprite->pos1.y << 4;
+ sub_80CEBC4(a - sprite->pos1.x, b - sprite->pos1.y, &sprite->data[6], &sprite->data[7], 0x28);
+ sprite->callback = sub_80CEC1C;
+}
+
+void sub_80CEBC4(s16 a, s16 b, s16* c, s16* d, s8 e)
+{
+ int f;
+ int g;
+ if (a < 0)
+ e = -e;
+
+ f = a << 8;
+ g = f / e;
+ if (g == 0)
+ g = 1;
+
+ *c = f / g;
+ *d = (b << 8) / g;
+}
+
+void sub_80CEC1C(struct Sprite* sprite)
+{
+ int b;
+ s16 a;
+ int c;
+ u8 index;
+ sprite->data[0]++;
+ b = sprite->data[0] * 5 - ((sprite->data[0] * 5 / 256) << 8);
+ sprite->data[4] += sprite->data[6];
+ sprite->data[5] += sprite->data[7];
+ sprite->pos1.x = sprite->data[4] >> 4;
+ sprite->pos1.y = sprite->data[5] >> 4;
+ sprite->pos2.y = Sin(b, 15);
+ a = (u16)sprite->pos1.y;
+ c = (u16)sprite->pos1.x;
+
+ if ((u32)((c + 16) << 16) > (0x110) << 16 || a < -16 || a > 0x80)
+ {
+ move_anim_8074EE0(sprite);
+ }
+ else
+ {
+ if (sprite->data[3] && ++sprite->data[2] > sprite->data[3])
+ {
+ sprite->data[2] = 0;
+ if (++sprite->data[1] > 3)
+ sprite->data[1] = 0;
+
+ index = IndexOfSpritePaletteTag(gUnknown_083D712C[sprite->data[1]][0]);
+ if (index != 0xFF)
+ sprite->oam.paletteNum = index;
+ }
+ }
+}
diff --git a/src/battle/anim/orbit.c b/src/battle/anim/orbit.c
new file mode 100755
index 000000000..9b77552fa
--- /dev/null
+++ b/src/battle/anim/orbit.c
@@ -0,0 +1,147 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CAC44(struct Sprite* sprite);
+static void sub_80CADA8(struct Sprite* sprite);
+static void sub_80CAE74(struct Sprite* sprite);
+
+// orbit (The effect of a sprite rotating around another one in a pseudo 3D effect.)
+// Used by Spore, Cotton Spore, and Petal Dance.
+
+void sub_80CABF8(struct Sprite* sprite)
+{
+ sub_8078764(sprite, 1);
+ StartSpriteAnim(sprite, gBattleAnimArgs[4]);
+ if (gBattleAnimArgs[4] == 1)
+ {
+ sprite->oam.objMode = 1;
+ }
+
+ sprite->data[0] = gBattleAnimArgs[3];
+ sprite->data[1] = gBattleAnimArgs[2];
+ sprite->callback = sub_80CAC44;
+ sub_80CAC44(sprite);
+}
+
+void sub_80CAC44(struct Sprite* sprite)
+{
+ u8 var1;
+
+ sprite->pos2.x = Sin(sprite->data[1], 32);
+ sprite->pos2.y = Cos(sprite->data[1], -3) + ((sprite->data[2] += 24) >> 8);
+ if ((u16)(sprite->data[1] - 0x40) < 0x80)
+ {
+ sprite->oam.priority = (sub_8079ED4(gBattleAnimBankTarget) & 3);
+ }
+ else
+ {
+ var1 = sub_8079ED4(gBattleAnimBankTarget) + 1;
+ if (var1 > 3)
+ {
+ var1 = 3;
+ }
+
+ sprite->oam.priority = var1;
+ }
+
+ sprite->data[1] = (sprite->data[1] + 2) & 0xFF;
+ sprite->data[0]--;
+ if (sprite->data[0] == -1)
+ move_anim_8072740(sprite);
+}
+
+void sub_80CACEC(u8 taskId)
+{
+ if (NotInBattle() || !IsDoubleBattle())
+ {
+ DestroyAnimVisualTask(taskId);
+ }
+ else
+ {
+ if (GetBankIdentity_permutated(gBattleAnimBankTarget) == 1)
+ {
+ REG_BG2CNT_BITFIELD.priority = 3;
+ }
+ else
+ {
+ REG_BG1CNT_BITFIELD.priority = 1;
+ }
+
+ DestroyAnimVisualTask(taskId);
+ }
+}
+
+void sub_80CAD54(struct Sprite* sprite)
+{
+ sub_80787B0(sprite, 0);
+ sprite->data[0] = gBattleAnimArgs[3];
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = sprite->pos1.x;
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankAttacker, 3) + gBattleAnimArgs[2];
+ obj_translate_based_on_private_1_2_3_4(sprite);
+ sprite->data[5] = 0x40;
+ sprite->callback = sub_80CADA8;
+ sub_80CADA8(sprite);
+}
+
+void sub_80CADA8(struct Sprite* sprite)
+{
+ if (!sub_8078B5C(sprite))
+ {
+ sprite->pos2.x += Sin(sprite->data[5], 32);
+ sprite->pos2.y += Cos(sprite->data[5], -5);
+ if ((u16)(sprite->data[5] - 0x40) < 0x80)
+ {
+ sprite->subpriority = sub_8079E90(gBattleAnimBankAttacker) - 1;
+ }
+ else
+ {
+ sprite->subpriority = sub_8079E90(gBattleAnimBankAttacker) + 1;
+ }
+
+ sprite->data[5] = (sprite->data[5] + 5) & 0xFF;
+ }
+ else
+ {
+ move_anim_8072740(sprite);
+ }
+}
+
+void sub_80CAE20(struct Sprite* sprite)
+{
+ sub_80787B0(sprite, 1);
+ sprite->data[0] = gBattleAnimArgs[3];
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = sprite->pos1.x;
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankAttacker, 3) + gBattleAnimArgs[2];
+ obj_translate_based_on_private_1_2_3_4(sprite);
+ sprite->data[5] = 0x40;
+ sprite->callback = sub_80CAE74;
+ sub_80CAE74(sprite);
+}
+
+void sub_80CAE74(struct Sprite* sprite)
+{
+ if (!sub_8078B5C(sprite))
+ {
+ sprite->pos2.x += Sin(sprite->data[5], 8);
+ if ((u16)(sprite->data[5] - 0x3B) < 5 || (u16)(sprite->data[5] - 0xBB) < 5)
+ {
+ sprite->oam.matrixNum ^= 8;
+ }
+
+ sprite->data[5] = (sprite->data[5] + 5) & 0xFF;
+ }
+ else
+ {
+ move_anim_8072740(sprite);
+ }
+}
diff --git a/src/battle/anim/orbit_fast.c b/src/battle/anim/orbit_fast.c
new file mode 100755
index 000000000..30396f398
--- /dev/null
+++ b/src/battle/anim/orbit_fast.c
@@ -0,0 +1,62 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D2704(struct Sprite* sprite);
+
+// orbit_fast (a quickly moving fast circular motion of a sprite around an object.)
+// Used by Hidden Power.
+
+void sub_80D26A4(struct Sprite* sprite)
+{
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ sprite->affineAnimPaused = 1;
+ sprite->data[0] = gBattleAnimArgs[0];
+ sprite->data[1] = gBattleAnimArgs[1];
+ sprite->data[7] = sub_8079E90(gBattleAnimBankAttacker);
+ sprite->callback = sub_80D2704;
+ sub_80D2704(sprite);
+}
+
+void sub_80D2704(struct Sprite* sprite)
+{
+ if ((u16)(sprite->data[1] - 0x40) <= 0x7F)
+ sprite->subpriority = sprite->data[7] + 1;
+ else
+ sprite->subpriority = sprite->data[7] - 1;
+
+ sprite->pos2.x = Sin(sprite->data[1], sprite->data[2] >> 8);
+ sprite->pos2.y = Cos(sprite->data[1], sprite->data[3] >> 8);
+ sprite->data[1] = (sprite->data[1] + 9) & 0xFF;
+ switch (sprite->data[5])
+ {
+ case 1:
+ sprite->data[2] -= 0x400;
+ sprite->data[3] -= 0x100;
+ if (++sprite->data[4] == sprite->data[0])
+ {
+ sprite->data[5] = 2;
+ return;
+ }
+ break;
+ case 0:
+ sprite->data[2] += 0x400;
+ sprite->data[3] += 0x100;
+ if (++sprite->data[4] == sprite->data[0])
+ {
+ sprite->data[4] = 0;
+ sprite->data[5] = 1;
+ }
+ break;
+ }
+
+ if ((u16)gBattleAnimArgs[7] == 0xFFFF)
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/orbit_scatter.c b/src/battle/anim/orbit_scatter.c
new file mode 100755
index 000000000..6cebc9375
--- /dev/null
+++ b/src/battle/anim/orbit_scatter.c
@@ -0,0 +1,31 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D2834(struct Sprite* sprite);
+
+// orbit_scatter (scatters the objects associated with the fast orbit from the last file.)
+// Used in Hidden Power.
+
+void sub_80D27E0(struct Sprite* sprite)
+{
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ sprite->data[0] = Sin(gBattleAnimArgs[0], 10);
+ sprite->data[1] = Cos(gBattleAnimArgs[0], 7);
+ sprite->callback = sub_80D2834;
+}
+
+void sub_80D2834(struct Sprite* sprite)
+{
+ sprite->pos2.x += sprite->data[0];
+ sprite->pos2.y += sprite->data[1];
+ if (sprite->pos1.x + sprite->pos2.x + 16 > 0x110u || sprite->pos1.y + sprite->pos2.y > 0xA0 || sprite->pos1.y + sprite->pos2.y < -16)
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/orbs.c b/src/battle/anim/orbs.c
new file mode 100755
index 000000000..22e7d3895
--- /dev/null
+++ b/src/battle/anim/orbs.c
@@ -0,0 +1,162 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "random.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CA8B4(struct Sprite* sprite);
+static void sub_80CA9F8(struct Sprite* sprite);
+static void sub_80CAACC(struct Sprite* sprite);
+
+extern struct SpriteTemplate gSpriteTemplate_83D631C;
+
+// orbs
+// Used by Solar Beam, Absorb, Hyper Beam, and Leech Seed.
+
+void sub_80CA7B0(struct Sprite* sprite)
+{
+ sub_80787B0(sprite, 1);
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
+}
+
+void sub_80CA800(struct Sprite* sprite)
+{
+ sub_80787B0(sprite, 1);
+ StartSpriteAnim(sprite, gBattleAnimArgs[3]);
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2);
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3);
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+}
+
+void sub_80CA858(struct Sprite* sprite)
+{
+ sub_80787B0(sprite, 1);
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2);
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3);
+ obj_translate_based_on_private_1_2_3_4(sprite);
+ sprite->data[5] = gBattleAnimArgs[3];
+ sprite->callback = sub_80CA8B4;
+ sub_80CA8B4(sprite);
+}
+
+void sub_80CA8B4(struct Sprite* sprite)
+{
+ if (sub_8078B5C(sprite))
+ {
+ DestroySprite(sprite);
+ }
+ else
+ {
+ if (sprite->data[5] > 0x7F)
+ {
+ sprite->subpriority = sub_8079E90(gBattleAnimBankTarget) + 1;
+ }
+ else
+ {
+ sprite->subpriority = sub_8079E90(gBattleAnimBankTarget) + 6;
+ }
+ sprite->pos2.x += Sin(sprite->data[5], 5);
+ sprite->pos2.y += Cos(sprite->data[5], 14);
+ sprite->data[5] = (sprite->data[5] + 15) & 0xFF;
+ }
+}
+
+void sub_80CA928(u8 taskId)
+{
+ gTasks[taskId].data[0]--;
+ if (gTasks[taskId].data[0] == -1)
+ {
+ gTasks[taskId].data[1]++;
+ gTasks[taskId].data[0] = 6;
+ gBattleAnimArgs[0] = 15;
+ gBattleAnimArgs[1] = 0;
+ gBattleAnimArgs[2] = 80;
+ gBattleAnimArgs[3] = 0;
+ CreateSpriteAndAnimate(&gSpriteTemplate_83D631C, 0, 0, sub_8079E90(gBattleAnimBankTarget) + 1);
+ }
+
+ if (gTasks[taskId].data[1] == 15)
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_80CA9A8(struct Sprite* sprite)
+{
+ sub_8078764(sprite, 1);
+ sprite->data[0] = gBattleAnimArgs[3];
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ sprite->data[5] = gBattleAnimArgs[2];
+ sub_80786EC(sprite);
+ sprite->callback = sub_80CA9F8;
+}
+
+void sub_80CA9F8(struct Sprite* sprite)
+{
+ if (sub_8078718(sprite))
+ move_anim_8072740(sprite);
+}
+
+void sub_80CAA14(struct Sprite* sprite)
+{
+ u16 a = Random();
+ u16 b;
+
+ StartSpriteAnim(sprite, a & 7);
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ if (GetBankSide(gBattleAnimBankAttacker))
+ {
+ sprite->pos1.x -= 20;
+ }
+ else
+ {
+ sprite->pos1.x += 20;
+ }
+
+ b = Random();
+ sprite->data[0] = (b & 31) + 64;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2);
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3);
+ sub_8078D60(sprite);
+ sprite->data[5] = Random() & 0xFF;
+ sprite->data[6] = sprite->subpriority;
+ sprite->callback = sub_80CAACC;
+ sub_80CAACC(sprite);
+}
+
+void sub_80CAACC(struct Sprite* sprite)
+{
+ if (sub_8078CE8(sprite))
+ {
+ move_anim_8072740(sprite);
+ }
+ else
+ {
+ sprite->pos2.y += Cos(sprite->data[5], 12);
+ if (sprite->data[5] <= 0x7E)
+ {
+ sprite->subpriority = sprite->data[6];
+ }
+ else
+ {
+ sprite->subpriority = sprite->data[6] + 1;
+ }
+
+ sprite->data[5] = (sprite->data[5] + 24) & 0xFF;
+ }
+}
diff --git a/src/battle/anim/osmose.c b/src/battle/anim/osmose.c
new file mode 100755
index 000000000..f1f1b25ff
--- /dev/null
+++ b/src/battle/anim/osmose.c
@@ -0,0 +1,29 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// osmose (I didn't want to use "absorb" as thats confusing)
+// Used by Ingrain.
+
+void sub_80CB768(struct Sprite* sprite)
+{
+ if (!sprite->data[0])
+ {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2) + gBattleAnimArgs[0];
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 1) + gBattleAnimArgs[1];
+ sprite->data[1] = gBattleAnimArgs[2];
+ sprite->data[2] = gBattleAnimArgs[3];
+ sprite->data[3] = gBattleAnimArgs[4];
+ }
+
+ sprite->data[0]++;
+ sprite->pos2.x = sprite->data[1] * sprite->data[0];
+ sprite->pos2.y = Sin((sprite->data[0] * 20) & 0xFF, sprite->data[2]);
+ if (sprite->data[0] > sprite->data[3])
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/perceive.c b/src/battle/anim/perceive.c
new file mode 100755
index 000000000..27afcbc0c
--- /dev/null
+++ b/src/battle/anim/perceive.c
@@ -0,0 +1,24 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// perceive (shows a sparkle in a set of eyes, usually for heightened perception.)
+// Used in Glare, Tickle, and Scary Face.
+
+void sub_80D2904(struct Sprite* sprite)
+{
+ if (sprite->animEnded)
+ move_anim_8072740(sprite);
+}
+
+void sub_80D2920(struct Sprite* sprite)
+{
+ sub_80787B0(sprite, 1);
+ sprite->callback = sub_80D2904;
+}
diff --git a/src/battle/anim/powder.c b/src/battle/anim/powder.c
new file mode 100755
index 000000000..178a61737
--- /dev/null
+++ b/src/battle/anim/powder.c
@@ -0,0 +1,48 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+
+static void sub_80CA768(struct Sprite* sprite);
+
+// powder
+// Used by Sleep Powder, Stun Spore, and Poison Powder.
+
+void sub_80CA710(struct Sprite* sprite)
+{
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[1] = gBattleAnimArgs[3];
+
+ if (GetBankSide(gBattleAnimBankAttacker))
+ {
+ sprite->data[3] = -gBattleAnimArgs[4];
+ }
+ else
+ {
+ sprite->data[3] = gBattleAnimArgs[4];
+ }
+
+ sprite->data[4] = gBattleAnimArgs[5];
+ sprite->callback = sub_80CA768;
+}
+
+void sub_80CA768(struct Sprite* sprite)
+{
+ if (sprite->data[0] > 0)
+ {
+ sprite->data[0]--;
+ sprite->pos2.y = sprite->data[2] >> 8;
+ sprite->data[2] += sprite->data[1];
+ sprite->pos2.x = Sin(sprite->data[5], sprite->data[3]);
+ sprite->data[5] = (sprite->data[5] + sprite->data[4]) & 0xFF;
+ }
+ else
+ {
+ move_anim_8072740(sprite);
+ }
+}
diff --git a/src/battle/anim/rain.c b/src/battle/anim/rain.c
new file mode 100644
index 000000000..b38233e3c
--- /dev/null
+++ b/src/battle/anim/rain.c
@@ -0,0 +1,56 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "random.h"
+#include "sprite.h"
+#include "task.h"
+
+extern s16 gBattleAnimArgs[8];
+extern const struct SpriteTemplate gSpriteTemplate_83D9130[];
+
+static void MoveAnimRaindrop(struct Sprite *);
+
+// rain (spawns and animates raindrops)
+// Used in Rain Dance and general rain animation.
+
+void CreateAnimRaindrops(u8 taskId)
+{
+ 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[0]++;
+
+ if (gTasks[taskId].data[0] % gTasks[taskId].data[2] == 1)
+ {
+ u8 x = Random() % 240;
+ u8 y = Random() % 80;
+ CreateSprite(gSpriteTemplate_83D9130, x, y, 4);
+ }
+
+ if (gTasks[taskId].data[0] == gTasks[taskId].data[3])
+ {
+ DestroyAnimVisualTask(taskId);
+ }
+}
+
+void SetAnimRaindropCallback(struct Sprite *sprite)
+{
+ sprite->callback = MoveAnimRaindrop;
+}
+
+static void MoveAnimRaindrop(struct Sprite *sprite)
+{
+ if (++sprite->data[0] <= 13)
+ {
+ sprite->pos2.x++;
+ sprite->pos2.y += 4;
+ }
+
+ if (sprite->animEnded)
+ {
+ DestroySprite(sprite);
+ }
+}
diff --git a/src/battle/anim/ring.c b/src/battle/anim/ring.c
new file mode 100755
index 000000000..0a5816b23
--- /dev/null
+++ b/src/battle/anim/ring.c
@@ -0,0 +1,156 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "main.h"
+#include "blend_palette.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern u8 gObjectBankIDs[];
+
+static void sub_80D1098(struct Sprite* sprite);
+
+// ring (a ring that stretches outward from the Pokemon.)
+// Used in Aromatherapy and Heal Bell.
+
+void sub_80D0FD8(struct Sprite* sprite)
+{
+ u8 bank = 0;
+ u16 sp0 = 0;
+ u16 sp1 = 0;
+ u8 r4;
+
+ if (gBattleAnimArgs[2] == 0)
+ bank = gBattleAnimBankAttacker;
+ else
+ bank = gBattleAnimBankTarget;
+
+ r4 = gBattleAnimArgs[3] ^ 1;
+ if (IsDoubleBattle() && IsAnimBankSpriteVisible(bank ^ 2))
+ {
+ sub_807A3FC(bank, r4, &sp0, &sp1);
+ if (r4 == 0)
+ r4 = sub_8077ABC(bank, 0);
+ else
+ r4 = sub_8077ABC(bank, 2);
+
+ if (GetBankSide(bank) != 0)
+ gBattleAnimArgs[0] -= (sp0 - r4) - gBattleAnimArgs[0]; // This is weird.
+ else
+ gBattleAnimArgs[0] = sp0 - r4;
+ }
+
+ sprite->callback = sub_80793C4;
+ sub_80793C4(sprite);
+}
+
+void sub_80D1098(struct Sprite* sprite)
+{
+ if (sub_8078B5C(sprite))
+ {
+ FreeSpriteOamMatrix(sprite);
+ move_anim_8072740(sprite);
+ }
+}
+
+void sub_80D10B8(struct Sprite* sprite)
+{
+ u16 r9 = 0;
+ u16 r6 = 0;
+ s16 sp0 = 0;
+ s16 sp1 = 0;
+ u8 sp4;
+ u8 bankr7;
+ u8 bankr8;
+ u8 r10;
+
+ if (gBattleAnimArgs[5] == 0)
+ {
+ bankr7 = gBattleAnimBankAttacker;
+ bankr8 = gBattleAnimBankTarget;
+ }
+ else
+ {
+ bankr7 = gBattleAnimBankTarget;
+ bankr8 = gBattleAnimBankAttacker;
+ }
+
+ if (gBattleAnimArgs[6] == 0)
+ {
+ r10 = 0;
+ sp4 = 1;
+ }
+ else
+ {
+ r10 = 2;
+ sp4 = 3;
+ }
+
+ if (GetBankSide(bankr7) != 0)
+ {
+ r9 = sub_8077ABC(bankr7, r10) + gBattleAnimArgs[0];
+ if (IsAnimBankSpriteVisible(bankr8 ^ 2))
+ sprite->subpriority = gSprites[gObjectBankIDs[bankr8 ^ 2]].subpriority - 1;
+ else
+ sprite->subpriority = gSprites[gObjectBankIDs[bankr8]].subpriority - 1;
+ }
+ else
+ {
+ r9 = sub_8077ABC(bankr7, r10) - gBattleAnimArgs[0];
+ if (gMain.inBattle && IsAnimBankSpriteVisible(bankr7 ^ 2))
+ {
+ if (gSprites[gObjectBankIDs[bankr7]].pos1.x < gSprites[gObjectBankIDs[bankr7 ^ 2]].pos1.x)
+ sprite->subpriority = gSprites[gObjectBankIDs[bankr7 ^ 2]].subpriority + 1;
+ else
+ sprite->subpriority = gSprites[gObjectBankIDs[bankr7]].subpriority - 1;
+ }
+ else
+ {
+ sprite->subpriority = gSprites[gObjectBankIDs[bankr7]].subpriority - 1;
+ }
+
+ }
+
+ r6 = sub_8077ABC(bankr7, sp4) + gBattleAnimArgs[1];
+ if (gMain.inBattle && IsAnimBankSpriteVisible(bankr8 ^ 2))
+ {
+ sub_807A3FC(bankr8, gBattleAnimArgs[6], &sp0, &sp1);
+ }
+ else
+ {
+ sp0 = sub_8077ABC(bankr8, r10);
+ sp1 = sub_8077ABC(bankr8, sp4);
+ }
+
+ if (GetBankSide(bankr8))
+ sp0 += gBattleAnimArgs[3];
+ else
+ sp0 -= gBattleAnimArgs[3];
+
+ sp1 += gBattleAnimArgs[4];
+ sprite->pos1.x = sprite->data[1] = r9;
+ sprite->pos1.y = sprite->data[3] = r6;
+ sprite->data[2] = sp0;
+ sprite->data[4] = sp1;
+ sprite->data[0] = gBattleAnimArgs[0];
+ obj_translate_based_on_private_1_2_3_4(sprite);
+ sprite->callback = sub_80D1098;
+ sub_80D1098(sprite);
+}
+
+void sub_80D1318(struct Sprite* sprite)
+{
+ u8 index = IndexOfSpritePaletteTag(0x27DB);
+ if (index != 0xFF)
+ {
+ BlendPalette(((index << 20) + 0x1010000) >> 16, 15, gBattleAnimArgs[5], gBattleAnimArgs[4]);
+ }
+
+ StartSpriteAffineAnim(sprite, 1);
+ sprite->callback = sub_80793C4;
+ sub_80793C4(sprite);
+}
diff --git a/src/battle/anim/roots.c b/src/battle/anim/roots.c
new file mode 100755
index 000000000..40c51808a
--- /dev/null
+++ b/src/battle/anim/roots.c
@@ -0,0 +1,67 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern s16 gUnknown_03000728[];
+
+static void sub_80CB710(struct Sprite* sprite);
+
+// roots
+// Used by Ingrain and Frenzy Plant.
+
+void sub_80CB59C(struct Sprite* sprite)
+{
+ if (!sprite->data[0])
+ {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 1);
+ sprite->pos2.x = gBattleAnimArgs[0];
+ sprite->pos2.y = gBattleAnimArgs[1];
+ sprite->subpriority = gBattleAnimArgs[2] + 30;
+ StartSpriteAnim(sprite, gBattleAnimArgs[3]);
+ sprite->data[2] = gBattleAnimArgs[4];
+ sprite->data[0]++;
+ if ((sprite->pos1.y + sprite->pos2.y) > 120)
+ {
+ sprite->pos1.y += -120 + (sprite->pos2.y + sprite->pos1.y);
+ }
+ }
+ sprite->callback = sub_80CB710;
+}
+
+void sub_80CB620(struct Sprite *sprite)
+{
+ s16 p1 = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ s16 p2 = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ s16 e1 = sub_8077ABC(gBattleAnimBankTarget, 2);
+ s16 e2 = sub_8077ABC(gBattleAnimBankTarget, 3);
+
+ e1 -= p1;
+ e2 -= p2;
+ sprite->pos1.x = p1 + e1 * gBattleAnimArgs[0] / 100;
+ sprite->pos1.y = p2 + e2 * gBattleAnimArgs[0] / 100;
+ sprite->pos2.x = gBattleAnimArgs[1];
+ sprite->pos2.y = gBattleAnimArgs[2];
+ sprite->subpriority = gBattleAnimArgs[3] + 30;
+ StartSpriteAnim(sprite, gBattleAnimArgs[4]);
+ sprite->data[2] = gBattleAnimArgs[5];
+ sprite->callback = sub_80CB710;
+ gUnknown_03000728[0] = sprite->pos1.x;
+ gUnknown_03000728[1] = sprite->pos1.y;
+ gUnknown_03000728[2] = e1;
+ gUnknown_03000728[3] = e2;
+}
+
+void sub_80CB710(struct Sprite* sprite)
+{
+ if (++sprite->data[0] > (sprite->data[2] - 10))
+ sprite->invisible = sprite->data[0] % 2;
+
+ if (sprite->data[0] > sprite->data[2])
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/scan.c b/src/battle/anim/scan.c
new file mode 100755
index 000000000..5573758c3
--- /dev/null
+++ b/src/battle/anim/scan.c
@@ -0,0 +1,200 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "palette.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern s8 gUnknown_083D6DDC[4][2];
+
+static void sub_80CD408(struct Sprite* sprite);
+static void sub_80CD4B8(struct Sprite* sprite);
+static void sub_80CD4EC(struct Sprite* sprite);
+static void sub_80CD5A8(struct Sprite* sprite);
+static void sub_80CD654(struct Sprite* sprite);
+static void sub_80CD67C(struct Sprite* sprite);
+
+// scan
+// Used by Lock-On.
+
+void sub_80CD3E0(struct Sprite* sprite)
+{
+ sprite->pos1.x -= 32;
+ sprite->pos1.y -= 32;
+ sprite->data[0] = 20;
+ sprite->callback = sub_80782D8;
+ StoreSpriteCallbackInData(sprite, sub_80CD408);
+}
+
+void sub_80CD408(struct Sprite* sprite)
+{
+ switch (sprite->data[5] & 1)
+ {
+ case 0:
+ sprite->data[0] = 1;
+ sprite->callback = sub_80782D8;
+ StoreSpriteCallbackInData(sprite, sub_80CD408);
+ break;
+ case 1:
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.y = 0;
+ sprite->pos2.x = 0;
+ sprite->data[0] = 8;
+ sprite->data[2] = sprite->pos1.x + gUnknown_083D6DDC[sprite->data[5] >> 8][0];
+ sprite->data[4] = sprite->pos1.y + gUnknown_083D6DDC[sprite->data[5] >> 8][1];
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, sub_80CD4B8);
+ sprite->data[5] += 0x100;
+ PlaySE12WithPanning(0xD2, sub_8076F98(0x3F));
+ break;
+ }
+
+ sprite->data[5] ^= 1;
+}
+
+void sub_80CD4B8(struct Sprite* sprite)
+{
+ if ((sprite->data[5] >> 8) == 4)
+ {
+ sprite->data[0] = 10;
+ sprite->callback = sub_80782D8;
+ StoreSpriteCallbackInData(sprite, sub_80CD4EC);
+ }
+ else
+ {
+ sprite->callback = sub_80CD408;
+ }
+}
+
+void sub_80CD4EC(struct Sprite* sprite)
+{
+ s16 a;
+ s16 b;
+ if (sprite->oam.affineParam == 0)
+ {
+ sprite->data[0] = 3;
+ sprite->data[1] = 0;
+ sprite->data[2] = 0;
+ sprite->callback = sub_80782D8;
+ StoreSpriteCallbackInData(sprite, sub_80CD5A8);
+ }
+ else
+ {
+ switch (sprite->oam.affineParam)
+ {
+ case 1:
+ a = -8;
+ b = -8;
+ break;
+ case 2:
+ a = -8;
+ b = 8;
+ break;
+ case 3:
+ a = 8;
+ b = -8;
+ break;
+ default:
+ a = 8;
+ b = 8;
+ break;
+ }
+
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.y = 0;
+ sprite->pos2.x = 0;
+ sprite->data[0] = 6;
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2) + a;
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3) + b;
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, sub_80CD654);
+ }
+}
+
+void sub_80CD5A8(struct Sprite* sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ if ((sprite->data[1] += 3) > 16)
+ sprite->data[1] = 16;
+ }
+ else if ((sprite->data[1] -= 3) < 0)
+ {
+ sprite->data[1] = 0;
+ }
+
+ BlendPalettes(sub_80791A8(1, 1, 1, 1, 1, 0, 0), sprite->data[1], 0x7FFF);
+ if (sprite->data[1] == 16)
+ {
+ int pal;
+ sprite->data[2]++;
+ pal = sprite->oam.paletteNum;
+ LoadPalette(&gPlttBufferUnfaded[0x108 + pal * 16], pal * 16 | 0x101, 4);
+ PlaySE12WithPanning(0xC0, sub_8076F98(0x3F));
+ }
+ else if (sprite->data[1] == 0)
+ {
+ sprite->callback = sub_80CD654;
+ }
+}
+
+void sub_80CD654(struct Sprite* sprite)
+{
+ if ((u16)gBattleAnimArgs[7] == 0xFFFF)
+ {
+ sprite->data[1] = 0;
+ sprite->data[0] = 0;
+ sprite->callback = sub_80CD67C;
+ }
+}
+
+void sub_80CD67C(struct Sprite* sprite)
+{
+ if (sprite->data[0] % 3 == 0)
+ {
+ sprite->data[1]++;
+ sprite->invisible ^= 1;
+ }
+
+ sprite->data[0]++;
+ if (sprite->data[1] == 8)
+ move_anim_8072740(sprite);
+}
+
+void sub_80CD6CC(struct Sprite* sprite)
+{
+ sprite->oam.affineParam = gBattleAnimArgs[0];
+ if ((s16)sprite->oam.affineParam == 1)
+ {
+ sprite->pos1.x -= 0x18;
+ sprite->pos1.y -= 0x18;
+ }
+ else if ((s16)sprite->oam.affineParam == 2)
+ {
+ sprite->pos1.x -= 0x18;
+ sprite->pos1.y += 0x18;
+ sprite->oam.matrixNum = 16;
+ }
+ else if ((s16)sprite->oam.affineParam == 3)
+ {
+ sprite->pos1.x += 0x18;
+ sprite->pos1.y -= 0x18;
+ sprite->oam.matrixNum = 8;
+ }
+ else
+ {
+ sprite->pos1.x += 0x18;
+ sprite->pos1.y += 0x18;
+ sprite->oam.matrixNum = 24;
+ }
+
+ sprite->oam.tileNum = (sprite->oam.tileNum + 16);
+ sprite->callback = sub_80CD3E0;
+ sub_80CD3E0(sprite);
+}
diff --git a/src/battle/anim/scary_face.c b/src/battle/anim/scary_face.c
new file mode 100755
index 000000000..0c5056704
--- /dev/null
+++ b/src/battle/anim/scary_face.c
@@ -0,0 +1,129 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "decompress.h"
+#include "palette.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern struct INCBIN_U8 gBattleAnimBackgroundTilemap_ScaryFaceContest;
+extern struct INCBIN_U8 gBattleAnimBackgroundTilemap_ScaryFacePlayer;
+extern struct INCBIN_U8 gBattleAnimBackgroundTilemap_ScaryFaceOpponent;
+extern struct INCBIN_U8 gBattleAnimBackgroundImage_ScaryFace;
+extern struct INCBIN_U8 gBattleAnimBackgroundPalette_ScaryFace;
+
+extern u16 gUnknown_030041B4;
+extern u16 gUnknown_030042C0;
+
+static void sub_80D24E0(u8 taskId);
+
+// scary_face (darkens the screen and shows a scary face.)
+// Used in Glare and Scary Face.
+
+void sub_80D23B4(u8 taskId)
+{
+ struct Struct_sub_8078914 subStruct;
+ u8* tempvar;
+ REG_BLDCNT = 0x3F42;
+ REG_BLDALPHA = 0x1000;
+ REG_BG1CNT_BITFIELD.priority = 1;
+ REG_BG1CNT_BITFIELD.screenSize = 0;
+ if (!NotInBattle())
+ REG_BG1CNT_BITFIELD.charBaseBlock = 1;
+
+ gUnknown_030042C0 = 0;
+ gUnknown_030041B4 = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ sub_8078914(&subStruct);
+ tempvar = subStruct.field_4;
+ DmaFill32(3, 0x0, tempvar, 0x1000);
+ if (NotInBattle())
+ LZDecompressVram(&gBattleAnimBackgroundTilemap_ScaryFaceContest, subStruct.field_4);
+ else if (GetBankSide(gBattleAnimBankTarget) == 1)
+ LZDecompressVram(&gBattleAnimBackgroundTilemap_ScaryFacePlayer, subStruct.field_4);
+ else
+ LZDecompressVram(&gBattleAnimBackgroundTilemap_ScaryFaceOpponent, subStruct.field_4);
+
+ LZDecompressVram(&gBattleAnimBackgroundImage_ScaryFace, subStruct.field_0);
+ LoadCompressedPalette(&gBattleAnimBackgroundPalette_ScaryFace, subStruct.field_8 << 4, 32);
+ if (NotInBattle())
+ sub_80763FC(subStruct.field_8, (u16 *)subStruct.field_4, 0, 0);
+
+ gTasks[taskId].func = sub_80D24E0;
+}
+
+void sub_80D24E0(u8 taskId)
+{
+ struct Struct_sub_8078914 subStruct;
+
+ switch (gTasks[taskId].data[12])
+ {
+ case 0:
+ if (++gTasks[taskId].data[10] == 2)
+ {
+ 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] == 14)
+ {
+ gTasks[taskId].data[12]++;
+ gTasks[taskId].data[11] = 0;
+ }
+ }
+ break;
+ case 1:
+ if (++gTasks[taskId].data[11] == 0x15)
+ {
+ gTasks[taskId].data[11] = 14;
+ gTasks[taskId].data[12]++;
+ }
+ break;
+ case 2:
+ if (++gTasks[taskId].data[10] == 2)
+ {
+ 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);
+ {
+ 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;
+ }
+ }
+ }
+ DmaClear32(3, subStruct.field_4, 0x800);
+ if (!NotInBattle())
+ REG_BG1CNT_BITFIELD.charBaseBlock = 0;
+
+ gTasks[taskId].data[12]++;
+ // fall through
+ case 4:
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BG1CNT_BITFIELD.priority = 1;
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
diff --git a/src/battle/anim/seed.c b/src/battle/anim/seed.c
new file mode 100755
index 000000000..bd072849a
--- /dev/null
+++ b/src/battle/anim/seed.c
@@ -0,0 +1,50 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CAB88(struct Sprite* sprite);
+static void sub_80CABC0(struct Sprite* sprite);
+
+// seed (sprouts a sapling from a seed.)
+// Used by Leech Seed.
+
+void sub_80CAB18(struct Sprite* sprite)
+{
+ sub_80787B0(sprite, 1);
+ if (GetBankSide(gBattleAnimBankAttacker))
+ {
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ }
+
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 0) + gBattleAnimArgs[2];
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 1) + gBattleAnimArgs[3];
+ sprite->data[5] = gBattleAnimArgs[5];
+ sub_80786EC(sprite);
+ sprite->callback = sub_80CAB88;
+}
+
+void sub_80CAB88(struct Sprite* sprite)
+{
+ if (sub_8078718(sprite))
+ {
+ sprite->invisible = 1;
+ sprite->data[0] = 10;
+ sprite->callback = sub_80782D8;
+ StoreSpriteCallbackInData(sprite, sub_80CABC0);
+ }
+}
+
+void sub_80CABC0(struct Sprite* sprite)
+{
+ sprite->invisible = 0;
+ StartSpriteAnim(sprite, 1);
+ sprite->data[0] = 60;
+ sprite->callback = sub_80782D8;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+}
diff --git a/src/battle/anim/shadow_enlarge.c b/src/battle/anim/shadow_enlarge.c
new file mode 100755
index 000000000..bed6c7ea3
--- /dev/null
+++ b/src/battle/anim/shadow_enlarge.c
@@ -0,0 +1,35 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D0428(u8 taskId);
+
+// shadow_enlarge (the magnifying-like shadow over the Pokemon effect)
+// Used in Disable.
+
+void sub_80D03C4(u8 taskId)
+{
+ u8 spriteId = GetAnimBankSpriteId(1);
+ sub_8078E70(spriteId, 1);
+ obj_id_set_rotscale(spriteId, 0xD0, 0xD0, 0);
+ sub_8079108(gSprites[spriteId].oam.paletteNum + 16, 0);
+ gTasks[taskId].data[0] = 0x50;
+ gTasks[taskId].func = sub_80D0428;
+}
+
+void sub_80D0428(u8 taskId)
+{
+ if (--gTasks[taskId].data[0] == -1)
+ {
+ u8 spriteId = GetAnimBankSpriteId(1);
+ sub_8078F40(spriteId);
+ sub_8079108(gSprites[spriteId].oam.paletteNum + 16, 1);
+ DestroyAnimVisualTask(taskId);
+ }
+}
diff --git a/src/battle/anim/shadow_minimize.c b/src/battle/anim/shadow_minimize.c
new file mode 100755
index 000000000..22ebeab7a
--- /dev/null
+++ b/src/battle/anim/shadow_minimize.c
@@ -0,0 +1,262 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D04E0(u8 taskId);
+void sub_80D0614(struct Task* task, u8 taskId);
+void sub_80D0704(struct Sprite* sprite);
+
+// shadow_minimize (the minimizing-like shadow over the Pokemon effect.)
+// Used in Minimize.
+
+void sub_80D0488(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ u8 spriteId = GetAnimBankSpriteId(0);
+ task->data[0] = spriteId;
+ sub_8078E70(spriteId, 0);
+ task->data[1] = 0;
+ task->data[2] = 0;
+ task->data[3] = 0;
+ task->data[4] = 0x100;
+ task->data[5] = 0;
+ task->data[6] = 0;
+ task->data[7] = sub_8079E90(gBattleAnimBankAttacker);
+ task->func = sub_80D04E0;
+}
+
+void sub_80D04E0(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ switch (task->data[1])
+ {
+ case 0:
+ if (task->data[2] == 0 || task->data[2] == 3 || task->data[2] == 6)
+ sub_80D0614(task, taskId);
+ task->data[2]++;
+ task->data[4] += 0x28;
+ obj_id_set_rotscale(task->data[0], task->data[4], task->data[4], 0);
+ sub_8079A64(task->data[0]);
+ if (task->data[2] == 32)
+ {
+ task->data[5]++;
+ task->data[1]++;
+ }
+ break;
+ case 1:
+ if (task->data[6] == 0)
+ {
+ if (task->data[5] == 3)
+ {
+ task->data[2] = 0;
+ task->data[1] = 3;
+ }
+ else
+ {
+ task->data[2] = 0;
+ task->data[3] = 0;
+ task->data[4] = 0x100;
+ obj_id_set_rotscale(task->data[0], task->data[4], task->data[4], 0);
+ sub_8079A64(task->data[0]);
+ task->data[1] = 2;
+ }
+ }
+ break;
+ case 2:
+ task->data[1] = 0;
+ break;
+ case 3:
+ if (++task->data[2] > 32)
+ {
+ task->data[2] = 0;
+ task->data[1]++;
+ }
+ break;
+ case 4:
+ task->data[2] += 2;
+ task->data[4] -= 0x50;
+ obj_id_set_rotscale(task->data[0], task->data[4], task->data[4], 0);
+ sub_8079A64(task->data[0]);
+ if (task->data[2] == 32)
+ {
+ task->data[2] = 0;
+ task->data[1]++;
+ }
+ break;
+ case 5:
+ sub_8078F40(task->data[0]);
+ gSprites[task->data[15]].pos2.y = 0;
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+#ifdef NONMATCHING
+void sub_80D0614(struct Task* task, u8 taskId)
+{
+ s16 r8 = duplicate_obj_of_side_rel2move_in_transparent_mode(0);
+ if (r8 >= 0)
+ {
+ u8 r6 = AllocOamMatrix();
+ if (r6 == 0xFF)
+ {
+ obj_delete_but_dont_free_vram(&gSprites[r8]);
+ }
+ else
+ {
+ gSprites[r8].oam.objMode = 1;
+ gSprites[r8].oam.affineMode = 3;
+ gSprites[r8].affineAnimPaused = 1;
+ gSprites[r8].oam.matrixNum = r6;
+ gSprites[r8].subpriority = task->data[7] - task->data[3];
+ task->data[3]++;
+ task->data[6]++;
+ gSprites[r8].data[0] = 16;
+ gSprites[r8].data[1] = taskId;
+ gSprites[r8].data[2] = 6;
+ gSprites[r8].callback = sub_80D0704;
+ obj_id_set_rotscale(r8, task->data[4], task->data[4], 0);
+ gSprites[r8].oam.affineMode = 1;
+ CalcCenterToCornerVec(&gSprites[r8], gSprites[r8].oam.shape, gSprites[r8].oam.size, gSprites[r8].oam.affineMode);
+ }
+ }
+}
+#else
+__attribute__((naked))
+void sub_80D0614(struct Task* task, u8 taskId)
+{
+ 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 @r7 is task\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+ mov r9, r1 @r9 is taskId\n\
+ movs r0, 0\n\
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ mov r8, r0\n\
+ lsls r0, 16\n\
+ asrs r4, r0, 16\n\
+ cmp r4, 0\n\
+ blt _080D06EE @jump to bottom\n\
+ bl AllocOamMatrix\n\
+ lsls r0, 24\n\
+ lsrs r6, r0, 24\n\
+ cmp r6, 0xFF\n\
+ bne _080D0658\n\
+ lsls r0, r4, 4\n\
+ adds r0, r4\n\
+ lsls r0, 2\n\
+ ldr r1, _080D0654 @ =gSprites\n\
+ adds r0, r1\n\
+ bl obj_delete_but_dont_free_vram\n\
+ b _080D06EE @ jump to bottom\n\
+ .align 2, 0\n\
+_080D0654: .4byte gSprites\n\
+_080D0658:\n\
+ ldr r5, _080D06FC @ =gSprites\n\
+ lsls r3, r4, 4\n\
+ adds r3, r4\n\
+ lsls r3, 2\n\
+ adds r4, r3, r5\n\
+ ldrb r1, [r4, 0x1]\n\
+ movs r0, 0xD\n\
+ negs r0, r0\n\
+ ands r0, r1\n\
+ movs r1, 0x4\n\
+ orrs r0, r1\n\
+ movs r1, 0x3\n\
+ orrs r0, r1\n\
+ strb r0, [r4, 0x1]\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\
+ 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\
+ ldrb r0, [r7, 0x16]\n\
+ ldrb r1, [r7, 0xE]\n\
+ subs r0, r1\n\
+ adds r1, r4, 0\n\
+ adds r1, 0x43\n\
+ strb r0, [r1]\n\
+ ldrh r0, [r7, 0xE]\n\
+ adds r0, 0x1\n\
+ strh r0, [r7, 0xE]\n\
+ ldrh r0, [r7, 0x14]\n\
+ adds r0, 0x1\n\
+ strh r0, [r7, 0x14]\n\
+ movs r0, 0x10\n\
+ strh r0, [r4, 0x2E]\n\
+ mov r0, r9\n\
+ strh r0, [r4, 0x30]\n\
+ movs r0, 0x6\n\
+ strh r0, [r4, 0x32]\n\
+ adds r5, 0x1C\n\
+ adds r3, r5\n\
+ ldr r0, _080D0700 @ =sub_80D0704\n\
+ str r0, [r3]\n\
+ mov r1, r8 @duplicate_obj_of_side_rel2move_in_transparent_mode(0)\n\
+ lsls r0, r1, 24\n\
+ lsrs r0, 24\n\
+ movs r1, 0x10\n\
+ ldrsh r2, [r7, r1]\n\
+ adds r1, r2, 0\n\
+ movs r3, 0\n\
+ bl obj_id_set_rotscale\n\
+ ldrb r0, [r4, 0x1]\n\
+ movs r3, 0x4\n\
+ negs r3, r3\n\
+ ands r3, r0\n\
+ movs r0, 0x1\n\
+ orrs r3, r0\n\
+ strb 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\
+_080D06EE:\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\
+_080D06FC: .4byte gSprites\n\
+_080D0700: .4byte sub_80D0704\n\
+.syntax divided\n");
+}
+#endif
+
+void sub_80D0704(struct Sprite* sprite)
+{
+ if (--sprite->data[0] == 0)
+ {
+ gTasks[sprite->data[1]].data[sprite->data[2]]--;
+ FreeOamMatrix(sprite->oam.matrixNum);
+ obj_delete_but_dont_free_vram(sprite);
+ }
+}
diff --git a/src/battle/anim/shield.c b/src/battle/anim/shield.c
new file mode 100755
index 000000000..8ed4f9796
--- /dev/null
+++ b/src/battle/anim/shield.c
@@ -0,0 +1,81 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "palette.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CCE0C(struct Sprite* sprite);
+
+// shield
+// Used by Protect.
+
+void sub_80CCD24(struct Sprite* sprite)
+{
+ if (NotInBattle() != 0)
+ {
+ gBattleAnimArgs[1] += 8;
+ }
+
+ sprite->pos1.x = sub_8077EE4(gBattleAnimBankAttacker, 0) + gBattleAnimArgs[0];
+ sprite->pos1.y = sub_8077EE4(gBattleAnimBankAttacker, 1) + gBattleAnimArgs[1];
+ if (GetBankSide(gBattleAnimBankAttacker) == 0 || NotInBattle())
+ sprite->oam.priority = sub_8079ED4(gBattleAnimBankAttacker) + 1;
+ else
+ sprite->oam.priority = sub_8079ED4(gBattleAnimBankAttacker);
+
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[2] = (IndexOfSpritePaletteTag(0x2828) << 4) + 0x100;
+ sprite->data[7] = 16;
+ REG_BLDCNT = 0x3F40;
+ REG_BLDALPHA = (sprite->data[7] << 8) | (16 - sprite->data[7]);
+ sprite->callback = sub_80CCE0C;
+}
+
+void sub_80CCE0C(struct Sprite* sprite)
+{
+ int a;
+ int i;
+ sprite->data[5] += 0x60;
+ sprite->pos2.x = -(sprite->data[5] >> 8);
+ sprite->data[1]++;
+ if (sprite->data[1] > 1)
+ {
+ sprite->data[1] = 0;
+ a = gPlttBufferFaded[sprite->data[2] + 1];
+ i = 0;
+ do
+ {
+ gPlttBufferFaded[sprite->data[2] + ++i] = gPlttBufferFaded[sprite->data[2] + i + 1];
+ } while ( i <= 5 );
+
+ gPlttBufferFaded[sprite->data[2] + 7] = a;
+ }
+
+ if (sprite->data[7] > 6 && sprite->data[0] >0 && ++sprite->data[6] > 1)
+ {
+ sprite->data[6] = 0;
+ sprite->data[7] -= 1;
+ REG_BLDALPHA = (sprite->data[7] << 8) | (16 - sprite->data[7]);;
+ }
+
+ if (sprite->data[0] >0)
+ {
+ sprite->data[0] -= 1;
+ }
+ else if (++sprite->data[6] > 1)
+ {
+ sprite->data[6] = 0;
+ sprite->data[7]++;
+ REG_BLDALPHA = (sprite->data[7] << 8) | (16 - sprite->data[7]);
+ if (sprite->data[7] == 16)
+ {
+ sprite->invisible = 1;
+ sprite->callback = sub_807861C;
+ }
+ }
+}
diff --git a/src/battle/anim/shimmer.c b/src/battle/anim/shimmer.c
new file mode 100755
index 000000000..ecb3dcdf9
--- /dev/null
+++ b/src/battle/anim/shimmer.c
@@ -0,0 +1,48 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "blend_palette.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern u16 gUnknown_083D6984[];
+
+// shimmer
+// Used by Magical Leaf.
+
+void sub_80CC5F8(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ switch (task->data[0])
+ {
+ case 0:
+ task->data[8] = IndexOfSpritePaletteTag(0x274f) * 16 + 256;
+ task->data[12] = IndexOfSpritePaletteTag(0x27b0) * 16 + 256;
+ task->data[0]++;
+ break;
+ case 1:
+ task->data[9]++;
+ if (task->data[9] >= 0)
+ {
+ task->data[9] = 0;
+ BlendPalette(task->data[8], 0x10, task->data[10], gUnknown_083D6984[task->data[11]]);
+ BlendPalette(task->data[12], 0x10, task->data[10], gUnknown_083D6984[task->data[11]]);
+ task->data[10]++;
+ if (task->data[10] == 17)
+ {
+ task->data[10] = 0;
+ task->data[11]++;
+ if (task->data[11] == 7)
+ task->data[11] = 0;
+ }
+ }
+ break;
+ }
+
+ if (gBattleAnimArgs[7] == -1)
+ DestroyAnimVisualTask(taskId);
+}
diff --git a/src/battle/anim/shock.c b/src/battle/anim/shock.c
new file mode 100644
index 000000000..35c380f23
--- /dev/null
+++ b/src/battle/anim/shock.c
@@ -0,0 +1,106 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+
+extern s16 gBattleAnimArgs[8];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+extern struct OamMatrix gOamMatrices[];
+
+extern void sub_80DA48C(struct Sprite *);
+
+// shock (moves the little electricity lines)
+// Used in Shock.
+
+void sub_80D6294(struct Sprite *sprite)
+{
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankTarget, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankTarget, 3);
+
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ {
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ sprite->pos1.y -= gBattleAnimArgs[1];
+ }
+ else
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ }
+
+ sprite->data[0] = 0;
+ sprite->data[1] = gBattleAnimArgs[2];
+ sprite->data[2] = gBattleAnimArgs[3];
+ sprite->data[3] = gBattleAnimArgs[4];
+
+ StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
+ sprite->callback = sub_8078114;
+}
+
+void sub_80D6328(struct Sprite *sprite)
+{
+ u8 slot;
+ u32 matrixNum;
+ s16 sineVal;
+
+ switch (gBattleAnimArgs[4])
+ {
+ case 0:
+ slot = gBattleAnimBankAttacker;
+ break;
+ case 1:
+ default:
+ slot = gBattleAnimBankTarget;
+ break;
+ case 2:
+ if (!IsAnimBankSpriteVisible(gBattleAnimBankAttacker ^ 2))
+ {
+ slot = gBattleAnimBankAttacker;
+ }
+ else
+ {
+ slot = gBattleAnimBankAttacker ^ 2;
+ }
+ break;
+ case 3:
+ if (IsAnimBankSpriteVisible(gBattleAnimBankAttacker ^ 2))
+ {
+ slot = gBattleAnimBankTarget ^ 2;
+ }
+ else
+ {
+ slot = gBattleAnimBankTarget;
+ }
+ break;
+ }
+
+ if (gBattleAnimArgs[5] == 0)
+ {
+ sprite->pos1.x = sub_8077ABC(slot, 0);
+ sprite->pos1.y = sub_8077ABC(slot, 1);
+ }
+ else
+ {
+ sprite->pos1.x = sub_8077ABC(slot, 2);
+ sprite->pos1.y = sub_8077ABC(slot, 3);
+ }
+
+ sprite->pos2.x = (gSineTable[gBattleAnimArgs[0]] * gBattleAnimArgs[1]) >> 8;
+ sprite->pos2.y = (gSineTable[gBattleAnimArgs[0] + 64] * gBattleAnimArgs[1]) >> 8;
+
+ if (gBattleAnimArgs[6] & 1)
+ {
+ sprite->oam.priority = sub_8079ED4(slot) + 1;
+ }
+
+ matrixNum = sprite->oam.matrixNum;
+ sineVal = gSineTable[gBattleAnimArgs[2]];
+
+ gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[gBattleAnimArgs[2] + 64];
+ gOamMatrices[matrixNum].b = sineVal;
+ gOamMatrices[matrixNum].c = -sineVal;
+
+ sprite->data[0] = gBattleAnimArgs[3];
+ sprite->callback = sub_80DA48C;
+}
diff --git a/src/battle/anim/silhouette.c b/src/battle/anim/silhouette.c
new file mode 100755
index 000000000..71ff3dae2
--- /dev/null
+++ b/src/battle/anim/silhouette.c
@@ -0,0 +1,77 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CB3A8(u8 taskId);
+static void sub_80CB438(u8 taskId);
+
+// silhouette (the transparent shadow image used for mimic.)
+// Only used by Mimic.
+
+void sub_80CB340(u8 taskId)
+{
+ u8 spriteId = GetAnimBankSpriteId(1);
+ if (gSprites[spriteId].invisible)
+ {
+ DestroyAnimVisualTask(taskId);
+ }
+ else
+ {
+ sub_8078E70(spriteId, 1);
+ gTasks[taskId].data[0] = gBattleAnimArgs[0];
+ gTasks[taskId].data[1] = gBattleAnimArgs[1];
+ gTasks[taskId].data[11] = 256;
+ gTasks[taskId].func = sub_80CB3A8;
+ }
+}
+
+void sub_80CB3A8(u8 taskId)
+{
+ u8 spriteId = GetAnimBankSpriteId(1);
+ gTasks[taskId].data[10] += gTasks[taskId].data[0];
+ gSprites[spriteId].pos2.x = gTasks[taskId].data[10] >> 8;
+ if (GetBankSide(gBattleAnimBankTarget))
+ {
+ gSprites[spriteId].pos2.x = -gSprites[spriteId].pos2.x;
+ }
+
+ gTasks[taskId].data[11] += 16;
+ obj_id_set_rotscale(spriteId, gTasks[taskId].data[11], gTasks[taskId].data[11], 0);
+ sub_8079A64(spriteId);
+ gTasks[taskId].data[1]--;
+ if (!gTasks[taskId].data[1])
+ {
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_80CB438;
+ }
+}
+
+void sub_80CB438(u8 taskId)
+{
+ if ((u16)gBattleAnimArgs[7] == 0xFFFF)
+ {
+ if (gTasks[taskId].data[0] == 0)
+ {
+ u8 spriteId = GetAnimBankSpriteId(1);
+ sub_8078F40(spriteId);
+ gSprites[spriteId].pos2.x = 0;
+ gSprites[spriteId].pos2.y = 0;
+ gTasks[taskId].data[0]++;
+ return;
+ }
+ }
+ else
+ {
+ if (gTasks[taskId].data[0] == 0)
+ return;
+ }
+
+ gTasks[taskId].data[0]++;
+ if (gTasks[taskId].data[0] == 3)
+ DestroyAnimVisualTask(taskId);
+}
diff --git a/src/battle/anim/slash.c b/src/battle/anim/slash.c
new file mode 100755
index 000000000..c5869c4ab
--- /dev/null
+++ b/src/battle/anim/slash.c
@@ -0,0 +1,83 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CDE78(struct Sprite* sprite);
+static void sub_80CDEB0(struct Sprite* sprite);
+static void sub_80CDEC0(struct Sprite* sprite);
+
+// slash (a cutting animation)
+// Used in Slash and False Swipe.
+
+void sub_80CDD74(struct Sprite* sprite)
+{
+ if (gBattleAnimArgs[0] == 0)
+ {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2) + gBattleAnimArgs[1];
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3) + gBattleAnimArgs[2];
+ }
+ else
+ {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[1];
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankTarget, 3) + gBattleAnimArgs[2];
+ }
+
+ sprite->data[0] = 0;
+ sprite->data[1] = 0;
+ StoreSpriteCallbackInData(sprite, sub_80CDEC0);
+ sprite->callback = sub_8078600;
+}
+
+void sub_80CDDDC(struct Sprite* sprite)
+{
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankTarget, 2) + 0xFFD0;
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankTarget, 3);
+ StoreSpriteCallbackInData(sprite, sub_80CDE78);
+ sprite->callback = sub_8078600;
+}
+
+void sub_80CDE24(struct Sprite* sprite)
+{
+ sprite->pos1.x = sprite->pos1.x = sub_8077ABC(gBattleAnimBankTarget, 2) + 0xFFD0 + gBattleAnimArgs[0];
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankTarget, 3);
+ StartSpriteAnim(sprite, 1);
+ sprite->data[0] = 0;
+ sprite->data[1] = 0;
+ sprite->callback = sub_80CDEC0;
+}
+
+void sub_80CDE78(struct Sprite* sprite)
+{
+ if (++sprite->data[0] > 8)
+ {
+ sprite->data[0] = 12;
+ sprite->data[1] = 8;
+ sprite->data[2] = 0;
+ StoreSpriteCallbackInData(sprite, sub_80CDEB0);
+ sprite->callback = sub_8078364;
+ }
+}
+
+void sub_80CDEB0(struct Sprite* sprite)
+{
+ sprite->data[0] = 0;
+ sprite->data[1] = 0;
+ sprite->callback = sub_80CDEC0;
+}
+
+void sub_80CDEC0(struct Sprite* sprite)
+{
+ if (++sprite->data[0] > 1)
+ {
+ sprite->data[0] = 0;
+ sprite->invisible = !sprite->invisible;
+ if (++sprite->data[1] > 8)
+ move_anim_8072740(sprite);
+ }
+}
diff --git a/src/battle/anim/sleep.c b/src/battle/anim/sleep.c
new file mode 100755
index 000000000..58ecc702f
--- /dev/null
+++ b/src/battle/anim/sleep.c
@@ -0,0 +1,44 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CD394(struct Sprite* sprite);
+
+// sleep (the "ZZZ" graphical effect)
+// Used by Rest and the sleep turn when the Pokemon is still asleep.
+
+void sub_80CD328(struct Sprite* sprite)
+{
+ sub_8078650(sprite);
+ if (GetBankSide(gBattleAnimBankAttacker) == 0)
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->data[3] = 1;
+ }
+ else
+ {
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->data[3] = 0xFFFF;
+ StartSpriteAffineAnim(sprite, 1);
+ }
+
+ sprite->callback = sub_80CD394;
+}
+
+void sub_80CD394(struct Sprite* sprite)
+{
+ sprite->pos2.y = -(sprite->data[0] / 0x28);
+ sprite->pos2.x = sprite->data[4] / 10;
+ sprite->data[4] += sprite->data[3] * 2;
+ sprite->data[0] += sprite->data[1];
+ if (++sprite->data[1] > 0x3C)
+ move_anim_8074EE0(sprite);
+}
diff --git a/src/battle/anim/slice.c b/src/battle/anim/slice.c
new file mode 100755
index 000000000..8e33dcb06
--- /dev/null
+++ b/src/battle/anim/slice.c
@@ -0,0 +1,111 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CCB00(struct Sprite* sprite);
+
+// slice (the cutting animation showing as a yellow line drawn diagonally)
+// Used in Cut, Fury Cutter, Aerial Ace, and Air Cutter.
+
+void sub_80CC914(struct Sprite* sprite)
+{
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankTarget, 0);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankTarget, 1);
+ if (GetBankSide(gBattleAnimBankTarget) == 0)
+ sprite->pos1.y += 8;
+
+ sprite->callback = sub_80CCB00;
+ if (gBattleAnimArgs[2] == 0)
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ }
+ else
+ {
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ sprite->hFlip = 1;
+ }
+
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->data[1] -= 0x400;
+ sprite->data[2] += 0x400;
+ sprite->data[5] = gBattleAnimArgs[2];
+ if (sprite->data[5] == 1)
+ sprite->data[1] = -sprite->data[1];
+}
+
+void sub_80CC9BC(struct Sprite* sprite)
+{
+ u8 a;
+ u8 b;
+ switch (gBattleAnimArgs[3])
+ {
+ case 1:
+ a = sub_8077ABC(gBattleAnimBankTarget ^ 2, 0);
+ b = sub_8077ABC(gBattleAnimBankTarget ^ 2, 1);
+ break;
+ case 2:
+ a = sub_8077ABC(gBattleAnimBankTarget, 0);
+ b = sub_8077ABC(gBattleAnimBankTarget, 1);
+ if (IsAnimBankSpriteVisible(gBattleAnimBankTarget ^ 2))
+ {
+ a = (sub_8077ABC(gBattleAnimBankTarget ^ 2, 0) + a) / 2;
+ b = (sub_8077ABC(gBattleAnimBankTarget ^ 2, 1) + b) / 2;
+ }
+ break;
+ case 0:
+ default:
+ a = sub_8077ABC(gBattleAnimBankTarget, 0);
+ b = sub_8077ABC(gBattleAnimBankTarget, 1);
+ break;
+ }
+
+ sprite->pos1.x = a;
+ sprite->pos1.y = b;
+ if (GetBankSide(gBattleAnimBankTarget) == 0)
+ sprite->pos1.y += 8;
+
+ sprite->callback = sub_80CCB00;
+ if (gBattleAnimArgs[2] == 0)
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ }
+ else
+ {
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ sprite->hFlip = 1;
+ }
+
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->data[1] -= 0x400;
+ sprite->data[2] += 0x400;
+ sprite->data[5] = gBattleAnimArgs[2];
+ if (sprite->data[5] == 1)
+ sprite->data[1] = -sprite->data[1];
+}
+
+void sub_80CCB00(struct Sprite* sprite)
+{
+ sprite->data[3] += sprite->data[1];
+ sprite->data[4] += sprite->data[2];
+ if (sprite->data[5] == 0)
+ sprite->data[1] += 0x18;
+ else
+ sprite->data[1] -= 0x18;
+
+ sprite->data[2] -= 0x18;
+ sprite->pos2.x = sprite->data[3] >> 8;
+ sprite->pos2.y = sprite->data[4] >> 8;
+ sprite->data[0]++;
+ if (sprite->data[0] == 20)
+ {
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+ sprite->data[0] = 3;
+ sprite->callback = sub_80782D8;
+ }
+}
diff --git a/src/battle/anim/smoke.c b/src/battle/anim/smoke.c
new file mode 100755
index 000000000..c6ce91b76
--- /dev/null
+++ b/src/battle/anim/smoke.c
@@ -0,0 +1,22 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// smoke (smoke on the ground around a sprite.)
+// Used in Extremespeed.
+
+void sub_80D1A70(struct Sprite* sprite)
+{
+ sprite->invisible = gTasks[sprite->data[0]].data[5];
+ if (sprite->animEnded)
+ {
+ gTasks[sprite->data[0]].data[sprite->data[1]]--;
+ DestroySprite(sprite);
+ }
+}
diff --git a/src/battle/anim/sonic.c b/src/battle/anim/sonic.c
new file mode 100755
index 000000000..684516ba7
--- /dev/null
+++ b/src/battle/anim/sonic.c
@@ -0,0 +1,136 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "battle_anim_80CA710.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// sonic (shoots a projectile towards the target.)
+// Used in Sonic Boom and Air Cutter.
+
+void sub_80CF6DC(struct Sprite* sprite)
+{
+ s16 a;
+ s16 b;
+ u16 c;
+
+ if (NotInBattle())
+ {
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ }
+ else if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ {
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ gBattleAnimArgs[1] = -gBattleAnimArgs[1];
+ gBattleAnimArgs[3] = -gBattleAnimArgs[3];
+ }
+
+ sub_80787B0(sprite, 1);
+ a = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[2];
+ b = sub_8077ABC(gBattleAnimBankTarget, 3) + gBattleAnimArgs[3];
+ c = sub_80790F0(a - sprite->pos1.x, b - sprite->pos1.y);
+ c += 0xF000;
+ if (NotInBattle())
+ c -= 0x6000;
+
+ sub_8078FDC(sprite, 0, 0x100, 0x100, c);
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = a;
+ sprite->data[4] = b;
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+}
+
+void sub_80CF7E0(struct Sprite* sprite)
+{
+ if (sprite->data[0]-- <= 0)
+ {
+ gTasks[sprite->data[7]].data[1]--;
+ DestroySprite(sprite);
+ }
+}
+
+void sub_80CF814(struct Sprite* sprite)
+{
+ struct Task* task = &gTasks[sprite->data[7]];
+ if (sprite->data[0] > task->data[5])
+ {
+ sprite->data[5] += sprite->data[3];
+ sprite->data[6] += sprite->data[4];
+ }
+ else
+ {
+ sprite->data[5] -= sprite->data[3];
+ sprite->data[6] -= sprite->data[4];
+ }
+
+ sprite->data[1] += sprite->data[5];
+ sprite->data[2] += sprite->data[6];
+ if (1 & task->data[7])
+ sprite->pos2.x = ((u16)sprite->data[1] >> 8) * -1;
+ else
+ sprite->pos2.x = (u16)sprite->data[1] >> 8;
+
+ if (1 & task->data[8])
+ sprite->pos2.y = ((u16)sprite->data[2] / 256u) * -1;
+ else
+ sprite->pos2.y = (u16)sprite->data[2] / 256u;
+
+ if (sprite->data[0]-- <= 0)
+ {
+ sprite->data[0] = 30;
+ sprite->callback = sub_80CF7E0;
+ }
+}
+
+void sub_80CF8B8(struct Sprite* sprite)
+{
+ s16 a;
+ s16 b;
+ s16 c;
+
+ struct Task* task = &gTasks[sprite->data[7]];
+ sprite->data[1] += (-2 & task->data[7]);
+ sprite->data[2] += (-2 & task->data[8]);
+ if (1 & task->data[7])
+ sprite->pos2.x = ((u16)sprite->data[1] >> 8) * -1;
+ else
+ sprite->pos2.x = (u16)sprite->data[1] >> 8;
+
+ if (1 & task->data[8])
+ sprite->pos2.y = ((u16)sprite->data[2] / 256u) * -1;
+ else
+ sprite->pos2.y = (u16)sprite->data[2] / 256u;
+
+ if (sprite->data[0]-- <= 0)
+ {
+ sprite->data[0] = 8;
+ task->data[5] = 4;
+ a = sub_81174E0(0x1000);
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.y = 0;
+ sprite->pos2.x = 0;
+ if (task->data[11] >= sprite->pos1.x)
+ b = (task->data[11] - sprite->pos1.x) << 8;
+ else
+ b = (sprite->pos1.x - task->data[11]) << 8;
+
+ if (task->data[12] >= sprite->pos1.y)
+ c = (task->data[12] - sprite->pos1.y) << 8;
+ else
+ c = (sprite->pos1.y - task->data[12]) << 8;
+
+ sprite->data[2] = 0;
+ sprite->data[1] = 0;
+ sprite->data[6] = 0;
+ sprite->data[5] = 0;
+ sprite->data[3] = sub_81174C4(sub_81174C4(b, a), sub_81174E0(0x1C0));
+ sprite->data[4] = sub_81174C4(sub_81174C4(c, a), sub_81174E0(0x1C0));
+ sprite->callback = sub_80CF814;
+ }
+}
diff --git a/src/battle/anim/sonic_task.c b/src/battle/anim/sonic_task.c
new file mode 100755
index 000000000..efd13dff6
--- /dev/null
+++ b/src/battle/anim/sonic_task.c
@@ -0,0 +1,152 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "battle_anim_80CA710.h"
+#include "battle.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern u8 gBanksBySide[];
+extern u16 gBattleTypeFlags;
+extern struct SpriteTemplate gSpriteTemplate_83D74BC;
+
+// sonic_task (the task functions for the "sonic" effect.)
+// Used in Air Cutter and Sonic Boom.
+
+void sub_80CF9F8(u8 taskId)
+{
+ if (gTasks[taskId].data[1] == 0)
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_80CFA20(u8 taskId)
+{
+ if (gTasks[taskId].data[0]-- <= 0)
+ {
+ u8 spriteId;
+ struct Sprite* sprite;
+ spriteId = CreateSprite(&gSpriteTemplate_83D74BC, gTasks[taskId].data[9], gTasks[taskId].data[10], gTasks[taskId].data[2] - gTasks[taskId].data[1]);
+ sprite = &gSprites[spriteId];
+ switch (gTasks[taskId].data[4])
+ {
+ case 1:
+ sprite->oam.matrixNum |= 24;
+ break;
+ case 2:
+ sprite->oam.matrixNum = 8;
+ break;
+ }
+
+ sprite->data[0] = gTasks[taskId].data[5] - gTasks[taskId].data[6];
+ sprite->data[7] = taskId;
+ gTasks[taskId].data[gTasks[taskId].data[1] + 13] = spriteId;
+ gTasks[taskId].data[0] = gTasks[taskId].data[3];
+ gTasks[taskId].data[1]++;
+ PlaySE12WithPanning(0x9A, sub_8076F98(-0x3F));
+ if (gTasks[taskId].data[1] > 2)
+ gTasks[taskId].func = sub_80CF9F8;
+ }
+}
+
+void sub_80CFB04(u8 taskId)
+{
+ s16 r9 = 0;
+ s16 r6 = 0;
+ s16 sp1 = 0;
+ s16 sp2 = 0;
+ s16 r4;
+
+ if (NotInBattle())
+ {
+ gTasks[taskId].data[4] = 2;
+ gBattleAnimArgs[0] = -gBattleAnimArgs[0];
+ if (gBattleAnimArgs[2] & 1)
+ gBattleAnimArgs[2] &= ~1;
+ else
+ gBattleAnimArgs[2] |= 1;
+ }
+ else
+ {
+ if ((gBanksBySide[gBattleAnimBankTarget] & 1) == 0)
+ {
+ gTasks[taskId].data[4] = 1;
+ gBattleAnimArgs[0] = -gBattleAnimArgs[0];
+ gBattleAnimArgs[1] = -gBattleAnimArgs[1];
+ if (gBattleAnimArgs[2] & 1)
+ gBattleAnimArgs[2] &= ~1;
+ else
+ gBattleAnimArgs[2] |= 1;
+ }
+ }
+ r6 = gTasks[taskId].data[9] = sub_8077ABC(gBattleAnimBankAttacker, 0);
+ r9 = gTasks[taskId].data[10] = sub_8077ABC(gBattleAnimBankAttacker, 1);
+ if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ && IsAnimBankSpriteVisible(gBattleAnimBankTarget ^ 2))
+ {
+ sub_807A3FC(gBattleAnimBankTarget, 0, &sp1, &sp2);
+ }
+ else
+ {
+ sp1 = sub_8077ABC(gBattleAnimBankTarget, 0);
+ sp2 = sub_8077ABC(gBattleAnimBankTarget, 1);
+ }
+
+ sp1 = gTasks[taskId].data[11] = sp1 + gBattleAnimArgs[0];
+ sp2 = gTasks[taskId].data[12] = sp2 + gBattleAnimArgs[1];
+ if (sp1 >= r6)
+ r4 = sp1 - r6;
+ else
+ r4 = r6 - sp1;
+
+ gTasks[taskId].data[5] = sub_81174C4(r4, sub_81174E0(gBattleAnimArgs[2] & ~1));
+ gTasks[taskId].data[6] = sub_81174C4(gTasks[taskId].data[5], 0x80);
+ gTasks[taskId].data[7] = gBattleAnimArgs[2];
+ if (sp2 >= r9)
+ {
+ r4 = sp2 - r9;
+ gTasks[taskId].data[8] = sub_81174C4(r4, sub_81174E0(gTasks[taskId].data[5])) & ~1;
+ }
+ else
+ {
+ r4 = r9 - sp2;
+ gTasks[taskId].data[8] = sub_81174C4(r4, sub_81174E0(gTasks[taskId].data[5])) | 1;
+ }
+
+ gTasks[taskId].data[3] = gBattleAnimArgs[3];
+ if (gBattleAnimArgs[4] & 0x80)
+ {
+ gBattleAnimArgs[4] ^= 0x80;
+ if (gBattleAnimArgs[4] >= 64)
+ {
+ u16 var = sub_8079E90(gBattleAnimBankTarget) + (gBattleAnimArgs[4] - 64);
+ gTasks[taskId].data[2] = var;
+ }
+ else
+ {
+ u16 var = sub_8079E90(gBattleAnimBankTarget) - gBattleAnimArgs[4];
+ gTasks[taskId].data[2] = var;
+ }
+ }
+ else
+ {
+ if (gBattleAnimArgs[4] >= 64)
+ {
+ u16 var = sub_8079E90(gBattleAnimBankTarget) + (gBattleAnimArgs[4] - 64);
+ gTasks[taskId].data[2] = var;
+ }
+ else
+ {
+ u16 var = sub_8079E90(gBattleAnimBankTarget) - gBattleAnimArgs[4];
+ gTasks[taskId].data[2] = var;
+ }
+ }
+
+ if (gTasks[taskId].data[2] < 3)
+ gTasks[taskId].data[2] = 3;
+
+ gTasks[taskId].func = sub_80CFA20;
+}
diff --git a/src/battle/anim/spin_finger.c b/src/battle/anim/spin_finger.c
new file mode 100755
index 000000000..adf41b261
--- /dev/null
+++ b/src/battle/anim/spin_finger.c
@@ -0,0 +1,73 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern void sub_80CF088(struct Sprite* sprite);
+static void sub_80CF138(struct Sprite* sprite);
+static void sub_80CF158(struct Sprite* sprite);
+
+// spin_finger
+// Used in Follow Me.
+
+void sub_80CF0BC(struct Sprite* sprite)
+{
+ u8 bank;
+ if (gBattleAnimArgs[0] == 0)
+ bank = gBattleAnimBankAttacker;
+ else
+ bank = gBattleAnimBankTarget;
+
+ sprite->pos1.x = sub_8077ABC(bank, 0);
+ sprite->pos1.y = sub_807A100(bank, 2);
+ if (sprite->pos1.y <= 9)
+ sprite->pos1.y = 10;
+
+ sprite->data[0] = 1;
+ sprite->data[1] = 0;
+ sprite->data[2] = sprite->subpriority;
+ sprite->data[3] = sprite->subpriority + 4;
+ sprite->data[4] = 0;
+ StoreSpriteCallbackInData(sprite, sub_80CF138);
+ sprite->callback = sub_80785E4;
+}
+
+void sub_80CF138(struct Sprite* sprite)
+{
+ if (++sprite->data[4] > 12)
+ sprite->callback = sub_80CF158;
+}
+
+void sub_80CF158(struct Sprite* sprite)
+{
+ s16 temp;
+ s16 temp2;
+ sprite->data[1] += 4;
+ if (sprite->data[1] > 0xFE)
+ {
+ if (--sprite->data[0] == 0)
+ {
+ sprite->pos2.x = 0;
+ sprite->callback = sub_80CF088;
+ return;
+ }
+ else
+ {
+ sprite->data[1] &= 0xFF;
+ }
+ }
+
+ if (sprite->data[1] > 0x4F)
+ sprite->subpriority = sprite->data[3];
+
+ if (sprite->data[1] > 0x9F)
+ sprite->subpriority = sprite->data[2];
+
+ temp = gSineTable[sprite->data[1]];
+ sprite->pos2.x = (temp2 = temp >> 3) + (temp2 >> 1);
+}
diff --git a/src/battle/anim/spit.c b/src/battle/anim/spit.c
new file mode 100755
index 000000000..f9ad462ae
--- /dev/null
+++ b/src/battle/anim/spit.c
@@ -0,0 +1,30 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// spit (hurls sprites outward from the pokemon. Similar to orbit_fast, but takes another argument.)
+// Used in Spit Up.
+
+void sub_80D287C(struct Sprite* sprite)
+{
+ sprite->pos2.x += sprite->data[0];
+ sprite->pos2.y += sprite->data[1];
+ if (sprite->data[3]++ >= sprite->data[2])
+ move_anim_8072740(sprite);
+}
+
+void sub_80D28AC(struct Sprite* sprite)
+{
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ sprite->data[0] = Sin(gBattleAnimArgs[0], 10);
+ sprite->data[1] = Cos(gBattleAnimArgs[0], 7);
+ sprite->data[2] = gBattleAnimArgs[1];
+ sprite->callback = sub_80D287C;
+}
diff --git a/src/battle/anim/splash.c b/src/battle/anim/splash.c
new file mode 100755
index 000000000..1b0ceba93
--- /dev/null
+++ b/src/battle/anim/splash.c
@@ -0,0 +1,87 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern struct AffineAnimFrameCmd gUnknown_083D76F4;
+
+static void sub_80D07AC(u8 taskId);
+
+// splash (splash effect of hopping up and down)
+// Used in Splash, Mud Sport, and Sketch.
+
+void sub_80D074C(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ if (gBattleAnimArgs[1] == 0)
+ {
+ DestroyAnimVisualTask(taskId);
+ }
+ else
+ {
+ u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
+ task->data[0] = spriteId;
+ task->data[1] = 0;
+ task->data[2] = gBattleAnimArgs[1];
+ task->data[3] = 0;
+ task->data[4] = 0;
+ sub_80798F4(task, spriteId, &gUnknown_083D76F4);
+ task->func = sub_80D07AC;
+ }
+}
+
+void sub_80D07AC(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ switch (task->data[1])
+ {
+ case 0:
+ sub_807992C(task);
+ task->data[4] += 3;
+ gSprites[task->data[0]].pos2.y += task->data[4];
+ if (++task->data[3] > 7)
+ {
+ task->data[3] = 0;
+ task->data[1]++;
+ }
+ break;
+ case 1:
+ sub_807992C(task);
+ gSprites[task->data[0]].pos2.y += task->data[4];
+ if (++task->data[3] > 7)
+ {
+ task->data[3] = 0;
+ task->data[1]++;
+ }
+ break;
+ case 2:
+ if (task->data[4] != 0)
+ {
+ gSprites[task->data[0]].pos2.y -= 2;
+ task->data[4] -= 2;
+ }
+ else
+ task->data[1]++;
+ break;
+ case 3:
+ if (!sub_807992C(task))
+ {
+ if (--task->data[2] == 0)
+ {
+ gSprites[task->data[0]].pos2.y = 0;
+ DestroyAnimVisualTask(taskId);
+ }
+ else
+ {
+ sub_80798F4(task, task->data[0], &gUnknown_083D76F4);
+ task->data[1] = 0;
+ }
+ }
+ break;
+ }
+}
diff --git a/src/battle/anim/startle.c b/src/battle/anim/startle.c
new file mode 100755
index 000000000..acbf80fec
--- /dev/null
+++ b/src/battle/anim/startle.c
@@ -0,0 +1,56 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern struct AffineAnimFrameCmd gUnknown_083D7A98;
+
+// startle (the pokemon sprite shrivels upward and restores after a brief time.)
+// Used in Fake Out, Trick, and Astonish.
+
+// opponent
+void sub_80D1E38(u8 taskId)
+{
+ u8 spriteId = GetAnimBankSpriteId(1);
+ if (++gTasks[taskId].data[0] == 1)
+ {
+ sub_80798F4(&gTasks[taskId], GetAnimBankSpriteId(1), &gUnknown_083D7A98);
+ gSprites[spriteId].pos2.x = 4;
+ }
+ else
+ {
+ gSprites[spriteId].pos2.x = -gSprites[spriteId].pos2.x;
+ if (sub_807992C(&gTasks[taskId]) == 0)
+ {
+ gSprites[spriteId].pos2.x = 0;
+ gSprites[spriteId].pos2.y = 0;
+ DestroyAnimVisualTask(taskId);
+ }
+ }
+}
+
+// player
+void sub_80D1EC8(u8 taskId)
+{
+ u8 spriteId = GetAnimBankSpriteId(0);
+ if (++gTasks[taskId].data[0] == 1)
+ {
+ sub_80798F4(&gTasks[taskId], GetAnimBankSpriteId(0), &gUnknown_083D7A98);
+ gSprites[spriteId].pos2.x = 4;
+ }
+ else
+ {
+ gSprites[spriteId].pos2.x = -gSprites[spriteId].pos2.x;
+ if (sub_807992C(&gTasks[taskId]) == 0)
+ {
+ gSprites[spriteId].pos2.x = 0;
+ gSprites[spriteId].pos2.y = 0;
+ DestroyAnimVisualTask(taskId);
+ }
+ }
+}
diff --git a/src/battle/anim/strike.c b/src/battle/anim/strike.c
new file mode 100755
index 000000000..f2fbdb5a4
--- /dev/null
+++ b/src/battle/anim/strike.c
@@ -0,0 +1,77 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CE798(struct Sprite* sprite);
+
+// strike (A red strike towards the opponent.)
+// Used in Horn Attack, Fury Attack, and Horn Drill.
+
+void sub_80CE670(struct Sprite* sprite)
+{
+ if (gBattleAnimArgs[2] <= 1)
+ gBattleAnimArgs[2] = 2;
+
+ if (gBattleAnimArgs[2] > 0x7F)
+ gBattleAnimArgs[2] = 0x7F;
+
+ sprite->data[0] = 0;
+ sprite->data[1] = gBattleAnimArgs[2];
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[0];
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankTarget, 3) + gBattleAnimArgs[1];
+ sprite->data[6] = sprite->pos1.x;
+ sprite->data[7] = sprite->pos1.y;
+ if (NotInBattle() != 0)
+ {
+ sprite->oam.matrixNum = 8;
+ sprite->pos1.x += 40;
+ sprite->pos1.y += 20;
+ sprite->data[2] = sprite->pos1.x << 7;
+ sprite->data[3] = -0x1400 / sprite->data[1];
+ sprite->data[4] = sprite->pos1.y << 7;
+ sprite->data[5] = -0xA00 / sprite->data[1];
+ }
+ else if (GetBankSide(gBattleAnimBankAttacker) == 0)
+ {
+ sprite->pos1.x -= 40;
+ sprite->pos1.y += 20;
+ sprite->data[2] = sprite->pos1.x << 7;
+ sprite->data[3] = 0x1400 / sprite->data[1];
+ sprite->data[4] = sprite->pos1.y << 7;
+ sprite->data[5] = -0xA00 / sprite->data[1];
+ }
+ else
+ {
+ sprite->pos1.x += 40;
+ sprite->pos1.y -= 20;
+ sprite->data[2] = sprite->pos1.x << 7;
+ sprite->data[3] = -0x1400 / sprite->data[1];
+ sprite->data[4] = sprite->pos1.y << 7;
+ sprite->data[5] = 0xA00 / sprite->data[1];
+ sprite->oam.matrixNum = 24;
+ }
+
+ sprite->callback = sub_80CE798;
+}
+
+void sub_80CE798(struct Sprite* sprite)
+{
+ sprite->data[2] += sprite->data[3];
+ sprite->data[4] += sprite->data[5];
+ sprite->pos1.x = sprite->data[2] >> 7;
+ sprite->pos1.y = sprite->data[4] >> 7;
+ if (--sprite->data[1] == 1)
+ {
+ sprite->pos1.x = sprite->data[6];
+ sprite->pos1.y = sprite->data[7];
+ }
+
+ if (sprite->data[1] == 0)
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/struggle.c b/src/battle/anim/struggle.c
new file mode 100644
index 000000000..63a01a79e
--- /dev/null
+++ b/src/battle/anim/struggle.c
@@ -0,0 +1,52 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "rom_8077ABC.h"
+#include "sprite.h"
+
+extern s16 gBattleAnimArgs[8];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D2CC4(struct Sprite *);
+
+void sub_80D2C38(struct Sprite *sprite)
+{
+ if (gBattleAnimArgs[2] == 0)
+ {
+ move_anim_8072740(sprite);
+ }
+ else
+ {
+ if (gBattleAnimArgs[0] == 0)
+ {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ }
+ else
+ {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankTarget, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankTarget, 3);
+ }
+
+ if (gBattleAnimArgs[1] == 0)
+ sprite->pos1.x += 32;
+ else
+ sprite->pos1.x -= 32;
+
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[1] = gBattleAnimArgs[1];
+ StartSpriteAnim(sprite, sprite->data[1]);
+ sprite->callback = sub_80D2CC4;
+ }
+}
+
+static void sub_80D2CC4(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
+ {
+ if (--sprite->data[0] != 0)
+ StartSpriteAnim(sprite, sprite->data[1]);
+ else
+ move_anim_8072740(sprite);
+ }
+}
diff --git a/src/battle/anim/sunlight.c b/src/battle/anim/sunlight.c
new file mode 100644
index 000000000..f6cb8a077
--- /dev/null
+++ b/src/battle/anim/sunlight.c
@@ -0,0 +1,17 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "rom_8077ABC.h"
+
+// sunlight (creates sunlight orbs)
+// Used in Sunny Day
+
+void sub_80D517C(struct Sprite *sprite)
+{
+ sprite->pos1.x = 0;
+ sprite->pos1.y = 0;
+ sprite->data[0] = 60;
+ sprite->data[2] = 140;
+ sprite->data[4] = 80;
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+}
diff --git a/src/battle/anim/swipe.c b/src/battle/anim/swipe.c
new file mode 100644
index 000000000..15bee06ee
--- /dev/null
+++ b/src/battle/anim/swipe.c
@@ -0,0 +1,20 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "sprite.h"
+
+extern s16 gBattleAnimArgs[8];
+
+void sub_80D2BE8(struct Sprite *sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ StartSpriteAnim(sprite, gBattleAnimArgs[2]);
+ sprite->data[0]++;
+ }
+ else if (sprite->animEnded)
+ {
+ move_anim_8072740(sprite);
+ }
+}
diff --git a/src/battle/anim/switch.c b/src/battle/anim/switch.c
new file mode 100755
index 000000000..a1be144df
--- /dev/null
+++ b/src/battle/anim/switch.c
@@ -0,0 +1,128 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern s8 gUnknown_083D680C[11][3];
+
+static void sub_80CBC8C(struct Sprite* sprite);
+static void sub_80CBCF8(struct Sprite* sprite);
+static void sub_80CBDB0(struct Sprite* sprite);
+
+// switch (makes an item and circles it from side to side on the field.)
+// Used in Trick.
+
+void sub_80CBBF0(struct Sprite* sprite)
+{
+ int a;
+ int b;
+
+ if (sprite->data[0] == 0)
+ {
+ if (!NotInBattle())
+ {
+ sprite->data[1] = gBattleAnimArgs[1];
+ sprite->pos1.x = 0x78;
+ }
+ else
+ {
+ a = gBattleAnimArgs[1] - 32;
+ if (a < 0)
+ b = gBattleAnimArgs[1] + 0xDF;
+ else
+ b = a;
+
+ sprite->data[1] = a - ((b >> 8) << 8);
+ sprite->pos1.x = 0x46;
+ }
+
+ sprite->pos1.y = gBattleAnimArgs[0];
+ sprite->data[2] = gBattleAnimArgs[0];
+ sprite->data[4] = 20;
+ sprite->pos2.x = Cos(sprite->data[1], 0x3C);
+ sprite->pos2.y = Sin(sprite->data[1], 20);
+ sprite->callback = sub_80CBC8C;
+ if (sprite->data[1] > 0 && sprite->data[1] < 0xC0)
+ sprite->subpriority = 31;
+ else
+ sprite->subpriority = 29;
+ }
+}
+
+void sub_80CBC8C(struct Sprite* sprite)
+{
+ switch (sprite->data[3])
+ {
+ case 0:
+ if (sprite->data[2] > 0x4E)
+ {
+ sprite->data[3] = 1;
+ StartSpriteAffineAnim(sprite, 1);
+ break;
+ }
+ else
+ {
+ sprite->data[2] += sprite->data[4] / 10;
+ sprite->data[4] += 3;
+ sprite->pos1.y = sprite->data[2];
+ break;
+ }
+ break;
+ case 1:
+ if (sprite->data[3] && sprite->affineAnimEnded)
+ {
+ sprite->data[0] = 0;
+ sprite->data[2] = 0;
+ sprite->callback = sub_80CBCF8;
+ }
+ break;
+ }
+}
+
+void sub_80CBCF8(struct Sprite* sprite)
+{
+ if (sprite->data[2] == gUnknown_083D680C[sprite->data[0]][1])
+ {
+ if (gUnknown_083D680C[sprite->data[0]][2] == 0x7F)
+ {
+ sprite->data[0] = 0;
+ sprite->callback = sub_80CBDB0;
+ }
+
+ sprite->data[2] = 0;
+ sprite->data[0]++;
+ }
+ else
+ {
+ sprite->data[2]++;
+ sprite->data[1] = (gUnknown_083D680C[sprite->data[0]][0] * gUnknown_083D680C[sprite->data[0]][2] + sprite->data[1]) & 0xFF;
+ if (!NotInBattle())
+ {
+ if ((u16)(sprite->data[1] - 1) <= 0xBE)
+ {
+ sprite->subpriority = 31;
+ }
+ else
+ {
+ sprite->subpriority = 29;
+ }
+ }
+
+ sprite->pos2.x = Cos(sprite->data[1], 0x3C);
+ sprite->pos2.y = Sin(sprite->data[1], 20);
+ }
+}
+
+void sub_80CBDB0(struct Sprite* sprite)
+{
+ if (sprite->data[0] > 20)
+ move_anim_8072740(sprite);
+
+ sprite->invisible = sprite->data[0] % 2;
+ sprite->data[0]++;
+}
diff --git a/src/battle/anim/sword.c b/src/battle/anim/sword.c
new file mode 100755
index 000000000..536f89b26
--- /dev/null
+++ b/src/battle/anim/sword.c
@@ -0,0 +1,30 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CF6B4(struct Sprite* sprite);
+
+// sword (sword appears and floats upward.)
+// Used in Swords Dance.
+
+void sub_80CF690(struct Sprite* sprite)
+{
+ sub_80787B0(sprite, 0);
+ sprite->callback = sub_80785E4;
+ StoreSpriteCallbackInData(sprite, sub_80CF6B4);
+}
+
+void sub_80CF6B4(struct Sprite* sprite)
+{
+ sprite->data[0] = 6;
+ sprite->data[2] = sprite->pos1.x;
+ sprite->data[4] = sprite->pos1.y - 32;
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+}
diff --git a/src/battle/anim/taunt_finger.c b/src/battle/anim/taunt_finger.c
new file mode 100755
index 000000000..7024f85a0
--- /dev/null
+++ b/src/battle/anim/taunt_finger.c
@@ -0,0 +1,56 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern void sub_80CEF44(u8 bank, struct Sprite* sprite);
+static void sub_80CF228(struct Sprite* sprite);
+static void sub_80CF264(struct Sprite* sprite);
+
+// taunt_finger
+// Used in Taunt.
+
+void sub_80CF1C8(struct Sprite* sprite)
+{
+ u8 bank;
+ if (gBattleAnimArgs[0] == 0)
+ bank = gBattleAnimBankAttacker;
+ else
+ bank = gBattleAnimBankTarget;
+
+ sub_80CEF44(bank, sprite);
+ if (GetBankSide(bank) == 0)
+ {
+ StartSpriteAnim(sprite, 0);
+ sprite->data[0] = 2;
+ }
+ else
+ {
+ StartSpriteAnim(sprite, 1);
+ sprite->data[0] = 3;
+ }
+
+ sprite->callback = sub_80CF228;
+}
+
+void sub_80CF228(struct Sprite* sprite)
+{
+ if (++sprite->data[1] > 10)
+ {
+ sprite->data[1] = 0;
+ StartSpriteAnim(sprite, sprite->data[0]);
+ StoreSpriteCallbackInData(sprite, sub_80CF264);
+ sprite->callback = sub_8078600;
+ }
+}
+
+void sub_80CF264(struct Sprite* sprite)
+{
+ if (++sprite->data[1] > 5)
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/tendrils.c b/src/battle/anim/tendrils.c
new file mode 100755
index 000000000..ba1014d2f
--- /dev/null
+++ b/src/battle/anim/tendrils.c
@@ -0,0 +1,67 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CB298(struct Sprite* sprite);
+static void sub_80CB2D4(struct Sprite* sprite);
+
+// tendrils
+// Used by Constrict.
+
+void sub_80CB25C(struct Sprite* sprite)
+{
+ sub_8078764(sprite, 0);
+ sprite->affineAnimPaused = 1;
+ StartSpriteAffineAnim(sprite, gBattleAnimArgs[2]);
+ sprite->data[6] = gBattleAnimArgs[2];
+ sprite->data[7] = gBattleAnimArgs[3];
+ sprite->callback = sub_80CB298;
+}
+
+void sub_80CB298(struct Sprite* sprite)
+{
+ if ((u16)gBattleAnimArgs[7] == 0xFFFF)
+ {
+ sprite->affineAnimPaused = 0;
+ GetAnimBankSpriteId(1);
+ sprite->data[0] = 0x100;
+ sprite->callback = sub_80CB2D4;
+ }
+}
+
+void sub_80CB2D4(struct Sprite* sprite)
+{
+ GetAnimBankSpriteId(1);
+ if (!sprite->data[2])
+ {
+ sprite->data[0] += 11;
+ }
+ else
+ {
+ sprite->data[0] -= 11;
+ }
+ sprite->data[1]++;
+ if (sprite->data[1] == 6)
+ {
+ sprite->data[1] = 0;
+ sprite->data[2] ^= 1;
+ }
+
+ if (sprite->affineAnimEnded)
+ {
+ sprite->data[7]--;
+ if (sprite->data[7] > 0)
+ {
+ StartSpriteAffineAnim(sprite, sprite->data[6]);
+ }
+ else
+ {
+ move_anim_8072740(sprite);
+ }
+ }
+} \ No newline at end of file
diff --git a/src/battle/anim/thought.c b/src/battle/anim/thought.c
new file mode 100755
index 000000000..9cffafe14
--- /dev/null
+++ b/src/battle/anim/thought.c
@@ -0,0 +1,52 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CF008(struct Sprite* sprite);
+
+// thought (thought bubble)
+// Used in Metronome and Taunt.
+
+void sub_80CEF44(u8 bank, struct Sprite* sprite)
+{
+ if (GetBankSide(bank) == 0)
+ sprite->pos1.x = sub_807A100(bank, 5) + 8;
+ else
+ sprite->pos1.x = sub_807A100(bank, 4) - 8;
+
+ sprite->pos1.y = sub_8077ABC(bank, 3) - (s16)sub_807A100(bank, 0) / 4;
+}
+
+void sub_80CEF9C(struct Sprite* sprite)
+{
+ u8 a;
+ u8 bank;
+ if (gBattleAnimArgs[0] == 0)
+ bank = gBattleAnimBankAttacker;
+ else
+ bank = gBattleAnimBankTarget;
+
+ sub_80CEF44(bank, sprite);
+ a = (GetBankSide(bank) == 0) ? 0 : 1;
+ sprite->data[0] = gBattleAnimArgs[1];
+ sprite->data[1] = a + 2;
+ StartSpriteAnim(sprite, a);
+ StoreSpriteCallbackInData(sprite, sub_80CF008);
+ sprite->callback = sub_8078600;
+}
+
+void sub_80CF008(struct Sprite* sprite)
+{
+ if (--sprite->data[0] == 0)
+ {
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+ StartSpriteAnim(sprite, sprite->data[1]);
+ sprite->callback = sub_8078600;
+ }
+}
diff --git a/src/battle/anim/thrashing.c b/src/battle/anim/thrashing.c
new file mode 100755
index 000000000..9811c546a
--- /dev/null
+++ b/src/battle/anim/thrashing.c
@@ -0,0 +1,111 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern struct AffineAnimFrameCmd gUnknown_083D77B0;
+
+static void sub_80D0A8C(u8 taskId);
+static void sub_80D0B3C(u8 taskId);
+
+// thrashing (the movement of the Pokemon left/right repeatedly, with up/down movements below.)
+// Used by Thrash.
+
+// left/right movements
+void sub_80D0A4C(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ u8 spriteId = GetAnimBankSpriteId(0);
+ task->data[0] = spriteId;
+ task->data[1] = 0;
+ sub_80798F4(task, spriteId, &gUnknown_083D77B0);
+ task->func = sub_80D0A8C;
+}
+
+void sub_80D0A8C(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ if (!sub_807992C(task))
+ DestroyAnimVisualTask(taskId);
+}
+
+// up/down movements
+void sub_80D0AB8(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ task->data[0] = GetAnimBankSpriteId(0);
+ task->data[1] = 0;
+ task->data[2] = 4;
+ task->data[3] = 7;
+ task->data[4] = 3;
+ task->data[5] = gSprites[task->data[0]].pos1.x;
+ task->data[6] = gSprites[task->data[0]].pos1.y;
+ task->data[7] = 0;
+ task->data[8] = 0;
+ task->data[9] = 2;
+ if (GetBankSide(gBattleAnimBankAttacker) == 1)
+ task->data[2] *= -1;
+
+ task->func = sub_80D0B3C;
+}
+
+void sub_80D0B3C(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+ if (++task->data[7] > 2)
+ {
+ task->data[7] = 0;
+ task->data[8]++;
+ if ((task->data[8] & 1) != 0)
+ {
+ gSprites[task->data[0]].pos1.y += task->data[9];
+ }
+ else
+ {
+ gSprites[task->data[0]].pos1.y -= task->data[9];
+ }
+ }
+ switch (task->data[1])
+ {
+ case 0:
+ gSprites[task->data[0]].pos1.x += task->data[2];
+ if (--task->data[3] == 0)
+ {
+ task->data[3] = 14;
+ task->data[1] = 1;
+ }
+ break;
+ case 1:
+ gSprites[task->data[0]].pos1.x -= task->data[2];
+ if (--task->data[3] == 0)
+ {
+ task->data[3] = 7;
+ task->data[1] = 2;
+ }
+ break;
+ case 2:
+ gSprites[task->data[0]].pos1.x += task->data[2];
+ if (--task->data[3] == 0)
+ {
+ if (--task->data[4] != 0)
+ {
+ task->data[3] = 7;
+ task->data[1] = 0;
+ }
+ else
+ {
+ if ((task->data[8] & 1) != 0)
+ {
+ gSprites[task->data[0]].pos1.y -= task->data[9];
+ }
+ DestroyAnimVisualTask(taskId);
+ }
+ }
+ break;
+ }
+}
diff --git a/src/battle/anim/thunder.c b/src/battle/anim/thunder.c
new file mode 100644
index 000000000..5064148ef
--- /dev/null
+++ b/src/battle/anim/thunder.c
@@ -0,0 +1,36 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "rom_8077ABC.h"
+
+extern s16 gBattleAnimArgs[8];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+extern u16 gBattleTypeFlags;
+
+static void sub_80D6218(struct Sprite *);
+
+// thunder (positions the lightning bolts)
+// Used in Thunder, Thunder Punch, and Tri Attack.
+
+void sub_80D61C8(struct Sprite *sprite)
+{
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ {
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ }
+ else
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ }
+
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->callback = sub_80D6218;
+}
+
+static void sub_80D6218(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
+ {
+ move_anim_8072740(sprite);
+ }
+}
diff --git a/src/battle/anim/tile_in.c b/src/battle/anim/tile_in.c
new file mode 100755
index 000000000..5fcbadbb7
--- /dev/null
+++ b/src/battle/anim/tile_in.c
@@ -0,0 +1,51 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// tile_in (flips a white tile from the scene into facing the player.)
+// Used in Conversion.
+
+void sub_80CE09C(struct Sprite* sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 0) + gBattleAnimArgs[0];
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 1) + gBattleAnimArgs[1];
+ if (NotInBattle())
+ sprite->pos1.y += 10;
+ sprite->data[0]++;
+ }
+
+ if ((u16)gBattleAnimArgs[7] == 0xFFFF)
+ move_anim_8072740(sprite);
+}
+
+void sub_80CE108(u8 taskId)
+{
+ if (gTasks[taskId].data[2] == 1)
+ {
+ gBattleAnimArgs[7] = 0xFFFF;
+ gTasks[taskId].data[2]++;
+ }
+ else if (gTasks[taskId].data[2] == 2)
+ {
+ DestroyAnimVisualTask(taskId);
+ }
+ else
+ {
+ if (++gTasks[taskId].data[0] == 4)
+ {
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1]++;
+ REG_BLDALPHA = (gTasks[taskId].data[1] << 8) | (16 - gTasks[taskId].data[1]);
+ if (gTasks[taskId].data[1] == 16)
+ gTasks[taskId].data[2]++;
+ }
+ }
+}
diff --git a/src/battle/anim/tile_out.c b/src/battle/anim/tile_out.c
new file mode 100755
index 000000000..8b710268f
--- /dev/null
+++ b/src/battle/anim/tile_out.c
@@ -0,0 +1,81 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "battle_interface.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern u8 gNoOfAllBanks;
+extern u8 gHealthboxIDs[];
+
+static void sub_80CE1AC(struct Sprite* sprite);
+
+// tile_out (makes a tile fly inward into a center point.)
+// Used in Conversion 2.
+
+void sub_80CE17C(struct Sprite* sprite)
+{
+ sub_8078764(sprite, 0);
+ sprite->animPaused = 1;
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->callback = sub_80CE1AC;
+}
+
+void sub_80CE1AC(struct Sprite* sprite)
+{
+ if (sprite->data[0])
+ {
+ sprite->data[0]--;
+ }
+ else
+ {
+ sprite->animPaused = 0;
+ sprite->data[0] = 30;
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+ }
+}
+
+void sub_80CE210(u8 taskId)
+{
+ if (++gTasks[taskId].data[0] == 4)
+ {
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1]++;
+ REG_BLDALPHA = gTasks[taskId].data[1] | ((16 - gTasks[taskId].data[1]) << 8);
+ if (gTasks[taskId].data[1] == 16)
+ DestroyAnimVisualTask(taskId);
+ }
+}
+
+void unref_sub_80CE260(u8 taskId)
+{
+ u8 i;
+ for (i = 0; i < gNoOfAllBanks; i++)
+ {
+ if (gBattleAnimArgs[0] == 1 && GetBankSide(i) == 0)
+ sub_8043DB0(gHealthboxIDs[i]);
+
+ if (gBattleAnimArgs[1] == 1 && GetBankSide(i) == 1)
+ sub_8043DB0(gHealthboxIDs[i]);
+ }
+
+ DestroyAnimVisualTask(taskId);
+}
+
+void unref_sub_80CE2D4(u8 taskId)
+{
+ u8 i;
+ for (i = 0; i < gNoOfAllBanks; i++)
+ {
+ sub_8043DFC(gHealthboxIDs[i]);
+ }
+
+ DestroyAnimVisualTask(taskId);
+}
diff --git a/src/battle/anim/twinkle.c b/src/battle/anim/twinkle.c
new file mode 100755
index 000000000..56095c29d
--- /dev/null
+++ b/src/battle/anim/twinkle.c
@@ -0,0 +1,42 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CE3B0(struct Sprite* sprite);
+
+// twinkle (a tiny twinkling star appears above the Pokemon and descends toward the Pokemon.)
+// Used in Moonlight.
+
+void sub_80CE36C(struct Sprite* sprite)
+{
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2) + gBattleAnimArgs[0];
+ sprite->pos1.y = gBattleAnimArgs[1];
+ sprite->data[0] = 0;
+ sprite->data[1] = 0;
+ sprite->data[2] = 0;
+ sprite->data[3] = 0;
+ sprite->data[4] = 1;
+ sprite->callback = sub_80CE3B0;
+}
+
+void sub_80CE3B0(struct Sprite* sprite)
+{
+ if (++sprite->data[1] > 1)
+ {
+ sprite->data[1] = 0;
+ if (sprite->data[2] <= 0x77)
+ {
+ sprite->pos1.y++;
+ sprite->data[2]++;
+ }
+ }
+
+ if (sprite->data[0])
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/unused_1.c b/src/battle/anim/unused_1.c
new file mode 100755
index 000000000..fdcef0de9
--- /dev/null
+++ b/src/battle/anim/unused_1.c
@@ -0,0 +1,25 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// unused effect file.
+// Seems to be a beta effect for Beat Up, possibly.
+
+void sub_80CC8C8(struct Sprite* sprite)
+{
+ 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];
+ StartSpriteAffineAnim(sprite, gBattleAnimArgs[6]);
+ StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
+ sprite->callback = sub_8078504;
+}
diff --git a/src/battle/anim/unused_2.c b/src/battle/anim/unused_2.c
new file mode 100755
index 000000000..f7f5be88d
--- /dev/null
+++ b/src/battle/anim/unused_2.c
@@ -0,0 +1,80 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CCCB4(struct Sprite* sprite);
+
+// unused_2 (unknown effect with music notes.)
+// possibly another unused effect. Unknown usage.
+
+void unref_sub_80CCB6C(struct Sprite* sprite)
+{
+ if (sprite->data[2] > 1)
+ {
+ if (sprite->data[3] & 1)
+ {
+ sprite->invisible = 0;
+ gSprites[sprite->data[0]].invisible = 0;
+ gSprites[sprite->data[1]].invisible = 0;
+ }
+ else
+ {
+ sprite->invisible = 1;
+ gSprites[sprite->data[0]].invisible = 1;
+ gSprites[sprite->data[1]].invisible = 1;
+ }
+
+ sprite->data[2] = 0;
+ sprite->data[3]++;
+ }
+ else
+ {
+ sprite->data[2]++;
+ }
+
+ if (sprite->data[3] == 10)
+ {
+ DestroySprite(&gSprites[sprite->data[0]]);
+ DestroySprite(&gSprites[sprite->data[1]]);
+ move_anim_8072740(sprite);
+ }
+}
+
+void sub_80CCC50(struct Sprite* sprite)
+{
+ sprite->data[0] = gBattleAnimArgs[2];
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ else
+ sprite->pos1.x += gBattleAnimArgs[0];
+
+ StartSpriteAnim(sprite, gBattleAnimArgs[5]);
+ sprite->data[1] = -gBattleAnimArgs[3];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->data[3] = gBattleAnimArgs[4];
+ sprite->callback = sub_80CCCB4;
+ sub_80CCCB4(sprite);
+}
+
+void sub_80CCCB4(struct Sprite* sprite)
+{
+ sprite->pos2.x = Cos(sprite->data[0], 100);
+ sprite->pos2.y = Sin(sprite->data[0], 20);
+ if (sprite->data[0] <= 0x7F)
+ sprite->subpriority = 0;
+ else
+ sprite->subpriority = 14;
+
+ sprite->data[0] = (sprite->data[0] + sprite->data[1]) & 0xFF;
+ sprite->data[5] += 0x82;
+ sprite->pos2.y += sprite->data[5] >> 8;
+ sprite->data[2]++;
+ if (sprite->data[2] == sprite->data[3])
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/unused_3.c b/src/battle/anim/unused_3.c
new file mode 100755
index 000000000..049e0ca1b
--- /dev/null
+++ b/src/battle/anim/unused_3.c
@@ -0,0 +1,45 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CD2D4(struct Sprite* sprite);
+
+// unused_3 (seems to be some sort of popping effect with a growing diamond shape)
+// yet another unused effect...
+
+void sub_80CD274(struct Sprite* sprite)
+{
+ sub_8078650(sprite);
+ if (GetBankSide(gBattleAnimBankAttacker) == 0)
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ }
+ else
+ {
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ StartSpriteAnim(sprite, 1);
+ }
+
+ sprite->callback = sub_80CD2D4;
+}
+
+void sub_80CD2D4(struct Sprite* sprite)
+{
+ if (++sprite->data[0] > 30)
+ {
+ sprite->pos2.y = (30 - sprite->data[0]) / 3;
+ sprite->pos2.x = Sin(sprite->data[1] * 4, 3);
+ sprite->data[1]++;
+ }
+
+ if (sprite->animEnded)
+ move_anim_8072740(sprite);
+}
diff --git a/src/battle/anim/unused_4.c b/src/battle/anim/unused_4.c
new file mode 100755
index 000000000..72ecde05c
--- /dev/null
+++ b/src/battle/anim/unused_4.c
@@ -0,0 +1,58 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern u8 gObjectBankIDs[];
+
+static void sub_80CD9D4(struct Sprite* sprite);
+
+// unused_4
+// Unknown usage.
+
+void sub_80CD9C4(struct Sprite* sprite)
+{
+ sprite->data[0] = 0;
+ sprite->callback = sub_80CD9D4;
+}
+
+void sub_80CD9D4(struct Sprite* sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ sprite->data[1] = 0;
+ sprite->data[2] = gObjectBankIDs[gBattleAnimBankAttacker];
+ sprite->data[3] = GetBankSide(gBattleAnimBankAttacker);
+ sprite->data[4] = (sprite->data[3] != 0) ? 0x200 : -0x200;
+ sprite->data[5] = 0;
+ sub_8078E70(sprite->data[2], 0);
+ sprite->data[0]++;
+ case 1:
+ sprite->data[5] += sprite->data[4];
+ obj_id_set_rotscale(sprite->data[2], 0x100, 0x100, sprite->data[5]);
+ sub_8078F9C(sprite->data[2]);
+ if (++sprite->data[1] > 3)
+ {
+ sprite->data[1] = 0;
+ sprite->data[4] *= -1;
+ sprite->data[0]++;
+ }
+ break;
+ case 2:
+ sprite->data[5] += sprite->data[4];
+ obj_id_set_rotscale(sprite->data[2], 0x100, 0x100, sprite->data[5]);
+ sub_8078F9C(sprite->data[2]);
+ if (++sprite->data[1] > 3)
+ {
+ sub_8078F40(sprite->data[2]);
+ move_anim_8072740(sprite);
+ }
+ break;
+ }
+}
diff --git a/src/battle/anim/unused_5.c b/src/battle/anim/unused_5.c
new file mode 100755
index 000000000..4dc2da70d
--- /dev/null
+++ b/src/battle/anim/unused_5.c
@@ -0,0 +1,25 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// unused_5
+
+void sub_80CF280(struct Sprite* sprite)
+{
+ sub_8078650(sprite);
+ sub_807867C(sprite, gBattleAnimArgs[0]);
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->data[1] = gBattleAnimArgs[2];
+ sprite->data[2] = gBattleAnimArgs[4];
+ sprite->data[3] = gBattleAnimArgs[5];
+ sprite->data[4] = gBattleAnimArgs[3];
+ StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
+ sprite->callback = sub_8078278;
+ sub_8078278(sprite);
+}
diff --git a/src/battle/anim/unused_6.c b/src/battle/anim/unused_6.c
new file mode 100755
index 000000000..f7c87647f
--- /dev/null
+++ b/src/battle/anim/unused_6.c
@@ -0,0 +1,49 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern void sub_80CEF44(u8 bank, struct Sprite* sprite);
+static void sub_80CF310(struct Sprite* sprite);
+
+// unused_6
+
+void sub_80CF2D0(struct Sprite* sprite)
+{
+ u8 bank;
+ if (gBattleAnimArgs[0] == 0)
+ bank = gBattleAnimBankAttacker;
+ else
+ bank = gBattleAnimBankTarget;
+
+ sub_80CEF44(bank, sprite);
+ sprite->data[0] = 0;
+ sprite->data[1] = 0;
+ sprite->callback = sub_80CF310;
+}
+
+void sub_80CF310(struct Sprite* sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ sprite->pos2.y -= 3;
+ if (++sprite->data[1] == 6)
+ sprite->data[0]++;
+ break;
+ case 1:
+ sprite->pos2.y += 3;
+ if (--sprite->data[1] == 0)
+ sprite->data[0]++;
+ break;
+ case 2:
+ if (++sprite->data[1] == 0x40)
+ move_anim_8072740(sprite);
+ break;
+ }
+}
diff --git a/src/battle/anim/unused_7.c b/src/battle/anim/unused_7.c
new file mode 100755
index 000000000..3a8998f1d
--- /dev/null
+++ b/src/battle/anim/unused_7.c
@@ -0,0 +1,51 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern u8 gObjectBankIDs[];
+
+// unused_7
+
+void sub_80CF374(struct Sprite* sprite)
+{
+ s16 temp;
+ gSprites[sprite->data[2]].pos2.x += sprite->data[1];
+ temp = sprite->data[1];
+ sprite->data[1] = -temp;
+ if (sprite->data[0] == 0)
+ {
+ gSprites[sprite->data[2]].pos2.x = 0;
+ move_anim_8074EE0(sprite);
+ }
+
+ sprite->data[0]--;
+}
+
+void sub_80CF3C4(struct Sprite* sprite)
+{
+ u8 a;
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ a = gObjectBankIDs[gBattleAnimBankTarget];
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ {
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ }
+ else
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ }
+
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[1] = gBattleAnimArgs[3];
+ sprite->data[2] = a;
+ sprite->callback = sub_80CF374;
+ sprite->invisible = 1;
+}
diff --git a/src/battle/anim/unused_8.c b/src/battle/anim/unused_8.c
new file mode 100755
index 000000000..bcebfcd2b
--- /dev/null
+++ b/src/battle/anim/unused_8.c
@@ -0,0 +1,41 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80CF490(struct Sprite* sprite);
+static void sub_80CF4B8(struct Sprite* sprite);
+
+// unused_8
+
+void sub_80CF458(struct Sprite* sprite)
+{
+ sub_80787B0(sprite, 1);
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[1] = gBattleAnimArgs[3];
+ sprite->data[5] = gBattleAnimArgs[4];
+ sprite->callback = sub_80782D8;
+ StoreSpriteCallbackInData(sprite, sub_80CF490);
+}
+
+void sub_80CF490(struct Sprite* sprite)
+{
+ sprite->data[0] = sprite->data[1];
+ sprite->data[2] = sprite->pos1.x;
+ sprite->data[4] = sprite->pos1.y + 15;
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, sub_80CF4B8);
+}
+
+void sub_80CF4B8(struct Sprite* sprite)
+{
+ if (sprite->data[5] == 0)
+ move_anim_8072740(sprite);
+ else
+ sprite->data[5]--;
+}
diff --git a/src/battle/anim/unused_9.c b/src/battle/anim/unused_9.c
new file mode 100755
index 000000000..579238fbc
--- /dev/null
+++ b/src/battle/anim/unused_9.c
@@ -0,0 +1,113 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern struct SpriteTemplate gSpriteTemplate_83D75AC;
+
+static void sub_80CFE2C(struct Sprite* sprite);
+
+// unused_9? (Most likely an unused effect.)
+// I cannot find any reference to this sprite template used to call this.
+
+void sub_80CFDFC(struct Sprite* sprite)
+{
+ sub_80787B0(sprite, 0);
+ sprite->data[0] = 0x100 + (IndexOfSpritePaletteTag(gSpriteTemplate_83D75AC.paletteTag) << 4);
+ sprite->callback = sub_80CFE2C;
+}
+
+#ifdef NONMATCHING
+void sub_80CFE2C(struct Sprite* sprite)
+{
+ u16 r7;
+ u16* r1;
+ u16* r2;
+ int i;
+ if (++sprite->data[1] == 2)
+ {
+ sprite->data[1] = 0;
+ r7 = gPlttBufferFaded[sprite->data[0] + 8];
+ r2 = &gPlttBufferFaded[0x10];
+ r1 = &gPlttBufferFaded[sprite->data[0] + 9];
+ for (i = 7; i >= 0; i--)
+ {
+ *r2 = *r1;
+ r1++;
+ r2++;
+ }
+
+ gPlttBufferFaded[sprite->data[0] + 15] = r7;
+ if (++sprite->data[2] == 0x18)
+ move_anim_8072740(sprite);
+ }
+}
+#else
+__attribute__((naked))
+void sub_80CFE2C(struct Sprite* sprite)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ adds r4, r0, 0\n\
+ ldrh r0, [r4, 0x30]\n\
+ adds r0, 0x1\n\
+ strh r0, [r4, 0x30]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x2\n\
+ bne _080CFE90\n\
+ movs r0, 0\n\
+ strh r0, [r4, 0x30]\n\
+ ldrh r5, [r4, 0x2E]\n\
+ ldr r1, _080CFE98 @ =gPlttBufferFaded\n\
+ adds r0, r5, 0\n\
+ adds r0, 0x8\n\
+ lsls r0, 1\n\
+ adds r0, r1\n\
+ ldrh r7, [r0]\n\
+ adds r6, r1, 0 @puts gPlttBufferFaded in r6\n\
+ adds r1, r5, 0\n\
+ adds r1, 0x9\n\
+ lsls r0, r5, 1\n\
+ adds r0, r6 \n\
+ adds r2, r0, 0\n\
+ adds r2, 0x10\n\
+ movs r3, 0x7\n\
+ lsls r1, 1\n\
+ adds r1, r6 \n\
+_080CFE64:\n\
+ ldrh r0, [r1]\n\
+ strh r0, [r2]\n\
+ adds r1, 0x2\n\
+ adds r2, 0x2\n\
+ subs r3, 0x1\n\
+ cmp r3, 0\n\
+ bge _080CFE64\n\
+ adds r0, r5, 0\n\
+ adds r0, 0xF\n\
+ lsls r0, 1\n\
+ adds r0, r6\n\
+ strh r7, [r0]\n\
+ ldrh r0, [r4, 0x32]\n\
+ adds r0, 0x1\n\
+ strh r0, [r4, 0x32]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x18\n\
+ bne _080CFE90\n\
+ adds r0, r4, 0\n\
+ bl move_anim_8072740\n\
+_080CFE90:\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080CFE98: .4byte gPlttBufferFaded\n\
+.syntax divided\n");
+}
+#endif
diff --git a/src/battle/anim/uproar.c b/src/battle/anim/uproar.c
new file mode 100644
index 000000000..03cc65bc0
--- /dev/null
+++ b/src/battle/anim/uproar.c
@@ -0,0 +1,25 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "rom_8077ABC.h"
+#include "sprite.h"
+#include "task.h"
+
+extern s16 gBattleAnimArgs[8];
+
+extern const union AffineAnimCmd gUnknown_083D7CA8[];
+
+void sub_80D2D3C(u8);
+
+void sub_80D2CF8(u8 taskId)
+{
+ u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
+
+ sub_80798F4(&gTasks[taskId], spriteId, gUnknown_083D7CA8);
+ gTasks[taskId].func = sub_80D2D3C;
+}
+
+void sub_80D2D3C(u8 taskId)
+{
+ if (!sub_807992C(&gTasks[taskId]))
+ DestroyAnimVisualTask(taskId);
+}
diff --git a/src/battle/anim/water.c b/src/battle/anim/water.c
new file mode 100644
index 000000000..396a4637d
--- /dev/null
+++ b/src/battle/anim/water.c
@@ -0,0 +1,371 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "util.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D3874(struct Sprite *);
+
+void sub_80D37FC(struct Sprite *sprite)
+{
+ sub_8078764(sprite, 1);
+
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2];
+ sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[4];
+
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+}
+
+void sub_80D3838(struct Sprite *sprite)
+{
+ if (gBattleAnimArgs[3] != 0)
+ {
+ sub_8078764(sprite, 1);
+ }
+ else
+ {
+ sub_80787B0(sprite, 1);
+ }
+
+ sprite->data[7] = gBattleAnimArgs[2];
+ sprite->callback = sub_80D3874;
+}
+
+static void sub_80D3874(struct Sprite *sprite)
+{
+ sprite->data[0] = (sprite->data[0] + 11) & 0xFF;
+ sprite->pos2.x = Sin(sprite->data[0], 4);
+
+ sprite->data[1] += 48;
+ sprite->pos2.y = -(sprite->data[1] >> 8);
+
+ if (--sprite->data[7] == -1)
+ {
+ move_anim_8072740(sprite);
+ }
+}
+
+__attribute__((naked))
+void sub_80D38BC(u8 taskId)
+{
+ asm(".syntax unified\n\
+ .equ REG_BLDCNT, 0x4000050\n\
+ .equ REG_BG1CNT, 0x400000A\n\
+ .equ REG_BG1HOFS, 0x4000014\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\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r10, r0\n\
+ ldr r1, _080D398C @ =REG_BLDCNT\n\
+ ldr r2, _080D3990 @ =0x00003f42\n\
+ adds r0, r2, 0\n\
+ strh r0, [r1]\n\
+ adds r1, 0x2\n\
+ movs r3, 0x80\n\
+ lsls r3, 5\n\
+ adds r0, r3, 0\n\
+ strh r0, [r1]\n\
+ ldr r2, _080D3994 @ =REG_BG1CNT\n\
+ ldrb r1, [r2]\n\
+ movs r0, 0x4\n\
+ negs r0, r0\n\
+ ands r0, r1\n\
+ movs r1, 0x1\n\
+ orrs r0, r1\n\
+ strb r0, [r2]\n\
+ ldrb r1, [r2, 0x1]\n\
+ movs r0, 0x3F\n\
+ ands r0, r1\n\
+ movs r1, 0x40\n\
+ orrs r0, r1\n\
+ strb r0, [r2, 0x1]\n\
+ mov r0, sp\n\
+ bl sub_8078914\n\
+ ldr r2, [sp]\n\
+ movs r3, 0x80\n\
+ lsls r3, 6\n\
+ add r6, sp, 0x10\n\
+ add r0, sp, 0xC\n\
+ mov r12, r0\n\
+ movs r5, 0\n\
+ ldr r1, _080D3998 @ =0x040000d4\n\
+ movs r4, 0x80\n\
+ lsls r4, 5\n\
+ mov r8, r6\n\
+ ldr r7, _080D399C @ =0x85000400\n\
+ movs r0, 0x85\n\
+ lsls r0, 24\n\
+ mov r9, r0\n\
+_080D3920:\n\
+ str r5, [sp, 0x10]\n\
+ mov r0, r8\n\
+ str r0, [r1]\n\
+ str r2, [r1, 0x4]\n\
+ str r7, [r1, 0x8]\n\
+ ldr r0, [r1, 0x8]\n\
+ adds r2, r4\n\
+ subs r3, r4\n\
+ cmp r3, r4\n\
+ bhi _080D3920\n\
+ str r5, [sp, 0x10]\n\
+ str r6, [r1]\n\
+ str r2, [r1, 0x4]\n\
+ lsrs r0, r3, 2\n\
+ mov r2, r9\n\
+ orrs r0, r2\n\
+ str r0, [r1, 0x8]\n\
+ ldr r0, [r1, 0x8]\n\
+ movs r0, 0\n\
+ mov r3, r12\n\
+ strb r0, [r3]\n\
+ strb r0, [r3]\n\
+ ldr r1, [sp, 0x4]\n\
+ movs r0, 0\n\
+ str r0, [sp, 0x10]\n\
+ ldr r0, _080D3998 @ =0x040000d4\n\
+ str r6, [r0]\n\
+ str r1, [r0, 0x4]\n\
+ ldr r1, _080D399C @ =0x85000400\n\
+ str r1, [r0, 0x8]\n\
+ ldr r0, [r0, 0x8]\n\
+ bl NotInBattle\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080D39B8\n\
+ ldr r2, _080D3994 @ =REG_BG1CNT\n\
+ ldrb r1, [r2]\n\
+ movs r0, 0xD\n\
+ negs r0, r0\n\
+ ands r0, r1\n\
+ movs r1, 0x4\n\
+ orrs r0, r1\n\
+ strb r0, [r2]\n\
+ ldr r0, _080D39A0 @ =gBattleAnimBankAttacker\n\
+ ldrb r0, [r0]\n\
+ bl GetBankSide\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x1\n\
+ bne _080D39A8\n\
+ ldr r0, _080D39A4 @ =gUnknown_08E70968\n\
+ b _080D39AA\n\
+ .align 2, 0\n\
+_080D398C: .4byte REG_BLDCNT\n\
+_080D3990: .4byte 0x00003f42\n\
+_080D3994: .4byte REG_BG1CNT\n\
+_080D3998: .4byte 0x040000d4\n\
+_080D399C: .4byte 0x85000400\n\
+_080D39A0: .4byte gBattleAnimBankAttacker\n\
+_080D39A4: .4byte gUnknown_08E70968\n\
+_080D39A8:\n\
+ ldr r0, _080D39B4 @ =gUnknown_08E70C38\n\
+_080D39AA:\n\
+ ldr r1, [sp, 0x4]\n\
+ bl LZDecompressVram\n\
+ b _080D39CE\n\
+ .align 2, 0\n\
+_080D39B4: .4byte gUnknown_08E70C38\n\
+_080D39B8:\n\
+ ldr r0, _080D39F0 @ =gUnknown_08E70F0C\n\
+ ldr r1, [sp, 0x4]\n\
+ bl LZDecompressVram\n\
+ mov r0, sp\n\
+ ldrb r0, [r0, 0x8]\n\
+ ldr r1, [sp, 0x4]\n\
+ movs r2, 0\n\
+ movs r3, 0x1\n\
+ bl sub_80763FC\n\
+_080D39CE:\n\
+ ldr r0, _080D39F4 @ =gBattleAnimBackgroundImage_Surf\n\
+ ldr r1, [sp]\n\
+ bl LZDecompressVram\n\
+ ldr r0, _080D39F8 @ =gBattleAnimArgs\n\
+ movs r1, 0\n\
+ ldrsh r0, [r0, r1]\n\
+ cmp r0, 0\n\
+ bne _080D3A00\n\
+ ldr r0, _080D39FC @ =gBattleAnimBackgroundPalette_Surf\n\
+ mov r1, sp\n\
+ ldrb r1, [r1, 0x8]\n\
+ lsls r1, 4\n\
+ movs r2, 0x20\n\
+ bl LoadCompressedPalette\n\
+ b _080D3A0E\n\
+ .align 2, 0\n\
+_080D39F0: .4byte gUnknown_08E70F0C\n\
+_080D39F4: .4byte gBattleAnimBackgroundImage_Surf\n\
+_080D39F8: .4byte gBattleAnimArgs\n\
+_080D39FC: .4byte gBattleAnimBackgroundPalette_Surf\n\
+_080D3A00:\n\
+ ldr r0, _080D3A78 @ =gBattleAnimBackgroundImageMuddyWater_Pal\n\
+ mov r1, sp\n\
+ ldrb r1, [r1, 0x8]\n\
+ lsls r1, 4\n\
+ movs r2, 0x20\n\
+ bl LoadCompressedPalette\n\
+_080D3A0E:\n\
+ ldr r0, _080D3A7C @ =sub_80D3D68\n\
+ ldr r4, _080D3A80 @ =gTasks\n\
+ mov r2, r10\n\
+ lsls r5, r2, 2\n\
+ adds r1, r5, r2\n\
+ lsls r1, 3\n\
+ adds r6, r1, r4\n\
+ ldrb r1, [r6, 0x7]\n\
+ adds r1, 0x1\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+ bl CreateTask\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r8, r0\n\
+ movs r3, 0\n\
+ mov r9, r3\n\
+ mov r0, r8\n\
+ strh r0, [r6, 0x26]\n\
+ mov r1, r8\n\
+ lsls r0, r1, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r7, r0, r4\n\
+ mov r2, r9\n\
+ strh r2, [r7, 0x8]\n\
+ movs r0, 0x80\n\
+ lsls r0, 5\n\
+ strh r0, [r7, 0xA]\n\
+ strh r0, [r7, 0xC]\n\
+ bl NotInBattle\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0\n\
+ beq _080D3A94\n\
+ ldr r3, _080D3A84 @ =0x0000ffb0\n\
+ adds r0, r3, 0\n\
+ ldr r1, _080D3A88 @ =gUnknown_030042C0\n\
+ strh r0, [r1]\n\
+ ldr r2, _080D3A8C @ =0x0000ffd0\n\
+ adds r0, r2, 0\n\
+ ldr r3, _080D3A90 @ =gUnknown_030041B4\n\
+ strh r0, [r3]\n\
+ movs r0, 0x2\n\
+ strh r0, [r6, 0x8]\n\
+ movs r0, 0x1\n\
+ strh r0, [r6, 0xA]\n\
+ mov r0, r9\n\
+ strh r0, [r7, 0xE]\n\
+ b _080D3AEE\n\
+ .align 2, 0\n\
+_080D3A78: .4byte gBattleAnimBackgroundImageMuddyWater_Pal\n\
+_080D3A7C: .4byte sub_80D3D68\n\
+_080D3A80: .4byte gTasks\n\
+_080D3A84: .4byte 0x0000ffb0\n\
+_080D3A88: .4byte gUnknown_030042C0\n\
+_080D3A8C: .4byte 0x0000ffd0\n\
+_080D3A90: .4byte gUnknown_030041B4\n\
+_080D3A94:\n\
+ ldr r0, _080D3AC4 @ =gBattleAnimBankAttacker\n\
+ ldrb r0, [r0]\n\
+ bl GetBankSide\n\
+ lsls r0, 24\n\
+ lsrs r1, r0, 24\n\
+ cmp r1, 0x1\n\
+ bne _080D3AD8\n\
+ ldr r2, _080D3AC8 @ =0x0000ff20\n\
+ adds r0, r2, 0\n\
+ ldr r3, _080D3ACC @ =gUnknown_030042C0\n\
+ strh r0, [r3]\n\
+ movs r2, 0x80\n\
+ lsls r2, 1\n\
+ adds r0, r2, 0\n\
+ ldr r3, _080D3AD0 @ =gUnknown_030041B4\n\
+ strh r0, [r3]\n\
+ movs r0, 0x2\n\
+ strh r0, [r6, 0x8]\n\
+ ldr r0, _080D3AD4 @ =0x0000ffff\n\
+ strh r0, [r6, 0xA]\n\
+ strh r1, [r7, 0xE]\n\
+ b _080D3AEE\n\
+ .align 2, 0\n\
+_080D3AC4: .4byte gBattleAnimBankAttacker\n\
+_080D3AC8: .4byte 0x0000ff20\n\
+_080D3ACC: .4byte gUnknown_030042C0\n\
+_080D3AD0: .4byte gUnknown_030041B4\n\
+_080D3AD4: .4byte 0x0000ffff\n\
+_080D3AD8:\n\
+ ldr r0, _080D3B1C @ =gUnknown_030042C0\n\
+ strh r4, [r0]\n\
+ ldr r1, _080D3B20 @ =0x0000ffd0\n\
+ adds r0, r1, 0\n\
+ ldr r2, _080D3B24 @ =gUnknown_030041B4\n\
+ strh r0, [r2]\n\
+ ldr r0, _080D3B28 @ =0x0000fffe\n\
+ strh r0, [r6, 0x8]\n\
+ movs r0, 0x1\n\
+ strh r0, [r6, 0xA]\n\
+ strh r4, [r7, 0xE]\n\
+_080D3AEE:\n\
+ ldr r1, _080D3B2C @ =REG_BG1HOFS\n\
+ ldr r3, _080D3B1C @ =gUnknown_030042C0\n\
+ ldrh r0, [r3]\n\
+ strh r0, [r1]\n\
+ adds r1, 0x2\n\
+ ldr r2, _080D3B24 @ =gUnknown_030041B4\n\
+ ldrh r0, [r2]\n\
+ strh r0, [r1]\n\
+ ldr r1, _080D3B30 @ =gTasks\n\
+ mov r3, r8\n\
+ lsls r0, r3, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r2, r0, r1\n\
+ movs r3, 0xE\n\
+ ldrsh r0, [r2, r3]\n\
+ cmp r0, 0\n\
+ bne _080D3B34\n\
+ movs r0, 0x30\n\
+ strh r0, [r2, 0x10]\n\
+ movs r0, 0x70\n\
+ b _080D3B38\n\
+ .align 2, 0\n\
+_080D3B1C: .4byte gUnknown_030042C0\n\
+_080D3B20: .4byte 0x0000ffd0\n\
+_080D3B24: .4byte gUnknown_030041B4\n\
+_080D3B28: .4byte 0x0000fffe\n\
+_080D3B2C: .4byte REG_BG1HOFS\n\
+_080D3B30: .4byte gTasks\n\
+_080D3B34:\n\
+ movs r0, 0\n\
+ strh r0, [r2, 0x10]\n\
+_080D3B38:\n\
+ strh r0, [r2, 0x12]\n\
+ mov r2, r10\n\
+ adds r0, r5, r2\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0x1\n\
+ strh r1, [r0, 0x14]\n\
+ ldr r1, _080D3B5C @ =sub_80D3B60\n\
+ str r1, [r0]\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\
+_080D3B5C: .4byte sub_80D3B60\n\
+ .syntax divided\n");
+}
diff --git a/src/battle/anim/wave_finger.c b/src/battle/anim/wave_finger.c
new file mode 100755
index 000000000..58f0f8778
--- /dev/null
+++ b/src/battle/anim/wave_finger.c
@@ -0,0 +1,39 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern void sub_80CEF44(u8 bank, struct Sprite* sprite);
+void sub_80CF088(struct Sprite* sprite);
+
+// wave_finger
+// Used by Metronome.
+
+void sub_80CF040(struct Sprite* sprite)
+{
+ u8 bank;
+ if (gBattleAnimArgs[0] == 0)
+ bank = gBattleAnimBankAttacker;
+ else
+ bank = gBattleAnimBankTarget;
+
+ sub_80CEF44(bank, sprite);
+ sprite->data[0] = 0;
+ StoreSpriteCallbackInData(sprite, sub_80CF088);
+ sprite->callback = sub_80785E4;
+}
+
+void sub_80CF088(struct Sprite* sprite)
+{
+ if (++sprite->data[0] > 16)
+ {
+ StartSpriteAffineAnim(sprite, 1);
+ StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
+ sprite->callback = sub_80785E4;
+ }
+}
diff --git a/src/battle/anim/whip.c b/src/battle/anim/whip.c
new file mode 100755
index 000000000..3aa0758a9
--- /dev/null
+++ b/src/battle/anim/whip.c
@@ -0,0 +1,46 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+// whip (does a hitting animation that uses a rotating sprite to invoke the sprite getting hit.)
+// Used by Slam and Vine Whip.
+
+void sub_80CC810(struct Sprite* sprite)
+{
+ if (sprite->animEnded)
+ move_anim_8072740(sprite);
+}
+
+// unused, beta effect for diagonal sprite movement?
+void sub_80CC82C(struct Sprite* sprite)
+{
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ {
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ }
+ else
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ }
+
+ sprite->callback = sub_8078600;
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
+}
+
+void sub_80CC884(struct Sprite* sprite)
+{
+ if (GetBankSide(gBattleAnimBankAttacker) == 0)
+ StartSpriteAnim(sprite, 1);
+
+ sprite->callback = sub_80CC810;
+ sub_807867C(sprite, gBattleAnimArgs[0]);
+ sprite->pos1.y += gBattleAnimArgs[1];
+}
diff --git a/src/battle/anim/wisp_orb.c b/src/battle/anim/wisp_orb.c
new file mode 100644
index 000000000..0e13fa119
--- /dev/null
+++ b/src/battle/anim/wisp_orb.c
@@ -0,0 +1,105 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "constants/songs.h"
+#include "rom_8077ABC.h"
+#include "sound.h"
+#include "trig.h"
+
+extern s16 gBattleAnimArgs[8];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+extern u16 gBattleTypeFlags;
+extern u8 gUnknown_0202F7D2;
+
+static void sub_80D5C5C(struct Sprite *);
+
+// wisp_orb (animates the wisp orbs)
+// Used in Will-O-Wisp
+
+void sub_80D5B0C(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ sub_80787B0(sprite, 0);
+ StartSpriteAnim(sprite, gBattleAnimArgs[2]);
+ sprite->data[7] = gBattleAnimArgs[2];
+
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ {
+ sprite->data[4] = 4;
+ }
+ else
+ {
+ sprite->data[4] = -4;
+ }
+
+ sprite->oam.priority = sub_8079ED4(gBattleAnimBankTarget);
+ sprite->data[0]++;
+ break;
+ case 1:
+ sprite->data[1] += 192;
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ {
+ sprite->pos2.y = -(sprite->data[1] >> 8);
+ }
+ else
+ {
+ sprite->pos2.y = sprite->data[1] >> 8;
+ }
+
+ sprite->pos2.x = Sin(sprite->data[2], sprite->data[4]);
+ sprite->data[2] = (sprite->data[2] + 4) & 0xFF;
+
+ if (++sprite->data[3] == 1)
+ {
+ sprite->data[3] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 2:
+ sprite->pos2.x = Sin(sprite->data[2], sprite->data[4]);
+ sprite->data[2] = (sprite->data[2] + 4) & 0xFF;
+
+ if (++sprite->data[3] == 31)
+ {
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.y = 0;
+ sprite->pos2.x = 0;
+
+ sprite->data[0] = 256;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2);
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3);
+
+ sub_8078BD4(sprite);
+ sprite->callback = sub_80D5C5C;
+ }
+ break;
+ }
+}
+
+static void sub_80D5C5C(struct Sprite *sprite)
+{
+ s16 initialData5;
+ s16 newData5;
+
+ if (!sub_8078B5C(sprite))
+ {
+ sprite->pos2.x += Sin(sprite->data[5], 16);
+ initialData5 = sprite->data[5];
+ sprite->data[5] = (sprite->data[5] + 4) & 0xFF;
+ newData5 = sprite->data[5];
+
+ if ((initialData5 == 0 || initialData5 > 196) && newData5 > 0 && sprite->data[7] == 0)
+ {
+ PlaySE12WithPanning(SE_W172, gUnknown_0202F7D2);
+ }
+ }
+ else
+ {
+ move_anim_8072740(sprite);
+ }
+}
diff --git a/src/battle/anim/withdraw.c b/src/battle/anim/withdraw.c
new file mode 100755
index 000000000..9abcff32d
--- /dev/null
+++ b/src/battle/anim/withdraw.c
@@ -0,0 +1,69 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+extern u8 gObjectBankIDs[];
+
+static void sub_80CF514(u8 taskId);
+
+// withdraw (where a Pokemon leans inward to mimic the effect of withdrawing into a shell.)
+// Used in Withdraw.
+
+void sub_80CF4D8(u8 taskId)
+{
+ sub_8078E70(gObjectBankIDs[gBattleAnimBankAttacker], 0);
+ gTasks[taskId].func = sub_80CF514;
+}
+
+void sub_80CF514(u8 taskId)
+{
+ u8 a = gObjectBankIDs[gBattleAnimBankAttacker];
+ s16 b;
+ if (GetBankSide(gBattleAnimBankAttacker) == 0)
+ {
+ b = -gTasks[taskId].data[0];
+ }
+ else
+ {
+ b = gTasks[taskId].data[0];
+ }
+
+ obj_id_set_rotscale(a, 0x100, 0x100, b);
+ if (gTasks[taskId].data[1] == 0)
+ {
+ gTasks[taskId].data[0] += 0xB0;
+ gSprites[a].pos2.y++;
+ }
+ else if (gTasks[taskId].data[1] == 1)
+ {
+ if (++gTasks[taskId].data[3] == 0x1E)
+ gTasks[taskId].data[1] = 2;
+
+ return;
+ }
+ else
+ {
+ gTasks[taskId].data[0] -= 0xB0;
+ gSprites[a].pos2.y--;
+ }
+
+ sub_8078F9C(a);
+ if (gTasks[taskId].data[0] == 0xF20 || gTasks[taskId].data[0] == 0)
+ {
+ if (gTasks[taskId].data[1] == 2)
+ {
+ sub_8078F40(a);
+ DestroyAnimVisualTask(taskId);
+ }
+ else
+ {
+ gTasks[taskId].data[1]++;
+ }
+ }
+}
diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c
index a447cf498..ff3df7235 100644
--- a/src/battle/battle_2.c
+++ b/src/battle/battle_2.c
@@ -1,5 +1,5 @@
#include "global.h"
-#include "abilities.h"
+#include "constants/abilities.h"
#include "battle.h"
#include "battle_interface.h"
#include "battle_setup.h"
@@ -13,29 +13,23 @@
#include "pokeball.h"
#include "pokedex.h"
#include "pokemon.h"
-#include "rng.h"
+#include "random.h"
#include "rom3.h"
#include "rom_8077ABC.h"
#include "rom_8094928.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "species.h"
+#include "constants/species.h"
#include "sprite.h"
#include "task.h"
#include "text.h"
#include "trig.h"
#include "unknown_task.h"
#include "util.h"
-#include "items.h"
-#include "hold_effects.h"
-#include "battle_move_effects.h"
-
-struct UnknownStruct6
-{
- u16 unk0[0xA0];
- u8 fillerA0[0x640];
- u16 unk780[0xA0];
-};
+#include "constants/items.h"
+#include "constants/hold_effects.h"
+#include "constants/battle_move_effects.h"
+#include "ewram.h"
struct UnknownStruct7
{
@@ -62,48 +56,6 @@ struct UnknownStruct12
extern const u16 gUnknown_08D004E0[];
extern const struct MonCoords gCastformFrontSpriteCoords[];
-extern u8 ewram[];
-#define ewram0 (*(struct UnknownStruct7 *)(ewram + 0x0))
-#define ewram4 (*(struct UnknownStruct8 *)(ewram + 0x4))
-#define ewram16000 (ewram[0x16000])
-#define ewram16001 (ewram[0x16001])
-#define ewram16002 (ewram[0x16002])
-#define ewram16003 (ewram[0x16003])
-#define ewram1600C (ewram[0x1600C])
-#define ewram1600E (ewram[0x1600E])
-#define ewram1601B (ewram[0x1601B])
-#define ewram16020 ((u8 *)(ewram + 0x16020))
-#define ewram16056 (ewram[0x16056])
-#define ewram16058 (ewram[0x16058])
-#define ewram16059 (ewram[0x16059])
-#define ewram16078 (ewram[0x16078])
-#define ewram16084 (ewram[0x16084])
-#define ewram16086 (ewram[0x16086])
-#define ewram16087 (ewram[0x16087])
-#define ewram16088 (ewram[0x16088])
-#define ewram16089 (ewram[0x16089])
-#define ewram160A1 (ewram[0x160A1])
-#define ewram160A6 (ewram[0x160A6])
-#define ewram160AC ((u8 *)(ewram + 0x160AC))
-#define ewram160BC ((u16 *)(ewram + 0x160BC)) // hp
-#define ewram160C8 (ewram[0x160C8])
-#define ewram160C9 (ewram[0x160C9])
-#define ewram160CB (ewram[0x160CB])
-#define ewram160CC ((u8 *)(ewram + 0x160CC))
-#define ewram160E6 (ewram[0x160E6])
-#define ewram160E8 ((u8 *)(ewram + 0x160E8))
-#define ewram160F0 ((u8 *)(ewram + 0x160F0))
-#define ewram160F9 (ewram[0x160F9])
-#define ewram16100 ((u8 *)(ewram + 0x16100))
-#define ewram16108 ((u8 *)(ewram + 0x16108))
-#define ewram16110 (ewram[0x16110])
-#define ewram16111 (ewram[0x16111])
-#define ewram16113 (ewram[0x16113])
-#define ewram17100 ((u32 *)(ewram + 0x17100))
-#define ewram17130 (ewram[0x17130])
-#define ewram17160 (ewram[0x17160])
-#define ewram1D000 ((struct Pokemon *)(ewram + 0x1D000))
-
extern struct UnknownPokemonStruct2 gUnknown_02023A00[];
extern u8 gBattleBufferB[][0x200];
extern u8 gActiveBank;
@@ -164,8 +116,6 @@ extern void (*gBattleMainFunc)(void);
extern u8 gLeveledUpInBattle;
extern void (*gBattleBankFunc[])(void);
extern u8 gHealthboxIDs[];
-extern struct UnknownStruct6 gUnknown_03004DE0;
-//extern u16 gUnknown_03004DE0[][0xA0]; // possibly?
extern u16 gBattleTypeFlags;
extern s8 gBattleTerrain; // I'm not sure if this is supposed to be s8 or u8. Regardless, it must have the same type as the return value of BattleSetup_GetTerrain.
extern u8 gReservedSpritePaletteCount;
@@ -216,14 +166,14 @@ void InitBattle(void)
for (i = 0; i < 80; i++)
{
- gUnknown_03004DE0.unk0[i] = 0xF0;
- gUnknown_03004DE0.unk780[i] = 0xF0;
+ gUnknown_03004DE0[0][i] = 0xF0;
+ gUnknown_03004DE0[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.unk0[i] = 0xFF10;
- gUnknown_03004DE0.unk780[i] = 0xFF10;
+ gUnknown_03004DE0[0][i] = 0xFF10;
+ gUnknown_03004DE0[1][i] = 0xFF10;
}
//sub_80895F8(gUnknown_081F9674.unk0, gUnknown_081F9674.unk4, gUnknown_081F9674.unk8);
sub_80895F8(gUnknown_081F9674);
@@ -294,8 +244,8 @@ void sub_800E9EC(void)
if (species != SPECIES_EGG && hp == 0)
r6 |= 3 << i * 2;
}
- ewram0.unk2 = r6;
- ewram0.unk3 = r6 >> 8;
+ BATTLE_STRUCT->unk2 = r6;
+ BATTLE_STRUCT->unk3 = r6 >> 8;
}
void sub_800EAAC(void)
@@ -391,11 +341,11 @@ void sub_800EC9C(void)
{
if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC())
{
- ewram0.unk0 = 1;
- ewram0.unk1 = 1;
+ BATTLE_STRUCT->unk0 = 1;
+ BATTLE_STRUCT->unk1 = 1;
sub_800E9EC();
sub_800EAAC();
- SendBlock(bitmask_all_link_players_but_self(), &ewram0, 32);
+ SendBlock(bitmask_all_link_players_but_self(), BATTLE_STRUCT, 32);
gBattleCommunication[0] = 1;
}
}
@@ -451,7 +401,7 @@ void sub_800EC9C(void)
gTasks[taskId].data[1] = 0x10E;
gTasks[taskId].data[2] = 0x5A;
gTasks[taskId].data[5] = 0;
- gTasks[taskId].data[3] = ewram0.unk2 | (ewram0.unk3 << 8);
+ gTasks[taskId].data[3] = BATTLE_STRUCT->unk2 | (BATTLE_STRUCT->unk3 << 8);
gTasks[taskId].data[4] = gBlockRecvBuffer[enemyId][1];
gBattleCommunication[0]++;
}
@@ -551,7 +501,7 @@ void sub_800F02C(void)
if (gUnknown_02023A00[i].language != 1)
PadNameString(nickname, 0);
}
- memcpy(ewram, gUnknown_02023A00, 0x60);
+ memcpy(gSharedMem, gUnknown_02023A00, 0x60);
}
void sub_800F104(void)
@@ -563,8 +513,8 @@ void sub_800F104(void)
playerId = GetMultiplayerId();
ewram160CB = playerId;
// Seriously, Game Freak?
- pSavedCallback = (MainCallback *)(ewram + 0x160C4);
- pSavedBattleTypeFlags = (u16 *)(ewram + 0x160C2);
+ pSavedCallback = ewram160C4_Callback;
+ pSavedBattleTypeFlags = ewram160C2_Flags;
RunTasks();
AnimateSprites();
BuildOamBuffer();
@@ -575,7 +525,7 @@ void sub_800F104(void)
if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC())
{
sub_800F02C();
- SendBlock(bitmask_all_link_players_but_self(), ewram, 0x60);
+ SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x60);
gBattleCommunication[0]++;
}
break;
@@ -634,11 +584,11 @@ void sub_800F298(void)
case 0:
if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC())
{
- ewram0.unk0 = 1;
- ewram0.unk1 = 1;
+ BATTLE_STRUCT->unk0 = 1;
+ BATTLE_STRUCT->unk1 = 1;
sub_800E9EC();
sub_800EAAC();
- SendBlock(bitmask_all_link_players_but_self(), ewram, 0x20);
+ SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x20);
gBattleCommunication[0]++;
}
break;
@@ -898,50 +848,50 @@ void sub_800F808(void)
void sub_800F828(struct Sprite *sprite)
{
- sprite->data0 = 0;
+ sprite->data[0] = 0;
sprite->callback = sub_800F838;
}
void sub_800F838(struct Sprite *sprite)
{
- u16 *arr = (u16 *)ewram;
+ u16 *arr = (u16 *)gSharedMem;
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
- sprite->data0++;
- sprite->data1 = 0;
- sprite->data2 = 0x281;
- sprite->data3 = 0;
- sprite->data4 = 1;
+ sprite->data[0]++;
+ sprite->data[1] = 0;
+ sprite->data[2] = 0x281;
+ sprite->data[3] = 0;
+ sprite->data[4] = 1;
// fall through
case 1:
- sprite->data4--;
- if (sprite->data4 == 0)
+ sprite->data[4]--;
+ if (sprite->data[4] == 0)
{
s32 i;
s32 r2;
s32 r0;
- sprite->data4 = 2;
- r2 = sprite->data1 + sprite->data3 * 32;
- r0 = sprite->data2 - sprite->data3 * 32;
+ sprite->data[4] = 2;
+ r2 = sprite->data[1] + sprite->data[3] * 32;
+ r0 = sprite->data[2] - sprite->data[3] * 32;
for (i = 0; i < 29; i += 2)
{
arr[r2 + i] = 0x3D;
arr[r0 + i] = 0x3D;
}
- sprite->data3++;
- if (sprite->data3 == 21)
+ sprite->data[3]++;
+ if (sprite->data[3] == 21)
{
- sprite->data0++;
- sprite->data1 = 32;
+ sprite->data[0]++;
+ sprite->data[1] = 32;
}
}
break;
case 2:
- sprite->data1--;
- if (sprite->data1 == 20)
+ sprite->data[1]--;
+ if (sprite->data[1] == 20)
SetMainCallback2(sub_800E7C4);
break;
}
@@ -999,7 +949,7 @@ u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum)
for (j = 0; j < 4; j++)
{
- SetMonData(&party[i], MON_DATA_MOVE1 + j, (u8 *)&partyData[i].moves[j]);
+ SetMonData(&party[i], MON_DATA_MOVE1 + j, &partyData[i].moves[j]);
SetMonData(&party[i], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp);
}
break;
@@ -1014,7 +964,7 @@ u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum)
fixedIV = partyData[i].iv * 31 / 255;
CreateMon(&party[i], partyData[i].species, partyData[i].level, fixedIV, TRUE, personalityValue, 2, 0);
- SetMonData(&party[i], MON_DATA_HELD_ITEM, (u8 *)&partyData[i].heldItem);
+ SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem);
break;
}
case 3:
@@ -1027,10 +977,10 @@ u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum)
fixedIV = partyData[i].iv * 31 / 255;
CreateMon(&party[i], partyData[i].species, partyData[i].level, fixedIV, TRUE, personalityValue, 2, 0);
- SetMonData(&party[i], MON_DATA_HELD_ITEM, (u8 *)&partyData[i].heldItem);
+ SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem);
for (j = 0; j < 4; j++)
{
- SetMonData(&party[i], MON_DATA_MOVE1 + j, (u8 *)&partyData[i].moves[j]);
+ SetMonData(&party[i], MON_DATA_MOVE1 + j, &partyData[i].moves[j]);
SetMonData(&party[i], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp);
}
break;
@@ -1075,11 +1025,11 @@ void nullsub_36(struct Sprite *sprite)
void sub_800FDB0(struct Sprite *sprite)
{
- if (sprite->data0 != 0)
- sprite->pos1.x = sprite->data1 + ((sprite->data2 & 0xFF00) >> 8);
+ if (sprite->data[0] != 0)
+ sprite->pos1.x = sprite->data[1] + ((sprite->data[2] & 0xFF00) >> 8);
else
- sprite->pos1.x = sprite->data1 - ((sprite->data2 & 0xFF00) >> 8);
- sprite->data2 += 0x180;
+ sprite->pos1.x = sprite->data[1] - ((sprite->data[2] & 0xFF00) >> 8);
+ sprite->data[2] += 0x180;
if (sprite->affineAnimEnded)
{
FreeSpriteTilesByTag(0x2710);
@@ -1194,14 +1144,14 @@ void c2_8011A1C(void)
for (i = 0; i < 80; i++)
{
- gUnknown_03004DE0.unk0[i] = 0xF0;
- gUnknown_03004DE0.unk780[i] = 0xF0;
+ gUnknown_03004DE0[0][i] = 0xF0;
+ gUnknown_03004DE0[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.unk0[i] = 0xFF10;
- gUnknown_03004DE0.unk780[i] = 0xFF10;
+ gUnknown_03004DE0[0][i] = 0xFF10;
+ gUnknown_03004DE0[1][i] = 0xFF10;
}
SetUpWindowConfig(&gWindowConfig_81E6C58);
ResetPaletteFade();
@@ -1283,7 +1233,7 @@ void sub_8010278(struct Sprite *sprite)
if (sprite->pos2.x == 0)
{
sprite->callback = sub_80102AC;
- PlayCry1(sprite->data2, 25);
+ PlayCry1(sprite->data[2], 25);
}
}
}
@@ -1292,8 +1242,8 @@ void sub_80102AC(struct Sprite *sprite)
{
if (sprite->animEnded)
{
- sub_804777C(sprite->data0);
- sub_8043DFC(gHealthboxIDs[sprite->data0]);
+ sub_804777C(sprite->data[0]);
+ sub_8043DFC(gHealthboxIDs[sprite->data[0]]);
sprite->callback = nullsub_37;
StartSpriteAnimIfDifferent(sprite, 0);
BeginNormalPaletteFade(0x00020000, 0, 10, 0, 0x3DEF);
@@ -1306,20 +1256,20 @@ void nullsub_37(struct Sprite *sprite)
void unref_sub_801030C(struct Sprite *sprite)
{
- sprite->data3 = 6;
- sprite->data4 = 1;
+ sprite->data[3] = 6;
+ sprite->data[4] = 1;
sprite->callback = sub_8010320;
}
void sub_8010320(struct Sprite *sprite)
{
- sprite->data4--;
- if (sprite->data4 == 0)
+ sprite->data[4]--;
+ if (sprite->data[4] == 0)
{
- sprite->data4 = 8;
+ sprite->data[4] = 8;
sprite->invisible ^= 1;
- sprite->data3--;
- if (sprite->data3 == 0)
+ sprite->data[3]--;
+ if (sprite->data[3] == 0)
{
sprite->invisible = FALSE;
sprite->callback = nullsub_37;
@@ -1330,14 +1280,14 @@ void sub_8010320(struct Sprite *sprite)
void sub_8010384(struct Sprite *sprite)
{
- u8 r6 = sprite->data0;
+ u8 r6 = sprite->data[0];
u16 species;
u8 yOffset;
if (ewram17800[r6].transformedSpecies != 0)
species = ewram17800[r6].transformedSpecies;
else
- species = sprite->data2;
+ species = sprite->data[2];
GetMonData(&gEnemyParty[gBattlePartyID[r6]], MON_DATA_PERSONALITY); // Unused return value
@@ -1367,58 +1317,59 @@ void sub_8010384(struct Sprite *sprite)
yOffset = gMonFrontPicCoords[species].y_offset;
}
- sprite->data3 = 8 - yOffset / 8;
- sprite->data4 = 1;
+ sprite->data[3] = 8 - yOffset / 8;
+ sprite->data[4] = 1;
sprite->callback = sub_8010494;
}
void sub_8010494(struct Sprite *sprite)
{
s32 i;
+ u8 *dst;
- sprite->data4--;
- if (sprite->data4 == 0)
+ sprite->data[4]--;
+ if (sprite->data[4] == 0)
{
- sprite->data4 = 2;
+ sprite->data[4] = 2;
sprite->pos2.y += 8;
- sprite->data3--;
- if (sprite->data3 < 0)
+ sprite->data[3]--;
+ if (sprite->data[3] < 0)
{
FreeSpriteOamMatrix(sprite);
DestroySprite(sprite);
}
else
{
- u8 *dst = (u8 *)gUnknown_081FAF4C[GetBankIdentity(sprite->data0)] + (gBattleMonForms[sprite->data0] << 11) + (sprite->data3 << 8);
-
+ // this should use a MEMSET_ALT, but *(dst++) wont match with it.
+ dst = (u8 *)gUnknown_081FAF4C[GetBankIdentity(sprite->data[0])] + (gBattleMonForms[sprite->data[0]] << 11) + (sprite->data[3] << 8);
for (i = 0; i < 0x100; i++)
*(dst++) = 0;
- StartSpriteAnim(sprite, gBattleMonForms[sprite->data0]);
+ StartSpriteAnim(sprite, gBattleMonForms[sprite->data[0]]);
}
}
}
void sub_8010520(struct Sprite *sprite)
{
- sprite->data3 = 8;
- sprite->data4 = sprite->invisible;
+ sprite->data[3] = 8;
+ sprite->data[4] = sprite->invisible;
sprite->callback = sub_801053C;
}
void sub_801053C(struct Sprite *sprite)
{
- sprite->data3--;
- if (sprite->data3 == 0)
+ sprite->data[3]--;
+ if (sprite->data[3] == 0)
{
sprite->invisible ^= 1;
- sprite->data3 = 8;
+ sprite->data[3] = 8;
}
}
void sub_8010574(struct Sprite *sprite)
{
- sprite->invisible = sprite->data4;
- sprite->data4 = FALSE;
+ sprite->invisible = sprite->data[4];
+ sprite->data[4] = FALSE;
sprite->callback = nullsub_37;
}
@@ -1435,7 +1386,7 @@ void oac_poke_ally_(struct Sprite *sprite)
if (sprite->pos2.x == 0)
{
sprite->callback = nullsub_86;
- sprite->data1 = 0;
+ sprite->data[1] = 0;
}
}
}
@@ -1453,8 +1404,8 @@ void sub_80105EC(struct Sprite *sprite)
{
if ((gUnknown_02024DE8 & 1) == 0)
{
- sprite->pos2.x += sprite->data1;
- sprite->pos2.y += sprite->data2;
+ sprite->pos2.x += sprite->data[1];
+ sprite->pos2.y += sprite->data[2];
}
}
@@ -1480,19 +1431,19 @@ void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d)
objectID = gHealthboxIDs[bank];
ewram17810[bank].unk2 = spriteId;
ewram17810[bank].unk0_1 = 1;
- gSprites[spriteId].data0 = 0x80;
+ gSprites[spriteId].data[0] = 0x80;
}
else
{
objectID = gObjectBankIDs[bank];
ewram17810[bank].unk3 = spriteId;
ewram17810[bank].unk0_2 = 1;
- gSprites[spriteId].data0 = 0xC0;
+ gSprites[spriteId].data[0] = 0xC0;
}
- gSprites[spriteId].data1 = c;
- gSprites[spriteId].data2 = d;
- gSprites[spriteId].data3 = objectID;
- gSprites[spriteId].data4 = b;
+ gSprites[spriteId].data[1] = c;
+ gSprites[spriteId].data[2] = d;
+ gSprites[spriteId].data[3] = objectID;
+ gSprites[spriteId].data[4] = b;
gSprites[objectID].pos2.x = 0;
gSprites[objectID].pos2.y = 0;
}
@@ -1505,7 +1456,7 @@ void dp11b_obj_free(u8 a, u8 b)
{
if (!ewram17810[a].unk0_1)
return;
- r4 = gSprites[ewram17810[a].unk2].data3;
+ r4 = gSprites[ewram17810[a].unk2].data[3];
DestroySprite(&gSprites[ewram17810[a].unk2]);
ewram17810[a].unk0_1 = 0;
}
@@ -1513,7 +1464,7 @@ void dp11b_obj_free(u8 a, u8 b)
{
if (!ewram17810[a].unk0_2)
return;
- r4 = gSprites[ewram17810[a].unk3].data3;
+ r4 = gSprites[ewram17810[a].unk3].data[3];
DestroySprite(&gSprites[ewram17810[a].unk3]);
ewram17810[a].unk0_2 = 0;
}
@@ -1523,16 +1474,16 @@ void dp11b_obj_free(u8 a, u8 b)
void objc_dp11b_pingpong(struct Sprite *sprite)
{
- u8 spriteId = sprite->data3;
+ u8 spriteId = sprite->data[3];
s32 var;
- if (sprite->data4 == 1)
- var = sprite->data0;
+ if (sprite->data[4] == 1)
+ var = sprite->data[0];
else
- var = sprite->data0;
+ var = sprite->data[0];
- gSprites[spriteId].pos2.y = Sin(var, sprite->data2) + sprite->data2;
- sprite->data0 = (sprite->data0 + sprite->data1) & 0xFF;
+ gSprites[spriteId].pos2.y = Sin(var, sprite->data[2]) + sprite->data[2];
+ sprite->data[0] = (sprite->data[0] + sprite->data[1]) & 0xFF;
}
void nullsub_41(void)
@@ -1567,10 +1518,7 @@ void sub_8010874(void)
{
gStatuses3[i] = 0;
- r4 = (u8 *)&gDisableStructs[i];
- for (j = 0; j < (u32)0x1C; j++)
- r4[j] = 0;
-
+ MEMSET_ALT(&gDisableStructs[i], 0, 0x1C, j, r4);
gDisableStructs[i].isFirstTurn= 2;
gUnknown_02024C70[i] = 0;
gLastUsedMove[i] = 0;
@@ -1580,25 +1528,20 @@ void sub_8010874(void)
gUnknown_02024C5C[i] = 0xFF;
gLockedMove[i] = 0;
gUnknown_02024C2C[i] = 0;
- ewram17100[i] = 0;
+ eFlashFireArr.arr[i] = 0;
}
for (i = 0; i < 2; i++)
{
gSideAffecting[i] = 0;
-
- r4 = (u8 *)&gSideTimer[i];
- for (j = 0; j < 12; j++)
- r4[j] = 0;
+ MEMSET_ALT(&gSideTimer[i], 0, 12, j, r4);
}
gBankAttacker = 0;
gBankTarget = 0;
gBattleWeather = 0;
- r4 = (u8 *)&gWishFutureKnock;
- for (i = 0; i < (u32)0x2C; i++)
- r4[i] = 0;
+ MEMSET_ALT(&gWishFutureKnock, 0, 0x2C, i, r4);
gHitMarker = 0;
if ((gBattleTypeFlags & BATTLE_TYPE_LINK) == 0 && gSaveBlock2.optionsBattleSceneOff == TRUE)
@@ -1629,12 +1572,12 @@ void sub_8010874(void)
for (i = 0; i < 8; i++)
{
- ewram[i + 0x160AC] = 0;
- ewram[i + 0x160CC] = 0;
- ewram[i + 0x160E8] = 0;
- ewram[i + 0x160F0] = 0;
- ewram[i + 0x16100] = 0;
- ewram[i + 0x16108] = 0;
+ ewram160ACarr(i) = 0;
+ ewram160CCarr(i) = 0;
+ ewram160E8arr(i) = 0;
+ ewram160F0arr(i) = 0;
+ ewram16100arr(i) = 0;
+ ewram16108arr(i) = 0;
}
ewram160C8 = 6;
@@ -1669,7 +1612,6 @@ void SwitchInClearStructs(void)
struct DisableStruct sp0 = gDisableStructs[gActiveBank];
s32 i;
u8 *ptr;
- u32 *ptr2;
if (gBattleMoves[gCurrentMove].effect != EFFECT_BATON_PASS)
{
@@ -1714,16 +1656,14 @@ void SwitchInClearStructs(void)
{
if (gUnknown_02024AD0[i].unk0 & (gBitTable[gActiveBank] << 16))
gUnknown_02024AD0[i].unk0 &= ~(gBitTable[gActiveBank] << 16);
- if ((gUnknown_02024AD0[i].unk0 & 0xE000) && ewram[0x16020 + i] == gActiveBank)
+ if ((gUnknown_02024AD0[i].unk0 & 0xE000) && ewram16020arr(i) == gActiveBank)
gUnknown_02024AD0[i].unk0 &= ~0xE000;
}
gActionSelectionCursor[gActiveBank] = 0;
gMoveSelectionCursor[gActiveBank] = 0;
- ptr = (u8 *)&gDisableStructs[gActiveBank];
- for (i = 0; i < (u32)0x1C; i++)
- ptr[i] = 0;
+ MEMSET_ALT(&gDisableStructs[gActiveBank], 0, 0x1C, i, ptr);
if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS)
{
@@ -1741,17 +1681,16 @@ void SwitchInClearStructs(void)
gUnknown_02024C2C[gActiveBank] = 0;
gUnknown_02024C5C[gActiveBank] = 0xFF;
- ewram[0x160AC + gActiveBank * 2 + 0] = 0;
- ewram[0x160AC + gActiveBank * 2 + 1] = 0;
- ewram[0x16100 + gActiveBank * 4 + 0] = 0;
- ewram[0x16100 + gActiveBank * 4 + 1] = 0;
- ewram[0x16100 + gActiveBank * 4 + 2] = 0;
- ewram[0x16100 + gActiveBank * 4 + 3] = 0;
- ewram[0x160E8 + gActiveBank * 2 + 0] = 0;
- ewram[0x160E8 + gActiveBank * 2 + 1] = 0;
+ ewram160ACarr2(0, gActiveBank) = 0;
+ ewram160ACarr2(1, gActiveBank) = 0;
+ ewram16100arr2(0, gActiveBank) = 0;
+ ewram16100arr2(1, gActiveBank) = 0;
+ ewram16100arr2(2, gActiveBank) = 0;
+ ewram16100arr2(3, gActiveBank) = 0;
+ ewram160E8arr2(0, gActiveBank) = 0;
+ ewram160E8arr2(1, gActiveBank) = 0;
- ptr2 = (u32 *)(ewram + 0x17100);
- ptr2[gActiveBank] = 0;
+ eFlashFireArr.arr[gActiveBank] = 0;
gCurrentMove = 0;
}
@@ -1760,7 +1699,6 @@ void UndoEffectsAfterFainting(void)
{
s32 i;
u8 *ptr;
- u32 *ptr2;
for (i = 0; i < 8; i++)
gBattleMons[gActiveBank].statStages[i] = 6;
@@ -1772,15 +1710,13 @@ void UndoEffectsAfterFainting(void)
gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION;
if (gBattleMons[i].status2 & (gBitTable[gActiveBank] << 16))
gBattleMons[i].status2 &= ~(gBitTable[gActiveBank] << 16);
- if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && ewram[0x16020 + i] == gActiveBank)
+ if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && ewram16020arr(i) == gActiveBank)
gBattleMons[i].status2 &= ~STATUS2_WRAPPED;
}
gActionSelectionCursor[gActiveBank] = 0;
gMoveSelectionCursor[gActiveBank] = 0;
- ptr = (u8 *)&gDisableStructs[gActiveBank];
- for (i = 0; i < (u32)0x1C; i++)
- ptr[i] = 0;
+ MEMSET_ALT(&gDisableStructs[gActiveBank], 0, 0x1C, i, ptr);
gProtectStructs[gActiveBank].protected = 0;
gProtectStructs[gActiveBank].endured = 0;
gProtectStructs[gActiveBank].onlyStruggle = 0;
@@ -1809,17 +1745,16 @@ void UndoEffectsAfterFainting(void)
gUnknown_02024C2C[gActiveBank] = 0;
gUnknown_02024C5C[gActiveBank] = 0xFF;
- ewram[0x160E8 + gActiveBank * 2 + 0] = 0;
- ewram[0x160E8 + gActiveBank * 2 + 1] = 0;
- ewram[0x160AC + gActiveBank * 2 + 0] = 0;
- ewram[0x160AC + gActiveBank * 2 + 1] = 0;
- ewram[0x16100 + gActiveBank * 4 + 0] = 0;
- ewram[0x16100 + gActiveBank * 4 + 1] = 0;
- ewram[0x16100 + gActiveBank * 4 + 2] = 0;
- ewram[0x16100 + gActiveBank * 4 + 3] = 0;
+ ewram160E8arr2(0, gActiveBank) = 0;
+ ewram160E8arr2(1, gActiveBank) = 0;
+ ewram160ACarr2(0, gActiveBank) = 0;
+ ewram160ACarr2(1, gActiveBank) = 0;
+ ewram16100arr2(0, gActiveBank) = 0;
+ ewram16100arr2(1, gActiveBank) = 0;
+ ewram16100arr2(2, gActiveBank) = 0;
+ ewram16100arr2(3, gActiveBank) = 0;
- ptr2 = (u32 *)(ewram + 0x17100);
- ptr2[gActiveBank] = 0;
+ eFlashFireArr.arr[gActiveBank] = 0;
gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1;
gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2;
@@ -1873,18 +1808,13 @@ void sub_8011384(void)
if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI)
&& GetBankSide(gActiveBank) == 0)
{
- ptr = (u8 *)&gBattleMons[gActiveBank];
- for (i = 0; i < (u32)0x58; i++)
- ptr[i] = 0;
+ MEMSET_ALT(&gBattleMons[gActiveBank], 0, 0x58, i, ptr);
}
else
{
u8 r0;
- ptr = (u8 *)&gBattleMons[gActiveBank];
- for (i = 0; i < (u32)0x58; i++)
- ptr[i] = gBattleBufferB[gActiveBank][4 + i];
-
+ MEMSET_ALT(&gBattleMons[gActiveBank], gBattleBufferB[gActiveBank][4 + i], 0x58, i, ptr);
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);
@@ -1943,11 +1873,7 @@ void bc_801333C(void)
if (gBattleExecBuffer == 0)
{
- struct
- {
- u16 hp;
- u32 status;
- } sp0[6];
+ struct HpAndStatus hpStatus[6];
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
{
@@ -1956,17 +1882,17 @@ void bc_801333C(void)
if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == 0
|| GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG)
{
- sp0[i].hp = 0xFFFF;
- sp0[i].status = 0;
+ hpStatus[i].hp = 0xFFFF;
+ hpStatus[i].status = 0;
}
else
{
- sp0[i].hp = GetMonData(&gEnemyParty[i], MON_DATA_HP);
- sp0[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS);
+ hpStatus[i].hp = GetMonData(&gEnemyParty[i], MON_DATA_HP);
+ hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS);
}
}
gActiveBank = GetBankByPlayerAI(1);
- Emitcmd48(0, (u8 *)sp0, 0x80);
+ EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
MarkBufferBankForExecution(gActiveBank);
for (i = 0; i < 6; i++)
@@ -1974,17 +1900,17 @@ void bc_801333C(void)
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == 0
|| GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG)
{
- sp0[i].hp = 0xFFFF;
- sp0[i].status = 0;
+ hpStatus[i].hp = 0xFFFF;
+ hpStatus[i].status = 0;
}
else
{
- sp0[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP);
- sp0[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
+ hpStatus[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP);
+ hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
}
}
gActiveBank = GetBankByPlayerAI(0);
- Emitcmd48(0, (u8 *)sp0, 0x80);
+ EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
MarkBufferBankForExecution(gActiveBank);
gBattleMainFunc = bc_battle_begin_message;
@@ -1999,13 +1925,13 @@ void bc_801333C(void)
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == 0
|| GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG)
{
- sp0[i].hp = 0xFFFF;
- sp0[i].status = 0;
+ hpStatus[i].hp = 0xFFFF;
+ hpStatus[i].status = 0;
}
else
{
- sp0[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP);
- sp0[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
+ hpStatus[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP);
+ hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
}
}
@@ -2189,7 +2115,7 @@ void BattleBeginFirstTurn(void)
;
for (i = 0; i < 4; i++)
{
- ewram[0x16068 + i] = 6;
+ ewram16068arr(i) = 6;
gActionForBanks[i] = 0xFF;
gChosenMovesByBanks[i] = 0;
}
@@ -2281,7 +2207,7 @@ void BattleTurnPassed(void)
gChosenMovesByBanks[i] = 0;
}
for (i = 0; i < 4; i++)
- ewram[0x16068 + i] = 6;
+ ewram16068arr(i) = 6;
ewram160A6 = gAbsentBankFlags;
gBattleMainFunc = sub_8012324;
gRandomTurnNumber = Random();
@@ -2355,23 +2281,23 @@ void sub_8012258(u8 a)
u8 r1;
for (i = 0; i < 3; i++)
- gUnknown_02038470[i] = ewram[0x1606C + i + a * 3];
+ gUnknown_02038470[i] = ewram1606Carr(i, a);
r4 = pokemon_order_func(gBattlePartyID[a]);
- r1 = pokemon_order_func(ewram[0x16068 + a]);
+ r1 = pokemon_order_func(ewram16068arr(a));
sub_8094C98(r4, r1);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
for (i = 0; i < 3; i++)
{
- ewram[0x1606C + i + a * 3] = gUnknown_02038470[i];
- ewram[0x1606C + i + (a ^ 2) * 3] = gUnknown_02038470[i];
+ ewram1606Carr(i, a) = gUnknown_02038470[i];
+ ewram1606Carr(i, (a ^ 2)) = gUnknown_02038470[i];
}
}
else
{
for (i = 0; i < 3; i++)
{
- ewram[0x1606C + i + a * 3] = gUnknown_02038470[i];
+ ewram1606Carr(i, a) = gUnknown_02038470[i];
}
}
}
@@ -2390,7 +2316,7 @@ void sub_8012324(void)
switch (gBattleCommunication[gActiveBank])
{
case 0:
- ewram[0x016068 + gActiveBank] = 6;
+ ewram16068arr(gActiveBank) = 6;
if (!(gBattleTypeFlags & 0x40)
&& (r5 & 2)
&& !(ewram160A6 & gBitTable[GetBankByPlayerAI(r5 ^ 2)])
diff --git a/src/battle/battle_3.c b/src/battle/battle_3.c
index b59757f00..f627e50f0 100644
--- a/src/battle/battle_3.c
+++ b/src/battle/battle_3.c
@@ -1,18 +1,20 @@
#include "global.h"
-#include "abilities.h"
+#include "constants/abilities.h"
#include "battle.h"
-#include "moves.h"
+#include "constants/moves.h"
#include "item.h"
-#include "items.h"
-#include "hold_effects.h"
-#include "species.h"
+#include "constants/items.h"
+#include "event_data.h"
+#include "constants/hold_effects.h"
+#include "constants/species.h"
#include "pokemon.h"
#include "data2.h"
-#include "rng.h"
+#include "random.h"
#include "text.h"
-#include "battle_move_effects.h"
+#include "constants/battle_move_effects.h"
#include "string_util.h"
-#include "flags.h"
+#include "constants/flags.h"
+#include "ewram.h"
extern u8* gBattlescriptCurrInstr;
extern u8 gActiveBank;
@@ -198,8 +200,6 @@ extern u8 gUnknown_081D996F[]; //disobedient, uses a random move
extern u8 gUnknown_081D9989[]; //disobedient, went to sleep
extern u8 gUnknown_081D99A0[]; //disobedient, hits itself
-#define CHOICED_MOVE(bank)(((u16*)(&ewram[bank * 2 + 0x160e8])))
-
//array entries for battle communication
#define MOVE_EFFECT_BYTE 0x3
#define MULTISTRING_CHOOSER 0x5
@@ -547,7 +547,7 @@ u8 UpdateTurnCounters(void)
else
gBattlescriptCurrInstr = gUnknown_081D8F7D;
- BATTLE_STRUCT->animArg1 = 0xC;
+ BATTLE_STRUCT->animArg1 = B_ANIM_SANDSTORM_CONTINUES;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
b_call_bc_move_exec(gBattlescriptCurrInstr);
effect++;
@@ -581,7 +581,7 @@ u8 UpdateTurnCounters(void)
else
gBattlescriptCurrInstr = gUnknown_081D8F7D;
- BATTLE_STRUCT->animArg1 = 0xD;
+ BATTLE_STRUCT->animArg1 = B_ANIM_HAIL_CONTINUES;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
b_call_bc_move_exec(gBattlescriptCurrInstr);
effect++;
@@ -722,12 +722,12 @@ u8 TurnBasedEffects(void)
gBattleMons[gActiveBank].status2 -= 0x2000;
if (gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) // damaged by wrap
{
- BATTLE_STRUCT->animArg1 = ewram[gActiveBank * 2 + 0x16004];
- BATTLE_STRUCT->animArg2 = ewram[gActiveBank * 2 + 0x16005];
+ BATTLE_STRUCT->animArg1 = ewram16004arr(0, gActiveBank);
+ BATTLE_STRUCT->animArg2 = ewram16004arr(1, gActiveBank);
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
- gBattleTextBuff1[2] = ewram[gActiveBank * 2 + 0x16004];
- gBattleTextBuff1[3] = ewram[gActiveBank * 2 + 0x16005];
+ gBattleTextBuff1[2] = ewram16004arr(0, gActiveBank);
+ gBattleTextBuff1[3] = ewram16004arr(1, gActiveBank);
gBattleTextBuff1[4] = EOS;
gBattlescriptCurrInstr = BattleScript_WrapTurnDmg;
gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16;
@@ -738,8 +738,8 @@ u8 TurnBasedEffects(void)
{
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
- gBattleTextBuff1[2] = ewram[gActiveBank * 2 + 0x16004];
- gBattleTextBuff1[3] = ewram[gActiveBank * 2 + 0x16005];
+ gBattleTextBuff1[2] = ewram16004arr(0, gActiveBank);
+ gBattleTextBuff1[3] = ewram16004arr(1, gActiveBank);
gBattleTextBuff1[4] = EOS;
gBattlescriptCurrInstr = BattleScript_WrapEnds;
}
@@ -1378,7 +1378,7 @@ bool8 sub_8018018(u8 bank, u8 r1, u8 r2)
r2 = gBattlePartyID[r6];
for (i = 0; i < 6; i++)
{
- if (GetMonData(&party[i], MON_DATA_HP) && GetMonData(&party[i], MON_DATA_SPECIES2) && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG && i != r1 && i != r2 && i != ewram[r7 + 0x16068] && i != ewram[r6 + 0x16068])
+ if (GetMonData(&party[i], MON_DATA_HP) && GetMonData(&party[i], MON_DATA_SPECIES2) && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG && i != r1 && i != r2 && i != ewram16068arr(r7) && i != ewram16068arr(r6))
break;
}
return (i == 6);
@@ -1434,15 +1434,6 @@ u8 CastformDataTypeChange(u8 bank)
return formChange;
}
-#ifdef NONMATCHING
-
-struct Struct2017100
-{
- u32 arr[4];
-};
-
-#define ewram17100 (*(struct Struct2017100 *)(ewram + 0x17100))
-
u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
u8 effect = 0;
@@ -1475,13 +1466,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) // why isn't that check done at the beginning?
{
- //_08018436
- int i; // r4
+ u8 moveType;
+ s32 i;
u16 move;
- // Hmm...
- #define moveType moveArg
- //u16 moveType;
u8 side;
+ u8 target1;
if (special)
gLastUsedAbility = special;
@@ -1517,7 +1506,7 @@ 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 = 0xA;
+ BATTLE_STRUCT->animArg1 = B_ANIM_RAIN_CONTINUES;
BATTLE_STRUCT->scriptingActive = bank;
effect++;
}
@@ -1526,7 +1515,7 @@ 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 = 0xC;
+ BATTLE_STRUCT->animArg1 = B_ANIM_SANDSTORM_CONTINUES;
BATTLE_STRUCT->scriptingActive = bank;
effect++;
}
@@ -1535,7 +1524,7 @@ 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 = 0xB;
+ BATTLE_STRUCT->animArg1 = B_ANIM_SUN_CONTINUES;
BATTLE_STRUCT->scriptingActive = bank;
effect++;
}
@@ -1607,17 +1596,14 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
case ABILITY_AIR_LOCK:
//_080187DC
{
- u8 i;
-
- for (i = 0; i < gNoOfAllBanks; i++)
+ // that's a weird choice for a variable, why not use i or bank?
+ for (target1 = 0; target1 < gNoOfAllBanks; target1++)
{
- // TODO: i should be in r6 here
- //asm("":::"r4","r5");
- effect = CastformDataTypeChange(i);
+ effect = CastformDataTypeChange(target1);
if (effect != 0)
{
b_push_move_exec(BattleScript_CastformChange);
- BATTLE_STRUCT->scriptingActive = i;
+ BATTLE_STRUCT->scriptingActive = target1;
BATTLE_STRUCT->castformToChangeInto = effect - 1;
break;
}
@@ -1637,7 +1623,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (WEATHER_HAS_EFFECT && (gBattleWeather & WEATHER_RAIN_ANY)
&& gBattleMons[bank].maxHP > gBattleMons[bank].hp)
{
- gLastUsedAbility = ABILITY_RAIN_DISH; //why
+ gLastUsedAbility = ABILITY_RAIN_DISH; // why
b_push_move_exec(BattleScript_RainDishActivates);
gBattleMoveDamage = gBattleMons[bank].maxHP / 16;
if (gBattleMoveDamage == 0)
@@ -1660,7 +1646,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (gBattleMons[bank].status1 & STATUS_FREEZE)
StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn);
gBattleMons[bank].status1 = 0;
- //gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); fixed in Emerald
+ // 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);
@@ -1732,14 +1719,14 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
case ABILITY_FLASH_FIRE:
if (moveType == TYPE_FIRE && !(gBattleMons[bank].status1 & STATUS_FREEZE))
{
- if (!(ewram17100.arr[bank] & 1))
+ if (!(eFlashFireArr.arr[bank] & 1))
{
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
if (gProtectStructs[gBankAttacker].notFirstStrike)
gBattlescriptCurrInstr = BattleScript_FlashFireBoost;
else
gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss;
- ewram17100.arr[bank] |= 1;
+ eFlashFireArr.arr[bank] |= 1;
effect = 2;
}
else
@@ -1759,9 +1746,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (gBattleMons[bank].maxHP == gBattleMons[bank].hp)
{
if ((gProtectStructs[gBankAttacker].notFirstStrike))
- gBattlescriptCurrInstr = BattleScript_MoveHPDrain;
+ gBattlescriptCurrInstr = BattleScript_MoveHPDrain_FullHP;
else
- gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss;
+ gBattlescriptCurrInstr = BattleScript_MoveHPDrain_FullHP_PPLoss;
}
else
{
@@ -1910,27 +1897,26 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
case ABILITYEFFECT_IMMUNITY: // 5
//_08019448
{
- #define i bank
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (bank = 0; bank < gNoOfAllBanks; bank++)
{
- switch (gBattleMons[i].ability)
+ switch (gBattleMons[bank].ability)
{
case ABILITY_IMMUNITY:
- if (gBattleMons[i].status1 & (STATUS_POISON | STATUS_TOXIC_POISON | 0xF00)) // TODO: what is 0xF00?
+ if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON | 0xF00)) // TODO: what is 0xF00?
{
StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn);
effect = 1;
}
break;
case ABILITY_OWN_TEMPO:
- if (gBattleMons[i].status2 & STATUS2_CONFUSION)
+ if (gBattleMons[bank].status2 & STATUS2_CONFUSION)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn);
effect = 2;
}
break;
case ABILITY_LIMBER:
- if (gBattleMons[i].status1 & STATUS_PARALYSIS)
+ if (gBattleMons[bank].status1 & STATUS_PARALYSIS)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn);
effect = 1;
@@ -1938,29 +1924,29 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
break;
case ABILITY_INSOMNIA:
case ABILITY_VITAL_SPIRIT:
- if (gBattleMons[i].status1 & STATUS_SLEEP)
+ if (gBattleMons[bank].status1 & STATUS_SLEEP)
{
- gBattleMons[i].status2 &= ~(STATUS2_NIGHTMARE);
+ gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE);
StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn);
effect = 1;
}
break;
case ABILITY_WATER_VEIL:
- if (gBattleMons[i].status1 & STATUS_BURN)
+ if (gBattleMons[bank].status1 & STATUS_BURN)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn);
effect = 1;
}
break;
case ABILITY_MAGMA_ARMOR:
- if (gBattleMons[i].status1 & STATUS_FREEZE)
+ if (gBattleMons[bank].status1 & STATUS_FREEZE)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn);
effect = 1;
}
break;
case ABILITY_OBLIVIOUS:
- if (gBattleMons[i].status2 & STATUS2_INFATUATION)
+ if (gBattleMons[bank].status2 & STATUS2_INFATUATION)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn);
effect = 3;
@@ -1972,46 +1958,43 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
switch (effect)
{
case 1: // status cleared
- gBattleMons[i].status1 = 0;
+ gBattleMons[bank].status1 = 0;
break;
case 2: // get rid of confusion
- gBattleMons[i].status2 &= ~(STATUS2_CONFUSION);
+ gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION);
break;
case 3: // get rid of infatuation
- gBattleMons[i].status2 &= ~(STATUS2_INFATUATION);
+ gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION);
break;
}
b_movescr_stack_push_cursor();
gBattlescriptCurrInstr = gUnknown_081D9956;
- BATTLE_STRUCT->scriptingActive = i;
- gActiveBank = i;
+ BATTLE_STRUCT->scriptingActive = bank;
+ gActiveBank = bank;
EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
return effect;
}
}
- #undef i
}
break;
case ABILITYEFFECT_FORECAST: // 6
//_080197B4
{
- #define i bank
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (bank = 0; bank < gNoOfAllBanks; bank++)
{
- if (gBattleMons[i].ability == ABILITY_FORECAST)
+ if (gBattleMons[bank].ability == ABILITY_FORECAST)
{
- effect = CastformDataTypeChange(i);
+ effect = CastformDataTypeChange(bank);
if (effect)
{
b_push_move_exec(BattleScript_CastformChange);
- BATTLE_STRUCT->scriptingActive = i;
+ BATTLE_STRUCT->scriptingActive = bank;
BATTLE_STRUCT->castformToChangeInto = effect - 1;
return effect;
}
}
}
- #undef i
}
break;
case ABILITYEFFECT_SYNCHRONIZE: // 7
@@ -2067,16 +2050,17 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE))
{
- u8 opposite = (GetBankIdentity(i) ^ 1) & 1;
- u8 target1 = GetBankByPlayerAI(opposite);
- u8 target2 = GetBankByPlayerAI(opposite + 2);
+ u8 target2;
+ side = (GetBankIdentity(i) ^ 1) & 1;
+ target1 = GetBankByPlayerAI(side);
+ target2 = GetBankByPlayerAI(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) | opposite);
+ gActiveBank = GetBankByPlayerAI(((Random() & 1) * 2) | side);
gBattleMons[i].ability = gBattleMons[gActiveBank].ability;
gLastUsedAbility = gBattleMons[gActiveBank].ability;
effect++;
@@ -2266,3355 +2250,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
return effect;
}
-#else
-__attribute__((naked))
-u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
-{
- 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, 0x28\n\
- ldr r4, [sp, 0x48]\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- str r0, [sp, 0x4]\n\
- lsls r1, 24\n\
- lsrs r1, 24\n\
- mov r10, r1\n\
- lsls r2, 24\n\
- lsrs r6, r2, 24\n\
- lsls r3, 24\n\
- lsrs r3, 24\n\
- mov r8, r3\n\
- lsls r4, 16\n\
- lsrs r4, 16\n\
- movs r0, 0\n\
- mov r9, r0\n\
- ldr r5, _08018380 @ =gBankAttacker\n\
- ldr r1, _08018384 @ =gNoOfAllBanks\n\
- ldrb r0, [r5]\n\
- ldrb r1, [r1]\n\
- cmp r0, r1\n\
- bcc _08018360\n\
- mov r1, r10\n\
- strb r1, [r5]\n\
-_08018360:\n\
- ldrb r0, [r5]\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _08018390\n\
- ldr r1, _08018388 @ =gBattlePartyID\n\
- ldrb r0, [r5]\n\
- lsls r0, 1\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- movs r0, 0x64\n\
- muls r1, r0\n\
- ldr r0, _0801838C @ =gPlayerParty\n\
- b _080183A0\n\
- .align 2, 0\n\
-_08018380: .4byte gBankAttacker\n\
-_08018384: .4byte gNoOfAllBanks\n\
-_08018388: .4byte gBattlePartyID\n\
-_0801838C: .4byte gPlayerParty\n\
-_08018390:\n\
- ldr r1, _080183D0 @ =gBattlePartyID\n\
- ldrb r0, [r5]\n\
- lsls r0, 1\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- movs r0, 0x64\n\
- muls r1, r0\n\
- ldr r0, _080183D4 @ =gEnemyParty\n\
-_080183A0:\n\
- adds r7, r1, r0\n\
- ldr r5, _080183D8 @ =gBankTarget\n\
- ldr r1, _080183DC @ =gNoOfAllBanks\n\
- ldrb r0, [r5]\n\
- ldrb r1, [r1]\n\
- cmp r0, r1\n\
- bcc _080183B2\n\
- mov r2, r10\n\
- strb r2, [r5]\n\
-_080183B2:\n\
- ldrb r0, [r5]\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _080183E4\n\
- ldr r1, _080183D0 @ =gBattlePartyID\n\
- ldrb r0, [r5]\n\
- lsls r0, 1\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- movs r0, 0x64\n\
- muls r1, r0\n\
- ldr r0, _080183E0 @ =gPlayerParty\n\
- b _080183F4\n\
- .align 2, 0\n\
-_080183D0: .4byte gBattlePartyID\n\
-_080183D4: .4byte gEnemyParty\n\
-_080183D8: .4byte gBankTarget\n\
-_080183DC: .4byte gNoOfAllBanks\n\
-_080183E0: .4byte gPlayerParty\n\
-_080183E4:\n\
- ldr r1, _08018444 @ =gBattlePartyID\n\
- ldrb r0, [r5]\n\
- lsls r0, 1\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- movs r0, 0x64\n\
- muls r1, r0\n\
- ldr r0, _08018448 @ =gEnemyParty\n\
-_080183F4:\n\
- adds r5, r1, r0\n\
- adds r0, r7, 0\n\
- movs r1, 0xB\n\
- bl GetMonData\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- str r0, [sp, 0x8]\n\
- adds r0, r7, 0\n\
- movs r1, 0\n\
- bl GetMonData\n\
- str r0, [sp, 0x10]\n\
- adds r0, r5, 0\n\
- movs r1, 0xB\n\
- bl GetMonData\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- str r0, [sp, 0xC]\n\
- adds r0, r5, 0\n\
- movs r1, 0\n\
- bl GetMonData\n\
- str r0, [sp, 0x14]\n\
- ldr r0, _0801844C @ =gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- movs r0, 0x80\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08018436\n\
- bl _08019F92\n\
-_08018436:\n\
- mov r3, r8\n\
- cmp r3, 0\n\
- beq _08018454\n\
- ldr r0, _08018450 @ =gLastUsedAbility\n\
- strb r3, [r0]\n\
- mov r8, r0\n\
- b _0801846A\n\
- .align 2, 0\n\
-_08018444: .4byte gBattlePartyID\n\
-_08018448: .4byte gEnemyParty\n\
-_0801844C: .4byte gBattleTypeFlags\n\
-_08018450: .4byte gLastUsedAbility\n\
-_08018454:\n\
- ldr r2, _08018474 @ =gLastUsedAbility\n\
- ldr r1, _08018478 @ =gBattleMons\n\
- movs r0, 0x58\n\
- mov r5, r10\n\
- muls r5, r0\n\
- adds r0, r5, 0\n\
- adds r0, r1\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- strb r0, [r2]\n\
- mov r8, r2\n\
-_0801846A:\n\
- cmp r4, 0\n\
- beq _0801847C\n\
- adds r3, r4, 0\n\
- b _08018480\n\
- .align 2, 0\n\
-_08018474: .4byte gLastUsedAbility\n\
-_08018478: .4byte gBattleMons\n\
-_0801847C:\n\
- ldr r0, _08018494 @ =gCurrentMove\n\
- ldrh r3, [r0]\n\
-_08018480:\n\
- ldr r1, _08018498 @ =0x02000000\n\
- ldr r2, _0801849C @ =0x0001601c\n\
- adds r0, r1, r2\n\
- ldrb r0, [r0]\n\
- adds r7, r1, 0\n\
- cmp r0, 0\n\
- beq _080184A0\n\
- movs r4, 0x3F\n\
- ands r4, r0\n\
- b _080184AC\n\
- .align 2, 0\n\
-_08018494: .4byte gCurrentMove\n\
-_08018498: .4byte 0x02000000\n\
-_0801849C: .4byte 0x0001601c\n\
-_080184A0:\n\
- ldr r1, _080184C0 @ =gBattleMoves\n\
- lsls r0, r3, 1\n\
- adds r0, r3\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrb r4, [r0, 0x2]\n\
-_080184AC:\n\
- ldr r5, [sp, 0x4]\n\
- cmp r5, 0x13\n\
- bls _080184B6\n\
- bl _08019F76\n\
-_080184B6:\n\
- lsls r0, r5, 2\n\
- ldr r1, _080184C4 @ =_080184C8\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
-_080184C0: .4byte gBattleMoves\n\
-_080184C4: .4byte _080184C8\n\
- .align 2, 0\n\
-_080184C8:\n\
- .4byte _08018518\n\
- .4byte _08018814\n\
- .4byte _08018A40\n\
- .4byte _08018AD8\n\
- .4byte _08018CF0\n\
- .4byte _08019448\n\
- .4byte _080197B4\n\
- .4byte _08019804\n\
- .4byte _08019880\n\
- .4byte _080198FC\n\
- .4byte _08019B1C\n\
- .4byte _08019940\n\
- .4byte _08019B60\n\
- .4byte _08019BBC\n\
- .4byte _08019C18\n\
- .4byte _08019D18\n\
- .4byte _08019D5C\n\
- .4byte _08019DB8\n\
- .4byte _08019F44\n\
- .4byte _08019CD4\n\
-_08018518:\n\
- ldr r2, _0801854C @ =gBankAttacker\n\
- ldr r0, _08018550 @ =gNoOfAllBanks\n\
- ldrb r1, [r2]\n\
- adds r5, r0, 0\n\
- ldrb r0, [r5]\n\
- cmp r1, r0\n\
- bcc _0801852A\n\
- mov r1, r10\n\
- strb r1, [r2]\n\
-_0801852A:\n\
- mov r2, r8\n\
- ldrb r0, [r2]\n\
- cmp r0, 0x2D\n\
- bne _08018534\n\
- b _080186B8\n\
-_08018534:\n\
- cmp r0, 0x2D\n\
- bgt _08018564\n\
- cmp r0, 0xD\n\
- bne _0801853E\n\
- b _080187DC\n\
-_0801853E:\n\
- cmp r0, 0xD\n\
- bgt _08018554\n\
- cmp r0, 0x2\n\
- bne _08018548\n\
- b _08018680\n\
-_08018548:\n\
- bl _08019F76\n\
- .align 2, 0\n\
-_0801854C: .4byte gBankAttacker\n\
-_08018550: .4byte gNoOfAllBanks\n\
-_08018554:\n\
- cmp r0, 0x16\n\
- bne _0801855A\n\
- b _08018728\n\
-_0801855A:\n\
- cmp r0, 0x24\n\
- bne _08018560\n\
- b _080187A0\n\
-_08018560:\n\
- bl _08019F76\n\
-_08018564:\n\
- cmp r0, 0x46\n\
- bne _0801856A\n\
- b _080186F0\n\
-_0801856A:\n\
- cmp r0, 0x46\n\
- bgt _08018578\n\
- cmp r0, 0x3B\n\
- bne _08018574\n\
- b _0801875C\n\
-_08018574:\n\
- bl _08019F76\n\
-_08018578:\n\
- cmp r0, 0x4D\n\
- bne _0801857E\n\
- b _080187DC\n\
-_0801857E:\n\
- cmp r0, 0xFF\n\
- beq _08018586\n\
- bl _08019F76\n\
-_08018586:\n\
- bl weather_get_current\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- subs r0, 0x3\n\
- cmp r0, 0xA\n\
- bhi _0801864C\n\
- lsls r0, 2\n\
- ldr r1, _080185A0 @ =_080185A4\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
-_080185A0: .4byte _080185A4\n\
- .align 2, 0\n\
-_080185A4:\n\
- .4byte _080185D0\n\
- .4byte _0801864C\n\
- .4byte _080185D0\n\
- .4byte _0801864C\n\
- .4byte _0801864C\n\
- .4byte _080185F8\n\
- .4byte _0801864C\n\
- .4byte _0801864C\n\
- .4byte _0801864C\n\
- .4byte _08018620\n\
- .4byte _080185D0\n\
-_080185D0:\n\
- ldr r2, _080185EC @ =gBattleWeather\n\
- ldrh r1, [r2]\n\
- movs r0, 0x7\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0801864C\n\
- movs r0, 0x5\n\
- strh r0, [r2]\n\
- ldr r0, _080185F0 @ =0x02000000\n\
- ldr r3, _080185F4 @ =0x000160a4\n\
- adds r2, r0, r3\n\
- movs r1, 0xA\n\
- b _08018638\n\
- .align 2, 0\n\
-_080185EC: .4byte gBattleWeather\n\
-_080185F0: .4byte 0x02000000\n\
-_080185F4: .4byte 0x000160a4\n\
-_080185F8:\n\
- ldr r3, _08018614 @ =gBattleWeather\n\
- ldrh r1, [r3]\n\
- movs r2, 0x18\n\
- adds r0, r2, 0\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0801864C\n\
- strh r2, [r3]\n\
- ldr r0, _08018618 @ =0x02000000\n\
- ldr r3, _0801861C @ =0x000160a4\n\
- adds r2, r0, r3\n\
- movs r1, 0xC\n\
- b _08018638\n\
- .align 2, 0\n\
-_08018614: .4byte gBattleWeather\n\
-_08018618: .4byte 0x02000000\n\
-_0801861C: .4byte 0x000160a4\n\
-_08018620:\n\
- ldr r3, _08018668 @ =gBattleWeather\n\
- ldrh r1, [r3]\n\
- movs r2, 0x60\n\
- adds r0, r2, 0\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0801864C\n\
- strh r2, [r3]\n\
- ldr r0, _0801866C @ =0x02000000\n\
- ldr r3, _08018670 @ =0x000160a4\n\
- adds r2, r0, r3\n\
- movs r1, 0xB\n\
-_08018638:\n\
- strb r1, [r2]\n\
- ldr r5, _08018674 @ =0x00016003\n\
- adds r0, r5\n\
- mov r1, r10\n\
- strb r1, [r0]\n\
- mov r0, r9\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_0801864C:\n\
- mov r2, r9\n\
- cmp r2, 0\n\
- bne _08018656\n\
- bl _08019F92\n\
-_08018656:\n\
- bl weather_get_current\n\
- ldr r1, _08018678 @ =gBattleCommunication\n\
- strb r0, [r1, 0x5]\n\
- ldr r0, _0801867C @ =gUnknown_081D901D\n\
- bl b_push_move_exec\n\
- bl _08019F76\n\
- .align 2, 0\n\
-_08018668: .4byte gBattleWeather\n\
-_0801866C: .4byte 0x02000000\n\
-_08018670: .4byte 0x000160a4\n\
-_08018674: .4byte 0x00016003\n\
-_08018678: .4byte gBattleCommunication\n\
-_0801867C: .4byte gUnknown_081D901D\n\
-_08018680:\n\
- ldr r2, _080186A8 @ =gBattleWeather\n\
- ldrh r1, [r2]\n\
- movs r0, 0x4\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08018690\n\
- bl _08019F76\n\
-_08018690:\n\
- movs r0, 0x5\n\
- strh r0, [r2]\n\
- ldr r0, _080186AC @ =BattleScript_DrizzleActivates\n\
- bl b_push_move_exec\n\
- ldr r0, _080186B0 @ =0x02000000\n\
- ldr r3, _080186B4 @ =0x00016003\n\
- adds r0, r3\n\
- mov r5, r10\n\
- strb r5, [r0]\n\
- bl _08019F22\n\
- .align 2, 0\n\
-_080186A8: .4byte gBattleWeather\n\
-_080186AC: .4byte BattleScript_DrizzleActivates\n\
-_080186B0: .4byte 0x02000000\n\
-_080186B4: .4byte 0x00016003\n\
-_080186B8:\n\
- ldr r2, _080186E0 @ =gBattleWeather\n\
- ldrh r1, [r2]\n\
- movs r0, 0x10\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080186C8\n\
- bl _08019F76\n\
-_080186C8:\n\
- movs r0, 0x18\n\
- strh r0, [r2]\n\
- ldr r0, _080186E4 @ =BattleScript_SandstreamActivates\n\
- bl b_push_move_exec\n\
- ldr r0, _080186E8 @ =0x02000000\n\
- ldr r1, _080186EC @ =0x00016003\n\
- adds r0, r1\n\
- mov r2, r10\n\
- strb r2, [r0]\n\
- bl _08019F22\n\
- .align 2, 0\n\
-_080186E0: .4byte gBattleWeather\n\
-_080186E4: .4byte BattleScript_SandstreamActivates\n\
-_080186E8: .4byte 0x02000000\n\
-_080186EC: .4byte 0x00016003\n\
-_080186F0:\n\
- ldr r2, _08018718 @ =gBattleWeather\n\
- ldrh r1, [r2]\n\
- movs r0, 0x40\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08018700\n\
- bl _08019F76\n\
-_08018700:\n\
- movs r0, 0x60\n\
- strh r0, [r2]\n\
- ldr r0, _0801871C @ =BattleScript_DroughtActivates\n\
- bl b_push_move_exec\n\
- ldr r0, _08018720 @ =0x02000000\n\
- ldr r3, _08018724 @ =0x00016003\n\
- adds r0, r3\n\
- mov r5, r10\n\
- strb r5, [r0]\n\
- bl _08019F22\n\
- .align 2, 0\n\
-_08018718: .4byte gBattleWeather\n\
-_0801871C: .4byte BattleScript_DroughtActivates\n\
-_08018720: .4byte 0x02000000\n\
-_08018724: .4byte 0x00016003\n\
-_08018728:\n\
- ldr r0, _08018754 @ =gSpecialStatuses\n\
- mov r1, r10\n\
- lsls r2, r1, 2\n\
- adds r1, r2, r1\n\
- lsls r1, 2\n\
- adds r3, r1, r0\n\
- ldrb r0, [r3]\n\
- lsls r0, 28\n\
- cmp r0, 0\n\
- bge _08018740\n\
- bl _08019F76\n\
-_08018740:\n\
- ldr r1, _08018758 @ =gStatuses3\n\
- adds r1, r2, r1\n\
- ldr r0, [r1]\n\
- movs r2, 0x80\n\
- lsls r2, 12\n\
- orrs r0, r2\n\
- str r0, [r1]\n\
- ldrb r0, [r3]\n\
- movs r1, 0x8\n\
- b _080187CA\n\
- .align 2, 0\n\
-_08018754: .4byte gSpecialStatuses\n\
-_08018758: .4byte gStatuses3\n\
-_0801875C:\n\
- mov r0, r10\n\
- bl CastformDataTypeChange\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
- cmp r0, 0\n\
- bne _08018770\n\
- bl _08019F92\n\
-_08018770:\n\
- ldr r0, _08018790 @ =BattleScript_CastformChange\n\
- bl b_push_move_exec\n\
- ldr r0, _08018794 @ =0x02000000\n\
- ldr r2, _08018798 @ =0x00016003\n\
- adds r1, r0, r2\n\
- mov r3, r10\n\
- strb r3, [r1]\n\
- mov r1, r9\n\
- subs r1, 0x1\n\
- ldr r5, _0801879C @ =0x0001609b\n\
- adds r0, r5\n\
- strb r1, [r0]\n\
- bl _08019F76\n\
- .align 2, 0\n\
-_08018790: .4byte BattleScript_CastformChange\n\
-_08018794: .4byte 0x02000000\n\
-_08018798: .4byte 0x00016003\n\
-_0801879C: .4byte 0x0001609b\n\
-_080187A0:\n\
- ldr r0, _080187D4 @ =gSpecialStatuses\n\
- mov r1, r10\n\
- lsls r2, r1, 2\n\
- adds r1, r2, r1\n\
- lsls r1, 2\n\
- adds r3, r1, r0\n\
- ldrb r0, [r3]\n\
- lsls r0, 27\n\
- cmp r0, 0\n\
- bge _080187B8\n\
- bl _08019F76\n\
-_080187B8:\n\
- ldr r1, _080187D8 @ =gStatuses3\n\
- adds r1, r2, r1\n\
- ldr r0, [r1]\n\
- movs r2, 0x80\n\
- lsls r2, 13\n\
- orrs r0, r2\n\
- str r0, [r1]\n\
- ldrb r0, [r3]\n\
- movs r1, 0x10\n\
-_080187CA:\n\
- orrs r0, r1\n\
- strb r0, [r3]\n\
- bl _08019F76\n\
- .align 2, 0\n\
-_080187D4: .4byte gSpecialStatuses\n\
-_080187D8: .4byte gStatuses3\n\
-_080187DC:\n\
- movs r6, 0\n\
- ldrb r5, [r5]\n\
- cmp r6, r5\n\
- bcc _080187E8\n\
- bl _08019F76\n\
-_080187E8:\n\
- adds r0, r6, 0\n\
- bl CastformDataTypeChange\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
- cmp r0, 0\n\
- beq _080187FC\n\
- bl _08019E14\n\
-_080187FC:\n\
- adds r0, r6, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- ldr r0, _08018810 @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r6, r0\n\
- bcc _080187E8\n\
- bl _08019F76\n\
- .align 2, 0\n\
-_08018810: .4byte gNoOfAllBanks\n\
-_08018814:\n\
- ldr r2, _08018844 @ =gBattleMons\n\
- movs r0, 0x58\n\
- mov r1, r10\n\
- muls r1, r0\n\
- adds r4, r1, r2\n\
- ldrh r0, [r4, 0x28]\n\
- cmp r0, 0\n\
- bne _08018828\n\
- bl _08019F76\n\
-_08018828:\n\
- ldr r0, _08018848 @ =gBankAttacker\n\
- mov r3, r10\n\
- strb r3, [r0]\n\
- mov r3, r8\n\
- ldrb r5, [r3]\n\
- cmp r5, 0x2C\n\
- beq _0801885A\n\
- cmp r5, 0x2C\n\
- bgt _0801884C\n\
- cmp r5, 0x3\n\
- bne _08018840\n\
- b _080189B8\n\
-_08018840:\n\
- bl _08019F76\n\
- .align 2, 0\n\
-_08018844: .4byte gBattleMons\n\
-_08018848: .4byte gBankAttacker\n\
-_0801884C:\n\
- cmp r5, 0x36\n\
- bne _08018852\n\
- b _08018A18\n\
-_08018852:\n\
- cmp r5, 0x3D\n\
- beq _080188DC\n\
- bl _08019F76\n\
-_0801885A:\n\
- movs r0, 0\n\
- str r0, [sp]\n\
- movs r0, 0x13\n\
- movs r1, 0\n\
- movs r2, 0xD\n\
- movs r3, 0\n\
- bl AbilityBattleEffects\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0\n\
- beq _08018876\n\
- bl _08019F76\n\
-_08018876:\n\
- str r0, [sp]\n\
- movs r0, 0x13\n\
- movs r1, 0\n\
- movs r2, 0x4D\n\
- movs r3, 0\n\
- bl AbilityBattleEffects\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _0801888E\n\
- bl _08019F76\n\
-_0801888E:\n\
- ldr r0, _080188D0 @ =gBattleWeather\n\
- ldrh r1, [r0]\n\
- movs r0, 0x7\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0801889E\n\
- bl _08019F76\n\
-_0801889E:\n\
- ldrh r0, [r4, 0x2C]\n\
- ldrh r1, [r4, 0x28]\n\
- cmp r0, r1\n\
- bhi _080188AA\n\
- bl _08019F76\n\
-_080188AA:\n\
- mov r2, r8\n\
- strb r5, [r2]\n\
- ldr r0, _080188D4 @ =BattleScript_RainDishActivates\n\
- bl b_push_move_exec\n\
- ldr r1, _080188D8 @ =gBattleMoveDamage\n\
- ldrh r0, [r4, 0x2C]\n\
- lsrs r0, 4\n\
- str r0, [r1]\n\
- cmp r0, 0\n\
- bne _080188C4\n\
- movs r0, 0x1\n\
- str r0, [r1]\n\
-_080188C4:\n\
- ldr r0, [r1]\n\
- negs r0, r0\n\
- str r0, [r1]\n\
- bl _08019F22\n\
- .align 2, 0\n\
-_080188D0: .4byte gBattleWeather\n\
-_080188D4: .4byte BattleScript_RainDishActivates\n\
-_080188D8: .4byte gBattleMoveDamage\n\
-_080188DC:\n\
- adds r0, r2, 0\n\
- adds r0, 0x4C\n\
- adds r5, r1, r0\n\
- ldrb r0, [r5]\n\
- cmp r0, 0\n\
- bne _080188EC\n\
- bl _08019F76\n\
-_080188EC:\n\
- bl Random\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x3\n\
- bl __umodsi3\n\
- lsls r0, 16\n\
- lsrs r4, r0, 16\n\
- cmp r4, 0\n\
- beq _08018906\n\
- bl _08019F76\n\
-_08018906:\n\
- ldr r0, [r5]\n\
- movs r1, 0x88\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08018918\n\
- ldr r0, _08018990 @ =gBattleTextBuff1\n\
- ldr r1, _08018994 @ =gStatusConditionString_PoisonJpn\n\
- bl StringCopy\n\
-_08018918:\n\
- ldr r0, [r5]\n\
- movs r1, 0x7\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0801892A\n\
- ldr r0, _08018990 @ =gBattleTextBuff1\n\
- ldr r1, _08018998 @ =gStatusConditionString_SleepJpn\n\
- bl StringCopy\n\
-_0801892A:\n\
- ldr r0, [r5]\n\
- movs r1, 0x40\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0801893C\n\
- ldr r0, _08018990 @ =gBattleTextBuff1\n\
- ldr r1, _0801899C @ =gStatusConditionString_ParalysisJpn\n\
- bl StringCopy\n\
-_0801893C:\n\
- ldr r0, [r5]\n\
- movs r1, 0x10\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0801894E\n\
- ldr r0, _08018990 @ =gBattleTextBuff1\n\
- ldr r1, _080189A0 @ =gStatusConditionString_BurnJpn\n\
- bl StringCopy\n\
-_0801894E:\n\
- ldr r0, [r5]\n\
- movs r1, 0x20\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08018960\n\
- ldr r0, _08018990 @ =gBattleTextBuff1\n\
- ldr r1, _080189A4 @ =gStatusConditionString_IceJpn\n\
- bl StringCopy\n\
-_08018960:\n\
- str r4, [r5]\n\
- ldr r0, _080189A8 @ =0x02000000\n\
- ldr r4, _080189AC @ =gActiveBank\n\
- mov r3, r10\n\
- strb r3, [r4]\n\
- ldr r1, _080189B0 @ =0x00016003\n\
- adds r0, r1\n\
- strb r3, [r0]\n\
- ldr r0, _080189B4 @ =BattleScript_ShedSkinActivates\n\
- bl b_push_move_exec\n\
- str r5, [sp]\n\
- movs r0, 0\n\
- movs r1, 0x28\n\
- movs r2, 0\n\
- movs r3, 0x4\n\
- bl EmitSetAttributes\n\
- ldrb r0, [r4]\n\
- bl MarkBufferBankForExecution\n\
- bl _08019F22\n\
- .align 2, 0\n\
-_08018990: .4byte gBattleTextBuff1\n\
-_08018994: .4byte gStatusConditionString_PoisonJpn\n\
-_08018998: .4byte gStatusConditionString_SleepJpn\n\
-_0801899C: .4byte gStatusConditionString_ParalysisJpn\n\
-_080189A0: .4byte gStatusConditionString_BurnJpn\n\
-_080189A4: .4byte gStatusConditionString_IceJpn\n\
-_080189A8: .4byte 0x02000000\n\
-_080189AC: .4byte gActiveBank\n\
-_080189B0: .4byte 0x00016003\n\
-_080189B4: .4byte BattleScript_ShedSkinActivates\n\
-_080189B8:\n\
- ldrb r2, [r4, 0x1B]\n\
- movs r0, 0x1B\n\
- ldrsb r0, [r4, r0]\n\
- cmp r0, 0xB\n\
- ble _080189C6\n\
- bl _08019F76\n\
-_080189C6:\n\
- ldr r0, _08018A04 @ =gDisableStructs\n\
- mov r3, r10\n\
- lsls r1, r3, 3\n\
- subs r1, r3\n\
- lsls r1, 2\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x16]\n\
- cmp r0, 0x2\n\
- bne _080189DC\n\
- bl _08019F76\n\
-_080189DC:\n\
- adds r0, r2, 0x1\n\
- movs r2, 0\n\
- strb r0, [r4, 0x1B]\n\
- ldr r5, _08018A08 @ =0x000160a4\n\
- adds r1, r7, r5\n\
- movs r0, 0x11\n\
- strb r0, [r1]\n\
- ldr r1, _08018A0C @ =0x000160a5\n\
- adds r0, r7, r1\n\
- strb r2, [r0]\n\
- ldr r0, _08018A10 @ =BattleScript_SpeedBoostActivates\n\
- bl b_push_move_exec\n\
- ldr r2, _08018A14 @ =0x00016003\n\
- adds r0, r7, r2\n\
- mov r3, r10\n\
- strb r3, [r0]\n\
- bl _08019F22\n\
- .align 2, 0\n\
-_08018A04: .4byte gDisableStructs\n\
-_08018A08: .4byte 0x000160a4\n\
-_08018A0C: .4byte 0x000160a5\n\
-_08018A10: .4byte BattleScript_SpeedBoostActivates\n\
-_08018A14: .4byte 0x00016003\n\
-_08018A18:\n\
- ldr r2, _08018A3C @ =gDisableStructs\n\
- ldrb r0, [r0]\n\
- lsls r1, r0, 3\n\
- subs r1, r0\n\
- lsls r1, 2\n\
- adds r1, r2\n\
- ldrb r3, [r1, 0x18]\n\
- lsls r0, r3, 31\n\
- lsrs r0, 31\n\
- movs r2, 0x1\n\
- eors r2, r0\n\
- movs r0, 0x2\n\
- negs r0, r0\n\
- ands r0, r3\n\
- orrs r0, r2\n\
- strb r0, [r1, 0x18]\n\
- bl _08019F76\n\
- .align 2, 0\n\
-_08018A3C: .4byte gDisableStructs\n\
-_08018A40:\n\
- mov r5, r8\n\
- ldrb r0, [r5]\n\
- cmp r0, 0x2B\n\
- beq _08018A4C\n\
- bl _08019F76\n\
-_08018A4C:\n\
- movs r4, 0\n\
- ldr r0, _08018ABC @ =gSoundMovesTable\n\
- ldrh r2, [r0]\n\
- ldr r5, _08018AC0 @ =0x0000ffff\n\
- adds r1, r0, 0\n\
- cmp r2, r5\n\
- bne _08018A5E\n\
- bl _08019F76\n\
-_08018A5E:\n\
- cmp r2, r3\n\
- beq _08018A76\n\
- adds r2, r1, 0\n\
-_08018A64:\n\
- adds r2, 0x2\n\
- adds r4, 0x1\n\
- ldrh r0, [r2]\n\
- cmp r0, r5\n\
- bne _08018A72\n\
- bl _08019F76\n\
-_08018A72:\n\
- cmp r0, r3\n\
- bne _08018A64\n\
-_08018A76:\n\
- lsls r0, r4, 1\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- ldr r0, _08018AC0 @ =0x0000ffff\n\
- cmp r1, r0\n\
- bne _08018A86\n\
- bl _08019F76\n\
-_08018A86:\n\
- ldr r1, _08018AC4 @ =gBattleMons\n\
- ldr r0, _08018AC8 @ =gBankAttacker\n\
- ldrb r2, [r0]\n\
- movs r0, 0x58\n\
- muls r0, r2\n\
- adds r1, 0x50\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x80\n\
- lsls r1, 5\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08018AAC\n\
- ldr r0, _08018ACC @ =gHitMarker\n\
- ldr r1, [r0]\n\
- movs r2, 0x80\n\
- lsls r2, 4\n\
- orrs r1, r2\n\
- str r1, [r0]\n\
-_08018AAC:\n\
- ldr r1, _08018AD0 @ =gBattlescriptCurrInstr\n\
- ldr r0, _08018AD4 @ =BattleScript_SoundproofProtected\n\
- str r0, [r1]\n\
- movs r0, 0x1\n\
- mov r9, r0\n\
- bl _08019F7C\n\
- .align 2, 0\n\
-_08018ABC: .4byte gSoundMovesTable\n\
-_08018AC0: .4byte 0x0000ffff\n\
-_08018AC4: .4byte gBattleMons\n\
-_08018AC8: .4byte gBankAttacker\n\
-_08018ACC: .4byte gHitMarker\n\
-_08018AD0: .4byte gBattlescriptCurrInstr\n\
-_08018AD4: .4byte BattleScript_SoundproofProtected\n\
-_08018AD8:\n\
- cmp r3, 0\n\
- bne _08018AE0\n\
- bl _08019F76\n\
-_08018AE0:\n\
- mov r1, r8\n\
- ldrb r0, [r1]\n\
- cmp r0, 0xB\n\
- beq _08018B50\n\
- cmp r0, 0xB\n\
- bgt _08018AF2\n\
- cmp r0, 0xA\n\
- beq _08018AF8\n\
- b _08018C6A\n\
-_08018AF2:\n\
- cmp r0, 0x12\n\
- beq _08018BA8\n\
- b _08018C6A\n\
-_08018AF8:\n\
- cmp r4, 0xD\n\
- beq _08018AFE\n\
- b _08018C6A\n\
-_08018AFE:\n\
- ldr r0, _08018B28 @ =gBattleMoves\n\
- lsls r1, r3, 1\n\
- adds r1, r3\n\
- lsls r1, 2\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- cmp r0, 0\n\
- bne _08018B10\n\
- b _08018C6A\n\
-_08018B10:\n\
- ldr r1, _08018B2C @ =gProtectStructs\n\
- ldr r0, _08018B30 @ =gBankAttacker\n\
- ldrb r0, [r0]\n\
- lsls r0, 4\n\
- adds r0, r1\n\
- ldrb r0, [r0, 0x2]\n\
- lsls r0, 28\n\
- cmp r0, 0\n\
- bge _08018B3C\n\
- ldr r1, _08018B34 @ =gBattlescriptCurrInstr\n\
- ldr r0, _08018B38 @ =BattleScript_MoveHPDrain\n\
- b _08018B40\n\
- .align 2, 0\n\
-_08018B28: .4byte gBattleMoves\n\
-_08018B2C: .4byte gProtectStructs\n\
-_08018B30: .4byte gBankAttacker\n\
-_08018B34: .4byte gBattlescriptCurrInstr\n\
-_08018B38: .4byte BattleScript_MoveHPDrain\n\
-_08018B3C:\n\
- ldr r1, _08018B48 @ =gBattlescriptCurrInstr\n\
- ldr r0, _08018B4C @ =BattleScript_MoveHPDrain_PPLoss\n\
-_08018B40:\n\
- str r0, [r1]\n\
- movs r2, 0x1\n\
- b _08018C68\n\
- .align 2, 0\n\
-_08018B48: .4byte gBattlescriptCurrInstr\n\
-_08018B4C: .4byte BattleScript_MoveHPDrain_PPLoss\n\
-_08018B50:\n\
- cmp r4, 0xB\n\
- beq _08018B56\n\
- b _08018C6A\n\
-_08018B56:\n\
- ldr r0, _08018B80 @ =gBattleMoves\n\
- lsls r1, r3, 1\n\
- adds r1, r3\n\
- lsls r1, 2\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- cmp r0, 0\n\
- bne _08018B68\n\
- b _08018C6A\n\
-_08018B68:\n\
- ldr r1, _08018B84 @ =gProtectStructs\n\
- ldr r0, _08018B88 @ =gBankAttacker\n\
- ldrb r0, [r0]\n\
- lsls r0, 4\n\
- adds r0, r1\n\
- ldrb r0, [r0, 0x2]\n\
- lsls r0, 28\n\
- cmp r0, 0\n\
- bge _08018B94\n\
- ldr r1, _08018B8C @ =gBattlescriptCurrInstr\n\
- ldr r0, _08018B90 @ =BattleScript_MoveHPDrain\n\
- b _08018B98\n\
- .align 2, 0\n\
-_08018B80: .4byte gBattleMoves\n\
-_08018B84: .4byte gProtectStructs\n\
-_08018B88: .4byte gBankAttacker\n\
-_08018B8C: .4byte gBattlescriptCurrInstr\n\
-_08018B90: .4byte BattleScript_MoveHPDrain\n\
-_08018B94:\n\
- ldr r1, _08018BA0 @ =gBattlescriptCurrInstr\n\
- ldr r0, _08018BA4 @ =BattleScript_MoveHPDrain_PPLoss\n\
-_08018B98:\n\
- str r0, [r1]\n\
- movs r3, 0x1\n\
- mov r9, r3\n\
- b _08018C6A\n\
- .align 2, 0\n\
-_08018BA0: .4byte gBattlescriptCurrInstr\n\
-_08018BA4: .4byte BattleScript_MoveHPDrain_PPLoss\n\
-_08018BA8:\n\
- cmp r4, 0xA\n\
- bne _08018C6A\n\
- ldr r1, _08018BF4 @ =gBattleMons\n\
- movs r0, 0x58\n\
- mov r5, r10\n\
- muls r5, r0\n\
- adds r0, r5, 0\n\
- adds r1, 0x4C\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x20\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08018C6A\n\
- ldr r2, _08018BF8 @ =0x02017100\n\
- mov r0, r10\n\
- lsls r1, r0, 2\n\
- adds r0, r1, r2\n\
- ldr r3, [r0]\n\
- movs r4, 0x1\n\
- ands r3, r4\n\
- adds r5, r1, 0\n\
- cmp r3, 0\n\
- bne _08018C30\n\
- ldr r0, _08018BFC @ =gBattleCommunication\n\
- strb r3, [r0, 0x5]\n\
- ldr r1, _08018C00 @ =gProtectStructs\n\
- ldr r0, _08018C04 @ =gBankAttacker\n\
- ldrb r0, [r0]\n\
- lsls r0, 4\n\
- adds r0, r1\n\
- ldrb r0, [r0, 0x2]\n\
- lsls r0, 28\n\
- cmp r0, 0\n\
- bge _08018C10\n\
- ldr r1, _08018C08 @ =gBattlescriptCurrInstr\n\
- ldr r0, _08018C0C @ =BattleScript_FlashFireBoost\n\
- b _08018C14\n\
- .align 2, 0\n\
-_08018BF4: .4byte gBattleMons\n\
-_08018BF8: .4byte 0x02017100\n\
-_08018BFC: .4byte gBattleCommunication\n\
-_08018C00: .4byte gProtectStructs\n\
-_08018C04: .4byte gBankAttacker\n\
-_08018C08: .4byte gBattlescriptCurrInstr\n\
-_08018C0C: .4byte BattleScript_FlashFireBoost\n\
-_08018C10:\n\
- ldr r1, _08018C28 @ =gBattlescriptCurrInstr\n\
- ldr r0, _08018C2C @ =BattleScript_FlashFireBoost_PPLoss\n\
-_08018C14:\n\
- str r0, [r1]\n\
- adds r0, r5, r2\n\
- ldr r1, [r0]\n\
- movs r2, 0x1\n\
- orrs r1, r2\n\
- str r1, [r0]\n\
- movs r1, 0x2\n\
- mov r9, r1\n\
- b _08018C6A\n\
- .align 2, 0\n\
-_08018C28: .4byte gBattlescriptCurrInstr\n\
-_08018C2C: .4byte BattleScript_FlashFireBoost_PPLoss\n\
-_08018C30:\n\
- ldr r0, _08018C4C @ =gBattleCommunication\n\
- strb r4, [r0, 0x5]\n\
- ldr r1, _08018C50 @ =gProtectStructs\n\
- ldr r0, _08018C54 @ =gBankAttacker\n\
- ldrb r0, [r0]\n\
- lsls r0, 4\n\
- adds r0, r1\n\
- ldrb r0, [r0, 0x2]\n\
- lsls r0, 28\n\
- cmp r0, 0\n\
- bge _08018C60\n\
- ldr r1, _08018C58 @ =gBattlescriptCurrInstr\n\
- ldr r0, _08018C5C @ =BattleScript_FlashFireBoost\n\
- b _08018C64\n\
- .align 2, 0\n\
-_08018C4C: .4byte gBattleCommunication\n\
-_08018C50: .4byte gProtectStructs\n\
-_08018C54: .4byte gBankAttacker\n\
-_08018C58: .4byte gBattlescriptCurrInstr\n\
-_08018C5C: .4byte BattleScript_FlashFireBoost\n\
-_08018C60:\n\
- ldr r1, _08018CA4 @ =gBattlescriptCurrInstr\n\
- ldr r0, _08018CA8 @ =BattleScript_FlashFireBoost_PPLoss\n\
-_08018C64:\n\
- str r0, [r1]\n\
- movs r2, 0x2\n\
-_08018C68:\n\
- mov r9, r2\n\
-_08018C6A:\n\
- mov r3, r9\n\
- cmp r3, 0x1\n\
- beq _08018C74\n\
- bl _08019F76\n\
-_08018C74:\n\
- ldr r1, _08018CAC @ =gBattleMons\n\
- movs r0, 0x58\n\
- mov r5, r10\n\
- muls r5, r0\n\
- adds r0, r5, 0\n\
- adds r1, r0, r1\n\
- ldrh r0, [r1, 0x2C]\n\
- ldrh r2, [r1, 0x28]\n\
- cmp r0, r2\n\
- bne _08018CD0\n\
- ldr r1, _08018CB0 @ =gProtectStructs\n\
- ldr r0, _08018CB4 @ =gBankAttacker\n\
- ldrb r0, [r0]\n\
- lsls r0, 4\n\
- adds r0, r1\n\
- ldrb r0, [r0, 0x2]\n\
- lsls r0, 28\n\
- cmp r0, 0\n\
- bge _08018CBC\n\
- ldr r1, _08018CA4 @ =gBattlescriptCurrInstr\n\
- ldr r0, _08018CB8 @ =BattleScript_MoveHPDrain_FullHP\n\
- str r0, [r1]\n\
- bl _08019F76\n\
- .align 2, 0\n\
-_08018CA4: .4byte gBattlescriptCurrInstr\n\
-_08018CA8: .4byte BattleScript_FlashFireBoost_PPLoss\n\
-_08018CAC: .4byte gBattleMons\n\
-_08018CB0: .4byte gProtectStructs\n\
-_08018CB4: .4byte gBankAttacker\n\
-_08018CB8: .4byte BattleScript_MoveHPDrain_FullHP\n\
-_08018CBC:\n\
- ldr r1, _08018CC8 @ =gBattlescriptCurrInstr\n\
- ldr r0, _08018CCC @ =BattleScript_MoveHPDrain_FullHP_PPLoss\n\
- str r0, [r1]\n\
- bl _08019F76\n\
- .align 2, 0\n\
-_08018CC8: .4byte gBattlescriptCurrInstr\n\
-_08018CCC: .4byte BattleScript_MoveHPDrain_FullHP_PPLoss\n\
-_08018CD0:\n\
- ldr r2, _08018CEC @ =gBattleMoveDamage\n\
- ldrh r0, [r1, 0x2C]\n\
- lsrs r0, 2\n\
- str r0, [r2]\n\
- cmp r0, 0\n\
- bne _08018CE0\n\
- mov r3, r9\n\
- str r3, [r2]\n\
-_08018CE0:\n\
- ldr r0, [r2]\n\
- negs r0, r0\n\
- str r0, [r2]\n\
- bl _08019F76\n\
- .align 2, 0\n\
-_08018CEC: .4byte gBattleMoveDamage\n\
-_08018CF0:\n\
- mov r5, r8\n\
- ldrb r0, [r5]\n\
- subs r0, 0x9\n\
- cmp r0, 0x2F\n\
- bls _08018CFE\n\
- bl _08019F76\n\
-_08018CFE:\n\
- lsls r0, 2\n\
- ldr r1, _08018D08 @ =_08018D0C\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
-_08018D08: .4byte _08018D0C\n\
- .align 2, 0\n\
-_08018D0C:\n\
- .4byte _08019128\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08018DCC\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08018E94\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08018F54\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _0801904C\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019204\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _08019F76\n\
- .4byte _080192E0\n\
-_08018DCC:\n\
- ldr r0, _08018E74 @ =gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- movs r0, 0x29\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08018DDC\n\
- bl _08019F76\n\
-_08018DDC:\n\
- cmp r3, 0xA5\n\
- bne _08018DE4\n\
- bl _08019F76\n\
-_08018DE4:\n\
- ldr r0, _08018E78 @ =gBattleMoves\n\
- lsls r1, r3, 1\n\
- adds r1, r3\n\
- lsls r1, 2\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- cmp r0, 0\n\
- bne _08018DF8\n\
- bl _08019F76\n\
-_08018DF8:\n\
- ldr r2, _08018E7C @ =gSpecialStatuses\n\
- ldr r0, _08018E80 @ =gBankTarget\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r1, r0, 2\n\
- adds r0, r2, 0\n\
- adds r0, 0x8\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08018E20\n\
- adds r0, r2, 0\n\
- adds r0, 0xC\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08018E20\n\
- bl _08019F76\n\
-_08018E20:\n\
- ldr r1, _08018E84 @ =gBattleMons\n\
- movs r0, 0x58\n\
- mov r2, r10\n\
- muls r2, r0\n\
- adds r0, r2, 0\n\
- adds r1, r0, r1\n\
- adds r3, r1, 0\n\
- adds r3, 0x21\n\
- ldrb r0, [r3]\n\
- cmp r0, r4\n\
- bne _08018E3A\n\
- bl _08019F76\n\
-_08018E3A:\n\
- adds r2, r1, 0\n\
- adds r2, 0x22\n\
- ldrb r0, [r2]\n\
- cmp r0, r4\n\
- bne _08018E48\n\
- bl _08019F76\n\
-_08018E48:\n\
- ldrh r0, [r1, 0x28]\n\
- cmp r0, 0\n\
- bne _08018E52\n\
- bl _08019F76\n\
-_08018E52:\n\
- strb r4, [r3]\n\
- strb r4, [r2]\n\
- ldr r1, _08018E88 @ =gBattleTextBuff1\n\
- movs r0, 0xFD\n\
- strb r0, [r1]\n\
- movs r0, 0x3\n\
- strb r0, [r1, 0x1]\n\
- strb r4, [r1, 0x2]\n\
- movs r0, 0xFF\n\
- strb r0, [r1, 0x3]\n\
- bl b_movescr_stack_push_cursor\n\
- ldr r1, _08018E8C @ =gBattlescriptCurrInstr\n\
- ldr r0, _08018E90 @ =BattleScript_ColorChangeActivates\n\
- str r0, [r1]\n\
- bl _08019F22\n\
- .align 2, 0\n\
-_08018E74: .4byte gBattleMoveFlags\n\
-_08018E78: .4byte gBattleMoves\n\
-_08018E7C: .4byte gSpecialStatuses\n\
-_08018E80: .4byte gBankTarget\n\
-_08018E84: .4byte gBattleMons\n\
-_08018E88: .4byte gBattleTextBuff1\n\
-_08018E8C: .4byte gBattlescriptCurrInstr\n\
-_08018E90: .4byte BattleScript_ColorChangeActivates\n\
-_08018E94:\n\
- ldr r0, _08018F2C @ =gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- movs r0, 0x29\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08018EA4\n\
- bl _08019F76\n\
-_08018EA4:\n\
- ldr r1, _08018F30 @ =gBattleMons\n\
- ldr r0, _08018F34 @ =gBankAttacker\n\
- ldrb r2, [r0]\n\
- movs r0, 0x58\n\
- muls r0, r2\n\
- adds r4, r0, r1\n\
- ldrh r0, [r4, 0x28]\n\
- cmp r0, 0\n\
- bne _08018EBA\n\
- bl _08019F76\n\
-_08018EBA:\n\
- ldr r0, _08018F38 @ =gProtectStructs\n\
- lsls r1, r2, 4\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- lsls r0, 31\n\
- cmp r0, 0\n\
- beq _08018ECC\n\
- bl _08019F76\n\
-_08018ECC:\n\
- ldr r2, _08018F3C @ =gSpecialStatuses\n\
- ldr r0, _08018F40 @ =gBankTarget\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r1, r0, 2\n\
- adds r0, r2, 0\n\
- adds r0, 0x8\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08018EF4\n\
- adds r0, r2, 0\n\
- adds r0, 0xC\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08018EF4\n\
- bl _08019F76\n\
-_08018EF4:\n\
- ldr r1, _08018F44 @ =gBattleMoves\n\
- lsls r0, r3, 1\n\
- adds r0, r3\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrb r1, [r0, 0x8]\n\
- movs r2, 0x1\n\
- adds r0, r2, 0\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08018F0E\n\
- bl _08019F76\n\
-_08018F0E:\n\
- ldr r1, _08018F48 @ =gBattleMoveDamage\n\
- ldrh r0, [r4, 0x2C]\n\
- lsrs r0, 4\n\
- str r0, [r1]\n\
- cmp r0, 0\n\
- bne _08018F1C\n\
- str r2, [r1]\n\
-_08018F1C:\n\
- bl b_movescr_stack_push_cursor\n\
- ldr r1, _08018F4C @ =gBattlescriptCurrInstr\n\
- ldr r0, _08018F50 @ =BattleScript_RoughSkinActivates\n\
- str r0, [r1]\n\
- bl _08019F22\n\
- .align 2, 0\n\
-_08018F2C: .4byte gBattleMoveFlags\n\
-_08018F30: .4byte gBattleMons\n\
-_08018F34: .4byte gBankAttacker\n\
-_08018F38: .4byte gProtectStructs\n\
-_08018F3C: .4byte gSpecialStatuses\n\
-_08018F40: .4byte gBankTarget\n\
-_08018F44: .4byte gBattleMoves\n\
-_08018F48: .4byte gBattleMoveDamage\n\
-_08018F4C: .4byte gBattlescriptCurrInstr\n\
-_08018F50: .4byte BattleScript_RoughSkinActivates\n\
-_08018F54:\n\
- ldr r0, _08019020 @ =gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- movs r0, 0x29\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08018F64\n\
- bl _08019F76\n\
-_08018F64:\n\
- ldr r1, _08019024 @ =gBattleMons\n\
- ldr r0, _08019028 @ =gBankAttacker\n\
- ldrb r2, [r0]\n\
- movs r0, 0x58\n\
- muls r0, r2\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- bne _08018F7A\n\
- bl _08019F76\n\
-_08018F7A:\n\
- ldr r0, _0801902C @ =gProtectStructs\n\
- lsls r1, r2, 4\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- lsls r0, 31\n\
- cmp r0, 0\n\
- beq _08018F8C\n\
- bl _08019F76\n\
-_08018F8C:\n\
- ldr r2, _08019030 @ =gSpecialStatuses\n\
- ldr r0, _08019034 @ =gBankTarget\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r1, r0, 2\n\
- adds r0, r2, 0\n\
- adds r0, 0x8\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08018FB4\n\
- adds r0, r2, 0\n\
- adds r0, 0xC\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08018FB4\n\
- bl _08019F76\n\
-_08018FB4:\n\
- ldr r1, _08019038 @ =gBattleMoves\n\
- lsls r0, r3, 1\n\
- adds r0, r3\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrb r1, [r0, 0x8]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08018FCC\n\
- bl _08019F76\n\
-_08018FCC:\n\
- bl Random\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0xA\n\
- bl __umodsi3\n\
- lsls r0, 16\n\
- cmp r0, 0\n\
- beq _08018FE4\n\
- bl _08019F76\n\
-_08018FE4:\n\
- ldr r5, _0801903C @ =gBattleCommunication\n\
- movs r4, 0x3\n\
-_08018FE8:\n\
- bl Random\n\
- ands r0, r4\n\
- strb r0, [r5, 0x3]\n\
- cmp r0, 0\n\
- beq _08018FE8\n\
- ldr r1, _0801903C @ =gBattleCommunication\n\
- ldrb r0, [r1, 0x3]\n\
- cmp r0, 0x3\n\
- bne _08019000\n\
- adds r0, 0x2\n\
- strb r0, [r1, 0x3]\n\
-_08019000:\n\
- ldrb r0, [r1, 0x3]\n\
- adds r0, 0x40\n\
- strb r0, [r1, 0x3]\n\
- bl b_movescr_stack_push_cursor\n\
- ldr r1, _08019040 @ =gBattlescriptCurrInstr\n\
- ldr r0, _08019044 @ =BattleScript_ApplySecondaryEffect\n\
- str r0, [r1]\n\
- ldr r2, _08019048 @ =gHitMarker\n\
- ldr r0, [r2]\n\
- movs r1, 0x80\n\
- lsls r1, 6\n\
- orrs r0, r1\n\
- str r0, [r2]\n\
- bl _08019F22\n\
- .align 2, 0\n\
-_08019020: .4byte gBattleMoveFlags\n\
-_08019024: .4byte gBattleMons\n\
-_08019028: .4byte gBankAttacker\n\
-_0801902C: .4byte gProtectStructs\n\
-_08019030: .4byte gSpecialStatuses\n\
-_08019034: .4byte gBankTarget\n\
-_08019038: .4byte gBattleMoves\n\
-_0801903C: .4byte gBattleCommunication\n\
-_08019040: .4byte gBattlescriptCurrInstr\n\
-_08019044: .4byte BattleScript_ApplySecondaryEffect\n\
-_08019048: .4byte gHitMarker\n\
-_0801904C:\n\
- ldr r0, _080190FC @ =gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- movs r0, 0x29\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0801905C\n\
- bl _08019F76\n\
-_0801905C:\n\
- ldr r1, _08019100 @ =gBattleMons\n\
- ldr r0, _08019104 @ =gBankAttacker\n\
- ldrb r2, [r0]\n\
- movs r0, 0x58\n\
- muls r0, r2\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- bne _08019072\n\
- bl _08019F76\n\
-_08019072:\n\
- ldr r0, _08019108 @ =gProtectStructs\n\
- lsls r1, r2, 4\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- lsls r0, 31\n\
- cmp r0, 0\n\
- beq _08019084\n\
- bl _08019F76\n\
-_08019084:\n\
- ldr r2, _0801910C @ =gSpecialStatuses\n\
- ldr r0, _08019110 @ =gBankTarget\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r1, r0, 2\n\
- adds r0, r2, 0\n\
- adds r0, 0x8\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _080190AC\n\
- adds r0, r2, 0\n\
- adds r0, 0xC\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _080190AC\n\
- bl _08019F76\n\
-_080190AC:\n\
- ldr r1, _08019114 @ =gBattleMoves\n\
- lsls r0, r3, 1\n\
- adds r0, r3\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrb r1, [r0, 0x8]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _080190C4\n\
- bl _08019F76\n\
-_080190C4:\n\
- bl Random\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x3\n\
- bl __umodsi3\n\
- lsls r0, 16\n\
- cmp r0, 0\n\
- beq _080190DC\n\
- bl _08019F76\n\
-_080190DC:\n\
- ldr r1, _08019118 @ =gBattleCommunication\n\
- movs r0, 0x42\n\
- strb r0, [r1, 0x3]\n\
- bl b_movescr_stack_push_cursor\n\
- ldr r1, _0801911C @ =gBattlescriptCurrInstr\n\
- ldr r0, _08019120 @ =BattleScript_ApplySecondaryEffect\n\
- str r0, [r1]\n\
- ldr r2, _08019124 @ =gHitMarker\n\
- ldr r0, [r2]\n\
- movs r1, 0x80\n\
- lsls r1, 6\n\
- orrs r0, r1\n\
- str r0, [r2]\n\
- bl _08019F22\n\
- .align 2, 0\n\
-_080190FC: .4byte gBattleMoveFlags\n\
-_08019100: .4byte gBattleMons\n\
-_08019104: .4byte gBankAttacker\n\
-_08019108: .4byte gProtectStructs\n\
-_0801910C: .4byte gSpecialStatuses\n\
-_08019110: .4byte gBankTarget\n\
-_08019114: .4byte gBattleMoves\n\
-_08019118: .4byte gBattleCommunication\n\
-_0801911C: .4byte gBattlescriptCurrInstr\n\
-_08019120: .4byte BattleScript_ApplySecondaryEffect\n\
-_08019124: .4byte gHitMarker\n\
-_08019128:\n\
- ldr r0, _080191D8 @ =gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- movs r0, 0x29\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08019138\n\
- bl _08019F76\n\
-_08019138:\n\
- ldr r1, _080191DC @ =gBattleMons\n\
- ldr r0, _080191E0 @ =gBankAttacker\n\
- ldrb r2, [r0]\n\
- movs r0, 0x58\n\
- muls r0, r2\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- bne _0801914E\n\
- bl _08019F76\n\
-_0801914E:\n\
- ldr r0, _080191E4 @ =gProtectStructs\n\
- lsls r1, r2, 4\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- lsls r0, 31\n\
- cmp r0, 0\n\
- beq _08019160\n\
- bl _08019F76\n\
-_08019160:\n\
- ldr r2, _080191E8 @ =gSpecialStatuses\n\
- ldr r0, _080191EC @ =gBankTarget\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r1, r0, 2\n\
- adds r0, r2, 0\n\
- adds r0, 0x8\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08019188\n\
- adds r0, r2, 0\n\
- adds r0, 0xC\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _08019188\n\
- bl _08019F76\n\
-_08019188:\n\
- ldr r1, _080191F0 @ =gBattleMoves\n\
- lsls r0, r3, 1\n\
- adds r0, r3\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrb r1, [r0, 0x8]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _080191A0\n\
- bl _08019F76\n\
-_080191A0:\n\
- bl Random\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x3\n\
- bl __umodsi3\n\
- lsls r0, 16\n\
- cmp r0, 0\n\
- beq _080191B8\n\
- bl _08019F76\n\
-_080191B8:\n\
- ldr r1, _080191F4 @ =gBattleCommunication\n\
- movs r0, 0x45\n\
- strb r0, [r1, 0x3]\n\
- bl b_movescr_stack_push_cursor\n\
- ldr r1, _080191F8 @ =gBattlescriptCurrInstr\n\
- ldr r0, _080191FC @ =BattleScript_ApplySecondaryEffect\n\
- str r0, [r1]\n\
- ldr r2, _08019200 @ =gHitMarker\n\
- ldr r0, [r2]\n\
- movs r1, 0x80\n\
- lsls r1, 6\n\
- orrs r0, r1\n\
- str r0, [r2]\n\
- bl _08019F22\n\
- .align 2, 0\n\
-_080191D8: .4byte gBattleMoveFlags\n\
-_080191DC: .4byte gBattleMons\n\
-_080191E0: .4byte gBankAttacker\n\
-_080191E4: .4byte gProtectStructs\n\
-_080191E8: .4byte gSpecialStatuses\n\
-_080191EC: .4byte gBankTarget\n\
-_080191F0: .4byte gBattleMoves\n\
-_080191F4: .4byte gBattleCommunication\n\
-_080191F8: .4byte gBattlescriptCurrInstr\n\
-_080191FC: .4byte BattleScript_ApplySecondaryEffect\n\
-_08019200: .4byte gHitMarker\n\
-_08019204:\n\
- ldr r0, _080192B4 @ =gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- movs r0, 0x29\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08019214\n\
- bl _08019F76\n\
-_08019214:\n\
- ldr r1, _080192B8 @ =gBattleMons\n\
- ldr r0, _080192BC @ =gBankAttacker\n\
- ldrb r2, [r0]\n\
- movs r0, 0x58\n\
- muls r0, r2\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- bne _0801922A\n\
- bl _08019F76\n\
-_0801922A:\n\
- ldr r0, _080192C0 @ =gProtectStructs\n\
- lsls r1, r2, 4\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- lsls r0, 31\n\
- cmp r0, 0\n\
- beq _0801923C\n\
- bl _08019F76\n\
-_0801923C:\n\
- ldr r1, _080192C4 @ =gBattleMoves\n\
- lsls r0, r3, 1\n\
- adds r0, r3\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrb r1, [r0, 0x8]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08019254\n\
- bl _08019F76\n\
-_08019254:\n\
- ldr r2, _080192C8 @ =gSpecialStatuses\n\
- ldr r0, _080192CC @ =gBankTarget\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r1, r0, 2\n\
- adds r0, r2, 0\n\
- adds r0, 0x8\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _0801927C\n\
- adds r0, r2, 0\n\
- adds r0, 0xC\n\
- adds r0, r1, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _0801927C\n\
- bl _08019F76\n\
-_0801927C:\n\
- bl Random\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x3\n\
- bl __umodsi3\n\
- lsls r0, 16\n\
- cmp r0, 0\n\
- beq _08019294\n\
- bl _08019F76\n\
-_08019294:\n\
- ldr r1, _080192D0 @ =gBattleCommunication\n\
- movs r0, 0x43\n\
- strb r0, [r1, 0x3]\n\
- bl b_movescr_stack_push_cursor\n\
- ldr r1, _080192D4 @ =gBattlescriptCurrInstr\n\
- ldr r0, _080192D8 @ =BattleScript_ApplySecondaryEffect\n\
- str r0, [r1]\n\
- ldr r2, _080192DC @ =gHitMarker\n\
- ldr r0, [r2]\n\
- movs r1, 0x80\n\
- lsls r1, 6\n\
- orrs r0, r1\n\
- str r0, [r2]\n\
- bl _08019F22\n\
- .align 2, 0\n\
-_080192B4: .4byte gBattleMoveFlags\n\
-_080192B8: .4byte gBattleMons\n\
-_080192BC: .4byte gBankAttacker\n\
-_080192C0: .4byte gProtectStructs\n\
-_080192C4: .4byte gBattleMoves\n\
-_080192C8: .4byte gSpecialStatuses\n\
-_080192CC: .4byte gBankTarget\n\
-_080192D0: .4byte gBattleCommunication\n\
-_080192D4: .4byte gBattlescriptCurrInstr\n\
-_080192D8: .4byte BattleScript_ApplySecondaryEffect\n\
-_080192DC: .4byte gHitMarker\n\
-_080192E0:\n\
- ldr r0, _08019420 @ =gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- movs r0, 0x29\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080192F0\n\
- bl _08019F76\n\
-_080192F0:\n\
- ldr r5, _08019424 @ =gBattleMons\n\
- ldr r7, _08019428 @ =gBankAttacker\n\
- ldrb r1, [r7]\n\
- movs r6, 0x58\n\
- adds r0, r1, 0\n\
- muls r0, r6\n\
- adds r0, r5\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- bne _08019308\n\
- bl _08019F76\n\
-_08019308:\n\
- ldr r0, _0801942C @ =gProtectStructs\n\
- lsls r1, 4\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- lsls r0, 31\n\
- cmp r0, 0\n\
- beq _0801931A\n\
- bl _08019F76\n\
-_0801931A:\n\
- ldr r1, _08019430 @ =gBattleMoves\n\
- lsls r0, r3, 1\n\
- adds r0, r3\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrb r1, [r0, 0x8]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08019332\n\
- bl _08019F76\n\
-_08019332:\n\
- ldr r3, _08019434 @ =gSpecialStatuses\n\
- ldr r0, _08019438 @ =gBankTarget\n\
- mov r8, r0\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r2, r0, 2\n\
- adds r0, r3, 0\n\
- adds r0, 0x8\n\
- adds r0, r2, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _0801935C\n\
- adds r0, r3, 0\n\
- adds r0, 0xC\n\
- adds r0, r2, r0\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- bne _0801935C\n\
- bl _08019F76\n\
-_0801935C:\n\
- adds r0, r1, 0\n\
- muls r0, r6\n\
- adds r0, r5\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- bne _0801936C\n\
- bl _08019F76\n\
-_0801936C:\n\
- bl Random\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x3\n\
- bl __umodsi3\n\
- lsls r0, 16\n\
- cmp r0, 0\n\
- beq _08019384\n\
- bl _08019F76\n\
-_08019384:\n\
- ldrb r0, [r7]\n\
- muls r0, r6\n\
- adds r0, r5\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0xC\n\
- bne _08019396\n\
- bl _08019F76\n\
-_08019396:\n\
- ldr r0, [sp, 0x8]\n\
- ldr r1, [sp, 0x10]\n\
- bl GetGenderFromSpeciesAndPersonality\n\
- adds r4, r0, 0\n\
- ldr r0, [sp, 0xC]\n\
- ldr r1, [sp, 0x14]\n\
- bl GetGenderFromSpeciesAndPersonality\n\
- lsls r4, 24\n\
- lsls r0, 24\n\
- cmp r4, r0\n\
- bne _080193B4\n\
- bl _08019F76\n\
-_080193B4:\n\
- ldrb r0, [r7]\n\
- muls r0, r6\n\
- adds r4, r5, 0\n\
- adds r4, 0x50\n\
- adds r0, r4\n\
- ldr r0, [r0]\n\
- movs r1, 0xF0\n\
- lsls r1, 12\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080193CE\n\
- bl _08019F76\n\
-_080193CE:\n\
- ldr r0, [sp, 0x8]\n\
- ldr r1, [sp, 0x10]\n\
- bl GetGenderFromSpeciesAndPersonality\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0xFF\n\
- bne _080193E2\n\
- bl _08019F76\n\
-_080193E2:\n\
- ldr r0, [sp, 0xC]\n\
- ldr r1, [sp, 0x14]\n\
- bl GetGenderFromSpeciesAndPersonality\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0xFF\n\
- bne _080193F6\n\
- bl _08019F76\n\
-_080193F6:\n\
- ldrb r0, [r7]\n\
- adds r2, r0, 0\n\
- muls r2, r6\n\
- adds r2, r4\n\
- ldr r1, _0801943C @ =gBitTable\n\
- mov r3, r8\n\
- ldrb r0, [r3]\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldr r1, [r0]\n\
- lsls r1, 16\n\
- ldr r0, [r2]\n\
- orrs r0, r1\n\
- str r0, [r2]\n\
- bl b_movescr_stack_push_cursor\n\
- ldr r1, _08019440 @ =gBattlescriptCurrInstr\n\
- ldr r0, _08019444 @ =BattleScript_CuteCharmActivates\n\
- str r0, [r1]\n\
- bl _08019F22\n\
- .align 2, 0\n\
-_08019420: .4byte gBattleMoveFlags\n\
-_08019424: .4byte gBattleMons\n\
-_08019428: .4byte gBankAttacker\n\
-_0801942C: .4byte gProtectStructs\n\
-_08019430: .4byte gBattleMoves\n\
-_08019434: .4byte gSpecialStatuses\n\
-_08019438: .4byte gBankTarget\n\
-_0801943C: .4byte gBitTable\n\
-_08019440: .4byte gBattlescriptCurrInstr\n\
-_08019444: .4byte BattleScript_CuteCharmActivates\n\
-_08019448:\n\
- movs r5, 0\n\
- mov r10, r5\n\
- ldr r0, _0801947C @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r10, r0\n\
- bcc _08019458\n\
- bl _08019F76\n\
-_08019458:\n\
- ldr r1, _08019480 @ =gBattleMons\n\
- movs r0, 0x58\n\
- mov r2, r10\n\
- muls r2, r0\n\
- adds r0, r2, 0\n\
- adds r0, r1\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- subs r0, 0x7\n\
- adds r2, r1, 0\n\
- cmp r0, 0x41\n\
- bls _08019472\n\
- b _080196D6\n\
-_08019472:\n\
- lsls r0, 2\n\
- ldr r1, _08019484 @ =_08019488\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
-_0801947C: .4byte gNoOfAllBanks\n\
-_08019480: .4byte gBattleMons\n\
-_08019484: .4byte _08019488\n\
- .align 2, 0\n\
-_08019488:\n\
- .4byte _080195EC\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196B0\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _08019614\n\
- .4byte _080196D6\n\
- .4byte _08019590\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080195BC\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _08019680\n\
- .4byte _08019650\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _080196D6\n\
- .4byte _08019614\n\
-_08019590:\n\
- movs r0, 0x58\n\
- mov r3, r10\n\
- muls r3, r0\n\
- adds r0, r3, 0\n\
- adds r1, r2, 0\n\
- adds r1, 0x4C\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- ldr r1, _080195B0 @ =0x00000f88\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _080195AA\n\
- b _080196D6\n\
-_080195AA:\n\
- ldr r0, _080195B4 @ =gBattleTextBuff1\n\
- ldr r1, _080195B8 @ =gStatusConditionString_PoisonJpn\n\
- b _0801969C\n\
- .align 2, 0\n\
-_080195B0: .4byte 0x00000f88\n\
-_080195B4: .4byte gBattleTextBuff1\n\
-_080195B8: .4byte gStatusConditionString_PoisonJpn\n\
-_080195BC:\n\
- movs r0, 0x58\n\
- mov r1, r10\n\
- muls r1, r0\n\
- adds r0, r1, 0\n\
- adds r1, r2, 0\n\
- adds r1, 0x50\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x7\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _080195D6\n\
- b _080196D6\n\
-_080195D6:\n\
- ldr r0, _080195E4 @ =gBattleTextBuff1\n\
- ldr r1, _080195E8 @ =gStatusConditionString_ConfusionJpn\n\
- bl StringCopy\n\
- movs r2, 0x2\n\
- mov r9, r2\n\
- b _080196DC\n\
- .align 2, 0\n\
-_080195E4: .4byte gBattleTextBuff1\n\
-_080195E8: .4byte gStatusConditionString_ConfusionJpn\n\
-_080195EC:\n\
- movs r0, 0x58\n\
- mov r3, r10\n\
- muls r3, r0\n\
- adds r0, r3, 0\n\
- adds r1, r2, 0\n\
- adds r1, 0x4C\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x40\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080196D6\n\
- ldr r0, _0801960C @ =gBattleTextBuff1\n\
- ldr r1, _08019610 @ =gStatusConditionString_ParalysisJpn\n\
- b _0801969C\n\
- .align 2, 0\n\
-_0801960C: .4byte gBattleTextBuff1\n\
-_08019610: .4byte gStatusConditionString_ParalysisJpn\n\
-_08019614:\n\
- movs r0, 0x58\n\
- mov r3, r10\n\
- muls r3, r0\n\
- adds r0, r2, 0\n\
- adds r0, 0x4C\n\
- adds r0, r3, r0\n\
- ldr r0, [r0]\n\
- movs r1, 0x7\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080196D6\n\
- adds r2, 0x50\n\
- adds r2, r3, r2\n\
- ldr r0, [r2]\n\
- ldr r1, _08019644 @ =0xf7ffffff\n\
- ands r0, r1\n\
- str r0, [r2]\n\
- ldr r0, _08019648 @ =gBattleTextBuff1\n\
- ldr r1, _0801964C @ =gStatusConditionString_SleepJpn\n\
- bl StringCopy\n\
- movs r0, 0x1\n\
- mov r9, r0\n\
- b _080196DC\n\
- .align 2, 0\n\
-_08019644: .4byte 0xf7ffffff\n\
-_08019648: .4byte gBattleTextBuff1\n\
-_0801964C: .4byte gStatusConditionString_SleepJpn\n\
-_08019650:\n\
- movs r0, 0x58\n\
- mov r1, r10\n\
- muls r1, r0\n\
- adds r0, r1, 0\n\
- adds r1, r2, 0\n\
- adds r1, 0x4C\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x10\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080196D6\n\
- ldr r0, _08019678 @ =gBattleTextBuff1\n\
- ldr r1, _0801967C @ =gStatusConditionString_BurnJpn\n\
- bl StringCopy\n\
- movs r2, 0x1\n\
- mov r9, r2\n\
- b _080196DC\n\
- .align 2, 0\n\
-_08019678: .4byte gBattleTextBuff1\n\
-_0801967C: .4byte gStatusConditionString_BurnJpn\n\
-_08019680:\n\
- movs r0, 0x58\n\
- mov r3, r10\n\
- muls r3, r0\n\
- adds r0, r3, 0\n\
- adds r1, r2, 0\n\
- adds r1, 0x4C\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x20\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080196D6\n\
- ldr r0, _080196A8 @ =gBattleTextBuff1\n\
- ldr r1, _080196AC @ =gStatusConditionString_IceJpn\n\
-_0801969C:\n\
- bl StringCopy\n\
- movs r5, 0x1\n\
- mov r9, r5\n\
- b _080196DC\n\
- .align 2, 0\n\
-_080196A8: .4byte gBattleTextBuff1\n\
-_080196AC: .4byte gStatusConditionString_IceJpn\n\
-_080196B0:\n\
- movs r0, 0x58\n\
- mov r1, r10\n\
- muls r1, r0\n\
- adds r0, r1, 0\n\
- adds r1, r2, 0\n\
- adds r1, 0x50\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0xF0\n\
- lsls r1, 12\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080196D6\n\
- ldr r0, _080196EC @ =gBattleTextBuff1\n\
- ldr r1, _080196F0 @ =gStatusConditionString_LoveJpn\n\
- bl StringCopy\n\
- movs r2, 0x3\n\
- mov r9, r2\n\
-_080196D6:\n\
- mov r3, r9\n\
- cmp r3, 0\n\
- beq _08019798\n\
-_080196DC:\n\
- mov r5, r9\n\
- cmp r5, 0x2\n\
- beq _08019710\n\
- cmp r5, 0x2\n\
- bgt _080196F4\n\
- cmp r5, 0x1\n\
- beq _080196FC\n\
- b _0801973C\n\
- .align 2, 0\n\
-_080196EC: .4byte gBattleTextBuff1\n\
-_080196F0: .4byte gStatusConditionString_LoveJpn\n\
-_080196F4:\n\
- mov r0, r9\n\
- cmp r0, 0x3\n\
- beq _08019728\n\
- b _0801973C\n\
-_080196FC:\n\
- ldr r1, _0801970C @ =gBattleMons\n\
- movs r0, 0x58\n\
- mov r2, r10\n\
- muls r2, r0\n\
- adds r1, 0x4C\n\
- adds r2, r1\n\
- movs r0, 0\n\
- b _0801973A\n\
- .align 2, 0\n\
-_0801970C: .4byte gBattleMons\n\
-_08019710:\n\
- ldr r1, _08019724 @ =gBattleMons\n\
- movs r0, 0x58\n\
- mov r2, r10\n\
- muls r2, r0\n\
- adds r1, 0x50\n\
- adds r2, r1\n\
- ldr r0, [r2]\n\
- movs r1, 0x8\n\
- negs r1, r1\n\
- b _08019738\n\
- .align 2, 0\n\
-_08019724: .4byte gBattleMons\n\
-_08019728:\n\
- ldr r1, _08019778 @ =gBattleMons\n\
- movs r0, 0x58\n\
- mov r2, r10\n\
- muls r2, r0\n\
- adds r1, 0x50\n\
- adds r2, r1\n\
- ldr r0, [r2]\n\
- ldr r1, _0801977C @ =0xfff0ffff\n\
-_08019738:\n\
- ands r0, r1\n\
-_0801973A:\n\
- str r0, [r2]\n\
-_0801973C:\n\
- bl b_movescr_stack_push_cursor\n\
- ldr r1, _08019780 @ =gBattlescriptCurrInstr\n\
- ldr r0, _08019784 @ =gUnknown_081D9956\n\
- str r0, [r1]\n\
- ldr r0, _08019788 @ =0x02000000\n\
- ldr r1, _0801978C @ =0x00016003\n\
- adds r0, r1\n\
- mov r2, r10\n\
- strb r2, [r0]\n\
- ldr r4, _08019790 @ =gActiveBank\n\
- strb r2, [r4]\n\
- ldrb r1, [r4]\n\
- movs r0, 0x58\n\
- muls r0, r1\n\
- ldr r1, _08019794 @ =gUnknown_02024ACC\n\
- adds r0, r1\n\
- str r0, [sp]\n\
- movs r0, 0\n\
- movs r1, 0x28\n\
- movs r2, 0\n\
- movs r3, 0x4\n\
- bl EmitSetAttributes\n\
- ldrb r0, [r4]\n\
- bl MarkBufferBankForExecution\n\
- bl _08019F92\n\
- .align 2, 0\n\
-_08019778: .4byte gBattleMons\n\
-_0801977C: .4byte 0xfff0ffff\n\
-_08019780: .4byte gBattlescriptCurrInstr\n\
-_08019784: .4byte gUnknown_081D9956\n\
-_08019788: .4byte 0x02000000\n\
-_0801978C: .4byte 0x00016003\n\
-_08019790: .4byte gActiveBank\n\
-_08019794: .4byte gUnknown_02024ACC\n\
-_08019798:\n\
- mov r0, r10\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r10, r0\n\
- ldr r0, _080197B0 @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r10, r0\n\
- bcs _080197AC\n\
- b _08019458\n\
-_080197AC:\n\
- bl _08019F76\n\
- .align 2, 0\n\
-_080197B0: .4byte gNoOfAllBanks\n\
-_080197B4:\n\
- movs r3, 0\n\
- mov r10, r3\n\
- ldr r0, _080197FC @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r10, r0\n\
- bcc _080197C2\n\
- b _08019F76\n\
-_080197C2:\n\
- ldr r4, _08019800 @ =gBattleMons\n\
-_080197C4:\n\
- movs r0, 0x58\n\
- mov r5, r10\n\
- muls r5, r0\n\
- adds r0, r5, 0\n\
- adds r0, r4\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0x3B\n\
- bne _080197E8\n\
- mov r0, r10\n\
- bl CastformDataTypeChange\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
- cmp r0, 0\n\
- beq _080197E8\n\
- b _08019E40\n\
-_080197E8:\n\
- mov r0, r10\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r10, r0\n\
- ldr r0, _080197FC @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r10, r0\n\
- bcc _080197C4\n\
- b _08019F76\n\
- .align 2, 0\n\
-_080197FC: .4byte gNoOfAllBanks\n\
-_08019800: .4byte gBattleMons\n\
-_08019804:\n\
- mov r1, r8\n\
- ldrb r0, [r1]\n\
- cmp r0, 0x1C\n\
- beq _0801980E\n\
- b _08019F76\n\
-_0801980E:\n\
- ldr r4, _08019860 @ =gHitMarker\n\
- ldr r1, [r4]\n\
- movs r0, 0x80\n\
- lsls r0, 7\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0801981E\n\
- b _08019F76\n\
-_0801981E:\n\
- ldr r0, _08019864 @ =0xffffbfff\n\
- ands r1, r0\n\
- str r1, [r4]\n\
- ldr r3, _08019868 @ =0x000160ca\n\
- adds r2, r7, r3\n\
- ldrb r1, [r2]\n\
- movs r0, 0x3F\n\
- ands r0, r1\n\
- strb r0, [r2]\n\
- cmp r0, 0x6\n\
- bne _08019838\n\
- movs r0, 0x2\n\
- strb r0, [r2]\n\
-_08019838:\n\
- ldr r1, _0801986C @ =gBattleCommunication\n\
- ldrb r0, [r2]\n\
- adds r0, 0x40\n\
- strb r0, [r1, 0x3]\n\
- ldr r0, _08019870 @ =gBankTarget\n\
- ldrb r1, [r0]\n\
- ldr r5, _08019874 @ =0x00016003\n\
- adds r0, r7, r5\n\
- strb r1, [r0]\n\
- bl b_movescr_stack_push_cursor\n\
- ldr r1, _08019878 @ =gBattlescriptCurrInstr\n\
- ldr r0, _0801987C @ =BattleScript_SynchronizeActivates\n\
- str r0, [r1]\n\
- ldr r0, [r4]\n\
- movs r1, 0x80\n\
- lsls r1, 6\n\
- orrs r0, r1\n\
- str r0, [r4]\n\
- b _08019F22\n\
- .align 2, 0\n\
-_08019860: .4byte gHitMarker\n\
-_08019864: .4byte 0xffffbfff\n\
-_08019868: .4byte 0x000160ca\n\
-_0801986C: .4byte gBattleCommunication\n\
-_08019870: .4byte gBankTarget\n\
-_08019874: .4byte 0x00016003\n\
-_08019878: .4byte gBattlescriptCurrInstr\n\
-_0801987C: .4byte BattleScript_SynchronizeActivates\n\
-_08019880:\n\
- mov r1, r8\n\
- ldrb r0, [r1]\n\
- cmp r0, 0x1C\n\
- beq _0801988A\n\
- b _08019F76\n\
-_0801988A:\n\
- ldr r4, _080198DC @ =gHitMarker\n\
- ldr r1, [r4]\n\
- movs r0, 0x80\n\
- lsls r0, 7\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0801989A\n\
- b _08019F76\n\
-_0801989A:\n\
- ldr r0, _080198E0 @ =0xffffbfff\n\
- ands r1, r0\n\
- str r1, [r4]\n\
- ldr r3, _080198E4 @ =0x000160ca\n\
- adds r2, r7, r3\n\
- ldrb r1, [r2]\n\
- movs r0, 0x3F\n\
- ands r0, r1\n\
- strb r0, [r2]\n\
- cmp r0, 0x6\n\
- bne _080198B4\n\
- movs r0, 0x2\n\
- strb r0, [r2]\n\
-_080198B4:\n\
- ldr r1, _080198E8 @ =gBattleCommunication\n\
- ldrb r0, [r2]\n\
- strb r0, [r1, 0x3]\n\
- ldr r0, _080198EC @ =gBankAttacker\n\
- ldrb r1, [r0]\n\
- ldr r5, _080198F0 @ =0x00016003\n\
- adds r0, r7, r5\n\
- strb r1, [r0]\n\
- bl b_movescr_stack_push_cursor\n\
- ldr r1, _080198F4 @ =gBattlescriptCurrInstr\n\
- ldr r0, _080198F8 @ =BattleScript_SynchronizeActivates\n\
- str r0, [r1]\n\
- ldr r0, [r4]\n\
- movs r1, 0x80\n\
- lsls r1, 6\n\
- orrs r0, r1\n\
- str r0, [r4]\n\
- b _08019F22\n\
- .align 2, 0\n\
-_080198DC: .4byte gHitMarker\n\
-_080198E0: .4byte 0xffffbfff\n\
-_080198E4: .4byte 0x000160ca\n\
-_080198E8: .4byte gBattleCommunication\n\
-_080198EC: .4byte gBankAttacker\n\
-_080198F0: .4byte 0x00016003\n\
-_080198F4: .4byte gBattlescriptCurrInstr\n\
-_080198F8: .4byte BattleScript_SynchronizeActivates\n\
-_080198FC:\n\
- movs r4, 0\n\
- ldr r0, _08019934 @ =gNoOfAllBanks\n\
- ldrb r1, [r0]\n\
- cmp r4, r1\n\
- blt _08019908\n\
- b _08019F76\n\
-_08019908:\n\
- ldr r0, _08019938 @ =gBattleMons\n\
- adds r5, r1, 0\n\
- ldr r2, _0801993C @ =gStatuses3\n\
- adds r3, r0, 0\n\
- adds r3, 0x20\n\
- movs r6, 0x80\n\
- lsls r6, 12\n\
-_08019916:\n\
- ldrb r1, [r3]\n\
- cmp r1, 0x16\n\
- bne _08019926\n\
- ldr r0, [r2]\n\
- ands r0, r6\n\
- cmp r0, 0\n\
- beq _08019926\n\
- b _08019E6C\n\
-_08019926:\n\
- adds r2, 0x4\n\
- adds r3, 0x58\n\
- adds r4, 0x1\n\
- cmp r4, r5\n\
- blt _08019916\n\
- b _08019F76\n\
- .align 2, 0\n\
-_08019934: .4byte gNoOfAllBanks\n\
-_08019938: .4byte gBattleMons\n\
-_0801993C: .4byte gStatuses3\n\
-_08019940:\n\
- movs r4, 0\n\
- ldr r0, _08019A1C @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _0801994C\n\
- b _08019F76\n\
-_0801994C:\n\
- ldr r0, _08019A20 @ =gActiveBank\n\
- mov r8, r0\n\
- ldr r1, _08019A24 @ =gBattleMons\n\
- adds r1, 0x20\n\
- str r1, [sp, 0x1C]\n\
- movs r2, 0\n\
- str r2, [sp, 0x20]\n\
-_0801995A:\n\
- ldr r3, [sp, 0x1C]\n\
- ldrb r0, [r3]\n\
- cmp r0, 0x24\n\
- beq _08019964\n\
- b _08019AF6\n\
-_08019964:\n\
- ldr r0, _08019A28 @ =gStatuses3\n\
- ldr r5, [sp, 0x20]\n\
- adds r0, r5, r0\n\
- ldr r1, [r0]\n\
- movs r0, 0x80\n\
- lsls r0, 13\n\
- ands r1, r0\n\
- str r5, [sp, 0x18]\n\
- cmp r1, 0\n\
- bne _0801997A\n\
- b _08019AF6\n\
-_0801997A:\n\
- lsls r0, r4, 24\n\
- lsrs r0, 24\n\
- bl GetBankIdentity\n\
- movs r1, 0x1\n\
- adds r5, r0, 0\n\
- eors r5, r1\n\
- ands r5, r1\n\
- adds r0, r5, 0\n\
- bl GetBankByPlayerAI\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- adds r0, r5, 0x2\n\
- bl GetBankByPlayerAI\n\
- lsls r0, 24\n\
- lsrs r7, r0, 24\n\
- ldr r0, _08019A2C @ =gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- movs r2, 0x1\n\
- adds r0, r2, 0\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _080199AE\n\
- b _08019ABC\n\
-_080199AE:\n\
- movs r1, 0x58\n\
- adds r0, r6, 0\n\
- muls r0, r1\n\
- ldr r3, _08019A24 @ =gBattleMons\n\
- adds r1, r0, r3\n\
- adds r0, r1, 0\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _08019A78\n\
- ldrh r0, [r1, 0x28]\n\
- cmp r0, 0\n\
- beq _08019A34\n\
- movs r1, 0x58\n\
- adds r0, r7, 0\n\
- muls r0, r1\n\
- adds r1, r0, r3\n\
- adds r0, r1, 0\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _08019A34\n\
- ldrh r0, [r1, 0x28]\n\
- cmp r0, 0\n\
- beq _08019A34\n\
- str r2, [sp, 0x24]\n\
- bl Random\n\
- ldr r2, [sp, 0x24]\n\
- adds r1, r2, 0\n\
- ands r1, r0\n\
- lsls r1, 1\n\
- orrs r5, r1\n\
- adds r0, r5, 0\n\
- bl GetBankByPlayerAI\n\
- mov r2, r8\n\
- strb r0, [r2]\n\
- ldrb r0, [r2]\n\
- movs r3, 0x58\n\
- muls r0, r3\n\
- ldr r5, _08019A24 @ =gBattleMons\n\
- adds r0, r5\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- ldr r1, [sp, 0x1C]\n\
- strb r0, [r1]\n\
- ldrb r0, [r2]\n\
- muls r0, r3\n\
- adds r0, r5\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- ldr r2, _08019A30 @ =gLastUsedAbility\n\
- strb r0, [r2]\n\
- b _08019AE4\n\
- .align 2, 0\n\
-_08019A1C: .4byte gNoOfAllBanks\n\
-_08019A20: .4byte gActiveBank\n\
-_08019A24: .4byte gBattleMons\n\
-_08019A28: .4byte gStatuses3\n\
-_08019A2C: .4byte gBattleTypeFlags\n\
-_08019A30: .4byte gLastUsedAbility\n\
-_08019A34:\n\
- ldr r3, _08019A74 @ =gBattleMons\n\
- movs r2, 0x58\n\
- adds r0, r6, 0\n\
- muls r0, r2\n\
- adds r1, r0, r3\n\
- adds r0, r1, 0\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _08019A78\n\
- ldrh r0, [r1, 0x28]\n\
- cmp r0, 0\n\
- beq _08019A78\n\
- mov r5, r8\n\
- strb r6, [r5]\n\
- adds r1, r4, 0\n\
- muls r1, r2\n\
- adds r1, r3\n\
- ldrb r0, [r5]\n\
- muls r0, r2\n\
- adds r0, r3\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- adds r1, 0x20\n\
- strb r0, [r1]\n\
- ldrb r0, [r5]\n\
- muls r0, r2\n\
- adds r0, r3\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- b _08019AE0\n\
- .align 2, 0\n\
-_08019A74: .4byte gBattleMons\n\
-_08019A78:\n\
- ldr r3, _08019AB8 @ =gBattleMons\n\
- movs r2, 0x58\n\
- adds r0, r7, 0\n\
- muls r0, r2\n\
- adds r1, r0, r3\n\
- adds r0, r1, 0\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _08019AEE\n\
- ldrh r0, [r1, 0x28]\n\
- cmp r0, 0\n\
- beq _08019AEE\n\
- mov r5, r8\n\
- strb r7, [r5]\n\
- adds r1, r4, 0\n\
- muls r1, r2\n\
- adds r1, r3\n\
- ldrb r0, [r5]\n\
- muls r0, r2\n\
- adds r0, r3\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- adds r1, 0x20\n\
- strb r0, [r1]\n\
- ldrb r0, [r5]\n\
- muls r0, r2\n\
- adds r0, r3\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- b _08019AE0\n\
- .align 2, 0\n\
-_08019AB8: .4byte gBattleMons\n\
-_08019ABC:\n\
- mov r2, r8\n\
- strb r6, [r2]\n\
- movs r3, 0x58\n\
- adds r0, r6, 0\n\
- muls r0, r3\n\
- ldr r5, _08019B10 @ =gBattleMons\n\
- adds r0, r5\n\
- adds r2, r0, 0\n\
- adds r2, 0x20\n\
- ldrb r1, [r2]\n\
- cmp r1, 0\n\
- beq _08019AEE\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- beq _08019AEE\n\
- ldr r0, [sp, 0x1C]\n\
- strb r1, [r0]\n\
- ldrb r0, [r2]\n\
-_08019AE0:\n\
- ldr r1, _08019B14 @ =gLastUsedAbility\n\
- strb r0, [r1]\n\
-_08019AE4:\n\
- mov r0, r9\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08019AEE:\n\
- mov r2, r9\n\
- cmp r2, 0\n\
- beq _08019AF6\n\
- b _08019E88\n\
-_08019AF6:\n\
- ldr r3, [sp, 0x1C]\n\
- adds r3, 0x58\n\
- str r3, [sp, 0x1C]\n\
- ldr r5, [sp, 0x20]\n\
- adds r5, 0x4\n\
- str r5, [sp, 0x20]\n\
- adds r4, 0x1\n\
- ldr r0, _08019B18 @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- bge _08019B0E\n\
- b _0801995A\n\
-_08019B0E:\n\
- b _08019F76\n\
- .align 2, 0\n\
-_08019B10: .4byte gBattleMons\n\
-_08019B14: .4byte gLastUsedAbility\n\
-_08019B18: .4byte gNoOfAllBanks\n\
-_08019B1C:\n\
- movs r4, 0\n\
- ldr r0, _08019B54 @ =gNoOfAllBanks\n\
- ldrb r1, [r0]\n\
- cmp r4, r1\n\
- blt _08019B28\n\
- b _08019F76\n\
-_08019B28:\n\
- ldr r0, _08019B58 @ =gBattleMons\n\
- adds r5, r1, 0\n\
- ldr r2, _08019B5C @ =gStatuses3\n\
- adds r3, r0, 0\n\
- adds r3, 0x20\n\
- movs r6, 0x80\n\
- lsls r6, 12\n\
-_08019B36:\n\
- ldrb r1, [r3]\n\
- cmp r1, 0x16\n\
- bne _08019B46\n\
- ldr r0, [r2]\n\
- ands r0, r6\n\
- cmp r0, 0\n\
- beq _08019B46\n\
- b _08019F04\n\
-_08019B46:\n\
- adds r2, 0x4\n\
- adds r3, 0x58\n\
- adds r4, 0x1\n\
- cmp r4, r5\n\
- blt _08019B36\n\
- b _08019F76\n\
- .align 2, 0\n\
-_08019B54: .4byte gNoOfAllBanks\n\
-_08019B58: .4byte gBattleMons\n\
-_08019B5C: .4byte gStatuses3\n\
-_08019B60:\n\
- mov r0, r10\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- movs r4, 0\n\
- ldr r0, _08019BB0 @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08019B76\n\
- b _08019F76\n\
-_08019B76:\n\
- ldr r7, _08019BB4 @ =gBattleMons\n\
-_08019B78:\n\
- lsls r0, r4, 24\n\
- lsrs r0, 24\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- adds r3, r4, 0x1\n\
- cmp r0, r5\n\
- beq _08019BA2\n\
- movs r0, 0x58\n\
- muls r0, r4\n\
- adds r0, r7\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, r6\n\
- bne _08019BA2\n\
- ldr r0, _08019BB8 @ =gLastUsedAbility\n\
- strb r6, [r0]\n\
- lsls r0, r3, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08019BA2:\n\
- adds r4, r3, 0\n\
- ldr r0, _08019BB0 @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08019B78\n\
- b _08019F76\n\
- .align 2, 0\n\
-_08019BB0: .4byte gNoOfAllBanks\n\
-_08019BB4: .4byte gBattleMons\n\
-_08019BB8: .4byte gLastUsedAbility\n\
-_08019BBC:\n\
- mov r0, r10\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- movs r4, 0\n\
- ldr r0, _08019C0C @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08019BD2\n\
- b _08019F76\n\
-_08019BD2:\n\
- ldr r7, _08019C10 @ =gBattleMons\n\
-_08019BD4:\n\
- lsls r0, r4, 24\n\
- lsrs r0, 24\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- adds r3, r4, 0x1\n\
- cmp r0, r5\n\
- bne _08019BFE\n\
- movs r0, 0x58\n\
- muls r0, r4\n\
- adds r0, r7\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, r6\n\
- bne _08019BFE\n\
- ldr r0, _08019C14 @ =gLastUsedAbility\n\
- strb r6, [r0]\n\
- lsls r0, r3, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08019BFE:\n\
- adds r4, r3, 0\n\
- ldr r0, _08019C0C @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08019BD4\n\
- b _08019F76\n\
- .align 2, 0\n\
-_08019C0C: .4byte gNoOfAllBanks\n\
-_08019C10: .4byte gBattleMons\n\
-_08019C14: .4byte gLastUsedAbility\n\
-_08019C18:\n\
- mov r1, r8\n\
- ldrb r0, [r1]\n\
- cmp r0, 0xFD\n\
- beq _08019C40\n\
- cmp r0, 0xFE\n\
- beq _08019C78\n\
- movs r4, 0\n\
- ldr r0, _08019C38 @ =gNoOfAllBanks\n\
- adds r5, r0, 0\n\
- ldrb r2, [r5]\n\
- cmp r4, r2\n\
- blt _08019C32\n\
- b _08019F76\n\
-_08019C32:\n\
- ldr r2, _08019C3C @ =gBattleMons\n\
- b _08019CB0\n\
- .align 2, 0\n\
-_08019C38: .4byte gNoOfAllBanks\n\
-_08019C3C: .4byte gBattleMons\n\
-_08019C40:\n\
- movs r4, 0\n\
- ldr r0, _08019C70 @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08019C4C\n\
- b _08019F76\n\
-_08019C4C:\n\
- ldr r5, _08019C74 @ =gStatuses3\n\
- movs r2, 0x80\n\
- lsls r2, 9\n\
- adds r1, r0, 0\n\
-_08019C54:\n\
- lsls r0, r4, 2\n\
- adds r0, r5\n\
- ldr r0, [r0]\n\
- ands r0, r2\n\
- adds r3, r4, 0x1\n\
- cmp r0, 0\n\
- beq _08019C68\n\
- lsls r0, r3, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08019C68:\n\
- adds r4, r3, 0\n\
- cmp r4, r1\n\
- blt _08019C54\n\
- b _08019F76\n\
- .align 2, 0\n\
-_08019C70: .4byte gNoOfAllBanks\n\
-_08019C74: .4byte gStatuses3\n\
-_08019C78:\n\
- movs r4, 0\n\
- ldr r0, _08019CA8 @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08019C84\n\
- b _08019F76\n\
-_08019C84:\n\
- ldr r5, _08019CAC @ =gStatuses3\n\
- movs r2, 0x80\n\
- lsls r2, 10\n\
- adds r1, r0, 0\n\
-_08019C8C:\n\
- lsls r0, r4, 2\n\
- adds r0, r5\n\
- ldr r0, [r0]\n\
- ands r0, r2\n\
- adds r3, r4, 0x1\n\
- cmp r0, 0\n\
- beq _08019CA0\n\
- lsls r0, r3, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08019CA0:\n\
- adds r4, r3, 0\n\
- cmp r4, r1\n\
- blt _08019C8C\n\
- b _08019F76\n\
- .align 2, 0\n\
-_08019CA8: .4byte gNoOfAllBanks\n\
-_08019CAC: .4byte gStatuses3\n\
-_08019CB0:\n\
- movs r0, 0x58\n\
- muls r0, r4\n\
- adds r0, r2\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- adds r3, r4, 0x1\n\
- cmp r0, r6\n\
- bne _08019CCA\n\
- mov r0, r8\n\
- strb r6, [r0]\n\
- lsls r0, r3, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08019CCA:\n\
- adds r4, r3, 0\n\
- ldrb r1, [r5]\n\
- cmp r4, r1\n\
- blt _08019CB0\n\
- b _08019F76\n\
-_08019CD4:\n\
- movs r4, 0\n\
- ldr r0, _08019D10 @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08019CE0\n\
- b _08019F76\n\
-_08019CE0:\n\
- ldr r7, _08019D14 @ =gBattleMons\n\
- adds r2, r0, 0\n\
- movs r5, 0x58\n\
-_08019CE6:\n\
- adds r0, r4, 0\n\
- muls r0, r5\n\
- adds r1, r0, r7\n\
- adds r0, r1, 0\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- adds r3, r4, 0x1\n\
- cmp r0, r6\n\
- bne _08019D08\n\
- ldrh r0, [r1, 0x28]\n\
- cmp r0, 0\n\
- beq _08019D08\n\
- mov r0, r8\n\
- strb r6, [r0]\n\
- lsls r0, r3, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08019D08:\n\
- adds r4, r3, 0\n\
- cmp r4, r2\n\
- blt _08019CE6\n\
- b _08019F76\n\
- .align 2, 0\n\
-_08019D10: .4byte gNoOfAllBanks\n\
-_08019D14: .4byte gBattleMons\n\
-_08019D18:\n\
- movs r4, 0\n\
- ldr r0, _08019D50 @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08019D24\n\
- b _08019F76\n\
-_08019D24:\n\
- ldr r7, _08019D54 @ =gBattleMons\n\
- adds r1, r0, 0\n\
- movs r5, 0x58\n\
- ldr r2, _08019D58 @ =gLastUsedAbility\n\
-_08019D2C:\n\
- adds r0, r4, 0\n\
- muls r0, r5\n\
- adds r0, r7\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- adds r3, r4, 0x1\n\
- cmp r0, r6\n\
- bne _08019D48\n\
- cmp r4, r10\n\
- beq _08019D48\n\
- strb r6, [r2]\n\
- lsls r0, r3, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08019D48:\n\
- adds r4, r3, 0\n\
- cmp r4, r1\n\
- blt _08019D2C\n\
- b _08019F76\n\
- .align 2, 0\n\
-_08019D50: .4byte gNoOfAllBanks\n\
-_08019D54: .4byte gBattleMons\n\
-_08019D58: .4byte gLastUsedAbility\n\
-_08019D5C:\n\
- mov r0, r10\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- movs r4, 0\n\
- ldr r0, _08019DAC @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08019D72\n\
- b _08019F76\n\
-_08019D72:\n\
- ldr r7, _08019DB0 @ =gBattleMons\n\
-_08019D74:\n\
- lsls r0, r4, 24\n\
- lsrs r0, 24\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, r5\n\
- beq _08019DA0\n\
- movs r0, 0x58\n\
- muls r0, r4\n\
- adds r0, r7\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, r6\n\
- bne _08019DA0\n\
- ldr r0, _08019DB4 @ =gLastUsedAbility\n\
- strb r6, [r0]\n\
- mov r0, r9\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08019DA0:\n\
- adds r4, 0x1\n\
- ldr r0, _08019DAC @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08019D74\n\
- b _08019F76\n\
- .align 2, 0\n\
-_08019DAC: .4byte gNoOfAllBanks\n\
-_08019DB0: .4byte gBattleMons\n\
-_08019DB4: .4byte gLastUsedAbility\n\
-_08019DB8:\n\
- mov r0, r10\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- movs r4, 0\n\
- ldr r0, _08019E08 @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08019DCE\n\
- b _08019F76\n\
-_08019DCE:\n\
- ldr r7, _08019E0C @ =gBattleMons\n\
-_08019DD0:\n\
- lsls r0, r4, 24\n\
- lsrs r0, 24\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, r5\n\
- bne _08019DFC\n\
- movs r0, 0x58\n\
- muls r0, r4\n\
- adds r0, r7\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, r6\n\
- bne _08019DFC\n\
- ldr r0, _08019E10 @ =gLastUsedAbility\n\
- strb r6, [r0]\n\
- mov r0, r9\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08019DFC:\n\
- adds r4, 0x1\n\
- ldr r0, _08019E08 @ =gNoOfAllBanks\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt _08019DD0\n\
- b _08019F76\n\
- .align 2, 0\n\
-_08019E08: .4byte gNoOfAllBanks\n\
-_08019E0C: .4byte gBattleMons\n\
-_08019E10: .4byte gLastUsedAbility\n\
-_08019E14:\n\
- ldr r0, _08019E30 @ =BattleScript_CastformChange\n\
- bl b_push_move_exec\n\
- ldr r0, _08019E34 @ =0x02000000\n\
- ldr r2, _08019E38 @ =0x00016003\n\
- adds r1, r0, r2\n\
- strb r6, [r1]\n\
- mov r1, r9\n\
- subs r1, 0x1\n\
- ldr r3, _08019E3C @ =0x0001609b\n\
- adds r0, r3\n\
- strb r1, [r0]\n\
- b _08019F76\n\
- .align 2, 0\n\
-_08019E30: .4byte BattleScript_CastformChange\n\
-_08019E34: .4byte 0x02000000\n\
-_08019E38: .4byte 0x00016003\n\
-_08019E3C: .4byte 0x0001609b\n\
-_08019E40:\n\
- ldr r0, _08019E5C @ =BattleScript_CastformChange\n\
- bl b_push_move_exec\n\
- ldr r0, _08019E60 @ =0x02000000\n\
- ldr r5, _08019E64 @ =0x00016003\n\
- adds r1, r0, r5\n\
- mov r2, r10\n\
- strb r2, [r1]\n\
- mov r1, r9\n\
- subs r1, 0x1\n\
- ldr r3, _08019E68 @ =0x0001609b\n\
- adds r0, r3\n\
- strb r1, [r0]\n\
- b _08019F92\n\
- .align 2, 0\n\
-_08019E5C: .4byte BattleScript_CastformChange\n\
-_08019E60: .4byte 0x02000000\n\
-_08019E64: .4byte 0x00016003\n\
-_08019E68: .4byte 0x0001609b\n\
-_08019E6C:\n\
- mov r5, r8\n\
- strb r1, [r5]\n\
- ldr r0, [r2]\n\
- ldr r1, _08019E80 @ =0xfff7ffff\n\
- ands r0, r1\n\
- str r0, [r2]\n\
- ldr r0, _08019E84 @ =gUnknown_081D978C\n\
- bl b_push_move_exec\n\
- b _08019F1A\n\
- .align 2, 0\n\
-_08019E80: .4byte 0xfff7ffff\n\
-_08019E84: .4byte gUnknown_081D978C\n\
-_08019E88:\n\
- ldr r0, _08019EDC @ =BattleScript_TraceActivates\n\
- bl b_push_move_exec\n\
- ldr r1, _08019EE0 @ =gStatuses3\n\
- ldr r2, [sp, 0x18]\n\
- adds r1, r2, r1\n\
- ldr r0, [r1]\n\
- ldr r2, _08019EE4 @ =0xffefffff\n\
- ands r0, r2\n\
- str r0, [r1]\n\
- ldr r0, _08019EE8 @ =0x02000000\n\
- ldr r3, _08019EEC @ =0x00016003\n\
- adds r0, r3\n\
- strb r4, [r0]\n\
- ldr r1, _08019EF0 @ =gBattleTextBuff1\n\
- movs r4, 0xFD\n\
- strb r4, [r1]\n\
- movs r0, 0x4\n\
- strb r0, [r1, 0x1]\n\
- ldr r2, _08019EF4 @ =gActiveBank\n\
- ldrb r0, [r2]\n\
- strb r0, [r1, 0x2]\n\
- ldr r3, _08019EF8 @ =gBattlePartyID\n\
- ldrb r0, [r2]\n\
- lsls r0, 1\n\
- adds r0, r3\n\
- ldrh r0, [r0]\n\
- strb r0, [r1, 0x3]\n\
- movs r0, 0xFF\n\
- strb r0, [r1, 0x4]\n\
- ldr r1, _08019EFC @ =gBattleTextBuff2\n\
- strb r4, [r1]\n\
- movs r0, 0x9\n\
- strb r0, [r1, 0x1]\n\
- ldr r0, _08019F00 @ =gLastUsedAbility\n\
- ldrb r0, [r0]\n\
- strb r0, [r1, 0x2]\n\
- movs r0, 0x1\n\
- negs r0, r0\n\
- strb r0, [r1, 0x3]\n\
- b _08019F76\n\
- .align 2, 0\n\
-_08019EDC: .4byte BattleScript_TraceActivates\n\
-_08019EE0: .4byte gStatuses3\n\
-_08019EE4: .4byte 0xffefffff\n\
-_08019EE8: .4byte 0x02000000\n\
-_08019EEC: .4byte 0x00016003\n\
-_08019EF0: .4byte gBattleTextBuff1\n\
-_08019EF4: .4byte gActiveBank\n\
-_08019EF8: .4byte gBattlePartyID\n\
-_08019EFC: .4byte gBattleTextBuff2\n\
-_08019F00: .4byte gLastUsedAbility\n\
-_08019F04:\n\
- mov r5, r8\n\
- strb r1, [r5]\n\
- ldr r0, [r2]\n\
- ldr r1, _08019F30 @ =0xfff7ffff\n\
- ands r0, r1\n\
- str r0, [r2]\n\
- bl b_movescr_stack_push_cursor\n\
- ldr r1, _08019F34 @ =gBattlescriptCurrInstr\n\
- ldr r0, _08019F38 @ =gUnknown_081D9795\n\
- str r0, [r1]\n\
-_08019F1A:\n\
- ldr r0, _08019F3C @ =0x02000000\n\
- ldr r1, _08019F40 @ =0x000160dd\n\
- adds r0, r1\n\
- strb r4, [r0]\n\
-_08019F22:\n\
- mov r0, r9\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
- b _08019F76\n\
- .align 2, 0\n\
-_08019F30: .4byte 0xfff7ffff\n\
-_08019F34: .4byte gBattlescriptCurrInstr\n\
-_08019F38: .4byte gUnknown_081D9795\n\
-_08019F3C: .4byte 0x02000000\n\
-_08019F40: .4byte 0x000160dd\n\
-_08019F44:\n\
- movs r4, 0\n\
- ldr r0, _08019FA4 @ =gNoOfAllBanks\n\
- ldrb r1, [r0]\n\
- cmp r4, r1\n\
- bge _08019F76\n\
- ldr r0, _08019FA8 @ =gBattleMons\n\
- adds r2, r1, 0\n\
- adds r1, r0, 0\n\
- adds r1, 0x20\n\
- ldr r3, _08019FAC @ =gLastUsedAbility\n\
-_08019F58:\n\
- ldrb r0, [r1]\n\
- cmp r0, r6\n\
- bne _08019F6E\n\
- cmp r4, r10\n\
- beq _08019F6E\n\
- strb r6, [r3]\n\
- mov r0, r9\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08019F6E:\n\
- adds r1, 0x58\n\
- adds r4, 0x1\n\
- cmp r4, r2\n\
- blt _08019F58\n\
-_08019F76:\n\
- mov r2, r9\n\
- cmp r2, 0\n\
- beq _08019F92\n\
-_08019F7C:\n\
- ldr r3, [sp, 0x4]\n\
- cmp r3, 0xB\n\
- bhi _08019F92\n\
- ldr r1, _08019FAC @ =gLastUsedAbility\n\
- ldrb r0, [r1]\n\
- cmp r0, 0xFF\n\
- beq _08019F92\n\
- adds r1, r0, 0\n\
- mov r0, r10\n\
- bl RecordAbilityBattle\n\
-_08019F92:\n\
- mov r0, r9\n\
- add sp, 0x28\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\
-_08019FA4: .4byte gNoOfAllBanks\n\
-_08019FA8: .4byte gBattleMons\n\
-_08019FAC: .4byte gLastUsedAbility\n\
- .syntax divided");
-}
-
-#endif // NONMATCHING
-
void b_call_bc_move_exec(u8* BS_ptr)
{
gBattlescriptCurrInstr = BS_ptr;
@@ -6489,7 +3124,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target
targetBank = gBankAttacker;
break;
}
- ewram[gBankAttacker + 0x16010] = targetBank;
+ ewram16010arr(gBankAttacker) = targetBank;
return targetBank;
}
@@ -6502,15 +3137,15 @@ u8 IsPokeDisobedient(void)
if (gBattleTypeFlags & BATTLE_TYPE_LINK
|| GetBankSide(gBankAttacker) == 1
|| !IsOtherTrainer(gBattleMons[gBankAttacker].otId, gBattleMons[gBankAttacker].otName)
- || FlagGet(BADGE08_GET))
+ || FlagGet(FLAG_BADGE08_GET))
return 0;
obedienceLevel = 10;
- if (FlagGet(BADGE02_GET))
+ if (FlagGet(FLAG_BADGE02_GET))
obedienceLevel = 30;
- if (FlagGet(BADGE04_GET))
+ if (FlagGet(FLAG_BADGE04_GET))
obedienceLevel = 50;
- if (FlagGet(BADGE06_GET))
+ if (FlagGet(FLAG_BADGE06_GET))
obedienceLevel = 70;
if (gBattleMons[gBankAttacker].level <= obedienceLevel)
diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c
index e4a4895b5..18585cebb 100644
--- a/src/battle/battle_4.c
+++ b/src/battle/battle_4.c
@@ -1,24 +1,26 @@
#include "global.h"
#include "battle.h"
-#include "battle_move_effects.h"
-#include "moves.h"
-#include "abilities.h"
+#include "constants/battle_move_effects.h"
+#include "constants/moves.h"
+#include "constants/abilities.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "data2.h"
-#include "hold_effects.h"
-#include "rng.h"
+#include "constants/hold_effects.h"
+#include "random.h"
#include "rom3.h"
-#include "species.h"
+#include "constants/species.h"
#include "pokemon.h"
#include "text.h"
#include "palette.h"
#include "main.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "task.h"
#include "decompress.h"
+#include "pokemon_summary_screen.h"
#include "naming_screen.h"
+#include "ewram.h"
//extern needed variables
extern u8 gCritMultiplier;
@@ -80,7 +82,7 @@ extern u8 gBattleTextBuff3[];
extern u8 gLeveledUpInBattle;
extern void (*gBattleMainFunc)(void);
extern struct Window gUnknown_03004210;
-extern const u8 gUnknown_08400D7A[];
+extern const u8 BattleText_YesNo[];
extern u8 gPlayerPartyCount;
extern u16 gMoveToLearn; //move to learn
extern const u8 gTrainerMoney[];
@@ -138,7 +140,6 @@ u16 GetPokedexHeightWeight(u16 national_num, u8 heightweight);
u8 sub_814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5);
void DestroyMenuCursor(void);
void sub_802BC6C(void);
-void sub_809D9F0(struct Pokemon *party, u8, u8, void *, u32);
u8 sub_809FA30(void);
bool32 IsHMMove2(u16 move);
void sub_802BBD4(u8 r0, u8 r1, u8 r2, u8 r3, u8 sp0);
@@ -220,14 +221,12 @@ extern u8 gUnknown_081D8C65[];
extern u8 gUnknown_081D9156[];
extern u8 gUnknown_081D9468[];
-
-//useful macros
-//read via orr
+// read via orr
#define BSScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24)
-#define BSScriptRead8(ptr) (((u8)((ptr)[0])))
+#define BSScriptRead16(ptr) ((ptr)[0] | ((ptr)[1] << 8))
#define BSScriptReadPtr(ptr) ((void *)BSScriptRead32(ptr))
-//read via add
+// read via add
#define BS2ScriptRead32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
#define BS2ScriptRead16(ptr) ((ptr)[0] + ((ptr)[1] << 8))
#define BS2ScriptReadPtr(ptr) ((void *)BS2ScriptRead32(ptr))
@@ -271,14 +270,12 @@ extern u8 gUnknown_081D9468[];
#define sBYTE2_32(value)(( (u8) (((s32)(value) & (0x00FF0000)) >> 0x10)))
#define sBYTE3_32(value)(( (u8) (((s32)(value) & (0xFF000000)) >> 0x18)))
-#define USED_HELD_ITEM(bank)((((u16*)(&unk_2000000[bank * 2 + 0x160cc]))))
-
#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 HP_ON_SWITCHOUT (((u16*)(0x020160bc)))
+#define HP_ON_SWITCHOUT (((u16*)(ewram_addr + 0x160BC)))
static void atk00_attackcanceler(void);
static void atk01_accuracycheck(void);
@@ -929,7 +926,7 @@ 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_SPD};
+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};
@@ -1119,7 +1116,7 @@ static void JumpIfMoveFailed(u8 adder, u16 move)
{
gMoveHitWith[gBankTarget] = 0;
gUnknown_02024C44[gBankTarget] = 0;
- to_store = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ to_store = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -1200,13 +1197,13 @@ static bool8 AccuracyCalcHelper(u16 move)
static void atk01_accuracycheck(void)
{
- u16 move = BS2ScriptRead16(gBattlescriptCurrInstr + 5);
+ u16 move = T2_READ_16(gBattlescriptCurrInstr + 5);
if (move == 0xFFFE || move == 0xFFFF)
{
if (gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBankTarget].bankWithSureHit == gBankAttacker)
gBattlescriptCurrInstr += 7;
else if (gStatuses3[gBankTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER))
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else if (!JumpIfMoveAffectedByProtect(0))
gBattlescriptCurrInstr += 7;
}
@@ -1891,7 +1888,7 @@ static void atk0B_healthbarupdate(void)
if (gBattleMoveFlags & MOVESTATUS_NOEFFECT)
goto END;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE))
{
@@ -1930,7 +1927,7 @@ static void atk0C_datahpupdate(void)
if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE))
{
if (gDisableStructs[gActiveBank].substituteHP >= gBattleMoveDamage)
@@ -1975,7 +1972,7 @@ static void atk0C_datahpupdate(void)
else
{
gTakenDmg[gActiveBank] += gBattleMoveDamage;
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 0)
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) == 0)
gTakenDmgBanks[gActiveBank] = gBankAttacker;
else
gTakenDmgBanks[gActiveBank] = gBankTarget;
@@ -1999,7 +1996,7 @@ static void atk0C_datahpupdate(void)
{
gProtectStructs[gActiveBank].physicalDmg = gHP_dealt;
gSpecialStatuses[gActiveBank].moveturnLostHP_physical = gHP_dealt;
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 0)
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) == 0)
{
gProtectStructs[gActiveBank].physicalBank = gBankAttacker;
gSpecialStatuses[gActiveBank].moveturnPhysicalBank = gBankAttacker;
@@ -2014,7 +2011,7 @@ static void atk0C_datahpupdate(void)
{
gProtectStructs[gActiveBank].specialDmg = gHP_dealt;
gSpecialStatuses[gActiveBank].moveturnLostHP_special = gHP_dealt;
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 0)
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) == 0)
{
gProtectStructs[gActiveBank].specialBank = gBankAttacker;
gSpecialStatuses[gActiveBank].moveturnSpecialBank = gBankAttacker;
@@ -2033,7 +2030,7 @@ static void atk0C_datahpupdate(void)
}
else
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0)
gSpecialStatuses[gActiveBank].moveturnLostHP = 0xFFFF;
}
@@ -2188,7 +2185,7 @@ static void atk10_printstring(void)
{
if (gBattleExecBuffer == 0)
{
- u16 var = BS2ScriptRead16(gBattlescriptCurrInstr + 1);
+ u16 var = T2_READ_16(gBattlescriptCurrInstr + 1);
PrepareStringBattle(var, gBankAttacker);
gBattlescriptCurrInstr += 3;
gBattleCommunication[MSG_DISPLAY] = 1;
@@ -2198,7 +2195,7 @@ static void atk10_printstring(void)
static void atk11_printstring_playeronly(void)
{
gActiveBank = gBankAttacker;
- EmitPrintStringPlayerOnly(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1));
+ EmitPrintStringPlayerOnly(0, T2_READ_16(gBattlescriptCurrInstr + 1));
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 3;
gBattleCommunication[MSG_DISPLAY] = 1;
@@ -2214,7 +2211,7 @@ static void atk12_waitmessage(void)
}
else
{
- u16 to_wait = BS2ScriptRead16(gBattlescriptCurrInstr + 1);
+ u16 to_wait = T2_READ_16(gBattlescriptCurrInstr + 1);
if (++gPauseCounterBattle >= to_wait)
{
gPauseCounterBattle = 0;
@@ -2229,7 +2226,7 @@ static void atk13_printfromtable(void)
{
if (gBattleExecBuffer == 0)
{
- u16 *ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u16 *ptr = (u16 *)T1_READ_PTR(gBattlescriptCurrInstr + 1);
ptr += gBattleCommunication[MULTISTRING_CHOOSER];
PrepareStringBattle(*(u16*)ptr, gBankAttacker);
gBattlescriptCurrInstr += 5;
@@ -2241,7 +2238,7 @@ static void atk14_printfromtable_playeronly(void)
{
if (gBattleExecBuffer == 0)
{
- u16 *ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u16 *ptr = (u16 *)T1_READ_PTR(gBattlescriptCurrInstr + 1); // FIXME
ptr += gBattleCommunication[MULTISTRING_CHOOSER];
gActiveBank = gBankAttacker;
EmitPrintStringPlayerOnly(0, *(u16*)ptr);
@@ -2652,7 +2649,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{gBattlescriptCurrInstr++; return;}
gLastUsedItem = gBattleMons[gBankTarget].item;
- unk_2000000[gBankAttacker * 2 + 0x160cc] = gLastUsedItem;
+ USED_HELD_ITEM(bank) = gLastUsedItem;
gBattleMons[gBankTarget].item = 0;
gActiveBank = gBankAttacker;
@@ -2666,8 +2663,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_ItemSteal;
- ewram[gBankTarget * 2 + 0x160e8] = 0;
- //STORE_CHOICEMOVE(gBankTarget, 0);
+ CHOICED_MOVE(gBankTarget) = 0;
}
break;
case 32: //escape prevention
@@ -2742,8 +2738,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_KnockedOff;
- ewram[gEffectBank * 2 + 0x160e8] = 0;
- //STORE_CHOICEMOVE(gEffectBank, 0);
+ CHOICED_MOVE(gEffectBank) = 0;
}
break;
case 59: //overheat
@@ -2788,21 +2783,21 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
ands r0, r3\n\
strb r0, [r7, 0x3]\n\
movs r6, 0x40\n\
- ldr r0, _0801E43C @ =0x02000000\n\
+ ldr r0, _0801E43C @ =gSharedMem\n\
ldr r1, _0801E440 @ =gBankTarget\n\
b _0801E450\n\
.align 2, 0\n\
_0801E430: .4byte gBattleCommunication\n\
_0801E434: .4byte gEffectBank\n\
_0801E438: .4byte gBankAttacker\n\
-_0801E43C: .4byte 0x02000000\n\
+_0801E43C: .4byte gSharedMem\n\
_0801E440: .4byte gBankTarget\n\
_0801E444:\n\
ldr r2, _0801E538 @ =gEffectBank\n\
ldr r0, _0801E53C @ =gBankTarget\n\
ldrb r0, [r0]\n\
strb r0, [r2]\n\
- ldr r0, _0801E540 @ =0x02000000\n\
+ ldr r0, _0801E540 @ =gSharedMem\n\
ldr r1, _0801E544 @ =gBankAttacker\n\
_0801E450:\n\
ldrb r1, [r1]\n\
@@ -2926,7 +2921,7 @@ _0801E536:\n\
.align 2, 0\n\
_0801E538: .4byte gEffectBank\n\
_0801E53C: .4byte gBankTarget\n\
-_0801E540: .4byte 0x02000000\n\
+_0801E540: .4byte gSharedMem\n\
_0801E544: .4byte gBankAttacker\n\
_0801E548: .4byte 0x00016003\n\
_0801E54C: .4byte gBattleMons\n\
@@ -3669,7 +3664,7 @@ _0801EAFA:\n\
beq _0801EB14\n\
bl _0801F5FA\n\
_0801EB14:\n\
- ldr r0, _0801EB30 @ =0x02000000\n\
+ ldr r0, _0801EB30 @ =gSharedMem\n\
ldrb r1, [r7, 0x3]\n\
ldr r2, _0801EB34 @ =0x000160ca\n\
adds r0, r2\n\
@@ -3681,7 +3676,7 @@ _0801EB14:\n\
bl _0801F4F2\n\
.align 2, 0\n\
_0801EB2C: .4byte gBattleCommunication\n\
-_0801EB30: .4byte 0x02000000\n\
+_0801EB30: .4byte gSharedMem\n\
_0801EB34: .4byte 0x000160ca\n\
_0801EB38: .4byte gHitMarker\n\
_0801EB3C:\n\
@@ -4090,7 +4085,7 @@ _0801EEE8:\n\
ldr r0, [r2]\n\
orrs r0, r1\n\
str r0, [r2]\n\
- ldr r2, _0801EF80 @ =0x02000000\n\
+ ldr r2, _0801EF80 @ =gSharedMem\n\
mov r3, r8\n\
ldrb r0, [r3]\n\
lsls r0, 1\n\
@@ -4155,7 +4150,7 @@ _0801EF70:\n\
bne _0801EF60\n\
b _0801F5FA\n\
.align 2, 0\n\
-_0801EF80: .4byte 0x02000000\n\
+_0801EF80: .4byte gSharedMem\n\
_0801EF84: .4byte 0x00016004\n\
_0801EF88: .4byte gCurrentMove\n\
_0801EF8C: .4byte 0x00016005\n\
@@ -4212,7 +4207,7 @@ _0801EFEC:\n\
beq _0801F008\n\
b _0801F5DC\n\
_0801F008:\n\
- ldr r2, _0801F02C @ =0x02000000\n\
+ ldr r2, _0801F02C @ =gSharedMem\n\
ldrb r1, [r7, 0x3]\n\
movs r0, 0x3F\n\
ands r0, r1\n\
@@ -4229,7 +4224,7 @@ _0801F008:\n\
ldr r0, _0801F03C @ =BattleScript_StatUp\n\
b _0801F5F8\n\
.align 2, 0\n\
-_0801F02C: .4byte 0x02000000\n\
+_0801F02C: .4byte gSharedMem\n\
_0801F030: .4byte 0x000160a4\n\
_0801F034: .4byte 0x000160a5\n\
_0801F038: .4byte gBattlescriptCurrInstr\n\
@@ -4250,7 +4245,7 @@ _0801F040:\n\
beq _0801F05E\n\
b _0801F5DC\n\
_0801F05E:\n\
- ldr r2, _0801F080 @ =0x02000000\n\
+ ldr r2, _0801F080 @ =gSharedMem\n\
ldrb r1, [r7, 0x3]\n\
movs r0, 0x3F\n\
ands r0, r1\n\
@@ -4267,7 +4262,7 @@ _0801F05E:\n\
ldr r0, _0801F090 @ =BattleScript_StatDown\n\
b _0801F5F8\n\
.align 2, 0\n\
-_0801F080: .4byte 0x02000000\n\
+_0801F080: .4byte gSharedMem\n\
_0801F084: .4byte 0x000160a4\n\
_0801F088: .4byte 0x000160a5\n\
_0801F08C: .4byte gBattlescriptCurrInstr\n\
@@ -4287,7 +4282,7 @@ _0801F094:\n\
beq _0801F0B0\n\
b _0801F5DC\n\
_0801F0B0:\n\
- ldr r2, _0801F0D4 @ =0x02000000\n\
+ ldr r2, _0801F0D4 @ =gSharedMem\n\
ldrb r1, [r7, 0x3]\n\
movs r0, 0x3F\n\
ands r0, r1\n\
@@ -4304,7 +4299,7 @@ _0801F0B0:\n\
ldr r0, _0801F0E4 @ =BattleScript_StatUp\n\
b _0801F5F8\n\
.align 2, 0\n\
-_0801F0D4: .4byte 0x02000000\n\
+_0801F0D4: .4byte gSharedMem\n\
_0801F0D8: .4byte 0x000160a4\n\
_0801F0DC: .4byte 0x000160a5\n\
_0801F0E0: .4byte gBattlescriptCurrInstr\n\
@@ -4325,7 +4320,7 @@ _0801F0E8:\n\
beq _0801F106\n\
b _0801F5DC\n\
_0801F106:\n\
- ldr r2, _0801F128 @ =0x02000000\n\
+ ldr r2, _0801F128 @ =gSharedMem\n\
ldrb r1, [r7, 0x3]\n\
movs r0, 0x3F\n\
ands r0, r1\n\
@@ -4342,7 +4337,7 @@ _0801F106:\n\
ldr r0, _0801F138 @ =BattleScript_StatDown\n\
b _0801F5F8\n\
.align 2, 0\n\
-_0801F128: .4byte 0x02000000\n\
+_0801F128: .4byte gSharedMem\n\
_0801F12C: .4byte 0x000160a4\n\
_0801F130: .4byte 0x000160a5\n\
_0801F134: .4byte gBattlescriptCurrInstr\n\
@@ -4530,7 +4525,7 @@ _0801F2B0:\n\
b _0801F5DC\n\
_0801F2B6:\n\
lsls r0, r1, 1\n\
- ldr r5, _0801F344 @ =0x020160f0\n\
+ ldr r5, _0801F344 @ =gSharedMem + 0x160F0\n\
adds r0, r5\n\
ldr r1, _0801F348 @ =gLastUsedItem\n\
strh r2, [r0]\n\
@@ -4595,7 +4590,7 @@ _0801F2B6:\n\
b _0801F5FA\n\
.align 2, 0\n\
_0801F340: .4byte gBankAttacker\n\
-_0801F344: .4byte 0x020160f0\n\
+_0801F344: .4byte gSharedMem + 0x160F0\n\
_0801F348: .4byte gLastUsedItem\n\
_0801F34C: .4byte gActiveBank\n\
_0801F350: .4byte gBattlescriptCurrInstr\n\
@@ -4866,7 +4861,7 @@ _0801F540:\n\
bl b_movescr_stack_push\n\
ldr r0, _0801F5CC @ =BattleScript_KnockedOff\n\
str r0, [r4]\n\
- ldr r1, _0801F5D0 @ =0x02000000\n\
+ ldr r1, _0801F5D0 @ =gSharedMem\n\
mov r2, r8\n\
ldrb r0, [r2]\n\
lsls r0, 1\n\
@@ -4888,7 +4883,7 @@ _0801F5C0: .4byte gBitTable\n\
_0801F5C4: .4byte gBattlePartyID\n\
_0801F5C8: .4byte gBattlescriptCurrInstr\n\
_0801F5CC: .4byte BattleScript_KnockedOff\n\
-_0801F5D0: .4byte 0x02000000\n\
+_0801F5D0: .4byte gSharedMem\n\
_0801F5D4: .4byte 0x000160e8\n\
_0801F5D8: .4byte 0x000160e9\n\
_0801F5DC:\n\
@@ -4961,7 +4956,7 @@ static void atk17_seteffectsecondary(void)
static void atk18_status_effect_clear(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gBattleCommunication[MOVE_EFFECT_BYTE] <= 6)
gBattleMons[gActiveBank].status1 &= (~gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]);
else
@@ -4981,7 +4976,7 @@ static void atk19_faint_pokemon(void)
gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
if (gHitMarker & HITMARKER_FAINTED(gActiveBank))
{
- r4 = BSScriptReadPtr(gBattlescriptCurrInstr + 3);
+ r4 = T1_READ_PTR(gBattlescriptCurrInstr + 3);
b_movescr_stack_pop_cursor();
gBattlescriptCurrInstr = r4;
@@ -5011,12 +5006,12 @@ static void atk19_faint_pokemon(void)
if (!(gAbsentBankFlags & gBitTable[gActiveBank])
&& gBattleMons[gActiveBank].hp == 0)
{
- ewram[0x160AC + bank * 2 + 0] = 0;
- ewram[0x160AC + bank * 2 + 1] = 0;
- ewram[0x16100 + bank * 4 + 0] = 0;
- ewram[0x16100 + bank * 4 + 1] = 0;
- ewram[0x16100 + bank * 4 + 2] = 0;
- ewram[0x16100 + bank * 4 + 3] = 0;
+ ewram160ACarr2(0, bank) = 0;
+ ewram160ACarr2(1, bank) = 0;
+ ewram16100arr2(0, bank) = 0;
+ ewram16100arr2(1, bank) = 0;
+ ewram16100arr2(2, bank) = 0;
+ ewram16100arr2(3, bank) = 0;
gHitMarker |= HITMARKER_FAINTED(gActiveBank);
b_movescr_stack_push(gBattlescriptCurrInstr + 7);
@@ -5052,7 +5047,7 @@ static void atk19_faint_pokemon(void)
&& gBattleMons[gBankAttacker].hp != 0
&& gCurrentMove != MOVE_STRUGGLE)
{
- u8 moveIndex = ewram[0x1608C + gBankAttacker];
+ u8 moveIndex = ewram1608Carr(gBankAttacker);
gBattleMons[gBankAttacker].pp[moveIndex] = 0;
b_movescr_stack_push(gBattlescriptCurrInstr);
@@ -5079,7 +5074,7 @@ static void atk1A_faint_animation(void)
{
if (gBattleExecBuffer == 0)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
Emitcmd10(0);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
@@ -5091,7 +5086,7 @@ static void atk1B_faint_effects_clear(void)
//Clears things like attraction or trapping to other banks
if (gBattleExecBuffer == 0)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
gBattleMons[gActiveBank].status1 = 0;
EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
@@ -5102,9 +5097,9 @@ static void atk1B_faint_effects_clear(void)
static void atk1C_jumpifstatus(void)
{
- u8 bank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- u32 flags = BS2ScriptRead32(gBattlescriptCurrInstr + 2);
- void* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6);
+ u8 bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ u32 flags = T2_READ_32(gBattlescriptCurrInstr + 2);
+ void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 6);
if (gBattleMons[bank].status1 & flags && gBattleMons[bank].hp)
gBattlescriptCurrInstr = jump_loc;
else
@@ -5113,9 +5108,9 @@ static void atk1C_jumpifstatus(void)
static void atk1D_jumpifstatus2(void)
{
- u8 bank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- u32 flags = BS2ScriptRead32(gBattlescriptCurrInstr + 2);
- void* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6);
+ u8 bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ u32 flags = T2_READ_32(gBattlescriptCurrInstr + 2);
+ void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 6);
if (gBattleMons[bank].status2 & flags && gBattleMons[bank].hp)
gBattlescriptCurrInstr = jump_loc;
else
@@ -5125,9 +5120,9 @@ static void atk1D_jumpifstatus2(void)
static void atk1E_jumpifability(void)
{
u8 bank;
- u8 ability = BSScriptRead8(gBattlescriptCurrInstr + 2);
- void* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 3);
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 8)
+ u8 ability = T2_READ_8(gBattlescriptCurrInstr + 2);
+ void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 3);
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) == 8)
{
bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBankAttacker, ability, 0, 0);
if (bank)
@@ -5135,12 +5130,12 @@ static void atk1E_jumpifability(void)
gLastUsedAbility = ability;
gBattlescriptCurrInstr = jump_loc;
RecordAbilityBattle(bank -1, gLastUsedAbility);
- unk_2000000[0x160f8] = bank - 1;
+ ewram160F8 = bank - 1;
}
else
gBattlescriptCurrInstr += 7;
}
- else if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 9)
+ else if (T2_READ_8(gBattlescriptCurrInstr + 1) == 9)
{
bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBankAttacker, ability, 0, 0);
if (bank)
@@ -5148,20 +5143,20 @@ static void atk1E_jumpifability(void)
gLastUsedAbility = ability;
gBattlescriptCurrInstr = jump_loc;
RecordAbilityBattle(bank - 1, gLastUsedAbility);
- unk_2000000[0x160f8] = bank - 1;
+ ewram160F8 = bank - 1;
}
else
gBattlescriptCurrInstr += 7;
}
else
{
- bank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gBattleMons[bank].ability == ability)
{
gLastUsedAbility = ability;
gBattlescriptCurrInstr = jump_loc;
RecordAbilityBattle(bank, gLastUsedAbility);
- unk_2000000[0x160f8] = bank;
+ ewram160F8 = bank;
}
else
gBattlescriptCurrInstr += 7;
@@ -5173,13 +5168,13 @@ static void atk1F_jumpifsideaffecting(void)
u8 side;
u16 flags;
void* jump_loc;
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 1)
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) == 1)
side = GetBankIdentity(gBankAttacker) & 1;
else
side = GetBankIdentity(gBankTarget) & 1;
- flags = BS2ScriptRead16(gBattlescriptCurrInstr + 2);
- jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 4);
+ flags = T2_READ_16(gBattlescriptCurrInstr + 2);
+ jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 4);
if (gSideAffecting[side] & flags)
gBattlescriptCurrInstr = jump_loc;
@@ -5190,37 +5185,37 @@ static void atk1F_jumpifsideaffecting(void)
static void atk20_jumpifstat(void)
{
u8 ret = 0;
- u8 bank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- u8 value = gBattleMons[bank].statStages[BSScriptRead8(gBattlescriptCurrInstr + 3)];
- switch (BSScriptRead8(gBattlescriptCurrInstr + 2))
+ u8 bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ u8 value = gBattleMons[bank].statStages[T2_READ_8(gBattlescriptCurrInstr + 3)];
+ switch (T2_READ_8(gBattlescriptCurrInstr + 2))
{
case CMP_EQUAL:
- if (value == BSScriptRead8(gBattlescriptCurrInstr + 4))
+ if (value == T2_READ_8(gBattlescriptCurrInstr + 4))
ret++;
break;
case CMP_NOT_EQUAL:
- if (value != BSScriptRead8(gBattlescriptCurrInstr + 4))
+ if (value != T2_READ_8(gBattlescriptCurrInstr + 4))
ret++;
break;
case CMP_GREATER_THAN:
- if (value > BSScriptRead8(gBattlescriptCurrInstr + 4))
+ if (value > T2_READ_8(gBattlescriptCurrInstr + 4))
ret++;
break;
case CMP_LESS_THAN:
- if (value < BSScriptRead8(gBattlescriptCurrInstr + 4))
+ if (value < T2_READ_8(gBattlescriptCurrInstr + 4))
ret++;
break;
case CMP_COMMON_BITS:
- if (value & BSScriptRead8(gBattlescriptCurrInstr + 4))
+ if (value & T2_READ_8(gBattlescriptCurrInstr + 4))
ret++;
break;
case CMP_NO_COMMON_BITS:
- if (!(value & BSScriptRead8(gBattlescriptCurrInstr + 4)))
+ if (!(value & T2_READ_8(gBattlescriptCurrInstr + 4)))
ret++;
break;
}
if (ret)
- gBattlescriptCurrInstr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5);
+ gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 5);
else
gBattlescriptCurrInstr += 9;
}
@@ -5230,10 +5225,10 @@ static void atk21_jumpifstatus3(void)
u32 flags;
void* jump_loc;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- flags = BS2ScriptRead32(gBattlescriptCurrInstr + 2);
- jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 7);
- if (BSScriptRead8(gBattlescriptCurrInstr + 6))
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ flags = T2_READ_32(gBattlescriptCurrInstr + 2);
+ jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 7);
+ if (T2_READ_8(gBattlescriptCurrInstr + 6))
{
if ((gStatuses3[gActiveBank] & flags) != 0)
gBattlescriptCurrInstr += 11;
@@ -5251,9 +5246,9 @@ static void atk21_jumpifstatus3(void)
static void atk22_jumpiftype(void) //u8 bank, u8 type, *ptr
{
- u8 bank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- u8 type = BSScriptRead8(gBattlescriptCurrInstr + 2);
- void* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 3);
+ u8 bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ u8 type = T2_READ_8(gBattlescriptCurrInstr + 2);
+ void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 3);
if (gBattleMons[bank].type1 == type || gBattleMons[bank].type2 == type)
gBattlescriptCurrInstr = jump_loc;
@@ -5268,7 +5263,7 @@ static void atk23_getexp(void)
u8 hold_effect;
int via_expshare = 0, sent_in;
u16* exp = &BATTLE_STRUCT->exp;
- gBank1 = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gBank1 = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
sent_in = gSentPokesToOpponent[(gBank1 & 2) >> 1];
switch (BATTLE_STRUCT->atk23StateTracker)
{
@@ -5447,7 +5442,7 @@ static void atk23_getexp(void)
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_SPD);
+ 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);
@@ -5496,7 +5491,7 @@ static void atk23_getexp(void)
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_SPD);
+ 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);
}
@@ -5509,8 +5504,8 @@ static void atk23_getexp(void)
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_SPD);
- gBattleMons[2].spAttack = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_SPD /*RIP*/);
+ 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);
}
BATTLE_STRUCT->atk23StateTracker = 5;
@@ -5555,7 +5550,7 @@ static void atk23_getexp(void)
mov r5, r8\n\
push {r5-r7}\n\
movs r6, 0\n\
- ldr r0, _0802004C @ =0x0201605c\n\
+ ldr r0, _0802004C @ =gSharedMem + 0x1605C\n\
mov r10, r0\n\
ldr r0, _08020050 @ =gBattlescriptCurrInstr\n\
ldr r0, [r0]\n\
@@ -5584,7 +5579,7 @@ _08020040:\n\
ldr r0, [r0]\n\
mov pc, r0\n\
.align 2, 0\n\
-_0802004C: .4byte 0x0201605c\n\
+_0802004C: .4byte gSharedMem + 0x1605C\n\
_08020050: .4byte gBattlescriptCurrInstr\n\
_08020054: .4byte gBank1\n\
_08020058: .4byte gSentPokesToOpponent\n\
@@ -5613,7 +5608,7 @@ _0802007C:\n\
cmp r0, 0\n\
beq _080200BC\n\
_08020098:\n\
- ldr r0, _080200B4 @ =0x02000000\n\
+ ldr r0, _080200B4 @ =gSharedMem\n\
ldr r1, _080200B8 @ =0x0001600f\n\
adds r0, r1\n\
movs r1, 0x6\n\
@@ -5623,10 +5618,10 @@ _08020098:\n\
_080200A8: .4byte gBank1\n\
_080200AC: .4byte gBattleTypeFlags\n\
_080200B0: .4byte 0x00000982\n\
-_080200B4: .4byte 0x02000000\n\
+_080200B4: .4byte gSharedMem\n\
_080200B8: .4byte 0x0001600f\n\
_080200BC:\n\
- ldr r2, _080200E8 @ =0x02000000\n\
+ ldr r2, _080200E8 @ =gSharedMem\n\
ldr r3, _080200EC @ =0x0001600f\n\
adds r1, r2, r3\n\
ldrb r0, [r1]\n\
@@ -5648,7 +5643,7 @@ _080200BC:\n\
strb r0, [r2]\n\
bl _08020996\n\
.align 2, 0\n\
-_080200E8: .4byte 0x02000000\n\
+_080200E8: .4byte gSharedMem\n\
_080200EC: .4byte 0x0001600f\n\
_080200F0: .4byte 0x00016113\n\
_080200F4: .4byte gBitTable\n\
@@ -5775,7 +5770,7 @@ _080201F6:\n\
ldr r0, _08020248 @ =gExpShareExp\n\
strh r6, [r0]\n\
_080201FA:\n\
- ldr r1, _0802024C @ =0x02000000\n\
+ ldr r1, _0802024C @ =gSharedMem\n\
ldr r3, _08020250 @ =0x0001600f\n\
adds r2, r1, r3\n\
ldrb r0, [r2]\n\
@@ -5796,7 +5791,7 @@ _08020216:\n\
beq _08020220\n\
b _08020996\n\
_08020220:\n\
- ldr r0, _0802024C @ =0x02000000\n\
+ ldr r0, _0802024C @ =gSharedMem\n\
ldr r1, _08020254 @ =0x00016018\n\
adds r0, r1\n\
ldrb r1, [r0]\n\
@@ -5817,7 +5812,7 @@ _08020220:\n\
b _08020274\n\
.align 2, 0\n\
_08020248: .4byte gExpShareExp\n\
-_0802024C: .4byte 0x02000000\n\
+_0802024C: .4byte gSharedMem\n\
_08020250: .4byte 0x0001600f\n\
_08020254: .4byte 0x00016018\n\
_08020258: .4byte 0x0001605f\n\
@@ -5830,7 +5825,7 @@ _0802026C:\n\
lsls r0, 24\n\
lsrs r4, r0, 24\n\
_08020274:\n\
- ldr r5, _08020294 @ =0x02000000\n\
+ ldr r5, _08020294 @ =gSharedMem\n\
cmp r4, 0x19\n\
beq _080202A0\n\
ldr r3, _08020298 @ =0x0001605f\n\
@@ -5846,7 +5841,7 @@ _08020274:\n\
adds r1, r5, r0\n\
b _080202C8\n\
.align 2, 0\n\
-_08020294: .4byte 0x02000000\n\
+_08020294: .4byte gSharedMem\n\
_08020298: .4byte 0x0001605f\n\
_0802029C: .4byte 0x0001600f\n\
_080202A0:\n\
@@ -5904,7 +5899,7 @@ _080202E8:\n\
adds r0, 0x1\n\
strb r0, [r5]\n\
_08020316:\n\
- ldr r5, _0802035C @ =0x02000000\n\
+ ldr r5, _0802035C @ =gSharedMem\n\
ldr r1, _08020360 @ =0x00016018\n\
adds r0, r5, r1\n\
ldrb r1, [r0]\n\
@@ -5936,7 +5931,7 @@ _0802034C: .4byte gBattleTypeFlags\n\
_08020350: .4byte gBattleMons\n\
_08020354: .4byte 0x0001601b\n\
_08020358: .4byte 0x00000161\n\
-_0802035C: .4byte 0x02000000\n\
+_0802035C: .4byte gSharedMem\n\
_08020360: .4byte 0x00016018\n\
_08020364: .4byte gPlayerParty\n\
_08020368: .4byte 0x0001605f\n\
@@ -5980,7 +5975,7 @@ _0802039C:\n\
bl __divsi3\n\
str r0, [r4]\n\
_080203B8:\n\
- ldr r0, _080203F8 @ =0x02000000\n\
+ ldr r0, _080203F8 @ =gSharedMem\n\
ldr r2, _080203FC @ =0x00016018\n\
adds r0, r2\n\
ldrb r1, [r0]\n\
@@ -6007,7 +6002,7 @@ _080203B8:\n\
_080203EC: .4byte gBattleMoveDamage\n\
_080203F0: .4byte gExpShareExp\n\
_080203F4: .4byte gBattleTypeFlags\n\
-_080203F8: .4byte 0x02000000\n\
+_080203F8: .4byte gSharedMem\n\
_080203FC: .4byte 0x00016018\n\
_08020400: .4byte gPlayerParty\n\
_08020404:\n\
@@ -6022,7 +6017,7 @@ _0802040A:\n\
cmp r1, 0\n\
beq _08020488\n\
ldr r1, _08020448 @ =gBattlePartyID\n\
- ldr r0, _0802044C @ =0x02000000\n\
+ ldr r0, _0802044C @ =gSharedMem\n\
ldr r3, _08020450 @ =0x00016018\n\
adds r2, r0, r3\n\
ldrh r1, [r1, 0x4]\n\
@@ -6045,7 +6040,7 @@ _0802043C: .4byte 0x00000149\n\
_08020440: .4byte gBattleMoveDamage\n\
_08020444: .4byte gBattleTypeFlags\n\
_08020448: .4byte gBattlePartyID\n\
-_0802044C: .4byte 0x02000000\n\
+_0802044C: .4byte gSharedMem\n\
_08020450: .4byte 0x00016018\n\
_08020454: .4byte gBitTable\n\
_08020458: .4byte gAbsentBankFlags\n\
@@ -6072,7 +6067,7 @@ _0802047C:\n\
.align 2, 0\n\
_08020484: .4byte 0x000160a2\n\
_08020488:\n\
- ldr r0, _08020530 @ =0x02000000\n\
+ ldr r0, _08020530 @ =gSharedMem\n\
ldr r3, _08020534 @ =0x000160a2\n\
adds r0, r3\n\
strb r1, [r0]\n\
@@ -6083,7 +6078,7 @@ _08020490:\n\
strb r2, [r1]\n\
movs r5, 0x4\n\
strb r5, [r1, 0x1]\n\
- ldr r4, _08020530 @ =0x02000000\n\
+ ldr r4, _08020530 @ =gSharedMem\n\
ldr r0, _08020534 @ =0x000160a2\n\
adds r6, r4, r0\n\
ldrb r0, [r6]\n\
@@ -6147,7 +6142,7 @@ _08020490:\n\
ldrh r1, [r1]\n\
bl MonGainEVs\n\
_0802051E:\n\
- ldr r1, _08020530 @ =0x02000000\n\
+ ldr r1, _08020530 @ =gSharedMem\n\
ldr r3, _08020554 @ =0x0001605f\n\
adds r2, r1, r3\n\
ldrb r0, [r2]\n\
@@ -6157,7 +6152,7 @@ _0802051E:\n\
adds r1, r0\n\
b _08020618\n\
.align 2, 0\n\
-_08020530: .4byte 0x02000000\n\
+_08020530: .4byte gSharedMem\n\
_08020534: .4byte 0x000160a2\n\
_08020538: .4byte gBattleTextBuff1\n\
_0802053C: .4byte 0x00016018\n\
@@ -6176,7 +6171,7 @@ _0802055C:\n\
b _08020996\n\
_08020566:\n\
ldr r1, _08020624 @ =gBattleBufferB\n\
- ldr r4, _08020628 @ =0x02000000\n\
+ ldr r4, _08020628 @ =gSharedMem\n\
ldr r3, _0802062C @ =0x000160a2\n\
adds r3, r4\n\
mov r8, r3\n\
@@ -6252,7 +6247,7 @@ _08020566:\n\
ldrb r0, [r4]\n\
bl MarkBufferBankForExecution\n\
_08020612:\n\
- ldr r1, _08020628 @ =0x02000000\n\
+ ldr r1, _08020628 @ =gSharedMem\n\
ldr r3, _08020644 @ =0x0001600f\n\
adds r1, r3\n\
_08020618:\n\
@@ -6263,7 +6258,7 @@ _08020618:\n\
.align 2, 0\n\
_08020620: .4byte gBattleExecBuffer\n\
_08020624: .4byte gBattleBufferB\n\
-_08020628: .4byte 0x02000000\n\
+_08020628: .4byte gSharedMem\n\
_0802062C: .4byte 0x000160a2\n\
_08020630: .4byte 0x00016018\n\
_08020634: .4byte gPlayerParty\n\
@@ -6279,7 +6274,7 @@ _08020648:\n\
b _08020996\n\
_08020652:\n\
ldr r1, _080208B0 @ =gActiveBank\n\
- ldr r4, _080208B4 @ =0x02000000\n\
+ ldr r4, _080208B4 @ =gSharedMem\n\
ldr r2, _080208B8 @ =0x000160a2\n\
adds r0, r4, r2\n\
ldrb r0, [r0]\n\
@@ -6331,7 +6326,7 @@ _080206A8:\n\
ldr r5, _080208B0 @ =gActiveBank\n\
ldrb r0, [r5]\n\
strb r0, [r1, 0x2]\n\
- ldr r0, _080208B4 @ =0x02000000\n\
+ ldr r0, _080208B4 @ =gSharedMem\n\
ldr r3, _080208C8 @ =0x00016018\n\
adds r6, r0, r3\n\
ldrb r0, [r6]\n\
@@ -6475,7 +6470,7 @@ _080206A8:\n\
strh r0, [r4, 0xA]\n\
_080207EC:\n\
ldr r0, _080208C4 @ =gBattlePartyID\n\
- ldr r1, _080208B4 @ =0x02000000\n\
+ ldr r1, _080208B4 @ =gSharedMem\n\
ldr r3, _080208C8 @ =0x00016018\n\
adds r7, r1, r3\n\
ldrb r2, [r7]\n\
@@ -6564,7 +6559,7 @@ _080207EC:\n\
.align 2, 0\n\
_080208AC: .4byte gBattleExecBuffer\n\
_080208B0: .4byte gActiveBank\n\
-_080208B4: .4byte 0x02000000\n\
+_080208B4: .4byte gSharedMem\n\
_080208B8: .4byte 0x000160a2\n\
_080208BC: .4byte gBattleBufferB\n\
_080208C0: .4byte gBattleTypeFlags\n\
@@ -6584,7 +6579,7 @@ _080208F0:\n\
movs r0, 0\n\
str r0, [r1]\n\
_080208F6:\n\
- ldr r0, _08020908 @ =0x02000000\n\
+ ldr r0, _08020908 @ =gSharedMem\n\
ldr r1, _0802090C @ =0x0001600f\n\
adds r0, r1\n\
movs r1, 0x5\n\
@@ -6592,14 +6587,14 @@ _080208F6:\n\
b _08020996\n\
.align 2, 0\n\
_08020904: .4byte gBattleMoveDamage\n\
-_08020908: .4byte 0x02000000\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 @ =0x02000000\n\
+ ldr r0, _08020928 @ =gSharedMem\n\
ldr r2, _0802092C @ =0x0001600f\n\
adds r0, r2\n\
movs r1, 0x3\n\
@@ -6607,10 +6602,10 @@ _08020910:\n\
b _08020996\n\
.align 2, 0\n\
_08020924: .4byte gBattleMoveDamage\n\
-_08020928: .4byte 0x02000000\n\
+_08020928: .4byte gSharedMem\n\
_0802092C: .4byte 0x0001600f\n\
_08020930:\n\
- ldr r2, _08020950 @ =0x02000000\n\
+ ldr r2, _08020950 @ =gSharedMem\n\
ldr r3, _08020954 @ =0x00016018\n\
adds r1, r2, r3\n\
ldrb r0, [r1]\n\
@@ -6626,7 +6621,7 @@ _08020930:\n\
strb r0, [r1]\n\
b _08020996\n\
.align 2, 0\n\
-_08020950: .4byte 0x02000000\n\
+_08020950: .4byte gSharedMem\n\
_08020954: .4byte 0x00016018\n\
_08020958: .4byte 0x0001600f\n\
_0802095C:\n\
@@ -6724,14 +6719,14 @@ static void atk24(void)
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
if (found2 + found1 > 1)
- gBattlescriptCurrInstr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
}
else
{
if (found2 != 0 && found1 != 0)
- gBattlescriptCurrInstr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
}
@@ -6979,7 +6974,7 @@ static void atk25_move_values_cleanup(void)
static void atk26_set_multihit(void)
{
- gMultiHitCounter = BSScriptRead8(gBattlescriptCurrInstr + 1);
+ gMultiHitCounter = T2_READ_8(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr += 2;
}
@@ -6988,20 +6983,20 @@ static void atk27_decrement_multihit(void)
if (--gMultiHitCounter == 0)
gBattlescriptCurrInstr += 5;
else
- gBattlescriptCurrInstr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atk28_goto(void)
{
- gBattlescriptCurrInstr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atk29_jumpifbyte(void)
{
- u8 caseID = BSScriptRead8(gBattlescriptCurrInstr + 1);
- u8* ptr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2);
- u8 value = BSScriptRead8(gBattlescriptCurrInstr + 6);
- u8* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 7);
+ u8 caseID = T2_READ_8(gBattlescriptCurrInstr + 1);
+ u8* ptr = T2_READ_PTR(gBattlescriptCurrInstr + 2);
+ u8 value = T2_READ_8(gBattlescriptCurrInstr + 6);
+ u8* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 7);
gBattlescriptCurrInstr += 11;
switch (caseID)
{
@@ -7034,10 +7029,10 @@ static void atk29_jumpifbyte(void)
static void atk2A_jumpifhalfword(void)
{
- u8 caseID = BSScriptRead8(gBattlescriptCurrInstr + 1);
- u16* ptr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2);
- u16 value = BS2ScriptRead16(gBattlescriptCurrInstr + 6);
- u8* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 8);
+ u8 caseID = T2_READ_8(gBattlescriptCurrInstr + 1);
+ u16* ptr = T2_READ_PTR(gBattlescriptCurrInstr + 2);
+ u16 value = T2_READ_16(gBattlescriptCurrInstr + 6);
+ u8* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 8);
gBattlescriptCurrInstr += 12;
switch (caseID)
{
@@ -7068,12 +7063,13 @@ static void atk2A_jumpifhalfword(void)
}
}
+// Strange that there's an instance of T1_READ_32 in what seems to be a T2 function. see global.h for the distinction.
static void atk2B_jumpifword(void)
{
- u8 caseID = BSScriptRead8(gBattlescriptCurrInstr + 1);
- u32* ptr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2);
- u32 value = BSScriptRead32(gBattlescriptCurrInstr + 6);
- u8* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 10);
+ u8 caseID = T2_READ_8(gBattlescriptCurrInstr + 1);
+ u32* ptr = T2_READ_PTR(gBattlescriptCurrInstr + 2);
+ u32 value = T1_READ_32(gBattlescriptCurrInstr + 6);
+ u8* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 10);
gBattlescriptCurrInstr += 14;
switch (caseID)
{
@@ -7107,10 +7103,10 @@ static void atk2B_jumpifword(void)
static void atk2C_jumpifarrayequal(void)
{
//Mem1, Mem2, Size, Jump Loc
- u8* mem1 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- u8* mem2 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5);
- u32 size = BSScriptRead8(gBattlescriptCurrInstr + 9);
- u8* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 10);
+ u8* mem1 = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ u8* mem2 = T2_READ_PTR(gBattlescriptCurrInstr + 5);
+ u32 size = T2_READ_8(gBattlescriptCurrInstr + 9);
+ u8* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 10);
u8 i;
for (i = 0; i < size; i++)
@@ -7131,10 +7127,10 @@ static void atk2D_jumpifarraynotequal(void)
{
//Mem1, Mem2, Size, Jump Loc
u8 equal_bytes = 0;
- u8* mem1 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- u8* mem2 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5);
- u32 size = BSScriptRead8(gBattlescriptCurrInstr + 9);
- u8* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 10);
+ u8* mem1 = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ u8* mem2 = T2_READ_PTR(gBattlescriptCurrInstr + 5);
+ u32 size = T2_READ_8(gBattlescriptCurrInstr + 9);
+ u8* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 10);
u8 i;
for (i = 0; i < size; i++)
@@ -7154,30 +7150,30 @@ static void atk2D_jumpifarraynotequal(void)
static void atk2E_setbyte(void)
{
- u8* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- *mem = BSScriptRead8(gBattlescriptCurrInstr + 5);
+ u8* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ *mem = T2_READ_8(gBattlescriptCurrInstr + 5);
gBattlescriptCurrInstr += 6;
}
static void atk2F_addbyte(void)
{
- u8* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- *mem += BSScriptRead8(gBattlescriptCurrInstr + 5);
+ u8* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ *mem += T2_READ_8(gBattlescriptCurrInstr + 5);
gBattlescriptCurrInstr += 6;
}
static void atk30_subbyte(void)
{
- u8* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- *mem -= BSScriptRead8(gBattlescriptCurrInstr + 5);
+ u8* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ *mem -= T2_READ_8(gBattlescriptCurrInstr + 5);
gBattlescriptCurrInstr += 6;
}
static void atk31_copyarray(void)
{
- u8* mem1 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- u8* mem2 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5);
- s32 size = BSScriptRead8(gBattlescriptCurrInstr + 9);
+ u8* mem1 = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ u8* mem2 = T2_READ_PTR(gBattlescriptCurrInstr + 5);
+ s32 size = T2_READ_8(gBattlescriptCurrInstr + 9);
s32 i;
for (i = 0; i < size; i++)
@@ -7190,10 +7186,10 @@ static void atk31_copyarray(void)
static void atk32_copyarray_withindex(void)
{
- u8* mem1 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- u8* mem2 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5);
- u8* index = BS2ScriptReadPtr(gBattlescriptCurrInstr + 9);
- s32 size = BSScriptRead8(gBattlescriptCurrInstr + 13);
+ u8* mem1 = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ u8* mem2 = T2_READ_PTR(gBattlescriptCurrInstr + 5);
+ u8* index = T2_READ_PTR(gBattlescriptCurrInstr + 9);
+ s32 size = T2_READ_8(gBattlescriptCurrInstr + 13);
s32 i;
for (i = 0; i < size; i++)
@@ -7206,15 +7202,15 @@ static void atk32_copyarray_withindex(void)
static void atk33_orbyte(void)
{
- u8* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- *mem |= BSScriptRead8(gBattlescriptCurrInstr + 5);
+ u8* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ *mem |= T2_READ_8(gBattlescriptCurrInstr + 5);
gBattlescriptCurrInstr += 6;
}
static void atk34_orhalfword(void)
{
- u16* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- u16 val = BS2ScriptRead16(gBattlescriptCurrInstr + 5);
+ u16* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ u16 val = T2_READ_16(gBattlescriptCurrInstr + 5);
*mem |= val;
gBattlescriptCurrInstr += 7;
@@ -7222,8 +7218,8 @@ static void atk34_orhalfword(void)
static void atk35_orword(void)
{
- u32* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- u32 val = BS2ScriptRead32(gBattlescriptCurrInstr + 5);
+ u32* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ u32 val = T2_READ_32(gBattlescriptCurrInstr + 5);
*mem |= val;
gBattlescriptCurrInstr += 9;
@@ -7231,15 +7227,15 @@ static void atk35_orword(void)
static void atk36_bicbyte(void)
{
- u8* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- *mem &= ~(BSScriptRead8(gBattlescriptCurrInstr + 5));
+ u8* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ *mem &= ~(T2_READ_8(gBattlescriptCurrInstr + 5));
gBattlescriptCurrInstr += 6;
}
static void atk37_bichalfword(void)
{
- u16* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- u16 val = BS2ScriptRead16(gBattlescriptCurrInstr + 5);
+ u16* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ u16 val = T2_READ_16(gBattlescriptCurrInstr + 5);
*mem &= ~val;
gBattlescriptCurrInstr += 7;
@@ -7247,8 +7243,8 @@ static void atk37_bichalfword(void)
static void atk38_bicword(void)
{
- u32* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- u32 val = BS2ScriptRead32(gBattlescriptCurrInstr + 5);
+ u32* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ u32 val = T2_READ_32(gBattlescriptCurrInstr + 5);
*mem &= ~val;
gBattlescriptCurrInstr += 9;
@@ -7258,7 +7254,7 @@ static void atk39_pause(void)
{
if (gBattleExecBuffer == 0)
{
- u16 value = BS2ScriptRead16(gBattlescriptCurrInstr + 1);
+ u16 value = T2_READ_16(gBattlescriptCurrInstr + 1);
if (++gPauseCounterBattle >= value)
{
gPauseCounterBattle = 0;
@@ -7275,7 +7271,7 @@ static void atk3A_waitstate(void)
static void atk3B_healthbar_update(void)
{
- if (!BSScriptRead8(gBattlescriptCurrInstr + 1))
+ if (!T2_READ_8(gBattlescriptCurrInstr + 1))
gActiveBank = gBankTarget;
else
gActiveBank = gBankAttacker;
@@ -7315,303 +7311,114 @@ static void atk3F_end3(void) //pops the main function stack
static void atk41_call(void)
{
b_movescr_stack_push(gBattlescriptCurrInstr + 5);
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atk42_jumpiftype2(void) //u8 bank, u8 type, *ptr
{
- u8 bank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ u8 bank = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1));
- if (BSScriptRead8(gBattlescriptCurrInstr + 2) == gBattleMons[bank].type1 || BSScriptRead8(gBattlescriptCurrInstr + 2) == gBattleMons[bank].type2)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 3);
+ if (T1_READ_8(gBattlescriptCurrInstr + 2) == gBattleMons[bank].type1 || T1_READ_8(gBattlescriptCurrInstr + 2) == gBattleMons[bank].type2)
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3);
else
gBattlescriptCurrInstr += 7;
}
static void atk43_jumpifabilitypresent(void)
{
- if (AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, BSScriptRead8(gBattlescriptCurrInstr + 1), 0, 0))
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ if (AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, T2_READ_8(gBattlescriptCurrInstr + 1), 0, 0))
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
}
static void atk44(void)
{
- unk_2000000[gBankAttacker + 0x16060] = 1;
+ ewram16060(gBankAttacker) = 1;
}
-#ifdef NONMATCHING
-
static void atk45_playanimation(void)
{
- #define ANIMATION_ID BSScriptRead8(gBattlescriptCurrInstr + 2)
- #define ARGUMENT (u16*) BS2ScriptReadPtr(gBattlescriptCurrInstr + 3)
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ const u16* argumentPtr;
+
+ gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ argumentPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 3);
- if ( ANIMATION_ID == 1 || ANIMATION_ID == 0x11 || ANIMATION_ID == 2) {
- EmitBattleAnimation(0, ANIMATION_ID, *argument);
+ if (gBattlescriptCurrInstr[2] == B_ANIM_STATS_CHANGE
+ || gBattlescriptCurrInstr[2] == B_ANIM_SNATCH_MOVE
+ || gBattlescriptCurrInstr[2] == B_ANIM_SUBSTITUTE_FADE)
+ {
+ EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 7;
- } else if (gHitMarker & HITMARKER_NO_ANIMATIONS) {
+ }
+ else if (gHitMarker & HITMARKER_NO_ANIMATIONS)
+ {
b_movescr_stack_push(gBattlescriptCurrInstr + 7);
gBattlescriptCurrInstr = BattleScript_Pausex20;
- } else {
- if (((ANIMATION_ID - 10) > 3 && gStatuses3[gActiveBank] & (STATUS3_SEMI_INVULNERABLE))) {
- gBattlescriptCurrInstr += 7;
- } else {
- EmitBattleAnimation(0, ANIMATION_ID, *argument);
- MarkBufferBankForExecution(gActiveBank);
- gBattlescriptCurrInstr += 7;
- }
+ }
+ else if (gBattlescriptCurrInstr[2] == B_ANIM_RAIN_CONTINUES
+ || gBattlescriptCurrInstr[2] == B_ANIM_SUN_CONTINUES
+ || gBattlescriptCurrInstr[2] == B_ANIM_SANDSTORM_CONTINUES
+ || gBattlescriptCurrInstr[2] == B_ANIM_HAIL_CONTINUES)
+ {
+ EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr);
+ MarkBufferBankForExecution(gActiveBank);
+ gBattlescriptCurrInstr += 7;
+ }
+ else if (gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE)
+ {
+ gBattlescriptCurrInstr += 7;
+ }
+ else
+ {
+ EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr);
+ MarkBufferBankForExecution(gActiveBank);
+ gBattlescriptCurrInstr += 7;
}
}
-#else
-__attribute__((naked))
-static void atk45_playanimation(void)
+static void atk46_playanimation2(void) // animation Id is stored in the first pointer
{
- asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- ldr r5, _08021444 @ =gBattlescriptCurrInstr\n\
- ldr r0, [r5]\n\
- ldrb r0, [r0, 0x1]\n\
- bl GetBattleBank\n\
- ldr r6, _08021448 @ =gActiveBank\n\
- strb r0, [r6]\n\
- ldr r2, [r5]\n\
- ldrb r1, [r2, 0x3]\n\
- ldrb r0, [r2, 0x4]\n\
- lsls r0, 8\n\
- adds r1, r0\n\
- ldrb r0, [r2, 0x5]\n\
- lsls r0, 16\n\
- adds r1, r0\n\
- ldrb r0, [r2, 0x6]\n\
- lsls r0, 24\n\
- adds r3, r1, r0\n\
- ldrb r4, [r2, 0x2]\n\
- adds r0, r4, 0\n\
- cmp r0, 0x1\n\
- beq _08021426\n\
- cmp r0, 0x11\n\
- beq _08021426\n\
- cmp r0, 0x2\n\
- bne _0802144C\n\
-_08021426:\n\
- ldr r4, _08021444 @ =gBattlescriptCurrInstr\n\
- ldr r0, [r4]\n\
- ldrb r1, [r0, 0x2]\n\
- ldrh r2, [r3]\n\
- movs r0, 0\n\
- bl EmitBattleAnimation\n\
- ldr r0, _08021448 @ =gActiveBank\n\
- ldrb r0, [r0]\n\
- bl MarkBufferBankForExecution\n\
- ldr r0, [r4]\n\
- adds r0, 0x7\n\
- str r0, [r4]\n\
- b _080214AE\n\
- .align 2, 0\n\
-_08021444: .4byte gBattlescriptCurrInstr\n\
-_08021448: .4byte gActiveBank\n\
-_0802144C:\n\
- ldr r0, _08021464 @ =gHitMarker\n\
- ldr r0, [r0]\n\
- movs r1, 0x80\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0802146C\n\
- adds r0, r2, 0x7\n\
- bl b_movescr_stack_push\n\
- ldr r0, _08021468 @ =BattleScript_Pausex20\n\
- b _080214AC\n\
- .align 2, 0\n\
-_08021464: .4byte gHitMarker\n\
-_08021468: .4byte BattleScript_Pausex20\n\
-_0802146C:\n\
- adds r0, r4, 0\n\
- subs r0, 0xA\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x3\n\
- bls _08021498\n\
- ldr r1, _08021490 @ =gStatuses3\n\
- ldrb r0, [r6]\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- ldr r1, _08021494 @ =0x000400c0\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08021498\n\
- adds r0, r2, 0x7\n\
- b _080214AC\n\
- .align 2, 0\n\
-_08021490: .4byte gStatuses3\n\
-_08021494: .4byte 0x000400c0\n\
-_08021498:\n\
- ldrb r1, [r2, 0x2]\n\
- ldrh r2, [r3]\n\
- movs r0, 0\n\
- bl EmitBattleAnimation\n\
- ldrb r0, [r6]\n\
- bl MarkBufferBankForExecution\n\
- ldr r0, [r5]\n\
- adds r0, 0x7\n\
-_080214AC:\n\
- str r0, [r5]\n\
-_080214AE:\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided");
-}
-#endif // NONMATCHING
+ const u16* argumentPtr;
+ const u8* animationIdPtr;
-#ifdef NONMATCHING
-static void atk46_playanimation2(void)
-{
- u8 arg1;
- u8* arg2;
- u16* arg3;
- u32 something;
-
- arg1 = BSScriptRead8(gBattlescriptCurrInstr + 1);
- gActiveBank = GetBattleBank(arg1);
- arg2 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2);
- arg3 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6);
-
- if (*arg2 == 1 || *arg2 == 0x11 || *arg2 == 2)
- {
- EmitBattleAnimation(0, *arg2, *arg3);
- MarkBufferBankForExecution(gActiveBank);
- gBattlescriptCurrInstr += 10;
- return;
- }
- if ((gHitMarker & 0x80))
- {
- something = (u32)(gBattlescriptCurrInstr + 10);
- }
- else
- {
- u8 yeah = *arg2 - 10;
- if (yeah < 4 || (gStatuses3[gActiveBank] & 0x000400C0) == 0)
- {
- EmitBattleAnimation(0, *arg2, *arg3);
- MarkBufferBankForExecution(gActiveBank);
- }
- something = (u32)(gBattlescriptCurrInstr + 10);
- }
- gBattlescriptCurrInstr = (u8*)something;
-}
-#else
-__attribute__((naked))
-static void atk46_playanimation2(void)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- ldr r6, _0802151C @ =gBattlescriptCurrInstr\n\
- ldr r0, [r6]\n\
- ldrb r0, [r0, 0x1]\n\
- bl GetBattleBank\n\
- ldr r7, _08021520 @ =gActiveBank\n\
- strb r0, [r7]\n\
- ldr r2, [r6]\n\
- ldrb r1, [r2, 0x2]\n\
- ldrb r0, [r2, 0x3]\n\
- lsls r0, 8\n\
- adds r1, r0\n\
- ldrb r0, [r2, 0x4]\n\
- lsls r0, 16\n\
- adds r1, r0\n\
- ldrb r0, [r2, 0x5]\n\
- lsls r0, 24\n\
- adds r3, r1, r0\n\
- ldrb r1, [r2, 0x6]\n\
- ldrb r0, [r2, 0x7]\n\
- lsls r0, 8\n\
- adds r1, r0\n\
- ldrb r0, [r2, 0x8]\n\
- lsls r0, 16\n\
- adds r1, r0\n\
- ldrb r0, [r2, 0x9]\n\
- lsls r0, 24\n\
- adds r4, r1, r0\n\
- ldrb r5, [r3]\n\
- adds r0, r5, 0\n\
- cmp r0, 0x1\n\
- beq _080214FE\n\
- cmp r0, 0x11\n\
- beq _080214FE\n\
- cmp r0, 0x2\n\
- bne _08021524\n\
-_080214FE:\n\
- ldrb r1, [r3]\n\
- ldrh r2, [r4]\n\
- movs r0, 0\n\
- bl EmitBattleAnimation\n\
- ldr r0, _08021520 @ =gActiveBank\n\
- ldrb r0, [r0]\n\
- bl MarkBufferBankForExecution\n\
- ldr r1, _0802151C @ =gBattlescriptCurrInstr\n\
- ldr r0, [r1]\n\
- adds r0, 0xA\n\
- str r0, [r1]\n\
- b _0802157A\n\
- .align 2, 0\n\
-_0802151C: .4byte gBattlescriptCurrInstr\n\
-_08021520: .4byte gActiveBank\n\
-_08021524:\n\
- ldr r0, _08021534 @ =gHitMarker\n\
- ldr r0, [r0]\n\
- movs r1, 0x80\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08021538\n\
- adds r0, r2, 0\n\
- b _08021576\n\
- .align 2, 0\n\
-_08021534: .4byte gHitMarker\n\
-_08021538:\n\
- adds r0, r5, 0\n\
- subs r0, 0xA\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x3\n\
- bls _08021564\n\
- ldr r1, _0802155C @ =gStatuses3\n\
- ldrb r0, [r7]\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- ldr r1, _08021560 @ =0x000400c0\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08021564\n\
- adds r0, r2, 0\n\
- b _08021576\n\
- .align 2, 0\n\
-_0802155C: .4byte gStatuses3\n\
-_08021560: .4byte 0x000400c0\n\
-_08021564:\n\
- ldrb r1, [r3]\n\
- ldrh r2, [r4]\n\
- movs r0, 0\n\
- bl EmitBattleAnimation\n\
- ldrb r0, [r7]\n\
- bl MarkBufferBankForExecution\n\
- ldr r0, [r6]\n\
-_08021576:\n\
- adds r0, 0xA\n\
- str r0, [r6]\n\
-_0802157A:\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided ");
+ gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ animationIdPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2);
+ argumentPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6);
+
+ if (*animationIdPtr == B_ANIM_STATS_CHANGE
+ || *animationIdPtr == B_ANIM_SNATCH_MOVE
+ || *animationIdPtr == B_ANIM_SUBSTITUTE_FADE)
+ {
+ EmitBattleAnimation(0, *animationIdPtr, *argumentPtr);
+ MarkBufferBankForExecution(gActiveBank);
+ gBattlescriptCurrInstr += 10;
+ }
+ else if (gHitMarker & HITMARKER_NO_ANIMATIONS)
+ {
+ gBattlescriptCurrInstr += 10;
+ }
+ else if (*animationIdPtr == B_ANIM_RAIN_CONTINUES
+ || *animationIdPtr == B_ANIM_SUN_CONTINUES
+ || *animationIdPtr == B_ANIM_SANDSTORM_CONTINUES
+ || *animationIdPtr == B_ANIM_HAIL_CONTINUES)
+ {
+ EmitBattleAnimation(0, *animationIdPtr, *argumentPtr);
+ MarkBufferBankForExecution(gActiveBank);
+ gBattlescriptCurrInstr += 10;
+ }
+ else if (gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE)
+ {
+ gBattlescriptCurrInstr += 10;
+ }
+ else
+ {
+ EmitBattleAnimation(0, *animationIdPtr, *argumentPtr);
+ MarkBufferBankForExecution(gActiveBank);
+ gBattlescriptCurrInstr += 10;
+ }
}
-#endif // NONMATCHING
static void atk47_setgraphicalstatchangevalues(void)
{
@@ -7645,9 +7452,9 @@ static void atk48_playstatchangeanimation(void)
u32 stats_to_check;
u8 arg3;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- stats_to_check = BSScriptRead8(gBattlescriptCurrInstr + 2);
- arg3 = BSScriptRead8(gBattlescriptCurrInstr + 3);
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ stats_to_check = T2_READ_8(gBattlescriptCurrInstr + 2);
+ arg3 = T2_READ_8(gBattlescriptCurrInstr + 3);
if (arg3 & 1)
{
u16 r1 = 0x15;
@@ -7657,7 +7464,7 @@ static void atk48_playstatchangeanimation(void)
{
if (!(stats_to_check & 1))
continue;
- if (!(BSScriptRead8(gBattlescriptCurrInstr + 3)))
+ if (!(T2_READ_8(gBattlescriptCurrInstr + 3)))
{
u8 ability;
if (gSideTimer[GetBankIdentity(gActiveBank) & 1].mistTimer)
@@ -7676,7 +7483,7 @@ static void atk48_playstatchangeanimation(void)
r1 += 1;
curr_stat++;
}
- if (changeable_stats > 1 && BSScriptRead8(gBattlescriptCurrInstr + 3) & 2)
+ if (changeable_stats > 1 && T2_READ_8(gBattlescriptCurrInstr + 3) & 2)
stat_animID = 0x39;
else
stat_animID = 0x3A;
@@ -7700,19 +7507,19 @@ static void atk48_playstatchangeanimation(void)
r1 += 1;
curr_stat++;
}
- if (changeable_stats > 1 && BSScriptRead8(gBattlescriptCurrInstr + 3) & 2)
+ if (changeable_stats > 1 && T2_READ_8(gBattlescriptCurrInstr + 3) & 2)
stat_animID = 0x37;
else
stat_animID = 0x38;
}
- if ((BSScriptRead8(gBattlescriptCurrInstr + 3) & 2 && changeable_stats <= 1)
+ if ((T2_READ_8(gBattlescriptCurrInstr + 3) & 2 && changeable_stats <= 1)
|| changeable_stats == 0 || BATTLE_STRUCT->filler2[0] != 0)
gBattlescriptCurrInstr += 4;
else
{
EmitBattleAnimation(0, 1, stat_animID);
MarkBufferBankForExecution(gActiveBank);
- if ((BSScriptRead8(gBattlescriptCurrInstr + 3) & 4) && changeable_stats > 1)
+ if ((T2_READ_8(gBattlescriptCurrInstr + 3) & 4) && changeable_stats > 1)
BATTLE_STRUCT->filler2[0] = 1;
gBattlescriptCurrInstr += 4;
}
@@ -7934,7 +7741,7 @@ _0802178C: .4byte gUnknown_02024A98\n\
_08021790:\n\
cmp r3, 0\n\
beq _080217E0\n\
- ldr r0, _080217D0 @ =0x02000000\n\
+ ldr r0, _080217D0 @ =gSharedMem\n\
ldr r1, _080217D4 @ =0x000160dc\n\
adds r4, r0, r1\n\
ldrb r0, [r4]\n\
@@ -7964,7 +7771,7 @@ _080217CC:\n\
ldr r1, _080217DC @ =gBattlescriptCurrInstr\n\
b _080217E2\n\
.align 2, 0\n\
-_080217D0: .4byte 0x02000000\n\
+_080217D0: .4byte gSharedMem\n\
_080217D4: .4byte 0x000160dc\n\
_080217D8: .4byte gActiveBank\n\
_080217DC: .4byte gBattlescriptCurrInstr\n\
@@ -7998,14 +7805,14 @@ static void atk49_moveendturn(void)
if (gLastUsedMove != 0xFFFF)
last_move = gLastUsedMove;
- arg1 = BSScriptRead8(gBattlescriptCurrInstr + 1);
- arg2 = BSScriptRead8(gBattlescriptCurrInstr + 2);
+ arg1 = T2_READ_8(gBattlescriptCurrInstr + 1);
+ arg2 = T2_READ_8(gBattlescriptCurrInstr + 2);
if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY)
hold_effect_atk = gEnigmaBerries[gBankAttacker].holdEffect;
else
hold_effect_atk = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item);
- choiced_move_atk = (u16*)(gBankAttacker * 0x020160e8);
+ choiced_move_atk = (u16*)(gBankAttacker * (ewram_addr + 0x160E8));
if (BATTLE_STRUCT->dynamicMoveType)
move_type = BATTLE_STRUCT->dynamicMoveType & 0x3F;
else
@@ -8081,7 +7888,7 @@ static void atk49_moveendturn(void)
case 7: //changed held items
for (i = 0; i < gNoOfAllBanks; i++)
{
- #define CHANGED_ITEM (((*u16)(0x020160f0)))
+ #define CHANGED_ITEM (((*u16)(gSharedMem + 0x160F0)))
if (CHANGED_ITEM(i))
gBattleMons[i].item = CHANGED_ITEM(i);
}
@@ -8177,7 +7984,7 @@ _0802184E:\n\
ldr r0, _0802186C @ =gBankAttacker\n\
ldrb r1, [r0]\n\
lsls r1, 1\n\
- ldr r0, _08021870 @ =0x020160e8\n\
+ ldr r0, _08021870 @ =gSharedMem + 0x160E8\n\
adds r1, r0\n\
str r1, [sp, 0xC]\n\
subs r0, 0xCC\n\
@@ -8190,13 +7997,13 @@ _0802184E:\n\
b _080218D2\n\
.align 2, 0\n\
_0802186C: .4byte gBankAttacker\n\
-_08021870: .4byte 0x020160e8\n\
+_08021870: .4byte gSharedMem + 0x160E8\n\
_08021874:\n\
strb r2, [r7]\n\
ldr r0, [r5]\n\
orrs r0, r6\n\
str r0, [r5]\n\
- ldr r0, _080218AC @ =0x02000000\n\
+ ldr r0, _080218AC @ =gSharedMem\n\
ldr r3, _080218B0 @ =0x0001600c\n\
adds r0, r3\n\
strb r4, [r0]\n\
@@ -8217,7 +8024,7 @@ _08021874:\n\
ldr r0, _080218BC @ =gUnknown_081D9B2D\n\
bl _0802229C\n\
.align 2, 0\n\
-_080218AC: .4byte 0x02000000\n\
+_080218AC: .4byte gSharedMem\n\
_080218B0: .4byte 0x0001600c\n\
_080218B4: .4byte gBattleScriptsEffectsTable\n\
_080218B8: .4byte gBattlescriptCurrInstr\n\
@@ -8233,13 +8040,13 @@ _080218C0:\n\
ldrb r0, [r0, 0x2]\n\
str r0, [sp, 0x4]\n\
_080218D2:\n\
- ldr r5, _080218E0 @ =0x02000000\n\
+ ldr r5, _080218E0 @ =gSharedMem\n\
mov r12, r5\n\
b _080218EE\n\
.align 2, 0\n\
_080218D8: .4byte gBattleMoves\n\
_080218DC: .4byte gCurrentMove\n\
-_080218E0: .4byte 0x02000000\n\
+_080218E0: .4byte gSharedMem\n\
_080218E4:\n\
mov r0, r10\n\
cmp r0, 0\n\
@@ -8364,7 +8171,7 @@ _080219C8:\n\
movs r5, 0x1\n\
mov r10, r5\n\
_080219FE:\n\
- ldr r2, _08021A2C @ =0x02000000\n\
+ ldr r2, _08021A2C @ =gSharedMem\n\
ldr r0, _08021A30 @ =0x0001600c\n\
adds r1, r2, r0\n\
b _08021E00\n\
@@ -8378,7 +8185,7 @@ _08021A1C: .4byte gBattleMoves\n\
_08021A20: .4byte gCurrentMove\n\
_08021A24: .4byte gBattlescriptCurrInstr\n\
_08021A28: .4byte gUnknown_081D9132\n\
-_08021A2C: .4byte 0x02000000\n\
+_08021A2C: .4byte gSharedMem\n\
_08021A30: .4byte 0x0001600c\n\
_08021A34:\n\
ldr r2, _08021AD0 @ =gBattleMons\n\
@@ -8486,13 +8293,13 @@ _08021AF0:\n\
movs r4, 0x1\n\
mov r10, r4\n\
_08021B0C:\n\
- ldr r2, _08021B18 @ =0x02000000\n\
+ ldr r2, _08021B18 @ =gSharedMem\n\
ldr r5, _08021B1C @ =0x0001600c\n\
adds r1, r2, r5\n\
b _08021E00\n\
.align 2, 0\n\
_08021B14: .4byte gBankTarget\n\
-_08021B18: .4byte 0x02000000\n\
+_08021B18: .4byte gSharedMem\n\
_08021B1C: .4byte 0x0001600c\n\
_08021B20:\n\
ldr r0, _08021B40 @ =gBankTarget\n\
@@ -8526,18 +8333,18 @@ _08021B44:\n\
beq _08021B68\n\
movs r4, 0x1\n\
mov r10, r4\n\
- ldr r5, _08021B64 @ =0x02000000\n\
+ ldr r5, _08021B64 @ =gSharedMem\n\
mov r12, r5\n\
b _0802224E\n\
.align 2, 0\n\
-_08021B64: .4byte 0x02000000\n\
+_08021B64: .4byte gSharedMem\n\
_08021B68:\n\
- ldr r2, _08021B70 @ =0x02000000\n\
+ ldr r2, _08021B70 @ =gSharedMem\n\
ldr r0, _08021B74 @ =0x0001600c\n\
adds r1, r2, r0\n\
b _08021E00\n\
.align 2, 0\n\
-_08021B70: .4byte 0x02000000\n\
+_08021B70: .4byte gSharedMem\n\
_08021B74: .4byte 0x0001600c\n\
_08021B78:\n\
ldr r0, _08021B98 @ =gBankAttacker\n\
@@ -8651,7 +8458,7 @@ _08021C40:\n\
b _08022244\n\
_08021C4C:\n\
movs r5, 0\n\
- ldr r2, _08021C70 @ =0x020160f0\n\
+ ldr r2, _08021C70 @ =gSharedMem + 0x160F0\n\
ldr r3, _08021C74 @ =gBattleMons\n\
_08021C52:\n\
ldrh r1, [r2]\n\
@@ -8669,7 +8476,7 @@ _08021C5C:\n\
b _08022244\n\
.align 2, 0\n\
_08021C6C: .4byte gNoOfAllBanks\n\
-_08021C70: .4byte 0x020160f0\n\
+_08021C70: .4byte gSharedMem + 0x160F0\n\
_08021C74: .4byte gBattleMons\n\
_08021C78:\n\
movs r0, 0x3\n\
@@ -8681,18 +8488,18 @@ _08021C78:\n\
beq _08021C98\n\
movs r2, 0x1\n\
mov r10, r2\n\
- ldr r3, _08021C94 @ =0x02000000\n\
+ ldr r3, _08021C94 @ =gSharedMem\n\
mov r12, r3\n\
b _0802224E\n\
.align 2, 0\n\
-_08021C94: .4byte 0x02000000\n\
+_08021C94: .4byte gSharedMem\n\
_08021C98:\n\
- ldr r2, _08021CA0 @ =0x02000000\n\
+ ldr r2, _08021CA0 @ =gSharedMem\n\
ldr r4, _08021CA4 @ =0x0001600c\n\
adds r1, r2, r4\n\
b _08021E00\n\
.align 2, 0\n\
-_08021CA0: .4byte 0x02000000\n\
+_08021CA0: .4byte gSharedMem\n\
_08021CA4: .4byte 0x0001600c\n\
_08021CA8:\n\
movs r0, 0x4\n\
@@ -8705,12 +8512,12 @@ _08021CA8:\n\
movs r5, 0x1\n\
mov r10, r5\n\
_08021CBC:\n\
- ldr r2, _08021CC4 @ =0x02000000\n\
+ ldr r2, _08021CC4 @ =gSharedMem\n\
ldr r0, _08021CC8 @ =0x0001600c\n\
adds r1, r2, r0\n\
b _08021E00\n\
.align 2, 0\n\
-_08021CC4: .4byte 0x02000000\n\
+_08021CC4: .4byte gSharedMem\n\
_08021CC8: .4byte 0x0001600c\n\
_08021CCC:\n\
ldr r1, _08021D04 @ =gStatuses3\n\
@@ -8798,7 +8605,7 @@ _08021D44:\n\
orrs r1, r2\n\
strb r1, [r0]\n\
_08021D7E:\n\
- ldr r2, _08021DA4 @ =0x02000000\n\
+ ldr r2, _08021DA4 @ =gSharedMem\n\
ldr r4, _08021DA8 @ =0x0001600c\n\
adds r1, r2, r4\n\
b _08021E00\n\
@@ -8810,7 +8617,7 @@ _08021D94: .4byte 0x000400c0\n\
_08021D98: .4byte gActiveBank\n\
_08021D9C: .4byte 0xfffbff3f\n\
_08021DA0: .4byte gSpecialStatuses\n\
-_08021DA4: .4byte 0x02000000\n\
+_08021DA4: .4byte gSharedMem\n\
_08021DA8: .4byte 0x0001600c\n\
_08021DAC:\n\
ldr r2, _08021E0C @ =gSpecialStatuses\n\
@@ -8851,7 +8658,7 @@ _08021DAC:\n\
ands r0, r1\n\
str r0, [r2]\n\
_08021DFA:\n\
- ldr r2, _08021E28 @ =0x02000000\n\
+ ldr r2, _08021E28 @ =gSharedMem\n\
ldr r3, _08021E2C @ =0x0001600c\n\
adds r1, r2, r3\n\
_08021E00:\n\
@@ -8868,7 +8675,7 @@ _08021E18: .4byte gStatuses3\n\
_08021E1C: .4byte 0x000400c0\n\
_08021E20: .4byte gActiveBank\n\
_08021E24: .4byte 0xfffbff3f\n\
-_08021E28: .4byte 0x02000000\n\
+_08021E28: .4byte gSharedMem\n\
_08021E2C: .4byte 0x0001600c\n\
_08021E30:\n\
movs r4, 0\n\
@@ -9362,7 +9169,7 @@ _0802223A:\n\
ldr r0, [r5]\n\
orrs r0, r6\n\
str r0, [r5]\n\
- ldr r2, _080222D0 @ =0x02000000\n\
+ ldr r2, _080222D0 @ =gSharedMem\n\
mov r12, r2\n\
_08022244:\n\
ldr r1, _080222D4 @ =0x0001600c\n\
@@ -9432,7 +9239,7 @@ _080222C0: .4byte gBattleMoves\n\
_080222C4: .4byte gCurrentMove\n\
_080222C8: .4byte gBankTarget\n\
_080222CC: .4byte gBattleMons\n\
-_080222D0: .4byte 0x02000000\n\
+_080222D0: .4byte gSharedMem\n\
_080222D4: .4byte 0x0001600c\n\
_080222D8: .4byte gBattlescriptCurrInstr\n\
.syntax divided"
@@ -9531,9 +9338,9 @@ static void atk4C_copy_poke_data(void)
if (gBattleExecBuffer)
return;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
- gBattlePartyID[gActiveBank] = unk_2000000[0x16068 + gActiveBank];
+ gBattlePartyID[gActiveBank] = ewram16068arr(gActiveBank);
EmitGetAttributes(0, 0, gBitTable[gBattlePartyID[gActiveBank]]);
MarkBufferBankForExecution(gActiveBank);
@@ -9558,7 +9365,7 @@ static void atk4D_switch_data_update(void)
if (gBattleExecBuffer)
return;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
OldData = gBattleMons[gActiveBank];
monData = (u8*)(&gBattleMons[gActiveBank]);
for (i = 0; i < sizeof(struct BattlePokemon); i++)
@@ -9599,13 +9406,13 @@ static void atk4E_switchin_anim(void)
if (gBattleExecBuffer)
return;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (GetBankSide(gActiveBank) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER)))
{
GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
}
gAbsentBankFlags &= ~(gBitTable[gActiveBank]);
- EmitSendOutPoke(0, gBattlePartyID[gActiveBank], BSScriptRead8(gBattlescriptCurrInstr + 2));
+ EmitSendOutPoke(0, gBattlePartyID[gActiveBank], T2_READ_8(gBattlescriptCurrInstr + 2));
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 3;
}
@@ -9616,12 +9423,12 @@ static void atk4F_jump_if_cannot_switch(void)
register struct Pokemon *party;
u8 r7;
//0x80 byte is used as a way of telling the function whether to not check status2/status3
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1) & 0x7F);
- if (!(BSScriptRead8(gBattlescriptCurrInstr + 1) & 0x80)
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1) & 0x7F);
+ if (!(T2_READ_8(gBattlescriptCurrInstr + 1) & 0x80)
&& ((gBattleMons[gActiveBank].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION))
|| (gStatuses3[gActiveBank] & STATUS3_ROOTED)))
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
return;
}
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
@@ -9642,7 +9449,7 @@ static void atk4F_jump_if_cannot_switch(void)
break;
}
if (val == to_cmp)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
}
@@ -9675,7 +9482,7 @@ static void atk4F_jump_if_cannot_switch(void)
break;
}
if (val == 6)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
}
@@ -9683,8 +9490,7 @@ static void atk4F_jump_if_cannot_switch(void)
void sub_8022A3C(u8 unkown)
{
- //BATTLE_STRUCT->unk16064[gActiveBank] = gBattlePartyID[gActiveBank];
- ewram[gActiveBank + 0x16064] = gBattlePartyID[gActiveBank];
+ BATTLE_PARTY_ID(gActiveBank) = gBattlePartyID[gActiveBank];
EmitChoosePokemon(0, 1, unkown, 0, BATTLE_STRUCT->unk1606C[gActiveBank]);
MarkBufferBankForExecution(gActiveBank);
}
@@ -9694,9 +9500,9 @@ static void atk50_openpartyscreen(void)
{
int i = 0;
int r9 = 0;
- u8* fail_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ u8* fail_loc = T1_READ_PTR(gBattlescriptCurrInstr + 2);
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 5)
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) == 5)
{
if ((gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_MULTI)) != BATTLE_TYPE_DOUBLE)
{
@@ -9946,7 +9752,7 @@ _08022C2C:\n\
lsls r0, 25\n\
cmp r0, 0\n\
blt _08022C6C\n\
- ldr r0, _08022C64 @ =0x02000000\n\
+ ldr r0, _08022C64 @ =gSharedMem\n\
ldr r1, _08022C68 @ =0x0001606a\n\
adds r0, r1\n\
ldrb r0, [r0]\n\
@@ -9963,7 +9769,7 @@ _08022C2C:\n\
b _08022C7E\n\
.align 2, 0\n\
_08022C60: .4byte gSpecialStatuses\n\
-_08022C64: .4byte 0x02000000\n\
+_08022C64: .4byte gSharedMem\n\
_08022C68: .4byte 0x0001606a\n\
_08022C6C:\n\
movs r0, 0\n\
@@ -10031,7 +9837,7 @@ _08022CE8:\n\
lsls r0, 25\n\
cmp r0, 0\n\
blt _08022D28\n\
- ldr r0, _08022D20 @ =0x02000000\n\
+ ldr r0, _08022D20 @ =gSharedMem\n\
ldr r1, _08022D24 @ =0x00016068\n\
adds r0, r1\n\
ldrb r0, [r0]\n\
@@ -10048,7 +9854,7 @@ _08022CE8:\n\
b _08022D40\n\
.align 2, 0\n\
_08022D1C: .4byte gSpecialStatuses\n\
-_08022D20: .4byte 0x02000000\n\
+_08022D20: .4byte gSharedMem\n\
_08022D24: .4byte 0x00016068\n\
_08022D28:\n\
movs r0, 0x1\n\
@@ -10115,7 +9921,7 @@ _08022DA0:\n\
lsls r0, 25\n\
cmp r0, 0\n\
blt _08022DE0\n\
- ldr r0, _08022DD8 @ =0x02000000\n\
+ ldr r0, _08022DD8 @ =gSharedMem\n\
ldr r1, _08022DDC @ =0x0001606b\n\
adds r0, r1\n\
ldrb r0, [r0]\n\
@@ -10132,7 +9938,7 @@ _08022DA0:\n\
b _08022DF6\n\
.align 2, 0\n\
_08022DD4: .4byte gSpecialStatuses\n\
-_08022DD8: .4byte 0x02000000\n\
+_08022DD8: .4byte gSharedMem\n\
_08022DDC: .4byte 0x0001606b\n\
_08022DE0:\n\
movs r0, 0\n\
@@ -10202,7 +10008,7 @@ _08022E60:\n\
lsls r0, 25\n\
cmp r0, 0\n\
blt _08022EA0\n\
- ldr r0, _08022E98 @ =0x02000000\n\
+ ldr r0, _08022E98 @ =gSharedMem\n\
ldr r1, _08022E9C @ =0x00016069\n\
adds r0, r1\n\
ldrb r0, [r0]\n\
@@ -10219,7 +10025,7 @@ _08022E60:\n\
b _08022EB8\n\
.align 2, 0\n\
_08022E94: .4byte gSpecialStatuses\n\
-_08022E98: .4byte 0x02000000\n\
+_08022E98: .4byte gSharedMem\n\
_08022E9C: .4byte 0x00016069\n\
_08022EA0:\n\
movs r0, 0x2\n\
@@ -10402,7 +10208,7 @@ _08023008:\n\
lsls r0, 25\n\
cmp r0, 0\n\
blt _0802303A\n\
- ldr r0, _0802309C @ =0x02000000\n\
+ ldr r0, _0802309C @ =gSharedMem\n\
ldr r1, _080230A0 @ =0x00016068\n\
adds r0, r1\n\
ldrb r0, [r0]\n\
@@ -10463,7 +10269,7 @@ _0802303A:\n\
b _080230EE\n\
.align 2, 0\n\
_08023098: .4byte gSpecialStatuses\n\
-_0802309C: .4byte 0x02000000\n\
+_0802309C: .4byte gSharedMem\n\
_080230A0: .4byte 0x00016068\n\
_080230A4: .4byte gBitTable\n\
_080230A8: .4byte gActiveBank\n\
@@ -10482,7 +10288,7 @@ _080230BC:\n\
lsls r0, 25\n\
cmp r0, 0\n\
blt _080230EE\n\
- ldr r0, _08023100 @ =0x02000000\n\
+ ldr r0, _08023100 @ =gSharedMem\n\
ldr r1, _08023104 @ =0x00016069\n\
adds r0, r1\n\
ldrb r0, [r0]\n\
@@ -10505,7 +10311,7 @@ _080230EE:\n\
b _08023110\n\
.align 2, 0\n\
_080230FC: .4byte gSpecialStatuses\n\
-_08023100: .4byte 0x02000000\n\
+_08023100: .4byte gSharedMem\n\
_08023104: .4byte 0x00016069\n\
_08023108: .4byte gBattlescriptCurrInstr\n\
_0802310C:\n\
@@ -10626,7 +10432,7 @@ _080231F4: .4byte gHitMarker\n\
_080231F8:\n\
ldr r4, _080232A0 @ =gActiveBank\n\
strb r7, [r4]\n\
- ldr r3, _080232A4 @ =0x02000000\n\
+ ldr r3, _080232A4 @ =gSharedMem\n\
ldrb r0, [r4]\n\
ldr r2, _080232A8 @ =0x00016064\n\
adds r1, r0, r2\n\
@@ -10707,7 +10513,7 @@ _0802328A:\n\
b _08023302\n\
.align 2, 0\n\
_080232A0: .4byte gActiveBank\n\
-_080232A4: .4byte 0x02000000\n\
+_080232A4: .4byte gSharedMem\n\
_080232A8: .4byte 0x00016064\n\
_080232AC: .4byte gBattlePartyID\n\
_080232B0: .4byte 0x00016068\n\
@@ -10765,14 +10571,14 @@ static void atk51_switch_handle_order(void)
if (gBattleExecBuffer)
return;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- switch (BSScriptRead8(gBattlescriptCurrInstr + 2))
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ switch (T2_READ_8(gBattlescriptCurrInstr + 2))
{
case 0:
for (i = 0; i < gNoOfAllBanks; i++)
{
if (gBattleBufferB[i][0] == 0x22)
- ewram[i + 0x16068] = gBattleBufferB[i][1];
+ ewram16068arr(i) = gBattleBufferB[i][1];
}
break;
case 1:
@@ -10781,17 +10587,15 @@ static void atk51_switch_handle_order(void)
break;
case 2:
gBattleCommunication[0] = gBattleBufferB[gActiveBank][1];
- ewram[gActiveBank + 0x16068] = gBattleBufferB[gActiveBank][1];
+ ewram16068arr(gActiveBank) = gBattleBufferB[gActiveBank][1];
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
-
- ewram[(gActiveBank) * 3 + (0x1606C + 0)] &= 0xF;
- ewram[(gActiveBank) * 3 + (0x1606C + 0)] |= (gBattleBufferB[gActiveBank][2] & 0xF0);
- ewram[(gActiveBank) * 3 + (0x1606C + 1)] = gBattleBufferB[gActiveBank][3];
-
- ewram[(gActiveBank ^ 2) * 3 + (0x1606C + 0)] &= (0xF0);
- ewram[(gActiveBank ^ 2) * 3 + (0x1606C + 0)] |= (gBattleBufferB[gActiveBank][2] & 0xF0) >> 4;
- ewram[(gActiveBank ^ 2) * 3 + (0x1606C + 2)] = gBattleBufferB[gActiveBank][3];
+ ewram1606Carr(0, gActiveBank) &= 0xF;
+ ewram1606Carr(0, gActiveBank) |= (gBattleBufferB[gActiveBank][2] & 0xF0);
+ ewram1606Carr(1, gActiveBank) = gBattleBufferB[gActiveBank][3];
+ ewram1606Carr(0, (gActiveBank ^ 2)) &= (0xF0);
+ ewram1606Carr(0, (gActiveBank ^ 2)) |= (gBattleBufferB[gActiveBank][2] & 0xF0) >> 4;
+ ewram1606Carr(2, (gActiveBank ^ 2)) = gBattleBufferB[gActiveBank][3];
}
else
sub_8012258(gActiveBank);
@@ -10816,7 +10620,7 @@ static void atk52_switch_in_effects(void)
{
int i;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
sub_80157C4(gActiveBank);
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
gSpecialStatuses[gActiveBank].flag40 = 0;
@@ -10836,9 +10640,9 @@ static void atk52_switch_in_effects(void)
BATTLE_STRUCT->scriptingActive = gActiveBank;
b_movescr_stack_push_cursor();
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 0)
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) == 0)
gBattlescriptCurrInstr = gUnknown_081D919F;
- else if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 1)
+ else if (T2_READ_8(gBattlescriptCurrInstr + 1) == 1)
gBattlescriptCurrInstr = gUnknown_081D9171;
else
gBattlescriptCurrInstr = gUnknown_081D91CD;
@@ -10865,7 +10669,7 @@ static void atk52_switch_in_effects(void)
*(HP_ON_SWITCHOUT + GetBankSide(i)) = gBattleMons[i].hp;
}
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 5)
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) == 5)
{
u32 hitmark = gHitMarker >> 0x1C;
gBank1++;
@@ -10885,7 +10689,7 @@ static void atk52_switch_in_effects(void)
static void atk53_trainer_slide(void)
{
- if (!BSScriptRead8(gBattlescriptCurrInstr + 1))
+ if (!T2_READ_8(gBattlescriptCurrInstr + 1))
gActiveBank = GetBankByPlayerAI(0);
else
gActiveBank = GetBankByPlayerAI(1);
@@ -10898,7 +10702,7 @@ static void atk53_trainer_slide(void)
static void atk54_effectiveness_sound(void)
{
gActiveBank = gBankAttacker;
- EmitEffectivenessSound(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1));
+ EmitEffectivenessSound(0, T2_READ_16(gBattlescriptCurrInstr + 1));
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 3;
}
@@ -10906,14 +10710,14 @@ static void atk54_effectiveness_sound(void)
static void atk55_play_sound(void)
{
gActiveBank = gBankAttacker;
- Emitcmd44(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1));
+ Emitcmd44(0, T2_READ_16(gBattlescriptCurrInstr + 1));
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 3;
}
static void atk56_fainting_cry(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
EmitFaintingCry(0);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
@@ -10929,7 +10733,7 @@ static void atk57(void)
static void atk58_return_to_ball(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
EmitReturnPokeToBall(0, 1);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
@@ -10937,10 +10741,10 @@ static void atk58_return_to_ball(void)
void atk59_learnmove_inbattle(void)
{
- u8* loc1 = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
- u8* loc2 = BSScriptReadPtr(gBattlescriptCurrInstr + 5);
+ u8* loc1 = T1_READ_PTR(gBattlescriptCurrInstr + 1);
+ u8* loc2 = T1_READ_PTR(gBattlescriptCurrInstr + 5);
- u16 ret = MonTryLearningNewMove(&gPlayerParty[BATTLE_STRUCT->expGetterID], BSScriptRead8(gBattlescriptCurrInstr + 9));
+ u16 ret = MonTryLearningNewMove(&gPlayerParty[BATTLE_STRUCT->expGetterID], T2_READ_8(gBattlescriptCurrInstr + 9));
while (ret == 0xFFFE)
ret = MonTryLearningNewMove(&gPlayerParty[BATTLE_STRUCT->expGetterID], 0);
@@ -10970,7 +10774,7 @@ void atk59_learnmove_inbattle(void)
void sub_8023A80(void)
{
sub_802BBD4(0x18, 8, 0x1D, 0xD, 0);
- InitWindow(&gUnknown_03004210, gUnknown_08400D7A, 0x100, 0x19, 0x9);
+ InitWindow(&gUnknown_03004210, BattleText_YesNo, 0x100, 0x19, 0x9);
sub_8002F44(&gUnknown_03004210);
sub_814A5C0(0, 0xFFFF, 0xC, 0x2D9F, 0x20);
}
@@ -11029,7 +10833,7 @@ static void atk5A(void)
case 2:
if (!gPaletteFade.active)
{
- sub_809D9F0(gPlayerParty, BATTLE_STRUCT->expGetterID, gPlayerPartyCount - 1, ReshowBattleScreenAfterMenu, gMoveToLearn);
+ ShowSelectMovePokemonSummaryScreen(gPlayerParty, BATTLE_STRUCT->expGetterID, gPlayerPartyCount - 1, ReshowBattleScreenAfterMenu, gMoveToLearn);
BATTLE_STRUCT->atk5A_StateTracker++;
}
break;
@@ -11053,7 +10857,7 @@ static void atk5A(void)
{
u8 *ptr;
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
ptr = gBattleTextBuff2;
{
ptr[0] = 0xFD;
@@ -11123,7 +10927,7 @@ static void atk5B_80256E0(void)
{
PlaySE(SE_SELECT);
if (gBattleCommunication[1] != 0)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
sub_8023AD8();
@@ -11131,7 +10935,7 @@ static void atk5B_80256E0(void)
else if (gMain.newKeys & B_BUTTON)
{
PlaySE(SE_SELECT);
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
sub_8023AD8();
}
}
@@ -11139,7 +10943,7 @@ static void atk5B_80256E0(void)
static void atk5C_hitanimation(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gBattleMoveFlags & MOVESTATUS_NOEFFECT)
gBattlescriptCurrInstr += 2;
else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE) || gDisableStructs[gActiveBank].substituteHP == 0)
@@ -11152,7 +10956,7 @@ static void atk5C_hitanimation(void)
gBattlescriptCurrInstr += 2;
}
-#define MONEY_UNKNOWN ((*(u8*)(0x02017000 + 0x94)))
+#define MONEY_UNKNOWN ((*(u8*)(ewram_addr + 0x17000 + 0x94)))
#ifdef NONMATCHING
static void atk5D_getmoneyreward(void)
@@ -11226,7 +11030,7 @@ static void atk5D_getmoneyreward(void)
lsls r1, 3\n\
cmp r2, r1\n\
bne _08024058\n\
- ldr r0, _0802404C @ =0x02017000\n\
+ ldr r0, _0802404C @ =gSharedMem + 0x17000\n\
adds r1, r0, 0\n\
adds r1, 0x94\n\
ldrb r2, [r1]\n\
@@ -11243,7 +11047,7 @@ static void atk5D_getmoneyreward(void)
b _08024140\n\
.align 2, 0\n\
_08024048: .4byte gTrainerBattleOpponent\n\
-_0802404C: .4byte 0x02017000\n\
+_0802404C: .4byte gSharedMem + 0x17000\n\
_08024050: .4byte 0xfffff056\n\
_08024054: .4byte gSaveBlock1 + 0x490\n\
_08024058:\n\
@@ -11313,7 +11117,7 @@ _080240C4:\n\
ldrb r1, [r3]\n\
mov r12, r0\n\
lsls r4, r5, 2\n\
- ldr r5, _08024124 @ =0x02000000\n\
+ ldr r5, _08024124 @ =gSharedMem\n\
ldr r7, _08024128 @ =gBattleTypeFlags\n\
ldr r0, _0802412C @ =gSaveBlock1 + 0x490\n\
mov r8, r0\n\
@@ -11357,7 +11161,7 @@ _080240FE:\n\
b _08024140\n\
.align 2, 0\n\
_08024120: .4byte gTrainerMoney\n\
-_08024124: .4byte 0x02000000\n\
+_08024124: .4byte gSharedMem\n\
_08024128: .4byte gBattleTypeFlags\n\
_0802412C: .4byte gSaveBlock1 + 0x490\n\
_08024130: .4byte gTrainers\n\
@@ -11412,7 +11216,7 @@ _08024190: .4byte gBattlescriptCurrInstr\n\
static void atk5E_8025A70(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
switch (gBattleCommunication[0])
{
case 0:
@@ -11453,26 +11257,20 @@ static void atk60_increment_gamestat(void)
{
if (GetBankSide(gBankAttacker) == 0)
{
- IncrementGameStat(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ IncrementGameStat(T2_READ_8(gBattlescriptCurrInstr + 1));
}
gBattlescriptCurrInstr += 2;
}
-struct hp_status
-{
- u16 hp;
- u32 status;
-};
-
static void atk61_8025BA4(void)
{
int i;
struct Pokemon* party;
- struct hp_status hpStatus[6];
+ struct HpAndStatus hpStatus[6];
if (gBattleExecBuffer)
return;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (GetBankSide(gActiveBank) == 0)
party = gPlayerParty;
else
@@ -11491,14 +11289,14 @@ static void atk61_8025BA4(void)
hpStatus[i].status = GetMonData(&party[i], MON_DATA_STATUS);
}
}
- Emitcmd48(0, (u8*)(hpStatus), 1);
+ EmitDrawPartyStatusSummary(0, hpStatus, 1);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
}
static void atk62_08025C6C(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
Emitcmd49(0);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
@@ -11506,7 +11304,7 @@ static void atk62_08025C6C(void)
static void atk63_jumptorandomattack(void)
{
- if (BSScriptRead8(gBattlescriptCurrInstr + 1))
+ if (T2_READ_8(gBattlescriptCurrInstr + 1))
gCurrentMove = gRandomMove;
else
gUnknown_02024BE8 = gCurrentMove = gRandomMove;
@@ -11517,7 +11315,7 @@ static void atk64_statusanimation(void)
{
if (gBattleExecBuffer == 0)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBank].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS))
{
EmitStatusAnimation(0, 0, gBattleMons[gActiveBank].status1);
@@ -11532,8 +11330,8 @@ static void atk65_status2animation(void)
if (gBattleExecBuffer == 0)
{
u32 possible_to_anim;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- possible_to_anim = BSScriptRead32(gBattlescriptCurrInstr + 2);
+ gActiveBank = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1));
+ possible_to_anim = T1_READ_32(gBattlescriptCurrInstr + 2);
if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBank].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS))
{
EmitStatusAnimation(0, 1, gBattleMons[gActiveBank].status2 & possible_to_anim);
@@ -11548,11 +11346,11 @@ static void atk66_chosenstatusanimation(void)
if (gBattleExecBuffer == 0)
{
u32 status;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- status = BSScriptRead32(gBattlescriptCurrInstr + 3);
+ gActiveBank = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1));
+ status = T1_READ_32(gBattlescriptCurrInstr + 3);
if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBank].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS))
{
- EmitStatusAnimation(0, BSScriptRead8(gBattlescriptCurrInstr + 2), status);
+ EmitStatusAnimation(0, T1_READ_8(gBattlescriptCurrInstr + 2), status);
MarkBufferBankForExecution(gActiveBank);
}
gBattlescriptCurrInstr += 7;
@@ -11656,8 +11454,7 @@ static void atk69_dmg_adjustment2(void) //literally a copy of atk07 except there
void atk6A_removeitem(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- #define USED_HELD_ITEMS(bank) (*(u16 *)&ewram[0x160CC + 2 * (bank)])
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
USED_HELD_ITEMS(gActiveBank) = gBattleMons[gActiveBank].item;
gBattleMons[gActiveBank].item = 0;
@@ -11685,7 +11482,7 @@ static void atk6C_lvlbox_display(void)
{
case 0:
sub_802BBD4(0xB, 0, 0x1D, 0x7, r1);
- StringCopy(gStringVar4, gUnknown_08400D9F);
+ StringCopy(gStringVar4, BattleText_Format2);
}
}
@@ -11695,7 +11492,7 @@ __attribute__((naked))
static void atk6C_lvlbox_display(void)
{
asm(".syntax unified\n\
- push {r4-r7,lr}\n\
+ push {r4-r7,lr}\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
@@ -11703,7 +11500,7 @@ static void atk6C_lvlbox_display(void)
sub sp, 0x4\n\
movs r1, 0\n\
movs r7, 0\n\
- ldr r0, _08024928 @ =0x02000000\n\
+ ldr r0, _08024928 @ =gSharedMem\n\
mov r10, r0\n\
ldr r4, _0802492C @ =0x0001609c\n\
add r4, r10\n\
@@ -11718,7 +11515,7 @@ _0802491C:\n\
beq _0802493E\n\
b _08024C38\n\
.align 2, 0\n\
-_08024928: .4byte 0x02000000\n\
+_08024928: .4byte gSharedMem\n\
_0802492C: .4byte 0x0001609c\n\
_08024930:\n\
cmp r0, 0x2\n\
@@ -11738,7 +11535,7 @@ _0802493E:\n\
movs r3, 0x7\n\
bl sub_802BBD4\n\
ldr r0, _0802499C @ =gStringVar4\n\
- ldr r1, _080249A0 @ =gUnknown_08400D9F\n\
+ ldr r1, _080249A0 @ =BattleText_Format2\n\
bl StringCopy\n\
adds r5, r0, 0\n\
movs r1, 0\n\
@@ -11754,7 +11551,7 @@ _0802495A:\n\
adds r0, r5, 0\n\
bl StringAppend\n\
adds r5, r0, 0\n\
- ldr r0, _080249A8 @ =0x02000000\n\
+ ldr r0, _080249A8 @ =gSharedMem\n\
ldr r2, _080249AC @ =0x00016018\n\
adds r0, r2\n\
ldrb r1, [r0]\n\
@@ -11777,9 +11574,9 @@ _0802495A:\n\
mov pc, r0\n\
.align 2, 0\n\
_0802499C: .4byte gStringVar4\n\
-_080249A0: .4byte gUnknown_08400D9F\n\
+_080249A0: .4byte BattleText_Format2\n\
_080249A4: .4byte gUnknown_0840165C\n\
-_080249A8: .4byte 0x02000000\n\
+_080249A8: .4byte gSharedMem\n\
_080249AC: .4byte 0x00016018\n\
_080249B0: .4byte gPlayerParty\n\
_080249B4: .4byte gLevelUpStatBoxStats\n\
@@ -11793,37 +11590,37 @@ _080249BC:\n\
.4byte _08024A04\n\
.4byte _08024A10\n\
_080249D4:\n\
- ldr r0, _080249DC @ =0x02017180\n\
+ ldr r0, _080249DC @ =gSharedMem + 0x17180\n\
ldrh r0, [r0]\n\
b _08024A14\n\
.align 2, 0\n\
-_080249DC: .4byte 0x02017180\n\
+_080249DC: .4byte gSharedMem + 0x17180\n\
_080249E0:\n\
- ldr r0, _080249E8 @ =0x02017180\n\
+ ldr r0, _080249E8 @ =gSharedMem + 0x17180\n\
ldrh r0, [r0, 0x8]\n\
b _08024A14\n\
.align 2, 0\n\
-_080249E8: .4byte 0x02017180\n\
+_080249E8: .4byte gSharedMem + 0x17180\n\
_080249EC:\n\
- ldr r0, _080249F4 @ =0x02017180\n\
+ ldr r0, _080249F4 @ =gSharedMem + 0x17180\n\
ldrh r0, [r0, 0x2]\n\
b _08024A14\n\
.align 2, 0\n\
-_080249F4: .4byte 0x02017180\n\
+_080249F4: .4byte gSharedMem + 0x17180\n\
_080249F8:\n\
- ldr r0, _08024A00 @ =0x02017180\n\
+ ldr r0, _08024A00 @ =gSharedMem + 0x17180\n\
ldrh r0, [r0, 0xA]\n\
b _08024A14\n\
.align 2, 0\n\
-_08024A00: .4byte 0x02017180\n\
+_08024A00: .4byte gSharedMem + 0x17180\n\
_08024A04:\n\
- ldr r0, _08024A0C @ =0x02017180\n\
+ ldr r0, _08024A0C @ =gSharedMem + 0x17180\n\
ldrh r0, [r0, 0x4]\n\
b _08024A14\n\
.align 2, 0\n\
-_08024A0C: .4byte 0x02017180\n\
+_08024A0C: .4byte gSharedMem + 0x17180\n\
_08024A10:\n\
- ldr r0, _08024A54 @ =0x02017180\n\
+ ldr r0, _08024A54 @ =gSharedMem + 0x17180\n\
ldrh r0, [r0, 0x6]\n\
_08024A14:\n\
subs r0, r1, r0\n\
@@ -11857,13 +11654,13 @@ _08024A2C:\n\
mov r0, r9\n\
cmp r0, 0\n\
beq _08024A5C\n\
- ldr r1, _08024A58 @ =gUnknown_08400DAC\n\
+ ldr r1, _08024A58 @ =BattleText_Dash\n\
b _08024A5E\n\
.align 2, 0\n\
-_08024A54: .4byte 0x02017180\n\
-_08024A58: .4byte gUnknown_08400DAC\n\
+_08024A54: .4byte gSharedMem + 0x17180\n\
+_08024A58: .4byte BattleText_Dash\n\
_08024A5C:\n\
- ldr r1, _08024AA4 @ =gUnknown_08400DAA\n\
+ ldr r1, _08024AA4 @ =BattleText_Plus\n\
_08024A5E:\n\
adds r0, r5, 0\n\
bl StringCopy\n\
@@ -11899,7 +11696,7 @@ _08024A5E:\n\
adds r5, 0x1\n\
b _08024AB8\n\
.align 2, 0\n\
-_08024AA4: .4byte gUnknown_08400DAA\n\
+_08024AA4: .4byte BattleText_Plus\n\
_08024AA8:\n\
strb r6, [r5]\n\
movs r0, 0x11\n\
@@ -11927,14 +11724,14 @@ _08024AC4:\n\
bl InitWindow\n\
adds r0, r4, 0\n\
bl sub_8002F44\n\
- ldr r1, _08024AEC @ =0x02000000\n\
+ ldr r1, _08024AEC @ =gSharedMem\n\
ldr r2, _08024AF0 @ =0x0001609c\n\
adds r1, r2\n\
b _08024BEA\n\
.align 2, 0\n\
_08024AE4: .4byte gUnknown_03004210\n\
_08024AE8: .4byte gStringVar4\n\
-_08024AEC: .4byte 0x02000000\n\
+_08024AEC: .4byte gSharedMem\n\
_08024AF0: .4byte 0x0001609c\n\
_08024AF4:\n\
ldr r0, _08024B94 @ =gMain\n\
@@ -11946,7 +11743,7 @@ _08024AFE:\n\
movs r0, 0x5\n\
bl PlaySE\n\
ldr r0, _08024B98 @ =gStringVar4\n\
- ldr r1, _08024B9C @ =gUnknown_08400D9F\n\
+ ldr r1, _08024B9C @ =BattleText_Format2\n\
bl StringCopy\n\
adds r5, r0, 0\n\
movs r0, 0\n\
@@ -12017,7 +11814,7 @@ _08024B1C:\n\
.align 2, 0\n\
_08024B94: .4byte gMain\n\
_08024B98: .4byte gStringVar4\n\
-_08024B9C: .4byte gUnknown_08400D9F\n\
+_08024B9C: .4byte BattleText_Format2\n\
_08024BA0: .4byte 0x00016018\n\
_08024BA4: .4byte gUnknown_0840165C\n\
_08024BA8: .4byte gPlayerParty\n\
@@ -12048,7 +11845,7 @@ _08024BC0:\n\
bl InitWindow\n\
adds r0, r4, 0\n\
bl sub_8002F44\n\
- ldr r1, _08024BFC @ =0x02000000\n\
+ ldr r1, _08024BFC @ =gSharedMem\n\
ldr r0, _08024C00 @ =0x0001609c\n\
adds r1, r0\n\
_08024BEA:\n\
@@ -12059,7 +11856,7 @@ _08024BEA:\n\
.align 2, 0\n\
_08024BF4: .4byte gUnknown_03004210\n\
_08024BF8: .4byte gStringVar4\n\
-_08024BFC: .4byte 0x02000000\n\
+_08024BFC: .4byte gSharedMem\n\
_08024C00: .4byte 0x0001609c\n\
_08024C04:\n\
ldr r0, _08024C2C @ =gMain\n\
@@ -12116,7 +11913,7 @@ static void atk6E_set_atk_to_player0(void)
static void atk6F_set_visible(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
EmitSpriteInvisibility(0, 0);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
@@ -12124,7 +11921,7 @@ static void atk6F_set_visible(void)
static void atk70_record_ability(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
RecordAbilityBattle(gActiveBank, gLastUsedAbility);
gBattlescriptCurrInstr += 1; //buggy, should be += 2, one byte for command, one byte for argument...
}
@@ -12147,7 +11944,7 @@ static void atk71_buffer_move_to_learn(void)
static void atk72_jump_if_can_run_frombattle(void)
{
if (sub_8014AB8(gBank1))
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
}
@@ -12158,7 +11955,7 @@ static void atk73_hp_thresholds(void)
s32 result;
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
opposing_bank = gActiveBank ^ 1;
result = gBattleMons[opposing_bank].hp * 100 / gBattleMons[opposing_bank].maxHP;
@@ -12185,9 +11982,9 @@ static void atk74_hp_thresholds2(void)
s32 result;
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
opposing_bank = gActiveBank ^ 1;
- hp_switchout = ewram[2 * GetBankSide(opposing_bank) + 0x160bc]; //BATTLE_STRUCT->HP_OnSwitchout[GetBankSide(opposing_bank)];
+ hp_switchout = ewram160BCarr(GetBankSide(opposing_bank)); //BATTLE_STRUCT->HP_OnSwitchout[GetBankSide(opposing_bank)];
result = (hp_switchout - gBattleMons[opposing_bank].hp) * 100 / hp_switchout;
if (gBattleMons[opposing_bank].hp >= hp_switchout)
@@ -12212,8 +12009,8 @@ static void atk75_8026A58(void)
static void atk76_various(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- switch (BSScriptRead8(gBattlescriptCurrInstr + 2))
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ switch (T2_READ_8(gBattlescriptCurrInstr + 2))
{
case 0:
CancelMultiTurnMoves(gActiveBank);
@@ -12261,7 +12058,7 @@ static void atk76_various(void)
else
gActiveBank = 2;
- choiced_move = (u16*)(&ewram[gActiveBank * 2 + 0x160e8]);
+ choiced_move = CHOICED_MOVE(gActiveBank);
for (i = 0; i < 4; i++)
{
if (gBattleMons[gActiveBank].moves[i] == *choiced_move)
@@ -12360,7 +12157,7 @@ static void atk79_setatkhptozero(void)
static void atk7A_jumpwhiletargetvalid(void) //used by intimidate to loop through all targets
{
- u8* jump_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
@@ -12383,9 +12180,9 @@ static void atk7A_jumpwhiletargetvalid(void) //used by intimidate to loop throug
static void atk7B_healhalfHP_if_possible(void)
{
- u8* fail_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u8* fail_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1);
- if (BSScriptRead8(gBattlescriptCurrInstr + 5) == 1)
+ if (T2_READ_8(gBattlescriptCurrInstr + 5) == 1)
gBankTarget = gBankAttacker;
gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2;
@@ -12401,11 +12198,11 @@ static void atk7B_healhalfHP_if_possible(void)
static void atk7C_8025508(void)
{
- u16 r7 = ewram[gBankAttacker * 2 + 0x160ac] | (ewram[gBankAttacker * 2 + 0x160ad] << 8);
- u16 r6 = ewram[gBankAttacker * 4 + 0x16100] | (ewram[gBankAttacker * 4 + 0x16101] << 8);
- u16 r5 = ewram[gBankAttacker * 4 + 0x16102] | (ewram[gBankAttacker * 4 + 0x16103] << 8);
+ u16 r7 = ewram160ACarr2(0, gBankAttacker) | (ewram160ACarr2(1, gBankAttacker) << 8);
+ u16 r6 = ewram16100arr2(0, gBankAttacker) | (ewram16100arr2(1, gBankAttacker) << 8);
+ u16 r5 = ewram16100arr2(2, gBankAttacker) | (ewram16100arr2(3, gBankAttacker) << 8);
- if (r7 !=0 && r7 != 0xFFFF)
+ if (r7 != 0 && r7 != 0xFFFF)
{
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
gCurrentMove = r7;
@@ -12502,7 +12299,7 @@ static void atk7F_setseeded(void)
static void atk80_manipulatedamage(void)
{
- switch (BSScriptRead8(gBattlescriptCurrInstr + 1))
+ switch (T2_READ_8(gBattlescriptCurrInstr + 1))
{
case 0:
gBattleMoveDamage *= -1;
@@ -12524,7 +12321,7 @@ static void atk80_manipulatedamage(void)
static void atk81_setrest(void)
{
- u8* fail_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u8* fail_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1);
gActiveBank = gBankTarget = gBankAttacker;
gBattleMoveDamage = gBattleMons[gBankTarget].maxHP * (-1);
if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP)
@@ -12545,7 +12342,7 @@ static void atk81_setrest(void)
static void atk82_jumpifnotfirstturn(void)
{
- u8* jump_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1);
if (gDisableStructs[gBankAttacker].isFirstTurn)
gBattlescriptCurrInstr += 5;
@@ -12582,7 +12379,7 @@ bool8 UproarWakeUpCheck(u8 bank)
static void atk84_jump_if_cant_sleep(void)
{
- u8* jump_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1);
if (UproarWakeUpCheck(gBankTarget))
gBattlescriptCurrInstr = jump_loc;
else if (gBattleMons[gBankTarget].ability == ABILITY_INSOMNIA || gBattleMons[gBankTarget].ability == ABILITY_VITAL_SPIRIT)
@@ -12621,7 +12418,7 @@ static void atk85_stockpile(void)
static void atk86_stockpiletobasedamage(void)
{
- u8* jump_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1);
if (gDisableStructs[gBankAttacker].stockpileCounter == 0)
{
gBattlescriptCurrInstr = jump_loc;
@@ -12646,7 +12443,7 @@ static void atk86_stockpiletobasedamage(void)
static void atk87_stockpiletohpheal(void)
{
- u8* jump_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1);
if (gDisableStructs[gBankAttacker].stockpileCounter == 0)
{
gBattlescriptCurrInstr = jump_loc;
@@ -12979,7 +12776,7 @@ _08025F10: .4byte gBattlescriptCurrInstr\n\
_08025F14:\n\
mov r0, r8\n\
bl b_movescr_stack_push\n\
- ldr r0, _08025F40 @ =0x02000000\n\
+ ldr r0, _08025F40 @ =gSharedMem\n\
ldr r6, _08025F44 @ =gActiveBank\n\
ldrb r1, [r6]\n\
ldr r2, _08025F48 @ =0x00016003\n\
@@ -12999,7 +12796,7 @@ _08025F14:\n\
strb r1, [r0]\n\
b _08025F74\n\
.align 2, 0\n\
-_08025F40: .4byte 0x02000000\n\
+_08025F40: .4byte gSharedMem\n\
_08025F44: .4byte gActiveBank\n\
_08025F48: .4byte 0x00016003\n\
_08025F4C: .4byte gBattlescriptCurrInstr\n\
@@ -13074,7 +12871,7 @@ _08025FDC: .4byte gBattlescriptCurrInstr\n\
_08025FE0:\n\
mov r0, r8\n\
bl b_movescr_stack_push\n\
- ldr r0, _08026028 @ =0x02000000\n\
+ ldr r0, _08026028 @ =gSharedMem\n\
ldr r2, _0802602C @ =gActiveBank\n\
ldrb r1, [r2]\n\
ldr r3, _08026030 @ =0x00016003\n\
@@ -13106,7 +12903,7 @@ _08025FE0:\n\
strb r1, [r0]\n\
b _08025F74\n\
.align 2, 0\n\
-_08026028: .4byte 0x02000000\n\
+_08026028: .4byte gSharedMem\n\
_0802602C: .4byte gActiveBank\n\
_08026030: .4byte 0x00016003\n\
_08026034: .4byte gBattlescriptCurrInstr\n\
@@ -13131,7 +12928,7 @@ _08026040:\n\
bne _08025F74\n\
mov r0, r8\n\
bl b_movescr_stack_push\n\
- ldr r0, _08026094 @ =0x02000000\n\
+ ldr r0, _08026094 @ =gSharedMem\n\
ldr r3, _08026090 @ =gActiveBank\n\
ldrb r1, [r3]\n\
ldr r6, _08026098 @ =0x00016003\n\
@@ -13153,7 +12950,7 @@ _08026040:\n\
b _08025F74\n\
.align 2, 0\n\
_08026090: .4byte gActiveBank\n\
-_08026094: .4byte 0x02000000\n\
+_08026094: .4byte gSharedMem\n\
_08026098: .4byte 0x00016003\n\
_0802609C: .4byte gBattlescriptCurrInstr\n\
_080260A0: .4byte BattleScript_AbilityNoSpecificStatLoss\n\
@@ -13179,7 +12976,7 @@ _080260A8:\n\
_080260CA:\n\
mov r0, r8\n\
bl b_movescr_stack_push\n\
- ldr r0, _08026100 @ =0x02000000\n\
+ ldr r0, _08026100 @ =gSharedMem\n\
ldr r3, _080260FC @ =gActiveBank\n\
ldrb r1, [r3]\n\
ldr r6, _08026104 @ =0x00016003\n\
@@ -13201,7 +12998,7 @@ _080260CA:\n\
b _08025F74\n\
.align 2, 0\n\
_080260FC: .4byte gActiveBank\n\
-_08026100: .4byte 0x02000000\n\
+_08026100: .4byte gSharedMem\n\
_08026104: .4byte 0x00016003\n\
_08026108: .4byte gBattlescriptCurrInstr\n\
_0802610C: .4byte BattleScript_AbilityNoSpecificStatLoss\n\
@@ -13433,8 +13230,8 @@ _080262C0: .4byte gBattleMoveFlags\n\
static void atk89_statbuffchange(void)
{
- u8* jump_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
- if (ChangeStatBuffs(BATTLE_STRUCT->statChanger & 0xF0, BATTLE_STRUCT->statChanger & 0xF, BSScriptRead8(gBattlescriptCurrInstr + 1), jump_loc) == 0)
+ 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)
gBattlescriptCurrInstr += 6;
}
@@ -13469,8 +13266,8 @@ static void atk8C_confuseifrepeatingattackends(void)
static void atk8D_setmultihit_counter(void)
{
- if (BSScriptRead8(gBattlescriptCurrInstr + 1))
- gMultiHitCounter = BSScriptRead8(gBattlescriptCurrInstr + 1);
+ if (T2_READ_8(gBattlescriptCurrInstr + 1))
+ gMultiHitCounter = T2_READ_8(gBattlescriptCurrInstr + 1);
else
{
gMultiHitCounter = Random() & 3;
@@ -13484,12 +13281,12 @@ static void atk8D_setmultihit_counter(void)
static void atk8E_prepare_multihit(void)
{
- ewram[0x160e0] = 0xFD;
- ewram[0x160e1] = 1;
- ewram[0x160e2] = 1;
- ewram[0x160e3] = 1;
- ewram[0x160e4] = 0;
- ewram[0x160e5] = 0xFF;
+ ewram160E0(0) = 0xFD;
+ ewram160E0(1) = 1;
+ ewram160E0(2) = 1;
+ ewram160E0(3) = 1;
+ ewram160E0(4) = 0;
+ ewram160E0(5) = 0xFF;
gBattlescriptCurrInstr++;
}
@@ -13497,17 +13294,17 @@ static bool8 sub_80264C0(void)
{
if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level)
{
- ewram[gBankTarget + 0x16064] = gBattlePartyID[gBankTarget];
+ ewram16064arr(gBankTarget) = gBattlePartyID[gBankTarget];
}
else
{
u16 random = Random() & 0xFF;
if ((u32)((random * (gBattleMons[gBankAttacker].level + gBattleMons[gBankTarget].level) >> 8) + 1) <= (gBattleMons[gBankTarget].level / 4))
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
return 0;
}
- ewram[gBankTarget + 0x16064] = gBattlePartyID[gBankTarget];
+ ewram16064arr(gBankTarget) = gBattlePartyID[gBankTarget];
}
gBattlescriptCurrInstr = gUnknown_081D90FC;
return 1;
@@ -13555,7 +13352,7 @@ static void atk8F_forcerandomswitch(void)
if ((valid < 2 && (gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_MULTI)) != BATTLE_TYPE_DOUBLE)
|| (valid < 3 && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)))
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else if (sub_80264C0())
{
@@ -13588,7 +13385,7 @@ static void atk8F_forcerandomswitch(void)
} while (i == gBattlePartyID[gBankTarget] || !MON_CAN_BATTLE(&party[i]));
}
}
- ewram[gBankTarget + 0x16068] = i;
+ ewram16068arr(gBankTarget) = i;
if (!IsLinkDoubleBattle())
sub_8012258(gBankTarget);
sub_8094B6C(gBankTarget, i, 0);
@@ -13631,7 +13428,7 @@ static void atk90_conversion_type_change(void)
if (checked_move == valid_moves)
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -13750,7 +13547,7 @@ MOVESTATUS_MISSED_LABEL:
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
else
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
#else
@@ -14205,7 +14002,7 @@ static void atk97_try_infatuation(void)
|| gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE || gBattleMons[gBankTarget].status2 & STATUS2_INFATUATION || GetGenderFromSpeciesAndPersonality(atk_species, atk_pid) == 0xFF
|| GetGenderFromSpeciesAndPersonality(def_species, def_pid) == 0xFF)
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -14220,9 +14017,9 @@ static void atk98_status_icon_update(void)
if (gBattleExecBuffer)
return;
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) != 4)
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) != 4)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
@@ -14362,7 +14159,7 @@ static void atk9D_copyattack(void)
if (IsMoveUncopyable(gLastUsedMove[gBankTarget]) || gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED
|| gLastUsedMove[gBankTarget] == 0 || gLastUsedMove[gBankTarget] == 0xFFFF)
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -14390,7 +14187,7 @@ static void atk9D_copyattack(void)
gBattlescriptCurrInstr += 5;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -14527,7 +14324,7 @@ static void atkA1_counterdamagecalculator(void)
else
{
gSpecialStatuses[gBankAttacker].flag20 = 1;
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -14547,7 +14344,7 @@ static void atkA2_mirrorcoatdamagecalculator(void) //a copy of atkA1 with the ph
else
{
gSpecialStatuses[gBankAttacker].flag20 = 1;
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -14574,7 +14371,7 @@ static void atkA3_disablelastusedattack(void)
}
else
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -14598,7 +14395,7 @@ static void atkA4_setencore(void)
}
else
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -14619,14 +14416,14 @@ static void atkA5_painsplitdmgcalc(void)
gBattlescriptCurrInstr += 5;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
#ifdef NONMATCHING
static void atkA6_settypetorandomresistance(void)
{
if (gMoveHitWith[gBankAttacker] == 0 || gMoveHitWith[gBankAttacker] == 0xFFFF || (IsTwoTurnsMove(gMoveHitWith[gBankAttacker]) && !gProtectStructs[gBankAttacker].physicalDmg && !gProtectStructs[gBankAttacker].specialDmg))
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
int type = 0, rands = 0;
@@ -14668,7 +14465,7 @@ static void atkA6_settypetorandomresistance(void)
type += 3, rands += 3;
} while (rands < 336);
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -14957,7 +14754,7 @@ static void atkA8_copymovepermanently(void)
break;
}
if (i != 4) //sketch fail
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else //sketch worked
{
struct move_pp moves_data;
@@ -14981,7 +14778,7 @@ static void atkA8_copymovepermanently(void)
}
}
else //sketch fail
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static bool8 IsTwoTurnsMove(u16 move)
@@ -15042,7 +14839,7 @@ static void atkA9_sleeptalk_choose_move(void)
gCurrMovePos = random_pos;
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
gBankTarget = GetMoveTarget(gRandomMove, 0);
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -15122,7 +14919,7 @@ static void atkAD_spite_ppreduce(void)
return;
}
}
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkAE_heal_party_status(void)
@@ -15206,7 +15003,7 @@ static void atkAF_cursetarget(void)
{
if (gBattleMons[gBankTarget].status2 & STATUS2_CURSED || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE)
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -15224,7 +15021,7 @@ static void atkB0_set_spikes(void)
if (gSideTimer[side].spikesAmount == 3)
{
gSpecialStatuses[gBankAttacker].flag20 = 1;
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -15258,7 +15055,7 @@ static void atkB2_setperishsong(void)
sub_80153D0(gBankAttacker);
if (not_affected_pokes == gNoOfAllBanks)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
}
@@ -15296,8 +15093,8 @@ static void atkB3_rolloutdamagecalculation(void)
static void atkB4_jumpifconfusedandstatmaxed(void)
{
- if (gBattleMons[gBankTarget].status2 & STATUS2_CONFUSION && gBattleMons[gBankTarget].statStages[BSScriptRead8(gBattlescriptCurrInstr + 1)] == 0xC)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ if (gBattleMons[gBankTarget].status2 & STATUS2_CONFUSION && gBattleMons[gBankTarget].statStages[T2_READ_8(gBattlescriptCurrInstr + 1)] == 0xC)
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
}
@@ -15449,7 +15246,7 @@ static void atkBA_jumpifnopursuitswitchdmg(void)
gBankTarget = GetBankByPlayerAI(2);
}
- if (gActionForBanks[gBankTarget] == 0 && gBankAttacker == ewram[gBankTarget + 0x16010] && !(gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE))
+ if (gActionForBanks[gBankTarget] == 0 && gBankAttacker == ewram16010arr(gBankTarget) && !(gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE))
&& gBattleMons[gBankAttacker].hp && !gDisableStructs[gBankTarget].truantCounter && gChosenMovesByBanks[gBankTarget] == MOVE_PURSUIT)
{
int i;
@@ -15464,7 +15261,7 @@ static void atkBA_jumpifnopursuitswitchdmg(void)
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkBB_setsunny(void)
@@ -15499,7 +15296,7 @@ static void atkBC_maxattackhalvehp(void) //belly drum
}
else
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -15518,11 +15315,11 @@ static void atkBE_breakfree(void) //rapid spin
if (gBattleMons[gBankAttacker].status2 & STATUS2_WRAPPED)
{
gBattleMons[gBankAttacker].status2 &= ~(STATUS2_WRAPPED);
- gBankTarget = ewram[gBankAttacker + 0x16020];
+ gBankTarget = ewram16020arr(gBankAttacker);
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
- gBattleTextBuff1[2] = ewram[gBankAttacker * 2 + 0x16004];
- gBattleTextBuff1[3] = ewram[gBankAttacker * 2 + 0x16005];
+ gBattleTextBuff1[2] = ewram16004arr(0, gBankAttacker);
+ gBattleTextBuff1[3] = ewram16004arr(1, gBankAttacker);
gBattleTextBuff1[4] = 0xFF;
b_movescr_stack_push_cursor();
gBattlescriptCurrInstr = BattleScript_WrapFree;
@@ -15569,7 +15366,7 @@ static void atkC0_recoverbasedonsunlight(void)
}
else
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -15681,7 +15478,7 @@ push {r4-r7,lr}\n\
bl __divsi3\n\
adds r0, 0x1E\n\
strh r0, [r5]\n\
- ldr r5, _080298A0 @ =0x02000000\n\
+ ldr r5, _080298A0 @ =gSharedMem\n\
lsls r0, r4, 4\n\
subs r0, r4\n\
movs r1, 0x3F\n\
@@ -15716,7 +15513,7 @@ _08029876:\n\
_08029894: .4byte gBattleMons\n\
_08029898: .4byte gBankAttacker\n\
_0802989C: .4byte gDynamicBasePower\n\
-_080298A0: .4byte 0x02000000\n\
+_080298A0: .4byte gSharedMem\n\
_080298A4: .4byte 0x0001601c\n\
_080298A8: .4byte gBattlescriptCurrInstr\n\
.syntax divided");
@@ -15738,7 +15535,7 @@ static void atkC3_setfutureattack(void)
{
if (gWishFutureKnock.futureSightCounter[gBankTarget] != 0)
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -15771,7 +15568,7 @@ static void atkC4_beat_up(void)
party = gEnemyParty;
if (gBattleMons[gBankTarget].hp == 0)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
while (gBattleCommunication[0] < 6)
@@ -15801,9 +15598,9 @@ static void atkC4_beat_up(void)
gBattleCommunication[0]++;
}
else if (gBattleCommunication[0] != 0)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 5);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 5);
}
}
#else
@@ -16125,7 +15922,7 @@ static void atkC9_jumpifattackandspecialattackcannotfall(void) //memento
if (gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] == 0
&& gBattleMons[gBankTarget].statStages[STAT_STAGE_SPATK] == 0
&& gBattleCommunication[6] != 1)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
gActiveBank = gBankAttacker;
@@ -16171,13 +15968,13 @@ static void atkCD_cureifburnedparalysedorpoisoned(void) //refresh
MarkBufferBankForExecution(gActiveBank);
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkCE_settorment(void)
{
if (gBattleMons[gBankTarget].status2 & STATUS2_TORMENT)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
gBattleMons[gBankTarget].status2 |= STATUS2_TORMENT;
@@ -16190,7 +15987,7 @@ static void atkCF_jumpifnodamage(void)
if (gProtectStructs[gBankAttacker].physicalDmg || gProtectStructs[gBankAttacker].specialDmg)
gBattlescriptCurrInstr += 5;
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkD0_settaunt(void)
@@ -16202,7 +15999,7 @@ static void atkD0_settaunt(void)
gBattlescriptCurrInstr += 5;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkD1_set_helpinghand(void)
@@ -16215,7 +16012,7 @@ static void atkD1_set_helpinghand(void)
gBattlescriptCurrInstr += 5;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
#ifdef NONMATCHING
@@ -16227,7 +16024,7 @@ static void atkD2_swap_items(void)
if (gBattleTypeFlags)
}
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
#else
@@ -16397,7 +16194,7 @@ _0802A364: .4byte BattleScript_NoItemSteal\n\
_0802A368: .4byte gLastUsedAbility\n\
_0802A36C:\n\
lsls r0, r4, 1\n\
- ldr r4, _0802A458 @ =0x020160f0\n\
+ ldr r4, _0802A458 @ =gSharedMem + 0x160F0\n\
adds r6, r0, r4\n\
ldrh r5, [r5, 0x2E]\n\
mov r10, r5\n\
@@ -16511,7 +16308,7 @@ _0802A36C:\n\
movs r0, 0x2\n\
b _0802A498\n\
.align 2, 0\n\
-_0802A458: .4byte 0x020160f0\n\
+_0802A458: .4byte gSharedMem + 0x160F0\n\
_0802A45C: .4byte gBankAttacker\n\
_0802A460: .4byte gActiveBank\n\
_0802A464: .4byte 0xfffe9f10\n\
@@ -16560,12 +16357,12 @@ static void atkD3_copy_ability(void) //role play
gBattlescriptCurrInstr += 5;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkD4_wish_effect(void)
{
- switch (BSScriptRead8(gBattlescriptCurrInstr + 1))
+ switch (T2_READ_8(gBattlescriptCurrInstr + 1))
{
case 0: //use wish
if (gWishFutureKnock.wishCounter[gBankAttacker] == 0)
@@ -16575,7 +16372,7 @@ static void atkD4_wish_effect(void)
gBattlescriptCurrInstr += 6;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
break;
case 1: //heal effect
gBattleTextBuff1[0] = 0xFD;
@@ -16588,7 +16385,7 @@ static void atkD4_wish_effect(void)
gBattleMoveDamage = 1;
gBattleMoveDamage *= -1;
if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
break;
@@ -16598,7 +16395,7 @@ static void atkD4_wish_effect(void)
static void atkD5_setroots(void) //ingrain
{
if (gStatuses3[gBankAttacker] & STATUS3_ROOTED)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
gStatuses3[gBankAttacker] |= STATUS3_ROOTED;
@@ -16617,7 +16414,7 @@ static void atkD6_doubledamagedealtifdamaged(void)
static void atkD7_setyawn(void)
{
if (gStatuses3[gBankTarget] & STATUS3_YAWN || (u8) gBattleMons[gBankTarget].status1)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
gStatuses3[gBankTarget] |= 0x1000;
@@ -16629,7 +16426,7 @@ static void atkD8_setdamagetohealthdifference(void)
{
if (gBattleMons[gBankTarget].hp <= gBattleMons[gBankAttacker].hp)
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -16655,7 +16452,7 @@ static void atkDA_abilityswap(void)
if ((gBattleMons[gBankAttacker].ability == 0 && gBattleMons[gBankTarget].ability == 0)
|| gBattleMons[gBankAttacker].ability == ABILITY_WONDER_GUARD || gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD
|| gBattleMoveFlags & MOVESTATUS_NOEFFECT)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
u8 atk_ability = gBattleMons[gBankAttacker].ability;
@@ -16670,7 +16467,7 @@ static void atkDB_imprisoneffect(void)
u8 r8 = 0;
if ((gStatuses3[gBankAttacker] & STATUS3_IMPRISIONED))
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -16701,14 +16498,14 @@ static void atkDB_imprisoneffect(void)
}
}
if (bank == gNoOfAllBanks)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
static void atkDC_setgrudge(void)
{
if (gStatuses3[gBankAttacker] & STATUS3_GRUDGE)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
gStatuses3[gBankAttacker] |= STATUS3_GRUDGE;
@@ -16782,7 +16579,7 @@ static void atkDE_asistattackselect(void)
gBattlescriptCurrInstr += 5;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
#else
@@ -16845,7 +16642,7 @@ _0802AAAE:\n\
mov r9, r6\n\
mov r1, r10\n\
lsls r0, r1, 1\n\
- ldr r1, _0802ABB0 @ =0x02016024\n\
+ ldr r1, _0802ABB0 @ =gSharedMem + 0x16024\n\
adds r6, r0, r1\n\
_0802AAF8:\n\
movs r7, 0\n\
@@ -16916,7 +16713,7 @@ _0802AB54:\n\
muls r0, r1\n\
asrs r0, 8\n\
lsls r0, 1\n\
- ldr r1, _0802ABB0 @ =0x02016024\n\
+ ldr r1, _0802ABB0 @ =gSharedMem + 0x16024\n\
adds r0, r1\n\
ldrh r0, [r0]\n\
strh r0, [r4]\n\
@@ -16936,7 +16733,7 @@ _0802ABA0: .4byte gPlayerParty\n\
_0802ABA4: .4byte gEnemyParty\n\
_0802ABA8: .4byte gBattlePartyID\n\
_0802ABAC: .4byte 0x0000ffff\n\
-_0802ABB0: .4byte 0x02016024\n\
+_0802ABB0: .4byte gSharedMem + 0x16024\n\
_0802ABB4: .4byte sUnknown_081FACFE\n\
_0802ABB8: .4byte gHitMarker\n\
_0802ABBC: .4byte 0xfffffbff\n\
@@ -16978,7 +16775,7 @@ static void atkDF_setmagiccoat(void)
gBankTarget = gBankAttacker;
gSpecialStatuses[gBankAttacker].flag20 = 1;
if (gCurrentMoveTurn == gNoOfAllBanks - 1) //last turn
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
gProtectStructs[gBankAttacker].bounceMove = 1;
@@ -16990,7 +16787,7 @@ static void atkE0_setstealstatchange(void)
{
gSpecialStatuses[gBankAttacker].flag20 = 1;
if (gCurrentMoveTurn == gNoOfAllBanks - 1) //last turn
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
gProtectStructs[gBankAttacker].stealMove = 1;
@@ -17002,7 +16799,7 @@ static void atkE1_intimidate_string_loader(void)
{
u8 side;
- BATTLE_STRUCT->scriptingActive = ewram[0x160dd];
+ BATTLE_STRUCT->scriptingActive = ewram160DD;
side = GetBankSide(BATTLE_STRUCT->scriptingActive);
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 9;
@@ -17018,19 +16815,19 @@ static void atkE1_intimidate_string_loader(void)
}
if (gBankTarget >= gNoOfAllBanks)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
}
static void atkE2_switchout_abilities(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
switch (gBattleMons[gActiveBank].ability)
{
case ABILITY_NATURAL_CURE:
gBattleMons[gActiveBank].status1 = 0;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, gBitTable[ewram[gActiveBank + 0x16064]], 4, &gBattleMons[gActiveBank].status1);
+ EmitSetAttributes(0, REQUEST_STATUS_BATTLE, gBitTable[ewram16064arr(gActiveBank)], 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
break;
}
@@ -17039,9 +16836,9 @@ static void atkE2_switchout_abilities(void)
static void atkE3_jumpiffainted(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gBattleMons[gActiveBank].hp == 0)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
}
@@ -17114,7 +16911,7 @@ static void atkE6_castform_change_animation(void)
gActiveBank = BATTLE_STRUCT->scriptingActive;
if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE)
BATTLE_STRUCT->castformToChangeInto |= 0x80;
- EmitBattleAnimation(0, 0, BATTLE_STRUCT->castformToChangeInto);
+ EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, BATTLE_STRUCT->castformToChangeInto);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr++;
}
@@ -17155,7 +16952,7 @@ static void atkE8_settypebasedhalvers(void) //water/mud sport
if (worked)
gBattlescriptCurrInstr += 5;
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkE9_setweatherballtype(void)
@@ -17193,7 +16990,7 @@ static void atkEA_recycleitem(void)
gBattlescriptCurrInstr += 5;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkEB_settypetoterrain(void)
@@ -17209,7 +17006,7 @@ static void atkEB_settypetoterrain(void)
gBattlescriptCurrInstr += 5;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkEC_pursuit_sth(void)
@@ -17225,7 +17022,7 @@ static void atkEC_pursuit_sth(void)
gBankAttacker = gActiveBank;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkED_802B4B4(void)
@@ -17401,7 +17198,7 @@ static void atkF0_copy_caught_poke(void)
static void atkF1_setpoke_as_caught(void)
{
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1))
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 3);
@@ -17605,14 +17402,14 @@ static void atkF3_nickname_caught_poke(void)
if (gMain.callback2 == sub_800F808 && !gPaletteFade.active )
{
SetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_NICKNAME, BATTLE_STRUCT->caughtNick);
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
break;
case 4:
if (CalculatePlayerPartyCount() == 6)
gBattlescriptCurrInstr += 5;
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
break;
}
}
diff --git a/src/battle/battle_7.c b/src/battle/battle_7.c
index ad96510cf..5a30e012d 100644
--- a/src/battle/battle_7.c
+++ b/src/battle/battle_7.c
@@ -11,23 +11,14 @@
#include "pokemon.h"
#include "rom_8077ABC.h"
#include "rom_8094928.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "species.h"
+#include "constants/species.h"
#include "sprite.h"
#include "task.h"
#include "text.h"
#include "gba/m4a_internal.h"
-
-struct Struct2019348
-{
- u8 filler0[2];
- u16 unk2;
- u8 filler4[4];
- u32 unk8;
- u32 unkC;
- u32 unk10;
-};
+#include "ewram.h"
extern u8 gBattleBufferA[][0x200];
extern u8 gActiveBank;
@@ -52,8 +43,8 @@ extern u8 gBattleAnimBankAttacker;
extern u8 gBattleAnimBankTarget;
extern void (*gAnimScriptCallback)(void);
extern u8 gAnimScriptActive;
-extern const u8 *const gBattleAnims_Unknown1[];
-extern const u8 *const gBattleAnims_Unknown2[];
+extern const u8 *const gBattleAnims_General[];
+extern const u8 *const gBattleAnims_Special[];
extern const struct CompressedSpriteSheet gTrainerFrontPicTable[];
extern const struct MonCoords gTrainerFrontPicCoords[];
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
@@ -71,8 +62,6 @@ extern const struct CompressedSpriteSheet gUnknown_0820A4B4[];
extern const struct SpritePalette gUnknown_0820A4D4[];
extern const u8 gUnknown_08D09C48[];
-#define ewram19348 (*(struct Struct2019348 *)(ewram + 0x19348))
-
extern void c3_0802FDF4(u8);
extern void sub_80440EC();
extern void sub_804777C();
@@ -97,7 +86,7 @@ void sub_80328A4(struct Sprite *);
void sub_80312F0(struct Sprite *sprite)
{
- u8 spriteId = sprite->data1;
+ u8 spriteId = sprite->data[1];
if (gSprites[spriteId].affineAnimEnded && !gSprites[spriteId].invisible)
{
@@ -127,7 +116,7 @@ void sub_80313A0(struct Sprite *sprite)
{
if (!(gUnknown_02024DE8 & 1))
{
- sprite->pos2.x += sprite->data0;
+ sprite->pos2.x += sprite->data[0];
if (sprite->pos2.x == 0)
sprite->callback = SpriteCallbackDummy;
}
@@ -188,7 +177,7 @@ bool8 move_anim_start_t3(u8 a, u8 b, u8 c, u8 d, u16 e)
gBattleAnimBankAttacker = b;
gBattleAnimBankTarget = c;
ewram17840.unk0 = e;
- DoMoveAnim(gBattleAnims_Unknown1, d, 0);
+ DoMoveAnim(gBattleAnims_General, d, 0);
taskId = CreateTask(sub_80315E8, 10);
gTasks[taskId].data[0] = a;
ewram17810[gTasks[taskId].data[0]].unk0_5 = 1;
@@ -227,7 +216,7 @@ void move_anim_start_t4(u8 a, u8 b, u8 c, u8 d)
gBattleAnimBankAttacker = b;
gBattleAnimBankTarget = c;
- DoMoveAnim(gBattleAnims_Unknown2, d, 0);
+ DoMoveAnim(gBattleAnims_Special, d, 0);
taskId = CreateTask(sub_80316CC, 10);
gTasks[taskId].data[0] = a;
ewram17810[gTasks[taskId].data[0]].unk0_6 = 1;
@@ -295,7 +284,7 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b)
&gMonFrontPicTable[species],
gMonFrontPicCoords[species].coords,
gMonFrontPicCoords[species].y_offset,
- 0x02000000,
+ eVoidSharedArr2,
gUnknown_081FAF4C[var],
species,
r7);
@@ -304,14 +293,14 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b)
lzPaletteData = GetMonSpritePal(pkmn);
else
lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
- LZDecompressWram(lzPaletteData, ewram);
- LoadPalette(ewram, paletteOffset, 0x20);
- LoadPalette(ewram, 0x80 + b * 16, 0x20);
+ LZDecompressWram(lzPaletteData, gSharedMem);
+ LoadPalette(gSharedMem, paletteOffset, 0x20);
+ LoadPalette(gSharedMem, 0x80 + b * 16, 0x20);
if (species == SPECIES_CASTFORM)
{
paletteOffset = 0x100 + b * 16;
- LZDecompressWram(lzPaletteData, ewram + 0x16400);
- LoadPalette(ewram + 0x16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
+ LZDecompressWram(lzPaletteData, ewram16400);
+ LoadPalette(ewram16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
}
if (ewram17800[b].transformedSpecies != 0)
{
@@ -347,7 +336,7 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b)
&gMonBackPicTable[species],
gMonBackPicCoords[species].coords,
gMonBackPicCoords[species].y_offset,
- 0x02000000,
+ eVoidSharedArr2,
gUnknown_081FAF4C[var],
species,
r7);
@@ -356,14 +345,14 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b)
lzPaletteData = GetMonSpritePal(pkmn);
else
lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
- LZDecompressWram(lzPaletteData, ewram);
- LoadPalette(ewram, paletteOffset, 0x20);
- LoadPalette(ewram, 0x80 + b * 16, 0x20);
+ LZDecompressWram(lzPaletteData, gSharedMem);
+ LoadPalette(gSharedMem, paletteOffset, 0x20);
+ LoadPalette(gSharedMem, 0x80 + b * 16, 0x20);
if (species == SPECIES_CASTFORM)
{
paletteOffset = 0x100 + b * 16;
- LZDecompressWram(lzPaletteData, ewram + 0x16400);
- LoadPalette(ewram + 0x16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
+ LZDecompressWram(lzPaletteData, ewram16400);
+ LoadPalette(ewram16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
}
if (ewram17800[b].transformedSpecies != 0)
{
@@ -390,7 +379,7 @@ void sub_8031A6C(u16 a, u8 b)
&gTrainerFrontPicTable[a],
gTrainerFrontPicCoords[a].coords,
gTrainerFrontPicCoords[a].y_offset,
- (void *)0x02000000,
+ eVoidSharedArr,
gUnknown_081FAF4C[status],
0);
spriteSheet.data = gUnknown_081FAF4C[status];
@@ -409,7 +398,7 @@ void LoadPlayerTrainerBankSprite(u16 a, u8 b)
&gTrainerBackPicTable[a],
gTrainerBackPicCoords[a].coords,
gTrainerBackPicCoords[a].y_offset,
- (void *)0x02000000,
+ eVoidSharedArr,
gUnknown_081FAF4C[status],
0);
LoadCompressedPalette(gTrainerBackPicPaletteTable[a].data, 0x100 + b * 16, 32);
@@ -506,7 +495,7 @@ bool8 sub_8031C30(u8 a)
void load_gfxc_health_bar(void)
{
- LZDecompressWram(gUnknown_08D09C48, (void *)0x02000000);
+ LZDecompressWram(gUnknown_08D09C48, eVoidSharedArr);
}
u8 battle_load_something(u8 *pState, u8 *b)
@@ -623,7 +612,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
{
StartSpriteAnim(&gSprites[gObjectBankIDs[a]], ewram17840.unk0);
paletteOffset = 0x100 + a * 16;
- LoadPalette(ewram + 0x16400 + ewram17840.unk0 * 32, paletteOffset, 32);
+ LoadPalette(ewram16400 + ewram17840.unk0 * 32, paletteOffset, 32);
gBattleMonForms[a] = ewram17840.unk0;
if (ewram17800[a].transformedSpecies != 0)
{
@@ -637,7 +626,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
const void *src;
void *dst;
- if (IsContest())
+ if (NotInBattle())
{
r10 = 0;
species = ewram19348.unk2;
@@ -647,7 +636,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
&gMonBackPicTable[species],
gMonBackPicCoords[species].coords,
gMonBackPicCoords[species].y_offset,
- 0x02000000,
+ eVoidSharedArr2,
gUnknown_081FAF4C[0],
species,
ewram19348.unk10);
@@ -667,7 +656,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
&gMonBackPicTable[species],
gMonBackPicCoords[species].coords,
gMonBackPicCoords[species].y_offset,
- 0x02000000,
+ eVoidSharedArr2,
gUnknown_081FAF4C[r10],
species,
gPID_perBank[a]);
@@ -680,7 +669,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
&gMonFrontPicTable[species],
gMonFrontPicCoords[species].coords,
gMonFrontPicCoords[species].y_offset,
- 0x02000000,
+ eVoidSharedArr2,
gUnknown_081FAF4C[r10],
species,
gPID_perBank[a]);
@@ -691,18 +680,18 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
DmaCopy32(3, src, dst, 0x800);
paletteOffset = 0x100 + a * 16;
lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
- LZDecompressWram(lzPaletteData, ewram);
- LoadPalette(ewram, paletteOffset, 32);
+ LZDecompressWram(lzPaletteData, gSharedMem);
+ LoadPalette(gSharedMem, paletteOffset, 32);
if (species == SPECIES_CASTFORM)
{
- u16 *paletteSrc = (u16 *)(ewram + 0x16400);
+ u16 *paletteSrc = (u16 *)ewram16400; // TODO: avoid casting?
LZDecompressWram(lzPaletteData, paletteSrc);
LoadPalette(paletteSrc + gBattleMonForms[b] * 16, paletteOffset, 32);
}
BlendPalette(paletteOffset, 16, 6, 0x7FFF);
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
- if (!IsContest())
+ if (!NotInBattle())
{
ewram17800[a].transformedSpecies = species;
gBattleMonForms[a] = gBattleMonForms[b];
@@ -722,11 +711,11 @@ void BattleLoadSubstituteSprite(u8 a, u8 b)
if (b == 0)
{
- if (IsContest())
+ if (NotInBattle())
r4 = 0;
else
r4 = GetBankIdentity(a);
- if (IsContest())
+ if (NotInBattle())
LZDecompressVram(gSubstituteDollTilemap, gUnknown_081FAF4C[r4]);
else if (GetBankSide(a) != 0)
LZDecompressVram(gSubstituteDollGfx, gUnknown_081FAF4C[r4]);
@@ -742,7 +731,7 @@ void BattleLoadSubstituteSprite(u8 a, u8 b)
}
else
{
- if (!IsContest())
+ if (!NotInBattle())
{
if (GetBankSide(a) != 0)
BattleLoadOpponentMonSprite(&gEnemyParty[gBattlePartyID[a]], a);
@@ -869,19 +858,19 @@ void sub_80327CC(void)
LoadCompressedObjectPic(&gUnknown_081FAF24);
r5 = GetBankByPlayerAI(1);
ewram17810[r5].unk7 = CreateSprite(&gSpriteTemplate_81FAF34, sub_8077ABC(r5, 0), sub_8077ABC(r5, 1) + 32, 0xC8);
- gSprites[ewram17810[r5].unk7].data0 = r5;
+ gSprites[ewram17810[r5].unk7].data[0] = r5;
if (IsDoubleBattle())
{
r5 = GetBankByPlayerAI(3);
ewram17810[r5].unk7 = CreateSprite(&gSpriteTemplate_81FAF34, sub_8077ABC(r5, 0), sub_8077ABC(r5, 1) + 32, 0xC8);
- gSprites[ewram17810[r5].unk7].data0 = r5;
+ gSprites[ewram17810[r5].unk7].data[0] = r5;
}
}
void sub_80328A4(struct Sprite *sprite)
{
bool8 invisible = FALSE;
- u8 r4 = sprite->data0;
+ u8 r4 = sprite->data[0];
struct Sprite *r7 = &gSprites[gObjectBankIDs[r4]];
if (!r7->inUse || AnimBankSpriteExists(r4) == 0)
diff --git a/src/battle/battle_ai.c b/src/battle/battle_ai.c
index 1869bbe36..1fa7a2ed2 100644
--- a/src/battle/battle_ai.c
+++ b/src/battle/battle_ai.c
@@ -1,16 +1,17 @@
#include "global.h"
#include "battle_ai.h"
-#include "abilities.h"
+#include "constants/abilities.h"
#include "battle.h"
-#include "battle_move_effects.h"
+#include "constants/battle_move_effects.h"
#include "data2.h"
#include "item.h"
-#include "moves.h"
+#include "constants/moves.h"
#include "pokemon.h"
-#include "rng.h"
+#include "random.h"
#include "rom_8077ABC.h"
-#include "species.h"
+#include "constants/species.h"
#include "util.h"
+#include "ewram.h"
extern u16 gBattleTypeFlags;
extern u16 gBattleWeather;
@@ -267,10 +268,9 @@ const u16 sDiscouragedPowerfulMoveEffects[] =
void BattleAI_HandleItemUseBeforeAISetup(void)
{
s32 i;
- u8 *data = (u8 *)UNK_2016A00_STRUCT;
+ u8 *data;
- for (i = 0; (u32)i < sizeof(struct UnkBattleStruct1); i++)
- data[i] = 0;
+ MEMSET_ALT(UNK_2016A00_STRUCT, 0, sizeof(struct UnkBattleStruct1), i, data);
if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)
&& gTrainerBattleOpponent != 0x400
@@ -292,21 +292,23 @@ void BattleAI_HandleItemUseBeforeAISetup(void)
void BattleAI_SetupAIData(void)
{
s32 i;
- u8 *data = (u8 *)AI_THINKING_STRUCT;
- u8 r7;
+ u8 limitations;
+ u8 *data;
// clear AI data and set default move score to 100. strange that they didn't use memset here.
- for (i = 0; (u32)i < sizeof(struct AI_ThinkingStruct); i++)
- data[i] = 0;
+ MEMSET_ALT(AI_THINKING_STRUCT, 0, sizeof(struct AI_ThinkingStruct), i, data);
+
for (i = 0; i < MAX_MON_MOVES; i++)
AI_THINKING_STRUCT->score[i] = 100;
- r7 = CheckMoveLimitations(gActiveBank, 0, 0xFF);
+ limitations = CheckMoveLimitations(gActiveBank, 0, 0xFF);
- // probably sets up the moves to consider and ignores non-valid moves such as NO_MOVE or glitch moves.
+ // do not consider moves the AI cannot select
+ // also, roll simulated RNG for moves that have a degree of
+ // randomness.
for (i = 0; i < MAX_MON_MOVES; i++)
{
- if (gBitTable[i] & r7)
+ if (gBitTable[i] & limitations)
AI_THINKING_STRUCT->score[i] = 0;
AI_THINKING_STRUCT->simulatedRNG[i] = 100 - (Random() % 16);
@@ -411,7 +413,7 @@ void BattleAI_DoAIProcessing(void)
break;
case AIState_Processing:
if (AI_THINKING_STRUCT->moveConsidered != MOVE_NONE)
- sBattleAICmdTable[*(u8 *)gAIScriptPtr](); // run AI command.
+ sBattleAICmdTable[*gAIScriptPtr](); // run AI command.
else
{
AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] = 0; // definitely do not consider any move that has 0 PP.
@@ -469,7 +471,7 @@ void RecordItemBattle(u8 a, u8 b)
static void BattleAICmd_if_random_less_than(void)
{
if (Random() % 256 < gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -477,7 +479,7 @@ static void BattleAICmd_if_random_less_than(void)
static void BattleAICmd_if_random_greater_than(void)
{
if (Random() % 256 > gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -485,7 +487,7 @@ static void BattleAICmd_if_random_greater_than(void)
static void BattleAICmd_if_random_equal(void)
{
if (Random() % 256 == gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -493,7 +495,7 @@ static void BattleAICmd_if_random_equal(void)
static void BattleAICmd_if_random_not_equal(void)
{
if (Random() % 256 != gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -518,7 +520,7 @@ static void BattleAICmd_if_hp_less_than(void)
index = gBankTarget;
if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) < gAIScriptPtr[2])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
else
gAIScriptPtr += 7;
}
@@ -533,7 +535,7 @@ static void BattleAICmd_if_hp_more_than(void)
index = gBankTarget;
if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) > gAIScriptPtr[2])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
else
gAIScriptPtr += 7;
}
@@ -548,7 +550,7 @@ static void BattleAICmd_if_hp_equal(void)
index = gBankTarget;
if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) == gAIScriptPtr[2])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
else
gAIScriptPtr += 7;
}
@@ -563,7 +565,7 @@ static void BattleAICmd_if_hp_not_equal(void)
index = gBankTarget;
if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) != gAIScriptPtr[2])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
else
gAIScriptPtr += 7;
}
@@ -578,10 +580,10 @@ static void BattleAICmd_if_status(void)
else
index = gBankTarget;
- arg = AIScriptRead32(gAIScriptPtr + 2);
+ arg = T1_READ_32(gAIScriptPtr + 2);
if ((gBattleMons[index].status1 & arg) != 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
}
@@ -596,10 +598,10 @@ static void BattleAICmd_if_not_status(void)
else
index = gBankTarget;
- arg = AIScriptRead32(gAIScriptPtr + 2);
+ arg = T1_READ_32(gAIScriptPtr + 2);
if ((gBattleMons[index].status1 & arg) == 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
}
@@ -614,10 +616,10 @@ static void BattleAICmd_if_status2(void)
else
index = gBankTarget;
- arg = AIScriptRead32(gAIScriptPtr + 2);
+ arg = T1_READ_32(gAIScriptPtr + 2);
if ((gBattleMons[index].status2 & arg) != 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
}
@@ -632,10 +634,10 @@ static void BattleAICmd_if_not_status2(void)
else
index = gBankTarget;
- arg = AIScriptRead32(gAIScriptPtr + 2);
+ arg = T1_READ_32(gAIScriptPtr + 2);
if ((gBattleMons[index].status2 & arg) == 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
}
@@ -650,10 +652,10 @@ static void BattleAICmd_if_status3(void)
else
index = gBankTarget;
- arg = AIScriptRead32(gAIScriptPtr + 2);
+ arg = T1_READ_32(gAIScriptPtr + 2);
if ((gStatuses3[index] & arg) != 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
}
@@ -668,10 +670,10 @@ static void BattleAICmd_if_not_status3(void)
else
index = gBankTarget;
- arg = AIScriptRead32(gAIScriptPtr + 2);
+ arg = T1_READ_32(gAIScriptPtr + 2);
if ((gStatuses3[index] & arg) == 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
}
@@ -687,10 +689,10 @@ static void BattleAICmd_if_status4(void)
index = gBankTarget;
arg1 = GetBankIdentity(index) & 1;
- arg2 = AIScriptRead32(gAIScriptPtr + 2);
+ arg2 = T1_READ_32(gAIScriptPtr + 2);
if ((gSideAffecting[arg1] & arg2) != 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
}
@@ -706,10 +708,10 @@ static void BattleAICmd_if_not_status4(void)
index = gBankTarget;
arg1 = GetBankIdentity(index) & 1;
- arg2 = AIScriptRead32(gAIScriptPtr + 2);
+ arg2 = T1_READ_32(gAIScriptPtr + 2);
if ((gSideAffecting[arg1] & arg2) == 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
}
@@ -717,7 +719,7 @@ static void BattleAICmd_if_not_status4(void)
static void BattleAICmd_if_less_than(void)
{
if (AI_THINKING_STRUCT->funcResult < gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -725,7 +727,7 @@ static void BattleAICmd_if_less_than(void)
static void BattleAICmd_if_more_than(void)
{
if (AI_THINKING_STRUCT->funcResult > gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -733,7 +735,7 @@ static void BattleAICmd_if_more_than(void)
static void BattleAICmd_if_equal(void)
{
if (AI_THINKING_STRUCT->funcResult == gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -741,80 +743,80 @@ static void BattleAICmd_if_equal(void)
static void BattleAICmd_if_not_equal(void)
{
if (AI_THINKING_STRUCT->funcResult != gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
static void BattleAICmd_if_less_than_32(void)
{
- u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
+ u8 *temp = T1_READ_PTR(gAIScriptPtr + 1);
if (AI_THINKING_STRUCT->funcResult < *temp)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5);
else
gAIScriptPtr += 9;
}
static void BattleAICmd_if_more_than_32(void)
{
- u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
+ u8 *temp = T1_READ_PTR(gAIScriptPtr + 1);
if (AI_THINKING_STRUCT->funcResult > *temp)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5);
else
gAIScriptPtr += 9;
}
static void BattleAICmd_if_equal_32(void)
{
- u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
+ u8 *temp = T1_READ_PTR(gAIScriptPtr + 1);
if (AI_THINKING_STRUCT->funcResult == *temp)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5);
else
gAIScriptPtr += 9;
}
static void BattleAICmd_if_not_equal_32(void)
{
- u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
+ u8 *temp = T1_READ_PTR(gAIScriptPtr + 1);
if (AI_THINKING_STRUCT->funcResult != *temp)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5);
else
gAIScriptPtr += 9;
}
static void BattleAICmd_if_move(void)
{
- u16 move = AIScriptRead16(gAIScriptPtr + 1);
+ u16 move = T1_READ_16(gAIScriptPtr + 1);
if (AI_THINKING_STRUCT->moveConsidered == move)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
else
gAIScriptPtr += 7;
}
static void BattleAICmd_if_not_move(void)
{
- u16 move = AIScriptRead16(gAIScriptPtr + 1);
+ u16 move = T1_READ_16(gAIScriptPtr + 1);
if (AI_THINKING_STRUCT->moveConsidered != move)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
else
gAIScriptPtr += 7;
}
static void BattleAICmd_if_in_bytes(void)
{
- u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1);
+ u8 *ptr = T1_READ_PTR(gAIScriptPtr + 1);
while (*ptr != 0xFF)
{
if (AI_THINKING_STRUCT->funcResult == *ptr)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5);
return;
}
ptr++;
@@ -824,7 +826,7 @@ static void BattleAICmd_if_in_bytes(void)
static void BattleAICmd_if_not_in_bytes(void)
{
- u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1);
+ u8 *ptr = T1_READ_PTR(gAIScriptPtr + 1);
while (*ptr != 0xFF)
{
@@ -835,18 +837,18 @@ static void BattleAICmd_if_not_in_bytes(void)
}
ptr++;
}
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5);
}
static void BattleAICmd_if_in_words(void)
{
- u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1);
+ u16 *ptr = (u16 *)T1_READ_PTR(gAIScriptPtr + 1);
while (*ptr != 0xFFFF)
{
if (AI_THINKING_STRUCT->funcResult == *ptr)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5);
return;
}
ptr++;
@@ -856,7 +858,7 @@ static void BattleAICmd_if_in_words(void)
static void BattleAICmd_if_not_in_words(void)
{
- u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1);
+ u16 *ptr = (u16 *)T1_READ_PTR(gAIScriptPtr + 1);
while (*ptr != 0xFFFF)
{
@@ -867,7 +869,7 @@ static void BattleAICmd_if_not_in_words(void)
}
ptr++;
}
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5);
}
static void BattleAICmd_if_user_can_damage(void)
@@ -883,7 +885,7 @@ static void BattleAICmd_if_user_can_damage(void)
if (i == MAX_MON_MOVES)
gAIScriptPtr += 5;
else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
}
static void BattleAICmd_if_user_cant_damage(void)
@@ -899,7 +901,7 @@ static void BattleAICmd_if_user_cant_damage(void)
if (i != MAX_MON_MOVES)
gAIScriptPtr += 5;
else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
}
static void BattleAICmd_get_turn_count(void)
@@ -951,8 +953,8 @@ static void BattleAICmd_is_most_powerful_move(void)
&& sDiscouragedPowerfulMoveEffects[i] == 0xFFFF)
{
gDynamicBasePower = 0;
- ewram[0x1601C] = 0; // why is this a manual array?
- ewram[0x1601F] = 1;
+ eDynamicMoveType = 0;
+ eDmgMultiplier = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
@@ -1015,7 +1017,7 @@ static void BattleAICmd_is_most_powerful_move(void)
ldrh r1, [r0]\n\
ldr r4, _0810832C @ =0x0000ffff\n\
ldr r6, _08108330 @ =gBattleMoves\n\
- ldr r5, _08108334 @ =0x02016800\n\
+ ldr r5, _08108334 @ =gSharedMem + 0x16800\n\
cmp r1, r4\n\
beq _0810822E\n\
ldrh r1, [r5, 0x2]\n\
@@ -1148,7 +1150,7 @@ _081082BA:\n\
mov r4, sp\n\
add r4, r8\n\
ldr r2, _08108358 @ =gBattleMoveDamage\n\
- ldr r0, _08108334 @ =0x02016800\n\
+ ldr r0, _08108334 @ =gSharedMem + 0x16800\n\
adds r0, 0x18\n\
adds r0, r6, r0\n\
ldrb r1, [r0]\n\
@@ -1166,7 +1168,7 @@ _081082BA:\n\
_08108328: .4byte sDiscouragedPowerfulMoveEffects\n\
_0810832C: .4byte 0x0000ffff\n\
_08108330: .4byte gBattleMoves\n\
-_08108334: .4byte 0x02016800\n\
+_08108334: .4byte gSharedMem + 0x16800\n\
_08108338: .4byte gDynamicBasePower\n\
_0810833C: .4byte 0xfffff81c\n\
_08108340: .4byte gBattleMoveFlags\n\
@@ -1186,7 +1188,7 @@ _08108364:\n\
cmp r6, 0x3\n\
ble _08108276\n\
movs r6, 0\n\
- ldr r1, _081083A4 @ =0x02016800\n\
+ ldr r1, _081083A4 @ =gSharedMem + 0x16800\n\
ldrb r0, [r1, 0x1]\n\
lsls r0, 2\n\
add r0, sp\n\
@@ -1217,7 +1219,7 @@ _0810839A:\n\
str r0, [r5, 0x8]\n\
b _081083B8\n\
.align 2, 0\n\
-_081083A4: .4byte 0x02016800\n\
+_081083A4: .4byte gSharedMem + 0x16800\n\
_081083A8: .4byte gAIScriptPtr\n\
_081083AC:\n\
movs r0, 0x1\n\
@@ -1258,7 +1260,7 @@ static void BattleAICmd_get_move(void)
static void BattleAICmd_if_arg_equal(void)
{
if (gAIScriptPtr[1] == AI_THINKING_STRUCT->funcResult)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -1266,7 +1268,7 @@ static void BattleAICmd_if_arg_equal(void)
static void BattleAICmd_if_arg_not_equal(void)
{
if (gAIScriptPtr[1] != AI_THINKING_STRUCT->funcResult)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -1274,7 +1276,7 @@ static void BattleAICmd_if_arg_not_equal(void)
static void BattleAICmd_if_would_go_first(void)
{
if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, 1) == gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -1282,7 +1284,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])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -1486,7 +1488,7 @@ static void BattleAICmd_if_damage_bonus(void)
damageVar = gBattleMoveDamage;
if (damageVar == gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -1517,7 +1519,7 @@ static void BattleAICmd_if_status_in_party(void)
break;
}
- statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2);
+ statusToCompareTo = T1_READ_32(gAIScriptPtr + 2);
for (i = 0; i < 6; i++)
{
@@ -1527,7 +1529,7 @@ static void BattleAICmd_if_status_in_party(void)
if (species != SPECIES_NONE && species != SPECIES_EGG && hp != 0 && status == statusToCompareTo)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); // WHAT. why is this being merged into the above switch
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); // WHAT. why is this being merged into the above switch
return;
}
}
@@ -1553,7 +1555,7 @@ static void BattleAICmd_if_status_not_in_party(void)
break;
}
- statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2);
+ statusToCompareTo = T1_READ_32(gAIScriptPtr + 2);
for (i = 0; i < 6; i++)
{
@@ -1565,7 +1567,7 @@ static void BattleAICmd_if_status_not_in_party(void)
if (species != SPECIES_NONE && species != SPECIES_EGG && hp != 0 && status == statusToCompareTo)
gAIScriptPtr += 10; // doesnt return?
}
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
}
static void BattleAICmd_get_weather(void)
@@ -1585,7 +1587,7 @@ static void BattleAICmd_get_weather(void)
static void BattleAICmd_if_effect(void)
{
if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect == gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -1593,7 +1595,7 @@ static void BattleAICmd_if_effect(void)
static void BattleAICmd_if_not_effect(void)
{
if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect != gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -1608,7 +1610,7 @@ static void BattleAICmd_if_stat_level_less_than(void)
party = gBankTarget;
if (gBattleMons[party].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
else
gAIScriptPtr += 8;
}
@@ -1623,7 +1625,7 @@ static void BattleAICmd_if_stat_level_more_than(void)
party = gBankTarget;
if (gBattleMons[party].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
else
gAIScriptPtr += 8;
}
@@ -1638,7 +1640,7 @@ static void BattleAICmd_if_stat_level_equal(void)
party = gBankTarget;
if (gBattleMons[party].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
else
gAIScriptPtr += 8;
}
@@ -1653,7 +1655,7 @@ static void BattleAICmd_if_stat_level_not_equal(void)
party = gBankTarget;
if (gBattleMons[party].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
else
gAIScriptPtr += 8;
}
@@ -1682,7 +1684,7 @@ static void BattleAICmd_if_can_faint(void)
gBattleMoveDamage = 1;
if (gBattleMons[gBankTarget].hp <= gBattleMoveDamage)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
}
@@ -1709,7 +1711,7 @@ static void BattleAICmd_if_cant_faint(void)
// this macro is missing the damage 0 = 1 assumption.
if (gBattleMons[gBankTarget].hp > gBattleMoveDamage)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
}
@@ -1731,7 +1733,7 @@ static void BattleAICmd_if_has_move(void)
if (i == MAX_MON_MOVES)
gAIScriptPtr += 8;
else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
break;
case 0:
case 2:
@@ -1743,7 +1745,7 @@ static void BattleAICmd_if_has_move(void)
if (i == 8)
gAIScriptPtr += 8;
else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
break;
}
}
@@ -1765,7 +1767,7 @@ static void BattleAICmd_if_dont_have_move(void)
if (i != MAX_MON_MOVES)
gAIScriptPtr += 8;
else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
break;
case 0:
case 2:
@@ -1777,7 +1779,7 @@ static void BattleAICmd_if_dont_have_move(void)
if (i != 8)
gAIScriptPtr += 8;
else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
break;
}
}
@@ -1796,7 +1798,7 @@ static void BattleAICmd_if_move_effect(void)
break;
}
if (i != MAX_MON_MOVES)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
else
gAIScriptPtr += 7;
break;
@@ -1807,7 +1809,7 @@ static void BattleAICmd_if_move_effect(void)
if (gBattleMons[gBankAttacker].moves[i] != 0 && gBattleMoves[UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i]].effect == gAIScriptPtr[2])
break;
}
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
}
}
@@ -1827,7 +1829,7 @@ static void BattleAICmd_if_not_move_effect(void)
if (i != MAX_MON_MOVES)
gAIScriptPtr += 7;
else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
break;
case 0:
case 2:
@@ -1856,7 +1858,7 @@ static void BattleAICmd_if_last_move_did_damage(void)
gAIScriptPtr += 7;
return;
}
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
return;
}
else if (gAIScriptPtr[2] != 1) // ignore the macro if its not 0 or 1.
@@ -1866,7 +1868,7 @@ static void BattleAICmd_if_last_move_did_damage(void)
}
else if (gDisableStructs[index].encoredMove != 0)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
return;
}
gAIScriptPtr += 7;
@@ -1879,7 +1881,7 @@ static void BattleAICmd_if_encored(void)
case 0: // _08109348
if (gDisableStructs[gActiveBank].disabledMove == AI_THINKING_STRUCT->moveConsidered)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
return;
}
gAIScriptPtr += 6;
@@ -1887,7 +1889,7 @@ static void BattleAICmd_if_encored(void)
case 1: // _08109370
if (gDisableStructs[gActiveBank].encoredMove == AI_THINKING_STRUCT->moveConsidered)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
return;
}
gAIScriptPtr += 6;
@@ -1908,7 +1910,7 @@ static void BattleAICmd_if_random_100(void)
u8 safariFleeRate = BATTLE_STRUCT->safariFleeRate * 5; // safari flee rate, from 0-20
if ((u8)(Random() % 100) < safariFleeRate)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
}
@@ -1997,8 +1999,7 @@ static void BattleAICmd_get_used_item(void)
else
index = gBankTarget;
- // this hack and a half matches. whatever. i dont care. someone else fix this mess later. PS: still cant fix this.
- AI_THINKING_STRUCT->funcResult = ewram[MULTI_DIM_ARR(index, B_16, 0x160CC)];
+ AI_THINKING_STRUCT->funcResult = AI_ARRAY_160CC(index);
gAIScriptPtr += 2;
}
@@ -2065,12 +2066,12 @@ static void BattleAICmd_nullsub_57(void)
static void BattleAICmd_call(void)
{
AIStackPushVar(gAIScriptPtr + 5);
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
}
static void BattleAICmd_jump(void)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
}
static void BattleAICmd_end(void)
@@ -2086,7 +2087,7 @@ static void BattleAICmd_if_level_compare(void)
case 0: // greater than
if (gBattleMons[gBankAttacker].level > gBattleMons[gBankTarget].level)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
return;
}
gAIScriptPtr += 6;
@@ -2094,7 +2095,7 @@ static void BattleAICmd_if_level_compare(void)
case 1: // less than
if (gBattleMons[gBankAttacker].level < gBattleMons[gBankTarget].level)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
return;
}
gAIScriptPtr += 6;
@@ -2102,7 +2103,7 @@ static void BattleAICmd_if_level_compare(void)
case 2: // equal
if (gBattleMons[gBankAttacker].level == gBattleMons[gBankTarget].level)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
return;
}
gAIScriptPtr += 6;
@@ -2113,7 +2114,7 @@ static void BattleAICmd_if_level_compare(void)
static void BattleAICmd_if_taunted(void)
{
if (gDisableStructs[gBankTarget].tauntTimer1 != 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
}
@@ -2121,7 +2122,7 @@ static void BattleAICmd_if_taunted(void)
static void BattleAICmd_if_not_taunted(void)
{
if (gDisableStructs[gBankTarget].tauntTimer1 == 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
}
diff --git a/src/battle/battle_anim.c b/src/battle/battle_anim.c
index 111d72813..1a78b2863 100644
--- a/src/battle/battle_anim.c
+++ b/src/battle/battle_anim.c
@@ -12,11 +12,11 @@
#include "sound.h"
#include "sprite.h"
#include "task.h"
+#include "ewram.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)
-extern u8 unk_2000000[];
extern u16 gBattlePartyID[4];
extern u8 gObjectBankIDs[];
extern u8 gBankAttacker;
@@ -217,7 +217,7 @@ void DoMoveAnim(const u8 *const moveAnims[], u16 move, u8 c)
{
s32 i;
- if (IsContest() == 0)
+ if (NotInBattle() == 0)
{
sub_8079E24();
sub_8043EB4(0);
@@ -335,7 +335,7 @@ static void RunAnimScriptCommand(void)
{
do
{
- sScriptCmdTable[SCRIPT_READ_8(gBattleAnimScriptPtr)]();
+ sScriptCmdTable[T1_READ_8(gBattleAnimScriptPtr)]();
} while (gAnimFramesToWait == 0 && gAnimScriptActive != FALSE);
}
@@ -344,7 +344,7 @@ static void ScriptCmd_loadsprite(void)
u16 index;
gBattleAnimScriptPtr++;
- index = SCRIPT_READ_16(gBattleAnimScriptPtr);
+ index = T1_READ_16(gBattleAnimScriptPtr);
LoadCompressedObjectPic(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)]);
LoadCompressedObjectPalette(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(index)]);
gBattleAnimScriptPtr += 2;
@@ -358,7 +358,7 @@ static void ScriptCmd_unloadsprite(void)
u16 index;
gBattleAnimScriptPtr++;
- index = SCRIPT_READ_16(gBattleAnimScriptPtr);
+ index = T1_READ_16(gBattleAnimScriptPtr);
FreeSpriteTilesByTag(gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)].tag);
FreeSpritePaletteByTag(gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)].tag);
gBattleAnimScriptPtr += 2;
@@ -378,15 +378,15 @@ static void ScriptCmd_sprite(void)
s8 r1;
gBattleAnimScriptPtr++;
- r7 = (struct SpriteTemplate *)(SCRIPT_READ_32(gBattleAnimScriptPtr));
+ r7 = (struct SpriteTemplate *)(T2_READ_32(gBattleAnimScriptPtr));
gBattleAnimScriptPtr += 4;
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r4 = T1_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r0 = T1_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
for (i = 0; i < r0; i++)
{
- gBattleAnimArgs[i] = SCRIPT_READ_16(gBattleAnimScriptPtr);
+ gBattleAnimArgs[i] = T1_READ_16(gBattleAnimScriptPtr);
gBattleAnimScriptPtr += 2;
}
if (r4 & 0x80)
@@ -559,16 +559,16 @@ static void ScriptCmd_createtask(void)
s32 i;
gBattleAnimScriptPtr++;
- taskFunc = (TaskFunc)SCRIPT_READ_32(gBattleAnimScriptPtr);
+ taskFunc = (TaskFunc)T2_READ_32(gBattleAnimScriptPtr);
gBattleAnimScriptPtr += 4;
- taskPriority = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ taskPriority = T1_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
- numArgs = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ numArgs = T1_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
for (i = 0; i < numArgs; i++)
{
- gBattleAnimArgs[i] = SCRIPT_READ_16(gBattleAnimScriptPtr);
+ gBattleAnimArgs[i] = T1_READ_16(gBattleAnimScriptPtr);
gBattleAnimScriptPtr += 2;
}
@@ -580,7 +580,7 @@ static void ScriptCmd_createtask(void)
static void ScriptCmd_delay(void)
{
gBattleAnimScriptPtr++;
- gAnimFramesToWait = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ gAnimFramesToWait = T1_READ_8(gBattleAnimScriptPtr);
if (gAnimFramesToWait == 0)
gAnimFramesToWait = -1;
gBattleAnimScriptPtr++;
@@ -654,7 +654,7 @@ static void ScriptCmd_end(void)
if (continuousAnim == FALSE) // may have been used for debug?
{
m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256);
- if (IsContest() == 0)
+ if (NotInBattle() == 0)
{
sub_8079E24();
sub_8043EB4(1);
@@ -666,7 +666,7 @@ static void ScriptCmd_end(void)
static void ScriptCmd_playse(void)
{
gBattleAnimScriptPtr++;
- PlaySE(SCRIPT_READ_16(gBattleAnimScriptPtr));
+ PlaySE(T1_READ_16(gBattleAnimScriptPtr));
gBattleAnimScriptPtr += 2;
}
@@ -680,7 +680,7 @@ static void ScriptCmd_monbg(void)
u8 taskId;
gBattleAnimScriptPtr++;
- r6 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r6 = T1_READ_8(gBattleAnimScriptPtr);
if (r6 == 0)
r6 = 2;
else if (r6 == 1)
@@ -693,7 +693,7 @@ static void ScriptCmd_monbg(void)
{
r0 = GetBankIdentity(r5);
r0 += 0xFF;
- if (r0 <= 1 || IsContest() != 0)
+ if (r0 <= 1 || NotInBattle() != 0)
r7 = 0;
else
r7 = 1;
@@ -723,7 +723,7 @@ static void ScriptCmd_monbg(void)
{
r0 = GetBankIdentity(r5);
r0 += 0xFF;
- if (r0 <= 1 || IsContest() != 0)
+ if (r0 <= 1 || NotInBattle() != 0)
r7 = 0;
else
r7 = 1;
@@ -753,7 +753,7 @@ static void ScriptCmd_monbg(void)
#ifdef NONMATCHING
bool8 IsAnimBankSpriteVisible(u8 a)
{
- if (IsContest())
+ if (NotInBattle())
{
if (a == gBattleAnimBankAttacker)
return TRUE;
@@ -762,7 +762,7 @@ bool8 IsAnimBankSpriteVisible(u8 a)
}
if (!AnimBankSpriteExists(a))
return FALSE;
- if (IsContest())
+ if (NotInBattle())
return TRUE; // this line wont ever be reached.
if (!(EWRAM_17800[a].unk0 & 1))
return TRUE;
@@ -779,7 +779,7 @@ bool8 IsAnimBankSpriteVisible(u8 a)
lsls r0, 24\n\
lsrs r4, r0, 24\n\
adds r5, r4, 0\n\
- bl IsContest\n\
+ bl NotInBattle\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _08075FDC\n\
@@ -796,12 +796,12 @@ _08075FDC:\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _0807602C\n\
- bl IsContest\n\
+ bl NotInBattle\n\
lsls r0, 24\n\
cmp r0, 0\n\
bne _0807601C\n\
lsls r0, r5, 2\n\
- ldr r1, _08076020 @ =0x02017800\n\
+ ldr r1, _08076020 @ =gSharedMem + 0x17800\n\
adds r0, r1\n\
ldrb r1, [r0]\n\
movs r0, 0x1\n\
@@ -825,7 +825,7 @@ _0807601C:\n\
movs r0, 0x1\n\
b _0807602E\n\
.align 2, 0\n\
-_08076020: .4byte 0x02017800\n\
+_08076020: .4byte gSharedMem + 0x17800\n\
_08076024: .4byte gSprites\n\
_08076028: .4byte gObjectBankIDs\n\
_0807602C:\n\
@@ -877,7 +877,7 @@ void sub_8076034(u8 a, u8 b)
spriteId = gObjectBankIDs[a];
gUnknown_030042C0 = -(gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x) + 32;
- if (IsContest() != 0 && sub_80AEB1C(EWRAM_19348) != 0)
+ if (NotInBattle() != 0 && sub_80AEB1C(EWRAM_19348) != 0)
gUnknown_030042C0--;
gUnknown_030041B4 = -(gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) + 32;
gSprites[gObjectBankIDs[a]].invisible = TRUE;
@@ -889,12 +889,12 @@ void sub_8076034(u8 a, u8 b)
addr3 = (u16 *)PLTT + s.unk8 * 16;
DmaCopy32(3, gPlttBufferUnfaded + 0x100 + a * 16, addr3, 32);
- if (IsContest() != 0)
+ if (NotInBattle() != 0)
r2 = 0;
else
r2 = GetBankIdentity(a);
sub_80E4EF8(0, 0, r2, s.unk8, (u32)s.unk0, (((s32)s.unk4 - VRAM) / 2048), REG_BG1CNT_BITFIELD.charBaseBlock);
- if (IsContest() != 0)
+ if (NotInBattle() != 0)
sub_8076380();
}
else
@@ -996,7 +996,7 @@ void sub_8076464(u8 a)
struct UnknownStruct2 s;
sub_8078914(&s);
- if (a == 0 || IsContest() != 0)
+ if (a == 0 || NotInBattle() != 0)
{
u16 *addr2;
@@ -1090,7 +1090,7 @@ static void ScriptCmd_clearmonbg(void)
u8 taskId;
gBattleAnimScriptPtr++;
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r4 = T1_READ_8(gBattleAnimScriptPtr);
if (r4 == 0)
r4 = 2;
else if (r4 == 1)
@@ -1121,7 +1121,7 @@ static void sub_807672C(u8 taskId)
{
var = GetBankIdentity(gTasks[taskId].data[2]);
var += 0xFF;
- if (var <= 1 || IsContest() != 0)
+ if (var <= 1 || NotInBattle() != 0)
r4 = 0;
else
r4 = 1;
@@ -1149,7 +1149,7 @@ static void ScriptCmd_monbg_22(void)
u8 r1;
gBattleAnimScriptPtr++;
- r5 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r5 = T1_READ_8(gBattleAnimScriptPtr);
if (r5 == 0)
r5 = 2;
else if (r5 == 1)
@@ -1162,7 +1162,7 @@ static void ScriptCmd_monbg_22(void)
{
r0 = GetBankIdentity(r4);
r0 += 0xFF;
- if (r0 <= 1 || IsContest() != 0)
+ if (r0 <= 1 || NotInBattle() != 0)
r1 = 0;
else
r1 = 1;
@@ -1174,7 +1174,7 @@ static void ScriptCmd_monbg_22(void)
{
r0 = GetBankIdentity(r4);
r0 += 0xFF;
- if (r0 <= 1 || IsContest() != 0)
+ if (r0 <= 1 || NotInBattle() != 0)
r1 = 0;
else
r1 = 1;
@@ -1191,7 +1191,7 @@ static void ScriptCmd_clearmonbg_23(void)
u8 taskId;
gBattleAnimScriptPtr++;
- r5 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r5 = T1_READ_8(gBattleAnimScriptPtr);
if (r5 == 0)
r5 = 2;
else if (r5 == 1)
@@ -1224,7 +1224,7 @@ static void sub_80769A4(u8 taskId)
r4 = gTasks[taskId].data[2];
r0 = GetBankIdentity(r4);
r0 += 0xFF;
- if (r0 <= 1 || IsContest() != 0)
+ if (r0 <= 1 || NotInBattle() != 0)
r5 = 0;
else
r5 = 1;
@@ -1268,12 +1268,9 @@ static void ScriptCmd_blendoff(void)
static void ScriptCmd_call(void)
{
- u32 addr;
-
gBattleAnimScriptPtr++;
gBattleAnimScriptRetAddr = gBattleAnimScriptPtr + 4;
- addr = SCRIPT_READ_32(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr = (u8 *)addr;
+ gBattleAnimScriptPtr = T2_READ_PTR(gBattleAnimScriptPtr);
}
static void ScriptCmd_return(void)
@@ -1288,36 +1285,31 @@ static void ScriptCmd_setvar(void)
u8 r2;
gBattleAnimScriptPtr++;
- r2 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r2 = T1_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
- r4 = SCRIPT_READ_16(gBattleAnimScriptPtr);
+ r4 = T1_READ_16(gBattleAnimScriptPtr);
gBattleAnimScriptPtr = addr + 4;
gBattleAnimArgs[r2] = r4;
}
static void ScriptCmd_ifelse(void)
{
- u32 addr;
-
gBattleAnimScriptPtr++;
if (gUnknown_0202F7C4 & 1)
gBattleAnimScriptPtr += 4;
- addr = SCRIPT_READ_32(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr = (u8 *)addr;
+ gBattleAnimScriptPtr = T2_READ_PTR(gBattleAnimScriptPtr);
}
static void ScriptCmd_jumpif(void)
{
u8 r1;
- u32 addr;
gBattleAnimScriptPtr++;
- r1 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r1 = T1_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
if (r1 == gUnknown_0202F7C4)
{
- addr = SCRIPT_READ_32(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr = (u8 *)addr;
+ gBattleAnimScriptPtr = T2_READ_PTR(gBattleAnimScriptPtr);
}
else
{
@@ -1327,15 +1319,11 @@ static void ScriptCmd_jumpif(void)
static void ScriptCmd_jump(void)
{
- u32 addr;
-
gBattleAnimScriptPtr++;
- addr = SCRIPT_READ_32(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr = (u8 *)addr;
+ gBattleAnimScriptPtr = T2_READ_PTR(gBattleAnimScriptPtr);
}
-// Uses of this function that rely on a TRUE return are expecting inBattle to not be ticked as defined in contest behavior. As a result, if misused, this function cannot reliably discern between field and contest status and could result in undefined behavior.
-bool8 IsContest(void)
+bool8 NotInBattle(void)
{
if (!gMain.inBattle)
return TRUE;
@@ -1349,7 +1337,7 @@ static void ScriptCmd_fadetobg(void)
u8 taskId;
gBattleAnimScriptPtr++;
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r4 = T1_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
taskId = CreateTask(task_p5_load_battle_screen_elements, 5);
gTasks[taskId].data[0] = r4;
@@ -1369,7 +1357,7 @@ static void ScriptCmd_fadetobg_25(void)
r6 = gBattleAnimScriptPtr[2];
gBattleAnimScriptPtr += 3;
taskId = CreateTask(task_p5_load_battle_screen_elements, 5);
- if (IsContest() != 0)
+ if (NotInBattle() != 0)
gTasks[taskId].data[0] = r6;
else if (GetBankSide(gBattleAnimBankTarget) == 0)
gTasks[taskId].data[0] = r7;
@@ -1416,15 +1404,15 @@ static void task_p5_load_battle_screen_elements(u8 taskId)
static void sub_8076DB8(u16 a)
{
- if (IsContest())
+ if (NotInBattle())
{
void *tilemap = gBattleAnimBackgroundTable[a].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;
+ LZDecompressWram(tilemap, NotInBattle() ? EWRAM_14800 : EWRAM_18000);
+ sub_80763FC(sub_80789BC(), NotInBattle() ? EWRAM_14800 : EWRAM_18000, 0x100, 0);
+ dmaSrc = NotInBattle() ? EWRAM_14800 : EWRAM_18000;
dmaDest = (void *)(VRAM + 0xD000);
DmaCopy32(3, dmaSrc, dmaDest, 0x800);
LZDecompressVram(gBattleAnimBackgroundTable[a].image, (void *)(VRAM + 0x2000));
@@ -1440,7 +1428,7 @@ static void sub_8076DB8(u16 a)
static void dp01t_11_3_message_for_player_only(void)
{
- if (IsContest())
+ if (NotInBattle())
sub_80AB2AC();
else
sub_800D7B8();
@@ -1485,7 +1473,7 @@ static void ScriptCmd_waitbgfadein(void)
static void ScriptCmd_changebg(void)
{
gBattleAnimScriptPtr++;
- sub_8076DB8(SCRIPT_READ_8(gBattleAnimScriptPtr));
+ sub_8076DB8(T1_READ_8(gBattleAnimScriptPtr));
gBattleAnimScriptPtr++;
}
@@ -1493,14 +1481,14 @@ static void ScriptCmd_changebg(void)
/*
s8 sub_8076F98(s8 a)
{
- if (!IsContest() && (EWRAM_17810[gBattleAnimBankAttacker].unk0 & 0x10))
+ if (!NotInBattle() && (EWRAM_17810[gBattleAnimBankAttacker].unk0 & 0x10))
{
a = GetBankSide(gBattleAnimBankAttacker) ? 0xC0 : 0x3F;
}
//_08076FDC
else
{
- if (IsContest())
+ if (NotInBattle())
{
if (gBattleAnimBankAttacker == gBattleAnimBankTarget && gBattleAnimBankAttacker == 2
&& a == 0x3F)
@@ -1536,7 +1524,7 @@ s8 sub_8076F98(s8 a)
push {r4,lr}\n\
lsls r0, 24\n\
lsrs r4, r0, 24\n\
- bl IsContest\n\
+ bl NotInBattle\n\
lsls r0, 24\n\
cmp r0, 0\n\
bne _08076FDC\n\
@@ -1545,7 +1533,7 @@ s8 sub_8076F98(s8 a)
lsls r0, r2, 1\n\
adds r0, r2\n\
lsls r0, 2\n\
- ldr r1, _08076FD8 @ =0x02017810\n\
+ ldr r1, _08076FD8 @ =gSharedMem + 0x17810\n\
adds r0, r1\n\
ldrb r1, [r0]\n\
movs r0, 0x10\n\
@@ -1562,9 +1550,9 @@ s8 sub_8076F98(s8 a)
b _0807706E\n\
.align 2, 0\n\
_08076FD4: .4byte gBattleAnimBankAttacker\n\
-_08076FD8: .4byte 0x02017810\n\
+_08076FD8: .4byte gSharedMem + 0x17810\n\
_08076FDC:\n\
- bl IsContest\n\
+ bl NotInBattle\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _08077004\n\
@@ -1661,7 +1649,7 @@ _08077088:\n\
s8 sub_8077094(s8 a)
{
- if (!IsContest() && (EWRAM_17810[gBattleAnimBankAttacker].unk0 & 0x10))
+ if (!NotInBattle() && (EWRAM_17810[gBattleAnimBankAttacker].unk0 & 0x10))
{
if (GetBankSide(gBattleAnimBankAttacker) != 0)
a = 0x3F;
@@ -1670,7 +1658,7 @@ s8 sub_8077094(s8 a)
}
else
{
- if (GetBankSide(gBattleAnimBankAttacker) != 0 || IsContest() != 0)
+ if (GetBankSide(gBattleAnimBankAttacker) != 0 || NotInBattle() != 0)
a = -a;
}
return a;
@@ -1706,8 +1694,8 @@ static void ScriptCmd_panse_19(void)
s8 r0;
gBattleAnimScriptPtr++;
- r4 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
+ r4 = T1_READ_16(gBattleAnimScriptPtr);
+ r0 = T1_READ_8(gBattleAnimScriptPtr + 2);
PlaySE12WithPanning(r4, sub_8076F98(r0));
gBattleAnimScriptPtr += 3;
}
@@ -1717,7 +1705,7 @@ static void ScriptCmd_setpan(void)
s8 r0;
gBattleAnimScriptPtr++;
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r0 = T1_READ_8(gBattleAnimScriptPtr);
SE12PanpotControl(sub_8076F98(r0));
gBattleAnimScriptPtr++;
}
@@ -1734,11 +1722,11 @@ static void ScriptCmd_panse_1B(void)
u8 taskId;
gBattleAnimScriptPtr++;
- songNum = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr + 3);
- r6 = SCRIPT_READ_8(gBattleAnimScriptPtr + 4);
- r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 5);
+ songNum = T1_READ_16(gBattleAnimScriptPtr);
+ r0 = T1_READ_8(gBattleAnimScriptPtr + 2);
+ r4 = T1_READ_8(gBattleAnimScriptPtr + 3);
+ r6 = T1_READ_8(gBattleAnimScriptPtr + 4);
+ r7 = T1_READ_8(gBattleAnimScriptPtr + 5);
panning = sub_8076F98(r0);
r8 = sub_8076F98(r4);
r4 = sub_807712C(panning, r8, r6);
@@ -1899,11 +1887,11 @@ static void ScriptCmd_panse_26(void)
u8 taskId;
gBattleAnimScriptPtr++;
- r8 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
- r5 = SCRIPT_READ_8(gBattleAnimScriptPtr + 3);
- r6 = SCRIPT_READ_8(gBattleAnimScriptPtr + 4);
- r10 = SCRIPT_READ_8(gBattleAnimScriptPtr + 5);
+ r8 = T1_READ_16(gBattleAnimScriptPtr);
+ r4 = T1_READ_8(gBattleAnimScriptPtr + 2);
+ r5 = T1_READ_8(gBattleAnimScriptPtr + 3);
+ r6 = T1_READ_8(gBattleAnimScriptPtr + 4);
+ r10 = T1_READ_8(gBattleAnimScriptPtr + 5);
taskId = CreateTask(c3_08073CEC, 1);
gTasks[taskId].data[0] = r4;
gTasks[taskId].data[1] = r5;
@@ -1928,11 +1916,11 @@ static void ScriptCmd_panse_27(void)
u8 taskId;
gBattleAnimScriptPtr++;
- r9 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr + 3);
- r8 = SCRIPT_READ_8(gBattleAnimScriptPtr + 4);
- r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 5);
+ r9 = T1_READ_16(gBattleAnimScriptPtr);
+ r0 = T1_READ_8(gBattleAnimScriptPtr + 2);
+ r4 = T1_READ_8(gBattleAnimScriptPtr + 3);
+ r8 = T1_READ_8(gBattleAnimScriptPtr + 4);
+ r7 = T1_READ_8(gBattleAnimScriptPtr + 5);
r6 = sub_8077094(r0);
r5 = sub_8077094(r4);
r4_2 = sub_8077094(r8);
@@ -1957,10 +1945,10 @@ static void ScriptCmd_panse_1C(void)
u8 taskId;
gBattleAnimScriptPtr++;
- r5 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
- r8 = SCRIPT_READ_8(gBattleAnimScriptPtr + 3);
- r9 = SCRIPT_READ_8(gBattleAnimScriptPtr + 4);
+ r5 = T1_READ_16(gBattleAnimScriptPtr);
+ r0 = T1_READ_8(gBattleAnimScriptPtr + 2);
+ r8 = T1_READ_8(gBattleAnimScriptPtr + 3);
+ r9 = T1_READ_8(gBattleAnimScriptPtr + 4);
r4 = sub_8076F98(r0);
taskId = CreateTask(sub_80774FC, 1);
gTasks[taskId].data[0] = r5;
@@ -2007,9 +1995,9 @@ static void ScriptCmd_panse_1D(void)
u8 taskId;
gBattleAnimScriptPtr++;
- r5 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
- r8 = SCRIPT_READ_8(gBattleAnimScriptPtr + 3);
+ r5 = T1_READ_16(gBattleAnimScriptPtr);
+ r0 = T1_READ_8(gBattleAnimScriptPtr + 2);
+ r8 = T1_READ_8(gBattleAnimScriptPtr + 3);
r4 = sub_8076F98(r0);
taskId = CreateTask(sub_80775CC, 1);
gTasks[taskId].data[0] = r5;
@@ -2041,13 +2029,13 @@ static void ScriptCmd_createtask_1F(void)
u8 taskId;
gBattleAnimScriptPtr++;
- func = (TaskFunc)SCRIPT_READ_32(gBattleAnimScriptPtr);
+ func = (TaskFunc)T2_READ_32(gBattleAnimScriptPtr);
gBattleAnimScriptPtr += 4;
- numArgs = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ numArgs = T1_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
for (i = 0; i < numArgs; i++)
{
- gBattleAnimArgs[i] = SCRIPT_READ_16(gBattleAnimScriptPtr);
+ gBattleAnimArgs[i] = T1_READ_16(gBattleAnimScriptPtr);
gBattleAnimScriptPtr += 2;
}
taskId = CreateTask(func, 1);
@@ -2090,11 +2078,11 @@ static void ScriptCmd_jumpvareq(void)
u8 *addr;
gBattleAnimScriptPtr++;
- r2 = SCRIPT_READ_8(gBattleAnimScriptPtr);
- r1 = SCRIPT_READ_16(gBattleAnimScriptPtr + 1);
+ r2 = T1_READ_8(gBattleAnimScriptPtr);
+ r1 = T1_READ_16(gBattleAnimScriptPtr + 1);
if (r1 == gBattleAnimArgs[r2])
{
- addr = (u8 *)SCRIPT_READ_32(gBattleAnimScriptPtr + 3);
+ addr = T2_READ_PTR(gBattleAnimScriptPtr + 3);
gBattleAnimScriptPtr = addr;
}
else
@@ -2108,9 +2096,9 @@ static void ScriptCmd_jumpunkcond(void)
u8 *addr;
gBattleAnimScriptPtr++;
- if (IsContest())
+ if (NotInBattle())
{
- addr = (u8 *)SCRIPT_READ_32(gBattleAnimScriptPtr);
+ addr = T2_READ_PTR(gBattleAnimScriptPtr);
gBattleAnimScriptPtr = addr;
}
else
@@ -2125,14 +2113,14 @@ static void ScriptCmd_monbgprio_28(void)
u8 r0;
u8 r4;
- r2 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
+ r2 = T1_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
if (r2 != 0)
r0 = gBattleAnimBankTarget;
else
r0 = gBattleAnimBankAttacker;
r4 = GetBankIdentity(r0);
- if (!IsContest() && (r4 == 0 || r4 == 3))
+ if (!NotInBattle() && (r4 == 0 || r4 == 3))
{
REG_BG1CNT_BITFIELD.priority = 1;
REG_BG2CNT_BITFIELD.priority = 2;
@@ -2142,7 +2130,7 @@ static void ScriptCmd_monbgprio_28(void)
static void ScriptCmd_monbgprio_29(void)
{
gBattleAnimScriptPtr++;
- if (!IsContest())
+ if (!NotInBattle())
{
REG_BG1CNT_BITFIELD.priority = 1;
REG_BG2CNT_BITFIELD.priority = 2;
@@ -2155,7 +2143,7 @@ static void ScriptCmd_monbgprio_2A(void)
u8 r4;
u8 r0;
- r6 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
+ r6 = T1_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
if (GetBankSide(gBattleAnimBankAttacker) != GetBankSide(gBattleAnimBankTarget))
{
@@ -2164,7 +2152,7 @@ static void ScriptCmd_monbgprio_2A(void)
else
r0 = gBattleAnimBankAttacker;
r4 = GetBankIdentity(r0);
- if (!IsContest() && (r4 == 0 || r4 == 3))
+ if (!NotInBattle() && (r4 == 0 || r4 == 3))
{
REG_BG1CNT_BITFIELD.priority = 1;
REG_BG2CNT_BITFIELD.priority = 2;
@@ -2177,7 +2165,7 @@ static void ScriptCmd_invisible(void)
u8 r0;
u8 spriteId;
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
+ r0 = T1_READ_8(gBattleAnimScriptPtr + 1);
spriteId = GetAnimBankSpriteId(r0);
if (spriteId != 0xFF)
{
@@ -2191,7 +2179,7 @@ static void ScriptCmd_visible(void)
u8 r0;
u8 spriteId;
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
+ r0 = T1_READ_8(gBattleAnimScriptPtr + 1);
spriteId = GetAnimBankSpriteId(r0);
if (spriteId != 0xFF)
{
@@ -2206,9 +2194,9 @@ static void ScriptCmd_doublebattle_2D(void)
u8 r4;
u8 spriteId;
- r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
+ r7 = T1_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
- if (!IsContest() && IsDoubleBattle()
+ if (!NotInBattle() && IsDoubleBattle()
&& GetBankSide(gBattleAnimBankAttacker) == GetBankSide(gBattleAnimBankTarget))
{
if (r7 == 0)
@@ -2240,9 +2228,9 @@ static void ScriptCmd_doublebattle_2E(void)
u8 r4;
u8 spriteId;
- r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
+ r7 = T1_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
- if (!IsContest() && IsDoubleBattle()
+ if (!NotInBattle() && IsDoubleBattle()
&& GetBankSide(gBattleAnimBankAttacker) == GetBankSide(gBattleAnimBankTarget))
{
if (r7 == 0)
diff --git a/src/battle/battle_anim_807B69C.c b/src/battle/battle_anim_807B69C.c
index bf3eb7ef1..6c35a85c9 100644
--- a/src/battle/battle_anim_807B69C.c
+++ b/src/battle/battle_anim_807B69C.c
@@ -7,6 +7,7 @@
#include "sprite.h"
#include "task.h"
#include "trig.h"
+#include "ewram.h"
extern u8 gBattleAnimBankAttacker;
extern u8 gBattleAnimBankTarget;
@@ -85,11 +86,11 @@ u8 unref_sub_807B69C(u8 a, u8 b)
for (i = 0; i < 10; i++)
{
spriteId2 = CreateSprite(&gSpriteTemplate_83931F8, gSprites[spriteId1].pos1.x, gSprites[spriteId1].pos1.y + 32, 0);
- gSprites[spriteId2].data0 = i * 51;
- gSprites[spriteId2].data1 = -256;
+ gSprites[spriteId2].data[0] = i * 51;
+ gSprites[spriteId2].data[1] = -256;
gSprites[spriteId2].invisible = TRUE;
if (i > 4)
- gSprites[spriteId2].data6 = 21;
+ gSprites[spriteId2].data[6] = 21;
}
}
else
@@ -98,14 +99,14 @@ u8 unref_sub_807B69C(u8 a, u8 b)
for (i = 0; i < 10; i++)
{
spriteId2 = CreateSprite(&gSpriteTemplate_83931F8, gSprites[spriteId1].pos1.x, gSprites[spriteId1].pos1.y - 32, 0);
- gSprites[spriteId2].data0 = i * 51;
- gSprites[spriteId2].data1 = 256;
+ gSprites[spriteId2].data[0] = i * 51;
+ gSprites[spriteId2].data[1] = 256;
gSprites[spriteId2].invisible = TRUE;
if (i > 4)
- gSprites[spriteId2].data6 = 21;
+ gSprites[spriteId2].data[6] = 21;
}
}
- gSprites[spriteId2].data7 = 1;
+ gSprites[spriteId2].data[7] = 1;
return taskId;
}
@@ -144,7 +145,7 @@ static void sub_807B7E0(u8 taskId)
static void sub_807B870(struct Sprite *sprite)
{
- if (sprite->data6 == 0)
+ if (sprite->data[6] == 0)
{
sprite->invisible = FALSE;
sprite->callback = sub_807B8A4;
@@ -152,25 +153,25 @@ static void sub_807B870(struct Sprite *sprite)
}
else
{
- sprite->data6 --;
+ sprite->data[6] --;
}
}
static void sub_807B8A4(struct Sprite *sprite)
{
- sprite->pos2.x = Cos(sprite->data0, 32);
- sprite->pos2.y = Sin(sprite->data0, 8);
- if (sprite->data0 < 128)
+ sprite->pos2.x = Cos(sprite->data[0], 32);
+ sprite->pos2.y = Sin(sprite->data[0], 8);
+ if (sprite->data[0] < 128)
sprite->subpriority = 29;
else
sprite->subpriority = 31;
- sprite->data0 = (sprite->data0 + 8) & 0xFF;
- sprite->data5 += sprite->data1;
- sprite->pos2.y += sprite->data5 >> 8;
- sprite->data2++;
- if (sprite->data2 == 52)
+ sprite->data[0] = (sprite->data[0] + 8) & 0xFF;
+ sprite->data[5] += sprite->data[1];
+ sprite->pos2.y += sprite->data[5] >> 8;
+ sprite->data[2]++;
+ if (sprite->data[2] == 52)
{
- if (sprite->data7 != 0)
+ if (sprite->data[7] != 0)
DestroySpriteAndFreeResources(sprite);
else
DestroySprite(sprite);
@@ -183,7 +184,7 @@ void sub_807B920(u8 taskId)
s16 y = sub_8077ABC(gBattleAnimBankTarget, 3) - 36;
u8 spriteId;
- if (IsContest())
+ if (NotInBattle())
x -= 6;
REG_BLDCNT = 0x3F40;
REG_BLDALPHA = 0x1000;
diff --git a/src/battle/battle_anim_80A7E7C.c b/src/battle/battle_anim_80A7E7C.c
index e0c79dc8e..a1d916f0f 100644
--- a/src/battle/battle_anim_80A7E7C.c
+++ b/src/battle/battle_anim_80A7E7C.c
@@ -340,26 +340,26 @@ void sub_80A8530(struct Sprite *sprite)
sprite->invisible = TRUE;
if (GetBankSide(gBattleAnimBankAttacker))
{
- sprite->data1 = -gBattleAnimArgs[1];
+ sprite->data[1] = -gBattleAnimArgs[1];
}
else
{
- sprite->data1 = gBattleAnimArgs[1];
+ sprite->data[1] = gBattleAnimArgs[1];
}
- sprite->data0 = gBattleAnimArgs[0];
- sprite->data2 = 0;
- sprite->data3 = gObjectBankIDs[gBattleAnimBankAttacker];
- sprite->data4 = gBattleAnimArgs[0];
- StoreSpriteCallbackInData6(sprite, sub_80A85A4);
+ sprite->data[0] = gBattleAnimArgs[0];
+ sprite->data[2] = 0;
+ sprite->data[3] = gObjectBankIDs[gBattleAnimBankAttacker];
+ sprite->data[4] = gBattleAnimArgs[0];
+ StoreSpriteCallbackInData(sprite, sub_80A85A4);
sprite->callback = sub_8078458;
}
static void sub_80A85A4(struct Sprite *sprite)
{
- sprite->data0 = sprite->data4;
- sprite->data1 = -sprite->data1;
+ sprite->data[0] = sprite->data[4];
+ sprite->data[1] = -sprite->data[1];
sprite->callback = sub_8078458;
- StoreSpriteCallbackInData6(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
}
void sub_80A85C8(struct Sprite *sprite)
@@ -367,21 +367,21 @@ void sub_80A85C8(struct Sprite *sprite)
u8 spriteId;
sprite->invisible = TRUE;
spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]);
- sprite->data0 = gBattleAnimArgs[0];
- sprite->data1 = 0;
- sprite->data2 = gBattleAnimArgs[1];
- sprite->data3 = spriteId;
- sprite->data4 = gBattleAnimArgs[0];
- StoreSpriteCallbackInData6(sprite, sub_80A8614);
+ sprite->data[0] = gBattleAnimArgs[0];
+ sprite->data[1] = 0;
+ sprite->data[2] = gBattleAnimArgs[1];
+ sprite->data[3] = spriteId;
+ sprite->data[4] = gBattleAnimArgs[0];
+ StoreSpriteCallbackInData(sprite, sub_80A8614);
sprite->callback = sub_8078458;
}
void sub_80A8614(struct Sprite *sprite)
{
- sprite->data0 = sprite->data4;
- sprite->data2 = -sprite->data2;
+ sprite->data[0] = sprite->data[4];
+ sprite->data[2] = -sprite->data[2];
sprite->callback = sub_8078458;
- StoreSpriteCallbackInData6(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
}
void sub_80A8638(struct Sprite *sprite)
@@ -396,28 +396,28 @@ void sub_80A8638(struct Sprite *sprite)
{
spriteId = gObjectBankIDs[gBattleAnimBankTarget];
}
- sprite->data0 = gBattleAnimArgs[2];
- sprite->data1 = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x;
- sprite->data2 = gSprites[spriteId].pos1.x;
- sprite->data3 = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y;
- sprite->data4 = gSprites[spriteId].pos1.y;
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[1] = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x;
+ sprite->data[2] = gSprites[spriteId].pos1.x;
+ sprite->data[3] = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y;
+ sprite->data[4] = gSprites[spriteId].pos1.y;
something = 0;
sub_8078A5C(sprite);
- sprite->data3 = something;
- sprite->data4 = something;
- sprite->data5 = gSprites[spriteId].pos2.x;
- sprite->data6 = gSprites[spriteId].pos2.y;
+ sprite->data[3] = something;
+ sprite->data[4] = something;
+ sprite->data[5] = gSprites[spriteId].pos2.x;
+ sprite->data[6] = gSprites[spriteId].pos2.y;
sprite->invisible = TRUE;
if (gBattleAnimArgs[1] == 1)
{
- sprite->data2 = something;
+ sprite->data[2] = something;
}
else if (gBattleAnimArgs[1] == 2)
{
- sprite->data1 = something;
+ sprite->data[1] = something;
}
- sprite->data7 = gBattleAnimArgs[1];
- sprite->data7 |= spriteId << 8;
+ sprite->data[7] = gBattleAnimArgs[1];
+ sprite->data[7] |= spriteId << 8;
sprite->callback = sub_80A86F4;
}
@@ -426,10 +426,10 @@ static void sub_80A86F4(struct Sprite *sprite)
s8 spriteId;
u8 lo;
struct Sprite *sprite2;
- lo = sprite->data7 & 0xff;
- spriteId = sprite->data7 >> 8;
+ lo = sprite->data[7] & 0xff;
+ spriteId = sprite->data[7] >> 8;
sprite2 = &gSprites[spriteId];
- if (sprite->data0 == 0)
+ if (sprite->data[0] == 0)
{
if (lo < 2)
{
@@ -443,11 +443,11 @@ static void sub_80A86F4(struct Sprite *sprite)
}
else
{
- sprite->data0--;
- sprite->data3 += sprite->data1;
- sprite->data4 += sprite->data2;
- sprite2->pos2.x = (s8)(sprite->data3 >> 8) + sprite->data5;
- sprite2->pos2.y = (s8)(sprite->data4 >> 8) + sprite->data6;
+ sprite->data[0]--;
+ sprite->data[3] += sprite->data[1];
+ sprite->data[4] += sprite->data[2];
+ sprite2->pos2.x = (s8)(sprite->data[3] >> 8) + sprite->data[5];
+ sprite2->pos2.y = (s8)(sprite->data[4] >> 8) + sprite->data[6];
}
}
@@ -472,17 +472,17 @@ void sub_80A8764(struct Sprite *sprite)
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
}
- sprite->data0 = gBattleAnimArgs[4];
- sprite->data1 = gSprites[spriteId].pos1.x;
- sprite->data2 = gSprites[spriteId].pos1.x + gBattleAnimArgs[1];
- sprite->data3 = gSprites[spriteId].pos1.y;
- sprite->data4 = gSprites[spriteId].pos1.y + gBattleAnimArgs[2];
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[1] = gSprites[spriteId].pos1.x;
+ sprite->data[2] = gSprites[spriteId].pos1.x + gBattleAnimArgs[1];
+ sprite->data[3] = gSprites[spriteId].pos1.y;
+ sprite->data[4] = gSprites[spriteId].pos1.y + gBattleAnimArgs[2];
sub_8078A5C(sprite);
- sprite->data3 = 0;
- sprite->data4 = 0;
- sprite->data5 = spriteId;
+ sprite->data[3] = 0;
+ sprite->data[4] = 0;
+ sprite->data[5] = spriteId;
sprite->invisible = TRUE;
- StoreSpriteCallbackInData6(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
sprite->callback = sub_80784A8;
}
@@ -508,23 +508,23 @@ void sub_80A8818(struct Sprite *sprite)
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
}
- sprite->data0 = gBattleAnimArgs[4];
- sprite->data1 = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x;
- sprite->data2 = sprite->data1 + gBattleAnimArgs[1];
- sprite->data3 = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y;
- sprite->data4 = sprite->data3 + gBattleAnimArgs[2];
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[1] = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x;
+ sprite->data[2] = sprite->data[1] + gBattleAnimArgs[1];
+ sprite->data[3] = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y;
+ sprite->data[4] = sprite->data[3] + gBattleAnimArgs[2];
sub_8078A5C(sprite);
- sprite->data3 = gSprites[spriteId].pos2.x << 8;
- sprite->data4 = gSprites[spriteId].pos2.y << 8;
- sprite->data5 = spriteId;
- sprite->data6 = gBattleAnimArgs[5];
+ sprite->data[3] = gSprites[spriteId].pos2.x << 8;
+ sprite->data[4] = gSprites[spriteId].pos2.y << 8;
+ sprite->data[5] = spriteId;
+ sprite->data[6] = gBattleAnimArgs[5];
if (!gBattleAnimArgs[5])
{
- StoreSpriteCallbackInData6(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
}
else
{
- StoreSpriteCallbackInData6(sprite, sub_80A88F0);
+ StoreSpriteCallbackInData(sprite, sub_80A88F0);
}
sprite->callback = sub_80784A8;
}
@@ -532,8 +532,8 @@ void sub_80A8818(struct Sprite *sprite)
static void sub_80A88F0(struct Sprite *sprite)
{
- gSprites[sprite->data5].pos2.x = 0;
- gSprites[sprite->data5].pos2.y = 0;
+ gSprites[sprite->data[5]].pos2.x = 0;
+ gSprites[sprite->data[5]].pos2.y = 0;
move_anim_8072740(sprite);
}
@@ -769,7 +769,7 @@ void sub_80A8E04(u8 taskId)
TASK.data[4] = gBattleAnimArgs[1];
TASK.data[5] = spriteId;
TASK.data[6] = gBattleAnimArgs[3];
- if (IsContest())
+ if (NotInBattle())
{
TASK.data[7] = 1;
}
@@ -786,7 +786,7 @@ void sub_80A8E04(u8 taskId)
}
if (TASK.data[7])
{
- if (!IsContest())
+ if (!NotInBattle())
{
TASK.data[3] *= -1;
TASK.data[4] *= -1;
diff --git a/src/battle/battle_controller_linkopponent.c b/src/battle/battle_controller_linkopponent.c
index 0b6c3b6a1..3259fc7ee 100644
--- a/src/battle/battle_controller_linkopponent.c
+++ b/src/battle/battle_controller_linkopponent.c
@@ -8,13 +8,14 @@
#include "palette.h"
#include "rom_8077ABC.h"
#include "rom3.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
#include "task.h"
#include "text.h"
#include "util.h"
+#include "ewram.h"
struct UnknownStruct3
{
@@ -71,7 +72,7 @@ extern void sub_8031A6C(u16, u8);
extern void sub_80313A0(struct Sprite *);
extern void sub_803757C(void);
extern void oamt_add_pos2_onto_pos1();
-extern void StoreSpriteCallbackInData6();
+extern void StoreSpriteCallbackInData();
extern void sub_8078B34(struct Sprite *);
extern void sub_80375B4(void);
extern void sub_8010384(struct Sprite *);
@@ -274,7 +275,7 @@ void sub_80375B4(void)
if (gSprites[gObjectBankIDs[gActiveBank]].callback == SpriteCallbackDummy)
{
sub_8031B74(gSprites[gObjectBankIDs[gActiveBank]].oam.affineParam);
- gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum = gSprites[gObjectBankIDs[gActiveBank]].data5;
+ gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum = gSprites[gObjectBankIDs[gActiveBank]].data[5];
FreeSpriteOamMatrix(&gSprites[gObjectBankIDs[gActiveBank]]);
DestroySprite(&gSprites[gObjectBankIDs[gActiveBank]]);
LinkOpponentBufferExecCompleted();
@@ -442,18 +443,18 @@ void dp01t_0F_4_move_anim(void)
{
u8 spriteId = gObjectBankIDs[gActiveBank];
- if (gSprites[spriteId].data1 == 32)
+ if (gSprites[spriteId].data[1] == 32)
{
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
gSprites[spriteId].invisible = FALSE;
gDoingBattleAnim = 0;
LinkOpponentBufferExecCompleted();
}
else
{
- if (((u16)gSprites[spriteId].data1 % 4) == 0)
+ if (((u16)gSprites[spriteId].data[1] % 4) == 0)
gSprites[spriteId].invisible ^= 1;
- gSprites[spriteId].data1++;
+ gSprites[spriteId].data[1]++;
}
}
@@ -618,7 +619,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon__(u8 a, u8 *buffer)
battlePokemon.hpIV = GetMonData(&gEnemyParty[a], MON_DATA_HP_IV);
battlePokemon.attackIV = GetMonData(&gEnemyParty[a], MON_DATA_ATK_IV);
battlePokemon.defenseIV = GetMonData(&gEnemyParty[a], MON_DATA_DEF_IV);
- battlePokemon.speedIV = GetMonData(&gEnemyParty[a], MON_DATA_SPD_IV);
+ battlePokemon.speedIV = GetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV);
battlePokemon.spAttackIV = GetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV);
battlePokemon.spDefenseIV = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV);
battlePokemon.personality = GetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY);
@@ -628,7 +629,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon__(u8 a, u8 *buffer)
battlePokemon.maxHP = GetMonData(&gEnemyParty[a], MON_DATA_MAX_HP);
battlePokemon.attack = GetMonData(&gEnemyParty[a], MON_DATA_ATK);
battlePokemon.defense = GetMonData(&gEnemyParty[a], MON_DATA_DEF);
- battlePokemon.speed = GetMonData(&gEnemyParty[a], MON_DATA_SPD);
+ battlePokemon.speed = GetMonData(&gEnemyParty[a], MON_DATA_SPEED);
battlePokemon.spAttack = GetMonData(&gEnemyParty[a], MON_DATA_SPATK);
battlePokemon.spDefense = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF);
battlePokemon.isEgg = GetMonData(&gEnemyParty[a], MON_DATA_IS_EGG);
@@ -637,9 +638,8 @@ u32 dp01_getattr_by_ch1_for_player_pokemon__(u8 a, u8 *buffer)
GetMonData(&gEnemyParty[a], MON_DATA_NICKNAME, nickname);
StringCopy10(battlePokemon.nickname, nickname);
GetMonData(&gEnemyParty[a], MON_DATA_OT_NAME, battlePokemon.otName);
- src = (u8 *)&battlePokemon;
- for (size = 0; size < sizeof(battlePokemon); size++)
- buffer[size] = src[size];
+
+ MEMCPY_ALT(&battlePokemon, buffer, sizeof(battlePokemon), size, src);
break;
case 1:
data16 = GetMonData(&gEnemyParty[a], MON_DATA_SPECIES);
@@ -660,9 +660,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon__(u8 a, u8 *buffer)
moveData.pp[size] = GetMonData(&gEnemyParty[a], MON_DATA_PP1 + size);
}
moveData.ppBonuses = GetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES);
- src = (u8 *)&moveData;
- for (size = 0; size < sizeof(moveData); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&moveData, buffer, sizeof(moveData), size, src);
break;
case 4:
case 5:
@@ -713,7 +711,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon__(u8 a, u8 *buffer)
size = 1;
break;
case 22:
- buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPD_EV);
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPEED_EV);
size = 1;
break;
case 23:
@@ -752,7 +750,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon__(u8 a, u8 *buffer)
buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_HP_IV);
buffer[1] = GetMonData(&gEnemyParty[a], MON_DATA_ATK_IV);
buffer[2] = GetMonData(&gEnemyParty[a], MON_DATA_DEF_IV);
- buffer[3] = GetMonData(&gEnemyParty[a], MON_DATA_SPD_IV);
+ buffer[3] = GetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV);
buffer[4] = GetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV);
buffer[5] = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV);
size = 6;
@@ -770,7 +768,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon__(u8 a, u8 *buffer)
size = 1;
break;
case 35:
- buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPD_IV);
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV);
size = 1;
break;
case 36:
@@ -832,7 +830,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon__(u8 a, u8 *buffer)
size = 2;
break;
case 46:
- data16 = GetMonData(&gEnemyParty[a], MON_DATA_SPD);
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_SPEED);
buffer[0] = data16;
buffer[1] = data16 >> 8;
size = 2;
@@ -936,38 +934,38 @@ void sub_8038900(u8 a)
{
u8 iv;
- SetMonData(&gEnemyParty[a], MON_DATA_SPECIES, (u8 *)&battlePokemon->species);
- SetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM, (u8 *)&battlePokemon->item);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPECIES, &battlePokemon->species);
+ SetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM, &battlePokemon->item);
for (i = 0; i < 4; i++)
{
- SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, (u8 *)&battlePokemon->moves[i]);
- SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, (u8 *)&battlePokemon->pp[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, &battlePokemon->moves[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, &battlePokemon->pp[i]);
}
- SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, (u8 *)&battlePokemon->ppBonuses);
- SetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP, (u8 *)&battlePokemon->friendship);
- SetMonData(&gEnemyParty[a], MON_DATA_EXP, (u8 *)&battlePokemon->experience);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, &battlePokemon->ppBonuses);
+ SetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP, &battlePokemon->friendship);
+ SetMonData(&gEnemyParty[a], MON_DATA_EXP, &battlePokemon->experience);
iv = battlePokemon->hpIV;
- SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &iv);
iv = battlePokemon->attackIV;
- SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &iv);
iv = battlePokemon->defenseIV;
- SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &iv);
iv = battlePokemon->speedIV;
- SetMonData(&gEnemyParty[a], MON_DATA_SPD_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, &iv);
iv = battlePokemon->spAttackIV;
- SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &iv);
iv = battlePokemon->spDefenseIV;
- SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, (u8 *)&iv);
- SetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY, (u8 *)&battlePokemon->personality);
- SetMonData(&gEnemyParty[a], MON_DATA_STATUS, (u8 *)&battlePokemon->status1);
- SetMonData(&gEnemyParty[a], MON_DATA_LEVEL, (u8 *)&battlePokemon->level);
- SetMonData(&gEnemyParty[a], MON_DATA_HP, (u8 *)&battlePokemon->hp);
- SetMonData(&gEnemyParty[a], MON_DATA_MAX_HP, (u8 *)&battlePokemon->maxHP);
- SetMonData(&gEnemyParty[a], MON_DATA_ATK, (u8 *)&battlePokemon->attack);
- SetMonData(&gEnemyParty[a], MON_DATA_DEF, (u8 *)&battlePokemon->defense);
- SetMonData(&gEnemyParty[a], MON_DATA_SPD, (u8 *)&battlePokemon->speed);
- SetMonData(&gEnemyParty[a], MON_DATA_SPATK, (u8 *)&battlePokemon->spAttack);
- SetMonData(&gEnemyParty[a], MON_DATA_SPDEF, (u8 *)&battlePokemon->spDefense);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY, &battlePokemon->personality);
+ SetMonData(&gEnemyParty[a], MON_DATA_STATUS, &battlePokemon->status1);
+ SetMonData(&gEnemyParty[a], MON_DATA_LEVEL, &battlePokemon->level);
+ SetMonData(&gEnemyParty[a], MON_DATA_HP, &battlePokemon->hp);
+ SetMonData(&gEnemyParty[a], MON_DATA_MAX_HP, &battlePokemon->maxHP);
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK, &battlePokemon->attack);
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF, &battlePokemon->defense);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPEED, &battlePokemon->speed);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK, &battlePokemon->spAttack);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF, &battlePokemon->spDefense);
}
break;
case 1:
@@ -979,8 +977,8 @@ void sub_8038900(u8 a)
case 3:
for (i = 0; i < 4; i++)
{
- SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, (u8 *)&moveData->moves[i]);
- SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, (u8 *)&moveData->pp[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, &moveData->moves[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, &moveData->pp[i]);
}
SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, &moveData->ppBonuses);
break;
@@ -1019,7 +1017,7 @@ void sub_8038900(u8 a)
SetMonData(&gEnemyParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]);
break;
case 22:
- SetMonData(&gEnemyParty[a], MON_DATA_SPD_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]);
break;
case 23:
SetMonData(&gEnemyParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]);
@@ -1049,7 +1047,7 @@ void sub_8038900(u8 a)
SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]);
SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gEnemyParty[a], MON_DATA_SPD_IV, &gBattleBufferA[gActiveBank][6]);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]);
SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]);
SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]);
break;
@@ -1063,7 +1061,7 @@ void sub_8038900(u8 a)
SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]);
break;
case 35:
- SetMonData(&gEnemyParty[a], MON_DATA_SPD_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]);
break;
case 36:
SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]);
@@ -1096,7 +1094,7 @@ void sub_8038900(u8 a)
SetMonData(&gEnemyParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]);
break;
case 46:
- SetMonData(&gEnemyParty[a], MON_DATA_SPD, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]);
break;
case 47:
SetMonData(&gEnemyParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]);
@@ -1145,9 +1143,9 @@ void LinkOpponentHandlecmd3(void)
u8 *dst;
u8 i;
- dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ MEMSET_ALT(&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1],
+ gBattleBufferA[gActiveBank][3 + i], gBattleBufferA[gActiveBank][2], i, dst);
+
LinkOpponentBufferExecCompleted();
}
@@ -1163,7 +1161,7 @@ void LinkOpponentHandleLoadPokeSprite(void)
sub_8077F68(gActiveBank),
sub_8079E90(gActiveBank));
gSprites[gObjectBankIDs[gActiveBank]].pos2.x = -240;
- gSprites[gObjectBankIDs[gActiveBank]].data0 = gActiveBank;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = gActiveBank;
gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = gActiveBank;
StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], gBattleMonForms[gActiveBank]);
sub_8032984(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES));
@@ -1192,14 +1190,14 @@ void sub_8039430(u8 a, u8 b)
sub_8077ABC(a, 2),
sub_8077F68(a),
sub_8079E90(a));
- gSprites[gUnknown_0300434C[a]].data1 = gObjectBankIDs[a];
- gSprites[gObjectBankIDs[a]].data0 = a;
- gSprites[gObjectBankIDs[a]].data2 = species;
+ gSprites[gUnknown_0300434C[a]].data[1] = gObjectBankIDs[a];
+ gSprites[gObjectBankIDs[a]].data[0] = a;
+ gSprites[gObjectBankIDs[a]].data[2] = species;
gSprites[gObjectBankIDs[a]].oam.paletteNum = a;
StartSpriteAnim(&gSprites[gObjectBankIDs[a]], gBattleMonForms[a]);
gSprites[gObjectBankIDs[a]].invisible = TRUE;
gSprites[gObjectBankIDs[a]].callback = SpriteCallbackDummy;
- gSprites[gUnknown_0300434C[a]].data0 = sub_8046400(0, 0xFE);
+ gSprites[gUnknown_0300434C[a]].data[0] = sub_8046400(0, 0xFE);
}
void LinkOpponentHandleReturnPokeToBall(void)
@@ -1264,9 +1262,9 @@ void LinkOpponentHandleTrainerThrow(void)
176 + xOffset, 40 + 4 * (8 - gTrainerFrontPicCoords[gender].coords),
sub_8079E90(gActiveBank));
gSprites[gObjectBankIDs[gActiveBank]].pos2.x = -240;
- gSprites[gObjectBankIDs[gActiveBank]].data0 = 2;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = 2;
gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[gender].tag);
- gSprites[gObjectBankIDs[gActiveBank]].data5 = gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum;
+ gSprites[gObjectBankIDs[gActiveBank]].data[5] = gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum;
gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[gender].tag);
gSprites[gObjectBankIDs[gActiveBank]].oam.affineParam = gender;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80313A0;
@@ -1281,11 +1279,11 @@ void LinkOpponentHandleTrainerSlide(void)
void LinkOpponentHandleTrainerSlideBack(void)
{
oamt_add_pos2_onto_pos1(&gSprites[gObjectBankIDs[gActiveBank]]);
- gSprites[gObjectBankIDs[gActiveBank]].data0 = 35;
- gSprites[gObjectBankIDs[gActiveBank]].data2 = 280;
- gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = 35;
+ gSprites[gObjectBankIDs[gActiveBank]].data[2] = 280;
+ gSprites[gObjectBankIDs[gActiveBank]].data[4] = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
+ StoreSpriteCallbackInData(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
gBattleBankFunc[gActiveBank] = sub_80375B4;
}
@@ -1583,7 +1581,7 @@ void LinkOpponentHandleHitAnimation(void)
else
{
gDoingBattleAnim = TRUE;
- gSprites[gObjectBankIDs[gActiveBank]].data1 = 0;
+ gSprites[gObjectBankIDs[gActiveBank]].data[1] = 0;
sub_8047858(gActiveBank);
gBattleBankFunc[gActiveBank] = dp01t_0F_4_move_anim;
}
@@ -1632,11 +1630,11 @@ void LinkOpponentHandleTrainerBallThrow(void)
u8 taskId;
oamt_add_pos2_onto_pos1(&gSprites[gObjectBankIDs[gActiveBank]]);
- gSprites[gObjectBankIDs[gActiveBank]].data0 = 35;
- gSprites[gObjectBankIDs[gActiveBank]].data2 = 280;
- gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = 35;
+ gSprites[gObjectBankIDs[gActiveBank]].data[2] = 280;
+ gSprites[gObjectBankIDs[gActiveBank]].data[4] = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], sub_803A3A8);
+ StoreSpriteCallbackInData(&gSprites[gObjectBankIDs[gActiveBank]], sub_803A3A8);
taskId = CreateTask(sub_803A2C4, 5);
gTasks[taskId].data[0] = gActiveBank;
if (ewram17810[gActiveBank].unk0_0)
@@ -1673,7 +1671,7 @@ void sub_803A2C4(u8 taskId)
void sub_803A3A8(struct Sprite *sprite)
{
sub_8031B74(sprite->oam.affineParam);
- sprite->oam.tileNum = sprite->data5;
+ sprite->oam.tileNum = sprite->data[5];
FreeSpriteOamMatrix(sprite);
DestroySprite(sprite);
}
diff --git a/src/battle/battle_controller_linkpartner.c b/src/battle/battle_controller_linkpartner.c
index 3e34b2e25..fc3fde661 100644
--- a/src/battle/battle_controller_linkpartner.c
+++ b/src/battle/battle_controller_linkpartner.c
@@ -13,12 +13,13 @@
#include "rom3.h"
#include "rom_8077ABC.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sprite.h"
#include "string_util.h"
#include "task.h"
#include "text.h"
#include "util.h"
+#include "ewram.h"
struct UnknownStruct1
{
@@ -82,7 +83,7 @@ extern void sub_80324BC();
extern u8 sub_8031720();
extern u8 mplay_80342A4();
extern void oamt_add_pos2_onto_pos1();
-extern void StoreSpriteCallbackInData6();
+extern void StoreSpriteCallbackInData();
extern void sub_8078B34(struct Sprite *);
extern void sub_80105EC(struct Sprite *);
extern s32 sub_803FC34(u16);
@@ -399,20 +400,20 @@ void sub_811DFA0(void)
void bx_blink_t3(void)
{
u8 spriteId = gObjectBankIDs[gActiveBank];
- if (gSprites[spriteId].data1 == 32)
+ if (gSprites[spriteId].data[1] == 32)
{
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
gSprites[spriteId].invisible = FALSE;
gDoingBattleAnim = 0;
LinkPartnerBufferExecCompleted();
}
else
{
- if ((gSprites[spriteId].data1 % 4) == 0)
+ if ((gSprites[spriteId].data[1] % 4) == 0)
{
gSprites[spriteId].invisible ^= 1;
}
- gSprites[spriteId].data1++;
+ gSprites[spriteId].data[1]++;
}
}
@@ -574,7 +575,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer)
battlePokemon.hpIV = GetMonData(&gPlayerParty[a], MON_DATA_HP_IV);
battlePokemon.attackIV = GetMonData(&gPlayerParty[a], MON_DATA_ATK_IV);
battlePokemon.defenseIV = GetMonData(&gPlayerParty[a], MON_DATA_DEF_IV);
- battlePokemon.speedIV = GetMonData(&gPlayerParty[a], MON_DATA_SPD_IV);
+ battlePokemon.speedIV = GetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV);
battlePokemon.spAttackIV = GetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV);
battlePokemon.spDefenseIV = GetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV);
battlePokemon.personality = GetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY);
@@ -584,7 +585,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer)
battlePokemon.maxHP = GetMonData(&gPlayerParty[a], MON_DATA_MAX_HP);
battlePokemon.attack = GetMonData(&gPlayerParty[a], MON_DATA_ATK);
battlePokemon.defense = GetMonData(&gPlayerParty[a], MON_DATA_DEF);
- battlePokemon.speed = GetMonData(&gPlayerParty[a], MON_DATA_SPD);
+ battlePokemon.speed = GetMonData(&gPlayerParty[a], MON_DATA_SPEED);
battlePokemon.spAttack = GetMonData(&gPlayerParty[a], MON_DATA_SPATK);
battlePokemon.spDefense = GetMonData(&gPlayerParty[a], MON_DATA_SPDEF);
battlePokemon.isEgg = GetMonData(&gPlayerParty[a], MON_DATA_IS_EGG);
@@ -593,9 +594,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer)
GetMonData(&gPlayerParty[a], MON_DATA_NICKNAME, nickname);
StringCopy10(battlePokemon.nickname, nickname);
GetMonData(&gPlayerParty[a], MON_DATA_OT_NAME, battlePokemon.otName);
- src = (u8 *)&battlePokemon;
- for (size = 0; size < sizeof(battlePokemon); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&battlePokemon, buffer, sizeof(battlePokemon), size, src);
break;
case 1:
data16 = GetMonData(&gPlayerParty[a], MON_DATA_SPECIES);
@@ -616,9 +615,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer)
moveData.pp[size] = GetMonData(&gPlayerParty[a], MON_DATA_PP1 + size);
}
moveData.ppBonuses = GetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES);
- src = (u8 *)&moveData;
- for (size = 0; size < sizeof(moveData); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&moveData, buffer, sizeof(moveData), size, src);
break;
case 4:
case 5:
@@ -669,7 +666,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer)
size = 1;
break;
case 22:
- buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_SPD_EV);
+ buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_SPEED_EV);
size = 1;
break;
case 23:
@@ -708,7 +705,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer)
buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_HP_IV);
buffer[1] = GetMonData(&gPlayerParty[a], MON_DATA_ATK_IV);
buffer[2] = GetMonData(&gPlayerParty[a], MON_DATA_DEF_IV);
- buffer[3] = GetMonData(&gPlayerParty[a], MON_DATA_SPD_IV);
+ buffer[3] = GetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV);
buffer[4] = GetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV);
buffer[5] = GetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV);
size = 6;
@@ -726,7 +723,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer)
size = 1;
break;
case 35:
- buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_SPD_IV);
+ buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV);
size = 1;
break;
case 36:
@@ -788,7 +785,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer)
size = 2;
break;
case 46:
- data16 = GetMonData(&gPlayerParty[a], MON_DATA_SPD);
+ data16 = GetMonData(&gPlayerParty[a], MON_DATA_SPEED);
buffer[0] = data16;
buffer[1] = data16 >> 8;
size = 2;
@@ -893,38 +890,38 @@ void sub_811EC68(u8 a)
{
u8 iv;
- SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, (u8 *)&battlePokemon->species);
- SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, (u8 *)&battlePokemon->item);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, &battlePokemon->species);
+ SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, &battlePokemon->item);
for (i = 0; i < 4; i++)
{
- SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, (u8 *)&battlePokemon->moves[i]);
- SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, (u8 *)&battlePokemon->pp[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, &battlePokemon->moves[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, &battlePokemon->pp[i]);
}
- SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, (u8 *)&battlePokemon->ppBonuses);
- SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, (u8 *)&battlePokemon->friendship);
- SetMonData(&gPlayerParty[a], MON_DATA_EXP, (u8 *)&battlePokemon->experience);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &battlePokemon->ppBonuses);
+ SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, &battlePokemon->friendship);
+ SetMonData(&gPlayerParty[a], MON_DATA_EXP, &battlePokemon->experience);
iv = battlePokemon->hpIV;
- SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &iv);
iv = battlePokemon->attackIV;
- SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &iv);
iv = battlePokemon->defenseIV;
- SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &iv);
iv = battlePokemon->speedIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPD_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &iv);
iv = battlePokemon->spAttackIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &iv);
iv = battlePokemon->spDefenseIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, (u8 *)&iv);
- SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, (u8 *)&battlePokemon->personality);
- SetMonData(&gPlayerParty[a], MON_DATA_STATUS, (u8 *)&battlePokemon->status1);
- SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, (u8 *)&battlePokemon->level);
- SetMonData(&gPlayerParty[a], MON_DATA_HP, (u8 *)&battlePokemon->hp);
- SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, (u8 *)&battlePokemon->maxHP);
- SetMonData(&gPlayerParty[a], MON_DATA_ATK, (u8 *)&battlePokemon->attack);
- SetMonData(&gPlayerParty[a], MON_DATA_DEF, (u8 *)&battlePokemon->defense);
- SetMonData(&gPlayerParty[a], MON_DATA_SPD, (u8 *)&battlePokemon->speed);
- SetMonData(&gPlayerParty[a], MON_DATA_SPATK, (u8 *)&battlePokemon->spAttack);
- SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, (u8 *)&battlePokemon->spDefense);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, &battlePokemon->personality);
+ SetMonData(&gPlayerParty[a], MON_DATA_STATUS, &battlePokemon->status1);
+ SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, &battlePokemon->level);
+ SetMonData(&gPlayerParty[a], MON_DATA_HP, &battlePokemon->hp);
+ SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, &battlePokemon->maxHP);
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK, &battlePokemon->attack);
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF, &battlePokemon->defense);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED, &battlePokemon->speed);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &battlePokemon->spAttack);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, &battlePokemon->spDefense);
}
break;
case 1:
@@ -936,8 +933,8 @@ void sub_811EC68(u8 a)
case 3:
for (i = 0; i < 4; i++)
{
- SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, (u8 *)&moveData->moves[i]);
- SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, (u8 *)&moveData->pp[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, &moveData->moves[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, &moveData->pp[i]);
}
SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &moveData->ppBonuses);
break;
@@ -976,7 +973,7 @@ void sub_811EC68(u8 a)
SetMonData(&gPlayerParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]);
break;
case 22:
- SetMonData(&gPlayerParty[a], MON_DATA_SPD_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]);
break;
case 23:
SetMonData(&gPlayerParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]);
@@ -1006,7 +1003,7 @@ void sub_811EC68(u8 a)
SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]);
SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gPlayerParty[a], MON_DATA_SPD_IV, &gBattleBufferA[gActiveBank][6]);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]);
SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]);
SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]);
break;
@@ -1020,7 +1017,7 @@ void sub_811EC68(u8 a)
SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]);
break;
case 35:
- SetMonData(&gPlayerParty[a], MON_DATA_SPD_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]);
break;
case 36:
SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]);
@@ -1053,7 +1050,7 @@ void sub_811EC68(u8 a)
SetMonData(&gPlayerParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]);
break;
case 46:
- SetMonData(&gPlayerParty[a], MON_DATA_SPD, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]);
break;
case 47:
SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]);
@@ -1103,9 +1100,9 @@ void LinkPartnerHandlecmd3(void)
u8 *dst;
u8 i;
- dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ MEMSET_ALT(&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1],
+ gBattleBufferA[gActiveBank][3 + i], gBattleBufferA[gActiveBank][2], i, dst);
+
LinkPartnerBufferExecCompleted();
}
@@ -1121,7 +1118,7 @@ void LinkPartnerHandleLoadPokeSprite(void)
sub_8077F68(gActiveBank),
sub_8079E90(gActiveBank));
gSprites[gObjectBankIDs[gActiveBank]].pos2.x = -240;
- gSprites[gObjectBankIDs[gActiveBank]].data0 = gActiveBank;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = gActiveBank;
gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = gActiveBank;
StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], gBattleMonForms[gActiveBank]);
gBattleBankFunc[gActiveBank] = sub_811DDE8;
@@ -1150,14 +1147,14 @@ void sub_811F864(u8 a, u8 b)
sub_8077ABC(a, 2),
sub_8077F68(a),
sub_8079E90(a));
- gSprites[gUnknown_0300434C[a]].data1 = gObjectBankIDs[a];
- gSprites[gObjectBankIDs[a]].data0 = a;
- gSprites[gObjectBankIDs[a]].data2 = species;
+ gSprites[gUnknown_0300434C[a]].data[1] = gObjectBankIDs[a];
+ gSprites[gObjectBankIDs[a]].data[0] = a;
+ gSprites[gObjectBankIDs[a]].data[2] = species;
gSprites[gObjectBankIDs[a]].oam.paletteNum = a;
StartSpriteAnim(&gSprites[gObjectBankIDs[a]], gBattleMonForms[a]);
gSprites[gObjectBankIDs[a]].invisible = TRUE;
gSprites[gObjectBankIDs[a]].callback = SpriteCallbackDummy;
- gSprites[gUnknown_0300434C[a]].data0 = sub_8046400(0, 0xFF);
+ gSprites[gUnknown_0300434C[a]].data[0] = sub_8046400(0, 0xFF);
}
void LinkPartnerHandleReturnPokeToBall(void)
@@ -1222,7 +1219,7 @@ void LinkPartnerHandleTrainerThrow(void)
sub_8079E90(gActiveBank));
gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = gActiveBank;
gSprites[gObjectBankIDs[gActiveBank]].pos2.x = 240;
- gSprites[gObjectBankIDs[gActiveBank]].data0 = -2;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = -2;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80313A0;
gBattleBankFunc[gActiveBank] = sub_811DAE4;
}
@@ -1235,11 +1232,11 @@ void LinkPartnerHandleTrainerSlide(void)
void LinkPartnerHandleTrainerSlideBack(void)
{
oamt_add_pos2_onto_pos1(&gSprites[gObjectBankIDs[gActiveBank]]);
- gSprites[gObjectBankIDs[gActiveBank]].data0 = 35;
- gSprites[gObjectBankIDs[gActiveBank]].data2 = -40;
- gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = 35;
+ gSprites[gObjectBankIDs[gActiveBank]].data[2] = -40;
+ gSprites[gObjectBankIDs[gActiveBank]].data[4] = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
+ StoreSpriteCallbackInData(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
gBattleBankFunc[gActiveBank] = sub_811DB1C;
}
@@ -1256,8 +1253,8 @@ void LinkPartnerHandlecmd10(void)
ewram17810[gActiveBank].unk4 = 0;
sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
PlaySE12WithPanning(SE_POKE_DEAD, -64);
- gSprites[gObjectBankIDs[gActiveBank]].data1 = 0;
- gSprites[gObjectBankIDs[gActiveBank]].data2 = 5;
+ gSprites[gObjectBankIDs[gActiveBank]].data[1] = 0;
+ gSprites[gObjectBankIDs[gActiveBank]].data[2] = 5;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80105EC;
gBattleBankFunc[gActiveBank] = sub_811DE98;
}
@@ -1537,7 +1534,7 @@ void LinkPartnerHandleHitAnimation(void)
else
{
gDoingBattleAnim = TRUE;
- gSprites[gObjectBankIDs[gActiveBank]].data1 = 0;
+ gSprites[gObjectBankIDs[gActiveBank]].data[1] = 0;
sub_8047858(gActiveBank);
gBattleBankFunc[gActiveBank] = bx_blink_t3;
}
@@ -1587,12 +1584,12 @@ void LinkPartnerHandleTrainerBallThrow(void)
u8 taskId;
oamt_add_pos2_onto_pos1(&gSprites[gObjectBankIDs[gActiveBank]]);
- gSprites[gObjectBankIDs[gActiveBank]].data0 = 50;
- gSprites[gObjectBankIDs[gActiveBank]].data2 = -40;
- gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = 50;
+ gSprites[gObjectBankIDs[gActiveBank]].data[2] = -40;
+ gSprites[gObjectBankIDs[gActiveBank]].data[4] = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- gSprites[gObjectBankIDs[gActiveBank]].data5 = gActiveBank;
- StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
+ gSprites[gObjectBankIDs[gActiveBank]].data[5] = gActiveBank;
+ StoreSpriteCallbackInData(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], 1);
r4 = AllocSpritePalette(0xD6F9);
LoadCompressedPalette(
diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c
index 72b56b962..a35687796 100644
--- a/src/battle/battle_controller_opponent.c
+++ b/src/battle/battle_controller_opponent.c
@@ -4,6 +4,7 @@
#include "data2.h"
#include "battle_811DA74.h"
#include "battle_anim_813F0F4.h"
+#include "battle_tower.h"
#include "link.h"
#include "m4a.h"
#include "main.h"
@@ -13,12 +14,13 @@
#include "rom3.h"
#include "rom_8077ABC.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sprite.h"
#include "string_util.h"
#include "task.h"
#include "text.h"
#include "util.h"
+#include "ewram.h"
struct UnknownStruct3
{
@@ -76,7 +78,6 @@ extern u8 sub_8046400();
extern void sub_8032A08();
extern void sub_8043DB0();
extern void sub_8033160(void);
-extern u8 sub_8135FBC(void);
extern u8 get_trainer_class_pic_index(void);
extern void sub_80313A0(struct Sprite *);
extern void sub_8032B4C(void);
@@ -85,7 +86,7 @@ extern void sub_8032B84(void);
extern void sub_8078B34(struct Sprite *);
extern void sub_8032BBC(void);
extern void oamt_add_pos2_onto_pos1();
-extern void StoreSpriteCallbackInData6();
+extern void StoreSpriteCallbackInData();
extern void sub_803311C(void);
extern void sub_8010384(struct Sprite *);
extern bool8 mplay_80342A4(u8);
@@ -294,7 +295,7 @@ void sub_8032BBC(void)
if (gSprites[gObjectBankIDs[gActiveBank]].callback == SpriteCallbackDummy)
{
sub_8031B74(gSprites[gObjectBankIDs[gActiveBank]].oam.affineParam);
- gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum = gSprites[gObjectBankIDs[gActiveBank]].data5;
+ gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum = gSprites[gObjectBankIDs[gActiveBank]].data[5];
FreeSpriteOamMatrix(&gSprites[gObjectBankIDs[gActiveBank]]);
DestroySprite(&gSprites[gObjectBankIDs[gActiveBank]]);
OpponentBufferExecCompleted();
@@ -446,18 +447,18 @@ void bx_blink_t7(void)
{
u8 spriteId = gObjectBankIDs[gActiveBank];
- if (gSprites[spriteId].data1 == 32)
+ if (gSprites[spriteId].data[1] == 32)
{
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
gSprites[spriteId].invisible = FALSE;
gDoingBattleAnim = 0;
OpponentBufferExecCompleted();
}
else
{
- if (((u16)gSprites[spriteId].data1 % 4) == 0)
+ if (((u16)gSprites[spriteId].data[1] % 4) == 0)
gSprites[spriteId].invisible ^= 1;
- gSprites[spriteId].data1++;
+ gSprites[spriteId].data[1]++;
}
}
@@ -582,7 +583,7 @@ u32 sub_8033598(u8 a, u8 *buffer)
battlePokemon.hpIV = GetMonData(&gEnemyParty[a], MON_DATA_HP_IV);
battlePokemon.attackIV = GetMonData(&gEnemyParty[a], MON_DATA_ATK_IV);
battlePokemon.defenseIV = GetMonData(&gEnemyParty[a], MON_DATA_DEF_IV);
- battlePokemon.speedIV = GetMonData(&gEnemyParty[a], MON_DATA_SPD_IV);
+ battlePokemon.speedIV = GetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV);
battlePokemon.spAttackIV = GetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV);
battlePokemon.spDefenseIV = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV);
battlePokemon.personality = GetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY);
@@ -592,7 +593,7 @@ u32 sub_8033598(u8 a, u8 *buffer)
battlePokemon.maxHP = GetMonData(&gEnemyParty[a], MON_DATA_MAX_HP);
battlePokemon.attack = GetMonData(&gEnemyParty[a], MON_DATA_ATK);
battlePokemon.defense = GetMonData(&gEnemyParty[a], MON_DATA_DEF);
- battlePokemon.speed = GetMonData(&gEnemyParty[a], MON_DATA_SPD);
+ battlePokemon.speed = GetMonData(&gEnemyParty[a], MON_DATA_SPEED);
battlePokemon.spAttack = GetMonData(&gEnemyParty[a], MON_DATA_SPATK);
battlePokemon.spDefense = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF);
battlePokemon.isEgg = GetMonData(&gEnemyParty[a], MON_DATA_IS_EGG);
@@ -601,9 +602,7 @@ u32 sub_8033598(u8 a, u8 *buffer)
GetMonData(&gEnemyParty[a], MON_DATA_NICKNAME, nickname);
StringCopy10(battlePokemon.nickname, nickname);
GetMonData(&gEnemyParty[a], MON_DATA_OT_NAME, battlePokemon.otName);
- src = (u8 *)&battlePokemon;
- for (size = 0; size < sizeof(battlePokemon); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&battlePokemon, buffer, sizeof(battlePokemon), size, src);
break;
case 1:
data16 = GetMonData(&gEnemyParty[a], MON_DATA_SPECIES);
@@ -624,9 +623,7 @@ u32 sub_8033598(u8 a, u8 *buffer)
moveData.pp[size] = GetMonData(&gEnemyParty[a], MON_DATA_PP1 + size);
}
moveData.ppBonuses = GetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES);
- src = (u8 *)&moveData;
- for (size = 0; size < sizeof(moveData); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&moveData, buffer, sizeof(moveData), size, src);
break;
case 4:
case 5:
@@ -677,7 +674,7 @@ u32 sub_8033598(u8 a, u8 *buffer)
size = 1;
break;
case 22:
- buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPD_EV);
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPEED_EV);
size = 1;
break;
case 23:
@@ -716,7 +713,7 @@ u32 sub_8033598(u8 a, u8 *buffer)
buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_HP_IV);
buffer[1] = GetMonData(&gEnemyParty[a], MON_DATA_ATK_IV);
buffer[2] = GetMonData(&gEnemyParty[a], MON_DATA_DEF_IV);
- buffer[3] = GetMonData(&gEnemyParty[a], MON_DATA_SPD_IV);
+ buffer[3] = GetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV);
buffer[4] = GetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV);
buffer[5] = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV);
size = 6;
@@ -734,7 +731,7 @@ u32 sub_8033598(u8 a, u8 *buffer)
size = 1;
break;
case 35:
- buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPD_IV);
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV);
size = 1;
break;
case 36:
@@ -796,7 +793,7 @@ u32 sub_8033598(u8 a, u8 *buffer)
size = 2;
break;
case 46:
- data16 = GetMonData(&gEnemyParty[a], MON_DATA_SPD);
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_SPEED);
buffer[0] = data16;
buffer[1] = data16 >> 8;
size = 2;
@@ -864,12 +861,12 @@ u32 sub_8033598(u8 a, u8 *buffer)
void OpponentHandlecmd1(void)
{
struct BattlePokemon buffer;
- u8 *src = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
- u8 *dst = (u8 *)&buffer + gBattleBufferA[gActiveBank][1];
u8 i;
+ // TODO: Maybe fix this. Integrating this into MEMSET_ALT is too hard.
+ u8 *src = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
+ u8 *dst;
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = src[i];
+ MEMSET_ALT(&buffer + gBattleBufferA[gActiveBank][1], src[i], gBattleBufferA[gActiveBank][2], i, dst);
Emitcmd29(1, gBattleBufferA[gActiveBank][2], dst);
OpponentBufferExecCompleted();
}
@@ -908,38 +905,38 @@ void sub_8033E24(u8 a)
{
u8 iv;
- SetMonData(&gEnemyParty[a], MON_DATA_SPECIES, (u8 *)&battlePokemon->species);
- SetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM, (u8 *)&battlePokemon->item);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPECIES, &battlePokemon->species);
+ SetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM, &battlePokemon->item);
for (i = 0; i < 4; i++)
{
- SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, (u8 *)&battlePokemon->moves[i]);
- SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, (u8 *)&battlePokemon->pp[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, &battlePokemon->moves[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, &battlePokemon->pp[i]);
}
- SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, (u8 *)&battlePokemon->ppBonuses);
- SetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP, (u8 *)&battlePokemon->friendship);
- SetMonData(&gEnemyParty[a], MON_DATA_EXP, (u8 *)&battlePokemon->experience);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, &battlePokemon->ppBonuses);
+ SetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP, &battlePokemon->friendship);
+ SetMonData(&gEnemyParty[a], MON_DATA_EXP, &battlePokemon->experience);
iv = battlePokemon->hpIV;
- SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &iv);
iv = battlePokemon->attackIV;
- SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &iv);
iv = battlePokemon->defenseIV;
- SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &iv);
iv = battlePokemon->speedIV;
- SetMonData(&gEnemyParty[a], MON_DATA_SPD_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, &iv);
iv = battlePokemon->spAttackIV;
- SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &iv);
iv = battlePokemon->spDefenseIV;
- SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, (u8 *)&iv);
- SetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY, (u8 *)&battlePokemon->personality);
- SetMonData(&gEnemyParty[a], MON_DATA_STATUS, (u8 *)&battlePokemon->status1);
- SetMonData(&gEnemyParty[a], MON_DATA_LEVEL, (u8 *)&battlePokemon->level);
- SetMonData(&gEnemyParty[a], MON_DATA_HP, (u8 *)&battlePokemon->hp);
- SetMonData(&gEnemyParty[a], MON_DATA_MAX_HP, (u8 *)&battlePokemon->maxHP);
- SetMonData(&gEnemyParty[a], MON_DATA_ATK, (u8 *)&battlePokemon->attack);
- SetMonData(&gEnemyParty[a], MON_DATA_DEF, (u8 *)&battlePokemon->defense);
- SetMonData(&gEnemyParty[a], MON_DATA_SPD, (u8 *)&battlePokemon->speed);
- SetMonData(&gEnemyParty[a], MON_DATA_SPATK, (u8 *)&battlePokemon->spAttack);
- SetMonData(&gEnemyParty[a], MON_DATA_SPDEF, (u8 *)&battlePokemon->spDefense);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY, &battlePokemon->personality);
+ SetMonData(&gEnemyParty[a], MON_DATA_STATUS, &battlePokemon->status1);
+ SetMonData(&gEnemyParty[a], MON_DATA_LEVEL, &battlePokemon->level);
+ SetMonData(&gEnemyParty[a], MON_DATA_HP, &battlePokemon->hp);
+ SetMonData(&gEnemyParty[a], MON_DATA_MAX_HP, &battlePokemon->maxHP);
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK, &battlePokemon->attack);
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF, &battlePokemon->defense);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPEED, &battlePokemon->speed);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK, &battlePokemon->spAttack);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF, &battlePokemon->spDefense);
}
break;
case 1:
@@ -951,8 +948,8 @@ void sub_8033E24(u8 a)
case 3:
for (i = 0; i < 4; i++)
{
- SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, (u8 *)&moveData->moves[i]);
- SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, (u8 *)&moveData->pp[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, &moveData->moves[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, &moveData->pp[i]);
}
SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, &moveData->ppBonuses);
break;
@@ -991,7 +988,7 @@ void sub_8033E24(u8 a)
SetMonData(&gEnemyParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]);
break;
case 22:
- SetMonData(&gEnemyParty[a], MON_DATA_SPD_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]);
break;
case 23:
SetMonData(&gEnemyParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]);
@@ -1021,7 +1018,7 @@ void sub_8033E24(u8 a)
SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]);
SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gEnemyParty[a], MON_DATA_SPD_IV, &gBattleBufferA[gActiveBank][6]);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]);
SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]);
SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]);
break;
@@ -1035,7 +1032,7 @@ void sub_8033E24(u8 a)
SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]);
break;
case 35:
- SetMonData(&gEnemyParty[a], MON_DATA_SPD_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]);
break;
case 36:
SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]);
@@ -1068,7 +1065,7 @@ void sub_8033E24(u8 a)
SetMonData(&gEnemyParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]);
break;
case 46:
- SetMonData(&gEnemyParty[a], MON_DATA_SPD, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]);
break;
case 47:
SetMonData(&gEnemyParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]);
@@ -1117,9 +1114,8 @@ void OpponentHandlecmd3(void)
u8 *dst;
u8 i;
- dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ MEMSET_ALT(&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][3 + i],
+ gBattleBufferA[gActiveBank][2], i, dst);
OpponentBufferExecCompleted();
}
@@ -1135,8 +1131,8 @@ void OpponentHandleLoadPokeSprite(void)
sub_8077F68(gActiveBank),
sub_8079E90(gActiveBank));
gSprites[gObjectBankIDs[gActiveBank]].pos2.x = -240;
- gSprites[gObjectBankIDs[gActiveBank]].data0 = gActiveBank;
- gSprites[gObjectBankIDs[gActiveBank]].data2 = species;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = gActiveBank;
+ gSprites[gObjectBankIDs[gActiveBank]].data[2] = species;
gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = gActiveBank;
StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], gBattleMonForms[gActiveBank]);
sub_8032984(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES));
@@ -1166,14 +1162,14 @@ void sub_803495C(u8 a, u8 b)
sub_8077ABC(a, 2),
sub_8077F68(a),
sub_8079E90(a));
- gSprites[gObjectBankIDs[a]].data0 = a;
- gSprites[gObjectBankIDs[a]].data2 = species;
- gSprites[gUnknown_0300434C[a]].data1 = gObjectBankIDs[a];
+ gSprites[gObjectBankIDs[a]].data[0] = a;
+ gSprites[gObjectBankIDs[a]].data[2] = species;
+ gSprites[gUnknown_0300434C[a]].data[1] = gObjectBankIDs[a];
gSprites[gObjectBankIDs[a]].oam.paletteNum = a;
StartSpriteAnim(&gSprites[gObjectBankIDs[a]], gBattleMonForms[a]);
gSprites[gObjectBankIDs[a]].invisible = TRUE;
gSprites[gObjectBankIDs[a]].callback = SpriteCallbackDummy;
- gSprites[gUnknown_0300434C[a]].data0 = sub_8046400(0, 0xFE);
+ gSprites[gUnknown_0300434C[a]].data[0] = sub_8046400(0, 0xFE);
}
void OpponentHandleReturnPokeToBall(void)
@@ -1222,7 +1218,7 @@ void OpponentHandleTrainerThrow(void)
else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
trainerPicIndex = get_trainer_class_pic_index();
else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER)
- trainerPicIndex = sub_8135FBC();
+ trainerPicIndex = GetEReaderTrainerPicIndex();
else
trainerPicIndex = gTrainers[gTrainerBattleOpponent].trainerPic;
@@ -1234,9 +1230,9 @@ void OpponentHandleTrainerThrow(void)
40 + 4 * (8 - gTrainerFrontPicCoords[trainerPicIndex].coords),
sub_8079E90(gActiveBank));
gSprites[gObjectBankIDs[gActiveBank]].pos2.x = -240;
- gSprites[gObjectBankIDs[gActiveBank]].data0 = 2;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = 2;
gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicIndex].tag);
- gSprites[gObjectBankIDs[gActiveBank]].data5 = gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum;
+ gSprites[gObjectBankIDs[gActiveBank]].data[5] = gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum;
gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[trainerPicIndex].tag);
gSprites[gObjectBankIDs[gActiveBank]].oam.affineParam = trainerPicIndex;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80313A0;
@@ -1252,7 +1248,7 @@ void OpponentHandleTrainerSlide(void)
else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
trainerPicIndex = get_trainer_class_pic_index();
else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER)
- trainerPicIndex = sub_8135FBC();
+ trainerPicIndex = GetEReaderTrainerPicIndex();
else
trainerPicIndex = gTrainers[gTrainerBattleOpponent].trainerPic;
@@ -1265,9 +1261,9 @@ void OpponentHandleTrainerSlide(void)
0x1E);
gSprites[gObjectBankIDs[gActiveBank]].pos2.x = 96;
gSprites[gObjectBankIDs[gActiveBank]].pos1.x += 32;
- gSprites[gObjectBankIDs[gActiveBank]].data0 = -2;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = -2;
gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicIndex].tag);
- gSprites[gObjectBankIDs[gActiveBank]].data5 = gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum;
+ gSprites[gObjectBankIDs[gActiveBank]].data[5] = gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum;
gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[trainerPicIndex].tag);
gSprites[gObjectBankIDs[gActiveBank]].oam.affineParam = trainerPicIndex;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80313A0;
@@ -1277,11 +1273,11 @@ void OpponentHandleTrainerSlide(void)
void OpponentHandleTrainerSlideBack(void)
{
oamt_add_pos2_onto_pos1(&gSprites[gObjectBankIDs[gActiveBank]]);
- gSprites[gObjectBankIDs[gActiveBank]].data0 = 35;
- gSprites[gObjectBankIDs[gActiveBank]].data2 = 280;
- gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = 35;
+ gSprites[gObjectBankIDs[gActiveBank]].data[2] = 280;
+ gSprites[gObjectBankIDs[gActiveBank]].data[4] = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
+ StoreSpriteCallbackInData(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
gBattleBankFunc[gActiveBank] = sub_8032BBC;
}
@@ -1678,7 +1674,7 @@ _0803558A:\n\
void OpponentHandleOpenBag(void)
{
// What is this?
- Emitcmd35(1, ewram[0x160D4 + gActiveBank / 2 * 2]);
+ Emitcmd35(1, ewram160D4(gActiveBank));
OpponentBufferExecCompleted();
}
@@ -1686,7 +1682,7 @@ void OpponentHandlecmd22(void)
{
s32 r4;
- if (ewram[0x160C8 + GetBankIdentity(gActiveBank) / 2] == 6)
+ if (ewram160C8arr(GetBankIdentity(gActiveBank)) == 6)
{
u8 r6;
u8 r5;
@@ -1715,10 +1711,10 @@ void OpponentHandlecmd22(void)
}
else
{
- r4 = ewram[0x160C8 + GetBankIdentity(gActiveBank) / 2];
- ewram[0x160C8 + GetBankIdentity(gActiveBank) / 2] = 6;
+ r4 = ewram160C8arr(GetBankIdentity(gActiveBank));
+ ewram160C8arr(GetBankIdentity(gActiveBank)) = 6;
}
- ewram[0x16068 + gActiveBank] = r4;
+ ewram16068arr(gActiveBank) = r4;
Emitcmd34(1, r4, 0);
OpponentBufferExecCompleted();
}
@@ -1857,7 +1853,7 @@ void OpponentHandleHitAnimation(void)
else
{
gDoingBattleAnim = TRUE;
- gSprites[gObjectBankIDs[gActiveBank]].data1 = 0;
+ gSprites[gObjectBankIDs[gActiveBank]].data[1] = 0;
sub_8047858(gActiveBank);
gBattleBankFunc[gActiveBank] = bx_blink_t7;
}
@@ -1906,11 +1902,11 @@ void OpponentHandleTrainerBallThrow(void)
u8 taskId;
oamt_add_pos2_onto_pos1(&gSprites[gObjectBankIDs[gActiveBank]]);
- gSprites[gObjectBankIDs[gActiveBank]].data0 = 35;
- gSprites[gObjectBankIDs[gActiveBank]].data2 = 280;
- gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = 35;
+ gSprites[gObjectBankIDs[gActiveBank]].data[2] = 280;
+ gSprites[gObjectBankIDs[gActiveBank]].data[4] = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], sub_8035C10);
+ StoreSpriteCallbackInData(&gSprites[gObjectBankIDs[gActiveBank]], sub_8035C10);
taskId = CreateTask(sub_8035C44, 5);
gTasks[taskId].data[0] = gActiveBank;
if (ewram17810[gActiveBank].unk0_0)
@@ -1922,7 +1918,7 @@ void OpponentHandleTrainerBallThrow(void)
void sub_8035C10(struct Sprite *sprite)
{
sub_8031B74(sprite->oam.affineParam);
- sprite->oam.tileNum = sprite->data5;
+ sprite->oam.tileNum = sprite->data[5];
FreeSpriteOamMatrix(sprite);
DestroySprite(sprite);
}
diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c
index 53b596c5e..c2d34db0d 100644
--- a/src/battle/battle_controller_player.c
+++ b/src/battle/battle_controller_player.c
@@ -4,21 +4,22 @@
#include "battle_interface.h"
#include "battle_message.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "link.h"
#include "m4a.h"
#include "main.h"
#include "menu_cursor.h"
-#include "moves.h"
+#include "constants/moves.h"
#include "palette.h"
#include "pokemon.h"
#include "rom3.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "string_util.h"
#include "task.h"
#include "text.h"
#include "util.h"
+#include "ewram.h"
//Possibly PokemonSubstruct1
struct UnknownStruct3
@@ -77,9 +78,9 @@ extern u16 gUnknown_030042C0;
extern u8 gUnknown_03004344;
extern u8 gUnknown_0300434C[];
-extern const u8 gUnknown_08400CA8[];
-extern const u8 gUnknown_08400CF3[];
-extern const u8 gUnknown_08400D38[];
+extern const u8 BattleText_OtherMenu[];
+extern const u8 BattleText_MenuOptions[];
+extern const u8 BattleText_PP[];
extern void sub_802C68C(void);
extern void sub_802E1B0(void);
@@ -101,7 +102,7 @@ extern u8 GetBankSide(u8);
extern void sub_80E43C0();
extern void oamt_add_pos2_onto_pos1();
extern void sub_8078B34(struct Sprite *);
-extern void StoreSpriteCallbackInData6();
+extern void StoreSpriteCallbackInData();
extern void BattleLoadPlayerMonSprite();
extern bool8 IsDoubleBattle(void);
extern void sub_802D500(void);
@@ -151,7 +152,7 @@ extern u16 gBattlePartyID[];
extern u16 gUnknown_030042A0;
extern u16 gUnknown_030042A4;
extern struct Window gUnknown_03004210;
-extern const u8 gUnknown_08400D89[];
+extern const u8 BattleText_SwitchWhich[];
extern u8 gUnknown_03004348;
extern struct BattlePokemon gBattleMons[];
extern MainCallback gPreBattleCallback1;
@@ -161,9 +162,9 @@ extern u8 gUnknown_0300434C[];
extern u8 gUnknown_0202E8F4;
extern u8 gUnknown_0202E8F5;
extern u8 gUnknown_02038470[];
-extern u16 gScriptItemId;
+extern u16 gSpecialVar_ItemId;
extern u8 gDisplayedStringBattle[];
-extern const u8 gUnknown_08400CE0[];
+extern const u8 BattleText_LinkStandby[];
extern void dp11b_obj_instanciate(u8, u8, s8, s8);
extern u8 GetBankIdentity(u8);
@@ -745,15 +746,14 @@ void sub_802C68C(void)
gUnknown_03004344 = gMoveSelectionCursor[gActiveBank] + 1;
sub_802E3B4(gUnknown_03004344, 27);
FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A);
- InitWindow(&gUnknown_03004210, gUnknown_08400D89, 0x290, 0x17, 0x37);
+ InitWindow(&gUnknown_03004210, BattleText_SwitchWhich, 0x290, 0x17, 0x37);
sub_8002F44(&gUnknown_03004210);
gBattleBankFunc[gActiveBank] = sub_802CA60;
}
}
}
-extern const u8 gUnknown_08400D49[];
-extern const u8 gUnknown_08400D38[];
+extern const u8 BattleText_Format[];
void sub_802CA60(void)
{
@@ -841,7 +841,7 @@ void sub_802CA60(void)
for (i = 0; i < 4; i++)
{
- SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + i, (u8 *)&sp0.moves[i]);
+ SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + i, &sp0.moves[i]);
SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_PP1 + i, &sp0.pp[i]);
}
SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_PP_BONUSES, &totalPPBonuses);
@@ -849,13 +849,13 @@ void sub_802CA60(void)
}
else
{
- sub_802E12C(gUnknown_03004344, gUnknown_08400D49);
+ sub_802E12C(gUnknown_03004344, BattleText_Format);
}
gBattleBankFunc[gActiveBank] = sub_802C68C;
gMoveSelectionCursor[gActiveBank] = gUnknown_03004344;
sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0);
FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A);
- InitWindow(&gUnknown_03004210, gUnknown_08400D38, 0x290, 0x17, 0x37);
+ InitWindow(&gUnknown_03004210, BattleText_PP, 0x290, 0x17, 0x37);
sub_8002F44(&gUnknown_03004210);
sub_802E220();
sub_802E2D4();
@@ -865,10 +865,10 @@ void sub_802CA60(void)
PlaySE(SE_SELECT);
nullsub_7(gUnknown_03004344);
sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0);
- sub_802E12C(gMoveSelectionCursor[gActiveBank], gUnknown_08400D49);
+ sub_802E12C(gMoveSelectionCursor[gActiveBank], BattleText_Format);
gBattleBankFunc[gActiveBank] = sub_802C68C;
FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A);
- InitWindow(&gUnknown_03004210, gUnknown_08400D38, 0x290, 0x17, 0x37);
+ InitWindow(&gUnknown_03004210, BattleText_PP, 0x290, 0x17, 0x37);
sub_8002F44(&gUnknown_03004210);
sub_802E220();
sub_802E2D4();
@@ -1149,7 +1149,7 @@ void sub_802D924(u8 taskId)
{
u8 savedActiveBank;
- SetMonData(pkmn, MON_DATA_EXP, (u8 *)&nextLvlExp);
+ SetMonData(pkmn, MON_DATA_EXP, &nextLvlExp);
CalculateMonStats(pkmn);
gainedExp -= nextLvlExp - currExp;
savedActiveBank = gActiveBank;
@@ -1166,7 +1166,7 @@ void sub_802D924(u8 taskId)
else
{
currExp += gainedExp;
- SetMonData(pkmn, MON_DATA_EXP, (u8 *)&currExp);
+ SetMonData(pkmn, MON_DATA_EXP, &currExp);
gBattleBankFunc[bank] = sub_802D90C;
DestroyTask(taskId);
}
@@ -1231,7 +1231,7 @@ void sub_802DB6C(u8 taskId)
u8 r5;
u32 asdf;
- SetMonData(pkmn, MON_DATA_EXP, (u8 *)&sp0);
+ SetMonData(pkmn, MON_DATA_EXP, &sp0);
CalculateMonStats(pkmn);
//r10 -= sp0 - sp4;
asdf = sp0 - sp4;
@@ -1247,7 +1247,7 @@ void sub_802DB6C(u8 taskId)
{
//u32 asdf = sp4 + r10;
sp4 += r10;
- SetMonData(pkmn, MON_DATA_EXP, (u8 *)&sp4);
+ SetMonData(pkmn, MON_DATA_EXP, &sp4);
gBattleBankFunc[r7] = sub_802D90C;
DestroyTask(taskId);
}
@@ -1522,7 +1522,7 @@ void sub_802E03C(void)
{
if (gMain.callback2 == sub_800F808 && !gPaletteFade.active)
{
- Emitcmd35(1, gScriptItemId);
+ Emitcmd35(1, gSpecialVar_ItemId);
PlayerBufferExecCompleted();
}
}
@@ -1537,18 +1537,18 @@ void bx_blink_t1(void)
{
u8 spriteId = gObjectBankIDs[gActiveBank];
- if (gSprites[spriteId].data1 == 32)
+ if (gSprites[spriteId].data[1] == 32)
{
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
gSprites[spriteId].invisible = FALSE;
gDoingBattleAnim = 0;
PlayerBufferExecCompleted();
}
else
{
- if (((u16)gSprites[spriteId].data1 % 4) == 0)
+ if (((u16)gSprites[spriteId].data[1] % 4) == 0)
gSprites[spriteId].invisible ^= 1;
- gSprites[spriteId].data1++;
+ gSprites[spriteId].data[1]++;
}
}
@@ -1577,7 +1577,7 @@ void sub_802E1B0(void)
for (i = 0; i < 4; i++)
{
nullsub_7(i);
- sub_802E12C(i, gUnknown_08400D49);
+ sub_802E12C(i, BattleText_Format);
if (r4->moves[i] != 0)
gUnknown_03004348++;
}
@@ -1590,7 +1590,7 @@ void sub_802E220(void)
struct UnknownStruct1 *r4 = (struct UnknownStruct1 *)&gBattleBufferA[gActiveBank][4];
u8 *str = gDisplayedStringBattle;
- str = StringCopy(str, gUnknown_08400D49);
+ str = StringCopy(str, BattleText_Format);
str[0] = EXT_CTRL_CODE_BEGIN;
str[1] = 0x11;
str[2] = 2;
@@ -1607,7 +1607,7 @@ void sub_802E220(void)
}
}
-extern const u8 gUnknown_08400D52[];
+extern const u8 BattleText_ForgetMove[];
extern const u8 gTypeNames[][7];
void sub_802E2D4(void)
@@ -1615,14 +1615,14 @@ void sub_802E2D4(void)
if (gBattleBufferA[gActiveBank][2] == 1)
{
FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A);
- InitWindow(&gUnknown_03004210, gUnknown_08400D52, 0x290, 0x13, 0x37);
+ InitWindow(&gUnknown_03004210, BattleText_ForgetMove, 0x290, 0x13, 0x37);
}
else
{
struct UnknownStruct1 *r4 = (struct UnknownStruct1 *)&gBattleBufferA[gActiveBank][4];
u8 *str = gDisplayedStringBattle;
- str = StringCopy(str, gUnknown_08400D49);
+ 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);
@@ -1698,7 +1698,7 @@ void b_link_standby_message(void)
{
gUnknown_030042A4 = 0;
gUnknown_030042A0 = 0;
- sub_8002EB0(&gUnknown_03004210, gUnknown_08400CE0, 0x90, 2, 15);
+ sub_8002EB0(&gUnknown_03004210, BattleText_LinkStandby, 0x90, 2, 15);
}
}
@@ -1754,7 +1754,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon_(u8 a, u8 *buffer)
battlePokemon.hpIV = GetMonData(&gPlayerParty[a], MON_DATA_HP_IV);
battlePokemon.attackIV = GetMonData(&gPlayerParty[a], MON_DATA_ATK_IV);
battlePokemon.defenseIV = GetMonData(&gPlayerParty[a], MON_DATA_DEF_IV);
- battlePokemon.speedIV = GetMonData(&gPlayerParty[a], MON_DATA_SPD_IV);
+ battlePokemon.speedIV = GetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV);
battlePokemon.spAttackIV = GetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV);
battlePokemon.spDefenseIV = GetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV);
battlePokemon.personality = GetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY);
@@ -1764,7 +1764,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon_(u8 a, u8 *buffer)
battlePokemon.maxHP = GetMonData(&gPlayerParty[a], MON_DATA_MAX_HP);
battlePokemon.attack = GetMonData(&gPlayerParty[a], MON_DATA_ATK);
battlePokemon.defense = GetMonData(&gPlayerParty[a], MON_DATA_DEF);
- battlePokemon.speed = GetMonData(&gPlayerParty[a], MON_DATA_SPD);
+ battlePokemon.speed = GetMonData(&gPlayerParty[a], MON_DATA_SPEED);
battlePokemon.spAttack = GetMonData(&gPlayerParty[a], MON_DATA_SPATK);
battlePokemon.spDefense = GetMonData(&gPlayerParty[a], MON_DATA_SPDEF);
battlePokemon.isEgg = GetMonData(&gPlayerParty[a], MON_DATA_IS_EGG);
@@ -1773,9 +1773,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon_(u8 a, u8 *buffer)
GetMonData(&gPlayerParty[a], MON_DATA_NICKNAME, nickname);
StringCopy10(battlePokemon.nickname, nickname);
GetMonData(&gPlayerParty[a], MON_DATA_OT_NAME, battlePokemon.otName);
- src = (u8 *)&battlePokemon;
- for (size = 0; size < sizeof(battlePokemon); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&battlePokemon, buffer, sizeof(battlePokemon), size, src);
break;
case 1:
data16 = GetMonData(&gPlayerParty[a], MON_DATA_SPECIES);
@@ -1796,9 +1794,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon_(u8 a, u8 *buffer)
moveData.pp[size] = GetMonData(&gPlayerParty[a], MON_DATA_PP1 + size);
}
moveData.ppBonuses = GetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES);
- src = (u8 *)&moveData;
- for (size = 0; size < sizeof(moveData); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&moveData, buffer, sizeof(moveData), size, src);
break;
case 4:
case 5:
@@ -1849,7 +1845,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon_(u8 a, u8 *buffer)
size = 1;
break;
case 22:
- buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_SPD_EV);
+ buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_SPEED_EV);
size = 1;
break;
case 23:
@@ -1888,7 +1884,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon_(u8 a, u8 *buffer)
buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_HP_IV);
buffer[1] = GetMonData(&gPlayerParty[a], MON_DATA_ATK_IV);
buffer[2] = GetMonData(&gPlayerParty[a], MON_DATA_DEF_IV);
- buffer[3] = GetMonData(&gPlayerParty[a], MON_DATA_SPD_IV);
+ buffer[3] = GetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV);
buffer[4] = GetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV);
buffer[5] = GetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV);
size = 6;
@@ -1906,7 +1902,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon_(u8 a, u8 *buffer)
size = 1;
break;
case 35:
- buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_SPD_IV);
+ buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV);
size = 1;
break;
case 36:
@@ -1968,7 +1964,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon_(u8 a, u8 *buffer)
size = 2;
break;
case 46:
- data16 = GetMonData(&gPlayerParty[a], MON_DATA_SPD);
+ data16 = GetMonData(&gPlayerParty[a], MON_DATA_SPEED);
buffer[0] = data16;
buffer[1] = data16 >> 8;
size = 2;
@@ -2035,13 +2031,13 @@ u32 dp01_getattr_by_ch1_for_player_pokemon_(u8 a, u8 *buffer)
void PlayerHandlecmd1(void)
{
- struct BattlePokemon battleMon; // I think this is a BattlePokemon
- u8 *src = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
- u8 *dst = (u8 *)&battleMon + gBattleBufferA[gActiveBank][1];
+ struct BattlePokemon battleMon;
u8 i;
+ // TODO: Maybe fix this. Integrating this into MEMSET_ALT is too hard.
+ u8 *src = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
+ u8 *dst;
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = src[i];
+ MEMSET_ALT(&battleMon + gBattleBufferA[gActiveBank][1], src[i], gBattleBufferA[gActiveBank][2], i, dst);
Emitcmd29(1, gBattleBufferA[gActiveBank][2], dst);
PlayerBufferExecCompleted();
}
@@ -2081,38 +2077,38 @@ void dp01_setattr_by_ch1_for_player_pokemon(u8 a)
{
u8 iv;
- SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, (u8 *)&battlePokemon->species);
- SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, (u8 *)&battlePokemon->item);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, &battlePokemon->species);
+ SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, &battlePokemon->item);
for (i = 0; i < 4; i++)
{
- SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, (u8 *)&battlePokemon->moves[i]);
- SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, (u8 *)&battlePokemon->pp[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, &battlePokemon->moves[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, &battlePokemon->pp[i]);
}
- SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, (u8 *)&battlePokemon->ppBonuses);
- SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, (u8 *)&battlePokemon->friendship);
- SetMonData(&gPlayerParty[a], MON_DATA_EXP, (u8 *)&battlePokemon->experience);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &battlePokemon->ppBonuses);
+ SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, &battlePokemon->friendship);
+ SetMonData(&gPlayerParty[a], MON_DATA_EXP, &battlePokemon->experience);
iv = battlePokemon->hpIV;
- SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &iv);
iv = battlePokemon->attackIV;
- SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &iv);
iv = battlePokemon->defenseIV;
- SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &iv);
iv = battlePokemon->speedIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPD_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &iv);
iv = battlePokemon->spAttackIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &iv);
iv = battlePokemon->spDefenseIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, (u8 *)&iv);
- SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, (u8 *)&battlePokemon->personality);
- SetMonData(&gPlayerParty[a], MON_DATA_STATUS, (u8 *)&battlePokemon->status1);
- SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, (u8 *)&battlePokemon->level);
- SetMonData(&gPlayerParty[a], MON_DATA_HP, (u8 *)&battlePokemon->hp);
- SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, (u8 *)&battlePokemon->maxHP);
- SetMonData(&gPlayerParty[a], MON_DATA_ATK, (u8 *)&battlePokemon->attack);
- SetMonData(&gPlayerParty[a], MON_DATA_DEF, (u8 *)&battlePokemon->defense);
- SetMonData(&gPlayerParty[a], MON_DATA_SPD, (u8 *)&battlePokemon->speed);
- SetMonData(&gPlayerParty[a], MON_DATA_SPATK, (u8 *)&battlePokemon->spAttack);
- SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, (u8 *)&battlePokemon->spDefense);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, &battlePokemon->personality);
+ SetMonData(&gPlayerParty[a], MON_DATA_STATUS, &battlePokemon->status1);
+ SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, &battlePokemon->level);
+ SetMonData(&gPlayerParty[a], MON_DATA_HP, &battlePokemon->hp);
+ SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, &battlePokemon->maxHP);
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK, &battlePokemon->attack);
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF, &battlePokemon->defense);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED, &battlePokemon->speed);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &battlePokemon->spAttack);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, &battlePokemon->spDefense);
}
break;
case 1:
@@ -2124,8 +2120,8 @@ void dp01_setattr_by_ch1_for_player_pokemon(u8 a)
case 3:
for (i = 0; i < 4; i++)
{
- SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, (u8 *)&moveData->moves[i]);
- SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, (u8 *)&moveData->pp[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, &moveData->moves[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, &moveData->pp[i]);
}
SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &moveData->ppBonuses);
break;
@@ -2164,7 +2160,7 @@ void dp01_setattr_by_ch1_for_player_pokemon(u8 a)
SetMonData(&gPlayerParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]);
break;
case 22:
- SetMonData(&gPlayerParty[a], MON_DATA_SPD_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]);
break;
case 23:
SetMonData(&gPlayerParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]);
@@ -2194,7 +2190,7 @@ void dp01_setattr_by_ch1_for_player_pokemon(u8 a)
SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]);
SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gPlayerParty[a], MON_DATA_SPD_IV, &gBattleBufferA[gActiveBank][6]);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]);
SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]);
SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]);
break;
@@ -2208,7 +2204,7 @@ void dp01_setattr_by_ch1_for_player_pokemon(u8 a)
SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]);
break;
case 35:
- SetMonData(&gPlayerParty[a], MON_DATA_SPD_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]);
break;
case 36:
SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]);
@@ -2241,7 +2237,7 @@ void dp01_setattr_by_ch1_for_player_pokemon(u8 a)
SetMonData(&gPlayerParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]);
break;
case 46:
- SetMonData(&gPlayerParty[a], MON_DATA_SPD, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]);
break;
case 47:
SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]);
@@ -2288,11 +2284,11 @@ void dp01_setattr_by_ch1_for_player_pokemon(u8 a)
void PlayerHandlecmd3(void)
{
- u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
u8 i;
+ u8 *dst;
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ MEMSET_ALT(&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][3 + i],
+ gBattleBufferA[gActiveBank][2], i, dst);
PlayerBufferExecCompleted();
}
@@ -2328,14 +2324,14 @@ void sub_802F934(u8 bank, u8 b)
sub_8077ABC(bank, 2),
sub_8077F68(bank),
sub_8079E90(bank));
- gSprites[gUnknown_0300434C[bank]].data1 = gObjectBankIDs[bank];
- gSprites[gObjectBankIDs[bank]].data0 = bank;
- gSprites[gObjectBankIDs[bank]].data2 = species;
+ gSprites[gUnknown_0300434C[bank]].data[1] = gObjectBankIDs[bank];
+ gSprites[gObjectBankIDs[bank]].data[0] = bank;
+ gSprites[gObjectBankIDs[bank]].data[2] = species;
gSprites[gObjectBankIDs[bank]].oam.paletteNum = bank;
StartSpriteAnim(&gSprites[gObjectBankIDs[bank]], gBattleMonForms[bank]);
gSprites[gObjectBankIDs[bank]].invisible = TRUE;
gSprites[gObjectBankIDs[bank]].callback = SpriteCallbackDummy;
- gSprites[gUnknown_0300434C[bank]].data0 = sub_8046400(0, 0xFF);
+ gSprites[gUnknown_0300434C[bank]].data[0] = sub_8046400(0, 0xFF);
}
void PlayerHandleReturnPokeToBall(void)
@@ -2397,7 +2393,7 @@ void PlayerHandleTrainerThrow(void)
sub_8079E90(gActiveBank));
gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = gActiveBank;
gSprites[gObjectBankIDs[gActiveBank]].pos2.x = 240;
- gSprites[gObjectBankIDs[gActiveBank]].data0 = -2;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = -2;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80313A0;
gBattleBankFunc[gActiveBank] = sub_802D204;
}
@@ -2413,7 +2409,7 @@ void PlayerHandleTrainerSlide(void)
30);
gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = gActiveBank;
gSprites[gObjectBankIDs[gActiveBank]].pos2.x = -96;
- gSprites[gObjectBankIDs[gActiveBank]].data0 = 2;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = 2;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80313A0;
gBattleBankFunc[gActiveBank] = sub_802D23C;
}
@@ -2421,11 +2417,11 @@ void PlayerHandleTrainerSlide(void)
void PlayerHandleTrainerSlideBack(void)
{
oamt_add_pos2_onto_pos1(&gSprites[gObjectBankIDs[gActiveBank]]);
- gSprites[gObjectBankIDs[gActiveBank]].data0 = 50;
- gSprites[gObjectBankIDs[gActiveBank]].data2 = -40;
- gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = 50;
+ gSprites[gObjectBankIDs[gActiveBank]].data[2] = -40;
+ gSprites[gObjectBankIDs[gActiveBank]].data[4] = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
+ StoreSpriteCallbackInData(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], 1);
gBattleBankFunc[gActiveBank] = sub_802D274;
}
@@ -2445,8 +2441,8 @@ void PlayerHandlecmd10(void)
ewram17810[gActiveBank].unk4 = 0;
sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
PlaySE12WithPanning(SE_POKE_DEAD, -64);
- gSprites[gObjectBankIDs[gActiveBank]].data1 = 0;
- gSprites[gObjectBankIDs[gActiveBank]].data2 = 5;
+ gSprites[gObjectBankIDs[gActiveBank]].data[1] = 0;
+ gSprites[gObjectBankIDs[gActiveBank]].data[2] = 5;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80105EC;
gBattleBankFunc[gActiveBank] = sub_802DE10;
}
@@ -2590,7 +2586,7 @@ void PlayerHandlecmd18(void)
gBattleBankFunc[gActiveBank] = sub_802C098;
- InitWindow(&gUnknown_03004210, gUnknown_08400CF3, 400, 18, 35);
+ InitWindow(&gUnknown_03004210, BattleText_MenuOptions, 400, 18, 35);
sub_8002F44(&gUnknown_03004210);
sub_814A5C0(0, 0xFFFF, 12, 11679, 0);
@@ -2599,7 +2595,7 @@ void PlayerHandlecmd18(void)
sub_802E3E4(gActionSelectionCursor[gActiveBank], 0);
- StrCpyDecodeToDisplayedStringBattle((u8 *) gUnknown_08400CA8);
+ StrCpyDecodeToDisplayedStringBattle(BattleText_OtherMenu);
InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_803037C_TILE_DATA_OFFSET, 2, 35);
sub_8002F44(&gUnknown_03004210);
}
@@ -2624,7 +2620,7 @@ void sub_80304A8(void)
sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0);
if (gBattleBufferA[gActiveBank][2] != 1)
{
- InitWindow(&gUnknown_03004210, gUnknown_08400D38, 656, 23, 55);
+ InitWindow(&gUnknown_03004210, BattleText_PP, 656, 23, 55);
sub_8002F44(&gUnknown_03004210);
}
sub_802E220();
@@ -2648,9 +2644,9 @@ void PlayerHandlecmd22(void)
gUnknown_0300434C[gActiveBank] = CreateTask(TaskDummy, 0xFF);
gTasks[gUnknown_0300434C[gActiveBank]].data[0] = gBattleBufferA[gActiveBank][1] & 0xF;
- ewram[0x16054] = gBattleBufferA[gActiveBank][1] >> 4;
- ewram[0x1609D] = gBattleBufferA[gActiveBank][2];
- ewram[0x160C0] = gBattleBufferA[gActiveBank][3];
+ ewram16054 = gBattleBufferA[gActiveBank][1] >> 4;
+ EWRAM_1609D = gBattleBufferA[gActiveBank][2];
+ ewram160C0 = gBattleBufferA[gActiveBank][3];
for (i = 0; i < 3; i++)
gUnknown_02038470[i] = gBattleBufferA[gActiveBank][4 + i];
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
@@ -2841,7 +2837,7 @@ void PlayerHandleHitAnimation(void)
else
{
gDoingBattleAnim = 1;
- gSprites[gObjectBankIDs[gActiveBank]].data1 = 0;
+ gSprites[gObjectBankIDs[gActiveBank]].data[1] = 0;
sub_8047858(gActiveBank);
gBattleBankFunc[gActiveBank] = bx_blink_t1;
}
@@ -2891,12 +2887,12 @@ void PlayerHandleTrainerBallThrow(void)
u8 taskId;
oamt_add_pos2_onto_pos1(&gSprites[gObjectBankIDs[gActiveBank]]);
- gSprites[gObjectBankIDs[gActiveBank]].data0 = 50;
- gSprites[gObjectBankIDs[gActiveBank]].data2 = -40;
- gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = 50;
+ gSprites[gObjectBankIDs[gActiveBank]].data[2] = -40;
+ gSprites[gObjectBankIDs[gActiveBank]].data[4] = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- gSprites[gObjectBankIDs[gActiveBank]].data5 = gActiveBank;
- StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
+ gSprites[gObjectBankIDs[gActiveBank]].data[5] = gActiveBank;
+ StoreSpriteCallbackInData(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], 1);
paletteNum = AllocSpritePalette(0xD6F8);
LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2.playerGender].data, 0x100 + paletteNum * 16, 32);
@@ -2911,7 +2907,7 @@ void PlayerHandleTrainerBallThrow(void)
void sub_8030E38(struct Sprite *sprite)
{
- u8 r4 = sprite->data5;
+ u8 r4 = sprite->data[5];
FreeSpriteOamMatrix(sprite);
FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum));
diff --git a/src/battle/battle_controller_safari.c b/src/battle/battle_controller_safari.c
index e05578c31..6f6286945 100644
--- a/src/battle/battle_controller_safari.c
+++ b/src/battle/battle_controller_safari.c
@@ -8,18 +8,19 @@
#include "menu_cursor.h"
#include "palette.h"
#include "rom3.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "text.h"
#include "util.h"
+#include "ewram.h"
extern struct Window gUnknown_03004210;
extern u8 gDisplayedStringBattle[];
extern u8 gActionSelectionCursor[];
-extern const u8 gUnknown_08400CBB[];
+extern const u8 BattleText_PlayerMenu[];
extern u8 gActiveBank;
-extern const u8 gUnknown_08400D15[];
+extern const u8 BattleText_MenuOptionsSafari[];
extern void *gBattleBankFunc[];
extern u16 gUnknown_030042A0;
@@ -30,7 +31,7 @@ extern u8 gObjectBankIDs[];
extern struct SpriteTemplate gUnknown_02024E8C;
extern u16 gBattleTypeFlags;
extern u32 gBattleExecBuffer;
-extern u16 gScriptItemId;
+extern u16 gSpecialVar_ItemId;
extern MainCallback gPreBattleCallback1;
extern u8 gBankInMenu;
extern u8 gHealthboxIDs[];
@@ -314,7 +315,7 @@ void sub_812B758(void)
{
if (gMain.callback2 == sub_800F808 && !gPaletteFade.active)
{
- Emitcmd35(1, gScriptItemId);
+ Emitcmd35(1, gSpecialVar_ItemId);
SafariBufferExecCompleted();
}
}
@@ -393,7 +394,7 @@ void SafariHandleTrainerThrow(void)
30);
gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = gActiveBank;
gSprites[gObjectBankIDs[gActiveBank]].pos2.x = 240;
- gSprites[gObjectBankIDs[gActiveBank]].data0 = -2;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = -2;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80313A0;
gBattleBankFunc[gActiveBank] = sub_812B65C;
}
@@ -475,7 +476,7 @@ void SafariHandlecmd18(void)
FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 35, 16, 36);
gBattleBankFunc[gActiveBank] = bx_battle_menu_t6_2;
- InitWindow(&gUnknown_03004210, gUnknown_08400D15, 400, 18, 35);
+ InitWindow(&gUnknown_03004210, BattleText_MenuOptionsSafari, 400, 18, 35);
sub_8002F44(&gUnknown_03004210);
sub_814A5C0(0, 0xFFFF, 12, 11679, 0);
@@ -483,7 +484,7 @@ void SafariHandlecmd18(void)
nullsub_8(i);
sub_802E3E4(gActionSelectionCursor[gActiveBank], 0);
- StrCpyDecodeToDisplayedStringBattle((u8 *) gUnknown_08400CBB);
+ StrCpyDecodeToDisplayedStringBattle(BattleText_PlayerMenu);
InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_812BB10_TILE_DATA_OFFSET, 2, 35);
sub_8002F44(&gUnknown_03004210);
diff --git a/src/battle/battle_controller_wally.c b/src/battle/battle_controller_wally.c
index bf6ef0892..d81c43381 100644
--- a/src/battle/battle_controller_wally.c
+++ b/src/battle/battle_controller_wally.c
@@ -9,7 +9,7 @@
#include "palette.h"
#include "pokemon.h"
#include "rom3.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "item_use.h"
@@ -17,6 +17,7 @@
#include "task.h"
#include "text.h"
#include "util.h"
+#include "ewram.h"
//Possibly PokemonSubstruct1
struct UnknownStruct3
@@ -56,8 +57,8 @@ extern struct Window gUnknown_03004210;
extern u16 gUnknown_030042A0;
extern u16 gUnknown_030042A4;
extern u8 gUnknown_0300434C[];
-extern const u8 gUnknown_08400CCC[];
-extern const u8 gUnknown_08400CF3[];
+extern const u8 BattleText_WallyMenu[];
+extern const u8 BattleText_MenuOptions[];
// TODO: include rom3.h when my other PR gets merged
extern void Emitcmd33(u8, u8, u16);
@@ -89,7 +90,7 @@ extern void sub_80E43C0();
extern void oamt_add_pos2_onto_pos1();
extern void sub_8078B34(struct Sprite *);
extern void sub_8030E38(struct Sprite *);
-extern void StoreSpriteCallbackInData6();
+extern void StoreSpriteCallbackInData();
extern u8 sub_8046400();
extern u8 sub_8077ABC();
extern u8 sub_8077F68();
@@ -239,10 +240,10 @@ void unref_sub_8137220(void)
void SetBankFuncToWallyBufferRunCommand(void)
{
gBattleBankFunc[gActiveBank] = WallyBufferRunCommand;
- ewram[0x160A8] = 0;
- ewram[0x160A9] = 0;
- ewram[0x160AA] = 0;
- ewram[0x160AB] = 0;
+ ewram160A8 = 0;
+ ewram160A9 = 0;
+ ewram160AA = 0;
+ ewram160AB = 0;
}
void WallyBufferRunCommand(void)
@@ -260,59 +261,59 @@ void sub_81372BC(void)
{
u8 r4;
- switch (ewram[0x160A8])
+ switch (ewram160A8)
{
case 0:
- ewram[0x160AA] = 64;
- ewram[0x160A8]++;
+ ewram160AA = 64;
+ ewram160A8++;
// fall through
case 1:
- r4 = --ewram[0x160AA];
+ r4 = --ewram160AA;
if (r4 == 0)
{
PlaySE(SE_SELECT);
Emitcmd33(1, 0, 0);
WallyBufferExecCompleted();
- ewram[0x160A8]++;
- ewram[0x160A9] = r4;
- ewram[0x160AA] = 64;
+ ewram160A8++;
+ ewram160A9 = r4;
+ ewram160AA = 64;
}
break;
case 2:
- r4 = --ewram[0x160AA];
+ r4 = --ewram160AA;
if (r4 == 0)
{
PlaySE(SE_SELECT);
Emitcmd33(1, 0, 0);
WallyBufferExecCompleted();
- ewram[0x160A8]++;
- ewram[0x160A9] = r4;
- ewram[0x160AA] = 64;
+ ewram160A8++;
+ ewram160A9 = r4;
+ ewram160AA = 64;
}
break;
case 3:
- r4 = --ewram[0x160AA];
+ r4 = --ewram160AA;
if (r4 == 0)
{
Emitcmd33(1, 9, 0);
WallyBufferExecCompleted();
- ewram[0x160A8]++;
- ewram[0x160A9] = r4;
- ewram[0x160AA] = 64;
+ ewram160A8++;
+ ewram160A9 = r4;
+ ewram160AA = 64;
}
break;
case 4:
- if (--ewram[0x160AA] == 0)
+ if (--ewram160AA == 0)
{
PlaySE(SE_SELECT);
nullsub_8(0);
sub_802E3E4(1, 0);
- ewram[0x160AA] = 64;
- ewram[0x160A8]++;
+ ewram160AA = 64;
+ ewram160A8++;
}
break;
case 5:
- if (--ewram[0x160AA] == 0)
+ if (--ewram160AA == 0)
{
PlaySE(SE_SELECT);
DestroyMenuCursor();
@@ -366,7 +367,7 @@ void sub_81374FC(void)
if (gMain.callback2 == sub_800F808
&& !gPaletteFade.active)
{
- Emitcmd35(1, gScriptItemId);
+ Emitcmd35(1, gSpecialVar_ItemId);
WallyBufferExecCompleted();
}
}
@@ -438,18 +439,18 @@ void bx_blink_t5(void)
{
u8 spriteId = gObjectBankIDs[gActiveBank];
- if (gSprites[spriteId].data1 == 32)
+ if (gSprites[spriteId].data[1] == 32)
{
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
gSprites[spriteId].invisible = FALSE;
gDoingBattleAnim = FALSE;
WallyBufferExecCompleted();
}
else
{
- if (((u16)gSprites[spriteId].data1 % 4) == 0)
+ if (((u16)gSprites[spriteId].data[1] % 4) == 0)
gSprites[spriteId].invisible ^= 1;
- gSprites[spriteId].data1++;
+ gSprites[spriteId].data[1]++;
}
}
@@ -550,7 +551,7 @@ u32 sub_8137A84(u8 a, u8 *buffer)
battlePokemon.hpIV = GetMonData(&gPlayerParty[a], MON_DATA_HP_IV);
battlePokemon.attackIV = GetMonData(&gPlayerParty[a], MON_DATA_ATK_IV);
battlePokemon.defenseIV = GetMonData(&gPlayerParty[a], MON_DATA_DEF_IV);
- battlePokemon.speedIV = GetMonData(&gPlayerParty[a], MON_DATA_SPD_IV);
+ battlePokemon.speedIV = GetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV);
battlePokemon.spAttackIV = GetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV);
battlePokemon.spDefenseIV = GetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV);
battlePokemon.personality = GetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY);
@@ -560,7 +561,7 @@ u32 sub_8137A84(u8 a, u8 *buffer)
battlePokemon.maxHP = GetMonData(&gPlayerParty[a], MON_DATA_MAX_HP);
battlePokemon.attack = GetMonData(&gPlayerParty[a], MON_DATA_ATK);
battlePokemon.defense = GetMonData(&gPlayerParty[a], MON_DATA_DEF);
- battlePokemon.speed = GetMonData(&gPlayerParty[a], MON_DATA_SPD);
+ battlePokemon.speed = GetMonData(&gPlayerParty[a], MON_DATA_SPEED);
battlePokemon.spAttack = GetMonData(&gPlayerParty[a], MON_DATA_SPATK);
battlePokemon.spDefense = GetMonData(&gPlayerParty[a], MON_DATA_SPDEF);
battlePokemon.isEgg = GetMonData(&gPlayerParty[a], MON_DATA_IS_EGG);
@@ -569,9 +570,7 @@ u32 sub_8137A84(u8 a, u8 *buffer)
GetMonData(&gPlayerParty[a], MON_DATA_NICKNAME, nickname);
StringCopy10(battlePokemon.nickname, nickname);
GetMonData(&gPlayerParty[a], MON_DATA_OT_NAME, battlePokemon.otName);
- src = (u8 *)&battlePokemon;
- for (size = 0; size < sizeof(battlePokemon); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&battlePokemon, buffer, sizeof(battlePokemon), size, src);
break;
case 1:
data16 = GetMonData(&gPlayerParty[a], MON_DATA_SPECIES);
@@ -592,9 +591,7 @@ u32 sub_8137A84(u8 a, u8 *buffer)
moveData.pp[size] = GetMonData(&gPlayerParty[a], MON_DATA_PP1 + size);
}
moveData.ppBonuses = GetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES);
- src = (u8 *)&moveData;
- for (size = 0; size < sizeof(moveData); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&moveData, buffer, sizeof(moveData), size, src);
break;
case 4:
case 5:
@@ -645,7 +642,7 @@ u32 sub_8137A84(u8 a, u8 *buffer)
size = 1;
break;
case 22:
- buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_SPD_EV);
+ buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_SPEED_EV);
size = 1;
break;
case 23:
@@ -684,7 +681,7 @@ u32 sub_8137A84(u8 a, u8 *buffer)
buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_HP_IV);
buffer[1] = GetMonData(&gPlayerParty[a], MON_DATA_ATK_IV);
buffer[2] = GetMonData(&gPlayerParty[a], MON_DATA_DEF_IV);
- buffer[3] = GetMonData(&gPlayerParty[a], MON_DATA_SPD_IV);
+ buffer[3] = GetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV);
buffer[4] = GetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV);
buffer[5] = GetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV);
size = 6;
@@ -702,7 +699,7 @@ u32 sub_8137A84(u8 a, u8 *buffer)
size = 1;
break;
case 35:
- buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_SPD_IV);
+ buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV);
size = 1;
break;
case 36:
@@ -764,7 +761,7 @@ u32 sub_8137A84(u8 a, u8 *buffer)
size = 2;
break;
case 46:
- data16 = GetMonData(&gPlayerParty[a], MON_DATA_SPD);
+ data16 = GetMonData(&gPlayerParty[a], MON_DATA_SPEED);
buffer[0] = data16;
buffer[1] = data16 >> 8;
size = 2;
@@ -868,38 +865,38 @@ void sub_8138294(u8 a)
{
u8 iv;
- SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, (u8 *)&battlePokemon->species);
- SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, (u8 *)&battlePokemon->item);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, &battlePokemon->species);
+ SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, &battlePokemon->item);
for (i = 0; i < 4; i++)
{
- SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, (u8 *)&battlePokemon->moves[i]);
- SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, (u8 *)&battlePokemon->pp[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, &battlePokemon->moves[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, &battlePokemon->pp[i]);
}
- SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, (u8 *)&battlePokemon->ppBonuses);
- SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, (u8 *)&battlePokemon->friendship);
- SetMonData(&gPlayerParty[a], MON_DATA_EXP, (u8 *)&battlePokemon->experience);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &battlePokemon->ppBonuses);
+ SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, &battlePokemon->friendship);
+ SetMonData(&gPlayerParty[a], MON_DATA_EXP, &battlePokemon->experience);
iv = battlePokemon->hpIV;
- SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &iv);
iv = battlePokemon->attackIV;
- SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &iv);
iv = battlePokemon->defenseIV;
- SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &iv);
iv = battlePokemon->speedIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPD_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &iv);
iv = battlePokemon->spAttackIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &iv);
iv = battlePokemon->spDefenseIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, (u8 *)&iv);
- SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, (u8 *)&battlePokemon->personality);
- SetMonData(&gPlayerParty[a], MON_DATA_STATUS, (u8 *)&battlePokemon->status1);
- SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, (u8 *)&battlePokemon->level);
- SetMonData(&gPlayerParty[a], MON_DATA_HP, (u8 *)&battlePokemon->hp);
- SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, (u8 *)&battlePokemon->maxHP);
- SetMonData(&gPlayerParty[a], MON_DATA_ATK, (u8 *)&battlePokemon->attack);
- SetMonData(&gPlayerParty[a], MON_DATA_DEF, (u8 *)&battlePokemon->defense);
- SetMonData(&gPlayerParty[a], MON_DATA_SPD, (u8 *)&battlePokemon->speed);
- SetMonData(&gPlayerParty[a], MON_DATA_SPATK, (u8 *)&battlePokemon->spAttack);
- SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, (u8 *)&battlePokemon->spDefense);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, &battlePokemon->personality);
+ SetMonData(&gPlayerParty[a], MON_DATA_STATUS, &battlePokemon->status1);
+ SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, &battlePokemon->level);
+ SetMonData(&gPlayerParty[a], MON_DATA_HP, &battlePokemon->hp);
+ SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, &battlePokemon->maxHP);
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK, &battlePokemon->attack);
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF, &battlePokemon->defense);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED, &battlePokemon->speed);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &battlePokemon->spAttack);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, &battlePokemon->spDefense);
}
break;
case 1:
@@ -911,8 +908,8 @@ void sub_8138294(u8 a)
case 3:
for (i = 0; i < 4; i++)
{
- SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, (u8 *)&moveData->moves[i]);
- SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, (u8 *)&moveData->pp[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, &moveData->moves[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, &moveData->pp[i]);
}
SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &moveData->ppBonuses);
break;
@@ -951,7 +948,7 @@ void sub_8138294(u8 a)
SetMonData(&gPlayerParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]);
break;
case 22:
- SetMonData(&gPlayerParty[a], MON_DATA_SPD_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]);
break;
case 23:
SetMonData(&gPlayerParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]);
@@ -981,7 +978,7 @@ void sub_8138294(u8 a)
SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]);
SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gPlayerParty[a], MON_DATA_SPD_IV, &gBattleBufferA[gActiveBank][6]);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]);
SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]);
SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]);
break;
@@ -995,7 +992,7 @@ void sub_8138294(u8 a)
SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]);
break;
case 35:
- SetMonData(&gPlayerParty[a], MON_DATA_SPD_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]);
break;
case 36:
SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]);
@@ -1028,7 +1025,7 @@ void sub_8138294(u8 a)
SetMonData(&gPlayerParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]);
break;
case 46:
- SetMonData(&gPlayerParty[a], MON_DATA_SPD, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]);
break;
case 47:
SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]);
@@ -1114,7 +1111,7 @@ void WallyHandleTrainerThrow(void)
30);
gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = gActiveBank;
gSprites[gObjectBankIDs[gActiveBank]].pos2.x = 240;
- gSprites[gObjectBankIDs[gActiveBank]].data0 = -2;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = -2;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80313A0;
gBattleBankFunc[gActiveBank] = sub_813741C;
}
@@ -1129,7 +1126,7 @@ void WallyHandleTrainerSlide(void)
30);
gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = gActiveBank;
gSprites[gObjectBankIDs[gActiveBank]].pos2.x = -96;
- gSprites[gObjectBankIDs[gActiveBank]].data0 = 2;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = 2;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80313A0;
gBattleBankFunc[gActiveBank] = sub_8137908;
}
@@ -1272,13 +1269,13 @@ void WallyHandlecmd18(void)
FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 15, 27, 18);
FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 35, 16, 36);
gBattleBankFunc[gActiveBank] = sub_81372BC;
- InitWindow(&gUnknown_03004210, gUnknown_08400CF3, 400, 18, 35);
+ InitWindow(&gUnknown_03004210, BattleText_MenuOptions, 400, 18, 35);
sub_8002F44(&gUnknown_03004210);
sub_814A5C0(0, 0xFFFF, 12, 0x2D9F, 0);
for (i = 0; i < 4; i++)
nullsub_8(i);
sub_802E3E4(0, 0);
- StrCpyDecodeToDisplayedStringBattle(gUnknown_08400CCC);
+ StrCpyDecodeToDisplayedStringBattle(BattleText_WallyMenu);
#ifdef ENGLISH
InitWindow(&gUnknown_03004210, gDisplayedStringBattle, 440, 2, 35);
#else
@@ -1294,16 +1291,16 @@ void WallyHandlecmd19(void)
void WallyHandlecmd20(void)
{
- switch (ewram[0x160A9])
+ switch (ewram160A9)
{
case 0:
sub_80304A8();
- ewram[0x160A9]++;
- ewram[0x160AB] = 80;
+ ewram160A9++;
+ ewram160AB = 80;
// fall through
case 1:
- ewram[0x160AB]--;
- if (ewram[0x160AB] == 0)
+ ewram160AB--;
+ if (ewram160AB == 0)
{
DestroyMenuCursor();
PlaySE(SE_SELECT);
@@ -1443,7 +1440,7 @@ void WallyHandleHitAnimation(void)
else
{
gDoingBattleAnim = 1;
- gSprites[gObjectBankIDs[gActiveBank]].data1 = 0;
+ gSprites[gObjectBankIDs[gActiveBank]].data[1] = 0;
sub_8047858(gActiveBank);
gBattleBankFunc[gActiveBank] = bx_blink_t5;
}
@@ -1485,12 +1482,12 @@ void WallyHandleTrainerBallThrow(void)
u8 taskId;
oamt_add_pos2_onto_pos1(&gSprites[gObjectBankIDs[gActiveBank]]);
- gSprites[gObjectBankIDs[gActiveBank]].data0 = 50;
- gSprites[gObjectBankIDs[gActiveBank]].data2 = -40;
- gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
+ gSprites[gObjectBankIDs[gActiveBank]].data[0] = 50;
+ gSprites[gObjectBankIDs[gActiveBank]].data[2] = -40;
+ gSprites[gObjectBankIDs[gActiveBank]].data[4] = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- gSprites[gObjectBankIDs[gActiveBank]].data5 = gActiveBank;
- StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
+ gSprites[gObjectBankIDs[gActiveBank]].data[5] = gActiveBank;
+ StoreSpriteCallbackInData(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], 1);
paletteNum = AllocSpritePalette(0xD6F8);
LoadCompressedPalette(gTrainerBackPicPaletteTable[2].data, 0x100 + paletteNum * 16, 32);
@@ -1517,14 +1514,14 @@ void sub_81398BC(u8 bank)
sub_8077ABC(bank, 2),
sub_8077F68(bank),
sub_8079E90(bank));
- gSprites[gUnknown_0300434C[bank]].data1 = gObjectBankIDs[bank];
- gSprites[gObjectBankIDs[bank]].data0 = bank;
- gSprites[gObjectBankIDs[bank]].data2 = species;
+ gSprites[gUnknown_0300434C[bank]].data[1] = gObjectBankIDs[bank];
+ gSprites[gObjectBankIDs[bank]].data[0] = bank;
+ gSprites[gObjectBankIDs[bank]].data[2] = species;
gSprites[gObjectBankIDs[bank]].oam.paletteNum = bank;
StartSpriteAnim(&gSprites[gObjectBankIDs[bank]], gBattleMonForms[bank]);
gSprites[gObjectBankIDs[bank]].invisible = TRUE;
gSprites[gObjectBankIDs[bank]].callback = SpriteCallbackDummy;
- gSprites[gUnknown_0300434C[bank]].data0 = sub_8046400(0, 0xFF);
+ gSprites[gUnknown_0300434C[bank]].data[0] = sub_8046400(0, 0xFF);
}
void sub_8139A2C(u8 taskId)
diff --git a/src/battle/battle_interface.c b/src/battle/battle_interface.c
index 8bfeedd4d..ea393277e 100644
--- a/src/battle/battle_interface.c
+++ b/src/battle/battle_interface.c
@@ -7,12 +7,13 @@
#include "pokemon.h"
#include "rom_8077ABC.h"
#include "safari_zone.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
#include "task.h"
#include "text.h"
+#include "ewram.h"
struct UnknownStruct5
{
@@ -28,12 +29,6 @@ struct UnknownStruct7
u8 filler0[0x180];
};
-extern u8 ewram[];
-#define ewram520 ((struct UnknownStruct7 *)(ewram + 0x00520))
-#define ewram16088 (*(u8 *) (ewram + 0x16088))
-#define ewram16089 (*(u8 *) (ewram + 0x16089))
-#define ewram17850 ((struct UnknownStruct5 *)(ewram + 0x17850))
-
extern u8 gDisplayedStringBattle[];
extern u8 gNoOfAllBanks;
extern u16 gBattlePartyID[];
@@ -444,7 +439,7 @@ u8 battle_make_oam_normal_battle(u8 a)
//_080439F2
gSprites[spriteId1].oam.affineParam = spriteId2;
- gSprites[spriteId2].data5 = spriteId1;
+ gSprites[spriteId2].data[5] = spriteId1;
gSprites[spriteId2].callback = sub_8043D5C;
}
//_08043A28
@@ -456,7 +451,7 @@ u8 battle_make_oam_normal_battle(u8 a)
spriteId2 = CreateSpriteAtEnd(&gSpriteTemplate_820A4EC[GetBankIdentity(a) / 2], 240, 160, 1);
gSprites[spriteId1].oam.affineParam = spriteId2;
- gSprites[spriteId2].data5 = spriteId1;
+ gSprites[spriteId2].data[5] = spriteId1;
gSprites[spriteId2].oam.tileNum += 32;
gSprites[spriteId2].callback = sub_8043D5C;
sp0 = 1;
@@ -468,7 +463,7 @@ u8 battle_make_oam_normal_battle(u8 a)
spriteId2 = CreateSpriteAtEnd(&gSpriteTemplate_820A51C[GetBankIdentity(a) / 2], 240, 160, 1);
gSprites[spriteId1].oam.affineParam = spriteId2;
- gSprites[spriteId2].data5 = spriteId1;
+ gSprites[spriteId2].data[5] = spriteId1;
gSprites[spriteId2].oam.tileNum += 32;
gSprites[spriteId2].callback = sub_8043D5C;
sp0 = 2;
@@ -482,14 +477,14 @@ u8 battle_make_oam_normal_battle(u8 a)
SetSubspriteTables(sprite, &gSubspriteTables_820A684[GetBankSide(a)]);
sprite->subspriteMode = 2;
sprite->oam.priority = 1;
- CpuCopy32(sub_8043CDC(1), (void *)(OBJ_VRAM0 + sprite->oam.tileNum * 32), 64);
+ CpuCopy32(sub_8043CDC(1), OBJ_VRAM0 + sprite->oam.tileNum * 32, 64);
- gSprites[spriteId1].data5 = spriteId3;
- gSprites[spriteId1].data6 = a;
+ gSprites[spriteId1].data[5] = spriteId3;
+ gSprites[spriteId1].data[6] = a;
gSprites[spriteId1].invisible = TRUE;
gSprites[spriteId2].invisible = TRUE;
- sprite->data5 = spriteId1;
- sprite->data6 = sp0;
+ sprite->data[5] = spriteId1;
+ sprite->data[6] = sp0;
sprite->invisible = TRUE;
return spriteId1;
@@ -504,7 +499,7 @@ u8 battle_make_oam_safari_battle(void)
gSprites[spriteId2].oam.shape = 0;
gSprites[spriteId2].oam.tileNum += 0x40;
gSprites[spriteId1].oam.affineParam = spriteId2;
- gSprites[spriteId2].data5 = spriteId1;
+ gSprites[spriteId2].data[5] = spriteId1;
gSprites[spriteId2].callback = sub_8043D5C;
return spriteId1;
}
@@ -516,9 +511,9 @@ static const void *sub_8043CDC(u8 a)
void sub_8043CEC(struct Sprite *sprite)
{
- u8 r5 = sprite->data5;
+ u8 r5 = sprite->data[5];
- switch (sprite->data6)
+ switch (sprite->data[6])
{
case 0:
sprite->pos1.x = gSprites[r5].pos1.x + 16;
@@ -540,7 +535,7 @@ void sub_8043CEC(struct Sprite *sprite)
static void sub_8043D5C(struct Sprite *sprite)
{
- u8 data5 = sprite->data5;
+ u8 data5 = sprite->data[5];
sprite->pos1.x = gSprites[data5].pos1.x + 64;
sprite->pos1.y = gSprites[data5].pos1.y;
@@ -560,14 +555,14 @@ void sub_8043D84(u8 a, u8 b, u32 c, u32 d, u32 e)
void sub_8043DB0(u8 a)
{
gSprites[a].invisible = TRUE;
- gSprites[gSprites[a].data5].invisible = TRUE;
+ gSprites[gSprites[a].data[5]].invisible = TRUE;
gSprites[gSprites[a].oam.affineParam].invisible = TRUE;
}
void sub_8043DFC(u8 a)
{
gSprites[a].invisible = FALSE;
- gSprites[gSprites[a].data5].invisible = FALSE;
+ gSprites[gSprites[a].data[5]].invisible = FALSE;
gSprites[gSprites[a].oam.affineParam].invisible = FALSE;
}
@@ -580,7 +575,7 @@ static void sub_8043E50(u8 spriteId, s16 x, s16 y)
void unref_sub_8043E70(u8 a)
{
DestroySprite(&gSprites[gSprites[a].oam.affineParam]);
- DestroySprite(&gSprites[gSprites[a].data5]);
+ DestroySprite(&gSprites[gSprites[a].data[5]]);
DestroySprite(&gSprites[a]);
}
@@ -600,7 +595,7 @@ void sub_8043EB4(u8 priority)
spriteId1 = gHealthboxIDs[i];
spriteId2 = gSprites[spriteId1].oam.affineParam;
- spriteId3 = gSprites[spriteId1].data5;
+ spriteId3 = gSprites[spriteId1].data[5];
gSprites[spriteId1].oam.priority = priority;
gSprites[spriteId2].oam.priority = priority;
gSprites[spriteId3].oam.priority = priority;
@@ -668,14 +663,14 @@ static void sub_8043FC0(u8 a, u8 b)
memcpy(str, gUnknown_0820A81C, sizeof(str));
if (!IsDoubleBattle())
{
- if (GetBankSide(gSprites[a].data6) == 0)
+ if (GetBankSide(gSprites[a].data[6]) == 0)
r7 = gUnknown_0820A804;
else
r7 = gUnknown_0820A80C;
}
else
{
- if (GetBankSide(gSprites[a].data6) == 0)
+ if (GetBankSide(gSprites[a].data[6]) == 0)
r7 = gUnknown_0820A814;
else
r7 = gUnknown_0820A80C;
@@ -705,11 +700,11 @@ static void sub_8043FC0(u8 a, u8 b)
*(ptr++) = 0x13;
*(ptr++) = 0xF;
*(ptr++) = EOS;
- sub_80034D4((u8 *)0x02000000, str);
+ sub_80034D4(ewram0_9(0), str);
two = 2;
for (i = 0; i < two; i++)
- CpuCopy32((void *)(0x02000020 + i * 64), r7[i] + gSprites[a].oam.tileNum * 32, 32);
+ CpuCopy32((void *)(ewram0_9(1) + i * 64), r7[i] + gSprites[a].oam.tileNum * 32, 32);
}
#ifdef NONMATCHING
@@ -723,7 +718,7 @@ void sub_80440EC(u8 a, s16 b, u8 c)
// TODO: make this a local variable
memcpy(str, gUnknown_0820A864, sizeof(str));
- foo = gSprites[a].data6;
+ foo = gSprites[a].data[6];
if (IsDoubleBattle() == TRUE || GetBankSide(foo) == 1)
{
@@ -735,7 +730,7 @@ void sub_80440EC(u8 a, s16 b, u8 c)
ptr = str + 6;
if (c == 0)
{
- if (GetBankSide(gSprites[a].data6) == 0)
+ if (GetBankSide(gSprites[a].data[6]) == 0)
r4 = gUnknown_0820A83C;
else
r4 = gUnknown_0820A848;
@@ -743,24 +738,24 @@ void sub_80440EC(u8 a, s16 b, u8 c)
ptr = sub_8003504(ptr, b, 0x13, 1);
*(ptr++) = 0xBA;
*(ptr++) = 0xFF;
- sub_80034D4((u8 *)0x02000000, str);
+ sub_80034D4(ewram0_9(0), str);
}
else
{
- if (GetBankSide(gSprites[a].data6) == 0)
+ if (GetBankSide(gSprites[a].data[6]) == 0)
r4 = gUnknown_0820A854;
else
r4 = gUnknown_0820A85C;
c = 2;
sub_8003504(ptr, b, 0xF, 1);
- sub_80034D4((u8 *)0x02000000, str);
+ sub_80034D4(ewram0_9(0), str);
}
//asm(""::"r"(a));
//_080441B6
for (i = 0; i < c; i++) // _080440BC
{
void *temp = r4[i] + gSprites[a].oam.tileNum * 32;
- CpuCopy32((void *)(0x02000020 + i * 0x40), temp, 0x20);
+ CpuCopy32((void *)(ewram0_9(1) + i * 0x40), temp, 0x20);
}
}
#else
@@ -878,7 +873,7 @@ _080441B6:\n\
lsls r0, 2\n\
adds r6, r0, r1\n\
adds r7, r4, 0\n\
- ldr r5, _08044208 @ =0x02000020\n\
+ ldr r5, _08044208 @ =gSharedMem + 0x20\n\
mov r4, r8\n\
_080441D6:\n\
ldrh r0, [r6, 0x4]\n\
@@ -904,7 +899,7 @@ _080441F0:\n\
_080441FC: .4byte gUnknown_0820A85C\n\
_08044200: .4byte gUnknown_0820A854\n\
_08044204: .4byte gSprites\n\
-_08044208: .4byte 0x02000020\n\
+_08044208: .4byte gSharedMem + 0x20\n\
_0804420C: .4byte 0x04000008\n\
.syntax divided\n");
}
@@ -921,7 +916,7 @@ static void sub_8044210(u8 a, s16 b, u8 c)
// TODO: make this a local variable
memcpy(str, gUnknown_0820A89C, sizeof(str));
- r4 = gSprites[a].data6;
+ r4 = gSprites[a].data[6];
if ((ewram17800[r4].unk0_4) == 0)
return;
ptr = str + 6;
@@ -940,14 +935,14 @@ static void sub_8044210(u8 a, s16 b, u8 c)
sub_8003504(ptr, b, 0xF, 1);
if (GetBankSide(r4) == 0)
{
- CpuCopy32(sub_8043CDC(0x74), (void *)(OBJ_VRAM0 + (gSprites[a].oam.tileNum + 0x34) * 32), 32);
+ CpuCopy32(sub_8043CDC(0x74), OBJ_VRAM0 + (gSprites[a].oam.tileNum + 0x34) * 32, 32);
}
}
- r4 = gSprites[a].data5;
- sub_80034D4((u8 *)0x02000000, str);
+ r4 = gSprites[a].data[5];
+ sub_80034D4(ewram0_9(0), str);
for (i = 0; i < r10; i++)
{
- CpuCopy32((void *)(0x02000020 + i * 0x40), r7[i] + gSprites[r4].oam.tileNum * 32, 0x20);
+ CpuCopy32((void *)(ewram0_9(1) + i * 0x40), r7[i] + gSprites[r4].oam.tileNum * 32, 0x20);
}
}
@@ -964,7 +959,7 @@ void sub_8044338(u8 a, struct Pokemon *pkmn)
// TODO: make this a local variable
memcpy(str, gUnknown_0820A864, sizeof(str));
- r6 = ewram520[GetBankIdentity(gSprites[a].data6)].filler0;
+ r6 = ewram520[GetBankIdentity(gSprites[a].data[6])].filler0;
r8 = 5;
nature = GetNature(pkmn);
StringCopy(str + 6, gNatureNames[nature]);
@@ -999,24 +994,24 @@ void sub_8044338(u8 a, struct Pokemon *pkmn)
r6 += 32;
}
//_08044486
- r5 = gSprites[a].data5;
- ConvertIntToDecimalStringN(str + 6, ewram[0x16089], 1, 2);
- ConvertIntToDecimalStringN(str + 9, ewram[0x16088], 1, 2);
+ r5 = gSprites[a].data[5];
+ ConvertIntToDecimalStringN(str + 6, ewram16089, 1, 2);
+ ConvertIntToDecimalStringN(str + 9, ewram16088, 1, 2);
str[5] = 0;
str[8] = 0xBA;
- sub_80034D4((u8 *)0x02000000, str);
+ sub_80034D4(ewram0_9(0), str);
for (r7 = 0; r7 < 5; r7++)
{
if (r7 <= 1)
{
int foo = (gSprites[r5].oam.tileNum + 2 + r7);
- CpuCopy32((u8 *)0x02000020 + r7 * 0x40, (u8 *)0x06010000 + foo * 32, 32);
+ CpuCopy32(ewram0_9(1) + r7 * 0x40, (u8 *)0x06010000 + foo * 32, 32);
}
else
{
int foo = (r7 + gSprites[r5].oam.tileNum);
- CpuCopy32((u8 *)0x02000020 + r7 * 0x40, (u8 *)0x060100C0 + foo * 32, 32);
+ CpuCopy32(ewram0_9(1) + r7 * 0x40, (u8 *)0x060100C0 + foo * 32, 32);
}
}
}
@@ -1054,7 +1049,7 @@ void sub_8044338(u8 a, struct Pokemon *pkmn)
lsls r1, r0, 1\n\
adds r1, r0\n\
lsls r1, 7\n\
- ldr r3, _080443D4 @ =0x02000520\n\
+ ldr r3, _080443D4 @ =gSharedMem + 0x520\n\
adds r6, r1, r3\n\
movs r0, 0x5\n\
mov r8, r0\n\
@@ -1099,7 +1094,7 @@ _080443C8:\n\
.align 2, 0\n\
_080443CC: .4byte gUnknown_0820A864\n\
_080443D0: .4byte gSprites\n\
-_080443D4: .4byte 0x02000520\n\
+_080443D4: .4byte gSharedMem + 0x520\n\
_080443D8: .4byte gNatureNames\n\
_080443DC:\n\
adds r0, r1, 0\n\
@@ -1198,7 +1193,7 @@ _08044486:\n\
ldrh r5, [r0, 0x38]\n\
lsls r5, 24\n\
lsrs r5, 24\n\
- ldr r4, _08044504 @ =0x02000000\n\
+ ldr r4, _08044504 @ =gSharedMem\n\
ldr r2, _08044508 @ =0x00016089\n\
adds r0, r4, r2\n\
ldrb r1, [r0]\n\
@@ -1227,7 +1222,7 @@ _08044486:\n\
adds r0, r5\n\
lsls r0, 2\n\
adds r5, r0, r6\n\
- ldr r4, _08044510 @ =0x02000020\n\
+ ldr r4, _08044510 @ =gSharedMem + 0x20\n\
_080444DA:\n\
cmp r7, 0x1\n\
bgt _08044514\n\
@@ -1247,10 +1242,10 @@ _080444DA:\n\
_080444F8: .4byte 0x04000008\n\
_080444FC: .4byte gSprites\n\
_08044500: .4byte 0x06010000\n\
-_08044504: .4byte 0x02000000\n\
+_08044504: .4byte gSharedMem\n\
_08044508: .4byte 0x00016089\n\
_0804450C: .4byte 0x00016088\n\
-_08044510: .4byte 0x02000020\n\
+_08044510: .4byte gSharedMem + 0x20\n\
_08044514:\n\
ldrh r1, [r5, 0x4]\n\
lsls r1, 22\n\
@@ -1307,9 +1302,9 @@ void sub_804454C(void)
if (r6 == 1)
{
- spriteId = gSprites[gHealthboxIDs[i]].data5;
+ spriteId = gSprites[gHealthboxIDs[i]].data[5];
- CpuFill32(0, (void *)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100);
+ CpuFill32(0, OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32, 0x100);
sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_HP), 0);
sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_MAX_HP), 1);
}
@@ -1317,7 +1312,7 @@ void sub_804454C(void)
{
draw_status_ailment_maybe(gHealthboxIDs[i]);
sub_8045A5C(gHealthboxIDs[i], &gPlayerParty[gBattlePartyID[i]], 5);
- CpuCopy32(sub_8043CDC(0x75), (void *)(OBJ_VRAM0 + 0x680 + gSprites[gHealthboxIDs[i]].oam.tileNum * 32), 32);
+ CpuCopy32(sub_8043CDC(0x75), OBJ_VRAM0 + 0x680 + gSprites[gHealthboxIDs[i]].oam.tileNum * 32, 32);
}
}
else
@@ -1330,9 +1325,9 @@ void sub_804454C(void)
}
else
{
- spriteId = gSprites[gHealthboxIDs[i]].data5;
+ spriteId = gSprites[gHealthboxIDs[i]].data[5];
- CpuFill32(0, (void *)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100);
+ CpuFill32(0, OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32, 0x100);
sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_HP), 0);
sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_MAX_HP), 1);
}
@@ -1345,7 +1340,7 @@ void sub_804454C(void)
sub_8045A5C(gHealthboxIDs[i], &gEnemyParty[gBattlePartyID[i]], 4);
}
}
- gSprites[gHealthboxIDs[i]].data7 ^= 1;
+ gSprites[gHealthboxIDs[i]].data[7] ^= 1;
}
}
}
@@ -1418,7 +1413,7 @@ u8 sub_8044804(u8 a, const struct BattleInterfaceStruct2 *b, u8 c, u8 d)
sp18 = CreateSprite(&gSpriteTemplate_820A7A4[r7], x, y, 10);
SetSubspriteTables(&gSprites[sp18], gSubspriteTables_820A6E4);
gSprites[sp18].pos2.x = r8;
- gSprites[sp18].data0 = r5;
+ gSprites[sp18].data[0] = r5;
if (r7 != 0)
{
gSprites[sp18].pos1.x -= 96;
@@ -1443,22 +1438,22 @@ u8 sub_8044804(u8 a, const struct BattleInterfaceStruct2 *b, u8 c, u8 d)
gSprites[sp[i]].pos2.y = 0;
}
//_080449BE
- gSprites[sp[i]].data0 = sp18;
+ gSprites[sp[i]].data[0] = sp18;
if (r7 == 0)
{
gSprites[sp[i]].pos1.x += 10 * i + 24;
- gSprites[sp[i]].data1 = i * 7 + 10;
+ gSprites[sp[i]].data[1] = i * 7 + 10;
gSprites[sp[i]].pos2.x = 120;
}
//_08044A18
else
{
gSprites[sp[i]].pos1.x -= 10 * (5 - i) + 24;
- gSprites[sp[i]].data1 = (6 - i) * 7 + 10;
+ gSprites[sp[i]].data[1] = (6 - i) * 7 + 10;
gSprites[sp[i]].pos2.x = -120;
}
//_08044A56
- gSprites[sp[i]].data2 = r7;
+ gSprites[sp[i]].data[2] = r7;
}
//_08044A76
if (GetBankSide(a) == 0)
@@ -1471,7 +1466,7 @@ u8 sub_8044804(u8 a, const struct BattleInterfaceStruct2 *b, u8 c, u8 d)
{
//_08044AE6
gSprites[sp[i]].oam.tileNum += 1;
- gSprites[sp[i]].data7 = 1;
+ gSprites[sp[i]].data[7] = 1;
// to _08044B52
}
else if (b[i].unk0 == 0)
@@ -1491,7 +1486,7 @@ u8 sub_8044804(u8 a, const struct BattleInterfaceStruct2 *b, u8 c, u8 d)
{
//_08044AE6
gSprites[sp[i]].oam.tileNum += 1;
- gSprites[sp[i]].data7 = 1;
+ gSprites[sp[i]].data[7] = 1;
// to _08044B52
}
else if (b[i].unk0 == 0)
@@ -1518,7 +1513,7 @@ u8 sub_8044804(u8 a, const struct BattleInterfaceStruct2 *b, u8 c, u8 d)
if (b[i].unk0 == 0xFFFF)
{
gSprites[sp[5 - i]].oam.tileNum += 1;
- gSprites[sp[5 - i]].data7 = 1;
+ gSprites[sp[5 - i]].data[7] = 1;
}
else if (b[i].unk0 == 0)
{
@@ -1534,7 +1529,7 @@ u8 sub_8044804(u8 a, const struct BattleInterfaceStruct2 *b, u8 c, u8 d)
if (i >= sp14)
{
gSprites[sp[5 - i]].oam.tileNum += 1;
- gSprites[sp[5 - i]].data7 = 1;
+ gSprites[sp[5 - i]].data[7] = 1;
}
else if (b[i].unk0 == 0)
{
@@ -2179,21 +2174,21 @@ void sub_8044CA0(u8 taskId)
{
if (GetBankSide(sp8) != 0)
{
- gSprites[sp[5 - i]].data1 = 7 * i;
- gSprites[sp[5 - i]].data3 = 0;
- gSprites[sp[5 - i]].data4 = 0;
+ gSprites[sp[5 - i]].data[1] = 7 * i;
+ gSprites[sp[5 - i]].data[3] = 0;
+ gSprites[sp[5 - i]].data[4] = 0;
gSprites[sp[5 - i]].callback = sub_8045110;
}
else
{
- gSprites[sp[i]].data1 = 7 * i;
- gSprites[sp[i]].data3 = 0;
- gSprites[sp[i]].data4 = 0;
+ gSprites[sp[i]].data[1] = 7 * i;
+ gSprites[sp[i]].data[3] = 0;
+ gSprites[sp[i]].data[4] = 0;
gSprites[sp[i]].callback = sub_8045110;
}
}
- gSprites[r10].data0 /= 2;
- gSprites[r10].data1 = 0;
+ gSprites[r10].data[0] /= 2;
+ gSprites[r10].data[1] = 0;
gSprites[r10].callback = sub_8045048;
SetSubspriteTables(&gSprites[r10], gSubspriteTables_820A6EC);
gTasks[taskId].func = sub_8044E74;
@@ -2277,17 +2272,17 @@ static void sub_8044F70(u8 taskId)
void sub_8045030(struct Sprite *sprite)
{
if (sprite->pos2.x != 0)
- sprite->pos2.x += sprite->data0;
+ sprite->pos2.x += sprite->data[0];
}
static void sub_8045048(struct Sprite *sprite)
{
- sprite->data1 += 32;
- if (sprite->data0 > 0)
- sprite->pos2.x += sprite->data1 >> 4;
+ sprite->data[1] += 32;
+ if (sprite->data[0] > 0)
+ sprite->pos2.x += sprite->data[1] >> 4;
else
- sprite->pos2.x -= sprite->data1 >> 4;
- sprite->data1 &= 0xF;
+ sprite->pos2.x -= sprite->data[1] >> 4;
+ sprite->data[1] &= 0xF;
}
void sub_804507C(struct Sprite *sprite)
@@ -2296,15 +2291,15 @@ void sub_804507C(struct Sprite *sprite)
u16 r2;
s8 pan;
- if (sprite->data1 > 0)
+ if (sprite->data[1] > 0)
{
- sprite->data1--;
+ sprite->data[1]--;
return;
}
- r3 = sprite->data2;
- r2 = sprite->data3;
+ r3 = sprite->data[2];
+ r2 = sprite->data[3];
r2 += 56;
- sprite->data3 = r2 & 0xFFF0;
+ sprite->data[3] = r2 & 0xFFF0;
if (r3 != 0)
{
sprite->pos2.x += r2 >> 4;
@@ -2322,7 +2317,7 @@ void sub_804507C(struct Sprite *sprite)
pan = 63;
if (r3 != 0)
pan = -64;
- if (sprite->data7 != 0)
+ if (sprite->data[7] != 0)
PlaySE2WithPanning(SE_TB_KARA, pan);
else
PlaySE1WithPanning(SE_TB_KON, pan);
@@ -2335,15 +2330,15 @@ static void sub_8045110(struct Sprite *sprite)
u8 r0;
u16 r2;
- if (sprite->data1 > 0)
+ if (sprite->data[1] > 0)
{
- sprite->data1--;
+ sprite->data[1]--;
return;
}
- r0 = sprite->data2;
- r2 = sprite->data3;
+ r0 = sprite->data[2];
+ r2 = sprite->data[3];
r2 += 56;
- sprite->data3 = r2 & 0xFFF0;
+ sprite->data[3] = r2 & 0xFFF0;
if (r0 != 0)
sprite->pos2.x += r2 >> 4;
else
@@ -2358,7 +2353,7 @@ static void sub_8045110(struct Sprite *sprite)
void sub_8045180(struct Sprite *sprite)
{
- u8 spriteId = sprite->data0;
+ u8 spriteId = sprite->data[0];
sprite->pos2.x = gSprites[spriteId].pos2.x;
sprite->pos2.y = gSprites[spriteId].pos2.y;
@@ -2414,7 +2409,7 @@ static void sub_80451A0(u8 a, struct Pokemon *pkmn)
ptr[1] = 0x13;
ptr[2] = 0x37;
ptr[3] = EOS;
- ptr = (u8 *)0x02000520 + GetBankIdentity(gSprites[a].data6) * 0x180;
+ ptr = ewram520_2 + GetBankIdentity(gSprites[a].data[6]) * 0x180;
sub_80034D4(ptr, gDisplayedStringBattle);
i = 0;
@@ -2451,7 +2446,7 @@ static void sub_80451A0(u8 a, struct Pokemon *pkmn)
for (; i < _7; i++)
CpuCopy32(sub_8043CDC(0x2B), ptr + 64 * i, 32);
- if (GetBankSide(gSprites[a].data6) == 0 && !IsDoubleBattle())
+ if (GetBankSide(gSprites[a].data[6]) == 0 && !IsDoubleBattle())
{
r1 = (u8 *const *)gUnknown_0820A8B4;
for (i = 0; i < _7; i++)
@@ -2469,7 +2464,7 @@ static void sub_80451A0(u8 a, struct Pokemon *pkmn)
}
else
{
- if (GetBankSide(gSprites[a].data6) == 0)
+ if (GetBankSide(gSprites[a].data[6]) == 0)
r1 = (u8 *const *)gUnknown_0820A904;
else
r1 = (u8 *const *)gUnknown_0820A8DC;
@@ -2497,17 +2492,17 @@ static void sub_8045458(u8 a, u8 b)
if (gBattleTypeFlags & 8)
return;
- r4 = gSprites[a].data6;
+ r4 = gSprites[a].data[6];
if (GetBankSide(r4) != 0)
{
u16 species = GetMonData(&gEnemyParty[gBattlePartyID[r4]], MON_DATA_SPECIES);
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 1) != 0)
{
- r4 = gSprites[a].data5;
+ r4 = gSprites[a].data[5];
if (b != 0)
- CpuCopy32(sub_8043CDC(0x46), (void *)(OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 8) * 32), 32);
+ CpuCopy32(sub_8043CDC(0x46), OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 8) * 32, 32);
else
- CpuFill32(0, (void *)(OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 8) * 32), 32);
+ CpuFill32(0, OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 8) * 32, 32);
}
}
}
@@ -2523,8 +2518,8 @@ static void draw_status_ailment_maybe(u8 a)
u8 r0;
s32 i;
- r7 = gSprites[a].data6;
- r10 = gSprites[a].data5;
+ r7 = gSprites[a].data[6];
+ r10 = gSprites[a].data[5];
if (GetBankSide(r7) == 0)
{
r4 = GetMonData(&gPlayerParty[gBattlePartyID[r7]], MON_DATA_STATUS);
@@ -2568,10 +2563,10 @@ static void draw_status_ailment_maybe(u8 a)
r6 = sub_8043CDC(0x27);
for (i = 0; i < 3; i++)
- CpuCopy32(r6, (void *)(OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8 + i) * 32), 32);
+ CpuCopy32(r6, OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8 + i) * 32, 32);
if (!ewram17800[r7].unk0_4)
- CpuCopy32(sub_8043CDC(1), (void *)(OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32), 64);
+ CpuCopy32(sub_8043CDC(1), OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32, 64);
sub_8045458(a, 1);
return;
@@ -2582,13 +2577,13 @@ static void draw_status_ailment_maybe(u8 a)
// I don't like writing the array index like this, but I can't get it to match otherwise.
FillPalette(r0[gBattleInterfaceStatusIcons_DynPal], r4_2 + 0x100, 2);
CpuCopy16(gPlttBufferUnfaded + 0x100 + r4_2, (void *)(OBJ_PLTT + r4_2 * 2), 2);
- CpuCopy32(r6, (void *)(OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8) * 32), 96);
+ CpuCopy32(r6, OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8) * 32, 96);
if (IsDoubleBattle() == TRUE || GetBankSide(r7) == TRUE)
{
if (!ewram17800[r7].unk0_4)
{
- CpuCopy32(sub_8043CDC(0), (void *)(OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32), 32);
- CpuCopy32(sub_8043CDC(0x41), (void *)(OBJ_VRAM0 + (gSprites[r10].oam.tileNum + 1) * 32), 32);
+ CpuCopy32(sub_8043CDC(0), OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32, 32);
+ CpuCopy32(sub_8043CDC(0x41), OBJ_VRAM0 + (gSprites[r10].oam.tileNum + 1) * 32, 32);
}
}
sub_8045458(a, 0);
@@ -2662,18 +2657,18 @@ static void sub_80458B0(u8 a)
s32 r7;
u8 *addr;
- r6 = (u8 *)0x02000520 + GetBankIdentity(gSprites[a].data6) * 0x180;
+ r6 = ewram520_2 + GetBankIdentity(gSprites[a].data[6]) * 0x180;
r8 = 7;
sub_80034D4(r6, BattleText_SafariBalls);
for (i = 0; i < r8; i++)
CpuCopy32(sub_8043CDC(0x2B), r6 + i * 64, 32);
for (r7 = 3; r7 < 3 + r8; r7++)
{
- addr = (void *)(OBJ_VRAM0 + (gSprites[a].oam.tileNum + MACRO1(r7)) * 32);
+ addr = OBJ_VRAM0 + (gSprites[a].oam.tileNum + MACRO1(r7)) * 32;
CpuCopy32(r6, addr, 32);
r6 += 32;
- addr = (void *)(OBJ_VRAM0 + (8 + gSprites[a].oam.tileNum + MACRO1(r7)) * 32);
+ addr = OBJ_VRAM0 + (8 + gSprites[a].oam.tileNum + MACRO1(r7)) * 32;
CpuCopy32(r6, addr, 32);
r6 += 32;
}
@@ -2690,14 +2685,14 @@ static void sub_8045998(u8 a)
r7 = StringCopy(gDisplayedStringBattle, BattleText_SafariBallsLeft);
r7 = sub_8003504(r7, gNumSafariBalls, 10, 1);
StringAppend(r7, BattleText_HighlightRed);
- status = GetBankIdentity(gSprites[a].data6);
- r7 = (u8 *)0x02000520 + status * 0x180;
+ status = GetBankIdentity(gSprites[a].data[6]);
+ r7 = ewram520_2 + status * 0x180;
r6 = 5;
sub_80034D4(r7, gDisplayedStringBattle);
- r7 = (u8 *)0x02000520 + status * 0x180 + 32;
+ r7 = ewram520_2 + status * 0x180 + 32;
for (i = 6; i < 6 + r6; i++)
{
- CpuCopy32(r7, (void *)(OBJ_VRAM0 + (gSprites[a].oam.tileNum + 0x18 + MACRO1(i)) * 32), 32);
+ CpuCopy32(r7, OBJ_VRAM0 + (gSprites[a].oam.tileNum + 0x18 + MACRO1(i)) * 32, 32);
r7 += 64;
}
}
@@ -2708,7 +2703,7 @@ void sub_8045A5C(u8 a, struct Pokemon *pkmn, u8 c)
u32 maxhp;
u32 currhp;
- r10 = gSprites[a].data6;
+ r10 = gSprites[a].data[6];
if (GetBankSide(r10) == 0)
{
if (c == 3 || c == 0)
@@ -2819,11 +2814,11 @@ static void sub_8045D58(u8 a, u8 b)
}
for (i = 0; i < 6; i++)
{
- u8 r4 = gSprites[ewram17850[a].unk0].data5;
+ u8 r4 = gSprites[ewram17850[a].unk0].data[5];
if (i < 2)
- CpuCopy32(sub_8043CDC(r8) + sp8[i] * 32, (void *)(OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 2 + i) * 32), 32);
+ CpuCopy32(sub_8043CDC(r8) + sp8[i] * 32, OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 2 + i) * 32, 32);
else
- CpuCopy32(sub_8043CDC(r8) + sp8[i] * 32, (void *)(OBJ_VRAM0 + 64 + (i + gSprites[r4].oam.tileNum) * 32), 32);
+ CpuCopy32(sub_8043CDC(r8) + sp8[i] * 32, OBJ_VRAM0 + 64 + (i + gSprites[r4].oam.tileNum) * 32, 32);
}
break;
case 1:
@@ -2837,9 +2832,9 @@ static void sub_8045D58(u8 a, u8 b)
for (i = 0; i < 8; i++)
{
if (i < 4)
- CpuCopy32(sub_8043CDC(0xC) + sp8[i] * 32, (void *)(OBJ_VRAM0 + (gSprites[ewram17850[a].unk0].oam.tileNum + 0x24 + i) * 32), 32);
+ CpuCopy32(sub_8043CDC(0xC) + sp8[i] * 32, OBJ_VRAM0 + (gSprites[ewram17850[a].unk0].oam.tileNum + 0x24 + i) * 32, 32);
else
- CpuCopy32(sub_8043CDC(0xC) + sp8[i] * 32, (void *)(OBJ_VRAM0 + 0xB80 + (i + gSprites[ewram17850[a].unk0].oam.tileNum) * 32), 32);
+ CpuCopy32(sub_8043CDC(0xC) + sp8[i] * 32, OBJ_VRAM0 + 0xB80 + (i + gSprites[ewram17850[a].unk0].oam.tileNum) * 32, 32);
}
break;
}
diff --git a/src/battle/battle_message.c b/src/battle/battle_message.c
index a3cc320ad..6faa3ace3 100644
--- a/src/battle/battle_message.c
+++ b/src/battle/battle_message.c
@@ -1,8 +1,10 @@
#include "global.h"
-#include "battle_message.h"
#include "battle.h"
+#include "battle_message.h"
+#include "battle_tower.h"
#include "item.h"
-#include "items.h"
+#include "event_data.h"
+#include "constants/items.h"
#include "pokemon.h"
#include "data2.h"
#include "text.h"
@@ -10,12 +12,143 @@
#include "link.h"
#include "battle_setup.h"
#include "battle_tower.h"
-#include "flags.h"
+#include "constants/flags.h"
+#include "ewram.h"
#define BATTLESTRING_TO_SUB 12
#define BATTLESTRINGS_NO 351
#define BATTLESTRINGS_MAX BATTLESTRINGS_NO + BATTLESTRING_TO_SUB
+#ifdef GERMAN
+#include "../data/battle_strings_de.h" // TODO: German
+#else
+#include "../data/battle_strings_en.h"
+#endif
+
+const u16 gUnknown_084016BC[] =
+{
+ MOVE_SWORDS_DANCE,
+ MOVE_STRENGTH,
+ MOVE_GROWTH,
+ MOVE_HARDEN,
+ MOVE_MINIMIZE,
+ MOVE_SMOKESCREEN,
+ MOVE_WITHDRAW,
+ MOVE_DEFENSE_CURL,
+ MOVE_EGG_BOMB,
+ MOVE_SMOG,
+ MOVE_BONE_CLUB,
+ MOVE_FLASH,
+ MOVE_SPLASH,
+ MOVE_ACID_ARMOR,
+ MOVE_BONEMERANG,
+ MOVE_REST,
+ MOVE_SHARPEN,
+ MOVE_SUBSTITUTE,
+ MOVE_MIND_READER,
+ MOVE_SNORE,
+ MOVE_PROTECT,
+ MOVE_SPIKES,
+ MOVE_ENDURE,
+ MOVE_ROLLOUT,
+ MOVE_SWAGGER,
+ MOVE_SLEEP_TALK,
+ MOVE_HIDDEN_POWER,
+ MOVE_PSYCH_UP,
+ MOVE_EXTREME_SPEED,
+ MOVE_FOLLOW_ME,
+ MOVE_TRICK,
+ MOVE_ASSIST,
+ MOVE_INGRAIN,
+ MOVE_KNOCK_OFF,
+ MOVE_CAMOUFLAGE,
+ MOVE_ASTONISH,
+ MOVE_ODOR_SLEUTH,
+ MOVE_GRASS_WHISTLE,
+ MOVE_SHEER_COLD,
+ MOVE_MUDDY_WATER,
+ MOVE_IRON_DEFENSE,
+ MOVE_BOUNCE,
+ MOVE_NONE,
+ MOVE_TELEPORT,
+ MOVE_RECOVER,
+ MOVE_BIDE,
+ MOVE_AMNESIA,
+ MOVE_FLAIL,
+ MOVE_TAUNT,
+ MOVE_BULK_UP,
+ MOVE_NONE,
+ MOVE_MEDITATE,
+ MOVE_AGILITY,
+ MOVE_MIMIC,
+ MOVE_DOUBLE_TEAM,
+ MOVE_BARRAGE,
+ MOVE_TRANSFORM,
+ MOVE_STRUGGLE,
+ MOVE_SCARY_FACE,
+ MOVE_CHARGE,
+ MOVE_WISH,
+ MOVE_BRICK_BREAK,
+ MOVE_YAWN,
+ MOVE_FEATHER_DANCE,
+ MOVE_TEETER_DANCE,
+ MOVE_MUD_SPORT,
+ MOVE_FAKE_TEARS,
+ MOVE_WATER_SPORT,
+ MOVE_CALM_MIND,
+ MOVE_NONE,
+ MOVE_POUND,
+ MOVE_SCRATCH,
+ MOVE_VICE_GRIP,
+ MOVE_WING_ATTACK,
+ MOVE_FLY,
+ MOVE_BIND,
+ MOVE_SLAM,
+ MOVE_HORN_ATTACK,
+ MOVE_WRAP,
+ MOVE_THRASH,
+ MOVE_TAIL_WHIP,
+ MOVE_LEER,
+ MOVE_BITE,
+ MOVE_GROWL,
+ MOVE_ROAR,
+ MOVE_SING,
+ MOVE_PECK,
+ MOVE_ABSORB,
+ MOVE_STRING_SHOT,
+ MOVE_EARTHQUAKE,
+ MOVE_FISSURE,
+ MOVE_DIG,
+ MOVE_TOXIC,
+ MOVE_SCREECH,
+ MOVE_METRONOME,
+ MOVE_LICK,
+ MOVE_CLAMP,
+ MOVE_CONSTRICT,
+ MOVE_POISON_GAS,
+ MOVE_BUBBLE,
+ MOVE_SLASH,
+ MOVE_SPIDER_WEB,
+ MOVE_NIGHTMARE,
+ MOVE_CURSE,
+ MOVE_FORESIGHT,
+ MOVE_CHARM,
+ MOVE_ATTRACT,
+ MOVE_ROCK_SMASH,
+ MOVE_UPROAR,
+ MOVE_SPIT_UP,
+ MOVE_SWALLOW,
+ MOVE_TORMENT,
+ MOVE_FLATTER,
+ MOVE_ROLE_PLAY,
+ MOVE_ENDEAVOR,
+ MOVE_TICKLE,
+ MOVE_COVET,
+ MOVE_NONE,
+};
+
+const u8 gUnknown_084017A8[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; // empty flags
+
extern const u8* const gBattleStringsTable[BATTLESTRINGS_NO];
extern u16 gLastUsedItem;
@@ -42,67 +175,6 @@ extern u16 gBattlePartyID[4];
extern struct BattleEnigmaBerry gEnigmaBerries[4];
extern u8 gBattleBufferA[4][0x200];
-extern const u8 gUnknown_084005DB[];
-extern const u8 gUnknown_084005C7[];
-extern const u8 gUnknown_084005AA[];
-extern const u8 gUnknown_08400568[];
-extern const u8 gUnknown_08400590[];
-extern const u8 gUnknown_0840057B[];
-extern const u8 gUnknown_08400555[];
-extern const u8 gUnknown_084006F1[];
-extern const u8 gUnknown_084006A4[];
-extern const u8 gUnknown_0840069C[];
-extern const u8 gUnknown_0840065C[];
-extern const u8 gUnknown_08400645[];
-extern const u8 gUnknown_08400608[];
-extern const u8 gUnknown_08400635[];
-extern const u8 gUnknown_084005F5[];
-extern const u8 gUnknown_08400709[];
-extern const u8 gUnknown_08400727[];
-extern const u8 gUnknown_08400736[];
-extern const u8 gUnknown_08400749[];
-extern const u8 gUnknown_08400781[];
-extern const u8 gUnknown_08400771[];
-extern const u8 gUnknown_0840075E[];
-extern const u8 gUnknown_084006B3[];
-extern const u8 gUnknown_084006BB[];
-extern const u8 gUnknown_084006C6[];
-extern const u8 gUnknown_084006D5[];
-extern const u8 gUnknown_0840068C[];
-extern const u8 gUnknown_0840067C[];
-extern const u8 gUnknown_08400622[];
-extern const u8 gUnknown_084007BD[];
-extern const u8 gUnknown_083FFEFC[];
-extern const u8 gUnknown_083FFFF7[];
-extern const u8 gUnknown_083FFFEA[];
-extern const u8 gUnknown_083FFF6A[];
-extern const u8 gUnknown_083FFF99[];
-extern const u8 gUnknown_083FFFCB[];
-extern const u8 gUnknown_083FFF56[];
-extern const u8 gUnknown_083FFF81[];
-extern const u8 gUnknown_083FFFB3[];
-extern const u8 gUnknown_08400A78[];
-extern const u8 gUnknown_08400A85[];
-extern const u8 gUnknown_08400797[];
-extern const u8 gUnknown_08400791[];
-extern const u8 gUnknown_084007B7[];
-extern const u8 gUnknown_084007B2[];
-extern const u8 gUnknown_0840079C[];
-extern const u8 gUnknown_084007A1[];
-extern const u8 gUnknown_084007A7[];
-extern const u8 gUnknown_084007AC[];
-extern const u8 gUnknown_084009ED[];
-extern const u8 gUnknown_084009F7[];
-extern const u8 gUnknown_084007C8[];
-extern const u8 gUnknown_084007CA[];
-extern const u8 gUnknown_084007CC[];
-extern const u8 gUnknown_084007CE[];
-extern const u8 gUnknown_084007D0[];
-extern const u8 gUnknown_08400E5E[];
-extern const u8 gUnknown_08400E62[];
-
-extern const u16 gUnknown_084016BC[]; // a table of moves
-
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
@@ -114,7 +186,6 @@ struct StatusFlagString
};
extern const struct StatusFlagString gUnknown_081FA6D4[7]; // status flag/text
-extern const u8 gUnknown_084017A8[8]; // empty flags
extern struct StringInfoBattle* gSelectedOrderFromParty;
#define gStringInfo gSelectedOrderFromParty
@@ -127,7 +198,6 @@ u8 GetBankSide(u8 bank);
s32 sub_803FC34(u16);
void get_trainer_name(u8* dst);
u8 get_trainer_class_name_index(void);
-u8 sub_8135FD8(void);
u8 GetMultiplayerId(void);
u8 GetBankByPlayerAI(u8 ID);
u8 GetBankSide(u8 bank);
@@ -167,13 +237,13 @@ void BufferStringBattle(u16 stringID)
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
- stringPtr = gUnknown_084005DB;
+ stringPtr = BattleText_DoubleWantToBattle;
else
- stringPtr = gUnknown_084005C7;
+ stringPtr = BattleText_SingleWantToBattle2;
}
else
{
- stringPtr = gUnknown_084005AA;
+ stringPtr = BattleText_SingleWantToBattle1;
#ifdef GERMAN
stringPtr = de_sub_804110C(0xFFFF, stringPtr);
#endif
@@ -182,13 +252,13 @@ void BufferStringBattle(u16 stringID)
else
{
if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY)
- stringPtr = gUnknown_08400568;
+ stringPtr = BattleText_WildAppeared2;
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) // interesting, looks like they had something planned for wild double battles
- stringPtr = gUnknown_08400590;
+ stringPtr = BattleText_WildDoubleAppeared;
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL)
- stringPtr = gUnknown_0840057B;
+ stringPtr = BattleText_WildAppeared3;
else
- stringPtr = gUnknown_08400555;
+ stringPtr = BattleText_WildAppeared1;
}
break;
case 1: // poke first send-out
@@ -197,34 +267,34 @@ void BufferStringBattle(u16 stringID)
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
- stringPtr = gUnknown_084006F1;
+ stringPtr = BattleText_SentOutSingle11;
else
- stringPtr = gUnknown_084006A4;
+ stringPtr = BattleText_SentOutDouble4;
}
else
- stringPtr = gUnknown_0840069C;
+ stringPtr = BattleText_SentOutSingle6;
}
else
{
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
- stringPtr = gUnknown_0840065C;
+ stringPtr = BattleText_SentOutDouble3;
else if (gBattleTypeFlags & BATTLE_TYPE_LINK)
- stringPtr = gUnknown_08400645;
+ stringPtr = BattleText_SentOutDouble2;
else
{
- stringPtr = gUnknown_08400608;
+ stringPtr = BattleText_SentOutDouble1;
#ifdef GERMAN
stringPtr = de_sub_804110C(0xFFFF, stringPtr);
#endif
}
}
else if (gBattleTypeFlags & BATTLE_TYPE_LINK)
- stringPtr = gUnknown_08400635;
+ stringPtr = BattleText_SentOutSingle3;
else
{
- stringPtr = gUnknown_084005F5;
+ stringPtr = BattleText_SentOutSingle1;
#ifdef GERMAN
stringPtr = de_sub_804110C(0xFFFF, stringPtr);
#endif
@@ -235,26 +305,26 @@ void BufferStringBattle(u16 stringID)
if (GetBankSide(gActiveBank) == 0)
{
if (BATTLE_STRUCT->hpScale == 0)
- stringPtr = gUnknown_08400709;
+ stringPtr = BattleText_ComeBackSingle1;
else if (BATTLE_STRUCT->hpScale == 1 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
- stringPtr = gUnknown_08400727;
+ stringPtr = BattleText_ComeBackSingle2;
else if (BATTLE_STRUCT->hpScale == 2)
- stringPtr = gUnknown_08400736;
+ stringPtr = BattleText_ComeBackSingle3;
else
- stringPtr = gUnknown_08400749;
+ stringPtr = BattleText_ComeBackSingle4;
}
else
{
if (gTrainerBattleOpponent == 0x800)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
- stringPtr = gUnknown_08400781;
+ stringPtr = BattleText_WithdrewPoke3;
else
- stringPtr = gUnknown_08400771;
+ stringPtr = BattleText_WithdrewPoke2;
}
else
{
- stringPtr = gUnknown_0840075E;
+ stringPtr = BattleText_WithdrewPoke1;
#ifdef GERMAN
stringPtr = de_sub_804110C(0xFFFF, stringPtr);
#endif
@@ -265,26 +335,26 @@ void BufferStringBattle(u16 stringID)
if (GetBankSide(BATTLE_STRUCT->scriptingActive) == 0)
{
if (BATTLE_STRUCT->hpScale == 0 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
- stringPtr = gUnknown_084006B3;
+ stringPtr = BattleText_SentOutSingle7;
else if (BATTLE_STRUCT->hpScale == 1)
- stringPtr = gUnknown_084006BB;
+ stringPtr = BattleText_SentOutSingle8;
else if (BATTLE_STRUCT->hpScale == 2)
- stringPtr = gUnknown_084006C6;
+ stringPtr = BattleText_SentOutSingle9;
else
- stringPtr = gUnknown_084006D5;
+ stringPtr = BattleText_SentOutSingle10;
}
else
{
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
- stringPtr = gUnknown_0840068C;
+ stringPtr = BattleText_SentOutSingle5;
else
- stringPtr = gUnknown_0840067C;
+ stringPtr = BattleText_SentOutSingle4;
}
else
{
- stringPtr = gUnknown_08400622;
+ stringPtr = BattleText_SentOutSingle2;
#ifdef GERMAN
stringPtr = de_sub_804110C(0xFFFF, stringPtr);
#endif
@@ -298,7 +368,7 @@ void BufferStringBattle(u16 stringID)
else
StringCopy(gBattleTextBuff2, gMoveNames[gStringInfo->currentMove]);
sub_8121D74(gBattleTextBuff2);
- stringPtr = gUnknown_084007BD;
+ stringPtr = BattleText_OpponentUsedMove;
break;
case 5: // battle end
if (gBattleTextBuff1[0] & 0x80)
@@ -307,13 +377,13 @@ void BufferStringBattle(u16 stringID)
if (GetBankSide(gActiveBank) == 1 && gBattleTextBuff1[0] != 3)
gBattleTextBuff1[0] ^= 3;
if (gBattleTextBuff1[0] == BATTLE_LOST || gBattleTextBuff1[0] == BATTLE_DREW)
- stringPtr = gUnknown_083FFEFC;
+ stringPtr = BattleText_GotAwaySafely;
else
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
- stringPtr = gUnknown_083FFFF7;
+ stringPtr = BattleText_FledDouble;
else
- stringPtr = gUnknown_083FFFEA;
+ stringPtr = BattleText_FledSingle;
}
}
else
@@ -325,13 +395,13 @@ void BufferStringBattle(u16 stringID)
switch (gBattleTextBuff1[0])
{
case BATTLE_WON:
- stringPtr = gUnknown_083FFF6A;
+ stringPtr = BattleText_PlayerDefeatedTrainers;
break;
case BATTLE_LOST:
- stringPtr = gUnknown_083FFF99;
+ stringPtr = BattleText_PlayerLostTrainers;
break;
case BATTLE_DREW:
- stringPtr = gUnknown_083FFFCB;
+ stringPtr = BattleText_PlayerTiedTrainers;
break;
}
}
@@ -340,13 +410,13 @@ void BufferStringBattle(u16 stringID)
switch (gBattleTextBuff1[0])
{
case BATTLE_WON:
- stringPtr = gUnknown_083FFF56;
+ stringPtr = BattleText_PlayerDefeatedTrainer;
break;
case BATTLE_LOST:
- stringPtr = gUnknown_083FFF81;
+ stringPtr = BattleText_PlayerLostTrainer;
break;
case BATTLE_DREW:
- stringPtr = gUnknown_083FFFB3;
+ stringPtr = BattleText_PlayerTiedTrainer;
break;
}
}
@@ -413,9 +483,9 @@ extern u8 *de_sub_8041024(s32, u32);
if (GetBankSide(bank) != 0) \
{ \
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) \
- toCpy = gUnknown_08400797; \
+ toCpy = BattleText_Foe; \
else \
- toCpy = gUnknown_08400791; \
+ toCpy = BattleText_Wild; \
while (*toCpy != EOS) \
{ \
dst[dstID] = *toCpy; \
@@ -444,9 +514,9 @@ extern u8 *de_sub_8041024(s32, u32);
toCpy++; \
} \
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) \
- toCpy = gUnknown_08400797; \
+ toCpy = BattleText_Foe; \
else \
- toCpy = gUnknown_08400791; \
+ toCpy = BattleText_Wild; \
} \
else \
{ \
@@ -589,14 +659,14 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
{
StringCopy(text, gEnigmaBerries[gStringBank].name);
#ifdef ENGLISH
- StringAppend(text, gUnknown_08400A85);
+ StringAppend(text, BattleText_Berry);
#else
- de_sub_8073174(text, gUnknown_08400A85);
+ de_sub_8073174(text, BattleText_Berry);
#endif
toCpy = text;
}
else
- toCpy = gUnknown_08400A78;
+ toCpy = BattleText_EnigmaBerry;
}
else
{
@@ -632,7 +702,7 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
toCpy = gTrainerClassNames[get_trainer_class_name_index()];
else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER)
- toCpy = gTrainerClassNames[sub_8135FD8()];
+ toCpy = gTrainerClassNames[GetEReaderTrainerClassNameIndex()];
else
toCpy = gTrainerClassNames[gTrainers[gTrainerBattleOpponent].trainerClass];
break;
@@ -651,7 +721,7 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
if (gTrainerBattleOpponent == 0x400)
{
memset(text, 0xFF, 8);
- memcpy(text, &ewram[0x17002], 7);
+ memcpy(text, ewram17002, 7);
toCpy = text;
}
else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
@@ -661,7 +731,7 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
}
else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER)
{
- sub_8135FF4(text);
+ SetEReaderTrainerName(text);
toCpy = text;
}
else
@@ -692,46 +762,46 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
HANDLE_NICKNAME_STRING_CASE(BATTLE_STRUCT->scriptingActive, BATTLE_STRUCT->unk1605E)
break;
case 35: // lanette pc
- if (FlagGet(SYS_PC_LANETTE))
- toCpy = gUnknown_084009F7;
+ if (FlagGet(FLAG_SYS_PC_LANETTE))
+ toCpy = BattleText_Lanette;
else
- toCpy = gUnknown_084009ED;
+ toCpy = BattleText_Someone;
break;
case 38:
if (GetBankSide(gBankAttacker) == 0)
- toCpy = gUnknown_084007AC;
+ toCpy = BattleText_Ally2;
else
- toCpy = gUnknown_084007A7;
+ toCpy = BattleText_Foe3;
break;
case 39:
if (GetBankSide(gBankTarget) == 0)
- toCpy = gUnknown_084007AC;
+ toCpy = BattleText_Ally2;
else
- toCpy = gUnknown_084007A7;
+ toCpy = BattleText_Foe3;
break;
case 36:
if (GetBankSide(gBankAttacker) == 0)
- toCpy = gUnknown_084007A1;
+ toCpy = BattleText_Ally;
else
- toCpy = gUnknown_0840079C;
+ toCpy = BattleText_Foe2;
break;
case 37:
if (GetBankSide(gBankTarget) == 0)
- toCpy = gUnknown_084007A1;
+ toCpy = BattleText_Ally;
else
- toCpy = gUnknown_0840079C;
+ toCpy = BattleText_Foe2;
break;
case 40:
if (GetBankSide(gBankAttacker) == 0)
- toCpy = gUnknown_084007B7;
+ toCpy = BattleText_Ally3;
else
- toCpy = gUnknown_084007B2;
+ toCpy = BattleText_Foe4;
break;
case 41:
if (GetBankSide(gBankTarget) == 0)
- toCpy = gUnknown_084007B7;
+ toCpy = BattleText_Ally3;
else
- toCpy = gUnknown_084007B2;
+ toCpy = BattleText_Foe4;
break;
}
//if (toCpy != NULL) really GF, why did you forget about this?
@@ -818,9 +888,9 @@ void StrCpyDecodeBattleTextBuff(u8* src, u8* dst)
else
{
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
- StringAppend(dst, gUnknown_08400797);
+ StringAppend(dst, BattleText_Foe);
else
- StringAppend(dst, gUnknown_08400791);
+ StringAppend(dst, BattleText_Wild);
GetMonData(&gEnemyParty[src[srcID + 2]], MON_DATA_NICKNAME, text);
}
StringGetEnd10(text);
@@ -838,9 +908,9 @@ void StrCpyDecodeBattleTextBuff(u8* src, u8* dst)
StringGetEnd10(text);
StringAppend(dst, text);
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
- StringAppend(dst, gUnknown_08400797);
+ StringAppend(dst, BattleText_Foe);
else
- StringAppend(dst, gUnknown_08400791);
+ StringAppend(dst, BattleText_Wild);
}
#endif
srcID += 3;
@@ -880,13 +950,13 @@ void StrCpyDecodeBattleTextBuff(u8* src, u8* dst)
{
StringCopy(dst, gEnigmaBerries[gStringBank].name);
#ifdef ENGLISH
- StringAppend(dst, gUnknown_08400A85);
+ StringAppend(dst, BattleText_Berry);
#else
- de_sub_8073174(dst, gUnknown_08400A85);
+ de_sub_8073174(dst, BattleText_Berry);
#endif
}
else
- StringAppend(dst, gUnknown_08400A78);
+ StringAppend(dst, BattleText_EnigmaBerry);
}
else
CopyItemName(hword, dst);
@@ -916,9 +986,9 @@ void sub_8121D1C(u8* textBuff)
if (counter >= 0)
{
if (counter <= 2)
- StringCopy(textBuff, gUnknown_08400E5E); // is
+ StringCopy(textBuff, BattleText_Format10); // is
else if (counter <= 4)
- StringCopy(textBuff, gUnknown_08400E62); // 's
+ StringCopy(textBuff, BattleText_Format11); // 's
}
}
@@ -941,19 +1011,19 @@ void sub_8121D74(u8* dst)
switch (counter)
{
case 0:
- StringCopy(dst, gUnknown_084007C8);
+ StringCopy(dst, BattleText_Exclamation2);
break;
case 1:
- StringCopy(dst, gUnknown_084007CA);
+ StringCopy(dst, BattleText_Exclamation3);
break;
case 2:
- StringCopy(dst, gUnknown_084007CC);
+ StringCopy(dst, BattleText_Exclamation4);
break;
case 3:
- StringCopy(dst, gUnknown_084007CE);
+ StringCopy(dst, BattleText_Exclamation5);
break;
case 4:
- StringCopy(dst, gUnknown_084007D0);
+ StringCopy(dst, BattleText_Exclamation);
break;
}
}
diff --git a/src/battle/battle_party_menu.c b/src/battle/battle_party_menu.c
index 2f6dc6816..d4dcae0ca 100644
--- a/src/battle/battle_party_menu.c
+++ b/src/battle/battle_party_menu.c
@@ -12,15 +12,13 @@
#include "pokemon_summary_screen.h"
#include "rom_8077ABC.h"
#include "rom_8094928.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "string_util.h"
#include "strings.h"
#include "task.h"
#include "text.h"
-
-extern u8 ewram[];
-#define UNK_201606C_ARRAY (ewram + 0x1606C) // lazy define but whatever.
+#include "ewram.h"
extern u8 sub_806BD58(u8, u8);
extern void PartyMenuPrintMonsLevelOrStatus(void);
@@ -206,7 +204,7 @@ void sub_8094B6C(u8 a, u8 b, u8 c)
if (IsLinkDoubleBattle())
{
- u8 *arr = ewram + 0x1606C + a * 3;
+ u8 *arr = &ewram1606Carr(0, a);
for (i = 0, j = 0; i < 3; i++)
{
@@ -428,7 +426,7 @@ bool8 SetUpBattlePartyMenu(void)
case 10:
if (gUnknown_02038473 == 3)
{
- if (GetItemEffectType(gScriptItemId) == 10)
+ if (GetItemEffectType(gSpecialVar_ItemId) == 10)
ewram1B000.promptTextId = 0xFF;
else
ewram1B000.promptTextId = 3;
@@ -466,9 +464,9 @@ void HandleBattlePartyMenu(u8 taskId)
{
if (!gPaletteFade.active)
{
- if (gUnknown_02038473 == 3 && GetItemEffectType(gScriptItemId) == 10)
+ if (gUnknown_02038473 == 3 && GetItemEffectType(gSpecialVar_ItemId) == 10)
{
- gUnknown_03004AE4(taskId, gScriptItemId, Task_80952E4);
+ gUnknown_03004AE4(taskId, gSpecialVar_ItemId, Task_80952E4);
return;
}
@@ -482,7 +480,7 @@ void HandleBattlePartyMenu(u8 taskId)
else
{
sub_806D5A4();
- gUnknown_03004AE4(taskId, gScriptItemId, Task_80952E4);
+ gUnknown_03004AE4(taskId, gSpecialVar_ItemId, Task_80952E4);
}
}
else
@@ -627,7 +625,7 @@ static void Task_ShowSummaryScreen(u8 taskId)
{
DestroyTask(taskId);
EWRAM_1B000.unk262 = 1;
- ShowPokemonSummaryScreen(gPlayerParty, partySelection, gPlayerPartyCount - 1, Task_809535C, 4);
+ ShowPokemonSummaryScreen(gPlayerParty, partySelection, gPlayerPartyCount - 1, Task_809535C, PSS_MODE_NO_MOVE_ORDER_EDIT);
}
}
diff --git a/src/battle/battle_records.c b/src/battle/battle_records.c
index d848a10b8..97740e3da 100644
--- a/src/battle/battle_records.c
+++ b/src/battle/battle_records.c
@@ -1,6 +1,6 @@
#include "global.h"
#include "battle_records.h"
-#include "game_stat.h"
+#include "constants/game_stat.h"
#include "link.h"
#include "menu.h"
#include "overworld.h"
@@ -243,7 +243,7 @@ static void PrintLinkBattleRecord(struct LinkBattleRecord *record, u8 y)
void ShowLinkBattleRecords(void) {
s32 i;
MenuDrawTextWindow(1, 0, 28, 18);
- sub_8072BD8((u8 *) gOtherText_BattleResults, 0, 1, 240);
+ sub_8072BD8(gOtherText_BattleResults, 0, 1, 240);
PrintLinkBattleWinsLossesDraws(gSaveBlock1.linkBattleRecords);
#if ENGLISH
@@ -260,9 +260,9 @@ void ShowLinkBattleRecords(void) {
static bool32 sub_8110494(u8 level)
{
- struct SaveBlock2_Sub *sb2sub = &gSaveBlock2.filler_A8;
+ struct BattleTowerData *battleTower = &gSaveBlock2.battleTower;
- switch (sb2sub->var_4AE[level])
+ switch (battleTower->var_4AE[level])
{
case 0:
return FALSE;
@@ -294,17 +294,18 @@ static void PrintWinStreak(const u8 *str, u16 streak, u8 left, u8 top)
static void PrintRecordWinStreak(u8 level, u8 left, u8 top)
{
- struct SaveBlock2_Sub *sb2sub = &gSaveBlock2.filler_A8;
- u16 winStreak = sb2sub->recordWinStreak[level];
+ struct BattleTowerData *battleTower = &gSaveBlock2.battleTower;
+ u16 winStreak = battleTower->recordWinStreaks[level];
PrintWinStreak(gOtherText_Record, winStreak, left, top);
}
static u16 GetLastWinStreak(u8 level)
{
- u16 result = gSaveBlock2.filler_A8.winStreak[level];
- if (result > 9999)
- result = 9999;
- return result;
+ u16 winStreak = gSaveBlock2.battleTower.currentWinStreaks[level];
+ if (winStreak > 9999)
+ winStreak = 9999;
+
+ return winStreak;
}
static void PrintLastWinStreak(u8 level, u8 left, u8 top)
diff --git a/src/battle/battle_setup.c b/src/battle/battle_setup.c
index 40949ed38..f71aad090 100644
--- a/src/battle/battle_setup.c
+++ b/src/battle/battle_setup.c
@@ -11,21 +11,21 @@
#include "field_player_avatar.h"
#include "field_weather.h"
#include "fieldmap.h"
-#include "fldeff_80C5CD4.h"
+#include "fldeff_poison.h"
#include "main.h"
-#include "map_constants.h"
+#include "constants/maps.h"
#include "metatile_behavior.h"
-#include "opponent_constants.h"
+#include "constants/opponents.h"
#include "palette.h"
-#include "rng.h"
+#include "random.h"
#include "overworld.h"
#include "safari_zone.h"
#include "script.h"
#include "script_pokemon_80C4.h"
#include "secret_base.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "species.h"
+#include "constants/species.h"
#include "starter_choose.h"
#include "string_util.h"
#include "strings.h"
@@ -33,7 +33,7 @@
#include "text.h"
#include "trainer.h"
-extern u16 gScriptResult;
+extern u16 gSpecialVar_Result;
extern void (*gFieldCallback)(void);
@@ -48,7 +48,7 @@ EWRAM_DATA static u8 *sTrainerBattleScriptRetAddr = NULL;
EWRAM_DATA static u8 *sTrainerBattleEndScript = NULL;
extern u16 gBattleTypeFlags;
-extern u16 gScriptLastTalked;
+extern u16 gSpecialVar_LastTalked;
extern u8 gBattleOutcome;
extern struct MapObject gMapObjects[];
@@ -161,287 +161,297 @@ const struct TrainerEyeTrainer gTrainerEyeTrainers[] =
{
{
{OPPONENT_ROSE_1, OPPONENT_ROSE_2, OPPONENT_ROSE_3, OPPONENT_ROSE_4, OPPONENT_ROSE_5},
- MAP_GROUP_ROUTE118,
- MAP_ID_ROUTE118,
+ MAP_GROUP(ROUTE118),
+ MAP_NUM(ROUTE118),
},
{
{OPPONENT_DUSTY_1, OPPONENT_DUSTY_2, OPPONENT_DUSTY_3, OPPONENT_DUSTY_4, OPPONENT_DUSTY_5},
- MAP_GROUP_ROUTE111,
- MAP_ID_ROUTE111,
+ MAP_GROUP(ROUTE111),
+ MAP_NUM(ROUTE111),
},
{
{OPPONENT_LOLA_1, OPPONENT_LOLA_2, OPPONENT_LOLA_3, OPPONENT_LOLA_4, OPPONENT_LOLA_5},
- MAP_GROUP_ROUTE109,
- MAP_ID_ROUTE109,
+ MAP_GROUP(ROUTE109),
+ MAP_NUM(ROUTE109),
},
{
{OPPONENT_RICKY_1, OPPONENT_RICKY_2, OPPONENT_RICKY_3, OPPONENT_RICKY_4, OPPONENT_RICKY_5},
- MAP_GROUP_ROUTE109,
- MAP_ID_ROUTE109,
+ MAP_GROUP(ROUTE109),
+ MAP_NUM(ROUTE109),
},
{
{OPPONENT_RITA_AND_SAM_1, OPPONENT_RITA_AND_SAM_2, OPPONENT_RITA_AND_SAM_3, OPPONENT_RITA_AND_SAM_4, OPPONENT_RITA_AND_SAM_5},
- MAP_GROUP_ROUTE124,
- MAP_ID_ROUTE124,
+ MAP_GROUP(ROUTE124),
+ MAP_NUM(ROUTE124),
},
{
{OPPONENT_BROOKE_1, OPPONENT_BROOKE_2, OPPONENT_BROOKE_3, OPPONENT_BROOKE_4, OPPONENT_BROOKE_5},
- MAP_GROUP_ROUTE111,
- MAP_ID_ROUTE111,
+ MAP_GROUP(ROUTE111),
+ MAP_NUM(ROUTE111),
},
{
{OPPONENT_WILTON_1, OPPONENT_WILTON_2, OPPONENT_WILTON_3, OPPONENT_WILTON_4, OPPONENT_WILTON_5},
- MAP_GROUP_ROUTE111,
- MAP_ID_ROUTE111,
+ MAP_GROUP(ROUTE111),
+ MAP_NUM(ROUTE111),
},
{
{OPPONENT_VALERIE_1, OPPONENT_VALERIE_2, OPPONENT_VALERIE_3, OPPONENT_VALERIE_4, OPPONENT_VALERIE_5},
- MAP_GROUP_MT_PYRE_6F,
- MAP_ID_MT_PYRE_6F,
+ MAP_GROUP(MT_PYRE_6F),
+ MAP_NUM(MT_PYRE_6F),
},
{
{OPPONENT_CINDY_1, OPPONENT_CINDY_3, OPPONENT_CINDY_4, OPPONENT_CINDY_5, OPPONENT_CINDY_6},
- MAP_GROUP_ROUTE104,
- MAP_ID_ROUTE104,
+ MAP_GROUP(ROUTE104),
+ MAP_NUM(ROUTE104),
},
{
{OPPONENT_JESSICA_1, OPPONENT_JESSICA_2, OPPONENT_JESSICA_3, OPPONENT_JESSICA_4, OPPONENT_JESSICA_5},
- MAP_GROUP_ROUTE121,
- MAP_ID_ROUTE121,
+ MAP_GROUP(ROUTE121),
+ MAP_NUM(ROUTE121),
},
{
{OPPONENT_WINSTON_1, OPPONENT_WINSTON_2, OPPONENT_WINSTON_3, OPPONENT_WINSTON_4, OPPONENT_WINSTON_5},
- MAP_GROUP_ROUTE104,
- MAP_ID_ROUTE104,
+ MAP_GROUP(ROUTE104),
+ MAP_NUM(ROUTE104),
},
{
{OPPONENT_STEVE_1, OPPONENT_STEVE_2, OPPONENT_STEVE_3, OPPONENT_STEVE_4, OPPONENT_STEVE_5},
- MAP_GROUP_ROUTE114,
- MAP_ID_ROUTE114,
+ MAP_GROUP(ROUTE114),
+ MAP_NUM(ROUTE114),
},
{
{OPPONENT_TONY_1, OPPONENT_TONY_2, OPPONENT_TONY_3, OPPONENT_TONY_4, OPPONENT_TONY_5},
- MAP_GROUP_ROUTE107,
- MAP_ID_ROUTE107,
+ MAP_GROUP(ROUTE107),
+ MAP_NUM(ROUTE107),
},
{
{OPPONENT_NOB_1, OPPONENT_NOB_2, OPPONENT_NOB_3, OPPONENT_NOB_4, OPPONENT_NOB_5},
- MAP_GROUP_ROUTE115,
- MAP_ID_ROUTE115,
+ MAP_GROUP(ROUTE115),
+ MAP_NUM(ROUTE115),
},
{
{OPPONENT_DALTON_1, OPPONENT_DALTON_2, OPPONENT_DALTON_3, OPPONENT_DALTON_4, OPPONENT_DALTON_5},
- MAP_GROUP_ROUTE118,
- MAP_ID_ROUTE118,
+ MAP_GROUP(ROUTE118),
+ MAP_NUM(ROUTE118),
},
{
{OPPONENT_BERNIE_1, OPPONENT_BERNIE_2, OPPONENT_BERNIE_3, OPPONENT_BERNIE_4, OPPONENT_BERNIE_5},
- MAP_GROUP_ROUTE114,
- MAP_ID_ROUTE114,
+ MAP_GROUP(ROUTE114),
+ MAP_NUM(ROUTE114),
},
{
{OPPONENT_ETHAN_1, OPPONENT_ETHAN_2, OPPONENT_ETHAN_3, OPPONENT_ETHAN_4, OPPONENT_ETHAN_5},
- MAP_GROUP_JAGGED_PASS,
- MAP_ID_JAGGED_PASS,
+ MAP_GROUP(JAGGED_PASS),
+ MAP_NUM(JAGGED_PASS),
},
{
{OPPONENT_JOHN_AND_JAY_1, OPPONENT_JOHN_AND_JAY_2, OPPONENT_JOHN_AND_JAY_3, OPPONENT_JOHN_AND_JAY_4, OPPONENT_JOHN_AND_JAY_5},
- MAP_GROUP_METEOR_FALLS_1F_2R,
- MAP_ID_METEOR_FALLS_1F_2R,
+ MAP_GROUP(METEOR_FALLS_1F_2R),
+ MAP_NUM(METEOR_FALLS_1F_2R),
},
{
{OPPONENT_BRANDON_1, OPPONENT_BRANDON_2, OPPONENT_BRANDON_3, OPPONENT_BRANDON_4, OPPONENT_BRANDON_5},
- MAP_GROUP_ROUTE120,
- MAP_ID_ROUTE120,
+ MAP_GROUP(ROUTE120),
+ MAP_NUM(ROUTE120),
},
{
{OPPONENT_CAMERON_1, OPPONENT_CAMERON_2, OPPONENT_CAMERON_3, OPPONENT_CAMERON_4, OPPONENT_CAMERON_5},
- MAP_GROUP_ROUTE123,
- MAP_ID_ROUTE123,
+ MAP_GROUP(ROUTE123),
+ MAP_NUM(ROUTE123),
},
{
{OPPONENT_JACKI_1, OPPONENT_JACKI_2, OPPONENT_JACKI_3, OPPONENT_JACKI_4, OPPONENT_JACKI_5},
- MAP_GROUP_ROUTE123,
- MAP_ID_ROUTE123,
+ MAP_GROUP(ROUTE123),
+ MAP_NUM(ROUTE123),
},
{
{OPPONENT_WALTER_1, OPPONENT_WALTER_2, OPPONENT_WALTER_3, OPPONENT_WALTER_4, OPPONENT_WALTER_5},
- MAP_GROUP_ROUTE121,
- MAP_ID_ROUTE121,
+ MAP_GROUP(ROUTE121),
+ MAP_NUM(ROUTE121),
},
{
{OPPONENT_KAREN_1, OPPONENT_KAREN_2, OPPONENT_KAREN_3, OPPONENT_KAREN_4, OPPONENT_KAREN_5},
- MAP_GROUP_ROUTE116,
- MAP_ID_ROUTE116,
+ MAP_GROUP(ROUTE116),
+ MAP_NUM(ROUTE116),
},
{
{OPPONENT_JERRY_1, OPPONENT_JERRY_2, OPPONENT_JERRY_3, OPPONENT_JERRY_4, OPPONENT_JERRY_5},
- MAP_GROUP_ROUTE116,
- MAP_ID_ROUTE116,
+ MAP_GROUP(ROUTE116),
+ MAP_NUM(ROUTE116),
},
{
{OPPONENT_ANNA_AND_MEG_1, OPPONENT_ANNA_AND_MEG_2, OPPONENT_ANNA_AND_MEG_3, OPPONENT_ANNA_AND_MEG_4, OPPONENT_ANNA_AND_MEG_5},
- MAP_GROUP_ROUTE117,
- MAP_ID_ROUTE117,
+ MAP_GROUP(ROUTE117),
+ MAP_NUM(ROUTE117),
},
{
{OPPONENT_ISABEL_1, OPPONENT_ISABEL_2, OPPONENT_ISABEL_3, OPPONENT_ISABEL_4, OPPONENT_ISABEL_5},
- MAP_GROUP_ROUTE110,
- MAP_ID_ROUTE110,
+ MAP_GROUP(ROUTE110),
+ MAP_NUM(ROUTE110),
},
{
{OPPONENT_MIGUEL_1, OPPONENT_MIGUEL_2, OPPONENT_MIGUEL_3, OPPONENT_MIGUEL_4, OPPONENT_MIGUEL_5},
- MAP_GROUP_ROUTE103,
- MAP_ID_ROUTE103,
+ MAP_GROUP(ROUTE103),
+ MAP_NUM(ROUTE103),
},
{
{OPPONENT_TIMOTHY_1, OPPONENT_TIMOTHY_2, OPPONENT_TIMOTHY_3, OPPONENT_TIMOTHY_4, OPPONENT_TIMOTHY_5},
- MAP_GROUP_ROUTE115,
- MAP_ID_ROUTE115,
+ MAP_GROUP(ROUTE115),
+ MAP_NUM(ROUTE115),
},
{
{OPPONENT_SHELBY_1, OPPONENT_SHELBY_2, OPPONENT_SHELBY_3, OPPONENT_SHELBY_4, OPPONENT_SHELBY_5},
- MAP_GROUP_MT_CHIMNEY,
- MAP_ID_MT_CHIMNEY,
+ MAP_GROUP(MT_CHIMNEY),
+ MAP_NUM(MT_CHIMNEY),
},
{
{OPPONENT_CALVIN_1, OPPONENT_CALVIN_2, OPPONENT_CALVIN_3, OPPONENT_CALVIN_4, OPPONENT_CALVIN_5},
- MAP_GROUP_ROUTE102,
- MAP_ID_ROUTE102,
+ MAP_GROUP(ROUTE102),
+ MAP_NUM(ROUTE102),
},
{
{OPPONENT_ELLIOT_1, OPPONENT_ELLIOT_2, OPPONENT_ELLIOT_3, OPPONENT_ELLIOT_4, OPPONENT_ELLIOT_5},
- MAP_GROUP_ROUTE106,
- MAP_ID_ROUTE106,
+ MAP_GROUP(ROUTE106),
+ MAP_NUM(ROUTE106),
},
{
{OPPONENT_ABIGAIL_1, OPPONENT_ABIGAIL_2, OPPONENT_ABIGAIL_3, OPPONENT_ABIGAIL_4, OPPONENT_ABIGAIL_5},
- MAP_GROUP_ROUTE110,
- MAP_ID_ROUTE110,
+ MAP_GROUP(ROUTE110),
+ MAP_NUM(ROUTE110),
},
{
{OPPONENT_BENJAMIN_1, OPPONENT_BENJAMIN_2, OPPONENT_BENJAMIN_3, OPPONENT_BENJAMIN_4, OPPONENT_BENJAMIN_5},
- MAP_GROUP_ROUTE110,
- MAP_ID_ROUTE110,
+ MAP_GROUP(ROUTE110),
+ MAP_NUM(ROUTE110),
},
{
{OPPONENT_ISAIAH_1, OPPONENT_ISAIAH_2, OPPONENT_ISAIAH_3, OPPONENT_ISAIAH_4, OPPONENT_ISAIAH_5},
- MAP_GROUP_ROUTE128,
- MAP_ID_ROUTE128,
+ MAP_GROUP(ROUTE128),
+ MAP_NUM(ROUTE128),
},
{
{OPPONENT_KATELYN_1, OPPONENT_KATELYN_2, OPPONENT_KATELYN_3, OPPONENT_KATELYN_4, OPPONENT_KATELYN_5},
- MAP_GROUP_ROUTE128,
- MAP_ID_ROUTE128,
+ MAP_GROUP(ROUTE128),
+ MAP_NUM(ROUTE128),
},
{
{OPPONENT_MARIA_1, OPPONENT_MARIA_2, OPPONENT_MARIA_3, OPPONENT_MARIA_4, OPPONENT_MARIA_5},
- MAP_GROUP_ROUTE117,
- MAP_ID_ROUTE117,
+ MAP_GROUP(ROUTE117),
+ MAP_NUM(ROUTE117),
},
{
{OPPONENT_DYLAN_1, OPPONENT_DYLAN_2, OPPONENT_DYLAN_3, OPPONENT_DYLAN_4, OPPONENT_DYLAN_5},
- MAP_GROUP_ROUTE117,
- MAP_ID_ROUTE117,
+ MAP_GROUP(ROUTE117),
+ MAP_NUM(ROUTE117),
},
{
{OPPONENT_NICOLAS_1, OPPONENT_NICOLAS_2, OPPONENT_NICOLAS_3, OPPONENT_NICOLAS_4, OPPONENT_NICOLAS_5},
- MAP_GROUP_METEOR_FALLS_1F_2R,
- MAP_ID_METEOR_FALLS_1F_2R,
+ MAP_GROUP(METEOR_FALLS_1F_2R),
+ MAP_NUM(METEOR_FALLS_1F_2R),
},
{
{OPPONENT_ROBERT_1, OPPONENT_ROBERT_2, OPPONENT_ROBERT_3, OPPONENT_ROBERT_4, OPPONENT_ROBERT_5},
- MAP_GROUP_ROUTE120,
- MAP_ID_ROUTE120,
+ MAP_GROUP(ROUTE120),
+ MAP_NUM(ROUTE120),
},
{
{OPPONENT_LAO_1, OPPONENT_LAO_2, OPPONENT_LAO_3, OPPONENT_LAO_4, OPPONENT_LAO_5},
- MAP_GROUP_ROUTE113,
- MAP_ID_ROUTE113,
+ MAP_GROUP(ROUTE113),
+ MAP_NUM(ROUTE113),
},
{
{OPPONENT_CYNDY_1, OPPONENT_CYNDY_2, OPPONENT_CYNDY_3, OPPONENT_CYNDY_4, OPPONENT_CYNDY_5},
- MAP_GROUP_ROUTE115,
- MAP_ID_ROUTE115,
+ MAP_GROUP(ROUTE115),
+ MAP_NUM(ROUTE115),
},
{
{OPPONENT_MADELINE_1, OPPONENT_MADELINE_2, OPPONENT_MADELINE_3, OPPONENT_MADELINE_4, OPPONENT_MADELINE_5},
- MAP_GROUP_ROUTE113,
- MAP_ID_ROUTE113,
+ MAP_GROUP(ROUTE113),
+ MAP_NUM(ROUTE113),
},
{
{OPPONENT_JENNY_1, OPPONENT_JENNY_2, OPPONENT_JENNY_3, OPPONENT_JENNY_4, OPPONENT_JENNY_5},
- MAP_GROUP_ROUTE124,
- MAP_ID_ROUTE124,
+ MAP_GROUP(ROUTE124),
+ MAP_NUM(ROUTE124),
},
{
{OPPONENT_DIANA_1, OPPONENT_DIANA_2, OPPONENT_DIANA_3, OPPONENT_DIANA_4, OPPONENT_DIANA_5},
- MAP_GROUP_JAGGED_PASS,
- MAP_ID_JAGGED_PASS,
+ MAP_GROUP(JAGGED_PASS),
+ MAP_NUM(JAGGED_PASS),
},
{
{OPPONENT_AMY_AND_LIV_1, OPPONENT_AMY_AND_LIV_2, OPPONENT_AMY_AND_LIV_4, OPPONENT_AMY_AND_LIV_5, OPPONENT_AMY_AND_LIV_6},
- MAP_GROUP_ROUTE103,
- MAP_ID_ROUTE103,
+ MAP_GROUP(ROUTE103),
+ MAP_NUM(ROUTE103),
},
{
{OPPONENT_ERNEST_1, OPPONENT_ERNEST_2, OPPONENT_ERNEST_3, OPPONENT_ERNEST_4, OPPONENT_ERNEST_5},
- MAP_GROUP_ROUTE125,
- MAP_ID_ROUTE125,
+ MAP_GROUP(ROUTE125),
+ MAP_NUM(ROUTE125),
},
{
{OPPONENT_EDWIN_1, OPPONENT_EDWIN_2, OPPONENT_EDWIN_3, OPPONENT_EDWIN_4, OPPONENT_EDWIN_5},
- MAP_GROUP_ROUTE110,
- MAP_ID_ROUTE110,
+ MAP_GROUP(ROUTE110),
+ MAP_NUM(ROUTE110),
},
{
{OPPONENT_LYDIA_1, OPPONENT_LYDIA_2, OPPONENT_LYDIA_3, OPPONENT_LYDIA_4, OPPONENT_LYDIA_5},
- MAP_GROUP_ROUTE117,
- MAP_ID_ROUTE117,
+ MAP_GROUP(ROUTE117),
+ MAP_NUM(ROUTE117),
},
{
{OPPONENT_ISAAC_1, OPPONENT_ISAAC_2, OPPONENT_ISAAC_3, OPPONENT_ISAAC_4, OPPONENT_ISAAC_5},
- MAP_GROUP_ROUTE117,
- MAP_ID_ROUTE117,
+ MAP_GROUP(ROUTE117),
+ MAP_NUM(ROUTE117),
},
{
{OPPONENT_CATHERINE_1, OPPONENT_CATHERINE_2, OPPONENT_CATHERINE_3, OPPONENT_CATHERINE_4, OPPONENT_CATHERINE_5},
- MAP_GROUP_ROUTE119,
- MAP_ID_ROUTE119,
+ MAP_GROUP(ROUTE119),
+ MAP_NUM(ROUTE119),
},
{
{OPPONENT_JACKSON_1, OPPONENT_JACKSON_2, OPPONENT_JACKSON_3, OPPONENT_JACKSON_4, OPPONENT_JACKSON_5},
- MAP_GROUP_ROUTE119,
- MAP_ID_ROUTE119,
+ MAP_GROUP(ROUTE119),
+ MAP_NUM(ROUTE119),
},
{
{OPPONENT_HALEY_1, OPPONENT_HALEY_2, OPPONENT_HALEY_3, OPPONENT_HALEY_4, OPPONENT_HALEY_5},
- MAP_GROUP_ROUTE104,
- MAP_ID_ROUTE104,
+ MAP_GROUP(ROUTE104),
+ MAP_NUM(ROUTE104),
},
{
{OPPONENT_JAMES_1, OPPONENT_JAMES_2, OPPONENT_JAMES_3, OPPONENT_JAMES_4, OPPONENT_JAMES_5},
- MAP_GROUP_PETALBURG_WOODS,
- MAP_ID_PETALBURG_WOODS,
+ MAP_GROUP(PETALBURG_WOODS),
+ MAP_NUM(PETALBURG_WOODS),
},
{
{OPPONENT_TRENT_1, OPPONENT_TRENT_2, OPPONENT_TRENT_3, OPPONENT_TRENT_4, OPPONENT_TRENT_5},
- MAP_GROUP_ROUTE112,
- MAP_ID_ROUTE112,
+ MAP_GROUP(ROUTE112),
+ MAP_NUM(ROUTE112),
},
{
{OPPONENT_LOIS_AND_HAL_1, OPPONENT_LOIS_AND_HAL_2, OPPONENT_LOIS_AND_HAL_3, OPPONENT_LOIS_AND_HAL_4, OPPONENT_LOIS_AND_HAL_5},
- MAP_GROUP_ABANDONED_SHIP_ROOMS2_1F,
- MAP_ID_ABANDONED_SHIP_ROOMS2_1F,
+ MAP_GROUP(ABANDONED_SHIP_ROOMS2_1F),
+ MAP_NUM(ABANDONED_SHIP_ROOMS2_1F),
},
{
{OPPONENT_WALLY_3, OPPONENT_WALLY_4, OPPONENT_WALLY_5, OPPONENT_WALLY_6, OPPONENT_NONE},
- MAP_GROUP_VICTORY_ROAD_1F,
- MAP_ID_VICTORY_ROAD_1F,
+ MAP_GROUP(VICTORY_ROAD_1F),
+ MAP_NUM(VICTORY_ROAD_1F),
},
};
-static const u16 sBadgeFlags[] = {BADGE01_GET, BADGE02_GET, BADGE03_GET, BADGE04_GET, BADGE05_GET, BADGE06_GET, BADGE07_GET, BADGE08_GET};
+static const u16 sBadgeFlags[] =
+{
+ FLAG_BADGE01_GET,
+ FLAG_BADGE02_GET,
+ FLAG_BADGE03_GET,
+ FLAG_BADGE04_GET,
+ FLAG_BADGE05_GET,
+ FLAG_BADGE06_GET,
+ FLAG_BADGE07_GET,
+ FLAG_BADGE08_GET,
+};
static void DoStandardWildBattle(void);
static void DoSafariBattle(void);
@@ -682,7 +692,7 @@ s8 BattleSetup_GetTerrain(void)
if (MetatileBehavior_IsBridge(tileBehavior) == TRUE)
return BATTLE_TERRAIN_WATER;
}
- if (gSaveBlock1.location.mapGroup == MAP_GROUP_ROUTE113 && gSaveBlock1.location.mapNum == MAP_ID_ROUTE113)
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP(ROUTE113) && gSaveBlock1.location.mapNum == MAP_NUM(ROUTE113))
return BATTLE_TERRAIN_SAND;
if (GetSav1Weather() == 8)
return BATTLE_TERRAIN_SAND;
@@ -848,8 +858,8 @@ static void CB2_GiveStarter(void)
{
u16 starterPoke;
- *GetVarPointer(0x4023) = gScriptResult;
- starterPoke = GetStarterPokemon(gScriptResult);
+ *GetVarPointer(0x4023) = gSpecialVar_Result;
+ starterPoke = GetStarterPokemon(gSpecialVar_Result);
ScriptGiveMon(starterPoke, 5, 0, 0, 0, 0);
ResetTasks();
sub_80408BC();
@@ -880,19 +890,20 @@ static void CB2_EndFirstBattle(void)
SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
}
+// why not just use the macros? maybe its because they didnt want to uncast const every time?
static u32 TrainerBattleLoadArg32(const u8 *ptr)
{
- return ptr[0] | (ptr[1] << 8) | (ptr[2] << 16) | (ptr[3] << 24);
+ return T1_READ_32(ptr);
}
static u16 TrainerBattleLoadArg16(const u8 *ptr)
{
- return ptr[0] | (ptr[1] << 8);
+ return T1_READ_16(ptr);
}
static u8 TrainerBattleLoadArg8(const u8 *ptr)
{
- return ptr[0];
+ return T1_READ_8(ptr);
}
static u16 CurrentOpponentTrainerFlag(void)
@@ -969,7 +980,7 @@ static void battle_80801F0(void)
{
if (sTrainerMapObjectLocalId)
{
- gScriptLastTalked = sTrainerMapObjectLocalId;
+ gSpecialVar_LastTalked = sTrainerMapObjectLocalId;
gSelectedMapObject = GetFieldObjectIdByLocalIdAndMap(sTrainerMapObjectLocalId, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
}
}
@@ -1018,7 +1029,7 @@ u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
void TrainerWantsBattle(u8 trainerMapObjId, u8 *trainerScript)
{
gSelectedMapObject = trainerMapObjId;
- gScriptLastTalked = gMapObjects[trainerMapObjId].localId;
+ gSpecialVar_LastTalked = gMapObjects[trainerMapObjId].localId;
BattleSetup_ConfigureTrainerBattle(trainerScript + 1);
ScriptContext1_SetupScript(gUnknown_0819F80B);
ScriptContext2_Enable();
@@ -1123,8 +1134,8 @@ void ScrSpecial_StartTrainerEyeRematch(void)
ScriptContext1_Stop();
}
-static u8 *GetTrainerIntroSpeech(void);
-static u8 *GetTrainerNonBattlingSpeech(void);
+static const u8 *GetTrainerIntroSpeech(void);
+static const u8 *GetTrainerNonBattlingSpeech(void);
void ScrSpecial_ShowTrainerIntroSpeech(void)
{
@@ -1207,22 +1218,22 @@ void PlayTrainerEncounterMusic(void)
}
//Returns an empty string if a null pointer was passed, otherwise returns str
-static u8 *SanitizeString(const u8 *str)
+static const u8 *SanitizeString(const u8 *str)
{
if (str)
- return (u8 *) str;
+ return str;
else
- return (u8 *) gOtherText_CancelWithTerminator;
+ return gOtherText_CancelWithTerminator;
}
-static u8 *GetTrainerIntroSpeech(void)
+static const u8 *GetTrainerIntroSpeech(void)
{
return SanitizeString(sTrainerIntroSpeech);
}
u8 *sub_8082830(void)
{
- u8 *str;
+ const u8 *str;
if (gTrainerBattleOpponent == 1024)
str = sub_80BCCE8();
@@ -1233,12 +1244,12 @@ u8 *sub_8082830(void)
return gStringVar4;
}
-u8 *unref_sub_808286C(void)
+const u8 *unref_sub_808286C(void)
{
return SanitizeString(sTrainerVictorySpeech);
}
-static u8 *GetTrainerNonBattlingSpeech(void)
+static const u8 *GetTrainerNonBattlingSpeech(void)
{
return SanitizeString(sTrainerCannotBattleSpeech);
}
diff --git a/src/battle/battle_transition.c b/src/battle/battle_transition.c
index 53d32d03a..985f43945 100644
--- a/src/battle/battle_transition.c
+++ b/src/battle/battle_transition.c
@@ -6,19 +6,19 @@
#include "palette.h"
#include "trig.h"
#include "field_effect.h"
-#include "rng.h"
+#include "random.h"
#include "sprite.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "trainer.h"
#include "field_camera.h"
+#include "ewram.h"
+#include "unknown_task.h"
void sub_807DE10(void);
void dp12_8087EA4(void);
-extern u8 ewram[];
extern u16 gUnknown_03005560[];
-extern u16 gUnknown_03004DE0[][0x3C0];
extern const struct OamData gFieldOamData_32x32;
@@ -45,7 +45,6 @@ struct TransitionData
s16 data[11];
};
-#define TRANSITION_STRUCT (*(struct TransitionData *) (ewram + 0xC000))
typedef bool8 (*TransitionState)(struct Task* task);
typedef bool8 (*TransitionSpriteCallback)(struct Sprite* sprite);
@@ -1020,9 +1019,9 @@ bool8 FldEff_Pokeball(void)
u8 spriteID = CreateSpriteAtEnd(&sSpriteTemplate_83FD98C, gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
gSprites[spriteID].oam.priority = 0;
gSprites[spriteID].oam.affineMode = 1;
- gSprites[spriteID].data0 = gFieldEffectArguments[2];
- gSprites[spriteID].data1 = gFieldEffectArguments[3];
- gSprites[spriteID].data2 = -1;
+ gSprites[spriteID].data[0] = gFieldEffectArguments[2];
+ gSprites[spriteID].data[1] = gFieldEffectArguments[3];
+ gSprites[spriteID].data[2] = -1;
InitSpriteAffineAnim(&gSprites[spriteID]);
StartSpriteAffineAnim(&gSprites[spriteID], gFieldEffectArguments[2]);
return FALSE;
@@ -1039,8 +1038,8 @@ static void sub_811B720(struct Sprite* sprite)
s16 arr0[2];
memcpy(arr0, sUnknown_083FD7F2, sizeof(sUnknown_083FD7F2));
- if (sprite->data1 != 0)
- sprite->data1--;
+ if (sprite->data[1] != 0)
+ sprite->data[1]--;
else
{
if (sprite->pos1.x >= 0 && sprite->pos1.x <= 240)
@@ -1048,12 +1047,12 @@ static void sub_811B720(struct Sprite* sprite)
s16 posX = sprite->pos1.x >> 3;
s16 posY = sprite->pos1.y >> 3;
- if (posX != sprite->data2)
+ if (posX != sprite->data[2])
{
u32 var;
u16 *ptr;
- sprite->data2 = posX;
+ sprite->data[2] = posX;
var = (((REG_BG0CNT >> 8) & 0x1F) << 11); // r2
ptr = (u16 *)(VRAM + var);
@@ -1063,7 +1062,7 @@ static void sub_811B720(struct Sprite* sprite)
SOME_VRAM_STORE(ptr, posY + 1, posX, 0xF001);
}
}
- sprite->pos1.x += arr0[sprite->data0];
+ sprite->pos1.x += arr0[sprite->data[0]];
if (sprite->pos1.x < -15 || sprite->pos1.x > 255)
FieldEffectStop(sprite, FLDEFF_POKEBALL);
}
@@ -1734,8 +1733,8 @@ static void Mugshots_CreateOpponentPlayerSprites(struct Task* task)
task->tMugshotOpponentID = CreateTrainerSprite(sMugshotsTrainerPicIDsTable[mugshotID],
sMugshotsOpponentCoords[mugshotID][0] - 32,
sMugshotsOpponentCoords[mugshotID][1] + 42,
- 0, &ewram[0xC03C]);
- task->tMugshotPlayerID = CreateTrainerSprite(gSaveBlock2.playerGender, 272, 106, 0, &ewram[0xC03C]);
+ 0, ewramC03C);
+ task->tMugshotPlayerID = CreateTrainerSprite(gSaveBlock2.playerGender, 272, 106, 0, ewramC03C);
opponentSprite = &gSprites[task->tMugshotOpponentID];
playerSprite = &gSprites[task->tMugshotPlayerID];
@@ -1764,7 +1763,7 @@ static void Mugshots_CreateOpponentPlayerSprites(struct Task* task)
static void sub_811C90C(struct Sprite* sprite)
{
- while (sUnknown_083FD880[sprite->data0](sprite));
+ while (sUnknown_083FD880[sprite->data[0]](sprite));
}
static bool8 sub_811C934(struct Sprite* sprite)
@@ -1780,57 +1779,57 @@ static bool8 sub_811C938(struct Sprite* sprite)
memcpy(arr0, sUnknown_083FD89C, sizeof(sUnknown_083FD89C));
memcpy(arr1, sUnknown_083FD8A0, sizeof(sUnknown_083FD8A0));
- sprite->data0++;
- sprite->data1 = arr0[sprite->data7];
- sprite->data2 = arr1[sprite->data7];
+ sprite->data[0]++;
+ sprite->data[1] = arr0[sprite->data[7]];
+ sprite->data[2] = arr1[sprite->data[7]];
return TRUE;
}
static bool8 sub_811C984(struct Sprite* sprite)
{
- sprite->pos1.x += sprite->data1;
- if (sprite->data7 && sprite->pos1.x < 133)
- sprite->data0++;
- else if (!sprite->data7 && sprite->pos1.x > 103)
- sprite->data0++;
+ sprite->pos1.x += sprite->data[1];
+ if (sprite->data[7] && sprite->pos1.x < 133)
+ sprite->data[0]++;
+ else if (!sprite->data[7] && sprite->pos1.x > 103)
+ sprite->data[0]++;
return FALSE;
}
static bool8 sub_811C9B8(struct Sprite* sprite)
{
- sprite->data1 += sprite->data2;
- sprite->pos1.x += sprite->data1;
- if (sprite->data1 == 0)
+ sprite->data[1] += sprite->data[2];
+ sprite->pos1.x += sprite->data[1];
+ if (sprite->data[1] == 0)
{
- sprite->data0++;
- sprite->data2 = -sprite->data2;
- sprite->data6 = 1;
+ sprite->data[0]++;
+ sprite->data[2] = -sprite->data[2];
+ sprite->data[6] = 1;
}
return FALSE;
}
static bool8 sub_811C9E4(struct Sprite* sprite)
{
- sprite->data1 += sprite->data2;
- sprite->pos1.x += sprite->data1;
+ sprite->data[1] += sprite->data[2];
+ sprite->pos1.x += sprite->data[1];
if (sprite->pos1.x < -31 || sprite->pos1.x > 271)
- sprite->data0++;
+ sprite->data[0]++;
return FALSE;
}
static void sub_811CA10(s16 spriteID, s16 value)
{
- gSprites[spriteID].data7 = value;
+ gSprites[spriteID].data[7] = value;
}
static void sub_811CA28(s16 spriteID)
{
- gSprites[spriteID].data0++;
+ gSprites[spriteID].data[0]++;
}
static s16 sub_811CA44(s16 spriteID)
{
- return gSprites[spriteID].data6;
+ return gSprites[spriteID].data[6];
}
#undef tMugshotOpponentID
@@ -1982,9 +1981,9 @@ static bool8 Phase2_Transition_WhiteFade_Func2(struct Task* task)
sprite = &gSprites[CreateInvisibleSprite(sub_811CFD0)];
sprite->pos1.x = 0xF0;
sprite->pos1.y = posY;
- sprite->data5 = arr1[i];
+ sprite->data[5] = arr1[i];
}
- sprite->data6++;
+ sprite->data[6]++;
task->tState++;
return FALSE;
@@ -2061,10 +2060,10 @@ static void HBlankCB_Phase2_Transition_WhiteFade(void)
static void sub_811CFD0(struct Sprite* sprite)
{
- if (sprite->data5)
+ if (sprite->data[5])
{
- sprite->data5--;
- if (sprite->data6)
+ sprite->data[5]--;
+ if (sprite->data[6])
TRANSITION_STRUCT.VBlank_DMA = 1;
}
else
@@ -2074,26 +2073,26 @@ static void sub_811CFD0(struct Sprite* sprite)
u16* ptr2 = &gUnknown_03004DE0[0][sprite->pos1.y + 160];
for (i = 0; i < 20; i++)
{
- ptr1[i] = sprite->data0 >> 8;
+ ptr1[i] = sprite->data[0] >> 8;
ptr2[i] = (u8)(sprite->pos1.x);
}
- if (sprite->pos1.x == 0 && sprite->data0 == 0x1000)
- sprite->data1 = 1;
+ if (sprite->pos1.x == 0 && sprite->data[0] == 0x1000)
+ sprite->data[1] = 1;
sprite->pos1.x -= 16;
- sprite->data0 += 0x80;
+ sprite->data[0] += 0x80;
if (sprite->pos1.x < 0)
sprite->pos1.x = 0;
- if (sprite->data0 > 0x1000)
- sprite->data0 = 0x1000;
+ if (sprite->data[0] > 0x1000)
+ sprite->data[0] = 0x1000;
- if (sprite->data6)
+ if (sprite->data[6])
TRANSITION_STRUCT.VBlank_DMA = 1;
- if (sprite->data1)
+ if (sprite->data[1])
{
- if (sprite->data6 == 0 || (TRANSITION_STRUCT.field_20 > 6 && sprite->data2++ > 7))
+ if (sprite->data[6] == 0 || (TRANSITION_STRUCT.field_20 > 6 && sprite->data[2]++ > 7))
{
TRANSITION_STRUCT.field_20++;
DestroySprite(sprite);
diff --git a/src/battle/calculate_base_damage.c b/src/battle/calculate_base_damage.c
index f5c679876..5c91b3657 100644
--- a/src/battle/calculate_base_damage.c
+++ b/src/battle/calculate_base_damage.c
@@ -1,18 +1,18 @@
#include "global.h"
-#include "abilities.h"
+#include "constants/abilities.h"
#include "battle.h"
#include "berry.h"
#include "data2.h"
#include "event_data.h"
-#include "hold_effects.h"
+#include "constants/hold_effects.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "pokemon.h"
-#include "species.h"
-#include "moves.h"
-#include "battle_move_effects.h"
+#include "constants/species.h"
+#include "constants/moves.h"
+#include "constants/battle_move_effects.h"
+#include "ewram.h"
-extern u32 dword_2017100[];
extern u16 gBattleTypeFlags;
extern struct BattlePokemon gBattleMons[4];
extern u16 gCurrentMove;
@@ -90,7 +90,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de
{
if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)
&& gTrainerBattleOpponent != 1024
- && FlagGet(BADGE01_GET)
+ && FlagGet(FLAG_BADGE01_GET)
&& !GetBankSide(bankAtk))
attack = (110 * attack) / 100;
}
@@ -98,7 +98,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de
{
if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)
&& gTrainerBattleOpponent != 1024
- && FlagGet(BADGE05_GET)
+ && FlagGet(FLAG_BADGE05_GET)
&& !GetBankSide(bankDef))
defense = (110 * defense) / 100;
}
@@ -106,7 +106,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de
{
if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)
&& gTrainerBattleOpponent != 1024
- && FlagGet(BADGE07_GET)
+ && FlagGet(FLAG_BADGE07_GET)
&& !GetBankSide(bankAtk))
spAttack = (110 * spAttack) / 100;
}
@@ -114,7 +114,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de
{
if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)
&& gTrainerBattleOpponent != 1024
- && FlagGet(BADGE07_GET)
+ && FlagGet(FLAG_BADGE07_GET)
&& !GetBankSide(bankDef))
spDefense = (110 * spDefense) / 100;
}
@@ -301,7 +301,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de
}
// flash fire triggered
- if ((dword_2017100[bankAtk] & 1) && type == TYPE_FIRE)
+ if ((eFlashFireArr.arr[bankAtk] & 1) && type == TYPE_FIRE)
damage = (15 * damage) / 10;
}
diff --git a/src/battle/pokeball.c b/src/battle/pokeball.c
index ee3b95678..12fd5e5d9 100644
--- a/src/battle/pokeball.c
+++ b/src/battle/pokeball.c
@@ -8,12 +8,13 @@
#include "pokeball.h"
#include "pokemon.h"
#include "rom_8077ABC.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "task.h"
#include "trig.h"
#include "util.h"
+#include "ewram.h"
extern struct MusicPlayerInfo gMPlay_BGM;
extern u16 gBattleTypeFlags;
@@ -363,9 +364,9 @@ static void sub_8046464(u8 taskId)
r4 = ball_number_to_ball_processing_index(ball);
sub_80478DC(r4);
spriteId = CreateSprite(&gBallSpriteTemplates[r4], 32, 80, 0x1D);
- gSprites[spriteId].data0 = 0x80;
- gSprites[spriteId].data1 = 0;
- gSprites[spriteId].data7 = r8;
+ gSprites[spriteId].data[0] = 0x80;
+ gSprites[spriteId].data[1] = 0;
+ gSprites[spriteId].data[7] = r8;
switch (r8)
{
case 0xFF:
@@ -378,7 +379,7 @@ static void sub_8046464(u8 taskId)
gSprites[spriteId].pos1.x = sub_8077ABC(r5, 0);
gSprites[spriteId].pos1.y = sub_8077ABC(r5, 1) + 24;
gBankTarget = r5;
- gSprites[spriteId].data0 = 0;
+ gSprites[spriteId].data[0] = 0;
gSprites[spriteId].callback = sub_8047254;
break;
default:
@@ -386,16 +387,16 @@ static void sub_8046464(u8 taskId)
sp0 = TRUE;
break;
}
- gSprites[spriteId].data6 = gBankTarget;
+ gSprites[spriteId].data[6] = gBankTarget;
if (!sp0)
{
DestroyTask(taskId);
return;
}
- gSprites[spriteId].data0 = 0x22;
- gSprites[spriteId].data2 = sub_8077ABC(gBankTarget, 0);
- gSprites[spriteId].data4 = sub_8077ABC(gBankTarget, 1) - 16;
- gSprites[spriteId].data5 = -40;
+ gSprites[spriteId].data[0] = 0x22;
+ gSprites[spriteId].data[2] = sub_8077ABC(gBankTarget, 0);
+ gSprites[spriteId].data[4] = sub_8077ABC(gBankTarget, 1) - 16;
+ gSprites[spriteId].data[5] = -40;
sub_80786EC(&gSprites[spriteId]);
gSprites[spriteId].oam.affineParam = taskId;
gTasks[taskId].data[4] = gBankTarget;
@@ -418,12 +419,12 @@ static void objc_0804ABD4(struct Sprite *sprite)
sprite->pos1.y += sprite->pos2.y;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- sprite->data5 = 0;
+ sprite->data[5] = 0;
r4 = ball_number_to_ball_processing_index(sub_8047978(r5));
sub_814086C(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, r4);
- sprite->data0 = sub_8141314(0, r5, 14, r4);
- sprite->data6 = r5;
- sprite->data7 = r8;
+ sprite->data[0] = sub_8141314(0, r5, 14, r4);
+ sprite->data[6] = r5;
+ sprite->data[7] = r8;
DestroyTask(taskId);
sprite->callback = sub_80466E8;
}
@@ -436,33 +437,33 @@ static void sub_80466E8(struct Sprite *sprite)
static void sub_80466F4(struct Sprite *sprite)
{
- sprite->data5++;
- if (sprite->data5 == 10)
+ sprite->data[5]++;
+ if (sprite->data[5] == 10)
{
- sprite->data5 = 0;
+ sprite->data[5] = 0;
sprite->callback = sub_8046760;
- StartSpriteAffineAnim(&gSprites[gObjectBankIDs[sprite->data6]], 2);
- AnimateSprite(&gSprites[gObjectBankIDs[sprite->data6]]);
- gSprites[gObjectBankIDs[sprite->data6]].data1 = 0;
+ StartSpriteAffineAnim(&gSprites[gObjectBankIDs[sprite->data[6]]], 2);
+ AnimateSprite(&gSprites[gObjectBankIDs[sprite->data[6]]]);
+ gSprites[gObjectBankIDs[sprite->data[6]]].data[1] = 0;
}
}
static void sub_8046760(struct Sprite *sprite)
{
- sprite->data5++;
- if (sprite->data5 == 11)
+ sprite->data[5]++;
+ if (sprite->data[5] == 11)
PlaySE(SE_SUIKOMU);
- if (gSprites[gObjectBankIDs[sprite->data6]].affineAnimEnded)
+ if (gSprites[gObjectBankIDs[sprite->data[6]]].affineAnimEnded)
{
StartSpriteAnim(sprite, 2);
- gSprites[gObjectBankIDs[sprite->data6]].invisible = TRUE;
- sprite->data5 = 0;
+ gSprites[gObjectBankIDs[sprite->data[6]]].invisible = TRUE;
+ sprite->data[5] = 0;
sprite->callback = sub_80467F8;
}
else
{
- gSprites[gObjectBankIDs[sprite->data6]].data1 += 0x60;
- gSprites[gObjectBankIDs[sprite->data6]].pos2.y = -gSprites[gObjectBankIDs[sprite->data6]].data1 >> 8;
+ gSprites[gObjectBankIDs[sprite->data[6]]].data[1] += 0x60;
+ gSprites[gObjectBankIDs[sprite->data[6]]].pos2.y = -gSprites[gObjectBankIDs[sprite->data[6]]].data[1] >> 8;
}
}
@@ -470,14 +471,14 @@ static void sub_80467F8(struct Sprite *sprite)
{
if (sprite->animEnded)
{
- sprite->data5++;
- if (sprite->data5 == 1)
+ sprite->data[5]++;
+ if (sprite->data[5] == 1)
{
- sprite->data3 = 0;
- sprite->data4 = 32;
- sprite->data5 = 0;
+ sprite->data[3] = 0;
+ sprite->data[4] = 32;
+ sprite->data[5] = 0;
sprite->pos1.y += Cos(0, 32);
- sprite->pos2.y = -Cos(0, sprite->data4);
+ sprite->pos2.y = -Cos(0, sprite->data[4]);
sprite->callback = sub_804684C;
}
}
@@ -487,18 +488,18 @@ static void sub_804684C(struct Sprite *sprite)
{
bool8 r5 = FALSE;
- switch (sprite->data3 & 0xFF)
+ switch (sprite->data[3] & 0xFF)
{
case 0:
- sprite->pos2.y = -Cos(sprite->data5, sprite->data4);
- sprite->data5 += 4 + (sprite->data3 >> 8);
- if (sprite->data5 >= 64)
+ sprite->pos2.y = -Cos(sprite->data[5], sprite->data[4]);
+ sprite->data[5] += 4 + (sprite->data[3] >> 8);
+ if (sprite->data[5] >= 64)
{
- sprite->data4 -= 10;
- sprite->data3 += 0x101;
- if (sprite->data3 >> 8 == 4)
+ sprite->data[4] -= 10;
+ sprite->data[3] += 0x101;
+ if (sprite->data[3] >> 8 == 4)
r5 = TRUE;
- switch (sprite->data3 >> 8)
+ switch (sprite->data[3] >> 8)
{
case 1:
PlaySE(SE_KON);
@@ -516,39 +517,39 @@ static void sub_804684C(struct Sprite *sprite)
}
break;
case 1:
- sprite->pos2.y = -Cos(sprite->data5, sprite->data4);
- sprite->data5 -= 4 + (sprite->data3 >> 8);
- if (sprite->data5 <= 0)
+ sprite->pos2.y = -Cos(sprite->data[5], sprite->data[4]);
+ sprite->data[5] -= 4 + (sprite->data[3] >> 8);
+ if (sprite->data[5] <= 0)
{
- sprite->data5 = 0;
- sprite->data3 &= 0xFF00;
+ sprite->data[5] = 0;
+ sprite->data[3] &= 0xFF00;
}
break;
}
if (r5)
{
- sprite->data3 = 0;
+ sprite->data[3] = 0;
sprite->pos1.y += Cos(64, 32);
sprite->pos2.y = 0;
- if (sprite->data7 == 0)
+ if (sprite->data[7] == 0)
{
sprite->callback = sub_8046C78;
}
else
{
sprite->callback = sub_8046944;
- sprite->data4 = 1;
- sprite->data5 = 0;
+ sprite->data[4] = 1;
+ sprite->data[5] = 0;
}
}
}
static void sub_8046944(struct Sprite *sprite)
{
- sprite->data3++;
- if (sprite->data3 == 31)
+ sprite->data[3]++;
+ if (sprite->data[3] == 31)
{
- sprite->data3 = 0;
+ sprite->data[3] = 0;
sprite->affineAnimPaused = TRUE;
StartSpriteAffineAnim(sprite, 1);
sprite->callback = sub_8046984;
@@ -558,28 +559,28 @@ static void sub_8046944(struct Sprite *sprite)
static void sub_8046984(struct Sprite *sprite)
{
- switch (sprite->data3 & 0xFF)
+ switch (sprite->data[3] & 0xFF)
{
case 0:
case 2:
- sprite->pos2.x += sprite->data4;
- sprite->data5 += sprite->data4;
+ sprite->pos2.x += sprite->data[4];
+ sprite->data[5] += sprite->data[4];
sprite->affineAnimPaused = FALSE;
- if (sprite->data5 > 3 || sprite->data5 < -3)
+ if (sprite->data[5] > 3 || sprite->data[5] < -3)
{
- sprite->data3++;
- sprite->data5 = 0;
+ sprite->data[3]++;
+ sprite->data[5] = 0;
}
break;
case 1:
- sprite->data5++;
- if (sprite->data5 == 1)
+ sprite->data[5]++;
+ if (sprite->data[5] == 1)
{
- sprite->data5 = 0;
- sprite->data4 = -sprite->data4;
- sprite->data3++;
+ sprite->data[5] = 0;
+ sprite->data[4] = -sprite->data[4];
+ sprite->data[3]++;
sprite->affineAnimPaused = FALSE;
- if (sprite->data4 < 0)
+ if (sprite->data[4] < 0)
ChangeSpriteAffineAnim(sprite, 2);
else
ChangeSpriteAffineAnim(sprite, 1);
@@ -590,34 +591,34 @@ static void sub_8046984(struct Sprite *sprite)
}
break;
case 3:
- sprite->data3 += 0x100;
- if (sprite->data3 >> 8 == sprite->data7)
+ sprite->data[3] += 0x100;
+ if (sprite->data[3] >> 8 == sprite->data[7])
{
sprite->callback = sub_8046C78;
}
else
{
- if (sprite->data7 == 4 && sprite->data3 >> 8 == 3)
+ if (sprite->data[7] == 4 && sprite->data[3] >> 8 == 3)
{
sprite->callback = sub_8046E7C;
sprite->affineAnimPaused = TRUE;
}
else
{
- sprite->data3++;
+ sprite->data[3]++;
sprite->affineAnimPaused = TRUE;
}
}
break;
case 4:
default:
- sprite->data5++;
- if (sprite->data5 == 31)
+ sprite->data[5]++;
+ if (sprite->data[5] == 31)
{
- sprite->data5 = 0;
- sprite->data3 &= 0xFF00;
+ sprite->data[5] = 0;
+ sprite->data[3] &= 0xFF00;
StartSpriteAffineAnim(sprite, 3);
- if (sprite->data4 < 0)
+ if (sprite->data[4] < 0)
StartSpriteAffineAnim(sprite, 2);
else
StartSpriteAffineAnim(sprite, 1);
@@ -694,13 +695,13 @@ static void sub_8046AD0(u8 taskId)
static void sub_8046C78(struct Sprite *sprite)
{
- u8 r5 = sprite->data6;
+ u8 r5 = sprite->data[6];
u32 r4; // not sure of this type
StartSpriteAnim(sprite, 1);
r4 = ball_number_to_ball_processing_index(sub_8047978(r5));
sub_814086C(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, r4);
- sprite->data0 = sub_8141314(1, sprite->data6, 14, r4);
+ sprite->data[0] = sub_8141314(1, sprite->data[6], 14, r4);
sprite->callback = sub_8046E9C;
if (gMain.inBattle)
{
@@ -746,24 +747,24 @@ static void sub_8046C78(struct Sprite *sprite)
gTasks[taskId].data[2] = r4_2;
gTasks[taskId].data[15] = 0;
}
- StartSpriteAffineAnim(&gSprites[gObjectBankIDs[sprite->data6]], 1);
- AnimateSprite(&gSprites[gObjectBankIDs[sprite->data6]]);
- gSprites[gObjectBankIDs[sprite->data6]].data1 = 0x1000;
+ StartSpriteAffineAnim(&gSprites[gObjectBankIDs[sprite->data[6]]], 1);
+ AnimateSprite(&gSprites[gObjectBankIDs[sprite->data[6]]]);
+ gSprites[gObjectBankIDs[sprite->data[6]]].data[1] = 0x1000;
}
static void sub_8046E7C(struct Sprite *sprite)
{
sprite->animPaused = TRUE;
sprite->callback = sub_8046FBC;
- sprite->data3 = 0;
- sprite->data4 = 0;
- sprite->data5 = 0;
+ sprite->data[3] = 0;
+ sprite->data[4] = 0;
+ sprite->data[5] = 0;
}
static void sub_8046E9C(struct Sprite *sprite)
{
bool8 r7 = FALSE;
- u8 r4 = sprite->data6;
+ u8 r4 = sprite->data[6];
gSprites[gObjectBankIDs[r4]].invisible = FALSE;
if (sprite->animEnded)
@@ -775,8 +776,8 @@ static void sub_8046E9C(struct Sprite *sprite)
}
else
{
- gSprites[gObjectBankIDs[r4]].data1 -= 288;
- gSprites[gObjectBankIDs[r4]].pos2.y = gSprites[gObjectBankIDs[r4]].data1 >> 8;
+ gSprites[gObjectBankIDs[r4]].data[1] -= 288;
+ gSprites[gObjectBankIDs[r4]].pos2.y = gSprites[gObjectBankIDs[r4]].data[1] >> 8;
}
if (sprite->animEnded && r7)
{
@@ -803,23 +804,23 @@ static void sub_8046E9C(struct Sprite *sprite)
static void sub_8046FBC(struct Sprite *sprite)
{
- u8 r7 = sprite->data6;
+ u8 r7 = sprite->data[6];
- sprite->data4++;
- if (sprite->data4 == 40)
+ sprite->data[4]++;
+ if (sprite->data[4] == 40)
{
return;
}
- else if (sprite->data4 == 95)
+ else if (sprite->data[4] == 95)
{
gDoingBattleAnim = 0;
m4aMPlayAllStop();
PlaySE(BGM_FANFA5);
}
- else if (sprite->data4 == 315)
+ else if (sprite->data[4] == 315)
{
- FreeOamMatrix(gSprites[gObjectBankIDs[sprite->data6]].oam.matrixNum);
- DestroySprite(&gSprites[gObjectBankIDs[sprite->data6]]);
+ FreeOamMatrix(gSprites[gObjectBankIDs[sprite->data[6]]].oam.matrixNum);
+ DestroySprite(&gSprites[gObjectBankIDs[sprite->data[6]]]);
DestroySpriteAndFreeResources(sprite);
if (gMain.inBattle)
ewram17810[r7].unk0_3 = 0;
@@ -828,11 +829,11 @@ static void sub_8046FBC(struct Sprite *sprite)
static void sub_8047074(struct Sprite *sprite)
{
- sprite->data0 = 25;
- sprite->data2 = sub_8077ABC(sprite->data6, 2);
- sprite->data4 = sub_8077ABC(sprite->data6, 3) + 24;
- sprite->data5 = -30;
- sprite->oam.affineParam = sprite->data6;
+ sprite->data[0] = 25;
+ sprite->data[2] = sub_8077ABC(sprite->data[6], 2);
+ sprite->data[4] = sub_8077ABC(sprite->data[6], 3) + 24;
+ sprite->data[5] = -30;
+ sprite->oam.affineParam = sprite->data[6];
sub_80786EC(sprite);
sprite->callback = sub_80470C4;
}
@@ -844,33 +845,33 @@ static void sub_80470C4(struct Sprite *sprite)
u32 r6;
u32 r7;
- if (HIBYTE(sprite->data7) >= 35 && HIBYTE(sprite->data7) < 80)
+ if (HIBYTE(sprite->data[7]) >= 35 && HIBYTE(sprite->data[7]) < 80)
{
s16 r4;
if ((sprite->oam.affineParam & 0xFF00) == 0)
{
- r6 = sprite->data1 & 1;
- r7 = sprite->data2 & 1;
- sprite->data1 = ((sprite->data1 / 3) & ~1) | r6;
- sprite->data2 = ((sprite->data2 / 3) & ~1) | r7;
+ r6 = sprite->data[1] & 1;
+ r7 = sprite->data[2] & 1;
+ sprite->data[1] = ((sprite->data[1] / 3) & ~1) | r6;
+ sprite->data[2] = ((sprite->data[2] / 3) & ~1) | r7;
StartSpriteAffineAnim(sprite, 4);
}
- r4 = sprite->data0;
+ r4 = sprite->data[0];
sub_8078B5C(sprite);
- sprite->data7 += sprite->data6 / 3;
- sprite->pos2.y += Sin(HIBYTE(sprite->data7), sprite->data5);
+ sprite->data[7] += sprite->data[6] / 3;
+ sprite->pos2.y += Sin(HIBYTE(sprite->data[7]), sprite->data[5]);
sprite->oam.affineParam += 0x100;
if ((sprite->oam.affineParam >> 8) % 3 != 0)
- sprite->data0 = r4;
+ sprite->data[0] = r4;
else
- sprite->data0 = r4 - 1;
- if (HIBYTE(sprite->data7) >= 80)
+ sprite->data[0] = r4 - 1;
+ if (HIBYTE(sprite->data[7]) >= 80)
{
- r6 = sprite->data1 & 1;
- r7 = sprite->data2 & 1;
- sprite->data1 = ((sprite->data1 * 3) & ~1) | r6;
- sprite->data2 = ((sprite->data2 * 3) & ~1) | r7;
+ r6 = sprite->data[1] & 1;
+ r7 = sprite->data[2] & 1;
+ sprite->data[1] = ((sprite->data[1] * 3) & ~1) | r6;
+ sprite->data[2] = ((sprite->data[2] * 3) & ~1) | r7;
}
}
else
@@ -881,10 +882,10 @@ static void sub_80470C4(struct Sprite *sprite)
sprite->pos1.y += sprite->pos2.y;
sprite->pos2.y = 0;
sprite->pos2.x = 0;
- sprite->data6 = sprite->oam.affineParam & 0xFF;
- sprite->data0 = 0;
+ sprite->data[6] = sprite->oam.affineParam & 0xFF;
+ sprite->data[0] = 0;
if (IsDoubleBattle() && ewram17840.unk9_0
- && sprite->data6 == GetBankByPlayerAI(2))
+ && sprite->data[6] == GetBankByPlayerAI(2))
sprite->callback = sub_8047230;
else
sprite->callback = sub_8046C78;
@@ -895,21 +896,21 @@ static void sub_80470C4(struct Sprite *sprite)
static void sub_8047230(struct Sprite *sprite)
{
- if (sprite->data0++ > 24)
+ if (sprite->data[0]++ > 24)
{
- sprite->data0 = 0;
+ sprite->data[0] = 0;
sprite->callback = sub_8046C78;
}
}
static void sub_8047254(struct Sprite *sprite)
{
- sprite->data0++;
- if (sprite->data0 > 15)
+ sprite->data[0]++;
+ if (sprite->data[0] > 15)
{
- sprite->data0 = 0;
+ sprite->data[0] = 0;
if (IsDoubleBattle() && ewram17840.unk9_0
- && sprite->data6 == GetBankByPlayerAI(3))
+ && sprite->data[6] == GetBankByPlayerAI(3))
sprite->callback = sub_8047230;
else
sprite->callback = sub_8046C78;
@@ -933,15 +934,15 @@ void CreatePokeballSprite(u8 a, u8 b, u8 x, u8 y, u8 e, u8 f, u8 g, u32 h)
LoadCompressedObjectPic(&sBallSpriteSheets[0]);
LoadCompressedObjectPalette(&sBallSpritePalettes[0]);
spriteId = CreateSprite(&gBallSpriteTemplates[0], x, y, f);
- gSprites[spriteId].data0 = a;
- gSprites[spriteId].data5 = gSprites[a].pos1.x;
- gSprites[spriteId].data6 = gSprites[a].pos1.y;
+ gSprites[spriteId].data[0] = a;
+ gSprites[spriteId].data[5] = gSprites[a].pos1.x;
+ gSprites[spriteId].data[6] = gSprites[a].pos1.y;
gSprites[a].pos1.x = x;
gSprites[a].pos1.y = y;
- gSprites[spriteId].data1 = g;
- gSprites[spriteId].data2 = b;
- gSprites[spriteId].data3 = h;
- gSprites[spriteId].data4 = h >> 16;
+ gSprites[spriteId].data[1] = g;
+ gSprites[spriteId].data[2] = b;
+ gSprites[spriteId].data[3] = h;
+ gSprites[spriteId].data[4] = h >> 16;
gSprites[spriteId].oam.priority = e;
gSprites[spriteId].callback = sub_80473D0;
gSprites[a].invisible = TRUE;
@@ -949,12 +950,12 @@ void CreatePokeballSprite(u8 a, u8 b, u8 x, u8 y, u8 e, u8 f, u8 g, u32 h)
static void sub_80473D0(struct Sprite *sprite)
{
- if (sprite->data1 == 0)
+ if (sprite->data[1] == 0)
{
u8 r5;
- u8 r7 = sprite->data0;
- u8 r8 = sprite->data2;
- u32 r4 = (u16)sprite->data3 | ((u16)sprite->data4 << 16);
+ u8 r7 = sprite->data[0];
+ u8 r8 = sprite->data[2];
+ u32 r4 = (u16)sprite->data[3] | ((u16)sprite->data[4] << 16);
if (sprite->subpriority != 0)
r5 = sprite->subpriority - 1;
@@ -962,17 +963,17 @@ static void sub_80473D0(struct Sprite *sprite)
r5 = 0;
StartSpriteAnim(sprite, 1);
sub_80472B0(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r5);
- sprite->data1 = sub_80472D8(1, r8, r4);
+ sprite->data[1] = sub_80472D8(1, r8, r4);
sprite->callback = sub_804748C;
gSprites[r7].invisible = FALSE;
StartSpriteAffineAnim(&gSprites[r7], 1);
AnimateSprite(&gSprites[r7]);
- gSprites[r7].data1 = 0x1000;
- sprite->data7 = 0;
+ gSprites[r7].data[1] = 0x1000;
+ sprite->data[7] = 0;
}
else
{
- sprite->data1--;
+ sprite->data[1]--;
}
}
@@ -980,7 +981,7 @@ static void sub_804748C(struct Sprite *sprite)
{
bool8 r12 = FALSE;
bool8 r6 = FALSE;
- u8 r3 = sprite->data0;
+ u8 r3 = sprite->data[0];
u16 var1;
u16 var2;
@@ -991,22 +992,22 @@ static void sub_804748C(struct Sprite *sprite)
StartSpriteAffineAnim(&gSprites[r3], 0);
r12 = TRUE;
}
- var1 = (sprite->data5 - sprite->pos1.x) * sprite->data7 / 128 + sprite->pos1.x;
- var2 = (sprite->data6 - sprite->pos1.y) * sprite->data7 / 128 + sprite->pos1.y;
+ var1 = (sprite->data[5] - sprite->pos1.x) * sprite->data[7] / 128 + sprite->pos1.x;
+ var2 = (sprite->data[6] - sprite->pos1.y) * sprite->data[7] / 128 + sprite->pos1.y;
gSprites[r3].pos1.x = var1;
gSprites[r3].pos1.y = var2;
- if (sprite->data7 < 128)
+ if (sprite->data[7] < 128)
{
- s16 sine = -(gSineTable[(u8)sprite->data7] / 8);
+ s16 sine = -(gSineTable[(u8)sprite->data[7]] / 8);
- sprite->data7 += 4;
+ sprite->data[7] += 4;
gSprites[r3].pos2.x = sine;
gSprites[r3].pos2.y = sine;
}
else
{
- gSprites[r3].pos1.x = sprite->data5;
- gSprites[r3].pos1.y = sprite->data6;
+ gSprites[r3].pos1.x = sprite->data[5];
+ gSprites[r3].pos1.y = sprite->data[6];
gSprites[r3].pos2.x = 0;
gSprites[r3].pos2.y = 0;
r6 = TRUE;
@@ -1022,11 +1023,11 @@ u8 sub_8047580(u8 a, u8 b, u8 x, u8 y, u8 e, u8 f, u8 g, u32 h)
LoadCompressedObjectPic(&sBallSpriteSheets[0]);
LoadCompressedObjectPalette(&sBallSpritePalettes[0]);
spriteId = CreateSprite(&gBallSpriteTemplates[0], x, y, f);
- gSprites[spriteId].data0 = a;
- gSprites[spriteId].data1 = g;
- gSprites[spriteId].data2 = b;
- gSprites[spriteId].data3 = h;
- gSprites[spriteId].data4 = h >> 16;
+ gSprites[spriteId].data[0] = a;
+ gSprites[spriteId].data[1] = g;
+ gSprites[spriteId].data[2] = b;
+ gSprites[spriteId].data[3] = h;
+ gSprites[spriteId].data[4] = h >> 16;
gSprites[spriteId].oam.priority = e;
gSprites[spriteId].callback = sub_8047638;
return spriteId;
@@ -1034,12 +1035,12 @@ u8 sub_8047580(u8 a, u8 b, u8 x, u8 y, u8 e, u8 f, u8 g, u32 h)
static void sub_8047638(struct Sprite *sprite)
{
- if (sprite->data1 == 0)
+ if (sprite->data[1] == 0)
{
u8 r6;
- u8 r7 = sprite->data0;
- u8 r8 = sprite->data2;
- u32 r5 = (u16)sprite->data3 | ((u16)sprite->data4 << 16);
+ u8 r7 = sprite->data[0];
+ u8 r8 = sprite->data[2];
+ u32 r5 = (u16)sprite->data[3] | ((u16)sprite->data[4] << 16);
if (sprite->subpriority != 0)
r6 = sprite->subpriority - 1;
@@ -1047,15 +1048,15 @@ static void sub_8047638(struct Sprite *sprite)
r6 = 0;
StartSpriteAnim(sprite, 1);
sub_80472B0(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r6);
- sprite->data1 = sub_80472D8(1, r8, r5);
+ sprite->data[1] = sub_80472D8(1, r8, r5);
sprite->callback = sub_80476E0;
StartSpriteAffineAnim(&gSprites[r7], 2);
AnimateSprite(&gSprites[r7]);
- gSprites[r7].data1 = 0;
+ gSprites[r7].data[1] = 0;
}
else
{
- sprite->data1--;
+ sprite->data[1]--;
}
}
@@ -1063,21 +1064,21 @@ static void sub_80476E0(struct Sprite *sprite)
{
u8 r1;
- sprite->data5++;
- if (sprite->data5 == 11)
+ sprite->data[5]++;
+ if (sprite->data[5] == 11)
PlaySE(SE_SUIKOMU);
- r1 = sprite->data0;
+ r1 = sprite->data[0];
if (gSprites[r1].affineAnimEnded)
{
StartSpriteAnim(sprite, 2);
gSprites[r1].invisible = TRUE;
- sprite->data5 = 0;
+ sprite->data[5] = 0;
sprite->callback = sub_8047754;
}
else
{
- gSprites[r1].data1 += 96;
- gSprites[r1].pos2.y = -gSprites[r1].data1 >> 8;
+ gSprites[r1].data[1] += 96;
+ gSprites[r1].pos2.y = -gSprites[r1].data[1] >> 8;
}
}
@@ -1096,37 +1097,37 @@ void sub_804777C(u8 a)
{
struct Sprite *sprite = &gSprites[gHealthboxIDs[a]];
- sprite->data0 = 5;
- sprite->data1 = 0;
+ sprite->data[0] = 5;
+ sprite->data[1] = 0;
sprite->pos2.x = 0x73;
sprite->pos2.y = 0;
sprite->callback = sub_8047830;
if (GetBankSide(a) != 0)
{
- sprite->data0 = -sprite->data0;
- sprite->data1 = -sprite->data1;
+ sprite->data[0] = -sprite->data[0];
+ sprite->data[1] = -sprite->data[1];
sprite->pos2.x = -sprite->pos2.x;
sprite->pos2.y = -sprite->pos2.y;
}
- gSprites[sprite->data5].callback(&gSprites[sprite->data5]);
+ gSprites[sprite->data[5]].callback(&gSprites[sprite->data[5]]);
if (GetBankIdentity(a) == 2)
sprite->callback = sub_804780C;
}
static void sub_804780C(struct Sprite *sprite)
{
- sprite->data1++;
- if (sprite->data1 == 20)
+ sprite->data[1]++;
+ if (sprite->data[1] == 20)
{
- sprite->data1 = 0;
+ sprite->data[1] = 0;
sprite->callback = sub_8047830;
}
}
static void sub_8047830(struct Sprite *sprite)
{
- sprite->pos2.x -= sprite->data0;
- sprite->pos2.y -= sprite->data1;
+ sprite->pos2.x -= sprite->data[0];
+ sprite->pos2.y -= sprite->data[1];
if (sprite->pos2.x == 0 && sprite->pos2.y == 0)
sprite->callback = SpriteCallbackDummy;
}
@@ -1136,19 +1137,19 @@ void sub_8047858(u8 a)
u8 spriteId;
spriteId = CreateInvisibleSpriteWithCallback(oamc_804BEB4);
- gSprites[spriteId].data0 = 1;
- gSprites[spriteId].data1 = gHealthboxIDs[a];
+ gSprites[spriteId].data[0] = 1;
+ gSprites[spriteId].data[1] = gHealthboxIDs[a];
gSprites[spriteId].callback = oamc_804BEB4;
}
static void oamc_804BEB4(struct Sprite *sprite)
{
- u8 r1 = sprite->data1;
+ u8 r1 = sprite->data[1];
- gSprites[r1].pos2.y = sprite->data0;
- sprite->data0 = -sprite->data0;
- sprite->data2++;
- if (sprite->data2 == 21)
+ gSprites[r1].pos2.y = sprite->data[0];
+ sprite->data[0] = -sprite->data[0];
+ sprite->data[2]++;
+ if (sprite->data[2] == 21)
{
gSprites[r1].pos2.x = 0;
gSprites[r1].pos2.y = 0;
diff --git a/src/battle/post_battle_event_funcs.c b/src/battle/post_battle_event_funcs.c
index 27d7022fe..0617763f6 100644
--- a/src/battle/post_battle_event_funcs.c
+++ b/src/battle/post_battle_event_funcs.c
@@ -16,14 +16,14 @@ int GameClear(void)
ScrSpecial_HealPlayerParty();
- if (FlagGet(SYS_GAME_CLEAR) == TRUE)
+ if (FlagGet(FLAG_SYS_GAME_CLEAR) == TRUE)
{
gUnknown_02039324 = 1;
}
else
{
gUnknown_02039324 = 0;
- FlagSet(SYS_GAME_CLEAR);
+ FlagSet(FLAG_SYS_GAME_CLEAR);
}
if (!GetGameStat(1))
@@ -55,7 +55,7 @@ int GameClear(void)
if (ribbonGet == TRUE)
{
IncrementGameStat(42);
- FlagSet(SYS_RIBBON_GET);
+ FlagSet(FLAG_SYS_RIBBON_GET);
}
SetMainCallback2(sub_8141F90);
diff --git a/src/battle/reshow_battle_screen.c b/src/battle/reshow_battle_screen.c
index 343c8f183..14f465352 100644
--- a/src/battle/reshow_battle_screen.c
+++ b/src/battle/reshow_battle_screen.c
@@ -7,6 +7,7 @@
#include "text.h"
#include "rom_8077ABC.h"
#include "data2.h"
+#include "ewram.h"
extern struct SpriteTemplate gUnknown_02024E8C;
extern struct Window gUnknown_03004210;
@@ -55,9 +56,6 @@ static void sub_807B184(u8 bank);
static void sub_807B508(u8 bank);
static void sub_807B06C(void);
-#define gReshowState ewram[0x1FFFF]
-#define gHelperState ewram[0x1FFFE]
-
void nullsub_14(void)
{
@@ -254,8 +252,8 @@ static void sub_807B184(u8 bank)
gObjectBankIDs[bank] = CreateSprite(&gUnknown_02024E8C, sub_8077ABC(bank, 2), posY, sub_8079E90(bank));
gSprites[gObjectBankIDs[bank]].oam.paletteNum = bank;
gSprites[gObjectBankIDs[bank]].callback = SpriteCallbackDummy;
- gSprites[gObjectBankIDs[bank]].data0 = bank;
- gSprites[gObjectBankIDs[bank]].data2 = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
+ gSprites[gObjectBankIDs[bank]].data[0] = bank;
+ gSprites[gObjectBankIDs[bank]].data[2] = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
StartSpriteAnim(&gSprites[gObjectBankIDs[bank]], gBattleMonForms[bank]);
}
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0)
@@ -266,7 +264,7 @@ static void sub_807B184(u8 bank)
sub_8079E90(0));
gSprites[gObjectBankIDs[bank]].oam.paletteNum = bank;
gSprites[gObjectBankIDs[bank]].callback = SpriteCallbackDummy;
- gSprites[gObjectBankIDs[bank]].data0 = bank;
+ gSprites[gObjectBankIDs[bank]].data[0] = bank;
}
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0)
{
@@ -276,7 +274,7 @@ static void sub_807B184(u8 bank)
sub_8079E90(0));
gSprites[gObjectBankIDs[bank]].oam.paletteNum = bank;
gSprites[gObjectBankIDs[bank]].callback = SpriteCallbackDummy;
- gSprites[gObjectBankIDs[bank]].data0 = bank;
+ gSprites[gObjectBankIDs[bank]].data[0] = bank;
}
else
{
@@ -286,8 +284,8 @@ static void sub_807B184(u8 bank)
gObjectBankIDs[bank] = CreateSprite(&gUnknown_02024E8C, sub_8077ABC(bank, 2), posY, sub_8079E90(bank));
gSprites[gObjectBankIDs[bank]].oam.paletteNum = bank;
gSprites[gObjectBankIDs[bank]].callback = SpriteCallbackDummy;
- gSprites[gObjectBankIDs[bank]].data0 = bank;
- gSprites[gObjectBankIDs[bank]].data2 = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
+ gSprites[gObjectBankIDs[bank]].data[0] = bank;
+ gSprites[gObjectBankIDs[bank]].data[2] = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
StartSpriteAnim(&gSprites[gObjectBankIDs[bank]], gBattleMonForms[bank]);
}
gSprites[gObjectBankIDs[bank]].invisible = ewram17800[bank].invisible;
diff --git a/src/battle/smokescreen.c b/src/battle/smokescreen.c
index 8345cb6ad..dc2887007 100644
--- a/src/battle/smokescreen.c
+++ b/src/battle/smokescreen.c
@@ -22,28 +22,28 @@ u8 sub_8046234(s16 x, s16 y, u8 a3)
mainSpriteId = CreateInvisibleSpriteWithCallback(sub_8046388);
mainSprite = &gSprites[mainSpriteId];
- mainSprite->data1 = a3;
+ mainSprite->data[1] = a3;
spriteId1 = CreateSprite(&gSpriteTemplate_81FAF0C, x - 16, y - 16, 2);
- gSprites[spriteId1].data0 = mainSpriteId;
- mainSprite->data0++;
+ gSprites[spriteId1].data[0] = mainSpriteId;
+ mainSprite->data[0]++;
AnimateSprite(&gSprites[spriteId1]);
spriteId2 = CreateSprite(&gSpriteTemplate_81FAF0C, x, y - 16, 2);
- gSprites[spriteId2].data0 = mainSpriteId;
- mainSprite->data0++;
+ gSprites[spriteId2].data[0] = mainSpriteId;
+ mainSprite->data[0]++;
StartSpriteAnim(&gSprites[spriteId2], 1);
AnimateSprite(&gSprites[spriteId2]);
spriteId3 = CreateSprite(&gSpriteTemplate_81FAF0C, x - 16, y, 2);
- gSprites[spriteId3].data0 = mainSpriteId;
- mainSprite->data0++;
+ gSprites[spriteId3].data[0] = mainSpriteId;
+ mainSprite->data[0]++;
StartSpriteAnim(&gSprites[spriteId3], 2);
AnimateSprite(&gSprites[spriteId3]);
spriteId4 = CreateSprite(&gSpriteTemplate_81FAF0C, x, y, 2);
- gSprites[spriteId4].data0 = mainSpriteId;
- mainSprite->data0++;
+ gSprites[spriteId4].data[0] = mainSpriteId;
+ mainSprite->data[0]++;
StartSpriteAnim(&gSprites[spriteId4], 3);
AnimateSprite(&gSprites[spriteId4]);
@@ -52,11 +52,11 @@ u8 sub_8046234(s16 x, s16 y, u8 a3)
static void sub_8046388(struct Sprite *sprite)
{
- if (!sprite->data0)
+ if (!sprite->data[0])
{
FreeSpriteTilesByTag(gUnknown_081FAEA4.tag);
FreeSpritePaletteByTag(gUnknown_081FAEAC.tag);
- if (!sprite->data1)
+ if (!sprite->data[1])
DestroySprite(sprite);
else
sprite->callback = SpriteCallbackDummy;
@@ -67,7 +67,7 @@ void sub_80463CC(struct Sprite *sprite)
{
if (sprite->animEnded)
{
- gSprites[sprite->data0].data0--;
+ gSprites[sprite->data[0]].data[0]--;
DestroySprite(sprite);
}
}
diff --git a/src/data/battle_strings_de.h b/src/data/battle_strings_de.h
new file mode 100755
index 000000000..f78d0bf14
--- /dev/null
+++ b/src/data/battle_strings_de.h
@@ -0,0 +1,1612 @@
+#include "constants/moves.h"
+
+enum
+{
+ BATTLE_TEXT_UnknownString = 12,
+ BATTLE_TEXT_GainExpPoints,
+ BATTLE_TEXT_GrewLevel,
+ BATTLE_TEXT_LearnedMove,
+ BATTLE_TEXT_TryingToLearnMove,
+ BATTLE_TEXT_CantLearnMore,
+ BATTLE_TEXT_DeleteMove,
+ BATTLE_TEXT_DeletedMove,
+ BATTLE_TEXT_StopLearning,
+ BATTLE_TEXT_DidNotLearn,
+ BATTLE_TEXT_LearnedMove2,
+ BATTLE_TEXT_AttackMissed,
+ BATTLE_TEXT_ProtectedItself,
+ BATTLE_TEXT_StatNoHigher,
+ BATTLE_TEXT_AvoidedDamage,
+ BATTLE_TEXT_DoesntAffect,
+ BATTLE_TEXT_AttackingFainted,
+ BATTLE_TEXT_DefendingFainted,
+ BATTLE_TEXT_WinningPrize,
+ BATTLE_TEXT_OutOfUsablePoke,
+ BATTLE_TEXT_WhitedOut,
+ BATTLE_TEXT_PreventEscape,
+ BATTLE_TEXT_HitMulti,
+ BATTLE_TEXT_FellAsleep,
+ BATTLE_TEXT_MadeAsleep,
+ BATTLE_TEXT_DefendingAsleep,
+ BATTLE_TEXT_AttackingAsleep,
+ BATTLE_TEXT_WasntAffected,
+ BATTLE_TEXT_Poisoned,
+ BATTLE_TEXT_Poisoned2,
+ BATTLE_TEXT_PoisonHurt,
+ BATTLE_TEXT_AlreadyPoisoned,
+ BATTLE_TEXT_BadlyPoisoned,
+ BATTLE_TEXT_EnergyDrained,
+ BATTLE_TEXT_Burned,
+ BATTLE_TEXT_Burned2,
+ BATTLE_TEXT_BurnHurt,
+ BATTLE_TEXT_Frozen,
+ BATTLE_TEXT_Frozen2,
+ BATTLE_TEXT_FrozenSolid,
+ BATTLE_TEXT_DefendingDefrosted,
+ BATTLE_TEXT_AttackingDefrosted,
+ BATTLE_TEXT_Defrosted,
+ BATTLE_TEXT_Paralyzed,
+ BATTLE_TEXT_Paralyzed2,
+ BATTLE_TEXT_Paralyzed3,
+ BATTLE_TEXT_AlreadyParalyzed,
+ BATTLE_TEXT_ParalysisHealed,
+ BATTLE_TEXT_DreamEaten,
+ BATTLE_TEXT_AttackingStatNoHigher,
+ BATTLE_TEXT_DefendingStatNoHigher,
+ BATTLE_TEXT_StoppedWorking,
+ BATTLE_TEXT_StoppedWorking2,
+ BATTLE_TEXT_Confused,
+ BATTLE_TEXT_ConfusionSnapOut,
+ BATTLE_TEXT_BecameConfused,
+ BATTLE_TEXT_AlreadyConfused,
+ BATTLE_TEXT_FellLove,
+ BATTLE_TEXT_InLoveWith,
+ BATTLE_TEXT_ImmobilizedBy,
+ BATTLE_TEXT_BlownAway,
+ BATTLE_TEXT_TypeTransform,
+ BATTLE_TEXT_Flinched,
+ BATTLE_TEXT_RegainedHealth,
+ BATTLE_TEXT_HPFull,
+ BATTLE_TEXT_RaisedSpDef,
+ BATTLE_TEXT_RaisedDefense,
+ BATTLE_TEXT_CoveredVeil,
+ BATTLE_TEXT_SafeguardActive,
+ BATTLE_TEXT_SafeguardFaded,
+ BATTLE_TEXT_WentToSleep,
+ BATTLE_TEXT_SpeltHealthy,
+ BATTLE_TEXT_WhipWhirlwind,
+ BATTLE_TEXT_TookSunlight,
+ BATTLE_TEXT_LoweredHead,
+ BATTLE_TEXT_IsGlowing,
+ BATTLE_TEXT_FlewHigh,
+ BATTLE_TEXT_DugHole,
+ BATTLE_TEXT_SqueezedBind,
+ BATTLE_TEXT_TrappedVortex,
+ BATTLE_TEXT_Wrapped,
+ BATTLE_TEXT_Clamped,
+ BATTLE_TEXT_HurtBy,
+ BATTLE_TEXT_FreedFrom,
+ BATTLE_TEXT_KeptGoingCrash,
+ BATTLE_TEXT_MistShroud,
+ BATTLE_TEXT_MistProtect,
+ BATTLE_TEXT_GetPumped,
+ BATTLE_TEXT_HitRecoil,
+ BATTLE_TEXT_ProtectedItself2,
+ BATTLE_TEXT_SandBuffeted,
+ BATTLE_TEXT_HailStricken,
+ BATTLE_TEXT_WasSeeded,
+ BATTLE_TEXT_EvadedAttack,
+ BATTLE_TEXT_HealthSapped,
+ BATTLE_TEXT_FastAsleep,
+ BATTLE_TEXT_WokeUp,
+ BATTLE_TEXT_UproarAwake,
+ BATTLE_TEXT_UproarWoke,
+ BATTLE_TEXT_UproarCaused,
+ BATTLE_TEXT_UproarMaking,
+ BATTLE_TEXT_CalmedDown,
+ BATTLE_TEXT_UproarCantSleep,
+ BATTLE_TEXT_Stockpiled,
+ BATTLE_TEXT_StockpiledCant,
+ BATTLE_TEXT_UproarCantSleep2,
+ BATTLE_TEXT_UproarKeptAwake,
+ BATTLE_TEXT_StayedAwake,
+ BATTLE_TEXT_StoringEnergy,
+ BATTLE_TEXT_UnleashedEnergy,
+ BATTLE_TEXT_FatigueConfuse,
+ BATTLE_TEXT_PickedUpYen,
+ BATTLE_TEXT_Unaffected,
+ BATTLE_TEXT_Transformed,
+ BATTLE_TEXT_SubMade,
+ BATTLE_TEXT_SubAlready,
+ BATTLE_TEXT_SubTookDamage,
+ BATTLE_TEXT_SubFaded,
+ BATTLE_TEXT_MustRecharge,
+ BATTLE_TEXT_RageBuilding,
+ BATTLE_TEXT_MoveWasDisabled,
+ BATTLE_TEXT_MoveIsDisabled,
+ BATTLE_TEXT_DisabledNoMore,
+ BATTLE_TEXT_EncoreGot,
+ BATTLE_TEXT_EncoreEnded,
+ BATTLE_TEXT_TookAim,
+ BATTLE_TEXT_SketchedMove,
+ BATTLE_TEXT_DestinyBondTake,
+ BATTLE_TEXT_DestinyBondTaken,
+ BATTLE_TEXT_ReducedBy,
+ BATTLE_TEXT_StoleSomething,
+ BATTLE_TEXT_CantEscapeNow,
+ BATTLE_TEXT_NightmareStart,
+ BATTLE_TEXT_NightmareLock,
+ BATTLE_TEXT_CurseLay,
+ BATTLE_TEXT_CurseAfflict,
+ BATTLE_TEXT_SpikesScattered,
+ BATTLE_TEXT_SpikesHurt,
+ BATTLE_TEXT_IdentifiedPoke,
+ BATTLE_TEXT_PerishSongFell,
+ BATTLE_TEXT_BracedItself,
+ BATTLE_TEXT_EnduredHit,
+ BATTLE_TEXT_MagnitudeCount,
+ BATTLE_TEXT_CutHPMaxATK,
+ BATTLE_TEXT_CopyStatChanges,
+ BATTLE_TEXT_GotFreeFrom,
+ BATTLE_TEXT_LeechShed,
+ BATTLE_TEXT_SpikesBlownAway,
+ BATTLE_TEXT_FledBattle,
+ BATTLE_TEXT_ForesawAttack,
+ BATTLE_TEXT_TookAttack,
+ BATTLE_TEXT_PokeAttack,
+ BATTLE_TEXT_CenterAttention,
+ BATTLE_TEXT_ChargingPower,
+ BATTLE_TEXT_NaturePower,
+ BATTLE_TEXT_StatusNormal,
+ BATTLE_TEXT_NoMovesLeft,
+ BATTLE_TEXT_TormentSubject,
+ BATTLE_TEXT_TormentNoUse,
+ BATTLE_TEXT_TightenFocus,
+ BATTLE_TEXT_TauntFell,
+ BATTLE_TEXT_TauntNoUse,
+ BATTLE_TEXT_ReadyToHelp,
+ BATTLE_TEXT_SwitchedItems,
+ BATTLE_TEXT_CopiedObject,
+ BATTLE_TEXT_WishMade,
+ BATTLE_TEXT_WishTrue,
+ BATTLE_TEXT_PlantedRoots,
+ BATTLE_TEXT_AbsorbNutrients,
+ BATTLE_TEXT_AnchoredItself,
+ BATTLE_TEXT_DrowsyMade,
+ BATTLE_TEXT_KnockedOffItem,
+ BATTLE_TEXT_AbilitySwap,
+ BATTLE_TEXT_SealedMove,
+ BATTLE_TEXT_SealedNoUse,
+ BATTLE_TEXT_GrudgeBear,
+ BATTLE_TEXT_GrudgeLosePP,
+ BATTLE_TEXT_ShroudedItself,
+ BATTLE_TEXT_MagicCoatBounce,
+ BATTLE_TEXT_AwaitMove,
+ BATTLE_TEXT_SnatchedMove,
+ BATTLE_TEXT_RainMade,
+ BATTLE_TEXT_SpeedRisen,
+ BATTLE_TEXT_ProtectedBy,
+ BATTLE_TEXT_PreventedBy,
+ BATTLE_TEXT_HPRestoredUsing,
+ BATTLE_TEXT_MadeType,
+ BATTLE_TEXT_PreventedPara,
+ BATTLE_TEXT_PreventedRomance,
+ BATTLE_TEXT_PreventedPoison,
+ BATTLE_TEXT_PreventedConfusion,
+ BATTLE_TEXT_RaisedFirePower,
+ BATTLE_TEXT_AnchorsItself,
+ BATTLE_TEXT_CutsAttack,
+ BATTLE_TEXT_PreventedStatLoss,
+ BATTLE_TEXT_HurtOther,
+ BATTLE_TEXT_Traced,
+ BATTLE_TEXT_Sharply,
+ BATTLE_TEXT_Rose,
+ BATTLE_TEXT_Harshly,
+ BATTLE_TEXT_Fell,
+ BATTLE_TEXT_UnknownString7,
+ BATTLE_TEXT_UnknownString3,
+ BATTLE_TEXT_UnknownString5,
+ BATTLE_TEXT_UnknownString6,
+ BATTLE_TEXT_Critical,
+ BATTLE_TEXT_GrandSlam,
+ BATTLE_TEXT_MoveForget123,
+ BATTLE_TEXT_MoveForgetAnd,
+ BATTLE_TEXT_NotEffective,
+ BATTLE_TEXT_SuperEffective,
+ BATTLE_TEXT_GotAwaySafely,
+ BATTLE_TEXT_FledWild,
+ BATTLE_TEXT_NoRunning,
+ BATTLE_TEXT_CantEscape2,
+ BATTLE_TEXT_BirchDontLeaveMe,
+ BATTLE_TEXT_Nothing,
+ BATTLE_TEXT_Failed,
+ BATTLE_TEXT_HurtItself,
+ BATTLE_TEXT_MirrorFail,
+ BATTLE_TEXT_RainStart,
+ BATTLE_TEXT_PourStart,
+ BATTLE_TEXT_RainCont1,
+ BATTLE_TEXT_PourCont,
+ BATTLE_TEXT_RainStop,
+ BATTLE_TEXT_SandBrewed,
+ BATTLE_TEXT_SandRages,
+ BATTLE_TEXT_SandSubsided,
+ BATTLE_TEXT_SunBright,
+ BATTLE_TEXT_SunStrong,
+ BATTLE_TEXT_SunFaded,
+ BATTLE_TEXT_HailStart,
+ BATTLE_TEXT_HailCont,
+ BATTLE_TEXT_HailStop,
+ BATTLE_TEXT_SpitUpFail,
+ BATTLE_TEXT_SwallowFail,
+ BATTLE_TEXT_WindHeatWave,
+ BATTLE_TEXT_StatElim,
+ BATTLE_TEXT_CoinScatter,
+ BATTLE_TEXT_SubWeak,
+ BATTLE_TEXT_PainSplit,
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_PerishSong,
+ BATTLE_TEXT_NoPP1,
+ BATTLE_TEXT_NoPP2,
+ BATTLE_TEXT_Used1,
+ BATTLE_TEXT_TutorialUsed,
+ BATTLE_TEXT_BlockBall,
+ BATTLE_TEXT_DontBeAThief,
+ BATTLE_TEXT_DodgeBall,
+ BATTLE_TEXT_MissPoke,
+ BATTLE_TEXT_BallBrokeOhNo,
+ BATTLE_TEXT_BallBrokeAppeared,
+ BATTLE_TEXT_BallBrokeAlmost,
+ BATTLE_TEXT_BallBrokeSoClose,
+ BATTLE_TEXT_BallCaught1,
+ BATTLE_TEXT_BallCaught2,
+ BATTLE_TEXT_GiveNickname,
+ BATTLE_TEXT_SentToPC,
+ BATTLE_TEXT_AddedToDex,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Sandstorm,
+ BATTLE_TEXT_CantEscape,
+ BATTLE_TEXT_IgnoredOrdersSLP,
+ BATTLE_TEXT_IgnoredOrders,
+ BATTLE_TEXT_BeganNap,
+ BATTLE_TEXT_LoafingAround,
+ BATTLE_TEXT_WontObey,
+ BATTLE_TEXT_TurnedAway,
+ BATTLE_TEXT_NotNotice,
+ BATTLE_TEXT_WillSwitch,
+ BATTLE_TEXT_CreptCloser,
+ BATTLE_TEXT_CantGetCloser,
+ BATTLE_TEXT_WatchingCarefully,
+ BATTLE_TEXT_CuriousAbout,
+ BATTLE_TEXT_EnthralledBy,
+ BATTLE_TEXT_IgnoredThing,
+ BATTLE_TEXT_ThrewBlock,
+ BATTLE_TEXT_SafariOver,
+ BATTLE_TEXT_CuredParalysis,
+ BATTLE_TEXT_CuredPoison,
+ BATTLE_TEXT_CuredBurn,
+ BATTLE_TEXT_CuredFreeze,
+ BATTLE_TEXT_CuredSleep,
+ BATTLE_TEXT_CuredConfusion,
+ BATTLE_TEXT_CuredStatus,
+ BATTLE_TEXT_RestoredHealth,
+ BATTLE_TEXT_RestoredPP,
+ BATTLE_TEXT_RestoredStatus,
+ BATTLE_TEXT_RestoredHPLittle,
+ BATTLE_TEXT_ChoiceBand,
+ BATTLE_TEXT_FocusSash,
+ BATTLE_TEXT_Terminator2,
+ BATTLE_TEXT_PreventedBurn,
+ BATTLE_TEXT_BlocksOther,
+ BATTLE_TEXT_RestoredHPByItem,
+ BATTLE_TEXT_WhipSandstorm,
+ BATTLE_TEXT_PreventedLoss,
+ BATTLE_TEXT_InfatuatedPoke,
+ BATTLE_TEXT_MadeIneffective,
+ BATTLE_TEXT_CuredProblem,
+ BATTLE_TEXT_OozeSuckup,
+ BATTLE_TEXT_Transformed2,
+ BATTLE_TEXT_ElecWeakened,
+ BATTLE_TEXT_FireWeakened,
+ BATTLE_TEXT_HidUnderwater,
+ BATTLE_TEXT_SprangUp,
+ BATTLE_TEXT_CantForgetHM,
+ BATTLE_TEXT_FoundOne,
+ BATTLE_TEXT_PlayerDefeatedTrainer2,
+ BATTLE_TEXT_SoothingAroma,
+ BATTLE_TEXT_CantUseItems,
+ BATTLE_TEXT_UnknownString2,
+ BATTLE_TEXT_UnknownString4,
+ BATTLE_TEXT_HustleUse,
+ BATTLE_TEXT_MadeUseless,
+ BATTLE_TEXT_SandTombTrapped,
+ BATTLE_TEXT_Terminator,
+ BATTLE_TEXT_BoostedExp,
+ BATTLE_TEXT_SunIntensified,
+ BATTLE_TEXT_GroundMoveNegate,
+ BATTLE_TEXT_WallyBall,
+ BATTLE_TEXT_TookAttack2,
+ BATTLE_TEXT_ChoseDestiny,
+ BATTLE_TEXT_LostFocus,
+ BATTLE_TEXT_UseNext,
+ BATTLE_TEXT_FledUsingItem,
+ BATTLE_TEXT_FledUsingOther,
+ BATTLE_TEXT_DraggedOut,
+ BATTLE_TEXT_PreventedOther,
+ BATTLE_TEXT_NormalizedStatus,
+ BATTLE_TEXT_Used2,
+ BATTLE_TEXT_BoxFull,
+ BATTLE_TEXT_AvoidedAttack,
+ BATTLE_TEXT_MadeIneffective2,
+ BATTLE_TEXT_PreventedFlinching,
+ BATTLE_TEXT_AlreadyBurned,
+ BATTLE_TEXT_StatNoLower,
+ BATTLE_TEXT_BlocksOther2,
+ BATTLE_TEXT_WoreOff,
+ BATTLE_TEXT_RaisedDefenseLittle,
+ BATTLE_TEXT_RaisedSpDefLittle,
+ BATTLE_TEXT_BrokeWall,
+ BATTLE_TEXT_PreventedOther2,
+ BATTLE_TEXT_CuredOfProblem,
+ BATTLE_TEXT_AttackingCantEscape,
+ BATTLE_TEXT_Obtained1,
+ BATTLE_TEXT_Obtained2,
+ BATTLE_TEXT_Obtained3,
+ BATTLE_TEXT_NoEffect,
+ BATTLE_TEXT_NoEffectOn,
+};
+
+const u8 BattleText_UnknownString[] = _("{STRING 33}");
+const u8 BattleText_GainExpPoints[] = _("{STRING 0} erhält{PLAYER}\n{STRING 42} E-Punkte!\p");
+const u8 BattleText_Terminator[] = _("");
+const u8 BattleText_BoostedExp[] = _(" spezielle");
+const u8 BattleText_GrewLevel[] = _("{STRING 0} erreicht\nLv. {PLAYER}!{UNKNOWN_A}\p");
+const u8 BattleText_LearnedMove[] = _("{STRING 0} erlernt\n{PLAYER}!{UNKNOWN_A}\p");
+const u8 BattleText_TryingToLearnMove[] = _("{STRING 0} versucht,\n{PLAYER} zu lernen.\p");
+const u8 BattleText_CantLearnMore[] = _("Aber {STRING 0} kann nicht\nmehr als vier Attacken erlernen.\p");
+const u8 BattleText_DeleteMove[] = _("Soll eine Attacke zu Gunsten von\n{PLAYER} vergessen werden?");
+const u8 BattleText_DeletedMove[] = _("{STRING 0} hat\n{PLAYER} vergessen!\p");
+const u8 BattleText_StopLearning[] = _("{PAUSE 32}{PLAYER}\nnicht erlernen?");
+const u8 BattleText_DidNotLearn[] = _("{STRING 0} hat {PLAYER}\nnicht erlernt.\p");
+const u8 BattleText_UseNext[] = _("Nächstes POKéMON einsetzen?");
+const u8 BattleText_AttackMissed[] = _("Attacke von {EVIL_LEGENDARY}\nging daneben!");
+const u8 BattleText_ProtectedItself[] = _("{GOOD_LEGENDARY}\nschützt sich selbst!");
+const u8 BattleText_AvoidedDamage[] = _("{GOOD_LEGENDARY} vermeidet\nSchaden mit {STRING 22}!");
+const u8 BattleText_GroundMoveNegate[] = _("{GOOD_LEGENDARY} wehrt BODEN-\nAttacken mit {STRING 22} ab!");
+const u8 BattleText_AvoidedAttack[] = _("{GOOD_LEGENDARY} wehrt die\nAttacke ab!");
+const u8 BattleText_DoesntAffect[] = _("Es hat keine Wirkung auf\n{GOOD_LEGENDARY}...");
+const u8 BattleText_AttackingFainted[] = _("{EVIL_LEGENDARY}\nwurde besiegt!\p");
+const u8 BattleText_DefendingFainted[] = _("{GOOD_LEGENDARY}\nwurde besiegt!\p");
+const u8 BattleText_WinningPrize[] = _("{STRING 32} gewinnt ¥{STRING 0}!\p");
+const u8 BattleText_OutOfUsablePoke[] = _("{STRING 32} hat kein\nkampffähiges POKéMON mehr!\p");
+const u8 BattleText_WhitedOut[] = _("{STRING 32} fällt in Ohnmacht!{PAUSE_UNTIL_PRESS}");
+const u8 BattleText_PreventEscape[] = _("{STRING 16} verhindert\neine Flucht mit {STRING 23}!\p");
+const u8 BattleText_CantEscape[] = _("Flucht unmöglich!\p");
+const u8 BattleText_AttackingCantEscape[] = _("{EVIL_LEGENDARY}\nkann nicht fliehen!");
+const u8 BattleText_HitMulti[] = _("{STRING 0}-mal getroffen!");
+const u8 BattleText_FellAsleep[] = _("{STRING 14}\nist eingeschlafen!");
+const u8 BattleText_MadeAsleep[] = _("{STRING 23} von\n{STRING 16} lässt\l{STRING 14} einschlafen!");
+const u8 BattleText_DefendingAsleep[] = _("{GOOD_LEGENDARY} schläft\nbereits!");
+const u8 BattleText_AttackingAsleep[] = _("{EVIL_LEGENDARY} schläft\nbereits!");
+const u8 BattleText_WasntAffected[] = _("{GOOD_LEGENDARY}\nist unversehrt!");
+const u8 BattleText_Poisoned[] = _("{STRING 14}\nwurde vergiftet!");
+const u8 BattleText_Poisoned2[] = _("{STRING 23} von\n{STRING 16} vergiftete\l{STRING 14}!");
+const u8 BattleText_PoisonHurt[] = _("{EVIL_LEGENDARY} wurde durch\nGift verletzt!");
+const u8 BattleText_AlreadyPoisoned[] = _("{GOOD_LEGENDARY} ist bereits\nvergiftet.");
+const u8 BattleText_BadlyPoisoned[] = _("{STRING 14} wurde schwer\nvergiftet!");
+const u8 BattleText_EnergyDrained[] = _("{GOOD_LEGENDARY} wurde\nEnergie abgesaugt!");
+const u8 BattleText_Burned[] = _("{STRING 14} brennt!");
+const u8 BattleText_Burned2[] = _("{STRING 23} von\n{STRING 16} verbrennt\l{STRING 14}!");
+const u8 BattleText_BurnHurt[] = _("Die Verbrennung schadet\n{EVIL_LEGENDARY}!");
+const u8 BattleText_AlreadyBurned[] = _("{GOOD_LEGENDARY} brennt\nbereits.");
+const u8 BattleText_Frozen[] = _("{STRING 14} erstarrt\nzu Eis!");
+const u8 BattleText_Frozen2[] = _("{STRING 14} wurde durch\n{STRING 23} von\l{STRING 16} eingefroren!");
+const u8 BattleText_FrozenSolid[] = _("{EVIL_LEGENDARY} ist\neingefroren!");
+const u8 BattleText_DefendingDefrosted[] = _("{GOOD_LEGENDARY} wurde\naufgetaut!");
+const u8 BattleText_AttackingDefrosted[] = _("{EVIL_LEGENDARY} wurde\naufgetaut!");
+const u8 BattleText_Defrosted[] = _("{EVIL_LEGENDARY} wurde\ndurch {STRING 17} aufgetaut!");
+const u8 BattleText_Paralyzed[] = _("{STRING 14} ist\nparalysiert! Es greift\leventuell nicht an!");
+const u8 BattleText_Paralyzed2[] = _("{STRING 23} von\n{STRING 16} paralysierte\p{STRING 14}!\nEs greift eventuell nicht an!");
+const u8 BattleText_Paralyzed3[] = _("{EVIL_LEGENDARY} ist\nparalysiert! Es kann\lnicht angreifen!");
+const u8 BattleText_AlreadyParalyzed[] = _("{GOOD_LEGENDARY} ist\nbereits paralysiert!");
+const u8 BattleText_ParalysisHealed[] = _("{GOOD_LEGENDARY} wurde von der\nParalyse geheilt!");
+const u8 BattleText_DreamEaten[] = _("Der Traum von {GOOD_LEGENDARY}\nwurde gefressen!");
+const u8 BattleText_AttackingStatNoHigher[] = _("{STRING 0} von\n{EVIL_LEGENDARY} kann nicht\lmehr erhöht werden!");
+const u8 BattleText_DefendingStatNoHigher[] = _("{STRING 0} von\n{GOOD_LEGENDARY} kann nicht\lweiter gesenkt werden!");
+const u8 BattleText_StoppedWorking[] = _("{STRING 0} in deinem Team\nfunktioniert nicht mehr!");
+const u8 BattleText_StoppedWorking2[] = _("{STRING 0} des Gegners\nfunktioniert nicht mehr!");
+const u8 BattleText_Confused[] = _("{EVIL_LEGENDARY} ist\nverwirrt!");
+const u8 BattleText_ConfusionSnapOut[] = _("{EVIL_LEGENDARY} ist nicht\nmehr verwirrt!");
+const u8 BattleText_BecameConfused[] = _("{STRING 14} wurde\nverwirrt!");
+const u8 BattleText_AlreadyConfused[] = _("{GOOD_LEGENDARY} ist\nbereits verwirrt!");
+const u8 BattleText_FellLove[] = _("{GOOD_LEGENDARY}\nhat sich verliebt!");
+const u8 BattleText_InLoveWith[] = _("{EVIL_LEGENDARY} hat sich in\n{STRING 16} verliebt!");
+const u8 BattleText_ImmobilizedBy[] = _("{EVIL_LEGENDARY} ist starr\nvor Liebe!");
+const u8 BattleText_BlownAway[] = _("{GOOD_LEGENDARY} wurde\nweggeweht!");
+const u8 BattleText_TypeTransform[] = _("{EVIL_LEGENDARY} verwandelt\nsich zu Typ {STRING 0}!");
+const u8 BattleText_Flinched[] = _("{EVIL_LEGENDARY} schreckt\nzurück!");
+const u8 BattleText_RegainedHealth[] = _("{GOOD_LEGENDARY} erholt sich!");
+const u8 BattleText_HPFull[] = _("{GOOD_LEGENDARY} hat alle KP!");
+const u8 BattleText_RaisedSpDef[] = _("{STRING 17} von\n{STRING 38} erhöht\ldie SP. VER.");
+const u8 BattleText_RaisedSpDefLittle[] = _("Die SP. VER. wird etwas durch\n{STRING 17} von\l{STRING 38} erhöht.");
+const u8 BattleText_RaisedDefense[] = _("{STRING 17} von\n{STRING 38}\lerhöht die VERTEIDIGUNG!");
+const u8 BattleText_RaisedDefenseLittle[] = _("{STRING 17} von\n{STRING 38}\lerhöht etwas die VERTEIDIGUNG!");
+const u8 BattleText_CoveredVeil[] = _("{STRING 38} wird von\neinem Schleier umhüllt!");
+const u8 BattleText_SafeguardActive[] = _("{GOOD_LEGENDARY} wird durch\nBODYGUARD geschützt!");
+const u8 BattleText_SafeguardFaded[] = _("BODYGUARD von\n{STRING 40} lässt nach!");
+const u8 BattleText_WentToSleep[] = _("{EVIL_LEGENDARY} ist\neingeschlafen!");
+const u8 BattleText_SpeltHealthy[] = _("{EVIL_LEGENDARY} schläft und\nerholt sich!");
+const u8 BattleText_WhipWhirlwind[] = _("{EVIL_LEGENDARY} entfacht\neinen Wirbelwind!");
+const u8 BattleText_TookSunlight[] = _("{EVIL_LEGENDARY} absorbiert\nSonnenlicht!");
+const u8 BattleText_LoweredHead[] = _("{EVIL_LEGENDARY} zieht seinen\nKopf ein!");
+const u8 BattleText_IsGlowing[] = _("{EVIL_LEGENDARY} leuchtet!");
+const u8 BattleText_FlewHigh[] = _("{EVIL_LEGENDARY} fliegt\nhoch empor!");
+const u8 BattleText_DugHole[] = _("{EVIL_LEGENDARY} gräbt sich\nein!");
+const u8 BattleText_HidUnderwater[] = _("{EVIL_LEGENDARY} taucht\nunter!");
+const u8 BattleText_SprangUp[] = _("{EVIL_LEGENDARY} springt auf!");
+const u8 BattleText_SqueezedBind[] = _("{EVIL_LEGENDARY} setzt bei\n{GOOD_LEGENDARY}\lKLAMMERGRIFF ein!");
+const u8 BattleText_TrappedVortex[] = _("{GOOD_LEGENDARY} wurde in\neinem Strudel gefangen!");
+const u8 BattleText_SandTombTrapped[] = _("{GOOD_LEGENDARY} wurde durch\nSANDGRAB gefangen!");
+const u8 BattleText_Wrapped[] = _("{GOOD_LEGENDARY} wurde von\n{EVIL_LEGENDARY} umWICKELt!");
+const u8 BattleText_Clamped[] = _("{GOOD_LEGENDARY} wurde von\n{EVIL_LEGENDARY} geSCHNAPPT!");
+const u8 BattleText_HurtBy[] = _("{EVIL_LEGENDARY} wurde durch\n{STRING 0} verletzt!");
+const u8 BattleText_FreedFrom[] = _("{EVIL_LEGENDARY} wurde von\n{STRING 0} befreit!");
+const u8 BattleText_KeptGoingCrash[] = _("{EVIL_LEGENDARY} macht weiter\nund bricht zusammen!");
+const u8 BattleText_MistShroud[] = _("{STRING 38} wird in\nWEISSNEBEL gehüllt!");
+const u8 BattleText_MistProtect[] = _("{STRING 16} wird durch\nWEISSNEBEL geschützt!");
+const u8 BattleText_GetPumped[] = _("{EVIL_LEGENDARY} pumpt\nsich auf!");
+const u8 BattleText_HitRecoil[] = _("{EVIL_LEGENDARY} wurde vom\nRückstoß getroffen!");
+const u8 BattleText_ProtectedItself2[] = _("{EVIL_LEGENDARY} schützt\nsich selbst!");
+const u8 BattleText_SandBuffeted[] = _("{EVIL_LEGENDARY} wird vom\nSandsturm getroffen!");
+const u8 BattleText_HailStricken[] = _("{EVIL_LEGENDARY} wird vom\nHAGELSTURM getroffen!");
+const u8 BattleText_WoreOff[] = _("{STRING 0} von\n{STRING 36} lässt nach!");
+const u8 BattleText_WasSeeded[] = _("{GOOD_LEGENDARY} wurde\nbepflanzt!");
+const u8 BattleText_EvadedAttack[] = _("{GOOD_LEGENDARY} ist\nausgewichen!");
+const u8 BattleText_HealthSapped[] = _("EGELSAMEN schadet\n{EVIL_LEGENDARY}!");
+const u8 BattleText_FastAsleep[] = _("{EVIL_LEGENDARY} schläft tief\nund fest.");
+const u8 BattleText_WokeUp[] = _("{EVIL_LEGENDARY} ist\naufgewacht!");
+const u8 BattleText_UproarAwake[] = _("AUFRUHR von {STRING 16}\nhält es wach!");
+const u8 BattleText_UproarWoke[] = _("{EVIL_LEGENDARY} wird durch\nAUFRUHR wach!");
+const u8 BattleText_UproarCaused[] = _("{EVIL_LEGENDARY} verursacht\nAUFRUHR!");
+const u8 BattleText_UproarMaking[] = _("{EVIL_LEGENDARY} macht\neinen AUFRUHR!");
+const u8 BattleText_CalmedDown[] = _("{EVIL_LEGENDARY}\nberuhigt sich.");
+const u8 BattleText_UproarCantSleep[] = _("{GOOD_LEGENDARY} kann bei dem\nAUFRUHR nicht schlafen!");
+const u8 BattleText_Stockpiled[] = _("{EVIL_LEGENDARY} HORTET\n{STRING 0}!");
+const u8 BattleText_StockpiledCant[] = _("{EVIL_LEGENDARY} kann nicht\nweiter HORTEN!");
+const u8 BattleText_UproarCantSleep2[] = _("{GOOD_LEGENDARY} kann bei dem\nAUFRUHR nicht schlafen!");
+const u8 BattleText_UproarKeptAwake[] = _("Aber der AUFRUHR hält\n{GOOD_LEGENDARY} wach!");
+const u8 BattleText_StayedAwake[] = _("{GOOD_LEGENDARY} hält sich mit\n{STRING 22} wach!");
+const u8 BattleText_StoringEnergy[] = _("{EVIL_LEGENDARY} speichert\nEnergie!");
+const u8 BattleText_UnleashedEnergy[] = _("{EVIL_LEGENDARY} erzeugt\nEnergie!");
+const u8 BattleText_FatigueConfuse[] = _("{EVIL_LEGENDARY} ist vor\nErschöpfung verwirrt!");
+const u8 BattleText_PickedUpYen[] = _("{STRING 32} hebt\n¥{STRING 0} auf!\p");
+const u8 BattleText_Unaffected[] = _("{GOOD_LEGENDARY} ist\nunversehrt!");
+const u8 BattleText_Transformed[] = _("{EVIL_LEGENDARY} verwandelt\nsich in {STRING 0}!");
+const u8 BattleText_SubMade[] = _("{EVIL_LEGENDARY} setzt einen\nDELEGATOR ein!");
+const u8 BattleText_SubAlready[] = _("{EVIL_LEGENDARY} hat bereits\neinen DELEGATOR!");
+const u8 BattleText_SubTookDamage[] = _("Der DELEGATOR steckt den\nSchlag für {GOOD_LEGENDARY}\lein!\p");
+const u8 BattleText_SubFaded[] = _("DELEGATOR von\n{GOOD_LEGENDARY} lässt nach!\p");
+const u8 BattleText_MustRecharge[] = _("{EVIL_LEGENDARY} muss sich\nwieder aufladen!");
+const u8 BattleText_RageBuilding[] = _("{GOOD_LEGENDARY} verfällt in\nRASEREI!");
+const u8 BattleText_MoveWasDisabled[] = _("{STRING 0} von\n{GOOD_LEGENDARY}\lwurde blockiert!");
+const u8 BattleText_DisabledNoMore[] = _("{EVIL_LEGENDARY} ist nicht\nmehr blockiert!");
+const u8 BattleText_EncoreGot[] = _("{GOOD_LEGENDARY} gibt\neine ZUGABE!");
+const u8 BattleText_EncoreEnded[] = _("ZUGABE von {EVIL_LEGENDARY}\nist beendet!");
+const u8 BattleText_TookAim[] = _("{EVIL_LEGENDARY} zielt\nauf {GOOD_LEGENDARY}!");
+const u8 BattleText_SketchedMove[] = _("{EVIL_LEGENDARY} setzt\nNACHAHMER bei {STRING 0} ein!");
+const u8 BattleText_DestinyBondTake[] = _("{EVIL_LEGENDARY} versucht den\nGegner mit sich zu nehmen!");
+const u8 BattleText_DestinyBondTaken[] = _("{GOOD_LEGENDARY} nimmt\n{EVIL_LEGENDARY} mit sich!");
+const u8 BattleText_ReducedBy[] = _("{STRING 0} von\n{GOOD_LEGENDARY} wird um\l{PLAYER} reduziert!");
+const u8 BattleText_StoleSomething[] = _("{EVIL_LEGENDARY} stiehlt\n{STRING 19} von\l{GOOD_LEGENDARY}!");
+const u8 BattleText_CantEscapeNow[] = _("{GOOD_LEGENDARY} kann\nnicht fliehen!");
+const u8 BattleText_NightmareStart[] = _("{GOOD_LEGENDARY} bekommt\nNACHTMAHR!");
+const u8 BattleText_NightmareLock[] = _("{EVIL_LEGENDARY} ist in\nNACHTMAHR gefangen!");
+const u8 BattleText_CurseLay[] = _("{EVIL_LEGENDARY} nimmt einen\nTeil seiner KP und legt einen\lFLUCH auf {GOOD_LEGENDARY}!");
+const u8 BattleText_CurseAfflict[] = _("{EVIL_LEGENDARY} wurde durch\nFLUCH verletzt!");
+const u8 BattleText_SpikesScattered[] = _("POKéMON-Team von {STRING 37}\nverteilt STACHELN um sich!");
+const u8 BattleText_SpikesHurt[] = _("{STRING 16} wurde durch\nSTACHLER verletzt!");
+const u8 BattleText_IdentifiedPoke[] = _("{EVIL_LEGENDARY} erkennt\n{GOOD_LEGENDARY}!");
+const u8 BattleText_PerishSongFell[] = _("ABGESANG von {EVIL_LEGENDARY}\nsteht bei {STRING 0}!");
+const u8 BattleText_BracedItself[] = _("{EVIL_LEGENDARY} macht sich\nbereit!");
+const u8 BattleText_EnduredHit[] = _("{GOOD_LEGENDARY} setzt\nAUSDAUER ein!");
+const u8 BattleText_MagnitudeCount[] = _("INTENSITÄT {STRING 0}!");
+const u8 BattleText_CutHPMaxATK[] = _("{EVIL_LEGENDARY} nutzt seine\nKP und hebt den ANGR-Wert!");
+const u8 BattleText_CopyStatChanges[] = _("{EVIL_LEGENDARY} kopiert die\nStatusveränderungen\lvon {GOOD_LEGENDARY}!");
+const u8 BattleText_GotFreeFrom[] = _("{EVIL_LEGENDARY} befreit\nsich von {STRING 0}\lvon {GOOD_LEGENDARY}!");
+const u8 BattleText_LeechShed[] = _("{EVIL_LEGENDARY} befreit sich\nvon EGELSAMEN!");
+const u8 BattleText_SpikesBlownAway[] = _("{EVIL_LEGENDARY} blies den\nSTACHLER weg!");
+const u8 BattleText_FledBattle[] = _("{EVIL_LEGENDARY} ist\ngeflüchtet!");
+const u8 BattleText_ForesawAttack[] = _("{EVIL_LEGENDARY} sah eine\nAttacke voraus!");
+const u8 BattleText_TookAttack[] = _("{GOOD_LEGENDARY} wurde von\nder Attacke {STRING 0} getroffen!");
+const u8 BattleText_ChoseDestiny[] = _("{EVIL_LEGENDARY} wählte\n{STRING 17} als Vorhersehung aus!");
+const u8 BattleText_PokeAttack[] = _("Angriff von {STRING 0}!");
+const u8 BattleText_CenterAttention[] = _("{EVIL_LEGENDARY} zieht alle\nAufmerksamkeit auf sich!");
+const u8 BattleText_ChargingPower[] = _("{EVIL_LEGENDARY} lädt\nsich auf!");
+const u8 BattleText_NaturePower[] = _("NATUR-KRAFT wurde zu\n{STRING 17}!");
+const u8 BattleText_StatusNormal[] = _("Status von {EVIL_LEGENDARY}\nwird normal!");
+const u8 BattleText_TormentSubject[] = _("{GOOD_LEGENDARY} wird von\nFOLTERKNECHT unterworfen!");
+const u8 BattleText_TightenFocus[] = _("{EVIL_LEGENDARY} verstärkt\nseinen Fokus!");
+const u8 BattleText_TauntFell[] = _("{GOOD_LEGENDARY} fällt auf\nVERHÖHNER herein!");
+const u8 BattleText_ReadyToHelp[] = _("{EVIL_LEGENDARY} will\n{GOOD_LEGENDARY} helfen!");
+const u8 BattleText_SwitchedItems[] = _("{EVIL_LEGENDARY} tauscht\nItems mit anderem PKMN!");
+const u8 BattleText_Obtained1[] = _("{EVIL_LEGENDARY} erhält\n{STRING 0}.");
+const u8 BattleText_Obtained2[] = _("{GOOD_LEGENDARY} erhält\n{PLAYER}.");
+const u8 BattleText_Obtained3[] = _("{EVIL_LEGENDARY} erhält\n{STRING 0}.\p{GOOD_LEGENDARY} erhält\n{PLAYER}.");
+const u8 BattleText_CopiedObject[] = _("{EVIL_LEGENDARY}\nkopiert {STRING 22} von\l{GOOD_LEGENDARY}!");
+const u8 BattleText_WishMade[] = _("{EVIL_LEGENDARY} spricht einen\nWUNSCHTRAUM aus!");
+const u8 BattleText_WishTrue[] = _("WUNSCHTRAUM von\n{STRING 0} erfüllt sich!");
+const u8 BattleText_PlantedRoots[] = _("{EVIL_LEGENDARY} pflanzt seine\nWurzeln!");
+const u8 BattleText_AbsorbNutrients[] = _("{EVIL_LEGENDARY} nimmt über\nseine Wurzeln Nährstoffe auf!");
+const u8 BattleText_AnchoredItself[] = _("{GOOD_LEGENDARY}\nverankert sich mit seinen Wurzeln!");
+const u8 BattleText_DrowsyMade[] = _("{EVIL_LEGENDARY} macht\n{GOOD_LEGENDARY} schläfrig!");
+const u8 BattleText_KnockedOffItem[] = _("{EVIL_LEGENDARY}\nentreißt {STRING 19} von\l{GOOD_LEGENDARY}!");
+const u8 BattleText_AbilitySwap[] = _("{EVIL_LEGENDARY} tauscht die\nFähigkeiten mit einem PKMN!");
+const u8 BattleText_SealedMove[] = _("{EVIL_LEGENDARY} versiegelt\ndie Attacke/n des Gegners!");
+const u8 BattleText_GrudgeBear[] = _("{EVIL_LEGENDARY} möchte, dass\nder Gegner ein NACHSPIEL erträgt!");
+const u8 BattleText_GrudgeLosePP[] = _("{STRING 0} von\n{EVIL_LEGENDARY} hat aufgrund\lvon NACHSPIEL alle AP verloren!");
+const u8 BattleText_ShroudedItself[] = _("{EVIL_LEGENDARY} verhüllt sich\nselbst in {STRING 17}!");
+const u8 BattleText_MagicCoatBounce[] = _("{STRING 17} von\n{EVIL_LEGENDARY} prallte am\lMAGIEMANTEL ab!");
+const u8 BattleText_AwaitMove[] = _("{EVIL_LEGENDARY} wartet auf\neine gegnerische Attacke!");
+const u8 BattleText_SnatchedMove[] = _("{GOOD_LEGENDARY} ÜBERNAHM\nAttacke von {STRING 16}!");
+const u8 BattleText_ElecWeakened[] = _("Die Stärke der Elektrizität\nwurde geschwächt!");
+const u8 BattleText_FireWeakened[] = _("Die Stärke des Feuers\nwurde geschwächt!");
+const u8 BattleText_FoundOne[] = _("{EVIL_LEGENDARY} hat 1\n{STRING 19} gefunden!");
+const u8 BattleText_SoothingAroma[] = _("Ein wohltuendes Aroma\nbreitet sich aus!");
+const u8 BattleText_CantUseItems[] = _("Hier können Items nicht eingesetzt\nwerden.{PAUSE 64}");
+const u8 BattleText_UnknownString2[] = _("Für {STRING 16} war\n{STRING 19} {STRING 0}");
+const u8 BattleText_HustleUse[] = _("{STRING 16} setzt\n{STRING 19} ein, um zu drängeln!");
+const u8 BattleText_LostFocus[] = _("{EVIL_LEGENDARY} hat seinen\nFokus verloren und kann\lnicht angreifen!");
+const u8 BattleText_DraggedOut[] = _("{GOOD_LEGENDARY} wurde\nauserwählt!\p");
+const u8 BattleText_BrokeWall[] = _("Die Mauer brach zusammen!");
+const u8 BattleText_NoEffect[] = _("Es ist wirkungslos!");
+const u8 BattleText_NoMovesLeft[] = _("{STRING 15} hat keine\nAttacken mehr übrig!\p");
+const u8 BattleText_MoveIsDisabled[] = _("{STRING 17} von\n{STRING 15} ist blockiert!\p");
+const u8 BattleText_TormentNoUse[] = _("{STRING 15} kann\naufgrund von FOLTERKNECHT\pdie Attacke nicht 2-mal\nhintereinander einsetzen!");
+const u8 BattleText_TauntNoUse[] = _("{STRING 15} kann\n{STRING 17} nach VERHÖHNER\lnicht einsetzen!\p");
+const u8 BattleText_SealedNoUse[] = _("{STRING 15} kann die ver-\nsiegelte Attacke {STRING 17}\lnicht einsetzen!\p");
+const u8 BattleText_RainMade[] = _("{STRING 23} von\n{STRING 16} lässt\les regnen!");
+const u8 BattleText_SpeedRisen[] = _("{STRING 23} von\n{STRING 16} erhöht\lseine INIT.!");
+const u8 BattleText_ProtectedBy[] = _("{GOOD_LEGENDARY} wurde durch\n{STRING 22} geschützt!");
+const u8 BattleText_PreventedBy[] = _("{STRING 22} von\n{GOOD_LEGENDARY} hindert\p{EVIL_LEGENDARY} daran,\n{STRING 17} einzusetzen!");
+const u8 BattleText_HPRestoredUsing[] = _("{GOOD_LEGENDARY} füllt KP mit\nHilfe von {STRING 22} auf!");
+const u8 BattleText_MadeUseless[] = _("{STRING 22} von\n{GOOD_LEGENDARY} hebt die\lWirkung von {STRING 17} auf!");
+const u8 BattleText_MadeType[] = _("{STRING 22} von\n{GOOD_LEGENDARY} macht es zu\leinem {STRING 0}-Typ!");
+const u8 BattleText_PreventedPara[] = _("{STRING 22} von\n{STRING 14} verhindert\leine Paralyse!");
+const u8 BattleText_PreventedRomance[] = _("{STRING 22} von\n{GOOD_LEGENDARY} verhindert\leine Romanze!");
+const u8 BattleText_PreventedPoison[] = _("{STRING 22} von\n{STRING 14} verhindert\leine Vergiftung!");
+const u8 BattleText_PreventedConfusion[] = _("{STRING 22} von\n{GOOD_LEGENDARY} verhindert\lVerwirrung!");
+const u8 BattleText_RaisedFirePower[] = _("{STRING 22} von\n{GOOD_LEGENDARY} erhöht die\lFEUER-Kraft!");
+const u8 BattleText_AnchorsItself[] = _("{GOOD_LEGENDARY} verankert\nsich mit Hilfe von {STRING 22}!");
+const u8 BattleText_CutsAttack[] = _("{STRING 23} von\n{STRING 16} vermindert\lANGRIFF von {GOOD_LEGENDARY}!");
+const u8 BattleText_PreventedStatLoss[] = _("{STRING 23} von\n{STRING 16} verhindert\lStatusveränderungen!");
+const u8 BattleText_HurtOther[] = _("{STRING 22} von\n{GOOD_LEGENDARY} verletzt\l{EVIL_LEGENDARY}!");
+const u8 BattleText_Traced[] = _("FÄHRTE von\n{STRING 16}\perkennt {PLAYER}\nvon {STRING 0}!");
+const u8 BattleText_PreventedBurn[] = _("{STRING 24} von\n{STRING 14} verhindert\lVerbrennung!");
+const u8 BattleText_BlocksOther[] = _("{STRING 22} von\n{GOOD_LEGENDARY} blockiert\l{STRING 17}!");
+const u8 BattleText_BlocksOther2[] = _("{STRING 23} von\n{STRING 16} blockiert\l{STRING 17}!");
+const u8 BattleText_RestoredHPByItem[] = _("{STRING 21} von\n{EVIL_LEGENDARY} füllt\leinige KP auf!");
+const u8 BattleText_WhipSandstorm[] = _("{STRING 23} von\n{STRING 16} entfacht\leinen Sandsturm!");
+const u8 BattleText_SunIntensified[] = _("{STRING 23} von\n{STRING 16} intensiviert\ldie Sonnenstrahlen!");
+const u8 BattleText_PreventedLoss[] = _("{STRING 23} von\n{STRING 16} verhindert \lden Verlust von {STRING 0}!");
+const u8 BattleText_InfatuatedPoke[] = _("{EVIL_LEGENDARY} ist vernarrt\nin {STRING 22} von\l{GOOD_LEGENDARY}!");
+const u8 BattleText_MadeIneffective[] = _("{STRING 22} von\n{GOOD_LEGENDARY} macht\l{STRING 17} wirkungslos!");
+const u8 BattleText_CuredProblem[] = _("{STRING 23} von\n{STRING 16} heilte sein\lProblem mit {STRING 0}!");
+const u8 BattleText_OozeSuckup[] = _("Es saugte\nKLOAKENSOSSE auf!");
+const u8 BattleText_Transformed2[] = _("{STRING 16}\nverwandelte sich!");
+const u8 BattleText_TookAttack2[] = _("{STRING 22} von\n{GOOD_LEGENDARY} übernahm\lden Angriff!");
+const u8 BattleText_PreventedSwitch[] = _("{STRING 20} von\n{STRING 0} verhindert\pWechsel!\p");
+const u8 BattleText_PreventedOther[] = _("{STRING 22} von\n{GOOD_LEGENDARY} macht\p{STRING 0} von\n{STRING 16} wirkungslos!");
+const u8 BattleText_MadeIneffective2[] = _("{STRING 23} von\n{STRING 16} machte\les wirkungslos!");
+const u8 BattleText_PreventedFlinching[] = _("{STRING 24} von\n{STRING 14} verhindert\lein Zurückschrecken!");
+const u8 BattleText_PreventedOther2[] = _("{STRING 21} von\n{EVIL_LEGENDARY} macht\p{STRING 22} von\n{GOOD_LEGENDARY} wirkungslos!");
+const u8 BattleText_CuredOfProblem[] = _("{STRING 23} von\n{STRING 16} heilte sein\lProblem mit {STRING 0}!");
+const u8 BattleText_NoEffectOn[] = _("{STRING 23} von\n{STRING 16} hat keine\lWirkung auf {STRING 14}!");
+const u8 BattleText_Sharply[] = _("steigt stark!");
+const u8 BattleText_Rose[] = _("steigt.");
+const u8 BattleText_Harshly[] = _("sinkt stark!");
+const u8 BattleText_Fell[] = _("sinkt.");
+const u8 BattleText_UnknownString7[] = _("{STRING 0} von\n{EVIL_LEGENDARY} {PLAYER}");
+const u8 BattleText_UnknownString3[] = _("{STRING 0} von\n{GOOD_LEGENDARY} {PLAYER}");
+const u8 BattleText_UnknownString4[] = _("{STRING 19}: {STRING 0} von\n{STRING 16} {PLAYER}");
+const u8 BattleText_UnknownString5[] = _("{STRING 0} von\n{EVIL_LEGENDARY} {PLAYER}");
+const u8 BattleText_UnknownString6[] = _("{STRING 0} von\n{GOOD_LEGENDARY} {PLAYER}");
+const u8 BattleText_StatNoHigher[] = _("Status von {EVIL_LEGENDARY}\nkann nicht weiter erhöht werden!");
+const u8 BattleText_StatNoLower[] = _("Status von {GOOD_LEGENDARY}\nkann nicht weiter sinken!");
+const u8 BattleText_Critical[] = _("Ein Volltreffer!");
+const u8 BattleText_GrandSlam[] = _("Ein K.O.-Treffer!");
+const u8 BattleText_MoveForget123[] = _("{PAUSE 32}1, {PAUSE 15}2 und...{PAUSE 15} ...{PAUSE 15} ...{PAUSE 15}\n{PAUSE 15}{PLAY_SE 0x38 0x00}Schwupp!\p");
+const u8 BattleText_MoveForgetAnd[] = _("Und...\p");
+const u8 BattleText_CantForgetHM[] = _("VM-Attacken können jetzt \nnicht vergessen werden.\p");
+const u8 BattleText_NotEffective[] = _("Das ist nicht sehr effektiv...");
+const u8 BattleText_SuperEffective[] = _("Das ist sehr effektiv!");
+const u8 BattleText_GotAwaySafely[] = _("{PLAY_SE 0x11 0x00}Du bist entkommen!\p");
+const u8 BattleText_FledUsingItem[] = _("{PLAY_SE 0x11 0x00}{EVIL_LEGENDARY} floh\ndurch Einsatz von {STRING 19}!\p");
+const u8 BattleText_FledUsingOther[] = _("{PLAY_SE 0x11 0x00}{EVIL_LEGENDARY} floh\ndurch Einsatz von {STRING 21}!\p");
+const u8 BattleText_FledWild[] = _("{PLAY_SE 0x11 0x00}Wildes {STRING 0} floh!");
+const u8 BattleText_PlayerDefeatedTrainer[] = _("Spieler besiegte\n{STRING 29}!");
+const u8 BattleText_PlayerDefeatedTrainers[] = _("Spieler besiegte\n{STRING 30} und {STRING 29}!");
+const u8 BattleText_PlayerLostTrainer[] = _("Spieler verlor gegen\n{STRING 29}!");
+const u8 BattleText_PlayerLostTrainers[] = _("Spieler verlor gegen\n{STRING 30} und {STRING 29}!");
+const u8 BattleText_PlayerTiedTrainer[] = _("Patt zwischen Spieler und\n{STRING 29}!");
+const u8 BattleText_PlayerTiedTrainers[] = _("Patt zwischen Spieler, {STRING 30}\nund {STRING 29}!");
+const u8 BattleText_FledSingle[] = _("{PLAY_SE 0x11 0x00}{STRING 29} floh!");
+const u8 BattleText_FledDouble[] = _("{PLAY_SE 0x11 0x00}{STRING 29} und\n{STRING 30} flohen!");
+const u8 BattleText_NoRunning[] = _("Du kannst aus TRAINER-Kämpfen\nnicht fliehen!\p");
+const u8 BattleText_CantEscape2[] = _("Flucht unmöglich!\p");
+const u8 BattleText_BirchDontLeaveMe[] = _("PROF. BIRK: Du... Du kannst mich doch\nnicht einfach im Stich lassen!\p");
+const u8 BattleText_Nothing[] = _("Nichts geschieht!");
+const u8 BattleText_Failed[] = _("Es schlug fehl!");
+const u8 BattleText_HurtItself[] = _("Es hat sich vor Verwirrung\nselbst verletzt!");
+const u8 BattleText_MirrorFail[] = _("Der SPIEGELTRICK schlug fehl!");
+const u8 BattleText_RainStart[] = _("Es fängt an zu regnen!");
+const u8 BattleText_PourStart[] = _("Ein Wolkenbruch!");
+const u8 BattleText_RainCont1[] = _("Es regnet weiter.");
+const u8 BattleText_PourCont[] = _("Der Wolkenbruch hält an.");
+const u8 BattleText_RainStop[] = _("Es hat aufgehört zu regnen.");
+const u8 BattleText_SandBrewed[] = _("Ein Sandsturm kommt auf!");
+const u8 BattleText_SandRages[] = _("Der Sandsturm tobt.");
+const u8 BattleText_SandSubsided[] = _("Der Sandsturm legt sich.");
+const u8 BattleText_SunBright[] = _("Das Sonnenlicht wird stärker!");
+const u8 BattleText_SunStrong[] = _("Gleißendes Sonnenlicht!");
+const u8 BattleText_SunFaded[] = _("Das Sonnenlicht lässt nach!");
+const u8 BattleText_HailStart[] = _("Es fängt an zu hageln!");
+const u8 BattleText_HailCont[] = _("Es hagelt!");
+const u8 BattleText_HailStop[] = _("Es hat aufgehört zu hageln.");
+const u8 BattleText_SpitUpFail[] = _("Aber es konnte nichts\nENTFESSELN!");
+const u8 BattleText_SwallowFail[] = _("Aber es konnte nichts\nVERZEHREN!");
+const u8 BattleText_WindHeatWave[] = _("Der Wind wurde zu einer\nHITZEWELLE!");
+const u8 BattleText_StatElim[] = _("Alle Statusveränderungen wurden\nentfernt!");
+const u8 BattleText_CoinScatter[] = _("Es liegen überall Münzen verstreut!");
+const u8 BattleText_SubWeak[] = _("Zu schwach, um einen DELEGATOR\neinzusetzen!");
+const u8 BattleText_PainSplit[] = _("Die Kontrahenten teilen\nihr Leid!");
+const u8 BattleText_BellChime[] = _("Eine Glocke läutet!");
+const u8 BattleText_PerishSong[] = _("Alle betroffenen POKéMON werden\nin 3 Runden K.O. gehen!");
+const u8 BattleText_NoPP1[] = _("Es sind keine AP mehr für\ndiese Attacke übrig!\p");
+const u8 BattleText_NoPP2[] = _("Aber es waren keine AP mehr\nfür diese Attacke übrig!");
+const u8 BattleText_IgnoredOrdersSLP[] = _("{EVIL_LEGENDARY} ignoriert die\nBefehle. Es schläft!");
+const u8 BattleText_IgnoredOrders[] = _("{EVIL_LEGENDARY} ignoriert den\nBefehl!");
+const u8 BattleText_BeganNap[] = _("{EVIL_LEGENDARY} macht\nein Nickerchen!");
+const u8 BattleText_LoafingAround[] = _("{EVIL_LEGENDARY} faulenzt!");
+const u8 BattleText_WontObey[] = _("{EVIL_LEGENDARY} ist\nungehorsam!");
+const u8 BattleText_TurnedAway[] = _("{EVIL_LEGENDARY} wendet\nsich ab!");
+const u8 BattleText_NotNotice[] = _("{EVIL_LEGENDARY} gibt vor,\nnichts zu bemerken!");
+const u8 BattleText_WillSwitch[] = _("Als Nächstes wird {PLAYER} von\n{STRING 25} {STRING 26} eingesetzt.\pWird {STRING 32} das\nPOKéMON wechseln?");
+const u8 BattleText_LearnedMove2[] = _("{EVIL_LEGENDARY} hat\n{STRING 0} gelernt!");
+const u8 BattleText_PlayerDefeatedTrainer2[] = _("Spieler besiegte\n{STRING 25} {STRING 26}!\p");
+const u8 BattleText_CreptCloser[] = _("{STRING 32} schleicht sich näher an\n{STR_VAR_2} heran!");
+const u8 BattleText_CantGetCloser[] = _("{STRING 32} kann nicht näher herangehen!");
+const u8 BattleText_WatchingCarefully[] = _("{STR_VAR_2} beobachtet\nalles aufmerksam!");
+const u8 BattleText_CuriousAbout[] = _("{STR_VAR_2} ist\nneugierig auf {STRING 0}!");
+const u8 BattleText_EnthralledBy[] = _("{STR_VAR_2} ist begeistert\nvon {STRING 0}!");
+const u8 BattleText_IgnoredThing[] = _("{STR_VAR_2} ignoriert\n{STRING 0} völlig!");
+const u8 BattleText_ThrewBlock[] = _("{STRING 32} wirft {STR_VAR_2} einen\n{POKEBLOCK} zu!");
+const u8 BattleText_SafariOver[] = _("{PLAY_SE 0x49 0x00}ANSAGE: Du hast keine\nSAFARIBÄLLE mehr! Game over!\p");
+const u8 BattleText_WildAppeared1[] = _("Ein wildes {STR_VAR_2} erscheint!\p");
+const u8 BattleText_WildAppeared2[] = _("Ein wildes {STR_VAR_2} erscheint!\p");
+const u8 BattleText_WildAppeared3[] = _("Ein wildes {STR_VAR_2} erscheint!{PAUSE 127}");
+const u8 BattleText_WildDoubleAppeared[] = _("Ein wildes {KUN} und\nein wildes {STR_VAR_2} erscheinen!\p");
+const u8 BattleText_SingleWantToBattle1[] = _("Eine Herausforderung von\n{STRING 25} {STRING 26}!\p");
+const u8 BattleText_SingleWantToBattle2[] = _("Eine Herausforderung von\n{STRING 29}!");
+const u8 BattleText_DoubleWantToBattle[] = _("{STRING 29} und {STRING 30}\nmöchten kämpfen!");
+const u8 BattleText_SentOutSingle1[] = _("{STR_VAR_2} wird von\n{STRING 25} {STRING 26} in den\lKampf geschickt!");
+const u8 BattleText_SentOutDouble1[] = _("{STR_VAR_2} und {KUN}\nwerden von\p{STRING 25} {STRING 26}\nin den Kampf geschickt!");
+const u8 BattleText_SentOutSingle2[] = _("{STRING 0} wird von\n{STRING 25} {STRING 26}\lin den Kampf geschickt!");
+const u8 BattleText_SentOutSingle3[] = _("{STRING 29} schickt\n{STR_VAR_2} in den Kampf!");
+const u8 BattleText_SentOutDouble2[] = _("{STRING 29} schickt\n{STR_VAR_2} und {KUN}!");
+const u8 BattleText_SentOutDouble3[] = _("{STRING 29} schickt\n{VERSION}!\p{STRING 30} schickt\n{GOOD_TEAM}!");
+const u8 BattleText_SentOutSingle4[] = _("{STRING 29} schickt\n{STRING 0}!");
+const u8 BattleText_SentOutSingle5[] = _("{STRING 31} schickt\n{STRING 0}!");
+const u8 BattleText_SentOutSingle6[] = _("Los! {STR_VAR_1}!");
+const u8 BattleText_SentOutDouble4[] = _("Los! {STR_VAR_1} und\n{STR_VAR_3}!");
+const u8 BattleText_SentOutSingle7[] = _("Los! {STRING 0}!");
+const u8 BattleText_SentOutSingle8[] = _("Du schaffst es! {STRING 0}!");
+const u8 BattleText_SentOutSingle9[] = _("Streng dich an, {STRING 0}!");
+const u8 BattleText_SentOutSingle10[] = _("Mach es fertig!\nLos, {STRING 0}!");
+const u8 BattleText_SentOutSingle11[] = _("{STRING 28} schickt\n{EVIL_TEAM}!\pLos! {RIVAL}!");
+const u8 BattleText_ComeBackSingle1[] = _("{STRING 0}, genug!\nKomm zurück!");
+const u8 BattleText_ComeBackSingle2[] = _("{STRING 0}, komm zurück!");
+const u8 BattleText_ComeBackSingle3[] = _("{STRING 0}, O.K.!\nKomm zurück!");
+const u8 BattleText_ComeBackSingle4[] = _("{STRING 0}, gut!\nKomm zurück!");
+const u8 BattleText_WithdrewPoke1[] = _("{STRING 0} wurde\nvon {STRING 25} {STRING 26}\lzurückgerufen!");
+const u8 BattleText_WithdrewPoke2[] = _("{STRING 29} ruft\n{STRING 0} zurück!");
+const u8 BattleText_WithdrewPoke3[] = _("{STRING 31} ruft\n{STRING 0} zurück!");
+const u8 BattleText_Wild[] = _(" (Wild)");
+const u8 BattleText_Foe[] = _(" (Gegner)");
+const u8 BattleText_Foe2[] = _("Gegner");
+const u8 BattleText_Ally[] = _("Anwender");
+const u8 BattleText_Foe3[] = _("Gegner");
+const u8 BattleText_Ally2[] = _("Anwender");
+const u8 BattleText_Foe4[] = _("Gegner");
+const u8 BattleText_Ally3[] = _("Anwender");
+const u8 BattleText_OpponentUsedMove[] = _("{EVIL_LEGENDARY} setzt\n{PLAYER} ein!");
+const u8 BattleText_Exclamation2[] = _("");
+const u8 BattleText_Exclamation3[] = _("");
+const u8 BattleText_Exclamation4[] = _("");
+const u8 BattleText_Exclamation5[] = _("");
+const u8 BattleText_Exclamation[] = _("");
+const u8 BattleStatText_HP[] = _("KP");
+const u8 BattleStatText_Attack[] = _("ANGRIFF");
+const u8 BattleStatText_Defense[] = _("VERT.");
+const u8 BattleStatText_Speed[] = _("INIT.");
+const u8 BattleStatText_SpAtk[] = _("SP.ANG.");
+const u8 BattleStatText_SpDef[] = _("SP.VER.");
+const u8 BattleStatText_Accuracy[] = _("GENAUIGKEIT");
+const u8 BattleStatText_Evasion[] = _("FLUCHTWERT");
+const u8 ContestStatText_TooSpicy[] = _("zu scharf!");
+const u8 ContestStatText_TooDry[] = _("zu trocken!");
+const u8 ContestStatText_TooSweet[] = _("zu süß!");
+const u8 ContestStatText_TooBitter[] = _("zu bitter!");
+const u8 ContestStatText_TooSour[] = _("zu sauer!");
+const u8 BattleText_Used1[] = _("{STRING 32} setzt\n{STRING 19} ein!");
+const u8 BattleText_TutorialUsed[] = _("HEIKO setzt\n{STRING 19} ein!");
+const u8 BattleText_Used2[] = _("{STRING 19} wird von\n{STRING 25} {STRING 26} eingesetzt!");
+const u8 BattleText_BlockBall[] = _("Der TRAINER hat den BALL abgeblockt!");
+const u8 BattleText_DontBeAThief[] = _("Sei kein Dieb!");
+const u8 BattleText_DodgeBall[] = _("Es ist dem BALL ausgewichen! Dieses\nPOKéMON kann nicht gefangen werden!");
+const u8 BattleText_MissPoke[] = _("Du hast das POKéMON verfehlt!");
+const u8 BattleText_BallBrokeOhNo[] = _("Mist!\nDas POKéMON hat sich befreit!");
+const u8 BattleText_BallBrokeAppeared[] = _("Oh!\nFast hätte es geklappt!");
+const u8 BattleText_BallBrokeAlmost[] = _("Mist!\nDas war knapp!");
+const u8 BattleText_BallBrokeSoClose[] = _("Verflixt!\nEs hätte beinahe geklappt!");
+const u8 BattleText_BallCaught1[] = _("Toll!\n{STR_VAR_2} wurde gefangen!{UNKNOWN_A}{PLAY_BGM 0x60 0x01}\p");
+const u8 BattleText_BallCaught2[] = _("Toll!\n{STR_VAR_2} wurde gefangen!{UNKNOWN_A}{PLAY_BGM 0x60 0x01}{PAUSE 127}");
+const u8 BattleText_GiveNickname[] = _("Möchtest du dem {STR_VAR_2}\neinen Spitznamen geben?");
+const u8 BattleText_SentToPC[] = _("{STR_VAR_2} wurde auf\n{STRING 35} PC übertragen.");
+const u8 BattleText_Someone[] = _("einen");
+const u8 BattleText_Lanette[] = _("LANETTES");
+const u8 BattleText_AddedToDex[] = _("Für {STR_VAR_2} wurde ein Eintrag\nim POKéDEX angelegt.\p");
+const u8 BattleText_Raining[] = _("Es regnet.");
+const u8 BattleText_Sandstorm[] = _("Ein Sandsturm tobt.");
+const u8 BattleText_BoxFull[] = _("Die BOXEN sind voll!\nDu kannst keines mehr fangen!\p");
+const u8 BattleText_EnigmaBerry[] = _("ENIGMABEERE");
+const u8 BattleText_Berry[] = _("{STR_VAR_1}BEERE");
+const u8 BattleText_CuredParalysis[] = _("{STRING 19} von\n{STRING 16}\lheilte die Paralyse!");
+const u8 BattleText_CuredPoison[] = _("{STRING 19} von\n{STRING 16}\lheilte die Vergiftung!");
+const u8 BattleText_CuredBurn[] = _("{STRING 19} von\n{STRING 16}\lheilte die Verbrennung!");
+const u8 BattleText_CuredFreeze[] = _("{STRING 19} von\n{STRING 16} taute es auf!");
+const u8 BattleText_CuredSleep[] = _("{STRING 19} von\n{STRING 16} \lweckte es auf!");
+const u8 BattleText_CuredConfusion[] = _("{STRING 19} von\n{STRING 16}\lhebt die Verwirrung auf!");
+const u8 BattleText_CuredStatus[] = _("{STRING 19} von\n{STRING 16} \lheilte sein {STRING 0}-Problem!");
+const u8 BattleText_NormalizedStatus[] = _("{STRING 19} von\n{STRING 16} normalisierte\lseine Statuswerte!");
+const u8 BattleText_RestoredHealth[] = _("{STRING 19} füllte\nKP von {STRING 16} auf!");
+const u8 BattleText_RestoredPP[] = _("{STRING 19} von\n{STRING 16} füllte AP von\l{STRING 0} auf!");
+const u8 BattleText_RestoredStatus[] = _("{STRING 19} von\n{STRING 16}\pstellte seine\nStatuswerte wieder her!");
+const u8 BattleText_RestoredHPLittle[] = _("{STRING 19} von\n{STRING 16}\lfüllte einige KP auf!");
+const u8 BattleText_ChoiceBand[] = _("{STRING 19} erlaubt\nnur den Einsatz von {STRING 17}!\p");
+const u8 BattleText_FocusSash[] = _("{GOOD_LEGENDARY} hält\nmit Hilfe von\l{STRING 19} durch!");
+const u8 BattleText_Terminator2[] = _("");
+const u8 BattleText_WallyBall[] = _("Nun muss man einen BALL werfen, oder?\nIch... Ich werde mein Bestes geben!");
+const u8 BattleText_StartEvo[] = _("Hey?\n{STR_VAR_1} entwickelt sich!");
+const u8 BattleText_FinishEvo[] = _("Glückwunsch! Dein {STR_VAR_1}\nwurde zu {STR_VAR_2}!{UNKNOWN_A}\p");
+const u8 BattleText_StopEvo[] = _("Hm? Die Entwicklung\nwurde abgebrochen!\p");
+const u8 BattleText_OtherMenu[] = _("Was soll\n{STRING 15} tun?");
+const u8 BattleText_PlayerMenu[] = _("Was wird {STRING 32}\ntun?");
+const u8 BattleText_WallyMenu[] = _("Was wird\nHEIKO tun?");
+const u8 BattleText_LinkStandby[] = _("{PAUSE 16}Verbindung...");
+const u8 BattleText_MenuOptions[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}KAMPF{CLEAR_TO 46}BEUTEL\nPOKéMON{CLEAR_TO 46}FLUCHT");
+const u8 BattleText_MenuOptionsSafari[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}BALL{CLEAR_TO 46}{POKEBLOCK}\nNÄHER{CLEAR_TO 46}FLUCHT");
+const u8 BattleText_PP[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}AP\nTYP/");
+const u8 BattleText_Format[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}");
+const u8 BattleText_ForgetMove[] = _("{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}{PALETTE 5}Welche Attacke soll vergessen werden?");
+const u8 BattleText_YesNo[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Ja\nNein");
+const u8 BattleText_SwitchWhich[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}\nWohin?");
+const u8 BattleText_Format2[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}");
+const u8 BattleText_RightArrow[] = _("{RIGHT_ARROW}");
+const u8 BattleText_Plus[] = _("+");
+const u8 BattleText_Dash[] = _("-");
+const u8 BattleText_HP[] = _("KP ");
+const u8 BattleText_Attack[] = _("ANGR. ");
+const u8 BattleText_Defense[] = _("VERT.");
+const u8 BattleText_SpAtk[] = _("SP.ANG.");
+const u8 BattleText_SpDef[] = _("SP.VER.");
+const u8 BattleText_SafariBalls[] = _("{HIGHLIGHT RED}SAFARIBÄLLE");
+const u8 BattleText_SafariBallsLeft[] = _("{HIGHLIGHT RED}Übrig: ");
+const u8 BattleText_HighlightRed[] = _("{HIGHLIGHT RED}");
+const u8 BattleText_Sleep[] = _("Schlaf");
+const u8 BattleText_PoisonStatus[] = _("Gift");
+const u8 BattleText_Burn[] = _("Verbrennung");
+const u8 BattleText_Paralysis[] = _("Paralyse");
+const u8 BattleText_IceStatus[] = _("Eis");
+const u8 BattleText_Confusion[] = _("Verwirrung");
+const u8 BattleText_Love[] = _("Liebe");
+const u8 BattleText_Format3[] = _(" und ");
+const u8 BattleText_Format4[] = _(", ");
+const u8 BattleText_Format5[] = _(" ");
+const u8 BattleText_Format6[] = _("\l");
+const u8 BattleText_Format7[] = _("\n");
+const u8 BattleText_Format8[] = _("sind");
+const u8 BattleText_Format9[] = _("sind");
+const u8 gBadEggNickname[] = _("Schl. EI");
+const u8 BattleText_Wally[] = _("HEIKO");
+const u8 BattleText_Win[] = _("{HIGHLIGHT TRANSPARENT}Sieg");
+const u8 BattleText_Loss[] = _("{HIGHLIGHT TRANSPARENT}Ndrl.");
+const u8 BattleText_Tie[] = _("{HIGHLIGHT TRANSPARENT}Patt");
+const u8 BattleText_Format10[] = _(" ist");
+const u8 BattleText_Format11[] = _("");
+const u8 BattleText_Normal[] = _("eine NORMALE Att.");
+const u8 BattleText_Fighting[] = _("eine KAMPF-Att.");
+const u8 BattleText_Flying[] = _("eine FLUG-Att.");
+const u8 BattleText_Poison[] = _("eine GIFT-Att.");
+const u8 BattleText_Ground[] = _("eine BODEN-Att.");
+const u8 BattleText_Rock[] = _("eine GESTEINS-Att.");
+const u8 BattleText_Bug[] = _("eine KÄFER-Att.");
+const u8 BattleText_Ghost[] = _("eine GEIST-Att.");
+const u8 BattleText_Steel[] = _("eine STAHL-Att.");
+const u8 BattleText_Typeless[] = _("eine ???-Attacke");
+const u8 BattleText_Fire[] = _("eine FEUER-Att.");
+const u8 BattleText_Water[] = _("eine WASSER-Att.");
+const u8 BattleText_Grass[] = _("eine PFLANZEN-Att.");
+const u8 BattleText_Electric[] = _("eine ELEKTRO-Att.");
+const u8 BattleText_Psychic[] = _("eine PSYCHO-Att.");
+const u8 BattleText_Ice[] = _("eine EIS-Att.");
+const u8 BattleText_Dragon[] = _("eine DRACHEN-Att.");
+const u8 BattleText_Dark[] = _("eine UNLICHT-Att.");
+
+const u8 *const gUnknown_08400F58[] =
+{
+ BattleStatText_HP,
+ BattleStatText_Attack,
+ BattleStatText_Defense,
+ BattleStatText_Speed,
+ BattleStatText_SpAtk,
+ BattleStatText_SpDef,
+ BattleStatText_Accuracy,
+ BattleStatText_Evasion,
+};
+
+const u8 *const gUnknown_08400F78[] =
+{
+ ContestStatText_TooSpicy,
+ ContestStatText_TooDry,
+ ContestStatText_TooSweet,
+ ContestStatText_TooBitter,
+ ContestStatText_TooSour,
+};
+
+const u8 *const gBattleStringsTable[] =
+{
+ BattleText_UnknownString,
+ BattleText_GainExpPoints,
+ BattleText_GrewLevel,
+ BattleText_LearnedMove,
+ BattleText_TryingToLearnMove,
+ BattleText_CantLearnMore,
+ BattleText_DeleteMove,
+ BattleText_DeletedMove,
+ BattleText_StopLearning,
+ BattleText_DidNotLearn,
+ BattleText_LearnedMove2,
+ BattleText_AttackMissed,
+ BattleText_ProtectedItself,
+ BattleText_StatNoHigher,
+ BattleText_AvoidedDamage,
+ BattleText_DoesntAffect,
+ BattleText_AttackingFainted,
+ BattleText_DefendingFainted,
+ BattleText_WinningPrize,
+ BattleText_OutOfUsablePoke,
+ BattleText_WhitedOut,
+ BattleText_PreventEscape,
+ BattleText_HitMulti,
+ BattleText_FellAsleep,
+ BattleText_MadeAsleep,
+ BattleText_DefendingAsleep,
+ BattleText_AttackingAsleep,
+ BattleText_WasntAffected,
+ BattleText_Poisoned,
+ BattleText_Poisoned2,
+ BattleText_PoisonHurt,
+ BattleText_AlreadyPoisoned,
+ BattleText_BadlyPoisoned,
+ BattleText_EnergyDrained,
+ BattleText_Burned,
+ BattleText_Burned2,
+ BattleText_BurnHurt,
+ BattleText_Frozen,
+ BattleText_Frozen2,
+ BattleText_FrozenSolid,
+ BattleText_DefendingDefrosted,
+ BattleText_AttackingDefrosted,
+ BattleText_Defrosted,
+ BattleText_Paralyzed,
+ BattleText_Paralyzed2,
+ BattleText_Paralyzed3,
+ BattleText_AlreadyParalyzed,
+ BattleText_ParalysisHealed,
+ BattleText_DreamEaten,
+ BattleText_AttackingStatNoHigher,
+ BattleText_DefendingStatNoHigher,
+ BattleText_StoppedWorking,
+ BattleText_StoppedWorking2,
+ BattleText_Confused,
+ BattleText_ConfusionSnapOut,
+ BattleText_BecameConfused,
+ BattleText_AlreadyConfused,
+ BattleText_FellLove,
+ BattleText_InLoveWith,
+ BattleText_ImmobilizedBy,
+ BattleText_BlownAway,
+ BattleText_TypeTransform,
+ BattleText_Flinched,
+ BattleText_RegainedHealth,
+ BattleText_HPFull,
+ BattleText_RaisedSpDef,
+ BattleText_RaisedDefense,
+ BattleText_CoveredVeil,
+ BattleText_SafeguardActive,
+ BattleText_SafeguardFaded,
+ BattleText_WentToSleep,
+ BattleText_SpeltHealthy,
+ BattleText_WhipWhirlwind,
+ BattleText_TookSunlight,
+ BattleText_LoweredHead,
+ BattleText_IsGlowing,
+ BattleText_FlewHigh,
+ BattleText_DugHole,
+ BattleText_SqueezedBind,
+ BattleText_TrappedVortex,
+ BattleText_Wrapped,
+ BattleText_Clamped,
+ BattleText_HurtBy,
+ BattleText_FreedFrom,
+ BattleText_KeptGoingCrash,
+ BattleText_MistShroud,
+ BattleText_MistProtect,
+ BattleText_GetPumped,
+ BattleText_HitRecoil,
+ BattleText_ProtectedItself2,
+ BattleText_SandBuffeted,
+ BattleText_HailStricken,
+ BattleText_WasSeeded,
+ BattleText_EvadedAttack,
+ BattleText_HealthSapped,
+ BattleText_FastAsleep,
+ BattleText_WokeUp,
+ BattleText_UproarAwake,
+ BattleText_UproarWoke,
+ BattleText_UproarCaused,
+ BattleText_UproarMaking,
+ BattleText_CalmedDown,
+ BattleText_UproarCantSleep,
+ BattleText_Stockpiled,
+ BattleText_StockpiledCant,
+ BattleText_UproarCantSleep2,
+ BattleText_UproarKeptAwake,
+ BattleText_StayedAwake,
+ BattleText_StoringEnergy,
+ BattleText_UnleashedEnergy,
+ BattleText_FatigueConfuse,
+ BattleText_PickedUpYen,
+ BattleText_Unaffected,
+ BattleText_Transformed,
+ BattleText_SubMade,
+ BattleText_SubAlready,
+ BattleText_SubTookDamage,
+ BattleText_SubFaded,
+ BattleText_MustRecharge,
+ BattleText_RageBuilding,
+ BattleText_MoveWasDisabled,
+ BattleText_MoveIsDisabled,
+ BattleText_DisabledNoMore,
+ BattleText_EncoreGot,
+ BattleText_EncoreEnded,
+ BattleText_TookAim,
+ BattleText_SketchedMove,
+ BattleText_DestinyBondTake,
+ BattleText_DestinyBondTaken,
+ BattleText_ReducedBy,
+ BattleText_StoleSomething,
+ BattleText_CantEscapeNow,
+ BattleText_NightmareStart,
+ BattleText_NightmareLock,
+ BattleText_CurseLay,
+ BattleText_CurseAfflict,
+ BattleText_SpikesScattered,
+ BattleText_SpikesHurt,
+ BattleText_IdentifiedPoke,
+ BattleText_PerishSongFell,
+ BattleText_BracedItself,
+ BattleText_EnduredHit,
+ BattleText_MagnitudeCount,
+ BattleText_CutHPMaxATK,
+ BattleText_CopyStatChanges,
+ BattleText_GotFreeFrom,
+ BattleText_LeechShed,
+ BattleText_SpikesBlownAway,
+ BattleText_FledBattle,
+ BattleText_ForesawAttack,
+ BattleText_TookAttack,
+ BattleText_PokeAttack,
+ BattleText_CenterAttention,
+ BattleText_ChargingPower,
+ BattleText_NaturePower,
+ BattleText_StatusNormal,
+ BattleText_NoMovesLeft,
+ BattleText_TormentSubject,
+ BattleText_TormentNoUse,
+ BattleText_TightenFocus,
+ BattleText_TauntFell,
+ BattleText_TauntNoUse,
+ BattleText_ReadyToHelp,
+ BattleText_SwitchedItems,
+ BattleText_CopiedObject,
+ BattleText_WishMade,
+ BattleText_WishTrue,
+ BattleText_PlantedRoots,
+ BattleText_AbsorbNutrients,
+ BattleText_AnchoredItself,
+ BattleText_DrowsyMade,
+ BattleText_KnockedOffItem,
+ BattleText_AbilitySwap,
+ BattleText_SealedMove,
+ BattleText_SealedNoUse,
+ BattleText_GrudgeBear,
+ BattleText_GrudgeLosePP,
+ BattleText_ShroudedItself,
+ BattleText_MagicCoatBounce,
+ BattleText_AwaitMove,
+ BattleText_SnatchedMove,
+ BattleText_RainMade,
+ BattleText_SpeedRisen,
+ BattleText_ProtectedBy,
+ BattleText_PreventedBy,
+ BattleText_HPRestoredUsing,
+ BattleText_MadeType,
+ BattleText_PreventedPara,
+ BattleText_PreventedRomance,
+ BattleText_PreventedPoison,
+ BattleText_PreventedConfusion,
+ BattleText_RaisedFirePower,
+ BattleText_AnchorsItself,
+ BattleText_CutsAttack,
+ BattleText_PreventedStatLoss,
+ BattleText_HurtOther,
+ BattleText_Traced,
+ BattleText_Sharply,
+ BattleText_Rose,
+ BattleText_Harshly,
+ BattleText_Fell,
+ BattleText_UnknownString7,
+ BattleText_UnknownString3,
+ BattleText_UnknownString5,
+ BattleText_UnknownString6,
+ BattleText_Critical,
+ BattleText_GrandSlam,
+ BattleText_MoveForget123,
+ BattleText_MoveForgetAnd,
+ BattleText_NotEffective,
+ BattleText_SuperEffective,
+ BattleText_GotAwaySafely,
+ BattleText_FledWild,
+ BattleText_NoRunning,
+ BattleText_CantEscape2,
+ BattleText_BirchDontLeaveMe,
+ BattleText_Nothing,
+ BattleText_Failed,
+ BattleText_HurtItself,
+ BattleText_MirrorFail,
+ BattleText_RainStart,
+ BattleText_PourStart,
+ BattleText_RainCont1,
+ BattleText_PourCont,
+ BattleText_RainStop,
+ BattleText_SandBrewed,
+ BattleText_SandRages,
+ BattleText_SandSubsided,
+ BattleText_SunBright,
+ BattleText_SunStrong,
+ BattleText_SunFaded,
+ BattleText_HailStart,
+ BattleText_HailCont,
+ BattleText_HailStop,
+ BattleText_SpitUpFail,
+ BattleText_SwallowFail,
+ BattleText_WindHeatWave,
+ BattleText_StatElim,
+ BattleText_CoinScatter,
+ BattleText_SubWeak,
+ BattleText_PainSplit,
+ BattleText_BellChime,
+ BattleText_PerishSong,
+ BattleText_NoPP1,
+ BattleText_NoPP2,
+ BattleText_Used1,
+ BattleText_TutorialUsed,
+ BattleText_BlockBall,
+ BattleText_DontBeAThief,
+ BattleText_DodgeBall,
+ BattleText_MissPoke,
+ BattleText_BallBrokeOhNo,
+ BattleText_BallBrokeAppeared,
+ BattleText_BallBrokeAlmost,
+ BattleText_BallBrokeSoClose,
+ BattleText_BallCaught1,
+ BattleText_BallCaught2,
+ BattleText_GiveNickname,
+ BattleText_SentToPC,
+ BattleText_AddedToDex,
+ BattleText_Raining,
+ BattleText_Sandstorm,
+ BattleText_CantEscape,
+ BattleText_IgnoredOrdersSLP,
+ BattleText_IgnoredOrders,
+ BattleText_BeganNap,
+ BattleText_LoafingAround,
+ BattleText_WontObey,
+ BattleText_TurnedAway,
+ BattleText_NotNotice,
+ BattleText_WillSwitch,
+ BattleText_CreptCloser,
+ BattleText_CantGetCloser,
+ BattleText_WatchingCarefully,
+ BattleText_CuriousAbout,
+ BattleText_EnthralledBy,
+ BattleText_IgnoredThing,
+ BattleText_ThrewBlock,
+ BattleText_SafariOver,
+ BattleText_CuredParalysis,
+ BattleText_CuredPoison,
+ BattleText_CuredBurn,
+ BattleText_CuredFreeze,
+ BattleText_CuredSleep,
+ BattleText_CuredConfusion,
+ BattleText_CuredStatus,
+ BattleText_RestoredHealth,
+ BattleText_RestoredPP,
+ BattleText_RestoredStatus,
+ BattleText_RestoredHPLittle,
+ BattleText_ChoiceBand,
+ BattleText_FocusSash,
+ BattleText_Terminator2,
+ BattleText_PreventedBurn,
+ BattleText_BlocksOther,
+ BattleText_RestoredHPByItem,
+ BattleText_WhipSandstorm,
+ BattleText_PreventedLoss,
+ BattleText_InfatuatedPoke,
+ BattleText_MadeIneffective,
+ BattleText_CuredProblem,
+ BattleText_OozeSuckup,
+ BattleText_Transformed2,
+ BattleText_ElecWeakened,
+ BattleText_FireWeakened,
+ BattleText_HidUnderwater,
+ BattleText_SprangUp,
+ BattleText_CantForgetHM,
+ BattleText_FoundOne,
+ BattleText_PlayerDefeatedTrainer2,
+ BattleText_SoothingAroma,
+ BattleText_CantUseItems,
+ BattleText_UnknownString2,
+ BattleText_UnknownString4,
+ BattleText_HustleUse,
+ BattleText_MadeUseless,
+ BattleText_SandTombTrapped,
+ BattleText_Terminator,
+ BattleText_BoostedExp,
+ BattleText_SunIntensified,
+ BattleText_GroundMoveNegate,
+ BattleText_WallyBall,
+ BattleText_TookAttack2,
+ BattleText_ChoseDestiny,
+ BattleText_LostFocus,
+ BattleText_UseNext,
+ BattleText_FledUsingItem,
+ BattleText_FledUsingOther,
+ BattleText_DraggedOut,
+ BattleText_PreventedOther,
+ BattleText_NormalizedStatus,
+ BattleText_Used2,
+ BattleText_BoxFull,
+ BattleText_AvoidedAttack,
+ BattleText_MadeIneffective2,
+ BattleText_PreventedFlinching,
+ BattleText_AlreadyBurned,
+ BattleText_StatNoLower,
+ BattleText_BlocksOther2,
+ BattleText_WoreOff,
+ BattleText_RaisedDefenseLittle,
+ BattleText_RaisedSpDefLittle,
+ BattleText_BrokeWall,
+ BattleText_PreventedOther2,
+ BattleText_CuredOfProblem,
+ BattleText_AttackingCantEscape,
+ BattleText_Obtained1,
+ BattleText_Obtained2,
+ BattleText_Obtained3,
+ BattleText_NoEffect,
+ BattleText_NoEffectOn,
+};
+
+// below are lists of battle string enums and NOT pointers to the strings.
+const u16 gMissStrings[] =
+{
+ BATTLE_TEXT_AttackMissed,
+ BATTLE_TEXT_ProtectedItself,
+ BATTLE_TEXT_AvoidedAttack,
+ BATTLE_TEXT_AvoidedDamage,
+ BATTLE_TEXT_GroundMoveNegate,
+};
+
+const u16 BattleTextList_401512[] =
+{
+ BATTLE_TEXT_CantEscape2,
+ BATTLE_TEXT_BirchDontLeaveMe,
+ BATTLE_TEXT_PreventEscape,
+ BATTLE_TEXT_CantEscape,
+ BATTLE_TEXT_AttackingCantEscape,
+};
+
+const u16 BattleTextList_40151C[] =
+{
+ BATTLE_TEXT_RainStart,
+ BATTLE_TEXT_PourStart,
+ BATTLE_TEXT_Failed,
+ BATTLE_TEXT_SandBrewed,
+ BATTLE_TEXT_SunBright,
+ BATTLE_TEXT_HailStart,
+};
+
+const u16 BattleTextList_401528[] =
+{
+ BATTLE_TEXT_SandRages,
+ BATTLE_TEXT_HailCont,
+};
+
+const u16 BattleTextList_40152C[] =
+{
+ BATTLE_TEXT_SandBuffeted,
+ BATTLE_TEXT_HailStricken,
+};
+
+const u16 BattleTextList_401530[] =
+{
+ BATTLE_TEXT_SandSubsided,
+ BATTLE_TEXT_HailStop,
+};
+
+const u16 BattleTextList_401534[] =
+{
+ BATTLE_TEXT_RainCont1,
+ BATTLE_TEXT_PourCont,
+ BATTLE_TEXT_RainStop,
+};
+
+const u16 BattleTextList_40153A[] =
+{
+ BATTLE_TEXT_ProtectedItself2,
+ BATTLE_TEXT_BracedItself,
+ BATTLE_TEXT_Failed,
+};
+
+const u16 BattleTextList_401540[] =
+{
+ BATTLE_TEXT_Failed,
+ BATTLE_TEXT_RaisedDefense,
+ BATTLE_TEXT_RaisedDefenseLittle,
+ BATTLE_TEXT_RaisedSpDef,
+ BATTLE_TEXT_RaisedSpDefLittle,
+ BATTLE_TEXT_CoveredVeil,
+};
+
+const u16 BattleTextList_40154C[] =
+{
+ BATTLE_TEXT_WasSeeded,
+ BATTLE_TEXT_EvadedAttack,
+ BATTLE_TEXT_DoesntAffect,
+ BATTLE_TEXT_HealthSapped,
+ BATTLE_TEXT_OozeSuckup,
+};
+
+const u16 BattleTextList_401556[] =
+{
+ BATTLE_TEXT_WentToSleep,
+ BATTLE_TEXT_SpeltHealthy,
+};
+
+const u16 BattleTextList_40155A[] =
+{
+ BATTLE_TEXT_UproarMaking,
+ BATTLE_TEXT_CalmedDown,
+};
+
+const u16 BattleTextList_40155E[] =
+{
+ BATTLE_TEXT_Stockpiled,
+ BATTLE_TEXT_StockpiledCant,
+};
+
+const u16 BattleTextList_401562[] =
+{
+ BATTLE_TEXT_WokeUp,
+ BATTLE_TEXT_UproarWoke,
+};
+
+const u16 BattleTextList_401566[] =
+{
+ BATTLE_TEXT_SwallowFail,
+ BATTLE_TEXT_HPFull,
+};
+
+const u16 BattleTextList_40156A[] =
+{
+ BATTLE_TEXT_UproarCantSleep2,
+ BATTLE_TEXT_UproarKeptAwake,
+ BATTLE_TEXT_StayedAwake,
+};
+
+const u16 BattleTextList_401570[] =
+{
+ BATTLE_TEXT_UnknownString7,
+ BATTLE_TEXT_UnknownString3,
+ BATTLE_TEXT_AttackingStatNoHigher,
+ BATTLE_TEXT_Terminator2,
+ BATTLE_TEXT_UnknownString4,
+ BATTLE_TEXT_HustleUse,
+};
+
+const u16 BattleTextList_40157C[] =
+{
+ BATTLE_TEXT_UnknownString5,
+ BATTLE_TEXT_UnknownString6,
+ BATTLE_TEXT_DefendingStatNoHigher,
+ BATTLE_TEXT_Terminator2,
+};
+
+const u16 BattleTextList_401584[] =
+{
+ BATTLE_TEXT_WhipWhirlwind,
+ BATTLE_TEXT_TookSunlight,
+ BATTLE_TEXT_LoweredHead,
+ BATTLE_TEXT_IsGlowing,
+ BATTLE_TEXT_FlewHigh,
+ BATTLE_TEXT_DugHole,
+ BATTLE_TEXT_HidUnderwater,
+ BATTLE_TEXT_SprangUp,
+};
+
+const u16 BattleTextList_401594[] =
+{
+ BATTLE_TEXT_SqueezedBind,
+ BATTLE_TEXT_Wrapped,
+ BATTLE_TEXT_TrappedVortex,
+ BATTLE_TEXT_Clamped,
+ BATTLE_TEXT_TrappedVortex,
+ BATTLE_TEXT_SandTombTrapped,
+};
+
+const u16 BattleTextList_4015A0[] =
+{
+ BATTLE_TEXT_MistShroud,
+ BATTLE_TEXT_Failed,
+};
+
+const u16 BattleTextList_4015A4[] =
+{
+ BATTLE_TEXT_GetPumped,
+ BATTLE_TEXT_Failed,
+};
+
+const u16 BattleTextList_4015A8[] =
+{
+ BATTLE_TEXT_Transformed,
+ BATTLE_TEXT_Failed,
+};
+
+const u16 BattleTextList_4015AC[] =
+{
+ BATTLE_TEXT_SubMade,
+ BATTLE_TEXT_SubWeak,
+};
+
+const u16 BattleTextList_4015B0[] =
+{
+ BATTLE_TEXT_Poisoned,
+ BATTLE_TEXT_Poisoned2,
+};
+
+const u16 BattleTextList_4015B4[] =
+{
+ BATTLE_TEXT_Paralyzed,
+ BATTLE_TEXT_Paralyzed2,
+};
+
+const u16 BattleTextList_4015B8[] =
+{
+ BATTLE_TEXT_FellAsleep,
+ BATTLE_TEXT_MadeAsleep,
+};
+
+const u16 BattleTextList_4015BC[] =
+{
+ BATTLE_TEXT_Burned,
+ BATTLE_TEXT_Burned2,
+};
+
+const u16 BattleTextList_4015C0[] =
+{
+ BATTLE_TEXT_Frozen,
+ BATTLE_TEXT_Frozen2,
+};
+
+const u16 BattleTextList_4015C4[] =
+{
+ BATTLE_TEXT_AttackingDefrosted,
+ BATTLE_TEXT_Defrosted,
+};
+
+const u16 BattleTextList_4015C8[] =
+{
+ BATTLE_TEXT_AttackMissed,
+ BATTLE_TEXT_Unaffected,
+ BATTLE_TEXT_FellLove,
+ BATTLE_TEXT_InfatuatedPoke,
+};
+
+const u16 BattleTextList_4015D0[] =
+{
+ BATTLE_TEXT_EnergyDrained,
+ BATTLE_TEXT_OozeSuckup,
+};
+
+const u16 BattleTextList_4015D4[] =
+{
+ BATTLE_TEXT_ElecWeakened,
+ BATTLE_TEXT_FireWeakened,
+};
+
+const u16 BattleTextList_4015D8[] =
+{
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_SoothingAroma,
+};
+
+const u16 BattleTextList_4015E2[] =
+{
+ BATTLE_TEXT_ForesawAttack,
+ BATTLE_TEXT_ChoseDestiny,
+};
+
+const u16 BattleTextList_4015E6[] =
+{
+ BATTLE_TEXT_BallBrokeOhNo,
+ BATTLE_TEXT_BallBrokeAppeared,
+ BATTLE_TEXT_BallBrokeAlmost,
+ BATTLE_TEXT_BallBrokeSoClose,
+};
+
+const u16 BattleTextList_4015EE[] =
+{
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Sandstorm,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_SunStrong,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+};
+
+const u16 BattleTextList_40160E[] =
+{
+ BATTLE_TEXT_LoafingAround,
+ BATTLE_TEXT_WontObey,
+ BATTLE_TEXT_TurnedAway,
+ BATTLE_TEXT_NotNotice,
+};
+
+const u16 BattleTextList_401616[] =
+{
+ BATTLE_TEXT_CreptCloser,
+ BATTLE_TEXT_CantGetCloser,
+};
+
+const u16 BattleTextList_40161A[] =
+{
+ BATTLE_TEXT_CuriousAbout,
+ BATTLE_TEXT_EnthralledBy,
+ BATTLE_TEXT_IgnoredThing,
+};
+
+const u16 BattleTextList_401620[] =
+{
+ BATTLE_TEXT_CuredConfusion,
+ BATTLE_TEXT_CuredParalysis,
+ BATTLE_TEXT_CuredFreeze,
+ BATTLE_TEXT_CuredBurn,
+ BATTLE_TEXT_CuredPoison,
+ BATTLE_TEXT_CuredSleep,
+};
+
+const u16 BattleTextList_40162C[] =
+{
+ BATTLE_TEXT_CuredStatus,
+ BATTLE_TEXT_NormalizedStatus,
+};
+
+const u16 BattleTextList_401630[] =
+{
+ BATTLE_TEXT_PreventedBurn,
+ BATTLE_TEXT_PreventedOther2,
+ BATTLE_TEXT_NoEffectOn,
+};
+
+const u16 BattleTextList_401636[] =
+{
+ BATTLE_TEXT_PreventedPara,
+ BATTLE_TEXT_PreventedOther2,
+ BATTLE_TEXT_NoEffectOn,
+};
+
+const u16 BattleTextList_40163C[] =
+{
+ BATTLE_TEXT_PreventedPoison,
+ BATTLE_TEXT_PreventedOther2,
+ BATTLE_TEXT_NoEffectOn,
+};
+
+const u16 BattleTextList_401642[] =
+{
+ BATTLE_TEXT_Obtained1,
+ BATTLE_TEXT_Obtained2,
+ BATTLE_TEXT_Obtained3,
+};
+
+const u16 BattleTextList_401648[] =
+{
+ BATTLE_TEXT_RaisedFirePower,
+ BATTLE_TEXT_MadeIneffective,
+};
+
+const u16 gTrappingMoves[] =
+{
+ MOVE_BIND,
+ MOVE_WRAP,
+ MOVE_FIRE_SPIN,
+ MOVE_CLAMP,
+ MOVE_WHIRLPOOL,
+ MOVE_SAND_TOMB,
+ 0xFFFF,
+};
+
+const u8 *const gUnknown_0840165C[] =
+{
+ BattleText_HP,
+ BattleText_SpAtk,
+ BattleText_Attack,
+ BattleText_SpDef,
+ BattleText_Defense,
+ BattleStatText_Speed,
+};
+
+const u8 *const gUnknown_08401674[] =
+{
+ BattleText_Normal,
+ BattleText_Fighting,
+ BattleText_Flying,
+ BattleText_Poison,
+ BattleText_Ground,
+ BattleText_Rock,
+ BattleText_Bug,
+ BattleText_Ghost,
+ BattleText_Steel,
+ BattleText_Typeless,
+ BattleText_Fire,
+ BattleText_Water,
+ BattleText_Grass,
+ BattleText_Electric,
+ BattleText_Psychic,
+ BattleText_Ice,
+ BattleText_Dragon,
+ BattleText_Dark,
+};
diff --git a/src/data/battle_strings_en.h b/src/data/battle_strings_en.h
new file mode 100755
index 000000000..26523d2e0
--- /dev/null
+++ b/src/data/battle_strings_en.h
@@ -0,0 +1,1612 @@
+#include "constants/moves.h"
+
+enum
+{
+ BATTLE_TEXT_UnknownString = 12,
+ BATTLE_TEXT_GainExpPoints,
+ BATTLE_TEXT_GrewLevel,
+ BATTLE_TEXT_LearnedMove,
+ BATTLE_TEXT_TryingToLearnMove,
+ BATTLE_TEXT_CantLearnMore,
+ BATTLE_TEXT_DeleteMove,
+ BATTLE_TEXT_DeletedMove,
+ BATTLE_TEXT_StopLearning,
+ BATTLE_TEXT_DidNotLearn,
+ BATTLE_TEXT_LearnedMove2,
+ BATTLE_TEXT_AttackMissed,
+ BATTLE_TEXT_ProtectedItself,
+ BATTLE_TEXT_StatNoHigher,
+ BATTLE_TEXT_AvoidedDamage,
+ BATTLE_TEXT_DoesntAffect,
+ BATTLE_TEXT_AttackingFainted,
+ BATTLE_TEXT_DefendingFainted,
+ BATTLE_TEXT_WinningPrize,
+ BATTLE_TEXT_OutOfUsablePoke,
+ BATTLE_TEXT_WhitedOut,
+ BATTLE_TEXT_PreventEscape,
+ BATTLE_TEXT_HitMulti,
+ BATTLE_TEXT_FellAsleep,
+ BATTLE_TEXT_MadeAsleep,
+ BATTLE_TEXT_DefendingAsleep,
+ BATTLE_TEXT_AttackingAsleep,
+ BATTLE_TEXT_WasntAffected,
+ BATTLE_TEXT_Poisoned,
+ BATTLE_TEXT_Poisoned2,
+ BATTLE_TEXT_PoisonHurt,
+ BATTLE_TEXT_AlreadyPoisoned,
+ BATTLE_TEXT_BadlyPoisoned,
+ BATTLE_TEXT_EnergyDrained,
+ BATTLE_TEXT_Burned,
+ BATTLE_TEXT_Burned2,
+ BATTLE_TEXT_BurnHurt,
+ BATTLE_TEXT_Frozen,
+ BATTLE_TEXT_Frozen2,
+ BATTLE_TEXT_FrozenSolid,
+ BATTLE_TEXT_DefendingDefrosted,
+ BATTLE_TEXT_AttackingDefrosted,
+ BATTLE_TEXT_Defrosted,
+ BATTLE_TEXT_Paralyzed,
+ BATTLE_TEXT_Paralyzed2,
+ BATTLE_TEXT_Paralyzed3,
+ BATTLE_TEXT_AlreadyParalyzed,
+ BATTLE_TEXT_ParalysisHealed,
+ BATTLE_TEXT_DreamEaten,
+ BATTLE_TEXT_AttackingStatNoHigher,
+ BATTLE_TEXT_DefendingStatNoHigher,
+ BATTLE_TEXT_StoppedWorking,
+ BATTLE_TEXT_StoppedWorking2,
+ BATTLE_TEXT_Confused,
+ BATTLE_TEXT_ConfusionSnapOut,
+ BATTLE_TEXT_BecameConfused,
+ BATTLE_TEXT_AlreadyConfused,
+ BATTLE_TEXT_FellLove,
+ BATTLE_TEXT_InLoveWith,
+ BATTLE_TEXT_ImmobilizedBy,
+ BATTLE_TEXT_BlownAway,
+ BATTLE_TEXT_TypeTransform,
+ BATTLE_TEXT_Flinched,
+ BATTLE_TEXT_RegainedHealth,
+ BATTLE_TEXT_HPFull,
+ BATTLE_TEXT_RaisedSpDef,
+ BATTLE_TEXT_RaisedDefense,
+ BATTLE_TEXT_CoveredVeil,
+ BATTLE_TEXT_SafeguardActive,
+ BATTLE_TEXT_SafeguardFaded,
+ BATTLE_TEXT_WentToSleep,
+ BATTLE_TEXT_SpeltHealthy,
+ BATTLE_TEXT_WhipWhirlwind,
+ BATTLE_TEXT_TookSunlight,
+ BATTLE_TEXT_LoweredHead,
+ BATTLE_TEXT_IsGlowing,
+ BATTLE_TEXT_FlewHigh,
+ BATTLE_TEXT_DugHole,
+ BATTLE_TEXT_SqueezedBind,
+ BATTLE_TEXT_TrappedVortex,
+ BATTLE_TEXT_Wrapped,
+ BATTLE_TEXT_Clamped,
+ BATTLE_TEXT_HurtBy,
+ BATTLE_TEXT_FreedFrom,
+ BATTLE_TEXT_KeptGoingCrash,
+ BATTLE_TEXT_MistShroud,
+ BATTLE_TEXT_MistProtect,
+ BATTLE_TEXT_GetPumped,
+ BATTLE_TEXT_HitRecoil,
+ BATTLE_TEXT_ProtectedItself2,
+ BATTLE_TEXT_SandBuffeted,
+ BATTLE_TEXT_HailStricken,
+ BATTLE_TEXT_WasSeeded,
+ BATTLE_TEXT_EvadedAttack,
+ BATTLE_TEXT_HealthSapped,
+ BATTLE_TEXT_FastAsleep,
+ BATTLE_TEXT_WokeUp,
+ BATTLE_TEXT_UproarAwake,
+ BATTLE_TEXT_UproarWoke,
+ BATTLE_TEXT_UproarCaused,
+ BATTLE_TEXT_UproarMaking,
+ BATTLE_TEXT_CalmedDown,
+ BATTLE_TEXT_UproarCantSleep,
+ BATTLE_TEXT_Stockpiled,
+ BATTLE_TEXT_StockpiledCant,
+ BATTLE_TEXT_UproarCantSleep2,
+ BATTLE_TEXT_UproarKeptAwake,
+ BATTLE_TEXT_StayedAwake,
+ BATTLE_TEXT_StoringEnergy,
+ BATTLE_TEXT_UnleashedEnergy,
+ BATTLE_TEXT_FatigueConfuse,
+ BATTLE_TEXT_PickedUpYen,
+ BATTLE_TEXT_Unaffected,
+ BATTLE_TEXT_Transformed,
+ BATTLE_TEXT_SubMade,
+ BATTLE_TEXT_SubAlready,
+ BATTLE_TEXT_SubTookDamage,
+ BATTLE_TEXT_SubFaded,
+ BATTLE_TEXT_MustRecharge,
+ BATTLE_TEXT_RageBuilding,
+ BATTLE_TEXT_MoveWasDisabled,
+ BATTLE_TEXT_MoveIsDisabled,
+ BATTLE_TEXT_DisabledNoMore,
+ BATTLE_TEXT_EncoreGot,
+ BATTLE_TEXT_EncoreEnded,
+ BATTLE_TEXT_TookAim,
+ BATTLE_TEXT_SketchedMove,
+ BATTLE_TEXT_DestinyBondTake,
+ BATTLE_TEXT_DestinyBondTaken,
+ BATTLE_TEXT_ReducedBy,
+ BATTLE_TEXT_StoleSomething,
+ BATTLE_TEXT_CantEscapeNow,
+ BATTLE_TEXT_NightmareStart,
+ BATTLE_TEXT_NightmareLock,
+ BATTLE_TEXT_CurseLay,
+ BATTLE_TEXT_CurseAfflict,
+ BATTLE_TEXT_SpikesScattered,
+ BATTLE_TEXT_SpikesHurt,
+ BATTLE_TEXT_IdentifiedPoke,
+ BATTLE_TEXT_PerishSongFell,
+ BATTLE_TEXT_BracedItself,
+ BATTLE_TEXT_EnduredHit,
+ BATTLE_TEXT_MagnitudeCount,
+ BATTLE_TEXT_CutHPMaxATK,
+ BATTLE_TEXT_CopyStatChanges,
+ BATTLE_TEXT_GotFreeFrom,
+ BATTLE_TEXT_LeechShed,
+ BATTLE_TEXT_SpikesBlownAway,
+ BATTLE_TEXT_FledBattle,
+ BATTLE_TEXT_ForesawAttack,
+ BATTLE_TEXT_TookAttack,
+ BATTLE_TEXT_PokeAttack,
+ BATTLE_TEXT_CenterAttention,
+ BATTLE_TEXT_ChargingPower,
+ BATTLE_TEXT_NaturePower,
+ BATTLE_TEXT_StatusNormal,
+ BATTLE_TEXT_NoMovesLeft,
+ BATTLE_TEXT_TormentSubject,
+ BATTLE_TEXT_TormentNoUse,
+ BATTLE_TEXT_TightenFocus,
+ BATTLE_TEXT_TauntFell,
+ BATTLE_TEXT_TauntNoUse,
+ BATTLE_TEXT_ReadyToHelp,
+ BATTLE_TEXT_SwitchedItems,
+ BATTLE_TEXT_CopiedObject,
+ BATTLE_TEXT_WishMade,
+ BATTLE_TEXT_WishTrue,
+ BATTLE_TEXT_PlantedRoots,
+ BATTLE_TEXT_AbsorbNutrients,
+ BATTLE_TEXT_AnchoredItself,
+ BATTLE_TEXT_DrowsyMade,
+ BATTLE_TEXT_KnockedOffItem,
+ BATTLE_TEXT_AbilitySwap,
+ BATTLE_TEXT_SealedMove,
+ BATTLE_TEXT_SealedNoUse,
+ BATTLE_TEXT_GrudgeBear,
+ BATTLE_TEXT_GrudgeLosePP,
+ BATTLE_TEXT_ShroudedItself,
+ BATTLE_TEXT_MagicCoatBounce,
+ BATTLE_TEXT_AwaitMove,
+ BATTLE_TEXT_SnatchedMove,
+ BATTLE_TEXT_RainMade,
+ BATTLE_TEXT_SpeedRisen,
+ BATTLE_TEXT_ProtectedBy,
+ BATTLE_TEXT_PreventedBy,
+ BATTLE_TEXT_HPRestoredUsing,
+ BATTLE_TEXT_MadeType,
+ BATTLE_TEXT_PreventedPara,
+ BATTLE_TEXT_PreventedRomance,
+ BATTLE_TEXT_PreventedPoison,
+ BATTLE_TEXT_PreventedConfusion,
+ BATTLE_TEXT_RaisedFirePower,
+ BATTLE_TEXT_AnchorsItself,
+ BATTLE_TEXT_CutsAttack,
+ BATTLE_TEXT_PreventedStatLoss,
+ BATTLE_TEXT_HurtOther,
+ BATTLE_TEXT_Traced,
+ BATTLE_TEXT_Sharply,
+ BATTLE_TEXT_Rose,
+ BATTLE_TEXT_Harshly,
+ BATTLE_TEXT_Fell,
+ BATTLE_TEXT_UnknownString7,
+ BATTLE_TEXT_UnknownString3,
+ BATTLE_TEXT_UnknownString5,
+ BATTLE_TEXT_UnknownString6,
+ BATTLE_TEXT_Critical,
+ BATTLE_TEXT_GrandSlam,
+ BATTLE_TEXT_MoveForget123,
+ BATTLE_TEXT_MoveForgetAnd,
+ BATTLE_TEXT_NotEffective,
+ BATTLE_TEXT_SuperEffective,
+ BATTLE_TEXT_GotAwaySafely,
+ BATTLE_TEXT_FledWild,
+ BATTLE_TEXT_NoRunning,
+ BATTLE_TEXT_CantEscape2,
+ BATTLE_TEXT_BirchDontLeaveMe,
+ BATTLE_TEXT_Nothing,
+ BATTLE_TEXT_Failed,
+ BATTLE_TEXT_HurtItself,
+ BATTLE_TEXT_MirrorFail,
+ BATTLE_TEXT_RainStart,
+ BATTLE_TEXT_PourStart,
+ BATTLE_TEXT_RainCont1,
+ BATTLE_TEXT_PourCont,
+ BATTLE_TEXT_RainStop,
+ BATTLE_TEXT_SandBrewed,
+ BATTLE_TEXT_SandRages,
+ BATTLE_TEXT_SandSubsided,
+ BATTLE_TEXT_SunBright,
+ BATTLE_TEXT_SunStrong,
+ BATTLE_TEXT_SunFaded,
+ BATTLE_TEXT_HailStart,
+ BATTLE_TEXT_HailCont,
+ BATTLE_TEXT_HailStop,
+ BATTLE_TEXT_SpitUpFail,
+ BATTLE_TEXT_SwallowFail,
+ BATTLE_TEXT_WindHeatWave,
+ BATTLE_TEXT_StatElim,
+ BATTLE_TEXT_CoinScatter,
+ BATTLE_TEXT_SubWeak,
+ BATTLE_TEXT_PainSplit,
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_PerishSong,
+ BATTLE_TEXT_NoPP1,
+ BATTLE_TEXT_NoPP2,
+ BATTLE_TEXT_Used1,
+ BATTLE_TEXT_TutorialUsed,
+ BATTLE_TEXT_BlockBall,
+ BATTLE_TEXT_DontBeAThief,
+ BATTLE_TEXT_DodgeBall,
+ BATTLE_TEXT_MissPoke,
+ BATTLE_TEXT_BallBrokeOhNo,
+ BATTLE_TEXT_BallBrokeAppeared,
+ BATTLE_TEXT_BallBrokeAlmost,
+ BATTLE_TEXT_BallBrokeSoClose,
+ BATTLE_TEXT_BallCaught1,
+ BATTLE_TEXT_BallCaught2,
+ BATTLE_TEXT_GiveNickname,
+ BATTLE_TEXT_SentToPC,
+ BATTLE_TEXT_AddedToDex,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Sandstorm,
+ BATTLE_TEXT_CantEscape,
+ BATTLE_TEXT_IgnoredOrdersSLP,
+ BATTLE_TEXT_IgnoredOrders,
+ BATTLE_TEXT_BeganNap,
+ BATTLE_TEXT_LoafingAround,
+ BATTLE_TEXT_WontObey,
+ BATTLE_TEXT_TurnedAway,
+ BATTLE_TEXT_NotNotice,
+ BATTLE_TEXT_WillSwitch,
+ BATTLE_TEXT_CreptCloser,
+ BATTLE_TEXT_CantGetCloser,
+ BATTLE_TEXT_WatchingCarefully,
+ BATTLE_TEXT_CuriousAbout,
+ BATTLE_TEXT_EnthralledBy,
+ BATTLE_TEXT_IgnoredThing,
+ BATTLE_TEXT_ThrewBlock,
+ BATTLE_TEXT_SafariOver,
+ BATTLE_TEXT_CuredParalysis,
+ BATTLE_TEXT_CuredPoison,
+ BATTLE_TEXT_CuredBurn,
+ BATTLE_TEXT_CuredFreeze,
+ BATTLE_TEXT_CuredSleep,
+ BATTLE_TEXT_CuredConfusion,
+ BATTLE_TEXT_CuredStatus,
+ BATTLE_TEXT_RestoredHealth,
+ BATTLE_TEXT_RestoredPP,
+ BATTLE_TEXT_RestoredStatus,
+ BATTLE_TEXT_RestoredHPLittle,
+ BATTLE_TEXT_ChoiceBand,
+ BATTLE_TEXT_FocusSash,
+ BATTLE_TEXT_Terminator2,
+ BATTLE_TEXT_PreventedBurn,
+ BATTLE_TEXT_BlocksOther,
+ BATTLE_TEXT_RestoredHPByItem,
+ BATTLE_TEXT_WhipSandstorm,
+ BATTLE_TEXT_PreventedLoss,
+ BATTLE_TEXT_InfatuatedPoke,
+ BATTLE_TEXT_MadeIneffective,
+ BATTLE_TEXT_CuredProblem,
+ BATTLE_TEXT_OozeSuckup,
+ BATTLE_TEXT_Transformed2,
+ BATTLE_TEXT_ElecWeakened,
+ BATTLE_TEXT_FireWeakened,
+ BATTLE_TEXT_HidUnderwater,
+ BATTLE_TEXT_SprangUp,
+ BATTLE_TEXT_CantForgetHM,
+ BATTLE_TEXT_FoundOne,
+ BATTLE_TEXT_PlayerDefeatedTrainer2,
+ BATTLE_TEXT_SoothingAroma,
+ BATTLE_TEXT_CantUseItems,
+ BATTLE_TEXT_UnknownString2,
+ BATTLE_TEXT_UnknownString4,
+ BATTLE_TEXT_HustleUse,
+ BATTLE_TEXT_MadeUseless,
+ BATTLE_TEXT_SandTombTrapped,
+ BATTLE_TEXT_Terminator,
+ BATTLE_TEXT_BoostedExp,
+ BATTLE_TEXT_SunIntensified,
+ BATTLE_TEXT_GroundMoveNegate,
+ BATTLE_TEXT_WallyBall,
+ BATTLE_TEXT_TookAttack2,
+ BATTLE_TEXT_ChoseDestiny,
+ BATTLE_TEXT_LostFocus,
+ BATTLE_TEXT_UseNext,
+ BATTLE_TEXT_FledUsingItem,
+ BATTLE_TEXT_FledUsingOther,
+ BATTLE_TEXT_DraggedOut,
+ BATTLE_TEXT_PreventedOther,
+ BATTLE_TEXT_NormalizedStatus,
+ BATTLE_TEXT_Used2,
+ BATTLE_TEXT_BoxFull,
+ BATTLE_TEXT_AvoidedAttack,
+ BATTLE_TEXT_MadeIneffective2,
+ BATTLE_TEXT_PreventedFlinching,
+ BATTLE_TEXT_AlreadyBurned,
+ BATTLE_TEXT_StatNoLower,
+ BATTLE_TEXT_BlocksOther2,
+ BATTLE_TEXT_WoreOff,
+ BATTLE_TEXT_RaisedDefenseLittle,
+ BATTLE_TEXT_RaisedSpDefLittle,
+ BATTLE_TEXT_BrokeWall,
+ BATTLE_TEXT_PreventedOther2,
+ BATTLE_TEXT_CuredOfProblem,
+ BATTLE_TEXT_AttackingCantEscape,
+ BATTLE_TEXT_Obtained1,
+ BATTLE_TEXT_Obtained2,
+ BATTLE_TEXT_Obtained3,
+ BATTLE_TEXT_NoEffect,
+ BATTLE_TEXT_NoEffectOn,
+};
+
+const u8 BattleText_UnknownString[] = _("{STRING 33}");
+const u8 BattleText_GainExpPoints[] = _("{STRING 0} gained{STRING 1}\n{STRING 42} EXP. Points!\p");
+const u8 BattleText_Terminator[] = _("");
+const u8 BattleText_BoostedExp[] = _(" a boosted");
+const u8 BattleText_GrewLevel[] = _("{STRING 0} grew to\nLV. {STRING 1}!{UNKNOWN_A}\p");
+const u8 BattleText_LearnedMove[] = _("{STRING 0} learned\n{STRING 1}!{UNKNOWN_A}\p");
+const u8 BattleText_TryingToLearnMove[] = _("{STRING 0} is trying to\nlearn {STRING 1}.\p");
+const u8 BattleText_CantLearnMore[] = _("But, {STRING 0} can’t learn\nmore than four moves.\p");
+const u8 BattleText_DeleteMove[] = _("Delete a move to make\nroom for {STRING 1}?");
+const u8 BattleText_DeletedMove[] = _("{STRING 0} forgot\n{STRING 1}.\p");
+const u8 BattleText_StopLearning[] = _("{PAUSE 32}Stop learning\n{STRING 1}?");
+const u8 BattleText_DidNotLearn[] = _("{STRING 0} did not learn\n{STRING 1}.\p");
+const u8 BattleText_UseNext[] = _("Use next POKéMON?");
+const u8 BattleText_AttackMissed[] = _("{ATTACKING_MON}’s\nattack missed!");
+const u8 BattleText_ProtectedItself[] = _("{DEFENDING_MON}\nprotected itself!");
+const u8 BattleText_AvoidedDamage[] = _("{DEFENDING_MON} avoided\ndamage with {STRING 22}!");
+const u8 BattleText_GroundMoveNegate[] = _("{DEFENDING_MON} makes GROUND\nmoves miss with {STRING 22}!");
+const u8 BattleText_AvoidedAttack[] = _("{DEFENDING_MON} avoided\nthe attack!");
+const u8 BattleText_DoesntAffect[] = _("It doesn’t affect\n{DEFENDING_MON}...");
+const u8 BattleText_AttackingFainted[] = _("{ATTACKING_MON}\nfainted!\p");
+const u8 BattleText_DefendingFainted[] = _("{DEFENDING_MON}\nfainted!\p");
+const u8 BattleText_WinningPrize[] = _("{STRING 32} got ¥{STRING 0}\nfor winning!\p");
+const u8 BattleText_OutOfUsablePoke[] = _("{STRING 32} is out of\nuseable POKéMON!\p");
+const u8 BattleText_WhitedOut[] = _("{STRING 32} whited out!{PAUSE_UNTIL_PRESS}");
+const u8 BattleText_PreventEscape[] = _("{STRING 16} prevents\nescape with {STRING 23}!\p");
+const u8 BattleText_CantEscape[] = _("Can’t escape!\p");
+const u8 BattleText_AttackingCantEscape[] = _("{ATTACKING_MON}\ncan’t escape!");
+const u8 BattleText_HitMulti[] = _("Hit {STRING 0} time(s)!");
+const u8 BattleText_FellAsleep[] = _("{STRING 14}\nfell asleep!");
+const u8 BattleText_MadeAsleep[] = _("{STRING 16}’s {STRING 23}\nmade {STRING 14} sleep!");
+const u8 BattleText_DefendingAsleep[] = _("{DEFENDING_MON} is\nalready asleep!");
+const u8 BattleText_AttackingAsleep[] = _("{ATTACKING_MON} is\nalready asleep!");
+const u8 BattleText_WasntAffected[] = _("{DEFENDING_MON}\nwasn’t affected!");
+const u8 BattleText_Poisoned[] = _("{STRING 14}\nwas poisoned!");
+const u8 BattleText_Poisoned2[] = _("{STRING 16}’s {STRING 23}\npoisoned {STRING 14}!");
+const u8 BattleText_PoisonHurt[] = _("{ATTACKING_MON} is hurt\nby poison!");
+const u8 BattleText_AlreadyPoisoned[] = _("{DEFENDING_MON} is already\npoisoned.");
+const u8 BattleText_BadlyPoisoned[] = _("{STRING 14} is badly\npoisoned!");
+const u8 BattleText_EnergyDrained[] = _("{DEFENDING_MON} had its\nenergy drained!");
+const u8 BattleText_Burned[] = _("{STRING 14} was burned!");
+const u8 BattleText_Burned2[] = _("{STRING 16}’s {STRING 23}\nburned {STRING 14}!");
+const u8 BattleText_BurnHurt[] = _("{ATTACKING_MON} is hurt\nby its burn!");
+const u8 BattleText_AlreadyBurned[] = _("{DEFENDING_MON} already\nhas a burn.");
+const u8 BattleText_Frozen[] = _("{STRING 14} was\nfrozen solid!");
+const u8 BattleText_Frozen2[] = _("{STRING 16}’s {STRING 23}\nfroze {STRING 14} solid!");
+const u8 BattleText_FrozenSolid[] = _("{ATTACKING_MON} is\nfrozen solid!");
+const u8 BattleText_DefendingDefrosted[] = _("{DEFENDING_MON} was\ndefrosted!");
+const u8 BattleText_AttackingDefrosted[] = _("{ATTACKING_MON} was\ndefrosted!");
+const u8 BattleText_Defrosted[] = _("{ATTACKING_MON} was\ndefrosted by {STRING 17}!");
+const u8 BattleText_Paralyzed[] = _("{STRING 14} is paralyzed!\nIt may be unable to move!");
+const u8 BattleText_Paralyzed2[] = _("{STRING 16}’s {STRING 23}\nparalyzed {STRING 14}!\lIt may be unable to move!");
+const u8 BattleText_Paralyzed3[] = _("{ATTACKING_MON} is paralyzed!\nIt can’t move!");
+const u8 BattleText_AlreadyParalyzed[] = _("{DEFENDING_MON} is\nalready paralyzed!");
+const u8 BattleText_ParalysisHealed[] = _("{DEFENDING_MON} was\nhealed of paralysis!");
+const u8 BattleText_DreamEaten[] = _("{DEFENDING_MON}’s\ndream was eaten!");
+const u8 BattleText_AttackingStatNoHigher[] = _("{ATTACKING_MON}’s {STRING 0}\nwon’t go higher!");
+const u8 BattleText_DefendingStatNoHigher[] = _("{DEFENDING_MON}’s {STRING 0}\nwon’t go lower!");
+const u8 BattleText_StoppedWorking[] = _("Your team’s {STRING 0}\nstopped working!");
+const u8 BattleText_StoppedWorking2[] = _("The foe’s {STRING 0}\nstopped working!");
+const u8 BattleText_Confused[] = _("{ATTACKING_MON} is\nconfused!");
+const u8 BattleText_ConfusionSnapOut[] = _("{ATTACKING_MON} snapped\nout of confusion!");
+const u8 BattleText_BecameConfused[] = _("{STRING 14} became\nconfused!");
+const u8 BattleText_AlreadyConfused[] = _("{DEFENDING_MON} is\nalready confused!");
+const u8 BattleText_FellLove[] = _("{DEFENDING_MON}\nfell in love!");
+const u8 BattleText_InLoveWith[] = _("{ATTACKING_MON} is in love\nwith {STRING 16}!");
+const u8 BattleText_ImmobilizedBy[] = _("{ATTACKING_MON} is\nimmobilized by love!");
+const u8 BattleText_BlownAway[] = _("{DEFENDING_MON} was\nblown away!");
+const u8 BattleText_TypeTransform[] = _("{ATTACKING_MON} transformed\ninto the {STRING 0} type!");
+const u8 BattleText_Flinched[] = _("{ATTACKING_MON} flinched!");
+const u8 BattleText_RegainedHealth[] = _("{DEFENDING_MON} regained\nhealth!");
+const u8 BattleText_HPFull[] = _("{DEFENDING_MON}’s\nHP is full!");
+const u8 BattleText_RaisedSpDef[] = _("{STRING 38}’s {STRING 17}\nraised SP. DEF!");
+const u8 BattleText_RaisedSpDefLittle[] = _("{STRING 38}’s {STRING 17}\nraised SP. DEF a little!");
+const u8 BattleText_RaisedDefense[] = _("{STRING 38}’s {STRING 17}\nraised DEFENSE!");
+const u8 BattleText_RaisedDefenseLittle[] = _("{STRING 38}’s {STRING 17}\nraised DEFENSE a little!");
+const u8 BattleText_CoveredVeil[] = _("{STRING 38} is covered\nby a veil!");
+const u8 BattleText_SafeguardActive[] = _("{DEFENDING_MON} is protected\nby SAFEGUARD!");
+const u8 BattleText_SafeguardFaded[] = _("{STRING 40}’s SAFEGUARD\nfaded!");
+const u8 BattleText_WentToSleep[] = _("{ATTACKING_MON} went\nto sleep!");
+const u8 BattleText_SpeltHealthy[] = _("{ATTACKING_MON} slept and\nbecame healthy!");
+const u8 BattleText_WhipWhirlwind[] = _("{ATTACKING_MON} whipped\nup a whirlwind!");
+const u8 BattleText_TookSunlight[] = _("{ATTACKING_MON} took\nin sunlight!");
+const u8 BattleText_LoweredHead[] = _("{ATTACKING_MON} lowered\nits head!");
+const u8 BattleText_IsGlowing[] = _("{ATTACKING_MON} is glowing!");
+const u8 BattleText_FlewHigh[] = _("{ATTACKING_MON} flew\nup high!");
+const u8 BattleText_DugHole[] = _("{ATTACKING_MON} dug a hole!");
+const u8 BattleText_HidUnderwater[] = _("{ATTACKING_MON} hid\nunderwater!");
+const u8 BattleText_SprangUp[] = _("{ATTACKING_MON} sprang up!");
+const u8 BattleText_SqueezedBind[] = _("{DEFENDING_MON} was squeezed by\n{ATTACKING_MON}’s BIND!");
+const u8 BattleText_TrappedVortex[] = _("{DEFENDING_MON} was trapped\nin the vortex!");
+const u8 BattleText_SandTombTrapped[] = _("{DEFENDING_MON} was trapped\nby SAND TOMB!");
+const u8 BattleText_Wrapped[] = _("{DEFENDING_MON} was WRAPPED by\n{ATTACKING_MON}!");
+const u8 BattleText_Clamped[] = _("{ATTACKING_MON} CLAMPED\n{DEFENDING_MON}!");
+const u8 BattleText_HurtBy[] = _("{ATTACKING_MON} is hurt\nby {STRING 0}!");
+const u8 BattleText_FreedFrom[] = _("{ATTACKING_MON} was freed\nfrom {STRING 0}!");
+const u8 BattleText_KeptGoingCrash[] = _("{ATTACKING_MON} kept going\nand crashed!");
+const u8 BattleText_MistShroud[] = _("{STRING 38} became\nshrouded in MIST!");
+const u8 BattleText_MistProtect[] = _("{STRING 16} is protected\nby MIST!");
+const u8 BattleText_GetPumped[] = _("{ATTACKING_MON} is getting\npumped!");
+const u8 BattleText_HitRecoil[] = _("{ATTACKING_MON} is hit\nwith recoil!");
+const u8 BattleText_ProtectedItself2[] = _("{ATTACKING_MON} protected\nitself!");
+const u8 BattleText_SandBuffeted[] = _("{ATTACKING_MON} is buffeted\nby the sandstorm!");
+const u8 BattleText_HailStricken[] = _("{ATTACKING_MON} is stricken\nby HAIL!");
+const u8 BattleText_WoreOff[] = _("{STRING 36}’s {STRING 0}\nwore off!");
+const u8 BattleText_WasSeeded[] = _("{DEFENDING_MON} was seeded!");
+const u8 BattleText_EvadedAttack[] = _("{DEFENDING_MON} evaded\nthe attack!");
+const u8 BattleText_HealthSapped[] = _("{ATTACKING_MON}’s health is\nsapped by LEECH SEED!");
+const u8 BattleText_FastAsleep[] = _("{ATTACKING_MON} is fast\nasleep.");
+const u8 BattleText_WokeUp[] = _("{ATTACKING_MON} woke up!");
+const u8 BattleText_UproarAwake[] = _("But {STRING 16}’s UPROAR\nkept it awake!");
+const u8 BattleText_UproarWoke[] = _("{ATTACKING_MON} woke up\nin the UPROAR!");
+const u8 BattleText_UproarCaused[] = _("{ATTACKING_MON} caused\nan UPROAR!");
+const u8 BattleText_UproarMaking[] = _("{ATTACKING_MON} is making\nan UPROAR!");
+const u8 BattleText_CalmedDown[] = _("{ATTACKING_MON} calmed down.");
+const u8 BattleText_UproarCantSleep[] = _("But {DEFENDING_MON} can’t\nsleep in an UPROAR!");
+const u8 BattleText_Stockpiled[] = _("{ATTACKING_MON} STOCKPILED\n{STRING 0}!");
+const u8 BattleText_StockpiledCant[] = _("{ATTACKING_MON} can’t\nSTOCKPILE any more!");
+const u8 BattleText_UproarCantSleep2[] = _("But {DEFENDING_MON} can’t\nsleep in an UPROAR!");
+const u8 BattleText_UproarKeptAwake[] = _("But the UPROAR kept\n{DEFENDING_MON} awake!");
+const u8 BattleText_StayedAwake[] = _("{DEFENDING_MON} stayed awake\nusing its {STRING 22}!");
+const u8 BattleText_StoringEnergy[] = _("{ATTACKING_MON} is storing\nenergy!");
+const u8 BattleText_UnleashedEnergy[] = _("{ATTACKING_MON} unleashed\nenergy!");
+const u8 BattleText_FatigueConfuse[] = _("{ATTACKING_MON} became\nconfused out of fatigue!");
+const u8 BattleText_PickedUpYen[] = _("{STRING 32} picked up\n¥{STRING 0}!\p");
+const u8 BattleText_Unaffected[] = _("{DEFENDING_MON} is\nunaffected!");
+const u8 BattleText_Transformed[] = _("{ATTACKING_MON} transformed\ninto {STRING 0}!");
+const u8 BattleText_SubMade[] = _("{ATTACKING_MON} made\na SUBSTITUTE!");
+const u8 BattleText_SubAlready[] = _("{ATTACKING_MON} already\nhas a SUBSTITUTE!");
+const u8 BattleText_SubTookDamage[] = _("The SUBSTITUTE took damage\nfor {DEFENDING_MON}!\p");
+const u8 BattleText_SubFaded[] = _("{DEFENDING_MON}’s\nSUBSTITUTE faded!\p");
+const u8 BattleText_MustRecharge[] = _("{ATTACKING_MON} must\nrecharge!");
+const u8 BattleText_RageBuilding[] = _("{DEFENDING_MON}’s RAGE\nis building!");
+const u8 BattleText_MoveWasDisabled[] = _("{DEFENDING_MON}’s {STRING 0}\nwas disabled!");
+const u8 BattleText_DisabledNoMore[] = _("{ATTACKING_MON} is disabled\nno more!");
+const u8 BattleText_EncoreGot[] = _("{DEFENDING_MON} got\nan ENCORE!");
+const u8 BattleText_EncoreEnded[] = _("{ATTACKING_MON}’s ENCORE\nended!");
+const u8 BattleText_TookAim[] = _("{ATTACKING_MON} took aim\nat {DEFENDING_MON}!");
+const u8 BattleText_SketchedMove[] = _("{ATTACKING_MON} SKETCHED\n{STRING 0}!");
+const u8 BattleText_DestinyBondTake[] = _("{ATTACKING_MON} is trying\nto take its foe with it!");
+const u8 BattleText_DestinyBondTaken[] = _("{DEFENDING_MON} took\n{ATTACKING_MON} with it!");
+const u8 BattleText_ReducedBy[] = _("Reduced {DEFENDING_MON}’s\n{STRING 0} by {STRING 1}!");
+const u8 BattleText_StoleSomething[] = _("{ATTACKING_MON} stole\n{DEFENDING_MON}’s {STRING 19}!");
+const u8 BattleText_CantEscapeNow[] = _("{DEFENDING_MON} can’t\nescape now!");
+const u8 BattleText_NightmareStart[] = _("{DEFENDING_MON} fell into\na NIGHTMARE!");
+const u8 BattleText_NightmareLock[] = _("{ATTACKING_MON} is locked\nin a NIGHTMARE!");
+const u8 BattleText_CurseLay[] = _("{ATTACKING_MON} cut its own HP\nand laid a CURSE on\l{DEFENDING_MON}!");
+const u8 BattleText_CurseAfflict[] = _("{ATTACKING_MON} is afflicted\nby the CURSE!");
+const u8 BattleText_SpikesScattered[] = _("{STRING 37} POKéMON team had SPIKES\nscattered around it!");
+const u8 BattleText_SpikesHurt[] = _("{STRING 16} is hurt\nby SPIKES!");
+const u8 BattleText_IdentifiedPoke[] = _("{ATTACKING_MON} identified\n{DEFENDING_MON}!");
+const u8 BattleText_PerishSongFell[] = _("{ATTACKING_MON}’s PERISH count\nfell to {STRING 0}!");
+const u8 BattleText_BracedItself[] = _("{ATTACKING_MON} braced\nitself!");
+const u8 BattleText_EnduredHit[] = _("{DEFENDING_MON} ENDURED\nthe hit!");
+const u8 BattleText_MagnitudeCount[] = _("MAGNITUDE {STRING 0}!");
+const u8 BattleText_CutHPMaxATK[] = _("{ATTACKING_MON} cut its own HP\nand maximized ATTACK!");
+const u8 BattleText_CopyStatChanges[] = _("{ATTACKING_MON} copied\n{DEFENDING_MON}’s stat changes!");
+const u8 BattleText_GotFreeFrom[] = _("{ATTACKING_MON} got free of\n{DEFENDING_MON}’s {STRING 0}!");
+const u8 BattleText_LeechShed[] = _("{ATTACKING_MON} shed\nLEECH SEED!");
+const u8 BattleText_SpikesBlownAway[] = _("{ATTACKING_MON} blew away\nSPIKES!");
+const u8 BattleText_FledBattle[] = _("{ATTACKING_MON} fled from\nbattle!");
+const u8 BattleText_ForesawAttack[] = _("{ATTACKING_MON} foresaw\nan attack!");
+const u8 BattleText_TookAttack[] = _("{DEFENDING_MON} took\n{STRING 0}’s attack!");
+const u8 BattleText_ChoseDestiny[] = _("{ATTACKING_MON} chose\n{STRING 17} as its destiny!");
+const u8 BattleText_PokeAttack[] = _("{STRING 0}’s attack!");
+const u8 BattleText_CenterAttention[] = _("{ATTACKING_MON} became the\ncenter of attention!");
+const u8 BattleText_ChargingPower[] = _("{ATTACKING_MON} began\ncharging power!");
+const u8 BattleText_NaturePower[] = _("NATURE POWER turned into\n{STRING 17}!");
+const u8 BattleText_StatusNormal[] = _("{ATTACKING_MON}’s status\nreturned to normal!");
+const u8 BattleText_TormentSubject[] = _("{DEFENDING_MON} was subjected\nto TORMENT!");
+const u8 BattleText_TightenFocus[] = _("{ATTACKING_MON} is tightening\nits focus!");
+const u8 BattleText_TauntFell[] = _("{DEFENDING_MON} fell for\nthe TAUNT!");
+const u8 BattleText_ReadyToHelp[] = _("{ATTACKING_MON} is ready to\nhelp {DEFENDING_MON}!");
+const u8 BattleText_SwitchedItems[] = _("{ATTACKING_MON} switched\nitems with its opponent!");
+const u8 BattleText_Obtained1[] = _("{ATTACKING_MON} obtained\n{STRING 0}.");
+const u8 BattleText_Obtained2[] = _("{DEFENDING_MON} obtained\n{STRING 1}.");
+const u8 BattleText_Obtained3[] = _("{ATTACKING_MON} obtained\n{STRING 0}.\p{DEFENDING_MON} obtained\n{STRING 1}.");
+const u8 BattleText_CopiedObject[] = _("{ATTACKING_MON} copied\n{DEFENDING_MON}’s {STRING 22}!");
+const u8 BattleText_WishMade[] = _("{ATTACKING_MON} made a WISH!");
+const u8 BattleText_WishTrue[] = _("{STRING 0}’s WISH\ncame true!");
+const u8 BattleText_PlantedRoots[] = _("{ATTACKING_MON} planted its roots!");
+const u8 BattleText_AbsorbNutrients[] = _("{ATTACKING_MON} absorbed\nnutrients with its roots!");
+const u8 BattleText_AnchoredItself[] = _("{DEFENDING_MON} anchored\nitself with its roots!");
+const u8 BattleText_DrowsyMade[] = _("{ATTACKING_MON} made\n{DEFENDING_MON} drowsy!");
+const u8 BattleText_KnockedOffItem[] = _("{ATTACKING_MON} knocked off\n{DEFENDING_MON}’s {STRING 19}!");
+const u8 BattleText_AbilitySwap[] = _("{ATTACKING_MON} swapped abilities\nwith its opponent!");
+const u8 BattleText_SealedMove[] = _("{ATTACKING_MON} sealed the\nopponent’s move(s)!");
+const u8 BattleText_GrudgeBear[] = _("{ATTACKING_MON} wants the\nopponent to bear a GRUDGE!");
+const u8 BattleText_GrudgeLosePP[] = _("{ATTACKING_MON}’s {STRING 0}\nlost all its PP due to\lthe GRUDGE!");
+const u8 BattleText_ShroudedItself[] = _("{ATTACKING_MON} shrouded\nitself in {STRING 17}!");
+const u8 BattleText_MagicCoatBounce[] = _("{ATTACKING_MON}’s {STRING 17}\nwas bounced back by MAGIC COAT!");
+const u8 BattleText_AwaitMove[] = _("{ATTACKING_MON} awaits its foe\nto make a move!");
+const u8 BattleText_SnatchedMove[] = _("{DEFENDING_MON} SNATCHED\n{STRING 16}’s move!");
+const u8 BattleText_ElecWeakened[] = _("Electricity’s power was\nweakened!");
+const u8 BattleText_FireWeakened[] = _("Fire’s power was\nweakened!");
+const u8 BattleText_FoundOne[] = _("{ATTACKING_MON} found\none {STRING 19}!");
+const u8 BattleText_SoothingAroma[] = _("A soothing aroma wafted\nthrough the area!");
+const u8 BattleText_CantUseItems[] = _("Items can’t be used now.{PAUSE 64}");
+const u8 BattleText_UnknownString2[] = _("For {STRING 16},\n{STRING 19} {STRING 0}");
+const u8 BattleText_HustleUse[] = _("{STRING 16} used\n{STRING 19} to hustle!");
+const u8 BattleText_LostFocus[] = _("{ATTACKING_MON} lost its\nfocus and couldn’t move!");
+const u8 BattleText_DraggedOut[] = _("{DEFENDING_MON} was\ndragged out!\p");
+const u8 BattleText_BrokeWall[] = _("The wall shattered!");
+const u8 BattleText_NoEffect[] = _("But it had no effect!");
+const u8 BattleText_NoMovesLeft[] = _("{STRING 15} has no\nmoves left!\p");
+const u8 BattleText_MoveIsDisabled[] = _("{STRING 15}’s {STRING 17}\nis disabled!\p");
+const u8 BattleText_TormentNoUse[] = _("{STRING 15} can’t use the same\nmove twice in a row due to the TORMENT!\p");
+const u8 BattleText_TauntNoUse[] = _("{STRING 15} can’t use\n{STRING 17} after the TAUNT!\p");
+const u8 BattleText_SealedNoUse[] = _("{STRING 15} can’t use the\nsealed {STRING 17}!\p");
+const u8 BattleText_RainMade[] = _("{STRING 16}’s {STRING 23}\nmade it rain!");
+const u8 BattleText_SpeedRisen[] = _("{STRING 16}’s {STRING 23}\nraised its SPEED!");
+const u8 BattleText_ProtectedBy[] = _("{DEFENDING_MON} was protected\nby {STRING 22}!");
+const u8 BattleText_PreventedBy[] = _("{DEFENDING_MON}’s {STRING 22}\nprevents {ATTACKING_MON}\lfrom using {STRING 17}!");
+const u8 BattleText_HPRestoredUsing[] = _("{DEFENDING_MON} restored HP\nusing its {STRING 22}!");
+const u8 BattleText_MadeUseless[] = _("{DEFENDING_MON}’s {STRING 22}\nmade {STRING 17} useless!");
+const u8 BattleText_MadeType[] = _("{DEFENDING_MON}’s {STRING 22}\nmade it the {STRING 0} type!");
+const u8 BattleText_PreventedPara[] = _("{STRING 14}’s {STRING 22}\nprevents paralysis!");
+const u8 BattleText_PreventedRomance[] = _("{DEFENDING_MON}’s {STRING 22}\nprevents romance!");
+const u8 BattleText_PreventedPoison[] = _("{STRING 14}’s {STRING 22}\nprevents poisoning!");
+const u8 BattleText_PreventedConfusion[] = _("{DEFENDING_MON}’s {STRING 22}\nprevents confusion!");
+const u8 BattleText_RaisedFirePower[] = _("{DEFENDING_MON}’s {STRING 22}\nraised its FIRE power!");
+const u8 BattleText_AnchorsItself[] = _("{DEFENDING_MON} anchors\nitself with {STRING 22}!");
+const u8 BattleText_CutsAttack[] = _("{STRING 16}’s {STRING 23}\ncuts {DEFENDING_MON}’s ATTACK!");
+const u8 BattleText_PreventedStatLoss[] = _("{STRING 16}’s {STRING 23}\nprevents stat loss!");
+const u8 BattleText_HurtOther[] = _("{DEFENDING_MON}’s {STRING 22}\nhurt {ATTACKING_MON}!");
+const u8 BattleText_Traced[] = _("{STRING 16} TRACED\n{STRING 0}’s {STRING 1}!");
+const u8 BattleText_PreventedBurn[] = _("{STRING 14}’s {STRING 24}\nprevents burns!");
+const u8 BattleText_BlocksOther[] = _("{DEFENDING_MON}’s {STRING 22}\nblocks {STRING 17}!");
+const u8 BattleText_BlocksOther2[] = _("{STRING 16}’s {STRING 23}\nblocks {STRING 17}!");
+const u8 BattleText_RestoredHPByItem[] = _("{ATTACKING_MON}’s {STRING 21}\nrestored some HP!");
+const u8 BattleText_WhipSandstorm[] = _("{STRING 16}’s {STRING 23}\nwhipped up a sandstorm!");
+const u8 BattleText_SunIntensified[] = _("{STRING 16}’s {STRING 23}\nintensified the sun’s rays!");
+const u8 BattleText_PreventedLoss[] = _("{STRING 16}’s {STRING 23}\nprevents {STRING 0} loss!");
+const u8 BattleText_InfatuatedPoke[] = _("{DEFENDING_MON}’s {STRING 22}\ninfatuated {ATTACKING_MON}!");
+const u8 BattleText_MadeIneffective[] = _("{DEFENDING_MON}’s {STRING 22}\nmade {STRING 17} ineffective!");
+const u8 BattleText_CuredProblem[] = _("{STRING 16}’s {STRING 23}\ncured its {STRING 0} problem!");
+const u8 BattleText_OozeSuckup[] = _("It sucked up the\nLIQUID OOZE!");
+const u8 BattleText_Transformed2[] = _("{STRING 16} transformed!");
+const u8 BattleText_TookAttack2[] = _("{DEFENDING_MON}’s {STRING 22}\ntook the attack!");
+const u8 BattleText_PreventedSwitch[] = _("{STRING 0}’s {STRING 20}\nprevents switching!\p");
+const u8 BattleText_PreventedOther[] = _("{DEFENDING_MON}’s {STRING 22}\nprevented {STRING 16}’s\l{STRING 0} from working!");
+const u8 BattleText_MadeIneffective2[] = _("{STRING 16}’s {STRING 23}\nmade it ineffective!");
+const u8 BattleText_PreventedFlinching[] = _("{STRING 14}’s {STRING 24}\nprevents flinching!");
+const u8 BattleText_PreventedOther2[] = _("{ATTACKING_MON}’s {STRING 21}\nprevents {DEFENDING_MON}’s\l{STRING 22} from working!");
+const u8 BattleText_CuredOfProblem[] = _("{STRING 16}’s {STRING 23}\ncured its {STRING 0} problem!");
+const u8 BattleText_NoEffectOn[] = _("{STRING 16}’s {STRING 23}\nhad no effect on {STRING 14}!");
+const u8 BattleText_Sharply[] = _("sharply ");
+const u8 BattleText_Rose[] = _("rose!");
+const u8 BattleText_Harshly[] = _("harshly ");
+const u8 BattleText_Fell[] = _("fell!");
+const u8 BattleText_UnknownString7[] = _("{ATTACKING_MON}’s {STRING 0}\n{STRING 1}");
+const u8 BattleText_UnknownString3[] = _("{DEFENDING_MON}’s {STRING 0}\n{STRING 1}");
+const u8 BattleText_UnknownString4[] = _("Using {STRING 19}, the {STRING 0}\nof {STRING 16} {STRING 1}");
+const u8 BattleText_UnknownString5[] = _("{ATTACKING_MON}’s {STRING 0}\n{STRING 1}");
+const u8 BattleText_UnknownString6[] = _("{DEFENDING_MON}’s {STRING 0}\n{STRING 1}");
+const u8 BattleText_StatNoHigher[] = _("{ATTACKING_MON}’s stats won’t\ngo any higher!");
+const u8 BattleText_StatNoLower[] = _("{DEFENDING_MON}’s stats won’t\ngo any lower!");
+const u8 BattleText_Critical[] = _("A critical hit!");
+const u8 BattleText_GrandSlam[] = _("It’s a one-hit KO!");
+const u8 BattleText_MoveForget123[] = _("{PAUSE 32}1, {PAUSE 15}2 and...{PAUSE 15} ...{PAUSE 15} ...{PAUSE 15}\n{PAUSE 15}{PLAY_SE SE_KON}Poof!\p");
+const u8 BattleText_MoveForgetAnd[] = _("And...\p");
+const u8 BattleText_CantForgetHM[] = _("HM moves can’t be\nforgotten now.\p");
+const u8 BattleText_NotEffective[] = _("It’s not very effective...");
+const u8 BattleText_SuperEffective[] = _("It’s super effective!");
+const u8 BattleText_GotAwaySafely[] = _("{PLAY_SE SE_NIGERU}Got away safely!\p");
+const u8 BattleText_FledUsingItem[] = _("{PLAY_SE SE_NIGERU}{ATTACKING_MON} fled\nusing its {STRING 19}!\p");
+const u8 BattleText_FledUsingOther[] = _("{PLAY_SE SE_NIGERU}{ATTACKING_MON} fled\nusing {STRING 21}!\p");
+const u8 BattleText_FledWild[] = _("{PLAY_SE SE_NIGERU}Wild {STRING 0} fled!");
+const u8 BattleText_PlayerDefeatedTrainer[] = _("Player defeated\n{STRING 29}!");
+const u8 BattleText_PlayerDefeatedTrainers[] = _("Player beat {STRING 30}\nand {STRING 29}!");
+const u8 BattleText_PlayerLostTrainer[] = _("Player lost against\n{STRING 29}!");
+const u8 BattleText_PlayerLostTrainers[] = _("Player lost to {STRING 30}\nand {STRING 29}!");
+const u8 BattleText_PlayerTiedTrainer[] = _("Player tied against\n{STRING 29}!");
+const u8 BattleText_PlayerTiedTrainers[] = _("Player tied against {STRING 30}\nand {STRING 29}!");
+const u8 BattleText_FledSingle[] = _("{PLAY_SE SE_NIGERU}{STRING 29} fled!");
+const u8 BattleText_FledDouble[] = _("{PLAY_SE SE_NIGERU}{STRING 29} and\n{STRING 30} fled!");
+const u8 BattleText_NoRunning[] = _("No! There’s no running\nfrom a TRAINER battle!\p");
+const u8 BattleText_CantEscape2[] = _("Can’t escape!\p");
+const u8 BattleText_BirchDontLeaveMe[] = _("PROF. BIRCH: D-don’t leave\nme here like this!\p");
+const u8 BattleText_Nothing[] = _("But nothing happened!");
+const u8 BattleText_Failed[] = _("But it failed!");
+const u8 BattleText_HurtItself[] = _("It hurt itself in its\nconfusion!");
+const u8 BattleText_MirrorFail[] = _("The MIRROR MOVE failed!");
+const u8 BattleText_RainStart[] = _("It started to rain!");
+const u8 BattleText_PourStart[] = _("A downpour started!");
+const u8 BattleText_RainCont1[] = _("Rain continues to fall.");
+const u8 BattleText_PourCont[] = _("The downpour continues.");
+const u8 BattleText_RainStop[] = _("The rain stopped.");
+const u8 BattleText_SandBrewed[] = _("A sandstorm brewed!");
+const u8 BattleText_SandRages[] = _("The sandstorm rages.");
+const u8 BattleText_SandSubsided[] = _("The sandstorm subsided.");
+const u8 BattleText_SunBright[] = _("The sunlight got bright!");
+const u8 BattleText_SunStrong[] = _("The sunlight is strong.");
+const u8 BattleText_SunFaded[] = _("The sunlight faded.");
+const u8 BattleText_HailStart[] = _("It started to hail!");
+const u8 BattleText_HailCont[] = _("Hail continues to fall.");
+const u8 BattleText_HailStop[] = _("The hail stopped.");
+const u8 BattleText_SpitUpFail[] = _("But it failed to SPIT UP\na thing!");
+const u8 BattleText_SwallowFail[] = _("But it failed to SWALLOW\na thing!");
+const u8 BattleText_WindHeatWave[] = _("The wind turned into a\nHEAT WAVE!");
+const u8 BattleText_StatElim[] = _("All stat changes were\neliminated!");
+const u8 BattleText_CoinScatter[] = _("Coins scattered everywhere!");
+const u8 BattleText_SubWeak[] = _("It was too weak to make\na SUBSTITUTE!");
+const u8 BattleText_PainSplit[] = _("The battlers shared\ntheir pain!");
+const u8 BattleText_BellChime[] = _("A bell chimed!");
+const u8 BattleText_PerishSong[] = _("All affected POKéMON will\nfaint in 3 turns!");
+const u8 BattleText_NoPP1[] = _("There’s no PP left for\nthis move!\p");
+const u8 BattleText_NoPP2[] = _("But there was no PP left\nfor the move!");
+const u8 BattleText_IgnoredOrdersSLP[] = _("{ATTACKING_MON} ignored\norders while asleep!");
+const u8 BattleText_IgnoredOrders[] = _("{ATTACKING_MON} ignored\norders!");
+const u8 BattleText_BeganNap[] = _("{ATTACKING_MON} began to nap!");
+const u8 BattleText_LoafingAround[] = _("{ATTACKING_MON} is\nloafing around!");
+const u8 BattleText_WontObey[] = _("{ATTACKING_MON} won’t\nobey!");
+const u8 BattleText_TurnedAway[] = _("{ATTACKING_MON} turned away!");
+const u8 BattleText_NotNotice[] = _("{ATTACKING_MON} pretended\nto not notice!");
+const u8 BattleText_WillSwitch[] = _("{STRING 25} {STRING 26} is\nabout to use {STRING 1}.\pWill {STRING 32} change\nPOKéMON?");
+const u8 BattleText_LearnedMove2[] = _("{ATTACKING_MON} learned\n{STRING 0}!");
+const u8 BattleText_PlayerDefeatedTrainer2[] = _("Player defeated\n{STRING 25} {STRING 26}!\p");
+const u8 BattleText_CreptCloser[] = _("{STRING 32} crept closer to\n{STRING 3}!");
+const u8 BattleText_CantGetCloser[] = _("{STRING 32} can’t get any closer!");
+const u8 BattleText_WatchingCarefully[] = _("{STRING 3} is watching\ncarefully!");
+const u8 BattleText_CuriousAbout[] = _("{STRING 3} is curious about\nthe {STRING 0}!");
+const u8 BattleText_EnthralledBy[] = _("{STRING 3} is enthralled by\nthe {STRING 0}!");
+const u8 BattleText_IgnoredThing[] = _("{STRING 3} completely ignored\nthe {STRING 0}!");
+const u8 BattleText_ThrewBlock[] = _("{STRING 32} threw a {POKEBLOCK}\nat the {STRING 3}!");
+const u8 BattleText_SafariOver[] = _("{PLAY_SE SE_PINPON}ANNOUNCER: You’re out of\nSAFARI BALLS! Game over!\p");
+const u8 BattleText_WildAppeared1[] = _("Wild {STRING 3} appeared!\p");
+const u8 BattleText_WildAppeared2[] = _("Wild {STRING 3} appeared!\p");
+const u8 BattleText_WildAppeared3[] = _("Wild {STRING 3} appeared!{PAUSE 127}");
+const u8 BattleText_WildDoubleAppeared[] = _("Wild {STRING 5} and\n{STRING 3} appeared!\p");
+const u8 BattleText_SingleWantToBattle1[] = _("{STRING 25} {STRING 26}\nwould like to battle!\p");
+const u8 BattleText_SingleWantToBattle2[] = _("{STRING 29}\nwants to battle!");
+const u8 BattleText_DoubleWantToBattle[] = _("{STRING 29} and {STRING 30}\nwant to battle!");
+const u8 BattleText_SentOutSingle1[] = _("{STRING 25} {STRING 26} sent\nout {STRING 3}!");
+const u8 BattleText_SentOutDouble1[] = _("{STRING 25} {STRING 26} sent\nout {STRING 3} and {STRING 5}!");
+const u8 BattleText_SentOutSingle2[] = _("{STRING 25} {STRING 26} sent\nout {STRING 0}!");
+const u8 BattleText_SentOutSingle3[] = _("{STRING 29} sent\nout {STRING 3}!");
+const u8 BattleText_SentOutDouble2[] = _("{STRING 29} sent out\n{STRING 3} and {STRING 5}!");
+const u8 BattleText_SentOutDouble3[] = _("{STRING 29} sent out\n{STRING 7}!\p{STRING 30} sent out\n{STRING 9}!");
+const u8 BattleText_SentOutSingle4[] = _("{STRING 29} sent out\n{STRING 0}!");
+const u8 BattleText_SentOutSingle5[] = _("{STRING 31} sent out\n{STRING 0}!");
+const u8 BattleText_SentOutSingle6[] = _("Go! {STRING 2}!");
+const u8 BattleText_SentOutDouble4[] = _("Go! {STRING 2} and\n{STRING 4}!");
+const u8 BattleText_SentOutSingle7[] = _("Go! {STRING 0}!");
+const u8 BattleText_SentOutSingle8[] = _("Do it! {STRING 0}!");
+const u8 BattleText_SentOutSingle9[] = _("Go for it, {STRING 0}!");
+const u8 BattleText_SentOutSingle10[] = _("Your foe’s weak!\nGet’m, {STRING 0}!");
+const u8 BattleText_SentOutSingle11[] = _("{STRING 28} sent out\n{STRING 8}!\pGo! {STRING 6}!");
+const u8 BattleText_ComeBackSingle1[] = _("{STRING 0}, that’s enough!\nCome back!");
+const u8 BattleText_ComeBackSingle2[] = _("{STRING 0}, come back!");
+const u8 BattleText_ComeBackSingle3[] = _("{STRING 0}, OK!\nCome back!");
+const u8 BattleText_ComeBackSingle4[] = _("{STRING 0}, good!\nCome back!");
+const u8 BattleText_WithdrewPoke1[] = _("{STRING 25} {STRING 26}\nwithdrew {STRING 0}!");
+const u8 BattleText_WithdrewPoke2[] = _("{STRING 29} withdrew\n{STRING 0}!");
+const u8 BattleText_WithdrewPoke3[] = _("{STRING 31} withdrew\n{STRING 0}!");
+const u8 BattleText_Wild[] = _("Wild ");
+const u8 BattleText_Foe[] = _("Foe ");
+const u8 BattleText_Foe2[] = _("Foe ");
+const u8 BattleText_Ally[] = _("Ally ");
+const u8 BattleText_Foe3[] = _("Foe ");
+const u8 BattleText_Ally2[] = _("Ally ");
+const u8 BattleText_Foe4[] = _("Foe ");
+const u8 BattleText_Ally3[] = _("Ally ");
+const u8 BattleText_OpponentUsedMove[] = _("{ATTACKING_MON} used\n{STRING 1}");
+const u8 BattleText_Exclamation2[] = _("!");
+const u8 BattleText_Exclamation3[] = _("!");
+const u8 BattleText_Exclamation4[] = _("!");
+const u8 BattleText_Exclamation5[] = _("!");
+const u8 BattleText_Exclamation[] = _("!");
+const u8 BattleStatText_HP[] = _("HP");
+const u8 BattleStatText_Attack[] = _("ATTACK");
+const u8 BattleStatText_Defense[] = _("DEFENSE");
+const u8 BattleStatText_Speed[] = _("SPEED");
+const u8 BattleStatText_SpAtk[] = _("SP. ATK");
+const u8 BattleStatText_SpDef[] = _("SP. DEF");
+const u8 BattleStatText_Accuracy[] = _("accuracy");
+const u8 BattleStatText_Evasion[] = _("evasiveness");
+const u8 ContestStatText_TooSpicy[] = _("was too spicy!");
+const u8 ContestStatText_TooDry[] = _("was too dry!");
+const u8 ContestStatText_TooSweet[] = _("was too sweet!");
+const u8 ContestStatText_TooBitter[] = _("was too bitter!");
+const u8 ContestStatText_TooSour[] = _("was too sour!");
+const u8 BattleText_Used1[] = _("{STRING 32} used\n{STRING 19}!");
+const u8 BattleText_TutorialUsed[] = _("WALLY used\n{STRING 19}!");
+const u8 BattleText_Used2[] = _("{STRING 25} {STRING 26}\nused {STRING 19}!");
+const u8 BattleText_BlockBall[] = _("The TRAINER blocked the BALL!");
+const u8 BattleText_DontBeAThief[] = _("Don’t be a thief!");
+const u8 BattleText_DodgeBall[] = _("It dodged the thrown BALL!\nThis POKéMON can’t be caught!");
+const u8 BattleText_MissPoke[] = _("You missed the POKéMON!");
+const u8 BattleText_BallBrokeOhNo[] = _("Oh, no!\nThe POKéMON broke free!");
+const u8 BattleText_BallBrokeAppeared[] = _("Aww!\nIt appeared to be caught!");
+const u8 BattleText_BallBrokeAlmost[] = _("Aargh!\nAlmost had it!");
+const u8 BattleText_BallBrokeSoClose[] = _("Shoot!\nIt was so close, too!");
+const u8 BattleText_BallCaught1[] = _("Gotcha!\n{STRING 3} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}\p");
+const u8 BattleText_BallCaught2[] = _("Gotcha!\n{STRING 3} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}{PAUSE 127}");
+const u8 BattleText_GiveNickname[] = _("Give a nickname to the\ncaptured {STRING 3}?");
+const u8 BattleText_SentToPC[] = _("{STRING 3} was sent to\n{STRING 35} PC.");
+const u8 BattleText_Someone[] = _("someone’s");
+const u8 BattleText_Lanette[] = _("LANETTE’s");
+const u8 BattleText_AddedToDex[] = _("{STRING 3}’s data was\nadded to the POKéDEX.\p");
+const u8 BattleText_Raining[] = _("It is raining.");
+const u8 BattleText_Sandstorm[] = _("A sandstorm is raging.");
+const u8 BattleText_BoxFull[] = _("The BOX is full!\nYou can’t catch any more!\p");
+const u8 BattleText_EnigmaBerry[] = _("ENIGMA BERRY");
+const u8 BattleText_Berry[] = _(" BERRY");
+const u8 BattleText_CuredParalysis[] = _("{STRING 16}’s {STRING 19}\ncured paralysis!");
+const u8 BattleText_CuredPoison[] = _("{STRING 16}’s {STRING 19}\ncured poison!");
+const u8 BattleText_CuredBurn[] = _("{STRING 16}’s {STRING 19}\nhealed its burn!");
+const u8 BattleText_CuredFreeze[] = _("{STRING 16}’s {STRING 19}\ndefrosted it!");
+const u8 BattleText_CuredSleep[] = _("{STRING 16}’s {STRING 19}\nwoke it from its sleep!");
+const u8 BattleText_CuredConfusion[] = _("{STRING 16}’s {STRING 19}\nsnapped it out of confusion!");
+const u8 BattleText_CuredStatus[] = _("{STRING 16}’s {STRING 19}\ncured its {STRING 0} problem!");
+const u8 BattleText_NormalizedStatus[] = _("{STRING 16}’s {STRING 19}\nnormalized its status!");
+const u8 BattleText_RestoredHealth[] = _("{STRING 16}’s {STRING 19}\nrestored health!");
+const u8 BattleText_RestoredPP[] = _("{STRING 16}’s {STRING 19}\nrestored {STRING 0}’s PP!");
+const u8 BattleText_RestoredStatus[] = _("{STRING 16}’s {STRING 19}\nrestored its status!");
+const u8 BattleText_RestoredHPLittle[] = _("{STRING 16}’s {STRING 19}\nrestored its HP a little!");
+const u8 BattleText_ChoiceBand[] = _("{STRING 19} allows the\nuse of only {STRING 17}!\p");
+const u8 BattleText_FocusSash[] = _("{DEFENDING_MON} hung on\nusing its {STRING 19}!");
+const u8 BattleText_Terminator2[] = _("");
+const u8 BattleText_WallyBall[] = _("You throw a BALL now, right?\nI... I’ll do my best!");
+const u8 BattleText_StartEvo[] = _("What?\n{STRING 2} is evolving!");
+const u8 BattleText_FinishEvo[] = _("Congratulations! Your {STRING 2}\nevolved into {STRING 3}!{UNKNOWN_A}\p");
+const u8 BattleText_StopEvo[] = _("Huh? {STRING 2}\nstopped evolving!\p");
+const u8 BattleText_OtherMenu[] = _("What should\n{STRING 15} do?");
+const u8 BattleText_PlayerMenu[] = _("What will\n{STRING 32} do?");
+const u8 BattleText_WallyMenu[] = _("What will\nWALLY do?");
+const u8 BattleText_LinkStandby[] = _("{PAUSE 16}Link standby...");
+const u8 BattleText_MenuOptions[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}FIGHT{CLEAR_TO 0x2E}BAG\nPOKéMON{CLEAR_TO 0x2E}RUN");
+const u8 BattleText_MenuOptionsSafari[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}BALL{CLEAR_TO 0x2E}{POKEBLOCK}\nGO NEAR{CLEAR_TO 0x2E}RUN");
+const u8 BattleText_PP[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}PP\nTYPE/");
+const u8 BattleText_Format[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}"); // cant think of a better name
+const u8 BattleText_ForgetMove[] = _("{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}{PALETTE 5}Which move should\nbe forgotten?");
+const u8 BattleText_YesNo[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Yes\nNo");
+const u8 BattleText_SwitchWhich[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Switch\nwhich?");
+const u8 BattleText_Format2[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}");
+const u8 BattleText_RightArrow[] = _("{RIGHT_ARROW}");
+const u8 BattleText_Plus[] = _("+");
+const u8 BattleText_Dash[] = _("-");
+const u8 BattleText_HP[] = _("HP ");
+const u8 BattleText_Attack[] = _("ATTACK ");
+const u8 BattleText_Defense[] = _("DEFENSE");
+const u8 BattleText_SpAtk[] = _("SP. ATK");
+const u8 BattleText_SpDef[] = _("SP. DEF");
+const u8 BattleText_SafariBalls[] = _("{HIGHLIGHT RED}SAFARI BALLS");
+const u8 BattleText_SafariBallsLeft[] = _("{HIGHLIGHT RED}Left: ");
+const u8 BattleText_HighlightRed[] = _("{HIGHLIGHT RED}");
+const u8 BattleText_Sleep[] = _("sleep");
+const u8 BattleText_PoisonStatus[] = _("poison");
+const u8 BattleText_Burn[] = _("burn");
+const u8 BattleText_Paralysis[] = _("paralysis");
+const u8 BattleText_IceStatus[] = _("ice");
+const u8 BattleText_Confusion[] = _("confusion");
+const u8 BattleText_Love[] = _("love");
+const u8 BattleText_Format3[] = _(" and ");
+const u8 BattleText_Format4[] = _(", ");
+const u8 BattleText_Format5[] = _(" ");
+const u8 BattleText_Format6[] = _("\l");
+const u8 BattleText_Format7[] = _("\n");
+const u8 BattleText_Format8[] = _("are");
+const u8 BattleText_Format9[] = _("are");
+const u8 gBadEggNickname[] = _("Bad EGG"); // 8400E3A
+const u8 BattleText_Wally[] = _("WALLY");
+const u8 BattleText_Win[] = _("{HIGHLIGHT TRANSPARENT}Win"); // 8400E48
+const u8 BattleText_Loss[] = _("{HIGHLIGHT TRANSPARENT}Loss"); // 8400E4F
+const u8 BattleText_Tie[] = _("{HIGHLIGHT TRANSPARENT}Tie"); // 8400E57
+const u8 BattleText_Format10[] = _(" is");
+const u8 BattleText_Format11[] = _("’s");
+const u8 BattleText_Normal[] = _("a NORMAL move");
+const u8 BattleText_Fighting[] = _("a FIGHTING move");
+const u8 BattleText_Flying[] = _("a FLYING move");
+const u8 BattleText_Poison[] = _("a POISON move");
+const u8 BattleText_Ground[] = _("a GROUND move");
+const u8 BattleText_Rock[] = _("a ROCK move");
+const u8 BattleText_Bug[] = _("a BUG move");
+const u8 BattleText_Ghost[] = _("a GHOST move");
+const u8 BattleText_Steel[] = _("a STEEL move");
+const u8 BattleText_Typeless[] = _("a ??? move");
+const u8 BattleText_Fire[] = _("a FIRE move");
+const u8 BattleText_Water[] = _("a WATER move");
+const u8 BattleText_Grass[] = _("a GRASS move");
+const u8 BattleText_Electric[] = _("an ELECTRIC move");
+const u8 BattleText_Psychic[] = _("a PSYCHIC move");
+const u8 BattleText_Ice[] = _("an ICE move");
+const u8 BattleText_Dragon[] = _("a DRAGON move");
+const u8 BattleText_Dark[] = _("a DARK move");
+
+const u8 *const gUnknown_08400F58[] =
+{
+ BattleStatText_HP,
+ BattleStatText_Attack,
+ BattleStatText_Defense,
+ BattleStatText_Speed,
+ BattleStatText_SpAtk,
+ BattleStatText_SpDef,
+ BattleStatText_Accuracy,
+ BattleStatText_Evasion,
+};
+
+const u8 *const gUnknown_08400F78[] =
+{
+ ContestStatText_TooSpicy,
+ ContestStatText_TooDry,
+ ContestStatText_TooSweet,
+ ContestStatText_TooBitter,
+ ContestStatText_TooSour,
+};
+
+const u8 *const gBattleStringsTable[] =
+{
+ BattleText_UnknownString,
+ BattleText_GainExpPoints,
+ BattleText_GrewLevel,
+ BattleText_LearnedMove,
+ BattleText_TryingToLearnMove,
+ BattleText_CantLearnMore,
+ BattleText_DeleteMove,
+ BattleText_DeletedMove,
+ BattleText_StopLearning,
+ BattleText_DidNotLearn,
+ BattleText_LearnedMove2,
+ BattleText_AttackMissed,
+ BattleText_ProtectedItself,
+ BattleText_StatNoHigher,
+ BattleText_AvoidedDamage,
+ BattleText_DoesntAffect,
+ BattleText_AttackingFainted,
+ BattleText_DefendingFainted,
+ BattleText_WinningPrize,
+ BattleText_OutOfUsablePoke,
+ BattleText_WhitedOut,
+ BattleText_PreventEscape,
+ BattleText_HitMulti,
+ BattleText_FellAsleep,
+ BattleText_MadeAsleep,
+ BattleText_DefendingAsleep,
+ BattleText_AttackingAsleep,
+ BattleText_WasntAffected,
+ BattleText_Poisoned,
+ BattleText_Poisoned2,
+ BattleText_PoisonHurt,
+ BattleText_AlreadyPoisoned,
+ BattleText_BadlyPoisoned,
+ BattleText_EnergyDrained,
+ BattleText_Burned,
+ BattleText_Burned2,
+ BattleText_BurnHurt,
+ BattleText_Frozen,
+ BattleText_Frozen2,
+ BattleText_FrozenSolid,
+ BattleText_DefendingDefrosted,
+ BattleText_AttackingDefrosted,
+ BattleText_Defrosted,
+ BattleText_Paralyzed,
+ BattleText_Paralyzed2,
+ BattleText_Paralyzed3,
+ BattleText_AlreadyParalyzed,
+ BattleText_ParalysisHealed,
+ BattleText_DreamEaten,
+ BattleText_AttackingStatNoHigher,
+ BattleText_DefendingStatNoHigher,
+ BattleText_StoppedWorking,
+ BattleText_StoppedWorking2,
+ BattleText_Confused,
+ BattleText_ConfusionSnapOut,
+ BattleText_BecameConfused,
+ BattleText_AlreadyConfused,
+ BattleText_FellLove,
+ BattleText_InLoveWith,
+ BattleText_ImmobilizedBy,
+ BattleText_BlownAway,
+ BattleText_TypeTransform,
+ BattleText_Flinched,
+ BattleText_RegainedHealth,
+ BattleText_HPFull,
+ BattleText_RaisedSpDef,
+ BattleText_RaisedDefense,
+ BattleText_CoveredVeil,
+ BattleText_SafeguardActive,
+ BattleText_SafeguardFaded,
+ BattleText_WentToSleep,
+ BattleText_SpeltHealthy,
+ BattleText_WhipWhirlwind,
+ BattleText_TookSunlight,
+ BattleText_LoweredHead,
+ BattleText_IsGlowing,
+ BattleText_FlewHigh,
+ BattleText_DugHole,
+ BattleText_SqueezedBind,
+ BattleText_TrappedVortex,
+ BattleText_Wrapped,
+ BattleText_Clamped,
+ BattleText_HurtBy,
+ BattleText_FreedFrom,
+ BattleText_KeptGoingCrash,
+ BattleText_MistShroud,
+ BattleText_MistProtect,
+ BattleText_GetPumped,
+ BattleText_HitRecoil,
+ BattleText_ProtectedItself2,
+ BattleText_SandBuffeted,
+ BattleText_HailStricken,
+ BattleText_WasSeeded,
+ BattleText_EvadedAttack,
+ BattleText_HealthSapped,
+ BattleText_FastAsleep,
+ BattleText_WokeUp,
+ BattleText_UproarAwake,
+ BattleText_UproarWoke,
+ BattleText_UproarCaused,
+ BattleText_UproarMaking,
+ BattleText_CalmedDown,
+ BattleText_UproarCantSleep,
+ BattleText_Stockpiled,
+ BattleText_StockpiledCant,
+ BattleText_UproarCantSleep2,
+ BattleText_UproarKeptAwake,
+ BattleText_StayedAwake,
+ BattleText_StoringEnergy,
+ BattleText_UnleashedEnergy,
+ BattleText_FatigueConfuse,
+ BattleText_PickedUpYen,
+ BattleText_Unaffected,
+ BattleText_Transformed,
+ BattleText_SubMade,
+ BattleText_SubAlready,
+ BattleText_SubTookDamage,
+ BattleText_SubFaded,
+ BattleText_MustRecharge,
+ BattleText_RageBuilding,
+ BattleText_MoveWasDisabled,
+ BattleText_MoveIsDisabled,
+ BattleText_DisabledNoMore,
+ BattleText_EncoreGot,
+ BattleText_EncoreEnded,
+ BattleText_TookAim,
+ BattleText_SketchedMove,
+ BattleText_DestinyBondTake,
+ BattleText_DestinyBondTaken,
+ BattleText_ReducedBy,
+ BattleText_StoleSomething,
+ BattleText_CantEscapeNow,
+ BattleText_NightmareStart,
+ BattleText_NightmareLock,
+ BattleText_CurseLay,
+ BattleText_CurseAfflict,
+ BattleText_SpikesScattered,
+ BattleText_SpikesHurt,
+ BattleText_IdentifiedPoke,
+ BattleText_PerishSongFell,
+ BattleText_BracedItself,
+ BattleText_EnduredHit,
+ BattleText_MagnitudeCount,
+ BattleText_CutHPMaxATK,
+ BattleText_CopyStatChanges,
+ BattleText_GotFreeFrom,
+ BattleText_LeechShed,
+ BattleText_SpikesBlownAway,
+ BattleText_FledBattle,
+ BattleText_ForesawAttack,
+ BattleText_TookAttack,
+ BattleText_PokeAttack,
+ BattleText_CenterAttention,
+ BattleText_ChargingPower,
+ BattleText_NaturePower,
+ BattleText_StatusNormal,
+ BattleText_NoMovesLeft,
+ BattleText_TormentSubject,
+ BattleText_TormentNoUse,
+ BattleText_TightenFocus,
+ BattleText_TauntFell,
+ BattleText_TauntNoUse,
+ BattleText_ReadyToHelp,
+ BattleText_SwitchedItems,
+ BattleText_CopiedObject,
+ BattleText_WishMade,
+ BattleText_WishTrue,
+ BattleText_PlantedRoots,
+ BattleText_AbsorbNutrients,
+ BattleText_AnchoredItself,
+ BattleText_DrowsyMade,
+ BattleText_KnockedOffItem,
+ BattleText_AbilitySwap,
+ BattleText_SealedMove,
+ BattleText_SealedNoUse,
+ BattleText_GrudgeBear,
+ BattleText_GrudgeLosePP,
+ BattleText_ShroudedItself,
+ BattleText_MagicCoatBounce,
+ BattleText_AwaitMove,
+ BattleText_SnatchedMove,
+ BattleText_RainMade,
+ BattleText_SpeedRisen,
+ BattleText_ProtectedBy,
+ BattleText_PreventedBy,
+ BattleText_HPRestoredUsing,
+ BattleText_MadeType,
+ BattleText_PreventedPara,
+ BattleText_PreventedRomance,
+ BattleText_PreventedPoison,
+ BattleText_PreventedConfusion,
+ BattleText_RaisedFirePower,
+ BattleText_AnchorsItself,
+ BattleText_CutsAttack,
+ BattleText_PreventedStatLoss,
+ BattleText_HurtOther,
+ BattleText_Traced,
+ BattleText_Sharply,
+ BattleText_Rose,
+ BattleText_Harshly,
+ BattleText_Fell,
+ BattleText_UnknownString7,
+ BattleText_UnknownString3,
+ BattleText_UnknownString5,
+ BattleText_UnknownString6,
+ BattleText_Critical,
+ BattleText_GrandSlam,
+ BattleText_MoveForget123,
+ BattleText_MoveForgetAnd,
+ BattleText_NotEffective,
+ BattleText_SuperEffective,
+ BattleText_GotAwaySafely,
+ BattleText_FledWild,
+ BattleText_NoRunning,
+ BattleText_CantEscape2,
+ BattleText_BirchDontLeaveMe,
+ BattleText_Nothing,
+ BattleText_Failed,
+ BattleText_HurtItself,
+ BattleText_MirrorFail,
+ BattleText_RainStart,
+ BattleText_PourStart,
+ BattleText_RainCont1,
+ BattleText_PourCont,
+ BattleText_RainStop,
+ BattleText_SandBrewed,
+ BattleText_SandRages,
+ BattleText_SandSubsided,
+ BattleText_SunBright,
+ BattleText_SunStrong,
+ BattleText_SunFaded,
+ BattleText_HailStart,
+ BattleText_HailCont,
+ BattleText_HailStop,
+ BattleText_SpitUpFail,
+ BattleText_SwallowFail,
+ BattleText_WindHeatWave,
+ BattleText_StatElim,
+ BattleText_CoinScatter,
+ BattleText_SubWeak,
+ BattleText_PainSplit,
+ BattleText_BellChime,
+ BattleText_PerishSong,
+ BattleText_NoPP1,
+ BattleText_NoPP2,
+ BattleText_Used1,
+ BattleText_TutorialUsed,
+ BattleText_BlockBall,
+ BattleText_DontBeAThief,
+ BattleText_DodgeBall,
+ BattleText_MissPoke,
+ BattleText_BallBrokeOhNo,
+ BattleText_BallBrokeAppeared,
+ BattleText_BallBrokeAlmost,
+ BattleText_BallBrokeSoClose,
+ BattleText_BallCaught1,
+ BattleText_BallCaught2,
+ BattleText_GiveNickname,
+ BattleText_SentToPC,
+ BattleText_AddedToDex,
+ BattleText_Raining,
+ BattleText_Sandstorm,
+ BattleText_CantEscape,
+ BattleText_IgnoredOrdersSLP,
+ BattleText_IgnoredOrders,
+ BattleText_BeganNap,
+ BattleText_LoafingAround,
+ BattleText_WontObey,
+ BattleText_TurnedAway,
+ BattleText_NotNotice,
+ BattleText_WillSwitch,
+ BattleText_CreptCloser,
+ BattleText_CantGetCloser,
+ BattleText_WatchingCarefully,
+ BattleText_CuriousAbout,
+ BattleText_EnthralledBy,
+ BattleText_IgnoredThing,
+ BattleText_ThrewBlock,
+ BattleText_SafariOver,
+ BattleText_CuredParalysis,
+ BattleText_CuredPoison,
+ BattleText_CuredBurn,
+ BattleText_CuredFreeze,
+ BattleText_CuredSleep,
+ BattleText_CuredConfusion,
+ BattleText_CuredStatus,
+ BattleText_RestoredHealth,
+ BattleText_RestoredPP,
+ BattleText_RestoredStatus,
+ BattleText_RestoredHPLittle,
+ BattleText_ChoiceBand,
+ BattleText_FocusSash,
+ BattleText_Terminator2,
+ BattleText_PreventedBurn,
+ BattleText_BlocksOther,
+ BattleText_RestoredHPByItem,
+ BattleText_WhipSandstorm,
+ BattleText_PreventedLoss,
+ BattleText_InfatuatedPoke,
+ BattleText_MadeIneffective,
+ BattleText_CuredProblem,
+ BattleText_OozeSuckup,
+ BattleText_Transformed2,
+ BattleText_ElecWeakened,
+ BattleText_FireWeakened,
+ BattleText_HidUnderwater,
+ BattleText_SprangUp,
+ BattleText_CantForgetHM,
+ BattleText_FoundOne,
+ BattleText_PlayerDefeatedTrainer2,
+ BattleText_SoothingAroma,
+ BattleText_CantUseItems,
+ BattleText_UnknownString2,
+ BattleText_UnknownString4,
+ BattleText_HustleUse,
+ BattleText_MadeUseless,
+ BattleText_SandTombTrapped,
+ BattleText_Terminator,
+ BattleText_BoostedExp,
+ BattleText_SunIntensified,
+ BattleText_GroundMoveNegate,
+ BattleText_WallyBall,
+ BattleText_TookAttack2,
+ BattleText_ChoseDestiny,
+ BattleText_LostFocus,
+ BattleText_UseNext,
+ BattleText_FledUsingItem,
+ BattleText_FledUsingOther,
+ BattleText_DraggedOut,
+ BattleText_PreventedOther,
+ BattleText_NormalizedStatus,
+ BattleText_Used2,
+ BattleText_BoxFull,
+ BattleText_AvoidedAttack,
+ BattleText_MadeIneffective2,
+ BattleText_PreventedFlinching,
+ BattleText_AlreadyBurned,
+ BattleText_StatNoLower,
+ BattleText_BlocksOther2,
+ BattleText_WoreOff,
+ BattleText_RaisedDefenseLittle,
+ BattleText_RaisedSpDefLittle,
+ BattleText_BrokeWall,
+ BattleText_PreventedOther2,
+ BattleText_CuredOfProblem,
+ BattleText_AttackingCantEscape,
+ BattleText_Obtained1,
+ BattleText_Obtained2,
+ BattleText_Obtained3,
+ BattleText_NoEffect,
+ BattleText_NoEffectOn,
+};
+
+// below are lists of battle string enums and NOT pointers to the strings.
+const u16 gMissStrings[] =
+{
+ BATTLE_TEXT_AttackMissed,
+ BATTLE_TEXT_ProtectedItself,
+ BATTLE_TEXT_AvoidedAttack,
+ BATTLE_TEXT_AvoidedDamage,
+ BATTLE_TEXT_GroundMoveNegate,
+};
+
+const u16 BattleTextList_401512[] =
+{
+ BATTLE_TEXT_CantEscape2,
+ BATTLE_TEXT_BirchDontLeaveMe,
+ BATTLE_TEXT_PreventEscape,
+ BATTLE_TEXT_CantEscape,
+ BATTLE_TEXT_AttackingCantEscape,
+};
+
+const u16 BattleTextList_40151C[] =
+{
+ BATTLE_TEXT_RainStart,
+ BATTLE_TEXT_PourStart,
+ BATTLE_TEXT_Failed,
+ BATTLE_TEXT_SandBrewed,
+ BATTLE_TEXT_SunBright,
+ BATTLE_TEXT_HailStart,
+};
+
+const u16 BattleTextList_401528[] =
+{
+ BATTLE_TEXT_SandRages,
+ BATTLE_TEXT_HailCont,
+};
+
+const u16 BattleTextList_40152C[] =
+{
+ BATTLE_TEXT_SandBuffeted,
+ BATTLE_TEXT_HailStricken,
+};
+
+const u16 BattleTextList_401530[] =
+{
+ BATTLE_TEXT_SandSubsided,
+ BATTLE_TEXT_HailStop,
+};
+
+const u16 BattleTextList_401534[] =
+{
+ BATTLE_TEXT_RainCont1,
+ BATTLE_TEXT_PourCont,
+ BATTLE_TEXT_RainStop,
+};
+
+const u16 BattleTextList_40153A[] =
+{
+ BATTLE_TEXT_ProtectedItself2,
+ BATTLE_TEXT_BracedItself,
+ BATTLE_TEXT_Failed,
+};
+
+const u16 BattleTextList_401540[] =
+{
+ BATTLE_TEXT_Failed,
+ BATTLE_TEXT_RaisedDefense,
+ BATTLE_TEXT_RaisedDefenseLittle,
+ BATTLE_TEXT_RaisedSpDef,
+ BATTLE_TEXT_RaisedSpDefLittle,
+ BATTLE_TEXT_CoveredVeil,
+};
+
+const u16 BattleTextList_40154C[] =
+{
+ BATTLE_TEXT_WasSeeded,
+ BATTLE_TEXT_EvadedAttack,
+ BATTLE_TEXT_DoesntAffect,
+ BATTLE_TEXT_HealthSapped,
+ BATTLE_TEXT_OozeSuckup,
+};
+
+const u16 BattleTextList_401556[] =
+{
+ BATTLE_TEXT_WentToSleep,
+ BATTLE_TEXT_SpeltHealthy,
+};
+
+const u16 BattleTextList_40155A[] =
+{
+ BATTLE_TEXT_UproarMaking,
+ BATTLE_TEXT_CalmedDown,
+};
+
+const u16 BattleTextList_40155E[] =
+{
+ BATTLE_TEXT_Stockpiled,
+ BATTLE_TEXT_StockpiledCant,
+};
+
+const u16 BattleTextList_401562[] =
+{
+ BATTLE_TEXT_WokeUp,
+ BATTLE_TEXT_UproarWoke,
+};
+
+const u16 BattleTextList_401566[] =
+{
+ BATTLE_TEXT_SwallowFail,
+ BATTLE_TEXT_HPFull,
+};
+
+const u16 BattleTextList_40156A[] =
+{
+ BATTLE_TEXT_UproarCantSleep2,
+ BATTLE_TEXT_UproarKeptAwake,
+ BATTLE_TEXT_StayedAwake,
+};
+
+const u16 BattleTextList_401570[] =
+{
+ BATTLE_TEXT_UnknownString7,
+ BATTLE_TEXT_UnknownString3,
+ BATTLE_TEXT_AttackingStatNoHigher,
+ BATTLE_TEXT_Terminator2,
+ BATTLE_TEXT_UnknownString4,
+ BATTLE_TEXT_HustleUse,
+};
+
+const u16 BattleTextList_40157C[] =
+{
+ BATTLE_TEXT_UnknownString5,
+ BATTLE_TEXT_UnknownString6,
+ BATTLE_TEXT_DefendingStatNoHigher,
+ BATTLE_TEXT_Terminator2,
+};
+
+const u16 BattleTextList_401584[] =
+{
+ BATTLE_TEXT_WhipWhirlwind,
+ BATTLE_TEXT_TookSunlight,
+ BATTLE_TEXT_LoweredHead,
+ BATTLE_TEXT_IsGlowing,
+ BATTLE_TEXT_FlewHigh,
+ BATTLE_TEXT_DugHole,
+ BATTLE_TEXT_HidUnderwater,
+ BATTLE_TEXT_SprangUp,
+};
+
+const u16 BattleTextList_401594[] =
+{
+ BATTLE_TEXT_SqueezedBind,
+ BATTLE_TEXT_Wrapped,
+ BATTLE_TEXT_TrappedVortex,
+ BATTLE_TEXT_Clamped,
+ BATTLE_TEXT_TrappedVortex,
+ BATTLE_TEXT_SandTombTrapped,
+};
+
+const u16 BattleTextList_4015A0[] =
+{
+ BATTLE_TEXT_MistShroud,
+ BATTLE_TEXT_Failed,
+};
+
+const u16 BattleTextList_4015A4[] =
+{
+ BATTLE_TEXT_GetPumped,
+ BATTLE_TEXT_Failed,
+};
+
+const u16 BattleTextList_4015A8[] =
+{
+ BATTLE_TEXT_Transformed,
+ BATTLE_TEXT_Failed,
+};
+
+const u16 BattleTextList_4015AC[] =
+{
+ BATTLE_TEXT_SubMade,
+ BATTLE_TEXT_SubWeak,
+};
+
+const u16 BattleTextList_4015B0[] =
+{
+ BATTLE_TEXT_Poisoned,
+ BATTLE_TEXT_Poisoned2,
+};
+
+const u16 BattleTextList_4015B4[] =
+{
+ BATTLE_TEXT_Paralyzed,
+ BATTLE_TEXT_Paralyzed2,
+};
+
+const u16 BattleTextList_4015B8[] =
+{
+ BATTLE_TEXT_FellAsleep,
+ BATTLE_TEXT_MadeAsleep,
+};
+
+const u16 BattleTextList_4015BC[] =
+{
+ BATTLE_TEXT_Burned,
+ BATTLE_TEXT_Burned2,
+};
+
+const u16 BattleTextList_4015C0[] =
+{
+ BATTLE_TEXT_Frozen,
+ BATTLE_TEXT_Frozen2,
+};
+
+const u16 BattleTextList_4015C4[] =
+{
+ BATTLE_TEXT_AttackingDefrosted,
+ BATTLE_TEXT_Defrosted,
+};
+
+const u16 BattleTextList_4015C8[] =
+{
+ BATTLE_TEXT_AttackMissed,
+ BATTLE_TEXT_Unaffected,
+ BATTLE_TEXT_FellLove,
+ BATTLE_TEXT_InfatuatedPoke,
+};
+
+const u16 BattleTextList_4015D0[] =
+{
+ BATTLE_TEXT_EnergyDrained,
+ BATTLE_TEXT_OozeSuckup,
+};
+
+const u16 BattleTextList_4015D4[] =
+{
+ BATTLE_TEXT_ElecWeakened,
+ BATTLE_TEXT_FireWeakened,
+};
+
+const u16 BattleTextList_4015D8[] =
+{
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_SoothingAroma,
+};
+
+const u16 BattleTextList_4015E2[] =
+{
+ BATTLE_TEXT_ForesawAttack,
+ BATTLE_TEXT_ChoseDestiny,
+};
+
+const u16 BattleTextList_4015E6[] =
+{
+ BATTLE_TEXT_BallBrokeOhNo,
+ BATTLE_TEXT_BallBrokeAppeared,
+ BATTLE_TEXT_BallBrokeAlmost,
+ BATTLE_TEXT_BallBrokeSoClose,
+};
+
+const u16 BattleTextList_4015EE[] =
+{
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Sandstorm,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_SunStrong,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+};
+
+const u16 BattleTextList_40160E[] =
+{
+ BATTLE_TEXT_LoafingAround,
+ BATTLE_TEXT_WontObey,
+ BATTLE_TEXT_TurnedAway,
+ BATTLE_TEXT_NotNotice,
+};
+
+const u16 BattleTextList_401616[] =
+{
+ BATTLE_TEXT_CreptCloser,
+ BATTLE_TEXT_CantGetCloser,
+};
+
+const u16 BattleTextList_40161A[] =
+{
+ BATTLE_TEXT_CuriousAbout,
+ BATTLE_TEXT_EnthralledBy,
+ BATTLE_TEXT_IgnoredThing,
+};
+
+const u16 BattleTextList_401620[] =
+{
+ BATTLE_TEXT_CuredConfusion,
+ BATTLE_TEXT_CuredParalysis,
+ BATTLE_TEXT_CuredFreeze,
+ BATTLE_TEXT_CuredBurn,
+ BATTLE_TEXT_CuredPoison,
+ BATTLE_TEXT_CuredSleep,
+};
+
+const u16 BattleTextList_40162C[] =
+{
+ BATTLE_TEXT_CuredStatus,
+ BATTLE_TEXT_NormalizedStatus,
+};
+
+const u16 BattleTextList_401630[] =
+{
+ BATTLE_TEXT_PreventedBurn,
+ BATTLE_TEXT_PreventedOther2,
+ BATTLE_TEXT_NoEffectOn,
+};
+
+const u16 BattleTextList_401636[] =
+{
+ BATTLE_TEXT_PreventedPara,
+ BATTLE_TEXT_PreventedOther2,
+ BATTLE_TEXT_NoEffectOn,
+};
+
+const u16 BattleTextList_40163C[] =
+{
+ BATTLE_TEXT_PreventedPoison,
+ BATTLE_TEXT_PreventedOther2,
+ BATTLE_TEXT_NoEffectOn,
+};
+
+const u16 BattleTextList_401642[] =
+{
+ BATTLE_TEXT_Obtained1,
+ BATTLE_TEXT_Obtained2,
+ BATTLE_TEXT_Obtained3,
+};
+
+const u16 BattleTextList_401648[] =
+{
+ BATTLE_TEXT_RaisedFirePower,
+ BATTLE_TEXT_MadeIneffective,
+};
+
+const u16 gTrappingMoves[] =
+{
+ MOVE_BIND,
+ MOVE_WRAP,
+ MOVE_FIRE_SPIN,
+ MOVE_CLAMP,
+ MOVE_WHIRLPOOL,
+ MOVE_SAND_TOMB,
+ 0xFFFF,
+};
+
+const u8 *const gUnknown_0840165C[] =
+{
+ BattleText_HP,
+ BattleText_SpAtk,
+ BattleText_Attack,
+ BattleText_SpDef,
+ BattleText_Defense,
+ BattleStatText_Speed,
+};
+
+const u8 *const gUnknown_08401674[] =
+{
+ BattleText_Normal,
+ BattleText_Fighting,
+ BattleText_Flying,
+ BattleText_Poison,
+ BattleText_Ground,
+ BattleText_Rock,
+ BattleText_Bug,
+ BattleText_Ghost,
+ BattleText_Steel,
+ BattleText_Typeless,
+ BattleText_Fire,
+ BattleText_Water,
+ BattleText_Grass,
+ BattleText_Electric,
+ BattleText_Psychic,
+ BattleText_Ice,
+ BattleText_Dragon,
+ BattleText_Dark,
+};
diff --git a/src/data/battle_tower/level_100_mons.h b/src/data/battle_tower/level_100_mons.h
new file mode 100644
index 000000000..4f2b711ee
--- /dev/null
+++ b/src/data/battle_tower/level_100_mons.h
@@ -0,0 +1,3903 @@
+const struct BattleTowerPokemon gBattleTowerLevel100Mons[] =
+{
+ {
+ .species = SPECIES_LINOONE,
+ .heldItem = BATTLE_TOWER_ITEM_RAWST_BERRY,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_SLASH,
+ MOVE_GROWL,
+ MOVE_TAIL_WHIP,
+ MOVE_SAND_ATTACK
+ },
+ .evSpread = F_EV_SPREAD_SPEED,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_MIGHTYENA,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_BITE,
+ MOVE_HOWL,
+ MOVE_ODOR_SLEUTH,
+ MOVE_SCARY_FACE
+ },
+ .evSpread = F_EV_SPREAD_ATTACK,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_BEAUTIFLY,
+ .heldItem = BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_GIGA_DRAIN,
+ MOVE_GUST,
+ MOVE_STUN_SPORE,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_DUSTOX,
+ .heldItem = BATTLE_TOWER_ITEM_PECHA_BERRY,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_PSYBEAM,
+ MOVE_GUST,
+ MOVE_DOUBLE_TEAM,
+ MOVE_SILVER_WIND
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_LOMBRE,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_ASTONISH,
+ MOVE_GROWL,
+ MOVE_MEGA_DRAIN,
+ MOVE_SURF
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_LONELY,
+ },
+ {
+ .species = SPECIES_NUZLEAF,
+ .heldItem = BATTLE_TOWER_ITEM_WHITE_HERB,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_BULLET_SEED,
+ MOVE_RAZOR_WIND,
+ MOVE_FAINT_ATTACK,
+ MOVE_GROWTH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_SWELLOW,
+ .heldItem = BATTLE_TOWER_ITEM_SHARP_BEAK,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_AERIAL_ACE,
+ MOVE_GROWL,
+ MOVE_ENDEAVOR,
+ MOVE_FOCUS_ENERGY
+ },
+ .evSpread = F_EV_SPREAD_ATTACK,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_PELIPPER,
+ .heldItem = BATTLE_TOWER_ITEM_MYSTIC_WATER,
+ .teamFlags = 0x02,
+ .moves = {
+ MOVE_SURF,
+ MOVE_WATER_SPORT,
+ MOVE_PROTECT,
+ MOVE_SUPERSONIC
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_MILD,
+ },
+ {
+ .species = SPECIES_BRELOOM,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_MACH_PUNCH,
+ MOVE_MEGA_DRAIN,
+ MOVE_HEADBUTT,
+ MOVE_STUN_SPORE
+ },
+ .evSpread = F_EV_SPREAD_ATTACK,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_NINJASK,
+ .heldItem = BATTLE_TOWER_ITEM_RAWST_BERRY,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_SCRATCH,
+ MOVE_SCREECH,
+ MOVE_LEECH_LIFE,
+ MOVE_FLASH
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_CROBAT,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_BITE,
+ MOVE_FLY,
+ MOVE_SUPERSONIC,
+ MOVE_HAZE
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_IMPISH,
+ },
+ {
+ .species = SPECIES_MAWILE,
+ .heldItem = BATTLE_TOWER_ITEM_METAL_COAT,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_VICE_GRIP,
+ MOVE_SWEET_SCENT,
+ MOVE_ASTONISH,
+ MOVE_STRENGTH
+ },
+ .evSpread = F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_NOSEPASS,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_ROCK_THROW,
+ MOVE_SANDSTORM,
+ MOVE_HARDEN,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_ATTACK,
+ .nature = NATURE_IMPISH,
+ },
+ {
+ .species = SPECIES_DELCATTY,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_DOUBLE_SLAP,
+ MOVE_TAIL_WHIP,
+ MOVE_ATTRACT,
+ MOVE_CHARM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_BOLD,
+ },
+ {
+ .species = SPECIES_CAMERUPT,
+ .heldItem = BATTLE_TOWER_ITEM_CHARCOAL,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_EMBER,
+ MOVE_TAKE_DOWN,
+ MOVE_GROWL,
+ MOVE_SANDSTORM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE,
+ .nature = NATURE_RASH,
+ },
+ {
+ .species = SPECIES_MUK,
+ .heldItem = BATTLE_TOWER_ITEM_ORAN_BERRY,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_POISON_GAS,
+ MOVE_MINIMIZE,
+ MOVE_SLUDGE,
+ MOVE_SCREECH
+ },
+ .evSpread = F_EV_SPREAD_HP,
+ .nature = NATURE_CALM,
+ },
+ {
+ .species = SPECIES_SANDSLASH,
+ .heldItem = BATTLE_TOWER_ITEM_SOFT_SAND,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_SLASH,
+ MOVE_SAND_ATTACK,
+ MOVE_DEFENSE_CURL,
+ MOVE_SWIFT
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_SPINDA,
+ .heldItem = BATTLE_TOWER_ITEM_SILK_SCARF,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_UPROAR,
+ MOVE_WATER_PULSE,
+ MOVE_THRASH,
+ MOVE_SAFEGUARD
+ },
+ .evSpread = F_EV_SPREAD_SPEED,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_WHISCASH,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_TICKLE,
+ MOVE_MUD_SPORT,
+ MOVE_WATER_GUN,
+ MOVE_WATER_SPORT
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_CACTURNE,
+ .heldItem = BATTLE_TOWER_ITEM_POISON_BARB,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_POISON_STING,
+ MOVE_PIN_MISSILE,
+ MOVE_ABSORB,
+ MOVE_COTTON_SPORE
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_JIGGLYPUFF,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_SING,
+ MOVE_ROLLOUT,
+ MOVE_POUND,
+ MOVE_LIGHT_SCREEN
+ },
+ .evSpread = F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MARILL,
+ .heldItem = BATTLE_TOWER_ITEM_MYSTIC_WATER,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_BUBBLE_BEAM,
+ MOVE_DEFENSE_CURL,
+ MOVE_RAIN_DANCE,
+ MOVE_IRON_TAIL
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_MAGNETON,
+ .heldItem = BATTLE_TOWER_ITEM_RAWST_BERRY,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_THUNDER_SHOCK,
+ MOVE_SUPERSONIC,
+ MOVE_FLASH,
+ MOVE_SCREECH
+ },
+ .evSpread = F_EV_SPREAD_SPEED,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_CARVANHA,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_BITE,
+ MOVE_RAGE,
+ MOVE_SCARY_FACE,
+ MOVE_LEER
+ },
+ .evSpread = F_EV_SPREAD_ATTACK,
+ .nature = NATURE_QUIRKY,
+ },
+ {
+ .species = SPECIES_KECLEON,
+ .heldItem = BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_THIEF,
+ MOVE_LICK,
+ MOVE_BIND,
+ MOVE_FURY_SWIPES
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_JOLLY,
+ },
+ {
+ .species = SPECIES_NINETALES,
+ .heldItem = BATTLE_TOWER_ITEM_CHARCOAL,
+ .teamFlags = 0x02,
+ .moves = {
+ MOVE_EMBER,
+ MOVE_CONFUSE_RAY,
+ MOVE_FIRE_SPIN,
+ MOVE_SAFEGUARD
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_LONELY,
+ },
+ {
+ .species = SPECIES_RAICHU,
+ .heldItem = BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_SHOCK_WAVE,
+ MOVE_GROWL,
+ MOVE_DOUBLE_TEAM,
+ MOVE_LIGHT_SCREEN
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_SEALEO,
+ .heldItem = BATTLE_TOWER_ITEM_NEVER_MELT_ICE,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_ICE_BALL,
+ MOVE_WATER_GUN,
+ MOVE_ENCORE,
+ MOVE_HAIL
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_GRAVELER,
+ .heldItem = BATTLE_TOWER_ITEM_HARD_STONE,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_ROCK_THROW,
+ MOVE_MUD_SPORT,
+ MOVE_SANDSTORM,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_SHUPPET,
+ .heldItem = BATTLE_TOWER_ITEM_SPELL_TAG,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_NIGHT_SHADE,
+ MOVE_WILL_O_WISP,
+ MOVE_SCREECH,
+ MOVE_KNOCK_OFF
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_LUVDISC,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_ATTRACT,
+ MOVE_FLAIL,
+ MOVE_SWEET_KISS,
+ MOVE_WATER_PULSE
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_LANTURN,
+ .heldItem = BATTLE_TOWER_ITEM_CHERI_BERRY,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_THUNDER_WAVE,
+ MOVE_SUPERSONIC,
+ MOVE_WATER_GUN,
+ MOVE_SPARK
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_BOLD,
+ },
+ {
+ .species = SPECIES_CORSOLA,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_MIRROR_COAT,
+ MOVE_BUBBLE,
+ MOVE_HARDEN,
+ MOVE_LIGHT_SCREEN
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_WAILMER,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_SURF,
+ MOVE_ROAR,
+ MOVE_GROWL,
+ MOVE_MIST
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_RHYDON,
+ .heldItem = BATTLE_TOWER_ITEM_FOCUS_BAND,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_TAKE_DOWN,
+ MOVE_SCARY_FACE,
+ MOVE_TAIL_WHIP,
+ MOVE_ROAR
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_DODRIO,
+ .heldItem = BATTLE_TOWER_ITEM_SHARP_BEAK,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_FURY_ATTACK,
+ MOVE_PURSUIT,
+ MOVE_AERIAL_ACE,
+ MOVE_AGILITY
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_GOLDUCK,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_FURY_SWIPES,
+ MOVE_TAIL_WHIP,
+ MOVE_DISABLE,
+ MOVE_PSYCH_UP
+ },
+ .evSpread = F_EV_SPREAD_ATTACK,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_BELLOSSOM,
+ .heldItem = BATTLE_TOWER_ITEM_MIRACLE_SEED,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_GIGA_DRAIN,
+ MOVE_POISON_POWDER,
+ MOVE_STUN_SPORE,
+ MOVE_ACID
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_BOLD,
+ },
+ {
+ .species = SPECIES_TROPIUS,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_STOMP,
+ MOVE_RAZOR_LEAF,
+ MOVE_GUST,
+ MOVE_SYNTHESIS
+ },
+ .evSpread = F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_SABLEYE,
+ .heldItem = BATTLE_TOWER_ITEM_SPELL_TAG,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_NIGHT_SHADE,
+ MOVE_FAKE_OUT,
+ MOVE_PSYCH_UP,
+ MOVE_DETECT
+ },
+ .evSpread = F_EV_SPREAD_SPEED,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_ELECTRODE,
+ .heldItem = BATTLE_TOWER_ITEM_FOCUS_BAND,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_SONIC_BOOM,
+ MOVE_SCREECH,
+ MOVE_SPARK,
+ MOVE_SELF_DESTRUCT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_QUIRKY,
+ },
+ {
+ .species = SPECIES_TENTACRUEL,
+ .heldItem = BATTLE_TOWER_ITEM_POISON_BARB,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_ACID,
+ MOVE_WATER_PULSE,
+ MOVE_BARRIER,
+ MOVE_WRAP
+ },
+ .evSpread = F_EV_SPREAD_SPEED,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_CLAYDOL,
+ .heldItem = BATTLE_TOWER_ITEM_SOFT_SAND,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_ANCIENT_POWER,
+ MOVE_MUD_SLAP,
+ MOVE_RAPID_SPIN,
+ MOVE_CONFUSION
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_GRUMPIG,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_PSYBEAM,
+ MOVE_PSYCH_UP,
+ MOVE_BOUNCE,
+ MOVE_MAGIC_COAT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_NAUGHTY,
+ },
+ {
+ .species = SPECIES_CRAWDAUNT,
+ .heldItem = BATTLE_TOWER_ITEM_MENTAL_HERB,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_CRABHAMMER,
+ MOVE_BUBBLE_BEAM,
+ MOVE_BRICK_BREAK,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_ATTACK,
+ .nature = NATURE_CALM,
+ },
+ {
+ .species = SPECIES_SEVIPER,
+ .heldItem = BATTLE_TOWER_ITEM_POISON_BARB,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_POISON_TAIL,
+ MOVE_GLARE,
+ MOVE_WRAP,
+ MOVE_THIEF
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_ZANGOOSE,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_FURY_CUTTER,
+ MOVE_LEER,
+ MOVE_QUICK_ATTACK,
+ MOVE_DETECT
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_ALTARIA,
+ .heldItem = BATTLE_TOWER_ITEM_DRAGON_FANG,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_DRAGON_BREATH,
+ MOVE_SING,
+ MOVE_SAFEGUARD,
+ MOVE_TAKE_DOWN
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_ROSELIA,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_LEECH_SEED,
+ MOVE_MEGA_DRAIN,
+ MOVE_GROWTH,
+ MOVE_STUN_SPORE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_NAUGHTY,
+ },
+ {
+ .species = SPECIES_VOLBEAT,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_SIGNAL_BEAM,
+ MOVE_CONFUSE_RAY,
+ MOVE_DOUBLE_TEAM,
+ MOVE_LIGHT_SCREEN
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_ILLUMISE,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_CHARM,
+ MOVE_ENCORE,
+ MOVE_SOLAR_BEAM,
+ MOVE_ATTRACT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_MANECTRIC,
+ .heldItem = BATTLE_TOWER_ITEM_MAGNET,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_BITE,
+ MOVE_HOWL,
+ MOVE_THUNDER_WAVE,
+ MOVE_SPARK
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_MAWILE,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_CRUNCH,
+ MOVE_IRON_DEFENSE,
+ MOVE_TORMENT,
+ MOVE_SANDSTORM
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_RASH,
+ },
+ {
+ .species = SPECIES_HARIYAMA,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_ARM_THRUST,
+ MOVE_FAKE_OUT,
+ MOVE_WHIRLWIND,
+ MOVE_REVERSAL
+ },
+ .evSpread = F_EV_SPREAD_ATTACK,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_SKARMORY,
+ .heldItem = BATTLE_TOWER_ITEM_METAL_COAT,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_STEEL_WING,
+ MOVE_AGILITY,
+ MOVE_TAUNT,
+ MOVE_FLY
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_TORKOAL,
+ .heldItem = BATTLE_TOWER_ITEM_PECHA_BERRY,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_FIRE_SPIN,
+ MOVE_SMOKESCREEN,
+ MOVE_BODY_SLAM,
+ MOVE_AMNESIA
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_MILD,
+ },
+ {
+ .species = SPECIES_GYARADOS,
+ .heldItem = BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_THRASH,
+ MOVE_DRAGON_RAGE,
+ MOVE_TWISTER,
+ MOVE_HYDRO_PUMP
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIRKY,
+ },
+ {
+ .species = SPECIES_MIGHTYENA,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_CRUNCH,
+ MOVE_HOWL,
+ MOVE_IRON_TAIL,
+ MOVE_TORMENT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_QUIRKY,
+ },
+ {
+ .species = SPECIES_LINOONE,
+ .heldItem = BATTLE_TOWER_ITEM_CHERI_BERRY,
+ .teamFlags = 0x06,
+ .moves = {
+ MOVE_SLASH,
+ MOVE_ATTRACT,
+ MOVE_SHOCK_WAVE,
+ MOVE_TOXIC
+ },
+ .evSpread = F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MASQUERAIN,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_TOXIC,
+ MOVE_STUN_SPORE,
+ MOVE_SUNNY_DAY,
+ MOVE_SOLAR_BEAM
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_SCEPTILE,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x06,
+ .moves = {
+ MOVE_BULLET_SEED,
+ MOVE_SLAM,
+ MOVE_SCREECH,
+ MOVE_DETECT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_BLAZIKEN,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x06,
+ .moves = {
+ MOVE_DOUBLE_KICK,
+ MOVE_FLAMETHROWER,
+ MOVE_DOUBLE_TEAM,
+ MOVE_ROAR
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_SWAMPERT,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x49,
+ .moves = {
+ MOVE_SURF,
+ MOVE_MUD_SHOT,
+ MOVE_MUD_SPORT,
+ MOVE_RAIN_DANCE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_SALAMENCE,
+ .heldItem = BATTLE_TOWER_ITEM_DRAGON_FANG,
+ .teamFlags = 0x49,
+ .moves = {
+ MOVE_DRAGON_BREATH,
+ MOVE_FLY,
+ MOVE_TOXIC,
+ MOVE_FACADE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_CALM,
+ },
+ {
+ .species = SPECIES_KINGDRA,
+ .heldItem = BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ .teamFlags = 0x49,
+ .moves = {
+ MOVE_SURF,
+ MOVE_ICE_BEAM,
+ MOVE_SMOKESCREEN,
+ MOVE_RAIN_DANCE
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_CORSOLA,
+ .heldItem = BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_ANCIENT_POWER,
+ MOVE_MIRROR_COAT,
+ MOVE_SAFEGUARD,
+ MOVE_REFLECT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_BOLD,
+ },
+ {
+ .species = SPECIES_RHYDON,
+ .heldItem = BATTLE_TOWER_ITEM_FOCUS_BAND,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_IRON_TAIL,
+ MOVE_ROAR,
+ MOVE_THUNDERBOLT
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_HERACROSS,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x06,
+ .moves = {
+ MOVE_MEGAHORN,
+ MOVE_COUNTER,
+ MOVE_PROTECT,
+ MOVE_LEER
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_GIRAFARIG,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_CRUNCH,
+ MOVE_BATON_PASS,
+ MOVE_AGILITY
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_XATU,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_FLY,
+ MOVE_CONFUSE_RAY,
+ MOVE_TOXIC
+ },
+ .evSpread = F_EV_SPREAD_SPEED,
+ .nature = NATURE_BASHFUL,
+ },
+ {
+ .species = SPECIES_DODRIO,
+ .heldItem = BATTLE_TOWER_ITEM_SHARP_BEAK,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_DRILL_PECK,
+ MOVE_TRI_ATTACK,
+ MOVE_PURSUIT,
+ MOVE_TORMENT
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_VILEPLUME,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x89,
+ .moves = {
+ MOVE_POISON_POWDER,
+ MOVE_STUN_SPORE,
+ MOVE_SLEEP_POWDER,
+ MOVE_PETAL_DANCE
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_MODEST,
+ },
+ {
+ .species = SPECIES_MEDICHAM,
+ .heldItem = BATTLE_TOWER_ITEM_TWISTED_SPOON,
+ .teamFlags = 0x06,
+ .moves = {
+ MOVE_FOCUS_PUNCH,
+ MOVE_LIGHT_SCREEN,
+ MOVE_BULK_UP,
+ MOVE_PSYCHIC
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_JOLLY,
+ },
+ {
+ .species = SPECIES_ABSOL,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x06,
+ .moves = {
+ MOVE_SLASH,
+ MOVE_SWORDS_DANCE,
+ MOVE_DOUBLE_TEAM,
+ MOVE_ATTRACT
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_DUSCLOPS,
+ .heldItem = BATTLE_TOWER_ITEM_SPELL_TAG,
+ .teamFlags = 0x4B,
+ .moves = {
+ MOVE_CONFUSE_RAY,
+ MOVE_WILL_O_WISP,
+ MOVE_NIGHT_SHADE,
+ MOVE_DISABLE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_SHUPPET,
+ .heldItem = BATTLE_TOWER_ITEM_SPELL_TAG,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_GRUDGE,
+ MOVE_SHADOW_BALL,
+ MOVE_CURSE,
+ MOVE_KNOCK_OFF
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_IMPISH,
+ },
+ {
+ .species = SPECIES_CASTFORM,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x82,
+ .moves = {
+ MOVE_WEATHER_BALL,
+ MOVE_HAIL,
+ MOVE_SUNNY_DAY,
+ MOVE_RAIN_DANCE
+ },
+ .evSpread = F_EV_SPREAD_SPEED,
+ .nature = NATURE_MODEST,
+ },
+ {
+ .species = SPECIES_MILOTIC,
+ .heldItem = BATTLE_TOWER_ITEM_DRAGON_FANG,
+ .teamFlags = 0x02,
+ .moves = {
+ MOVE_SURF,
+ MOVE_REFRESH,
+ MOVE_RECOVER,
+ MOVE_RAIN_DANCE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_SHARPEDO,
+ .heldItem = BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_CRUNCH,
+ MOVE_FOCUS_ENERGY,
+ MOVE_SCARY_FACE,
+ MOVE_SCREECH
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_FLYGON,
+ .heldItem = BATTLE_TOWER_ITEM_CHERI_BERRY,
+ .teamFlags = 0x06,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_SAND_ATTACK,
+ MOVE_DRAGON_BREATH,
+ MOVE_SAND_TOMB
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_NAUGHTY,
+ },
+ {
+ .species = SPECIES_TRAPINCH,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_TOXIC,
+ MOVE_SAND_TOMB,
+ MOVE_CRUNCH,
+ MOVE_DOUBLE_TEAM
+ },
+ .evSpread = F_EV_SPREAD_ATTACK,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_LUNATONE,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_ROCK_THROW,
+ MOVE_HYPNOSIS,
+ MOVE_LIGHT_SCREEN
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_SOLROCK,
+ .heldItem = BATTLE_TOWER_ITEM_PECHA_BERRY,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_SOLAR_BEAM,
+ MOVE_SUNNY_DAY,
+ MOVE_COSMIC_POWER,
+ MOVE_CALM_MIND
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_BALTOY,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_EARTHQUAKE,
+ MOVE_REFLECT,
+ MOVE_SELF_DESTRUCT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_BASHFUL,
+ },
+ {
+ .species = SPECIES_CRAWDAUNT,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x06,
+ .moves = {
+ MOVE_CRABHAMMER,
+ MOVE_SURF,
+ MOVE_PROTECT,
+ MOVE_BRICK_BREAK
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_RASH,
+ },
+ {
+ .species = SPECIES_WHISCASH,
+ .heldItem = BATTLE_TOWER_ITEM_ASPEAR_BERRY,
+ .teamFlags = 0x06,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_TICKLE,
+ MOVE_AMNESIA,
+ MOVE_SURF
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_SEVIPER,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_POISON_TAIL,
+ MOVE_CRUNCH,
+ MOVE_GIGA_DRAIN,
+ MOVE_HAZE
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_MAGCARGO,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x89,
+ .moves = {
+ MOVE_FLAMETHROWER,
+ MOVE_LIGHT_SCREEN,
+ MOVE_AMNESIA,
+ MOVE_ROCK_SLIDE
+ },
+ .evSpread = F_EV_SPREAD_ATTACK,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_MACHAMP,
+ .heldItem = BATTLE_TOWER_ITEM_BLACK_BELT,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_KARATE_CHOP,
+ MOVE_SEISMIC_TOSS,
+ MOVE_BRICK_BREAK,
+ MOVE_LOW_KICK
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_SWALOT,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x86,
+ .moves = {
+ MOVE_YAWN,
+ MOVE_WATER_PULSE,
+ MOVE_SHADOW_BALL,
+ MOVE_SLUDGE_BOMB
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_NAUGHTY,
+ },
+ {
+ .species = SPECIES_SCEPTILE,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x0C,
+ .moves = {
+ MOVE_LEAF_BLADE,
+ MOVE_GIGA_DRAIN,
+ MOVE_FURY_CUTTER,
+ MOVE_DETECT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_BLAZIKEN,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x0C,
+ .moves = {
+ MOVE_BLAZE_KICK,
+ MOVE_FLAMETHROWER,
+ MOVE_PROTECT,
+ MOVE_QUICK_ATTACK
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_SWAMPERT,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x4C,
+ .moves = {
+ MOVE_SURF,
+ MOVE_MUD_SHOT,
+ MOVE_MUD_SLAP,
+ MOVE_DOUBLE_TEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MIGHTYENA,
+ .heldItem = BATTLE_TOWER_ITEM_BLACK_GLASSES,
+ .teamFlags = 0x04,
+ .moves = {
+ MOVE_CRUNCH,
+ MOVE_HOWL,
+ MOVE_SWAGGER,
+ MOVE_SHADOW_BALL
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_CALM,
+ },
+ {
+ .species = SPECIES_LINOONE,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x04,
+ .moves = {
+ MOVE_SLASH,
+ MOVE_REST,
+ MOVE_BELLY_DRUM,
+ MOVE_THUNDERBOLT
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_MILD,
+ },
+ {
+ .species = SPECIES_BEAUTIFLY,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x08,
+ .moves = {
+ MOVE_GIGA_DRAIN,
+ MOVE_ATTRACT,
+ MOVE_MORNING_SUN,
+ MOVE_STUN_SPORE
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_DUSTOX,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x08,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_SILVER_WIND,
+ MOVE_MOONLIGHT,
+ MOVE_TOXIC
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_LUDICOLO,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x0C,
+ .moves = {
+ MOVE_FAKE_OUT,
+ MOVE_HYDRO_PUMP,
+ MOVE_ICE_BEAM,
+ MOVE_UPROAR
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_SHIFTRY,
+ .heldItem = BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ .teamFlags = 0x0C,
+ .moves = {
+ MOVE_FRUSTRATION,
+ MOVE_GIGA_DRAIN,
+ MOVE_TORMENT,
+ MOVE_SWAGGER
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_SWELLOW,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x88,
+ .moves = {
+ MOVE_FLY,
+ MOVE_ENDEAVOR,
+ MOVE_AERIAL_ACE,
+ MOVE_TOXIC
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_GARDEVOIR,
+ .heldItem = BATTLE_TOWER_ITEM_BLACK_GLASSES,
+ .teamFlags = 0x4A,
+ .moves = {
+ MOVE_HYPNOSIS,
+ MOVE_DREAM_EATER,
+ MOVE_PSYCHIC,
+ MOVE_DOUBLE_TEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_BRELOOM,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x0C,
+ .moves = {
+ MOVE_DYNAMIC_PUNCH,
+ MOVE_MIND_READER,
+ MOVE_SNATCH,
+ MOVE_MEGA_DRAIN
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_VIGOROTH,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x04,
+ .moves = {
+ MOVE_SLASH,
+ MOVE_UPROAR,
+ MOVE_ENCORE,
+ MOVE_FACADE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_CALM,
+ },
+ {
+ .species = SPECIES_NINJASK,
+ .heldItem = BATTLE_TOWER_ITEM_SILVER_POWDER,
+ .teamFlags = 0x04,
+ .moves = {
+ MOVE_FURY_CUTTER,
+ MOVE_GIGA_DRAIN,
+ MOVE_SWORDS_DANCE,
+ MOVE_DOUBLE_TEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_SHEDINJA,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0xCA,
+ .moves = {
+ MOVE_CONFUSE_RAY,
+ MOVE_SOLAR_BEAM,
+ MOVE_SUNNY_DAY,
+ MOVE_GRUDGE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_JOLLY,
+ },
+ {
+ .species = SPECIES_LOUDRED,
+ .heldItem = BATTLE_TOWER_ITEM_PECHA_BERRY,
+ .teamFlags = 0x04,
+ .moves = {
+ MOVE_HYPER_VOICE,
+ MOVE_HOWL,
+ MOVE_SHADOW_BALL,
+ MOVE_TORMENT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_HARIYAMA,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x04,
+ .moves = {
+ MOVE_ARM_THRUST,
+ MOVE_BULK_UP,
+ MOVE_BRICK_BREAK,
+ MOVE_HIDDEN_POWER
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_BASHFUL,
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = BATTLE_TOWER_ITEM_TWISTED_SPOON,
+ .teamFlags = 0x88,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_SHADOW_BALL,
+ MOVE_FUTURE_SIGHT,
+ MOVE_DISABLE
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_CROBAT,
+ .heldItem = BATTLE_TOWER_ITEM_CHERI_BERRY,
+ .teamFlags = 0x88,
+ .moves = {
+ MOVE_CONFUSE_RAY,
+ MOVE_TOXIC,
+ MOVE_MEAN_LOOK,
+ MOVE_SNATCH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MAWILE,
+ .heldItem = BATTLE_TOWER_ITEM_METAL_COAT,
+ .teamFlags = 0x04,
+ .moves = {
+ MOVE_CRUNCH,
+ MOVE_IRON_DEFENSE,
+ MOVE_FAKE_TEARS,
+ MOVE_POISON_FANG
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_AGGRON,
+ .heldItem = BATTLE_TOWER_ITEM_METAL_COAT,
+ .teamFlags = 0x45,
+ .moves = {
+ MOVE_METAL_CLAW,
+ MOVE_FLAMETHROWER,
+ MOVE_METAL_SOUND,
+ MOVE_ICE_BEAM
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_GOLEM,
+ .heldItem = BATTLE_TOWER_ITEM_SOFT_SAND,
+ .teamFlags = 0xC5,
+ .moves = {
+ MOVE_ROLLOUT,
+ MOVE_DEFENSE_CURL,
+ MOVE_DOUBLE_TEAM,
+ MOVE_SELF_DESTRUCT
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MANECTRIC,
+ .heldItem = BATTLE_TOWER_ITEM_MAGNET,
+ .teamFlags = 0x04,
+ .moves = {
+ MOVE_THUNDER,
+ MOVE_RAIN_DANCE,
+ MOVE_THUNDER_WAVE,
+ MOVE_CHARGE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_VOLBEAT,
+ .heldItem = BATTLE_TOWER_ITEM_SILVER_POWDER,
+ .teamFlags = 0x08,
+ .moves = {
+ MOVE_CONFUSE_RAY,
+ MOVE_SIGNAL_BEAM,
+ MOVE_MOONLIGHT,
+ MOVE_TAIL_GLOW
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_ILLUMISE,
+ .heldItem = BATTLE_TOWER_ITEM_SILVER_POWDER,
+ .teamFlags = 0x08,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_FLATTER,
+ MOVE_WISH,
+ MOVE_ENCORE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_MASQUERAIN,
+ .heldItem = BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ .teamFlags = 0x88,
+ .moves = {
+ MOVE_GIGA_DRAIN,
+ MOVE_SILVER_WIND,
+ MOVE_STUN_SPORE,
+ MOVE_TOXIC
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_ROSELIA,
+ .heldItem = BATTLE_TOWER_ITEM_MIRACLE_SEED,
+ .teamFlags = 0x08,
+ .moves = {
+ MOVE_PETAL_DANCE,
+ MOVE_GROWTH,
+ MOVE_SYNTHESIS,
+ MOVE_GRASS_WHISTLE
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_IMPISH,
+ },
+ {
+ .species = SPECIES_DELCATTY,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x08,
+ .moves = {
+ MOVE_SING,
+ MOVE_ATTRACT,
+ MOVE_DOUBLE_SLAP,
+ MOVE_HEAL_BELL
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_SEAKING,
+ .heldItem = BATTLE_TOWER_ITEM_MYSTIC_WATER,
+ .teamFlags = 0x88,
+ .moves = {
+ MOVE_RAIN_DANCE,
+ MOVE_SURF,
+ MOVE_ATTRACT,
+ MOVE_ICE_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_GYARADOS,
+ .heldItem = BATTLE_TOWER_ITEM_DRAGON_FANG,
+ .teamFlags = 0x8C,
+ .moves = {
+ MOVE_HYDRO_PUMP,
+ MOVE_EARTHQUAKE,
+ MOVE_DRAGON_RAGE,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_CALM,
+ },
+ {
+ .species = SPECIES_SWALOT,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_STOCKPILE,
+ MOVE_SWALLOW,
+ MOVE_SPIT_UP,
+ MOVE_YAWN
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_NAUGHTY,
+ },
+ {
+ .species = SPECIES_MAGCARGO,
+ .heldItem = BATTLE_TOWER_ITEM_ASPEAR_BERRY,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_ROCK_SLIDE,
+ MOVE_FIRE_BLAST,
+ MOVE_BODY_SLAM,
+ MOVE_LIGHT_SCREEN
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_LONELY,
+ },
+ {
+ .species = SPECIES_MUK,
+ .heldItem = BATTLE_TOWER_ITEM_POISON_BARB,
+ .teamFlags = 0xC3,
+ .moves = {
+ MOVE_SLUDGE_BOMB,
+ MOVE_FLAMETHROWER,
+ MOVE_ACID_ARMOR,
+ MOVE_DISABLE
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_SPINDA,
+ .heldItem = BATTLE_TOWER_ITEM_SILK_SCARF,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_DIZZY_PUNCH,
+ MOVE_TEETER_DANCE,
+ MOVE_PSYCH_UP,
+ MOVE_FACADE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_MODEST,
+ },
+ {
+ .species = SPECIES_ALTARIA,
+ .heldItem = BATTLE_TOWER_ITEM_DRAGON_FANG,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_DRAGON_CLAW,
+ MOVE_DRAGON_BREATH,
+ MOVE_DRAGON_DANCE,
+ MOVE_REFRESH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_RASH,
+ },
+ {
+ .species = SPECIES_ZANGOOSE,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_CRUSH_CLAW,
+ MOVE_TAUNT,
+ MOVE_SWORDS_DANCE,
+ MOVE_DETECT
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIRKY,
+ },
+ {
+ .species = SPECIES_SEVIPER,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_SWAGGER,
+ MOVE_TAUNT,
+ MOVE_GLARE,
+ MOVE_POISON_TAIL
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_GRUMPIG,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_TOXIC,
+ MOVE_BOUNCE,
+ MOVE_CONFUSE_RAY,
+ MOVE_ATTRACT
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_CACTURNE,
+ .heldItem = BATTLE_TOWER_ITEM_MIRACLE_SEED,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_NEEDLE_ARM,
+ MOVE_INGRAIN,
+ MOVE_SPIKES,
+ MOVE_COTTON_SPORE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_CLAYDOL,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_SANDSTORM,
+ MOVE_COSMIC_POWER,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_TENTACRUEL,
+ .heldItem = BATTLE_TOWER_ITEM_MENTAL_HERB,
+ .teamFlags = 0xC1,
+ .moves = {
+ MOVE_SLUDGE_BOMB,
+ MOVE_HYDRO_PUMP,
+ MOVE_BARRIER,
+ MOVE_SUPERSONIC
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WIGGLYTUFF,
+ .heldItem = BATTLE_TOWER_ITEM_RAWST_BERRY,
+ .teamFlags = 0xC3,
+ .moves = {
+ MOVE_SING,
+ MOVE_FOCUS_PUNCH,
+ MOVE_DISABLE,
+ MOVE_FACADE
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_AZUMARILL,
+ .heldItem = BATTLE_TOWER_ITEM_CHERI_BERRY,
+ .teamFlags = 0xC2,
+ .moves = {
+ MOVE_SURF,
+ MOVE_ATTRACT,
+ MOVE_DEFENSE_CURL,
+ MOVE_ROLLOUT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_RASH,
+ },
+ {
+ .species = SPECIES_ELECTRODE,
+ .heldItem = BATTLE_TOWER_ITEM_CHERI_BERRY,
+ .teamFlags = 0xC3,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_MIRROR_COAT,
+ MOVE_LIGHT_SCREEN,
+ MOVE_SELF_DESTRUCT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MILOTIC,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_HYDRO_PUMP,
+ MOVE_ATTRACT,
+ MOVE_RECOVER,
+ MOVE_REFRESH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_JOLLY,
+ },
+ {
+ .species = SPECIES_KECLEON,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_SKILL_SWAP,
+ MOVE_ANCIENT_POWER,
+ MOVE_WATER_PULSE,
+ MOVE_THUNDERBOLT
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_NAUGHTY,
+ },
+ {
+ .species = SPECIES_DUSCLOPS,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_CONFUSE_RAY,
+ MOVE_CURSE,
+ MOVE_REST,
+ MOVE_MEAN_LOOK
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_BASHFUL,
+ },
+ {
+ .species = SPECIES_ABSOL,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_SLASH,
+ MOVE_SWORDS_DANCE,
+ MOVE_DOUBLE_TEAM,
+ MOVE_SNATCH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_NINETALES,
+ .heldItem = BATTLE_TOWER_ITEM_APICOT_BERRY,
+ .teamFlags = 0xC2,
+ .moves = {
+ MOVE_FLAMETHROWER,
+ MOVE_CONFUSE_RAY,
+ MOVE_DOUBLE_TEAM,
+ MOVE_WILL_O_WISP
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_PIKACHU,
+ .heldItem = BATTLE_TOWER_ITEM_LIGHT_BALL,
+ .teamFlags = 0xC2,
+ .moves = {
+ MOVE_THUNDER_WAVE,
+ MOVE_THUNDER,
+ MOVE_RAIN_DANCE,
+ MOVE_ATTRACT
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_VILEPLUME,
+ .heldItem = BATTLE_TOWER_ITEM_ASPEAR_BERRY,
+ .teamFlags = 0xC3,
+ .moves = {
+ MOVE_GIGA_DRAIN,
+ MOVE_SLEEP_POWDER,
+ MOVE_MOONLIGHT,
+ MOVE_SLUDGE_BOMB
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_DONPHAN,
+ .heldItem = BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_DOUBLE_EDGE,
+ MOVE_IRON_TAIL,
+ MOVE_FISSURE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIRKY,
+ },
+ {
+ .species = SPECIES_STARMIE,
+ .heldItem = BATTLE_TOWER_ITEM_CHERI_BERRY,
+ .teamFlags = 0xC3,
+ .moves = {
+ MOVE_CONFUSE_RAY,
+ MOVE_ICE_BEAM,
+ MOVE_RECOVER,
+ MOVE_DOUBLE_TEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_WALREIN,
+ .heldItem = BATTLE_TOWER_ITEM_NEVER_MELT_ICE,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_ICE_BEAM,
+ MOVE_BODY_SLAM,
+ MOVE_ENCORE,
+ MOVE_HAIL
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_RELICANTH,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_YAWN,
+ MOVE_MUD_SPORT,
+ MOVE_DOUBLE_EDGE,
+ MOVE_SANDSTORM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_LONELY,
+ },
+ {
+ .species = SPECIES_KINGDRA,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_RAIN_DANCE,
+ MOVE_ICE_BEAM,
+ MOVE_HYDRO_PUMP,
+ MOVE_AGILITY
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_CRADILY,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_CONFUSE_RAY,
+ MOVE_INGRAIN,
+ MOVE_ANCIENT_POWER,
+ MOVE_GIGA_DRAIN
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_MILD,
+ },
+ {
+ .species = SPECIES_ARMALDO,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_SLASH,
+ MOVE_ROCK_SLIDE,
+ MOVE_EARTHQUAKE,
+ MOVE_WATER_PULSE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_METAGROSS,
+ .heldItem = BATTLE_TOWER_ITEM_METAL_COAT,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_METAL_CLAW,
+ MOVE_PSYCHIC,
+ MOVE_LIGHT_SCREEN,
+ MOVE_AGILITY
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_SALAMENCE,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_DRAGON_BREATH,
+ MOVE_CRUNCH,
+ MOVE_FLAMETHROWER,
+ MOVE_AERIAL_ACE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_MIGHTYENA,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_CRUNCH,
+ MOVE_YAWN,
+ MOVE_FACADE,
+ MOVE_HOWL
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_LINOONE,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x02,
+ .moves = {
+ MOVE_HYPER_BEAM,
+ MOVE_FACADE,
+ MOVE_ATTRACT,
+ MOVE_TRICK
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_LUDICOLO,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_SURF,
+ MOVE_FOCUS_PUNCH,
+ MOVE_FAKE_OUT,
+ MOVE_SYNTHESIS
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_EXPLOUD,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_UPROAR,
+ MOVE_EARTHQUAKE,
+ MOVE_ICE_BEAM,
+ MOVE_FLAMETHROWER
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_SWELLOW,
+ .heldItem = BATTLE_TOWER_ITEM_LANSAT_BERRY,
+ .teamFlags = 0x02,
+ .moves = {
+ MOVE_FACADE,
+ MOVE_SUPERSONIC,
+ MOVE_WING_ATTACK,
+ MOVE_ENDEAVOR
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_PELIPPER,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x82,
+ .moves = {
+ MOVE_STOCKPILE,
+ MOVE_SWALLOW,
+ MOVE_SPIT_UP,
+ MOVE_ATTRACT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_BRELOOM,
+ .heldItem = BATTLE_TOWER_ITEM_FOCUS_BAND,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_DYNAMIC_PUNCH,
+ MOVE_COUNTER,
+ MOVE_BULK_UP,
+ MOVE_MIND_READER
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_SHEDINJA,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_RETURN,
+ MOVE_DOUBLE_TEAM,
+ MOVE_TOXIC,
+ MOVE_SHADOW_BALL
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_EXPLOUD,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_HYPER_BEAM,
+ MOVE_SUPERSONIC,
+ MOVE_FLAMETHROWER,
+ MOVE_ICE_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_HARIYAMA,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_CROSS_CHOP,
+ MOVE_COUNTER,
+ MOVE_FACADE,
+ MOVE_FAKE_OUT
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x83,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_ENCORE,
+ MOVE_DISABLE,
+ MOVE_RECOVER
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_CROBAT,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x81,
+ .moves = {
+ MOVE_CONFUSE_RAY,
+ MOVE_AIR_CUTTER,
+ MOVE_TORMENT,
+ MOVE_DOUBLE_TEAM
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_SABLEYE,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x83,
+ .moves = {
+ MOVE_TOXIC,
+ MOVE_DETECT,
+ MOVE_RECOVER,
+ MOVE_TORMENT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_MAWILE,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x02,
+ .moves = {
+ MOVE_CRUNCH,
+ MOVE_SWORDS_DANCE,
+ MOVE_IRON_DEFENSE,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_AGGRON,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_DOUBLE_EDGE,
+ MOVE_IRON_DEFENSE,
+ MOVE_ROAR,
+ MOVE_EARTHQUAKE
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_GOLEM,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_ROCK_SLIDE,
+ MOVE_FLAMETHROWER,
+ MOVE_FACADE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_NOSEPASS,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x81,
+ .moves = {
+ MOVE_THUNDER_WAVE,
+ MOVE_ROCK_SLIDE,
+ MOVE_TORMENT,
+ MOVE_ATTRACT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_MANECTRIC,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x02,
+ .moves = {
+ MOVE_THUNDER,
+ MOVE_CRUNCH,
+ MOVE_THUNDER_WAVE,
+ MOVE_QUICK_ATTACK
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_JOLLY,
+ },
+ {
+ .species = SPECIES_ROSELIA,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x82,
+ .moves = {
+ MOVE_GRASS_WHISTLE,
+ MOVE_LEECH_SEED,
+ MOVE_GIGA_DRAIN,
+ MOVE_GROWTH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_DELCATTY,
+ .heldItem = BATTLE_TOWER_ITEM_STARF_BERRY,
+ .teamFlags = 0x02,
+ .moves = {
+ MOVE_ASSIST,
+ MOVE_SING,
+ MOVE_ATTRACT,
+ MOVE_SUBSTITUTE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_TROPIUS,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0xC2,
+ .moves = {
+ MOVE_RAZOR_LEAF,
+ MOVE_EARTHQUAKE,
+ MOVE_ATTRACT,
+ MOVE_SYNTHESIS
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_JOLLY,
+ },
+ {
+ .species = SPECIES_SWALOT,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_YAWN,
+ MOVE_SLUDGE_BOMB,
+ MOVE_ATTRACT,
+ MOVE_ICE_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_MACHAMP,
+ .heldItem = BATTLE_TOWER_ITEM_BLACK_BELT,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_CROSS_CHOP,
+ MOVE_BULK_UP,
+ MOVE_LOW_KICK,
+ MOVE_BRICK_BREAK
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_BASHFUL,
+ },
+ {
+ .species = SPECIES_CAMERUPT,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x40,
+ .moves = {
+ MOVE_ERUPTION,
+ MOVE_EARTHQUAKE,
+ MOVE_ROCK_SLIDE,
+ MOVE_OVERHEAT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_MAGCARGO,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_FLAMETHROWER,
+ MOVE_ROCK_SLIDE,
+ MOVE_EARTHQUAKE,
+ MOVE_REFLECT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WEEZING,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x81,
+ .moves = {
+ MOVE_WILL_O_WISP,
+ MOVE_HYPER_BEAM,
+ MOVE_THUNDERBOLT,
+ MOVE_DESTINY_BOND
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_SPINDA,
+ .heldItem = BATTLE_TOWER_ITEM_CHOICE_BAND,
+ .teamFlags = 0x82,
+ .moves = {
+ MOVE_TRICK,
+ MOVE_TEETER_DANCE,
+ MOVE_FOCUS_PUNCH,
+ MOVE_FACADE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_SKARMORY,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_DRILL_PECK,
+ MOVE_STEEL_WING,
+ MOVE_TORMENT,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_ALTARIA,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x02,
+ .moves = {
+ MOVE_SING,
+ MOVE_DRAGON_CLAW,
+ MOVE_ICE_BEAM,
+ MOVE_EARTHQUAKE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_GRUMPIG,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x82,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_CONFUSE_RAY,
+ MOVE_CALM_MIND,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_SHIFTRY,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x20,
+ .moves = {
+ MOVE_SWAGGER,
+ MOVE_FRUSTRATION,
+ MOVE_ATTRACT,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_CLAYDOL,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x20,
+ .moves = {
+ MOVE_COSMIC_POWER,
+ MOVE_PSYCHIC,
+ MOVE_EARTHQUAKE,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_HARIYAMA,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x33,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_COUNTER,
+ MOVE_BELLY_DRUM,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_NOSEPASS,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x20,
+ .moves = {
+ MOVE_ROCK_SLIDE,
+ MOVE_THUNDER_WAVE,
+ MOVE_EARTHQUAKE,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_DUSCLOPS,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x33,
+ .moves = {
+ MOVE_SHADOW_PUNCH,
+ MOVE_WILL_O_WISP,
+ MOVE_CONFUSE_RAY,
+ MOVE_DESTINY_BOND
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_SEAKING,
+ .heldItem = BATTLE_TOWER_ITEM_LEPPA_BERRY,
+ .teamFlags = 0x20,
+ .moves = {
+ MOVE_HORN_DRILL,
+ MOVE_AGILITY,
+ MOVE_SLEEP_TALK,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_CAMERUPT,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x73,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_ERUPTION,
+ MOVE_ROCK_SLIDE,
+ MOVE_FISSURE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_LANTURN,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x13,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_SURF,
+ MOVE_THUNDER_WAVE,
+ MOVE_CONFUSE_RAY
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_WEEZING,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x33,
+ .moves = {
+ MOVE_SLUDGE_BOMB,
+ MOVE_THUNDERBOLT,
+ MOVE_FIRE_BLAST,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WHISCASH,
+ .heldItem = BATTLE_TOWER_ITEM_LEPPA_BERRY,
+ .teamFlags = 0x20,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_SURF,
+ MOVE_SPARK,
+ MOVE_FISSURE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_AGGRON,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x51,
+ .moves = {
+ MOVE_DOUBLE_EDGE,
+ MOVE_EARTHQUAKE,
+ MOVE_SURF,
+ MOVE_DRAGON_CLAW
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_KECLEON,
+ .heldItem = BATTLE_TOWER_ITEM_CHOICE_BAND,
+ .teamFlags = 0x12,
+ .moves = {
+ MOVE_TRICK,
+ MOVE_FOCUS_PUNCH,
+ MOVE_ATTRACT,
+ MOVE_SNATCH
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_MILD,
+ },
+ {
+ .species = SPECIES_SHARPEDO,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x11,
+ .moves = {
+ MOVE_CRUNCH,
+ MOVE_DOUBLE_EDGE,
+ MOVE_SURF,
+ MOVE_SWAGGER
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_ABSOL,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x12,
+ .moves = {
+ MOVE_DOUBLE_EDGE,
+ MOVE_FACADE,
+ MOVE_SWORDS_DANCE,
+ MOVE_QUICK_ATTACK
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WAILORD,
+ .heldItem = BATTLE_TOWER_ITEM_LEPPA_BERRY,
+ .teamFlags = 0x72,
+ .moves = {
+ MOVE_HYDRO_PUMP,
+ MOVE_EARTHQUAKE,
+ MOVE_ATTRACT,
+ MOVE_FISSURE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_TENTACRUEL,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x20,
+ .moves = {
+ MOVE_HYDRO_PUMP,
+ MOVE_SLUDGE_BOMB,
+ MOVE_BARRIER,
+ MOVE_MIRROR_COAT
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_JOLLY,
+ },
+ {
+ .species = SPECIES_SABLEYE,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x32,
+ .moves = {
+ MOVE_SHADOW_BALL,
+ MOVE_TOXIC,
+ MOVE_RECOVER,
+ MOVE_DOUBLE_TEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WOBBUFFET,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x20,
+ .moves = {
+ MOVE_ENCORE,
+ MOVE_COUNTER,
+ MOVE_MIRROR_COAT,
+ MOVE_DESTINY_BOND
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_MILD,
+ },
+ {
+ .species = SPECIES_RHYDON,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x71,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_MEGAHORN,
+ MOVE_BRICK_BREAK,
+ MOVE_HORN_DRILL
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_GLALIE,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x31,
+ .moves = {
+ MOVE_CRUNCH,
+ MOVE_BLIZZARD,
+ MOVE_HAIL,
+ MOVE_SHEER_COLD
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_BASHFUL,
+ },
+ {
+ .species = SPECIES_SCEPTILE,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x8C,
+ .moves = {
+ MOVE_LEAF_BLADE,
+ MOVE_EARTHQUAKE,
+ MOVE_DRAGON_CLAW,
+ MOVE_CRUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_BLAZIKEN,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x8C,
+ .moves = {
+ MOVE_BLAZE_KICK,
+ MOVE_COUNTER,
+ MOVE_ENDURE,
+ MOVE_REVERSAL
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_SWAMPERT,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x8C,
+ .moves = {
+ MOVE_SURF,
+ MOVE_EARTHQUAKE,
+ MOVE_MIRROR_COAT,
+ MOVE_BLIZZARD
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_GARDEVOIR,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x1A,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_THUNDERBOLT,
+ MOVE_DESTINY_BOND,
+ MOVE_SNATCH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_BRELOOM,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x15,
+ .moves = {
+ MOVE_SPORE,
+ MOVE_FOCUS_PUNCH,
+ MOVE_MACH_PUNCH,
+ MOVE_ATTRACT
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x58,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_FIRE_PUNCH,
+ MOVE_ICE_PUNCH,
+ MOVE_RECOVER
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_HARIYAMA,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x15,
+ .moves = {
+ MOVE_CROSS_CHOP,
+ MOVE_EARTHQUAKE,
+ MOVE_FACADE,
+ MOVE_FAKE_OUT
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_GYARADOS,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x55,
+ .moves = {
+ MOVE_HYPER_BEAM,
+ MOVE_EARTHQUAKE,
+ MOVE_SURF,
+ MOVE_ICE_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_BOLD,
+ },
+ {
+ .species = SPECIES_CROBAT,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x58,
+ .moves = {
+ MOVE_SLUDGE_BOMB,
+ MOVE_CONFUSE_RAY,
+ MOVE_AIR_CUTTER,
+ MOVE_DOUBLE_TEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MACHAMP,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x5D,
+ .moves = {
+ MOVE_CROSS_CHOP,
+ MOVE_FLAMETHROWER,
+ MOVE_EARTHQUAKE,
+ MOVE_ROCK_SLIDE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MANECTRIC,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x1A,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_THUNDER_WAVE,
+ MOVE_ROAR,
+ MOVE_CRUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_ELECTRODE,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x60,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_PROTECT,
+ MOVE_MIRROR_COAT,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_BASHFUL,
+ },
+ {
+ .species = SPECIES_MUK,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x64,
+ .moves = {
+ MOVE_SLUDGE_BOMB,
+ MOVE_FLAMETHROWER,
+ MOVE_THUNDERBOLT,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_FLYGON,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x1C,
+ .moves = {
+ MOVE_DRAGON_CLAW,
+ MOVE_EARTHQUAKE,
+ MOVE_FLAMETHROWER,
+ MOVE_CRUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_STARMIE,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x5C,
+ .moves = {
+ MOVE_SURF,
+ MOVE_THUNDERBOLT,
+ MOVE_RECOVER,
+ MOVE_CONFUSE_RAY
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_NINETALES,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x4A,
+ .moves = {
+ MOVE_CONFUSE_RAY,
+ MOVE_TOXIC,
+ MOVE_FIRE_SPIN,
+ MOVE_HEAT_WAVE
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_RAICHU,
+ .heldItem = BATTLE_TOWER_ITEM_FOCUS_BAND,
+ .teamFlags = 0x5A,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_THUNDER_WAVE,
+ MOVE_REVERSAL,
+ MOVE_IRON_TAIL
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_GOLDUCK,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x55,
+ .moves = {
+ MOVE_SURF,
+ MOVE_CROSS_CHOP,
+ MOVE_ICE_BEAM,
+ MOVE_DIG
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_JOLLY,
+ },
+ {
+ .species = SPECIES_HERACROSS,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x5D,
+ .moves = {
+ MOVE_MEGAHORN,
+ MOVE_EARTHQUAKE,
+ MOVE_ENDURE,
+ MOVE_REVERSAL
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WALREIN,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x26,
+ .moves = {
+ MOVE_SURF,
+ MOVE_ICE_BEAM,
+ MOVE_EARTHQUAKE,
+ MOVE_SHEER_COLD
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_KINGDRA,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x5B,
+ .moves = {
+ MOVE_SURF,
+ MOVE_ICE_BEAM,
+ MOVE_DRAGON_BREATH,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_SALAMENCE,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x0D,
+ .moves = {
+ MOVE_DRAGON_CLAW,
+ MOVE_EARTHQUAKE,
+ MOVE_CRUNCH,
+ MOVE_FIRE_BLAST
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_NAUGHTY,
+ },
+ {
+ .species = SPECIES_METAGROSS,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x3D,
+ .moves = {
+ MOVE_METEOR_MASH,
+ MOVE_PSYCHIC,
+ MOVE_EARTHQUAKE,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_REGIROCK,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x3C,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_ANCIENT_POWER,
+ MOVE_THUNDERBOLT,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_REGICE,
+ .heldItem = BATTLE_TOWER_ITEM_LAX_INCENSE,
+ .teamFlags = 0x3C,
+ .moves = {
+ MOVE_ICE_BEAM,
+ MOVE_THUNDERBOLT,
+ MOVE_EARTHQUAKE,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_REGISTEEL,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x3C,
+ .moves = {
+ MOVE_METAL_CLAW,
+ MOVE_EARTHQUAKE,
+ MOVE_THUNDERBOLT,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_LATIAS,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x0E,
+ .moves = {
+ MOVE_MIST_BALL,
+ MOVE_THUNDERBOLT,
+ MOVE_RECOVER,
+ MOVE_DRAGON_CLAW
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_LATIOS,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x0D,
+ .moves = {
+ MOVE_LUSTER_PURGE,
+ MOVE_THUNDERBOLT,
+ MOVE_RECOVER,
+ MOVE_DRAGON_CLAW
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_MILOTIC,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x1A,
+ .moves = {
+ MOVE_SURF,
+ MOVE_TOXIC,
+ MOVE_RECOVER,
+ MOVE_MIRROR_COAT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_SLAKING,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x15,
+ .moves = {
+ MOVE_YAWN,
+ MOVE_FOCUS_PUNCH,
+ MOVE_COUNTER,
+ MOVE_SLACK_OFF
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_SCEPTILE,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x8C,
+ .moves = {
+ MOVE_GIGA_DRAIN,
+ MOVE_DOUBLE_TEAM,
+ MOVE_LEECH_SEED,
+ MOVE_ATTRACT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_BLAZIKEN,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x8C,
+ .moves = {
+ MOVE_BLAZE_KICK,
+ MOVE_EARTHQUAKE,
+ MOVE_ROCK_SLIDE,
+ MOVE_QUICK_ATTACK
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_SWAMPERT,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x8C,
+ .moves = {
+ MOVE_MUDDY_WATER,
+ MOVE_MUD_SHOT,
+ MOVE_MIRROR_COAT,
+ MOVE_ICE_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_GARDEVOIR,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_THUNDERBOLT,
+ MOVE_HYPNOSIS,
+ MOVE_DREAM_EATER
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_BRELOOM,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_SPORE,
+ MOVE_COUNTER,
+ MOVE_SKY_UPPERCUT,
+ MOVE_GIGA_DRAIN
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x58,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_THUNDER_PUNCH,
+ MOVE_FIRE_PUNCH,
+ MOVE_RECOVER
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_HARIYAMA,
+ .heldItem = BATTLE_TOWER_ITEM_FOCUS_BAND,
+ .teamFlags = 0x04,
+ .moves = {
+ MOVE_CROSS_CHOP,
+ MOVE_COUNTER,
+ MOVE_ENDURE,
+ MOVE_REVERSAL
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_GYARADOS,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x44,
+ .moves = {
+ MOVE_HYPER_BEAM,
+ MOVE_THUNDERBOLT,
+ MOVE_EARTHQUAKE,
+ MOVE_ICE_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_BOLD,
+ },
+ {
+ .species = SPECIES_CROBAT,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x48,
+ .moves = {
+ MOVE_TOXIC,
+ MOVE_CONFUSE_RAY,
+ MOVE_ATTRACT,
+ MOVE_FLY
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MACHAMP,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x5D,
+ .moves = {
+ MOVE_CROSS_CHOP,
+ MOVE_COUNTER,
+ MOVE_EARTHQUAKE,
+ MOVE_FACADE
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MANECTRIC,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_THUNDER,
+ MOVE_THUNDER_WAVE,
+ MOVE_QUICK_ATTACK,
+ MOVE_CRUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_ELECTRODE,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x60,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_LIGHT_SCREEN,
+ MOVE_MIRROR_COAT,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_BASHFUL,
+ },
+ {
+ .species = SPECIES_MUK,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x64,
+ .moves = {
+ MOVE_SLUDGE_BOMB,
+ MOVE_GIGA_DRAIN,
+ MOVE_FLAMETHROWER,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_FLYGON,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x1C,
+ .moves = {
+ MOVE_DRAGON_CLAW,
+ MOVE_EARTHQUAKE,
+ MOVE_IRON_TAIL,
+ MOVE_CRUNCH
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_STARMIE,
+ .heldItem = BATTLE_TOWER_ITEM_APICOT_BERRY,
+ .teamFlags = 0x5C,
+ .moves = {
+ MOVE_BLIZZARD,
+ MOVE_THUNDERBOLT,
+ MOVE_PSYCHIC,
+ MOVE_RECOVER
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_DODRIO,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x5A,
+ .moves = {
+ MOVE_DRILL_PECK,
+ MOVE_TRI_ATTACK,
+ MOVE_AGILITY,
+ MOVE_FACADE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_RAICHU,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x4A,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_THUNDER_WAVE,
+ MOVE_ATTRACT,
+ MOVE_FOCUS_PUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_GOLDUCK,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x45,
+ .moves = {
+ MOVE_HYDRO_PUMP,
+ MOVE_CROSS_CHOP,
+ MOVE_BLIZZARD,
+ MOVE_ATTRACT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_HERACROSS,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x5D,
+ .moves = {
+ MOVE_MEGAHORN,
+ MOVE_EARTHQUAKE,
+ MOVE_COUNTER,
+ MOVE_REVERSAL
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WALREIN,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x26,
+ .moves = {
+ MOVE_SURF,
+ MOVE_BLIZZARD,
+ MOVE_ROCK_SLIDE,
+ MOVE_SHEER_COLD
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_KINGDRA,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x5C,
+ .moves = {
+ MOVE_HYDRO_PUMP,
+ MOVE_ICE_BEAM,
+ MOVE_DRAGON_BREATH,
+ MOVE_ATTRACT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_SALAMENCE,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x1D,
+ .moves = {
+ MOVE_DRAGON_CLAW,
+ MOVE_EARTHQUAKE,
+ MOVE_CRUNCH,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_METAGROSS,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x3D,
+ .moves = {
+ MOVE_METEOR_MASH,
+ MOVE_PSYCHIC,
+ MOVE_EARTHQUAKE,
+ MOVE_SHADOW_BALL
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_REGIROCK,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x3C,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_THUNDERBOLT,
+ MOVE_FOCUS_PUNCH,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_REGICE,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x3C,
+ .moves = {
+ MOVE_ICE_BEAM,
+ MOVE_THUNDERBOLT,
+ MOVE_HAIL,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_REGISTEEL,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x3C,
+ .moves = {
+ MOVE_METAL_CLAW,
+ MOVE_EARTHQUAKE,
+ MOVE_ANCIENT_POWER,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_LATIAS,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x1E,
+ .moves = {
+ MOVE_MIST_BALL,
+ MOVE_ICE_BEAM,
+ MOVE_RECOVER,
+ MOVE_DRAGON_CLAW
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_LATIOS,
+ .heldItem = BATTLE_TOWER_ITEM_LAX_INCENSE,
+ .teamFlags = 0x1D,
+ .moves = {
+ MOVE_LUSTER_PURGE,
+ MOVE_ICE_BEAM,
+ MOVE_RECOVER,
+ MOVE_DRAGON_CLAW
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_MILOTIC,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x1A,
+ .moves = {
+ MOVE_HYDRO_PUMP,
+ MOVE_ICE_BEAM,
+ MOVE_RECOVER,
+ MOVE_MIRROR_COAT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_SLAKING,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x15,
+ .moves = {
+ MOVE_YAWN,
+ MOVE_FOCUS_PUNCH,
+ MOVE_COUNTER,
+ MOVE_PURSUIT
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_SCEPTILE,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x8C,
+ .moves = {
+ MOVE_LEAF_BLADE,
+ MOVE_ROCK_TOMB,
+ MOVE_DRAGON_CLAW,
+ MOVE_CRUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_BLAZIKEN,
+ .heldItem = BATTLE_TOWER_ITEM_GANLON_BERRY,
+ .teamFlags = 0x8C,
+ .moves = {
+ MOVE_FOCUS_PUNCH,
+ MOVE_COUNTER,
+ MOVE_SWAGGER,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_SWAMPERT,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x8C,
+ .moves = {
+ MOVE_SURF,
+ MOVE_ICE_BEAM,
+ MOVE_ATTRACT,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_GARDEVOIR,
+ .heldItem = BATTLE_TOWER_ITEM_LAX_INCENSE,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_THUNDERBOLT,
+ MOVE_ATTRACT,
+ MOVE_WILL_O_WISP
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_BRELOOM,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_SPORE,
+ MOVE_FOCUS_PUNCH,
+ MOVE_MACH_PUNCH,
+ MOVE_COUNTER
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = BATTLE_TOWER_ITEM_CHOICE_BAND,
+ .teamFlags = 0x58,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_TRICK,
+ MOVE_RECOVER,
+ MOVE_SNATCH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_HARIYAMA,
+ .heldItem = BATTLE_TOWER_ITEM_FOCUS_BAND,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_REVENGE,
+ MOVE_COUNTER,
+ MOVE_FOCUS_PUNCH,
+ MOVE_REVERSAL
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_LUDICOLO,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_RAIN_DANCE,
+ MOVE_LEECH_SEED,
+ MOVE_GIGA_DRAIN,
+ MOVE_DIVE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_CROBAT,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x48,
+ .moves = {
+ MOVE_SLUDGE_BOMB,
+ MOVE_CONFUSE_RAY,
+ MOVE_SHADOW_BALL,
+ MOVE_SNATCH
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MACHAMP,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x5D,
+ .moves = {
+ MOVE_CROSS_CHOP,
+ MOVE_FIRE_BLAST,
+ MOVE_LOW_KICK,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MANECTRIC,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x08,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_THUNDER_WAVE,
+ MOVE_ATTRACT,
+ MOVE_CRUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_ELECTRODE,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x60,
+ .moves = {
+ MOVE_THUNDER,
+ MOVE_SWIFT,
+ MOVE_MIRROR_COAT,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_BASHFUL,
+ },
+ {
+ .species = SPECIES_MUK,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x64,
+ .moves = {
+ MOVE_SLUDGE_BOMB,
+ MOVE_FLAMETHROWER,
+ MOVE_THUNDERBOLT,
+ MOVE_SHADOW_PUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_FLYGON,
+ .heldItem = BATTLE_TOWER_ITEM_LAX_INCENSE,
+ .teamFlags = 0x0C,
+ .moves = {
+ MOVE_DRAGON_CLAW,
+ MOVE_EARTHQUAKE,
+ MOVE_FIRE_BLAST,
+ MOVE_SANDSTORM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_STARMIE,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x4C,
+ .moves = {
+ MOVE_SURF,
+ MOVE_THUNDERBOLT,
+ MOVE_ICE_BEAM,
+ MOVE_PSYCHIC
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_LUDICOLO,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x4A,
+ .moves = {
+ MOVE_LEECH_SEED,
+ MOVE_ATTRACT,
+ MOVE_DOUBLE_TEAM,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_SKARMORY,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x4B,
+ .moves = {
+ MOVE_DRILL_PECK,
+ MOVE_STEEL_WING,
+ MOVE_ATTRACT,
+ MOVE_PURSUIT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_GOLDUCK,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x49,
+ .moves = {
+ MOVE_SURF,
+ MOVE_PSYCHIC,
+ MOVE_ICE_BEAM,
+ MOVE_CROSS_CHOP
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_JOLLY,
+ },
+ {
+ .species = SPECIES_HERACROSS,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x5D,
+ .moves = {
+ MOVE_MEGAHORN,
+ MOVE_EARTHQUAKE,
+ MOVE_FOCUS_PUNCH,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WALREIN,
+ .heldItem = BATTLE_TOWER_ITEM_LEPPA_BERRY,
+ .teamFlags = 0x26,
+ .moves = {
+ MOVE_SURF,
+ MOVE_ICE_BEAM,
+ MOVE_FISSURE,
+ MOVE_SHEER_COLD
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_KINGDRA,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x5C,
+ .moves = {
+ MOVE_SURF,
+ MOVE_BLIZZARD,
+ MOVE_HYPER_BEAM,
+ MOVE_FLAIL
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_SALAMENCE,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x1D,
+ .moves = {
+ MOVE_DRAGON_CLAW,
+ MOVE_EARTHQUAKE,
+ MOVE_FIRE_BLAST,
+ MOVE_HYDRO_PUMP
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_NAUGHTY,
+ },
+ {
+ .species = SPECIES_METAGROSS,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x3D,
+ .moves = {
+ MOVE_METEOR_MASH,
+ MOVE_PSYCHIC,
+ MOVE_EARTHQUAKE,
+ MOVE_HYPER_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_REGIROCK,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x3C,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_THUNDERBOLT,
+ MOVE_SUPERPOWER,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_REGICE,
+ .heldItem = BATTLE_TOWER_ITEM_LAX_INCENSE,
+ .teamFlags = 0x3C,
+ .moves = {
+ MOVE_ICE_BEAM,
+ MOVE_THUNDERBOLT,
+ MOVE_ANCIENT_POWER,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_REGISTEEL,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x3C,
+ .moves = {
+ MOVE_METAL_CLAW,
+ MOVE_THUNDERBOLT,
+ MOVE_HYPER_BEAM,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_LATIAS,
+ .heldItem = BATTLE_TOWER_ITEM_APICOT_BERRY,
+ .teamFlags = 0x1E,
+ .moves = {
+ MOVE_MIST_BALL,
+ MOVE_THUNDERBOLT,
+ MOVE_EARTHQUAKE,
+ MOVE_ICE_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_LATIOS,
+ .heldItem = BATTLE_TOWER_ITEM_GANLON_BERRY,
+ .teamFlags = 0x1D,
+ .moves = {
+ MOVE_LUSTER_PURGE,
+ MOVE_THUNDERBOLT,
+ MOVE_EARTHQUAKE,
+ MOVE_ICE_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_MILOTIC,
+ .heldItem = BATTLE_TOWER_ITEM_APICOT_BERRY,
+ .teamFlags = 0x1A,
+ .moves = {
+ MOVE_SURF,
+ MOVE_ICE_BEAM,
+ MOVE_RECOVER,
+ MOVE_ATTRACT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_ALTARIA,
+ .heldItem = BATTLE_TOWER_ITEM_GANLON_BERRY,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_DRAGON_CLAW,
+ MOVE_ICE_BEAM,
+ MOVE_SING,
+ MOVE_FLAMETHROWER
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_SCEPTILE,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x9C,
+ .moves = {
+ MOVE_LEAF_BLADE,
+ MOVE_DETECT,
+ MOVE_DRAGON_CLAW,
+ MOVE_CRUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_BLAZIKEN,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x9C,
+ .moves = {
+ MOVE_BLAZE_KICK,
+ MOVE_SKY_UPPERCUT,
+ MOVE_EARTHQUAKE,
+ MOVE_ROCK_SLIDE
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_SWAMPERT,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x9C,
+ .moves = {
+ MOVE_SURF,
+ MOVE_EARTHQUAKE,
+ MOVE_ICE_BEAM,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_SHEDINJA,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x20,
+ .moves = {
+ MOVE_CONFUSE_RAY,
+ MOVE_SHADOW_BALL,
+ MOVE_TOXIC,
+ MOVE_GRUDGE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_METAGROSS,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x1D,
+ .moves = {
+ MOVE_METEOR_MASH,
+ MOVE_EARTHQUAKE,
+ MOVE_DOUBLE_TEAM,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x58,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_THUNDER_PUNCH,
+ MOVE_ICE_PUNCH,
+ MOVE_FIRE_PUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_LATIAS,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x1E,
+ .moves = {
+ MOVE_MIST_BALL,
+ MOVE_THUNDERBOLT,
+ MOVE_ICE_BEAM,
+ MOVE_DRAGON_CLAW
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_LATIOS,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x1D,
+ .moves = {
+ MOVE_LUSTER_PURGE,
+ MOVE_THUNDERBOLT,
+ MOVE_ICE_BEAM,
+ MOVE_DRAGON_CLAW
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_SALAMENCE,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x1D,
+ .moves = {
+ MOVE_DRAGON_CLAW,
+ MOVE_FLAMETHROWER,
+ MOVE_EARTHQUAKE,
+ MOVE_AERIAL_ACE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_MACHAMP,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x5D,
+ .moves = {
+ MOVE_CROSS_CHOP,
+ MOVE_EARTHQUAKE,
+ MOVE_LOW_KICK,
+ MOVE_ROCK_SLIDE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+}; \ No newline at end of file
diff --git a/src/data/battle_tower/level_50_mons.h b/src/data/battle_tower/level_50_mons.h
new file mode 100644
index 000000000..c61f840af
--- /dev/null
+++ b/src/data/battle_tower/level_50_mons.h
@@ -0,0 +1,3903 @@
+const struct BattleTowerPokemon gBattleTowerLevel50Mons[] =
+{
+ {
+ .species = SPECIES_PIKACHU,
+ .heldItem = BATTLE_TOWER_ITEM_ORAN_BERRY,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_QUICK_ATTACK,
+ MOVE_THUNDER_WAVE,
+ MOVE_THUNDER_SHOCK,
+ MOVE_GROWL
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_BEAUTIFLY,
+ .heldItem = BATTLE_TOWER_ITEM_MIRACLE_SEED,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_ABSORB,
+ MOVE_STUN_SPORE,
+ MOVE_GUST,
+ MOVE_SAFEGUARD
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_SWELLOW,
+ .heldItem = BATTLE_TOWER_ITEM_SHARP_BEAK,
+ .teamFlags = 0x07,
+ .moves = {
+ MOVE_PECK,
+ MOVE_WING_ATTACK,
+ MOVE_AERIAL_ACE,
+ MOVE_AGILITY
+ },
+ .evSpread = F_EV_SPREAD_ATTACK,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_WALREIN,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_HAIL,
+ MOVE_ENCORE,
+ MOVE_ICE_BALL,
+ MOVE_TOXIC
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_SEAKING,
+ .heldItem = BATTLE_TOWER_ITEM_MYSTIC_WATER,
+ .teamFlags = 0x07,
+ .moves = {
+ MOVE_PECK,
+ MOVE_FLAIL,
+ MOVE_FURY_ATTACK,
+ MOVE_SURF
+ },
+ .evSpread = F_EV_SPREAD_SPEED,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_TORCHIC,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_FIRE_SPIN,
+ MOVE_PROTECT,
+ MOVE_SAND_ATTACK,
+ MOVE_SLASH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_MASQUERAIN,
+ .heldItem = BATTLE_TOWER_ITEM_WHITE_HERB,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_STUN_SPORE,
+ MOVE_WATER_SPORT,
+ MOVE_QUICK_ATTACK,
+ MOVE_GUST
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_IMPISH,
+ },
+ {
+ .species = SPECIES_ILLUMISE,
+ .heldItem = BATTLE_TOWER_ITEM_NONE,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_FLATTER,
+ MOVE_COVET,
+ MOVE_WISH,
+ MOVE_FACADE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_DELCATTY,
+ .heldItem = BATTLE_TOWER_ITEM_SILK_SCARF,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_ATTRACT,
+ MOVE_TAIL_WHIP,
+ MOVE_FAINT_ATTACK,
+ MOVE_DIG
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_LONELY,
+ },
+ {
+ .species = SPECIES_KECLEON,
+ .heldItem = BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_TAIL_WHIP,
+ MOVE_SLASH,
+ MOVE_LICK,
+ MOVE_SCREECH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_MIGHTYENA,
+ .heldItem = BATTLE_TOWER_ITEM_PECHA_BERRY,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_BITE,
+ MOVE_TAKE_DOWN,
+ MOVE_ROAR,
+ MOVE_HOWL
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_SLAKING,
+ .heldItem = BATTLE_TOWER_ITEM_BLACK_GLASSES,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_FAINT_ATTACK,
+ MOVE_COUNTER,
+ MOVE_SCRATCH,
+ MOVE_TAUNT
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_MACHOKE,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_LEER,
+ MOVE_DIG,
+ MOVE_LOW_KICK,
+ MOVE_FOCUS_PUNCH
+ },
+ .evSpread = F_EV_SPREAD_SPEED,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_RHYDON,
+ .heldItem = BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_STRENGTH,
+ MOVE_ROCK_TOMB,
+ MOVE_STOMP,
+ MOVE_ROCK_SMASH
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIRKY,
+ },
+ {
+ .species = SPECIES_CACTURNE,
+ .heldItem = BATTLE_TOWER_ITEM_POISON_BARB,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_POISON_STING,
+ MOVE_GROWTH,
+ MOVE_ABSORB,
+ MOVE_SOLAR_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_ZIGZAGOON,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_FLAIL,
+ MOVE_SAND_ATTACK,
+ MOVE_REST,
+ MOVE_SURF
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_DODRIO,
+ .heldItem = BATTLE_TOWER_ITEM_SHARP_BEAK,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_PURSUIT,
+ MOVE_TRI_ATTACK,
+ MOVE_GROWL,
+ MOVE_AGILITY
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_WHISCASH,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_WATER_GUN,
+ MOVE_AMNESIA,
+ MOVE_MAGNITUDE,
+ MOVE_MUD_SLAP
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_NINJASK,
+ .heldItem = BATTLE_TOWER_ITEM_SILVER_POWDER,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_SAND_ATTACK,
+ MOVE_FURY_CUTTER,
+ MOVE_AGILITY,
+ MOVE_HARDEN
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_DUSCLOPS,
+ .heldItem = BATTLE_TOWER_ITEM_PECHA_BERRY,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_PROTECT,
+ MOVE_NIGHT_SHADE,
+ MOVE_ASTONISH,
+ MOVE_WILL_O_WISP
+ },
+ .evSpread = F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_CAMERUPT,
+ .heldItem = BATTLE_TOWER_ITEM_CHARCOAL,
+ .teamFlags = 0x07,
+ .moves = {
+ MOVE_DIG,
+ MOVE_EMBER,
+ MOVE_GROWL,
+ MOVE_ROCK_SMASH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_BOLD,
+ },
+ {
+ .species = SPECIES_SPINDA,
+ .heldItem = BATTLE_TOWER_ITEM_CHERI_BERRY,
+ .teamFlags = 0x4A,
+ .moves = {
+ MOVE_TEETER_DANCE,
+ MOVE_FLAIL,
+ MOVE_PSYCH_UP,
+ MOVE_DOUBLE_EDGE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_CALM,
+ },
+ {
+ .species = SPECIES_SEVIPER,
+ .heldItem = BATTLE_TOWER_ITEM_POISON_BARB,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_SCREECH,
+ MOVE_GLARE,
+ MOVE_DIG,
+ MOVE_POISON_FANG
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_FLYGON,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x49,
+ .moves = {
+ MOVE_SAND_ATTACK,
+ MOVE_SAND_TOMB,
+ MOVE_FACADE,
+ MOVE_TOXIC
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_AZUMARILL,
+ .heldItem = BATTLE_TOWER_ITEM_WHITE_HERB,
+ .teamFlags = 0x42,
+ .moves = {
+ MOVE_BUBBLE_BEAM,
+ MOVE_TAIL_WHIP,
+ MOVE_RAIN_DANCE,
+ MOVE_ROLLOUT
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_ZANGOOSE,
+ .heldItem = BATTLE_TOWER_ITEM_MENTAL_HERB,
+ .teamFlags = 0x07,
+ .moves = {
+ MOVE_STRENGTH,
+ MOVE_TAUNT,
+ MOVE_CRUSH_CLAW,
+ MOVE_DETECT
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MEDICHAM,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x07,
+ .moves = {
+ MOVE_REVERSAL,
+ MOVE_MEDITATE,
+ MOVE_CONFUSION,
+ MOVE_FACADE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_ROSELIA,
+ .heldItem = BATTLE_TOWER_ITEM_MIRACLE_SEED,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_GROWTH,
+ MOVE_MEGA_DRAIN,
+ MOVE_TOXIC,
+ MOVE_CUT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_NAUGHTY,
+ },
+ {
+ .species = SPECIES_SWALOT,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_STOCKPILE,
+ MOVE_SPIT_UP,
+ MOVE_SLUDGE,
+ MOVE_POISON_GAS
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MAGNETON,
+ .heldItem = BATTLE_TOWER_ITEM_MAGNET,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_SUPERSONIC,
+ MOVE_THUNDER_WAVE,
+ MOVE_SCREECH,
+ MOVE_TRI_ATTACK
+ },
+ .evSpread = F_EV_SPREAD_SPEED,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_GARDEVOIR,
+ .heldItem = BATTLE_TOWER_ITEM_TWISTED_SPOON,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_CONFUSION,
+ MOVE_TOXIC,
+ MOVE_TORMENT,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_BOLD,
+ },
+ {
+ .species = SPECIES_RELICANTH,
+ .heldItem = BATTLE_TOWER_ITEM_MYSTIC_WATER,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_SURF,
+ MOVE_ANCIENT_POWER,
+ MOVE_ROCK_TOMB,
+ MOVE_HARDEN
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_NINETALES,
+ .heldItem = BATTLE_TOWER_ITEM_RAWST_BERRY,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_CONFUSE_RAY,
+ MOVE_FIRE_SPIN,
+ MOVE_QUICK_ATTACK,
+ MOVE_FLAMETHROWER
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_SHARPEDO,
+ .heldItem = BATTLE_TOWER_ITEM_BLACK_GLASSES,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_BITE,
+ MOVE_SKULL_BASH,
+ MOVE_RAIN_DANCE,
+ MOVE_SURF
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_GIRAFARIG,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_STRENGTH,
+ MOVE_PSYBEAM,
+ MOVE_AGILITY,
+ MOVE_EARTHQUAKE
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_IMPISH,
+ },
+ {
+ .species = SPECIES_PELIPPER,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_MIST,
+ MOVE_STOCKPILE,
+ MOVE_SWALLOW,
+ MOVE_SPIT_UP
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_QUIRKY,
+ },
+ {
+ .species = SPECIES_SABLEYE,
+ .heldItem = BATTLE_TOWER_ITEM_CHERI_BERRY,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_SHADOW_BALL,
+ MOVE_NIGHT_SHADE,
+ MOVE_SNATCH,
+ MOVE_FAKE_OUT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_LUNATONE,
+ .heldItem = BATTLE_TOWER_ITEM_HARD_STONE,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_COSMIC_POWER,
+ MOVE_SANDSTORM,
+ MOVE_PSYCHIC,
+ MOVE_ROCK_THROW
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_LUDICOLO,
+ .heldItem = BATTLE_TOWER_ITEM_NONE,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_THIEF,
+ MOVE_FAKE_OUT,
+ MOVE_SURF,
+ MOVE_RAIN_DANCE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_GRUMPIG,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_ODOR_SLEUTH,
+ MOVE_CONFUSE_RAY,
+ MOVE_MAGIC_COAT,
+ MOVE_PSYCHIC
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_BRELOOM,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_CUT,
+ MOVE_LEECH_SEED,
+ MOVE_MEGA_DRAIN,
+ MOVE_STUN_SPORE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_WAILORD,
+ .heldItem = BATTLE_TOWER_ITEM_MYSTIC_WATER,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_WATER_SPOUT,
+ MOVE_ROLLOUT,
+ MOVE_MIST,
+ MOVE_RAIN_DANCE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_WEEZING,
+ .heldItem = BATTLE_TOWER_ITEM_POISON_BARB,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_SMOG,
+ MOVE_SELF_DESTRUCT,
+ MOVE_TOXIC,
+ MOVE_SLUDGE_BOMB
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_BASHFUL,
+ },
+ {
+ .species = SPECIES_KADABRA,
+ .heldItem = BATTLE_TOWER_ITEM_LEPPA_BERRY,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_FUTURE_SIGHT,
+ MOVE_FOCUS_PUNCH,
+ MOVE_SKILL_SWAP,
+ MOVE_SNATCH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_MANECTRIC,
+ .heldItem = BATTLE_TOWER_ITEM_MAGNET,
+ .teamFlags = 0x07,
+ .moves = {
+ MOVE_THUNDER_WAVE,
+ MOVE_BITE,
+ MOVE_SPARK,
+ MOVE_QUICK_ATTACK
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_RASH,
+ },
+ {
+ .species = SPECIES_RAICHU,
+ .heldItem = BATTLE_TOWER_ITEM_ASPEAR_BERRY,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_QUICK_ATTACK,
+ MOVE_AGILITY,
+ MOVE_LIGHT_SCREEN,
+ MOVE_THUNDERBOLT
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_XATU,
+ .heldItem = BATTLE_TOWER_ITEM_TWISTED_SPOON,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_NIGHT_SHADE,
+ MOVE_PECK,
+ MOVE_CONFUSE_RAY,
+ MOVE_FUTURE_SIGHT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_LOUDRED,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_UPROAR,
+ MOVE_STOMP,
+ MOVE_SCREECH,
+ MOVE_EARTHQUAKE
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_MODEST,
+ },
+ {
+ .species = SPECIES_SOLROCK,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_ROCK_THROW,
+ MOVE_SUNNY_DAY,
+ MOVE_SOLAR_BEAM,
+ MOVE_SANDSTORM
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_MILD,
+ },
+ {
+ .species = SPECIES_CLAYDOL,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_SANDSTORM,
+ MOVE_REFLECT,
+ MOVE_ROCK_TOMB,
+ MOVE_STRENGTH
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_CRAWDAUNT,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_WATER_PULSE,
+ MOVE_KNOCK_OFF,
+ MOVE_HARDEN,
+ MOVE_CUT
+ },
+ .evSpread = F_EV_SPREAD_HP,
+ .nature = NATURE_JOLLY,
+ },
+ {
+ .species = SPECIES_GOLBAT,
+ .heldItem = BATTLE_TOWER_ITEM_WHITE_HERB,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_CONFUSE_RAY,
+ MOVE_WING_ATTACK,
+ MOVE_MEAN_LOOK,
+ MOVE_BITE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_BELLOSSOM,
+ .heldItem = BATTLE_TOWER_ITEM_MIRACLE_SEED,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_SOLAR_BEAM,
+ MOVE_PETAL_DANCE,
+ MOVE_SWEET_SCENT,
+ MOVE_BULLET_SEED
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_DONPHAN,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_ROCK_SMASH,
+ MOVE_RAPID_SPIN,
+ MOVE_FLAIL,
+ MOVE_HORN_ATTACK
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_IMPISH,
+ },
+ {
+ .species = SPECIES_NOSEPASS,
+ .heldItem = BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_SANDSTORM,
+ MOVE_ROCK_SLIDE,
+ MOVE_BLOCK,
+ MOVE_THUNDER_WAVE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_JOLLY,
+ },
+ {
+ .species = SPECIES_PINSIR,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_SWORDS_DANCE,
+ MOVE_HARDEN,
+ MOVE_CUT,
+ MOVE_SEISMIC_TOSS
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_GOLDUCK,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_DISABLE,
+ MOVE_PSYCH_UP,
+ MOVE_WATER_PULSE,
+ MOVE_BRICK_BREAK
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_SHIFTRY,
+ .heldItem = BATTLE_TOWER_ITEM_MENTAL_HERB,
+ .teamFlags = 0x07,
+ .moves = {
+ MOVE_TORMENT,
+ MOVE_EXTRASENSORY,
+ MOVE_SOLAR_BEAM,
+ MOVE_AERIAL_ACE
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_DUSTOX,
+ .heldItem = BATTLE_TOWER_ITEM_SILVER_POWDER,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_CONFUSION,
+ MOVE_SILVER_WIND,
+ MOVE_PSYBEAM,
+ MOVE_WHIRLWIND
+ },
+ .evSpread = F_EV_SPREAD_SPEED,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_SHUPPET,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_WILL_O_WISP,
+ MOVE_NIGHT_SHADE,
+ MOVE_FAINT_ATTACK,
+ MOVE_CURSE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_SEAKING,
+ .heldItem = BATTLE_TOWER_ITEM_MYSTIC_WATER,
+ .teamFlags = 0x07,
+ .moves = {
+ MOVE_RAIN_DANCE,
+ MOVE_SURF,
+ MOVE_HORN_ATTACK,
+ MOVE_HORN_DRILL
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE,
+ .nature = NATURE_LONELY,
+ },
+ {
+ .species = SPECIES_SKARMORY,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x07,
+ .moves = {
+ MOVE_STEEL_WING,
+ MOVE_SAND_ATTACK,
+ MOVE_SWIFT,
+ MOVE_AGILITY
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_TORKOAL,
+ .heldItem = BATTLE_TOWER_ITEM_FOCUS_BAND,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_FLAMETHROWER,
+ MOVE_IRON_DEFENSE,
+ MOVE_BODY_SLAM,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_NAUGHTY,
+ },
+ {
+ .species = SPECIES_GOLEM,
+ .heldItem = BATTLE_TOWER_ITEM_SOFT_SAND,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_MAGNITUDE,
+ MOVE_EXPLOSION,
+ MOVE_STRENGTH,
+ MOVE_SANDSTORM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_GARDEVOIR,
+ .heldItem = BATTLE_TOWER_ITEM_TWISTED_SPOON,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_REFLECT,
+ MOVE_PSYCHIC,
+ MOVE_IMPRISON,
+ MOVE_TOXIC
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_SANDSLASH,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x07,
+ .moves = {
+ MOVE_SANDSTORM,
+ MOVE_SLASH,
+ MOVE_EARTHQUAKE,
+ MOVE_SWIFT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_WOBBUFFET,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_COUNTER,
+ MOVE_MIRROR_COAT,
+ MOVE_SAFEGUARD,
+ MOVE_DESTINY_BOND
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_CALM,
+ },
+ {
+ .species = SPECIES_TENTACRUEL,
+ .heldItem = BATTLE_TOWER_ITEM_CHERI_BERRY,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_CONSTRICT,
+ MOVE_SURF,
+ MOVE_HYPER_BEAM,
+ MOVE_SCREECH
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_IMPISH,
+ },
+ {
+ .species = SPECIES_TROPIUS,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_SUNNY_DAY,
+ MOVE_SOLAR_BEAM,
+ MOVE_SYNTHESIS,
+ MOVE_RAZOR_LEAF
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_MAWILE,
+ .heldItem = BATTLE_TOWER_ITEM_METAL_COAT,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_IRON_DEFENSE,
+ MOVE_SLUDGE_BOMB,
+ MOVE_CRUNCH,
+ MOVE_STRENGTH
+ },
+ .evSpread = F_EV_SPREAD_ATTACK,
+ .nature = NATURE_CALM,
+ },
+ {
+ .species = SPECIES_MUK,
+ .heldItem = BATTLE_TOWER_ITEM_RAWST_BERRY,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_SLUDGE,
+ MOVE_ACID_ARMOR,
+ MOVE_GIGA_DRAIN,
+ MOVE_DISABLE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MAGCARGO,
+ .heldItem = BATTLE_TOWER_ITEM_CHARCOAL,
+ .teamFlags = 0x0D,
+ .moves = {
+ MOVE_FLAMETHROWER,
+ MOVE_ROCK_THROW,
+ MOVE_HARDEN,
+ MOVE_AMNESIA
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_NAUGHTY,
+ },
+ {
+ .species = SPECIES_LINOONE,
+ .heldItem = BATTLE_TOWER_ITEM_PECHA_BERRY,
+ .teamFlags = 0x07,
+ .moves = {
+ MOVE_HEADBUTT,
+ MOVE_TAIL_WHIP,
+ MOVE_SURF,
+ MOVE_DIG
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_QUIRKY,
+ },
+ {
+ .species = SPECIES_ELECTRODE,
+ .heldItem = BATTLE_TOWER_ITEM_ASPEAR_BERRY,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_LIGHT_SCREEN,
+ MOVE_THUNDERBOLT,
+ MOVE_SWIFT,
+ MOVE_ROLLOUT
+ },
+ .evSpread = F_EV_SPREAD_SPEED,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_DUSCLOPS,
+ .heldItem = BATTLE_TOWER_ITEM_SPELL_TAG,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_MEAN_LOOK,
+ MOVE_NIGHT_SHADE,
+ MOVE_SKILL_SWAP,
+ MOVE_SHADOW_BALL
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_VILEPLUME,
+ .heldItem = BATTLE_TOWER_ITEM_MIRACLE_SEED,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_TOXIC,
+ MOVE_MOONLIGHT,
+ MOVE_GIGA_DRAIN,
+ MOVE_STUN_SPORE
+ },
+ .evSpread = F_EV_SPREAD_HP,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_CROBAT,
+ .heldItem = BATTLE_TOWER_ITEM_LEPPA_BERRY,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_BITE,
+ MOVE_HAZE,
+ MOVE_WING_ATTACK,
+ MOVE_STEEL_WING
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_CORSOLA,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_RECOVER,
+ MOVE_MIRROR_COAT,
+ MOVE_HAIL,
+ MOVE_SURF
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_STARMIE,
+ .heldItem = BATTLE_TOWER_ITEM_MYSTIC_WATER,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_RAPID_SPIN,
+ MOVE_WATER_PULSE,
+ MOVE_REFLECT,
+ MOVE_SKILL_SWAP
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_EXPLOUD,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_HYPER_BEAM,
+ MOVE_HOWL,
+ MOVE_UPROAR,
+ MOVE_EARTHQUAKE
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = BATTLE_TOWER_ITEM_TWISTED_SPOON,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_PSYBEAM,
+ MOVE_SNATCH,
+ MOVE_REFLECT,
+ MOVE_HYPER_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_HERACROSS,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_HORN_ATTACK,
+ MOVE_COUNTER,
+ MOVE_REVERSAL,
+ MOVE_LEER
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_BOLD,
+ },
+ {
+ .species = SPECIES_CASTFORM,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_WEATHER_BALL,
+ MOVE_SUNNY_DAY,
+ MOVE_RAIN_DANCE,
+ MOVE_HAIL
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_VIGOROTH,
+ .heldItem = BATTLE_TOWER_ITEM_FOCUS_BAND,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_FOCUS_PUNCH,
+ MOVE_REVERSAL,
+ MOVE_COUNTER,
+ MOVE_TAUNT
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_DUSKULL,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_TOXIC,
+ MOVE_CONFUSE_RAY,
+ MOVE_SHADOW_BALL,
+ MOVE_WILL_O_WISP
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_LANTURN,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x07,
+ .moves = {
+ MOVE_FLAIL,
+ MOVE_SURF,
+ MOVE_SPARK,
+ MOVE_TAKE_DOWN
+ },
+ .evSpread = F_EV_SPREAD_SPEED,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_HARIYAMA,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_STRENGTH,
+ MOVE_FAKE_OUT,
+ MOVE_FACADE,
+ MOVE_SAND_ATTACK
+ },
+ .evSpread = F_EV_SPREAD_SPEED,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_KINGDRA,
+ .heldItem = BATTLE_TOWER_ITEM_MYSTIC_WATER,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_AGILITY,
+ MOVE_DIVE,
+ MOVE_ICE_BEAM,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_GYARADOS,
+ .heldItem = BATTLE_TOWER_ITEM_DRAGON_FANG,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_RAIN_DANCE,
+ MOVE_SURF,
+ MOVE_WATER_PULSE,
+ MOVE_HYPER_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_IMPISH,
+ },
+ {
+ .species = SPECIES_AGGRON,
+ .heldItem = BATTLE_TOWER_ITEM_METAL_COAT,
+ .teamFlags = 0x45,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_BRICK_BREAK,
+ MOVE_METAL_CLAW,
+ MOVE_ROAR
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_ABSOL,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0xC7,
+ .moves = {
+ MOVE_SWORDS_DANCE,
+ MOVE_IRON_TAIL,
+ MOVE_SLASH,
+ MOVE_FACADE
+ },
+ .evSpread = F_EV_SPREAD_ATTACK,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_SWELLOW,
+ .heldItem = BATTLE_TOWER_ITEM_SHARP_BEAK,
+ .teamFlags = 0x0F,
+ .moves = {
+ MOVE_DOUBLE_TEAM,
+ MOVE_FLY,
+ MOVE_TOXIC,
+ MOVE_STEEL_WING
+ },
+ .evSpread = 0,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_MACHAMP,
+ .heldItem = BATTLE_TOWER_ITEM_BLACK_BELT,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_STRENGTH,
+ MOVE_CROSS_CHOP,
+ MOVE_EARTHQUAKE,
+ MOVE_FLAMETHROWER
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_SWAMPERT,
+ .heldItem = BATTLE_TOWER_ITEM_NEVER_MELT_ICE,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_PROTECT,
+ MOVE_ICE_BEAM,
+ MOVE_HYPER_BEAM,
+ MOVE_SURF
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_SCEPTILE,
+ .heldItem = BATTLE_TOWER_ITEM_MIRACLE_SEED,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_LEAF_BLADE,
+ MOVE_DRAGON_CLAW,
+ MOVE_AGILITY,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_BLAZIKEN,
+ .heldItem = BATTLE_TOWER_ITEM_CHARCOAL,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_BLAZE_KICK,
+ MOVE_MIRROR_MOVE,
+ MOVE_EARTHQUAKE,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_ALTARIA,
+ .heldItem = BATTLE_TOWER_ITEM_DRAGON_FANG,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_DRAGON_CLAW,
+ MOVE_DRAGON_DANCE,
+ MOVE_TOXIC,
+ MOVE_DOUBLE_TEAM
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_LUDICOLO,
+ .heldItem = BATTLE_TOWER_ITEM_BLACK_BELT,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_BRICK_BREAK,
+ MOVE_WATER_PULSE,
+ MOVE_RAIN_DANCE,
+ MOVE_FOCUS_PUNCH
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_SABLEYE,
+ .heldItem = BATTLE_TOWER_ITEM_SPELL_TAG,
+ .teamFlags = 0x49,
+ .moves = {
+ MOVE_SHADOW_BALL,
+ MOVE_SNATCH,
+ MOVE_DIG,
+ MOVE_CONFUSE_RAY
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_ZANGOOSE,
+ .heldItem = BATTLE_TOWER_ITEM_BLACK_GLASSES,
+ .teamFlags = 0x0F,
+ .moves = {
+ MOVE_FACADE,
+ MOVE_THUNDERBOLT,
+ MOVE_CRUSH_CLAW,
+ MOVE_DETECT
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_CALM,
+ },
+ {
+ .species = SPECIES_LINOONE,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x0F,
+ .moves = {
+ MOVE_IRON_TAIL,
+ MOVE_HEADBUTT,
+ MOVE_ATTRACT,
+ MOVE_ICE_BEAM
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WHISCASH,
+ .heldItem = BATTLE_TOWER_ITEM_SOFT_SAND,
+ .teamFlags = 0x07,
+ .moves = {
+ MOVE_MUD_SLAP,
+ MOVE_EARTHQUAKE,
+ MOVE_SURF,
+ MOVE_AMNESIA
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_BOLD,
+ },
+ {
+ .species = SPECIES_SOLROCK,
+ .heldItem = BATTLE_TOWER_ITEM_HARD_STONE,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_LIGHT_SCREEN,
+ MOVE_ROCK_SLIDE,
+ MOVE_CONFUSION
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_BASHFUL,
+ },
+ {
+ .species = SPECIES_STARMIE,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_RECOVER,
+ MOVE_RAIN_DANCE,
+ MOVE_SURF,
+ MOVE_CONFUSE_RAY
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_CACTURNE,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x0F,
+ .moves = {
+ MOVE_INGRAIN,
+ MOVE_LEECH_SEED,
+ MOVE_PROTECT,
+ MOVE_FRUSTRATION
+ },
+ .evSpread = 0,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_SHIFTRY,
+ .heldItem = BATTLE_TOWER_ITEM_FOCUS_BAND,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_FRUSTRATION,
+ MOVE_HYPER_BEAM,
+ MOVE_GIGA_DRAIN,
+ MOVE_TORMENT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_MANECTRIC,
+ .heldItem = BATTLE_TOWER_ITEM_MAGNET,
+ .teamFlags = 0x0F,
+ .moves = {
+ MOVE_THUNDER,
+ MOVE_THUNDER_WAVE,
+ MOVE_IRON_TAIL,
+ MOVE_ROAR
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_KECLEON,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0xC3,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_FOCUS_PUNCH,
+ MOVE_IRON_TAIL,
+ MOVE_FLAMETHROWER
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_PINSIR,
+ .heldItem = BATTLE_TOWER_ITEM_SOFT_SAND,
+ .teamFlags = 0x8D,
+ .moves = {
+ MOVE_GUILLOTINE,
+ MOVE_SUBMISSION,
+ MOVE_EARTHQUAKE,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_METANG,
+ .heldItem = BATTLE_TOWER_ITEM_METAL_COAT,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_SHADOW_BALL,
+ MOVE_PSYCHIC,
+ MOVE_METEOR_MASH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_IMPISH,
+ },
+ {
+ .species = SPECIES_CLAYDOL,
+ .heldItem = BATTLE_TOWER_ITEM_PECHA_BERRY,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_SELF_DESTRUCT,
+ MOVE_SANDSTORM,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_MASQUERAIN,
+ .heldItem = BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_TOXIC,
+ MOVE_SILVER_WIND,
+ MOVE_ATTRACT,
+ MOVE_ICE_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_RELICANTH,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0xC5,
+ .moves = {
+ MOVE_ROCK_TOMB,
+ MOVE_DOUBLE_EDGE,
+ MOVE_SURF,
+ MOVE_EARTHQUAKE
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WALREIN,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x0D,
+ .moves = {
+ MOVE_SURF,
+ MOVE_ENCORE,
+ MOVE_BLIZZARD,
+ MOVE_HYPER_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WAILORD,
+ .heldItem = BATTLE_TOWER_ITEM_APICOT_BERRY,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_WATER_SPOUT,
+ MOVE_REST,
+ MOVE_AMNESIA,
+ MOVE_HAIL
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_GIRAFARIG,
+ .heldItem = BATTLE_TOWER_ITEM_GANLON_BERRY,
+ .teamFlags = 0x4F,
+ .moves = {
+ MOVE_DOUBLE_TEAM,
+ MOVE_CRUNCH,
+ MOVE_PSYCHIC,
+ MOVE_EARTHQUAKE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MEDICHAM,
+ .heldItem = BATTLE_TOWER_ITEM_APICOT_BERRY,
+ .teamFlags = 0x4B,
+ .moves = {
+ MOVE_CALM_MIND,
+ MOVE_REVERSAL,
+ MOVE_ROCK_TOMB,
+ MOVE_PSYCHIC
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_TROPIUS,
+ .heldItem = BATTLE_TOWER_ITEM_MENTAL_HERB,
+ .teamFlags = 0xC7,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_SYNTHESIS,
+ MOVE_RAZOR_LEAF,
+ MOVE_HYPER_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_BOLD,
+ },
+ {
+ .species = SPECIES_NINJASK,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_DOUBLE_TEAM,
+ MOVE_SLASH,
+ MOVE_SWORDS_DANCE,
+ MOVE_LEECH_LIFE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_CAMERUPT,
+ .heldItem = BATTLE_TOWER_ITEM_CHARCOAL,
+ .teamFlags = 0x0D,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_OVERHEAT,
+ MOVE_SUNNY_DAY,
+ MOVE_ROCK_SLIDE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_SHARPEDO,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_CRUNCH,
+ MOVE_SURF,
+ MOVE_EARTHQUAKE,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WIGGLYTUFF,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x0E,
+ .moves = {
+ MOVE_PROTECT,
+ MOVE_TOXIC,
+ MOVE_DOUBLE_TEAM,
+ MOVE_DIG
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_SEVIPER,
+ .heldItem = BATTLE_TOWER_ITEM_POISON_BARB,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_SLUDGE_BOMB,
+ MOVE_HAZE,
+ MOVE_CRUNCH,
+ MOVE_FLAMETHROWER
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_CRADILY,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0xC1,
+ .moves = {
+ MOVE_ROCK_TOMB,
+ MOVE_CONFUSE_RAY,
+ MOVE_INGRAIN,
+ MOVE_EARTHQUAKE
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_ARMALDO,
+ .heldItem = BATTLE_TOWER_ITEM_RAWST_BERRY,
+ .teamFlags = 0xC1,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_SANDSTORM,
+ MOVE_PROTECT,
+ MOVE_SLASH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MAGNETON,
+ .heldItem = BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ .teamFlags = 0x0D,
+ .moves = {
+ MOVE_ZAP_CANNON,
+ MOVE_SUPERSONIC,
+ MOVE_TOXIC,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_LANTURN,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x06,
+ .moves = {
+ MOVE_THUNDER,
+ MOVE_SURF,
+ MOVE_ICE_BEAM,
+ MOVE_RAIN_DANCE
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_SWALOT,
+ .heldItem = BATTLE_TOWER_ITEM_CHERI_BERRY,
+ .teamFlags = 0x8B,
+ .moves = {
+ MOVE_SLUDGE_BOMB,
+ MOVE_SNATCH,
+ MOVE_ENCORE,
+ MOVE_BODY_SLAM
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_SKARMORY,
+ .heldItem = BATTLE_TOWER_ITEM_METAL_COAT,
+ .teamFlags = 0x81,
+ .moves = {
+ MOVE_STEEL_WING,
+ MOVE_AGILITY,
+ MOVE_TORMENT,
+ MOVE_FACADE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_DONPHAN,
+ .heldItem = BATTLE_TOWER_ITEM_WHITE_HERB,
+ .teamFlags = 0x0D,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_FLAIL,
+ MOVE_ROAR,
+ MOVE_IRON_TAIL
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_HERACROSS,
+ .heldItem = BATTLE_TOWER_ITEM_FOCUS_BAND,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_FACADE,
+ MOVE_REVERSAL,
+ MOVE_MEGAHORN,
+ MOVE_EARTHQUAKE
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_BANETTE,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x83,
+ .moves = {
+ MOVE_SHADOW_BALL,
+ MOVE_HYPER_BEAM,
+ MOVE_THUNDERBOLT,
+ MOVE_SKILL_SWAP
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_SANDSLASH,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x0F,
+ .moves = {
+ MOVE_SANDSTORM,
+ MOVE_TOXIC,
+ MOVE_SLASH,
+ MOVE_EARTHQUAKE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_CRAWDAUNT,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_GUILLOTINE,
+ MOVE_CRABHAMMER,
+ MOVE_BLIZZARD,
+ MOVE_SLUDGE_BOMB
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_GRUMPIG,
+ .heldItem = BATTLE_TOWER_ITEM_TWISTED_SPOON,
+ .teamFlags = 0x8B,
+ .moves = {
+ MOVE_MAGIC_COAT,
+ MOVE_PSYCHIC,
+ MOVE_REFLECT,
+ MOVE_CONFUSE_RAY
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_LONELY,
+ },
+ {
+ .species = SPECIES_RHYDON,
+ .heldItem = BATTLE_TOWER_ITEM_CHOICE_BAND,
+ .teamFlags = 0x45,
+ .moves = {
+ MOVE_IRON_TAIL,
+ MOVE_EARTHQUAKE,
+ MOVE_SURF,
+ MOVE_FIRE_BLAST
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_RASH,
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x8B,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_REFLECT,
+ MOVE_RECOVER,
+ MOVE_SKILL_SWAP
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_DUSCLOPS,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_SHADOW_BALL,
+ MOVE_WILL_O_WISP,
+ MOVE_BLIZZARD,
+ MOVE_PSYCHIC
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_TORKOAL,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_FLAMETHROWER,
+ MOVE_AMNESIA,
+ MOVE_IRON_TAIL,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_ELECTRODE,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_SCREECH,
+ MOVE_EXPLOSION,
+ MOVE_MIRROR_COAT,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_RASH,
+ },
+ {
+ .species = SPECIES_BRELOOM,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_IRON_TAIL,
+ MOVE_FOCUS_PUNCH,
+ MOVE_DOUBLE_TEAM,
+ MOVE_LEECH_SEED
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_MUK,
+ .heldItem = BATTLE_TOWER_ITEM_POISON_BARB,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_SLUDGE_BOMB,
+ MOVE_THUNDERBOLT,
+ MOVE_FLAMETHROWER,
+ MOVE_FOCUS_PUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_WEEZING,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_EXPLOSION,
+ MOVE_SLUDGE_BOMB,
+ MOVE_SHADOW_BALL,
+ MOVE_FLAMETHROWER
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_RAICHU,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x4E,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_DOUBLE_TEAM,
+ MOVE_FOCUS_PUNCH,
+ MOVE_ATTRACT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_JOLLY,
+ },
+ {
+ .species = SPECIES_TENTACRUEL,
+ .heldItem = BATTLE_TOWER_ITEM_MYSTIC_WATER,
+ .teamFlags = 0x09,
+ .moves = {
+ MOVE_DOUBLE_TEAM,
+ MOVE_TOXIC,
+ MOVE_SURF,
+ MOVE_SLUDGE_BOMB
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_BOLD,
+ },
+ {
+ .species = SPECIES_EXPLOUD,
+ .heldItem = BATTLE_TOWER_ITEM_CHOICE_BAND,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_BLIZZARD,
+ MOVE_FLAMETHROWER,
+ MOVE_EARTHQUAKE,
+ MOVE_RETURN
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_BASHFUL,
+ },
+ {
+ .species = SPECIES_XATU,
+ .heldItem = BATTLE_TOWER_ITEM_WHITE_HERB,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_REST,
+ MOVE_CONFUSE_RAY,
+ MOVE_TOXIC
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_GOLEM,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_EXPLOSION,
+ MOVE_EARTHQUAKE,
+ MOVE_ROCK_TOMB,
+ MOVE_FLAMETHROWER
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_IMPISH,
+ },
+ {
+ .species = SPECIES_GOLDUCK,
+ .heldItem = BATTLE_TOWER_ITEM_PECHA_BERRY,
+ .teamFlags = 0x83,
+ .moves = {
+ MOVE_SURF,
+ MOVE_ATTRACT,
+ MOVE_CALM_MIND,
+ MOVE_BLIZZARD
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_NINETALES,
+ .heldItem = BATTLE_TOWER_ITEM_CHARCOAL,
+ .teamFlags = 0x4A,
+ .moves = {
+ MOVE_FLAMETHROWER,
+ MOVE_ATTRACT,
+ MOVE_TOXIC,
+ MOVE_CONFUSE_RAY
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_KINGDRA,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x13,
+ .moves = {
+ MOVE_DOUBLE_TEAM,
+ MOVE_REST,
+ MOVE_SURF,
+ MOVE_DRAGON_BREATH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_SLAKING,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_CURSE,
+ MOVE_AMNESIA,
+ MOVE_YAWN,
+ MOVE_FOCUS_PUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_GYARADOS,
+ .heldItem = BATTLE_TOWER_ITEM_CHERI_BERRY,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_THUNDER,
+ MOVE_EARTHQUAKE,
+ MOVE_HYDRO_PUMP,
+ MOVE_RAIN_DANCE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
+ .nature = NATURE_NAUGHTY,
+ },
+ {
+ .species = SPECIES_HARIYAMA,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x21,
+ .moves = {
+ MOVE_BELLY_DRUM,
+ MOVE_ENDURE,
+ MOVE_EARTHQUAKE,
+ MOVE_REVERSAL
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_ABSOL,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0xC3,
+ .moves = {
+ MOVE_FAINT_ATTACK,
+ MOVE_DOUBLE_EDGE,
+ MOVE_SHADOW_BALL,
+ MOVE_FLAMETHROWER
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_ALTARIA,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x83,
+ .moves = {
+ MOVE_DRAGON_DANCE,
+ MOVE_MIRROR_MOVE,
+ MOVE_DRAGON_CLAW,
+ MOVE_EARTHQUAKE
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_RASH,
+ },
+ {
+ .species = SPECIES_MACHAMP,
+ .heldItem = BATTLE_TOWER_ITEM_BLACK_BELT,
+ .teamFlags = 0x11,
+ .moves = {
+ MOVE_CROSS_CHOP,
+ MOVE_FOCUS_PUNCH,
+ MOVE_ROCK_TOMB,
+ MOVE_ENCORE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_FLYGON,
+ .heldItem = BATTLE_TOWER_ITEM_DRAGON_FANG,
+ .teamFlags = 0x43,
+ .moves = {
+ MOVE_CRUNCH,
+ MOVE_DRAGON_CLAW,
+ MOVE_EARTHQUAKE,
+ MOVE_FLAMETHROWER
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_BLAZIKEN,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x33,
+ .moves = {
+ MOVE_COUNTER,
+ MOVE_ROCK_SLIDE,
+ MOVE_FOCUS_PUNCH,
+ MOVE_FLAMETHROWER
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_GLALIE,
+ .heldItem = BATTLE_TOWER_ITEM_NEVER_MELT_ICE,
+ .teamFlags = 0x81,
+ .moves = {
+ MOVE_BLIZZARD,
+ MOVE_CRUNCH,
+ MOVE_ICY_WIND,
+ MOVE_DOUBLE_TEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_JOLLY,
+ },
+ {
+ .species = SPECIES_HUNTAIL,
+ .heldItem = BATTLE_TOWER_ITEM_MYSTIC_WATER,
+ .teamFlags = 0xA1,
+ .moves = {
+ MOVE_RAIN_DANCE,
+ MOVE_HYDRO_PUMP,
+ MOVE_CRUNCH,
+ MOVE_BLIZZARD
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_MILOTIC,
+ .heldItem = BATTLE_TOWER_ITEM_GANLON_BERRY,
+ .teamFlags = 0xD3,
+ .moves = {
+ MOVE_SURF,
+ MOVE_ATTRACT,
+ MOVE_RECOVER,
+ MOVE_TOXIC
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_GOREBYSS,
+ .heldItem = BATTLE_TOWER_ITEM_PECHA_BERRY,
+ .teamFlags = 0x83,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_SURF,
+ MOVE_BLIZZARD,
+ MOVE_SHADOW_BALL
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_SCEPTILE,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x53,
+ .moves = {
+ MOVE_LEAF_BLADE,
+ MOVE_ENDEAVOR,
+ MOVE_EARTHQUAKE,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED,
+ .nature = NATURE_BASHFUL,
+ },
+ {
+ .species = SPECIES_SWAMPERT,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x53,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_SURF,
+ MOVE_MUD_SHOT,
+ MOVE_BLIZZARD
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_AGGRON,
+ .heldItem = BATTLE_TOWER_ITEM_MENTAL_HERB,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_DOUBLE_EDGE,
+ MOVE_FLAMETHROWER,
+ MOVE_IRON_TAIL,
+ MOVE_BLIZZARD
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_BOLD,
+ },
+ {
+ .species = SPECIES_CRADILY,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0xE1,
+ .moves = {
+ MOVE_STOCKPILE,
+ MOVE_SPIT_UP,
+ MOVE_SWALLOW,
+ MOVE_DOUBLE_TEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_ARMALDO,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0xC1,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_HYPER_BEAM,
+ MOVE_SLASH,
+ MOVE_SWORDS_DANCE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_BRELOOM,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x82,
+ .moves = {
+ MOVE_FOCUS_PUNCH,
+ MOVE_COUNTER,
+ MOVE_MACH_PUNCH,
+ MOVE_SNATCH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_LUDICOLO,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x83,
+ .moves = {
+ MOVE_RAIN_DANCE,
+ MOVE_SURF,
+ MOVE_PROTECT,
+ MOVE_TOXIC
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_SHIFTRY,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_TORMENT,
+ MOVE_FAINT_ATTACK,
+ MOVE_SHADOW_BALL,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_TROPIUS,
+ .heldItem = BATTLE_TOWER_ITEM_APICOT_BERRY,
+ .teamFlags = 0xC3,
+ .moves = {
+ MOVE_SUNNY_DAY,
+ MOVE_SYNTHESIS,
+ MOVE_SOLAR_BEAM,
+ MOVE_LEECH_SEED
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_GRUMPIG,
+ .heldItem = BATTLE_TOWER_ITEM_MACHO_BRACE,
+ .teamFlags = 0x23,
+ .moves = {
+ MOVE_TRICK,
+ MOVE_SKILL_SWAP,
+ MOVE_PSYCHIC,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_TORKOAL,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x81,
+ .moves = {
+ MOVE_IRON_DEFENSE,
+ MOVE_TOXIC,
+ MOVE_REST,
+ MOVE_FLAMETHROWER
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_MANECTRIC,
+ .heldItem = BATTLE_TOWER_ITEM_NONE,
+ .teamFlags = 0x03,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_CRUNCH,
+ MOVE_ROAR,
+ MOVE_THIEF
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_PINSIR,
+ .heldItem = BATTLE_TOWER_ITEM_LEPPA_BERRY,
+ .teamFlags = 0x61,
+ .moves = {
+ MOVE_GUILLOTINE,
+ MOVE_EARTHQUAKE,
+ MOVE_DOUBLE_TEAM,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_STARMIE,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x93,
+ .moves = {
+ MOVE_LIGHT_SCREEN,
+ MOVE_THUNDERBOLT,
+ MOVE_SURF,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_HERACROSS,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x51,
+ .moves = {
+ MOVE_MEGAHORN,
+ MOVE_REVERSAL,
+ MOVE_EARTHQUAKE,
+ MOVE_COUNTER
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WALREIN,
+ .heldItem = BATTLE_TOWER_ITEM_NEVER_MELT_ICE,
+ .teamFlags = 0x83,
+ .moves = {
+ MOVE_BLIZZARD,
+ MOVE_EARTHQUAKE,
+ MOVE_SURF,
+ MOVE_ROCK_SLIDE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x13,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_RECOVER,
+ MOVE_ENCORE,
+ MOVE_SNATCH
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_MILOTIC,
+ .heldItem = BATTLE_TOWER_ITEM_APICOT_BERRY,
+ .teamFlags = 0x93,
+ .moves = {
+ MOVE_SURF,
+ MOVE_BLIZZARD,
+ MOVE_RECOVER,
+ MOVE_DOUBLE_TEAM
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_REGICE,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x11,
+ .moves = {
+ MOVE_REST,
+ MOVE_CURSE,
+ MOVE_BLIZZARD,
+ MOVE_EARTHQUAKE
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_MILD,
+ },
+ {
+ .species = SPECIES_REGISTEEL,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x11,
+ .moves = {
+ MOVE_REST,
+ MOVE_IRON_DEFENSE,
+ MOVE_THUNDERBOLT,
+ MOVE_EARTHQUAKE
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_MILD,
+ },
+ {
+ .species = SPECIES_REGIROCK,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x91,
+ .moves = {
+ MOVE_ROCK_TOMB,
+ MOVE_EARTHQUAKE,
+ MOVE_THUNDERBOLT,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_DUSCLOPS,
+ .heldItem = BATTLE_TOWER_ITEM_SPELL_TAG,
+ .teamFlags = 0x20,
+ .moves = {
+ MOVE_SHADOW_BALL,
+ MOVE_EARTHQUAKE,
+ MOVE_BLIZZARD,
+ MOVE_DESTINY_BOND
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_NAUGHTY,
+ },
+ {
+ .species = SPECIES_SEAKING,
+ .heldItem = BATTLE_TOWER_ITEM_LEPPA_BERRY,
+ .teamFlags = 0xB2,
+ .moves = {
+ MOVE_HORN_DRILL,
+ MOVE_AGILITY,
+ MOVE_SLEEP_TALK,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_CAMERUPT,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x00,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_ERUPTION,
+ MOVE_ROCK_SLIDE,
+ MOVE_FLAMETHROWER
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_LANTURN,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x82,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_SURF,
+ MOVE_THUNDER_WAVE,
+ MOVE_BLIZZARD
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_WEEZING,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x20,
+ .moves = {
+ MOVE_SLUDGE_BOMB,
+ MOVE_THUNDERBOLT,
+ MOVE_FIRE_BLAST,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_WHISCASH,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x41,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_SURF,
+ MOVE_ROCK_TOMB,
+ MOVE_ATTRACT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_AGGRON,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x11,
+ .moves = {
+ MOVE_DOUBLE_EDGE,
+ MOVE_EARTHQUAKE,
+ MOVE_SURF,
+ MOVE_DRAGON_CLAW
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_CACTURNE,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x63,
+ .moves = {
+ MOVE_DYNAMIC_PUNCH,
+ MOVE_COUNTER,
+ MOVE_FAINT_ATTACK,
+ MOVE_GIGA_DRAIN
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_SHARPEDO,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x01,
+ .moves = {
+ MOVE_CRUNCH,
+ MOVE_DOUBLE_EDGE,
+ MOVE_SURF,
+ MOVE_SWAGGER
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_ABSOL,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x82,
+ .moves = {
+ MOVE_DOUBLE_EDGE,
+ MOVE_FACADE,
+ MOVE_SWORDS_DANCE,
+ MOVE_QUICK_ATTACK
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WAILORD,
+ .heldItem = BATTLE_TOWER_ITEM_LEPPA_BERRY,
+ .teamFlags = 0x23,
+ .moves = {
+ MOVE_HYDRO_PUMP,
+ MOVE_EARTHQUAKE,
+ MOVE_ATTRACT,
+ MOVE_FISSURE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_TENTACRUEL,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x21,
+ .moves = {
+ MOVE_HYDRO_PUMP,
+ MOVE_SLUDGE_BOMB,
+ MOVE_GIGA_DRAIN,
+ MOVE_MIRROR_COAT
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_RASH,
+ },
+ {
+ .species = SPECIES_LUDICOLO,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0xA2,
+ .moves = {
+ MOVE_RAIN_DANCE,
+ MOVE_SURF,
+ MOVE_TOXIC,
+ MOVE_DOUBLE_TEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WOBBUFFET,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x23,
+ .moves = {
+ MOVE_ENCORE,
+ MOVE_COUNTER,
+ MOVE_MIRROR_COAT,
+ MOVE_DESTINY_BOND
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_RHYDON,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x21,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_MEGAHORN,
+ MOVE_HORN_DRILL,
+ MOVE_ROCK_SLIDE
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_GLALIE,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x21,
+ .moves = {
+ MOVE_CRUNCH,
+ MOVE_BLIZZARD,
+ MOVE_HAIL,
+ MOVE_EARTHQUAKE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_SCEPTILE,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x13,
+ .moves = {
+ MOVE_LEAF_BLADE,
+ MOVE_EARTHQUAKE,
+ MOVE_DRAGON_CLAW,
+ MOVE_CRUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_BLAZIKEN,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x17,
+ .moves = {
+ MOVE_BLAZE_KICK,
+ MOVE_ROCK_TOMB,
+ MOVE_ENDURE,
+ MOVE_REVERSAL
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_RASH,
+ },
+ {
+ .species = SPECIES_SWAMPERT,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x17,
+ .moves = {
+ MOVE_SURF,
+ MOVE_EARTHQUAKE,
+ MOVE_MUD_SHOT,
+ MOVE_BLIZZARD
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_GARDEVOIR,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x19,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_THUNDERBOLT,
+ MOVE_DESTINY_BOND,
+ MOVE_WILL_O_WISP
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_BRELOOM,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0xF6,
+ .moves = {
+ MOVE_SPORE,
+ MOVE_FOCUS_PUNCH,
+ MOVE_BRICK_BREAK,
+ MOVE_SLUDGE_BOMB
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = BATTLE_TOWER_ITEM_GANLON_BERRY,
+ .teamFlags = 0x1B,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_THUNDER_PUNCH,
+ MOVE_REFLECT,
+ MOVE_RECOVER
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_SHIFTRY,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x89,
+ .moves = {
+ MOVE_FAINT_ATTACK,
+ MOVE_SHADOW_BALL,
+ MOVE_DOUBLE_TEAM,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_HARIYAMA,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x85,
+ .moves = {
+ MOVE_CROSS_CHOP,
+ MOVE_EARTHQUAKE,
+ MOVE_FACADE,
+ MOVE_FAKE_OUT
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_CROBAT,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x49,
+ .moves = {
+ MOVE_ATTRACT,
+ MOVE_CONFUSE_RAY,
+ MOVE_BITE,
+ MOVE_DOUBLE_TEAM
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_MACHAMP,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x15,
+ .moves = {
+ MOVE_CROSS_CHOP,
+ MOVE_FLAMETHROWER,
+ MOVE_EARTHQUAKE,
+ MOVE_ROCK_SLIDE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MANECTRIC,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x0B,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_THUNDER_WAVE,
+ MOVE_ROAR,
+ MOVE_CRUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_ELECTRODE,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x27,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_PROTECT,
+ MOVE_MIRROR_COAT,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_BASHFUL,
+ },
+ {
+ .species = SPECIES_MUK,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_SLUDGE_BOMB,
+ MOVE_FLAMETHROWER,
+ MOVE_THUNDERBOLT,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_FLYGON,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x4D,
+ .moves = {
+ MOVE_DRAGON_CLAW,
+ MOVE_EARTHQUAKE,
+ MOVE_FLAMETHROWER,
+ MOVE_CRUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_STARMIE,
+ .heldItem = BATTLE_TOWER_ITEM_APICOT_BERRY,
+ .teamFlags = 0x1B,
+ .moves = {
+ MOVE_SURF,
+ MOVE_THUNDERBOLT,
+ MOVE_RECOVER,
+ MOVE_CONFUSE_RAY
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_DODRIO,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x2B,
+ .moves = {
+ MOVE_DRILL_PECK,
+ MOVE_TRI_ATTACK,
+ MOVE_AGILITY,
+ MOVE_FACADE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_RAICHU,
+ .heldItem = BATTLE_TOWER_ITEM_FOCUS_BAND,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_THUNDER_WAVE,
+ MOVE_REVERSAL,
+ MOVE_ATTRACT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_GOLDUCK,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_SURF,
+ MOVE_CROSS_CHOP,
+ MOVE_ICE_BEAM,
+ MOVE_HYPER_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_HERACROSS,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x54,
+ .moves = {
+ MOVE_MEGAHORN,
+ MOVE_ROCK_TOMB,
+ MOVE_ENDURE,
+ MOVE_REVERSAL
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_WALREIN,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x06,
+ .moves = {
+ MOVE_SURF,
+ MOVE_ICE_BEAM,
+ MOVE_EARTHQUAKE,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_NAIVE,
+ },
+ {
+ .species = SPECIES_KINGDRA,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x1D,
+ .moves = {
+ MOVE_SURF,
+ MOVE_TOXIC,
+ MOVE_PROTECT,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_SALAMENCE,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x9C,
+ .moves = {
+ MOVE_DRAGON_CLAW,
+ MOVE_EARTHQUAKE,
+ MOVE_CRUNCH,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_METAGROSS,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x15,
+ .moves = {
+ MOVE_METEOR_MASH,
+ MOVE_PSYCHIC,
+ MOVE_EARTHQUAKE,
+ MOVE_LIGHT_SCREEN
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_REGIROCK,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0xB5,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_ANCIENT_POWER,
+ MOVE_FOCUS_PUNCH,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_REGICE,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x96,
+ .moves = {
+ MOVE_ICE_BEAM,
+ MOVE_THUNDERBOLT,
+ MOVE_DOUBLE_TEAM,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_REGISTEEL,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x94,
+ .moves = {
+ MOVE_METAL_CLAW,
+ MOVE_EARTHQUAKE,
+ MOVE_THUNDERBOLT,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_LATIAS,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x96,
+ .moves = {
+ MOVE_MIST_BALL,
+ MOVE_THUNDERBOLT,
+ MOVE_REST,
+ MOVE_DRAGON_CLAW
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_MILD,
+ },
+ {
+ .species = SPECIES_LATIOS,
+ .heldItem = BATTLE_TOWER_ITEM_APICOT_BERRY,
+ .teamFlags = 0x95,
+ .moves = {
+ MOVE_LUSTER_PURGE,
+ MOVE_REFLECT,
+ MOVE_RECOVER,
+ MOVE_DRAGON_CLAW
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_MILOTIC,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x96,
+ .moves = {
+ MOVE_SURF,
+ MOVE_TOXIC,
+ MOVE_RECOVER,
+ MOVE_MIRROR_COAT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_SLAKING,
+ .heldItem = BATTLE_TOWER_ITEM_CHOICE_BAND,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_HYPER_BEAM,
+ MOVE_EARTHQUAKE,
+ MOVE_NONE,
+ MOVE_NONE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_SCEPTILE,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x1F,
+ .moves = {
+ MOVE_GIGA_DRAIN,
+ MOVE_DOUBLE_TEAM,
+ MOVE_LEECH_SEED,
+ MOVE_ATTRACT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_BLAZIKEN,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x17,
+ .moves = {
+ MOVE_BLAZE_KICK,
+ MOVE_EARTHQUAKE,
+ MOVE_ROCK_SLIDE,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_SWAMPERT,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x17,
+ .moves = {
+ MOVE_MUDDY_WATER,
+ MOVE_MUD_SHOT,
+ MOVE_MIRROR_COAT,
+ MOVE_ICE_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_GARDEVOIR,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x7B,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_SHADOW_BALL,
+ MOVE_DESTINY_BOND,
+ MOVE_SNATCH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_RELAXED,
+ },
+ {
+ .species = SPECIES_BRELOOM,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x56,
+ .moves = {
+ MOVE_SPORE,
+ MOVE_COUNTER,
+ MOVE_IRON_TAIL,
+ MOVE_GIGA_DRAIN
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_THUNDER_PUNCH,
+ MOVE_FIRE_PUNCH,
+ MOVE_RECOVER
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_HARIYAMA,
+ .heldItem = BATTLE_TOWER_ITEM_FOCUS_BAND,
+ .teamFlags = 0x05,
+ .moves = {
+ MOVE_CROSS_CHOP,
+ MOVE_ROCK_TOMB,
+ MOVE_ENDURE,
+ MOVE_REVERSAL
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_GYARADOS,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x0C,
+ .moves = {
+ MOVE_HYPER_BEAM,
+ MOVE_THUNDERBOLT,
+ MOVE_EARTHQUAKE,
+ MOVE_ICE_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_BOLD,
+ },
+ {
+ .species = SPECIES_CROBAT,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x49,
+ .moves = {
+ MOVE_TOXIC,
+ MOVE_CONFUSE_RAY,
+ MOVE_ATTRACT,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MACHAMP,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x15,
+ .moves = {
+ MOVE_CROSS_CHOP,
+ MOVE_COUNTER,
+ MOVE_EARTHQUAKE,
+ MOVE_FACADE
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_MANECTRIC,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x63,
+ .moves = {
+ MOVE_THUNDER,
+ MOVE_THUNDER_WAVE,
+ MOVE_REST,
+ MOVE_CRUNCH
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_ELECTRODE,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x07,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_SCREECH,
+ MOVE_MIRROR_COAT,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_MODEST,
+ },
+ {
+ .species = SPECIES_MUK,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x45,
+ .moves = {
+ MOVE_SLUDGE_BOMB,
+ MOVE_GIGA_DRAIN,
+ MOVE_ROCK_TOMB,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_RASH,
+ },
+ {
+ .species = SPECIES_FLYGON,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x4D,
+ .moves = {
+ MOVE_DRAGON_CLAW,
+ MOVE_EARTHQUAKE,
+ MOVE_IRON_TAIL,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_IMPISH,
+ },
+ {
+ .species = SPECIES_STARMIE,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x1B,
+ .moves = {
+ MOVE_LIGHT_SCREEN,
+ MOVE_THUNDERBOLT,
+ MOVE_SURF,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_NINETALES,
+ .heldItem = BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_CONFUSE_RAY,
+ MOVE_OVERHEAT,
+ MOVE_FLAMETHROWER,
+ MOVE_IRON_TAIL
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_GOLEM,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x25,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_ROAR,
+ MOVE_FIRE_BLAST,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_GOLDUCK,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x27,
+ .moves = {
+ MOVE_HYDRO_PUMP,
+ MOVE_CROSS_CHOP,
+ MOVE_BLIZZARD,
+ MOVE_PSYCH_UP
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_HERACROSS,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x55,
+ .moves = {
+ MOVE_MEGAHORN,
+ MOVE_EARTHQUAKE,
+ MOVE_COUNTER,
+ MOVE_REVERSAL
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WALREIN,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x36,
+ .moves = {
+ MOVE_SURF,
+ MOVE_BLIZZARD,
+ MOVE_ROCK_SLIDE,
+ MOVE_SHEER_COLD
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_KINGDRA,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x5C,
+ .moves = {
+ MOVE_HYDRO_PUMP,
+ MOVE_PROTECT,
+ MOVE_DRAGON_BREATH,
+ MOVE_DOUBLE_TEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_SALAMENCE,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x9D,
+ .moves = {
+ MOVE_DRAGON_CLAW,
+ MOVE_EARTHQUAKE,
+ MOVE_FLAMETHROWER,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_METAGROSS,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x15,
+ .moves = {
+ MOVE_METEOR_MASH,
+ MOVE_PSYCHIC,
+ MOVE_EARTHQUAKE,
+ MOVE_HYPER_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_REGIROCK,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x95,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_ROCK_TOMB,
+ MOVE_FACADE,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_REGICE,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x96,
+ .moves = {
+ MOVE_BLIZZARD,
+ MOVE_THUNDERBOLT,
+ MOVE_HAIL,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_CAREFUL,
+ },
+ {
+ .species = SPECIES_REGISTEEL,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x94,
+ .moves = {
+ MOVE_METAL_CLAW,
+ MOVE_EARTHQUAKE,
+ MOVE_ANCIENT_POWER,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_LATIAS,
+ .heldItem = BATTLE_TOWER_ITEM_APICOT_BERRY,
+ .teamFlags = 0x96,
+ .moves = {
+ MOVE_MIST_BALL,
+ MOVE_REFLECT,
+ MOVE_RECOVER,
+ MOVE_DRAGON_CLAW
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_LATIOS,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x95,
+ .moves = {
+ MOVE_LUSTER_PURGE,
+ MOVE_ICE_BEAM,
+ MOVE_RECOVER,
+ MOVE_DRAGON_CLAW
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_MILOTIC,
+ .heldItem = BATTLE_TOWER_ITEM_APICOT_BERRY,
+ .teamFlags = 0xD6,
+ .moves = {
+ MOVE_SURF,
+ MOVE_ICE_BEAM,
+ MOVE_RECOVER,
+ MOVE_DOUBLE_TEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_KECLEON,
+ .heldItem = BATTLE_TOWER_ITEM_CHOICE_BAND,
+ .teamFlags = 0x69,
+ .moves = {
+ MOVE_TRICK,
+ MOVE_REST,
+ MOVE_IRON_TAIL,
+ MOVE_DISABLE
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIRKY,
+ },
+ {
+ .species = SPECIES_SCEPTILE,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x5F,
+ .moves = {
+ MOVE_LEAF_BLADE,
+ MOVE_EARTHQUAKE,
+ MOVE_REST,
+ MOVE_CRUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_BLAZIKEN,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x7F,
+ .moves = {
+ MOVE_FOCUS_PUNCH,
+ MOVE_COUNTER,
+ MOVE_SWAGGER,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_SWAMPERT,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x57,
+ .moves = {
+ MOVE_IRON_TAIL,
+ MOVE_CURSE,
+ MOVE_DOUBLE_TEAM,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_GARDEVOIR,
+ .heldItem = BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ .teamFlags = 0x3B,
+ .moves = {
+ MOVE_SHADOW_BALL,
+ MOVE_PSYCHIC,
+ MOVE_REST,
+ MOVE_IMPRISON
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_BRELOOM,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x56,
+ .moves = {
+ MOVE_SPORE,
+ MOVE_FOCUS_PUNCH,
+ MOVE_SLUDGE_BOMB,
+ MOVE_IRON_TAIL
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = BATTLE_TOWER_ITEM_CHOICE_BAND,
+ .teamFlags = 0x1A,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_TRICK,
+ MOVE_RECOVER,
+ MOVE_SNATCH
+ },
+ .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HASTY,
+ },
+ {
+ .species = SPECIES_HARIYAMA,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x65,
+ .moves = {
+ MOVE_REVENGE,
+ MOVE_COUNTER,
+ MOVE_FOCUS_PUNCH,
+ MOVE_REVERSAL
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_LUDICOLO,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x54,
+ .moves = {
+ MOVE_RAIN_DANCE,
+ MOVE_PROTECT,
+ MOVE_TOXIC,
+ MOVE_SURF
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_CROBAT,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0x4B,
+ .moves = {
+ MOVE_SLUDGE_BOMB,
+ MOVE_BITE,
+ MOVE_AIR_CUTTER,
+ MOVE_SHADOW_BALL
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_MACHAMP,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x75,
+ .moves = {
+ MOVE_CROSS_CHOP,
+ MOVE_ROCK_SLIDE,
+ MOVE_DYNAMIC_PUNCH,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_MANECTRIC,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_THUNDERBOLT,
+ MOVE_THUNDER_WAVE,
+ MOVE_ATTRACT,
+ MOVE_CRUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_ELECTRODE,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x64,
+ .moves = {
+ MOVE_THUNDER,
+ MOVE_DOUBLE_TEAM,
+ MOVE_MIRROR_COAT,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_BASHFUL,
+ },
+ {
+ .species = SPECIES_MUK,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x49,
+ .moves = {
+ MOVE_SLUDGE_BOMB,
+ MOVE_FLAMETHROWER,
+ MOVE_THUNDERBOLT,
+ MOVE_SHADOW_PUNCH
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_GENTLE,
+ },
+ {
+ .species = SPECIES_FLYGON,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0xCD,
+ .moves = {
+ MOVE_PROTECT,
+ MOVE_DIG,
+ MOVE_TOXIC,
+ MOVE_SANDSTORM
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_STARMIE,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x5B,
+ .moves = {
+ MOVE_SURF,
+ MOVE_THUNDERBOLT,
+ MOVE_BLIZZARD,
+ MOVE_PSYCHIC
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_LUDICOLO,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0x1A,
+ .moves = {
+ MOVE_RAIN_DANCE,
+ MOVE_LEECH_SEED,
+ MOVE_DIVE,
+ MOVE_PROTECT
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_RAICHU,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x4A,
+ .moves = {
+ MOVE_THUNDER,
+ MOVE_REVERSAL,
+ MOVE_FACADE,
+ MOVE_IRON_TAIL
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_TIMID,
+ },
+ {
+ .species = SPECIES_GOLDUCK,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x0A,
+ .moves = {
+ MOVE_SURF,
+ MOVE_PSYCHIC,
+ MOVE_ICE_BEAM,
+ MOVE_IRON_TAIL
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_HERACROSS,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0x15,
+ .moves = {
+ MOVE_MEGAHORN,
+ MOVE_EARTHQUAKE,
+ MOVE_FACADE,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_WALREIN,
+ .heldItem = BATTLE_TOWER_ITEM_LEPPA_BERRY,
+ .teamFlags = 0x26,
+ .moves = {
+ MOVE_SURF,
+ MOVE_ICE_BEAM,
+ MOVE_FISSURE,
+ MOVE_SHEER_COLD
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_KINGDRA,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x4D,
+ .moves = {
+ MOVE_HYDRO_PUMP,
+ MOVE_BLIZZARD,
+ MOVE_HYPER_BEAM,
+ MOVE_DISABLE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_SALAMENCE,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x9C,
+ .moves = {
+ MOVE_DRAGON_CLAW,
+ MOVE_EARTHQUAKE,
+ MOVE_FIRE_BLAST,
+ MOVE_HYDRO_PUMP
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_NAUGHTY,
+ },
+ {
+ .species = SPECIES_METAGROSS,
+ .heldItem = BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ .teamFlags = 0xB5,
+ .moves = {
+ MOVE_METEOR_MASH,
+ MOVE_PSYCHIC,
+ MOVE_PURSUIT,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_REGIROCK,
+ .heldItem = BATTLE_TOWER_ITEM_APICOT_BERRY,
+ .teamFlags = 0x95,
+ .moves = {
+ MOVE_EARTHQUAKE,
+ MOVE_TOXIC,
+ MOVE_SUPERPOWER,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_SERIOUS,
+ },
+ {
+ .species = SPECIES_REGICE,
+ .heldItem = BATTLE_TOWER_ITEM_LAX_INCENSE,
+ .teamFlags = 0x96,
+ .moves = {
+ MOVE_ICE_BEAM,
+ MOVE_THUNDERBOLT,
+ MOVE_ANCIENT_POWER,
+ MOVE_EXPLOSION
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
+ .nature = NATURE_RASH,
+ },
+ {
+ .species = SPECIES_REGISTEEL,
+ .heldItem = BATTLE_TOWER_ITEM_LEFTOVERS,
+ .teamFlags = 0xB4,
+ .moves = {
+ MOVE_CURSE,
+ MOVE_AMNESIA,
+ MOVE_RETURN,
+ MOVE_REST
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_LAX,
+ },
+ {
+ .species = SPECIES_LATIAS,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x92,
+ .moves = {
+ MOVE_MIST_BALL,
+ MOVE_THUNDERBOLT,
+ MOVE_EARTHQUAKE,
+ MOVE_ICE_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_LATIOS,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0x91,
+ .moves = {
+ MOVE_LUSTER_PURGE,
+ MOVE_THUNDERBOLT,
+ MOVE_EARTHQUAKE,
+ MOVE_SURF
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_MILOTIC,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0xB2,
+ .moves = {
+ MOVE_SURF,
+ MOVE_ICE_BEAM,
+ MOVE_RECOVER,
+ MOVE_ATTRACT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_BRAVE,
+ },
+ {
+ .species = SPECIES_SLAKING,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0x65,
+ .moves = {
+ MOVE_YAWN,
+ MOVE_SLASH,
+ MOVE_COUNTER,
+ MOVE_HYPER_BEAM
+ },
+ .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_SCEPTILE,
+ .heldItem = BATTLE_TOWER_ITEM_SHELL_BELL,
+ .teamFlags = 0xDF,
+ .moves = {
+ MOVE_LEAF_BLADE,
+ MOVE_DETECT,
+ MOVE_DRAGON_CLAW,
+ MOVE_CRUNCH
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_BLAZIKEN,
+ .heldItem = BATTLE_TOWER_ITEM_SALAC_BERRY,
+ .teamFlags = 0xD7,
+ .moves = {
+ MOVE_BLAZE_KICK,
+ MOVE_SKY_UPPERCUT,
+ MOVE_EARTHQUAKE,
+ MOVE_ROCK_SLIDE
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_DOCILE,
+ },
+ {
+ .species = SPECIES_SWAMPERT,
+ .heldItem = BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ .teamFlags = 0x5F,
+ .moves = {
+ MOVE_SURF,
+ MOVE_EARTHQUAKE,
+ MOVE_ICE_BEAM,
+ MOVE_ROCK_TOMB
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
+ .nature = NATURE_SASSY,
+ },
+ {
+ .species = SPECIES_SHEDINJA,
+ .heldItem = BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ .teamFlags = 0xDB,
+ .moves = {
+ MOVE_CONFUSE_RAY,
+ MOVE_SHADOW_BALL,
+ MOVE_TOXIC,
+ MOVE_HYPER_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_METAGROSS,
+ .heldItem = BATTLE_TOWER_ITEM_QUICK_CLAW,
+ .teamFlags = 0x94,
+ .moves = {
+ MOVE_METEOR_MASH,
+ MOVE_PSYCHIC,
+ MOVE_SHADOW_BALL,
+ MOVE_EARTHQUAKE
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_GRUMPIG,
+ .heldItem = BATTLE_TOWER_ITEM_MACHO_BRACE,
+ .teamFlags = 0x4B,
+ .moves = {
+ MOVE_PSYCHIC,
+ MOVE_CONFUSE_RAY,
+ MOVE_TRICK,
+ MOVE_REFLECT
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_LATIAS,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x92,
+ .moves = {
+ MOVE_MIST_BALL,
+ MOVE_RECOVER,
+ MOVE_ATTRACT,
+ MOVE_DRAGON_CLAW
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_ADAMANT,
+ },
+ {
+ .species = SPECIES_LATIOS,
+ .heldItem = BATTLE_TOWER_ITEM_KINGS_ROCK,
+ .teamFlags = 0x91,
+ .moves = {
+ MOVE_LUSTER_PURGE,
+ MOVE_THUNDERBOLT,
+ MOVE_ICE_BEAM,
+ MOVE_DRAGON_CLAW
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_HARDY,
+ },
+ {
+ .species = SPECIES_STARMIE,
+ .heldItem = BATTLE_TOWER_ITEM_LUM_BERRY,
+ .teamFlags = 0x1A,
+ .moves = {
+ MOVE_SURF,
+ MOVE_THUNDERBOLT,
+ MOVE_PSYCHIC,
+ MOVE_ICE_BEAM
+ },
+ .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
+ .nature = NATURE_QUIET,
+ },
+ {
+ .species = SPECIES_MACHAMP,
+ .heldItem = BATTLE_TOWER_ITEM_SCOPE_LENS,
+ .teamFlags = 0x14,
+ .moves = {
+ MOVE_CROSS_CHOP,
+ MOVE_COUNTER,
+ MOVE_ROCK_TOMB,
+ MOVE_FLAMETHROWER
+ },
+ .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
+ .nature = NATURE_HARDY,
+ },
+};
diff --git a/src/data/battle_tower/trainers.h b/src/data/battle_tower/trainers.h
new file mode 100644
index 000000000..b5eb3da7a
--- /dev/null
+++ b/src/data/battle_tower/trainers.h
@@ -0,0 +1,1503 @@
+const struct BattleTowerTrainer gBattleTowerTrainers[] =
+{
+ {
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .name = _("ALVIN"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ EC_WORD_READY,
+ EC_WORD_QUES,
+ EC_WORD_HERE_I_COME,
+ EC_WORD_EXCL,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .name = _("DIRK"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_OKAY,
+ EC_WORD_I_AM,
+ EC_WORD_GOING,
+ EC_WORD_FOR,
+ EC_WORD_IT,
+ EC_WORD_EXCL,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_LADY,
+ .name = _("CYBIL"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOU_RE,
+ EC_WORD_A,
+ EC_WORD_PUSHOVER,
+ EC_WORD_LET_S,
+ EC_WORD_GET,
+ EC_WORD_GOING,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .name = _("CHEN"),
+ .teamFlags = 0x05,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_MY,
+ EC_WORD_SPIRIT,
+ EC_WORD_IS,
+ EC_WORD_ENOUGH,
+ EC_WORD_SNORT,
+ EC_WORD_ARRGH,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .name = _("YOSHI"),
+ .teamFlags = 0x05,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_GO,
+ EC_WORD_MY,
+ EC_WORD_POKEMON,
+ EC_WORD_FIGHT,
+ EC_WORD_THE,
+ EC_WORD_BATTLE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID_F,
+ .name = _("TINA"),
+ .teamFlags = 0x0A,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_STUDY,
+ EC_WORD_IS,
+ EC_WORD_BORING,
+ EC_WORD_LET_S,
+ EC_WORD_BATTLE,
+ EC_WORD_NOW,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .name = _("COREY"),
+ .teamFlags = 0x41,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_HEY,
+ EC_WORD_I,
+ EC_WORD_WILL,
+ EC_MOVE2(TRANSFORM),
+ EC_WORD_FOR,
+ EC_MOVE(STRENGTH),
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .name = _("GORDON"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_NEED,
+ EC_WORD_A,
+ EC_WORD_VACATION,
+ EC_WORD_RIGHT,
+ EC_WORD_NOW,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_TUBER_F,
+ .name = _("ANN"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WE,
+ EC_WORD_ALL,
+ EC_WORD_ADORE,
+ EC_WORD_POKEMON,
+ EC_WORD_ABSOLUTELY,
+ EC_WORD_TRULY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEFAN_F,
+ .name = _("JULIA"),
+ .teamFlags = 0x42,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I_AM,
+ EC_WORD_A,
+ EC_WORD_CUTE,
+ EC_WORD_LADY,
+ EC_WORD_YES,
+ EC_WORD_I_AM,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .name = _("GREGORY"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_THINK,
+ EC_WORD_WE,
+ EC_WORD_SHOULD,
+ EC_WORD_START,
+ EC_WORD_TODAY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .name = _("KEITH"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOU_RE,
+ EC_WORD_MY,
+ EC_WORD_FRIEND,
+ EC_WORD_FROM,
+ EC_WORD_NOW,
+ EC_WORD_ON,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_F,
+ .name = _("KENDRA"),
+ .teamFlags = 0x0A,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I_AM,
+ EC_MOVE(SWIFT),
+ EC_WORD_HOW,
+ EC_WORD_ABOUT,
+ EC_WORD_YOU,
+ EC_WORD_QUES,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .name = _("DEV"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WAHAHAHA,
+ EC_WORD_I_AM,
+ EC_WORD_FEELING,
+ EC_WORD_LIKE,
+ EC_WORD_IT_S,
+ EC_MOVE2(PAY_DAY),
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .name = _("CASSIE"),
+ .teamFlags = 0x0A,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOU_RE,
+ EC_WORD_STRONG,
+ EC_WORD_AREN_T,
+ 0xFFFF,
+ EC_WORD_YOU,
+ EC_WORD_QUES,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_PSYCHIC_M,
+ .name = _("JULIAN"),
+ .teamFlags = 0x05,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_FUFUFU,
+ 0xFFFF,
+ EC_WORD_YOU,
+ EC_WORD_CAN_T,
+ EC_WORD_WIN,
+ EC_WORD_KID,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_LASS,
+ .name = _("JOYCE"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_BE,
+ EC_WORD_KIND,
+ EC_WORD_TO,
+ EC_WORD_THE,
+ EC_WORD_DIGITAL,
+ EC_WORD_IDOL,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .name = _("LES"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I_AM,
+ EC_WORD_GREAT,
+ EC_WORD_YOU_RE,
+ EC_WORD_JUST,
+ EC_WORD_RATHER,
+ EC_WORD_OKAY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_RICH_BOY,
+ .name = _("CLINTON"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_HAVE,
+ EC_WORD_ROUGH_SKIN,
+ EC_WORD_I,
+ EC_WORD_NEED,
+ EC_WORD_NATURAL_CURE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .name = _("LEWIS"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_THIS,
+ EC_WORD_IS,
+ EC_WORD_EXCITING,
+ EC_WORD_CAN,
+ EC_WORD_I,
+ EC_WORD_WIN,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .name = _("RACHAEL"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_LIKE,
+ EC_WORD_WALKING,
+ EC_WORD_WITH,
+ EC_WORD_MY,
+ EC_WORD_POKEMON,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .name = _("HAROLD"),
+ .teamFlags = 0x09,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_HERE,
+ EC_WORD_THEY,
+ EC_WORD_COME,
+ EC_WORD_MY,
+ EC_MOVE2(SUPERPOWER),
+ EC_WORD_POKEMON,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_TUBER_M,
+ .name = _("KIPP"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I_AM,
+ EC_WORD_A,
+ EC_WORD_GENIUS,
+ EC_WORD_I,
+ EC_WORD_SHOULD,
+ EC_WORD_WIN,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .name = _("IRWIN"),
+ .teamFlags = 0x05,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOU,
+ EC_WORD_WILL,
+ EC_WORD_BE,
+ EC_WORD_FEELING,
+ EC_WORD_MY,
+ EC_WORD_FIRE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_PSYCHIC_F,
+ .name = _("EILEEN"),
+ .teamFlags = 0x0A,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_WILL,
+ EC_MOVE(ASTONISH),
+ EC_WORD_YOU,
+ EC_WORD_IN,
+ EC_WORD_BATTLE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .name = _("ANNE"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_SORRY,
+ EC_WORD_BUT,
+ EC_WORD_YOU,
+ EC_WORD_WILL,
+ EC_WORD_NOT,
+ EC_WORD_WIN,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_F,
+ .name = _("RUTH"),
+ .teamFlags = 0x06,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_A,
+ EC_WORD_STRONG,
+ EC_WORD_GIRL,
+ EC_WORD_WANTS,
+ EC_WORD_TOUGH,
+ EC_WORD_POKEMON,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .name = _("JEREMY"),
+ .teamFlags = 0x40,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_MY,
+ EC_WORD_POKEMON,
+ EC_WORD_ARE,
+ EC_WORD_COOL,
+ EC_WORD_YOURS,
+ EC_WORD_CAN_T_WIN,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .name = _("TREVOR"),
+ .teamFlags = 0x09,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_MY,
+ EC_WORD_OPPONENT,
+ EC_WORD_IS,
+ EC_WORD_FINALLY,
+ EC_WORD_HERE,
+ EC_WORD_EXCELLENT,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_F,
+ .name = _("COLETTE"),
+ .teamFlags = 0x06,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_AM,
+ EC_WORD_HUNGRY,
+ EC_MOVE2(POUND),
+ EC_WORD_MY,
+ EC_MOVE2(BELLY_DRUM),
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .name = _("PAULA"),
+ .teamFlags = 0x42,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_IT_S,
+ EC_WORD_HARD,
+ EC_WORD_TO,
+ EC_WORD_TAKE,
+ EC_WORD_UGLY,
+ EC_MOVE(SPITE),
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .name = _("STANLY"),
+ .teamFlags = 0x41,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_ADVENTURE,
+ EC_WORD_AND,
+ EC_WORD_BATTLE,
+ EC_WORD_ARE,
+ EC_WORD_MY,
+ EC_WORD_LIKES,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .name = _("TROY"),
+ .teamFlags = 0x09,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOU,
+ EC_WORD_CAN_T,
+ EC_WORD_LOSE,
+ EC_WORD_TO,
+ EC_WORD_A,
+ EC_WORD_KID,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID_M,
+ .name = _("ED"),
+ .teamFlags = 0x08,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_POKEMON,
+ EC_WORD_DAILY,
+ EC_WORD_AT,
+ EC_WORD_SCHOOL,
+ EC_WORD_IT_S,
+ EC_WORD_AWESOME,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMON_RANGER_F,
+ .name = _("ELLEN"),
+ .teamFlags = 0x04,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ EC_WORD_KIND,
+ EC_WORD_TO,
+ EC_WORD_YOUR,
+ EC_WORD_POKEMON,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .name = _("ARNIE"),
+ .teamFlags = 0x09,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_BATTLE,
+ EC_WORD_SERIOUSLY,
+ EC_WORD_BEAUTIFUL,
+ EC_WORD_YOU,
+ EC_MOVE(DIG),
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_M,
+ .name = _("HAL"),
+ .teamFlags = 0x09,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_BOY,
+ EC_WORD_I_AM,
+ EC_WORD_TIRED,
+ EC_WORD_READY,
+ EC_WORD_FOR,
+ EC_WORD_SLEEP,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .name = _("LAUREN"),
+ .teamFlags = 0x06,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_A,
+ EC_WORD_TRAINER,
+ EC_WORD_LIKE,
+ EC_WORD_YOU,
+ EC_WORD_IS,
+ EC_WORD_EXCITING,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .name = _("STACY"),
+ .teamFlags = 0x06,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_HAVE,
+ EC_WORD_YOU,
+ EC_WORD_A,
+ EC_WORD_STENCH,
+ EC_WORD_OR,
+ EC_MOVE(SWEET_SCENT),
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .name = _("DARYL"),
+ .teamFlags = 0x81,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOUR,
+ EC_WORD_POKEMON,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ EC_WORD_I,
+ EC_WORD_WANT,
+ EC_WORD_IT,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
+ .name = _("KATHY"),
+ .teamFlags = 0x04,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_WILL,
+ EC_WORD_TRY,
+ EC_WORD_MY,
+ EC_WORD_BEST,
+ EC_WORD_TODAY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMON_RANGER_M,
+ .name = _("HARRIS"),
+ .teamFlags = 0x0C,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WAAAH,
+ EC_WORD_WAAAH,
+ EC_WORD_WAAAH,
+ EC_WORD_WAAAH,
+ EC_WORD_EHEHE,
+ EC_MOVE(FAKE_TEARS),
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEFAN_M,
+ .name = _("GLENN"),
+ .teamFlags = 0x80,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_LISTEN,
+ EC_WORD_TO,
+ EC_WORD_MY,
+ EC_WORD_LOUSY,
+ EC_WORD_ANIME,
+ EC_WORD_SONG,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_M,
+ .name = _("NICO"),
+ .teamFlags = 0x04,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_DON_T,
+ EC_WORD_JUST,
+ EC_WORD_BATTLE,
+ EC_WORD_DO,
+ EC_WORD_SOMETHING,
+ EC_WORD_ELSE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_M,
+ .name = _("BAILEY"),
+ .teamFlags = 0x41,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ EC_WORD_BUSY,
+ EC_WORD_GET,
+ EC_WORD_WITH,
+ EC_WORD_IT,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .name = _("ABBIE"),
+ .teamFlags = 0x08,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_THE,
+ EC_MOVE(MORNING_SUN),
+ EC_WORD_HAS,
+ EC_WORD_SO,
+ EC_WORD_MUCH,
+ EC_MOVE(COSMIC_POWER),
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .name = _("AL"),
+ .teamFlags = 0x0C,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_LET_S,
+ EC_WORD_HAVE,
+ EC_WORD_AN,
+ EC_WORD_EXCITING,
+ EC_WORD_BATTLE,
+ EC_WORD_YEEHAW_EXCL,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID_F,
+ .name = _("PEGGY"),
+ .teamFlags = 0x42,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_WANT,
+ EC_WORD_TO,
+ EC_WORD_SEE,
+ EC_WORD_SOME,
+ EC_MOVE(GROWTH),
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .name = _("NAOMI"),
+ .teamFlags = 0x04,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_IT,
+ EC_WORD_WAS,
+ EC_WORD_GREAT,
+ EC_WORD_TO,
+ EC_WORD_BE,
+ EC_WORD_YOUNG,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .name = _("KENJI"),
+ .teamFlags = 0x0C,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_PLEASE,
+ 0xFFFF,
+ EC_WORD_DON_T,
+ EC_WORD_BE,
+ EC_WORD_MEAN,
+ EC_WORD_TO_ME,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_M,
+ .name = _("ROSS"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WAKE_UP,
+ EC_WORD_MY,
+ EC_MOVE2(HIDDEN_POWER),
+ EC_WORD_AND,
+ EC_MOVE(ASTONISH),
+ EC_WORD_ME,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMON_RANGER_F,
+ .name = _("EDNA"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_BATTLE_TOWER,
+ EC_WORD_IS,
+ EC_WORD_SO,
+ EC_WORD_ENTERTAINING,
+ EC_WORD_IT_S,
+ EC_WORD_AWESOME,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .name = _("ANTON"),
+ .teamFlags = 0x41,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_BLEND,
+ EC_WORD_THICK_FAT,
+ EC_WORD_AND,
+ EC_WORD_CHLOROPHYLL,
+ EC_WORD_IT_S,
+ EC_WORD_TASTY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .name = _("MITCH"),
+ .teamFlags = 0x81,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_NEXT,
+ EC_WORD_A,
+ EC_WORD_GIRL,
+ EC_WORD_WITH,
+ EC_WORD_A,
+ EC_MOVE(SCARY_FACE),
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .name = _("ROD"),
+ .teamFlags = 0x42,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_GIMME,
+ EC_WORD_A,
+ EC_WORD_TOUGH,
+ EC_WORD_BATTLE,
+ EC_WORD_NOT,
+ EC_WORD_WIMPY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_M,
+ .name = _("RICH"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_TASTY,
+ EC_WORD_WATER,
+ EC_WORD_IS,
+ EC_WORD_HIP_AND,
+ EC_WORD_HAPPENING,
+ EC_WORD_YES_SIR_EXCL,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEFAN_M,
+ .name = _("DANIEL"),
+ .teamFlags = 0x80,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_GO,
+ EC_WORD_FOR,
+ EC_WORD_IT,
+ EC_WORD_MY,
+ EC_WORD_LOVEY_DOVEY,
+ EC_WORD_POKEMON,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_PSYCHIC_F,
+ .name = _("GLORIA"),
+ .teamFlags = 0x82,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_LET_S,
+ EC_WORD_GET,
+ EC_WORD_THIS,
+ EC_WORD_FIERY,
+ EC_WORD_BATTLE,
+ EC_WORD_HAPPENING,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .name = _("NELSON"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_MUSIC,
+ EC_WORD_IS,
+ EC_WORD_MY,
+ EC_WORD_ALL,
+ EC_WORD_MY,
+ EC_WORD_DESTINY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .name = _("FERRIS"),
+ .teamFlags = 0x41,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_GOOD,
+ EC_WORD_IT,
+ EC_WORD_IS,
+ EC_WORD_SO,
+ EC_WORD_VERY,
+ EC_WORD_GOOD,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .name = _("AMANDA"),
+ .teamFlags = 0x82,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WHAT,
+ EC_WORD_KIND,
+ EC_WORD_OF,
+ EC_WORD_TRAINER,
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .name = _("MASON"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_DON_T,
+ EC_WORD_KNOW,
+ EC_WORD_HOW,
+ EC_WORD_TO,
+ EC_WORD_LOSE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .name = _("NATE"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_DRAGON,
+ EC_WORD_POKEMON,
+ EC_WORD_ARE,
+ EC_WORD_ALL,
+ EC_WORD_THE,
+ EC_MOVE(RAGE),
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_LASS,
+ .name = _("MIRIAM"),
+ .teamFlags = 0x82,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOU_RE,
+ EC_WORD_TOO_STRONG,
+ EC_WORD_SERIOUSLY,
+ EC_WORD_IT_S,
+ EC_WORD_BAD,
+ EC_WORD_NEWS,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .name = _("THEO"),
+ .teamFlags = 0x40,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_ADORE,
+ EC_WORD_MY,
+ EC_WORD_MEGA,
+ EC_WORD_CUTE,
+ EC_WORD_PLUSH_DOLL,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
+ .name = _("PAMELA"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_HERE_I_COME,
+ EC_WORD_I_AM,
+ EC_WORD_THE,
+ EC_WORD_CUTE,
+ EC_MOVE2(WATER_SPORT),
+ EC_WORD_IDOL,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEFAN_F,
+ .name = _("ALISSA"),
+ .teamFlags = 0x20,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_IT_S,
+ EC_WORD_A,
+ EC_WORD_PREPOSTEROUS,
+ EC_WORD_MATCH,
+ EC_WORD_I_AM,
+ EC_WORD_SHOCKED,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .name = _("ARTHUR"),
+ .teamFlags = 0x20,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_PLEASE,
+ EC_WORD_GIVE,
+ EC_WORD_ME,
+ EC_WORD_A,
+ EC_WORD_GOOD,
+ EC_WORD_BATTLE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .name = _("MARCY"),
+ .teamFlags = 0x82,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I_AM,
+ EC_WORD_BEAUTIFUL,
+ EC_WORD_YOU,
+ EC_WORD_CAN_T,
+ EC_WORD_BEAT,
+ EC_WORD_ME,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_COOL_TRAINER_M,
+ .name = _("MILLER"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_BATTLE,
+ EC_WORD_DAILY,
+ EC_WORD_I,
+ EC_WORD_WON_T,
+ EC_WORD_LOSE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .name = _("OLIVER"),
+ .teamFlags = 0x11,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ EC_WORD_GIGGLE,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ 0xFFFF,
+ 0xFFFF,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_F,
+ .name = _("MOLLY"),
+ .teamFlags = 0x12,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_HOW,
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ EC_WORD_ON,
+ EC_WORD_MONDAY,
+ EC_WORD_MORNING,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .name = _("JASON"),
+ .teamFlags = 0x40,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WATER,
+ EC_WORD_AND,
+ EC_WORD_BUG,
+ EC_WORD_POKEMON,
+ EC_WORD_ARE,
+ EC_WORD_GREAT,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .name = _("AVA"),
+ .teamFlags = 0x20,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WHAT,
+ EC_WORD_IS,
+ EC_WORD_THIS,
+ EC_WORD_PRESSURE,
+ EC_WORD_ELLIPSIS,
+ EC_WORD_STATIC,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .name = _("HANK"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOU_RE,
+ EC_WORD_A,
+ EC_WORD_KID,
+ EC_WORD_YOU,
+ EC_WORD_CAN_T,
+ EC_WORD_WIN,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .name = _("PETER"),
+ .teamFlags = 0x20,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_IT_S,
+ EC_WORD_SERIOUSLY,
+ EC_WORD_TERRIBLE,
+ EC_WORD_I,
+ EC_WORD_REALLY,
+ EC_WORD_THINK,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_EXPERT_F,
+ .name = _("MINDY"),
+ .teamFlags = 0x20,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOU,
+ EC_WORD_APPEAR,
+ EC_WORD_TO,
+ EC_WORD_TRAIN,
+ EC_WORD_VERY,
+ EC_WORD_WELL,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .name = _("DWIGHT"),
+ .teamFlags = 0x11,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ EC_WORD_STRONG,
+ EC_WORD_YOU,
+ EC_WORD_ARE,
+ EC_WORD_SCARY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_F,
+ .name = _("REENA"),
+ .teamFlags = 0x12,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_ALWAYS,
+ EC_WORD_LOSE,
+ EC_WORD_MAYBE,
+ EC_WORD_TODAY,
+ EC_WORD_ELLIPSIS,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .name = _("MEGAN"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_DON_T,
+ EC_WORD_MAKE,
+ EC_WORD_THAT,
+ EC_MOVE(SCARY_FACE),
+ EC_WORD_AT,
+ EC_WORD_ME,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_F,
+ .name = _("SIERRA"),
+ .teamFlags = 0x04,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I_VE,
+ EC_WORD_RUN,
+ EC_WORD_A_LOT,
+ EC_WORD_SO,
+ EC_WORD_I_AM,
+ EC_WORD_HEALTHY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMON_RANGER_M,
+ .name = _("ARNOLD"),
+ .teamFlags = 0x08,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I_AM,
+ EC_WORD_FEELING,
+ EC_WORD_AWESOME,
+ EC_WORD_MY,
+ EC_WORD_POKEMON,
+ EC_WORD_ROCK,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .name = _("XIN"),
+ .teamFlags = 0x04,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_HOO_HAH,
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ EC_WORD_READY,
+ EC_WORD_TO,
+ EC_WORD_ROCK,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_COOL_TRAINER_F,
+ .name = _("KELLY"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOU,
+ EC_WORD_COULDN_T,
+ EC_WORD_BEAT,
+ EC_WORD_ME,
+ EC_WORD_EVER,
+ EC_WORD_KID,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .name = _("VANCE"),
+ .teamFlags = 0x80,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_POKEMON,
+ EC_WORD_ALL,
+ EC_WORD_OVER,
+ EC_WORD_THE,
+ EC_WORD_PLACE,
+ EC_WORD_WOWEE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .name = _("TOBY"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_THIS,
+ EC_WORD_ISN_T,
+ EC_WORD_SPORTS,
+ EC_WORD_IT_S,
+ EC_WORD_A,
+ EC_WORD_BATTLE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .name = _("NORTON"),
+ .teamFlags = 0x20,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_HAVE,
+ EC_WORD_TO,
+ EC_WORD_WIN,
+ EC_WORD_PLEASE,
+ EC_WORD_LOSE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .name = _("ZOE"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_THIS,
+ EC_WORD_IS,
+ EC_WORD_SCARY,
+ EC_WORD_PLEASE,
+ EC_WORD_BE,
+ EC_WORD_NICE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .name = _("EMMA"),
+ .teamFlags = 0x20,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_DON_T,
+ EC_WORD_YOU,
+ EC_MOVE(FLAIL),
+ EC_WORD_YOU,
+ EC_WORD_CAN_T,
+ EC_MOVE(WITHDRAW),
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .name = _("VINCE"),
+ .teamFlags = 0x04,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YAHOO,
+ EC_WORD_YAHOO,
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ EC_WORD_LISTENING,
+ EC_WORD_QUES,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_EXPERT_M,
+ .name = _("MARV"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_LEARN,
+ EC_WORD_TO,
+ EC_WORD_BATTLE,
+ EC_WORD_THE,
+ EC_WORD_CORRECT,
+ EC_WORD_WAY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_M,
+ .name = _("TODD"),
+ .teamFlags = 0x40,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_THE,
+ EC_WORD_WAY,
+ EC_WORD_YOU,
+ EC_WORD_BATTLE,
+ EC_WORD_IT_S,
+ EC_WORD_CHILD_S_PLAY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .name = _("GAVIN"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_BABY,
+ EC_WORD_BABY,
+ EC_WORD_BABY,
+ EC_WORD_ROCK,
+ EC_WORD_ME,
+ EC_WORD_HARD,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_PSYCHIC_M,
+ .name = _("QUINN"),
+ .teamFlags = 0x08,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_HAVE,
+ EC_WORD_A,
+ EC_WORD_STICKY_HOLD,
+ EC_WORD_ON,
+ EC_WORD_YOU,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_COOL_TRAINER_F,
+ .name = _("JENN"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I_AM,
+ EC_WORD_ON,
+ EC_WORD_A,
+ EC_WORD_TOUGH,
+ EC_WORD_TRAINER,
+ EC_WORD_SEARCH,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_EXPERT_M,
+ .name = _("JOEL"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_BELIEVE,
+ EC_WORD_IN,
+ EC_WORD_YOUR,
+ EC_WORD_POKEMON,
+ EC_WORD_AND,
+ EC_WORD_WIN,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .name = _("KYLE"),
+ .teamFlags = 0x0C,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_LIKE,
+ EC_WORD_A,
+ EC_WORD_GIRL,
+ EC_WORD_WITH,
+ EC_MOVE2(FORESIGHT),
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_COOL_TRAINER_M,
+ .name = _("BRET"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_TAKE,
+ EC_WORD_MY,
+ EC_WORD_OVERWHELMING,
+ EC_WORD_POWER,
+ EC_WORD_AND,
+ EC_WORD_DISAPPEAR,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_EXPERT_F,
+ .name = _("CARRIE"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_TRAINER,
+ EC_WORD_I,
+ EC_WORD_SEE,
+ EC_WORD_YOU,
+ EC_WORD_ARE,
+ EC_WORD_CAPABLE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_LADY,
+ .name = _("GILLIAN"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_COME_ON,
+ EC_WORD_SHOW,
+ EC_WORD_ME,
+ EC_WORD_AN,
+ EC_WORD_EXCELLENT,
+ EC_WORD_TIME,
+ },
+ },
+ },
+};
diff --git a/src/data/battle_tower/trainers_de.h b/src/data/battle_tower/trainers_de.h
new file mode 100644
index 000000000..86182da9d
--- /dev/null
+++ b/src/data/battle_tower/trainers_de.h
@@ -0,0 +1,1503 @@
+const struct BattleTowerTrainer gBattleTowerTrainers[] =
+{
+ {
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .name = _("ALWIN"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ EC_WORD_READY,
+ EC_WORD_QUES,
+ EC_WORD_HERE_I_COME,
+ EC_WORD_EXCL,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .name = _("DIRK"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_OH_KAY,
+ EC_WORD_I_AM,
+ EC_WORD_READY,
+ EC_WORD_EXCL,
+ 0xFFFF,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_LADY,
+ .name = _("SIBILLE"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_THAT,
+ EC_WORD_BECOMES,
+ EC_WORD_A,
+ EC_WORD_CHILD_S_PLAY,
+ EC_WORD_GO,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .name = _("OLAF"),
+ .teamFlags = 0x05,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_MY,
+ EC_WORD_GHOST,
+ EC_WORD_IS,
+ EC_WORD_FULL,
+ EC_WORD_TOUGHNESS,
+ EC_WORD_SNORT,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .name = _("JOST"),
+ .teamFlags = 0x05,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_GO,
+ EC_WORD_WHO_WAS,
+ EC_WORD_POKEMON,
+ EC_WORD_FIGHT,
+ EC_WORD_FIGHT,
+ EC_WORD_FIGHT,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID_F,
+ .name = _("TINA"),
+ .teamFlags = 0x0A,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_STUDY,
+ EC_WORD_IS,
+ EC_WORD_BORING,
+ EC_WORD_LET_S,
+ EC_WORD_BETTER,
+ EC_WORD_FIGHT,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .name = _("HAJO"),
+ .teamFlags = 0x41,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_TOUGHNESS,
+ EC_WORD_AND,
+ EC_MOVE2(TRANSFORM),
+ EC_WORD_WILL,
+ EC_WORD_BABE,
+ EC_WORD_FAINT,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .name = _("GEORG"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_IT,
+ EC_WORD_GOES,
+ EC_WORD_NOTHING,
+ EC_WORD_OVER,
+ EC_WORD_FISHING,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_TUBER_F,
+ .name = _("ANNE"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_POKEMON,
+ EC_WORD_MUST_BE,
+ EC_WORD_MAN,
+ EC_WORD_SIMPLE,
+ EC_WORD_ADORE,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEFAN_F,
+ .name = _("JULIA"),
+ .teamFlags = 0x42,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I_AM,
+ EC_WORD_CUTE,
+ EC_WORD_I_AM,
+ EC_WORD_QUITE,
+ EC_WORD_AN,
+ EC_WORD_LADY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .name = _("JOHANN"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_THE,
+ EC_WORD_DAY,
+ EC_WORD_IS,
+ EC_WORD_PERFECT,
+ EC_WORD_FOR,
+ EC_WORD_BATTLE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .name = _("KARL"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_NOW,
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ EC_WORD_MY,
+ EC_WORD_FRIEND,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_F,
+ .name = _("KENDRA"),
+ .teamFlags = 0x0A,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I_AM,
+ EC_WORD_SMART,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ EC_WORD_AND,
+ EC_WORD_YOU,
+ EC_WORD_QUES,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .name = _("DAVID"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WAHAHAHA,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ EC_WORD_TODAY,
+ EC_WORD_IS,
+ EC_MOVE2(PAY_DAY),
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .name = _("KEA"),
+ .teamFlags = 0x0A,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOU_RE,
+ EC_WORD_TOUGH,
+ EC_WORD_OR,
+ EC_WORD_QUES,
+ 0xFFFF,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_PSYCHIC_M,
+ .name = _("JULIAN"),
+ .teamFlags = 0x05,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_FUFUFU,
+ EC_WORD_YOU,
+ EC_WORD_CAN_T,
+ EC_WORD_DON_T,
+ EC_WORD_WINS,
+ EC_WORD_KID,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_LASS,
+ .name = _("JOSI"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_BE,
+ EC_WORD_KIND,
+ EC_WORD_TO,
+ EC_WORD_GIRL,
+ 0xFFFF,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .name = _("LEIF"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I_AM,
+ EC_WORD_GREAT,
+ EC_WORD_YOU_RE,
+ EC_WORD_RATHER,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ EC_WORD_OKAY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_RICH_BOY,
+ .name = _("INGO"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_HAVE,
+ EC_WORD_ROUGH_SKIN,
+ EC_WORD_NATURAL_CURE,
+ EC_WORD_IS,
+ EC_WORD_ALL_RIGHT,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .name = _("LUDWIG"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_IF_I_WIN,
+ EC_WORD_IS,
+ EC_WORD_THAT,
+ EC_WORD_EXCITING,
+ 0xFFFF,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .name = _("RAJA"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WITH,
+ EC_WORD_POKEMON,
+ EC_WORD_TO,
+ EC_WORD_WALKING,
+ EC_WORD_IS,
+ EC_WORD_GREAT,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .name = _("HARALD"),
+ .teamFlags = 0x09,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_HERE_GOES,
+ EC_WORD_MY,
+ EC_WORD_HUGE_POWER,
+ 0xFFFF,
+ EC_WORD_POKEMON,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_TUBER_M,
+ .name = _("KIM"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I_AM,
+ EC_WORD_A,
+ EC_WORD_GENIUS,
+ EC_WORD_WE,
+ EC_WORD_WILL,
+ EC_WORD_WINS,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .name = _("ERWIN"),
+ .teamFlags = 0x05,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_MY,
+ EC_WORD_FIRE,
+ EC_WORD_IS,
+ EC_WORD_VERY,
+ EC_WORD_HOT,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_PSYCHIC_F,
+ .name = _("EIKA"),
+ .teamFlags = 0x0A,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_FIGHTING,
+ EC_MOVE(ASTONISH),
+ EC_WORD_AND,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ 0xFFFF,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .name = _("ANNINA"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_SORRY,
+ EC_WORD_YOURS,
+ EC_WORD_POKEMON,
+ EC_WORD_WILL,
+ EC_WORD_DON_T,
+ EC_WORD_WINS,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_F,
+ .name = _("RUTH"),
+ .teamFlags = 0x06,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I_AM,
+ EC_WORD_TOUGH,
+ EC_WORD_WHO_WAS,
+ EC_WORD_POKEMON,
+ EC_WORD_TOO,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .name = _("JENS"),
+ .teamFlags = 0x40,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WHO_WAS,
+ EC_WORD_POKEMON,
+ EC_WORD_THOSE,
+ EC_WORD_COOL,
+ EC_WORD_YOURS,
+ EC_WORD_LOSE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .name = _("TITUS"),
+ .teamFlags = 0x09,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_MY,
+ EC_WORD_FOE,
+ EC_WORD_IS,
+ EC_WORD_FINALLY,
+ EC_WORD_HERE,
+ EC_WORD_EXCELLENT,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_F,
+ .name = _("NICOLA"),
+ .teamFlags = 0x06,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I_AM,
+ EC_WORD_VORACIOUS,
+ EC_MOVE2(POUND),
+ EC_WORD_AND,
+ EC_MOVE2(BELLY_DRUM),
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .name = _("PAULA"),
+ .teamFlags = 0x42,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_IS_IT_QUES,
+ EC_WORD_THOSE_ARE,
+ EC_WORD_UGLY,
+ EC_MOVE(SPITE),
+ EC_WORD_TO,
+ EC_WORD_TAKE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .name = _("SÖREN"),
+ .teamFlags = 0x41,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_ADVENTURE,
+ EC_WORD_AND,
+ EC_WORD_BATTLE,
+ EC_WORD_THOSE,
+ EC_WORD_WHO_WAS,
+ EC_WORD_LIKES,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .name = _("RAINER"),
+ .teamFlags = 0x09,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WE,
+ EC_WORD_CAN,
+ EC_WORD_VERSUS,
+ EC_WORD_CHILDREN,
+ EC_WORD_DON_T,
+ EC_WORD_LOSE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID_M,
+ .name = _("FABIAN"),
+ .teamFlags = 0x08,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_DAILY,
+ EC_WORD_POKEMON,
+ EC_WORD_IN,
+ EC_WORD_THE,
+ EC_WORD_SCHOOL,
+ EC_WORD_AWESOME,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMON_RANGER_F,
+ .name = _("ELLEN"),
+ .teamFlags = 0x04,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ EC_WORD_ALL_RIGHT,
+ EC_WORD_TO,
+ EC_WORD_POKEMON,
+ EC_WORD_QUES,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .name = _("ARNIE"),
+ .teamFlags = 0x09,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_MY,
+ EC_WORD_FIGHTING,
+ EC_WORD_IS,
+ EC_WORD_PERFECTION,
+ EC_WORD_YOUR,
+ EC_WORD_USELESS,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_M,
+ .name = _("HARDI"),
+ .teamFlags = 0x09,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_BOY,
+ EC_WORD_I_AM,
+ EC_WORD_MAYBE,
+ EC_WORD_TIRED,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .name = _("LINA"),
+ .teamFlags = 0x06,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_A,
+ EC_WORD_TRAINER,
+ EC_WORD_HOW_DO,
+ EC_WORD_YOU,
+ EC_WORD_IS,
+ EC_WORD_EXCITING,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .name = _("SELINA"),
+ .teamFlags = 0x06,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOU_VE,
+ EC_WORD_STENCH,
+ EC_WORD_OR,
+ EC_MOVE(SWEET_SCENT),
+ EC_WORD_QUES,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .name = _("DANTE"),
+ .teamFlags = 0x81,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOURS,
+ EC_WORD_POKEMON,
+ EC_WORD_I,
+ EC_WORD_WANTS,
+ EC_WORD_SHE,
+ EC_WORD_EXCL_EXCL,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
+ .name = _("KATJA"),
+ .teamFlags = 0x04,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_TODAY,
+ EC_WORD_WANTS,
+ EC_WORD_I,
+ EC_WORD_MY,
+ EC_WORD_BEST,
+ EC_WORD_GIVE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMON_RANGER_M,
+ .name = _("HORST"),
+ .teamFlags = 0x0C,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WAAAH,
+ EC_WORD_WAAAH,
+ EC_WORD_WAAAH,
+ EC_WORD_WAAAH,
+ EC_WORD_EHEHE,
+ EC_MOVE(FAKE_TEARS),
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEFAN_M,
+ .name = _("GERRIT"),
+ .teamFlags = 0x80,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_MY,
+ EC_WORD_ANIME,
+ EC_WORD_SONG,
+ EC_WORD_IS,
+ EC_WORD_DON_T,
+ EC_WORD_LOUSY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_M,
+ .name = _("NIKO"),
+ .teamFlags = 0x04,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_BATTLE,
+ EC_WORD_DON_T,
+ EC_WORD_JUST,
+ EC_WORD_DO,
+ EC_WORD_SOMETHING,
+ EC_WORD_ELSE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_M,
+ .name = _("BALDO"),
+ .teamFlags = 0x41,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ EC_WORD_BUSY,
+ EC_WORD_HAS,
+ EC_WORD_THAT,
+ EC_WORD_TIME,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .name = _("ALMA"),
+ .teamFlags = 0x08,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_THAT,
+ EC_MOVE(MORNING_SUN),
+ EC_WORD_HAS,
+ EC_WORD_SO,
+ EC_WORD_A_LOT,
+ EC_MOVE(COSMIC_POWER),
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .name = _("ADAM"),
+ .teamFlags = 0x0C,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_EXCITING,
+ EC_WORD_BATTLE,
+ EC_WORD_THOSE,
+ EC_WORD_GREAT,
+ EC_WORD_YEEHAW_EXCL,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID_F,
+ .name = _("GRETE"),
+ .teamFlags = 0x42,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_WANTS,
+ EC_WORD_SOMETHING,
+ EC_MOVE(GROWTH),
+ EC_WORD_WORKS,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .name = _("NAOMI"),
+ .teamFlags = 0x04,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_IT,
+ EC_WORD_WAS,
+ EC_WORD_GREAT,
+ EC_WORD_YOUNG,
+ EC_WORD_TO,
+ EC_WORD_HIS,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .name = _("KENO"),
+ .teamFlags = 0x0C,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_PLEASE,
+ EC_WORD_BE,
+ EC_WORD_DON_T,
+ EC_WORD_SO,
+ EC_WORD_MEAN,
+ EC_WORD_TO_ME,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_M,
+ .name = _("REMUS"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WAKES_UP,
+ EC_MOVE2(HIDDEN_POWER),
+ EC_WORD_AND,
+ EC_MOVE(ASTONISH),
+ 0xFFFF,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMON_RANGER_F,
+ .name = _("EDITH"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_THE,
+ EC_WORD_BATTLE_TOWER,
+ EC_WORD_IS,
+ EC_WORD_SO,
+ EC_WORD_ENTERTAINING,
+ EC_WORD_AWESOME,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .name = _("ANTON"),
+ .teamFlags = 0x41,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_THICK_FAT,
+ EC_WORD_AND,
+ EC_WORD_CHLOROPHYLL,
+ EC_WORD_BLEND,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ EC_WORD_TASTY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .name = _("MALTE"),
+ .teamFlags = 0x81,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_AN,
+ EC_MOVE(SCARY_FACE),
+ EC_WORD_IS,
+ EC_WORD_DON_T,
+ EC_WORD_QUITE,
+ EC_WORD_TERRIBLE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .name = _("RAOUL"),
+ .teamFlags = 0x42,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_RUN_AWAY,
+ EC_WORD_GIVE_ME,
+ EC_WORD_SON,
+ EC_WORD_BEST,
+ 0xFFFF,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_M,
+ .name = _("RICK"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WATER,
+ EC_WORD_IS,
+ EC_WORD_TASTY,
+ EC_WORD_HIP_AND,
+ EC_WORD_REFRESHING,
+ EC_WORD_YES_SIR_EXCL,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEFAN_M,
+ .name = _("DENNIS"),
+ .teamFlags = 0x80,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_GO,
+ EC_WORD_WHO_WAS,
+ EC_WORD_POKEMON,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ 0xFFFF,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_PSYCHIC_F,
+ .name = _("GLORIA"),
+ .teamFlags = 0x82,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_THE,
+ EC_WORD_FIGHTING,
+ EC_WORD_MUST_BE,
+ EC_WORD_HOT,
+ EC_WORD_HIS,
+ EC_WORD_FIERY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .name = _("NINO"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_MUSIC,
+ EC_WORD_IS,
+ EC_WORD_MY,
+ EC_WORD_EVERY,
+ EC_WORD_MY,
+ EC_WORD_DESTINY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .name = _("FIETE"),
+ .teamFlags = 0x41,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_IT_S,
+ EC_WORD_ALL_RIGHT,
+ EC_WORD_VERY,
+ EC_WORD_ALL_RIGHT,
+ 0xFFFF,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .name = _("AMANDA"),
+ .teamFlags = 0x82,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WHAT,
+ EC_WORD_FOR,
+ EC_WORD_A,
+ EC_WORD_TRAINER,
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .name = _("MAREK"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WE_VE,
+ EC_WORD_UNTIL,
+ EC_WORD_NOW,
+ EC_WORD_TOTALLY,
+ EC_WORD_NEVER,
+ EC_WORD_LOST,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .name = _("NATHAN"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_DRAGON,
+ 0xFFFF,
+ EC_WORD_POKEMON,
+ EC_WORD_THOSE,
+ EC_WORD_FANTASTIC,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_LASS,
+ .name = _("MIRIAM"),
+ .teamFlags = 0x82,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOU_RE,
+ EC_WORD_QUITE,
+ EC_WORD_TOO_STRONG,
+ EC_WORD_AM,
+ EC_WORD_BAD,
+ EC_WORD_NEWS,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .name = _("THEO"),
+ .teamFlags = 0x40,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_PLUSH_DOLL,
+ EC_WORD_MUST_BE,
+ EC_WORD_MAN,
+ EC_WORD_SIMPLE,
+ EC_WORD_ADORE,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
+ .name = _("PIA"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_HERE_I_COME,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ EC_WORD_CUTE,
+ EC_WORD_A,
+ EC_WORD_CHANNEL,
+ EC_WORD_IDOL,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEFAN_F,
+ .name = _("ALISSA"),
+ .teamFlags = 0x20,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOURS,
+ EC_WORD_POKEMON,
+ EC_WORD_THOSE,
+ EC_WORD_PREPOSTEROUS,
+ EC_WORD_I_AM,
+ EC_WORD_SHOCKED,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .name = _("ARTUR"),
+ .teamFlags = 0x20,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_PLEASE,
+ EC_WORD_ALL,
+ EC_WORD_BATTLE,
+ EC_WORD_WEREN_T,
+ EC_WORD_GREAT,
+ EC_WORD_HIS,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .name = _("MAJA"),
+ .teamFlags = 0x82,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I_AM,
+ EC_WORD_PRETTY,
+ EC_WORD_YOU,
+ EC_WORD_CAN_T,
+ EC_WORD_DON_T,
+ EC_WORD_WINS,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_COOL_TRAINER_M,
+ .name = _("MARIUS"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_BATTLE,
+ EC_WORD_DAILY,
+ EC_WORD_I,
+ EC_WORD_WON_T,
+ EC_WORD_LOSE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .name = _("OLIVER"),
+ .teamFlags = 0x11,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_GIGGLE,
+ EC_WORD_GIGGLE,
+ EC_WORD_SNORT,
+ EC_WORD_HAPPILY,
+ EC_WORD_GIGGLE,
+ EC_WORD_MUFUFU,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_F,
+ .name = _("MOLLY"),
+ .teamFlags = 0x12,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_IS,
+ EC_WORD_TODAY,
+ EC_WORD_MONDAY,
+ EC_WORD_QUES,
+ 0xFFFF,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .name = _("JÖRG"),
+ .teamFlags = 0x40,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WATER,
+ 0xFFFF,
+ EC_WORD_AND,
+ EC_WORD_BUG,
+ 0xFFFF,
+ EC_WORD_POKEMON,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .name = _("ANKE"),
+ .teamFlags = 0x20,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WHAT,
+ EC_WORD_IS,
+ EC_WORD_PRESSURE,
+ EC_WORD_STATIC,
+ EC_WORD_IS,
+ EC_WORD_SUPER,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .name = _("HANS"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_KID,
+ EC_WORD_YOU,
+ EC_WORD_CAN_T,
+ EC_WORD_DON_T,
+ EC_WORD_WINS,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .name = _("PETER"),
+ .teamFlags = 0x20,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_IT_S,
+ EC_WORD_QUITE,
+ EC_WORD_TERRIBLE,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ EC_WORD_MODE,
+ EC_WORD_I,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_EXPERT_F,
+ .name = _("MARA"),
+ .teamFlags = 0x20,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOU_RE,
+ EC_WORD_VERY,
+ EC_WORD_ALL_RIGHT,
+ EC_WORD_TRAINS,
+ EC_WORD_OR,
+ EC_WORD_QUES,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .name = _("DARIUS"),
+ .teamFlags = 0x11,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ EC_WORD_TOUGH,
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ EC_WORD_SCARY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_F,
+ .name = _("REGINA"),
+ .teamFlags = 0x12,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_TODAY,
+ EC_WORD_WIN,
+ EC_WORD_I,
+ EC_WORD_MAYBE,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .name = _("MAIKE"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_SO,
+ EC_WORD_AN,
+ EC_MOVE(SCARY_FACE),
+ EC_WORD_IS,
+ EC_WORD_NOT_VERY,
+ EC_WORD_KIND,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_F,
+ .name = _("SANDRA"),
+ .teamFlags = 0x04,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_SPORTS,
+ EC_WORD_IS,
+ EC_WORD_HEALTHY,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ EC_WORD_SPIRALING,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMON_RANGER_M,
+ .name = _("ARNOLD"),
+ .teamFlags = 0x08,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_AWESOME,
+ EC_WORD_WHO_WAS,
+ EC_WORD_POKEMON,
+ EC_WORD_THOSE,
+ EC_WORD_ROCK_SOLID,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .name = _("XENO"),
+ .teamFlags = 0x04,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_HOO_HAH,
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ EC_WORD_READY,
+ EC_WORD_FOR,
+ EC_WORD_SHADY,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_COOL_TRAINER_F,
+ .name = _("KARLA"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YOU,
+ EC_WORD_CAN_T,
+ EC_WORD_ME,
+ EC_WORD_NEVER,
+ EC_WORD_SMITE,
+ EC_WORD_KID,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .name = _("VOLKER"),
+ .teamFlags = 0x80,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_FROM,
+ EC_WORD_PLACE,
+ EC_WORD_TO,
+ EC_WORD_PLACE,
+ EC_WORD_POKEMON,
+ EC_WORD_WOWEE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .name = _("TOBIAS"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_THAT,
+ EC_WORD_ISN_T,
+ EC_WORD_SPORTS,
+ EC_WORD_IT_S,
+ EC_WORD_A,
+ EC_WORD_FIGHTING,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .name = _("NORBERT"),
+ .teamFlags = 0x20,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_MUST_BE,
+ EC_WORD_WINS,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ EC_WORD_PLEASE,
+ EC_WORD_PLEASE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .name = _("ZITA"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_THAT,
+ EC_WORD_IS,
+ EC_WORD_SCARY,
+ EC_WORD_PLEASE,
+ EC_WORD_BE,
+ EC_WORD_NICE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .name = _("ELKE"),
+ .teamFlags = 0x20,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WITHOUT,
+ EC_MOVE(FLAIL),
+ EC_WORD_NONE,
+ EC_MOVE(WITHDRAW),
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .name = _("VITUS"),
+ .teamFlags = 0x04,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_YAHOO,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ EC_WORD_LISTENS,
+ EC_WORD_HER,
+ EC_WORD_TO,
+ EC_WORD_QUES,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_EXPERT_M,
+ .name = _("MALTE"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_LEARN,
+ EC_WORD_CORRECT,
+ EC_WORD_TO,
+ EC_WORD_FIGHT,
+ 0xFFFF,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_M,
+ .name = _("TIM"),
+ .teamFlags = 0x40,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_IT_S,
+ EC_WORD_A,
+ EC_WORD_FIGHTING,
+ EC_WORD_NONE,
+ EC_WORD_CHILD_S_PLAY,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .name = _("GAVIN"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_SHADY,
+ EC_WORD_BABY,
+ EC_WORD_BABY,
+ EC_WORD_BABY,
+ 0xFFFF,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_PSYCHIC_M,
+ .name = _("RALF"),
+ .teamFlags = 0x08,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_STICKY_HOLD,
+ EC_WORD_THOSE,
+ EC_WORD_IMPORTANT,
+ EC_WORD_ISN_T_IT_QUES,
+ 0xFFFF,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_COOL_TRAINER_F,
+ .name = _("JENNY"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_I,
+ EC_WORD_SEARCH,
+ EC_WORD_TRAINER,
+ EC_WORD_ABSOLUTELY,
+ EC_WORD_TOUGH,
+ EC_WORD_THOSE,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_EXPERT_M,
+ .name = _("JOEL"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_BELIEVE,
+ EC_WORD_ON,
+ EC_WORD_YOURS,
+ EC_WORD_POKEMON,
+ EC_WORD_AND,
+ EC_WORD_WIN,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .name = _("KOLJA"),
+ .teamFlags = 0x0C,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_GIRL,
+ EC_WORD_WITH,
+ EC_MOVE2(FORESIGHT),
+ EC_WORD_THOSE,
+ EC_WORD_NICE,
+ 0xFFFF,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_COOL_TRAINER_M,
+ .name = _("BILL"),
+ .teamFlags = 0x01,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_WHO_WAS,
+ EC_WORD_POWER,
+ EC_WORD_IS,
+ EC_WORD_OVERWHELMING,
+ EC_WORD_DISAPPEAR,
+ EC_WORD_BETTER,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_EXPERT_F,
+ .name = _("CALLA"),
+ .teamFlags = 0x10,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_TRAINER,
+ EC_WORD_YOU,
+ EC_WORD_ARE,
+ EC_WORD_SEEMS,
+ EC_WORD_CAPABLE,
+ EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS,
+ },
+ },
+ },
+ {
+ .trainerClass = TRAINER_CLASS_LADY,
+ .name = _("GESA"),
+ .teamFlags = 0x02,
+ .greeting = {
+ .easyChat = {
+ EC_WORD_COME_ON,
+ EC_WORD_ABSOLUTELY,
+ EC_WORD_TIME,
+ EC_WORD_BECOMES,
+ EC_WORD_EXCELLENT,
+ 0xFFFF,
+ },
+ },
+ },
+};
diff --git a/src/data/credits_de.h b/src/data/credits_de.h
new file mode 100755
index 000000000..570c0d4c5
--- /dev/null
+++ b/src/data/credits_de.h
@@ -0,0 +1,624 @@
+static const u8 Text_Version_Ruby[] = _("POKéMON RUBIN-EDITION");
+static const u8 Text_Version_Sapphire[] = _("POKéMON SAPHIR-EDITION");
+static const u8 Category_Credits[] = _("{PALETTE 9}Credits");
+static const u8 Category_ExecutiveDirector[] = _("{PALETTE 9}Executive Director");
+static const u8 Category_Director[] = _("{PALETTE 9}Director");
+static const u8 Category_ArtDirector[] = _("{PALETTE 9}Art Director");
+static const u8 Category_BattleDirector[] = _("{PALETTE 9}Battle Director");
+static const u8 Category_MainProgrammer[] = _("{PALETTE 9}Main Programmer");
+static const u8 Category_BattleSystemProgrammer[] = _("{PALETTE 9}Battle System Programmer");
+static const u8 Category_FieldSystemProgrammer[] = _("{PALETTE 9}Field System Programmer");
+static const u8 Category_Programmers[] = _("{PALETTE 9}Programmers");
+static const u8 Category_MainGraphicDesigner[] = _("{PALETTE 9}Main Graphic Designer");
+static const u8 Category_POKeMONGraphicDesigners[] = _("{PALETTE 9}POKéMON & Graphic Designers");
+static const u8 Category_POKeMONDesigners[] = _("{PALETTE 9}POKéMON Designers");
+static const u8 Category_MusicComposition[] = _("{PALETTE 9}Music Composition");
+static const u8 Category_SoundEffectsPOKeMONVoices[] = _("{PALETTE 9}Sound Effects & POKéMON Voices");
+static const u8 Category_GameDesigners[] = _("{PALETTE 9}Game Designers");
+static const u8 Category_PlotScenario[] = _("{PALETTE 9}Plot Scenario");
+static const u8 Category_GameScenario[] = _("{PALETTE 9}Game Scenario");
+static const u8 Category_ScriptDesigners[] = _("{PALETTE 9}Script Designers");
+static const u8 Category_MapDesigners[] = _("{PALETTE 9}Map Designers");
+static const u8 Category_MapDataDesigners[] = _("{PALETTE 9}Map Data Designers");
+static const u8 Category_ParametricDesigners[] = _("{PALETTE 9}Parametric Designers");
+static const u8 Category_POKeDEXText[] = _("{PALETTE 9}POKéDEX Text");
+static const u8 Category_EnvironmentToolProgrammers[] = _("{PALETTE 9}Environment & Tool Programmers");
+static const u8 Category_ProductTesting[] = _("{PALETTE 9}Product Testing");
+static const u8 Category_SpecialThanks[] = _("{PALETTE 9}Special Thanks");
+static const u8 Category_Coordinators[] = _("{PALETTE 9}Coordinators");
+static const u8 Category_Producers[] = _("{PALETTE 9}Producers");
+static const u8 Category_ExecutiveProducers[] = _("{PALETTE 9}Executive Producers");
+static const u8 Category_InformationSupervisors[] = _("{PALETTE 9}Information Supervisors");
+static const u8 Category_TaskManagers[] = _("{PALETTE 9}Task Managers");
+static const u8 Category_BrailleCodeCheck[] = _("{PALETTE 9}Braille Code Check");
+static const u8 Category_GermanVersionCoordinators[] = _("{PALETTE 9}German Version Coordinators");
+static const u8 Category_Translators[] = _("{PALETTE 9}Translators");
+static const u8 Category_ProductSupport[] = _("{PALETTE 9}Product Support");
+static const u8 Category_Artwork[] = _("{PALETTE 9}Artwork");
+static const u8 Category_TextEditor[] = _("{PALETTE 9}Text Editor");
+static const u8 Category_NOEProductTesting[] = _("{PALETTE 9}NOE Product Testing");
+static const u8 Category_GraphicDesigners[] = _("{PALETTE 9}Graphic Designers");
+static const u8 Text_SatoshiTajiri[] = _("Satoshi Tajiri");
+static const u8 Text_Masuda[] = _("Junichi Masuda");
+static const u8 Text_Sugimori[] = _("Ken Sugimori");
+static const u8 Text_Morimoto[] = _("Shigeki Morimoto");
+static const u8 Text_TetsuyaWatanabe[] = _("Tetsuya Watanabe");
+static const u8 Text_Sogabe[] = _("Hisashi Sogabe");
+static const u8 Text_Tamada[] = _("Sousuke Tamada");
+static const u8 Text_Mori[] = _("Akito Mori");
+static const u8 Text_Kagaya[] = _("Keita Kagaya");
+static const u8 Text_Matsuda[] = _("Yoshinori Matsuda");
+static const u8 Text_HiroyukiNakamura[] = _("Hiroyuki Nakamura");
+static const u8 Text_Taya[] = _("Masao Taya");
+static const u8 Text_Nohara[] = _("Satoshi Nohara");
+static const u8 Text_TomomichiOhta[] = _("Tomomichi Ohta");
+static const u8 Text_Iwasawa[] = _("Miyuki Iwasawa");
+static const u8 Text_TakenoriOhta[] = _("Takenori Ohta");
+static const u8 Text_Yoshida[] = _("Hironobu Yoshida");
+static const u8 Text_Fujiwara[] = _("Motofumi Fujiwara");
+static const u8 Text_SatoshiOhta[] = _("Satoshi Ohta");
+static const u8 Text_Iwashita[] = _("Asuka Iwashita");
+static const u8 Text_Tomita[] = _("Aimi Tomita");
+static const u8 Text_Unno[] = _("Takao Unno");
+static const u8 Text_Eo[] = _("Kanako Eo");
+static const u8 Text_Okutani[] = _("Jun Okutani");
+static const u8 Text_Nishida[] = _("Atsuko Nishida");
+static const u8 Text_Saito[] = _("Muneo Saito");
+static const u8 Text_Yoshikawa[] = _("Rena Yoshikawa");
+static const u8 Text_Ichinose[] = _("Go Ichinose");
+static const u8 Text_Aoki[] = _("Morikazu Aoki");
+static const u8 Text_Nishino[] = _("Koji Nishino");
+static const u8 Text_Matsushima[] = _("Kenji Matsushima");
+static const u8 Text_TetsujiOhta[] = _("Tetsuji Ohta");
+static const u8 Text_Sato[] = _("Hitomi Sato");
+static const u8 Text_Kawachimaru[] = _("Takeshi Kawachimaru");
+static const u8 Text_Shimoyamada[] = _("Teruyuki Shimoyamada");
+static const u8 Text_Ohmori[] = _("Shigeru Ohmori");
+static const u8 Text_Takahashi[] = _("Tadashi Takahashi");
+static const u8 Text_ToshinobuMatsumiya[] = _("Toshinobu Matsumiya");
+static const u8 Text_Tomisawa[] = _("Akihito Tomisawa");
+static const u8 Text_Enomoto[] = _("Hiroki Enomoto");
+static const u8 Text_Terada[] = _("Kazuyuki Terada");
+static const u8 Text_Sakurai[] = _("Yuri Sakurai");
+static const u8 Text_Sagawa[] = _("Hiromi Sagawa");
+static const u8 Text_Tominaga[] = _("Kenji Tominaga");
+static const u8 Text_YoshioTajiri[] = _("Yoshio Tajiri");
+static const u8 Text_Sasaki[] = _("Teiko Sasaki");
+static const u8 Text_Hamano[] = _("Sachiko Hamano");
+static const u8 Text_ChieMatsumiya[] = _("Chie Matsumiya");
+static const u8 Text_Shinozaki[] = _("Akiko Shinozaki");
+static const u8 Text_Fujii[] = _("Atsuko Fujii");
+static const u8 Text_SuperMarioClub[] = _("NCL Super Mario Club");
+static const u8 Text_Tada[] = _("Atsushi Tada");
+static const u8 Text_Ohnishi[] = _("Takahiro Ohnishi");
+static const u8 Text_Okamura[] = _("Norihide Okamura");
+static const u8 Text_HiroNakamura[] = _("Hiro Nakamura");
+static const u8 Text_Uesugi[] = _("Hiroyuki Uesugi");
+static const u8 Text_Murakawa[] = _("Teruki Murakawa");
+static const u8 Text_Kinashi[] = _("Akira Kinashi");
+static const u8 Text_Takizawa[] = _("Michiko Takizawa");
+static const u8 Text_Takada[] = _("Makiko Takada");
+static const u8 Text_Kondo[] = _("Takanao Kondo");
+static const u8 Text_Mashima[] = _("Ai Mashima");
+static const u8 Text_Nomoto[] = _("Gakuji Nomoto");
+static const u8 Text_Izushi[] = _("Takehiro Izushi");
+static const u8 Text_Yamagami[] = _("Hitoshi Yamagami");
+static const u8 Text_KyokoWatanabe[] = _("Kyoko Watanabe");
+static const u8 Text_Nakano[] = _("Takao Nakano");
+static const u8 Text_Jinnai[] = _("Hiroyuki Jinnai");
+static const u8 Text_Tsuru[] = _("Hiroaki Tsuru");
+static const u8 Text_Ishihara[] = _("Tsunekaz Ishihara");
+static const u8 Text_Iwata[] = _("Satoru Iwata");
+static const u8 Text_Suyama[] = _("Kazuya Suyama");
+static const u8 Text_Mitsuhara[] = _("Satoshi Mitsuhara");
+static const u8 Text_JapanBrailleLibrary[] = _("Japan Braille Library");
+static const u8 Text_Komura[] = _("Tomotaka Komura");
+static const u8 Text_Ohashi[] = _("Mikiko Ohashi");
+static const u8 Text_Yamamoto[] = _("Souichi Yamamoto");
+static const u8 Text_Funakoshi[] = _("Masanori Funakoshi");
+static const u8 Text_Nakamichi[] = _("Kimiko Nakamichi");
+static const u8 Text_Hara[] = _("Daisuke Hara");
+static const u8 Text_Ford[] = _("Sayoko Blodgett-Ford");
+static const u8 Text_Barlow[] = _("Nicola Pratt-Barlow");
+static const u8 Text_Uyama[] = _("Koji Uyama");
+static const u8 Text_EBU[] = _("European Blind Union");
+static const u8 Text_Saeki[] = _("Naoko Saeki");
+static const u8 Text_Sadahisa[] = _("Kayo Sadahisa");
+static const u8 Text_Schafer[] = _("Daniel Schäfers");
+static const u8 Text_Deimel[] = _("Martina Deimel");
+static const u8 Text_Jahn[] = _("Andrea Jähn");
+static const u8 Text_Victoria[] = _("Ángel Victoria");
+static const u8 Text_Mawer[] = _("Matthew Mawer");
+static const u8 Text_Danieli[] = _("Alessio Danieli");
+static const u8 Text_Schnitzer[] = _("Rudi Schnitzer");
+static const u8 Text_Pujos[] = _("Gabriera Pujós");
+static const u8 Text_CreditsTerminator[] = _("");
+
+static const struct CreditsEntry CreditsTerminator[] = {0, Text_CreditsTerminator};
+static const struct CreditsEntry CreditsCredits[] = {11, Category_Credits};
+static const struct CreditsEntry CreditsExecutiveDirector[] = {8, Category_ExecutiveDirector};
+static const struct CreditsEntry CreditsDirector[] = {12, Category_Director};
+static const struct CreditsEntry CreditsArtDirector[] = {10, Category_ArtDirector};
+static const struct CreditsEntry CreditsBattleDirector[] = {10, Category_BattleDirector};
+static const struct CreditsEntry CreditsMainProgrammer[] = {10, Category_MainProgrammer};
+static const struct CreditsEntry CreditsBattleSystemProgrammer[] = {8, Category_BattleSystemProgrammer};
+static const struct CreditsEntry CreditsFieldSystemProgrammer[] = {7, Category_FieldSystemProgrammer};
+static const struct CreditsEntry CreditsProgrammers[] = {12, Category_Programmers};
+static const struct CreditsEntry CreditsMainGraphicDesigner[] = {7, Category_MainGraphicDesigner};
+static const struct CreditsEntry CreditsPOKeMONGraphicDesigners[] = {6, Category_POKeMONGraphicDesigners};
+static const struct CreditsEntry CreditsPOKeMONDesigners[] = {10, Category_POKeMONDesigners};
+static const struct CreditsEntry CreditsMusicComposition[] = {13, Category_MusicComposition};
+static const struct CreditsEntry CreditsSoundEffectsPOKeMONVoices[] = {4, Category_SoundEffectsPOKeMONVoices};
+static const struct CreditsEntry CreditsGameDesigners[] = {11, Category_GameDesigners};
+static const struct CreditsEntry CreditsPlotScenario[] = {11, Category_PlotScenario};
+static const struct CreditsEntry CreditsGameScenario[] = {13, Category_GameScenario};
+static const struct CreditsEntry CreditsScriptDesigners[] = {10, Category_ScriptDesigners};
+static const struct CreditsEntry CreditsMapDesigners[] = {11, Category_MapDesigners};
+static const struct CreditsEntry CreditsMapDataDesigners[] = {9, Category_MapDataDesigners};
+static const struct CreditsEntry CreditsParametricDesigners[] = {9, Category_ParametricDesigners};
+static const struct CreditsEntry CreditsPOKeDEXText[] = {11, Category_POKeDEXText};
+static const struct CreditsEntry CreditsEnvironmentToolProgrammers[] = {6, Category_EnvironmentToolProgrammers};
+static const struct CreditsEntry CreditsProductTesting[] = {11, Category_ProductTesting};
+static const struct CreditsEntry CreditsSpecialThanks[] = {10, Category_SpecialThanks};
+static const struct CreditsEntry CreditsCoordinators[] = {11, Category_Coordinators};
+static const struct CreditsEntry CreditsProducers[] = {11, Category_Producers};
+static const struct CreditsEntry CreditsExecutiveProducers[] = {7, Category_ExecutiveProducers};
+static const struct CreditsEntry CreditsInformationSupervisors[] = {10, Category_InformationSupervisors};
+static const struct CreditsEntry CreditsTaskManagers[] = {8, Category_TaskManagers};
+static const struct CreditsEntry CreditsBrailleCodeCheck[] = {10, Category_BrailleCodeCheck};
+static const struct CreditsEntry CreditsSatoshiTajiri[] = {11, Text_SatoshiTajiri};
+static const struct CreditsEntry CreditsMasuda[] = {11, Text_Masuda};
+static const struct CreditsEntry CreditsSugimori[] = {11, Text_Sugimori};
+static const struct CreditsEntry CreditsMorimoto[] = {11, Text_Morimoto};
+static const struct CreditsEntry CreditsTetsuyaWatanabe[] = {11, Text_TetsuyaWatanabe};
+static const struct CreditsEntry CreditsSogabe[] = {11, Text_Sogabe};
+static const struct CreditsEntry CreditsTamada[] = {11, Text_Tamada};
+static const struct CreditsEntry CreditsMori[] = {11, Text_Mori};
+static const struct CreditsEntry CreditsKagaya[] = {11, Text_Kagaya};
+static const struct CreditsEntry CreditsMatsuda[] = {11, Text_Matsuda};
+static const struct CreditsEntry CreditsHiroyukiNakamura[] = {11, Text_HiroyukiNakamura};
+static const struct CreditsEntry CreditsTaya[] = {11, Text_Taya};
+static const struct CreditsEntry CreditsNohara[] = {11, Text_Nohara};
+static const struct CreditsEntry CreditsTomomichiOhta[] = {11, Text_TomomichiOhta};
+static const struct CreditsEntry CreditsIwasawa[] = {11, Text_Iwasawa};
+static const struct CreditsEntry CreditsTakenoriOhta[] = {11, Text_TakenoriOhta};
+static const struct CreditsEntry CreditsYoshida[] = {11, Text_Yoshida};
+static const struct CreditsEntry CreditsFujiwara[] = {11, Text_Fujiwara};
+static const struct CreditsEntry CreditsSatoshiOhta[] = {11, Text_SatoshiOhta};
+static const struct CreditsEntry CreditsIwashita[] = {11, Text_Iwashita};
+static const struct CreditsEntry CreditsTomita[] = {11, Text_Tomita};
+static const struct CreditsEntry CreditsUnno[] = {11, Text_Unno};
+static const struct CreditsEntry CreditsEo[] = {11, Text_Eo};
+static const struct CreditsEntry CreditsOkutani[] = {11, Text_Okutani};
+static const struct CreditsEntry CreditsNishida[] = {11, Text_Nishida};
+static const struct CreditsEntry CreditsSaito[] = {11, Text_Saito};
+static const struct CreditsEntry CreditsYoshikawa[] = {11, Text_Yoshikawa};
+static const struct CreditsEntry CreditsIchinose[] = {11, Text_Ichinose};
+static const struct CreditsEntry CreditsAoki[] = {11, Text_Aoki};
+static const struct CreditsEntry CreditsNishino[] = {11, Text_Nishino};
+static const struct CreditsEntry CreditsMatsushima[] = {11, Text_Matsushima};
+static const struct CreditsEntry CreditsTetsujiOhta[] = {11, Text_TetsujiOhta};
+static const struct CreditsEntry CreditsSato[] = {11, Text_Sato};
+static const struct CreditsEntry CreditsKawachimaru[] = {11, Text_Kawachimaru};
+static const struct CreditsEntry CreditsShimoyamada[] = {11, Text_Shimoyamada};
+static const struct CreditsEntry CreditsOhmori[] = {11, Text_Ohmori};
+static const struct CreditsEntry CreditsTakahashi[] = {11, Text_Takahashi};
+static const struct CreditsEntry CreditsToshinobuMatsumiya[] = {11, Text_ToshinobuMatsumiya};
+static const struct CreditsEntry CreditsTomisawa[] = {11, Text_Tomisawa};
+static const struct CreditsEntry CreditsEnomoto[] = {11, Text_Enomoto};
+static const struct CreditsEntry CreditsTerada[] = {11, Text_Terada};
+static const struct CreditsEntry CreditsSakurai[] = {11, Text_Sakurai};
+static const struct CreditsEntry CreditsSagawa[] = {11, Text_Sagawa};
+static const struct CreditsEntry CreditsTominaga[] = {11, Text_Tominaga};
+static const struct CreditsEntry CreditsYoshioTajiri[] = {11, Text_YoshioTajiri};
+static const struct CreditsEntry CreditsSasaki[] = {11, Text_Sasaki};
+static const struct CreditsEntry CreditsHamano[] = {11, Text_Hamano};
+static const struct CreditsEntry CreditsChieMatsumiya[] = {11, Text_ChieMatsumiya};
+static const struct CreditsEntry CreditsShinozaki[] = {11, Text_Shinozaki};
+static const struct CreditsEntry CreditsFujii[] = {11, Text_Fujii};
+static const struct CreditsEntry CreditsSuperMarioClub[] = {11, Text_SuperMarioClub};
+static const struct CreditsEntry CreditsTada[] = {11, Text_Tada};
+static const struct CreditsEntry CreditsOhnishi[] = {11, Text_Ohnishi};
+static const struct CreditsEntry CreditsOkamura[] = {11, Text_Okamura};
+static const struct CreditsEntry CreditsHiroNakamura[] = {11, Text_HiroNakamura};
+static const struct CreditsEntry CreditsUesugi[] = {11, Text_Uesugi};
+static const struct CreditsEntry CreditsMurakawa[] = {11, Text_Murakawa};
+static const struct CreditsEntry CreditsKinashi[] = {11, Text_Kinashi};
+static const struct CreditsEntry CreditsTakizawa[] = {11, Text_Takizawa};
+static const struct CreditsEntry CreditsTakada[] = {11, Text_Takada};
+static const struct CreditsEntry CreditsKondo[] = {11, Text_Kondo};
+static const struct CreditsEntry CreditsMashima[] = {11, Text_Mashima};
+static const struct CreditsEntry CreditsNomoto[] = {11, Text_Nomoto};
+static const struct CreditsEntry CreditsIzushi[] = {11, Text_Izushi};
+static const struct CreditsEntry CreditsYamagami[] = {11, Text_Yamagami};
+static const struct CreditsEntry CreditsKyokoWatanabe[] = {11, Text_KyokoWatanabe};
+static const struct CreditsEntry CreditsNakano[] = {11, Text_Nakano};
+static const struct CreditsEntry CreditsJinnai[] = {11, Text_Jinnai};
+static const struct CreditsEntry CreditsTsuru[] = {11, Text_Tsuru};
+static const struct CreditsEntry CreditsIshihara[] = {11, Text_Ishihara};
+static const struct CreditsEntry CreditsIwata[] = {11, Text_Iwata};
+static const struct CreditsEntry CreditsSuyama[] = {11, Text_Suyama};
+static const struct CreditsEntry CreditsMitsuhara[] = {11, Text_Mitsuhara};
+static const struct CreditsEntry CreditsJapanBrailleLibrary[] = {9, Text_JapanBrailleLibrary};
+static const struct CreditsEntry CreditsKomura[] = {11, Text_Komura};
+static const struct CreditsEntry CreditsOhashi[] = {11, Text_Ohashi};
+static const struct CreditsEntry CreditsTranslators[] = {0, Category_Translators};
+static const struct CreditsEntry CreditsProductSupport[] = {0, Category_ProductSupport};
+static const struct CreditsEntry CreditsArtwork[] = {0, Category_Artwork};
+static const struct CreditsEntry CreditsTextEditor[] = {0, Category_TextEditor};
+static const struct CreditsEntry CreditsGraphicDesigners[] = {0, Category_GraphicDesigners};
+static const struct CreditsEntry CreditsYamamoto[] = {0, Text_Yamamoto};
+static const struct CreditsEntry CreditsFunakoshi[] = {0, Text_Funakoshi};
+static const struct CreditsEntry CreditsNakamichi[] = {0, Text_Nakamichi};
+static const struct CreditsEntry CreditsHara[] = {0, Text_Hara};
+static const struct CreditsEntry CreditsFord[] = {0, Text_Ford};
+static const struct CreditsEntry CreditsBarlow[] = {0, Text_Barlow};
+static const struct CreditsEntry CreditsUyama[] = {0, Text_Uyama};
+static const struct CreditsEntry CreditsEBU[] = {0, Text_EBU};
+#ifdef SAPPHIRE
+static const struct CreditsEntry CreditsVersion[] = {0, Text_Version_Sapphire};
+#else
+static const struct CreditsEntry CreditsVersion[] = {0, Text_Version_Ruby};
+#endif
+static const struct CreditsEntry CreditsNOEProductTesting[] = {0, Category_NOEProductTesting};
+static const struct CreditsEntry CreditsSaeki[] = {0, Text_Saeki};
+static const struct CreditsEntry CreditsSadahisa[] = {0, Text_Sadahisa};
+static const struct CreditsEntry CreditsGermanVersionCoordinators[] = {0, Category_GermanVersionCoordinators};
+static const struct CreditsEntry CreditsSchafer[] = {0, Text_Schafer};
+static const struct CreditsEntry CreditsDeimel[] = {0, Text_Deimel};
+static const struct CreditsEntry CreditsJahn[] = {0, Text_Jahn};
+static const struct CreditsEntry CreditsVictoria[] = {0, Text_Victoria};
+static const struct CreditsEntry CreditsMawer[] = {0, Text_Mawer};
+static const struct CreditsEntry CreditsDanieli[] = {0, Text_Danieli};
+static const struct CreditsEntry CreditsSchnitzer[] = {0, Text_Schnitzer};
+static const struct CreditsEntry CreditsPujos[] = {0, Text_Pujos};
+
+#define LINES_PER_PAGE 5
+#define _ CreditsTerminator
+const struct CreditsEntry *const gCreditsEntryPointerTable[][LINES_PER_PAGE] =
+{
+ {
+ _,
+ CreditsVersion,
+ CreditsCredits,
+ _,
+ _
+ },
+ {
+ _,
+ CreditsDirector,
+ CreditsMasuda,
+ _,
+ _
+ },
+ {
+ _,
+ CreditsArtDirector,
+ CreditsSugimori,
+ _,
+ _
+ },
+ {
+ _,
+ CreditsBattleDirector,
+ CreditsMorimoto,
+ _,
+ _
+ },
+ {
+ _,
+ CreditsMainProgrammer,
+ CreditsTetsuyaWatanabe,
+ _,
+ _
+ },
+ {
+ CreditsBattleSystemProgrammer,
+ CreditsSogabe,
+ CreditsFieldSystemProgrammer,
+ CreditsTamada,
+ _
+ },
+ {
+ CreditsProgrammers,
+ CreditsMori,
+ CreditsKagaya,
+ CreditsMatsuda,
+ _
+ },
+ {
+ CreditsProgrammers,
+ CreditsHiroyukiNakamura,
+ CreditsTaya,
+ CreditsNohara,
+ _
+ },
+ {
+ CreditsProgrammers,
+ CreditsTomomichiOhta,
+ CreditsIwasawa,
+ CreditsTakenoriOhta,
+ _
+ },
+ {
+ _,
+ CreditsMainGraphicDesigner,
+ CreditsYoshida,
+ _,
+ _
+ },
+ {
+ CreditsPOKeMONGraphicDesigners,
+ CreditsSugimori,
+ CreditsYoshida,
+ _,
+ _
+ },
+ {
+ CreditsPOKeMONGraphicDesigners,
+ CreditsFujiwara,
+ CreditsSatoshiOhta,
+ CreditsIwashita,
+ _
+ },
+ {
+ CreditsPOKeMONGraphicDesigners,
+ CreditsTomita,
+ CreditsUnno,
+ CreditsEo,
+ _
+ },
+ {
+ CreditsPOKeMONDesigners,
+ CreditsMorimoto,
+ CreditsOkutani,
+ CreditsNishida,
+ _
+ },
+ {
+ CreditsPOKeMONDesigners,
+ CreditsSaito,
+ CreditsYoshikawa,
+ _,
+ _
+ },
+ {
+ CreditsMusicComposition,
+ CreditsIchinose,
+ CreditsAoki,
+ CreditsMasuda,
+ _
+ },
+ {
+ _,
+ CreditsSoundEffectsPOKeMONVoices,
+ CreditsAoki,
+ _,
+ _
+ },
+ {
+ CreditsGameDesigners,
+ CreditsMasuda,
+ CreditsMorimoto,
+ CreditsNishino,
+ _
+ },
+ {
+ CreditsGameDesigners,
+ CreditsMatsushima,
+ CreditsTetsujiOhta,
+ CreditsSato,
+ CreditsKawachimaru
+ },
+ {
+ CreditsGameDesigners,
+ CreditsShimoyamada,
+ CreditsOhmori,
+ CreditsTakahashi,
+ _
+ },
+ {
+ CreditsPlotScenario,
+ CreditsMasuda,
+ CreditsTomisawa,
+ CreditsNishino,
+ _
+ },
+ {
+ CreditsGameScenario,
+ CreditsToshinobuMatsumiya,
+ CreditsTomisawa,
+ _,
+ _
+ },
+ {
+ CreditsScriptDesigners,
+ CreditsNohara,
+ CreditsTetsujiOhta,
+ CreditsTomomichiOhta,
+ _
+ },
+ {
+ CreditsMapDesigners,
+ CreditsOhmori,
+ CreditsTetsujiOhta,
+ CreditsNishino,
+ _
+ },
+ {
+ CreditsMapDataDesigners,
+ CreditsTetsujiOhta,
+ CreditsTakahashi,
+ _,
+ _
+ },
+ {
+ CreditsParametricDesigners,
+ CreditsNishino,
+ CreditsMorimoto,
+ CreditsTetsujiOhta,
+ CreditsShimoyamada
+ },
+ {
+ _,
+ CreditsPOKeDEXText,
+ CreditsMatsushima,
+ _,
+ _
+ },
+ {
+ CreditsEnvironmentToolProgrammers,
+ CreditsSogabe,
+ CreditsTamada,
+ CreditsHiroyukiNakamura,
+ CreditsMori
+ },
+ {
+ CreditsProductTesting,
+ CreditsSuperMarioClub,
+ CreditsTada,
+ CreditsOhnishi,
+ CreditsOkamura
+ },
+ {
+ CreditsSpecialThanks,
+ CreditsTominaga,
+ CreditsYoshioTajiri,
+ CreditsSasaki,
+ _
+ },
+ {
+ CreditsSpecialThanks,
+ CreditsHamano,
+ CreditsChieMatsumiya,
+ CreditsShinozaki,
+ CreditsFujii
+ },
+ {
+ CreditsSpecialThanks,
+ CreditsSuyama,
+ CreditsMitsuhara,
+ CreditsKomura,
+ CreditsOhashi
+ },
+ {
+ CreditsSpecialThanks,
+ CreditsTakizawa,
+ CreditsTakada,
+ CreditsKondo,
+ CreditsMashima
+ },
+ {
+ CreditsInformationSupervisors,
+ CreditsEnomoto,
+ CreditsTerada,
+ CreditsSakurai,
+ CreditsSagawa
+ },
+ {
+ CreditsCoordinators,
+ CreditsKyokoWatanabe,
+ CreditsNakano,
+ _,
+ _
+ },
+ {
+ CreditsTaskManagers,
+ CreditsYamagami,
+ CreditsNomoto,
+ _,
+ _
+ },
+ {
+ CreditsProducers,
+ CreditsJinnai,
+ CreditsIzushi,
+ CreditsTsuru,
+ _
+ },
+ {
+ _,
+ CreditsExecutiveDirector,
+ CreditsSatoshiTajiri,
+ _,
+ _
+ },
+ {
+ _,
+ CreditsExecutiveProducers,
+ CreditsIwata,
+ _,
+ _
+ },
+ {
+ _,
+ CreditsExecutiveProducers,
+ CreditsIshihara,
+ _,
+ _
+ },
+ {
+ CreditsGermanVersionCoordinators,
+ CreditsUesugi,
+ CreditsSadahisa,
+ _,
+ _
+ },
+ {
+ CreditsTranslators,
+ CreditsSchafer,
+ CreditsDeimel,
+ CreditsJahn,
+ _
+ },
+ {
+ CreditsProgrammers,
+ CreditsMurakawa,
+ CreditsYamamoto,
+ CreditsKinashi,
+ _
+ },
+ {
+ CreditsGraphicDesigners,
+ CreditsYamamoto,
+ CreditsKinashi,
+ _,
+ _
+ },
+ {
+ CreditsProductSupport,
+ CreditsNakamichi,
+ CreditsSaeki,
+ CreditsHara,
+ _
+ },
+ {
+ CreditsNOEProductTesting,
+ CreditsVictoria,
+ CreditsMawer,
+ CreditsDanieli,
+ CreditsSchnitzer
+ },
+ {
+ _,
+ CreditsBrailleCodeCheck,
+ CreditsEBU,
+ _,
+ _
+ },
+ {
+ CreditsSpecialThanks,
+ CreditsHiroNakamura,
+ CreditsFord,
+ CreditsBarlow,
+ _
+ },
+ {
+ CreditsSpecialThanks,
+ CreditsUyama,
+ CreditsPujos,
+ _,
+ _
+ },
+};
+#undef _
diff --git a/src/data/credits_en.h b/src/data/credits_en.h
new file mode 100755
index 000000000..8ce0bad03
--- /dev/null
+++ b/src/data/credits_en.h
@@ -0,0 +1,654 @@
+const u8 Category_Credits[] = _("{PALETTE 9}Credits");
+const u8 Category_ExecutiveDirector[] = _("{PALETTE 9}Executive Director");
+const u8 Category_Director[] = _("{PALETTE 9}Director");
+const u8 Category_ArtDirector[] = _("{PALETTE 9}Art Director");
+const u8 Category_BattleDirector[] = _("{PALETTE 9}Battle Director");
+const u8 Category_MainProgrammer[] = _("{PALETTE 9}Main Programmer");
+const u8 Category_BattleSystemProgrammer[] = _("{PALETTE 9}Battle System Programmer");
+const u8 Category_FieldSystemProgrammer[] = _("{PALETTE 9}Field System Programmer");
+const u8 Category_Programmers[] = _("{PALETTE 9}Programmers");
+const u8 Category_MainGraphicDesigner[] = _("{PALETTE 9}Main Graphic Designer");
+const u8 Category_POKeMONGraphicDesigners[] = _("{PALETTE 9}POKéMON & Graphic Designers");
+const u8 Category_POKeMONDesigners[] = _("{PALETTE 9}POKéMON Designers");
+const u8 Category_MusicComposition[] = _("{PALETTE 9}Music Composition");
+const u8 Category_SoundEffectsPOKeMONVoices[] = _("{PALETTE 9}Sound Effects & POKéMON Voices");
+const u8 Category_GameDesigners[] = _("{PALETTE 9}Game Designers");
+const u8 Category_PlotScenario[] = _("{PALETTE 9}Plot Scenario");
+const u8 Category_GameScenario[] = _("{PALETTE 9}Game Scenario");
+const u8 Category_ScriptDesigners[] = _("{PALETTE 9}Script Designers");
+const u8 Category_MapDesigners[] = _("{PALETTE 9}Map Designers");
+const u8 Category_MapDataDesigners[] = _("{PALETTE 9}Map Data Designers");
+const u8 Category_ParametricDesigners[] = _("{PALETTE 9}Parametric Designers");
+const u8 Category_POKeDEXText[] = _("{PALETTE 9}POKéDEX Text");
+const u8 Category_EnvironmentToolProgrammers[] = _("{PALETTE 9}Environment & Tool Programmers");
+const u8 Category_ProductTesting[] = _("{PALETTE 9}Product Testing");
+const u8 Category_SpecialThanks[] = _("{PALETTE 9}Special Thanks");
+const u8 Category_Coordinators[] = _("{PALETTE 9}Coordinators");
+const u8 Category_Producers[] = _("{PALETTE 9}Producers");
+const u8 Category_ExecutiveProducers[] = _("{PALETTE 9}Executive Producers");
+const u8 Category_InformationSupervisors[] = _("{PALETTE 9}Information Supervisors");
+const u8 Category_TaskManagers[] = _("{PALETTE 9}Task Managers");
+const u8 Category_BrailleCodeCheck[] = _("{PALETTE 9}Braille Code Check");
+const u8 Category_EnglishVersionCoordinators[] = _("{PALETTE 9}English Version Coordinators");
+const u8 Category_Translator[] = _("{PALETTE 9}Translator");
+const u8 Category_ProductSupport[] = _("{PALETTE 9}Product Support");
+const u8 Category_Artwork[] = _("{PALETTE 9}Artwork");
+const u8 Category_TextEditor[] = _("{PALETTE 9}Text Editor");
+const u8 Category_NOAProductTesting[] = _("{PALETTE 9}NOA Product Testing");
+const u8 Category_GraphicDesigners[] = _("{PALETTE 9}Graphic Designers");
+const u8 Text_SatoshiTajiri[] = _("Satoshi Tajiri");
+const u8 Text_Masuda[] = _("Junichi Masuda");
+const u8 Text_Sugimori[] = _("Ken Sugimori");
+const u8 Text_Morimoto[] = _("Shigeki Morimoto");
+const u8 Text_TetsuyaWatanabe[] = _("Tetsuya Watanabe");
+const u8 Text_Sogabe[] = _("Hisashi Sogabe");
+const u8 Text_Tamada[] = _("Sousuke Tamada");
+const u8 Text_Mori[] = _("Akito Mori");
+const u8 Text_Kagaya[] = _("Keita Kagaya");
+const u8 Text_Matsuda[] = _("Yoshinori Matsuda");
+const u8 Text_HiroyukiNakamura[] = _("Hiroyuki Nakamura");
+const u8 Text_Taya[] = _("Masao Taya");
+const u8 Text_Nohara[] = _("Satoshi Nohara");
+const u8 Text_TomomichiOhta[] = _("Tomomichi Ohta");
+const u8 Text_Iwasawa[] = _("Miyuki Iwasawa");
+const u8 Text_TakenoriOhta[] = _("Takenori Ohta");
+const u8 Text_Yoshida[] = _("Hironobu Yoshida");
+const u8 Text_Fujiwara[] = _("Motofumi Fujiwara");
+const u8 Text_SatoshiOhta[] = _("Satoshi Ohta");
+const u8 Text_Iwashita[] = _("Asuka Iwashita");
+const u8 Text_Tomita[] = _("Aimi Tomita");
+const u8 Text_Unno[] = _("Takao Unno");
+const u8 Text_Eo[] = _("Kanako Eo");
+const u8 Text_Okutani[] = _("Jun Okutani");
+const u8 Text_Nishida[] = _("Atsuko Nishida");
+const u8 Text_Saito[] = _("Muneo Saito");
+const u8 Text_Yoshikawa[] = _("Rena Yoshikawa");
+const u8 Text_Ichinose[] = _("Go Ichinose");
+const u8 Text_Aoki[] = _("Morikazu Aoki");
+const u8 Text_Nishino[] = _("Koji Nishino");
+const u8 Text_Matsushima[] = _("Kenji Matsushima");
+const u8 Text_TetsujiOhta[] = _("Tetsuji Ohta");
+const u8 Text_Sato[] = _("Hitomi Sato");
+const u8 Text_Kawachimaru[] = _("Takeshi Kawachimaru");
+const u8 Text_Shimoyamada[] = _("Teruyuki Shimoyamada");
+const u8 Text_Ohmori[] = _("Shigeru Ohmori");
+const u8 Text_Takahashi[] = _("Tadashi Takahashi");
+const u8 Text_ToshinobuMatsumiya[] = _("Toshinobu Matsumiya");
+const u8 Text_Tomisawa[] = _("Akihito Tomisawa");
+const u8 Text_Enomoto[] = _("Hiroki Enomoto");
+const u8 Text_Terada[] = _("Kazuyuki Terada");
+const u8 Text_Sakurai[] = _("Yuri Sakurai");
+const u8 Text_Sagawa[] = _("Hiromi Sagawa");
+const u8 Text_Tominaga[] = _("Kenji Tominaga");
+const u8 Text_YoshioTajiri[] = _("Yoshio Tajiri");
+const u8 Text_Sasaki[] = _("Teiko Sasaki");
+const u8 Text_Hamano[] = _("Sachiko Hamano");
+const u8 Text_ChieMatsumiya[] = _("Chie Matsumiya");
+const u8 Text_Shinozaki[] = _("Akiko Shinozaki");
+const u8 Text_Fujii[] = _("Atsuko Fujii");
+const u8 Text_SuperMarioClub[] = _("NCL Super Mario Club");
+const u8 Text_Tada[] = _("Atsushi Tada");
+const u8 Text_Ohnishi[] = _("Takahiro Ohnishi");
+const u8 Text_Okamura[] = _("Norihide Okamura");
+const u8 Text_HiroNakamura[] = _("Hiro Nakamura");
+const u8 Text_Uesugi[] = _("Hiroyuki Uesugi");
+const u8 Text_Murakawa[] = _("Teruki Murakawa");
+const u8 Text_Kinashi[] = _("Akira Kinashi");
+const u8 Text_Takizawa[] = _("Michiko Takizawa");
+const u8 Text_Takada[] = _("Makiko Takada");
+const u8 Text_Kondo[] = _("Takanao Kondo");
+const u8 Text_Mashima[] = _("Ai Mashima");
+const u8 Text_Nomoto[] = _("Gakuji Nomoto");
+const u8 Text_Izushi[] = _("Takehiro Izushi");
+const u8 Text_Yamagami[] = _("Hitoshi Yamagami");
+const u8 Text_KyokoWatanabe[] = _("Kyoko Watanabe");
+const u8 Text_Nakano[] = _("Takao Nakano");
+const u8 Text_Jinnai[] = _("Hiroyuki Jinnai");
+const u8 Text_Tsuru[] = _("Hiroaki Tsuru");
+const u8 Text_Ishihara[] = _("Tsunekaz Ishihara");
+const u8 Text_Iwata[] = _("Satoru Iwata");
+const u8 Text_Suyama[] = _("Kazuya Suyama");
+const u8 Text_Mitsuhara[] = _("Satoshi Mitsuhara");
+const u8 Text_JapanBrailleLibrary[] = _("Japan Braille Library");
+const u8 Text_Komura[] = _("Tomotaka Komura");
+const u8 Text_Ohashi[] = _("Mikiko Ohashi");
+const u8 Text_McMahill[] = _("Seth McMahill");
+const u8 Text_Ogasawara[] = _("Nob Ogasawara");
+const u8 Text_Yamamoto[] = _("Souichi Yamamoto");
+const u8 Text_Funakoshi[] = _("Masanori Funakoshi");
+const u8 Text_Fujihara[] = _("Kazuhiro Fujihara");
+const u8 Text_Nakamichi[] = _("Kimiko Nakamichi");
+const u8 Text_Hara[] = _("Daisuke Hara");
+const u8 Text_Okada[] = _("Atsushi Okada");
+const u8 Text_Lillygren[] = _("Teresa Lillygren");
+const u8 Text_Hertzog[] = _("Thomas Hertzog");
+const u8 Text_Ridgeway[] = _("Ed Ridgeway");
+const u8 Text_NFotB[] = _("National Federation of the Blind");
+const u8 Text_Maurer[] = _("Patricia A. Maurer");
+const u8 Text_Ford[] = _("Sayoko Blodgett-Ford");
+const u8 Text_Barlow[] = _("Nicola Pratt-Barlow");
+const u8 Text_Uyama[] = _("Koji Uyama");
+const u8 Text_Howitt[] = _("Anthony Howitt");
+const u8 Text_Tilden[] = _("Gail Tilden");
+const u8 Text_EBU[] = _("European Blind Union");
+const u8 Text_ABA[] = _("Australian Braille Authority");
+const u8 Text_RNZFotB[] = _("Royal New Zealand Federation for the Blind");
+const u8 Text_CreditsTerminator[] = _("");
+#ifdef SAPPHIRE
+const u8 Text_Version[] = _("{PALETTE 9}POKéMON SAPPHIRE VERSION");
+#else
+const u8 Text_Version[] = _("{PALETTE 9}POKéMON RUBY VERSION");
+#endif
+
+const struct CreditsEntry CreditsTerminator[] = {0, Text_CreditsTerminator};
+#ifdef SAPPHIRE
+const struct CreditsEntry CreditsVersion[] = {7, Text_Version};
+#else
+const struct CreditsEntry CreditsVersion[] = {8, Text_Version};
+#endif
+const struct CreditsEntry CreditsCredits[] = {11, Category_Credits};
+const struct CreditsEntry CreditsExecutiveDirector[] = {8, Category_ExecutiveDirector};
+const struct CreditsEntry CreditsDirector[] = {12, Category_Director};
+const struct CreditsEntry CreditsArtDirector[] = {10, Category_ArtDirector};
+const struct CreditsEntry CreditsBattleDirector[] = {10, Category_BattleDirector};
+const struct CreditsEntry CreditsMainProgrammer[] = {10, Category_MainProgrammer};
+const struct CreditsEntry CreditsBattleSystemProgrammer[] = {8, Category_BattleSystemProgrammer};
+const struct CreditsEntry CreditsFieldSystemProgrammer[] = {7, Category_FieldSystemProgrammer};
+const struct CreditsEntry CreditsProgrammers[] = {12, Category_Programmers};
+const struct CreditsEntry CreditsMainGraphicDesigner[] = {7, Category_MainGraphicDesigner};
+const struct CreditsEntry CreditsPOKeMONGraphicDesigners[] = {6, Category_POKeMONGraphicDesigners};
+const struct CreditsEntry CreditsPOKeMONDesigners[] = {10, Category_POKeMONDesigners};
+const struct CreditsEntry CreditsMusicComposition[] = {13, Category_MusicComposition};
+const struct CreditsEntry CreditsSoundEffectsPOKeMONVoices[] = {4, Category_SoundEffectsPOKeMONVoices};
+const struct CreditsEntry CreditsGameDesigners[] = {11, Category_GameDesigners};
+const struct CreditsEntry CreditsPlotScenario[] = {11, Category_PlotScenario};
+const struct CreditsEntry CreditsGameScenario[] = {13, Category_GameScenario};
+const struct CreditsEntry CreditsScriptDesigners[] = {10, Category_ScriptDesigners};
+const struct CreditsEntry CreditsMapDesigners[] = {11, Category_MapDesigners};
+const struct CreditsEntry CreditsMapDataDesigners[] = {9, Category_MapDataDesigners};
+const struct CreditsEntry CreditsParametricDesigners[] = {9, Category_ParametricDesigners};
+const struct CreditsEntry CreditsPOKeDEXText[] = {11, Category_POKeDEXText};
+const struct CreditsEntry CreditsEnvironmentToolProgrammers[] = {6, Category_EnvironmentToolProgrammers};
+const struct CreditsEntry CreditsProductTesting[] = {11, Category_ProductTesting};
+const struct CreditsEntry CreditsSpecialThanks[] = {10, Category_SpecialThanks};
+const struct CreditsEntry CreditsCoordinators[] = {11, Category_Coordinators};
+const struct CreditsEntry CreditsProducers[] = {11, Category_Producers};
+const struct CreditsEntry CreditsExecutiveProducers[] = {7, Category_ExecutiveProducers};
+const struct CreditsEntry CreditsInformationSupervisors[] = {10, Category_InformationSupervisors};
+const struct CreditsEntry CreditsTaskManagers[] = {8, Category_TaskManagers};
+const struct CreditsEntry CreditsBrailleCodeCheck[] = {10, Category_BrailleCodeCheck};
+const struct CreditsEntry CreditsSatoshiTajiri[] = {11, Text_SatoshiTajiri};
+const struct CreditsEntry CreditsMasuda[] = {11, Text_Masuda};
+const struct CreditsEntry CreditsSugimori[] = {11, Text_Sugimori};
+const struct CreditsEntry CreditsMorimoto[] = {11, Text_Morimoto};
+const struct CreditsEntry CreditsTetsuyaWatanabe[] = {11, Text_TetsuyaWatanabe};
+const struct CreditsEntry CreditsSogabe[] = {11, Text_Sogabe};
+const struct CreditsEntry CreditsTamada[] = {11, Text_Tamada};
+const struct CreditsEntry CreditsMori[] = {11, Text_Mori};
+const struct CreditsEntry CreditsKagaya[] = {11, Text_Kagaya};
+const struct CreditsEntry CreditsMatsuda[] = {11, Text_Matsuda};
+const struct CreditsEntry CreditsHiroyukiNakamura[] = {11, Text_HiroyukiNakamura};
+const struct CreditsEntry CreditsTaya[] = {11, Text_Taya};
+const struct CreditsEntry CreditsNohara[] = {11, Text_Nohara};
+const struct CreditsEntry CreditsTomomichiOhta[] = {11, Text_TomomichiOhta};
+const struct CreditsEntry CreditsIwasawa[] = {11, Text_Iwasawa};
+const struct CreditsEntry CreditsTakenoriOhta[] = {11, Text_TakenoriOhta};
+const struct CreditsEntry CreditsYoshida[] = {11, Text_Yoshida};
+const struct CreditsEntry CreditsFujiwara[] = {11, Text_Fujiwara};
+const struct CreditsEntry CreditsSatoshiOhta[] = {11, Text_SatoshiOhta};
+const struct CreditsEntry CreditsIwashita[] = {11, Text_Iwashita};
+const struct CreditsEntry CreditsTomita[] = {11, Text_Tomita};
+const struct CreditsEntry CreditsUnno[] = {11, Text_Unno};
+const struct CreditsEntry CreditsEo[] = {11, Text_Eo};
+const struct CreditsEntry CreditsOkutani[] = {11, Text_Okutani};
+const struct CreditsEntry CreditsNishida[] = {11, Text_Nishida};
+const struct CreditsEntry CreditsSaito[] = {11, Text_Saito};
+const struct CreditsEntry CreditsYoshikawa[] = {11, Text_Yoshikawa};
+const struct CreditsEntry CreditsIchinose[] = {11, Text_Ichinose};
+const struct CreditsEntry CreditsAoki[] = {11, Text_Aoki};
+const struct CreditsEntry CreditsNishino[] = {11, Text_Nishino};
+const struct CreditsEntry CreditsMatsushima[] = {11, Text_Matsushima};
+const struct CreditsEntry CreditsTetsujiOhta[] = {11, Text_TetsujiOhta};
+const struct CreditsEntry CreditsSato[] = {11, Text_Sato};
+const struct CreditsEntry CreditsKawachimaru[] = {11, Text_Kawachimaru};
+const struct CreditsEntry CreditsShimoyamada[] = {11, Text_Shimoyamada};
+const struct CreditsEntry CreditsOhmori[] = {11, Text_Ohmori};
+const struct CreditsEntry CreditsTakahashi[] = {11, Text_Takahashi};
+const struct CreditsEntry CreditsToshinobuMatsumiya[] = {11, Text_ToshinobuMatsumiya};
+const struct CreditsEntry CreditsTomisawa[] = {11, Text_Tomisawa};
+const struct CreditsEntry CreditsEnomoto[] = {11, Text_Enomoto};
+const struct CreditsEntry CreditsTerada[] = {11, Text_Terada};
+const struct CreditsEntry CreditsSakurai[] = {11, Text_Sakurai};
+const struct CreditsEntry CreditsSagawa[] = {11, Text_Sagawa};
+const struct CreditsEntry CreditsTominaga[] = {11, Text_Tominaga};
+const struct CreditsEntry CreditsYoshiroTajiri[] = {11, Text_YoshioTajiri};
+const struct CreditsEntry CreditsSasaki[] = {11, Text_Sasaki};
+const struct CreditsEntry CreditsHamano[] = {11, Text_Hamano};
+const struct CreditsEntry CreditsChieMatsumiya[] = {11, Text_ChieMatsumiya};
+const struct CreditsEntry CreditsShinozaki[] = {11, Text_Shinozaki};
+const struct CreditsEntry CreditsFujii[] = {11, Text_Fujii};
+const struct CreditsEntry CreditsSuperMarioClub[] = {11, Text_SuperMarioClub};
+const struct CreditsEntry CreditsTada[] = {11, Text_Tada};
+const struct CreditsEntry CreditsOhnishi[] = {11, Text_Ohnishi};
+const struct CreditsEntry CreditsOkamura[] = {11, Text_Okamura};
+const struct CreditsEntry CreditsHiroNakamura[] = {11, Text_HiroNakamura};
+const struct CreditsEntry CreditsUesugi[] = {11, Text_Uesugi};
+const struct CreditsEntry CreditsMurakawa[] = {11, Text_Murakawa};
+const struct CreditsEntry CreditsKinashi[] = {11, Text_Kinashi};
+const struct CreditsEntry CreditsTakizawa[] = {11, Text_Takizawa};
+const struct CreditsEntry CreditsTakada[] = {11, Text_Takada};
+const struct CreditsEntry CreditsKondo[] = {11, Text_Kondo};
+const struct CreditsEntry CreditsMashima[] = {11, Text_Mashima};
+const struct CreditsEntry CreditsNomoto[] = {11, Text_Nomoto};
+const struct CreditsEntry CreditsIzushi[] = {11, Text_Izushi};
+const struct CreditsEntry CreditsYamagami[] = {11, Text_Yamagami};
+const struct CreditsEntry CreditsKyokoWatanabe[] = {11, Text_KyokoWatanabe};
+const struct CreditsEntry CreditsNakano[] = {11, Text_Nakano};
+const struct CreditsEntry CreditsJinnai[] = {11, Text_Jinnai};
+const struct CreditsEntry CreditsTsuru[] = {11, Text_Tsuru};
+const struct CreditsEntry CreditsIshihara[] = {11, Text_Ishihara};
+const struct CreditsEntry CreditsIwata[] = {11, Text_Iwata};
+const struct CreditsEntry CreditsSuyama[] = {11, Text_Suyama};
+const struct CreditsEntry CreditsMitsuhara[] = {11, Text_Mitsuhara};
+const struct CreditsEntry CreditsJapanBrailleLibrary[] = {9, Text_JapanBrailleLibrary};
+const struct CreditsEntry CreditsKomura[] = {11, Text_Komura};
+const struct CreditsEntry CreditsOhashi[] = {11, Text_Ohashi};
+const struct CreditsEntry CreditsEnglishVersionCoordinators[] = {0, Category_EnglishVersionCoordinators};
+const struct CreditsEntry CreditsTranslator[] = {0, Category_Translator};
+const struct CreditsEntry CreditsProductSupport[] = {0, Category_ProductSupport};
+const struct CreditsEntry CreditsArtwork[] = {0, Category_Artwork};
+const struct CreditsEntry CreditsTextEditor[] = {0, Category_TextEditor};
+const struct CreditsEntry CreditsNOAProductTesting[] = {0, Category_NOAProductTesting};
+const struct CreditsEntry CreditsGraphicDesigners[] = {0, Category_GraphicDesigners};
+const struct CreditsEntry CreditsMcMahill[] = {0, Text_McMahill};
+const struct CreditsEntry CreditsOgasawara[] = {0, Text_Ogasawara};
+const struct CreditsEntry CreditsYamamoto[] = {0, Text_Yamamoto};
+const struct CreditsEntry CreditsFunakoshi[] = {0, Text_Funakoshi};
+const struct CreditsEntry CreditsFujihara[] = {0, Text_Fujihara};
+const struct CreditsEntry CreditsNakamichi[] = {0, Text_Nakamichi};
+const struct CreditsEntry CreditsHara[] = {0, Text_Hara};
+const struct CreditsEntry CreditsOkada[] = {0, Text_Okada};
+const struct CreditsEntry CreditsLillygren[] = {0, Text_Lillygren};
+const struct CreditsEntry CreditsHertzog[] = {0, Text_Hertzog};
+const struct CreditsEntry CreditsRidgeway[] = {0, Text_Ridgeway};
+const struct CreditsEntry CreditsNFotB[] = {0, Text_NFotB};
+const struct CreditsEntry CreditsMaurer[] = {0, Text_Maurer};
+const struct CreditsEntry CreditsFord[] = {0, Text_Ford};
+const struct CreditsEntry CreditsBarlow[] = {0, Text_Barlow};
+const struct CreditsEntry CreditsUyama[] = {0, Text_Uyama};
+const struct CreditsEntry CreditsHowitt[] = {0, Text_Howitt};
+const struct CreditsEntry CreditsTilden[] = {0, Text_Tilden};
+const struct CreditsEntry CreditsEBU[] = {0, Text_EBU};
+const struct CreditsEntry CreditsABA[] = {0, Text_ABA};
+const struct CreditsEntry CreditsRNZFotB[] = {0, Text_RNZFotB};
+
+#define LINES_PER_PAGE 5
+#define _ CreditsTerminator
+const struct CreditsEntry *const gCreditsEntryPointerTable[][LINES_PER_PAGE] =
+{
+ {
+ _,
+ CreditsVersion,
+ CreditsCredits,
+ _,
+ _
+ },
+ {
+ _,
+ CreditsDirector,
+ CreditsMasuda,
+ _,
+ _,
+ },
+ {
+ _,
+ CreditsArtDirector,
+ CreditsSugimori,
+ _,
+ _,
+ },
+ {
+ _,
+ CreditsBattleDirector,
+ CreditsMorimoto,
+ _,
+ _,
+ },
+ {
+ _,
+ CreditsMainProgrammer,
+ CreditsTetsuyaWatanabe,
+ _,
+ _,
+ },
+ {
+ CreditsBattleSystemProgrammer,
+ CreditsSogabe,
+ CreditsFieldSystemProgrammer,
+ CreditsTamada,
+ _,
+ },
+ {
+ CreditsProgrammers,
+ CreditsMori,
+ CreditsKagaya,
+ CreditsMatsuda,
+ _,
+ },
+ {
+ CreditsProgrammers,
+ CreditsHiroyukiNakamura,
+ CreditsTaya,
+ CreditsNohara,
+ _,
+ },
+ {
+ CreditsProgrammers,
+ CreditsTomomichiOhta,
+ CreditsIwasawa,
+ CreditsTakenoriOhta,
+ _,
+ },
+ {
+ _,
+ CreditsMainGraphicDesigner,
+ CreditsYoshida,
+ _,
+ _,
+ },
+ {
+ CreditsPOKeMONGraphicDesigners,
+ CreditsSugimori,
+ CreditsYoshida,
+ _,
+ _,
+ },
+ {
+ CreditsPOKeMONGraphicDesigners,
+ CreditsFujiwara,
+ CreditsSatoshiOhta,
+ CreditsIwashita,
+ _,
+ },
+ {
+ CreditsPOKeMONGraphicDesigners,
+ CreditsTomita,
+ CreditsUnno,
+ CreditsEo,
+ _,
+ },
+ {
+ CreditsPOKeMONDesigners,
+ CreditsMorimoto,
+ CreditsOkutani,
+ CreditsNishida,
+ _,
+ },
+ {
+ CreditsPOKeMONDesigners,
+ CreditsSaito,
+ CreditsYoshikawa,
+ _,
+ _,
+ },
+ {
+ CreditsMusicComposition,
+ CreditsIchinose,
+ CreditsAoki,
+ CreditsMasuda,
+ _,
+ },
+ {
+ _,
+ CreditsSoundEffectsPOKeMONVoices,
+ CreditsAoki,
+ _,
+ _,
+ },
+ {
+ CreditsGameDesigners,
+ CreditsMasuda,
+ CreditsMorimoto,
+ CreditsNishino,
+ _,
+ },
+ {
+ CreditsGameDesigners,
+ CreditsMatsushima,
+ CreditsTetsujiOhta,
+ CreditsSato,
+ CreditsKawachimaru,
+ },
+ {
+ CreditsGameDesigners,
+ CreditsShimoyamada,
+ CreditsOhmori,
+ CreditsTakahashi,
+ _,
+ },
+ {
+ CreditsPlotScenario,
+ CreditsMasuda,
+ CreditsTomisawa,
+ CreditsNishino,
+ _,
+ },
+ {
+ CreditsGameScenario,
+ CreditsToshinobuMatsumiya,
+ CreditsTomisawa,
+ _,
+ _,
+ },
+ {
+ CreditsScriptDesigners,
+ CreditsNohara,
+ CreditsTetsujiOhta,
+ CreditsTomomichiOhta,
+ _,
+ },
+ {
+ CreditsMapDesigners,
+ CreditsOhmori,
+ CreditsTetsujiOhta,
+ CreditsNishino,
+ _,
+ },
+ {
+ CreditsMapDataDesigners,
+ CreditsTetsujiOhta,
+ CreditsTakahashi,
+ _,
+ _,
+ },
+ {
+ CreditsParametricDesigners,
+ CreditsNishino,
+ CreditsMorimoto,
+ CreditsTetsujiOhta,
+ CreditsShimoyamada,
+ },
+ {
+ _,
+ CreditsPOKeDEXText,
+ CreditsMatsushima,
+ _,
+ _,
+ },
+ {
+ CreditsEnvironmentToolProgrammers,
+ CreditsSogabe,
+ CreditsTamada,
+ CreditsHiroyukiNakamura,
+ CreditsMori,
+ },
+ {
+ CreditsProductTesting,
+ CreditsSuperMarioClub,
+ CreditsTada,
+ CreditsOhnishi,
+ CreditsOkamura,
+ },
+ {
+ CreditsSpecialThanks,
+ CreditsTominaga,
+ CreditsYoshiroTajiri,
+ CreditsSasaki,
+ _,
+ },
+ {
+ CreditsSpecialThanks,
+ CreditsHamano,
+ CreditsChieMatsumiya,
+ CreditsShinozaki,
+ CreditsFujii,
+ },
+ {
+ CreditsSpecialThanks,
+ CreditsSuyama,
+ CreditsMitsuhara,
+ CreditsKomura,
+ CreditsOhashi,
+ },
+ {
+ CreditsSpecialThanks,
+ CreditsTakizawa,
+ CreditsTakada,
+ CreditsKondo,
+ CreditsMashima,
+ },
+ {
+ CreditsInformationSupervisors,
+ CreditsEnomoto,
+ CreditsTerada,
+ CreditsSakurai,
+ CreditsSagawa,
+ },
+ {
+ CreditsCoordinators,
+ CreditsKyokoWatanabe,
+ CreditsNakano,
+ _,
+ _,
+ },
+ {
+ CreditsTaskManagers,
+ CreditsYamagami,
+ CreditsNomoto,
+ _,
+ _,
+ },
+ {
+ CreditsProducers,
+ CreditsJinnai,
+ CreditsIzushi,
+ CreditsTsuru,
+ _,
+ },
+ {
+ _,
+ CreditsExecutiveDirector,
+ CreditsSatoshiTajiri,
+ _,
+ _,
+ },
+ {
+ _,
+ CreditsExecutiveProducers,
+ CreditsIwata,
+ _,
+ _,
+ },
+ {
+ _,
+ CreditsExecutiveProducers,
+ CreditsIshihara,
+ _,
+ _,
+ },
+ {
+ CreditsEnglishVersionCoordinators,
+ CreditsHiroNakamura,
+ CreditsMcMahill,
+ _,
+ _,
+ },
+ {
+ _,
+ CreditsTranslator,
+ CreditsOgasawara,
+ _,
+ _,
+ },
+ {
+ CreditsProgrammers,
+ CreditsMurakawa,
+ CreditsYamamoto,
+ CreditsFunakoshi,
+ CreditsKinashi,
+ },
+ {
+ CreditsGraphicDesigners,
+ CreditsYamamoto,
+ CreditsKinashi,
+ _,
+ _,
+ },
+ {
+ CreditsProductSupport,
+ CreditsNakamichi,
+ CreditsHara,
+ _,
+ _,
+ },
+ {
+ _,
+ CreditsArtwork,
+ CreditsOkada,
+ _,
+ _,
+ },
+ {
+ _,
+ CreditsTextEditor,
+ CreditsLillygren,
+ _,
+ _,
+ },
+ {
+ CreditsNOAProductTesting,
+ CreditsHertzog,
+ CreditsRidgeway,
+ _,
+ _,
+ },
+ {
+ CreditsBrailleCodeCheck,
+ CreditsNFotB,
+ CreditsMaurer,
+ CreditsJapanBrailleLibrary,
+ CreditsEBU,
+ },
+ {
+ CreditsBrailleCodeCheck,
+ CreditsABA,
+ CreditsRNZFotB,
+ _,
+ _,
+ },
+ {
+ CreditsSpecialThanks,
+ CreditsFord,
+ CreditsBarlow,
+ CreditsUesugi,
+ CreditsUyama,
+ },
+ {
+ CreditsSpecialThanks,
+ CreditsHowitt,
+ CreditsTilden,
+ CreditsFujihara,
+ _,
+ },
+};
+#undef _
diff --git a/include/data/field_map_obj/anim_func_ptrs.h b/src/data/field_map_obj/anim_func_ptrs.h
index 1d1fac71e..1d1fac71e 100644
--- a/include/data/field_map_obj/anim_func_ptrs.h
+++ b/src/data/field_map_obj/anim_func_ptrs.h
diff --git a/include/data/field_map_obj/base_oam.h b/src/data/field_map_obj/base_oam.h
index 49c14e8c2..49c14e8c2 100644
--- a/include/data/field_map_obj/base_oam.h
+++ b/src/data/field_map_obj/base_oam.h
diff --git a/include/data/field_map_obj/berry_tree_graphics_tables.h b/src/data/field_map_obj/berry_tree_graphics_tables.h
index 5b60fee6f..5b60fee6f 100644
--- a/include/data/field_map_obj/berry_tree_graphics_tables.h
+++ b/src/data/field_map_obj/berry_tree_graphics_tables.h
diff --git a/include/data/field_map_obj/callback_subroutine_pointers.h b/src/data/field_map_obj/callback_subroutine_pointers.h
index a324066b7..a324066b7 100644
--- a/include/data/field_map_obj/callback_subroutine_pointers.h
+++ b/src/data/field_map_obj/callback_subroutine_pointers.h
diff --git a/include/data/field_map_obj/field_effect_object_template_pointers.h b/src/data/field_map_obj/field_effect_object_template_pointers.h
index 320af1ff8..320af1ff8 100644
--- a/include/data/field_map_obj/field_effect_object_template_pointers.h
+++ b/src/data/field_map_obj/field_effect_object_template_pointers.h
diff --git a/include/data/field_map_obj/field_effect_objects.h b/src/data/field_map_obj/field_effect_objects.h
index 9d3ae343d..9d3ae343d 100644
--- a/include/data/field_map_obj/field_effect_objects.h
+++ b/src/data/field_map_obj/field_effect_objects.h
diff --git a/include/data/field_map_obj/map_object_anims.h b/src/data/field_map_obj/map_object_anims.h
index 0993f3efd..0993f3efd 100644
--- a/include/data/field_map_obj/map_object_anims.h
+++ b/src/data/field_map_obj/map_object_anims.h
diff --git a/include/data/field_map_obj/map_object_graphics_info.h b/src/data/field_map_obj/map_object_graphics_info.h
index 7b021b66d..7b021b66d 100644
--- a/include/data/field_map_obj/map_object_graphics_info.h
+++ b/src/data/field_map_obj/map_object_graphics_info.h
diff --git a/include/data/field_map_obj/map_object_graphics_info_pointers.h b/src/data/field_map_obj/map_object_graphics_info_pointers.h
index 22a052b0d..22a052b0d 100644
--- a/include/data/field_map_obj/map_object_graphics_info_pointers.h
+++ b/src/data/field_map_obj/map_object_graphics_info_pointers.h
diff --git a/include/data/field_map_obj/map_object_pic_tables.h b/src/data/field_map_obj/map_object_pic_tables.h
index ecb5c8836..ecb5c8836 100644
--- a/include/data/field_map_obj/map_object_pic_tables.h
+++ b/src/data/field_map_obj/map_object_pic_tables.h
diff --git a/include/data/field_map_obj/map_object_subsprites.h b/src/data/field_map_obj/map_object_subsprites.h
index 951d71e99..951d71e99 100644
--- a/include/data/field_map_obj/map_object_subsprites.h
+++ b/src/data/field_map_obj/map_object_subsprites.h
diff --git a/include/data/pokemon/base_stats.h b/src/data/pokemon/base_stats.h
index 37f59e1c6..37f59e1c6 100644
--- a/include/data/pokemon/base_stats.h
+++ b/src/data/pokemon/base_stats.h
diff --git a/include/data/pokemon/cry_ids.h b/src/data/pokemon/cry_ids.h
index 6207a92f0..6207a92f0 100644
--- a/include/data/pokemon/cry_ids.h
+++ b/src/data/pokemon/cry_ids.h
diff --git a/include/data/pokemon/dex_order.h b/src/data/pokemon/dex_order.h
index cbb7182ed..cbb7182ed 100644
--- a/include/data/pokemon/dex_order.h
+++ b/src/data/pokemon/dex_order.h
diff --git a/include/data/pokemon/egg_moves.h b/src/data/pokemon/egg_moves.h
index ab1b1dd33..ab1b1dd33 100644
--- a/include/data/pokemon/egg_moves.h
+++ b/src/data/pokemon/egg_moves.h
diff --git a/include/data/pokemon/evolution.h b/src/data/pokemon/evolution.h
index 919416fee..919416fee 100644
--- a/include/data/pokemon/evolution.h
+++ b/src/data/pokemon/evolution.h
diff --git a/include/data/pokemon/experience_tables.h b/src/data/pokemon/experience_tables.h
index 2fb416fe9..2fb416fe9 100644
--- a/include/data/pokemon/experience_tables.h
+++ b/src/data/pokemon/experience_tables.h
diff --git a/include/data/pokemon/item_effects.h b/src/data/pokemon/item_effects.h
index cd06228dd..cd06228dd 100644
--- a/include/data/pokemon/item_effects.h
+++ b/src/data/pokemon/item_effects.h
diff --git a/include/data/pokemon/level_up_learnset_pointers.h b/src/data/pokemon/level_up_learnset_pointers.h
index 19761c996..19761c996 100644
--- a/include/data/pokemon/level_up_learnset_pointers.h
+++ b/src/data/pokemon/level_up_learnset_pointers.h
diff --git a/include/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets.h
index bc1de82de..bc1de82de 100644
--- a/include/data/pokemon/level_up_learnsets.h
+++ b/src/data/pokemon/level_up_learnsets.h
diff --git a/include/data/pokemon/nature_stats.h b/src/data/pokemon/nature_stats.h
index fcef2a0ac..fcef2a0ac 100644
--- a/include/data/pokemon/nature_stats.h
+++ b/src/data/pokemon/nature_stats.h
diff --git a/include/data/pokemon/spinda_spots.h b/src/data/pokemon/spinda_spots.h
index d045e0734..d045e0734 100644
--- a/include/data/pokemon/spinda_spots.h
+++ b/src/data/pokemon/spinda_spots.h
diff --git a/include/data/pokemon/tmhm_learnsets.h b/src/data/pokemon/tmhm_learnsets.h
index 02cd22d56..02cd22d56 100644
--- a/include/data/pokemon/tmhm_learnsets.h
+++ b/src/data/pokemon/tmhm_learnsets.h
diff --git a/include/data/pokemon/trainer_class_lookups.h b/src/data/pokemon/trainer_class_lookups.h
index c86e795c4..c86e795c4 100644
--- a/include/data/pokemon/trainer_class_lookups.h
+++ b/src/data/pokemon/trainer_class_lookups.h
diff --git a/src/data/text/move_descriptions_de.h b/src/data/text/move_descriptions_de.h
new file mode 100644
index 000000000..854336295
--- /dev/null
+++ b/src/data/text/move_descriptions_de.h
@@ -0,0 +1,1771 @@
+static const u8 MoveDescription_Pound[] = _(
+ "Ein Hieb mit den Vorder-\n"
+ "beinen oder dem Schweif.");
+
+static const u8 MoveDescription_KarateChop[] = _(
+ "Gute Möglichkeit, einen\n"
+ "Volltreffer zu landen.");
+
+static const u8 MoveDescription_DoubleSlap[] = _(
+ "Trifft den Gegner 2 - 5-mal\n"
+ "hintereinander.");
+
+static const u8 MoveDescription_CometPunch[] = _(
+ "Trifft den Gegner 2 - 5-mal\n"
+ "hintereinander.");
+
+static const u8 MoveDescription_MegaPunch[] = _(
+ "Ein unglaublich kräftiger\n"
+ "Hieb.");
+
+static const u8 MoveDescription_PayDay[] = _(
+ "Wirft Münzen auf Gegner.\n"
+ "Geld wird erstattet.");
+
+static const u8 MoveDescription_FirePunch[] = _(
+ "Schlag, der dem Gegner evtl.\n"
+ "Verbrennungen zufügt.");
+
+static const u8 MoveDescription_IcePunch[] = _(
+ "Ein Schlag, der den Gegner\n"
+ "evtl. einfriert.");
+
+static const u8 MoveDescription_ThunderPunch[] = _(
+ "Schlag, der den Gegner evtl.\n"
+ "paralysiert.");
+
+static const u8 MoveDescription_Scratch[] = _(
+ "Der Gegner wird mit\n"
+ "scharfen Klauen zerkratzt.");
+
+static const u8 MoveDescription_ViceGrip[] = _(
+ "Umklammert den Gegner mit\n"
+ "großen, kräftigen Zangen.");
+
+static const u8 MoveDescription_Guillotine[] = _(
+ "Kräftige Scheren-Attacke.\n"
+ "Führt evtl. zum K.O.");
+
+static const u8 MoveDescription_RazorWind[] = _(
+ "Eine Attacke, die auf 2\n"
+ "Runden basiert.");
+
+static const u8 MoveDescription_SwordsDance[] = _(
+ "Erhöht den Angriffs-Wert\n"
+ "drastisch.");
+
+static const u8 MoveDescription_Cut[] = _(
+ "Trifft den Gegner mit\n"
+ "Klauen, Scheren o. ä.");
+
+static const u8 MoveDescription_Gust[] = _(
+ "Trifft den Gegner mit Wind-\n"
+ "stoß durch Flügelschlag.");
+
+static const u8 MoveDescription_WingAttack[] = _(
+ "Trifft den Gegner mit weit\n"
+ "gespreizten Flügeln.");
+
+static const u8 MoveDescription_Whirlwind[] = _(
+ "Weht Gegner weg und be-\n"
+ "endet den Kampf in Wildnis.");
+
+static const u8 MoveDescription_Fly[] = _(
+ "Steigt empor in der 1. Runde\n"
+ "und trifft Gegner in der 2.");
+
+static const u8 MoveDescription_Bind[] = _(
+ "Umklammert und trifft den\n"
+ "Gegner 2 - 5-mal.");
+
+static const u8 MoveDescription_Slam[] = _(
+ "Schlag mit einem langen\n"
+ "Schweif, einer Ranke o. ä.");
+
+static const u8 MoveDescription_VineWhip[] = _(
+ "Peitschenähnlicher Schlag\n"
+ "mit Ranken.");
+
+static const u8 MoveDescription_Stomp[] = _(
+ "Stampfen mit Fuß. Gegner\n"
+ "schreckt evtl. zurück.");
+
+static const u8 MoveDescription_DoubleKick[] = _(
+ "Doppeltritt. Der Gegner\n"
+ "wird zweimal getroffen.");
+
+static const u8 MoveDescription_MegaKick[] = _(
+ "Ein extrem heftiger Tritt.");
+
+static const u8 MoveDescription_JumpKick[] = _(
+ "Sprung-Tritt. Selbstschä-\n"
+ "digung bei Misserfolg.");
+
+static const u8 MoveDescription_RollingKick[] = _(
+ "Schneller Tritt aus der\n"
+ "Drehung.");
+
+static const u8 MoveDescription_SandAttack[] = _(
+ "Senkt Genauigkeit des Geg-\n"
+ "ners durch Sand.");
+
+static const u8 MoveDescription_Headbutt[] = _(
+ "Rammt den Gegner und lässt\n"
+ "ihn evtl. zurückschrecken.");
+
+static const u8 MoveDescription_HornAttack[] = _(
+ "Spießt den Gegner mit\n"
+ "spitzen Hörnern auf.");
+
+static const u8 MoveDescription_FuryAttack[] = _(
+ "Spießt den Gegner 2 - 5-mal\n"
+ "mit spitzen Hörnern auf.");
+
+static const u8 MoveDescription_HornDrill[] = _(
+ "K.O.-Attacke, die ein Horn\n"
+ "als Bohrer einsetzt.");
+
+static const u8 MoveDescription_Tackle[] = _(
+ "Trifft den Gegner mit vollem\n"
+ "Körpereinsatz.");
+
+static const u8 MoveDescription_BodySlam[] = _(
+ "Körper-Ramme, kann\n"
+ "Paralyse hervorrufen.");
+
+static const u8 MoveDescription_Wrap[] = _(
+ "Umwickelt Gegner 2 - 5-mal\n"
+ "mit Ranken o. ä.");
+
+static const u8 MoveDescription_TakeDown[] = _(
+ "Rücksichtslose Attacke,\n"
+ "mit Selbstschädigung.");
+
+static const u8 MoveDescription_Thrash[] = _(
+ "Attacke in 2 bis 3 Runden,\n"
+ "die Anwender verwirrt.");
+
+static const u8 MoveDescription_DoubleEdge[] = _(
+ "Lebensgefährlicher Angriff\n"
+ "mit Selbstschädigung.");
+
+static const u8 MoveDescription_TailWhip[] = _(
+ "Hieb mit dem Schweif, senkt\n"
+ "die VERT. des Gegners.");
+
+static const u8 MoveDescription_PoisonSting[] = _(
+ "Angriff mit Widerhaken,\n"
+ "kann Gegner vergiften.");
+
+static const u8 MoveDescription_Twineedle[] = _(
+ "Stacheln an den Vorderbei-\n"
+ "nen treffen Gegner 2-mal.");
+
+static const u8 MoveDescription_PinMissile[] = _(
+ "Spitze Nadeln treffen den\n"
+ "Gegner 2 - 5-mal.");
+
+static const u8 MoveDescription_Leer[] = _(
+ "Gegners VERT.-Wert wird\n"
+ "durch Blick gesenkt.");
+
+static const u8 MoveDescription_Bite[] = _(
+ "Beißt zu und lässt den Geg-\n"
+ "ner evtl. zurückschrecken.");
+
+static const u8 MoveDescription_Growl[] = _(
+ "Knurren, das den ANGR.-Wert\n"
+ "des Gegners senkt.");
+
+static const u8 MoveDescription_Roar[] = _(
+ "Verjagt den Gegner und be-\n"
+ "endet den Kampf in Wildnis.");
+
+static const u8 MoveDescription_Sing[] = _(
+ "Ein Lied, das den Gegner\n"
+ "in tiefen Schlaf versetzt.");
+
+static const u8 MoveDescription_Supersonic[] = _(
+ "Ausstoß bizarrer Schallwel-\n"
+ "len. Verwirrt Gegner evtl.");
+
+static const u8 MoveDescription_SonicBoom[] = _(
+ "Schockwellen. Richten immer\n"
+ "20 KP Schaden an.");
+
+static const u8 MoveDescription_Disable[] = _(
+ "Psycho-Attacke. Blockiert\n"
+ "eine Attacke des Gegners.");
+
+static const u8 MoveDescription_Acid[] = _(
+ "Versprüht ätzende Flüssig-\n"
+ "keit, senkt evtl. VERT.");
+
+static const u8 MoveDescription_Ember[] = _(
+ "Schwache Feuer-Attacke.\n"
+ "Verbrennt Gegner evtl.");
+
+static const u8 MoveDescription_Flamethrower[] = _(
+ "Starke Feuer-Attacke.\n"
+ "Verbrennt Gegner evtl.");
+
+static const u8 MoveDescription_Mist[] = _(
+ "Nebel, der die Änderung der\n"
+ "Werte verhindert.");
+
+static const u8 MoveDescription_WaterGun[] = _(
+ "Der Gegner wird mit Wasser\n"
+ "bespritzt.");
+
+static const u8 MoveDescription_HydroPump[] = _(
+ "Spritzt Wasser mit\n"
+ "Hochdruck auf den Gegner.");
+
+static const u8 MoveDescription_Surf[] = _(
+ "Eine riesige Welle bricht\n"
+ "über den Gegner herein.");
+
+static const u8 MoveDescription_IceBeam[] = _(
+ "Gegner wird von Eisstrahl\n"
+ "getroffen, friert evtl. ein.");
+
+static const u8 MoveDescription_Blizzard[] = _(
+ "Ein Schneesturm, der den\n"
+ "Gegner einfrieren kann.");
+
+static const u8 MoveDescription_Psybeam[] = _(
+ "Feuert einen Strahl ab, der\n"
+ "Gegner verwirren kann.");
+
+static const u8 MoveDescription_BubbleBeam[] = _(
+ "Versprüht Blasen, die den\n"
+ "INIT.-Wert evtl. senken.");
+
+static const u8 MoveDescription_AuroraBeam[] = _(
+ "Regenbogenfarbener Strahl,\n"
+ "senkt evtl. ANGR.-Wert.");
+
+static const u8 MoveDescription_HyperBeam[] = _(
+ "Starke Attacke. Angreifer\n"
+ "setzt eine Runde aus.");
+
+static const u8 MoveDescription_Peck[] = _(
+ "Greift Gegner mit dem\n"
+ "Schnabel an.");
+
+static const u8 MoveDescription_DrillPeck[] = _(
+ "Attacke, bei der der Schna-\n"
+ "bel als Bohrer dient.");
+
+static const u8 MoveDescription_Submission[] = _(
+ "Rücksichtsloser Rempler. \n"
+ "Schädigt auch Angreifer.");
+
+static const u8 MoveDescription_LowKick[] = _(
+ "Tritt, der massigen Gegnern\n"
+ "mehr Schaden zufügt.");
+
+static const u8 MoveDescription_Counter[] = _(
+ "Kontert physischen Tref-\n"
+ "fer mit doppelter Kraft.");
+
+static const u8 MoveDescription_SeismicToss[] = _(
+ "Richtet Schaden gemäß\n"
+ "Level d. Angreifers an.");
+
+static const u8 MoveDescription_Strength[] = _(
+ "Erzeugt enorme Kraft und\n"
+ "rammt den Gegner.");
+
+static const u8 MoveDescription_Absorb[] = _(
+ "Attacke, die die Hälfte des\n"
+ "Schadens absorbiert.");
+
+static const u8 MoveDescription_MegaDrain[] = _(
+ "Attacke, die die Hälfte des\n"
+ "Schadens absorbiert.");
+
+static const u8 MoveDescription_LeechSeed[] = _(
+ "Gegner wird bepflanzt und\n"
+ "verliert jede Runde KP.");
+
+static const u8 MoveDescription_Growth[] = _(
+ "Der Körper wächst und\n"
+ "SPEZ. ANGR. wird erhöht.");
+
+static const u8 MoveDescription_RazorLeaf[] = _(
+ "Trifft Gegner mit Blättern.\n"
+ "Hohe Volltrefferquote.");
+
+static const u8 MoveDescription_SolarBeam[] = _(
+ "Absorbiert Licht in der 1.\n"
+ "Runde, 2. Runde Angriff.");
+
+static const u8 MoveDescription_PoisonPowder[] = _(
+ "Verstreut giftigen Puder,\n"
+ "der Gegner vergiften kann.");
+
+static const u8 MoveDescription_StunSpore[] = _(
+ "Verstreut Puder, der den\n"
+ "Gegner evtl. paralysiert.");
+
+static const u8 MoveDescription_SleepPowder[] = _(
+ "Verstreut Puder, der Geg.\n"
+ "evtl. in Schlaf versetzt.");
+
+static const u8 MoveDescription_PetalDance[] = _(
+ "Angriff in 2-3 Runden.\n"
+ "Angreifer wird verwirrt.");
+
+static const u8 MoveDescription_StringShot[] = _(
+ "Umwickelt Gegner mit Faden\n"
+ "und senkt INIT.-Wert.");
+
+static const u8 MoveDescription_DragonRage[] = _(
+ "Stößt Schockwellen aus, die\n"
+ "40 KP Schaden anrichten.");
+
+static const u8 MoveDescription_FireSpin[] = _(
+ "Schließt Gegner für 2-5\n"
+ "Runden in Feuerkreis ein.");
+
+static const u8 MoveDescription_ThunderShock[] = _(
+ "Elektro-Attacke. Gegner\n"
+ "evtl. paralysiert.");
+
+static const u8 MoveDescription_Thunderbolt[] = _(
+ "Starke Elektro-Attacke,\n"
+ "Gegner evtl. paralysiert.");
+
+static const u8 MoveDescription_ThunderWave[] = _(
+ "Ein schwacher Stromstoß,\n"
+ "der den Gegner paralysiert.");
+
+static const u8 MoveDescription_Thunder[] = _(
+ "Elektro-Attacke, die den\n"
+ "Gegner evtl. paralysiert.");
+
+static const u8 MoveDescription_RockThrow[] = _(
+ "Wirft kleine Steine auf den\n"
+ "Gegner.");
+
+static const u8 MoveDescription_Earthquake[] = _(
+ "Mächtiges Beben. Ist bei\n"
+ "fliegenden Feinden nutzlos.");
+
+static const u8 MoveDescription_Fissure[] = _(
+ "Sofort-K.O. Wirft Gegner\n"
+ "in Gebirgsspalte.");
+
+static const u8 MoveDescription_Dig[] = _(
+ "Gräbt sich in der 1. Runde\n"
+ "ein und trifft in der 2.");
+
+static const u8 MoveDescription_Toxic[] = _(
+ "Vergiftet den Gegner mit \n"
+ "einem starken Toxin.");
+
+static const u8 MoveDescription_Confusion[] = _(
+ "Psycho-Attacke, die den\n"
+ "Gegner evtl. verwirrt.");
+
+static const u8 MoveDescription_Psychic[] = _(
+ "Starke Psycho-Attacke, die\n"
+ "evtl. SPEZ. VERT. senkt.");
+
+static const u8 MoveDescription_Hypnosis[] = _(
+ "Hypno-Attacke, die Gegner\n"
+ "evtl. in Schlaf versetzt.");
+
+static const u8 MoveDescription_Meditate[] = _(
+ "Friedliche Meditation, um\n"
+ "ANGR.-Wert zu steigern.");
+
+static const u8 MoveDescription_Agility[] = _(
+ "Entspannt den Körper, um\n"
+ "INIT.-Wert. zu steigern.");
+
+static const u8 MoveDescription_QuickAttack[] = _(
+ "Sehr schneller Angriff mit\n"
+ "Erstschlaggarantie.");
+
+static const u8 MoveDescription_Rage[] = _(
+ "Erhöht ANGR. des Anwenders\n"
+ "bei jedem gegn. Treffer.");
+
+static const u8 MoveDescription_Teleport[] = _(
+ "Psycho-Angriff, um sofort\n"
+ "aus einem Kampf zu fliehen.");
+
+static const u8 MoveDescription_NightShade[] = _(
+ "Richtet Schaden gemäß\n"
+ "Level d. Angreifers an.");
+
+static const u8 MoveDescription_Mimic[] = _(
+ "Kopiert eine zuvor ausge-\n"
+ "führte Attacke d. Gegners.");
+
+static const u8 MoveDescription_Screech[] = _(
+ "Stößt einen Schrei aus, um\n"
+ "gegn. VERT. zu senken.");
+
+static const u8 MoveDescription_DoubleTeam[] = _(
+ "Erzeugt Ebenbilder, um \n"
+ "Fluchtwert zu erhöhen.");
+
+static const u8 MoveDescription_Recover[] = _(
+ "Max. KP des Anwenders w.\n"
+ "bis zur Hälfte aufgefüllt.");
+
+static const u8 MoveDescription_Harden[] = _(
+ "Stärkt die Muskulatur und\n"
+ "erhöht VERT.-Wert.");
+
+static const u8 MoveDescription_Minimize[] = _(
+ "Anwender schrumpft, um\n"
+ "Fluchtwert zu erhöhen.");
+
+static const u8 MoveDescription_Smokescreen[] = _(
+ "Senkt Genauigkeit d. Geg-\n"
+ "ners mit Rauch, Tinte o. ä.");
+
+static const u8 MoveDescription_ConfuseRay[] = _(
+ "Ein fieser Strahl, der den\n"
+ "Gegner verwirrt.");
+
+static const u8 MoveDescription_Withdraw[] = _(
+ "Rückzug in den harten\n"
+ "Panzer. Erhöht VERT.-Wert.");
+
+static const u8 MoveDescription_DefenseCurl[] = _(
+ "Verbirgt Schwächen durch\n"
+ "Einrollen, VERT.-Wert hoch.");
+
+static const u8 MoveDescription_Barrier[] = _(
+ "Erzeugt Barriere, die den\n"
+ "VERT.-Wert stark erhöht.");
+
+static const u8 MoveDescription_LightScreen[] = _(
+ "Erzeugt Lichtwand u. senkt\n"
+ "SPEZ. ANGR.-Schaden.");
+
+static const u8 MoveDescription_Haze[] = _(
+ "Erzeugt dunklen Dunst.\n"
+ "Löscht alle Statusänder.");
+
+static const u8 MoveDescription_Reflect[] = _(
+ "Erzeugt Lichtwand, schützt\n"
+ "teilweise vor phys. Angr.");
+
+static const u8 MoveDescription_FocusEnergy[] = _(
+ "Bündelt Kraft. Volltreffer-\n"
+ "chance wird erhöht.");
+
+static const u8 MoveDescription_Bide[] = _(
+ "Erträgt 2 Runden Angriffe,\n"
+ "schlägt doppelt zurück.");
+
+static const u8 MoveDescription_Metronome[] = _(
+ "Bewegt Finger und wählt\n"
+ "PKMN-Attacke zufällig aus.");
+
+static const u8 MoveDescription_MirrorMove[] = _(
+ "Erwidert gegn. Angriff mit\n"
+ "derselben Attacke.");
+
+static const u8 MoveDescription_SelfDestruct[] = _(
+ "Richtet großen Schaden an.\n"
+ "Anwender wird besiegt.");
+
+static const u8 MoveDescription_EggBomb[] = _(
+ "Ein Ei wird auf den Gegner\n"
+ "abgefeuert.");
+
+static const u8 MoveDescription_Lick[] = _(
+ "Leck-Attacke mit Zunge.\n"
+ "Gegner evtl. paralysiert.");
+
+static const u8 MoveDescription_Smog[] = _(
+ "Angriff mit Gas. Gegner wird\n"
+ "evtl. vergiftet.");
+
+static const u8 MoveDescription_Sludge[] = _(
+ "Wirft Schlamm auf Gegner.\n"
+ "Evtl. Vergiftung.");
+
+static const u8 MoveDescription_BoneClub[] = _(
+ "Schlägt Gegner mit Keule\n"
+ "und verschreckt ihn evtl.");
+
+static const u8 MoveDescription_FireBlast[] = _(
+ "Feuersbrunst, die alles ver-\n"
+ "sengt. Verbrennt Geg. evtl.");
+
+static const u8 MoveDescription_Waterfall[] = _(
+ "Attacke basiert auf Tempo.\n"
+ "Erklimmt Wasserfälle.");
+
+static const u8 MoveDescription_Clamp[] = _(
+ "Fängt und drückt Gegner\n"
+ "für 2-5 Runden.");
+
+static const u8 MoveDescription_Swift[] = _(
+ "Verschießt sternförmige\n"
+ "Strahlen. Treffergarantie!");
+
+static const u8 MoveDescription_SkullBash[] = _(
+ "Zieht Kopf ein und greift in\n"
+ "der nächsten Runde an.");
+
+static const u8 MoveDescription_SpikeCannon[] = _(
+ "Verschießt spitze Stacheln\n"
+ "und trifft 2 - 5-mal.");
+
+static const u8 MoveDescription_Constrict[] = _(
+ "Schmerzvoller Klammergriff.\n"
+ "Senkt evtl. INIT.-Wert.");
+
+static const u8 MoveDescription_Amnesia[] = _(
+ "Gedächtnisverlust, der\n"
+ "SPEZ. VERT. deutlich erhöht.");
+
+static const u8 MoveDescription_Kinesis[] = _(
+ "Lenkt Gegner ab und senkt\n"
+ "evtl. seine Genauigkeit.");
+
+static const u8 MoveDescription_SoftBoiled[] = _(
+ "Max. KP des Anwenders w.\n"
+ "bis zur Hälfte aufgefüllt.");
+
+static const u8 MoveDescription_HiJumpKick[] = _(
+ "Sprung-Tritt mit Knie. Miss-\n"
+ "erfolg verletzt Anwender.");
+
+static const u8 MoveDescription_Glare[] = _(
+ "Schüchtert Gegner ein, so\n"
+ "dass er paralysiert ist.");
+
+static const u8 MoveDescription_DreamEater[] = _(
+ "Schlafendem Gegner wird\n"
+ "halber Schaden abgezogen.");
+
+static const u8 MoveDescription_PoisonGas[] = _(
+ "Hüllt Gegner in giftiges Gas\n"
+ "ein, kann vergiften.");
+
+static const u8 MoveDescription_Barrage[] = _(
+ "Wirft 2 - 5-mal runde Gegen-\n"
+ "stände auf den Gegner.");
+
+static const u8 MoveDescription_LeechLife[] = _(
+ "Ein Angriff, der die Hälfte\n"
+ "des Schadens saugt.");
+
+static const u8 MoveDescription_LovelyKiss[] = _(
+ "Fordert Kuss mit bösem\n"
+ "Blick. Evtl. Schlaf.");
+
+static const u8 MoveDescription_SkyAttack[] = _(
+ "Sucht nach Schwächen,\n"
+ "Treffer nächste Runde.");
+
+static const u8 MoveDescription_Transform[] = _(
+ "Ändert die Anwenderzellen\n"
+ "für ein Ebenbild d. Gegners.");
+
+static const u8 MoveDescription_Bubble[] = _(
+ "Angriff mit Blasen. INIT.-\n"
+ "Wert wird evtl. gesenkt.");
+
+static const u8 MoveDescription_DizzyPunch[] = _(
+ "Rhythmischer Schlag, der\n"
+ "den Gegner verwirren kann.");
+
+static const u8 MoveDescription_Spore[] = _(
+ "Erzeugt eine Wolke aus ein-\n"
+ "schläfernden Sporen.");
+
+static const u8 MoveDescription_Flash[] = _(
+ "Erzeugt helles Licht, das\n"
+ "gegn. Genauigkeit senkt.");
+
+static const u8 MoveDescription_Psywave[] = _(
+ "Psycho-Welle mit unter-\n"
+ "schiedlicher Intensität.");
+
+static const u8 MoveDescription_Splash[] = _(
+ "Nur ein Platscher..., der\n"
+ "überhaupt nichts bewirkt.");
+
+static const u8 MoveDescription_AcidArmor[] = _(
+ "Verflüssigt Körper d. An-\n"
+ "wenders. Erhört VERT.");
+
+static const u8 MoveDescription_Crabhammer[] = _(
+ "Schlägt mit Schere zu.\n"
+ "Volltrefferchance hoch.");
+
+static const u8 MoveDescription_Explosion[] = _(
+ "Richtet großen Schaden an.\n"
+ "Anwender wird besiegt.");
+
+static const u8 MoveDescription_FurySwipes[] = _(
+ "Beharkt Gegner 2 - 5-mal\n"
+ "mit scharfen Klauen o. ä.");
+
+static const u8 MoveDescription_Bonemerang[] = _(
+ "Ein Bumerang aus Knochen,\n"
+ "der zweimal trifft.");
+
+static const u8 MoveDescription_Rest[] = _(
+ "Anwender schläft 2 Runden,\n"
+ "KP und Status erneuert.");
+
+static const u8 MoveDescription_RockSlide[] = _(
+ "Schleudert riesige Felsen.\n"
+ "Verschreckt evtl. Gegner.");
+
+static const u8 MoveDescription_HyperFang[] = _(
+ "Angriff mit Zähnen.\n"
+ "Verschreckt evtl. Gegner.");
+
+static const u8 MoveDescription_Sharpen[] = _(
+ "Reduziert Polygonzahl und\n"
+ "erhöht ANGR.-Wert.");
+
+static const u8 MoveDescription_Conversion[] = _(
+ "Wandelt Typ d. Anwenders in\n"
+ "eigenen Attacken-Typ.");
+
+static const u8 MoveDescription_TriAttack[] = _(
+ "Feuert 3 Arten von Strahlen\n"
+ "gleichzeitig ab.");
+
+static const u8 MoveDescription_SuperFang[] = _(
+ "Greift mit scharfen Zähnen\n"
+ "an. Halbiert gegnerische KP.");
+
+static const u8 MoveDescription_Slash[] = _(
+ "Hieb mit Klauen o. ä. Hohe\n"
+ "Volltrefferquote.");
+
+static const u8 MoveDescription_Substitute[] = _(
+ "Lockvogel, der 1/4 der max.\n"
+ "KP des Anwenders besitzt.");
+
+static const u8 MoveDescription_Struggle[] = _(
+ "Einsatz nur bei verbrauch-\n"
+ "ten AP. Selbstschädigung!");
+
+static const u8 MoveDescription_Sketch[] = _(
+ "Kopiert stets den zuletzt\n"
+ "erlittenen Angriff.");
+
+static const u8 MoveDescription_TripleKick[] = _(
+ "Tritt Gegner 3-mal nach-\n"
+ "einander. Härte nimmt zu.");
+
+static const u8 MoveDescription_Thief[] = _(
+ "Kann das vom Gegner\n"
+ "gehaltene Item stehlen.");
+
+static const u8 MoveDescription_SpiderWeb[] = _(
+ "Wickelt Gegner ein. Flucht \n"
+ "oder Tausch unmöglich.");
+
+static const u8 MoveDescription_MindReader[] = _(
+ "Ahnt gegnerische Aktion.\n"
+ "Nächste Attacke trifft.");
+
+static const u8 MoveDescription_Nightmare[] = _(
+ "Bewirkt 1/4 Schaden pro\n"
+ "Zug bei schlafendem Gegner.");
+
+static const u8 MoveDescription_FlameWheel[] = _(
+ "Feuer-Attacke, die Gegner\n"
+ "evtl. verbrennt.");
+
+static const u8 MoveDescription_Snore[] = _(
+ "Laute Attacke. Kann nur im\n"
+ "Schlaf benutzt werden.");
+
+static const u8 MoveDescription_Curse[] = _(
+ "Ein Angriff, der bei GEIST-\n"
+ "PKMN anders funktioniert.");
+
+static const u8 MoveDescription_Flail[] = _(
+ "Richtet mehr Schaden an,\n"
+ "wenn eigene KP niedrig sind.");
+
+static const u8 MoveDescription_Conversion2[] = _(
+ "Anwender wird resistent\n"
+ "gegen letzten Angr.-Typ.");
+
+static const u8 MoveDescription_Aeroblast[] = _(
+ "Erzeugt ein Vakuum.\n"
+ "Hohe Volltrefferquote.");
+
+static const u8 MoveDescription_CottonSpore[] = _(
+ "Sporen heften sich an den\n"
+ "Gegner. Senkt INIT.-Wert.");
+
+static const u8 MoveDescription_Reversal[] = _(
+ "Richtet mehr Schaden an,\n"
+ "wenn eigene KP niedrig sind.");
+
+static const u8 MoveDescription_Spite[] = _(
+ "AP des letzten gegner.\n"
+ "Angriffs werden gesenkt.");
+
+static const u8 MoveDescription_PowderSnow[] = _(
+ "Schnee auf Gegner, der\n"
+ "evtl. eingefroren wird.");
+
+static const u8 MoveDescription_Protect[] = _(
+ "Weicht Angriff aus.\n"
+ "Scheitert evtl. bei Wdh.");
+
+static const u8 MoveDescription_MachPunch[] = _(
+ "Schneller Hieb, der stets\n"
+ "zuerst trifft.");
+
+static const u8 MoveDescription_ScaryFace[] = _(
+ "Erschreckt mit Grimasse. \n"
+ "INIT.-Wert sinkt deutlich.");
+
+static const u8 MoveDescription_FaintAttack[] = _(
+ "Zieht Gegner heran und\n"
+ "trifft mit Sicherheit.");
+
+static const u8 MoveDescription_SweetKiss[] = _(
+ "Fordert Kuss mit süßem\n"
+ "Blick. Verwirrt Gegner evtl.");
+
+static const u8 MoveDescription_BellyDrum[] = _(
+ "Erhöht ANGR.-Wert,\n"
+ "opfert jedoch KP.");
+
+static const u8 MoveDescription_SludgeBomb[] = _(
+ "Wirft Schlamm auf Gegner\n"
+ "und vergiftet ihn evtl.");
+
+static const u8 MoveDescription_MudSlap[] = _(
+ "Wirft Gegner Matsch ins Ge-\n"
+ "sicht. Genauigkeit sinkt.");
+
+static const u8 MoveDescription_Octazooka[] = _(
+ "Verschießt Tinte und senkt\n"
+ "dadurch Genauigkeit.");
+
+static const u8 MoveDescription_Spikes[] = _(
+ "Richtet bei Tausch Schaden\n"
+ "mit Stacheln an.");
+
+static const u8 MoveDescription_ZapCannon[] = _(
+ "Kräftige, ungenaue At-\n"
+ "tacke, die evtl. paralysiert.");
+
+static const u8 MoveDescription_Foresight[] = _(
+ "Verhindert Anstieg von\n"
+ "gegnerischem Fluchtwert.");
+
+static const u8 MoveDescription_DestinyBond[] = _(
+ "Wird der Angreifer besiegt,\n"
+ "gilt das auch für d. Gegner.");
+
+static const u8 MoveDescription_PerishSong[] = _(
+ "Wer dieses Lied hört, wird\n"
+ "nach 3 Runden besiegt.");
+
+static const u8 MoveDescription_IcyWind[] = _(
+ "Eis-Attacke, die den INIT.-\n"
+ "Wert des Gegners senkt.");
+
+static const u8 MoveDescription_Detect[] = _(
+ "Wendet Attacken ab, Erfolg\n"
+ "sinkt bei Wiederholung.");
+
+static const u8 MoveDescription_BoneRush[] = _(
+ "Greift Gegner 2 - 5-mal in\n"
+ "Folge mit einem Knochen an.");
+
+static const u8 MoveDescription_LockOn[] = _(
+ "Visiert Gegner an u. trifft\n"
+ "in der nächsten Runde.");
+
+static const u8 MoveDescription_Outrage[] = _(
+ "Wiederholt Angriff 2-3 Run-\n"
+ "den lang. Verwirrt Anwender.");
+
+static const u8 MoveDescription_Sandstorm[] = _(
+ "Erzeugt einen Sandsturm,\n"
+ "der mehrere Runden wütet.");
+
+static const u8 MoveDescription_GigaDrain[] = _(
+ "Absorbiert die Hälfte des\n"
+ "angerichteten Schadens.");
+
+static const u8 MoveDescription_Endure[] = _(
+ "Hält jeder Attacke 1 Runde\n"
+ "stand. 1 KP bleibt stets.");
+
+static const u8 MoveDescription_Charm[] = _(
+ "Betört den Gegner u. redu-\n"
+ "ziert seinen ANGR. deutlich.");
+
+static const u8 MoveDescription_Rollout[] = _(
+ "Attacke, die 5 Runden\n"
+ "dauert. Die Härte nimmt zu.");
+
+static const u8 MoveDescription_FalseSwipe[] = _(
+ "Ein Angriff, der dem Gegner\n"
+ "zumindest 1 KP lässt.");
+
+static const u8 MoveDescription_Swagger[] = _(
+ "Verwirrt den Gegner und\n"
+ "erhöht ANGR.-Wert deutlich.");
+
+static const u8 MoveDescription_MilkDrink[] = _(
+ "Füllt bis zur Hälfte der max.\n"
+ "KP des Benutzers auf.");
+
+static const u8 MoveDescription_Spark[] = _(
+ "Elektro-Hieb, der Gegner\n"
+ "paralysieren kann.");
+
+static const u8 MoveDescription_FuryCutter[] = _(
+ "Eine Attacke, deren Härte\n"
+ "bei jedem Treffer zunimmt.");
+
+static const u8 MoveDescription_SteelWing[] = _(
+ "Trifft den Gegner hart mit\n"
+ "ausgebreiteten Flügeln.");
+
+static const u8 MoveDescription_MeanLook[] = _(
+ "Böser Blick, der die Flucht\n"
+ "des Gegners vereitelt.");
+
+static const u8 MoveDescription_Attract[] = _(
+ "Angriff des anderen Ge-\n"
+ "schlechts unwahrscheinl.");
+
+static const u8 MoveDescription_SleepTalk[] = _(
+ "Benutzt per Zufall eine\n"
+ "Attacke im Schlaf.");
+
+static const u8 MoveDescription_HealBell[] = _(
+ "Läutet beruhigend, heilt\n"
+ "alle Status-Veränderungen.");
+
+static const u8 MoveDescription_Return[] = _(
+ "Angriff, dessen Kraft bei \n"
+ "Freundschaft größer wird.");
+
+static const u8 MoveDescription_Present[] = _(
+ "Eine Bombe als Geschenk. Es\n"
+ "kann KP wiederherstellen.");
+
+static const u8 MoveDescription_Frustration[] = _(
+ "Die Attacke ist stärker bei\n"
+ "verhassten TRAINERn.");
+
+static const u8 MoveDescription_Safeguard[] = _(
+ "Mystische Kraft, die alle\n"
+ "Statusprobleme verhindert.");
+
+static const u8 MoveDescription_PainSplit[] = _(
+ "Addiert KP v. Anwender u.\n"
+ "Gegner, teilt gerecht auf.");
+
+static const u8 MoveDescription_SacredFire[] = _(
+ "Mystische Feuer-Attacke, \n"
+ "die d. Geg. evtl. verbrennt.");
+
+static const u8 MoveDescription_Magnitude[] = _(
+ "Ein erdbebenartiger An-\n"
+ "griff von zufälliger Stärke.");
+
+static const u8 MoveDescription_DynamicPunch[] = _(
+ "Kräftige Attacke, die ver-\n"
+ "wirrt, aber ungenau ist.");
+
+static const u8 MoveDescription_Megahorn[] = _(
+ "Brutaler Frontalangriff\n"
+ "mit spitzen Hörnern.");
+
+static const u8 MoveDescription_DragonBreath[] = _(
+ "Fegt den Gegner mit zer-\n"
+ "störerisch heißem Atem weg.");
+
+static const u8 MoveDescription_BatonPass[] = _(
+ "Tauscht PKMN aus. Alle Än-\n"
+ "derungen bleiben bestehen.");
+
+static const u8 MoveDescription_Encore[] = _(
+ "Gegner wiederholt letzten\n"
+ "Angriff 2 - 6-mal.");
+
+static const u8 MoveDescription_Pursuit[] = _(
+ "Richtet großen Schaden bei\n"
+ "Austausch des Gegners an.");
+
+static const u8 MoveDescription_RapidSpin[] = _(
+ "Trifft den Gegner durch\n"
+ "Drehen mit max. Tempo.");
+
+static const u8 MoveDescription_SweetScent[] = _(
+ "Lockt Gegner an und senkt\n"
+ "seinen Fluchtwert.");
+
+static const u8 MoveDescription_IronTail[] = _(
+ "Att. mit hartem Schweif. \n"
+ "Senkt evtl. VERT.-Wert.");
+
+static const u8 MoveDescription_MetalClaw[] = _(
+ "Klauen-Attacke. Evtl. Er-\n"
+ "höhung d. ANGR.-Wert d. Anw.");
+
+static const u8 MoveDescription_VitalThrow[] = _(
+ "Attacke stets gleich, aber\n"
+ "mit Treffergarantie.");
+
+static const u8 MoveDescription_MorningSun[] = _(
+ "Füllt KP auf. Die Menge\n"
+ "hängt vom Wetter ab.");
+
+static const u8 MoveDescription_Synthesis[] = _(
+ "Füllt KP auf. Die Menge\n"
+ "hängt vom Wetter ab.");
+
+static const u8 MoveDescription_Moonlight[] = _(
+ "Füllt KP auf. Die Menge\n"
+ "hängt vom Wetter ab.");
+
+static const u8 MoveDescription_HiddenPower[] = _(
+ "Die Wirkung dieser Attacke\n"
+ "hängt vom Benutzer ab.");
+
+static const u8 MoveDescription_CrossChop[] = _(
+ "Doppelter Hieb. Hohe \n"
+ "Volltrefferquote.");
+
+static const u8 MoveDescription_Twister[] = _(
+ "Trifft Gegner mit\n"
+ "heftigem Wirbelsturm.");
+
+static const u8 MoveDescription_RainDance[] = _(
+ "Erhöht Stärke von WASSER-\n"
+ "Attacken 5 Runden lang.");
+
+static const u8 MoveDescription_SunnyDay[] = _(
+ "Erhöht Stärke von FEUER-\n"
+ "Attacken 5 Runden lang.");
+
+static const u8 MoveDescription_Crunch[] = _(
+ "Beißt mit Reißzähnen zu und\n"
+ "senkt evtl. SPEZ. VERT.");
+
+static const u8 MoveDescription_MirrorCoat[] = _(
+ "Kontert d. Spezial-Attacke\n"
+ "d. Geg. mit 2-facher Kraft.");
+
+static const u8 MoveDescription_PsychUp[] = _(
+ "Kopiert Effekte d. Gegners\n"
+ "u. gibt sie dem Angreifer.");
+
+static const u8 MoveDescription_ExtremeSpeed[] = _(
+ "Extrem schnelle und kraft-\n"
+ "volle Attacke.");
+
+static const u8 MoveDescription_AncientPower[] = _(
+ "Ein Angriff, der alle\n"
+ "Status-Werte erhöhen kann.");
+
+static const u8 MoveDescription_ShadowBall[] = _(
+ "Bewirft Gegner und senkt\n"
+ "evtl. SPEZ. VERT.");
+
+static const u8 MoveDescription_FutureSight[] = _(
+ "Stärkt innere Kraft. Trifft\n"
+ "2 Runden später.");
+
+static const u8 MoveDescription_RockSmash[] = _(
+ "Zertrümmernder Angriff, \n"
+ "der evtl. VERT.-Wert senkt.");
+
+static const u8 MoveDescription_Whirlpool[] = _(
+ "Hält Gegner 2-5 Züge in\n"
+ "einem Strudel gefangen.");
+
+static const u8 MoveDescription_BeatUp[] = _(
+ "Ruft POKéMON hinzu, um an\n"
+ "dem Angriff teilzuhaben.");
+
+static const u8 MoveDescription_FakeOut[] = _(
+ "Trifft schon mit dem ersten\n"
+ "Schlag. Verjagt Gegner evtl.");
+
+static const u8 MoveDescription_Uproar[] = _(
+ "Erzeugt für 2-5 Züge einen\n"
+ "Aufruhr. Verhindert Schlaf.");
+
+static const u8 MoveDescription_Stockpile[] = _(
+ "Lädt Kraft für bis zu 3\n"
+ "Runden auf.");
+
+static const u8 MoveDescription_SpitUp[] = _(
+ "Entlädt gehortete Kraft.\n"
+ "Je mehr, desto besser.");
+
+static const u8 MoveDescription_Swallow[] = _(
+ "Absorbiert gehortete\n"
+ "Kraft. Stellt KP wieder her.");
+
+static const u8 MoveDescription_HeatWave[] = _(
+ "Gegner wird von heißem Atem\n"
+ "getroffen. Verbrennt evtl.");
+
+static const u8 MoveDescription_Hail[] = _(
+ "Erzeugt Hagelsturm, der in\n"
+ "jeder Runde trifft.");
+
+static const u8 MoveDescription_Torment[] = _(
+ "Quält Gegner u. verhindert\n"
+ "Wdh. eines Angriffs.");
+
+static const u8 MoveDescription_Flatter[] = _(
+ "Verwirrt den Gegner, erhöht\n"
+ "aber dessen SPEZ. ANGR.");
+
+static const u8 MoveDescription_WillOWisp[] = _(
+ "Fügt dem Gegner \n"
+ "Verbrennungen zu.");
+
+static const u8 MoveDescription_Memento[] = _(
+ "Der Benutzer ist besiegt\n"
+ "und senkt die gegn. Werte.");
+
+static const u8 MoveDescription_Facade[] = _(
+ "Erhöht ANGR. nach Verbren-\n"
+ "nung, Paralyse o. Vergift.");
+
+static const u8 MoveDescription_FocusPunch[] = _(
+ "Angriff, der später trifft.\n"
+ "Ben. schreckt evtl. zurück.");
+
+static const u8 MoveDescription_SmellingSalt[] = _(
+ "Effektiv geg. paralysierte\n"
+ "Gegner. Heilt sie aber auch.");
+
+static const u8 MoveDescription_FollowMe[] = _(
+ "Zieht Aufmerksamkeit an.\n"
+ "Gegner greift nur Anw. an.");
+
+static const u8 MoveDescription_NaturePower[] = _(
+ "Die Elementklasse des\n"
+ "Angriffs hängt vom Ort ab.");
+
+static const u8 MoveDescription_Charge[] = _(
+ "Lädt Energie für den kom-\n"
+ "menden Elektro-Angr. auf.");
+
+static const u8 MoveDescription_Taunt[] = _(
+ "Legt den Gegner rein. Er\n"
+ "benutzt nur noch Angriffe.");
+
+static const u8 MoveDescription_HelpingHand[] = _(
+ "Steigert die Kraft der An-\n"
+ "griffe des Getroffenen.");
+
+static const u8 MoveDescription_Trick[] = _(
+ "Betrügt beim Handel\n"
+ "mit Gegenständen.");
+
+static const u8 MoveDescription_RolePlay[] = _(
+ "Parodiert Gegner u. kopiert\n"
+ "seine Spezialfähigkeiten.");
+
+static const u8 MoveDescription_Wish[] = _(
+ "Ein Wunsch, der KP auffüllt.\n"
+ "Die Erfüllung braucht Zeit.");
+
+static const u8 MoveDescription_Assist[] = _(
+ "Greift zufällig mit einem\n"
+ "Angriff d. Partners an.");
+
+static const u8 MoveDescription_Ingrain[] = _(
+ "Verwurzelung füllt KP auf.\n"
+ "Austausch unmöglich.");
+
+static const u8 MoveDescription_Superpower[] = _(
+ "Steigert Stärke deutlich,\n"
+ "senkt aber Status-Werte.");
+
+static const u8 MoveDescription_MagicCoat[] = _(
+ "Gibt Spezialeffekte zurück\n"
+ "an Benutzer.");
+
+static const u8 MoveDescription_Recycle[] = _(
+ "Recycling eines\n"
+ "verwendeten Items.");
+
+static const u8 MoveDescription_Revenge[] = _(
+ "Attacke wird stärker, wenn\n"
+ "Anwender Schaden nimmt.");
+
+static const u8 MoveDescription_BrickBreak[] = _(
+ "Durchbricht Barrieren und\n"
+ "verursacht Schaden.");
+
+static const u8 MoveDescription_Yawn[] = _(
+ "Gegner gähnt und schläft\n"
+ "in der nächsten Runde ein.");
+
+static const u8 MoveDescription_KnockOff[] = _(
+ "Schlägt Gegner Item weg.\n"
+ "Vereitelt so den Gebrauch.");
+
+static const u8 MoveDescription_Endeavor[] = _(
+ "Wird stärker, wenn Anw.-KP\n"
+ "geringer als Gegner-KP ist.");
+
+static const u8 MoveDescription_Eruption[] = _(
+ "Je höher KP des Benutzers,\n"
+ "desto mehr Schaden.");
+
+static const u8 MoveDescription_SkillSwap[] = _(
+ "Anw. tauscht Spezial-\n"
+ "fähigkeit mit POKéMON.");
+
+static const u8 MoveDescription_Imprison[] = _(
+ "Hindert Gegner an Atta-\n"
+ "cken, die d. Benutzer kennt.");
+
+static const u8 MoveDescription_Refresh[] = _(
+ "Kuriert Vergiftungen, Para-\n"
+ "lyse und Verbrennung.");
+
+static const u8 MoveDescription_Grudge[] = _(
+ "Wenn Anw. bes., werden AP\n"
+ "der Finalattacke gelöscht.");
+
+static const u8 MoveDescription_Snatch[] = _(
+ "Immunität geg. den Effekt\n"
+ "d. nächsten gegn. Angriffs.");
+
+static const u8 MoveDescription_SecretPower[] = _(
+ "Angriff, dessen Auswirkung\n"
+ "abhängig vom Ort ist.");
+
+static const u8 MoveDescription_Dive[] = _(
+ "Taucht in der 1. Runde\n"
+ "unter u. trifft in der 2.");
+
+static const u8 MoveDescription_ArmThrust[] = _(
+ "Schläge mit geradem Arm, die\n"
+ "Gegner 2 - 5-mal treffen.");
+
+static const u8 MoveDescription_Camouflage[] = _(
+ "Die Elementklasse des\n"
+ "POKéMON hängt vom Ort ab.");
+
+static const u8 MoveDescription_TailGlow[] = _(
+ "Ein blinkendes Licht. SPEZ.\n"
+ "ANGR. wird deutlich erhöht.");
+
+static const u8 MoveDescription_LusterPurge[] = _(
+ "Angriff mit grellem Licht.\n"
+ "Senkt evtl. SPEZ. VERT.");
+
+static const u8 MoveDescription_MistBall[] = _(
+ "Angriff m. Daunengestöber,\n"
+ "Senkt evtl. SPEZ. ANGR.");
+
+static const u8 MoveDescription_FeatherDance[] = _(
+ "Hüllt Gegner in Daunen und\n"
+ "senkt ANGR.-Wert deutlich.");
+
+static const u8 MoveDescription_TeeterDance[] = _(
+ "Verwirrt alle POKéMON im \n"
+ "Kampf.");
+
+static const u8 MoveDescription_BlazeKick[] = _(
+ "Hohe Volltrefferquote. Ver-\n"
+ "ursacht evtl. Verbrennung.");
+
+static const u8 MoveDescription_MudSport[] = _(
+ "Bedeckt Anw. mit Lehm u. er-\n"
+ "höht Schutz geg. Elek.-Att.");
+
+static const u8 MoveDescription_IceBall[] = _(
+ "Angriff für 5 Runden. \n"
+ "Stärker, wenn Treffer.");
+
+static const u8 MoveDescription_NeedleArm[] = _(
+ "Angriff mit dornigen Armen. \n"
+ "Geg. schreckt evtl. zurück.");
+
+static const u8 MoveDescription_SlackOff[] = _(
+ "Durch Müßiggang wird die\n"
+ "Hälfte d. max. KP aufgefüllt.");
+
+static const u8 MoveDescription_HyperVoice[] = _(
+ "Laute Attacke mit Schall-\n"
+ "wellen.");
+
+static const u8 MoveDescription_PoisonFang[] = _(
+ "Angriff mit Reißzähnen. \n"
+ "Gegner wird evtl. vergiftet.");
+
+static const u8 MoveDescription_CrushClaw[] = _(
+ "Angriff mit scharfen Klau-\n"
+ "en. Senkt evtl. VERT.-Wert.");
+
+static const u8 MoveDescription_BlastBurn[] = _(
+ "Starker Angriff. Angreifer\n"
+ "muss eine Runde aussetzen.");
+
+static const u8 MoveDescription_HydroCannon[] = _(
+ "Starker Angriff. Angreifer\n"
+ "muss eine Runde aussetzen.");
+
+static const u8 MoveDescription_MeteorMash[] = _(
+ "Ein Schlag wie ein Meteor.\n"
+ "Erhöht evtl. ANGR.-Wert.");
+
+static const u8 MoveDescription_Astonish[] = _(
+ "Angriff, der Gegner evtl.\n"
+ "zurückschrecken lässt.");
+
+static const u8 MoveDescription_WeatherBall[] = _(
+ "Elementkl. u. Stärke der At-\n"
+ "tacke sind wetterabhängig.");
+
+static const u8 MoveDescription_Aromatherapy[] = _(
+ "Heilt alle Status-Probleme\n"
+ "mit beruhigendem Duft.");
+
+static const u8 MoveDescription_FakeTears[] = _(
+ "Täuscht Weinen vor, um\n"
+ "gegn. SPEZ. VERT. zu senken.");
+
+static const u8 MoveDescription_AirCutter[] = _(
+ "Greift mit heftigem Wind an.\n"
+ "Hohe Volltrefferquote.");
+
+static const u8 MoveDescription_Overheat[] = _(
+ "Angriff mit voller Kraft.\n"
+ "SPEZ. ANGR. sinkt deutlich.");
+
+static const u8 MoveDescription_OdorSleuth[] = _(
+ "Hindert Gegner daran, ihren\n"
+ "Fluchtwert zu erhöhen.");
+
+static const u8 MoveDescription_RockTomb[] = _(
+ "Hält den Feind mit Steinen\n"
+ "auf u. senkt INIT.-Wert.");
+
+static const u8 MoveDescription_SilverWind[] = _(
+ "Pulver-Attacke, die evtl.\n"
+ "die Werte erhöht.");
+
+static const u8 MoveDescription_MetalSound[] = _(
+ "Stößt einen spitzen Schrei\n"
+ "aus. Senkt SPEZ. VERT.");
+
+static const u8 MoveDescription_GrassWhistle[] = _(
+ "Versetzt Gegner mit schö-\n"
+ "ner Melodie in den Schlaf.");
+
+static const u8 MoveDescription_Tickle[] = _(
+ "Bringt Gegner zum Lachen.\n"
+ "ANGR. u. VERT. sinken.");
+
+static const u8 MoveDescription_CosmicPower[] = _(
+ "Erhöht VERT. u. SPEZ. VERT.\n"
+ "durch mystische Kraft.");
+
+static const u8 MoveDescription_WaterSpout[] = _(
+ "Ist wirkungsvoller, wenn KP\n"
+ "des Benutzers hoch sind.");
+
+static const u8 MoveDescription_SignalBeam[] = _(
+ "Seltsame Strahlenattacke.\n"
+ "Verwirrt evtl. den Gegner.");
+
+static const u8 MoveDescription_ShadowPunch[] = _(
+ "Schattenhieb. Ausweichen\n"
+ "unmöglich.");
+
+static const u8 MoveDescription_Extrasensory[] = _(
+ "Besonderer Angriff. Gegner\n"
+ "schreckt evtl. zurück.");
+
+static const u8 MoveDescription_SkyUppercut[] = _(
+ "Kinnhaken, als würde man in\n"
+ "die Luft springen.");
+
+static const u8 MoveDescription_SandTomb[] = _(
+ "Gegner leidet für 2-5\n"
+ "Runden in Sandhose.");
+
+static const u8 MoveDescription_SheerCold[] = _(
+ "Eis-Attacke. Besiegt den\n"
+ "Gegner, wenn sie trifft.");
+
+static const u8 MoveDescription_MuddyWater[] = _(
+ "Greift mit Matsch an und\n"
+ "senkt evtl. Genauigkeit.");
+
+static const u8 MoveDescription_BulletSeed[] = _(
+ "Verschießt 2 bis 5 Samen\n"
+ "gleichzeitig auf Gegner.");
+
+static const u8 MoveDescription_AerialAce[] = _(
+ "Eine extrem schnelle und\n"
+ "unausweichbare Attacke.");
+
+static const u8 MoveDescription_IcicleSpear[] = _(
+ "Feuert 2-5 Eiszapfen auf\n"
+ "den Gegner.");
+
+static const u8 MoveDescription_IronDefense[] = _(
+ "Stärkt den Körper.\n"
+ "Erhöht VERT.-Wert deutlich.");
+
+static const u8 MoveDescription_Block[] = _(
+ "Versperrt den Fluchtweg\n"
+ "des Gegners.");
+
+static const u8 MoveDescription_Howl[] = _(
+ "Jault, um in sich zu gehen.\n"
+ "Erhöht ANGR.-Wert.");
+
+static const u8 MoveDescription_DragonClaw[] = _(
+ "Der Gegner wird mit\n"
+ "scharfen Klauen verletzt.");
+
+static const u8 MoveDescription_FrenzyPlant[] = _(
+ "Starker Angriff. Angreifer\n"
+ "muss eine Runde aussetzen.");
+
+static const u8 MoveDescription_BulkUp[] = _(
+ "Pumpt den Körper auf. ANGR.\n"
+ "u. VERT. werden erhöht.");
+
+static const u8 MoveDescription_Bounce[] = _(
+ "Springt hoch u. landet in\n"
+ "nächstem Zug. Evtl. Para.");
+
+static const u8 MoveDescription_MudShot[] = _(
+ "Bewirft den Gegner mit Lehm\n"
+ "und senkt INIT.-Wert.");
+
+static const u8 MoveDescription_PoisonTail[] = _(
+ "Hohe Volltrefferquote.\n"
+ "Gegner evtl. vergiftet.");
+
+static const u8 MoveDescription_Covet[] = _(
+ "Bittet charmant um das ge-\n"
+ "haltene Item des Gegners.");
+
+static const u8 MoveDescription_VoltTackle[] = _(
+ "Lebensgefährliche Attacke,\n"
+ "leichte Selbstschädigung.");
+
+static const u8 MoveDescription_MagicalLeaf[] = _(
+ "Magischer Blattangriff.\n"
+ "Ausweichen unmöglich.");
+
+static const u8 MoveDescription_WaterSport[] = _(
+ "Benutzer wird nass, so dass\n"
+ "er Feuer besser standhält.");
+
+static const u8 MoveDescription_CalmMind[] = _(
+ "Erhöht SPEZ. ANGR. u. SPEZ.\n"
+ "VERT. durch Konzentration.");
+
+static const u8 MoveDescription_LeafBlade[] = _(
+ "Hieb mit scharfkantigem\n"
+ "Blatt. Hohe Volltrefferqu.");
+
+static const u8 MoveDescription_DragonDance[] = _(
+ "Ein mystischer Tanz, der\n"
+ "ANGR.- u. INIT.-Wert erhöht.");
+
+static const u8 MoveDescription_RockBlast[] = _(
+ "Wirft 2 - 5-mal in Folge\n"
+ "Felsblöcke auf den Gegner.");
+
+static const u8 MoveDescription_ShockWave[] = _(
+ "Schnelle Elektro-Attacke\n"
+ "mit Treffergarantie.");
+
+static const u8 MoveDescription_WaterPulse[] = _(
+ "Ultraschallwellen, die den\n"
+ "Gegner verwirren können.");
+
+static const u8 MoveDescription_DoomDesire[] = _(
+ "Speichert Sonnenenergie.\n"
+ "Angriff 2 Runden später.");
+
+static const u8 MoveDescription_PsychoBoost[] = _(
+ "Angriff mit voller Kraft.\n"
+ "SPEZ. ANGR. sinkt deutlich.");
+
+const u8 * const gMoveDescriptions[] = {
+ MoveDescription_Pound,
+ MoveDescription_KarateChop,
+ MoveDescription_DoubleSlap,
+ MoveDescription_CometPunch,
+ MoveDescription_MegaPunch,
+ MoveDescription_PayDay,
+ MoveDescription_FirePunch,
+ MoveDescription_IcePunch,
+ MoveDescription_ThunderPunch,
+ MoveDescription_Scratch,
+ MoveDescription_ViceGrip,
+ MoveDescription_Guillotine,
+ MoveDescription_RazorWind,
+ MoveDescription_SwordsDance,
+ MoveDescription_Cut,
+ MoveDescription_Gust,
+ MoveDescription_WingAttack,
+ MoveDescription_Whirlwind,
+ MoveDescription_Fly,
+ MoveDescription_Bind,
+ MoveDescription_Slam,
+ MoveDescription_VineWhip,
+ MoveDescription_Stomp,
+ MoveDescription_DoubleKick,
+ MoveDescription_MegaKick,
+ MoveDescription_JumpKick,
+ MoveDescription_RollingKick,
+ MoveDescription_SandAttack,
+ MoveDescription_Headbutt,
+ MoveDescription_HornAttack,
+ MoveDescription_FuryAttack,
+ MoveDescription_HornDrill,
+ MoveDescription_Tackle,
+ MoveDescription_BodySlam,
+ MoveDescription_Wrap,
+ MoveDescription_TakeDown,
+ MoveDescription_Thrash,
+ MoveDescription_DoubleEdge,
+ MoveDescription_TailWhip,
+ MoveDescription_PoisonSting,
+ MoveDescription_Twineedle,
+ MoveDescription_PinMissile,
+ MoveDescription_Leer,
+ MoveDescription_Bite,
+ MoveDescription_Growl,
+ MoveDescription_Roar,
+ MoveDescription_Sing,
+ MoveDescription_Supersonic,
+ MoveDescription_SonicBoom,
+ MoveDescription_Disable,
+ MoveDescription_Acid,
+ MoveDescription_Ember,
+ MoveDescription_Flamethrower,
+ MoveDescription_Mist,
+ MoveDescription_WaterGun,
+ MoveDescription_HydroPump,
+ MoveDescription_Surf,
+ MoveDescription_IceBeam,
+ MoveDescription_Blizzard,
+ MoveDescription_Psybeam,
+ MoveDescription_BubbleBeam,
+ MoveDescription_AuroraBeam,
+ MoveDescription_HyperBeam,
+ MoveDescription_Peck,
+ MoveDescription_DrillPeck,
+ MoveDescription_Submission,
+ MoveDescription_LowKick,
+ MoveDescription_Counter,
+ MoveDescription_SeismicToss,
+ MoveDescription_Strength,
+ MoveDescription_Absorb,
+ MoveDescription_MegaDrain,
+ MoveDescription_LeechSeed,
+ MoveDescription_Growth,
+ MoveDescription_RazorLeaf,
+ MoveDescription_SolarBeam,
+ MoveDescription_PoisonPowder,
+ MoveDescription_StunSpore,
+ MoveDescription_SleepPowder,
+ MoveDescription_PetalDance,
+ MoveDescription_StringShot,
+ MoveDescription_DragonRage,
+ MoveDescription_FireSpin,
+ MoveDescription_ThunderShock,
+ MoveDescription_Thunderbolt,
+ MoveDescription_ThunderWave,
+ MoveDescription_Thunder,
+ MoveDescription_RockThrow,
+ MoveDescription_Earthquake,
+ MoveDescription_Fissure,
+ MoveDescription_Dig,
+ MoveDescription_Toxic,
+ MoveDescription_Confusion,
+ MoveDescription_Psychic,
+ MoveDescription_Hypnosis,
+ MoveDescription_Meditate,
+ MoveDescription_Agility,
+ MoveDescription_QuickAttack,
+ MoveDescription_Rage,
+ MoveDescription_Teleport,
+ MoveDescription_NightShade,
+ MoveDescription_Mimic,
+ MoveDescription_Screech,
+ MoveDescription_DoubleTeam,
+ MoveDescription_Recover,
+ MoveDescription_Harden,
+ MoveDescription_Minimize,
+ MoveDescription_Smokescreen,
+ MoveDescription_ConfuseRay,
+ MoveDescription_Withdraw,
+ MoveDescription_DefenseCurl,
+ MoveDescription_Barrier,
+ MoveDescription_LightScreen,
+ MoveDescription_Haze,
+ MoveDescription_Reflect,
+ MoveDescription_FocusEnergy,
+ MoveDescription_Bide,
+ MoveDescription_Metronome,
+ MoveDescription_MirrorMove,
+ MoveDescription_SelfDestruct,
+ MoveDescription_EggBomb,
+ MoveDescription_Lick,
+ MoveDescription_Smog,
+ MoveDescription_Sludge,
+ MoveDescription_BoneClub,
+ MoveDescription_FireBlast,
+ MoveDescription_Waterfall,
+ MoveDescription_Clamp,
+ MoveDescription_Swift,
+ MoveDescription_SkullBash,
+ MoveDescription_SpikeCannon,
+ MoveDescription_Constrict,
+ MoveDescription_Amnesia,
+ MoveDescription_Kinesis,
+ MoveDescription_SoftBoiled,
+ MoveDescription_HiJumpKick,
+ MoveDescription_Glare,
+ MoveDescription_DreamEater,
+ MoveDescription_PoisonGas,
+ MoveDescription_Barrage,
+ MoveDescription_LeechLife,
+ MoveDescription_LovelyKiss,
+ MoveDescription_SkyAttack,
+ MoveDescription_Transform,
+ MoveDescription_Bubble,
+ MoveDescription_DizzyPunch,
+ MoveDescription_Spore,
+ MoveDescription_Flash,
+ MoveDescription_Psywave,
+ MoveDescription_Splash,
+ MoveDescription_AcidArmor,
+ MoveDescription_Crabhammer,
+ MoveDescription_Explosion,
+ MoveDescription_FurySwipes,
+ MoveDescription_Bonemerang,
+ MoveDescription_Rest,
+ MoveDescription_RockSlide,
+ MoveDescription_HyperFang,
+ MoveDescription_Sharpen,
+ MoveDescription_Conversion,
+ MoveDescription_TriAttack,
+ MoveDescription_SuperFang,
+ MoveDescription_Slash,
+ MoveDescription_Substitute,
+ MoveDescription_Struggle,
+ MoveDescription_Sketch,
+ MoveDescription_TripleKick,
+ MoveDescription_Thief,
+ MoveDescription_SpiderWeb,
+ MoveDescription_MindReader,
+ MoveDescription_Nightmare,
+ MoveDescription_FlameWheel,
+ MoveDescription_Snore,
+ MoveDescription_Curse,
+ MoveDescription_Flail,
+ MoveDescription_Conversion2,
+ MoveDescription_Aeroblast,
+ MoveDescription_CottonSpore,
+ MoveDescription_Reversal,
+ MoveDescription_Spite,
+ MoveDescription_PowderSnow,
+ MoveDescription_Protect,
+ MoveDescription_MachPunch,
+ MoveDescription_ScaryFace,
+ MoveDescription_FaintAttack,
+ MoveDescription_SweetKiss,
+ MoveDescription_BellyDrum,
+ MoveDescription_SludgeBomb,
+ MoveDescription_MudSlap,
+ MoveDescription_Octazooka,
+ MoveDescription_Spikes,
+ MoveDescription_ZapCannon,
+ MoveDescription_Foresight,
+ MoveDescription_DestinyBond,
+ MoveDescription_PerishSong,
+ MoveDescription_IcyWind,
+ MoveDescription_Detect,
+ MoveDescription_BoneRush,
+ MoveDescription_LockOn,
+ MoveDescription_Outrage,
+ MoveDescription_Sandstorm,
+ MoveDescription_GigaDrain,
+ MoveDescription_Endure,
+ MoveDescription_Charm,
+ MoveDescription_Rollout,
+ MoveDescription_FalseSwipe,
+ MoveDescription_Swagger,
+ MoveDescription_MilkDrink,
+ MoveDescription_Spark,
+ MoveDescription_FuryCutter,
+ MoveDescription_SteelWing,
+ MoveDescription_MeanLook,
+ MoveDescription_Attract,
+ MoveDescription_SleepTalk,
+ MoveDescription_HealBell,
+ MoveDescription_Return,
+ MoveDescription_Present,
+ MoveDescription_Frustration,
+ MoveDescription_Safeguard,
+ MoveDescription_PainSplit,
+ MoveDescription_SacredFire,
+ MoveDescription_Magnitude,
+ MoveDescription_DynamicPunch,
+ MoveDescription_Megahorn,
+ MoveDescription_DragonBreath,
+ MoveDescription_BatonPass,
+ MoveDescription_Encore,
+ MoveDescription_Pursuit,
+ MoveDescription_RapidSpin,
+ MoveDescription_SweetScent,
+ MoveDescription_IronTail,
+ MoveDescription_MetalClaw,
+ MoveDescription_VitalThrow,
+ MoveDescription_MorningSun,
+ MoveDescription_Synthesis,
+ MoveDescription_Moonlight,
+ MoveDescription_HiddenPower,
+ MoveDescription_CrossChop,
+ MoveDescription_Twister,
+ MoveDescription_RainDance,
+ MoveDescription_SunnyDay,
+ MoveDescription_Crunch,
+ MoveDescription_MirrorCoat,
+ MoveDescription_PsychUp,
+ MoveDescription_ExtremeSpeed,
+ MoveDescription_AncientPower,
+ MoveDescription_ShadowBall,
+ MoveDescription_FutureSight,
+ MoveDescription_RockSmash,
+ MoveDescription_Whirlpool,
+ MoveDescription_BeatUp,
+ MoveDescription_FakeOut,
+ MoveDescription_Uproar,
+ MoveDescription_Stockpile,
+ MoveDescription_SpitUp,
+ MoveDescription_Swallow,
+ MoveDescription_HeatWave,
+ MoveDescription_Hail,
+ MoveDescription_Torment,
+ MoveDescription_Flatter,
+ MoveDescription_WillOWisp,
+ MoveDescription_Memento,
+ MoveDescription_Facade,
+ MoveDescription_FocusPunch,
+ MoveDescription_SmellingSalt,
+ MoveDescription_FollowMe,
+ MoveDescription_NaturePower,
+ MoveDescription_Charge,
+ MoveDescription_Taunt,
+ MoveDescription_HelpingHand,
+ MoveDescription_Trick,
+ MoveDescription_RolePlay,
+ MoveDescription_Wish,
+ MoveDescription_Assist,
+ MoveDescription_Ingrain,
+ MoveDescription_Superpower,
+ MoveDescription_MagicCoat,
+ MoveDescription_Recycle,
+ MoveDescription_Revenge,
+ MoveDescription_BrickBreak,
+ MoveDescription_Yawn,
+ MoveDescription_KnockOff,
+ MoveDescription_Endeavor,
+ MoveDescription_Eruption,
+ MoveDescription_SkillSwap,
+ MoveDescription_Imprison,
+ MoveDescription_Refresh,
+ MoveDescription_Grudge,
+ MoveDescription_Snatch,
+ MoveDescription_SecretPower,
+ MoveDescription_Dive,
+ MoveDescription_ArmThrust,
+ MoveDescription_Camouflage,
+ MoveDescription_TailGlow,
+ MoveDescription_LusterPurge,
+ MoveDescription_MistBall,
+ MoveDescription_FeatherDance,
+ MoveDescription_TeeterDance,
+ MoveDescription_BlazeKick,
+ MoveDescription_MudSport,
+ MoveDescription_IceBall,
+ MoveDescription_NeedleArm,
+ MoveDescription_SlackOff,
+ MoveDescription_HyperVoice,
+ MoveDescription_PoisonFang,
+ MoveDescription_CrushClaw,
+ MoveDescription_BlastBurn,
+ MoveDescription_HydroCannon,
+ MoveDescription_MeteorMash,
+ MoveDescription_Astonish,
+ MoveDescription_WeatherBall,
+ MoveDescription_Aromatherapy,
+ MoveDescription_FakeTears,
+ MoveDescription_AirCutter,
+ MoveDescription_Overheat,
+ MoveDescription_OdorSleuth,
+ MoveDescription_RockTomb,
+ MoveDescription_SilverWind,
+ MoveDescription_MetalSound,
+ MoveDescription_GrassWhistle,
+ MoveDescription_Tickle,
+ MoveDescription_CosmicPower,
+ MoveDescription_WaterSpout,
+ MoveDescription_SignalBeam,
+ MoveDescription_ShadowPunch,
+ MoveDescription_Extrasensory,
+ MoveDescription_SkyUppercut,
+ MoveDescription_SandTomb,
+ MoveDescription_SheerCold,
+ MoveDescription_MuddyWater,
+ MoveDescription_BulletSeed,
+ MoveDescription_AerialAce,
+ MoveDescription_IcicleSpear,
+ MoveDescription_IronDefense,
+ MoveDescription_Block,
+ MoveDescription_Howl,
+ MoveDescription_DragonClaw,
+ MoveDescription_FrenzyPlant,
+ MoveDescription_BulkUp,
+ MoveDescription_Bounce,
+ MoveDescription_MudShot,
+ MoveDescription_PoisonTail,
+ MoveDescription_Covet,
+ MoveDescription_VoltTackle,
+ MoveDescription_MagicalLeaf,
+ MoveDescription_WaterSport,
+ MoveDescription_CalmMind,
+ MoveDescription_LeafBlade,
+ MoveDescription_DragonDance,
+ MoveDescription_RockBlast,
+ MoveDescription_ShockWave,
+ MoveDescription_WaterPulse,
+ MoveDescription_DoomDesire,
+ MoveDescription_PsychoBoost,
+};
diff --git a/src/data/text/move_descriptions_en.h b/src/data/text/move_descriptions_en.h
new file mode 100644
index 000000000..3c3a961d1
--- /dev/null
+++ b/src/data/text/move_descriptions_en.h
@@ -0,0 +1,1772 @@
+static const u8 MoveDescription_Pound[] = _(
+ "Pounds the foe with\n"
+ "forelegs or tail.");
+
+static const u8 MoveDescription_KarateChop[] = _(
+ "A chopping attack with a\n"
+ "high critical-hit ratio.");
+
+static const u8 MoveDescription_DoubleSlap[] = _(
+ "Repeatedly slaps the foe\n"
+ "2 to 5 times.");
+
+static const u8 MoveDescription_CometPunch[] = _(
+ "Repeatedly punches the foe\n"
+ "2 to 5 times.");
+
+static const u8 MoveDescription_MegaPunch[] = _(
+ "A strong punch thrown with\n"
+ "incredible power.");
+
+static const u8 MoveDescription_PayDay[] = _(
+ "Throws coins at the foe.\n"
+ "Money is recovered after.");
+
+static const u8 MoveDescription_FirePunch[] = _(
+ "A fiery punch that may burn\n"
+ "the foe.");
+
+static const u8 MoveDescription_IcePunch[] = _(
+ "An icy punch that may\n"
+ "freeze the foe.");
+
+static const u8 MoveDescription_ThunderPunch[] = _(
+ "An electrified punch that\n"
+ "may paralyze the foe.");
+
+static const u8 MoveDescription_Scratch[] = _(
+ "Scratches the foe with\n"
+ "sharp claws.");
+
+static const u8 MoveDescription_ViceGrip[] = _(
+ "Grips the foe with large and\n"
+ "powerful pincers.");
+
+static const u8 MoveDescription_Guillotine[] = _(
+ "A powerful pincer attack\n"
+ "that may cause fainting.");
+
+static const u8 MoveDescription_RazorWind[] = _(
+ "A 2-turn move that strikes\n"
+ "the foe on the 2nd turn.");
+
+static const u8 MoveDescription_SwordsDance[] = _(
+ "A fighting dance that\n"
+ "sharply raises ATTACK.");
+
+static const u8 MoveDescription_Cut[] = _(
+ "Cuts the foe with sharp\n"
+ "scythes, claws, etc.");
+
+static const u8 MoveDescription_Gust[] = _(
+ "Strikes the foe with a gust\n"
+ "of wind whipped up by wings.");
+
+static const u8 MoveDescription_WingAttack[] = _(
+ "Strikes the foe with wings\n"
+ "spread wide.");
+
+static const u8 MoveDescription_Whirlwind[] = _(
+ "Blows away the foe with\n"
+ "wind and ends the battle.");
+
+static const u8 MoveDescription_Fly[] = _(
+ "Flies up on the first turn,\n"
+ "then strikes the next turn.");
+
+static const u8 MoveDescription_Bind[] = _(
+ "Binds and squeezes the foe\n"
+ "for 2 to 5 turns.");
+
+static const u8 MoveDescription_Slam[] = _(
+ "Slams the foe with a long\n"
+ "tail, vine, etc.");
+
+static const u8 MoveDescription_VineWhip[] = _(
+ "Strikes the foe with\n"
+ "slender, whiplike vines.");
+
+static const u8 MoveDescription_Stomp[] = _(
+ "Stomps the enemy with a big\n"
+ "foot. May cause flinching.");
+
+static const u8 MoveDescription_DoubleKick[] = _(
+ "A double-kicking attack\n"
+ "that strikes the foe twice.");
+
+static const u8 MoveDescription_MegaKick[] = _(
+ "An extremely powerful kick\n"
+ "with intense force.");
+
+static const u8 MoveDescription_JumpKick[] = _(
+ "A strong jumping kick. May\n"
+ "miss and hurt the kicker.");
+
+static const u8 MoveDescription_RollingKick[] = _(
+ "A fast kick delivered from\n"
+ "a rapid spin.");
+
+static const u8 MoveDescription_SandAttack[] = _(
+ "Reduces the foe’s accuracy\n"
+ "by hurling sand in its face.");
+
+static const u8 MoveDescription_Headbutt[] = _(
+ "A ramming attack that may\n"
+ "cause flinching.");
+
+static const u8 MoveDescription_HornAttack[] = _(
+ "Jabs the foe with sharp\n"
+ "horns.");
+
+static const u8 MoveDescription_FuryAttack[] = _(
+ "Jabs the foe 2 to 5 times\n"
+ "with sharp horns, etc.");
+
+static const u8 MoveDescription_HornDrill[] = _(
+ "A one-hit KO attack that\n"
+ "uses a horn like a drill.");
+
+static const u8 MoveDescription_Tackle[] = _(
+ "Charges the foe with a full-\n"
+ "body tackle.");
+
+static const u8 MoveDescription_BodySlam[] = _(
+ "A full-body slam that may\n"
+ "cause paralysis.");
+
+static const u8 MoveDescription_Wrap[] = _(
+ "Wraps and squeezes the foe\n"
+ "2 to 5 times with vines, etc.");
+
+static const u8 MoveDescription_TakeDown[] = _(
+ "A reckless charge attack\n"
+ "that also hurts the user.");
+
+static const u8 MoveDescription_Thrash[] = _(
+ "A rampage of 2 to 3 turns\n"
+ "that confuses the user.");
+
+static const u8 MoveDescription_DoubleEdge[] = _(
+ "A life-risking tackle that\n"
+ "also hurts the user.");
+
+static const u8 MoveDescription_TailWhip[] = _(
+ "Wags the tail to lower the\n"
+ "foe’s DEFENSE.");
+
+static const u8 MoveDescription_PoisonSting[] = _(
+ "A toxic attack with barbs,\n"
+ "etc., that may poison.");
+
+static const u8 MoveDescription_Twineedle[] = _(
+ "Stingers on the forelegs\n"
+ "jab the foe twice.");
+
+static const u8 MoveDescription_PinMissile[] = _(
+ "Sharp pins are fired to\n"
+ "strike 2 to 5 times.");
+
+static const u8 MoveDescription_Leer[] = _(
+ "Frightens the foe with a\n"
+ "leer to lower DEFENSE.");
+
+static const u8 MoveDescription_Bite[] = _(
+ "Bites with vicious fangs.\n"
+ "May cause flinching.");
+
+static const u8 MoveDescription_Growl[] = _(
+ "Growls cutely to reduce the\n"
+ "foe’s ATTACK.");
+
+static const u8 MoveDescription_Roar[] = _(
+ "Makes the foe flee to end\n"
+ "the battle.");
+
+static const u8 MoveDescription_Sing[] = _(
+ "A soothing song lulls the\n"
+ "foe into a deep slumber.");
+
+static const u8 MoveDescription_Supersonic[] = _(
+ "Emits bizarre sound waves\n"
+ "that may confuse the foe.");
+
+static const u8 MoveDescription_SonicBoom[] = _(
+ "Launches shock waves that\n"
+ "always inflict 20 HP damage.");
+
+static const u8 MoveDescription_Disable[] = _(
+ "Psychically disables one of\n"
+ "the foe’s moves.");
+
+static const u8 MoveDescription_Acid[] = _(
+ "Sprays a hide-melting acid.\n"
+ "May lower DEFENSE.");
+
+static const u8 MoveDescription_Ember[] = _(
+ "A weak fire attack that may\n"
+ "inflict a burn.");
+
+static const u8 MoveDescription_Flamethrower[] = _(
+ "A powerful fire attack that\n"
+ "may inflict a burn.");
+
+static const u8 MoveDescription_Mist[] = _(
+ "Creates a mist that stops\n"
+ "reduction of abilities.");
+
+static const u8 MoveDescription_WaterGun[] = _(
+ "Squirts water to attack\n"
+ "the foe.");
+
+static const u8 MoveDescription_HydroPump[] = _(
+ "Blasts water at high power\n"
+ "to strike the foe.");
+
+static const u8 MoveDescription_Surf[] = _(
+ "Creates a huge wave, then\n"
+ "crashes it down on the foe.");
+
+static const u8 MoveDescription_IceBeam[] = _(
+ "Blasts the foe with an icy\n"
+ "beam that may freeze it.");
+
+static const u8 MoveDescription_Blizzard[] = _(
+ "Hits the foe with an icy\n"
+ "storm that may freeze it.");
+
+static const u8 MoveDescription_Psybeam[] = _(
+ "Fires a peculiar ray that\n"
+ "may confuse the foe.");
+
+static const u8 MoveDescription_BubbleBeam[] = _(
+ "Forcefully sprays bubbles\n"
+ "that may lower SPEED.");
+
+static const u8 MoveDescription_AuroraBeam[] = _(
+ "Fires a rainbow-colored\n"
+ "beam that may lower ATTACK.");
+
+static const u8 MoveDescription_HyperBeam[] = _(
+ "Powerful, but leaves the\n"
+ "user immobile the next turn.");
+
+static const u8 MoveDescription_Peck[] = _(
+ "Attacks the foe with a\n"
+ "jabbing beak, etc.");
+
+static const u8 MoveDescription_DrillPeck[] = _(
+ "A corkscrewing attack with\n"
+ "the beak acting as a drill.");
+
+static const u8 MoveDescription_Submission[] = _(
+ "A reckless body slam that\n"
+ "also hurts the user.");
+
+static const u8 MoveDescription_LowKick[] = _(
+ "A kick that inflicts more\n"
+ "damage on heavier foes.");
+
+static const u8 MoveDescription_Counter[] = _(
+ "Retaliates any physical hit\n"
+ "with double the power.");
+
+static const u8 MoveDescription_SeismicToss[] = _(
+ "Inflicts damage identical\n"
+ "to the user’s level.");
+
+static const u8 MoveDescription_Strength[] = _(
+ "Builds enormous power,\n"
+ "then slams the foe.");
+
+static const u8 MoveDescription_Absorb[] = _(
+ "An attack that absorbs\n"
+ "half the damage inflicted.");
+
+static const u8 MoveDescription_MegaDrain[] = _(
+ "An attack that absorbs\n"
+ "half the damage inflicted.");
+
+static const u8 MoveDescription_LeechSeed[] = _(
+ "Plants a seed on the foe to\n"
+ "steal HP on every turn.");
+
+static const u8 MoveDescription_Growth[] = _(
+ "Forces the body to grow\n"
+ "and heightens SP. ATK.");
+
+static const u8 MoveDescription_RazorLeaf[] = _(
+ "Cuts the enemy with leaves.\n"
+ "High critical-hit ratio.");
+
+static const u8 MoveDescription_SolarBeam[] = _(
+ "Absorbs light in one turn,\n"
+ "then attacks next turn.");
+
+static const u8 MoveDescription_PoisonPowder[] = _(
+ "Scatters a toxic powder\n"
+ "that may poison the foe.");
+
+static const u8 MoveDescription_StunSpore[] = _(
+ "Scatters a powder that may\n"
+ "paralyze the foe.");
+
+static const u8 MoveDescription_SleepPowder[] = _(
+ "Scatters a powder that may\n"
+ "cause the foe to sleep.");
+
+static const u8 MoveDescription_PetalDance[] = _(
+ "A rampage of 2 to 3 turns\n"
+ "that confuses the user.");
+
+static const u8 MoveDescription_StringShot[] = _(
+ "Binds the foe with string\n"
+ "to reduce its SPEED.");
+
+static const u8 MoveDescription_DragonRage[] = _(
+ "Launches shock waves that\n"
+ "always inflict 40 HP damage.");
+
+static const u8 MoveDescription_FireSpin[] = _(
+ "Traps the foe in a ring of\n"
+ "fire for 2 to 5 turns.");
+
+static const u8 MoveDescription_ThunderShock[] = _(
+ "An electrical attack that\n"
+ "may paralyze the foe.");
+
+static const u8 MoveDescription_Thunderbolt[] = _(
+ "A strong electrical attack\n"
+ "that may paralyze the foe.");
+
+static const u8 MoveDescription_ThunderWave[] = _(
+ "A weak jolt of electricity\n"
+ "that paralyzes the foe.");
+
+static const u8 MoveDescription_Thunder[] = _(
+ "A lightning attack that may\n"
+ "cause paralysis.");
+
+static const u8 MoveDescription_RockThrow[] = _(
+ "Throws small rocks to\n"
+ "strike the foe.");
+
+static const u8 MoveDescription_Earthquake[] = _(
+ "A powerful quake, but has\n"
+ "no effect on flying foes.");
+
+static const u8 MoveDescription_Fissure[] = _(
+ "A one-hit KO move that\n"
+ "drops the foe in a fissure.");
+
+static const u8 MoveDescription_Dig[] = _(
+ "Digs underground the first\n"
+ "turn and strikes next turn.");
+
+static const u8 MoveDescription_Toxic[] = _(
+ "Poisons the foe with an\n"
+ "intensifying toxin.");
+
+static const u8 MoveDescription_Confusion[] = _(
+ "A psychic attack that may\n"
+ "cause confusion.");
+
+static const u8 MoveDescription_Psychic[] = _(
+ "A powerful psychic attack\n"
+ "that may lower SP. DEF.");
+
+static const u8 MoveDescription_Hypnosis[] = _(
+ "A hypnotizing move that\n"
+ "may induce sleep.");
+
+static const u8 MoveDescription_Meditate[] = _(
+ "Meditates in a peaceful\n"
+ "fashion to raise ATTACK.");
+
+static const u8 MoveDescription_Agility[] = _(
+ "Relaxes the body to sharply\n"
+ "boost SPEED.");
+
+static const u8 MoveDescription_QuickAttack[] = _(
+ "An extremely fast attack\n"
+ "that always strikes first.");
+
+static const u8 MoveDescription_Rage[] = _(
+ "Raises the user’s ATTACK\n"
+ "every time it is hit.");
+
+static const u8 MoveDescription_Teleport[] = _(
+ "A psychic move for fleeing\n"
+ "from battle instantly.");
+
+static const u8 MoveDescription_NightShade[] = _(
+ "Inflicts damage identical\n"
+ "to the user’s level.");
+
+static const u8 MoveDescription_Mimic[] = _(
+ "Copies a move used by the\n"
+ "foe during one battle.");
+
+static const u8 MoveDescription_Screech[] = _(
+ "Emits a screech to sharply\n"
+ "reduce the foe’s DEFENSE.");
+
+static const u8 MoveDescription_DoubleTeam[] = _(
+ "Creates illusory copies to\n"
+ "raise evasiveness.");
+
+static const u8 MoveDescription_Recover[] = _(
+ "Recovers up to half the\n"
+ "user’s maximum HP.");
+
+static const u8 MoveDescription_Harden[] = _(
+ "Stiffens the body’s \n"
+ "muscles to raise DEFENSE.");
+
+static const u8 MoveDescription_Minimize[] = _(
+ "Minimizes the user’s size\n"
+ "to raise evasiveness.");
+
+static const u8 MoveDescription_Smokescreen[] = _(
+ "Lowers the foe’s accuracy\n"
+ "using smoke, ink, etc.");
+
+static const u8 MoveDescription_ConfuseRay[] = _(
+ "A sinister ray that\n"
+ "confuses the foe.");
+
+static const u8 MoveDescription_Withdraw[] = _(
+ "Withdraws the body into its\n"
+ "hard shell to raise DEFENSE.");
+
+static const u8 MoveDescription_DefenseCurl[] = _(
+ "Curls up to conceal weak\n"
+ "spots and raise DEFENSE.");
+
+static const u8 MoveDescription_Barrier[] = _(
+ "Creates a barrier that\n"
+ "sharply raises DEFENSE.");
+
+static const u8 MoveDescription_LightScreen[] = _(
+ "Creates a wall of light that\n"
+ "lowers SP. ATK damage.");
+
+static const u8 MoveDescription_Haze[] = _(
+ "Creates a black haze that\n"
+ "eliminates all stat changes.");
+
+static const u8 MoveDescription_Reflect[] = _(
+ "Creates a wall of light that\n"
+ "weakens physical attacks.");
+
+static const u8 MoveDescription_FocusEnergy[] = _(
+ "Focuses power to raise the\n"
+ "critical-hit ratio.");
+
+static const u8 MoveDescription_Bide[] = _(
+ "Endures attack for 2\n"
+ "turns to retaliate double.");
+
+static const u8 MoveDescription_Metronome[] = _(
+ "Waggles a finger to use any\n"
+ "POKéMON move at random.");
+
+static const u8 MoveDescription_MirrorMove[] = _(
+ "Counters the foe’s attack\n"
+ "with the same move.");
+
+static const u8 MoveDescription_SelfDestruct[] = _(
+ "Inflicts severe damage but\n"
+ "makes the user faint.");
+
+static const u8 MoveDescription_EggBomb[] = _(
+ "An egg is forcibly hurled at\n"
+ "the foe.");
+
+static const u8 MoveDescription_Lick[] = _(
+ "Licks with a long tongue to\n"
+ "injure. May also paralyze.");
+
+static const u8 MoveDescription_Smog[] = _(
+ "An exhaust-gas attack\n"
+ "that may also poison.");
+
+static const u8 MoveDescription_Sludge[] = _(
+ "Sludge is hurled to inflict\n"
+ "damage. May also poison.");
+
+static const u8 MoveDescription_BoneClub[] = _(
+ "Clubs the foe with a bone.\n"
+ "May cause flinching.");
+
+static const u8 MoveDescription_FireBlast[] = _(
+ "A fiery blast that scorches\n"
+ "all. May cause a burn.");
+
+static const u8 MoveDescription_Waterfall[] = _(
+ "Charges the foe with speed\n"
+ "to climb waterfalls.");
+
+static const u8 MoveDescription_Clamp[] = _(
+ "Traps and squeezes the\n"
+ "foe for 2 to 5 turns.");
+
+static const u8 MoveDescription_Swift[] = _(
+ "Sprays star-shaped rays\n"
+ "that never miss.");
+
+static const u8 MoveDescription_SkullBash[] = _(
+ "Tucks in the head, then\n"
+ "attacks on the next turn.");
+
+static const u8 MoveDescription_SpikeCannon[] = _(
+ "Launches sharp spikes that\n"
+ "strike 2 to 5 times.");
+
+static const u8 MoveDescription_Constrict[] = _(
+ "Constricts to inflict pain.\n"
+ "May lower SPEED.");
+
+static const u8 MoveDescription_Amnesia[] = _(
+ "Forgets about something\n"
+ "and sharply raises SP. DEF.");
+
+static const u8 MoveDescription_Kinesis[] = _(
+ "Distracts the foe.\n"
+ "May lower accuracy.");
+
+static const u8 MoveDescription_SoftBoiled[] = _(
+ "Recovers up to half the\n"
+ "user’s maximum HP.");
+
+static const u8 MoveDescription_HiJumpKick[] = _(
+ "A jumping knee kick. If it\n"
+ "misses, the user is hurt.");
+
+static const u8 MoveDescription_Glare[] = _(
+ "Intimidates and frightens\n"
+ "the foe into paralysis.");
+
+static const u8 MoveDescription_DreamEater[] = _(
+ "Takes one half the damage\n"
+ "inflicted on a sleeping foe.");
+
+static const u8 MoveDescription_PoisonGas[] = _(
+ "Envelops the foe in a toxic\n"
+ "gas that may poison.");
+
+static const u8 MoveDescription_Barrage[] = _(
+ "Hurls round objects at the\n"
+ "foe 2 to 5 times.");
+
+static const u8 MoveDescription_LeechLife[] = _(
+ "An attack that steals half\n"
+ "the damage inflicted.");
+
+static const u8 MoveDescription_LovelyKiss[] = _(
+ "Demands a kiss with a scary\n"
+ "face that induces sleep.");
+
+static const u8 MoveDescription_SkyAttack[] = _(
+ "Searches out weak spots,\n"
+ "then strikes the next turn.");
+
+static const u8 MoveDescription_Transform[] = _(
+ "Alters the user’s cells to\n"
+ "become a copy of the foe.");
+
+static const u8 MoveDescription_Bubble[] = _(
+ "An attack using bubbles.\n"
+ "May lower the foe’s SPEED.");
+
+static const u8 MoveDescription_DizzyPunch[] = _(
+ "A rhythmic punch that may\n"
+ "confuse the foe.");
+
+static const u8 MoveDescription_Spore[] = _(
+ "Scatters a cloud of spores\n"
+ "that always induce sleep.");
+
+static const u8 MoveDescription_Flash[] = _(
+ "Looses a powerful blast of\n"
+ "light that cuts accuracy.");
+
+static const u8 MoveDescription_Psywave[] = _(
+ "Attacks with a psychic\n"
+ "wave of varying intensity.");
+
+static const u8 MoveDescription_Splash[] = _(
+ "It’s just a splash...\n"
+ "Has no effect whatsoever.");
+
+static const u8 MoveDescription_AcidArmor[] = _(
+ "Liquifies the user’s body\n"
+ "to sharply raise DEFENSE.");
+
+static const u8 MoveDescription_Crabhammer[] = _(
+ "Hammers with a pincer. Has a\n"
+ "high critical-hit ratio.");
+
+static const u8 MoveDescription_Explosion[] = _(
+ "Inflicts severe damage but\n"
+ "makes the user faint.");
+
+static const u8 MoveDescription_FurySwipes[] = _(
+ "Rakes the foe with sharp\n"
+ "claws, etc., 2 to 5 times.");
+
+static const u8 MoveDescription_Bonemerang[] = _(
+ "Throws a bone boomerang\n"
+ "that strikes twice.");
+
+static const u8 MoveDescription_Rest[] = _(
+ "The user sleeps for 2 turns,\n"
+ "restoring HP and status.");
+
+static const u8 MoveDescription_RockSlide[] = _(
+ "Large boulders are hurled.\n"
+ "May cause flinching.");
+
+static const u8 MoveDescription_HyperFang[] = _(
+ "Attacks with sharp fangs.\n"
+ "May cause flinching.");
+
+static const u8 MoveDescription_Sharpen[] = _(
+ "Reduces the polygon count\n"
+ "and raises ATTACK.");
+
+static const u8 MoveDescription_Conversion[] = _(
+ "Changes the user’s type\n"
+ "into an own move’s type.");
+
+static const u8 MoveDescription_TriAttack[] = _(
+ "Fires three types of beams\n"
+ "at the same time.");
+
+static const u8 MoveDescription_SuperFang[] = _(
+ "Attacks with sharp fangs\n"
+ "and cuts half the foe’s HP.");
+
+static const u8 MoveDescription_Slash[] = _(
+ "Slashes with claws, etc. Has\n"
+ "a high critical-hit ratio.");
+
+static const u8 MoveDescription_Substitute[] = _(
+ "Creates a decoy using 1/4\n"
+ "of the user’s maximum HP.");
+
+static const u8 MoveDescription_Struggle[] = _(
+ "Used only if all PP are gone.\n"
+ "Also hurts the user a little.");
+
+static const u8 MoveDescription_Sketch[] = _(
+ "Copies the foe’s last move\n"
+ "permanently.");
+
+static const u8 MoveDescription_TripleKick[] = _(
+ "Kicks the foe 3 times in a\n"
+ "row with rising intensity.");
+
+static const u8 MoveDescription_Thief[] = _(
+ "While attacking, it may\n"
+ "steal the foe’s held item.");
+
+static const u8 MoveDescription_SpiderWeb[] = _(
+ "Ensnares the foe to stop it\n"
+ "from fleeing or switching.");
+
+static const u8 MoveDescription_MindReader[] = _(
+ "Senses the foe’s action to\n"
+ "ensure the next move’s hit.");
+
+static const u8 MoveDescription_Nightmare[] = _(
+ "Inflicts 1/4 damage on a\n"
+ "sleeping foe every turn.");
+
+static const u8 MoveDescription_FlameWheel[] = _(
+ "A fiery charge attack that\n"
+ "may inflict a burn.");
+
+static const u8 MoveDescription_Snore[] = _(
+ "A loud attack that can be\n"
+ "used only while asleep.");
+
+static const u8 MoveDescription_Curse[] = _(
+ "A move that functions\n"
+ "differently for GHOSTS.");
+
+static const u8 MoveDescription_Flail[] = _(
+ "Inflicts more damage when\n"
+ "the user’s HP is down.");
+
+static const u8 MoveDescription_Conversion2[] = _(
+ "Makes the user resistant\n"
+ "to the last attack’s type.");
+
+static const u8 MoveDescription_Aeroblast[] = _(
+ "Launches a vacuumed blast.\n"
+ "High critical-hit ratio.");
+
+static const u8 MoveDescription_CottonSpore[] = _(
+ "Spores cling to the foe,\n"
+ "sharply reducing SPEED.");
+
+static const u8 MoveDescription_Reversal[] = _(
+ "Inflicts more damage when\n"
+ "the user’s HP is down.");
+
+static const u8 MoveDescription_Spite[] = _(
+ "Spitefully cuts the PP\n"
+ "of the foe’s last move.");
+
+static const u8 MoveDescription_PowderSnow[] = _(
+ "Blasts the foe with a snowy\n"
+ "gust. May cause freezing.");
+
+static const u8 MoveDescription_Protect[] = _(
+ "Evades attack, but may fail\n"
+ "if used in succession.");
+
+static const u8 MoveDescription_MachPunch[] = _(
+ "A punch is thrown at wicked\n"
+ "speed to strike first.");
+
+static const u8 MoveDescription_ScaryFace[] = _(
+ "Frightens with a scary face\n"
+ "to sharply reduce SPEED.");
+
+static const u8 MoveDescription_FaintAttack[] = _(
+ "Draws the foe close, then\n"
+ "strikes without fail.");
+
+static const u8 MoveDescription_SweetKiss[] = _(
+ "Demands a kiss with a cute\n"
+ "look. May cause confusion.");
+
+static const u8 MoveDescription_BellyDrum[] = _(
+ "Maximizes ATTACK while\n"
+ "sacrificing HP.");
+
+static const u8 MoveDescription_SludgeBomb[] = _(
+ "Sludge is hurled to inflict\n"
+ "damage. May also poison.");
+
+static const u8 MoveDescription_MudSlap[] = _(
+ "Hurls mud in the foe’s face\n"
+ "to reduce its accuracy.");
+
+static const u8 MoveDescription_Octazooka[] = _(
+ "Fires a lump of ink to\n"
+ "damage and cut accuracy.");
+
+static const u8 MoveDescription_Spikes[] = _(
+ "Sets spikes that hurt a \n"
+ "foe switching out.");
+
+static const u8 MoveDescription_ZapCannon[] = _(
+ "Powerful and sure to cause\n"
+ "paralysis, but inaccurate.");
+
+static const u8 MoveDescription_Foresight[] = _(
+ "Negates the foe’s efforts\n"
+ "to heighten evasiveness.");
+
+static const u8 MoveDescription_DestinyBond[] = _(
+ "If the user faints, the foe\n"
+ "is also made to faint.");
+
+static const u8 MoveDescription_PerishSong[] = _(
+ "Any POKéMON hearing this\n"
+ "song faints in 3 turns.");
+
+static const u8 MoveDescription_IcyWind[] = _(
+ "A chilling attack that\n"
+ "lowers the foe’s SPEED.");
+
+static const u8 MoveDescription_Detect[] = _(
+ "Evades attack, but may fail\n"
+ "if used in succession.");
+
+static const u8 MoveDescription_BoneRush[] = _(
+ "Strikes the foe with a bone\n"
+ "in hand 2 to 5 times.");
+
+static const u8 MoveDescription_LockOn[] = _(
+ "Locks on to the foe to\n"
+ "ensure the next move hits.");
+
+static const u8 MoveDescription_Outrage[] = _(
+ "A rampage of 2 to 3 turns\n"
+ "that confuses the user.");
+
+static const u8 MoveDescription_Sandstorm[] = _(
+ "Causes a sandstorm that\n"
+ "rages for several turns.");
+
+static const u8 MoveDescription_GigaDrain[] = _(
+ "An attack that steals half\n"
+ "the damage inflicted.");
+
+static const u8 MoveDescription_Endure[] = _(
+ "Endures any attack for\n"
+ "1 turn, leaving at least 1HP.");
+
+static const u8 MoveDescription_Charm[] = _(
+ "Charms the foe and sharply\n"
+ "reduces its ATTACK.");
+
+static const u8 MoveDescription_Rollout[] = _(
+ "An attack lasting 5 turns\n"
+ "with rising intensity.");
+
+static const u8 MoveDescription_FalseSwipe[] = _(
+ "An attack that leaves the\n"
+ "foe with at least 1 HP.");
+
+static const u8 MoveDescription_Swagger[] = _(
+ "Confuses the foe, but also\n"
+ "sharply raises ATTACK.");
+
+static const u8 MoveDescription_MilkDrink[] = _(
+ "Recovers up to half the\n"
+ "user’s maximum HP.");
+
+static const u8 MoveDescription_Spark[] = _(
+ "An electrified tackle that\n"
+ "may paralyze the foe.");
+
+static const u8 MoveDescription_FuryCutter[] = _(
+ "An attack that intensifies\n"
+ "on each successive hit.");
+
+static const u8 MoveDescription_SteelWing[] = _(
+ "Strikes the foe with hard\n"
+ "wings spread wide.");
+
+static const u8 MoveDescription_MeanLook[] = _(
+ "Fixes the foe with a mean\n"
+ "look that prevents escape.");
+
+static const u8 MoveDescription_Attract[] = _(
+ "Makes the opposite gender\n"
+ "less likely to attack.");
+
+static const u8 MoveDescription_SleepTalk[] = _(
+ "Uses an own move randomly\n"
+ "while asleep.");
+
+static const u8 MoveDescription_HealBell[] = _(
+ "Chimes soothingly to heal\n"
+ "all status abnormalities.");
+
+static const u8 MoveDescription_Return[] = _(
+ "An attack that increases\n"
+ "in power with friendship.");
+
+static const u8 MoveDescription_Present[] = _(
+ "A gift in the form of a\n"
+ "bomb. May restore HP.");
+
+static const u8 MoveDescription_Frustration[] = _(
+ "An attack that is stronger\n"
+ "if the TRAINER is disliked.");
+
+static const u8 MoveDescription_Safeguard[] = _(
+ "A mystical force prevents\n"
+ "all status problems.");
+
+static const u8 MoveDescription_PainSplit[] = _(
+ "Adds the user and foe’s HP,\n"
+ "then shares them equally.");
+
+static const u8 MoveDescription_SacredFire[] = _(
+ "A mystical fire attack that\n"
+ "may inflict a burn.");
+
+static const u8 MoveDescription_Magnitude[] = _(
+ "A ground-shaking attack\n"
+ "of random intensity.");
+
+static const u8 MoveDescription_DynamicPunch[] = _(
+ "Powerful and sure to cause\n"
+ "confusion, but inaccurate.");
+
+static const u8 MoveDescription_Megahorn[] = _(
+ "A brutal ramming attack\n"
+ "using out-thrust horns.");
+
+static const u8 MoveDescription_DragonBreath[] = _(
+ "Strikes the foe with an\n"
+ "incredible blast of breath.");
+
+static const u8 MoveDescription_BatonPass[] = _(
+ "Switches out the user while\n"
+ "keeping effects in play.");
+
+static const u8 MoveDescription_Encore[] = _(
+ "Makes the foe repeat its\n"
+ "last move over 2 to 6 turns.");
+
+static const u8 MoveDescription_Pursuit[] = _(
+ "Inflicts bad damage if used\n"
+ "on a foe switching out.");
+
+static const u8 MoveDescription_RapidSpin[] = _(
+ "Spins the body at high\n"
+ "speed to strike the foe.");
+
+static const u8 MoveDescription_SweetScent[] = _(
+ "Allures the foe to reduce\n"
+ "evasiveness.");
+
+static const u8 MoveDescription_IronTail[] = _(
+ "Attacks with a rock-hard\n"
+ "tail. May lower DEFENSE.");
+
+static const u8 MoveDescription_MetalClaw[] = _(
+ "A claw attack that may\n"
+ "raise the user’s ATTACK.");
+
+static const u8 MoveDescription_VitalThrow[] = _(
+ "Makes the user’s move last,\n"
+ "but it never misses.");
+
+static const u8 MoveDescription_MorningSun[] = _(
+ "Restores HP. The amount\n"
+ "varies with the weather.");
+
+static const u8 MoveDescription_Synthesis[] = _(
+ "Restores HP. The amount\n"
+ "varies with the weather.");
+
+static const u8 MoveDescription_Moonlight[] = _(
+ "Restores HP. The amount\n"
+ "varies with the weather.");
+
+static const u8 MoveDescription_HiddenPower[] = _(
+ "The effectiveness varies\n"
+ "with the user.");
+
+static const u8 MoveDescription_CrossChop[] = _(
+ "A double-chopping attack.\n"
+ "High critical-hit ratio.");
+
+static const u8 MoveDescription_Twister[] = _(
+ "Whips up a vicious twister\n"
+ "to tear at the foe.");
+
+static const u8 MoveDescription_RainDance[] = _(
+ "Boosts the power of WATER-\n"
+ "type moves for 5 turns.");
+
+static const u8 MoveDescription_SunnyDay[] = _(
+ "Boosts the power of FIRE-\n"
+ "type moves for 5 turns.");
+
+static const u8 MoveDescription_Crunch[] = _(
+ "Crunches with sharp fangs.\n"
+ "May lower SP. DEF.");
+
+static const u8 MoveDescription_MirrorCoat[] = _(
+ "Counters the foe’s special\n"
+ "attack at double the power.");
+
+static const u8 MoveDescription_PsychUp[] = _(
+ "Copies the foe’s effect(s)\n"
+ "and gives to the user.");
+
+static const u8 MoveDescription_ExtremeSpeed[] = _(
+ "An extremely fast and\n"
+ "powerful attack.");
+
+static const u8 MoveDescription_AncientPower[] = _(
+ "An attack that may raise\n"
+ "all stats.");
+
+static const u8 MoveDescription_ShadowBall[] = _(
+ "Hurls a black blob that may\n"
+ "lower the foe’s SP. DEF.");
+
+static const u8 MoveDescription_FutureSight[] = _(
+ "Heightens inner power to\n"
+ "strike 2 turns later.");
+
+static const u8 MoveDescription_RockSmash[] = _(
+ "A rock-crushing attack\n"
+ "that may lower DEFENSE.");
+
+static const u8 MoveDescription_Whirlpool[] = _(
+ "Traps and hurts the foe in\n"
+ "a whirlpool for 2 to 5 turns.");
+
+static const u8 MoveDescription_BeatUp[] = _(
+ "Summons party POKéMON to\n"
+ "join in the attack.");
+
+static const u8 MoveDescription_FakeOut[] = _(
+ "A 1st-turn, 1st-strike move\n"
+ "that causes flinching.");
+
+static const u8 MoveDescription_Uproar[] = _(
+ "Causes an uproar for 2 to 5\n"
+ "turns and prevents sleep.");
+
+static const u8 MoveDescription_Stockpile[] = _(
+ "Charges up power for up to\n"
+ "3 turns.");
+
+static const u8 MoveDescription_SpitUp[] = _(
+ "Releases stockpiled power\n"
+ "(the more the better).");
+
+static const u8 MoveDescription_Swallow[] = _(
+ "Absorbs stockpiled power\n"
+ "and restores HP.");
+
+static const u8 MoveDescription_HeatWave[] = _(
+ "Exhales a hot breath on the\n"
+ "foe. May inflict a burn.");
+
+static const u8 MoveDescription_Hail[] = _(
+ "Summons a hailstorm that\n"
+ "strikes every turn.");
+
+static const u8 MoveDescription_Torment[] = _(
+ "Torments the foe and stops\n"
+ "successive use of a move.");
+
+static const u8 MoveDescription_Flatter[] = _(
+ "Confuses the foe, but\n"
+ "raises its SP. ATK.");
+
+static const u8 MoveDescription_WillOWisp[] = _(
+ "Inflicts a burn on the foe\n"
+ "with intense fire.");
+
+static const u8 MoveDescription_Memento[] = _(
+ "The user faints and lowers\n"
+ "the foe’s abilities.");
+
+static const u8 MoveDescription_Facade[] = _(
+ "Boosts ATTACK when burned,\n"
+ "paralyzed, or poisoned.");
+
+static const u8 MoveDescription_FocusPunch[] = _(
+ "A powerful loyalty attack.\n"
+ "The user flinches if hit.");
+
+static const u8 MoveDescription_SmellingSalt[] = _(
+ "Powerful against paralyzed\n"
+ "foes, but also heals them.");
+
+static const u8 MoveDescription_FollowMe[] = _(
+ "Draws attention to make\n"
+ "foes attack only the user.");
+
+static const u8 MoveDescription_NaturePower[] = _(
+ "The type of attack varies\n"
+ "depending on the location.");
+
+static const u8 MoveDescription_Charge[] = _(
+ "Charges power to boost the\n"
+ "electric move used next.");
+
+static const u8 MoveDescription_Taunt[] = _(
+ "Taunts the foe into only\n"
+ "using attack moves.");
+
+static const u8 MoveDescription_HelpingHand[] = _(
+ "Boosts the power of the\n"
+ "recipient’s moves.");
+
+static const u8 MoveDescription_Trick[] = _(
+ "Tricks the foe into trading\n"
+ "held items.");
+
+static const u8 MoveDescription_RolePlay[] = _(
+ "Mimics the target and\n"
+ "copies its special ability.");
+
+static const u8 MoveDescription_Wish[] = _(
+ "A wish that restores HP.\n"
+ "It takes time to work.");
+
+static const u8 MoveDescription_Assist[] = _(
+ "Attacks randomly with one\n"
+ "of the partner’s moves.");
+
+static const u8 MoveDescription_Ingrain[] = _(
+ "Lays roots that restore HP.\n"
+ "The user can’t switch out.");
+
+static const u8 MoveDescription_Superpower[] = _(
+ "Boosts strength sharply,\n"
+ "but lowers abilities.");
+
+static const u8 MoveDescription_MagicCoat[] = _(
+ "Reflects special effects\n"
+ "back to the attacker.");
+
+static const u8 MoveDescription_Recycle[] = _(
+ "Recycles a used item for\n"
+ "one more use.");
+
+static const u8 MoveDescription_Revenge[] = _(
+ "An attack that gains power\n"
+ "if injured by the foe.");
+
+static const u8 MoveDescription_BrickBreak[] = _(
+ "Destroys barriers such as\n"
+ "REFLECT and causes damage.");
+
+static const u8 MoveDescription_Yawn[] = _(
+ "Lulls the foe into yawning,\n"
+ "then sleeping next turn.");
+
+static const u8 MoveDescription_KnockOff[] = _(
+ "Knocks down the foe’s held\n"
+ "item to prevent its use.");
+
+static const u8 MoveDescription_Endeavor[] = _(
+ "Gains power if the user’s HP\n"
+ "is lower than the foe’s HP.");
+
+static const u8 MoveDescription_Eruption[] = _(
+ "The higher the user’s HP,\n"
+ "the more damage caused.");
+
+static const u8 MoveDescription_SkillSwap[] = _(
+ "The user swaps special\n"
+ "abilities with the target.");
+
+static const u8 MoveDescription_Imprison[] = _(
+ "Prevents foes from using\n"
+ "moves known by the user.");
+
+static const u8 MoveDescription_Refresh[] = _(
+ "Heals poisoning, paralysis,\n"
+ "or a burn.");
+
+static const u8 MoveDescription_Grudge[] = _(
+ "If the user faints, deletes\n"
+ "the PP of the final move.");
+
+static const u8 MoveDescription_Snatch[] = _(
+ "Steals the effects of the\n"
+ "move the foe uses next.");
+
+static const u8 MoveDescription_SecretPower[] = _(
+ "An attack with effects\n"
+ "that vary by location.");
+
+static const u8 MoveDescription_Dive[] = _(
+ "Dives underwater the first\n"
+ "turn and strikes next turn.");
+
+static const u8 MoveDescription_ArmThrust[] = _(
+ "Straight-arm punches that\n"
+ "strike the foe 2 to 5 times.");
+
+static const u8 MoveDescription_Camouflage[] = _(
+ "Alters the POKéMON’s type\n"
+ "depending on the location.");
+
+static const u8 MoveDescription_TailGlow[] = _(
+ "Flashes a light that sharply\n"
+ "raises SP. ATK.");
+
+static const u8 MoveDescription_LusterPurge[] = _(
+ "Attacks with a burst of\n"
+ "light. May lower SP. DEF.");
+
+static const u8 MoveDescription_MistBall[] = _(
+ "Attacks with a flurry of\n"
+ "down. May lower SP. ATK.");
+
+static const u8 MoveDescription_FeatherDance[] = _(
+ "Envelops the foe with down\n"
+ "to sharply reduce ATTACK.");
+
+static const u8 MoveDescription_TeeterDance[] = _(
+ "Confuses all POKéMON on\n"
+ "the scene.");
+
+static const u8 MoveDescription_BlazeKick[] = _(
+ "A kick with a high critical-\n"
+ "hit ratio. May cause a burn.");
+
+static const u8 MoveDescription_MudSport[] = _(
+ "Covers the user in mud to\n"
+ "raise electrical resistance.");
+
+static const u8 MoveDescription_IceBall[] = _(
+ "A 5-turn attack that gains\n"
+ "power on successive hits.");
+
+static const u8 MoveDescription_NeedleArm[] = _(
+ "Attacks with thorny arms.\n"
+ "May cause flinching.");
+
+static const u8 MoveDescription_SlackOff[] = _(
+ "Slacks off and restores\n"
+ "half the maximum HP.");
+
+static const u8 MoveDescription_HyperVoice[] = _(
+ "A loud attack that uses\n"
+ "sound waves to injure.");
+
+static const u8 MoveDescription_PoisonFang[] = _(
+ "A sharp-fanged attack.\n"
+ "May badly poison the foe.");
+
+static const u8 MoveDescription_CrushClaw[] = _(
+ "Tears at the foe with sharp\n"
+ "claws. May lower DEFENSE.");
+
+static const u8 MoveDescription_BlastBurn[] = _(
+ "Powerful, but leaves the\n"
+ "user immobile the next turn.");
+
+static const u8 MoveDescription_HydroCannon[] = _(
+ "Powerful, but leaves the\n"
+ "user immobile the next turn.");
+
+static const u8 MoveDescription_MeteorMash[] = _(
+ "Fires a meteor-like punch.\n"
+ "May raise ATTACK.");
+
+static const u8 MoveDescription_Astonish[] = _(
+ "An attack that may shock\n"
+ "the foe into flinching.");
+
+static const u8 MoveDescription_WeatherBall[] = _(
+ "The move’s type and power\n"
+ "change with the weather.");
+
+static const u8 MoveDescription_Aromatherapy[] = _(
+ "Heals all status problems\n"
+ "with a soothing scent.");
+
+static const u8 MoveDescription_FakeTears[] = _(
+ "Feigns crying to sharply\n"
+ "lower the foe’s SP. DEF.");
+
+static const u8 MoveDescription_AirCutter[] = _(
+ "Hacks with razorlike wind.\n"
+ "High critical-hit ratio.");
+
+static const u8 MoveDescription_Overheat[] = _(
+ "Allows a full-power attack,\n"
+ "but sharply lowers SP. ATK.");
+
+static const u8 MoveDescription_OdorSleuth[] = _(
+ "Negates the foe’s efforts\n"
+ "to heighten evasiveness.");
+
+static const u8 MoveDescription_RockTomb[] = _(
+ "Stops the foe from moving\n"
+ "with rocks and cuts SPEED.");
+
+static const u8 MoveDescription_SilverWind[] = _(
+ "A powdery attack that may\n"
+ "raise abilities.");
+
+static const u8 MoveDescription_MetalSound[] = _(
+ "Emits a horrible screech\n"
+ "that sharply lowers SP. DEF.");
+
+static const u8 MoveDescription_GrassWhistle[] = _(
+ "Lulls the foe into sleep\n"
+ "with a pleasant melody.");
+
+static const u8 MoveDescription_Tickle[] = _(
+ "Makes the foe laugh to\n"
+ "lower ATTACK and DEFENSE.");
+
+static const u8 MoveDescription_CosmicPower[] = _(
+ "Raises DEFENSE and SP. DEF\n"
+ "with a mystic power.");
+
+static const u8 MoveDescription_WaterSpout[] = _(
+ "Inflicts more damage if the\n"
+ "user’s HP is high.");
+
+static const u8 MoveDescription_SignalBeam[] = _(
+ "A strange beam attack that\n"
+ "may confuse the foe.");
+
+static const u8 MoveDescription_ShadowPunch[] = _(
+ "An unavoidable punch that\n"
+ "is thrown from shadows.");
+
+static const u8 MoveDescription_Extrasensory[] = _(
+ "Attacks with a peculiar\n"
+ "power. May cause flinching.");
+
+static const u8 MoveDescription_SkyUppercut[] = _(
+ "An uppercut thrown as if\n"
+ "leaping into the sky.");
+
+static const u8 MoveDescription_SandTomb[] = _(
+ "Traps and hurts the foe in\n"
+ "quicksand for 2 to 5 turns.");
+
+static const u8 MoveDescription_SheerCold[] = _(
+ "A chilling attack that\n"
+ "causes fainting if it hits.");
+
+static const u8 MoveDescription_MuddyWater[] = _(
+ "Attacks with muddy water.\n"
+ "May lower accuracy.");
+
+static const u8 MoveDescription_BulletSeed[] = _(
+ "Shoots 2 to 5 seeds in a row\n"
+ "to strike the foe.");
+
+static const u8 MoveDescription_AerialAce[] = _(
+ "An extremely speedy and\n"
+ "unavoidable attack.");
+
+static const u8 MoveDescription_IcicleSpear[] = _(
+ "Attacks the foe by firing\n"
+ "2 to 5 icicles in a row.");
+
+static const u8 MoveDescription_IronDefense[] = _(
+ "Hardens the body’s surface\n"
+ "to sharply raise DEFENSE.");
+
+static const u8 MoveDescription_Block[] = _(
+ "Blocks the foe’s way to\n"
+ "prevent escape.");
+
+static const u8 MoveDescription_Howl[] = _(
+ "Howls to raise the spirit\n"
+ "and boosts ATTACK.");
+
+static const u8 MoveDescription_DragonClaw[] = _(
+ "Slashes the foe with sharp\n"
+ "claws.");
+
+static const u8 MoveDescription_FrenzyPlant[] = _(
+ "Powerful, but leaves the\n"
+ "user immobile the next turn.");
+
+static const u8 MoveDescription_BulkUp[] = _(
+ "Bulks up the body to boost\n"
+ "both ATTACK and DEFENSE.");
+
+static const u8 MoveDescription_Bounce[] = _(
+ "Bounces up, then down the\n"
+ "next turn. May paralyze.");
+
+static const u8 MoveDescription_MudShot[] = _(
+ "Hurls mud at the foe and\n"
+ "reduces SPEED.");
+
+static const u8 MoveDescription_PoisonTail[] = _(
+ "Has a high critical-hit\n"
+ "ratio. May also poison.");
+
+static const u8 MoveDescription_Covet[] = _(
+ "Cutely begs to obtain an\n"
+ "item held by the foe.");
+
+static const u8 MoveDescription_VoltTackle[] = _(
+ "A life-risking tackle that\n"
+ "slightly hurts the user.");
+
+static const u8 MoveDescription_MagicalLeaf[] = _(
+ "Attacks with a strange leaf\n"
+ "that cannot be evaded.");
+
+static const u8 MoveDescription_WaterSport[] = _(
+ "The user becomes soaked to\n"
+ "raise resistance to fire.");
+
+static const u8 MoveDescription_CalmMind[] = _(
+ "Raises SP. ATK and SP. DEF\n"
+ "by focusing the mind.");
+
+static const u8 MoveDescription_LeafBlade[] = _(
+ "Slashes with a sharp leaf.\n"
+ "High critical-hit ratio.");
+
+static const u8 MoveDescription_DragonDance[] = _(
+ "A mystical dance that ups\n"
+ "ATTACK and SPEED.");
+
+static const u8 MoveDescription_RockBlast[] = _(
+ "Hurls boulders at the foe\n"
+ "2 to 5 times in a row.");
+
+static const u8 MoveDescription_ShockWave[] = _(
+ "A fast and unavoidable\n"
+ "electric attack.");
+
+static const u8 MoveDescription_WaterPulse[] = _(
+ "Attacks with ultrasonic\n"
+ "waves. May confuse the foe");
+
+static const u8 MoveDescription_DoomDesire[] = _(
+ "Summons strong sunlight to\n"
+ "attack 2 turns later.");
+
+static const u8 MoveDescription_PsychoBoost[] = _(
+ "Allows a full-power attack,\n"
+ "but sharply lowers SP. ATK.");
+
+const u8 * const gMoveDescriptions[] = {
+ MoveDescription_Pound,
+ MoveDescription_KarateChop,
+ MoveDescription_DoubleSlap,
+ MoveDescription_CometPunch,
+ MoveDescription_MegaPunch,
+ MoveDescription_PayDay,
+ MoveDescription_FirePunch,
+ MoveDescription_IcePunch,
+ MoveDescription_ThunderPunch,
+ MoveDescription_Scratch,
+ MoveDescription_ViceGrip,
+ MoveDescription_Guillotine,
+ MoveDescription_RazorWind,
+ MoveDescription_SwordsDance,
+ MoveDescription_Cut,
+ MoveDescription_Gust,
+ MoveDescription_WingAttack,
+ MoveDescription_Whirlwind,
+ MoveDescription_Fly,
+ MoveDescription_Bind,
+ MoveDescription_Slam,
+ MoveDescription_VineWhip,
+ MoveDescription_Stomp,
+ MoveDescription_DoubleKick,
+ MoveDescription_MegaKick,
+ MoveDescription_JumpKick,
+ MoveDescription_RollingKick,
+ MoveDescription_SandAttack,
+ MoveDescription_Headbutt,
+ MoveDescription_HornAttack,
+ MoveDescription_FuryAttack,
+ MoveDescription_HornDrill,
+ MoveDescription_Tackle,
+ MoveDescription_BodySlam,
+ MoveDescription_Wrap,
+ MoveDescription_TakeDown,
+ MoveDescription_Thrash,
+ MoveDescription_DoubleEdge,
+ MoveDescription_TailWhip,
+ MoveDescription_PoisonSting,
+ MoveDescription_Twineedle,
+ MoveDescription_PinMissile,
+ MoveDescription_Leer,
+ MoveDescription_Bite,
+ MoveDescription_Growl,
+ MoveDescription_Roar,
+ MoveDescription_Sing,
+ MoveDescription_Supersonic,
+ MoveDescription_SonicBoom,
+ MoveDescription_Disable,
+ MoveDescription_Acid,
+ MoveDescription_Ember,
+ MoveDescription_Flamethrower,
+ MoveDescription_Mist,
+ MoveDescription_WaterGun,
+ MoveDescription_HydroPump,
+ MoveDescription_Surf,
+ MoveDescription_IceBeam,
+ MoveDescription_Blizzard,
+ MoveDescription_Psybeam,
+ MoveDescription_BubbleBeam,
+ MoveDescription_AuroraBeam,
+ MoveDescription_HyperBeam,
+ MoveDescription_Peck,
+ MoveDescription_DrillPeck,
+ MoveDescription_Submission,
+ MoveDescription_LowKick,
+ MoveDescription_Counter,
+ MoveDescription_SeismicToss,
+ MoveDescription_Strength,
+ MoveDescription_Absorb,
+ MoveDescription_MegaDrain,
+ MoveDescription_LeechSeed,
+ MoveDescription_Growth,
+ MoveDescription_RazorLeaf,
+ MoveDescription_SolarBeam,
+ MoveDescription_PoisonPowder,
+ MoveDescription_StunSpore,
+ MoveDescription_SleepPowder,
+ MoveDescription_PetalDance,
+ MoveDescription_StringShot,
+ MoveDescription_DragonRage,
+ MoveDescription_FireSpin,
+ MoveDescription_ThunderShock,
+ MoveDescription_Thunderbolt,
+ MoveDescription_ThunderWave,
+ MoveDescription_Thunder,
+ MoveDescription_RockThrow,
+ MoveDescription_Earthquake,
+ MoveDescription_Fissure,
+ MoveDescription_Dig,
+ MoveDescription_Toxic,
+ MoveDescription_Confusion,
+ MoveDescription_Psychic,
+ MoveDescription_Hypnosis,
+ MoveDescription_Meditate,
+ MoveDescription_Agility,
+ MoveDescription_QuickAttack,
+ MoveDescription_Rage,
+ MoveDescription_Teleport,
+ MoveDescription_NightShade,
+ MoveDescription_Mimic,
+ MoveDescription_Screech,
+ MoveDescription_DoubleTeam,
+ MoveDescription_Recover,
+ MoveDescription_Harden,
+ MoveDescription_Minimize,
+ MoveDescription_Smokescreen,
+ MoveDescription_ConfuseRay,
+ MoveDescription_Withdraw,
+ MoveDescription_DefenseCurl,
+ MoveDescription_Barrier,
+ MoveDescription_LightScreen,
+ MoveDescription_Haze,
+ MoveDescription_Reflect,
+ MoveDescription_FocusEnergy,
+ MoveDescription_Bide,
+ MoveDescription_Metronome,
+ MoveDescription_MirrorMove,
+ MoveDescription_SelfDestruct,
+ MoveDescription_EggBomb,
+ MoveDescription_Lick,
+ MoveDescription_Smog,
+ MoveDescription_Sludge,
+ MoveDescription_BoneClub,
+ MoveDescription_FireBlast,
+ MoveDescription_Waterfall,
+ MoveDescription_Clamp,
+ MoveDescription_Swift,
+ MoveDescription_SkullBash,
+ MoveDescription_SpikeCannon,
+ MoveDescription_Constrict,
+ MoveDescription_Amnesia,
+ MoveDescription_Kinesis,
+ MoveDescription_SoftBoiled,
+ MoveDescription_HiJumpKick,
+ MoveDescription_Glare,
+ MoveDescription_DreamEater,
+ MoveDescription_PoisonGas,
+ MoveDescription_Barrage,
+ MoveDescription_LeechLife,
+ MoveDescription_LovelyKiss,
+ MoveDescription_SkyAttack,
+ MoveDescription_Transform,
+ MoveDescription_Bubble,
+ MoveDescription_DizzyPunch,
+ MoveDescription_Spore,
+ MoveDescription_Flash,
+ MoveDescription_Psywave,
+ MoveDescription_Splash,
+ MoveDescription_AcidArmor,
+ MoveDescription_Crabhammer,
+ MoveDescription_Explosion,
+ MoveDescription_FurySwipes,
+ MoveDescription_Bonemerang,
+ MoveDescription_Rest,
+ MoveDescription_RockSlide,
+ MoveDescription_HyperFang,
+ MoveDescription_Sharpen,
+ MoveDescription_Conversion,
+ MoveDescription_TriAttack,
+ MoveDescription_SuperFang,
+ MoveDescription_Slash,
+ MoveDescription_Substitute,
+ MoveDescription_Struggle,
+ MoveDescription_Sketch,
+ MoveDescription_TripleKick,
+ MoveDescription_Thief,
+ MoveDescription_SpiderWeb,
+ MoveDescription_MindReader,
+ MoveDescription_Nightmare,
+ MoveDescription_FlameWheel,
+ MoveDescription_Snore,
+ MoveDescription_Curse,
+ MoveDescription_Flail,
+ MoveDescription_Conversion2,
+ MoveDescription_Aeroblast,
+ MoveDescription_CottonSpore,
+ MoveDescription_Reversal,
+ MoveDescription_Spite,
+ MoveDescription_PowderSnow,
+ MoveDescription_Protect,
+ MoveDescription_MachPunch,
+ MoveDescription_ScaryFace,
+ MoveDescription_FaintAttack,
+ MoveDescription_SweetKiss,
+ MoveDescription_BellyDrum,
+ MoveDescription_SludgeBomb,
+ MoveDescription_MudSlap,
+ MoveDescription_Octazooka,
+ MoveDescription_Spikes,
+ MoveDescription_ZapCannon,
+ MoveDescription_Foresight,
+ MoveDescription_DestinyBond,
+ MoveDescription_PerishSong,
+ MoveDescription_IcyWind,
+ MoveDescription_Detect,
+ MoveDescription_BoneRush,
+ MoveDescription_LockOn,
+ MoveDescription_Outrage,
+ MoveDescription_Sandstorm,
+ MoveDescription_GigaDrain,
+ MoveDescription_Endure,
+ MoveDescription_Charm,
+ MoveDescription_Rollout,
+ MoveDescription_FalseSwipe,
+ MoveDescription_Swagger,
+ MoveDescription_MilkDrink,
+ MoveDescription_Spark,
+ MoveDescription_FuryCutter,
+ MoveDescription_SteelWing,
+ MoveDescription_MeanLook,
+ MoveDescription_Attract,
+ MoveDescription_SleepTalk,
+ MoveDescription_HealBell,
+ MoveDescription_Return,
+ MoveDescription_Present,
+ MoveDescription_Frustration,
+ MoveDescription_Safeguard,
+ MoveDescription_PainSplit,
+ MoveDescription_SacredFire,
+ MoveDescription_Magnitude,
+ MoveDescription_DynamicPunch,
+ MoveDescription_Megahorn,
+ MoveDescription_DragonBreath,
+ MoveDescription_BatonPass,
+ MoveDescription_Encore,
+ MoveDescription_Pursuit,
+ MoveDescription_RapidSpin,
+ MoveDescription_SweetScent,
+ MoveDescription_IronTail,
+ MoveDescription_MetalClaw,
+ MoveDescription_VitalThrow,
+ MoveDescription_MorningSun,
+ MoveDescription_Synthesis,
+ MoveDescription_Moonlight,
+ MoveDescription_HiddenPower,
+ MoveDescription_CrossChop,
+ MoveDescription_Twister,
+ MoveDescription_RainDance,
+ MoveDescription_SunnyDay,
+ MoveDescription_Crunch,
+ MoveDescription_MirrorCoat,
+ MoveDescription_PsychUp,
+ MoveDescription_ExtremeSpeed,
+ MoveDescription_AncientPower,
+ MoveDescription_ShadowBall,
+ MoveDescription_FutureSight,
+ MoveDescription_RockSmash,
+ MoveDescription_Whirlpool,
+ MoveDescription_BeatUp,
+ MoveDescription_FakeOut,
+ MoveDescription_Uproar,
+ MoveDescription_Stockpile,
+ MoveDescription_SpitUp,
+ MoveDescription_Swallow,
+ MoveDescription_HeatWave,
+ MoveDescription_Hail,
+ MoveDescription_Torment,
+ MoveDescription_Flatter,
+ MoveDescription_WillOWisp,
+ MoveDescription_Memento,
+ MoveDescription_Facade,
+ MoveDescription_FocusPunch,
+ MoveDescription_SmellingSalt,
+ MoveDescription_FollowMe,
+ MoveDescription_NaturePower,
+ MoveDescription_Charge,
+ MoveDescription_Taunt,
+ MoveDescription_HelpingHand,
+ MoveDescription_Trick,
+ MoveDescription_RolePlay,
+ MoveDescription_Wish,
+ MoveDescription_Assist,
+ MoveDescription_Ingrain,
+ MoveDescription_Superpower,
+ MoveDescription_MagicCoat,
+ MoveDescription_Recycle,
+ MoveDescription_Revenge,
+ MoveDescription_BrickBreak,
+ MoveDescription_Yawn,
+ MoveDescription_KnockOff,
+ MoveDescription_Endeavor,
+ MoveDescription_Eruption,
+ MoveDescription_SkillSwap,
+ MoveDescription_Imprison,
+ MoveDescription_Refresh,
+ MoveDescription_Grudge,
+ MoveDescription_Snatch,
+ MoveDescription_SecretPower,
+ MoveDescription_Dive,
+ MoveDescription_ArmThrust,
+ MoveDescription_Camouflage,
+ MoveDescription_TailGlow,
+ MoveDescription_LusterPurge,
+ MoveDescription_MistBall,
+ MoveDescription_FeatherDance,
+ MoveDescription_TeeterDance,
+ MoveDescription_BlazeKick,
+ MoveDescription_MudSport,
+ MoveDescription_IceBall,
+ MoveDescription_NeedleArm,
+ MoveDescription_SlackOff,
+ MoveDescription_HyperVoice,
+ MoveDescription_PoisonFang,
+ MoveDescription_CrushClaw,
+ MoveDescription_BlastBurn,
+ MoveDescription_HydroCannon,
+ MoveDescription_MeteorMash,
+ MoveDescription_Astonish,
+ MoveDescription_WeatherBall,
+ MoveDescription_Aromatherapy,
+ MoveDescription_FakeTears,
+ MoveDescription_AirCutter,
+ MoveDescription_Overheat,
+ MoveDescription_OdorSleuth,
+ MoveDescription_RockTomb,
+ MoveDescription_SilverWind,
+ MoveDescription_MetalSound,
+ MoveDescription_GrassWhistle,
+ MoveDescription_Tickle,
+ MoveDescription_CosmicPower,
+ MoveDescription_WaterSpout,
+ MoveDescription_SignalBeam,
+ MoveDescription_ShadowPunch,
+ MoveDescription_Extrasensory,
+ MoveDescription_SkyUppercut,
+ MoveDescription_SandTomb,
+ MoveDescription_SheerCold,
+ MoveDescription_MuddyWater,
+ MoveDescription_BulletSeed,
+ MoveDescription_AerialAce,
+ MoveDescription_IcicleSpear,
+ MoveDescription_IronDefense,
+ MoveDescription_Block,
+ MoveDescription_Howl,
+ MoveDescription_DragonClaw,
+ MoveDescription_FrenzyPlant,
+ MoveDescription_BulkUp,
+ MoveDescription_Bounce,
+ MoveDescription_MudShot,
+ MoveDescription_PoisonTail,
+ MoveDescription_Covet,
+ MoveDescription_VoltTackle,
+ MoveDescription_MagicalLeaf,
+ MoveDescription_WaterSport,
+ MoveDescription_CalmMind,
+ MoveDescription_LeafBlade,
+ MoveDescription_DragonDance,
+ MoveDescription_RockBlast,
+ MoveDescription_ShockWave,
+ MoveDescription_WaterPulse,
+ MoveDescription_DoomDesire,
+ MoveDescription_PsychoBoost,
+};
diff --git a/src/data/text/nature_names_de.h b/src/data/text/nature_names_de.h
new file mode 100644
index 000000000..695b0b62c
--- /dev/null
+++ b/src/data/text/nature_names_de.h
@@ -0,0 +1,53 @@
+static const u8 NatureName_Hardy[] = _("ROBUST");
+static const u8 NatureName_Lonely[] = _("SOLO");
+static const u8 NatureName_Brave[] = _("MUTIG");
+static const u8 NatureName_Adamant[] = _("HART");
+static const u8 NatureName_Naughty[] = _("FRECH");
+static const u8 NatureName_Bold[] = _("KÜHN");
+static const u8 NatureName_Docile[] = _("SANFT");
+static const u8 NatureName_Relaxed[] = _("LOCKER");
+static const u8 NatureName_Impish[] = _("PFIFFIG");
+static const u8 NatureName_Lax[] = _("LASCH");
+static const u8 NatureName_Timid[] = _("SCHEU");
+static const u8 NatureName_Hasty[] = _("HASTIG");
+static const u8 NatureName_Serious[] = _("ERNST");
+static const u8 NatureName_Jolly[] = _("FROH");
+static const u8 NatureName_Naive[] = _("NAIV");
+static const u8 NatureName_Modest[] = _("MÄSSIG");
+static const u8 NatureName_Mild[] = _("MILD");
+static const u8 NatureName_Quiet[] = _("RUHIG");
+static const u8 NatureName_Bashful[] = _("ZAGHAFT");
+static const u8 NatureName_Rash[] = _("HITZIG");
+static const u8 NatureName_Calm[] = _("STILL");
+static const u8 NatureName_Gentle[] = _("ZART");
+static const u8 NatureName_Sassy[] = _("FORSCH");
+static const u8 NatureName_Careful[] = _("SACHT");
+static const u8 NatureName_Quirky[] = _("KAUZIG");
+
+const u8 * const gNatureNames[] = {
+ NatureName_Hardy,
+ NatureName_Lonely,
+ NatureName_Brave,
+ NatureName_Adamant,
+ NatureName_Naughty,
+ NatureName_Bold,
+ NatureName_Docile,
+ NatureName_Relaxed,
+ NatureName_Impish,
+ NatureName_Lax,
+ NatureName_Timid,
+ NatureName_Hasty,
+ NatureName_Serious,
+ NatureName_Jolly,
+ NatureName_Naive,
+ NatureName_Modest,
+ NatureName_Mild,
+ NatureName_Quiet,
+ NatureName_Bashful,
+ NatureName_Rash,
+ NatureName_Calm,
+ NatureName_Gentle,
+ NatureName_Sassy,
+ NatureName_Careful,
+ NatureName_Quirky,
+};
diff --git a/src/data/text/nature_names_en.h b/src/data/text/nature_names_en.h
new file mode 100644
index 000000000..305b43690
--- /dev/null
+++ b/src/data/text/nature_names_en.h
@@ -0,0 +1,53 @@
+static const u8 NatureName_Hardy[] = _("HARDY");
+static const u8 NatureName_Lonely[] = _("LONELY");
+static const u8 NatureName_Brave[] = _("BRAVE");
+static const u8 NatureName_Adamant[] = _("ADAMANT");
+static const u8 NatureName_Naughty[] = _("NAUGHTY");
+static const u8 NatureName_Bold[] = _("BOLD");
+static const u8 NatureName_Docile[] = _("DOCILE");
+static const u8 NatureName_Relaxed[] = _("RELAXED");
+static const u8 NatureName_Impish[] = _("IMPISH");
+static const u8 NatureName_Lax[] = _("LAX");
+static const u8 NatureName_Timid[] = _("TIMID");
+static const u8 NatureName_Hasty[] = _("HASTY");
+static const u8 NatureName_Serious[] = _("SERIOUS");
+static const u8 NatureName_Jolly[] = _("JOLLY");
+static const u8 NatureName_Naive[] = _("NAIVE");
+static const u8 NatureName_Modest[] = _("MODEST");
+static const u8 NatureName_Mild[] = _("MILD");
+static const u8 NatureName_Quiet[] = _("QUIET");
+static const u8 NatureName_Bashful[] = _("BASHFUL");
+static const u8 NatureName_Rash[] = _("RASH");
+static const u8 NatureName_Calm[] = _("CALM");
+static const u8 NatureName_Gentle[] = _("GENTLE");
+static const u8 NatureName_Sassy[] = _("SASSY");
+static const u8 NatureName_Careful[] = _("CAREFUL");
+static const u8 NatureName_Quirky[] = _("QUIRKY");
+
+const u8 * const gNatureNames[] = {
+ NatureName_Hardy,
+ NatureName_Lonely,
+ NatureName_Brave,
+ NatureName_Adamant,
+ NatureName_Naughty,
+ NatureName_Bold,
+ NatureName_Docile,
+ NatureName_Relaxed,
+ NatureName_Impish,
+ NatureName_Lax,
+ NatureName_Timid,
+ NatureName_Hasty,
+ NatureName_Serious,
+ NatureName_Jolly,
+ NatureName_Naive,
+ NatureName_Modest,
+ NatureName_Mild,
+ NatureName_Quiet,
+ NatureName_Bashful,
+ NatureName_Rash,
+ NatureName_Calm,
+ NatureName_Gentle,
+ NatureName_Sassy,
+ NatureName_Careful,
+ NatureName_Quirky,
+};
diff --git a/src/de_rom_8040FE0.c b/src/de_rom_8040FE0.c
index eebcc1437..53ad4a806 100644
--- a/src/de_rom_8040FE0.c
+++ b/src/de_rom_8040FE0.c
@@ -1,5 +1,7 @@
#include "global.h"
#include "battle.h"
+#include "battle_tower.h"
+#include "ewram.h"
#if GERMAN
@@ -20,8 +22,6 @@ enum {
TRAINER_CLASS_MAY_3 = 63,
};
-extern struct SecretBaseRecord gSecretBaseRecord;
-
extern u8 gTrainerClassNames[][13];
extern struct Trainer gTrainers[];
@@ -59,7 +59,6 @@ u8 *de_sub_804100C(u8 gender) {
u8 de_sub_81364AC(void);
u8 get_trainer_class_name_index(void);
u8 de_sub_81364F8(void);
-u8 sub_8135FD8(void);
u8 *de_sub_8041024(s32 arg0, u32 arg1) {
u8 nameIndex, trainerClass, gender;
@@ -70,7 +69,7 @@ u8 *de_sub_8041024(s32 arg0, u32 arg1) {
{
case 0x400:
nameIndex = GetSecretBaseTrainerNameIndex();
- gender = gSecretBaseRecord.gender;
+ gender = eSecretBaseRecord.gender;
if (nameIndex == TRAINER_CLASS_NAME_SCHOOL_KID)
{
return de_sub_8040FE0(gender);
@@ -94,7 +93,7 @@ u8 *de_sub_8041024(s32 arg0, u32 arg1) {
case 0x800:
trainerClass = de_sub_81364F8();
- nameIndex = sub_8135FD8();
+ nameIndex = GetEReaderTrainerClassNameIndex();
if (trainerClass == TRAINER_CLASS_SCHOOL_KID_F)
{
return de_sub_8040FE0(FEMALE);
@@ -166,7 +165,7 @@ _0804104A:\n\
bl GetSecretBaseTrainerNameIndex\n\
lsls r0, 24\n\
lsrs r5, r0, 24\n\
- ldr r0, _08041060 @ =0x02017000\n\
+ ldr r0, _08041060 @ =gSharedMem + 0x17000\n\
ldrb r0, [r0, 0x1]\n\
lsls r0, 27\n\
lsrs r2, r0, 31\n\
@@ -174,7 +173,7 @@ _0804104A:\n\
beq _080410B8\n\
b _080410F8\n\
.align 2, 0\n\
-_08041060: .4byte 0x02017000\n\
+_08041060: .4byte gSharedMem + 0x17000\n\
_08041064:\n\
bl de_sub_81364AC\n\
lsls r0, 24\n\
@@ -196,7 +195,7 @@ _08041086:\n\
bl de_sub_81364F8\n\
lsls r0, 24\n\
lsrs r4, r0, 24\n\
- bl sub_8135FD8\n\
+ bl GetEReaderTrainerClassNameIndex\n\
b _08041070\n\
_08041094:\n\
movs r0, 0x1\n\
diff --git a/src/debug/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c
index c7d81f502..595491d5d 100644
--- a/src/debug/matsuda_debug_menu.c
+++ b/src/debug/matsuda_debug_menu.c
@@ -15,6 +15,7 @@
#include "task.h"
#include "text.h"
#include "unknown_task.h"
+#include "ewram.h"
extern u8 gUnknown_0203856C;
extern u8 gUnknown_0203857D[][64];
@@ -26,8 +27,8 @@ extern u8 gUnknown_02038694;
extern u8 gIsLinkContest;
extern u8 gUnknown_0203869B;
extern u8 gContestPlayerMonIndex;
-extern u16 gScriptContestCategory;
-extern u16 gScriptContestRank;
+extern u16 gSpecialVar_ContestCategory;
+extern u16 gSpecialVar_ContestRank;
extern u16 gUnknown_030042A4;
extern u16 gUnknown_030042A0;
@@ -40,33 +41,8 @@ extern u16 gUnknown_030041B8;
extern struct Window gUnknown_03004210;
extern u8 (*gCallback_03004AE8)(void);
-extern u8 gUnknown_083C926E[][2];
-extern u8 gUnknown_083C9282[];
-extern const u8 gUnknown_083C928E[][2];
-extern u8 gUnknown_083C9296[];
-extern u8 gUnknown_083C92A8[];
-extern u8 unk_2000000[];
-extern u8 gMatsudaDebugMenu_GoBackText[];
-extern u8 gMatsudaDebugMenu_BattlePointsText[];
-extern u8 gMatsudaDebugMenu_StartText[];
-
-extern struct SpritePalette gUnknown_083C92BC;
-extern struct SpriteSheet gUnknown_083C92B4;
-extern struct SpriteTemplate gSpriteTemplate_83C92CC;
-extern void (*gUnknown_083C92E4[][2])(struct Sprite *, s8);
-extern u32 gUnknown_083C9400[2];
-
-
-extern u8 gMatsudaDebugMenu_UnknownByteArray[];
-extern u8* gMatsudaDebugMenuTextList1[];
-extern u8* gMatsudaDebugMenuTextList2[];
-extern u8* gMatsudaDebugMenuTextList3[];
-extern u8 gMatsudaDebugMenuContestTopLeft[][2];
-
extern bool8 gReceivedRemoteLinkPlayers;
-extern struct MenuAction gMatsudaDebugMenuActions[];
-
static bool8 sub_80A9B78(void);
static void sub_80A9BE4(u8 taskId);
static void sub_80A9C98(u8);
@@ -85,6 +61,191 @@ static void sub_80AA5BC(u8);
static void sub_80AA614(u8, u8);
static void sub_80AAD08(struct Sprite *, s8);
+// unused
+const u8 gText_Unused83C9150[] = _("テストです"); // "test"
+const u8 gMatsudaDebugMenu_ActionContestText[] = _("Contest");
+const u8 gMatsudaDebugMenu_ActionContestResultsText[] = _("Contest results");
+// unused
+const u8 gMatsudaDebugMenu_ActionChangePerimeterText[] = _("パラメータへんこう"); // "Change parameter"
+// unused
+const u8 gMatsudaDebugMenu_ActionChangeMoveText[] = _("わざ へんこう"); // "Change move"
+const u8 gMatsudaDebugMenu_ActionContestCommText[] = _("Contest (comm.)");
+const u8 gMatsudaDebugMenu_ActionCommTestText[] = _("Init comm. data");
+const u8 gMatsudaDebugMenu_ActionSetHighScoreText[] = _("Set highest score");
+const u8 gMatsudaDebugMenu_ActionResetHighScoreText[] = _("Reset highest score");
+const u8 gMatsudaDebugMenu_ActionSetAllArtMuseumText[] = _("Set all art museum items");
+
+const struct MenuAction gMatsudaDebugMenuActions[] =
+{
+ {gMatsudaDebugMenu_ActionContestText, MatsudaDebugMenu_Contest},
+ {gMatsudaDebugMenu_ActionContestResultsText, MatsudaDebugMenu_ContestResults},
+ {gMatsudaDebugMenu_ActionContestCommText, MatsudaDebugMenu_ContestComm},
+ {gMatsudaDebugMenu_ActionCommTestText, MatsudaDebugMenu_CommTest},
+ {gMatsudaDebugMenu_ActionSetHighScoreText, MatsudaDebugMenu_SetHighScore},
+ {gMatsudaDebugMenu_ActionResetHighScoreText, MatsudaDebugMenu_ResetHighScore},
+ {gMatsudaDebugMenu_ActionSetAllArtMuseumText, MatsudaDebugMenu_SetArtMuseumItems},
+};
+
+const u8 gMatsudaDebugMenu_UnknownByteArray[] = {0xFC, 0x02, 0x0F, 0x00, 0xFF};
+const u8 Unknown_083C922D[] = INCBIN_U8("graphics/unknown/ball.4bpp");
+const u16 Unknown_083C924E[] = INCBIN_U16("graphics/unknown/ball.gbapal");
+
+const u8 gUnknown_083C926E[][2] =
+{
+ {2, 0},
+ {17, 0},
+ {2, 2},
+ {17, 2},
+};
+
+const u8 gMatsudaDebugMenuContestTopLeft[][2] =
+{
+ {0, 6},
+ {15, 6},
+ {0, 8},
+ {15, 8},
+ {0, 10},
+ {15, 10},
+};
+
+const u8 gUnknown_083C9282[] =
+{
+ // TODO: 2d array?
+ 7, 6,
+ 22, 6,
+ 7, 8,
+ 22, 8,
+ 7, 10,
+ 22, 10,
+};
+
+const u8 gUnknown_083C928E[][2] =
+{
+ {2, 14},
+ {17, 14},
+ {2, 16},
+ {17, 16},
+};
+
+const u8 gUnknown_083C9296[] = {0x08, 0x80, 0x08, 0x80, 0x10, 0x10, 0x30, 0xA8, 0x30, 0xA8, 0x30, 0xA8, 0x08, 0x80, 0x08, 0x80, 0x10, 0x88};
+const u8 gUnknown_083C92A8[] = {0x08, 0x18, 0x28, 0x38, 0x48, 0x58, 0x78, 0x88, 0x98};
+
+const struct SpriteSheet gUnknown_083C92B4[] = {Unknown_083C922D, 32, 0x4B0};
+const struct SpritePalette gUnknown_083C92BC[] = {Unknown_083C924E, 0x4B0};
+
+const struct OamData gOamData_83C92C4 =
+{
+ .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_83C92CC =
+{
+ .tileTag = 1200,
+ .paletteTag = 1200,
+ .oam = &gOamData_83C92C4,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80AA754,
+};
+
+static void (* const gUnknown_083C92E4[][2])(struct Sprite *, s8) =
+{
+ {sub_80AA8C8, sub_80AA8D8},
+ {sub_80AA8E8, sub_80AA8F8},
+ {sub_80AAC5C, sub_80AAC5C},
+ {sub_80AA930, sub_80AA974},
+ {sub_80AA9B8, sub_80AA9FC},
+ {sub_80AAA40, sub_80AAA84},
+ {sub_80AAAF0, sub_80AAB30},
+ {sub_80AAB70, sub_80AABB0},
+ {sub_80AABF0, sub_80AAD44},
+};
+
+static const u8 gMatsudaDebugMenu_StartText[] = _("{COLOR CYAN}{HIGHLIGHT RED}");
+static const u8 gMatsudaDebugMenu_StartJapText[] = _("かいし"); // because StartText is only called by StringCopy, this part appears to be unused.
+static const u8 gMatsudaDebugMenu_GoBackText[] = _("もどる");
+
+#ifdef GERMAN
+static const u8 gMatsudaDebugMenu_BattlePointsText[] = _("{COLOR MAGENTA}BP,");
+#else
+static const u8 gMatsudaDebugMenu_BattlePointsText[] = _("{COLOR MAGENTA}BP.");
+#endif
+
+static const u8 MatsudaDebugMenuText_Cool[] = _("かっこよさ"); // cool
+static const u8 MatsudaDebugMenuText_Cute[] = _("かわいさ"); // cute
+static const u8 MatsudaDebugMenuText_Beauty[] = _("うつくしさ"); // beauty
+static const u8 MatsudaDebugMenuText_Smart[] = _("かしこさ"); // smart
+static const u8 MatsudaDebugMenuText_Tough[] = _("たくましさ"); // tough
+static const u8 MatsudaDebugMenuText_Sheen[] = _("けづや"); // sheen
+
+static const u8 *const gMatsudaDebugMenuTextList1[] =
+{
+ MatsudaDebugMenuText_Cool,
+ MatsudaDebugMenuText_Cute,
+ MatsudaDebugMenuText_Beauty,
+ MatsudaDebugMenuText_Smart,
+ MatsudaDebugMenuText_Tough,
+ MatsudaDebugMenuText_Sheen,
+};
+
+static const u8 MatsudaDebugMenuText_CoolContest[] = _("かっこよさコンテスト");
+static const u8 MatsudaDebugMenuText_BeautyContest[] = _("うつくしさコンテスト");
+static const u8 MatsudaDebugMenuText_CuteContest[] = _("かわいさコンテスト ");
+static const u8 MatsudaDebugMenuText_SmartContest[] = _("かしこさコンテスト ");
+static const u8 MatsudaDebugMenuText_ToughContest[] = _("たくましさコンテスト");
+
+static const u8 *const gMatsudaDebugMenuTextList2[] =
+{
+ MatsudaDebugMenuText_CoolContest,
+ MatsudaDebugMenuText_BeautyContest,
+ MatsudaDebugMenuText_CuteContest,
+ MatsudaDebugMenuText_SmartContest,
+ MatsudaDebugMenuText_ToughContest,
+};
+
+static const u8 MatsudaDebugMenuText_Fallarbor[] = _("ハジツゲ/ノーマル"); // Fallarbor / Normal
+static const u8 MatsudaDebugMenuText_Verdanturf[] = _("シダケ/スーパー "); // Verdanturf / Super
+static const u8 MatsudaDebugMenuText_Slateport[] = _("カイナ/ハイパー "); // Slateport / Hyper
+static const u8 MatsudaDebugMenuText_Lilycove[] = _("ミナモ/マスター "); // Lilycove / Master
+
+static const u8 *const gMatsudaDebugMenuTextList3[] =
+{
+ MatsudaDebugMenuText_Fallarbor,
+ MatsudaDebugMenuText_Verdanturf,
+ MatsudaDebugMenuText_Slateport,
+ MatsudaDebugMenuText_Lilycove,
+};
+
+static const struct OamData gUnknown_083C9400 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 1023,
+ .priority = 0,
+ .paletteNum = 15,
+ .affineParam = 0,
+};
+
u8 unref_sub_80A9B28(void)
{
MenuZeroFillScreen();
@@ -112,7 +273,7 @@ static bool8 sub_80A9B78(void)
}
}
-s8 MatsudaDebugMenu_ContestResults(void)
+u8 MatsudaDebugMenu_ContestResults(void)
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
CreateTask(sub_80A9BE4, 0xFF);
@@ -132,20 +293,20 @@ static void sub_80A9BE4(u8 taskId)
}
}
-s8 MatsudaDebugMenu_Contest(void)
+u8 MatsudaDebugMenu_Contest(void)
{
gIsLinkContest = 0;
sub_80AA10C();
return 0;
}
-s8 MatsudaDebugMenu_ContestComm(void)
+u8 MatsudaDebugMenu_ContestComm(void)
{
sub_80AA10C();
return 0;
}
-s8 MatsudaDebugMenu_CommTest(void)
+u8 MatsudaDebugMenu_CommTest(void)
{
u8 newTaskId;
u8 newTaskId2;
@@ -199,7 +360,7 @@ static void sub_80A9D58(u8 taskId)
dest[i] = gTasks[taskId].data[5 + i];
gUnknown_0203869B = sub_80C4B34(dest);
- sub_80AE82C((u8)gScriptContestCategory);
+ sub_80AE82C((u8)gSpecialVar_ContestCategory);
sub_80B0F28(0);
SetTaskFuncWithFollowupFunc(taskId, sub_80C8EBC, sub_80A9DBC);
}
@@ -391,22 +552,22 @@ static void sub_80AA10C(void)
gMatsudaDebugMenuContestTopLeft[i][1]);
}
- gScriptContestCategory = gScriptContestRank = 0;
+ gSpecialVar_ContestCategory = gSpecialVar_ContestRank = 0;
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(gScriptContestRank);
+ sub_80AA5E8(gSpecialVar_ContestRank);
sub_8003460(&gMenuWindow, gMatsudaDebugMenu_GoBackText, 0xD6, 0x12, 0x12);
sub_8003460(&gMenuWindow, gMatsudaDebugMenu_BattlePointsText, 0xDC, zero, 0xC);
- LoadSpriteSheet(&gUnknown_083C92B4);
- LoadSpritePalette(&gUnknown_083C92BC);
+ LoadSpriteSheet(gUnknown_083C92B4);
+ LoadSpritePalette(gUnknown_083C92BC);
sub_80AA280(3);
sub_80AA658(3);
sub_80AA614(3, zero);
spriteId = CreateSprite(&gSpriteTemplate_83C92CC, gUnknown_083C9296[3], gUnknown_083C92A8[1], 5);
- gSprites[spriteId].data0 = 1;
- gSprites[spriteId].data1 = 1;
- gSprites[spriteId].data2 = 3;
- gSprites[spriteId].data3 = zero; // only this assignment of zero is necessary. other replacements of 0 with zero do not change the asm, compiler will treat it the same.
+ gSprites[spriteId].data[0] = 1;
+ gSprites[spriteId].data[1] = 1;
+ gSprites[spriteId].data[2] = 3;
+ gSprites[spriteId].data[3] = zero; // only this assignment of zero is necessary. other replacements of 0 with zero do not change the asm, compiler will treat it the same.
}
void sub_80AA280(u8 var) // no?
@@ -414,14 +575,14 @@ void sub_80AA280(u8 var) // no?
u8 i;
FillWindowRect_DefaultPalette(&gMenuWindow, 0, 0, 0, 0x1E, 3);
- StringCopy(unk_2000000, gMatsudaDebugMenu_StartText);
- StringAppend(unk_2000000, &gUnknown_0203857D[var][0]);
+ StringCopy(gSharedMem, gMatsudaDebugMenu_StartText);
+ StringAppend(gSharedMem, &gUnknown_0203857D[var][0]);
for (i = 0; i < 4; i++)
{
if (var == i)
{
- sub_8003460(&gMenuWindow, unk_2000000, (10 * i + 2), gUnknown_083C926E[i][0], gUnknown_083C926E[i][1]);
+ sub_8003460(&gMenuWindow, gSharedMem, (10 * i + 2), gUnknown_083C926E[i][0], gUnknown_083C926E[i][1]);
}
else
{
@@ -433,38 +594,38 @@ void sub_80AA280(u8 var) // no?
static void sub_80AA340(u8 var)
{
- ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].cool, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, unk_2000000, 0x66, gUnknown_083C9282[0], gUnknown_083C9282[1]);
+ ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].cool, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, gSharedMem, 0x66, gUnknown_083C9282[0], gUnknown_083C9282[1]);
}
static void sub_80AA388(u8 var)
{
- ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].cute, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, unk_2000000, 0x6C, gUnknown_083C9282[2], gUnknown_083C9282[3]);
+ ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].cute, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, gSharedMem, 0x6C, gUnknown_083C9282[2], gUnknown_083C9282[3]);
}
static void sub_80AA3D0(u8 var)
{
- ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].beauty, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, unk_2000000, 0x72, gUnknown_083C9282[4], gUnknown_083C9282[5]);
+ ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].beauty, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, gSharedMem, 0x72, gUnknown_083C9282[4], gUnknown_083C9282[5]);
}
static void sub_80AA418(u8 var)
{
- ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].smart, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, unk_2000000, 0x78, gUnknown_083C9282[6], gUnknown_083C9282[7]);
+ ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].smart, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, gSharedMem, 0x78, gUnknown_083C9282[6], gUnknown_083C9282[7]);
}
static void sub_80AA460(u8 var)
{
- ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].tough, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, unk_2000000, 0x7E, gUnknown_083C9282[8], gUnknown_083C9282[9]);
+ ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].tough, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, gSharedMem, 0x7E, gUnknown_083C9282[8], gUnknown_083C9282[9]);
}
static void sub_80AA4A8(u8 var)
{
- ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].sheen, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, unk_2000000, 0x84, gUnknown_083C9282[10], gUnknown_083C9282[11]);
+ ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].sheen, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, gSharedMem, 0x84, gUnknown_083C9282[10], gUnknown_083C9282[11]);
}
static void sub_80AA4F0(u8 var1, u8 var2)
@@ -489,8 +650,8 @@ static void sub_80AA614(u8 var1, u8 var2)
{
u16 var = sub_80AE770(var1, var2);
- ConvertIntToDecimalStringN(unk_2000000, var, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, unk_2000000, 0xE2, 3, 0xC);
+ ConvertIntToDecimalStringN(gSharedMem, var, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, gSharedMem, 0xE2, 3, 0xC);
}
void sub_80AA658(u8 var)
@@ -516,10 +677,10 @@ void SetDebugMonForContest(void)
SetMonData(&gPlayerParty[0], MON_DATA_SMART, &gContestMons[gContestPlayerMonIndex].smart);
SetMonData(&gPlayerParty[0], MON_DATA_TOUGH, &gContestMons[gContestPlayerMonIndex].tough);
SetMonData(&gPlayerParty[0], MON_DATA_SHEEN, &gContestMons[gContestPlayerMonIndex].sheen);
- SetMonData(&gPlayerParty[0], MON_DATA_MOVE1, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[0]);
- SetMonData(&gPlayerParty[0], MON_DATA_MOVE2, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[1]);
- SetMonData(&gPlayerParty[0], MON_DATA_MOVE3, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[2]);
- SetMonData(&gPlayerParty[0], MON_DATA_MOVE4, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[3]);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE1, &gContestMons[gContestPlayerMonIndex].moves[0]);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE2, &gContestMons[gContestPlayerMonIndex].moves[1]);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE3, &gContestMons[gContestPlayerMonIndex].moves[2]);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE4, &gContestMons[gContestPlayerMonIndex].moves[3]);
}
void sub_80AA754(struct Sprite *sprite)
@@ -528,51 +689,51 @@ void sub_80AA754(struct Sprite *sprite)
{
case DPAD_RIGHT:
case DPAD_LEFT:
- sprite->data0 ^= 1;
+ sprite->data[0] ^= 1;
break;
case DPAD_UP:
- if (sprite->data1 == 0)
- sprite->data1 = 8;
+ if (sprite->data[1] == 0)
+ sprite->data[1] = 8;
else
- sprite->data1--;
+ sprite->data[1]--;
break;
case DPAD_DOWN:
- if (sprite->data1 == 8)
- sprite->data1 = 0;
+ if (sprite->data[1] == 8)
+ sprite->data[1] = 0;
else
- sprite->data1++;
+ sprite->data[1]++;
break;
case A_BUTTON:
- gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, 1);
- sub_80AA614(sprite->data2, sprite->data3);
+ gUnknown_083C92E4[sprite->data[1]][sprite->data[0]](sprite, 1);
+ sub_80AA614(sprite->data[2], sprite->data[3]);
break;
case B_BUTTON:
- gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, -1);
- sub_80AA614(sprite->data2, sprite->data3);
+ gUnknown_083C92E4[sprite->data[1]][sprite->data[0]](sprite, -1);
+ sub_80AA614(sprite->data[2], sprite->data[3]);
break;
case R_BUTTON:
- gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, 10);
- sub_80AA614(sprite->data2, sprite->data3);
+ gUnknown_083C92E4[sprite->data[1]][sprite->data[0]](sprite, 10);
+ sub_80AA614(sprite->data[2], sprite->data[3]);
break;
case L_BUTTON:
- gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, -10);
- sub_80AA614(sprite->data2, sprite->data3);
+ gUnknown_083C92E4[sprite->data[1]][sprite->data[0]](sprite, -10);
+ sub_80AA614(sprite->data[2], sprite->data[3]);
break;
case START_BUTTON:
sub_80AAD08(sprite, 1);
break;
}
- sprite->pos1.x = gUnknown_083C9296[sprite->data0 + sprite->data1 * 2];
- sprite->pos1.y = gUnknown_083C92A8[sprite->data1];
+ sprite->pos1.x = gUnknown_083C9296[sprite->data[0] + sprite->data[1] * 2];
+ sprite->pos1.y = gUnknown_083C92A8[sprite->data[1]];
}
static void sub_80AA8A0(struct Sprite *sprite, s8 var1, u8 var2)
{
if (var1 == 1)
{
- sprite->data2 = var2;
+ sprite->data[2] = var2;
sub_80AA280(var2);
- sub_80AA658(sprite->data2);
+ sub_80AA658(sprite->data[2]);
}
}
@@ -608,52 +769,52 @@ static u8 sub_80AA908(u32 a1, u8 a2, s8 a3) // first param is unused.
return val;
}
-void sub_80AA930(struct Sprite *sprite, u8 var2)
+void sub_80AA930(struct Sprite *sprite, s8 var2)
{
- u8 val = sprite->data2;
+ u8 val = sprite->data[2];
- gContestMons[sprite->data2].cool = sub_80AA908(val, gContestMons[sprite->data2].cool, var2);
- sub_80AA340(sprite->data2);
+ gContestMons[sprite->data[2]].cool = sub_80AA908(val, gContestMons[sprite->data[2]].cool, var2);
+ sub_80AA340(sprite->data[2]);
}
-void sub_80AA974(struct Sprite *sprite, u8 var2)
+void sub_80AA974(struct Sprite *sprite, s8 var2)
{
- u8 val = sprite->data2;
+ u8 val = sprite->data[2];
- gContestMons[sprite->data2].cute = sub_80AA908(val, gContestMons[sprite->data2].cute, var2);
- sub_80AA388(sprite->data2);
+ gContestMons[sprite->data[2]].cute = sub_80AA908(val, gContestMons[sprite->data[2]].cute, var2);
+ sub_80AA388(sprite->data[2]);
}
-void sub_80AA9B8(struct Sprite *sprite, u8 var2)
+void sub_80AA9B8(struct Sprite *sprite, s8 var2)
{
- u8 val = sprite->data2;
+ u8 val = sprite->data[2];
- gContestMons[sprite->data2].beauty = sub_80AA908(val, gContestMons[sprite->data2].beauty, var2);
- sub_80AA3D0(sprite->data2);
+ gContestMons[sprite->data[2]].beauty = sub_80AA908(val, gContestMons[sprite->data[2]].beauty, var2);
+ sub_80AA3D0(sprite->data[2]);
}
-void sub_80AA9FC(struct Sprite *sprite, u8 var2)
+void sub_80AA9FC(struct Sprite *sprite, s8 var2)
{
- u8 val = sprite->data2;
+ u8 val = sprite->data[2];
- gContestMons[sprite->data2].smart = sub_80AA908(val, gContestMons[sprite->data2].smart, var2);
- sub_80AA418(sprite->data2);
+ gContestMons[sprite->data[2]].smart = sub_80AA908(val, gContestMons[sprite->data[2]].smart, var2);
+ sub_80AA418(sprite->data[2]);
}
-void sub_80AAA40(struct Sprite *sprite, u8 var2)
+void sub_80AAA40(struct Sprite *sprite, s8 var2)
{
- u8 val = sprite->data2;
+ u8 val = sprite->data[2];
- gContestMons[sprite->data2].tough = sub_80AA908(val, gContestMons[sprite->data2].tough, var2);
- sub_80AA460(sprite->data2);
+ gContestMons[sprite->data[2]].tough = sub_80AA908(val, gContestMons[sprite->data[2]].tough, var2);
+ sub_80AA460(sprite->data[2]);
}
-void sub_80AAA84(struct Sprite *sprite, u8 var2)
+void sub_80AAA84(struct Sprite *sprite, s8 var2)
{
- u8 val = sprite->data2;
+ u8 val = sprite->data[2];
- gContestMons[sprite->data2].sheen = sub_80AA908(val, gContestMons[sprite->data2].sheen, var2);
- sub_80AA4A8(sprite->data2);
+ gContestMons[sprite->data[2]].sheen = sub_80AA908(val, gContestMons[sprite->data[2]].sheen, var2);
+ sub_80AA4A8(sprite->data[2]);
}
// a similar function is at 0x80AA908, however, it apparently returns the wrong type (u8 vs u16).
@@ -669,67 +830,67 @@ static u16 sub_80AAAC8(u32 a1, u16 a2, s8 a3) // first param is unused.
return val;
}
-void sub_80AAAF0(struct Sprite *sprite, u8 var2)
+void sub_80AAAF0(struct Sprite *sprite, s8 var2)
{
- u8 val = sprite->data2;
+ u8 val = sprite->data[2];
- gContestMons[sprite->data2].moves[0] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[0], var2);
- sub_80AA4F0(sprite->data2, 0);
+ gContestMons[sprite->data[2]].moves[0] = sub_80AAAC8(val, gContestMons[sprite->data[2]].moves[0], var2);
+ sub_80AA4F0(sprite->data[2], 0);
}
-void sub_80AAB30(struct Sprite *sprite, u8 var2)
+void sub_80AAB30(struct Sprite *sprite, s8 var2)
{
- u8 val = sprite->data2;
+ u8 val = sprite->data[2];
- gContestMons[sprite->data2].moves[1] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[1], var2);
- sub_80AA4F0(sprite->data2, 1);
+ gContestMons[sprite->data[2]].moves[1] = sub_80AAAC8(val, gContestMons[sprite->data[2]].moves[1], var2);
+ sub_80AA4F0(sprite->data[2], 1);
}
-void sub_80AAB70(struct Sprite *sprite, u8 var2)
+void sub_80AAB70(struct Sprite *sprite, s8 var2)
{
- u8 val = sprite->data2;
+ u8 val = sprite->data[2];
- gContestMons[sprite->data2].moves[2] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[2], var2);
- sub_80AA4F0(sprite->data2, 2);
+ gContestMons[sprite->data[2]].moves[2] = sub_80AAAC8(val, gContestMons[sprite->data[2]].moves[2], var2);
+ sub_80AA4F0(sprite->data[2], 2);
}
-void sub_80AABB0(struct Sprite *sprite, u8 var2)
+void sub_80AABB0(struct Sprite *sprite, s8 var2)
{
- u8 val = sprite->data2;
+ u8 val = sprite->data[2];
- gContestMons[sprite->data2].moves[3] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[3], var2);
- sub_80AA4F0(sprite->data2, 3);
+ gContestMons[sprite->data[2]].moves[3] = sub_80AAAC8(val, gContestMons[sprite->data[2]].moves[3], var2);
+ sub_80AA4F0(sprite->data[2], 3);
}
void sub_80AABF0(struct Sprite *sprite, s8 var2)
{
s8 a = (var2 > 0) ? 1 : -1;
- s8 r4 = sprite->data3 + a;
+ s8 r4 = sprite->data[3] + a;
if (r4 < 0)
r4 = 0;
else if (r4 > 4)
r4 = 4;
sub_80AA5BC(r4);
- sprite->data3 = r4;
- gScriptContestCategory = sprite->data3;
- sub_80AE398(sprite->data3, gScriptContestRank);
- sub_80AA280(sprite->data2);
- sub_80AA658(sprite->data2);
+ sprite->data[3] = r4;
+ gSpecialVar_ContestCategory = sprite->data[3];
+ sub_80AE398(sprite->data[3], gSpecialVar_ContestRank);
+ sub_80AA280(sprite->data[2]);
+ sub_80AA658(sprite->data[2]);
}
void sub_80AAC5C(struct Sprite *sprite, s8 var2)
{
if (var2 > 0)
- gScriptContestRank++;
- else if (gScriptContestRank != 0)
- gScriptContestRank--;
- if (gScriptContestRank > 3)
- gScriptContestRank = 3;
- sub_80AA5E8(gScriptContestRank);
- sub_80AE398(gScriptContestCategory, gScriptContestRank);
- sub_80AA280(sprite->data2);
- sub_80AA658(sprite->data2);
+ gSpecialVar_ContestRank++;
+ else if (gSpecialVar_ContestRank != 0)
+ gSpecialVar_ContestRank--;
+ if (gSpecialVar_ContestRank > 3)
+ gSpecialVar_ContestRank = 3;
+ sub_80AA5E8(gSpecialVar_ContestRank);
+ sub_80AE398(gSpecialVar_ContestCategory, gSpecialVar_ContestRank);
+ sub_80AA280(sprite->data[2]);
+ sub_80AA658(sprite->data[2]);
}
void sub_80AACC4(void)
@@ -739,7 +900,7 @@ void sub_80AACC4(void)
{
SetDebugMonForContest();
if (!(gIsLinkContest & 1))
- sub_80AE82C(unk_2000000[0]);
+ sub_80AE82C(eMatsudaDebugVar);
SetMainCallback2(sub_80AB47C);
}
}
@@ -748,7 +909,7 @@ void sub_80AAD08(struct Sprite *sprite, s8 var2)
{
if (var2 == 1)
{
- unk_2000000[0] = sprite->data3;
+ eMatsudaDebugVar = sprite->data[3];
SetMainCallback2(sub_80AACC4);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
}
@@ -762,7 +923,7 @@ void sub_80AAD44(struct Sprite *sprite, s8 var2)
SetDebugMonForContest();
for (i = 0; i < 4; i++)
- gUnknown_02038670[i] = sub_80AE770(i, gScriptContestCategory);
+ gUnknown_02038670[i] = sub_80AE770(i, gSpecialVar_ContestCategory);
SetMainCallback2(sub_805469C);
}
}
@@ -1013,16 +1174,14 @@ void sub_80AAF30(void)
sub_80B2A7C(0xFE);
}
-//Don't know size of return type
-int MatsudaDebugMenu_SetHighScore(void)
+u8 MatsudaDebugMenu_SetHighScore(void)
{
sub_80AAF30();
CloseMenu();
return 1;
}
-//Don't know size of return type
-int MatsudaDebugMenu_ResetHighScore(void)
+u8 MatsudaDebugMenu_ResetHighScore(void)
{
s32 i;
@@ -1037,8 +1196,7 @@ int MatsudaDebugMenu_ResetHighScore(void)
return 1;
}
-//Don't know size of return type
-int MatsudaDebugMenu_SetArtMuseumItems(void)
+u8 MatsudaDebugMenu_SetArtMuseumItems(void)
{
s32 i;
@@ -1046,7 +1204,7 @@ int MatsudaDebugMenu_SetArtMuseumItems(void)
sub_80AE098(0);
for (i = 3; i > -1; i--)
gUnknown_02038690[i] = 3 - i;
- for (gScriptContestCategory = 0; gScriptContestCategory < 5; gScriptContestCategory++)
+ for (gSpecialVar_ContestCategory = 0; gSpecialVar_ContestCategory < 5; gSpecialVar_ContestCategory++)
sub_80B2A7C(0xFF);
CloseMenu();
return 1;
diff --git a/src/debug/mori_debug_menu.c b/src/debug/mori_debug_menu.c
index 1595ecd2e..2c937bb28 100644
--- a/src/debug/mori_debug_menu.c
+++ b/src/debug/mori_debug_menu.c
@@ -16,13 +16,50 @@ extern u8 (*gCallback_03004AE8)(void);
u8 gUnknown_03004DA0[0x20];
-extern u8 gUnknown_0839B22C[][3];
-extern u8 gUnknown_0839B24A[];
-extern u8 gUnknown_0839B24D[];
-extern u8 gUnknown_0839B255[];
-extern u8 gUnknown_0839B257[];
-
-extern const struct MenuAction gMoriDebugMenuActions[];
+const u8 gUnknown_0839B22C[][3] =
+{
+ _(" A"),
+ _(" B"),
+ _("SL"),
+ _("ST"),
+ _("RK"),
+ _("LK"),
+ _("UK"),
+ _("DK"),
+ _("RT"),
+ _("LT"),
+};
+
+const u8 gUnknown_0839B24A[] = _("ND");
+const u8 gUnknown_0839B24D[] = _("の こどもは\n"); // "'s child <topic-particle>"=
+const u8 gUnknown_0839B255[] = _(" ");
+const u8 gUnknown_0839B257[] = _("ながいなまえぽけもん"); // "long name pokemon" (used as test name)
+const u8 Text_39B262[] = _("Search a child");
+const u8 Text_39B271[] = _("Egg");
+const u8 Text_39B275[] = _("Egg (male)");
+const u8 Text_39B280[] = _("1000 steps");
+const u8 Text_39B28B[] = _("10000 steps");
+const u8 Text_39B297[] = _("MOVE TUTOR");
+const u8 Text_39B2A2[] = _("Breed an egg");
+const u8 Text_39B2AF[] = _("Long name");
+#ifdef GERMAN
+const u8 Text_39B2B9[] = _("Delete {POKEBLOCK}");
+#else
+const u8 Text_39B2B9[] = _("ポロックけす");
+#endif
+
+const struct MenuAction gMoriDebugMenuActions[] =
+{
+ {Text_39B262, (u8 (*) (void))MoriDebugMenu_SearchChild}, // ugly cast needed to stop complaints of u8 (*func)() not being compatible with this declaration (TODO: Make MenuAction a Callback union to allow a new definition.)
+ {Text_39B271, MoriDebugMenu_Egg},
+ {Text_39B275, MoriDebugMenu_MaleEgg},
+ {Text_39B280, MoriDebugMenu_1000Steps},
+ {Text_39B28B, MoriDebugMenu_10000Steps},
+ {Text_39B297, MoriDebugMenu_MoveTutor},
+ {Text_39B2A2, MoriDebugMenu_BreedEgg},
+ {Text_39B2AF, MoriDebugMenu_LongName},
+ {Text_39B2B9, MoriDebugMenu_PokeblockCase},
+};
void unref_sub_8083CF0(void)
{
@@ -50,13 +87,13 @@ u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr)
{
u8 localPtr[52];
u16 monData;
- u16 var;
+ u16 eggSpecies;
monData = GetMonData(gPlayerParty, MON_DATA_SPECIES, ptr);
- var = sub_8041870(monData);
+ eggSpecies = GetEggSpecies(monData);
StringCopy(localPtr, gSpeciesNames[monData]);
StringAppend(localPtr, gUnknown_0839B24D);
- StringAppend(localPtr, gSpeciesNames[var]);
+ StringAppend(localPtr, gSpeciesNames[eggSpecies]);
StringAppend(localPtr, gUnknown_0839B255);
MenuZeroFillScreen();
MenuDrawTextWindow(0, 14, 30, 19);
@@ -65,46 +102,46 @@ u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr)
return 0;
}
-s8 MoriDebugMenu_Egg(void)
+u8 MoriDebugMenu_Egg(void)
{
- if ( Daycare_CountPokemon(&gSaveBlock1.daycareData) == 2 && daycare_relationship_score_from_savegame() )
- sub_8041940();
+ if (CountPokemonInDaycare(&gSaveBlock1.daycare) == 2 && GetDaycareCompatibilityScoreFromSave() )
+ TriggerPendingDaycareEgg();
CloseMenu();
return 1;
}
-s8 MoriDebugMenu_MaleEgg(void)
+u8 MoriDebugMenu_MaleEgg(void)
{
- if ( Daycare_CountPokemon(&gSaveBlock1.daycareData) == 2 && daycare_relationship_score_from_savegame() )
- sub_8041950();
+ if (CountPokemonInDaycare(&gSaveBlock1.daycare) == 2 && GetDaycareCompatibilityScoreFromSave() )
+ TriggerPendingDaycareMaleEgg();
CloseMenu();
return 1;
}
-s8 MoriDebugMenu_1000Steps(void)
+u8 MoriDebugMenu_1000Steps(void)
{
- sub_8041790(1000);
+ Debug_AddDaycareSteps(1000);
CloseMenu();
return 1;
}
-s8 MoriDebugMenu_10000Steps(void)
+u8 MoriDebugMenu_10000Steps(void)
{
- sub_8041790(10000);
+ Debug_AddDaycareSteps(10000);
CloseMenu();
return 1;
}
-s8 MoriDebugMenu_MoveTutor(void)
+u8 MoriDebugMenu_MoveTutor(void)
{
sub_8132670();
CloseMenu();
return 1;
}
-s8 MoriDebugMenu_BreedEgg(void)
+u8 MoriDebugMenu_BreedEgg(void)
{
u8 loopCounter;
@@ -117,19 +154,19 @@ s8 MoriDebugMenu_BreedEgg(void)
SetMonData(&gPlayerParty[loopCounter], MON_DATA_FRIENDSHIP, &friendship);
}
}
- gSaveBlock1.daycareData.misc.countersEtc.unk_11a = -3;
+ gSaveBlock1.daycare.misc.countersEtc.eggCycleStepsRemaining = -3;
CloseMenu();
return 1;
}
-s8 MoriDebugMenu_LongName(void)
+u8 MoriDebugMenu_LongName(void)
{
SetMonData(gPlayerParty, MON_DATA_NICKNAME, gUnknown_0839B257);
CloseMenu();
return 1;
}
-s8 MoriDebugMenu_PokeblockCase(void)
+u8 MoriDebugMenu_PokeblockCase(void)
{
s32 loopCounter;
diff --git a/src/debug/sound_check_menu.c b/src/debug/sound_check_menu.c
index 14261b75e..968b047d9 100644
--- a/src/debug/sound_check_menu.c
+++ b/src/debug/sound_check_menu.c
@@ -6,7 +6,7 @@
#include "main.h"
#include "text.h"
#include "menu.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "title_screen.h"
#include "sound.h"
#include "pokedex_cry_screen.h"
diff --git a/src/debug/unknown_debug_menu.c b/src/debug/unknown_debug_menu.c
index a81625f2a..429f43766 100644
--- a/src/debug/unknown_debug_menu.c
+++ b/src/debug/unknown_debug_menu.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "battle_tower.h"
#include "menu.h"
extern u8 gBattleCommunication[];
@@ -41,12 +42,12 @@ static u8 sub_814A464(void)
u8 sub_814A4B8(void)
{
- gSaveBlock2.filler_A8.var_4AE[0] = 3;
- gSaveBlock2.filler_A8.var_4AE[1] = 3;
- gSaveBlock2.filler_A8.var_4B4 = gBattleCommunication[0] + 1;
- gSaveBlock2.filler_A8.var_4B6 = gBattleCommunication[0] + 1;
- gSaveBlock2.filler_A8.var_4B0 = 1;
- gSaveBlock2.filler_A8.var_4B2 = 1;
+ gSaveBlock2.battleTower.var_4AE[0] = 3;
+ gSaveBlock2.battleTower.var_4AE[1] = 3;
+ gSaveBlock2.battleTower.curStreakChallengesNum[0] = gBattleCommunication[0] + 1;
+ gSaveBlock2.battleTower.curStreakChallengesNum[1] = gBattleCommunication[0] + 1;
+ gSaveBlock2.battleTower.curChallengeBattleNum[0] = 1;
+ gSaveBlock2.battleTower.curChallengeBattleNum[1] = 1;
CloseMenu();
return 1;
}
diff --git a/src/engine/cable_club.c b/src/engine/cable_club.c
index c61a1d01c..3187de7ed 100644
--- a/src/engine/cable_club.c
+++ b/src/engine/cable_club.c
@@ -14,7 +14,7 @@
#include "overworld.h"
#include "script.h"
#include "script_pokemon_80C4.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "start_menu.h"
#include "string_util.h"
@@ -23,7 +23,7 @@
#include "text.h"
#include "trainer_card.h"
-extern u16 gScriptResult;
+extern u16 gSpecialVar_Result;
extern struct TrainerCard gTrainerCards[4];
extern u8 gUnknown_03004860;
extern u8 gFieldLinkPlayerCount;
@@ -35,7 +35,6 @@ extern const u8 gUnknown_081A4932[];
extern const u8 gUnknown_081A4975[];
extern const u8 gUnknown_081A49B6[];
extern const u8 gUnknown_081A490C[];
-extern const u8* const gTrainerCardColorNames[];
extern struct
{
u8 field0;
@@ -76,6 +75,26 @@ extern void sub_8055574(void);
extern s32 sub_80554F8(void);
extern void sub_805465C(void);
+#ifdef GERMAN
+const u8 TrainerCardColorName_Bronze[] = _("BRONZE");
+const u8 TrainerCardColorName_Copper[] = _("KUPFER");
+const u8 TrainerCardColorName_Silver[] = _("SILBER");
+const u8 TrainerCardColorName_Gold[] = _("GOLD");
+#else
+const u8 TrainerCardColorName_Bronze[] = _("BRONZE");
+const u8 TrainerCardColorName_Copper[] = _("COPPER");
+const u8 TrainerCardColorName_Silver[] = _("SILVER");
+const u8 TrainerCardColorName_Gold[] = _("GOLD");
+#endif
+
+const u8 *const gTrainerCardColorNames[] =
+{
+ TrainerCardColorName_Bronze,
+ TrainerCardColorName_Copper,
+ TrainerCardColorName_Silver,
+ TrainerCardColorName_Gold,
+};
+
static void sub_8082CD4(u8 arg0, u8 arg1)
{
if (FindTaskIdByFunc(sub_8082F20) == 0xFF)
@@ -324,8 +343,8 @@ static void sub_8083188(u8 taskId)
}
else
{
- gScriptResult = sub_8082D9C(local1, local2);
- if (gScriptResult != 0)
+ gSpecialVar_Result = sub_8082D9C(local1, local2);
+ if (gSpecialVar_Result != 0)
gTasks[taskId].func = sub_8083288;
}
}
@@ -341,10 +360,10 @@ void sub_80831F8(u8 taskId)
|| sub_8082DF4(taskId) == TRUE)
return;
- gScriptResult = sub_8082D9C(local1, local2);
- if (gScriptResult == 0)
+ gSpecialVar_Result = sub_8082D9C(local1, local2);
+ if (gSpecialVar_Result == 0)
return;
- if (gScriptResult == 3)
+ if (gSpecialVar_Result == 3)
{
sub_800832C();
HideFieldMessageBox();
@@ -365,7 +384,7 @@ static void sub_8083288(u8 taskId)
if (sub_8082DF4(taskId) == TRUE)
return;
- if (gScriptResult == 3)
+ if (gSpecialVar_Result == 3)
{
sub_800832C();
HideFieldMessageBox();
@@ -406,7 +425,7 @@ static void sub_8083314(u8 taskId)
ResetBlockReceivedFlags();
HideFieldMessageBox();
- if (gScriptResult == 1)
+ if (gSpecialVar_Result == 1)
{
#if ENGLISH
u16 linkType;
@@ -442,7 +461,7 @@ static void sub_80833C4(u8 taskId)
static void sub_80833EC(u8 taskId)
{
- gScriptResult = 5;
+ gSpecialVar_Result = 5;
sub_8082D4C();
HideFieldMessageBox();
EnableBothScriptContexts();
@@ -451,7 +470,7 @@ static void sub_80833EC(u8 taskId)
static void sub_8083418(u8 taskId)
{
- gScriptResult = 6;
+ gSpecialVar_Result = 6;
sub_8082D4C();
HideFieldMessageBox();
EnableBothScriptContexts();
@@ -504,7 +523,7 @@ void sub_80834E4(void)
void sub_808350C(void)
{
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
gLinkType = 0x3311;
gBattleTypeFlags = 0;
sub_8082CD4(2, 4);
@@ -518,14 +537,14 @@ static void sub_808353C(u8 taskId)
switch (gTasks[taskId].data[0])
{
case 0:
- if (gScriptResult == 1)
+ if (gSpecialVar_Result == 1)
{
playerCount = GetLinkPlayerCount();
for (i = 0; i < playerCount; i++)
{
if (gLinkPlayers[i].language == LANGUAGE_JAPANESE)
{
- gScriptResult = 7;
+ gSpecialVar_Result = 7;
sub_8008480();
gTasks[taskId].data[0] = 1;
return;
diff --git a/src/engine/clear_save_data_menu.c b/src/engine/clear_save_data_menu.c
index 498562fe0..12cde22a7 100644
--- a/src/engine/clear_save_data_menu.c
+++ b/src/engine/clear_save_data_menu.c
@@ -4,7 +4,7 @@
#include "menu.h"
#include "palette.h"
#include "save.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "strings2.h"
diff --git a/src/engine/clock.c b/src/engine/clock.c
index 9635514d2..416aaa6bb 100644
--- a/src/engine/clock.c
+++ b/src/engine/clock.c
@@ -20,7 +20,7 @@ static void ReturnFromStartWallClock(void);
static void InitTimeBasedEvents(void)
{
- FlagSet(SYS_CLOCK_SET);
+ FlagSet(FLAG_SYS_CLOCK_SET);
RtcCalcLocalTime();
gSaveBlock2.lastBerryTreeUpdate = gLocalTime;
VarSet(VAR_DAYS, gLocalTime.days);
@@ -28,7 +28,7 @@ static void InitTimeBasedEvents(void)
void DoTimeBasedEvents(void)
{
- if (FlagGet(SYS_CLOCK_SET))
+ if (FlagGet(FLAG_SYS_CLOCK_SET))
{
RtcCalcLocalTime();
UpdatePerDay(&gLocalTime);
@@ -45,7 +45,7 @@ static void UpdatePerDay(struct Time *time)
if (days != time->days && days <= time->days)
{
newDays = time->days - days;
- ClearUpperFlags();
+ ClearDailyFlags();
UpdateDewfordTrendPerDay(newDays);
UpdateTVShowsPerDay(newDays);
UpdateWeatherPerDay(newDays);
@@ -61,19 +61,18 @@ static void UpdatePerDay(struct Time *time)
static void UpdatePerMinute(struct Time *time)
{
struct Time newTime;
- s32 minutes;
+ s32 minutesPassed;
CalcTimeDifference(&newTime, &gSaveBlock2.lastBerryTreeUpdate, time);
- minutes = 1440 * newTime.days + 60 * newTime.hours + newTime.minutes;
+ minutesPassed = 1440 * newTime.days + 60 * newTime.hours + newTime.minutes;
- // there's no way to get the correct assembly other than with this nested if check. so dumb.
- if (minutes != 0)
+ if (minutesPassed == 0) // do not do the update for the first minute.
+ return;
+
+ if (minutesPassed > -1) // do not perform an update on invalid minutesPassed.
{
- if (minutes >= 0)
- {
- BerryTreeTimeUpdate(minutes);
- gSaveBlock2.lastBerryTreeUpdate = *time;
- }
+ BerryTreeTimeUpdate(minutesPassed);
+ gSaveBlock2.lastBerryTreeUpdate = *time;
}
}
diff --git a/src/engine/decompress.c b/src/engine/decompress.c
index 3e5993118..69edf01aa 100644
--- a/src/engine/decompress.c
+++ b/src/engine/decompress.c
@@ -1,10 +1,11 @@
#include "global.h"
#include "decompress.h"
#include "data2.h"
-#include "species.h"
+#include "constants/species.h"
#include "text.h"
+#include "ewram.h"
-#define WRAM 0x02000000
+#define WRAM ewram_addr // using gSharedMem doesn't match
void LZDecompressWram(const void *src, void *dest)
{
diff --git a/src/engine/link.c b/src/engine/link.c
index 850201ccb..28323207c 100644
--- a/src/engine/link.c
+++ b/src/engine/link.c
@@ -7,14 +7,15 @@
#include "main.h"
#include "menu.h"
#include "palette.h"
-#include "rng.h"
+#include "random.h"
#include "save.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "strings2.h"
#include "task.h"
#include "text.h"
+#include "ewram.h"
#define SIO_MULTI_CNT ((struct SioMultiCnt *)REG_ADDR_SIOCNT)
@@ -35,8 +36,6 @@ struct LinkTestBGInfo
u32 dummy_C;
};
-extern u8 unk_2000000[];
-extern u8 unk_2004000[];
extern u16 gBattleTypeFlags;
extern u16 word_3004858;
@@ -404,7 +403,7 @@ static void LinkTestProcessKeyInput(void)
if (gMain.newKeys & A_BUTTON)
gShouldAdvanceLinkState = 1;
if (gMain.heldKeys & B_BUTTON)
- InitBlockSend(unk_2004000, 0x2004);
+ InitBlockSend(ewram4000, 0x2004);
if (gMain.newKeys & L_BUTTON)
BeginNormalPaletteFade(-1, 0, 0x10, 0, 2);
if (gMain.newKeys & START_BUTTON)
@@ -507,7 +506,7 @@ static void ProcessRecvCmds(u8 unusedParam)
case 0x8888:
if (sBlockRecv[i].size > BLOCK_BUFFER_SIZE)
{
- u16 *buffer = (u16 *)unk_2000000;
+ u16 *buffer = (u16 *)gSharedMem;
u16 j;
for (j = 0; j < CMD_LENGTH - 1; j++)
buffer[(sBlockRecv[i].pos / 2) + j] = gRecvCmds[j + 1][i];
@@ -636,7 +635,7 @@ static void BuildSendCmd(u16 code)
break;
case 0xAAAB:
gSendCmd[0] = 0xAAAB;
- gSendCmd[1] = gScriptItemId;
+ gSendCmd[1] = gSpecialVar_ItemId;
break;
case 0xCCCC:
gSendCmd[0] = 0xCCCC;
@@ -954,7 +953,7 @@ static u16 LinkTestCalcBlockChecksum(void *data, u16 size)
static void PrintHexDigit(u8 tileNum, u8 x, u8 y)
{
- u16 *tilemap = (u16 *)BG_SCREEN_ADDR(gLinkTestBGInfo.screenBaseBlock);
+ u16 *tilemap = BG_SCREEN_ADDR(gLinkTestBGInfo.screenBaseBlock);
tilemap[(32 * y) + x] = (gLinkTestBGInfo.paletteNum << 12) | (tileNum + 1);
}
diff --git a/src/engine/main.c b/src/engine/main.c
index d7c11b6c8..82a5fffb4 100644
--- a/src/engine/main.c
+++ b/src/engine/main.c
@@ -7,7 +7,7 @@
#include "load_save.h"
#include "m4a.h"
#include "play_time.h"
-#include "rng.h"
+#include "random.h"
#include "rom3.h"
#include "overworld.h"
#include "rtc.h"
@@ -70,6 +70,7 @@ bool8 gLinkVSyncDisabled;
u32 IntrMain_Buffer[0x200];
u8 gPcmDmaCounter;
+EWRAM_DATA u8 gSharedMem[0x20000] = {0};
EWRAM_DATA void (**gFlashTimerIntrFunc)(void) = NULL;
static void UpdateLinkAndCallCallbacks(void);
diff --git a/src/engine/main_menu.c b/src/engine/main_menu.c
index e0af86f3d..909b5676b 100644
--- a/src/engine/main_menu.c
+++ b/src/engine/main_menu.c
@@ -13,15 +13,16 @@
#include "overworld.h"
#include "rtc.h"
#include "save_menu_util.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "species.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 "ewram.h"
#define BirchSpeechUpdateWindowText() ((u8)MenuUpdateWindowText_OverrideLineLength(24))
@@ -29,8 +30,6 @@ extern struct PaletteFadeControl gPaletteFade;
extern u16 gSaveFileStatus;
-extern u16 gMainMenuPalette[];
-
extern const u8 gBirchSpeech_Welcome[];
extern const u8 gBirchSpeech_ThisIsPokemon[];
extern const u8 gBirchSpeech_WorldInhabitedByPokemon[];
@@ -42,20 +41,14 @@ extern u8 gBirchSpeech_AhOkayYouArePlayer[];
extern u8 gBirchSpeech_AreYouReady[];
extern struct SpriteTemplate gUnknown_02024E8C;
-extern u16 gUnknown_081E795C[];
extern const struct MenuAction gUnknown_081E79B0[];
extern const struct MenuAction gMalePresetNames[];
extern const struct MenuAction gFemalePresetNames[];
-extern const u8 gUnknown_081E764C[];
-extern const u8 gBirchIntroShadowGfx[];
extern const u8 gUnknown_081E7834[];
-extern const u8 gUnknown_081E796C[];
extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E79AC[];
-extern u8 unk_2000000[];
-
//Menu layouts
enum
{
@@ -137,6 +130,53 @@ static void CreateNameMenu(u8 left, u8 top);
static s8 NameMenuProcessInput(void);
static void SetPresetPlayerName(u8 index);
+static const u16 gUnknown_081E764C[][16] =
+{
+ INCBIN_U16("graphics/birch_speech/bg0.gbapal"),
+ INCBIN_U16("graphics/birch_speech/bg1.gbapal"),
+};
+
+static const u8 gBirchIntroShadowGfx[] = INCBIN_U8("graphics/birch_speech/shadow.4bpp.lz");
+static const u8 gUnknown_081E7834[] = INCBIN_U8("graphics/birch_speech/map.bin.lz");
+static const u16 gUnknown_081E795C[] = INCBIN_U16("graphics/birch_speech/bg2.gbapal");
+static const u16 gUnknown_081E796C[] = INCBIN_U16("graphics/birch_speech/blank_pal.gbapal");
+static const u16 gMainMenuPalette[] = INCBIN_U16("graphics/misc/main_menu.gbapal");
+
+static const union AffineAnimCmd gSpriteAffineAnim_81E799C[] =
+{
+ AFFINEANIMCMD_FRAME(0xFFFE, 0xFFFE, 0, 48),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd *const gSpriteAffineAnimTable_81E79AC[] =
+{
+ gSpriteAffineAnim_81E799C,
+};
+
+static const struct MenuAction gUnknown_081E79B0[] =
+{
+ {gBirchText_Boy, NULL},
+ {gBirchText_Girl, NULL},
+};
+
+static const struct MenuAction gMalePresetNames[] =
+{
+ {gBirchText_NewName, NULL},
+ {gDefaultBoyName1, NULL},
+ {gDefaultBoyName2, NULL},
+ {gDefaultBoyName3, NULL},
+ {gDefaultBoyName4, NULL},
+};
+
+static const struct MenuAction gFemalePresetNames[] =
+{
+ {gBirchText_NewName, NULL},
+ {gDefaultGirlName1, NULL},
+ {gDefaultGirlName2, NULL},
+ {gDefaultGirlName3, NULL},
+ {gDefaultGirlName4, NULL},
+};
+
static void CB2_MainMenu(void)
{
RunTasks();
@@ -804,7 +844,7 @@ static void Task_NewGameSpeech6(u8 taskId)
gSprites[spriteId].pos1.x = 104;
gSprites[spriteId].pos1.y = 72;
gSprites[spriteId].invisible = 0;
- gSprites[spriteId].data0 = 0;
+ gSprites[spriteId].data[0] = 0;
CreatePokeballSprite(spriteId, gSprites[spriteId].oam.paletteNum, 0x70, 0x3A, 0, 0, 0x20, 0x0000FFFF);
gTasks[taskId].func = Task_NewGameSpeech7;
gTasks[taskId].tFrameCounter = 0;
@@ -1383,9 +1423,9 @@ void nullsub_34(struct Sprite *sprite)
void ShrinkPlayerSprite(struct Sprite *sprite)
{
- u32 y = (sprite->pos1.y << 16) + sprite->data0 + 0xC000;
+ u32 y = (sprite->pos1.y << 16) + sprite->data[0] + 0xC000;
sprite->pos1.y = y >> 16;
- sprite->data0 = y;
+ sprite->data[0] = y;
}
u8 CreateAzurillSprite(u8 x, u8 y)
@@ -1419,14 +1459,14 @@ void AddBirchSpeechObjects(u8 taskId)
gTasks[taskId].tAzurillSpriteId = spriteId;
//Create Brendan sprite
- spriteId = CreateTrainerSprite(0, 120, 60, 0, unk_2000000);
+ spriteId = CreateTrainerSprite(0, 120, 60, 0, eBrendanSprite);
gSprites[spriteId].callback = nullsub_34;
gSprites[spriteId].invisible = 1;
gSprites[spriteId].oam.priority = 0;
gTasks[taskId].tBrendanSpriteId = spriteId;
//Create May sprite
- spriteId = CreateTrainerSprite(1, 120, 60, 0, unk_2000000 + 0x800);
+ spriteId = CreateTrainerSprite(1, 120, 60, 0, eMaySprite);
gSprites[spriteId].callback = nullsub_34;
gSprites[spriteId].invisible = 1;
gSprites[spriteId].oam.priority = 0;
diff --git a/src/engine/menu.c b/src/engine/menu.c
index a9c4aaa43..10988c1d7 100644
--- a/src/engine/menu.c
+++ b/src/engine/menu.c
@@ -4,7 +4,7 @@
#include "map_obj_lock.h"
#include "menu_cursor.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "strings.h"
#include "text.h"
diff --git a/src/engine/mystery_event_menu.c b/src/engine/mystery_event_menu.c
index 0e48dc177..b9c3d5ad8 100644
--- a/src/engine/mystery_event_menu.c
+++ b/src/engine/mystery_event_menu.c
@@ -6,15 +6,14 @@
#include "mystery_event_script.h"
#include "palette.h"
#include "save.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
#include "strings2.h"
#include "task.h"
#include "text.h"
-
-extern u8 unk_2000000[];
+#include "ewram.h"
static EWRAM_DATA u8 gUnknown_02039338 = 0;
@@ -287,8 +286,8 @@ static void CB2_MysteryEventMenu(void)
case 11:
if (gReceivedRemoteLinkPlayers)
break;
- unkVal = RunMysteryEventScript(unk_2000000);
- CpuFill32(0, unk_2000000, 0x7D4);
+ unkVal = RunMysteryEventScript(gSharedMem);
+ CpuFill32(0, gSharedMem, 0x7D4);
if (!GetEventLoadMessage(gStringVar4, unkVal))
TrySavingData(NORMAL_SAVE);
gMain.state++;
diff --git a/src/engine/mystery_event_script.c b/src/engine/mystery_event_script.c
index a6568f5de..12ad329da 100644
--- a/src/engine/mystery_event_script.c
+++ b/src/engine/mystery_event_script.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "berry.h"
+#include "battle_tower.h"
#include "easy_chat.h"
#include "event_data.h"
#include "mail_data.h"
@@ -8,7 +9,7 @@
#include "pokemon.h"
#include "pokemon_size_record.h"
#include "script.h"
-#include "species.h"
+#include "constants/species.h"
#include "strings.h"
#include "string_util.h"
#include "text.h"
@@ -27,7 +28,6 @@
#endif
extern void party_compaction(void);
-extern void sub_813601C(void);
extern ScrCmdFunc gMysteryEventScriptCmdTable[];
extern ScrCmdFunc gMysteryEventScriptCmdTableEnd[];
@@ -420,8 +420,8 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx)
bool8 MEScrCmd_addtrainer(struct ScriptContext *ctx)
{
u32 data = ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0];
- memcpy(gSaveBlock2.filler_A8.ereaderTrainer, (void *)data, sizeof(gSaveBlock2.filler_A8.ereaderTrainer));
- sub_813601C();
+ memcpy(&gSaveBlock2.battleTower.ereaderTrainer, (void *)data, sizeof(gSaveBlock2.battleTower.ereaderTrainer));
+ ValidateEReaderTrainer();
StringExpandPlaceholders(gStringVar4, gOtherText_NewTrainerInHoenn);
ctx->data[2] = 2;
return FALSE;
diff --git a/src/engine/naming_screen.c b/src/engine/naming_screen.c
index a20a15569..4d2545440 100644
--- a/src/engine/naming_screen.c
+++ b/src/engine/naming_screen.c
@@ -8,7 +8,7 @@
#include "menu.h"
#include "palette.h"
#include "pokemon_icon.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
@@ -17,6 +17,7 @@
#include "text.h"
#include "trig.h"
#include "util.h"
+#include "ewram.h"
#ifdef ENGLISH
#define COLUMN_COUNT 9
@@ -26,10 +27,6 @@
extern u16 gKeyRepeatStartDelay;
-extern u8 unk_2000000[];
-
-#define namingScreenData (*(struct NamingScreenData *)(unk_2000000))
-
extern u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality);
const u32 gSpriteImage_83CE094[] = INCBIN_U32("graphics/naming_screen/pc_icon/0.4bpp");
@@ -1015,8 +1012,8 @@ static void CursorInit(void)
namingScreenData.cursorSpriteId = CreateSprite(&gSpriteTemplate_83CE640, 0, 0, 0);
gSprites[namingScreenData.cursorSpriteId].oam.priority = 1;
gSprites[namingScreenData.cursorSpriteId].oam.objMode = 1;
- gSprites[namingScreenData.cursorSpriteId].data6 = 1;
- gSprites[namingScreenData.cursorSpriteId].data6 = 2;
+ gSprites[namingScreenData.cursorSpriteId].data[6] = 1;
+ gSprites[namingScreenData.cursorSpriteId].data[6] = 2;
SetCursorPos(0, 0);
}
@@ -1043,18 +1040,18 @@ static void SetCursorPos(s16 x, s16 y)
cursorSprite->pos1.x = CursorColToKeyboardCol(x) * 8 + 27;
cursorSprite->pos1.y = y * 16 + 80;
- cursorSprite->data2 = cursorSprite->data0;
- cursorSprite->data3 = cursorSprite->data1;
- cursorSprite->data0 = x;
- cursorSprite->data1 = y;
+ cursorSprite->data[2] = cursorSprite->data[0];
+ cursorSprite->data[3] = cursorSprite->data[1];
+ cursorSprite->data[0] = x;
+ cursorSprite->data[1] = y;
}
static void GetCursorPos(s16 *x, s16 *y)
{
struct Sprite *cursorSprite = &gSprites[namingScreenData.cursorSpriteId];
- *x = cursorSprite->data0;
- *y = cursorSprite->data1;
+ *x = cursorSprite->data[0];
+ *y = cursorSprite->data[1];
}
static void MoveCursorToOKButton(void)
@@ -1064,15 +1061,15 @@ static void MoveCursorToOKButton(void)
static void sub_80B6888(u8 a)
{
- gSprites[namingScreenData.cursorSpriteId].data4 &= -256;
- gSprites[namingScreenData.cursorSpriteId].data4 |= a;
+ gSprites[namingScreenData.cursorSpriteId].data[4] &= -256;
+ gSprites[namingScreenData.cursorSpriteId].data[4] |= a;
StartSpriteAnim(&gSprites[namingScreenData.cursorSpriteId], 0);
}
static void sub_80B68D8(u8 a)
{
- gSprites[namingScreenData.cursorSpriteId].data4 &= 0xFF;
- gSprites[namingScreenData.cursorSpriteId].data4 |= a << 8;
+ gSprites[namingScreenData.cursorSpriteId].data[4] &= 0xFF;
+ gSprites[namingScreenData.cursorSpriteId].data[4] |= a << 8;
}
static void sub_80B6914(void)
@@ -1102,28 +1099,28 @@ void sub_80B6998(struct Sprite *sprite)
{
if (sprite->animEnded)
StartSpriteAnim(sprite, 0);
- sprite->invisible = (sprite->data4 & 0xFF);
- if (sprite->data0 == COLUMN_COUNT - 1)
+ sprite->invisible = (sprite->data[4] & 0xFF);
+ if (sprite->data[0] == COLUMN_COUNT - 1)
sprite->invisible = TRUE;
- if (sprite->invisible || (sprite->data4 & 0xFF00) == 0
- || sprite->data0 != sprite->data2 || sprite->data1 != sprite->data3)
+ if (sprite->invisible || (sprite->data[4] & 0xFF00) == 0
+ || sprite->data[0] != sprite->data[2] || sprite->data[1] != sprite->data[3])
{
- sprite->data5 = 0;
- sprite->data6 = 1;
- sprite->data7 = 2;
+ sprite->data[5] = 0;
+ sprite->data[6] = 1;
+ sprite->data[7] = 2;
}
- sprite->data7--;
- if (sprite->data7 == 0)
+ sprite->data[7]--;
+ if (sprite->data[7] == 0)
{
- sprite->data5 += sprite->data6;
- if (sprite->data5 == 16 || sprite->data5 == 0)
- sprite->data6 = -sprite->data6;
- sprite->data7 = 2;
+ sprite->data[5] += sprite->data[6];
+ if (sprite->data[5] == 16 || sprite->data[5] == 0)
+ sprite->data[6] = -sprite->data[6];
+ sprite->data[7] = 2;
}
- if ((sprite->data4 & 0xFF00) != 0)
+ if ((sprite->data[4] & 0xFF00) != 0)
{
- s8 gb = sprite->data5;
- s8 r = sprite->data5 >> 1;
+ s8 gb = sprite->data[5];
+ s8 r = sprite->data[5] >> 1;
u16 index = IndexOfSpritePaletteTag(5) * 16 + 0x0101;
MultiplyInvertedPaletteRGBComponents(index, r, gb, gb);
@@ -1141,20 +1138,20 @@ static void sub_80B6A80(void)
SetSubspriteTables(&gSprites[spriteId1], gSubspriteTables_83CE558);
spriteId2 = CreateSprite(&gSpriteTemplate_83CE5F8, 0xCC, 0x4C, 1);
- gSprites[spriteId1].data6 = spriteId2;
+ gSprites[spriteId1].data[6] = spriteId2;
SetSubspriteTables(&gSprites[spriteId2], gSubspriteTables_83CE560);
spriteId3 = CreateSprite(&gSpriteTemplate_83CE5E0, 0xCC, 0x4B, 2);
gSprites[spriteId3].oam.priority = 1;
- gSprites[spriteId1].data7 = spriteId3;
+ gSprites[spriteId1].data[7] = spriteId3;
}
static void sub_80B6B14(void)
{
struct Sprite *sprite = &gSprites[namingScreenData.unk10];
- sprite->data0 = 2;
- sprite->data1 = namingScreenData.currentPage;
+ sprite->data[0] = 2;
+ sprite->data[1] = namingScreenData.currentPage;
}
static u8 sub_80B6B5C(struct Sprite *);
@@ -1172,17 +1169,17 @@ static u8 (*const gUnknown_083CE2B4[])(struct Sprite *) =
void sub_80B6B34(struct Sprite *sprite)
{
- while (gUnknown_083CE2B4[sprite->data0](sprite) != 0)
+ while (gUnknown_083CE2B4[sprite->data[0]](sprite) != 0)
;
}
static u8 sub_80B6B5C(struct Sprite *sprite)
{
- struct Sprite *sprite1 = &gSprites[sprite->data6];
- struct Sprite *sprite2 = &gSprites[sprite->data7];
+ struct Sprite *sprite1 = &gSprites[sprite->data[6]];
+ struct Sprite *sprite2 = &gSprites[sprite->data[7]];
sub_80B6C48(namingScreenData.currentPage, sprite1, sprite2);
- sprite->data0++;
+ sprite->data[0]++;
return 0;
}
@@ -1193,30 +1190,30 @@ static u8 sub_80B6B98(struct Sprite *sprite)
static u8 sub_80B6B9C(struct Sprite *sprite)
{
- struct Sprite *r4 = &gSprites[sprite->data6];
- struct Sprite *r5 = &gSprites[sprite->data7];
+ struct Sprite *r4 = &gSprites[sprite->data[6]];
+ struct Sprite *r5 = &gSprites[sprite->data[7]];
r4->pos2.y++;
if (r4->pos2.y > 7)
{
- sprite->data0++;
+ sprite->data[0]++;
r4->pos2.y = -4;
r4->invisible = TRUE;
- sub_80B6C48(((u8)sprite->data1 + 1) % 3, r4, r5);
+ sub_80B6C48(((u8)sprite->data[1] + 1) % 3, r4, r5);
}
return 0;
}
static u8 sub_80B6C08(struct Sprite *sprite)
{
- struct Sprite *r2 = &gSprites[sprite->data6];
+ struct Sprite *r2 = &gSprites[sprite->data[6]];
r2->invisible = FALSE;
r2->pos2.y++;
if (r2->pos2.y >= 0)
{
r2->pos2.y = 0;
- sprite->data0 = 1;
+ sprite->data[0] = 1;
}
return 0;
}
@@ -1258,7 +1255,7 @@ static void sub_80B6D04(void)
{
spriteId = CreateSprite(&gSpriteTemplate_83CE670, r1, 0x2C, 0);
gSprites[spriteId].oam.priority = 3;
- gSprites[spriteId].data0 = i;
+ gSprites[spriteId].data[0] = i;
}
}
@@ -1266,12 +1263,12 @@ void sub_80B6D9C(struct Sprite *sprite)
{
const s16 arr[] = {0, -4, -2, -1};
- if (sprite->data0 == 0 || --sprite->data0 == 0)
+ if (sprite->data[0] == 0 || --sprite->data[0] == 0)
{
- sprite->data0 = 8;
- sprite->data1 = (sprite->data1 + 1) & 3;
+ sprite->data[0] = 8;
+ sprite->data[1] = (sprite->data[1] + 1) & 3;
}
- sprite->pos2.x = arr[sprite->data1];
+ sprite->pos2.x = arr[sprite->data[1]];
}
void sub_80B6DE8(struct Sprite *sprite)
@@ -1280,20 +1277,20 @@ void sub_80B6DE8(struct Sprite *sprite)
u8 var;
var = GetTextCaretPosition();
- if (var != (u8)sprite->data0)
+ if (var != (u8)sprite->data[0])
{
sprite->pos2.y = 0;
- sprite->data1 = 0;
- sprite->data2 = 0;
+ sprite->data[1] = 0;
+ sprite->data[2] = 0;
}
else
{
- sprite->pos2.y = arr[sprite->data1];
- sprite->data2++;
- if (sprite->data2 > 8)
+ sprite->pos2.y = arr[sprite->data[1]];
+ sprite->data[2]++;
+ if (sprite->data[2] > 8)
{
- sprite->data1 = (sprite->data1 + 1) & 3;
- sprite->data2 = 0;
+ sprite->data[1] = (sprite->data[1] + 1) & 3;
+ sprite->data[2] = 0;
}
}
}
diff --git a/src/engine/rng.c b/src/engine/random.c
index 7d4b5600e..8f82b722f 100644
--- a/src/engine/rng.c
+++ b/src/engine/random.c
@@ -1,5 +1,5 @@
#include "global.h"
-#include "rng.h"
+#include "random.h"
// The number 1103515245 comes from the example implementation of rand and srand
// in the ISO C standard.
diff --git a/src/engine/record_mixing.c b/src/engine/record_mixing.c
index 8dff432c1..6cb1e54b2 100644
--- a/src/engine/record_mixing.c
+++ b/src/engine/record_mixing.c
@@ -5,29 +5,26 @@
#include "daycare.h"
#include "dewford_trend.h"
#include "event_data.h"
-#include "fldeff_80C5CD4.h"
+#include "fldeff_recordmixing.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "load_save.h"
#include "link.h"
#include "mauville_man.h"
#include "menu.h"
#include "mystery_event_script.h"
-#include "rng.h"
+#include "random.h"
#include "overworld.h"
#include "save.h"
#include "script.h"
#include "secret_base.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "string_util.h"
#include "strings2.h"
#include "task.h"
#include "tv.h"
-
-extern u8 ewram[];
-#define unk_2018000 (*(struct PlayerRecords *)(ewram + 0x18000))
-#define unk_2008000 (*(struct PlayerRecords *)(ewram + 0x08000))
+#include "ewram.h"
extern struct RecordMixingDayCareMail gUnknown_02038738;
extern u16 gSpecialVar_0x8005;
@@ -43,7 +40,7 @@ void *gUnknown_083D0274 = &gSaveBlock1.unknown_2ABC;
void *gUnknown_083D0278 = &gSaveBlock1.mauvilleMan;
void *recordMixingEasyChatPairs = &gSaveBlock1.easyChatPairs;
struct RecordMixingDayCareMail *gUnknown_083D0280 = &gUnknown_02038738;
-void *gUnknown_083D0284 = &gSaveBlock2.filler_A8;
+void *gBattleTowerPlayerRecord = &gSaveBlock2.battleTower.playerRecord;
#define BUFFER_CHUNK_SIZE 200
@@ -60,7 +57,7 @@ struct PlayerRecords
u8 filler1044[0x40];
struct EasyChatPair easyChatPairs[5];
struct RecordMixingDayCareMail filler10AC;
- u8 filler1124[0xA4];
+ struct BattleTowerRecord battleTowerRecord;
u16 filler11C8[0x34];
};
@@ -69,31 +66,31 @@ void RecordMixing_PrepareExchangePacket(void)
sub_80BC300();
sub_80C045C();
- memcpy(unk_2018000.secretBases, recordMixingSecretBases, sizeof(unk_2018000.secretBases));
- memcpy(unk_2018000.tvShows, recordMixingTvShows, sizeof(unk_2018000.tvShows));
- memcpy(unk_2018000.filler1004, gUnknown_083D0274, sizeof(unk_2008000.filler1004));
- memcpy(unk_2018000.filler1044, gUnknown_083D0278, sizeof(unk_2008000.filler1044));
- memcpy(unk_2018000.easyChatPairs, recordMixingEasyChatPairs, sizeof(unk_2018000.easyChatPairs));
- gUnknown_02038738.mail[0] = gSaveBlock1.daycareData.misc.mail[0];
- gUnknown_02038738.mail[1] = gSaveBlock1.daycareData.misc.mail[1];
- sub_8041324(gSaveBlock1.daycareData.mons, &gUnknown_02038738);
- memcpy(&unk_2018000.filler10AC, gUnknown_083D0280, sizeof(struct RecordMixingDayCareMail));
- memcpy(unk_2018000.filler1124, gUnknown_083D0284, sizeof(unk_2018000.filler1124));
+ memcpy(ewram_2018000.secretBases, recordMixingSecretBases, sizeof(ewram_2018000.secretBases));
+ memcpy(ewram_2018000.tvShows, recordMixingTvShows, sizeof(ewram_2018000.tvShows));
+ memcpy(ewram_2018000.filler1004, gUnknown_083D0274, sizeof(ewram_2008000.filler1004));
+ memcpy(ewram_2018000.filler1044, gUnknown_083D0278, sizeof(ewram_2008000.filler1044));
+ memcpy(ewram_2018000.easyChatPairs, recordMixingEasyChatPairs, sizeof(ewram_2018000.easyChatPairs));
+ gUnknown_02038738.mail[0] = gSaveBlock1.daycare.misc.mail[0];
+ gUnknown_02038738.mail[1] = gSaveBlock1.daycare.misc.mail[1];
+ InitDaycareMailRecordMixing(gSaveBlock1.daycare.mons, &gUnknown_02038738);
+ memcpy(&ewram_2018000.filler10AC, gUnknown_083D0280, sizeof(struct RecordMixingDayCareMail));
+ memcpy(&ewram_2018000.battleTowerRecord, gBattleTowerPlayerRecord, sizeof(struct BattleTowerRecord));
if (GetMultiplayerId() == 0)
- unk_2018000.filler11C8[0] = GetRecordMixingGift();
+ ewram_2018000.filler11C8[0] = GetRecordMixingGift();
}
void RecordMixing_ReceiveExchangePacket(u32 a)
{
- sub_80BD674(unk_2008000.secretBases, sizeof(struct PlayerRecords), a);
- sub_80BFD44((u8 *)unk_2008000.tvShows, sizeof(struct PlayerRecords), a);
- sub_80C0514(unk_2008000.filler1004, sizeof(struct PlayerRecords), a);
- sub_80B9B1C(unk_2008000.filler1044, sizeof(struct PlayerRecords), a);
- sub_80FA4E4(unk_2008000.easyChatPairs, sizeof(struct PlayerRecords), a);
- sub_80B9C6C((u8 *)&unk_2008000.filler10AC, sizeof(struct PlayerRecords), a, unk_2008000.tvShows);
- sub_80B9B70(unk_2008000.filler1124, sizeof(struct PlayerRecords), a);
- sub_80B9F3C(unk_2008000.filler11C8, a);
+ sub_80BD674(ewram_2008000.secretBases, sizeof(struct PlayerRecords), a);
+ sub_80BFD44((u8 *)ewram_2008000.tvShows, sizeof(struct PlayerRecords), a);
+ sub_80C0514(ewram_2008000.filler1004, sizeof(struct PlayerRecords), a);
+ sub_80B9B1C(ewram_2008000.filler1044, sizeof(struct PlayerRecords), a);
+ sub_80FA4E4(ewram_2008000.easyChatPairs, sizeof(struct PlayerRecords), a);
+ sub_80B9C6C((u8 *)&ewram_2008000.filler10AC, sizeof(struct PlayerRecords), a, ewram_2008000.tvShows);
+ sub_80B9B70(&ewram_2008000.battleTowerRecord, sizeof(struct PlayerRecords), a);
+ sub_80B9F3C(ewram_2008000.filler11C8, a);
}
#define tCounter data[0]
@@ -134,7 +131,7 @@ void Task_RecordMixing_Main(u8 taskId)
if (!gTasks[data[10]].isActive)
{
tState = 2;
- FlagSet(SYS_MIX_RECORD);
+ FlagSet(FLAG_SYS_MIX_RECORD);
DestroyRecordMixingSprite();
DestroyTask(tSndEffTaskId);
}
@@ -250,11 +247,11 @@ void sub_80B95F0(u8 taskId)
task->tState = 0;
task->data[5] = GetMultiplayerId_();
task->func = Task_RecordMixing_SendPacket;
- StorePtrInTaskData(&unk_2018000, &task->data[2]);
+ StorePtrInTaskData(&ewram_2018000, &task->data[2]);
subTaskId = CreateTask(Task_RecordMixing_CopyReceiveBuffer, 0x50);
task->data[10] = subTaskId;
gTasks[subTaskId].data[0] = taskId;
- StorePtrInTaskData((u8 *)&unk_2008000, &gTasks[subTaskId].data[5]);
+ StorePtrInTaskData((u8 *)&ewram_2008000, &gTasks[subTaskId].data[5]);
}
break;
case 5: // wait 60 frames
@@ -447,11 +444,11 @@ void sub_80B9B1C(u8 *a, size_t size, u8 index)
sub_80F7F30();
}
-void sub_80B9B70(u8 *a, size_t size, u8 index)
+void sub_80B9B70(void *battleTowerRecord, u32 size, u8 index)
{
sub_80B9A88(gUnknown_0300071C);
- memcpy(a + size * index, a + size * gUnknown_0300071C[index], 0xA4);
- sub_8134AC0(a + size * index);
+ memcpy(battleTowerRecord + size * index, battleTowerRecord + size * gUnknown_0300071C[index], sizeof(struct BattleTowerRecord));
+ sub_8134AC0(battleTowerRecord + size * index);
}
u8 sub_80B9BBC(u16 *a)
@@ -527,11 +524,11 @@ void sub_80B9C6C(u8 *a, u32 b, u8 c, void *d)
for (i = 0; i < r8; i++)
{
r6 = (struct DayCareMisc *)(a + b * i);
- if (r6->unk70 != 0)
+ if (r6->numDaycareMons != 0)
{
- for (r7 = 0; r7 < r6->unk70; r7++)
+ for (r7 = 0; r7 < r6->numDaycareMons; r7++)
{
- if (r6->unk74[r7] == 0)
+ if (r6->itemsHeld[r7] == 0)
sp1C[i][r7] = 1;
}
}
@@ -1022,7 +1019,7 @@ void sub_80B9F3C(u16 *a, u8 b)
VarSet(VAR_0x4001, *a);
StringCopy(gStringVar1, gLinkPlayers[0].name);
if (*a == ITEM_EON_TICKET)
- FlagSet(SYS_HAS_EON_TICKET);
+ FlagSet(FLAG_SYS_HAS_EON_TICKET);
}
else
{
diff --git a/src/engine/reset_rtc_screen.c b/src/engine/reset_rtc_screen.c
index d052992ad..67e146899 100644
--- a/src/engine/reset_rtc_screen.c
+++ b/src/engine/reset_rtc_screen.c
@@ -6,7 +6,7 @@
#include "rtc.h"
#include "save.h"
#include "sprite.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "string_util.h"
#include "strings.h"
@@ -27,21 +27,132 @@ struct ResetRtcStruct
extern u16 gSaveFileStatus;
-extern struct ResetRtcStruct gUnknown_08376420[];
-extern struct SpritePalette gUnknown_083764BC;
-extern struct SpriteTemplate gSpriteTemplate_83764E8;
-extern u8 gUnknown_08376500[];
-
void CB2_ResetRtcScreen(void);
void VBlankCB_ResetRtcScreen(void);
void Task_ResetRtcScreen(u8);
+static const struct ResetRtcStruct gUnknown_08376420[5] =
+{
+ {
+ .dataIndex = 3,
+ .minVal = 1,
+ .maxVal = 9999,
+ .left = 0,
+ .right = 2,
+ .unk8 = 0,
+ },
+ {
+ .dataIndex = 4,
+ .minVal = 0,
+ .maxVal = 23,
+ .left = 1,
+ .right = 3,
+ .unk8 = 0,
+ },
+ {
+ .dataIndex = 5,
+ .minVal = 0,
+ .maxVal = 59,
+ .left = 2,
+ .right = 4,
+ .unk8 = 0,
+ },
+ {
+ .dataIndex = 6,
+ .minVal = 0,
+ .maxVal = 59,
+ .left = 3,
+ .right = 5,
+ .unk8 = 0,
+ },
+ {
+ .dataIndex = 7,
+ .minVal = 0,
+ .maxVal = 0,
+ .left = 4,
+ .right = 0,
+ .unk8 = 6,
+ },
+};
+
+const struct OamData gOamData_837645C =
+{
+ .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 u8 gSpriteImage_8376464[] = INCBIN_U8("graphics/unknown_sprites/83764AC/0.4bpp");
+const u8 gSpriteImage_8376484[] = INCBIN_U8("graphics/unknown_sprites/83764AC/1.4bpp");
+
+const u16 Palette_3764A4[] = INCBIN_U16("graphics/unknown/83764A4.gbapal");
+
+const struct SpriteFrameImage gSpriteImageTable_83764AC[] =
+{
+ { gSpriteImage_8376464, 0x20 },
+ { gSpriteImage_8376484, 0x20 },
+};
+
+const struct SpritePalette gUnknown_083764BC =
+{
+ .data = Palette_3764A4,
+ .tag = 0x1000,
+};
+
+const union AnimCmd gSpriteAnim_83764C4[] =
+{
+ ANIMCMD_FRAME(0, 30),
+ ANIMCMD_JUMP(0),
+};
+
+const union AnimCmd gSpriteAnim_83764CC[] =
+{
+ ANIMCMD_FRAME(0, 158, .vFlip = TRUE),
+ ANIMCMD_JUMP(0),
+};
+
+const union AnimCmd gSpriteAnim_83764D4[] =
+{
+ ANIMCMD_FRAME(1, 30),
+ ANIMCMD_JUMP(0),
+};
+
+const union AnimCmd *const gSpriteAnimTable_83764DC[] =
+{
+ gSpriteAnim_83764C4,
+ gSpriteAnim_83764CC,
+ gSpriteAnim_83764D4,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83764E8 =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 0x1000,
+ .oam = &gOamData_837645C,
+ .anims = gSpriteAnimTable_83764DC,
+ .images = gSpriteImageTable_83764AC,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+const u8 gUnknown_08376500[] = _(" : ");
+
void SpriteCB_ResetRtcCusor0(struct Sprite *sprite)
{
- int state = gTasks[sprite->data0].data[2];
- if (state != sprite->data1)
+ int state = gTasks[sprite->data[0]].data[2];
+ if (state != sprite->data[1])
{
- sprite->data1 = state;
+ sprite->data[1] = state;
switch (state)
{
case 1:
@@ -88,10 +199,10 @@ void SpriteCB_ResetRtcCusor0(struct Sprite *sprite)
void SpriteCB_ResetRtcCusor1(struct Sprite *sprite)
{
- int state = gTasks[sprite->data0].data[2];
- if (state != sprite->data1)
+ int state = gTasks[sprite->data[0]].data[2];
+ if (state != sprite->data[1])
{
- sprite->data1 = state;
+ sprite->data[1] = state;
switch (state)
{
case 1:
@@ -140,13 +251,13 @@ void ResetRtcScreen_CreateCursor(u8 taskId)
spriteId = CreateSpriteAtEnd(&gSpriteTemplate_83764E8, 53, 68, 0);
gSprites[spriteId].callback = SpriteCB_ResetRtcCusor0;
- gSprites[spriteId].data0 = taskId;
- gSprites[spriteId].data1 = -1;
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = -1;
spriteId = CreateSpriteAtEnd(&gSpriteTemplate_83764E8, 53, 68, 0);
gSprites[spriteId].callback = SpriteCB_ResetRtcCusor1;
- gSprites[spriteId].data0 = taskId;
- gSprites[spriteId].data1 = -1;
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = -1;
}
void ResetRtcScreen_FreeCursorPalette(void)
@@ -235,7 +346,7 @@ void Task_ResetRtc_1(u8 taskId)
{
s16 *data = gTasks[taskId].data;
u8 selection = data[2];
- struct ResetRtcStruct *selectionInfo = &gUnknown_08376420[selection - 1];
+ const struct ResetRtcStruct *selectionInfo = &gUnknown_08376420[selection - 1];
if (gMain.newKeys & B_BUTTON)
{
diff --git a/src/engine/save.c b/src/engine/save.c
index eae3f4470..d5de2e408 100644
--- a/src/engine/save.c
+++ b/src/engine/save.c
@@ -5,14 +5,13 @@
#include "load_save.h"
#include "overworld.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.
-extern struct SaveSection unk_2000000; // slow save RAM
-
u16 gLastWrittenSector;
u32 gLastSaveCounter;
u16 gLastKnownGoodSector;
@@ -24,7 +23,6 @@ u16 gSaveFileStatus;
u32 gGameContinueCallback;
extern struct PokemonStorage gPokemonStorage;
-extern struct HallOfFame gHallOfFame;
static EWRAM_DATA u32 gLastSaveSectorStatus = 0; // used but in an unferenced function, so unused
@@ -48,8 +46,8 @@ const struct SaveSectionLocation gSaveSectionLocations[] =
const struct SaveSectionLocation gHallOfFameSaveSectionLocations[] =
{
- {((u8 *) &gHallOfFame) + GETBLOCKOFFSET(1), GETCHUNKSIZE(struct HallOfFame, 1)}, // gHallOfFame is not a proper sym, so the struct must be used.
- {((u8 *) &gHallOfFame) + GETBLOCKOFFSET(2), GETCHUNKSIZE(struct HallOfFame, 2)}
+ {((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)}
};
const u8 gFlashSectors[] = { 0x1E, 0x1F };
@@ -95,7 +93,7 @@ u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *location)
u32 retVal;
u16 i;
- gFastSaveSection = &unk_2000000;
+ gFastSaveSection = eSaveSection;
if (a1 != 0xFFFF) // for link
{
@@ -156,7 +154,7 @@ u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location)
u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size)
{
u16 i;
- struct SaveSection *section = &unk_2000000;
+ struct SaveSection *section = eSaveSection;
for (i = 0; i < sizeof(struct SaveSection); i++)
((char *)section)[i] = 0;
@@ -186,7 +184,7 @@ u8 TryWriteSector(u8 sector, u8 *data)
u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location) // location is unused
{
- gFastSaveSection = &unk_2000000;
+ gFastSaveSection = eSaveSection;
gLastKnownGoodSector = gLastWrittenSector;
gLastSaveCounter = gSaveCounter;
gLastWrittenSector++;
@@ -199,7 +197,7 @@ u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location
u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location) // only ever called once, and gSaveBlock2 is passed to this function. location is unused
{
- gFastSaveSection = &unk_2000000;
+ gFastSaveSection = eSaveSection;
gLastKnownGoodSector = gLastWrittenSector;
gLastSaveCounter = gSaveCounter;
gUnknown_03005EB4 = 0;
@@ -282,7 +280,7 @@ u8 sub_81255B8(u16 a1, const struct SaveSectionLocation *location)
for (i = 0; i < sizeof(struct UnkSaveSection); i++)
{
- if (ProgramFlashByte(sector, i, ((u8 *)gFastSaveSection)[i]))
+ if (ProgramFlashByte(sector, i, gFastSaveSection->data[i]))
{
status = 0xFF;
break;
@@ -369,7 +367,7 @@ u8 sub_81257F0(u16 a1, const struct SaveSectionLocation *location)
u8 sub_812587C(u16 a1, const struct SaveSectionLocation *location)
{
u8 retVal;
- gFastSaveSection = &unk_2000000;
+ gFastSaveSection = eSaveSection;
if (a1 != 0xFFFF)
{
retVal = 0xFF;
@@ -402,7 +400,7 @@ u8 sub_81258BC(u16 a1, const struct SaveSectionLocation *location)
{
u16 j;
for (j = 0; j < location[id].size; j++)
- ((u8 *)location[id].data)[j] = gFastSaveSection->data[j];
+ location[id].data[j] = gFastSaveSection->data[j];
}
}
@@ -537,7 +535,7 @@ u8 GetSaveValidStatus(const struct SaveSectionLocation *location)
u8 sub_8125B88(u8 a1, u8 *data, u16 size)
{
u16 i;
- struct SaveSection *section = &unk_2000000;
+ struct SaveSection *section = eSaveSection;
DoReadFlashWholeSection(a1, section);
if (section->security == UNKNOWN_CHECK_VALUE)
{
@@ -764,7 +762,7 @@ u8 unref_sub_8125FA0(void)
u8 unref_sub_8125FF0(u8 *data, u16 size)
{
u16 i;
- struct UnkSaveSection *section = (struct UnkSaveSection *)&unk_2000000;
+ struct UnkSaveSection *section = (struct UnkSaveSection *)eSaveSection;
for (i = 0; i < sizeof(struct SaveSection); i++)
((char *)section)[i] = 0;
@@ -774,7 +772,7 @@ u8 unref_sub_8125FF0(u8 *data, u16 size)
for (i = 0; i < size; i++)
section->data[i] = data[i];
- gLastSaveSectorStatus = ProgramFlashSectorAndVerifyNBytes(gFlashSectors[0], (u8 *)section, sizeof(struct SaveSection));
+ gLastSaveSectorStatus = ProgramFlashSectorAndVerifyNBytes(gFlashSectors[0], section, sizeof(struct SaveSection));
if (gLastSaveSectorStatus)
return 0xFF;
diff --git a/src/engine/save_failed_screen.c b/src/engine/save_failed_screen.c
index b91e8b5bf..ba2d46546 100644
--- a/src/engine/save_failed_screen.c
+++ b/src/engine/save_failed_screen.c
@@ -11,6 +11,7 @@
#include "strings.h"
#include "task.h"
#include "text.h"
+#include "ewram.h"
// In English 1.0, the text window is too small, causing text to overflow.
@@ -22,8 +23,6 @@
#define CLOCK_WIN_TOP (MSG_WIN_TOP - 4)
-extern u8 unk_2000000[];
-
static EWRAM_DATA u16 gSaveFailedType = 0;
static EWRAM_DATA u16 gSaveFailedClockInfo[9] = {0};
@@ -267,10 +266,10 @@ static void VBlankCB_UpdateClockGraphics(void)
static bool8 VerifySectorWipe(u16 sector)
{
- u32 *ptr = (u32 *)unk_2000000;
+ u32 *ptr = (u32 *)&gSharedMem;
u16 i;
- ReadFlash(sector, 0, (u8 *)ptr, 4096);
+ ReadFlash(sector, 0, ptr, 4096);
for (i = 0; i < 0x400; i++, ptr++)
if (*ptr)
diff --git a/src/engine/save_menu_util.c b/src/engine/save_menu_util.c
index a2d17bd36..771cb72c7 100644
--- a/src/engine/save_menu_util.c
+++ b/src/engine/save_menu_util.c
@@ -15,7 +15,7 @@ void HandleDrawSaveWindowInfo(s16 left, s16 top)
if (IsResizeSaveWindowEnabled())
width = 13;
- if (FlagGet(SYS_POKEDEX_GET))
+ if (FlagGet(FLAG_SYS_POKEDEX_GET))
{
// print info + dex information.
MenuDrawTextWindow(left, top, left + width, top + 11);
@@ -44,7 +44,7 @@ void HandleCloseSaveWindow(u16 left, u16 top)
if (IsResizeSaveWindowEnabled())
width = 13;
- if (FlagGet(SYS_POKEDEX_GET))
+ if (FlagGet(FLAG_SYS_POKEDEX_GET))
MenuZeroFillWindowRect(left, top, left + width, top + 11);
else
MenuZeroFillWindowRect(left, top, left + width, top + 9);
@@ -106,7 +106,7 @@ u8 GetBadgeCount(void)
u8 badgeCount = 0;
int badgeFlag;
- for (badgeFlag = BADGE01_GET; badgeFlag <= BADGE08_GET; badgeFlag++)
+ for (badgeFlag = FLAG_BADGE01_GET; badgeFlag <= FLAG_BADGE08_GET; badgeFlag++)
if (FlagGet(badgeFlag))
badgeCount++;
diff --git a/src/engine/sound.c b/src/engine/sound.c
index a6a61c0b5..159ad3f70 100644
--- a/src/engine/sound.c
+++ b/src/engine/sound.c
@@ -5,7 +5,7 @@
#include "m4a.h"
#include "main.h"
#include "pokemon.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "task.h"
struct Fanfare
diff --git a/src/engine/sprite.c b/src/engine/sprite.c
index 5d394502a..c1bb36917 100644
--- a/src/engine/sprite.c
+++ b/src/engine/sprite.c
@@ -26,14 +26,6 @@
#define SPRITE_TILE_IS_ALLOCATED(n) ((gSpriteTileAllocBitmap[(n) / 8] >> ((n) % 8)) & 1)
-struct OamMatrix
-{
- s16 a;
- s16 b;
- s16 c;
- s16 d;
-};
-
struct SpriteCopyRequest
{
const u8 *src;
@@ -187,14 +179,7 @@ static const struct Sprite sDummySprite =
.animPaused = 0,
.affineAnimPaused = 0,
.animLoopCounter = 0,
- .data0 = 0,
- .data1 = 0,
- .data2 = 0,
- .data3 = 0,
- .data4 = 0,
- .data5 = 0,
- .data6 = 0,
- .data7 = 0,
+ .data = {0},
.inUse = 0,
.coordOffsetEnabled = 0,
.invisible = 0,
@@ -833,13 +818,13 @@ static void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, const struct Spr
if (gSpriteCopyRequestCount < MAX_SPRITE_COPY_REQUESTS)
{
gSpriteCopyRequests[gSpriteCopyRequestCount].src = images[index].data;
- gSpriteCopyRequests[gSpriteCopyRequestCount].dest = (u8 *)OBJ_VRAM0 + TILE_SIZE_4BPP * tileNum;
+ gSpriteCopyRequests[gSpriteCopyRequestCount].dest = OBJ_VRAM0 + TILE_SIZE_4BPP * tileNum;
gSpriteCopyRequests[gSpriteCopyRequestCount].size = images[index].size;
gSpriteCopyRequestCount++;
}
}
-void RequestSpriteCopy(const u8 *src, u8 *dest, u16 size)
+void RequestSpriteCopy(const void *src, u8 *dest, u16 size)
{
if (gSpriteCopyRequestCount < MAX_SPRITE_COPY_REQUESTS)
{
@@ -850,6 +835,7 @@ void RequestSpriteCopy(const u8 *src, u8 *dest, u16 size)
}
}
+// these two functions are unused.
void CopyFromSprites(u8 *dest)
{
u32 i;
@@ -1479,7 +1465,7 @@ u16 LoadSpriteSheet(const struct SpriteSheet *sheet)
else
{
AllocSpriteTileRange(sheet->tag, (u16)tileStart, sheet->size / TILE_SIZE_4BPP);
- CpuCopy16(sheet->data, (u8 *)OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size);
+ CpuCopy16(sheet->data, OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size);
return (u16)tileStart;
}
}
@@ -1517,7 +1503,7 @@ void LoadTilesForSpriteSheet(const struct SpriteSheet *sheet)
{
const u8 *data = sheet->data;
u16 tileStart = GetSpriteTileStartByTag(sheet->tag);
- CpuCopy16(data, (u8 *)OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size);
+ CpuCopy16(data, OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size);
}
void LoadTilesForSpriteSheets(struct SpriteSheet *sheets)
@@ -1603,7 +1589,7 @@ void RequestSpriteSheetCopy(const struct SpriteSheet *sheet)
{
const u8 *data = sheet->data;
u16 tileStart = GetSpriteTileStartByTag(sheet->tag);
- RequestSpriteCopy(data, (u8 *)OBJ_VRAM0 + tileStart * TILE_SIZE_4BPP, sheet->size);
+ RequestSpriteCopy(data, OBJ_VRAM0 + tileStart * TILE_SIZE_4BPP, sheet->size);
}
u16 LoadSpriteSheetDeferred(const struct SpriteSheet *sheet)
diff --git a/src/engine/string_util.c b/src/engine/string_util.c
index 9686256a1..7316f533a 100644
--- a/src/engine/string_util.c
+++ b/src/engine/string_util.c
@@ -376,7 +376,7 @@ u8 *StringExpandPlaceholders(u8 *dest, const u8 *src)
{
u8 c = *src++;
u8 placeholderId;
- u8 *expandedString;
+ const u8 *expandedString;
u8 length;
switch (c)
@@ -432,45 +432,45 @@ u8 *StringBraille(u8 *dest, const u8 *src)
}
}
-static u8 *ExpandPlaceholder_UnknownStringVar(void)
+static const u8 *ExpandPlaceholder_UnknownStringVar(void)
{
return gUnknownStringVar;
}
-static u8 *ExpandPlaceholder_PlayerName(void)
+static const u8 *ExpandPlaceholder_PlayerName(void)
{
return gSaveBlock2.playerName;
}
-static u8 *ExpandPlaceholder_StringVar1(void)
+static const u8 *ExpandPlaceholder_StringVar1(void)
{
return gStringVar1;
}
-static u8 *ExpandPlaceholder_StringVar2(void)
+static const u8 *ExpandPlaceholder_StringVar2(void)
{
return gStringVar2;
}
-static u8 *ExpandPlaceholder_StringVar3(void)
+static const u8 *ExpandPlaceholder_StringVar3(void)
{
return gStringVar3;
}
-static u8 *ExpandPlaceholder_KunChan(void)
+static const u8 *ExpandPlaceholder_KunChan(void)
{
if (gSaveBlock2.playerGender == MALE)
- return (u8 *) gExpandedPlaceholder_Kun;
+ return gExpandedPlaceholder_Kun;
else
- return (u8 *) gExpandedPlaceholder_Chan;
+ return gExpandedPlaceholder_Chan;
}
-static u8 *ExpandPlaceholder_RivalName(void)
+static const u8 *ExpandPlaceholder_RivalName(void)
{
if (gSaveBlock2.playerGender == MALE)
- return (u8 *) gExpandedPlaceholder_May;
+ return gExpandedPlaceholder_May;
else
- return (u8 *) gExpandedPlaceholder_Brendan;
+ return gExpandedPlaceholder_Brendan;
}
#define VERSION_DEPENDENT_PLACEHOLDER_LIST \
@@ -484,19 +484,19 @@ static u8 *ExpandPlaceholder_RivalName(void)
#ifdef SAPPHIRE
#define X(ph, r, s) \
-static u8 *ExpandPlaceholder_##ph(void) { return (u8 *) gExpandedPlaceholder_##s; }
+static const u8 *ExpandPlaceholder_##ph(void) { return gExpandedPlaceholder_##s; }
VERSION_DEPENDENT_PLACEHOLDER_LIST
#else
#define X(ph, r, s) \
-static u8 *ExpandPlaceholder_##ph(void) { return (u8 *) gExpandedPlaceholder_##r; }
+static const u8 *ExpandPlaceholder_##ph(void) { return gExpandedPlaceholder_##r; }
VERSION_DEPENDENT_PLACEHOLDER_LIST
#endif
#undef X
-u8 *GetExpandedPlaceholder(u32 id)
+const u8 *GetExpandedPlaceholder(u32 id)
{
- typedef u8 *(*ExpandPlaceholderFunc)(void);
+ typedef const u8 *(*ExpandPlaceholderFunc)(void);
static const ExpandPlaceholderFunc funcs[] =
{
@@ -517,7 +517,7 @@ u8 *GetExpandedPlaceholder(u32 id)
};
if (id >= ARRAY_COUNT(funcs))
- return (u8 *) gExpandedPlaceholder_Empty;
+ return gExpandedPlaceholder_Empty;
else
return funcs[id]();
}
diff --git a/src/engine/text.c b/src/engine/text.c
index 87903608f..1b158d979 100644
--- a/src/engine/text.c
+++ b/src/engine/text.c
@@ -3,7 +3,7 @@
#include "battle.h"
#include "main.h"
#include "palette.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "string_util.h"
@@ -396,6 +396,8 @@ extern const u32 gFont4LatinGlyphs[];
extern const u32 gFont3JapaneseGlyphs[];
extern const u32 gFont4JapaneseGlyphs[];
+// Getting rid of the u8 recasting will make the ROM no longer match due to
+// a const being required to pass the elements directly to the rodata structs.
static const struct Font sFonts[] =
{
// Japanese fonts
@@ -405,15 +407,15 @@ static const struct Font sFonts[] =
{ 4, (u8 *)gFont3JapaneseGlyphs, 64, 512 },
{ 1, (u8 *)gFont4JapaneseGlyphs, 32, 0 },
{ 2, (u8 *)gFont4JapaneseGlyphs, 32, 0 },
- { 3, (u8 *)sBrailleGlyphs, 8, 0 },
+ { 3, (u8 *)sBrailleGlyphs, 8, 0 },
// Latin
- { 0, (u8 *)sFont0LatinGlyphs, 16, 8 },
- { 1, (u8 *)sFont1LatinGlyphs, 8, 0 },
- { 2, (u8 *)sFont1LatinGlyphs, 8, 0 },
- { 0, (u8 *)gFont3LatinGlyphs, 64, 32 },
- { 1, (u8 *)gFont4LatinGlyphs, 32, 0 },
- { 2, (u8 *)gFont4LatinGlyphs, 32, 0 },
- { 3, (u8 *)sBrailleGlyphs, 8, 0 },
+ { 0, (u8 *)sFont0LatinGlyphs, 16, 8 },
+ { 1, (u8 *)sFont1LatinGlyphs, 8, 0 },
+ { 2, (u8 *)sFont1LatinGlyphs, 8, 0 },
+ { 0, (u8 *)gFont3LatinGlyphs, 64, 32 },
+ { 1, (u8 *)gFont4LatinGlyphs, 32, 0 },
+ { 2, (u8 *)gFont4LatinGlyphs, 32, 0 },
+ { 3, (u8 *)sBrailleGlyphs, 8, 0 },
};
static const u8 sTextSpeedDelays[] = { 6, 3, 1 }; // slow, mid, fast
@@ -492,8 +494,8 @@ const struct WindowConfig gWindowConfig_81E6C3C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6C58 =
@@ -513,8 +515,8 @@ const struct WindowConfig gWindowConfig_81E6C58 =
0, // tilemap top coordinate
26, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(24), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(24), // tilemap
};
const struct WindowConfig gWindowConfig_81E6C74 =
@@ -534,7 +536,7 @@ const struct WindowConfig gWindowConfig_81E6C74 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)OBJ_VRAM0, // tile data
+ OBJ_VRAM0, // tile data
NULL, // tilemap
};
@@ -555,8 +557,8 @@ const struct WindowConfig gWindowConfig_81E6C90 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(1), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(1), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E6CAC =
@@ -597,8 +599,8 @@ const struct WindowConfig gWindowConfig_81E6CC8 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(15), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(15), // tilemap
};
const struct WindowConfig gWindowConfig_81E6CE4 =
@@ -618,8 +620,8 @@ const struct WindowConfig gWindowConfig_81E6CE4 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6D00 =
@@ -639,8 +641,8 @@ const struct WindowConfig gWindowConfig_81E6D00 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6D1C =
@@ -660,8 +662,8 @@ const struct WindowConfig gWindowConfig_81E6D1C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6D38 =
@@ -702,8 +704,8 @@ const struct WindowConfig gWindowConfig_81E6D54 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(3), // tile data
- (u16 *)BG_SCREEN_ADDR(15), // tilemap
+ BG_CHAR_ADDR(3), // tile data
+ BG_SCREEN_ADDR(15), // tilemap
};
const struct WindowConfig gWindowConfig_81E6D70 =
@@ -723,8 +725,8 @@ const struct WindowConfig gWindowConfig_81E6D70 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(3), // tile data
- (u16 *)BG_SCREEN_ADDR(15), // tilemap
+ BG_CHAR_ADDR(3), // tile data
+ BG_SCREEN_ADDR(15), // tilemap
};
const struct WindowConfig gWindowConfig_81E6D8C =
@@ -744,8 +746,8 @@ const struct WindowConfig gWindowConfig_81E6D8C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(14), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(14), // tilemap
};
const struct WindowConfig gWindowConfig_81E6DA8 =
@@ -765,8 +767,8 @@ const struct WindowConfig gWindowConfig_81E6DA8 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(11), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(11), // tilemap
};
const struct WindowConfig WindowConfig_TrainerCard_Back_Values =
@@ -786,8 +788,8 @@ const struct WindowConfig WindowConfig_TrainerCard_Back_Values =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig WindowConfig_TrainerCard_Back_Labels =
@@ -807,8 +809,8 @@ const struct WindowConfig WindowConfig_TrainerCard_Back_Labels =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E6DFC =
@@ -828,8 +830,8 @@ const struct WindowConfig gWindowConfig_81E6DFC =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6E18 =
@@ -849,8 +851,8 @@ const struct WindowConfig gWindowConfig_81E6E18 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6E34 =
@@ -870,8 +872,8 @@ const struct WindowConfig gWindowConfig_81E6E34 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6E50 =
@@ -891,8 +893,8 @@ const struct WindowConfig gWindowConfig_81E6E50 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(28), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(28), // tilemap
};
const struct WindowConfig gWindowConfig_81E6E6C =
@@ -912,8 +914,8 @@ const struct WindowConfig gWindowConfig_81E6E6C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E6E88 =
@@ -933,8 +935,8 @@ const struct WindowConfig gWindowConfig_81E6E88 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6EA4 =
@@ -954,8 +956,8 @@ const struct WindowConfig gWindowConfig_81E6EA4 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(28), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(28), // tilemap
};
const struct WindowConfig gWindowConfig_81E6EC0 =
@@ -975,8 +977,8 @@ const struct WindowConfig gWindowConfig_81E6EC0 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(29), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(29), // tilemap
};
const struct WindowConfig gWindowConfig_81E6EDC =
@@ -996,8 +998,8 @@ const struct WindowConfig gWindowConfig_81E6EDC =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(28), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(28), // tilemap
};
const struct WindowConfig gWindowConfig_81E6EF8 =
@@ -1017,8 +1019,8 @@ const struct WindowConfig gWindowConfig_81E6EF8 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(29), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(29), // tilemap
};
const struct WindowConfig gWindowConfig_81E6F14 =
@@ -1038,8 +1040,8 @@ const struct WindowConfig gWindowConfig_81E6F14 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(28), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(28), // tilemap
};
const struct WindowConfig gWindowConfig_81E6F30 =
@@ -1059,8 +1061,8 @@ const struct WindowConfig gWindowConfig_81E6F30 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(29), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(29), // tilemap
};
const struct WindowConfig gWindowConfig_81E6F4C =
@@ -1080,8 +1082,8 @@ const struct WindowConfig gWindowConfig_81E6F4C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E6F68 =
@@ -1101,8 +1103,8 @@ const struct WindowConfig gWindowConfig_81E6F68 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(13), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(13), // tilemap
};
const struct WindowConfig gWindowConfig_81E6F84 =
@@ -1122,8 +1124,8 @@ const struct WindowConfig gWindowConfig_81E6F84 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6FA0 =
@@ -1143,8 +1145,8 @@ const struct WindowConfig gWindowConfig_81E6FA0 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(24), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(24), // tilemap
};
const struct WindowConfig gWindowConfig_81E6FBC =
@@ -1164,8 +1166,8 @@ const struct WindowConfig gWindowConfig_81E6FBC =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E6FD8 =
@@ -1185,8 +1187,8 @@ const struct WindowConfig gWindowConfig_81E6FD8 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(24), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(24), // tilemap
};
const struct WindowConfig gWindowConfig_81E6FF4 =
@@ -1206,8 +1208,8 @@ const struct WindowConfig gWindowConfig_81E6FF4 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(24), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(24), // tilemap
};
const struct WindowConfig gWindowConfig_81E7010 =
@@ -1227,8 +1229,8 @@ const struct WindowConfig gWindowConfig_81E7010 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E702C =
@@ -1248,8 +1250,8 @@ const struct WindowConfig gWindowConfig_81E702C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(15), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(15), // tilemap
};
const struct WindowConfig gWindowConfig_81E7048 =
@@ -1269,8 +1271,8 @@ const struct WindowConfig gWindowConfig_81E7048 =
0, // tilemap top coordinate
16, // width
32, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(14), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(14), // tilemap
};
const struct WindowConfig gWindowConfig_81E7064 =
@@ -1290,8 +1292,8 @@ const struct WindowConfig gWindowConfig_81E7064 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(14), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(14), // tilemap
};
const struct WindowConfig gWindowConfig_81E7080 =
@@ -1311,8 +1313,8 @@ const struct WindowConfig gWindowConfig_81E7080 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E709C =
@@ -1332,8 +1334,8 @@ const struct WindowConfig gWindowConfig_81E709C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E70B8 =
@@ -1353,8 +1355,8 @@ const struct WindowConfig gWindowConfig_81E70B8 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E70D4 =
@@ -1374,8 +1376,8 @@ const struct WindowConfig gWindowConfig_81E70D4 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E70F0 =
@@ -1416,8 +1418,8 @@ const struct WindowConfig gWindowConfig_81E710C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E7128 =
@@ -1437,8 +1439,8 @@ const struct WindowConfig gWindowConfig_81E7128 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E7144 =
@@ -1458,8 +1460,8 @@ const struct WindowConfig gWindowConfig_81E7144 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E7160 =
@@ -1479,8 +1481,8 @@ const struct WindowConfig gWindowConfig_81E7160 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(1), // tile data
- (u16 *)BG_SCREEN_ADDR(10), // tilemap
+ BG_CHAR_ADDR(1), // tile data
+ BG_SCREEN_ADDR(10), // tilemap
};
const struct WindowConfig gWindowConfig_81E717C =
@@ -1500,8 +1502,8 @@ const struct WindowConfig gWindowConfig_81E717C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(3), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(3), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E7198 =
@@ -1521,8 +1523,8 @@ const struct WindowConfig gWindowConfig_81E7198 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(15), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(15), // tilemap
};
const struct WindowConfig gWindowConfig_81E71B4 =
@@ -1542,8 +1544,8 @@ const struct WindowConfig gWindowConfig_81E71B4 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(15), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(15), // tilemap
};
const struct WindowConfig gWindowConfig_81E71D0 =
@@ -1563,8 +1565,8 @@ const struct WindowConfig gWindowConfig_81E71D0 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(1), // tile data
- (u16 *)BG_SCREEN_ADDR(28), // tilemap
+ BG_CHAR_ADDR(1), // tile data
+ BG_SCREEN_ADDR(28), // tilemap
};
const struct WindowConfig gWindowConfig_81E71EC =
@@ -1584,8 +1586,8 @@ const struct WindowConfig gWindowConfig_81E71EC =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(1), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(1), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E7208 =
@@ -1605,8 +1607,8 @@ const struct WindowConfig gWindowConfig_81E7208 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(28), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(28), // tilemap
};
const struct WindowConfig gWindowConfig_81E7224 =
@@ -1626,8 +1628,8 @@ const struct WindowConfig gWindowConfig_81E7224 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E7240 =
@@ -1647,8 +1649,8 @@ const struct WindowConfig gWindowConfig_81E7240 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E725C =
@@ -1668,7 +1670,7 @@ const struct WindowConfig gWindowConfig_81E725C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)OBJ_VRAM0, // tile data
+ OBJ_VRAM0, // tile data
NULL, // tilemap
};
diff --git a/src/engine/text_window.c b/src/engine/text_window.c
index 9a88789d1..c001ddefc 100644
--- a/src/engine/text_window.c
+++ b/src/engine/text_window.c
@@ -18,11 +18,83 @@ static void DrawMessageBox(struct Window *win, u8 left, u8 top, u8 width, u8 hei
static u16 sTextWindowBaseTileNum;
static u16 sMessageBoxBaseTileNum;
-extern const struct FrameGraphics gUnknown_083761F0[20];
+extern const u8 gTextWindowFrame1_Gfx[];
+extern const u8 gTextWindowFrame2_Gfx[];
+extern const u8 gTextWindowFrame3_Gfx[];
+extern const u8 gTextWindowFrame4_Gfx[];
+extern const u8 gTextWindowFrame5_Gfx[];
+extern const u8 gTextWindowFrame6_Gfx[];
+extern const u8 gTextWindowFrame7_Gfx[];
+extern const u8 gTextWindowFrame8_Gfx[];
+extern const u8 gTextWindowFrame9_Gfx[];
+extern const u8 gTextWindowFrame10_Gfx[];
+extern const u8 gTextWindowFrame11_Gfx[];
+extern const u8 gTextWindowFrame12_Gfx[];
+extern const u8 gTextWindowFrame13_Gfx[];
+extern const u8 gTextWindowFrame14_Gfx[];
+extern const u8 gTextWindowFrame15_Gfx[];
+extern const u8 gTextWindowFrame16_Gfx[];
+extern const u8 gTextWindowFrame17_Gfx[];
+extern const u8 gTextWindowFrame18_Gfx[];
+extern const u8 gTextWindowFrame19_Gfx[];
+extern const u8 gTextWindowFrame20_Gfx[];
+
+extern const u16 gTextWindowFrame1_Pal[];
+extern const u16 gTextWindowFrame2_Pal[];
+extern const u16 gTextWindowFrame3_Pal[];
+extern const u16 gTextWindowFrame4_Pal[];
+extern const u16 gTextWindowFrame5_Pal[];
+extern const u16 gTextWindowFrame6_Pal[];
+extern const u16 gTextWindowFrame7_Pal[];
+extern const u16 gTextWindowFrame8_Pal[];
+extern const u16 gTextWindowFrame9_Pal[];
+extern const u16 gTextWindowFrame10_Pal[];
+extern const u16 gTextWindowFrame11_Pal[];
+extern const u16 gTextWindowFrame12_Pal[];
+extern const u16 gTextWindowFrame13_Pal[];
+extern const u16 gTextWindowFrame14_Pal[];
+extern const u16 gTextWindowFrame15_Pal[];
+extern const u16 gTextWindowFrame16_Pal[];
+extern const u16 gTextWindowFrame17_Pal[];
+extern const u16 gTextWindowFrame18_Pal[];
+extern const u16 gTextWindowFrame19_Pal[];
+extern const u16 gTextWindowFrame20_Pal[];
-extern const u16 gMessageBoxTilemap[5][7];
extern const u8 gMessageBox_Gfx[];
+static const struct FrameGraphics gUnknown_083761F0[20] =
+{
+ {gTextWindowFrame1_Gfx, gTextWindowFrame1_Pal},
+ {gTextWindowFrame2_Gfx, gTextWindowFrame2_Pal},
+ {gTextWindowFrame3_Gfx, gTextWindowFrame3_Pal},
+ {gTextWindowFrame4_Gfx, gTextWindowFrame4_Pal},
+ {gTextWindowFrame5_Gfx, gTextWindowFrame5_Pal},
+ {gTextWindowFrame6_Gfx, gTextWindowFrame6_Pal},
+ {gTextWindowFrame7_Gfx, gTextWindowFrame7_Pal},
+ {gTextWindowFrame8_Gfx, gTextWindowFrame8_Pal},
+ {gTextWindowFrame9_Gfx, gTextWindowFrame9_Pal},
+ {gTextWindowFrame10_Gfx, gTextWindowFrame10_Pal},
+ {gTextWindowFrame11_Gfx, gTextWindowFrame11_Pal},
+ {gTextWindowFrame12_Gfx, gTextWindowFrame12_Pal},
+ {gTextWindowFrame13_Gfx, gTextWindowFrame13_Pal},
+ {gTextWindowFrame14_Gfx, gTextWindowFrame14_Pal},
+ {gTextWindowFrame15_Gfx, gTextWindowFrame15_Pal},
+ {gTextWindowFrame16_Gfx, gTextWindowFrame16_Pal},
+ {gTextWindowFrame17_Gfx, gTextWindowFrame17_Pal},
+ {gTextWindowFrame18_Gfx, gTextWindowFrame18_Pal},
+ {gTextWindowFrame19_Gfx, gTextWindowFrame19_Pal},
+ {gTextWindowFrame20_Gfx, gTextWindowFrame20_Pal},
+};
+
+static const u16 gMessageBoxTilemap[5][7] =
+{
+ {1, 3, 4, 4, 5, 6, 9},
+ {11, 9, 9, 9, 9, 0x040B, 9},
+ {7, 9, 9, 9, 9, 10, 9},
+ {0x080B, 9, 9, 9, 9, 0x0C0B, 9},
+ {0x0801, 0x0803, 0x0804, 0x0804, 0x0805, 0x0806, 9},
+};
+
u16 SetTextWindowBaseTileNum(u16 baseTileNum)
{
sTextWindowBaseTileNum = baseTileNum;
diff --git a/src/engine/tileset_anim.c b/src/engine/tileset_anim.c
index 34685381d..abd38edad 100644
--- a/src/engine/tileset_anim.c
+++ b/src/engine/tileset_anim.c
@@ -1,39 +1,10 @@
#include "global.h"
#include "tileset_anim.h"
-extern u8 *gTilesetAnimTable_General_0[];
-extern u8 *gTilesetAnimTable_General_1[];
-extern u8 *gTilesetAnimTable_General_2[];
-extern u8 *gTilesetAnimTable_General_3[];
-extern u8 *gTilesetAnimTable_General_4[];
-extern u8 *gTilesetAnimTable_Lavaridge[];
-extern u8 *gTilesetAnimTable_Pacifidlog_0[];
-extern u8 *gTilesetAnimTable_Underwater[];
-extern u8 *gTilesetAnimTable_Pacifidlog_1[];
-extern u8 *gUnknown_0837BAE4[];
-extern u8 *gUnknown_0837BB04[];
-extern u8 *gTilesetAnimTable_Mauville_0A[];
-extern u8 *gTilesetAnimTable_Mauville_1A[];
-extern u8 *gTilesetAnimTable_Mauville_0B[];
-extern u8 *gTilesetAnimTable_Mauville_1B[];
-extern u8 *gUnknown_0837BFA4[];
-extern u8 *gTilesetAnimTable_Rustboro_0[];
-extern u8 *gTilesetAnimTable_Rustboro_1[];
-extern u8 *gTilesetAnimTable_Cave[];
-extern u8 *gUnknown_0837C93C[];
-extern u8 *gTilesetAnimTable_EverGrande[];
-extern u8 *gTilesetAnimTable_Building[];
-extern u8 *gTilesetAnimTable_SootopolisGym_0[];
-extern u8 *gTilesetAnimTable_SootopolisGym_1[];
-extern u8 *gTilesetAnimTable_EliteFour_0[];
-extern u8 *gTilesetAnimTable_EliteFour_1[];
-extern u8 *gTilesetAnimTable_MauvilleGym[];
-extern u8 *gTilesetAnimTable_BikeShop[];
-
struct Dma
{
- u8 *src;
- u8 *dest;
+ const void *src;
+ const void *dest;
u16 size;
};
@@ -89,13 +60,403 @@ static void sub_807399C(u16);
static void sub_8073974(u16);
static void sub_80739EC(u16);
+static const u8 TilesetAnimTiles_General_0_1[] = INCBIN_U8("data/tilesets/primary/general/anim/0/1.4bpp");
+static const u8 TilesetAnimTiles_General_0_0[] = INCBIN_U8("data/tilesets/primary/general/anim/0/0.4bpp");
+static const u8 TilesetAnimTiles_General_0_2[] = INCBIN_U8("data/tilesets/primary/general/anim/0/2.4bpp");
+asm(".space 32");
+
+static const u8 *const gTilesetAnimTable_General_0[] =
+{
+ TilesetAnimTiles_General_0_0,
+ TilesetAnimTiles_General_0_1,
+ TilesetAnimTiles_General_0_0,
+ TilesetAnimTiles_General_0_2,
+};
+
+static const u8 TilesetAnimTiles_General_1_0[] = INCBIN_U8("data/tilesets/primary/general/anim/1/0.4bpp");
+static const u8 TilesetAnimTiles_General_1_1[] = INCBIN_U8("data/tilesets/primary/general/anim/1/1.4bpp");
+static const u8 TilesetAnimTiles_General_1_2[] = INCBIN_U8("data/tilesets/primary/general/anim/1/2.4bpp");
+static const u8 TilesetAnimTiles_General_1_3[] = INCBIN_U8("data/tilesets/primary/general/anim/1/3.4bpp");
+static const u8 TilesetAnimTiles_General_1_4[] = INCBIN_U8("data/tilesets/primary/general/anim/1/4.4bpp");
+static const u8 TilesetAnimTiles_General_1_5[] = INCBIN_U8("data/tilesets/primary/general/anim/1/5.4bpp");
+static const u8 TilesetAnimTiles_General_1_6[] = INCBIN_U8("data/tilesets/primary/general/anim/1/6.4bpp");
+static const u8 TilesetAnimTiles_General_1_7[] = INCBIN_U8("data/tilesets/primary/general/anim/1/7.4bpp");
+
+static const u8 *const gTilesetAnimTable_General_1[] =
+{
+ TilesetAnimTiles_General_1_0,
+ TilesetAnimTiles_General_1_1,
+ TilesetAnimTiles_General_1_2,
+ TilesetAnimTiles_General_1_3,
+ TilesetAnimTiles_General_1_4,
+ TilesetAnimTiles_General_1_5,
+ TilesetAnimTiles_General_1_6,
+ TilesetAnimTiles_General_1_7,
+};
+
+static const u8 TilesetAnimTiles_General_2_0[] = INCBIN_U8("data/tilesets/primary/general/anim/2/0.4bpp");
+static const u8 TilesetAnimTiles_General_2_1[] = INCBIN_U8("data/tilesets/primary/general/anim/2/1.4bpp");
+static const u8 TilesetAnimTiles_General_2_2[] = INCBIN_U8("data/tilesets/primary/general/anim/2/2.4bpp");
+static const u8 TilesetAnimTiles_General_2_3[] = INCBIN_U8("data/tilesets/primary/general/anim/2/3.4bpp");
+static const u8 TilesetAnimTiles_General_2_4[] = INCBIN_U8("data/tilesets/primary/general/anim/2/4.4bpp");
+static const u8 TilesetAnimTiles_General_2_5[] = INCBIN_U8("data/tilesets/primary/general/anim/2/5.4bpp");
+static const u8 TilesetAnimTiles_General_2_6[] = INCBIN_U8("data/tilesets/primary/general/anim/2/6.4bpp");
+
+static const u8 *const gTilesetAnimTable_General_2[] =
+{
+ TilesetAnimTiles_General_2_0,
+ TilesetAnimTiles_General_2_1,
+ TilesetAnimTiles_General_2_2,
+ TilesetAnimTiles_General_2_3,
+ TilesetAnimTiles_General_2_4,
+ TilesetAnimTiles_General_2_5,
+ TilesetAnimTiles_General_2_6,
+ TilesetAnimTiles_General_2_0,
+};
+
+static const u8 TilesetAnimTiles_General_3_0[] = INCBIN_U8("data/tilesets/primary/general/anim/3/0.4bpp");
+static const u8 TilesetAnimTiles_General_3_1[] = INCBIN_U8("data/tilesets/primary/general/anim/3/1.4bpp");
+static const u8 TilesetAnimTiles_General_3_2[] = INCBIN_U8("data/tilesets/primary/general/anim/3/2.4bpp");
+static const u8 TilesetAnimTiles_General_3_3[] = INCBIN_U8("data/tilesets/primary/general/anim/3/3.4bpp");
+
+static const u8 *const gTilesetAnimTable_General_3[] =
+{
+ TilesetAnimTiles_General_3_0,
+ TilesetAnimTiles_General_3_1,
+ TilesetAnimTiles_General_3_2,
+ TilesetAnimTiles_General_3_3,
+};
+
+static const u8 TilesetAnimTiles_General_4_0[] = INCBIN_U8("data/tilesets/primary/general/anim/4/0.4bpp");
+static const u8 TilesetAnimTiles_General_4_1[] = INCBIN_U8("data/tilesets/primary/general/anim/4/1.4bpp");
+static const u8 TilesetAnimTiles_General_4_2[] = INCBIN_U8("data/tilesets/primary/general/anim/4/2.4bpp");
+static const u8 TilesetAnimTiles_General_4_3[] = INCBIN_U8("data/tilesets/primary/general/anim/4/3.4bpp");
+
+static const u8 *const gTilesetAnimTable_General_4[] =
+{
+ TilesetAnimTiles_General_4_0,
+ TilesetAnimTiles_General_4_1,
+ TilesetAnimTiles_General_4_2,
+ TilesetAnimTiles_General_4_3,
+};
+
+static const u8 TilesetAnimTiles_Lavaridge_0[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/0.4bpp");
+static const u8 TilesetAnimTiles_Lavaridge_1[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/1.4bpp");
+static const u8 TilesetAnimTiles_Lavaridge_2[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/2.4bpp");
+static const u8 TilesetAnimTiles_Lavaridge_3[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/3.4bpp");
+
+static const u8 *const gTilesetAnimTable_Lavaridge[] =
+{
+ TilesetAnimTiles_Lavaridge_0,
+ TilesetAnimTiles_Lavaridge_1,
+ TilesetAnimTiles_Lavaridge_2,
+ TilesetAnimTiles_Lavaridge_3,
+};
+
+static const u8 TilesetAnimTiles_Pacifidlog_0_0[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/0.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_0_1[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/1.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_0_2[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/2.4bpp");
+
+static const u8 *const gTilesetAnimTable_Pacifidlog_0[] =
+{
+ TilesetAnimTiles_Pacifidlog_0_0,
+ TilesetAnimTiles_Pacifidlog_0_1,
+ TilesetAnimTiles_Pacifidlog_0_2,
+ TilesetAnimTiles_Pacifidlog_0_1,
+};
+
+static const u8 TilesetAnimTiles_Underwater_0[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/0.4bpp");
+static const u8 TilesetAnimTiles_Underwater_1[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/1.4bpp");
+static const u8 TilesetAnimTiles_Underwater_2[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/2.4bpp");
+static const u8 TilesetAnimTiles_Underwater_3[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/3.4bpp");
+
+static const u8 *const gTilesetAnimTable_Underwater[] =
+{
+ TilesetAnimTiles_Underwater_0,
+ TilesetAnimTiles_Underwater_1,
+ TilesetAnimTiles_Underwater_2,
+ TilesetAnimTiles_Underwater_3,
+};
+
+static const u8 TilesetAnimTiles_Pacifidlog_1_0[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/0.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_1_1[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/1.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_1_2[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/2.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_1_3[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/3.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_1_4[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/4.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_1_5[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/5.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_1_6[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/6.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_1_7[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/7.4bpp");
+
+static const u8 *const gTilesetAnimTable_Pacifidlog_1[] =
+{
+ TilesetAnimTiles_Pacifidlog_1_0,
+ TilesetAnimTiles_Pacifidlog_1_1,
+ TilesetAnimTiles_Pacifidlog_1_2,
+ TilesetAnimTiles_Pacifidlog_1_3,
+ TilesetAnimTiles_Pacifidlog_1_4,
+ TilesetAnimTiles_Pacifidlog_1_5,
+ TilesetAnimTiles_Pacifidlog_1_6,
+ TilesetAnimTiles_Pacifidlog_1_7,
+};
+
+static const u8 TilesetAnimTiles_Mauville_0_0[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/0.4bpp");
+static const u8 TilesetAnimTiles_Mauville_0_1[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/1.4bpp");
+static const u8 TilesetAnimTiles_Mauville_0_2[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/2.4bpp");
+static const u8 TilesetAnimTiles_Mauville_0_3[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/3.4bpp");
+static const u8 TilesetAnimTiles_Mauville_0_4[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/4.4bpp");
+
+static const u8 TilesetAnimTiles_Mauville_1_0[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/0.4bpp");
+static const u8 TilesetAnimTiles_Mauville_1_1[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/1.4bpp");
+static const u8 TilesetAnimTiles_Mauville_1_2[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/2.4bpp");
+static const u8 TilesetAnimTiles_Mauville_1_3[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/3.4bpp");
+static const u8 TilesetAnimTiles_Mauville_1_4[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/4.4bpp");
+
+static const void *const gUnknown_0837BAE4[] =
+{
+ (void *)(VRAM + 0x4C00),
+ (void *)(VRAM + 0x4C80),
+ (void *)(VRAM + 0x4D00),
+ (void *)(VRAM + 0x4D80),
+ (void *)(VRAM + 0x4E00),
+ (void *)(VRAM + 0x4E80),
+ (void *)(VRAM + 0x4F00),
+ (void *)(VRAM + 0x4F80),
+};
+
+static const void *const gUnknown_0837BB04[] =
+{
+ (void *)(VRAM + 0x5000),
+ (void *)(VRAM + 0x5080),
+ (void *)(VRAM + 0x5100),
+ (void *)(VRAM + 0x5180),
+ (void *)(VRAM + 0x5200),
+ (void *)(VRAM + 0x5280),
+ (void *)(VRAM + 0x5300),
+ (void *)(VRAM + 0x5380),
+};
+
+static const u8 *const gTilesetAnimTable_Mauville_0A[] =
+{
+ TilesetAnimTiles_Mauville_0_0,
+ TilesetAnimTiles_Mauville_0_0,
+ TilesetAnimTiles_Mauville_0_1,
+ TilesetAnimTiles_Mauville_0_2,
+ TilesetAnimTiles_Mauville_0_3,
+ TilesetAnimTiles_Mauville_0_3,
+ TilesetAnimTiles_Mauville_0_3,
+ TilesetAnimTiles_Mauville_0_3,
+ TilesetAnimTiles_Mauville_0_3,
+ TilesetAnimTiles_Mauville_0_3,
+ TilesetAnimTiles_Mauville_0_2,
+ TilesetAnimTiles_Mauville_0_1,
+};
+
+static const u8 *const gTilesetAnimTable_Mauville_1A[] =
+{
+ TilesetAnimTiles_Mauville_1_0,
+ TilesetAnimTiles_Mauville_1_0,
+ TilesetAnimTiles_Mauville_1_1,
+ TilesetAnimTiles_Mauville_1_2,
+ TilesetAnimTiles_Mauville_1_3,
+ TilesetAnimTiles_Mauville_1_3,
+ TilesetAnimTiles_Mauville_1_3,
+ TilesetAnimTiles_Mauville_1_3,
+ TilesetAnimTiles_Mauville_1_3,
+ TilesetAnimTiles_Mauville_1_3,
+ TilesetAnimTiles_Mauville_1_2,
+ TilesetAnimTiles_Mauville_1_1,
+};
+
+static const u8 *const gTilesetAnimTable_Mauville_0B[] =
+{
+ TilesetAnimTiles_Mauville_0_0,
+ TilesetAnimTiles_Mauville_0_0,
+ TilesetAnimTiles_Mauville_0_4,
+ TilesetAnimTiles_Mauville_0_4,
+};
+
+static const u8 *const gTilesetAnimTable_Mauville_1B[] =
+{
+ TilesetAnimTiles_Mauville_1_0,
+ TilesetAnimTiles_Mauville_1_0,
+ TilesetAnimTiles_Mauville_1_4,
+ TilesetAnimTiles_Mauville_1_4,
+};
+
+static const u8 TilesetAnimTiles_Rustboro_0_0[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/0.4bpp");
+static const u8 TilesetAnimTiles_Rustboro_0_1[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/1.4bpp");
+static const u8 TilesetAnimTiles_Rustboro_0_2[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/2.4bpp");
+static const u8 TilesetAnimTiles_Rustboro_0_3[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/3.4bpp");
+static const u8 TilesetAnimTiles_Rustboro_0_4[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/4.4bpp");
+static const u8 TilesetAnimTiles_Rustboro_0_5[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/5.4bpp");
+static const u8 TilesetAnimTiles_Rustboro_0_6[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/6.4bpp");
+static const u8 TilesetAnimTiles_Rustboro_0_7[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/7.4bpp");
+
+static const void *const gUnknown_0837BFA4[] =
+{
+ (void *)(VRAM + 0x5000),
+ (void *)(VRAM + 0x5080),
+ (void *)(VRAM + 0x5100),
+ (void *)(VRAM + 0x5180),
+ (void *)(VRAM + 0x5200),
+ (void *)(VRAM + 0x5280),
+ (void *)(VRAM + 0x5300),
+ (void *)(VRAM + 0x5380),
+};
+
+static const u8 *const gTilesetAnimTable_Rustboro_0[] =
+{
+ TilesetAnimTiles_Rustboro_0_0,
+ TilesetAnimTiles_Rustboro_0_1,
+ TilesetAnimTiles_Rustboro_0_2,
+ TilesetAnimTiles_Rustboro_0_3,
+ TilesetAnimTiles_Rustboro_0_4,
+ TilesetAnimTiles_Rustboro_0_5,
+ TilesetAnimTiles_Rustboro_0_6,
+ TilesetAnimTiles_Rustboro_0_7,
+};
+
+static const u8 TilesetAnimTiles_Rustboro_1_0[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/1/0.4bpp");
+static const u8 TilesetAnimTiles_Rustboro_1_1[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/1/1.4bpp");
+
+static const u8 *const gTilesetAnimTable_Rustboro_1[] =
+{
+ TilesetAnimTiles_Rustboro_1_0,
+ TilesetAnimTiles_Rustboro_1_1,
+};
+
+static const u8 TilesetAnimTiles_Cave_0[] = INCBIN_U8("data/tilesets/secondary/cave/anim/0.4bpp");
+static const u8 TilesetAnimTiles_Cave_1[] = INCBIN_U8("data/tilesets/secondary/cave/anim/1.4bpp");
+static const u8 TilesetAnimTiles_Cave_2[] = INCBIN_U8("data/tilesets/secondary/cave/anim/2.4bpp");
+static const u8 TilesetAnimTiles_Cave_3[] = INCBIN_U8("data/tilesets/secondary/cave/anim/3.4bpp");
+// unused anim tiles for cave
+static const u8 TilesetAnimTiles_Cave_4[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/0.4bpp");
+static const u8 TilesetAnimTiles_Cave_5[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/1.4bpp");
+static const u8 TilesetAnimTiles_Cave_6[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/2.4bpp");
+static const u8 TilesetAnimTiles_Cave_7[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/3.4bpp");
+asm(".space 32");
+
+static const u8 *const gTilesetAnimTable_Cave[] =
+{
+ TilesetAnimTiles_Cave_0,
+ TilesetAnimTiles_Cave_1,
+ TilesetAnimTiles_Cave_2,
+ TilesetAnimTiles_Cave_3,
+};
+
+static const u8 TilesetAnimTiles_EverGrande_0[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/0.4bpp");
+static const u8 TilesetAnimTiles_EverGrande_1[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/1.4bpp");
+static const u8 TilesetAnimTiles_EverGrande_2[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/2.4bpp");
+static const u8 TilesetAnimTiles_EverGrande_3[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/3.4bpp");
+static const u8 TilesetAnimTiles_EverGrande_4[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/4.4bpp");
+static const u8 TilesetAnimTiles_EverGrande_5[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/5.4bpp");
+static const u8 TilesetAnimTiles_EverGrande_6[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/6.4bpp");
+static const u8 TilesetAnimTiles_EverGrande_7[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/7.4bpp");
+asm(".space 32");
+
+static const void *const gUnknown_0837C93C[] =
+{
+ (void *)(VRAM + 0x5C00),
+ (void *)(VRAM + 0x5C80),
+ (void *)(VRAM + 0x5D00),
+ (void *)(VRAM + 0x5D80),
+ (void *)(VRAM + 0x5E00),
+ (void *)(VRAM + 0x5E80),
+ (void *)(VRAM + 0x5F00),
+ (void *)(VRAM + 0x5F80),
+};
+
+static const u8 *const gTilesetAnimTable_EverGrande[] =
+{
+ TilesetAnimTiles_EverGrande_0,
+ TilesetAnimTiles_EverGrande_1,
+ TilesetAnimTiles_EverGrande_2,
+ TilesetAnimTiles_EverGrande_3,
+ TilesetAnimTiles_EverGrande_4,
+ TilesetAnimTiles_EverGrande_5,
+ TilesetAnimTiles_EverGrande_6,
+ TilesetAnimTiles_EverGrande_7,
+};
+
+static const u8 TilesetAnimTiles_Building_0[] = INCBIN_U8("data/tilesets/primary/building/anim/0.4bpp");
+static const u8 TilesetAnimTiles_Building_1[] = INCBIN_U8("data/tilesets/primary/building/anim/1.4bpp");
+
+static const u8 *const gTilesetAnimTable_Building[] =
+{
+ TilesetAnimTiles_Building_0,
+ TilesetAnimTiles_Building_1,
+};
+
+static const u8 TilesetAnimTiles_SootopolisGym_0_0[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/0.4bpp");
+static const u8 TilesetAnimTiles_SootopolisGym_0_1[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/1.4bpp");
+static const u8 TilesetAnimTiles_SootopolisGym_0_2[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/2.4bpp");
+static const u8 TilesetAnimTiles_SootopolisGym_1_0[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/0.4bpp");
+static const u8 TilesetAnimTiles_SootopolisGym_1_1[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/1.4bpp");
+static const u8 TilesetAnimTiles_SootopolisGym_1_2[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/2.4bpp");
+
+static const u8 *const gTilesetAnimTable_SootopolisGym_0[] =
+{
+ TilesetAnimTiles_SootopolisGym_0_0,
+ TilesetAnimTiles_SootopolisGym_0_1,
+ TilesetAnimTiles_SootopolisGym_0_2,
+};
+
+static const u8 *const gTilesetAnimTable_SootopolisGym_1[] =
+{
+ TilesetAnimTiles_SootopolisGym_1_0,
+ TilesetAnimTiles_SootopolisGym_1_1,
+ TilesetAnimTiles_SootopolisGym_1_2,
+};
+
+static const u8 TilesetAnimTiles_EliteFour_1_0[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/1/0.4bpp");
+static const u8 TilesetAnimTiles_EliteFour_1_1[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/1/1.4bpp");
+static const u8 TilesetAnimTiles_EliteFour_0_0[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/0.4bpp");
+static const u8 TilesetAnimTiles_EliteFour_0_1[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/1.4bpp");
+static const u8 TilesetAnimTiles_EliteFour_0_2[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/2.4bpp");
+static const u8 TilesetAnimTiles_EliteFour_0_3[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/3.4bpp");
+asm(".space 32");
+
+static const u8 *const gTilesetAnimTable_EliteFour_0[] =
+{
+ TilesetAnimTiles_EliteFour_0_0,
+ TilesetAnimTiles_EliteFour_0_1,
+ TilesetAnimTiles_EliteFour_0_2,
+ TilesetAnimTiles_EliteFour_0_3,
+};
+
+static const u8 *const gTilesetAnimTable_EliteFour_1[] =
+{
+ TilesetAnimTiles_EliteFour_1_0,
+ TilesetAnimTiles_EliteFour_1_1,
+};
+
+static const u8 TilesetAnimTiles_MauvilleGym_0[] = INCBIN_U8("data/tilesets/secondary/mauville_gym/anim/0.4bpp");
+static const u8 TilesetAnimTiles_MauvilleGym_1[] = INCBIN_U8("data/tilesets/secondary/mauville_gym/anim/1.4bpp");
+asm(".space 32");
+
+static const u8 *const gTilesetAnimTable_MauvilleGym[] =
+{
+ TilesetAnimTiles_MauvilleGym_0,
+ TilesetAnimTiles_MauvilleGym_1,
+};
+
+static const u8 TilesetAnimTiles_BikeShop_0[] = INCBIN_U8("data/tilesets/secondary/bike_shop/anim/0.4bpp");
+static const u8 TilesetAnimTiles_BikeShop_1[] = INCBIN_U8("data/tilesets/secondary/bike_shop/anim/1.4bpp");
+asm(".space 32");
+
+static const u8 *const gTilesetAnimTable_BikeShop[] =
+{
+ TilesetAnimTiles_BikeShop_0,
+ TilesetAnimTiles_BikeShop_1,
+};
+
static void ClearTilesetAnimDmas(void)
{
gNumTilesetAnimDmas = 0;
CpuFill32(0, &gTilesetAnimDmas, sizeof(gTilesetAnimDmas));
}
-static void QueueTilesetAnimDma(u8 *src, u8 *dest, u16 size)
+static void QueueTilesetAnimDma(const void *src, const void *dest, u16 size)
{
if (gNumTilesetAnimDmas < 20)
{
@@ -217,28 +578,28 @@ static void sub_8073070(u16 a1)
{
int v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_General_0[v1], (u8 *)(BG_VRAM + 0x3f80), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_General_0[v1], BG_TILE_ADDR(127), 0x80);
}
static void sub_8073098(u16 a1)
{
u8 v1;
v1 = a1 % 8;
- QueueTilesetAnimDma(gTilesetAnimTable_General_1[v1], (u8 *)(BG_VRAM + 0x3600), 0x3c0);
+ QueueTilesetAnimDma(gTilesetAnimTable_General_1[v1], BG_TILE_ADDR(108), 0x3c0);
}
static void sub_80730C0(u16 a1)
{
int v1;
v1 = a1 % 8;
- QueueTilesetAnimDma(gTilesetAnimTable_General_2[v1], (u8 *)(BG_VRAM + 0x3a00), 0x140);
+ QueueTilesetAnimDma(gTilesetAnimTable_General_2[v1], BG_TILE_ADDR(116), 0x140);
}
static void sub_80730E8(u16 a1)
{
int v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_General_3[v1], (u8 *)(BG_VRAM + 0x3e00), 0xc0);
+ QueueTilesetAnimDma(gTilesetAnimTable_General_3[v1], BG_TILE_ADDR(124), 0xc0);
}
void TilesetCB_Petalburg(void)
@@ -454,37 +815,37 @@ static void sub_807361C(u16 a1)
{
int v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_General_4[v1], (u8 *)(BG_VRAM + 0x3c00), 0x140);
+ QueueTilesetAnimDma(gTilesetAnimTable_General_4[v1], BG_TILE_ADDR(120), 0x140);
}
static void sub_8073644(u8 a1)
{
u8 v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_Lavaridge[v1], (u8 *)(BG_VRAM + 0x6400), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_Lavaridge[v1], BG_TILE_ADDR(200), 0x80);
v1 = (a1 + 2) % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_Lavaridge[v1], (u8 *)(BG_VRAM + 0x6480), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_Lavaridge[v1], BG_TILE_ADDR(201), 0x80);
}
static void sub_807368C(u8 a1)
{
int v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_Pacifidlog_0[v1], (u8 *)(BG_VRAM + 0x7a00), 0x3c0);
+ QueueTilesetAnimDma(gTilesetAnimTable_Pacifidlog_0[v1], BG_TILE_ADDR(244), 0x3c0);
}
static void sub_80736B4(u8 a1)
{
int v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_Underwater[v1], (u8 *)(BG_VRAM + 0x7e00), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_Underwater[v1], BG_TILE_ADDR(252), 0x80);
}
static void sub_80736DC(u8 a1)
{
int v1;
v1 = a1 % 8;
- QueueTilesetAnimDma(gTilesetAnimTable_Pacifidlog_1[v1], (u8 *)(BG_VRAM + 0x7e00), 0x100);
+ QueueTilesetAnimDma(gTilesetAnimTable_Pacifidlog_1[v1], BG_TILE_ADDR(252), 0x100);
}
static void sub_8073704(u16 a1, u8 a2)
@@ -521,14 +882,14 @@ static void sub_80737E0(u16 a1)
{
int v1;
v1 = a1 % 2;
- QueueTilesetAnimDma(gTilesetAnimTable_Rustboro_1[v1], (u8 *)(BG_VRAM + 0x7800), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_Rustboro_1[v1], BG_TILE_ADDR(240), 0x80);
}
static void sub_8073808(u16 a1)
{
int v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_Cave[v1], (u8 *)(BG_VRAM + 0x5400), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_Cave[v1], BG_TILE_ADDR(168), 0x80);
}
static void sub_8073830(u16 a1, u8 a2)
@@ -543,7 +904,7 @@ static void sub_8073868(u16 a1)
{
int v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_Cave[v1], (u8 *)(BG_VRAM + 0x7400), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_Cave[v1], BG_TILE_ADDR(232), 0x80);
}
static void sub_8073890(u16 a1)
@@ -590,41 +951,41 @@ static void sub_8073904(u16 a1)
{
int v1;
v1 = a1 % 2;
- QueueTilesetAnimDma(gTilesetAnimTable_Building[v1], (u8 *)(BG_VRAM + 0x3e00), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_Building[v1], BG_TILE_ADDR(124), 0x80);
}
static void sub_807392C(u16 a1)
{
int v1;
v1 = a1 % 3;
- QueueTilesetAnimDma(gTilesetAnimTable_SootopolisGym_0[v1], (u8 *)(BG_VRAM + 0x7e00), 0x180);
- QueueTilesetAnimDma(gTilesetAnimTable_SootopolisGym_1[v1], (u8 *)(BG_VRAM + 0x7a00), 0x280);
+ QueueTilesetAnimDma(gTilesetAnimTable_SootopolisGym_0[v1], BG_TILE_ADDR(252), 0x180);
+ QueueTilesetAnimDma(gTilesetAnimTable_SootopolisGym_1[v1], BG_TILE_ADDR(244), 0x280);
}
static void sub_8073974(u16 a1)
{
int v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_EliteFour_0[v1], (u8 *)(BG_VRAM + 0x7f00), 0x20);
+ QueueTilesetAnimDma(gTilesetAnimTable_EliteFour_0[v1], BG_TILE_ADDR(254), 0x20);
}
static void sub_807399C(u16 a1)
{
int v1;
v1 = a1 % 2;
- QueueTilesetAnimDma(gTilesetAnimTable_EliteFour_1[v1], (u8 *)(BG_VRAM + 0x7c00), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_EliteFour_1[v1], BG_TILE_ADDR(248), 0x80);
}
static void sub_80739C4(u16 a1)
{
int v1;
v1 = a1 % 2;
- QueueTilesetAnimDma(gTilesetAnimTable_MauvilleGym[v1], (u8 *)(BG_VRAM + 0x5200), 0x200);
+ QueueTilesetAnimDma(gTilesetAnimTable_MauvilleGym[v1], BG_TILE_ADDR(164), 0x200);
}
static void sub_80739EC(u16 a1)
{
int v1;
v1 = a1 % 2;
- QueueTilesetAnimDma(gTilesetAnimTable_BikeShop[v1], (u8 *)(BG_VRAM + 0x7e00), 0x120);
+ QueueTilesetAnimDma(gTilesetAnimTable_BikeShop[v1], BG_TILE_ADDR(252), 0x120);
}
diff --git a/src/engine/time_events.c b/src/engine/time_events.c
index accb03db8..3e3054aa3 100644
--- a/src/engine/time_events.c
+++ b/src/engine/time_events.c
@@ -3,7 +3,7 @@
#include "event_data.h"
#include "field_weather.h"
#include "pokemon.h"
-#include "rng.h"
+#include "random.h"
#include "overworld.h"
#include "rtc.h"
#include "script.h"
@@ -85,9 +85,9 @@ void UpdateShoalTideFlag(void)
{
RtcCalcLocalTime();
if (tide[gLocalTime.hours])
- FlagSet(SYS_SHOAL_TIDE);
+ FlagSet(FLAG_SYS_SHOAL_TIDE);
else
- FlagClear(SYS_SHOAL_TIDE);
+ FlagClear(FLAG_SYS_SHOAL_TIDE);
}
}
diff --git a/src/engine/trade.c b/src/engine/trade.c
index 6e78ba3ce..0567b4d2f 100644
--- a/src/engine/trade.c
+++ b/src/engine/trade.c
@@ -3,10 +3,10 @@
#include "string_util.h"
#include "text.h"
#include "main.h"
-#include "species.h"
-#include "items.h"
-#include "moves.h"
-#include "easy_chat.h"
+#include "constants/species.h"
+#include "constants/items.h"
+#include "constants/moves.h"
+#include "constants/easy_chat.h"
#include "link.h"
#include "strings2.h"
#include "graphics.h"
@@ -17,7 +17,7 @@
#include "pokemon_icon.h"
#include "cable_club.h"
#include "party_menu.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "data2.h"
#include "pokemon_summary_screen.h"
@@ -39,6 +39,7 @@
#include "util.h"
#include "battle_interface.h"
#include "trade.h"
+#include "ewram.h"
#ifdef ENGLISH
#define sub_804A96C_alt sub_804A96C
@@ -112,7 +113,6 @@ struct TradeEwramSubstruct {
/*0x0087*/ u8 unk_0087;
/*0x0088*/ u8 filler_0088[2];
/*0x008a*/ u8 unk_008a;
- /*0x008b*/ u8 unk_008b;
/*0x008c*/ u16 linkData[20];
/*0x00b4*/ u8 unk_00b4;
/*0x00b5*/ u8 unk_00b5[11];
@@ -218,9 +218,6 @@ extern u8 *gUnknown_020296CC[13];
extern struct TradeEwramSubstruct *gUnknown_03004824;
extern struct MailStruct gUnknown_02029700[16];
-#define ewram_2010000 (*(struct TradeEwramStruct *)(ewram + 0x10000))
-
-
const u32 unref_data_820ABD4[] = {
0x00000890,
0x00003AC0,
@@ -1088,7 +1085,7 @@ static void sub_8047EC0(void)
ResetSpriteData();
FreeAllSpritePalettes();
ResetTasks();
- sub_804A964(&gUnknown_03004824->unk_00c8, (void *)BG_SCREEN_ADDR(5));
+ sub_804A964(&gUnknown_03004824->unk_00c8, BG_SCREEN_ADDR(5));
SetVBlankCallback(sub_80489F4);
InitMenuWindow(&gWindowConfig_81E6CE4);
SetUpWindowConfig(&gWindowConfig_81E6F84);
@@ -1268,7 +1265,7 @@ static void sub_80484F4(void)
ResetSpriteData();
FreeAllSpritePalettes();
ResetTasks();
- sub_804A964(&gUnknown_03004824->unk_00c8, (void *)BG_SCREEN_ADDR(5));
+ sub_804A964(&gUnknown_03004824->unk_00c8, BG_SCREEN_ADDR(5));
SetVBlankCallback(sub_80489F4);
InitMenuWindow(&gWindowConfig_81E6CE4);
SetUpWindowConfig(&gWindowConfig_81E6F84);
@@ -1484,12 +1481,12 @@ static void sub_8048B0C(u8 a0)
}
for (i = 0; i < 0x400; i ++)
gUnknown_03004824->unk_00c8.unk_12[i] = gUnknown_08EA15C8[i];
- dest = (u16 *)BG_SCREEN_ADDR(6);
+ dest = BG_SCREEN_ADDR(6);
DmaCopy16(3, gTradeStripesBG2Tilemap, dest, 0x800);
break;
case 1:
src = gTradeStripesBG3Tilemap;
- dest = (u16 *)BG_SCREEN_ADDR(7);
+ dest = BG_SCREEN_ADDR(7);
DmaCopy16(3, src, dest, 0x800);
sub_804A6DC(0);
sub_804A6DC(1);
@@ -1706,8 +1703,11 @@ static void sub_8048C70(void)
static void nullsub_5(u8 a0, u8 a1) {}
-static void sub_8048D24(u8 *dest, const u8 *src, u32 size)
+// why not just use memcpy?
+static void Trade_Memcpy(void *dataDest, void *dataSrc, u32 size)
{
+ u8 *dest = dataDest;
+ u8 *src = dataSrc;
int i;
for (i = 0; i < size; i ++) dest[i] = src[i];
}
@@ -1724,7 +1724,7 @@ static bool8 sub_8048D44(void)
switch (gUnknown_03004824->unk_0075)
{
case 0:
- sub_8048D24(gBlockSendBuffer, (const u8 *)&gPlayerParty[0], 2 * sizeof(struct Pokemon));
+ Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[0], 2 * sizeof(struct Pokemon));
gUnknown_03004824->unk_0075 ++;
break;
case 1:
@@ -1751,13 +1751,13 @@ static bool8 sub_8048D44(void)
case 3:
if (GetBlockReceivedStatus() == 3)
{
- sub_8048D24((u8 *)&gEnemyParty[0], (const u8 *)gBlockRecvBuffer[mpId ^ 1], 2 * sizeof(struct Pokemon));
+ Trade_Memcpy(&gEnemyParty[0], gBlockRecvBuffer[mpId ^ 1], 2 * sizeof(struct Pokemon));
ResetBlockReceivedFlags();
gUnknown_03004824->unk_0075 ++;
}
break;
case 4:
- sub_8048D24(gBlockSendBuffer, (const u8 *)&gPlayerParty[2], 2 * sizeof(struct Pokemon));
+ Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[2], 2 * sizeof(struct Pokemon));
gUnknown_03004824->unk_0075 ++;
break;
case 5:
@@ -1770,13 +1770,13 @@ static bool8 sub_8048D44(void)
case 6:
if (GetBlockReceivedStatus() == 3)
{
- sub_8048D24((u8 *)&gEnemyParty[2], (const u8 *)gBlockRecvBuffer[mpId ^ 1], 2 * sizeof(struct Pokemon));
+ Trade_Memcpy(&gEnemyParty[2], gBlockRecvBuffer[mpId ^ 1], 2 * sizeof(struct Pokemon));
ResetBlockReceivedFlags();
gUnknown_03004824->unk_0075 ++;
}
break;
case 7:
- sub_8048D24(gBlockSendBuffer, (const u8 *)&gPlayerParty[4], 2 * sizeof(struct Pokemon));
+ Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[4], 2 * sizeof(struct Pokemon));
gUnknown_03004824->unk_0075 ++;
break;
case 8:
@@ -1789,13 +1789,13 @@ static bool8 sub_8048D44(void)
case 9:
if (GetBlockReceivedStatus() == 3)
{
- sub_8048D24((u8 *)&gEnemyParty[4], (const u8 *)gBlockRecvBuffer[mpId ^ 1], 2 * sizeof(struct Pokemon));
+ Trade_Memcpy(&gEnemyParty[4], gBlockRecvBuffer[mpId ^ 1], 2 * sizeof(struct Pokemon));
ResetBlockReceivedFlags();
gUnknown_03004824->unk_0075 ++;
}
break;
case 10:
- sub_8048D24(gBlockSendBuffer, (const u8 *)&gSaveBlock1.mail[0], 6 * sizeof(struct MailStruct) + 4);
+ Trade_Memcpy(gBlockSendBuffer, &gSaveBlock1.mail[0], 6 * sizeof(struct MailStruct) + 4);
gUnknown_03004824->unk_0075 ++;
break;
case 11:
@@ -1808,13 +1808,13 @@ static bool8 sub_8048D44(void)
case 12:
if (GetBlockReceivedStatus() == 3)
{
- sub_8048D24((u8 *)&gUnknown_02029700[0], (const u8 *)gBlockRecvBuffer[mpId ^ 1], 6 * sizeof(struct MailStruct));
+ Trade_Memcpy(&gUnknown_02029700[0], gBlockRecvBuffer[mpId ^ 1], 6 * sizeof(struct MailStruct));
ResetBlockReceivedFlags();
gUnknown_03004824->unk_0075 ++;
}
break;
case 13:
- sub_8048D24(gBlockSendBuffer, (const u8 *)gSaveBlock1.giftRibbons, 11);
+ Trade_Memcpy(gBlockSendBuffer, gSaveBlock1.giftRibbons, 11);
gUnknown_03004824->unk_0075 ++;
break;
case 14:
@@ -1827,7 +1827,7 @@ static bool8 sub_8048D44(void)
case 15:
if (GetBlockReceivedStatus() == 3)
{
- sub_8048D24((u8 *)gUnknown_03004824->unk_00b5, (const u8 *)gBlockRecvBuffer[mpId ^ 1], 11);
+ Trade_Memcpy(gUnknown_03004824->unk_00b5, gBlockRecvBuffer[mpId ^ 1], 11);
ResetBlockReceivedFlags();
gUnknown_03004824->unk_0075 ++;
}
@@ -1853,7 +1853,7 @@ static void sub_8049088(void)
{
u8 string[28];
StringCopy(string, gTradeText_TradeOkayPrompt);
- sub_804ACD8(string, (u8 *)BG_CHAR_ADDR(4) + gUnknown_03004824->unk_007e * 32, 20);
+ sub_804ACD8(string, BG_CHAR_ADDR(4) + gUnknown_03004824->unk_007e * 32, 20);
}
static void sub_80490BC(u8 mpId, u8 a1)
@@ -1915,7 +1915,7 @@ static void sub_80491E4(u8 mpId, u8 status)
gUnknown_03004824->unk_007b = 8;
break;
case 0xdddd:
- gUnknown_03004824->unk_008a = ((u8 *)gBlockRecvBuffer[0])[1 * sizeof(u16)] + 6;
+ gUnknown_03004824->unk_008a = gBlockRecvBuffer[0][1] + 6;
sub_8049E9C(gUnknown_03004824->tradeMenuCursorPosition);
sub_8049E9C(gUnknown_03004824->unk_008a);
gUnknown_03004824->unk_007b = 7;
@@ -2111,7 +2111,7 @@ static void sub_8049680(void)
DrawTextWindow(&gUnknown_03004824->window, 24, 14, 29, 19);
InitYesNoMenu(24, 14, 4);
gUnknown_03004824->unk_007b = 4;
- sub_804ACD8(gUnknown_0820C14C[4], (u8 *)(BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e), 20);
+ sub_804ACD8(gUnknown_0820C14C[4], BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e, 20);
}
}
if (gMain.newKeys & R_BUTTON)
@@ -2130,7 +2130,7 @@ static void sub_8049804(void)
sub_804A80C();
gUnknown_03004824->unk_007b = 0;
gSprites[gUnknown_03004824->tradeMenuCursorSpriteIdx].invisible = FALSE;
- sub_804ACD8(gUnknown_0820C14C[1], (u8 *)(BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e), 20);
+ sub_804ACD8(gUnknown_0820C14C[1], BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e, 20);
}
static void sub_8049860(void)
@@ -2186,11 +2186,11 @@ static void sub_804997C(void)
{
if (gUnknown_03004824->tradeMenuCursorPosition < PARTY_SIZE)
{
- ShowPokemonSummaryScreen(gPlayerParty, gUnknown_03004824->tradeMenuCursorPosition, gUnknown_03004824->partyCounts[0] - 1, sub_80484F4, 4);
+ ShowPokemonSummaryScreen(gPlayerParty, gUnknown_03004824->tradeMenuCursorPosition, gUnknown_03004824->partyCounts[0] - 1, sub_80484F4, PSS_MODE_NO_MOVE_ORDER_EDIT);
}
else
{
- ShowPokemonSummaryScreen(gEnemyParty, gUnknown_03004824->tradeMenuCursorPosition - 6, gUnknown_03004824->partyCounts[1] - 1, sub_80484F4, 4);
+ ShowPokemonSummaryScreen(gEnemyParty, gUnknown_03004824->tradeMenuCursorPosition - 6, gUnknown_03004824->partyCounts[1] - 1, sub_80484F4, PSS_MODE_NO_MOVE_ORDER_EDIT);
}
}
}
@@ -2458,10 +2458,10 @@ static void sub_8049ED4(u8 a0)
gSprites[gUnknown_03004824->partyIcons[whichParty][i]].invisible = TRUE;
}
gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]].invisible = FALSE;
- gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]].data0 = 20;
- gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]].data2 = (gTradeMonSpriteCoords[6 * whichParty + whichPokemon][0] + gTradeMonSpriteCoords[6 * whichParty + whichPokemon + 1][0]) / 2 * 8 + 14;
- gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]].data4 = gTradeMonSpriteCoords[6 * whichParty + whichPokemon][1] * 8 - 12;
- StoreSpriteCallbackInData6(&gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]], sub_809D62C);
+ gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]].data[0] = 20;
+ gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]].data[2] = (gTradeMonSpriteCoords[6 * whichParty + whichPokemon][0] + gTradeMonSpriteCoords[6 * whichParty + whichPokemon + 1][0]) / 2 * 8 + 14;
+ gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]].data[4] = gTradeMonSpriteCoords[6 * whichParty + whichPokemon][1] * 8 - 12;
+ StoreSpriteCallbackInData(&gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]], sub_809D62C);
gUnknown_03004824->unk_0080[a0] ++;
sub_8078A34(&gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]]);
HandleDestroyMenuCursors();
@@ -2498,7 +2498,7 @@ static void sub_8049ED4(u8 a0)
gUnknown_03004824->unk_0080[a0] ++;
break;
case 4:
- sub_804ACD8(gUnknown_0820C14C[5], (u8 *)(BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e), 20);
+ sub_804ACD8(gUnknown_0820C14C[5], BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e, 20);
sub_804A51C(a0, whichPokemon, gUnknown_0820C3D1[a0][0] + 4, gUnknown_0820C3D1[a0][1] + 1, gUnknown_0820C3D1[a0][0], gUnknown_0820C3D1[a0][1]);
gUnknown_03004824->unk_0080[a0] ++;
break;
@@ -2675,7 +2675,7 @@ static void sub_8049ED4(u8 a0)
"\tlsls r0, 2\n"
"\tadds r0, r7\n"
"\tldr r1, _0804A0A0 @ =sub_809D62C\n"
- "\tbl StoreSpriteCallbackInData6\n"
+ "\tbl StoreSpriteCallbackInData\n"
"\tldr r2, _0804A09C @ =gUnknown_03004824\n"
"\tldr r1, [r2]\n"
"\tadds r1, 0x80\n"
@@ -3362,7 +3362,7 @@ static void sub_804A840(u8 whichParty)
sub_804A740(1);
sub_804A938(&gUnknown_03004824->unk_00c8);
}
- sub_804ACD8(gUnknown_0820C14C[1], (u8 *)(BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e), 20);
+ sub_804ACD8(gUnknown_0820C14C[1], BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e, 20);
gUnknown_03004824->unk_0080[whichParty] = 0;
}
@@ -3816,45 +3816,45 @@ static void sub_804AFB8(const struct WindowConfig *windowConfig, u8 *dest, const
static void sub_804B058(struct Sprite *sprite)
{
- if (++ sprite->data0 == 10)
+ if (++ sprite->data[0] == 10)
{
PlaySE(SE_BOWA);
- sprite->data0 = 0;
+ sprite->data[0] = 0;
}
}
static void sub_804B07C(struct Sprite *sprite)
{
- if (sprite->data1 == 0)
+ if (sprite->data[1] == 0)
{
- if (++ sprite->data0 == 12)
- sprite->data0 = 0;
- LoadPalette(&gTradeGlow2PaletteAnimTable[sprite->data0], 16 * (sprite->oam.paletteNum + 16) + 4, 2);
+ if (++ sprite->data[0] == 12)
+ sprite->data[0] = 0;
+ LoadPalette(&gTradeGlow2PaletteAnimTable[sprite->data[0]], 16 * (sprite->oam.paletteNum + 16) + 4, 2);
}
}
static void sub_804B0BC(struct Sprite *sprite)
{
- sprite->data0 ++;
+ sprite->data[0] ++;
sprite->pos2.y ++;
- if (sprite->data0 == 10)
+ if (sprite->data[0] == 10)
DestroySprite(sprite);
}
static void sub_804B0E0(struct Sprite *sprite)
{
- sprite->data0 ++;
+ sprite->data[0] ++;
sprite->pos2.y --;
- if (sprite->data0 == 10)
+ if (sprite->data[0] == 10)
DestroySprite(sprite);
}
static void sub_804B104(struct Sprite *sprite)
{
- if (++ sprite->data0 == 15)
+ if (++ sprite->data[0] == 15)
{
PlaySE(SE_W107);
- sprite->data0 = 0;
+ sprite->data[0] = 0;
}
}
@@ -4000,7 +4000,7 @@ static void sub_804B2D0(u8 whichParty, u8 a1)
case 0:
species = GetMonData(pokemon, MON_DATA_SPECIES2);
personality = GetMonData(pokemon, MON_DATA_PERSONALITY);
- HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (u32)ewram, gUnknown_081FAF4C[whichParty * 2 + 1], species, personality);
+ HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (u32)gSharedMem, gUnknown_081FAF4C[whichParty * 2 + 1], species, personality);
LoadCompressedObjectPalette(GetMonSpritePalStruct(pokemon));
gUnknown_03004828->tradeSpecies[whichParty] = species;
break;
@@ -4037,7 +4037,7 @@ static void sub_804B41C(void)
gMain.state ++;
LZDecompressVram(gUnknown_08D00000, (void *)VRAM);
CpuCopy16(gUnknown_08D00524, ewram, 0x1000);
- DmaCopy16Defvars(3, ewram, (void *)BG_SCREEN_ADDR(5), 0x500);
+ DmaCopy16Defvars(3, ewram, BG_SCREEN_ADDR(5), 0x500);
LoadCompressedPalette(gUnknown_08D004E0, 0, 32);
gUnknown_03004828->unk_00b6 = 0;
gUnknown_03004828->unk_00c4 = 0;
@@ -4175,7 +4175,7 @@ static __attribute__((naked)) void sub_804B41C(void)
"\tbl ResetTasks\n"
"\tbl CloseLink\n"
"\tldr r6, _0804B570 @ =gUnknown_03004828\n"
- "\tldr r5, _0804B574 @ =0x0201f000\n"
+ "\tldr r5, _0804B574 @ =gSharedMem + 0x1F000\n"
"\tstr r5, [r6]\n"
"\tbl ResetSpriteData\n"
"\tbl FreeAllSpritePalettes\n"
@@ -4277,7 +4277,7 @@ static __attribute__((naked)) void sub_804B41C(void)
"\tb _0804B76E_break\n"
"\t.align 2, 0\n"
"_0804B570: .4byte gUnknown_03004828\n"
- "_0804B574: .4byte 0x0201f000\n"
+ "_0804B574: .4byte gSharedMem + 0x1F000\n"
"_0804B578: .4byte sub_804B210\n"
"_0804B57C: .4byte gWindowConfig_81E6F84\n"
"_0804B580: .4byte gLinkType\n"
@@ -4678,8 +4678,8 @@ static void sub_804BBE8(u8 a0)
{
case 0:
LoadPalette(gUnknown_0820C9F8, 0x10, 0xa0);
- DmaCopyLarge16(3, gUnknown_0820CA98, (void *)BG_CHAR_ADDR(1), 0x1300, 0x1000);
- DmaCopy16Defvars(3, gUnknown_0820F798, (void *)BG_SCREEN_ADDR(18), 0x1000);
+ DmaCopyLarge16(3, gUnknown_0820CA98, BG_CHAR_ADDR(1), 0x1300, 0x1000);
+ DmaCopy16Defvars(3, gUnknown_0820F798, BG_SCREEN_ADDR(18), 0x1000);
gUnknown_03004828->bg2vofs = 0;
gUnknown_03004828->bg2hofs = 0xb4;
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON;
@@ -4691,15 +4691,15 @@ static void sub_804BBE8(u8 a0)
REG_BG1VOFS = 0x15c;
REG_BG1CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(5) | BGCNT_TXT256x512;
- DmaCopy16Defvars(3, gUnknown_08210798, (void *)BG_SCREEN_ADDR(5), 0x1000);
- DmaCopyLarge16(3, gUnknown_0820CA98, (void *)BG_CHAR_ADDR(0), 0x1300, 0x1000);
+ DmaCopy16Defvars(3, gUnknown_08210798, BG_SCREEN_ADDR(5), 0x1000);
+ DmaCopyLarge16(3, gUnknown_0820CA98, BG_CHAR_ADDR(0), 0x1300, 0x1000);
REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON;
break;
case 2:
gUnknown_03004828->bg1vofs = 0;
gUnknown_03004828->bg1hofs = 0;
REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON;
- DmaCopy16Defvars(3, gUnknown_08211798, (void *)BG_SCREEN_ADDR(5), 0x800);
+ DmaCopy16Defvars(3, gUnknown_08211798, BG_SCREEN_ADDR(5), 0x800);
break;
case 3:
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON;
@@ -4708,8 +4708,8 @@ static void sub_804BBE8(u8 a0)
gUnknown_03004828->unk_010c = 0x78;
gUnknown_03004828->unk_010e = -0x46;
gUnknown_03004828->unk_011c = 0;
- DmaCopyLarge16(3, gUnknown_0820DD98, (void *)BG_CHAR_ADDR(1), 0x1a00, 0x1000);
- DmaCopy16Defvars(3, gUnknown_08211F98, (void *)BG_SCREEN_ADDR(18), 0x100);
+ DmaCopyLarge16(3, gUnknown_0820DD98, BG_CHAR_ADDR(1), 0x1a00, 0x1000);
+ DmaCopy16Defvars(3, gUnknown_08211F98, BG_SCREEN_ADDR(18), 0x100);
break;
case 4:
REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_OBJ_ON;
@@ -4719,20 +4719,20 @@ static void sub_804BBE8(u8 a0)
gUnknown_03004828->unk_0118 = 0x20;
gUnknown_03004828->unk_011a = 0x400;
gUnknown_03004828->unk_011c = 0;
- DmaCopyLarge16(3, gUnknown_08213738, (void *)BG_CHAR_ADDR(1), 0x2040, 0x1000);
- DmaCopy16Defvars(3, gUnknown_08215778, (void *)BG_SCREEN_ADDR(18), 0x100);
+ DmaCopyLarge16(3, gUnknown_08213738, BG_CHAR_ADDR(1), 0x2040, 0x1000);
+ DmaCopy16Defvars(3, gUnknown_08215778, BG_SCREEN_ADDR(18), 0x100);
break;
case 5:
gUnknown_03004828->bg1vofs = 0;
gUnknown_03004828->bg1hofs = 0;
REG_BG1CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(5);
- LZDecompressVram(gUnknown_08D00000, (void *)BG_CHAR_ADDR(0));
- CpuCopy16(gUnknown_08D00524, buffer = (u16 *)ewram, 0x1000);
+ LZDecompressVram(gUnknown_08D00000, BG_CHAR_ADDR(0));
+ CpuCopy16(gUnknown_08D00524, buffer = (u16 *)gSharedMem, 0x1000);
LoadCompressedPalette(gUnknown_08D004E0, 0x70, 0x20);
FillPalette(0, 0, 2);
for (i = 0; i < 0x280; i ++)
buffer[i] |= 0x7000;
- DmaCopy16Defvars(3, ewram, (void *)BG_SCREEN_ADDR(5), 0x500);
+ DmaCopy16Defvars(3, gSharedMem, BG_SCREEN_ADDR(5), 0x500);
MenuZeroFillWindowRect(2, 15, 27, 18);
break;
case 6:
@@ -4745,16 +4745,16 @@ static void sub_804BBE8(u8 a0)
gUnknown_03004828->unk_010c = 0x78;
gUnknown_03004828->unk_010e = 0x50;
gUnknown_03004828->unk_011c = 0;
- DmaCopyLarge16(3, gUnknown_08213738, (void *)BG_CHAR_ADDR(1), 0x2040, 0x1000);
- DmaCopy16Defvars(3, gUnknown_08215778, (void *)BG_SCREEN_ADDR(18), 0x100);
+ DmaCopyLarge16(3, gUnknown_08213738, BG_CHAR_ADDR(1), 0x2040, 0x1000);
+ DmaCopy16Defvars(3, gUnknown_08215778, BG_SCREEN_ADDR(18), 0x100);
break;
case 7:
gUnknown_03004828->bg2vofs = 0;
gUnknown_03004828->bg2hofs = 0;
REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(18) | BGCNT_TXT512x256;
LoadPalette(gUnknown_0820C9F8, 0x10, 0xa0);
- DmaCopyLarge16(3, gUnknown_0820CA98, (void *)BG_CHAR_ADDR(1), 0x1300, 0x1000);
- DmaCopy16Defvars(3, gUnknown_0820F798, (void *)BG_SCREEN_ADDR(18), 0x1000);
+ DmaCopyLarge16(3, gUnknown_0820CA98, BG_CHAR_ADDR(1), 0x1300, 0x1000);
+ DmaCopy16Defvars(3, gUnknown_0820F798, BG_SCREEN_ADDR(18), 0x1000);
break;
}
}
@@ -4989,8 +4989,8 @@ static bool8 sub_804C29C(void)
gSprites[gUnknown_03004828->unk_00bb].pos2.y += 3;
if (gSprites[gUnknown_03004828->unk_00ba].pos2.y <= -0x5a)
{
- gSprites[gUnknown_03004828->unk_00ba].data1 = 1;
- gSprites[gUnknown_03004828->unk_00bb].data1 = 1;
+ gSprites[gUnknown_03004828->unk_00ba].data[1] = 1;
+ gSprites[gUnknown_03004828->unk_00bb].data[1] = 1;
gUnknown_03004828->unk_00c4 ++;
}
break;
@@ -5036,8 +5036,8 @@ static bool8 sub_804C29C(void)
}
if (gSprites[gUnknown_03004828->pokePicSpriteIdxs[0]].pos2.y < -0xde)
{
- gSprites[gUnknown_03004828->unk_00ba].data1 = 0;
- gSprites[gUnknown_03004828->unk_00bb].data1 = 0;
+ gSprites[gUnknown_03004828->unk_00ba].data[1] = 0;
+ gSprites[gUnknown_03004828->unk_00bb].data[1] = 0;
gUnknown_03004828->unk_00c4 ++;
gSprites[gUnknown_03004828->pokePicSpriteIdxs[0]].invisible = TRUE;
gSprites[gUnknown_03004828->pokePicSpriteIdxs[1]].invisible = TRUE;
@@ -5169,7 +5169,7 @@ static bool8 sub_804C29C(void)
break;
case 63:
gUnknown_03004828->unk_0103 = CreateSprite(&gSpriteTemplate_821595C, 0x78, -0x8, 0);
- gSprites[gUnknown_03004828->unk_0103].data3 = 0x4a;
+ gSprites[gUnknown_03004828->unk_0103].data[3] = 0x4a;
gSprites[gUnknown_03004828->unk_0103].callback = sub_804D80C;
StartSpriteAnim(&gSprites[gUnknown_03004828->unk_0103], 1);
StartSpriteAffineAnim(&gSprites[gUnknown_03004828->unk_0103], 2);
@@ -5318,47 +5318,47 @@ static void sub_804D63C(void)
static void sub_804D6BC(struct Sprite *sprite)
{
- sprite->pos1.y += sprite->data0 / 10;
- sprite->data5 += sprite->data1;
- sprite->pos1.x = sprite->data5 / 10;
+ sprite->pos1.y += sprite->data[0] / 10;
+ sprite->data[5] += sprite->data[1];
+ sprite->pos1.x = sprite->data[5] / 10;
if (sprite->pos1.y > 0x4c)
{
sprite->pos1.y = 0x4c;
- sprite->data0 = -(sprite->data0 * sprite->data2) / 100;
- sprite->data3 ++;
+ sprite->data[0] = -(sprite->data[0] * sprite->data[2]) / 100;
+ sprite->data[3] ++;
}
if (sprite->pos1.x == 0x78)
- sprite->data1 = 0;
- sprite->data0 += sprite->data4;
- if (sprite->data3 == 4)
+ sprite->data[1] = 0;
+ sprite->data[0] += sprite->data[4];
+ if (sprite->data[3] == 4)
{
- sprite->data7 = 1;
+ sprite->data[7] = 1;
sprite->callback = SpriteCallbackDummy;
}
}
static void sub_804D738(struct Sprite *sprite)
{
- sprite->pos2.y += gTradeBallVerticalVelocityTable[sprite->data0];
- if (sprite->data0 == 22)
+ sprite->pos2.y += gTradeBallVerticalVelocityTable[sprite->data[0]];
+ if (sprite->data[0] == 22)
PlaySE(SE_KON);
- if (++ sprite->data0 == 44)
+ if (++ sprite->data[0] == 44)
{
PlaySE(SE_W025);
sprite->callback = sub_804D7AC;
- sprite->data0 = 0;
+ sprite->data[0] = 0;
BeginNormalPaletteFade(1 << (16 + sprite->oam.paletteNum), -1, 0, 16, -1);
}
}
static void sub_804D7AC(struct Sprite *sprite)
{
- if (sprite->data1 == 20)
+ if (sprite->data[1] == 20)
StartSpriteAffineAnim(sprite, 1);
- if (++ sprite->data1 > 20)
+ if (++ sprite->data[1] > 20)
{
- sprite->pos2.y -= gTradeBallVerticalVelocityTable[sprite->data0];
- if (++ sprite->data0 == 23)
+ sprite->pos2.y -= gTradeBallVerticalVelocityTable[sprite->data[0]];
+ if (++ sprite->data[0] == 23)
{
DestroySprite(sprite);
gUnknown_03004828->unk_00c4 = 14; // Resume the master trade animation
@@ -5368,25 +5368,25 @@ static void sub_804D7AC(struct Sprite *sprite)
static void sub_804D80C(struct Sprite *sprite)
{
- if (sprite->data2 == 0)
+ if (sprite->data[2] == 0)
{
- if ((sprite->pos1.y += 4) > sprite->data3)
+ if ((sprite->pos1.y += 4) > sprite->data[3])
{
- sprite->data2 ++;
- sprite->data0 = 0x16;
+ sprite->data[2] ++;
+ sprite->data[0] = 0x16;
PlaySE(SE_KON);
}
}
else
{
- if (sprite->data0 == 0x42)
+ if (sprite->data[0] == 0x42)
PlaySE(SE_KON2);
- if (sprite->data0 == 0x5c)
+ if (sprite->data[0] == 0x5c)
PlaySE(SE_KON3);
- if (sprite->data0 == 0x6b)
+ if (sprite->data[0] == 0x6b)
PlaySE(SE_KON4);
- sprite->pos2.y += gTradeBallVerticalVelocityTable[sprite->data0];
- if (++sprite->data0 == 0x6c)
+ sprite->pos2.y += gTradeBallVerticalVelocityTable[sprite->data[0]];
+ if (++sprite->data[0] == 0x6c)
sprite->callback = SpriteCallbackDummy;
}
}
@@ -5416,7 +5416,6 @@ static void sub_804D948(u8 whichPlayerMon, u8 whichInGameTrade)
struct MailStruct mail;
u8 metLocation = 0xFE;
u8 isMail;
- u8 *item;
struct Pokemon *pokemon = &gEnemyParty[0];
CreateMon(pokemon, inGameTrade->species, level, 32, TRUE, inGameTrade->personality, TRUE, inGameTrade->otId);
@@ -5424,7 +5423,7 @@ static void sub_804D948(u8 whichPlayerMon, u8 whichInGameTrade)
SetMonData(pokemon, MON_DATA_HP_IV, &inGameTrade->ivs[0]);
SetMonData(pokemon, MON_DATA_ATK_IV, &inGameTrade->ivs[1]);
SetMonData(pokemon, MON_DATA_DEF_IV, &inGameTrade->ivs[2]);
- SetMonData(pokemon, MON_DATA_SPD_IV, &inGameTrade->ivs[3]);
+ SetMonData(pokemon, MON_DATA_SPEED_IV, &inGameTrade->ivs[3]);
SetMonData(pokemon, MON_DATA_SPATK_IV, &inGameTrade->ivs[4]);
SetMonData(pokemon, MON_DATA_SPDEF_IV, &inGameTrade->ivs[5]);
SetMonData(pokemon, MON_DATA_NICKNAME, inGameTrade->name);
@@ -5447,12 +5446,11 @@ static void sub_804D948(u8 whichPlayerMon, u8 whichInGameTrade)
sub_804DAD4(&mail, inGameTrade);
gUnknown_02029700[0] = mail;
SetMonData(pokemon, MON_DATA_MAIL, &isMail);
- SetMonData(pokemon, MON_DATA_HELD_ITEM, (u8 *)&inGameTrade->heldItem);
+ SetMonData(pokemon, MON_DATA_HELD_ITEM, &inGameTrade->heldItem);
}
else
{
- item = (u8 *)&inGameTrade->heldItem;
- SetMonData(pokemon, MON_DATA_HELD_ITEM, item);
+ SetMonData(pokemon, MON_DATA_HELD_ITEM, &inGameTrade->heldItem);
}
}
CalculateMonStats(&gEnemyParty[0]);
@@ -5698,17 +5696,17 @@ static void sub_804E1DC(void)
numRibbons += GetMonData(&gEnemyParty[gUnknown_020297D8[1] % 6], MON_DATA_CHAMPION_RIBBON + i);
}
if (numRibbons != 0)
- FlagSet(SYS_RIBBON_GET);
+ FlagSet(FLAG_SYS_RIBBON_GET);
}
void sub_804E22C(void)
{
const u16 *src;
u16 *dest;
- LZDecompressVram(gUnknown_08D00000, (u8 *)VRAM);
- CpuCopy16(gUnknown_08D00524, ewram, 0x1000);
- src = (const u16 *)ewram;
- dest = (u16 *)(BG_SCREEN_ADDR(5));
+ LZDecompressVram(gUnknown_08D00000, (void *)VRAM);
+ CpuCopy16(gUnknown_08D00524, gSharedMem, 0x1000);
+ src = (const u16 *)gSharedMem;
+ dest = BG_SCREEN_ADDR(5);
DmaCopy16(3, src, dest, 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 bcb62ede6..207fa5f77 100644
--- a/src/engine/trainer_card.c
+++ b/src/engine/trainer_card.c
@@ -12,7 +12,7 @@
#include "pokedex.h"
#include "overworld.h"
#include "script_pokemon_80C4.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
@@ -20,6 +20,7 @@
#include "task.h"
#include "unknown_task.h"
#include "util.h"
+#include "ewram.h"
typedef void (*Callback)(void);
@@ -47,20 +48,10 @@ struct Struct2000000
/*0x9C*/ u8 language; // 0x9C
};
-extern u8 ewram[];
-#define ewram0 (*(struct Struct2000000 *)(ewram))
-
extern struct LinkPlayerMapObject gLinkPlayerMapObjects[];
EWRAM_DATA struct TrainerCard gTrainerCards[4] = {0};
-struct UnknownStruct1
-{
- u16 filler0[0x3C0];
- u16 unk780[160];
-};
-extern struct UnknownStruct1 gUnknown_03004DE0;
-
extern const u8 gBadgesTiles[];
extern const u16 gUnknown_083B5F0C[];
extern const u16 gBadgesPalette[];
@@ -70,7 +61,7 @@ extern const u16 gUnknown_083B5F8C[][4];
const u8 gBadgesTiles[] = INCBIN_U8("graphics/trainer_card/badges.4bpp");
// XXX: what is this?
-u8 *const ewram_ = ewram;
+u8 *const ewram_ = gSharedMem;
bool8 sub_8093864(struct Task *);
bool8 sub_80938A8(struct Task *);
@@ -189,14 +180,14 @@ void sub_8093110(Callback arg1)
{
sub_80932AC(arg1);
SetMainCallback2(sub_8093174);
- ewram0.language = GAME_LANGUAGE;
+ ewram0_2.language = GAME_LANGUAGE;
}
void sub_8093130(u8 playerIndex, Callback arg2)
{
sub_80932E4(playerIndex, arg2);
SetMainCallback2(sub_8093174);
- ewram0.language = gLinkPlayers[gLinkPlayerMapObjects[playerIndex].linkPlayerId].language;
+ ewram0_2.language = gLinkPlayers[gLinkPlayerMapObjects[playerIndex].linkPlayerId].language;
}
static void sub_8093174(void)
@@ -258,14 +249,14 @@ static void sub_8093254(void)
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
- ewram0.var_6++;
- if (ewram0.var_6 >= 60)
+ ewram0_2.var_6++;
+ if (ewram0_2.var_6 >= 60)
{
- ewram0.var_6 = 0;
- ewram0.var_5 ^= 1;
+ ewram0_2.var_6 = 0;
+ ewram0_2.var_5 ^= 1;
}
- if (ewram0.var_4)
- DmaCopy16(3, gUnknown_03004DE0.filler0, gUnknown_03004DE0.unk780, sizeof(gUnknown_03004DE0.unk780));
+ if (ewram0_2.var_4)
+ DmaCopy16(3, &gUnknown_03004DE0[0], &gUnknown_03004DE0[1], 0x140);
}
static void sub_80932AC(Callback callBack)
@@ -290,20 +281,20 @@ void sub_8093324(void)
{
u8 taskId = FindTaskIdByFunc(nullsub_60);
struct Task *task = &gTasks[taskId];
- ewram0.var_1 = task->data[TD_0];
+ ewram0_2.var_1 = task->data[TD_0];
- LoadWordFromTwoHalfwords((u16 *)&task->data[TD_CALLBACK], (u32 *)&ewram0.var_60);
+ LoadWordFromTwoHalfwords((u16 *)&task->data[TD_CALLBACK], (u32 *)&ewram0_2.var_60);
- if (ewram0.var_1)
+ if (ewram0_2.var_1)
{
struct TrainerCard(*trainerCards)[4] = &gTrainerCards;
s16 var = task->data[TD_1];
struct TrainerCard *dest = &(*trainerCards)[var];
- memcpy(&ewram0.var_64, dest, sizeof(struct TrainerCard));
+ memcpy(&ewram0_2.var_64, dest, sizeof(struct TrainerCard));
}
else
{
- sub_8093390(&ewram0.var_64);
+ sub_8093390(&ewram0_2.var_64);
}
}
@@ -311,16 +302,16 @@ static void nullsub_60(u8 taskid)
{
}
-void sub_8093390(struct TrainerCard *arg1)
+void sub_8093390(struct TrainerCard *trainerCard)
{
u32 playTime;
bool32 enteredHallOfFame;
bool8 r4;
u8 i;
- arg1->gender = gSaveBlock2.playerGender;
- arg1->playTimeHours = gSaveBlock2.playTimeHours;
- arg1->playTimeMinutes = gSaveBlock2.playTimeMinutes;
+ trainerCard->gender = gSaveBlock2.playerGender;
+ trainerCard->playTimeHours = gSaveBlock2.playTimeHours;
+ trainerCard->playTimeMinutes = gSaveBlock2.playTimeMinutes;
playTime = GetGameStat(GAME_STAT_FIRST_HOF_PLAY_TIME);
enteredHallOfFame = GetGameStat(GAME_STAT_ENTERED_HOF);
@@ -328,39 +319,39 @@ void sub_8093390(struct TrainerCard *arg1)
{
playTime = 0;
}
- arg1->firstHallOfFameA = playTime >> 16;
- arg1->firstHallOfFameB = (playTime >> 8) & 0xFF;
- arg1->firstHallOfFameC = playTime & 0xFF;
+ trainerCard->firstHallOfFameA = playTime >> 16;
+ trainerCard->firstHallOfFameB = (playTime >> 8) & 0xFF;
+ trainerCard->firstHallOfFameC = playTime & 0xFF;
- arg1->hasPokedex = FlagGet(SYS_POKEDEX_GET);
- arg1->var_3 = sub_8090FC0();
- arg1->pokedexSeen = GetPokedexSeenCount();
+ trainerCard->hasPokedex = FlagGet(FLAG_SYS_POKEDEX_GET);
+ trainerCard->var_3 = sub_8090FC0();
+ trainerCard->pokedexSeen = GetPokedexSeenCount();
- arg1->trainerId = (gSaveBlock2.playerTrainerId[1] << 8) | gSaveBlock2.playerTrainerId[0];
+ trainerCard->trainerId = (gSaveBlock2.playerTrainerId[1] << 8) | gSaveBlock2.playerTrainerId[0];
// Link Cable Battles
- arg1->linkBattleWins = sav12_xor_get_clamped_above(GAME_STAT_LINK_BATTLE_WINS, 9999);
- arg1->linkBattleLosses = sav12_xor_get_clamped_above(GAME_STAT_LINK_BATTLE_LOSSES, 9999);
+ trainerCard->linkBattleWins = sav12_xor_get_clamped_above(GAME_STAT_LINK_BATTLE_WINS, 9999);
+ trainerCard->linkBattleLosses = sav12_xor_get_clamped_above(GAME_STAT_LINK_BATTLE_LOSSES, 9999);
// Contests w/ Friends
- arg1->contestsWithFriends = sav12_xor_get_clamped_above(GAME_STAT_WON_LINK_CONTEST, 999);
+ trainerCard->contestsWithFriends = sav12_xor_get_clamped_above(GAME_STAT_WON_LINK_CONTEST, 999);
// Pokéblocks w/ Friends
- arg1->pokeblocksWithFriends = sav12_xor_get_clamped_above(GAME_STAT_POKEBLOCKS_WITH_FRIENDS, 0xFFFF);
+ trainerCard->pokeblocksWithFriends = sav12_xor_get_clamped_above(GAME_STAT_POKEBLOCKS_WITH_FRIENDS, 0xFFFF);
// Pokémon Trades
- arg1->pokemonTrades = sav12_xor_get_clamped_above(GAME_STAT_POKEMON_TRADES, 0xFFFF);
+ trainerCard->pokemonTrades = sav12_xor_get_clamped_above(GAME_STAT_POKEMON_TRADES, 0xFFFF);
- // Battle tower?
- arg1->battleTowerWins = gSaveBlock2.filler_A8.var_4C8;
- arg1->battleTowerLosses = gSaveBlock2.filler_A8.var_4CA;
- if (arg1->battleTowerWins > 9999)
+ // Battle Tower
+ trainerCard->battleTowerWins = gSaveBlock2.battleTower.totalBattleTowerWins;
+ trainerCard->battleTowerLosses = gSaveBlock2.battleTower.bestBattleTowerWinStreak;
+ if (trainerCard->battleTowerWins > 9999)
{
- arg1->battleTowerWins = 9999;
+ trainerCard->battleTowerWins = 9999;
}
- if (arg1->battleTowerLosses > 9999)
+ if (trainerCard->battleTowerLosses > 9999)
{
- arg1->battleTowerLosses = 9999;
+ trainerCard->battleTowerLosses = 9999;
}
r4 = FALSE;
@@ -368,21 +359,21 @@ void sub_8093390(struct TrainerCard *arg1)
{
r4 = TRUE;
}
- arg1->var_4 = r4;
+ trainerCard->var_4 = r4;
- arg1->money = gSaveBlock1.money;
+ trainerCard->money = gSaveBlock1.money;
for (i = 0; i < 4; i++)
{
- arg1->var_28[i] = gSaveBlock1.unk2B1C[i];
+ trainerCard->var_28[i] = gSaveBlock1.easyChats.unk2B1C[i];
}
for (i = 0; i < 8; i++)
{
- arg1->playerName[i] = gSaveBlock2.playerName[i];
+ trainerCard->playerName[i] = gSaveBlock2.playerName[i];
}
- arg1->stars = sub_80934F4(arg1);
+ trainerCard->stars = sub_80934F4(trainerCard);
}
u8 sub_80934C4(u8 id)
@@ -502,64 +493,64 @@ static void sub_8093688(void)
u8 i;
sub_8093324();
- ewram0.var_0 = 0;
- ewram0.var_3 = 0;
- ewram0.var_4 = FALSE;
- ewram0.var_2 = ewram0.var_64.stars;
- ewram0.var_5 = 0;
- ewram0.var_6 = 0;
+ ewram0_2.var_0 = 0;
+ ewram0_2.var_3 = 0;
+ ewram0_2.var_4 = FALSE;
+ ewram0_2.var_2 = ewram0_2.var_64.stars;
+ ewram0_2.var_5 = 0;
+ ewram0_2.var_6 = 0;
for (i = 0; i < 4; i++)
- EasyChat_GetWordText(ewram0.var_20[i], ewram0.var_64.var_28[i]);
+ EasyChat_GetWordText(ewram0_2.var_20[i], ewram0_2.var_64.var_28[i]);
sub_80936D4();
}
void sub_80936D4(void)
{
- ewram0.var_7 = 0;
- ewram0.var_8 = 0;
- ewram0.var_9 = 0;
- ewram0.var_a = 0;
- ewram0.var_b = 0;
- ewram0.var_c = 0;
- ewram0.var_d = 0;
- memset(ewram0.var_e, 0, sizeof(ewram0.var_e));
+ 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));
- if (ewram0.var_64.hasPokedex)
- ewram0.var_7++;
+ if (ewram0_2.var_64.hasPokedex)
+ ewram0_2.var_7++;
- if (ewram0.var_64.firstHallOfFameA != 0
- || ewram0.var_64.firstHallOfFameB != 0
- || ewram0.var_64.firstHallOfFameC != 0)
- ewram0.var_8++;
+ 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.var_64.linkBattleWins != 0 || ewram0.var_64.linkBattleLosses != 0)
- ewram0.var_9++;
+ if (ewram0_2.var_64.linkBattleWins != 0 || ewram0_2.var_64.linkBattleLosses != 0)
+ ewram0_2.var_9++;
- if (ewram0.var_64.battleTowerWins != 0 || ewram0.var_64.battleTowerLosses != 0)
- ewram0.var_a++;
+ if (ewram0_2.var_64.battleTowerWins != 0 || ewram0_2.var_64.battleTowerLosses != 0)
+ ewram0_2.var_a++;
- if (ewram0.var_64.contestsWithFriends != 0)
- ewram0.var_b++;
+ if (ewram0_2.var_64.contestsWithFriends != 0)
+ ewram0_2.var_b++;
- if (ewram0.var_64.pokeblocksWithFriends != 0)
- ewram0.var_c++;
+ if (ewram0_2.var_64.pokeblocksWithFriends != 0)
+ ewram0_2.var_c++;
- if (ewram0.var_64.pokemonTrades != 0)
- ewram0.var_d++;
+ if (ewram0_2.var_64.pokemonTrades != 0)
+ ewram0_2.var_d++;
- if (!ewram0.var_1)
+ if (!ewram0_2.var_1)
{
u32 badgeFlag;
int i = 0;
- badgeFlag = BADGE01_GET;
+ badgeFlag = FLAG_BADGE01_GET;
while (1)
{
if (FlagGet(badgeFlag))
- ewram0.var_e[i]++;
+ ewram0_2.var_e[i]++;
badgeFlag++;
i++;
- if (badgeFlag > BADGE08_GET)
+ if (badgeFlag > FLAG_BADGE08_GET)
{
break;
}
@@ -613,24 +604,24 @@ static void sub_809380C()
static void sub_809382C(u8 taskId)
{
- while (gUnknown_083B5EBC[ewram0.var_0](&gTasks[taskId]) != 0)
+ while (gUnknown_083B5EBC[ewram0_2.var_0](&gTasks[taskId]) != 0)
;
}
bool8 sub_8093864(struct Task *task)
{
- ewram0.var_5 = gSaveBlock2.playTimeSeconds & 1;
- ewram0.var_6 = gSaveBlock2.playTimeVBlanks;
+ ewram0_2.var_5 = gSaveBlock2.playTimeSeconds & 1;
+ ewram0_2.var_6 = gSaveBlock2.playTimeVBlanks;
sub_80939A4();
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
- ewram0.var_0++;
+ ewram0_2.var_0++;
return FALSE;
}
bool8 sub_80938A8(struct Task *task)
{
if (!gPaletteFade.active)
- ewram0.var_0++;
+ ewram0_2.var_0++;
return FALSE;
}
@@ -638,19 +629,19 @@ bool8 sub_80938CC(struct Task *task)
{
if (gMain.newKeys & B_BUTTON)
{
- ewram0.var_0 = 5;
+ ewram0_2.var_0 = 5;
return TRUE;
}
else if (gMain.newKeys & A_BUTTON)
{
- if (ewram0.var_3 != 0)
+ if (ewram0_2.var_3 != 0)
{
- ewram0.var_0 = 5;
+ ewram0_2.var_0 = 5;
}
else
{
- ewram0.var_3 ^= 1;
- ewram0.var_0 = 3;
+ ewram0_2.var_3 ^= 1;
+ ewram0_2.var_0 = 3;
}
return TRUE;
}
@@ -661,14 +652,14 @@ bool8 sub_8093918(struct Task *task)
{
sub_8093A28();
PlaySE(SE_CARD);
- ewram0.var_0++;
+ ewram0_2.var_0++;
return FALSE;
}
bool8 sub_8093938(struct Task *task)
{
if (sub_8093A48())
- ewram0.var_0 = 2;
+ ewram0_2.var_0 = 2;
return FALSE;
}
@@ -676,14 +667,14 @@ bool8 sub_8093954(struct Task *task)
{
sub_80939C0();
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
- ewram0.var_0++;
+ ewram0_2.var_0++;
return FALSE;
}
bool8 sub_8093980(struct Task *task)
{
if (!gPaletteFade.active)
- SetMainCallback2((MainCallback)ewram0.var_60);
+ SetMainCallback2((MainCallback)ewram0_2.var_60);
return FALSE;
}
@@ -706,9 +697,9 @@ static void sub_80939DC(u8 taskId)
u8 buffer[32];
struct Task *task = &gTasks[taskId];
- if (ewram0.var_5 != task->data[TD_1])
+ if (ewram0_2.var_5 != task->data[TD_1])
{
- task->data[TD_1] = ewram0.var_5;
+ task->data[TD_1] = ewram0_2.var_5;
task->data[TD_0] ^= TRUE;
}
TrainerCard_Front_PrintPlayTime(buffer, task->data[TD_0]);
@@ -739,14 +730,14 @@ static void sub_8093A68(u8 taskId)
bool8 sub_8093AA0(struct Task *task)
{
- s32 i;
+ u32 i;
- ewram0.var_4 = FALSE;
+ ewram0_2.var_4 = FALSE;
dp12_8087EA4();
- for (i = 0; i < ARRAY_COUNT(gUnknown_03004DE0.unk780); i++)
- gUnknown_03004DE0.unk780[i] = -4;
+ for (i = 0; i < 0xA0; i++)
+ gUnknown_03004DE0[1][i] = -4;
SetHBlankCallback(sub_8093D7C);
- ewram0.var_4 = TRUE;
+ ewram0_2.var_4 = TRUE;
task->data[0]++;
return FALSE;
}
@@ -763,7 +754,7 @@ bool8 sub_8093AF0(struct Task *task)
u32 sp0;
s16 i;
- ewram0.var_4 = 0;
+ ewram0_2.var_4 = 0;
task->data[1] += 3;
if (task->data[1] > 79)
task->data[1] = 79;
@@ -792,7 +783,7 @@ bool8 sub_8093AF0(struct Task *task)
}
for (; i < 160; i++)
gUnknown_03004DE0.filler0[i] = -4 + (u16)(r10 >> 16);
- ewram0.var_4 = 1;
+ ewram0_2.var_4 = 1;
if (task->data[1] > 0x4A)
task->data[0]++;
return FALSE;
@@ -810,7 +801,7 @@ bool8 sub_8093AF0(struct Task *task)
push {r5-r7}\n\
sub sp, 0x4\n\
mov r8, r0\n\
- ldr r1, _08093BFC @ =0x02000000\n\
+ ldr r1, _08093BFC @ =gSharedMem\n\
movs r0, 0\n\
strb r0, [r1, 0x4]\n\
mov r2, r8\n\
@@ -923,7 +914,7 @@ _08093BBE:\n\
ble _08093BBE\n\
_08093BD4:\n\
movs r0, 0x1\n\
- ldr r1, _08093BFC @ =0x02000000\n\
+ ldr r1, _08093BFC @ =gSharedMem\n\
strb r0, [r1, 0x4]\n\
mov r2, r8\n\
movs r4, 0xA\n\
@@ -944,7 +935,7 @@ _08093BEA:\n\
pop {r1}\n\
bx r1\n\
.align 2, 0\n\
-_08093BFC: .4byte 0x02000000\n\
+_08093BFC: .4byte gSharedMem\n\
_08093C00: .4byte 0xffff0000\n\
_08093C04: .4byte gUnknown_03004DE0\n\
_08093C08: .4byte 0x0000fffc\n\
@@ -955,7 +946,7 @@ bool8 sub_8093C0C(struct Task *task)
{
sub_80939C0();
sub_8093DAC();
- if (!ewram0.var_3)
+ if (!ewram0_2.var_3)
sub_80939A4();
task->data[0]++;
return TRUE;
@@ -972,7 +963,7 @@ bool8 sub_8093C38(struct Task *task)
push {r5-r7}\n\
sub sp, 0x4\n\
mov r8, r0\n\
- ldr r1, _08093D40 @ =0x02000000\n\
+ ldr r1, _08093D40 @ =gSharedMem\n\
movs r2, 0\n\
strb r2, [r1, 0x4]\n\
ldrh r0, [r0, 0xA]\n\
@@ -1083,7 +1074,7 @@ _08093D02:\n\
ble _08093D02\n\
_08093D18:\n\
movs r0, 0x1\n\
- ldr r1, _08093D40 @ =0x02000000\n\
+ ldr r1, _08093D40 @ =gSharedMem\n\
strb r0, [r1, 0x4]\n\
mov r2, r8\n\
movs r3, 0xA\n\
@@ -1104,7 +1095,7 @@ _08093D2E:\n\
pop {r1}\n\
bx r1\n\
.align 2, 0\n\
-_08093D40: .4byte 0x02000000\n\
+_08093D40: .4byte gSharedMem\n\
_08093D44: .4byte 0xffff0000\n\
_08093D48: .4byte gUnknown_03004DE0\n\
_08093D4C: .4byte 0x0000fffc\n\
@@ -1115,7 +1106,7 @@ bool8 sub_8093D50(struct Task *task)
{
u8 taskId;
- ewram0.var_4 = FALSE;
+ ewram0_2.var_4 = FALSE;
SetHBlankCallback(NULL);
sub_8093E04();
taskId = FindTaskIdByFunc(sub_8093A68);
@@ -1125,7 +1116,7 @@ bool8 sub_8093D50(struct Task *task)
void sub_8093D7C(void)
{
- u16 bgVOffset = gUnknown_03004DE0.unk780[REG_VCOUNT & 0xFF];
+ u16 bgVOffset = gUnknown_03004DE0[1][REG_VCOUNT & 0xFF];
REG_BG0VOFS = bgVOffset;
REG_BG1VOFS = bgVOffset;
@@ -1134,7 +1125,7 @@ void sub_8093D7C(void)
static void sub_8093DAC(void)
{
- if (ewram0.var_3)
+ if (ewram0_2.var_3)
sub_8093DEC();
else
sub_8093DC8();
@@ -1203,23 +1194,23 @@ extern const u16 *const gUnknown_083B5EF8[];
void sub_8093EA0(void)
{
- LoadPalette(gUnknown_083B5EF8[ewram0.var_2], 0, 48 * 2);
+ LoadPalette(gUnknown_083B5EF8[ewram0_2.var_2], 0, 48 * 2);
LoadPalette(gBadgesPalette, 48, 16 * 2);
LoadPalette(gUnknown_083B5F4C, 64, 16 * 2);
- if (ewram0.var_64.gender != MALE)
+ if (ewram0_2.var_64.gender != MALE)
LoadPalette(gUnknown_083B5F0C, 16, 16 * 2);
}
static void sub_8093EF8(void)
{
- LoadTrainerGfx_TrainerCard(ewram0.var_64.gender, 80, (void *)(VRAM + 0x1880));
+ LoadTrainerGfx_TrainerCard(ewram0_2.var_64.gender, 80, (void *)(VRAM + 0x1880));
}
static void sub_8093F14(void)
{
const void *arr[] = {gUnknown_08E8CAC0, gUnknown_08E8D4C0};
- CpuFastSet(arr[ewram0.var_1], (void *)(VRAM + 0x4800), 0x140);
+ CpuFastSet(arr[ewram0_2.var_1], (void *)(VRAM + 0x4800), 0x140);
}
// I don't really know where to put the data. It's in such a weird order.
@@ -1269,7 +1260,7 @@ static void sub_8093FD0(void)
{
u16 *ptr = (u16 *)(VRAM + 0x4000);
s16 i = 15;
- s16 var = 15 + ewram0.var_2;
+ s16 var = 15 + ewram0_2.var_2;
while (i < var)
{
@@ -1285,7 +1276,7 @@ static void sub_8093FD0(void)
static void sub_8094038(void)
{
- if (ewram0.var_1 == 0)
+ if (ewram0_2.var_1 == 0)
{
u16 *ptr = (u16 *)(VRAM + 0x4000);
s16 i;
@@ -1293,7 +1284,7 @@ static void sub_8094038(void)
for (i = 0, r2 = 4; i < 8; i++, r2 += 3)
{
- if (ewram0.var_e[i] != 0)
+ if (ewram0_2.var_e[i] != 0)
{
ptr[15 * 32 + r2 + 0] = gUnknown_083B5F8C[i][0] | 0x3000;
ptr[15 * 32 + r2 + 1] = gUnknown_083B5F8C[i][1] | 0x3000;
@@ -1332,8 +1323,8 @@ static void sub_8094140(void)
BasicInitMenuWindow(&WindowConfig_TrainerCard_Back_Values);
buffer = gStringVar1;
- StringCopy(buffer, ewram0.var_64.playerName);
- ConvertInternationalString(buffer, ewram0.language);
+ StringCopy(buffer, ewram0_2.var_64.playerName);
+ ConvertInternationalString(buffer, ewram0_2.language);
MenuPrint(buffer, 7, 5);
TrainerCard_Front_PrintTrainerID();
@@ -1366,26 +1357,26 @@ static void TrainerCard_Front_PrintTrainerID(void)
{
u8 buffer[8];
- ConvertIntToDecimalStringN(buffer, ewram0.var_64.trainerId, STR_CONV_MODE_LEADING_ZEROS, 5);
+ ConvertIntToDecimalStringN(buffer, ewram0_2.var_64.trainerId, STR_CONV_MODE_LEADING_ZEROS, 5);
MenuPrint(buffer, 20, 2);
}
static void TrainerCard_Front_PrintMoney(void)
{
- sub_80B7AEC(ewram0.var_64.money, 16, 8);
+ sub_80B7AEC(ewram0_2.var_64.money, 16, 8);
}
static void TrainerCard_Front_PrintPokedexCount(void)
{
u8 buffer[16];
- if (ewram0.var_7 == FALSE)
+ if (ewram0_2.var_7 == FALSE)
{
sub_8094110();
}
else
{
- ConvertIntToDecimalStringN(buffer, ewram0.var_64.pokedexSeen, STR_CONV_MODE_LEFT_ALIGN, 3);
+ ConvertIntToDecimalStringN(buffer, ewram0_2.var_64.pokedexSeen, STR_CONV_MODE_LEFT_ALIGN, 3);
MenuPrint_RightAligned(buffer, 16, 10);
}
}
@@ -1398,10 +1389,10 @@ static void TrainerCard_Front_PrintPlayTime(u8 *arg1, s16 colon)
playTimeHours = gSaveBlock2.playTimeHours;
playTimeMinutes = gSaveBlock2.playTimeMinutes;
- if (ewram0.var_1 != 0)
+ if (ewram0_2.var_1 != 0)
{
- playTimeHours = ewram0.var_64.playTimeHours;
- playTimeMinutes = ewram0.var_64.playTimeMinutes;
+ playTimeHours = ewram0_2.var_64.playTimeHours;
+ playTimeMinutes = ewram0_2.var_64.playTimeMinutes;
}
FormatPlayTime(buffer, playTimeHours, playTimeMinutes, colon);
sub_8072C74(arg1, buffer, 48, 1);
@@ -1411,20 +1402,20 @@ static void sub_809429C(void)
{
u8 *str;
- if (ewram0.var_1 != 0)
+ if (ewram0_2.var_1 != 0)
{
str = gStringVar1;
- str = StringCopy(str, ewram0.var_20[0]);
+ str = StringCopy(str, ewram0_2.var_20[0]);
str[0] = 00;
str++;
- str = StringCopy(str, ewram0.var_20[1]);
+ str = StringCopy(str, ewram0_2.var_20[1]);
MenuPrint(gStringVar1, 2, 14);
str = gStringVar1;
- str = StringCopy(str, ewram0.var_20[2]);
+ str = StringCopy(str, ewram0_2.var_20[2]);
str[0] = 00;
str++;
- str = StringCopy(str, ewram0.var_20[3]);
+ str = StringCopy(str, ewram0_2.var_20[3]);
MenuPrint(gStringVar1, 2, 16);
}
}
@@ -1434,8 +1425,8 @@ static void TrainerCard_Back_PrintName(void)
u8 *str;
str = gStringVar1;
- StringCopy(str, ewram0.var_64.playerName);
- ConvertInternationalString(str, ewram0.language);
+ StringCopy(str, ewram0_2.var_64.playerName);
+ ConvertInternationalString(str, ewram0_2.language);
#if ENGLISH
StringAppend(str, gOtherText_TrainersTrainerCard);
@@ -1448,7 +1439,7 @@ static void TrainerCard_Back_PrintName(void)
static void TrainerCard_Back_PrintHallOfFameTime_Label(void)
{
- if (ewram0.var_8 != 0)
+ if (ewram0_2.var_8 != 0)
MenuPrint(gOtherText_FirstHOF, 3, 5);
}
@@ -1456,21 +1447,21 @@ static void TrainerCard_Back_PrintHallOfFameTime(void)
{
u8 *str;
- if (ewram0.var_8 != 0)
+ if (ewram0_2.var_8 != 0)
{
str = gStringVar1;
- str = ConvertIntToDecimalStringN(str, ewram0.var_64.firstHallOfFameA, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ str = ConvertIntToDecimalStringN(str, ewram0_2.var_64.firstHallOfFameA, STR_CONV_MODE_RIGHT_ALIGN, 3);
str = StringCopy(str, gUnknown_083B5EF4);
- str = ConvertIntToDecimalStringN(str, ewram0.var_64.firstHallOfFameB, STR_CONV_MODE_LEADING_ZEROS, 2);
+ str = ConvertIntToDecimalStringN(str, ewram0_2.var_64.firstHallOfFameB, STR_CONV_MODE_LEADING_ZEROS, 2);
str = StringCopy(str, gUnknown_083B5EF4);
- str = ConvertIntToDecimalStringN(str, ewram0.var_64.firstHallOfFameC, STR_CONV_MODE_LEADING_ZEROS, 2);
+ str = ConvertIntToDecimalStringN(str, ewram0_2.var_64.firstHallOfFameC, STR_CONV_MODE_LEADING_ZEROS, 2);
MenuPrint_RightAligned(gStringVar1, 28, 5);
}
}
static void TrainerCard_Back_PrintLinkBattlesLabel(void)
{
- if (ewram0.var_9 != 0)
+ if (ewram0_2.var_9 != 0)
MenuPrint(gOtherText_LinkCableBattles, 3, 7);
}
@@ -1478,19 +1469,19 @@ static void TrainerCard_Back_PrintLinkBattles(void)
{
u8 buffer[16];
- if (ewram0.var_9 != 0)
+ if (ewram0_2.var_9 != 0)
{
- ConvertIntToDecimalString(buffer, ewram0.var_64.linkBattleWins);
+ ConvertIntToDecimalString(buffer, ewram0_2.var_64.linkBattleWins);
MenuPrint_RightAligned(buffer, 22, 7);
- ConvertIntToDecimalString(buffer, ewram0.var_64.linkBattleLosses);
+ ConvertIntToDecimalString(buffer, ewram0_2.var_64.linkBattleLosses);
MenuPrint_RightAligned(buffer, 28, 7);
}
}
static void TrainerCard_Back_PrintBattleTower_Label(void)
{
- if (ewram0.var_a != 0)
+ if (ewram0_2.var_a != 0)
MenuPrint(gOtherText_BattleTowerWinRecord, 3, 15);
}
@@ -1498,19 +1489,19 @@ static void TrainerCard_Back_PrintBattleTower(void)
{
u8 buffer[16];
- if (ewram0.var_a != 0)
+ if (ewram0_2.var_a != 0)
{
- sub_8072C44(buffer, ewram0.var_64.battleTowerWins, 24, 1);
+ sub_8072C44(buffer, ewram0_2.var_64.battleTowerWins, 24, 1);
MenuPrint_PixelCoords(buffer, 112, 120, 0);
- sub_8072C44(buffer, ewram0.var_64.battleTowerLosses, 24, 1);
+ sub_8072C44(buffer, ewram0_2.var_64.battleTowerLosses, 24, 1);
MenuPrint_PixelCoords(buffer, 149, 120, 0);
}
}
static void TrainerCard_Back_PrintLinkContests_Label(void)
{
- if (ewram0.var_b != 0)
+ if (ewram0_2.var_b != 0)
MenuPrint(gOtherText_ContestRecord, 3, 13);
}
@@ -1518,16 +1509,16 @@ static void TrainerCard_Back_PrintLinkContests(void)
{
u8 buffer[8];
- if (ewram0.var_b != 0)
+ if (ewram0_2.var_b != 0)
{
- ConvertIntToDecimalStringN(buffer, ewram0.var_64.contestsWithFriends, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ ConvertIntToDecimalStringN(buffer, ewram0_2.var_64.contestsWithFriends, STR_CONV_MODE_RIGHT_ALIGN, 3);
MenuPrint_RightAligned(buffer, 28, 13);
}
}
static void TrainerCard_Back_PrintLinkPokeblocks_Label(void)
{
- if (ewram0.var_c != 0)
+ if (ewram0_2.var_c != 0)
MenuPrint(gOtherText_MixingRecord, 3, 11);
}
@@ -1535,16 +1526,16 @@ static void TrainerCard_Back_PrintLinkPokeblocks(void)
{
u8 buffer[8];
- if (ewram0.var_c != 0)
+ if (ewram0_2.var_c != 0)
{
- ConvertIntToDecimalStringN(buffer, ewram0.var_64.pokeblocksWithFriends, STR_CONV_MODE_RIGHT_ALIGN, 5);
+ ConvertIntToDecimalStringN(buffer, ewram0_2.var_64.pokeblocksWithFriends, STR_CONV_MODE_RIGHT_ALIGN, 5);
MenuPrint_RightAligned(buffer, 28, 11);
}
}
static void TrainerCard_Back_PrintPokemonTrades_Label(void)
{
- if (ewram0.var_d != 0)
+ if (ewram0_2.var_d != 0)
MenuPrint(gOtherText_TradeRecord, 3, 9);
}
@@ -1552,9 +1543,9 @@ static void TrainerCard_Back_PrintPokemonTrades(void)
{
u8 buffer[8];
- if (ewram0.var_d != 0)
+ if (ewram0_2.var_d != 0)
{
- ConvertIntToDecimalStringN(buffer, ewram0.var_64.pokemonTrades, STR_CONV_MODE_RIGHT_ALIGN, 5);
+ ConvertIntToDecimalStringN(buffer, ewram0_2.var_64.pokemonTrades, STR_CONV_MODE_RIGHT_ALIGN, 5);
MenuPrint_RightAligned(buffer, 28, 9);
}
}
diff --git a/src/field/battle_tower.c b/src/field/battle_tower.c
new file mode 100644
index 000000000..6b6064c16
--- /dev/null
+++ b/src/field/battle_tower.c
@@ -0,0 +1,2373 @@
+#include "global.h"
+#include "battle.h"
+#include "battle_setup.h"
+#include "battle_tower.h"
+#include "battle_transition.h"
+#include "data2.h"
+#include "easy_chat.h"
+#include "constants/easy_chat.h"
+#include "event_data.h"
+#include "item.h"
+#include "constants/items.h"
+#include "main.h"
+#include "constants/map_objects.h"
+#include "constants/moves.h"
+#include "new_game.h"
+#include "overworld.h"
+#include "pokedex.h"
+#include "random.h"
+#include "save.h"
+#include "script_pokemon_80C4.h"
+#include "constants/species.h"
+#include "string_util.h"
+#include "task.h"
+#include "text.h"
+#include "trainer.h"
+#include "tv.h"
+#include "constants/vars.h"
+#include "ewram.h"
+
+#if ENGLISH
+#include "../data/battle_tower/trainers.h"
+#elif GERMAN
+#include "../data/battle_tower/trainers_de.h"
+#endif
+
+static const u16 sBattleTowerHeldItems[] = {
+ ITEM_NONE,
+ ITEM_KINGS_ROCK,
+ ITEM_SITRUS_BERRY,
+ ITEM_ORAN_BERRY,
+ ITEM_CHESTO_BERRY,
+ ITEM_HARD_STONE,
+ ITEM_FOCUS_BAND,
+ ITEM_PERSIM_BERRY,
+ ITEM_MIRACLE_SEED,
+ ITEM_BERRY_JUICE,
+ ITEM_MACHO_BRACE,
+ ITEM_SILVER_POWDER,
+ ITEM_CHERI_BERRY,
+ ITEM_BLACK_GLASSES,
+ ITEM_BLACK_BELT,
+ ITEM_SOUL_DEW,
+ ITEM_CHOICE_BAND,
+ ITEM_MAGNET,
+ ITEM_SILK_SCARF,
+ ITEM_WHITE_HERB,
+ ITEM_DEEP_SEA_SCALE,
+ ITEM_DEEP_SEA_TOOTH,
+ ITEM_MYSTIC_WATER,
+ ITEM_SHARP_BEAK,
+ ITEM_QUICK_CLAW,
+ ITEM_LEFTOVERS,
+ ITEM_RAWST_BERRY,
+ ITEM_LIGHT_BALL,
+ ITEM_POISON_BARB,
+ ITEM_NEVER_MELT_ICE,
+ ITEM_ASPEAR_BERRY,
+ ITEM_SPELL_TAG,
+ ITEM_BRIGHT_POWDER,
+ ITEM_LEPPA_BERRY,
+ ITEM_SCOPE_LENS,
+ ITEM_TWISTED_SPOON,
+ ITEM_METAL_COAT,
+ ITEM_MENTAL_HERB,
+ ITEM_CHARCOAL,
+ ITEM_PECHA_BERRY,
+ ITEM_SOFT_SAND,
+ ITEM_LUM_BERRY,
+ ITEM_DRAGON_SCALE,
+ ITEM_DRAGON_FANG,
+ ITEM_IAPAPA_BERRY,
+ ITEM_WIKI_BERRY,
+ ITEM_SEA_INCENSE,
+ ITEM_SHELL_BELL,
+ ITEM_SALAC_BERRY,
+ ITEM_LANSAT_BERRY,
+ ITEM_APICOT_BERRY,
+ ITEM_STARF_BERRY,
+ ITEM_LIECHI_BERRY,
+ ITEM_STICK,
+ ITEM_LAX_INCENSE,
+ ITEM_AGUAV_BERRY,
+ ITEM_FIGY_BERRY,
+ ITEM_THICK_CLUB,
+ ITEM_MAGO_BERRY,
+ ITEM_METAL_POWDER,
+ ITEM_PETAYA_BERRY,
+ ITEM_LUCKY_PUNCH,
+ ITEM_GANLON_BERRY,
+};
+
+#include "../data/battle_tower/level_50_mons.h"
+#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,
+};
+
+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,
+};
+
+static const u8 sMaleTrainerGfxIds[] = {
+ MAP_OBJ_GFX_HIKER,
+ MAP_OBJ_GFX_TUBER_M,
+ MAP_OBJ_GFX_MAN_4,
+ MAP_OBJ_GFX_BOY_4,
+ MAP_OBJ_GFX_MANIAC,
+ MAP_OBJ_GFX_RUNNING_TRIATHLETE_M,
+ MAP_OBJ_GFX_BLACK_BELT,
+ MAP_OBJ_GFX_MAN_6,
+ MAP_OBJ_GFX_MAN_6,
+ MAP_OBJ_GFX_CAMPER,
+ MAP_OBJ_GFX_MANIAC,
+ MAP_OBJ_GFX_PSYCHIC_M,
+ MAP_OBJ_GFX_GENTLEMAN,
+ MAP_OBJ_GFX_SCHOOL_KID_M,
+ MAP_OBJ_GFX_MAN_3,
+ MAP_OBJ_GFX_OLD_MAN_1,
+ MAP_OBJ_GFX_YOUNGSTER,
+ MAP_OBJ_GFX_FISHERMAN,
+ MAP_OBJ_GFX_CYCLING_TRIATHLETE_M,
+ MAP_OBJ_GFX_RUNNING_TRIATHLETE_M,
+ MAP_OBJ_GFX_RUNNING_TRIATHLETE_M,
+ MAP_OBJ_GFX_MAN_4,
+ MAP_OBJ_GFX_MAN_6,
+ MAP_OBJ_GFX_LITTLE_BOY_1,
+ MAP_OBJ_GFX_SAILOR,
+ MAP_OBJ_GFX_MANIAC,
+ MAP_OBJ_GFX_MAN_5,
+ MAP_OBJ_GFX_CAMPER,
+ MAP_OBJ_GFX_BUG_CATCHER,
+ MAP_OBJ_GFX_HIKER,
+};
+
+static const u8 sFemaleTrainerGfxIds[] = {
+ MAP_OBJ_GFX_WOMAN_3,
+ MAP_OBJ_GFX_TUBER_F,
+ MAP_OBJ_GFX_WOMAN_7,
+ MAP_OBJ_GFX_WOMAN_1,
+ MAP_OBJ_GFX_WOMAN_3,
+ MAP_OBJ_GFX_BEAUTY,
+ MAP_OBJ_GFX_LASS,
+ MAP_OBJ_GFX_GIRL_3,
+ MAP_OBJ_GFX_WOMAN_2,
+ MAP_OBJ_GFX_OLD_WOMAN_1,
+ MAP_OBJ_GFX_CYCLING_TRIATHLETE_F,
+ MAP_OBJ_GFX_RUNNING_TRIATHLETE_F,
+ MAP_OBJ_GFX_RUNNING_TRIATHLETE_F,
+ MAP_OBJ_GFX_GIRL_3,
+ MAP_OBJ_GFX_WOMAN_7,
+ MAP_OBJ_GFX_RUNNING_TRIATHLETE_F,
+ MAP_OBJ_GFX_PICNICKER,
+ MAP_OBJ_GFX_WOMAN_3,
+ MAP_OBJ_GFX_PICNICKER,
+ MAP_OBJ_GFX_LASS,
+};
+
+const u16 gBattleTowerBannedSpecies[] = {
+ SPECIES_MEW,
+ SPECIES_MEWTWO,
+ SPECIES_HO_OH,
+ SPECIES_LUGIA,
+ SPECIES_CELEBI,
+ SPECIES_KYOGRE,
+ SPECIES_GROUDON,
+ SPECIES_RAYQUAZA,
+ SPECIES_JIRACHI,
+ SPECIES_DEOXYS,
+ 0xFFFF,
+};
+
+// Item prizes for battle tower streaks of 5 or fewer sets.
+/*static*/ const u16 sShortStreakPrizes[] = {
+ ITEM_HP_UP,
+ ITEM_PROTEIN,
+ ITEM_IRON,
+ ITEM_CALCIUM,
+ ITEM_CARBOS,
+ ITEM_ZINC,
+};
+
+// Item prizes for battle tower streaks of greater than 5 sets.
+/*static*/ const u16 sLongStreakPrizes[] = {
+ ITEM_BRIGHT_POWDER,
+ ITEM_WHITE_HERB,
+ ITEM_QUICK_CLAW,
+ ITEM_LEFTOVERS,
+ ITEM_MENTAL_HERB,
+ ITEM_KINGS_ROCK,
+ ITEM_FOCUS_BAND,
+ ITEM_SCOPE_LENS,
+ ITEM_CHOICE_BAND,
+};
+
+static void ResetBattleTowerStreak(u8 levelType);
+static void ValidateBattleTowerRecordChecksums(void);
+static void PrintEReaderTrainerFarewellMessage(void);
+extern void SetBattleTowerTrainerGfxId(u8);
+extern void sub_8135A3C(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);
+static void SetBattleTowerRecordChecksum(struct BattleTowerRecord *);
+static void ClearBattleTowerRecord(struct BattleTowerRecord *);
+
+extern const u8 BattleText_Format3[];
+extern const u8 BattleText_Format4[];
+extern const u8 BattleText_Format5[];
+extern const u8 BattleText_Format6[];
+extern const u8 BattleText_Format7[];
+extern const u8 BattleText_Format8[];
+extern const u8 BattleText_Format9[];
+extern u16 gSpecialVar_0x8004;
+extern u8 gTrainerClassToPicIndex[];
+extern u8 gTrainerClassToNameIndex[];
+extern u16 gTrainerBattleOpponent;
+extern u16 gBattleTypeFlags;
+extern u8 gSelectedOrderFromParty[];
+extern u8 gBattleOutcome;
+extern struct Pokemon gUnknown_030042FC[];
+extern struct BattlePokemon gBattleMons[];
+
+void sub_8134548(void)
+{
+ u8 var1 = 0;
+ s32 levelType;
+
+ for (levelType = 0; levelType < 2; levelType++)
+ {
+ switch (gSaveBlock2.battleTower.var_4AE[levelType])
+ {
+ case 0:
+ default:
+ ResetBattleTowerStreak(levelType);
+ if (!var1)
+ {
+ VarSet(VAR_0x4000, 5);
+ }
+ break;
+ case 1:
+ ResetBattleTowerStreak(levelType);
+ VarSet(VAR_0x4000, 1);
+ var1++;
+ break;
+ case 4:
+ VarSet(VAR_0x4000, 2);
+ var1++;
+ break;
+ case 5:
+ VarSet(VAR_0x4000, 3);
+ var1++;
+ break;
+ case 2:
+ VarSet(VAR_0x4000, 4);
+ var1++;
+ break;
+ case 3:
+ case 6:
+ break;
+ }
+ }
+
+ if ((gSaveBlock2.battleTower.var_4AE[0] == 3 || gSaveBlock2.battleTower.var_4AE[0] == 6)
+ && (gSaveBlock2.battleTower.var_4AE[1] == 3 || gSaveBlock2.battleTower.var_4AE[1] == 6))
+ {
+ VarSet(VAR_0x4000, 5);
+ }
+
+ ValidateBattleTowerRecordChecksums();
+}
+
+void ResetBattleTowerStreak(u8 levelType)
+{
+ gSaveBlock2.battleTower.var_4AE[levelType] = 0;
+ gSaveBlock2.battleTower.curChallengeBattleNum[levelType] = 1;
+ gSaveBlock2.battleTower.curStreakChallengesNum[levelType] = 1;
+}
+
+// Checks if the next trainer in Battle Tower should be the E-Reader trainer.
+bool8 ShouldBattleEReaderTrainer(u8 levelType, u16 winStreak)
+{
+ u8 trainerTeamLevel;
+ u8 monLevel;
+ s32 i;
+ u16 validPartySpecies[6];
+ u16 validPartyHeldItems[6];
+ u8 numValid;
+
+ numValid = 0;
+
+ ValidateEReaderTrainer();
+
+ if (gSpecialVar_Result != 0 || gSaveBlock2.battleTower.ereaderTrainer.winStreak != winStreak)
+ {
+ return FALSE;
+ }
+
+ trainerTeamLevel = 50;
+ if (levelType != 0)
+ {
+ trainerTeamLevel = 100;
+ }
+
+ for (i = 0; i < 3; i++)
+ {
+ monLevel = gSaveBlock2.battleTower.ereaderTrainer.party[i].level;
+ if (gSaveBlock2.battleTower.ereaderTrainer.party[i].level != trainerTeamLevel)
+ {
+ return FALSE;
+ }
+
+ CheckMonBattleTowerBanlist(
+ gSaveBlock2.battleTower.ereaderTrainer.party[i].species,
+ gSaveBlock2.battleTower.ereaderTrainer.party[i].heldItem,
+ 1,
+ levelType,
+ monLevel,
+ validPartySpecies,
+ validPartyHeldItems,
+ &numValid);
+ }
+
+ return numValid == 3;
+}
+
+bool8 sub_81346F4(void)
+{
+ s32 recordIndex, i;
+ u8 battleTowerLevelType;
+ u16 winStreak;
+ bool8 retVal;
+ s32 numCandidates;
+ u32 trainerIds[5];
+
+ numCandidates = 0;
+ battleTowerLevelType = gSaveBlock2.battleTower.battleTowerLevelType;
+
+ winStreak = GetCurrentBattleTowerWinStreak(battleTowerLevelType);
+ if (ShouldBattleEReaderTrainer(battleTowerLevelType, winStreak))
+ {
+ gSaveBlock2.battleTower.battleTowerTrainerId = BATTLE_TOWER_EREADER_TRAINER_ID;
+ retVal = TRUE;
+ }
+ else
+ {
+ // Check if one of the battle tower trainers from record mixing should be the next trainer.
+ for (recordIndex = 0; recordIndex < 5; recordIndex++)
+ {
+ struct BattleTowerRecord *record = &gSaveBlock2.battleTower.records[recordIndex];
+ u32 recordHasData = 0;
+ u32 checksum = 0;
+ for (i = 0; i < sizeof(struct BattleTowerRecord) / sizeof(u32) - 1; i++)
+ {
+ recordHasData |= ((u32 *)record)[i];
+ checksum += ((u32 *)record)[i];
+ }
+
+ if (gSaveBlock2.battleTower.records[recordIndex].winStreak == winStreak
+ && gSaveBlock2.battleTower.records[recordIndex].battleTowerLevelType == battleTowerLevelType
+ && recordHasData
+ && gSaveBlock2.battleTower.records[recordIndex].checksum == checksum)
+ {
+ trainerIds[numCandidates] = recordIndex;
+ numCandidates++;
+ }
+ }
+
+ if (numCandidates == 0)
+ {
+ retVal = FALSE;
+ }
+ else
+ {
+ gSaveBlock2.battleTower.battleTowerTrainerId = trainerIds[Random() % numCandidates] + BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID;
+ retVal = TRUE;
+ }
+ }
+
+ return retVal;
+}
+
+// void sub_81347F8(void)
+// {
+// bool8 levelType = gSaveBlock2.battleTower.battleTowerLevelType;
+// if (sub_81346F4())
+// {
+// SetBattleTowerTrainerGfxId(gSaveBlock2.battleTower.battleTowerTrainerId);
+// gSaveBlock2.battleTower.var_4C1[gSaveBlock2.battleTower.curChallengeBattleNum[levelType]] = gSaveBlock2.battleTower.battleTowerTrainerId;
+// }
+// else
+// {
+// u16 var1;
+
+// if (gSaveBlock2.battleTower.curStreakChallengesNum[levelType] > 7)
+// {
+// while (1)
+// {
+// s32 i;
+// u32 temp = ((Random() & 0xFF) * 30) >> 8;
+// var1 = temp + 70;
+// for (i = 0; i < gSaveBlock2.battleTower.curChallengeBattleNum[levelType] - 1 && var1 != gSaveBlock2.battleTower.var_4C1[i]; i++) // TODO: [i + 1]???
+// { }
+
+// if (i == gSaveBlock2.battleTower.curChallengeBattleNum[levelType] - 1)
+// {
+// break;
+// }
+// }
+// }
+// else
+// {
+// if (gSaveBlock2.battleTower.curChallengeBattleNum[levelType] == 7)
+// {
+// while (1)
+// {
+// s32 i;
+// u32 temp = ((Random() & 0xFF) * 5);
+// u32 temp2 = (((gSaveBlock2.battleTower.curStreakChallengesNum[levelType] - 1) * 10) + 20);
+// var1 = temp / 128 + temp2;
+// for (i = 0; i < gSaveBlock2.battleTower.curChallengeBattleNum[levelType] - 1 && gSaveBlock2.battleTower.var_4C1[i] != var1; i++) // TODO: [i + 1]????
+// { }
+
+// if (i == gSaveBlock2.battleTower.curChallengeBattleNum[levelType] - 1)
+// {
+// break;
+// }
+// }
+// }
+// else
+// {
+// while (1)
+// {
+// s32 i;
+// u32 temp = ((Random() & 0xFF) * 320);
+// u32 temp2 = ((gSaveBlock2.battleTower.curStreakChallengesNum[levelType] - 1) * 10);
+// var1 = temp + temp2;
+// for (i = 0; i < gSaveBlock2.battleTower.curChallengeBattleNum[levelType] - 1 && gSaveBlock2.battleTower.var_4C1[i] != var1; i++)
+// { }
+
+// if (i == gSaveBlock2.battleTower.curChallengeBattleNum[levelType] - 1)
+// {
+// break;
+// }
+// }
+// }
+// }
+
+// gSaveBlock2.battleTower.battleTowerTrainerId = var1;
+// SetBattleTowerTrainerGfxId(gSaveBlock2.battleTower.battleTowerTrainerId);
+
+// if (gSaveBlock2.battleTower.curChallengeBattleNum[levelType] < 7)
+// {
+// gSaveBlock2.battleTower.var_4C1[gSaveBlock2.battleTower.curChallengeBattleNum[levelType]] = gSaveBlock2.battleTower.battleTowerTrainerId;
+// }
+// }
+// }
+
+__attribute__((naked))
+void sub_81347F8(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 r5, _08134838 @ =gSaveBlock2\n\
+ ldr r1, _0813483C @ =0x00000554\n\
+ adds r0, r5, r1\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 31\n\
+ lsrs r6, r0, 31\n\
+ bl sub_81346F4\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _08134848\n\
+ ldr r2, _08134840 @ =0x00000564\n\
+ adds r4, r5, r2\n\
+ ldrb r0, [r4]\n\
+ bl SetBattleTowerTrainerGfxId\n\
+ lsls r0, r6, 1\n\
+ movs r3, 0xAB\n\
+ lsls r3, 3\n\
+ adds r1, r5, r3\n\
+ adds r0, r1\n\
+ ldrh r0, [r0]\n\
+ adds r0, r5, r0\n\
+ ldr r1, _08134844 @ =0x00000569\n\
+ adds r0, r1\n\
+ ldrb r1, [r4]\n\
+ b _081349DC\n\
+ .align 2, 0\n\
+_08134838: .4byte gSaveBlock2\n\
+_0813483C: .4byte 0x00000554\n\
+_08134840: .4byte 0x00000564\n\
+_08134844: .4byte 0x00000569\n\
+_08134848:\n\
+ lsls r0, r6, 1\n\
+ ldr r2, _081348D8 @ =0x0000055c\n\
+ adds r1, r5, r2\n\
+ adds r1, r0, r1\n\
+ ldrh r1, [r1]\n\
+ adds r7, r0, 0\n\
+ cmp r1, 0x7\n\
+ bls _0813485A\n\
+ b _0813495C\n\
+_0813485A:\n\
+ movs r3, 0xAB\n\
+ lsls r3, 3\n\
+ adds r0, r5, r3\n\
+ adds r1, r7, r0\n\
+ ldrh r0, [r1]\n\
+ cmp r0, 0x7\n\
+ bne _081348E4\n\
+ adds r6, r5, 0\n\
+ mov r9, r7\n\
+ adds r5, r1, 0\n\
+ ldr r0, _081348DC @ =0x0000056a\n\
+ adds r0, r6\n\
+ mov r10, r0\n\
+ mov r8, r5\n\
+_08134876:\n\
+ bl Random\n\
+ movs r1, 0xFF\n\
+ ands r1, r0\n\
+ lsls r2, r1, 2\n\
+ adds r2, r1\n\
+ ldr r1, _081348D8 @ =0x0000055c\n\
+ adds r4, r6, r1\n\
+ mov r3, r9\n\
+ adds r0, r3, r4\n\
+ ldrh r1, [r0]\n\
+ subs r1, 0x1\n\
+ lsls r0, r1, 2\n\
+ adds r0, r1\n\
+ lsls r0, 1\n\
+ adds r0, 0x14\n\
+ lsrs r2, 7\n\
+ adds r2, r0\n\
+ lsls r2, 16\n\
+ lsrs r2, 16\n\
+ movs r1, 0\n\
+ ldrh r0, [r5]\n\
+ subs r0, 0x1\n\
+ cmp r1, r0\n\
+ bge _081348C8\n\
+ mov r3, r10\n\
+ ldrb r0, [r3]\n\
+ cmp r0, r2\n\
+ beq _081348C8\n\
+ subs r0, r4, 0x4\n\
+ adds r0, r7, r0\n\
+ ldrh r0, [r0]\n\
+ subs r3, r0, 0x1\n\
+ adds r4, 0xE\n\
+_081348BA:\n\
+ adds r1, 0x1\n\
+ cmp r1, r3\n\
+ bge _081348C8\n\
+ adds r0, r1, r4\n\
+ ldrb r0, [r0]\n\
+ cmp r0, r2\n\
+ bne _081348BA\n\
+_081348C8:\n\
+ mov r3, r8\n\
+ ldrh r0, [r3]\n\
+ subs r0, 0x1\n\
+ ldr r4, _081348E0 @ =gSaveBlock2\n\
+ cmp r1, r0\n\
+ bne _08134876\n\
+ b _081349B6\n\
+ .align 2, 0\n\
+_081348D8: .4byte 0x0000055c\n\
+_081348DC: .4byte 0x0000056a\n\
+_081348E0: .4byte gSaveBlock2\n\
+_081348E4:\n\
+ adds r6, r5, 0\n\
+ mov r9, r7\n\
+ adds r5, r1, 0\n\
+ ldr r2, _08134950 @ =0x0000056a\n\
+ adds r2, r6\n\
+ mov r10, r2\n\
+ mov r8, r5\n\
+_081348F2:\n\
+ bl Random\n\
+ movs r1, 0xFF\n\
+ ands r1, r0\n\
+ lsls r0, r1, 2\n\
+ adds r0, r1\n\
+ lsrs r2, r0, 6\n\
+ ldr r3, _08134954 @ =0x0000055c\n\
+ adds r4, r6, r3\n\
+ mov r1, r9\n\
+ adds r0, r1, r4\n\
+ ldrh r1, [r0]\n\
+ subs r1, 0x1\n\
+ lsls r0, r1, 2\n\
+ adds r0, r1\n\
+ lsls r0, 1\n\
+ adds r0, r2, r0\n\
+ lsls r0, 16\n\
+ lsrs r2, r0, 16\n\
+ movs r1, 0\n\
+ ldrh r0, [r5]\n\
+ subs r0, 0x1\n\
+ cmp r1, r0\n\
+ bge _08134942\n\
+ mov r3, r10\n\
+ ldrb r0, [r3]\n\
+ cmp r0, r2\n\
+ beq _08134942\n\
+ subs r0, r4, 0x4\n\
+ adds r0, r7, r0\n\
+ ldrh r0, [r0]\n\
+ subs r3, r0, 0x1\n\
+ adds r4, 0xE\n\
+_08134934:\n\
+ adds r1, 0x1\n\
+ cmp r1, r3\n\
+ bge _08134942\n\
+ adds r0, r1, r4\n\
+ ldrb r0, [r0]\n\
+ cmp r0, r2\n\
+ bne _08134934\n\
+_08134942:\n\
+ mov r3, r8\n\
+ ldrh r0, [r3]\n\
+ subs r0, 0x1\n\
+ ldr r4, _08134958 @ =gSaveBlock2\n\
+ cmp r1, r0\n\
+ bne _081348F2\n\
+ b _081349B6\n\
+ .align 2, 0\n\
+_08134950: .4byte 0x0000056a\n\
+_08134954: .4byte 0x0000055c\n\
+_08134958: .4byte gSaveBlock2\n\
+_0813495C:\n\
+ movs r2, 0xAB\n\
+ lsls r2, 3\n\
+ adds r0, r5, r2\n\
+ adds r6, r7, r0\n\
+ ldr r3, _081349EC @ =0x0000056a\n\
+ adds r3, r5\n\
+ mov r8, r3\n\
+ adds r5, r6, 0\n\
+_0813496C:\n\
+ bl Random\n\
+ movs r1, 0xFF\n\
+ ands r1, r0\n\
+ lsls r0, r1, 4\n\
+ subs r0, r1\n\
+ lsls r0, 1\n\
+ asrs r0, 8\n\
+ adds r0, 0x46\n\
+ lsls r0, 16\n\
+ lsrs r2, r0, 16\n\
+ movs r1, 0\n\
+ ldrh r0, [r6]\n\
+ subs r0, 0x1\n\
+ cmp r1, r0\n\
+ bge _081349AC\n\
+ mov r3, r8\n\
+ ldrb r0, [r3]\n\
+ ldr r4, _081349F0 @ =gSaveBlock2\n\
+ cmp r0, r2\n\
+ beq _081349AC\n\
+ ldrh r0, [r5]\n\
+ subs r3, r0, 0x1\n\
+ ldr r0, _081349EC @ =0x0000056a\n\
+ adds r4, r0\n\
+_0813499E:\n\
+ adds r1, 0x1\n\
+ cmp r1, r3\n\
+ bge _081349AC\n\
+ adds r0, r1, r4\n\
+ ldrb r0, [r0]\n\
+ cmp r0, r2\n\
+ bne _0813499E\n\
+_081349AC:\n\
+ ldrh r0, [r6]\n\
+ subs r0, 0x1\n\
+ ldr r4, _081349F0 @ =gSaveBlock2\n\
+ cmp r1, r0\n\
+ bne _0813496C\n\
+_081349B6:\n\
+ ldr r1, _081349F4 @ =0x00000564\n\
+ adds r0, r4, r1\n\
+ strb r2, [r0]\n\
+ ldr r2, _081349F4 @ =0x00000564\n\
+ adds r5, r4, r2\n\
+ ldrb r0, [r5]\n\
+ bl SetBattleTowerTrainerGfxId\n\
+ movs r3, 0xAB\n\
+ lsls r3, 3\n\
+ adds r0, r4, r3\n\
+ adds r1, r7, r0\n\
+ ldrh r0, [r1]\n\
+ cmp r0, 0x6\n\
+ bhi _081349DE\n\
+ adds r0, r4, r0\n\
+ ldr r1, _081349F8 @ =0x00000569\n\
+ adds r0, r1\n\
+ ldrb r1, [r5]\n\
+_081349DC:\n\
+ strb r1, [r0]\n\
+_081349DE:\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\
+_081349EC: .4byte 0x0000056a\n\
+_081349F0: .4byte gSaveBlock2\n\
+_081349F4: .4byte 0x00000564\n\
+_081349F8: .4byte 0x00000569\n\
+.syntax divided\n");
+}
+
+void SetBattleTowerTrainerGfxId(u8 trainerIndex)
+{
+ u32 i;
+ u8 trainerClass;
+
+ if (trainerIndex < BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID)
+ {
+ trainerClass = gBattleTowerTrainers[trainerIndex].trainerClass;
+ }
+ else if (trainerIndex < BATTLE_TOWER_EREADER_TRAINER_ID)
+ {
+ trainerClass = gSaveBlock2.battleTower.records[trainerIndex - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].trainerClass;
+ }
+ else
+ {
+ trainerClass = gSaveBlock2.battleTower.ereaderTrainer.trainerClass;
+ }
+
+ for (i = 0; i < 30 && sMaleTrainerClasses[i] != trainerClass; i++);
+ if (i != 30)
+ {
+ u8 trainerObjectGfxId = sMaleTrainerGfxIds[i];
+ VarSet(0x4010, trainerObjectGfxId);
+ return;
+ }
+
+ for (i = 0; i < 20 && sFemaleTrainerClasses[i] != trainerClass; i++);
+ if (i != 20)
+ {
+ u8 trainerObjectGfxId = sFemaleTrainerGfxIds[i];
+ VarSet(0x4010, trainerObjectGfxId);
+ return;
+ }
+
+ VarSet(0x4010, MAP_OBJ_GFX_BOY_1);
+}
+
+void SetEReaderTrainerGfxId(void)
+{
+ SetBattleTowerTrainerGfxId(BATTLE_TOWER_EREADER_TRAINER_ID);
+}
+
+// void sub_8134AC0(struct BattleTowerRecord *record)
+// {
+// u16 var1[6];
+// u16 var2[6];
+// s32 i, j, k;
+// s16 l = 0;
+
+// for (i = 0; i < 5; i++)
+// {
+// k = 0;
+// for (j = 0; j < 4 && gSaveBlock2.battleTower.records[i].trainerId[j] == record->trainerId[j]; j++);
+// if (j == 4)
+// {
+// for (; k < 7 && gSaveBlock2.battleTower.records[i].name[4] == record->name[4]; k++)
+// {
+// if (record->name[4] == 0xFF)
+// {
+// k = 7;
+// break;
+// }
+// }
+// }
+
+// if (k == 7)
+// {
+// break;
+// }
+// }
+
+// if (i < 5)
+// {
+// gSaveBlock2.battleTower.records[i] = *record;
+// return;
+// }
+
+// i = 0;
+// while (i < 5)
+// {
+// if (gSaveBlock2.battleTower.records[i].winStreak == 0)
+// {
+// if (i > 4)
+// {
+// break;
+// }
+
+// gSaveBlock2.battleTower.records[i] = *record;
+// return;
+// }
+
+// i++;
+// }
+
+// var1[0] = gSaveBlock2.battleTower.records[0].winStreak;
+// var2[0] = 0;
+// l++;
+
+// for (i = 1; i < 5; i++)
+// {
+// j = 0;
+// if (j < l)
+// {
+// for (; gSaveBlock2.battleTower.records[i].winStreak <= var1[j]; j++)
+// {
+// if (gSaveBlock2.battleTower.records[i].winStreak < var1[j])
+// {
+// j = 0;
+// l = 1;
+// var1[0] = gSaveBlock2.battleTower.records[i].winStreak;
+// var2[0] = i;
+// break;
+// }
+// }
+// }
+
+// if (j == l)
+// {
+// var1[l] = gSaveBlock2.battleTower.records[i].winStreak;
+// var2[l] = i;
+// l++;
+// }
+// }
+
+// gSaveBlock2.battleTower.records[var2[(Random() % l)]] = *record;
+// }
+__attribute__((naked))
+void sub_8134AC0(struct BattleTowerRecord *record)
+{
+ 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\
+ movs r7, 0\n\
+ mov r8, r0\n\
+ movs r5, 0\n\
+ ldr r0, _08134B3C @ =gSaveBlock2\n\
+ mov r12, r0\n\
+ mov r1, r8\n\
+ ldrb r1, [r1, 0xC]\n\
+ str r1, [sp, 0x18]\n\
+ movs r2, 0xAA\n\
+ lsls r2, 1\n\
+ add r2, r12\n\
+ mov r10, r2\n\
+ mov r9, r5\n\
+_08134AE6:\n\
+ movs r6, 0\n\
+ movs r3, 0\n\
+ ldr r0, _08134B40 @ =gSaveBlock2 + 0x158\n\
+ add r0, r9\n\
+ ldrb r0, [r0]\n\
+ ldr r1, [sp, 0x18]\n\
+ cmp r0, r1\n\
+ bne _08134B14\n\
+ movs r0, 0xA4\n\
+ muls r0, r5\n\
+ ldr r1, _08134B40 @ =gSaveBlock2 + 0x158\n\
+ adds r2, r0, r1\n\
+ mov r4, r8\n\
+ adds r4, 0xC\n\
+_08134B02:\n\
+ adds r2, 0x1\n\
+ adds r3, 0x1\n\
+ cmp r3, 0x3\n\
+ bgt _08134B14\n\
+ adds r1, r4, r3\n\
+ ldrb r0, [r2]\n\
+ ldrb r1, [r1]\n\
+ cmp r0, r1\n\
+ beq _08134B02\n\
+_08134B14:\n\
+ cmp r3, 0x4\n\
+ bne _08134B54\n\
+ movs r6, 0\n\
+ mov r2, r10\n\
+ ldrb r0, [r2]\n\
+ mov r3, r8\n\
+ ldrb r3, [r3, 0x8]\n\
+ cmp r0, r3\n\
+ bne _08134B54\n\
+ adds r1, r0, 0\n\
+ movs r0, 0xA4\n\
+ muls r0, r5\n\
+ adds r0, 0x4\n\
+ ldr r3, _08134B44 @ =gSaveBlock2 + 0x150\n\
+ adds r2, r0, r3\n\
+_08134B32:\n\
+ cmp r1, 0xFF\n\
+ bne _08134B48\n\
+ movs r6, 0x7\n\
+ b _08134B54\n\
+ .align 2, 0\n\
+_08134B3C: .4byte gSaveBlock2\n\
+_08134B40: .4byte gSaveBlock2 + 0x158\n\
+_08134B44: .4byte gSaveBlock2 + 0x150\n\
+_08134B48:\n\
+ adds r6, 0x1\n\
+ cmp r6, 0x6\n\
+ bgt _08134B54\n\
+ ldrb r0, [r2]\n\
+ cmp r0, r1\n\
+ beq _08134B32\n\
+_08134B54:\n\
+ cmp r6, 0x7\n\
+ beq _08134B64\n\
+ movs r0, 0xA4\n\
+ add r10, r0\n\
+ add r9, r0\n\
+ adds r5, 0x1\n\
+ cmp r5, 0x4\n\
+ ble _08134AE6\n\
+\n\
+_08134B64:\n\
+ cmp r5, 0x4\n\
+ bgt _08134B76\n\
+ movs r0, 0xA4\n\
+ muls r0, r5\n\
+ add r0, r12\n\
+ movs r1, 0xA6\n\
+ lsls r1, 1\n\
+ adds r0, r1\n\
+ b _08134B9E\n\
+_08134B76:\n\
+ movs r5, 0\n\
+ movs r1, 0xA7\n\
+ lsls r1, 1\n\
+ add r1, r12\n\
+ b _08134B88\n\
+_08134B80:\n\
+ adds r1, 0xA4\n\
+ adds r5, 0x1\n\
+ cmp r5, 0x4\n\
+ bgt _08134BA8\n\
+_08134B88:\n\
+ ldrh r0, [r1]\n\
+ cmp r0, 0\n\
+ bne _08134B80\n\
+ cmp r5, 0x4\n\
+ bgt _08134BA8\n\
+ movs r0, 0xA4\n\
+ muls r0, r5\n\
+ add r0, r12\n\
+ movs r2, 0xA6\n\
+ lsls r2, 1\n\
+ adds r0, r2\n\
+_08134B9E:\n\
+ mov r1, r8\n\
+ movs r2, 0xA4\n\
+ bl memcpy\n\
+ b _08134C5E\n\
+\n\
+_08134BA8:\n\
+ mov r2, sp\n\
+ movs r3, 0xA7\n\
+ lsls r3, 1\n\
+ mov r1, r12\n\
+ adds r0, r1, r3\n\
+ ldrh r0, [r0]\n\
+ movs r1, 0\n\
+ strh r0, [r2]\n\
+ add r0, sp, 0xC\n\
+ strh r1, [r0]\n\
+ adds r7, 0x1\n\
+ movs r5, 0x1\n\
+ add r2, sp, 0xC @var2 = r2\n\
+ mov r9, r2\n\
+ mov r10, r3\n\
+_08134BC6:\n\
+ movs r3, 0\n\
+ adds r0, r5, 0x1\n\
+ mov r12, r0\n\
+ cmp r3, r7\n\
+ bge _08134C0A @ j < l\n\
+ movs r1, 0xA4\n\
+ adds r0, r5, 0\n\
+ muls r0, r1\n\
+ ldr r2, _08134BFC @ =gSaveBlock2\n\
+ adds r0, r2\n\
+ mov r1, r10\n\
+ adds r4, r0, r1\n\
+ mov r6, sp\n\
+_08134BE0:\n\
+ lsls r0, r3, 1\n\
+ add r0, sp\n\
+ ldrh r2, [r4]\n\
+ adds r1, r2, 0\n\
+ ldrh r0, [r0]\n\
+ cmp r1, r0\n\
+ bcs _08134C00\n\
+ movs r3, 0\n\
+ movs r7, 0x1\n\
+ strh r2, [r6]\n\
+ mov r2, r9\n\
+ strh r5, [r2]\n\
+ b _08134C0A\n\
+ .align 2, 0\n\
+_08134BFC: .4byte gSaveBlock2\n\
+_08134C00:\n\
+ cmp r1, r0\n\
+ bhi _08134C0A\n\
+ adds r3, 0x1\n\
+ cmp r3, r7\n\
+ blt _08134BE0\n\
+_08134C0A:\n\
+ cmp r3, r7\n\
+ bne _08134C2A\n\
+ lsls r1, r7, 1\n\
+ mov r3, sp\n\
+ adds r2, r3, r1\n\
+ movs r3, 0xA4\n\
+ adds r0, r5, 0\n\
+ muls r0, r3\n\
+ ldr r3, _08134C70 @ =gSaveBlock2\n\
+ adds r0, r3\n\
+ add r0, r10\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r2]\n\
+ add r1, r9\n\
+ strh r5, [r1]\n\
+ adds r7, 0x1\n\
+_08134C2A:\n\
+ mov r5, r12\n\
+ cmp r5, 0x4\n\
+ ble _08134BC6\n\
+ bl Random\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ adds r1, r7, 0\n\
+ bl __modsi3\n\
+ adds r5, r0, 0\n\
+ ldr r2, _08134C70 @ =gSaveBlock2\n\
+ lsls r0, r5, 1\n\
+ add r0, sp\n\
+ adds r0, 0xC\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0xA4\n\
+ muls r0, r1\n\
+ adds r0, r2\n\
+ movs r1, 0xA6\n\
+ lsls r1, 1\n\
+ adds r0, r1\n\
+ mov r1, r8\n\
+ movs r2, 0xA4\n\
+ bl memcpy\n\
+_08134C5E:\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\
+_08134C70: .4byte gSaveBlock2\n\
+ .syntax divided\n");
+}
+
+u8 get_trainer_class_pic_index(void)
+{
+ if (gSaveBlock2.battleTower.battleTowerTrainerId == BATTLE_TOWER_EREADER_TRAINER_ID)
+ {
+ return gTrainerClassToPicIndex[gSaveBlock2.battleTower.ereaderTrainer.trainerClass];
+ }
+ else if (gSaveBlock2.battleTower.battleTowerTrainerId < BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID)
+ {
+ return gTrainerClassToPicIndex[gBattleTowerTrainers[gSaveBlock2.battleTower.battleTowerTrainerId].trainerClass];
+ }
+ else
+ {
+ return gTrainerClassToPicIndex[gSaveBlock2.battleTower.records[gSaveBlock2.battleTower.battleTowerTrainerId - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].trainerClass];
+ }
+}
+
+u8 get_trainer_class_name_index(void)
+{
+ if (gSaveBlock2.battleTower.battleTowerTrainerId == BATTLE_TOWER_EREADER_TRAINER_ID)
+ {
+ return gTrainerClassToNameIndex[gSaveBlock2.battleTower.ereaderTrainer.trainerClass];
+ }
+ else if (gSaveBlock2.battleTower.battleTowerTrainerId >= BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID)
+ {
+ return gTrainerClassToNameIndex[gSaveBlock2.battleTower.records[gSaveBlock2.battleTower.battleTowerTrainerId - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].trainerClass];
+ }
+ else
+ {
+ return gTrainerClassToNameIndex[gBattleTowerTrainers[gSaveBlock2.battleTower.battleTowerTrainerId].trainerClass];
+ }
+}
+
+void get_trainer_name(u8* dest)
+{
+ s32 i;
+
+ if (gSaveBlock2.battleTower.battleTowerTrainerId == BATTLE_TOWER_EREADER_TRAINER_ID)
+ {
+ for (i = 0; i < 7; i++)
+ {
+ dest[i] = gSaveBlock2.battleTower.ereaderTrainer.name[i];
+ }
+ }
+ else if (gSaveBlock2.battleTower.battleTowerTrainerId < BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID)
+ {
+ for (i = 0; i < 7; i++)
+ {
+ dest[i] = gBattleTowerTrainers[gSaveBlock2.battleTower.battleTowerTrainerId].name[i];
+ }
+ }
+ else
+ {
+ for (i = 0; i < 7; i++)
+ {
+ dest[i] = gSaveBlock2.battleTower.records[gSaveBlock2.battleTower.battleTowerTrainerId - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].name[i];
+ }
+ }
+
+ dest[i] = 0xFF;
+}
+
+void FillBattleTowerTrainerParty(void)
+{
+ s32 partyIndex, i;
+ u16 chosenMonIndices[3];
+ u8 friendship;
+ u8 level;
+ u8 fixedIV;
+ u8 battleMonsOffset;
+ u8 monPoolSize;
+ u8 teamFlags;
+ const struct BattleTowerPokemon *battleTowerMons;
+
+ battleMonsOffset = 0;
+ monPoolSize = 60;
+ friendship = 255;
+
+ ZeroEnemyPartyMons();
+
+ // Different trainers have access to different sets of pokemon to use in battle.
+ // The pokemon later in gBattleTowerLevel100Mons or gBattleTowerLevel50Mons are
+ // stronger. Additionally, the later trainers' pokemon are granted higher IVs.
+ if (gSaveBlock2.battleTower.battleTowerTrainerId < 20)
+ {
+ fixedIV = 6;
+ }
+ else if (gSaveBlock2.battleTower.battleTowerTrainerId < 30)
+ {
+ fixedIV = 9;
+ battleMonsOffset = 30;
+ }
+ else if (gSaveBlock2.battleTower.battleTowerTrainerId < 40)
+ {
+ fixedIV = 12;
+ battleMonsOffset = 60;
+ }
+ else if (gSaveBlock2.battleTower.battleTowerTrainerId < 50)
+ {
+ fixedIV = 15;
+ battleMonsOffset = 90;
+ }
+ else if (gSaveBlock2.battleTower.battleTowerTrainerId < 60)
+ {
+ fixedIV = 18;
+ battleMonsOffset = 120;
+ }
+ else if (gSaveBlock2.battleTower.battleTowerTrainerId < 70)
+ {
+ fixedIV = 21;
+ battleMonsOffset = 150;
+ }
+ else if (gSaveBlock2.battleTower.battleTowerTrainerId < 80)
+ {
+ fixedIV = 31;
+ battleMonsOffset = 180;
+ }
+ else if (gSaveBlock2.battleTower.battleTowerTrainerId < BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID)
+ {
+ fixedIV = 31;
+ battleMonsOffset = 200;
+ monPoolSize = 100;
+ }
+ else if (gSaveBlock2.battleTower.battleTowerTrainerId == BATTLE_TOWER_EREADER_TRAINER_ID)
+ {
+ // Load E-Reader trainer's party.
+ for (partyIndex = 0; partyIndex < 3; partyIndex++)
+ {
+ sub_803ADE8(&gEnemyParty[partyIndex], &gSaveBlock2.battleTower.ereaderTrainer.party[partyIndex]);
+ }
+
+ return;
+ }
+ else
+ {
+ // Load a battle tower record's party. (From record mixing)
+ for (partyIndex = 0; partyIndex < 3; partyIndex++)
+ {
+ sub_803ADE8(
+ &gEnemyParty[partyIndex],
+ &gSaveBlock2.battleTower.records[gSaveBlock2.battleTower.battleTowerTrainerId - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].party[partyIndex]);
+ }
+
+ return;
+ }
+
+ // Use the appropriate list of pokemon and level depending on the
+ // current challenge type. (level 50 or level 100 challenge)
+ if (gSaveBlock2.battleTower.battleTowerLevelType != 0)
+ {
+ battleTowerMons = gBattleTowerLevel100Mons;
+ level = 100;
+ }
+ else
+ {
+ battleTowerMons = gBattleTowerLevel50Mons;
+ level = 50;
+ }
+
+ teamFlags = gBattleTowerTrainers[gSaveBlock2.battleTower.battleTowerTrainerId].teamFlags;
+
+ // Attempt to fill the trainer's party with random Pokemon until 3 have been
+ // successfully chosen. The trainer's party may not have duplicate pokemon species
+ // or duplicate held items. Each pokemon must have all of the trainer's team flags
+ // set, as well. If any of those conditions are not met, then the loop starts over
+ // and another pokemon is chosen at random.
+ partyIndex = 0;
+ while (partyIndex != 3)
+ {
+ // Pick a random pokemon index based on the number of pokemon available to choose from
+ // and the starting offset in the battle tower pokemon array.
+ s32 battleMonIndex = ((Random() & 0xFF) * monPoolSize) / 256 + battleMonsOffset;
+
+ // Ensure the chosen pokemon has compatible team flags with the trainer.
+ if (teamFlags == 0 || (battleTowerMons[battleMonIndex].teamFlags & teamFlags) == teamFlags)
+ {
+ // Ensure this pokemon species isn't a duplicate.
+ for (i = 0; i < partyIndex; i++)
+ {
+ if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES, NULL) == battleTowerMons[battleMonIndex].species)
+ break;
+ }
+
+ if (i != partyIndex)
+ continue;
+
+ // Ensure this pokemon's held item isn't a duplicate.
+ for (i = 0; i < partyIndex; i++)
+ {
+ if (GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, NULL) != 0
+ && GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, NULL) == sBattleTowerHeldItems[battleTowerMons[battleMonIndex].heldItem])
+ {
+ break;
+ }
+ }
+
+ if (i != partyIndex)
+ continue;
+
+ // Ensure this exact pokemon index isn't a duplicate. This check doesn't seem necessary
+ // because the species and held items were already checked directly above. Perhaps this
+ // is leftover code before the logic for duplicate species and held items was added.
+ for (i = 0; i < partyIndex && chosenMonIndices[i] != battleMonIndex; i++);
+
+ if (i != partyIndex)
+ continue;
+
+ chosenMonIndices[partyIndex] = battleMonIndex;
+
+ // Place the chosen pokemon into the trainer's party.
+ CreateMonWithEVSpread(
+ &gEnemyParty[partyIndex],
+ battleTowerMons[battleMonIndex].species,
+ level,
+ fixedIV,
+ battleTowerMons[battleMonIndex].evSpread);
+
+ // Give the chosen pokemon its specified moves.
+ for (i = 0; i < 4; i++)
+ {
+ SetMonMoveSlot(&gEnemyParty[partyIndex], battleTowerMons[battleMonIndex].moves[i], i);
+ if (battleTowerMons[battleMonIndex].moves[i] == MOVE_FRUSTRATION)
+ {
+ // MOVE_FRUSTRATION is more powerful the lower the pokemon's friendship is.
+ friendship = 0;
+ }
+ }
+
+ SetMonData(&gEnemyParty[partyIndex], MON_DATA_FRIENDSHIP, &friendship);
+ SetMonData(&gEnemyParty[partyIndex], MON_DATA_HELD_ITEM, &sBattleTowerHeldItems[battleTowerMons[battleMonIndex].heldItem]);
+
+ // The pokemon was successfully added to the trainer's party, so it's safe to move on to
+ // the next party slot.
+ partyIndex++;
+ }
+ }
+}
+
+u32 CountBattleTowerBanlistCaught(void)
+{
+ s32 i;
+ u32 numCaught = 0;
+
+ for (i = 0; gBattleTowerBannedSpecies[i] != 0xFFFF; i++)
+ {
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleTowerBannedSpecies[i]), FLAG_GET_CAUGHT))
+ {
+ numCaught++;
+ }
+ }
+
+ return numCaught;
+}
+
+u8 AppendBattleTowerBannedSpeciesName(u16 species, u8 curIndexToAppend, s32 numToAppend)
+{
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT))
+ {
+ curIndexToAppend++;
+
+ switch (curIndexToAppend - 1)
+ {
+ case 0:
+ case 2:
+ case 4:
+ case 6:
+ case 8:
+ case 10:
+ if (numToAppend == curIndexToAppend)
+ {
+ StringAppend(gStringVar1, BattleText_Format3);
+ }
+ else if (numToAppend > curIndexToAppend)
+ {
+ StringAppend(gStringVar1, BattleText_Format4);
+ }
+ break;
+ case 1:
+ if (curIndexToAppend == numToAppend)
+ {
+ StringAppend(gStringVar1, BattleText_Format3);
+ }
+ else
+ {
+ StringAppend(gStringVar1, BattleText_Format4);
+ }
+
+ StringAppend(gStringVar1, BattleText_Format7);
+ break;
+ case 3:
+ case 5:
+ case 7:
+ case 9:
+ default:
+ if (curIndexToAppend == numToAppend)
+ {
+ StringAppend(gStringVar1, BattleText_Format3);
+ }
+ else
+ {
+ StringAppend(gStringVar1, BattleText_Format4);
+ }
+
+ StringAppend(gStringVar1, BattleText_Format6);
+ break;
+ }
+
+ StringAppend(gStringVar1, gSpeciesNames[species]);
+ }
+
+ return curIndexToAppend;
+}
+
+void CheckMonBattleTowerBanlist(u16 species, u16 heldItem, u16 hp, u8 battleTowerLevelType, u8 monLevel, u16 *validPartySpecies, u16 *validPartyHeldItems, u8 *numValid)
+{
+ s32 i;
+ u32 counter = 0;
+
+ if (species == SPECIES_EGG || species == SPECIES_NONE)
+ return;
+
+ while (1)
+ {
+ if (gBattleTowerBannedSpecies[counter] == 0xFFFF)
+ goto EXIT2; // Couldn't get the code to match without this GOTO
+
+ if (gBattleTowerBannedSpecies[counter] == species)
+ break;
+
+ counter++;
+ }
+
+ if (gBattleTowerBannedSpecies[counter] != 0xFFFF)
+ return;
+
+ EXIT2:
+ if (battleTowerLevelType == 0 && monLevel > 50)
+ return;
+
+ for (i = 0; i < *numValid && validPartySpecies[i] != species ; i++);
+ if (i != *numValid)
+ return;
+
+ if (heldItem != 0)
+ {
+ for (i = 0; i < *numValid && validPartyHeldItems[i] != heldItem ; i++);
+ if (i != *numValid)
+ return;
+ }
+
+ validPartySpecies[*numValid] = species;
+ validPartyHeldItems[*numValid] = heldItem;
+ *numValid = *numValid + 1;
+}
+
+void CheckPartyBattleTowerBanlist(void)
+{
+ s32 i;
+ u16 species2;
+ u16 heldItem;
+ u8 level;
+ u16 hp;
+ u32 numBanlistCaught;
+ u16 validPartySpecies[6];
+ u16 validPartyHeldItems[6];
+ u8 counter;
+
+ counter = 0;
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ species2 = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
+ heldItem = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM);
+ level = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL);
+ hp = GetMonData(&gPlayerParty[i], MON_DATA_HP);
+
+ CheckMonBattleTowerBanlist(species2, heldItem, hp, gSpecialVar_Result, level, validPartySpecies, validPartyHeldItems, &counter);
+ }
+
+ if (counter < 3)
+ {
+ gStringVar1[0] = 0xFF;
+ gSpecialVar_0x8004 = 1;
+ counter = 0;
+
+ numBanlistCaught = CountBattleTowerBanlistCaught();
+
+ for (i = 0; gBattleTowerBannedSpecies[i] != 0xFFFF; i++)
+ {
+ counter = AppendBattleTowerBannedSpeciesName(gBattleTowerBannedSpecies[i], counter, numBanlistCaught);
+ }
+
+ if (counter == 0)
+ {
+ StringAppend(gStringVar1, BattleText_Format5);
+ StringAppend(gStringVar1, BattleText_Format8);
+ return;
+ }
+
+ if (1 & counter)
+ StringAppend(gStringVar1, BattleText_Format6);
+ else
+ StringAppend(gStringVar1, BattleText_Format5);
+
+ StringAppend(gStringVar1, BattleText_Format9);
+ }
+ else
+ {
+ gSpecialVar_0x8004 = 0;
+ gSaveBlock2.battleTower.battleTowerLevelType = gSpecialVar_Result;
+ }
+}
+
+void PrintBattleTowerTrainerMessage(u16 *easyChat)
+{
+ sub_80EB544(gStringVar4, easyChat, 2, 3);
+}
+
+void PrintBattleTowerTrainerGreeting(void)
+{
+ if (gSaveBlock2.battleTower.battleTowerTrainerId == BATTLE_TOWER_EREADER_TRAINER_ID)
+ {
+ PrintBattleTowerTrainerMessage(gSaveBlock2.battleTower.ereaderTrainer.greeting.easyChat);
+ }
+ else if (gSaveBlock2.battleTower.battleTowerTrainerId < BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID)
+ {
+ PrintBattleTowerTrainerMessage((u16 *)gBattleTowerTrainers[gSaveBlock2.battleTower.battleTowerTrainerId].greeting.easyChat);
+ }
+ else
+ {
+ PrintBattleTowerTrainerMessage(gSaveBlock2.battleTower.records[gSaveBlock2.battleTower.battleTowerTrainerId - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].greeting.easyChat);
+ }
+}
+
+void sub_81354CC(void)
+{
+ s32 i;
+ u16 heldItem;
+
+ switch (gSpecialVar_0x8004)
+ {
+ case 0:
+ break;
+ case 1:
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ heldItem = GetMonData(&gSaveBlock1.playerParty[i], MON_DATA_HELD_ITEM);
+ SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &heldItem);
+ }
+ break;
+ case 2:
+ PrintEReaderTrainerFarewellMessage();
+ break;
+ }
+
+ SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+}
+
+void sub_8135534(u8 taskId)
+{
+ if (IsBattleTransitionDone() == TRUE)
+ {
+ gMain.savedCallback = sub_81354CC;
+ SetMainCallback2(sub_800E7C4);
+ DestroyTask(taskId);
+ }
+}
+
+void sub_813556C(void)
+{
+ s32 i;
+ u16 heldItem;
+ u8 transition;
+
+ switch (gSpecialVar_0x8004)
+ {
+ case 0:
+ gBattleTypeFlags = (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_TRAINER);
+ gTrainerBattleOpponent = 0;
+
+ FillBattleTowerTrainerParty();
+
+ CreateTask(sub_8135534, 1);
+ current_map_music_set__default_for_battle(0);
+ transition = BattleSetup_GetBattleTowerBattleTransition();
+ BattleTransition_StartOnField(transition);
+ break;
+ case 1:
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ heldItem = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM);
+ SetMonData(&gSaveBlock1.playerParty[i], MON_DATA_HELD_ITEM, &heldItem);
+ }
+
+ CreateTask(sub_8135534, 1);
+ current_map_music_set__default_for_battle(0);
+ transition = BattleSetup_GetBattleTowerBattleTransition();
+ BattleTransition_StartOnField(transition);
+ break;
+ case 2:
+ ZeroEnemyPartyMons();
+
+ for (i = 0; i < 3; i++)
+ {
+ sub_803ADE8(&gEnemyParty[i], &gSaveBlock2.battleTower.ereaderTrainer.party[i]);
+ }
+
+ gBattleTypeFlags = (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_TRAINER);
+ gTrainerBattleOpponent = 0;
+
+ CreateTask(sub_8135534, 1);
+ current_map_music_set__default_for_battle(0);
+ transition = BattleSetup_GetBattleTowerBattleTransition();
+ BattleTransition_StartOnField(transition);
+ break;
+ }
+}
+
+void sub_8135668(void)
+{
+ s32 i;
+ u8 battleTowerLevelType = gSaveBlock2.battleTower.battleTowerLevelType;
+
+ switch (gSpecialVar_0x8004)
+ {
+ case 0:
+ ewram160FB = gSaveBlock2.battleTower.var_4AE[battleTowerLevelType];
+ gSaveBlock2.battleTower.var_4AE[battleTowerLevelType] = gSpecialVar_0x8005;
+ break;
+ case 1:
+ gSaveBlock2.battleTower.battleTowerLevelType = gSpecialVar_0x8005;
+ break;
+ case 2:
+ gSaveBlock2.battleTower.curChallengeBattleNum[battleTowerLevelType] = gSpecialVar_0x8005;
+ break;
+ case 3:
+ gSaveBlock2.battleTower.curStreakChallengesNum[battleTowerLevelType] = gSpecialVar_0x8005;
+ break;
+ case 4:
+ gSaveBlock2.battleTower.battleTowerTrainerId = gSpecialVar_0x8005;
+ break;
+ case 5:
+ for (i = 0; i < 3; i++)
+ {
+ gSaveBlock2.battleTower.selectedPartyMons[i] = gSelectedOrderFromParty[i];
+ }
+ break;
+ case 6:
+ if (gSaveBlock2.battleTower.battleTowerTrainerId == BATTLE_TOWER_EREADER_TRAINER_ID)
+ {
+ ClearEReaderTrainer(&gSaveBlock2.battleTower.ereaderTrainer);
+ }
+
+ if (gSaveBlock2.battleTower.totalBattleTowerWins < 9999)
+ {
+ gSaveBlock2.battleTower.totalBattleTowerWins++;
+ }
+
+ gSaveBlock2.battleTower.curChallengeBattleNum[battleTowerLevelType]++;
+ sub_8135A3C();
+ gSpecialVar_Result = gSaveBlock2.battleTower.curChallengeBattleNum[battleTowerLevelType];
+
+ gStringVar1[0] = gSaveBlock2.battleTower.curChallengeBattleNum[battleTowerLevelType] + 0xA1;
+ gStringVar1[1] = 0xFF;
+ break;
+ case 7:
+ if (gSaveBlock2.battleTower.curStreakChallengesNum[battleTowerLevelType] < 1430)
+ {
+ gSaveBlock2.battleTower.curStreakChallengesNum[battleTowerLevelType]++;
+ }
+
+ sub_8135A3C();
+ gSpecialVar_Result = gSaveBlock2.battleTower.curStreakChallengesNum[battleTowerLevelType];
+ break;
+ case 8:
+ gSaveBlock2.battleTower.unk_554 = gSpecialVar_0x8005;
+ break;
+ case 9:
+ break;
+ case 10:
+ SetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK, gSaveBlock2.battleTower.bestBattleTowerWinStreak);
+ break;
+ case 11:
+ if (gSaveBlock2.battleTower.var_4AE[battleTowerLevelType] != 3)
+ {
+ ResetBattleTowerStreak(battleTowerLevelType);
+ }
+ break;
+ case 12:
+ gSaveBlock2.battleTower.var_4AE[battleTowerLevelType] = ewram160FB;
+ break;
+ case 13:
+ gSaveBlock2.battleTower.currentWinStreaks[battleTowerLevelType] = GetCurrentBattleTowerWinStreak(battleTowerLevelType);
+ break;
+ case 14:
+ gSaveBlock2.battleTower.lastStreakLevelType = gSaveBlock2.battleTower.battleTowerLevelType;
+ break;
+ }
+}
+
+void sub_81358A4(void)
+{
+ u8 battleTowerLevelType = gSaveBlock2.battleTower.battleTowerLevelType;
+
+ switch (gSpecialVar_0x8004)
+ {
+ case 0:
+ gSpecialVar_Result = gSaveBlock2.battleTower.var_4AE[battleTowerLevelType];
+ break;
+ case 1:
+ gSpecialVar_Result = gSaveBlock2.battleTower.battleTowerLevelType;
+ break;
+ case 2:
+ gSpecialVar_Result = gSaveBlock2.battleTower.curChallengeBattleNum[battleTowerLevelType];
+ break;
+ case 3:
+ gSpecialVar_Result = gSaveBlock2.battleTower.curStreakChallengesNum[battleTowerLevelType];
+ break;
+ case 4:
+ gSpecialVar_Result = gSaveBlock2.battleTower.battleTowerTrainerId;
+ break;
+ case 5:
+ case 6:
+ case 7:
+ break;
+ case 8:
+ gSpecialVar_Result = gSaveBlock2.battleTower.unk_554;
+ break;
+ case 9:
+ gSpecialVar_Result = GetCurrentBattleTowerWinStreak(battleTowerLevelType);
+ break;
+ case 10:
+ SetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK, gSaveBlock2.battleTower.bestBattleTowerWinStreak);
+ break;
+ case 11:
+ ResetBattleTowerStreak(battleTowerLevelType);
+ break;
+ case 12:
+ gSaveBlock2.battleTower.var_4AE[battleTowerLevelType] = ewram160FB;
+ break;
+ case 13:
+ gSaveBlock2.battleTower.currentWinStreaks[battleTowerLevelType] = GetCurrentBattleTowerWinStreak(battleTowerLevelType);
+ break;
+ case 14:
+ gSaveBlock2.battleTower.lastStreakLevelType = gSaveBlock2.battleTower.battleTowerLevelType;
+ break;
+ }
+}
+
+void sub_8135A14(void)
+{
+ s32 i;
+
+ for (i = 0; i < 3; i++)
+ {
+ gSelectedOrderFromParty[i] = gSaveBlock2.battleTower.selectedPartyMons[i];
+ }
+
+ ReducePlayerPartyToThree();
+}
+
+#ifdef NONMATCHING
+void sub_8135A3C(void)
+{
+ u8 battleTowerLevelType = gSaveBlock2.battleTower.battleTowerLevelType;
+ u16 winStreak = GetCurrentBattleTowerWinStreak(battleTowerLevelType);
+
+ if (gSaveBlock2.battleTower.recordWinStreaks[battleTowerLevelType] < winStreak)
+ {
+ gSaveBlock2.battleTower.recordWinStreaks[battleTowerLevelType] = winStreak;
+ }
+
+ if (gSaveBlock2.battleTower.recordWinStreaks[0] > gSaveBlock2.battleTower.recordWinStreaks[1])
+ {
+ u16 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];
+ 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)
+{
+ s32 i;
+ u8 trainerClass;
+ struct BattleTowerRecord *playerRecord = &gSaveBlock2.battleTower.playerRecord;
+ u8 battleTowerLevelType = gSaveBlock2.battleTower.battleTowerLevelType;
+
+ if (gSaveBlock2.playerGender != MALE)
+ {
+ trainerClass = sFemaleTrainerClasses[(gSaveBlock2.playerTrainerId[0] + gSaveBlock2.playerTrainerId[1]
+ + gSaveBlock2.playerTrainerId[2] + gSaveBlock2.playerTrainerId[3]) % 20u];
+ }
+ else
+ {
+ trainerClass = sMaleTrainerClasses[(gSaveBlock2.playerTrainerId[0] + gSaveBlock2.playerTrainerId[1]
+ + gSaveBlock2.playerTrainerId[2] + gSaveBlock2.playerTrainerId[3]) % 30u];
+ }
+
+ playerRecord->battleTowerLevelType = battleTowerLevelType;
+ playerRecord->trainerClass = trainerClass;
+
+ copy_word_to_mem(playerRecord->trainerId, gSaveBlock2.playerTrainerId);
+ StringCopy8(playerRecord->name, gSaveBlock2.playerName);
+
+ playerRecord->winStreak = GetCurrentBattleTowerWinStreak(battleTowerLevelType);
+
+ for (i = 0; i < 6; i++)
+ {
+ playerRecord->greeting.easyChat[i] = gSaveBlock1.easyChats.unk2B28[i];
+ }
+
+ for (i = 0; i < 3; i++)
+ {
+ sub_803AF78(&gUnknown_030042FC[gSaveBlock2.battleTower.selectedPartyMons[i]], &playerRecord->party[i]);
+ }
+
+ SetBattleTowerRecordChecksum(&gSaveBlock2.battleTower.playerRecord);
+ sub_8135A3C();
+}
+
+void sub_8135BA0(void)
+{
+ u8 battleTowerLevelType = gSaveBlock2.battleTower.battleTowerLevelType;
+
+ if (gSpecialVar_0x8004 == 3 || gSpecialVar_0x8004 == 0)
+ {
+ if (gSaveBlock2.battleTower.curStreakChallengesNum[battleTowerLevelType] > 1
+ || gSaveBlock2.battleTower.curChallengeBattleNum[battleTowerLevelType] > 1)
+ {
+ sub_8135AC4();
+ }
+ }
+
+ sub_8135CFC();
+
+ gSaveBlock2.battleTower.battleOutcome = gBattleOutcome;
+
+ if (gSpecialVar_0x8004 != 3)
+ {
+ gSaveBlock2.battleTower.var_4AE[battleTowerLevelType] = gSpecialVar_0x8004;
+ }
+
+ VarSet(VAR_0x4000, 0);
+ gSaveBlock2.battleTower.unk_554 = 1;
+ TrySavingData(EREADER_SAVE);
+}
+
+void BattleTower_SoftReset(void)
+{
+ DoSoftReset();
+}
+
+void ValidateBattleTowerRecordChecksums(void)
+{
+ u32 i;
+ s32 recordIndex;
+ struct BattleTowerRecord *record;
+ u32 checksum;
+
+ checksum = 0;
+ for (i = 0; i < (sizeof(struct BattleTowerRecord) / sizeof(u32)) - 1; i++)
+ {
+ checksum += ((u32 *)&gSaveBlock2.battleTower.playerRecord)[i];
+ }
+
+ if (gSaveBlock2.battleTower.playerRecord.checksum != checksum)
+ {
+ ClearBattleTowerRecord(&gSaveBlock2.battleTower.playerRecord);
+ }
+
+ for (recordIndex = 0; recordIndex < 5; recordIndex++)
+ {
+ record = &gSaveBlock2.battleTower.records[recordIndex];
+ checksum = 0;
+ for (i = 0; i < (sizeof(struct BattleTowerRecord) / sizeof(u32)) - 1; i++)
+ {
+ checksum += ((u32 *)record)[i];
+ }
+
+ if (gSaveBlock2.battleTower.records[recordIndex].checksum != checksum)
+ {
+ ClearBattleTowerRecord(&gSaveBlock2.battleTower.records[recordIndex]);
+ }
+ }
+}
+
+void SetBattleTowerRecordChecksum(struct BattleTowerRecord *record)
+{
+ u32 i;
+
+ record->checksum = 0;
+ for (i = 0; i < (sizeof(struct BattleTowerRecord) / sizeof(u32)) - 1; i++)
+ {
+ record->checksum += ((u32 *)record)[i];
+ }
+}
+
+void ClearBattleTowerRecord(struct BattleTowerRecord *record)
+{
+ u32 i;
+
+ for (i = 0; i < sizeof(struct BattleTowerRecord) / sizeof(u32); i++)
+ {
+ ((u32 *)record)[i] = 0;
+ }
+}
+
+void sub_8135CFC(void)
+{
+ s32 i;
+
+ get_trainer_name(gSaveBlock2.battleTower.defeatedByTrainerName);
+ gSaveBlock2.battleTower.defeatedBySpecies = gBattleMons[1].species;
+ gSaveBlock2.battleTower.firstMonSpecies = gBattleMons[0].species;
+
+ for (i = 0; i < POKEMON_NAME_LENGTH; i++)
+ {
+ gSaveBlock2.battleTower.firstMonNickname[i] = gBattleMons[0].nickname[i];
+ }
+}
+
+u16 GetCurrentBattleTowerWinStreak(u8 battleTowerLevelType)
+{
+ u16 winStreak = ((gSaveBlock2.battleTower.curStreakChallengesNum[battleTowerLevelType] - 1) * 7 - 1)
+ + gSaveBlock2.battleTower.curChallengeBattleNum[battleTowerLevelType];
+
+ if (winStreak > 9999)
+ {
+ return 9999;
+ }
+
+ return winStreak;
+}
+
+#ifdef NONMATCHING
+void DetermineBattleTowerPrize(void)
+{
+ u16 prizeItem;
+ struct SaveBlock2 *saveBlock = &gSaveBlock2;
+ u8 battleTowerLevelType = saveBlock->battleTower.battleTowerLevelType;
+
+ if (saveBlock->battleTower.curStreakChallengesNum[battleTowerLevelType] - 1 > 5)
+ {
+ 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");
+}
+#endif // NONMATCHING
+
+void GiveBattleTowerPrize(void)
+{
+ u8 battleTowerLevelType = gSaveBlock2.battleTower.battleTowerLevelType;
+
+ if (AddBagItem(gSaveBlock2.battleTower.prizeItem, 1) == TRUE)
+ {
+ CopyItemName(gSaveBlock2.battleTower.prizeItem, gStringVar1);
+ gSpecialVar_Result = 1;
+ }
+ else
+ {
+ gSpecialVar_Result = 0;
+ gSaveBlock2.battleTower.var_4AE[battleTowerLevelType] = 6;
+ }
+}
+
+void AwardBattleTowerRibbons(void)
+{
+ s32 i;
+ u32 partyIndex;
+ struct Pokemon *pokemon;
+ u8 ribbonType;
+ u8 battleTowerLevelType = gSaveBlock2.battleTower.battleTowerLevelType;
+
+ ribbonType = MON_DATA_WINNING_RIBBON;
+ if (battleTowerLevelType != 0)
+ {
+ ribbonType = MON_DATA_VICTORY_RIBBON;
+ }
+
+ gSpecialVar_Result = 0;
+
+ if (GetCurrentBattleTowerWinStreak(battleTowerLevelType) > 55)
+ {
+ for (i = 0; i < 3; i++)
+ {
+ partyIndex = gSaveBlock2.battleTower.selectedPartyMons[i] - 1;
+ pokemon = &gPlayerParty[partyIndex];
+ if (!GetMonData(pokemon, ribbonType))
+ {
+ gSpecialVar_Result = 1;
+ SetMonData(pokemon, ribbonType, &gSpecialVar_Result);
+ }
+ }
+ }
+
+ if (gSpecialVar_Result != 0)
+ {
+ IncrementGameStat(GAME_STAT_RECEIVED_RIBBONS);
+ }
+}
+
+// This is a leftover debugging function that is used to populate the E-Reader
+// trainer with the player's current data.
+void Debug_FillEReaderTrainerWithPlayerData(void)
+{
+ struct BattleTowerEReaderTrainer *ereaderTrainer;
+ s32 i;
+ s32 j;
+
+ ereaderTrainer = &gSaveBlock2.battleTower.ereaderTrainer;
+
+ if (gSaveBlock2.playerGender != MALE)
+ {
+ ereaderTrainer->trainerClass = sFemaleTrainerClasses[(gSaveBlock2.playerTrainerId[0] + gSaveBlock2.playerTrainerId[1]
+ + gSaveBlock2.playerTrainerId[2] + gSaveBlock2.playerTrainerId[3]) % 20u];
+ }
+ else
+ {
+ ereaderTrainer->trainerClass = sMaleTrainerClasses[(gSaveBlock2.playerTrainerId[0] + gSaveBlock2.playerTrainerId[1]
+ + gSaveBlock2.playerTrainerId[2] + gSaveBlock2.playerTrainerId[3]) % 30u];
+ }
+
+ copy_word_to_mem(ereaderTrainer->trainerId, gSaveBlock2.playerTrainerId);
+ StringCopy8(ereaderTrainer->name, gSaveBlock2.playerName);
+
+ ereaderTrainer->winStreak = 1;
+
+ j = 7;
+ for (i = 0; i < 6; i++)
+ {
+ ereaderTrainer->greeting.easyChat[i] = gSaveBlock1.easyChats.unk2B28[i];
+ ereaderTrainer->farewellPlayerLost.easyChat[i] = j;
+ ereaderTrainer->farewellPlayerWon.easyChat[i] = j + 6;
+ j++;
+ }
+
+ for (i = 0; i < 3; i++)
+ {
+ sub_803AF78(&gPlayerParty[i], &ereaderTrainer->party[i]);
+ }
+
+ SetEReaderTrainerChecksum(ereaderTrainer);
+}
+
+u8 GetEReaderTrainerPicIndex(void)
+{
+ return gTrainerClassToPicIndex[gSaveBlock2.battleTower.ereaderTrainer.trainerClass];
+}
+
+u8 GetEReaderTrainerClassNameIndex(void)
+{
+ return gTrainerClassToNameIndex[gSaveBlock2.battleTower.ereaderTrainer.trainerClass];
+}
+
+void SetEReaderTrainerName(u8 *trainerName)
+{
+ s32 i;
+
+ for (i = 0; i < 7; i++)
+ {
+ trainerName[i] = gSaveBlock2.battleTower.ereaderTrainer.name[i];
+ }
+
+ trainerName[i] = 0xFF;
+}
+
+// Checks if the saved E-Reader trainer is valid.
+void ValidateEReaderTrainer(void)
+{
+ u32 i;
+ u32 checksum;
+ struct BattleTowerEReaderTrainer *ereaderTrainer;
+
+ gSpecialVar_Result = 0;
+ ereaderTrainer = &gSaveBlock2.battleTower.ereaderTrainer;
+
+ checksum = 0;
+ for (i = 0; i < sizeof(struct BattleTowerEReaderTrainer) / sizeof(u32) - 1; i++)
+ {
+ checksum |= ((u32 *)ereaderTrainer)[i];
+ }
+
+ if (checksum == 0)
+ {
+ gSpecialVar_Result = 1;
+ return;
+ }
+
+ checksum = 0;
+ for (i = 0; i < sizeof(struct BattleTowerEReaderTrainer) / sizeof(u32) - 1; i++)
+ {
+ checksum += ((u32 *)ereaderTrainer)[i];
+ }
+
+ if (gSaveBlock2.battleTower.ereaderTrainer.checksum != checksum)
+ {
+ ClearEReaderTrainer(&gSaveBlock2.battleTower.ereaderTrainer);
+ gSpecialVar_Result = 1;
+ }
+}
+
+void SetEReaderTrainerChecksum(struct BattleTowerEReaderTrainer *ereaderTrainer)
+{
+ s32 i;
+
+ ereaderTrainer->checksum = 0;
+ for (i = 0; i < sizeof(struct BattleTowerEReaderTrainer) / sizeof(u32) - 1; i++)
+ {
+ ereaderTrainer->checksum += ((u32 *)ereaderTrainer)[i];
+ }
+}
+
+void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *ereaderTrainer)
+{
+ u32 i;
+
+ for (i = 0; i < sizeof(struct BattleTowerEReaderTrainer) / sizeof(u32); i++)
+ {
+ ((u32 *)ereaderTrainer)[i] = 0;
+ }
+}
+
+void PrintEReaderTrainerGreeting(void)
+{
+ PrintBattleTowerTrainerMessage(gSaveBlock2.battleTower.ereaderTrainer.greeting.easyChat);
+}
+
+void PrintEReaderTrainerFarewellMessage(void)
+{
+ if (gBattleOutcome == BATTLE_DREW)
+ {
+ gStringVar4[0] = 0xFF;
+ }
+ else if (gBattleOutcome == BATTLE_WON)
+ {
+ PrintBattleTowerTrainerMessage(gSaveBlock2.battleTower.ereaderTrainer.farewellPlayerWon.easyChat);
+ }
+ else
+ {
+ PrintBattleTowerTrainerMessage(gSaveBlock2.battleTower.ereaderTrainer.farewellPlayerLost.easyChat);
+ }
+}
+
+void sub_813610C(void)
+{
+ s32 i;
+
+ for (i = 0; i < 2; i++)
+ {
+ if (gSaveBlock2.battleTower.var_4AE[i] == 1)
+ {
+ sub_80BFD20();
+ }
+ }
+}
+
+#if GERMAN
+u8 de_sub_81364AC(void)
+{
+ if (gSaveBlock2.battleTower.battleTowerTrainerId == BATTLE_TOWER_EREADER_TRAINER_ID)
+ {
+ return gSaveBlock2.battleTower.ereaderTrainer.trainerClass;
+ }
+ else if (gSaveBlock2.battleTower.battleTowerTrainerId >= BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID)
+ {
+ return gSaveBlock2.battleTower.records[gSaveBlock2.battleTower.battleTowerTrainerId - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].trainerClass;
+ }
+ else
+ {
+ return gBattleTowerTrainers[gSaveBlock2.battleTower.battleTowerTrainerId].trainerClass;
+ }
+}
+
+u8 de_sub_81364F8(void)
+{
+ return gSaveBlock2.battleTower.ereaderTrainer.trainerClass;
+}
+#endif
diff --git a/src/field/berry.c b/src/field/berry.c
index d82eab2a6..088267ad0 100644
--- a/src/field/berry.c
+++ b/src/field/berry.c
@@ -6,16 +6,22 @@
#include "item.h"
#include "item_menu.h"
#include "item_use.h"
-#include "items.h"
+#include "constants/items.h"
#include "main.h"
-#include "rng.h"
+#include "random.h"
#include "text.h"
#define BERRY_NAME_LENGTH 6
+#define BERRY_REGROW_LIMIT 10
+#define MAX_BERRY_TREES 128
+#define BERRY_NONE 0
#define FIRST_BERRY ITEM_CHERI_BERRY
#define LAST_BERRY ITEM_ENIGMA_BERRY
+#define GETBERRYID(berry) ((berry - FIRST_BERRY) + 1)
+#define GETITEMID(berry) ((berry + FIRST_BERRY) - 1)
+
#ifdef ENGLISH
#define NAME_CHERI_BERRY _("CHERI")
#define NAME_CHESTO_BERRY _("CHESTO")
@@ -61,92 +67,92 @@
#define NAME_STARF_BERRY _("STARF")
#define NAME_ENIGMA_BERRY _("ENIGMA")
-const u8 gBerryDescriptionPart1_Cheri[] = _("Blooms with delicate pretty flowers.");
-const u8 gBerryDescriptionPart2_Cheri[] = _("The bright red BERRY is very spicy.");
-const u8 gBerryDescriptionPart1_Chesto[] = _("The BERRY’s thick skin and fruit are");
-const u8 gBerryDescriptionPart2_Chesto[] = _("very tough. It is dry-tasting all over.");
-const u8 gBerryDescriptionPart1_Pecha[] = _("Very sweet and delicious.");
-const u8 gBerryDescriptionPart2_Pecha[] = _("Also very tender - handle with care.");
-const u8 gBerryDescriptionPart1_Rawst[] = _("If the leaves grow long and curly,");
-const u8 gBerryDescriptionPart2_Rawst[] = _("the BERRY seems to grow very bitter.");
-const u8 gBerryDescriptionPart1_Aspear[] = _("The hard BERRY is dense with a rich");
-const u8 gBerryDescriptionPart2_Aspear[] = _("juice. It is quite sour.");
-const u8 gBerryDescriptionPart1_Leppa[] = _("Grows slower than CHERI and others.");
-const u8 gBerryDescriptionPart2_Leppa[] = _("The smaller the BERRY, the tastier.");
-const u8 gBerryDescriptionPart1_Oran[] = _("A peculiar BERRY with a mix of flavors.");
-const u8 gBerryDescriptionPart2_Oran[] = _("BERRIES grow in half a day.");
-const u8 gBerryDescriptionPart1_Persim[] = _("Loves sunlight. The BERRY’s color");
-const u8 gBerryDescriptionPart2_Persim[] = _("grows vivid when exposed to the sun.");
-const u8 gBerryDescriptionPart1_Lum[] = _("Slow to grow. If raised with loving");
-const u8 gBerryDescriptionPart2_Lum[] = _("care, it may grow two BERRIES.");
-const u8 gBerryDescriptionPart1_Sitrus[] = _("Closely related to ORAN. The large");
-const u8 gBerryDescriptionPart2_Sitrus[] = _("BERRY has a well-rounded flavor.");
-const u8 gBerryDescriptionPart1_Figy[] = _("The BERRY, which looks chewed up,");
-const u8 gBerryDescriptionPart2_Figy[] = _("brims with spicy substances.");
-const u8 gBerryDescriptionPart1_Wiki[] = _("The BERRY is said to have grown lumpy");
-const u8 gBerryDescriptionPart2_Wiki[] = _("to help POKéMON grip it.");
-const u8 gBerryDescriptionPart1_Mago[] = _("The BERRY turns curvy as it grows.");
-const u8 gBerryDescriptionPart2_Mago[] = _("The curvier, the sweeter and tastier.");
-const u8 gBerryDescriptionPart1_Aguav[] = _("The flower is dainty. It is rare in its");
-const u8 gBerryDescriptionPart2_Aguav[] = _("ability to grow without light.");
-const u8 gBerryDescriptionPart1_Iapapa[] = _("The BERRY is very big and sour.");
-const u8 gBerryDescriptionPart2_Iapapa[] = _("It takes at least a day to grow.");
-const u8 gBerryDescriptionPart1_Razz[] = _("The red BERRY tastes slightly spicy.");
-const u8 gBerryDescriptionPart2_Razz[] = _("It grows quickly in just four hours.");
-const u8 gBerryDescriptionPart1_Bluk[] = _("The BERRY is blue on the outside, but");
-const u8 gBerryDescriptionPart2_Bluk[] = _("it blackens the mouth when eaten.");
-const u8 gBerryDescriptionPart1_Nanab[] = _("This BERRY was the seventh");
-const u8 gBerryDescriptionPart2_Nanab[] = _("discovered in the world. It is sweet.");
-const u8 gBerryDescriptionPart1_Wepear[] = _("The flower is small and white. It has a");
-const u8 gBerryDescriptionPart2_Wepear[] = _("delicate balance of bitter and sour.");
-const u8 gBerryDescriptionPart1_Pinap[] = _("Weak against wind and cold.");
-const u8 gBerryDescriptionPart2_Pinap[] = _("The fruit is spicy and the skin, sour.");
-const u8 gBerryDescriptionPart1_Pomeg[] = _("However much it is watered,");
-const u8 gBerryDescriptionPart2_Pomeg[] = _("it only grows up to six BERRIES.");
-const u8 gBerryDescriptionPart1_Kelpsy[] = _("A rare variety shaped like a root.");
-const u8 gBerryDescriptionPart2_Kelpsy[] = _("Grows a very large flower.");
-const u8 gBerryDescriptionPart1_Qualot[] = _("Loves water. Grows strong even in");
-const u8 gBerryDescriptionPart2_Qualot[] = _("locations with constant rainfall.");
-const u8 gBerryDescriptionPart1_Hondew[] = _("A BERRY that is very valuable and");
-const u8 gBerryDescriptionPart2_Hondew[] = _("rarely seen. It is very delicious.");
-const u8 gBerryDescriptionPart1_Grepa[] = _("Despite its tenderness and round");
-const u8 gBerryDescriptionPart2_Grepa[] = _("shape, the BERRY is unimaginably sour.");
-const u8 gBerryDescriptionPart1_Tamato[] = _("The BERRY is lip-bendingly spicy.");
-const u8 gBerryDescriptionPart2_Tamato[] = _("It takes time to grow.");
-const u8 gBerryDescriptionPart1_Cornn[] = _("A BERRY from an ancient era. May not");
-const u8 gBerryDescriptionPart2_Cornn[] = _("grow unless planted in quantity.");
-const u8 gBerryDescriptionPart1_Magost[] = _("A BERRY that is widely said to have");
-const u8 gBerryDescriptionPart2_Magost[] = _("a finely balanced flavor.");
-const u8 gBerryDescriptionPart1_Rabuta[] = _("A rare variety that is overgrown with");
-const u8 gBerryDescriptionPart2_Rabuta[] = _("hair. It is quite bitter.");
-const u8 gBerryDescriptionPart1_Nomel[] = _("Quite sour. Just one bite makes it");
-const u8 gBerryDescriptionPart2_Nomel[] = _("impossible to taste for three days.");
-const u8 gBerryDescriptionPart1_Spelon[] = _("The vividly red BERRY is very spicy.");
-const u8 gBerryDescriptionPart2_Spelon[] = _("Its warts secrete a spicy substance.");
-const u8 gBerryDescriptionPart1_Pamtre[] = _("Drifts on the sea from somewhere.");
-const u8 gBerryDescriptionPart2_Pamtre[] = _("It is thought to grow elsewhere.");
-const u8 gBerryDescriptionPart1_Watmel[] = _("A huge BERRY, with some over 20");
-const u8 gBerryDescriptionPart2_Watmel[] = _("inches discovered. Exceedingly sweet.");
-const u8 gBerryDescriptionPart1_Durin[] = _("Bitter to even look at. It is so");
-const u8 gBerryDescriptionPart2_Durin[] = _("bitter, no one has ever eaten it as is.");
-const u8 gBerryDescriptionPart1_Belue[] = _("It is glossy and looks delicious, but");
-const u8 gBerryDescriptionPart2_Belue[] = _("it is awfully sour. Takes time to grow.");
-const u8 gBerryDescriptionPart1_Liechi[] = _("A mysterious BERRY. It is rumored to");
-const u8 gBerryDescriptionPart2_Liechi[] = _("contain the power of the sea.");
-const u8 gBerryDescriptionPart1_Ganlon[] = _("A mysterious BERRY. It is rumored to");
-const u8 gBerryDescriptionPart2_Ganlon[] = _("contain the power of the land.");
-const u8 gBerryDescriptionPart1_Salac[] = _("A mysterious BERRY. It is rumored to");
-const u8 gBerryDescriptionPart2_Salac[] = _("contain the power of the sky.");
-const u8 gBerryDescriptionPart1_Petaya[] = _("A mysterious BERRY. It is rumored to");
-const u8 gBerryDescriptionPart2_Petaya[] = _("contain the power of all living things.");
-const u8 gBerryDescriptionPart1_Apicot[] = _("A very mystifying BERRY. No telling");
-const u8 gBerryDescriptionPart2_Apicot[] = _("what may happen or how it can be used.");
-const u8 gBerryDescriptionPart1_Lansat[] = _("Said to be a legendary BERRY.");
-const u8 gBerryDescriptionPart2_Lansat[] = _("Holding it supposedly brings joy.");
-const u8 gBerryDescriptionPart1_Starf[] = _("So strong, it was abandoned at the");
-const u8 gBerryDescriptionPart2_Starf[] = _("world’s edge. Considered a mirage.");
-const u8 gBerryDescriptionPart1_Enigma[] = _("A completely enigmatic BERRY.");
-const u8 gBerryDescriptionPart2_Enigma[] = _("Appears to have the power of stars.");
+static const u8 gBerryDescriptionPart1_Cheri[] = _("Blooms with delicate pretty flowers.");
+static const u8 gBerryDescriptionPart2_Cheri[] = _("The bright red BERRY is very spicy.");
+static const u8 gBerryDescriptionPart1_Chesto[] = _("The BERRY’s thick skin and fruit are");
+static const u8 gBerryDescriptionPart2_Chesto[] = _("very tough. It is dry-tasting all over.");
+static const u8 gBerryDescriptionPart1_Pecha[] = _("Very sweet and delicious.");
+static const u8 gBerryDescriptionPart2_Pecha[] = _("Also very tender - handle with care.");
+static const u8 gBerryDescriptionPart1_Rawst[] = _("If the leaves grow long and curly,");
+static const u8 gBerryDescriptionPart2_Rawst[] = _("the BERRY seems to grow very bitter.");
+static const u8 gBerryDescriptionPart1_Aspear[] = _("The hard BERRY is dense with a rich");
+static const u8 gBerryDescriptionPart2_Aspear[] = _("juice. It is quite sour.");
+static const u8 gBerryDescriptionPart1_Leppa[] = _("Grows slower than CHERI and others.");
+static const u8 gBerryDescriptionPart2_Leppa[] = _("The smaller the BERRY, the tastier.");
+static const u8 gBerryDescriptionPart1_Oran[] = _("A peculiar BERRY with a mix of flavors.");
+static const u8 gBerryDescriptionPart2_Oran[] = _("BERRIES grow in half a day.");
+static const u8 gBerryDescriptionPart1_Persim[] = _("Loves sunlight. The BERRY’s color");
+static const u8 gBerryDescriptionPart2_Persim[] = _("grows vivid when exposed to the sun.");
+static const u8 gBerryDescriptionPart1_Lum[] = _("Slow to grow. If raised with loving");
+static const u8 gBerryDescriptionPart2_Lum[] = _("care, it may grow two BERRIES.");
+static const u8 gBerryDescriptionPart1_Sitrus[] = _("Closely related to ORAN. The large");
+static const u8 gBerryDescriptionPart2_Sitrus[] = _("BERRY has a well-rounded flavor.");
+static const u8 gBerryDescriptionPart1_Figy[] = _("The BERRY, which looks chewed up,");
+static const u8 gBerryDescriptionPart2_Figy[] = _("brims with spicy substances.");
+static const u8 gBerryDescriptionPart1_Wiki[] = _("The BERRY is said to have grown lumpy");
+static const u8 gBerryDescriptionPart2_Wiki[] = _("to help POKéMON grip it.");
+static const u8 gBerryDescriptionPart1_Mago[] = _("The BERRY turns curvy as it grows.");
+static const u8 gBerryDescriptionPart2_Mago[] = _("The curvier, the sweeter and tastier.");
+static const u8 gBerryDescriptionPart1_Aguav[] = _("The flower is dainty. It is rare in its");
+static const u8 gBerryDescriptionPart2_Aguav[] = _("ability to grow without light.");
+static const u8 gBerryDescriptionPart1_Iapapa[] = _("The BERRY is very big and sour.");
+static const u8 gBerryDescriptionPart2_Iapapa[] = _("It takes at least a day to grow.");
+static const u8 gBerryDescriptionPart1_Razz[] = _("The red BERRY tastes slightly spicy.");
+static const u8 gBerryDescriptionPart2_Razz[] = _("It grows quickly in just four hours.");
+static const u8 gBerryDescriptionPart1_Bluk[] = _("The BERRY is blue on the outside, but");
+static const u8 gBerryDescriptionPart2_Bluk[] = _("it blackens the mouth when eaten.");
+static const u8 gBerryDescriptionPart1_Nanab[] = _("This BERRY was the seventh");
+static const u8 gBerryDescriptionPart2_Nanab[] = _("discovered in the world. It is sweet.");
+static const u8 gBerryDescriptionPart1_Wepear[] = _("The flower is small and white. It has a");
+static const u8 gBerryDescriptionPart2_Wepear[] = _("delicate balance of bitter and sour.");
+static const u8 gBerryDescriptionPart1_Pinap[] = _("Weak against wind and cold.");
+static const u8 gBerryDescriptionPart2_Pinap[] = _("The fruit is spicy and the skin, sour.");
+static const u8 gBerryDescriptionPart1_Pomeg[] = _("However much it is watered,");
+static const u8 gBerryDescriptionPart2_Pomeg[] = _("it only grows up to six BERRIES.");
+static const u8 gBerryDescriptionPart1_Kelpsy[] = _("A rare variety shaped like a root.");
+static const u8 gBerryDescriptionPart2_Kelpsy[] = _("Grows a very large flower.");
+static const u8 gBerryDescriptionPart1_Qualot[] = _("Loves water. Grows strong even in");
+static const u8 gBerryDescriptionPart2_Qualot[] = _("locations with constant rainfall.");
+static const u8 gBerryDescriptionPart1_Hondew[] = _("A BERRY that is very valuable and");
+static const u8 gBerryDescriptionPart2_Hondew[] = _("rarely seen. It is very delicious.");
+static const u8 gBerryDescriptionPart1_Grepa[] = _("Despite its tenderness and round");
+static const u8 gBerryDescriptionPart2_Grepa[] = _("shape, the BERRY is unimaginably sour.");
+static const u8 gBerryDescriptionPart1_Tamato[] = _("The BERRY is lip-bendingly spicy.");
+static const u8 gBerryDescriptionPart2_Tamato[] = _("It takes time to grow.");
+static const u8 gBerryDescriptionPart1_Cornn[] = _("A BERRY from an ancient era. May not");
+static const u8 gBerryDescriptionPart2_Cornn[] = _("grow unless planted in quantity.");
+static const u8 gBerryDescriptionPart1_Magost[] = _("A BERRY that is widely said to have");
+static const u8 gBerryDescriptionPart2_Magost[] = _("a finely balanced flavor.");
+static const u8 gBerryDescriptionPart1_Rabuta[] = _("A rare variety that is overgrown with");
+static const u8 gBerryDescriptionPart2_Rabuta[] = _("hair. It is quite bitter.");
+static const u8 gBerryDescriptionPart1_Nomel[] = _("Quite sour. Just one bite makes it");
+static const u8 gBerryDescriptionPart2_Nomel[] = _("impossible to taste for three days.");
+static const u8 gBerryDescriptionPart1_Spelon[] = _("The vividly red BERRY is very spicy.");
+static const u8 gBerryDescriptionPart2_Spelon[] = _("Its warts secrete a spicy substance.");
+static const u8 gBerryDescriptionPart1_Pamtre[] = _("Drifts on the sea from somewhere.");
+static const u8 gBerryDescriptionPart2_Pamtre[] = _("It is thought to grow elsewhere.");
+static const u8 gBerryDescriptionPart1_Watmel[] = _("A huge BERRY, with some over 20");
+static const u8 gBerryDescriptionPart2_Watmel[] = _("inches discovered. Exceedingly sweet.");
+static const u8 gBerryDescriptionPart1_Durin[] = _("Bitter to even look at. It is so");
+static const u8 gBerryDescriptionPart2_Durin[] = _("bitter, no one has ever eaten it as is.");
+static const u8 gBerryDescriptionPart1_Belue[] = _("It is glossy and looks delicious, but");
+static const u8 gBerryDescriptionPart2_Belue[] = _("it is awfully sour. Takes time to grow.");
+static const u8 gBerryDescriptionPart1_Liechi[] = _("A mysterious BERRY. It is rumored to");
+static const u8 gBerryDescriptionPart2_Liechi[] = _("contain the power of the sea.");
+static const u8 gBerryDescriptionPart1_Ganlon[] = _("A mysterious BERRY. It is rumored to");
+static const u8 gBerryDescriptionPart2_Ganlon[] = _("contain the power of the land.");
+static const u8 gBerryDescriptionPart1_Salac[] = _("A mysterious BERRY. It is rumored to");
+static const u8 gBerryDescriptionPart2_Salac[] = _("contain the power of the sky.");
+static const u8 gBerryDescriptionPart1_Petaya[] = _("A mysterious BERRY. It is rumored to");
+static const u8 gBerryDescriptionPart2_Petaya[] = _("contain the power of all living things.");
+static const u8 gBerryDescriptionPart1_Apicot[] = _("A very mystifying BERRY. No telling");
+static const u8 gBerryDescriptionPart2_Apicot[] = _("what may happen or how it can be used.");
+static const u8 gBerryDescriptionPart1_Lansat[] = _("Said to be a legendary BERRY.");
+static const u8 gBerryDescriptionPart2_Lansat[] = _("Holding it supposedly brings joy.");
+static const u8 gBerryDescriptionPart1_Starf[] = _("So strong, it was abandoned at the");
+static const u8 gBerryDescriptionPart2_Starf[] = _("world’s edge. Considered a mirage.");
+static const u8 gBerryDescriptionPart1_Enigma[] = _("A completely enigmatic BERRY.");
+static const u8 gBerryDescriptionPart2_Enigma[] = _("Appears to have the power of stars.");
#elif defined(GERMAN)
#define NAME_CHERI_BERRY _("AMRENA")
#define NAME_CHESTO_BERRY _("MARON")
@@ -192,92 +198,92 @@ const u8 gBerryDescriptionPart2_Enigma[] = _("Appears to have the power of stars
#define NAME_STARF_BERRY _("KRAMBO")
#define NAME_ENIGMA_BERRY _("ENIGMA")
-const u8 gBerryDescriptionPart1_Cheri[] = _("Erblüht mit hübschen, zarten Blumen.");
-const u8 gBerryDescriptionPart2_Cheri[] = _("Diese knallrote BEERE ist sehr scharf.");
-const u8 gBerryDescriptionPart1_Chesto[] = _("Diese BEERE hat eine dicke Haut und");
-const u8 gBerryDescriptionPart2_Chesto[] = _("hartes Fruchtfleisch. Trocken!");
-const u8 gBerryDescriptionPart1_Pecha[] = _("Sehr süß und delikat.");
-const u8 gBerryDescriptionPart2_Pecha[] = _("Sehr zart. Vorsichtig anfassen!");
-const u8 gBerryDescriptionPart1_Rawst[] = _("Wenn die Blätter lang und wellig sind,");
-const u8 gBerryDescriptionPart2_Rawst[] = _("wird die BEERE sehr bitter.");
-const u8 gBerryDescriptionPart1_Aspear[] = _("Diese harte BEERE ist sehr");
-const u8 gBerryDescriptionPart2_Aspear[] = _("saftig und sauer im Geschmack!");
-const u8 gBerryDescriptionPart1_Leppa[] = _("Wächst langsamer als AMRENA und");
-const u8 gBerryDescriptionPart2_Leppa[] = _("andere. Je kleiner, desto delikater.");
-const u8 gBerryDescriptionPart1_Oran[] = _("Eine BEERE unterschiedlichsten Ge-");
-const u8 gBerryDescriptionPart2_Oran[] = _("schmacks. Wächst an einem halben Tag.");
-const u8 gBerryDescriptionPart1_Persim[] = _("Liebt Sonnenlicht. Die BEERE");
-const u8 gBerryDescriptionPart2_Persim[] = _("wächst im Sonnenlicht sehr schnell.");
-const u8 gBerryDescriptionPart1_Lum[] = _("Langsamer Wuchs. Wird sie liebevoll ge-");
-const u8 gBerryDescriptionPart2_Lum[] = _("pflegt, kann sie 2 BEEREN tragen.");
-const u8 gBerryDescriptionPart1_Sitrus[] = _("Eng verwandt mit SINEL. Diese große");
-const u8 gBerryDescriptionPart2_Sitrus[] = _("BEERE ist von rundem Geschmack.");
-const u8 gBerryDescriptionPart1_Figy[] = _("Die BEERE sieht angekaut aus. Sie ist");
-const u8 gBerryDescriptionPart2_Figy[] = _("voller scharfer Substanzen.");
-const u8 gBerryDescriptionPart1_Wiki[] = _("Die BEERE wächst unförmig,");
-const u8 gBerryDescriptionPart2_Wiki[] = _("damit PKMN sie besser greifen können.");
-const u8 gBerryDescriptionPart1_Mago[] = _("Die BEERE hat Ausbeulungen. Je mehr");
-const u8 gBerryDescriptionPart2_Mago[] = _("Beulen, desto schmackhafter ist sie.");
-const u8 gBerryDescriptionPart1_Aguav[] = _("Die Blume ist zart. Sie ist fähig,");
-const u8 gBerryDescriptionPart2_Aguav[] = _("ohne Licht wachsen zu können.");
-const u8 gBerryDescriptionPart1_Iapapa[] = _("Die BEERE ist groß und sauer.");
-const u8 gBerryDescriptionPart2_Iapapa[] = _("Sie braucht einen Tag zum Wachsen.");
-const u8 gBerryDescriptionPart1_Razz[] = _("Diese rote BEERE schmeckt etwas");
-const u8 gBerryDescriptionPart2_Razz[] = _("scharf. Sie wächst in nur 4 Stunden.");
-const u8 gBerryDescriptionPart1_Bluk[] = _("Die BEERE ist außen blau, verfärbt");
-const u8 gBerryDescriptionPart2_Bluk[] = _("sich im Mund aber schwarz.");
-const u8 gBerryDescriptionPart1_Nanab[] = _("Diese BEERE war die 7., die auf der");
-const u8 gBerryDescriptionPart2_Nanab[] = _("Welt entdeckt wurde. Sie ist süß.");
-const u8 gBerryDescriptionPart1_Wepear[] = _("Die Blume ist klein und weiß. Angenehm");
-const u8 gBerryDescriptionPart2_Wepear[] = _("bitter und sauer zugleich.");
-const u8 gBerryDescriptionPart1_Pinap[] = _("Wind und Kälte verträgt sie nicht.");
-const u8 gBerryDescriptionPart2_Pinap[] = _("Fruchtfleisch: Scharf. Haut: Sauer.");
-const u8 gBerryDescriptionPart1_Pomeg[] = _("Egal wie viel Wasser sie bekommt, sie");
-const u8 gBerryDescriptionPart2_Pomeg[] = _("trägt immer bis zu 6 BEEREN.");
-const u8 gBerryDescriptionPart1_Kelpsy[] = _("Eine Seltenheit. Geformt wie eine");
-const u8 gBerryDescriptionPart2_Kelpsy[] = _("Wurzel. Hat eine große Blume.");
-const u8 gBerryDescriptionPart1_Qualot[] = _("Liebt das Wasser. Wächst besonders");
-const u8 gBerryDescriptionPart2_Qualot[] = _("gut in regenreichen Gegenden.");
-const u8 gBerryDescriptionPart1_Hondew[] = _("Eine wertvolle und seltene BEERE.");
-const u8 gBerryDescriptionPart2_Hondew[] = _("Sie ist sehr schmackhaft.");
-const u8 gBerryDescriptionPart1_Grepa[] = _("Die BEERE ist zart und von runder");
-const u8 gBerryDescriptionPart2_Grepa[] = _("Form. Aber sie ist unglaublich sauer!");
-const u8 gBerryDescriptionPart1_Tamato[] = _("Die Schärfe der BEERE verbrennt die");
-const u8 gBerryDescriptionPart2_Tamato[] = _("Lippen. Sie braucht Zeit zum Wachsen.");
-const u8 gBerryDescriptionPart1_Cornn[] = _("Eine BEERE aus alten Zeiten. Wächst");
-const u8 gBerryDescriptionPart2_Cornn[] = _("nur, wenn in großen Mengen gepflanzt.");
-const u8 gBerryDescriptionPart1_Magost[] = _("Eine BEERE, die für ihren feinen, aus-");
-const u8 gBerryDescriptionPart2_Magost[] = _("gewogenen Geschmack bekannt ist.");
-const u8 gBerryDescriptionPart1_Rabuta[] = _("Eine Seltenheit, die über und über mit");
-const u8 gBerryDescriptionPart2_Rabuta[] = _("Haaren bewachsen ist. Sehr bitter!");
-const u8 gBerryDescriptionPart1_Nomel[] = _("Sehr sauer. Ein Biss betäubt die");
-const u8 gBerryDescriptionPart2_Nomel[] = _("Geschmacksnerven für 3 Tage!");
-const u8 gBerryDescriptionPart1_Spelon[] = _("Die leuchtend rote BEERE ist sehr");
-const u8 gBerryDescriptionPart2_Spelon[] = _("scharf. Gibt scharfe Substanzen ab!");
-const u8 gBerryDescriptionPart1_Pamtre[] = _("Wird vom Meer angespült. Sie wächst");
-const u8 gBerryDescriptionPart2_Pamtre[] = _("an einem anderen Ort.");
-const u8 gBerryDescriptionPart1_Watmel[] = _("Eine große BEERE, 25 cm groß.");
-const u8 gBerryDescriptionPart2_Watmel[] = _("Außergewöhnlich süß.");
-const u8 gBerryDescriptionPart1_Durin[] = _("Bitter schon ihr Anblick! Sie ist so");
-const u8 gBerryDescriptionPart2_Durin[] = _("bitter, dass niemand sie pur isst.");
-const u8 gBerryDescriptionPart1_Belue[] = _("Sie glänzt, sieht zart aus, ist extrem");
-const u8 gBerryDescriptionPart2_Belue[] = _("sauer und braucht Zeit zum Wachsen.");
-const u8 gBerryDescriptionPart1_Liechi[] = _("Eine geheimnisvolle BEERE. Man sagt,");
-const u8 gBerryDescriptionPart2_Liechi[] = _("sie enthalte die Kraft des Meeres.");
-const u8 gBerryDescriptionPart1_Ganlon[] = _("Eine geheimnisvolle BEERE. Man sagt,");
-const u8 gBerryDescriptionPart2_Ganlon[] = _("sie enthalte die Kraft des Landes.");
-const u8 gBerryDescriptionPart1_Salac[] = _("Eine geheimnisvolle BEERE. Man sagt,");
-const u8 gBerryDescriptionPart2_Salac[] = _("sie enthalte die Kraft des Himmels.");
-const u8 gBerryDescriptionPart1_Petaya[] = _("Eine geheimnisvolle BEERE. Man sagt,");
-const u8 gBerryDescriptionPart2_Petaya[] = _("sie enthalte die Kraft allen Lebens.");
-const u8 gBerryDescriptionPart1_Apicot[] = _("Eine rätselhafte BEERE. Man kann");
-const u8 gBerryDescriptionPart2_Apicot[] = _("nicht sagen, wie und was sie ist.");
-const u8 gBerryDescriptionPart1_Lansat[] = _("Eine legendäre BEERE. Sie zu");
-const u8 gBerryDescriptionPart2_Lansat[] = _("tragen bringt Freude.");
-const u8 gBerryDescriptionPart1_Starf[] = _("So stark, dass sie an den Rand der");
-const u8 gBerryDescriptionPart2_Starf[] = _("Welt verbannt wurde. Ein Märchen?");
-const u8 gBerryDescriptionPart1_Enigma[] = _("Eine enigmatische BEERE. Sie scheint");
-const u8 gBerryDescriptionPart2_Enigma[] = _("die Macht der Sterne zu besitzen.");
+static const u8 gBerryDescriptionPart1_Cheri[] = _("Erblüht mit hübschen, zarten Blumen.");
+static const u8 gBerryDescriptionPart2_Cheri[] = _("Diese knallrote BEERE ist sehr scharf.");
+static const u8 gBerryDescriptionPart1_Chesto[] = _("Diese BEERE hat eine dicke Haut und");
+static const u8 gBerryDescriptionPart2_Chesto[] = _("hartes Fruchtfleisch. Trocken!");
+static const u8 gBerryDescriptionPart1_Pecha[] = _("Sehr süß und delikat.");
+static const u8 gBerryDescriptionPart2_Pecha[] = _("Sehr zart. Vorsichtig anfassen!");
+static const u8 gBerryDescriptionPart1_Rawst[] = _("Wenn die Blätter lang und wellig sind,");
+static const u8 gBerryDescriptionPart2_Rawst[] = _("wird die BEERE sehr bitter.");
+static const u8 gBerryDescriptionPart1_Aspear[] = _("Diese harte BEERE ist sehr");
+static const u8 gBerryDescriptionPart2_Aspear[] = _("saftig und sauer im Geschmack!");
+static const u8 gBerryDescriptionPart1_Leppa[] = _("Wächst langsamer als AMRENA und");
+static const u8 gBerryDescriptionPart2_Leppa[] = _("andere. Je kleiner, desto delikater.");
+static const u8 gBerryDescriptionPart1_Oran[] = _("Eine BEERE unterschiedlichsten Ge-");
+static const u8 gBerryDescriptionPart2_Oran[] = _("schmacks. Wächst an einem halben Tag.");
+static const u8 gBerryDescriptionPart1_Persim[] = _("Liebt Sonnenlicht. Die BEERE");
+static const u8 gBerryDescriptionPart2_Persim[] = _("wächst im Sonnenlicht sehr schnell.");
+static const u8 gBerryDescriptionPart1_Lum[] = _("Langsamer Wuchs. Wird sie liebevoll ge-");
+static const u8 gBerryDescriptionPart2_Lum[] = _("pflegt, kann sie 2 BEEREN tragen.");
+static const u8 gBerryDescriptionPart1_Sitrus[] = _("Eng verwandt mit SINEL. Diese große");
+static const u8 gBerryDescriptionPart2_Sitrus[] = _("BEERE ist von rundem Geschmack.");
+static const u8 gBerryDescriptionPart1_Figy[] = _("Die BEERE sieht angekaut aus. Sie ist");
+static const u8 gBerryDescriptionPart2_Figy[] = _("voller scharfer Substanzen.");
+static const u8 gBerryDescriptionPart1_Wiki[] = _("Die BEERE wächst unförmig,");
+static const u8 gBerryDescriptionPart2_Wiki[] = _("damit PKMN sie besser greifen können.");
+static const u8 gBerryDescriptionPart1_Mago[] = _("Die BEERE hat Ausbeulungen. Je mehr");
+static const u8 gBerryDescriptionPart2_Mago[] = _("Beulen, desto schmackhafter ist sie.");
+static const u8 gBerryDescriptionPart1_Aguav[] = _("Die Blume ist zart. Sie ist fähig,");
+static const u8 gBerryDescriptionPart2_Aguav[] = _("ohne Licht wachsen zu können.");
+static const u8 gBerryDescriptionPart1_Iapapa[] = _("Die BEERE ist groß und sauer.");
+static const u8 gBerryDescriptionPart2_Iapapa[] = _("Sie braucht einen Tag zum Wachsen.");
+static const u8 gBerryDescriptionPart1_Razz[] = _("Diese rote BEERE schmeckt etwas");
+static const u8 gBerryDescriptionPart2_Razz[] = _("scharf. Sie wächst in nur 4 Stunden.");
+static const u8 gBerryDescriptionPart1_Bluk[] = _("Die BEERE ist außen blau, verfärbt");
+static const u8 gBerryDescriptionPart2_Bluk[] = _("sich im Mund aber schwarz.");
+static const u8 gBerryDescriptionPart1_Nanab[] = _("Diese BEERE war die 7., die auf der");
+static const u8 gBerryDescriptionPart2_Nanab[] = _("Welt entdeckt wurde. Sie ist süß.");
+static const u8 gBerryDescriptionPart1_Wepear[] = _("Die Blume ist klein und weiß. Angenehm");
+static const u8 gBerryDescriptionPart2_Wepear[] = _("bitter und sauer zugleich.");
+static const u8 gBerryDescriptionPart1_Pinap[] = _("Wind und Kälte verträgt sie nicht.");
+static const u8 gBerryDescriptionPart2_Pinap[] = _("Fruchtfleisch: Scharf. Haut: Sauer.");
+static const u8 gBerryDescriptionPart1_Pomeg[] = _("Egal wie viel Wasser sie bekommt, sie");
+static const u8 gBerryDescriptionPart2_Pomeg[] = _("trägt immer bis zu 6 BEEREN.");
+static const u8 gBerryDescriptionPart1_Kelpsy[] = _("Eine Seltenheit. Geformt wie eine");
+static const u8 gBerryDescriptionPart2_Kelpsy[] = _("Wurzel. Hat eine große Blume.");
+static const u8 gBerryDescriptionPart1_Qualot[] = _("Liebt das Wasser. Wächst besonders");
+static const u8 gBerryDescriptionPart2_Qualot[] = _("gut in regenreichen Gegenden.");
+static const u8 gBerryDescriptionPart1_Hondew[] = _("Eine wertvolle und seltene BEERE.");
+static const u8 gBerryDescriptionPart2_Hondew[] = _("Sie ist sehr schmackhaft.");
+static const u8 gBerryDescriptionPart1_Grepa[] = _("Die BEERE ist zart und von runder");
+static const u8 gBerryDescriptionPart2_Grepa[] = _("Form. Aber sie ist unglaublich sauer!");
+static const u8 gBerryDescriptionPart1_Tamato[] = _("Die Schärfe der BEERE verbrennt die");
+static const u8 gBerryDescriptionPart2_Tamato[] = _("Lippen. Sie braucht Zeit zum Wachsen.");
+static const u8 gBerryDescriptionPart1_Cornn[] = _("Eine BEERE aus alten Zeiten. Wächst");
+static const u8 gBerryDescriptionPart2_Cornn[] = _("nur, wenn in großen Mengen gepflanzt.");
+static const u8 gBerryDescriptionPart1_Magost[] = _("Eine BEERE, die für ihren feinen, aus-");
+static const u8 gBerryDescriptionPart2_Magost[] = _("gewogenen Geschmack bekannt ist.");
+static const u8 gBerryDescriptionPart1_Rabuta[] = _("Eine Seltenheit, die über und über mit");
+static const u8 gBerryDescriptionPart2_Rabuta[] = _("Haaren bewachsen ist. Sehr bitter!");
+static const u8 gBerryDescriptionPart1_Nomel[] = _("Sehr sauer. Ein Biss betäubt die");
+static const u8 gBerryDescriptionPart2_Nomel[] = _("Geschmacksnerven für 3 Tage!");
+static const u8 gBerryDescriptionPart1_Spelon[] = _("Die leuchtend rote BEERE ist sehr");
+static const u8 gBerryDescriptionPart2_Spelon[] = _("scharf. Gibt scharfe Substanzen ab!");
+static const u8 gBerryDescriptionPart1_Pamtre[] = _("Wird vom Meer angespült. Sie wächst");
+static const u8 gBerryDescriptionPart2_Pamtre[] = _("an einem anderen Ort.");
+static const u8 gBerryDescriptionPart1_Watmel[] = _("Eine große BEERE, 25 cm groß.");
+static const u8 gBerryDescriptionPart2_Watmel[] = _("Außergewöhnlich süß.");
+static const u8 gBerryDescriptionPart1_Durin[] = _("Bitter schon ihr Anblick! Sie ist so");
+static const u8 gBerryDescriptionPart2_Durin[] = _("bitter, dass niemand sie pur isst.");
+static const u8 gBerryDescriptionPart1_Belue[] = _("Sie glänzt, sieht zart aus, ist extrem");
+static const u8 gBerryDescriptionPart2_Belue[] = _("sauer und braucht Zeit zum Wachsen.");
+static const u8 gBerryDescriptionPart1_Liechi[] = _("Eine geheimnisvolle BEERE. Man sagt,");
+static const u8 gBerryDescriptionPart2_Liechi[] = _("sie enthalte die Kraft des Meeres.");
+static const u8 gBerryDescriptionPart1_Ganlon[] = _("Eine geheimnisvolle BEERE. Man sagt,");
+static const u8 gBerryDescriptionPart2_Ganlon[] = _("sie enthalte die Kraft des Landes.");
+static const u8 gBerryDescriptionPart1_Salac[] = _("Eine geheimnisvolle BEERE. Man sagt,");
+static const u8 gBerryDescriptionPart2_Salac[] = _("sie enthalte die Kraft des Himmels.");
+static const u8 gBerryDescriptionPart1_Petaya[] = _("Eine geheimnisvolle BEERE. Man sagt,");
+static const u8 gBerryDescriptionPart2_Petaya[] = _("sie enthalte die Kraft allen Lebens.");
+static const u8 gBerryDescriptionPart1_Apicot[] = _("Eine rätselhafte BEERE. Man kann");
+static const u8 gBerryDescriptionPart2_Apicot[] = _("nicht sagen, wie und was sie ist.");
+static const u8 gBerryDescriptionPart1_Lansat[] = _("Eine legendäre BEERE. Sie zu");
+static const u8 gBerryDescriptionPart2_Lansat[] = _("tragen bringt Freude.");
+static const u8 gBerryDescriptionPart1_Starf[] = _("So stark, dass sie an den Rand der");
+static const u8 gBerryDescriptionPart2_Starf[] = _("Welt verbannt wurde. Ein Märchen?");
+static const u8 gBerryDescriptionPart1_Enigma[] = _("Eine enigmatische BEERE. Sie scheint");
+static const u8 gBerryDescriptionPart2_Enigma[] = _("die Macht der Sterne zu besitzen.");
#endif
const struct Berry gBerries[] =
@@ -972,15 +978,29 @@ const struct Berry gBerries[] =
},
};
-const struct BerryTree gBlankBerryTree = {0};
+static const struct BerryTree gBlankBerryTree = {0};
extern u8 S_BerryTree[];
-extern u16 gScriptLastTalked;
+extern u16 gSpecialVar_LastTalked;
extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
extern u16 gSpecialVar_0x8006;
+/*
+ An enigma berry is a type of berry which functions
+ as though it is a custom berry. Because it behaves
+ like its a custom berry, it doesn't hold an identity
+ represented in its icons or descriptions, leaving its
+ information to be decided by the e-reader cards
+ which were intended to deliver these custom
+ berries.
+*/
+
+static u8 CalcBerryYield(struct BerryTree *tree);
+static u16 GetStageDurationByBerryType(u8 berry);
+
// unused
+// this could be static, but making it so causes a compile-time warning.
void ClearEnigmaBerries(void)
{
CpuFill16(0, &gSaveBlock1.enigmaBerry, sizeof(gSaveBlock1.enigmaBerry));
@@ -988,17 +1008,21 @@ void ClearEnigmaBerries(void)
void SetEnigmaBerry(u8 *src)
{
+ // initialize the enigma berry by copying the data from the script.
u32 i;
u8 *dest = (u8*)&gSaveBlock1.enigmaBerry;
for (i = 0; i < sizeof(gSaveBlock1.enigmaBerry); i++)
dest[i] = src[i];
+ // at this point, the description pointer is not yet initialized. we need to initialize it since
+ // we dont know where in memory this is going to be. set the berry desc pointers to the
+ // EnigmaBerry struct's description arrays since these are where the descriptions are stored.
gSaveBlock1.enigmaBerry.berry.description1 = gSaveBlock1.enigmaBerry.description1;
gSaveBlock1.enigmaBerry.berry.description2 = gSaveBlock1.enigmaBerry.description2;
}
-u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry)
+static u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry)
{
const u8 *description1;
const u8 *description2;
@@ -1006,10 +1030,13 @@ u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry)
u32 checksum;
u8 *dest;
+ // the description pointers could be pointing to anywhere in memory. we do not want these
+ // pointers to factor into the checksum as it will produce a different result every time: so
+ // back the pointers up and set them to null so the checksum is safe to calculate.
description1 = gSaveBlock1.enigmaBerry.berry.description1;
description2 = gSaveBlock1.enigmaBerry.berry.description2;
- gSaveBlock1.enigmaBerry.berry.description1 = 0;
- gSaveBlock1.enigmaBerry.berry.description2 = 0;
+ gSaveBlock1.enigmaBerry.berry.description1 = NULL;
+ gSaveBlock1.enigmaBerry.berry.description2 = NULL;
dest = (u8*)enigmaBerry;
checksum = 0;
@@ -1018,17 +1045,20 @@ u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry)
checksum += dest[i];
}
+ // the checksum is calculated: the descriptions are safe to restore now.
gSaveBlock1.enigmaBerry.berry.description1 = description1;
gSaveBlock1.enigmaBerry.berry.description2 = description2;
return checksum;
}
+// 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.
bool32 IsEnigmaBerryValid(void)
{
- if (!gSaveBlock1.enigmaBerry.berry.stageDuration)
+ if (gSaveBlock1.enigmaBerry.berry.stageDuration == 0)
return FALSE;
- if (!gSaveBlock1.enigmaBerry.berry.maxYield)
+ if (gSaveBlock1.enigmaBerry.berry.maxYield == 0)
return FALSE;
if (GetEnigmaBerryChecksum(&gSaveBlock1.enigmaBerry) != gSaveBlock1.enigmaBerry.checksum)
return FALSE;
@@ -1037,37 +1067,51 @@ bool32 IsEnigmaBerryValid(void)
const struct Berry *GetBerryInfo(u8 berry)
{
- if (berry == 0x2B && IsEnigmaBerryValid())
+ // when getting the pointer to the berry info, enigma berries are handled differently. if your
+ // berry is an Enigma Berry and its checksum is valid, fetch the pointer to its information in
+ // the save block.
+ if (berry == GETBERRYID(ITEM_ENIGMA_BERRY) && IsEnigmaBerryValid())
return &gSaveBlock1.enigmaBerry.berry;
else
{
- if (berry == 0 || berry > 0x2B)
- berry = 1;
+ // invalid berries will be flattened into a cheri berry. Interestingly, if your berry was
+ // an enigma berry whos checksum failed, the game will use the Enigma Berry information
+ // for this: meaning if you see the Enigma Berry information, its actually because the
+ // checksum failed.
+ if (berry == BERRY_NONE || berry > GETBERRYID(LAST_BERRY))
+ berry = GETBERRYID(FIRST_BERRY);
return &gBerries[berry - 1];
}
}
-struct BerryTree *GetBerryTreeInfo(u8 id)
+// the save file can handle up to a number of 128 berry trees as indicated by its definition
+// in global.h. Interestingly, this function does not check that limit of 128.
+static struct BerryTree *GetBerryTreeInfo(u8 id)
{
return &gSaveBlock1.berryTrees[id];
}
+// this was called because the berry script was successful: meaning the player chose to
+// water the tree. We need to check for the current tree stage and set the appropriate
+// water flag to true.
bool32 FieldObjectInteractionWaterBerryTree(void)
{
+ // GetBerryTreeInfo does not sanitize the tree retrieved, but there are no known
+ // instances where this can cause problems.
struct BerryTree *tree = GetBerryTreeInfo(FieldObjectGetBerryTreeId(gSelectedMapObject));
switch (tree->stage)
{
- case 1:
+ case BERRY_STAGE_PLANTED:
tree->watered1 = TRUE;
break;
- case 2:
+ case BERRY_STAGE_SPROUTED:
tree->watered2 = TRUE;
break;
- case 3:
+ case BERRY_STAGE_TALLER:
tree->watered3 = TRUE;
break;
- case 4:
+ case BERRY_STAGE_FLOWERING:
tree->watered4 = TRUE;
break;
default:
@@ -1076,10 +1120,10 @@ bool32 FieldObjectInteractionWaterBerryTree(void)
return TRUE;
}
-bool8 IsPlayerFacingPlantedBerryTree(void)
+bool8 IsPlayerFacingUnplantedSoil(void)
{
- if (GetFieldObjectScriptPointerForComparison() == S_BerryTree
- && GetStageByBerryTreeId(FieldObjectGetBerryTreeId(gSelectedMapObject)) == 0)
+ if (GetFieldObjectScriptPointerPlayerFacing() == S_BerryTree
+ && GetStageByBerryTreeId(FieldObjectGetBerryTreeId(gSelectedMapObject)) == BERRY_STAGE_NO_BERRY)
return TRUE;
else
return FALSE;
@@ -1087,7 +1131,7 @@ bool8 IsPlayerFacingPlantedBerryTree(void)
bool8 TryToWaterBerryTree(void)
{
- if (GetFieldObjectScriptPointerForComparison() != S_BerryTree)
+ if (GetFieldObjectScriptPointerPlayerFacing() != S_BerryTree)
return FALSE;
else
return FieldObjectInteractionWaterBerryTree();
@@ -1099,70 +1143,84 @@ void ClearBerryTrees(void)
struct SaveBlock1 *saveBlock1 = &gSaveBlock1;
struct BerryTree berryTree = gBlankBerryTree;
- for (i = 0; i < (u8)ARRAY_COUNT(saveBlock1->berryTrees); i++) // casting to u8 fixes a mismatched signed compare. what
+ for (i = 0; i < MAX_BERRY_TREES; i++)
saveBlock1->berryTrees[i] = berryTree;
}
-bool32 BerryTreeGrow(struct BerryTree *tree)
+// when the player does not interact with the tree for a period of time, this is called
+// to advance the grow state.
+static bool32 BerryTreeGrow(struct BerryTree *tree)
{
if (tree->growthSparkle)
return FALSE;
switch (tree->stage)
{
- case 0:
+ case BERRY_STAGE_NO_BERRY:
return FALSE;
- case 4:
+ case BERRY_STAGE_FLOWERING:
tree->berryYield = CalcBerryYield(tree);
- case 1:
- case 2:
- case 3:
+ case BERRY_STAGE_PLANTED:
+ case BERRY_STAGE_SPROUTED:
+ case BERRY_STAGE_TALLER:
tree->stage++;
break;
- case 5:
+ case BERRY_STAGE_BERRIES:
tree->watered1 = 0;
tree->watered2 = 0;
tree->watered3 = 0;
tree->watered4 = 0;
tree->berryYield = 0;
- tree->stage = 2;
- if (++tree->regrowthCount == 10)
+ tree->stage = BERRY_STAGE_SPROUTED;
+ if (++tree->regrowthCount == BERRY_REGROW_LIMIT)
*tree = gBlankBerryTree;
break;
}
return TRUE;
}
-void BerryTreeTimeUpdate(s32 minutes)
+void BerryTreeTimeUpdate(s32 minutesPassed)
{
int i;
struct BerryTree *tree;
- for (i = 0; i < (u8)ARRAY_COUNT(gSaveBlock1.berryTrees); i++)
+ for (i = 0; i < MAX_BERRY_TREES; i++)
{
tree = &gSaveBlock1.berryTrees[i];
- if (tree->berry && tree->stage && !tree->growthSparkle)
+ if (tree->berry != BERRY_NONE && tree->stage != BERRY_STAGE_NO_BERRY && tree->growthSparkle == FALSE)
{
- if (minutes >= GetStageDurationByBerryType(tree->berry) * 71)
+ // the player has waited too long to water the berry. Reset the tree. This is because
+ // if the berry state is not in the unwatered state, the tree will grow anyway despite this
+ // check, which means BerryTreeGrow will handle the regrow process for this, removing the
+ // need for this check. This only handles the unwatered soil state.
+ if (minutesPassed >= GetStageDurationByBerryType(tree->berry) * 71)
{
*tree = gBlankBerryTree;
}
else
{
- s32 time = minutes;
+ // because time is altered below, perhaps they thought it was unsafe to change it, even
+ // though that is not how passed arguments behave.
+ s32 time = minutesPassed;
while (time != 0)
{
if (tree->minutesUntilNextStage > time)
{
- tree->minutesUntilNextStage -= time;
+ // its been X minutes since the last berry update, so update
+ // minutesUntilNextStage appropriately to match the time offset
+ // that has passed since the update.
+ tree->minutesUntilNextStage -= time;
break;
}
+ // perform the subtraction the other way around to get the number of minutes since
+ // the inferred stage update that occured, since minutesUntilNextStage is <= time.
+ // we may need this variable to simulate multiple berry cycles in the while loop.
time -= tree->minutesUntilNextStage;
- tree->minutesUntilNextStage = GetStageDurationByBerryType(tree->berry);
- if (!BerryTreeGrow(tree))
+ tree->minutesUntilNextStage = GetStageDurationByBerryType(tree->berry); // since the tree was inferred to update, set the new minutesUntilNextStage.
+ if (BerryTreeGrow(tree) == FALSE)
break;
- if (tree->stage == 5)
+ if (tree->stage == BERRY_STAGE_BERRIES)
tree->minutesUntilNextStage *= 4;
}
}
@@ -1170,7 +1228,7 @@ void BerryTreeTimeUpdate(s32 minutes)
}
}
-void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle)
+void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 noSparkle)
{
struct BerryTree *tree = GetBerryTreeInfo(id);
@@ -1178,12 +1236,12 @@ void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle)
tree->berry = berry;
tree->minutesUntilNextStage = GetStageDurationByBerryType(berry);
tree->stage = stage;
- if (stage == 5)
+ if (stage == BERRY_STAGE_BERRIES)
{
tree->berryYield = CalcBerryYield(tree);
tree->minutesUntilNextStage *= 4;
}
- if (!sparkle)
+ if (noSparkle == FALSE)
{
tree->growthSparkle = TRUE;
}
@@ -1209,19 +1267,19 @@ u8 ItemIdToBerryType(u16 item)
u16 berry = item - FIRST_BERRY;
if (berry > LAST_BERRY - FIRST_BERRY)
- return 1;
+ return GETBERRYID(FIRST_BERRY);
else
- return item - FIRST_BERRY + 1;
+ return GETBERRYID(item);
}
-u16 BerryTypeToItemId(u16 berry)
+static u16 BerryTypeToItemId(u16 berry)
{
u16 item = berry - 1;
if (item > LAST_BERRY - FIRST_BERRY)
return FIRST_BERRY;
else
- return berry + FIRST_BERRY - 1;
+ return GETITEMID(berry);
}
void GetBerryNameByBerryType(u8 berry, u8 *string)
@@ -1232,10 +1290,10 @@ void GetBerryNameByBerryType(u8 berry, u8 *string)
void ResetBerryTreeSparkleFlag(u8 id)
{
- GetBerryTreeInfo(id)->growthSparkle = 0;
+ GetBerryTreeInfo(id)->growthSparkle = FALSE;
}
-u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree)
+static u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree)
{
u8 count = 0;
@@ -1250,18 +1308,20 @@ u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree)
return count;
}
-u8 GetNumStagesWateredByBerryTreeId(u8 id)
+static u8 GetNumStagesWateredByBerryTreeId(u8 id)
{
return BerryTreeGetNumStagesWatered(GetBerryTreeInfo(id));
}
-u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water)
+static u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water)
{
u32 randMin;
u32 randMax;
u32 rand;
u32 extraYield;
+ // depending on if the player gave the tree plenty of water, berry yield will be affected proportionally.
+
if (water == 0)
return min;
else
@@ -1270,7 +1330,7 @@ u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water)
randMax = (max - min) * (water);
rand = randMin + Random() % (randMax - randMin + 1);
- if ((rand & 3) > 1)
+ if ((rand % 4) > 1)
extraYield = rand / 4 + 1;
else
extraYield = rand / 4;
@@ -1278,7 +1338,7 @@ u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water)
}
}
-u8 CalcBerryYield(struct BerryTree *tree)
+static u8 CalcBerryYield(struct BerryTree *tree)
{
const struct Berry *berry = GetBerryInfo(tree->berry);
u8 min = berry->minYield;
@@ -1287,12 +1347,12 @@ u8 CalcBerryYield(struct BerryTree *tree)
return CalcBerryYieldInternal(max, min, BerryTreeGetNumStagesWatered(tree));
}
-u8 GetBerryCountByBerryTreeId(u8 id)
+static u8 GetBerryCountByBerryTreeId(u8 id)
{
return gSaveBlock1.berryTrees[id].berryYield;
}
-u16 GetStageDurationByBerryType(u8 berry)
+static u16 GetStageDurationByBerryType(u8 berry)
{
return GetBerryInfo(berry)->stageDuration * 60;
}
@@ -1301,18 +1361,23 @@ void FieldObjectInteractionGetBerryTreeData(void)
{
u8 id;
u8 berry;
- u8 unk;
+ u8 localId;
u8 group;
u8 num;
id = FieldObjectGetBerryTreeId(gSelectedMapObject);
berry = GetBerryTypeByBerryTreeId(id);
ResetBerryTreeSparkleFlag(id);
- unk = gScriptLastTalked;
+ localId = gSpecialVar_LastTalked;
num = gSaveBlock1.location.mapNum;
group = gSaveBlock1.location.mapGroup;
- if (sub_8060234(unk, num, group))
- gSpecialVar_0x8004 = 0xFF;
+ if (IsBerryTreeSparkling(localId, num, group))
+ {
+ // we cannot allow the player to grow/interact with the tree while the tree
+ // is undergoing the sparkling effect, so set the special var to the sparkling
+ // state and let the event script process the flag.
+ gSpecialVar_0x8004 = BERRY_STAGE_SPARKLING;
+ }
else
gSpecialVar_0x8004 = GetStageByBerryTreeId(id);
gSpecialVar_0x8005 = GetNumStagesWateredByBerryTreeId(id);
@@ -1320,14 +1385,14 @@ void FieldObjectInteractionGetBerryTreeData(void)
GetBerryNameByBerryType(berry, gStringVar1);
}
-void sub_80B4EE4(void)
+void Berry_FadeAndGoToBerryBagMenu(void)
{
SetMainCallback2(sub_80A68CC);
}
void FieldObjectInteractionPlantBerryTree(void)
{
- u8 berry = ItemIdToBerryType(gScriptItemId);
+ u8 berry = ItemIdToBerryType(gSpecialVar_ItemId);
PlantBerryTree(FieldObjectGetBerryTreeId(gSelectedMapObject), berry, 1, TRUE);
FieldObjectInteractionGetBerryTreeData();
@@ -1344,14 +1409,16 @@ void FieldObjectInteractionPickBerryTree(void)
void FieldObjectInteractionRemoveBerryTree(void)
{
RemoveBerryTree(FieldObjectGetBerryTreeId(gSelectedMapObject));
- sub_8060288(gScriptLastTalked, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
+ sub_8060288(gSpecialVar_LastTalked, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
}
-u8 PlayerHasBerries(void)
+bool8 PlayerHasBerries(void)
{
return IsBagPocketNonEmpty(BAG_BERRIES);
}
+// whenever the player is not within view of the berry tree during its sparkle state, the
+// sparkle state will be reset.
void ResetBerryTreeSparkleFlags(void)
{
s16 cam_left;
@@ -1369,7 +1436,7 @@ void ResetBerryTreeSparkleFlags(void)
bottom = top + 8;
for (i = 0; i < (u8)ARRAY_COUNT(gSaveBlock1.mapObjects); i++)
{
- if (gMapObjects[i].active && gMapObjects[i].animPattern == 12)
+ if (gMapObjects[i].active && gMapObjects[i].animPattern == 12) // is the object an active berry tree?
{
cam_left = gMapObjects[i].coords2.x;
cam_top = gMapObjects[i].coords2.y;
diff --git a/src/field/berry_tag_screen.c b/src/field/berry_tag_screen.c
index 1413a02ca..2abbac287 100644
--- a/src/field/berry_tag_screen.c
+++ b/src/field/berry_tag_screen.c
@@ -4,14 +4,14 @@
#include "decompress.h"
#include "field_map_obj.h"
#include "item_menu.h"
-#include "items.h"
+#include "constants/items.h"
#include "item_use.h"
#include "main.h"
#include "menu.h"
#include "menu_helpers.h"
#include "palette.h"
#include "overworld.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
@@ -28,7 +28,7 @@ struct Struct2000000
/*0x1FFFF*/ u8 var_1FFFF;
};
-extern struct Struct2000000 unk_2000000;
+extern struct Struct2000000 gSharedMem;
extern u16 gUnknown_030041B4;
static EWRAM_DATA u8 gUnknown_0203932C = 0;
@@ -119,13 +119,13 @@ static bool8 sub_8146058(void)
case 5:
if (!MultistepInitMenuWindowContinue())
break;
- unk_2000000.var_1FFFF = 0;
+ gSharedMem.var_1FFFF = 0;
gMain.state += 1;
break;
case 6:
if (!sub_81462B8())
break;
- unk_2000000.var_1FFFF = 0;
+ gSharedMem.var_1FFFF = 0;
gMain.state += 1;
break;
case 7:
@@ -133,12 +133,12 @@ static bool8 sub_8146058(void)
gMain.state += 1;
break;
case 8:
- berry = gScriptItemId + OFFSET_7B;
+ berry = gSpecialVar_ItemId + OFFSET_7B;
gUnknown_0203932C = CreateBerrySprite(berry, 56, 64);
gMain.state += 1;
break;
case 9:
- sub_8146600(gScriptItemId + OFFSET_7B);
+ sub_8146600(gSpecialVar_ItemId + OFFSET_7B);
gMain.state += 1;
break;
case 10:
@@ -191,19 +191,19 @@ bool8 sub_81462B8(void)
u16 i;
void *addr;
- switch (unk_2000000.var_1FFFF)
+ switch (gSharedMem.var_1FFFF)
{
case 0:
LZDecompressVram(gBerryCheck_Gfx, (void *)VRAM);
- unk_2000000.var_1FFFF += 1;
+ gSharedMem.var_1FFFF += 1;
break;
case 1:
LZDecompressVram(gUnknown_08E788E4, (void *)VRAM + 0x2800);
- unk_2000000.var_1FFFF += 1;
+ gSharedMem.var_1FFFF += 1;
break;
case 2:
LZDecompressVram(gUnknown_08E78A84, (void *)VRAM + 0x3000);
- unk_2000000.var_1FFFF += 1;
+ gSharedMem.var_1FFFF += 1;
break;
case 3:
for (i = 0; i < 0x400; i++)
@@ -215,19 +215,19 @@ bool8 sub_81462B8(void)
}
addr = (void *)(VRAM + 0x3800);
DmaCopy16(3, gBGTilemapBuffers[2], addr, 0x800);
- unk_2000000.var_1FFFF += 1;
+ gSharedMem.var_1FFFF += 1;
break;
case 4:
LoadCompressedPalette(gBerryCheck_Pal, 0, 96 * 2);
- unk_2000000.var_1FFFF += 1;
+ gSharedMem.var_1FFFF += 1;
break;
case 5:
LoadCompressedObjectPic(&gUnknown_083C1F74);
- unk_2000000.var_1FFFF += 1;
+ gSharedMem.var_1FFFF += 1;
break;
case 6:
LoadCompressedObjectPalette(&gUnknown_083C1F7C);
- unk_2000000.var_1FFFF = 0;
+ gSharedMem.var_1FFFF = 0;
return TRUE;
}
@@ -277,9 +277,9 @@ static void sub_81464E4(void)
u8 buffer[16];
#endif
- berryInfo = GetBerryInfo(gScriptItemId + OFFSET_7B + 1);
+ berryInfo = GetBerryInfo(gSpecialVar_ItemId + OFFSET_7B + 1);
- ConvertIntToDecimalStringN(gStringVar1, gScriptItemId - FIRST_BERRY + 1, STR_CONV_MODE_LEADING_ZEROS, 2);
+ ConvertIntToDecimalStringN(gStringVar1, gSpecialVar_ItemId - FIRST_BERRY + 1, STR_CONV_MODE_LEADING_ZEROS, 2);
MenuPrint(gStringVar1, 12, 4);
#if ENGLISH
@@ -437,7 +437,7 @@ static void sub_8146810(s8 berry)
gBagPocketScrollStates[berryPocket].cursorPos += berry;
}
}
- gScriptItemId = gCurrentBagPocketItemSlots[gBagPocketScrollStates[berryPocket].scrollTop + gBagPocketScrollStates[berryPocket].cursorPos].itemId;
+ gSpecialVar_ItemId = gCurrentBagPocketItemSlots[gBagPocketScrollStates[berryPocket].scrollTop + gBagPocketScrollStates[berryPocket].cursorPos].itemId;
DestroySprite(&gSprites[gUnknown_0203932C]);
sub_81466A0();
sub_80A7DD4();
@@ -449,7 +449,7 @@ static void sub_81468BC(void)
sub_81464E4();
// center of berry sprite
- gUnknown_0203932C = CreateBerrySprite(gScriptItemId + OFFSET_7B, 56, 64);
+ gUnknown_0203932C = CreateBerrySprite(gSpecialVar_ItemId + OFFSET_7B, 56, 64);
- sub_8146600(gScriptItemId + OFFSET_7B);
+ sub_8146600(gSpecialVar_ItemId + OFFSET_7B);
}
diff --git a/src/field/bike.c b/src/field/bike.c
index 8df901b40..8db01b4b4 100644
--- a/src/field/bike.c
+++ b/src/field/bike.c
@@ -3,23 +3,23 @@
#include "field_map_obj.h"
#include "field_player_avatar.h"
#include "fieldmap.h"
-#include "flags.h"
+#include "constants/flags.h"
#include "global.fieldmap.h"
#include "metatile_behavior.h"
#include "overworld.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
-extern u8 gUnknown_02039250;
-extern u8 gUnknown_02039251;
-extern u8 gUnknown_0202E854;
+extern bool8 gBikeCyclingChallenge;
+extern u8 gBikeCollisions;
+extern u8 gUnusedBikeCameraAheadPanback;
static void MovePlayerOnMachBike(u8, u16, u16);
static u8 GetMachBikeTransition(u8 *);
static void MachBikeTransition_FaceDirection(u8);
-static void MachBikeTransition_80E517C(u8);
-static void MachBikeTransition_80E51C4(u8);
-static void MachBikeTransition_80E5270(u8);
+static void MachBikeTransition_TurnDirection(u8);
+static void MachBikeTransition_TrySpeedUp(u8);
+static void MachBikeTransition_TrySlowDown(u8);
static void MovePlayerOnAcroBike(u8, u16, u16);
static u8 CheckMovementInputAcroBike(u8 *, u16, u16);
static u8 AcroBikeHandleInputNormal(u8 *, u16, u16);
@@ -27,64 +27,74 @@ static u8 AcroBikeHandleInputTurning(u8 *, u16, u16);
static u8 AcroBikeHandleInputWheelieStanding(u8 *, u16, u16);
static u8 AcroBikeHandleInputBunnyHop(u8 *, u16, u16);
static u8 AcroBikeHandleInputWheelieMoving(u8 *, u16, u16);
-static u8 AcroBikeHandleInputState5(u8 *, u16, u16);
-static u8 AcroBikeHandleInputState6(u8 *, u16, u16);
+static u8 AcroBikeHandleInputSidewaysJump(u8 *, u16, u16);
+static u8 AcroBikeHandleInputTurnJump(u8 *, u16, u16);
static void AcroBikeTransition_FaceDirection(u8);
-static void AcroBikeTransition_80E5708(u8);
-static void AcroBikeTransition_80E5744(u8);
+static void AcroBikeTransition_TurnDirection(u8);
+static void AcroBikeTransition_Moving(u8);
static void AcroBikeTransition_NormalToWheelie(u8);
-static void AcroBikeTransition_80E57F8(u8);
-static void AcroBikeTransition_80E5834(u8);
-static void AcroBikeTransition_80E5870(u8);
-static void AcroBikeTransition_80E58AC(u8);
-static void AcroBikeTransition_80E5920(u8);
-static void AcroBikeTransition_80E5990(u8);
-static void AcroBikeTransition_80E59A0(u8);
-static void AcroBikeTransition_80E5A30(u8);
-static void AcroBikeTransition_80E5AC0(u8);
-static void sub_80E5B60(u16, u16);
-static u8 sub_80E5C2C(void);
-static void sub_80E5C7C(u8);
-static void sub_80E5CB8(u8);
-static u8 sub_80E5CF4(u16);
+static void AcroBikeTransition_WheelieToNormal(u8);
+static void AcroBikeTransition_WheelieIdle(u8);
+static void AcroBikeTransition_WheelieHoppingStanding(u8);
+static void AcroBikeTransition_WheelieHoppingMoving(u8);
+static void AcroBikeTransition_SideJump(u8);
+static void AcroBikeTransition_TurnJump(u8);
+static void AcroBikeTransition_WheelieMoving(u8);
+static void AcroBikeTransition_WheelieRisingMoving(u8);
+static void AcroBikeTransition_WheelieLoweringMoving(u8);
+static void AcroBike_TryHistoryUpdate(u16, u16);
+static u8 AcroBike_GetJumpDirection(void);
+static void Bike_UpdateDirTimerHistory(u8);
+static void Bike_UpdateABStartSelectHistory(u8);
+static u8 Bike_DPadToDirection(u16);
static u8 get_some_collision(u8);
-static u8 sub_80E5DA0(struct MapObject *, s16, s16, u8, u8);
+static u8 Bike_CheckCollisionTryAdvanceCollisionCount(struct MapObject *, s16, s16, u8, u8);
static bool8 IsRunningDisallowedByMetatile(u8);
-static void sub_80E5E4C();
+static void Bike_TryAdvanceCyclingRoadCollisions();
static u8 CanBikeFaceDirOnMetatile(u8, u8);
-static bool8 sub_80E5EC0(u8, u8);
-static void sub_80E6024(void);
+static bool8 WillPlayerCollideWithCollision(u8, u8);
+static void Bike_SetBikeStill(void);
+
+/*
+ A bike transition is a type of callback for the bike that actually
+ modifies the bicycle's direction or momentum or otherwise movement.
+ Alternatively, a bike may also have input handlers which process the
+ bike transition to call: the acro bike has input handlers while the mach
+ bike does not. This is because the Acro needs to know the button inputs
+ for its complex tricks and actions.
+*/
static void (*const sMachBikeTransitions[])(u8) =
{
- MachBikeTransition_FaceDirection,
- MachBikeTransition_80E517C,
- MachBikeTransition_80E51C4,
- MachBikeTransition_80E5270,
+ MachBikeTransition_FaceDirection, // Face vs Turn: Face has no anim while Turn does. Turn checks for collision because if you turn right as opposed to face right, if there is a wall there, turn will make a bonk sound effect while face will not.
+ MachBikeTransition_TurnDirection,
+ MachBikeTransition_TrySpeedUp,
+ MachBikeTransition_TrySlowDown,
};
-static void (*const gUnknown_083DB5A4[])(u8) =
+// bikeFrameCounter is input which is represented by gMachBikeSpeeds in order: 0 is normal speed (1 speed), 1 is fast speed (2 speed), 2 is fastest speed (4 speed)
+static void (*const sMachBikeSpeedCallbacks[])(u8) =
{
- PlayerGoSpeed0,
- sub_80593C4,
- sub_80593F4,
+ PlayerGoSpeed1, // normal speed (1 speed)
+ PlayerGoSpeed2, // fast speed (2 speed)
+ PlayerGoSpeed4, // fastest speed (4 speed)
};
static void (*const sAcroBikeTransitions[])(u8) =
{
AcroBikeTransition_FaceDirection,
- AcroBikeTransition_80E5708,
- AcroBikeTransition_80E5744,
+ AcroBikeTransition_TurnDirection,
+ AcroBikeTransition_Moving,
AcroBikeTransition_NormalToWheelie,
- AcroBikeTransition_80E57F8,
- AcroBikeTransition_80E5834,
- AcroBikeTransition_80E5870,
- AcroBikeTransition_80E58AC,
- AcroBikeTransition_80E5920,
- AcroBikeTransition_80E5990,
- AcroBikeTransition_80E59A0,
- AcroBikeTransition_80E5A30,
- AcroBikeTransition_80E5AC0,
+ AcroBikeTransition_WheelieToNormal,
+ AcroBikeTransition_WheelieIdle,
+ AcroBikeTransition_WheelieHoppingStanding,
+ AcroBikeTransition_WheelieHoppingMoving,
+ AcroBikeTransition_SideJump,
+ AcroBikeTransition_TurnJump,
+ AcroBikeTransition_WheelieMoving,
+ AcroBikeTransition_WheelieRisingMoving,
+ AcroBikeTransition_WheelieLoweringMoving,
};
static u8 (*const sAcroBikeInputHandlers[])(u8 *, u16, u16) =
@@ -94,19 +104,24 @@ static u8 (*const sAcroBikeInputHandlers[])(u8 *, u16, u16) =
AcroBikeHandleInputWheelieStanding,
AcroBikeHandleInputBunnyHop,
AcroBikeHandleInputWheelieMoving,
- AcroBikeHandleInputState5,
- AcroBikeHandleInputState6,
+ AcroBikeHandleInputSidewaysJump,
+ AcroBikeHandleInputTurnJump,
};
+// used with bikeFrameCounter from mach bike
const u16 gMachBikeSpeeds[] = {SPEED_NORMAL, SPEED_FAST, SPEED_FASTEST};
-static const u8 Unknown_3DB606[] = {4, 0};
-static const struct UnknownStruct1 gUnknown_083DB608[] =
+// this is a list of timers to compare against later, terminated with 0. the only timer being compared against is 4 frames in this list.
+static const u8 AcroBikeJumpTimerList[] = {4, 0};
+
+// this is a list of history inputs to do in order to do the check to retrieve a jump direction for acro bike. it seems to be an extensible list, so its possible that Game Freak may have intended for the Acro Bike to have more complex tricks at some point. The final list only has the acro jump.
+static const struct BikeHistoryInputInfo gAcroBikeTricksList[] =
{
- {1, 2, 15, 15, Unknown_3DB606, Unknown_3DB606, 1},
- {2, 2, 15, 15, Unknown_3DB606, Unknown_3DB606, 2},
- {3, 2, 15, 15, Unknown_3DB606, Unknown_3DB606, 3},
- {4, 2, 15, 15, Unknown_3DB606, Unknown_3DB606, 4},
+ // the 0xF is a mask performed with each byte of the array in order to perform the check on only the last entry of the history list, otherwise the check wouldnt work as there can be 0xF0 as opposed to 0x0F.
+ {DIR_SOUTH, B_BUTTON, 0xF, 0xF, AcroBikeJumpTimerList, AcroBikeJumpTimerList, DIR_SOUTH},
+ {DIR_NORTH, B_BUTTON, 0xF, 0xF, AcroBikeJumpTimerList, AcroBikeJumpTimerList, DIR_NORTH},
+ {DIR_WEST, B_BUTTON, 0xF, 0xF, AcroBikeJumpTimerList, AcroBikeJumpTimerList, DIR_WEST},
+ {DIR_EAST, B_BUTTON, 0xF, 0xF, AcroBikeJumpTimerList, AcroBikeJumpTimerList, DIR_EAST},
};
void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys)
@@ -122,54 +137,60 @@ static void MovePlayerOnMachBike(u8 direction, u16 newKeys, u16 heldKeys)
sMachBikeTransitions[GetMachBikeTransition(&direction)](direction);
}
-static u8 GetMachBikeTransition(u8 *ptr)
+// dirTraveling is a variable that is 0 when the player is standing still.
+static u8 GetMachBikeTransition(u8 *dirTraveling)
{
+ // if the dir updated before this function, get the relevent new direction to check later.
u8 direction = player_get_direction_upper_nybble();
- if (*ptr == 0)
+ // is the player standing still?
+ if (*dirTraveling == 0)
{
- *ptr = direction;
- if (gPlayerAvatar.unkB == 0)
+ *dirTraveling = direction; // update the direction, since below we either faced a direction or we started moving.
+ if (gPlayerAvatar.bikeSpeed == SPEED_STANDING)
{
- gPlayerAvatar.running2 = 0;
- return 0;
+ gPlayerAvatar.runningState = NOT_MOVING;
+ return MACH_TRANS_FACE_DIRECTION;
}
- gPlayerAvatar.running2 = 2;
- return 3;
+ gPlayerAvatar.runningState = MOVING;
+ return MACH_TRANS_START_MOVING;
}
- if (*ptr != direction && gPlayerAvatar.running2 != 2)
+ // we need to check if the last traveled direction changed from the new direction as well as ensuring that we dont update the state while the player is moving: see the else check.
+ if (*dirTraveling != direction && gPlayerAvatar.runningState != MOVING)
{
- if (gPlayerAvatar.unkB != 0)
+ if (gPlayerAvatar.bikeSpeed != SPEED_STANDING)
{
- *ptr = direction;
- gPlayerAvatar.running2 = 2;
- return 3;
+ *dirTraveling = direction; // implement the new direction
+ gPlayerAvatar.runningState = MOVING;
+ return MACH_TRANS_START_MOVING;
}
- gPlayerAvatar.running2 = 1;
- return 1;
+ // if you didnt start moving but your dir was different, do a turn direction instead.
+ gPlayerAvatar.runningState = TURN_DIRECTION;
+ return MACH_TRANS_TURN_DIRECTION;
}
- else
+ else // the player is either going in the current direction and hasnt changed or their state is currently moving.
{
- gPlayerAvatar.running2 = 2;
- return 2;
+ gPlayerAvatar.runningState = MOVING;
+ return MACH_TRANS_KEEP_MOVING;
}
}
+// the difference between face direction and turn direction is that one changes direction while the other does the animation of turning as well as changing direction.
static void MachBikeTransition_FaceDirection(u8 direction)
{
PlayerFaceDirection(direction);
- sub_80E6024();
+ Bike_SetBikeStill();
}
-static void MachBikeTransition_80E517C(u8 direction)
+static void MachBikeTransition_TurnDirection(u8 direction)
{
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E))
{
PlayerTurnInPlace(direction);
- sub_80E6024();
+ Bike_SetBikeStill();
}
else
{
@@ -177,15 +198,16 @@ static void MachBikeTransition_80E517C(u8 direction)
}
}
-static void MachBikeTransition_80E51C4(u8 direction)
+static void MachBikeTransition_TrySpeedUp(u8 direction)
{
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
u8 collision;
- if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0)
+ if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == FALSE)
{
- if (gPlayerAvatar.unkB)
- MachBikeTransition_80E5270(playerMapObj->placeholder18);
+ // we cannot go forward, so either slow down or, if we are stopped, idle face direction.
+ if (gPlayerAvatar.bikeSpeed)
+ MachBikeTransition_TrySlowDown(playerMapObj->placeholder18);
else
MachBikeTransition_FaceDirection(playerMapObj->placeholder18);
}
@@ -194,33 +216,36 @@ static void MachBikeTransition_80E51C4(u8 direction)
collision = get_some_collision(direction);
if (collision > 0 && collision < 12)
{
+ // we hit a solid object, but check to see if its a ledge and then jump.
if (collision == COLLISION_LEDGE_JUMP)
{
PlayerJumpLedge(direction);
}
else
{
- sub_80E6024();
+ // we hit a solid object that is not a ledge, so perform the collision.
+ Bike_SetBikeStill();
if (collision < 5 || collision > 8)
PlayerOnBikeCollide(direction);
}
}
else
{
- gUnknown_083DB5A4[gPlayerAvatar.bikeFrameCounter](direction);
- gPlayerAvatar.unkB = gPlayerAvatar.bikeFrameCounter + (gPlayerAvatar.bikeFrameCounter >> 1); // same as dividing by 2, but compiler is insistent on >> 1
+ // we did not hit anything that can slow us down, so perform the advancement callback depending on the bikeFrameCounter and try to increase the mach bike's speed.
+ sMachBikeSpeedCallbacks[gPlayerAvatar.bikeFrameCounter](direction);
+ gPlayerAvatar.bikeSpeed = gPlayerAvatar.bikeFrameCounter + (gPlayerAvatar.bikeFrameCounter >> 1); // same as dividing by 2, but compiler is insistent on >> 1
if (gPlayerAvatar.bikeFrameCounter < 2) // do not go faster than the last element in the mach bike array
gPlayerAvatar.bikeFrameCounter++;
}
}
}
-static void MachBikeTransition_80E5270(u8 var)
+static void MachBikeTransition_TrySlowDown(u8 var)
{
u8 collision;
- if (gPlayerAvatar.unkB != 0)
- gPlayerAvatar.bikeFrameCounter = --gPlayerAvatar.unkB;
+ if (gPlayerAvatar.bikeSpeed != SPEED_STANDING)
+ gPlayerAvatar.bikeFrameCounter = --gPlayerAvatar.bikeSpeed;
collision = get_some_collision(var);
@@ -232,17 +257,18 @@ static void MachBikeTransition_80E5270(u8 var)
}
else
{
- sub_80E6024();
+ Bike_SetBikeStill();
if (collision < 5 || collision > 8)
PlayerOnBikeCollide(var);
}
}
else
{
- gUnknown_083DB5A4[gPlayerAvatar.bikeFrameCounter](var);
+ sMachBikeSpeedCallbacks[gPlayerAvatar.bikeFrameCounter](var);
}
}
+// the acro bike requires the input handler to be executed before the transition can.
static void MovePlayerOnAcroBike(u8 newDirection, u16 newKeys, u16 heldKeys)
{
sAcroBikeTransitions[CheckMovementInputAcroBike(&newDirection, newKeys, heldKeys)](newDirection);
@@ -265,118 +291,121 @@ static u8 AcroBikeHandleInputNormal(u8 *newDirection, u16 newKeys, u16 heldKeys)
//We're standing still with the B button held.
//Do a wheelie.
*newDirection = direction;
- gPlayerAvatar.running2 = 0;
+ gPlayerAvatar.runningState = NOT_MOVING;
gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING;
return ACRO_TRANS_NORMAL_TO_WHEELIE;
}
else
{
*newDirection = direction;
- gPlayerAvatar.running2 = 0;
+ gPlayerAvatar.runningState = NOT_MOVING;
return ACRO_TRANS_FACE_DIRECTION;
}
}
- if (*newDirection == direction && (heldKeys & B_BUTTON) && gPlayerAvatar.unkB == 0)
+ if (*newDirection == direction && (heldKeys & B_BUTTON) && gPlayerAvatar.bikeSpeed == SPEED_STANDING)
{
- gPlayerAvatar.unkB++;
+ gPlayerAvatar.bikeSpeed++;
gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_MOVING;
- return 11;
+ return ACRO_TRANS_WHEELIE_RISING_MOVING;
}
- if (*newDirection != direction && gPlayerAvatar.running2 != 2)
+ if (*newDirection != direction && gPlayerAvatar.runningState != MOVING)
{
gPlayerAvatar.acroBikeState = ACRO_STATE_TURNING;
- gPlayerAvatar.unk9 = *newDirection;
- gPlayerAvatar.running2 = 0;
+ gPlayerAvatar.newDirBackup = *newDirection;
+ gPlayerAvatar.runningState = NOT_MOVING;
return CheckMovementInputAcroBike(newDirection, newKeys, heldKeys);
}
- gPlayerAvatar.running2 = 2;
- return 2;
+ gPlayerAvatar.runningState = MOVING;
+ return ACRO_TRANS_MOVING;
}
static u8 AcroBikeHandleInputTurning(u8 *newDirection, u16 newKeys, u16 heldKeys)
{
u8 direction;
- *newDirection = gPlayerAvatar.unk9;
+ *newDirection = gPlayerAvatar.newDirBackup;
gPlayerAvatar.bikeFrameCounter++;
- //Wait 6 frames before actually changing direction
- if (gPlayerAvatar.bikeFrameCounter > 6)
+ // Wait 6 frames before actually changing direction
+ if (gPlayerAvatar.bikeFrameCounter > 6) // ... because it takes 6 frames to advance 1 tile.
{
- gPlayerAvatar.running2 = 1;
+ gPlayerAvatar.runningState = TURN_DIRECTION;
gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL;
- sub_80E6024();
- return 1;
+ Bike_SetBikeStill();
+ return ACRO_TRANS_TURN_DIRECTION;
}
direction = player_get_direction_upper_nybble();
- if (*newDirection == sub_80E5C2C())
+ if (*newDirection == AcroBike_GetJumpDirection())
{
- sub_80E6024();
- gPlayerAvatar.unkB = 1;
+ Bike_SetBikeStill(); // Bike_SetBikeStill sets speed to standing, but the next line immediately overrides it. could have just reset acroBikeState to 0 here instead of wasting a jump.
+ gPlayerAvatar.bikeSpeed = SPEED_NORMAL;
if (*newDirection == GetOppositeDirection(direction))
{
- gPlayerAvatar.acroBikeState = ACRO_STATE_6;
- return 9;
+ // do a turn jump.
+ // no need to update runningState, didnt move.
+ gPlayerAvatar.acroBikeState = ACRO_STATE_TURN_JUMP;
+ return ACRO_TRANS_TURN_JUMP;
}
else
{
- gPlayerAvatar.running2 = 2;
- gPlayerAvatar.acroBikeState = ACRO_STATE_5;
- return 8;
+ // do a sideways jump.
+ gPlayerAvatar.runningState = MOVING; // we need to move, set state to moving.
+ gPlayerAvatar.acroBikeState = ACRO_STATE_SIDE_JUMP;
+ return ACRO_TRANS_SIDE_JUMP;
}
}
*newDirection = direction;
- return 0;
+ return ACRO_TRANS_FACE_DIRECTION;
}
-static u8 AcroBikeHandleInputWheelieStanding(u8 *ptr, u16 newKeys, u16 heldKeys)
+static u8 AcroBikeHandleInputWheelieStanding(u8 *newDirection, u16 newKeys, u16 heldKeys)
{
u8 direction;
struct MapObject *playerMapObj;
direction = player_get_direction_upper_nybble();
playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
- gPlayerAvatar.running2 = 0;
+ gPlayerAvatar.runningState = NOT_MOVING;
if (heldKeys & B_BUTTON)
gPlayerAvatar.bikeFrameCounter++;
else
{
- //B button was released.
+ // B button was released.
gPlayerAvatar.bikeFrameCounter = 0;
if (!MetatileBehavior_IsBumpySlope(playerMapObj->mapobj_unk_1E))
{
- //Go back to normal on flat ground
- *ptr = direction;
+ // Go back to normal on flat ground
+ *newDirection = direction;
gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL;
- sub_80E6024();
- return 4;
+ Bike_SetBikeStill();
+ return ACRO_TRANS_WHEELIE_TO_NORMAL;
}
}
if (gPlayerAvatar.bikeFrameCounter >= 40)
{
- *ptr = direction;
+ *newDirection = direction;
gPlayerAvatar.acroBikeState = ACRO_STATE_BUNNY_HOP;
- sub_80E6024();
- return 6;
+ Bike_SetBikeStill();
+ return ACRO_TRANS_WHEELIE_HOPPING_STANDING;
}
- if (*ptr == direction)
+ if (*newDirection == direction)
{
- gPlayerAvatar.running2 = 2;
+ gPlayerAvatar.runningState = MOVING;
gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_MOVING;
- sub_80E6024();
- return 10;
+ Bike_SetBikeStill();
+ return ACRO_TRANS_WHEELIE_MOVING;
}
- if (*ptr == 0)
+ if (*newDirection == 0)
{
- *ptr = direction;
- return 5;
+ *newDirection = direction;
+ return ACRO_TRANS_WHEELIE_IDLE;
}
- gPlayerAvatar.running2 = 1;
- return 5;
+ gPlayerAvatar.runningState = TURN_DIRECTION;
+ return ACRO_TRANS_WHEELIE_IDLE;
}
-static u8 AcroBikeHandleInputBunnyHop(u8 *ptr, u16 newKeys, u16 heldKeys)
+static u8 AcroBikeHandleInputBunnyHop(u8 *newDirection, u16 newKeys, u16 heldKeys)
{
u8 direction;
struct MapObject *playerMapObj;
@@ -385,42 +414,45 @@ static u8 AcroBikeHandleInputBunnyHop(u8 *ptr, u16 newKeys, u16 heldKeys)
playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
if (!(heldKeys & B_BUTTON))
{
- //B button was released
- sub_80E6024();
+ // B button was released
+ Bike_SetBikeStill();
if (MetatileBehavior_IsBumpySlope(playerMapObj->mapobj_unk_1E))
{
- //Do a standing wheelie on a bumpy slope
+ // even though B was released, dont undo the wheelie on the bumpy slope.
gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING;
- return CheckMovementInputAcroBike(ptr, newKeys, heldKeys);
+ return CheckMovementInputAcroBike(newDirection, newKeys, heldKeys);
}
else
{
- //Go back to normal on flat ground
- *ptr = direction;
- gPlayerAvatar.running2 = 0;
+ // .. otherwise, go back to normal on flat ground
+ *newDirection = direction;
+ gPlayerAvatar.runningState = NOT_MOVING;
gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL;
- return 4;
+ return ACRO_TRANS_WHEELIE_TO_NORMAL;
}
}
- //B Button is still held
+ // B Button is still held
- if (*ptr == DIR_NONE)
+ if (*newDirection == DIR_NONE)
{
- *ptr = direction;
- gPlayerAvatar.running2 = 0;
- return 6;
+ // we did not move, so keep hopping in place without moving.
+ *newDirection = direction;
+ gPlayerAvatar.runningState = NOT_MOVING;
+ return ACRO_TRANS_WHEELIE_HOPPING_STANDING;
}
- if (*ptr != direction && gPlayerAvatar.running2 != 2)
+ if (*newDirection != direction && gPlayerAvatar.runningState != MOVING)
{
- gPlayerAvatar.running2 = 1;
- return 6;
+ // we changed direction, so turn but do not move hop.
+ gPlayerAvatar.runningState = TURN_DIRECTION;
+ return ACRO_TRANS_WHEELIE_HOPPING_STANDING;
}
- gPlayerAvatar.running2 = 2;
- return 7;
+ // otherwise, we started moving while hopping
+ gPlayerAvatar.runningState = MOVING;
+ return ACRO_TRANS_WHEELIE_HOPPING_MOVING;
}
-static u8 AcroBikeHandleInputWheelieMoving(u8 *ptr, u16 newKeys, u16 heldKeys)
+static u8 AcroBikeHandleInputWheelieMoving(u8 *newDirection, u16 newKeys, u16 heldKeys)
{
u8 direction;
struct MapObject *playerMapObj;
@@ -429,45 +461,53 @@ static u8 AcroBikeHandleInputWheelieMoving(u8 *ptr, u16 newKeys, u16 heldKeys)
playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
if (!(heldKeys & B_BUTTON))
{
- sub_80E6024();
+ // we were moving on a wheelie, but we let go while moving. reset bike still status
+ Bike_SetBikeStill();
if (!MetatileBehavior_IsBumpySlope(playerMapObj->mapobj_unk_1E))
{
+ // we let go of B and arent on a bumpy slope, set state to normal because now we need to handle this
gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL;
- if (*ptr == 0)
+ if (*newDirection == DIR_NONE)
{
- *ptr = direction;
- gPlayerAvatar.running2 = 0;
- return 4;
+ // we stopped moving but are turning, still try to lower the wheelie in place.
+ *newDirection = direction;
+ gPlayerAvatar.runningState = NOT_MOVING;
+ return ACRO_TRANS_WHEELIE_TO_NORMAL;
}
- if (*ptr != direction && gPlayerAvatar.running2 != 2)
+ if (*newDirection != direction && gPlayerAvatar.runningState != MOVING)
{
- gPlayerAvatar.running2 = 0;
- return 4;
+ // we did not turn while lowering wheelie, so do so without turning.
+ gPlayerAvatar.runningState = NOT_MOVING;
+ return ACRO_TRANS_WHEELIE_TO_NORMAL;
}
- gPlayerAvatar.running2 = 2;
- return 12;
+ // if we are moving while lowering wheelie, put the acro into a lowering state while moving.
+ gPlayerAvatar.runningState = MOVING;
+ return ACRO_TRANS_WHEELIE_LOWERING_MOVING;
}
+ // please do not undo the wheelie on a bumpy slope
gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING;
- return CheckMovementInputAcroBike(ptr, newKeys, heldKeys);
+ return CheckMovementInputAcroBike(newDirection, newKeys, heldKeys);
}
- if (*ptr == 0)
+ // we are still holding B.
+ if (*newDirection == DIR_NONE)
{
- *ptr = direction;
+ // idle the wheelie in place because we're holding B without moving.
+ *newDirection = direction;
gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING;
- gPlayerAvatar.running2 = 0;
- sub_80E6024();
- return 5;
+ gPlayerAvatar.runningState = NOT_MOVING;
+ Bike_SetBikeStill();
+ return ACRO_TRANS_WHEELIE_IDLE;
}
- if (direction != *ptr && gPlayerAvatar.running2 != 2)
+ if (direction != *newDirection && gPlayerAvatar.runningState != MOVING)
{
- gPlayerAvatar.running2 = 0;
- return 5;
+ gPlayerAvatar.runningState = NOT_MOVING;
+ return ACRO_TRANS_WHEELIE_IDLE;
}
- gPlayerAvatar.running2 = 2;
- return 10;
+ gPlayerAvatar.runningState = MOVING;
+ return ACRO_TRANS_WHEELIE_MOVING;
}
-static u8 AcroBikeHandleInputState5(u8 *ptr, u16 newKeys, u16 heldKeys)
+static u8 AcroBikeHandleInputSidewaysJump(u8 *ptr, u16 newKeys, u16 heldKeys)
{
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -477,7 +517,7 @@ static u8 AcroBikeHandleInputState5(u8 *ptr, u16 newKeys, u16 heldKeys)
return CheckMovementInputAcroBike(ptr, newKeys, heldKeys);
}
-static u8 AcroBikeHandleInputState6(u8 *ptr, u16 newKeys, u16 heldKeys)
+static u8 AcroBikeHandleInputTurnJump(u8 *ptr, u16 newKeys, u16 heldKeys)
{
gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL;
return CheckMovementInputAcroBike(ptr, newKeys, heldKeys);
@@ -488,7 +528,7 @@ static void AcroBikeTransition_FaceDirection(u8 direction)
PlayerFaceDirection(direction);
}
-static void AcroBikeTransition_80E5708(u8 direction)
+static void AcroBikeTransition_TurnDirection(u8 direction)
{
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -497,7 +537,7 @@ static void AcroBikeTransition_80E5708(u8 direction)
PlayerFaceDirection(direction);
}
-static void AcroBikeTransition_80E5744(u8 direction)
+static void AcroBikeTransition_Moving(u8 direction)
{
u8 collision;
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -530,41 +570,41 @@ static void AcroBikeTransition_NormalToWheelie(u8 direction)
PlayerStartWheelie(direction);
}
-static void AcroBikeTransition_80E57F8(u8 direction)
+static void AcroBikeTransition_WheelieToNormal(u8 direction)
{
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0)
direction = playerMapObj->placeholder18;
- sub_8059534(direction);
+ PlayerEndWheelie(direction);
}
-static void AcroBikeTransition_80E5834(u8 direction)
+static void AcroBikeTransition_WheelieIdle(u8 direction)
{
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0)
direction = playerMapObj->placeholder18;
- sub_8059504(direction);
+ PlayerIdleWheelie(direction);
}
-static void AcroBikeTransition_80E5870(u8 direction)
+static void AcroBikeTransition_WheelieHoppingStanding(u8 direction)
{
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0)
direction = playerMapObj->placeholder18;
- sub_805954C(direction);
+ PlayerStandingHoppingWheelie(direction);
}
-static void AcroBikeTransition_80E58AC(u8 direction)
+static void AcroBikeTransition_WheelieHoppingMoving(u8 direction)
{
u8 var;
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0)
{
- AcroBikeTransition_80E5870(playerMapObj->placeholder18);
+ AcroBikeTransition_WheelieHoppingStanding(playerMapObj->placeholder18);
return;
}
var = get_some_collision(direction);
@@ -575,23 +615,23 @@ static void AcroBikeTransition_80E58AC(u8 direction)
}
else if (var == 6)
{
- sub_8059594(direction);
+ PlayerLedgeHoppingWheelie(direction);
}
else if (var < 5 || var > 8)
{
if (var <= 11)
{
- AcroBikeTransition_80E5870(direction);
+ AcroBikeTransition_WheelieHoppingStanding(direction);
}
else
{
derp:
- sub_8059570(direction);
+ PlayerMovingHoppingWheelie(direction);
}
}
}
-static void AcroBikeTransition_80E5920(u8 direction)
+static void AcroBikeTransition_SideJump(u8 direction)
{
u8 var;
struct MapObject *playerMapObj;
@@ -603,12 +643,12 @@ static void AcroBikeTransition_80E5920(u8 direction)
return;
if (var < 10)
{
- AcroBikeTransition_80E5708(direction);
+ AcroBikeTransition_TurnDirection(direction);
return;
}
- if (sub_80E5EC0(var, direction) == 0)
+ if (WillPlayerCollideWithCollision(var, direction) == FALSE)
{
- AcroBikeTransition_80E5708(direction);
+ AcroBikeTransition_TurnDirection(direction);
return;
}
}
@@ -618,19 +658,19 @@ static void AcroBikeTransition_80E5920(u8 direction)
PlayerSetAnimId(sub_80608A4(direction), 2);
}
-static void AcroBikeTransition_80E5990(u8 direction)
+static void AcroBikeTransition_TurnJump(u8 direction)
{
- sub_80595B8(direction);
+ PlayerAcroTurnJump(direction);
}
-static void AcroBikeTransition_80E59A0(u8 direction)
+static void AcroBikeTransition_WheelieMoving(u8 direction)
{
u8 var;
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0)
{
- sub_8059504(playerMapObj->placeholder18);
+ PlayerIdleWheelie(playerMapObj->placeholder18);
return;
}
var = get_some_collision(direction);
@@ -638,26 +678,26 @@ static void AcroBikeTransition_80E59A0(u8 direction)
{
if (var == 6)
{
- sub_8059594(direction);
+ PlayerLedgeHoppingWheelie(direction);
}
else if (var == 9)
{
- sub_8059504(direction);
+ PlayerIdleWheelie(direction);
}
else if (var <= 4)
{
if (MetatileBehavior_IsBumpySlope(playerMapObj->mapobj_unk_1E))
- sub_8059504(direction);
+ PlayerIdleWheelie(direction);
else
sub_80595DC(direction); //hit wall?
}
return;
}
sub_8059618(direction);
- gPlayerAvatar.running2 = 2;
+ gPlayerAvatar.runningState = MOVING;
}
-static void AcroBikeTransition_80E5A30(u8 direction)
+static void AcroBikeTransition_WheelieRisingMoving(u8 direction)
{
u8 var;
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -672,33 +712,33 @@ static void AcroBikeTransition_80E5A30(u8 direction)
{
if (var == 6)
{
- sub_8059594(direction);
+ PlayerLedgeHoppingWheelie(direction);
}
else if (var == 9)
{
- sub_8059504(direction);
+ PlayerIdleWheelie(direction);
}
else if (var <= 4)
{
if (MetatileBehavior_IsBumpySlope(playerMapObj->mapobj_unk_1E))
- sub_8059504(direction);
+ PlayerIdleWheelie(direction);
else
sub_80595DC(direction); //hit wall?
}
return;
}
sub_8059600(direction);
- gPlayerAvatar.running2 = 2;
+ gPlayerAvatar.runningState = MOVING;
}
-static void AcroBikeTransition_80E5AC0(u8 direction)
+static void AcroBikeTransition_WheelieLoweringMoving(u8 direction)
{
u8 var;
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0)
{
- sub_8059534(playerMapObj->placeholder18);
+ PlayerEndWheelie(playerMapObj->placeholder18);
return;
}
var = get_some_collision(direction);
@@ -707,115 +747,115 @@ static void AcroBikeTransition_80E5AC0(u8 direction)
if (var == 6)
PlayerJumpLedge(direction);
else if (var < 5 || var > 8)
- sub_8059534(direction);
+ PlayerEndWheelie(direction);
return;
}
sub_8059630(direction);
}
-void sub_80E5B38(u16 a, u16 b)
+void Bike_TryAcroBikeHistoryUpdate(u16 newKeys, u16 heldKeys)
{
if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE)
- sub_80E5B60(a, b);
+ AcroBike_TryHistoryUpdate(newKeys, heldKeys);
}
-static void sub_80E5B60(u16 unused, u16 b)
+static void AcroBike_TryHistoryUpdate(u16 newKeys, u16 heldKeys) // newKeys is unused
{
- u8 var;
+ u8 direction = Bike_DPadToDirection(heldKeys);
- var = sub_80E5CF4(b);
- if (var == (gPlayerAvatar.unkC & 0xF))
+ if (direction == (gPlayerAvatar.directionHistory & 0xF))
{
- if (gPlayerAvatar.unk14[0] < 0xFF)
- gPlayerAvatar.unk14[0]++;
+ // increment the timer for direction history since last input.
+ if (gPlayerAvatar.dirTimerHistory[0] < 0xFF)
+ gPlayerAvatar.dirTimerHistory[0]++;
}
else
{
- sub_80E5C7C(var);
- gPlayerAvatar.unkB = 0;
+ Bike_UpdateDirTimerHistory(direction);
+ gPlayerAvatar.bikeSpeed = SPEED_STANDING;
}
- var = b & 0xF;
- if (var == (gPlayerAvatar.unk10 & 0xF))
+ direction = heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON); // directions is reused for some reason.
+ if (direction == (gPlayerAvatar.abStartSelectHistory & 0xF))
{
- if (gPlayerAvatar.unk1C[0] < 0xFF)
- gPlayerAvatar.unk1C[0]++;
+ if (gPlayerAvatar.abStartSelectTimerHistory[0] < 0xFF)
+ gPlayerAvatar.abStartSelectTimerHistory[0]++;
}
else
{
- sub_80E5CB8(var);
- gPlayerAvatar.unkB = 0;
+ Bike_UpdateABStartSelectHistory(direction);
+ gPlayerAvatar.bikeSpeed = SPEED_STANDING;
}
}
-static bool8 sub_80E5BC8(const u8 *a, const u8 *b)
+static bool8 HasPlayerInputTakenLongerThanList(const u8 *dirTimerList, const u8 *abStartSelectTimerList)
{
u8 i;
- for (i = 0; a[i] != 0; i++)
+ for (i = 0; dirTimerList[i] != 0; i++)
{
- if (gPlayerAvatar.unk14[i] > a[i])
+ if (gPlayerAvatar.dirTimerHistory[i] > dirTimerList[i])
return FALSE;
}
- for (i = 0; b[i] != 0; i++)
+ for (i = 0; abStartSelectTimerList[i] != 0; i++)
{
- if (gPlayerAvatar.unk1C[i] > b[i])
+ if (gPlayerAvatar.abStartSelectTimerHistory[i] > abStartSelectTimerList[i])
return FALSE;
}
return TRUE;
}
-static u8 sub_80E5C2C(void)
+static u8 AcroBike_GetJumpDirection(void)
{
u32 i;
for (i = 0; i < 4; i++)
{
- const struct UnknownStruct1 *s = &gUnknown_083DB608[i];
- u32 r1 = gPlayerAvatar.unkC;
- u32 r2 = gPlayerAvatar.unk10;
-
- r1 &= s->unk8;
- r2 &= s->unkC;
- if (r1 == s->unk0 && r2 == s->unk4 && sub_80E5BC8(s->unk10, s->unk14))
- return s->unk18;
+ const struct BikeHistoryInputInfo *historyInputInfo = &gAcroBikeTricksList[i];
+ u32 dirHistory = gPlayerAvatar.directionHistory;
+ u32 abStartSelectHistory = gPlayerAvatar.abStartSelectHistory;
+
+ dirHistory &= historyInputInfo->dirHistoryMask;
+ abStartSelectHistory &= historyInputInfo->abStartSelectHistoryMask;
+ if (dirHistory == historyInputInfo->dirHistoryMatch && abStartSelectHistory == historyInputInfo->abStartSelectHistoryMatch && HasPlayerInputTakenLongerThanList(historyInputInfo->dirTimerHistoryList, historyInputInfo->abStartSelectHistoryList))
+ return historyInputInfo->direction;
}
return 0;
}
-static void sub_80E5C7C(u8 a)
+static void Bike_UpdateDirTimerHistory(u8 dir)
{
u8 i;
- gPlayerAvatar.unkC = (gPlayerAvatar.unkC << 4) | (a & 0xF);
+ gPlayerAvatar.directionHistory = (gPlayerAvatar.directionHistory << 4) | (dir & 0xF);
for (i = 7; i != 0; i--)
- gPlayerAvatar.unk14[i] = gPlayerAvatar.unk14[i - 1];
- gPlayerAvatar.unk14[0] = 1;
+ gPlayerAvatar.dirTimerHistory[i] = gPlayerAvatar.dirTimerHistory[i - 1];
+ gPlayerAvatar.dirTimerHistory[0] = 1;
}
-static void sub_80E5CB8(u8 a)
+static void Bike_UpdateABStartSelectHistory(u8 input)
{
u8 i;
- gPlayerAvatar.unk10 = (gPlayerAvatar.unk10 << 4) | (a & 0xF);
+ gPlayerAvatar.abStartSelectHistory = (gPlayerAvatar.abStartSelectHistory << 4) | (input & 0xF);
for (i = 7; i != 0; i--)
- gPlayerAvatar.unk1C[i] = gPlayerAvatar.unk1C[i - 1];
- gPlayerAvatar.unk1C[0] = 1;
+ gPlayerAvatar.abStartSelectTimerHistory[i] = gPlayerAvatar.abStartSelectTimerHistory[i - 1];
+ gPlayerAvatar.abStartSelectTimerHistory[0] = 1;
}
-static u8 sub_80E5CF4(u16 a)
+static u8 Bike_DPadToDirection(u16 heldKeys)
{
- if (a & 0x40)
- return 2;
- if (a & 0x80)
- return 1;
- if (a & 0x20)
- return 3;
- if (a & 0x10)
- return 4;
- return 0;
+ if (heldKeys & DPAD_UP)
+ return DIR_NORTH;
+ if (heldKeys & DPAD_DOWN)
+ return DIR_SOUTH;
+ if (heldKeys & DPAD_LEFT)
+ return DIR_WEST;
+ if (heldKeys & DPAD_RIGHT)
+ return DIR_EAST;
+ return DIR_NONE;
}
static u8 get_some_collision(u8 direction)
@@ -829,10 +869,10 @@ static u8 get_some_collision(u8 direction)
y = playerMapObj->coords2.y;
MoveCoords(direction, &x, &y);
metatitleBehavior = MapGridGetMetatileBehaviorAt(x, y);
- return sub_80E5DA0(playerMapObj, x, y, direction, metatitleBehavior);
+ return Bike_CheckCollisionTryAdvanceCollisionCount(playerMapObj, x, y, direction, metatitleBehavior);
}
-static u8 sub_80E5DA0(struct MapObject *mapObject, s16 x, s16 y, u8 direction, u8 metatitleBehavior)
+static u8 Bike_CheckCollisionTryAdvanceCollisionCount(struct MapObject *mapObject, s16 x, s16 y, u8 direction, u8 metatitleBehavior)
{
u8 collision = CheckForFieldObjectCollision(mapObject, x, y, direction, metatitleBehavior);
@@ -843,7 +883,7 @@ static u8 sub_80E5DA0(struct MapObject *mapObject, s16 x, s16 y, u8 direction, u
collision = 2;
if (collision)
- sub_80E5E4C();
+ Bike_TryAdvanceCyclingRoadCollisions();
return collision;
}
@@ -865,10 +905,10 @@ static bool8 IsRunningDisallowedByMetatile(u8 tile)
return FALSE;
}
-static void sub_80E5E4C(void)
+static void Bike_TryAdvanceCyclingRoadCollisions(void)
{
- if (gUnknown_02039250 != 0 && gUnknown_02039251 < 100)
- gUnknown_02039251++;
+ if (gBikeCyclingChallenge != FALSE && gBikeCollisions < 100)
+ gBikeCollisions++;
}
static bool8 CanBikeFaceDirOnMetatile(u8 direction, u8 tile)
@@ -890,14 +930,14 @@ static bool8 CanBikeFaceDirOnMetatile(u8 direction, u8 tile)
return TRUE;
}
-static bool8 sub_80E5EC0(u8 var1, u8 direction)
+static bool8 WillPlayerCollideWithCollision(u8 newTileCollision, u8 direction)
{
if (direction == DIR_NORTH || direction == DIR_SOUTH)
{
- if (var1 == 10 || var1 == 12)
+ if (newTileCollision == 10 || newTileCollision == 12)
return FALSE;
}
- else if (var1 == 11 || var1 == 13)
+ else if (newTileCollision == 11 || newTileCollision == 13)
{
return FALSE;
}
@@ -930,7 +970,7 @@ bool8 player_should_look_direction_be_enforced_upon_movement(void)
void GetOnOffBike(u8 var)
{
- gUnknown_0202E854 = 0;
+ gUnusedBikeCameraAheadPanback = FALSE;
if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE))
{
@@ -946,34 +986,34 @@ void GetOnOffBike(u8 var)
}
}
-void BikeClearState(int var1, int var2)
+void BikeClearState(int newDirHistory, int newAbStartHistory)
{
u8 i;
gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL;
- gPlayerAvatar.unk9 = 0;
+ gPlayerAvatar.newDirBackup = DIR_NONE;
gPlayerAvatar.bikeFrameCounter = 0;
- gPlayerAvatar.unkB = 0;
- gPlayerAvatar.unkC = var1;
- gPlayerAvatar.unk10 = var2;
+ gPlayerAvatar.bikeSpeed = SPEED_STANDING;
+ gPlayerAvatar.directionHistory = newDirHistory;
+ gPlayerAvatar.abStartSelectHistory = newAbStartHistory;
for (i = 0; i < 8; i++)
- gPlayerAvatar.unk14[i] = 0;
+ gPlayerAvatar.dirTimerHistory[i] = 0;
for (i = 0; i < 8; i++)
- gPlayerAvatar.unk1C[i] = 0;
+ gPlayerAvatar.abStartSelectTimerHistory[i] = 0;
}
-void sub_80E6010(u8 var)
+void Bike_UpdateBikeCounterSpeed(u8 counter)
{
- gPlayerAvatar.bikeFrameCounter = var;
- gPlayerAvatar.unkB = gPlayerAvatar.bikeFrameCounter + (gPlayerAvatar.bikeFrameCounter >> 1); // lazy way of multiplying by 1.5.
+ gPlayerAvatar.bikeFrameCounter = counter;
+ gPlayerAvatar.bikeSpeed = gPlayerAvatar.bikeFrameCounter + (gPlayerAvatar.bikeFrameCounter >> 1); // lazy way of multiplying by 1.5.
}
-static void sub_80E6024(void)
+static void Bike_SetBikeStill(void)
{
gPlayerAvatar.bikeFrameCounter = 0;
- gPlayerAvatar.unkB = 0;
+ gPlayerAvatar.bikeSpeed = SPEED_STANDING;
}
s16 GetPlayerSpeed(void)
@@ -993,7 +1033,7 @@ s16 GetPlayerSpeed(void)
return SPEED_NORMAL;
}
-void sub_80E6084(void)
+void Bike_HandleBumpySlopeJump(void)
{
s16 x, y;
u8 tileBehavior;
diff --git a/src/field/birch_pc.c b/src/field/birch_pc.c
index 9872dd54d..4b0025504 100644
--- a/src/field/birch_pc.c
+++ b/src/field/birch_pc.c
@@ -2,7 +2,7 @@
#include "event_data.h"
#include "field_message_box.h"
#include "pokedex.h"
-#include "species.h"
+#include "constants/species.h"
extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
diff --git a/src/field/braille_puzzles.c b/src/field/braille_puzzles.c
index b11b1ff3a..0d304714d 100644
--- a/src/field/braille_puzzles.c
+++ b/src/field/braille_puzzles.c
@@ -4,16 +4,16 @@
#include "field_camera.h"
#include "field_effect.h"
#include "fieldmap.h"
-#include "flags.h"
+#include "constants/flags.h"
#include "main.h"
-#include "map_constants.h"
+#include "constants/maps.h"
#include "map_obj_lock.h"
#include "menu.h"
#include "rom6.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "species.h"
+#include "constants/species.h"
#include "task.h"
#include "text.h"
@@ -24,9 +24,9 @@ extern u8 S_OpenRegiceChamber[]; // regiice event script
bool8 ShouldDoBrailleDigEffect(void)
{
- if (!FlagGet(SYS_BRAILLE_DIG)
- && (gSaveBlock1.location.mapGroup == MAP_GROUP_SEALED_CHAMBER_OUTER_ROOM
- && gSaveBlock1.location.mapNum == MAP_ID_SEALED_CHAMBER_OUTER_ROOM))
+ if (!FlagGet(FLAG_SYS_BRAILLE_DIG)
+ && (gSaveBlock1.location.mapGroup == MAP_GROUP(SEALED_CHAMBER_OUTER_ROOM)
+ && gSaveBlock1.location.mapNum == MAP_NUM(SEALED_CHAMBER_OUTER_ROOM)))
{
if (gSaveBlock1.pos.x == 10 && gSaveBlock1.pos.y == 3)
return TRUE;
@@ -49,7 +49,7 @@ void DoBrailleDigEffect(void)
MapGridSetMetatileIdAt(18, 9, 3636);
DrawWholeMapView();
PlaySE(SE_BAN);
- FlagSet(SYS_BRAILLE_DIG);
+ FlagSet(FLAG_SYS_BRAILLE_DIG);
ScriptContext2_Disable();
}
@@ -68,7 +68,7 @@ bool8 CheckRelicanthWailord(void)
bool8 ShouldDoBrailleStrengthEffect(void)
{
- if (!FlagGet(SYS_BRAILLE_STRENGTH) && (gSaveBlock1.location.mapGroup == MAP_GROUP_DESERT_RUINS && gSaveBlock1.location.mapNum == MAP_ID_DESERT_RUINS))
+ if (!FlagGet(FLAG_SYS_BRAILLE_STRENGTH) && (gSaveBlock1.location.mapGroup == MAP_GROUP(DESERT_RUINS) && gSaveBlock1.location.mapNum == MAP_NUM(DESERT_RUINS)))
{
if (gSaveBlock1.pos.x == 10 && gSaveBlock1.pos.y == 23)
return TRUE;
@@ -92,13 +92,13 @@ void DoBrailleStrengthEffect(void)
MapGridSetMetatileIdAt(16, 27, 3636);
DrawWholeMapView();
PlaySE(SE_BAN);
- FlagSet(SYS_BRAILLE_STRENGTH);
+ FlagSet(FLAG_SYS_BRAILLE_STRENGTH);
ScriptContext2_Disable();
}
bool8 ShouldDoBrailleFlyEffect(void)
{
- if (!FlagGet(SYS_BRAILLE_FLY) && (gSaveBlock1.location.mapGroup == MAP_GROUP_ANCIENT_TOMB && gSaveBlock1.location.mapNum == MAP_ID_ANCIENT_TOMB))
+ if (!FlagGet(FLAG_SYS_BRAILLE_FLY) && (gSaveBlock1.location.mapGroup == MAP_GROUP(ANCIENT_TOMB) && gSaveBlock1.location.mapNum == MAP_NUM(ANCIENT_TOMB)))
{
if (gSaveBlock1.pos.x == 8 && gSaveBlock1.pos.y == 25)
return TRUE;
@@ -138,13 +138,13 @@ void UseFlyAncientTomb_Finish(void)
MapGridSetMetatileIdAt(16, 27, 3636);
DrawWholeMapView();
PlaySE(SE_BAN);
- FlagSet(SYS_BRAILLE_FLY);
+ FlagSet(FLAG_SYS_BRAILLE_FLY);
ScriptContext2_Disable();
}
void DoBrailleWait(void)
{
- if (!FlagGet(SYS_BRAILLE_WAIT))
+ if (!FlagGet(FLAG_SYS_BRAILLE_WAIT))
CreateTask(Task_BrailleWait, 0x50);
}
diff --git a/src/field/choose_party.c b/src/field/choose_party.c
index f35dcdf56..d278eda4a 100644
--- a/src/field/choose_party.c
+++ b/src/field/choose_party.c
@@ -11,12 +11,13 @@
#include "pokemon_summary_screen.h"
#include "overworld.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "strings.h"
#include "string_util.h"
#include "task.h"
#include "text.h"
+#include "ewram.h"
extern u8 gPlayerPartyCount;
extern u8 gLastFieldPokeMenuOpened;
@@ -24,17 +25,16 @@ extern u8 gUnknown_020384F0;
extern struct UnknownPokemonStruct2 gUnknown_02023A00[];
extern u8 gUnknown_0202E8F6;
extern struct Pokemon gUnknown_030042FC[];
-extern const u16 gBattleTowerBanlist[];
+extern const u16 gBattleTowerBannedSpecies[];
EWRAM_DATA u8 gSelectedOrderFromParty[3] = {0};
extern u8 sub_806BD58(u8, u8);
extern void PartyMenuPrintMonsLevelOrStatus(void);
extern void sub_806BC3C(u8, u8);
-extern void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, void (*)(void), int);
extern u8 GetMonStatusAndPokerus();
extern void PartyMenuPrintHP();
-extern bool8 sub_80F9344(void);
+extern bool8 sub_80F9344(void);
static void ClearPartySelection(void);
static bool8 IsMonAllowedInBattleTower(struct Pokemon *);
@@ -176,15 +176,15 @@ static bool8 IsMonAllowedInBattleTower(struct Pokemon *pkmn)
return TRUE;
}
- if ((gSaveBlock2.filler_A8.var_4AC & 1) == 0
+ if ((gSaveBlock2.battleTower.battleTowerLevelType) == 0
&& GetMonData(pkmn, MON_DATA_LEVEL) > 50)
return FALSE;
// Check if the pkmn is in the ban list
species = GetMonData(pkmn, MON_DATA_SPECIES);
- while (gBattleTowerBanlist[i] != 0xFFFF)
+ while (gBattleTowerBannedSpecies[i] != 0xFFFF)
{
- if (gBattleTowerBanlist[i] == species)
+ if (gBattleTowerBannedSpecies[i] == species)
return FALSE;
i++;
}
@@ -429,11 +429,11 @@ static void sub_81225D4(u8 taskId)
{
if (!gPaletteFade.active)
{
- u8 r4 = gSprites[gTasks[taskId].data[3] >> 8].data0;
+ u8 r4 = gSprites[gTasks[taskId].data[3] >> 8].data[0];
DestroyTask(taskId);
ewram1B000.unk262 = 1;
- ShowPokemonSummaryScreen(gPlayerParty, r4, gPlayerPartyCount - 1, sub_81225A4, 0);
+ ShowPokemonSummaryScreen(gPlayerParty, r4, gPlayerPartyCount - 1, sub_81225A4, PSS_MODE_NORMAL);
}
}
@@ -879,11 +879,11 @@ static void sub_8123034(u8 taskId)
{
if (!gPaletteFade.active)
{
- u8 r4 = gSprites[gTasks[taskId].data[3] >> 8].data0;
+ u8 r4 = gSprites[gTasks[taskId].data[3] >> 8].data[0];
DestroyTask(taskId);
ewram1B000.unk262 = 1;
- ShowPokemonSummaryScreen(gPlayerParty, r4, gPlayerPartyCount - 1, sub_8123004, 0);
+ ShowPokemonSummaryScreen(gPlayerParty, r4, gPlayerPartyCount - 1, sub_8123004, PSS_MODE_NORMAL);
}
}
diff --git a/src/field/daycare.c b/src/field/daycare.c
index 60cc61e40..c28bc65ca 100644
--- a/src/field/daycare.c
+++ b/src/field/daycare.c
@@ -1,46 +1,50 @@
#include "global.h"
#include "daycare.h"
-#include "pokemon.h"
#include "event_data.h"
-#include "species.h"
-#include "items.h"
-#include "text.h"
-#include "string_util.h"
-#include "mail_data.h"
-#include "name_string_util.h"
-#include "pokemon_storage_system.h"
-#include "rng.h"
-#include "moves.h"
-#include "trade.h"
-#include "strings2.h"
-#include "data/pokemon/egg_moves.h"
-#include "party_menu.h"
#include "field_effect.h"
+#include "constants/items.h"
+#include "mail_data.h"
#include "main.h"
#include "menu.h"
-#include "sound.h"
-#include "songs.h"
-#include "script.h"
+#include "constants/moves.h"
+#include "name_string_util.h"
#include "overworld.h"
+#include "party_menu.h"
+#include "pokemon.h"
+#include "pokemon_storage_system.h"
+#include "random.h"
+#include "script.h"
+#include "constants/songs.h"
+#include "sound.h"
+#include "constants/species.h"
+#include "string_util.h"
+#include "strings2.h"
+#include "text.h"
+#include "trade.h"
+
+// RAM buffers used to assist with BuildEggMoveset()
+IWRAM_DATA u16 gHatchedEggLevelUpMoves[52];
+IWRAM_DATA u16 gHatchedEggFatherMoves[4];
+IWRAM_DATA u16 gHatchedEggFinalMoves[4];
+IWRAM_DATA u16 gHatchedEggEggMoves[12];
+IWRAM_DATA u16 gHatchedEggMotherMoves[4];
-IWRAM_DATA u16 gUnknown_03000470[52];
-IWRAM_DATA u16 gUnknown_030004D8[4];
-IWRAM_DATA u16 gUnknown_030004E0[4];
-IWRAM_DATA u16 gUnknown_030004E8[12];
-IWRAM_DATA u16 gUnknown_03000500[4];
+extern u16 gMoveToLearn;
+
+static void ClearDaycareMail(struct DayCareMail *);
+static void SetInitialEggData(struct Pokemon *, u16, struct DayCare *);
+static u8 GetDaycareCompatibilityScore(struct DayCare *);
-static void sub_80417F4(struct DayCareMail *);
-static void sub_80420FC(struct Pokemon *, u16, struct DayCareData *);
-static u8 daycare_relationship_score(struct DayCareData *);
+#include "../data/pokemon/egg_moves.h"
-const u8 *const gUnknown_08209AC4[] = {
+static const u8 *const sCompatibilityMessages[] = {
DaycareText_GetAlongVeryWell,
DaycareText_GetAlong,
DaycareText_DontLikeOther,
DaycareText_PlayOther
};
-const u8 gUnknown_08209AD4[] = _("タマゴ");
+const u8 sJapaneseEggNickname[] = _("タマゴ");
u8 *GetMonNick(struct Pokemon *mon, u8 *dest)
{
@@ -58,251 +62,284 @@ u8 *GetBoxMonNick(struct BoxPokemon *mon, u8 *dest)
return StringCopy10(dest, nickname);
}
-u8 Daycare_CountPokemon(struct DayCareData *daycare_data)
+u8 CountPokemonInDaycare(struct DayCare *daycare)
{
u8 i, count;
count = 0;
- for(i = 0;i <= 1;i++)
- if(GetBoxMonData(&daycare_data->mons[i], MON_DATA_SPECIES) != 0)
+ for (i = 0; i < 2; i++)
+ {
+ if (GetBoxMonData(&daycare->mons[i], MON_DATA_SPECIES) != 0)
count++;
+ }
return count;
}
-void sub_8041324(struct BoxPokemon * box_pokemon, struct RecordMixingDayCareMail * daycareMailEtc)
+void InitDaycareMailRecordMixing(struct BoxPokemon * daycareMons, struct RecordMixingDayCareMail * daycareMail)
{
u8 i;
- u8 specCount;
- specCount = 0;
- for (i=0; i<2; i++)
+ u8 numDaycareMons = 0;
+
+ for (i = 0; i < 2; i++)
{
- if (GetBoxMonData(&box_pokemon[i], MON_DATA_SPECIES) != SPECIES_NONE)
+ if (GetBoxMonData(&daycareMons[i], MON_DATA_SPECIES) != SPECIES_NONE)
{
- specCount ++;
- if (GetBoxMonData(&box_pokemon[i], MON_DATA_HELD_ITEM) == ITEM_NONE)
+ numDaycareMons++;
+ if (GetBoxMonData(&daycareMons[i], MON_DATA_HELD_ITEM) == ITEM_NONE)
{
- daycareMailEtc->unk74[i] = 0;
- } else
+ daycareMail->itemsHeld[i] = 0;
+ }
+ else
{
- daycareMailEtc->unk74[i] = 1;
+ daycareMail->itemsHeld[i] = 1;
}
- } else
+ }
+ else
{
- daycareMailEtc->unk74[i] = 1;
+ daycareMail->itemsHeld[i] = 1;
}
}
- daycareMailEtc->unk70 = specCount;
+
+ daycareMail->numDaycareMons = numDaycareMons;
}
-static s8 Daycare_FindEmptySpot(struct BoxPokemon * daycare_data)
+static s8 Daycare_FindEmptySpot(struct BoxPokemon * daycareMons)
{
u8 i;
- for(i = 0;i <= 1;i++)
- if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) == 0)
+ for (i = 0; i < 2; i++)
+ {
+ if (GetBoxMonData(&daycareMons[i], MON_DATA_SPECIES) == 0)
return i;
+ }
return -1;
}
-static void Daycare_SendPokemon(struct Pokemon * mon, struct DayCareData * daycare_data)
+static void StorePokemonInDaycare(struct Pokemon * mon, struct DayCare * daycare)
{
- s8 empty_slot;
+ s8 emptySlot;
u8 mail;
u8 *names;
- empty_slot = Daycare_FindEmptySpot(daycare_data->mons);
- if(MonHasMail(mon)) {
- StringCopy((names = daycare_data->misc.mail[empty_slot].names), gSaveBlock2.playerName);
+ emptySlot = Daycare_FindEmptySpot(daycare->mons);
+ if (MonHasMail(mon))
+ {
+ StringCopy((names = daycare->misc.mail[emptySlot].names), gSaveBlock2.playerName);
PadNameString(names, 0xFC);
names += 8;
GetMonNick(mon, names);
mail = GetMonData(mon, MON_DATA_MAIL);
- daycare_data->misc.mail[empty_slot].message = gSaveBlock1.mail[mail];
+ daycare->misc.mail[emptySlot].message = gSaveBlock1.mail[mail];
TakeMailFromMon(mon);
}
- daycare_data->mons[empty_slot] = mon->box;
- BoxMonRestorePP(&daycare_data->mons[empty_slot]);
- daycare_data->misc.countersEtc.steps[empty_slot] = 0;
+
+ daycare->mons[emptySlot] = mon->box;
+ BoxMonRestorePP(&daycare->mons[emptySlot]);
+ daycare->misc.countersEtc.steps[emptySlot] = 0;
ZeroMonData(mon);
party_compaction();
CalculatePlayerPartyCount();
}
-void Daycare_SendPokemon_Special()
+void StoreSelectedPokemonInDaycare(void)
{
- Daycare_SendPokemon(gPlayerParty + gLastFieldPokeMenuOpened, &gSaveBlock1.daycareData);
+ StorePokemonInDaycare(&gPlayerParty[gLastFieldPokeMenuOpened], &gSaveBlock1.daycare);
}
-static void sub_80414C0(struct DayCareData * daycare_data)
+// Shifts the second daycare pokemon slot into the first slot.
+static void ShiftDaycareSlots(struct DayCare * daycare)
{
- if((GetBoxMonData(&daycare_data->mons[1], MON_DATA_SPECIES) != 0) && GetBoxMonData(&daycare_data->mons[0], MON_DATA_SPECIES) == 0)
+ // This condition is only satisfied when the player takes out the first pokemon from the daycare.
+ if (GetBoxMonData(&daycare->mons[1], MON_DATA_SPECIES) != 0 && GetBoxMonData(&daycare->mons[0], MON_DATA_SPECIES) == 0)
{
- daycare_data->mons[0] = daycare_data->mons[1];
- ZeroBoxMonData(&daycare_data->mons[1]);
- daycare_data->misc.mail[0] = daycare_data->misc.mail[1];
- daycare_data->misc.countersEtc.steps[0] = daycare_data->misc.countersEtc.steps[1];
- daycare_data->misc.countersEtc.steps[1] = 0;
- sub_80417F4(&daycare_data->misc.mail[1]);
+ daycare->mons[0] = daycare->mons[1];
+ ZeroBoxMonData(&daycare->mons[1]);
+
+ daycare->misc.mail[0] = daycare->misc.mail[1];
+ daycare->misc.countersEtc.steps[0] = daycare->misc.countersEtc.steps[1];
+ daycare->misc.countersEtc.steps[1] = 0;
+ ClearDaycareMail(&daycare->misc.mail[1]);
}
}
-u8 TryIncrementMonLevel(struct Pokemon *);
-extern u16 gMoveToLearn;
-
-static void DayCare_LevelUpMoves(struct Pokemon * mon)
+static void ApplyDaycareExperience(struct Pokemon * mon)
{
s32 i;
- u8 r6;
- u16 temp;
+ bool8 firstMove;
+ u16 learnedMove;
for (i = 0; i < MAX_LEVEL; i++)
{
+ // Add the mon's gained daycare experience level by level until it can't level up anymore.
if (TryIncrementMonLevel(mon))
{
- r6 = 1;
- while ((temp = MonTryLearningNewMove(mon, r6)) != 0)
+ // Teach the mon new moves it learned while in the daycare.
+ firstMove = TRUE;
+ while ((learnedMove = MonTryLearningNewMove(mon, firstMove)) != 0)
{
- r6 = 0;
- if (temp == 0xffff)
+ firstMove = FALSE;
+ if (learnedMove == 0xffff)
+ {
+ // Mon already knows 4 moves.
DeleteFirstMoveAndGiveMoveToMon(mon, gMoveToLearn);
+ }
}
}
else
+ {
break;
+ }
}
+ // Re-calculate the mons stats at its new level.
CalculateMonStats(mon);
}
-static u16 sub_8041570(struct DayCareData * daycare_data, u8 slot)
+static u16 TakeSelectedPokemonFromDaycare(struct DayCare * daycare, u8 slot)
{
u16 species;
u32 experience;
struct Pokemon pokemon;
- GetBoxMonNick(&daycare_data->mons[slot], gStringVar1);
- species = GetBoxMonData(&daycare_data->mons[slot], MON_DATA_SPECIES);
- sub_803B4B4(&daycare_data->mons[slot], &pokemon);
+ GetBoxMonNick(&daycare->mons[slot], gStringVar1);
+ species = GetBoxMonData(&daycare->mons[slot], MON_DATA_SPECIES);
+ sub_803B4B4(&daycare->mons[slot], &pokemon);
+
if (GetMonData(&pokemon, MON_DATA_LEVEL) != MAX_LEVEL)
{
- experience = GetMonData(&pokemon, MON_DATA_EXP) + daycare_data->misc.countersEtc.steps[slot];
- SetMonData(&pokemon, MON_DATA_EXP, (u8 *)&experience);
- DayCare_LevelUpMoves(&pokemon);
+ experience = GetMonData(&pokemon, MON_DATA_EXP) + daycare->misc.countersEtc.steps[slot];
+ SetMonData(&pokemon, MON_DATA_EXP, &experience);
+ ApplyDaycareExperience(&pokemon);
}
+
gPlayerParty[PARTY_SIZE - 1] = pokemon;
- if (daycare_data->misc.mail[slot].message.itemId)
+ if (daycare->misc.mail[slot].message.itemId)
{
- GiveMailToMon2(&gPlayerParty[PARTY_SIZE - 1], &daycare_data->misc.mail[slot].message);
- sub_80417F4(&daycare_data->misc.mail[slot]);
+ GiveMailToMon2(&gPlayerParty[PARTY_SIZE - 1], &daycare->misc.mail[slot].message);
+ ClearDaycareMail(&daycare->misc.mail[slot]);
}
+
party_compaction();
- ZeroBoxMonData(&daycare_data->mons[slot]);
- daycare_data->misc.countersEtc.steps[slot] = 0;
- sub_80414C0(daycare_data);
+ ZeroBoxMonData(&daycare->mons[slot]);
+ daycare->misc.countersEtc.steps[slot] = 0;
+ ShiftDaycareSlots(daycare);
CalculatePlayerPartyCount();
return species;
}
-u16 sub_8041648()
+u16 TakePokemonFromDaycare(void)
{
- return sub_8041570(&gSaveBlock1.daycareData, gSpecialVar_0x8004);
+ return TakeSelectedPokemonFromDaycare(&gSaveBlock1.daycare, gSpecialVar_0x8004);
}
-u8 Daycare_GetLevelAfterSteps(struct BoxPokemon * mon, u32 steps){
- struct BoxPokemon temp = *mon;
- u32 new_exp = GetBoxMonData(mon, MON_DATA_EXP) + steps;
- SetBoxMonData(&temp, MON_DATA_EXP, (u8 *) &new_exp);
- return GetLevelFromBoxMonExp(&temp);
+static u8 GetLevelAfterDaycareSteps(struct BoxPokemon * mon, u32 steps)
+{
+ struct BoxPokemon tempMon = *mon;
+
+ u32 experience = GetBoxMonData(mon, MON_DATA_EXP) + steps;
+ SetBoxMonData(&tempMon, MON_DATA_EXP, &experience);
+ return GetLevelFromBoxMonExp(&tempMon);
}
-static u8 sub_80416A0(struct DayCareData *daycareData, u8 slot)
+static u8 GetNumLevelsGainedFromSteps(struct DayCare *daycare, u8 slot)
{
u8 levelBefore;
u8 levelAfter;
- levelBefore = GetLevelFromBoxMonExp(&daycareData->mons[slot]);
- levelAfter = Daycare_GetLevelAfterSteps(&daycareData->mons[slot], daycareData->misc.countersEtc.steps[slot]);
+ levelBefore = GetLevelFromBoxMonExp(&daycare->mons[slot]);
+ levelAfter = GetLevelAfterDaycareSteps(&daycare->mons[slot], daycare->misc.countersEtc.steps[slot]);
return levelAfter - levelBefore;
}
-static u8 sub_80416E8(struct DayCareData *dayCareData, u8 slot)
+static u8 GetNumLevelsGainedForDaycareSlot(struct DayCare *daycare, u8 slot)
{
- u8 levelDelta = sub_80416A0(dayCareData, slot);
- GetBoxMonNick(&dayCareData->mons[slot], gStringVar1);
- ConvertIntToDecimalStringN(gStringVar2, levelDelta, STR_CONV_MODE_LEFT_ALIGN, 2);
- return levelDelta;
+ u8 numLevelsGained = GetNumLevelsGainedFromSteps(daycare, slot);
+ GetBoxMonNick(&daycare->mons[slot], gStringVar1);
+ ConvertIntToDecimalStringN(gStringVar2, numLevelsGained, STR_CONV_MODE_LEFT_ALIGN, 2);
+ return numLevelsGained;
}
-static u16 sub_8041728(struct DayCareData *dayCareData, u8 slot)
+static u16 GetDaycareCostForSelectedMon(struct DayCare *daycare, u8 slot)
{
u16 cost;
- u8 levelDelta = sub_80416A0(dayCareData, slot);
- GetBoxMonNick(&dayCareData->mons[slot], gStringVar1);
- cost = 100 + 100 * levelDelta;
+ u8 numLevelsGained = GetNumLevelsGainedFromSteps(daycare, slot);
+ GetBoxMonNick(&daycare->mons[slot], gStringVar1);
+ cost = 100 + 100 * numLevelsGained;
ConvertIntToDecimalStringN(gStringVar2, cost, STR_CONV_MODE_LEFT_ALIGN, 5);
return cost;
}
-void sub_8041770(void)
+void GetDaycareCost(void)
{
- gSpecialVar_0x8005 = sub_8041728(&gSaveBlock1.daycareData, gSpecialVar_0x8004);
+ gSpecialVar_0x8005 = GetDaycareCostForSelectedMon(&gSaveBlock1.daycare, gSpecialVar_0x8004);
}
-void sub_8041790(u16 i)
+void Debug_AddDaycareSteps(u16 numSteps)
{
- gSaveBlock1.daycareData.misc.countersEtc.steps[0] += i;
- gSaveBlock1.daycareData.misc.countersEtc.steps[1] += i;
+ gSaveBlock1.daycare.misc.countersEtc.steps[0] += numSteps;
+ gSaveBlock1.daycare.misc.countersEtc.steps[1] += numSteps;
}
-u8 sub_80417B8(void)
+u8 GetNumLevelsGainedFromDaycare(void)
{
- if (GetBoxMonData(&gSaveBlock1.daycareData.mons[gSpecialVar_0x8004], MON_DATA_SPECIES) != 0)
- return sub_80416E8(&gSaveBlock1.daycareData, gSpecialVar_0x8004);
+ if (GetBoxMonData(&gSaveBlock1.daycare.mons[gSpecialVar_0x8004], MON_DATA_SPECIES) != 0)
+ return GetNumLevelsGainedForDaycareSlot(&gSaveBlock1.daycare, gSpecialVar_0x8004);
+
return 0;
}
-static void sub_80417F4(struct DayCareMail *mail)
+static void ClearDaycareMail(struct DayCareMail *mail)
{
- u8 zero;
u8 *names;
u8 *names2;
- int i;
- zero = 0;
- for (i = 7, names = mail->names + 7; i >= 0; i --)
+ s32 i;
+ u8 zero = 0;
+
+ for (i = 7, names = &mail->names[7]; i >= 0; i--)
+ {
*names-- = zero;
- names2 = mail->names + 8;
+ }
+
+ names2 = &mail->names[8];
zero = 0;
- names = mail->names + 18;
- do *names-- = zero; while ((int)names >= (int)names2);
+ names = &mail->names[18];
+ do *names-- = zero; while ((s32)names >= (s32)names2);
ClearMailStruct(&mail->message);
}
-void unref_sub_8041824(struct DayCareData *dayCareData)
+void unref_sub_8041824(struct DayCare *daycare)
{
u8 slot;
- for (slot = 0; slot < ARRAY_COUNT(dayCareData->mons); slot ++)
+ for (slot = 0; slot < ARRAY_COUNT(daycare->mons); slot++)
{
- ZeroBoxMonData(&dayCareData->mons[slot]);
- dayCareData->misc.countersEtc.steps[slot] = 0;
- sub_80417F4(&dayCareData->misc.mail[slot]);
+ ZeroBoxMonData(&daycare->mons[slot]);
+ daycare->misc.countersEtc.steps[slot] = 0;
+ ClearDaycareMail(&daycare->misc.mail[slot]);
}
- dayCareData->misc.countersEtc.personalityLo = 0;
- dayCareData->misc.countersEtc.unk_11a = 0;
+
+ daycare->misc.countersEtc.pendingEggPersonality = 0;
+ daycare->misc.countersEtc.eggCycleStepsRemaining = 0;
}
-u16 sub_8041870(u16 species)
+// Determines what the species of an Egg would be based on the given species.
+// It determines this by working backwards through the evolution chain of the
+// given species.
+u16 GetEggSpecies(u16 species)
{
int i, j, k;
bool8 found;
- for (i = 0; i < 5; i ++)
+
+ // Working backwards up to 5 times seems arbitrary, since the maximum number
+ // of times would only be 3 for 3-stage evolutions.
+ for (i = 0; i < 5; i++)
{
found = FALSE;
- for (j = 1; j < NUM_SPECIES; j ++)
+ for (j = 1; j < NUM_SPECIES; j++)
{
- for (k = 0; k < 5; k ++)
+ for (k = 0; k < 5; k++)
{
if (gEvolutionTable[j].evolutions[k].targetSpecies == species)
{
@@ -311,92 +348,118 @@ u16 sub_8041870(u16 species)
break;
}
}
+
if (found)
break;
}
- if (j == 412)
+
+ if (j == NUM_SPECIES)
break;
}
+
return species;
}
-static void sub_80418F0(struct DayCareData *dayCareData)
+static void _TriggerPendingDaycareEgg(struct DayCare *daycare)
{
- dayCareData->misc.countersEtc.personalityLo = (Random() % 0xfffe) + 1;
- FlagSet(0x86);
+ daycare->misc.countersEtc.pendingEggPersonality = (Random() % 0xfffe) + 1;
+ FlagSet(FLAG_PENDING_DAYCARE_EGG);
}
-static void sub_804191C(struct DayCareData *dayCareData)
+static void _TriggerPendingDaycareMaleEgg(struct DayCare *daycare)
{
- dayCareData->misc.countersEtc.personalityLo = Random() | 0x8000;
- FlagSet(0x86);
+ daycare->misc.countersEtc.pendingEggPersonality = Random() | 0x8000;
+ FlagSet(FLAG_PENDING_DAYCARE_EGG);
}
-void sub_8041940(void)
+void TriggerPendingDaycareEgg(void)
{
- sub_80418F0(&gSaveBlock1.daycareData);
+ _TriggerPendingDaycareEgg(&gSaveBlock1.daycare);
}
-void sub_8041950(void)
+void TriggerPendingDaycareMaleEgg(void)
{
- sub_804191C(&gSaveBlock1.daycareData);
+ _TriggerPendingDaycareMaleEgg(&gSaveBlock1.daycare);
}
-static void sub_8041960(u8 *data, u8 idx)
+// Removes the selected index from the given IV list and shifts the remaining
+// elements to the left.
+static void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv)
{
- int i, j;
- u8 temp[6];
- data[idx] = 0xff;
- for (i = 0; i < 6; i ++)
- temp[i] = data[i];
+ s32 i, j;
+ u8 temp[NUM_STATS];
+
+ ivs[selectedIv] = 0xff;
+ for (i = 0; i < NUM_STATS; i++)
+ {
+ temp[i] = ivs[i];
+ }
+
j = 0;
- for (i = 0; i < 6; i ++)
+ for (i = 0; i < NUM_STATS; i++)
+ {
if (temp[i] != 0xff)
- data[j++] = temp[i];
+ ivs[j++] = temp[i];
+ }
}
-static void InheritIVs(struct Pokemon *egg, struct DayCareData *dayCareData)
+static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare)
{
u8 i;
u8 selectedIvs[3];
- u8 allIvs[6];
- u8 whichParent[3];
+ u8 availableIVs[NUM_STATS];
+ u8 whichParent[ARRAY_COUNT(selectedIvs)];
u8 iv;
- for (i = 0; i < 6; i ++)
- allIvs[i] = i;
- for (i = 0; i < 3; i ++)
+
+ // Initialize a list of IV indices.
+ for (i = 0; i < NUM_STATS; i++)
{
- selectedIvs[i] = allIvs[Random() % (6 - i)];
- sub_8041960(allIvs, selectedIvs[i]);
+ availableIVs[i] = i;
+ }
+
+ // Select the 3 IVs that will be inherited.
+ for (i = 0; i < ARRAY_COUNT(selectedIvs); i++)
+ {
+ // Randomly pick an IV from the available list.
+ selectedIvs[i] = availableIVs[Random() % (NUM_STATS - i)];
+
+ // Remove the selected IV index from the available IV indicies.
+ RemoveIVIndexFromList(availableIVs, selectedIvs[i]);
}
- for (i = 0; i < 3; i ++)
+
+ // Determine which parent each of the selected IVs should inherit from.
+ for (i = 0; i < ARRAY_COUNT(selectedIvs); i++)
+ {
whichParent[i] = Random() % 2;
- for (i = 0; i < 3; i ++)
+ }
+
+ // Set each of inherited IVs on the egg mon.
+ for (i = 0; i < ARRAY_COUNT(selectedIvs); i++)
{
switch (selectedIvs[i])
{
case 0:
- iv = GetBoxMonData(&dayCareData->mons[whichParent[i]], MON_DATA_HP_IV);
+ iv = GetBoxMonData(&daycare->mons[whichParent[i]], MON_DATA_HP_IV);
SetMonData(egg, MON_DATA_HP_IV, &iv);
break;
case 1:
- iv = GetBoxMonData(&dayCareData->mons[whichParent[i]], MON_DATA_ATK_IV);
+ iv = GetBoxMonData(&daycare->mons[whichParent[i]], MON_DATA_ATK_IV);
SetMonData(egg, MON_DATA_ATK_IV, &iv);
break;
case 2:
- iv = GetBoxMonData(&dayCareData->mons[whichParent[i]], MON_DATA_DEF_IV);
+ iv = GetBoxMonData(&daycare->mons[whichParent[i]], MON_DATA_DEF_IV);
SetMonData(egg, MON_DATA_DEF_IV, &iv);
break;
case 3:
- iv = GetBoxMonData(&dayCareData->mons[whichParent[i]], MON_DATA_SPD_IV);
- SetMonData(egg, MON_DATA_SPD_IV, &iv);
+ iv = GetBoxMonData(&daycare->mons[whichParent[i]], MON_DATA_SPEED_IV);
+ SetMonData(egg, MON_DATA_SPEED_IV, &iv);
break;
case 4:
- iv = GetBoxMonData(&dayCareData->mons[whichParent[i]], MON_DATA_SPATK_IV);
+ iv = GetBoxMonData(&daycare->mons[whichParent[i]], MON_DATA_SPATK_IV);
SetMonData(egg, MON_DATA_SPATK_IV, &iv);
break;
case 5:
- iv = GetBoxMonData(&dayCareData->mons[whichParent[i]], MON_DATA_SPDEF_IV);
+ iv = GetBoxMonData(&daycare->mons[whichParent[i]], MON_DATA_SPDEF_IV);
SetMonData(egg, MON_DATA_SPDEF_IV, &iv);
break;
}
@@ -406,17 +469,19 @@ static void InheritIVs(struct Pokemon *egg, struct DayCareData *dayCareData)
#ifdef NONMATCHING
static
#endif
-u8 pokemon_get_eggmoves(struct Pokemon *pokemon, u16 *eggMoves)
+// Counts the number of egg moves a pokemon learns and stores the moves in
+// the given array.
+u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves)
{
u16 eggMoveIdx;
- u16 numMovesFound;
+ u16 numEggMoves;
u16 species;
u16 i;
- numMovesFound = 0;
+ numEggMoves = 0;
eggMoveIdx = 0;
species = GetMonData(pokemon, MON_DATA_SPECIES);
- for (i = 0; i < ARRAY_COUNT(gEggMoves) - 1; i ++)
+ for (i = 0; i < ARRAY_COUNT(gEggMoves) - 1; i++)
{
if (gEggMoves[i] == species + EGG_MOVES_SPECIES_OFFSET)
{
@@ -424,57 +489,61 @@ u8 pokemon_get_eggmoves(struct Pokemon *pokemon, u16 *eggMoves)
break;
}
}
- for (i = 0; i < 10; i ++)
+
+ for (i = 0; i < 10; i++)
{
if (gEggMoves[eggMoveIdx + i] > EGG_MOVES_SPECIES_OFFSET)
{
+ // TODO: the curly braces around this if statement are required for a matching build.
break;
}
+
eggMoves[i] = gEggMoves[eggMoveIdx + i];
- numMovesFound++;
+ numEggMoves++;
}
- return numMovesFound;
+
+ return numEggMoves;
}
#ifdef NONMATCHING
-
-void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, struct BoxPokemon *mom)
+void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, struct BoxPokemon *mother)
{
u16 numSharedParentMoves;
u8 numLevelUpMoves;
- u8 numEggMoves;
+ u16 numEggMoves;
u16 i, j;
numSharedParentMoves = 0;
- for (i = 0; i < 4; i ++)
+ for (i = 0; i < 4; i++)
{
- gUnknown_03000500[i] = 0;
- gUnknown_030004D8[i] = 0;
- gUnknown_030004E0[i] = 0;
+ gHatchedEggMotherMoves[i] = 0;
+ gHatchedEggFatherMoves[i] = 0;
+ gHatchedEggFinalMoves[i] = 0;
}
- for (i = 0; i < 10; i ++)
- gUnknown_030004E8[i] = 0;
- for (i = 0; i < 50; i ++)
- gUnknown_03000470[i] = 0;
+ for (i = 0; i < 10; i++)
+ gHatchedEggEggMoves[i] = 0;
+ for (i = 0; i < 50; i++)
+ gHatchedEggLevelUpMoves[i] = 0;
- numLevelUpMoves = GetLevelUpMovesBySpecies(GetMonData(egg, MON_DATA_SPECIES), gUnknown_03000470);
- for (i = 0; i < 4; i ++)
+ numLevelUpMoves = GetLevelUpMovesBySpecies(GetMonData(egg, MON_DATA_SPECIES), gHatchedEggLevelUpMoves);
+ for (i = 0; i < 4; i++)
{
- gUnknown_030004D8[i] = GetBoxMonData(dad, MON_DATA_MOVE1 + i);
- gUnknown_03000500[i] = GetBoxMonData(mom, MON_DATA_MOVE1 + i);
+ gHatchedEggFatherMoves[i] = GetBoxMonData(father, MON_DATA_MOVE1 + i);
+ gHatchedEggMotherMoves[i] = GetBoxMonData(mother, MON_DATA_MOVE1 + i);
}
- numEggMoves = pokemon_get_eggmoves(egg, gUnknown_030004E8);
- for (i = 0; i < 4; i ++)
+ numEggMoves = GetEggMoves(egg, gHatchedEggEggMoves);
+
+ for (i = 0; i < 4; i++)
{
- if (gUnknown_030004D8[i] != MOVE_NONE)
+ if (gHatchedEggFatherMoves[i] != MOVE_NONE)
{
- for (j = 0; j < numEggMoves; j ++)
+ for (j = 0; j < (u32)numEggMoves; j++)
{
- if (gUnknown_030004D8[i] == gUnknown_030004E8[j])
+ if (gHatchedEggFatherMoves[i] == gHatchedEggEggMoves[j])
{
- if (GiveMoveToMon(egg, gUnknown_030004D8[i]) == 0xffff)
- DeleteFirstMoveAndGiveMoveToMon(egg, gUnknown_030004D8[i]);
+ if (GiveMoveToMon(egg, gHatchedEggFatherMoves[i]) == 0xffff)
+ DeleteFirstMoveAndGiveMoveToMon(egg, gHatchedEggFatherMoves[i]);
break;
}
}
@@ -482,40 +551,41 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
else
break;
}
- for (i = 0; i < 4; i ++)
+ for (i = 0; i < 4; i++)
{
- if (gUnknown_030004D8[i] != MOVE_NONE)
+ if (gHatchedEggFatherMoves[i] != MOVE_NONE)
{
- for (j = 0; j < 50 + 8; j ++)
+ for (j = 0; j < NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES; j++)
{
- if (gUnknown_030004D8[i] == ItemIdToBattleMoveId(ITEM_TM01 + j) && CanMonLearnTMHM(egg, j))
+ if (gHatchedEggFatherMoves[i] == ItemIdToBattleMoveId(ITEM_TM01 + j) && CanMonLearnTMHM(egg, j))
{
- if (GiveMoveToMon(egg, gUnknown_030004D8[i]) == 0xffff)
- DeleteFirstMoveAndGiveMoveToMon(egg, gUnknown_030004D8[i]);
+ if (GiveMoveToMon(egg, gHatchedEggFatherMoves[i]) == 0xffff)
+ DeleteFirstMoveAndGiveMoveToMon(egg, gHatchedEggFatherMoves[i]);
}
}
}
}
- for (i = 0; i < 4; i ++)
+ for (i = 0; i < 4; i++)
{
- if (gUnknown_030004D8[i] == MOVE_NONE)
+ if (gHatchedEggFatherMoves[i] == MOVE_NONE)
break;
- for (j = 0; j < 4; j ++)
+ for (j = 0; j < 4; j++)
{
- if (gUnknown_030004D8[i] == gUnknown_03000500[j] && gUnknown_030004D8[i] != MOVE_NONE)
- gUnknown_030004E0[numSharedParentMoves++] = gUnknown_030004D8[i];
+ if (gHatchedEggFatherMoves[i] == gHatchedEggMotherMoves[j] && gHatchedEggFatherMoves[i] != MOVE_NONE)
+ gHatchedEggFinalMoves[numSharedParentMoves++] = gHatchedEggFatherMoves[i];
}
}
- for (i = 0; i < 4; i ++)
+
+ for (i = 0; i < 4; i++)
{
- if (gUnknown_030004E0[i] == MOVE_NONE)
+ if (gHatchedEggFinalMoves[i] == MOVE_NONE)
break;
- for (j = 0; j < numLevelUpMoves; j ++)
+ for (j = 0; j < numLevelUpMoves; j++)
{
- if (gUnknown_03000470[j] != MOVE_NONE && gUnknown_030004E0[i] == gUnknown_03000470[j])
+ if (gHatchedEggLevelUpMoves[j] != MOVE_NONE && gHatchedEggFinalMoves[i] == gHatchedEggLevelUpMoves[j])
{
- if (GiveMoveToMon(egg, gUnknown_030004E0[i]) == 0xffff)
- DeleteFirstMoveAndGiveMoveToMon(egg, gUnknown_030004E0[i]);
+ if (GiveMoveToMon(egg, gHatchedEggFinalMoves[i]) == 0xffff)
+ DeleteFirstMoveAndGiveMoveToMon(egg, gHatchedEggFinalMoves[i]);
break;
}
}
@@ -523,7 +593,7 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
}
#else
__attribute__((naked))
-void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, struct BoxPokemon *mom)
+void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, struct BoxPokemon *mother)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tmov r7, r10\n"
@@ -537,10 +607,10 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
"\tmovs r0, 0\n"
"\tstr r0, [sp]\n"
"\tmovs r6, 0\n"
- "\tldr r5, _08041CC8 @ =gUnknown_03000500\n"
+ "\tldr r5, _08041CC8 @ =gHatchedEggMotherMoves\n"
"\tmovs r2, 0\n"
- "\tldr r4, _08041CCC @ =gUnknown_030004D8\n"
- "\tldr r3, _08041CD0 @ =gUnknown_030004E0\n"
+ "\tldr r4, _08041CCC @ =gHatchedEggFatherMoves\n"
+ "\tldr r3, _08041CD0 @ =gHatchedEggFinalMoves\n"
"_08041BE4:\n"
"\tlsls r1, r6, 1\n"
"\tadds r0, r1, r5\n"
@@ -555,7 +625,7 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
"\tcmp r6, 0x3\n"
"\tbls _08041BE4\n"
"\tmovs r6, 0\n"
- "\tldr r2, _08041CD4 @ =gUnknown_030004E8\n"
+ "\tldr r2, _08041CD4 @ =gHatchedEggEggMoves\n"
"\tmovs r1, 0\n"
"_08041C02:\n"
"\tlsls r0, r6, 1\n"
@@ -567,7 +637,7 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
"\tcmp r6, 0x9\n"
"\tbls _08041C02\n"
"\tmovs r6, 0\n"
- "\tldr r2, _08041CD8 @ =gUnknown_03000470\n"
+ "\tldr r2, _08041CD8 @ =gHatchedEggLevelUpMoves\n"
"\tmovs r1, 0\n"
"_08041C18:\n"
"\tlsls r0, r6, 1\n"
@@ -583,13 +653,13 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
"\tbl GetMonData\n"
"\tlsls r0, 16\n"
"\tlsrs r0, 16\n"
- "\tldr r1, _08041CD8 @ =gUnknown_03000470\n"
+ "\tldr r1, _08041CD8 @ =gHatchedEggLevelUpMoves\n"
"\tbl GetLevelUpMovesBySpecies\n"
"\tlsls r0, 24\n"
"\tlsrs r0, 24\n"
"\tstr r0, [sp, 0x4]\n"
"\tmovs r6, 0\n"
- "\tldr r1, _08041CCC @ =gUnknown_030004D8\n"
+ "\tldr r1, _08041CCC @ =gHatchedEggFatherMoves\n"
"\tmov r8, r1\n"
"_08041C46:\n"
"\tadds r5, r6, 0\n"
@@ -604,7 +674,7 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
"\tmov r0, r9\n"
"\tadds r1, r5, 0\n"
"\tbl GetBoxMonData\n"
- "\tldr r1, _08041CC8 @ =gUnknown_03000500\n"
+ "\tldr r1, _08041CC8 @ =gHatchedEggMotherMoves\n"
"\tadds r4, r1\n"
"\tstrh r0, [r4]\n"
"\tadds r0, r6, 0x1\n"
@@ -612,15 +682,15 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
"\tlsrs r6, r0, 16\n"
"\tcmp r6, 0x3\n"
"\tbls _08041C46\n"
- "\tldr r1, _08041CD4 @ =gUnknown_030004E8\n"
+ "\tldr r1, _08041CD4 @ =gHatchedEggEggMoves\n"
"\tadds r0, r7, 0\n"
- "\tbl pokemon_get_eggmoves\n"
+ "\tbl GetEggMoves\n"
"\tlsls r0, 24\n"
"\tlsrs r0, 24\n"
"\tmov r8, r0\n"
"\tmovs r6, 0\n"
"_08041C82:\n"
- "\tldr r0, _08041CCC @ =gUnknown_030004D8\n"
+ "\tldr r0, _08041CCC @ =gHatchedEggFatherMoves\n"
"\tlsls r1, r6, 1\n"
"\tadds r2, r1, r0\n"
"\tldrh r1, [r2]\n"
@@ -633,7 +703,7 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
"\tadds r4, r2, 0\n"
"\tldr r2, _08041CDC @ =0x0000ffff\n"
"_08041C9A:\n"
- "\tldr r0, _08041CD4 @ =gUnknown_030004E8\n"
+ "\tldr r0, _08041CD4 @ =gHatchedEggEggMoves\n"
"\tlsls r1, r5, 1\n"
"\tadds r1, r0\n"
"\tldrh r0, [r4]\n"
@@ -654,11 +724,11 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
"\tbl DeleteFirstMoveAndGiveMoveToMon\n"
"\tb _08041CEA\n"
"\t.align 2, 0\n"
- "_08041CC8: .4byte gUnknown_03000500\n"
- "_08041CCC: .4byte gUnknown_030004D8\n"
- "_08041CD0: .4byte gUnknown_030004E0\n"
- "_08041CD4: .4byte gUnknown_030004E8\n"
- "_08041CD8: .4byte gUnknown_03000470\n"
+ "_08041CC8: .4byte gHatchedEggMotherMoves\n"
+ "_08041CCC: .4byte gHatchedEggFatherMoves\n"
+ "_08041CD0: .4byte gHatchedEggFinalMoves\n"
+ "_08041CD4: .4byte gHatchedEggEggMoves\n"
+ "_08041CD8: .4byte gHatchedEggLevelUpMoves\n"
"_08041CDC: .4byte 0x0000ffff\n"
"_08041CE0:\n"
"\tadds r0, r5, 0x1\n"
@@ -670,7 +740,7 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
"\tadds r0, r6, 0x1\n"
"\tlsls r0, 16\n"
"\tlsrs r6, r0, 16\n"
- "\tldr r3, _08041E14 @ =gUnknown_030004D8\n"
+ "\tldr r3, _08041E14 @ =gHatchedEggFatherMoves\n"
"\tmov r9, r3\n"
"\tcmp r6, 0x3\n"
"\tbls _08041C82\n"
@@ -687,7 +757,7 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
"\tcmp r1, 0\n"
"\tbeq _08041D5C\n"
"\tmovs r5, 0\n"
- "\tldr r0, _08041E14 @ =gUnknown_030004D8\n"
+ "\tldr r0, _08041E14 @ =gHatchedEggFatherMoves\n"
"\tadds r4, r2, r0\n"
"\tldr r6, _08041E18 @ =0x0000ffff\n"
"\tmov r9, r0\n"
@@ -733,12 +803,12 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
"\tmovs r6, 0\n"
"\tmov r2, r9\n"
"\tldrh r0, [r2]\n"
- "\tldr r3, _08041E20 @ =gUnknown_030004E0\n"
+ "\tldr r3, _08041E20 @ =gHatchedEggFinalMoves\n"
"\tmov r10, r3\n"
"\tcmp r0, 0\n"
"\tbeq _08041DC6\n"
"\tmov r4, r9\n"
- "\tldr r0, _08041E24 @ =gUnknown_03000500\n"
+ "\tldr r0, _08041E24 @ =gHatchedEggMotherMoves\n"
"\tmov r9, r0\n"
"\tmov r12, r10\n"
"_08041D7C:\n"
@@ -796,7 +866,7 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
"\tbcs _08041E38\n"
"\tldr r2, _08041E18 @ =0x0000ffff\n"
"_08041DDE:\n"
- "\tldr r1, _08041E28 @ =gUnknown_03000470\n"
+ "\tldr r1, _08041E28 @ =gHatchedEggLevelUpMoves\n"
"\tlsls r0, r5, 1\n"
"\tadds r0, r1\n"
"\tldrh r1, [r0]\n"
@@ -822,12 +892,12 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
"\tbl DeleteFirstMoveAndGiveMoveToMon\n"
"\tb _08041E38\n"
"\t.align 2, 0\n"
- "_08041E14: .4byte gUnknown_030004D8\n"
+ "_08041E14: .4byte gHatchedEggFatherMoves\n"
"_08041E18: .4byte 0x0000ffff\n"
"_08041E1C: .4byte 0x00000121\n"
- "_08041E20: .4byte gUnknown_030004E0\n"
- "_08041E24: .4byte gUnknown_03000500\n"
- "_08041E28: .4byte gUnknown_03000470\n"
+ "_08041E20: .4byte gHatchedEggFinalMoves\n"
+ "_08041E24: .4byte gHatchedEggMotherMoves\n"
+ "_08041E28: .4byte gHatchedEggLevelUpMoves\n"
"_08041E2C:\n"
"\tadds r0, r5, 0x1\n"
"\tlsls r0, 16\n"
@@ -841,7 +911,7 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
"\tlsrs r6, r0, 16\n"
"\tcmp r6, 0x3\n"
"\tbhi _08041E50\n"
- "\tldr r0, _08041E60 @ =gUnknown_030004E0\n"
+ "\tldr r0, _08041E60 @ =gHatchedEggFinalMoves\n"
"\tlsls r1, r6, 1\n"
"\tadds r1, r0\n"
"\tldrh r1, [r1]\n"
@@ -858,166 +928,178 @@ void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, st
"\tpop {r0}\n"
"\tbx r0\n"
"\t.align 2, 0\n"
- "_08041E60: .4byte gUnknown_030004E0");
+ "_08041E60: .4byte gHatchedEggFinalMoves");
}
#endif
-static void RemoveEggFromDayCare(struct DayCareData *dayCareData)
+static void RemoveEggFromDayCare(struct DayCare *daycare)
{
- dayCareData->misc.countersEtc.personalityLo = 0;
- dayCareData->misc.countersEtc.unk_11a = 0;
+ daycare->misc.countersEtc.pendingEggPersonality = 0;
+ daycare->misc.countersEtc.eggCycleStepsRemaining = 0;
}
-void sub_8041E7C(void)
+void RejectEggFromDayCare(void)
{
- RemoveEggFromDayCare(&gSaveBlock1.daycareData);
+ RemoveEggFromDayCare(&gSaveBlock1.daycare);
}
-static void incense_effects(u16 *species, struct DayCareData *dayCareData)
+static void AlterEggSpeciesWithIncenseItem(u16 *species, struct DayCare *daycare)
{
- u16 momItem, dadItem;
+ u16 motherItem, fatherItem;
if (*species == SPECIES_WYNAUT || *species == SPECIES_AZURILL)
{
- momItem = GetBoxMonData(&dayCareData->mons[0], MON_DATA_HELD_ITEM);
- dadItem = GetBoxMonData(&dayCareData->mons[1], MON_DATA_HELD_ITEM);
- if (*species == SPECIES_WYNAUT && momItem != ITEM_LAX_INCENSE && dadItem != ITEM_LAX_INCENSE)
+ motherItem = GetBoxMonData(&daycare->mons[0], MON_DATA_HELD_ITEM);
+ fatherItem = GetBoxMonData(&daycare->mons[1], MON_DATA_HELD_ITEM);
+ if (*species == SPECIES_WYNAUT && motherItem != ITEM_LAX_INCENSE && fatherItem != ITEM_LAX_INCENSE)
{
*species = SPECIES_WOBBUFFET;
}
- if (*species == SPECIES_AZURILL && momItem != ITEM_SEA_INCENSE && dadItem != ITEM_SEA_INCENSE)
+
+ if (*species == SPECIES_AZURILL && motherItem != ITEM_SEA_INCENSE && fatherItem != ITEM_SEA_INCENSE)
{
*species = SPECIES_MARILL;
}
}
}
-static u16 sub_8041EEC(struct DayCareData *dayCareData, u8 *a1) // inherit_species_from_mom
+static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parentSlots)
{
u16 i;
u16 species[2];
u16 eggSpecies;
- u8 buffer;
- for (i=0; i<2; i++)
+
+ // Determine which of the daycare mons is the mother and father of the egg.
+ // The 0th index of the parentSlots array is considered the mother slot, and the
+ // 1st index is the father slot.
+ for (i = 0; i < 2; i++)
{
- species[i] = GetBoxMonData(&dayCareData->mons[i], MON_DATA_SPECIES);
+ species[i] = GetBoxMonData(&daycare->mons[i], MON_DATA_SPECIES);
if (species[i] == SPECIES_DITTO)
{
- a1[0] = i ^ 1;
- a1[1] = i;
+ parentSlots[0] = i ^ 1;
+ parentSlots[1] = i;
}
- else if (GetBoxMonGender(&dayCareData->mons[i]) == MON_FEMALE)
+ else if (GetBoxMonGender(&daycare->mons[i]) == MON_FEMALE)
{
- a1[0] = i;
- a1[1] = i ^ 1;
+ parentSlots[0] = i;
+ parentSlots[1] = i ^ 1;
}
}
- eggSpecies = sub_8041870(species[a1[0]]);
- if (eggSpecies == SPECIES_NIDORAN_F && dayCareData->misc.countersEtc.personalityLo & 0x8000)
+
+ eggSpecies = GetEggSpecies(species[parentSlots[0]]);
+ if (eggSpecies == SPECIES_NIDORAN_F && daycare->misc.countersEtc.pendingEggPersonality & 0x8000)
{
eggSpecies = SPECIES_NIDORAN_M;
}
- if (eggSpecies == SPECIES_ILLUMISE && dayCareData->misc.countersEtc.personalityLo & 0x8000)
+ if (eggSpecies == SPECIES_ILLUMISE && daycare->misc.countersEtc.pendingEggPersonality & 0x8000)
{
eggSpecies = SPECIES_VOLBEAT;
}
- if (species[a1[1]] == SPECIES_DITTO && GetBoxMonGender(&dayCareData->mons[a1[0]]) != MON_FEMALE)
+
+ // Make Ditto the "mother" slot if the other daycare mon is male.
+ if (species[parentSlots[1]] == SPECIES_DITTO && GetBoxMonGender(&daycare->mons[parentSlots[0]]) != MON_FEMALE)
{
- buffer = a1[1];
- a1[1] = a1[0];
- a1[0] = buffer;
+ u8 temp = parentSlots[1];
+ parentSlots[1] = parentSlots[0];
+ parentSlots[0] = temp;
}
+
return eggSpecies;
}
-static void sub_8041FC4(struct DayCareData *dayCareData) // give_egg
+static void _GiveEggFromDaycare(struct DayCare *daycare) // give_egg
{
struct Pokemon egg;
u16 species;
- u8 parents[2];
+ u8 parentSlots[2]; // 0th index is "mother" daycare slot, 1st is "father"
u8 isEgg;
- species = sub_8041EEC(dayCareData, parents);
- incense_effects(&species, dayCareData);
- sub_80420FC(&egg, species, dayCareData);
- InheritIVs(&egg, dayCareData);
- daycare_build_child_moveset(&egg, &dayCareData->mons[parents[1]], &dayCareData->mons[parents[0]]);
+
+ species = DetermineEggSpeciesAndParentSlots(daycare, parentSlots);
+ AlterEggSpeciesWithIncenseItem(&species, daycare);
+ SetInitialEggData(&egg, species, daycare);
+ InheritIVs(&egg, daycare);
+ BuildEggMoveset(&egg, &daycare->mons[parentSlots[1]], &daycare->mons[parentSlots[0]]);
isEgg = TRUE;
SetMonData(&egg, MON_DATA_IS_EGG, &isEgg);
gPlayerParty[5] = egg;
party_compaction();
CalculatePlayerPartyCount();
- RemoveEggFromDayCare(dayCareData);
+ RemoveEggFromDayCare(daycare);
}
-void sub_8042044(struct Pokemon *mon, u16 species, u8 overwriteMetLocation) // scr_create_egg
+void CreateEgg(struct Pokemon *mon, u16 species, bool8 setMetLocation)
{
u8 metLevel;
u16 ball;
u8 language;
u8 metLocation;
u8 isEgg;
+
CreateMon(mon, species, 5, 0x20, FALSE, 0, FALSE, 0);
metLevel = 0;
ball = ITEM_POKE_BALL;
language = LANGUAGE_JAPANESE;
- SetMonData(mon, MON_DATA_POKEBALL, (u8 *)&ball);
- SetMonData(mon, MON_DATA_NICKNAME, gUnknown_08209AD4);
+ SetMonData(mon, MON_DATA_POKEBALL, &ball);
+ SetMonData(mon, MON_DATA_NICKNAME, sJapaneseEggNickname);
SetMonData(mon, MON_DATA_FRIENDSHIP, &gBaseStats[species].eggCycles);
SetMonData(mon, MON_DATA_MET_LEVEL, &metLevel);
SetMonData(mon, MON_DATA_LANGUAGE, &language);
- if (overwriteMetLocation)
+ if (setMetLocation)
{
- metLocation = 0xfd;
+ metLocation = 253; // hot springs; see PokemonSummaryScreen_PrintEggTrainerMemo
SetMonData(mon, MON_DATA_MET_LOCATION, &metLocation);
}
+
isEgg = TRUE;
SetMonData(mon, MON_DATA_IS_EGG, &isEgg);
}
-static void sub_80420FC(struct Pokemon *mon, u16 species, struct DayCareData *dayCareData)
+static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare)
{
u32 personality;
u16 ball;
u8 metLevel;
u8 language;
- personality = dayCareData->misc.countersEtc.personalityLo | (Random() << 16);
+
+ personality = daycare->misc.countersEtc.pendingEggPersonality | (Random() << 16);
CreateMon(mon, species, 5, 0x20, TRUE, personality, FALSE, 0);
metLevel = 0;
ball = ITEM_POKE_BALL;
language = LANGUAGE_JAPANESE;
- SetMonData(mon, MON_DATA_POKEBALL, (u8 *)&ball);
- SetMonData(mon, MON_DATA_NICKNAME, gUnknown_08209AD4);
+ SetMonData(mon, MON_DATA_POKEBALL, &ball);
+ SetMonData(mon, MON_DATA_NICKNAME, sJapaneseEggNickname);
SetMonData(mon, MON_DATA_FRIENDSHIP, &gBaseStats[species].eggCycles);
SetMonData(mon, MON_DATA_MET_LEVEL, &metLevel);
SetMonData(mon, MON_DATA_LANGUAGE, &language);
}
-void sp0B8_daycare(void)
+void GiveEggFromDaycare(void)
{
- sub_8041FC4(&gSaveBlock1.daycareData);
+ _GiveEggFromDaycare(&gSaveBlock1.daycare);
}
#ifdef NONMATCHING
-static bool8 sub_80421B0(struct DayCareData *dayCareData)
+static bool8 _ShouldEggHatch(struct DayCare *daycare)
{
struct BoxPokemon *parent;
u32 i;
int v0;
int steps;
v0 = 0;
- for (i=0, parent=&dayCareData->mons[0]; i<2; parent++, i++)
+ for (i=0, parent=&daycare->mons[0]; i<2; parent++, i++)
{
if (GetBoxMonData(parent, MON_DATA_SANITY_BIT2, v0))
{
- dayCareData->misc.countersEtc.steps[i]++;
+ daycare->misc.countersEtc.steps[i]++;
v0++;
}
}
- if (dayCareData->misc.countersEtc.personalityLo == 0 && v0 == 2 && dayCareData->misc.extra.misc[4] == 0xff && daycare_relationship_score(dayCareData) > (u32)((u32)(Random() * 100) / 0xffff))
+ if (daycare->misc.countersEtc.pendingEggPersonality == 0 && v0 == 2 && daycare->misc.extra.misc[4] == 0xff && GetDaycareCompatibilityScore(daycare) > (u32)((u32)(Random() * 100) / 0xffff))
{
- sub_8041940();
+ TriggerPendingDaycareEgg();
}
- if ((++dayCareData->misc.countersEtc.unk_11a) == 0xff)
+ if ((++daycare->misc.countersEtc.eggCycleStepsRemaining) == 0xff)
{
for (i=0; i<gPlayerPartyCount; i++)
{
@@ -1030,7 +1112,7 @@ static bool8 sub_80421B0(struct DayCareData *dayCareData)
return TRUE;
}
steps--;
- SetMonData(&gPlayerParty[i], MON_DATA_FRIENDSHIP, (u8 *)&steps);
+ SetMonData(&gPlayerParty[i], MON_DATA_FRIENDSHIP, &steps);
}
}
}
@@ -1038,7 +1120,7 @@ static bool8 sub_80421B0(struct DayCareData *dayCareData)
}
#else
__attribute__((naked))
-static bool8 sub_80421B0(struct DayCareData *dayCareData)
+static bool8 _ShouldEggHatch(struct DayCare *daycare)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tsub sp, 0x8\n"
@@ -1082,7 +1164,7 @@ static bool8 sub_80421B0(struct DayCareData *dayCareData)
"\tcmp r0, 0xFF\n"
"\tbne _08042226\n"
"\tadds r0, r7, 0\n"
- "\tbl daycare_relationship_score\n"
+ "\tbl GetDaycareCompatibilityScore\n"
"\tadds r4, r0, 0\n"
"\tlsls r4, 24\n"
"\tlsrs r4, 24\n"
@@ -1095,7 +1177,7 @@ static bool8 sub_80421B0(struct DayCareData *dayCareData)
"\tbl __udivsi3\n"
"\tcmp r4, r0\n"
"\tbls _08042226\n"
- "\tbl sub_8041940\n"
+ "\tbl TriggerPendingDaycareEgg\n"
"_08042226:\n"
"\tmovs r0, 0x8D\n"
"\tlsls r0, 1\n"
@@ -1161,68 +1243,81 @@ static bool8 sub_80421B0(struct DayCareData *dayCareData)
}
#endif
-bool8 sub_80422A0(void)
+bool8 ShouldEggHatch(void)
{
- return sub_80421B0(&gSaveBlock1.daycareData);
+ return _ShouldEggHatch(&gSaveBlock1.daycare);
}
-static bool8 sub_80422B4(struct DayCareData *dayCareData)
+static bool8 IsEggPending(struct DayCare *daycare)
{
- return (u32)((-dayCareData->misc.countersEtc.personalityLo) | dayCareData->misc.countersEtc.personalityLo) >> 31;
+ return (u32)((-daycare->misc.countersEtc.pendingEggPersonality) | daycare->misc.countersEtc.pendingEggPersonality) >> 31;
}
-static void sub_80422C4(struct DayCareData *dayCareData)
+static void _GetDaycareMonNicknames(struct DayCare *daycare)
{
u8 language;
- if (GetBoxMonData(&dayCareData->mons[0], MON_DATA_SPECIES) != 0)
+ if (GetBoxMonData(&daycare->mons[0], MON_DATA_SPECIES) != 0)
{
- GetBoxMonNick(&dayCareData->mons[0], gStringVar1);
- language = GetBoxMonData(&dayCareData->mons[0], MON_DATA_LANGUAGE);
- GetBoxMonData(&dayCareData->mons[0], MON_DATA_OT_NAME, gStringVar3);
+ GetBoxMonNick(&daycare->mons[0], gStringVar1);
+ language = GetBoxMonData(&daycare->mons[0], MON_DATA_LANGUAGE);
+ GetBoxMonData(&daycare->mons[0], MON_DATA_OT_NAME, gStringVar3);
ConvertInternationalString(gStringVar3, language);
}
- if (GetBoxMonData(&dayCareData->mons[1], MON_DATA_SPECIES) != 0)
+
+ if (GetBoxMonData(&daycare->mons[1], MON_DATA_SPECIES) != 0)
{
- GetBoxMonNick(&dayCareData->mons[1], gStringVar2);
+ GetBoxMonNick(&daycare->mons[1], gStringVar2);
}
}
-u16 sub_8042328(void)
+u16 GetSelectedDaycareMonNickname(void)
{
GetBoxMonNick(&gPlayerParty[gLastFieldPokeMenuOpened].box, gStringVar1);
return GetBoxMonData(&gPlayerParty[gLastFieldPokeMenuOpened].box, MON_DATA_SPECIES);
}
-void sp0B5_daycare(void)
+void GetDaycareMonNicknames(void)
{
- sub_80422C4(&gSaveBlock1.daycareData);
+ _GetDaycareMonNicknames(&gSaveBlock1.daycare);
}
-u8 sp0B6_daycare(void)
+u8 GetDaycareState(void)
{
- u8 monCount;
- if (sub_80422B4(&gSaveBlock1.daycareData))
+ // The daycare can be in 4 possible states:
+ // 0: default state--no deposited mons, no egg
+ // 1: there is an egg waiting for the player to pick it up
+ // 2: there is a single pokemon in the daycare
+ // 3: there are two pokemon in the daycare, no egg
+
+ u8 numMons;
+ if (IsEggPending(&gSaveBlock1.daycare))
{
+ // There is an Egg waiting for the player.
return 1;
}
- monCount = Daycare_CountPokemon(&gSaveBlock1.daycareData);
- if (monCount != 0)
+
+ numMons = CountPokemonInDaycare(&gSaveBlock1.daycare);
+ if (numMons != 0)
{
- return monCount + 1;
+ return numMons + 1;
}
+
return 0;
}
#ifdef NONMATCHING
static
#endif
-bool8 sub_80423A8(u16 *a, u16 *b)
+bool8 EggGroupsOverlap(u16 *eggGroups1, u16 *eggGroups2)
{
- int i, j;
+ // Determine if the two given egg group lists contain any of the
+ // same egg groups.
+ s32 i, j;
u16 *v0, *v1, v2;
- for (i=0, v0=a; i<2; v0++, i++)
+
+ for (i = 0, v0 = eggGroups1; i < 2; v0++, i++)
{
- for (j=0, v2=*v0, v1=b; j<2; v1++, j++)
+ for (j = 0, v2 = *v0, v1 = eggGroups2; j < 2; v1++, j++)
{
if (v2 == *v1)
{
@@ -1230,11 +1325,12 @@ bool8 sub_80423A8(u16 *a, u16 *b)
}
}
}
+
return FALSE;
}
#ifdef NONMATCHING
-static u8 daycare_relationship_score(struct DayCareData *dayCareData)
+static u8 GetDaycareCompatibilityScore(struct DayCare *daycare)
{
u16 species[2];
u32 otIds[2];
@@ -1247,7 +1343,8 @@ static u8 daycare_relationship_score(struct DayCareData *dayCareData)
u16 *egg1;
u16 *egg2;
struct BoxPokemon *parent;
- for (i=0, parent=&dayCareData->mons[0], spc=species, ids=otIds, gnd=genders, egg1=&eggGroups[0][0], egg2=&eggGroups[0][1]; i<2; spc++, egg1+=2, egg2+=2, parent++, i++)
+
+ for (i=0, parent=&daycare->mons[0], spc=species, ids=otIds, gnd=genders, egg1=&eggGroups[0][0], egg2=&eggGroups[0][1]; i<2; spc++, egg1+=2, egg2+=2, parent++, i++)
{
*spc = GetBoxMonData(parent, MON_DATA_SPECIES);
*ids++ = GetBoxMonData(parent, MON_DATA_OT_ID);
@@ -1279,7 +1376,7 @@ static u8 daycare_relationship_score(struct DayCareData *dayCareData)
{
return 0;
}
- if (!sub_80423A8(eggGroups[0], eggGroups[1]))
+ if (!EggGroupsOverlap(eggGroups[0], eggGroups[1]))
{
return 0;
}
@@ -1302,7 +1399,7 @@ static u8 daycare_relationship_score(struct DayCareData *dayCareData)
}
#else
__attribute__((naked))
-static u8 daycare_relationship_score(struct DayCareData *dayCareData)
+static u8 GetDaycareCompatibilityScore(struct DayCare *daycare)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tmov r7, r10\n"
@@ -1414,7 +1511,7 @@ static u8 daycare_relationship_score(struct DayCareData *dayCareData)
"\tbeq _08042484\n"
"\tadd r1, sp, 0x4\n"
"\tmov r0, sp\n"
- "\tbl sub_80423A8\n"
+ "\tbl EggGroupsOverlap\n"
"\tlsls r0, 24\n"
"\tcmp r0, 0\n"
"\tbeq _08042484\n"
@@ -1453,17 +1550,17 @@ static u8 daycare_relationship_score(struct DayCareData *dayCareData)
}
#endif
-u8 daycare_relationship_score_from_savegame(void)
+u8 GetDaycareCompatibilityScoreFromSave(void)
{
- return daycare_relationship_score(&gSaveBlock1.daycareData);
+ return GetDaycareCompatibilityScore(&gSaveBlock1.daycare);
}
-void sp0B9_daycare_relationship_comment(void)
+void SetDaycareCompatibilityString(void)
{
u8 whichString;
u8 relationshipScore;
- relationshipScore = daycare_relationship_score_from_savegame();
+ relationshipScore = GetDaycareCompatibilityScoreFromSave();
whichString = 0;
if (relationshipScore == 0)
whichString = 3;
@@ -1473,7 +1570,8 @@ void sp0B9_daycare_relationship_comment(void)
whichString = 1;
if (relationshipScore == 70)
whichString = 0;
- StringCopy(gStringVar4, gUnknown_08209AC4[whichString]);
+
+ StringCopy(gStringVar4, sCompatibilityMessages[whichString]);
}
#ifdef NONMATCHING
@@ -1485,12 +1583,12 @@ bool8 NameHasGenderSymbol(const u8 *name, u8 genderRatio)
// This portion is nonmatching
flags[1] = 0;
flags[0] = 0;
- for (i = 0; name[i] != EOS; i ++)
+ for (i = 0; name[i] != EOS; i++)
// End nonmatching portion
{
- if (name[i] == CHAR_MALE) flags[0] ++;
- if (name[i] == CHAR_FEMALE) flags[1] ++;
+ if (name[i] == CHAR_MALE) flags[0]++;
+ if (name[i] == CHAR_FEMALE) flags[1]++;
}
if (genderRatio == MON_MALE && flags[0] && !flags[1]) return TRUE;
if (genderRatio == MON_FEMALE && flags[1] && !flags[0]) return TRUE;
@@ -1580,45 +1678,48 @@ static u8 *AppendGenderSymbol(u8 *name, u8 gender)
if (!NameHasGenderSymbol(name, MON_MALE))
return StringAppend(name, gOtherText_MaleSymbol3);
}
-
else if (gender == MON_FEMALE)
{
if (!NameHasGenderSymbol(name, MON_FEMALE))
return StringAppend(name, gOtherText_FemaleSymbol3);
}
+
return StringAppend(name, gOtherText_GenderlessSymbol);
}
-static u8 *MonAppendGenderSymbol(u8 *name, struct BoxPokemon *boxMon)
+static u8 *AppendMonGenderSymbol(u8 *name, struct BoxPokemon *boxMon)
{
return AppendGenderSymbol(name, GetBoxMonGender(boxMon));
}
-static void DaycareLevelMenuGetText(struct DayCareData *dayCareData, u8 *dest)
+static void GetDaycareLevelMenuText(struct DayCare *daycare, u8 *dest)
{
- u8 buffers[2][20];
+ u8 monNames[2][20];
u8 i;
+
*dest = EOS;
- for (i = 0; i < 2; i ++)
+ for (i = 0; i < 2; i++)
{
- GetBoxMonNick(&dayCareData->mons[i], buffers[i]);
- MonAppendGenderSymbol(buffers[i], &dayCareData->mons[i]);
+ GetBoxMonNick(&daycare->mons[i], monNames[i]);
+ AppendMonGenderSymbol(monNames[i], &daycare->mons[i]);
}
- StringCopy(dest, buffers[0]);
+
+ StringCopy(dest, monNames[0]);
StringAppend(dest, gOtherText_NewLine2);
- StringAppend(dest, buffers[1]);
+ StringAppend(dest, monNames[1]);
StringAppend(dest, gOtherText_NewLine2);
StringAppend(dest, gOtherText_CancelAndLv);
}
-static void DaycareLevelMenuGetLevelText(struct DayCareData *dayCareData, u8 *dest)
+static void GetDaycareLevelMenuLevelText(struct DayCare *daycare, u8 *dest)
{
u8 i;
u8 level;
+
*dest = EOS;
- for (i = 0; i < 2; i ++)
+ for (i = 0; i < 2; i++)
{
- level = Daycare_GetLevelAfterSteps(&dayCareData->mons[i], dayCareData->misc.countersEtc.steps[i]);
+ level = GetLevelAfterDaycareSteps(&daycare->mons[i], daycare->misc.countersEtc.steps[i]);
dest[0] = 0x34;
dest[1] = 0xFC;
dest[2] = 0x14;
@@ -1629,10 +1730,11 @@ static void DaycareLevelMenuGetLevelText(struct DayCareData *dayCareData, u8 *de
dest[2] = 0x00;
dest = StringCopy(dest + 3, gOtherText_NewLine2);
}
+
*dest = EOS;
}
-static void DaycareLevelMenuProcessKeyInput(u8 taskId)
+static void HandleDaycareLevelMenuInput(u8 taskId)
{
if (gMain.newKeys & DPAD_UP)
{
@@ -1647,7 +1749,7 @@ static void DaycareLevelMenuProcessKeyInput(u8 taskId)
{
if (gTasks[taskId].data[0] != 2)
{
- gTasks[taskId].data[0] ++;
+ gTasks[taskId].data[0]++;
MoveMenuCursor(+1);
PlaySE(SE_SELECT);
}
@@ -1656,7 +1758,7 @@ static void DaycareLevelMenuProcessKeyInput(u8 taskId)
{
HandleDestroyMenuCursors();
PlaySE(SE_SELECT);
- gLastFieldPokeMenuOpened = gScriptResult = gTasks[taskId].data[0];
+ gLastFieldPokeMenuOpened = gSpecialVar_Result = gTasks[taskId].data[0];
DestroyTask(taskId);
MenuZeroFillWindowRect(15, 6, 29, 13);
EnableBothScriptContexts();
@@ -1664,7 +1766,7 @@ static void DaycareLevelMenuProcessKeyInput(u8 taskId)
else if (gMain.newKeys & B_BUTTON)
{
HandleDestroyMenuCursors();
- gLastFieldPokeMenuOpened = gScriptResult = 2;
+ gLastFieldPokeMenuOpened = gSpecialVar_Result = 2;
DestroyTask(taskId);
MenuZeroFillWindowRect(15, 6, 29, 13);
EnableBothScriptContexts();
@@ -1675,12 +1777,12 @@ void ShowDaycareLevelMenu(void)
{
u8 buffer[100];
MenuDrawTextWindow(15, 6, 29, 13);
- DaycareLevelMenuGetText(&gSaveBlock1.daycareData, buffer);
+ GetDaycareLevelMenuText(&gSaveBlock1.daycare, buffer);
MenuPrint(buffer, 16, 7);
- DaycareLevelMenuGetLevelText(&gSaveBlock1.daycareData, buffer);
+ GetDaycareLevelMenuLevelText(&gSaveBlock1.daycare, buffer);
MenuPrint_PixelCoords(buffer, 0xce, 0x38, TRUE);
InitMenu(0, 16, 7, 3, 0, 13);
- CreateTask(DaycareLevelMenuProcessKeyInput, 3);
+ CreateTask(HandleDaycareLevelMenuInput, 3);
}
void ChooseSendDaycareMon(void)
diff --git a/src/field/decoration.c b/src/field/decoration.c
index e067191e9..8b774afc3 100644
--- a/src/field/decoration.c
+++ b/src/field/decoration.c
@@ -1,9 +1,10 @@
#include "global.h"
+#include "constants/decorations.h"
#include "main.h"
-#include "map_object_constants.h"
+#include "constants/map_objects.h"
#include "overworld.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "string_util.h"
#include "menu.h"
#include "menu_helpers.h"
@@ -18,6 +19,7 @@
#include "event_data.h"
#include "field_weather.h"
#include "decoration.h"
+#include "ewram.h"
EWRAM_DATA u8 *gUnknown_020388D0 = NULL;
EWRAM_DATA u8 gUnknown_020388D4 = 0;
@@ -1494,7 +1496,7 @@ const union AnimCmd *const gSpriteAnimTable_83EC930[] = {
};
const struct SpriteFrameImage gSpriteImageTable_83EC934[] = {
- {.data = (u8 *)&gUnknown_02038900.image, .size = sizeof gUnknown_02038900.image}
+ {.data = gUnknown_02038900.image, .size = sizeof(gUnknown_02038900.image)}
};
const struct SpriteTemplate gSpriteTemplate_83EC93C = {
@@ -1555,7 +1557,7 @@ const struct SpriteTemplate gSpriteTemplate_83ECA88 = {
const struct YesNoFuncTable gUnknown_083ECAA0 = {.yesFunc = sub_8101848, .noFunc = sub_80FED3C};
-u8 *const unref_label_083ECAA8[] = {ewram};
+u8 *const unref_label_083ECAA8[] = {gSharedMem};
// text
@@ -2320,12 +2322,12 @@ void sub_80FF474(void)
u8 j;
for (i=0; i<14; i++)
{
- if (FlagGet(i + 0xae) == 1)
+ if (FlagGet(i + FLAG_DECORATION_2) == 1)
{
- FlagClear(i + 0xae);
+ FlagClear(i + FLAG_DECORATION_2);
for (j=0; j<gMapHeader.events->mapObjectCount; j++)
{
- if (gMapHeader.events->mapObjects[j].flagId == i + 0xae)
+ if (gMapHeader.events->mapObjects[j].flagId == i + FLAG_DECORATION_2)
{
break;
}
@@ -2438,11 +2440,11 @@ void AddDecorationIconObjectFromFieldObject(struct UnkStruct_02038900 * unk_0203
sub_8100874(unk_02038900);
sub_810070C(unk_02038900->palette, ((u16 *)gMapHeader.mapData->secondaryTileset->metatiles + 8 * unk_02038900->decoration->tiles[0])[7] >> 12);
LoadSpritePalette(&gUnknown_083EC954);
- gUnknown_020391A8 = gSprites[gUnknown_03004880.unk4].data0;
+ gUnknown_020391A8 = gSprites[gUnknown_03004880.unk4].data[0];
gUnknown_03004880.unk4 = CreateSprite(&gSpriteTemplate_83EC93C, gUnknown_083EC900[unk_02038900->decoration->shape].x, gUnknown_083EC900[unk_02038900->decoration->shape].y, 0);
} else
{
- gUnknown_020391A8 = gSprites[gUnknown_03004880.unk4].data0;
+ gUnknown_020391A8 = gSprites[gUnknown_03004880.unk4].data[0];
gUnknown_03004880.unk4 = AddPseudoFieldObject(unk_02038900->decoration->tiles[0], sub_81009A8, gUnknown_083EC900[unk_02038900->decoration->shape].x, gUnknown_083EC900[unk_02038900->decoration->shape].y, 1);
gSprites[gUnknown_03004880.unk4].oam.priority = 1;
}
@@ -2519,8 +2521,8 @@ void sub_80FF960(u8 taskId)
void sub_80FFAB0(u8 taskId)
{
gTasks[taskId].data[10] = 0;
- gSprites[gUnknown_020391A8].data7 = 1;
- gSprites[gUnknown_020391A9].data7 = 1;
+ gSprites[gUnknown_020391A8].data[7] = 1;
+ gSprites[gUnknown_020391A9].data[7] = 1;
sub_810045C();
sub_8100038(taskId);
}
@@ -2528,8 +2530,8 @@ void sub_80FFAB0(u8 taskId)
void sub_80FFB08(u8 taskId)
{
gTasks[taskId].data[10] = 0;
- gSprites[gUnknown_020391A8].data7 = 1;
- gSprites[gUnknown_020391A9].data7 = 1;
+ gSprites[gUnknown_020391A8].data[7] = 1;
+ gSprites[gUnknown_020391A9].data[7] = 1;
sub_810045C();
DisplayItemMessageOnField(taskId, gSecretBaseText_CancelDecorating, sub_8100248, 0);
}
@@ -3399,13 +3401,13 @@ bool8 sub_8100430(void)
void sub_810045C(void)
{
gUnknown_020391AA = 0;
- gSprites[gUnknown_020391A8].data2 = 0;
- gSprites[gUnknown_020391A8].data3 = 0;
+ gSprites[gUnknown_020391A8].data[2] = 0;
+ gSprites[gUnknown_020391A8].data[3] = 0;
}
void sub_8100494(u8 taskId)
{
- if (!gSprites[gUnknown_020391A8].data4)
+ if (!gSprites[gUnknown_020391A8].data[4])
{
if (gTasks[taskId].data[10] == 1)
{
@@ -3419,29 +3421,29 @@ void sub_8100494(u8 taskId)
if ((gMain.heldKeys & DPAD_ANY) == DPAD_UP)
{
gUnknown_020391AA = DIR_SOUTH;
- gSprites[gUnknown_020391A8].data2 = 0;
- gSprites[gUnknown_020391A8].data3 = -2;
+ gSprites[gUnknown_020391A8].data[2] = 0;
+ gSprites[gUnknown_020391A8].data[3] = -2;
gTasks[taskId].data[1]--;
}
if ((gMain.heldKeys & DPAD_ANY) == DPAD_DOWN)
{
gUnknown_020391AA = DIR_NORTH;
- gSprites[gUnknown_020391A8].data2 = 0;
- gSprites[gUnknown_020391A8].data3 = 2;
+ gSprites[gUnknown_020391A8].data[2] = 0;
+ gSprites[gUnknown_020391A8].data[3] = 2;
gTasks[taskId].data[1]++;
}
if ((gMain.heldKeys & DPAD_ANY) == DPAD_LEFT)
{
gUnknown_020391AA = DIR_WEST;
- gSprites[gUnknown_020391A8].data2 = -2;
- gSprites[gUnknown_020391A8].data3 = 0;
+ gSprites[gUnknown_020391A8].data[2] = -2;
+ gSprites[gUnknown_020391A8].data[3] = 0;
gTasks[taskId].data[0]--;
}
if ((gMain.heldKeys & DPAD_ANY) == DPAD_RIGHT)
{
gUnknown_020391AA = DIR_EAST;
- gSprites[gUnknown_020391A8].data2 = 2;
- gSprites[gUnknown_020391A8].data3 = 0;
+ gSprites[gUnknown_020391A8].data[2] = 2;
+ gSprites[gUnknown_020391A8].data[3] = 0;
gTasks[taskId].data[0]++;
}
if (!sub_8100430() || !sub_810038C(taskId))
@@ -3451,8 +3453,8 @@ void sub_8100494(u8 taskId)
}
if (gUnknown_020391AA)
{
- gSprites[gUnknown_020391A8].data4++;
- gSprites[gUnknown_020391A8].data4 &= 7;
+ gSprites[gUnknown_020391A8].data[4]++;
+ gSprites[gUnknown_020391A8].data[4] &= 7;
}
if (!gTasks[taskId].data[10])
{
@@ -3470,7 +3472,7 @@ void sub_8100494(u8 taskId)
void sub_810065C(u8 taskId)
{
MenuZeroFillWindowRect(0, 0, 29, 19);
- gSprites[gUnknown_020391A8].data7 = 0;
+ gSprites[gUnknown_020391A8].data[7] = 0;
gTasks[taskId].data[10] = 0;
gTasks[taskId].func = sub_8100494;
}
@@ -3595,27 +3597,27 @@ void sub_8100930(u8 decoShape)
void sub_81009A8(struct Sprite *sprite)
{
- sprite->data2 = 0;
- sprite->data3 = 0;
- sprite->data4 = 0;
- sprite->data5 = 0;
- sprite->data6 = 0;
- sprite->data7 = 0;
+ sprite->data[2] = 0;
+ sprite->data[3] = 0;
+ sprite->data[4] = 0;
+ sprite->data[5] = 0;
+ sprite->data[6] = 0;
+ sprite->data[7] = 0;
sprite->callback = sub_81009C0;
}
void sub_81009C0(struct Sprite *sprite)
{
- if (sprite->data7 == 0)
+ if (sprite->data[7] == 0)
{
- if (sprite->data6 < 15)
+ if (sprite->data[6] < 15)
{
sprite->invisible = 0;
} else
{
sprite->invisible = 1;
}
- sprite->data6 = (sprite->data6 + 1) & 0x1f;
+ sprite->data[6] = (sprite->data[6] + 1) & 0x1f;
} else
{
sprite->invisible = 0;
@@ -3645,10 +3647,10 @@ void sub_8100A7C(void)
{
u16 i;
gSpecialVar_0x8005 = 0;
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
if (gSpecialVar_0x8004 == gUnknown_02039234)
{
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
} else if (gDecorations[ewram_1f000.items[gUnknown_020391B4[gSpecialVar_0x8004].decorId]].permission == DECORPERM_SOLID_MAT)
{
gSpecialVar_0x8005 = gUnknown_020391B4[gSpecialVar_0x8004].flagId;
@@ -3759,7 +3761,7 @@ void SetUpPuttingAwayDecorationPlayerAvatar(void)
{
player_get_direction_lower_nybble();
MenuZeroFillWindowRect(0, 0, 29, 19);
- gUnknown_020391A8 = gSprites[gUnknown_03004880.unk4].data0;
+ gUnknown_020391A8 = gSprites[gUnknown_03004880.unk4].data[0];
sub_81016C8();
gUnknown_03004880.unk4 = CreateSprite(&gSpriteTemplate_83ECA88, 0x78, 0x50, 0);
if (gSaveBlock2.playerGender == MALE)
@@ -3809,7 +3811,7 @@ void sub_8100E70(u8 taskId)
void sub_8100EEC(u8 taskId)
{
MenuZeroFillWindowRect(0, 0, 29, 19);
- gSprites[gUnknown_020391A8].data7 = 0;
+ gSprites[gUnknown_020391A8].data[7] = 0;
gSprites[gUnknown_020391A8].invisible = 0;
gSprites[gUnknown_020391A8].callback = sub_8101698;
gSprites[gUnknown_020391A9].pos1.x = 0x88;
@@ -4197,8 +4199,8 @@ void sub_8101678(void)
void sub_8101698(struct Sprite *sprite)
{
- sprite->data0 = (sprite->data0 + 1) & 0x1f;
- if (sprite->data0 >= 16)
+ sprite->data[0] = (sprite->data[0] + 1) & 0x1f;
+ if (sprite->data[0] >= 16)
{
sprite->invisible = TRUE;
} else
diff --git a/src/field/decoration_inventory.c b/src/field/decoration_inventory.c
index 083cb260c..dd0e972aa 100644
--- a/src/field/decoration_inventory.c
+++ b/src/field/decoration_inventory.c
@@ -1,14 +1,11 @@
-//
-
-//
-
#include "global.h"
+#include "constants/decorations.h"
#include "sprite.h"
#include "task.h"
#include "decoration.h"
#include "decoration_inventory.h"
-#define DECOR_INV(ptr) {.items = (u8 *)&ptr, .size = sizeof ptr}
+#define DECOR_INV(ptr) {.items = ptr, .size = sizeof ptr}
struct DecorationInventory const gDecorationInventories[] = {
DECOR_INV(gSaveBlock1.decorDesk),
diff --git a/src/field/dewford_trend.c b/src/field/dewford_trend.c
index aaf4dd66a..b67f3a2bd 100644
--- a/src/field/dewford_trend.c
+++ b/src/field/dewford_trend.c
@@ -1,14 +1,14 @@
#include "global.h"
#include "dewford_trend.h"
#include "easy_chat.h"
+#include "constants/easy_chat.h"
#include "event_data.h"
#include "link.h"
-#include "rng.h"
+#include "random.h"
#include "text.h"
+#include "ewram.h"
-extern u8 unk_2000000[];
-
-extern u16 gScriptResult;
+extern u16 gSpecialVar_Result;
extern u16 gSpecialVar_0x8004;
static void sub_80FA46C(struct EasyChatPair *s, u16 b, u8 c);
@@ -101,10 +101,10 @@ bool8 sub_80FA364(u16 *a)
if (!SB1ContainsWords(a))
{
- if (!FlagGet(SYS_POPWORD_INPUT))
+ if (!FlagGet(FLAG_SYS_POPWORD_INPUT))
{
- FlagSet(SYS_POPWORD_INPUT);
- if (!FlagGet(SYS_MIX_RECORD))
+ FlagSet(FLAG_SYS_POPWORD_INPUT);
+ if (!FlagGet(FLAG_SYS_MIX_RECORD))
{
gSaveBlock1.easyChatPairs[0].words[0] = a[0];
gSaveBlock1.easyChatPairs[0].words[1] = a[1];
@@ -219,12 +219,12 @@ void sub_80FA5E4(void)
if (!gSaveBlock1.easyChatPairs[0].unk1_6 && gSaveBlock1.easyChatPairs[1].unk1_6)
result = 1;
}
- gScriptResult = result;
+ gSpecialVar_Result = result;
}
void sub_80FA648(void)
{
- gScriptResult = (gSaveBlock1.easyChatPairs[0].words[0] + gSaveBlock1.easyChatPairs[0].words[1]) & 7;
+ gSpecialVar_Result = (gSaveBlock1.easyChatPairs[0].words[0] + gSaveBlock1.easyChatPairs[0].words[1]) & 7;
}
static bool8 sub_80FA670(struct EasyChatPair *a, struct EasyChatPair *b, u8 c)
diff --git a/src/field/easy_chat.c b/src/field/easy_chat.c
index 6014b3d14..1dce5863e 100644
--- a/src/field/easy_chat.c
+++ b/src/field/easy_chat.c
@@ -1,10 +1,11 @@
#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 "rng.h"
+#include "random.h"
#include "string_util.h"
#include "strings.h"
#include "strings2.h"
@@ -161,7 +162,7 @@ u16 unref_sub_80EB5E0(u16 arg0)
{
case EC_GROUP_POKEMON: // 0
case EC_GROUP_POKEMON_2: // 21
- chars = (u8 *) gSpeciesNames[word];
+ chars = gSpeciesNames[word];
break;
case EC_GROUP_MOVE_1: // 18
case EC_GROUP_MOVE_2: // 19
@@ -278,13 +279,13 @@ void sub_80EB7C4(void)
switch (gSpecialVar_0x8004)
{
case 0:
- words = gSaveBlock1.unk2B1C;
+ words = gSaveBlock1.easyChats.unk2B1C;
arg1 = 2;
arg2 = 2;
break;
case 1:
- words = gSaveBlock1.unk2B28;
- if (sub_80EB680(gSaveBlock1.unk2B28, 3, 2, 20))
+ words = gSaveBlock1.easyChats.unk2B28;
+ if (sub_80EB680(gSaveBlock1.easyChats.unk2B28, 3, 2, 20))
{
arg1 = 2;
arg2 = 3;
@@ -296,12 +297,12 @@ void sub_80EB7C4(void)
}
break;
case 2:
- words = gSaveBlock1.unk2B34;
+ words = gSaveBlock1.easyChats.unk2B34;
arg1 = 3;
arg2 = 2;
break;
case 3:
- words = gSaveBlock1.unk2B40;
+ words = gSaveBlock1.easyChats.unk2B40;
arg1 = 3;
arg2 = 2;
break;
diff --git a/src/field/event_data.c b/src/field/event_data.c
index 43d49c417..587da8138 100644
--- a/src/field/event_data.c
+++ b/src/field/event_data.c
@@ -3,7 +3,7 @@
#include "pokedex.h"
#define TEMP_FLAGS_SIZE 0x4
-#define TEMP_UPPER_FLAGS_SIZE 0x8
+#define DAILY_FLAGS_SIZE 0x8
#define TEMP_VARS_SIZE 0x20
EWRAM_DATA u16 gSpecialVar_0x8000 = 0;
@@ -18,9 +18,9 @@ EWRAM_DATA u16 gSpecialVar_0x8008 = 0;
EWRAM_DATA u16 gSpecialVar_0x8009 = 0;
EWRAM_DATA u16 gSpecialVar_0x800A = 0;
EWRAM_DATA u16 gSpecialVar_0x800B = 0;
-EWRAM_DATA u16 gScriptResult = 0;
-EWRAM_DATA u16 gScriptLastTalked = 0;
-EWRAM_DATA u16 gScriptFacing = 0;
+EWRAM_DATA u16 gSpecialVar_Result = 0;
+EWRAM_DATA u16 gSpecialVar_LastTalked = 0;
+EWRAM_DATA u16 gSpecialVar_Facing = 0;
EWRAM_DATA u8 gUnknown_0202E8E2[16] = {0};
extern u16 *gSpecialVars[];
@@ -36,16 +36,16 @@ void ClearTempFieldEventData(void)
{
memset(gSaveBlock1.flags, 0, TEMP_FLAGS_SIZE);
memset(gSaveBlock1.vars, 0, TEMP_VARS_SIZE);
- FlagClear(SYS_ENC_UP_ITEM);
- FlagClear(SYS_ENC_DOWN_ITEM);
- FlagClear(SYS_USE_STRENGTH);
- FlagClear(SYS_CTRL_OBJ_DELETE);
+ FlagClear(FLAG_SYS_ENC_UP_ITEM);
+ FlagClear(FLAG_SYS_ENC_DOWN_ITEM);
+ FlagClear(FLAG_SYS_USE_STRENGTH);
+ FlagClear(FLAG_SYS_CTRL_OBJ_DELETE);
}
// probably had different flag splits at one point.
-void ClearUpperFlags(void)
+void ClearDailyFlags(void)
{
- memset(gSaveBlock1.flags + 0x118, 0, TEMP_UPPER_FLAGS_SIZE);
+ memset(gSaveBlock1.flags + (DAILY_FLAGS_START / 8), 0, DAILY_FLAGS_SIZE);
}
void DisableNationalPokedex(void)
@@ -53,7 +53,7 @@ void DisableNationalPokedex(void)
u16 *nationalDexVar = GetVarPointer(VAR_NATIONAL_DEX);
gSaveBlock2.pokedex.nationalMagic = 0;
*nationalDexVar = 0;
- FlagClear(SYS_NATIONAL_DEX);
+ FlagClear(FLAG_SYS_NATIONAL_DEX);
}
void EnableNationalPokedex(void)
@@ -61,7 +61,7 @@ void EnableNationalPokedex(void)
u16 *nationalDexVar = GetVarPointer(VAR_NATIONAL_DEX);
gSaveBlock2.pokedex.nationalMagic = 0xDA;
*nationalDexVar = 0x302;
- FlagSet(SYS_NATIONAL_DEX);
+ FlagSet(FLAG_SYS_NATIONAL_DEX);
gSaveBlock2.pokedex.unknown1 = 1;
gSaveBlock2.pokedex.order = 0;
sub_808C0A0();
@@ -69,7 +69,7 @@ void EnableNationalPokedex(void)
bool32 IsNationalPokedexEnabled(void)
{
- if (gSaveBlock2.pokedex.nationalMagic == 0xDA && VarGet(VAR_NATIONAL_DEX) == 0x302 && FlagGet(SYS_NATIONAL_DEX))
+ if (gSaveBlock2.pokedex.nationalMagic == 0xDA && VarGet(VAR_NATIONAL_DEX) == 0x302 && FlagGet(FLAG_SYS_NATIONAL_DEX))
return TRUE;
else
return FALSE;
@@ -77,34 +77,34 @@ bool32 IsNationalPokedexEnabled(void)
void DisableMysteryGift(void)
{
- FlagClear(SYS_EXDATA_ENABLE);
+ FlagClear(FLAG_SYS_EXDATA_ENABLE);
}
void EnableMysteryGift(void)
{
- FlagSet(SYS_EXDATA_ENABLE);
+ FlagSet(FLAG_SYS_EXDATA_ENABLE);
}
bool32 IsMysteryGiftEnabled(void)
{
- return FlagGet(SYS_EXDATA_ENABLE);
+ return FlagGet(FLAG_SYS_EXDATA_ENABLE);
}
void DisableResetRTC(void)
{
VarSet(VAR_RESET_RTC_ENABLE, 0);
- FlagClear(SYS_RESET_RTC_ENABLE);
+ FlagClear(FLAG_SYS_RESET_RTC_ENABLE);
}
void EnableResetRTC(void)
{
VarSet(VAR_RESET_RTC_ENABLE, 0x920);
- FlagSet(SYS_RESET_RTC_ENABLE);
+ FlagSet(FLAG_SYS_RESET_RTC_ENABLE);
}
bool32 CanResetRTC(void)
{
- if (FlagGet(SYS_RESET_RTC_ENABLE) && VarGet(VAR_RESET_RTC_ENABLE) == 0x920)
+ if (FlagGet(FLAG_SYS_RESET_RTC_ENABLE) && VarGet(VAR_RESET_RTC_ENABLE) == 0x920)
return TRUE;
else
return FALSE;
diff --git a/src/field/field_camera.c b/src/field/field_camera.c
index db51cf054..8384ad8d1 100644
--- a/src/field/field_camera.c
+++ b/src/field/field_camera.c
@@ -7,7 +7,7 @@
#include "sprite.h"
#include "text.h"
-EWRAM_DATA u8 gUnknown_0202E854 = 0;
+EWRAM_DATA bool8 gUnusedBikeCameraAheadPanback = FALSE;
struct UnknownStruct
{
@@ -322,8 +322,8 @@ static void CameraUpdateCallback(struct CameraSomething *a)
{
if (a->unk4 != 0)
{
- a->unk8 = gSprites[a->unk4].data2;
- a->unkC = gSprites[a->unk4].data3;
+ a->unk8 = gSprites[a->unk4].data[2];
+ a->unkC = gSprites[a->unk4].data[3];
}
}
@@ -455,13 +455,14 @@ static void CameraPanningCB_PanAhead(void)
{
u8 var;
- if (gUnknown_0202E854 == 0)
+ if (gUnusedBikeCameraAheadPanback == FALSE)
{
InstallCameraPanAheadCallback();
}
else
{
- if (gPlayerAvatar.running1 == 1)
+ // this code is never reached.
+ if (gPlayerAvatar.tileTransitionState == T_TILE_TRANSITION)
{
gUnknown_0300059C ^= 1;
if (gUnknown_0300059C == 0)
diff --git a/src/field/field_control_avatar.c b/src/field/field_control_avatar.c
index ff8e8504c..cd7d3a2e2 100644
--- a/src/field/field_control_avatar.c
+++ b/src/field/field_control_avatar.c
@@ -10,18 +10,18 @@
#include "field_poison.h"
#include "field_specials.h"
#include "fieldmap.h"
-#include "flags.h"
+#include "constants/flags.h"
#include "item_menu.h"
#include "metatile_behavior.h"
#include "overworld.h"
#include "safari_zone.h"
#include "script.h"
#include "secret_base.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "start_menu.h"
#include "trainer_see.h"
-#include "vars.h"
+#include "constants/vars.h"
#include "wild_encounter.h"
struct Coords32
@@ -30,8 +30,8 @@ struct Coords32
s32 y;
};
-extern u16 gScriptLastTalked;
-extern u16 gScriptFacing;
+extern u16 gSpecialVar_LastTalked;
+extern u16 gSpecialVar_Facing;
extern struct LinkPlayerMapObject gLinkPlayerMapObjects[];
extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
@@ -124,8 +124,8 @@ void FieldClearPlayerInput(struct FieldInput *input)
void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys)
{
- u8 r6 = gPlayerAvatar.running1;
- u8 r9 = gPlayerAvatar.running2;
+ u8 r6 = gPlayerAvatar.tileTransitionState;
+ u8 r9 = gPlayerAvatar.runningState;
bool8 forcedMove = MetatileBehavior_IsMoveTile(cur_mapdata_block_role_at_player_pos(r9));
if ((r6 == 2 && forcedMove == FALSE) || r6 == 0)
@@ -295,8 +295,8 @@ u8 *sub_80682A8(struct MapPosition *position, u8 unused, u8 c)
return NULL;
}
gSelectedMapObject = r3;
- gScriptLastTalked = gMapObjects[r3].localId;
- gScriptFacing = c;
+ gSpecialVar_LastTalked = gMapObjects[r3].localId;
+ gSpecialVar_Facing = c;
return GetFieldObjectScriptPointerByFieldObjectId(r3);
}
@@ -316,10 +316,10 @@ static u8 *sub_8068364(struct MapPosition *position, u8 b, u8 c)
}
//_080683E8
gSelectedMapObject = r3;
- gScriptLastTalked = gMapObjects[r3].localId;
- gScriptFacing = c;
+ gSpecialVar_LastTalked = gMapObjects[r3].localId;
+ gSpecialVar_Facing = c;
script = GetFieldObjectScriptPointerByFieldObjectId(r3);
- script = GetRamScript(gScriptLastTalked, script);
+ script = GetRamScript(gSpecialVar_LastTalked, script);
return script;
}
@@ -423,11 +423,11 @@ static u8 *sub_8068500(struct MapPosition *position, u8 b, u8 c)
static u8 *TryGetFieldMoveScript(struct MapPosition *unused1, u8 b, u8 unused2)
{
- if (FlagGet(BADGE05_GET) == TRUE && PartyHasMonWithSurf() == TRUE && IsPlayerFacingSurfableFishableWater() == TRUE)
+ if (FlagGet(FLAG_BADGE05_GET) == TRUE && PartyHasMonWithSurf() == TRUE && IsPlayerFacingSurfableFishableWater() == TRUE)
return UseSurfScript;
if (MetatileBehavior_IsWaterfall(b) == TRUE)
{
- if (FlagGet(BADGE08_GET) == TRUE && IsPlayerSurfingNorth() == TRUE)
+ if (FlagGet(FLAG_BADGE08_GET) == TRUE && IsPlayerSurfingNorth() == TRUE)
return S_UseWaterfall;
else
return S_CannotUseWaterfall;
@@ -437,7 +437,7 @@ static u8 *TryGetFieldMoveScript(struct MapPosition *unused1, u8 b, u8 unused2)
static bool32 sub_8068770(void)
{
- if (FlagGet(BADGE07_GET) && sub_8068F18() == 2)
+ if (FlagGet(FLAG_BADGE07_GET) && sub_8068F18() == 2)
{
ScriptContext1_SetupScript(UseDiveScript);
return TRUE;
@@ -447,7 +447,7 @@ static bool32 sub_8068770(void)
static bool32 sub_80687A4(void)
{
- if (FlagGet(BADGE07_GET) && gMapHeader.mapType == MAP_TYPE_UNDERWATER && sub_8068F18() == 1)
+ if (FlagGet(FLAG_BADGE07_GET) && gMapHeader.mapType == MAP_TYPE_UNDERWATER && sub_8068F18() == 1)
{
ScriptContext1_SetupScript(S_UseDiveUnderwater);
return TRUE;
@@ -500,9 +500,9 @@ bool8 sub_8068894(void)
ScriptContext1_SetupScript(gUnknown_081A14B8);
return TRUE;
}
- if (sub_80422A0())
+ if (ShouldEggHatch())
{
- IncrementGameStat(13);
+ IncrementGameStat(GAME_STAT_HATCHED_EGGS);
ScriptContext1_SetupScript(S_EggHatch);
return TRUE;
}
@@ -856,7 +856,7 @@ u8 sub_8068F18(void)
return 0;
}
-u8 *GetFieldObjectScriptPointerForComparison(void)
+u8 *GetFieldObjectScriptPointerPlayerFacing(void)
{
u8 r4;
struct MapPosition position;
diff --git a/src/field/field_door.c b/src/field/field_door.c
index ab46f0696..89dae725c 100644
--- a/src/field/field_door.c
+++ b/src/field/field_door.c
@@ -3,19 +3,400 @@
#include "field_camera.h"
#include "fieldmap.h"
#include "metatile_behavior.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "task.h"
-extern struct DoorAnimFrame gDoorOpenAnimFrames[];
-extern struct DoorAnimFrame gDoorCloseAnimFrames[];
-extern struct DoorGraphics gDoorAnimGraphicsTable[];
+const u8 DoorAnimTiles_04[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/04/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/04/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/04/2.4bpp"),
+};
+
+// TODO: Make these blank palette includes?
+asm(".space 32");
+
+const u8 DoorAnimTiles_05[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/05/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/05/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/05/2.4bpp"),
+};
+
+const u8 DoorAnimTiles_08[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/08/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/08/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/08/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_15[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/15/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/15/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/15/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_16[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/16/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/16/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/16/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_00[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/00/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/00/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/00/2.4bpp"),
+};
+
+const u8 DoorAnimTiles_01[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/01/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/01/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/01/2.4bpp"),
+};
+
+const u8 DoorAnimTiles_02[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/02/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/02/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/02/2.4bpp"),
+};
+
+const u8 DoorAnimTiles_03[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/03/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/03/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/03/2.4bpp"),
+};
+
+const u8 DoorAnimTiles_06[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/06/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/06/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/06/2.4bpp"),
+};
+
+const u8 DoorAnimTiles_07[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/07/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/07/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/07/2.4bpp"),
+};
+
+const u8 DoorAnimTiles_09[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/09/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/09/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/09/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_10[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/10/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/10/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/10/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_11[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/11/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/11/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/11/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_12[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/12/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/12/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/12/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_13[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/13/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/13/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/13/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_14[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/14/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/14/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/14/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_17[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/17/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/17/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/17/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_18[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/18/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/18/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/18/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_19[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/19/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/19/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/19/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_20[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/20/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/20/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/20/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_21[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/21/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/21/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/21/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_22[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/22/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/22/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/22/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_23[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/23/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/23/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/23/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_24[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/24/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/24/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/24/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_25[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/25/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/25/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/25/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_26[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/26/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/26/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/26/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_27[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/27/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/27/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/27/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_28[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/28/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/28/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/28/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_29[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/29/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/29/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/29/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_30[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/30/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/30/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/30/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_31[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/31/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/31/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/31/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_32[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/32/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/32/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/32/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_33[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/33/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/33/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/33/2.4bpp"),
+};
+
+asm(".space 32");
+
+static const struct DoorAnimFrame gDoorOpenAnimFrames[] =
+{
+ {4, -1},
+ {4, 0},
+ {4, 0x100},
+ {4, 0x200},
+ {0, 0},
+};
+
+static const struct DoorAnimFrame gDoorCloseAnimFrames[] =
+{
+ {4, 0x200},
+ {4, 0x100},
+ {4, 0},
+ {4, -1},
+ {0, 0},
+};
+
+const u8 DoorAnimPalettes_830F8A4[] = {1, 1, 1, 1, 1, 1, 1, 1}; // door 00
+const u8 DoorAnimPalettes_830F8AC[] = {1, 1, 1, 1, 1, 1, 1, 1}; // door 01
+const u8 DoorAnimPalettes_830F8B4[] = {5, 5, 5, 5, 5, 5, 5, 5}; // door 02
+const u8 DoorAnimPalettes_830F8BC[] = {0, 0, 1, 1, 1, 1, 1, 1}; // door 03
+const u8 DoorAnimPalettes_830F8C4[] = {6, 6, 6, 6, 6, 6, 6, 6}; // door 04
+const u8 DoorAnimPalettes_830F8CC[] = {8, 8, 8, 8, 8, 8, 8, 8}; // door 05
+const u8 DoorAnimPalettes_830F8D4[] = {11, 11, 11, 11, 11, 11, 11, 11}; // door 06
+const u8 DoorAnimPalettes_830F8DC[] = {10, 10, 10, 10, 10, 10, 10, 10}; // door 07
+const u8 DoorAnimPalettes_830F8E4[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 08
+const u8 DoorAnimPalettes_830F8EC[] = {8, 8, 8, 8, 8, 8, 8, 8}; // door 09
+const u8 DoorAnimPalettes_830F8F4[] = {9, 9, 9, 9, 9, 9, 9, 9}; // door 10
+const u8 DoorAnimPalettes_830F8FC[] = {9, 9, 1, 1, 1, 1, 1, 1}; // door 11
+const u8 DoorAnimPalettes_830F904[] = {8, 8, 8, 8, 8, 8, 8, 8}; // door 12
+const u8 DoorAnimPalettes_830F90C[] = {9, 9, 9, 9, 9, 9, 9, 9}; // door 13
+const u8 DoorAnimPalettes_830F914[] = {6, 6, 6, 6, 6, 6, 6, 6}; // door 14
+const u8 DoorAnimPalettes_830F91C[] = {6, 6, 6, 6, 6, 6, 6, 6}; // door 15
+const u8 DoorAnimPalettes_830F924[] = {0, 0, 5, 5, 5, 5, 5, 5}; // door 16
+const u8 DoorAnimPalettes_830F92C[] = {6, 6, 1, 1, 1, 1, 1, 1}; // door 17
+const u8 DoorAnimPalettes_830F934[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 18
+const u8 DoorAnimPalettes_830F93C[] = {6, 6, 5, 5, 5, 5, 5, 5}; // door 19
+const u8 DoorAnimPalettes_830F944[] = {5, 5, 5, 5, 5, 5, 5, 5}; // door 20
+const u8 DoorAnimPalettes_830F94C[] = {1, 1, 1, 1, 1, 1, 1, 1}; // door 21
+const u8 DoorAnimPalettes_830F954[] = {6, 6, 7, 7, 7, 7, 7, 7}; // door 22
+const u8 DoorAnimPalettes_830F95C[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 23
+const u8 DoorAnimPalettes_830F964[] = {5, 5, 5, 5, 5, 5, 5, 5}; // door 24
+const u8 DoorAnimPalettes_830F96C[] = {9, 9, 9, 9, 9, 9, 9, 9}; // door 25
+const u8 DoorAnimPalettes_830F974[] = {8, 8, 8, 8, 8, 8, 8, 8}; // door 26
+const u8 DoorAnimPalettes_830F97C[] = {6, 6, 6, 6, 6, 6, 6, 6}; // door 27
+const u8 DoorAnimPalettes_830F984[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 28
+const u8 DoorAnimPalettes_830F98C[] = {11, 11, 7, 7, 7, 7, 7, 7}; // door 29
+const u8 DoorAnimPalettes_830F994[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 30
+const u8 DoorAnimPalettes_830F99C[] = {6, 6, 7, 7, 7, 7, 7, 7}; // door 31
+const u8 DoorAnimPalettes_830F9A4[] = {9, 9, 9, 9, 9, 9, 9, 9}; // door 32
+const u8 DoorAnimPalettes_830F9AC[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 33
+
+static const struct DoorGraphics gDoorAnimGraphicsTable[] =
+{
+ {0x021, 0, DoorAnimTiles_00, DoorAnimPalettes_830F8A4}, // door 00
+ {0x061, 1, DoorAnimTiles_01, DoorAnimPalettes_830F8AC}, // door 01
+ {0x1CD, 1, DoorAnimTiles_02, DoorAnimPalettes_830F8B4}, // door 02
+ {0x041, 1, DoorAnimTiles_03, DoorAnimPalettes_830F8BC}, // door 03
+ {0x248, 0, DoorAnimTiles_04, DoorAnimPalettes_830F8C4}, // door 04
+ {0x249, 0, DoorAnimTiles_05, DoorAnimPalettes_830F8CC}, // door 05
+ {0x22F, 0, DoorAnimTiles_06, DoorAnimPalettes_830F8D4}, // door 06
+ {0x21F, 0, DoorAnimTiles_07, DoorAnimPalettes_830F8DC}, // door 07
+ {0x2A5, 0, DoorAnimTiles_08, DoorAnimPalettes_830F8E4}, // door 08
+ {0x287, 0, DoorAnimTiles_09, DoorAnimPalettes_830F8F4}, // door 09
+ {0x2AC, 0, DoorAnimTiles_10, DoorAnimPalettes_830F934}, // door 10
+ {0x3A1, 0, DoorAnimTiles_11, DoorAnimPalettes_830F93C}, // door 11
+ {0x2DC, 0, DoorAnimTiles_12, DoorAnimPalettes_830F92C}, // door 12
+ {0x225, 0, DoorAnimTiles_13, DoorAnimPalettes_830F924}, // door 13
+ {0x1DB, 1, DoorAnimTiles_14, DoorAnimPalettes_830F94C}, // door 14
+ {0x246, 0, DoorAnimTiles_15, DoorAnimPalettes_830F8EC}, // door 15
+ {0x28E, 0, DoorAnimTiles_16, DoorAnimPalettes_830F944}, // door 16
+ {0x2A1, 0, DoorAnimTiles_17, DoorAnimPalettes_830F8FC}, // door 17
+ {0x21C, 0, DoorAnimTiles_18, DoorAnimPalettes_830F914}, // door 18
+ {0x21E, 0, DoorAnimTiles_19, DoorAnimPalettes_830F91C}, // door 19
+ {0x21D, 1, DoorAnimTiles_20, DoorAnimPalettes_830F904}, // door 20
+ {0x21A, 0, DoorAnimTiles_21, DoorAnimPalettes_830F90C}, // door 21
+ {0x224, 0, DoorAnimTiles_22, DoorAnimPalettes_830F954}, // door 22
+ {0x289, 0, DoorAnimTiles_23, DoorAnimPalettes_830F95C}, // door 23
+ {0x30C, 1, DoorAnimTiles_24, DoorAnimPalettes_830F964}, // door 24
+ {0x32D, 1, DoorAnimTiles_25, DoorAnimPalettes_830F96C}, // door 25
+ {0x2ED, 1, DoorAnimTiles_26, DoorAnimPalettes_830F974}, // door 26
+ {0x264, 1, DoorAnimTiles_27, DoorAnimPalettes_830F97C}, // door 27
+ {0x22B, 0, DoorAnimTiles_28, DoorAnimPalettes_830F984}, // door 28
+ {0x2F7, 0, DoorAnimTiles_29, DoorAnimPalettes_830F98C}, // door 29
+ {0x297, 0, DoorAnimTiles_30, DoorAnimPalettes_830F994}, // door 30
+ {0x285, 1, DoorAnimTiles_31, DoorAnimPalettes_830F99C}, // door 31
+ {0x25D, 1, DoorAnimTiles_32, DoorAnimPalettes_830F9A4}, // door 32
+ {0x20E, 1, DoorAnimTiles_33, DoorAnimPalettes_830F9AC}, // door 33
+ {0, 0, NULL, NULL},
+};
-static void CopyDoorTilesToVram(void *src)
+static void CopyDoorTilesToVram(const void *src)
{
CpuFastSet(src, (void *)(VRAM + 0x7F00), 0x40);
}
-static void door_build_blockdef(u16 *a, u16 b, u8 *c)
+static void door_build_blockdef(u16 *a, u16 b, const u8 *c)
{
int i;
u16 unk;
@@ -32,7 +413,7 @@ static void door_build_blockdef(u16 *a, u16 b, u8 *c)
}
}
-static void DrawCurrentDoorAnimFrame(u32 x, u32 y, u8 *c)
+static void DrawCurrentDoorAnimFrame(u32 x, u32 y, const u8 *c)
{
u16 arr[8];
@@ -48,7 +429,7 @@ static void DrawClosedDoorTiles(u32 x, u32 y)
CurrentMapDrawMetatileAt(x, y);
}
-static void DrawDoor(struct DoorGraphics *gfx, struct DoorAnimFrame *frame, u32 x, u32 y)
+static void DrawDoor(const struct DoorGraphics *gfx, const struct DoorAnimFrame *frame, u32 x, u32 y)
{
if (frame->offset == 0xFFFF)
DrawClosedDoorTiles(x, y);
@@ -96,14 +477,14 @@ static void Task_AnimateDoor(u8 taskId)
DestroyTask(taskId);
}
-static struct DoorAnimFrame *GetLastDoorFrame(struct DoorAnimFrame *frame, void *unused)
+static const struct DoorAnimFrame *GetLastDoorFrame(const struct DoorAnimFrame *frame, const void *unused)
{
while (frame->time != 0)
frame++;
return frame - 1;
}
-static struct DoorGraphics *GetDoorGraphics(struct DoorGraphics *gfx, u16 metatileNum)
+static const struct DoorGraphics *GetDoorGraphics(const struct DoorGraphics *gfx, u16 metatileNum)
{
while (gfx->tiles != NULL)
{
@@ -114,7 +495,7 @@ static struct DoorGraphics *GetDoorGraphics(struct DoorGraphics *gfx, u16 metati
return NULL;
}
-static s8 StartDoorAnimationTask(struct DoorGraphics *gfx, struct DoorAnimFrame *frames, u32 x, u32 y)
+static s8 StartDoorAnimationTask(const struct DoorGraphics *gfx, const struct DoorAnimFrame *frames, u32 x, u32 y)
{
if (FuncIsActiveTask(Task_AnimateDoor) == TRUE)
return -1;
@@ -136,19 +517,19 @@ static s8 StartDoorAnimationTask(struct DoorGraphics *gfx, struct DoorAnimFrame
}
}
-static void DrawClosedDoor(struct DoorGraphics *unused, u32 x, u32 y)
+static void DrawClosedDoor(const struct DoorGraphics *unused, u32 x, u32 y)
{
DrawClosedDoorTiles(x, y);
}
-static void DrawOpenedDoor(struct DoorGraphics *gfx, u32 x, u32 y)
+static void DrawOpenedDoor(const struct DoorGraphics *gfx, u32 x, u32 y)
{
gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y));
if (gfx != NULL)
DrawDoor(gfx, GetLastDoorFrame(gDoorOpenAnimFrames, gDoorOpenAnimFrames), x, y);
}
-static s8 StartDoorOpenAnimation(struct DoorGraphics *gfx, u32 x, u32 y)
+static s8 StartDoorOpenAnimation(const struct DoorGraphics *gfx, u32 x, u32 y)
{
gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y));
if (gfx == NULL)
@@ -157,7 +538,7 @@ static s8 StartDoorOpenAnimation(struct DoorGraphics *gfx, u32 x, u32 y)
return StartDoorAnimationTask(gfx, gDoorOpenAnimFrames, x, y);
}
-static s8 StartDoorCloseAnimation(struct DoorGraphics *gfx, u32 x, u32 y)
+static s8 StartDoorCloseAnimation(const struct DoorGraphics *gfx, u32 x, u32 y)
{
gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y));
if (gfx == NULL)
@@ -166,7 +547,7 @@ static s8 StartDoorCloseAnimation(struct DoorGraphics *gfx, u32 x, u32 y)
return StartDoorAnimationTask(gfx, gDoorCloseAnimFrames, x, y);
}
-static s8 cur_mapdata_get_door_x2_at(struct DoorGraphics *gfx, u32 x, u32 y)
+static s8 cur_mapdata_get_door_x2_at(const struct DoorGraphics *gfx, u32 x, u32 y)
{
gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y));
if (gfx == NULL)
diff --git a/src/field/field_effect.c b/src/field/field_effect.c
index afe020ac7..4337300da 100644
--- a/src/field/field_effect.c
+++ b/src/field/field_effect.c
@@ -12,7 +12,7 @@
#include "overworld.h"
#include "task.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "decoration.h"
#include "field_player_avatar.h"
#include "field_map_obj_helpers.h"
@@ -28,7 +28,7 @@
#define subsprite_table(ptr) {.subsprites = ptr, .subspriteCount = (sizeof ptr) / (sizeof(struct Subsprite))}
-EWRAM_DATA u32 gFieldEffectArguments[8] = {0};
+EWRAM_DATA s32 gFieldEffectArguments[8] = {0};
const u32 gSpriteImage_839DC14[] = INCBIN_U32("graphics/birch_speech/birch.4bpp");
const u16 gBirchPalette[16] = INCBIN_U16("graphics/birch_speech/birch.gbapal");
@@ -37,7 +37,7 @@ const u16 gFieldEffectObjectPalette4[16] = INCBIN_U16("graphics/field_effect_obj
const u32 gSpriteImage_839E474[] = INCBIN_U32("graphics/misc/pokecenter_monitor/0.4bpp");
const u32 gSpriteImage_839E534[] = INCBIN_U32("graphics/misc/pokecenter_monitor/1.4bpp");
const u32 gSpriteImage_839E5F4[] = INCBIN_U32("graphics/misc/big_hof_monitor.4bpp");
-const u32 gSpriteImage_839E7F4[] = INCBIN_U32("graphics/misc/small_hof_monitor.4bpp");
+const u8 gSpriteImage_839E7F4[] = INCBIN_U8("graphics/misc/small_hof_monitor.4bpp");
const u16 gFieldEffectObjectPalette5[16] = INCBIN_U16("graphics/field_effect_objects/palettes/05.gbapal");
// Graphics for the lights streaking past your Pokemon when it uses a field move.
@@ -110,7 +110,7 @@ const struct SpriteFrameImage gSpriteImageTable_839F170[] = {
};
const struct SpriteFrameImage gSpriteImageTable_839F178[] = {
- {.data = (u8 *)gSpriteImage_839E7F4, .size = 0x200} // the macro breaks down here
+ {.data = gSpriteImage_839E7F4, .size = 0x200} // the macro breaks down here
};
const struct Subsprite Unknown_39F180[] = {
@@ -886,16 +886,16 @@ void PokecenterHealEffect_0(struct Task *task)
void PokecenterHealEffect_1(struct Task *task)
{
- if (gSprites[task->data[6]].data0 > 1)
+ if (gSprites[task->data[6]].data[0] > 1)
{
- gSprites[task->data[7]].data0++;
+ gSprites[task->data[7]].data[0]++;
task->data[0]++;
}
}
void PokecenterHealEffect_2(struct Task *task)
{
- if (gSprites[task->data[6]].data0 > 4)
+ if (gSprites[task->data[6]].data[0] > 4)
{
task->data[0]++;
}
@@ -903,7 +903,7 @@ void PokecenterHealEffect_2(struct Task *task)
void PokecenterHealEffect_3(struct Task *task)
{
- if (gSprites[task->data[6]].data0 > 6)
+ if (gSprites[task->data[6]].data[0] > 6)
{
DestroySprite(&gSprites[task->data[6]]);
FieldEffectActiveListRemove(FLDEFF_POKECENTER_HEAL);
@@ -949,7 +949,7 @@ void HallOfFameRecordEffect_0(struct Task *task)
void HallOfFameRecordEffect_1(struct Task *task)
{
- if (gSprites[task->data[6]].data0 > 1)
+ if (gSprites[task->data[6]].data[0] > 1)
{
task->data[15]++; // was this ever initialized? is this ever used?
task->data[0]++;
@@ -958,7 +958,7 @@ void HallOfFameRecordEffect_1(struct Task *task)
void HallOfFameRecordEffect_2(struct Task *task)
{
- if (gSprites[task->data[6]].data0 > 4)
+ if (gSprites[task->data[6]].data[0] > 4)
{
task->data[0]++;
}
@@ -966,7 +966,7 @@ void HallOfFameRecordEffect_2(struct Task *task)
void HallOfFameRecordEffect_3(struct Task *task)
{
- if (gSprites[task->data[6]].data0 > 6)
+ if (gSprites[task->data[6]].data[0] > 6)
{
DestroySprite(&gSprites[task->data[6]]);
FieldEffectActiveListRemove(FLDEFF_HALL_OF_FAME_RECORD);
@@ -984,46 +984,46 @@ u8 CreatePokeballGlowSprite(s16 data6, s16 x, s16 y, u16 data5)
sprite = &gSprites[spriteId];
sprite->pos2.x = x;
sprite->pos2.y = y;
- sprite->data5 = data5;
- sprite->data6 = data6;
- sprite->data7 = spriteId;
+ sprite->data[5] = data5;
+ sprite->data[6] = data6;
+ sprite->data[7] = spriteId;
return spriteId;
}
void SpriteCB_PokeballGlowEffect(struct Sprite *sprite)
{
- gUnknown_0839F288[sprite->data0](sprite);
+ gUnknown_0839F288[sprite->data[0]](sprite);
}
void PokeballGlowEffect_0(struct Sprite *sprite)
{
u8 endSpriteId;
- if (sprite->data1 == 0 || (--sprite->data1) == 0)
+ if (sprite->data[1] == 0 || (--sprite->data[1]) == 0)
{
- sprite->data1 = 25;
- endSpriteId = CreateSpriteAtEnd(&gSpriteTemplate_839F208, gUnknown_0839F2A8[sprite->data2].x + sprite->pos2.x, gUnknown_0839F2A8[sprite->data2].y + sprite->pos2.y, 0);
+ sprite->data[1] = 25;
+ endSpriteId = CreateSpriteAtEnd(&gSpriteTemplate_839F208, gUnknown_0839F2A8[sprite->data[2]].x + sprite->pos2.x, gUnknown_0839F2A8[sprite->data[2]].y + sprite->pos2.y, 0);
gSprites[endSpriteId].oam.priority = 2;
- gSprites[endSpriteId].data0 = sprite->data7;
- sprite->data2++;
- sprite->data6--;
+ gSprites[endSpriteId].data[0] = sprite->data[7];
+ sprite->data[2]++;
+ sprite->data[6]--;
PlaySE(SE_BOWA);
}
- if (sprite->data6 == 0)
+ if (sprite->data[6] == 0)
{
- sprite->data1 = 32;
- sprite->data0++;
+ sprite->data[1] = 32;
+ sprite->data[0]++;
}
}
void PokeballGlowEffect_1(struct Sprite *sprite)
{
- if ((--sprite->data1) == 0)
+ if ((--sprite->data[1]) == 0)
{
- sprite->data0++;
- sprite->data1 = 8;
- sprite->data2 = 0;
- sprite->data3 = 0;
- if (sprite->data5)
+ sprite->data[0]++;
+ sprite->data[1] = 8;
+ sprite->data[2] = 0;
+ sprite->data[3] = 0;
+ if (sprite->data[5])
{
PlayFanfare(BGM_ME_ASA);
}
@@ -1033,48 +1033,48 @@ void PokeballGlowEffect_1(struct Sprite *sprite)
void PokeballGlowEffect_2(struct Sprite *sprite)
{
u8 phase;
- if ((--sprite->data1) == 0)
+ if ((--sprite->data[1]) == 0)
{
- sprite->data1 = 8;
- sprite->data2++;
- sprite->data2 &= 3;
- if (sprite->data2 == 0)
+ sprite->data[1] = 8;
+ sprite->data[2]++;
+ sprite->data[2] &= 3;
+ if (sprite->data[2] == 0)
{
- sprite->data3++;
+ sprite->data[3]++;
}
}
- phase = (sprite->data2 + 3) & 3;
+ phase = (sprite->data[2] + 3) & 3;
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x108, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]);
- phase = (sprite->data2 + 2) & 3;
+ phase = (sprite->data[2] + 2) & 3;
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x106, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]);
- phase = (sprite->data2 + 1) & 3;
+ phase = (sprite->data[2] + 1) & 3;
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x102, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]);
- phase = sprite->data2;
+ phase = sprite->data[2];
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x105, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]);
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x103, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]);
- if (sprite->data3 > 2)
+ if (sprite->data[3] > 2)
{
- sprite->data0++;
- sprite->data1 = 8;
- sprite->data2 = 0;
+ sprite->data[0]++;
+ sprite->data[1] = 8;
+ sprite->data[2] = 0;
}
}
void PokeballGlowEffect_3(struct Sprite *sprite)
{
u8 phase;
- if ((--sprite->data1) == 0)
+ if ((--sprite->data[1]) == 0)
{
- sprite->data1 = 8;
- sprite->data2++;
- sprite->data2 &= 3;
- if (sprite->data2 == 3)
+ sprite->data[1] = 8;
+ sprite->data[2]++;
+ sprite->data[2] &= 3;
+ if (sprite->data[2] == 3)
{
- sprite->data0++;
- sprite->data1 = 30;
+ sprite->data[0]++;
+ sprite->data[1] = 30;
}
}
- phase = sprite->data2;
+ phase = sprite->data[2];
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x108, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]);
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x106, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]);
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x102, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]);
@@ -1084,22 +1084,22 @@ void PokeballGlowEffect_3(struct Sprite *sprite)
void PokeballGlowEffect_4(struct Sprite *sprite)
{
- if ((--sprite->data1) == 0)
+ if ((--sprite->data[1]) == 0)
{
- sprite->data0++;
+ sprite->data[0]++;
}
}
void PokeballGlowEffect_5(struct Sprite *sprite)
{
- sprite->data0++;
+ sprite->data[0]++;
}
void PokeballGlowEffect_6(struct Sprite *sprite)
{
- if (sprite->data5 == 0 || IsFanfareTaskInactive())
+ if (sprite->data[5] == 0 || IsFanfareTaskInactive())
{
- sprite->data0++;
+ sprite->data[0]++;
}
}
@@ -1109,7 +1109,7 @@ void PokeballGlowEffect_7(struct Sprite *sprite)
void SpriteCB_PokeballGlow(struct Sprite *sprite)
{
- if (gSprites[sprite->data0].data0 > 4)
+ if (gSprites[sprite->data[0]].data[0] > 4)
{
FieldEffectFreeGraphicsResources(sprite);
}
@@ -1129,9 +1129,9 @@ u8 PokecenterHealEffectHelper(s16 x, s16 y)
void SpriteCB_PokecenterMonitor(struct Sprite *sprite)
{
- if (sprite->data0 != 0)
+ if (sprite->data[0] != 0)
{
- sprite->data0 = 0;
+ sprite->data[0] = 0;
sprite->invisible = 0;
StartSpriteAnim(sprite, 1);
}
@@ -1153,21 +1153,21 @@ void HallOfFameRecordEffectHelper(s16 a0, s16 a1, s16 a2, u8 a3)
spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_839F250, a1, a2, 0);
}
gSprites[spriteIdAtEnd].invisible = 1;
- gSprites[spriteIdAtEnd].data0 = a0;
+ gSprites[spriteIdAtEnd].data[0] = a0;
}
void SpriteCB_HallOfFameMonitor(struct Sprite *sprite)
{
- if (gTasks[sprite->data0].data[15])
+ if (gTasks[sprite->data[0]].data[15])
{
- if (sprite->data1 == 0 || (--sprite->data1) == 0)
+ if (sprite->data[1] == 0 || (--sprite->data[1]) == 0)
{
- sprite->data1 = 16;
+ sprite->data[1] = 16;
sprite->invisible ^= 1;
}
- sprite->data2++;
+ sprite->data[2]++;
}
- if (sprite->data2 > 127)
+ if (sprite->data[2] > 127)
{
FieldEffectFreeGraphicsResources(sprite);
}
@@ -1287,7 +1287,7 @@ bool8 sub_80867AC(struct Task *task) // gUnknown_0839F2CC[0]
playerSprite = &gSprites[gPlayerAvatar.spriteId];
CameraObjectReset2();
gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = 1;
- gPlayerAvatar.unk6 = 1;
+ gPlayerAvatar.preventStep = TRUE;
FieldObjectSetSpecialAnim(playerObject, GetFaceDirectionAnimId(player_get_direction_lower_nybble()));
task->data[4] = playerSprite->subspriteMode;
playerObject->mapobj_bit_26 = 1;
@@ -1382,7 +1382,7 @@ bool8 sub_80869B8(struct Task *task)
bool8 sub_80869F8(struct Task *task)
{
- gPlayerAvatar.unk6 = 0;
+ gPlayerAvatar.preventStep = FALSE;
ScriptContext2_Disable();
CameraObjectReset1();
UnfreezeMapObjects();
@@ -1678,7 +1678,7 @@ void sub_8086F64(u8 taskId)
bool8 sub_8086FB0(struct Task *task, struct MapObject *mapObject)
{
ScriptContext2_Enable();
- gPlayerAvatar.unk6 = 1;
+ gPlayerAvatar.preventStep = TRUE;
task->data[0]++;
return FALSE;
}
@@ -1725,7 +1725,7 @@ bool8 sub_8087058(struct Task *task, struct MapObject *mapObject)
return TRUE;
}
ScriptContext2_Disable();
- gPlayerAvatar.unk6 = 0;
+ gPlayerAvatar.preventStep = FALSE;
DestroyTask(FindTaskIdByFunc(sub_8086F64));
FieldEffectActiveListRemove(FLDEFF_USE_WATERFALL);
return FALSE;
@@ -1751,7 +1751,7 @@ void Task_Dive(u8 taskId)
bool8 sub_8087124(struct Task *task)
{
- gPlayerAvatar.unk6 = 1;
+ gPlayerAvatar.preventStep = TRUE;
task->data[0]++;
return FALSE;
}
@@ -1796,7 +1796,7 @@ bool8 sub_808722C(struct Task *task, struct MapObject *mapObject, struct Sprite
FreezeMapObjects();
CameraObjectReset2();
SetCameraPanningCallback(NULL);
- gPlayerAvatar.unk6 = 1;
+ gPlayerAvatar.preventStep = TRUE;
mapObject->mapobj_bit_26 = 1;
task->data[1] = 1;
task->data[0]++;
@@ -1913,7 +1913,7 @@ bool8 sub_80874CC(struct Task *task, struct MapObject *mapObject, struct Sprite
{
CameraObjectReset2();
FreezeMapObjects();
- gPlayerAvatar.unk6 = 1;
+ gPlayerAvatar.preventStep = TRUE;
mapObject->mapobj_bit_13 = 1;
task->data[0]++;
return FALSE;
@@ -1951,7 +1951,7 @@ bool8 sub_808759C(struct Task *task, struct MapObject *mapObject, struct Sprite
{
if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
{
- gPlayerAvatar.unk6 = 0;
+ gPlayerAvatar.preventStep = FALSE;
ScriptContext2_Disable();
UnfreezeMapObjects();
DestroyTask(FindTaskIdByFunc(sub_8087470));
@@ -1996,7 +1996,7 @@ bool8 sub_80876C8(struct Task *task, struct MapObject *mapObject, struct Sprite
{
FreezeMapObjects();
CameraObjectReset2();
- gPlayerAvatar.unk6 = 1;
+ gPlayerAvatar.preventStep = TRUE;
mapObject->mapobj_bit_26 = 1;
task->data[0]++;
return FALSE;
@@ -2480,7 +2480,7 @@ void sub_8088228(struct Task *task)
void sub_80882B4(struct Task *task)
{
task->data[5] -= 16;
- if (gSprites[task->data[15]].data7)
+ if (gSprites[task->data[15]].data[7])
{
task->data[0]++;
}
@@ -2607,7 +2607,7 @@ void sub_8088554(struct Task *task)
void sub_80885A8(struct Task *task)
{
sub_80886F8(task);
- if (gSprites[task->data[15]].data7)
+ if (gSprites[task->data[15]].data[7])
{
task->data[0]++;
}
@@ -2827,8 +2827,8 @@ u8 sub_8088830(u32 a0, u32 a1, u32 a2)
sprite = &gSprites[monSprite];
sprite->callback = SpriteCallbackDummy;
sprite->oam.priority = 0;
- sprite->data0 = a0;
- sprite->data6 = v0;
+ sprite->data[0] = a0;
+ sprite->data[6] = v0;
return monSprite;
}
@@ -2839,14 +2839,14 @@ void sub_8088890(struct Sprite *sprite)
if ((sprite->pos1.x -= 20) <= 0x78)
{
sprite->pos1.x = 0x78;
- sprite->data1 = 30;
+ sprite->data[1] = 30;
sprite->callback = sub_80888D4;
- if (sprite->data6)
+ if (sprite->data[6])
{
- PlayCry2(sprite->data0, 0, 0x7d, 0xa);
+ PlayCry2(sprite->data[0], 0, 0x7d, 0xa);
} else
{
- PlayCry1(sprite->data0, 0);
+ PlayCry1(sprite->data[0], 0);
}
}
}
@@ -2855,7 +2855,7 @@ void sub_80888F0(struct Sprite *);
void sub_80888D4(struct Sprite *sprite)
{
- if ((--sprite->data1) == 0)
+ if ((--sprite->data[1]) == 0)
{
sprite->callback = sub_80888F0;
}
@@ -2865,7 +2865,7 @@ void sub_80888F0(struct Sprite *sprite)
{
if (sprite->pos1.x < -0x40)
{
- sprite->data7 = 1;
+ sprite->data[7] = 1;
} else
{
sprite->pos1.x -= 20;
@@ -2893,7 +2893,7 @@ void sub_8088984(struct Task *task)
{
ScriptContext2_Enable();
FreezeMapObjects();
- gPlayerAvatar.unk6 = 1;
+ gPlayerAvatar.preventStep = TRUE;
SetPlayerAvatarStateMask(8);
PlayerGetDestCoords(&task->data[1], &task->data[2]);
MoveCoords(gMapObjects[gPlayerAvatar.mapObjectId].placeholder18, &task->data[1], &task->data[2]);
@@ -2947,7 +2947,7 @@ void sub_8088AF4(struct Task *task)
mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
{
- gPlayerAvatar.unk6 = 0;
+ gPlayerAvatar.preventStep = FALSE;
gPlayerAvatar.flags &= 0xdf;
FieldObjectSetSpecialAnim(mapObject, GetFaceDirectionAnimId(mapObject->placeholder18));
sub_8127ED0(mapObject->mapobj_unk_1A, 1);
@@ -2969,7 +2969,7 @@ u8 FldEff_NPCFlyOut(void)
sprite->oam.paletteNum = 0;
sprite->oam.priority = 1;
sprite->callback = sub_8088BC4;
- sprite->data1 = gFieldEffectArguments[0];
+ sprite->data[1] = gFieldEffectArguments[0];
PlaySE(SE_W019);
return spriteId;
}
@@ -2977,19 +2977,19 @@ u8 FldEff_NPCFlyOut(void)
void sub_8088BC4(struct Sprite *sprite)
{
struct Sprite *npcSprite;
- sprite->pos2.x = Cos(sprite->data2, 0x8c);
- sprite->pos2.y = Sin(sprite->data2, 0x48);
- sprite->data2 = (sprite->data2 + 4) & 0xff;
- if (sprite->data0)
+ sprite->pos2.x = Cos(sprite->data[2], 0x8c);
+ sprite->pos2.y = Sin(sprite->data[2], 0x48);
+ sprite->data[2] = (sprite->data[2] + 4) & 0xff;
+ if (sprite->data[0])
{
- npcSprite = &gSprites[sprite->data1];
+ npcSprite = &gSprites[sprite->data[1]];
npcSprite->coordOffsetEnabled = 0;
npcSprite->pos1.x = sprite->pos1.x + sprite->pos2.x;
npcSprite->pos1.y = sprite->pos1.y + sprite->pos2.y - 8;
npcSprite->pos2.x = 0;
npcSprite->pos2.y = 0;
}
- if (sprite->data2 >= 0x80)
+ if (sprite->data[2] >= 0x80)
{
FieldEffectStop(sprite, FLDEFF_NPCFLY_OUT);
}
@@ -3024,7 +3024,7 @@ void sub_8088CA0(struct Task *task)
if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject) || FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
{
task->data[15] = gPlayerAvatar.flags;
- gPlayerAvatar.unk6 = 0x01;
+ gPlayerAvatar.preventStep = TRUE;
SetPlayerAvatarStateMask(1);
sub_8059BF4();
FieldObjectSetSpecialAnim(mapObject, 0x39);
@@ -3149,7 +3149,7 @@ u8 sub_8088F60(void)
u8 sub_8088FA4(u8 spriteId)
{
- return gSprites[spriteId].data7;
+ return gSprites[spriteId].data[7];
}
void sub_8088FC0(u8 spriteId)
@@ -3161,20 +3161,20 @@ void sub_8088FC0(u8 spriteId)
sprite->pos1.y = 0x00;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- memset(&sprite->data0, 0, 8 * sizeof(u16) /* zero all data cells */);
- sprite->data6 = 0x40;
+ memset(&sprite->data[0], 0, 8 * sizeof(u16) /* zero all data cells */);
+ sprite->data[6] = 0x40;
}
void sub_8088FFC(u8 a0, u8 a1)
{
- gSprites[a0].data6 = a1;
+ gSprites[a0].data[6] = a1;
}
void sub_8089018(struct Sprite *sprite)
{
- if (sprite->data7 == 0)
+ if (sprite->data[7] == 0)
{
- if (sprite->data0 == 0)
+ if (sprite->data[0] == 0)
{
sprite->oam.affineMode = 3;
sprite->affineAnims = gSpriteAffineAnimTable_0839F44C;
@@ -3182,20 +3182,20 @@ void sub_8089018(struct Sprite *sprite)
StartSpriteAffineAnim(sprite, 0);
sprite->pos1.x = 0x76;
sprite->pos1.y = -0x30;
- sprite->data0++;
- sprite->data1 = 0x40;
- sprite->data2 = 0x100;
+ sprite->data[0]++;
+ sprite->data[1] = 0x40;
+ sprite->data[2] = 0x100;
}
- sprite->data1 += (sprite->data2 >> 8);
- sprite->pos2.x = Cos(sprite->data1, 0x78);
- sprite->pos2.y = Sin(sprite->data1, 0x78);
- if (sprite->data2 < 0x800)
+ sprite->data[1] += (sprite->data[2] >> 8);
+ sprite->pos2.x = Cos(sprite->data[1], 0x78);
+ sprite->pos2.y = Sin(sprite->data[1], 0x78);
+ if (sprite->data[2] < 0x800)
{
- sprite->data2 += 0x60;
+ sprite->data[2] += 0x60;
}
- if (sprite->data1 > 0x81)
+ if (sprite->data[1] > 0x81)
{
- sprite->data7++;
+ sprite->data[7]++;
sprite->oam.affineMode = 0;
FreeOamMatrix(sprite->oam.matrixNum);
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, 0);
@@ -3206,29 +3206,29 @@ void sub_8089018(struct Sprite *sprite)
void sub_80890D8(struct Sprite *sprite)
{
struct Sprite *sprite1;
- sprite->pos2.x = Cos(sprite->data2, 0x8c);
- sprite->pos2.y = Sin(sprite->data2, 0x48);
- sprite->data2 = (sprite->data2 + 4) & 0xff;
- if (sprite->data6 != 0x40)
+ sprite->pos2.x = Cos(sprite->data[2], 0x8c);
+ sprite->pos2.y = Sin(sprite->data[2], 0x48);
+ sprite->data[2] = (sprite->data[2] + 4) & 0xff;
+ if (sprite->data[6] != 0x40)
{
- sprite1 = &gSprites[sprite->data6];
+ sprite1 = &gSprites[sprite->data[6]];
sprite1->coordOffsetEnabled = 0;
sprite1->pos1.x = sprite->pos1.x + sprite->pos2.x;
sprite1->pos1.y = sprite->pos1.y + sprite->pos2.y - 8;
sprite1->pos2.x = 0;
sprite1->pos2.y = 0;
}
- if (sprite->data2 >= 0x80)
+ if (sprite->data[2] >= 0x80)
{
- sprite->data7 = 1;
+ sprite->data[7] = 1;
}
}
void sub_808914C(struct Sprite *sprite)
{
- if (sprite->data7 == 0)
+ if (sprite->data[7] == 0)
{
- if (sprite->data0 == 0)
+ if (sprite->data[0] == 0)
{
sprite->oam.affineMode = 3;
sprite->affineAnims = gSpriteAffineAnimTable_0839F44C;
@@ -3236,31 +3236,31 @@ void sub_808914C(struct Sprite *sprite)
StartSpriteAffineAnim(sprite, 1);
sprite->pos1.x = 0x5e;
sprite->pos1.y = -0x20;
- sprite->data0++;
- sprite->data1 = 0xf0;
- sprite->data2 = 0x800;
- sprite->data4 = 0x80;
+ sprite->data[0]++;
+ sprite->data[1] = 0xf0;
+ sprite->data[2] = 0x800;
+ sprite->data[4] = 0x80;
}
- sprite->data1 += sprite->data2 >> 8;
- sprite->data3 += sprite->data2 >> 8;
- sprite->data1 &= 0xff;
- sprite->pos2.x = Cos(sprite->data1, 0x20);
- sprite->pos2.y = Sin(sprite->data1, 0x78);
- if (sprite->data2 > 0x100)
+ sprite->data[1] += sprite->data[2] >> 8;
+ sprite->data[3] += sprite->data[2] >> 8;
+ sprite->data[1] &= 0xff;
+ sprite->pos2.x = Cos(sprite->data[1], 0x20);
+ sprite->pos2.y = Sin(sprite->data[1], 0x78);
+ if (sprite->data[2] > 0x100)
{
- sprite->data2 -= sprite->data4;
+ sprite->data[2] -= sprite->data[4];
}
- if (sprite->data4 < 0x100)
+ if (sprite->data[4] < 0x100)
{
- sprite->data4 += 24;
+ sprite->data[4] += 24;
}
- if (sprite->data2 < 0x100)
+ if (sprite->data[2] < 0x100)
{
- sprite->data2 = 0x100;
+ sprite->data[2] = 0x100;
}
- if (sprite->data3 >= 60)
+ if (sprite->data[3] >= 60)
{
- sprite->data7++;
+ sprite->data[7]++;
sprite->oam.affineMode = 0;
FreeOamMatrix(sprite->oam.matrixNum);
sprite->invisible = 1;
@@ -3296,7 +3296,7 @@ void sub_80892A0(struct Task *task)
task->data[0]++;
task->data[2] = 17;
task->data[15] = gPlayerAvatar.flags;
- gPlayerAvatar.unk6 = 1;
+ gPlayerAvatar.preventStep = TRUE;
SetPlayerAvatarStateMask(0x01);
if (task->data[15] & 0x08)
{
@@ -3398,7 +3398,7 @@ void fishE(struct Task *task)
sub_805B980(mapObject, GetPlayerAvatarGraphicsIdByStateId(state));
FieldObjectTurn(mapObject, DIR_SOUTH);
gPlayerAvatar.flags = task->data[15];
- gPlayerAvatar.unk6 = 0;
+ gPlayerAvatar.preventStep = FALSE;
FieldEffectActiveListRemove(FLDEFF_FLY_IN);
DestroyTask(FindTaskIdByFunc(sub_8089270));
}
diff --git a/src/field/field_effect_helpers.c b/src/field/field_effect_helpers.c
index 2ad8bdce3..1d831d2e9 100644
--- a/src/field/field_effect_helpers.c
+++ b/src/field/field_effect_helpers.c
@@ -2,7 +2,7 @@
#include "sprite.h"
#include "fieldmap.h"
#include "metatile_behavior.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "field_map_obj.h"
#include "field_camera.h"
@@ -89,9 +89,9 @@ void SetUpReflection(struct MapObject *mapObject, struct Sprite *sprite, bool8 f
newSprite->affineAnims = gDummySpriteAffineAnimTable;
newSprite->affineAnimBeginning = TRUE;
newSprite->subspriteMode = 0;
- newSprite->data0 = sprite->data0;
- newSprite->data1 = mapObject->localId;
- newSprite->data7 = flag;
+ newSprite->data[0] = sprite->data[0];
+ newSprite->data[1] = mapObject->localId;
+ newSprite->data[7] = flag;
npc_pal_op(mapObject, newSprite);
if (!flag)
{
@@ -110,10 +110,10 @@ static void npc_pal_op(struct MapObject *mapObject, struct Sprite *sprite)
u16 unk_8041e2c[ARRAY_COUNT(gUnknown_08401E2C)];
memcpy(unk_8041e2c, gUnknown_08401E2C, sizeof gUnknown_08401E2C);
- sprite->data2 = 0;
+ sprite->data[2] = 0;
if (!GetFieldObjectGraphicsInfo(mapObject->graphicsId)->disableReflectionPaletteLoad && ((whichElement = sub_8057450(mapObject->mapobj_unk_1F)) || (whichElement = sub_8057450(mapObject->mapobj_unk_1E))))
{
- sprite->data2 = unk_8041e2c[whichElement - 1];
+ sprite->data[2] = unk_8041e2c[whichElement - 1];
npc_pal_op_A(mapObject, sprite->oam.paletteNum);
}
else
@@ -162,9 +162,9 @@ static void sub_81269E0(struct Sprite *sprite)
struct MapObject *mapObject;
struct Sprite *oldSprite;
- mapObject = &gMapObjects[sprite->data0];
+ mapObject = &gMapObjects[sprite->data[0]];
oldSprite = &gSprites[mapObject->spriteId];
- if (!mapObject->active || !mapObject->mapobj_bit_17 || mapObject->localId != sprite->data1)
+ if (!mapObject->active || !mapObject->mapobj_bit_17 || mapObject->localId != sprite->data[1])
{
sprite->inUse = FALSE;
}
@@ -179,13 +179,13 @@ static void sub_81269E0(struct Sprite *sprite)
sprite->subspriteTableNum = oldSprite->subspriteTableNum;
sprite->invisible = oldSprite->invisible;
sprite->pos1.x = oldSprite->pos1.x;
- sprite->pos1.y = oldSprite->pos1.y + sub_81268D0(mapObject) + sprite->data2;
+ sprite->pos1.y = oldSprite->pos1.y + sub_81268D0(mapObject) + sprite->data[2];
sprite->centerToCornerVecX = oldSprite->centerToCornerVecX;
sprite->centerToCornerVecY = oldSprite->centerToCornerVecY;
sprite->pos2.x = oldSprite->pos2.x;
sprite->pos2.y = -oldSprite->pos2.y;
sprite->coordOffsetEnabled = oldSprite->coordOffsetEnabled;
- if (sprite->data7 == FALSE)
+ if (sprite->data[7] == FALSE)
{
sprite->oam.matrixNum = 0;
if (oldSprite->oam.matrixNum & 0x8)
@@ -224,15 +224,15 @@ void sub_8126BC4(u8 spriteId, u8 animNum, s16 x, s16 y)
struct Sprite *sprite;
sprite = &gSprites[spriteId];
- if (sprite->invisible || sprite->data0 != x || sprite->data1 != y)
+ if (sprite->invisible || sprite->data[0] != x || sprite->data[1] != y)
{
sub_80603CC(x, y, &x2, &y2);
sprite = &gSprites[spriteId];
sprite->pos1.x = x2 + 8;
sprite->pos1.y = y2 + 8;
sprite->invisible = FALSE;
- sprite->data0 = x;
- sprite->data1 = y;
+ sprite->data[0] = x;
+ sprite->data[1] = y;
StartSpriteAnim(sprite, animNum - 1);
}
}
@@ -249,10 +249,10 @@ u32 FldEff_Shadow(void)
if (spriteId != MAX_SPRITES)
{
gSprites[spriteId].coordOffsetEnabled = TRUE;
- gSprites[spriteId].data0 = gFieldEffectArguments[0];
- gSprites[spriteId].data1 = gFieldEffectArguments[1];
- gSprites[spriteId].data2 = gFieldEffectArguments[2];
- gSprites[spriteId].data3 = (graphicsInfo->height >> 1) - gUnknown_08401E36[graphicsInfo->shadowSize];
+ gSprites[spriteId].data[0] = gFieldEffectArguments[0];
+ gSprites[spriteId].data[1] = gFieldEffectArguments[1];
+ gSprites[spriteId].data[2] = gFieldEffectArguments[2];
+ gSprites[spriteId].data[3] = (graphicsInfo->height >> 1) - gUnknown_08401E36[graphicsInfo->shadowSize];
}
return 0;
}
@@ -263,7 +263,7 @@ void oamc_shadow(struct Sprite *sprite)
struct MapObject *mapObject;
struct Sprite *linkedSprite;
- if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjectId))
+ if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &mapObjectId))
{
FieldEffectStop(sprite, FLDEFF_SHADOW);
}
@@ -273,7 +273,7 @@ void oamc_shadow(struct Sprite *sprite)
linkedSprite = &gSprites[mapObject->spriteId];
sprite->oam.priority = linkedSprite->oam.priority;
sprite->pos1.x = linkedSprite->pos1.x;
- sprite->pos1.y = linkedSprite->pos1.y + sprite->data3;
+ sprite->pos1.y = linkedSprite->pos1.y + sprite->data[3];
if (!mapObject->active || !mapObject->mapobj_bit_22 || MetatileBehavior_IsPokeGrass(mapObject->mapobj_unk_1E) || MetatileBehavior_IsSurfableWaterOrUnderwater(mapObject->mapobj_unk_1E) || MetatileBehavior_IsSurfableWaterOrUnderwater(mapObject->mapobj_unk_1F) || MetatileBehavior_IsReflective(mapObject->mapobj_unk_1E) || MetatileBehavior_IsReflective(mapObject->mapobj_unk_1F))
{
FieldEffectStop(sprite, FLDEFF_SHADOW);
@@ -297,12 +297,12 @@ u32 FldEff_TallGrass(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
- sprite->data0 = gFieldEffectArguments[2];
- sprite->data1 = gFieldEffectArguments[0];
- sprite->data2 = gFieldEffectArguments[1];
- sprite->data3 = gFieldEffectArguments[4];
- sprite->data4 = gFieldEffectArguments[5];
- sprite->data5 = gFieldEffectArguments[6];
+ sprite->data[0] = gFieldEffectArguments[2];
+ sprite->data[1] = gFieldEffectArguments[0];
+ sprite->data[2] = gFieldEffectArguments[1];
+ sprite->data[3] = gFieldEffectArguments[4];
+ sprite->data[4] = gFieldEffectArguments[5];
+ sprite->data[5] = gFieldEffectArguments[6];
if (gFieldEffectArguments[7])
{
SeekSpriteAnim(sprite, 4);
@@ -320,28 +320,28 @@ void unc_grass_normal(struct Sprite *sprite)
u8 mapObjectId;
struct MapObject *mapObject;
- mapNum = sprite->data5 >> 8;
- mapGroup = sprite->data5;
+ mapNum = sprite->data[5] >> 8;
+ mapGroup = sprite->data[5];
if (gCamera.field_0 && (gSaveBlock1.location.mapNum != mapNum || gSaveBlock1.location.mapGroup != mapGroup))
{
- sprite->data1 -= gCamera.x;
- sprite->data2 -= gCamera.y;
- sprite->data5 = ((u8)gSaveBlock1.location.mapNum << 8) | (u8)gSaveBlock1.location.mapGroup;
+ sprite->data[1] -= gCamera.x;
+ sprite->data[2] -= gCamera.y;
+ sprite->data[5] = ((u8)gSaveBlock1.location.mapNum << 8) | (u8)gSaveBlock1.location.mapGroup;
}
- localId = sprite->data3 >> 8;
- mapNum = sprite->data3;
- mapGroup = sprite->data4;
- metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->data1, sprite->data2);
- if (TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId) || !MetatileBehavior_IsTallGrass(metatileBehavior) || (sprite->data7 && sprite->animEnded))
+ localId = sprite->data[3] >> 8;
+ mapNum = sprite->data[3];
+ mapGroup = sprite->data[4];
+ metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->data[1], sprite->data[2]);
+ if (TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId) || !MetatileBehavior_IsTallGrass(metatileBehavior) || (sprite->data[7] && sprite->animEnded))
{
FieldEffectStop(sprite, FLDEFF_TALL_GRASS);
}
else
{
mapObject = &gMapObjects[mapObjectId];
- if ((mapObject->coords2.x != sprite->data1 || mapObject->coords2.y != sprite->data2) && (mapObject->coords3.x != sprite->data1 || mapObject->coords3.y != sprite->data2))
+ if ((mapObject->coords2.x != sprite->data[1] || mapObject->coords2.y != sprite->data[2]) && (mapObject->coords3.x != sprite->data[1] || mapObject->coords3.y != sprite->data[2]))
{
- sprite->data7 = TRUE;
+ sprite->data[7] = TRUE;
}
metatileBehavior = 0;
if (sprite->animCmdIndex == 0)
@@ -349,7 +349,7 @@ void unc_grass_normal(struct Sprite *sprite)
metatileBehavior = 4;
}
sub_806487C(sprite, 0);
- sub_812882C(sprite, sprite->data0, metatileBehavior);
+ sub_812882C(sprite, sprite->data[0], metatileBehavior);
}
}
@@ -365,8 +365,8 @@ u32 FldEff_JumpTallGrass(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
- sprite->data0 = gFieldEffectArguments[2];
- sprite->data1 = 12;
+ sprite->data[0] = gFieldEffectArguments[2];
+ sprite->data[1] = 12;
}
return 0;
}
@@ -381,7 +381,7 @@ u8 sub_8126FF0(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y)
if (gSprites[i].inUse)
{
sprite = &gSprites[i];
- if (sprite->callback == unc_grass_normal && (x == sprite->data1 && y == sprite->data2) && (localId == (u8)(sprite->data3 >> 8) && mapNum == (sprite->data3 & 0xFF) && mapGroup == sprite->data4))
+ if (sprite->callback == unc_grass_normal && (x == sprite->data[1] && y == sprite->data[2]) && (localId == (u8)(sprite->data[3] >> 8) && mapNum == (sprite->data[3] & 0xFF) && mapGroup == sprite->data[4]))
{
return i;
}
@@ -406,12 +406,12 @@ u32 FldEff_LongGrass(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = ZCoordToPriority(gFieldEffectArguments[2]);
- sprite->data0 = gFieldEffectArguments[2];
- sprite->data1 = gFieldEffectArguments[0];
- sprite->data2 = gFieldEffectArguments[1];
- sprite->data3 = gFieldEffectArguments[4];
- sprite->data4 = gFieldEffectArguments[5];
- sprite->data5 = gFieldEffectArguments[6];
+ sprite->data[0] = gFieldEffectArguments[2];
+ sprite->data[1] = gFieldEffectArguments[0];
+ sprite->data[2] = gFieldEffectArguments[1];
+ sprite->data[3] = gFieldEffectArguments[4];
+ sprite->data[4] = gFieldEffectArguments[5];
+ sprite->data[5] = gFieldEffectArguments[6];
if (gFieldEffectArguments[7])
{
SeekSpriteAnim(sprite, 6);
@@ -429,31 +429,31 @@ void unc_grass_tall(struct Sprite *sprite)
u8 mapObjectId;
struct MapObject *mapObject;
- mapNum = sprite->data5 >> 8;
- mapGroup = sprite->data5;
+ mapNum = sprite->data[5] >> 8;
+ mapGroup = sprite->data[5];
if (gCamera.field_0 && (gSaveBlock1.location.mapNum != mapNum || gSaveBlock1.location.mapGroup != mapGroup))
{
- sprite->data1 -= gCamera.x;
- sprite->data2 -= gCamera.y;
- sprite->data5 = ((u8)gSaveBlock1.location.mapNum << 8) | (u8)gSaveBlock1.location.mapGroup;
+ sprite->data[1] -= gCamera.x;
+ sprite->data[2] -= gCamera.y;
+ sprite->data[5] = ((u8)gSaveBlock1.location.mapNum << 8) | (u8)gSaveBlock1.location.mapGroup;
}
- localId = sprite->data3 >> 8;
- mapNum = sprite->data3;
- mapGroup = sprite->data4;
- metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->data1, sprite->data2);
- if (TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId) || !MetatileBehavior_IsLongGrass(metatileBehavior) || (sprite->data7 && sprite->animEnded))
+ localId = sprite->data[3] >> 8;
+ mapNum = sprite->data[3];
+ mapGroup = sprite->data[4];
+ metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->data[1], sprite->data[2]);
+ if (TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId) || !MetatileBehavior_IsLongGrass(metatileBehavior) || (sprite->data[7] && sprite->animEnded))
{
FieldEffectStop(sprite, FLDEFF_LONG_GRASS);
}
else
{
mapObject = &gMapObjects[mapObjectId];
- if ((mapObject->coords2.x != sprite->data1 || mapObject->coords2.y != sprite->data2) && (mapObject->coords3.x != sprite->data1 || mapObject->coords3.y != sprite->data2))
+ if ((mapObject->coords2.x != sprite->data[1] || mapObject->coords2.y != sprite->data[2]) && (mapObject->coords3.x != sprite->data[1] || mapObject->coords3.y != sprite->data[2]))
{
- sprite->data7 = TRUE;
+ sprite->data[7] = TRUE;
}
sub_806487C(sprite, 0);
- sub_812882C(sprite, sprite->data0, 0);
+ sub_812882C(sprite, sprite->data[0], 0);
}
}
@@ -469,8 +469,8 @@ u32 FldEff_JumpLongGrass(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
- sprite->data0 = gFieldEffectArguments[2];
- sprite->data1 = 18;
+ sprite->data[0] = gFieldEffectArguments[2];
+ sprite->data[1] = 18;
}
return 0;
}
@@ -490,11 +490,11 @@ u32 FldEff_ShortGrass(void)
sprite = &(gSprites[spriteId]);
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gSprites[mapObject->spriteId].oam.priority;
- sprite->data0 = gFieldEffectArguments[0];
- sprite->data1 = gFieldEffectArguments[1];
- sprite->data2 = gFieldEffectArguments[2];
- sprite->data3 = gSprites[mapObject->spriteId].pos1.x;
- sprite->data4 = gSprites[mapObject->spriteId].pos1.y;
+ sprite->data[0] = gFieldEffectArguments[0];
+ sprite->data[1] = gFieldEffectArguments[1];
+ sprite->data[2] = gFieldEffectArguments[2];
+ sprite->data[3] = gSprites[mapObject->spriteId].pos1.x;
+ sprite->data[4] = gSprites[mapObject->spriteId].pos1.y;
}
return 0;
}
@@ -507,7 +507,7 @@ void sub_8127334(struct Sprite *sprite)
const struct MapObjectGraphicsInfo *graphicsInfo;
struct Sprite *linkedSprite;
- if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjectId) || !gMapObjects[mapObjectId].mapobj_bit_18)
+ if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &mapObjectId) || !gMapObjects[mapObjectId].mapobj_bit_18)
{
FieldEffectStop(sprite, FLDEFF_SHORT_GRASS);
}
@@ -517,10 +517,10 @@ void sub_8127334(struct Sprite *sprite)
linkedSprite = &gSprites[gMapObjects[mapObjectId].spriteId];
y = linkedSprite->pos1.y;
x = linkedSprite->pos1.x;
- if (x != sprite->data3 || y != sprite->data4)
+ if (x != sprite->data[3] || y != sprite->data[4])
{
- sprite->data3 = x;
- sprite->data4 = y;
+ sprite->data[3] = x;
+ sprite->data[4] = y;
if (sprite->animEnded)
{
StartSpriteAnim(sprite, 0);
@@ -547,7 +547,7 @@ u32 FldEff_SandFootprints(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
- sprite->data7 = FLDEFF_SAND_FOOTPRINTS;
+ sprite->data[7] = FLDEFF_SAND_FOOTPRINTS;
StartSpriteAnim(sprite, gFieldEffectArguments[4]);
}
return 0;
@@ -565,7 +565,7 @@ u32 FldEff_DeepSandFootprints(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
- sprite->data7 = FLDEFF_DEEP_SAND_FOOTPRINTS;
+ sprite->data[7] = FLDEFF_DEEP_SAND_FOOTPRINTS;
StartSpriteAnim(sprite, gFieldEffectArguments[4]);
}
return spriteId;
@@ -583,7 +583,7 @@ u32 FldEff_BikeTireTracks(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
- sprite->data7 = FLDEFF_BIKE_TIRE_TRACKS;
+ sprite->data[7] = FLDEFF_BIKE_TIRE_TRACKS;
StartSpriteAnim(sprite, gFieldEffectArguments[4]);
}
return spriteId;
@@ -591,14 +591,14 @@ u32 FldEff_BikeTireTracks(void)
void sub_8127584(struct Sprite *sprite)
{
- gUnknown_08401E40[sprite->data0](sprite);
+ gUnknown_08401E40[sprite->data[0]](sprite);
}
static void sub_81275A0(struct Sprite *sprite)
{
- if (++sprite->data1 > 40)
+ if (++sprite->data[1] > 40)
{
- sprite->data0 = 1;
+ sprite->data[0] = 1;
}
sub_806487C(sprite, FALSE);
}
@@ -606,11 +606,11 @@ static void sub_81275A0(struct Sprite *sprite)
static void sub_81275C4(struct Sprite *sprite)
{
sprite->invisible ^= 1;
- sprite->data1 ++;
+ sprite->data[1] ++;
sub_806487C(sprite, sprite->invisible);
- if (sprite->data1 > 56)
+ if (sprite->data[1] > 56)
{
- FieldEffectStop(sprite, sprite->data7);
+ FieldEffectStop(sprite, sprite->data[7]);
}
}
@@ -633,9 +633,9 @@ u32 FldEff_Splash(void)
sprite->coordOffsetEnabled = TRUE;
linkedSprite = &gSprites[mapObject->spriteId];
sprite->oam.priority = linkedSprite->oam.priority;
- sprite->data0 = gFieldEffectArguments[0];
- sprite->data1 = gFieldEffectArguments[1];
- sprite->data2 = gFieldEffectArguments[2];
+ sprite->data[0] = gFieldEffectArguments[0];
+ sprite->data[1] = gFieldEffectArguments[1];
+ sprite->data[2] = gFieldEffectArguments[2];
sprite->pos2.y = (graphicsInfo->height >> 1) - 4;
PlaySE(SE_MIZU);
}
@@ -646,7 +646,7 @@ void sub_81276B4(struct Sprite *sprite)
{
u8 mapObjectId;
- if (sprite->animEnded || TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjectId))
+ if (sprite->animEnded || TryGetFieldObjectIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &mapObjectId))
{
FieldEffectStop(sprite, FLDEFF_SPLASH);
}
@@ -670,8 +670,8 @@ u32 FldEff_JumpSmallSplash(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
- sprite->data0 = gFieldEffectArguments[2];
- sprite->data1 = FLDEFF_JUMP_SMALL_SPLASH;
+ sprite->data[0] = gFieldEffectArguments[2];
+ sprite->data[1] = FLDEFF_JUMP_SMALL_SPLASH;
}
return 0;
}
@@ -688,8 +688,8 @@ u32 FldEff_JumpBigSplash(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
- sprite->data0 = gFieldEffectArguments[2];
- sprite->data1 = FLDEFF_JUMP_BIG_SPLASH;
+ sprite->data[0] = gFieldEffectArguments[2];
+ sprite->data[1] = FLDEFF_JUMP_BIG_SPLASH;
}
return 0;
}
@@ -712,11 +712,11 @@ u32 FldEff_FeetInFlowingWater(void)
sprite->callback = sub_81278D8;
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gSprites[mapObject->spriteId].oam.priority;
- sprite->data0 = gFieldEffectArguments[0];
- sprite->data1 = gFieldEffectArguments[1];
- sprite->data2 = gFieldEffectArguments[2];
- sprite->data3 = -1;
- sprite->data4 = -1;
+ sprite->data[0] = gFieldEffectArguments[0];
+ sprite->data[1] = gFieldEffectArguments[1];
+ sprite->data[2] = gFieldEffectArguments[2];
+ sprite->data[3] = -1;
+ sprite->data[4] = -1;
sprite->pos2.y = (graphicsInfo->height >> 1) - 4;
StartSpriteAnim(sprite, 1);
}
@@ -729,7 +729,7 @@ static void sub_81278D8(struct Sprite *sprite)
struct Sprite *linkedSprite;
struct MapObject *mapObject;
- if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjectId) || !gMapObjects[mapObjectId].mapobj_bit_19)
+ if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &mapObjectId) || !gMapObjects[mapObjectId].mapobj_bit_19)
{
FieldEffectStop(sprite, FLDEFF_FEET_IN_FLOWING_WATER);
}
@@ -741,10 +741,10 @@ static void sub_81278D8(struct Sprite *sprite)
sprite->pos1.y = linkedSprite->pos1.y;
sprite->subpriority = linkedSprite->subpriority;
sub_806487C(sprite, FALSE);
- if (mapObject->coords2.x != sprite->data3 || mapObject->coords2.y != sprite->data4)
+ if (mapObject->coords2.x != sprite->data[3] || mapObject->coords2.y != sprite->data[4])
{
- sprite->data3 = mapObject->coords2.x;
- sprite->data4 = mapObject->coords2.y;
+ sprite->data[3] = mapObject->coords2.x;
+ sprite->data[4] = mapObject->coords2.y;
if (!sprite->invisible)
{
PlaySE(SE_MIZU);
@@ -764,7 +764,7 @@ u32 FldEff_Ripple(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
- sprite->data0 = FLDEFF_RIPPLE;
+ sprite->data[0] = FLDEFF_RIPPLE;
}
return 0;
}
@@ -784,11 +784,11 @@ u32 FldEff_HotSpringsWater(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gSprites[mapObject->spriteId].oam.priority;
- sprite->data0 = gFieldEffectArguments[0];
- sprite->data1 = gFieldEffectArguments[1];
- sprite->data2 = gFieldEffectArguments[2];
- sprite->data3 = gSprites[mapObject->spriteId].pos1.x;
- sprite->data4 = gSprites[mapObject->spriteId].pos1.y;
+ sprite->data[0] = gFieldEffectArguments[0];
+ sprite->data[1] = gFieldEffectArguments[1];
+ sprite->data[2] = gFieldEffectArguments[2];
+ sprite->data[3] = gSprites[mapObject->spriteId].pos1.x;
+ sprite->data[4] = gSprites[mapObject->spriteId].pos1.y;
}
return 0;
}
@@ -799,7 +799,7 @@ void sub_8127A7C(struct Sprite *sprite)
const struct MapObjectGraphicsInfo *graphicsInfo;
struct Sprite *linkedSprite;
- if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjectId) || !gMapObjects[mapObjectId].mapobj_bit_21)
+ if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &mapObjectId) || !gMapObjects[mapObjectId].mapobj_bit_21)
{
FieldEffectStop(sprite, FLDEFF_HOT_SPRINGS_WATER);
}
@@ -826,7 +826,7 @@ u32 FldEff_Unknown19(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
- sprite->data0 = FLDEFF_UNKNOWN_19;
+ sprite->data[0] = FLDEFF_UNKNOWN_19;
}
return 0;
}
@@ -843,7 +843,7 @@ u32 FldEff_Unknown20(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
- sprite->data0 = FLDEFF_UNKNOWN_20;
+ sprite->data[0] = FLDEFF_UNKNOWN_20;
}
return 0;
}
@@ -860,7 +860,7 @@ u32 FldEff_Unknown21(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
- sprite->data0 = FLDEFF_UNKNOWN_21;
+ sprite->data[0] = FLDEFF_UNKNOWN_21;
}
return 0;
}
@@ -877,7 +877,7 @@ u32 FldEff_Unknown22(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
- sprite->data0 = FLDEFF_UNKNOWN_22;
+ sprite->data[0] = FLDEFF_UNKNOWN_22;
}
return 0;
}
@@ -909,26 +909,26 @@ u32 FldEff_Ash(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
- sprite->data1 = gFieldEffectArguments[0];
- sprite->data2 = gFieldEffectArguments[1];
- sprite->data3 = gFieldEffectArguments[4];
- sprite->data4 = gFieldEffectArguments[5];
+ sprite->data[1] = gFieldEffectArguments[0];
+ sprite->data[2] = gFieldEffectArguments[1];
+ sprite->data[3] = gFieldEffectArguments[4];
+ sprite->data[4] = gFieldEffectArguments[5];
}
return 0;
}
void sub_8127D84(struct Sprite *sprite)
{
- gUnknown_08401E48[sprite->data0](sprite);
+ gUnknown_08401E48[sprite->data[0]](sprite);
}
static void sub_8127DA0(struct Sprite *sprite)
{
sprite->invisible = TRUE;
sprite->animPaused = TRUE;
- if (--sprite->data4 == 0)
+ if (--sprite->data[4] == 0)
{
- sprite->data0 = 1;
+ sprite->data[0] = 1;
}
}
@@ -936,10 +936,10 @@ static void sub_8127DD0(struct Sprite *sprite)
{
sprite->invisible = FALSE;
sprite->animPaused = FALSE;
- MapGridSetMetatileIdAt(sprite->data1, sprite->data2, sprite->data3);
- CurrentMapDrawMetatileAt(sprite->data1, sprite->data2);
+ MapGridSetMetatileIdAt(sprite->data[1], sprite->data[2], sprite->data[3]);
+ CurrentMapDrawMetatileAt(sprite->data[1], sprite->data[2]);
gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_2 = TRUE;
- sprite->data0 = 2;
+ sprite->data[0] = 2;
}
static void sub_8127E30(struct Sprite *sprite)
@@ -963,10 +963,10 @@ u32 FldEff_SurfBlob(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.paletteNum = 0;
- sprite->data2 = gFieldEffectArguments[2];
- sprite->data3 = -1;
- sprite->data6 = -1;
- sprite->data7 = -1;
+ sprite->data[2] = gFieldEffectArguments[2];
+ sprite->data[3] = -1;
+ sprite->data[6] = -1;
+ sprite->data[7] = -1;
}
FieldEffectActiveListRemove(FLDEFF_SURF_BLOB);
return spriteId;
@@ -974,33 +974,33 @@ u32 FldEff_SurfBlob(void)
void sub_8127ED0(u8 spriteId, u8 value)
{
- gSprites[spriteId].data0 = (gSprites[spriteId].data0 & ~0xF) | (value & 0xF);
+ gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF) | (value & 0xF);
}
void sub_8127EFC(u8 spriteId, u8 value)
{
- gSprites[spriteId].data0 = (gSprites[spriteId].data0 & ~0xF0) | ((value & 0xF) << 4);
+ gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF0) | ((value & 0xF) << 4);
}
void sub_8127F28(u8 spriteId, u8 value, s16 data1)
{
- gSprites[spriteId].data0 = (gSprites[spriteId].data0 & ~0xF00) | ((value & 0xF) << 8);
- gSprites[spriteId].data1 = data1;
+ gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF00) | ((value & 0xF) << 8);
+ gSprites[spriteId].data[1] = data1;
}
static u8 sub_8127F5C(struct Sprite *sprite)
{
- return sprite->data0 & 0xF;
+ return sprite->data[0] & 0xF;
}
static u8 sub_8127F64(struct Sprite *sprite)
{
- return (sprite->data0 & 0xF0) >> 4;
+ return (sprite->data[0] & 0xF0) >> 4;
}
static u8 sub_8127F70(struct Sprite *sprite)
{
- return (sprite->data0 & 0xF00) >> 8;
+ return (sprite->data[0] & 0xF00) >> 8;
}
void sub_8127F7C(struct Sprite *sprite)
@@ -1008,7 +1008,7 @@ void sub_8127F7C(struct Sprite *sprite)
struct MapObject *mapObject;
struct Sprite *linkedSprite;
- mapObject = &gMapObjects[sprite->data2];
+ mapObject = &gMapObjects[sprite->data[2]];
linkedSprite = &gSprites[mapObject->spriteId];
sub_8127FD4(mapObject, sprite);
sub_812800C(mapObject, sprite);
@@ -1036,15 +1036,15 @@ static void sub_812800C(struct MapObject *mapObject, struct Sprite *sprite)
x = mapObject->coords2.x;
y = mapObject->coords2.y;
- if (sprite->pos2.y == 0 && (x != sprite->data6 || y != sprite->data7))
+ if (sprite->pos2.y == 0 && (x != sprite->data[6] || y != sprite->data[7]))
{
- sprite->data5 = sprite->pos2.y;
- for (sprite->data6 = x, sprite->data7 = y, i = DIR_SOUTH; i <= DIR_EAST; i ++, x = sprite->data6, y = sprite->data7)
+ sprite->data[5] = sprite->pos2.y;
+ for (sprite->data[6] = x, sprite->data[7] = y, i = DIR_SOUTH; i <= DIR_EAST; i ++, x = sprite->data[6], y = sprite->data[7])
{
MoveCoords(i, &x, &y);
if (MapGridGetZCoordAt(x, y) == 3)
{
- sprite->data5 ++;
+ sprite->data[5] ++;
break;
}
}
@@ -1141,13 +1141,13 @@ static void sub_81280A0(struct MapObject *mapObject, struct Sprite *linkedSprite
v0 = sub_8127F5C(sprite);
if (v0 != 0)
{
- if (((u16)(++ sprite->data4) & unk_8401E5A[sprite->data5]) == 0)
+ if (((u16)(++ sprite->data[4]) & unk_8401E5A[sprite->data[5]]) == 0)
{
- sprite->pos2.y += sprite->data3;
+ sprite->pos2.y += sprite->data[3];
}
- if ((sprite->data4 & 0x0F) == 0)
+ if ((sprite->data[4] & 0x0F) == 0)
{
- sprite->data3 = -sprite->data3;
+ sprite->data[3] = -sprite->data[3];
}
if (v0 != 2)
{
@@ -1157,7 +1157,7 @@ static void sub_81280A0(struct MapObject *mapObject, struct Sprite *linkedSprite
}
else
{
- linkedSprite->pos2.y = sprite->data1 + sprite->pos2.y;
+ linkedSprite->pos2.y = sprite->data[1] + sprite->pos2.y;
}
sprite->pos1.x = linkedSprite->pos1.x;
sprite->pos1.y = linkedSprite->pos1.y + 8;
@@ -1174,8 +1174,8 @@ u8 sub_8128124(u8 oldSpriteId)
sprite = &gSprites[spriteId];
sprite->callback = sub_8128174;
sprite->invisible = TRUE;
- sprite->data0 = oldSpriteId;
- sprite->data1 = 1;
+ sprite->data[0] = oldSpriteId;
+ sprite->data[1] = 1;
return spriteId;
}
@@ -1183,14 +1183,14 @@ static void sub_8128174(struct Sprite *sprite)
{
struct Sprite *oldSprite;
- oldSprite = &gSprites[sprite->data0];
- if (((sprite->data2++) & 0x03) == 0)
+ oldSprite = &gSprites[sprite->data[0]];
+ if (((sprite->data[2]++) & 0x03) == 0)
{
- oldSprite->pos2.y += sprite->data1;
+ oldSprite->pos2.y += sprite->data[1];
}
- if ((sprite->data2 & 0x0F) == 0)
+ if ((sprite->data[2] & 0x0F) == 0)
{
- sprite->data1 = -sprite->data1;
+ sprite->data[1] = -sprite->data[1];
}
}
@@ -1206,8 +1206,8 @@ u32 FldEff_Dust(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
- sprite->data0 = gFieldEffectArguments[2];
- sprite->data1 = 10;
+ sprite->data[0] = gFieldEffectArguments[2];
+ sprite->data[1] = 10;
}
return 0;
}
@@ -1229,11 +1229,11 @@ u32 FldEff_SandPile(void)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gSprites[mapObject->spriteId].oam.priority;
- sprite->data0 = gFieldEffectArguments[0];
- sprite->data1 = gFieldEffectArguments[1];
- sprite->data2 = gFieldEffectArguments[2];
- sprite->data3 = gSprites[mapObject->spriteId].pos1.x;
- sprite->data4 = gSprites[mapObject->spriteId].pos1.y;
+ sprite->data[0] = gFieldEffectArguments[0];
+ sprite->data[1] = gFieldEffectArguments[1];
+ sprite->data[2] = gFieldEffectArguments[2];
+ sprite->data[3] = gSprites[mapObject->spriteId].pos1.x;
+ sprite->data[4] = gSprites[mapObject->spriteId].pos1.y;
sprite->pos2.y = (graphicsInfo->height >> 1) - 2;
SeekSpriteAnim(sprite, 2);
}
@@ -1246,7 +1246,7 @@ void sub_81282E0(struct Sprite *sprite)
s16 x;
s16 y;
- if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjectId) || !gMapObjects[mapObjectId].mapobj_bit_20)
+ if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &mapObjectId) || !gMapObjects[mapObjectId].mapobj_bit_20)
{
FieldEffectStop(sprite, FLDEFF_SAND_PILE);
}
@@ -1254,10 +1254,10 @@ void sub_81282E0(struct Sprite *sprite)
{
y = gSprites[gMapObjects[mapObjectId].spriteId].pos1.y;
x = gSprites[gMapObjects[mapObjectId].spriteId].pos1.x;
- if (x != sprite->data3 || y != sprite->data4)
+ if (x != sprite->data[3] || y != sprite->data[4])
{
- sprite->data3 = x;
- sprite->data4 = y;
+ sprite->data[3] = x;
+ sprite->data[4] = y;
if (sprite->animEnded)
{
StartSpriteAnim(sprite, 0);
@@ -1288,9 +1288,9 @@ u32 FldEff_Bubbles(void)
void sub_8128410(struct Sprite *sprite)
{
- sprite->data0 += 0x80;
- sprite->data0 &= 0x100;
- sprite->pos1.y -= sprite->data0 >> 8;
+ sprite->data[0] += 0x80;
+ sprite->data[0] &= 0x100;
+ sprite->pos1.y -= sprite->data[0] >> 8;
sub_806487C(sprite, FALSE);
if (sprite->invisible || sprite->animEnded)
{
@@ -1311,7 +1311,7 @@ u32 FldEff_BerryTreeGrowthSparkle(void)
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
sprite->oam.paletteNum = 5;
- sprite->data0 = FLDEFF_BERRY_TREE_GROWTH_SPARKLE;
+ sprite->data[0] = FLDEFF_BERRY_TREE_GROWTH_SPARKLE;
}
return 0;
}
@@ -1349,10 +1349,10 @@ static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx, u8 paletteNum)
sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled ++;
sprite->oam.paletteNum = paletteNum;
- sprite->data1 = fldEff;
- sprite->data2 = gFieldEffectArguments[0];
- sprite->data3 = gFieldEffectArguments[1];
- sprite->data4 = gFieldEffectArguments[2];
+ sprite->data[1] = fldEff;
+ sprite->data[2] = gFieldEffectArguments[0];
+ sprite->data[3] = gFieldEffectArguments[1];
+ sprite->data[4] = gFieldEffectArguments[2];
}
return spriteId;
}
@@ -1363,9 +1363,9 @@ void sub_81285AC(struct Sprite *sprite)
const struct MapObjectGraphicsInfo *graphicsInfo;
struct Sprite *linkedSprite;
- if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data2, sprite->data3, sprite->data4, &mapObjectId))
+ if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data[2], sprite->data[3], sprite->data[4], &mapObjectId))
{
- FieldEffectStop(sprite, sprite->data1);
+ FieldEffectStop(sprite, sprite->data[1]);
}
// else {
graphicsInfo = GetFieldObjectGraphicsInfo(gMapObjects[mapObjectId].graphicsId);
@@ -1374,18 +1374,18 @@ void sub_81285AC(struct Sprite *sprite)
sprite->pos1.x = linkedSprite->pos1.x;
sprite->pos1.y = (graphicsInfo->height >> 1) + linkedSprite->pos1.y - 16;
sprite->subpriority = linkedSprite->subpriority - 1;
- if (sprite->data0 == 1)
+ if (sprite->data[0] == 1)
{
- sprite->data0 ++;
+ sprite->data[0] ++;
StartSpriteAnim(sprite, 1);
}
- if (sprite->data0 == 2 && sprite->animEnded)
+ if (sprite->data[0] == 2 && sprite->animEnded)
{
- sprite->data7 = 1;
+ sprite->data[7] = 1;
}
- if (sprite->data0 == 3)
+ if (sprite->data[0] == 3)
{
- FieldEffectStop(sprite, sprite->data1);
+ FieldEffectStop(sprite, sprite->data[1]);
}
// }
}
@@ -1394,7 +1394,7 @@ void sub_812869C(struct MapObject *mapObject)
{
if (mapObject->mapobj_unk_21 == 1)
{
- gSprites[mapObject->mapobj_unk_1A].data0 ++;
+ gSprites[mapObject->mapobj_unk_1A].data[0] ++;
}
}
@@ -1411,10 +1411,10 @@ bool8 sub_81286C4(struct MapObject *mapObject)
return TRUE;
}
sprite = &gSprites[mapObject->mapobj_unk_1A];
- if (sprite->data7)
+ if (sprite->data[7])
{
mapObject->mapobj_unk_21 = 2;
- sprite->data0 ++;
+ sprite->data[0] ++;
return TRUE;
}
return FALSE;
@@ -1438,19 +1438,19 @@ u32 FldEff_Sparkle(void)
void sub_8128774(struct Sprite *sprite)
{
- if (sprite->data0 == 0)
+ if (sprite->data[0] == 0)
{
if (sprite->animEnded)
{
sprite->invisible = TRUE;
- sprite->data0 ++;
+ sprite->data[0] ++;
}
- if (sprite->data0 == 0)
+ if (sprite->data[0] == 0)
{
return;
}
}
- if (++ sprite->data1 >= 35)
+ if (++ sprite->data[1] >= 35)
{
FieldEffectStop(sprite, FLDEFF_SPARKLE);
}
@@ -1460,12 +1460,12 @@ void sub_81287C4(struct Sprite *sprite)
{
if (sprite->animEnded)
{
- FieldEffectStop(sprite, sprite->data1);
+ FieldEffectStop(sprite, sprite->data[1]);
}
else
{
sub_806487C(sprite, FALSE);
- SetObjectSubpriorityByZCoord(sprite->data0, sprite, 0);
+ SetObjectSubpriorityByZCoord(sprite->data[0], sprite, 0);
}
}
@@ -1473,7 +1473,7 @@ void sub_8128800(struct Sprite *sprite)
{
if (sprite->animEnded)
{
- FieldEffectStop(sprite, sprite->data0);
+ FieldEffectStop(sprite, sprite->data[0]);
}
else
{
diff --git a/src/field/field_fadetransition.c b/src/field/field_fadetransition.c
index 82776d18c..829ce2dfa 100644
--- a/src/field/field_fadetransition.c
+++ b/src/field/field_fadetransition.c
@@ -17,7 +17,7 @@
#include "palette.h"
#include "overworld.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "start_menu.h"
#include "task.h"
diff --git a/src/field/field_ground_effect.c b/src/field/field_ground_effect.c
index 5af8ea3e3..25b678ff9 100644
--- a/src/field/field_ground_effect.c
+++ b/src/field/field_ground_effect.c
@@ -458,76 +458,52 @@ bool8 AreZCoordsCompatible(u8 a, u8 b)
void GroundEffect_SpawnOnTallGrass(struct MapObject *mapObj, struct Sprite *sprite)
{
- u8 *ptr;
-
gFieldEffectArguments[0] = mapObj->coords2.x;
gFieldEffectArguments[1] = mapObj->coords2.y;
gFieldEffectArguments[2] = mapObj->elevation;
gFieldEffectArguments[3] = 2;
- gFieldEffectArguments[4] = (mapObj->localId << 8) | mapObj->mapNum;
+ gFieldEffectArguments[4] = mapObj->localId << 8 | mapObj->mapNum;
gFieldEffectArguments[5] = mapObj->mapGroup;
-
- ptr = (u8 *)&gSaveBlock1;
- gFieldEffectArguments[6] = ((u8)gSaveBlock1.location.mapNum << 8)
- | (u8)gSaveBlock1.location.mapGroup;
-
+ gFieldEffectArguments[6] = (u8)gSaveBlock1.location.mapNum << 8 | (u8)gSaveBlock1.location.mapGroup;
gFieldEffectArguments[7] = 1;
FieldEffectStart(FLDEFF_TALL_GRASS);
}
void sub_8063E94(struct MapObject *mapObj, struct Sprite *sprite)
{
- u8 *ptr;
-
gFieldEffectArguments[0] = mapObj->coords2.x;
gFieldEffectArguments[1] = mapObj->coords2.y;
gFieldEffectArguments[2] = mapObj->elevation;
gFieldEffectArguments[3] = 2;
- gFieldEffectArguments[4] = (mapObj->localId << 8) | mapObj->mapNum;
+ gFieldEffectArguments[4] = mapObj->localId << 8 | mapObj->mapNum;
gFieldEffectArguments[5] = mapObj->mapGroup;
-
- ptr = (u8 *)&gSaveBlock1;
- gFieldEffectArguments[6] = ((u8)gSaveBlock1.location.mapNum << 8)
- | (u8)gSaveBlock1.location.mapGroup;
-
+ gFieldEffectArguments[6] = (u8)gSaveBlock1.location.mapNum << 8 | (u8)gSaveBlock1.location.mapGroup;
gFieldEffectArguments[7] = 0;
FieldEffectStart(FLDEFF_TALL_GRASS);
}
void sub_8063EE0(struct MapObject *mapObj, struct Sprite *sprite)
{
- u8 *ptr;
-
gFieldEffectArguments[0] = mapObj->coords2.x;
gFieldEffectArguments[1] = mapObj->coords2.y;
gFieldEffectArguments[2] = mapObj->elevation;
gFieldEffectArguments[3] = 2;
- gFieldEffectArguments[4] = (mapObj->localId << 8) | mapObj->mapNum;
+ gFieldEffectArguments[4] = mapObj->localId << 8 | mapObj->mapNum;
gFieldEffectArguments[5] = mapObj->mapGroup;
-
- ptr = (u8 *)&gSaveBlock1;
- gFieldEffectArguments[6] = ((u8)gSaveBlock1.location.mapNum << 8)
- | (u8)gSaveBlock1.location.mapGroup;
-
+ gFieldEffectArguments[6] = (u8)gSaveBlock1.location.mapNum << 8 | (u8)gSaveBlock1.location.mapGroup;
gFieldEffectArguments[7] = 1;
FieldEffectStart(FLDEFF_LONG_GRASS);
}
void sub_8063F2C(struct MapObject *mapObj, struct Sprite *sprite)
{
- u8 *ptr;
-
gFieldEffectArguments[0] = mapObj->coords2.x;
gFieldEffectArguments[1] = mapObj->coords2.y;
gFieldEffectArguments[2] = mapObj->elevation;
gFieldEffectArguments[3] = 2;
gFieldEffectArguments[4] = (mapObj->localId << 8) | mapObj->mapNum;
gFieldEffectArguments[5] = mapObj->mapGroup;
-
- ptr = (u8 *)&gSaveBlock1;
- gFieldEffectArguments[6] = ((u8)gSaveBlock1.location.mapNum << 8)
- | (u8)gSaveBlock1.location.mapGroup;
-
+ gFieldEffectArguments[6] = (u8)gSaveBlock1.location.mapNum << 8 | (u8)gSaveBlock1.location.mapGroup;
gFieldEffectArguments[7] = 0;
FieldEffectStart(FLDEFF_LONG_GRASS);
}
diff --git a/src/field/field_map_obj.c b/src/field/field_map_obj.c
index 0cba448a9..81c0c5854 100644
--- a/src/field/field_map_obj.c
+++ b/src/field/field_map_obj.c
@@ -10,12 +10,12 @@
#include "field_player_avatar.h"
#include "fieldmap.h"
#include "palette.h"
-#include "rng.h"
+#include "random.h"
#include "overworld.h"
#include "sprite.h"
#include "metatile_behavior.h"
-#include "map_constants.h"
-#include "map_object_constants.h"
+#include "constants/maps.h"
+#include "constants/map_objects.h"
#include "trainer_see.h"
// rodata
@@ -1354,7 +1354,7 @@ const u32 gFieldEffectPic_ShadowMedium[] = INCBIN_U32("graphics/field_effect_obj
const u32 gFieldEffectPic_ShadowLarge[] = INCBIN_U32("graphics/field_effect_objects/pics/shadow_large.4bpp");
const u32 gFieldEffectPic_ShadowExtraLarge[] = INCBIN_U32("graphics/field_effect_objects/pics/shadow_extra_large.4bpp");
const u32 filler_8368A08[0x48] = {};
-const u32 gFieldEffectPic_CutGrass[] = INCBIN_U32("graphics/field_effect_objects/pics/cut_grass.4bpp");
+const u8 gFieldEffectPic_CutGrass[] = INCBIN_U8("graphics/field_effect_objects/pics/cut_grass.4bpp");
const u32 FieldEffectPic_CutGrass_Copy[] = INCBIN_U32("graphics/field_effect_objects/pics/cut_grass.4bpp");
const u16 gFieldEffectObjectPalette6[] = INCBIN_U16("graphics/field_effect_objects/palettes/06.gbapal");
const u32 gFieldEffectPic_Ripple_0[] = INCBIN_U32("graphics/field_effect_objects/pics/ripple/0.4bpp");
@@ -1578,13 +1578,13 @@ void (*const gUnknown_0836DA88[])(struct Sprite *) =
const u8 gUnknown_0836DBBC[] = {0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const u8 gUnknown_0836DC09[] = {DIR_SOUTH, DIR_SOUTH, DIR_SOUTH, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_SOUTH, DIR_SOUTH, DIR_WEST, DIR_NORTH, DIR_NORTH, DIR_SOUTH, DIR_SOUTH, DIR_SOUTH, DIR_SOUTH, DIR_NORTH, DIR_SOUTH, DIR_SOUTH, DIR_SOUTH, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST, DIR_NORTH, DIR_WEST, DIR_SOUTH, DIR_EAST, DIR_WEST, DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_EAST, DIR_NORTH, DIR_WEST, DIR_SOUTH, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_SOUTH, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST, DIR_SOUTH};
-#include "data/field_map_obj/map_object_graphics_info_pointers.h"
-#include "data/field_map_obj/field_effect_object_template_pointers.h"
-#include "data/field_map_obj/map_object_pic_tables.h"
-#include "data/field_map_obj/map_object_anims.h"
-#include "data/field_map_obj/base_oam.h"
-#include "data/field_map_obj/map_object_subsprites.h"
-#include "data/field_map_obj/map_object_graphics_info.h"
+#include "../data/field_map_obj/map_object_graphics_info_pointers.h"
+#include "../data/field_map_obj/field_effect_object_template_pointers.h"
+#include "../data/field_map_obj/map_object_pic_tables.h"
+#include "../data/field_map_obj/map_object_anims.h"
+#include "../data/field_map_obj/base_oam.h"
+#include "../data/field_map_obj/map_object_subsprites.h"
+#include "../data/field_map_obj/map_object_graphics_info.h"
const struct SpritePalette gUnknown_0837377C[] = {
{gMapObjectPalette0, 0x1103},
@@ -1790,14 +1790,14 @@ const u16 *const gUnknown_0837399C[] = {
Unknown_8373988
};
-#include "data/field_map_obj/berry_tree_graphics_tables.h"
-#include "data/field_map_obj/field_effect_objects.h"
+#include "../data/field_map_obj/berry_tree_graphics_tables.h"
+#include "../data/field_map_obj/field_effect_objects.h"
const s16 gUnknown_0837520C[] = {0x20, 0x40, 0x60, 0x80};
const s16 gUnknown_08375204[] = {0x20, 0x40, 0x80, 0xc0};
const s16 gUnknown_0837521C[] = {0x20, 0x30, 0x40, 0x50};
-#include "data/field_map_obj/callback_subroutine_pointers.h"
+#include "../data/field_map_obj/callback_subroutine_pointers.h"
const u8 gUnknown_083755F4[] = {0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x00, 0x01, 0x01};
const u8 gUnknown_083755FD[] = {0x04, 0x04, 0x05, 0x06, 0x07, 0x04, 0x04, 0x05, 0x05};
@@ -1886,7 +1886,7 @@ const u8 gUnknown_08375767[][4] = {
{3, 4, 2, 1}
};
-#include "data/field_map_obj/anim_func_ptrs.h"
+#include "../data/field_map_obj/anim_func_ptrs.h"
// text
@@ -2343,7 +2343,7 @@ u8 sub_805AFCC(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *
sprite->pos1.y += 16 + sprite->centerToCornerVecY;
sprite->oam.paletteNum = gfxInfo->paletteSlot;
sprite->coordOffsetEnabled = TRUE;
- sprite->data0 = mapObjectId;
+ sprite->data[0] = mapObjectId;
mapObject->spriteId = spriteId;
mapObject->mapobj_bit_12 = gfxInfo->inanimate;
if (!mapObject->mapobj_bit_12)
@@ -2489,8 +2489,8 @@ u8 sub_805B410(u8 graphicsId, u8 b, s16 x, s16 y, u8 elevation, u8 direction)
sprite->pos1.y += sprite->centerToCornerVecY;
sprite->oam.paletteNum = gfxInfo->paletteSlot;
sprite->coordOffsetEnabled = TRUE;
- sprite->data0 = b;
- sprite->data1 = elevation;
+ sprite->data[0] = b;
+ sprite->data[1] = elevation;
if (gfxInfo->paletteSlot == 10)
npc_load_two_palettes__and_record(gfxInfo->paletteTag1, gfxInfo->paletteSlot);
if (subspriteTables != NULL)
@@ -2640,7 +2640,7 @@ void sub_805B75C(u8 a, s16 b, s16 c)
SetSubspriteTables(sprite, subspriteTables);
sprite->oam.paletteNum = gfxInfo->paletteSlot;
sprite->coordOffsetEnabled = TRUE;
- sprite->data0 = a;
+ sprite->data[0] = a;
mapObject->spriteId = spriteId;
if (!mapObject->mapobj_bit_12 && mapObject->animPattern != 11)
StartSpriteAnim(sprite, FieldObjectDirectionToImageAnimId(mapObject->mapobj_unk_18));
@@ -2775,11 +2775,11 @@ void npc_by_local_id_and_map_set_field_1_bit_x20(u8 localId, u8 mapNum, u8 mapGr
gMapObjects[mapObjectId].mapobj_bit_13 = d;
}
-void FieldObjectGetLocalIdAndMap(struct MapObject *mapObject, u8 *localId, u8 *mapNum, u8 *mapGroup)
+void FieldObjectGetLocalIdAndMap(struct MapObject *mapObject, void *localId, void *mapNum, void *mapGroup)
{
- *localId = mapObject->localId;
- *mapNum = mapObject->mapNum;
- *mapGroup = mapObject->mapGroup;
+ *(u8 *)localId = mapObject->localId;
+ *(u8 *)mapNum = mapObject->mapNum;
+ *(u8 *)mapGroup = mapObject->mapGroup;
}
void sub_805BCC0(s16 x, s16 y)
@@ -3042,7 +3042,7 @@ u8 AddCameraObject(u8 a)
u8 spriteId = CreateSprite(&gSpriteTemplate_830FD24, 0, 0, 4);
gSprites[spriteId].invisible = TRUE;
- gSprites[spriteId].data0 = a;
+ gSprites[spriteId].data[0] = a;
return spriteId;
}
@@ -3050,35 +3050,35 @@ void ObjectCB_CameraObject(struct Sprite *sprite)
{
void (*cameraObjectFuncs[3])(struct Sprite *);
memcpy(cameraObjectFuncs, gCameraObjectFuncs, sizeof gCameraObjectFuncs);
- cameraObjectFuncs[sprite->data1](sprite);
+ cameraObjectFuncs[sprite->data[1]](sprite);
}
void CameraObject_0(struct Sprite *sprite)
{
- sprite->pos1.x = gSprites[sprite->data0].pos1.x;
- sprite->pos1.y = gSprites[sprite->data0].pos1.y;
+ sprite->pos1.x = gSprites[sprite->data[0]].pos1.x;
+ sprite->pos1.y = gSprites[sprite->data[0]].pos1.y;
sprite->invisible = TRUE;
- sprite->data1 = 1;
+ sprite->data[1] = 1;
CameraObject_1(sprite);
}
void CameraObject_1(struct Sprite *sprite)
{
- s16 x = gSprites[sprite->data0].pos1.x;
- s16 y = gSprites[sprite->data0].pos1.y;
+ s16 x = gSprites[sprite->data[0]].pos1.x;
+ s16 y = gSprites[sprite->data[0]].pos1.y;
- sprite->data2 = x - sprite->pos1.x;
- sprite->data3 = y - sprite->pos1.y;
+ sprite->data[2] = x - sprite->pos1.x;
+ sprite->data[3] = y - sprite->pos1.y;
sprite->pos1.x = x;
sprite->pos1.y = y;
}
void CameraObject_2(struct Sprite *sprite)
{
- sprite->pos1.x = gSprites[sprite->data0].pos1.x;
- sprite->pos1.y = gSprites[sprite->data0].pos1.y;
- sprite->data2 = 0;
- sprite->data3 = 0;
+ sprite->pos1.x = gSprites[sprite->data[0]].pos1.x;
+ sprite->pos1.y = gSprites[sprite->data[0]].pos1.y;
+ sprite->data[2] = 0;
+ sprite->data[3] = 0;
}
struct Sprite *FindCameraObject(void)
@@ -3099,7 +3099,7 @@ void CameraObjectReset1(void)
if (cameraSprite != NULL)
{
- cameraSprite->data1 = 0;
+ cameraSprite->data[1] = 0;
cameraSprite->callback(cameraSprite);
}
}
@@ -3110,7 +3110,7 @@ void CameraObjectSetFollowedObjectId(u8 spriteId)
if (cameraSprite != NULL)
{
- cameraSprite->data0 = spriteId;
+ cameraSprite->data[0] = spriteId;
CameraObjectReset1();
}
}
@@ -3122,14 +3122,14 @@ u8 CameraObjectGetFollowedObjectId(void)
if (cameraSprite == NULL)
return 64;
else
- return cameraSprite->data0;
+ return cameraSprite->data[0];
}
void CameraObjectReset2(void)
{
struct Sprite *cameraSprite = FindCameraObject();
- cameraSprite->data1 = 2;
+ cameraSprite->data[1] = 2;
}
u8 unref_sub_805C43C(struct Sprite *src, s16 x, s16 y, u8 subpriority)
@@ -3333,7 +3333,7 @@ fieldmap_object_cb(sub_805C8AC, sub_805C8D0, gUnknown_08375224);
u8 sub_805C8F0(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -3342,7 +3342,7 @@ extern void FieldObjectSetRegularAnim(struct MapObject *, struct Sprite *, u8);
u8 sub_805C904(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -3356,7 +3356,7 @@ u8 sub_805C930(struct MapObject *mapObject, struct Sprite *sprite)
return 0;
}
sub_8064820(sprite, gUnknown_0837520C[Random() & 3]);
- sprite->data1 = 3;
+ sprite->data[1] = 3;
return 1;
}
@@ -3366,7 +3366,7 @@ u8 sub_805C96C(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064824(sprite) != 0)
{
- sprite->data1 = 4;
+ sprite->data[1] = 4;
return 1;
}
return 0;
@@ -3381,10 +3381,10 @@ u8 sub_805C98C(struct MapObject *mapObject, struct Sprite *sprite)
memcpy(directions, gUnknown_08375240, 4);
direction = directions[Random() & 3];
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 5;
+ sprite->data[1] = 5;
if (sub_805FF20(mapObject, direction) != 0)
{
- sprite->data1 = 1;
+ sprite->data[1] = 1;
}
return 1;
}
@@ -3393,7 +3393,7 @@ u8 sub_805C9D8(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetGoSpeed0AnimId(mapObject->placeholder18));
mapObject->mapobj_bit_1 = 1;
- sprite->data1 = 6;
+ sprite->data[1] = 6;
return 1;
}
@@ -3402,7 +3402,7 @@ u8 sub_805CA08(struct MapObject *mapObject, struct Sprite *sprite)
if (FieldObjectExecRegularAnim(mapObject, sprite) != 0)
{
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 1;
+ sprite->data[1] = 1;
}
return 0;
}
@@ -3649,14 +3649,14 @@ fieldmap_object_cb(sub_805CDE8, sub_805CE0c, gUnknown_08375270);
u8 sub_805CE2C(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
u8 sub_805CE40(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -3666,7 +3666,7 @@ u8 sub_805CE6C(struct MapObject *mapObject, struct Sprite *sprite)
{
sub_8064820(sprite, gUnknown_0837520C[Random() & 3]);
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 3;
+ sprite->data[1] = 3;
}
return 0;
}
@@ -3675,7 +3675,7 @@ u8 sub_805CEB0(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064824(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject))
{
- sprite->data1 = 4;
+ sprite->data[1] = 4;
return 1;
}
return 0;
@@ -3692,7 +3692,7 @@ u8 sub_805CEE0(struct MapObject *mapObject, struct Sprite *sprite)
direction = directions[Random() & 3];
}
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -3701,14 +3701,14 @@ fieldmap_object_cb(sub_805CF28, sub_805CF4C, gUnknown_08375284);
u8 sub_805CF6C(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
u8 sub_805CF80(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -3719,7 +3719,7 @@ u8 sub_805CFAC(struct MapObject *mapObject, struct Sprite *sprite)
return 0;
}
sub_8064820(sprite, gUnknown_0837520C[Random() & 3]);
- sprite->data1 = 3;
+ sprite->data[1] = 3;
return 1;
}
@@ -3727,7 +3727,7 @@ u8 sub_805CFE8(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064824(sprite) != 0)
{
- sprite->data1 = 4;
+ sprite->data[1] = 4;
return 1;
}
return 0;
@@ -3740,10 +3740,10 @@ u8 sub_805D008(struct MapObject *mapObject, struct Sprite *sprite)
memcpy(directions, gUnknown_083752A0, 2);
direction = directions[Random() & 1];
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 5;
+ sprite->data[1] = 5;
if (sub_805FF20(mapObject, direction) != 0)
{
- sprite->data1 = 1;
+ sprite->data[1] = 1;
}
return 1;
}
@@ -3752,7 +3752,7 @@ u8 sub_805D054(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetGoSpeed0AnimId(mapObject->placeholder18));
mapObject->mapobj_bit_1 = 1;
- sprite->data1 = 6;
+ sprite->data[1] = 6;
return 1;
}
@@ -3761,7 +3761,7 @@ u8 sub_805D084(struct MapObject *mapObject, struct Sprite *sprite)
if (FieldObjectExecRegularAnim(mapObject, sprite) != 0)
{
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 1;
+ sprite->data[1] = 1;
}
return 0;
}
@@ -3771,14 +3771,14 @@ fieldmap_object_cb(sub_805D0AC, sub_805D0D0, gUnknown_083752A4);
u8 sub_805D0F0(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
u8 sub_805D104(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -3789,7 +3789,7 @@ u8 sub_805D130(struct MapObject *mapObject, struct Sprite *sprite)
return 0;
}
sub_8064820(sprite, gUnknown_0837520C[Random() & 3]);
- sprite->data1 = 3;
+ sprite->data[1] = 3;
return 1;
}
@@ -3797,7 +3797,7 @@ u8 sub_805D16C(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064824(sprite) != 0)
{
- sprite->data1 = 4;
+ sprite->data[1] = 4;
return 1;
}
return 0;
@@ -3810,10 +3810,10 @@ u8 sub_805D18C(struct MapObject *mapObject, struct Sprite *sprite)
memcpy(directions, gUnknown_083752C0, 2);
direction = directions[Random() & 1];
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 5;
+ sprite->data[1] = 5;
if (sub_805FF20(mapObject, direction) != 0)
{
- sprite->data1 = 1;
+ sprite->data[1] = 1;
}
return 1;
}
@@ -3822,7 +3822,7 @@ u8 sub_805D1D8(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetGoSpeed0AnimId(mapObject->placeholder18));
mapObject->mapobj_bit_1 = 1;
- sprite->data1 = 6;
+ sprite->data[1] = 6;
return 1;
}
@@ -3831,7 +3831,7 @@ u8 sub_805D208(struct MapObject *mapObject, struct Sprite *sprite)
if (FieldObjectExecRegularAnim(mapObject, sprite) != 0)
{
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 1;
+ sprite->data[1] = 1;
}
return 0;
}
@@ -3842,7 +3842,7 @@ u8 sub_805D274(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -3850,7 +3850,7 @@ u8 sub_805D2A0(struct MapObject *mapObject, struct Sprite *sprite)
{
if (FieldObjectExecRegularAnim(mapObject, sprite) != 0)
{
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
return 0;
@@ -3867,18 +3867,18 @@ u8 sub_805D314(struct MapObject *mapObject, struct Sprite *sprite);
void FieldObjectCB_BerryTree(struct Sprite *sprite)
{
struct MapObject *mapObject;
- mapObject = &gMapObjects[sprite->data0];
- if (!(sprite->data7 & 1))
+ mapObject = &gMapObjects[sprite->data[0]];
+ if (!(sprite->data[7] & 1))
{
get_berry_tree_graphics(mapObject, sprite);
- sprite->data7 |= 1;
+ sprite->data[7] |= 1;
}
meta_step(mapObject, sprite, sub_805D314);
}
u8 sub_805D314(struct MapObject *mapObject, struct Sprite *sprite)
{
- return gUnknown_083752D0[sprite->data1](mapObject, sprite);
+ return gUnknown_083752D0[sprite->data[1]](mapObject, sprite);
}
u8 do_berry_tree_growth_sparkle_1(struct MapObject *mapObject, struct Sprite *sprite)
@@ -3890,7 +3890,7 @@ u8 do_berry_tree_growth_sparkle_1(struct MapObject *mapObject, struct Sprite *sp
berryTreeStage = GetStageByBerryTreeId(mapObject->trainerRange_berryTreeId);
if (!berryTreeStage)
{
- if (!(sprite->data7 & 4) && sprite->animNum == 4)
+ if (!(sprite->data[7] & 4) && sprite->animNum == 4)
{
gFieldEffectArguments[0] = mapObject->coords2.x;
gFieldEffectArguments[1] = mapObject->coords2.y;
@@ -3906,12 +3906,12 @@ u8 do_berry_tree_growth_sparkle_1(struct MapObject *mapObject, struct Sprite *sp
berryTreeStage--;
if (sprite->animNum != berryTreeStage)
{
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
get_berry_tree_graphics(mapObject, sprite);
FieldObjectSetRegularAnim(mapObject, sprite, 0x39);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -3919,7 +3919,7 @@ u8 sub_805D3EC(struct MapObject *mapObject, struct Sprite *sprite)
{
if (FieldObjectExecRegularAnim(mapObject, sprite))
{
- sprite->data1 = 0;
+ sprite->data[1] = 0;
return 1;
}
return 0;
@@ -3928,9 +3928,9 @@ u8 sub_805D3EC(struct MapObject *mapObject, struct Sprite *sprite)
u8 do_berry_tree_growth_sparkle_2(struct MapObject *mapObject, struct Sprite *sprite)
{
mapObject->mapobj_bit_1 = 1;
- sprite->data1 = 3;
- sprite->data2 = 0;
- sprite->data7 |= 2;
+ sprite->data[1] = 3;
+ sprite->data[2] = 0;
+ sprite->data[7] |= 2;
gFieldEffectArguments[0] = mapObject->coords2.x;
gFieldEffectArguments[1] = mapObject->coords2.y;
gFieldEffectArguments[2] = sprite->subpriority - 1;
@@ -3941,14 +3941,14 @@ u8 do_berry_tree_growth_sparkle_2(struct MapObject *mapObject, struct Sprite *sp
u8 sub_805D458(struct MapObject *mapObject, struct Sprite *sprite)
{
- sprite->data2++;
- mapObject->mapobj_bit_13 = ((sprite->data2 & 0x2) >> 1);
+ sprite->data[2]++;
+ mapObject->mapobj_bit_13 = ((sprite->data[2] & 0x2) >> 1);
sprite->animPaused = 1;
- if (sprite->data2 > 64)
+ if (sprite->data[2] > 64)
{
get_berry_tree_graphics(mapObject, sprite);
- sprite->data1 = 4;
- sprite->data2 = 0;
+ sprite->data[1] = 4;
+ sprite->data[2] = 0;
return 1;
}
return 0;
@@ -3956,13 +3956,13 @@ u8 sub_805D458(struct MapObject *mapObject, struct Sprite *sprite)
u8 sub_805D4A8(struct MapObject *mapObject, struct Sprite *sprite)
{
- sprite->data2++;
- mapObject->mapobj_bit_13 = ((sprite->data2 & 0x2) >> 1);
+ sprite->data[2]++;
+ mapObject->mapobj_bit_13 = ((sprite->data[2] & 0x2) >> 1);
sprite->animPaused = 1;
- if (sprite->data2 > 64)
+ if (sprite->data[2] > 64)
{
- sprite->data1 = 0;
- sprite->data7 &= (-3);
+ sprite->data[1] = 0;
+ sprite->data[7] &= (-3);
return 1;
}
return 0;
@@ -3973,14 +3973,14 @@ fieldmap_object_cb(sub_805D4F4, sub_805D518, gUnknown_083752E4);
u8 sub_805D538(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
u8 sub_805D54C(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -3990,7 +3990,7 @@ u8 sub_805D578(struct MapObject *mapObject, struct Sprite *sprite)
{
sub_8064820(sprite, gUnknown_0837520C[Random() & 3]);
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 3;
+ sprite->data[1] = 3;
}
return 0;
}
@@ -3999,7 +3999,7 @@ u8 sub_805D5BC(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064824(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject))
{
- sprite->data1 = 4;
+ sprite->data[1] = 4;
return 1;
}
return 0;
@@ -4016,7 +4016,7 @@ u8 sub_805D5EC(struct MapObject *mapObject, struct Sprite *sprite)
direction = directions[Random() & 1];
}
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -4025,14 +4025,14 @@ fieldmap_object_cb(sub_805D634, sub_805D658, gUnknown_083752F8);
u8 sub_805D678(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
u8 sub_805D68C(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -4042,7 +4042,7 @@ u8 sub_805D6B8(struct MapObject *mapObject, struct Sprite *sprite)
{
sub_8064820(sprite, gUnknown_0837520C[Random() & 3]);
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 3;
+ sprite->data[1] = 3;
}
return 0;
}
@@ -4051,7 +4051,7 @@ u8 sub_805D6FC(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064824(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject))
{
- sprite->data1 = 4;
+ sprite->data[1] = 4;
return 1;
}
return 0;
@@ -4068,7 +4068,7 @@ u8 sub_805D72C(struct MapObject *mapObject, struct Sprite *sprite)
direction = directions[Random() & 1];
}
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -4077,14 +4077,14 @@ fieldmap_object_cb(sub_805D774, sub_805D798, gUnknown_0837530C);
u8 sub_805D7B8(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
u8 sub_805D7CC(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -4094,7 +4094,7 @@ u8 sub_805D7F8(struct MapObject *mapObject, struct Sprite *sprite)
{
sub_8064820(sprite, gUnknown_0837521C[Random() & 3]);
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 3;
+ sprite->data[1] = 3;
}
return 0;
}
@@ -4103,7 +4103,7 @@ u8 sub_805D83C(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064824(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject))
{
- sprite->data1 = 4;
+ sprite->data[1] = 4;
return 1;
}
return 0;
@@ -4120,7 +4120,7 @@ u8 sub_805D86C(struct MapObject *mapObject, struct Sprite *sprite)
direction = directions[Random() & 1];
}
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -4129,14 +4129,14 @@ fieldmap_object_cb(sub_805D8B4, sub_805D8D8, gUnknown_08375324);
u8 sub_805D8F8(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
u8 sub_805D90C(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -4146,7 +4146,7 @@ u8 sub_805D938(struct MapObject *mapObject, struct Sprite *sprite)
{
sub_8064820(sprite, gUnknown_0837521C[Random() & 3]);
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 3;
+ sprite->data[1] = 3;
}
return 0;
}
@@ -4155,7 +4155,7 @@ u8 sub_805D97C(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064824(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject))
{
- sprite->data1 = 4;
+ sprite->data[1] = 4;
return 1;
}
return 0;
@@ -4172,7 +4172,7 @@ u8 sub_805D9AC(struct MapObject *mapObject, struct Sprite *sprite)
direction = directions[Random() & 1];
}
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -4181,14 +4181,14 @@ fieldmap_object_cb(sub_805D9F4, sub_805DA18, gUnknown_0837533C);
u8 sub_805DA38(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
u8 sub_805DA4C(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -4198,7 +4198,7 @@ u8 sub_805DA78(struct MapObject *mapObject, struct Sprite *sprite)
{
sub_8064820(sprite, gUnknown_0837521C[Random() & 3]);
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 3;
+ sprite->data[1] = 3;
}
return 0;
}
@@ -4207,7 +4207,7 @@ u8 sub_805DABC(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064824(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject))
{
- sprite->data1 = 4;
+ sprite->data[1] = 4;
return 1;
}
return 0;
@@ -4224,7 +4224,7 @@ u8 sub_805DAEC(struct MapObject *mapObject, struct Sprite *sprite)
direction = directions[Random() & 1];
}
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -4233,14 +4233,14 @@ fieldmap_object_cb(sub_805DB34, sub_805DB58, gUnknown_08375354);
u8 sub_805DB78(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
u8 sub_805DB8C(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -4250,7 +4250,7 @@ u8 sub_805DBB8(struct MapObject *mapObject, struct Sprite *sprite)
{
sub_8064820(sprite, gUnknown_0837521C[Random() & 3]);
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 3;
+ sprite->data[1] = 3;
}
return 0;
}
@@ -4259,7 +4259,7 @@ u8 sub_805DBFC(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064824(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject))
{
- sprite->data1 = 4;
+ sprite->data[1] = 4;
return 1;
}
return 0;
@@ -4276,7 +4276,7 @@ u8 sub_805DC2C(struct MapObject *mapObject, struct Sprite *sprite)
direction = directions[Random() & 1];
}
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -4285,14 +4285,14 @@ fieldmap_object_cb(sub_805DC74, sub_805DC98, gUnknown_0837536C);
u8 sub_805DCB8(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
u8 sub_805DCCC(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -4302,7 +4302,7 @@ u8 sub_805DCF8(struct MapObject *mapObject, struct Sprite *sprite)
{
sub_8064820(sprite, gUnknown_0837521C[Random() & 3]);
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 3;
+ sprite->data[1] = 3;
}
return 0;
}
@@ -4311,7 +4311,7 @@ u8 sub_805DD3C(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064824(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject))
{
- sprite->data1 = 4;
+ sprite->data[1] = 4;
return 1;
}
return 0;
@@ -4328,7 +4328,7 @@ u8 sub_805DD6C(struct MapObject *mapObject, struct Sprite *sprite)
direction = directions[Random() & 3];
}
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -4337,14 +4337,14 @@ fieldmap_object_cb(sub_805DDB4, sub_805DDD8, gUnknown_08375384);
u8 sub_805DDF8(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
u8 sub_805DE0C(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -4354,7 +4354,7 @@ u8 sub_805DE38(struct MapObject *mapObject, struct Sprite *sprite)
{
sub_8064820(sprite, gUnknown_0837521C[Random() & 3]);
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 3;
+ sprite->data[1] = 3;
}
return 0;
}
@@ -4363,7 +4363,7 @@ u8 sub_805DE7C(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064824(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject))
{
- sprite->data1 = 4;
+ sprite->data[1] = 4;
return 1;
}
return 0;
@@ -4380,7 +4380,7 @@ u8 sub_805DEAC(struct MapObject *mapObject, struct Sprite *sprite)
direction = directions[Random() & 3];
}
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -4389,14 +4389,14 @@ fieldmap_object_cb(sub_805DEF4, sub_805DF18, gUnknown_0837539C);
u8 sub_805DF38(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
u8 sub_805DF4C(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -4406,7 +4406,7 @@ u8 sub_805DF78(struct MapObject *mapObject, struct Sprite *sprite)
{
sub_8064820(sprite, gUnknown_0837521C[Random() & 3]);
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 3;
+ sprite->data[1] = 3;
}
return 0;
}
@@ -4415,7 +4415,7 @@ u8 sub_805DFBC(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064824(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject))
{
- sprite->data1 = 4;
+ sprite->data[1] = 4;
return 1;
}
return 0;
@@ -4432,7 +4432,7 @@ u8 sub_805DFEC(struct MapObject *mapObject, struct Sprite *sprite)
direction = directions[Random() & 3];
}
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -4441,14 +4441,14 @@ fieldmap_object_cb(sub_805E034, sub_805E058, gUnknown_083753B4);
u8 sub_805E078(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
u8 sub_805E08C(struct MapObject *mapObject, struct Sprite *sprite)
{
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -4458,7 +4458,7 @@ u8 sub_805E0B8(struct MapObject *mapObject, struct Sprite *sprite)
{
sub_8064820(sprite, gUnknown_0837521C[Random() & 3]);
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 3;
+ sprite->data[1] = 3;
}
return 0;
}
@@ -4467,7 +4467,7 @@ u8 sub_805E0FC(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064824(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject))
{
- sprite->data1 = 4;
+ sprite->data[1] = 4;
return 1;
}
return 0;
@@ -4484,7 +4484,7 @@ u8 sub_805E12C(struct MapObject *mapObject, struct Sprite *sprite)
direction = directions[Random() & 3];
}
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -4494,7 +4494,7 @@ u8 sub_805E1B8(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -4503,7 +4503,7 @@ u8 sub_805E1E4(struct MapObject *mapObject, struct Sprite *sprite)
if (FieldObjectExecRegularAnim(mapObject, sprite))
{
sub_8064820(sprite, 0x30);
- sprite->data1 = 2;
+ sprite->data[1] = 2;
}
return 0;
}
@@ -4512,7 +4512,7 @@ u8 sub_805E208(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064824(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject))
{
- sprite->data1 = 3;
+ sprite->data[1] = 3;
}
return 0;
}
@@ -4528,7 +4528,7 @@ u8 sub_805E234(struct MapObject *mapObject, struct Sprite *sprite)
direction = directions[mapObject->mapobj_unk_18];
}
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 0;
+ sprite->data[1] = 0;
return 1;
}
@@ -4538,7 +4538,7 @@ u8 sub_805E2BC(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -4547,7 +4547,7 @@ u8 sub_805E2E8(struct MapObject *mapObject, struct Sprite *sprite)
if (FieldObjectExecRegularAnim(mapObject, sprite))
{
sub_8064820(sprite, 0x30);
- sprite->data1 = 2;
+ sprite->data[1] = 2;
}
return 0;
}
@@ -4556,7 +4556,7 @@ u8 sub_805E30C(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064824(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject))
{
- sprite->data1 = 3;
+ sprite->data[1] = 3;
}
return 0;
}
@@ -4572,7 +4572,7 @@ u8 sub_805E338(struct MapObject *mapObject, struct Sprite *sprite)
direction = directions[mapObject->mapobj_unk_18];
}
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 0;
+ sprite->data[1] = 0;
return 1;
}
@@ -4581,7 +4581,7 @@ fieldmap_object_cb(sub_805E37C, sub_805E3A0, gUnknown_083753FC);
u8 sub_805E3C0(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -4594,7 +4594,7 @@ u8 sub_805E3D4(struct MapObject *mapObject, struct Sprite *sprite)
direction = GetOppositeDirection(direction);
}
FieldObjectSetDirection(mapObject, direction);
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -4622,7 +4622,7 @@ u8 sub_805E40C(struct MapObject *mapObject, struct Sprite *sprite)
}
FieldObjectSetRegularAnim(mapObject, sprite, goSpeed0AnimId);
mapObject->mapobj_bit_1 = 1;
- sprite->data1 = 3;
+ sprite->data[1] = 3;
return 1;
}
@@ -4631,7 +4631,7 @@ u8 sub_805E4C4(struct MapObject *mapObject, struct Sprite *sprite)
if (FieldObjectExecRegularAnim(mapObject, sprite))
{
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 1;
+ sprite->data[1] = 1;
}
return 0;
}
@@ -4639,7 +4639,7 @@ u8 sub_805E4C4(struct MapObject *mapObject, struct Sprite *sprite)
u8 sub_805E4EC(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -4667,7 +4667,7 @@ u8 MoveFieldObjectInNextDirectionInSequence(struct MapObject *mapObject, struct
}
FieldObjectSetRegularAnim(mapObject, sprite, goSpeed0AnimId);
mapObject->mapobj_bit_1 = 1;
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -4676,7 +4676,7 @@ u8 sub_805E5B4(struct MapObject *mapObject, struct Sprite *sprite)
if (FieldObjectExecRegularAnim(mapObject, sprite))
{
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 1;
+ sprite->data[1] = 1;
}
return 0;
}
@@ -5004,13 +5004,13 @@ u8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *mapObject, struct Sprite
{
mapObject->mapobj_unk_21 = player_get_direction_lower_nybble();
}
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
u8 sub_805F364(struct MapObject *mapObject, struct Sprite *sprite)
{
- if (gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1C == 0xFF || gPlayerAvatar.running1 == 2)
+ if (gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1C == 0xFF || gPlayerAvatar.tileTransitionState == T_TILE_CENTER)
{
return 0;
}
@@ -5022,7 +5022,7 @@ u8 sub_805F3C4(struct MapObject *mapObject, struct Sprite *sprite)
if (FieldObjectExecRegularAnim(mapObject, sprite))
{
mapObject->mapobj_bit_1 = 0;
- sprite->data1 = 1;
+ sprite->data[1] = 1;
}
return 0;
}
@@ -5036,7 +5036,7 @@ bool8 sub_805F3F0(struct MapObject *mapObject, struct Sprite *sprite, u8 a2, boo
{
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(state_to_direction(gUnknown_0836DC09[mapObject->animPattern], mapObject->mapobj_unk_21, a2)));
mapObject->mapobj_bit_1 = 1;
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -5055,7 +5055,7 @@ bool8 sub_805F438(struct MapObject *mapObject, struct Sprite *sprite, u8 a2, boo
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction));
}
mapObject->mapobj_bit_1 = 1;
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
@@ -5074,7 +5074,7 @@ bool8 sub_805F4F0(struct MapObject *mapObject, struct Sprite *sprite, u8 playerD
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction));
}
mapObject->mapobj_bit_1 = TRUE;
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return TRUE;
}
@@ -5093,7 +5093,7 @@ bool8 sub_805F5A8(struct MapObject *mapObject, struct Sprite *sprite, u8 playerD
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction));
}
mapObject->mapobj_bit_1 = TRUE;
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return TRUE;
}
@@ -5112,7 +5112,7 @@ bool8 sub_805F660(struct MapObject *mapObject, struct Sprite *sprite, u8 playerD
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction));
}
mapObject->mapobj_bit_1 = TRUE;
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return TRUE;
}
@@ -5124,7 +5124,7 @@ bool8 cph_IM_DIFFERENT(struct MapObject *mapObject, struct Sprite *sprite, u8 pl
direction = state_to_direction(gUnknown_0836DC09[mapObject->animPattern], mapObject->mapobj_unk_21, direction);
FieldObjectSetRegularAnim(mapObject, sprite, sub_806084C(direction));
mapObject->mapobj_bit_1 = TRUE;
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return TRUE;
}
@@ -5143,7 +5143,7 @@ bool8 sub_805F760(struct MapObject *mapObject, struct Sprite *sprite, u8 playerD
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction));
}
mapObject->mapobj_bit_1 = TRUE;
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return TRUE;
}
@@ -5164,7 +5164,7 @@ bool8 oac_hopping(struct MapObject *mapObject, struct Sprite *sprite, u8 playerD
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction));
}
mapObject->mapobj_bit_1 = TRUE;
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return TRUE;
}
@@ -5172,7 +5172,7 @@ fieldmap_object_cb(sub_805F8E0, sub_805F904, gUnknown_083755C0);
u8 mss_08062EA4(struct MapObject *mapObject, struct Sprite *sprite)
{
- if (gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1C == 0xFF || gPlayerAvatar.running1 == 2)
+ if (gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1C == 0xFF || gPlayerAvatar.tileTransitionState == T_TILE_CENTER)
{
return 0;
}
@@ -5184,15 +5184,15 @@ u8 sub_805F9F8(struct MapObject *, struct Sprite *);
void FieldObjectCB_TreeDisguise(struct Sprite *sprite)
{
struct MapObject *mapObject;
- mapObject = &gMapObjects[sprite->data0];
- if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && sprite->data7 == 0))
+ mapObject = &gMapObjects[sprite->data[0]];
+ if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && sprite->data[7] == 0))
{
- FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
+ FieldObjectGetLocalIdAndMap(mapObject, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]);
mapObject->mapobj_unk_1A = FieldEffectStart(FLDEFF_TREE_DISGUISE);
mapObject->mapobj_unk_21 = 1;
- sprite->data7 ++;
+ sprite->data[7] ++;
}
- meta_step(&gMapObjects[sprite->data0], sprite, sub_805F9F8);
+ meta_step(&gMapObjects[sprite->data[0]], sprite, sub_805F9F8);
}
u8 sub_805F9F8(struct MapObject *mapObject, struct Sprite *sprite)
@@ -5204,34 +5204,34 @@ u8 sub_805F9F8(struct MapObject *mapObject, struct Sprite *sprite)
void FieldObjectCB_MountainDisguise(struct Sprite *sprite)
{
struct MapObject *mapObject;
- mapObject = &gMapObjects[sprite->data0];
- if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && sprite->data7 == 0))
+ mapObject = &gMapObjects[sprite->data[0]];
+ if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && sprite->data[7] == 0))
{
- FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
+ FieldObjectGetLocalIdAndMap(mapObject, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]);
mapObject->mapobj_unk_1A = FieldEffectStart(FLDEFF_MOUNTAIN_DISGUISE);
mapObject->mapobj_unk_21 = 1;
- sprite->data7 ++;
+ sprite->data[7] ++;
}
- meta_step(&gMapObjects[sprite->data0], sprite, sub_805F9F8);
+ meta_step(&gMapObjects[sprite->data[0]], sprite, sub_805F9F8);
}
u8 sub_805FAD8(struct MapObject *mapObject, struct Sprite *sprite);
void FieldObjectCB_Hidden1(struct Sprite *sprite)
{
- if (sprite->data7 == 0)
+ if (sprite->data[7] == 0)
{
- gMapObjects[sprite->data0].mapobj_bit_26 = 1;
+ gMapObjects[sprite->data[0]].mapobj_bit_26 = 1;
sprite->subspriteMode = 2;
sprite->oam.priority = 3;
- sprite->data7 ++;
+ sprite->data[7] ++;
}
- meta_step(&gMapObjects[sprite->data0], sprite, sub_805FAD8);
+ meta_step(&gMapObjects[sprite->data[0]], sprite, sub_805FAD8);
}
u8 sub_805FAD8(struct MapObject *mapObject, struct Sprite *sprite)
{
- return gUnknown_083755CC[sprite->data1](mapObject, sprite);
+ return gUnknown_083755CC[sprite->data[1]](mapObject, sprite);
}
u8 sub_805FAF8(struct MapObject *mapObject, struct Sprite *sprite)
@@ -5244,7 +5244,7 @@ u8 sub_805FB04(struct MapObject *mapObject, struct Sprite *sprite)
{
if (FieldObjectExecRegularAnim(mapObject, sprite))
{
- sprite->data1 = 0;
+ sprite->data[1] = 0;
}
return 0;
}
@@ -5255,7 +5255,7 @@ u8 sub_805FB64(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay16AnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -5265,7 +5265,7 @@ u8 sub_805FBD4(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay8AnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -5275,7 +5275,7 @@ u8 sub_805FC44(struct MapObject *mapObject, struct Sprite *sprite)
{
npc_reset(mapObject, sprite);
FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay4AnimId(mapObject->mapobj_unk_18));
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -5286,7 +5286,7 @@ u8 sub_805FCB4(struct MapObject *mapObject, struct Sprite *sprite)
npc_reset(mapObject, sprite);
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
mapObject->mapobj_bit_13 = 1;
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 1;
}
@@ -5294,7 +5294,7 @@ u8 sub_805FCE8(struct MapObject *mapObject, struct Sprite *sprite)
{
if (FieldObjectExecRegularAnim(mapObject, sprite))
{
- sprite->data1 = 2;
+ sprite->data[1] = 2;
return 1;
}
return 0;
@@ -5314,7 +5314,7 @@ void npc_reset(struct MapObject *mapObject, struct Sprite *sprite)
mapObject->mapobj_bit_6 = 0;
mapObject->mapobj_bit_7 = 0;
mapObject->mapobj_unk_1C = 0xff;
- sprite->data1 = 0;
+ sprite->data[1] = 0;
}
u8 FieldObjectDirectionToImageAnimId(u8 direction)
@@ -5446,7 +5446,7 @@ void npc_set_running_behaviour_etc(struct MapObject *mapObject, u8 animPattern)
mapObject->mapobj_unk_21 = 0;
mapObject->animId = 0;
gSprites[mapObject->spriteId].callback = gUnknown_0836DA88[animPattern];
- gSprites[mapObject->spriteId].data1 = 0;
+ gSprites[mapObject->spriteId].data[1] = 0;
}
u8 npc_running_behaviour_by_direction(u8 direction)
@@ -5549,17 +5549,16 @@ static bool8 DoesObjectCollideWithObjectAt(struct MapObject *mapObject, s16 x, s
return 0;
}
-bool8 sub_8060234(u8 localId, u8 mapNum, u8 mapGroup)
+// this function is only used in berry.c, but its unknown whether its intended context is the berry tree check or if its checking for the flickering.
+bool8 IsBerryTreeSparkling(u8 localId, u8 mapNum, u8 mapGroup)
{
u8 mapObjectId;
+
if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId))
- {
- if (gSprites[gMapObjects[mapObjectId].spriteId].data7 & 2)
- {
- return 1;
- }
- }
- return 0;
+ if (gSprites[gMapObjects[mapObjectId].spriteId].data[7] & 2)
+ return TRUE;
+
+ return FALSE;
}
void sub_8060288(u8 localId, u8 mapNum, u8 mapGroup)
@@ -5567,7 +5566,7 @@ void sub_8060288(u8 localId, u8 mapNum, u8 mapGroup)
u8 mapObjectId;
if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId))
{
- gSprites[gMapObjects[mapObjectId].spriteId].data7 |= 4;
+ gSprites[gMapObjects[mapObjectId].spriteId].data[7] |= 4;
}
}
@@ -5705,7 +5704,7 @@ bool8 FieldObjectSetSpecialAnim(struct MapObject *mapObject, u8 specialAnimId)
mapObject->mapobj_unk_1C = specialAnimId;
mapObject->mapobj_bit_6 = 1;
mapObject->mapobj_bit_7 = 0;
- gSprites[mapObject->spriteId].data2 = 0;
+ gSprites[mapObject->spriteId].data[2] = 0;
return FALSE;
}
@@ -5728,8 +5727,8 @@ void FieldObjectClearAnim(struct MapObject *mapObject)
mapObject->mapobj_unk_1C = 0xFF;
mapObject->mapobj_bit_6 = 0;
mapObject->mapobj_bit_7 = 0;
- gSprites[mapObject->spriteId].data1 = 0;
- gSprites[mapObject->spriteId].data2 = 0;
+ gSprites[mapObject->spriteId].data[1] = 0;
+ gSprites[mapObject->spriteId].data[2] = 0;
}
bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *mapObject)
@@ -5963,7 +5962,7 @@ u32 state_to_direction(u8 a0, u32 a1, u32 a2)
void FieldObjectExecSpecialAnim(struct MapObject *mapObject, struct Sprite *sprite)
{
- if (gUnknown_08375778[mapObject->mapobj_unk_1C][sprite->data2](mapObject, sprite))
+ if (gUnknown_08375778[mapObject->mapobj_unk_1C][sprite->data[2]](mapObject, sprite))
{
mapObject->mapobj_bit_7 = 1;
}
@@ -5971,10 +5970,10 @@ void FieldObjectExecSpecialAnim(struct MapObject *mapObject, struct Sprite *spri
bool8 FieldObjectExecRegularAnim(struct MapObject *mapObject, struct Sprite *sprite)
{
- if (gUnknown_08375778[mapObject->mapobj_unk_1C][sprite->data2](mapObject, sprite))
+ if (gUnknown_08375778[mapObject->mapobj_unk_1C][sprite->data[2]](mapObject, sprite))
{
mapObject->mapobj_unk_1C = 0xFF;
- sprite->data2 = 0;
+ sprite->data[2] = 0;
return 1;
}
return 0;
@@ -5983,7 +5982,7 @@ bool8 FieldObjectExecRegularAnim(struct MapObject *mapObject, struct Sprite *spr
void FieldObjectSetRegularAnim(struct MapObject *mapObject, struct Sprite *sprite, u8 animId)
{
mapObject->mapobj_unk_1C = animId;
- sprite->data2 = 0;
+ sprite->data[2] = 0;
}
void an_look_any(struct MapObject *mapObject, struct Sprite *sprite, u8 direction)
@@ -5992,7 +5991,7 @@ void an_look_any(struct MapObject *mapObject, struct Sprite *sprite, u8 directio
npc_coords_shift_still(mapObject);
sub_805FE64(mapObject, sprite, get_go_image_anim_num(mapObject->mapobj_unk_18));
sprite->animPaused = 1;
- sprite->data2 = 1;
+ sprite->data[2] = 1;
}
u8 sub_8060CE0(struct MapObject *mapObject, struct Sprite *sprite)
@@ -6031,7 +6030,7 @@ void sub_8060D20(struct MapObject *mapObject, struct Sprite *sprite, u8 directio
oamt_npc_ministep_reset(sprite, direction, a3);
sprite->animPaused = 0;
mapObject->mapobj_bit_2 = 1;
- sprite->data2 = 1;
+ sprite->data[2] = 1;
}
extern u8 (*const gUnknown_083759C0[5])(u8);
@@ -6076,7 +6075,7 @@ void sub_8060E68(struct MapObject *mapObject, struct Sprite *sprite, u8 directio
sub_806467C(sprite, direction);
sprite->animPaused = 0;
mapObject->mapobj_bit_2 = 1;
- sprite->data2 = 1;
+ sprite->data[2] = 1;
}
void sub_8060ED8(struct MapObject *mapObject, struct Sprite *sprite, u8 direction)
@@ -6109,7 +6108,7 @@ bool8 sub_8060F5C(struct MapObject *mapObject, struct Sprite *sprite)
{
if (an_walk_any_2(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6127,7 +6126,7 @@ bool8 sub_8060F9C(struct MapObject *mapObject, struct Sprite *sprite)
{
if (an_walk_any_2(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6145,7 +6144,7 @@ bool8 sub_8060FDC(struct MapObject *mapObject, struct Sprite *sprite)
{
if (an_walk_any_2(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6163,7 +6162,7 @@ bool8 sub_806101C(struct MapObject *mapObject, struct Sprite *sprite)
{
if (an_walk_any_2(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6181,7 +6180,7 @@ bool8 sub_806105C(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6199,7 +6198,7 @@ bool8 sub_806109C(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6217,7 +6216,7 @@ bool8 sub_80610DC(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6235,7 +6234,7 @@ bool8 sub_806111C(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6253,7 +6252,7 @@ void sub_806113C(struct MapObject *mapObject, struct Sprite *sprite, u8 directio
sub_8060320(direction, &x, &y, vSPp4[a4], vSPp4[a4]);
npc_coords_shift(mapObject, mapObject->coords2.x + x, mapObject->coords2.y + y);
sub_80646E4(sprite, direction, a4, a5);
- sprite->data2 = 1;
+ sprite->data[2] = 1;
sprite->animPaused = 0;
mapObject->mapobj_bit_2 = 1;
mapObject->mapobj_bit_4 = 1;
@@ -6274,11 +6273,11 @@ u8 sub_806123C(struct MapObject *mapObject, struct Sprite *sprite, u8 (*const ca
u8 retval;
memcpy(vSPp4, gUnknown_08375A3A, sizeof gUnknown_08375A3A);
retval = callback(sprite);
- if (retval == 1 && vSPp4[sprite->data4] != 0)
+ if (retval == 1 && vSPp4[sprite->data[4]] != 0)
{
x = 0;
y = 0;
- sub_8060320(mapObject->placeholder18, &x, &y, vSPp4[sprite->data4], vSPp4[sprite->data4]);
+ sub_8060320(mapObject->placeholder18, &x, &y, vSPp4[sprite->data[4]], vSPp4[sprite->data[4]]);
npc_coords_shift(mapObject, mapObject->coords2.x + x, mapObject->coords2.y + y);
mapObject->mapobj_bit_2 = 1;
mapObject->mapobj_bit_4 = 1;
@@ -6354,7 +6353,7 @@ bool8 sub_80613D4(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6371,7 +6370,7 @@ bool8 sub_806142C(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6388,7 +6387,7 @@ bool8 sub_8061484(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6405,7 +6404,7 @@ bool8 sub_80614DC(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6413,16 +6412,16 @@ bool8 sub_80614DC(struct MapObject *mapObject, struct Sprite *sprite)
void sub_8061508(struct Sprite *sprite, u16 duration)
{
- sprite->data2 = 1;
- sprite->data3 = duration;
+ sprite->data[2] = 1;
+ sprite->data[3] = duration;
}
bool8 sub_8061510(struct MapObject *mapObject, struct Sprite *sprite)
{
- sprite->data3--;
- if (!sprite->data3)
+ sprite->data[3]--;
+ if (!sprite->data[3])
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6473,7 +6472,7 @@ bool8 sub_80615EC(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6488,7 +6487,7 @@ bool8 sub_806162C(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6503,7 +6502,7 @@ bool8 sub_806166C(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6518,7 +6517,7 @@ bool8 sub_80616AC(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6529,16 +6528,16 @@ void sub_80616CC(struct MapObject *mapObject, struct Sprite *sprite, u8 directio
FieldObjectSetDirection(mapObject, direction);
sub_805FE28(mapObject, sprite, animId);
sprite->animPaused = 0;
- sprite->data2 = 1;
- sprite->data3 = duration;
+ sprite->data[2] = 1;
+ sprite->data[3] = duration;
}
bool8 sub_8061714(struct MapObject *mapObject, struct Sprite *sprite)
{
- sprite->data3--;
- if (sprite->data3 == 0)
+ sprite->data[3]--;
+ if (sprite->data[3] == 0)
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
sprite->animPaused = 1;
return TRUE;
}
@@ -6547,7 +6546,7 @@ bool8 sub_8061714(struct MapObject *mapObject, struct Sprite *sprite)
bool8 sub_806173C(struct MapObject *mapObject, struct Sprite *sprite)
{
- if (sprite->data3 & 1)
+ if (sprite->data[3] & 1)
{
sprite->animDelayCounter++;
}
@@ -6662,7 +6661,7 @@ bool8 sub_8061B18(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6681,7 +6680,7 @@ bool8 sub_8061B58(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6700,7 +6699,7 @@ bool8 sub_8061B98(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6719,7 +6718,7 @@ bool8 sub_8061BD8(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6737,7 +6736,7 @@ bool8 sub_8061C18(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6755,7 +6754,7 @@ bool8 sub_8061C58(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6774,7 +6773,7 @@ bool8 sub_8061C98(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6793,7 +6792,7 @@ bool8 sub_8061CD8(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6811,7 +6810,7 @@ bool8 sub_8061D18(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6829,7 +6828,7 @@ bool8 sub_8061D58(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6848,7 +6847,7 @@ bool8 sub_8061D98(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6867,7 +6866,7 @@ bool8 sub_8061DD8(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6885,7 +6884,7 @@ bool8 sub_8061E18(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6903,7 +6902,7 @@ bool8 sub_8061E58(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6921,7 +6920,7 @@ bool8 sub_8061E98(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6939,7 +6938,7 @@ bool8 sub_8061ED8(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6949,7 +6948,7 @@ void npc_set_direction_and_anim__an_proceed(struct MapObject *mapObject, struct
{
obj_anim_image_set_and_seek(sprite, animNum, 0);
FieldObjectSetDirection(mapObject, direction);
- sprite->data2 = 1;
+ sprite->data[2] = 1;
}
bool8 sub_8061F24(struct MapObject *mapObject, struct Sprite *sprite)
@@ -6964,7 +6963,7 @@ bool8 sub_8061F3C(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8064864(sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -6988,7 +6987,7 @@ bool8 sub_8061FB0(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8061340(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
mapObject->mapobj_bit_5 = 0;
return TRUE;
}
@@ -7007,7 +7006,7 @@ bool8 sub_8061FF8(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8061340(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
mapObject->mapobj_bit_5 = 0;
return TRUE;
}
@@ -7026,7 +7025,7 @@ bool8 sub_8062040(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8061340(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
mapObject->mapobj_bit_5 = 0;
return TRUE;
}
@@ -7045,7 +7044,7 @@ bool8 sub_8062088(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_8061340(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
mapObject->mapobj_bit_5 = 0;
return TRUE;
}
@@ -7055,36 +7054,36 @@ bool8 sub_8062088(struct MapObject *mapObject, struct Sprite *sprite)
bool8 sub_80620B0(struct MapObject *mapObject, struct Sprite *sprite)
{
u8 objectId;
- if (!TryGetFieldObjectIdByLocalIdAndMap(0xFF, MAP_GROUP_PETALBURG_CITY, MAP_ID_PETALBURG_CITY, &objectId))
+ if (!TryGetFieldObjectIdByLocalIdAndMap(0xFF, MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), &objectId))
{
an_look_any(mapObject, sprite, sub_805FE90(mapObject->coords2.x, mapObject->coords2.y, gMapObjects[objectId].coords2.x, gMapObjects[objectId].coords2.y));
}
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return TRUE;
}
bool8 sub_806210C(struct MapObject *mapObject, struct Sprite *sprite)
{
u8 objectId;
- if (!TryGetFieldObjectIdByLocalIdAndMap(0xFF, MAP_GROUP_PETALBURG_CITY, MAP_ID_PETALBURG_CITY, &objectId))
+ if (!TryGetFieldObjectIdByLocalIdAndMap(0xFF, MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), &objectId))
{
an_look_any(mapObject, sprite, GetOppositeDirection(sub_805FE90(mapObject->coords2.x, mapObject->coords2.y, gMapObjects[objectId].coords2.x, gMapObjects[objectId].coords2.y)));
}
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return TRUE;
}
bool8 sub_8062170(struct MapObject *mapObject, struct Sprite *sprite)
{
mapObject->mapobj_bit_9 = 1;
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return TRUE;
}
bool8 sub_8062180(struct MapObject *mapObject, struct Sprite *sprite)
{
mapObject->mapobj_bit_9 = 0;
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return TRUE;
}
@@ -7101,7 +7100,7 @@ bool8 sub_80621BC(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7120,7 +7119,7 @@ bool8 sub_8062214(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7139,7 +7138,7 @@ bool8 sub_806226C(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7158,7 +7157,7 @@ bool8 sub_80622C4(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7177,7 +7176,7 @@ bool8 sub_806231C(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7196,7 +7195,7 @@ bool8 sub_8062374(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7215,7 +7214,7 @@ bool8 sub_80623CC(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7234,7 +7233,7 @@ bool8 sub_8062424(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7253,7 +7252,7 @@ bool8 sub_806247C(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061358(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7272,7 +7271,7 @@ bool8 sub_80624D4(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061358(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7291,7 +7290,7 @@ bool8 sub_806252C(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061358(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7310,7 +7309,7 @@ bool8 sub_8062584(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061358(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7331,66 +7330,66 @@ bool8 sub_80625C8(struct MapObject *mapObject, struct Sprite *sprite)
bool8 sub_80625D8(struct MapObject *mapObject, struct Sprite *sprite)
{
mapObject->mapobj_bit_25 = 0;
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return TRUE;
}
bool8 sub_80625E8(struct MapObject *mapObject, struct Sprite *sprite)
{
mapObject->mapobj_bit_25 = 1;
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return TRUE;
}
bool8 sub_80625F8(struct MapObject *mapObject, struct Sprite *sprite)
{
mapObject->mapobj_bit_12 = 1;
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return TRUE;
}
bool8 sub_8062608(struct MapObject *mapObject, struct Sprite *sprite)
{
mapObject->mapobj_bit_12 = GetFieldObjectGraphicsInfo(mapObject->graphicsId)->inanimate;
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return TRUE;
}
bool8 sub_8062634(struct MapObject *mapObject, struct Sprite *sprite)
{
mapObject->mapobj_bit_13 = 1;
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return TRUE;
}
bool8 sub_8062644(struct MapObject *mapObject, struct Sprite *sprite)
{
mapObject->mapobj_bit_13 = 0;
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return TRUE;
}
bool8 do_exclamation_mark_bubble_1(struct MapObject *mapObject, struct Sprite *sprite)
{
- FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
+ FieldObjectGetLocalIdAndMap(mapObject, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]);
FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON_1);
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return TRUE;
}
bool8 do_exclamation_mark_bubble_2(struct MapObject *mapObject, struct Sprite *sprite)
{
- FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
+ FieldObjectGetLocalIdAndMap(mapObject, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]);
FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON_2);
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return TRUE;
}
bool8 do_heart_bubble(struct MapObject *mapObject, struct Sprite *sprite)
{
- FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
+ FieldObjectGetLocalIdAndMap(mapObject, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]);
FieldEffectStart(FLDEFF_HEART_ICON);
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return TRUE;
}
@@ -7405,13 +7404,13 @@ bool8 sub_80626C0(struct MapObject *mapObject, struct Sprite *sprite)
}
else if (mapObject->animPattern != 0x39 && mapObject->animPattern != 0x3A)
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
else
{
sub_812869C(mapObject);
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return sub_8062704(mapObject, sprite);
}
}
@@ -7420,7 +7419,7 @@ bool8 sub_8062704(struct MapObject *mapObject, struct Sprite *sprite)
{
if (sub_81286C4(mapObject))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7429,7 +7428,7 @@ bool8 sub_8062704(struct MapObject *mapObject, struct Sprite *sprite)
bool8 sub_8062724(struct MapObject *mapObject, struct Sprite *sprite)
{
obj_anim_image_set_and_seek(sprite, 1, 0);
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return FALSE;
}
@@ -7438,7 +7437,7 @@ bool8 sub_8062740(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8064864(sprite))
{
sub_8064820(sprite, 0x20);
- sprite->data2 = 2;
+ sprite->data[2] = 2;
}
return FALSE;
}
@@ -7449,7 +7448,7 @@ bool8 sub_8062764(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8064824(sprite))
{
mapObject->mapobj_bit_13 = 1;
- sprite->data2 = 3;
+ sprite->data[2] = 3;
}
return FALSE;
}
@@ -7457,7 +7456,7 @@ bool8 sub_8062764(struct MapObject *mapObject, struct Sprite *sprite)
bool8 sub_80627A0(struct MapObject *mapObject, struct Sprite *sprite)
{
obj_anim_image_set_and_seek(sprite, 1, 0);
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return FALSE;
}
@@ -7466,7 +7465,7 @@ bool8 sub_80627BC(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8064864(sprite))
{
sub_8064820(sprite, 0x20);
- sprite->data2 = 2;
+ sprite->data[2] = 2;
}
return FALSE;
}
@@ -7477,7 +7476,7 @@ bool8 sub_80627E0(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8064824(sprite))
{
mapObject->mapobj_bit_13 = 1;
- sprite->data2 = 3;
+ sprite->data[2] = 3;
}
return FALSE;
}
@@ -7485,14 +7484,14 @@ bool8 sub_80627E0(struct MapObject *mapObject, struct Sprite *sprite)
bool8 sub_806281C(struct MapObject *mapObject, struct Sprite *sprite)
{
mapObject->mapobj_bit_26 = 1;
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return TRUE;
}
bool8 sub_806282C(struct MapObject *mapObject, struct Sprite *sprite)
{
mapObject->mapobj_bit_26 = 0;
- sprite->data2 = 1;
+ sprite->data[2] = 1;
return TRUE;
}
@@ -7528,7 +7527,7 @@ bool8 sub_80628D0(struct MapObject *mapObject, struct Sprite *sprite)
if (an_walk_any_2(mapObject, sprite))
{
sprite->affineAnimPaused = 1;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7549,7 +7548,7 @@ bool8 sub_8062930(struct MapObject *mapObject, struct Sprite *sprite)
if (an_walk_any_2(mapObject, sprite))
{
sprite->affineAnimPaused = 1;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7561,7 +7560,7 @@ void sub_806295C(struct MapObject *mapObject, struct Sprite *sprite, u8 directio
npc_coords_shift_still(mapObject);
sub_805FE64(mapObject, sprite, sub_805FDD8(direction));
sprite->animPaused = 1;
- sprite->data2 = 1;
+ sprite->data[2] = 1;
}
bool8 sub_806299C(struct MapObject *mapObject, struct Sprite *sprite)
@@ -7680,7 +7679,7 @@ bool8 sub_8062BFC(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7699,7 +7698,7 @@ bool8 sub_8062C54(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7718,7 +7717,7 @@ bool8 sub_8062CAC(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7737,7 +7736,7 @@ bool8 sub_8062D04(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7756,7 +7755,7 @@ bool8 sub_8062D5C(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7775,7 +7774,7 @@ bool8 sub_8062DB4(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7794,7 +7793,7 @@ bool8 sub_8062E0C(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7813,7 +7812,7 @@ bool8 sub_8062E64(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7832,7 +7831,7 @@ bool8 sub_8062EBC(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7851,7 +7850,7 @@ bool8 sub_8062F14(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7870,7 +7869,7 @@ bool8 sub_8062F6C(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7889,7 +7888,7 @@ bool8 sub_8062FC4(struct MapObject *mapObject, struct Sprite *sprite)
if (sub_8061328(mapObject, sprite))
{
mapObject->mapobj_bit_22 = 0;
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7938,7 +7937,7 @@ bool8 sub_8063128(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7956,7 +7955,7 @@ bool8 sub_8063168(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7974,7 +7973,7 @@ bool8 sub_80631A8(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -7992,7 +7991,7 @@ bool8 sub_80631E8(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -8016,7 +8015,7 @@ bool8 sub_8063258(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -8034,7 +8033,7 @@ bool8 sub_8063298(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -8052,7 +8051,7 @@ bool8 sub_80632D8(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -8070,7 +8069,7 @@ bool8 sub_8063318(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -8095,7 +8094,7 @@ bool8 sub_8063390(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -8113,7 +8112,7 @@ bool8 sub_80633D0(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -8131,7 +8130,7 @@ bool8 sub_8063410(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
@@ -8149,7 +8148,7 @@ bool8 sub_8063450(struct MapObject *mapObject, struct Sprite *sprite)
{
if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
{
- sprite->data2 = 2;
+ sprite->data[2] = 2;
return TRUE;
}
return FALSE;
diff --git a/src/field/field_map_obj_helpers.c b/src/field/field_map_obj_helpers.c
index b453d3794..f1a113d44 100644
--- a/src/field/field_map_obj_helpers.c
+++ b/src/field/field_map_obj_helpers.c
@@ -98,21 +98,21 @@ void Step8(struct Sprite *sprite, u8 dir)
void oamt_npc_ministep_reset(struct Sprite *sprite, u8 a2, u8 a3)
{
- sprite->data3 = a2;
- sprite->data4 = a3;
- sprite->data5 = 0;
+ sprite->data[3] = a2;
+ sprite->data[4] = a3;
+ sprite->data[5] = 0;
}
bool8 obj_npc_ministep(struct Sprite *sprite)
{
- if (sprite->data5 >= gUnknown_08376194[sprite->data4])
+ if (sprite->data[5] >= gUnknown_08376194[sprite->data[4]])
return FALSE;
- gUnknown_08376180[sprite->data4][sprite->data5](sprite, sprite->data3);
+ gUnknown_08376180[sprite->data[4]][sprite->data[5]](sprite, sprite->data[3]);
- sprite->data5++;
+ sprite->data[5]++;
- if (sprite->data5 < gUnknown_08376194[sprite->data4])
+ if (sprite->data[5] < gUnknown_08376194[sprite->data[4]])
return FALSE;
return TRUE;
@@ -120,22 +120,22 @@ bool8 obj_npc_ministep(struct Sprite *sprite)
void sub_806467C(struct Sprite *sprite, u8 a2)
{
- sprite->data3 = a2;
- sprite->data4 = 0;
- sprite->data5 = 0;
+ sprite->data[3] = a2;
+ sprite->data[4] = 0;
+ sprite->data[5] = 0;
}
bool8 sub_806468C(struct Sprite *sprite)
{
- if (!(sprite->data4 & 1))
+ if (!(sprite->data[4] & 1))
{
- Step1(sprite, sprite->data3);
- sprite->data5++;
+ Step1(sprite, sprite->data[3]);
+ sprite->data[5]++;
}
- sprite->data4++;
+ sprite->data[4]++;
- if (sprite->data5 > 15)
+ if (sprite->data[5] > 15)
return TRUE;
else
return FALSE;
@@ -148,10 +148,10 @@ s16 sub_80646C8(s16 a1, u8 a2)
void sub_80646E4(struct Sprite *sprite, u8 a2, u8 a3, u8 a4)
{
- sprite->data3 = a2;
- sprite->data4 = a3;
- sprite->data5 = a4;
- sprite->data6 = 0;
+ sprite->data[3] = a2;
+ sprite->data[4] = a3;
+ sprite->data[5] = a4;
+ sprite->data[6] = 0;
}
u8 sub_8064704(struct Sprite *sprite)
@@ -165,17 +165,17 @@ u8 sub_8064704(struct Sprite *sprite)
v2 = 0;
- if (sprite->data4)
- Step1(sprite, sprite->data3);
+ if (sprite->data[4])
+ Step1(sprite, sprite->data[3]);
- sprite->pos2.y = sub_80646C8(sprite->data6 >> v6[sprite->data4], sprite->data5);
+ sprite->pos2.y = sub_80646C8(sprite->data[6] >> v6[sprite->data[4]], sprite->data[5]);
- sprite->data6++;
+ sprite->data[6]++;
- if (sprite->data6 == (v5[sprite->data4] >> 1))
+ if (sprite->data[6] == (v5[sprite->data[4]] >> 1))
v2 = 1;
- if (sprite->data6 >= v5[sprite->data4])
+ if (sprite->data[6] >= v5[sprite->data[4]])
{
sprite->pos2.y = 0;
v2 = -1;
@@ -195,17 +195,17 @@ u8 sub_806478C(struct Sprite *sprite)
v2 = 0;
- if (sprite->data4 && !(sprite->data6 & 1))
- Step1(sprite, sprite->data3);
+ if (sprite->data[4] && !(sprite->data[6] & 1))
+ Step1(sprite, sprite->data[3]);
- sprite->pos2.y = sub_80646C8(sprite->data6 >> v6[sprite->data4], sprite->data5);
+ sprite->pos2.y = sub_80646C8(sprite->data[6] >> v6[sprite->data[4]], sprite->data[5]);
- sprite->data6++;
+ sprite->data[6]++;
- if (sprite->data6 == (v5[sprite->data4] >> 1))
+ if (sprite->data[6] == (v5[sprite->data[4]] >> 1))
v2 = 1;
- if (sprite->data6 >= v5[sprite->data4])
+ if (sprite->data[6] >= v5[sprite->data[4]])
{
sprite->pos2.y = 0;
v2 = -1;
@@ -216,14 +216,14 @@ u8 sub_806478C(struct Sprite *sprite)
void sub_8064820(struct Sprite *sprite, u16 a2)
{
- sprite->data3 = a2;
+ sprite->data[3] = a2;
}
bool8 sub_8064824(struct Sprite *sprite)
{
- sprite->data3--;
+ sprite->data[3]--;
- if (sprite->data3 == 0)
+ if (sprite->data[3] == 0)
return TRUE;
else
return FALSE;
@@ -273,7 +273,7 @@ void sub_806487C(struct Sprite *sprite, bool8 invisible)
void sub_8064970(struct Sprite *sprite)
{
- SetObjectSubpriorityByZCoord(sprite->data1, sprite, 1);
+ SetObjectSubpriorityByZCoord(sprite->data[1], sprite, 1);
sub_806487C(sprite, 0);
}
@@ -283,7 +283,7 @@ void sub_8064990(u8 a1, u8 dir)
for (i = 0; i < MAX_SPRITES; i++)
{
struct Sprite *sprite = &gSprites[i];
- if (sprite->inUse && sprite->callback == sub_8064970 && (u8)sprite->data0 == a1)
+ if (sprite->inUse && sprite->callback == sub_8064970 && (u8)sprite->data[0] == a1)
{
u8 animNum = FieldObjectDirectionToImageAnimId(dir);
StartSpriteAnim(sprite, animNum);
@@ -294,7 +294,7 @@ void sub_8064990(u8 a1, u8 dir)
u32 oe_exec_and_other_stuff(u8 fieldEffectId, struct MapObject *mapObject)
{
- FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
+ FieldObjectGetLocalIdAndMap(mapObject, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]);
return FieldEffectStart(fieldEffectId);
}
diff --git a/src/field/field_player_avatar.c b/src/field/field_player_avatar.c
index 6c1c9123a..d80076be4 100644
--- a/src/field/field_player_avatar.c
+++ b/src/field/field_player_avatar.c
@@ -9,15 +9,15 @@
#include "field_map_obj_helpers.h"
#include "fieldmap.h"
#include "main.h"
-#include "map_object_constants.h"
+#include "constants/map_objects.h"
#include "menu.h"
#include "metatile_behavior.h"
#include "party_menu.h"
-#include "rng.h"
+#include "random.h"
#include "overworld.h"
#include "rotating_gate.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "strings2.h"
#include "task.h"
@@ -31,7 +31,7 @@ static bool8 sub_8058854(struct MapObject *, u8);
static void npc_clear_strange_bits(struct MapObject *a);
static void MovePlayerAvatarUsingKeypadInput(u8 a, u16 b, u16 c);
static void PlayerAllowForcedMovementIfMovingSameDirection(void);
-static u8 TryDoMetatileBehaviorForcedMovement(void);
+static bool8 TryDoMetatileBehaviorForcedMovement(void);
static u8 GetForcedMovementByMetatileBehavior(void);
static void MovePlayerNotOnBike(u8 a, u16 b);
static u8 CheckMovementInputNotOnBike(u8 a);
@@ -49,7 +49,7 @@ static void PlayerNotOnBikeCollide(u8 a);
static void PlayCollisionSoundIfNotFacingWarp(u8 a);
static void sub_8059D60(struct MapObject *a);
static void StartStrengthAnim(u8 a, u8 b);
-static void sub_8059F94(void);
+static void DoPlayerMatJump(void);
static void sub_805A06C(void);
static bool8 (*const gUnknown_0830FB58[])(u8) =
@@ -73,7 +73,7 @@ static bool8 (*const gUnknown_0830FB58[])(u8) =
MetatileBehavior_0xBC,
MetatileBehavior_IsMuddySlope,
};
-static u8 (*const gUnknown_0830FBA0[])(void) =
+static bool8 (*const gUnknown_0830FBA0[])(void) =
{
ForcedMovement_None,
ForcedMovement_Slip,
@@ -91,7 +91,7 @@ static u8 (*const gUnknown_0830FBA0[])(void) =
ForcedMovement_SlideWest,
ForcedMovement_SlideEast,
sub_8058B0C,
- sub_8058C04,
+ ForcedMovement_MatJump,
sub_8058C10,
ForcedMovement_MuddySlope,
};
@@ -182,9 +182,9 @@ static u8 (*const gUnknown_0830FC88[])(struct Task *, struct MapObject *, struct
sub_8059EA4,
sub_8059F40,
};
-static u8 (*const gUnknown_0830FC94[])(struct Task *, struct MapObject *) =
+static u8 (*const sPlayerAvatarSecretBaseMatJump[])(struct Task *, struct MapObject *) =
{
- sub_805A000,
+ PlayerAvatar_DoSecretBaseMatJump,
};
static u8 (*const gUnknown_0830FC98[])(struct Task *, struct MapObject *) =
{
@@ -201,9 +201,9 @@ void player_step(u8 direction, u16 newKeys, u16 heldKeys)
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
sub_8059D60(playerMapObj);
- if (gPlayerAvatar.unk6 == 0)
+ if (gPlayerAvatar.preventStep == FALSE)
{
- sub_80E5B38(newKeys, heldKeys);
+ Bike_TryAcroBikeHistoryUpdate(newKeys, heldKeys);
if (!sub_8058854(playerMapObj, direction))
{
npc_clear_strange_bits(playerMapObj);
@@ -256,11 +256,11 @@ static void MovePlayerAvatarUsingKeypadInput(u8 direction, u16 newKeys, u16 held
static void PlayerAllowForcedMovementIfMovingSameDirection(void)
{
- if (gPlayerAvatar.running2 == 2)
+ if (gPlayerAvatar.runningState == MOVING)
gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_5;
}
-static u8 TryDoMetatileBehaviorForcedMovement(void)
+static bool8 TryDoMetatileBehaviorForcedMovement(void)
{
return gUnknown_0830FBA0[GetForcedMovementByMetatileBehavior()]();
}
@@ -282,7 +282,7 @@ static u8 GetForcedMovementByMetatileBehavior(void)
return 0;
}
-u8 ForcedMovement_None(void)
+bool8 ForcedMovement_None(void)
{
if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_6)
{
@@ -293,7 +293,7 @@ u8 ForcedMovement_None(void)
FieldObjectSetDirection(playerMapObj, playerMapObj->mapobj_unk_18);
gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_6;
}
- return 0;
+ return FALSE;
}
static u8 DoForcedMovement(u8 direction, void (*b)(u8))
@@ -314,13 +314,13 @@ static u8 DoForcedMovement(u8 direction, void (*b)(u8))
if (collisionType == COLLISION_LEDGE_JUMP)
PlayerJumpLedge(direction);
playerAvatar->flags |= PLAYER_AVATAR_FLAG_6;
- playerAvatar->running2 = 2;
+ playerAvatar->runningState = MOVING;
return 1;
}
}
else
{
- playerAvatar->running2 = 2;
+ playerAvatar->runningState = MOVING;
b(direction);
return 1;
}
@@ -334,47 +334,47 @@ static u8 DoForcedMovementInCurrentDirection(void (*a)(u8))
return DoForcedMovement(playerMapObj->placeholder18, a);
}
-u8 ForcedMovement_Slip(void)
+bool8 ForcedMovement_Slip(void)
{
- return DoForcedMovementInCurrentDirection(sub_80593C4);
+ return DoForcedMovementInCurrentDirection(PlayerGoSpeed2);
}
-u8 sub_8058AAC(void)
+bool8 sub_8058AAC(void)
{
- return DoForcedMovement(1, PlayerGoSpeed0);
+ return DoForcedMovement(1, PlayerGoSpeed1);
}
-u8 sub_8058AC4(void)
+bool8 sub_8058AC4(void)
{
- return DoForcedMovement(2, PlayerGoSpeed0);
+ return DoForcedMovement(2, PlayerGoSpeed1);
}
-u8 sub_8058ADC(void)
+bool8 sub_8058ADC(void)
{
- return DoForcedMovement(3, PlayerGoSpeed0);
+ return DoForcedMovement(3, PlayerGoSpeed1);
}
-u8 sub_8058AF4(void)
+bool8 sub_8058AF4(void)
{
- return DoForcedMovement(4, PlayerGoSpeed0);
+ return DoForcedMovement(4, PlayerGoSpeed1);
}
-u8 sub_8058B0C(void)
+bool8 sub_8058B0C(void)
{
return DoForcedMovement(1, npc_use_some_d2s);
}
-u8 sub_8058B24(void)
+bool8 sub_8058B24(void)
{
return DoForcedMovement(2, npc_use_some_d2s);
}
-u8 sub_8058B3C(void)
+bool8 sub_8058B3C(void)
{
return DoForcedMovement(3, npc_use_some_d2s);
}
-u8 sub_8058B54(void)
+bool8 sub_8058B54(void)
{
return DoForcedMovement(4, npc_use_some_d2s);
}
@@ -388,51 +388,51 @@ static u8 ForcedMovement_Slide(u8 direction, void (*b)(u8))
return DoForcedMovement(direction, b);
}
-u8 ForcedMovement_SlideSouth(void)
+bool8 ForcedMovement_SlideSouth(void)
{
- return ForcedMovement_Slide(1, sub_80593C4);
+ return ForcedMovement_Slide(1, PlayerGoSpeed2);
}
-u8 ForcedMovement_SlideNorth(void)
+bool8 ForcedMovement_SlideNorth(void)
{
- return ForcedMovement_Slide(2, sub_80593C4);
+ return ForcedMovement_Slide(2, PlayerGoSpeed2);
}
-u8 ForcedMovement_SlideWest(void)
+bool8 ForcedMovement_SlideWest(void)
{
- return ForcedMovement_Slide(3, sub_80593C4);
+ return ForcedMovement_Slide(3, PlayerGoSpeed2);
}
-u8 ForcedMovement_SlideEast(void)
+bool8 ForcedMovement_SlideEast(void)
{
- return ForcedMovement_Slide(4, sub_80593C4);
+ return ForcedMovement_Slide(4, PlayerGoSpeed2);
}
-u8 sub_8058C04(void)
+bool8 ForcedMovement_MatJump(void)
{
- sub_8059F94();
- return 1;
+ DoPlayerMatJump();
+ return TRUE;
}
-u8 sub_8058C10(void)
+bool8 sub_8058C10(void)
{
sub_805A06C();
- return 1;
+ return TRUE;
}
-u8 ForcedMovement_MuddySlope(void)
+bool8 ForcedMovement_MuddySlope(void)
{
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
if (playerMapObj->placeholder18 != 2 || GetPlayerSpeed() <= 3)
{
- sub_80E6010(0);
+ Bike_UpdateBikeCounterSpeed(0);
playerMapObj->mapobj_bit_9 = 1;
- return DoForcedMovement(1, sub_80593C4);
+ return DoForcedMovement(1, PlayerGoSpeed2);
}
else
{
- return 0;
+ return FALSE;
}
}
@@ -445,17 +445,17 @@ static u8 CheckMovementInputNotOnBike(u8 direction)
{
if (direction == DIR_NONE)
{
- gPlayerAvatar.running2 = 0;
+ gPlayerAvatar.runningState = NOT_MOVING;
return 0;
}
- else if (direction != player_get_direction_upper_nybble() && gPlayerAvatar.running2 != 2)
+ else if (direction != player_get_direction_upper_nybble() && gPlayerAvatar.runningState != MOVING)
{
- gPlayerAvatar.running2 = 1;
+ gPlayerAvatar.runningState = TURN_DIRECTION;
return 1;
}
else
{
- gPlayerAvatar.running2 = 2;
+ gPlayerAvatar.runningState = MOVING;
return 2;
}
}
@@ -486,10 +486,11 @@ void sub_8058D0C(u8 direction, u16 heldKeys)
case 0:
if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)
{
- sub_80593C4(direction);
+ // speed 2 is fast, same speed as running
+ PlayerGoSpeed2(direction);
return;
}
- if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_4) && (heldKeys & B_BUTTON) && FlagGet(SYS_B_DASH)
+ if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_4) && (heldKeys & B_BUTTON) && FlagGet(FLAG_SYS_B_DASH)
&& IsRunningDisallowed(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1E) == 0)
{
sub_805940C(direction);
@@ -497,7 +498,7 @@ void sub_8058D0C(u8 direction, u16 heldKeys)
}
else
{
- PlayerGoSpeed0(direction);
+ PlayerGoSpeed1(direction);
}
}
}
@@ -562,7 +563,7 @@ static bool8 ShouldJumpLedge(s16 a, s16 b, u8 c)
static u8 sub_8058F6C(s16 a, s16 b, u8 c)
{
- if (FlagGet(SYS_USE_STRENGTH))
+ if (FlagGet(FLAG_SYS_USE_STRENGTH))
{
u8 mapObjectId = GetFieldObjectIdByXY(a, b);
@@ -601,14 +602,14 @@ static void check_acro_bike_metatile(int unused1, int unused2, u8 c, u8 *d)
void SetPlayerAvatarTransitionFlags(u16 a)
{
- gPlayerAvatar.bike |= a;
+ gPlayerAvatar.unk1 |= a;
DoPlayerAvatarTransition();
}
static void DoPlayerAvatarTransition(void)
{
u8 i;
- u32 flags = gPlayerAvatar.bike;
+ u32 flags = gPlayerAvatar.unk1;
if (flags != 0)
{
@@ -627,7 +628,7 @@ static void DoPlayerAvatarTransition(void)
}
#endif
}
- gPlayerAvatar.bike = 0;
+ gPlayerAvatar.unk1 = 0;
}
}
@@ -656,7 +657,7 @@ void PlayerAvatarTransition_AcroBike(struct MapObject *a)
FieldObjectTurn(a, a->placeholder18);
SetPlayerAvatarStateMask(4);
BikeClearState(0, 0);
- sub_80E6084();
+ Bike_HandleBumpySlopeJump();
}
void PlayerAvatarTransition_Surfing(struct MapObject *a)
@@ -689,18 +690,18 @@ void sub_80591F4(struct MapObject *a)
void sub_8059204(void)
{
- gPlayerAvatar.running1 = 0;
+ gPlayerAvatar.tileTransitionState = T_NOT_MOVING;
if (PlayerIsAnimActive())
{
if (!PlayerCheckIfAnimFinishedOrInactive())
{
if (!player_is_anim_in_certain_ranges())
- gPlayerAvatar.running1 = 1;
+ gPlayerAvatar.tileTransitionState = T_TILE_TRANSITION;
}
else
{
if (!sub_80592A4())
- gPlayerAvatar.running1 = 2;
+ gPlayerAvatar.tileTransitionState = T_TILE_CENTER;
}
}
}
@@ -721,7 +722,7 @@ static bool8 player_is_anim_in_certain_ranges(void)
static bool8 sub_80592A4(void)
{
- if (player_is_anim_in_certain_ranges() && gPlayerAvatar.running2 != 1)
+ if (player_is_anim_in_certain_ranges() && gPlayerAvatar.runningState != TURN_DIRECTION)
return TRUE;
else
return FALSE;
@@ -761,12 +762,14 @@ void PlayerSetAnimId(u8 animId, u8 b)
}
}
-void PlayerGoSpeed0(u8 a)
+// normal speed (1 speed)
+void PlayerGoSpeed1(u8 a)
{
PlayerSetAnimId(GetGoSpeed0AnimId(a), 2);
}
-void sub_80593C4(u8 a)
+// fast speed (2 speed)
+void PlayerGoSpeed2(u8 a)
{
PlayerSetAnimId(sub_8060744(a), 2);
}
@@ -776,7 +779,8 @@ void npc_use_some_d2s(u8 a)
PlayerSetAnimId(d2s_08064034(a), 2);
}
-void sub_80593F4(u8 a)
+// fastest speed (4 speed)
+void PlayerGoSpeed4(u8 a)
{
PlayerSetAnimId(sub_806079C(a), 2);
}
@@ -816,48 +820,54 @@ void PlayerJumpLedge(u8 direction)
void sub_80594C0(void)
{
- if (gPlayerAvatar.running1 == 2 || gPlayerAvatar.running1 == 0)
+ if (gPlayerAvatar.tileTransitionState == T_TILE_CENTER || gPlayerAvatar.tileTransitionState == T_NOT_MOVING)
{
if (player_should_look_direction_be_enforced_upon_movement())
sub_8059348(GetFaceDirectionAnimId(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_18));
}
}
-void sub_8059504(u8 a)
+// wheelie idle
+void PlayerIdleWheelie(u8 a)
{
PlayerSetAnimId(sub_80609D8(a), 1);
}
-//normal to wheelie
+// normal to wheelie
void PlayerStartWheelie(u8 a)
{
PlayerSetAnimId(sub_8060A04(a), 1);
}
-void sub_8059534(u8 a)
+// wheelie to normal
+void PlayerEndWheelie(u8 a)
{
PlayerSetAnimId(sub_8060A30(a), 1);
}
-void sub_805954C(u8 a)
+// wheelie hopping standing
+void PlayerStandingHoppingWheelie(u8 a)
{
PlaySE(SE_JITE_PYOKO);
PlayerSetAnimId(sub_8060A5C(a), 1);
}
-void sub_8059570(u8 a)
+// wheelie hopping moving
+void PlayerMovingHoppingWheelie(u8 a)
{
PlaySE(SE_JITE_PYOKO);
PlayerSetAnimId(sub_8060A88(a), 2);
}
-void sub_8059594(u8 a)
+// wheelie hopping ledge
+void PlayerLedgeHoppingWheelie(u8 a)
{
PlaySE(SE_JITE_PYOKO);
PlayerSetAnimId(sub_8060AB4(a), 8);
}
-void sub_80595B8(u8 direction)
+// acro turn jump
+void PlayerAcroTurnJump(u8 direction)
{
PlaySE(SE_JITE_PYOKO);
PlayerSetAnimId(sub_8060878(direction), 1);
@@ -963,8 +973,8 @@ void sub_80597F4(void)
FieldObjectSetDirection(playerMapObj, playerMapObj->mapobj_unk_18);
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE))
{
- sub_80E6084();
- sub_80E6010(0);
+ Bike_HandleBumpySlopeJump();
+ Bike_UpdateBikeCounterSpeed(0);
}
}
@@ -1060,7 +1070,6 @@ bool8 IsPlayerFacingSurfableFishableWater(void)
void ClearPlayerAvatarInfo(void)
{
- //TODO: 0x24 should be the size of gPlayerAvatar
memset(&gPlayerAvatar, 0, sizeof(struct PlayerAvatar));
}
@@ -1099,7 +1108,7 @@ void SetPlayerAvatarExtraStateTransition(u8 a, u8 b)
{
u8 unk = GetPlayerAvatarStateTransitionByGraphicsId(a, gPlayerAvatar.gender);
- gPlayerAvatar.bike |= unk | b;
+ gPlayerAvatar.unk1 |= unk | b;
DoPlayerAvatarTransition();
}
@@ -1127,8 +1136,8 @@ void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender)
mapObject->mapobj_unk_1B = sub_8126B54();
FieldObjectTurn(mapObject, direction);
ClearPlayerAvatarInfo();
- gPlayerAvatar.running2 = 0;
- gPlayerAvatar.running1 = 0;
+ gPlayerAvatar.runningState = NOT_MOVING;
+ gPlayerAvatar.tileTransitionState = T_NOT_MOVING;
gPlayerAvatar.mapObjectId = mapObjectId;
gPlayerAvatar.spriteId = mapObject->spriteId;
gPlayerAvatar.gender = gender;
@@ -1212,7 +1221,7 @@ static void sub_8059E2C(u8 taskId)
u8 sub_8059E84(struct Task *task, struct MapObject *b, struct MapObject *c)
{
ScriptContext2_Enable();
- gPlayerAvatar.unk6 = 1;
+ gPlayerAvatar.preventStep = TRUE;
task->data[0]++;
return 0;
}
@@ -1244,7 +1253,7 @@ u8 sub_8059F40(struct Task *task, struct MapObject *b, struct MapObject *c)
{
FieldObjectClearAnimIfSpecialAnimFinished(b);
FieldObjectClearAnimIfSpecialAnimFinished(c);
- gPlayerAvatar.unk6 = 0;
+ gPlayerAvatar.preventStep = FALSE;
ScriptContext2_Disable();
DestroyTask(FindTaskIdByFunc(sub_8059E2C));
}
@@ -1253,24 +1262,23 @@ u8 sub_8059F40(struct Task *task, struct MapObject *b, struct MapObject *c)
/* Some field effect */
-static void sub_8059FB4(u8 taskId);
+static void DoPlayerAvatarSecretBaseMatJump(u8 taskId);
-static void sub_8059F94(void)
+static void DoPlayerMatJump(void)
{
- u8 taskId = CreateTask(sub_8059FB4, 0xFF);
-
- sub_8059FB4(taskId);
+ DoPlayerAvatarSecretBaseMatJump(CreateTask(DoPlayerAvatarSecretBaseMatJump, 0xFF));
}
-static void sub_8059FB4(u8 taskId)
+static void DoPlayerAvatarSecretBaseMatJump(u8 taskId)
{
- while (gUnknown_0830FC94[gTasks[taskId].data[0]](&gTasks[taskId], &gMapObjects[gPlayerAvatar.mapObjectId]))
+ while (sPlayerAvatarSecretBaseMatJump[gTasks[taskId].data[0]](&gTasks[taskId], &gMapObjects[gPlayerAvatar.mapObjectId]))
;
}
-u8 sub_805A000(struct Task *task, struct MapObject *mapObject)
+// because data[0] is used to call this, it can be inferred that there may have been multiple mat jump functions at one point, so the name for these groups of functions is appropriate in assuming the sole use of mat jump.
+u8 PlayerAvatar_DoSecretBaseMatJump(struct Task *task, struct MapObject *mapObject)
{
- gPlayerAvatar.unk6 = 1;
+ gPlayerAvatar.preventStep = TRUE;
if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
{
PlaySE(SE_DANSA);
@@ -1278,9 +1286,9 @@ u8 sub_805A000(struct Task *task, struct MapObject *mapObject)
task->data[1]++;
if (task->data[1] > 1)
{
- gPlayerAvatar.unk6 = 0;
- gPlayerAvatar.bike |= 0x20;
- DestroyTask(FindTaskIdByFunc(sub_8059FB4));
+ gPlayerAvatar.preventStep = FALSE;
+ gPlayerAvatar.unk1 |= 0x20;
+ DestroyTask(FindTaskIdByFunc(DoPlayerAvatarSecretBaseMatJump));
}
}
return 0;
@@ -1307,7 +1315,7 @@ u8 sub_805A0D8(struct Task *task, struct MapObject *mapObject)
{
task->data[0]++;
task->data[1] = mapObject->placeholder18;
- gPlayerAvatar.unk6 = 1;
+ gPlayerAvatar.preventStep = TRUE;
ScriptContext2_Enable();
PlaySE(SE_TK_WARPIN);
return 1;
@@ -1349,7 +1357,7 @@ u8 sub_805A1B8(struct Task *task, struct MapObject *mapObject)
{
FieldObjectSetSpecialAnim(mapObject, GetSimpleGoAnimId(GetOppositeDirection(task->data[1])));
ScriptContext2_Disable();
- gPlayerAvatar.unk6 = 0;
+ gPlayerAvatar.preventStep = FALSE;
DestroyTask(FindTaskIdByFunc(sub_805A08C));
}
return 0;
@@ -1369,7 +1377,7 @@ void sub_805A20C(u8 a)
Overworld_ChangeMusicToDefault();
gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_SURFING;
gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_ON_FOOT;
- gPlayerAvatar.unk6 = 1;
+ gPlayerAvatar.preventStep = TRUE;
taskId = CreateTask(taskFF_0805D1D4, 0xFF);
gTasks[taskId].data[0] = a;
taskFF_0805D1D4(taskId);
@@ -1397,7 +1405,7 @@ static void sub_805A2D0(u8 taskId)
{
sub_805B980(playerMapObj, GetPlayerAvatarGraphicsIdByStateId(0));
FieldObjectSetSpecialAnim(playerMapObj, GetFaceDirectionAnimId(playerMapObj->mapobj_unk_18));
- gPlayerAvatar.unk6 = 0;
+ gPlayerAvatar.preventStep = FALSE;
ScriptContext2_Disable();
DestroySprite(&gSprites[playerMapObj->mapobj_unk_1A]);
DestroyTask(taskId);
@@ -1462,7 +1470,7 @@ static void Task_Fishing(u8 taskId)
u8 Fishing1(struct Task *task)
{
ScriptContext2_Enable();
- gPlayerAvatar.unk6 = 1;
+ gPlayerAvatar.preventStep = TRUE;
task->tStep++;
return 0;
}
@@ -1647,7 +1655,7 @@ u8 Fishing11(struct Task *task)
if (task->tFrameCounter != 0)
{
- gPlayerAvatar.unk6 = 0;
+ gPlayerAvatar.preventStep = FALSE;
ScriptContext2_Disable();
FishingWildEncounter(task->tFishingRod);
sub_80BE97C(1);
@@ -1707,7 +1715,7 @@ u8 Fishing16(struct Task *task)
{
if (MenuUpdateWindowText())
{
- gPlayerAvatar.unk6 = 0;
+ gPlayerAvatar.preventStep = FALSE;
ScriptContext2_Disable();
UnfreezeMapObjects();
MenuZeroFillScreen();
diff --git a/src/field/field_poison.c b/src/field/field_poison.c
index 1244b9c62..49678f269 100644
--- a/src/field/field_poison.c
+++ b/src/field/field_poison.c
@@ -1,7 +1,7 @@
#include "global.h"
#include "field_poison.h"
#include "field_message_box.h"
-#include "fldeff_80C5CD4.h"
+#include "fldeff_poison.h"
#include "pokemon.h"
#include "pokemon_summary_screen.h"
#include "script.h"
@@ -9,7 +9,7 @@
#include "task.h"
#include "text.h"
-extern u16 gScriptResult;
+extern u16 gSpecialVar_Result;
extern u8 fieldPoisonText_PokemonFainted[];
bool32 CheckMonIsValid(struct Pokemon *pkmn)
@@ -93,9 +93,9 @@ void Task_WhiteOut(u8 taskId)
break;
case 2: //Done checking Pokemon
if (AllMonsFainted())
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
else
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
EnableBothScriptContexts();
DestroyTask(taskId);
break;
@@ -128,7 +128,7 @@ s32 DoPoisonFieldEffect(void)
hp--;
if (hp == 0)
numFainting++; //Pokemon will now faint due to poison
- SetMonData(pkmn, MON_DATA_HP, (u8 *)&hp);
+ SetMonData(pkmn, MON_DATA_HP, &hp);
numPoisoned++;
}
pkmn++;
diff --git a/src/field/field_region_map.c b/src/field/field_region_map.c
index 7cb22e5df..73e101d8f 100644
--- a/src/field/field_region_map.c
+++ b/src/field/field_region_map.c
@@ -7,6 +7,7 @@
#include "sprite.h"
#include "strings2.h"
#include "text.h"
+#include "ewram.h"
struct RegionMapStruct
{
@@ -24,14 +25,11 @@ struct UnkStruct
u16 unk888;
};
-extern u8 ewram[];
-#define unk_2000000 (*(struct UnkStruct *)(ewram))
-
void FieldInitRegionMap(MainCallback callback)
{
SetVBlankCallback(NULL);
- unk_2000000.unk888 = 0;
- unk_2000000.callback = callback;
+ ewram0_5.unk888 = 0;
+ ewram0_5.callback = callback;
SetMainCallback2(CB2_FieldInitRegionMap);
}
@@ -49,7 +47,7 @@ void CB2_FieldInitRegionMap(void)
ResetSpriteData();
FreeAllSpritePalettes();
// TODO: remove this cast
- InitRegionMap((void *)&unk_2000000.unk8, 0);
+ InitRegionMap((void *)&ewram0_5.unk8, 0);
CreateRegionMapPlayerIcon(0, 0);
CreateRegionMapCursor(1, 1);
SetUpWindowConfig(&gWindowConfig_81E709C);
@@ -82,15 +80,15 @@ void CB2_FieldRegionMap(void)
void sub_813EFDC(void)
{
- switch (unk_2000000.unk888)
+ switch (ewram0_5.unk888)
{
case 0:
REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON;
- unk_2000000.unk888++;
+ ewram0_5.unk888++;
break;
case 1:
if (!gPaletteFade.active)
- unk_2000000.unk888++;
+ ewram0_5.unk888++;
break;
case 2:
switch (sub_80FAB60())
@@ -100,18 +98,18 @@ void sub_813EFDC(void)
break;
case 4:
case 5:
- unk_2000000.unk888++;
+ ewram0_5.unk888++;
}
break;
case 3:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
- unk_2000000.unk888++;
+ ewram0_5.unk888++;
break;
case 4:
if (!gPaletteFade.active)
{
FreeRegionMapIconResources();
- SetMainCallback2(unk_2000000.callback);
+ SetMainCallback2(ewram0_5.callback);
}
break;
}
@@ -120,6 +118,6 @@ void sub_813EFDC(void)
void sub_813F0C8(void)
{
MenuFillWindowRectWithBlankTile(17, 17, 28, 18);
- if (unk_2000000.unk8.unk16)
- MenuPrint(unk_2000000.unk8.str, 17, 17);
+ if (ewram0_5.unk8.unk16)
+ MenuPrint(ewram0_5.unk8.str, 17, 17);
}
diff --git a/src/field/field_screen_effect.c b/src/field/field_screen_effect.c
index 0c76d254d..a472d5a9c 100644
--- a/src/field/field_screen_effect.c
+++ b/src/field/field_screen_effect.c
@@ -9,16 +9,6 @@
#include "text.h"
#include "unknown_task.h"
-struct UnknownStruct1
-{
- u8 filler0[0x14];
- u8 unk14;
- u8 filler15[0xB];
-};
-extern struct UnknownStruct1 gUnknown_03004DC0;
-
-extern u16 gUnknown_03004DE0[][0x3C0];
-
const static u16 gUnknown_0839ACDC[] = { 0xC8, 0x48, 0x38, 0x28, 0x18, 0x0 };
const s32 gMaxFlashLevel = 4;
@@ -74,11 +64,11 @@ static void sub_8081424(u8 taskId)
switch (data[0])
{
case 0:
- sub_8081398(&gUnknown_03004DE0[gUnknown_03004DC0.unk14][0], data[1], data[2], data[3]);
+ sub_8081398(&gUnknown_03004DE0[gUnknown_03004DC0.srcBank][0], data[1], data[2], data[3]);
data[0] = 1;
break;
case 1:
- sub_8081398(&gUnknown_03004DE0[gUnknown_03004DC0.unk14][0], data[1], data[2], data[3]);
+ sub_8081398(&gUnknown_03004DE0[gUnknown_03004DC0.srcBank][0], data[1], data[2], data[3]);
data[0] = 0;
data[3] += data[5];
if (data[3] > data[4])
@@ -293,17 +283,17 @@ void sub_80818A4(void)
u8 taskId = CreateTask(sub_80816A8, 80);
s16 *data = gTasks[taskId].data;
- if (gScriptResult == 0)
+ if (gSpecialVar_Result == 0)
{
data[1] = 0;
data[2] = 104;
}
- else if (gScriptResult == 1)
+ else if (gSpecialVar_Result == 1)
{
data[1] = 1;
data[2] = 104;
}
- else if (gScriptResult == 2)
+ else if (gSpecialVar_Result == 2)
{
data[1] = 0;
data[2] = 120;
diff --git a/src/field/field_special_scene.c b/src/field/field_special_scene.c
index d4b59c8a2..0b7fe336e 100644
--- a/src/field/field_special_scene.c
+++ b/src/field/field_special_scene.c
@@ -11,13 +11,59 @@
#include "overworld.h"
#include "script.h"
#include "script_movement.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "task.h"
#define SECONDS(value) ((signed) (60.0 * value + 0.5))
+// TODO: Move somewhere else
+enum
+{
+ STEP_17 = 0x17,
+ STEP_18,
+ STEP_END = 0xFE,
+};
+
+const u32 gMapObjectPic_MovingBox[] = INCBIN_U32("graphics/map_objects/pics/misc/moving_box.4bpp");
+const u16 gMapObjectPalette19[] = INCBIN_U16("graphics/map_objects/palettes/19.gbapal");
+
+static const s8 gTruckCamera_HorizontalTable[] =
+{
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ 2,
+ -1,
+ -1,
+ -1,
+ 0,
+};
+
+const u8 gUnknown_083D295F[] =
+{
+ STEP_18,
+ STEP_END,
+};
+
+const u8 gUnknown_083D2961[] =
+{
+ STEP_17,
+ STEP_END,
+};
+
// porthole states
enum
{
@@ -27,12 +73,7 @@ enum
EXIT_PORTHOLE,
};
-extern s8 gTruckCamera_HorizontalTable[];
-
-extern u8 gUnknown_083D295F[];
-extern u8 gUnknown_083D2961[];
-
-s32 GetTruckCameraBobbingY(int a1)
+s16 GetTruckCameraBobbingY(int a1)
{
if (!(a1 % 120))
return -1;
@@ -42,7 +83,7 @@ s32 GetTruckCameraBobbingY(int a1)
return 0;
}
-s32 GetTruckBoxMovement(int a1) // for the box movement?
+s16 GetTruckBoxMovement(int a1) // for the box movement?
{
if (!((a1 + 120) % 180))
return -1;
@@ -53,28 +94,22 @@ s32 GetTruckBoxMovement(int a1) // for the box movement?
void Task_Truck1(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- s16 cameraYpan;
- s16 box1 = 0;
- s16 box2 = 0;
- s16 box3 = 0;
- u8 mapNum, mapGroup;
- register s16 zero asm("r4");
+ s16 cameraYpan, cameraXpan = 0;
+ s16 box1, box2, box3;
box1 = GetTruckBoxMovement(data[0] + 30) * 4; // top box.
- sub_805BD90(1, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, 3, box1 + 3);
+ sub_805BD90(1, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, 3 - cameraXpan, box1 + 3);
box2 = GetTruckBoxMovement(data[0]) * 2; // bottom left box.
- sub_805BD90(2, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, 0, box2 - 3);
+ sub_805BD90(2, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, -cameraXpan, box2 - 3);
box3 = GetTruckBoxMovement(data[0]) * 4; // bottom right box.
- mapNum = gSaveBlock1.location.mapNum;
- mapGroup = gSaveBlock1.location.mapGroup;
- zero = 0;
- sub_805BD90(3, mapNum, mapGroup, -3, box3);
+ sub_805BD90(3, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, -3 - cameraXpan, box3);
if (++data[0] == SECONDS(500)) // this will never run
- data[0] = zero; // reset the timer if it gets stuck.
+ data[0] = 0; // reset the timer if it gets stuck.
+ // this also matches with directly calling GetTruckCameraBobbingY within SetCameraPanning, but this is consistent with a later function that requires a temp variable.
cameraYpan = GetTruckCameraBobbingY(data[0]);
- SetCameraPanning(0, cameraYpan);
+ SetCameraPanning(cameraXpan, cameraYpan);
}
void Task_Truck2(u8 taskId)
@@ -82,9 +117,7 @@ void Task_Truck2(u8 taskId)
s16 *data = gTasks[taskId].data;
s16 cameraYpan;
s16 cameraXpan;
- s16 box1;
- s16 box2;
- s16 box3;
+ s16 box1, box2, box3;
data[0]++;
data[2]++;
@@ -137,7 +170,7 @@ void Task_Truck3(u8 taskId)
{
cameraXpan = gTruckCamera_HorizontalTable[data[1]];
cameraYpan = 0;
- SetCameraPanning(cameraXpan, 0);
+ SetCameraPanning(cameraXpan, cameraYpan);
sub_805BD90(1, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, 3 - cameraXpan, cameraYpan + 3);
sub_805BD90(2, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, -cameraXpan, cameraYpan - 3);
sub_805BD90(3, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, -3 - cameraXpan, cameraYpan);
@@ -340,7 +373,7 @@ void sub_80C791C(void)
void sub_80C7958(void)
{
- FlagSet(SYS_CRUISE_MODE);
+ FlagSet(FLAG_SYS_CRUISE_MODE);
FlagSet(0x4001);
FlagSet(0x4000);
saved_warp2_set(0, gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1);
diff --git a/src/field/field_specials.c b/src/field/field_specials.c
index 36362d098..87a9e2d5d 100644
--- a/src/field/field_specials.c
+++ b/src/field/field_specials.c
@@ -11,22 +11,22 @@
#include "field_camera.h"
#include "field_player_avatar.h"
#include "main.h"
-#include "map_constants.h"
+#include "constants/maps.h"
#include "overworld.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "string_util.h"
#include "strings.h"
#include "pokeblock.h"
-#include "species.h"
-#include "abilities.h"
-#include "moves.h"
+#include "constants/species.h"
+#include "constants/abilities.h"
+#include "constants/moves.h"
#include "text.h"
#include "wallclock.h"
#include "tv.h"
#include "rtc.h"
#include "link.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "menu.h"
#include "starter_choose.h"
@@ -34,7 +34,7 @@
#include "battle_tower.h"
#include "field_weather.h"
#include "pokemon_summary_screen.h"
-#include "rng.h"
+#include "random.h"
#if ENGLISH
#define CHAR_DECIMAL_SEPARATOR CHAR_PERIOD
@@ -46,11 +46,13 @@ extern struct WarpData gUnknown_020297F0;
extern u8 gBattleOutcome;
extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
-extern u16 gScriptResult;
+extern u16 gSpecialVar_Result;
-EWRAM_DATA u8 gUnknown_02039250 = 0;
-EWRAM_DATA u8 gUnknown_02039251 = 0;
-EWRAM_DATA u32 gUnknown_02039254 = 0;
+extern u8 *const gUnknown_083D1464[3];
+
+EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE;
+EWRAM_DATA u8 gBikeCollisions = 0;
+EWRAM_DATA u32 gBikeCyclingTimer = 0;
EWRAM_DATA u8 gUnknown_02039258 = 0;
EWRAM_DATA u8 gUnknown_02039259 = 0;
EWRAM_DATA u8 gUnknown_0203925A = 0;
@@ -76,16 +78,16 @@ void ScrSpecial_ViewWallClock(void)
void ResetCyclingRoadChallengeData(void)
{
- gUnknown_02039250 = 0;
- gUnknown_02039251 = 0;
- gUnknown_02039254 = 0;
+ gBikeCyclingChallenge = FALSE;
+ gBikeCollisions = 0;
+ gBikeCyclingTimer = 0;
}
void ScrSpecial_BeginCyclingRoadChallenge(void)
{
- gUnknown_02039250 = 1;
- gUnknown_02039251 = 0;
- gUnknown_02039254 = gMain.vblankCounter1;
+ gBikeCyclingChallenge = TRUE;
+ gBikeCollisions = 0;
+ gBikeCyclingTimer = gMain.vblankCounter1;
}
u16 GetPlayerAvatarBike(void)
@@ -167,14 +169,14 @@ static void DetermineCyclingRoadResults(u32 arg0, u8 arg1)
}
- gScriptResult = result;
+ gSpecialVar_Result = result;
}
void FinishCyclingRoadChallenge(void) {
- const u32 time = gMain.vblankCounter1 - gUnknown_02039254;
+ const u32 time = gMain.vblankCounter1 - gBikeCyclingTimer;
- DetermineCyclingRoadResults(time, gUnknown_02039251);
- RecordCyclingRoadResults(time, gUnknown_02039251);
+ DetermineCyclingRoadResults(time, gBikeCollisions);
+ RecordCyclingRoadResults(time, gBikeCollisions);
}
static void RecordCyclingRoadResults(u32 arg0, u8 arg1) {
@@ -205,7 +207,7 @@ u16 GetRecordedCyclingRoadResults(void) {
}
void UpdateCyclingRoadState(void) {
- if (gUnknown_020297F0.mapNum == MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE && gUnknown_020297F0.mapGroup == MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE)
+ if (gUnknown_020297F0.mapNum == MAP_NUM(ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE) && gUnknown_020297F0.mapGroup == MAP_GROUP(ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE))
{
return;
}
@@ -219,18 +221,18 @@ void UpdateCyclingRoadState(void) {
void SetSSTidalFlag(void)
{
- FlagSet(SYS_CRUISE_MODE);
+ FlagSet(FLAG_SYS_CRUISE_MODE);
*GetVarPointer(VAR_CRUISE_STEP_COUNT) = 0;
}
void ResetSSTidalFlag(void)
{
- FlagClear(SYS_CRUISE_MODE);
+ FlagClear(FLAG_SYS_CRUISE_MODE);
}
bool32 CountSSTidalStep(u16 delta)
{
- if (!FlagGet(SYS_CRUISE_MODE) || (*GetVarPointer(VAR_CRUISE_STEP_COUNT) += delta) <= 0xcc)
+ if (!FlagGet(FLAG_SYS_CRUISE_MODE) || (*GetVarPointer(VAR_CRUISE_STEP_COUNT) += delta) <= 0xcc)
{
return FALSE;
}
@@ -257,38 +259,38 @@ u8 GetSSTidalLocation(s8 *mapGroup, s8 *mapNum, s16 *x, s16 *y)
case 2:
if (*varCruiseStepCount < 60)
{
- *mapNum = MAP_ID_ROUTE134;
+ *mapNum = MAP_NUM(ROUTE134);
*x = *varCruiseStepCount + 19;
}
else if (*varCruiseStepCount < 140)
{
- *mapNum = MAP_ID_ROUTE133;
+ *mapNum = MAP_NUM(ROUTE133);
*x = *varCruiseStepCount - 60;
}
else
{
- *mapNum = MAP_ID_ROUTE132;
+ *mapNum = MAP_NUM(ROUTE132);
*x = *varCruiseStepCount - 140;
}
break;
case 7:
if (*varCruiseStepCount < 66)
{
- *mapNum = MAP_ID_ROUTE132;
+ *mapNum = MAP_NUM(ROUTE132);
*x = 65 - *varCruiseStepCount;
}
else if (*varCruiseStepCount < 146) {
- *mapNum = MAP_ID_ROUTE133;
+ *mapNum = MAP_NUM(ROUTE133);
*x = 145 - *varCruiseStepCount;
}
else
{
- *mapNum = MAP_ID_ROUTE134;
+ *mapNum = MAP_NUM(ROUTE134);
*x = 224 - *varCruiseStepCount;
}
break;
}
- *mapGroup = MAP_GROUP_ROUTE132;
+ *mapGroup = MAP_GROUP(ROUTE132);
*y = 20;
return 0;
}
@@ -700,11 +702,11 @@ void CableCarWarp(void)
{
if (gSpecialVar_0x8004 != 0)
{
- Overworld_SetWarpDestination(MAP_GROUP_ROUTE112_CABLE_CAR_STATION, MAP_ID_ROUTE112_CABLE_CAR_STATION, -1, 6, 4);
+ Overworld_SetWarpDestination(MAP_GROUP(ROUTE112_CABLE_CAR_STATION), MAP_NUM(ROUTE112_CABLE_CAR_STATION), -1, 6, 4);
}
else
{
- Overworld_SetWarpDestination(MAP_GROUP_MT_CHIMNEY_CABLE_CAR_STATION, MAP_ID_MT_CHIMNEY_CABLE_CAR_STATION, -1, 6, 4);
+ Overworld_SetWarpDestination(MAP_GROUP(MT_CHIMNEY_CABLE_CAR_STATION), MAP_NUM(MT_CHIMNEY_CABLE_CAR_STATION), -1, 6, 4);
}
}
@@ -999,22 +1001,22 @@ void SetDepartmentStoreFloorVar(void)
u8 deptStoreFloor;
switch (gSaveBlock1.warp2.mapNum)
{
- case MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_1F:
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_1F):
deptStoreFloor = 0;
break;
- case MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_2F:
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_2F):
deptStoreFloor = 1;
break;
- case MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_3F:
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_3F):
deptStoreFloor = 2;
break;
- case MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_4F:
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_4F):
deptStoreFloor = 3;
break;
- case MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_5F:
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_5F):
deptStoreFloor = 4;
break;
- case MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP:
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP):
deptStoreFloor = 15;
break;
default:
@@ -1110,17 +1112,17 @@ void sub_810E984(u8 taskId)
saved_warp2_set_2(0, gUnknown_03000760[gUnknown_0203925B].var1, gUnknown_03000760[gUnknown_0203925B].var2, -1, 2, 1);
if (gSpecialVar_0x8005 == gUnknown_0203925B)
{
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
PlaySE(SE_SELECT);
MenuZeroFillWindowRect(0, 0, 29, 12);
sub_810EC9C(taskId);
}
else
{
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
gSpecialVar_0x8005 = gUnknown_0203925B;
sub_810EBEC();
- FieldObjectTurnByLocalIdAndMap(gScriptLastTalked, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, DIR_SOUTH);
+ FieldObjectTurnByLocalIdAndMap(gSpecialVar_LastTalked, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, DIR_SOUTH);
sub_810EEDC();
MenuZeroFillScreen();
DestroyTask(taskId);
@@ -1128,7 +1130,7 @@ void sub_810E984(u8 taskId)
}
else if (gMain.newKeys & B_BUTTON)
{
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
PlaySE(SE_SELECT);
sub_810EEDC();
MenuZeroFillWindowRect(0, 0, 29, 12);
@@ -1514,12 +1516,12 @@ void IsGrassTypeInParty(void)
species = GetMonData(pokemon, MON_DATA_SPECIES);
if (gBaseStats[species].type1 == TYPE_GRASS || gBaseStats[species].type2 == TYPE_GRASS)
{
- gScriptResult = TRUE;
+ gSpecialVar_Result = TRUE;
return;
}
}
}
- gScriptResult = FALSE;
+ gSpecialVar_Result = FALSE;
}
const u8 *const gUnknown_083F83C0[] = {
@@ -1577,7 +1579,7 @@ void sub_810F118(u8 taskId)
if (gMain.newKeys & A_BUTTON)
{
HandleDestroyMenuCursors();
- gScriptResult = gUnknown_0203925B;
+ gSpecialVar_Result = gUnknown_0203925B;
PlaySE(SE_SELECT);
sub_810EEDC();
MenuZeroFillWindowRect(0, 0, 29, 12);
@@ -1586,7 +1588,7 @@ void sub_810F118(u8 taskId)
if (gMain.newKeys & B_BUTTON)
{
HandleDestroyMenuCursors();
- gScriptResult = 0x7f;
+ gSpecialVar_Result = 0x7f;
PlaySE(SE_SELECT);
sub_810EEDC();
MenuZeroFillWindowRect(0, 0, 29, 12);
@@ -1789,7 +1791,7 @@ u16 sub_810F404(void)
void sub_810F414(void)
{
- sub_8135FF4(gStringVar1);
+ SetEReaderTrainerName(gStringVar1);
}
const u8 gUnknown_083F83E0[] = {12, 2, 4, 5, 1, 8, 7, 11, 3, 10, 9, 6};
@@ -1863,7 +1865,7 @@ void GivLeadMonEffortRibbon(void)
{
bool8 ribbonSet;
IncrementGameStat(GAME_STAT_RECEIVED_RIBBONS);
- FlagSet(SYS_RIBBON_GET);
+ FlagSet(FLAG_SYS_RIBBON_GET);
ribbonSet = TRUE;
SetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_EFFORT_RIBBON, &ribbonSet);
}
@@ -1879,14 +1881,14 @@ bool8 ScrSpecial_AreLeadMonEVsMaxedOut(void)
u8 sub_810F5BC(void)
{
- if (!FlagGet(0xc7) && gSaveBlock1.location.mapGroup == MAP_GROUP_RUSTURF_TUNNEL && gSaveBlock1.location.mapNum == MAP_ID_RUSTURF_TUNNEL)
+ if (!FlagGet(FLAG_RUSTURF_TUNNEL_OPENED) && gSaveBlock1.location.mapGroup == MAP_GROUP(RUSTURF_TUNNEL) && gSaveBlock1.location.mapNum == MAP_NUM(RUSTURF_TUNNEL))
{
- if (FlagGet(0x3a3))
+ if (FlagGet(FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1))
{
VarSet(VAR_0x409a, 4);
return TRUE;
}
- else if (FlagGet(0x3a4))
+ else if (FlagGet(FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2))
{
VarSet(VAR_0x409a, 5);
return TRUE;
@@ -1905,13 +1907,13 @@ void PutZigzagoonInPlayerParty(void)
u16 monData;
CreateMon(&gPlayerParty[0], SPECIES_ZIGZAGOON, 7, 0x20, FALSE, 0, FALSE, 0);
monData = TRUE;
- SetMonData(&gPlayerParty[0], MON_DATA_ALT_ABILITY, (u8 *)&monData);
+ SetMonData(&gPlayerParty[0], MON_DATA_ALT_ABILITY, &monData);
monData = MOVE_TACKLE;
- SetMonData(&gPlayerParty[0], MON_DATA_MOVE1, (u8 *)&monData);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE1, &monData);
monData = MOVE_NONE;
- SetMonData(&gPlayerParty[0], MON_DATA_MOVE2, (u8 *)&monData);
- SetMonData(&gPlayerParty[0], MON_DATA_MOVE3, (u8 *)&monData);
- SetMonData(&gPlayerParty[0], MON_DATA_MOVE4, (u8 *)&monData);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE2, &monData);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE3, &monData);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE4, &monData);
}
bool8 IsStarterInParty(void)
@@ -2000,7 +2002,7 @@ static void sub_810F814(u8 taskId)
bool8 sub_810F828(void)
{
- return FlagGet(0x2b8);
+ return FlagGet(FLAG_UNKNOWN_2B8);
}
void SetRoute119Weather(void)
@@ -2075,27 +2077,27 @@ bool8 sub_810F96C(void)
void sub_810F9AC(void)
{
- if (gScriptResult >= 10000)
+ if (gSpecialVar_Result >= 10000)
{
- sub_80BF088(0, gScriptResult);
+ sub_80BF088(0, gSpecialVar_Result);
}
- else if (gScriptResult >= 1000)
+ else if (gSpecialVar_Result >= 1000)
{
gStringVar1[0] = CHAR_0;
- ConvertIntToDecimalStringN(gStringVar1 + 1, gScriptResult, 0, sub_80BF0B8(gScriptResult));
+ ConvertIntToDecimalStringN(gStringVar1 + 1, gSpecialVar_Result, 0, sub_80BF0B8(gSpecialVar_Result));
}
- else if (gScriptResult >= 100)
+ else if (gSpecialVar_Result >= 100)
{
gStringVar1[0] = CHAR_0;
gStringVar1[1] = CHAR_0;
- ConvertIntToDecimalStringN(gStringVar1 + 2, gScriptResult, 0, sub_80BF0B8(gScriptResult));
+ ConvertIntToDecimalStringN(gStringVar1 + 2, gSpecialVar_Result, 0, sub_80BF0B8(gSpecialVar_Result));
}
- else if (gScriptResult >= 10)
+ else if (gSpecialVar_Result >= 10)
{
gStringVar1[0] = CHAR_0;
gStringVar1[1] = CHAR_0;
gStringVar1[2] = CHAR_0;
- ConvertIntToDecimalStringN(gStringVar1 + 3, gScriptResult, 0, sub_80BF0B8(gScriptResult));
+ ConvertIntToDecimalStringN(gStringVar1 + 3, gSpecialVar_Result, 0, sub_80BF0B8(gSpecialVar_Result));
}
else
{
@@ -2103,7 +2105,7 @@ void sub_810F9AC(void)
gStringVar1[1] = CHAR_0;
gStringVar1[2] = CHAR_0;
gStringVar1[3] = CHAR_0;
- ConvertIntToDecimalStringN(gStringVar1 + 4, gScriptResult, 0, sub_80BF0B8(gScriptResult));
+ ConvertIntToDecimalStringN(gStringVar1 + 4, gSpecialVar_Result, 0, sub_80BF0B8(gSpecialVar_Result));
}
}
diff --git a/src/field/field_tasks.c b/src/field/field_tasks.c
index da6f162c2..108ba64ba 100644
--- a/src/field/field_tasks.c
+++ b/src/field/field_tasks.c
@@ -1,14 +1,10 @@
-//
-
-//
-
#include "global.h"
#include "task.h"
#include "main.h"
-#include "vars.h"
+#include "constants/vars.h"
#include "bike.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "event_data.h"
#include "overworld.h"
#include "clock.h"
@@ -20,7 +16,7 @@
#include "fieldmap.h"
#include "field_player_avatar.h"
#include "field_camera.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "field_tasks.h"
@@ -201,7 +197,7 @@ const struct MetatileOffset *sub_80695E0(const struct MetatileOffset a0[][2], s8
void sub_8069638(const struct MetatileOffset offsets[][2], s16 x, s16 y, bool32 flag)
{
const struct MetatileOffset *offsetData = sub_80695E0(offsets, MapGridGetMetatileBehaviorAt(x, y));
- const struct MetatileOffset *offsetData2 = offsetData;
+ const struct MetatileOffset *offsetdata2 = offsetData;
if (offsetData != NULL)
{
MapGridSetMetatileIdAt(x + offsetData[0].x, y + offsetData[0].y, offsetData[0].tileId);
@@ -209,10 +205,10 @@ void sub_8069638(const struct MetatileOffset offsets[][2], s16 x, s16 y, bool32
{
CurrentMapDrawMetatileAt(x + offsetData[0].x, y + offsetData[0].y);
}
- MapGridSetMetatileIdAt(x + offsetData2[1].x, y + offsetData2[1].y, offsetData2[1].tileId);
+ MapGridSetMetatileIdAt(x + offsetdata2[1].x, y + offsetdata2[1].y, offsetdata2[1].tileId);
if (flag)
{
- CurrentMapDrawMetatileAt(x + offsetData2[1].x, y + offsetData2[1].y);
+ CurrentMapDrawMetatileAt(x + offsetdata2[1].x, y + offsetdata2[1].y);
}
}
}
diff --git a/src/field/field_weather.c b/src/field/field_weather.c
index 8dcfd62fa..ff26b45bf 100644
--- a/src/field/field_weather.c
+++ b/src/field/field_weather.c
@@ -1,120 +1,296 @@
#include "global.h"
+#include "blend_palette.h"
+#include "field_map_obj.h"
#include "field_weather.h"
#include "palette.h"
+#include "random.h"
+#include "script.h"
+#include "constants/songs.h"
+#include "sound.h"
#include "sprite.h"
#include "task.h"
+#include "trig.h"
+#include "ewram.h"
+
+#define MACRO1(a) ((((a) >> 1) & 0xF) | (((a) >> 2) & 0xF0) | (((a) >> 3) & 0xF00))
+
+struct RGBColor
+{
+ u16 r:5;
+ u16 g:5;
+ u16 b:5;
+};
+
+struct WeatherPaletteData
+{
+ u16 data[0][0x1000]; // unknown length
+};
+
+struct WeatherCallbacks
+{
+ void (*initVars)(void);
+ void (*main)(void);
+ void (*initAll)(void);
+ bool8 (*finish)(void);
+};
+
+extern struct Weather gWeather;
+extern u8 gUnknown_0202FF38[];
+extern u16 gUnknown_0202FF58;
+IWRAM_DATA const u8 *gUnknown_030006DC;
+
+const u8 DroughtPaletteData_0[] = INCBIN_U8("graphics/weather/drought0.bin.lz");
+const u8 DroughtPaletteData_1[] = INCBIN_U8("graphics/weather/drought1.bin.lz");
+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_083970E8;
-extern u8 (*gUnknown_08396FC8[][4])(void);
-extern u8 (*gUnknown_083970B8[])(void);
-IWRAM_DATA u8 *gUnknown_030006DC;
-extern u8 gUnknown_083970C8;
extern u8 (*gUnknown_0202FC48)[32];
extern u8 gUnknown_0202F9E8[32];
+static const u8 *const sCompressedDroughtPalettes[] =
+{
+ DroughtPaletteData_0,
+ DroughtPaletteData_1,
+ DroughtPaletteData_2,
+ DroughtPaletteData_3,
+ DroughtPaletteData_4,
+ DroughtPaletteData_5,
+ gSharedMem,
+};
+
+// This is a pointer to gWeather. All code in this file accesses gWeather directly,
+// while code in other field weather files accesses gWeather through this pointer.
+// This is likely the result of compiler optimization, since using the pointer in
+// this file produces the same result as accessing gWeather directly.
+struct Weather *const gWeatherPtr = &gWeather;
-void sub_807C828(void)
+void None_Init(void);
+void None_Main(void);
+bool8 None_Finish(void);
+void Clouds_InitVars(void);
+void Clouds_Main(void);
+void Clouds_InitAll(void);
+bool8 Clouds_Finish(void);
+void Weather2_InitVars(void);
+void Weather2_Main(void);
+void Weather2_InitAll(void);
+bool8 Weather2_Finish(void);
+void LightRain_InitVars(void);
+void LightRain_Main(void);
+void LightRain_InitAll(void);
+bool8 LightRain_Finish(void);
+void Snow_InitVars(void);
+void Snow_Main(void);
+void Snow_InitAll(void);
+bool8 Snow_Finish(void);
+void MedRain_InitVars(void);
+void Rain_Main(void);
+void MedRain_InitAll(void);
+bool8 Rain_Finish(void);
+void Fog1_InitVars(void);
+void Fog1_Main(void);
+void Fog1_InitAll(void);
+bool8 Fog1_Finish(void);
+void Ash_InitVars(void);
+void Ash_Main(void);
+void Ash_InitAll(void);
+bool8 Ash_Finish(void);
+void Sandstorm_InitVars(void);
+void Sandstorm_Main(void);
+void Sandstorm_InitAll(void);
+bool8 Sandstorm_Finish(void);
+void Fog2_InitVars(void);
+void Fog2_Main(void);
+void Fog2_InitAll(void);
+bool8 Fog2_Finish(void);
+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 Drought_InitVars(void);
+void Drought_Main(void);
+void Drought_InitAll(void);
+bool8 Drought_Finish(void);
+void HeavyRain_InitVars(void);
+void Rain_Main(void);
+void HeavyRain_InitAll(void);
+bool8 Rain_Finish(void);
+void Bubbles_InitVars(void);
+void Bubbles_Main(void);
+void Bubbles_InitAll(void);
+bool8 Bubbles_Finish(void);
+
+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
+ {Snow_InitVars, Snow_Main, Snow_InitAll, Snow_Finish},
+ {MedRain_InitVars, Rain_Main, MedRain_InitAll, Rain_Finish},
+ {Fog1_InitVars, Fog1_Main, Fog1_InitAll, Fog1_Finish},
+ {Ash_InitVars, Ash_Main, Ash_InitAll, Ash_Finish},
+ {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},
+ {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) =
+{
+ sub_807CC24,
+ sub_807CCAC,
+ nullsub_39,
+ nullsub_39,
+};
+
+const u8 gUnknown_083970C8[] =
+{
+ 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,
+};
+
+const u16 gUnknown_083970E8[] = INCBIN_U16("graphics/weather/0.gbapal");
+
+void StartWeather(void)
{
u8 index;
- if (!FuncIsActiveTask(&sub_807CA34))
+ if (!FuncIsActiveTask(Task_WeatherMain))
{
index = AllocSpritePalette(0x1200);
- CpuCopy32(&gUnknown_083970E8, &gPlttBufferUnfaded[0x100 + index * 16], 32);
+ CpuCopy32(gUnknown_083970E8, &gPlttBufferUnfaded[0x100 + index * 16], 32);
sub_807CB10();
- gWeather.unknown_6D5 = index;
- gWeather.unknown_6D4 = AllocSpritePalette(0x1201);
- gWeather.unknown_6DA = 0;
- gWeather.unknown_6D8 = 0;
- gWeather.unknown_6DE = 0;
- gWeather.unknown_6E4 = 0;
- gWeather.unknown_700 = 0;
- gWeather.unknown_6FB = 0;
- gWeather.unknown_724 = 0;
- gWeather.unknown_716 = 0;
- gWeather.unknown_717 = 0;
- gWeather.unknown_72E = 0;
- gWeather.unknown_6FA = 0;
- sub_807DB64(16, 0);
- gWeather.unknown_6D0 = 0;
- gWeather.unknown_6C6 = 3;
- gWeather.unknown_6C8 = 0;
- gWeather.unknown_6D3 = 1;
- gWeather.unknown_6C9 = CreateTask(&sub_807C9E4, 80);
+ gWeatherPtr->unknown_6D5 = index;
+ gWeatherPtr->unknown_6D4 = AllocSpritePalette(0x1201);
+ gWeatherPtr->rainSpriteCount = 0;
+ gWeatherPtr->unknown_6D8 = 0;
+ gWeatherPtr->cloudSpritesCreated = 0;
+ gWeatherPtr->snowflakeSpriteCount = 0;
+ gWeatherPtr->ashSpritesCreated = 0;
+ gWeatherPtr->fog1SpritesCreated = 0;
+ gWeatherPtr->fog2SpritesCreated = 0;
+ gWeatherPtr->sandstormSprites1Created = 0;
+ gWeatherPtr->sandstormSprites2Created = 0;
+ gWeatherPtr->unknown_72E = 0;
+ gWeatherPtr->unknown_6FA = 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);
}
}
void DoWeatherEffect(u8 effect)
{
- if (effect != 3 && effect != 5 && effect != 13)
+ if (effect != WEATHER_RAIN_LIGHT && effect != WEATHER_RAIN_MED && effect != WEATHER_RAIN_HEAVY)
{
PlayRainSoundEffect();
}
- if (gWeather.unknown_6D1 != effect && gWeather.unknown_6D0 == effect)
+ if (gWeatherPtr->nextWeather != effect && gWeatherPtr->currWeather == effect)
{
- gUnknown_08396FC8[effect][0]();
+ sWeatherFuncs[effect].initVars();
}
- gWeather.unknown_6D3 = 0;
- gWeather.unknown_6D1 = effect;
- gWeather.unknown_6CE = 0;
+ gWeatherPtr->unknown_6D3 = 0;
+ gWeatherPtr->nextWeather = effect;
+ gWeatherPtr->finishStep = 0;
}
void sub_807C988(u8 effect)
{
PlayRainSoundEffect();
- gWeather.unknown_6D0 = effect;
- gWeather.unknown_6D1 = effect;
+ gWeatherPtr->currWeather = effect;
+ gWeatherPtr->nextWeather = effect;
}
void sub_807C9B4(u8 effect)
{
PlayRainSoundEffect();
- gWeather.unknown_6D0 = effect;
- gWeather.unknown_6D1 = effect;
- gWeather.unknown_6C8 = 1;
+ gWeatherPtr->currWeather = effect;
+ gWeatherPtr->nextWeather = effect;
+ gWeatherPtr->unknown_6C8 = 1;
}
-void sub_807C9E4(u8 task)
+void Task_WeatherInit(u8 taskId)
{
- if (gWeather.unknown_6C8)
+ if (gWeatherPtr->unknown_6C8)
{
- gUnknown_08396FC8[gWeather.unknown_6D0][2]();
- gTasks[task].func = &sub_807CA34;
+ sWeatherFuncs[gWeatherPtr->currWeather].initAll();
+ gTasks[taskId].func = Task_WeatherMain;
}
}
-void sub_807CA34(u8 task)
+void Task_WeatherMain(u8 taskId)
{
- u8 v1;
- if (gWeather.unknown_6D0 != gWeather.unknown_6D1)
+ if (gWeatherPtr->currWeather != gWeatherPtr->nextWeather)
{
- v1 = gUnknown_08396FC8[gWeather.unknown_6D0][3]();
- if (!v1)
+ if (!sWeatherFuncs[gWeatherPtr->currWeather].finish())
{
- gUnknown_08396FC8[gWeather.unknown_6D1][0]();
- gWeather.unknown_6C3 = 0; // compiler reuses v1
- gWeather.unknown_6C6 = 0; // compiler reuses v1
- gWeather.unknown_6D0 = gWeather.unknown_6D1;
- gWeather.unknown_6D3 = 1;
+ sWeatherFuncs[gWeatherPtr->nextWeather].initVars();
+ gWeatherPtr->unknown_6C3 = 0;
+ gWeatherPtr->unknown_6C6 = 0;
+ gWeatherPtr->currWeather = gWeatherPtr->nextWeather;
+ gWeatherPtr->unknown_6D3 = 1;
}
}
else
{
- gUnknown_08396FC8[gWeather.unknown_6D0][1]();
+ sWeatherFuncs[gWeatherPtr->currWeather].main();
}
- gUnknown_083970B8[gWeather.unknown_6C6]();
+ gUnknown_083970B8[gWeatherPtr->unknown_6C6]();
}
-void sub_807CAE8(void)
+void None_Init(void)
{
- gWeather.unknown_6C1 = 0;
- gWeather.unknown_6C2 = 0;
+ gWeatherPtr->unknown_6C1 = 0;
+ gWeatherPtr->unknown_6C2 = 0;
}
-void nullsub_38(void)
+void None_Main(void)
{
}
-u32 sub_807CB0C(void)
+u8 None_Finish(void)
{
return 0;
}
@@ -122,7 +298,7 @@ u32 sub_807CB0C(void)
void sub_807CB10(void)
{
u16 v0;
- u8(*v1)[32];
+ u8 (*v1)[32];
u16 v2;
u16 v4;
u16 v5;
@@ -132,30 +308,22 @@ void sub_807CB10(void)
u16 v11;
s16 dunno;
- gUnknown_030006DC = &gUnknown_083970C8;
+ gUnknown_030006DC = gUnknown_083970C8;
for (v0 = 0; v0 <= 1; v0++)
{
if (v0 == 0)
- {
- v1 = &gUnknown_0202F9E8;
- }
+ v1 = gWeatherPtr->unknown_200;
else
- {
- v1 = &gUnknown_0202F9E8 + 19;
- }
+ v1 = gWeatherPtr->unk460;
+
for (v2 = 0; (u16)v2 <= 0x1f; v2++)
{
v4 = v2 << 8;
if (v0 == 0)
- {
v5 = (v2 << 8) / 16;
- }
else
- {
v5 = 0;
- }
- v6 = 0;
- for (; v6 <= 2; v6++)
+ for (v6 = 0; v6 <= 2; v6++)
{
v4 = (v4 - v5);
v1[v6][v2] = v4 >> 8;
@@ -202,59 +370,53 @@ void sub_807CB10(void)
void sub_807CC24(void)
{
- if (gWeather.unknown_6C0 == gWeather.unknown_6C1)
+ if (gWeatherPtr->unknown_6C0 == gWeatherPtr->unknown_6C1)
{
- gWeather.unknown_6C6 = 3;
+ gWeatherPtr->unknown_6C6 = 3;
}
else
{
- if (++gWeather.unknown_6C3 >= gWeather.unknown_6C2)
+ if (++gWeatherPtr->unknown_6C3 >= gWeatherPtr->unknown_6C2)
{
- gWeather.unknown_6C3 = 0;
- if (gWeather.unknown_6C0 < gWeather.unknown_6C1)
- {
- gWeather.unknown_6C0++;
- }
+ gWeatherPtr->unknown_6C3 = 0;
+ if (gWeatherPtr->unknown_6C0 < gWeatherPtr->unknown_6C1)
+ gWeatherPtr->unknown_6C0++;
else
- {
- gWeather.unknown_6C0--;
- }
- sub_807CEBC(0, 0x20, gWeather.unknown_6C0);
+ gWeatherPtr->unknown_6C0--;
+ sub_807CEBC(0, 0x20, gWeatherPtr->unknown_6C0);
}
}
}
void sub_807CCAC(void)
{
- if (++gWeather.unknown_6CB > 1)
+ if (++gWeatherPtr->unknown_6CB > 1)
+ gWeatherPtr->unknown_6CA = 0;
+ switch (gWeatherPtr->currWeather)
{
- gWeather.unknown_6CA = 0;
- }
- switch (gWeather.unknown_6D0)
- {
- case 3:
- case 4:
- case 5:
+ case WEATHER_RAIN_LIGHT:
+ case WEATHER_RAIN_MED:
+ case WEATHER_RAIN_HEAVY:
+ case WEATHER_SNOW:
case 11:
- case 13:
if (sub_807CDC4() == 0)
{
- gWeather.unknown_6C0 = 3;
- gWeather.unknown_6C6 = 3;
+ gWeatherPtr->unknown_6C0 = 3;
+ gWeatherPtr->unknown_6C6 = 3;
}
break;
case 12:
if (sub_807CE24() == 0)
{
- gWeather.unknown_6C0 = -6;
- gWeather.unknown_6C6 = 3;
+ gWeatherPtr->unknown_6C0 = -6;
+ gWeatherPtr->unknown_6C6 = 3;
}
break;
case 6:
if (sub_807CE7C() == 0)
{
- gWeather.unknown_6C0 = 0;
- gWeather.unknown_6C6 = 3;
+ gWeatherPtr->unknown_6C0 = 0;
+ gWeatherPtr->unknown_6C6 = 3;
}
break;
case 7:
@@ -264,8 +426,8 @@ void sub_807CCAC(void)
default:
if (!gPaletteFade.active)
{
- gWeather.unknown_6C0 = gWeather.unknown_6C1;
- gWeather.unknown_6C6 = 3;
+ gWeatherPtr->unknown_6C0 = gWeatherPtr->unknown_6C1;
+ gWeatherPtr->unknown_6C6 = 3;
}
break;
}
@@ -273,47 +435,728 @@ void sub_807CCAC(void)
u8 sub_807CDC4(void)
{
- if (gWeather.unknown_6C7 == 0x10)
- {
+ if (gWeatherPtr->unknown_6C7 == 0x10)
return 0;
- }
- if (++gWeather.unknown_6C7 >= 0x10)
+ if (++gWeatherPtr->unknown_6C7 >= 0x10)
{
sub_807CEBC(0, 0x20, 3);
- gWeather.unknown_6C7 = 0x10;
+ gWeatherPtr->unknown_6C7 = 0x10;
return 0;
}
- sub_807D1BC(0, 0x20, 3, 0x10 - gWeather.unknown_6C7, gWeather.unknown_6C4);
+ sub_807D1BC(0, 0x20, 3, 0x10 - gWeatherPtr->unknown_6C7, gWeatherPtr->unknown_6C4);
return 1;
}
u8 sub_807CE24(void)
{
- if (gWeather.unknown_6C7 == 0x10)
- {
+ if (gWeatherPtr->unknown_6C7 == 0x10)
return 0;
- }
- if (++gWeather.unknown_6C7 >= 0x10)
+ if (++gWeatherPtr->unknown_6C7 >= 0x10)
{
sub_807CEBC(0, 0x20, -6);
- gWeather.unknown_6C7 = 0x10;
+ gWeatherPtr->unknown_6C7 = 0x10;
return 0;
}
- sub_807D304(-6, 0x10 - gWeather.unknown_6C7, gWeather.unknown_6C4);
+ sub_807D304(-6, 0x10 - gWeatherPtr->unknown_6C7, gWeatherPtr->unknown_6C4);
return 1;
}
u8 sub_807CE7C(void)
{
- if (gWeather.unknown_6C7 == 0x10)
- {
+ if (gWeatherPtr->unknown_6C7 == 0x10)
return 0;
- }
- ++gWeather.unknown_6C7;
- sub_807D424(0x10 - gWeather.unknown_6C7, gWeather.unknown_6C4);
+ ++gWeatherPtr->unknown_6C7;
+ sub_807D424(0x10 - gWeatherPtr->unknown_6C7, gWeatherPtr->unknown_6C4);
return 1;
}
void nullsub_39(void)
{
}
+
+void sub_807CEBC(u8 a, u8 b, s8 c)
+{
+ u16 r4;
+ u16 palOffset;
+ u8 *r6;
+ u16 i;
+
+ if (c > 0)
+ {
+ c = c - 1;
+ palOffset = a * 16;
+ b += a;
+ r4 = a;
+ while (r4 < b)
+ {
+ if (gUnknown_030006DC[r4] == 0)
+ {
+ CpuFastCopy(gPlttBufferUnfaded + palOffset, gPlttBufferFaded + palOffset, 16 * sizeof(u16));
+ palOffset += 16;
+ }
+ else
+ {
+ u8 r, g, b;
+
+ if (gUnknown_030006DC[r4] == 2 || r4 - 16 == gWeatherPtr->unknown_6D5)
+ r6 = gWeatherPtr->unk460[c];
+ else
+ r6 = gWeatherPtr->unknown_200[c];
+ if (r4 == 16 || r4 > 0x1B)
+ {
+ for (i = 0; i < 16; i++)
+ {
+ if (gPlttBufferUnfaded[palOffset] == 0x2D9F)
+ {
+ palOffset++;
+ }
+ else
+ {
+ struct RGBColor color = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset];
+
+ r = r6[color.r];
+ g = r6[color.g];
+ b = r6[color.b];
+ gPlttBufferFaded[palOffset++] = (b << 10) | (g << 5) | r;
+ }
+ }
+ }
+ else
+ {
+ 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];
+ gPlttBufferFaded[palOffset++] = (b << 10) | (g << 5) | r;
+ }
+ }
+ }
+ r4++;
+ }
+ }
+ else if (c < 0)
+ {
+ c = -c - 1;
+ palOffset = a * 16;
+ b += a;
+ r4 = a;
+ while (r4 < b)
+ {
+ if (gUnknown_030006DC[r4] == 0)
+ {
+ CpuFastCopy(gPlttBufferUnfaded + palOffset, gPlttBufferFaded + palOffset, 16 * sizeof(u16));
+ palOffset += 16;
+ }
+ else
+ {
+ if (r4 == 16 || r4 > 0x1B)
+ {
+ for (i = 0; i < 16; i++)
+ {
+ if (gPlttBufferUnfaded[palOffset] != 0x2D9F)
+ gPlttBufferFaded[palOffset] = eWeatherPaletteData.data[c][MACRO1(gPlttBufferUnfaded[palOffset])];
+ palOffset++;
+ }
+ }
+ else
+ {
+ for (i = 0; i < 16; i++)
+ {
+ gPlttBufferFaded[palOffset] = eWeatherPaletteData.data[c][MACRO1(gPlttBufferUnfaded[palOffset])];
+ palOffset++;
+ }
+ }
+ }
+ r4++;
+ }
+ }
+ else
+ {
+ CpuFastCopy(gPlttBufferUnfaded + a * 16, gPlttBufferFaded + a * 16, b * 16 * sizeof(u16));
+ }
+}
+
+void sub_807D1BC(u8 a1, u8 a2, s8 c, u8 d, u16 e)
+{
+ u16 palOffset;
+ u16 r4;
+ 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)
+ {
+ if (gUnknown_030006DC[r4] == 0)
+ {
+ BlendPalette(palOffset, 16, d, e);
+ palOffset += 16;
+ }
+ else
+ {
+ u8 *r5;
+
+ if (gUnknown_030006DC[r4] == 1)
+ r5 = gWeatherPtr->unknown_200[c];
+ else
+ r5 = gWeatherPtr->unk460[c];
+
+ 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;
+ gPlttBufferFaded[palOffset++] = (b << 10) | (g << 5) | r;
+ }
+ }
+ r4++;
+ }
+}
+
+void sub_807D304(s8 a, u8 coeff, u16 c)
+{
+ struct RGBColor color;
+ u8 r_;
+ u8 g_;
+ u8 b_;
+ u16 r4;
+ u16 palOffset;
+ u16 r12;
+
+ a = -a - 1;
+ color = *(struct RGBColor *)&c;
+ r_ = color.r;
+ g_ = color.g;
+ b_ = color.b;
+ palOffset = 0;
+ for (r4 = 0; r4 < 32; r4++)
+ {
+ if (gUnknown_030006DC[r4] == 0)
+ {
+ BlendPalette(palOffset, 16, coeff, c);
+ palOffset += 16;
+ }
+ else
+ {
+ for (r12 = 0; r12 < 16; r12++)
+ {
+ u32 offset;
+ struct RGBColor color1;
+ struct RGBColor color2;
+ u8 r1, g1, b1;
+ u8 r2, g2, b2;
+
+ color1 = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset];
+ r1 = color1.r;
+ g1 = color1.g;
+ b1 = color1.b;
+
+ offset = ((b1 & 0x1E) << 7) | ((g1 & 0x1E) << 3) | ((r1 & 0x1E) >> 1);
+ color2 = *(struct RGBColor *)&eWeatherPaletteData.data[a][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;
+
+ gPlttBufferFaded[palOffset++] = (b2 << 10) | (g2 << 5) | r2;
+ }
+ }
+ }
+}
+
+bool8 sub_807D574(u8);
+
+void sub_807D424(u8 a, u16 b)
+{
+ 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)
+ {
+ if (sub_807D574(r4))
+ {
+ u16 r12 = (r4 + 1) * 16;
+ u16 r6 = r4 * 16;
+
+ while (r6 < r12)
+ {
+ struct RGBColor color = *(struct RGBColor *)&gPlttBufferUnfaded[r6];
+ u8 r = color.r;
+ u8 g = color.g;
+ u8 b = color.b;
+
+ r += ((28 - r) * 3) >> 2;
+ 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;
+
+ gPlttBufferFaded[r6] = (b << 10) | (g << 5) | r;
+ r6++;
+ }
+ }
+ else
+ {
+ BlendPalette(r4 * 16, 16, a, b);
+ }
+ r4++;
+ }
+}
+
+void sub_807D540(u8 a)
+{
+ if (gWeatherPtr->unknown_6FA < 6)
+ {
+ gWeatherPtr->unknown_6F4[gWeatherPtr->unknown_6FA] = a;
+ gWeatherPtr->unknown_6FA++;
+ }
+}
+
+bool8 sub_807D574(u8 a)
+{
+ u16 i;
+
+ for (i = 0; i < gWeatherPtr->unknown_6FA; i++)
+ {
+ if (gWeatherPtr->unknown_6F4[i] == a)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_807D5BC(s8 a)
+{
+ if (gWeatherPtr->unknown_6C6 == 3)
+ {
+ sub_807CEBC(0, 32, a);
+ gWeatherPtr->unknown_6C0 = a;
+ }
+}
+
+void sub_807D5F0(u8 a, u8 b, u8 c)
+{
+ if (gWeatherPtr->unknown_6C6 == 3)
+ {
+ gWeatherPtr->unknown_6C6 = 0;
+ gWeatherPtr->unknown_6C0 = a;
+ gWeatherPtr->unknown_6C1 = b;
+ gWeatherPtr->unknown_6C3 = 0;
+ gWeatherPtr->unknown_6C2 = c;
+ sub_807D5BC(a);
+ }
+}
+
+void fade_screen(u8 a, u8 delay)
+{
+ u32 fadeColor;
+ u32 r1;
+ u32 r2;
+
+ switch (a)
+ {
+ case 0:
+ fadeColor = 0;
+ r1 = 0;
+ break;
+ case 2:
+ fadeColor = 0xFFFF;
+ r1 = 0;
+ break;
+ case 1:
+ fadeColor = 0;
+ r1 = 1;
+ break;
+ case 3:
+ fadeColor = 0xFFFF;
+ r1 = 1;
+ break;
+ default:
+ return;
+ }
+
+ switch (gWeatherPtr->currWeather)
+ {
+ case WEATHER_RAIN_LIGHT:
+ case WEATHER_RAIN_MED:
+ case WEATHER_RAIN_HEAVY:
+ case WEATHER_SNOW:
+ case 6:
+ case 11:
+ case 12:
+ r2 = 1;
+ break;
+ default:
+ r2 = 0;
+ break;
+ }
+
+ if (r1 != 0)
+ {
+ if (r2 != 0)
+ CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
+ BeginNormalPaletteFade(0xFFFFFFFF, delay, 0, 16, fadeColor);
+ gWeatherPtr->unknown_6C6 = 2;
+ }
+ else
+ {
+ gWeatherPtr->unknown_6C4 = fadeColor;
+ if (r2 != 0)
+ gWeatherPtr->unknown_6C7 = 0;
+ else
+ BeginNormalPaletteFade(0xFFFFFFFF, delay, 16, 0, fadeColor);
+ gWeatherPtr->unknown_6C6 = 1;
+ gWeatherPtr->unknown_6CA = 1;
+ gWeatherPtr->unknown_6CB = 0;
+ Weather_SetBlendCoeffs(gWeatherPtr->currBlendEVA, gWeatherPtr->currBlendEVB);
+ gWeatherPtr->unknown_6C8 = 1;
+ }
+}
+
+bool8 sub_807D770(void)
+{
+ return gWeatherPtr->unknown_6C6 ^ 1 ? TRUE : FALSE;
+}
+
+void sub_807D78C(u8 a)
+{
+ u16 r4 = 16 + a;
+ u16 i;
+
+ switch (gWeatherPtr->unknown_6C6)
+ {
+ case 1:
+ if (gWeatherPtr->unknown_6CA != 0)
+ {
+ if (gWeatherPtr->currWeather == 6)
+ sub_807D540(r4);
+ r4 *= 16;
+ for (i = 0; i < 16; i++)
+ gPlttBufferFaded[r4 + i] = gWeatherPtr->unknown_6C4;
+ }
+ break;
+ case 2:
+ r4 *= 16;
+ CpuFastCopy(gPlttBufferFaded + r4, gPlttBufferUnfaded + r4, 32);
+ BlendPalette(r4, 16, gPaletteFade.y, gPaletteFade.blendColor);
+ break;
+ default:
+ if (gWeatherPtr->currWeather != 6)
+ {
+ sub_807CEBC(r4, 1, gWeatherPtr->unknown_6C0);
+ }
+ else
+ {
+ r4 *= 16;
+ BlendPalette(r4, 16, 12, 0x73FC);
+ }
+ break;
+ }
+}
+
+void sub_807D874(u8 a)
+{
+ sub_807CEBC(a, 1, gWeatherPtr->unknown_6C0);
+}
+
+u8 unref_sub_807D894(void)
+{
+ if (gWeatherPtr->unknown_6C6 == 1)
+ return gWeatherPtr->unknown_6CA;
+ else
+ return 0;
+}
+
+void sub_807D8C0(const u16 *palette)
+{
+ LoadPalette(palette, 0x100 + gWeatherPtr->unknown_6D4 * 16, 32);
+ sub_807D78C(gWeatherPtr->unknown_6D4);
+}
+
+void sub_807D8F0(u8 *a, u8 *b)
+{
+ u8 r4 = *a;
+ u16 i;
+
+ if (r4 < 7)
+ {
+ r4--;
+ LZ77UnCompWram(sCompressedDroughtPalettes[r4], eWeatherPaletteData.data[r4]);
+ if (r4 == 0)
+ {
+ eWeatherPaletteData.data[r4][0] = 0x421;
+ for (i = 1; i < 0x1000; i++)
+ eWeatherPaletteData.data[r4][i] += eWeatherPaletteData.data[r4][i - 1];
+ }
+ else
+ {
+ for (i = 0; i < 0x1000; i++)
+ eWeatherPaletteData.data[r4][i] += eWeatherPaletteData.data[r4 - 1][i];
+ }
+ if (++(*a) == 7)
+ {
+ *a = 32;
+ *b = 32;
+ }
+ }
+}
+
+void sub_807D9A8(void)
+{
+ gWeatherPtr->unknown_74D = 1;
+ gWeatherPtr->unknown_74E = 1;
+}
+
+bool8 sub_807D9C8(void)
+{
+ if (gWeatherPtr->unknown_74D < 32)
+ {
+ sub_807D8F0(&gWeatherPtr->unknown_74D, &gWeatherPtr->unknown_74E);
+ if (gWeatherPtr->unknown_74D < 32)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_807DA04(s8 a)
+{
+ sub_807D5BC(-a - 1);
+}
+
+void sub_807DA14(void)
+{
+ gWeatherPtr->unknown_73C = 0;
+ gWeatherPtr->unknown_740 = 0;
+ gWeatherPtr->unknown_742 = 0;
+ gWeatherPtr->unknown_73E = 0;
+ gUnknown_0202FF58 = 5;
+}
+
+void sub_807DA4C(void)
+{
+ switch (gWeatherPtr->unknown_742)
+ {
+ case 0:
+ if (++gWeatherPtr->unknown_740 > gUnknown_0202FF58)
+ {
+ gWeatherPtr->unknown_740 = 0;
+ sub_807DA04(gWeatherPtr->unknown_73C++);
+ if (gWeatherPtr->unknown_73C > 5)
+ {
+ gWeatherPtr->unknown_73E = gWeatherPtr->unknown_73C;
+ gWeatherPtr->unknown_742 = 1;
+ gWeatherPtr->unknown_740 = 0x3C;
+ }
+ }
+ break;
+ case 1:
+ gWeatherPtr->unknown_740 = (gWeatherPtr->unknown_740 + 3) & 0x7F;
+ gWeatherPtr->unknown_73C = ((gSineTable[gWeatherPtr->unknown_740] - 1) >> 6) + 2;
+ if (gWeatherPtr->unknown_73C != gWeatherPtr->unknown_73E)
+ sub_807DA04(gWeatherPtr->unknown_73C);
+ gWeatherPtr->unknown_73E = gWeatherPtr->unknown_73C;
+ break;
+ case 2:
+ if (++gWeatherPtr->unknown_740 > gUnknown_0202FF58)
+ {
+ gWeatherPtr->unknown_740 = 0;
+ sub_807DA04(--gWeatherPtr->unknown_73C);
+ if (gWeatherPtr->unknown_73C == 3)
+ gWeatherPtr->unknown_742 = 0;
+ }
+ break;
+ }
+}
+
+void Weather_SetBlendCoeffs(u8 eva, u8 evb)
+{
+ gWeatherPtr->currBlendEVA = eva;
+ gWeatherPtr->currBlendEVB = evb;
+ gWeatherPtr->targetBlendEVA = eva;
+ gWeatherPtr->targetBlendEVB = evb;
+ REG_BLDALPHA = BLDALPHA_BLEND(eva, evb);
+}
+
+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;
+}
+
+bool8 Weather_UpdateBlend(void)
+{
+ if (gWeatherPtr->currBlendEVA == gWeatherPtr->targetBlendEVA
+ && gWeatherPtr->currBlendEVB == gWeatherPtr->targetBlendEVB)
+ return TRUE;
+
+ if (++gWeatherPtr->unknown_739 > gWeatherPtr->blendDelay)
+ {
+ gWeatherPtr->unknown_739 = 0;
+ gWeatherPtr->unknown_738++;
+
+ // Update currBlendEVA and currBlendEVB on alternate frames
+ if (gWeatherPtr->unknown_738 & 1)
+ {
+ if (gWeatherPtr->currBlendEVA < gWeatherPtr->targetBlendEVA)
+ gWeatherPtr->currBlendEVA++;
+ else if (gWeatherPtr->currBlendEVA > gWeatherPtr->targetBlendEVA)
+ gWeatherPtr->currBlendEVA--;
+ }
+ else
+ {
+ if (gWeatherPtr->currBlendEVB < gWeatherPtr->targetBlendEVB)
+ gWeatherPtr->currBlendEVB++;
+ else if (gWeatherPtr->currBlendEVB > gWeatherPtr->targetBlendEVB)
+ gWeatherPtr->currBlendEVB--;
+ }
+ }
+
+ REG_BLDALPHA = BLDALPHA_BLEND(gWeatherPtr->currBlendEVA, gWeatherPtr->currBlendEVB);
+
+ if (gWeatherPtr->currBlendEVA == gWeatherPtr->targetBlendEVA
+ && gWeatherPtr->currBlendEVB == gWeatherPtr->targetBlendEVB)
+ return TRUE;
+
+ return FALSE;
+}
+
+void unref_sub_807DCB4(u8 a)
+{
+ switch (a)
+ {
+ case 1:
+ SetWeather(1);
+ break;
+ case 2:
+ SetWeather(2);
+ break;
+ case 3:
+ SetWeather(3);
+ break;
+ case 4:
+ SetWeather(4);
+ break;
+ case 5:
+ SetWeather(5);
+ break;
+ case 6:
+ SetWeather(6);
+ break;
+ case 7:
+ SetWeather(9);
+ break;
+ case 8:
+ SetWeather(7);
+ break;
+ case 9:
+ SetWeather(8);
+ break;
+ case 10:
+ SetWeather(11);
+ break;
+ }
+}
+
+u8 weather_get_current(void)
+{
+ return gWeatherPtr->currWeather;
+}
+
+void SetRainStrengthFromSoundEffect(u16 sndEff)
+{
+ if (gWeatherPtr->unknown_6C6 != 2)
+ {
+ switch (sndEff)
+ {
+ case SE_T_KOAME:
+ gWeatherPtr->rainStrength = 0;
+ break;
+ case SE_T_OOAME:
+ gWeatherPtr->rainStrength = 1;
+ break;
+ case SE_T_AME:
+ gWeatherPtr->rainStrength = 2;
+ break;
+ default:
+ return;
+ }
+ PlaySE(sndEff);
+ }
+}
+
+void PlayRainSoundEffect(void)
+{
+ if (IsSpecialSEPlaying())
+ {
+ switch (gWeatherPtr->rainStrength)
+ {
+ case 0:
+ PlaySE(SE_T_KOAME_E);
+ break;
+ case 1:
+ PlaySE(SE_T_OOAME_E);
+ break;
+ case 2:
+ default:
+ PlaySE(SE_T_AME_E);
+ break;
+ }
+ }
+}
+
+u8 sub_807DDFC(void)
+{
+ return gWeatherPtr->unknown_6D3;
+}
+
+void sub_807DE10(void)
+{
+ gWeatherPtr->unknown_6C6 = 2;
+}
+
+void unref_sub_807DE24(void)
+{
+ gWeatherPtr->unknown_6C6 = 3;
+}
+
+void sub_807DE38(u8 a)
+{
+ CpuCopy16(gUnknown_083970C8, gUnknown_0202FF38, 32);
+ gUnknown_0202FF38[a] = 0;
+ gUnknown_030006DC = gUnknown_0202FF38;
+}
+
+void sub_807DE68(void)
+{
+ gUnknown_030006DC = gUnknown_083970C8;
+}
diff --git a/src/field/field_weather_effects.c b/src/field/field_weather_effects.c
new file mode 100644
index 000000000..31eda4393
--- /dev/null
+++ b/src/field/field_weather_effects.c
@@ -0,0 +1,2383 @@
+#include "global.h"
+#include "field_map_obj.h"
+#include "field_weather.h"
+#include "overworld.h"
+#include "random.h"
+#include "script.h"
+#include "constants/songs.h"
+#include "sound.h"
+#include "sprite.h"
+#include "task.h"
+#include "trig.h"
+
+extern struct Weather *const gWeatherPtr;
+
+const u16 gUnknown_08397108[] = INCBIN_U16("graphics/weather/1.gbapal");
+const u16 gUnknown_08397128[] = INCBIN_U16("graphics/weather/2.gbapal");
+const u8 gWeatherFog2Tiles[] = INCBIN_U8("graphics/weather/fog2.4bpp");
+const u8 gWeatherFog1Tiles[] = INCBIN_U8("graphics/weather/fog1.4bpp");
+const u8 gWeatherCloudTiles[] = INCBIN_U8("graphics/weather/cloud.4bpp");
+const u8 gWeatherSnow1Tiles[] = INCBIN_U8("graphics/weather/snow0.4bpp");
+const u8 gWeatherSnow2Tiles[] = INCBIN_U8("graphics/weather/snow1.4bpp");
+const u8 gWeatherBubbleTiles[] = INCBIN_U8("graphics/weather/bubble.4bpp");
+const u8 gWeatherAshTiles[] = INCBIN_U8("graphics/weather/ash.4bpp");
+const u8 gWeatherRainTiles[] = INCBIN_U8("graphics/weather/rain.4bpp");
+const u8 gWeatherSandstormTiles[] = INCBIN_U8("graphics/weather/sandstorm.4bpp");
+
+static const struct Coords16 gUnknown_0839A9C8[] =
+{
+ { 0, 66},
+ { 5, 73},
+ {10, 78},
+};
+
+static const struct SpriteSheet sCloudSpriteSheet = {gWeatherCloudTiles, sizeof(gWeatherCloudTiles), 0x1200};
+
+static const struct OamData gOamData_839A9DC =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 1,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 3,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const union AnimCmd gSpriteAnim_839A9E4[] =
+{
+ ANIMCMD_FRAME(0, 16),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const gSpriteAnimTable_839A9EC[] =
+{
+ gSpriteAnim_839A9E4,
+};
+
+void sub_807E0F4(struct Sprite *);
+static const struct SpriteTemplate sCloudSpriteTemplate =
+{
+ .tileTag = 4608,
+ .paletteTag = 4609,
+ .oam = &gOamData_839A9DC,
+ .anims = gSpriteAnimTable_839A9EC,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .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_807DA14(void);
+extern void sub_807DA4C(void);
+extern void Weather_SetTargetBlendCoeffs(u8 a, u8 b, int c);
+extern bool8 Weather_UpdateBlend(void);
+extern void SetRainStrengthFromSoundEffect(u16 sndEff);
+extern void sub_807D5F0(u8 a, u8 b, u8 c);
+
+//------------------------------------------------------------------------------
+// Clouds
+//------------------------------------------------------------------------------
+
+void Clouds_InitVars(void)
+{
+ gWeatherPtr->unknown_6C1 = 0;
+ gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->weatherGfxLoaded = FALSE;
+ gWeatherPtr->initStep = 0;
+ if (gWeatherPtr->cloudSpritesCreated == FALSE)
+ Weather_SetBlendCoeffs(0, 16);
+}
+
+void Clouds_Main(void);
+
+void Clouds_InitAll(void)
+{
+ Clouds_InitVars();
+ while (gWeatherPtr->weatherGfxLoaded == FALSE)
+ Clouds_Main();
+}
+
+void CreateCloudSprites(void);
+
+void Clouds_Main(void)
+{
+ switch (gWeatherPtr->initStep)
+ {
+ case 0:
+ CreateCloudSprites();
+ gWeatherPtr->initStep++;
+ break;
+ case 1:
+ Weather_SetTargetBlendCoeffs(12, 8, 1);
+ gWeatherPtr->initStep++;
+ break;
+ case 2:
+ if (Weather_UpdateBlend())
+ {
+ gWeatherPtr->weatherGfxLoaded = TRUE;
+ gWeatherPtr->initStep++;
+ }
+ break;
+ }
+}
+
+void sub_807E0A0(void);
+
+bool8 Clouds_Finish(void)
+{
+ switch (gWeatherPtr->finishStep)
+ {
+ case 0:
+ Weather_SetTargetBlendCoeffs(0, 16, 1);
+ gWeatherPtr->finishStep++;
+ return TRUE;
+ case 1:
+ if (Weather_UpdateBlend())
+ {
+ sub_807E0A0();
+ gWeatherPtr->finishStep++;
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+
+//------------------------------------------------------------------------------
+// Weather 2
+//------------------------------------------------------------------------------
+
+void Weather2_InitVars(void)
+{
+ gWeatherPtr->unknown_6C1 = 0;
+ gWeatherPtr->unknown_6C2 = 20;
+}
+
+void Weather2_InitAll(void)
+{
+ Weather2_InitVars();
+}
+
+void Weather2_Main(void)
+{
+}
+
+int Weather2_Finish(void)
+{
+ return 0;
+}
+
+void CreateCloudSprites(void)
+{
+ u16 i;
+
+ if (gWeatherPtr->cloudSpritesCreated == TRUE)
+ return;
+ LoadSpriteSheet(&sCloudSpriteSheet);
+ sub_807D8C0(gUnknown_08397108);
+ for (i = 0; i < 3; i++)
+ {
+ u8 spriteId = CreateSprite(&sCloudSpriteTemplate, 0, 0, 0xFF);
+
+ if (spriteId != 64)
+ {
+ struct Sprite *sprite;
+
+ gWeatherPtr->sprites.s1.cloudSprites[i] = &gSprites[spriteId];
+ sprite = gWeatherPtr->sprites.s1.cloudSprites[i];
+ sub_80603CC(gUnknown_0839A9C8[i].x + 7, gUnknown_0839A9C8[i].y + 7, &sprite->pos1.x, &sprite->pos1.y);
+ sprite->coordOffsetEnabled = TRUE;
+ }
+ else
+ {
+ gWeatherPtr->sprites.s1.cloudSprites[i] = NULL;
+ }
+ }
+ gWeatherPtr->cloudSpritesCreated = TRUE;
+}
+
+void sub_807E0A0(void)
+{
+ u16 i;
+
+ if (gWeatherPtr->cloudSpritesCreated == FALSE)
+ return;
+ for (i = 0; i < 3; i++)
+ {
+ if (gWeatherPtr->sprites.s1.cloudSprites[i] != NULL)
+ DestroySprite(gWeatherPtr->sprites.s1.cloudSprites[i]);
+ }
+ FreeSpriteTilesByTag(0x1200);
+ gWeatherPtr->cloudSpritesCreated = FALSE;
+}
+
+void sub_807E0F4(struct Sprite *sprite)
+{
+ sprite->data[0] = (sprite->data[0] + 1) & 1;
+ if (sprite->data[0] != 0)
+ sprite->pos1.x--;
+}
+
+//------------------------------------------------------------------------------
+// Drought
+//------------------------------------------------------------------------------
+
+void Drought_InitVars(void)
+{
+ gWeatherPtr->initStep = 0;
+ gWeatherPtr->weatherGfxLoaded = FALSE;
+ gWeatherPtr->unknown_6C1 = 0;
+ gWeatherPtr->unknown_6C2 = 0;
+}
+
+void Drought_Main(void);
+
+void Drought_InitAll(void)
+{
+ Drought_InitVars();
+ while (gWeatherPtr->weatherGfxLoaded == FALSE)
+ Drought_Main();
+}
+
+void Drought_Main(void)
+{
+ switch (gWeatherPtr->initStep)
+ {
+ case 0:
+ if (gWeatherPtr->unknown_6C6 != 0)
+ gWeatherPtr->initStep++;
+ break;
+ case 1:
+ sub_807D9A8();
+ gWeatherPtr->initStep++;
+ break;
+ case 2:
+ if (sub_807D9C8() == FALSE)
+ gWeatherPtr->initStep++;
+ break;
+ case 3:
+ sub_807DA14();
+ gWeatherPtr->initStep++;
+ break;
+ case 4:
+ sub_807DA4C();
+ if (gWeatherPtr->unknown_73C == 6)
+ {
+ gWeatherPtr->weatherGfxLoaded = TRUE;
+ gWeatherPtr->initStep++;
+ }
+ break;
+ default:
+ sub_807DA4C();
+ break;
+ }
+}
+
+int Drought_Finish(void)
+{
+ return 0;
+}
+
+void task50_0807B6D4(u8);
+
+void sub_807E25C(void)
+{
+ CreateTask(task50_0807B6D4, 0x50);
+}
+
+#define tState data[0]
+#define tBlendY data[1]
+#define tBlendDelay data[2]
+#define tWinRange data[3]
+
+void task50_0807B6D4(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->tState)
+ {
+ case 0:
+ task->tBlendY = 0;
+ task->tBlendDelay = 0;
+ task->tWinRange = REG_WININ;
+ REG_WININ = WIN_RANGE(63, 63);
+ REG_BLDCNT = BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ
+ | BLDCNT_EFFECT_LIGHTEN;
+ REG_BLDY = 0;
+ task->tState++;
+ // fall through
+ case 1:
+ task->tBlendY += 3;
+ if (task->tBlendY > 16)
+ task->tBlendY = 16;
+ REG_BLDY = task->tBlendY;
+ if (task->tBlendY >= 16)
+ task->tState++;
+ break;
+ case 2:
+ task->tBlendDelay++;
+ if (task->tBlendDelay > 9)
+ {
+ task->tBlendDelay = 0;
+ task->tBlendY--;
+ if (task->tBlendY <= 0)
+ {
+ task->tBlendY = 0;
+ task->tState++;
+ }
+ REG_BLDY = task->tBlendY;
+ }
+ break;
+ case 3:
+ REG_BLDCNT = 0;
+ REG_BLDY = 0;
+ REG_WININ = task->tWinRange;
+ task->tState++;
+ break;
+ case 4:
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+#undef tState
+#undef tBlendY
+#undef tBlendDelay
+#undef tWinRange
+
+//------------------------------------------------------------------------------
+// Light Rain
+//------------------------------------------------------------------------------
+
+void LightRain_InitVars(void)
+{
+ gWeatherPtr->initStep = 0;
+ gWeatherPtr->weatherGfxLoaded = FALSE;
+ gWeatherPtr->unknown_6D6 = 0;
+ gWeatherPtr->unknown_6DB = 8;
+ gWeatherPtr->unknown_6DC = 0;
+ gWeatherPtr->unknown_6D9 = 10;
+ gWeatherPtr->unknown_6C1 = 3;
+ gWeatherPtr->unknown_6C2 = 20;
+ SetRainStrengthFromSoundEffect(SE_T_KOAME);
+}
+
+void LightRain_Main(void);
+
+void LightRain_InitAll(void)
+{
+ LightRain_InitVars();
+ while (gWeatherPtr->weatherGfxLoaded == FALSE)
+ LightRain_Main();
+}
+
+void LoadRainSpriteSheet(void);
+u8 CreateRainSprite(void);
+u8 sub_807E8E8(void);
+
+void LightRain_Main(void)
+{
+ switch (gWeatherPtr->initStep)
+ {
+ case 0:
+ LoadRainSpriteSheet();
+ gWeatherPtr->initStep++;
+ break;
+ case 1:
+ if (CreateRainSprite() == 0)
+ gWeatherPtr->initStep++;
+ break;
+ case 2:
+ if (sub_807E8E8() == FALSE)
+ {
+ gWeatherPtr->weatherGfxLoaded = TRUE;
+ gWeatherPtr->initStep++;
+ }
+ break;
+ }
+}
+
+void DestroyRainSprites(void);
+
+bool8 LightRain_Finish(void)
+{
+ switch (gWeatherPtr->finishStep)
+ {
+ case 0:
+ if (gWeatherPtr->nextWeather == WEATHER_RAIN_LIGHT
+ || gWeatherPtr->nextWeather == WEATHER_RAIN_MED
+ || gWeatherPtr->nextWeather == WEATHER_RAIN_HEAVY)
+ {
+ gWeatherPtr->finishStep = 0xFF;
+ return FALSE;
+ }
+ else
+ {
+ gWeatherPtr->unknown_6D9 = 0;
+ gWeatherPtr->finishStep++;
+ }
+ // fall through
+ case 1:
+ if (sub_807E8E8() == FALSE)
+ {
+ DestroyRainSprites();
+ gWeatherPtr->finishStep++;
+ return FALSE;
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+
+// defined below
+extern const s16 gUnknown_0839AABC[][2];
+extern const u16 gUnknown_0839AAC4[][2];
+
+void sub_807E4EC(struct Sprite *sprite)
+{
+ u32 randVal;
+ u16 r6;
+ s32 r4;
+ s32 r0;
+
+ if (sprite->data[1] == 0)
+ sprite->data[1] = 361;
+ randVal = sprite->data[1] * 1103515245 + 12345;
+ sprite->data[1] = ((randVal & 0x7FFF0000) >> 16) % 600;
+
+ r6 = gUnknown_0839AAC4[gWeatherPtr->unknown_6DC][0];
+
+ r4 = sprite->data[1] % 30;
+ sprite->data[2] = r4 * 8; // useless assignment
+
+ r0 = sprite->data[1] / 30;
+ sprite->data[3] = r0 * 8; // useless assignment
+
+ sprite->data[2] = r4;
+ sprite->data[2] <<= 7;
+
+ sprite->data[3] = r0;
+ sprite->data[3] <<= 7;
+
+ sprite->data[2] -= gUnknown_0839AABC[gWeatherPtr->unknown_6DC][0] * r6;
+ sprite->data[3] -= gUnknown_0839AABC[gWeatherPtr->unknown_6DC][1] * r6;
+
+ StartSpriteAnim(sprite, 0);
+ sprite->data[4] = 0;
+ sprite->coordOffsetEnabled = FALSE;
+ sprite->data[0] = r6;
+}
+
+void sub_807E5C0(struct Sprite *sprite)
+{
+ if (sprite->data[4] == 0)
+ {
+ sprite->data[2] += gUnknown_0839AABC[gWeatherPtr->unknown_6DC][0];
+ sprite->data[3] += gUnknown_0839AABC[gWeatherPtr->unknown_6DC][1];
+ sprite->pos1.x = sprite->data[2] >> 4;
+ sprite->pos1.y = sprite->data[3] >> 4;
+
+ if (sprite->data[5] != 0
+ && (sprite->pos1.x >= -8 && sprite->pos1.x <= 248)
+ && sprite->pos1.y >= -16 && sprite->pos1.y <= 176)
+ sprite->invisible = FALSE;
+ else
+ sprite->invisible = TRUE;
+
+ sprite->data[0]--;
+ if (sprite->data[0] == 0)
+ {
+ StartSpriteAnim(sprite, gWeatherPtr->unknown_6DC + 1);
+ sprite->data[4] = 1;
+ sprite->pos1.x -= gSpriteCoordOffsetX;
+ sprite->pos1.y -= gSpriteCoordOffsetY;
+ sprite->coordOffsetEnabled = TRUE;
+ }
+ }
+ else if (sprite->animEnded)
+ {
+ sprite->invisible = TRUE;
+ sub_807E4EC(sprite);
+ }
+}
+
+void sub_807E6C4(struct Sprite *sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ sub_807E4EC(sprite);
+ sprite->callback = sub_807E5C0;
+ }
+ else
+ {
+ sprite->data[0]--;
+ }
+}
+
+void sub_807E6F0(struct Sprite *sprite, u16 b)
+{
+ u16 r8 = gUnknown_0839AAC4[gWeatherPtr->unknown_6DC][0];
+ u16 r6 = b / (gUnknown_0839AAC4[gWeatherPtr->unknown_6DC][1] + r8);
+ u16 r4 = b % (gUnknown_0839AAC4[gWeatherPtr->unknown_6DC][1] + r8);
+
+ while (--r6 != 0xFFFF)
+ sub_807E4EC(sprite);
+ if (r4 < r8)
+ {
+ while (--r4 != 0xFFFF)
+ sub_807E5C0(sprite);
+ sprite->data[6] = 0;
+ }
+ else
+ {
+ sprite->data[0] = r4 - r8;
+ sprite->invisible = TRUE;
+ sprite->data[6] = 1;
+ }
+}
+
+extern const struct SpriteSheet sRainSpriteSheet; // defined below
+
+void LoadRainSpriteSheet(void)
+{
+ LoadSpriteSheet(&sRainSpriteSheet);
+}
+
+static const struct Coords16 sRainSpriteCoords[] =
+{
+ { 0, 0},
+ { 0, 160},
+ { 0, 64},
+ {144, 224},
+ {144, 128},
+ { 32, 32},
+ { 32, 192},
+ { 32, 96},
+ { 72, 128},
+ { 72, 32},
+ { 72, 192},
+ {216, 96},
+ {216, 0},
+ {104, 160},
+ {104, 64},
+ {104, 224},
+ {144, 0},
+ {144, 160},
+ {144, 64},
+ { 32, 224},
+ { 32, 128},
+ { 72, 32},
+ { 72, 192},
+ { 48, 96},
+};
+
+static const struct OamData gOamData_839AA68 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 2,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 2,
+ .affineParam = 0,
+};
+
+static const union AnimCmd gSpriteAnim_839AA70[] =
+{
+ ANIMCMD_FRAME(0, 16),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd gSpriteAnim_839AA78[] =
+{
+ ANIMCMD_FRAME(8, 3),
+ ANIMCMD_FRAME(32, 2),
+ ANIMCMD_FRAME(40, 2),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gSpriteAnim_839AA88[] =
+{
+ ANIMCMD_FRAME(8, 3),
+ ANIMCMD_FRAME(16, 3),
+ ANIMCMD_FRAME(24, 4),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const gSpriteAnimTable_839AA98[] =
+{
+ gSpriteAnim_839AA70,
+ gSpriteAnim_839AA78,
+ gSpriteAnim_839AA88,
+};
+
+static const struct SpriteTemplate sRainSpriteTemplate =
+{
+ .tileTag = 4614,
+ .paletteTag = 4608,
+ .oam = &gOamData_839AA68,
+ .anims = gSpriteAnimTable_839AA98,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_807E5C0,
+};
+
+
+const s16 gUnknown_0839AABC[][2] =
+{
+ {-104, 208},
+ {-160, 320},
+};
+
+const u16 gUnknown_0839AAC4[][2] =
+{
+ {18, 7},
+ {12, 10},
+};
+
+static const struct SpriteSheet sRainSpriteSheet = {gWeatherRainTiles, sizeof(gWeatherRainTiles), 0x1206};
+
+static const struct OamData gOamData_839AAD4 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_839AADC[] =
+{
+ {gWeatherSnow1Tiles, sizeof(gWeatherSnow1Tiles)},
+ {gWeatherSnow2Tiles, sizeof(gWeatherSnow2Tiles)},
+};
+
+static const union AnimCmd gSpriteAnim_839AAEC[] =
+{
+ ANIMCMD_FRAME(0, 16),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gSpriteAnim_839AAF4[] =
+{
+ ANIMCMD_FRAME(1, 16),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const gSpriteAnimTable_839AAFC[] =
+{
+ gSpriteAnim_839AAEC,
+ gSpriteAnim_839AAF4,
+};
+
+void sub_807ED48(struct Sprite *);
+static const struct SpriteTemplate sSnowflakeSpriteTemplate =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 4608,
+ .oam = &gOamData_839AAD4,
+ .anims = gSpriteAnimTable_839AAFC,
+ .images = gSpriteImageTable_839AADC,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_807ED48,
+};
+
+// unused data
+static const u16 unusedData_839AB1C[] = {0, 6, 6, 12, 18, 42, 300, 300};
+
+static const struct OamData gOamData_839AB2C =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 1,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const union AnimCmd gSpriteAnim_839AB34[] =
+{
+ ANIMCMD_FRAME(0, 16),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gSpriteAnim_839AB3C[] =
+{
+ ANIMCMD_FRAME(32, 16),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gSpriteAnim_839AB44[] =
+{
+ ANIMCMD_FRAME(64, 16),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gSpriteAnim_839AB4C[] =
+{
+ ANIMCMD_FRAME(96, 16),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gSpriteAnim_839AB54[] =
+{
+ ANIMCMD_FRAME(128, 16),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gSpriteAnim_839AB5C[] =
+{
+ ANIMCMD_FRAME(160, 16),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const gSpriteAnimTable_839AB64[] =
+{
+ gSpriteAnim_839AB34,
+ gSpriteAnim_839AB3C,
+ gSpriteAnim_839AB44,
+ gSpriteAnim_839AB4C,
+ gSpriteAnim_839AB54,
+ gSpriteAnim_839AB5C,
+};
+
+static const union AffineAnimCmd gSpriteAffineAnim_839AB7C[] =
+{
+ AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd *const gSpriteAffineAnimTable_839AB8C[] =
+{
+ gSpriteAffineAnim_839AB7C,
+};
+
+static void Fog1SpriteCallback(struct Sprite *);
+static const struct SpriteTemplate sFog1SpriteTemplate =
+{
+ .tileTag = 4609,
+ .paletteTag = 4608,
+ .oam = &gOamData_839AB2C,
+ .anims = gSpriteAnimTable_839AB64,
+ .images = NULL,
+ .affineAnims = gSpriteAffineAnimTable_839AB8C,
+ .callback = Fog1SpriteCallback,
+};
+
+bool8 CreateRainSprite(void)
+{
+ u8 spriteNum;
+ u8 spriteId;
+
+ if (gWeatherPtr->rainSpriteCount == 24)
+ return FALSE;
+
+ spriteNum = gWeatherPtr->rainSpriteCount;
+ spriteId = CreateSpriteAtEnd(&sRainSpriteTemplate,
+ sRainSpriteCoords[spriteNum].x, sRainSpriteCoords[spriteNum].y, 78);
+ if (spriteId != 64)
+ {
+ gSprites[spriteId].data[5] = 0;
+ gSprites[spriteId].data[1] = spriteNum * 145;
+ while (gSprites[spriteId].data[1] >= 600)
+ gSprites[spriteId].data[1] -= 600;
+ sub_807E4EC(&gSprites[spriteId]);
+ sub_807E6F0(&gSprites[spriteId], spriteNum * 9);
+ gSprites[spriteId].invisible = TRUE;
+ gWeatherPtr->sprites.s1.rainSprites[spriteNum] = &gSprites[spriteId];
+ }
+ else
+ {
+ gWeatherPtr->sprites.s1.rainSprites[spriteNum] = NULL;
+ }
+
+ if (++gWeatherPtr->rainSpriteCount == 24)
+ {
+ u16 i;
+
+ for (i = 0; i < 24; i++)
+ {
+ if (gWeatherPtr->sprites.s1.rainSprites[i] != NULL)
+ {
+ if (gWeatherPtr->sprites.s1.rainSprites[i]->data[6] == 0)
+ gWeatherPtr->sprites.s1.rainSprites[i]->callback = sub_807E5C0;
+ else
+ gWeatherPtr->sprites.s1.rainSprites[i]->callback = sub_807E6C4;
+ }
+ }
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 sub_807E8E8(void)
+{
+ if (gWeatherPtr->unknown_6D8 == gWeatherPtr->unknown_6D9)
+ return FALSE;
+
+ if (++gWeatherPtr->unknown_6D6 > gWeatherPtr->unknown_6DB)
+ {
+ gWeatherPtr->unknown_6D6 = 0;
+ if (gWeatherPtr->unknown_6D8 < gWeatherPtr->unknown_6D9)
+ {
+ gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->unknown_6D8++]->data[5] = 1;
+ }
+ else
+ {
+ gWeatherPtr->unknown_6D8--;
+ gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->unknown_6D8]->data[5] = 0;
+ gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->unknown_6D8]->invisible = TRUE;
+ }
+ }
+ return TRUE;
+}
+
+void DestroyRainSprites(void)
+{
+ u16 i;
+
+ for (i = 0; i < gWeatherPtr->rainSpriteCount; i++)
+ {
+ if (gWeatherPtr->sprites.s1.rainSprites[i] != NULL)
+ DestroySprite(gWeatherPtr->sprites.s1.rainSprites[i]);
+ }
+ gWeatherPtr->rainSpriteCount = 0;
+ FreeSpriteTilesByTag(0x1206);
+}
+
+//------------------------------------------------------------------------------
+// Snow
+//------------------------------------------------------------------------------
+
+void Snow_InitVars(void)
+{
+ gWeatherPtr->initStep = 0;
+ gWeatherPtr->weatherGfxLoaded = FALSE;
+ gWeatherPtr->unknown_6C1 = 3;
+ gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->unknown_6E5 = 16;
+ gWeatherPtr->unknown_6E0 = 0;
+}
+
+void Snow_Main(void);
+void sub_807ED48(struct Sprite *);
+
+void Snow_InitAll(void)
+{
+ Snow_InitVars();
+ while (gWeatherPtr->weatherGfxLoaded == FALSE)
+ {
+ u16 i;
+
+ Snow_Main();
+ for (i = 0; i < gWeatherPtr->snowflakeSpriteCount; i++)
+ {
+ sub_807ED48(gWeatherPtr->sprites.s1.snowflakeSprites[i]);
+ }
+ }
+}
+
+u8 snowflakes_progress(void);
+
+void Snow_Main(void)
+{
+ if (gWeatherPtr->initStep == 0 && snowflakes_progress() == FALSE)
+ {
+ gWeatherPtr->weatherGfxLoaded = TRUE;
+ gWeatherPtr->initStep++;
+ }
+}
+
+bool8 Snow_Finish(void)
+{
+ switch (gWeatherPtr->finishStep)
+ {
+ case 0:
+ gWeatherPtr->unknown_6E5 = 0;
+ gWeatherPtr->unknown_6E0 = 0;
+ gWeatherPtr->finishStep++;
+ // fall through
+ case 1:
+ if (snowflakes_progress() == FALSE)
+ {
+ gWeatherPtr->finishStep++;
+ return FALSE;
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 CreateSnowflakeSprite(void);
+bool8 RemoveSnowflakeSprite(void);
+
+bool8 snowflakes_progress(void)
+{
+ if (gWeatherPtr->snowflakeSpriteCount == gWeatherPtr->unknown_6E5)
+ return FALSE;
+
+ gWeatherPtr->unknown_6E0++;
+ if (gWeatherPtr->unknown_6E0 > 36)
+ {
+ gWeatherPtr->unknown_6E0 = 0;
+ if (gWeatherPtr->snowflakeSpriteCount < gWeatherPtr->unknown_6E5)
+ CreateSnowflakeSprite();
+ else
+ RemoveSnowflakeSprite();
+ }
+ return (gWeatherPtr->snowflakeSpriteCount != gWeatherPtr->unknown_6E5);
+}
+
+void sub_807EC40(struct Sprite *);
+
+bool8 CreateSnowflakeSprite(void)
+{
+ u8 spriteId = CreateSpriteAtEnd(&sSnowflakeSpriteTemplate, 0, 0, 78);
+
+ if (spriteId == 64)
+ return FALSE;
+ gSprites[spriteId].data[4] = gWeatherPtr->snowflakeSpriteCount;
+ sub_807EC40(&gSprites[spriteId]);
+ gSprites[spriteId].coordOffsetEnabled = TRUE;
+ gWeatherPtr->sprites.s1.snowflakeSprites[gWeatherPtr->snowflakeSpriteCount++] = &gSprites[spriteId];
+ return TRUE;
+}
+
+bool8 RemoveSnowflakeSprite(void)
+{
+ if (gWeatherPtr->snowflakeSpriteCount != 0)
+ {
+ DestroySprite(gWeatherPtr->sprites.s1.snowflakeSprites[--gWeatherPtr->snowflakeSpriteCount]);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_807EC40(struct Sprite *sprite)
+{
+ u16 r4 = ((sprite->data[4] * 5) & 7) * 30 + (Random() % 30);
+ u16 r6;
+
+ sprite->pos1.y = -3 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY);
+ sprite->pos1.x = r4 - (gSpriteCoordOffsetX + sprite->centerToCornerVecX);
+ sprite->data[0] = sprite->pos1.y * 128;
+ sprite->pos2.x = 0;
+ r6 = Random();
+ sprite->data[1] = (r6 & 3) * 5 + 64;
+ sprite->data[7] = (r6 & 3) * 5 + 64;
+ StartSpriteAnim(sprite, (r6 & 1) ? 0 : 1);
+ sprite->data[3] = 0;
+ sprite->data[2] = ((r6 & 3) == 0) ? 2 : 1;
+ sprite->data[6] = (r6 & 0x1F) + 210;
+ sprite->data[5] = 0;
+}
+
+void sub_807ECEC(struct Sprite *sprite)
+{
+ if (gWeatherPtr->unknown_6E2 > 18)
+ {
+ sprite->invisible = FALSE;
+ sprite->callback = sub_807ED48;
+ sprite->pos1.y = 0xFA - (gSpriteCoordOffsetY + sprite->centerToCornerVecY);
+ sprite->data[0] = sprite->pos1.y * 128;
+ gWeatherPtr->unknown_6E2 = 0;
+ }
+}
+
+void sub_807ED48(struct Sprite *sprite)
+{
+ s16 r3;
+ s16 r2;
+
+ sprite->data[0] += sprite->data[1];
+ sprite->pos1.y = sprite->data[0] >> 7;
+ sprite->data[3] = (sprite->data[3] + sprite->data[2]) & 0xFF;
+ sprite->pos2.x = gSineTable[sprite->data[3]] / 64;
+
+ r3 = (sprite->pos1.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX) & 0x1FF;
+ if (r3 & 0x100)
+ r3 = -0x100 | r3; // hmm... what is this?
+ if (r3 < -3)
+ sprite->pos1.x = 242 - (gSpriteCoordOffsetX + sprite->centerToCornerVecX);
+ else if (r3 > 242)
+ sprite->pos1.x = -3 - (gSpriteCoordOffsetX + sprite->centerToCornerVecX);
+
+ r2 = (sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY) & 0xFF;
+ if (r2 > 163 && r2 < 171)
+ {
+ sprite->pos1.y = 250 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY);
+ sprite->data[0] = sprite->pos1.y * 128;
+ sprite->data[5] = 0;
+ sprite->data[6] = 220;
+ }
+ else if (r2 > 242 && r2 < 250)
+ {
+ sprite->pos1.y = 163;
+ sprite->data[0] = sprite->pos1.y * 128;
+ sprite->data[5] = 0;
+ sprite->data[6] = 220;
+ sprite->invisible = TRUE;
+ sprite->callback = sub_807ECEC;
+ }
+
+ sprite->data[5]++;
+ if (sprite->data[5] == sprite->data[6])
+ {
+ sub_807EC40(sprite);
+ sprite->pos1.y = 250;
+ sprite->invisible = TRUE;
+ sprite->callback = sub_807ECEC;
+ }
+}
+
+//------------------------------------------------------------------------------
+// Medium Rain
+//------------------------------------------------------------------------------
+
+void MedRain_InitVars(void)
+{
+ gWeatherPtr->initStep = 0;
+ gWeatherPtr->weatherGfxLoaded = FALSE;
+ gWeatherPtr->unknown_6D6 = 0;
+ gWeatherPtr->unknown_6DB = 4;
+ gWeatherPtr->unknown_6DC = 0;
+ gWeatherPtr->unknown_6D9 = 16;
+ gWeatherPtr->unknown_6C1 = 3;
+ gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment
+ gWeatherPtr->unknown_6ED = 0;
+ SetRainStrengthFromSoundEffect(SE_T_AME);
+}
+
+void Rain_Main(void);
+
+void MedRain_InitAll(void)
+{
+ MedRain_InitVars();
+ while (gWeatherPtr->weatherGfxLoaded == FALSE)
+ Rain_Main();
+}
+
+//------------------------------------------------------------------------------
+// Heavy Rain
+//------------------------------------------------------------------------------
+
+void HeavyRain_InitVars(void)
+{
+ gWeatherPtr->initStep = 0;
+ gWeatherPtr->weatherGfxLoaded = FALSE;
+ gWeatherPtr->unknown_6D6 = 0;
+ gWeatherPtr->unknown_6DB = 4;
+ gWeatherPtr->unknown_6DC = 1;
+ gWeatherPtr->unknown_6D9 = 24;
+ gWeatherPtr->unknown_6C1 = 3;
+ gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment
+ SetRainStrengthFromSoundEffect(SE_T_OOAME);
+}
+
+void HeavyRain_InitAll(void)
+{
+ HeavyRain_InitVars();
+ while (gWeatherPtr->weatherGfxLoaded == FALSE)
+ Rain_Main();
+}
+
+void UpdateThunderSound(void);
+void SetThunderCounter(u16);
+
+void Rain_Main(void)
+{
+ UpdateThunderSound();
+ switch (gWeatherPtr->initStep)
+ {
+ case 0:
+ LoadRainSpriteSheet();
+ gWeatherPtr->initStep++;
+ break;
+ case 1:
+ if (CreateRainSprite())
+ break;
+ gWeatherPtr->initStep++;
+ break;
+ case 2:
+ if (sub_807E8E8())
+ break;
+ gWeatherPtr->weatherGfxLoaded = TRUE;
+ gWeatherPtr->initStep++;
+ break;
+ case 3:
+ if (gWeatherPtr->unknown_6C6 == 0)
+ break;
+ gWeatherPtr->initStep = 6;
+ break;
+ case 4:
+ gWeatherPtr->unknown_6EA = 1;
+ gWeatherPtr->unknown_6E6 = (Random() % 360) + 360;
+ gWeatherPtr->initStep++;
+ // fall through
+ case 5:
+ if (--gWeatherPtr->unknown_6E6 != 0)
+ break;
+ gWeatherPtr->initStep++;
+ break;
+ case 6:
+ gWeatherPtr->unknown_6EA = 1;
+ gWeatherPtr->unknown_6EB = Random() % 2;
+ gWeatherPtr->initStep++;
+ break;
+ case 7:
+ gWeatherPtr->unknown_6EC = (Random() & 1) + 1;
+ gWeatherPtr->initStep++;
+ // fall through
+ case 8:
+ sub_807D5BC(19);
+ if (gWeatherPtr->unknown_6EB == 0 && gWeatherPtr->unknown_6EC == 1)
+ SetThunderCounter(20);
+ gWeatherPtr->unknown_6E6 = (Random() % 3) + 6;
+ gWeatherPtr->initStep++;
+ break;
+ case 9:
+ if (--gWeatherPtr->unknown_6E6 != 0)
+ break;
+ sub_807D5BC(3);
+ gWeatherPtr->unknown_6EA = 1;
+ if (--gWeatherPtr->unknown_6EC != 0)
+ {
+ gWeatherPtr->unknown_6E6 = (Random() % 16) + 60;
+ gWeatherPtr->initStep = 10;
+ }
+ else if (gWeatherPtr->unknown_6EB == 0)
+ {
+ gWeatherPtr->initStep = 4;
+ }
+ else
+ {
+ gWeatherPtr->initStep = 11;
+ }
+ break;
+ case 10:
+ if (--gWeatherPtr->unknown_6E6 != 0)
+ break;
+ gWeatherPtr->initStep = 8;
+ break;
+ case 11:
+ gWeatherPtr->unknown_6E6 = (Random() % 16) + 60;
+ gWeatherPtr->initStep++;
+ break;
+ case 12:
+ if (--gWeatherPtr->unknown_6E6 != 0)
+ break;
+ SetThunderCounter(100);
+ sub_807D5BC(19);
+ // Why use "% 16" everywhere else and "& 0xF" here. So dumb.
+ gWeatherPtr->unknown_6E6 = (Random() & 0xF) + 30;
+ gWeatherPtr->initStep++;
+ break;
+ case 13:
+ if (--gWeatherPtr->unknown_6E6 != 0)
+ break;
+ sub_807D5F0(19, 3, 5);
+ gWeatherPtr->initStep++;
+ break;
+ case 14:
+ if (gWeatherPtr->unknown_6C6 != 3)
+ break;
+ gWeatherPtr->unknown_6EA = 1;
+ gWeatherPtr->initStep = 4;
+ break;
+ }
+}
+
+bool8 Rain_Finish(void)
+{
+ switch (gWeatherPtr->finishStep)
+ {
+ case 0:
+ gWeatherPtr->unknown_6EA = 0;
+ gWeatherPtr->finishStep++;
+ // fall through
+ case 1:
+ Rain_Main();
+ if (gWeatherPtr->unknown_6EA != 0)
+ {
+ if (gWeatherPtr->nextWeather == WEATHER_RAIN_LIGHT
+ || gWeatherPtr->nextWeather == WEATHER_RAIN_MED
+ || gWeatherPtr->nextWeather == WEATHER_RAIN_HEAVY)
+ return FALSE;
+ gWeatherPtr->unknown_6D9 = 0;
+ gWeatherPtr->finishStep++;
+ }
+ break;
+ case 2:
+ if (sub_807E8E8())
+ break;
+ DestroyRainSprites();
+ gWeatherPtr->unknown_6ED = 0;
+ gWeatherPtr->finishStep++;
+ return FALSE;
+ default:
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void SetThunderCounter(u16 max)
+{
+ if (gWeatherPtr->unknown_6ED == 0)
+ {
+ gWeatherPtr->thunderCounter = Random() % max;
+ gWeatherPtr->unknown_6ED = 1;
+ }
+}
+
+void UpdateThunderSound(void)
+{
+ if (gWeatherPtr->unknown_6ED == 1)
+ {
+ if (gWeatherPtr->thunderCounter == 0)
+ {
+ if (IsSEPlaying())
+ return;
+ if (Random() & 1)
+ PlaySE(SE_T_KAMI);
+ else
+ PlaySE(SE_T_KAMI2);
+ gWeatherPtr->unknown_6ED = 0;
+ }
+ else
+ {
+ gWeatherPtr->thunderCounter--;
+ }
+ }
+}
+
+//------------------------------------------------------------------------------
+// Fog 1
+//------------------------------------------------------------------------------
+
+void Fog1_Main(void);
+static void CreateFog1Sprites(void);
+static void DestroyFog1Sprites(void);
+
+void Fog1_InitVars(void)
+{
+ gWeatherPtr->initStep = 0;
+ gWeatherPtr->weatherGfxLoaded = FALSE;
+ gWeatherPtr->unknown_6C1 = 0;
+ gWeatherPtr->unknown_6C2 = 20;
+ if (gWeatherPtr->fog1SpritesCreated == 0)
+ {
+ gWeatherPtr->unknown_6F0 = 0;
+ gWeatherPtr->unknown_6F2 = 0;
+ gWeatherPtr->fog1ScrollPosX = 0;
+ Weather_SetBlendCoeffs(0, 16);
+ }
+}
+
+void Fog1_InitAll(void)
+{
+ Fog1_InitVars();
+ while (gWeatherPtr->weatherGfxLoaded == FALSE)
+ Fog1_Main();
+}
+
+void Fog1_Main(void)
+{
+ gWeatherPtr->fog1ScrollPosX = (gSpriteCoordOffsetX - gWeatherPtr->unknown_6F2) & 0xFF;
+ if (++gWeatherPtr->unknown_6F0 > 3)
+ {
+ gWeatherPtr->unknown_6F0 = 0;
+ gWeatherPtr->unknown_6F2++;
+ }
+ switch (gWeatherPtr->initStep)
+ {
+ case 0:
+ CreateFog1Sprites();
+ if (gWeatherPtr->currWeather == WEATHER_FOG_1)
+ Weather_SetTargetBlendCoeffs(12, 8, 3);
+ else
+ Weather_SetTargetBlendCoeffs(4, 16, 0);
+ gWeatherPtr->initStep++;
+ break;
+ case 1:
+ if (Weather_UpdateBlend())
+ {
+ gWeatherPtr->weatherGfxLoaded = TRUE;
+ gWeatherPtr->initStep++;
+ }
+ break;
+ }
+}
+
+bool8 Fog1_Finish(void)
+{
+ gWeatherPtr->fog1ScrollPosX = (gSpriteCoordOffsetX - gWeatherPtr->unknown_6F2) & 0xFF;
+ if (++gWeatherPtr->unknown_6F0 > 3)
+ {
+ gWeatherPtr->unknown_6F0 = 0;
+ gWeatherPtr->unknown_6F2++;
+ }
+ switch (gWeatherPtr->finishStep)
+ {
+ case 0:
+ Weather_SetTargetBlendCoeffs(0, 16, 3);
+ gWeatherPtr->finishStep++;
+ break;
+ case 1:
+ if (!Weather_UpdateBlend())
+ break;
+ gWeatherPtr->finishStep++;
+ break;
+ case 2:
+ DestroyFog1Sprites();
+ gWeatherPtr->finishStep++;
+ break;
+ default:
+ return FALSE;
+ }
+ return TRUE;
+}
+
+#define sprColumn data[0]
+
+static void Fog1SpriteCallback(struct Sprite *sprite)
+{
+ sprite->pos2.y = (u8)gSpriteCoordOffsetY;
+ sprite->pos1.x = gWeatherPtr->fog1ScrollPosX + 32 + sprite->sprColumn * 64;
+ if (sprite->pos1.x > 0x10F)
+ {
+ sprite->pos1.x = 480 + gWeatherPtr->fog1ScrollPosX - (4 - sprite->sprColumn) * 64;
+ sprite->pos1.x &= 0x1FF;
+ }
+}
+
+static void CreateFog1Sprites(void)
+{
+ u16 i;
+
+ if (!gWeatherPtr->fog1SpritesCreated)
+ {
+ struct SpriteSheet fog1SpriteSheet = {gWeatherFog1Tiles, sizeof(gWeatherFog1Tiles), 0x1201};
+
+ LoadSpriteSheet(&fog1SpriteSheet);
+ for (i = 0; i < 20; i++)
+ {
+ u8 spriteId = CreateSpriteAtEnd(&sFog1SpriteTemplate, 0, 0, 0xFF);
+
+ if (spriteId != MAX_SPRITES)
+ {
+ struct Sprite *sprite = &gSprites[spriteId];
+
+ sprite->sprColumn = i % 5;
+ sprite->pos1.x = (i % 5) * 64 + 32;
+ sprite->pos1.y = (i / 5) * 64 + 32;
+ gWeatherPtr->sprites.s2.fog1Sprites[i] = sprite;
+ }
+ else
+ {
+ gWeatherPtr->sprites.s2.fog1Sprites[i] = NULL;
+ }
+ }
+ gWeatherPtr->fog1SpritesCreated = TRUE;
+ }
+}
+
+#undef sprColumn
+
+static void DestroyFog1Sprites(void)
+{
+ u16 i;
+
+ if (gWeatherPtr->fog1SpritesCreated)
+ {
+ for (i = 0; i < 20; i++)
+ {
+ if (gWeatherPtr->sprites.s2.fog1Sprites[i] != NULL)
+ DestroySprite(gWeatherPtr->sprites.s2.fog1Sprites[i]);
+ }
+ FreeSpriteTilesByTag(0x1201);
+ gWeatherPtr->fog1SpritesCreated = 0;
+ }
+}
+
+//------------------------------------------------------------------------------
+// Volcanic ash
+//------------------------------------------------------------------------------
+
+void Ash_Main(void);
+void LoadAshSpriteSheet(void);
+void CreateAshSprites(void);
+void DestroyAshSprites(void);
+
+void Ash_InitVars(void)
+{
+ gWeatherPtr->initStep = 0;
+ gWeatherPtr->weatherGfxLoaded = FALSE;
+ gWeatherPtr->unknown_6C1 = 0;
+ gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->unknown_6FE = 20;
+ if (!gWeatherPtr->ashSpritesCreated)
+ {
+ Weather_SetBlendCoeffs(0, 16);
+ REG_BLDALPHA = BLDALPHA_BLEND(64, 63); // Those aren't even valid coefficients!
+ }
+}
+
+void Ash_InitAll(void)
+{
+ Ash_InitVars();
+ while (gWeatherPtr->weatherGfxLoaded == FALSE)
+ Ash_Main();
+}
+
+void Ash_Main(void)
+{
+ gWeatherPtr->unknown_6FC = gSpriteCoordOffsetX & 0x1FF;
+ while (gWeatherPtr->unknown_6FC > 0xEF)
+ gWeatherPtr->unknown_6FC -= 0xF0;
+ switch (gWeatherPtr->initStep)
+ {
+ case 0:
+ LoadAshSpriteSheet();
+ gWeatherPtr->initStep++;
+ break;
+ case 1:
+ if (!gWeatherPtr->ashSpritesCreated)
+ CreateAshSprites();
+ Weather_SetTargetBlendCoeffs(16, 0, 1);
+ gWeatherPtr->initStep++;
+ break;
+ case 2:
+ if (!Weather_UpdateBlend())
+ break;
+ gWeatherPtr->weatherGfxLoaded = TRUE;
+ gWeatherPtr->initStep++;
+ break;
+ default:
+ Weather_UpdateBlend();
+ break;
+ }
+}
+
+bool8 Ash_Finish(void)
+{
+ switch (gWeatherPtr->finishStep)
+ {
+ case 0:
+ Weather_SetTargetBlendCoeffs(0, 16, 1);
+ gWeatherPtr->finishStep++;
+ break;
+ case 1:
+ if (!Weather_UpdateBlend())
+ break;
+ DestroyAshSprites();
+ gWeatherPtr->finishStep++;
+ break;
+ case 2:
+ REG_BLDALPHA = 0;
+ gWeatherPtr->finishStep++;
+ return FALSE;
+ default:
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static const struct SpriteSheet sAshSpriteSheet = {gWeatherAshTiles, sizeof(gWeatherAshTiles), 0x1202};
+
+void LoadAshSpriteSheet(void)
+{
+ LoadSpriteSheet(&sAshSpriteSheet);
+}
+
+const struct OamData gOamData_839ABB8 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 1,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 15,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_839ABC0[] =
+{
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(64, 60),
+ ANIMCMD_JUMP(0),
+};
+
+const union AnimCmd *const gSpriteAnimTable_839ABCC[] =
+{
+ gSpriteAnim_839ABC0,
+};
+
+void sub_807FAA8(struct Sprite *);
+static const struct SpriteTemplate sAshSpriteTemplate =
+{
+ .tileTag = 4610,
+ .paletteTag = 4608,
+ .oam = &gOamData_839ABB8,
+ .anims = gSpriteAnimTable_839ABCC,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_807FAA8,
+};
+
+void CreateAshSprites(void)
+{
+ u8 i;
+
+ if (!gWeatherPtr->ashSpritesCreated)
+ {
+ for (i = 0; i < 20; i++)
+ {
+ u8 spriteId = CreateSpriteAtEnd(&sAshSpriteTemplate, 0, 0, 0x4E);
+
+ if (spriteId != MAX_SPRITES)
+ {
+ struct Sprite *sprite = &gSprites[spriteId];
+
+ sprite->data[1] = 0;
+ sprite->data[2] = (u8)(i % 5);
+ sprite->data[3] = (u8)(i / 5);
+ sprite->data[0] = sprite->data[3] * 64 + 32;
+ gWeatherPtr->sprites.s2.ashSprites[i] = sprite;
+ }
+ else
+ {
+ gWeatherPtr->sprites.s2.ashSprites[i] = NULL;
+ }
+ }
+ gWeatherPtr->ashSpritesCreated = TRUE;
+ }
+}
+
+void DestroyAshSprites(void)
+{
+ u16 i;
+
+ if (gWeatherPtr->ashSpritesCreated)
+ {
+ for (i = 0; i < 20; i++)
+ {
+ if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL)
+ DestroySprite(gWeatherPtr->sprites.s2.ashSprites[i]);
+ }
+ FreeSpriteTilesByTag(0x1202);
+ gWeatherPtr->ashSpritesCreated = FALSE;
+ }
+}
+
+void sub_807FAA8(struct Sprite *sprite)
+{
+ sprite->data[1]++;
+ if (sprite->data[1] > 5)
+ {
+ sprite->data[1] = 0;
+ sprite->data[0]++;
+ }
+ sprite->pos1.y = gSpriteCoordOffsetY + sprite->data[0];
+ sprite->pos1.x = gWeatherPtr->unknown_6FC + 32 + sprite->data[2] * 64;
+ if (sprite->pos1.x > 271)
+ {
+ sprite->pos1.x = gWeatherPtr->unknown_6FC + 0x1E0 - (4 - sprite->data[2]) * 64;
+ sprite->pos1.x &= 0x1FF;
+ }
+}
+
+//------------------------------------------------------------------------------
+// Fog 2
+//------------------------------------------------------------------------------
+
+void Fog2_InitVars(void)
+{
+ gWeatherPtr->initStep = 0;
+ gWeatherPtr->weatherGfxLoaded = 0;
+ gWeatherPtr->unknown_6C1 = 0;
+ gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->unknown_6F0 = 0;
+ gWeatherPtr->unknown_6F2 = 1;
+ if (gWeatherPtr->fog2SpritesCreated == 0)
+ {
+ gWeatherPtr->unknown_71C = 0;
+ gWeatherPtr->unknown_71E = 0;
+ gWeatherPtr->unknown_720 = 0;
+ gWeatherPtr->unknown_722 = 0;
+ gWeatherPtr->unknown_718 = 0;
+ gWeatherPtr->unknown_71A = 0;
+ Weather_SetBlendCoeffs(0, 16);
+ }
+}
+
+void Fog2_Main(void);
+
+void Fog2_InitAll(void)
+{
+ Fog2_InitVars();
+ while (gWeatherPtr->weatherGfxLoaded == FALSE)
+ Fog2_Main();
+}
+
+void sub_807FC9C(void);
+void CreateFog2Sprites(void);
+
+void Fog2_Main(void)
+{
+ sub_807FC9C();
+ switch (gWeatherPtr->initStep)
+ {
+ case 0:
+ CreateFog2Sprites();
+ gWeatherPtr->initStep++;
+ break;
+ case 1:
+ Weather_SetTargetBlendCoeffs(12, 8, 8);
+ gWeatherPtr->initStep++;
+ break;
+ case 2:
+ if (!Weather_UpdateBlend())
+ break;
+ gWeatherPtr->weatherGfxLoaded = TRUE;
+ gWeatherPtr->initStep++;
+ break;
+ }
+}
+
+void DestroyFog2Sprites(void);
+
+bool8 Fog2_Finish(void)
+{
+ sub_807FC9C();
+ switch (gWeatherPtr->finishStep)
+ {
+ case 0:
+ Weather_SetTargetBlendCoeffs(0, 16, 1);
+ gWeatherPtr->finishStep++;
+ break;
+ case 1:
+ if (!Weather_UpdateBlend())
+ break;
+ gWeatherPtr->finishStep++;
+ break;
+ case 2:
+ DestroyFog2Sprites();
+ gWeatherPtr->finishStep++;
+ break;
+ default:
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_807FC9C(void)
+{
+ if (++gWeatherPtr->unknown_71C > 2)
+ {
+ gWeatherPtr->unknown_720++;
+ gWeatherPtr->unknown_71C = 0;
+ }
+
+ if (++gWeatherPtr->unknown_71E > 4)
+ {
+ gWeatherPtr->unknown_722++;
+ gWeatherPtr->unknown_71E = 0;
+ }
+
+ gWeatherPtr->unknown_718 = (gSpriteCoordOffsetX - gWeatherPtr->unknown_720) & 0xFF;
+ gWeatherPtr->unknown_71A = gSpriteCoordOffsetY + gWeatherPtr->unknown_722;
+}
+
+extern const struct SpriteTemplate sFog2SpriteTemplate; // defined below
+
+void CreateFog2Sprites(void)
+{
+ u16 i;
+
+ if (!gWeatherPtr->fog2SpritesCreated)
+ {
+ struct SpriteSheet fog2SpriteSheet = {gWeatherFog2Tiles, sizeof(gWeatherFog2Tiles), 0x1203};
+
+ LoadSpriteSheet(&fog2SpriteSheet);
+ for (i = 0; i < 20; i++)
+ {
+ u8 spriteId = CreateSpriteAtEnd(&sFog2SpriteTemplate, 0, (i / 5) * 64, 0xFF);
+
+ if (spriteId != MAX_SPRITES)
+ {
+ struct Sprite *sprite = &gSprites[spriteId];
+
+ sprite->data[0] = i % 5;
+ sprite->data[1] = i / 5;
+ gWeatherPtr->sprites.s2.fog2Sprites[i] = sprite;
+ }
+ else
+ {
+ gWeatherPtr->sprites.s2.fog2Sprites[i] = NULL;
+ }
+ }
+ gWeatherPtr->fog2SpritesCreated = TRUE;
+ }
+}
+
+const struct OamData gOamData_839ABF0 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 1,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_839ABF8[] =
+{
+ ANIMCMD_FRAME(0, 16),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_839AC00[] =
+{
+ gSpriteAnim_839ABF8,
+};
+
+void Fog2SpriteCallback(struct Sprite *);
+const struct SpriteTemplate sFog2SpriteTemplate =
+{
+ .tileTag = 4611,
+ .paletteTag = 4608,
+ .oam = &gOamData_839ABF0,
+ .anims = gSpriteAnimTable_839AC00,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = Fog2SpriteCallback,
+};
+
+void DestroyFog2Sprites(void)
+{
+ u16 i;
+
+ if (gWeatherPtr->fog2SpritesCreated)
+ {
+ for (i = 0; i < 20; i++)
+ {
+ if (gWeatherPtr->sprites.s2.fog2Sprites[i] != NULL)
+ DestroySprite(gWeatherPtr->sprites.s2.fog2Sprites[i]);
+ }
+ FreeSpriteTilesByTag(0x1203);
+ gWeatherPtr->fog2SpritesCreated = FALSE;
+ }
+}
+
+void Fog2SpriteCallback(struct Sprite *sprite)
+{
+ sprite->pos2.y = gWeatherPtr->unknown_71A;
+ sprite->pos1.x = gWeatherPtr->unknown_718 + 32 + sprite->data[0] * 64;
+ if (sprite->pos1.x > 271)
+ {
+ sprite->pos1.x = gWeatherPtr->unknown_718 + 0x1E0 - (4 - sprite->data[0]) * 64;
+ sprite->pos1.x &= 0x1FF;
+ }
+}
+
+//------------------------------------------------------------------------------
+// Sandstorm
+//------------------------------------------------------------------------------
+
+void Sandstorm_InitVars(void)
+{
+ gWeatherPtr->initStep = 0;
+ gWeatherPtr->weatherGfxLoaded = 0;
+ gWeatherPtr->unknown_6C1 = 0;
+ gWeatherPtr->unknown_6C2 = 20;
+ if (gWeatherPtr->sandstormSprites1Created == 0)
+ {
+ gWeatherPtr->unknown_704 = gWeatherPtr->unknown_708 = 0;
+ gWeatherPtr->unknown_712 = 8;
+ gWeatherPtr->unknown_714 = 0;
+ // Dead code. How does the compiler not optimize this out?
+ if (gWeatherPtr->unknown_712 > 0x5F)
+ gWeatherPtr->unknown_712 = 0x80 - gWeatherPtr->unknown_712;
+ Weather_SetBlendCoeffs(0, 16);
+ }
+}
+
+void Sandstorm_Main(void);
+
+void Sandstorm_InitAll(void)
+{
+ Sandstorm_InitVars();
+ while (gWeatherPtr->weatherGfxLoaded == FALSE)
+ Sandstorm_Main();
+}
+
+void sub_808002C(void);
+void sub_8080064(void);
+void CreateSandstormSprites_1(void);
+void CreateSandstormSprites_2(void);
+
+void Sandstorm_Main(void)
+{
+ sub_8080064();
+ sub_808002C();
+ if (gWeatherPtr->unknown_712 > 0x5F)
+ gWeatherPtr->unknown_712 = 32;
+ switch (gWeatherPtr->initStep)
+ {
+ case 0:
+ CreateSandstormSprites_1();
+ CreateSandstormSprites_2();
+ gWeatherPtr->initStep++;
+ break;
+ case 1:
+ Weather_SetTargetBlendCoeffs(16, 0, 0);
+ gWeatherPtr->initStep++;
+ break;
+ case 2:
+ if (!Weather_UpdateBlend())
+ break;
+ gWeatherPtr->weatherGfxLoaded = TRUE;
+ gWeatherPtr->initStep++;
+ break;
+ }
+}
+
+void sub_80800E4(void);
+
+bool8 Sandstorm_Finish(void)
+{
+ sub_8080064();
+ sub_808002C();
+ switch (gWeatherPtr->finishStep)
+ {
+ case 0:
+ Weather_SetTargetBlendCoeffs(0, 16, 0);
+ gWeatherPtr->finishStep++;
+ break;
+ case 1:
+ if (!Weather_UpdateBlend())
+ break;
+ gWeatherPtr->finishStep++;
+ break;
+ case 2:
+ sub_80800E4();
+ gWeatherPtr->finishStep++;
+ break;
+ default:
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_808002C(void)
+{
+ if (gWeatherPtr->unknown_714++ > 4)
+ {
+ gWeatherPtr->unknown_712++;
+ gWeatherPtr->unknown_714 = 0;
+ }
+}
+
+void sub_8080064(void)
+{
+ gWeatherPtr->unknown_704 -= gSineTable[gWeatherPtr->unknown_712] * 4;
+ gWeatherPtr->unknown_708 -= gSineTable[gWeatherPtr->unknown_712];
+ gWeatherPtr->unknown_70E = (gSpriteCoordOffsetX + (gWeatherPtr->unknown_704 >> 8)) & 0xFF;
+ gWeatherPtr->unknown_710 = gSpriteCoordOffsetY + (gWeatherPtr->unknown_708 >> 8);
+}
+
+void sub_80800E4(void)
+{
+ u16 i;
+
+ if (gWeatherPtr->sandstormSprites1Created)
+ {
+ for (i = 0; i < 20; i++)
+ {
+ if (gWeatherPtr->sprites.s2.sandstormSprites1[i] != NULL)
+ DestroySprite(gWeatherPtr->sprites.s2.sandstormSprites1[i]);
+ }
+ gWeatherPtr->sandstormSprites1Created = FALSE;
+ FreeSpriteTilesByTag(0x1204);
+ }
+
+ if (gWeatherPtr->sandstormSprites2Created)
+ {
+ for (i = 0; i < 5; i++)
+ {
+ if (gWeatherPtr->sprites.s2.sandstormSprites2[i] != NULL)
+ DestroySprite(gWeatherPtr->sprites.s2.sandstormSprites2[i]);
+ }
+ gWeatherPtr->sandstormSprites2Created = FALSE;
+ }
+}
+
+const struct OamData gOamData_839AC1C =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 1,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_839AC24[] =
+{
+ ANIMCMD_FRAME(0, 3),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_839AC2C[] =
+{
+ ANIMCMD_FRAME(64, 3),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_839AC34[] =
+{
+ gSpriteAnim_839AC24,
+ gSpriteAnim_839AC2C,
+};
+
+void SandstormSpriteCallback1(struct Sprite *);
+const struct SpriteTemplate sSandstormSpriteTemplate =
+{
+ .tileTag = 4612,
+ .paletteTag = 4609,
+ .oam = &gOamData_839AC1C,
+ .anims = gSpriteAnimTable_839AC34,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SandstormSpriteCallback1,
+};
+
+static const struct SpriteSheet sSandstormSpriteSheet = {gWeatherSandstormTiles, sizeof(gWeatherSandstormTiles), 0x1204};
+
+void CreateSandstormSprites_1(void)
+{
+ u16 i;
+
+ if (!gWeatherPtr->sandstormSprites1Created)
+ {
+ LoadSpriteSheet(&sSandstormSpriteSheet);
+ sub_807D8C0(gUnknown_08397128);
+ for (i = 0; i < 20; i++)
+ {
+ u8 spriteId = CreateSpriteAtEnd(&sSandstormSpriteTemplate, 0, (i / 5) * 64, 1);
+
+ if (spriteId != MAX_SPRITES)
+ {
+ gWeatherPtr->sprites.s2.sandstormSprites1[i] = &gSprites[spriteId];
+ gWeatherPtr->sprites.s2.sandstormSprites1[i]->data[0] = i % 5;
+ gWeatherPtr->sprites.s2.sandstormSprites1[i]->data[1] = i / 5;
+ }
+ else
+ {
+ gWeatherPtr->sprites.s2.sandstormSprites1[i] = NULL;
+ }
+ }
+ gWeatherPtr->sandstormSprites1Created = TRUE;
+ }
+}
+
+const u16 gUnknown_0839AC5C[] = {0, 120, 80, 160, 40, 0};
+
+void SandstormSpriteCallback2(struct Sprite *);
+
+void CreateSandstormSprites_2(void)
+{
+ u16 i;
+
+ if (!gWeatherPtr->sandstormSprites2Created)
+ {
+ for (i = 0; i < 5; i++)
+ {
+ u8 spriteId = CreateSpriteAtEnd(&sSandstormSpriteTemplate, i * 48 + 0x18, 0xD0, 1);
+
+ if (spriteId != MAX_SPRITES)
+ {
+ gWeatherPtr->sprites.s2.sandstormSprites2[i] = &gSprites[spriteId];
+ gWeatherPtr->sprites.s2.sandstormSprites2[i]->oam.size = 2;
+ gWeatherPtr->sprites.s2.sandstormSprites2[i]->data[1] = i * 51;
+ gWeatherPtr->sprites.s2.sandstormSprites2[i]->data[0] = 8;
+ gWeatherPtr->sprites.s2.sandstormSprites2[i]->data[2] = 0;
+ gWeatherPtr->sprites.s2.sandstormSprites2[i]->data[4] = 0x6730;
+ gWeatherPtr->sprites.s2.sandstormSprites2[i]->data[3] = gUnknown_0839AC5C[i];
+ StartSpriteAnim(gWeatherPtr->sprites.s2.sandstormSprites2[i], 1);
+ CalcCenterToCornerVec(gWeatherPtr->sprites.s2.sandstormSprites2[i], 0, 2, 0);
+ gWeatherPtr->sprites.s2.sandstormSprites2[i]->callback = SandstormSpriteCallback2;
+ }
+ else
+ {
+ gWeatherPtr->sprites.s2.sandstormSprites2[i] = NULL;
+ }
+ gWeatherPtr->sandstormSprites2Created = TRUE;
+ }
+ }
+}
+
+void SandstormSpriteCallback1(struct Sprite *sprite)
+{
+ sprite->pos2.y = gWeatherPtr->unknown_710;
+ sprite->pos1.x = gWeatherPtr->unknown_70E + 32 + sprite->data[0] * 64;
+ if (sprite->pos1.x > 271)
+ {
+ sprite->pos1.x = gWeatherPtr->unknown_70E + 0x1E0 - (4 - sprite->data[0]) * 64;
+ sprite->pos1.x &= 0x1FF;
+ }
+}
+
+void SandstormSpriteCallback3(struct Sprite *);
+
+void SandstormSpriteCallback2(struct Sprite *sprite)
+{
+ if (--sprite->data[3] == -1)
+ sprite->callback = SandstormSpriteCallback3;
+}
+
+void SandstormSpriteCallback3(struct Sprite *sprite)
+{
+ u32 x;
+ u32 y;
+
+ if (--sprite->pos1.y < -48)
+ {
+ sprite->pos1.y = 208;
+ sprite->data[0] = 4;
+ }
+ x = sprite->data[0] * gSineTable[sprite->data[1]];
+ y = sprite->data[0] * gSineTable[sprite->data[1] + 64];
+ sprite->pos2.x = x >> 8;
+ sprite->pos2.y = y >> 8;
+ sprite->data[1] = (sprite->data[1] + 10) & 0xFF;
+ if (++sprite->data[2] > 8)
+ {
+ sprite->data[2] = 0;
+ sprite->data[0]++;
+ }
+}
+
+//------------------------------------------------------------------------------
+// Weather 11
+//------------------------------------------------------------------------------
+
+void Weather11_InitVars(void)
+{
+ gWeatherPtr->initStep = 0;
+ gWeatherPtr->unknown_6C1 = 3;
+ gWeatherPtr->unknown_6C2 = 20;
+}
+
+void Weather11_InitAll(void)
+{
+ Weather11_InitVars();
+}
+
+void Weather11_Main(void)
+{
+}
+
+bool8 Weather11_Finish(void)
+{
+ return FALSE;
+}
+
+//------------------------------------------------------------------------------
+// Weather 14
+//------------------------------------------------------------------------------
+
+const u8 gUnknown_0839AC68[] = {40, 90, 60, 90, 2, 60, 40, 30};
+
+const struct SpriteSheet gWeatherBubbleSpriteSheet = {gWeatherBubbleTiles, sizeof(gWeatherBubbleTiles), 0x1205};
+
+void Bubbles_InitVars(void)
+{
+ Fog1_InitVars();
+ if (gWeatherPtr->unknown_72E == 0)
+ {
+ LoadSpriteSheet(&gWeatherBubbleSpriteSheet);
+ gWeatherPtr->unknown_728 = 0;
+ gWeatherPtr->unknown_726 = gUnknown_0839AC68[0];
+ gWeatherPtr->unknown_72A = 0;
+ gWeatherPtr->unknown_72C = 0;
+ }
+}
+
+void Bubbles_Main(void);
+
+void Bubbles_InitAll(void)
+{
+ Bubbles_InitVars();
+ while (gWeatherPtr->weatherGfxLoaded == FALSE)
+ Bubbles_Main();
+}
+
+void sub_8080588(u16);
+
+void Bubbles_Main(void)
+{
+ Fog1_Main();
+ if (++gWeatherPtr->unknown_726 > gUnknown_0839AC68[gWeatherPtr->unknown_728])
+ {
+ gWeatherPtr->unknown_726 = 0;
+ if (++gWeatherPtr->unknown_728 > 7)
+ gWeatherPtr->unknown_728 = 0;
+ sub_8080588(gWeatherPtr->unknown_72A);
+ if (++gWeatherPtr->unknown_72A > 12)
+ gWeatherPtr->unknown_72A = 0;
+ }
+}
+
+void sub_8080610(void);
+
+bool8 Bubbles_Finish(void)
+{
+ if (!Fog1_Finish())
+ {
+ sub_8080610();
+ return FALSE;
+ }
+ return TRUE;
+}
+
+const s16 gUnknown_0839AC78[][2] =
+{
+ {120, 160},
+ {376, 160},
+ { 40, 140},
+ {296, 140},
+ {180, 130},
+ {436, 130},
+ { 60, 160},
+ {436, 160},
+ {220, 180},
+ {476, 180},
+ { 10, 90},
+ {266, 90},
+ {256, 160},
+};
+
+const union AnimCmd gSpriteAnim_839ACAC[] =
+{
+ ANIMCMD_FRAME(0, 16),
+ ANIMCMD_FRAME(1, 16),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_839ACB8[] =
+{
+ gSpriteAnim_839ACAC,
+};
+
+extern const struct OamData gOamData_837DF24;
+
+void unc_0807DAB4(struct Sprite *);
+const struct SpriteTemplate gSpriteTemplate_839ACBC =
+{
+ .tileTag = 4613,
+ .paletteTag = 4608,
+ .oam = &gOamData_837DF24,
+ .anims = gSpriteAnimTable_839ACB8,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = unc_0807DAB4,
+};
+
+void sub_8080588(u16 a)
+{
+ s16 x = gUnknown_0839AC78[a][0];
+ s16 y = gUnknown_0839AC78[a][1] - gSpriteCoordOffsetY;
+ u8 spriteId = CreateSpriteAtEnd(
+ &gSpriteTemplate_839ACBC,
+ x,
+ y,
+ 0);
+
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].oam.priority = 1;
+ gSprites[spriteId].coordOffsetEnabled = TRUE;
+ gSprites[spriteId].data[0] = 0;
+ gSprites[spriteId].data[1] = 0;
+ gSprites[spriteId].data[2] = 0;
+ gWeatherPtr->unknown_72C++;
+ }
+}
+
+void sub_8080610(void)
+{
+ u16 i;
+
+ for (i = 0; i < 64; i++)
+ {
+ if (gSprites[i].template == &gSpriteTemplate_839ACBC)
+ DestroySprite(&gSprites[i]);
+ }
+ FreeSpriteTilesByTag(0x1205);
+}
+
+void unc_0807DAB4(struct Sprite *sprite)
+{
+ ++sprite->data[0];
+ if (++sprite->data[0] > 8) // double increment
+ {
+ sprite->data[0] = 0;
+ if (sprite->data[1] == 0)
+ {
+ if (++sprite->pos2.x > 4)
+ sprite->data[1] = 1;
+ }
+ else
+ {
+ if (--sprite->pos2.x <= 0)
+ sprite->data[1] = 0;
+ }
+ }
+ sprite->pos1.y -= 3;
+ if (++sprite->data[2] > 0x77)
+ DestroySprite(sprite);
+}
+
+//------------------------------------------------------------------------------
+
+u8 TranslateWeatherNum(u8);
+void UpdateRainCounter(u8, u8);
+
+void SetSav1Weather(u32 weather)
+{
+ u8 oldWeather = gSaveBlock1.weather;
+
+ gSaveBlock1.weather = TranslateWeatherNum(weather);
+ UpdateRainCounter(gSaveBlock1.weather, oldWeather);
+}
+
+u8 GetSav1Weather(void)
+{
+ return gSaveBlock1.weather;
+}
+
+void SetSav1WeatherFromCurrMapHeader(void)
+{
+ u8 oldWeather = gSaveBlock1.weather;
+
+ gSaveBlock1.weather = TranslateWeatherNum(gMapHeader.weather);
+ UpdateRainCounter(gSaveBlock1.weather, oldWeather);
+}
+
+void SetWeather(u32 weather)
+{
+ SetSav1Weather(weather);
+ DoWeatherEffect(GetSav1Weather());
+}
+
+void SetWeather_Unused(u32 weather)
+{
+ SetSav1Weather(weather);
+ sub_807C988(GetSav1Weather());
+}
+
+void DoCurrentWeather(void)
+{
+ DoWeatherEffect(GetSav1Weather());
+}
+
+void sub_8080750(void)
+{
+ sub_807C988(GetSav1Weather());
+}
+
+static const u8 sWeatherCycle1[] = {2, 3, 5, 3};
+static const u8 sWeatherCycle2[] = {2, 2, 3, 2};
+
+u8 TranslateWeatherNum(u8 weather)
+{
+ switch (weather)
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 2;
+ case 3: return 3;
+ case 4: return 4;
+ case 5: return 5;
+ case 6: return 6;
+ case 7: return 7;
+ case 8: return 8;
+ case 9: return 9;
+ case 10: return 10;
+ case 11: return 11;
+ case 12: return 12;
+ case 13: return 13;
+ case 14: return 14;
+ case 20: return sWeatherCycle1[gSaveBlock1.filler_2F];
+ case 21: return sWeatherCycle2[gSaveBlock1.filler_2F];
+ default: return 0;
+ }
+}
+
+void UpdateWeatherPerDay(u16 increment)
+{
+ u16 weatherStage = gSaveBlock1.filler_2F + increment;
+ weatherStage %= 4;
+ gSaveBlock1.filler_2F = weatherStage;
+}
+
+void UpdateRainCounter(u8 newWeather, u8 oldWeather)
+{
+ if (newWeather != oldWeather
+ && (newWeather == WEATHER_RAIN_LIGHT || newWeather == WEATHER_RAIN_MED))
+ IncrementGameStat(0x28);
+}
diff --git a/src/field/fldeff_berrytree.c b/src/field/fldeff_berrytree.c
new file mode 100644
index 000000000..0763c0314
--- /dev/null
+++ b/src/field/fldeff_berrytree.c
@@ -0,0 +1,56 @@
+#include "global.h"
+#include "field_map_obj.h"
+#include "field_player_avatar.h"
+#include "script.h"
+
+static void Task_WateringBerryTreeAnim_0(u8);
+static void Task_WateringBerryTreeAnim_1(u8);
+static void Task_WateringBerryTreeAnim_2(u8);
+static void Task_WateringBerryTreeAnim_3(u8);
+
+static void Task_WateringBerryTreeAnim_0(u8 taskId)
+{
+ gTasks[taskId].func = Task_WateringBerryTreeAnim_1;
+}
+
+static void Task_WateringBerryTreeAnim_1(u8 taskId)
+{
+ struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject)
+ || FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ sub_8059D08(player_get_direction_lower_nybble());
+ FieldObjectSetSpecialAnim(mapObject, GetStepInPlaceDelay16AnimId(player_get_direction_lower_nybble()));
+ gTasks[taskId].func = Task_WateringBerryTreeAnim_2;
+ }
+}
+
+static void Task_WateringBerryTreeAnim_2(u8 taskId)
+{
+ struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ s16 value = gTasks[taskId].data[1]++;
+
+ if (value < 10)
+ {
+ FieldObjectSetSpecialAnim(mapObject, GetStepInPlaceDelay16AnimId(player_get_direction_lower_nybble()));
+ }
+ else
+ {
+ gTasks[taskId].func = Task_WateringBerryTreeAnim_3;
+ }
+ }
+}
+
+static void Task_WateringBerryTreeAnim_3(u8 taskId)
+{
+ SetPlayerAvatarTransitionFlags(sub_80597D0());
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+}
+
+void DoWateringBerryTreeAnim(void)
+{
+ CreateTask(Task_WateringBerryTreeAnim_0, 80);
+}
diff --git a/src/field/fldeff_cut.c b/src/field/fldeff_cut.c
index 00643a979..e4328acfc 100644
--- a/src/field/fldeff_cut.c
+++ b/src/field/fldeff_cut.c
@@ -2,6 +2,7 @@
#include "fldeff_cut.h"
#include "field_camera.h"
#include "field_effect.h"
+#include "field_map_obj.h"
#include "field_player_avatar.h"
#include "fieldmap.h"
#include "map_obj_lock.h"
@@ -11,24 +12,65 @@
#include "overworld.h"
#include "rom6.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "task.h"
#include "trig.h"
-
-extern u8 gCutGrassSpriteArray[8]; // seems to be an array of 8 sprite IDs
+#include "ewram.h"
extern void (*gFieldCallback)(void);
extern void (*gUnknown_03005CE4)(void);
+extern u8 gLastFieldPokeMenuOpened;
-extern struct SpriteTemplate gSpriteTemplate_CutGrass;
+extern const u8 S_UseCut[];
-extern struct MapPosition gUnknown_0203923C;
+const struct OamData gOamData_CutGrass =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 1,
+ .priority = 1,
+ .paletteNum = 1,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_CutGrass[] =
+{
+ ANIMCMD_FRAME(0, 30),
+ ANIMCMD_JUMP(0),
+};
-extern u8 gLastFieldPokeMenuOpened;
+const union AnimCmd *const gSpriteAnimTable_CutGrass[] =
+{
+ gSpriteAnim_CutGrass,
+};
+
+const struct SpriteFrameImage gSpriteImageTable_CutGrass[] =
+{
+ {gFieldEffectPic_CutGrass, 0x20},
+};
-extern u8 S_UseCut[];
+const struct SpritePalette gFieldEffectObjectPaletteInfo6 = {gFieldEffectObjectPalette6, 0x1000};
+
+static void sub_80A2A48(struct Sprite *);
+static const struct SpriteTemplate gSpriteTemplate_CutGrass =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 0x1000,
+ .oam = &gOamData_CutGrass,
+ .anims = gSpriteAnimTable_CutGrass,
+ .images = gSpriteImageTable_CutGrass,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80A2A48,
+};
bool8 SetUpFieldMove_Cut(void)
{
@@ -135,9 +177,9 @@ bool8 FldEff_CutGrass(void)
// populate sprite ID array
for(i = 0; i < 8; i++)
{
- gCutGrassSpriteArray[i] = CreateSprite((struct SpriteTemplate *)&gSpriteTemplate_CutGrass,
+ eCutGrassSpriteArray[i] = CreateSprite((struct SpriteTemplate *)&gSpriteTemplate_CutGrass,
gSprites[gPlayerAvatar.spriteId].oam.x + 8, gSprites[gPlayerAvatar.spriteId].oam.y + 20, 0);
- gSprites[gCutGrassSpriteArray[i]].data2 = 32 * i;
+ gSprites[eCutGrassSpriteArray[i]].data[2] = 32 * i;
}
return 0;
}
@@ -241,11 +283,11 @@ void sub_80A28F4(s16 x, s16 y)
}
}
-void sub_80A2A48(struct Sprite *sprite)
+static void sub_80A2A48(struct Sprite *sprite)
{
- sprite->data0 = 8;
- sprite->data1 = 0;
- sprite->data3 = 0;
+ sprite->data[0] = 8;
+ sprite->data[1] = 0;
+ sprite->data[3] = 0;
sprite->callback = (void *)objc_8097BBC;
}
@@ -254,16 +296,16 @@ void objc_8097BBC(struct Sprite *sprite)
u16 tempdata;
u16 tempdata2;
- sprite->pos2.x = Sin(sprite->data2, sprite->data0);
- sprite->pos2.y = Cos(sprite->data2, sprite->data0);
+ sprite->pos2.x = Sin(sprite->data[2], sprite->data[0]);
+ sprite->pos2.y = Cos(sprite->data[2], sprite->data[0]);
- sprite->data2 = (sprite->data2 + 8) & 0xFF;
- sprite->data0 += ((tempdata2 = sprite->data3) << 16 >> 18) + 1; // what?
- sprite->data3 = tempdata2 + 1;
+ sprite->data[2] = (sprite->data[2] + 8) & 0xFF;
+ sprite->data[0] += ((tempdata2 = sprite->data[3]) << 16 >> 18) + 1; // what?
+ sprite->data[3] = tempdata2 + 1;
- tempdata = sprite->data1;
+ tempdata = sprite->data[1];
if((s16)tempdata != 28) // done rotating the grass, execute clean up function
- sprite->data1++;
+ sprite->data[1]++;
else
sprite->callback = (void *)sub_80A2AB8;
}
@@ -273,8 +315,8 @@ void sub_80A2AB8(void)
u8 i;
for (i = 1; i < 8; i++)
- DestroySprite(&gSprites[gCutGrassSpriteArray[i]]);
- FieldEffectStop(&gSprites[gCutGrassSpriteArray[0]], FLDEFF_CUT_GRASS);
+ DestroySprite(&gSprites[eCutGrassSpriteArray[i]]);
+ FieldEffectStop(&gSprites[eCutGrassSpriteArray[0]], FLDEFF_CUT_GRASS);
sub_8064E2C();
ScriptContext2_Disable();
}
diff --git a/src/field/fldeff_decoration.c b/src/field/fldeff_decoration.c
new file mode 100644
index 000000000..37f024b9f
--- /dev/null
+++ b/src/field/fldeff_decoration.c
@@ -0,0 +1,364 @@
+#include "global.h"
+#include "event_data.h"
+#include "field_camera.h"
+#include "field_effect.h"
+#include "field_map_obj.h"
+#include "field_player_avatar.h"
+#include "fieldmap.h"
+#include "script.h"
+#include "constants/songs.h"
+#include "sound.h"
+#include "string_util.h"
+#include "strings.h"
+#include "task.h"
+#include "text.h"
+
+extern const u8 gSpriteImage_83D21EC[];
+extern const u8 gSpriteImage_83D22EC[];
+extern const u8 gSpriteImage_83D23EC[];
+extern const u16 gTilesetPalettes_SecretBase[][16];
+
+const struct OamData gOamData_83D266C =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 2,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83D2674[] =
+{
+ ANIMCMD_FRAME(0, 6),
+ ANIMCMD_FRAME(1, 6),
+ ANIMCMD_FRAME(2, 6),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83D2684[] =
+{
+ gSpriteAnim_83D2674,
+};
+
+const struct SpriteFrameImage gSpriteImageTable_83D2688[] =
+{
+ {gSpriteImage_83D21EC, 0x100},
+ {gSpriteImage_83D22EC, 0x100},
+ {gSpriteImage_83D23EC, 0x100},
+};
+
+void SpriteCB_SandPillar_0(struct Sprite *);
+void SpriteCB_SandPillar_1(struct Sprite *);
+void SpriteCB_SandPillar_2(struct Sprite *);
+const struct SpriteTemplate gSpriteTemplate_83D26A0 =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 4110,
+ .oam = &gOamData_83D266C,
+ .anims = gSpriteAnimTable_83D2684,
+ .images = gSpriteImageTable_83D2688,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_SandPillar_0,
+};
+
+// This uses one of the secret base palettes, so there is no "09.pal" file.
+const struct SpritePalette gFieldEffectObjectPaletteInfo9 = {gTilesetPalettes_SecretBase[5], 0x100E};
+
+extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[36];
+
+static void sub_80C68EC(u8);
+static void DoBalloonSoundEffect(s16);
+
+void sub_80C68A4(s16 metatileId, s16 x, s16 y)
+{
+ u8 taskId = CreateTask(sub_80C68EC, 0);
+
+ gTasks[taskId].data[0] = metatileId;
+ gTasks[taskId].data[1] = x;
+ gTasks[taskId].data[2] = y;
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[4] = 1;
+}
+
+static void sub_80C68EC(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ if (data[3] == 6)
+ data[3] = 0;
+ else
+ data[3]++;
+
+ if (data[3] == 0)
+ {
+ if (data[4] == 2)
+ DoBalloonSoundEffect(data[0]);
+ MapGridSetMetatileIdAt(data[1], data[2], data[0] + data[4]);
+ CurrentMapDrawMetatileAt(data[1], data[2]);
+ if (data[4] == 3)
+ DestroyTask(taskId);
+ else
+ data[4]++;
+ }
+}
+
+static void DoBalloonSoundEffect(s16 metatileId)
+{
+ switch (metatileId)
+ {
+ case 824:
+ PlaySE(SE_FUUSEN1);
+ break;
+ case 828:
+ PlaySE(SE_FUUSEN2);
+ break;
+ case 832:
+ PlaySE(SE_FUUSEN3);
+ break;
+ case 552:
+ PlaySE(SE_TOY_DANGO);
+ break;
+ }
+}
+
+bool8 FldEff_Nop47(void)
+{
+ return FALSE;
+}
+
+bool8 FldEff_Nop48(void)
+{
+ return FALSE;
+}
+
+static void sub_80C69C4(s16 x, s16 y)
+{
+ PlaySE(SE_TOY_KABE);
+ MapGridSetMetatileIdAt(x, y, 630);
+ MapGridSetMetatileIdAt(x, y - 1, 622);
+ CurrentMapDrawMetatileAt(x, y);
+ CurrentMapDrawMetatileAt(x, y - 1);
+}
+
+static void sub_80C6A14(u8 taskId)
+{
+ if (gTasks[taskId].data[0] == 7)
+ {
+ sub_80C69C4(gTasks[taskId].data[1], gTasks[taskId].data[2]);
+ DestroyTask(taskId);
+ }
+ else
+ {
+ gTasks[taskId].data[0]++;
+ }
+}
+
+void sub_80C6A54(s16 x, s16 y)
+{
+ u8 dir = player_get_direction_lower_nybble();
+ if (dir == DIR_SOUTH)
+ {
+ sub_80C69C4(x, y);
+ }
+ else if (dir == DIR_NORTH)
+ {
+ u8 taskId = CreateTask(sub_80C6A14, 5);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = x;
+ gTasks[taskId].data[2] = y;
+ }
+}
+
+static void Task_DecorationSoundEffect(u8 taskId)
+{
+ if (gTasks[taskId].data[1] == 7)
+ {
+ switch (gTasks[taskId].data[0])
+ {
+ case 632:
+ PlaySE(SE_TOY_C);
+ break;
+ case 633:
+ PlaySE(SE_TOY_D);
+ break;
+ case 634:
+ PlaySE(SE_TOY_E);
+ break;
+ case 635:
+ PlaySE(SE_TOY_F);
+ break;
+ case 636:
+ PlaySE(SE_TOY_G);
+ break;
+ case 637:
+ PlaySE(SE_TOY_A);
+ break;
+ case 638:
+ PlaySE(SE_TOY_B);
+ break;
+ case 691:
+ PlaySE(SE_TOY_C1);
+ break;
+ }
+
+ DestroyTask(taskId);
+ }
+ else
+ {
+ gTasks[taskId].data[1]++;
+ }
+}
+
+void DoDecorationSoundEffect(s16 arg)
+{
+ u8 taskId = CreateTask(Task_DecorationSoundEffect, 5);
+ gTasks[taskId].data[0] = arg;
+ gTasks[taskId].data[1] = 0;
+}
+
+void SpriteCB_YellowCave4Sparkle(struct Sprite *sprite)
+{
+ sprite->data[0]++;
+ if (sprite->data[0] == 8)
+ PlaySE(SE_W215);
+ if (sprite->data[0] >= 32)
+ DestroySprite(sprite);
+}
+
+void DoYellowCave4Sparkle(void)
+{
+ s16 x = gMapObjects[gPlayerAvatar.mapObjectId].coords2.x;
+ s16 y = gMapObjects[gPlayerAvatar.mapObjectId].coords2.y;
+ u8 spriteId;
+
+ sub_8060470(&x, &y, 8, 4);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[22], x, y, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].coordOffsetEnabled = TRUE;
+ gSprites[spriteId].oam.priority = 1;
+ gSprites[spriteId].oam.paletteNum = 5;
+ gSprites[spriteId].callback = SpriteCB_YellowCave4Sparkle;
+ gSprites[spriteId].data[0] = 0;
+ }
+}
+
+bool8 FldEff_SandPillar(void)
+{
+ s16 x, y;
+
+ ScriptContext2_Enable();
+ GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
+ gFieldEffectArguments[5] = x;
+ gFieldEffectArguments[6] = y;
+
+ switch (player_get_direction_lower_nybble())
+ {
+ case DIR_SOUTH:
+ CreateSprite(
+ &gSpriteTemplate_83D26A0,
+ gSprites[gPlayerAvatar.spriteId].oam.x + 8,
+ gSprites[gPlayerAvatar.spriteId].oam.y + 32,
+ 0);
+ break;
+ case DIR_NORTH:
+ CreateSprite(
+ &gSpriteTemplate_83D26A0,
+ gSprites[gPlayerAvatar.spriteId].oam.x + 8,
+ gSprites[gPlayerAvatar.spriteId].oam.y,
+ 148);
+ break;
+ case DIR_WEST:
+ CreateSprite(
+ &gSpriteTemplate_83D26A0,
+ gSprites[gPlayerAvatar.spriteId].oam.x - 8,
+ gSprites[gPlayerAvatar.spriteId].oam.y + 16,
+ 148);
+ break;
+ case DIR_EAST:
+ CreateSprite(
+ &gSpriteTemplate_83D26A0,
+ gSprites[gPlayerAvatar.spriteId].oam.x + 24,
+ gSprites[gPlayerAvatar.spriteId].oam.y + 16,
+ 148);
+ break;
+ }
+
+ return FALSE;
+}
+
+void SpriteCB_SandPillar_0(struct Sprite *sprite)
+{
+ PlaySE(SE_W088);
+ if (MapGridGetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1) == 646)
+ MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, 3586);
+ else
+ MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, 644);
+ MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], 522);
+ CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1);
+ CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]);
+ sprite->data[0] = 0;
+ sprite->callback = SpriteCB_SandPillar_1;
+}
+
+void SpriteCB_SandPillar_1(struct Sprite *sprite)
+{
+ if (sprite->data[0] < 18)
+ {
+ sprite->data[0]++;
+ }
+ else
+ {
+ MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], 3724);
+ CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]);
+ sprite->data[0] = 0;
+ sprite->callback = SpriteCB_SandPillar_2;
+ }
+}
+
+void SpriteCB_SandPillar_2(struct Sprite *sprite)
+{
+ FieldEffectStop(sprite, FLDEFF_SAND_PILLAR);
+ EnableBothScriptContexts();
+}
+
+void GetShieldToyTVDecorationInfo(void)
+{
+ s16 x, y;
+ s32 metatileId;
+
+ GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
+
+ metatileId = MapGridGetMetatileIdAt(x, y);
+
+ switch (metatileId)
+ {
+ case 822:
+ ConvertIntToDecimalStringN(gStringVar1, 100, STR_CONV_MODE_LEFT_ALIGN, 3);
+ StringCopy(gStringVar2, gSecretBaseText_GoldRank);
+ gSpecialVar_Result = 0;
+ break;
+ case 734:
+ ConvertIntToDecimalStringN(gStringVar1, 50, STR_CONV_MODE_LEFT_ALIGN, 2);
+ StringCopy(gStringVar2, gSecretBaseText_SilverRank);
+ gSpecialVar_Result = 0;
+ break;
+ case 756:
+ gSpecialVar_Result = 1;
+ break;
+ case 757:
+ gSpecialVar_Result = 2;
+ break;
+ case 758:
+ gSpecialVar_Result = 3;
+ break;
+ }
+}
diff --git a/src/field/fldeff_flash.c b/src/field/fldeff_flash.c
index 1ee8a8f05..22f170184 100644
--- a/src/field/fldeff_flash.c
+++ b/src/field/fldeff_flash.c
@@ -7,7 +7,7 @@
#include "overworld.h"
#include "rom6.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "task.h"
@@ -21,14 +21,6 @@ struct FlashStruct
void (*func)(void);
};
-extern struct FlashStruct gUnknown_083F7FC4[];
-extern u16 gCaveTransitionPalette_White[];
-extern u16 gCaveTransitionPalette_Black[];
-extern u16 gUnknown_083F808C[];
-extern u16 gUnknown_083F809C[];
-extern u16 gCaveTransitionTilemap[];
-extern u8 gCaveTransitionTiles[];
-
extern u8 gLastFieldPokeMenuOpened;
extern void (*gUnknown_03005CE4)(void);
@@ -46,10 +38,42 @@ void sub_810D00C(u8);
void sub_810D028(u8);
void sub_810D0C4(u8);
void sub_810D128(u8);
+void sub_810CFF8(void);
+void sub_810CE48(void);
+
+static const struct FlashStruct gUnknown_083F7FC4[] =
+{
+ {1, 4, 1, 0, sub_810CFF8},
+ {2, 4, 1, 0, sub_810CFF8},
+ {3, 4, 1, 0, sub_810CFF8},
+ {5, 4, 1, 0, sub_810CFF8},
+ {6, 4, 1, 0, sub_810CFF8},
+ {7, 4, 1, 0, sub_810CFF8},
+ {8, 4, 1, 0, sub_810CFF8},
+ {9, 4, 1, 0, sub_810CFF8},
+ {4, 1, 0, 1, sub_810CE48},
+ {4, 2, 0, 1, sub_810CE48},
+ {4, 3, 0, 1, sub_810CE48},
+ {4, 5, 0, 1, sub_810CE48},
+ {4, 6, 0, 1, sub_810CE48},
+ {4, 7, 0, 1, sub_810CE48},
+ {4, 8, 0, 1, sub_810CE48},
+ {4, 9, 0, 1, sub_810CE48},
+ {0, 0, 0, 0, NULL},
+};
+
+// TODO: Make these extracted palettes?
+static const u16 gCaveTransitionPalette_White[] = {0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF};
+static const u16 gCaveTransitionPalette_Black[] = {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000};
+
+static const u16 gUnknown_083F808C[] = INCBIN_U16("graphics/misc/83F808C.gbapal");
+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");
bool8 SetUpFieldMove_Flash(void)
{
- if (gMapHeader.cave == TRUE && !FlagGet(SYS_USE_FLASH))
+ if (gMapHeader.cave == TRUE && !FlagGet(FLAG_SYS_USE_FLASH))
{
gFieldCallback = FieldCallback_Teleport;
gUnknown_03005CE4 = sub_810CBFC;
@@ -70,7 +94,7 @@ void sub_810CBFC(void)
void sub_810CC34(void)
{
PlaySE(SE_W115);
- FlagSet(SYS_USE_FLASH);
+ FlagSet(FLAG_SYS_USE_FLASH);
ScriptContext1_SetupScript(gUnknown_081B694A);
}
diff --git a/src/field/fldeff_poison.c b/src/field/fldeff_poison.c
new file mode 100644
index 000000000..b0052d59d
--- /dev/null
+++ b/src/field/fldeff_poison.c
@@ -0,0 +1,44 @@
+#include "global.h"
+#include "fldeff_poison.h"
+#include "task.h"
+#include "constants/songs.h"
+#include "sound.h"
+
+static void Task_FieldPoisonEffect(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (data[0])
+ {
+ case 0:
+ data[1] += 2;
+ if (data[1] > 8)
+ {
+ data[0]++;
+ }
+ break;
+ case 1:
+ data[1] -= 2;
+ if (data[1] == 0)
+ {
+ data[0]++;
+ }
+ break;
+ case 2:
+ DestroyTask(taskId);
+ return;
+ }
+
+ REG_MOSAIC = (data[1] << 4) | data[1];
+}
+
+void DoFieldPoisonEffect(void)
+{
+ PlaySE(SE_DOKU);
+ CreateTask(Task_FieldPoisonEffect, 80);
+}
+
+bool32 FieldPoisonEffectIsRunning(void)
+{
+ return FuncIsActiveTask(Task_FieldPoisonEffect);
+}
diff --git a/src/field/fldeff_recordmixing.c b/src/field/fldeff_recordmixing.c
new file mode 100644
index 000000000..ec72885b5
--- /dev/null
+++ b/src/field/fldeff_recordmixing.c
@@ -0,0 +1,83 @@
+#include "global.h"
+#include "field_map_obj.h"
+#include "fldeff_recordmixing.h"
+#include "sprite.h"
+
+extern const struct OamData gFieldOamData_32x8;
+
+static const u8 sSpriteImage_83D26C0[] = INCBIN_U8("graphics/unknown_sprites/83D2860/0.4bpp");
+static const u8 sSpriteImage_83D2740[] = INCBIN_U8("graphics/unknown_sprites/83D2860/1.4bpp");
+static const u8 sSpriteImage_83D27C0[] = INCBIN_U8("graphics/unknown_sprites/83D2860/2.4bpp");
+static const u16 sPalette_3D2840[] = INCBIN_U16("graphics/unknown/unknown_3D2840.gbapal");
+
+
+static const struct SpriteFrameImage sSpriteImageTable_83FD950[] =
+{
+ { sSpriteImage_83D26C0, sizeof(sSpriteImage_83D26C0) },
+ { sSpriteImage_83D2740, sizeof(sSpriteImage_83D2740) },
+ { sSpriteImage_83D27C0, sizeof(sSpriteImage_83D27C0) },
+};
+
+static const struct SpritePalette sUnknown_083D2878 = { sPalette_3D2840, 0x1000 };
+
+static const union AnimCmd sSpriteAnim_83D2880[] =
+{
+ ANIMCMD_FRAME(0, 30),
+ ANIMCMD_FRAME(1, 30),
+ ANIMCMD_FRAME(2, 30),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd *const sSpriteAnimTable_83D2890[] =
+{
+ sSpriteAnim_83D2880,
+};
+
+static const struct SpriteTemplate sSpriteTemplate_83D2894 =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 0x1000,
+ .oam = &gFieldOamData_32x8,
+ .anims = sSpriteAnimTable_83D2890,
+ .images = sSpriteImageTable_83FD950,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+u8 CreateRecordMixingSprite(void)
+{
+ u8 spriteId;
+
+ LoadSpritePalette(&sUnknown_083D2878);
+
+ spriteId = CreateSprite(&sSpriteTemplate_83D2894, 0, 0, 82);
+
+ if (spriteId == MAX_SPRITES)
+ {
+ return MAX_SPRITES;
+ }
+ else
+ {
+ struct Sprite *sprite = &gSprites[spriteId];
+ sub_8060388(16, 13, &sprite->pos1.x, &sprite->pos1.y);
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->pos1.x += 16;
+ sprite->pos1.y += 2;
+ }
+
+ return spriteId;
+}
+
+void DestroyRecordMixingSprite(void)
+{
+ int i;
+
+ for (i = 0; i < MAX_SPRITES; i++)
+ {
+ if (gSprites[i].template == &sSpriteTemplate_83D2894)
+ {
+ FreeSpritePalette(&gSprites[i]);
+ DestroySprite(&gSprites[i]);
+ }
+ }
+}
diff --git a/src/field/fldeff_secret_base_pc.c b/src/field/fldeff_secret_base_pc.c
new file mode 100644
index 000000000..8d71a4fb9
--- /dev/null
+++ b/src/field/fldeff_secret_base_pc.c
@@ -0,0 +1,69 @@
+#include "global.h"
+#include "event_data.h"
+#include "field_camera.h"
+#include "field_effect.h"
+#include "field_player_avatar.h"
+#include "fieldmap.h"
+#include "script.h"
+#include "constants/songs.h"
+#include "sound.h"
+#include "task.h"
+
+static void Task_SecretBasePCTurnOn(u8);
+
+u32 FldEff_SecretBasePCTurnOn(void)
+{
+ s16 x, y;
+ u8 taskId;
+
+ GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
+ taskId = CreateTask(Task_SecretBasePCTurnOn, 0);
+ gTasks[taskId].data[0] = x;
+ gTasks[taskId].data[1] = y;
+ gTasks[taskId].data[2] = 0;
+
+ return 0;
+}
+
+static void Task_SecretBasePCTurnOn(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (data[2])
+ {
+ case 4:
+ case 12:
+ MapGridSetMetatileIdAt(data[0], data[1], 548);
+ CurrentMapDrawMetatileAt(data[0], data[1]);
+ break;
+ case 8:
+ case 16:
+ MapGridSetMetatileIdAt(data[0], data[1], 544);
+ CurrentMapDrawMetatileAt(data[0], data[1]);
+ break;
+ case 20:
+ MapGridSetMetatileIdAt(data[0], data[1], 548);
+ CurrentMapDrawMetatileAt(data[0], data[1]);
+ FieldEffectActiveListRemove(FLDEFF_SECRET_BASE_PC_TURN_ON);
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ return;
+ }
+
+ data[2]++;
+}
+
+void DoSecretBasePCTurnOffEffect(void)
+{
+ s16 x, y;
+
+ GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
+ PlaySE(SE_PC_OFF);
+
+ if (!VarGet(VAR_0x4054))
+ MapGridSetMetatileIdAt(x, y, 3616);
+ else
+ MapGridSetMetatileIdAt(x, y, 3617);
+
+ CurrentMapDrawMetatileAt(x, y);
+}
diff --git a/src/field/fldeff_secretpower.c b/src/field/fldeff_secretpower.c
new file mode 100644
index 000000000..bf8e98403
--- /dev/null
+++ b/src/field/fldeff_secretpower.c
@@ -0,0 +1,484 @@
+#include "global.h"
+#include "event_data.h"
+#include "fieldmap.h"
+#include "field_effect.h"
+#include "field_player_avatar.h"
+#include "metatile_behavior.h"
+#include "metatile_behaviors.h"
+#include "overworld.h"
+#include "pokemon_menu.h"
+#include "rom6.h"
+#include "script.h"
+#include "secret_base.h"
+#include "constants/songs.h"
+#include "sound.h"
+
+extern u8 gUnknown_081A2CE6[];
+extern u8 gUnknown_081A2D3E[];
+extern u8 gUnknown_081A2D96[];
+
+const u8 gSpriteImage_83D198C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/0.4bpp");
+const u8 gSpriteImage_83D1A0C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/1.4bpp");
+const u8 gSpriteImage_83D1A8C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/2.4bpp");
+const u8 gSpriteImage_83D1B0C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/3.4bpp");
+const u8 gSpriteImage_83D1B8C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/4.4bpp");
+const u8 gUnusedEmptySpace_83D1C0C[32] = {0};
+const u16 gFieldEffectObjectPalette7[] = INCBIN_U16("graphics/field_effect_objects/palettes/07.gbapal");
+const u8 gSpriteImage_83D1C4C[] = INCBIN_U8("graphics/unknown_sprites/83D25EC/0.4bpp");
+const u8 gSpriteImage_83D1CCC[] = INCBIN_U8("graphics/unknown_sprites/83D25EC/1.4bpp");
+const u8 gSpriteImage_83D1D4C[] = INCBIN_U8("graphics/unknown_sprites/83D25EC/2.4bpp");
+const u8 gSpriteImage_83D1DCC[] = INCBIN_U8("graphics/unknown_sprites/83D25EC/3.4bpp");
+const u8 gSpriteImage_83D1E4C[] = INCBIN_U8("graphics/unknown_sprites/83D25EC/4.4bpp");
+const u8 gSpriteImage_83D1ECC[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/0.4bpp");
+const u8 gSpriteImage_83D1F4C[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/1.4bpp");
+const u8 gSpriteImage_83D1FCC[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/2.4bpp");
+const u8 gSpriteImage_83D204C[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/3.4bpp");
+const u8 gSpriteImage_83D20CC[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/4.4bpp");
+const u8 gSpriteImage_83D214C[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/5.4bpp"); // unused
+const u16 gFieldEffectObjectPalette8[] = INCBIN_U16("graphics/field_effect_objects/palettes/08.gbapal");
+const u8 gSpriteImage_83D21EC[] = INCBIN_U8("graphics/unknown_sprites/83D2688/0.4bpp");
+const u8 gSpriteImage_83D22EC[] = INCBIN_U8("graphics/unknown_sprites/83D2688/1.4bpp");
+const u8 gSpriteImage_83D23EC[] = INCBIN_U8("graphics/unknown_sprites/83D2688/2.4bpp");
+
+const struct OamData gOamData_83D24EC =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83D24F4[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D250C[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D2524[] =
+{
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D253C[] =
+{
+ ANIMCMD_FRAME(0, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(1, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(3, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(4, 8, .hFlip = TRUE),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D2554[] =
+{
+ ANIMCMD_FRAME(4, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(3, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(1, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(0, 8, .hFlip = TRUE),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D256C[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83D2584[] =
+{
+ gSpriteAnim_83D24F4,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83D2588[] =
+{
+ gSpriteAnim_83D250C,
+ gSpriteAnim_83D2524,
+ gSpriteAnim_83D253C,
+ gSpriteAnim_83D2554,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83D2598[] =
+{
+ gSpriteAnim_83D256C,
+};
+
+const struct SpriteFrameImage gSpriteImageTable_83D259C[] =
+{
+ {gSpriteImage_83D198C, 0x80},
+ {gSpriteImage_83D1A0C, 0x80},
+ {gSpriteImage_83D1A8C, 0x80},
+ {gSpriteImage_83D1B0C, 0x80},
+ {gSpriteImage_83D1B8C, 0x80},
+};
+
+const struct SpriteFrameImage gSpriteImageTable_83D25C4[] =
+{
+ {gSpriteImage_83D1ECC, 0x80},
+ {gSpriteImage_83D1F4C, 0x80},
+ {gSpriteImage_83D1FCC, 0x80},
+ {gSpriteImage_83D204C, 0x80},
+ {gSpriteImage_83D20CC, 0x80},
+};
+
+const struct SpriteFrameImage gSpriteImageTable_83D25EC[] =
+{
+ {gSpriteImage_83D1C4C, 0x80},
+ {gSpriteImage_83D1CCC, 0x80},
+ {gSpriteImage_83D1D4C, 0x80},
+ {gSpriteImage_83D1DCC, 0x80},
+ {gSpriteImage_83D1E4C, 0x80},
+};
+
+void sub_80C644C(struct Sprite *);
+const struct SpriteTemplate gSpriteTemplate_83D2614 =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 4099,
+ .oam = &gOamData_83D24EC,
+ .anims = gSpriteAnimTable_83D2584,
+ .images = gSpriteImageTable_83D259C,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80C644C,
+};
+
+void sub_80C6598(struct Sprite *);
+const struct SpriteTemplate gSpriteTemplate_83D262C =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 4104,
+ .oam = &gOamData_83D24EC,
+ .anims = gSpriteAnimTable_83D2588,
+ .images = gSpriteImageTable_83D25C4,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80C6598,
+};
+
+void sub_80C66BC(struct Sprite *);
+const struct SpriteTemplate gSpriteTemplate_83D2644 =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 4104,
+ .oam = &gOamData_83D24EC,
+ .anims = gSpriteAnimTable_83D2598,
+ .images = gSpriteImageTable_83D25EC,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80C66BC,
+};
+
+const struct SpritePalette gFieldEffectObjectPaletteInfo7 = {gFieldEffectObjectPalette7, 0x1003};
+const struct SpritePalette gFieldEffectObjectPaletteInfo8 = {gFieldEffectObjectPalette8, 0x1008};
+
+void sub_80C639C(void);
+void sub_80C63E8(void);
+void sub_80C6468(struct Sprite *);
+void sub_80C6498(struct Sprite *);
+void sub_80C64A8(void);
+void sub_80C64F4(void);
+void sub_80C65C4(struct Sprite *);
+void sub_80C65FC(struct Sprite *);
+void sub_80C660C(void);
+void sub_80C6658(void);
+void sub_80C66D8(struct Sprite *sprite);
+void sub_80C6708(struct Sprite *sprite);
+
+void sub_80C6264(void)
+{
+ sub_80BBFD8(&gUnknown_0203923C, gMapHeader.events);
+ sub_80BB5E4();
+}
+
+void sub_80C6280(void)
+{
+ switch (gFieldEffectArguments[1])
+ {
+ case 1:
+ gFieldEffectArguments[5] = 8;
+ gFieldEffectArguments[6] = 40;
+ break;
+ case 2:
+ gFieldEffectArguments[5] = 8;
+ gFieldEffectArguments[6] = 8;
+ break;
+ case 3:
+ gFieldEffectArguments[5] = -8;
+ gFieldEffectArguments[6] = 24;
+ break;
+ case 4:
+ gFieldEffectArguments[5] = 24;
+ gFieldEffectArguments[6] = 24;
+ break;
+ }
+}
+
+bool8 SetUpFieldMove_SecretPower(void)
+{
+ u8 behavior;
+
+ sub_80BB63C();
+
+ if (gSpecialVar_Result == 1 || player_get_direction_lower_nybble() != DIR_NORTH)
+ return FALSE;
+
+ GetXYCoordsOneStepInFrontOfPlayer(&gUnknown_0203923C.x, &gUnknown_0203923C.y);
+ behavior = MapGridGetMetatileBehaviorAt(gUnknown_0203923C.x, gUnknown_0203923C.y);
+
+ if (MetatileBehavior_IsSecretBaseCave(behavior) == TRUE)
+ {
+ sub_80C6264();
+ gFieldCallback = FieldCallback_Teleport;
+ gUnknown_03005CE4 = sub_80C639C;
+ return TRUE;
+ }
+
+ if (MetatileBehavior_IsSecretBaseTree(behavior) == TRUE)
+ {
+ sub_80C6264();
+ gFieldCallback = FieldCallback_Teleport;
+ gUnknown_03005CE4 = sub_80C64A8;
+ return TRUE;
+ }
+
+ if (MetatileBehavior_IsSecretBaseShrub(behavior) == TRUE)
+ {
+ sub_80C6264();
+ gFieldCallback = FieldCallback_Teleport;
+ gUnknown_03005CE4 = sub_80C660C;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void sub_80C639C(void)
+{
+ gFieldEffectArguments[0] = gLastFieldPokeMenuOpened;
+ ScriptContext1_SetupScript(gUnknown_081A2CE6);
+}
+
+bool8 FldEff_UseSecretPowerCave(void)
+{
+ u8 taskId = oei_task_add();
+
+ gTasks[taskId].data[8] = (uintptr_t)sub_80C63E8 >> 16;
+ gTasks[taskId].data[9] = (uintptr_t)sub_80C63E8;
+
+ return FALSE;
+}
+
+void sub_80C63E8(void)
+{
+ FieldEffectActiveListRemove(FLDEFF_USE_SECRET_POWER_CAVE);
+ FieldEffectStart(FLDEFF_SECRET_POWER_CAVE);
+}
+
+bool8 FldEff_SecretPowerCave(void)
+{
+ sub_80C6280();
+ CreateSprite(
+ &gSpriteTemplate_83D2614,
+ gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5],
+ gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6],
+ 148);
+ return FALSE;
+}
+
+void sub_80C644C(struct Sprite *sprite)
+{
+ PlaySE(SE_W088);
+ sprite->data[0] = 0;
+ sprite->callback = sub_80C6468;
+}
+
+void sub_80C6468(struct Sprite *sprite)
+{
+ if (sprite->data[0] < 40)
+ {
+ sprite->data[0]++;
+ if (sprite->data[0] == 20 )
+ sub_80BB800();
+ }
+ else
+ {
+ sprite->data[0] = 0;
+ sprite->callback = sub_80C6498;
+ }
+}
+
+void sub_80C6498(struct Sprite *sprite)
+{
+ FieldEffectStop(sprite, FLDEFF_SECRET_POWER_CAVE);
+ EnableBothScriptContexts();
+}
+
+void sub_80C64A8(void)
+{
+ gFieldEffectArguments[0] = gLastFieldPokeMenuOpened;
+ ScriptContext1_SetupScript(gUnknown_081A2D3E);
+}
+
+bool8 FldEff_UseSecretPowerTree(void)
+{
+ u8 taskId = oei_task_add();
+
+ gTasks[taskId].data[8] = (uintptr_t)sub_80C64F4 >> 16;
+ gTasks[taskId].data[9] = (uintptr_t)sub_80C64F4;
+
+ return FALSE;
+}
+
+void sub_80C64F4(void)
+{
+ FieldEffectActiveListRemove(FLDEFF_USE_SECRET_POWER_TREE);
+ FieldEffectStart(FLDEFF_SECRET_POWER_TREE);
+}
+
+bool8 FldEff_SecretPowerTree(void)
+{
+ s16 behavior = MapGridGetMetatileBehaviorAt(gUnknown_0203923C.x, gUnknown_0203923C.y) & 0xFFF;
+
+ if (behavior == MB_SECRET_BASE_SPOT_TREE_1)
+ {
+ gFieldEffectArguments[7] = 0;
+ }
+
+ if (behavior == MB_SECRET_BASE_SPOT_TREE_2)
+ {
+ gFieldEffectArguments[7] = 2;
+ }
+
+ sub_80C6280();
+
+ CreateSprite(
+ &gSpriteTemplate_83D262C,
+ gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5],
+ gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6],
+ 148);
+
+ if (gFieldEffectArguments[7] == 1 || gFieldEffectArguments[7] == 3)
+ sub_80BB800();
+
+ return FALSE;
+}
+
+void sub_80C6598(struct Sprite *sprite)
+{
+ PlaySE(SE_W010);
+ sprite->animNum = gFieldEffectArguments[7];
+ sprite->data[0] = 0;
+ sprite->callback = sub_80C65C4;
+}
+
+void sub_80C65C4(struct Sprite *sprite)
+{
+ sprite->data[0]++;
+
+ if (sprite->data[0] >= 40)
+ {
+ if (gFieldEffectArguments[7] == 0 || gFieldEffectArguments[7] == 2)
+ sub_80BB800();
+ sprite->data[0] = 0;
+ sprite->callback = sub_80C65FC;
+ }
+}
+
+
+void sub_80C65FC(struct Sprite *sprite)
+{
+ FieldEffectStop(sprite, FLDEFF_SECRET_POWER_TREE);
+ EnableBothScriptContexts();
+}
+
+void sub_80C660C(void)
+{
+ gFieldEffectArguments[0] = gLastFieldPokeMenuOpened;
+ ScriptContext1_SetupScript(gUnknown_081A2D96);
+}
+
+bool8 FldEff_UseSecretPowerShrub(void)
+{
+ u8 taskId = oei_task_add();
+
+ gTasks[taskId].data[8] = (uintptr_t)sub_80C6658 >> 16;
+ gTasks[taskId].data[9] = (uintptr_t)sub_80C6658;
+
+ return FALSE;
+}
+
+void sub_80C6658(void)
+{
+ FieldEffectActiveListRemove(FLDEFF_USE_SECRET_POWER_SHRUB);
+ FieldEffectStart(FLDEFF_SECRET_POWER_SHRUB);
+}
+
+bool8 FldEff_SecretPowerShrub(void)
+{
+ sub_80C6280();
+ CreateSprite(
+ &gSpriteTemplate_83D2644,
+ gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5],
+ gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6],
+ 148);
+ return FALSE;
+}
+
+void sub_80C66BC(struct Sprite *sprite)
+{
+ PlaySE(SE_W077);
+ sprite->data[0] = 0;
+ sprite->callback = sub_80C66D8;
+}
+
+void sub_80C66D8(struct Sprite *sprite)
+{
+ if (sprite->data[0] < 40)
+ {
+ sprite->data[0]++;
+ if (sprite->data[0] == 20 )
+ sub_80BB800();
+ }
+ else
+ {
+ sprite->data[0] = 0;
+ sprite->callback = sub_80C6708;
+ }
+}
+
+
+void sub_80C6708(struct Sprite *sprite)
+{
+ FieldEffectStop(sprite, FLDEFF_SECRET_POWER_SHRUB);
+ EnableBothScriptContexts();
+}
diff --git a/src/field/fldeff_softboiled.c b/src/field/fldeff_softboiled.c
index 22f9c13f5..a574232a8 100644
--- a/src/field/fldeff_softboiled.c
+++ b/src/field/fldeff_softboiled.c
@@ -4,11 +4,12 @@
#include "party_menu.h"
#include "pokemon.h"
#include "pokemon_menu.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "strings.h"
#include "task.h"
+#include "ewram.h"
struct Struct2001000 {
u8 unk0;
@@ -38,15 +39,9 @@ struct Struct201C000 {
#define WINDOW_RIGHT 29
#endif
-#define EWRAM_1000 (*(struct Struct2001000 *)(unk_2000000 + 0x1000))
-#define EWRAM_1B000_2 (*(struct Struct201B000 *)(unk_2000000 + 0x1B000))
-#define EWRAM_1C000 (*(struct Struct201C000 *)(unk_2000000 + 0x1C000))
-
// extern
extern u8 gUnknown_0202E8F6;
extern u8 gLastFieldPokeMenuOpened;
-
-extern u8 unk_2000000[];
extern u8 gUnknown_0202E8F4;
// Static
@@ -87,8 +82,8 @@ static void sub_8133D50(u8 taskId) {
struct Sprite *sprites = gSprites;
- unk1 = sprites[EWRAM_1000.unk1].data0;
- unk2 = sprites[EWRAM_1000.unk2].data0;
+ unk1 = sprites[EWRAM_1000.unk1].data[0];
+ unk2 = sprites[EWRAM_1000.unk2].data[0];
if (unk1 > 5 || unk2 > 5)
{
@@ -96,7 +91,7 @@ static void sub_8133D50(u8 taskId) {
return;
}
- EWRAM_1C000.unk0 = &gPlayerParty[sprites[EWRAM_1000.unk2].data0];
+ EWRAM_1C000.unk0 = &gPlayerParty[sprites[EWRAM_1000.unk2].data[0]];
hp = GetMonData(EWRAM_1C000.unk0, MON_DATA_HP);
if (hp == 0 || unk1 == unk2 || GetMonData(EWRAM_1C000.unk0, MON_DATA_MAX_HP) == hp)
@@ -107,7 +102,7 @@ static void sub_8133D50(u8 taskId) {
PlaySE(SE_KAIFUKU);
- EWRAM_1C000.unk5 = gSprites[EWRAM_1000.unk1].data0;
+ EWRAM_1C000.unk5 = gSprites[EWRAM_1000.unk1].data[0];
pokemon = &gPlayerParty[EWRAM_1C000.unk5];
EWRAM_1C000.unk0 = pokemon;
diff --git a/src/field/fldeff_strength.c b/src/field/fldeff_strength.c
index d9603d094..565ac1651 100644
--- a/src/field/fldeff_strength.c
+++ b/src/field/fldeff_strength.c
@@ -14,7 +14,7 @@ static void sub_811AA38(void);
static void sub_811AA9C(void);
extern u8 gLastFieldPokeMenuOpened;
-extern u16 gScriptResult;
+extern u16 gSpecialVar_Result;
extern void (*gFieldCallback)(void);
extern void (*gUnknown_03005CE4)(void);
@@ -24,7 +24,7 @@ bool8 SetUpFieldMove_Strength(void)
{
if (ShouldDoBrailleStrengthEffect())
{
- gScriptResult = gLastFieldPokeMenuOpened;
+ gSpecialVar_Result = gLastFieldPokeMenuOpened;
gFieldCallback = FieldCallback_Teleport;
gUnknown_03005CE4 = sub_811AA38;
}
@@ -32,7 +32,7 @@ bool8 SetUpFieldMove_Strength(void)
{
if (npc_before_player_of_type(87) != TRUE)
return 0;
- gScriptResult = gLastFieldPokeMenuOpened;
+ gSpecialVar_Result = gLastFieldPokeMenuOpened;
gFieldCallback = FieldCallback_Teleport;
gUnknown_03005CE4 = sub_811AA18;
}
diff --git a/src/field/heal_location.c b/src/field/heal_location.c
index 42bc18567..a10c7a7b8 100644
--- a/src/field/heal_location.c
+++ b/src/field/heal_location.c
@@ -1,33 +1,33 @@
#include "global.h"
#include "heal_location.h"
-#include "map_constants.h"
+#include "constants/maps.h"
#define NUM_HEAL_LOCATIONS 22
static const struct HealLocation sHealLocations[] =
{
- {MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, 4, 2},
- {MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_2F, MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_2F, 4, 2},
- {MAP_GROUP_PETALBURG_CITY, MAP_ID_PETALBURG_CITY, 20, 17},
- {MAP_GROUP_SLATEPORT_CITY, MAP_ID_SLATEPORT_CITY, 19, 20},
- {MAP_GROUP_MAUVILLE_CITY, MAP_ID_MAUVILLE_CITY, 22, 6},
- {MAP_GROUP_RUSTBORO_CITY, MAP_ID_RUSTBORO_CITY, 16, 39},
- {MAP_GROUP_FORTREE_CITY, MAP_ID_FORTREE_CITY, 5, 7},
- {MAP_GROUP_LILYCOVE_CITY, MAP_ID_LILYCOVE_CITY, 24, 15},
- {MAP_GROUP_MOSSDEEP_CITY, MAP_ID_MOSSDEEP_CITY, 28, 17},
- {MAP_GROUP_SOOTOPOLIS_CITY, MAP_ID_SOOTOPOLIS_CITY, 43, 32},
- {MAP_GROUP_EVER_GRANDE_CITY, MAP_ID_EVER_GRANDE_CITY, 27, 49},
- {MAP_GROUP_LITTLEROOT_TOWN, MAP_ID_LITTLEROOT_TOWN, 5, 9},
- {MAP_GROUP_LITTLEROOT_TOWN, MAP_ID_LITTLEROOT_TOWN, 14, 9},
- {MAP_GROUP_OLDALE_TOWN, MAP_ID_OLDALE_TOWN, 6, 17},
- {MAP_GROUP_DEWFORD_TOWN, MAP_ID_DEWFORD_TOWN, 2, 11},
- {MAP_GROUP_LAVARIDGE_TOWN, MAP_ID_LAVARIDGE_TOWN, 9, 7},
- {MAP_GROUP_FALLARBOR_TOWN, MAP_ID_FALLARBOR_TOWN, 14, 8},
- {MAP_GROUP_VERDANTURF_TOWN, MAP_ID_VERDANTURF_TOWN, 16, 4},
- {MAP_GROUP_PACIFIDLOG_TOWN, MAP_ID_PACIFIDLOG_TOWN, 8, 16},
- {MAP_GROUP_EVER_GRANDE_CITY, MAP_ID_EVER_GRANDE_CITY, 18, 6},
- {MAP_GROUP_BATTLE_TOWER_OUTSIDE, MAP_ID_BATTLE_TOWER_OUTSIDE, 14, 9},
- {MAP_GROUP_SOUTHERN_ISLAND_EXTERIOR, MAP_ID_SOUTHERN_ISLAND_EXTERIOR, 15, 20},
+ {MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), 4, 2},
+ {MAP_GROUP(LITTLEROOT_TOWN_MAYS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_2F), 4, 2},
+ {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), 20, 17},
+ {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), 19, 20},
+ {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), 22, 6},
+ {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), 16, 39},
+ {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), 5, 7},
+ {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), 24, 15},
+ {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), 28, 17},
+ {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), 43, 32},
+ {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 27, 49},
+ {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 5, 9},
+ {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 14, 9},
+ {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), 6, 17},
+ {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), 2, 11},
+ {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), 9, 7},
+ {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), 14, 8},
+ {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), 16, 4},
+ {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), 8, 16},
+ {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 18, 6},
+ {MAP_GROUP(BATTLE_TOWER_OUTSIDE), MAP_NUM(BATTLE_TOWER_OUTSIDE), 14, 9},
+ {MAP_GROUP(SOUTHERN_ISLAND_EXTERIOR), MAP_NUM(SOUTHERN_ISLAND_EXTERIOR), 15, 20},
};
u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum)
diff --git a/src/field/item.c b/src/field/item.c
index fd49f5c39..66d7d65df 100644
--- a/src/field/item.c
+++ b/src/field/item.c
@@ -1,7 +1,7 @@
#include "global.h"
-#include "hold_effects.h"
+#include "constants/hold_effects.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "item_use.h"
#include "berry.h"
#include "string_util.h"
diff --git a/src/field/item_menu.c b/src/field/item_menu.c
index c508bcacf..4e283ffe9 100644
--- a/src/field/item_menu.c
+++ b/src/field/item_menu.c
@@ -8,7 +8,7 @@
#include "field_player_avatar.h"
#include "graphics.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "item_menu.h"
#include "item_use.h"
#include "link.h"
@@ -25,7 +25,7 @@
#include "pokemon_menu.h"
#include "overworld.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "strings.h"
@@ -34,9 +34,9 @@
#include "task.h"
#include "text.h"
#include "unknown_task.h"
+#include "ewram.h"
// External stuff
-extern u8 ewram[];
extern void gpu_pal_allocator_reset__manage_upper_four(void);
extern void sub_80F9020(void);
extern void sub_80F9988();
@@ -138,7 +138,7 @@ EWRAM_DATA static s8 sCurrentBagPocket = 0;
EWRAM_DATA static u8 gUnknown_0203855A = 0;
EWRAM_DATA static s8 gUnknown_0203855B = 0;
EWRAM_DATA static s8 gUnknown_0203855C = 0;
-EWRAM_DATA u16 gScriptItemId = 0;
+EWRAM_DATA u16 gSpecialVar_ItemId = 0;
EWRAM_DATA u8 gUnknown_02038560 = 0;
EWRAM_DATA u8 gUnknown_02038561 = 0;
EWRAM_DATA static u8 gUnknown_02038562 = 0;
@@ -158,12 +158,6 @@ extern struct PocketScrollState gBagPocketScrollStates[];
extern struct ItemSlot *gCurrentBagPocketItemSlots; // selected pocket item slots
extern const u8 Event_NoRegisteredItem[];
-#define ewramBerryPic (ewram + 0)
-#define ewramBerryPicTemp (ewram + 0x1000)
-#define ewramSavedItemsPocket ((struct ItemSlot *)(ewram + 0x1E000)) // saved items pocket (for Wally battle)
-#define ewramSavedPokeballsPocket ((struct ItemSlot *)(ewram + 0x1F000)) // saved Pokeballs pocket (for Wally battle)
-#define ewramBagSetupStep (ewram[0x1FFFF])
-
extern const struct CompressedSpriteSheet sMaleBagSpriteSheet;
extern const struct CompressedSpriteSheet sFemaleBagSpriteSheet;
extern const struct CompressedSpritePalette sBagSpritePalette;
@@ -1668,7 +1662,7 @@ static void sub_80A4BF0(u16 *a)
const u8 *text;
if (i == 0)
- text = sub_80A4B90(gScriptItemId);
+ text = sub_80A4B90(gSpecialVar_ItemId);
else
text = sItemPopupMenuActions[sPopupMenuActionList[i]].text;
MenuPrint(text, 1 + (i / 2) * 6, 8 + (i % 2) * 2);
@@ -1855,7 +1849,7 @@ static void sub_80A50C8(u8 taskId)
{
if (r5[10] == 0)
{
- gScriptItemId = 0;
+ gSpecialVar_ItemId = 0;
gUnknown_083C16BC[sReturnLocation].onBagClose(taskId);
}
else
@@ -1870,7 +1864,7 @@ static void sub_80A50C8(u8 taskId)
{
PlaySE(SE_SELECT);
gUnknown_02038560 = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos;
- gScriptItemId = gCurrentBagPocketItemSlots[gUnknown_02038560].itemId;
+ gSpecialVar_ItemId = gCurrentBagPocketItemSlots[gUnknown_02038560].itemId;
gUnknown_083C16BC[sReturnLocation].onItemSelect(taskId);
sub_80F98A4(0);
sub_80F98A4(1);
@@ -1893,7 +1887,7 @@ static void sub_80A50C8(u8 taskId)
{
if (sReturnLocation != RETURN_TO_FIELD_5)
{
- gScriptItemId = 0;
+ gSpecialVar_ItemId = 0;
gUnknown_083C16BC[sReturnLocation].onBagClose(taskId);
}
}
@@ -2533,7 +2527,7 @@ static void sub_80A57C4(void)
gUnknown_02038564 = 1;
r5 = 9;
}
- else if (sub_80F92F4(gScriptItemId) == 0)
+ else if (sub_80F92F4(gSpecialVar_ItemId) == 0)
{
sPopupMenuActionList = gUnknown_083C16AE[4];
gUnknown_02038564 = 1;
@@ -2660,10 +2654,10 @@ void sub_80A5B40(void)
static void HandlePopupMenuAction_UseOnField(u8 taskId)
{
- if (ItemId_GetFieldFunc(gScriptItemId) != NULL)
+ if (ItemId_GetFieldFunc(gSpecialVar_ItemId) != NULL)
{
PlaySE(SE_SELECT);
- if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gScriptItemId) == 1)
+ if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gSpecialVar_ItemId) == 1)
{
sub_80A5BF8(taskId);
}
@@ -2671,7 +2665,7 @@ static void HandlePopupMenuAction_UseOnField(u8 taskId)
{
gTasks[taskId].data[2] = 0;
if (sCurrentBagPocket != BAG_POCKET_BERRIES)
- ItemId_GetFieldFunc(gScriptItemId)(taskId);
+ ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId);
else
sub_80C9C7C(taskId);
}
@@ -2799,7 +2793,7 @@ static void sub_80A5EA0(u8 taskId)
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- sub_80A5DA0(gScriptItemId, gTasks[taskId].data[1]);
+ sub_80A5DA0(gSpecialVar_ItemId, gTasks[taskId].data[1]);
DoYesNoFuncWithChoice(taskId, &gUnknown_083C16F4);
}
else if (gMain.newKeys & B_BUTTON)
@@ -2833,7 +2827,7 @@ static void sub_80A5F80(u8 taskId)
static void HandlePopupMenuAction_Register(u8 taskId)
{
PlaySE(SE_SELECT);
- if (gSaveBlock1.registeredItem == gScriptItemId)
+ if (gSaveBlock1.registeredItem == gSpecialVar_ItemId)
{
// Un-register the registered item
RemoveSelectIconFromRegisteredItem();
@@ -2842,7 +2836,7 @@ static void HandlePopupMenuAction_Register(u8 taskId)
else
{
AddSelectIconToRegisteredItem();
- gSaveBlock1.registeredItem = gScriptItemId;
+ gSaveBlock1.registeredItem = gSpecialVar_ItemId;
}
sub_80A7528(0);
sub_80A41D4(taskId);
@@ -2871,7 +2865,7 @@ static void sub_80A6024(u8 taskId)
static void DisplayCannotBeHeldMessage(u8 taskId)
{
sub_80A73FC();
- CopyItemName(gScriptItemId, gStringVar1);
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gOtherText_CantBeHeld);
sub_80A7590();
DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6024, 1);
@@ -2880,13 +2874,13 @@ static void DisplayCannotBeHeldMessage(u8 taskId)
static void HandlePopupMenuAction_Give(u8 taskId)
{
PlaySE(SE_SELECT);
- if (sub_80F931C(gScriptItemId) == 0)
+ if (sub_80F931C(gSpecialVar_ItemId) == 0)
{
sub_80A73FC();
sub_80A7590();
DisplayCannotUseItemMessage(taskId, gOtherText_CantWriteMail, sub_80A6024, 1);
}
- else if (ItemId_GetImportance(gScriptItemId) == 0)
+ else if (ItemId_GetImportance(gSpecialVar_ItemId) == 0)
{
if (CalculatePlayerPartyCount() == 0)
{
@@ -2937,21 +2931,21 @@ static void OnItemSelect_PkmnList(u8 taskId)
{
u8 r6 = sCurrentBagPocket + 1;
- if (sub_80F931C(gScriptItemId) == 0)
+ if (sub_80F931C(gSpecialVar_ItemId) == 0)
{
sub_80A73FC();
sub_80A7590();
DisplayCannotUseItemMessage(taskId, gOtherText_CantWriteMail, sub_80A6024, 1);
}
- else if (sub_80F92F4(gScriptItemId) == 0)
+ else if (sub_80F92F4(gSpecialVar_ItemId) == 0)
{
sub_80A73FC();
- CopyItemName(gScriptItemId, gStringVar1);
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gOtherText_CantBeHeldHere);
sub_80A7590();
DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6024, 1);
}
- else if (r6 != 5 && ItemId_GetImportance(gScriptItemId) == 0)
+ else if (r6 != 5 && ItemId_GetImportance(gSpecialVar_ItemId) == 0)
{
gTasks[taskId].data[8] = (u32)sub_808A3F8 >> 16;
gTasks[taskId].data[9] = (u32)sub_808A3F8;
@@ -2989,8 +2983,8 @@ static void OnItemSelect_Shop(u8 taskId)
gTasks[taskId].data[10] = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + 1;
sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos);
sub_80A73FC();
- CopyItemName(gScriptItemId, gStringVar2);
- if (ItemId_GetPrice(gScriptItemId) == 0)
+ CopyItemName(gSpecialVar_ItemId, gStringVar2);
+ if (ItemId_GetPrice(gSpecialVar_ItemId) == 0)
{
StringExpandPlaceholders(gStringVar4, gOtherText_CantBuyThat);
DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6444, 1);
@@ -3031,7 +3025,7 @@ static void sub_80A648C(u8 taskId)
sub_80A418C(1, 1, 1, 11, 3);
else
sub_80A418C(1, 1, 1, 11, 2);
- BuyMenuDisplayMessage(gScriptItemId, 1);
+ BuyMenuDisplayMessage(gSpecialVar_ItemId, 1);
sub_80A683C();
}
@@ -3053,7 +3047,7 @@ static void sub_80A6548(u8 taskId)
static void sub_80A6574(u8 taskId)
{
PlaySE(SE_REGI);
- sub_80A6870(gScriptItemId, gTasks[taskId].data[1]);
+ sub_80A6870(gSpecialVar_ItemId, gTasks[taskId].data[1]);
gTasks[taskId].func = sub_80A6548;
}
@@ -3061,7 +3055,7 @@ static void sub_80A65AC(u8 taskId)
{
MenuZeroFillWindowRect(7, 6, 13, 12);
sub_80A36B8(gBGTilemapBuffers[1], 7, 6, 6, 6);
- CopyItemName(gScriptItemId, gStringVar2);
+ CopyItemName(gSpecialVar_ItemId, gStringVar2);
StringExpandPlaceholders(gStringVar4, gOtherText_SoldItem);
DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6574, 1);
sub_80A3D5C(taskId);
@@ -3085,14 +3079,14 @@ static void Task_BuyHowManyDialogueHandleInput(u8 taskId)
if (sub_80A5350(taskId) == TRUE)
{
MenuZeroFillWindowRect(6, 11, 12, 11);
- BuyMenuDisplayMessage(gScriptItemId, gTasks[taskId].data[1]);
+ BuyMenuDisplayMessage(gSpecialVar_ItemId, gTasks[taskId].data[1]);
}
else if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
MenuZeroFillWindowRect(0, 10, 13, 13);
sub_80A36B8(gBGTilemapBuffers[1], 0, 10, 13, 3);
- ConvertIntToDecimalStringN(gStringVar1, ItemId_GetPrice(gScriptItemId) / 2 * gTasks[taskId].data[1], STR_CONV_MODE_LEFT_ALIGN, 6);
+ ConvertIntToDecimalStringN(gStringVar1, ItemId_GetPrice(gSpecialVar_ItemId) / 2 * gTasks[taskId].data[1], STR_CONV_MODE_LEFT_ALIGN, 6);
StringExpandPlaceholders(gStringVar4, gOtherText_CanPay);
DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6650, 1);
}
@@ -3233,7 +3227,7 @@ static void sub_80A6A84(u8 taskId)
s16 *taskData = gTasks[taskId].data;
sub_80A4DA4(gBGTilemapBuffers[1]);
- CopyItemName(gScriptItemId, gStringVar1);
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
ConvertIntToDecimalStringN(gStringVar2, taskData[1], STR_CONV_MODE_LEFT_ALIGN, 3);
MenuZeroFillWindowRect(7, 6, 11, 13);
sub_80A7528(7);
@@ -3256,14 +3250,14 @@ static void sub_80A6B64(u8 taskId)
{
s16 *taskData = gTasks[taskId].data;
- if (ItemId_GetImportance(gScriptItemId) == 2)
+ if (ItemId_GetImportance(gSpecialVar_ItemId) == 2)
{
gTasks[taskId].func = sub_80A6B00;
sub_80A7528(9);
}
else
{
- if (AddPCItem(gScriptItemId, taskData[1]) == TRUE)
+ if (AddPCItem(gSpecialVar_ItemId, taskData[1]) == TRUE)
{
sub_80A6A84(taskId);
}
@@ -3331,7 +3325,7 @@ bool32 sub_80A6D1C(void)
FreezeMapObjects();
sub_80594C0();
sub_80597F4();
- gScriptItemId = gSaveBlock1.registeredItem;
+ gSpecialVar_ItemId = gSaveBlock1.registeredItem;
taskId = CreateTask(ItemId_GetFieldFunc(gSaveBlock1.registeredItem), 8);
gTasks[taskId].data[2] = 1;
return TRUE;
@@ -3421,7 +3415,7 @@ static const u8 gUnknown_083C170A[] = {5, 0};
static void sub_80A6FDC(void)
{
- if (ItemId_GetBattleUsage(gScriptItemId) != 0)
+ if (ItemId_GetBattleUsage(gSpecialVar_ItemId) != 0)
{
sPopupMenuActionList = gUnknown_083C1708;
gUnknown_02038564 = 2;
@@ -3460,10 +3454,10 @@ static void OnBagClose_Battle(u8 taskId)
static void HandlePopupMenuAction_UseInBattle(u8 taskId)
{
- if (ItemId_GetBattleFunc(gScriptItemId) != NULL)
+ if (ItemId_GetBattleFunc(gSpecialVar_ItemId) != NULL)
{
PlaySE(SE_SELECT);
- ItemId_GetBattleFunc(gScriptItemId)(taskId);
+ ItemId_GetBattleFunc(gSpecialVar_ItemId)(taskId);
}
}
@@ -3531,7 +3525,7 @@ static void sub_80A7230(u8 taskId)
PlaySE(SE_SELECT);
sub_80F98A4(2);
sub_80F98A4(3);
- gScriptItemId = ITEM_POKE_BALL;
+ gSpecialVar_ItemId = ITEM_POKE_BALL;
sPopupMenuActionList = gUnknown_083C1708;
gUnknown_02038564 = 2;
gTasks[taskId].data[10] = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + 1;
@@ -3830,7 +3824,7 @@ static void sub_80A7768(void)
int var;
if (r4->unk1 == 1)
- text = sub_80A4B90(gScriptItemId);
+ text = sub_80A4B90(gSpecialVar_ItemId);
else
text = sItemPopupMenuActions[sPopupMenuActionList[r4->unk1 - 1]].text;
var = r4->unk1 - 1;
@@ -4086,11 +4080,11 @@ static const struct CompressedSpritePalette sBagSpritePalette = {gBagPalette, 30
static void sub_80A7998(struct Sprite *sprite)
{
sprite->animNum = 0;
- sprite->data0 = 0;
- sprite->data1 = 0;
- sprite->data2 = 0;
- sprite->data3 = 0;
- sprite->data4 = 0;
+ sprite->data[0] = 0;
+ sprite->data[1] = 0;
+ sprite->data[2] = 0;
+ sprite->data[3] = 0;
+ sprite->data[4] = 0;
sprite->callback = sub_80A79B4;
}
@@ -4104,7 +4098,7 @@ static void sub_80A79B4(struct Sprite *sprite)
static void sub_80A79EC(struct Sprite *sprite)
{
- switch (sprite->data3)
+ switch (sprite->data[3])
{
case 0:
if (gUnknown_0203855B != 6)
@@ -4118,26 +4112,26 @@ static void sub_80A79EC(struct Sprite *sprite)
sprite->animBeginning = TRUE;
sprite->animNum = 0;
sprite->pos1.y -= 4;
- sprite->data0 = 4;
- sprite->data3 = 1;
+ sprite->data[0] = 4;
+ sprite->data[3] = 1;
sub_80A7AE4(sprite);
}
break;
case 1:
- if (sprite->data0 != 0)
+ if (sprite->data[0] != 0)
{
- if (sprite->data1 != 0)
+ if (sprite->data[1] != 0)
{
sprite->pos1.y++;
- sprite->data0--;
+ sprite->data[0]--;
}
- sprite->data1 = (sprite->data1 + 1) & 1;
+ sprite->data[1] = (sprite->data[1] + 1) & 1;
}
else
{
gUnknown_0203855B = -1;
- sprite->data1 = 0;
- sprite->data3 = 0;
+ sprite->data[1] = 0;
+ sprite->data[3] = 0;
}
break;
}
@@ -4145,17 +4139,17 @@ static void sub_80A79EC(struct Sprite *sprite)
static void sub_80A7A94(struct Sprite *sprite)
{
- switch (sprite->data4)
+ switch (sprite->data[4])
{
case 0:
sprite->oam.affineMode = 1;
sprite->affineAnims = sBagSpriteAffineAnimTable;
InitSpriteAffineAnim(sprite);
- sprite->data4 = 1;
+ sprite->data[4] = 1;
break;
case 1:
- sprite->data2++;
- if (sprite->data2 == 12)
+ sprite->data[2]++;
+ if (sprite->data[2] == 12)
sub_80A7AE4(sprite);
break;
}
@@ -4165,8 +4159,8 @@ static void sub_80A7AE4(struct Sprite *sprite)
{
gUnknown_0203855C = 0;
sprite->oam.affineMode = 0;
- sprite->data2 = 0;
- sprite->data4 = 0;
+ sprite->data[2] = 0;
+ sprite->data[4] = 0;
FreeOamMatrix(sprite->oam.matrixNum);
}
@@ -4234,45 +4228,45 @@ static const struct SpritePalette sPokeballSpritePalette = {gPalette_83C170C, 8}
static void sub_80A7B28(struct Sprite *sprite)
{
- sprite->data3 = 0;
- sprite->data0 = 0;
+ sprite->data[3] = 0;
+ sprite->data[0] = 0;
sub_80A7B6C(sprite);
sprite->callback = sub_80A7B6C;
}
static void sub_80A7B48(struct Sprite *sprite)
{
- sprite->centerToCornerVecX = sprite->data5 - ((sprite->data0 + 1) & 1);
- sprite->centerToCornerVecY = sprite->data6 - ((sprite->data0 + 1) & 1);
+ sprite->centerToCornerVecX = sprite->data[5] - ((sprite->data[0] + 1) & 1);
+ sprite->centerToCornerVecY = sprite->data[6] - ((sprite->data[0] + 1) & 1);
}
static void sub_80A7B6C(struct Sprite *sprite)
{
- if (sprite->data7 != 0)
+ if (sprite->data[7] != 0)
{
- switch (sprite->data3)
+ switch (sprite->data[3])
{
case 0:
sprite->oam.affineMode = 1;
- if (sprite->data7 == 1)
+ if (sprite->data[7] == 1)
sprite->affineAnims = gSpriteAffineAnimTable_83C1D20;
else
sprite->affineAnims = gSpriteAffineAnimTable_83C1D20 + 1;
InitSpriteAffineAnim(sprite);
- sprite->data3 = 1;
- sprite->data5 = sprite->centerToCornerVecX;
- sprite->data6 = sprite->centerToCornerVecY;
+ sprite->data[3] = 1;
+ sprite->data[5] = sprite->centerToCornerVecX;
+ sprite->data[6] = sprite->centerToCornerVecY;
sub_80A7B48(sprite);
break;
case 1:
- sprite->data0++;
+ sprite->data[0]++;
sub_80A7B48(sprite);
- if (sprite->data0 == 32)
+ if (sprite->data[0] == 32)
{
- sprite->data0 = 0;
- sprite->data3 = 0;
- sprite->centerToCornerVecX = sprite->data5;
- sprite->centerToCornerVecY = sprite->data6;
+ sprite->data[0] = 0;
+ sprite->data[3] = 0;
+ sprite->centerToCornerVecX = sprite->data[5];
+ sprite->centerToCornerVecY = sprite->data[6];
FreeOamMatrix(sprite->oam.matrixNum);
sprite->oam.affineMode = 0;
sprite->callback = SpriteCallbackDummy;
@@ -4297,7 +4291,7 @@ static void CreateBagPokeballSprite(u8 a)
{
LoadSpritePalette(&sPokeballSpritePalette);
sPokeballSpriteId = CreateSprite(&sPokeballSpriteTemplate, 16, 88, 0);
- gSprites[sPokeballSpriteId].data7 = a;
+ gSprites[sPokeballSpriteId].data[7] = a;
}
static void sub_80A7C64(void)
diff --git a/src/field/item_use.c b/src/field/item_use.c
index 68da27fdb..37cd8ba78 100644
--- a/src/field/item_use.c
+++ b/src/field/item_use.c
@@ -14,7 +14,7 @@
#include "fieldmap.h"
#include "item.h"
#include "item_menu.h"
-#include "items.h"
+#include "constants/items.h"
#include "mail.h"
#include "main.h"
#include "map_obj_lock.h"
@@ -29,12 +29,12 @@
#include "overworld.h"
#include "rom_8094928.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "string_util.h"
#include "strings.h"
#include "task.h"
-#include "vars.h"
+#include "constants/vars.h"
extern void (*gFieldItemUseCallback)(u8);
extern void (*gFieldCallback)(void);
@@ -80,10 +80,10 @@ void ExecuteSwitchToOverworldFromItemUse(u8 taskId)
{
u8 taskData;
- if (gScriptItemId == 0xAF)
+ if (gSpecialVar_ItemId == 0xAF)
taskData = gTasks[taskId].data[15] - 1;
else
- taskData = ItemId_GetType(gScriptItemId) - 1;
+ taskData = ItemId_GetType(gSpecialVar_ItemId) - 1;
gTasks[taskId].data[8] = (u32)gExitToOverworldFuncList[taskData] >> 16;
gTasks[taskId].data[9] = (u32)gExitToOverworldFuncList[taskData];
@@ -157,7 +157,7 @@ void ItemMenu_ReadMail(u8 taskId)
if (!gPaletteFade.active)
{
- mailStruct.itemId = gScriptItemId;
+ mailStruct.itemId = gSpecialVar_ItemId;
HandleReadMail(&mailStruct, sub_80A5D04, 0);
DestroyTask(taskId);
}
@@ -177,7 +177,7 @@ void ItemUseOutOfBattle_Bike(u8 taskId)
PlayerGetDestCoords(&x, &y);
tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
- if (FlagGet(SYS_CYCLING_ROAD) == TRUE // on cycling road?
+ if (FlagGet(FLAG_SYS_CYCLING_ROAD) == TRUE // on cycling road?
|| MetatileBehavior_IsVerticalRail(tileBehavior) == TRUE
|| MetatileBehavior_IsHorizontalRail(tileBehavior) == TRUE
|| MetatileBehavior_IsIsolatedVerticalRail(tileBehavior) == TRUE
@@ -199,9 +199,9 @@ void ItemUseOutOfBattle_Bike(u8 taskId)
void ItemUseOnFieldCB_Bike(u8 taskId)
{
- if (ItemId_GetSecondaryId(gScriptItemId) == 0)
+ if (ItemId_GetSecondaryId(gSpecialVar_ItemId) == 0)
GetOnOffBike(2);
- if (ItemId_GetSecondaryId(gScriptItemId) == 1)
+ if (ItemId_GetSecondaryId(gSpecialVar_ItemId) == 1)
GetOnOffBike(4);
sub_8064E2C();
@@ -252,7 +252,7 @@ void ItemUseOutOfBattle_Rod(u8 taskId)
void ItemUseOnFieldCB_Rod(u8 taskId)
{
- StartFishing(ItemId_GetSecondaryId(gScriptItemId));
+ StartFishing(ItemId_GetSecondaryId(gSpecialVar_ItemId));
DestroyTask(taskId);
}
@@ -770,17 +770,17 @@ void ItemUseOutOfBattle_SSTicket(u8 taskId)
if (gTasks[taskId].data[2] == 0)
{
MenuZeroFillWindowRect(0, 0xD, 0xD, 0x14);
- DisplayItemMessageOnField(taskId, gUnknown_083D61DC[ItemId_GetSecondaryId(gScriptItemId)], sub_80C9BB8, 1);
+ DisplayItemMessageOnField(taskId, gUnknown_083D61DC[ItemId_GetSecondaryId(gSpecialVar_ItemId)], sub_80C9BB8, 1);
}
else
{
- DisplayItemMessageOnField(taskId, gUnknown_083D61DC[ItemId_GetSecondaryId(gScriptItemId)], sub_80C9BD8, 0);
+ DisplayItemMessageOnField(taskId, gUnknown_083D61DC[ItemId_GetSecondaryId(gSpecialVar_ItemId)], sub_80C9BD8, 0);
}
}
void sub_80C9C7C(u8 taskId)
{
- if (IsPlayerFacingPlantedBerryTree() == TRUE)
+ if (IsPlayerFacingUnplantedSoil() == TRUE)
{
gFieldItemUseCallback = sub_80C9D00;
gFieldCallback = ExecuteItemUseFromBlackPalette;
@@ -791,13 +791,13 @@ void sub_80C9C7C(u8 taskId)
}
else
{
- ItemId_GetFieldFunc(gScriptItemId)(taskId);
+ ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId);
}
}
void sub_80C9D00(u8 taskId)
{
- RemoveBagItem(gScriptItemId, 1);
+ RemoveBagItem(gSpecialVar_ItemId, 1);
ScriptContext2_Enable();
ScriptContext1_SetupScript(gUnknown_081A1654);
DestroyTask(taskId);
@@ -876,7 +876,7 @@ void ItemUseOutOfBattle_TMHM(u8 taskId)
{
MenuZeroFillWindowRect(0, 0xD, 0xD, 0x14);
- if (gScriptItemId >= ITEM_HM01)
+ if (gSpecialVar_ItemId >= ITEM_HM01)
DisplayItemMessageOnField(taskId, gOtherText_BootedHM, sub_80C9EE4, 1); // HM
else
DisplayItemMessageOnField(taskId, gOtherText_BootedTM, sub_80C9EE4, 1); // TM
@@ -892,7 +892,7 @@ void sub_80C9F10(u8 taskId)
{
if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON)
{
- StringCopy(gStringVar1, gMoveNames[ItemIdToBattleMoveId(gScriptItemId)]);
+ StringCopy(gStringVar1, gMoveNames[ItemIdToBattleMoveId(gSpecialVar_ItemId)]);
StringExpandPlaceholders(gStringVar4, gOtherText_ContainsMove);
DisplayItemMessageOnField(taskId, gStringVar4, sub_80C9F80, 1);
}
@@ -913,9 +913,9 @@ void sub_80C9FC0(u8 var)
static void PrepareItemUseMessage(void)
{
- RemoveBagItem(gScriptItemId, 1);
+ RemoveBagItem(gSpecialVar_ItemId, 1);
sub_80A3E0C();
- CopyItemName(gScriptItemId, gStringVar2);
+ CopyItemName(gSpecialVar_ItemId, gStringVar2);
StringExpandPlaceholders(gStringVar4, gOtherText_UsedItem);
}
@@ -923,7 +923,7 @@ void ItemUseOutOfBattle_Repel(u8 var)
{
if (VarGet(VAR_REPEL_STEP_COUNT) == FALSE)
{
- VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gScriptItemId));
+ VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId));
PrepareItemUseMessage();
DisplayItemMessageOnField(var, gStringVar4, CleanUpItemMenuMessage, 1);
}
@@ -936,7 +936,7 @@ void ItemUseOutOfBattle_Repel(u8 var)
void sub_80CA07C(void)
{
sub_80A3E0C();
- CopyItemName(gScriptItemId, gStringVar2);
+ CopyItemName(gSpecialVar_ItemId, gStringVar2);
}
void sub_80CA098(u8 taskId)
@@ -950,19 +950,19 @@ void sub_80CA098(u8 taskId)
void ItemUseOutOfBattle_BlackWhiteFlute(u8 taskId)
{
- if (gScriptItemId == ITEM_WHITE_FLUTE)
+ if (gSpecialVar_ItemId == ITEM_WHITE_FLUTE)
{
- FlagSet(SYS_ENC_UP_ITEM);
- FlagClear(SYS_ENC_DOWN_ITEM);
+ FlagSet(FLAG_SYS_ENC_UP_ITEM);
+ FlagClear(FLAG_SYS_ENC_DOWN_ITEM);
sub_80CA07C();
StringExpandPlaceholders(gStringVar4, gOtherText_UsedFlute);
gTasks[taskId].func = sub_80CA098;
gTasks[taskId].data[15] = 0;
}
- else if (gScriptItemId == ITEM_BLACK_FLUTE)
+ else if (gSpecialVar_ItemId == ITEM_BLACK_FLUTE)
{
- FlagSet(SYS_ENC_DOWN_ITEM);
- FlagClear(SYS_ENC_UP_ITEM);
+ FlagSet(FLAG_SYS_ENC_DOWN_ITEM);
+ FlagClear(FLAG_SYS_ENC_UP_ITEM);
sub_80CA07C();
StringExpandPlaceholders(gStringVar4, gOtherText_UsedRepel);
gTasks[taskId].func = sub_80CA098;
@@ -1016,7 +1016,7 @@ void ItemUseInBattle_PokeBall(u8 var)
{
if (PlayerPartyAndPokemonStorageFull() == FALSE) // have room for mon?
{
- RemoveBagItem(gScriptItemId, 1);
+ RemoveBagItem(gSpecialVar_ItemId, 1);
sub_80A7094(var);
}
else
@@ -1037,8 +1037,8 @@ void sub_80CA2BC(u8 taskId)
if(++gTasks[taskId].data[15] > 7)
{
PlaySE(SE_KAIFUKU);
- RemoveBagItem(gScriptItemId, 1);
- DisplayItemMessageOnField(taskId, sub_803F378(gScriptItemId), sub_80CA294, 1);
+ RemoveBagItem(gSpecialVar_ItemId, 1);
+ DisplayItemMessageOnField(taskId, sub_803F378(gSpecialVar_ItemId), sub_80CA294, 1);
}
}
@@ -1048,7 +1048,7 @@ void ItemUseInBattle_StatIncrease(u8 taskId)
MenuZeroFillWindowRect(0, 0xD, 0xD, 0x14);
- if (ExecuteTableBasedItemEffect_(&gPlayerParty[partyId], gScriptItemId, partyId, 0) != FALSE)
+ if (ExecuteTableBasedItemEffect_(&gPlayerParty[partyId], gSpecialVar_ItemId, partyId, 0) != FALSE)
{
DisplayItemMessageOnField(taskId, gOtherText_WontHaveAnyEffect, CleanUpItemMenuMessage, 1);
}
@@ -1097,9 +1097,9 @@ void unref_sub_80CA448(u8 var)
{
MenuZeroFillWindowRect(0, 0xD, 0xD, 0x14);
- if (ExecuteTableBasedItemEffect__(0, gScriptItemId, 0) == FALSE)
+ if (ExecuteTableBasedItemEffect__(0, gSpecialVar_ItemId, 0) == FALSE)
{
- RemoveBagItem(gScriptItemId, 1);
+ RemoveBagItem(gSpecialVar_ItemId, 1);
GetMonNickname(&gPlayerParty[0], gStringVar1);
StringExpandPlaceholders(gStringVar4, gOtherText_SnapConfusion);
DisplayItemMessageOnField(var, gStringVar4, sub_80A7094, 1);
@@ -1127,7 +1127,7 @@ void ItemUseInBattle_Escape(u8 taskId)
void ItemUseOutOfBattle_EnigmaBerry(u8 taskId)
{
- switch (GetItemEffectType(gScriptItemId) - 1)
+ switch (GetItemEffectType(gSpecialVar_ItemId) - 1)
{
case 1:
case 2:
@@ -1170,7 +1170,7 @@ void ItemUseOutOfBattle_EnigmaBerry(u8 taskId)
void ItemUseInBattle_EnigmaBerry(u8 taskId)
{
- switch (GetItemEffectType(gScriptItemId))
+ switch (GetItemEffectType(gSpecialVar_ItemId))
{
case 0:
ItemUseInBattle_StatIncrease(taskId);
diff --git a/src/field/landmark.c b/src/field/landmark.c
index 6a53716bb..476821ec6 100644
--- a/src/field/landmark.c
+++ b/src/field/landmark.c
@@ -1,12 +1,11 @@
#include "global.h"
#include "landmark.h"
#include "event_data.h"
-
-#define MAPSEC_NONE 0x58
+#include "region_map_sections.h"
struct Landmark
{
- u8 *name;
+ const u8 *name;
u16 flag;
};
@@ -14,16 +13,361 @@ struct LandmarkList
{
u8 mapSection;
u8 id;
- const struct Landmark **landmarks;
+ const struct Landmark *const *landmarks;
+};
+
+extern const u8 gLandmarkName_FlowerShop[];
+extern const u8 gLandmarkName_PetalburgWoods[];
+extern const u8 gLandmarkName_MrBrineysCottage[];
+extern const u8 gLandmarkName_AbandonedShip[];
+extern const u8 gLandmarkName_SeashoreHouse[];
+extern const u8 gLandmarkName_SlateportBeach[];
+extern const u8 gLandmarkName_CyclingRoad[];
+extern const u8 gLandmarkName_NewMauville[];
+extern const u8 gLandmarkName_TrickHouse[];
+extern const u8 gLandmarkName_OldLadysRestShop[];
+extern const u8 gLandmarkName_Desert[];
+extern const u8 gLandmarkName_WinstrateFamily[];
+extern const u8 gLandmarkName_CableCar[];
+extern const u8 gLandmarkName_GlassWorkshop[];
+extern const u8 gLandmarkName_WeatherInstitute[];
+extern const u8 gLandmarkName_MeteorFalls[];
+extern const u8 gLandmarkName_TunnelersRestHouse[];
+extern const u8 gLandmarkName_RusturfTunnel[];
+extern const u8 gLandmarkName_PokemonDayCare[];
+extern const u8 gLandmarkName_SafariZoneEntrance[];
+extern const u8 gLandmarkName_MtPyre[];
+extern const u8 gLandmarkName_ShoalCave[];
+extern const u8 gLandmarkName_SeafloorCavern[];
+extern const u8 gLandmarkName_GraniteCave[];
+extern const u8 gLandmarkName_OceanCurrent[];
+extern const u8 gLandmarkName_LanettesHouse[];
+extern const u8 gLandmarkName_FieryPath[];
+extern const u8 gLandmarkName_JaggedPass[];
+extern const u8 gLandmarkName_BerryMastersHouse[];
+extern const u8 gLandmarkName_IslandCave[];
+extern const u8 gLandmarkName_DesertRuins[];
+extern const u8 gLandmarkName_ScorchedSlab[];
+extern const u8 gLandmarkName_AncientTomb[];
+extern const u8 gLandmarkName_SealedChamber[];
+extern const u8 gLandmarkName_FossilManiacsHouse[];
+extern const u8 gLandmarkName_HuntersHouse[];
+extern const u8 gLandmarkName_SkyPillar[];
+
+static const struct Landmark Landmark_FlowerShop = {gLandmarkName_FlowerShop, FLAG_LANDMARK_FLOWER_SHOP};
+static const struct Landmark Landmark_PetalburgWoods = {gLandmarkName_PetalburgWoods, -1};
+static const struct Landmark Landmark_MrBrineysCottage = {gLandmarkName_MrBrineysCottage, FLAG_LANDMARK_MR_BRINEY_HOUSE};
+static const struct Landmark Landmark_AbandonedShip = {gLandmarkName_AbandonedShip, FLAG_LANDMARK_ABANDONED_SHIP};
+static const struct Landmark Landmark_SeashoreHouse = {gLandmarkName_SeashoreHouse, FLAG_LANDMARK_SEASHORE_HOUSE};
+static const struct Landmark Landmark_SlateportBeach = {gLandmarkName_SlateportBeach, -1};
+static const struct Landmark Landmark_CyclingRoad = {gLandmarkName_CyclingRoad, -1};
+static const struct Landmark Landmark_NewMauville = {gLandmarkName_NewMauville, FLAG_LANDMARK_NEW_MAUVILLE};
+static const struct Landmark Landmark_TrickHouse = {gLandmarkName_TrickHouse, FLAG_LANDMARK_TRICK_HOUSE};
+static const struct Landmark Landmark_OldLadysRestShop = {gLandmarkName_OldLadysRestShop, FLAG_LANDMARK_OLD_LADY_REST_SHOP};
+static const struct Landmark Landmark_Desert = {gLandmarkName_Desert, -1};
+static const struct Landmark Landmark_WinstrateFamily = {gLandmarkName_WinstrateFamily, FLAG_LANDMARK_WINSTRATE_FAMILY};
+static const struct Landmark Landmark_CableCar = {gLandmarkName_CableCar, -1};
+static const struct Landmark Landmark_GlassWorkshop = {gLandmarkName_GlassWorkshop, FLAG_LANDMARK_GLASS_WORKSHOP};
+static const struct Landmark Landmark_WeatherInstitute = {gLandmarkName_WeatherInstitute, -1};
+static const struct Landmark Landmark_MeteorFalls = {gLandmarkName_MeteorFalls, -1};
+static const struct Landmark Landmark_TunnelersRestHouse = {gLandmarkName_TunnelersRestHouse, FLAG_LANDMARK_TUNNELERS_REST_HOUSE};
+static const struct Landmark Landmark_RusturfTunnel = {gLandmarkName_RusturfTunnel, -1};
+static const struct Landmark Landmark_PokemonDayCare = {gLandmarkName_PokemonDayCare, FLAG_LANDMARK_POKEMON_DAYCARE};
+static const struct Landmark Landmark_SafariZoneEntrance = {gLandmarkName_SafariZoneEntrance, -1};
+static const struct Landmark Landmark_MtPyre = {gLandmarkName_MtPyre, -1};
+static const struct Landmark Landmark_ShoalCave = {gLandmarkName_ShoalCave, -1};
+static const struct Landmark Landmark_SeafloorCavern = {gLandmarkName_SeafloorCavern, FLAG_LANDMARK_SEAFLOOR_CAVERN};
+static const struct Landmark Landmark_GraniteCave = {gLandmarkName_GraniteCave, -1};
+static const struct Landmark Landmark_OceanCurrent = {gLandmarkName_OceanCurrent, -1};
+static const struct Landmark Landmark_LanettesHouse = {gLandmarkName_LanettesHouse, FLAG_LANDMARK_LANETTES_HOUSE};
+static const struct Landmark Landmark_FieryPath = {gLandmarkName_FieryPath, FLAG_LANDMARK_FIERY_PATH};
+static const struct Landmark Landmark_JaggedPass = {gLandmarkName_JaggedPass, -1};
+static const struct Landmark Landmark_BerryMastersHouse = {gLandmarkName_BerryMastersHouse, FLAG_LANDMARK_BERRY_MASTERS_HOUSE};
+static const struct Landmark Landmark_IslandCave = {gLandmarkName_IslandCave, FLAG_LANDMARK_ISLAND_CAVE};
+static const struct Landmark Landmark_DesertRuins = {gLandmarkName_DesertRuins, FLAG_LANDMARK_DESERT_RUINS};
+static const struct Landmark Landmark_ScorchedSlab = {gLandmarkName_ScorchedSlab, FLAG_LANDMARK_SCORCHED_SLAB};
+static const struct Landmark Landmark_AncientTomb = {gLandmarkName_AncientTomb, FLAG_LANDMARK_ANCIENT_TOMB};
+static const struct Landmark Landmark_SealedChamber = {gLandmarkName_SealedChamber, FLAG_LANDMARK_SEALED_CHAMBER};
+static const struct Landmark Landmark_FossilManiacsHouse = {gLandmarkName_FossilManiacsHouse, FLAG_LANDMARK_FOSSIL_MANIACS_HOUSE};
+static const struct Landmark Landmark_HuntersHouse = {gLandmarkName_HuntersHouse, FLAG_LANDMARK_HUNTERS_HOUSE};
+static const struct Landmark Landmark_SkyPillar = {gLandmarkName_SkyPillar, FLAG_LANDMARK_SKY_PILLAR};
+
+static const struct Landmark *const Landmarks_Route104_0[] =
+{
+ &Landmark_FlowerShop,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route104_1[] =
+{
+ &Landmark_PetalburgWoods,
+ &Landmark_MrBrineysCottage,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route105_0[] =
+{
+ &Landmark_IslandCave,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route106_1[] =
+{
+ &Landmark_GraniteCave,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route108_0[] =
+{
+ &Landmark_AbandonedShip,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route109_0[] =
+{
+ &Landmark_SeashoreHouse,
+ &Landmark_SlateportBeach,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route110_0[] =
+{
+ &Landmark_CyclingRoad,
+ &Landmark_NewMauville,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route110_1[] =
+{
+ &Landmark_CyclingRoad,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route110_2[] =
+{
+ &Landmark_CyclingRoad,
+ &Landmark_TrickHouse,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route111_0[] =
+{
+ &Landmark_OldLadysRestShop,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route111_1[] =
+{
+ &Landmark_Desert,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route111_3[] =
+{
+ &Landmark_DesertRuins,
+ &Landmark_Desert,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route111_4[] =
+{
+ &Landmark_WinstrateFamily,
+ &Landmark_Desert,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route112_0[] =
+{
+ &Landmark_FieryPath,
+ &Landmark_JaggedPass,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route112_1[] =
+{
+ &Landmark_CableCar,
+ &Landmark_FieryPath,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route113_1[] =
+{
+ &Landmark_GlassWorkshop,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route114_1[] =
+{
+ &Landmark_FossilManiacsHouse,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route114_2[] =
+{
+ &Landmark_LanettesHouse,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_MeteorFalls[] =
+{
+ &Landmark_MeteorFalls,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route116_1[] =
+{
+ &Landmark_TunnelersRestHouse,
+ &Landmark_RusturfTunnel,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route116_2[] =
+{
+ &Landmark_RusturfTunnel,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route117_2[] =
+{
+ &Landmark_PokemonDayCare,
+ NULL,
};
-extern const struct LandmarkList gLandmarkLists[];
+static const struct Landmark *const Landmarks_Route119_1[] =
+{
+ &Landmark_WeatherInstitute,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route120_0[] =
+{
+ &Landmark_ScorchedSlab,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route120_2[] =
+{
+ &Landmark_AncientTomb,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route121_2[] =
+{
+ &Landmark_SafariZoneEntrance,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route122_0[] =
+{
+ &Landmark_MtPyre,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route123_0[] =
+{
+ &Landmark_BerryMastersHouse,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route124_7[] =
+{
+ &Landmark_HuntersHouse,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route125_2[] =
+{
+ &Landmark_ShoalCave,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route128_1[] =
+{
+ &Landmark_SeafloorCavern,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route131_1[] =
+{
+ &Landmark_SkyPillar,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_OceanCurrent[] =
+{
+ &Landmark_OceanCurrent,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route134_2[] =
+{
+ &Landmark_SealedChamber,
+ &Landmark_OceanCurrent,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_MtChimney_2[] =
+{
+ &Landmark_CableCar,
+ &Landmark_JaggedPass,
+ NULL,
+};
+
+static const struct LandmarkList gLandmarkLists[] =
+{
+ {MAPSEC_Route104, 0, Landmarks_Route104_0},
+ {MAPSEC_Route104, 1, Landmarks_Route104_1},
+ {MAPSEC_Route105, 0, Landmarks_Route105_0},
+ {MAPSEC_Route106, 1, Landmarks_Route106_1},
+ {MAPSEC_Route108, 0, Landmarks_Route108_0},
+ {MAPSEC_Route109, 0, Landmarks_Route109_0},
+ {MAPSEC_Route110, 0, Landmarks_Route110_0},
+ {MAPSEC_Route110, 1, Landmarks_Route110_1},
+ {MAPSEC_Route110, 2, Landmarks_Route110_2},
+ {MAPSEC_Route111, 0, Landmarks_Route111_0},
+ {MAPSEC_Route111, 1, Landmarks_Route111_1},
+ {MAPSEC_Route111, 2, Landmarks_Route111_1},
+ {MAPSEC_Route111, 3, Landmarks_Route111_3},
+ {MAPSEC_Route111, 4, Landmarks_Route111_4},
+ {MAPSEC_Route112, 0, Landmarks_Route112_0},
+ {MAPSEC_Route112, 1, Landmarks_Route112_1},
+ {MAPSEC_Route113, 1, Landmarks_Route113_1},
+ {MAPSEC_Route114, 1, Landmarks_Route114_1},
+ {MAPSEC_Route114, 2, Landmarks_Route114_2},
+ {MAPSEC_Route114, 3, Landmarks_MeteorFalls},
+ {MAPSEC_Route115, 0, Landmarks_MeteorFalls},
+ {MAPSEC_Route115, 1, Landmarks_MeteorFalls},
+ {MAPSEC_Route116, 1, Landmarks_Route116_1},
+ {MAPSEC_Route116, 2, Landmarks_Route116_2},
+ {MAPSEC_Route117, 2, Landmarks_Route117_2},
+ {MAPSEC_Route119, 1, Landmarks_Route119_1},
+ {MAPSEC_Route120, 0, Landmarks_Route120_0},
+ {MAPSEC_Route120, 2, Landmarks_Route120_2},
+ {MAPSEC_Route121, 2, Landmarks_Route121_2},
+ {MAPSEC_Route122, 0, Landmarks_Route122_0},
+ {MAPSEC_Route123, 0, Landmarks_Route123_0},
+ {MAPSEC_Route122, 1, Landmarks_Route122_0},
+ {MAPSEC_Route124, 7, Landmarks_Route124_7},
+ {MAPSEC_Route125, 2, Landmarks_Route125_2},
+ {MAPSEC_Route128, 1, Landmarks_Route128_1},
+ {MAPSEC_Route131, 1, Landmarks_Route131_1},
+ {MAPSEC_Route132, 0, Landmarks_OceanCurrent},
+ {MAPSEC_Route132, 1, Landmarks_OceanCurrent},
+ {MAPSEC_Route133, 0, Landmarks_OceanCurrent},
+ {MAPSEC_Route133, 1, Landmarks_OceanCurrent},
+ {MAPSEC_Route133, 2, Landmarks_OceanCurrent},
+ {MAPSEC_Route134, 0, Landmarks_OceanCurrent},
+ {MAPSEC_Route134, 1, Landmarks_OceanCurrent},
+ {MAPSEC_Route134, 2, Landmarks_Route134_2},
+ {MAPSEC_MtChimney, 2, Landmarks_MtChimney_2},
+ {MAPSEC_Nothing, 0, NULL},
+};
-static const struct Landmark **GetLandmarks(u8 mapSection, u8 id);
+static const struct Landmark *const *GetLandmarks(u8 mapSection, u8 id);
-u8 *GetLandmarkName(u8 mapSection, u8 id, u8 count)
+const u8 *GetLandmarkName(u8 mapSection, u8 id, u8 count)
{
- const struct Landmark **landmarks = GetLandmarks(mapSection, id);
+ const struct Landmark *const *landmarks = GetLandmarks(mapSection, id);
if (!landmarks)
return NULL;
@@ -48,11 +392,11 @@ u8 *GetLandmarkName(u8 mapSection, u8 id, u8 count)
return (*landmarks)->name;
}
-static const struct Landmark **GetLandmarks(u8 mapSection, u8 id)
+static const struct Landmark *const *GetLandmarks(u8 mapSection, u8 id)
{
u16 i = 0;
- for (; gLandmarkLists[i].mapSection != MAPSEC_NONE; i++)
+ for (; gLandmarkLists[i].mapSection != MAPSEC_Nothing; i++)
{
if (gLandmarkLists[i].mapSection > mapSection)
return NULL;
@@ -60,7 +404,7 @@ static const struct Landmark **GetLandmarks(u8 mapSection, u8 id)
break;
}
- if (gLandmarkLists[i].mapSection == MAPSEC_NONE)
+ if (gLandmarkLists[i].mapSection == MAPSEC_Nothing)
return NULL;
for (; gLandmarkLists[i].mapSection == mapSection; i++)
diff --git a/src/field/lottery_corner.c b/src/field/lottery_corner.c
index c2c25b9ac..83febc56e 100644
--- a/src/field/lottery_corner.c
+++ b/src/field/lottery_corner.c
@@ -1,13 +1,13 @@
#include "global.h"
#include "lottery_corner.h"
#include "event_data.h"
-#include "items.h"
-#include "rng.h"
-#include "species.h"
+#include "constants/items.h"
+#include "random.h"
+#include "constants/species.h"
#include "string_util.h"
#include "text.h"
-extern u16 gScriptResult;
+extern u16 gSpecialVar_Result;
extern u16 gSpecialVar_0x8004;
extern struct PokemonStorage gPokemonStorage;
extern u16 gSpecialVar_0x8005;
@@ -46,7 +46,7 @@ void SetRandomLotteryNumber(u16 i)
void RetrieveLotteryNumber(void)
{
u16 lottoNumber = GetLotteryNumber();
- gScriptResult = lottoNumber;
+ gSpecialVar_Result = lottoNumber;
}
void PickLotteryCornerTicket(void)
@@ -70,7 +70,7 @@ void PickLotteryCornerTicket(void)
if (!GetMonData(pkmn, MON_DATA_IS_EGG))
{
u32 otId = GetMonData(pkmn, MON_DATA_OT_ID);
- u8 numMatchingDigits = GetMatchingDigits(gScriptResult, otId);
+ u8 numMatchingDigits = GetMatchingDigits(gSpecialVar_Result, otId);
if (numMatchingDigits > gSpecialVar_0x8004 && numMatchingDigits > 1)
{
@@ -97,7 +97,7 @@ void PickLotteryCornerTicket(void)
!GetBoxMonData(pkmn, MON_DATA_IS_EGG))
{
u32 otId = GetBoxMonData(pkmn, MON_DATA_OT_ID);
- u8 numMatchingDigits = GetMatchingDigits(gScriptResult, otId);
+ u8 numMatchingDigits = GetMatchingDigits(gSpecialVar_Result, otId);
if (numMatchingDigits > gSpecialVar_0x8004 && numMatchingDigits > 1)
{
diff --git a/src/field/map_obj_lock.c b/src/field/map_obj_lock.c
index 2856320b8..954fcb446 100644
--- a/src/field/map_obj_lock.c
+++ b/src/field/map_obj_lock.c
@@ -6,11 +6,11 @@
#include "script_movement.h"
#include "task.h"
-extern u16 gScriptFacing;
+extern u16 gSpecialVar_Facing;
bool8 walkrun_is_standing_still(void)
{
- if (gPlayerAvatar.running1 == 1)
+ if (gPlayerAvatar.tileTransitionState == T_TILE_TRANSITION)
return FALSE;
else
return TRUE;
@@ -109,7 +109,7 @@ void unref_sub_8064E5C(void)
void sub_8064EAC(void)
{
- FieldObjectFaceOppositeDirection(&gMapObjects[gSelectedMapObject], gScriptFacing);
+ FieldObjectFaceOppositeDirection(&gMapObjects[gSelectedMapObject], gSpecialVar_Facing);
}
void sub_8064ED4(void)
diff --git a/src/field/mauville_man.c b/src/field/mauville_man.c
index 33bc39648..30f6f5233 100644
--- a/src/field/mauville_man.c
+++ b/src/field/mauville_man.c
@@ -2,14 +2,15 @@
#include "bard_music.h"
#include "mauville_man.h"
#include "easy_chat.h"
+#include "constants/easy_chat.h"
#include "event_data.h"
#include "field_message_box.h"
#include "m4a.h"
#include "menu.h"
#include "overworld.h"
-#include "rng.h"
+#include "random.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "string_util.h"
#include "strings.h"
@@ -20,7 +21,7 @@
extern struct MusicPlayerInfo gMPlay_SE2;
-extern u16 gScriptResult;
+extern u16 gSpecialVar_Result;
extern u16 gSpecialVar_0x8004;
extern const u8 gTextStoryteller_Story1Title[];
@@ -257,12 +258,12 @@ static u8 GetCurrentMauvilleOldMan(void)
void ScrSpecial_GetCurrentMauvilleMan(void)
{
- gScriptResult = GetCurrentMauvilleOldMan();
+ gSpecialVar_Result = GetCurrentMauvilleOldMan();
}
void ScrSpecial_HasBardSongBeenChanged(void)
{
- u16 *scriptResult = &gScriptResult; // why??
+ u16 *scriptResult = &gSpecialVar_Result; // why??
struct MauvilleManBard *bard = &gSaveBlock1.mauvilleMan.bard;
*scriptResult = bard->hasChangedSong;
@@ -349,7 +350,7 @@ void ScrSpecial_PlayBardSong(void)
void ScrSpecial_GetHipsterSpokenFlag(void)
{
- u16 *scriptResult = &gScriptResult; // again??
+ u16 *scriptResult = &gSpecialVar_Result; // again??
struct MauvilleManHipster *hipster = &gSaveBlock1.mauvilleMan.hipster;
*scriptResult = hipster->alreadySpoken;
@@ -368,12 +369,12 @@ void ScrSpecial_HipsterTeachWord(void)
if (var == 0xFFFF)
{
- gScriptResult = FALSE;
+ gSpecialVar_Result = FALSE;
}
else
{
EasyChat_GetWordText(gStringVar1, var);
- gScriptResult = TRUE;
+ gSpecialVar_Result = TRUE;
}
}
@@ -383,12 +384,12 @@ void ScrSpecial_GiddyShouldTellAnotherTale(void)
if (giddy->taleCounter == 10)
{
- gScriptResult = FALSE;
+ gSpecialVar_Result = FALSE;
giddy->taleCounter = 0;
}
else
{
- gScriptResult = TRUE;
+ gSpecialVar_Result = TRUE;
}
}
@@ -420,7 +421,7 @@ void ScrSpecial_GenerateGiddyLine(void)
else
giddy->taleCounter++;
- gScriptResult = TRUE;
+ gSpecialVar_Result = TRUE;
}
#ifdef NONMATCHING
@@ -1250,11 +1251,11 @@ static void Task_StoryListMenu(u8 taskId)
break;
if (selection == -1 || selection == GetFreeStorySlot())
{
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
}
else
{
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
gUnknown_03000748 = selection;
}
HandleDestroyMenuCursors();
@@ -1265,7 +1266,7 @@ static void Task_StoryListMenu(u8 taskId)
}
}
-// Sets gScriptResult to TRUE if player selected a story
+// Sets gSpecialVar_Result to TRUE if player selected a story
void ScrSpecial_StorytellerStoryListMenu(void)
{
CreateTask(Task_StoryListMenu, 0x50);
diff --git a/src/field/menu_helpers.c b/src/field/menu_helpers.c
index 14e823355..e3ef0c790 100644
--- a/src/field/menu_helpers.c
+++ b/src/field/menu_helpers.c
@@ -1,14 +1,14 @@
#include "global.h"
#include "item_menu.h"
-#include "items.h"
+#include "constants/items.h"
#include "link.h"
#include "mail_data.h"
#include "main.h"
-#include "map_constants.h"
+#include "constants/maps.h"
#include "menu.h"
#include "menu_helpers.h"
#include "overworld.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "task.h"
@@ -261,7 +261,7 @@ bool8 sub_80F92F4(u16 itemId)
return TRUE;
}
- if (!(gSaveBlock1.location.mapGroup == MAP_GROUP_TRADE_CENTER && gSaveBlock1.location.mapNum == MAP_ID_TRADE_CENTER))
+ if (!(gSaveBlock1.location.mapGroup == MAP_GROUP(TRADE_CENTER) && gSaveBlock1.location.mapNum == MAP_NUM(TRADE_CENTER)))
{
return TRUE;
}
@@ -405,15 +405,15 @@ void CreateVerticalScrollIndicators(u8 id, u16 x, u16 y)
if (gUnknown_020388C0[0] == 0xFF)
{
gUnknown_020388C0[0] = CreateSprite(&gSpriteTemplate_83E59D0, x, y, 0);
- gSprites[gUnknown_020388C0[0]].data2 = -1;
+ gSprites[gUnknown_020388C0[0]].data[2] = -1;
if (gUnknown_020388C0[1] != 0xFF)
{
gSprites[gUnknown_020388C0[0]].pos2.y = gSprites[gUnknown_020388C0[1]].pos2.y * -1;
- gSprites[gUnknown_020388C0[0]].data3 = gSprites[gUnknown_020388C0[1]].data3;
+ gSprites[gUnknown_020388C0[0]].data[3] = gSprites[gUnknown_020388C0[1]].data[3];
}
else
{
- gSprites[gUnknown_020388C0[0]].data3 = 0;
+ gSprites[gUnknown_020388C0[0]].data[3] = 0;
}
}
break;
@@ -422,15 +422,15 @@ void CreateVerticalScrollIndicators(u8 id, u16 x, u16 y)
if (gUnknown_020388C0[1] == 0xFF)
{
gUnknown_020388C0[1] = CreateSprite(&gSpriteTemplate_83E59D0, x, y, 0);
- gSprites[gUnknown_020388C0[1]].data2 = 1;
+ gSprites[gUnknown_020388C0[1]].data[2] = 1;
if (gUnknown_020388C0[0] != 0xFF)
{
gSprites[gUnknown_020388C0[1]].pos2.y = gSprites[gUnknown_020388C0[0]].pos2.y * -1;
- gSprites[gUnknown_020388C0[1]].data3 = gSprites[gUnknown_020388C0[0]].data3;
+ gSprites[gUnknown_020388C0[1]].data[3] = gSprites[gUnknown_020388C0[0]].data[3];
}
else
{
- gSprites[gUnknown_020388C0[1]].data3 = 0;
+ gSprites[gUnknown_020388C0[1]].data[3] = 0;
}
}
break;
@@ -439,15 +439,15 @@ void CreateVerticalScrollIndicators(u8 id, u16 x, u16 y)
if (gUnknown_020388C0[2] == 0xFF)
{
gUnknown_020388C0[2] = CreateSprite(&gSpriteTemplate_83E59E8, x, y, 0);
- gSprites[gUnknown_020388C0[2]].data0 = -1;
+ gSprites[gUnknown_020388C0[2]].data[0] = -1;
if (gUnknown_020388C0[3] != 0xFF)
{
gSprites[gUnknown_020388C0[2]].pos2.x = gSprites[gUnknown_020388C0[3]].pos2.x * -1;
- gSprites[gUnknown_020388C0[2]].data1 = gSprites[gUnknown_020388C0[3]].data1;
+ gSprites[gUnknown_020388C0[2]].data[1] = gSprites[gUnknown_020388C0[3]].data[1];
}
else
{
- gSprites[gUnknown_020388C0[2]].data1 = 0;
+ gSprites[gUnknown_020388C0[2]].data[1] = 0;
}
}
break;
@@ -456,15 +456,15 @@ void CreateVerticalScrollIndicators(u8 id, u16 x, u16 y)
if (gUnknown_020388C0[3] == 0xFF)
{
gUnknown_020388C0[3] = CreateSprite(&gSpriteTemplate_83E59E8, x, y, 0);
- gSprites[gUnknown_020388C0[3]].data0 = 1;
+ gSprites[gUnknown_020388C0[3]].data[0] = 1;
if (gUnknown_020388C0[2] != 0xFF)
{
gSprites[gUnknown_020388C0[3]].pos2.x = gSprites[gUnknown_020388C0[2]].pos2.x * -1;
- gSprites[gUnknown_020388C0[3]].data1 = gSprites[gUnknown_020388C0[2]].data1;
+ gSprites[gUnknown_020388C0[3]].data[1] = gSprites[gUnknown_020388C0[2]].data[1];
}
else
{
- gSprites[gUnknown_020388C0[3]].data1 = 0;
+ gSprites[gUnknown_020388C0[3]].data[1] = 0;
}
}
break;
@@ -502,23 +502,23 @@ void BuyMenuFreeMemory(void)
static void sub_80F9834(struct Sprite *sprite)
{
- if (sprite->data1 == 0)
+ if (sprite->data[1] == 0)
{
- sprite->pos2.x += sprite->data0;
+ sprite->pos2.x += sprite->data[0];
}
- if (sprite->data3 == 0)
+ if (sprite->data[3] == 0)
{
- sprite->pos2.y += sprite->data2;
+ sprite->pos2.y += sprite->data[2];
}
- sprite->data1++;
- sprite->data3++;
- if (sprite->data1 > 2)
+ sprite->data[1]++;
+ sprite->data[3]++;
+ if (sprite->data[1] > 2)
{
- sprite->data1 = 0;
+ sprite->data[1] = 0;
}
- if (sprite->data3 > 2)
+ if (sprite->data[3] > 2)
{
- sprite->data3 = 0;
+ sprite->data[3] = 0;
}
if (sprite->pos2.x == 8 || sprite->pos2.x == -8)
{
@@ -552,8 +552,8 @@ static void sub_80F9914(u8 id)
{
gSprites[gUnknown_020388C0[id]].pos2.x = 0;
gSprites[gUnknown_020388C0[id]].pos2.y = 0;
- gSprites[gUnknown_020388C0[id]].data1 = 0;
- gSprites[gUnknown_020388C0[id]].data3 = 0;
+ gSprites[gUnknown_020388C0[id]].data[1] = 0;
+ gSprites[gUnknown_020388C0[id]].data[3] = 0;
}
}
diff --git a/src/field/money.c b/src/field/money.c
index 5d0f0ae8d..f277ac905 100644
--- a/src/field/money.c
+++ b/src/field/money.c
@@ -4,6 +4,7 @@
#include "menu.h"
#include "sprite.h"
#include "string_util.h"
+#include "graphics.h"
#define SPRITE_TAG_MONEY (0x2722)
@@ -11,9 +12,47 @@ extern u16 gSpecialVar_0x8005;
static EWRAM_DATA u8 gUnknown_02038734 = 0;
-extern const struct CompressedSpriteSheet gUnknown_083CF584;
-extern const struct CompressedSpritePalette gUnknown_083CF58C;
-extern const struct SpriteTemplate gSpriteTemplate_83CF56C;
+static const struct OamData gOamData_83CF558 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83CF560[] =
+{
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_83CF568[] =
+{
+ gSpriteAnim_83CF560,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83CF56C =
+{
+ .tileTag = 10018,
+ .paletteTag = 10018,
+ .oam = &gOamData_83CF558,
+ .anims = gSpriteAnimTable_83CF568,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+const struct CompressedSpriteSheet gUnknown_083CF584[] = {gMenuMoneyGfx, 256, SPRITE_TAG_MONEY};
+const struct CompressedSpritePalette gUnknown_083CF58C[] = {gMenuMoneyPal, SPRITE_TAG_MONEY};
bool8 IsEnoughMoney(u32 budget, u32 cost)
{
@@ -239,8 +278,8 @@ void OpenMoneyWindow(u32 amount, u8 x, u8 y)
MenuDrawTextWindow(x, y, x + 13, y + 3);
UpdateMoneyWindow(amount, x, y);
- LoadCompressedObjectPic(&gUnknown_083CF584);
- LoadCompressedObjectPalette(&gUnknown_083CF58C);
+ LoadCompressedObjectPic(gUnknown_083CF584);
+ LoadCompressedObjectPalette(gUnknown_083CF58C);
gUnknown_02038734 = CreateSprite(&gSpriteTemplate_83CF56C, x * 8 + 19, y * 8 + 11, 0);
}
diff --git a/src/field/overworld.c b/src/field/overworld.c
index d6f255409..834a2afa4 100644
--- a/src/field/overworld.c
+++ b/src/field/overworld.c
@@ -25,23 +25,23 @@
#include "link.h"
#include "load_save.h"
#include "main.h"
-#include "map_constants.h"
+#include "constants/maps.h"
#include "map_name_popup.h"
#include "menu.h"
#include "metatile_behavior.h"
#include "new_game.h"
#include "palette.h"
#include "play_time.h"
-#include "rng.h"
+#include "random.h"
#include "roamer.h"
#include "rotating_gate.h"
#include "safari_zone.h"
#include "script.h"
#include "script_pokemon_80C4.h"
#include "secret_base.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "species.h"
+#include "constants/species.h"
#include "start_menu.h"
#include "task.h"
#include "tileset_anim.h"
@@ -203,47 +203,47 @@ static void DoWhiteOut(void)
void Overworld_ResetStateAfterFly(void)
{
player_avatar_init_params_reset();
- FlagClear(SYS_CYCLING_ROAD);
- FlagClear(SYS_CRUISE_MODE);
- FlagClear(SYS_SAFARI_MODE);
- FlagClear(SYS_USE_STRENGTH);
- FlagClear(SYS_USE_FLASH);
+ FlagClear(FLAG_SYS_CYCLING_ROAD);
+ FlagClear(FLAG_SYS_CRUISE_MODE);
+ FlagClear(FLAG_SYS_SAFARI_MODE);
+ FlagClear(FLAG_SYS_USE_STRENGTH);
+ FlagClear(FLAG_SYS_USE_FLASH);
}
void Overworld_ResetStateAfterTeleport(void)
{
player_avatar_init_params_reset();
- FlagClear(SYS_CYCLING_ROAD);
- FlagClear(SYS_CRUISE_MODE);
- FlagClear(SYS_SAFARI_MODE);
- FlagClear(SYS_USE_STRENGTH);
- FlagClear(SYS_USE_FLASH);
+ FlagClear(FLAG_SYS_CYCLING_ROAD);
+ FlagClear(FLAG_SYS_CRUISE_MODE);
+ FlagClear(FLAG_SYS_SAFARI_MODE);
+ FlagClear(FLAG_SYS_USE_STRENGTH);
+ FlagClear(FLAG_SYS_USE_FLASH);
ScriptContext2_RunNewScript(gUnknown_0819FC9F);
}
void Overworld_ResetStateAfterDigEscRope(void)
{
player_avatar_init_params_reset();
- FlagClear(SYS_CYCLING_ROAD);
- FlagClear(SYS_CRUISE_MODE);
- FlagClear(SYS_SAFARI_MODE);
- FlagClear(SYS_USE_STRENGTH);
- FlagClear(SYS_USE_FLASH);
+ FlagClear(FLAG_SYS_CYCLING_ROAD);
+ FlagClear(FLAG_SYS_CRUISE_MODE);
+ FlagClear(FLAG_SYS_SAFARI_MODE);
+ FlagClear(FLAG_SYS_USE_STRENGTH);
+ FlagClear(FLAG_SYS_USE_FLASH);
}
void Overworld_ResetStateAfterWhiteOut(void)
{
player_avatar_init_params_reset();
- FlagClear(SYS_CYCLING_ROAD);
- FlagClear(SYS_CRUISE_MODE);
- FlagClear(SYS_SAFARI_MODE);
- FlagClear(SYS_USE_STRENGTH);
- FlagClear(SYS_USE_FLASH);
+ FlagClear(FLAG_SYS_CYCLING_ROAD);
+ FlagClear(FLAG_SYS_CRUISE_MODE);
+ FlagClear(FLAG_SYS_SAFARI_MODE);
+ FlagClear(FLAG_SYS_USE_STRENGTH);
+ FlagClear(FLAG_SYS_USE_FLASH);
}
void sub_805308C(void)
{
- FlagClear(SYS_SAFARI_MODE);
+ FlagClear(FLAG_SYS_SAFARI_MODE);
ChooseAmbientCrySpecies();
ResetCyclingRoadChallengeData();
UpdateLocationHistoryForRoamer();
@@ -602,7 +602,7 @@ void sub_80538F0(u8 mapGroup, u8 mapNum)
prev_quest_postbuffer_cursor_backup_reset();
sub_8082BD0(mapGroup, mapNum);
DoTimeBasedEvents();
- sub_80806E4();
+ SetSav1WeatherFromCurrMapHeader();
ChooseAmbientCrySpecies();
SetDefaultFlashLevel();
Overworld_ClearSavedMusic();
@@ -638,10 +638,10 @@ void sub_8053994(u32 a1)
sub_8082BD0(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum);
if (a1 != 1)
DoTimeBasedEvents();
- sub_80806E4();
+ SetSav1WeatherFromCurrMapHeader();
ChooseAmbientCrySpecies();
if (v2)
- FlagClear(SYS_USE_FLASH);
+ FlagClear(FLAG_SYS_USE_FLASH);
SetDefaultFlashLevel();
Overworld_ClearSavedMusic();
mapheader_run_script_with_tag_x3();
@@ -691,7 +691,7 @@ struct UnkPlayerStruct *sub_8053AA8(void)
u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3)
{
- if (a3 != 8 && FlagGet(SYS_CRUISE_MODE))
+ if (a3 != 8 && FlagGet(FLAG_SYS_CRUISE_MODE))
return 1;
if (a3 == 5)
return 16;
@@ -708,7 +708,7 @@ u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3)
u8 sub_8053B60(struct UnkPlayerStruct *playerStruct, u8 a2, u16 a3, u8 a4)
{
- if (FlagGet(SYS_CRUISE_MODE) && a4 == 6)
+ if (FlagGet(FLAG_SYS_CRUISE_MODE) && a4 == 6)
return 4;
if (MetatileBehavior_IsDeepSouthWarp(a3) == TRUE)
return 2;
@@ -738,9 +738,9 @@ u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void)
bool32 Overworld_IsBikingAllowed(void)
{
// is player in cycling road entrance?
- if (gSaveBlock1.location.mapGroup == MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE
- && (gSaveBlock1.location.mapNum == MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE
- || gSaveBlock1.location.mapNum == MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE))
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE)
+ && (gSaveBlock1.location.mapNum == MAP_NUM(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE)
+ || gSaveBlock1.location.mapNum == MAP_NUM(ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE)))
return TRUE;
// is player indoor, in a secret base, or underwater?
@@ -752,11 +752,11 @@ bool32 Overworld_IsBikingAllowed(void)
return FALSE;
// Thou shalt not bike on the sacred resting grounds of Kyogre/Groudon.
- if (gSaveBlock1.location.mapGroup == MAP_GROUP_SEAFLOOR_CAVERN_ROOM9
- && gSaveBlock1.location.mapNum == MAP_ID_SEAFLOOR_CAVERN_ROOM9)
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP(SEAFLOOR_CAVERN_ROOM9)
+ && gSaveBlock1.location.mapNum == MAP_NUM(SEAFLOOR_CAVERN_ROOM9))
return FALSE;
- if (gSaveBlock1.location.mapGroup == MAP_GROUP_CAVE_OF_ORIGIN_B4F
- && gSaveBlock1.location.mapNum == MAP_ID_CAVE_OF_ORIGIN_B4F)
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP(CAVE_OF_ORIGIN_B4F)
+ && gSaveBlock1.location.mapNum == MAP_NUM(CAVE_OF_ORIGIN_B4F))
return FALSE;
return TRUE;
@@ -766,7 +766,7 @@ void SetDefaultFlashLevel(void)
{
if (!gMapHeader.cave)
gSaveBlock1.flashLevel = 0;
- else if (FlagGet(SYS_USE_FLASH))
+ else if (FlagGet(FLAG_SYS_USE_FLASH))
gSaveBlock1.flashLevel = 1;
else
gSaveBlock1.flashLevel = gMaxFlashLevel;
@@ -792,22 +792,22 @@ void sub_8053D14(u16 mapDataId)
static bool16 ShouldLegendaryMusicPlayAtLocation(struct WarpData *warp)
{
- if (!FlagGet(SYS_WEATHER_CTRL))
+ if (!FlagGet(FLAG_SYS_WEATHER_CTRL))
return FALSE;
if (warp->mapGroup == 0)
{
switch (warp->mapNum)
{
- case MAP_ID_LILYCOVE_CITY:
- case MAP_ID_MOSSDEEP_CITY:
- case MAP_ID_SOOTOPOLIS_CITY:
- case MAP_ID_EVER_GRANDE_CITY:
+ case MAP_NUM(LILYCOVE_CITY):
+ case MAP_NUM(MOSSDEEP_CITY):
+ case MAP_NUM(SOOTOPOLIS_CITY):
+ case MAP_NUM(EVER_GRANDE_CITY):
return TRUE;
- case MAP_ID_ROUTE124:
- case MAP_ID_ROUTE125:
- case MAP_ID_ROUTE126:
- case MAP_ID_ROUTE127:
- case MAP_ID_ROUTE128:
+ case MAP_NUM(ROUTE124):
+ case MAP_NUM(ROUTE125):
+ case MAP_NUM(ROUTE126):
+ case MAP_NUM(ROUTE127):
+ case MAP_NUM(ROUTE128):
return TRUE;
}
}
@@ -818,10 +818,10 @@ static bool16 IsInfiltratedWeatherInstitute(struct WarpData *warp)
{
if (VarGet(VAR_WEATHER_INSTITUTE_CLEARED))
return FALSE;
- if (warp->mapGroup != MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_1F)
+ if (warp->mapGroup != MAP_GROUP(ROUTE119_WEATHER_INSTITUTE_1F))
return FALSE;
- if (warp->mapNum == MAP_ID_ROUTE119_WEATHER_INSTITUTE_1F
- || warp->mapNum == MAP_ID_ROUTE119_WEATHER_INSTITUTE_2F)
+ if (warp->mapNum == MAP_NUM(ROUTE119_WEATHER_INSTITUTE_1F)
+ || warp->mapNum == MAP_NUM(ROUTE119_WEATHER_INSTITUTE_2F))
return TRUE;
return FALSE;
}
@@ -841,8 +841,8 @@ u16 GetCurrLocationDefaultMusic(void)
u16 music;
// Play the desert music only when the sandstorm is active on Route 111.
- if (gSaveBlock1.location.mapGroup == MAP_GROUP_ROUTE111
- && gSaveBlock1.location.mapNum == MAP_ID_ROUTE111
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP(ROUTE111)
+ && gSaveBlock1.location.mapNum == MAP_NUM(ROUTE111)
&& GetSav1Weather() == 8)
return BGM_ASHROAD;
@@ -869,8 +869,8 @@ u16 GetWarpDestinationMusic(void)
}
else
{
- if (gSaveBlock1.location.mapGroup == MAP_GROUP_MAUVILLE_CITY
- && gSaveBlock1.location.mapNum == MAP_ID_MAUVILLE_CITY)
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP(MAUVILLE_CITY)
+ && gSaveBlock1.location.mapNum == MAP_NUM(MAUVILLE_CITY))
return BGM_DOORO_X1;
else
return BGM_GRANROAD;
@@ -912,7 +912,7 @@ void Overworld_ClearSavedMusic(void)
void sub_8053F0C(void)
{
- if (FlagGet(SPECIAL_FLAG_1) != TRUE)
+ if (FlagGet(FLAG_SPECIAL_FLAG_1) != TRUE)
{
u16 newMusic = GetWarpDestinationMusic();
u16 currentMusic = GetCurrentMapMusic();
@@ -959,7 +959,7 @@ u8 GetMapMusicFadeoutSpeed(void)
void sub_8053FF8(void)
{
u16 music = GetWarpDestinationMusic();
- if (FlagGet(SPECIAL_FLAG_1) != TRUE && music != GetCurrentMapMusic())
+ if (FlagGet(FLAG_SPECIAL_FLAG_1) != TRUE && music != GetCurrentMapMusic())
{
u8 speed = GetMapMusicFadeoutSpeed();
FadeOutMapMusic(speed);
@@ -1024,8 +1024,8 @@ void UpdateAmbientCry(s16 *state, u16 *delayCounter)
void ChooseAmbientCrySpecies(void)
{
- if ((gSaveBlock1.location.mapGroup == MAP_GROUP_ROUTE130
- && gSaveBlock1.location.mapNum == MAP_ID_ROUTE130)
+ if ((gSaveBlock1.location.mapGroup == MAP_GROUP(ROUTE130)
+ && gSaveBlock1.location.mapNum == MAP_NUM(ROUTE130))
&& !IsMirageIslandPresent())
{
// Only play water pokemon cries on this route
@@ -1737,7 +1737,7 @@ void sub_8054D4C(u32 a1)
sub_805C7C4(0);
FieldEffectActiveListClear();
InitFieldMessageBox();
- sub_807C828();
+ StartWeather();
sub_8080750();
if (!a1)
SetUpFieldTasks();
@@ -2648,14 +2648,14 @@ void CreateLinkPlayerSprite(u8 linkPlayerId)
mapObj->spriteId = AddPseudoFieldObject(val, SpriteCB_LinkPlayer, 0, 0, 0);
sprite = &gSprites[mapObj->spriteId];
sprite->coordOffsetEnabled = TRUE;
- sprite->data0 = linkPlayerId;
+ sprite->data[0] = linkPlayerId;
mapObj->mapobj_bit_2 = 0;
}
}
void SpriteCB_LinkPlayer(struct Sprite *sprite)
{
- struct LinkPlayerMapObject *linkPlayerMapObj = &gLinkPlayerMapObjects[sprite->data0];
+ struct LinkPlayerMapObject *linkPlayerMapObj = &gLinkPlayerMapObjects[sprite->data[0]];
struct MapObject *mapObj = &gMapObjects[linkPlayerMapObj->mapObjId];
sprite->pos1.x = mapObj->coords1.x;
sprite->pos1.y = mapObj->coords1.y;
@@ -2668,7 +2668,7 @@ void SpriteCB_LinkPlayer(struct Sprite *sprite)
sub_806487C(sprite, 0);
if (mapObj->mapobj_bit_2)
{
- sprite->invisible = ((sprite->data7 & 4) >> 2);
- sprite->data7++;
+ sprite->invisible = ((sprite->data[7] & 4) >> 2);
+ sprite->data[7]++;
}
}
diff --git a/src/field/party_menu.c b/src/field/party_menu.c
index 86ad9ecc9..089f93f9e 100644
--- a/src/field/party_menu.c
+++ b/src/field/party_menu.c
@@ -11,12 +11,12 @@
#include "item.h"
#include "item_use.h"
#include "item_menu.h"
-#include "items.h"
+#include "constants/items.h"
#include "mail_data.h"
#include "main.h"
#include "menu.h"
#include "menu_helpers.h"
-#include "moves.h"
+#include "constants/moves.h"
#include "palette.h"
#include "pokemon.h"
#include "pokemon_icon.h"
@@ -25,16 +25,17 @@
#include "pokemon_summary_screen.h"
#include "rom_8077ABC.h"
#include "rom_8094928.h"
-#include "script_pokemon_80F9.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "species.h"
+#include "constants/species.h"
#include "sprite.h"
#include "string_util.h"
#include "strings.h"
#include "task.h"
#include "unknown_task.h"
#include "util.h"
+#include "script_pokemon_80F9.h"
+#include "ewram.h"
struct Coords8
{
@@ -460,7 +461,7 @@ static const u8 StatDataTypes[] = {
MON_DATA_DEF,
MON_DATA_SPATK,
MON_DATA_SPDEF,
- MON_DATA_SPD,
+ MON_DATA_SPEED,
};
struct Unk201C000
@@ -483,9 +484,6 @@ struct Unk201FE00
u8 unkE02;
};
-#define ewram1C000 (*(struct Unk201C000 *)(ewram + 0x1C000))
-#define ewram1FE00 (*(struct Unk201FE00 *)(ewram + 0x1FE00))
-
extern u16 gBattleTypeFlags;
extern u8 gTileBuffer[];
extern u8 gUnknown_0202E8F4;
@@ -1111,7 +1109,7 @@ _0806B980:\n\
movs r3, 0x3\n\
bl sub_806BA94\n\
_0806B98C:\n\
- ldr r0, _0806B99C @ =0x0201b000\n\
+ ldr r0, _0806B99C @ =gSharedMem + 0x1B000\n\
ldr r1, _0806B9A0 @ =0x00000261\n\
adds r0, r1\n\
movs r1, 0x2\n\
@@ -1120,7 +1118,7 @@ _0806B98C:\n\
pop {r0}\n\
bx r0\n\
.align 2, 0\n\
-_0806B99C: .4byte 0x0201b000\n\
+_0806B99C: .4byte gSharedMem + 0x1B000\n\
_0806B9A0: .4byte 0x00000261\n\
.syntax divided\n");
}
@@ -1424,7 +1422,7 @@ u16 HandleDefaultPartyMenuInput(u8 taskId)
if (menuDirectionPressed == 0)
{
- if ((gMain.newKeys & A_BUTTON) && gSprites[sub_806CA00(taskId)].data0 == 7)
+ if ((gMain.newKeys & A_BUTTON) && gSprites[sub_806CA00(taskId)].data[0] == 7)
{
// Selected "CANCEL"
return B_BUTTON;
@@ -1597,7 +1595,7 @@ u16 HandleBattleTowerPartyMenuInput(u8 taskId)
{
if (gMain.newKeys & A_BUTTON)
{
- if (gSprites[sub_806CA00(taskId)].data0 == 7)
+ if (gSprites[sub_806CA00(taskId)].data[0] == 7)
{
return B_BUTTON;
}
@@ -1631,7 +1629,7 @@ void ChangePartyMenuSelection(u8 taskId, s8 directionPressed)
{
bool8 isLinkDoubleBattle;
u8 spriteId = sub_806CA00(taskId);
- u8 menuIndex = gSprites[spriteId].data0;
+ u8 menuIndex = gSprites[spriteId].data[0];
UpdateMonIconFrame_806DA44(taskId, menuIndex, 0);
@@ -1647,17 +1645,17 @@ void ChangePartyMenuSelection(u8 taskId, s8 directionPressed)
ChangeLinkDoubleBattlePartyMenuSelection(spriteId, menuIndex, directionPressed);
- if (gSprites[spriteId].data0 == 0 || gSprites[spriteId].data0 == 2 || gSprites[spriteId].data0 == 3)
- sub_806BF24(&gUnknown_083769C0[gSprites[spriteId].data0 * 2], gSprites[spriteId].data0, 3, 1);
- if (gSprites[spriteId].data0 == 1 || gSprites[spriteId].data0 == 4 || gSprites[spriteId].data0 == 5)
- sub_806BF24(&gUnknown_083769C0[gSprites[spriteId].data0 * 2], gSprites[spriteId].data0, 4, 1);
- if (gSprites[spriteId].data0 == 7)
+ if (gSprites[spriteId].data[0] == 0 || gSprites[spriteId].data[0] == 2 || gSprites[spriteId].data[0] == 3)
+ sub_806BF24(&gUnknown_083769C0[gSprites[spriteId].data[0] * 2], gSprites[spriteId].data[0], 3, 1);
+ if (gSprites[spriteId].data[0] == 1 || gSprites[spriteId].data[0] == 4 || gSprites[spriteId].data[0] == 5)
+ sub_806BF24(&gUnknown_083769C0[gSprites[spriteId].data[0] * 2], gSprites[spriteId].data[0], 4, 1);
+ if (gSprites[spriteId].data[0] == 7)
sub_806BBEC(2);
ewram1B000.unk261 = 2;
- gSprites[spriteId].pos1.x = gUnknown_083768B8[PARTY_MENU_LAYOUT_LINK_DOUBLE_BATTLE][gSprites[spriteId].data0].x;
- gSprites[spriteId].pos1.y = gUnknown_083768B8[PARTY_MENU_LAYOUT_LINK_DOUBLE_BATTLE][gSprites[spriteId].data0].y;
+ gSprites[spriteId].pos1.x = gUnknown_083768B8[PARTY_MENU_LAYOUT_LINK_DOUBLE_BATTLE][gSprites[spriteId].data[0]].x;
+ gSprites[spriteId].pos1.y = gUnknown_083768B8[PARTY_MENU_LAYOUT_LINK_DOUBLE_BATTLE][gSprites[spriteId].data[0]].y;
}
else
{
@@ -1681,9 +1679,9 @@ void ChangePartyMenuSelection(u8 taskId, s8 directionPressed)
ChangeDoubleBattlePartyMenuSelection(spriteId, menuIndex, directionPressed);
}
- if (gSprites[spriteId].data0 < PARTY_SIZE)
+ if (gSprites[spriteId].data[0] < PARTY_SIZE)
{
- sub_806BF24(&gUnknown_083769A8[isDoubleBattle * 12 + gSprites[spriteId].data0 * 2], gSprites[spriteId].data0, 3, 1);
+ sub_806BF24(&gUnknown_083769A8[isDoubleBattle * 12 + gSprites[spriteId].data[0] * 2], gSprites[spriteId].data[0], 3, 1);
}
else
{
@@ -1692,13 +1690,13 @@ void ChangePartyMenuSelection(u8 taskId, s8 directionPressed)
ewram1B000.unk261 = 2;
- gSprites[spriteId].pos1.x = gUnknown_083768B8[isDoubleBattle][gSprites[spriteId].data0].x;
- gSprites[spriteId].pos1.y = gUnknown_083768B8[isDoubleBattle][gSprites[spriteId].data0].y;
+ gSprites[spriteId].pos1.x = gUnknown_083768B8[isDoubleBattle][gSprites[spriteId].data[0]].x;
+ gSprites[spriteId].pos1.y = gUnknown_083768B8[isDoubleBattle][gSprites[spriteId].data[0]].y;
}
- UpdateMonIconFrame_806DA44(taskId, gSprites[spriteId].data0, 1);
+ UpdateMonIconFrame_806DA44(taskId, gSprites[spriteId].data[0], 1);
- if (menuIndex != gSprites[spriteId].data0)
+ if (menuIndex != gSprites[spriteId].data[0])
{
PlaySE(5);
}
@@ -1712,47 +1710,47 @@ void ChangeDefaultPartyMenuSelection(u8 spriteId, u8 menuIndex, s8 directionPres
switch (menuMovement)
{
case 2: // no movement
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
break;
case 1: // moving up
if (menuIndex == 0) {
- gSprites[spriteId].data0 = 7;
+ gSprites[spriteId].data[0] = 7;
} else if (menuIndex == 7) {
- gSprites[spriteId].data0 = gPlayerPartyCount - 1;
+ gSprites[spriteId].data[0] = gPlayerPartyCount - 1;
} else {
s8 diff = directionPressed;
- gSprites[spriteId].data0 += diff;
+ gSprites[spriteId].data[0] += diff;
}
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
break;
case 3: // moving down
if (menuIndex == gPlayerPartyCount - 1) {
- gSprites[spriteId].data0 = 7;
+ gSprites[spriteId].data[0] = 7;
} else if (menuIndex == 7) {
- gSprites[spriteId].data0 = 0;
+ gSprites[spriteId].data[0] = 0;
} else {
s8 diff = directionPressed;
- gSprites[spriteId].data0 += diff;
+ gSprites[spriteId].data[0] += diff;
}
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
break;
case 4: // moving right
if (gPlayerPartyCount > 1 && menuIndex == 0)
{
- if (gSprites[spriteId].data1 == 0)
- gSprites[spriteId].data1 = 1;
+ if (gSprites[spriteId].data[1] == 0)
+ gSprites[spriteId].data[1] = 1;
- gSprites[spriteId].data0 = gSprites[spriteId].data1;
+ gSprites[spriteId].data[0] = gSprites[spriteId].data[1];
}
break;
case 0: // moving left
// Only move the selection to the left side if one of the mons in the right-hand column are currently selected
nextIndex = menuIndex - 1;
if (nextIndex <= 4) {
- gSprites[spriteId].data0 = 0;
- gSprites[spriteId].data1 = menuIndex;
+ gSprites[spriteId].data[0] = 0;
+ gSprites[spriteId].data[1] = menuIndex;
}
break;
}
@@ -1766,62 +1764,62 @@ void ChangeDoubleBattlePartyMenuSelection(u8 spriteId, u8 menuIndex, s8 directio
switch(menuMovement)
{
case 2: // no movement
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
break;
case 3: // moving down
if (menuIndex == 7) {
- gSprites[spriteId].data0 = 0;
+ gSprites[spriteId].data[0] = 0;
} else if (menuIndex == gPlayerPartyCount - 1) {
- gSprites[spriteId].data0 = 7;
+ gSprites[spriteId].data[0] = 7;
} else {
s8 diff = directionPressed;
- gSprites[spriteId].data0 += diff;
+ gSprites[spriteId].data[0] += diff;
}
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
break;
case 1: // moving up
if (menuIndex == 0) {
- gSprites[spriteId].data0 = 7;
+ gSprites[spriteId].data[0] = 7;
} else if (menuIndex == 7) {
- gSprites[spriteId].data0 = gPlayerPartyCount - 1;
+ gSprites[spriteId].data[0] = gPlayerPartyCount - 1;
} else {
s8 diff = directionPressed;
- gSprites[spriteId].data0 += diff;
+ gSprites[spriteId].data[0] += diff;
}
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
break;
case 4: // moving right
if (menuIndex == 0) {
if (gPlayerPartyCount > 2) {
- u16 var1 = gSprites[spriteId].data1 - 2;
+ u16 var1 = gSprites[spriteId].data[1] - 2;
if (var1 > 1)
- gSprites[spriteId].data0 = 2;
+ gSprites[spriteId].data[0] = 2;
else
- gSprites[spriteId].data0 = gSprites[spriteId].data1;
+ gSprites[spriteId].data[0] = gSprites[spriteId].data[1];
}
}
else if (menuIndex == 1) {
if (gPlayerPartyCount > 4) {
- u16 var1 = gSprites[spriteId].data1 - 4;
+ u16 var1 = gSprites[spriteId].data[1] - 4;
if (var1 <= 1)
- gSprites[spriteId].data0 = gSprites[spriteId].data1;
+ gSprites[spriteId].data[0] = gSprites[spriteId].data[1];
else
- gSprites[spriteId].data0 = 4;
+ gSprites[spriteId].data[0] = 4;
}
}
break;
case 0: // moving left
var1 = menuIndex - 2;
if (var1 <= 1) {
- gSprites[spriteId].data0 = 0;
- gSprites[spriteId].data1 = menuIndex;
+ gSprites[spriteId].data[0] = 0;
+ gSprites[spriteId].data[1] = menuIndex;
} else {
u8 var2 = menuIndex - 4;
if (var2 <= 1) {
- gSprites[spriteId].data0 = 1;
- gSprites[spriteId].data1 = menuIndex;
+ gSprites[spriteId].data[0] = 1;
+ gSprites[spriteId].data[1] = menuIndex;
}
}
break;
@@ -1839,62 +1837,62 @@ void ChangeLinkDoubleBattlePartyMenuSelection(u8 spriteId, u8 menuIndex, s8 dire
switch (menuMovement)
{
case 2: // no movement
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
break;
case 3: // moving down
if (menuIndex == 7) {
- gSprites[spriteId].data0 = 0;
+ gSprites[spriteId].data[0] = 0;
} else {
while (menuIndex != PARTY_SIZE - 1) {
menuIndex++;
if (GetMonData(&gPlayerParty[menuIndex], MON_DATA_SPECIES))
{
- gSprites[spriteId].data0 = menuIndex;
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[0] = menuIndex;
+ gSprites[spriteId].data[1] = 0;
return;
}
}
- gSprites[spriteId].data0 = 7;
+ gSprites[spriteId].data[0] = 7;
}
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
break;
case 1: // moving up
while (menuIndex != 0) {
menuIndex--;
if (menuIndex != PARTY_SIZE && GetMonData(gPlayerParty[menuIndex], MON_DATA_SPECIES))
{
- gSprites[spriteId].data0 = menuIndex;
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[0] = menuIndex;
+ gSprites[spriteId].data[1] = 0;
return;
}
}
- gSprites[spriteId].data0 = 7;
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[0] = 7;
+ gSprites[spriteId].data[1] = 0;
break;
case 4: // moving right
if (menuIndex == 0) {
- var1 = gSprites[spriteId].data1 - 2;
+ var1 = gSprites[spriteId].data[1] - 2;
if (var1 > 1) {
if (GetMonData(&gPlayerParty[2], MON_DATA_SPECIES)) {
- gSprites[spriteId].data0 = 2;
+ gSprites[spriteId].data[0] = 2;
} else if (GetMonData(&gPlayerParty[3], MON_DATA_SPECIES)) {
- gSprites[spriteId].data0 = 3;
+ gSprites[spriteId].data[0] = 3;
}
} else {
- gSprites[spriteId].data0 = 1;
+ gSprites[spriteId].data[0] = 1;
}
} else if (menuIndex == 1) {
- var1 = gSprites[spriteId].data1 - 4;
+ var1 = gSprites[spriteId].data[1] - 4;
if (var1 <= 1) {
- gSprites[spriteId].data0 = gSprites[spriteId].data1;
+ gSprites[spriteId].data[0] = gSprites[spriteId].data[1];
} else {
if (GetMonData(&gPlayerParty[4], MON_DATA_SPECIES)) {
- gSprites[spriteId].data0 = 4;
+ gSprites[spriteId].data[0] = 4;
} else if (GetMonData(&gPlayerParty[5], MON_DATA_SPECIES)) {
- gSprites[spriteId].data0 = 5;
+ gSprites[spriteId].data[0] = 5;
}
}
}
@@ -1902,13 +1900,13 @@ void ChangeLinkDoubleBattlePartyMenuSelection(u8 spriteId, u8 menuIndex, s8 dire
case 0: // moving left
var2 = menuIndex - 2;
if (var2 <= 1) {
- gSprites[spriteId].data0 = 0;
- gSprites[spriteId].data1 = menuIndex;
+ gSprites[spriteId].data[0] = 0;
+ gSprites[spriteId].data[1] = menuIndex;
} else {
var2 = menuIndex - 4;
if (var2 <= 1) {
- gSprites[spriteId].data0 = 1;
- gSprites[spriteId].data1 = menuIndex;
+ gSprites[spriteId].data[0] = 1;
+ gSprites[spriteId].data[1] = menuIndex;
}
}
@@ -2167,7 +2165,7 @@ void ChangeBattleTowerPartyMenuSelection(u8 taskId, s8 directionPressed)
u8 newMenuIndex3;
s8 menuMovement;
u8 spriteId = sub_806CA00(taskId);
- u8 menuIndex = gSprites[spriteId].data0;
+ u8 menuIndex = gSprites[spriteId].data[0];
UpdateMonIconFrame_806DA44(taskId, menuIndex, 0);
@@ -2189,60 +2187,60 @@ void ChangeBattleTowerPartyMenuSelection(u8 taskId, s8 directionPressed)
switch (menuMovement)
{
case 2: // no movement
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
break;
case 1: // moving up
if (menuIndex == 0) {
- gSprites[spriteId].data0 = 7;
+ gSprites[spriteId].data[0] = 7;
} else if (menuIndex == PARTY_SIZE) {
- gSprites[spriteId].data0 = gPlayerPartyCount - 1;
+ gSprites[spriteId].data[0] = gPlayerPartyCount - 1;
} else {
- gSprites[spriteId].data0 += directionPressed;
+ gSprites[spriteId].data[0] += directionPressed;
}
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
break;
case 3: // moving down
if (menuIndex == gPlayerPartyCount - 1) {
- gSprites[spriteId].data0 = 6;
+ gSprites[spriteId].data[0] = 6;
} else if (menuIndex == 7) {
- gSprites[spriteId].data0 = 0;
+ gSprites[spriteId].data[0] = 0;
} else {
- gSprites[spriteId].data0 += directionPressed;
+ gSprites[spriteId].data[0] += directionPressed;
}
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
break;
case 4: // moving right
if (gPlayerPartyCount > 1 && menuIndex == 0)
{
- if (gSprites[spriteId].data1 == 0) {
- gSprites[spriteId].data1 = 1;
+ if (gSprites[spriteId].data[1] == 0) {
+ gSprites[spriteId].data[1] = 1;
}
- gSprites[spriteId].data0 = gSprites[spriteId].data1;
+ gSprites[spriteId].data[0] = gSprites[spriteId].data[1];
}
break;
case 0: // moving left
newMenuIndex3 = menuIndex - 1;
if (newMenuIndex3 <= 4)
{
- gSprites[spriteId].data0 = 0;
- gSprites[spriteId].data1 = menuIndex;
+ gSprites[spriteId].data[0] = 0;
+ gSprites[spriteId].data[1] = menuIndex;
}
break;
}
- gSprites[spriteId].pos1.x = gUnknown_083768B8[PARTY_MENU_LAYOUT_STANDARD][gSprites[spriteId].data0].x;
- gSprites[spriteId].pos1.y = gUnknown_083768B8[PARTY_MENU_LAYOUT_STANDARD][gSprites[spriteId].data0].y;
+ gSprites[spriteId].pos1.x = gUnknown_083768B8[PARTY_MENU_LAYOUT_STANDARD][gSprites[spriteId].data[0]].x;
+ gSprites[spriteId].pos1.y = gUnknown_083768B8[PARTY_MENU_LAYOUT_STANDARD][gSprites[spriteId].data[0]].y;
- newMenuIndex = gSprites[spriteId].data0;
- if (gSprites[spriteId].data0 < PARTY_SIZE)
+ newMenuIndex = gSprites[spriteId].data[0];
+ if (gSprites[spriteId].data[0] < PARTY_SIZE)
{
- sub_806BF24(&gUnknown_083769A8[gSprites[spriteId].data0 * 2], newMenuIndex, 3, 1);
+ sub_806BF24(&gUnknown_083769A8[gSprites[spriteId].data[0] * 2], newMenuIndex, 3, 1);
}
- else if (gSprites[spriteId].data0 == PARTY_SIZE)
+ else if (gSprites[spriteId].data[0] == PARTY_SIZE)
{
sub_806BB9C(2);
}
@@ -2253,10 +2251,10 @@ void ChangeBattleTowerPartyMenuSelection(u8 taskId, s8 directionPressed)
ewram1B000.unk261 = 2;
- newMenuIndex2 = gSprites[spriteId].data0;
+ newMenuIndex2 = gSprites[spriteId].data[0];
UpdateMonIconFrame_806DA44(taskId, newMenuIndex2, 1);
- if (menuIndex != gSprites[spriteId].data0)
+ if (menuIndex != gSprites[spriteId].data[0])
{
PlaySE(5);
}
@@ -2267,7 +2265,7 @@ void SelectBattleTowerOKButton(u8 taskId)
{
u8 spriteId = sub_806CA00(taskId);
- u8 menuIndex = gSprites[spriteId].data0;
+ u8 menuIndex = gSprites[spriteId].data[0];
if (menuIndex != 6)
{
UpdateMonIconFrame_806DA44(taskId, menuIndex, 0);
@@ -2281,8 +2279,8 @@ void SelectBattleTowerOKButton(u8 taskId)
sub_806BBEC(1);
}
- gSprites[spriteId].data1 = 0;
- gSprites[spriteId].data0 = 6;
+ gSprites[spriteId].data[1] = 0;
+ gSprites[spriteId].data[0] = 6;
gSprites[spriteId].pos1.x = gUnknown_083768B8[PARTY_MENU_LAYOUT_STANDARD][6].x;
gSprites[spriteId].pos1.y = gUnknown_083768B8[PARTY_MENU_LAYOUT_STANDARD][6].y;
@@ -2295,8 +2293,8 @@ void SelectBattleTowerOKButton(u8 taskId)
void sub_806C92C(u8 spriteId)
{
- u8 menuIndex1 = gSprites[spriteId].data0;
- u8 menuIndex2 = gSprites[spriteId].data1;
+ u8 menuIndex1 = gSprites[spriteId].data[0];
+ u8 menuIndex2 = gSprites[spriteId].data[1];
if (!IsDoubleBattle())
{
@@ -2321,14 +2319,14 @@ void sub_806C92C(u8 spriteId)
}
}
- gSprites[spriteId].data1 = menuIndex2;
+ gSprites[spriteId].data[1] = menuIndex2;
}
void sub_806C994(u8 taskId, u8 b)
{
u8 spriteId = sub_806CA00(taskId);
- gSprites[spriteId].data0 = b;
+ gSprites[spriteId].data[0] = b;
sub_806C92C(spriteId);
}
@@ -2338,7 +2336,7 @@ void sub_806C9C4(u8 taskId, u8 spriteId)
gSprites[spriteId].pos1.x = gSprites[spriteId2].pos1.x;
gSprites[spriteId].pos1.y = gSprites[spriteId2].pos1.y;
- gSprites[spriteId].data0 = gSprites[spriteId2].data0;
+ gSprites[spriteId].data[0] = gSprites[spriteId2].data[0];
}
u8 sub_806CA00(u8 taskId)
@@ -2355,7 +2353,7 @@ void sub_806CA18(u8 taskId, u8 b)
u8 sub_806CA38(u8 taskId)
{
u8 spriteId = sub_806CA00(taskId);
- return gSprites[spriteId].data0;
+ return gSprites[spriteId].data[0];
}
void SetupDefaultPartyMenuSwitchPokemon(u8 taskId)
@@ -2371,7 +2369,7 @@ void SetupDefaultPartyMenuSwitchPokemon(u8 taskId)
PrintPartyMenuPromptText(ewram1B000_alt.unk272, 0);
- sub_806BF24(&gUnknown_083769A8[gSprites[ewram01000.unk1].data0 * 2], gSprites[ewram01000.unk1].data0, 6, 0);
+ sub_806BF24(&gUnknown_083769A8[gSprites[ewram01000.unk1].data[0] * 2], gSprites[ewram01000.unk1].data[0], 6, 0);
ewram1B000.unk261 = 2;
}
@@ -2383,13 +2381,13 @@ void ChangePartyMenuSwitchPokemonSelection(u8 taskId, s16 menuDirectionPressed)
ChangePartyMenuSelection(taskId, menuDirectionPressed);
- if (sprite1->data0 != sprite2->data0)
+ if (sprite1->data[0] != sprite2->data[0])
{
- sub_806BF24(&gUnknown_083769A8[sprite1->data0 * 2], sprite1->data0, 6, 1);
+ sub_806BF24(&gUnknown_083769A8[sprite1->data[0] * 2], sprite1->data[0], 6, 1);
}
else
{
- sub_806BF24(&gUnknown_083769A8[sprite1->data0 * 2], sprite1->data0, 6, 0);
+ sub_806BF24(&gUnknown_083769A8[sprite1->data[0] * 2], sprite1->data[0], 6, 0);
}
}
@@ -2436,15 +2434,15 @@ void sub_806CC2C(u8 taskId)
void sub_806CC74(u8 taskId)
{
- sub_806BF24(&gUnknown_083769A8[gSprites[ewram01000.unk2].data0 * 2], gSprites[ewram01000.unk2].data0, 3, 1);
- sub_806BF24(&gUnknown_083769A8[gSprites[ewram01000.unk1].data0 * 2], gSprites[ewram01000.unk1].data0, 3, 0);
+ sub_806BF24(&gUnknown_083769A8[gSprites[ewram01000.unk2].data[0] * 2], gSprites[ewram01000.unk2].data[0], 3, 1);
+ sub_806BF24(&gUnknown_083769A8[gSprites[ewram01000.unk1].data[0] * 2], gSprites[ewram01000.unk1].data[0], 3, 0);
sub_806CC2C(taskId);
}
void sub_806CCE4()
{
- u8 monIndex1 = gSprites[ewram01000.unk1].data0;
- u8 monIndex2 = gSprites[ewram01000.unk2].data0;
+ u8 monIndex1 = gSprites[ewram01000.unk1].data[0];
+ u8 monIndex2 = gSprites[ewram01000.unk2].data[0];
if (monIndex1 <= 5)
{
@@ -2465,8 +2463,8 @@ void sub_806CD44(u8 taskId)
void sub_806CD5C(u8 taskId)
{
- u8 monIndex1 = gSprites[ewram01000.unk1].data0;
- u8 monIndex2 = gSprites[ewram01000.unk2].data0;
+ u8 monIndex1 = gSprites[ewram01000.unk1].data[0];
+ u8 monIndex2 = gSprites[ewram01000.unk2].data[0];
if (monIndex1 == monIndex2 || monIndex1 == 7 || monIndex2 == 7)
{
@@ -2496,8 +2494,8 @@ void sub_806CD5C(u8 taskId)
var1 = ewram01000.unk5;
if (!var1)
{
- gSprites[ewram01000.unk3].data0 = -8;
- gSprites[ewram01000.unk3].data2 = -0xA8;
+ gSprites[ewram01000.unk3].data[0] = -8;
+ gSprites[ewram01000.unk3].data[2] = -0xA8;
ewram01000.unk8 = var1;
ewram01000.unkA = 11;
@@ -2506,8 +2504,8 @@ void sub_806CD5C(u8 taskId)
}
else
{
- gSprites[ewram01000.unk3].data0 = 8;
- gSprites[ewram01000.unk3].data2 = 0xA8;
+ gSprites[ewram01000.unk3].data[0] = 8;
+ gSprites[ewram01000.unk3].data[2] = 0xA8;
ewram01000.unk8 = 11;
ewram01000.unkA = 11;
@@ -2517,8 +2515,8 @@ void sub_806CD5C(u8 taskId)
gSprites[ewram01000.unk3].callback = SpriteCB_sub_806D37C;
- gSprites[ewram01000.unk4].data0 = 8;
- gSprites[ewram01000.unk4].data2 = 0xA8;
+ gSprites[ewram01000.unk4].data[0] = 8;
+ gSprites[ewram01000.unk4].data[2] = 0xA8;
gSprites[ewram01000.unk4].callback = SpriteCB_sub_806D37C;
gSprites[ewram01000.unk3].callback(&gSprites[ewram01000.unk3]);
@@ -2539,7 +2537,7 @@ void sub_806CF04(void)
SwapValues_s16(&gSprites[ewram01000.unk3].pos1.x, &gSprites[ewram01000.unk4].pos1.x);
SwapValues_s16(&gSprites[ewram01000.unk3].pos1.y, &gSprites[ewram01000.unk4].pos1.y);
SwapValues_s16(&gSprites[ewram01000.unk3].pos2.x, &gSprites[ewram01000.unk4].pos2.x);
- SwapValues_s16(&gSprites[ewram01000.unk3].data0, &gSprites[ewram01000.unk4].data0);
+ SwapValues_s16(&gSprites[ewram01000.unk3].data[0], &gSprites[ewram01000.unk4].data[0]);
gSprites[ewram01000.unk3].callback = SpriteCB_sub_806D37C;
gSprites[ewram01000.unk4].callback = SpriteCB_sub_806D37C;
@@ -2550,7 +2548,7 @@ void sub_806CF04(void)
{
asm(".syntax unified\n\
push {r4,r5,lr}\n\
- ldr r4, _0806CF94 @ =0x02001000\n\
+ ldr r4, _0806CF94 @ =gSharedMem + 0x1000\n\
ldrb r1, [r4, 0x3]\n\
lsls r0, r1, 4\n\
adds r0, r1\n\
@@ -2618,7 +2616,7 @@ void sub_806CF04(void)
pop {r0}\n\
bx r0\n\
.align 2, 0\n\
-_0806CF94: .4byte 0x02001000\n\
+_0806CF94: .4byte gSharedMem + 0x1000\n\
_0806CF98: .4byte gSprites + 0x20\n\
_0806CF9C: .4byte SpriteCB_sub_806D37C\n\
.syntax divided\n");
@@ -2731,7 +2729,7 @@ void sub_806D198(u8 taskId)
gSprites[ewram01000.unk4].pos2.y = 0;
gSprites[ewram01000.unk4].callback = UpdateMonIconFrame_806DA38;
- spriteId = GetMonIconSpriteId(ewram01000.unk0, gSprites[ewram01000.unk2].data0);
+ spriteId = GetMonIconSpriteId(ewram01000.unk0, gSprites[ewram01000.unk2].data[0]);
gSprites[spriteId].callback = UpdateMonIconFrame_806DA0C;
SwapPokemon(&gPlayerParty[ewram01000.unk5], &gPlayerParty[ewram01000.unk6]);
@@ -2754,15 +2752,15 @@ void SpriteCB_sub_806D37C(struct Sprite *sprite)
{
UpdateMonIconFrame(sprite);
- if (sprite->pos2.x == sprite->data2)
+ if (sprite->pos2.x == sprite->data[2])
{
- sprite->data0 *= -1;
- sprite->data2 = 0;
+ sprite->data[0] *= -1;
+ sprite->data[2] = 0;
sprite->callback = UpdateMonIconFrame_806DA38;
}
else
{
- sprite->pos2.x += sprite->data0;
+ sprite->pos2.x += sprite->data[0];
}
}
@@ -2804,8 +2802,8 @@ void sub_806D4AC(u8 taskId, u16 species, u8 c)
u8 monIndex = c + 3;
u8 spriteId = GetMonIconSpriteId(taskId, monIndex);
- gSprites[spriteId].data0 = -8;
- gSprites[spriteId].data2 = gTasks[taskId].data[0] * -8;
+ gSprites[spriteId].data[0] = -8;
+ gSprites[spriteId].data[2] = gTasks[taskId].data[0] * -8;
gSprites[spriteId].callback = SpriteCB_sub_806D37C;
}
}
@@ -2855,7 +2853,7 @@ void sub_806D5B8(u8 monIndex)
ZeroFillWindowRect(&gUnknown_03004210, left, top, right, bottom);
var1 = 0;
- CpuFastSet(&var1, (void *)(OBJ_VRAM1 + monIndex * 0x400), 0x1000100);
+ CpuFastSet(&var1, OBJ_VRAM1 + monIndex * 0x400, 0x1000100);
}
void sub_806D668(u8 monIndex)
@@ -2869,7 +2867,7 @@ void sub_806D668(u8 monIndex)
ZeroFillWindowRect(&gUnknown_03004210, left, top, right, bottom);
var1 = 0;
- CpuFastSet(&var1, (void *)(OBJ_VRAM1 + 0x300 + monIndex * 0x400), 0x1000040);
+ CpuFastSet(&var1, OBJ_VRAM1 + 0x300 + monIndex * 0x400, 0x1000040);
}
bool8 LoadPartyMenuGraphics(u8 a)
@@ -3037,7 +3035,7 @@ void UpdateMonIconFrame_806DA44(u8 taskId, u8 monIndex, u8 c)
{
spriteId = GetMonIconSpriteId(taskId, monIndex);
gSprites[spriteId].pos2.y = 0;
- gSprites[spriteId].data0 = 0;
+ gSprites[spriteId].data[0] = 0;
if (!c)
{
@@ -3059,7 +3057,7 @@ void LoadHeldItemIconGraphics(void)
void SpriteCB_HeldItemIcon(struct Sprite *sprite)
{
- u8 data7 = sprite->data7;
+ u8 data7 = sprite->data[7];
if (gSprites[data7].invisible)
{
sprite->invisible = 1;
@@ -3083,7 +3081,7 @@ void CreateHeldItemIcon(u8 a, u8 b)
gSprites[spriteId].pos2.x = 4;
gSprites[spriteId].pos2.y = 10;
gSprites[spriteId].callback = SpriteCB_HeldItemIcon;
- gSprites[spriteId].data7 = a;
+ gSprites[spriteId].data[7] = a;
StartSpriteAnim(&gSprites[spriteId], b);
gSprites[spriteId].callback(&gSprites[spriteId]);
@@ -3140,8 +3138,8 @@ void CreateHeldItemIcons_806DC34(u8 taskId)
gSprites[heldItemSpriteId].pos2.x = 4;
gSprites[heldItemSpriteId].pos2.y = 10;
- gSprites[heldItemSpriteId].data7 = monIconSpriteId;
- gSprites[monIconSpriteId].data7 = heldItemSpriteId;
+ gSprites[heldItemSpriteId].data[7] = monIconSpriteId;
+ gSprites[monIconSpriteId].data[7] = heldItemSpriteId;
SetHeldItemIconVisibility(taskId, i);
gSprites[heldItemSpriteId].callback(&gSprites[heldItemSpriteId]);
@@ -3160,8 +3158,8 @@ void CreateHeldItemIcon_806DCD4(u8 taskId, u8 monIndex, u16 item)
gSprites[heldItemSpriteId].pos2.x = 4;
gSprites[heldItemSpriteId].pos2.y = 10;
- gSprites[heldItemSpriteId].data7 = monIconSpriteId;
- gSprites[monIconSpriteId].data7 = heldItemSpriteId;
+ gSprites[heldItemSpriteId].data[7] = monIconSpriteId;
+ gSprites[monIconSpriteId].data[7] = heldItemSpriteId;
if (!item)
{
@@ -3276,7 +3274,7 @@ _0806DD78: .4byte gSprites\n\
void SpriteCB_UpdateHeldItemIconPosition(struct Sprite *sprite)
{
- u8 spriteId = sprite->data7;
+ u8 spriteId = sprite->data[7];
sprite->pos1.x = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x;
sprite->pos1.y = gSprites[spriteId].pos1.y;
@@ -3336,7 +3334,7 @@ void SetMonIconSpriteId(u8 taskId, u8 monIndex, u8 spriteId)
u16 GetMonHeldItemIconSpriteId(u8 taskId, u8 monIndex)
{
u8 spriteId = GetMonIconSpriteId(taskId, monIndex);
- u8 retVal = gSprites[spriteId].data7;
+ u8 retVal = gSprites[spriteId].data[7];
return retVal;
}
@@ -3460,7 +3458,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);
- CpuFastSet(gTileBuffer, (void *)(OBJ_VRAM1 + (monIndex * 0x400)), 128);
+ CpuFastSet(gTileBuffer, OBJ_VRAM1 + (monIndex * 0x400), 128);
}
void PrintPartyMenuMonNickname(u8 monIndex, u8 b, struct Pokemon *pokemon)
@@ -3570,7 +3568,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);
- CpuFastSet(gUnknown_02039460, (void *)(OBJ_VRAM1 + 0x200 + (monIndex * 0x400)), 32);
+ CpuFastSet(gUnknown_02039460, OBJ_VRAM1 + 0x200 + (monIndex * 0x400), 32);
}
void PartyMenuPrintLevel(u8 monIndex, u8 menuLayout, struct Pokemon *pokemon)
@@ -3664,7 +3662,7 @@ void PartyMenuDoPrintHP(u8 monIndex, u8 b, u16 currentHP, u16 maxHP)
CpuFastSet(&var, gUnknown_02039460, 0x1000040);
sub_8004E3C((struct WindowConfig *)&gWindowConfig_81E6CAC, gUnknown_02039460 - 0x100 /*gTileBuffer*/, gStringVar1);
- CpuFastSet(gUnknown_02039460, (void *)(OBJ_VRAM1 + 0x300 + (monIndex * 0x400)), 64);
+ CpuFastSet(gUnknown_02039460, OBJ_VRAM1 + 0x300 + (monIndex * 0x400), 64);
}
void PartyMenuPrintHP(u8 monIndex, u8 b, struct Pokemon *pokemon)
@@ -4294,7 +4292,7 @@ void sub_806F3FC(u8 taskId)
{
if (!gPaletteFade.active)
{
- sub_809D9F0(gPlayerParty, ewram1C000.unk5, gPlayerPartyCount - 1, sub_808B564, ewram1C000.unk8);
+ ShowSelectMovePokemonSummaryScreen(gPlayerParty, ewram1C000.unk5, gPlayerPartyCount - 1, sub_808B564, ewram1C000.unk8);
DestroyTask(taskId);
}
}
@@ -4316,7 +4314,7 @@ void TaughtMove(u8 taskId)
u16 r4;
gTasks[taskId].func = TaskDummy;
- sub_806E8D0(taskId, gScriptItemId, sub_808B508);
+ sub_806E8D0(taskId, gSpecialVar_ItemId, sub_808B508);
moveIndex = sub_809FA30();
r4 = GetMonData(ewram1C000.pokemon, MON_DATA_MOVE1 + moveIndex);
GetMonNickname(ewram1C000.pokemon, gStringVar1);
@@ -4342,7 +4340,7 @@ void StopTryingToTeachMove_806F588(u8 taskId)
if (!gPaletteFade.active)
{
gTasks[taskId].func = TaskDummy;
- sub_806E8D0(taskId, gScriptItemId, sub_808B508);
+ sub_806E8D0(taskId, gSpecialVar_ItemId, sub_808B508);
StringCopy(gStringVar2, gMoveNames[ewram1C000.unk8]);
StringExpandPlaceholders(gStringVar4, gOtherText_StopTryingTo);
sub_806E834(gStringVar4, 1);
@@ -4457,7 +4455,7 @@ void sub_806F8AC(u8 taskId)
ewram1B000.unk261 = 2;
sub_806E834(gStringVar4, 1);
sp14 += sp0.unk4;
- SetMonData(ewram1C000.pokemon, MON_DATA_HP, (u8 *)&sp14);
+ SetMonData(ewram1C000.pokemon, MON_DATA_HP, &sp14);
RemoveBagItem(ewram1C000.unk6, 1);
sub_8032638();
gTasks[taskId].func = sub_806FB44;
@@ -4478,9 +4476,9 @@ void sub_806FA18(u8 taskId)
PlaySE(SE_KAIFUKU);
ewram1C000.unkC = 0;
gTasks[taskId].data[11] -= gTasks[taskId].data[12];
- SetMonData(ewram1C000.pokemon, MON_DATA_HP, (u8 *)&gTasks[taskId].data[11]);
+ SetMonData(ewram1C000.pokemon, MON_DATA_HP, &gTasks[taskId].data[11]);
SetMonIconAnim(GetMonIconSpriteId(ewram1C000.unk4, ewram01000.unk1), ewram1C000.pokemon);
- ewram1C000.unk5 = gSprites[ewram01000.unk2].data0;
+ ewram1C000.unk5 = gSprites[ewram01000.unk2].data[0];
ewram1C000.pokemon = &gPlayerParty[ewram1C000.unk5];
gTasks[taskId].data[10] = GetMonData(ewram1C000.pokemon, MON_DATA_MAX_HP);
gTasks[taskId].data[11] = GetMonData(ewram1C000.pokemon, MON_DATA_HP);
@@ -5035,7 +5033,7 @@ void PrintStatGrowthsInLevelUpWindow(u8 taskId) {
movs r2, 0x13\n\
mov r8, r2\n\
_0807086C:\n\
- ldr r1, _08070930 @ =0x0201c000\n\
+ ldr r1, _08070930 @ =gSharedMem + 0x1C000\n\
ldr r0, [r1]\n\
ldr r1, _08070934 @ =StatDataTypes\n\
adds r1, r7, r1\n\
@@ -5043,7 +5041,7 @@ _0807086C:\n\
bl GetMonData\n\
adds r1, r7, 0x6\n\
lsls r1, 1\n\
- ldr r2, _08070938 @ =0x0201b264\n\
+ ldr r2, _08070938 @ =gSharedMem + 0x1B264\n\
adds r1, r2, r1\n\
strh r0, [r1]\n\
lsls r6, r7, 1\n\
@@ -5125,9 +5123,9 @@ _0807086C:\n\
bx r0\n\
.align 2, 0\n\
_0807092C: .4byte gStringVar1\n\
-_08070930: .4byte 0x0201c000\n\
+_08070930: .4byte gSharedMem + 0x1C000\n\
_08070934: .4byte StatDataTypes\n\
-_08070938: .4byte 0x0201b264\n\
+_08070938: .4byte gSharedMem + 0x1B264\n\
_0807093C: .4byte StatNames\n\
_08070940: .4byte gOtherText_TallPlusAndRightArrow\n\
.syntax divided\n");
@@ -5645,7 +5643,7 @@ _08070F8A:\n\
void unref_sub_8070F90(void)
{
- FlagSet(SYS_POKEDEX_GET);
- FlagSet(SYS_POKEMON_GET);
- FlagSet(SYS_POKENAV_GET);
+ FlagSet(FLAG_SYS_POKEDEX_GET);
+ FlagSet(FLAG_SYS_POKEMON_GET);
+ FlagSet(FLAG_SYS_POKENAV_GET);
}
diff --git a/src/field/pc_screen_effect.c b/src/field/pc_screen_effect.c
new file mode 100644
index 000000000..364fca0aa
--- /dev/null
+++ b/src/field/pc_screen_effect.c
@@ -0,0 +1,128 @@
+#include "global.h"
+#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;
+};
+
+void sub_80C603C(void);
+void sub_80C6078(void);
+void sub_80C60CC(struct Sprite *);
+void sub_80C6130(struct Sprite *);
+void sub_80C61B0(IntrFunc);
+void ClearGpuRegBits(void);
+
+extern const struct OamData gOamData_83D18D8;
+
+extern const union AnimCmd *const gSpriteAnimTable_83D18E8[];
+
+extern const u16 gUnknownPal_083D18EC[16];
+
+extern const u8 gUnknownGfx_083D190C[128];
+
+extern struct UnkStruct *gUnknown_020387EC;
+
+const struct SpriteSheet gUnknown_083D1898 = { gUnknownGfx_083D190C, sizeof(gUnknownGfx_083D190C), 0 };
+
+const struct SpritePalette gUnknown_083D18A0 = { gUnknownPal_083D18EC, 0 };
+
+const struct SpriteTemplate gSpriteTemplate_83D18A8 =
+{
+ 0,
+ 0,
+ &gOamData_83D18D8,
+ gSpriteAnimTable_83D18E8,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ sub_80C60CC,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83D18C0 =
+{
+ 0,
+ 0,
+ &gOamData_83D18D8,
+ gSpriteAnimTable_83D18E8,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ sub_80C6130,
+};
+
+void sub_80C5CD4(struct UnkStruct *unkStruct)
+{
+ u16 i;
+
+ struct SpriteSheet sprSheet = gUnknown_083D1898;
+ struct SpritePalette sprPalette = gUnknown_083D18A0;
+ struct SpriteTemplate sprTemplate = gSpriteTemplate_83D18A8;
+
+ sprSheet.tag = unkStruct->tileTag;
+ sprTemplate.tileTag = unkStruct->tileTag;
+ sprPalette.tag = unkStruct->paletteTag;
+ sprTemplate.paletteTag = unkStruct->paletteTag;
+
+ LoadSpriteSheet(&sprSheet);
+ LoadSpritePalette(&sprPalette);
+
+ unkStruct->unk0C = 1;
+ unkStruct->unk0A = 0;
+ unkStruct->unk08 = 0;
+ unkStruct->selectedPalettes = ~(0x10000 << IndexOfSpritePaletteTag(unkStruct->paletteTag)) & 0xFFFF0000;
+
+ if (unkStruct->unk04 == 0)
+ unkStruct->unk04 = 16;
+
+ if (unkStruct->unk06 == 0)
+ unkStruct->unk06 = 20;
+
+ gUnknown_020387EC = unkStruct;
+
+ for (i = 0; i < 8; i++)
+ {
+ u8 spriteId = CreateSprite(&sprTemplate, 32 * i + 8, 80, 0);
+ if (spriteId == MAX_SPRITES)
+ break;
+ gSprites[spriteId].data[0] = (i < 4) ? -unkStruct->unk04 : unkStruct->unk04;
+ }
+
+ REG_BLDCNT = 191;
+ REG_BLDY = 16;
+}
+
+bool8 sub_80C5DCC(void)
+{
+ if (gUnknown_020387EC->unk08 == 0)
+ {
+ BlendPalettes(gUnknown_020387EC->selectedPalettes, 0x10, 0xFFFF);
+ sub_80C61B0(sub_80C603C);
+ gUnknown_020387EC->unk08++;
+ }
+
+ if (gUnknown_020387EC->unk0A < 8)
+ return FALSE;
+
+ gUnknown_020387EC->unk0C += gUnknown_020387EC->unk06;
+
+ if (gUnknown_020387EC->unk0C >= 80)
+ {
+ gUnknown_020387EC->unk0C = 80;
+ REG_BLDCNT = 0;
+ REG_BLDY = 0;
+ ClearGpuRegBits();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
diff --git a/src/field/player_pc.c b/src/field/player_pc.c
index 83e6dd221..d92d13ce4 100644
--- a/src/field/player_pc.c
+++ b/src/field/player_pc.c
@@ -5,7 +5,7 @@
#include "field_weather.h"
#include "item.h"
#include "item_menu.h"
-#include "items.h"
+#include "constants/items.h"
#include "main.h"
#include "menu.h"
#include "menu_helpers.h"
@@ -15,11 +15,12 @@
#include "string_util.h"
#include "strings.h"
#include "task.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "name_string_util.h"
#include "mail.h"
#include "overworld.h"
#include "player_pc.h"
+#include "ewram.h"
extern void DisplayItemMessageOnField(u8, const u8*, TaskFunc, u16);
extern void DoPlayerPCDecoration(u8);
@@ -32,7 +33,7 @@ extern u8 sub_807D770(void);
extern void sub_808B020(void);
extern void sub_80F944C(void);
-static EWRAM_DATA u8 *gPcItemMenuOptionOrder = NULL;
+static EWRAM_DATA const u8 *gPcItemMenuOptionOrder = NULL;
static u8 gPcItemMenuOptionsNum;
@@ -211,14 +212,14 @@ void NewGameInitPCItems(void)
void BedroomPC(void)
{
- gPcItemMenuOptionOrder = (u8 *)gBedroomPC_OptionOrder;
+ gPcItemMenuOptionOrder = gBedroomPC_OptionOrder;
gPcItemMenuOptionsNum = 4;
DisplayItemMessageOnField(CreateTask(TaskDummy, 0), gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0);
}
void PlayerPC(void)
{
- gPcItemMenuOptionOrder = (u8 *)gPlayerPC_OptionOrder;
+ gPcItemMenuOptionOrder = gPlayerPC_OptionOrder;
gPcItemMenuOptionsNum = 3;
DisplayItemMessageOnField(CreateTask(TaskDummy, 0), gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0);
}
@@ -271,14 +272,14 @@ static void PlayerPC_ItemStorage(u8 taskId)
static void PlayerPC_Mailbox(u8 taskId)
{
MenuZeroFillWindowRect(0, 0, 10, 9);
- gMailboxInfo.count = GetMailboxMailCount();
+ eMailboxInfo.count = GetMailboxMailCount();
- if (gMailboxInfo.count == 0)
+ if (eMailboxInfo.count == 0)
DisplayItemMessageOnField(taskId, gOtherText_NoMailHere, ReshowPlayerPC, 0);
else
{
- gMailboxInfo.cursorPos = 0;
- gMailboxInfo.itemsAbove = 0;
+ eMailboxInfo.cursorPos = 0;
+ eMailboxInfo.itemsAbove = 0;
Mailbox_UpdateMailList();
ItemStorage_SetItemAndMailCount(taskId);
Mailbox_DrawMailboxMenu(taskId);
@@ -442,10 +443,10 @@ static void ItemStorage_SetItemAndMailCount(u8 taskId)
else
NUM_PAGE_ITEMS = NUM_ITEMS + 1; // there are not enough items to fill a full page; take the # of items and add 1 for the cancel button.
- if (gMailboxInfo.count > 7)
- gMailboxInfo.pageItems = 8;
+ if (eMailboxInfo.count > 7)
+ eMailboxInfo.pageItems = 8;
else
- gMailboxInfo.pageItems = gMailboxInfo.count + 1;
+ eMailboxInfo.pageItems = eMailboxInfo.count + 1;
}
static void ItemStorage_ProcessInput(u8 taskId)
@@ -1048,8 +1049,8 @@ static void Mailbox_UpdateMailList(void)
static void Mailbox_DrawMailList(u8 taskId) // taskId is unused
{
u16 yCoord = 0;
- u16 i = gMailboxInfo.itemsAbove;
- register struct MailboxStruct *tempMailbox asm("r1") = &gMailboxInfo;
+ u16 i = eMailboxInfo.itemsAbove;
+ register struct MailboxStruct *tempMailbox asm("r1") = &eMailboxInfo;
register struct MailboxStruct *mailbox asm("r6");
if(i < i + tempMailbox->pageItems)
@@ -1064,7 +1065,7 @@ static void Mailbox_DrawMailList(u8 taskId) // taskId is unused
if(i != mailbox->count)
{
- StringCopy(gStringVar1, (u8 *)gSaveBlock1.mail[i + 6].playerName);
+ StringCopy(gStringVar1, gSaveBlock1.mail[i + 6].playerName);
SanitizeNameString(gStringVar1);
MenuPrint(gStringVar1, 0x15, yCoord + 2);
}
@@ -1076,10 +1077,10 @@ static void Mailbox_DrawMailList(u8 taskId) // taskId is unused
}
beforeLabel:
- if(i - gMailboxInfo.itemsAbove != 8)
+ if(i - eMailboxInfo.itemsAbove != 8)
MenuFillWindowRectWithBlankTile(0x15, yCoord + 4, 0x1C, 0x12);
- switch(gMailboxInfo.itemsAbove)
+ switch(eMailboxInfo.itemsAbove)
{
default:
CreateVerticalScrollIndicators(0, 0xC8, 8);
@@ -1092,7 +1093,7 @@ weirdCase:
break;
}
- if(gMailboxInfo.itemsAbove + gMailboxInfo.pageItems <= gMailboxInfo.count)
+ if(eMailboxInfo.itemsAbove + eMailboxInfo.pageItems <= eMailboxInfo.count)
CreateVerticalScrollIndicators(1, 0xC8, 0x98);
else
DestroyVerticalScrollIndicator(1);
@@ -1107,7 +1108,7 @@ static void Mailbox_DrawMailboxMenu(u8 taskId)
MenuPrint(gPCText_Mailbox, 1, 1);
MenuDrawTextWindow(0x14, 0, 0x1D, 0x13);
Mailbox_DrawMailList(taskId);
- InitMenu(0, 0x15, 2, gMailboxInfo.pageItems, gMailboxInfo.cursorPos, 8);
+ InitMenu(0, 0x15, 2, eMailboxInfo.pageItems, eMailboxInfo.cursorPos, 8);
}
// Mailbox_ProcessInput
@@ -1117,29 +1118,29 @@ static void Mailbox_ProcessInput(u8 taskId)
{
if(gMain.newAndRepeatedKeys & DPAD_UP)
{
- if(gMailboxInfo.cursorPos != 0)
+ if(eMailboxInfo.cursorPos != 0)
{
PlaySE(SE_SELECT);
- gMailboxInfo.cursorPos = MoveMenuCursor(-1);
+ eMailboxInfo.cursorPos = MoveMenuCursor(-1);
}
- else if(gMailboxInfo.itemsAbove != 0)
+ else if(eMailboxInfo.itemsAbove != 0)
{
PlaySE(SE_SELECT);
- gMailboxInfo.itemsAbove--;
+ eMailboxInfo.itemsAbove--;
Mailbox_DrawMailList(taskId);
}
}
else if(gMain.newAndRepeatedKeys & DPAD_DOWN)
{
- if(gMailboxInfo.cursorPos != gMailboxInfo.pageItems - 1)
+ if(eMailboxInfo.cursorPos != eMailboxInfo.pageItems - 1)
{
PlaySE(SE_SELECT);
- gMailboxInfo.cursorPos = MoveMenuCursor(1);
+ eMailboxInfo.cursorPos = MoveMenuCursor(1);
}
- else if(gMailboxInfo.itemsAbove + gMailboxInfo.cursorPos != gMailboxInfo.count)
+ else if(eMailboxInfo.itemsAbove + eMailboxInfo.cursorPos != eMailboxInfo.count)
{
PlaySE(SE_SELECT);
- gMailboxInfo.itemsAbove++;
+ eMailboxInfo.itemsAbove++;
Mailbox_DrawMailList(taskId);
}
}
@@ -1148,7 +1149,7 @@ static void Mailbox_ProcessInput(u8 taskId)
HandleDestroyMenuCursors();
PlaySE(SE_SELECT);
- if(gMailboxInfo.itemsAbove + gMailboxInfo.cursorPos == gMailboxInfo.count)
+ if(eMailboxInfo.itemsAbove + eMailboxInfo.cursorPos == eMailboxInfo.count)
{
Mailbox_TurnOff(taskId);
}
@@ -1177,7 +1178,7 @@ static void Mailbox_CloseScrollIndicators(void)
static void Mailbox_PrintWhatToDoWithPlayerMailText(u8 taskId)
{
MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
- StringCopy(gStringVar1, gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos].playerName);
+ StringCopy(gStringVar1, gSaveBlock1.mail[eMailboxInfo.itemsAbove + 6 + eMailboxInfo.cursorPos].playerName);
SanitizeNameString(gStringVar1);
StringExpandPlaceholders(gStringVar4, gOtherText_WhatWillYouDoMail);
DisplayItemMessageOnField(taskId, gStringVar4, Mailbox_PrintMailOptions, 0);
@@ -1237,7 +1238,7 @@ static void Mailbox_FadeAndReadMail(u8 taskId)
{
if(!gPaletteFade.active)
{
- HandleReadMail(&gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos], Mailbox_ReturnToFieldFromReadMail, 1);
+ HandleReadMail(&gSaveBlock1.mail[eMailboxInfo.itemsAbove + 6 + eMailboxInfo.cursorPos], Mailbox_ReturnToFieldFromReadMail, 1);
DestroyTask(taskId);
}
}
@@ -1276,7 +1277,7 @@ static void Mailbox_DrawYesNoBeforeMove(u8 taskId)
static void Mailbox_DoMailMoveToBag(u8 taskId)
{
- struct MailStruct *mail = &gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos];
+ struct MailStruct *mail = &gSaveBlock1.mail[eMailboxInfo.itemsAbove + 6 + eMailboxInfo.cursorPos];
MenuZeroFillWindowRect(0x14, 8, 0x1A, 0xD);
@@ -1290,10 +1291,10 @@ static void Mailbox_DoMailMoveToBag(u8 taskId)
ClearMailStruct(mail);
Mailbox_UpdateMailList();
- gMailboxInfo.count--;
+ eMailboxInfo.count--;
- if(gMailboxInfo.count < gMailboxInfo.pageItems + gMailboxInfo.itemsAbove && gMailboxInfo.itemsAbove != 0)
- gMailboxInfo.itemsAbove--;
+ if(eMailboxInfo.count < eMailboxInfo.pageItems + eMailboxInfo.itemsAbove && eMailboxInfo.itemsAbove != 0)
+ eMailboxInfo.itemsAbove--;
ItemStorage_SetItemAndMailCount(taskId);
}
@@ -1329,13 +1330,13 @@ static void Mailbox_DoGiveMailPokeMenu(u8 taskId) // Mailbox_DoGiveMailPokeMenu
static void Mailbox_UpdateMailListAfterDeposit(void)
{
u8 taskId = CreateTask(Mailbox_HandleReturnToProcessInput, 0);
- u8 oldCount = gMailboxInfo.count;
+ u8 oldCount = eMailboxInfo.count;
- gMailboxInfo.count = GetMailboxMailCount();
+ eMailboxInfo.count = GetMailboxMailCount();
Mailbox_UpdateMailList();
- if(oldCount != gMailboxInfo.count && gMailboxInfo.count < gMailboxInfo.pageItems + gMailboxInfo.itemsAbove && gMailboxInfo.itemsAbove != 0) // did the count update?
- gMailboxInfo.itemsAbove--;
+ if(oldCount != eMailboxInfo.count && eMailboxInfo.count < eMailboxInfo.pageItems + eMailboxInfo.itemsAbove && eMailboxInfo.itemsAbove != 0) // did the count update?
+ eMailboxInfo.itemsAbove--;
ItemStorage_SetItemAndMailCount(taskId);
Mailbox_DrawMailboxMenu(taskId);
diff --git a/src/field/pokeblock.c b/src/field/pokeblock.c
index 34f4ffa35..4a904fbb1 100644
--- a/src/field/pokeblock.c
+++ b/src/field/pokeblock.c
@@ -21,12 +21,13 @@
#include "item_menu.h"
#include "item_use.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "safari_zone.h"
#include "event_data.h"
#include "pokeblock.h"
+#include "ewram.h"
struct UnkPokeblockStruct
{
@@ -36,9 +37,6 @@ struct UnkPokeblockStruct
u8 unk3;
};
-extern u8 ewram[];
-
-
static EWRAM_DATA u8 gUnknown_02039244 = 0;
static EWRAM_DATA struct UnkPokeblockStruct gUnknown_02039248 = {0};
static EWRAM_DATA u8 gUnknown_0203924C = 0;
@@ -301,7 +299,7 @@ static bool8 sub_810B6C0(void)
case 10:
if (MultistepInitMenuWindowContinue())
{
- ewram[0x1ffff] = 0;
+ ewram1FFFF = 0;
gMain.state++;
}
break;
@@ -319,7 +317,7 @@ static bool8 sub_810B6C0(void)
gMain.state++;
break;
case 13:
- ewram[0x1fffe] = sub_810BA50(0x38, 0x40, 0);
+ ewram1FFFE = sub_810BA50(0x38, 0x40, 0);
gMain.state++;
break;
case 14:
@@ -371,27 +369,27 @@ void sub_810B96C(void)
static bool8 sub_810B998(void)
{
- switch (ewram[0x1ffff])
+ switch (ewram1FFFF)
{
case 0:
- LZDecompressVram(gMenuPokeblock_Gfx, (u8 *)BG_CHAR_ADDR(2));
- ewram[0x1ffff]++;
+ LZDecompressVram(gMenuPokeblock_Gfx, BG_CHAR_ADDR(2));
+ ewram1FFFF++;
break;
case 1:
LZDecompressWram(gMenuPokeblock_Tilemap, gBGTilemapBuffers[2]);
- ewram[0x1ffff]++;
+ ewram1FFFF++;
break;
case 2:
LoadCompressedPalette(gMenuPokeblock_Pal, 0, 0xc0);
- ewram[0x1ffff]++;
+ ewram1FFFF++;
break;
case 3:
LoadCompressedObjectPic(&gUnknown_083F7F74);
- ewram[0x1ffff]++;
+ ewram1FFFF++;
break;
case 4:
LoadCompressedObjectPalette(&gUnknown_083F7F7C);
- ewram[0x1ffff] = 0;
+ ewram1FFFF = 0;
return TRUE;
}
return FALSE;
@@ -613,7 +611,7 @@ static void sub_810BDAC(bool8 flag)
static void sub_810BF38(bool8 flag)
{
PlaySE(SE_SELECT);
- gSprites[ewram[0x1fffe]].callback = sub_810C8D4;
+ gSprites[ewram1FFFE].callback = sub_810C8D4;
sub_810BDAC(flag);
}
@@ -666,7 +664,7 @@ static void sub_810BF7C(u8 taskId)
PlaySE(SE_SELECT);
if (gUnknown_02039248.unk1 + gUnknown_02039248.unk0 == gUnknown_02039248.unk2)
{
- gScriptResult = 0xffff;
+ gSpecialVar_Result = 0xffff;
sub_810C31C(taskId);
}
else
@@ -677,7 +675,7 @@ static void sub_810BF7C(u8 taskId)
else if (gMain.newKeys & B_BUTTON)
{
PlaySE(SE_SELECT);
- gScriptResult = 0xffff;
+ gSpecialVar_Result = 0xffff;
sub_810C31C(taskId);
}
}
@@ -802,7 +800,7 @@ static void sub_810C31C(u8 taskId)
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
if (gUnknown_02039244 > 1)
{
- gScriptItemId = ITEM_NONE;
+ gSpecialVar_ItemId = ITEM_NONE;
}
gTasks[taskId].func = sub_810C2C8;
}
@@ -818,7 +816,7 @@ static void sub_810C368(u8 taskId)
MenuDrawTextWindow(7, v0 + 4, 13, 11);
PrintMenuItemsReordered(8, v0 + 5, gUnknown_0203924C, gUnknown_083F7EF4, gUnknown_03000758);
InitMenu(0, 8, v0 + 5, gUnknown_0203924C, 0, 5);
- gScriptItemId = gUnknown_02039248.unk0 + gUnknown_02039248.unk1;
+ gSpecialVar_ItemId = gUnknown_02039248.unk0 + gUnknown_02039248.unk1;
gTasks[taskId].func = sub_810C40C;
}
@@ -857,7 +855,7 @@ static void sub_810C4C4(u8 taskId)
if (!gPaletteFade.active)
{
sub_810C2B0();
- sub_8136130(&gSaveBlock1.pokeblocks[gScriptItemId], sub_810B96C);
+ sub_8136130(&gSaveBlock1.pokeblocks[gSpecialVar_ItemId], sub_810B96C);
DestroyTask(taskId);
}
}
@@ -941,21 +939,21 @@ static void sub_810C748(u8 taskId)
static void sub_810C788(u8 taskId)
{
- s16 v0 = PokeblockGetGain(GetNature(&gEnemyParty[0]), &gSaveBlock1.pokeblocks[gScriptItemId]);
- StringCopy(gBattleTextBuff1, gPokeblockNames[gSaveBlock1.pokeblocks[gScriptItemId].color]);
- PokeblockClearIfExists(gScriptItemId);
- gScriptItemId = gSaveBlock1.pokeblocks[gScriptItemId].color << 8;
+ s16 v0 = PokeblockGetGain(GetNature(&gEnemyParty[0]), &gSaveBlock1.pokeblocks[gSpecialVar_ItemId]);
+ StringCopy(gBattleTextBuff1, gPokeblockNames[gSaveBlock1.pokeblocks[gSpecialVar_ItemId].color]);
+ PokeblockClearIfExists(gSpecialVar_ItemId);
+ gSpecialVar_ItemId = gSaveBlock1.pokeblocks[gSpecialVar_ItemId].color << 8;
if (v0 == 0)
{
- gScriptItemId += 1;
+ gSpecialVar_ItemId += 1;
}
if (v0 > 0)
{
- gScriptItemId += 2;
+ gSpecialVar_ItemId += 2;
}
if (v0 < 0)
{
- gScriptItemId += 3;
+ gSpecialVar_ItemId += 3;
}
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
gTasks[taskId].func = sub_810C2C8;
@@ -963,35 +961,35 @@ static void sub_810C788(u8 taskId)
static void sub_810C854(u8 taskId)
{
- SafariZoneActivatePokeblockFeeder(gScriptItemId);
- StringCopy(gStringVar1, gPokeblockNames[gSaveBlock1.pokeblocks[gScriptItemId].color]);
- gScriptResult = gScriptItemId;
- PokeblockClearIfExists(gScriptItemId);
+ SafariZoneActivatePokeblockFeeder(gSpecialVar_ItemId);
+ StringCopy(gStringVar1, gPokeblockNames[gSaveBlock1.pokeblocks[gSpecialVar_ItemId].color]);
+ gSpecialVar_Result = gSpecialVar_ItemId;
+ PokeblockClearIfExists(gSpecialVar_ItemId);
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
gTasks[taskId].func = sub_810C2C8;
}
static void sub_810C8D4(struct Sprite *sprite)
{
- if (sprite->data0 > 1)
+ if (sprite->data[0] > 1)
{
- sprite->data0 = 0;
+ sprite->data[0] = 0;
}
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
sprite->oam.affineMode = 1;
sprite->affineAnims = gSpriteAffineAnimTable_83F7F70;
InitSpriteAffineAnim(sprite);
- sprite->data0 = 1;
- sprite->data1 = 0;
+ sprite->data[0] = 1;
+ sprite->data[1] = 0;
break;
case 1:
- if (++sprite->data1 > 11)
+ if (++sprite->data[1] > 11)
{
sprite->oam.affineMode = 0;
- sprite->data0 = 0;
- sprite->data1 = 0;
+ sprite->data[0] = 0;
+ sprite->data[1] = 0;
FreeOamMatrix(sprite->oam.matrixNum);
sprite->callback = SpriteCallbackDummy;
}
diff --git a/src/field/region_map.c b/src/field/region_map.c
index bfd2729c2..07e77e389 100644
--- a/src/field/region_map.c
+++ b/src/field/region_map.c
@@ -4,19 +4,20 @@
#include "field_specials.h"
#include "m4a.h"
#include "main.h"
-#include "map_constants.h"
+#include "constants/maps.h"
#include "menu.h"
#include "palette.h"
#include "pokemon_menu.h"
#include "region_map.h"
#include "overworld.h"
#include "secret_base.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sprite.h"
#include "strings.h"
#include "string_util.h"
#include "text.h"
#include "trig.h"
+#include "ewram.h"
// Map Section IDs
#define MAPSEC_LITTLEROOT_TOWN 0
@@ -336,9 +337,9 @@ bool8 sub_80FA940(void)
InitializeCursorPosition();
gRegionMap->unk74 = gRegionMap->cursorPosX;
gRegionMap->unk76 = gRegionMap->cursorPosY;
- gRegionMap->unk16 = sub_80FB758(gRegionMap->mapSecId);
- gRegionMap->mapSecId = sub_80FB9C0(gRegionMap->mapSecId);
- GetMapSectionName(gRegionMap->mapSecName, gRegionMap->mapSecId, 16);
+ gRegionMap->unk16 = sub_80FB758(gRegionMap->mapSectionId);
+ gRegionMap->mapSectionId = sub_80FB9C0(gRegionMap->mapSectionId);
+ GetMapSectionName(gRegionMap->mapSectionName, gRegionMap->mapSectionId, 16);
break;
case 6:
if (gRegionMap->zoomed == FALSE)
@@ -433,7 +434,7 @@ static u8 sub_80FAB78(void)
static u8 _swiopen(void)
{
- u16 mapSecId;
+ u16 mapSectionId;
if (gRegionMap->unk7A != 0)
return INPUT_EVENT_2;
@@ -450,12 +451,12 @@ static u8 _swiopen(void)
if (gRegionMap->cursorDeltaY < 0)
gRegionMap->cursorPosY--;
- mapSecId = GetRegionMapSectionAt(gRegionMap->cursorPosX, gRegionMap->cursorPosY);
- gRegionMap->unk16 = sub_80FB758(mapSecId);
- if (mapSecId != gRegionMap->mapSecId)
+ mapSectionId = GetRegionMapSectionAt(gRegionMap->cursorPosX, gRegionMap->cursorPosY);
+ gRegionMap->unk16 = sub_80FB758(mapSectionId);
+ if (mapSectionId != gRegionMap->mapSectionId)
{
- gRegionMap->mapSecId = mapSecId;
- GetMapSectionName(gRegionMap->mapSecName, gRegionMap->mapSecId, 16);
+ gRegionMap->mapSectionId = mapSectionId;
+ GetMapSectionName(gRegionMap->mapSectionName, gRegionMap->mapSectionId, 16);
}
sub_80FBA18();
gRegionMap->inputCallback = sub_80FAB78;
@@ -515,16 +516,16 @@ static u8 sub_80FADE4(void)
if (r3 != gRegionMap->unk64 || r1 != gRegionMap->unk66)
{
- u16 mapSecId;
+ u16 mapSectionId;
gRegionMap->unk64 = r3;
gRegionMap->unk66 = r1;
- mapSecId = GetRegionMapSectionAt(r3, r1);
- gRegionMap->unk16 = sub_80FB758(mapSecId);
- if (mapSecId != gRegionMap->mapSecId)
+ mapSectionId = GetRegionMapSectionAt(r3, r1);
+ gRegionMap->unk16 = sub_80FB758(mapSectionId);
+ if (mapSectionId != gRegionMap->mapSectionId)
{
- gRegionMap->mapSecId = mapSecId;
- GetMapSectionName(gRegionMap->mapSecName, gRegionMap->mapSecId, 16);
+ gRegionMap->mapSectionId = mapSectionId;
+ GetMapSectionName(gRegionMap->mapSectionName, gRegionMap->mapSectionId, 16);
}
sub_80FBA18();
}
@@ -706,9 +707,9 @@ static void InitializeCursorPosition(void)
u16 r9;
if (gSaveBlock1.location.mapGroup == 25
- && (gSaveBlock1.location.mapNum == MAP_ID_SS_TIDAL_CORRIDOR
- || gSaveBlock1.location.mapNum == MAP_ID_SS_TIDAL_LOWER_DECK
- || gSaveBlock1.location.mapNum == MAP_ID_SS_TIDAL_ROOMS))
+ && (gSaveBlock1.location.mapNum == MAP_NUM(SS_TIDAL_CORRIDOR)
+ || gSaveBlock1.location.mapNum == MAP_NUM(SS_TIDAL_LOWER_DECK)
+ || gSaveBlock1.location.mapNum == MAP_NUM(SS_TIDAL_ROOMS)))
{
sub_80FB600();
return;
@@ -722,19 +723,19 @@ static void InitializeCursorPosition(void)
case 2:
case 4:
case 5:
- gRegionMap->mapSecId = gMapHeader.regionMapSectionId;
+ gRegionMap->mapSectionId = gMapHeader.regionMapSectionId;
gRegionMap->playerIsInCave = FALSE;
mapWidth = gMapHeader.mapData->width;
mapHeight = gMapHeader.mapData->height;
x = gSaveBlock1.pos.x;
y = gSaveBlock1.pos.y;
- if (gRegionMap->mapSecId == MAPSEC_UNDERWATER6)
+ if (gRegionMap->mapSectionId == MAPSEC_UNDERWATER6)
gRegionMap->playerIsInCave = TRUE;
break;
case 3:
case 6:
mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1.warp4.mapGroup, gSaveBlock1.warp4.mapNum);
- gRegionMap->mapSecId = mapHeader->regionMapSectionId;
+ gRegionMap->mapSectionId = mapHeader->regionMapSectionId;
gRegionMap->playerIsInCave = TRUE;
mapWidth = mapHeader->mapData->width;
mapHeight = mapHeader->mapData->height;
@@ -743,7 +744,7 @@ static void InitializeCursorPosition(void)
break;
case 8:
mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1.warp2.mapGroup, gSaveBlock1.warp2.mapNum);
- gRegionMap->mapSecId = mapHeader->regionMapSectionId;
+ gRegionMap->mapSectionId = mapHeader->regionMapSectionId;
gRegionMap->playerIsInCave = TRUE;
mapWidth = mapHeader->mapData->width;
mapHeight = mapHeader->mapData->height;
@@ -754,8 +755,8 @@ static void InitializeCursorPosition(void)
{
struct WarpData *r4;
- gRegionMap->mapSecId = gMapHeader.regionMapSectionId;
- if (gRegionMap->mapSecId != MAPSEC_UNK_0x57)
+ gRegionMap->mapSectionId = gMapHeader.regionMapSectionId;
+ if (gRegionMap->mapSectionId != MAPSEC_UNK_0x57)
{
r4 = &gSaveBlock1.warp4;
mapHeader = Overworld_GetMapHeaderByGroupAndId(r4->mapGroup, r4->mapNum);
@@ -764,7 +765,7 @@ static void InitializeCursorPosition(void)
{
r4 = &gSaveBlock1.warp2;
mapHeader = Overworld_GetMapHeaderByGroupAndId(r4->mapGroup, r4->mapNum);
- gRegionMap->mapSecId = mapHeader->regionMapSectionId;
+ gRegionMap->mapSectionId = mapHeader->regionMapSectionId;
}
gRegionMap->playerIsInCave = FALSE;
mapWidth = mapHeader->mapData->width;
@@ -777,21 +778,21 @@ static void InitializeCursorPosition(void)
r9 = x;
- r1 = mapWidth / gRegionMapLocations[gRegionMap->mapSecId].width;
+ r1 = mapWidth / gRegionMapLocations[gRegionMap->mapSectionId].width;
if (r1 == 0)
r1 = 1;
x /= r1;
- if (x >= gRegionMapLocations[gRegionMap->mapSecId].width)
- x = gRegionMapLocations[gRegionMap->mapSecId].width - 1;
+ if (x >= gRegionMapLocations[gRegionMap->mapSectionId].width)
+ x = gRegionMapLocations[gRegionMap->mapSectionId].width - 1;
- r1 = mapHeight / gRegionMapLocations[gRegionMap->mapSecId].height;
+ r1 = mapHeight / gRegionMapLocations[gRegionMap->mapSectionId].height;
if (r1 == 0)
r1 = 1;
y /= r1;
- if (y >= gRegionMapLocations[gRegionMap->mapSecId].height)
- y = gRegionMapLocations[gRegionMap->mapSecId].height - 1;
+ if (y >= gRegionMapLocations[gRegionMap->mapSectionId].height)
+ y = gRegionMapLocations[gRegionMap->mapSectionId].height - 1;
- switch (gRegionMap->mapSecId)
+ switch (gRegionMap->mapSectionId)
{
case MAPSEC_ROUTE_114:
if (y != 0)
@@ -820,8 +821,8 @@ static void InitializeCursorPosition(void)
x++;
break;
}
- gRegionMap->cursorPosX = gRegionMapLocations[gRegionMap->mapSecId].x + x + MAPCURSOR_X_MIN;
- gRegionMap->cursorPosY = gRegionMapLocations[gRegionMap->mapSecId].y + y + MAPCURSOR_Y_MIN;
+ gRegionMap->cursorPosX = gRegionMapLocations[gRegionMap->mapSectionId].x + x + MAPCURSOR_X_MIN;
+ gRegionMap->cursorPosY = gRegionMapLocations[gRegionMap->mapSectionId].y + y + MAPCURSOR_Y_MIN;
}
static void sub_80FB600(void)
@@ -836,16 +837,16 @@ static void sub_80FB600(void)
switch (GetSSTidalLocation(&mapGroup, &mapNum, &sp2, &sp4))
{
case 1:
- gRegionMap->mapSecId = MAPSEC_SLATEPORT_CITY;
+ gRegionMap->mapSectionId = MAPSEC_SLATEPORT_CITY;
break;
case 2:
- gRegionMap->mapSecId = MAPSEC_LILYCOVE_CITY;
+ gRegionMap->mapSectionId = MAPSEC_LILYCOVE_CITY;
break;
case 3:
- gRegionMap->mapSecId = MAPSEC_ROUTE_124;
+ gRegionMap->mapSectionId = MAPSEC_ROUTE_124;
break;
case 4:
- gRegionMap->mapSecId = MAPSEC_ROUTE_131;
+ gRegionMap->mapSectionId = MAPSEC_ROUTE_131;
break;
default:
case 0:
@@ -853,31 +854,31 @@ static void sub_80FB600(void)
struct MapHeader *mapHeader = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum);
u16 r1;
- gRegionMap->mapSecId = mapHeader->regionMapSectionId;
- r1 = mapHeader->mapData->width / gRegionMapLocations[gRegionMap->mapSecId].width;
+ gRegionMap->mapSectionId = mapHeader->regionMapSectionId;
+ r1 = mapHeader->mapData->width / gRegionMapLocations[gRegionMap->mapSectionId].width;
if (r1 == 0)
r1 = 1;
x = sp2 / r1;
- if (x >= gRegionMapLocations[gRegionMap->mapSecId].width)
- x = gRegionMapLocations[gRegionMap->mapSecId].width - 1;
+ if (x >= gRegionMapLocations[gRegionMap->mapSectionId].width)
+ x = gRegionMapLocations[gRegionMap->mapSectionId].width - 1;
- r1 = mapHeader->mapData->height / gRegionMapLocations[gRegionMap->mapSecId].height;
+ r1 = mapHeader->mapData->height / gRegionMapLocations[gRegionMap->mapSectionId].height;
if (r1 == 0)
r1 = 1;
y = sp4 / r1;
- if (y >= gRegionMapLocations[gRegionMap->mapSecId].height)
- y = gRegionMapLocations[gRegionMap->mapSecId].height - 1;
+ if (y >= gRegionMapLocations[gRegionMap->mapSectionId].height)
+ y = gRegionMapLocations[gRegionMap->mapSectionId].height - 1;
}
break;
}
gRegionMap->playerIsInCave = FALSE;
- gRegionMap->cursorPosX = gRegionMapLocations[gRegionMap->mapSecId].x + x + MAPCURSOR_X_MIN;
- gRegionMap->cursorPosY = gRegionMapLocations[gRegionMap->mapSecId].y + y + MAPCURSOR_Y_MIN;
+ gRegionMap->cursorPosX = gRegionMapLocations[gRegionMap->mapSectionId].x + x + MAPCURSOR_X_MIN;
+ gRegionMap->cursorPosY = gRegionMapLocations[gRegionMap->mapSectionId].y + y + MAPCURSOR_Y_MIN;
}
-static u16 sub_80FB758(u16 mapSecId)
+static u16 sub_80FB758(u16 mapSectionId)
{
- switch (mapSecId)
+ switch (mapSectionId)
{
case MAPSEC_NONE:
return 0;
@@ -915,9 +916,9 @@ static u16 sub_80FB758(u16 mapSecId)
return FlagGet(FLAG_VISITED_EVER_GRANDE_CITY) ? 2 : 3;
case MAPSEC_BATTLE_TOWER:
- return FlagGet(FLAG_UNLOCK_BATTLE_TOWER) ? 4 : 0;
+ return FlagGet(FLAG_LANDMARK_BATTLE_TOWER) ? 4 : 0;
case MAPSEC_SOUTHERN_ISLAND:
- return FlagGet(FLAG_UNLOCK_SOUTHERN_ISLAND) ? 1 : 0;
+ return FlagGet(FLAG_LANDMARK_SOUTHERN_ISLAND) ? 1 : 0;
default:
return 1;
}
@@ -928,21 +929,21 @@ u16 GetRegionMapSectionAt_(u16 x, u16 y)
return GetRegionMapSectionAt(x, y);
}
-static u16 sub_80FB9C0(u16 mapSecId)
+static u16 sub_80FB9C0(u16 mapSectionId)
{
u16 i;
for (i = 0; gUnknown_083E7684[i][0] != MAPSEC_NONE; i++)
{
- if (gUnknown_083E7684[i][0] == mapSecId)
+ if (gUnknown_083E7684[i][0] == mapSectionId)
return gUnknown_083E7684[i][1];
}
- return mapSecId;
+ return mapSectionId;
}
-u16 sub_80FBA04(u16 mapSecId)
+u16 sub_80FBA04(u16 mapSectionId)
{
- return sub_80FB9C0(mapSecId);
+ return sub_80FB9C0(mapSectionId);
}
static void sub_80FBA18(void)
@@ -951,7 +952,7 @@ static void sub_80FBA18(void)
u16 y;
u16 i;
- if (gRegionMap->mapSecId == MAPSEC_NONE)
+ if (gRegionMap->mapSectionId == MAPSEC_NONE)
{
gRegionMap->everGrandeCityArea = 0;
return;
@@ -986,7 +987,7 @@ static void sub_80FBA18(void)
else
{
x--;
- if (GetRegionMapSectionAt(x, y) == gRegionMap->mapSecId)
+ if (GetRegionMapSectionAt(x, y) == gRegionMap->mapSectionId)
i++;
}
}
@@ -1005,7 +1006,7 @@ static bool8 sub_80FBAA0(u16 a)
for (x = MAPCURSOR_X_MIN; x <= MAPCURSOR_X_MAX; x++)
{
- if (GetRegionMapSectionAt(x, y) == gRegionMap->mapSecId)
+ if (GetRegionMapSectionAt(x, y) == gRegionMap->mapSectionId)
return TRUE;
}
return FALSE;
@@ -1120,9 +1121,9 @@ void CreateRegionMapCursor(u16 tileTag, u16 paletteTag)
gRegionMap->cursorSprite->pos1.x = gRegionMap->cursorPosX * 8 + 4;
gRegionMap->cursorSprite->pos1.y = gRegionMap->cursorPosY * 8 + 4;
}
- gRegionMap->cursorSprite->data1 = 2;
- gRegionMap->cursorSprite->data2 = IndexOfSpritePaletteTag(paletteTag) * 16 + 0x0101;
- gRegionMap->cursorSprite->data3 = 1;
+ gRegionMap->cursorSprite->data[1] = 2;
+ gRegionMap->cursorSprite->data[2] = IndexOfSpritePaletteTag(paletteTag) * 16 + 0x0101;
+ gRegionMap->cursorSprite->data[3] = 1;
}
}
@@ -1138,12 +1139,12 @@ static void sub_80FBCA0(void)
void unref_sub_80FBCD0(void)
{
- gRegionMap->cursorSprite->data3 = 1;
+ gRegionMap->cursorSprite->data[3] = 1;
}
void unref_sub_80FBCE0(void)
{
- gRegionMap->cursorSprite->data3 = 0;
+ gRegionMap->cursorSprite->data[3] = 0;
}
static const struct OamData sPlayerIconOamData =
@@ -1258,16 +1259,16 @@ static void SpriteCB_PlayerIconZoomedIn(struct Sprite *sprite)
{
sprite->pos2.x = -(gRegionMap->scrollX * 2);
sprite->pos2.y = -(gRegionMap->scrollY * 2);
- sprite->data0 = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY;
- sprite->data1 = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX;
+ sprite->data[0] = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY;
+ sprite->data[1] = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX;
// Determine if sprite is on screen
- if (sprite->data0 < -8 || sprite->data0 > 0xA8 || sprite->data1 < -8 || sprite->data1 > 0xF8)
- sprite->data2 = FALSE;
+ if (sprite->data[0] < -8 || sprite->data[0] > 0xA8 || sprite->data[1] < -8 || sprite->data[1] > 0xF8)
+ sprite->data[2] = FALSE;
else
- sprite->data2 = TRUE;
+ sprite->data[2] = TRUE;
- if (sprite->data2 == TRUE)
+ if (sprite->data[2] == TRUE)
UpdateIconBlink(sprite);
else
sprite->invisible = TRUE;
@@ -1283,10 +1284,10 @@ static void UpdateIconBlink(struct Sprite *sprite)
if (gRegionMap->blinkPlayerIcon)
{
// Toggle visibility every 16 frames
- sprite->data7++;
- if (sprite->data7 > 16)
+ sprite->data[7]++;
+ if (sprite->data[7] > 16)
{
- sprite->data7 = 0;
+ sprite->data[7] = 0;
sprite->invisible = !sprite->invisible;
}
}
@@ -1302,44 +1303,44 @@ void sub_80FBF94(void)
gRegionMap->blinkPlayerIcon = TRUE;
}
-const u8 *GetMapSectionName(u8 *dest, u16 mapSecId, u16 length)
+const u8 *GetMapSectionName(u8 *dest, u16 mapSectionId, u16 length)
{
- if (mapSecId == MAPSEC_SECRET_BASE)
+ if (mapSectionId == MAPSEC_SECRET_BASE)
return GetSecretBaseMapName(dest);
- if (mapSecId < MAPSEC_NONE)
- return StringCopy(dest, gRegionMapLocations[mapSecId].regionMapSectionId);
+ if (mapSectionId < MAPSEC_NONE)
+ return StringCopy(dest, gRegionMapLocations[mapSectionId].regionMapSectionId);
if (length == 0)
length = 18;
return StringFill(dest, CHAR_SPACE, length);
}
-const u8 *CopyMapName(u8 *dest, u16 mapSecId)
+const u8 *CopyMapName(u8 *dest, u16 mapSectionId)
{
- switch (mapSecId)
+ switch (mapSectionId)
{
case MAPSEC_UNK_0x57:
return StringCopy(dest, gOtherText_Ferry);
case MAPSEC_SECRET_BASE:
return StringCopy(dest, gOtherText_SecretBase);
default:
- return GetMapSectionName(dest, mapSecId, 0);
+ return GetMapSectionName(dest, mapSectionId, 0);
}
}
-const u8 *CopyLocationName(u8 *dest, u16 mapSecId)
+const u8 *CopyLocationName(u8 *dest, u16 mapSectionId)
{
- if (mapSecId == MAPSEC_EVIL_TEAM_HIDEOUT)
+ if (mapSectionId == MAPSEC_EVIL_TEAM_HIDEOUT)
return StringCopy(dest, gOtherText_Hideout);
else
- return CopyMapName(dest, mapSecId);
+ return CopyMapName(dest, mapSectionId);
}
-static void GetRegionMapLocationPosition(u16 mapSecId, u16 *x, u16 *y, u16 *width, u16 *height)
+static void GetRegionMapLocationPosition(u16 mapSectionId, u16 *x, u16 *y, u16 *width, u16 *height)
{
- *x = gRegionMapLocations[mapSecId].x;
- *y = gRegionMapLocations[mapSecId].y;
- *width = gRegionMapLocations[mapSecId].width;
- *height = gRegionMapLocations[mapSecId].height;
+ *x = gRegionMapLocations[mapSectionId].x;
+ *y = gRegionMapLocations[mapSectionId].y;
+ *width = gRegionMapLocations[mapSectionId].width;
+ *height = gRegionMapLocations[mapSectionId].height;
}
struct UnknownStruct3
@@ -1350,12 +1351,6 @@ struct UnknownStruct3
struct RegionMap regionMap;
};
-extern u8 ewram[];
-#define ewram0 (*(struct UnknownStruct3 *)(ewram + 0))
-#define ewram888 (ewram + 0x888)
-#define ewramA6E (ewram[0xA6E])
-#define ewramBlankMapName (ewram + 0xA48)
-
static const u16 sFlyRegionMapFrame_Pal[] = INCBIN_U16("graphics/pokenav/map_frame.gbapal");
static const u8 sFlyRegionMapFrame_ImageLZ[] = INCBIN_U8("graphics/pokenav/map_frame.4bpp.lz");
static const u8 sFlyRegionMapFrame_TilemapLZ[] = INCBIN_U8("graphics/pokenav/map_frame.bin.lz");
@@ -1419,7 +1414,7 @@ static const u8 sUnknown_083E7920[][3] =
struct UnknownStruct4
{
const u8 *const *unk0;
- u16 mapSecId;
+ u16 mapSectionId;
u16 flag;
};
@@ -1427,18 +1422,18 @@ static const u8 *const sEverGrandeCityAreaNames[] = {OtherText_PokeLeague, Other
static const struct UnknownStruct4 sUnknown_083E79C0[1] =
{
- {sEverGrandeCityAreaNames, MAPSEC_EVER_GRANDE_CITY, SYS_POKEMON_LEAGUE_FLY},
+ {sEverGrandeCityAreaNames, MAPSEC_EVER_GRANDE_CITY, FLAG_SYS_POKEMON_LEAGUE_FLY},
};
// XXX: what is this?
-static u8 *const ewram_ = ewram;
+static u8 *const ewram_ = gSharedMem;
static const struct SpritePalette sFlyTargetIconSpritePalette = {sFlyTargetIcons_Pal, 2};
// Fly targets that are not cities or towns
static const u16 sSpecialFlyAreas[][2] =
{
- // flag, mapSecId
+ // flag, mapSectionId
{0x848, MAPSEC_BATTLE_TOWER},
{0xFFFF, MAPSEC_NONE},
};
@@ -1552,10 +1547,10 @@ void CB2_InitFlyRegionMap(void)
MenuZeroFillScreen();
break;
case 3:
- InitRegionMap(&ewram0.regionMap, 0);
+ InitRegionMap(&ewram0_3.regionMap, 0);
CreateRegionMapCursor(0, 0);
CreateRegionMapPlayerIcon(1, 1);
- ewram0.unk6 = ewram0.regionMap.mapSecId;
+ ewram0_3.unk6 = ewram0_3.regionMap.mapSectionId;
StringFill(ewramBlankMapName, CHAR_SPACE, 12);
PrintFlyTargetName();
break;
@@ -1598,20 +1593,20 @@ static void VBlankCB_FlyRegionMap(void)
static void CB2_FlyRegionMap(void)
{
- ewram0.unk0();
+ ewram0_3.unk0();
AnimateSprites();
BuildOamBuffer();
}
static void sub_80FC244(void (*func)(void))
{
- ewram0.unk0 = func;
- ewram0.unk4 = 0;
+ ewram0_3.unk0 = func;
+ ewram0_3.unk4 = 0;
}
static void PrintFlyTargetName(void)
{
- if (ewram0.regionMap.unk16 == 2 || ewram0.regionMap.unk16 == 4)
+ if (ewram0_3.regionMap.unk16 == 2 || ewram0_3.regionMap.unk16 == 4)
{
u16 i = 0;
int zero;
@@ -1620,13 +1615,13 @@ static void PrintFlyTargetName(void)
{
const struct UnknownStruct4 *r4 = &sUnknown_083E79C0[i];
- if (ewram0.regionMap.mapSecId == r4->mapSecId)
+ if (ewram0_3.regionMap.mapSectionId == r4->mapSectionId)
{
if (FlagGet(r4->flag))
{
MenuDrawTextWindow(16, 14, 29, 19);
- MenuPrint(ewram0.regionMap.mapSecName, 17, 15);
- MenuPrint_RightAligned(r4->unk0[ewram0.regionMap.everGrandeCityArea], 29, 17);
+ MenuPrint(ewram0_3.regionMap.mapSectionName, 17, 15);
+ MenuPrint_RightAligned(r4->unk0[ewram0_3.regionMap.everGrandeCityArea], 29, 17);
return;
}
break;
@@ -1637,7 +1632,7 @@ static void PrintFlyTargetName(void)
if (zero == 0)
{
MenuDrawTextWindow(16, 16, 29, 19);
- MenuPrint(ewram0.regionMap.mapSecName, 17, 17);
+ MenuPrint(ewram0_3.regionMap.mapSectionName, 17, 17);
MenuZeroFillWindowRect(16, 14, 29, 15);
}
}
@@ -1696,7 +1691,7 @@ static void CreateCityTownFlyTargetIcons(void)
else
r7 += 3;
StartSpriteAnim(&gSprites[spriteId], r7);
- gSprites[spriteId].data0 = i;
+ gSprites[spriteId].data[0] = i;
}
canFlyFlag++;
}
@@ -1717,10 +1712,10 @@ static void CreateSpecialAreaFlyTargetIcons(void)
if (FlagGet(sSpecialFlyAreas[i][0]))
{
- u16 mapSecId = sSpecialFlyAreas[i][1];
+ u16 mapSectionId = sSpecialFlyAreas[i][1];
u8 spriteId;
- GetRegionMapLocationPosition(mapSecId, &x, &y, &width, &height);
+ GetRegionMapLocationPosition(mapSectionId, &x, &y, &width, &height);
x = (x + 1) * 8;
y = (y + 2) * 8;
spriteId = CreateSprite(&gFlyTargetSpriteTemplate, x, y, 10);
@@ -1729,7 +1724,7 @@ static void CreateSpecialAreaFlyTargetIcons(void)
gSprites[spriteId].oam.size = 1;
gSprites[spriteId].callback = SpriteCB_FlyTargetIcons;
StartSpriteAnim(&gSprites[spriteId], 6);
- gSprites[spriteId].data0 = mapSecId;
+ gSprites[spriteId].data[0] = mapSectionId;
}
}
}
@@ -1737,31 +1732,31 @@ static void CreateSpecialAreaFlyTargetIcons(void)
static void SpriteCB_FlyTargetIcons(struct Sprite *sprite)
{
- // Blink if our mapSecId is the one selected on the map
- if (ewram0.regionMap.mapSecId == sprite->data0)
+ // Blink if our mapSectionId is the one selected on the map
+ if (ewram0_3.regionMap.mapSectionId == sprite->data[0])
{
// Toggle visibility every 16 frames
- sprite->data1++;
- if (sprite->data1 > 16)
+ sprite->data[1]++;
+ if (sprite->data[1] > 16)
{
- sprite->data1 = 0;
+ sprite->data[1] = 0;
sprite->invisible = !sprite->invisible;
}
}
else
{
- sprite->data1 = 16;
+ sprite->data[1] = 16;
sprite->invisible = FALSE;
}
}
static void sub_80FC5B4(void)
{
- switch (ewram0.unk4)
+ switch (ewram0_3.unk4)
{
case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
- ewram0.unk4++;
+ ewram0_3.unk4++;
break;
case 1:
if (UpdatePaletteFade() != 0)
@@ -1773,7 +1768,7 @@ static void sub_80FC5B4(void)
static void sub_80FC600(void)
{
- if (ewram0.unk4 == 0)
+ if (ewram0_3.unk4 == 0)
{
switch (sub_80FAB60())
{
@@ -1785,7 +1780,7 @@ static void sub_80FC600(void)
PrintFlyTargetName();
break;
case INPUT_EVENT_A_BUTTON:
- if (ewram0.regionMap.unk16 == 2 || ewram0.regionMap.unk16 == 4)
+ if (ewram0_3.regionMap.unk16 == 2 || ewram0_3.regionMap.unk16 == 4)
{
m4aSongNumStart(SE_SELECT);
ewramA6E = 1;
@@ -1803,11 +1798,11 @@ static void sub_80FC600(void)
static void sub_80FC69C(void)
{
- switch (ewram0.unk4)
+ switch (ewram0_3.unk4)
{
case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
- ewram0.unk4++;
+ ewram0_3.unk4++;
break;
case 1:
if (UpdatePaletteFade() != 0)
@@ -1815,7 +1810,7 @@ static void sub_80FC69C(void)
FreeRegionMapIconResources();
if (ewramA6E != 0)
{
- switch (ewram0.regionMap.mapSecId)
+ switch (ewram0_3.regionMap.mapSectionId)
{
case MAPSEC_SOUTHERN_ISLAND:
sub_8053538(22);
@@ -1827,13 +1822,13 @@ static void sub_80FC69C(void)
sub_8053538((gSaveBlock2.playerGender == MALE) ? 12 : 13);
break;
case MAPSEC_EVER_GRANDE_CITY:
- sub_8053538((FlagGet(0x854) && ewram0.regionMap.everGrandeCityArea == 0) ? 20 : 11);
+ sub_8053538((FlagGet(FLAG_SYS_POKEMON_LEAGUE_FLY) && ewram0_3.regionMap.everGrandeCityArea == 0) ? 20 : 11);
break;
default:
- if (sUnknown_083E7920[ewram0.regionMap.mapSecId][2] != 0)
- sub_8053538(sUnknown_083E7920[ewram0.regionMap.mapSecId][2]);
+ if (sUnknown_083E7920[ewram0_3.regionMap.mapSectionId][2] != 0)
+ sub_8053538(sUnknown_083E7920[ewram0_3.regionMap.mapSectionId][2]);
else
- warp1_set_2(sUnknown_083E7920[ewram0.regionMap.mapSecId][0], sUnknown_083E7920[ewram0.regionMap.mapSecId][1], -1);
+ warp1_set_2(sUnknown_083E7920[ewram0_3.regionMap.mapSectionId][0], sUnknown_083E7920[ewram0_3.regionMap.mapSectionId][1], -1);
break;
}
sub_80865BC();
diff --git a/src/field/roamer.c b/src/field/roamer.c
index 948828d5e..2eb26ef9d 100644
--- a/src/field/roamer.c
+++ b/src/field/roamer.c
@@ -1,8 +1,8 @@
#include "global.h"
#include "roamer.h"
#include "pokemon.h"
-#include "rng.h"
-#include "species.h"
+#include "random.h"
+#include "constants/species.h"
#ifdef SAPPHIRE
#define ROAMER_SPECIES SPECIES_LATIAS
@@ -173,13 +173,13 @@ void CreateRoamerMonInstance(void)
struct Pokemon *mon = &gEnemyParty[0];
struct Roamer *roamer = &gSaveBlock1.roamer;
CreateMonWithIVsPersonality(mon, roamer->species, roamer->level, roamer->ivs, roamer->personality);
- SetMonData(mon, MON_DATA_STATUS, (u8 *)&roamer->status);
- SetMonData(mon, MON_DATA_HP, (u8 *)&roamer->hp);
- SetMonData(mon, MON_DATA_COOL, (u8 *)&roamer->cool);
- SetMonData(mon, MON_DATA_BEAUTY, (u8 *)&roamer->beauty);
- SetMonData(mon, MON_DATA_CUTE, (u8 *)&roamer->cute);
- SetMonData(mon, MON_DATA_SMART, (u8 *)&roamer->smart);
- SetMonData(mon, MON_DATA_TOUGH, (u8 *)&roamer->tough);
+ SetMonData(mon, MON_DATA_STATUS, &roamer->status);
+ SetMonData(mon, MON_DATA_HP, &roamer->hp);
+ SetMonData(mon, MON_DATA_COOL, &roamer->cool);
+ SetMonData(mon, MON_DATA_BEAUTY, &roamer->beauty);
+ SetMonData(mon, MON_DATA_CUTE, &roamer->cute);
+ SetMonData(mon, MON_DATA_SMART, &roamer->smart);
+ SetMonData(mon, MON_DATA_TOUGH, &roamer->tough);
}
bool8 TryStartRoamerEncounter(void)
diff --git a/src/field/rotating_gate.c b/src/field/rotating_gate.c
index e8ab7e1bf..00008c69c 100644
--- a/src/field/rotating_gate.c
+++ b/src/field/rotating_gate.c
@@ -3,8 +3,8 @@
#include "event_data.h"
#include "field_map_obj.h"
#include "fieldmap.h"
-#include "map_constants.h"
-#include "songs.h"
+#include "constants/maps.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
@@ -622,14 +622,14 @@ static EWRAM_DATA u8 gRotatingGate_PuzzleCount = 0;
static int GetCurrentMapRotatingGatePuzzleType(void)
{
- if (gSaveBlock1.location.mapGroup == MAP_GROUP_FORTREE_CITY_GYM &&
- gSaveBlock1.location.mapNum == MAP_ID_FORTREE_CITY_GYM)
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP(FORTREE_CITY_GYM) &&
+ gSaveBlock1.location.mapNum == MAP_NUM(FORTREE_CITY_GYM))
{
return PUZZLE_FORTREE_CITY_GYM;
}
- if (gSaveBlock1.location.mapGroup == MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE6 &&
- gSaveBlock1.location.mapNum == MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE6)
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP(ROUTE110_TRICK_HOUSE_PUZZLE6) &&
+ gSaveBlock1.location.mapNum == MAP_NUM(ROUTE110_TRICK_HOUSE_PUZZLE6))
{
return PUZZLE_ROUTE110_TRICK_HOUSE_PUZZLE6;
}
@@ -762,7 +762,7 @@ static u8 RotatingGate_CreateGate(u8 gateId, s16 deltaX, s16 deltaY)
y = gate->y + 7;
sprite = &gSprites[spriteId];
- sprite->data0 = gateId;
+ sprite->data[0] = gateId;
sprite->coordOffsetEnabled = 1;
sub_8060388(x + deltaX, y + deltaY, &sprite->pos1.x, &sprite->pos1.y);
@@ -778,8 +778,8 @@ static void SpriteCallback_RotatingGate(struct Sprite *sprite)
u8 orientation;
u8 affineAnimation;
- rotationDirection = sprite->data1;
- orientation = sprite->data2;
+ rotationDirection = sprite->data[1];
+ orientation = sprite->data[2];
RotatingGate_HideGatesOutsideViewport(sprite);
@@ -804,7 +804,7 @@ static void SpriteCallback_RotatingGate(struct Sprite *sprite)
StartSpriteAffineAnim(sprite, affineAnimation);
}
- sprite->data1 = ROTATE_NONE;
+ sprite->data[1] = ROTATE_NONE;
}
static void RotatingGate_HideGatesOutsideViewport(struct Sprite *sprite)
@@ -1065,8 +1065,8 @@ static void RotatingGate_TriggerRotationAnimation(u8 gateId, int rotationDirecti
if (gRotatingGate_GateSpriteIds[gateId] != MAX_SPRITES)
{
sprite = &gSprites[gRotatingGate_GateSpriteIds[gateId]];
- sprite->data1 = rotationDirection;
- sprite->data2 = RotatingGate_GetGateOrientation(gateId);
+ sprite->data[1] = rotationDirection;
+ sprite->data[2] = RotatingGate_GetGateOrientation(gateId);
}
}
diff --git a/src/field/safari_zone.c b/src/field/safari_zone.c
index 14fd1ddc4..e9ca3a9f9 100644
--- a/src/field/safari_zone.c
+++ b/src/field/safari_zone.c
@@ -37,21 +37,21 @@ extern u8 gUnknown_081C3448;
extern u8 gUnknown_081C3459;
extern u8 *gPokeblockNames[];
-extern u16 gScriptResult;
+extern u16 gSpecialVar_Result;
bool32 GetSafariZoneFlag(void)
{
- return FlagGet(SYS_SAFARI_MODE);
+ return FlagGet(FLAG_SYS_SAFARI_MODE);
}
void SetSafariZoneFlag(void)
{
- FlagSet(SYS_SAFARI_MODE);
+ FlagSet(FLAG_SYS_SAFARI_MODE);
}
void ResetSafariZoneFlag(void)
{
- FlagClear(SYS_SAFARI_MODE);
+ FlagClear(FLAG_SYS_SAFARI_MODE);
}
void EnterSafariMode(void)
@@ -137,13 +137,13 @@ void SafariZoneGetPokeblockNameInFeeder(void)
&& gPokeblockFeeders[i].x == x
&& gPokeblockFeeders[i].y == y)
{
- gScriptResult = i;
+ gSpecialVar_Result = i;
StringCopy(gStringVar1, gPokeblockNames[gPokeblockFeeders[i].pokeblock.color]);
return;
}
}
- gScriptResult = -1;
+ gSpecialVar_Result = -1;
}
static void GetPokeblockFeederWithinRange(void)
@@ -166,23 +166,23 @@ static void GetPokeblockFeederWithinRange(void)
y *= -1;
if ((x + y) <= 5)
{
- gScriptResult = i;
+ gSpecialVar_Result = i;
return;
}
}
}
- gScriptResult = -1;
+ gSpecialVar_Result = -1;
}
struct Pokeblock *unref_sub_80C8418(void)
{
SafariZoneGetPokeblockNameInFeeder();
- if (gScriptResult == 0xFFFF)
+ if (gSpecialVar_Result == 0xFFFF)
return NULL;
else
- return &gPokeblockFeeders[gScriptResult].pokeblock;
+ return &gPokeblockFeeders[gSpecialVar_Result].pokeblock;
}
@@ -190,10 +190,10 @@ struct Pokeblock *SafariZoneGetActivePokeblock(void)
{
GetPokeblockFeederWithinRange();
- if (gScriptResult == 0xFFFF)
+ if (gSpecialVar_Result == 0xFFFF)
return NULL;
else
- return &gPokeblockFeeders[gScriptResult].pokeblock;
+ return &gPokeblockFeeders[gSpecialVar_Result].pokeblock;
}
@@ -240,13 +240,13 @@ bool8 unref_sub_80C853C(void)
{
SafariZoneGetPokeblockNameInFeeder();
- if (gScriptResult == 0xFFFF)
+ if (gSpecialVar_Result == 0xFFFF)
{
return FALSE;
}
ConvertIntToDecimalStringN(gStringVar2,
- gPokeblockFeeders[gScriptResult].stepCounter,
+ gPokeblockFeeders[gSpecialVar_Result].stepCounter,
STR_CONV_MODE_LEADING_ZEROS, 3);
return TRUE;
diff --git a/src/field/scrcmd.c b/src/field/scrcmd.c
index 28584d4d0..d5fc56e8d 100644
--- a/src/field/scrcmd.c
+++ b/src/field/scrcmd.c
@@ -30,7 +30,7 @@
#include "palette.h"
#include "party_menu.h"
#include "pokemon.h"
-#include "rng.h"
+#include "random.h"
#include "overworld.h"
#include "rtc.h"
#include "script.h"
@@ -61,9 +61,9 @@ extern u16 gSpecialVar_0x8001;
extern u16 gSpecialVar_0x8002;
extern u16 gSpecialVar_0x8004;
-extern u16 gScriptResult;
+extern u16 gSpecialVar_Result;
-extern u16 gScriptContestCategory;
+extern u16 gSpecialVar_ContestCategory;
extern SpecialFunc gSpecials[];
extern u8 *gStdScripts[];
@@ -479,25 +479,25 @@ bool8 ScrCmd_random(struct ScriptContext *ctx)
{
u16 max = VarGet(ScriptReadHalfword(ctx));
- gScriptResult = Random() % max;
+ gSpecialVar_Result = Random() % max;
return FALSE;
}
-bool8 ScrCmd_additem(struct ScriptContext *ctx)
+bool8 ScrCmd_giveitem(struct ScriptContext *ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
- gScriptResult = AddBagItem(itemId, (u8)quantity);
+ gSpecialVar_Result = AddBagItem(itemId, (u8)quantity);
return FALSE;
}
-bool8 ScrCmd_removeitem(struct ScriptContext *ctx)
+bool8 ScrCmd_takeitem(struct ScriptContext *ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
- gScriptResult = RemoveBagItem(itemId, (u8)quantity);
+ gSpecialVar_Result = RemoveBagItem(itemId, (u8)quantity);
return FALSE;
}
@@ -506,7 +506,7 @@ bool8 ScrCmd_checkitemspace(struct ScriptContext *ctx)
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
- gScriptResult = CheckBagHasSpace(itemId, (u8)quantity);
+ gSpecialVar_Result = CheckBagHasSpace(itemId, (u8)quantity);
return FALSE;
}
@@ -515,7 +515,7 @@ bool8 ScrCmd_checkitem(struct ScriptContext *ctx)
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
- gScriptResult = CheckBagHasItem(itemId, (u8)quantity);
+ gSpecialVar_Result = CheckBagHasItem(itemId, (u8)quantity);
return FALSE;
}
@@ -523,16 +523,16 @@ bool8 ScrCmd_checkitemtype(struct ScriptContext *ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
- gScriptResult = GetPocketByItemId(itemId);
+ gSpecialVar_Result = GetPocketByItemId(itemId);
return FALSE;
}
-bool8 ScrCmd_addpcitem(struct ScriptContext *ctx)
+bool8 ScrCmd_givepcitem(struct ScriptContext *ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u16 quantity = VarGet(ScriptReadHalfword(ctx));
- gScriptResult = AddPCItem(itemId, quantity);
+ gSpecialVar_Result = AddPCItem(itemId, quantity);
return FALSE;
}
@@ -541,39 +541,39 @@ bool8 ScrCmd_checkpcitem(struct ScriptContext *ctx)
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u16 quantity = VarGet(ScriptReadHalfword(ctx));
- gScriptResult = CheckPCHasItem(itemId, quantity);
+ gSpecialVar_Result = CheckPCHasItem(itemId, quantity);
return FALSE;
}
-bool8 ScrCmd_adddecor(struct ScriptContext *ctx)
+bool8 ScrCmd_givedecoration(struct ScriptContext *ctx)
{
- u32 decorId = VarGet(ScriptReadHalfword(ctx));
+ u32 decoration = VarGet(ScriptReadHalfword(ctx));
- gScriptResult = IsThereStorageSpaceForDecoration(decorId);
+ gSpecialVar_Result = IsThereStorageSpaceForDecoration(decoration);
return FALSE;
}
-bool8 ScrCmd_removedecor(struct ScriptContext *ctx)
+bool8 ScrCmd_takedecoration(struct ScriptContext *ctx)
{
- u32 decorId = VarGet(ScriptReadHalfword(ctx));
+ u32 decoration = VarGet(ScriptReadHalfword(ctx));
- gScriptResult = sub_81340A8(decorId);
+ gSpecialVar_Result = sub_81340A8(decoration);
return FALSE;
}
-bool8 ScrCmd_checkdecor(struct ScriptContext *ctx)
+bool8 ScrCmd_checkdecorspace(struct ScriptContext *ctx)
{
u32 decorId = VarGet(ScriptReadHalfword(ctx));
- gScriptResult = sub_8134074(decorId);
+ gSpecialVar_Result = sub_8134074(decorId);
return FALSE;
}
-bool8 ScrCmd_hasdecor(struct ScriptContext *ctx)
+bool8 ScrCmd_checkdecor(struct ScriptContext *ctx)
{
u32 decorId = VarGet(ScriptReadHalfword(ctx));
- gScriptResult = sub_8133FE4(decorId);
+ gSpecialVar_Result = sub_8133FE4(decorId);
return FALSE;
}
@@ -601,14 +601,14 @@ bool8 ScrCmd_incrementgamestat(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_animdarklevel(struct ScriptContext *ctx)
+bool8 ScrCmd_animateflash(struct ScriptContext *ctx)
{
sub_8081594(ScriptReadByte(ctx));
ScriptContext1_Stop();
return TRUE;
}
-bool8 ScrCmd_setdarklevel(struct ScriptContext *ctx)
+bool8 ScrCmd_setflashradius(struct ScriptContext *ctx)
{
u16 flashLevel = VarGet(ScriptReadHalfword(ctx));
@@ -631,7 +631,7 @@ bool8 ScrCmd_fadescreen(struct ScriptContext *ctx)
return TRUE;
}
-bool8 ScrCmd_fadescreendelay(struct ScriptContext *ctx)
+bool8 ScrCmd_fadescreenspeed(struct ScriptContext *ctx)
{
u8 duration = ScriptReadByte(ctx);
u8 delay = ScriptReadByte(ctx);
@@ -641,7 +641,7 @@ bool8 ScrCmd_fadescreendelay(struct ScriptContext *ctx)
return TRUE;
}
-bool8 s28_pause_asm()
+bool8 RunPauseTimer()
{
sPauseCounter--;
@@ -654,7 +654,7 @@ bool8 s28_pause_asm()
bool8 ScrCmd_delay(struct ScriptContext *ctx)
{
sPauseCounter = ScriptReadHalfword(ctx);
- SetupNativeScript(ctx, s28_pause_asm);
+ SetupNativeScript(ctx, RunPauseTimer);
return TRUE;
}
@@ -692,7 +692,7 @@ bool8 ScrCmd_setweather(struct ScriptContext *ctx)
bool8 ScrCmd_resetweather(struct ScriptContext *ctx)
{
- sub_80806E4();
+ SetSav1WeatherFromCurrMapHeader();
return FALSE;
}
@@ -702,7 +702,7 @@ bool8 ScrCmd_doweather(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_tileeffect(struct ScriptContext *ctx)
+bool8 ScrCmd_setstepcallback(struct ScriptContext *ctx)
{
ActivatePerStepCallback(ScriptReadByte(ctx));
return FALSE;
@@ -859,9 +859,9 @@ bool8 ScrCmd_getplayerxy(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_countpokemon(struct ScriptContext *ctx)
+bool8 ScrCmd_getpartysize(struct ScriptContext *ctx)
{
- gScriptResult = CalculatePlayerPartyCount();
+ gSpecialVar_Result = CalculatePlayerPartyCount();
return FALSE;
}
@@ -871,7 +871,7 @@ bool8 ScrCmd_playse(struct ScriptContext *ctx)
return FALSE;
}
-static bool8 WaitForSoundEffectFinish()
+static bool8 WaitForSoundEffectFinish(void)
{
if (!IsSEPlaying())
return TRUE;
@@ -891,7 +891,7 @@ bool8 ScrCmd_playfanfare(struct ScriptContext *ctx)
return FALSE;
}
-static bool8 WaitForFanfareFinish()
+static bool8 WaitForFanfareFinish(void)
{
return IsFanfareTaskInactive();
}
@@ -1073,7 +1073,7 @@ bool8 ScrCmd_moveobjectoffscreen(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_showobject(struct ScriptContext *ctx)
+bool8 ScrCmd_showobjectat(struct ScriptContext *ctx)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
u8 mapGroup = ScriptReadByte(ctx);
@@ -1083,7 +1083,7 @@ bool8 ScrCmd_showobject(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_hideobject(struct ScriptContext *ctx)
+bool8 ScrCmd_hideobjectat(struct ScriptContext *ctx)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
u8 mapGroup = ScriptReadByte(ctx);
@@ -1267,7 +1267,7 @@ static bool8 WaitForAorBPress(void)
return FALSE;
}
-bool8 ScrCmd_waitbutton(struct ScriptContext *ctx)
+bool8 ScrCmd_waitbuttonpress(struct ScriptContext *ctx)
{
SetupNativeScript(ctx, WaitForAorBPress);
return TRUE;
@@ -1386,7 +1386,7 @@ bool8 ScrCmd_drawboxtext(struct ScriptContext *ctx)
}
}
-bool8 ScrCmd_drawpokepic(struct ScriptContext *ctx)
+bool8 ScrCmd_drawmonpic(struct ScriptContext *ctx)
{
u16 species = VarGet(ScriptReadHalfword(ctx));
u8 x = ScriptReadByte(ctx);
@@ -1396,7 +1396,7 @@ bool8 ScrCmd_drawpokepic(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_erasepokepic(struct ScriptContext *ctx)
+bool8 ScrCmd_erasemonpic(struct ScriptContext *ctx)
{
bool8 (*func)(void) = ScriptMenu_GetPicboxWaitFunc();
@@ -1441,7 +1441,7 @@ bool8 ScrCmd_vmessage(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_getspeciesname(struct ScriptContext *ctx)
+bool8 ScrCmd_bufferspeciesname(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 species = VarGet(ScriptReadHalfword(ctx));
@@ -1450,7 +1450,7 @@ bool8 ScrCmd_getspeciesname(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_getfirstpartypokename(struct ScriptContext *ctx)
+bool8 ScrCmd_bufferleadmonspeciesname(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
@@ -1461,7 +1461,7 @@ bool8 ScrCmd_getfirstpartypokename(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_getpartypokename(struct ScriptContext *ctx)
+bool8 ScrCmd_bufferpartymonnick(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 partyIndex = VarGet(ScriptReadHalfword(ctx));
@@ -1471,7 +1471,7 @@ bool8 ScrCmd_getpartypokename(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_getitemname(struct ScriptContext *ctx)
+bool8 ScrCmd_bufferitemname(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 itemId = VarGet(ScriptReadHalfword(ctx));
@@ -1480,7 +1480,7 @@ bool8 ScrCmd_getitemname(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_getdecorname(struct ScriptContext *ctx)
+bool8 ScrCmd_bufferdecorationname(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 decorId = VarGet(ScriptReadHalfword(ctx));
@@ -1489,7 +1489,7 @@ bool8 ScrCmd_getdecorname(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_getmovename(struct ScriptContext *ctx)
+bool8 ScrCmd_buffermovename(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 moveId = VarGet(ScriptReadHalfword(ctx));
@@ -1498,7 +1498,7 @@ bool8 ScrCmd_getmovename(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_getnumberstring(struct ScriptContext *ctx)
+bool8 ScrCmd_buffernumberstring(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 v1 = VarGet(ScriptReadHalfword(ctx));
@@ -1508,7 +1508,7 @@ bool8 ScrCmd_getnumberstring(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_getstdstring(struct ScriptContext *ctx)
+bool8 ScrCmd_bufferstdstring(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 index = VarGet(ScriptReadHalfword(ctx));
@@ -1517,7 +1517,7 @@ bool8 ScrCmd_getstdstring(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_getstring(struct ScriptContext *ctx)
+bool8 ScrCmd_bufferstring(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u8 *text = (u8 *)ScriptReadWord(ctx);
@@ -1526,7 +1526,7 @@ bool8 ScrCmd_getstring(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_vloadword(struct ScriptContext *ctx)
+bool8 ScrCmd_vloadptr(struct ScriptContext *ctx)
{
u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gUnknown_0202E8B0);
@@ -1534,7 +1534,7 @@ bool8 ScrCmd_vloadword(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_vgetstring(struct ScriptContext *ctx)
+bool8 ScrCmd_vbufferstring(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u32 addr = ScriptReadWord(ctx);
@@ -1545,7 +1545,7 @@ bool8 ScrCmd_vgetstring(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_givepoke(struct ScriptContext *ctx)
+bool8 ScrCmd_givemon(struct ScriptContext *ctx)
{
u16 species = VarGet(ScriptReadHalfword(ctx));
u8 level = ScriptReadByte(ctx);
@@ -1554,7 +1554,7 @@ bool8 ScrCmd_givepoke(struct ScriptContext *ctx)
u32 unkParam2 = ScriptReadWord(ctx);
u8 unkParam3 = ScriptReadByte(ctx);
- gScriptResult = ScriptGiveMon(species, level, item, unkParam1, unkParam2, unkParam3);
+ gSpecialVar_Result = ScriptGiveMon(species, level, item, unkParam1, unkParam2, unkParam3);
return FALSE;
}
@@ -1562,11 +1562,11 @@ bool8 ScrCmd_giveegg(struct ScriptContext *ctx)
{
u16 species = VarGet(ScriptReadHalfword(ctx));
- gScriptResult = ScriptGiveEgg(species);
+ gSpecialVar_Result = ScriptGiveEgg(species);
return FALSE;
}
-bool8 ScrCmd_setpokemove(struct ScriptContext *ctx)
+bool8 ScrCmd_setmonmove(struct ScriptContext *ctx)
{
u8 partyIndex = ScriptReadByte(ctx);
u8 slot = ScriptReadByte(ctx);
@@ -1576,13 +1576,13 @@ bool8 ScrCmd_setpokemove(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_checkpokemove(struct ScriptContext *ctx)
+bool8 ScrCmd_checkpartymove(struct ScriptContext *ctx)
{
u8 i;
u16 moveId = ScriptReadHalfword(ctx);
- gScriptResult = 6;
- for (i = 0; i < 6; i++)
+ gSpecialVar_Result = 6;
+ for (i = 0; i < PARTY_SIZE; i++)
{
u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL);
if (!species)
@@ -1590,7 +1590,7 @@ bool8 ScrCmd_checkpokemove(struct ScriptContext *ctx)
// UB: GetMonData() arguments don't match function definition
if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) && pokemon_has_move(&gPlayerParty[i], moveId) == TRUE)
{
- gScriptResult = i;
+ gSpecialVar_Result = i;
gSpecialVar_0x8004 = species;
break;
}
@@ -1624,7 +1624,7 @@ bool8 ScrCmd_checkmoney(struct ScriptContext *ctx)
u8 ignore = ScriptReadByte(ctx);
if (!ignore)
- gScriptResult = IsEnoughMoney(gSaveBlock1.money, amount);
+ gSpecialVar_Result = IsEnoughMoney(gSaveBlock1.money, amount);
return FALSE;
}
@@ -1692,19 +1692,19 @@ bool8 ScrCmd_trainerbattle(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_battlebegin(struct ScriptContext *ctx)
+bool8 ScrCmd_trainerbattlebegin(struct ScriptContext *ctx)
{
BattleSetup_StartTrainerBattle();
return TRUE;
}
-bool8 ScrCmd_ontrainerbattleend(struct ScriptContext *ctx)
+bool8 ScrCmd_gotopostbattlescript(struct ScriptContext *ctx)
{
ctx->scriptPtr = BattleSetup_GetScriptAddrAfterBattle();
return FALSE;
}
-bool8 ScrCmd_ontrainerbattleendgoto(struct ScriptContext *ctx)
+bool8 ScrCmd_gotobeatenscript(struct ScriptContext *ctx)
{
ctx->scriptPtr = BattleSetup_GetTrainerPostBattleScript();
return FALSE;
@@ -1760,7 +1760,7 @@ bool8 ScrCmd_pokemart(struct ScriptContext *ctx)
return TRUE;
}
-bool8 ScrCmd_pokemartdecor(struct ScriptContext *ctx)
+bool8 ScrCmd_pokemartdecoration(struct ScriptContext *ctx)
{
void *ptr = (void *)ScriptReadWord(ctx);
@@ -1769,7 +1769,7 @@ bool8 ScrCmd_pokemartdecor(struct ScriptContext *ctx)
return TRUE;
}
-bool8 ScrCmd_pokemartbp(struct ScriptContext *ctx)
+bool8 ScrCmd_pokemartdecoration2(struct ScriptContext *ctx)
{
void *ptr = (void *)ScriptReadWord(ctx);
@@ -1787,7 +1787,7 @@ bool8 ScrCmd_playslotmachine(struct ScriptContext *ctx)
return TRUE;
}
-bool8 ScrCmd_plantberrytree(struct ScriptContext *ctx)
+bool8 ScrCmd_setberrytree(struct ScriptContext *ctx)
{
u8 treeId = ScriptReadByte(ctx);
u8 berry = ScriptReadByte(ctx);
@@ -1804,11 +1804,11 @@ bool8 ScrCmd_getpricereduction(struct ScriptContext *ctx)
{
u16 value = VarGet(ScriptReadHalfword(ctx));
- gScriptResult = GetPriceReduction(value);
+ gSpecialVar_Result = GetPriceReduction(value);
return FALSE;
}
-bool8 ScrCmd_choosecontestpkmn(struct ScriptContext *ctx)
+bool8 ScrCmd_choosecontestmon(struct ScriptContext *ctx)
{
sub_80F99CC();
ScriptContext1_Stop();
@@ -1831,7 +1831,7 @@ bool8 ScrCmd_showcontestresults(struct ScriptContext *ctx)
bool8 ScrCmd_contestlinktransfer(struct ScriptContext *ctx)
{
- sub_80C4980(gScriptContestCategory);
+ sub_80C4980(gSpecialVar_ContestCategory);
ScriptContext1_Stop();
return TRUE;
}
@@ -1845,7 +1845,7 @@ bool8 ScrCmd_dofieldeffect(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_setfieldeffect(struct ScriptContext *ctx)
+bool8 ScrCmd_setfieldeffectargument(struct ScriptContext *ctx)
{
u8 argNum = ScriptReadByte(ctx);
@@ -1868,7 +1868,7 @@ bool8 ScrCmd_waitfieldeffect(struct ScriptContext *ctx)
return TRUE;
}
-bool8 ScrCmd_sethealplace(struct ScriptContext *ctx)
+bool8 ScrCmd_setrespawn(struct ScriptContext *ctx)
{
u16 healLocationId = VarGet(ScriptReadHalfword(ctx));
@@ -1878,11 +1878,11 @@ bool8 ScrCmd_sethealplace(struct ScriptContext *ctx)
bool8 ScrCmd_checkplayergender(struct ScriptContext *ctx)
{
- gScriptResult = gSaveBlock2.playerGender;
+ gSpecialVar_Result = gSaveBlock2.playerGender;
return FALSE;
}
-bool8 ScrCmd_playpokecry(struct ScriptContext *ctx)
+bool8 ScrCmd_playmoncry(struct ScriptContext *ctx)
{
u16 species = VarGet(ScriptReadHalfword(ctx));
u16 mode = VarGet(ScriptReadHalfword(ctx));
@@ -1891,25 +1891,25 @@ bool8 ScrCmd_playpokecry(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_waitpokecry(struct ScriptContext *ctx)
+bool8 ScrCmd_waitmoncry(struct ScriptContext *ctx)
{
SetupNativeScript(ctx, IsCryFinished);
return TRUE;
}
-bool8 ScrCmd_setmaptile(struct ScriptContext *ctx)
+bool8 ScrCmd_setmetatile(struct ScriptContext *ctx)
{
u16 x = VarGet(ScriptReadHalfword(ctx));
u16 y = VarGet(ScriptReadHalfword(ctx));
- u16 tileId = VarGet(ScriptReadHalfword(ctx));
+ u16 metatileId = VarGet(ScriptReadHalfword(ctx));
u16 v8 = VarGet(ScriptReadHalfword(ctx));
x += 7;
y += 7;
if (!v8)
- MapGridSetMetatileIdAt(x, y, tileId);
+ MapGridSetMetatileIdAt(x, y, metatileId);
else
- MapGridSetMetatileIdAt(x, y, tileId | 0xC00);
+ MapGridSetMetatileIdAt(x, y, metatileId | 0xC00);
return FALSE;
}
@@ -2002,9 +2002,9 @@ bool8 ScrCmd_givecoins(struct ScriptContext *ctx)
u16 coins = VarGet(ScriptReadHalfword(ctx));
if (GiveCoins(coins) == TRUE)
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
else
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
return FALSE;
}
@@ -2013,8 +2013,8 @@ bool8 ScrCmd_takecoins(struct ScriptContext *ctx)
u16 coins = VarGet(ScriptReadHalfword(ctx));
if (TakeCoins(coins) == TRUE)
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
else
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
return FALSE;
}
diff --git a/src/field/script_menu.c b/src/field/script_menu.c
index e25e74d8c..9f3ab75cc 100644
--- a/src/field/script_menu.c
+++ b/src/field/script_menu.c
@@ -6,7 +6,7 @@
#include "menu.h"
#include "palette.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "strings.h"
@@ -580,7 +580,7 @@ const u8 *const gUnknown_083CE048[] =
extern u8 gPCText_WhichPCShouldBeAccessed[];
-extern u16 gScriptResult;
+extern u16 gSpecialVar_Result;
static void Task_HandleMultichoiceInput(u8);
static void Task_HandleYesNoInput(u8);
@@ -599,7 +599,7 @@ bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 multichoiceId, u8 ignoreBPress)
}
else
{
- gScriptResult = 0xFF;
+ gSpecialVar_Result = 0xFF;
DrawMultichoiceMenu(left, top, gMultichoiceLists[multichoiceId].count, gMultichoiceLists[multichoiceId].list, ignoreBPress, 0);
return TRUE;
}
@@ -613,7 +613,7 @@ bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 multichoiceId, u8 ig
}
else
{
- gScriptResult = 0xFF;
+ gSpecialVar_Result = 0xFF;
DrawMultichoiceMenu(left, top, gMultichoiceLists[multichoiceId].count, gMultichoiceLists[multichoiceId].list, ignoreBPress, defaultChoice);
return TRUE;
}
@@ -698,11 +698,11 @@ static void Task_HandleMultichoiceInput(u8 taskId)
if (gTasks[taskId].tIgnoreBPress)
return;
PlaySE(SE_SELECT);
- gScriptResult = 127;
+ gSpecialVar_Result = 127;
}
else
{
- gScriptResult = selection;
+ gSpecialVar_Result = selection;
}
HandleDestroyMenuCursors();
MenuZeroFillWindowRect(gTasks[taskId].tLeft, gTasks[taskId].tTop, gTasks[taskId].tRight, gTasks[taskId].tBottom);
@@ -720,7 +720,7 @@ bool8 Multichoice(u8 left, u8 top, u8 multichoiceId, u8 ignoreBPress)
}
else
{
- gScriptResult = 0xFF;
+ gSpecialVar_Result = 0xFF;
sub_80B53B4(left, top, gMultichoiceLists[multichoiceId].count, gMultichoiceLists[multichoiceId].list, ignoreBPress);
return TRUE;
}
@@ -760,7 +760,7 @@ bool8 ScriptMenu_YesNo(u8 left, u8 top)
}
else
{
- gScriptResult = 0xFF;
+ gSpecialVar_Result = 0xFF;
DisplayYesNoMenu(left, top, 1);
taskId = CreateTask(Task_HandleYesNoInput, 0x50);
gTasks[taskId].tLeft = left;
@@ -772,7 +772,7 @@ bool8 ScriptMenu_YesNo(u8 left, u8 top)
// unused
bool8 IsScriptActive(void)
{
- if (gScriptResult == 0xFF)
+ if (gSpecialVar_Result == 0xFF)
return FALSE;
else
return TRUE;
@@ -795,10 +795,10 @@ static void Task_HandleYesNoInput(u8 taskId)
case -1:
case 1:
PlaySE(SE_SELECT);
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
break;
case 0:
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
break;
}
@@ -823,7 +823,7 @@ bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 ignoreBPr
u8 taskId;
u8 width;
- gScriptResult = 0xFF;
+ gSpecialVar_Result = 0xFF;
sub_807274C(left, top, gMultichoiceLists[multichoiceId].count, 0, gMultichoiceLists[multichoiceId].list, columnCount, 0);
@@ -860,11 +860,11 @@ static void Task_HandleMultichoiceGridInput(u8 taskId)
if (gTasks[taskId].tIgnoreBPress)
return;
PlaySE(SE_SELECT);
- gScriptResult = 127;
+ gSpecialVar_Result = 127;
}
else
{
- gScriptResult = selection;
+ gSpecialVar_Result = selection;
}
HandleDestroyMenuCursors();
MenuZeroFillWindowRect(gTasks[taskId].tLeft, gTasks[taskId].tTop, gTasks[taskId].tRight, gTasks[taskId].tBottom);
@@ -888,7 +888,7 @@ bool8 ScrSpecial_CreatePCMenu(void)
}
else
{
- gScriptResult = 0xFF;
+ gSpecialVar_Result = 0xFF;
ScriptMenu_CreatePCMenu();
return TRUE;
}
@@ -906,7 +906,7 @@ void ScriptMenu_CreatePCMenu(void)
else
width = 8;
- if (FlagGet(SYS_GAME_CLEAR)) // player has cleared game?
+ if (FlagGet(FLAG_SYS_GAME_CLEAR)) // player has cleared game?
{
numChoices = 4;
MenuDrawTextWindow(0, 0, width + 2, 9);
@@ -920,7 +920,7 @@ void ScriptMenu_CreatePCMenu(void)
MenuPrint(gPCText_LogOff, 1, 5);
}
- if (FlagGet(SYS_PC_LANETTE)) // player met lanette?
+ if (FlagGet(FLAG_SYS_PC_LANETTE)) // player met lanette?
MenuPrint(gPCText_LanettesPC, 1, 1);
else
MenuPrint(gPCText_SomeonesPC, 1, 1);
diff --git a/src/field/script_movement.c b/src/field/script_movement.c
index 30e10b451..c7ce55171 100644
--- a/src/field/script_movement.c
+++ b/src/field/script_movement.c
@@ -5,19 +5,19 @@
#include "task.h"
#include "util.h"
-static EWRAM_DATA u8 *gUnknown_020384F8[16] = {0};
+static EWRAM_DATA const u8 *gUnknown_020384F8[16] = {0};
static void sub_80A2198(u8);
static u8 sub_80A21E0(void);
-static bool8 sub_80A21F4(u8, u8, u8 *);
+static bool8 sub_80A21F4(u8, u8, const u8 *);
static u8 sub_80A2260(u8, u8);
static bool8 sub_80A2370(u8, u8);
-static void sub_80A23C8(u8, u8, u8, u8 *);
+static void sub_80A23C8(u8, u8, u8, const u8 *);
static void UnfreezeObjects(u8);
static void Task_80A244C(u8);
-static void sub_80A2490(u8, u8, u8, u8 *);
+static void sub_80A2490(u8, u8, u8, const u8 *);
-bool8 ScriptMovement_StartObjectMovementScript(u8 localId, u8 mapNum, u8 mapGroup, u8 *movementScript)
+bool8 ScriptMovement_StartObjectMovementScript(u8 localId, u8 mapNum, u8 mapGroup, const u8 *movementScript)
{
u8 mapObjId;
@@ -70,7 +70,7 @@ static u8 sub_80A21E0(void)
return FindTaskIdByFunc(Task_80A244C);
}
-static bool8 sub_80A21F4(u8 taskId, u8 mapObjId, u8 *movementScript)
+static bool8 sub_80A21F4(u8 taskId, u8 mapObjId, const u8 *movementScript)
{
u8 r4;
@@ -160,17 +160,17 @@ static bool8 sub_80A2370(u8 taskId, u8 b)
return FALSE;
}
-static void npc_obj_offscreen_culling_and_flag_update(u8 a, u8 *movementScript)
+static void npc_obj_offscreen_culling_and_flag_update(u8 a, const u8 *movementScript)
{
gUnknown_020384F8[a] = movementScript;
}
-static u8 *sub_80A23B8(u8 a)
+static const u8 *sub_80A23B8(u8 a)
{
return gUnknown_020384F8[a];
}
-static void sub_80A23C8(u8 taskId, u8 b, u8 mapObjId, u8 *movementScript)
+static void sub_80A23C8(u8 taskId, u8 b, u8 mapObjId, const u8 *movementScript)
{
sub_80A2318(taskId, b);
npc_obj_offscreen_culling_and_flag_update(b, movementScript);
@@ -203,7 +203,7 @@ static void Task_80A244C(u8 taskId)
}
}
-static void sub_80A2490(u8 taskId, u8 b, u8 mapObjId, u8 *d)
+static void sub_80A2490(u8 taskId, u8 b, u8 mapObjId, const u8 *d)
{
u8 var;
diff --git a/src/field/secret_base.c b/src/field/secret_base.c
index f221d7f16..7589ab1e3 100644
--- a/src/field/secret_base.c
+++ b/src/field/secret_base.c
@@ -1,51 +1,135 @@
#include "global.h"
+#include "constants/decorations.h"
#include "secret_base.h"
#include "decoration.h"
+#include "constants/species.h"
+#include "constants/items.h"
+#include "constants/moves.h"
#include "event_data.h"
#include "field_camera.h"
+#include "field_effect.h"
#include "field_fadetransition.h"
#include "field_player_avatar.h"
+#include "field_specials.h"
#include "field_weather.h"
#include "fieldmap.h"
+#include "fldeff_decoration.h"
+#include "link.h"
#include "main.h"
-#include "map_constants.h"
+#include "sound.h"
+#include "constants/songs.h"
+#include "constants/maps.h"
#include "map_name_popup.h"
#include "menu.h"
+#include "menu_helpers.h"
#include "metatile_behavior.h"
#include "palette.h"
#include "pokemon.h"
#include "overworld.h"
#include "script.h"
+#include "sound.h"
+#include "constants/species.h"
#include "string_util.h"
#include "strings.h"
#include "task.h"
#include "text.h"
-#include "vars.h"
+#include "constants/vars.h"
+
+static void sub_80BC7D8(u8 taskId);
+static void sub_80BC824(u8 taskId);
+static u8 sub_80BC948(u8 a);
+static void sub_80BC980(u8 taskId);
+static void sub_80BC9E4(u8 taskId);
+static void sub_80BCA84(u8);
+static void sub_80BCAEC(u8 taskId);
+static void sub_80BCB90(u8);
+static void sub_80BCBC0(u8);
+static void sub_80BCBF8(u8 taskId);
+static void sub_80BCC54(u8 taskId);
+static void Task_SecretBasePC_Registry(u8 taskId);
+
+extern u8 gUnknown_0815F399[];
+extern u8 gUnknown_0815F49A[];
extern u8 gUnknown_020387DC;
-extern u16 gSpecialVar_0x8004;
-extern u16 gSpecialVar_0x8005;
-extern u16 gSpecialVar_0x8006;
-extern u16 gSpecialVar_0x8007;
-extern u16 gScriptResult;
-extern const struct
+
+const struct
{
u16 unk_083D1358_0;
u16 unk_083D1358_1;
-} gUnknown_083D1358[7];
-extern const u8 gUnknown_083D1374[4 * 16];
+} gUnknown_083D1358[] = {
+ {0x26, 0x36},
+ {0x27, 0x37},
+ {0x1a0, 0x1a1},
+ {0x1a8, 0x1a9},
+ {0x1b0, 0x1b1},
+ {0x208, 0x210},
+ {0x271, 0x278}
+};
+
+
+const u8 gUnknown_083D1374[] = {
+ MAP_NUM(SECRET_BASE_RED_CAVE1), 0, 1, 3,
+ MAP_NUM(SECRET_BASE_RED_CAVE2), 0, 5, 9,
+ MAP_NUM(SECRET_BASE_RED_CAVE3), 0, 1, 3,
+ MAP_NUM(SECRET_BASE_RED_CAVE4), 0, 7, 13,
+ MAP_NUM(SECRET_BASE_BROWN_CAVE1), 0, 2, 3,
+ MAP_NUM(SECRET_BASE_BROWN_CAVE2), 0, 9, 2,
+ MAP_NUM(SECRET_BASE_BROWN_CAVE3), 0, 13, 4,
+ MAP_NUM(SECRET_BASE_BROWN_CAVE4), 0, 1, 2,
+ MAP_NUM(SECRET_BASE_BLUE_CAVE1), 0, 1, 3,
+ MAP_NUM(SECRET_BASE_BLUE_CAVE2), 0, 1, 2,
+ MAP_NUM(SECRET_BASE_BLUE_CAVE3), 0, 3, 15,
+ MAP_NUM(SECRET_BASE_BLUE_CAVE4), 0, 3, 14,
+ MAP_NUM(SECRET_BASE_YELLOW_CAVE1), 0, 9, 3,
+ MAP_NUM(SECRET_BASE_YELLOW_CAVE2), 0, 8, 7,
+ MAP_NUM(SECRET_BASE_YELLOW_CAVE3), 0, 3, 6,
+ MAP_NUM(SECRET_BASE_YELLOW_CAVE4), 0, 5, 9,
+ MAP_NUM(SECRET_BASE_TREE1), 0, 2, 3,
+ MAP_NUM(SECRET_BASE_TREE2), 0, 5, 6,
+ MAP_NUM(SECRET_BASE_TREE3), 0, 15, 3,
+ MAP_NUM(SECRET_BASE_TREE4), 0, 4, 10,
+ MAP_NUM(SECRET_BASE_SHRUB1), 0, 3, 3,
+ MAP_NUM(SECRET_BASE_SHRUB2), 0, 1, 2,
+ MAP_NUM(SECRET_BASE_SHRUB3), 0, 7, 8,
+ MAP_NUM(SECRET_BASE_SHRUB4), 0, 9, 6
+};
+
+const struct MenuAction2 gUnknown_083D13D4[] = {
+ {SecretBaseText_DelRegist, sub_80BCA84},
+ {gUnknownText_Exit, sub_80BCBF8}
+};
+
+const struct YesNoFuncTable gUnknown_083D13E4 = {
+ sub_80BCB90,
+ sub_80BCBC0
+};
+
+const u8 gUnknown_083D13EC[] = {
+ 0x23,0x24,0xF,0x1F,0x21,0x2F,0xE,0x14,0x20,0x22,0x0,0x0
+};
+
extern void *gUnknown_0300485C;
-extern const u8 gUnknown_083D13EC[12];
extern u8 gUnknown_081A2E14[];
+extern u8 UnknownString_81A1BB2[];
+extern u8 UnknownString_81A1F67[];
+extern u8 UnknownString_81A2254[];
+extern u8 UnknownString_81A25C3[];
+extern u8 UnknownString_81A2925[];
+extern u8 UnknownString_81A1D74[];
+extern u8 UnknownString_81A20C9[];
+extern u8 UnknownString_81A2439[];
+extern u8 UnknownString_81A2B2A[];
+extern u8 UnknownString_81A2754[];
-void sub_80BB4AC(struct SecretBaseRecord *record) // 080bb4ac
+void ClearSecretBase(struct SecretBaseRecord *record)
{
u16 i;
u16 j;
- record->sbr_field_0 = 0;
- for (i=0; i<7; i++)
- record->sbr_field_2[i] = 0xff;
+ record->secretBaseId = 0;
+ for (i=0; i<OT_NAME_LENGTH; i++)
+ record->playerName[i] = 0xff;
for (i=0; i<4; i++)
record->trainerId[i] = 0x00;
record->sbr_field_e = 0;
@@ -71,42 +155,42 @@ void sub_80BB4AC(struct SecretBaseRecord *record) // 080bb4ac
}
}
-void ResetSecretBase(u8 idx) // 80bb594
+void ResetSecretBase(u8 idx)
{
- sub_80BB4AC(&(gSaveBlock1.secretBases[idx]));
+ ClearSecretBase(&gSaveBlock1.secretBases[idx]);
}
-void ResetSecretBases(void) // 080bb5b4
+void ResetSecretBases(void)
{
u16 i;
- for (i=0; i<20; i++)
+ for (i = 0; i < MAX_SECRET_BASES; i++)
ResetSecretBase(i);
}
-void sub_80BB5D0(void) // 080bb5d0
+void sub_80BB5D0(void)
{
gUnknown_020387DC = gSpecialVar_0x8004;
}
-void sub_80BB5E4(void) // 80bb5e4
+void sub_80BB5E4(void)
{
- u16 idx;
- gScriptResult = 0;
- for (idx=0; idx<20; idx++) {
- if (gUnknown_020387DC != gSaveBlock1.secretBases[idx].sbr_field_0)
+ u16 i;
+ gSpecialVar_Result = 0;
+ for (i = 0; i < MAX_SECRET_BASES; i++) {
+ if (gUnknown_020387DC != gSaveBlock1.secretBases[i].secretBaseId)
continue;
- gScriptResult = 1;
- VarSet(VAR_0x4054, idx);
+ gSpecialVar_Result = 1;
+ VarSet(VAR_0x4054, i);
break;
}
}
void sub_80BB63C(void) // 80bb63c
{
- if (gSaveBlock1.secretBases[0].sbr_field_0)
- gScriptResult = 1;
+ if (gSaveBlock1.secretBases[0].secretBaseId)
+ gSpecialVar_Result = 1;
else
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
}
u8 sub_80BB66C(void) // 80bb66c
@@ -196,14 +280,14 @@ void sub_80BB8CC(void)
{
u8 nameLength;
u16 idx;
- gSaveBlock1.secretBases[0].sbr_field_0 = gUnknown_020387DC;
+ gSaveBlock1.secretBases[0].secretBaseId = gUnknown_020387DC;
for (idx=0; idx<4; idx++) {
gSaveBlock1.secretBases[0].trainerId[idx] = gSaveBlock2.playerTrainerId[idx];
}
VarSet(VAR_0x4054, 0);
nameLength = sub_80BB8A8(gSaveBlock2.playerName);
- memset(gSaveBlock1.secretBases[0].sbr_field_2, 0xFF, 7);
- StringCopyN(gSaveBlock1.secretBases[0].sbr_field_2, gSaveBlock2.playerName, nameLength);
+ memset(gSaveBlock1.secretBases[0].playerName, 0xFF, OT_NAME_LENGTH);
+ StringCopyN(gSaveBlock1.secretBases[0].playerName, gSaveBlock2.playerName, nameLength);
gSaveBlock1.secretBases[0].gender = gSaveBlock2.playerGender;
VarSet(VAR_SECRET_BASE_MAP, gMapHeader.regionMapSectionId);
}
@@ -214,8 +298,8 @@ void sub_80BB970(struct MapEvents *events)
s16 tile_id;
for (bgevidx=0; bgevidx<events->bgEventCount; bgevidx++) {
if (events->bgEvents[bgevidx].kind == 8) {
- for (jdx=0; jdx<20; jdx++) {
- if (gSaveBlock1.secretBases[jdx].sbr_field_0 == events->bgEvents[bgevidx].bgUnion.secretBaseId) {
+ for (jdx=0; jdx<MAX_SECRET_BASES; jdx++) {
+ if (gSaveBlock1.secretBases[jdx].secretBaseId == events->bgEvents[bgevidx].bgUnion.secretBaseId) {
tile_id = MapGridGetMetatileIdAt(events->bgEvents[bgevidx].x + 7, events->bgEvents[bgevidx].y + 7);
for (idx=0; idx<7; idx++) {
if (gUnknown_083D1358[idx].unk_083D1358_0 == tile_id) {
@@ -233,7 +317,7 @@ void sub_80BB970(struct MapEvents *events)
void sub_80BBA14(void)
{
s8 idx = 4 * (gUnknown_020387DC / 10);
- warp1_set_2(MAP_GROUP_SECRET_BASE_RED_CAVE1, gUnknown_083D1374[idx], gUnknown_083D1374[idx + 1]);
+ warp1_set_2(MAP_GROUP(SECRET_BASE_RED_CAVE1), gUnknown_083D1374[idx], gUnknown_083D1374[idx + 1]);
}
void sub_80BBA48(u8 taskid)
@@ -251,7 +335,7 @@ void sub_80BBA48(u8 taskid)
case 2:
curbaseid = VarGet(VAR_0x4054);
if (gSaveBlock1.secretBases[curbaseid].sbr_field_10 < 0xff)
- gSaveBlock1.secretBases[curbaseid].sbr_field_10 ++;
+ gSaveBlock1.secretBases[curbaseid].sbr_field_10++;
sub_80BBA14();
warp_in();
gFieldCallback = sub_8080990;
@@ -318,12 +402,11 @@ void sub_80BBC78(void)
bool8 CurrentMapIsSecretBase(void)
{
- if (gSaveBlock1.location.mapGroup == MAP_GROUP_SECRET_BASE_SHRUB4 && (u8)(gSaveBlock1.location.mapNum) <= MAP_ID_SECRET_BASE_SHRUB4)
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP(SECRET_BASE_SHRUB4) && (u8)(gSaveBlock1.location.mapNum) <= MAP_NUM(SECRET_BASE_SHRUB4))
return TRUE;
return FALSE;
}
-#ifdef NONMATCHING
void sub_80BBCCC(u8 flagIn)
{
u16 curBaseId;
@@ -331,8 +414,8 @@ void sub_80BBCCC(u8 flagIn)
if (CurrentMapIsSecretBase()) {
curBaseId = VarGet(VAR_0x4054);
for (x=0; x<16; x++) {
- if ((u8)(gSaveBlock1.secretBases[curBaseId].decorations[x] - 1) <= 0x77 && gDecorations[gSaveBlock1.secretBases[curBaseId].decorations[x]].decor_field_11 != 4) {
- sub_80FF394((gSaveBlock1.secretBases[0].decorationPos[x] >> 4) + 7, (gSaveBlock1.secretBases[0].decorationPos[x] & 0xF) + 7, gSaveBlock1.secretBases[curBaseId].decorations[x]);
+ if (gSaveBlock1.secretBases[curBaseId].decorations[x] > 0 && gSaveBlock1.secretBases[curBaseId].decorations[x] <= 0x78 && gDecorations[gSaveBlock1.secretBases[curBaseId].decorations[x]].permission != DECORPERM_SOLID_MAT) {
+ sub_80FF394((gSaveBlock1.secretBases[curBaseId].decorationPos[x] >> 4) + 7, (gSaveBlock1.secretBases[curBaseId].decorationPos[x] & 0xF) + 7, gSaveBlock1.secretBases[curBaseId].decorations[x]);
}
}
if (curBaseId != 0) {
@@ -349,10 +432,11 @@ void sub_80BBDD0(void)
{
u8 *roomdecor;
u8 *roomdecorpos;
- u8 ndecor;
u8 decidx;
u8 objid = 0;
u8 metatile;
+ u8 permission;
+ u8 ndecor;
u16 curBase = VarGet(VAR_0x4054);
if (!CurrentMapIsSecretBase()) {
roomdecor = gSaveBlock1.playerRoomDecor;
@@ -364,409 +448,52 @@ void sub_80BBDD0(void)
ndecor = 16;
}
for (decidx=0; decidx<ndecor; decidx++) {
- if (roomdecor[decidx] == 0)
- continue;
- if (gDecorations[roomdecor[decidx]].decor_field_11 != 4)
- continue;
- for (objid=0; objid<gMapHeader.events->mapObjectCount; objid++) {
- if (gMapHeader.events->mapObjects[objid].flagId == gSpecialVar_0x8004 + 0xAE)
- break;
- }
- if (objid != gMapHeader.events->mapObjectCount) {
- gSpecialVar_0x8006 = roomdecorpos[decidx] >> 4;
- gSpecialVar_0x8007 = roomdecorpos[decidx] & 0xF;
- metatile = MapGridGetMetatileBehaviorAt(gSpecialVar_0x8006 + 7, gSpecialVar_0x8007 + 7);
- if (sub_80572D8(metatile) == 1 || sub_80572EC(metatile) == 1) {
- gScriptResult = gMapHeader.events->mapObjects[objid].graphicsId + 0x3f20;
- VarSet(gScriptResult, gDecorations[roomdecor[decidx]].tiles[0]);
- gScriptResult = gMapHeader.events->mapObjects[objid].localId;
- FlagClear(gSpecialVar_0x8004 + 0xAE);
- show_sprite(gScriptResult, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
- sub_805C0F8(gScriptResult, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, gSpecialVar_0x8006, gSpecialVar_0x8007);
- sub_805C78C(gScriptResult, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
- gSpecialVar_0x8004 ++;
+ if (roomdecor[decidx] != DECOR_NONE) {
+ permission = gDecorations[roomdecor[decidx]].permission;
+ if (permission == DECORPERM_SOLID_MAT)
+ {
+ for (objid=0; objid<gMapHeader.events->mapObjectCount; objid++) {
+ if (gMapHeader.events->mapObjects[objid].flagId == gSpecialVar_0x8004 + 0xAE)
+ break;
+ }
+ if (objid == gMapHeader.events->mapObjectCount)
+ continue;
+ gSpecialVar_0x8006 = roomdecorpos[decidx] >> 4;
+ gSpecialVar_0x8007 = roomdecorpos[decidx] & 0xF;
+ metatile = MapGridGetMetatileBehaviorAt(gSpecialVar_0x8006 + 7, gSpecialVar_0x8007 + 7);
+ if (sub_80572D8(metatile) == TRUE || sub_80572EC(metatile) == TRUE) {
+ gSpecialVar_Result = gMapHeader.events->mapObjects[objid].graphicsId + VAR_0x3F20;
+ VarSet(gSpecialVar_Result, gDecorations[roomdecor[decidx]].tiles[0]);
+ gSpecialVar_Result = gMapHeader.events->mapObjects[objid].localId;
+ FlagClear(gSpecialVar_0x8004 + 0xAE);
+ show_sprite(gSpecialVar_Result, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
+ sub_805C0F8(gSpecialVar_Result, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, gSpecialVar_0x8006, gSpecialVar_0x8007);
+ sub_805C78C(gSpecialVar_Result, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
+ gSpecialVar_0x8004 ++;
+ }
}
}
}
}
-#else
-__attribute__((naked))
-void sub_80BBCCC(u8 flagIn)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r8\n\
- push {r7}\n\
- sub sp, 0x4\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r8, r0\n\
- bl CurrentMapIsSecretBase\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _080BBDBC\n\
- ldr r0, _080BBD70 @ =0x00004054\n\
- bl VarGet\n\
- lsls r0, 16\n\
- lsrs r5, r0, 16\n\
- movs r1, 0\n\
- mov r0, sp\n\
- strh r1, [r0]\n\
- ldr r6, _080BBD74 @ =gSaveBlock1\n\
- mov r4, sp\n\
- ldr r0, _080BBD78 @ =0x00001a2a\n\
- adds r7, r6, r0\n\
-_080BBCFC:\n\
- lsls r0, r5, 2\n\
- adds r0, r5\n\
- lsls r0, 5\n\
- ldrh r1, [r4]\n\
- adds r2, r0, r1\n\
- ldr r1, _080BBD7C @ =0x00001a1a\n\
- adds r0, r6, r1\n\
- adds r1, r2, r0\n\
- ldrb r0, [r1]\n\
- subs r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x77\n\
- bhi _080BBD3A\n\
- ldr r0, _080BBD80 @ =gDecorations\n\
- ldrb r3, [r1]\n\
- lsls r1, r3, 5\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x11]\n\
- cmp r0, 0x4\n\
- beq _080BBD3A\n\
- adds r0, r2, r7\n\
- ldrb r2, [r0]\n\
- lsrs r0, r2, 4\n\
- adds r0, 0x7\n\
- movs r1, 0xF\n\
- ands r1, r2\n\
- adds r1, 0x7\n\
- adds r2, r3, 0\n\
- bl sub_80FF394\n\
-_080BBD3A:\n\
- ldrh r0, [r4]\n\
- adds r0, 0x1\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- strh r0, [r4]\n\
- cmp r0, 0xF\n\
- bls _080BBCFC\n\
- cmp r5, 0\n\
- beq _080BBD88\n\
- mov r4, sp\n\
- adds r4, 0x2\n\
- movs r2, 0x88\n\
- lsls r2, 2\n\
- mov r0, sp\n\
- adds r1, r4, 0\n\
- bl sub_80BB764\n\
- mov r0, sp\n\
- ldrh r0, [r0]\n\
- adds r0, 0x7\n\
- ldrh r1, [r4]\n\
- adds r1, 0x7\n\
- ldr r2, _080BBD84 @ =0x00000e21\n\
- bl MapGridSetMetatileIdAt\n\
- b _080BBDBC\n\
- .align 2, 0\n\
-_080BBD70: .4byte 0x00004054\n\
-_080BBD74: .4byte gSaveBlock1\n\
-_080BBD78: .4byte 0x00001a2a\n\
-_080BBD7C: .4byte 0x00001a1a\n\
-_080BBD80: .4byte gDecorations\n\
-_080BBD84: .4byte 0x00000e21\n\
-_080BBD88:\n\
- mov r0, r8\n\
- cmp r0, 0x1\n\
- bne _080BBDBC\n\
- ldr r0, _080BBDC8 @ =0x00004089\n\
- bl VarGet\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- cmp r0, 0x1\n\
- bne _080BBDBC\n\
- mov r4, sp\n\
- adds r4, 0x2\n\
- movs r2, 0x88\n\
- lsls r2, 2\n\
- mov r0, sp\n\
- adds r1, r4, 0\n\
- bl sub_80BB764\n\
- mov r0, sp\n\
- ldrh r0, [r0]\n\
- adds r0, 0x7\n\
- ldrh r1, [r4]\n\
- adds r1, 0x7\n\
- ldr r2, _080BBDCC @ =0x00000e0a\n\
- bl MapGridSetMetatileIdAt\n\
-_080BBDBC:\n\
- add sp, 0x4\n\
- pop {r3}\n\
- mov r8, r3\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_080BBDC8: .4byte 0x00004089\n\
-_080BBDCC: .4byte 0x00000e0a\n\
-.syntax divided\n");
-}
-
-__attribute__((naked))
-void sub_80BBDD0(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, 0x14\n\
- ldr r0, _080BBE00 @ =0x00004054\n\
- bl VarGet\n\
- lsls r0, 16\n\
- lsrs r4, r0, 16\n\
- bl CurrentMapIsSecretBase\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _080BBE08\n\
- ldr r0, _080BBE04 @ =gSaveBlock1 + 0x2688\n\
- str r0, [sp, 0x4]\n\
- adds r0, 0xC\n\
- str r0, [sp, 0x8]\n\
- movs r1, 0xC\n\
- str r1, [sp, 0xC]\n\
- b _080BBE1E\n\
- .align 2, 0\n\
-_080BBE00: .4byte 0x00004054\n\
-_080BBE04: .4byte gSaveBlock1 + 0x2688\n\
-_080BBE08:\n\
- lsls r1, r4, 2\n\
- adds r1, r4\n\
- lsls r1, 5\n\
- ldr r0, _080BBF7C @ =gSaveBlock1 + 0x1A1A\n\
- adds r2, r1, r0\n\
- str r2, [sp, 0x4]\n\
- adds r0, 0x10\n\
- adds r1, r0\n\
- str r1, [sp, 0x8]\n\
- movs r3, 0x10\n\
- str r3, [sp, 0xC]\n\
-_080BBE1E:\n\
- movs r6, 0\n\
- ldr r4, [sp, 0xC]\n\
- cmp r6, r4\n\
- bcc _080BBE28\n\
- b _080BBF6C\n\
-_080BBE28:\n\
- ldr r5, _080BBF80 @ =gSaveBlock1\n\
- mov r10, r5\n\
-_080BBE2C:\n\
- ldr r1, [sp, 0x4]\n\
- adds r0, r1, r6\n\
- ldrb r1, [r0]\n\
- mov r9, r0\n\
- adds r2, r6, 0x1\n\
- str r2, [sp, 0x10]\n\
- cmp r1, 0\n\
- bne _080BBE3E\n\
- b _080BBF5E\n\
-_080BBE3E:\n\
- ldrb r0, [r0]\n\
- lsls r0, 5\n\
- ldr r3, _080BBF84 @ =gDecorations\n\
- adds r0, r3\n\
- ldrb r0, [r0, 0x11]\n\
- cmp r0, 0x4\n\
- beq _080BBE4E\n\
- b _080BBF5E\n\
-_080BBE4E:\n\
- movs r5, 0\n\
- ldr r0, _080BBF88 @ =gMapHeader\n\
- ldr r2, [r0, 0x4]\n\
- ldrb r3, [r2]\n\
- mov r8, r0\n\
- cmp r5, r3\n\
- bcs _080BBE8E\n\
- ldr r0, [r2, 0x4]\n\
- ldrh r1, [r0, 0x14]\n\
- ldr r4, _080BBF8C @ =gSpecialVar_0x8004\n\
- ldrh r0, [r4]\n\
- adds r0, 0xAE\n\
- adds r7, r4, 0\n\
- cmp r1, r0\n\
- beq _080BBE8E\n\
- adds r4, r2, 0\n\
- adds r2, r3, 0\n\
-_080BBE70:\n\
- adds r0, r5, 0x1\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- cmp r5, r2\n\
- bcs _080BBE8E\n\
- ldr r1, [r4, 0x4]\n\
- lsls r0, r5, 1\n\
- adds r0, r5\n\
- lsls r0, 3\n\
- adds r0, r1\n\
- ldrh r1, [r0, 0x14]\n\
- ldrh r0, [r7]\n\
- adds r0, 0xAE\n\
- cmp r1, r0\n\
- bne _080BBE70\n\
-_080BBE8E:\n\
- mov r1, r8\n\
- ldr r0, [r1, 0x4]\n\
- ldrb r0, [r0]\n\
- cmp r5, r0\n\
- beq _080BBF5E\n\
- ldr r7, _080BBF90 @ =gSpecialVar_0x8006\n\
- ldr r2, [sp, 0x8]\n\
- adds r1, r2, r6\n\
- ldrb r0, [r1]\n\
- lsrs r0, 4\n\
- strh r0, [r7]\n\
- ldr r6, _080BBF94 @ =gSpecialVar_0x8007\n\
- ldrb r1, [r1]\n\
- movs r0, 0xF\n\
- ands r0, r1\n\
- strh r0, [r6]\n\
- ldrh r0, [r7]\n\
- adds r0, 0x7\n\
- ldrh r1, [r6]\n\
- adds r1, 0x7\n\
- bl MapGridGetMetatileBehaviorAt\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- adds r0, r4, 0\n\
- bl sub_80572D8\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x1\n\
- beq _080BBEDA\n\
- adds r0, r4, 0\n\
- bl sub_80572EC\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x1\n\
- bne _080BBF5E\n\
-_080BBEDA:\n\
- mov r3, r8\n\
- ldr r0, [r3, 0x4]\n\
- ldr r1, [r0, 0x4]\n\
- lsls r4, r5, 1\n\
- adds r4, r5\n\
- lsls r4, 3\n\
- adds r1, r4, r1\n\
- ldr r5, _080BBF98 @ =0x00003f20\n\
- adds r0, r5, 0\n\
- ldrb r1, [r1, 0x1]\n\
- adds r0, r1\n\
- ldr r1, _080BBF9C @ =gScriptResult\n\
- strh r0, [r1]\n\
- ldrh r0, [r1]\n\
- mov r2, r9\n\
- ldrb r1, [r2]\n\
- lsls r1, 5\n\
- ldr r3, _080BBFA0 @ =gDecorations + 0x1C\n\
- adds r1, r3\n\
- ldr r1, [r1]\n\
- ldrh r1, [r1]\n\
- bl VarSet\n\
- mov r5, r8\n\
- ldr r0, [r5, 0x4]\n\
- ldr r0, [r0, 0x4]\n\
- adds r4, r0\n\
- ldrb r0, [r4]\n\
- ldr r1, _080BBF9C @ =gScriptResult\n\
- strh r0, [r1]\n\
- ldr r2, _080BBF8C @ =gSpecialVar_0x8004\n\
- ldrh r0, [r2]\n\
- adds r0, 0xAE\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- bl FlagClear\n\
- ldr r3, _080BBF9C @ =gScriptResult\n\
- ldrb r0, [r3]\n\
- mov r4, r10\n\
- ldrb r1, [r4, 0x5]\n\
- ldrb r2, [r4, 0x4]\n\
- bl show_sprite\n\
- ldr r5, _080BBF9C @ =gScriptResult\n\
- ldrb r0, [r5]\n\
- ldrb r1, [r4, 0x5]\n\
- ldrb r2, [r4, 0x4]\n\
- movs r4, 0\n\
- ldrsh r3, [r7, r4]\n\
- movs r5, 0\n\
- ldrsh r4, [r6, r5]\n\
- str r4, [sp]\n\
- bl sub_805C0F8\n\
- ldr r1, _080BBF9C @ =gScriptResult\n\
- ldrb r0, [r1]\n\
- mov r2, r10\n\
- ldrb r1, [r2, 0x5]\n\
- ldrb r2, [r2, 0x4]\n\
- bl sub_805C78C\n\
- ldr r3, _080BBF8C @ =gSpecialVar_0x8004\n\
- ldrh r0, [r3]\n\
- adds r0, 0x1\n\
- strh r0, [r3]\n\
-_080BBF5E:\n\
- ldr r4, [sp, 0x10]\n\
- lsls r0, r4, 24\n\
- lsrs r6, r0, 24\n\
- ldr r5, [sp, 0xC]\n\
- cmp r6, r5\n\
- bcs _080BBF6C\n\
- b _080BBE2C\n\
-_080BBF6C:\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\
-_080BBF7C: .4byte gSaveBlock1 + 0x1A1A\n\
-_080BBF80: .4byte gSaveBlock1\n\
-_080BBF84: .4byte gDecorations\n\
-_080BBF88: .4byte gMapHeader\n\
-_080BBF8C: .4byte gSpecialVar_0x8004\n\
-_080BBF90: .4byte gSpecialVar_0x8006\n\
-_080BBF94: .4byte gSpecialVar_0x8007\n\
-_080BBF98: .4byte 0x00003f20\n\
-_080BBF9C: .4byte gScriptResult\n\
-_080BBFA0: .4byte gDecorations + 0x1C\n\
-.syntax divided\n");
-}
-#endif
-
void sub_80BBFA4(void)
{
int curBase = VarGet(VAR_0x4054);
VarSet(VAR_0x401F, gUnknown_083D13EC[sub_80BCCA4(curBase)]);
}
-void sub_80BBFD8(s16 *position, struct MapEvents *events)
+void sub_80BBFD8(struct MapPosition *position, struct MapEvents *events)
{
s16 bgevtidx;
for (bgevtidx=0; bgevtidx<events->bgEventCount; bgevtidx++) {
- if (events->bgEvents[bgevtidx].kind == 8 && position[0] == events->bgEvents[bgevtidx].x + 7 && position[1] == events->bgEvents[bgevtidx].y + 7) {
+ if (events->bgEvents[bgevtidx].kind == 8 && position->x == events->bgEvents[bgevtidx].x + 7 && position->y == events->bgEvents[bgevtidx].y + 7) {
gUnknown_020387DC = events->bgEvents[bgevtidx].bgUnion.secretBaseId;
break;
}
}
}
-void sub_80BC038(s16 *position, struct MapEvents *events)
+void sub_80BC038(struct MapPosition *position, struct MapEvents *events)
{
sub_80BBFD8(position, events);
sub_80BB5E4();
@@ -777,7 +504,7 @@ bool8 sub_80BC050(void)
{
sub_80BB5D0();
sub_80BB5E4();
- if (gScriptResult == 1)
+ if (gSpecialVar_Result == 1)
return FALSE;
return TRUE;
}
@@ -811,17 +538,17 @@ void sub_80BC0F8(void) {
}
void sub_80BC114(void) {
- if (gSaveBlock1.secretBases[0].sbr_field_0 != gUnknown_020387DC)
- gScriptResult = 1;
+ if (gSaveBlock1.secretBases[0].secretBaseId != gUnknown_020387DC)
+ gSpecialVar_Result = 1;
else
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
}
u8 sub_80BC14C(u8 sbid)
{
s16 idx;
- for (idx=0; idx<20; idx++) {
- if (gSaveBlock1.secretBases[idx].sbr_field_0 == sbid)
+ for (idx=0; idx<MAX_SECRET_BASES; idx++) {
+ if (gSaveBlock1.secretBases[idx].secretBaseId == sbid)
return idx;
}
return 0;
@@ -831,9 +558,9 @@ u8 *sub_80BC190(u8 *dest, u8 arg1) { // 80bc190
u8 local1;
u8 *str;
- local1 = sub_80BB8A8(gSaveBlock1.secretBases[arg1].sbr_field_2);
+ local1 = sub_80BB8A8(gSaveBlock1.secretBases[arg1].playerName);
- str = StringCopyN(dest, gSaveBlock1.secretBases[arg1].sbr_field_2, local1);
+ str = StringCopyN(dest, gSaveBlock1.secretBases[arg1].playerName, local1);
str[0] = EOS;
#if ENGLISH
@@ -844,61 +571,60 @@ u8 *sub_80BC190(u8 *dest, u8 arg1) { // 80bc190
}
u8 *GetSecretBaseMapName(u8 *dest) {
- gUnknown_020387DC = gSaveBlock1.secretBases[VarGet(VAR_0x4054)].sbr_field_0;
+ gUnknown_020387DC = gSaveBlock1.secretBases[VarGet(VAR_0x4054)].secretBaseId;
return sub_80BC190(dest, VarGet(VAR_0x4054));
}
void sub_80BC224(void) {
- u8 *var0 = gSaveBlock1.secretBases[(u8)VarGet(VAR_0x4054)].sbr_field_2;
+ u8 *var0 = gSaveBlock1.secretBases[(u8)VarGet(VAR_0x4054)].playerName;
u8 *var1 = gStringVar1;
u8 var2 = sub_80BB8A8(var0);
u8 *var3 = StringCopyN(var1, var0, var2);
*var3 = EOS;
}
-u8 sub_80BC268(u8 foo) { // 80bc268
- if (gSaveBlock1.secretBases[foo].sbr_field_1_6)
- return 1;
- return 0;
+bool8 sub_80BC268(u8 i) { // 80bc268
+ if (gSaveBlock1.secretBases[i].sbr_field_1_6)
+ return TRUE;
+ return FALSE;
}
u8 sub_80BC298(struct Pokemon *mon) { // 80bc298
u16 evsum = GetMonData(mon, MON_DATA_HP_EV);
evsum += GetMonData(mon, MON_DATA_ATK_EV);
evsum += GetMonData(mon, MON_DATA_DEF_EV);
- evsum += GetMonData(mon, MON_DATA_SPD_EV);
+ evsum += GetMonData(mon, MON_DATA_SPEED_EV);
evsum += GetMonData(mon, MON_DATA_SPATK_EV);
evsum += GetMonData(mon, MON_DATA_SPDEF_EV);
return (u8)(evsum / 6);
}
#ifdef NONMATCHING
+// So much is wrong with this function.
+// The compiler likes to store pointers in temp variables. That's not what it's supposed to do.
void sub_80BC300(void)
{
+ u16 partyidx;
u16 moveidx;
u16 sbpartyidx = 0;
- int resetVal = 0;
- u16 partyidx = 0;
- while (partyidx < 6) {
- partyidx ++;
- for (moveidx=0; moveidx<4; moveidx++) {
- gSaveBlock1.secretBases[0].partyMoves[(partyidx - 1) * 6 + moveidx] = resetVal;
- }
- gSaveBlock1.secretBases[0].partySpecies[partyidx - 1] = resetVal;
- gSaveBlock1.secretBases[0].partyHeldItems[partyidx - 1] = resetVal;
- gSaveBlock1.secretBases[0].partyLevels[partyidx - 1] = resetVal;
- gSaveBlock1.secretBases[0].partyPersonality[partyidx - 1] = resetVal;
- gSaveBlock1.secretBases[0].partyEVs[partyidx - 1] = resetVal;
- if (GetMonData(&(gPlayerParty[partyidx - 1]), MON_DATA_SPECIES) != 0 && !GetMonData(&(gPlayerParty[partyidx - 1]), MON_DATA_IS_EGG)) {
+ for (partyidx=0; partyidx<PARTY_SIZE; partyidx++)
+ {
+ for (moveidx=0; moveidx<4; moveidx++)
+ gSaveBlock1.secretBases[0].partyMoves[partyidx * 4 + moveidx] = MOVE_NONE;
+ gSaveBlock1.secretBases[0].partySpecies[partyidx] = SPECIES_NONE;
+ gSaveBlock1.secretBases[0].partyHeldItems[partyidx] = ITEM_NONE;
+ gSaveBlock1.secretBases[0].partyLevels[partyidx] = 0;
+ gSaveBlock1.secretBases[0].partyPersonality[partyidx] = 0;
+ gSaveBlock1.secretBases[0].partyEVs[partyidx] = 0;
+ if (GetMonData(&(gPlayerParty[partyidx]), MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&(gPlayerParty[partyidx]), MON_DATA_IS_EGG)) {
+ for (moveidx=0; moveidx<4; moveidx++)
+ gSaveBlock1.secretBases[0].partyMoves[sbpartyidx * 4 + moveidx] = GetMonData(&(gPlayerParty[partyidx]), MON_DATA_MOVE1 + moveidx);
+ gSaveBlock1.secretBases[0].partySpecies[sbpartyidx] = GetMonData(&(gPlayerParty[partyidx]), MON_DATA_SPECIES);
+ gSaveBlock1.secretBases[0].partyHeldItems[sbpartyidx] = GetMonData(&(gPlayerParty[partyidx]), MON_DATA_HELD_ITEM);
+ gSaveBlock1.secretBases[0].partyLevels[sbpartyidx] = GetMonData(&(gPlayerParty[partyidx]), MON_DATA_LEVEL);
+ gSaveBlock1.secretBases[0].partyPersonality[sbpartyidx] = GetMonData(&(gPlayerParty[partyidx]), MON_DATA_PERSONALITY);
+ gSaveBlock1.secretBases[0].partyEVs[sbpartyidx] = sub_80BC298(&(gPlayerParty[partyidx]));
sbpartyidx ++;
- for (moveidx=0; moveidx<4; moveidx++) {
- gSaveBlock1.secretBases[0].partyMoves[(sbpartyidx - 1) * 6 + moveidx] = GetMonData(&(gPlayerParty[partyidx - 1]), MON_DATA_MOVE1 + moveidx);
- }
- gSaveBlock1.secretBases[0].partySpecies[sbpartyidx - 1] = GetMonData(&(gPlayerParty[partyidx - 1]), MON_DATA_SPECIES);
- gSaveBlock1.secretBases[0].partyHeldItems[sbpartyidx - 1] = GetMonData(&(gPlayerParty[partyidx - 1]), MON_DATA_HELD_ITEM);
- gSaveBlock1.secretBases[0].partyLevels[sbpartyidx - 1] = GetMonData(&(gPlayerParty[partyidx - 1]), MON_DATA_LEVEL);
- gSaveBlock1.secretBases[0].partyPersonality[sbpartyidx - 1] = GetMonData(&(gPlayerParty[partyidx - 1]), MON_DATA_PERSONALITY);
- gSaveBlock1.secretBases[0].partyEVs[sbpartyidx - 1] = sub_80BC298(&(gPlayerParty[partyidx - 1]));
}
}
}
@@ -1070,6 +796,913 @@ void sub_80BC440(void)
void SecretBasePC_PackUp(void)
{
- IncrementGameStat(20);
+ IncrementGameStat(GAME_STAT_MOVED_SECRET_BASE);
sub_80BC440();
}
+
+void sub_80BC474(void)
+{
+ u16 eventId;
+ struct MapEvents *mapEvents = gMapHeader.events;
+ for (eventId = 0; eventId < mapEvents->bgEventCount; eventId++)
+ {
+ if (mapEvents->bgEvents[eventId].kind == 8
+ && gSaveBlock1.secretBases[0].secretBaseId == mapEvents->bgEvents[eventId].bgUnion.secretBaseId)
+ {
+ u16 i;
+ s16 tileId = MapGridGetMetatileIdAt(mapEvents->bgEvents[eventId].x + 7, mapEvents->bgEvents[eventId].y + 7);
+
+ for (i = 0; i < 7; i++)
+ {
+ if (gUnknown_083D1358[i].unk_083D1358_1 == tileId)
+ {
+ MapGridSetMetatileIdAt(
+ mapEvents->bgEvents[eventId].x + 7,
+ mapEvents->bgEvents[eventId].y + 7,
+ gUnknown_083D1358[i].unk_083D1358_0 | 0xc00);
+ break;
+ }
+ }
+
+ DrawWholeMapView();
+ break;
+ }
+ }
+}
+
+void sub_80BC50C(void)
+{
+ u16 backupValue;
+ sub_80BC474();
+ IncrementGameStat(GAME_STAT_MOVED_SECRET_BASE);
+
+ backupValue = gSaveBlock1.secretBases[0].sbr_field_e;
+ ResetSecretBase(0);
+ gSaveBlock1.secretBases[0].sbr_field_e = backupValue;
+}
+
+u8 sub_80BC538(void)
+{
+ s16 secretBaseIndex;
+ u8 retVal = 0;
+
+ for (secretBaseIndex = 1; secretBaseIndex < MAX_SECRET_BASES; secretBaseIndex++)
+ {
+ if (sub_80BC268(secretBaseIndex) == TRUE)
+ {
+ retVal++;
+ }
+ }
+
+ return retVal;
+}
+
+void sub_80BC56C(void)
+{
+ u8 secretBaseIndex = sub_80BC14C(gUnknown_020387DC);
+ if (sub_80BC268(secretBaseIndex) == TRUE)
+ {
+ gSpecialVar_Result = 1;
+ }
+ else if (sub_80BC538() > 9)
+ {
+ gSpecialVar_Result = 2;
+ }
+ else
+ {
+ gSpecialVar_Result = 0;
+ }
+}
+
+void sub_80BC5BC(void)
+{
+ gSaveBlock1.secretBases[sub_80BC14C(gUnknown_020387DC)].sbr_field_1_6 ^= 1;
+ FlagSet(FLAG_DECORATION_16);
+}
+
+void SecretBasePC_Decoration(void)
+{
+ CreateTask(Task_SecretBasePC_Decoration, 0);
+}
+
+void SecretBasePC_Registry(void)
+{
+ CreateTask(Task_SecretBasePC_Registry, 0);
+}
+
+void Task_SecretBasePC_Registry(u8 taskId)
+{
+ s16 *taskData;
+
+ ScriptContext2_Enable();
+ sub_80F944C();
+ LoadScrollIndicatorPalette();
+
+ taskData = gTasks[taskId].data;
+ taskData[0] = sub_80BC538();
+ if (taskData[0] != 0)
+ {
+ if (taskData[0] > 7) {
+ taskData[3] = 7;
+ }
+ else
+ {
+ taskData[3] = taskData[0];
+ }
+
+ taskData[1] = 0;
+ taskData[2] = 0;
+
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ sub_80BC7D8(taskId);
+
+ gTasks[taskId].func = sub_80BC824;
+ }
+ else
+ {
+ DisplayItemMessageOnField(taskId, gSecretBaseText_NoRegistry, sub_80BCC54, 0);
+ }
+}
+
+void sub_80BC6B0(u8 taskId)
+{
+ u8 i;
+ s16 *taskData = gTasks[taskId].data;
+ u8 m = 0;
+ u8 n = 0;
+
+ for (i = 1; i < MAX_SECRET_BASES; i++)
+ {
+ if (m == taskData[2])
+ {
+ m = i;
+ break;
+ }
+
+ if (sub_80BC268(i) == TRUE)
+ m++;
+ }
+
+ for (i = m; i < MAX_SECRET_BASES; i++)
+ {
+ if (sub_80BC268(i) == TRUE)
+ {
+ sub_80BC190(gStringVar1, i);
+ MenuFillWindowRectWithBlankTile(18, 2 * n + 2, 28, 2 * n + 3);
+ MenuPrint(gStringVar1, 18, 2 * n + 2);
+ if (++n == 8)
+ break;
+ }
+ }
+
+ if (n < 8)
+ {
+ MenuFillWindowRectWithBlankTile(18, 2 * n + 2, 28, 2 * n + 3);
+ MenuPrint(gUnknownText_Exit, 18, 2 * n + 2);
+ DestroyVerticalScrollIndicator(1);
+ if (n != 7)
+ MenuFillWindowRectWithBlankTile(18, ((n << 25) + (1 << 26)) >> 24, 28, 18); // the shifts are needed to match
+ }
+ else
+ CreateVerticalScrollIndicators(1, 0xbc, 0x98);
+
+ if (taskData[2] == 0)
+ DestroyVerticalScrollIndicator(0);
+ else
+ CreateVerticalScrollIndicators(0, 0xbc, 0x08);
+}
+
+void sub_80BC7D8(u8 taskId)
+{
+ u16 *taskData = gTasks[taskId].data;
+ MenuDrawTextWindow(17, 0, 29, 19);
+ InitMenu(0, 18, 2, taskData[3] + 1, taskData[1], 11);
+
+ sub_80BC6B0(taskId);
+}
+
+void sub_80BC824(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if (taskData[1])
+ {
+ PlaySE(5);
+ taskData[1] = MoveMenuCursor(-1);
+ }
+ else if (taskData[2])
+ {
+ PlaySE(5);
+ taskData[2]--;
+ sub_80BC6B0(taskId);
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if (taskData[1] == taskData[3])
+ {
+ if (taskData[2] + taskData[1] != taskData[0])
+ {
+ PlaySE(5);
+ taskData[2]++;
+ sub_80BC6B0(taskId);
+ }
+ }
+ else
+ {
+ PlaySE(5);
+ taskData[1] = MoveMenuCursor(1);
+ }
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(5);
+ if (taskData[1] + taskData[2] == taskData[0])
+ {
+ HandleDestroyMenuCursors();
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ sub_80BCC54(taskId);
+ }
+ else
+ {
+ HandleDestroyMenuCursors();
+ taskData[4] = sub_80BC948(taskData[1] + taskData[2]);
+ sub_80BC980(taskId);
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(5);
+ HandleDestroyMenuCursors();
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ sub_80BCC54(taskId);
+ }
+}
+
+u8 sub_80BC948(u8 a)
+{
+ u8 secretBaseIndex;
+ u8 count = 0;
+
+ for (secretBaseIndex = 1; secretBaseIndex < MAX_SECRET_BASES; secretBaseIndex++)
+ {
+ if (sub_80BC268(secretBaseIndex) == TRUE)
+ {
+ if (a == count)
+ {
+ return secretBaseIndex;
+ }
+
+ count++;
+ }
+ }
+
+ return 0;
+}
+
+void sub_80BC980(u8 taskId)
+{
+ PauseVerticalScrollIndicator(0);
+ PauseVerticalScrollIndicator(1);
+ MenuDrawTextWindow(1, 0, 12, 5);
+ PrintMenuItems(2, 1, 2, (const struct MenuAction *)gUnknown_083D13D4);
+ InitMenu(0, 2, 1, 2, 0, 10);
+ gTasks[taskId].func = sub_80BC9E4;
+}
+
+void sub_80BC9E4(u8 taskId)
+{
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if (GetMenuCursorPos())
+ {
+ PlaySE(5);
+ MoveMenuCursor(-1);
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if (GetMenuCursorPos() != 1)
+ {
+ PlaySE(5);
+ MoveMenuCursor(1);
+ }
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(5);
+ gUnknown_083D13D4[GetMenuCursorPos()].func(taskId);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(5);
+ sub_80BCBF8(taskId);
+ }
+}
+
+void sub_80BCA84(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+
+ DestroyVerticalScrollIndicator(0);
+ DestroyVerticalScrollIndicator(1);
+ HandleDestroyMenuCursors();
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+
+ sub_80BC190(gStringVar1, taskData[4]);
+ StringExpandPlaceholders(gStringVar4, gOtherText_OkayToDeleteFromRegistry);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_80BCAEC, 0);
+}
+
+void sub_80BCAEC(u8 taskId)
+{
+ DisplayYesNoMenu(20, 8, 1);
+ DoYesNoFuncWithChoice(taskId, &gUnknown_083D13E4);
+}
+
+void sub_80BCB10(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+
+ gSaveBlock1.secretBases[taskData[4]].sbr_field_1_6 = 0;
+ taskData[0]--;
+
+ if (taskData[2] > 0)
+ {
+ taskData[2]--;
+ }
+
+ if (taskData[0] < 8)
+ {
+ taskData[3]--;
+ }
+
+ sub_80BC7D8(taskId);
+ gTasks[taskId].func = sub_80BC824;
+}
+
+void sub_80BCB90(u8 taskId)
+{
+ MenuZeroFillWindowRect(20, 8, 26, 13);
+ DisplayItemMessageOnField(taskId, gOtherText_RegisteredDataDeleted, sub_80BCB10, 0);
+}
+
+void sub_80BCBC0(u8 taskId)
+{
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+
+ sub_80BC7D8(taskId);
+ gTasks[taskId].func = sub_80BC824;
+}
+
+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);
+
+ gTasks[taskId].func = sub_80BC824;
+}
+
+void sub_80BCC54(u8 taskId)
+{
+ u16 curBaseIndex = VarGet(VAR_0x4054);
+
+ BuyMenuFreeMemory();
+ DestroyVerticalScrollIndicator(0);
+ DestroyVerticalScrollIndicator(1);
+
+ if (curBaseIndex == 0)
+ {
+ ScriptContext1_SetupScript(gUnknown_0815F399);
+ }
+ else
+ {
+ ScriptContext1_SetupScript(gUnknown_0815F49A);
+ }
+
+ DestroyTask(taskId);
+}
+
+u8 sub_80BCCA4(u8 secretBaseIndex)
+{
+ return (gSaveBlock1.secretBases[secretBaseIndex].playerName[OT_NAME_LENGTH] % 5)
+ + gSaveBlock1.secretBases[secretBaseIndex].gender * 5;
+}
+
+const u8 *sub_80BCCE8(void)
+{
+ u8 param = sub_80BCCA4(VarGet(VAR_0x4054));
+ if (param == 0) return UnknownString_81A1BB2;
+ if (param == 1) return UnknownString_81A1F67;
+ if (param == 2) return UnknownString_81A2254;
+ if (param == 3) return UnknownString_81A25C3;
+ if (param == 4) return UnknownString_81A2925;
+ if (param == 5) return UnknownString_81A1D74;
+ if (param == 6) return UnknownString_81A20C9;
+ if (param == 7) return UnknownString_81A2439;
+ if (param == 8) return UnknownString_81A2754;
+ return UnknownString_81A2B2A;
+}
+
+// Debugging function to test secret base battles.
+void unref_sub_80BCD7C(u8 secretBaseIndex)
+{
+ u16 i;
+ for (i = 0; i == 0; i++)
+ {
+ gSaveBlock1.secretBases[secretBaseIndex].partyPersonality[i] = i + 1;
+ gSaveBlock1.secretBases[secretBaseIndex].partyMoves[i * 4] = i + 1;
+ gSaveBlock1.secretBases[secretBaseIndex].partySpecies[i] = SPECIES_TREECKO;
+ gSaveBlock1.secretBases[secretBaseIndex].partyHeldItems[i] = i + 1;
+ gSaveBlock1.secretBases[secretBaseIndex].partyLevels[i] = i + 5;
+ gSaveBlock1.secretBases[secretBaseIndex].partyEVs[i] = i * 5;
+ }
+}
+
+void sub_80BCE1C(void)
+{
+ u16 curBaseIndex = VarGet(VAR_0x4054);
+ sub_810FB10(1);
+
+ CreateSecretBaseEnemyParty(&gSaveBlock1.secretBases[curBaseIndex]);
+}
+
+void sub_80BCE4C()
+{
+ gSaveBlock1.secretBases[VarGet(VAR_0x4054)].sbr_field_1_5 = gSpecialVar_Result;
+}
+
+void sub_80BCE90()
+{
+ u16 curBaseIndex = VarGet(VAR_0x4054);
+
+ if (!FlagGet(FLAG_DAILY_UNKNOWN_8C2))
+ {
+ u8 i;
+
+ for (i = 0; i < MAX_SECRET_BASES; i++)
+ {
+ gSaveBlock1.secretBases[i].sbr_field_1_5 = 0;
+ }
+
+ FlagSet(FLAG_DAILY_UNKNOWN_8C2);
+ }
+
+ gSpecialVar_0x8004 = sub_80BCCA4(curBaseIndex);
+ gSpecialVar_Result = gSaveBlock1.secretBases[curBaseIndex].sbr_field_1_5;
+}
+
+void sub_80BCF1C(u8 taskId)
+{
+ s16 x, y;
+ u32 behavior;
+ s16 *taskData = gTasks[taskId].data;
+
+ switch (taskData[1])
+ {
+ case 0:
+ PlayerGetDestCoords(&taskData[2], &taskData[3]);
+ taskData[1] = 1;
+ break;
+ case 1:
+ PlayerGetDestCoords(&x, &y);
+ if (x != taskData[2] || y != taskData[3])
+ {
+ taskData[2] = x;
+ taskData[3] = y;
+
+ behavior = MapGridGetMetatileBehaviorAt(x, y);
+ if (sub_8057350(behavior) == TRUE)
+ {
+ DoYellowCave4Sparkle();
+ }
+ else if (sub_8057314(behavior) == TRUE)
+ {
+ sub_80C68A4(MapGridGetMetatileIdAt(x, y), x, y);
+ }
+ else if (sub_8057328(behavior) == TRUE)
+ {
+ sub_80C6A54(x, y);
+ }
+ else if (sub_805733C(behavior) == TRUE)
+ {
+ DoDecorationSoundEffect(MapGridGetMetatileIdAt(x, y));
+ }
+ }
+ break;
+ case 2:
+ if (!FieldEffectActiveListContains(taskData[4]))
+ {
+ taskData[1] = 1;
+ }
+ break;
+ }
+}
+
+void sub_80BD034(u8 i, struct SecretBaseRecord *secretBase)
+{
+ gSaveBlock1.secretBases[i] = *secretBase;
+ gSaveBlock1.secretBases[i].sbr_field_1_6 = 2;
+}
+
+bool8 sub_80BD070(struct SecretBaseRecord *baseA, struct SecretBaseRecord *baseB)
+{
+ u8 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (baseA->trainerId[i] != baseB->trainerId[i])
+ {
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+bool8 sub_80BD0A0(struct SecretBaseRecord *baseA, struct SecretBaseRecord *baseB)
+{
+ u8 i;
+
+ for (i = 0; i < OT_NAME_LENGTH && (baseA->playerName[i] != 0xFF || baseB->playerName[i] != 0xFF); i++)
+ {
+ if (baseA->playerName[i] != baseB->playerName[i])
+ {
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+bool8 sub_80BD0EC(struct SecretBaseRecord *baseA, struct SecretBaseRecord *baseB)
+{
+ if (baseA->gender == baseB->gender && sub_80BD070(baseA, baseB) && sub_80BD0A0(baseA, baseB))
+ {
+ return TRUE;
+ }
+
+
+ return FALSE;
+}
+
+s16 sub_80BD12C(u8 secretBaseId)
+{
+ s16 i;
+
+ for (i = 0; i < MAX_SECRET_BASES; i++)
+ {
+ if (gSaveBlock1.secretBases[i].secretBaseId == secretBaseId)
+ {
+ return i;
+ }
+ }
+
+ return -1;
+}
+
+u8 sub_80BD170(void)
+{
+ s16 i;
+
+ for (i = 1; i < MAX_SECRET_BASES; i++)
+ {
+ if (gSaveBlock1.secretBases[i].secretBaseId == 0)
+ {
+ return i;
+ }
+ }
+
+ return 0;
+}
+
+u8 sub_80BD1B0(void)
+{
+ s16 i;
+
+ for (i = 1; i < MAX_SECRET_BASES; i++)
+ {
+ if (gSaveBlock1.secretBases[i].sbr_field_1_6 == 0 && gSaveBlock1.secretBases[i].sbr_field_1_0 == 0)
+ {
+ return i;
+ }
+ }
+
+ return 0;
+}
+
+u8 sub_80BD1FC(struct SecretBaseRecord *secretBase)
+{
+ s16 secretBaseIndex;
+
+ if (secretBase->secretBaseId == 0)
+ {
+ return 0;
+ }
+
+ secretBaseIndex = sub_80BD12C(secretBase->secretBaseId);
+ if (secretBaseIndex != 0)
+ {
+ if (secretBaseIndex != -1)
+ {
+ if (gSaveBlock1.secretBases[secretBaseIndex].sbr_field_1_0 == 1)
+ {
+ return 0;
+ }
+ if (gSaveBlock1.secretBases[secretBaseIndex].sbr_field_1_6 != 2
+ || secretBase->sbr_field_1_0 == 1)
+ {
+ sub_80BD034(secretBaseIndex, secretBase);
+ return secretBaseIndex;
+ }
+ }
+ else
+ {
+ secretBaseIndex = sub_80BD170();
+ if (secretBaseIndex != 0)
+ {
+ sub_80BD034(secretBaseIndex, secretBase);
+ return secretBaseIndex;
+ }
+ secretBaseIndex = sub_80BD1B0();
+ if (secretBaseIndex)
+ {
+ sub_80BD034(secretBaseIndex, secretBase);
+ return secretBaseIndex;
+ }
+ }
+ }
+
+ return 0;
+}
+
+void sub_80BD280(void)
+{
+ u8 i;
+ u8 j;
+ struct SecretBaseRecord temp;
+ struct SecretBaseRecord *secretBases = gSaveBlock1.secretBases;
+
+ for (i = 1; i < MAX_SECRET_BASES - 1; i++)
+ {
+ for (j = i + 1; j < MAX_SECRET_BASES; j++)
+ {
+ if ((!secretBases[i].sbr_field_1_6 && secretBases[j].sbr_field_1_6 == 1)
+ || (secretBases[i].sbr_field_1_6 == 2 && secretBases[j].sbr_field_1_6 != 2))
+ {
+ temp = secretBases[i];
+ secretBases[i] = secretBases[j];
+ secretBases[j] = temp;
+ }
+ }
+ }
+}
+
+void sub_80BD328(struct SecretBaseRecord *secretBases, u8 b)
+{
+ u16 i;
+
+ for (i = 1; i < MAX_SECRET_BASES; i++)
+ {
+ if (secretBases[i].sbr_field_1_6 == b)
+ {
+ sub_80BD1FC(&secretBases[i]);
+ }
+ }
+}
+
+bool8 sub_80BD358(struct SecretBaseRecord *secretBase)
+{
+ u8 i;
+
+ if (!secretBase->secretBaseId)
+ return FALSE;
+
+ if (secretBase->secretBaseId && secretBase->gender != gSaveBlock2.playerGender)
+ return FALSE;
+
+ // Check if the player's trainer Id matches the secret base's id.
+ for (i = 0; i < 4; i++)
+ {
+ if (secretBase->trainerId[i] != gSaveBlock2.playerTrainerId[i])
+ return FALSE;
+ }
+
+ for (i = 0; i < OT_NAME_LENGTH && (secretBase->playerName[i] != 0xFF || gSaveBlock2.playerName[i] != 0xFF); i++)
+ {
+ if (secretBase->playerName[i] != gSaveBlock2.playerName[i])
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+void sub_80BD3DC(struct SecretBaseRecord *basesA, struct SecretBaseRecord *basesB, struct SecretBaseRecord *basesC)
+{
+ u8 i;
+ u8 var1 = 0;
+
+ for (i = 0; i < MAX_SECRET_BASES; i++)
+ {
+ if ((var1 & 1) == 0)
+ {
+ if (sub_80BD358(&basesA[i]) == TRUE)
+ {
+ ClearSecretBase(&basesA[i]);
+ var1 |= 1;
+ }
+ }
+
+ if ((var1 & 2) == 0)
+ {
+ if (sub_80BD358(&basesB[i]) == TRUE)
+ {
+ ClearSecretBase(&basesB[i]);
+ var1 |= 2;
+ }
+ }
+
+ if ((var1 & 4) == 0)
+ {
+ if (sub_80BD358(&basesC[i]) == TRUE)
+ {
+ ClearSecretBase(&basesC[i]);
+ var1 |= 4;
+ }
+ }
+
+ if (var1 == 7)
+ {
+ break;
+ }
+ }
+}
+
+bool8 sub_80BD494(struct SecretBaseRecord *base, struct SecretBaseRecord *secretBases, u8 c)
+{
+ u8 i;
+
+ for (i = 0; i < MAX_SECRET_BASES; i++)
+ {
+ if (secretBases[i].secretBaseId)
+ {
+ if (sub_80BD0EC(base, &secretBases[i]) == TRUE)
+ {
+ if (c == 0)
+ {
+ ClearSecretBase(&secretBases[i]);
+ return FALSE;
+ }
+
+ if (base->sbr_field_e > secretBases[i].sbr_field_e)
+ {
+ ClearSecretBase(&secretBases[i]);
+ return FALSE;
+ }
+
+ secretBases[i].sbr_field_1_0 = base->sbr_field_1_0;
+
+ ClearSecretBase(base);
+ return TRUE;
+ }
+ }
+ }
+
+ return FALSE;
+}
+
+void sub_80BD514(struct SecretBaseRecord *basesA, struct SecretBaseRecord *basesB, struct SecretBaseRecord *basesC, struct SecretBaseRecord *basesD)
+{
+ u8 i;
+
+ for (i = 1; i < MAX_SECRET_BASES; i++)
+ {
+ if (basesA[i].secretBaseId)
+ {
+ if (basesA[i].sbr_field_1_6 == 1)
+ {
+ basesA[i].sbr_field_1_0 = 1;
+ }
+
+ if (!sub_80BD494(&basesA[i], basesB, i))
+ {
+ if (!sub_80BD494(&basesA[i], basesC, i))
+ {
+ sub_80BD494(&basesA[i], basesD, i);
+ }
+ }
+ }
+ }
+
+ for (i = 0; i < MAX_SECRET_BASES; i++)
+ {
+ if (basesB[i].secretBaseId)
+ {
+ basesB[i].sbr_field_1_5 = 0;
+
+ if (!sub_80BD494(&basesB[i], basesC, i))
+ {
+ sub_80BD494(&basesB[i], basesD, i);
+ }
+ }
+ }
+
+ for (i = 0; i < MAX_SECRET_BASES; i++)
+ {
+ if (basesC[i].secretBaseId)
+ {
+ basesC[i].sbr_field_1_5 = 0;
+ sub_80BD494(&basesC[i], basesD, i);
+ }
+
+ if (basesD[i].secretBaseId)
+ {
+ basesD[i].sbr_field_1_5 = 0;
+ }
+ }
+}
+
+void sub_80BD610(struct SecretBaseRecord *basesA, struct SecretBaseRecord *basesB, struct SecretBaseRecord *basesC)
+{
+ sub_80BD3DC(basesA, basesB, basesC);
+ sub_80BD514(gSaveBlock1.secretBases, basesA, basesB, basesC);
+
+ sub_80BD1FC(basesA);
+ sub_80BD1FC(basesB);
+ sub_80BD1FC(basesC);
+
+ sub_80BD328(basesA, 1);
+ sub_80BD328(basesB, 1);
+ sub_80BD328(basesC, 1);
+
+ sub_80BD328(basesA, 0);
+ sub_80BD328(basesB, 0);
+ sub_80BD328(basesC, 0);
+}
+
+void sub_80BD674(void *playerRecords, u32 size, u8 c)
+{
+ if (FlagGet(FLAG_RECEIVED_SECRET_POWER))
+ {
+ u16 i;
+ u8 numLinkedPlayers = GetLinkPlayerCount();
+ switch (numLinkedPlayers)
+ {
+ case 2:
+ memset(playerRecords + size * 2, 0, size);
+ memset(playerRecords + size * 3, 0, size);
+ break;
+ case 3:
+ memset(playerRecords + size * 3, 0, size);
+ break;
+ }
+
+ switch (c)
+ {
+ case 0:
+ sub_80BD610(playerRecords + size, playerRecords + size * 2, playerRecords + size * 3);
+ break;
+ case 1:
+ sub_80BD610(playerRecords + size * 2, playerRecords + size * 3, playerRecords);
+ break;
+ case 2:
+ sub_80BD610(playerRecords + size * 3, playerRecords, playerRecords + size);
+ break;
+ case 3:
+ sub_80BD610(playerRecords, playerRecords + size, playerRecords + size * 2);
+ break;
+ }
+
+ for (i = 1; i < MAX_SECRET_BASES; i++)
+ {
+ if (gSaveBlock1.secretBases[i].sbr_field_1_0 == 1)
+ {
+ gSaveBlock1.secretBases[i].sbr_field_1_6 = 1;
+ gSaveBlock1.secretBases[i].sbr_field_1_0 = 0;
+ }
+ }
+
+ sub_80BD280();
+
+ for (i = 1; i < MAX_SECRET_BASES; i++)
+ {
+ if (gSaveBlock1.secretBases[i].sbr_field_1_6 == 2)
+ {
+ gSaveBlock1.secretBases[i].sbr_field_1_6 = 0;
+ }
+ }
+
+ if (gSaveBlock1.secretBases[0].sbr_field_e != 0xFFFF)
+ {
+ gSaveBlock1.secretBases[0].sbr_field_e++;
+ }
+ }
+}
diff --git a/src/field/shop.c b/src/field/shop.c
index 375205935..23d668fc7 100644
--- a/src/field/shop.c
+++ b/src/field/shop.c
@@ -21,18 +21,15 @@
#include "fieldmap.h"
#include "item.h"
#include "decoration.h"
-#include "items.h"
-#include "songs.h"
+#include "constants/items.h"
+#include "constants/songs.h"
#include "overworld.h"
#include "decoration_inventory.h"
#include "field_camera.h"
-
-#define ewram18000 ((u16 *)(ewram + 0x18000))
-#define ewram18300 ((u16 *)(ewram + 0x18300))
+#include "ewram.h"
extern bool8 sub_80A52C4(u8, u8);
-extern u8 ewram[];
extern u8 gBuyMenuFrame_Gfx[];
extern u16 gBuyMenuFrame_Tilemap[];
extern u16 gMenuMoneyPal[16];
@@ -54,7 +51,7 @@ static struct MartInfo gMartInfo;
// ewram
EWRAM_DATA u32 gMartTotalCost = 0;
-EWRAM_DATA s16 gUnknown_020386A4[16][4] = {0}; // game freak barely uses 2d arrays wtf?
+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;
@@ -282,7 +279,7 @@ void BuyMenuDrawGraphics(void)
register const u32 zero asm("r6") = 0;
DmaFill32(3, zero, addr, OAM_SIZE);
LZDecompressVram(gBuyMenuFrame_Gfx, (void*)(VRAM + 0x7C00));
- LZDecompressWram(gBuyMenuFrame_Tilemap, (void *)0x02018000);
+ LZDecompressWram(gBuyMenuFrame_Tilemap, ewram18000_2);
LoadCompressedPalette(gMenuMoneyPal, 0xC0, sizeof(gMenuMoneyPal));
FreeAllSpritePalettes();
ResetPaletteFade();
diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c
index e8e4f271b..89ec68b0a 100644
--- a/src/field/slot_machine.c
+++ b/src/field/slot_machine.c
@@ -3,6 +3,7 @@
#include "decompress.h"
#include "palette.h"
#include "task.h"
+#include "ewram.h"
struct UnkStruct2000000 {
/*0x00*/ u8 filler00[61];
@@ -15,8 +16,6 @@ struct UnkStruct1 {
/*0x02*/ s16 unk02;
};
-extern struct UnkStruct2000000 unk_2000000;
-
extern struct UnkStruct1 *gUnknown_083ED048[];
extern const u16 gPalette_83EDE24[];
@@ -40,7 +39,7 @@ void sub_8104CAC(u8 arg0) {
sub_8104DA4();
- task = &gTasks[unk_2000000.unk3D];
+ task = &gTasks[ewram0_8->unk3D];
task->data[1] = arg0;
i = 0;
@@ -71,9 +70,9 @@ void sub_8106448(void) {
u32 offsetRead, offsetWrite;
u32 size;
- LZDecompressWram(gSlotMachine_Gfx, (void *) 0x02010000);
+ LZDecompressWram(gSlotMachine_Gfx, ewram10000_2);
- offsetRead = 0x02010000;
+ offsetRead = (u32)ewram10000_2;
offsetWrite = BG_VRAM;
size = SLOTMACHINE_GFX_TILES * 32;
while (TRUE)
@@ -94,7 +93,7 @@ void sub_8106448(void) {
}
void sub_81064B8(void) {
- CpuCopy16(gUnknown_08E95AB8, (void *) BG_SCREEN_ADDR(29), 20 * 32 * 2);
+ CpuCopy16(gUnknown_08E95AB8, BG_SCREEN_ADDR(29), 20 * 32 * 2);
LoadSlotMachineWheelOverlay();
}
@@ -102,7 +101,7 @@ static void LoadSlotMachineWheelOverlay(void) {
s16 x, y, dx;
u16 *screen;
- screen = (u16 *) BG_SCREEN_ADDR(30);
+ screen = BG_SCREEN_ADDR(30);
for (x = 4; x < 18; x += 5)
{
@@ -125,7 +124,7 @@ static void LoadSlotMachineWheelOverlay(void) {
}
void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) {
- u16 *vram = (u16 *) BG_SCREEN_ADDR(29);
+ u16 *vram = BG_SCREEN_ADDR(29);
vram[15 * 32 + arg0] = arg1;
vram[15 * 32 + 1 + arg0] = arg2;
@@ -137,9 +136,9 @@ void sub_81065DC(void) {
s16 y, x;
u16 *screen;
- CpuCopy16(gUnknown_08E95FB8, (void *) BG_SCREEN_ADDR(29), 20 * 32 * 2);
+ CpuCopy16(gUnknown_08E95FB8, BG_SCREEN_ADDR(29), 20 * 32 * 2);
- screen = (u16 *) BG_SCREEN_ADDR(30);
+ screen = BG_SCREEN_ADDR(30);
for (y = 0; y < 20; y++)
{
for (x = 0; x < 30; x++)
diff --git a/src/field/start_menu.c b/src/field/start_menu.c
index 6e44090df..dccf1714e 100644
--- a/src/field/start_menu.c
+++ b/src/field/start_menu.c
@@ -20,7 +20,7 @@
#include "save.h"
#include "save_menu_util.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
@@ -50,7 +50,7 @@ static bool8 savingComplete;
extern bool8 gDifferentSaveFile;
extern u16 gSaveFileStatus;
-extern u16 gScriptResult;
+extern u16 gSpecialVar_Result;
extern u8 gUnknown_03004860;
@@ -154,12 +154,12 @@ static void AddStartMenuAction(u8 action)
static void BuildStartMenuActions_Normal(void)
{
- if (FlagGet(SYS_POKEDEX_GET) == TRUE)
+ if (FlagGet(FLAG_SYS_POKEDEX_GET) == TRUE)
AddStartMenuAction(MENU_ACTION_POKEDEX);
- if (FlagGet(SYS_POKEMON_GET) == TRUE)
+ if (FlagGet(FLAG_SYS_POKEMON_GET) == TRUE)
AddStartMenuAction(MENU_ACTION_POKEMON);
AddStartMenuAction(MENU_ACTION_BAG);
- if (FlagGet(SYS_POKENAV_GET) == TRUE)
+ if (FlagGet(FLAG_SYS_POKENAV_GET) == TRUE)
AddStartMenuAction(MENU_ACTION_POKENAV);
AddStartMenuAction(MENU_ACTION_PLAYER);
AddStartMenuAction(MENU_ACTION_SAVE);
@@ -182,7 +182,7 @@ static void BuildStartMenuActions_Link(void)
{
AddStartMenuAction(MENU_ACTION_POKEMON);
AddStartMenuAction(MENU_ACTION_BAG);
- if (FlagGet(SYS_POKENAV_GET) == TRUE)
+ if (FlagGet(FLAG_SYS_POKENAV_GET) == TRUE)
AddStartMenuAction(MENU_ACTION_POKENAV);
AddStartMenuAction(MENU_ACTION_PLAYER_LINK);
AddStartMenuAction(MENU_ACTION_OPTION);
@@ -528,10 +528,10 @@ static void Task_SaveDialog(u8 taskId)
{
case SAVE_CANCELED:
case SAVE_ERROR:
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
break;
case SAVE_SUCCESS:
- gScriptResult = status;
+ gSpecialVar_Result = status;
break;
case SAVE_IN_PROGRESS:
return;
diff --git a/src/field/starter_choose.c b/src/field/starter_choose.c
index 2b28df4f0..701d4087a 100644
--- a/src/field/starter_choose.c
+++ b/src/field/starter_choose.c
@@ -6,9 +6,9 @@
#include "menu.h"
#include "palette.h"
#include "pokedex.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "species.h"
+#include "constants/species.h"
#include "sprite.h"
#include "string_util.h"
#include "strings.h"
@@ -16,7 +16,7 @@
#include "trig.h"
#include "unknown_task.h"
-extern u16 gScriptResult;
+extern u16 gSpecialVar_Result;
extern struct SpriteTemplate gUnknown_02024E8C;
//--------------------------------------------------
@@ -324,24 +324,24 @@ void CB2_ChooseStarter(void)
//Create hand sprite
spriteId = CreateSprite(&gSpriteTemplate_83F77CC, 120, 56, 2);
- gSprites[spriteId].data0 = taskId;
+ gSprites[spriteId].data[0] = taskId;
//Create three Pokeball sprites
spriteId = CreateSprite(
&gSpriteTemplate_83F77E4,
gStarterChoose_PokeballCoords[0][0], gStarterChoose_PokeballCoords[0][1], 2);
- gSprites[spriteId].data0 = taskId;
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = 0;
spriteId = CreateSprite(
&gSpriteTemplate_83F77E4,
gStarterChoose_PokeballCoords[1][0], gStarterChoose_PokeballCoords[1][1], 2);
- gSprites[spriteId].data0 = taskId;
- gSprites[spriteId].data1 = 1;
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = 1;
spriteId = CreateSprite(
&gSpriteTemplate_83F77E4,
gStarterChoose_PokeballCoords[2][0], gStarterChoose_PokeballCoords[2][1], 2);
- gSprites[spriteId].data0 = taskId;
- gSprites[spriteId].data1 = 2;
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = 2;
}
static void MainCallback2(void)
@@ -439,7 +439,7 @@ static void Task_StarterChoose5(u8 taskId)
{
case 0: // YES
//Return the starter choice and exit.
- gScriptResult = gTasks[taskId].tStarterSelection;
+ gSpecialVar_Result = gTasks[taskId].tStarterSelection;
SetMainCallback2(gMain.savedCallback);
break;
case 1: // NO
@@ -727,16 +727,16 @@ static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y)
//Sprite callback
static void sub_810A62C(struct Sprite *sprite)
{
- sprite->pos1.x = gUnknown_083F76E4[gTasks[sprite->data0].tStarterSelection][0];
- sprite->pos1.y = gUnknown_083F76E4[gTasks[sprite->data0].tStarterSelection][1];
- sprite->pos2.y = Sin(sprite->data1, 8);
- sprite->data1 = (u8)sprite->data1 + 4;
+ sprite->pos1.x = gUnknown_083F76E4[gTasks[sprite->data[0]].tStarterSelection][0];
+ sprite->pos1.y = gUnknown_083F76E4[gTasks[sprite->data[0]].tStarterSelection][1];
+ sprite->pos2.y = Sin(sprite->data[1], 8);
+ sprite->data[1] = (u8)sprite->data[1] + 4;
}
//Sprite callback
static void sub_810A68C(struct Sprite *sprite)
{
- if (gTasks[sprite->data0].tStarterSelection == sprite->data1)
+ if (gTasks[sprite->data[0]].tStarterSelection == sprite->data[1])
StartSpriteAnimIfDifferent(sprite, 1);
else
StartSpriteAnimIfDifferent(sprite, 0);
diff --git a/src/field/trader.c b/src/field/trader.c
index 61f48fad8..61cb0b4a2 100644
--- a/src/field/trader.c
+++ b/src/field/trader.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "constants/decorations.h"
#include "decoration.h"
#include "decoration_inventory.h"
#include "event_data.h"
@@ -7,7 +8,7 @@
#include "menu.h"
#include "menu_helpers.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "string_util.h"
#include "strings.h"
@@ -178,7 +179,7 @@ void Task_HandleGetDecorationMenuInput(u8 taskId)
void ScrSpecial_GetTraderTradedFlag(void)
{
struct MauvilleManTrader *trader = &gSaveBlock1.mauvilleMan.trader;
- gScriptResult = trader->alreadyTraded;
+ gSpecialVar_Result = trader->alreadyTraded;
}
void ScrSpecial_DoesPlayerHaveNoDecorations(void)
@@ -189,21 +190,21 @@ void ScrSpecial_DoesPlayerHaveNoDecorations(void)
{
if (sub_8134194(i))
{
- gScriptResult = FALSE;
+ gSpecialVar_Result = FALSE;
return;
}
}
- gScriptResult = TRUE;
+ gSpecialVar_Result = TRUE;
}
void ScrSpecial_IsDecorationFull(void)
{
- gScriptResult = FALSE;
+ gSpecialVar_Result = FALSE;
if (gDecorations[gSpecialVar_0x8004].category != gDecorations[gSpecialVar_0x8006].category
&& sub_8133F9C(gDecorations[gSpecialVar_0x8004].category) == -1)
{
sub_80FE7D4(gStringVar2, gDecorations[gSpecialVar_0x8004].category);
- gScriptResult = TRUE;
+ gSpecialVar_Result = TRUE;
}
}
diff --git a/src/field/trainer_see.c b/src/field/trainer_see.c
index 5a8ebbafc..38bc6971c 100644
--- a/src/field/trainer_see.c
+++ b/src/field/trainer_see.c
@@ -257,7 +257,7 @@ static bool8 sub_8084398(u8 taskId, struct Task *task, struct MapObject *trainer
{
u8 direction;
- FieldObjectGetLocalIdAndMap(trainerObj, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
+ FieldObjectGetLocalIdAndMap(trainerObj, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]);
FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON_1);
direction = GetFaceDirectionAnimId(trainerObj->mapobj_unk_18);
FieldObjectSetSpecialAnim(trainerObj, direction);
@@ -485,11 +485,11 @@ void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3)
sprite->oam.priority = 1;
sprite->coordOffsetEnabled = 1;
- sprite->data0 = gFieldEffectArguments[0];
- sprite->data1 = gFieldEffectArguments[1];
- sprite->data2 = gFieldEffectArguments[2];
- sprite->data3 = -5;
- sprite->data7 = a2;
+ sprite->data[0] = gFieldEffectArguments[0];
+ sprite->data[1] = gFieldEffectArguments[1];
+ sprite->data[2] = gFieldEffectArguments[2];
+ sprite->data[3] = -5;
+ sprite->data[7] = a2;
StartSpriteAnim(sprite, a3);
}
@@ -498,22 +498,22 @@ void objc_exclamation_mark_probably(struct Sprite *sprite)
{
u8 mapObjId;
- if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjId)
+ if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &mapObjId)
|| sprite->animEnded)
{
- FieldEffectStop(sprite, (u8)sprite->data7);
+ FieldEffectStop(sprite, (u8)sprite->data[7]);
}
else
{
struct Sprite *mapObjSprite = &gSprites[gMapObjects[mapObjId].spriteId];
- sprite->data4 += sprite->data3;
+ sprite->data[4] += sprite->data[3];
sprite->pos1.x = mapObjSprite->pos1.x;
sprite->pos1.y = mapObjSprite->pos1.y - 16;
sprite->pos2.x = mapObjSprite->pos2.x;
- sprite->pos2.y = mapObjSprite->pos2.y + sprite->data4;
- if (sprite->data4)
- sprite->data3++;
+ sprite->pos2.y = mapObjSprite->pos2.y + sprite->data[4];
+ if (sprite->data[4])
+ sprite->data[3]++;
else
- sprite->data3 = 0;
+ sprite->data[3] = 0;
}
}
diff --git a/src/field/tv.c b/src/field/tv.c
index e9b5e850d..1d5bf929c 100644
--- a/src/field/tv.c
+++ b/src/field/tv.c
@@ -8,36 +8,39 @@
#include "fieldmap.h"
#include "field_message_box.h"
#include "field_camera.h"
-#include "flags.h"
-#include "rng.h"
+#include "constants/flags.h"
+#include "random.h"
#include "string_util.h"
#include "text.h"
-#include "species.h"
+#include "constants/species.h"
#include "pokedex.h"
#include "naming_screen.h"
#include "overworld.h"
-#include "map_constants.h"
+#include "constants/maps.h"
#include "strings.h"
#include "battle.h"
#include "link.h"
-#include "easy_chat.h"
+#include "constants/easy_chat.h"
#include "field_map_obj.h"
#include "field_specials.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "link.h"
-#include "map_constants.h"
+#include "constants/maps.h"
#include "naming_screen.h"
#include "pokedex.h"
#include "region_map.h"
-#include "rng.h"
+#include "random.h"
#include "overworld.h"
#include "rtc.h"
#include "script_menu.h"
-#include "species.h"
+#include "constants/species.h"
#include "string_util.h"
#include "strings.h"
#include "text.h"
+#include "ewram.h"
+#include "constants/moves.h"
+#include "region_map_sections.h"
struct UnkTvStruct
{
@@ -65,39 +68,15 @@ extern struct TVSaleItem gUnknown_02038724[3];
struct UnkTvStruct gUnknown_03005D38;
-extern u8 *gTVBravoTrainerTextGroup[];
-extern u8 *gTVBravoTrainerBattleTowerTextGroup[];
-extern u8 *gTVSmartShopperTextGroup[];
-extern u8 *gTVNameRaterTextGroup[];
-extern u8 *gTVPokemonTodayTextGroup[];
-extern u8 *gTVPokemonTodayFailedCaptureTextGroup[];
-extern u8 *gTVFanClubTextGroup[];
-extern u8 *gTVRecentHappeningsTextGroup[];
-extern u8 *gTVFanClubOpinionsTextGroup[];
-extern u8 *gTVPokemonOutbreakTextGroup[];
-extern u8 *gTVGabbyAndTyTextGroup[];
-extern u8 *gTVFishingGuruAdviceTextGroup[];
-extern u8 *gTVWorldOfMastersTextGroup[];
-extern struct OutbreakPokemon gPokeOutbreakSpeciesList[5];
-
-
-
-extern const u8 *gTVNewsTextGroup1[];
-extern const u8 *gTVNewsTextGroup2[];
-extern const u8 *gTVNewsTextGroup3[];
+extern u16 gSpecialVar_LastTalked;
-extern u16 gScriptLastTalked;
-
-extern u8 gScriptContestCategory;
-extern u8 gScriptContestRank;
+extern u8 gSpecialVar_ContestCategory;
+extern u8 gSpecialVar_ContestRank;
extern u8 gUnknown_03004316[11];
extern u8 gBattleOutcome;
extern u16 gLastUsedItem;
-extern u8 ewram[];
-#define gUnknown_02007000 (*(ewramStruct_02007000 *)(ewram + 0x7000))
-
static EWRAM_DATA u16 gUnknown_020387E0 = 0;
static EWRAM_DATA u16 gUnknown_020387E2 = 0;
static EWRAM_DATA u8 gUnknown_020387E4 = 0;
@@ -107,6 +86,351 @@ static u8 gUnknown_03000720;
static u8 gUnknown_03000721;
static s8 gUnknown_03000722;
+const struct OutbreakPokemon gPokeOutbreakSpeciesList[5] =
+{
+ {
+ .species = SPECIES_SURSKIT,
+ .moves = {MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE},
+ .level = 3,
+ .location = MAPSEC_Route102,
+ },
+ {
+ .species = SPECIES_SURSKIT,
+ .moves = {MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE},
+ .level = 15,
+ .location = MAPSEC_Route114,
+ },
+ {
+ .species = SPECIES_SURSKIT,
+ .moves = {MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE},
+ .level = 15,
+ .location = MAPSEC_Route117,
+ },
+ {
+ .species = SPECIES_SURSKIT,
+ .moves = {MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE},
+ .level = 28,
+ .location = MAPSEC_Route120,
+ },
+ {
+ .species = SPECIES_SKITTY,
+ .moves = {MOVE_GROWL, MOVE_TACKLE, MOVE_NONE, MOVE_NONE},
+ .level = 15,
+ .location = MAPSEC_Route116,
+ },
+};
+
+extern const u8 gTVNewsText_EnergyGuru1[];
+extern const u8 gTVNewsText_GameCorner1[];
+extern const u8 gTVNewsText_LilycoveDepartment1[];
+extern const u8 gTVNewsText_EnergyGuru2[];
+extern const u8 gTVNewsText_GameCorner2[];
+extern const u8 gTVNewsText_LilycoveDepartment2[];
+extern const u8 gTVNewsText_EnergyGuru3[];
+extern const u8 gTVNewsText_GameCorner3[];
+extern const u8 gTVNewsText_LilycoveDepartment3[];
+extern const u8 gTVFanClubText1[];
+extern const u8 gTVFanClubText2[];
+extern const u8 gTVFanClubText3[];
+extern const u8 gTVFanClubText4[];
+extern const u8 gTVFanClubText5[];
+extern const u8 gTVFanClubText6[];
+extern const u8 gTVFanClubText7[];
+extern const u8 gTVFanClubText8[];
+extern const u8 gTVRecentHappeningsText1[];
+extern const u8 gTVRecentHappeningsText2[];
+extern const u8 gTVRecentHappeningsText3[];
+extern const u8 gTVRecentHappeningsText4[];
+extern const u8 gTVRecentHappeningsText5[];
+extern const u8 gTVRecentHappeningsText6[];
+extern const u8 gTVFanClubOpinionsText1[];
+extern const u8 gTVFanClubOpinionsText2[];
+extern const u8 gTVFanClubOpinionsText3[];
+extern const u8 gTVFanClubOpinionsText4[];
+extern const u8 gTVFanClubOpinionsText5[];
+extern const u8 gTVPokemonOutbreakText[];
+extern const u8 gTVPokemonTodayText1[];
+extern const u8 gTVPokemonTodayText2[];
+extern const u8 gTVPokemonTodayText3[];
+extern const u8 gTVPokemonTodayText4[];
+extern const u8 gTVPokemonTodayText5[];
+extern const u8 gTVPokemonTodayText6[];
+extern const u8 gTVPokemonTodayText7[];
+extern const u8 gTVPokemonTodayText8[];
+extern const u8 gTVPokemonTodayText9[];
+extern const u8 gTVPokemonTodayText10[];
+extern const u8 gTVPokemonTodayText11[];
+extern const u8 gTVPokemonTodayText12[];
+extern const u8 gTVSmartShopperText1[];
+extern const u8 gTVSmartShopperText2[];
+extern const u8 gTVSmartShopperText3[];
+extern const u8 gTVSmartShopperText4[];
+extern const u8 gTVSmartShopperText5[];
+extern const u8 gTVSmartShopperText6[];
+extern const u8 gTVSmartShopperText7[];
+extern const u8 gTVSmartShopperText8[];
+extern const u8 gTVSmartShopperText9[];
+extern const u8 gTVSmartShopperText10[];
+extern const u8 gTVSmartShopperText11[];
+extern const u8 gTVSmartShopperText12[];
+extern const u8 gTVSmartShopperText13[];
+extern const u8 gTVBravoTrainerText1[];
+extern const u8 gTVBravoTrainerText2[];
+extern const u8 gTVBravoTrainerText3[];
+extern const u8 gTVBravoTrainerText4[];
+extern const u8 gTVBravoTrainerText5[];
+extern const u8 gTVBravoTrainerText6[];
+extern const u8 gTVBravoTrainerText7[];
+extern const u8 gTVBravoTrainerText8[];
+extern const u8 gTVBravoTrainerText9[];
+extern const u8 gTVBravoTrainerBattleTowerText1[];
+extern const u8 gTVBravoTrainerBattleTowerText2[];
+extern const u8 gTVBravoTrainerBattleTowerText3[];
+extern const u8 gTVBravoTrainerBattleTowerText4[];
+extern const u8 gTVBravoTrainerBattleTowerText5[];
+extern const u8 gTVBravoTrainerBattleTowerText6[];
+extern const u8 gTVBravoTrainerBattleTowerText7[];
+extern const u8 gTVBravoTrainerBattleTowerText8[];
+extern const u8 gTVBravoTrainerBattleTowerText9[];
+extern const u8 gTVBravoTrainerBattleTowerText10[];
+extern const u8 gTVBravoTrainerBattleTowerText11[];
+extern const u8 gTVBravoTrainerBattleTowerText12[];
+extern const u8 gTVBravoTrainerBattleTowerText13[];
+extern const u8 gTVBravoTrainerBattleTowerText14[];
+extern const u8 gTVBravoTrainerBattleTowerText15[];
+extern const u8 gTVNameRaterText1[];
+extern const u8 gTVNameRaterText2[];
+extern const u8 gTVNameRaterText3[];
+extern const u8 gTVNameRaterText4[];
+extern const u8 gTVNameRaterText5[];
+extern const u8 gTVNameRaterText6[];
+extern const u8 gTVNameRaterText7[];
+extern const u8 gTVNameRaterText8[];
+extern const u8 gTVNameRaterText9[];
+extern const u8 gTVNameRaterText10[];
+extern const u8 gTVNameRaterText11[];
+extern const u8 gTVNameRaterText12[];
+extern const u8 gTVNameRaterText13[];
+extern const u8 gTVNameRaterText14[];
+extern const u8 gTVNameRaterText15[];
+extern const u8 gTVNameRaterText16[];
+extern const u8 gTVNameRaterText17[];
+extern const u8 gTVNameRaterText18[];
+extern const u8 gTVNameRaterText19[];
+extern const u8 gTVPokemonTodayFailedCaptureText1[];
+extern const u8 gTVPokemonTodayFailedCaptureText2[];
+extern const u8 gTVPokemonTodayFailedCaptureText3[];
+extern const u8 gTVPokemonTodayFailedCaptureText4[];
+extern const u8 gTVPokemonTodayFailedCaptureText5[];
+extern const u8 gTVPokemonTodayFailedCaptureText6[];
+extern const u8 gTVPokemonTodayFailedCaptureText7[];
+extern const u8 gTVFishingGuruAdviceText1[];
+extern const u8 gTVFishingGuruAdviceText2[];
+extern const u8 gTVWorldOfMastersText1[];
+extern const u8 gTVWorldOfMastersText2[];
+extern const u8 gTVWorldOfMastersText3[];
+extern const u8 gTVGabbyAndTyText1[];
+extern const u8 gTVGabbyAndTyText2[];
+extern const u8 gTVGabbyAndTyText3[];
+extern const u8 gTVGabbyAndTyText4[];
+extern const u8 gTVGabbyAndTyText5[];
+extern const u8 gTVGabbyAndTyText6[];
+extern const u8 gTVGabbyAndTyText7[];
+extern const u8 gTVGabbyAndTyText8[];
+extern const u8 gTVGabbyAndTyText9[];
+
+const u8 *const gTVNewsTextGroup1[] =
+{
+ NULL,
+ gTVNewsText_EnergyGuru1,
+ gTVNewsText_GameCorner1,
+ gTVNewsText_LilycoveDepartment1,
+};
+
+const u8 *const gTVNewsTextGroup2[] =
+{
+ NULL,
+ gTVNewsText_EnergyGuru2,
+ gTVNewsText_GameCorner2,
+ gTVNewsText_LilycoveDepartment2,
+};
+
+const u8 *const gTVNewsTextGroup3[] =
+{
+ NULL,
+ gTVNewsText_EnergyGuru3,
+ gTVNewsText_GameCorner3,
+ gTVNewsText_LilycoveDepartment3,
+};
+
+u8 *const gUnknown_083D1464[] =
+{
+ gStringVar1,
+ gStringVar2,
+ gStringVar3,
+};
+
+const u8 *const gTVFanClubTextGroup[] =
+{
+ gTVFanClubText1,
+ gTVFanClubText2,
+ gTVFanClubText3,
+ gTVFanClubText4,
+ gTVFanClubText5,
+ gTVFanClubText6,
+ gTVFanClubText7,
+ gTVFanClubText8,
+};
+
+const u8 *const gTVRecentHappeningsTextGroup[] =
+{
+ gTVRecentHappeningsText1,
+ gTVRecentHappeningsText2,
+ gTVRecentHappeningsText3,
+ gTVRecentHappeningsText4,
+ gTVRecentHappeningsText5,
+ gTVRecentHappeningsText6,
+};
+
+const u8 *const gTVFanClubOpinionsTextGroup[] =
+{
+ gTVFanClubOpinionsText1,
+ gTVFanClubOpinionsText2,
+ gTVFanClubOpinionsText3,
+ gTVFanClubOpinionsText4,
+ gTVFanClubOpinionsText5,
+};
+
+const u8 *const gTVPokemonOutbreakTextGroup[] =
+{
+ gTVPokemonOutbreakText,
+};
+
+const u8 *const gTVPokemonTodayTextGroup[] =
+{
+ gTVPokemonTodayText1,
+ gTVPokemonTodayText2,
+ gTVPokemonTodayText3,
+ gTVPokemonTodayText4,
+ gTVPokemonTodayText5,
+ gTVPokemonTodayText6,
+ gTVPokemonTodayText7,
+ gTVPokemonTodayText8,
+ gTVPokemonTodayText9,
+ gTVPokemonTodayText10,
+ gTVPokemonTodayText11,
+ gTVPokemonTodayText12,
+};
+
+const u8 *const gTVSmartShopperTextGroup[] =
+{
+ gTVSmartShopperText1,
+ gTVSmartShopperText2,
+ gTVSmartShopperText3,
+ gTVSmartShopperText4,
+ gTVSmartShopperText5,
+ gTVSmartShopperText6,
+ gTVSmartShopperText7,
+ gTVSmartShopperText8,
+ gTVSmartShopperText9,
+ gTVSmartShopperText10,
+ gTVSmartShopperText11,
+ gTVSmartShopperText12,
+ gTVSmartShopperText13,
+};
+
+const u8 *const gTVBravoTrainerTextGroup[] =
+{
+ gTVBravoTrainerText1,
+ gTVBravoTrainerText2,
+ gTVBravoTrainerText3,
+ gTVBravoTrainerText4,
+ gTVBravoTrainerText5,
+ gTVBravoTrainerText6,
+ gTVBravoTrainerText7,
+ gTVBravoTrainerText8,
+ gTVBravoTrainerText9,
+};
+
+const u8 *const gTVBravoTrainerBattleTowerTextGroup[] =
+{
+ gTVBravoTrainerBattleTowerText1,
+ gTVBravoTrainerBattleTowerText2,
+ gTVBravoTrainerBattleTowerText3,
+ gTVBravoTrainerBattleTowerText4,
+ gTVBravoTrainerBattleTowerText5,
+ gTVBravoTrainerBattleTowerText6,
+ gTVBravoTrainerBattleTowerText7,
+ gTVBravoTrainerBattleTowerText8,
+ gTVBravoTrainerBattleTowerText9,
+ gTVBravoTrainerBattleTowerText10,
+ gTVBravoTrainerBattleTowerText11,
+ gTVBravoTrainerBattleTowerText12,
+ gTVBravoTrainerBattleTowerText13,
+ gTVBravoTrainerBattleTowerText14,
+ gTVBravoTrainerBattleTowerText15,
+};
+
+const u8 *const gTVNameRaterTextGroup[] =
+{
+ gTVNameRaterText1,
+ gTVNameRaterText2,
+ gTVNameRaterText3,
+ gTVNameRaterText4,
+ gTVNameRaterText5,
+ gTVNameRaterText6,
+ gTVNameRaterText7,
+ gTVNameRaterText8,
+ gTVNameRaterText9,
+ gTVNameRaterText10,
+ gTVNameRaterText11,
+ gTVNameRaterText12,
+ gTVNameRaterText13,
+ gTVNameRaterText14,
+ gTVNameRaterText15,
+ gTVNameRaterText16,
+ gTVNameRaterText17,
+ gTVNameRaterText18,
+ gTVNameRaterText19,
+};
+
+const u8 *const gTVPokemonTodayFailedCaptureTextGroup[] =
+{
+ gTVPokemonTodayFailedCaptureText1,
+ gTVPokemonTodayFailedCaptureText2,
+ gTVPokemonTodayFailedCaptureText3,
+ gTVPokemonTodayFailedCaptureText4,
+ gTVPokemonTodayFailedCaptureText5,
+ gTVPokemonTodayFailedCaptureText6,
+ gTVPokemonTodayFailedCaptureText7,
+};
+
+const u8 *const gTVFishingGuruAdviceTextGroup[] =
+{
+ gTVFishingGuruAdviceText1,
+ gTVFishingGuruAdviceText2,
+};
+
+const u8 *const gTVWorldOfMastersTextGroup[] =
+{
+ gTVWorldOfMastersText1,
+ gTVWorldOfMastersText2,
+ gTVWorldOfMastersText3,
+};
+
+const u8 *const gTVGabbyAndTyTextGroup[] =
+{
+ gTVGabbyAndTyText1,
+ gTVGabbyAndTyText2,
+ gTVGabbyAndTyText3,
+ gTVGabbyAndTyText4,
+ gTVGabbyAndTyText5,
+ gTVGabbyAndTyText6,
+ gTVGabbyAndTyText7,
+ gTVGabbyAndTyText8,
+ gTVGabbyAndTyText9,
+};
+
void ClearTVShowData(void)
{
u8 showidx;
@@ -123,9 +447,8 @@ void ClearTVShowData(void)
bool8 sub_80BF1B4(u8);
void sub_80BF20C(void);
-extern u16 sub_8135D3C(u8);
-extern u8 gScriptContestCategory;
-extern u8 gScriptContestRank;
+extern u8 gSpecialVar_ContestCategory;
+extern u8 gSpecialVar_ContestRank;
extern u8 gUnknown_03004316[11];
extern u8 gBattleOutcome;
@@ -219,7 +542,7 @@ bool8 IsTVShowInSearchOfTrainersAiring(void);
void UpdateTVScreensOnMap(int width, int height)
{
- FlagSet(SYS_TV_WATCH);
+ FlagSet(FLAG_SYS_TV_WATCH);
switch (CheckForBigMovieOrEmergencyNewsOnTV())
{
case 1:
@@ -228,14 +551,14 @@ void UpdateTVScreensOnMap(int width, int height)
case 2:
break;
default:
- if (gSaveBlock1.location.mapGroup == MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F
- && gSaveBlock1.location.mapNum == MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F)
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP(LILYCOVE_CITY_COVE_LILY_MOTEL_1F)
+ && gSaveBlock1.location.mapNum == MAP_NUM(LILYCOVE_CITY_COVE_LILY_MOTEL_1F))
{
SetTVMetatilesOnMap(width, height, 0x3);
}
- else if (FlagGet(SYS_TV_START) && (sub_80BD8B8() != 0xff || sub_80BECA0() != 0xff || IsTVShowInSearchOfTrainersAiring()))
+ else if (FlagGet(FLAG_SYS_TV_START) && (sub_80BD8B8() != 0xff || sub_80BECA0() != 0xff || IsTVShowInSearchOfTrainersAiring()))
{
- FlagClear(SYS_TV_WATCH);
+ FlagClear(FLAG_SYS_TV_WATCH);
SetTVMetatilesOnMap(width, height, 0x3);
}
break;
@@ -351,7 +674,7 @@ void GabbyAndTyBeforeInterview(void)
TakeTVShowInSearchOfTrainersOffTheAir();
if (gSaveBlock1.gabbyAndTyData.lastMove == 0)
- FlagSet(1);
+ FlagSet(FLAG_TEMP_1);
}
void sub_80BDC14(void)
@@ -660,8 +983,8 @@ void sub_80BE284(u8 a0)
if (gUnknown_03005D38.var0 != -1)
{
bravoTrainer->contestResult = a0;
- bravoTrainer->contestCategory = gScriptContestCategory;
- bravoTrainer->contestRank = gScriptContestRank;
+ bravoTrainer->contestCategory = gSpecialVar_ContestCategory;
+ bravoTrainer->contestRank = gSpecialVar_ContestRank;
bravoTrainer->species = GetMonData(&gPlayerParty[gUnknown_02038694], MON_DATA_SPECIES, NULL);
GetMonData(&gPlayerParty[gUnknown_02038694], MON_DATA_NICKNAME, bravoTrainer->pokemonNickname);
}
@@ -674,12 +997,12 @@ void sub_80BE320(void)
bravoTrainerTower->var00 = TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE;
bravoTrainerTower->var01 = 1;
StringCopy(bravoTrainerTower->trainerName, gSaveBlock2.playerName);
- StringCopy(bravoTrainerTower->pokemonName, gSaveBlock2.filler_A8.filler_3DC);
- bravoTrainerTower->species = gSaveBlock2.filler_A8.var_480;
- bravoTrainerTower->defeatedSpecies = gSaveBlock2.filler_A8.var_482;
- bravoTrainerTower->var16 = sub_8135D3C(gSaveBlock2.filler_A8.var_4D0);
- bravoTrainerTower->var1c = gSaveBlock2.filler_A8.var_4AD;
- if (gSaveBlock2.filler_A8.var_4D0 == 0)
+ StringCopy(bravoTrainerTower->pokemonName, gSaveBlock2.battleTower.defeatedByTrainerName);
+ bravoTrainerTower->species = gSaveBlock2.battleTower.firstMonSpecies;
+ bravoTrainerTower->defeatedSpecies = gSaveBlock2.battleTower.defeatedBySpecies;
+ bravoTrainerTower->var16 = GetCurrentBattleTowerWinStreak(gSaveBlock2.battleTower.lastStreakLevelType);
+ bravoTrainerTower->var1c = gSaveBlock2.battleTower.battleOutcome;
+ if (gSaveBlock2.battleTower.lastStreakLevelType == 0)
bravoTrainerTower->btLevel = 50;
else
bravoTrainerTower->btLevel = 100;
@@ -724,7 +1047,7 @@ void sub_80BE3BC(void)
void sub_80BE478(void)
{
sub_80BF478();
- if (gScriptResult == 1)
+ if (gSpecialVar_Result == 1)
return;
GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar1);
@@ -815,7 +1138,7 @@ void nullsub_21(void)
void sub_80BE778(void)
{
- if (FlagGet(SYS_GAME_CLEAR))
+ if (FlagGet(FLAG_SYS_GAME_CLEAR))
{
u8 i;
@@ -1008,7 +1331,7 @@ void sub_80BEB20(void)
{
u16 rval;
- if (FlagGet(SYS_GAME_CLEAR) != 0)
+ if (FlagGet(FLAG_SYS_GAME_CLEAR) != 0)
{
gUnknown_03005D38.var0 = sub_80BEBC8(gSaveBlock1.unknown_2ABC);
if (gUnknown_03005D38.var0 != -1 && sub_80BF77C(0x28f) != 1)
@@ -1091,7 +1414,7 @@ void sub_80BECE8(void)
arg0 = sub_80BECA0();
if (arg0 == 0xff)
{
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
return;
}
if (gSaveBlock1.unknown_2ABC[arg0].val2 == 0)
@@ -1110,7 +1433,7 @@ void sub_80BECE8(void)
gSaveBlock1.unknown_2ABC[arg0].val1 = 0;
ShowFieldMessage(gTVNewsTextGroup1[gSaveBlock1.unknown_2ABC[arg0].val0]);
}
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
}
bool8 GetPriceReduction(u8 arg0)
@@ -1137,16 +1460,16 @@ bool8 IsPriceDiscounted(u8 arg0)
switch (arg0)
{
case 1:
- if (gSaveBlock1.location.mapGroup == MAP_GROUP_SLATEPORT_CITY
- && gSaveBlock1.location.mapNum == MAP_ID_SLATEPORT_CITY
- && gScriptLastTalked == 0x1a)
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP(SLATEPORT_CITY)
+ && gSaveBlock1.location.mapNum == MAP_NUM(SLATEPORT_CITY)
+ && gSpecialVar_LastTalked == 0x1a)
return TRUE;
else
return FALSE;
break;
case 3:
- if (gSaveBlock1.location.mapGroup == MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP
- && gSaveBlock1.location.mapNum == MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP)
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP)
+ && gSaveBlock1.location.mapNum == MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP))
return TRUE;
else
return FALSE;
@@ -1184,7 +1507,7 @@ void sub_80BEE84(u16 var0)
}
else
{
- if (!gSaveBlock1.unknown_2ABC[i].val1 && FlagGet(SYS_GAME_CLEAR) == 1)
+ if (!gSaveBlock1.unknown_2ABC[i].val1 && FlagGet(FLAG_SYS_GAME_CLEAR) == 1)
gSaveBlock1.unknown_2ABC[i].val1 = 1;
gSaveBlock1.unknown_2ABC[i].val2 -= var0;
}
@@ -1337,7 +1660,7 @@ void sub_80BF25C(u8 showType)
{
if(gSaveBlock1.tvShows[i].common.var01 == 1)
{
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
}
else
{
@@ -1353,7 +1676,7 @@ void sub_80BF25C(u8 showType)
void sub_80BF2C4(void)
{
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
switch (gSpecialVar_0x8005)
{
case TVSHOW_FAN_CLUB_LETTER:
@@ -1385,7 +1708,7 @@ void sub_80BF334(void)
struct TVShowFanClubLetter *fanclubLetter;
sub_80BF25C(TVSHOW_FAN_CLUB_LETTER);
- if (gScriptResult == 0)
+ if (gSpecialVar_Result == 0)
{
StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, 0)]);
fanclubLetter = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].fanclubLetter;
@@ -1398,7 +1721,7 @@ void sub_80BF3A4(void)
struct TVShowRecentHappenings *recentHappenings;
sub_80BF25C(TVSHOW_RECENT_HAPPENINGS);
- if (gScriptResult == 0)
+ if (gSpecialVar_Result == 0)
{
recentHappenings = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].recentHappenings;
sub_80EB6FC(recentHappenings->var04, 6);
@@ -1410,7 +1733,7 @@ void sub_80BF3DC(void)
struct TVShowFanclubOpinions *fanclubOpinions;
sub_80BF25C(TVSHOW_PKMN_FAN_CLUB_OPINIONS);
- if (gScriptResult == 0)
+ if (gSpecialVar_Result == 0)
{
StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, 0)]);
GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_NICKNAME, gStringVar2);
@@ -1422,7 +1745,7 @@ void sub_80BF3DC(void)
void sub_80BF46C(void)
{
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
}
void sub_80BF478(void)
@@ -1435,7 +1758,7 @@ void sub_80BF484(void)
struct TVShowBravoTrainerPokemonProfiles *bravoTrainer;
sub_80BF25C(TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE);
- if (gScriptResult == 0)
+ if (gSpecialVar_Result == 0)
{
bravoTrainer = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].bravoTrainer;
sub_80EB6FC(bravoTrainer->var04, 2);
@@ -1447,7 +1770,7 @@ void sub_80BF4BC(void)
struct TVShowBravoTrainerBattleTowerSpotlight *bravoTrainerTower;
sub_80BF25C(TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE);
- if (gScriptResult == 0)
+ if (gSpecialVar_Result == 0)
{
bravoTrainerTower = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].bravoTrainerTower;
sub_80EB6FC(bravoTrainerTower->var18, 1); // wrong struct ident, fix later
@@ -1575,9 +1898,9 @@ void sub_80BF6D8(void)
gUnknown_03005D38.var0 = sub_80BF720(gSaveBlock1.tvShows);
gSpecialVar_0x8006 = gUnknown_03005D38.var0;
if (gUnknown_03005D38.var0 == -1)
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
else
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
}
s8 sub_80BF720(TVShow tvShow[])
@@ -1772,9 +2095,9 @@ void sub_80BFAE0(void)
void sub_80BFB10(void)
{
if (GetPlayerTrainerId() == GetMonData(&(gPlayerParty[gSpecialVar_0x8004]), MON_DATA_OT_ID, 0))
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
else
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
}
u8 sub_80BFB54(u8 arg0)
@@ -1798,32 +2121,32 @@ u32 GetPlayerTrainerId(void)
u8 CheckForBigMovieOrEmergencyNewsOnTV(void)
{
- if (gSaveBlock1.location.mapGroup != MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F)
+ if (gSaveBlock1.location.mapGroup != MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_1F))
return 0;
if (gSaveBlock2.playerGender == MALE)
{
- if (gSaveBlock1.location.mapNum != MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F)
+ if (gSaveBlock1.location.mapNum != MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_1F))
return 0;
}
else
{
- if (gSaveBlock1.location.mapNum != MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F)
+ if (gSaveBlock1.location.mapNum != MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_1F))
return 0;
}
- if (FlagGet(SYS_TV_LATI) == 1)
+ if (FlagGet(FLAG_SYS_TV_LATI) == 1)
return 1;
- if (FlagGet(SYS_TV_HOME) == 1)
+ if (FlagGet(FLAG_SYS_TV_HOME) == 1)
return 2;
return 1;
}
void GetMomOrDadStringForTVMessage(void)
{
- if (gSaveBlock1.location.mapGroup == MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F)
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_1F))
{
if (gSaveBlock2.playerGender == MALE)
{
- if (gSaveBlock1.location.mapNum == MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F)
+ if (gSaveBlock1.location.mapNum == MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_1F))
{
StringCopy(gStringVar1, gOtherText_Mom);
VarSet(VAR_0x4003, 1);
@@ -1831,7 +2154,7 @@ void GetMomOrDadStringForTVMessage(void)
}
else
{
- if (gSaveBlock1.location.mapNum == MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F)
+ if (gSaveBlock1.location.mapNum == MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_1F))
{
StringCopy(gStringVar1, gOtherText_Mom);
VarSet(VAR_0x4003, 1);
@@ -2327,7 +2650,7 @@ void sub_80C0408(void)
{
u16 i;
- if (FlagGet(SYS_GAME_CLEAR) == TRUE)
+ if (FlagGet(FLAG_SYS_GAME_CLEAR) == TRUE)
return;
for (i = 0; i < 24; i++)
{
@@ -2478,7 +2801,7 @@ void sub_80C0788(void)
{
u8 i;
- if (FlagGet(SYS_GAME_CLEAR) != 1)
+ if (FlagGet(FLAG_SYS_GAME_CLEAR) != 1)
{
for (i = 0; i < 16; i++)
gSaveBlock1.unknown_2ABC[i].val1 = 0;
@@ -2546,7 +2869,7 @@ void DoTVShowBravoTrainerPokemonProfile(void)
struct TVShowBravoTrainerPokemonProfiles *bravoTrainer = &gSaveBlock1.tvShows[gSpecialVar_0x8004].bravoTrainer;
u8 state;
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
state = gUnknown_020387E8;
switch(state)
{
@@ -2617,7 +2940,7 @@ void DoTVShowBravoTrainerBattleTowerProfile(void)
struct TVShowBravoTrainerBattleTowerSpotlight *bravoTrainerTower = &gSaveBlock1.tvShows[gSpecialVar_0x8004].bravoTrainerTower;
u8 state;
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
state = gUnknown_020387E8;
switch(state)
{
@@ -2706,7 +3029,7 @@ void DoTVShowTodaysSmartShopper(void)
struct TVShowSmartShopper *smartShopper = &gSaveBlock1.tvShows[gSpecialVar_0x8004].smartshopperShow;
u8 state;
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
state = gUnknown_020387E8;
switch(state)
{
@@ -2794,7 +3117,7 @@ void DoTVShowTheNameRaterShow(void)
struct TVShowNameRaterShow *nameRaterShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004].nameRaterShow;
u8 state;
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
state = gUnknown_020387E8;
switch (state)
{
@@ -2890,7 +3213,7 @@ void DoTVShowPokemonTodaySuccessfulCapture(void)
struct TVShowPokemonToday *pokemonToday = &gSaveBlock1.tvShows[gSpecialVar_0x8004].pokemonToday;
u8 state;
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
state = gUnknown_020387E8;
switch (state)
{
@@ -2959,7 +3282,7 @@ void DoTVShowPokemonTodayFailedCapture(void)
struct TVShowPokemonTodayFailed *pokemonTodayFailed = &gSaveBlock1.tvShows[gSpecialVar_0x8004].pokemonTodayFailed;
u8 state;
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
state = gUnknown_020387E8;
switch (state)
{
@@ -3004,7 +3327,7 @@ void DoTVShowPokemonFanClubLetter(void)
u8 state;
u16 rval;
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
state = gUnknown_020387E8;
switch (state)
{
@@ -3056,7 +3379,7 @@ void DoTVShowRecentHappenings(void)
struct TVShowRecentHappenings *recentHappenings = &gSaveBlock1.tvShows[gSpecialVar_0x8004].recentHappenings;
u8 state;
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
state = gUnknown_020387E8;
switch (state)
{
@@ -3090,7 +3413,7 @@ void DoTVShowPokemonFanClubOpinions(void)
struct TVShowFanclubOpinions *fanclubOpinions = &gSaveBlock1.tvShows[gSpecialVar_0x8004].fanclubOpinions;
u8 state;
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
state = gUnknown_020387E8;
switch (state)
{
@@ -3136,7 +3459,7 @@ void DoTVShowInSearchOfTrainers(void)
{
u8 state;
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
state = gUnknown_020387E8;
switch (state)
{
@@ -3178,7 +3501,7 @@ void DoTVShowInSearchOfTrainers(void)
EasyChat_GetWordText(gStringVar1, gSaveBlock1.gabbyAndTyData.quote);
StringCopy(gStringVar2, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon1]);
StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon2]);
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
gUnknown_020387E8 = 0;;
TakeTVShowInSearchOfTrainersOffTheAir();
break;
@@ -3191,7 +3514,7 @@ void DoTVShowPokemonAngler(void)
struct TVShowPokemonAngler *pokemonAngler = &gSaveBlock1.tvShows[gSpecialVar_0x8004].pokemonAngler;
u8 state;
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
if (pokemonAngler->var02 < pokemonAngler->var03)
gUnknown_020387E8 = 0;
else
@@ -3220,7 +3543,7 @@ void DoTVShowTheWorldOfMasters(void)
struct TVShowWorldOfMasters *worldOfMasters = &gSaveBlock1.tvShows[gSpecialVar_0x8004].worldOfMasters;
u8 state;
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
state = gUnknown_020387E8;
switch (state)
{
@@ -3248,7 +3571,7 @@ void DoTVShowTheWorldOfMasters(void)
void TVShowDone(void)
{
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
gUnknown_020387E8 = 0;
gSaveBlock1.tvShows[gSpecialVar_0x8004].common.var01 = 0;
}
diff --git a/src/field/use_pokeblock.c b/src/field/use_pokeblock.c
index e946a9cfc..7253ac901 100644
--- a/src/field/use_pokeblock.c
+++ b/src/field/use_pokeblock.c
@@ -15,17 +15,17 @@
#include "text.h"
#include "menu.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "pokeblock.h"
#define GFX_TAG_CONDITIONUPDOWN 0
#ifdef GERMAN
extern const u16 ConditionUpDownPalette[16];
-extern const u32 ConditionUpDownTiles[0x80];
+extern const u8 ConditionUpDownTiles[0x200];
#else
const u16 ConditionUpDownPalette[] = INCBIN_U16("graphics/misc/condition_up_down.gbapal");
-const u32 ConditionUpDownTiles[] = INCBIN_U32("graphics/misc/condition_up_down.4bpp");
+const u8 ConditionUpDownTiles[] = INCBIN_U8("graphics/misc/condition_up_down.4bpp");
#endif
static const u32 sContestStatsMonData[] = {
@@ -49,7 +49,7 @@ static const u8 *const sContextStatNames[] = {
};
static const struct SpriteSheet gSpriteSheet_ConditionUpDown = {
- (u8 *)ConditionUpDownTiles,
+ ConditionUpDownTiles,
sizeof ConditionUpDownTiles,
GFX_TAG_CONDITIONUPDOWN
};
@@ -105,7 +105,7 @@ EWRAM_DATA u8 gPokeblockMonID = 0;
EWRAM_DATA s16 gPokeblockGain = 0;
extern u16 gKeyRepeatStartDelay;
-extern u16 gScriptItemId; // FIXME: remove after merge of #349 Pokeblock
+extern u16 gSpecialVar_ItemId; // FIXME: remove after merge of #349 Pokeblock
static void launch_c3_walk_stairs_and_run_once(void (*const)(void));
static void sub_81361E4(void);
@@ -244,7 +244,7 @@ static void sub_8136294(void)
case 6:
gUnknown_083DFEC4->unk76AA = 0;
gUnknown_083DFEC4->unk87E0 = NULL;
- gUnknown_083DFEC4->unk030C = 0x20;
+ gUnknown_083DFEC4->unk030C.val = 0x20;
gUnknown_02039304->unk50++;
break;
case 7:
@@ -574,7 +574,7 @@ static void sub_81369CC(void)
case 5:
if (gMain.newKeys & (A_BUTTON | B_BUTTON) && !sub_8136D00())
{
- PokeblockClearIfExists((u8)gScriptItemId);
+ PokeblockClearIfExists((u8)gSpecialVar_ItemId);
launch_c3_walk_stairs_and_run_once(sub_8136B44);
}
break;
@@ -893,11 +893,11 @@ static void sub_8137138(void)
static void sub_81371DC(struct Sprite *sprite)
{
- if (sprite->data0 <= 5)
+ if (sprite->data[0] <= 5)
sprite->pos2.y -= 2;
- else if (sprite->data0 <= 11)
+ else if (sprite->data[0] <= 11)
sprite->pos2.y += 2;
- if ((++sprite->data0) > 60)
+ if ((++sprite->data[0]) > 60)
{
DestroySprite(sprite);
gUnknown_02039304->unk54--;
diff --git a/src/field/wallclock.c b/src/field/wallclock.c
index 8db13dc2d..2892d09f9 100644
--- a/src/field/wallclock.c
+++ b/src/field/wallclock.c
@@ -5,7 +5,7 @@
#include "menu.h"
#include "palette.h"
#include "rtc.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "strings2.h"
#include "task.h"
@@ -288,22 +288,22 @@ void CB2_StartWallClock(void)
gTasks[taskId].tHourHandAngle = 300;
spriteId = CreateSprite(&gSpriteTemplate_83F7AD8, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, 1);
- gSprites[spriteId].data0 = taskId;
+ gSprites[spriteId].data[0] = taskId;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 0;
spriteId = CreateSprite(&gSpriteTemplate_83F7AF0, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, 0);
- gSprites[spriteId].data0 = taskId;
+ gSprites[spriteId].data[0] = taskId;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 1;
spriteId = CreateSprite(&gSpriteTemplate_83F7B28, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, 2);
- gSprites[spriteId].data0 = taskId;
- gSprites[spriteId].data1 = 45;
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = 45;
spriteId = CreateSprite(&gSpriteTemplate_83F7B40, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, 2);
- gSprites[spriteId].data0 = taskId;
- gSprites[spriteId].data1 = 90;
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = 90;
WallClockInit();
}
@@ -333,22 +333,22 @@ void CB2_ViewWallClock(void)
}
spriteId = CreateSprite(&gSpriteTemplate_83F7AD8, 120, 80, 1);
- gSprites[spriteId].data0 = taskId;
+ gSprites[spriteId].data[0] = taskId;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 0;
spriteId = CreateSprite(&gSpriteTemplate_83F7AF0, 120, 80, 0);
- gSprites[spriteId].data0 = taskId;
+ gSprites[spriteId].data[0] = taskId;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 1;
spriteId = CreateSprite(&gSpriteTemplate_83F7B28, 120, 80, 2);
- gSprites[spriteId].data0 = taskId;
- gSprites[spriteId].data1 = angle1;
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = angle1;
spriteId = CreateSprite(&gSpriteTemplate_83F7B40, 120, 80, 2);
- gSprites[spriteId].data0 = taskId;
- gSprites[spriteId].data1 = angle2;
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = angle2;
WallClockInit();
}
@@ -968,7 +968,7 @@ static void sub_810B05C(struct Sprite *sprite)
u16 x;
u16 y;
- angle = gTasks[sprite->data0].tMinuteHandAngle;
+ angle = gTasks[sprite->data[0]].tMinuteHandAngle;
sin = Sin2(angle) / 16;
cos = Cos2(angle) / 16;
SetOamMatrix(0, cos, sin, -sin, cos);
@@ -993,7 +993,7 @@ static void sub_810B0F4(struct Sprite *sprite)
u16 x;
u16 y;
- angle = gTasks[sprite->data0].tHourHandAngle;
+ angle = gTasks[sprite->data[0]].tHourHandAngle;
sin = Sin2(angle) / 16;
cos = Cos2(angle) / 16;
SetOamMatrix(1, cos, sin, -sin, cos);
@@ -1015,23 +1015,23 @@ static void sub_810B18C(struct Sprite *sprite)
s16 sin;
s16 cos;
- if (gTasks[sprite->data0].tPeriod != PERIOD_AM)
+ if (gTasks[sprite->data[0]].tPeriod != PERIOD_AM)
{
- if (sprite->data1 >= 60 && sprite->data1 < 90)
- sprite->data1 += 5;
- if (sprite->data1 < 60)
- sprite->data1++;
+ if (sprite->data[1] >= 60 && sprite->data[1] < 90)
+ sprite->data[1] += 5;
+ if (sprite->data[1] < 60)
+ sprite->data[1]++;
}
else
{
- if (sprite->data1 > 45 && sprite->data1 <= 75)
- sprite->data1 -= 5;
- if (sprite->data1 > 75)
- sprite->data1--;
+ if (sprite->data[1] > 45 && sprite->data[1] <= 75)
+ sprite->data[1] -= 5;
+ if (sprite->data[1] > 75)
+ sprite->data[1]--;
}
- cos = Cos2((u16)sprite->data1);
+ cos = Cos2((u16)sprite->data[1]);
sprite->pos2.x = cos * 30 / 4096;
- sin = Sin2((u16)sprite->data1);
+ sin = Sin2((u16)sprite->data[1]);
sprite->pos2.y = sin * 30 / 4096;
}
@@ -1040,22 +1040,22 @@ static void sub_810B230(struct Sprite *sprite)
s16 sin;
s16 cos;
- if (gTasks[sprite->data0].tPeriod != PERIOD_AM)
+ if (gTasks[sprite->data[0]].tPeriod != PERIOD_AM)
{
- if (sprite->data1 >= 105 && sprite->data1 < 135)
- sprite->data1 += 5;
- if (sprite->data1 < 105)
- sprite->data1++;
+ if (sprite->data[1] >= 105 && sprite->data[1] < 135)
+ sprite->data[1] += 5;
+ if (sprite->data[1] < 105)
+ sprite->data[1]++;
}
else
{
- if (sprite->data1 > 90 && sprite->data1 <= 120)
- sprite->data1 -= 5;
- if (sprite->data1 > 120)
- sprite->data1--;
+ if (sprite->data[1] > 90 && sprite->data[1] <= 120)
+ sprite->data[1] -= 5;
+ if (sprite->data[1] > 120)
+ sprite->data[1]--;
}
- cos = Cos2((u16)sprite->data1);
+ cos = Cos2((u16)sprite->data[1]);
sprite->pos2.x = cos * 30 / 4096;
- sin = Sin2((u16)sprite->data1);
+ sin = Sin2((u16)sprite->data[1]);
sprite->pos2.y = sin * 30 / 4096;
}
diff --git a/src/field/wild_encounter.c b/src/field/wild_encounter.c
index 390898917..4bf83cad8 100644
--- a/src/field/wild_encounter.c
+++ b/src/field/wild_encounter.c
@@ -1,19 +1,19 @@
#include "global.h"
#include "wild_encounter.h"
-#include "abilities.h"
+#include "constants/abilities.h"
#include "battle_setup.h"
#include "event_data.h"
#include "field_player_avatar.h"
#include "fieldmap.h"
-#include "map_constants.h"
+#include "constants/maps.h"
#include "metatile_behavior.h"
#include "pokeblock.h"
-#include "rng.h"
+#include "random.h"
#include "roamer.h"
#include "overworld.h"
#include "safari_zone.h"
#include "script.h"
-#include "species.h"
+#include "constants/species.h"
#include "tv.h"
const struct WildPokemon PetalburgCity_WaterMons [] =
@@ -2898,10 +2898,804 @@ const struct WildPokemon Underwater2_WaterMons [] =
};
const struct WildPokemonInfo Underwater2_WaterMonsInfo = {4, Underwater2_WaterMons};
+const struct WildPokemonHeader gWildMonHeaders[] =
+{
+ {
+ .mapGroup = MAP_GROUP(PETALBURG_CITY),
+ .mapNum = MAP_NUM(PETALBURG_CITY),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &PetalburgCity_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &PetalburgCity_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(SLATEPORT_CITY),
+ .mapNum = MAP_NUM(SLATEPORT_CITY),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &SlateportCity_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &SlateportCity_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(LILYCOVE_CITY),
+ .mapNum = MAP_NUM(LILYCOVE_CITY),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &LilycoveCity_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &LilycoveCity_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(MOSSDEEP_CITY),
+ .mapNum = MAP_NUM(MOSSDEEP_CITY),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &MossdeepCity_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &MossdeepCity_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(SOOTOPOLIS_CITY),
+ .mapNum = MAP_NUM(SOOTOPOLIS_CITY),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &SootopolisCity_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &SootopolisCity_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(EVER_GRANDE_CITY),
+ .mapNum = MAP_NUM(EVER_GRANDE_CITY),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &EverGrandeCity_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &EverGrandeCity_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(METEOR_FALLS_1F_1R),
+ .mapNum = MAP_NUM(METEOR_FALLS_1F_1R),
+ .landMonsInfo = &MeteorFalls_1F_1R_LandMonsInfo,
+ .waterMonsInfo = &MeteorFalls_1F_1R_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &MeteorFalls_1F_1R_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(METEOR_FALLS_1F_2R),
+ .mapNum = MAP_NUM(METEOR_FALLS_1F_2R),
+ .landMonsInfo = &MeteorFalls_1F_2R_LandMonsInfo,
+ .waterMonsInfo = &MeteorFalls_1F_2R_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &MeteorFalls_1F_2R_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(METEOR_FALLS_B1F_1R),
+ .mapNum = MAP_NUM(METEOR_FALLS_B1F_1R),
+ .landMonsInfo = &MeteorFalls_B1F_1R_LandMonsInfo,
+ .waterMonsInfo = &MeteorFalls_B1F_1R_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &MeteorFalls_B1F_1R_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(METEOR_FALLS_B1F_2R),
+ .mapNum = MAP_NUM(METEOR_FALLS_B1F_2R),
+ .landMonsInfo = &MeteorFalls_B1F_2R_LandMonsInfo,
+ .waterMonsInfo = &MeteorFalls_B1F_2R_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &MeteorFalls_B1F_2R_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(RUSTURF_TUNNEL),
+ .mapNum = MAP_NUM(RUSTURF_TUNNEL),
+ .landMonsInfo = &RusturfTunnel_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(GRANITE_CAVE_1F),
+ .mapNum = MAP_NUM(GRANITE_CAVE_1F),
+ .landMonsInfo = &GraniteCave_1F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(GRANITE_CAVE_B1F),
+ .mapNum = MAP_NUM(GRANITE_CAVE_B1F),
+ .landMonsInfo = &GraniteCave_B1F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(GRANITE_CAVE_B2F),
+ .mapNum = MAP_NUM(GRANITE_CAVE_B2F),
+ .landMonsInfo = &GraniteCave_B2F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = &GraniteCave_B2F_RockSmashMonsInfo,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(GRANITE_CAVE_STEVENS_ROOM),
+ .mapNum = MAP_NUM(GRANITE_CAVE_STEVENS_ROOM),
+ .landMonsInfo = &GraniteCave_StevensRoom_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(PETALBURG_WOODS),
+ .mapNum = MAP_NUM(PETALBURG_WOODS),
+ .landMonsInfo = &PetalburgWoods_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(JAGGED_PASS),
+ .mapNum = MAP_NUM(JAGGED_PASS),
+ .landMonsInfo = &JaggedPass_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(FIERY_PATH),
+ .mapNum = MAP_NUM(FIERY_PATH),
+ .landMonsInfo = &FieryPath_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(MT_PYRE_1F),
+ .mapNum = MAP_NUM(MT_PYRE_1F),
+ .landMonsInfo = &MtPyre_1F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(MT_PYRE_2F),
+ .mapNum = MAP_NUM(MT_PYRE_2F),
+ .landMonsInfo = &MtPyre_2F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(MT_PYRE_3F),
+ .mapNum = MAP_NUM(MT_PYRE_3F),
+ .landMonsInfo = &MtPyre_3F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(MT_PYRE_4F),
+ .mapNum = MAP_NUM(MT_PYRE_4F),
+ .landMonsInfo = &MtPyre_4F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(MT_PYRE_5F),
+ .mapNum = MAP_NUM(MT_PYRE_5F),
+ .landMonsInfo = &MtPyre_5F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(MT_PYRE_6F),
+ .mapNum = MAP_NUM(MT_PYRE_6F),
+ .landMonsInfo = &MtPyre_6F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(MT_PYRE_EXTERIOR),
+ .mapNum = MAP_NUM(MT_PYRE_EXTERIOR),
+ .landMonsInfo = &MtPyre_Exterior_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(MT_PYRE_SUMMIT),
+ .mapNum = MAP_NUM(MT_PYRE_SUMMIT),
+ .landMonsInfo = &MtPyre_Summit_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ENTRANCE),
+ .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ENTRANCE),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &SeafloorCavern_Entrance_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &SeafloorCavern_Entrance_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM1),
+ .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM1),
+ .landMonsInfo = &SeafloorCavern_Room1_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM2),
+ .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM2),
+ .landMonsInfo = &SeafloorCavern_Room2_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM3),
+ .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM3),
+ .landMonsInfo = &SeafloorCavern_Room3_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM4),
+ .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM4),
+ .landMonsInfo = &SeafloorCavern_Room4_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM5),
+ .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM5),
+ .landMonsInfo = &SeafloorCavern_Room5_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM6),
+ .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM6),
+ .landMonsInfo = &SeafloorCavern_Room6_LandMonsInfo,
+ .waterMonsInfo = &SeafloorCavern_Room6_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &SeafloorCavern_Room6_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM7),
+ .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM7),
+ .landMonsInfo = &SeafloorCavern_Room7_LandMonsInfo,
+ .waterMonsInfo = &SeafloorCavern_Room7_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &SeafloorCavern_Room7_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM8),
+ .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM8),
+ .landMonsInfo = &SeafloorCavern_Room8_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_ENTRANCE),
+ .mapNum = MAP_NUM(CAVE_OF_ORIGIN_ENTRANCE),
+ .landMonsInfo = &CaveOfOrigin_Entrance_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_1F),
+ .mapNum = MAP_NUM(CAVE_OF_ORIGIN_1F),
+ .landMonsInfo = &CaveOfOrigin_1F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_B1F),
+ .mapNum = MAP_NUM(CAVE_OF_ORIGIN_B1F),
+ .landMonsInfo = &CaveOfOrigin_B1F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_B2F),
+ .mapNum = MAP_NUM(CAVE_OF_ORIGIN_B2F),
+ .landMonsInfo = &CaveOfOrigin_B2F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_B3F),
+ .mapNum = MAP_NUM(CAVE_OF_ORIGIN_B3F),
+ .landMonsInfo = &CaveOfOrigin_B3F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(VICTORY_ROAD_1F),
+ .mapNum = MAP_NUM(VICTORY_ROAD_1F),
+ .landMonsInfo = &VictoryRoad_1F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(VICTORY_ROAD_B1F),
+ .mapNum = MAP_NUM(VICTORY_ROAD_B1F),
+ .landMonsInfo = &VictoryRoad_B1F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = &VictoryRoad_B1F_RockSmashMonsInfo,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(VICTORY_ROAD_B2F),
+ .mapNum = MAP_NUM(VICTORY_ROAD_B2F),
+ .landMonsInfo = &VictoryRoad_B2F_LandMonsInfo,
+ .waterMonsInfo = &VictoryRoad_B2F_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &VictoryRoad_B2F_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM),
+ .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM),
+ .landMonsInfo = &ShoalCave_LowTideEntranceRoom_LandMonsInfo,
+ .waterMonsInfo = &ShoalCave_LowTideEntranceRoom_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &ShoalCave_LowTideEntranceRoom_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_INNER_ROOM),
+ .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_INNER_ROOM),
+ .landMonsInfo = &ShoalCave_LowTideInnerRoom_LandMonsInfo,
+ .waterMonsInfo = &ShoalCave_LowTideInnerRoom_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &ShoalCave_LowTideInnerRoom_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM),
+ .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM),
+ .landMonsInfo = &ShoalCave_LowTideStairsRoom_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_LOWER_ROOM),
+ .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_LOWER_ROOM),
+ .landMonsInfo = &ShoalCave_LowTideLowerRoom_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_ICE_ROOM),
+ .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_ICE_ROOM),
+ .landMonsInfo = &ShoalCave_LowTideIceRoom_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(NEW_MAUVILLE_ENTRANCE),
+ .mapNum = MAP_NUM(NEW_MAUVILLE_ENTRANCE),
+ .landMonsInfo = &NewMauville_Entrance_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(NEW_MAUVILLE_INSIDE),
+ .mapNum = MAP_NUM(NEW_MAUVILLE_INSIDE),
+ .landMonsInfo = &NewMauville_Inside_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(ABANDONED_SHIP_ROOMS_B1F),
+ .mapNum = MAP_NUM(ABANDONED_SHIP_ROOMS_B1F),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &AbandonedShip_Rooms_B1F_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &AbandonedShip_Rooms_B1F_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS),
+ .mapNum = MAP_NUM(ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &AbandonedShip_HiddenFloorCorridors_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &AbandonedShip_HiddenFloorCorridors_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(SKY_PILLAR_1F),
+ .mapNum = MAP_NUM(SKY_PILLAR_1F),
+ .landMonsInfo = &SkyPillar_1F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(SKY_PILLAR_3F),
+ .mapNum = MAP_NUM(SKY_PILLAR_3F),
+ .landMonsInfo = &SkyPillar_3F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(SKY_PILLAR_5F),
+ .mapNum = MAP_NUM(SKY_PILLAR_5F),
+ .landMonsInfo = &SkyPillar_5F_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE101),
+ .mapNum = MAP_NUM(ROUTE101),
+ .landMonsInfo = &Route101_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE102),
+ .mapNum = MAP_NUM(ROUTE102),
+ .landMonsInfo = &Route102_LandMonsInfo,
+ .waterMonsInfo = &Route102_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route102_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE103),
+ .mapNum = MAP_NUM(ROUTE103),
+ .landMonsInfo = &Route103_LandMonsInfo,
+ .waterMonsInfo = &Route103_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route103_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE104),
+ .mapNum = MAP_NUM(ROUTE104),
+ .landMonsInfo = &Route104_LandMonsInfo,
+ .waterMonsInfo = &Route104_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route104_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE105),
+ .mapNum = MAP_NUM(ROUTE105),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Route105_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route105_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE106),
+ .mapNum = MAP_NUM(ROUTE106),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Route106_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route106_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE107),
+ .mapNum = MAP_NUM(ROUTE107),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Route107_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route107_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE108),
+ .mapNum = MAP_NUM(ROUTE108),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Route108_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route108_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE109),
+ .mapNum = MAP_NUM(ROUTE109),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Route109_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route109_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE110),
+ .mapNum = MAP_NUM(ROUTE110),
+ .landMonsInfo = &Route110_LandMonsInfo,
+ .waterMonsInfo = &Route110_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route110_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE111),
+ .mapNum = MAP_NUM(ROUTE111),
+ .landMonsInfo = &Route111_LandMonsInfo,
+ .waterMonsInfo = &Route111_WaterMonsInfo,
+ .rockSmashMonsInfo = &Route111_RockSmashMonsInfo,
+ .fishingMonsInfo = &Route111_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE112),
+ .mapNum = MAP_NUM(ROUTE112),
+ .landMonsInfo = &Route112_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE113),
+ .mapNum = MAP_NUM(ROUTE113),
+ .landMonsInfo = &Route113_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE114),
+ .mapNum = MAP_NUM(ROUTE114),
+ .landMonsInfo = &Route114_LandMonsInfo,
+ .waterMonsInfo = &Route114_WaterMonsInfo,
+ .rockSmashMonsInfo = &Route114_RockSmashMonsInfo,
+ .fishingMonsInfo = &Route114_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE115),
+ .mapNum = MAP_NUM(ROUTE115),
+ .landMonsInfo = &Route115_LandMonsInfo,
+ .waterMonsInfo = &Route115_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route115_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE116),
+ .mapNum = MAP_NUM(ROUTE116),
+ .landMonsInfo = &Route116_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE117),
+ .mapNum = MAP_NUM(ROUTE117),
+ .landMonsInfo = &Route117_LandMonsInfo,
+ .waterMonsInfo = &Route117_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route117_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE118),
+ .mapNum = MAP_NUM(ROUTE118),
+ .landMonsInfo = &Route118_LandMonsInfo,
+ .waterMonsInfo = &Route118_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route118_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE119),
+ .mapNum = MAP_NUM(ROUTE119),
+ .landMonsInfo = &Route119_LandMonsInfo,
+ .waterMonsInfo = &Route119_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route119_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE120),
+ .mapNum = MAP_NUM(ROUTE120),
+ .landMonsInfo = &Route120_LandMonsInfo,
+ .waterMonsInfo = &Route120_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route120_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE121),
+ .mapNum = MAP_NUM(ROUTE121),
+ .landMonsInfo = &Route121_LandMonsInfo,
+ .waterMonsInfo = &Route121_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route121_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE122),
+ .mapNum = MAP_NUM(ROUTE122),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Route122_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route122_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE123),
+ .mapNum = MAP_NUM(ROUTE123),
+ .landMonsInfo = &Route123_LandMonsInfo,
+ .waterMonsInfo = &Route123_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route123_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE124),
+ .mapNum = MAP_NUM(ROUTE124),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Route124_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route124_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE125),
+ .mapNum = MAP_NUM(ROUTE125),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Route125_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route125_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE126),
+ .mapNum = MAP_NUM(ROUTE126),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Route126_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route126_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE127),
+ .mapNum = MAP_NUM(ROUTE127),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Route127_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route127_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE128),
+ .mapNum = MAP_NUM(ROUTE128),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Route128_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route128_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE129),
+ .mapNum = MAP_NUM(ROUTE129),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Route129_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route129_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE130),
+ .mapNum = MAP_NUM(ROUTE130),
+ .landMonsInfo = &Route130_LandMonsInfo,
+ .waterMonsInfo = &Route130_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route130_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE131),
+ .mapNum = MAP_NUM(ROUTE131),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Route131_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route131_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE132),
+ .mapNum = MAP_NUM(ROUTE132),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Route132_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route132_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE133),
+ .mapNum = MAP_NUM(ROUTE133),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Route133_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route133_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(ROUTE134),
+ .mapNum = MAP_NUM(ROUTE134),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Route134_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &Route134_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(SAFARI_ZONE_NORTHWEST),
+ .mapNum = MAP_NUM(SAFARI_ZONE_NORTHWEST),
+ .landMonsInfo = &SafariZone_Northwest_LandMonsInfo,
+ .waterMonsInfo = &SafariZone_Northwest_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &SafariZone_Northwest_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(SAFARI_ZONE_NORTHEAST),
+ .mapNum = MAP_NUM(SAFARI_ZONE_NORTHEAST),
+ .landMonsInfo = &SafariZone_Northeast_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = &SafariZone_Northeast_RockSmashMonsInfo,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(SAFARI_ZONE_SOUTHWEST),
+ .mapNum = MAP_NUM(SAFARI_ZONE_SOUTHWEST),
+ .landMonsInfo = &SafariZone_Southwest_LandMonsInfo,
+ .waterMonsInfo = &SafariZone_Southwest_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &SafariZone_Southwest_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(SAFARI_ZONE_SOUTHEAST),
+ .mapNum = MAP_NUM(SAFARI_ZONE_SOUTHEAST),
+ .landMonsInfo = &SafariZone_Southeast_LandMonsInfo,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(DEWFORD_TOWN),
+ .mapNum = MAP_NUM(DEWFORD_TOWN),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &DewfordTown_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &DewfordTown_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(PACIFIDLOG_TOWN),
+ .mapNum = MAP_NUM(PACIFIDLOG_TOWN),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &PacifidlogTown_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = &PacifidlogTown_FishingMonsInfo,
+ },
+ {
+ .mapGroup = MAP_GROUP(UNDERWATER1),
+ .mapNum = MAP_NUM(UNDERWATER1),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Underwater1_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(UNDERWATER2),
+ .mapNum = MAP_NUM(UNDERWATER2),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = &Underwater2_WaterMonsInfo,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+ {
+ .mapGroup = MAP_GROUP(UNDEFINED),
+ .mapNum = MAP_NUM(UNDEFINED),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+};
+
+const struct WildPokemon gWildFeebasRoute119Data = {20, 25, SPECIES_FEEBAS};
+
+const u16 gRoute119WaterTileData[] =
+{
+ 0, 0x2D, 0,
+ 0x2E, 0x5B, 0x83,
+ 0x5C, 0x8B, 0x12A,
+};
-extern u16 gRoute119WaterTileData[];
-extern u16 gScriptResult;
-extern struct WildPokemon gWildFeebasRoute119Data;
+extern u16 gSpecialVar_Result;
extern u8 S_RepelWoreOff[];
EWRAM_DATA static u8 sWildEncountersDisabled = 0;
@@ -2953,8 +3747,8 @@ static bool8 CheckFeebas(void)
u8 route119section = 0;
u16 waterTileNum;
- if (gSaveBlock1.location.mapGroup == MAP_GROUP_ROUTE119
- && gSaveBlock1.location.mapNum == MAP_ID_ROUTE119)
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP(ROUTE119)
+ && gSaveBlock1.location.mapNum == MAP_NUM(ROUTE119))
{
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
x -= 7;
@@ -2967,7 +3761,7 @@ static bool8 CheckFeebas(void)
route119section = 2;
#else
{
- register u16 *arr asm("r0");
+ register const u16 *arr asm("r0");
if (y >= (arr = gRoute119WaterTileData)[3 * 1 + 0] && y <= arr[3 * 1 + 1])
route119section = 1;
if (y >= arr[3 * 2 + 0] && y <= arr[3 * 2 + 1])
@@ -3177,7 +3971,7 @@ static void CreateWildMon(u16 species, u8 b)
CreateMonWithNature(&gEnemyParty[0], species, b, 0x20, PickWildMonNature());
}
-static bool8 GenerateWildMon(struct WildPokemonInfo *wildMonInfo, u8 area, bool8 checkRepel)
+static bool8 GenerateWildMon(const struct WildPokemonInfo *wildMonInfo, u8 area, bool8 checkRepel)
{
u8 wildMonIndex = 0;
u8 level;
@@ -3204,7 +3998,7 @@ static bool8 GenerateWildMon(struct WildPokemonInfo *wildMonInfo, u8 area, bool8
}
}
-static u16 GenerateFishingWildMon(struct WildPokemonInfo *wildMonInfo, u8 rod)
+static u16 GenerateFishingWildMon(const struct WildPokemonInfo *wildMonInfo, u8 rod)
{
u8 wildMonIndex = ChooseWildMonIndex_Fishing(rod);
u8 level = ChooseWildMonLevel(&wildMonInfo->wildPokemon[wildMonIndex]);
@@ -3369,22 +4163,22 @@ void ScrSpecial_RockSmashWildEncounter(void)
if (headerNum != 0xFFFF)
{
- struct WildPokemonInfo *wildPokemonInfo = gWildMonHeaders[headerNum].rockSmashMonsInfo;
+ const struct WildPokemonInfo *wildPokemonInfo = gWildMonHeaders[headerNum].rockSmashMonsInfo;
if (wildPokemonInfo == NULL)
{
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
return;
}
else if (DoWildEncounterTest(wildPokemonInfo->encounterRate, 1) == TRUE
&& GenerateWildMon(wildPokemonInfo, 2, TRUE) == TRUE)
{
BattleSetup_StartWildBattle();
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
return;
}
}
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
return;
}
@@ -3393,7 +4187,7 @@ bool8 SweetScentWildEncounter(void)
s16 x;
s16 y;
u16 headerNum;
- struct WildPokemonInfo *wildPokemonInfo;
+ const struct WildPokemonInfo *wildPokemonInfo;
PlayerGetDestCoords(&x, &y);
if ((headerNum = GetCurrentMapWildMonHeader()) != 0xFFFF)
@@ -3468,8 +4262,8 @@ void FishingWildEncounter(u8 rod)
u16 GetLocalWildMon(bool8 *isWaterMon)
{
u16 headerNum;
- struct WildPokemonInfo *landMonsInfo;
- struct WildPokemonInfo *waterMonsInfo;
+ const struct WildPokemonInfo *landMonsInfo;
+ const struct WildPokemonInfo *waterMonsInfo;
*isWaterMon = FALSE;
headerNum = GetCurrentMapWildMonHeader();
@@ -3505,7 +4299,7 @@ u16 GetLocalWaterMon(void)
if (headerNum != 0xFFFF)
{
- struct WildPokemonInfo *waterMonsInfo = gWildMonHeaders[headerNum].waterMonsInfo;
+ const struct WildPokemonInfo *waterMonsInfo = gWildMonHeaders[headerNum].waterMonsInfo;
if (waterMonsInfo)
return waterMonsInfo->wildPokemon[ChooseWildMonIndex_Water()].species;
@@ -3559,9 +4353,9 @@ static bool8 IsWildLevelAllowedByRepel(u8 wildLevel)
static void ApplyFluteEncounterRateMod(u32 *encRate)
{
- if (FlagGet(SYS_ENC_UP_ITEM) == TRUE)
+ if (FlagGet(FLAG_SYS_ENC_UP_ITEM) == TRUE)
*encRate += *encRate / 2;
- else if (FlagGet(SYS_ENC_DOWN_ITEM) == TRUE)
+ else if (FlagGet(FLAG_SYS_ENC_DOWN_ITEM) == TRUE)
*encRate = *encRate / 2;
}
diff --git a/src/libs/agb_flash.c b/src/libs/agb_flash.c
index 340d469a7..5b171abcb 100644
--- a/src/libs/agb_flash.c
+++ b/src/libs/agb_flash.c
@@ -9,7 +9,7 @@ static u16 sSavedIme;
u8 gFlashTimeoutFlag;
u8 (*PollFlashStatus)(u8 *);
u16 (*WaitForFlashWrite)(u8 phase, u8 *addr, u8 lastData);
-u16 (*ProgramFlashSector)(u16 sectorNum, u8 *src);
+u16 (*ProgramFlashSector)(u16 sectorNum, void *src);
const struct FlashType *gFlash;
u16 (*ProgramFlashByte)(u16 sectorNum, u32 offset, u8 data);
u16 gFlashNumRemainingBytes;
@@ -135,7 +135,7 @@ void ReadFlash_Core(u8 *src, u8 *dest, u32 size)
}
}
-void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size)
+void ReadFlash(u16 sectorNum, u32 offset, void *dest, u32 size)
{
u8 *src;
u16 i;
@@ -256,7 +256,7 @@ u32 VerifyFlashSectorNBytes(u16 sectorNum, u8 *src, u32 n)
return verifyFlashSector_Core(src, tgt, n);
}
-u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src) // 3rd is unused
+u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src)
{
u8 i;
u32 result;
@@ -275,18 +275,18 @@ u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src) // 3rd is unused
return result; // return 0 if verified and programmed.
}
-u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, u8 *src, u32 n)
+u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, void *dataSrc, u32 n)
{
u8 i;
u32 result;
for (i = 0; i < 3; i++)
{
- result = ProgramFlashSector(sectorNum, src);
+ result = ProgramFlashSector(sectorNum, dataSrc);
if (result != 0)
continue;
- result = VerifyFlashSectorNBytes(sectorNum, src, n);
+ result = VerifyFlashSectorNBytes(sectorNum, dataSrc, n);
if (result == 0)
break;
}
diff --git a/src/libs/agb_flash_mx.c b/src/libs/agb_flash_mx.c
index 67348901f..b4f710f36 100644
--- a/src/libs/agb_flash_mx.c
+++ b/src/libs/agb_flash_mx.c
@@ -157,7 +157,7 @@ static u16 ProgramByte(u8 *src, u8 *dest)
return WaitForFlashWrite(1, dest, *src);
}
-u16 ProgramFlashSector_MX(u16 sectorNum, u8 *src)
+u16 ProgramFlashSector_MX(u16 sectorNum, void *src)
{
u16 result;
u8 *dest;
diff --git a/src/pokemon/learn_move.c b/src/pokemon/learn_move.c
index 33252c66b..8aa10254c 100644
--- a/src/pokemon/learn_move.c
+++ b/src/pokemon/learn_move.c
@@ -4,11 +4,13 @@
#include "main.h"
#include "menu.h"
#include "menu_cursor.h"
+#include "learn_move.h"
#include "palette.h"
#include "pokemon.h"
+#include "pokemon_summary_screen.h"
#include "overworld.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
@@ -16,32 +18,17 @@
#include "strings2.h"
#include "task.h"
#include "trig.h"
+#include "ewram.h"
-extern u8 ewram[];
extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
extern u8 gTileBuffer[];
-struct ContestMove
-{
- u8 effect;
- u8 contestCategory:3;
- u8 comboStarterId;
- u8 comboMoves[4];
-};
-
-struct ContestEffect
-{
- u8 effectType;
- u8 appeal;
- u8 jam;
-};
-
extern const struct ContestMove gContestMoves[];
extern const struct ContestEffect gContestEffects[];
extern const struct WindowConfig gWindowConfig_81E6CE4;
extern const struct WindowConfig gWindowConfig_81E7240;
-extern const u8 *const gUnknown_083CADD4[];
+extern const u8 *const gContestEffectStrings[];
extern const u8 *const gMoveDescriptions[];
extern const u8 gTypeNames[][7];
extern const u8 *const gUnknown_083CAF70[];
@@ -50,7 +37,6 @@ extern const u8 *const gUnknown_083CAF70[];
extern const u8 deuOtherText_ForgotAndLearned[];
#endif
-extern void sub_809D9F0(struct Pokemon *, u8, u8, void *, u32);
struct LearnMoveStruct
{
@@ -277,7 +263,7 @@ void CB2_InitLearnMove(void)
ResetSpriteData();
FreeAllSpritePalettes();
ResetTasks();
- sLearnMoveStruct = (struct LearnMoveStruct *)(ewram + 0x17000);
+ sLearnMoveStruct = eLearnMoveStruct;
ClearLearnMoveVars();
sLearnMoveStruct->partyMon = gSpecialVar_0x8004;
sub_8133558();
@@ -312,7 +298,7 @@ void sub_81327A4(void)
ResetSpriteData();
FreeAllSpritePalettes();
ResetTasks();
- sLearnMoveStruct = (struct LearnMoveStruct *)(ewram + 0x17000);
+ sLearnMoveStruct = eLearnMoveStruct;
sub_8133558();
sLearnMoveStruct->unk2C6 = gSpecialVar_0x8005;
SetVBlankCallback(VBlankCB_LearnMove);
@@ -557,7 +543,7 @@ void LearnMoveMain(void)
case 20:
if (!gPaletteFade.active)
{
- sub_809D9F0(gPlayerParty, sLearnMoveStruct->partyMon, gPlayerPartyCount - 1, sub_81327A4, sLearnMoveStruct->movesToLearn[sLearnMoveStruct->menuSelection]);
+ ShowSelectMovePokemonSummaryScreen(gPlayerParty, sLearnMoveStruct->partyMon, gPlayerPartyCount - 1, sub_81327A4, sLearnMoveStruct->movesToLearn[sLearnMoveStruct->menuSelection]);
sLearnMoveStruct->state = 28;
}
break;
@@ -765,20 +751,20 @@ void ClearLearnMoveVars(void)
void sub_8133300(struct Sprite *sprite)
{
- s16 var = (sprite->data1 * 10) & 0xFF;
+ s16 var = (sprite->data[1] * 10) & 0xFF;
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
break;
case 1:
- sprite->pos2.x = Sin(var, 3) * sprite->data2;
+ sprite->pos2.x = Sin(var, 3) * sprite->data[2];
break;
case 2:
- sprite->pos2.y = Sin(var, 1) * sprite->data2;
+ sprite->pos2.y = Sin(var, 1) * sprite->data[2];
break;
}
- sprite->data1++;
+ sprite->data[1]++;
}
void sub_8133358(void)
@@ -786,22 +772,22 @@ void sub_8133358(void)
s32 i;
sLearnMoveStruct->spriteIDs[0] = CreateSprite(&gSpriteTemplate_8402D90, 8, 16, 0);
- gSprites[sLearnMoveStruct->spriteIDs[0]].data0 = 1;
- gSprites[sLearnMoveStruct->spriteIDs[0]].data2 = -1;
+ gSprites[sLearnMoveStruct->spriteIDs[0]].data[0] = 1;
+ gSprites[sLearnMoveStruct->spriteIDs[0]].data[2] = -1;
sLearnMoveStruct->spriteIDs[1] = CreateSprite(&gSpriteTemplate_8402D90, 72, 16, 0);
StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIDs[1]], 1);
- gSprites[sLearnMoveStruct->spriteIDs[1]].data0 = 1;
- gSprites[sLearnMoveStruct->spriteIDs[1]].data2 = 1;
+ gSprites[sLearnMoveStruct->spriteIDs[1]].data[0] = 1;
+ gSprites[sLearnMoveStruct->spriteIDs[1]].data[2] = 1;
sLearnMoveStruct->spriteIDs[2] = CreateSprite(&gSpriteTemplate_8402DC0, 160, 4, 0);
StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIDs[2]], 1);
- gSprites[sLearnMoveStruct->spriteIDs[2]].data0 = 2;
- gSprites[sLearnMoveStruct->spriteIDs[2]].data2 = -1;
+ gSprites[sLearnMoveStruct->spriteIDs[2]].data[0] = 2;
+ gSprites[sLearnMoveStruct->spriteIDs[2]].data[2] = -1;
sLearnMoveStruct->spriteIDs[3] = CreateSprite(&gSpriteTemplate_8402DC0, 160, 60, 0);
- gSprites[sLearnMoveStruct->spriteIDs[3]].data0 = 2;
- gSprites[sLearnMoveStruct->spriteIDs[3]].data2 = 1;
+ gSprites[sLearnMoveStruct->spriteIDs[3]].data[0] = 2;
+ gSprites[sLearnMoveStruct->spriteIDs[3]].data[2] = 1;
for (i = 0; i < 8; i++)
{
@@ -1039,7 +1025,7 @@ void sub_8133AEC(bool8 contestInfo, int unused)
gSprites[sLearnMoveStruct->spriteIDs[i + 4]].invisible = FALSE;
for (i = 0; i < 3; i++)
PrintMoveInfo(moveId, gUnknown_08402E24[gUnknown_08402E3D[i]]);
- sub_8072AB0(gUnknown_083CADD4[gContestMoves[moveId].effect], 0x58, 0x48, 0x90, 32, 1);
+ sub_8072AB0(gContestEffectStrings[gContestMoves[moveId].effect], 0x58, 0x48, 0x90, 32, 1);
}
else
{
diff --git a/src/pokemon/mail.c b/src/pokemon/mail.c
index c5dd119e3..2ab05ca2b 100644
--- a/src/pokemon/mail.c
+++ b/src/pokemon/mail.c
@@ -1,7 +1,8 @@
#include "global.h"
#include "mail.h"
#include "easy_chat.h"
-#include "items.h"
+#include "constants/items.h"
+#include "graphics.h"
#include "mail_data.h"
#include "menu.h"
#include "menu_helpers.h"
@@ -15,6 +16,7 @@
#include "task.h"
#include "text.h"
#include "unknown_task.h"
+#include "ewram.h"
struct UnkMailStruct
{
@@ -30,7 +32,7 @@ struct MailLayout
u8 var2;
u8 var3_0:4;
u8 var3_4:4;
- struct UnkMailStruct *var4;
+ const struct UnkMailStruct *var4;
};
struct Unk2000000
@@ -52,28 +54,188 @@ struct Unk2000000
u8 pad101[3];
/*0x104*/ MainCallback var104;
/*0x108*/ MainCallback var108;
- /*0x10C*/ struct MailLayout *var10C;
+ /*0x10C*/ const struct MailLayout *var10C;
};
struct MailGraphics
{
- u16 (*palette)[];
- u8 (*tiles)[];
- u8 (*tileMap)[];
+ const u16 *palette;
+ const u8 *tiles;
+ const u8 *tileMap;
u16 var0C;
u16 var0E;
u16 color10;
u16 color12;
};
-extern u8 ewram[];
-#define ewram0 (*(struct Unk2000000 *)(ewram))
+const u16 gUnknown_083E562C[][2] =
+{
+ {0x6ACD, 0x51A5},
+ {0x45FC, 0x38D4},
+};
+
+const struct MailGraphics gMailGraphicsTable[] =
+{
+ {
+ .palette = gMailPalette_Orange,
+ .tiles = gMailTiles_Orange,
+ .tileMap = gMailTilemap_Orange,
+ .var0C = 0x2C0,
+ .var0E = 0,
+ .color10 = 0x294A,
+ .color12 = 0x6739,
+ },
+ {
+ .palette = gMailPalette_Harbor,
+ .tiles = gMailTiles_Harbor,
+ .tileMap = gMailTilemap_Harbor,
+ .var0C = 0x2E0,
+ .var0E = 0,
+ .color10 = 0x7FFF,
+ .color12 = 0x4631,
+ },
+ {
+ .palette = gMailPalette_Glitter,
+ .tiles = gMailTiles_Glitter,
+ .tileMap = gMailTilemap_Glitter,
+ .var0C = 0x400,
+ .var0E = 0,
+ .color10 = 0x294A,
+ .color12 = 0x6739,
+ },
+ {
+ .palette = gMailPalette_Mech,
+ .tiles = gMailTiles_Mech,
+ .tileMap = gMailTilemap_Mech,
+ .var0C = 0x1E0,
+ .var0E = 0,
+ .color10 = 0x7FFF,
+ .color12 = 0x4631,
+ },
+ {
+ .palette = gMailPalette_Wood,
+ .tiles = gMailTiles_Wood,
+ .tileMap = gMailTilemap_Wood,
+ .var0C = 0x2E0,
+ .var0E = 0,
+ .color10 = 0x7FFF,
+ .color12 = 0x4631,
+ },
+ {
+ .palette = gMailPalette_Wave,
+ .tiles = gMailTiles_Wave,
+ .tileMap = gMailTilemap_Wave,
+ .var0C = 0x300,
+ .var0E = 0,
+ .color10 = 0x294A,
+ .color12 = 0x6739,
+ },
+ {
+ .palette = gMailPalette_Bead,
+ .tiles = gMailTiles_Bead,
+ .tileMap = gMailTilemap_Bead,
+ .var0C = 0x140,
+ .var0E = 0,
+ .color10 = 0x7FFF,
+ .color12 = 0x4631,
+ },
+ {
+ .palette = gMailPalette_Shadow,
+ .tiles = gMailTiles_Shadow,
+ .tileMap = gMailTilemap_Shadow,
+ .var0C = 0x300,
+ .var0E = 0,
+ .color10 = 0x7FFF,
+ .color12 = 0x4631,
+ },
+ {
+ .palette = gMailPalette_Tropic,
+ .tiles = gMailTiles_Tropic,
+ .tileMap = gMailTilemap_Tropic,
+ .var0C = 0x220,
+ .var0E = 0,
+ .color10 = 0x294A,
+ .color12 = 0x6739,
+ },
+ {
+ .palette = gMailPalette_Dream,
+ .tiles = gMailTiles_Dream,
+ .tileMap = gMailTilemap_Dream,
+ .var0C = 0x340,
+ .var0E = 0,
+ .color10 = 0x294A,
+ .color12 = 0x6739,
+ },
+ {
+ .palette = gMailPalette_Fab,
+ .tiles = gMailTiles_Fab,
+ .tileMap = gMailTilemap_Fab,
+ .var0C = 0x2A0,
+ .var0E = 0,
+ .color10 = 0x294A,
+ .color12 = 0x6739,
+ },
+ {
+ .palette = gMailPalette_Retro,
+ .tiles = gMailTiles_Retro,
+ .tileMap = gMailTilemap_Retro,
+ .var0C = 0x520,
+ .var0E = 0,
+ .color10 = 0x294A,
+ .color12 = 0x6739,
+ },
+};
+
+const struct UnkMailStruct Unknown_3E5724[] =
+{
+ {0, 3, 0},
+ {0, 3, 0},
+ {0, 3, 0},
+};
+
+const struct MailLayout gUnknown_083E5730[] =
+{
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 16, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+};
-extern struct MailGraphics gMailGraphicsTable[];
-extern u16 gUnknown_083E562C[][2];
+const struct UnkMailStruct Unknown_3E5790[] =
+{
+ {0, 2, 0},
+ {0, 2, 0},
+ {0, 2, 0},
+ {0, 2, 0},
+ {0, 1, 0},
+};
+
+const struct MailLayout gUnknown_083E57A4[] =
+{
+ {5, 15, 15, 4, 3, Unknown_3E5790},
+ {5, 15, 15, 4, 3, Unknown_3E5790},
+ {5, 15, 16, 4, 3, Unknown_3E5790},
+ {5, 15, 15, 4, 3, Unknown_3E5790},
+ {5, 15, 15, 4, 3, Unknown_3E5790},
+ {5, 15, 16, 4, 3, Unknown_3E5790},
+ {5, 15, 16, 4, 3, Unknown_3E5790},
+ {5, 15, 15, 4, 3, Unknown_3E5790},
+ {5, 15, 15, 4, 3, Unknown_3E5790},
+ {5, 15, 15, 4, 3, Unknown_3E5790},
+ {5, 16, 15, 4, 3, Unknown_3E5790},
+ {5, 15, 15, 4, 3, Unknown_3E5790},
+};
-extern struct MailLayout gUnknown_083E5730[];
-extern struct MailLayout gUnknown_083E57A4[];
+// XXX: what is this?
+static u8 *const sSharedMemPtr = gSharedMem;
static u8 sub_80F8A28(void);
static void sub_80F8D50(void);
@@ -90,61 +252,61 @@ void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2)
u16 mailDesign;
u16 buffer[2];
- ewram0.varFF = GAME_LANGUAGE;
- ewram0.var100 = 1;
- ewram0.var104 = (MainCallback)EasyChat_GetWordText;
- ewram0.var108 = (MainCallback)ConvertEasyChatWordsToString;
+ 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)
{
- ewram0.varFA = arg0->itemId - ITEM_ORANGE_MAIL;
+ ewram0_4.varFA = arg0->itemId - ITEM_ORANGE_MAIL;
}
else
{
- ewram0.varFA = 0;
+ ewram0_4.varFA = 0;
arg2 = FALSE;
}
- switch (ewram0.var100)
+ switch (ewram0_4.var100)
{
case 0:
default:
- ewram0.var10C = &gUnknown_083E5730[ewram0.varFA];
+ ewram0_4.var10C = &gUnknown_083E5730[ewram0_4.varFA];
break;
case 1:
- ewram0.var10C = &gUnknown_083E57A4[ewram0.varFA];
+ ewram0_4.var10C = &gUnknown_083E57A4[ewram0_4.varFA];
break;
}
if (((MailSpeciesToSpecies(arg0->species, buffer) << 16) + 0xFFFF0000) <= (410 << 16))
{
- switch (ewram0.varFA)
+ switch (ewram0_4.varFA)
{
case 6:
- ewram0.varFB = 1;
+ ewram0_4.varFB = 1;
break;
case 9:
- ewram0.varFB = 2;
+ ewram0_4.varFB = 2;
break;
default:
- ewram0.varFB = 0;
+ ewram0_4.varFB = 0;
break;
}
}
else
{
- ewram0.varFB = 0;
+ ewram0_4.varFB = 0;
}
- ewram0.varF4 = arg0;
- ewram0.varEC = arg1;
- ewram0.varF8 = arg2;
+ ewram0_4.varF4 = arg0;
+ ewram0_4.varEC = arg1;
+ ewram0_4.varF8 = arg2;
SetMainCallback2(sub_80F8D50);
}
@@ -214,31 +376,31 @@ static u8 sub_80F8A28(void)
RETURN_UP_STATE;
case 11:
- LoadPalette(gMailGraphicsTable[ewram0.varFA].palette, 0, 16 * 2);
+ LoadPalette(gMailGraphicsTable[ewram0_4.varFA].palette, 0, 16 * 2);
RETURN_UP_STATE;
case 12:
- LZ77UnCompVram(gMailGraphicsTable[ewram0.varFA].tileMap, (void *)(VRAM + 0x4000));
+ LZ77UnCompVram(gMailGraphicsTable[ewram0_4.varFA].tileMap, (void *)(VRAM + 0x4000));
RETURN_UP_STATE;
case 13:
- LZ77UnCompVram(gMailGraphicsTable[ewram0.varFA].tiles, (void *)(VRAM));
+ LZ77UnCompVram(gMailGraphicsTable[ewram0_4.varFA].tiles, (void *)(VRAM));
- gPlttBufferUnfaded[241] = gMailGraphicsTable[ewram0.varFA].color10;
- gPlttBufferUnfaded[248] = gMailGraphicsTable[ewram0.varFA].color12;
+ gPlttBufferUnfaded[241] = gMailGraphicsTable[ewram0_4.varFA].color10;
+ gPlttBufferUnfaded[248] = gMailGraphicsTable[ewram0_4.varFA].color12;
gPlttBufferUnfaded[10] = gUnknown_083E562C[gSaveBlock2.playerGender][0];
gPlttBufferUnfaded[11] = gUnknown_083E562C[gSaveBlock2.playerGender][1];
RETURN_UP_STATE;
case 14:
- if (ewram0.varF8 != 0)
+ if (ewram0_4.varF8 != 0)
{
sub_80F8DA0();
}
RETURN_UP_STATE;
case 15:
- if (ewram0.varF8 != 0)
+ if (ewram0_4.varF8 != 0)
{
sub_80F8E80();
}
@@ -251,18 +413,18 @@ static u8 sub_80F8A28(void)
{
u16 local1;
- local1 = sub_809D4A8(ewram0.varF4->species);
+ local1 = sub_809D4A8(ewram0_4.varF4->species);
- switch (ewram0.varFB)
+ switch (ewram0_4.varFB)
{
case 1:
sub_809D580(local1);
- ewram0.varFC = sub_809D3A4(local1, SpriteCallbackDummy, 96, 128, 0);
+ ewram0_4.varFC = sub_809D3A4(local1, SpriteCallbackDummy, 96, 128, 0);
break;
case 2:
sub_809D580(local1);
- ewram0.varFC = sub_809D3A4(local1, SpriteCallbackDummy, 40, 128, 0);
+ ewram0_4.varFC = sub_809D3A4(local1, SpriteCallbackDummy, 40, 128, 0);
break;
}
RETURN_UP_STATE;
@@ -283,7 +445,7 @@ static u8 sub_80F8A28(void)
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON;
BeginNormalPaletteFade(-1, 0, 16, 0, 0);
gPaletteFade.bufferTransferDisabled = 0;
- ewram0.varF0 = sub_80F8F58;
+ ewram0_4.varF0 = sub_80F8F58;
return TRUE;
default:
@@ -325,24 +487,24 @@ static void sub_80F8DA0(void)
u8 *ptr;
r6 = 0;
- for (i = 0; i < ewram0.var10C->var0; i++)
+ for (i = 0; i < ewram0_4.var10C->var0; i++)
{
- ConvertEasyChatWordsToString(ewram0.words[i], &ewram0.varF4->words[r6], ewram0.var10C->var4[i].unk_0_2, 1);
- r6 += ewram0.var10C->var4[i].unk_0_2;
+ ConvertEasyChatWordsToString(ewram0_4.words[i], &ewram0_4.varF4->words[r6], ewram0_4.var10C->var4[i].unk_0_2, 1);
+ r6 += ewram0_4.var10C->var4[i].unk_0_2;
}
- ptr = ewram0.varD8;
- if (ewram0.var100 == 0)
+ ptr = ewram0_4.varD8;
+ if (ewram0_4.var100 == 0)
{
- ptr = sub_80F8D7C(ptr, ewram0.varF4->playerName);
+ ptr = sub_80F8D7C(ptr, ewram0_4.varF4->playerName);
StringCopy(ptr, gOtherText_From);
- ewram0.varF9 = ewram0.var10C->var2 - StringLength(ewram0.varD8);
+ ewram0_4.varF9 = ewram0_4.var10C->var2 - StringLength(ewram0_4.varD8);
}
else
{
ptr = StringCopy(ptr, gOtherText_From);
- sub_80F8D7C(ptr, ewram0.varF4->playerName);
- ewram0.varF9 = ewram0.var10C->var2;
+ sub_80F8D7C(ptr, ewram0_4.varF4->playerName);
+ ewram0_4.varF9 = ewram0_4.var10C->var2;
}
}
@@ -352,25 +514,25 @@ static void sub_80F8E80(void)
u8 x;
u8 y = 0;
- for (pos = 0; pos < ewram0.var10C->var0; pos++)
+ for (pos = 0; pos < ewram0_4.var10C->var0; pos++)
{
- if (ewram0.words[pos][0] == 0xFF)
+ if (ewram0_4.words[pos][0] == 0xFF)
{
continue;
}
- if (ewram0.words[pos][0] == 0x00)
+ if (ewram0_4.words[pos][0] == 0x00)
{
continue;
}
- x = ewram0.var10C->var4[pos].unk_0_4;
- y += ewram0.var10C->var4[pos].unk_0_0;
- MenuPrint(ewram0.words[pos], ewram0.var10C->var3_4 + x, ewram0.var10C->var3_0 + y);
+ 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);
y += 2;
}
- MenuPrint(ewram0.varD8, ewram0.varF9, ewram0.var10C->var1);
+ MenuPrint(ewram0_4.varD8, ewram0_4.varF9, ewram0_4.var10C->var1);
}
static void sub_80F8F18(void)
@@ -382,13 +544,13 @@ static void sub_80F8F18(void)
static void sub_80F8F2C(void)
{
- if (ewram0.varFB != 0)
+ if (ewram0_4.varFB != 0)
{
AnimateSprites();
BuildOamBuffer();
}
- ewram0.varF0();
+ ewram0_4.varF0();
}
static void sub_80F8F58(void)
@@ -398,7 +560,7 @@ static void sub_80F8F58(void)
local0 = UpdatePaletteFade();
if (local0 == 0)
{
- ewram0.varF0 = sub_80F8F78;
+ ewram0_4.varF0 = sub_80F8F78;
}
}
@@ -407,7 +569,7 @@ static void sub_80F8F78(void)
if (gMain.newKeys & (A_BUTTON | B_BUTTON))
{
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
- ewram0.varF0 = sub_80F8FB4;
+ ewram0_4.varF0 = sub_80F8FB4;
}
}
@@ -420,18 +582,18 @@ static void sub_80F8FB4(void)
return;
}
- SetMainCallback2(ewram0.varEC);
- switch (ewram0.varFB)
+ SetMainCallback2(ewram0_4.varEC);
+ switch (ewram0_4.varFB)
{
case 2:
case 1:
- local1 = sub_809D4A8(ewram0.varF4->species);
+ local1 = sub_809D4A8(ewram0_4.varF4->species);
sub_809D608(local1);
- sub_809D510(&gSprites[ewram0.varFC]);
+ sub_809D510(&gSprites[ewram0_4.varFC]);
break;
}
- memset(&ewram0, 0, 0x110);
+ memset(&ewram0_4, 0, 0x110);
ResetPaletteFade();
}
diff --git a/src/pokemon/mail_data.c b/src/pokemon/mail_data.c
index ae3f4b3e8..4249b9f48 100644
--- a/src/pokemon/mail_data.c
+++ b/src/pokemon/mail_data.c
@@ -1,10 +1,10 @@
#include "global.h"
#include "mail_data.h"
-#include "items.h"
+#include "constants/items.h"
#include "name_string_util.h"
#include "pokemon.h"
#include "pokemon_icon.h"
-#include "species.h"
+#include "constants/species.h"
#include "text.h"
void ClearMailData(void)
diff --git a/src/pokemon/mon_markings.c b/src/pokemon/mon_markings.c
index 0cad8db59..b4144ea34 100644
--- a/src/pokemon/mon_markings.c
+++ b/src/pokemon/mon_markings.c
@@ -2,7 +2,7 @@
#include "main.h"
#include "menu_cursor.h"
#include "text_window.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
@@ -24,8 +24,8 @@ struct PokemonMarkMenu
/*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window
/*0x0014*/ struct Sprite *menuMarkingSprites[4];
/*0x0024*/ struct Sprite *menuTextSprite;
- /*0x0028*/ u8 *frameTiles;
- /*0x002C*/ u16 *framePalette;
+ /*0x0028*/ const u8 *frameTiles;
+ /*0x002C*/ const u16 *framePalette;
/*0x0030*/ u8 menuWindowSpriteTiles[0x1000];
/*0x1030*/ u8 filler1030[0x80];
/*0x10B0*/ u8 tileLoadState;
@@ -34,22 +34,275 @@ struct PokemonMarkMenu
extern u8 gPokenavConditionMenuMisc_Gfx[];
extern u16 gUnknown_08E966B8[];
-extern u16 gUnknown_083E49F4[];
-extern u8 gUnknown_083E4A14[];
-extern struct OamData gOamData_83E5214;
-extern struct OamData gOamData_83E521C;
-extern const union AnimCmd *const gSpriteAnimTable_83E5274[];
-extern const union AnimCmd *const gSpriteAnimTable_83E52AC[];
-extern struct OamData gOamData_83E52B4;
-extern const union AnimCmd *const gSpriteAnimTable_83E533C[];
+const u16 gUnknown_083E49F4[] = INCBIN_U16("graphics/misc/mon_markings.gbapal");
+const u8 gUnknown_083E4A14[] = INCBIN_U8("graphics/misc/mon_markings.4bpp");
+
+const struct OamData gOamData_83E5214 =
+{
+ .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 OamData gOamData_83E521C =
+{
+ .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 union AnimCmd gSpriteAnim_83E5224[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E522C[] =
+{
+ ANIMCMD_FRAME(1, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E5234[] =
+{
+ ANIMCMD_FRAME(2, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E523C[] =
+{
+ ANIMCMD_FRAME(3, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E5244[] =
+{
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E524C[] =
+{
+ ANIMCMD_FRAME(5, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E5254[] =
+{
+ ANIMCMD_FRAME(6, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E525C[] =
+{
+ ANIMCMD_FRAME(7, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E5264[] =
+{
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E526C[] =
+{
+ ANIMCMD_FRAME(9, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83E5274[] =
+{
+ gSpriteAnim_83E5224,
+ gSpriteAnim_83E522C,
+ gSpriteAnim_83E5234,
+ gSpriteAnim_83E523C,
+ gSpriteAnim_83E5244,
+ gSpriteAnim_83E524C,
+ gSpriteAnim_83E5254,
+ gSpriteAnim_83E525C,
+ gSpriteAnim_83E5264,
+ gSpriteAnim_83E526C,
+};
+
+const union AnimCmd gSpriteAnim_83E529C[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E52A4[] =
+{
+ ANIMCMD_FRAME(64, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83E52AC[] =
+{
+ gSpriteAnim_83E529C,
+ gSpriteAnim_83E52A4,
+};
+
+const struct OamData gOamData_83E52B4 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83E52BC[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E52C4[] =
+{
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E52CC[] =
+{
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E52D4[] =
+{
+ ANIMCMD_FRAME(12, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E52DC[] =
+{
+ ANIMCMD_FRAME(16, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E52E4[] =
+{
+ ANIMCMD_FRAME(20, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E52EC[] =
+{
+ ANIMCMD_FRAME(24, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E52F4[] =
+{
+ ANIMCMD_FRAME(28, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E52FC[] =
+{
+ ANIMCMD_FRAME(32, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E5304[] =
+{
+ ANIMCMD_FRAME(36, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E530C[] =
+{
+ ANIMCMD_FRAME(40, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E5314[] =
+{
+ ANIMCMD_FRAME(44, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E531C[] =
+{
+ ANIMCMD_FRAME(48, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E5324[] =
+{
+ ANIMCMD_FRAME(52, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E532C[] =
+{
+ ANIMCMD_FRAME(56, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E5334[] =
+{
+ ANIMCMD_FRAME(60, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83E533C[] =
+{
+ gSpriteAnim_83E52BC,
+ gSpriteAnim_83E52C4,
+ gSpriteAnim_83E52CC,
+ gSpriteAnim_83E52D4,
+ gSpriteAnim_83E52DC,
+ gSpriteAnim_83E52E4,
+ gSpriteAnim_83E52EC,
+ gSpriteAnim_83E52F4,
+ gSpriteAnim_83E52FC,
+ gSpriteAnim_83E5304,
+ gSpriteAnim_83E530C,
+ gSpriteAnim_83E5314,
+ gSpriteAnim_83E531C,
+ gSpriteAnim_83E5324,
+ gSpriteAnim_83E532C,
+ gSpriteAnim_83E5334,
+};
static EWRAM_DATA struct PokemonMarkMenu *sMenu = NULL;
-void sub_80F761C(s16, s16, u16, u16);
-void nullsub_65(struct Sprite *);
-void sub_80F78CC(struct Sprite *);
-void sub_80F7908(struct Sprite *);
-struct Sprite *sub_80F7960(u16, u16, u16 *, u16);
+static void sub_80F761C(s16, s16, u16, u16);
+static void nullsub_65(struct Sprite *);
+static void sub_80F78CC(struct Sprite *);
+static void sub_80F7908(struct Sprite *);
+static struct Sprite *sub_80F7960(u16, u16, const u16 *, u16);
void sub_80F727C(struct PokemonMarkMenu *ptr)
{
@@ -284,7 +537,7 @@ void sub_80F761C(s16 x, s16 y, u16 baseTileTag, u16 basePaletteTag)
if (spriteId != 64)
{
sMenu->menuMarkingSprites[i] = &gSprites[spriteId];
- gSprites[spriteId].data0 = i;
+ gSprites[spriteId].data[0] = i;
}
else
{
@@ -324,10 +577,10 @@ void nullsub_65(struct Sprite *sprite)
void sub_80F78CC(struct Sprite *sprite)
{
- if (sMenu->markingsArray[sprite->data0])
- StartSpriteAnim(sprite, 2 * sprite->data0 + 1);
+ if (sMenu->markingsArray[sprite->data[0]])
+ StartSpriteAnim(sprite, 2 * sprite->data[0] + 1);
else
- StartSpriteAnim(sprite, 2 * sprite->data0);
+ StartSpriteAnim(sprite, 2 * sprite->data[0]);
}
void sub_80F7908(struct Sprite *sprite)
@@ -335,21 +588,21 @@ void sub_80F7908(struct Sprite *sprite)
sprite->pos1.y = 16 * sMenu->cursorPos + sMenu->cursorBaseY;
}
-struct Sprite *sub_80F7920(u16 tileTag, u16 paletteTag, u16 *palette)
+struct Sprite *sub_80F7920(u16 tileTag, u16 paletteTag, const u16 *palette)
{
if (!palette)
palette = gUnknown_083E49F4;
return sub_80F7960(tileTag, paletteTag, palette, 16);
}
-struct Sprite *sub_80F7940(u16 tileTag, u16 paletteTag, u16 *palette)
+struct Sprite *sub_80F7940(u16 tileTag, u16 paletteTag, const u16 *palette)
{
if (!palette)
palette = gUnknown_083E49F4;
return sub_80F7960(tileTag, paletteTag, palette, 1);
}
-struct Sprite *sub_80F7960(u16 tileTag, u16 paletteTag, u16 *palette, u16 size)
+struct Sprite *sub_80F7960(u16 tileTag, u16 paletteTag, const u16 *palette, u16 size)
{
u8 spriteId;
struct SpriteTemplate sprTemplate;
@@ -378,6 +631,6 @@ struct Sprite *sub_80F7960(u16 tileTag, u16 paletteTag, u16 *palette, u16 size)
void sub_80F7A10(u8 markings, void *dest)
{
- void *src = gUnknown_083E4A14 + markings * 0x80;
+ const void *src = gUnknown_083E4A14 + markings * 0x80;
DmaCopy16(3, src, dest, 0x80);
}
diff --git a/src/pokemon/pokeblock_feed.c b/src/pokemon/pokeblock_feed.c
index 5d6b215cd..8e3adda12 100644
--- a/src/pokemon/pokeblock_feed.c
+++ b/src/pokemon/pokeblock_feed.c
@@ -19,8 +19,8 @@
#include "field_effect.h"
#include "sound.h"
#include "trig.h"
+#include "ewram.h"
-extern u8 ewram[];
extern struct MusicPlayerInfo gMPlay_BGM;
extern u8 gPokeblockMonID;
extern s16 gPokeblockGain;
@@ -540,7 +540,7 @@ static bool8 TransitionToPokeblockFeedScene(void)
case 6:
if (MultistepInitMenuWindowContinue())
{
- ewram[0x1FFFF] = 0;
+ ewram1FFFF = 0;
gMain.state++;
}
break;
@@ -551,11 +551,11 @@ static bool8 TransitionToPokeblockFeedScene(void)
}
break;
case 8:
- ewram[0x1FFFD] = sub_81480B4();
+ ewram1FFFD = sub_81480B4();
gMain.state++;
break;
case 9:
- ewram[0x1FFFE] = PokeblockFeed_CreatePokeSprite(&gPlayerParty[gPokeblockMonID]);
+ ewram1FFFE = PokeblockFeed_CreatePokeSprite(&gPlayerParty[gPokeblockMonID]);
gMain.state++;
break;
case 10:
@@ -611,13 +611,13 @@ static bool8 sub_8147B20(struct Pokemon* mon)
{
u16 species;
u32 PiD, TiD;
- switch (ewram[0x1FFFF])
+ switch (ewram1FFFF)
{
case 0:
species = GetMonData(mon, MON_DATA_SPECIES2);
PiD = GetMonData(mon, MON_DATA_PERSONALITY);
HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, 0x2000000, gUnknown_081FAF4C[1], species, PiD);
- ewram[0x1FFFF]++;
+ ewram1FFFF++;
break;
case 1:
{
@@ -629,37 +629,37 @@ static bool8 sub_8147B20(struct Pokemon* mon)
palette = GetMonSpritePalStructFromOtIdPersonality(species, TiD, PiD);
LoadCompressedObjectPalette(palette);
GetMonSpriteTemplate_803C56C(palette->tag, 1);
- ewram[0x1FFFF]++;
+ ewram1FFFF++;
}
break;
case 2:
LoadCompressedObjectPic(&gUnknown_083F7F74);
- ewram[0x1FFFF]++;
+ ewram1FFFF++;
break;
case 3:
LoadCompressedObjectPalette(&gUnknown_083F7F7C);
- ewram[0x1FFFF]++;
+ ewram1FFFF++;
break;
case 4:
LoadCompressedObjectPic(&sUnknown_084121DC);
- ewram[0x1FFFF]++;
+ ewram1FFFF++;
break;
case 5:
- SetPokeblockFeedSpritePal(gScriptItemId);
+ SetPokeblockFeedSpritePal(gSpecialVar_ItemId);
LoadCompressedObjectPalette(&sPokeblockFeedSpritePal);
- ewram[0x1FFFF]++;
+ ewram1FFFF++;
break;
case 6:
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM));
- ewram[0x1FFFF]++;
+ ewram1FFFF++;
break;
case 7:
LZDecompressVram(gUnknown_08E782FC, (void*)(VRAM + 0xE800));
- ewram[0x1FFFF]++;
+ ewram1FFFF++;
break;
case 8:
LoadCompressedPalette(gBattleTerrainPalette_BattleTower, 0x20, 0x60);
- ewram[0x1FFFF] = 0;
+ ewram1FFFF = 0;
return TRUE;
}
return FALSE;
@@ -684,13 +684,13 @@ static void sub_8147CC8(u8 taskID)
sub_81481DC();
break;
case 255:
- sub_8148108(ewram[0x1FFFD], gTasks[taskID].data[1]);
+ sub_8148108(ewram1FFFD, gTasks[taskID].data[1]);
break;
case 269:
- ewram[0x1FFFC] = CreatePokeblockSprite();
+ ewram1FFFC = CreatePokeblockSprite();
break;
case 281:
- sub_8148044(ewram[0x1FFFE]);
+ sub_8148044(ewram1FFFE);
break;
case 297:
gTasks[taskID].func = Task_PrintAtePokeblockText;
@@ -722,7 +722,7 @@ static void Task_WaitForAtePokeblockText(u8 taskID)
static void Task_PrintAtePokeblockText(u8 taskID)
{
struct Pokemon* mon = &gPlayerParty[gPokeblockMonID];
- struct Pokeblock* pokeblock = &gSaveBlock1.pokeblocks[gScriptItemId];
+ struct Pokeblock* pokeblock = &gSaveBlock1.pokeblocks[gSpecialVar_ItemId];
gPokeblockGain = PokeblockGetGain(GetNature(mon), pokeblock);
GetMonNickname(mon, gStringVar1);
@@ -763,7 +763,7 @@ static u8 PokeblockFeed_CreatePokeSprite(struct Pokemon* mon)
gPokeblockFeedMonSpecies = species;
gPokeblockFeedMonSpriteID = spriteID;
gPokeblockFeedMonNature = GetNature(mon);
- gSprites[spriteID].data2 = species;
+ gSprites[spriteID].data[2] = species;
gSprites[spriteID].callback = SpriteCallbackDummy;
gPokeblockMonNotFlipped = 1;
if (!IsPokeSpriteNotFlipped(species))
@@ -780,19 +780,19 @@ static void sub_8148044(u8 spriteID)
{
gSprites[spriteID].pos1.x = 48;
gSprites[spriteID].pos1.y = 80;
- gSprites[spriteID].data0 = -8;
- gSprites[spriteID].data1 = 1;
+ gSprites[spriteID].data[0] = -8;
+ gSprites[spriteID].data[1] = 1;
gSprites[spriteID].callback = sub_8148078;
}
static void sub_8148078(struct Sprite* sprite)
{
sprite->pos1.x += 4;
- sprite->pos1.y += sprite->data0;
- sprite->data0 += sprite->data1;
- if (sprite->data0 == 0)
- PlayCry1(sprite->data2, 0);
- if (sprite->data0 == 9)
+ sprite->pos1.y += sprite->data[0];
+ sprite->data[0] += sprite->data[1];
+ if (sprite->data[0] == 0)
+ PlayCry1(sprite->data[2], 0);
+ if (sprite->data[0] == 9)
sprite->callback = SpriteCallbackDummy;
}
@@ -820,17 +820,17 @@ static void sub_8148108(u8 spriteID, bool8 a1)
static u8 CreatePokeblockSprite(void)
{
u8 spriteID = CreateSprite(&sThrownPokeblockSpriteTemplate, 174, 84, 1);
- gSprites[spriteID].data0 = -12;
- gSprites[spriteID].data1 = 1;
+ gSprites[spriteID].data[0] = -12;
+ gSprites[spriteID].data[1] = 1;
return spriteID;
}
static void SpriteCB_ThrownPokeblock(struct Sprite* sprite)
{
sprite->pos1.x -= 4;
- sprite->pos1.y += sprite->data0;
- sprite->data0 += sprite->data1;
- if (sprite->data0 == 10)
+ sprite->pos1.y += sprite->data[0];
+ sprite->data[0] += sprite->data[1];
+ if (sprite->data[0] == 10)
DestroySprite(sprite);
}
@@ -928,14 +928,11 @@ static bool8 sub_8148540(void)
}
}
-#define ewram1D000 ((u16 *)(ewram + 0x1D000))
-#define ewram1D400 ((u16 *)(ewram + 0x1D400))
-
static bool8 sub_81485CC(void)
{
u16 var = gUnknown_03005FA0[12] - gUnknown_03005FA0[4];
- gPokeblockFeedPokeSprite->pos2.x = ewram1D000[var];
+ gPokeblockFeedPokeSprite->pos2.x = ewram1D000_2[var];
gPokeblockFeedPokeSprite->pos2.y = ewram1D400[var];
if (--gUnknown_03005FA0[4] == 0)
@@ -960,7 +957,7 @@ static void sub_814862C(void)
for (i = 0; i < r7 - 1; i++)
{
- s16* r3 = &ewram1D000[r8 + i];
+ s16* r3 = &ewram1D000_2[r8 + i];
s16 r1 = *r3 - (var3);
s16* r5 = &ewram1D400[r8 + i];
@@ -970,7 +967,7 @@ static void sub_814862C(void)
*r5 -= r4 * (i + 1) / r7;
}
- ewram1D000[(r8 + r7) - 1] = var3;
+ ewram1D000_2[(r8 + r7) - 1] = var3;
ewram1D400[(r8 + r7) - 1] = r9;
}
@@ -999,12 +996,12 @@ void sub_8148710(void)
if (!var_24)
{
- ewram1D000[r4] = Sin(gUnknown_03005FA0[0], gUnknown_03005FA0[2] + r5 / 256) + r8;
+ ewram1D000_2[r4] = Sin(gUnknown_03005FA0[0], gUnknown_03005FA0[2] + r5 / 256) + r8;
ewram1D400[r4] = Cos(gUnknown_03005FA0[0], gUnknown_03005FA0[3] + r5 / 256) + r7;
}
else
{
- ewram1D000[r4] = Sin(gUnknown_03005FA0[0], gUnknown_03005FA0[2] - r5 / 256) + r8;
+ ewram1D000_2[r4] = Sin(gUnknown_03005FA0[0], gUnknown_03005FA0[2] - r5 / 256) + r8;
ewram1D400[r4] = Cos(gUnknown_03005FA0[0], gUnknown_03005FA0[3] - r5 / 256) + r7;
}
diff --git a/src/pokemon/pokedex.c b/src/pokemon/pokedex.c
index 947dfd218..a4d84bebd 100644
--- a/src/pokemon/pokedex.c
+++ b/src/pokemon/pokedex.c
@@ -14,16 +14,17 @@
#include "pokedex_area_screen.h"
#include "pokedex_cry_screen.h"
#include "pokemon.h"
-#include "rng.h"
+#include "random.h"
#include "overworld.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "species.h"
+#include "constants/species.h"
#include "string_util.h"
#include "strings.h"
#include "task.h"
#include "trig.h"
#include "unknown_task.h"
+#include "ewram.h"
#define NATIONAL_DEX_COUNT 386
@@ -954,86 +955,86 @@ static const struct OamData gOamData_83B557C =
};
static void *const gUnknown_083B5584[] =
{
- (void *)0x02008000,
- (void *)0x0200C000,
- (void *)0x02010000,
- (void *)0x02014000,
+ ePokedexPalAddr1,
+ ePokedexPalAddr2,
+ ePokedexPalAddr3,
+ ePokedexPalAddr4,
};
static const struct SpriteFrameImage gSpriteImageTable_83B5594[] =
{
- {(u8 *)0x02008000, 0x800},
- {(u8 *)0x02008800, 0x800},
- {(u8 *)0x02009000, 0x800},
- {(u8 *)0x02009800, 0x800},
- {(u8 *)0x0200A000, 0x800},
- {(u8 *)0x0200A800, 0x800},
- {(u8 *)0x0200B000, 0x800},
- {(u8 *)0x0200B800, 0x800},
- {(u8 *)0x0200C000, 0x800},
- {(u8 *)0x0200C800, 0x800},
- {(u8 *)0x0200D000, 0x800},
- {(u8 *)0x0200D800, 0x800},
- {(u8 *)0x0200E000, 0x800},
- {(u8 *)0x0200E800, 0x800},
- {(u8 *)0x0200F000, 0x800},
- {(u8 *)0x0200F800, 0x800},
+ {ewram8000, 0x800},
+ {ewram8800, 0x800},
+ {ewram9000, 0x800},
+ {ewram9800, 0x800},
+ {ewramA000, 0x800},
+ {ewramA800, 0x800},
+ {ewramB000, 0x800},
+ {ewramB800, 0x800},
+ {ewramC000, 0x800},
+ {ewramC800, 0x800},
+ {ewramD000, 0x800},
+ {ewramD800, 0x800},
+ {ewramE000, 0x800},
+ {ewramE800, 0x800},
+ {ewramF000, 0x800},
+ {ewramF800, 0x800},
};
static const struct SpriteFrameImage gSpriteImageTable_83B5614[] =
{
- {(u8 *)0x0200C000, 0x800},
- {(u8 *)0x0200C800, 0x800},
- {(u8 *)0x0200D000, 0x800},
- {(u8 *)0x0200D800, 0x800},
- {(u8 *)0x0200E000, 0x800},
- {(u8 *)0x0200E800, 0x800},
- {(u8 *)0x0200F000, 0x800},
- {(u8 *)0x0200F800, 0x800},
- {(u8 *)0x02010000, 0x800},
- {(u8 *)0x02010800, 0x800},
- {(u8 *)0x02011000, 0x800},
- {(u8 *)0x02011800, 0x800},
- {(u8 *)0x02012000, 0x800},
- {(u8 *)0x02012800, 0x800},
- {(u8 *)0x02013000, 0x800},
- {(u8 *)0x02013800, 0x800},
+ {ewramC000, 0x800},
+ {ewramC800, 0x800},
+ {ewramD000, 0x800},
+ {ewramD800, 0x800},
+ {ewramE000, 0x800},
+ {ewramE800, 0x800},
+ {ewramF000, 0x800},
+ {ewramF800, 0x800},
+ {ewram10000, 0x800},
+ {ewram10800, 0x800},
+ {ewram11000, 0x800},
+ {ewram11800, 0x800},
+ {ewram12000, 0x800},
+ {ewram12800, 0x800},
+ {ewram13000, 0x800},
+ {ewram13800, 0x800},
};
static const struct SpriteFrameImage gSpriteImageTable_83B5694[] =
{
- {(u8 *)0x02010000, 0x800},
- {(u8 *)0x02010800, 0x800},
- {(u8 *)0x02011000, 0x800},
- {(u8 *)0x02011800, 0x800},
- {(u8 *)0x02012000, 0x800},
- {(u8 *)0x02012800, 0x800},
- {(u8 *)0x02013000, 0x800},
- {(u8 *)0x02013800, 0x800},
- {(u8 *)0x02014000, 0x800},
- {(u8 *)0x02014800, 0x800},
- {(u8 *)0x02015000, 0x800},
- {(u8 *)0x02015800, 0x800},
- {(u8 *)0x02016000, 0x800},
- {(u8 *)0x02016800, 0x800},
- {(u8 *)0x02017000, 0x800},
- {(u8 *)0x02017800, 0x800},
+ {ewram10000, 0x800},
+ {ewram10800, 0x800},
+ {ewram11000, 0x800},
+ {ewram11800, 0x800},
+ {ewram12000, 0x800},
+ {ewram12800, 0x800},
+ {ewram13000, 0x800},
+ {ewram13800, 0x800},
+ {ewram14000, 0x800},
+ {ewram14800, 0x800},
+ {ewram15000, 0x800},
+ {ewram15800, 0x800},
+ {ewram16000_2, 0x800},
+ {ewram16800, 0x800},
+ {ewram17000, 0x800},
+ {ewram17800_2, 0x800},
};
static const struct SpriteFrameImage gSpriteImageTable_83B5714[] =
{
- {(u8 *)0x02014000, 0x800},
- {(u8 *)0x02014800, 0x800},
- {(u8 *)0x02015000, 0x800},
- {(u8 *)0x02015800, 0x800},
- {(u8 *)0x02016000, 0x800},
- {(u8 *)0x02016800, 0x800},
- {(u8 *)0x02017000, 0x800},
- {(u8 *)0x02017800, 0x800},
- {(u8 *)0x02018000, 0x800},
- {(u8 *)0x02018800, 0x800},
- {(u8 *)0x02019000, 0x800},
- {(u8 *)0x02019800, 0x800},
- {(u8 *)0x0201A000, 0x800},
- {(u8 *)0x0201A800, 0x800},
- {(u8 *)0x0201B000, 0x800},
- {(u8 *)0x0201B800, 0x800},
+ {ewram14000, 0x800},
+ {ewram14800, 0x800},
+ {ewram15000, 0x800},
+ {ewram15800, 0x800},
+ {ewram16000_2, 0x800},
+ {ewram16800, 0x800},
+ {ewram17000, 0x800},
+ {ewram17800_2, 0x800},
+ {ewram18000_2, 0x800},
+ {ewram18800, 0x800},
+ {ewram19000, 0x800},
+ {ewram19800, 0x800},
+ {ewram1A000, 0x800},
+ {ewram1A800, 0x800},
+ {ewram1B000_2, 0x800},
+ {ewram1B800, 0x800},
};
static const struct SpriteFrameImage *const gUnknown_083B5794[] =
{
@@ -1275,8 +1276,8 @@ static void sub_8091564(u16 weight, u8 i, u8 i1);
static void sub_8091738(u16, u16, u16);
static void sub_80917CC(u16 i, u16 i1);
static u16 sub_8091818(u8, u16, u16, u16);
-static u16 sub_80918EC(u16 a, s16 b, s16 c, u16 d);
-static u8 sub_8091A4C(u16 gender, s16, s16, u16);
+u16 sub_80918EC(u16 a, s16 b, s16 c, u16 d);
+u8 sub_8091A4C(u16 gender, s16, s16, u16);
static void sub_8091E54(u8);
static void sub_809204C(u8);
static void sub_809207C(u8);
@@ -1433,16 +1434,16 @@ void CB2_InitPokedex(void)
{
case 0:
default:
- gPokedexView = (struct PokedexView *)0x02018000;
+ gPokedexView = ePokedexView1;
break;
case 1:
- gPokedexView = (struct PokedexView *)0x02018800;
+ gPokedexView = ePokedexView2;
break;
case 2:
- gPokedexView = (struct PokedexView *)0x02019000;
+ gPokedexView = ePokedexView3;
break;
case 3:
- gPokedexView = (struct PokedexView *)0x02019800;
+ gPokedexView = ePokedexView4;
break;
}
ClearPokedexView(gPokedexView);
@@ -2314,7 +2315,7 @@ static void sub_808E0CC(u16 a, u16 b)
{
spriteId = sub_808E8C8(unk, 0x60, 0x50);
gSprites[spriteId].callback = sub_808EE28;
- gSprites[spriteId].data5 = -32;
+ gSprites[spriteId].data[5] = -32;
}
unk = sub_808E888(a);
@@ -2322,7 +2323,7 @@ static void sub_808E0CC(u16 a, u16 b)
{
spriteId = sub_808E8C8(unk, 0x60, 0x50);
gSprites[spriteId].callback = sub_808EE28;
- gSprites[spriteId].data5 = 0;
+ gSprites[spriteId].data[5] = 0;
}
unk = sub_808E888(a + 1);
@@ -2330,7 +2331,7 @@ static void sub_808E0CC(u16 a, u16 b)
{
spriteId = sub_808E8C8(unk, 0x60, 0x50);
gSprites[spriteId].callback = sub_808EE28;
- gSprites[spriteId].data5 = 32;
+ gSprites[spriteId].data[5] = 32;
}
gPokedexView->unk630 = 0;
@@ -2351,7 +2352,7 @@ static bool8 sub_808E208(u8 a, u8 b, u8 c)
for (i = 0; i < 4; i++)
{
if (gPokedexView->unk61E[i] != 0xFFFF)
- gSprites[gPokedexView->unk61E[i]].data5 += b;
+ gSprites[gPokedexView->unk61E[i]].data[5] += b;
}
foo = 16 * (c - gPokedexView->unk62E) / c;
REG_BG2VOFS = gPokedexView->unk62D + gPokedexView->unk632 * 16 - foo;
@@ -2361,7 +2362,7 @@ static bool8 sub_808E208(u8 a, u8 b, u8 c)
for (i = 0; i < 4; i++)
{
if (gPokedexView->unk61E[i] != 0xFFFF)
- gSprites[gPokedexView->unk61E[i]].data5 -= b;
+ gSprites[gPokedexView->unk61E[i]].data[5] -= b;
}
foo = 16 * (c - gPokedexView->unk62E) / c;
REG_BG2VOFS = gPokedexView->unk62D + gPokedexView->unk632 * 16 + foo;
@@ -2391,7 +2392,7 @@ static void sub_808E398(u8 a, u16 b)
{
spriteId = sub_808E8C8(unk, 0x60, 0x50);
gSprites[spriteId].callback = sub_808EE28;
- gSprites[spriteId].data5 = -64;
+ gSprites[spriteId].data[5] = -64;
}
if (gPokedexView->unk630 > 0)
gPokedexView->unk630--;
@@ -2404,7 +2405,7 @@ static void sub_808E398(u8 a, u16 b)
{
spriteId = sub_808E8C8(unk, 0x60, 0x50);
gSprites[spriteId].callback = sub_808EE28;
- gSprites[spriteId].data5 = 0x40;
+ gSprites[spriteId].data[5] = 0x40;
}
if (gPokedexView->unk630 <= 0xE)
gPokedexView->unk630++;
@@ -2599,9 +2600,9 @@ static u32 sub_808E8C8(u16 a, s16 b, s16 c)
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.priority = 3;
- gSprites[spriteId].data0 = 0;
- gSprites[spriteId].data1 = i;
- gSprites[spriteId].data2 = NationalPokedexNumToSpecies(a);
+ gSprites[spriteId].data[0] = 0;
+ gSprites[spriteId].data[1] = i;
+ gSprites[spriteId].data[2] = NationalPokedexNumToSpecies(a);
gPokedexView->unk61E[i] = spriteId;
return spriteId;
}
@@ -2615,10 +2616,10 @@ static void sub_808E978(u8 a)
u16 r5;
spriteId = CreateSprite(&gSpriteTemplate_83A053C, 184, 4, 0);
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
spriteId = CreateSprite(&gSpriteTemplate_83A053C, 184, 156, 0);
- gSprites[spriteId].data1 = 1;
+ gSprites[spriteId].data[1] = 1;
gSprites[spriteId].vFlip = TRUE;
CreateSprite(&gSpriteTemplate_83A0524, 234, 20, 0);
@@ -2629,7 +2630,7 @@ static void sub_808E978(u8 a)
spriteId = CreateSprite(&gSpriteTemplate_83A0554, 16, 158, 0);
StartSpriteAnim(&gSprites[spriteId], 2);
- gSprites[spriteId].data2 = 0x80;
+ gSprites[spriteId].data[2] = 0x80;
spriteId = CreateSprite(&gSpriteTemplate_83A0554, 48, 158, 0);
StartSpriteAnim(&gSprites[spriteId], 1);
@@ -2637,14 +2638,14 @@ static void sub_808E978(u8 a)
spriteId = CreateSprite(&gSpriteTemplate_83A056C, 0, 80, 2);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.matrixNum = 30;
- gSprites[spriteId].data0 = 0x1E;
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[0] = 0x1E;
+ gSprites[spriteId].data[1] = 0;
spriteId = CreateSprite(&gSpriteTemplate_83A056C, 0, 80, 2);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.matrixNum = 31;
- gSprites[spriteId].data0 = 0x1F;
- gSprites[spriteId].data1 = 0x80;
+ gSprites[spriteId].data[0] = 0x1F;
+ gSprites[spriteId].data[1] = 0x80;
if (a == 0)
{
@@ -2742,7 +2743,7 @@ static void sub_808EDB8(struct Sprite *sprite)
static void sub_808EE28(struct Sprite *sprite)
{
- u8 data1 = sprite->data1;
+ u8 data1 = sprite->data[1];
if (gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3)
{
@@ -2753,24 +2754,24 @@ static void sub_808EE28(struct Sprite *sprite)
{
u32 var;
- sprite->pos2.y = gSineTable[(u8)sprite->data5] * 76 / 256;
- var = 0x10000 / gSineTable[sprite->data5 + 0x40];
+ sprite->pos2.y = gSineTable[(u8)sprite->data[5]] * 76 / 256;
+ var = 0x10000 / gSineTable[sprite->data[5] + 0x40];
if (var > 0xFFFF)
var = 0xFFFF;
- SetOamMatrix(sprite->data1 + 1, 0x100, 0, 0, var);
+ SetOamMatrix(sprite->data[1] + 1, 0x100, 0, 0, var);
sprite->oam.matrixNum = data1 + 1;
- if (sprite->data5 > -64 && sprite->data5 < 64)
+ if (sprite->data[5] > -64 && sprite->data[5] < 64)
{
sprite->invisible = FALSE;
- sprite->data0 = 1;
+ sprite->data[0] = 1;
}
else
{
sprite->invisible = TRUE;
}
- if ((sprite->data5 <= -64 || sprite->data5 >= 64) && sprite->data0 != 0)
+ if ((sprite->data[5] <= -64 || sprite->data[5] >= 64) && sprite->data[0] != 0)
{
DestroySprite(sprite);
gPokedexView->unk61E[data1] = 0xFFFF;
@@ -2796,13 +2797,13 @@ static void sub_808EF8C(struct Sprite *sprite)
{
u8 r0;
- if (sprite->data1 != 0)
+ if (sprite->data[1] != 0)
{
if (gPokedexView->selectedPokemon == gPokedexView->pokemonListCount - 1)
sprite->invisible = TRUE;
else
sprite->invisible = FALSE;
- r0 = sprite->data2;
+ r0 = sprite->data[2];
}
else
{
@@ -2810,10 +2811,10 @@ static void sub_808EF8C(struct Sprite *sprite)
sprite->invisible = TRUE;
else
sprite->invisible = FALSE;
- r0 = sprite->data2 - 128;
+ r0 = sprite->data[2] - 128;
}
sprite->pos2.y = gSineTable[r0] / 64;
- sprite->data2 = sprite->data2 + 8;
+ sprite->data[2] = sprite->data[2] + 8;
if (gPokedexView->menuIsOpen == 0 && gPokedexView->menuY == 0 && sprite->invisible == 0)
sprite->invisible = FALSE;
else
@@ -2839,12 +2840,12 @@ static void sub_808F0B4(struct Sprite *sprite)
s16 r3;
s16 r0;
- val = gPokedexView->unk62C + sprite->data1;
+ val = gPokedexView->unk62C + sprite->data[1];
r3 = gSineTable[val];
r0 = gSineTable[val + 0x40];
- SetOamMatrix(sprite->data0, r0, r3, -r3, r0);
+ SetOamMatrix(sprite->data[0], r0, r3, -r3, r0);
- val = gPokedexView->unk62C + (sprite->data1 + 0x40);
+ val = gPokedexView->unk62C + (sprite->data[1] + 0x40);
r3 = gSineTable[val];
r0 = gSineTable[val + 0x40];
sprite->pos2.x = r0 * 40 / 256;
@@ -2866,8 +2867,8 @@ static void sub_808F168(struct Sprite *sprite)
{
sprite->invisible = FALSE;
sprite->pos2.y = gPokedexView->menuCursorPos * 16;
- sprite->pos2.x = gSineTable[(u8)sprite->data2] / 64;
- sprite->data2 += 8;
+ sprite->pos2.x = gSineTable[(u8)sprite->data[2]] / 64;
+ sprite->data[2] += 8;
}
else
{
@@ -4557,7 +4558,7 @@ u16 sub_80918EC(u16 num, s16 x, s16 y, u16 paletteNum)
&gMonFrontPicTable[num],
gMonFrontPicCoords[num].coords,
gMonFrontPicCoords[num].y_offset,
- (void *)0x02000000,
+ (void*)ewram_addr,
gUnknown_083B5584[paletteNum],
num);
break;
@@ -4566,7 +4567,7 @@ u16 sub_80918EC(u16 num, s16 x, s16 y, u16 paletteNum)
&gMonFrontPicTable[num],
gMonFrontPicCoords[num].coords,
gMonFrontPicCoords[num].y_offset,
- 0x02000000,
+ ewram_addr,
gUnknown_083B5584[paletteNum],
num,
gSaveBlock2.pokedex.spindaPersonality,
@@ -4577,7 +4578,7 @@ u16 sub_80918EC(u16 num, s16 x, s16 y, u16 paletteNum)
&gMonFrontPicTable[num],
gMonFrontPicCoords[num].coords,
gMonFrontPicCoords[num].y_offset,
- 0x02000000,
+ ewram_addr,
gUnknown_083B5584[paletteNum],
num,
gSaveBlock2.pokedex.unownPersonality,
@@ -4591,7 +4592,7 @@ u16 sub_80918EC(u16 num, s16 x, s16 y, u16 paletteNum)
return spriteId;
}
-static u8 sub_8091A4C(u16 gender, s16 x, s16 y, u16 paletteNum)
+u8 sub_8091A4C(u16 gender, s16 x, s16 y, u16 paletteNum)
{
u8 spriteId;
@@ -4599,7 +4600,7 @@ static u8 sub_8091A4C(u16 gender, s16 x, s16 y, u16 paletteNum)
&gTrainerFrontPicTable[gender],
gTrainerFrontPicCoords[gender].coords,
gTrainerFrontPicCoords[gender].y_offset,
- (void *)0x02000000,
+ (void*)ewram_addr,
gUnknown_083B5584[0],
gender);
sub_80918B0(gender, 0);
@@ -5481,27 +5482,27 @@ static bool8 sub_8092F8C(u8 taskId)
static void sub_8092FD8(struct Sprite *sprite)
{
- if (gTasks[sprite->data0].func == sub_8092644)
+ if (gTasks[sprite->data[0]].func == sub_8092644)
{
u8 val;
- if (sprite->data1 != 0)
+ if (sprite->data[1] != 0)
{
- if (sub_8092F8C(sprite->data0))
+ if (sub_8092F8C(sprite->data[0]))
sprite->invisible = TRUE;
else
sprite->invisible = FALSE;
}
else
{
- if (sub_8092F44(sprite->data0))
+ if (sub_8092F44(sprite->data[0]))
sprite->invisible = TRUE;
else
sprite->invisible = FALSE;
}
- val = sprite->data2 + sprite->data1 * 128;
+ val = sprite->data[2] + sprite->data[1] * 128;
sprite->pos2.y = gSineTable[val] / 128;
- sprite->data2 += 8;
+ sprite->data[2] += 8;
}
else
{
@@ -5514,13 +5515,13 @@ static void sub_809308C(u8 taskId)
u8 spriteId;
spriteId = CreateSprite(&gSpriteTemplate_83A053C, 184, 4, 0);
- gSprites[spriteId].data0 = taskId;
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = 0;
gSprites[spriteId].callback = sub_8092FD8;
spriteId = CreateSprite(&gSpriteTemplate_83A053C, 184, 108, 0);
- gSprites[spriteId].data0 = taskId;
- gSprites[spriteId].data1 = 1;
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = 1;
gSprites[spriteId].vFlip = TRUE;
gSprites[spriteId].callback = sub_8092FD8;
}
diff --git a/src/pokemon/pokedex_cry_screen.c b/src/pokemon/pokedex_cry_screen.c
index 92fd832fc..912b9aabd 100644
--- a/src/pokemon/pokedex_cry_screen.c
+++ b/src/pokemon/pokedex_cry_screen.c
@@ -2,6 +2,7 @@
#include "pokedex_cry_screen.h"
#include "palette.h"
#include "sprite.h"
+#include "ewram.h"
struct Unk201C800 {
u8 unk_0;
@@ -11,10 +12,6 @@ struct Unk201C800 {
u16 unk_4;
};
-#define EWRAM_1C800 (*(struct Unk201C800 *)(unk_201C000 + 0x800))
-
-extern u8 unk_201C000[];
-
extern u8 gUnknown_03005E98;
// data/pokedex_cry_screen.o
@@ -49,7 +46,7 @@ u8 ShowPokedexCryScreen(struct CryRelatedStruct *cry, u8 arg1) {
u32 r12;
int x, y;
- vram = (void *) BG_SCREEN_ADDR(cry->unk2);
+ vram = BG_SCREEN_ADDR(cry->unk2);
r12 = (u32) (cry->unk0 << 18) >> 23;
diff --git a/src/pokemon/pokemon_1.c b/src/pokemon/pokemon_1.c
index 1d597cb17..f4d227f7f 100644
--- a/src/pokemon/pokemon_1.c
+++ b/src/pokemon/pokemon_1.c
@@ -1,14 +1,15 @@
#include "global.h"
#include "data2.h"
-#include "items.h"
+#include "constants/items.h"
#include "main.h"
#include "pokemon.h"
-#include "rng.h"
+#include "random.h"
#include "overworld.h"
-#include "species.h"
+#include "constants/species.h"
#include "sprite.h"
#include "string_util.h"
#include "text.h"
+#include "ewram.h"
//Extracts the upper 16 bits of a 32-bit number
#define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
@@ -16,7 +17,6 @@
//Extracts the lower 16 bits of a 32-bit number
#define LOHALF(n) ((n) & 0xFFFF)
-extern u8 unk_2000000[];
extern u16 gMoveToLearn;
static EWRAM_DATA u8 sLearningMoveTableID = 0;
@@ -39,17 +39,17 @@ void ZeroMonData(struct Pokemon *mon)
u32 arg;
ZeroBoxMonData(&mon->box);
arg = 0;
- SetMonData(mon, MON_DATA_STATUS, (u8 *)&arg);
- SetMonData(mon, MON_DATA_LEVEL, (u8 *)&arg);
- SetMonData(mon, MON_DATA_HP, (u8 *)&arg);
- SetMonData(mon, MON_DATA_MAX_HP, (u8 *)&arg);
- SetMonData(mon, MON_DATA_ATK, (u8 *)&arg);
- SetMonData(mon, MON_DATA_DEF, (u8 *)&arg);
- SetMonData(mon, MON_DATA_SPD, (u8 *)&arg);
- SetMonData(mon, MON_DATA_SPATK, (u8 *)&arg);
- SetMonData(mon, MON_DATA_SPDEF, (u8 *)&arg);
+ SetMonData(mon, MON_DATA_STATUS, &arg);
+ SetMonData(mon, MON_DATA_LEVEL, &arg);
+ SetMonData(mon, MON_DATA_HP, &arg);
+ SetMonData(mon, MON_DATA_MAX_HP, &arg);
+ SetMonData(mon, MON_DATA_ATK, &arg);
+ SetMonData(mon, MON_DATA_DEF, &arg);
+ SetMonData(mon, MON_DATA_SPEED, &arg);
+ SetMonData(mon, MON_DATA_SPATK, &arg);
+ SetMonData(mon, MON_DATA_SPDEF, &arg);
arg = 255;
- SetMonData(mon, MON_DATA_MAIL, (u8 *)&arg);
+ SetMonData(mon, MON_DATA_MAIL, &arg);
}
void ZeroPlayerPartyMons(void)
@@ -74,7 +74,7 @@ void CreateMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFix
CreateBoxMon(&mon->box, species, level, fixedIV, hasFixedPersonality, fixedPersonality, otIdType, fixedOtId);
SetMonData(mon, MON_DATA_LEVEL, &level);
arg = 255;
- SetMonData(mon, MON_DATA_MAIL, (u8 *)&arg);
+ SetMonData(mon, MON_DATA_MAIL, &arg);
CalculateMonStats(mon);
}
@@ -92,7 +92,7 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV,
else
personality = Random32();
- SetBoxMonData(boxMon, MON_DATA_PERSONALITY, (u8 *)&personality);
+ SetBoxMonData(boxMon, MON_DATA_PERSONALITY, &personality);
//Determine original trainer ID
if (otIdType == 2) //Pokemon cannot be shiny
@@ -116,24 +116,24 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV,
| (gSaveBlock2.playerTrainerId[3] << 24);
}
- SetBoxMonData(boxMon, MON_DATA_OT_ID, (u8 *)&value);
+ SetBoxMonData(boxMon, MON_DATA_OT_ID, &value);
checksum = CalculateBoxMonChecksum(boxMon);
- SetBoxMonData(boxMon, MON_DATA_CHECKSUM, (u8 *)&checksum);
+ SetBoxMonData(boxMon, MON_DATA_CHECKSUM, &checksum);
EncryptBoxMon(boxMon);
GetSpeciesName(speciesName, species);
SetBoxMonData(boxMon, MON_DATA_NICKNAME, speciesName);
SetBoxMonData(boxMon, MON_DATA_LANGUAGE, &gGameLanguage);
SetBoxMonData(boxMon, MON_DATA_OT_NAME, gSaveBlock2.playerName);
- SetBoxMonData(boxMon, MON_DATA_SPECIES, (u8 *)&species);
- SetBoxMonData(boxMon, MON_DATA_EXP, (u8 *)&gExperienceTables[gBaseStats[species].growthRate][level]);
+ SetBoxMonData(boxMon, MON_DATA_SPECIES, &species);
+ SetBoxMonData(boxMon, MON_DATA_EXP, &gExperienceTables[gBaseStats[species].growthRate][level]);
SetBoxMonData(boxMon, MON_DATA_FRIENDSHIP, &gBaseStats[species].friendship);
value = sav1_map_get_name();
- SetBoxMonData(boxMon, MON_DATA_MET_LOCATION, (u8 *)&value);
+ SetBoxMonData(boxMon, MON_DATA_MET_LOCATION, &value);
SetBoxMonData(boxMon, MON_DATA_MET_LEVEL, &level);
SetBoxMonData(boxMon, MON_DATA_MET_GAME, &gGameVersion);
value = 4;
- SetBoxMonData(boxMon, MON_DATA_POKEBALL, (u8 *)&value);
+ SetBoxMonData(boxMon, MON_DATA_POKEBALL, &value);
SetBoxMonData(boxMon, MON_DATA_OT_GENDER, &gSaveBlock2.playerGender);
if (fixedIV < 32)
@@ -141,7 +141,7 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV,
SetBoxMonData(boxMon, MON_DATA_HP_IV, &fixedIV);
SetBoxMonData(boxMon, MON_DATA_ATK_IV, &fixedIV);
SetBoxMonData(boxMon, MON_DATA_DEF_IV, &fixedIV);
- SetBoxMonData(boxMon, MON_DATA_SPD_IV, &fixedIV);
+ SetBoxMonData(boxMon, MON_DATA_SPEED_IV, &fixedIV);
SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &fixedIV);
SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &fixedIV);
}
@@ -151,26 +151,26 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV,
value = Random();
iv = value & 0x1F;
- SetBoxMonData(boxMon, MON_DATA_HP_IV, (u8 *)&iv);
+ SetBoxMonData(boxMon, MON_DATA_HP_IV, &iv);
iv = (value & 0x3E0) >> 5;
- SetBoxMonData(boxMon, MON_DATA_ATK_IV, (u8 *)&iv);
+ SetBoxMonData(boxMon, MON_DATA_ATK_IV, &iv);
iv = (value & 0x7C00) >> 10;
- SetBoxMonData(boxMon, MON_DATA_DEF_IV, (u8 *)&iv);
+ SetBoxMonData(boxMon, MON_DATA_DEF_IV, &iv);
value = Random();
iv = value & 0x1F;
- SetBoxMonData(boxMon, MON_DATA_SPD_IV, (u8 *)&iv);
+ SetBoxMonData(boxMon, MON_DATA_SPEED_IV, &iv);
iv = (value & 0x3E0) >> 5;
- SetBoxMonData(boxMon, MON_DATA_SPATK_IV, (u8 *)&iv);
+ SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &iv);
iv = (value & 0x7C00) >> 10;
- SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, (u8 *)&iv);
+ SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &iv);
}
if (gBaseStats[species].ability2)
{
value = personality & 1;
- SetBoxMonData(boxMon, MON_DATA_ALT_ABILITY, (u8 *)&value);
+ SetBoxMonData(boxMon, MON_DATA_ALT_ABILITY, &value);
}
GiveBoxMonInitialMoveset(boxMon);
@@ -237,7 +237,7 @@ void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level)
void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality)
{
CreateMon(mon, species, level, 0, 1, personality, 0, 0);
- SetMonData(mon, MON_DATA_IVS, (u8 *)&ivs);
+ SetMonData(mon, MON_DATA_IVS, &ivs);
CalculateMonStats(mon);
}
@@ -247,7 +247,7 @@ void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u
SetMonData(mon, MON_DATA_HP_IV, &ivs[0]);
SetMonData(mon, MON_DATA_ATK_IV, &ivs[1]);
SetMonData(mon, MON_DATA_DEF_IV, &ivs[2]);
- SetMonData(mon, MON_DATA_SPD_IV, &ivs[3]);
+ SetMonData(mon, MON_DATA_SPEED_IV, &ivs[3]);
SetMonData(mon, MON_DATA_SPATK_IV, &ivs[4]);
SetMonData(mon, MON_DATA_SPDEF_IV, &ivs[5]);
CalculateMonStats(mon);
@@ -278,7 +278,7 @@ void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedI
for (i = 0; i < 6; i++)
{
if (evSpread & temp)
- SetMonData(mon, MON_DATA_HP_EV + i, (u8 *)&evAmount);
+ SetMonData(mon, MON_DATA_HP_EV + i, &evAmount);
temp <<= 1;
}
@@ -297,8 +297,8 @@ void sub_803ADE8(struct Pokemon *mon, struct UnknownPokemonStruct *src)
for (i = 0; i < 4; i++)
SetMonMoveSlot(mon, src->moves[i], i);
- SetMonData(mon, MON_DATA_PP_BONUSES, (u8 *)&src->ppBonuses);
- SetMonData(mon, MON_DATA_HELD_ITEM, (u8 *)&src->heldItem);
+ SetMonData(mon, MON_DATA_PP_BONUSES, &src->ppBonuses);
+ SetMonData(mon, MON_DATA_HELD_ITEM, &src->heldItem);
StringCopy(nickname, src->nickname);
@@ -310,13 +310,13 @@ void sub_803ADE8(struct Pokemon *mon, struct UnknownPokemonStruct *src)
SetMonData(mon, MON_DATA_LANGUAGE, &language);
StripExtCtrlCodes(nickname);
SetMonData(mon, MON_DATA_NICKNAME, nickname);
- SetMonData(mon, MON_DATA_FRIENDSHIP, (u8 *)&src->friendship);
- SetMonData(mon, MON_DATA_HP_EV, (u8 *)&src->hpEV);
- SetMonData(mon, MON_DATA_ATK_EV, (u8 *)&src->attackEV);
- SetMonData(mon, MON_DATA_DEF_EV, (u8 *)&src->defenseEV);
- SetMonData(mon, MON_DATA_SPD_EV, (u8 *)&src->speedEV);
- SetMonData(mon, MON_DATA_SPATK_EV, (u8 *)&src->spAttackEV);
- SetMonData(mon, MON_DATA_SPDEF_EV, (u8 *)&src->spDefenseEV);
+ SetMonData(mon, MON_DATA_FRIENDSHIP, &src->friendship);
+ SetMonData(mon, MON_DATA_HP_EV, &src->hpEV);
+ SetMonData(mon, MON_DATA_ATK_EV, &src->attackEV);
+ SetMonData(mon, MON_DATA_DEF_EV, &src->defenseEV);
+ SetMonData(mon, MON_DATA_SPEED_EV, &src->speedEV);
+ SetMonData(mon, MON_DATA_SPATK_EV, &src->spAttackEV);
+ SetMonData(mon, MON_DATA_SPDEF_EV, &src->spDefenseEV);
value = src->altAbility;
SetMonData(mon, MON_DATA_ALT_ABILITY, &value);
value = src->hpIV;
@@ -326,7 +326,7 @@ void sub_803ADE8(struct Pokemon *mon, struct UnknownPokemonStruct *src)
value = src->defenseIV;
SetMonData(mon, MON_DATA_DEF_IV, &value);
value = src->speedIV;
- SetMonData(mon, MON_DATA_SPD_IV, &value);
+ SetMonData(mon, MON_DATA_SPEED_IV, &value);
value = src->spAttackIV;
SetMonData(mon, MON_DATA_SPATK_IV, &value);
value = src->spDefenseIV;
@@ -356,14 +356,14 @@ void sub_803AF78(struct Pokemon *mon, struct UnknownPokemonStruct *dest)
dest->hpEV = GetMonData(mon, MON_DATA_HP_EV, NULL);
dest->attackEV = GetMonData(mon, MON_DATA_ATK_EV, NULL);
dest->defenseEV = GetMonData(mon, MON_DATA_DEF_EV, NULL);
- dest->speedEV = GetMonData(mon, MON_DATA_SPD_EV, NULL);
+ dest->speedEV = GetMonData(mon, MON_DATA_SPEED_EV, NULL);
dest->spAttackEV = GetMonData(mon, MON_DATA_SPATK_EV, NULL);
dest->spDefenseEV = GetMonData(mon, MON_DATA_SPDEF_EV, NULL);
dest->friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, NULL);
dest->hpIV = GetMonData(mon, MON_DATA_HP_IV, NULL);
dest->attackIV = GetMonData(mon, MON_DATA_ATK_IV, NULL);
dest->defenseIV = GetMonData(mon, MON_DATA_DEF_IV, NULL);
- dest->speedIV = GetMonData(mon, MON_DATA_SPD_IV, NULL);
+ dest->speedIV = GetMonData(mon, MON_DATA_SPEED_IV, NULL);
dest->spAttackIV = GetMonData(mon, MON_DATA_SPATK_IV, NULL);
dest->spDefenseIV = GetMonData(mon, MON_DATA_SPDEF_IV, NULL);
dest->altAbility = GetMonData(mon, MON_DATA_ALT_ABILITY, NULL);
@@ -401,7 +401,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, (u8 *)&n); \
+ SetMonData(mon, field, &n); \
}
void CalculateMonStats(struct Pokemon *mon)
@@ -414,8 +414,8 @@ void CalculateMonStats(struct Pokemon *mon)
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_SPD_IV, NULL);
- s32 speedEV = GetMonData(mon, MON_DATA_SPD_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);
@@ -424,7 +424,7 @@ void CalculateMonStats(struct Pokemon *mon)
s32 level = GetLevelFromMonExp(mon);
s32 newMaxHP;
- SetMonData(mon, MON_DATA_LEVEL, (u8 *)&level);
+ SetMonData(mon, MON_DATA_LEVEL, &level);
if (species == SPECIES_SHEDINJA)
{
@@ -436,15 +436,15 @@ void CalculateMonStats(struct Pokemon *mon)
newMaxHP = (((n + hpEV / 4) * level) / 100) + level + 10;
}
- unk_2000000[0x160FA] = newMaxHP - oldMaxHP;
- if (unk_2000000[0x160FA] == 0)
- unk_2000000[0x160FA] = 1;
+ eStatHp = newMaxHP - oldMaxHP;
+ if (eStatHp == 0)
+ eStatHp = 1;
- SetMonData(mon, MON_DATA_MAX_HP, (u8 *)&newMaxHP);
+ 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_SPD)
+ 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)
@@ -465,18 +465,18 @@ void CalculateMonStats(struct Pokemon *mon)
return;
}
- SetMonData(mon, MON_DATA_HP, (u8 *)&currentHP);
+ SetMonData(mon, MON_DATA_HP, &currentHP);
}
void sub_803B4B4(const struct BoxPokemon *src, struct Pokemon *dest)
{
u32 value = 0;
dest->box = *src;
- SetMonData(dest, MON_DATA_STATUS, (u8 *)&value);
- SetMonData(dest, MON_DATA_HP, (u8 *)&value);
- SetMonData(dest, MON_DATA_MAX_HP, (u8 *)&value);
+ SetMonData(dest, MON_DATA_STATUS, &value);
+ SetMonData(dest, MON_DATA_HP, &value);
+ SetMonData(dest, MON_DATA_MAX_HP, &value);
value = 255;
- SetMonData(dest, MON_DATA_MAIL, (u8 *)&value);
+ SetMonData(dest, MON_DATA_MAIL, &value);
CalculateMonStats(dest);
}
@@ -517,7 +517,7 @@ u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move)
u16 existingMove = GetBoxMonData(boxMon, MON_DATA_MOVE1 + i, NULL);
if (!existingMove)
{
- SetBoxMonData(boxMon, MON_DATA_MOVE1 + i, (u8 *)&move);
+ SetBoxMonData(boxMon, MON_DATA_MOVE1 + i, &move);
SetBoxMonData(boxMon, MON_DATA_PP1 + i, &gBattleMoves[move].pp);
return move;
}
@@ -546,7 +546,7 @@ u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move)
void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot)
{
- SetMonData(mon, MON_DATA_MOVE1 + slot, (u8 *)&move);
+ SetMonData(mon, MON_DATA_MOVE1 + slot, &move);
SetMonData(mon, MON_DATA_PP1 + slot, &gBattleMoves[move].pp);
}
@@ -636,7 +636,7 @@ void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move)
for (i = 0; i < 4; i++)
{
- SetMonData(mon, MON_DATA_MOVE1 + i, (u8 *)&moves[i]);
+ SetMonData(mon, MON_DATA_MOVE1 + i, &moves[i]);
SetMonData(mon, MON_DATA_PP1 + i, &pp[i]);
}
@@ -663,7 +663,7 @@ void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move)
for (i = 0; i < 4; i++)
{
- SetBoxMonData(boxMon, MON_DATA_MOVE1 + i, (u8 *)&moves[i]);
+ SetBoxMonData(boxMon, MON_DATA_MOVE1 + i, &moves[i]);
SetBoxMonData(boxMon, MON_DATA_PP1 + i, &pp[i]);
}
diff --git a/src/pokemon/pokemon_2.c b/src/pokemon/pokemon_2.c
index f02ce6170..8e5d7a33f 100644
--- a/src/pokemon/pokemon_2.c
+++ b/src/pokemon/pokemon_2.c
@@ -4,21 +4,19 @@
#include "event_data.h"
#include "main.h"
#include "pokemon.h"
-#include "rng.h"
+#include "random.h"
#include "rom_8077ABC.h"
-#include "species.h"
+#include "constants/species.h"
#include "sprite.h"
#include "string_util.h"
#include "strings2.h"
#include "text.h"
#include "util.h"
+#include "ewram.h"
extern u8 gPlayerPartyCount;
extern u8 gEnemyPartyCount;
-extern u16 unk_20160BC[];
-extern struct SecretBaseRecord gSecretBaseRecord;
-extern u32 dword_2017100[];
extern u16 gBattleTypeFlags;
extern u8 gActiveBank;
extern struct BattlePokemon gBattleMons[4];
@@ -278,7 +276,7 @@ u32 GetMonData(struct Pokemon *mon, s32 field, u8 *data)
return mon->attack;
case MON_DATA_DEF:
return mon->defense;
- case MON_DATA_SPD:
+ case MON_DATA_SPEED:
return mon->speed;
case MON_DATA_SPATK:
return mon->spAttack;
@@ -422,7 +420,7 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
case MON_DATA_DEF_EV:
retVal = substruct2->defenseEV;
break;
- case MON_DATA_SPD_EV:
+ case MON_DATA_SPEED_EV:
retVal = substruct2->speedEV;
break;
case MON_DATA_SPATK_EV:
@@ -476,7 +474,7 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
case MON_DATA_DEF_IV:
retVal = substruct3->defenseIV;
break;
- case MON_DATA_SPD_IV:
+ case MON_DATA_SPEED_IV:
retVal = substruct3->speedIV;
break;
case MON_DATA_SPATK_IV:
@@ -653,7 +651,7 @@ void SetMonData(struct Pokemon *mon, s32 field, const u8 *data)
case MON_DATA_DEF:
SET16(mon->defense);
break;
- case MON_DATA_SPD:
+ case MON_DATA_SPEED:
SET16(mon->speed);
break;
case MON_DATA_SPATK:
@@ -784,7 +782,7 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const u8 *data)
case MON_DATA_DEF_EV:
SET8(substruct2->defenseEV);
break;
- case MON_DATA_SPD_EV:
+ case MON_DATA_SPEED_EV:
SET8(substruct2->speedEV);
break;
case MON_DATA_SPATK_EV:
@@ -844,7 +842,7 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const u8 *data)
case MON_DATA_DEF_IV:
SET8(substruct3->defenseIV);
break;
- case MON_DATA_SPD_IV:
+ case MON_DATA_SPEED_IV:
SET8(substruct3->speedIV);
break;
case MON_DATA_SPATK_IV:
@@ -1062,30 +1060,31 @@ void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord)
s32 i, j;
ZeroEnemyPartyMons();
- memcpy(&gSecretBaseRecord, secretBaseRecord, sizeof(*secretBaseRecord));
+ memcpy(eSecretBaseRecord, secretBaseRecord, sizeof(*secretBaseRecord));
for (i = 0; i < 6; i++)
{
- if (gSecretBaseRecord.partySpecies[i])
+ if (eSecretBaseRecord->partySpecies[i])
{
CreateMon(&gEnemyParty[i],
- gSecretBaseRecord.partySpecies[i],
- gSecretBaseRecord.partyLevels[i],
+ eSecretBaseRecord->partySpecies[i],
+ eSecretBaseRecord->partyLevels[i],
15,
1,
- gSecretBaseRecord.partyPersonality[i],
+ eSecretBaseRecord->partyPersonality[i],
2,
0);
- SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, (u8 *)&gSecretBaseRecord.partyHeldItems[i]);
+ // these two SetMonData calls require the (u8 *) cast since SetMonData is declared in this function.
+ SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, (u8 *)&eSecretBaseRecord->partyHeldItems[i]);
for (j = 0; j < 6; j++)
- SetMonData(&gEnemyParty[i], MON_DATA_HP_EV + j, &gSecretBaseRecord.partyEVs[i]);
+ SetMonData(&gEnemyParty[i], MON_DATA_HP_EV + j, &eSecretBaseRecord->partyEVs[i]);
for (j = 0; j < 4; j++)
{
- SetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j, (u8 *)&gSecretBaseRecord.partyMoves[i * 4 + j]);
- SetMonData(&gEnemyParty[i], MON_DATA_PP1 + j, &gBattleMoves[gSecretBaseRecord.partyMoves[i * 4 + j]].pp);
+ SetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j, (u8 *)&eSecretBaseRecord->partyMoves[i * 4 + j]);
+ SetMonData(&gEnemyParty[i], MON_DATA_PP1 + j, &gBattleMoves[eSecretBaseRecord->partyMoves[i * 4 + j]].pp);
}
}
}
@@ -1096,13 +1095,13 @@ void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord)
u8 GetSecretBaseTrainerPicIndex(void)
{
- u8 trainerClass = gSecretBaseTrainerClasses[gSecretBaseRecord.gender][gSecretBaseRecord.trainerId[0] % 5];
+ u8 trainerClass = gSecretBaseTrainerClasses[eSecretBaseRecord->gender][eSecretBaseRecord->trainerId[0] % 5];
return gTrainerClassToPicIndex[trainerClass];
}
u8 GetSecretBaseTrainerNameIndex(void)
{
- u8 trainerClass = gSecretBaseTrainerClasses[gSecretBaseRecord.gender][gSecretBaseRecord.trainerId[0] % 5];
+ u8 trainerClass = gSecretBaseTrainerClasses[eSecretBaseRecord->gender][eSecretBaseRecord->trainerId[0] % 5];
return gTrainerClassToNameIndex[trainerClass];
}
@@ -1185,7 +1184,7 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex)
gBattleMons[battleIndex].hpIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_HP_IV, NULL);
gBattleMons[battleIndex].attackIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_ATK_IV, NULL);
gBattleMons[battleIndex].defenseIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_DEF_IV, NULL);
- gBattleMons[battleIndex].speedIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPD_IV, NULL);
+ gBattleMons[battleIndex].speedIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPEED_IV, NULL);
gBattleMons[battleIndex].spAttackIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPATK_IV, NULL);
gBattleMons[battleIndex].spDefenseIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPDEF_IV, NULL);
gBattleMons[battleIndex].personality = GetMonData(&gPlayerParty[partyIndex], MON_DATA_PERSONALITY, NULL);
@@ -1195,7 +1194,7 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex)
gBattleMons[battleIndex].maxHP = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MAX_HP, NULL);
gBattleMons[battleIndex].attack = GetMonData(&gPlayerParty[partyIndex], MON_DATA_ATK, NULL);
gBattleMons[battleIndex].defense = GetMonData(&gPlayerParty[partyIndex], MON_DATA_DEF, NULL);
- gBattleMons[battleIndex].speed = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPD, NULL);
+ gBattleMons[battleIndex].speed = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPEED, NULL);
gBattleMons[battleIndex].spAttack = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPATK, NULL);
gBattleMons[battleIndex].spDefense = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPDEF, NULL);
gBattleMons[battleIndex].isEgg = GetMonData(&gPlayerParty[partyIndex], MON_DATA_IS_EGG, NULL);
@@ -1207,7 +1206,7 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex)
GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, nickname);
StringCopy10(gBattleMons[battleIndex].nickname, nickname);
GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_NAME, gBattleMons[battleIndex].otName);
- *(unk_20160BC + GetBankSide(battleIndex)) = gBattleMons[battleIndex].hp;
+ ewram160BC[GetBankSide(battleIndex)] = gBattleMons[battleIndex].hp;
for (i = 0; i < 8; i++)
gBattleMons[battleIndex].statStages[i] = 6;
diff --git a/src/pokemon/pokemon_3.c b/src/pokemon/pokemon_3.c
index f3d0bee03..d659ed680 100644
--- a/src/pokemon/pokemon_3.c
+++ b/src/pokemon/pokemon_3.c
@@ -3,25 +3,26 @@
#include "battle_message.h"
#include "data2.h"
#include "event_data.h"
-#include "hold_effects.h"
+#include "constants/hold_effects.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "link.h"
#include "m4a.h"
#include "main.h"
#include "pokemon.h"
-#include "rng.h"
+#include "random.h"
#include "overworld.h"
#include "rom_8077ABC.h"
#include "rom_8094928.h"
#include "rtc.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "species.h"
+#include "constants/species.h"
#include "sprite.h"
#include "string_util.h"
#include "text.h"
#include "util.h"
+#include "ewram.h"
extern u8 gPlayerPartyCount;
extern u8 gEnemyPartyCount;
@@ -55,10 +56,10 @@ extern u16 gBattlePartyID[];
extern u8 gJapaneseNidoranNames[][11];
extern u8 gUnknown_082082F8[];
-extern u8 gUnknown_083FFDB3[];
-extern u8 gUnknown_083FFDD3[];
-extern u8 gUnknown_083FEE5D[];
-extern u8 gUnknown_083FEE92[];
+extern u8 BattleText_Rose[];
+extern u8 BattleText_UnknownString3[];
+extern u8 BattleText_MistShroud[];
+extern u8 BattleText_GetPumped[];
extern u8 *gUnknown_08400F58[];
bool8 HealStatusConditions(struct Pokemon *mon, u32 unused, u32 healMask, u8 battleId)
@@ -68,7 +69,7 @@ bool8 HealStatusConditions(struct Pokemon *mon, u32 unused, u32 healMask, u8 bat
if (status & healMask)
{
status &= ~healMask;
- SetMonData(mon, MON_DATA_STATUS, (u8 *)&status);
+ SetMonData(mon, MON_DATA_STATUS, &status);
if (gMain.inBattle && battleId != 4)
gBattleMons[battleId].status1 &= ~healMask;
return FALSE;
@@ -196,14 +197,14 @@ void sub_803F324(int stat)
{
gBankTarget = gBankInMenu;
StringCopy(gBattleTextBuff1, gUnknown_08400F58[gUnknown_082082F8[stat]]);
- StringCopy(gBattleTextBuff2, gUnknown_083FFDB3);
- StrCpyDecodeToDisplayedStringBattle(gUnknown_083FFDD3);
+ StringCopy(gBattleTextBuff2, BattleText_Rose);
+ StrCpyDecodeToDisplayedStringBattle(BattleText_UnknownString3);
}
u8 *sub_803F378(u16 itemId)
{
int i;
- u8 *itemEffect;
+ const u8 *itemEffect;
if (itemId == ITEM_ENIGMA_BERRY)
{
@@ -218,7 +219,7 @@ u8 *sub_803F378(u16 itemId)
}
else
{
- itemEffect = (u8 *) gItemEffectTable[itemId - 13];
+ itemEffect = gItemEffectTable[itemId - 13];
}
gStringBank = gBankInMenu;
@@ -236,7 +237,7 @@ u8 *sub_803F378(u16 itemId)
else
{
gBankAttacker = gBankInMenu;
- StrCpyDecodeToDisplayedStringBattle(gUnknown_083FEE92);
+ StrCpyDecodeToDisplayedStringBattle(BattleText_GetPumped);
}
}
}
@@ -244,7 +245,7 @@ u8 *sub_803F378(u16 itemId)
if (itemEffect[3] & 0x80)
{
gBankAttacker = gBankInMenu;
- StrCpyDecodeToDisplayedStringBattle(gUnknown_083FEE5D);
+ StrCpyDecodeToDisplayedStringBattle(BattleText_MistShroud);
}
return gDisplayedStringBattle;
@@ -355,7 +356,7 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem)
if (gEvolutionTable[species].evolutions[i].param == heldItem)
{
heldItem = 0;
- SetMonData(mon, MON_DATA_HELD_ITEM, (u8 *)&heldItem);
+ SetMonData(mon, MON_DATA_HELD_ITEM, &heldItem);
targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
}
break;
@@ -695,7 +696,7 @@ void AdjustFriendship(struct Pokemon *mon, u8 event)
friendship = 0;
if (friendship > 255)
friendship = 255;
- SetMonData(mon, MON_DATA_FRIENDSHIP, (u8 *)&friendship);
+ SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship);
}
}
}
@@ -1299,16 +1300,16 @@ void SetWildMonHeldItem(void)
u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, 0);
if (gBaseStats[species].item1 == gBaseStats[species].item2)
{
- SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, (u8 *)&gBaseStats[species].item1);
+ SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &gBaseStats[species].item1);
return;
}
if (rnd > 44)
{
if (rnd <= 94)
- SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, (u8 *)&gBaseStats[species].item1);
+ SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &gBaseStats[species].item1);
else
- SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, (u8 *)&gBaseStats[species].item2);
+ SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &gBaseStats[species].item2);
}
}
}
diff --git a/src/pokemon/pokemon_data.c b/src/pokemon/pokemon_data.c
index 6414134fb..82e452158 100644
--- a/src/pokemon/pokemon_data.c
+++ b/src/pokemon/pokemon_data.c
@@ -1,26 +1,26 @@
#include "global.h"
#include "pokemon.h"
-#include "species.h"
+#include "constants/species.h"
#include "trainer.h"
-#include "abilities.h"
-#include "moves.h"
-#include "hold_effects.h"
-#include "items.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"
+#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
@@ -93,7 +93,7 @@ const u8 gUnknown_082082F2[] = {
MON_DATA_HP_EV,
MON_DATA_ATK_EV,
MON_DATA_DEF_EV,
- MON_DATA_SPD_EV,
+ MON_DATA_SPEED_EV,
MON_DATA_SPDEF_EV,
MON_DATA_SPATK_EV
};
diff --git a/src/pokemon/pokemon_icon.c b/src/pokemon/pokemon_icon.c
index 9bb3386e1..b1b462761 100644
--- a/src/pokemon/pokemon_icon.c
+++ b/src/pokemon/pokemon_icon.c
@@ -1,7 +1,7 @@
#include "global.h"
#include "graphics.h"
#include "mail_data.h"
-#include "species.h"
+#include "constants/species.h"
#include "sprite.h"
#define POKE_ICON_BASE_PAL_TAG 56000
@@ -1215,8 +1215,11 @@ u8 UpdateMonIconFrame(struct Sprite *sprite)
break;
default:
RequestSpriteCopy(
- (u8 *)sprite->images + sSpriteImageSizes[sprite->oam.shape][sprite->oam.size] * frame,
- (u8 *)OBJ_VRAM0 + sprite->oam.tileNum * TILE_SIZE_4BPP,
+ // pointer arithmetic is needed to get the correct pointer to perform the sprite copy on.
+ // because sprite->images is a struct def, it has to be casted to (u8 *) before any
+ // arithmetic can be performed.
+ (u8 *)sprite->images + (sSpriteImageSizes[sprite->oam.shape][sprite->oam.size] * frame),
+ OBJ_VRAM0 + sprite->oam.tileNum * TILE_SIZE_4BPP,
sSpriteImageSizes[sprite->oam.shape][sprite->oam.size]);
{
register u8 duration asm("r0") = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.duration;
diff --git a/src/pokemon/pokemon_menu.c b/src/pokemon/pokemon_menu.c
index 7d70e7708..d2a5197a0 100644
--- a/src/pokemon/pokemon_menu.c
+++ b/src/pokemon/pokemon_menu.c
@@ -5,13 +5,13 @@
#include "palette.h"
#include "menu.h"
#include "mail_data.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "main.h"
#include "overworld.h"
#include "menu_helpers.h"
#include "pokemon_summary_screen.h"
-#include "moves.h"
+#include "constants/moves.h"
#include "data2.h"
#include "strings.h"
#include "item_use.h"
@@ -29,6 +29,7 @@
#include "fieldmap.h"
#include "item_menu.h"
#include "player_pc.h"
+#include "ewram.h"
/*
Pokemon menu:
@@ -49,7 +50,6 @@ extern u8 gUnknown_0202E8F5;
extern u8 gUnknown_0202E8F6;
extern u8 gUnknown_02038561;
extern u16 gUnknown_0202E8F8;
-extern u8 ewram[];
extern void (*gUnknown_03004AE4)(u8 taskID, u16 itemID, TaskFunc func);
extern TaskFunc gUnknown_03005CF0;
@@ -347,10 +347,10 @@ static void sub_8089F44(u8 taskID)
{
if (!gPaletteFade.active)
{
- u8 spriteID = gSprites[gTasks[taskID].data[3] >> 8].data0;
+ u8 spriteID = gSprites[gTasks[taskID].data[3] >> 8].data[0];
DestroyTask(taskID);
ewram1B000_alt.unk262 = 1;
- ShowPokemonSummaryScreen(gPlayerParty, spriteID, gPlayerPartyCount - 1, sub_8089F14, 0);
+ ShowPokemonSummaryScreen(gPlayerParty, spriteID, gPlayerPartyCount - 1, sub_8089F14, PSS_MODE_NORMAL);
}
}
@@ -435,7 +435,7 @@ static void sub_808A1E0(u8 taskID)
static void sub_808A228(u8 taskID)
{
- if (ItemIsMail(gScriptItemId) && gUnknown_0202E8F4 != 0)
+ if (ItemIsMail(gSpecialVar_ItemId) && gUnknown_0202E8F4 != 0)
{
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
gTasks[taskID].func = sub_808A180;
@@ -451,7 +451,7 @@ static void sub_808A228(u8 taskID)
static void sub_808A2AC(u8 taskID)
{
if (!gPaletteFade.active)
- PartyMenuTryGiveMonHeldItem(taskID, gScriptItemId, sub_808A228);
+ PartyMenuTryGiveMonHeldItem(taskID, gSpecialVar_ItemId, sub_808A228);
}
static void sub_808A2DC(u8 taskID)
@@ -463,7 +463,7 @@ static void sub_808A2DC(u8 taskID)
static void sub_808A330(u8 taskID)
{
- PartyMenuTryGiveMonHeldItem(taskID, gScriptItemId, sub_808A2DC);
+ PartyMenuTryGiveMonHeldItem(taskID, gSpecialVar_ItemId, sub_808A2DC);
}
static void sub_808A34C(void)
@@ -507,7 +507,7 @@ static void sub_808A3A4(void)
void sub_808A3F8(void)
{
- if (ItemIsMail(gScriptItemId))
+ if (ItemIsMail(gSpecialVar_ItemId))
{
u8 taskID = CreateTask(sub_808A330, 0);
gPaletteFade.bufferTransferDisabled = 1;
@@ -523,7 +523,7 @@ void sub_808A3F8(void)
DestroyTask(taskID);
}
gPaletteFade.bufferTransferDisabled = 1;
- if (gScriptItemId)
+ if (gSpecialVar_ItemId)
{
SetPartyMenuSettings(PARTY_MENU_TYPE_STANDARD, 0xFF, sub_808A2AC, 0xFF);
SetMainCallback2(sub_808A358);
@@ -554,7 +554,7 @@ static void sub_808A4D4(void)
void sub_808A520(void)
{
gPaletteFade.bufferTransferDisabled = 1;
- if (gScriptResult == 0)
+ if (gSpecialVar_Result == 0)
{
if (gUnknown_0202E8F8)
RemoveBagItem(gUnknown_0202E8F8, 1);
@@ -572,7 +572,7 @@ static void sub_808A5BC(u8 taskID)
{
if (!gPaletteFade.active)
{
- DisplayGiveHeldItemMessage(gLastFieldPokeMenuOpened, gScriptItemId, 0);
+ DisplayGiveHeldItemMessage(gLastFieldPokeMenuOpened, gSpecialVar_ItemId, 0);
gTasks[taskID].func = sub_808A1E0;
}
}
@@ -722,7 +722,7 @@ static void PokemonMenu_FieldMove(u8 taskID)
PrintPartyMenuPromptText(sFieldMoveFuncs[tFieldMoveId].field_1, 0);
gTasks[taskID].func = sub_808ABF4;
}
- else if (tFieldMoveId <= 7 && FlagGet(BADGE01_GET + tFieldMoveId) != TRUE)
+ 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);
@@ -915,7 +915,7 @@ static bool8 SetUpFieldMove_Waterfall(void)
static void sub_808AE8C(void)
{
u8 i;
- u8 arg = gScriptItemId - 33;
+ u8 arg = gSpecialVar_ItemId - 33;
for (i = 0; i < 6; i++)
{
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES))
@@ -923,7 +923,7 @@ static void sub_808AE8C(void)
sub_806D668(i);
if (GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) || !CanMonLearnTMHM(&gPlayerParty[i], arg))
sub_806BC3C(i, 0x9A);
- else if (pokemon_has_move(&gPlayerParty[i], ItemIdToBattleMoveId(gScriptItemId)))
+ else if (pokemon_has_move(&gPlayerParty[i], ItemIdToBattleMoveId(gSpecialVar_ItemId)))
sub_806BC3C(i, 0xA8);
else
sub_806BC3C(i, 0x8C);
@@ -938,7 +938,7 @@ static void sub_808AF20(void)
{
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES))
{
- if (GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) || !GetEvolutionTargetSpecies(&gPlayerParty[i], 3, gScriptItemId))
+ if (GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) || !GetEvolutionTargetSpecies(&gPlayerParty[i], 3, gSpecialVar_ItemId))
{
sub_806D668(i);
sub_806BC3C(i, 0);
@@ -955,7 +955,7 @@ static void sub_808AF80(void)
{
if (gUnknown_02038561 == 0)
{
- switch (CheckIfItemIsTMHMOrEvolutionStone(gScriptItemId))
+ switch (CheckIfItemIsTMHMOrEvolutionStone(gSpecialVar_ItemId))
{
case 1:
sub_808AE8C();
@@ -983,7 +983,7 @@ void sub_808B020(void)
switch (gUnknown_02038561)
{
case 0:
- if (CheckIfItemIsTMHMOrEvolutionStone(gScriptItemId) == 1)
+ if (CheckIfItemIsTMHMOrEvolutionStone(gSpecialVar_ItemId) == 1)
SetPartyMenuSettings(PARTY_MENU_TYPE_STANDARD, 0, sub_808B0C0, 20);
else
SetPartyMenuSettings(PARTY_MENU_TYPE_STANDARD, 0, sub_808B0C0, 3);
@@ -1013,11 +1013,11 @@ void sub_808B0C0(u8 taskID)
{
sub_806D5A4();
if (gUnknown_02038561 == 0)
- gUnknown_03004AE4(taskID, gScriptItemId, sub_808B224);
+ gUnknown_03004AE4(taskID, gSpecialVar_ItemId, sub_808B224);
if (gUnknown_02038561 == 1)
{
PlaySE(SE_SELECT);
- PartyMenuTryGiveMonHeldItem(taskID, gScriptItemId, sub_808B2EC);
+ PartyMenuTryGiveMonHeldItem(taskID, gSpecialVar_ItemId, sub_808B2EC);
}
if (gUnknown_02038561 == 3)
{
@@ -1042,7 +1042,7 @@ void sub_808B0C0(u8 taskID)
static void sub_808B1EC(u8 taskID)
{
if (!gPaletteFade.active)
- gUnknown_03004AE4(taskID, gScriptItemId, sub_808B224);
+ gUnknown_03004AE4(taskID, gSpecialVar_ItemId, sub_808B224);
}
static void sub_808B224(u8 taskID)
@@ -1120,7 +1120,7 @@ static void sub_808B3EC(void)
IntrCallback callback;
gPaletteFade.bufferTransferDisabled = 1;
- if (gScriptResult == 0)
+ if (gSpecialVar_Result == 0)
{
if (gUnknown_0202E8F8)
RemoveBagItem(gUnknown_0202E8F8, 1);
@@ -1143,7 +1143,7 @@ static void sub_808B4A4(u8 taskID)
{
if (!gPaletteFade.active)
{
- DisplayGiveHeldItemMessage(gLastFieldPokeMenuOpened, gScriptItemId, 1);
+ DisplayGiveHeldItemMessage(gLastFieldPokeMenuOpened, gSpecialVar_ItemId, 1);
gTasks[taskID].func = sub_808B4EC;
}
}
diff --git a/src/pokemon/pokemon_size_record.c b/src/pokemon/pokemon_size_record.c
index f2222bd3b..f92a95bfb 100644
--- a/src/pokemon/pokemon_size_record.c
+++ b/src/pokemon/pokemon_size_record.c
@@ -3,7 +3,7 @@
#include "data2.h"
#include "event_data.h"
#include "pokedex.h"
-#include "species.h"
+#include "constants/species.h"
#include "string_util.h"
#include "strings2.h"
#include "text.h"
@@ -15,7 +15,7 @@ struct UnknownStruct
u16 unk4;
};
-extern u16 gScriptResult;
+extern u16 gSpecialVar_Result;
static const struct UnknownStruct sBigMonSizeTable[] =
{
@@ -46,7 +46,7 @@ static u32 GetMonSizeHash(struct Pokemon *pkmn)
u16 hpIV = GetMonData(pkmn, MON_DATA_HP_IV) & 0xF;
u16 attackIV = GetMonData(pkmn, MON_DATA_ATK_IV) & 0xF;
u16 defenseIV = GetMonData(pkmn, MON_DATA_DEF_IV) & 0xF;
- u16 speedIV = GetMonData(pkmn, MON_DATA_SPD_IV) & 0xF;
+ u16 speedIV = GetMonData(pkmn, MON_DATA_SPEED_IV) & 0xF;
u16 spAtkIV = GetMonData(pkmn, MON_DATA_SPATK_IV) & 0xF;
u16 spDefIV = GetMonData(pkmn, MON_DATA_SPDEF_IV) & 0xF;
u32 hibyte = ((attackIV ^ defenseIV) * hpIV) ^ (personality & 0xFF);
@@ -104,13 +104,13 @@ static void FormatMonSizeRecord(u8 *string, u32 size)
static u8 CompareMonSize(u16 species, u16 *sizeRecord)
{
- if (gScriptResult == 0xFF)
+ if (gSpecialVar_Result == 0xFF)
{
return 0;
}
else
{
- struct Pokemon *pkmn = &gPlayerParty[gScriptResult];
+ struct Pokemon *pkmn = &gPlayerParty[gSpecialVar_Result];
// UB: Too few arguments for function 'GetMonData'
if (GetMonData(pkmn, MON_DATA_IS_EGG) == TRUE || GetMonData(pkmn, MON_DATA_SPECIES) != species)
@@ -169,7 +169,7 @@ void CompareShroomishSize(void)
{
u16 *sizeRecord = GetVarPointer(VAR_SHROOMISH_SIZE_RECORD);
- gScriptResult = CompareMonSize(SPECIES_SHROOMISH, sizeRecord);
+ gSpecialVar_Result = CompareMonSize(SPECIES_SHROOMISH, sizeRecord);
}
void InitBarboachSizeRecord(void)
@@ -188,7 +188,7 @@ void CompareBarboachSize(void)
{
u16 *sizeRecord = GetVarPointer(VAR_BARBOACH_SIZE_RECORD);
- gScriptResult = CompareMonSize(SPECIES_BARBOACH, sizeRecord);
+ gSpecialVar_Result = CompareMonSize(SPECIES_BARBOACH, sizeRecord);
}
void GiveGiftRibbonToParty(u8 index, u8 ribbonId)
@@ -212,6 +212,6 @@ void GiveGiftRibbonToParty(u8 index, u8 ribbonId)
}
}
if (gotRibbon)
- FlagSet(SYS_RIBBON_GET);
+ FlagSet(FLAG_SYS_RIBBON_GET);
}
}
diff --git a/src/pokemon/pokemon_storage_system.c b/src/pokemon/pokemon_storage_system.c
index 5e97523e2..4a68b846a 100644
--- a/src/pokemon/pokemon_storage_system.c
+++ b/src/pokemon/pokemon_storage_system.c
@@ -2,6 +2,7 @@
#include "pokemon_storage_system.h"
#include "menu.h"
#include "string_util.h"
+#include "ewram.h"
struct StorageAction {
u8 *text;
@@ -10,15 +11,8 @@ struct StorageAction {
extern const struct StorageAction gUnknown_083B6DF4[];
-extern const u8 unk_2000000[];
-
EWRAM_DATA struct PokemonStorage gPokemonStorage = {0};
-#define gUnk2002694 (u8 *)(&unk_2000000[0x2694])
-#define gUnk20026A6 (u8 *)(&unk_2000000[0x26a6])
-#define gUnk20011fa (u8 *)(&unk_2000000[0x11fa])
-#define gUnk20026e4 (u8 *)(&unk_2000000[0x26e4])
-
void sub_8098898(u8 index) {
u8 *ptr;
diff --git a/src/pokemon/pokemon_summary_screen.c b/src/pokemon/pokemon_summary_screen.c
index 00a0bea29..532f30aaa 100644
--- a/src/pokemon/pokemon_summary_screen.c
+++ b/src/pokemon/pokemon_summary_screen.c
@@ -1,20 +1,3354 @@
#include "global.h"
-#include "pokemon_summary_screen.h"
+#include "battle.h"
+#include "data2.h"
+#include "decompress.h"
+#include "event_data.h"
+#include "ewram.h"
+#include "item.h"
+#include "constants/items.h"
+#include "learn_move.h"
#include "link.h"
+#include "m4a.h"
+#include "main.h"
#include "menu.h"
+#include "menu_helpers.h"
+#include "overworld.h"
+#include "palette.h"
+#include "party_menu.h"
+#include "pokeball.h"
#include "pokemon.h"
+#include "pokemon_summary_screen.h"
#include "region_map.h"
+#include "constants/songs.h"
+#include "sound.h"
+#include "constants/species.h"
+#include "sprite.h"
#include "string_util.h"
+#include "strings.h"
#include "strings2.h"
+#include "task.h"
#include "tv.h"
+#include "unknown_task.h"
+
+static void sub_809FC0C(void);
+static void sub_809FEB8(void);
+static void sub_809F63C(struct Pokemon *);
+static void sub_809F650(struct Pokemon *);
+static void sub_809F664(struct Pokemon *);
+static void sub_809FE6C(struct Pokemon *);
+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_80A1D84(struct Pokemon *);
+static void sub_80A18C4(void);
+static bool8 LoadPokemonSummaryScreenGraphics(void);
+static bool8 MonKnowsMultipleMoves(struct Pokemon *);
+static void PrintSummaryWindowHeaderText(void);
+static void sub_80A1DCC(struct Pokemon *);
+static void sub_809FE80(void);
+static void sub_80A00A4(void);
+static void sub_80A0390(void);
+extern u8 sub_80A1808(struct Pokemon *);
+static void sub_80A1F98(s32, u8, u8, u8, u8, u16, s32);
+static void sub_80A0958(struct Pokemon *);
+static void PokemonSummaryScreen_PrintTrainerMemo(struct Pokemon *, u8, u8);
+static void PokemonSummaryScreen_PrintEggTrainerMemo(struct Pokemon *, u8, u8);
+static void sub_80A1EF8(const u8 *, u8, u8, u16, s32);
+static void sub_80A1F48(const u8 *, u8, u8, u8, u16);
+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 SummaryScreenHandleAButton(u8);
+static void SummaryScreenHandleUpDownInput(u8, s8);
+static bool8 sub_809F7D0(u8);
+static void sub_809F9D0(u8, u8);
+static void sub_809EAC8(u8);
+static void sub_809E534(u8);
+static void sub_809E83C(u8, s8);
+static void sub_80A1B40(u8);
+static void sub_80A2078(int);
+static void sub_809E3FC(u8);
+static void SummaryScreenHandleKeyInput(u8);
+static void sub_80A1B1C(u8);
+static void sub_80A16CC(u8);
+static void sub_80A1A30(u8);
+static void DrawSummaryScreenNavigationDots(void);
+static void sub_80A00F4(u8);
+static void sub_80A029C(struct Pokemon *);
+static void sub_809FBE4(void);
+static void sub_80A1500(u8);
+static void sub_80A1334(u8);
+extern void sub_809F43C(u8);
+extern s8 sub_809F284(s8);
+extern s8 sub_809F3CC(s8);
+static bool8 sub_809F5F8(void);
+static void sub_80A1DE8(struct Pokemon *);
+static u8 sub_809F6B4(struct Pokemon *, u8 *);
+static void DrawPokerusSurvivorDot(struct Pokemon *);
+static void sub_80A12D0(s8);
+static void sub_809FAC8(struct Pokemon *);
+static void SummaryScreenHandleLeftRightInput(u8, s8);
+static void sub_809E8F0();
+static void sub_80A1654(s8, u8);
+static void sub_80A1488(s8, u8);
+static void sub_809FC34(struct Pokemon *);
+static void sub_809FF64(struct Pokemon *);
+static void sub_80A1918(u8, u8);
+static void sub_80A198C(u8, u8, u8, u8);
+static u16 GetMonMove(struct Pokemon *, u8);
+static void sub_80A04CC(u16);
+static void sub_80A057C(u16);
+static void sub_80A0498(u16);
+static void sub_80A046C(u16);
+static void sub_80A20A8(u8);
+static void sub_809F678(struct Pokemon *);
+static void sub_80A1BC0(struct Sprite *sprite);
+static void sub_80A1888(struct Sprite *);
+static void sub_80A0428(struct Pokemon *, u8 *);
+static void sub_80A18E4(u8);
+static u8 *sub_80A1E58(u8 *, u8);
+static void sub_80A0A2C(struct Pokemon *, u8, u8);
+static void sub_80A1FF8(const u8 *, u8, u8, u8);
+
+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 gUnknown_03004280;
+extern u16 gUnknown_030041B4;
+extern u16 gUnknown_030042C0;
+extern u16 gUnknown_03004288;
+extern u16 gUnknown_030041B0;
+extern TaskFunc gUnknown_03005CF0;
+extern struct Sprite *gUnknown_020384F4;
+extern struct SpriteTemplate gUnknown_02024E8C;
+
+extern const u8 gStatusPal_Icons[];
+extern const u8 gStatusGfx_Icons[];
+extern const u8 gMenuSummaryPal[];
+extern const u8 gMenuSummaryGfx[];
+extern const u8 gMoveTypes_Gfx[];
+extern const u8 gMoveTypes_Pal[];
+extern const u8 gStatusScreen_Pal[];
+extern const u8 gStatusScreen_Tilemap[];
+extern const u8 gUnknown_08E74688[];
+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[];
+extern const struct ContestMove gContestMoves[];
+extern const struct ContestEffect gContestEffects[];
+extern const u16 gUnknown_08E94510[];
+extern const u16 gUnknown_08E94550[];
+extern const u16 gUnknown_08E94590[];
+extern const u8 gUnknown_08E73E88[];
+
+#if ENGLISH
+#include "../data/text/move_descriptions_en.h"
+#include "../data/text/nature_names_en.h"
+#elif GERMAN
+#include "../data/text/move_descriptions_de.h"
+#include "../data/text/nature_names_de.h"
+#endif
+
+static const u8 * const sPageHeaderTexts[] = {
+ gEmptyString_81E72B0,
+ OtherText_PokeInfo,
+ OtherText_PokeSkills,
+ OtherText_BattleMoves,
+ OtherText_ContestMoves,
+ OtherText_Switch,
+ OtherText_Info,
+ gOtherText_CancelNoTerminator,
+};
+
+static const union AffineAnimCmd sUnusedSpriteAffineAnim[] = {
+ AFFINEANIMCMD_FRAME(0xFF00, 0x100, 0, 0),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd *const sUnsuedSpriteAffineAnimTable[] = {
+ sUnusedSpriteAffineAnim,
+};
+
+static const struct OamData sOamData_83C109C = {
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const union AnimCmd sSpriteAnim_83C10A4[] = {
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C10AC[] = {
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C10B4[] = {
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C10BC[] = {
+ ANIMCMD_FRAME(24, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C10C4[] = {
+ ANIMCMD_FRAME(32, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C10CC[] = {
+ ANIMCMD_FRAME(40, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C10D4[] = {
+ ANIMCMD_FRAME(48, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C10DC[] = {
+ ANIMCMD_FRAME(56, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C10E4[] = {
+ ANIMCMD_FRAME(64, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C10EC[] = {
+ ANIMCMD_FRAME(72, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C10F4[] = {
+ ANIMCMD_FRAME(80, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C10FC[] = {
+ ANIMCMD_FRAME(88, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C1104[] = {
+ ANIMCMD_FRAME(96, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C110C[] = {
+ ANIMCMD_FRAME(104, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C1114[] = {
+ ANIMCMD_FRAME(112, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C111C[] = {
+ ANIMCMD_FRAME(120, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C1124[] = {
+ ANIMCMD_FRAME(128, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C112C[] = {
+ ANIMCMD_FRAME(136, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C1134[] = {
+ ANIMCMD_FRAME(144, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C113C[] = {
+ ANIMCMD_FRAME(152, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C1144[] = {
+ ANIMCMD_FRAME(160, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C114C[] = {
+ ANIMCMD_FRAME(168, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C1154[] = {
+ ANIMCMD_FRAME(176, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const sSpriteAnimTable_83C115C[] = {
+ sSpriteAnim_83C10A4,
+ sSpriteAnim_83C10AC,
+ sSpriteAnim_83C10B4,
+ sSpriteAnim_83C10BC,
+ sSpriteAnim_83C10C4,
+ sSpriteAnim_83C10CC,
+ sSpriteAnim_83C10D4,
+ sSpriteAnim_83C10DC,
+ sSpriteAnim_83C10E4,
+ sSpriteAnim_83C10EC,
+ sSpriteAnim_83C10F4,
+ sSpriteAnim_83C10FC,
+ sSpriteAnim_83C1104,
+ sSpriteAnim_83C110C,
+ sSpriteAnim_83C1114,
+ sSpriteAnim_83C111C,
+ sSpriteAnim_83C1124,
+ sSpriteAnim_83C112C,
+ sSpriteAnim_83C1134,
+ sSpriteAnim_83C113C,
+ sSpriteAnim_83C1144,
+ sSpriteAnim_83C114C,
+ sSpriteAnim_83C1154,
+};
+
+static const struct CompressedSpriteSheet sUnknown_083C11B8 = { gMoveTypes_Gfx, 0x1700, 30002 };
+
+static const struct SpriteTemplate sSpriteTemplate_83C11C0 = {
+ .tileTag = 30002,
+ .paletteTag = 30002,
+ .oam = &sOamData_83C109C,
+ .anims = sSpriteAnimTable_83C115C,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const u8 sUnknown_PaletteNums[] = { 0xD, 0xD, 0xE, 0xE, 0xD, 0xD, 0xF, 0xE, 0xD, 0xF, 0xD, 0xE, 0xF, 0xD, 0xE, 0xE, 0xF, 0xD, 0xD, 0xE, 0xE, 0xF, 0xD };
+
+static const struct OamData sOamData_83C11F0 = {
+ .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,
+};
+
+static const union AnimCmd sSpriteAnim_83C11F8[] = {
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C1200[] = {
+ ANIMCMD_FRAME(4, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C1208[] = {
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C1210[] = {
+ ANIMCMD_FRAME(12, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C1218[] = {
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C1220[] = {
+ ANIMCMD_FRAME(16, 0, .hFlip = TRUE),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C1228[] = {
+ ANIMCMD_FRAME(20, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C1230[] = {
+ ANIMCMD_FRAME(24, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C1238[] = {
+ ANIMCMD_FRAME(24, 0, .hFlip = TRUE),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C1240[] = {
+ ANIMCMD_FRAME(28, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const sSpriteAnimTable_83C1248[] = {
+ sSpriteAnim_83C11F8,
+ sSpriteAnim_83C1200,
+ sSpriteAnim_83C1208,
+ sSpriteAnim_83C1210,
+ sSpriteAnim_83C1218,
+ sSpriteAnim_83C1220,
+ sSpriteAnim_83C1228,
+ sSpriteAnim_83C1230,
+ sSpriteAnim_83C1238,
+ sSpriteAnim_83C1240,
+};
+
+static const struct CompressedSpriteSheet sUnknown_083C1270 = { gMenuSummaryGfx, 0x400, 30000 };
+static const struct CompressedSpritePalette sUnknown_083C1278 = { gMenuSummaryPal, 30000 };
+
+static const struct SpriteTemplate sSpriteTemplate_83C1280 = {
+ .tileTag = 30000,
+ .paletteTag = 30000,
+ .oam = &sOamData_83C11F0,
+ .anims = sSpriteAnimTable_83C1248,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const struct OamData sOamData_83C1298 = {
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 3,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const union AnimCmd sSpriteAnim_83C12A0[] = {
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C12A8[] = {
+ ANIMCMD_FRAME(4, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C12B0[] = {
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C12B8[] = {
+ ANIMCMD_FRAME(12, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C12C0[] = {
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C12C8[] = {
+ ANIMCMD_FRAME(20, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83C12D0[] = {
+ ANIMCMD_FRAME(24, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const sSpriteAnimTable_83C12D8[] = {
+ sSpriteAnim_83C12A0,
+ sSpriteAnim_83C12A8,
+ sSpriteAnim_83C12B0,
+ sSpriteAnim_83C12B8,
+ sSpriteAnim_83C12C0,
+ sSpriteAnim_83C12C8,
+ sSpriteAnim_83C12D0,
+};
+
+static const struct CompressedSpriteSheet sUnknown_083C12F4 = { gStatusGfx_Icons, 0x380, 30001 };
+static const struct CompressedSpritePalette sUnknown_083C12FC = { gStatusPal_Icons, 30001 };
+
+static const struct SpriteTemplate sSpriteTemplate_83C1304 = {
+ .tileTag = 30001,
+ .paletteTag = 30001,
+ .oam = &sOamData_83C1298,
+ .anims = sSpriteAnimTable_83C12D8,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const u16 sSummaryScreenMonMarkingsPalette[] = INCBIN_U16("graphics/summary_screen/mon_markings.gbapal");
+
+#if ENGLISH
+static const u16 gSummaryScreenTextTiles[] = INCBIN_U16("graphics/summary_screen/text.4bpp");
+#elif GERMAN
+extern const u16 gSummaryScreenTextTiles[];
+#endif
+
+static const u16 sSummaryScreenButtonTiles[] = INCBIN_U16("graphics/summary_screen/buttons.4bpp");
+
+static const u16 sUnknown_083C157C[] = { RGB(26, 26, 23) };
+static const u16 sUnknown_083C157E[] = { RGB(30, 30, 27) };
+
+static void (*const sUnknown_083C1580[])(void) = {
+ sub_809FC0C,
+ sub_809FEB8,
+};
+
+static void (*const sUnknown_083C1588[])(struct Pokemon *) = {
+ sub_809F63C,
+ sub_809F650,
+ sub_809F664,
+ sub_809F664,
+};
+
+static void (*const sUnknown_083C1598[])(struct Pokemon *) = {
+ sub_809FE6C,
+ sub_80A0090,
+ sub_80A015C,
+ sub_80A015C,
+};
+
+static const u8 sDoubleBattlePartyOrder[] = { 0, 2, 3, 1, 4, 5 };
+
+static const u8 sUnknown_083C15AE[] = _("{STR_VAR_1}{CLEAR_TO 64}");
+static const u8 sUnknown_083C15B4[] = _("{STR_VAR_1}{CLEAR_TO 72}");
+
+asm(".align 2"); // TODO: this array is probably not correctly-typed
+static const u8 sUnknown_083C15BC[] = {
+ 9, 1, 0, 2,
+ 10, 3, 0, 4,
+ 8, 5, 0, 6,
+ 11, 7, 0, 8,
+ 14, 9, 0, 10,
+ 12, 11, 0, 12,
+ 13, 13, 0, 14,
+ -1, 15, 0, 10,
+};
+
+
+void sub_809D844(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+void sub_809D85C(void)
+{
+ REG_BG1HOFS = gUnknown_030042C0;
+ REG_BG1VOFS = gUnknown_030041B4;
+ REG_BG2HOFS = gUnknown_03004288;
+ REG_BG2VOFS = gUnknown_03004280;
+ REG_BG3HOFS = gUnknown_030041B0;
+ REG_BG3VOFS = gUnknown_030041B8;
+
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+void ShowPokemonSummaryScreen(struct Pokemon *party, u8 monIndex, u8 maxMonIndex, MainCallback callback, u8 mode)
+{
+ gPaletteFade.bufferTransferDisabled = 1;
+
+ pssData.monList.partyMons = party;
+ pssData.mode = mode;
+ pssData.monIndex = monIndex;
+ pssData.maxMonIndex = maxMonIndex;
+ pssData.callback = callback;
+ pssData.loadGfxState = 0;
+ pssData.selectedMoveIndex = 4;
+ pssData.moveToLearn = 0;
+ pssData.bgToggle = 0;
+ pssData.disableMoveOrderEditing = FALSE;
+
+ if (mode >= PSS_MODE_PC_NORMAL)
+ {
+ pssData.usingPC = TRUE;
+ }
+ else
+ {
+ pssData.usingPC = FALSE;
+ }
+
+ switch (mode)
+ {
+ case PSS_MODE_NORMAL:
+ case PSS_MODE_PC_NORMAL:
+ pssData.firstPage = PSS_PAGE_INFO;
+ pssData.lastPage = PSS_PAGE_CONTEST_MOVES;
+ pssData.unk77 = 0;
+ pssData.unk78 = 0;
+ pssData.headerTextId = 1;
+ pssData.headerActionTextId = 7;
+ break;
+ case PSS_MODE_NO_MOVE_ORDER_EDIT:
+ pssData.firstPage = PSS_PAGE_INFO;
+ pssData.lastPage = PSS_PAGE_CONTEST_MOVES;
+ pssData.unk77 = 0;
+ pssData.unk78 = 0;
+ pssData.headerTextId = 1;
+ pssData.headerActionTextId = 7;
+ pssData.disableMoveOrderEditing = TRUE;
+ break;
+ case PSS_MODE_SELECT_MOVE:
+ pssData.firstPage = PSS_PAGE_BATTLE_MOVES;
+ pssData.lastPage = PSS_PAGE_CONTEST_MOVES;
+ pssData.unk77 = 1;
+ pssData.unk78 = 1;
+ pssData.headerTextId = 3;
+ pssData.headerActionTextId = 0;
+ pssData.selectedMoveIndex = 0;
+ break;
+ case PSS_MODE_MOVES_ONLY:
+ case PSS_MODE_PC_MOVES_ONLY:
+ pssData.firstPage = PSS_PAGE_BATTLE_MOVES;
+ pssData.lastPage = PSS_PAGE_CONTEST_MOVES;
+ pssData.unk77 = 1;
+ pssData.unk78 = 1;
+ break;
+ }
+
+ pssData.page = pssData.firstPage;
+ SetMainCallback2(sub_809DE44);
+}
+
+void ShowSelectMovePokemonSummaryScreen(struct Pokemon *party, u8 monIndex, u8 maxMonIndex, MainCallback callback, u16 move)
+{
+ ShowPokemonSummaryScreen(party, monIndex, maxMonIndex, callback, PSS_MODE_SELECT_MOVE);
+ pssData.moveToLearn = move;
+}
+
+void sub_809DA1C(void)
+{
+ switch (pssData.mode)
+ {
+ case PSS_MODE_NORMAL:
+ case PSS_MODE_PC_NORMAL:
+ pssData.inputHandlingTaskId = CreateTask(SummaryScreenHandleKeyInput, 0);
+ break;
+ case PSS_MODE_NO_MOVE_ORDER_EDIT:
+ pssData.inputHandlingTaskId = CreateTask(SummaryScreenHandleKeyInput, 0);
+ break;
+ case PSS_MODE_SELECT_MOVE:
+ case PSS_MODE_UNKNOWN:
+ pssData.inputHandlingTaskId = CreateTask(sub_809EB40, 0);
+ break;
+ case PSS_MODE_MOVES_ONLY:
+ case PSS_MODE_PC_MOVES_ONLY:
+ pssData.inputHandlingTaskId = CreateTask(sub_809E3FC, 0);
+ break;
+ }
+}
+
+bool8 sub_809DA84(void)
+{
+ const u16 *src;
+ void *dest;
+
+ switch (gMain.state)
+ {
+ case 0:
+ SetVBlankCallback(NULL);
+ ResetSpriteData();
+ gMain.state++;
+ break;
+ case 1:
+ remove_some_task();
+ gMain.state++;
+ break;
+ case 2:
+ FreeAllSpritePalettes();
+ gMain.state++;
+ break;
+ case 3:
+ dest = (void *)VRAM;
+ DmaClearLarge(3, dest, 0x10000, 0x1000, 32);
+ gMain.state++;
+ break;
+ case 4:
+ sub_809DE64();
+ gMain.state++;
+ break;
+ case 5:
+ SetUpWindowConfig(&gWindowConfig_81E6E6C);
+ gMain.state++;
+ break;
+ case 6:
+ MultistepInitMenuWindowBegin(&gWindowConfig_81E6E6C);
+ gMain.state++;
+ break;
+ case 7:
+ if (MultistepInitMenuWindowContinue())
+ {
+ gMain.state++;
+ }
+ break;
+ case 8:
+ sub_809DA1C();
+ 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);
+
+ pssData.loadGfxState = 0;
+ gMain.state++;
+ break;
+ case 10:
+ if (LoadPokemonSummaryScreenGraphics())
+ {
+ pssData.loadGfxState = 0;
+ gMain.state++;
+ }
+ break;
+ case 11:
+ sub_80A18C4();
+ gMain.state++;
+ break;
+ case 12:
+ sub_809F678(&pssData.loadedMon);
+ if (!GetMonStatusAndPokerus(&pssData.loadedMon))
+ {
+ sub_80A12D0(0);
+ }
+ else
+ {
+ sub_80A12D0(10);
+ }
+
+ DrawPokerusSurvivorDot(&pssData.loadedMon);
+ gMain.state++;
+ break;
+ case 13:
+ sub_80A1950();
+ sub_80A1D84(&pssData.loadedMon);
+ gMain.state++;
+ break;
+ case 14:
+ sub_80A1DE8(&pssData.loadedMon);
+ pssData.loadGfxState = 0;
+ gMain.state++;
+ break;
+ case 15:
+ if ((pssData.monSpriteId = sub_809F6B4(&pssData.loadedMon, &pssData.loadGfxState)) != 0xFF)
+ {
+ pssData.loadGfxState = 0;
+ gMain.state++;
+ }
+ break;
+ case 16:
+ sub_809E044();
+ DrawSummaryScreenNavigationDots();
+ gMain.state++;
+ break;
+ case 17:
+ if (pssData.page <= PSS_PAGE_SKILLS)
+ {
+ sUnknown_083C1580[pssData.page]();
+ }
+
+ gMain.state++;
+ break;
+ case 18:
+ sub_809FAC8(&pssData.loadedMon);
+ gMain.state++;
+ break;
+ case 19:
+ sUnknown_083C1598[pssData.page](&pssData.loadedMon);
+ gMain.state++;
+ break;
+ case 20:
+ if (GetMonData(&pssData.loadedMon, MON_DATA_IS_EGG))
+ {
+ gUnknown_030041B0 = 256;
+ }
+ else
+ {
+ gUnknown_030041B0 = 0;
+ }
+
+ gMain.state++;
+ break;
+ case 21:
+ sub_809EBC4();
+ if (pssData.selectedMoveIndex != 0)
+ {
+ sub_80A1488(0, 0);
+ sub_80A1654(0, 0);
+ }
+ else
+ {
+ sub_80A1488(10, 0);
+ sub_80A1654(10, 0);
+ }
+
+ PrintSummaryWindowHeaderText();
+ gMain.state++;
+ break;
+ case 22:
+ if (sub_8055870() != TRUE)
+ {
+ gMain.state++;
+ }
+ break;
+ default:
+ SetVBlankCallback(sub_809D85C);
+ BeginHardwarePaletteFade(0xFF, 0, 16, 0, 1);
+ SetMainCallback2(sub_809D844);
+ gPaletteFade.bufferTransferDisabled = 0;
+ return TRUE;
+ break;
+ }
+
+ return FALSE;
+}
+
+static void sub_809DE44(void)
+{
+ while (sub_809DA84() != TRUE && sub_80F9344() != TRUE);
+}
+
+static void sub_809DE64(void)
+{
+ REG_BG0CNT = 0x1E08;
+ REG_BG1CNT = 0x4801;
+ REG_BG2CNT = 0x4A02;
+ REG_BG3CNT = 0x5C03;
+
+ gUnknown_030042C0 = 0;
+ gUnknown_030041B4 = 0;
+ gUnknown_03004288 = 0;
+ gUnknown_03004280 = 0;
+ gUnknown_030041B0 = 0;
+ gUnknown_030041B8 = 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_BLDCNT = 0;
+ REG_DISPCNT = 0x1F40;
+}
+
+static bool8 LoadPokemonSummaryScreenGraphics(void)
+{
+ switch (pssData.loadGfxState)
+ {
+ case 0:
+ LZDecompressVram(gStatusScreen_Gfx, (void *)VRAM + 0);
+ break;
+ case 1:
+ CpuSet(gUnknown_08E73508, (void *)VRAM + 0xE000, 0x400);
+ break;
+ case 2:
+ LZDecompressVram(gUnknown_08E74E88, (void *)VRAM + 0xE800);
+ break;
+ case 3:
+ LZDecompressVram(gStatusScreen_Tilemap, (void *)VRAM + 0x4800);
+ break;
+ case 4:
+ CpuSet(gUnknown_08E73E88, (void *)VRAM + 0x5800, 0x400);
+ break;
+ case 5:
+ CpuSet(gUnknown_08E74688, (void *)VRAM + 0x6800, 0x400);
+ break;
+ case 6:
+ LoadCompressedPalette(gStatusScreen_Pal, 0, 160);
+ break;
+ case 7:
+ LoadCompressedObjectPic(&sUnknown_083C11B8);
+ break;
+ case 8:
+ LoadCompressedObjectPic(&sUnknown_083C1270);
+ break;
+ case 9:
+ LoadCompressedObjectPic(&sUnknown_083C12F4);
+ break;
+ case 10:
+ LoadCompressedObjectPalette(&sUnknown_083C12FC);
+ break;
+ case 11:
+ LoadCompressedObjectPalette(&sUnknown_083C1278);
+ break;
+ case 12:
+ LoadCompressedPalette(gMoveTypes_Pal, 464, 96);
+ pssData.loadGfxState = 0;
+ return TRUE;
+ }
+
+ pssData.loadGfxState++;
+ return FALSE;
+}
+
+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(gFontDefaultPalette, 240, 32);
+ LoadPalette(&gUnknownPalette_81E6692[6], 249, 2);
+}
+
+static void SummaryScreenExit(u8 taskId)
+{
+ PlaySE(SE_SELECT);
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ gTasks[taskId].func = sub_809E13C;
+}
+
+static void sub_809E13C(u8 taskId)
+{
+ if (sub_8055870() != TRUE && !gPaletteFade.active)
+ {
+ gUnknown_020384F0 = pssData.monIndex;
+
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ StopCryAndClearCrySongs();
+ m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x100);
+ SetMainCallback2(pssData.callback);
+ DestroyTask(taskId);
+ }
+}
+
+static void SummaryScreenHandleKeyInput(u8 taskId)
+{
+ if (gPaletteFade.active)
+ return;
+
+ if (gMain.newKeys & DPAD_UP)
+ {
+ SummaryScreenHandleUpDownInput(taskId, -1);
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ SummaryScreenHandleUpDownInput(taskId, 1);
+ }
+ else if ((gMain.newKeys & DPAD_LEFT) || sub_80F9284() == 1)
+ {
+ SummaryScreenHandleLeftRightInput(taskId, -1);
+ }
+ else if ((gMain.newKeys & DPAD_RIGHT) || sub_80F9284() == 2)
+ {
+ SummaryScreenHandleLeftRightInput(taskId, 1);
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ if (pssData.page >= PSS_PAGE_BATTLE_MOVES)
+ {
+ SummaryScreenHandleAButton(taskId);
+ }
+
+ if (pssData.page == PSS_PAGE_INFO)
+ {
+ SummaryScreenExit(taskId);
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ SummaryScreenExit(taskId);
+ }
+}
+
+static void sub_809E260(u8 taskId)
+{
+ if (gPaletteFade.active)
+ return;
+
+ if (gMain.newKeys & DPAD_UP)
+ {
+ gTasks[taskId].data[0] = 4;
+ sub_809E8F0(taskId, -1, &pssData.selectedMoveIndex);
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ gTasks[taskId].data[0] = 4;
+ sub_809E8F0(taskId, 1, &pssData.selectedMoveIndex);
+ }
+ else if ((gMain.newKeys & DPAD_LEFT) || sub_80F9284() == 1)
+ {
+ if (pssData.page == PSS_PAGE_CONTEST_MOVES && (pssData.selectedMoveIndex != 4 || pssData.moveToLearn != 0))
+ {
+ MenuZeroFillWindowRect(0, 14, 9, 18);
+ }
+
+ SummaryScreenHandleLeftRightInput(taskId, -1);
+ }
+ else if ((gMain.newKeys & DPAD_RIGHT) || sub_80F9284() == 2)
+ {
+ if (pssData.page != pssData.lastPage)
+ {
+ if (pssData.page == PSS_PAGE_BATTLE_MOVES && (pssData.selectedMoveIndex != 4 || pssData.moveToLearn != 0))
+ {
+ MenuZeroFillWindowRect(0, 14, 9, 18);
+ }
+
+ SummaryScreenHandleLeftRightInput(taskId, 1);
+ }
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ if (sub_809F7D0(taskId) == TRUE || pssData.selectedMoveIndex == 4)
+ {
+ pssData.switchMoveIndex = pssData.selectedMoveIndex;
+ gSpecialVar_0x8005 = pssData.switchMoveIndex;
+ SummaryScreenExit(taskId);
+ }
+ else
+ {
+ PlaySE(SE_HAZURE);
+ sub_809F9D0(taskId, pssData.selectedMoveIndex);
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ pssData.switchMoveIndex = 4;
+ gSpecialVar_0x8005 = 4;
+ SummaryScreenExit(taskId);
+ }
+}
+
+static void sub_809E3FC(u8 taskId)
+{
+ if (gPaletteFade.active)
+ return;
+
+ if (gMain.newKeys & DPAD_UP)
+ {
+ gTasks[taskId].data[0] = 4;
+ sub_809E8F0(taskId, -1, &pssData.selectedMoveIndex);
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ gTasks[taskId].data[0] = 4;
+ sub_809E8F0(taskId, 1, &pssData.selectedMoveIndex);
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ if (pssData.selectedMoveIndex != 4 && !pssData.disableMoveOrderEditing)
+ {
+ if (!MonKnowsMultipleMoves(&pssData.loadedMon))
+ {
+ PlaySE(SE_HAZURE);
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+
+ pssData.switchMoveIndex = pssData.selectedMoveIndex;
+ sub_80A1B40(1);
+ sub_80A1A30(19);
+
+ gTasks[taskId].func = sub_809E534;
+ }
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ sub_809EAC8(taskId);
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_809EAC8(taskId);
+ }
+
+}
+
+static bool8 MonKnowsMultipleMoves(struct Pokemon *mon)
+{
+ u8 i;
+
+ for (i = 1; i < 4; i++)
+ {
+ if (GetMonMove(mon, i))
+ {
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+static void sub_809E534(u8 taskId)
+{
+ if (gMain.newKeys & DPAD_UP)
+ {
+ gTasks[taskId].data[0] = 3;
+ sub_809E8F0(taskId, -1, &pssData.switchMoveIndex);
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ gTasks[taskId].data[0] = 3;
+ sub_809E8F0(taskId, 1, &pssData.switchMoveIndex);
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ sub_809E83C(taskId, 1);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ sub_809E83C(taskId, -1);
+ }
+}
+
+static void sub_809E5C4(void)
+{
+ struct Pokemon *party = pssData.monList.partyMons;
+ struct Pokemon *pkmn = &party[pssData.monIndex];
+ u8 moveIndex1 = pssData.selectedMoveIndex;
+ u8 moveIndex2 = pssData.switchMoveIndex;
+
+ u16 move1 = GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex1);
+ u16 move2 = GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex2);
+ u8 move1pp = GetMonData(pkmn, MON_DATA_PP1 + moveIndex1);
+ u8 move2pp = GetMonData(pkmn, MON_DATA_PP1 + moveIndex2);
+ u8 ppBonuses = GetMonData(pkmn, MON_DATA_PP_BONUSES);
+
+ // Calculate PP bonuses
+ u8 r9 = gUnknown_08208238[moveIndex1];
+ u8 r2 = (ppBonuses & r9) >> (moveIndex1 * 2);
+ u8 r3 = gUnknown_08208238[moveIndex2];
+ u8 r1 = (ppBonuses & r3) >> (moveIndex2 * 2);
+ ppBonuses &= ~r9;
+ ppBonuses &= ~r3;
+ ppBonuses |= (r2 << (moveIndex2 * 2)) + (r1 << (moveIndex1 * 2));
+
+ // Swap the moves
+ SetMonData(pkmn, MON_DATA_MOVE1 + moveIndex1, &move2);
+ SetMonData(pkmn, MON_DATA_MOVE1 + moveIndex2, &move1);
+ SetMonData(pkmn, MON_DATA_PP1 + moveIndex1, &move2pp);
+ SetMonData(pkmn, MON_DATA_PP1 + moveIndex2, &move1pp);
+ SetMonData(pkmn, MON_DATA_PP_BONUSES, &ppBonuses);
+}
+
+static void sub_809E6D8(void)
+{
+ struct BoxPokemon *boxMons = pssData.monList.boxMons;
+ struct BoxPokemon *pkmn = &boxMons[pssData.monIndex];
+ u8 moveIndex1 = pssData.selectedMoveIndex;
+ u8 moveIndex2 = pssData.switchMoveIndex;
+
+ u16 move1 = GetBoxMonData(pkmn, MON_DATA_MOVE1 + moveIndex1);
+ u16 move2 = GetBoxMonData(pkmn, MON_DATA_MOVE1 + moveIndex2);
+ u8 move1pp = GetBoxMonData(pkmn, MON_DATA_PP1 + moveIndex1);
+ u8 move2pp = GetBoxMonData(pkmn, MON_DATA_PP1 + moveIndex2);
+ u8 ppBonuses = GetBoxMonData(pkmn, MON_DATA_PP_BONUSES);
+
+ // Calculate PP bonuses
+ u8 r9 = gUnknown_08208238[moveIndex1];
+ u8 r2 = (ppBonuses & r9) >> (moveIndex1 * 2);
+ u8 r3 = gUnknown_08208238[moveIndex2];
+ u8 r1 = (ppBonuses & r3) >> (moveIndex2 * 2);
+ ppBonuses &= ~r9;
+ ppBonuses &= ~r3;
+ ppBonuses |= (r2 << (moveIndex2 * 2)) + (r1 << (moveIndex1 * 2));
+
+ // Swap the moves
+ SetBoxMonData(pkmn, MON_DATA_MOVE1 + moveIndex1, &move2);
+ SetBoxMonData(pkmn, MON_DATA_MOVE1 + moveIndex2, &move1);
+ SetBoxMonData(pkmn, MON_DATA_PP1 + moveIndex1, &move2pp);
+ SetBoxMonData(pkmn, MON_DATA_PP1 + moveIndex2, &move1pp);
+ SetBoxMonData(pkmn, MON_DATA_PP_BONUSES, &ppBonuses);
+}
+
+void sub_809E7F0(u8 taskId)
+{
+ if (sub_809F5F8())
+ {
+ pssData.loadGfxState = 0;
+ sub_80A0428(&pssData.loadedMon, &pssData.selectedMoveIndex);
+ gTasks[taskId].func = sub_809E3FC;
+ sub_80A2078(taskId);
+ }
+}
+
+static void sub_809E83C(u8 taskId, s8 b)
+{
+ PlaySE(SE_SELECT);
+
+ sub_80A1B1C(19);
+ sub_80A1B40(0);
+
+ if (b == 1)
+ {
+ if (pssData.selectedMoveIndex != pssData.switchMoveIndex)
+ {
+ if (pssData.usingPC == FALSE)
+ {
+ sub_809E5C4();
+ }
+ else
+ {
+ sub_809E6D8();
+ }
+
+ pssData.selectedMoveIndex = pssData.switchMoveIndex;
+ sub_809F678(&pssData.loadedMon);
+ pssData.loadGfxState = 1;
+
+ gTasks[taskId].func = sub_809E7F0;
+ return;
+ }
+ }
+ else
+ {
+ sub_80A0428(&pssData.loadedMon, &pssData.selectedMoveIndex);
+ }
+
+ gTasks[taskId].func = sub_809E3FC;
+ sub_80A2078(taskId);
+}
+
+__attribute__((naked))
+static void sub_809E8F0(/*u8 taskId, s8 direction, u8 *c*/)
+{
+ 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\
+ adds r4, r1, 0\n\
+ mov r9, r2\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r8, r0\n\
+ lsls r4, 24\n\
+ lsrs r4, 24\n\
+ movs r0, 0x1\n\
+ str r0, [sp]\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ mov r1, r9\n\
+ ldrb r6, [r1]\n\
+ ldr r1, _0809E944 @ =gTasks\n\
+ mov r2, r8\n\
+ lsls r0, r2, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ ldrb r0, [r0, 0x8]\n\
+ movs r2, 0\n\
+ lsls r4, 24\n\
+ asrs r4, 24\n\
+ mov r10, r4\n\
+ lsls r7, r0, 24\n\
+_0809E930:\n\
+ lsls r0, r6, 24\n\
+ asrs r0, 24\n\
+ add r0, r10\n\
+ lsls r0, 24\n\
+ lsrs r6, r0, 24\n\
+ asrs r1, r0, 24\n\
+ cmp r0, r7\n\
+ ble _0809E948\n\
+ movs r6, 0\n\
+ b _0809E94E\n\
+ .align 2, 0\n\
+_0809E944: .4byte gTasks\n\
+_0809E948:\n\
+ cmp r1, 0\n\
+ bge _0809E94E\n\
+ lsrs r6, r7, 24\n\
+_0809E94E:\n\
+ lsls r4, r6, 24\n\
+ lsrs r1, r4, 24\n\
+ ldr r0, _0809EA10 @ =gSharedMem + 0x18010\n\
+ str r2, [sp, 0x4]\n\
+ bl GetMonMove\n\
+ lsls r0, 16\n\
+ adds r5, r4, 0\n\
+ ldr r2, [sp, 0x4]\n\
+ cmp r0, 0\n\
+ bne _0809E97A\n\
+ asrs r0, r5, 24\n\
+ cmp r0, 0x4\n\
+ beq _0809E97A\n\
+ lsls r0, r2, 24\n\
+ movs r3, 0x80\n\
+ lsls r3, 17\n\
+ adds r0, r3\n\
+ lsrs r2, r0, 24\n\
+ asrs r0, 24\n\
+ cmp r0, 0x3\n\
+ ble _0809E930\n\
+_0809E97A:\n\
+ mov r1, r9\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x4\n\
+ bne _0809E996\n\
+ asrs r0, r5, 24\n\
+ cmp r0, 0x4\n\
+ beq _0809E996\n\
+ ldr r0, _0809EA14 @ =gSharedMem + 0x18000\n\
+ adds r0, 0x7C\n\
+ ldrh r0, [r0]\n\
+ mov r2, r8\n\
+ lsls r7, r2, 2\n\
+ cmp r0, 0\n\
+ beq _0809E9AC\n\
+_0809E996:\n\
+ ldr r2, _0809EA18 @ =gTasks\n\
+ mov r3, r8\n\
+ lsls r1, r3, 2\n\
+ adds r0, r1, r3\n\
+ lsls r0, 3\n\
+ adds r0, r2\n\
+ movs r2, 0x22\n\
+ ldrsh r0, [r0, r2]\n\
+ adds r7, r1, 0\n\
+ cmp r0, 0x1\n\
+ bne _0809E9D0\n\
+_0809E9AC:\n\
+ lsrs r4, r5, 24\n\
+ movs r0, 0x2\n\
+ adds r1, r4, 0\n\
+ bl sub_80A1488\n\
+ movs r0, 0x2\n\
+ adds r1, r4, 0\n\
+ bl sub_80A1654\n\
+ ldr r1, _0809EA18 @ =gTasks\n\
+ mov r3, r8\n\
+ adds r0, r7, r3\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0\n\
+ strh r1, [r0, 0x22]\n\
+ movs r0, 0\n\
+ str r0, [sp]\n\
+_0809E9D0:\n\
+ mov r1, r9\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x4\n\
+ beq _0809E9FE\n\
+ asrs r0, r5, 24\n\
+ cmp r0, 0x4\n\
+ bne _0809E9FE\n\
+ ldr r0, _0809EA14 @ =gSharedMem + 0x18000\n\
+ adds r0, 0x7C\n\
+ ldrh r0, [r0]\n\
+ cmp r0, 0\n\
+ bne _0809E9FE\n\
+ movs r4, 0x2\n\
+ negs r4, r4\n\
+ lsrs r5, 24\n\
+ adds r0, r4, 0\n\
+ adds r1, r5, 0\n\
+ bl sub_80A1488\n\
+ adds r0, r4, 0\n\
+ adds r1, r5, 0\n\
+ bl sub_80A1654\n\
+_0809E9FE:\n\
+ mov r2, r9\n\
+ strb r6, [r2]\n\
+ ldr r0, _0809EA1C @ =gSharedMem + 0x18079\n\
+ cmp r9, r0\n\
+ bne _0809EA20\n\
+ movs r0, 0\n\
+ bl sub_80A1C30\n\
+ b _0809EA26\n\
+ .align 2, 0\n\
+_0809EA10: .4byte gSharedMem + 0x18010\n\
+_0809EA14: .4byte gSharedMem + 0x18000\n\
+_0809EA18: .4byte gTasks\n\
+_0809EA1C: .4byte gSharedMem + 0x18079\n\
+_0809EA20:\n\
+ movs r0, 0x1\n\
+ bl sub_80A1C30\n\
+_0809EA26:\n\
+ ldr r3, [sp]\n\
+ cmp r3, 0\n\
+ beq _0809EA34\n\
+ ldr r0, _0809EA4C @ =gSharedMem + 0x18010\n\
+ mov r1, r9\n\
+ bl sub_80A0428\n\
+_0809EA34:\n\
+ mov r0, r8\n\
+ bl sub_80A2078\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\
+_0809EA4C: .4byte gSharedMem + 0x18010\n\
+ .syntax divided\n");
+}
+
+static void SummaryScreenHandleAButton(u8 taskId)
+{
+ PlaySE(SE_SELECT);
+
+ pssData.selectedMoveIndex = 0;
+ sub_80A1488(2, 0);
+ sub_80A1654(2, 0);
+
+ if (!pssData.disableMoveOrderEditing)
+ {
+ pssData.headerActionTextId = 5;
+ PrintSummaryWindowHeaderText();
+ }
+
+ sub_80A16CC(0);
+ sub_80A029C(&pssData.loadedMon);
+ sub_80A1A30(9);
+
+ gTasks[taskId].func = sub_809E3FC;
+ sub_80A2078(taskId);
+}
+
+static void sub_809EAC8(u8 taskId)
+{
+ if (pssData.selectedMoveIndex != 4)
+ {
+ sub_80A1488(-2, 0);
+ sub_80A1654(-2, 0);
+ }
+
+ sub_80A1B1C(9);
+ sub_80A16CC(1);
+
+ MenuZeroFillWindowRect(15, 12, 28, 13);
+ MenuZeroFillWindowRect(11, 15, 28, 18);
+
+ pssData.headerActionTextId = 6;
+ PrintSummaryWindowHeaderText();
+
+ gTasks[taskId].func = SummaryScreenHandleKeyInput;
+}
+
+static void sub_809EB40(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 5:
+ sub_80A1A30(9);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_809E260;
+ break;
+ case 0:
+ pssData.selectedMoveIndex = 0;
+ if (pssData.moveToLearn != 0)
+ {
+ sub_80A1488(10, 0);
+ sub_80A1654(10, pssData.selectedMoveIndex);
+ }
-extern struct Pokemon *unk_2018000;
+ sub_80A16CC(0);
+ sub_80A029C(&pssData.loadedMon);
+ // fall through
+ default:
+ gTasks[taskId].data[0]++;
+ break;
+ }
+}
+
+static void sub_809EBC4(void)
+{
+ if (pssData.page != PSS_PAGE_INFO)
+ {
+ DrawSummaryScreenNavigationDots();
+ gUnknown_030042C0 = 0x100;
+
+ if (pssData.page == PSS_PAGE_SKILLS)
+ REG_BG1CNT = (REG_BG1CNT & 0xE0FF) + 0x800;
+
+ if (pssData.page == PSS_PAGE_BATTLE_MOVES)
+ REG_BG1CNT = (REG_BG1CNT & 0xE0FF) + 0xA00;
+
+ if (pssData.page == PSS_PAGE_CONTEST_MOVES)
+ REG_BG1CNT = (REG_BG1CNT & 0xE0FF) + 0xC00;
+ }
+}
+
+void sub_809EC38(u8 taskId)
+{
+ u8 minus2;
+ s16 *taskData = gTasks[taskId].data;
+
+ switch (taskData[0])
+ {
+ case 0:
+ if (pssData.bgToggle == 0)
+ {
+ if (pssData.page != PSS_PAGE_INFO)
+ {
+ gUnknown_03004288 = 0x100;
+ }
+
+ if (pssData.page == PSS_PAGE_SKILLS)
+ {
+ REG_BG2CNT = (REG_BG2CNT & 0xE0FF) + 0x800;
+ }
+
+ if (pssData.page == PSS_PAGE_BATTLE_MOVES)
+ {
+ REG_BG2CNT = (REG_BG2CNT & 0xE0FF) + 0xA00;
+ }
+ }
+ else
+ {
+ if (pssData.page != PSS_PAGE_INFO)
+ {
+ gUnknown_030042C0 = 0x100;
+ }
+
+ if (pssData.page == PSS_PAGE_SKILLS)
+ {
+ REG_BG1CNT = (REG_BG1CNT & 0xE0FF) + 0x800;
+ }
+
+ if (pssData.page == PSS_PAGE_BATTLE_MOVES)
+ {
+ REG_BG1CNT = (REG_BG1CNT & 0xE0FF) + 0xA00;
+ }
+ }
+
+ taskData[0]++;
+ break;
+ case 1:
+ if (pssData.bgToggle == 0)
+ {
+ int var2 = gUnknown_030042C0 - 0x20;
+ gUnknown_030042C0 = var2;
+ if (var2 << 16 == 0)
+ {
+ REG_BG1CNT = (REG_BG1CNT & 0xFFFC) + 2;
+ REG_BG2CNT = (REG_BG2CNT & 0xFFFC) + 1;
+ taskData[0]++;
+ }
+ }
+ else
+ {
+ int var2 = gUnknown_03004288 - 0x20;
+ gUnknown_03004288 = var2;
+ if (var2 << 16 == 0)
+ {
+ REG_BG1CNT = (REG_BG1CNT & 0xFFFC) + 1;
+ REG_BG2CNT = (REG_BG2CNT & 0xFFFC) + 2;
+ taskData[0]++;
+ }
+ }
+ break;
+ case 2:
+ pssData.headerTextId = pssData.page + 1;
+ minus2 = pssData.mode - 2;
+ if (minus2 < 2)
+ {
+ pssData.headerActionTextId = 0;
+ sub_80A029C(&pssData.loadedMon);
+ sub_80A0428(&pssData.loadedMon, &pssData.selectedMoveIndex);
+ sub_80A00F4(pssData.selectedMoveIndex);
+ }
+ else
+ {
+ if (pssData.page >= PSS_PAGE_BATTLE_MOVES && (!pssData.disableMoveOrderEditing || pssData.mode == PSS_MODE_NO_MOVE_ORDER_EDIT))
+ {
+ pssData.headerActionTextId = 6;
+ }
+ else if (pssData.page == PSS_PAGE_INFO)
+ {
+ pssData.headerActionTextId = 7;
+ }
+ else
+ {
+ pssData.headerActionTextId = 0;
+ }
+ }
+
+ taskData[0]++;
+ break;
+ case 3:
+ DrawSummaryScreenNavigationDots();
+ PrintSummaryWindowHeaderText();
+ taskData[0]++;
+ break;
+ case 4:
+ sUnknown_083C1598[pssData.page](&pssData.loadedMon);
+ pssData.bgToggle ^= 1;
+ taskData[0]++;
+ break;
+ case 5:
+ if (sub_8055870() != TRUE)
+ {
+ gTasks[taskId].func = gUnknown_03005CF0;
+ }
+ break;
+ }
+}
+
+void sub_809EE74(u8 taskId)
+{
+ int var1;
+ u8 minus2;
+ s16 *taskData = gTasks[taskId].data;
+
+ switch (taskData[0])
+ {
+ case 0:
+ var1 = pssData.bgToggle;
+ if (var1 == 0)
+ {
+ gUnknown_03004288 = pssData.bgToggle;
+ taskData[0]++;
+ }
+ else
+ {
+ gUnknown_030042C0 = 0;
+ taskData[0]++;
+ }
+ break;
+ case 1:
+ if (pssData.bgToggle == 0)
+ {
+ if (pssData.page == PSS_PAGE_SKILLS)
+ REG_BG2CNT = (REG_BG2CNT & 0xE0FC) + 0x801;
+
+ if (pssData.page == PSS_PAGE_BATTLE_MOVES)
+ REG_BG2CNT = (REG_BG2CNT & 0xE0FC) + 0xA01;
+
+ if (pssData.page == PSS_PAGE_CONTEST_MOVES)
+ REG_BG2CNT = (REG_BG2CNT & 0xE0FC) + 0xC01;
+
+ REG_BG1CNT = (REG_BG1CNT & 0xFFFC) + 2;
+ }
+ else
+ {
+ if (pssData.page == PSS_PAGE_SKILLS)
+ REG_BG1CNT = (REG_BG1CNT & 0xE0FC) + 0x801;
+
+ if (pssData.page == PSS_PAGE_BATTLE_MOVES)
+ REG_BG1CNT = (REG_BG1CNT & 0xE0FC) + 0xA01;
+
+ if (pssData.page == PSS_PAGE_CONTEST_MOVES)
+ REG_BG1CNT = (REG_BG1CNT & 0xE0FC) + 0xC01;
+
+ REG_BG2CNT = (REG_BG2CNT & 0xFFFC) + 2;
+ }
+
+ taskData[0]++;
+ break;
+ case 2:
+ if (pssData.bgToggle == 0)
+ {
+ int var2 = gUnknown_03004288 + 0x20;
+ gUnknown_03004288 = var2;
+ if ((var2 << 16) == 0x1000000)
+ {
+ taskData[0]++;
+ }
+ }
+ else
+ {
+ int var2 = gUnknown_030042C0 + 0x20;
+ gUnknown_030042C0 = var2;
+ if ((var2 << 16) == 0x1000000)
+ {
+ taskData[0]++;
+ }
+ }
+ break;
+ case 3:
+ pssData.headerTextId = pssData.page + 1;
+ minus2 = pssData.mode - 2;
+ if (minus2 < 2)
+ {
+ pssData.headerActionTextId = 0;
+ sub_80A029C(&pssData.loadedMon);
+ sub_80A0428(&pssData.loadedMon, &pssData.selectedMoveIndex);
+ sub_80A00F4(pssData.selectedMoveIndex);
+ }
+ else
+ {
+ if (pssData.page >= PSS_PAGE_BATTLE_MOVES && (!pssData.disableMoveOrderEditing || pssData.mode == PSS_MODE_NO_MOVE_ORDER_EDIT))
+ {
+ pssData.headerActionTextId = 6;
+ }
+ else if (pssData.page == PSS_PAGE_INFO)
+ {
+ pssData.headerActionTextId = 7;
+ }
+ else
+ {
+ pssData.headerActionTextId = 0;
+ }
+ }
+
+ taskData[0]++;
+ break;
+ case 4:
+ DrawSummaryScreenNavigationDots();
+ PrintSummaryWindowHeaderText();
+ taskData[0]++;
+ break;
+ case 5:
+ sUnknown_083C1598[pssData.page](&pssData.loadedMon);
+ pssData.bgToggle ^= 1;
+ taskData[0]++;
+ break;
+ case 6:
+ if (sub_8055870() != TRUE)
+ {
+ gTasks[taskId].func = gUnknown_03005CF0;
+ }
+ break;
+ }
+}
+
+void sub_809F0D0(u8 taskId, s8 direction)
+{
+ pssData.page += direction;
+ gUnknown_03005CF0 = gTasks[taskId].func;
+ sub_809FBE4();
+ gTasks[taskId].data[0] = 0;
+
+ if (direction == -1)
+ {
+ gTasks[taskId].func = sub_809EC38;
+ }
+ else
+ {
+ gTasks[taskId].func = sub_809EE74;
+ gTasks[taskId].func(taskId);
+ }
+}
+
+static void SummaryScreenHandleLeftRightInput(u8 taskId, s8 direction)
+{
+ if (!GetMonData(&pssData.loadedMon, MON_DATA_IS_EGG))
+ {
+ if (direction == -1 && pssData.page == pssData.firstPage) return;
+ if (direction == 1 && pssData.page == pssData.lastPage) return;
+
+ if (FindTaskIdByFunc(sub_80A1334) == 0xFF && FindTaskIdByFunc(sub_80A1500) == 0xFF)
+ {
+ PlaySE(SE_SELECT);
+ sub_809F0D0(taskId, direction);
+ }
+ }
+}
+
+#ifdef NONMATCHING
+static void SummaryScreenHandleUpDownInput(u8 taskId, s8 direction)
+{
+ s8 var3;
+ u8 var1 = direction;
+
+ if (pssData.usingPC == TRUE)
+ {
+ if (pssData.page != PSS_PAGE_INFO)
+ {
+ var1 = (direction == 1) ? 0 : 1;
+ }
+ else
+ {
+ var1 = (direction == 1) ? 2 : 3;
+ }
+
+ var3 = StorageSystemGetNextMonIndex(pssData.monList.boxMons, pssData.monIndex, pssData.maxMonIndex, var1);
+ }
+ else
+ {
+ if (sub_80F9344() == TRUE && IsLinkDoubleBattle() == TRUE)
+ {
+ var3 = sub_809F3CC(var1);
+ }
+ else
+ {
+ var3 = sub_809F284(var1);
+ }
+ }
+
+ if (var3 != -1)
+ {
+ PlaySE(SE_SELECT);
+ if (GetMonStatusAndPokerus(&pssData.loadedMon))
+ {
+ sub_80A12D0(-2);
+ }
+
+ pssData.monIndex = var3;
+ pssData.unk84 = gTasks[taskId].func;
+ gTasks[taskId].func = sub_809F43C;
+ }
+}
+#else
+__attribute__((naked))
+static void SummaryScreenHandleUpDownInput(u8 taskId, s8 direction)
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ lsls r0, 24\n\
+ lsrs r6, r0, 24\n\
+ lsls r1, 24\n\
+ lsrs r4, r1, 24\n\
+ ldr r0, _0809F1E4 @ =gSharedMem + 0x18000\n\
+ ldrb r1, [r0, 0xE]\n\
+ adds r2, r0, 0\n\
+ cmp r1, 0x1\n\
+ bne _0809F202\n\
+ ldrb r0, [r2, 0xB]\n\
+ cmp r0, 0\n\
+ beq _0809F1E8\n\
+ lsls r1, r4, 24\n\
+ asrs r1, 24\n\
+ movs r4, 0x1\n\
+ eors r1, r4\n\
+ negs r0, r1\n\
+ orrs r0, r1\n\
+ lsrs r4, r0, 31\n\
+ b _0809F1F4\n\
+ .align 2, 0\n\
+_0809F1E4: .4byte gSharedMem + 0x18000\n\
+_0809F1E8:\n\
+ lsls r0, r4, 24\n\
+ asrs r0, 24\n\
+ movs r4, 0x3\n\
+ cmp r0, 0x1\n\
+ bne _0809F1F4\n\
+ movs r4, 0x2\n\
+_0809F1F4:\n\
+ ldr r0, [r2]\n\
+ ldrb r1, [r2, 0x9]\n\
+ ldrb r2, [r2, 0xA]\n\
+ adds r3, r4, 0\n\
+ bl StorageSystemGetNextMonIndex\n\
+ b _0809F22C\n\
+_0809F202:\n\
+ bl sub_80F9344\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x1\n\
+ bne _0809F224\n\
+ bl IsLinkDoubleBattle\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x1\n\
+ bne _0809F224\n\
+ lsls r0, r4, 24\n\
+ asrs r0, 24\n\
+ bl sub_809F3CC\n\
+ b _0809F22C\n\
+_0809F224:\n\
+ lsls r0, r4, 24\n\
+ asrs r0, 24\n\
+ bl sub_809F284\n\
+_0809F22C:\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ lsls r0, r4, 24\n\
+ asrs r0, 24\n\
+ movs r1, 0x1\n\
+ negs r1, r1\n\
+ cmp r0, r1\n\
+ beq _0809F270\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ ldr r5, _0809F278 @ =gSharedMem + 0x18010\n\
+ adds r0, r5, 0\n\
+ bl GetMonStatusAndPokerus\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _0809F258\n\
+ movs r0, 0x2\n\
+ negs r0, r0\n\
+ bl sub_80A12D0\n\
+_0809F258:\n\
+ adds r0, r5, 0\n\
+ subs r0, 0x10\n\
+ strb r4, [r0, 0x9]\n\
+ ldr r1, _0809F27C @ =gTasks\n\
+ lsls r0, r6, 2\n\
+ adds r0, r6\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ ldr r1, [r0]\n\
+ str r1, [r5, 0x74]\n\
+ ldr r1, _0809F280 @ =sub_809F43C\n\
+ str r1, [r0]\n\
+_0809F270:\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_0809F278: .4byte gSharedMem + 0x18010\n\
+_0809F27C: .4byte gTasks\n\
+_0809F280: .4byte sub_809F43C\n\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
+
+#ifdef NONMATCHING
+s8 sub_809F284(s8 a)
+{
+ struct Pokemon *mons = pssData.monList.partyMons;
+ s8 r6 = 0;
+
+ if (pssData.page == PSS_PAGE_INFO)
+ {
+ if (a == -1 && pssData.monIndex == 0)
+ return -1;
+ if (a == 1 && pssData.monIndex >= pssData.maxMonIndex)
+ return -1;
+ return pssData.monIndex + a;
+ }
+ else
+ {
+ do
+ {
+ r6 += a;
+ if (pssData.monIndex + r6 < 0 || pssData.monIndex + r6 > pssData.maxMonIndex)
+ return -1;
+ } while (GetMonData(&mons[pssData.monIndex + r6], MON_DATA_IS_EGG) != 0);
+ return pssData.monIndex + r6;
+ }
+}
+#else
+__attribute__((naked))
+s8 sub_809F284(s8 a)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ lsls r0, 24\n\
+ lsrs r3, r0, 24\n\
+ ldr r0, _0809F2C0 @ =gSharedMem + 0x18000\n\
+ ldr r7, [r0]\n\
+ movs r6, 0\n\
+ ldrb r1, [r0, 0xB]\n\
+ adds r4, r0, 0\n\
+ cmp r1, 0\n\
+ bne _0809F2C4\n\
+ lsls r0, r3, 24\n\
+ asrs r2, r0, 24\n\
+ movs r1, 0x1\n\
+ negs r1, r1\n\
+ adds r5, r0, 0\n\
+ cmp r2, r1\n\
+ bne _0809F2AC\n\
+ ldrb r0, [r4, 0x9]\n\
+ cmp r0, 0\n\
+ beq _0809F2E4\n\
+_0809F2AC:\n\
+ asrs r0, r5, 24\n\
+ cmp r0, 0x1\n\
+ bne _0809F2BA\n\
+ ldrb r0, [r4, 0x9]\n\
+ ldrb r1, [r4, 0xA]\n\
+ cmp r0, r1\n\
+ bcs _0809F2E4\n\
+_0809F2BA:\n\
+ ldrb r0, [r4, 0x9]\n\
+ adds r0, r3\n\
+ b _0809F304\n\
+ .align 2, 0\n\
+_0809F2C0: .4byte gSharedMem + 0x18000\n\
+_0809F2C4:\n\
+ lsls r5, r3, 24\n\
+_0809F2C6:\n\
+ lsls r0, r6, 24\n\
+ asrs r0, 24\n\
+ asrs r1, r5, 24\n\
+ adds r0, r1\n\
+ lsls r0, 24\n\
+ ldr r4, _0809F2EC @ =gSharedMem + 0x18000\n\
+ lsrs r6, r0, 24\n\
+ asrs r0, 24\n\
+ ldrb r2, [r4, 0x9]\n\
+ adds r1, r0, r2\n\
+ cmp r1, 0\n\
+ blt _0809F2E4\n\
+ ldrb r0, [r4, 0xA]\n\
+ cmp r1, r0\n\
+ ble _0809F2F0\n\
+_0809F2E4:\n\
+ movs r0, 0x1\n\
+ negs r0, r0\n\
+ b _0809F308\n\
+ .align 2, 0\n\
+_0809F2EC: .4byte gSharedMem + 0x18000\n\
+_0809F2F0:\n\
+ movs r0, 0x64\n\
+ muls r0, r1\n\
+ adds r0, r7, r0\n\
+ movs r1, 0x2D\n\
+ bl GetMonData\n\
+ cmp r0, 0\n\
+ bne _0809F2C6\n\
+ ldrb r0, [r4, 0x9]\n\
+ adds r0, r6\n\
+_0809F304:\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+_0809F308:\n\
+ pop {r4-r7}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
+
+bool8 sub_809F310(struct Pokemon *mon)
+{
+ if (GetMonData(mon, MON_DATA_SPECIES))
+ {
+ if (pssData.page != PSS_PAGE_INFO || !GetMonData(mon, MON_DATA_IS_EGG))
+ {
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+s8 sub_809F344(u8 partyIndex)
+{
+ while (1)
+ {
+ partyIndex++;
+ if (partyIndex == PARTY_SIZE)
+ {
+ return -1;
+ }
+
+ if (sub_809F310(&gPlayerParty[sDoubleBattlePartyOrder[partyIndex]]) == TRUE)
+ {
+ return sDoubleBattlePartyOrder[partyIndex];
+ }
+ }
+}
+
+s8 sub_809F388(u8 partyIndex)
+{
+ while (1)
+ {
+ if (partyIndex == 0)
+ {
+ return -1;
+ }
+
+ partyIndex--;
+ if (sub_809F310(&gPlayerParty[sDoubleBattlePartyOrder[partyIndex]]) == TRUE)
+ {
+ return sDoubleBattlePartyOrder[partyIndex];
+ }
+ }
+}
+
+s8 sub_809F3CC(s8 direction)
+{
+ u8 i;
+ u8 monIndex = 0;
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ if (sDoubleBattlePartyOrder[i] == pssData.monIndex)
+ {
+ monIndex = i;
+ break;
+ }
+ }
+
+ if ((direction == -1 && monIndex == 0) || (direction == 1 && monIndex == 5))
+ {
+ return -1;
+ }
+
+ if (direction != 1)
+ {
+ return sub_809F388(monIndex);
+ }
+ else if (monIndex != 5)
+ {
+ return sub_809F344(monIndex);
+ }
+
+ return -1;
+}
+
+void sub_809F43C(u8 taskId)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ StopCryAndClearCrySongs();
+ gMain.state++;
+ break;
+ case 1:
+ DestroySpriteAndFreeResources(&gSprites[pssData.monSpriteId]);
+ gMain.state++;
+ break;
+ case 2:
+ DestroySpriteAndFreeResources(&gSprites[pssData.ballSpriteId]);
+ gMain.state++;
+ break;
+ case 3:
+ pssData.loadGfxState = 0;
+ pssData.selectedMoveIndex = 0;
+ gMain.state++;
+ break;
+ case 4:
+ sub_809F678(&pssData.loadedMon);
+ if (GetMonStatusAndPokerus(&pssData.loadedMon))
+ {
+ sub_80A12D0(2);
+ }
+
+ DrawPokerusSurvivorDot(&pssData.loadedMon);
+ gMain.state++;
+ break;
+ case 5:
+ if ((pssData.monSpriteId = sub_809F6B4(&pssData.loadedMon, &pssData.loadGfxState)) != 0xFF)
+ {
+ pssData.loadGfxState = 0;
+ if (GetMonData(&pssData.loadedMon, MON_DATA_IS_EGG))
+ {
+ gUnknown_030041B0 = 256;
+ }
+ else
+ {
+ gUnknown_030041B0 = 0;
+ }
+
+ gMain.state++;
+ }
+ break;
+ case 6:
+ sub_80A1DCC(&pssData.loadedMon);
+ gMain.state++;
+ break;
+ case 7:
+ sub_80A1DE8(&pssData.loadedMon);
+ gMain.state++;
+ break;
+ case 8:
+ if (sub_809F5F8())
+ {
+ pssData.loadGfxState = 0;
+ gMain.state++;
+ }
+ break;
+ default:
+ if (sub_8055870() != TRUE)
+ {
+ gMain.state = 0;
+ gTasks[taskId].func = pssData.unk84;
+ }
+ break;
+ }
+}
+
+static bool8 sub_809F5F8(void)
+{
+ if (pssData.loadGfxState == 0)
+ {
+ sub_809FAC8(&pssData.loadedMon);
+ pssData.loadGfxState++;
+ return FALSE;
+ }
+ else
+ {
+ sUnknown_083C1588[pssData.page](&pssData.loadedMon);
+ return TRUE;
+ }
+}
+
+static void sub_809F63C(struct Pokemon *mon)
+{
+ sub_809FE80();
+ sub_809FC34(mon);
+}
+
+static void sub_809F650(struct Pokemon *mon)
+{
+ sub_80A00A4();
+ sub_809FF64(mon);
+}
+
+static void sub_809F664(struct Pokemon *mon)
+{
+ sub_80A0390();
+ sub_80A015C(mon);
+}
+
+static void sub_809F678(struct Pokemon *mon)
+{
+ if (pssData.usingPC == FALSE)
+ {
+ struct Pokemon *mons = pssData.monList.partyMons;
+ *mon = mons[pssData.monIndex];
+ }
+ else
+ {
+ struct BoxPokemon *mons = pssData.monList.boxMons;
+ sub_803B4B4(&mons[pssData.monIndex], mon);
+ }
+}
+
+static u8 sub_809F6B4(struct Pokemon *mon, u8 *b)
+{
+ u16 species;
+ u32 personality;
+ u32 otId;
+ const struct CompressedSpritePalette *palette;
+
+ switch (*b)
+ {
+ default:
+ return sub_80A1808(mon);
+ case 0:
+ species = GetMonData(mon, MON_DATA_SPECIES2);
+ personality = GetMonData(mon, MON_DATA_PERSONALITY);
+
+ HandleLoadSpecialPokePic(
+ &gMonFrontPicTable[species],
+ gMonFrontPicCoords[species].coords,
+ gMonFrontPicCoords[species].y_offset,
+ ewram_addr,
+ gUnknown_081FAF4C[1],
+ species,
+ personality);
+ *b += 1;
+ return 0xFF;
+ case 1:
+ species = GetMonData(mon, MON_DATA_SPECIES2);
+ personality = GetMonData(mon, MON_DATA_PERSONALITY);
+ otId = GetMonData(mon, MON_DATA_OT_ID);
+
+ palette = GetMonSpritePalStructFromOtIdPersonality(species, otId, personality);
+ LoadCompressedObjectPalette(palette);
+ GetMonSpriteTemplate_803C56C(palette->tag, 1);
+ *b += 1;
+ return 0xFF;
+ }
+}
+
+static u16 GetMonMove(struct Pokemon *mon, u8 moveId)
+{
+ switch (moveId)
+ {
+ case 0:
+ return GetMonData(mon, MON_DATA_MOVE1);
+ case 1:
+ return GetMonData(mon, MON_DATA_MOVE2);
+ case 2:
+ return GetMonData(mon, MON_DATA_MOVE3);
+ default:
+ return GetMonData(mon, MON_DATA_MOVE4);
+ }
+}
+
+static u16 GetMonMovePP(struct Pokemon *mon, u8 moveId)
+{
+ switch (moveId)
+ {
+ case 0:
+ return GetMonData(mon, MON_DATA_PP1);
+ case 1:
+ return GetMonData(mon, MON_DATA_PP2);
+ case 2:
+ return GetMonData(mon, MON_DATA_PP3);
+ default:
+ return GetMonData(mon, MON_DATA_PP4);
+ }
+}
+
+static bool8 sub_809F7D0(u8 taskId)
+{
+ struct Pokemon mon;
+ u16 move;
+
+ sub_809F678(&mon);
+ move = GetMonMove(&mon, pssData.selectedMoveIndex);
+ if (IsHMMove(move) == TRUE && pssData.mode != PSS_MODE_UNKNOWN)
+ {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+#ifdef NONMATCHING // The two "pssData.selectedMoveIndex = taskData[15];" lines have small register differences.
+void sub_809F814(u8 taskId)
+{
+ u16 var1;
+
+ s16 *taskData = gTasks[taskId].data;
+
+ var1 = taskData[14];
+ if (taskData[14] < 4)
+ {
+ taskData[14] = var1 + 1;
+ }
+ else if (gMain.newKeys & DPAD_UP)
+ {
+ gTasks[taskId].func = sub_809E260;
+ taskData[0] = 4;
+ taskData[13] = 1;
+ pssData.selectedMoveIndex = taskData[15];
+ sub_809E8F0(taskId, -1);
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ gTasks[taskId].func = sub_809E260;
+ taskData[0] = 4;
+ taskData[13] = 1;
+ pssData.selectedMoveIndex = taskData[15];
+ sub_809E8F0(taskId, 1);
+ }
+ else if ((gMain.newKeys & DPAD_LEFT) || sub_80F9284() == 1)
+ {
+ if (pssData.page != PSS_PAGE_BATTLE_MOVES)
+ {
+ if (pssData.page == PSS_PAGE_CONTEST_MOVES && (pssData.selectedMoveIndex != 4 || pssData.moveToLearn != 0))
+ {
+ MenuZeroFillWindowRect(0, 14, 9, 18);
+ }
+
+ gTasks[taskId].func = sub_809E260;
+
+ SummaryScreenHandleLeftRightInput(taskId, -1);
+ sub_80A1488(1, taskData[15]);
+ sub_80A1654(1, taskData[15]);
+ }
+ }
+ else if ((gMain.newKeys & DPAD_RIGHT) || sub_80F9284() == 2)
+ {
+ if (pssData.page != pssData.lastPage)
+ {
+ if (pssData.page == PSS_PAGE_BATTLE_MOVES && (pssData.selectedMoveIndex != 4 || pssData.moveToLearn != 0))
+ {
+ MenuZeroFillWindowRect(0, 14, 9, 18);
+ }
+
+ gTasks[taskId].func = sub_809E260;
+
+ SummaryScreenHandleLeftRightInput(taskId, 1);
+ sub_80A1488(1, taskData[15]);
+ sub_80A1654(1, taskData[15]);
+ }
+ }
+ else if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON))
+ {
+ sub_80A1488(2, taskData[15]);
+ sub_80A1654(2, taskData[15]);
+
+ gTasks[taskId].func = sub_809E260;
+ }
+}
+
+#else
+__attribute__((naked))
+void sub_809F814(u8 taskId)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ lsls r0, r5, 2\n\
+ adds r0, r5\n\
+ lsls r6, r0, 3\n\
+ ldr r0, _0809F83C @ =gTasks + 0x8\n\
+ mov r8, r0\n\
+ adds r4, r6, r0\n\
+ ldrh r1, [r4, 0x1C]\n\
+ movs r2, 0x1C\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r0, 0x3\n\
+ bgt _0809F840\n\
+ adds r0, r1, 0x1\n\
+ strh r0, [r4, 0x1C]\n\
+ b _0809F9C0\n\
+ .align 2, 0\n\
+_0809F83C: .4byte gTasks + 0x8\n\
+_0809F840:\n\
+ ldr r7, _0809F874 @ =gMain\n\
+ ldrh r1, [r7, 0x2E]\n\
+ movs r0, 0x40\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0809F880\n\
+ mov r0, r8\n\
+ subs r0, 0x8\n\
+ adds r0, r6, r0\n\
+ ldr r1, _0809F878 @ =sub_809E260\n\
+ str r1, [r0]\n\
+ movs r0, 0x4\n\
+ strh r0, [r4]\n\
+ movs r0, 0x1\n\
+ strh r0, [r4, 0x1A]\n\
+ ldr r2, _0809F87C @ =gSharedMem + 0x18000\n\
+ ldrh r0, [r4, 0x1E]\n\
+ adds r2, 0x79\n\
+ strb r0, [r2]\n\
+ movs r1, 0x1\n\
+ negs r1, r1\n\
+ adds r0, r5, 0\n\
+ bl sub_809E8F0\n\
+ b _0809F9C0\n\
+ .align 2, 0\n\
+_0809F874: .4byte gMain\n\
+_0809F878: .4byte sub_809E260\n\
+_0809F87C: .4byte gSharedMem + 0x18000\n\
+_0809F880:\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0809F8B4\n\
+ mov r0, r8\n\
+ subs r0, 0x8\n\
+ adds r0, r6, r0\n\
+ ldr r1, _0809F8AC @ =sub_809E260\n\
+ str r1, [r0]\n\
+ movs r0, 0x4\n\
+ strh r0, [r4]\n\
+ movs r0, 0x1\n\
+ strh r0, [r4, 0x1A]\n\
+ ldr r2, _0809F8B0 @ =gSharedMem + 0x18000\n\
+ ldrh r0, [r4, 0x1E]\n\
+ adds r2, 0x79\n\
+ strb r0, [r2]\n\
+ adds r0, r5, 0\n\
+ movs r1, 0x1\n\
+ bl sub_809E8F0\n\
+ b _0809F9C0\n\
+ .align 2, 0\n\
+_0809F8AC: .4byte sub_809E260\n\
+_0809F8B0: .4byte gSharedMem + 0x18000\n\
+_0809F8B4:\n\
+ movs r0, 0x20\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _0809F8C8\n\
+ bl sub_80F9284\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x1\n\
+ bne _0809F918\n\
+_0809F8C8:\n\
+ ldr r1, _0809F90C @ =gSharedMem + 0x18000\n\
+ ldrb r0, [r1, 0xB]\n\
+ cmp r0, 0x2\n\
+ beq _0809F9C0\n\
+ cmp r0, 0x3\n\
+ bne _0809F8F4\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x79\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x4\n\
+ bne _0809F8E8\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x7C\n\
+ ldrh r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _0809F8F4\n\
+_0809F8E8:\n\
+ movs r0, 0\n\
+ movs r1, 0xE\n\
+ movs r2, 0x9\n\
+ movs r3, 0x12\n\
+ bl MenuZeroFillWindowRect\n\
+_0809F8F4:\n\
+ ldr r1, _0809F910 @ =gTasks\n\
+ lsls r0, r5, 2\n\
+ adds r0, r5\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ ldr r1, _0809F914 @ =sub_809E260\n\
+ str r1, [r0]\n\
+ movs r1, 0x1\n\
+ negs r1, r1\n\
+ adds r0, r5, 0\n\
+ b _0809F972\n\
+ .align 2, 0\n\
+_0809F90C: .4byte gSharedMem + 0x18000\n\
+_0809F910: .4byte gTasks\n\
+_0809F914: .4byte sub_809E260\n\
+_0809F918:\n\
+ ldrh r1, [r7, 0x2E]\n\
+ movs r0, 0x10\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _0809F92E\n\
+ bl sub_80F9284\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x2\n\
+ bne _0809F994\n\
+_0809F92E:\n\
+ ldr r1, _0809F988 @ =gSharedMem + 0x18000\n\
+ adds r2, r1, 0\n\
+ adds r2, 0x76\n\
+ ldrb r0, [r1, 0xB]\n\
+ ldrb r2, [r2]\n\
+ cmp r0, r2\n\
+ beq _0809F9C0\n\
+ cmp r0, 0x2\n\
+ bne _0809F960\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x79\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x4\n\
+ bne _0809F954\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x7C\n\
+ ldrh r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _0809F960\n\
+_0809F954:\n\
+ movs r0, 0\n\
+ movs r1, 0xE\n\
+ movs r2, 0x9\n\
+ movs r3, 0x12\n\
+ bl MenuZeroFillWindowRect\n\
+_0809F960:\n\
+ ldr r1, _0809F98C @ =gTasks\n\
+ lsls r0, r5, 2\n\
+ adds r0, r5\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ ldr r1, _0809F990 @ =sub_809E260\n\
+ str r1, [r0]\n\
+ adds r0, r5, 0\n\
+ movs r1, 0x1\n\
+_0809F972:\n\
+ bl SummaryScreenHandleLeftRightInput\n\
+ ldrb r1, [r4, 0x1E]\n\
+ movs r0, 0x1\n\
+ bl sub_80A1488\n\
+ ldrb r1, [r4, 0x1E]\n\
+ movs r0, 0x1\n\
+ bl sub_80A1654\n\
+ b _0809F9C0\n\
+ .align 2, 0\n\
+_0809F988: .4byte gSharedMem + 0x18000\n\
+_0809F98C: .4byte gTasks\n\
+_0809F990: .4byte sub_809E260\n\
+_0809F994:\n\
+ ldrh r1, [r7, 0x2E]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _0809F9A6\n\
+ movs r0, 0x2\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0809F9C0\n\
+_0809F9A6:\n\
+ ldrb r1, [r4, 0x1E]\n\
+ movs r0, 0x2\n\
+ bl sub_80A1488\n\
+ ldrb r1, [r4, 0x1E]\n\
+ movs r0, 0x2\n\
+ bl sub_80A1654\n\
+ mov r0, r8\n\
+ subs r0, 0x8\n\
+ adds r0, r6, r0\n\
+ ldr r1, _0809F9CC @ =sub_809E260\n\
+ str r1, [r0]\n\
+_0809F9C0:\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_0809F9CC: .4byte sub_809E260\n\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
+
+static void sub_809F9D0(u8 taskId, u8 b)
+{
+ s16 *taskData = gTasks[taskId].data;
+ taskData[14] = 0;
+ taskData[15] = b;
+
+ sub_80A1488(-2, 4);
+ sub_80A1654(-2, 4);
+ MenuZeroFillWindowRect(11, 15, 28, 18);
+ MenuPrint(gOtherText_CantForgetHMs, 11, 15);
+
+ gTasks[taskId].func = sub_809F814;
+}
+
+u8 sub_809FA30(void)
+{
+ return pssData.switchMoveIndex;
+}
+
+// void GetStringCenterAlignXOffsetWithLetterSpacing(u8 a, u8 b, u8 c, u8 d)
+// {
+// u16 *vramAddr = (u16 *)(VRAM + 0xF000);
+
+// vramAddr[(d * 32) + c] = (b * 0x1000) + (a * 2) + 0x200 + 0x80;
+// vramAddr[(d * 32) + c + 32] = (b * 0x1000) + (a * 2) + 0x200 + 0x81;
+// }
+__attribute__((naked))
+void GetStringCenterAlignXOffsetWithLetterSpacing(u8 a, u8 b, u8 c, u8 d)
+{
+ asm(".syntax unified\n\
+ push {r4,lr}\n\
+ lsls r0, 24\n\
+ lsls r1, 24\n\
+ lsls r2, 24\n\
+ lsls r3, 24\n\
+ lsrs r2, 23\n\
+ lsrs r3, 18\n\
+ ldr r4, _0809FA70 @ =0x0600f000\n\
+ adds r3, r4\n\
+ adds r2, r3\n\
+ lsrs r1, 12\n\
+ lsrs r0, 23\n\
+ movs r4, 0x80\n\
+ lsls r4, 2\n\
+ adds r3, r4, 0\n\
+ adds r0, r3\n\
+ adds r1, r0\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x80\n\
+ strh r0, [r2]\n\
+ adds r2, 0x40\n\
+ adds r1, 0x81\n\
+ strh r1, [r2]\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_0809FA70: .4byte 0x0600f000\n\
+ .syntax divided\n");
+}
+
+void GetStringCenterAlignXOffset(u8 a, u8 b, u8 c)
+{
+ GetStringCenterAlignXOffsetWithLetterSpacing(a, 15, b, c);
+}
+
+bool8 sub_809FA94(struct Pokemon *mon)
+{
+ if (!IsShiny(mon))
+ {
+ LoadPalette(sUnknown_083C157C, 4, 2);
+ return FALSE;
+ }
+ else
+ {
+ LoadPalette(sUnknown_083C157E, 4, 2);
+ return TRUE;
+ }
+}
+
+static void sub_809FAC8(struct Pokemon *mon)
+{
+ bool8 shinyDexNum;
+ u16 dexNum;
+ u8 *buffer;
+
+ if (GetMonData(mon, MON_DATA_IS_EGG))
+ {
+ MenuZeroFillWindowRect(1, 2, 4, 3);
+ MenuZeroFillWindowRect(3, 16, 9, 17);
+ MenuZeroFillWindowRect(0, 12, 11, 15);
+ GetMonNickname(mon, gStringVar1);
+ sub_80A1FF8(gStringVar1, 13, 3, 16);
+ LoadPalette(sUnknown_083C157C, 4, 2);
+ }
+ else
+ {
+ shinyDexNum = sub_809FA94(mon);
+ dexNum = SpeciesToPokedexNum(GetMonData(mon, MON_DATA_SPECIES));
+ if (dexNum != 0xFFFF)
+ {
+ if (!shinyDexNum)
+ {
+ GetStringCenterAlignXOffset(2, 1, 2);
+ sub_80A1F98(dexNum, 13, 3, 2, 17, 16, 1);
+ }
+ else
+ {
+ GetStringCenterAlignXOffsetWithLetterSpacing(2, 8, 1, 2);
+ sub_80A1F98(dexNum, 8, 3, 2, 17, 16, 1);
+ }
+ }
+ else
+ {
+ MenuZeroFillWindowRect(1, 2, 4, 3);
+ }
+
+ buffer = gStringVar1;
+ buffer = sub_80A1E58(buffer, 13);
+ buffer = GetMonNickname(mon, buffer);
+ buffer[0] = EXT_CTRL_CODE_BEGIN;
+ buffer[1] = 0x13;
+ buffer[2] = 0x3C;
+ buffer[3] = EOS;
+ MenuPrint(gStringVar1, 1, 12);
+
+ sub_80A0958(mon);
+ }
+}
+
+static void sub_809FBE4(void)
+{
+ u8 i;
+
+ for (i = 0; i < 28; i++)
+ {
+ sub_80A1918(i, 1);
+ }
+
+ MenuZeroFillWindowRect(11, 4, 29, 18);
+}
+
+static void sub_809FC0C(void)
+{
+ MenuPrint(gOtherText_Type2, 11, 6);
+ GetStringCenterAlignXOffset(0, 22, 4);
+ GetStringCenterAlignXOffset(2, 23, 4);
+}
+
+static void sub_809FC34(struct Pokemon *mon)
+{
+ u8 i;
+ u8 *buffer;
+ u16 friendship;
+ u8 language;
+ u16 species;
+ u8 ability;
+
+ for (i = 0; i < 5; i++)
+ {
+ sub_80A1918(i, 1);
+ }
+
+ MenuZeroFillWindowRect(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[0] = EXT_CTRL_CODE_BEGIN;
+ buffer[1] = 0x13;
+ buffer[2] = 0x4E;
+ buffer[3] = EOS;
+ MenuPrint(gStringVar1, 11, 4);
+
+ sub_80A1EF8(gOtherText_FiveQuestionsAndSlash, 13, 193, 32, 1);
+ sub_80A198C(9, 120, 48, 0);
+
+ friendship = GetMonData(mon, MON_DATA_FRIENDSHIP);
+ if (friendship < 6)
+ {
+ MenuPrint(gOtherText_EggAbout, 11, 9);
+ }
+ else if (friendship < 11)
+ {
+ MenuPrint(gOtherText_EggSoon, 11, 9);
+ }
+ else if (friendship < 41)
+ {
+ MenuPrint(gOtherText_EggSomeTime, 11, 9);
+ }
+ else
+ {
+ MenuPrint(gOtherText_EggLongTime, 11, 9);
+ }
+
+ PokemonSummaryScreen_PrintEggTrainerMemo(mon, 11, 14);
+ }
+ else
+ {
+ GetMonData(mon, MON_DATA_OT_NAME, gStringVar2);
+ language = GetMonData(mon, MON_DATA_LANGUAGE);
+ ConvertInternationalString(gStringVar2, language);
+
+ buffer = gStringVar1;
+ buffer = sub_80A1E58(buffer, 13);
+ buffer = StringCopy(buffer, gOtherText_OriginalTrainer);
+
+ if (GetMonData(mon, MON_DATA_OT_GENDER) == MALE)
+ {
+ buffer = sub_80A1E58(buffer, 9);
+ }
+ else
+ {
+ buffer = sub_80A1E58(buffer, 10);
+ }
+
+ buffer = StringCopy(buffer, gStringVar2);
+ buffer[0] = EXT_CTRL_CODE_BEGIN;
+ buffer[1] = 0x13;
+ buffer[2] = 0x4E;
+ buffer[3] = EOS;
+ MenuPrint(gStringVar1, 11, 4);
+
+ sub_80A1F98(GetMonData(mon, MON_DATA_OT_ID) & 0xFFFF, 13, 5, 2, 193, 32, 1);
+
+ species = GetMonData(mon, MON_DATA_SPECIES);
+ sub_80A198C(gBaseStats[species].type1, 120, 48, 0);
+ if (gBaseStats[species].type1 != gBaseStats[species].type2)
+ {
+ sub_80A198C(gBaseStats[species].type2, 160, 48, 1);
+ }
+
+ 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);
+
+ PokemonSummaryScreen_PrintTrainerMemo(mon, 11, 14);
+ }
+}
+
+static void sub_809FE6C(struct Pokemon *mon)
+{
+ sub_809FC0C();
+ sub_809FC34(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);
+}
+
+static void sub_809FEB8(void)
+{
+ sub_80A1FF8(gOtherText_ExpPoints, 13, 11, 14);
+ sub_80A1FF8(gOtherText_NextLv, 13, 11, 16);
+ MenuPrint(gOtherText_Terminator18, 21, 16);
+
+ sub_80A1F48(gOtherText_HP, 13, 11, 7, 42);
+ sub_80A1F48(gOtherText_Attack, 13, 11, 9, 42);
+ sub_80A1F48(gOtherText_Defense, 13, 11, 11, 42);
+ sub_80A1F48(gOtherText_SpAtk, 13, 22, 7, 36);
+ sub_80A1F48(gOtherText_SpDef, 13, 22, 9, 36);
+ sub_80A1F48(gOtherText_Speed, 13, 22, 11, 36);
+}
+
+static void sub_809FF64(struct Pokemon *mon)
+{
+ u8 i;
+ u16 heldItem;
+ u8 *buffer;
+
+ for (i = 0; i < 5; i++)
+ {
+ sub_80A1918(i, 1);
+ }
+
+ heldItem = GetMonData(mon, MON_DATA_HELD_ITEM);
+ PrintHeldItemName(heldItem, 11, 4);
+ PrintNumRibbons(mon);
+
+ buffer = gStringVar1;
+
+ ConvertIntToDecimalString(buffer, GetMonData(mon, MON_DATA_EXP));
+ MenuPrint_RightAligned(buffer, 29, 14);
+ DrawExperienceProgressBar(mon, 23, 16);
+
+ ConvertIntToDecimalString(buffer, GetMonData(mon, MON_DATA_ATK));
+ sub_8072BD8(buffer, 16, 9, 50);
+
+ ConvertIntToDecimalString(buffer, GetMonData(mon, MON_DATA_DEF));
+ sub_8072BD8(buffer, 16, 11, 50);
+
+ ConvertIntToDecimalString(buffer, GetMonData(mon, MON_DATA_SPATK));
+ sub_8072BD8(buffer, 27, 7, 18);
+
+ ConvertIntToDecimalString(buffer, GetMonData(mon, MON_DATA_SPDEF));
+ sub_8072BD8(buffer, 27, 9, 18);
+
+ ConvertIntToDecimalString(buffer, GetMonData(mon, MON_DATA_SPEED));
+ sub_8072BD8(buffer, 27, 11, 18);
+
+ buffer = sub_8072C14(buffer, GetMonData(mon, MON_DATA_HP), 24, 1);
+ *buffer++ = CHAR_SLASH;
+ buffer = sub_8072C14(buffer, GetMonData(mon, MON_DATA_MAX_HP), 48, 1);
+
+ MenuPrint_PixelCoords(gStringVar1, 126, 56, 1);
+}
+
+static void sub_80A0090(struct Pokemon *mon)
+{
+ sub_809FEB8();
+ sub_809FF64(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);
+}
+
+static void sub_80A00F4(u8 a)
+{
+ if (pssData.moveToLearn != 0 || a != 4)
+ {
+ if (pssData.page == PSS_PAGE_BATTLE_MOVES)
+ {
+ sub_80A1FF8(gOtherText_Power2, 13, 1, 15);
+ sub_80A1FF8(gOtherText_Accuracy2, 13, 1, 17);
+ }
+ else
+ {
+ sub_80A1FF8(gOtherText_Appeal2, 13, 1, 15);
+ sub_80A1FF8(gOtherText_Jam2, 13, 1, 17);
+ }
+ }
+}
+
+static void sub_80A015C(struct Pokemon *mon)
+{
+ u8 i;
+ u16 move;
+ u16 curPP;
+ u8 ppBonuses;
+ u8 maxPP;
+ u8 *buffer;
+
+ for (i = 0; i < 4; i++)
+ {
+ move = GetMonMove(mon, i);
+ curPP = GetMonMovePP(mon, i);
+
+ if (move == 0)
+ {
+ sub_80A1918(i, 1);
+ sub_80A1FF8(gOtherText_OneDash, 13, 15, (2 * i) + 4);
+ MenuPrint(gOtherText_TwoDashes, 26, (2 * i) + 4);
+ }
+ else
+ {
+ if (pssData.page == PSS_PAGE_BATTLE_MOVES)
+ {
+ sub_80A198C(gBattleMoves[move].type, 87, ((2 * i) + 4) * 8, i);
+ }
+ else
+ {
+ sub_80A198C(gContestMoves[move].contestCategory + 18, 87, ((2 * i) + 4) * 8, i);
+ }
+
+ sub_80A1FF8(gMoveNames[move], 13, 15, (2 * i) + 4);
+ GetStringCenterAlignXOffset(1, 24, (2 * i) + 4);
+
+ ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES);
+ maxPP = CalculatePPWithBonus(move, ppBonuses, i);
+
+ buffer = gStringVar1;
+ buffer = sub_8072C14(buffer, curPP, 14, 1);
+ *buffer++ = CHAR_SLASH;
+ sub_8072C14(buffer, maxPP, 32, 1);
+ MenuPrint(gStringVar1, 25, (2 * i) + 4);
+ }
+ }
+}
+
+static void sub_80A029C(struct Pokemon *mon)
+{
+ u8 *buffer;
+ u16 move;
+ u8 pp;
+
+ if (pssData.moveToLearn == 0)
+ {
+ sub_80A1FF8(gOtherText_CancelNoTerminator, 13, 15, 12);
+ return;
+ }
+
+ move = pssData.moveToLearn;
+
+ if (pssData.page == PSS_PAGE_BATTLE_MOVES)
+ sub_80A198C(gBattleMoves[move].type, 87, 96, 4);
+ else
+ sub_80A198C(gContestMoves[move].contestCategory + 18, 87, 96, 4);
+
+ if (pssData.page == PSS_PAGE_BATTLE_MOVES)
+ sub_80A1FF8(gMoveNames[move], 10, 15, 12);
+ else
+ sub_80A1FF8(gMoveNames[move], 9, 15, 12);
+
+ GetStringCenterAlignXOffset(1, 24, 12);
+
+ buffer = gStringVar1;
+ pp = gBattleMoves[move].pp;
+ buffer = sub_8072C14(buffer, pp, 14, 1);
+ *buffer++ = CHAR_SLASH;
+ buffer = sub_8072C14(buffer, pp, 32, 1);
+ MenuPrint(gStringVar1, 25, 12);
+}
+
+static void sub_80A0390(void)
+{
+ u8 i;
+
+ for (i = 0; i < MAX_MON_MOVES; i++)
+ {
+ MenuZeroFillWindowRect(15, (i * 2) + 4, 28, (i * 2) + 5);
+ }
+}
+
+u16 sub_80A03BC(struct Pokemon *mon, u8 selectedMoveIndex)
+{
+ u16 move;
+
+ if (selectedMoveIndex != MAX_MON_MOVES)
+ {
+ move = GetMonMove(mon, selectedMoveIndex);
+ }
+ else
+ {
+ if (pssData.moveToLearn != 0)
+ {
+ move = pssData.moveToLearn;
+ }
+ else
+ {
+ move = 0xFFFF;
+ }
+ }
+
+ return move;
+}
+
+void sub_80A03F0(struct Pokemon *mon, u8 *selectedMoveIndex)
+{
+ u16 move = sub_80A03BC(mon, *selectedMoveIndex);
+
+ if (pssData.page == PSS_PAGE_BATTLE_MOVES)
+ {
+ sub_80A04CC(move);
+ sub_80A057C(0xFFFF);
+ }
+ else
+ {
+ sub_80A057C(move);
+ }
+}
+
+static void sub_80A0428(struct Pokemon *mon, u8 *selectedMoveIndex)
+{
+ u16 move = sub_80A03BC(mon, *selectedMoveIndex);
+ MenuZeroFillWindowRect(11, 15, 28, 18);
+
+ if (pssData.page == PSS_PAGE_BATTLE_MOVES)
+ {
+ sub_80A046C(move);
+ }
+ else
+ {
+ sub_80A0498(move);
+ }
+
+ sub_80A03F0(mon, selectedMoveIndex);
+}
+
+static void sub_80A046C(u16 move)
+{
+ if (move == 0xFFFF) return;
+
+ MenuPrint(gMoveDescriptions[move - 1], 11, 15);
+}
+
+static void sub_80A0498(u16 move)
+{
+ if (move == 0xFFFF) return;
+
+ MenuPrint(gContestEffectStrings[gContestMoves[move].effect], 11, 15);
+}
+
+static void sub_80A04CC(u16 move)
+{
+ u8 *buffer;
+
+ if (move == 0xFFFF) return;
+
+ if (gBattleMoves[move].power <= 1)
+ {
+ buffer = gStringVar1;
+ buffer = sub_8072C74(buffer, gOtherText_ThreeDashes2, 21, 1);
+ MenuPrint(gStringVar1, 7, 15);
+ }
+ else
+ {
+ buffer = gStringVar1;
+ buffer = sub_8072C14(buffer, gBattleMoves[move].power, 21, 1);
+ MenuPrint(gStringVar1, 7, 15);
+ }
+
+ if (gBattleMoves[move].accuracy == 0)
+ {
+ buffer = gStringVar1;
+ buffer = sub_8072C74(buffer, gOtherText_ThreeDashes2, 21, 1);
+ MenuPrint(gStringVar1, 7, 17);
+ }
+ else
+ {
+ buffer = gStringVar1;
+ buffer = sub_8072C14(buffer, gBattleMoves[move].accuracy, 21, 1);
+ MenuPrint(gStringVar1, 7, 17);
+ }
+}
+
+#ifdef NONMATCHING // The two vramAddr lines are non-matching.
+static void sub_80A057C(u16 move)
+{
+ u8 appeal;
+ u8 jam;
+ u8 i;
+ u16 *vramAddr = (u16 *)(VRAM + 0x6800);
+
+ if (move == 0xFFFF) return;
+
+ appeal = gContestEffects[gContestMoves[move].effect].appeal;
+ if (appeal != 0xFF)
+ {
+ appeal = appeal / 10;
+ }
+
+ for (i = 0; i < 8; i++)
+ {
+ u16 tile = 0x1039;
+ int and = 3;
+ int offset = 0x3CC / 2;
+ if (appeal != 0xFF && i < appeal)
+ {
+ tile = 0x103A;
+ }
+
+ *(&vramAddr[(i >> 2 << 5) + (i & and)] + offset) = tile;
+ }
+
+ if (move == 0xFFFF) return;
+
+ jam = gContestEffects[gContestMoves[move].effect].jam;
+ if (jam != 0xFF)
+ {
+ jam = jam / 10;
+ }
+
+ for (i = 0; i < 8; i++)
+ {
+ u16 tile = 0x103D;
+ int and = 3;
+ int offset = 0x226;
+ if (jam != 0xFF && i < jam)
+ {
+ tile = 0x103C;
+ }
+
+ *(&vramAddr[(i >> 2 << 5) + (i & and)] + offset) = tile;
+ }
+}
+#else
+__attribute__((naked))
+static void sub_80A057C(u16 move)
+{
+ 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, 16\n\
+ lsrs r5, r0, 16\n\
+ ldr r0, _080A0648 @ =0x06006800\n\
+ mov r8, r0\n\
+ ldr r0, _080A064C @ =0x0000ffff\n\
+ cmp r5, r0\n\
+ beq _080A063A\n\
+ ldr r1, _080A0650 @ =gContestEffects\n\
+ ldr r2, _080A0654 @ =gContestMoves\n\
+ lsls r3, r5, 3\n\
+ adds r0, r3, r2\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldrb r4, [r0, 0x1]\n\
+ mov r10, r2\n\
+ mov r9, r3\n\
+ cmp r4, 0xFF\n\
+ beq _080A05B8\n\
+ adds r0, r4, 0\n\
+ movs r1, 0xA\n\
+ bl __udivsi3\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+_080A05B8:\n\
+ movs r2, 0\n\
+ movs r7, 0x3\n\
+ movs r6, 0xF3\n\
+ lsls r6, 2\n\
+_080A05C0:\n\
+ ldr r3, _080A0658 @ =0x00001039\n\
+ cmp r4, 0xFF\n\
+ beq _080A05CC\n\
+ cmp r2, r4\n\
+ bcs _080A05CC\n\
+ adds r3, 0x1\n\
+_080A05CC:\n\
+ lsrs r0, r2, 2\n\
+ lsls r0, 5\n\
+ adds r1, r2, 0\n\
+ ands r1, r7\n\
+ adds r1, r0\n\
+ lsls r1, 1\n\
+ add r1, r8\n\
+ adds r1, r6\n\
+ strh r3, [r1]\n\
+ adds r0, r2, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r2, r0, 24\n\
+ cmp r2, 0x7\n\
+ bls _080A05C0\n\
+ ldr r0, _080A064C @ =0x0000ffff\n\
+ cmp r5, r0\n\
+ beq _080A063A\n\
+ mov r0, r9\n\
+ add r0, r10\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 2\n\
+ ldr r1, _080A0650 @ =gContestEffects\n\
+ adds r0, r1\n\
+ ldrb r4, [r0, 0x2]\n\
+ cmp r4, 0xFF\n\
+ beq _080A060C\n\
+ adds r0, r4, 0\n\
+ movs r1, 0xA\n\
+ bl __udivsi3\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+_080A060C:\n\
+ movs r2, 0\n\
+ movs r6, 0x3\n\
+ ldr r5, _080A065C @ =0x0000044c\n\
+_080A0612:\n\
+ ldr r3, _080A0660 @ =0x0000103d\n\
+ cmp r4, 0xFF\n\
+ beq _080A061E\n\
+ cmp r2, r4\n\
+ bcs _080A061E\n\
+ subs r3, 0x1\n\
+_080A061E:\n\
+ lsrs r0, r2, 2\n\
+ lsls r0, 5\n\
+ adds r1, r2, 0\n\
+ ands r1, r6\n\
+ adds r1, r0\n\
+ lsls r1, 1\n\
+ add r1, r8\n\
+ adds r1, r5\n\
+ strh r3, [r1]\n\
+ adds r0, r2, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r2, r0, 24\n\
+ cmp r2, 0x7\n\
+ bls _080A0612\n\
+_080A063A:\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\
+_080A0648: .4byte 0x06006800\n\
+_080A064C: .4byte 0x0000ffff\n\
+_080A0650: .4byte gContestEffects\n\
+_080A0654: .4byte gContestMoves\n\
+_080A0658: .4byte 0x00001039\n\
+_080A065C: .4byte 0x0000044c\n\
+_080A0660: .4byte 0x0000103d\n\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
bool8 PokemonSummaryScreen_CheckOT(struct Pokemon *mon)
{
u32 trainerId;
- if (unk_2018000 == gEnemyParty)
+ if (ewram18000_3 == gEnemyParty)
{
u8 enemyId = GetMultiplayerId() ^ 1;
trainerId = gLinkPlayers[enemyId].trainerId & 0xFFFF;
@@ -38,7 +3372,7 @@ bool8 PokemonSummaryScreen_CheckOT(struct Pokemon *mon)
return FALSE;
}
-void PokemonSummaryScreen_PrintEggTrainerMemo(struct Pokemon *mon, u8 left, u8 top)
+static void PokemonSummaryScreen_PrintEggTrainerMemo(struct Pokemon *mon, u8 left, u8 top)
{
u8 locationMet;
u8 gameMet = GetMonData(mon, MON_DATA_MET_GAME);
@@ -53,6 +3387,7 @@ void PokemonSummaryScreen_PrintEggTrainerMemo(struct Pokemon *mon, u8 left, u8 t
if (locationMet == 255)
{
+ // Eggs received from Pokemon Box.
MenuPrint(gOtherText_EggNicePlace, left, top);
return;
}
@@ -74,12 +3409,12 @@ void PokemonSummaryScreen_PrintEggTrainerMemo(struct Pokemon *mon, u8 left, u8 t
MenuPrint(gOtherText_EggDayCare, left, top);
}
-void PokemonSummaryScreen_PrintTrainerMemo(struct Pokemon *pokemon, u8 left, u8 top)
+static void PokemonSummaryScreen_PrintTrainerMemo(struct Pokemon *mon, u8 left, u8 top)
{
u8 locationMet;
u8 gameMet;
u8 *ptr = gStringVar4;
- u8 nature = GetNature(pokemon);
+ u8 nature = GetNature(mon);
#if ENGLISH
ptr = sub_80A1E9C(ptr, gNatureNames[nature], 14);
@@ -96,11 +3431,11 @@ void PokemonSummaryScreen_PrintTrainerMemo(struct Pokemon *pokemon, u8 left, u8
ptr = StringCopy(ptr, gOtherText_Terminator4);
#endif
- if (PokemonSummaryScreen_CheckOT(pokemon) == TRUE)
+ if (PokemonSummaryScreen_CheckOT(mon) == TRUE)
{
- locationMet = GetMonData(pokemon, MON_DATA_MET_LOCATION);
+ locationMet = GetMonData(mon, MON_DATA_MET_LOCATION);
- if (GetMonData(pokemon, MON_DATA_MET_LEVEL) == 0)
+ if (GetMonData(mon, MON_DATA_MET_LEVEL) == 0)
{
ptr = PokemonSummaryScreen_CopyPokemonLevel(ptr, 5);
*ptr = CHAR_NEWLINE;
@@ -119,7 +3454,7 @@ void PokemonSummaryScreen_PrintTrainerMemo(struct Pokemon *pokemon, u8 left, u8
}
else
{
- u8 levelMet = GetMonData(pokemon, MON_DATA_MET_LEVEL);
+ u8 levelMet = GetMonData(mon, MON_DATA_MET_LEVEL);
ptr = PokemonSummaryScreen_CopyPokemonLevel(ptr, levelMet);
*ptr = CHAR_NEWLINE;
@@ -132,7 +3467,7 @@ void PokemonSummaryScreen_PrintTrainerMemo(struct Pokemon *pokemon, u8 left, u8
}
else
{
- gameMet = GetMonData(pokemon, MON_DATA_MET_GAME);
+ gameMet = GetMonData(mon, MON_DATA_MET_GAME);
if (!(gameMet == VERSION_RUBY || gameMet == VERSION_SAPPHIRE || gameMet == VERSION_EMERALD))
{
@@ -143,10 +3478,10 @@ void PokemonSummaryScreen_PrintTrainerMemo(struct Pokemon *pokemon, u8 left, u8
}
else
{
- locationMet = GetMonData(pokemon, MON_DATA_MET_LOCATION);
+ locationMet = GetMonData(mon, MON_DATA_MET_LOCATION);
if (locationMet == 0xFF)
{
- u8 levelMet = GetMonData(pokemon, MON_DATA_MET_LEVEL);
+ u8 levelMet = GetMonData(mon, MON_DATA_MET_LEVEL);
ptr = PokemonSummaryScreen_CopyPokemonLevel(ptr, levelMet);
*ptr = CHAR_NEWLINE;
@@ -163,7 +3498,7 @@ void PokemonSummaryScreen_PrintTrainerMemo(struct Pokemon *pokemon, u8 left, u8
}
else
{
- u8 levelMet = GetMonData(pokemon, MON_DATA_MET_LEVEL);
+ u8 levelMet = GetMonData(mon, MON_DATA_MET_LEVEL);
ptr = PokemonSummaryScreen_CopyPokemonLevel(ptr, levelMet);
*ptr = CHAR_NEWLINE;
@@ -178,3 +3513,2065 @@ void PokemonSummaryScreen_PrintTrainerMemo(struct Pokemon *pokemon, u8 left, u8
MenuPrint(gStringVar4, left++, top++);
}
+
+static void sub_80A0958(struct Pokemon *mon)
+{
+ u16 species;
+ u8 *buffer;
+ u8 level;
+
+ species = GetMonData(mon, MON_DATA_SPECIES);
+
+ buffer = gStringVar1;
+ buffer = sub_80A1E58(buffer, 13);
+ buffer[0] = EXT_CTRL_CODE_BEGIN;
+ buffer[1] = 0x11;
+ buffer[2] = 0x7;
+ buffer[3] = CHAR_SLASH;
+ buffer += 4;
+ buffer = StringCopy(buffer, gSpeciesNames[species]);
+
+ buffer[0] = EXT_CTRL_CODE_BEGIN;
+ buffer[1] = 0x13;
+ buffer[2] = 0x50;
+ buffer[3] = EOS;
+
+ MenuPrint(gStringVar1, 0, 14);
+ MenuZeroFillWindowRect(3, 16, 9, 17);
+
+ level = GetMonData(mon, MON_DATA_LEVEL);
+
+ buffer = sub_80A1E58(gStringVar1, 13);
+ buffer[0] = 0x34;
+ buffer += 1;
+ buffer = ConvertIntToDecimalString(buffer, level);
+
+ buffer[0] = EXT_CTRL_CODE_BEGIN;
+ buffer[1] = 0x13;
+ buffer[2] = 0x20;
+ buffer[3] = EOS;
+
+ MenuPrint(gStringVar1, 3, 16);
+ sub_80A0A2C(mon, 7, 16);
+}
+
+static void sub_80A0A2C(struct Pokemon *mon, u8 left, u8 top)
+{
+ const u8 *genderSymbol;
+ u8 var1;
+ u8 bottom;
+ u16 species = GetMonData(mon, MON_DATA_SPECIES2);
+
+ if (species != SPECIES_NIDORAN_M && species != SPECIES_NIDORAN_F)
+ {
+ u8 gender = GetMonGender(mon);
+ switch (gender)
+ {
+ default:
+ bottom = top + 1;
+ MenuZeroFillWindowRect(left, top, left, bottom);
+ return;
+ case MON_MALE:
+ genderSymbol = gOtherText_MaleSymbol2;
+ var1 = 11;
+ break;
+ case MON_FEMALE:
+ genderSymbol = gOtherText_FemaleSymbolAndLv;
+ var1 = 12;
+ break;
+ }
+
+ sub_80A1FF8(genderSymbol, var1, left, top);
+ }
+}
+
+u8 GetNumRibbons(struct Pokemon *mon)
+{
+ u8 numRibbons = GetMonData(mon, MON_DATA_COOL_RIBBON);
+ numRibbons += GetMonData(mon, MON_DATA_BEAUTY_RIBBON);
+ numRibbons += GetMonData(mon, MON_DATA_CUTE_RIBBON);
+ numRibbons += GetMonData(mon, MON_DATA_SMART_RIBBON);
+ numRibbons += GetMonData(mon, MON_DATA_TOUGH_RIBBON);
+ numRibbons += GetMonData(mon, MON_DATA_CHAMPION_RIBBON);
+ numRibbons += GetMonData(mon, MON_DATA_WINNING_RIBBON);
+ numRibbons += GetMonData(mon, MON_DATA_VICTORY_RIBBON);
+ numRibbons += GetMonData(mon, MON_DATA_ARTIST_RIBBON);
+ numRibbons += GetMonData(mon, MON_DATA_EFFORT_RIBBON);
+ numRibbons += GetMonData(mon, MON_DATA_GIFT_RIBBON_1);
+ numRibbons += GetMonData(mon, MON_DATA_GIFT_RIBBON_2);
+ numRibbons += GetMonData(mon, MON_DATA_GIFT_RIBBON_3);
+ numRibbons += GetMonData(mon, MON_DATA_GIFT_RIBBON_4);
+ numRibbons += GetMonData(mon, MON_DATA_GIFT_RIBBON_5);
+ numRibbons += GetMonData(mon, MON_DATA_GIFT_RIBBON_6);
+ numRibbons += GetMonData(mon, MON_DATA_GIFT_RIBBON_7);
+
+ return numRibbons;
+}
+
+static void PrintNumRibbons(struct Pokemon *mon)
+{
+ u8 numRibbons = GetNumRibbons(mon);
+
+ if (numRibbons == 0)
+ {
+ StringCopy(gStringVar1, gOtherText_None);
+ }
+ else
+ {
+ u8 ribbonsStringLength;
+ u8 *text;
+
+ StringCopy(gStringVar1, gOtherText_Ribbons00);
+ ribbonsStringLength = StringLength(gStringVar1);
+
+ text = &gStringVar1[ribbonsStringLength - 2];
+
+ text[0] = EXT_CTRL_CODE_BEGIN;
+ text[1] = 0x14;
+ text[2] = 6;
+ ConvertIntToDecimalStringN(&text[3], numRibbons, 1, 2);
+ }
+
+ MenuPrint(sUnknown_083C15AE, 21, 4);
+}
+
+static void PrintHeldItemName(u16 itemId, u8 left, u8 top)
+{
+ if (itemId == ITEM_ENIGMA_BERRY
+ && sub_80F9344() == TRUE
+ && IsLinkDoubleBattle() == TRUE
+ && (pssData.monIndex == 1 || pssData.monIndex == 4 || pssData.monIndex == 5))
+ {
+ StringCopy(gStringVar1, ItemId_GetItem(itemId)->name);
+ }
+ else if (itemId == 0)
+ {
+ StringCopy(gStringVar1, gOtherText_None);
+ }
+ else
+ {
+ CopyItemName(itemId, gStringVar1);
+ }
+
+ MenuPrint(sUnknown_083C15B4, left, top);
+}
+
+static void DrawExperienceProgressBar(struct Pokemon *mon, u8 left, u8 top)
+{
+ u32 curExperience;
+ u8 level;
+ u16 species;
+ u8 i;
+ u16 *vramAddr;
+ u32 expToNextLevel = 0;
+ s64 numExpProgressBarTicks = 0;
+
+ curExperience = GetMonData(mon, MON_DATA_EXP);
+ level = GetMonData(mon, MON_DATA_LEVEL);
+ species = GetMonData(mon, MON_DATA_SPECIES);
+
+ // The experience progress bar is shown as empty when the Pokemon is already level 100.
+ if (level < 100)
+ {
+ u32 nextLevelExp;
+ u32 expSinceLastLevel;
+ u32 expBetweenLevels;
+ u32 curLevelExperience;
+
+ nextLevelExp = gExperienceTables[gBaseStats[species].growthRate][level + 1];
+ expToNextLevel = nextLevelExp - curExperience;
+ curLevelExperience = gExperienceTables[gBaseStats[species].growthRate][level];
+ expBetweenLevels = (nextLevelExp - curLevelExperience);
+ expSinceLastLevel = curExperience - curLevelExperience;
+
+ // Calculate the number of 1-pixel "ticks" to illuminate in the experience progress bar.
+ // There are 8 tiles that make up the bar, and each tile has 8 "ticks". Hence, the numerator
+ // is multiplied by 64.
+ numExpProgressBarTicks = (expSinceLastLevel * 64) / expBetweenLevels;
+ if (numExpProgressBarTicks == 0 && expSinceLastLevel != 0)
+ {
+ // Ensure sure some exp. gain is visible in the progress bar.
+ numExpProgressBarTicks = 1;
+ }
+ }
+
+ ConvertIntToDecimalString(gStringVar1, expToNextLevel);
+ MenuPrint_RightAligned(gStringVar1, left + 6, top);
+
+
+ // Draw each of the 8 tiles that make up the experience progress bar.
+ vramAddr = (u16 *)(VRAM + 0x4CAA);
+ for (i = 0; i < 8; i++)
+ {
+ u16 tile;
+ u16 baseTile = 0x2062;
+
+ if (numExpProgressBarTicks > 7)
+ {
+ tile = 0x206A; // full exp. bar block
+ }
+ else
+ {
+ tile = (numExpProgressBarTicks % 8) + baseTile;
+ }
+
+ vramAddr[i] = tile;
+
+ numExpProgressBarTicks -= 8;
+ if (numExpProgressBarTicks < 0)
+ {
+ numExpProgressBarTicks = 0;
+ }
+ }
+}
+
+// Prints the text displayed in the top-left or top-right of the screen.
+// Each of the 4 summary screens displays different text.
+static void PrintSummaryWindowHeaderText(void)
+{
+ u8 *buffer = gStringVar1;
+
+ buffer[0] = EXT_CTRL_CODE_BEGIN;
+ buffer[1] = 0x12;
+ buffer[2] = 0x2;
+
+ buffer += 3;
+ buffer = sub_80A1E58(buffer, 13);
+ buffer = StringCopy(buffer, sPageHeaderTexts[pssData.headerTextId]);
+
+ buffer[0] = EXT_CTRL_CODE_BEGIN;
+ buffer[1] = 0x13;
+ buffer[2] = 0x58;
+ buffer[3] = EOS;
+
+ MenuPrint(gStringVar1, 0, 0);
+
+ if (pssData.headerActionTextId != 0)
+ {
+ GetStringCenterAlignXOffset(5, 23, 0);
+ GetStringCenterAlignXOffset(6, 24, 0);
+ }
+ else
+ {
+ MenuZeroFillWindowRect(23, 0, 24, 1);
+ }
+
+ buffer = gStringVar1;
+ buffer = sub_80A1E58(buffer, 13);
+ buffer = StringCopy(buffer, sPageHeaderTexts[pssData.headerActionTextId]);
+
+ buffer[0] = EXT_CTRL_CODE_BEGIN;
+ buffer[1] = 0x13;
+ buffer[2] = 0x28;
+ buffer[3] = EOS;
+
+ MenuPrint(gStringVar1, 25, 0);
+}
+
+// If the given pokemon previously had the pokerus virus, a small
+// dot will be drawn in between the pokeball and the mon's level.
+static void DrawPokerusSurvivorDot(struct Pokemon *mon)
+{
+ u16 *vram1 = (u16 *)(VRAM + 0xE444);
+ u16 *vram2 = (u16 *)(VRAM + 0xEC44);
+
+ if (!CheckPartyPokerus(mon, 0) && CheckPartyHasHadPokerus(mon, 0))
+ {
+ *vram1 = 0x2C;
+ *vram2 = 0x2C;
+ }
+ else
+ {
+ *vram1 = 0x081A;
+ *vram2 = 0x081A;
+ }
+}
+
+// Draws the 4 small navigation circles at the top of the pokemon summary screen.
+#ifdef NONMATCHING
+static void DrawSummaryScreenNavigationDots(void)
+{
+ void *dest;
+ u16 arr[8];
+ u8 i = 0;
+ struct PokemonSummaryScreenStruct *SS = (struct PokemonSummaryScreenStruct *)(gSharedMem + 0x18000);
+ u16 var1 = 0x4040;
+ u16 var2 = 0x404A;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (i < SS->unk75)
+ {
+ arr[i * 2] = var1;
+ arr[(i * 2) + 1] = var1 + 1;
+ }
+ else if (i > SS->unk76)
+ {
+ arr[i * 2] = var2;
+ arr[(i * 2) + 1] = var2 + 1;
+ }
+ else
+ {
+ if (i < SS->unkB)
+ {
+ arr[i * 2] = 0x4046;
+ arr[(i * 2) + 1] = 0x4046 + 1;
+ }
+
+ if (i == SS->unkB)
+ {
+ if (i != SS->unk76)
+ {
+ arr[i * 2] = 0x4041;
+ arr[(i * 2) + 1] = 0x4041 + 1;
+ }
+ else
+ {
+ arr[i * 2] = 0x404B;
+ arr[(i * 2) + 1] = 0x404B + 1;
+ }
+ }
+
+ if (i > SS->unkB)
+ {
+ if (i != SS->unk76)
+ {
+ arr[i * 2] = 0x4043;
+ arr[(i * 2) + 1] = 0x4043 + 1;
+ }
+ else
+ {
+ arr[i * 2] = 0x4048;
+ arr[(i * 2) + 1] = 0x4048 + 1;
+ }
+ }
+ }
+ }
+
+ dest = (void *)(VRAM + 0xE016);
+ DmaCopy16(3, arr, dest, 16);
+
+ for (i = 0; i < 8; i++)
+ {
+ arr[i] += 0x10;
+ }
+
+ dest = (void *)(VRAM + 0xE056);
+ DmaCopy16(3, arr, dest, 16);
+}
+#else
+__attribute__((naked))
+static void DrawSummaryScreenNavigationDots(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 r3, 0\n\
+ ldr r6, _080A0F24 @ =gSharedMem + 0x18000\n\
+ adds r5, r6, 0\n\
+ ldr r1, _080A0F28 @ =0x00004040\n\
+ mov r8, r1\n\
+ ldr r2, _080A0F2C @ =0x0000404a\n\
+ mov r10, r2\n\
+_080A0F02:\n\
+ adds r0, r5, 0\n\
+ adds r0, 0x75\n\
+ ldrb r0, [r0]\n\
+ cmp r3, r0\n\
+ bcs _080A0F30\n\
+ lsls r1, r3, 1\n\
+ lsls r0, r3, 2\n\
+ add r0, sp\n\
+ mov r4, r8\n\
+ strh r4, [r0]\n\
+ adds r1, 0x1\n\
+ lsls r1, 1\n\
+ mov r7, sp\n\
+ adds r0, r7, r1\n\
+ strh r4, [r0]\n\
+ b _080A0FE2\n\
+ .align 2, 0\n\
+_080A0F24: .4byte gSharedMem + 0x18000\n\
+_080A0F28: .4byte 0x00004040\n\
+_080A0F2C: .4byte 0x0000404a\n\
+_080A0F30:\n\
+ movs r0, 0x76\n\
+ adds r0, r6\n\
+ mov r12, r0\n\
+ ldrb r1, [r0]\n\
+ cmp r3, r1\n\
+ bls _080A0F52\n\
+ lsls r1, r3, 1\n\
+ lsls r0, r3, 2\n\
+ add r0, sp\n\
+ mov r2, r10\n\
+ strh r2, [r0]\n\
+ adds r1, 0x1\n\
+ lsls r1, 1\n\
+ mov r4, sp\n\
+ adds r0, r4, r1\n\
+ strh r2, [r0]\n\
+ b _080A0FE2\n\
+_080A0F52:\n\
+ ldrb r4, [r5, 0xB]\n\
+ cmp r3, r4\n\
+ bcs _080A0F6E\n\
+ lsls r1, r3, 1\n\
+ lsls r0, r3, 2\n\
+ mov r7, sp\n\
+ adds r2, r7, r0\n\
+ ldr r0, _080A0F88 @ =0x00004046\n\
+ strh r0, [r2]\n\
+ adds r1, 0x1\n\
+ lsls r1, 1\n\
+ add r1, sp\n\
+ adds r0, 0x1\n\
+ strh r0, [r1]\n\
+_080A0F6E:\n\
+ cmp r3, r4\n\
+ bne _080A0FA6\n\
+ mov r0, r12\n\
+ ldrb r0, [r0]\n\
+ cmp r3, r0\n\
+ beq _080A0F90\n\
+ lsls r1, r3, 1\n\
+ lsls r0, r3, 2\n\
+ mov r4, sp\n\
+ adds r2, r4, r0\n\
+ ldr r0, _080A0F8C @ =0x00004041\n\
+ b _080A0F9A\n\
+ .align 2, 0\n\
+_080A0F88: .4byte 0x00004046\n\
+_080A0F8C: .4byte 0x00004041\n\
+_080A0F90:\n\
+ lsls r1, r3, 1\n\
+ lsls r0, r3, 2\n\
+ mov r7, sp\n\
+ adds r2, r7, r0\n\
+ ldr r0, _080A0FC4 @ =0x0000404b\n\
+_080A0F9A:\n\
+ strh r0, [r2]\n\
+ adds r1, 0x1\n\
+ lsls r1, 1\n\
+ add r1, sp\n\
+ adds r0, 0x1\n\
+ strh r0, [r1]\n\
+_080A0FA6:\n\
+ ldrb r0, [r5, 0xB]\n\
+ cmp r3, r0\n\
+ bls _080A0FE2\n\
+ adds r0, r6, 0\n\
+ adds r0, 0x76\n\
+ ldrb r0, [r0]\n\
+ cmp r3, r0\n\
+ beq _080A0FCC\n\
+ lsls r1, r3, 1\n\
+ lsls r0, r3, 2\n\
+ mov r4, sp\n\
+ adds r2, r4, r0\n\
+ ldr r0, _080A0FC8 @ =0x00004043\n\
+ b _080A0FD6\n\
+ .align 2, 0\n\
+_080A0FC4: .4byte 0x0000404b\n\
+_080A0FC8: .4byte 0x00004043\n\
+_080A0FCC:\n\
+ lsls r1, r3, 1\n\
+ lsls r0, r3, 2\n\
+ mov r7, sp\n\
+ adds r2, r7, r0\n\
+ ldr r0, _080A1034 @ =0x00004048\n\
+_080A0FD6:\n\
+ strh r0, [r2]\n\
+ adds r1, 0x1\n\
+ lsls r1, 1\n\
+ add r1, sp\n\
+ adds r0, 0x1\n\
+ strh r0, [r1]\n\
+_080A0FE2:\n\
+ adds r0, r3, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r3, r0, 24\n\
+ cmp r3, 0x3\n\
+ bls _080A0F02\n\
+ ldr r1, _080A1038 @ =0x0600e016\n\
+ ldr r0, _080A103C @ =0x040000d4\n\
+ mov r2, sp\n\
+ str r2, [r0]\n\
+ str r1, [r0, 0x4]\n\
+ ldr r1, _080A1040 @ =0x80000008\n\
+ str r1, [r0, 0x8]\n\
+ ldr r0, [r0, 0x8]\n\
+ movs r3, 0\n\
+_080A0FFE:\n\
+ lsls r0, r3, 1\n\
+ mov r4, sp\n\
+ adds r1, r4, r0\n\
+ ldrh r0, [r1]\n\
+ adds r0, 0x10\n\
+ strh r0, [r1]\n\
+ adds r0, r3, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r3, r0, 24\n\
+ cmp r3, 0x7\n\
+ bls _080A0FFE\n\
+ ldr r1, _080A1044 @ =0x0600e056\n\
+ ldr r0, _080A103C @ =0x040000d4\n\
+ str r4, [r0]\n\
+ str r1, [r0, 0x4]\n\
+ ldr r1, _080A1040 @ =0x80000008\n\
+ str r1, [r0, 0x8]\n\
+ ldr r0, [r0, 0x8]\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\
+_080A1034: .4byte 0x00004048\n\
+_080A1038: .4byte 0x0600e016\n\
+_080A103C: .4byte 0x040000d4\n\
+_080A1040: .4byte 0x80000008\n\
+_080A1044: .4byte 0x0600e056\n\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
+
+__attribute__((naked))
+void sub_80A1048(u8 taskId)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r8, r0\n\
+ lsls r0, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ ldr r1, _080A10A0 @ =gTasks + 0x8\n\
+ adds r6, r0, r1\n\
+ ldrh r0, [r6]\n\
+ ldrh r1, [r6, 0x2]\n\
+ adds r0, r1\n\
+ strh r0, [r6, 0x2]\n\
+ lsls r0, 16\n\
+ cmp r0, 0\n\
+ bne _080A106E\n\
+ b _080A1224\n\
+_080A106E:\n\
+ movs r5, 0x2\n\
+ ldrsh r2, [r6, r5]\n\
+ ldr r0, _080A10A4 @ =0x0000024a\n\
+ subs r0, r2\n\
+ lsls r0, 1\n\
+ ldr r1, _080A10A8 @ =gUnknown_08E73508\n\
+ adds r4, r0, r1\n\
+ ldr r5, _080A10AC @ =0x0600e480\n\
+ lsls r2, 1\n\
+ movs r0, 0x80\n\
+ lsls r0, 5\n\
+ adds r7, r1, 0\n\
+ cmp r2, r0\n\
+ bhi _080A10B4\n\
+ ldr r0, _080A10B0 @ =0x040000d4\n\
+ str r4, [r0]\n\
+ str r5, [r0, 0x4]\n\
+ lsrs r1, r2, 1\n\
+ movs r2, 0x80\n\
+ lsls r2, 24\n\
+ orrs r1, r2\n\
+ str r1, [r0, 0x8]\n\
+ ldr r0, [r0, 0x8]\n\
+ b _080A10E0\n\
+ .align 2, 0\n\
+_080A10A0: .4byte gTasks + 0x8\n\
+_080A10A4: .4byte 0x0000024a\n\
+_080A10A8: .4byte gUnknown_08E73508\n\
+_080A10AC: .4byte 0x0600e480\n\
+_080A10B0: .4byte 0x040000d4\n\
+_080A10B4:\n\
+ ldr r3, _080A110C @ =0x040000d4\n\
+ str r4, [r3]\n\
+ str r5, [r3, 0x4]\n\
+ ldr r0, _080A1110 @ =0x80000800\n\
+ str r0, [r3, 0x8]\n\
+ ldr r0, [r3, 0x8]\n\
+ movs r0, 0x80\n\
+ lsls r0, 5\n\
+ adds r4, r0\n\
+ adds r5, r0\n\
+ ldr r1, _080A1114 @ =0xfffff000\n\
+ adds r2, r1\n\
+ cmp r2, r0\n\
+ bhi _080A10B4\n\
+ str r4, [r3]\n\
+ str r5, [r3, 0x4]\n\
+ lsrs r0, r2, 1\n\
+ movs r1, 0x80\n\
+ lsls r1, 24\n\
+ orrs r0, r1\n\
+ str r0, [r3, 0x8]\n\
+ ldr r0, [r3, 0x8]\n\
+_080A10E0:\n\
+ movs r5, 0x2\n\
+ ldrsh r0, [r6, r5]\n\
+ ldr r1, _080A1118 @ =0x0000026a\n\
+ subs r1, r0\n\
+ lsls r1, 1\n\
+ adds r3, r1, r7\n\
+ ldr r4, _080A111C @ =0x0600e4c0\n\
+ lsls r1, r0, 1\n\
+ movs r0, 0x80\n\
+ lsls r0, 5\n\
+ cmp r1, r0\n\
+ bhi _080A1120\n\
+ ldr r0, _080A110C @ =0x040000d4\n\
+ str r3, [r0]\n\
+ str r4, [r0, 0x4]\n\
+ lsrs r1, 1\n\
+ movs r2, 0x80\n\
+ lsls r2, 24\n\
+ orrs r1, r2\n\
+ str r1, [r0, 0x8]\n\
+ ldr r0, [r0, 0x8]\n\
+ b _080A114C\n\
+ .align 2, 0\n\
+_080A110C: .4byte 0x040000d4\n\
+_080A1110: .4byte 0x80000800\n\
+_080A1114: .4byte 0xfffff000\n\
+_080A1118: .4byte 0x0000026a\n\
+_080A111C: .4byte 0x0600e4c0\n\
+_080A1120:\n\
+ ldr r2, _080A1178 @ =0x040000d4\n\
+ str r3, [r2]\n\
+ str r4, [r2, 0x4]\n\
+ ldr r0, _080A117C @ =0x80000800\n\
+ str r0, [r2, 0x8]\n\
+ ldr r0, [r2, 0x8]\n\
+ movs r0, 0x80\n\
+ lsls r0, 5\n\
+ adds r3, r0\n\
+ adds r4, r0\n\
+ ldr r5, _080A1180 @ =0xfffff000\n\
+ adds r1, r5\n\
+ cmp r1, r0\n\
+ bhi _080A1120\n\
+ str r3, [r2]\n\
+ str r4, [r2, 0x4]\n\
+ lsrs r0, r1, 1\n\
+ movs r1, 0x80\n\
+ lsls r1, 24\n\
+ orrs r0, r1\n\
+ str r0, [r2, 0x8]\n\
+ ldr r0, [r2, 0x8]\n\
+_080A114C:\n\
+ movs r1, 0x2\n\
+ ldrsh r0, [r6, r1]\n\
+ ldr r1, _080A1184 @ =0x0000024a\n\
+ subs r1, r0\n\
+ lsls r1, 1\n\
+ adds r3, r1, r7\n\
+ ldr r4, _080A1188 @ =0x0600ec80\n\
+ lsls r1, r0, 1\n\
+ movs r0, 0x80\n\
+ lsls r0, 5\n\
+ cmp r1, r0\n\
+ bhi _080A118C\n\
+ ldr r0, _080A1178 @ =0x040000d4\n\
+ str r3, [r0]\n\
+ str r4, [r0, 0x4]\n\
+ lsrs r1, 1\n\
+ movs r2, 0x80\n\
+ lsls r2, 24\n\
+ orrs r1, r2\n\
+ str r1, [r0, 0x8]\n\
+ ldr r0, [r0, 0x8]\n\
+ b _080A11B8\n\
+ .align 2, 0\n\
+_080A1178: .4byte 0x040000d4\n\
+_080A117C: .4byte 0x80000800\n\
+_080A1180: .4byte 0xfffff000\n\
+_080A1184: .4byte 0x0000024a\n\
+_080A1188: .4byte 0x0600ec80\n\
+_080A118C:\n\
+ ldr r2, _080A11E4 @ =0x040000d4\n\
+ str r3, [r2]\n\
+ str r4, [r2, 0x4]\n\
+ ldr r0, _080A11E8 @ =0x80000800\n\
+ str r0, [r2, 0x8]\n\
+ ldr r0, [r2, 0x8]\n\
+ movs r0, 0x80\n\
+ lsls r0, 5\n\
+ adds r3, r0\n\
+ adds r4, r0\n\
+ ldr r5, _080A11EC @ =0xfffff000\n\
+ adds r1, r5\n\
+ cmp r1, r0\n\
+ bhi _080A118C\n\
+ str r3, [r2]\n\
+ str r4, [r2, 0x4]\n\
+ lsrs r0, r1, 1\n\
+ movs r1, 0x80\n\
+ lsls r1, 24\n\
+ orrs r0, r1\n\
+ str r0, [r2, 0x8]\n\
+ ldr r0, [r2, 0x8]\n\
+_080A11B8:\n\
+ movs r1, 0x2\n\
+ ldrsh r0, [r6, r1]\n\
+ ldr r1, _080A11F0 @ =0x0000026a\n\
+ subs r1, r0\n\
+ lsls r1, 1\n\
+ adds r3, r1, r7\n\
+ ldr r4, _080A11F4 @ =0x0600ecc0\n\
+ lsls r1, r0, 1\n\
+ movs r0, 0x80\n\
+ lsls r0, 5\n\
+ cmp r1, r0\n\
+ bhi _080A11F8\n\
+ ldr r0, _080A11E4 @ =0x040000d4\n\
+ str r3, [r0]\n\
+ str r4, [r0, 0x4]\n\
+ lsrs r1, 1\n\
+ movs r2, 0x80\n\
+ lsls r2, 24\n\
+ orrs r1, r2\n\
+ str r1, [r0, 0x8]\n\
+ ldr r0, [r0, 0x8]\n\
+ b _080A1224\n\
+ .align 2, 0\n\
+_080A11E4: .4byte 0x040000d4\n\
+_080A11E8: .4byte 0x80000800\n\
+_080A11EC: .4byte 0xfffff000\n\
+_080A11F0: .4byte 0x0000026a\n\
+_080A11F4: .4byte 0x0600ecc0\n\
+_080A11F8:\n\
+ ldr r2, _080A12B0 @ =0x040000d4\n\
+ str r3, [r2]\n\
+ str r4, [r2, 0x4]\n\
+ ldr r0, _080A12B4 @ =0x80000800\n\
+ str r0, [r2, 0x8]\n\
+ ldr r0, [r2, 0x8]\n\
+ movs r0, 0x80\n\
+ lsls r0, 5\n\
+ adds r3, r0\n\
+ adds r4, r0\n\
+ ldr r5, _080A12B8 @ =0xfffff000\n\
+ adds r1, r5\n\
+ cmp r1, r0\n\
+ bhi _080A11F8\n\
+ str r3, [r2]\n\
+ str r4, [r2, 0x4]\n\
+ lsrs r0, r1, 1\n\
+ movs r1, 0x80\n\
+ lsls r1, 24\n\
+ orrs r0, r1\n\
+ str r0, [r2, 0x8]\n\
+ ldr r0, [r2, 0x8]\n\
+_080A1224:\n\
+ ldrb r4, [r6, 0x2]\n\
+ ldrh r7, [r6, 0x2]\n\
+ ldrh r0, [r6]\n\
+ mov r12, r0\n\
+ cmp r4, 0x9\n\
+ bhi _080A1272\n\
+ adds r3, r6, 0x4\n\
+ ldr r2, _080A12B0 @ =0x040000d4\n\
+ ldr r5, _080A12BC @ =0x80000001\n\
+_080A1236:\n\
+ lsls r1, r4, 1\n\
+ ldr r6, _080A12C0 @ =0x0600e480\n\
+ adds r0, r1, r6\n\
+ str r3, [r2]\n\
+ str r0, [r2, 0x4]\n\
+ str r5, [r2, 0x8]\n\
+ ldr r0, [r2, 0x8]\n\
+ adds r6, 0x40\n\
+ adds r0, r1, r6\n\
+ str r3, [r2]\n\
+ str r0, [r2, 0x4]\n\
+ str r5, [r2, 0x8]\n\
+ ldr r0, [r2, 0x8]\n\
+ ldr r6, _080A12C4 @ =0x0600ec80\n\
+ adds r0, r1, r6\n\
+ str r3, [r2]\n\
+ str r0, [r2, 0x4]\n\
+ str r5, [r2, 0x8]\n\
+ ldr r0, [r2, 0x8]\n\
+ ldr r0, _080A12C8 @ =0x0600ecc0\n\
+ adds r1, r0\n\
+ str r3, [r2]\n\
+ str r1, [r2, 0x4]\n\
+ str r5, [r2, 0x8]\n\
+ ldr r0, [r2, 0x8]\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0x9\n\
+ bls _080A1236\n\
+_080A1272:\n\
+ mov r1, r12\n\
+ lsls r0, r1, 16\n\
+ cmp r0, 0\n\
+ beq _080A1286\n\
+ lsls r0, r7, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0\n\
+ ble _080A1286\n\
+ cmp r0, 0x9\n\
+ ble _080A12A4\n\
+_080A1286:\n\
+ lsls r0, r7, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x9\n\
+ ble _080A129A\n\
+ ldr r0, _080A12CC @ =gOtherText_Status\n\
+ movs r1, 0xD\n\
+ movs r2, 0x1\n\
+ movs r3, 0x12\n\
+ bl sub_80A1FF8\n\
+_080A129A:\n\
+ bl sub_80A1D18\n\
+ mov r0, r8\n\
+ bl DestroyTask\n\
+_080A12A4:\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080A12B0: .4byte 0x040000d4\n\
+_080A12B4: .4byte 0x80000800\n\
+_080A12B8: .4byte 0xfffff000\n\
+_080A12BC: .4byte 0x80000001\n\
+_080A12C0: .4byte 0x0600e480\n\
+_080A12C4: .4byte 0x0600ec80\n\
+_080A12C8: .4byte 0x0600ecc0\n\
+_080A12CC: .4byte gOtherText_Status\n\
+ .syntax divided\n");
+}
+
+static void sub_80A12D0(s8 a)
+{
+ u8 newTaskId;
+
+ MenuZeroFillWindowRect(1, 18, 5, 19);
+ sub_80A18E4(29);
+
+ newTaskId = CreateTask(sub_80A1048, 0);
+ gTasks[newTaskId].data[0] = a;
+
+ if (a < 0)
+ {
+ gTasks[newTaskId].data[1] = 10;
+ }
+ else
+ {
+ gTasks[newTaskId].data[1] = 0;
+ }
+
+ gTasks[newTaskId].data[2] = 1;
+}
+
+// void sub_80A1334(u8 taskId)
+// {
+// u8 i;
+// s16 var1;
+
+// gTasks[taskId].data[1] += gTasks[taskId].data[0];
+
+// var1 = 0;
+// if (gTasks[taskId].data[1] >= 0)
+// {
+// var1 = 10;
+// if (gTasks[taskId].data[1] < 10)
+// {
+// var1 = gTasks[taskId].data[1];
+// }
+// }
+
+// if (var1 > 0)
+// {
+// u8 *vramAddr = (u8 *)(VRAM + 0x5B40);
+// for (i = 0; i < 7; i++)
+// {
+// CpuSet(&gUnknown_08E73E88[(i + 13) * 64], vramAddr, var1 & 0x1FFFFF);
+// vramAddr += 64;
+// }
+// }
+
+// if (var1 <= 9)
+// {
+// u8 *vramAddr = (u8 *)(VRAM + 0x5B40);
+// for (i = 0; i < 64; i++)
+// {
+// u16 val = gTasks[taskId].data[2];
+// CpuSet(&val, vramAddr, ((10 - var1) & 0x1FFFFF) | 0x800000);
+// }
+// }
+// else
+// {
+// MenuZeroFillWindowRect(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);
+// sub_80A0958(pssData.loadedMon);
+
+// if (GetMonStatusAndPokerus(pssData.loadedMon))
+// {
+// sub_80A1FF8(gOtherText_Status, 13, 1, 18);
+// }
+
+// DestroyTask(taskId);
+// }
+// }
+
+// if (gTasks[taskId].data[1] > 9)
+// {
+// if (pssData.page == PSS_PAGE_BATTLE_MOVES)
+// {
+// sub_80A00F4(gTasks[taskId].data[3]);
+// }
+
+// sub_80A0428(pssData.loadedMon, &gTasks[taskId].data[3]);
+// DestroyTask(taskId);
+// }
+// }
+__attribute__((naked))
+static void sub_80A1334(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, 0x4\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r10, r0\n\
+ lsls r0, 2\n\
+ add r0, r10\n\
+ lsls r0, 3\n\
+ ldr r1, _080A13E4 @ =gTasks + 0x8\n\
+ adds r7, r0, r1\n\
+ ldrh r0, [r7]\n\
+ ldrh r1, [r7, 0x2]\n\
+ adds r0, r1\n\
+ strh r0, [r7, 0x2]\n\
+ lsls r0, 16\n\
+ asrs r1, r0, 16\n\
+ movs r0, 0\n\
+ cmp r1, 0\n\
+ blt _080A136A\n\
+ movs r0, 0xA\n\
+ cmp r1, 0xA\n\
+ bgt _080A136A\n\
+ ldrh r0, [r7, 0x2]\n\
+_080A136A:\n\
+ lsls r0, 16\n\
+ asrs r2, r0, 16\n\
+ mov r9, r0\n\
+ cmp r2, 0\n\
+ ble _080A13A6\n\
+ movs r0, 0xA\n\
+ subs r0, r2\n\
+ lsls r0, 1\n\
+ ldr r1, _080A13E8 @ =0x06005b40\n\
+ adds r4, r0, r1\n\
+ movs r5, 0\n\
+ adds r6, r2, 0\n\
+ ldr r0, _080A13EC @ =0x001fffff\n\
+ mov r8, r0\n\
+_080A1386:\n\
+ adds r0, r5, 0\n\
+ adds r0, 0xD\n\
+ lsls r0, 6\n\
+ ldr r1, _080A13F0 @ =gUnknown_08E73E88\n\
+ adds r0, r1\n\
+ adds r1, r4, 0\n\
+ mov r2, r8\n\
+ ands r2, r6\n\
+ bl CpuSet\n\
+ adds r4, 0x40\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0x6\n\
+ bls _080A1386\n\
+_080A13A6:\n\
+ mov r1, r9\n\
+ asrs r2, r1, 16\n\
+ cmp r2, 0x9\n\
+ bgt _080A13F4\n\
+ ldr r4, _080A13E8 @ =0x06005b40\n\
+ movs r5, 0\n\
+ mov r8, sp\n\
+ movs r0, 0xA\n\
+ subs r6, r0, r2\n\
+ ldr r0, _080A13EC @ =0x001fffff\n\
+ ands r6, r0\n\
+ movs r0, 0x80\n\
+ lsls r0, 17\n\
+ mov r9, r0\n\
+_080A13C2:\n\
+ ldrh r0, [r7, 0x4]\n\
+ mov r1, r8\n\
+ strh r0, [r1]\n\
+ mov r0, sp\n\
+ adds r1, r4, 0\n\
+ mov r2, r9\n\
+ orrs r2, r6\n\
+ bl CpuSet\n\
+ adds r4, 0x40\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0x6\n\
+ bls _080A13C2\n\
+ b _080A1400\n\
+ .align 2, 0\n\
+_080A13E4: .4byte gTasks + 0x8\n\
+_080A13E8: .4byte 0x06005b40\n\
+_080A13EC: .4byte 0x001fffff\n\
+_080A13F0: .4byte gUnknown_08E73E88\n\
+_080A13F4:\n\
+ movs r0, 0\n\
+ movs r1, 0x13\n\
+ movs r2, 0x9\n\
+ movs r3, 0x13\n\
+ bl MenuZeroFillWindowRect\n\
+_080A1400:\n\
+ movs r1, 0\n\
+ ldrsh r0, [r7, r1]\n\
+ cmp r0, 0\n\
+ beq _080A1410\n\
+ movs r1, 0x2\n\
+ ldrsh r0, [r7, r1]\n\
+ cmp r0, 0\n\
+ bge _080A144A\n\
+_080A1410:\n\
+ ldr r4, _080A1480 @ =gSharedMem + 0x18000\n\
+ ldrb r0, [r4, 0xB]\n\
+ cmp r0, 0x2\n\
+ bne _080A1444\n\
+ movs r0, 0\n\
+ movs r1, 0xE\n\
+ movs r2, 0x9\n\
+ movs r3, 0x12\n\
+ bl MenuZeroFillWindowRect\n\
+ adds r4, 0x10\n\
+ adds r0, r4, 0\n\
+ bl sub_80A0958\n\
+ adds r0, r4, 0\n\
+ bl GetMonStatusAndPokerus\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080A1444\n\
+ ldr r0, _080A1484 @ =gOtherText_Status\n\
+ movs r1, 0xD\n\
+ movs r2, 0x1\n\
+ movs r3, 0x12\n\
+ bl sub_80A1FF8\n\
+_080A1444:\n\
+ mov r0, r10\n\
+ bl DestroyTask\n\
+_080A144A:\n\
+ movs r1, 0x2\n\
+ ldrsh r0, [r7, r1]\n\
+ cmp r0, 0x9\n\
+ ble _080A1470\n\
+ ldr r4, _080A1480 @ =gSharedMem + 0x18000\n\
+ ldrb r0, [r4, 0xB]\n\
+ cmp r0, 0x2\n\
+ bne _080A1460\n\
+ ldrb r0, [r7, 0x6]\n\
+ bl sub_80A00F4\n\
+_080A1460:\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x10\n\
+ adds r1, r7, 0x6\n\
+ bl sub_80A0428\n\
+ mov r0, r10\n\
+ bl DestroyTask\n\
+_080A1470:\n\
+ add sp, 0x4\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080A1480: .4byte gSharedMem + 0x18000\n\
+_080A1484: .4byte gOtherText_Status\n\
+ .syntax divided\n");
+}
+
+// Related to re-drawing the summary area underneath the pokemon's picture
+// in all of the summary screen tabs.
+static void sub_80A1488(s8 a, u8 b)
+{
+ u8 taskId;
+
+ if (pssData.page == PSS_PAGE_BATTLE_MOVES)
+ {
+ MenuZeroFillWindowRect(0, 14, 9, 19);
+ }
+
+ taskId = FindTaskIdByFunc(sub_80A1334);
+ if (taskId == 0xFF)
+ {
+ taskId = CreateTask(sub_80A1334, 0);
+ }
+
+ gTasks[taskId].data[0] = (s8)a;
+
+ if ((s8)a < 0)
+ {
+ gTasks[taskId].data[1] = 10;
+ }
+ else
+ {
+ gTasks[taskId].data[1] = 0;
+ }
+
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = b;
+}
+
+__attribute__((naked))
+static void sub_80A1500(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, 0x4\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r10, r0\n\
+ lsls r0, 2\n\
+ add r0, r10\n\
+ lsls r0, 3\n\
+ ldr r1, _080A15B0 @ =gTasks + 0x8\n\
+ adds r7, r0, r1\n\
+ ldrh r0, [r7]\n\
+ ldrh r1, [r7, 0x2]\n\
+ adds r0, r1\n\
+ strh r0, [r7, 0x2]\n\
+ lsls r0, 16\n\
+ asrs r1, r0, 16\n\
+ movs r0, 0\n\
+ cmp r1, 0\n\
+ blt _080A1536\n\
+ movs r0, 0xA\n\
+ cmp r1, 0xA\n\
+ bgt _080A1536\n\
+ ldrh r0, [r7, 0x2]\n\
+_080A1536:\n\
+ lsls r0, 16\n\
+ asrs r2, r0, 16\n\
+ mov r9, r0\n\
+ cmp r2, 0\n\
+ ble _080A1572\n\
+ movs r0, 0xA\n\
+ subs r0, r2\n\
+ lsls r0, 1\n\
+ ldr r1, _080A15B4 @ =0x06006b40\n\
+ adds r4, r0, r1\n\
+ movs r5, 0\n\
+ adds r6, r2, 0\n\
+ ldr r0, _080A15B8 @ =0x001fffff\n\
+ mov r8, r0\n\
+_080A1552:\n\
+ adds r0, r5, 0\n\
+ adds r0, 0xD\n\
+ lsls r0, 6\n\
+ ldr r1, _080A15BC @ =gUnknown_08E74688\n\
+ adds r0, r1\n\
+ adds r1, r4, 0\n\
+ mov r2, r8\n\
+ ands r2, r6\n\
+ bl CpuSet\n\
+ adds r4, 0x40\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0x6\n\
+ bls _080A1552\n\
+_080A1572:\n\
+ mov r1, r9\n\
+ asrs r2, r1, 16\n\
+ cmp r2, 0x9\n\
+ bgt _080A15C0\n\
+ ldr r4, _080A15B4 @ =0x06006b40\n\
+ movs r5, 0\n\
+ mov r8, sp\n\
+ movs r0, 0xA\n\
+ subs r6, r0, r2\n\
+ ldr r0, _080A15B8 @ =0x001fffff\n\
+ ands r6, r0\n\
+ movs r0, 0x80\n\
+ lsls r0, 17\n\
+ mov r9, r0\n\
+_080A158E:\n\
+ ldrh r0, [r7, 0x4]\n\
+ mov r1, r8\n\
+ strh r0, [r1]\n\
+ mov r0, sp\n\
+ adds r1, r4, 0\n\
+ mov r2, r9\n\
+ orrs r2, r6\n\
+ bl CpuSet\n\
+ adds r4, 0x40\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0x6\n\
+ bls _080A158E\n\
+ b _080A15CC\n\
+ .align 2, 0\n\
+_080A15B0: .4byte gTasks + 0x8\n\
+_080A15B4: .4byte 0x06006b40\n\
+_080A15B8: .4byte 0x001fffff\n\
+_080A15BC: .4byte gUnknown_08E74688\n\
+_080A15C0:\n\
+ movs r0, 0\n\
+ movs r1, 0x13\n\
+ movs r2, 0x9\n\
+ movs r3, 0x13\n\
+ bl MenuZeroFillWindowRect\n\
+_080A15CC:\n\
+ movs r1, 0\n\
+ ldrsh r0, [r7, r1]\n\
+ cmp r0, 0\n\
+ beq _080A15DC\n\
+ movs r1, 0x2\n\
+ ldrsh r0, [r7, r1]\n\
+ cmp r0, 0\n\
+ bge _080A1616\n\
+_080A15DC:\n\
+ ldr r4, _080A164C @ =gSharedMem + 0x18000\n\
+ ldrb r0, [r4, 0xB]\n\
+ cmp r0, 0x3\n\
+ bne _080A1610\n\
+ movs r0, 0\n\
+ movs r1, 0xE\n\
+ movs r2, 0x9\n\
+ movs r3, 0x12\n\
+ bl MenuZeroFillWindowRect\n\
+ adds r4, 0x10\n\
+ adds r0, r4, 0\n\
+ bl sub_80A0958\n\
+ adds r0, r4, 0\n\
+ bl GetMonStatusAndPokerus\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080A1610\n\
+ ldr r0, _080A1650 @ =gOtherText_Status\n\
+ movs r1, 0xD\n\
+ movs r2, 0x1\n\
+ movs r3, 0x12\n\
+ bl sub_80A1FF8\n\
+_080A1610:\n\
+ mov r0, r10\n\
+ bl DestroyTask\n\
+_080A1616:\n\
+ movs r1, 0x2\n\
+ ldrsh r0, [r7, r1]\n\
+ cmp r0, 0x9\n\
+ ble _080A163C\n\
+ ldr r4, _080A164C @ =gSharedMem + 0x18000\n\
+ ldrb r0, [r4, 0xB]\n\
+ cmp r0, 0x3\n\
+ bne _080A162C\n\
+ ldrb r0, [r7, 0x6]\n\
+ bl sub_80A00F4\n\
+_080A162C:\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x10\n\
+ adds r1, r7, 0x6\n\
+ bl sub_80A0428\n\
+ mov r0, r10\n\
+ bl DestroyTask\n\
+_080A163C:\n\
+ add sp, 0x4\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080A164C: .4byte gSharedMem + 0x18000\n\
+_080A1650: .4byte gOtherText_Status\n\
+ .syntax divided\n");
+}
+
+static void sub_80A1654(s8 a, u8 b)
+{
+ u8 taskId;
+
+ if (pssData.page == PSS_PAGE_CONTEST_MOVES)
+ {
+ MenuZeroFillWindowRect(0, 14, 9, 19);
+ }
+
+ taskId = FindTaskIdByFunc(sub_80A1500);
+ if (taskId == 0xFF)
+ {
+ taskId = CreateTask(sub_80A1500, 0);
+ }
+
+ gTasks[taskId].data[0] = (s8)a;
+
+ if ((s8)a < 0)
+ {
+ gTasks[taskId].data[1] = 10;
+ }
+ else
+ {
+ gTasks[taskId].data[1] = 0;
+ }
+
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = b;
+}
+
+#ifdef NONMATCHING
+static void sub_80A16CC(u8 a)
+{
+ u8 i;
+ u16 *vramAddr = (u16 *)(VRAM + 0x6AD4);
+
+ if (a == 0)
+ {
+ for (i = 0; i < 20; i++)
+ {
+ vramAddr[i] = gUnknown_08E94510[i] + 0x1000;
+ vramAddr[i + 0x20] = gUnknown_08E94510[i] + 0x1000;
+ vramAddr[i + 0x40] = gUnknown_08E94550[i] + 0x1000;
+ }
+ }
+ else
+ {
+ i = 0;
+ for (i = 0; i < 20; i++)
+ {
+ vramAddr[i] = gUnknown_08E94550[i] + 0x1000;
+ vramAddr[i + 0x20] = gUnknown_08E94590[i] + 0x1000;
+ vramAddr[i + 0x40] = gUnknown_08E94590[i] + 0x1000;
+ }
+ }
+
+ vramAddr = (u16 *)(VRAM + 0x5AD4);
+
+ if (a == 0)
+ {
+ for (i = 0; i < 20; i++)
+ {
+ vramAddr[i] = gUnknown_08E94510[i] + 0x3000;
+ vramAddr[i + 0x20] = gUnknown_08E94510[i] + 0x3000;
+ vramAddr[i + 0x40] = gUnknown_08E94550[i] + 0x3000;
+ }
+ }
+ else
+ {
+ for (i = 0; i < 20; i++)
+ {
+ vramAddr[i] = gUnknown_08E94550[i] + 0x3000;
+ vramAddr[i + 0x20] = gUnknown_08E94590[i] + 0x3000;
+ vramAddr[i + 0x40] = gUnknown_08E94590[i] + 0x3000;
+ }
+ }
+}
+#else
+__attribute__((naked))
+static void sub_80A16CC(u8 a)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r9\n\
+ mov r6, r8\n\
+ push {r6,r7}\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r9, r0\n\
+ ldr r0, _080A1724 @ =0x06006ad4\n\
+ mov r12, r0\n\
+ mov r1, r9\n\
+ cmp r1, 0\n\
+ bne _080A172C\n\
+ movs r5, 0\n\
+ ldr r7, _080A1728 @ =gUnknown_08E94510\n\
+ movs r0, 0x80\n\
+ lsls r0, 5\n\
+ adds r6, r0, 0\n\
+ movs r1, 0x40\n\
+ adds r1, r7\n\
+ mov r8, r1\n\
+_080A16F4:\n\
+ lsls r2, r5, 1\n\
+ mov r0, r12\n\
+ adds r3, r2, r0\n\
+ adds r4, r2, r7\n\
+ ldrh r1, [r4]\n\
+ adds r0, r6, r1\n\
+ strh r0, [r3]\n\
+ adds r1, r3, 0\n\
+ adds r1, 0x40\n\
+ ldrh r4, [r4]\n\
+ adds r0, r6, r4\n\
+ strh r0, [r1]\n\
+ adds r3, 0x80\n\
+ add r2, r8\n\
+ ldrh r2, [r2]\n\
+ adds r0, r6, r2\n\
+ strh r0, [r3]\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0x13\n\
+ bls _080A16F4\n\
+ b _080A1768\n\
+ .align 2, 0\n\
+_080A1724: .4byte 0x06006ad4\n\
+_080A1728: .4byte gUnknown_08E94510\n\
+_080A172C:\n\
+ movs r5, 0\n\
+ ldr r6, _080A17B0 @ =gUnknown_08E94550\n\
+ movs r7, 0x80\n\
+ lsls r7, 5\n\
+ adds r4, r7, 0\n\
+ movs r0, 0x40\n\
+ adds r0, r6\n\
+ mov r8, r0\n\
+_080A173C:\n\
+ lsls r1, r5, 1\n\
+ mov r7, r12\n\
+ adds r2, r1, r7\n\
+ adds r0, r1, r6\n\
+ ldrh r0, [r0]\n\
+ adds r0, r4, r0\n\
+ strh r0, [r2]\n\
+ adds r3, r2, 0\n\
+ adds r3, 0x40\n\
+ add r1, r8\n\
+ ldrh r7, [r1]\n\
+ adds r0, r4, r7\n\
+ strh r0, [r3]\n\
+ adds r2, 0x80\n\
+ ldrh r1, [r1]\n\
+ adds r0, r4, r1\n\
+ strh r0, [r2]\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0x13\n\
+ bls _080A173C\n\
+_080A1768:\n\
+ ldr r0, _080A17B4 @ =0x06005ad4\n\
+ mov r12, r0\n\
+ mov r1, r9\n\
+ cmp r1, 0\n\
+ bne _080A17BC\n\
+ movs r5, 0\n\
+ ldr r7, _080A17B8 @ =gUnknown_08E94510\n\
+ movs r0, 0xC0\n\
+ lsls r0, 6\n\
+ adds r6, r0, 0\n\
+ movs r1, 0x40\n\
+ adds r1, r7\n\
+ mov r8, r1\n\
+_080A1782:\n\
+ lsls r2, r5, 1\n\
+ mov r0, r12\n\
+ adds r3, r2, r0\n\
+ adds r4, r2, r7\n\
+ ldrh r1, [r4]\n\
+ adds r0, r6, r1\n\
+ strh r0, [r3]\n\
+ adds r1, r3, 0\n\
+ adds r1, 0x40\n\
+ ldrh r4, [r4]\n\
+ adds r0, r6, r4\n\
+ strh r0, [r1]\n\
+ adds r3, 0x80\n\
+ add r2, r8\n\
+ ldrh r2, [r2]\n\
+ adds r0, r6, r2\n\
+ strh r0, [r3]\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0x13\n\
+ bls _080A1782\n\
+ b _080A17F8\n\
+ .align 2, 0\n\
+_080A17B0: .4byte gUnknown_08E94550\n\
+_080A17B4: .4byte 0x06005ad4\n\
+_080A17B8: .4byte gUnknown_08E94510\n\
+_080A17BC:\n\
+ movs r5, 0\n\
+ ldr r6, _080A1804 @ =gUnknown_08E94550\n\
+ movs r7, 0xC0\n\
+ lsls r7, 6\n\
+ adds r4, r7, 0\n\
+ movs r0, 0x40\n\
+ adds r0, r6\n\
+ mov r8, r0\n\
+_080A17CC:\n\
+ lsls r1, r5, 1\n\
+ mov r7, r12\n\
+ adds r2, r1, r7\n\
+ adds r0, r1, r6\n\
+ ldrh r0, [r0]\n\
+ adds r0, r4, r0\n\
+ strh r0, [r2]\n\
+ adds r3, r2, 0\n\
+ adds r3, 0x40\n\
+ add r1, r8\n\
+ ldrh r7, [r1]\n\
+ adds r0, r4, r7\n\
+ strh r0, [r3]\n\
+ adds r2, 0x80\n\
+ ldrh r1, [r1]\n\
+ adds r0, r4, r1\n\
+ strh r0, [r2]\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0x13\n\
+ bls _080A17CC\n\
+_080A17F8:\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\
+_080A1804: .4byte gUnknown_08E94550\n\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
+
+u8 sub_80A1808(struct Pokemon *mon)
+{
+ u16 species;
+ u8 spriteId;
+
+ species = GetMonData(mon, MON_DATA_SPECIES2);
+ spriteId = CreateSprite(&gUnknown_02024E8C, 40, 64, 5);
+
+ FreeSpriteOamMatrix(&gSprites[spriteId]);
+
+ gSprites[spriteId].data[0] = species;
+ gSprites[spriteId].callback = sub_80A1888;
+
+ if (!IsPokeSpriteNotFlipped(species))
+ {
+ gSprites[spriteId].hFlip = 1;
+ }
+ else
+ {
+ gSprites[spriteId].hFlip = 0;
+ }
+
+ return spriteId;
+}
+
+static void sub_80A1888(struct Sprite *sprite)
+{
+ if (!gPaletteFade.active)
+ {
+ sprite->callback = SpriteCallbackDummy;
+
+ if (!GetMonData(&pssData.loadedMon, MON_DATA_IS_EGG))
+ {
+ PlayCry1(sprite->data[0], 0);
+ }
+ }
+}
+
+static void sub_80A18C4(void)
+{
+ u8 i;
+
+ for (i = 0; i < 30; i++)
+ {
+ ewram1A000[i] = 0xFF;
+ }
+}
+
+static void sub_80A18E4(u8 a)
+{
+ if (ewram1A000[a] != 0xFF)
+ {
+ DestroySprite(&gSprites[ewram1A000[a]]);
+ ewram1A000[a] = 0xFF;
+ }
+}
+
+static void sub_80A1918(u8 a, u8 invisible)
+{
+ gSprites[ewram1A000[a]].invisible = invisible;
+}
+
+static void sub_80A1950(void)
+{
+ u8 i;
+
+ for (i = 0; i < 5; i++)
+ {
+ if (ewram1A000[i] == 0xFF)
+ {
+ ewram1A000[i] = CreateSprite(&sSpriteTemplate_83C11C0, 0, 0, 2);
+ }
+
+ sub_80A1918(i, 1);
+ }
+}
+
+static void sub_80A198C(u8 animNum, u8 x, u8 y, u8 d)
+{
+ StartSpriteAnim(&gSprites[ewram1A000[d]], animNum);
+
+ gSprites[ewram1A000[d]].oam.paletteNum = sUnknown_PaletteNums[animNum];
+ gSprites[ewram1A000[d]].pos1.x = x + 16;
+ gSprites[ewram1A000[d]].pos1.y = y + 8;
+
+ sub_80A1918(d, 0);
+}
+
+static void sub_80A1A30(u8 a)
+{
+ u8 i;
+ s16 x;
+ u8 subPriority = 0;
+
+ if (pssData.page >= PSS_PAGE_BATTLE_MOVES)
+ {
+ if (a == 9)
+ {
+ subPriority = 1;
+ }
+
+ for (i = 0; i < 10; i++)
+ {
+ x = (i * 16) + 0x58;
+ ewram1A000[a + i] = CreateSprite(&sSpriteTemplate_83C1280, x, 40, subPriority);
+
+ if (i == 0)
+ {
+ StartSpriteAnim(&gSprites[ewram1A000[a]], 4);
+ }
+ else if (i == 9)
+ {
+ StartSpriteAnim(&gSprites[ewram1A000[a + i]], 5);
+ }
+ else
+ {
+ StartSpriteAnim(&gSprites[ewram1A000[a + i]], 6);
+ }
+
+ gSprites[ewram1A000[a + i]].callback = sub_80A1BC0;
+ gSprites[ewram1A000[a + i]].data[0] = a;
+ gSprites[ewram1A000[a + i]].data[1] = 0;
+ }
+ }
+}
+
+static void sub_80A1B1C(u8 a)
+{
+ u8 i;
+
+ for (i = 0; i < 10; i++)
+ {
+ sub_80A18E4(a + i);
+ }
+}
+
+static void sub_80A1B40(u8 a)
+{
+ u8 i;
+ a *= 3;
+
+ StartSpriteAnim(&gSprites[ewram1A000[9]], a + 4);
+
+ for (i = 0; i < 8; i++)
+ {
+ StartSpriteAnim(&gSprites[ewram1A000[10 + i]], a + 6);
+ }
+
+ StartSpriteAnim(&gSprites[ewram1A000[18]], a + 5);
+}
+
+static void sub_80A1BC0(struct Sprite *sprite)
+{
+ u8 animNum = sprite->animNum - 4;
+ if (animNum < 3)
+ {
+ sprite->data[1] = (sprite->data[1] + 1) & 0x1F;
+
+ if (sprite->data[1] > 24)
+ {
+ sprite->invisible = 1;
+ }
+ else
+ {
+ sprite->invisible = 0;
+ }
+ }
+ else
+ {
+ sprite->data[1] = 0;
+ sprite->invisible = 0;
+ }
+
+ if (sprite->data[0] == 9)
+ {
+ sprite->pos2.y = pssData.selectedMoveIndex * 16;
+ }
+ else
+ {
+ sprite->pos2.y = pssData.switchMoveIndex * 16;
+ }
+}
+
+__attribute__((naked))
+void sub_80A1C30(u8 a)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ lsls r0, r4, 2\n\
+ adds r0, r4\n\
+ lsls r0, 25\n\
+ lsrs r3, r0, 24\n\
+ adds r4, r3, 0\n\
+ adds r0, r3, 0\n\
+ adds r0, 0xA\n\
+ cmp r3, r0\n\
+ bge _080A1C82\n\
+ ldr r5, _080A1C88 @ =gSprites\n\
+ movs r7, 0x5\n\
+ negs r7, r7\n\
+ ldr r6, _080A1C8C @ =gSharedMem + 0x1A009\n\
+_080A1C50:\n\
+ adds r2, r3, r6\n\
+ ldrb r1, [r2]\n\
+ lsls r0, r1, 4\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ adds r0, r5\n\
+ movs r1, 0\n\
+ strh r1, [r0, 0x30]\n\
+ ldrb r0, [r2]\n\
+ lsls r1, r0, 4\n\
+ adds r1, r0\n\
+ lsls r1, 2\n\
+ adds r1, r5\n\
+ adds r1, 0x3E\n\
+ ldrb r2, [r1]\n\
+ adds r0, r7, 0\n\
+ ands r0, r2\n\
+ strb r0, [r1]\n\
+ adds r0, r3, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r3, r0, 24\n\
+ adds r0, r4, 0\n\
+ adds r0, 0xA\n\
+ cmp r3, r0\n\
+ blt _080A1C50\n\
+_080A1C82:\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080A1C88: .4byte gSprites\n\
+_080A1C8C: .4byte gSharedMem + 0x1A009\n\
+ .syntax divided\n");
+}
+
+u8 pokemon_ailments_get_primary(u32 status)
+{
+ if (status & 0x88)
+ return 1;
+ if (status & 0x40)
+ return 2;
+ if (status & 0x7)
+ return 3;
+ if (status & 0x20)
+ return 4;
+ if (status & 0x10)
+ return 5;
+
+ return 0;
+}
+
+u8 GetMonStatusAndPokerus(struct Pokemon *mon)
+{
+ u8 statusAilment;
+
+ if (GetMonData(mon, MON_DATA_HP) == 0)
+ {
+ return 7;
+ }
+
+ statusAilment = pokemon_ailments_get_primary(GetMonData(mon, MON_DATA_STATUS));
+ if (statusAilment == 0)
+ {
+ if (!CheckPartyPokerus(mon, 0))
+ {
+ return 0;
+ }
+ else
+ {
+ return 6;
+ }
+ }
+
+ return statusAilment;
+}
+
+#ifdef NONMATCHING
+void sub_80A1D18(void)
+{
+ struct Pokemon mon;
+ u8 statusAndPkrs;
+ u8 statusAndPkrs2;
+
+ sub_809F678(&mon);
+ statusAndPkrs = GetMonStatusAndPokerus(&mon);
+
+ if (statusAndPkrs)
+ {
+ statusAndPkrs2 = statusAndPkrs - 1;
+
+ if (ewram1A000[29] == 0xFF)
+ {
+ ewram1A000[29] = CreateSprite(&sSpriteTemplate_83C1304, 64, 152, 0);
+ }
+ }
+ else
+ {
+ sub_80A18E4(29);
+ return;
+ }
+
+ StartSpriteAnim(&gSprites[ewram1A000[29]], statusAndPkrs2);
+}
+#else
+__attribute__((naked))
+void sub_80A1D18(void)
+{
+ asm(".syntax unified\n\
+ push {r4,r5,lr}\n\
+ sub sp, 0x64\n\
+ mov r0, sp\n\
+ bl sub_809F678\n\
+ mov r0, sp\n\
+ bl GetMonStatusAndPokerus\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0\n\
+ beq _080A1D58\n\
+ subs r0, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ ldr r4, _080A1D50 @ =gSharedMem + 0x1A01D\n\
+ ldrb r0, [r4]\n\
+ cmp r0, 0xFF\n\
+ bne _080A1D60\n\
+ ldr r0, _080A1D54 @ =sSpriteTemplate_83C1304\n\
+ movs r1, 0x40\n\
+ movs r2, 0x98\n\
+ movs r3, 0\n\
+ bl CreateSprite\n\
+ strb r0, [r4]\n\
+ b _080A1D60\n\
+ .align 2, 0\n\
+_080A1D50: .4byte gSharedMem + 0x1A01D\n\
+_080A1D54: .4byte sSpriteTemplate_83C1304\n\
+_080A1D58:\n\
+ movs r0, 0x1D\n\
+ bl sub_80A18E4\n\
+ b _080A1D74\n\
+_080A1D60:\n\
+ ldr r0, _080A1D7C @ =gSharedMem + 0x1A01D\n\
+ ldrb r1, [r0]\n\
+ lsls r0, r1, 4\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ ldr r1, _080A1D80 @ =gSprites\n\
+ adds r0, r1\n\
+ adds r1, r5, 0\n\
+ bl StartSpriteAnim\n\
+_080A1D74:\n\
+ add sp, 0x64\n\
+ pop {r4,r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080A1D7C: .4byte gSharedMem + 0x1A01D\n\
+_080A1D80: .4byte gSprites\n\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
+
+static void sub_80A1D84(struct Pokemon *mon)
+{
+ struct Sprite *sprite;
+
+ sprite = sub_80F7920(0x7533, 0x7533, sSummaryScreenMonMarkingsPalette);
+ gUnknown_020384F4 = sprite;
+
+ if (sprite != NULL)
+ {
+ u8 markings = GetMonData(mon, MON_DATA_MARKINGS);
+ StartSpriteAnim(sprite, markings);
+
+ gUnknown_020384F4->pos1.x = 60;
+ gUnknown_020384F4->pos1.y = 26;
+ }
+}
+
+static void sub_80A1DCC(struct Pokemon *mon)
+{
+ DestroySprite(gUnknown_020384F4);
+ sub_80A1D84(mon);
+}
+
+static void sub_80A1DE8(struct Pokemon *mon)
+{
+ u8 ball = ball_number_to_ball_processing_index(GetMonData(mon, MON_DATA_POKEBALL));
+ sub_80478DC(ball);
+
+ pssData.ballSpriteId = CreateSprite(&gBallSpriteTemplates[ball], 6, 136, 0);
+ gSprites[pssData.ballSpriteId].callback = SpriteCallbackDummy;
+ gSprites[pssData.ballSpriteId].oam.priority = 3;
+}
+
+static u8 *sub_80A1E58(u8 *text, u8 id)
+{
+ if (id != 0xFF)
+ {
+ const u8 *ptr = sUnknown_083C15BC;
+ while (*ptr != 0xFF && *ptr != id)
+ {
+ ptr += 4;
+ }
+
+ text[0] = EXT_CTRL_CODE_BEGIN;
+ text[1] = 4;
+ text[2] = ptr[1];
+ text[3] = ptr[2];
+ text[4] = ptr[3];
+
+ text += 5;
+ }
+
+ return text;
+}
+
+u8 *sub_80A1E9C(u8 *dest, const u8 *src, u8 id)
+{
+ u8 arr[3];
+
+ sub_8072CD4(&arr[0], &arr[1], &arr[2]);
+
+ dest = sub_80A1E58(dest, id);
+ dest = StringCopy(dest, src);
+
+ if (id != 0xFF)
+ {
+ dest[0] = EXT_CTRL_CODE_BEGIN;
+ dest[1] = 4;
+ dest[2] = arr[0];
+ dest[3] = arr[1];
+ dest[4] = arr[2];
+ dest[5] = 0xFF;
+
+ dest += 5;
+ }
+
+ return dest;
+}
+
+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);
+}
+
+static void sub_80A1F48(const u8 *text, u8 id, u8 c, u8 d, u16 e)
+{
+ sub_80A1E9C(gStringVar4, text, id);
+ sub_8072BD8(gStringVar4, c, d, e);
+}
+
+static void sub_80A1F98(s32 value, u8 id, u8 n, u8 mode, u8 left, u16 top, s32 e)
+{
+ ConvertIntToDecimalStringN(gStringVar1, value, mode, n);
+ sub_80A1EF8(gStringVar1, id, left, top, e);
+}
+
+static void sub_80A1FF8(const u8 *text, u8 id, u8 left, u8 top)
+{
+ sub_80A1E9C(gStringVar4, text, id);
+ MenuPrint(gStringVar4, left, top);
+}
+
+u8 *PokemonSummaryScreen_CopyPokemonLevel(u8 *dest, u8 level)
+{
+ u8 buffer[12];
+
+ dest[0] = 0x34;
+ dest++;
+
+ if (level == 0)
+ {
+ level = 5;
+ }
+
+ ConvertIntToDecimalString(buffer, level);
+ dest = sub_80A1E9C(dest, buffer, 14);
+ dest = StringCopy(dest, gOtherText_Comma);
+
+ return dest;
+}
+
+static void sub_80A2078(int taskId)
+{
+ gUnknown_03005CF0 = gTasks[taskId].func;
+ gTasks[taskId].func = sub_80A20A8;
+ gTasks[taskId].func((u8)taskId);
+}
+
+static void sub_80A20A8(u8 taskId)
+{
+ if (sub_8055870() != TRUE)
+ {
+ gTasks[taskId].func = gUnknown_03005CF0;
+ }
+}
diff --git a/src/field/pokenav.c b/src/pokenav_after.c
index 21d7bb4e3..84ed7b14b 100644
--- a/src/field/pokenav.c
+++ b/src/pokenav_after.c
@@ -38,5 +38,3 @@ void sub_80F700C(u8 *arg0, u16 arg1) {
ptr[2] = 0x80;
ptr[3] = 0xFF;
}
-
-IWRAM_DATA MainCallback gUnknown_03000744;
diff --git a/src/pokenav_before.c b/src/pokenav_before.c
new file mode 100644
index 000000000..6e83c6f97
--- /dev/null
+++ b/src/pokenav_before.c
@@ -0,0 +1,5005 @@
+#include "global.h"
+#include "main.h"
+#include "pokenav.h"
+#include "ewram.h"
+#include "battle.h"
+#include "data2.h"
+#include "de_rom_8040FE0.h"
+#include "event_data.h"
+#include "constants/flags.h"
+#include "landmark.h"
+#include "link.h"
+#include "menu.h"
+#include "overworld.h"
+#include "palette.h"
+#include "region_map.h"
+#include "constants/songs.h"
+#include "string_util.h"
+#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;
+};
+
+struct UnknownPokenav0_1 {
+ u8 fill6dad[0x6dad];
+ s8 var6dad;
+ s8 var6dae;
+};
+
+IWRAM_DATA void (*gUnknown_03000744)(void);
+
+extern const u8 gUnknown_083E0314[];
+extern const u16 gUnknown_08E9F9E8[];
+extern const u16 gUnknown_083E0274[];
+extern const u8 gUnknown_08E9FC64[];
+extern const u8 gUnknown_083E0354[];
+extern const u8 gUnknown_08E9FD64[];
+extern const u8 gUnknown_08E9FE54[];
+extern const u8 gUnknown_08E9FD1C[];
+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[];
+extern const u8 gUnknown_08E9AC4C[];
+extern const u8 gPokenavConditionMenu2_Pal[];
+extern const u8 gPokenavConditionView_Gfx[];
+extern const u8 gUnknown_08E9ABB4[];
+extern const u8 gUnknown_08E9AC2C[];
+extern const u8 *const gPokenavCityMaps[][2];
+extern const u8 gPokenavHoennMapSquares_Pal[];
+extern const u8 gPokenavHoennMapSquares_Gfx[];
+extern const u16 gUnknown_083E003C[];
+extern const u8 *const gUnknown_083E31B0[];
+extern const u8 *const gUnknown_083E31CC[];
+extern const u8 *const gUnknown_083E31D8[];
+extern u8 *gUnknown_083DFEC8;
+extern const u8 gUnknown_083DFEEC[];
+extern const u8 gUnknown_083E005C[];
+extern const u8 gUnknown_083E007C[];
+extern const u8 gPokenavOutlineTilemap[];
+extern const u8 gPokenavOutlineTiles[];
+extern const u8 gPokenavOutlinePalette[];
+extern const u8 gUnknown_083DFECC[];
+extern const u8 gUnknown_083DFF8C[];
+extern const u8 gPokenavHoennMapMisc_Gfx[];
+extern const u8 gUnknown_08E99FB0[];
+extern const u8 gUnknown_08E9A100[];
+extern const u16 gPokenavHoennMap1_Pal[];
+
+static void sub_80EBCA8();
+static void sub_80EEE20();
+static bool8 sub_80EEE54();
+static void sub_80EEE08();
+static void sub_80EED2C(u8);
+static void sub_80EC268();
+static void sub_80EED1C();
+static void sub_80EE9C0(u8, u8, u8);
+static bool8 sub_80EEA0C();
+static bool8 sub_80EEC10();
+static void sub_80EED9C();
+static void sub_80EDB88();
+static void sub_80EC4A0();
+static void sub_80EC81C();
+static void sub_80EE96C();
+static void sub_80EE3D8();
+static bool8 sub_80EEF34();
+static void sub_80EED0C();
+static void sub_80EC67C();
+static void sub_80EC86C();
+static bool8 sub_80EEC90();
+static void sub_80ED620();
+static void sub_80EC960();
+static void sub_80ED01C();
+static void sub_80ECC08();
+static void sub_80ED31C();
+static void sub_80ED4D8();
+static void sub_80ED858();
+static void sub_80EDDBC();
+static void sub_80EDE70();
+static void sub_80EDEE4();
+static void sub_80EE06C();
+static void sub_80EE294();
+static void sub_80EE58C();
+static void sub_80EE658();
+static void sub_80EE8F4();
+static void sub_80EEDC4();
+
+extern bool8 sub_80F0944(void);
+extern void sub_80F081C();
+extern void sub_80F0900(void);
+extern void sub_80F443C(u8 *, u16);
+extern bool8 sub_80F162C(u8);
+extern void sub_80F01E0(u16);
+extern void sub_80F01A4(void);
+extern void sub_80F1614(void);
+extern void sub_80EFD3C(void);
+extern void sub_8095C8C();
+extern void sub_80EFDA0(void);
+extern void sub_80EFD74(void);
+extern void sub_80F1A80(void);
+extern bool8 sub_80EFC64(void);
+extern void sub_80EFC3C(void);
+extern void sub_80EF624(const u16 *, const u16 *, u8, u8, u16 *);
+extern void sub_80EF7D4(void);
+extern void sub_80EF54C(u8);
+extern void sub_809D104(u16 *, u16, u16, const u8 *, u16, u16, u16, u16);
+extern void sub_80EF58C(u8);
+extern void sub_80F6FFC();
+extern void sub_80F3294();
+extern void sub_80F0B24();
+extern bool8 sub_80F0B44();
+extern void sub_80F0F64();
+extern bool8 sub_80F0FEC();
+extern void sub_80F6FB8();
+extern void sub_80F6DB8();
+extern void sub_80F0CD8();
+extern bool8 sub_80F6E9C();
+extern bool8 sub_80F0D5C();
+extern bool8 sub_80F6ED4();
+extern bool8 sub_80F0EF4();
+extern void sub_80F2FB0();
+extern void sub_80F0FA0();
+extern void sub_80F0C28();
+extern bool8 sub_80F0C48();
+extern bool8 sub_80F70FC();
+extern void sub_80F708C(u32);
+extern void sub_80F4394();
+extern void sub_80F0EC0();
+extern void sub_80F700C();
+extern void sub_80F42C4();
+extern void sub_80F0FFC();
+extern void sub_80F6F10();
+extern void sub_80F3C2C();
+extern void sub_80F15A8();
+extern void sub_80F6A4C();
+extern bool8 sub_80F6AF0();
+extern void sub_80F3B00();
+extern bool8 sub_80F3B58();
+extern void sub_80F1494();
+extern u8 sub_80F68E8();
+extern void sub_80F3B94();
+extern bool8 sub_80F3BD4();
+extern void sub_80F66E0();
+extern bool8 sub_80F1080();
+extern void sub_80F38B8();
+extern bool8 sub_80F38EC();
+extern void sub_80F638C();
+extern bool8 sub_80F63D0();
+extern void sub_80F4CF0();
+extern void sub_80EFF34();
+extern bool8 sub_80EFF68();
+extern void sub_80F35B4();
+extern void sub_80F6134();
+extern u8 sub_80F5DD4();
+extern void ShowMapNamePopUpWindow();
+extern bool8 sub_80F0718();
+extern bool8 sub_80F3264();
+extern void sub_80F4D44();
+extern bool8 sub_80F4D88();
+extern void sub_80F0264(u8);
+extern bool8 sub_80F02A0();
+extern void sub_80F3008();
+extern void sub_80F3130();
+extern void sub_80F2D6C(u32);
+extern bool8 sub_80F1E6C();
+extern void sub_80EF9F8(void);
+extern bool8 sub_80EFBDC(bool8);
+extern void sub_80EFBB0(void);
+extern void sub_80F2DF4();
+extern void sub_80F1E84();
+extern bool8 sub_80F1F10();
+extern void sub_80EEFBC(u8);
+extern void sub_80F2620();
+extern void sub_80EF814(void);
+extern void sub_80EF840(void);
+extern bool8 sub_80EF874(void);
+extern void sub_80F2DD8();
+extern bool8 sub_80F6250();
+extern void sub_80F6208();
+extern void sub_80F208C();
+extern void sub_80F6C20();
+extern void sub_80F3FF0();
+extern bool8 sub_80F4024();
+extern void sub_80F2598();
+extern void sub_80EF248(u8);
+extern bool8 sub_80EF284(u8);
+extern void sub_80F1B8C();
+extern bool8 sub_80F1BC8(u32 unk);
+extern void sub_80F1DF0();
+extern bool8 sub_80F1E50();
+extern void sub_80EF428(u8, u8);
+extern bool8 sub_80EEF78();
+extern void sub_80F1A90();
+extern void sub_80F2D04(u32);
+extern bool8 sub_80F1AC4();
+extern void sub_80F36F0();
+extern bool8 sub_80F3724();
+extern void sub_80EBC10();
+extern void sub_80EBDBC(void (*func)(void));
+extern void sub_80EBBE8();
+extern bool8 sub_80F26BC(void);
+extern void sub_80EBDD8();
+extern void sub_80EBD90();
+extern void sub_80EBD18();
+extern void sub_80F1A74();
+extern void sub_80F1FF0();
+extern void sub_80FB260();
+extern void sub_80EFE7C(void);
+extern void sub_80F5BF0();
+extern void sub_80F6F64();
+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;
+ }
+ 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++;
+}
+
+void sub_80EBBE8() {
+ u8 var1;
+ if (!ewram0_10.var6dab) {
+ var1 = ewram0_10.var6dab;
+ do {
+ sub_80EBA5C();
+ var1 = ewram0_10.var6dab;
+ } while (!var1);
+ }
+}
+
+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;
+
+ if (FlagGet(FLAG_SYS_RIBBON_GET)) {
+ ewram0_10.var6db2[3] = 4;
+ }
+ else {
+ ewram0_10.var6db2[3] = 0;
+ }
+
+ ewram0_10.var6db2[4] = 5;
+}
+
+void sub_80EBD18() {
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_80F1FF0();
+}
+
+void sub_80EBD30() {
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ UpdateRegionMapVideoRegs();
+ sub_80EFE7C();
+}
+
+void sub_80EBD4C() {
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_80F5BF0();
+ sub_8089668();
+}
+
+void sub_80EBD68() {
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_80F6F64();
+}
+
+void sub_80EBD80() {
+ LoadOam();
+ ProcessSpriteCopyRequests();
+}
+
+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_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);
+ }
+ return;
+
+ }
+
+}
+
+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++;
+ 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++;
+ 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;
+ }
+ }
+ 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++;
+ 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;
+ sub_80EF428(0, ewram0_10.var6dad);
+ ewram0_10.var304 = var1;
+ 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);
+ ewram0_10.var304++;
+ }
+ break;
+ case 2:
+ if (!(var2 = sub_80EEF34())) {
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var2);
+ 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 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) {
+ 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) {
+ sub_80EFBB0();
+ ewram0_10.var304 = var2;
+ break;
+ }
+ 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);
+ }
+}
+
+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()) 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;
+ }
+ 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++;
+ 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++;
+ 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++;
+ 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;
+ }
+
+ 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(0x5);
+ ewram0_10.var6dad = 0x5;
+ ewram0_10.var304++;
+ }
+ 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;
+ }
+ 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;
+ }
+}
+
+void sub_80ED31C() {
+ switch (ewram0_10.var304) {
+ case 0:
+ switch (sub_80F5DD4()) {
+ case 1:
+ PlaySE(0x5);
+ ShowMapNamePopUpWindow();
+ break;
+ case 2:
+ PlaySE(0x5);
+ 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;
+ }
+}
+
+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++;
+ 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_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);
+ 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;
+ }
+}
+
+#if 0
+void sub_80F4F78();
+void sub_80F0174(u32);
+bool8 sub_80F4FB4();
+void sub_80F3668();
+bool8 sub_80F7500();
+void sub_80F3698();
+bool8 sub_80F5038();
+void sub_80F2F48();
+void sub_80F3CE8();
+void sub_80F3614();
+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;
+ }
+ }
+
+/*
+ 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;
+
+ }
+ 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;
+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;
+ }
+ }
+*/
+ 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
+__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\
+_080ED878: .4byte gSharedMem\n\
+_080ED87C: .4byte _080ED880\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\
+_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\
+_080ED8C8: .4byte gSharedMem\n\
+_080ED8CC:\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\
+_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\
+_080ED900: .4byte gSharedMem\n\
+_080ED904:\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\
+_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\
+_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\
+_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\
+_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\
+_080ED9B8:\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\
+_080ED9F4: .4byte gSharedMem\n\
+_080ED9F8:\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\
+_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\
+_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\
+_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\
+_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\
+_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\
+_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\
+_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\
+_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\
+_080EDAD4:\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\
+_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\
+_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\
+_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\
+_080EDB7A:\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
+
+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);
+ 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;
+ }
+ 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;
+ }
+}
+
+void sub_80EDDBC() {
+ switch (ewram0_10.var304) {
+ case 0:
+ switch (sub_80F5DD4()) {
+ case 1:
+ PlaySE(0x5);
+ ShowMapNamePopUpWindow();
+ break;
+ case 2:
+ PlaySE(0x5);
+ 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;
+
+ }
+}
+
+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_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_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;
+ }
+ else goto label2;
+ break;
+label2:
+ if (gMain.newKeys & A_BUTTON) {
+ PlaySE(0x5);
+ sub_80EEFBC(0xB);
+ ewram0_10.var304 = 0x4;
+ }
+ 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;
+ }
+}
+
+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_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);
+ 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;
+ }
+}
+
+void sub_80EE58C() {
+ switch (ewram0_10.var304) {
+ case 0:
+ switch (sub_80F5DD4()) {
+ case 1:
+ PlaySE(0x5);
+ sub_80F0FFC(ewram0_10.var876E);
+ break;
+ case 2:
+ PlaySE(0x5);
+ 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;
+ }
+}
+
+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;
+ }
+ else goto label2;
+ break;
+label2:
+ if (gMain.newKeys & B_BUTTON) {
+ PlaySE(0x5);
+ sub_80F4394();
+ sub_80F0EC0();
+ 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;
+ }
+}
+
+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_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_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:
+
+ }
+}
+#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\
+_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\
+_080EEA28: .4byte gSharedMem\n\
+_080EEA2C: .4byte 0x00006e16\n\
+_080EEA30: .4byte _080EEA34\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\
+_080EEA58:\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\
+_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\
+_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\
+_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\
+_080EEAC2:\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\
+_080EEAF8: .4byte 0x00006e15\n\
+_080EEAFC: .4byte 0x00006e14\n\
+_080EEB00:\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\
+_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\
+_080EEB1C: .4byte 0x00006dae\n\
+_080EEB20:\n\
+ ldr r2, _080EEB58 @ =0x00006dae\n\
+ adds r1, r3, r2\n\
+ movs r0, 0x6\n\
+_080EEB26:\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\
+_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\
+_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\
+_080EEB76:\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\
+_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\
+_080EEBCC:\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\
+_080EEBFA:\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\
+_080EEC0A:\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_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;
+}
+
+void sub_80EED0C() {
+ REG_DISPCNT = 512;
+}
+
+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_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_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_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_80EEF34(void) {
+ bool8 retVal = TRUE;
+
+ 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;
+ }
+
+ 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;
+}
+
+void sub_80EEFBC(u8 a)
+{
+ u8 var1;
+
+ 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;
+ }
+}
+
+void sub_80EF248(u8 a)
+{
+ gUnknown_083DFEC4->unkD160 = 0;
+
+ 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;
+}
+
+void sub_80EF428(u8 a, u8 b)
+{
+ 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;
+ }
+
+ tileBuffer = gUnknown_083DFEC8;
+ sub_8072C74(&tileBuffer[0x800], pcText, 0xC0, 2);
+ MenuPrint(&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;
+ }
+}
+
+bool8 sub_80EF4F8(void)
+{
+ u16 *palettes;
+
+ 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;
+ }
+
+}
+
+void sub_80EF54C(u8 a)
+{
+ if (a == 2)
+ {
+ a = 1;
+ }
+
+ 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;
+ }
+}
+
+#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;
+ }
+
+ *palettes2 = (red2 >> 8) | (blue2 << 2) | (green2 >> 3);
+ palettes++;
+
+ a++;
+ b++;
+ i++;
+ }
+}
+#else
+__attribute__((naked))
+void sub_80EF624(const u16 *a, const u16 *b, u8 c, u8 d, u16 *palettes)
+{
+ 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, 0x38\n\
+ str r0, [sp]\n\
+ str r1, [sp, 0x4]\n\
+ ldr r4, [sp, 0x58]\n\
+ lsls r2, 24\n\
+ lsrs r2, 24\n\
+ str r2, [sp, 0x8]\n\
+ lsls r3, 24\n\
+ lsrs r3, 24\n\
+ str r3, [sp, 0xC]\n\
+ movs r0, 0\n\
+ str r0, [sp, 0x10]\n\
+ lsls r0, r3, 16\n\
+ ldr r1, [sp, 0x10]\n\
+ cmp r1, r3\n\
+ bcs _080EF72E\n\
+ subs r2, 0x1\n\
+ str r2, [sp, 0x20]\n\
+ str r0, [sp, 0x2C]\n\
+_080EF654:\n\
+ ldr r2, [sp]\n\
+ ldrh r1, [r2]\n\
+ movs r0, 0x1F\n\
+ ands r0, r1\n\
+ lsls r7, r0, 8\n\
+ lsls r1, 16\n\
+ lsrs r0, r1, 21\n\
+ movs r2, 0x1F\n\
+ ands r0, r2\n\
+ lsls r6, r0, 8\n\
+ lsrs r1, 26\n\
+ ands r1, r2\n\
+ lsls r5, r1, 8\n\
+ ldr r0, [sp, 0x4]\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x1F\n\
+ ands r0, r1\n\
+ lsls r0, 8\n\
+ str r0, [sp, 0x14]\n\
+ lsls r1, 16\n\
+ lsrs r0, r1, 21\n\
+ ands r0, r2\n\
+ lsls r0, 8\n\
+ str r0, [sp, 0x18]\n\
+ lsrs r1, 26\n\
+ ands r1, r2\n\
+ lsls r1, 8\n\
+ str r1, [sp, 0x1C]\n\
+ ldr r1, [sp, 0x14]\n\
+ subs r0, r1, r7\n\
+ ldr r1, [sp, 0x8]\n\
+ bl __divsi3\n\
+ mov r10, r0\n\
+ ldr r2, [sp, 0x18]\n\
+ subs r0, r2, r6\n\
+ ldr r1, [sp, 0x8]\n\
+ bl __divsi3\n\
+ mov r9, r0\n\
+ ldr r1, [sp, 0x1C]\n\
+ subs r0, r1, r5\n\
+ ldr r1, [sp, 0x8]\n\
+ bl __divsi3\n\
+ mov r8, r0\n\
+ adds r3, r4, 0\n\
+ movs r4, 0\n\
+ ldr r2, [sp]\n\
+ adds r2, 0x2\n\
+ str r2, [sp, 0x30]\n\
+ ldr r0, [sp, 0x4]\n\
+ adds r0, 0x2\n\
+ str r0, [sp, 0x34]\n\
+ adds r1, r3, 0x2\n\
+ str r1, [sp, 0x24]\n\
+ ldr r2, [sp, 0x10]\n\
+ adds r2, 0x1\n\
+ str r2, [sp, 0x28]\n\
+ ldr r0, [sp, 0x20]\n\
+ cmp r4, r0\n\
+ bge _080EF700\n\
+ ldr r1, [sp, 0xC]\n\
+ lsls r1, 1\n\
+ mov r12, r1\n\
+_080EF6D6:\n\
+ lsls r0, r7, 8\n\
+ lsrs r2, r0, 16\n\
+ lsls r0, r6, 8\n\
+ lsrs r1, r0, 16\n\
+ lsls r0, r5, 8\n\
+ lsrs r0, 16\n\
+ lsls r0, 10\n\
+ lsls r1, 5\n\
+ orrs r0, r1\n\
+ orrs r2, r0\n\
+ strh r2, [r3]\n\
+ add r3, r12\n\
+ add r7, r10\n\
+ add r6, r9\n\
+ add r5, r8\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+ ldr r2, [sp, 0x20]\n\
+ cmp r4, r2\n\
+ blt _080EF6D6\n\
+_080EF700:\n\
+ ldr r4, [sp, 0x14]\n\
+ lsrs r2, r4, 8\n\
+ ldr r1, [sp, 0x1C]\n\
+ lsls r0, r1, 2\n\
+ ldr r4, [sp, 0x18]\n\
+ lsrs r1, r4, 3\n\
+ orrs r0, r1\n\
+ orrs r2, r0\n\
+ strh r2, [r3]\n\
+ ldr r0, [sp, 0x30]\n\
+ str r0, [sp]\n\
+ ldr r1, [sp, 0x34]\n\
+ str r1, [sp, 0x4]\n\
+ ldr r4, [sp, 0x24]\n\
+ ldr r2, [sp, 0x28]\n\
+ lsls r0, r2, 16\n\
+ lsrs r0, 16\n\
+ str r0, [sp, 0x10]\n\
+ ldr r1, [sp, 0x2C]\n\
+ lsrs r0, r1, 16\n\
+ ldr r2, [sp, 0x10]\n\
+ cmp r2, r0\n\
+ bcc _080EF654\n\
+_080EF72E:\n\
+ add sp, 0x38\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\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
+
+void sub_80EF740(void)
+{
+ gUnknown_083DFEC4->unk6DA0 = (gUnknown_083DFEC4->unk6DA0 + 1) & 1;
+ if (gUnknown_083DFEC4->unk6DA0)
+ {
+ 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;
+ }
+}
+
+void sub_80EF7D4(void)
+{
+ 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);
+ }
+}
+
+void sub_80EF840(void)
+{
+ gUnknown_083DFEC4->unkD160 = 0;
+
+ if (gUnknown_083DFEC4->unk6DAC == 0)
+ {
+ while (sub_80EF874() != 0);
+ }
+}
+
+// The only non-matching part is the gSaveBlock2.regionMapZoom access.
+#ifdef NONMATCHING
+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);
+ 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;
+ }
+
+ REG_BG0CNT = REG_BG0CNT;
+ REG_BG0CNT |= 1;
+ REG_BLDCNT = 0;
+ break;
+ default:
+ return FALSE;
+ }
+
+ gUnknown_083DFEC4->unkD160++;
+ return TRUE;
+}
+#else
+asm(".include \"constants/gba_constants.inc\"\n");
+
+__attribute__((naked))
+bool8 sub_80EF874(void)
+{
+ asm(".syntax unified\n\
+ push {lr}\n\
+ ldr r0, _080EF890 @ =gUnknown_083DFEC4\n\
+ ldr r0, [r0]\n\
+ ldr r1, _080EF894 @ =0x0000d160\n\
+ adds r0, r1\n\
+ ldrh r0, [r0]\n\
+ cmp r0, 0xB\n\
+ bls _080EF886\n\
+ b _080EF9D8\n\
+_080EF886:\n\
+ lsls r0, 2\n\
+ ldr r1, _080EF898 @ =_080EF89C\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_080EF890: .4byte gUnknown_083DFEC4\n\
+_080EF894: .4byte 0x0000d160\n\
+_080EF898: .4byte _080EF89C\n\
+ .align 2, 0\n\
+_080EF89C:\n\
+ .4byte _080EF8CC\n\
+ .4byte _080EF8D2\n\
+ .4byte _080EF8E0\n\
+ .4byte _080EF8EC\n\
+ .4byte _080EF8F6\n\
+ .4byte _080EF8FC\n\
+ .4byte _080EF920\n\
+ .4byte _080EF92C\n\
+ .4byte _080EF940\n\
+ .4byte _080EF954\n\
+ .4byte _080EF960\n\
+ .4byte _080EF972\n\
+_080EF8CC:\n\
+ bl sub_80EEDE8\n\
+ b _080EF9DC\n\
+_080EF8D2:\n\
+ ldr r0, _080EF8DC @ =gWindowConfig_81E7224\n\
+ bl SetUpWindowConfig\n\
+ b _080EF9DC\n\
+ .align 2, 0\n\
+_080EF8DC: .4byte gWindowConfig_81E7224\n\
+_080EF8E0:\n\
+ ldr r0, _080EF8E8 @ =gWindowConfig_81E7224\n\
+ bl MultistepInitMenuWindowBegin\n\
+ b _080EF9DC\n\
+ .align 2, 0\n\
+_080EF8E8: .4byte gWindowConfig_81E7224\n\
+_080EF8EC:\n\
+ bl MultistepInitMenuWindowContinue\n\
+ cmp r0, 0\n\
+ bne _080EF9DC\n\
+ b _080EF9EA\n\
+_080EF8F6:\n\
+ bl MenuZeroFillScreen\n\
+ b _080EF9DC\n\
+_080EF8FC:\n\
+ ldr r0, _080EF914 @ =gUnknown_083DFEC4\n\
+ ldr r0, [r0]\n\
+ ldr r2, _080EF918 @ =0x00006e18\n\
+ adds r0, r2\n\
+ ldr r1, _080EF91C @ =gSaveBlock2\n\
+ ldrb r1, [r1, 0x15]\n\
+ lsrs r1, 3\n\
+ movs r2, 0x1\n\
+ ands r1, r2\n\
+ bl sub_80FA904\n\
+ b _080EF9DC\n\
+ .align 2, 0\n\
+_080EF914: .4byte gUnknown_083DFEC4\n\
+_080EF918: .4byte 0x00006e18\n\
+_080EF91C: .4byte gSaveBlock2\n\
+_080EF920:\n\
+ bl sub_80FA940\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080EF9DC\n\
+ b _080EF9EA\n\
+_080EF92C:\n\
+ ldr r0, _080EF938 @ =gPokenavHoennMapSquares_Gfx\n\
+ ldr r1, _080EF93C @ =0x06005000\n\
+ bl LZ77UnCompVram\n\
+ b _080EF9DC\n\
+ .align 2, 0\n\
+_080EF938: .4byte gPokenavHoennMapSquares_Gfx\n\
+_080EF93C: .4byte 0x06005000\n\
+_080EF940:\n\
+ ldr r0, _080EF950 @ =gPokenavHoennMapSquares_Pal\n\
+ movs r1, 0x30\n\
+ movs r2, 0x20\n\
+ bl LoadPalette\n\
+ bl sub_80EFC3C\n\
+ b _080EF9DC\n\
+ .align 2, 0\n\
+_080EF950: .4byte gPokenavHoennMapSquares_Pal\n\
+_080EF954:\n\
+ bl sub_80EFC64\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080EF9DC\n\
+ b _080EF9EA\n\
+_080EF960:\n\
+ movs r0, 0xD\n\
+ movs r1, 0x3\n\
+ movs r2, 0x1D\n\
+ movs r3, 0x11\n\
+ bl MenuDrawTextWindow\n\
+ bl sub_80EF9F8\n\
+ b _080EF9DC\n\
+_080EF972:\n\
+ ldr r0, _080EF990 @ =gUnknown_083DFEC4\n\
+ ldr r1, [r0]\n\
+ ldr r2, _080EF994 @ =0x00006e90\n\
+ adds r0, r1, r2\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ bne _080EF9A0\n\
+ ldr r2, _080EF998 @ =0x00007698\n\
+ adds r0, r1, r2\n\
+ movs r1, 0xA0\n\
+ strh r1, [r0]\n\
+ ldr r0, _080EF99C @ =REG_BG0VOFS\n\
+ strh r1, [r0]\n\
+ b _080EF9B0\n\
+ .align 2, 0\n\
+_080EF990: .4byte gUnknown_083DFEC4\n\
+_080EF994: .4byte 0x00006e90\n\
+_080EF998: .4byte 0x00007698\n\
+_080EF99C: .4byte REG_BG0VOFS\n\
+_080EF9A0:\n\
+ ldr r0, _080EF9C8 @ =0x00007698\n\
+ adds r1, r0\n\
+ movs r2, 0\n\
+ movs r0, 0x80\n\
+ lsls r0, 1\n\
+ strh r0, [r1]\n\
+ ldr r0, _080EF9CC @ =REG_BG0VOFS\n\
+ strh r2, [r0]\n\
+_080EF9B0:\n\
+ ldr r2, _080EF9D0 @ =REG_BG0CNT\n\
+ ldrh r0, [r2]\n\
+ strh r0, [r2]\n\
+ ldrh r0, [r2]\n\
+ movs r1, 0x1\n\
+ orrs r0, r1\n\
+ strh r0, [r2]\n\
+ ldr r1, _080EF9D4 @ =REG_BLDCNT\n\
+ movs r0, 0\n\
+ strh r0, [r1]\n\
+ b _080EF9DC\n\
+ .align 2, 0\n\
+_080EF9C8: .4byte 0x00007698\n\
+_080EF9CC: .4byte REG_BG0VOFS\n\
+_080EF9D0: .4byte REG_BG0CNT\n\
+_080EF9D4: .4byte REG_BLDCNT\n\
+_080EF9D8:\n\
+ movs r0, 0\n\
+ b _080EF9EC\n\
+_080EF9DC:\n\
+ ldr r0, _080EF9F0 @ =gUnknown_083DFEC4\n\
+ ldr r1, [r0]\n\
+ ldr r2, _080EF9F4 @ =0x0000d160\n\
+ adds r1, r2\n\
+ ldrh r0, [r1]\n\
+ adds r0, 0x1\n\
+ strh r0, [r1]\n\
+_080EF9EA:\n\
+ movs r0, 0x1\n\
+_080EF9EC:\n\
+ pop {r1}\n\
+ bx r1\n\
+ .align 2, 0\n\
+_080EF9F0: .4byte gUnknown_083DFEC4\n\
+_080EF9F4: .4byte 0x0000d160\n\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
+
+#ifdef NONMATCHING
+void sub_80EF9F8(void)
+{
+ s32 zero;
+ u16 i;
+ u8 *mapSectionName;
+ u32 offset;
+ u16 mapSectionId;
+ u8 b;
+ u8 **pointer;
+ u16 var1 = 4;
+
+
+ switch (gUnknown_083DFEC4->regionMap.unk16)
+ {
+ case 1:
+ case 4:
+ sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, var1 * 8, 0x78, 1);
+ var1 += 2;
+
+ if (gLinkOpen == TRUE)
+ {
+ sub_80F1A80();
+ }
+ else
+ {
+ i = 0;
+ while (i < 4 && (mapSectionName = GetLandmarkName(gUnknown_083DFEC4->regionMap.mapSectionId, gUnknown_083DFEC4->regionMap.everGrandeCityArea, i)) != NULL)
+ {
+ sub_8072A18(mapSectionName, 0x70, var1 * 8, 0x78, 1);
+ var1 += 2;
+ i++;
+ }
+
+ // This check is always true, but somehow the compiler still performed it.
+ asm("mov %0, #0\n":"=r"(zero)); // zero = 0
+ if (!zero && var1 < 16)
+ {
+ MenuFillWindowRectWithBlankTile(14, var1, 28, 15);
+ }
+ }
+ break;
+ case 2:
+ sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, var1 * 8, 0x78, 1);
+ var1 += 2;
+
+ mapSectionId = gUnknown_083DFEC4->regionMap.mapSectionId;
+ b = gUnknown_083DFEC4->regionMap.everGrandeCityArea;
+ offset = (b << 2) + (mapSectionId << 3);
+ pointer = (u8 **)((u8 *)&gUnknown_083DFEC4->unkCDCC + offset);
+ if (*pointer != NULL)
+ {
+ MenuFillWindowRectWithBlankTile(14, var1, 15, 15);
+ MenuFillWindowRectWithBlankTile(26, var1, 28, 15);
+
+ sub_8095C8C((void *)VRAM + 0xF800, 16, 6, *pointer, 0, 0, 10, 10, 10);
+
+ var1 += 11;
+ }
+
+ // This check is always true, but somehow the compiler still performed it.
+ asm("mov %0, #0\n":"=r"(zero)); // zero = 0
+ if (!zero && var1 < 16)
+ {
+ MenuFillWindowRectWithBlankTile(14, var1, 28, 15);
+ }
+ break;
+ case 3:
+ sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, var1 * 8, 0x78, 1);
+ var1 += 2;
+
+ // This check is always true, but somehow the compiler still performed it.
+ asm("mov %0, #0\n":"=r"(zero)); // zero = 0
+ if (!zero && var1 < 16)
+ {
+ MenuFillWindowRectWithBlankTile(14, var1, 28, 15);
+ }
+ break;
+ case 0:
+ default:
+ // This check is always true, but somehow the compiler still performed it.
+ asm("mov %0, #0\n":"=r"(zero)); // zero = 0
+ if (!zero && var1 < 16)
+ {
+ MenuFillWindowRectWithBlankTile(14, var1, 28, 15);
+ }
+ break;
+ }
+
+ if (gUnknown_083DFEC4->regionMap.unk16 == 2)
+ {
+ sub_80EFD74();
+ }
+ else
+ {
+ sub_80EFDA0();
+ }
+}
+#else
+__attribute__((naked))
+void sub_80EF9F8(void)
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ sub sp, 0x14\n\
+ movs r5, 0x4\n\
+ ldr r0, _080EFA18 @ =gUnknown_083DFEC4\n\
+ ldr r0, [r0]\n\
+ ldr r1, _080EFA1C @ =0x00006e2e\n\
+ adds r0, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x4\n\
+ bls _080EFA0E\n\
+ b _080EFB6A\n\
+_080EFA0E:\n\
+ lsls r0, 2\n\
+ ldr r1, _080EFA20 @ =_080EFA24\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_080EFA18: .4byte gUnknown_083DFEC4\n\
+_080EFA1C: .4byte 0x00006e2e\n\
+_080EFA20: .4byte _080EFA24\n\
+ .align 2, 0\n\
+_080EFA24:\n\
+ .4byte _080EFB6A\n\
+ .4byte _080EFA38\n\
+ .4byte _080EFAC0\n\
+ .4byte _080EFB4C\n\
+ .4byte _080EFA38\n\
+_080EFA38:\n\
+ ldr r0, _080EFA64 @ =gUnknown_083DFEC4\n\
+ ldr r0, [r0]\n\
+ ldr r2, _080EFA68 @ =0x00006e18\n\
+ adds r0, r2\n\
+ lsls r2, r5, 19\n\
+ lsrs r2, 16\n\
+ movs r1, 0x1\n\
+ str r1, [sp]\n\
+ movs r1, 0x70\n\
+ movs r3, 0x78\n\
+ bl sub_8072A18\n\
+ adds r0, r5, 0x2\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ ldr r0, _080EFA6C @ =gLinkOpen\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x1\n\
+ bne _080EFA70\n\
+ bl sub_80F1A80\n\
+ b _080EFB82\n\
+ .align 2, 0\n\
+_080EFA64: .4byte gUnknown_083DFEC4\n\
+_080EFA68: .4byte 0x00006e18\n\
+_080EFA6C: .4byte gLinkOpen\n\
+_080EFA70:\n\
+ movs r4, 0\n\
+ b _080EFA92\n\
+_080EFA74:\n\
+ lsls r2, r5, 19\n\
+ lsrs r2, 16\n\
+ movs r0, 0x1\n\
+ str r0, [sp]\n\
+ adds r0, r1, 0\n\
+ movs r1, 0x70\n\
+ movs r3, 0x78\n\
+ bl sub_8072A18\n\
+ adds r0, r5, 0x2\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+_080EFA92:\n\
+ cmp r4, 0x3\n\
+ bhi _080EFB6A\n\
+ ldr r0, _080EFAB8 @ =gUnknown_083DFEC4\n\
+ ldr r1, [r0]\n\
+ ldr r2, _080EFABC @ =0x00006e2c\n\
+ adds r0, r1, r2\n\
+ ldrb r0, [r0]\n\
+ adds r2, 0x3\n\
+ adds r1, r2\n\
+ ldrb r1, [r1]\n\
+ lsls r2, r4, 24\n\
+ lsrs r2, 24\n\
+ bl GetLandmarkName\n\
+ adds r1, r0, 0\n\
+ cmp r1, 0\n\
+ bne _080EFA74\n\
+ b _080EFB6A\n\
+ .align 2, 0\n\
+_080EFAB8: .4byte gUnknown_083DFEC4\n\
+_080EFABC: .4byte 0x00006e2c\n\
+_080EFAC0:\n\
+ ldr r0, _080EFB38 @ =gUnknown_083DFEC4\n\
+ ldr r4, [r0]\n\
+ ldr r1, _080EFB3C @ =0x00006e18\n\
+ adds r0, r4, r1\n\
+ lsls r2, r5, 19\n\
+ lsrs r2, 16\n\
+ movs r1, 0x1\n\
+ str r1, [sp]\n\
+ movs r1, 0x70\n\
+ movs r3, 0x78\n\
+ bl sub_8072A18\n\
+ adds r0, r5, 0x2\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ ldr r2, _080EFB40 @ =0x00006e2c\n\
+ adds r0, r4, r2\n\
+ ldrh r1, [r0]\n\
+ adds r2, 0x3\n\
+ adds r0, r4, r2\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 2\n\
+ lsls r1, 3\n\
+ adds r0, r1\n\
+ ldr r1, _080EFB44 @ =0x0000cdcc\n\
+ adds r4, r1\n\
+ adds r6, r4, r0\n\
+ ldr r0, [r6]\n\
+ cmp r0, 0\n\
+ beq _080EFB6A\n\
+ lsls r4, r5, 24\n\
+ lsrs r4, 24\n\
+ movs r0, 0xE\n\
+ adds r1, r4, 0\n\
+ movs r2, 0xF\n\
+ movs r3, 0xF\n\
+ bl MenuFillWindowRectWithBlankTile\n\
+ movs r0, 0x1A\n\
+ adds r1, r4, 0\n\
+ movs r2, 0x1C\n\
+ movs r3, 0xF\n\
+ bl MenuFillWindowRectWithBlankTile\n\
+ ldr r0, _080EFB48 @ =0x0600f800\n\
+ ldr r3, [r6]\n\
+ movs r1, 0\n\
+ str r1, [sp]\n\
+ str r1, [sp, 0x4]\n\
+ movs r1, 0xA\n\
+ str r1, [sp, 0x8]\n\
+ str r1, [sp, 0xC]\n\
+ str r1, [sp, 0x10]\n\
+ movs r1, 0x10\n\
+ movs r2, 0x6\n\
+ bl sub_8095C8C\n\
+ adds r0, r5, 0\n\
+ adds r0, 0xB\n\
+ b _080EFB66\n\
+ .align 2, 0\n\
+_080EFB38: .4byte gUnknown_083DFEC4\n\
+_080EFB3C: .4byte 0x00006e18\n\
+_080EFB40: .4byte 0x00006e2c\n\
+_080EFB44: .4byte 0x0000cdcc\n\
+_080EFB48: .4byte 0x0600f800\n\
+_080EFB4C:\n\
+ ldr r0, _080EFB98 @ =gUnknown_083DFEC4\n\
+ ldr r0, [r0]\n\
+ ldr r2, _080EFB9C @ =0x00006e18\n\
+ adds r0, r2\n\
+ lsls r2, r5, 19\n\
+ lsrs r2, 16\n\
+ movs r1, 0x1\n\
+ str r1, [sp]\n\
+ movs r1, 0x70\n\
+ movs r3, 0x78\n\
+ bl sub_8072A18\n\
+ adds r0, r5, 0x2\n\
+_080EFB66:\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+_080EFB6A:\n\
+ movs r0, 0\n\
+ cmp r0, 0\n\
+ bne _080EFB82\n\
+ cmp r5, 0xF\n\
+ bhi _080EFB82\n\
+ lsls r1, r5, 24\n\
+ lsrs r1, 24\n\
+ movs r0, 0xE\n\
+ movs r2, 0x1C\n\
+ movs r3, 0xF\n\
+ bl MenuFillWindowRectWithBlankTile\n\
+_080EFB82:\n\
+ ldr r0, _080EFB98 @ =gUnknown_083DFEC4\n\
+ ldr r0, [r0]\n\
+ ldr r1, _080EFBA0 @ =0x00006e2e\n\
+ adds r0, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x2\n\
+ bne _080EFBA4\n\
+ bl sub_80EFD74\n\
+ b _080EFBA8\n\
+ .align 2, 0\n\
+_080EFB98: .4byte gUnknown_083DFEC4\n\
+_080EFB9C: .4byte 0x00006e18\n\
+_080EFBA0: .4byte 0x00006e2e\n\
+_080EFBA4:\n\
+ bl sub_80EFDA0\n\
+_080EFBA8:\n\
+ add sp, 0x14\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
+
+void sub_80EFBB0(void)
+{
+ 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;
+
+ 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;
+
+ return retVal;
+}
+
+void sub_80EFC3C(void)
+{
+ gUnknown_083DFEC4->unkBC9A = 0;
+ gUnknown_083DFEC4->unkBC9B = 0;
+ sub_80EFD3C();
+}
+
+#ifdef NONMATCHING // "var1 = gUnknown_083DFEC4->unkBC9A;" is the only thing that doesnt' match.
+bool8 sub_80EFC64(void)
+{
+ u16 i;
+ u16 var1;
+ u16 var2;
+
+ if (gUnknown_083DFEC4->unkBC9A < 16)
+ {
+ var1 = gUnknown_083DFEC4->unkBC9A;
+ var2 = gUnknown_083DFEC4->unkBC9B;
+ for (i = 0; i < 2; i++)
+ {
+ if (gPokenavCityMaps[var1][i] != 0)
+ {
+ LZ77UnCompVram(gPokenavCityMaps[var1][i], gUnknown_083DFEC4->unkBC9C[var2]);
+ gUnknown_083DFEC4->unkCDCC[var1][i] = gUnknown_083DFEC4->unkBC9C[var2];
+ var2++;
+ }
+ else
+ {
+ gUnknown_083DFEC4->unkCDCC[var1][i] = NULL;
+ }
+ }
+
+ gUnknown_083DFEC4->unkBC9A++;
+ if (gUnknown_083DFEC4->unkBC9A < 16)
+ {
+ gUnknown_083DFEC4->unkBC9B = var2;
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+#else
+__attribute__((naked))
+bool8 sub_80EFC64(void)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r9\n\
+ mov r6, r8\n\
+ push {r6,r7}\n\
+ sub sp, 0x8\n\
+ ldr r4, _080EFCD0 @ =gUnknown_083DFEC4\n\
+ ldr r2, [r4]\n\
+ ldr r0, _080EFCD4 @ =0x0000bc9a\n\
+ adds r1, r2, r0\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0xF\n\
+ bhi _080EFD2C\n\
+ ldrb r1, [r1]\n\
+ mov r8, r1\n\
+ ldr r1, _080EFCD8 @ =0x0000bc9b\n\
+ adds r0, r2, r1\n\
+ ldrb r7, [r0]\n\
+ movs r2, 0\n\
+ ldr r0, _080EFCDC @ =gPokenavCityMaps\n\
+ mov r9, r0\n\
+ adds r3, r4, 0\n\
+_080EFC8E:\n\
+ lsls r0, r2, 2\n\
+ mov r4, r8\n\
+ lsls r1, r4, 3\n\
+ adds r6, r0, r1\n\
+ mov r1, r9\n\
+ adds r0, r6, r1\n\
+ ldr r1, [r0]\n\
+ cmp r1, 0\n\
+ beq _080EFCE8\n\
+ movs r0, 0xC8\n\
+ adds r5, r7, 0\n\
+ muls r5, r0\n\
+ ldr r4, _080EFCE0 @ =0x0000bc9c\n\
+ adds r5, r4\n\
+ ldr r4, [r3]\n\
+ adds r5, r4, r5\n\
+ adds r0, r1, 0\n\
+ adds r1, r5, 0\n\
+ str r2, [sp]\n\
+ str r3, [sp, 0x4]\n\
+ bl LZ77UnCompVram\n\
+ ldr r0, _080EFCE4 @ =0x0000cdcc\n\
+ adds r4, r0\n\
+ adds r4, r6\n\
+ str r5, [r4]\n\
+ adds r0, r7, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r7, r0, 16\n\
+ ldr r2, [sp]\n\
+ ldr r3, [sp, 0x4]\n\
+ b _080EFCF2\n\
+ .align 2, 0\n\
+_080EFCD0: .4byte gUnknown_083DFEC4\n\
+_080EFCD4: .4byte 0x0000bc9a\n\
+_080EFCD8: .4byte 0x0000bc9b\n\
+_080EFCDC: .4byte gPokenavCityMaps\n\
+_080EFCE0: .4byte 0x0000bc9c\n\
+_080EFCE4: .4byte 0x0000cdcc\n\
+_080EFCE8:\n\
+ ldr r0, [r3]\n\
+ ldr r4, _080EFD1C @ =0x0000cdcc\n\
+ adds r0, r4\n\
+ adds r0, r6\n\
+ str r1, [r0]\n\
+_080EFCF2:\n\
+ adds r0, r2, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r2, r0, 16\n\
+ cmp r2, 0x1\n\
+ bls _080EFC8E\n\
+ ldr r0, _080EFD20 @ =gUnknown_083DFEC4\n\
+ ldr r2, [r0]\n\
+ ldr r0, _080EFD24 @ =0x0000bc9a\n\
+ adds r1, r2, r0\n\
+ ldrb r0, [r1]\n\
+ adds r0, 0x1\n\
+ strb r0, [r1]\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0xF\n\
+ bhi _080EFD2C\n\
+ ldr r1, _080EFD28 @ =0x0000bc9b\n\
+ adds r0, r2, r1\n\
+ strb r7, [r0]\n\
+ movs r0, 0x1\n\
+ b _080EFD2E\n\
+ .align 2, 0\n\
+_080EFD1C: .4byte 0x0000cdcc\n\
+_080EFD20: .4byte gUnknown_083DFEC4\n\
+_080EFD24: .4byte 0x0000bc9a\n\
+_080EFD28: .4byte 0x0000bc9b\n\
+_080EFD2C:\n\
+ movs r0, 0\n\
+_080EFD2E:\n\
+ add sp, 0x8\n\
+ pop {r3,r4}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ pop {r4-r7}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
+
+void sub_80EFD3C(void)
+{
+ 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;
+ }
+}
+
+void sub_80EFDA0(void)
+{
+ 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;
+
+ 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 (var1 < 15)
+ {
+ u16 var2 = var1 + 14;
+
+ 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;
+
+ switch (var2)
+ {
+ case 0:
+ var1 = ++gUnknown_083DFEC4->unk769C;
+
+ if (var1 > 59)
+ {
+ gUnknown_083DFEC4->unk769C = var2;
+ }
+
+ 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;
+ }
+}
+
+void sub_80EFF34(void)
+{
+ gUnknown_083DFEC4->unkD160 = 0;
+
+ 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;
+ }
+
+ gUnknown_083DFEC4->unkD160++;
+ return TRUE;
+}
+
+void sub_80F0174(bool8 a)
+{
+ if (a)
+ {
+ 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;
+}
+
+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);
+ }
+}
+
+void sub_80F0264(u8 a)
+{
+ gUnknown_083DFEC4->unk306 = 0;
+ gUnknown_083DFEC4->unk87CA = a;
+
+ 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;
+
+ 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);
+
+ 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))
+bool8 sub_80F02A0(void)
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ mov r6, r8\n\
+ push {r6}\n\
+ sub sp, 0x18\n\
+ ldr r1, _080F02C4 @ =gUnknown_083DFEC4\n\
+ ldr r0, [r1]\n\
+ ldr r2, _080F02C8 @ =0x00000306\n\
+ adds r0, r2\n\
+ ldrh r0, [r0]\n\
+ adds r2, r1, 0\n\
+ cmp r0, 0xE\n\
+ bls _080F02BA\n\
+ b _080F05FA\n\
+_080F02BA:\n\
+ lsls r0, 2\n\
+ ldr r1, _080F02CC @ =_080F02D0\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_080F02C4: .4byte gUnknown_083DFEC4\n\
+_080F02C8: .4byte 0x00000306\n\
+_080F02CC: .4byte _080F02D0\n\
+ .align 2, 0\n\
+_080F02D0:\n\
+ .4byte _080F030C\n\
+ .4byte _080F0344\n\
+ .4byte _080F0350\n\
+ .4byte _080F035C\n\
+ .4byte _080F0368\n\
+ .4byte _080F036E\n\
+ .4byte _080F0380\n\
+ .4byte _080F0394\n\
+ .4byte _080F04BC\n\
+ .4byte _080F053C\n\
+ .4byte _080F0550\n\
+ .4byte _080F0574\n\
+ .4byte _080F057A\n\
+ .4byte _080F0586\n\
+ .4byte _080F05BC\n\
+_080F030C:\n\
+ bl sub_80EEDE8\n\
+ ldr r0, _080F0334 @ =gUnknown_083DFEC4\n\
+ ldr r1, [r0]\n\
+ movs r2, 0\n\
+ ldr r3, _080F0338 @ =0x000087ca\n\
+ adds r0, r1, r3\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x1\n\
+ bne _080F0322\n\
+ movs r2, 0x1\n\
+_080F0322:\n\
+ ldr r3, _080F033C @ =0x000087c8\n\
+ adds r0, r1, r3\n\
+ strb r2, [r0]\n\
+ ldr r0, _080F0340 @ =0x0000d162\n\
+ adds r1, r0\n\
+ movs r0, 0xB\n\
+ strb r0, [r1]\n\
+ b _080F0618\n\
+ .align 2, 0\n\
+_080F0334: .4byte gUnknown_083DFEC4\n\
+_080F0338: .4byte 0x000087ca\n\
+_080F033C: .4byte 0x000087c8\n\
+_080F0340: .4byte 0x0000d162\n\
+_080F0344:\n\
+ ldr r0, _080F034C @ =gWindowConfig_81E70D4\n\
+ bl SetUpWindowConfig\n\
+ b _080F0618\n\
+ .align 2, 0\n\
+_080F034C: .4byte gWindowConfig_81E70D4\n\
+_080F0350:\n\
+ ldr r0, _080F0358 @ =gWindowConfig_81E70D4\n\
+ bl MultistepInitMenuWindowBegin\n\
+ b _080F0618\n\
+ .align 2, 0\n\
+_080F0358: .4byte gWindowConfig_81E70D4\n\
+_080F035C:\n\
+ bl MultistepInitMenuWindowContinue\n\
+ cmp r0, 0\n\
+ beq _080F0366\n\
+ b _080F0618\n\
+_080F0366:\n\
+ b _080F0626\n\
+_080F0368:\n\
+ bl MenuZeroFillScreen\n\
+ b _080F0618\n\
+_080F036E:\n\
+ ldr r0, _080F0378 @ =gUnknown_08E9FC64\n\
+ ldr r1, _080F037C @ =0x0600e800\n\
+ bl LZ77UnCompVram\n\
+ b _080F0618\n\
+ .align 2, 0\n\
+_080F0378: .4byte gUnknown_08E9FC64\n\
+_080F037C: .4byte 0x0600e800\n\
+_080F0380:\n\
+ ldr r0, _080F038C @ =gPokenavConditionSearch2_Gfx\n\
+ ldr r1, _080F0390 @ =0x06008000\n\
+ bl LZ77UnCompVram\n\
+ b _080F0618\n\
+ .align 2, 0\n\
+_080F038C: .4byte gPokenavConditionSearch2_Gfx\n\
+_080F0390: .4byte 0x06008000\n\
+_080F0394:\n\
+ ldr r6, _080F03FC @ =gUnknown_083E02B4\n\
+ adds r0, r6, 0\n\
+ movs r1, 0xB0\n\
+ movs r2, 0x20\n\
+ bl LoadPalette\n\
+ adds r0, r6, 0\n\
+ movs r1, 0xF0\n\
+ movs r2, 0x20\n\
+ bl LoadPalette\n\
+ ldr r0, _080F0400 @ =gUnknown_083E0334\n\
+ movs r1, 0x40\n\
+ movs r2, 0x20\n\
+ bl LoadPalette\n\
+ ldr r0, _080F0404 @ =gUnknown_083DFEC4\n\
+ ldr r0, [r0]\n\
+ ldr r1, _080F0408 @ =0x000087ca\n\
+ adds r0, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ bne _080F0418\n\
+ ldr r4, _080F040C @ =gPokenavConditionSearch2_Pal\n\
+ adds r0, r4, 0\n\
+ movs r1, 0x30\n\
+ movs r2, 0x20\n\
+ bl LoadPalette\n\
+ ldr r1, _080F0410 @ =gPlttBufferUnfaded\n\
+ ldrh r0, [r4, 0xA]\n\
+ strh r0, [r1]\n\
+ ldr r0, _080F0414 @ =gUnknownPalette_81E6692\n\
+ movs r1, 0xB0\n\
+ movs r2, 0x20\n\
+ bl LoadPalette\n\
+ adds r0, r6, 0x2\n\
+ movs r1, 0xB1\n\
+ movs r2, 0x2\n\
+ bl LoadPalette\n\
+ adds r0, r6, 0\n\
+ adds r0, 0x10\n\
+ movs r1, 0xB5\n\
+ movs r2, 0x2\n\
+ bl LoadPalette\n\
+ adds r4, 0xA\n\
+ adds r0, r4, 0\n\
+ movs r1, 0xBF\n\
+ b _080F04A8\n\
+ .align 2, 0\n\
+_080F03FC: .4byte gUnknown_083E02B4\n\
+_080F0400: .4byte gUnknown_083E0334\n\
+_080F0404: .4byte gUnknown_083DFEC4\n\
+_080F0408: .4byte 0x000087ca\n\
+_080F040C: .4byte gPokenavConditionSearch2_Pal\n\
+_080F0410: .4byte gPlttBufferUnfaded\n\
+_080F0414: .4byte gUnknownPalette_81E6692\n\
+_080F0418:\n\
+ cmp r0, 0x1\n\
+ bne _080F0464\n\
+ ldr r4, _080F0458 @ =gUnknown_083E0274\n\
+ adds r0, r4, 0\n\
+ movs r1, 0x30\n\
+ movs r2, 0x20\n\
+ bl LoadPalette\n\
+ ldr r1, _080F045C @ =gPlttBufferUnfaded\n\
+ ldrh r0, [r4, 0xA]\n\
+ strh r0, [r1]\n\
+ ldr r0, _080F0460 @ =gUnknownPalette_81E6692\n\
+ movs r1, 0xB0\n\
+ movs r2, 0x20\n\
+ bl LoadPalette\n\
+ adds r0, r6, 0x2\n\
+ movs r1, 0xB1\n\
+ movs r2, 0x2\n\
+ bl LoadPalette\n\
+ adds r0, r6, 0\n\
+ adds r0, 0x10\n\
+ movs r1, 0xB5\n\
+ movs r2, 0x2\n\
+ bl LoadPalette\n\
+ adds r4, 0xA\n\
+ adds r0, r4, 0\n\
+ movs r1, 0xBF\n\
+ b _080F04A8\n\
+ .align 2, 0\n\
+_080F0458: .4byte gUnknown_083E0274\n\
+_080F045C: .4byte gPlttBufferUnfaded\n\
+_080F0460: .4byte gUnknownPalette_81E6692\n\
+_080F0464:\n\
+ ldr r4, _080F04B0 @ =gUnknown_08E9F9E8\n\
+ adds r0, r4, 0\n\
+ movs r1, 0x30\n\
+ movs r2, 0x20\n\
+ bl LoadPalette\n\
+ ldr r1, _080F04B4 @ =gPlttBufferUnfaded\n\
+ adds r5, r4, 0\n\
+ adds r5, 0xA\n\
+ ldrh r0, [r4, 0xA]\n\
+ strh r0, [r1]\n\
+ ldr r0, _080F04B8 @ =gUnknown_083E0314\n\
+ movs r1, 0x50\n\
+ movs r2, 0x20\n\
+ bl LoadPalette\n\
+ adds r0, r6, 0x2\n\
+ movs r1, 0xB1\n\
+ movs r2, 0x2\n\
+ bl LoadPalette\n\
+ adds r0, r6, 0\n\
+ adds r0, 0x10\n\
+ movs r1, 0xB5\n\
+ movs r2, 0x2\n\
+ bl LoadPalette\n\
+ adds r0, r5, 0\n\
+ movs r1, 0xBF\n\
+ movs r2, 0x2\n\
+ bl LoadPalette\n\
+ adds r0, r5, 0\n\
+ movs r1, 0x5F\n\
+_080F04A8:\n\
+ movs r2, 0x2\n\
+ bl LoadPalette\n\
+ b _080F0618\n\
+ .align 2, 0\n\
+_080F04B0: .4byte gUnknown_08E9F9E8\n\
+_080F04B4: .4byte gPlttBufferUnfaded\n\
+_080F04B8: .4byte gUnknown_083E0314\n\
+_080F04BC:\n\
+ ldr r0, _080F04E8 @ =gUnknown_083DFEC4\n\
+ ldr r0, [r0]\n\
+ ldr r2, _080F04EC @ =0x000087ca\n\
+ adds r0, r2\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x2\n\
+ beq _080F04F8\n\
+ ldr r0, _080F04F0 @ =0x0600e800\n\
+ ldr r3, _080F04F4 @ =gUnknown_08E9FD1C\n\
+ movs r1, 0\n\
+ str r1, [sp]\n\
+ str r1, [sp, 0x4]\n\
+ movs r2, 0x9\n\
+ str r2, [sp, 0x8]\n\
+ movs r1, 0x4\n\
+ str r1, [sp, 0xC]\n\
+ str r2, [sp, 0x10]\n\
+ movs r1, 0\n\
+ movs r2, 0x5\n\
+ bl sub_8095C8C\n\
+ b _080F0618\n\
+ .align 2, 0\n\
+_080F04E8: .4byte gUnknown_083DFEC4\n\
+_080F04EC: .4byte 0x000087ca\n\
+_080F04F0: .4byte 0x0600e800\n\
+_080F04F4: .4byte gUnknown_08E9FD1C\n\
+_080F04F8:\n\
+ ldr r3, _080F0530 @ =0x0600e800\n\
+ mov r8, r3\n\
+ ldr r3, _080F0534 @ =gUnknown_08E9FE54\n\
+ movs r4, 0\n\
+ str r4, [sp]\n\
+ str r4, [sp, 0x4]\n\
+ movs r5, 0xC\n\
+ str r5, [sp, 0x8]\n\
+ movs r6, 0xA\n\
+ str r6, [sp, 0xC]\n\
+ str r5, [sp, 0x10]\n\
+ mov r0, r8\n\
+ movs r1, 0\n\
+ movs r2, 0x4\n\
+ bl sub_8095C8C\n\
+ ldr r3, _080F0538 @ =gUnknown_08E9FD64\n\
+ str r4, [sp]\n\
+ str r4, [sp, 0x4]\n\
+ str r5, [sp, 0x8]\n\
+ str r6, [sp, 0xC]\n\
+ str r5, [sp, 0x10]\n\
+ mov r0, r8\n\
+ movs r1, 0\n\
+ movs r2, 0x8\n\
+ bl sub_8095C8C\n\
+ b _080F0618\n\
+ .align 2, 0\n\
+_080F0530: .4byte 0x0600e800\n\
+_080F0534: .4byte gUnknown_08E9FE54\n\
+_080F0538: .4byte gUnknown_08E9FD64\n\
+_080F053C:\n\
+ ldr r0, _080F0548 @ =gUnknown_083E0354\n\
+ ldr r1, _080F054C @ =0x06005000\n\
+ bl LZ77UnCompVram\n\
+ b _080F0618\n\
+ .align 2, 0\n\
+_080F0548: .4byte gUnknown_083E0354\n\
+_080F054C: .4byte 0x06005000\n\
+_080F0550:\n\
+ ldr r2, _080F0568 @ =0x0600f800\n\
+ add r1, sp, 0x14\n\
+ movs r0, 0\n\
+ strh r0, [r1]\n\
+ ldr r0, _080F056C @ =0x040000d4\n\
+ str r1, [r0]\n\
+ str r2, [r0, 0x4]\n\
+ ldr r1, _080F0570 @ =0x81000400\n\
+ str r1, [r0, 0x8]\n\
+ ldr r0, [r0, 0x8]\n\
+ b _080F0618\n\
+ .align 2, 0\n\
+_080F0568: .4byte 0x0600f800\n\
+_080F056C: .4byte 0x040000d4\n\
+_080F0570: .4byte 0x81000400\n\
+_080F0574:\n\
+ bl sub_80F0900\n\
+ b _080F0618\n\
+_080F057A:\n\
+ bl sub_80F0944\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080F0618\n\
+ b _080F0626\n\
+_080F0586:\n\
+ ldr r0, _080F059C @ =gUnknown_083DFEC4\n\
+ ldr r4, [r0]\n\
+ ldr r1, _080F05A0 @ =0x000087ca\n\
+ adds r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x2\n\
+ beq _080F05A4\n\
+ bl ShowMapNamePopUpWindow\n\
+ b _080F0618\n\
+ .align 2, 0\n\
+_080F059C: .4byte gUnknown_083DFEC4\n\
+_080F05A0: .4byte 0x000087ca\n\
+_080F05A4:\n\
+ movs r0, 0\n\
+ bl sub_80F081C\n\
+ ldr r2, _080F05B8 @ =0x0000876e\n\
+ adds r0, r4, r2\n\
+ ldrb r0, [r0]\n\
+ bl sub_80F0FFC\n\
+ b _080F0618\n\
+ .align 2, 0\n\
+_080F05B8: .4byte 0x0000876e\n\
+_080F05BC:\n\
+ ldr r1, _080F0600 @ =REG_BG2CNT\n\
+ ldr r3, _080F0604 @ =0x00001d0a\n\
+ adds r0, r3, 0\n\
+ strh r0, [r1]\n\
+ adds r1, 0x2\n\
+ adds r3, 0xF9\n\
+ adds r0, r3, 0\n\
+ strh r0, [r1]\n\
+ subs r1, 0x6\n\
+ adds r3, 0xFE\n\
+ adds r0, r3, 0\n\
+ strh r0, [r1]\n\
+ adds r1, 0x16\n\
+ movs r0, 0xF8\n\
+ strh r0, [r1]\n\
+ ldr r1, [r2]\n\
+ ldr r0, _080F0608 @ =0x00008776\n\
+ adds r2, r1, r0\n\
+ movs r3, 0\n\
+ movs r0, 0xF8\n\
+ strh r0, [r2]\n\
+ ldr r2, _080F060C @ =0x00008778\n\
+ adds r0, r1, r2\n\
+ strh r3, [r0]\n\
+ ldr r0, _080F0610 @ =REG_BLDCNT\n\
+ strh r3, [r0]\n\
+ ldr r3, _080F0614 @ =0x0000d160\n\
+ adds r1, r3\n\
+ ldrh r0, [r1]\n\
+ adds r0, 0x1\n\
+ strh r0, [r1]\n\
+_080F05FA:\n\
+ movs r0, 0\n\
+ b _080F0628\n\
+ .align 2, 0\n\
+_080F0600: .4byte REG_BG2CNT\n\
+_080F0604: .4byte 0x00001d0a\n\
+_080F0608: .4byte 0x00008776\n\
+_080F060C: .4byte 0x00008778\n\
+_080F0610: .4byte REG_BLDCNT\n\
+_080F0614: .4byte 0x0000d160\n\
+_080F0618:\n\
+ ldr r0, _080F0634 @ =gUnknown_083DFEC4\n\
+ ldr r1, [r0]\n\
+ ldr r0, _080F0638 @ =0x00000306\n\
+ adds r1, r0\n\
+ ldrh r0, [r1]\n\
+ adds r0, 0x1\n\
+ strh r0, [r1]\n\
+_080F0626:\n\
+ movs r0, 0x1\n\
+_080F0628:\n\
+ add sp, 0x18\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r6}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .align 2, 0\n\
+_080F0634: .4byte gUnknown_083DFEC4\n\
+_080F0638: .4byte 0x00000306\n\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
diff --git a/src/rom3.c b/src/rom3.c
index 3f4860ecc..dd520a839 100644
--- a/src/rom3.c
+++ b/src/rom3.c
@@ -6,21 +6,17 @@
#include "battle_anim_81258BC.h"
#include "battle_anim_8137220.h"
#include "cable_club.h"
-#include "items.h"
+#include "constants/items.h"
#include "link.h"
#include "pokemon.h"
#include "rom3.h"
#include "rom_8094928.h"
-#include "species.h"
+#include "constants/species.h"
#include "task.h"
#include "util.h"
#include "battle_message.h"
#include "data2.h"
-
-extern u8 unk_2000000[];
-
-#define EWRAM_14000 ((u8 *)(unk_2000000 + 0x14000))
-#define EWRAM_15000 ((u8 *)(unk_2000000 + 0x15000))
+#include "ewram.h"
extern u16 gBattleTypeFlags;
extern u16 gBattleWeather;
@@ -92,7 +88,7 @@ void setup_poochyena_battle(void)
ZeroEnemyPartyMons();
CreateMon(&gEnemyParty[0], SPECIES_POOCHYENA, 2, 32, 0, 0, 0, 0);
i = ITEM_NONE;
- SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, (u8 *)&i);
+ SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &i);
}
gUnknown_020239FC = 0;
gUnknown_02024C78 = 0;
@@ -403,16 +399,18 @@ void PrepareBufferDataTransferLink(u8 a, u16 size, u8 *data)
gTasks[gUnknown_020238C4].data[12] = gTasks[gUnknown_020238C4].data[14];
gTasks[gUnknown_020238C4].data[14] = 0;
}
- unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14000] = a;
- unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14001] = gActiveBank;
- unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14002] = gBankAttacker;
- unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14003] = gBankTarget;
- unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14004] = r9;
- unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14005] = (r9 & 0x0000FF00) >> 8;
- unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14006] = gAbsentBankFlags;
- unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14007] = gEffectBank;
+
+ ewram14000arr(0, gTasks[gUnknown_020238C4].data[14]) = a;
+ ewram14000arr(1, gTasks[gUnknown_020238C4].data[14]) = gActiveBank;
+ ewram14000arr(2, gTasks[gUnknown_020238C4].data[14]) = gBankAttacker;
+ ewram14000arr(3, gTasks[gUnknown_020238C4].data[14]) = gBankTarget;
+ ewram14000arr(4, gTasks[gUnknown_020238C4].data[14]) = r9;
+ ewram14000arr(5, gTasks[gUnknown_020238C4].data[14]) = (r9 & 0x0000FF00) >> 8;
+ ewram14000arr(6, gTasks[gUnknown_020238C4].data[14]) = gAbsentBankFlags;
+ ewram14000arr(7, gTasks[gUnknown_020238C4].data[14]) = gEffectBank;
+
for (i = 0; i < size; i++)
- unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14008 + i] = data[i];
+ ewram14008arr(i, gTasks[gUnknown_020238C4].data[14]) = data[i];
gTasks[gUnknown_020238C4].data[14] = gTasks[gUnknown_020238C4].data[14] + r9 + 8;
}
@@ -452,8 +450,8 @@ void sub_800C1A8(u8 taskId)
gTasks[taskId].data[12] = 0;
gTasks[taskId].data[15] = 0;
}
- var = (unk_2000000[gTasks[taskId].data[15] + 0x14004] | (unk_2000000[gTasks[taskId].data[15] + 0x14005] << 8)) + 8;
- SendBlock(bitmask_all_link_players_but_self(), &unk_2000000[gTasks[taskId].data[15] + 0x14000], var);
+ var = (ewram14004arr(0, gTasks[taskId].data[15]) | (ewram14004arr(1, gTasks[taskId].data[15]) << 8)) + 8;
+ SendBlock(bitmask_all_link_players_but_self(), &ewram14000arr(0, gTasks[taskId].data[15]), var);
gTasks[taskId].data[11]++;
}
else
@@ -466,7 +464,7 @@ void sub_800C1A8(u8 taskId)
case 4:
if (sub_8007ECC())
{
- var = unk_2000000[gTasks[taskId].data[15] + 0x14004] | (unk_2000000[gTasks[taskId].data[15] + 0x14005] << 8);
+ var = (ewram14004arr(0, gTasks[taskId].data[15]) | (ewram14004arr(1, gTasks[taskId].data[15]) << 8));
gTasks[taskId].data[13] = 1;
gTasks[taskId].data[15] = gTasks[taskId].data[15] + var + 8;
gTasks[taskId].data[11] = 3;
@@ -489,7 +487,7 @@ void sub_800C35C(void)
u8 i; //r4
s32 j; //r2
u16 r6; //r6
- u8 *recvBuffer; //r3
+ u16 *recvBuffer; //r3
u8 *dest; //r5
u8 *src; //r4
@@ -500,10 +498,10 @@ void sub_800C35C(void)
if (GetBlockReceivedStatus() & gBitTable[i])
{
ResetBlockReceivedFlag(i);
- recvBuffer = (u8 *)&gBlockRecvBuffer[i];
+ recvBuffer = gBlockRecvBuffer[i];
#ifndef NONMATCHING
asm("");
- recvBuffer = (u8 *)&gBlockRecvBuffer[i];
+ recvBuffer = gBlockRecvBuffer[i];
#endif
r6 = gBlockRecvBuffer[i][2];
if (gTasks[gUnknown_020238C5].data[14] + 9 + r6 > 0x1000)
@@ -513,7 +511,7 @@ void sub_800C35C(void)
}
//_0800C402
dest = EWRAM_15000 + gTasks[gUnknown_020238C5].data[14];
- src = recvBuffer;
+ src = (u8 *)recvBuffer;
for (j = 0; j < r6 + 8; j++)
dest[j] = src[j];
gTasks[gUnknown_020238C5].data[14] = gTasks[gUnknown_020238C5].data[14] + r6 + 8;
@@ -537,28 +535,28 @@ void sub_800C47C(u8 taskId)
gTasks[taskId].data[12] = 0;
gTasks[taskId].data[15] = 0;
}
- r4 = unk_2000000[0x15000 + gTasks[taskId].data[15] + 1];
- r7 = unk_2000000[0x15000 + gTasks[taskId].data[15] + 4] | (unk_2000000[0x15000 + gTasks[taskId].data[15] + 5] << 8);
- switch (unk_2000000[0x15000 + gTasks[taskId].data[15] + 0])
+ r4 = ewram15000arr(1, gTasks[taskId].data[15]);
+ r7 = ewram15000arr(4, gTasks[taskId].data[15]) | (ewram15000arr(5, gTasks[taskId].data[15]) << 8);
+ switch (ewram15000arr(0, gTasks[taskId].data[15]))
{
case 0:
if (gBattleExecBuffer & gBitTable[r4])
return;
- memcpy(gBattleBufferA[r4], &unk_2000000[0x15000 + gTasks[taskId].data[15] + 8], r7);
+ memcpy(gBattleBufferA[r4], &ewram15000arr(8, gTasks[taskId].data[15]), r7);
sub_80155A4(r4);
if (!(gBattleTypeFlags & BATTLE_TYPE_WILD))
{
- gBankAttacker = unk_2000000[0x15000 + gTasks[taskId].data[15] + 2];
- gBankTarget = unk_2000000[0x15000 + gTasks[taskId].data[15] + 3];
- gAbsentBankFlags = unk_2000000[0x15000 + gTasks[taskId].data[15] + 6];
- gEffectBank = unk_2000000[0x15000 + gTasks[taskId].data[15] + 7];
+ gBankAttacker = ewram15000arr(2, gTasks[taskId].data[15]);
+ gBankTarget = ewram15000arr(3, gTasks[taskId].data[15]);
+ gAbsentBankFlags = ewram15000arr(6, gTasks[taskId].data[15]);
+ gEffectBank = ewram15000arr(7, gTasks[taskId].data[15]);
}
break;
case 1:
- memcpy(gBattleBufferB[r4], &unk_2000000[0x15000 + gTasks[taskId].data[15] + 8], r7);
+ memcpy(gBattleBufferB[r4], &ewram15000arr(8, gTasks[taskId].data[15]), r7);
break;
case 2:
- r2 = unk_2000000[0x15000 + gTasks[taskId].data[15] + 8];
+ r2 = ewram15000arr(8, gTasks[taskId].data[15]);
gBattleExecBuffer &= ~(gBitTable[r4] << (r2 * 4));
break;
}
@@ -1097,7 +1095,7 @@ void EmitTrainerBallThrow(u8 a)
PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4);
}
-void Emitcmd48(u8 a, u8 *b, u8 c)
+void EmitDrawPartyStatusSummary(u8 a, struct HpAndStatus *hpAndStatus, u8 c)
{
int i;
@@ -1106,7 +1104,7 @@ void Emitcmd48(u8 a, u8 *b, u8 c)
gBattleBuffersTransferData[2] = (c & 0x80) >> 7;
gBattleBuffersTransferData[3] = 48;
for (i = 0; i < 48; i++)
- gBattleBuffersTransferData[4 + i] = b[i];
+ gBattleBuffersTransferData[4 + i] = *(i + (u8*)(hpAndStatus));
PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 52);
}
diff --git a/src/rom6.c b/src/rom6.c
index b91a9b2c0..e71484b0a 100644
--- a/src/rom6.c
+++ b/src/rom6.c
@@ -8,12 +8,12 @@
#include "pokemon_menu.h"
#include "overworld.h"
#include "script.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "task.h"
-extern u16 gScriptLastTalked;
+extern u16 gSpecialVar_LastTalked;
extern void (*gFieldCallback)(void);
extern u8 gLastFieldPokeMenuOpened;
extern void (*gUnknown_03005CE4)(void);
@@ -43,7 +43,7 @@ bool8 npc_before_player_of_type(u8 a)
}
else
{
- gScriptLastTalked = gMapObjects[mapObjId].localId;
+ gSpecialVar_LastTalked = gMapObjects[mapObjId].localId;
return TRUE;
}
}
@@ -59,7 +59,7 @@ static void task08_080C9820(u8 taskId)
u8 mapObjId;
ScriptContext2_Enable();
- gPlayerAvatar.unk6 = 1;
+ gPlayerAvatar.preventStep = TRUE;
mapObjId = gPlayerAvatar.mapObjectId;
if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(&gMapObjects[mapObjId])
|| FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[mapObjId]))
@@ -112,7 +112,7 @@ static void sub_810B4CC(u8 taskId)
void (*func)(void) = (void (*)(void))(((u16)gTasks[taskId].data[8] << 16) | (u16)gTasks[taskId].data[9]);
func();
- gPlayerAvatar.unk6 = 0;
+ gPlayerAvatar.preventStep = FALSE;
DestroyTask(taskId);
}
diff --git a/src/rom_800D42C.c b/src/rom_800D42C.c
index f51779e65..bf6d03fb7 100644
--- a/src/rom_800D42C.c
+++ b/src/rom_800D42C.c
@@ -2,6 +2,7 @@
#include "battle.h"
#include "link.h"
#include "text.h"
+#include "ewram.h"
extern u16 gBattleTypeFlags;
extern u8 gBattleOutcome;
diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c
index ef9eb36a8..0ecaa9dcb 100644
--- a/src/rom_8077ABC.c
+++ b/src/rom_8077ABC.c
@@ -7,11 +7,12 @@
#include "decompress.h"
#include "palette.h"
#include "pokemon_icon.h"
-#include "species.h"
+#include "constants/species.h"
#include "sprite.h"
#include "task.h"
#include "trig.h"
#include "util.h"
+#include "ewram.h"
#define GET_UNOWN_LETTER(personality) ((\
(((personality & 0x03000000) >> 24) << 6) \
@@ -50,13 +51,6 @@ struct Struct_gUnknown_0837F578 {
u8 field_1;
};
-struct OamMatrix {
- s16 a;
- s16 b;
- s16 c;
- s16 d;
-};
-
struct Struct_2017810 {
u8 filler_0[6];
u8 field_6;
@@ -69,12 +63,6 @@ struct Color {
u16 b:5;
};
-struct Struct_sub_8078914 {
- u8 *field_0;
- u8 *field_4;
- u8 field_8;
-};
-
struct BGCnt {
u16 priority:2;
u16 charBase:2;
@@ -94,8 +82,6 @@ extern struct OamData gOamData_837DF9C[];
extern const union AnimCmd *const gDummySpriteAnimTable[];
extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[];
-extern struct Struct_unk_2019348 unk_2019348;
-extern struct TransformStatus gTransformStatuses[];
extern u16 gBattleMonPartyPositions[];
extern u16 gBattleTypeFlags;
extern u32 gTransformPersonalities[NUM_BATTLE_SLOTS];
@@ -187,7 +173,7 @@ u8 sub_8077ABC(u8 slot, u8 a2) {
u16 species;
struct TransformStatus *transform;
- if (IsContest()) {
+ if (NotInBattle()) {
if (a2 == 3 && slot == 3) {
a2 = 1;
}
@@ -203,22 +189,22 @@ u8 sub_8077ABC(u8 slot, u8 a2) {
case 3:
case 4:
default:
- if (IsContest()) {
- if (unk_2019348.field_4 & 1) {
- species = unk_2019348.field_2;
+ if (NotInBattle()) {
+ if (ewram19348.unk4 & 1) {
+ species = ewram19348.unk2;
} else {
- species = unk_2019348.field_0;
+ species = ewram19348.unk0;
}
} else {
if (GetBankSide(slot)) {
- transform = &gTransformStatuses[slot];
+ transform = &eTransformStatuses[slot];
if (!transform->species) {
species = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
} else {
species = transform->species;
}
} else {
- transform = &gTransformStatuses[slot];
+ transform = &eTransformStatuses[slot];
if (!transform->species) {
species = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
} else {
@@ -243,16 +229,16 @@ u8 sub_8077BFC(u8 slot, u16 species) {
u8 ret;
u16 var;
- if (!GetBankSide(slot) || IsContest()) {
+ if (!GetBankSide(slot) || NotInBattle()) {
if (species == SPECIES_UNOWN) {
- if (IsContest()) {
- if (unk_2019348.field_4 & 1) {
- personality = unk_2019348.field_10;
+ if (NotInBattle()) {
+ if (ewram19348.unk4 & 1) {
+ personality = ewram19348.unk10;
} else {
- personality = unk_2019348.field_8;
+ personality = ewram19348.unk8;
}
} else {
- transform = &gTransformStatuses[slot];
+ transform = &eTransformStatuses[slot];
if (!transform->species) {
personality = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_PERSONALITY);
} else {
@@ -275,7 +261,7 @@ u8 sub_8077BFC(u8 slot, u16 species) {
}
} else {
if (species == SPECIES_UNOWN) {
- transform = &gTransformStatuses[slot];
+ transform = &eTransformStatuses[slot];
if (!transform->species) {
personality = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_PERSONALITY);
} else {
@@ -302,7 +288,7 @@ u8 sub_8077BFC(u8 slot, u16 species) {
u8 sub_8077DD8(u8 slot, u16 species) {
u8 ret = 0;
if (GetBankSide(slot) == 1) {
- if (!IsContest()) {
+ if (!NotInBattle()) {
if (species == SPECIES_CASTFORM) {
ret = gCastformElevations[gBattleMonForms[slot]];
} else if (species > NUM_SPECIES) {
@@ -318,7 +304,7 @@ u8 sub_8077DD8(u8 slot, u16 species) {
u8 sub_8077E44(u8 slot, u16 species, u8 a3) {
u16 offset;
u8 y;
- if (GetBankSide(slot) == 0 || IsContest()) {
+ if (GetBankSide(slot) == 0 || NotInBattle()) {
offset = sub_8077BFC(slot, species);
} else {
offset = sub_8077BFC(slot, species);
@@ -338,14 +324,14 @@ u8 sub_8077EE4(u8 slot, u8 a2) {
u16 species;
struct TransformStatus *transform;
if (a2 == 3 || a2 == 4) {
- if (IsContest()) {
- if (unk_2019348.field_4 & 1) {
- species = unk_2019348.field_2;
+ if (NotInBattle()) {
+ if (ewram19348.unk4 & 1) {
+ species = ewram19348.unk2;
} else {
- species = unk_2019348.field_0;
+ species = ewram19348.unk0;
}
} else {
- transform = &gTransformStatuses[slot];
+ transform = &eTransformStatuses[slot];
if (!transform->species) {
species = gUnknown_0202F7CA[slot];
} else {
@@ -381,16 +367,16 @@ u8 sub_8077FC0(u8 slot) {
u8 r6;
struct TransformStatus *transform;
r6 = sub_8077ABC(slot, 1);
- if (!IsContest()) {
+ if (!NotInBattle()) {
if (GetBankSide(slot)) {
- transform = &gTransformStatuses[slot];
+ transform = &eTransformStatuses[slot];
if (!transform->species) {
var = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
} else {
var = transform->species;
}
} else {
- transform = &gTransformStatuses[slot];
+ transform = &eTransformStatuses[slot];
if (!transform->species) {
var = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
} else {
@@ -435,92 +421,92 @@ u8 GetAnimBankSpriteId(u8 whichBank) {
}
}
-void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*callback)(struct Sprite*)) {
- sprite->data6 = (u32)(callback) & 0xffff;
- sprite->data7 = (u32)(callback) >> 16;
+void StoreSpriteCallbackInData(struct Sprite *sprite, void (*callback)(struct Sprite*)) {
+ sprite->data[6] = (u32)(callback) & 0xffff;
+ sprite->data[7] = (u32)(callback) >> 16;
}
-void SetCallbackToStoredInData6(struct Sprite *sprite) {
- u32 callback = (u16)sprite->data6 | (sprite->data7 << 16);
+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->data3) {
- sprite->pos2.x = Sin(sprite->data0, sprite->data1);
- sprite->pos2.y = Cos(sprite->data0, sprite->data1);
- sprite->data0 += sprite->data2;
- if (sprite->data0 >= 0x100) {
- sprite->data0 -= 0x100;
- } else if (sprite->data0 < 0) {
- sprite->data0 += 0x100;
+ 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) {
+ sprite->data[0] -= 0x100;
+ } else if (sprite->data[0] < 0) {
+ sprite->data[0] += 0x100;
}
- sprite->data3--;
+ sprite->data[3]--;
} else {
- SetCallbackToStoredInData6(sprite);
+ SetCallbackToStoredInData(sprite);
}
}
void sub_8078174(struct Sprite *sprite) {
- if (sprite->data3) {
- sprite->pos2.x = Sin(sprite->data0, (sprite->data5 >> 8) + sprite->data1);
- sprite->pos2.y = Cos(sprite->data0, (sprite->data5 >> 8) + sprite->data1);
- sprite->data0 += sprite->data2;
- sprite->data5 += sprite->data4;
- if (sprite->data0 >= 0x100) {
- sprite->data0 -= 0x100;
- } else if (sprite->data0 < 0) {
- sprite->data0 += 0x100;
+ 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) {
+ sprite->data[0] -= 0x100;
+ } else if (sprite->data[0] < 0) {
+ sprite->data[0] += 0x100;
}
- sprite->data3--;
+ sprite->data[3]--;
} else {
- SetCallbackToStoredInData6(sprite);
+ SetCallbackToStoredInData(sprite);
}
}
void unref_sub_80781F0(struct Sprite *sprite) {
- if (sprite->data3) {
- sprite->pos2.x = Sin(sprite->data0, sprite->data1);
- sprite->pos2.y = Cos(sprite->data4, sprite->data1);
- sprite->data0 += sprite->data2;
- sprite->data4 += sprite->data5;
- if (sprite->data0 >= 0x100) {
- sprite->data0 -= 0x100;
- } else if (sprite->data0 < 0) {
- sprite->data0 += 0x100;
+ 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) {
+ sprite->data[0] -= 0x100;
+ } else if (sprite->data[0] < 0) {
+ sprite->data[0] += 0x100;
}
- if (sprite->data4 >= 0x100) {
- sprite->data4 -= 0x100;
- } else if (sprite->data4 < 0) {
- sprite->data4 += 0x100;
+ if (sprite->data[4] >= 0x100) {
+ sprite->data[4] -= 0x100;
+ } else if (sprite->data[4] < 0) {
+ sprite->data[4] += 0x100;
}
- sprite->data3--;
+ sprite->data[3]--;
} else {
- SetCallbackToStoredInData6(sprite);
+ SetCallbackToStoredInData(sprite);
}
}
void sub_8078278(struct Sprite *sprite) {
- if (sprite->data3) {
- sprite->pos2.x = Sin(sprite->data0, sprite->data1);
- sprite->pos2.y = Cos(sprite->data0, sprite->data4);
- sprite->data0 += sprite->data2;
- if (sprite->data0 >= 0x100) {
- sprite->data0 -= 0x100;
- } else if (sprite->data0 < 0) {
- sprite->data0 += 0x100;
+ 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) {
+ sprite->data[0] -= 0x100;
+ } else if (sprite->data[0] < 0) {
+ sprite->data[0] += 0x100;
}
- sprite->data3--;
+ sprite->data[3]--;
} else {
- SetCallbackToStoredInData6(sprite);
+ SetCallbackToStoredInData(sprite);
}
}
void sub_80782D8(struct Sprite *sprite) {
- if (sprite->data0 > 0) {
- sprite->data0--;
+ if (sprite->data[0] > 0) {
+ sprite->data[0]--;
} else {
- SetCallbackToStoredInData6(sprite);
+ SetCallbackToStoredInData(sprite);
}
}
@@ -533,95 +519,95 @@ void sub_80782F8(struct Sprite *sprite) {
void sub_8078314(struct Sprite *sprite) {
s16 old;
int v1;
- if (sprite->data1 > sprite->data2) {
- sprite->data0 = -sprite->data0;
+ if (sprite->data[1] > sprite->data[2]) {
+ sprite->data[0] = -sprite->data[0];
}
- v1 = sprite->data2 - sprite->data1;
- old = sprite->data0;
- sprite->data0 = abs(v1 / sprite->data0);
- sprite->data2 = (sprite->data4 - sprite->data3) / sprite->data0;
- sprite->data1 = old;
+ v1 = sprite->data[2] - sprite->data[1];
+ old = sprite->data[0];
+ sprite->data[0] = abs(v1 / sprite->data[0]);
+ sprite->data[2] = (sprite->data[4] - sprite->data[3]) / sprite->data[0];
+ sprite->data[1] = old;
}
void sub_8078364(struct Sprite *sprite) {
- if (sprite->data0 > 0) {
- sprite->data0--;
- sprite->pos2.x += sprite->data1;
- sprite->pos2.y += sprite->data2;
+ if (sprite->data[0] > 0) {
+ sprite->data[0]--;
+ sprite->pos2.x += sprite->data[1];
+ sprite->pos2.y += sprite->data[2];
} else {
- SetCallbackToStoredInData6(sprite);
+ SetCallbackToStoredInData(sprite);
}
}
void sub_8078394(struct Sprite *sprite) {
- if (sprite->data0 > 0) {
- sprite->data0--;
- sprite->data3 += sprite->data1;
- sprite->data4 += sprite->data2;
- sprite->pos2.x = sprite->data3 >> 8;
- sprite->pos2.y = sprite->data4 >> 8;
+ 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 {
- SetCallbackToStoredInData6(sprite);
+ SetCallbackToStoredInData(sprite);
}
}
void sub_80783D0(struct Sprite *sprite) {
- if (sprite->data0 > 0) {
- sprite->data0--;
- sprite->data3 += sprite->data1;
- sprite->data4 += sprite->data2;
- sprite->pos2.x = sprite->data3 >> 8;
- sprite->pos2.y = sprite->data4 >> 8;
+ 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 {
- SetCallbackToStoredInData6(sprite);
+ SetCallbackToStoredInData(sprite);
}
UpdateMonIconFrame(sprite);
}
void unref_sub_8078414(struct Sprite *sprite) {
- sprite->data1 = sprite->pos1.x + sprite->pos2.x;
- sprite->data3 = sprite->pos1.y + sprite->pos2.y;
- sprite->data2 = sub_8077ABC(gBattleAnimBankTarget, 2);
- sprite->data4 = sub_8077ABC(gBattleAnimBankTarget, 3);
+ sprite->data[1] = sprite->pos1.x + sprite->pos2.x;
+ sprite->data[3] = sprite->pos1.y + sprite->pos2.y;
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2);
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3);
sprite->callback = sub_80782F8;
}
void sub_8078458(struct Sprite *sprite) {
- if (sprite->data0 > 0) {
- sprite->data0--;
- gSprites[sprite->data3].pos2.x += sprite->data1;
- gSprites[sprite->data3].pos2.y += sprite->data2;
+ 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 {
- SetCallbackToStoredInData6(sprite);
+ SetCallbackToStoredInData(sprite);
}
}
void sub_80784A8(struct Sprite *sprite) {
- if (sprite->data0 > 0) {
- sprite->data0--;
- sprite->data3 += sprite->data1;
- sprite->data4 += sprite->data2;
- gSprites[sprite->data5].pos2.x = sprite->data3 >> 8;
- gSprites[sprite->data5].pos2.y = sprite->data4 >> 8;
+ 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 {
- SetCallbackToStoredInData6(sprite);
+ SetCallbackToStoredInData(sprite);
}
}
void sub_8078504(struct Sprite *sprite) {
- if (sprite->data0 > 0) {
- sprite->data0--;
- sprite->pos2.x = sprite->data2 >> 8;
- sprite->data2 += sprite->data1;
- sprite->pos2.y = sprite->data4 >> 8;
- sprite->data4 += sprite->data3;
- if (sprite->data0 % sprite->data5 == 0) {
- if (sprite->data5) {
+ 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]) {
sprite->invisible ^= 1;
}
}
} else {
- SetCallbackToStoredInData6(sprite);
+ SetCallbackToStoredInData(sprite);
}
}
@@ -631,27 +617,27 @@ void move_anim_8074EE0(struct Sprite *sprite) {
}
void unref_sub_8078588(struct Sprite *sprite) {
- sprite->data1 = sprite->pos1.x + sprite->pos2.x;
- sprite->data3 = sprite->pos1.y + sprite->pos2.y;
- sprite->data2 = sub_8077ABC(gBattleAnimBankAttacker, 2);
- sprite->data4 = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ sprite->data[1] = sprite->pos1.x + sprite->pos2.x;
+ sprite->data[3] = sprite->pos1.y + sprite->pos2.y;
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankAttacker, 3);
sprite->callback = sub_80782F8;
}
void unref_sub_80785CC(struct Sprite *sprite) {
- ResetPaletteStructByUid(sprite->data5);
+ ResetPaletteStructByUid(sprite->data[5]);
move_anim_8074EE0(sprite);
}
void sub_80785E4(struct Sprite *sprite) {
if (sprite->affineAnimEnded) {
- SetCallbackToStoredInData6(sprite);
+ SetCallbackToStoredInData(sprite);
}
}
void sub_8078600(struct Sprite *sprite) {
if (sprite->animEnded) {
- SetCallbackToStoredInData6(sprite);
+ SetCallbackToStoredInData(sprite);
}
}
@@ -689,19 +675,19 @@ void sub_807867C(struct Sprite *sprite, s16 a2) {
}
void sub_80786EC(struct Sprite *sprite) {
- sprite->data1 = sprite->pos1.x;
- sprite->data3 = sprite->pos1.y;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[3] = sprite->pos1.y;
obj_translate_based_on_private_1_2_3_4(sprite);
- sprite->data6 = 0x8000 / sprite->data0;
- sprite->data7 = 0;
+ sprite->data[6] = 0x8000 / sprite->data[0];
+ sprite->data[7] = 0;
}
bool8 sub_8078718(struct Sprite *sprite) {
if (sub_8078B5C(sprite)) {
return TRUE;
}
- sprite->data7 += sprite->data6;
- sprite->pos2.y += Sin((u8)(sprite->data7 >> 8), sprite->data5);
+ sprite->data[7] += sprite->data[6];
+ sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]);
return FALSE;
}
@@ -752,7 +738,7 @@ u8 GetBankByPlayerAI(u8 slot) {
}
bool8 AnimBankSpriteExists(u8 slot) {
- if (IsContest()) {
+ if (NotInBattle()) {
if (gBattleAnimBankAttacker == slot) {
return TRUE;
}
@@ -782,7 +768,7 @@ bool8 IsDoubleBattle() {
}
void sub_8078914(struct Struct_sub_8078914 *unk) {
- if (IsContest()) {
+ if (NotInBattle()) {
unk->field_0 = (u8 *)0x6008000;
unk->field_4 = (u8 *)0x600f000;
unk->field_8 = 0xe;
@@ -794,7 +780,7 @@ void sub_8078914(struct Struct_sub_8078914 *unk) {
}
void sub_8078954(struct Struct_sub_8078914 *unk) {
- if (IsContest()) {
+ if (NotInBattle()) {
unk->field_0 = (u8 *)0x6008000;
unk->field_4 = (u8 *)0x600f000;
unk->field_8 = 0xe;
@@ -810,7 +796,7 @@ void sub_8078954(struct Struct_sub_8078914 *unk) {
}
u8 sub_80789BC() {
- if (IsContest()) {
+ if (NotInBattle()) {
return 1;
}
return 2;
@@ -820,7 +806,7 @@ void sub_80789D4(bool8 a1) {
if (!a1) {
BG3CNT.size = 0;
BG3CNT.overflow = 1;
- } else if (IsContest()) {
+ } else if (NotInBattle()) {
BG3CNT.size = 0;
BG3CNT.overflow = 1;
} else {
@@ -830,31 +816,31 @@ void sub_80789D4(bool8 a1) {
}
void sub_8078A34(struct Sprite *sprite) {
- sprite->data1 = sprite->pos1.x;
- sprite->data3 = sprite->pos1.y;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[3] = sprite->pos1.y;
sub_8078A5C(sprite);
sprite->callback = sub_80783D0;
sprite->callback(sprite);
}
void sub_8078A5C(struct Sprite *sprite) {
- s16 x = (sprite->data2 - sprite->data1) << 8;
- s16 y = (sprite->data4 - sprite->data3) << 8;
- sprite->data1 = x / sprite->data0;
- sprite->data2 = y / sprite->data0;
- sprite->data4 = 0;
- sprite->data3 = 0;
+ 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];
+ sprite->data[2] = y / sprite->data[0];
+ sprite->data[4] = 0;
+ sprite->data[3] = 0;
}
void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite) {
- int x = sprite->data2 - sprite->data1;
- int y = sprite->data4 - sprite->data3;
+ 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->data0;
- y2 = y2 / sprite->data0;
+ x2 = x2 / sprite->data[0];
+ y2 = y2 / sprite->data[0];
if (r8) {
x2 |= 1;
} else {
@@ -865,15 +851,15 @@ void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite) {
} else {
y2 &= ~1;
}
- sprite->data1 = x2;
- sprite->data2 = y2;
- sprite->data4 = 0;
- sprite->data3 = 0;
+ sprite->data[1] = x2;
+ sprite->data[2] = y2;
+ sprite->data[4] = 0;
+ sprite->data[3] = 0;
}
void sub_8078B34(struct Sprite *sprite) {
- sprite->data1 = sprite->pos1.x;
- sprite->data3 = sprite->pos1.y;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[3] = sprite->pos1.y;
obj_translate_based_on_private_1_2_3_4(sprite);
sprite->callback = sub_8078BB8;
sprite->callback(sprite);
@@ -881,13 +867,13 @@ void sub_8078B34(struct Sprite *sprite) {
bool8 sub_8078B5C(struct Sprite *sprite) {
u16 v1, v2, x, y;
- if (!sprite->data0) {
+ if (!sprite->data[0]) {
return TRUE;
}
- v1 = sprite->data1;
- v2 = sprite->data2;
- x = sprite->data3;
- y = sprite->data4;
+ v1 = sprite->data[1];
+ v2 = sprite->data[2];
+ x = sprite->data[3];
+ y = sprite->data[4];
x += v1;
y += v2;
if (v1 & 1) {
@@ -900,41 +886,41 @@ bool8 sub_8078B5C(struct Sprite *sprite) {
} else {
sprite->pos2.y = y >> 8;
}
- sprite->data3 = x;
- sprite->data4 = y;
- sprite->data0--;
+ sprite->data[3] = x;
+ sprite->data[4] = y;
+ sprite->data[0]--;
return FALSE;
}
void sub_8078BB8(struct Sprite *sprite) {
if (sub_8078B5C(sprite)) {
- SetCallbackToStoredInData6(sprite);
+ SetCallbackToStoredInData(sprite);
}
}
void sub_8078BD4(struct Sprite *sprite) {
- int v1 = abs(sprite->data2 - sprite->data1) << 8;
- sprite->data0 = v1 / sprite->data0;
+ 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) {
- sprite->data1 = sprite->pos1.x;
- sprite->data3 = sprite->pos1.y;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[3] = sprite->pos1.y;
sub_8078BD4(sprite);
sprite->callback = sub_8078BB8;
sprite->callback(sprite);
}
void sub_8078C28(struct Sprite *sprite) {
- int x = sprite->data2 - sprite->data1;
- int y = sprite->data4 - sprite->data3;
+ 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->data0;
- y2 /= sprite->data0;
+ x2 /= sprite->data[0];
+ y2 /= sprite->data[0];
if (x_sign) {
x2 |= 1;
} else {
@@ -945,15 +931,15 @@ void sub_8078C28(struct Sprite *sprite) {
} else {
y2 &= ~1;
}
- sprite->data1 = x2;
- sprite->data2 = y2;
- sprite->data4 = 0;
- sprite->data3 = 0;
+ sprite->data[1] = x2;
+ sprite->data[2] = y2;
+ sprite->data[4] = 0;
+ sprite->data[3] = 0;
}
void sub_8078CC0(struct Sprite *sprite) {
- sprite->data1 = sprite->pos1.x;
- sprite->data3 = sprite->pos1.y;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[3] = sprite->pos1.y;
sub_8078C28(sprite);
sprite->callback = sub_8078D44;
sprite->callback(sprite);
@@ -961,13 +947,13 @@ void sub_8078CC0(struct Sprite *sprite) {
bool8 sub_8078CE8(struct Sprite *sprite) {
u16 v1, v2, x, y;
- if (!sprite->data0) {
+ if (!sprite->data[0]) {
return TRUE;
}
- v1 = sprite->data1;
- v2 = sprite->data2;
- x = sprite->data3;
- y = sprite->data4;
+ v1 = sprite->data[1];
+ v2 = sprite->data[2];
+ x = sprite->data[3];
+ y = sprite->data[4];
x += v1;
y += v2;
if (v1 & 1) {
@@ -980,27 +966,27 @@ bool8 sub_8078CE8(struct Sprite *sprite) {
} else {
sprite->pos2.y = y >> 4;
}
- sprite->data3 = x;
- sprite->data4 = y;
- sprite->data0--;
+ sprite->data[3] = x;
+ sprite->data[4] = y;
+ sprite->data[0]--;
return FALSE;
}
void sub_8078D44(struct Sprite *sprite) {
if (sub_8078CE8(sprite)) {
- SetCallbackToStoredInData6(sprite);
+ SetCallbackToStoredInData(sprite);
}
}
void sub_8078D60(struct Sprite *sprite) {
- int v1 = abs(sprite->data2 - sprite->data1) << 4;
- sprite->data0 = v1 / sprite->data0;
+ 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) {
- sprite->data1 = sprite->pos1.x;
- sprite->data3 = sprite->pos1.y;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[3] = sprite->pos1.y;
sub_8078D60(sprite);
sprite->callback = sub_8078D44;
sprite->callback(sprite);
@@ -1025,8 +1011,8 @@ void obj_id_set_rotscale(u8 sprite, s16 xScale, s16 yScale, u16 rotation) {
}
bool8 sub_8078E38() {
- if (IsContest()) {
- if (gSprites[GetAnimBankSpriteId(0)].data2 == 0xc9 /* XXX SPECIES_UNOWN? */) {
+ if (NotInBattle()) {
+ if (gSprites[GetAnimBankSpriteId(0)].data[2] == 0xc9 /* XXX SPECIES_UNOWN? */) {
return FALSE;
}
return TRUE;
@@ -1035,16 +1021,14 @@ bool8 sub_8078E38() {
}
void sub_8078E70(u8 sprite, u8 a2) {
- struct Struct_2017810 *unk;
- u8 r7 = gSprites[sprite].data0;
- if (IsContest() || IsAnimBankSpriteVisible(r7)) {
+ u8 r7 = gSprites[sprite].data[0];
+ if (NotInBattle() || IsAnimBankSpriteVisible(r7)) {
gSprites[sprite].invisible = FALSE;
}
gSprites[sprite].oam.objMode = a2;
gSprites[sprite].affineAnimPaused = TRUE;
- if (!IsContest() && !gSprites[sprite].oam.affineMode) {
- unk = &unk_2017810[r7];
- gSprites[sprite].oam.matrixNum = unk->field_6;
+ if (!NotInBattle() && !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);
@@ -1135,7 +1119,7 @@ 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 (!NotInBattle()) {
var = 0xe;
} else {
var = 1 << sub_80789BC();
@@ -1162,14 +1146,14 @@ u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7) {
}
}
if (a6) {
- if (!IsContest()) {
+ if (!NotInBattle()) {
var |= 0x100;
} else {
var |= 0x4000;
}
}
if (a7) {
- if (!IsContest()) {
+ if (!NotInBattle()) {
var |= 0x200;
}
}
@@ -1179,7 +1163,7 @@ u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7) {
u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4) {
u32 var = 0;
u32 shift;
- if (IsContest()) {
+ if (NotInBattle()) {
if (a1) {
var |= 1 << 18;
return var;
@@ -1222,7 +1206,7 @@ u8 unref_sub_80793B0(u8 a1) {
void sub_80793C4(struct Sprite *sprite) {
bool8 var;
- if (!sprite->data0) {
+ if (!sprite->data[0]) {
if (!gBattleAnimArgs[3]) {
var = TRUE;
} else {
@@ -1233,7 +1217,7 @@ void sub_80793C4(struct Sprite *sprite) {
} else {
sub_8078764(sprite, var);
}
- sprite->data0++;
+ sprite->data[0]++;
} else if (sprite->animEnded || sprite->affineAnimEnded) {
move_anim_8074EE0(sprite);
@@ -1257,11 +1241,11 @@ void sub_807941C(struct Sprite *sprite) {
if (GetBankSide(gBattleAnimBankAttacker)) {
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
- sprite->data0 = gBattleAnimArgs[4];
- sprite->data2 = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[2];
- sprite->data4 = sub_8077ABC(gBattleAnimBankTarget, v2) + gBattleAnimArgs[3];
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[2];
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, v2) + gBattleAnimArgs[3];
sprite->callback = sub_8078B34;
- StoreSpriteCallbackInData6(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
}
void sub_80794A8(struct Sprite *sprite) {
@@ -1269,10 +1253,10 @@ void sub_80794A8(struct Sprite *sprite) {
if (GetBankSide(gBattleAnimBankAttacker)) {
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
- sprite->data0 = gBattleAnimArgs[4];
- sprite->data2 = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[2];
- sprite->data4 = sub_8077ABC(gBattleAnimBankTarget, 3) + gBattleAnimArgs[3];
- sprite->data5 = gBattleAnimArgs[5];
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[2];
+ sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3) + gBattleAnimArgs[3];
+ sprite->data[5] = gBattleAnimArgs[5];
sub_80786EC(sprite);
sprite->callback = sub_8079518;
}
@@ -1303,11 +1287,11 @@ void sub_8079534(struct Sprite *sprite) {
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
sub_8078764(sprite, r4);
- sprite->data0 = gBattleAnimArgs[4];
- sprite->data2 = sub_8077ABC(slot, 2) + gBattleAnimArgs[2];
- sprite->data4 = sub_8077ABC(slot, r7) + gBattleAnimArgs[3];
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = sub_8077ABC(slot, 2) + gBattleAnimArgs[2];
+ sprite->data[4] = sub_8077ABC(slot, r7) + gBattleAnimArgs[3];
sprite->callback = sub_8078B34;
- StoreSpriteCallbackInData6(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
}
s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8 a1) {
@@ -1438,7 +1422,7 @@ void sub_80798AC(u8 task) {
sub_80797EC(&gTasks[task]);
}
-void sub_80798F4(struct Task *task, u8 a2, 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;
@@ -1535,17 +1519,17 @@ void sub_8079AB8(u8 sprite, u8 sprite2) {
u16 sub_8079B10(u8 sprite) {
struct TransformStatus *transform;
- u8 slot = gSprites[sprite].data0;
+ 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 = unk_2019348.field_0;
+ if (NotInBattle()) {
+ species = ewram19348.unk0;
return gMonBackPicCoords[species].y_offset;
} else {
if (!GetBankSide(i)) {
- transform = &gTransformStatuses[slot];
+ transform = &eTransformStatuses[slot];
if (!transform->species) {
species = GetMonData(&gPlayerParty[gBattleMonPartyPositions[i]], MON_DATA_SPECIES);
} else {
@@ -1553,7 +1537,7 @@ u16 sub_8079B10(u8 sprite) {
}
return gMonBackPicCoords[species].y_offset;
} else {
- transform = &gTransformStatuses[slot];
+ transform = &eTransformStatuses[slot];
if (!transform->species) {
species = GetMonData(&gEnemyParty[gBattleMonPartyPositions[i]], MON_DATA_SPECIES);
} else {
@@ -1567,7 +1551,7 @@ u16 sub_8079B10(u8 sprite) {
return 0x40;
}
-void sub_8079BF4(s16 *bottom, s16 *top, void *ptr) {
+void sub_8079BF4(s16 *bottom, s16 *top, const void *ptr) {
*bottom = ((intptr_t) ptr) & 0xffff;
*top = (((intptr_t) ptr) >> 16) & 0xffff;
}
@@ -1653,7 +1637,7 @@ void sub_8079E24() {
u8 sub_8079E90(u8 slot) {
u8 status;
u8 ret;
- if (IsContest()) {
+ if (NotInBattle()) {
if (slot == 2) {
return 30;
} else {
@@ -1676,7 +1660,7 @@ u8 sub_8079E90(u8 slot) {
u8 sub_8079ED4(u8 slot) {
u8 status = GetBankIdentity(slot);
- if (IsContest()) {
+ if (NotInBattle()) {
return 2;
}
if (status == 0 || status == 3) {
@@ -1688,7 +1672,7 @@ u8 sub_8079ED4(u8 slot) {
u8 GetBankIdentity_permutated(u8 slot) {
u8 status;
- if (!IsContest()) {
+ if (!NotInBattle()) {
status = GetBankIdentity(slot);
if (status == 0 || status == 3) {
return 2;
@@ -1744,7 +1728,7 @@ u8 sub_8079F44(u16 species, u8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a7,
} else {
sprite = CreateSprite(&gSpriteTemplate_837F5B0[a3], a4, a5 + gMonBackPicCoords[species].y_offset, a6);
}
- if (IsContest()) {
+ if (NotInBattle()) {
gSprites[sprite].affineAnims = &gSpriteAffineAnimTable_81E7C18;
StartSpriteAffineAnim(&gSprites[sprite], 0);
}
@@ -1763,13 +1747,13 @@ int sub_807A100(u8 slot, u8 a2) {
int ret;
const struct MonCoords *coords;
struct TransformStatus *transform;
- if (IsContest()) {
- if (unk_2019348.field_4 & 1) {
- species = unk_2019348.field_2;
- personality = unk_2019348.field_10;
+ if (NotInBattle()) {
+ if (ewram19348.unk4 & 1) {
+ species = ewram19348.unk2;
+ personality = ewram19348.unk10;
} else {
- species = unk_2019348.field_0;
- personality = unk_2019348.field_8;
+ species = ewram19348.unk0;
+ personality = ewram19348.unk8;
}
if (species == SPECIES_UNOWN) {
letter = GET_UNOWN_LETTER(personality);
@@ -1788,7 +1772,7 @@ int sub_807A100(u8 slot, u8 a2) {
}
} else {
if (!GetBankSide(slot)) {
- transform = &gTransformStatuses[slot];
+ transform = &eTransformStatuses[slot];
if (!transform->species) {
species = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
personality = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_PERSONALITY);
@@ -1810,7 +1794,7 @@ int sub_807A100(u8 slot, u8 a2) {
coords = &gMonBackPicCoords[species];
}
} else {
- transform = &gTransformStatuses[slot];
+ transform = &eTransformStatuses[slot];
if (!transform->species) {
species = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
personality = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_PERSONALITY);
@@ -1870,7 +1854,7 @@ void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4) {
}
v3 = sub_8077ABC(slot, v1);
v4 = sub_8077ABC(slot, v2);
- if (IsDoubleBattle() && !IsContest()) {
+ if (IsDoubleBattle() && !NotInBattle()) {
v5 = sub_8077ABC(slot ^ 2, v1);
v6 = sub_8077ABC(slot ^ 2, v2);
} else {
@@ -1902,11 +1886,11 @@ void sub_807A544(struct Sprite *sprite) {
sprite->pos1.x += gBattleAnimArgs[0];
}
sprite->pos1.y += gBattleAnimArgs[1];
- sprite->data0 = gBattleAnimArgs[2];
- sprite->data1 = gBattleAnimArgs[3];
- sprite->data3 = gBattleAnimArgs[4];
- sprite->data5 = gBattleAnimArgs[5];
- StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[1] = gBattleAnimArgs[3];
+ sprite->data[3] = gBattleAnimArgs[4];
+ sprite->data[5] = gBattleAnimArgs[5];
+ StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
sprite->callback = sub_8078504;
}
@@ -1918,12 +1902,12 @@ void sub_807A5C4(struct Sprite *sprite) {
sprite->pos1.x += gBattleAnimArgs[0];
}
sprite->pos1.y += gBattleAnimArgs[1];
- sprite->data0 = gBattleAnimArgs[2];
- sprite->data1 = gBattleAnimArgs[3];
- sprite->data3 = gBattleAnimArgs[4];
- sprite->data5 = gBattleAnimArgs[5];
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[1] = gBattleAnimArgs[3];
+ sprite->data[3] = gBattleAnimArgs[4];
+ sprite->data[5] = gBattleAnimArgs[5];
StartSpriteAnim(sprite, gBattleAnimArgs[6]);
- StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
+ StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
sprite->callback = sub_8078504;
}
@@ -1936,7 +1920,7 @@ void sub_807A63C(struct Sprite *sprite) {
}
sprite->pos1.y += gBattleAnimArgs[1];
sprite->callback = sub_8078600;
- StoreSpriteCallbackInData6(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
}
void sub_807A69C(u8 taskId) {
@@ -1997,9 +1981,9 @@ void sub_807A850(struct Task *task, u8 taskId) {
if (sprite >= 0) {
gSprites[sprite].oam.priority = task->data[6];
gSprites[sprite].oam.paletteNum = task->data[4];
- gSprites[sprite].data0 = 8;
- gSprites[sprite].data1 = taskId;
- gSprites[sprite].data2 = sprite;
+ gSprites[sprite].data[0] = 8;
+ gSprites[sprite].data[1] = taskId;
+ gSprites[sprite].data[2] = sprite;
gSprites[sprite].pos2.x = gSprites[task->data[0]].pos2.x;
gSprites[sprite].callback = sub_807A8D4;
task->data[5]++;
@@ -2007,8 +1991,8 @@ void sub_807A850(struct Task *task, u8 taskId) {
}
void sub_807A8D4(struct Sprite *sprite) {
- if (--sprite->data0 == 0) {
- gTasks[sprite->data1].data[5]--;
+ if (--sprite->data[0] == 0) {
+ gTasks[sprite->data[1]].data[5]--;
obj_delete_but_dont_free_vram(sprite);
}
}
@@ -2017,21 +2001,21 @@ void sub_807A908(struct Sprite *sprite) {
sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2);
sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3);
if (!GetBankSide(gBattleAnimBankAttacker)) {
- sprite->data0 = 5;
+ sprite->data[0] = 5;
} else {
- sprite->data0 = -10;
+ sprite->data[0] = -10;
}
- sprite->data1 = -40;
+ sprite->data[1] = -40;
sprite->callback = sub_807A960;
}
void sub_807A960(struct Sprite *sprite) {
- sprite->data2 += sprite->data0;
- sprite->data3 += sprite->data1;
- sprite->pos2.x = sprite->data2 / 10;
- sprite->pos2.y = sprite->data3 / 10;
- if (sprite->data1 < -20) {
- sprite->data1++;
+ 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) {
+ sprite->data[1]++;
}
if ((sprite->pos1.y + sprite->pos2.y) < -32) {
move_anim_8072740(sprite);
@@ -2040,9 +2024,9 @@ void sub_807A960(struct Sprite *sprite) {
void sub_807A9BC(struct Sprite *sprite) {
int x;
- sprite->data0 = gBattleAnimArgs[2];
- sprite->data2 = sprite->pos1.x + gBattleAnimArgs[4];
- sprite->data4 = sprite->pos1.y + gBattleAnimArgs[5];
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[4];
+ sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[5];
if (!GetBankSide(gBattleAnimBankTarget)) {
x = (u16)gBattleAnimArgs[4] + 30;
sprite->pos1.x += x;
@@ -2053,5 +2037,5 @@ void sub_807A9BC(struct Sprite *sprite) {
sprite->pos1.y = gBattleAnimArgs[5] - 80;
}
sprite->callback = sub_8078B34;
- StoreSpriteCallbackInData6(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData(sprite, move_anim_8072740);
}
diff --git a/src/scene/berry_blender.c b/src/scene/berry_blender.c
index 7ffcc5185..d147d11ce 100644
--- a/src/scene/berry_blender.c
+++ b/src/scene/berry_blender.c
@@ -7,19 +7,20 @@
#include "menu.h"
#include "strings2.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "berry.h"
#include "string_util.h"
#include "link.h"
#include "task.h"
#include "overworld.h"
#include "item.h"
-#include "items.h"
-#include "rng.h"
+#include "constants/items.h"
+#include "random.h"
#include "save.h"
#include "menu_cursor.h"
#include "trig.h"
#include "pokeblock.h"
+#include "ewram.h"
//needed to match Blender_ControlHitPitch
struct MusicPlayerInfo
@@ -207,8 +208,7 @@ extern void de_sub_8073110();
extern struct MusicPlayerInfo gMPlay_SE2;
extern struct MusicPlayerInfo gMPlay_BGM;
-extern u8 ewram[];
-extern u16 gScriptItemId;
+extern u16 gSpecialVar_ItemId;
extern u8 gUnknown_020297ED;
extern u8 byte_3002A68;
@@ -828,7 +828,7 @@ static bool8 sub_804E2EC(void)
switch (gBerryBlenderData->field_1)
{
case 0:
- LZDecompressWram(gUnknown_08E6C100, &ewram[0x10000]);
+ LZDecompressWram(gUnknown_08E6C100, ewram10000);
gBerryBlenderData->field_1++;
break;
case 1:
@@ -843,7 +843,7 @@ static bool8 sub_804E2EC(void)
break;
case 2:
{
- void* offsetRead = &ewram[0x10000];
+ void* offsetRead = ewram10000;
void* offsetWrite = (void*)(VRAM);
u32 size = 0x2000;
while (TRUE)
@@ -862,16 +862,16 @@ static bool8 sub_804E2EC(void)
}
break;
case 3:
- LZDecompressWram(gUnknown_08E6C920, &ewram[0x10000]);
+ LZDecompressWram(gUnknown_08E6C920, ewram10000);
gBerryBlenderData->field_1++;
break;
case 4:
- LZDecompressWram(gUnknown_08E6D354, &ewram[0x13000]);
+ LZDecompressWram(gUnknown_08E6D354, ewram13000);
gBerryBlenderData->field_1++;
break;
case 5:
{
- void* offsetRead = &ewram[0x10000];
+ void* offsetRead = ewram10000;
void* offsetWrite = (void*)(VRAM + 0xE000);
DmaCopy16(3, offsetRead, offsetWrite, 0x1000);
@@ -880,7 +880,7 @@ static bool8 sub_804E2EC(void)
break;
case 6:
{
- void* offsetRead = &ewram[0x11000];
+ void* offsetRead = ewram11000;
void* offsetWrite = (void*)(VRAM + 0xF000);
DmaCopy16(3, offsetRead, offsetWrite, 0x1000);
@@ -890,7 +890,7 @@ static bool8 sub_804E2EC(void)
case 7:
{
u16 i;
- u16* palStore = (u16*)(&ewram[0x13000]);
+ u16* palStore = (u16*)(ewram13000);
void* offsetRead;
void* offsetWrite;
@@ -898,7 +898,7 @@ static bool8 sub_804E2EC(void)
{
*(palStore + i) |= 0x100;
}
- offsetRead = &ewram[0x13000];
+ offsetRead = ewram13000;
offsetWrite = (void*)(VRAM + 0x6000);
DmaCopy16(3, offsetRead, offsetWrite, 0x500);
LoadPalette(sBlenderOuterPal, 0x80, 0x20);
@@ -937,7 +937,7 @@ void sub_804E538(void)
{
u8* field6F; //this temp value is needed to match
- gBerryBlenderData = (struct BerryBlenderData*)(&ewram[0x18000]);
+ gBerryBlenderData = eBerryBlenderData;
field6F = &gBerryBlenderData->field_6F;
gBerryBlenderData->field_0 = 0;
@@ -1019,34 +1019,34 @@ static void sub_804E56C(void)
void sub_804E738(struct Sprite* sprite)
{
- sprite->data1 += sprite->data6;
- sprite->data2 -= sprite->data4;
- sprite->data2 += sprite->data7;
- sprite->data0 += sprite->data7;
- sprite->data4--;
+ sprite->data[1] += sprite->data[6];
+ sprite->data[2] -= sprite->data[4];
+ sprite->data[2] += sprite->data[7];
+ sprite->data[0] += sprite->data[7];
+ sprite->data[4]--;
- if (sprite->data0 < sprite->data2)
+ if (sprite->data[0] < sprite->data[2])
{
- sprite->data3 = sprite->data4 = sprite->data3 - 1;
- if (++sprite->data5 > 3)
+ sprite->data[3] = sprite->data[4] = sprite->data[3] - 1;
+ if (++sprite->data[5] > 3)
DestroySprite(sprite);
else
PlaySE(SE_TB_KARA);
}
- sprite->pos1.x = sprite->data1;
- sprite->pos1.y = sprite->data2;
+ sprite->pos1.x = sprite->data[1];
+ sprite->pos1.y = sprite->data[2];
}
void sub_804E794(struct Sprite* sprite, s16 a2, s16 a3, s16 a4, s16 a5, s16 a6)
{
- sprite->data0 = a3;
- sprite->data1 = a2;
- sprite->data2 = a3;
- sprite->data3 = a4;
- sprite->data4 = 10;
- sprite->data5 = 0;
- sprite->data6 = a5;
- sprite->data7 = a6;
+ sprite->data[0] = a3;
+ sprite->data[1] = a2;
+ sprite->data[2] = a3;
+ sprite->data[3] = a4;
+ sprite->data[4] = 10;
+ sprite->data[5] = 0;
+ sprite->data[6] = a5;
+ sprite->data[7] = a6;
sprite->callback = sub_804E738;
}
@@ -1111,7 +1111,7 @@ void sub_804E990(void)
s32 i;
REG_DISPCNT = 0;
- gBerryBlenderData = (struct BerryBlenderData*)(&ewram[0x18000]);
+ gBerryBlenderData = eBerryBlenderData;
gBerryBlenderData->field_0 = 0;
gBerryBlenderData->field_134 = 0;
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
@@ -1192,7 +1192,7 @@ static void sub_804E9F8(void)
case 8:
gBerryBlenderData->field_0++;
gBerryBlenderData->field_13C = 0;
- Blender_CopyBerryData(&gBerryBlenderData->blendedBerries[0], gScriptItemId);
+ Blender_CopyBerryData(&gBerryBlenderData->blendedBerries[0], gSpecialVar_ItemId);
memcpy(gBlockSendBuffer, &gBerryBlenderData->blendedBerries[0], sizeof(struct BlenderBerry));
sub_80084A4();
gBerryBlenderData->framesToWait = 0;
@@ -1438,9 +1438,9 @@ static void sub_804F378(void)
{
case 0:
sub_804F0F4();
- Blender_SetBankBerryData(0, gScriptItemId);
- Blender_CopyBerryData(&gBerryBlenderData->blendedBerries[0], gScriptItemId);
- sub_804F1BC(gScriptItemId, gBerryBlenderData->playersNo, &gBerryBlenderData->blendedBerries[0]);
+ Blender_SetBankBerryData(0, gSpecialVar_ItemId);
+ Blender_CopyBerryData(&gBerryBlenderData->blendedBerries[0], gSpecialVar_ItemId);
+ sub_804F1BC(gSpecialVar_ItemId, gBerryBlenderData->playersNo, &gBerryBlenderData->blendedBerries[0]);
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
gBerryBlenderData->field_70[i] = 0;
@@ -3012,10 +3012,10 @@ static void sub_80514F0(void)
void sub_8051524(struct Sprite* sprite)
{
- sprite->data2 += sprite->data0;
- sprite->data3 += sprite->data1;
- sprite->pos2.x = sprite->data2 / 8;
- sprite->pos2.y = sprite->data3 / 8;
+ sprite->data[2] += sprite->data[0];
+ sprite->data[3] += sprite->data[1];
+ sprite->pos2.x = sprite->data[2] / 8;
+ sprite->pos2.y = sprite->data[3] / 8;
if (sprite->animEnded)
DestroySprite(sprite);
}
@@ -3037,8 +3037,8 @@ static void sub_805156C(void)
y = gSineTable[(rand & 0xFF)] / 4;
spriteID = CreateSprite(&sSpriteTemplate_82164FC, x + 120, y + 80, 1);
- gSprites[spriteID].data0 = 16 - (Random() % 32);
- gSprites[spriteID].data1 = 16 - (Random() % 32);
+ gSprites[spriteID].data[0] = 16 - (Random() % 32);
+ gSprites[spriteID].data[1] = 16 - (Random() % 32);
gSprites[spriteID].callback = sub_8051524;
}
@@ -3046,16 +3046,16 @@ static void sub_805156C(void)
static void sub_8051650(struct Sprite* sprite)
{
- sprite->data0++;
- sprite->pos2.y = -(sprite->data0 / 3);
+ sprite->data[0]++;
+ sprite->pos2.y = -(sprite->data[0] / 3);
if (sprite->animEnded)
DestroySprite(sprite);
}
void sub_8051684(struct Sprite* sprite)
{
- sprite->data0++;
- sprite->pos2.y = -(sprite->data0 * 2);
+ sprite->data[0]++;
+ sprite->pos2.y = -(sprite->data[0] * 2);
if (sprite->pos2.y < -12)
sprite->pos2.y = -12;
if (sprite->animEnded)
@@ -3110,74 +3110,74 @@ void unref_sub_80516F8(u8 taskID)
static void sub_805181C(struct Sprite* sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
- sprite->data1 += 8;
- if (sprite->data1 > 88)
+ sprite->data[1] += 8;
+ if (sprite->data[1] > 88)
{
- sprite->data1 = 88;
- sprite->data0++;
+ sprite->data[1] = 88;
+ sprite->data[0]++;
PlaySE(SE_KON);
}
break;
case 1:
- sprite->data2 += 1;
- if (sprite->data2 > 20)
+ sprite->data[2] += 1;
+ if (sprite->data[2] > 20)
{
- sprite->data0++;
- sprite->data2 = 0;
+ sprite->data[0]++;
+ sprite->data[2] = 0;
}
break;
case 2:
- sprite->data1 += 4;
- if (sprite->data1 > 176)
+ sprite->data[1] += 4;
+ if (sprite->data[1] > 176)
{
- if (++sprite->data3 == 3)
+ if (++sprite->data[3] == 3)
{
DestroySprite(sprite);
CreateSprite(&sSpriteTemplate_821657C, 120, -20, 2);
}
else
{
- sprite->data0 = 0;
- sprite->data1 = -16;
- StartSpriteAnim(sprite, sprite->data3);
+ sprite->data[0] = 0;
+ sprite->data[1] = -16;
+ StartSpriteAnim(sprite, sprite->data[3]);
}
}
break;
}
- sprite->pos2.y = sprite->data1;
+ sprite->pos2.y = sprite->data[1];
}
static void sub_80518CC(struct Sprite* sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
- sprite->data1 += 8;
- if (sprite->data1 > 92)
+ sprite->data[1] += 8;
+ if (sprite->data[1] > 92)
{
- sprite->data1 = 92;
- sprite->data0++;
+ sprite->data[1] = 92;
+ sprite->data[0]++;
PlaySE(SE_PIN);
}
break;
case 1:
- sprite->data2 += 1;
- if (sprite->data2 > 20)
- sprite->data0++;
+ sprite->data[2] += 1;
+ if (sprite->data[2] > 20)
+ sprite->data[0]++;
break;
case 2:
- sprite->data1 += 4;
- if (sprite->data1 > 176)
+ sprite->data[1] += 4;
+ if (sprite->data[1] > 176)
{
gBerryBlenderData->field_0++;
DestroySprite(sprite);
}
break;
}
- sprite->pos2.y = sprite->data1;
+ sprite->pos2.y = sprite->data[1];
}
static void sub_805194C(u16 a0, u16 a1)
@@ -3431,7 +3431,7 @@ static bool8 Blender_PrintBlendingResults(void)
Blender_PrintMadePokeblockString(&pokeblock, gBerryBlenderData->stringVar);
CreateTask(sub_8052BD0, 6);
MenuPrintMessage(gBerryBlenderData->stringVar, 1, 15);
- RemoveBagItem(gScriptItemId, 1);
+ RemoveBagItem(gSpecialVar_ItemId, 1);
sub_810CA34(&pokeblock);
gBerryBlenderData->field_0++;
break;
@@ -3710,7 +3710,7 @@ static void sub_80527BC(void)
gUnknown_020297E0 = 0;
gUnknown_020297DC = 2;
for (i = 0; i < 200; i++)
- ewram[i] = 0;
+ gSharedMem[i] = 0;
gUnknown_020297E8 = 0;
}
for (i = 0; i < 100; i++)
@@ -3719,7 +3719,7 @@ static void sub_80527BC(void)
gUnknown_020297E0++;
else
{
- u16* ewramPtr = ((u16*)(ewram));
+ u16* ewramPtr = ((u16*)(gSharedMem));
ewramPtr[gUnknown_020297E4] = gUnknown_020297E0;
gUnknown_020297E4++;
gUnknown_020297E0 = 0;
diff --git a/src/scene/cable_car.c b/src/scene/cable_car.c
index 9caa2234f..d65022ae8 100644
--- a/src/scene/cable_car.c
+++ b/src/scene/cable_car.c
@@ -1,21 +1,22 @@
// Includes
#include "global.h"
+#include "ewram.h"
#include "overworld.h"
#include "palette.h"
-#include "rng.h"
+#include "random.h"
#include "main.h"
#include "script.h"
#include "task.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "decompress.h"
#include "field_weather.h"
#include "field_map_obj.h"
#include "unknown_task.h"
#include "event_data.h"
#include "cable_car_util.h"
-#include "map_object_constants.h"
+#include "constants/map_objects.h"
// Static type declarations
@@ -28,7 +29,7 @@
f; \
})
-struct Unk_2017000 {
+struct CableCarEwramStruct1 {
u8 unk_0000;
u8 unk_0001;
u8 unk_0002;
@@ -48,19 +49,16 @@ struct Unk_2017000 {
u16 unk_08fc[0x400];
}; // size 0x10FC
-struct Unk_2019000 {
+struct CableCarEwramStruct2 {
/* 0x000 */ u16 mtChimneyTilemap[0xb4];
/* 0x168 */ u16 treeTilemap[0x1e0];
/* 0x528 */ u16 mountainTilemap[0x258];
/* 0x9d8 */ u16 pylonStemTilemap[0x628]; // size not actually known
};
-#define ewram_17000 (*(struct Unk_2017000 *)(ewram + 0x17000))
-#define ewram_19000 (*(struct Unk_2019000 *)(ewram + 0x19000))
-
// Static RAM declarations
-EWRAM_DATA struct Unk_2017000 *gUnknown_02039274 = NULL;
+EWRAM_DATA struct CableCarEwramStruct1 *gUnknown_02039274 = NULL;
EWRAM_DATA u8 gUnknown_02039278 = 0;
EWRAM_DATA u8 gUnknown_02039279 = 0;
EWRAM_DATA u8 gUnknown_0203927A = 0;
@@ -206,8 +204,8 @@ void sub_8123244(void)
DmaFill16Large(3, 0, VRAM, VRAM_SIZE, 0x1000);
DmaFill32Defvars(3, 0, OAM, OAM_SIZE);
DmaFill16Defvars(3, 0, PLTT, PLTT_SIZE);
- gUnknown_02039274 = &ewram_17000;
- DmaFill16Large(3, 0, &ewram_17000, 0x10FC, 0x1000);
+ gUnknown_02039274 = eCableCar1;
+ DmaFill16Large(3, 0, eCableCar1, 0x10FC, 0x1000);
gMain.state ++;
break;
case 1:
@@ -215,10 +213,10 @@ void sub_8123244(void)
ResetTasks();
FreeAllSpritePalettes();
ResetPaletteFade();
- sub_807C828();
+ StartWeather();
for (i = 0; i < 20; i ++)
{
- gUnknown_08396FC4->unk_0f0[i] = NULL;
+ gWeatherPtr->sprites.s2.ashSprites[i] = NULL;
}
InitMapMusic();
ResetMapMusic();
@@ -231,10 +229,10 @@ void sub_8123244(void)
LoadCompressedObjectPic(&gUnknown_08401CF8[i]);
}
LoadSpritePalettes(gUnknown_08401D18);
- LZDecompressWram(gCableCarMtChimneyTilemap, ewram_19000.mtChimneyTilemap);
- LZDecompressWram(gCableCarTreeTilemap, ewram_19000.treeTilemap);
- LZDecompressWram(gCableCarMountainTilemap, ewram_19000.mountainTilemap);
- LZDecompressWram(gCableCarPylonStemTilemap, ewram_19000.pylonStemTilemap);
+ 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 ++;
@@ -249,35 +247,35 @@ void sub_8123244(void)
{
gMain.state ++;
}
- else if (gUnknown_08396FC4->unk_0f0[0] != NULL)
+ else if (gWeatherPtr->sprites.s2.ashSprites[0] != NULL)
{
for (i = 0; i < 20; i ++)
{
- if (gUnknown_08396FC4->unk_0f0[i] != NULL)
+ if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL)
{
- gUnknown_08396FC4->unk_0f0[i]->oam.priority = 0;
+ gWeatherPtr->sprites.s2.ashSprites[i]->oam.priority = 0;
}
}
gMain.state ++;
}
break;
case 5:
- sub_8124F08((u16 *)BG_SCREEN_ADDR(29), ewram_19000.treeTilemap, 0, 17, 32, 15);
- sub_8124F08((u16 *)BG_SCREEN_ADDR(30), ewram_19000.mountainTilemap, 0, 0, 30, 20);
+ sub_8124F08((u16 *)BG_SCREEN_ADDR(29), eCableCar2->treeTilemap, 0, 17, 32, 15);
+ sub_8124F08((u16 *)BG_SCREEN_ADDR(30), eCableCar2->mountainTilemap, 0, 0, 30, 20);
sub_8124F08(gUnknown_02039274->unk_08fc, gCableCarPylonHookTilemapEntries, 0, 0, 5, 2);
- sub_8124F08(gUnknown_02039274->unk_08fc, ewram_19000.pylonStemTilemap, 0, 2, 2, 20);
+ sub_8124F08(gUnknown_02039274->unk_08fc, eCableCar2->pylonStemTilemap, 0, 2, 2, 20);
gMain.state ++;
break;
case 6:
sub_81248AC(gSpecialVar_0x8004);
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x48, 0, 14, 12, 3);
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x6C, 12, 17, 12, 3);
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x90, 24, 20, 12, 3);
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x00, 0, 17, 12, 3);
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x24, 0, 20, 12, 3);
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x00, 12, 20, 12, 3);
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x24, 12, 23, 12, 3);
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x00, 24, 23, 12, 3);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x48, 0, 14, 12, 3);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x6C, 12, 17, 12, 3);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x90, 24, 20, 12, 3);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x00, 0, 17, 12, 3);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x24, 0, 20, 12, 3);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x00, 12, 20, 12, 3);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x24, 12, 23, 12, 3);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x00, 24, 23, 12, 3);
gMain.state ++;
break;
case 7:
@@ -325,12 +323,12 @@ void sub_8123740(void)
sub_807C9B4(0);
for (; i < 20; i ++)
{
- gUnknown_08396FC4->unk_0f0[i] = NULL;
+ gWeatherPtr->sprites.s2.ashSprites[i] = NULL;
}
ResetTasks();
ResetSpriteData();
ResetPaletteFade();
- DmaFill32Large(3, 0, ewram, 0x20000, 0x1000);
+ DmaFill32Large(3, 0, gSharedMem, 0x20000, 0x1000);
gUnknown_02039274 = NULL;
DmaFill16Large(3, 0, VRAM, VRAM_SIZE, 0x1000);
DmaFill32Defvars(3, 0, OAM, OAM_SIZE);
@@ -359,20 +357,20 @@ void sub_8123878(u8 taskId)
switch (gUnknown_02039274->unk_0002)
{
case 7:
- if (gUnknown_08396FC4->unk_0f0[0] != NULL && gUnknown_08396FC4->unk_0f0[0]->oam.priority != 0)
+ if (gWeatherPtr->sprites.s2.ashSprites[0] != NULL && gWeatherPtr->sprites.s2.ashSprites[0]->oam.priority != 0)
{
for (; i < 20; i ++)
{
- if (gUnknown_08396FC4->unk_0f0[i] != NULL)
+ if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL)
{
- gUnknown_08396FC4->unk_0f0[i]->oam.priority = 0;
+ gWeatherPtr->sprites.s2.ashSprites[i]->oam.priority = 0;
}
}
gUnknown_02039274->unk_0001 = 2;
}
break;
case 2:
- if (gUnknown_08396FC4->unknown_6D0 == 2)
+ if (gWeatherPtr->currWeather == 2)
{
gUnknown_02039274->unk_0001 = 2;
}
@@ -380,9 +378,9 @@ void sub_8123878(u8 taskId)
{
for (; i < 20; i ++)
{
- if (gUnknown_08396FC4->unk_0f0[i] != NULL)
+ if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL)
{
- gUnknown_08396FC4->unk_0f0[i]->invisible ^= TRUE;
+ gWeatherPtr->sprites.s2.ashSprites[i]->invisible ^= TRUE;
}
}
}
@@ -439,7 +437,7 @@ void sub_81239E4(u8 taskId)
break;
case 16:
sub_8124F08(gUnknown_02039274->unk_08fc, gCableCarPylonHookTilemapEntries, 0, 0, 5, 2);
- sub_8124F08(gUnknown_02039274->unk_08fc, ewram_19000.pylonStemTilemap, 0, 2, 2, 30);
+ sub_8124F08(gUnknown_02039274->unk_08fc, eCableCar2->pylonStemTilemap, 0, 2, 2, 30);
gUnknown_02039274->unk_0015 = 64;
break;
}
@@ -465,7 +463,7 @@ void sub_8123AF8(u8 taskId)
switch (gUnknown_02039274->unk_0014)
{
case 176:
- sub_8124F08(gUnknown_02039274->unk_08fc, ewram_19000.pylonStemTilemap, 0, 2, 2, 30);
+ sub_8124F08(gUnknown_02039274->unk_08fc, eCableCar2->pylonStemTilemap, 0, 2, 2, 30);
break;
case 16:
sub_8124E7C(gUnknown_02039274->unk_08fc, 0, 2, 0, 3, 2);
@@ -490,7 +488,7 @@ void sub_8123AF8(u8 taskId)
}
else
{
- gUnknown_08396FC4->unknown_6FC = (gUnknown_08396FC4->unknown_6FC + 247) % 248;
+ gWeatherPtr->unknown_6FC = (gWeatherPtr->unknown_6FC + 247) % 248;
}
}
@@ -520,13 +518,13 @@ void sub_8123CB8(struct Sprite *sprite)
{
if (gSpecialVar_0x8004 == 0)
{
- sprite->pos1.x = sprite->data0 - (u8)(0.14f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
- sprite->pos1.y = sprite->data1 - (u8)(0.067f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
+ sprite->pos1.x = sprite->data[0] - (u8)(0.14f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
+ sprite->pos1.y = sprite->data[1] - (u8)(0.067f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
}
else
{
- sprite->pos1.x = sprite->data0 + (u8)(0.14f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
- sprite->pos1.y = sprite->data1 + (u8)(0.067f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
+ sprite->pos1.x = sprite->data[0] + (u8)(0.14f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
+ sprite->pos1.y = sprite->data[1] + (u8)(0.067f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
}
}
}
@@ -537,30 +535,30 @@ void sub_8123D98(struct Sprite *sprite)
{
if (gSpecialVar_0x8004 == 0)
{
- sprite->pos1.x = sprite->data0 - (u8)(0.14f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
- sprite->pos1.y = sprite->data1 - (u8)(0.067f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
+ sprite->pos1.x = sprite->data[0] - (u8)(0.14f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
+ sprite->pos1.y = sprite->data[1] - (u8)(0.067f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
}
else
{
- sprite->pos1.x = sprite->data0 + (u8)(0.14f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
- sprite->pos1.y = sprite->data1 + (u8)(0.067f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
+ sprite->pos1.x = sprite->data[0] + (u8)(0.14f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
+ sprite->pos1.y = sprite->data[1] + (u8)(0.067f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
}
- switch (sprite->data2)
+ switch (sprite->data[2])
{
case 0:
sprite->pos2.y = 17;
- if (sprite->data3 ++ > 9)
+ if (sprite->data[3] ++ > 9)
{
- sprite->data3 = 0;
- sprite->data2 ++;
+ sprite->data[3] = 0;
+ sprite->data[2] ++;
}
break;
default:
sprite->pos2.y = 16;
- if (sprite->data3 ++ > 9)
+ if (sprite->data[3] ++ > 9)
{
- sprite->data3 = 0;
- sprite->data2 = 0;
+ sprite->data[3] = 0;
+ sprite->data[2] = 0;
}
break;
}
@@ -569,24 +567,24 @@ void sub_8123D98(struct Sprite *sprite)
void sub_8123EB8(struct Sprite *sprite)
{
- if (sprite->data0 == 0)
+ if (sprite->data[0] == 0)
{
sprite->pos1.x += 2 * sprite->centerToCornerVecX;
sprite->pos1.y += 16 + sprite->centerToCornerVecY;
}
- if (++ sprite->data0 >= sprite->data2)
+ if (++ sprite->data[0] >= sprite->data[2])
{
- switch (sprite->data1)
+ switch (sprite->data[1])
{
case 0:
sprite->pos1.x ++;
- if ((sprite->data0 % 4) == 0)
+ if ((sprite->data[0] % 4) == 0)
{
sprite->pos1.y ++;
}
break;
case 1:
- if ((sprite->data0 % 2) != 0)
+ if ((sprite->data[0] % 2) != 0)
{
sprite->pos1.x ++;
if ((sprite->pos1.x % 4) == 0)
@@ -605,23 +603,23 @@ void sub_8123EB8(struct Sprite *sprite)
void sub_8123F44(struct Sprite *sprite)
{
- if (sprite->data0 == 0)
+ if (sprite->data[0] == 0)
{
sprite->pos1.y += 16 + sprite->centerToCornerVecY;
}
- if (++ sprite->data0 >= sprite->data2)
+ if (++ sprite->data[0] >= sprite->data[2])
{
- switch (sprite->data1)
+ switch (sprite->data[1])
{
case 0:
sprite->pos1.x --;
- if ((sprite->data0 % 4) == 0)
+ if ((sprite->data[0] % 4) == 0)
{
sprite->pos1.y --;
}
break;
case 1:
- if ((sprite->data0 % 2) != 0)
+ if ((sprite->data[0] % 2) != 0)
{
sprite->pos1.x --;
if ((sprite->pos1.x % 4) == 0)
@@ -749,42 +747,42 @@ void sub_8124118(void)
gSprites[spriteId].oam.priority = 2;
gSprites[spriteId].pos2.x = 0x08;
gSprites[spriteId].pos2.y = 0x10;
- gSprites[spriteId].data0 = 0xc8;
- gSprites[spriteId].data1 = 0x49;
+ 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].data0 = 0xb0;
- gSprites[spriteId].data1 = 0x2b;
+ 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].data0 = 0xc8;
- gSprites[spriteId].data1 = 0x63;
+ gSprites[spriteId].data[0] = 0xc8;
+ gSprites[spriteId].data[1] = 0x63;
gUnknown_02039274->unk_0002 = 7;
gUnknown_02039274->unk_0004 = 0x15e;
sub_807C9B4(2);
break;
case 1:
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x24, 0x18, 0x1a, 0x0c, 0x03);
+ sub_8124F08(gUnknown_02039274->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].data0 = 0x80;
- gSprites[spriteId].data1 = 0x27;
+ 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].data0 = 0x68;
- gSprites[spriteId].data1 = 0x09;
+ 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].data0 = 0x80;
- gSprites[spriteId].data1 = 0x41;
+ gSprites[spriteId].data[0] = 0x80;
+ gSprites[spriteId].data[1] = 0x41;
gUnknown_02039274->unk_0002 = 2;
gUnknown_02039274->unk_0004 = 0x109;
sub_807C9B4(7);
@@ -809,13 +807,13 @@ void sub_8124118(void)
if (rval % 2)
{
StartSpriteAnim(&gSprites[spriteId], 6);
- gSprites[spriteId].data1 = 1;
+ gSprites[spriteId].data[1] = 1;
gSprites[spriteId].pos1.y += 2;
}
else
{
StartSpriteAnim(&gSprites[spriteId], 7);
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
}
}
else
@@ -823,16 +821,16 @@ void sub_8124118(void)
if (rval % 2)
{
StartSpriteAnim(&gSprites[spriteId], 7);
- gSprites[spriteId].data1 = 1;
+ gSprites[spriteId].data[1] = 1;
gSprites[spriteId].pos1.y += 2;
}
else
{
StartSpriteAnim(&gSprites[spriteId], 6);
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
}
}
- gSprites[spriteId].data2 = hikerMovementDelayTable[rval % 4];
+ gSprites[spriteId].data[2] = hikerMovementDelayTable[rval % 4];
}
}
}
@@ -850,9 +848,9 @@ void sub_812446C(void)
{
for (j = 0; j < 12; j ++)
{
- gUnknown_02039274->unk_0022[i][k] = ewram_19000.mtChimneyTilemap[0][offset + k];
- gUnknown_02039274->unk_0022[i + 3][k] = ewram_19000.mtChimneyTilemap[0][k];
- gUnknown_02039274->unk_0022[i + 6][k] = ewram_19000.mtChimneyTilemap[2][k];
+ gUnknown_02039274->unk_0022[i][k] = eCableCar2->mtChimneyTilemap[0][offset + k];
+ gUnknown_02039274->unk_0022[i + 3][k] = eCableCar2->mtChimneyTilemap[0][k];
+ gUnknown_02039274->unk_0022[i + 6][k] = eCableCar2->mtChimneyTilemap[2][k];
k ++;
}
}
diff --git a/src/scene/contest_painting.c b/src/scene/contest_painting.c
index 3662efdec..442d8ec26 100644
--- a/src/scene/contest_painting.c
+++ b/src/scene/contest_painting.c
@@ -6,14 +6,13 @@
#include "main.h"
#include "menu.h"
#include "palette.h"
-#include "rng.h"
+#include "random.h"
#include "sprite.h"
#include "string_util.h"
#include "strings.h"
#include "text.h"
#include "unknown_task.h"
-
-extern u8 unk_2000000[];
+#include "ewram.h"
static u8 gUnknown_03000750;
static u16 gUnknown_03000752;
@@ -26,9 +25,6 @@ u8 gUnknown_03005E40[0x4C];
struct ContestEntry *gUnknown_03005E8C;
u16 (*gUnknown_03005E90)[];
-extern struct ContestEntry unk_2015de0;
-extern struct Unk2015E00 unk_2015e00;
-
static const u16 gPictureFramePalettes[][16] =
{
INCBIN_U16("graphics/picture_frame/bg0.gbapal"),
@@ -113,7 +109,7 @@ void sub_8106630(u32 arg0)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
- ldr r2, _0810665C @ =0x02015de0\n\
+ ldr r2, _0810665C @ =gSharedMem + 0x15DE0\n\
subs r4, r2, 0x2\n\
subs r5, r2, 0x1\n\
ldr r3, _08106660 @ =gSaveBlock1\n\
@@ -135,7 +131,7 @@ void sub_8106630(u32 arg0)
pop {r0}\n\
bx r0\n\
.align 2, 0\n\
-_0810665C: .4byte 0x02015de0\n\
+_0810665C: .4byte gSharedMem + 0x15DE0\n\
_08106660: .4byte gSaveBlock1\n\
_08106664: .4byte 0x00002dfc\n\
.syntax divided\n");
@@ -153,7 +149,7 @@ static void ShowContestPainting(void)
case 0:
remove_some_task();
SetVBlankCallback(NULL);
- gUnknown_03005E8C = &unk_2015de0;
+ gUnknown_03005E8C = &ewram15DE0;
ContestPaintingInitVars(TRUE);
ContestPaintingInitBG();
gMain.state++;
@@ -184,15 +180,15 @@ static void ShowContestPainting(void)
case 2:
SeedRng(gMain.vblankCounter1);
InitKeys();
- ContestPaintingInitWindow(unk_2000000[0x15DDF]);
+ ContestPaintingInitWindow(ewram15DDF);
gMain.state++;
break;
case 3:
- sub_8107090(unk_2000000[0x15DDE], unk_2000000[0x15DDF]);
+ sub_8107090(ewram15DDE, ewram15DDF);
gMain.state++;
break;
case 4:
- ContestPaintingPrintCaption(unk_2000000[0x15DDE], unk_2000000[0x15DDF]);
+ ContestPaintingPrintCaption(ewram15DDE, ewram15DDF);
LoadPalette(gUnknown_083F6140, 0, 1 * 2);
DmaClear32(3, PLTT, 0x400);
BeginFastPaletteFade(2);
@@ -753,8 +749,8 @@ static u8 sub_8106EE0(u8 arg0)
static void sub_8106F4C(void)
{
- gUnknown_03005E90 = &unk_2015e00.unk2017e00;
- gUnknown_03005E10 = &unk_2015e00.unk2015e00;
+ gUnknown_03005E90 = &ewram15E00.unk2017e00;
+ gUnknown_03005E10 = &ewram15E00.unk2015e00;
}
static void sub_8106F6C(u8 arg0)
diff --git a/src/scene/credits.c b/src/scene/credits.c
index cf10137c1..81be60c9f 100644
--- a/src/scene/credits.c
+++ b/src/scene/credits.c
@@ -9,13 +9,14 @@
#include "menu.h"
#include "palette.h"
#include "pokedex.h"
-#include "rng.h"
-#include "songs.h"
+#include "random.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "species.h"
+#include "constants/species.h"
#include "starter_choose.h"
#include "task.h"
#include "trig.h"
+#include "ewram.h"
asm(".set REG_BASE, 0x4000000");
asm(".set OFFSET_REG_BLDCNT, 0x50");
@@ -159,21 +160,11 @@ struct Unk201C000
struct CreditsEntry
{
u8 var_0;
- u8 *text;
+ const u8 *text;
};
-extern u8 ewram[];
-
-#define EWRAM_1F800 ((u16 *)(ewram + 0x1F800))
-#define HALL_OF_FAME_SHEET_0 ((u8 *)(ewram + 0x1E000))
-#define HALL_OF_FAME_SHEET_1 ((u8 *)(ewram + 0x1E800))
-#define HALL_OF_FAME_SHEET_2 ((u8 *)(ewram + 0x1F000))
-#define ewram1c000 (*(struct Unk201C000 *)(ewram + 0x1C000))
-
-extern struct HallOfFame gHallOfFame;
extern u8 unk_201e800[0x800];
extern u8 unk_201f000[0x800];
-extern u16 unk_201f800[];
extern struct SpriteTemplate gUnknown_02024E8C;
@@ -194,18 +185,208 @@ extern void *gUnknown_0840B5A0[];
// data/credits
const u16 gUnknown_0840B7BC[] = INCBIN_U16("graphics/credits/palette_1.gbapal");
const u8 gUnknown_0840B7FC[] = INCBIN_U8("graphics/credits/ampersand.4bpp");
-extern u8 gUnknown_0840B83C[];
-extern u8 gUnknown_0840B84B[];
-extern u8 gUnknown_0840B85A[];
-extern u8 gUnknown_0840B869[];
-extern u8 gUnknown_0840B878[];
-extern struct CreditsEntry *gCreditsEntryPointerTable[][5];
-extern u8 gUnknown_0840CA00[][2];
-extern struct SpriteSheet gUnknown_0840CAA0;
-extern struct SpritePalette gUnknown_0840CAB0;
-extern const union AnimCmd *const gSpriteAnimTable_0840CA54[];
-extern const union AnimCmd *const gSpriteAnimTable_0840CA94[];
-extern struct SpriteTemplate gSpriteTemplate_840CAEC;
+
+void spritecb_814580C(struct Sprite *sprite);
+
+const u8 gUnknown_0840B83C[] =
+{
+ 0, 1, 0,
+ 0xFF, 1, 0xFF,
+ 0xFF, 1, 0xFF,
+ 0xFF, 1, 0xFF,
+ 0xFF, 1, 0xFF,
+};
+
+const u8 gUnknown_0840B84B[] =
+{
+ 1, 0xFF, 1,
+ 1, 0xFF, 1,
+ 1, 2, 1,
+ 1, 0xFF, 1,
+ 1, 0xFF, 1,
+};
+
+const u8 gUnknown_0840B85A[] =
+{
+ 1, 0, 0,
+ 1, 0xFF, 0xFF,
+ 1, 2, 2,
+ 1, 0xFF, 0xFF,
+ 1, 0x80, 0x80,
+};
+
+const u8 gUnknown_0840B869[] =
+{
+ 1, 3, 1,
+ 1, 4, 1,
+ 1, 5, 1,
+ 1, 0xC4, 1,
+ 1, 0xC3, 1,
+};
+
+const u8 gUnknown_0840B878[] =
+{
+ 1, 6, 7,
+ 1, 8, 9,
+ 1, 0xFF, 1,
+ 1, 0x88, 0x89,
+ 1, 0x86, 0x87,
+#ifdef GERMAN
+ 1, 0, 0,
+ 1, 0xFF, 0xFF,
+ 1, 0x80, 0x8A,
+ 1, 0xFF, 0xFF,
+ 1, 0xFF, 0xFF,
+ 0, 1, 0,
+ 0xFF, 1, 0xFF,
+ 0xFF, 1, 0xFF,
+ 0xFF, 1, 0xFF,
+ 0x80, 1, 0x80,
+#endif
+};
+
+#ifdef GERMAN
+#include "../data/credits_de.h"
+#else
+#include "../data/credits_en.h"
+#endif
+
+const u8 gUnknown_0840CA00[][2] =
+{
+ {104, 36},
+ {120, 36},
+ {136, 36},
+};
+
+static const union AnimCmd gSpriteAnim_840CA08[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(64, 8),
+ ANIMCMD_FRAME(128, 8),
+ ANIMCMD_FRAME(192, 8),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd gSpriteAnim_840CA1C[] =
+{
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(64, 4),
+ ANIMCMD_FRAME(128, 4),
+ ANIMCMD_FRAME(192, 4),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd gSpriteAnim_840CA30[] =
+{
+ ANIMCMD_FRAME(256, 4),
+ ANIMCMD_FRAME(320, 4),
+ ANIMCMD_FRAME(384, 4),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gSpriteAnim_840CA40[] =
+{
+ ANIMCMD_FRAME(384, 30),
+ ANIMCMD_FRAME(320, 30),
+ ANIMCMD_FRAME(256, 30),
+ ANIMCMD_FRAME(256, 30),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const gSpriteAnimTable_0840CA54[] =
+{
+ gSpriteAnim_840CA08,
+ gSpriteAnim_840CA1C,
+ gSpriteAnim_840CA30,
+ gSpriteAnim_840CA40,
+};
+
+static const union AnimCmd gSpriteAnim_840CA64[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(64, 8),
+ ANIMCMD_FRAME(128, 8),
+ ANIMCMD_FRAME(192, 8),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd gSpriteAnim_840CA78[] =
+{
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(64, 4),
+ ANIMCMD_FRAME(128, 4),
+ ANIMCMD_FRAME(192, 4),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd gSpriteAnim_840CA8C[] =
+{
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const gSpriteAnimTable_0840CA94[] =
+{
+ gSpriteAnim_840CA64,
+ gSpriteAnim_840CA78,
+ gSpriteAnim_840CA8C,
+};
+
+static const struct SpriteSheet gUnknown_0840CAA0[] = {{ewram1E000_2, 6144, 1001}, {0}};
+static const struct SpritePalette gUnknown_0840CAB0[] = {{ewram_1F800_2, 1001}, {0}};
+
+static const struct OamData gOamData_840CAC0 =
+{
+ .y = 160,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const union AnimCmd gSpriteAnim_840CAC8[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gSpriteAnim_840CAD0[] =
+{
+ ANIMCMD_FRAME(64, 8),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gSpriteAnim_840CAD8[] =
+{
+ ANIMCMD_FRAME(128, 8),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const gSpriteAnimTable_840CAE0[] =
+{
+ gSpriteAnim_840CAC8,
+ gSpriteAnim_840CAD0,
+ gSpriteAnim_840CAD8,
+};
+
+static const struct SpriteTemplate gSpriteTemplate_840CAEC =
+{
+ .tileTag = 1001,
+ .paletteTag = 1001,
+ .oam = &gOamData_840CAC0,
+ .anims = gSpriteAnimTable_840CAE0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = spritecb_814580C,
+};
// graphics
extern u8 gCreditsCopyrightEnd_Gfx[];
@@ -339,7 +520,7 @@ static void task_a_8143B38(u8 taskIdA)
static void task_a_8143B68(u8 taskIdA)
{
- u16 data11;
+ u16 data1;
if (gTasks[taskIdA].data[TDA_4])
{
@@ -354,18 +535,18 @@ static void task_a_8143B68(u8 taskIdA)
}
gUnknown_02039320 = 0;
- data11 = gTasks[taskIdA].data[TDA_11];
+ data1 = gTasks[taskIdA].data[TDA_11];
if (gTasks[taskIdA].data[TDA_11] == 1)
{
- gTasks[taskIdA].data[TDA_13] = data11;
+ gTasks[taskIdA].data[TDA_13] = data1;
gTasks[taskIdA].data[TDA_11] = 0;
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
gTasks[taskIdA].func = task_a_8143BFC;
}
else if (gTasks[taskIdA].data[TDA_11] == 2)
{
- gTasks[taskIdA].data[TDA_13] = data11;
+ gTasks[taskIdA].data[TDA_13] = data1;
gTasks[taskIdA].data[TDA_11] = 0;
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
gTasks[taskIdA].func = task_a_8143CC0;
@@ -441,8 +622,8 @@ void task_a_8143D04(u8 taskIdA)
EWRAM_1F800[2] = 0x529F; // light red
EWRAM_1F800[3] = 0x7E94; // light blue
- LoadSpriteSheet(&gUnknown_0840CAA0);
- LoadSpritePalette(&gUnknown_0840CAB0);
+ LoadSpriteSheet(gUnknown_0840CAA0);
+ LoadSpritePalette(gUnknown_0840CAB0);
gMain.state += 1;
break;
@@ -775,12 +956,12 @@ static void task_d_8144514(u8 taskIdD)
if (r6->unk8C < r6->unk8E - 1)
{
r6->unk8C++;
- gSprites[r2].data3 = 50;
+ gSprites[r2].data[3] = 50;
}
else
{
r6->unk8C = 0;
- gSprites[r2].data3 = 512;
+ gSprites[r2].data[3] = 512;
}
r6->unk88++;
if (r6->unk8A == 2)
@@ -815,7 +996,7 @@ void task_c_8144664(u8 taskIdC)
}
else
{
- gSprites[gTasks[taskIdC].data[TDC_2]].data0 = 2;
+ gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 2;
gTasks[taskIdC].data[TDC_5] = 0;
gTasks[taskIdC].data[TDC_0]++;
}
@@ -832,8 +1013,8 @@ void task_c_8144664(u8 taskIdC)
}
break;
case 3:
- gSprites[gTasks[taskIdC].data[TDC_2]].data0 = 3;
- gSprites[gTasks[taskIdC].data[TDC_3]].data0 = 1;
+ gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 3;
+ gSprites[gTasks[taskIdC].data[TDC_3]].data[0] = 1;
gTasks[taskIdC].data[TDC_4] = 120;
gTasks[taskIdC].data[TDC_0]++;
break;
@@ -856,7 +1037,7 @@ void task_c_8144664(u8 taskIdC)
}
else
{
- gSprites[gTasks[taskIdC].data[TDC_2]].data0 = 1;
+ gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 1;
gTasks[taskIdC].data[TDC_0]++;
}
break;
@@ -864,16 +1045,16 @@ void task_c_8144664(u8 taskIdC)
gTasks[taskIdC].data[TDC_0] = 50;
break;
case 10:
- gSprites[gTasks[taskIdC].data[TDC_3]].data0 = 2;
+ gSprites[gTasks[taskIdC].data[TDC_3]].data[0] = 2;
gTasks[taskIdC].data[TDC_0] = 50;
break;
case 20:
- gSprites[gTasks[taskIdC].data[TDC_2]].data0 = 4;
+ gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 4;
gTasks[taskIdC].data[TDC_0] = 50;
break;
case 30:
- gSprites[gTasks[taskIdC].data[TDC_2]].data0 = 5;
- gSprites[gTasks[taskIdC].data[TDC_3]].data0 = 3;
+ gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 5;
+ gSprites[gTasks[taskIdC].data[TDC_3]].data[0] = 3;
gTasks[taskIdC].data[TDC_0] = 50;
break;
case 50:
@@ -951,8 +1132,8 @@ static void sub_8144A68(u8 data, u8 taskIdA)
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272;
gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46;
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data0 = 0;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data0 = 0;
+ gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0;
+ gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0;
gTasks[taskIdA].data[TDA_0] = sub_8148EC0(0, 0x2000, 0x20, 8);
break;
case 1:
@@ -962,8 +1143,8 @@ static void sub_8144A68(u8 data, u8 taskIdA)
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272;
gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46;
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data0 = 0;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data0 = 0;
+ gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0;
+ gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0;
gTasks[taskIdA].data[TDA_0] = sub_8148EC0(0, 0x2000, 0x20, 8);
break;
case 2:
@@ -973,8 +1154,8 @@ static void sub_8144A68(u8 data, u8 taskIdA)
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272;
gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46;
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data0 = 0;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data0 = 0;
+ gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0;
+ gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0;
gTasks[taskIdA].data[TDA_0] = sub_8148EC0(1, 0x2000, 0x200, 8);
break;
case 3:
@@ -984,8 +1165,8 @@ static void sub_8144A68(u8 data, u8 taskIdA)
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = -32;
gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46;
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data0 = 0;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data0 = 0;
+ gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0;
+ gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0;
gTasks[taskIdA].data[TDA_0] = sub_8148EC0(1, 0x2000, 0x200, 8);
break;
case 4:
@@ -995,8 +1176,8 @@ static void sub_8144A68(u8 data, u8 taskIdA)
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 152;
gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46;
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data0 = 0;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data0 = 0;
+ gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0;
+ gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0;
gTasks[taskIdA].data[TDA_0] = sub_8148EC0(2, 0x2000, 0x200, 8);
break;
}
@@ -1160,7 +1341,7 @@ u16 sub_8145208(u8 arg0)
return out;
}
-void sub_814524C(u8 arg0[], u8 baseX, u8 baseY, u16 arg3, u16 palette)
+void sub_814524C(const u8 arg0[], u8 baseX, u8 baseY, u16 arg3, u16 palette)
{
u8 y, x;
const u16 tileOffset = (palette / 16) << 12;
@@ -1203,7 +1384,7 @@ static void spritecb_player_8145378(struct Sprite *sprite)
return;
}
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
StartSpriteAnimIfDifferent(sprite, 0);
@@ -1240,7 +1421,7 @@ static void spritecb_rival_8145420(struct Sprite *sprite)
return;
}
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
sprite->pos2.y = 0;
@@ -1256,9 +1437,9 @@ static void spritecb_rival_8145420(struct Sprite *sprite)
sprite->pos2.y = -gUnknown_0203935A;
break;
case 2:
- sprite->data7 += 1;
+ sprite->data[7] += 1;
StartSpriteAnimIfDifferent(sprite, 0);
- if ((sprite->data7 & 3) == 0)
+ if ((sprite->data[7] & 3) == 0)
sprite->pos1.x += 1;
break;
case 3:
@@ -1277,74 +1458,74 @@ void spritecb_81454E0(struct Sprite *sprite)
return;
}
- sprite->data7 += 1;
- switch (sprite->data0)
+ sprite->data[7] += 1;
+ switch (sprite->data[0])
{
case 0:
default:
sprite->oam.affineMode = 1;
- sprite->oam.matrixNum = sprite->data1;
- sprite->data2 = 16;
- SetOamMatrix(sprite->data1, 0x10000 / sprite->data2, 0, 0, 0x10000 / sprite->data2);
+ sprite->oam.matrixNum = sprite->data[1];
+ sprite->data[2] = 16;
+ SetOamMatrix(sprite->data[1], 0x10000 / sprite->data[2], 0, 0, 0x10000 / sprite->data[2]);
sprite->invisible = FALSE;
- sprite->data0 = 1;
+ sprite->data[0] = 1;
break;
case 1:
- if (sprite->data2 < 256)
+ if (sprite->data[2] < 256)
{
- sprite->data2 += 8;
- SetOamMatrix(sprite->data1, 0x10000 / sprite->data2, 0, 0, 0x10000 / sprite->data2);
+ sprite->data[2] += 8;
+ SetOamMatrix(sprite->data[1], 0x10000 / sprite->data[2], 0, 0, 0x10000 / sprite->data[2]);
}
else
{
- sprite->data0 += 1;
+ sprite->data[0] += 1;
}
- switch (sprite->data1)
+ switch (sprite->data[1])
{
case 1:
- if ((sprite->data7 & 3) == 0)
+ if ((sprite->data[7] & 3) == 0)
sprite->pos1.y += 1;
sprite->pos1.x -= 2;
break;
case 2:
break;
case 3:
- if ((sprite->data7 & 3) == 0)
+ if ((sprite->data[7] & 3) == 0)
sprite->pos1.y += 1;
sprite->pos1.x += 2;
break;
}
break;
case 2:
- if (sprite->data3 != 0)
+ if (sprite->data[3] != 0)
{
- sprite->data3 -= 1;
+ sprite->data[3] -= 1;
}
else
{
REG_BLDCNT = 0xF40;
REG_BLDALPHA = 0x10;
sprite->oam.objMode = 1;
- sprite->data3 = 16;
- sprite->data0 += 1;
+ sprite->data[3] = 16;
+ sprite->data[0] += 1;
}
break;
case 3:
- if (sprite->data3 != 0)
+ if (sprite->data[3] != 0)
{
int data3;
vu16 *reg;
- sprite->data3 -= 1;
+ sprite->data[3] -= 1;
reg = &REG_BLDALPHA;
- data3 = 16 - sprite->data3;
- *reg = (data3 << 8) + sprite->data3;
+ data3 = 16 - sprite->data[3];
+ *reg = (data3 << 8) + sprite->data[3];
}
else
{
sprite->invisible = TRUE;
- sprite->data0 = 10;
+ sprite->data[0] = 10;
}
break;
case 10:
@@ -1394,12 +1575,12 @@ static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position)
spriteId = CreateSprite(&gUnknown_02024E8C, x, y, 0);
gSprites[spriteId].oam.paletteNum = position;
gSprites[spriteId].oam.priority = 1;
- gSprites[spriteId].data1 = position + 1;
+ gSprites[spriteId].data[1] = position + 1;
gSprites[spriteId].invisible = TRUE;
gSprites[spriteId].callback = spritecb_81454E0;
spriteId2 = CreateSprite(&gSpriteTemplate_840CAEC, gSprites[spriteId].pos1.x, gSprites[spriteId].pos1.y, 1);
- gSprites[spriteId2].data0 = spriteId;
+ gSprites[spriteId2].data[0] = spriteId;
StartSpriteAnimIfDifferent(&gSprites[spriteId2], position);
@@ -1408,18 +1589,18 @@ static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position)
void spritecb_814580C(struct Sprite *sprite)
{
- if (gSprites[sprite->data0].data0 == 10 || gUnknown_0203935C)
+ if (gSprites[sprite->data[0]].data[0] == 10 || gUnknown_0203935C)
{
DestroySprite(sprite);
return;
}
- sprite->invisible = gSprites[sprite->data0].invisible;
- sprite->oam.objMode = gSprites[sprite->data0].oam.objMode;
- sprite->oam.affineMode = gSprites[sprite->data0].oam.affineMode;
- sprite->oam.matrixNum = gSprites[sprite->data0].oam.matrixNum;
- sprite->pos1.x = gSprites[sprite->data0].pos1.x;
- sprite->pos1.y = gSprites[sprite->data0].pos1.y;
+ sprite->invisible = gSprites[sprite->data[0]].invisible;
+ sprite->oam.objMode = gSprites[sprite->data[0]].oam.objMode;
+ sprite->oam.affineMode = gSprites[sprite->data[0]].oam.affineMode;
+ sprite->oam.matrixNum = gSprites[sprite->data[0]].oam.matrixNum;
+ sprite->pos1.x = gSprites[sprite->data[0]].pos1.x;
+ sprite->pos1.y = gSprites[sprite->data[0]].pos1.y;
}
static void sub_81458DC(void)
diff --git a/src/scene/egg_hatch.c b/src/scene/egg_hatch.c
index 032dcd284..c0111de7d 100644
--- a/src/scene/egg_hatch.c
+++ b/src/scene/egg_hatch.c
@@ -1,27 +1,28 @@
#include "global.h"
-#include "pokemon.h"
-#include "items.h"
-#include "decompress.h"
#include "data2.h"
-#include "task.h"
-#include "script.h"
-#include "palette.h"
-#include "overworld.h"
-#include "main.h"
+#include "daycare.h"
+#include "decompress.h"
#include "event_data.h"
+#include "ewram.h"
+#include "constants/items.h"
+#include "main.h"
+#include "menu.h"
+#include "naming_screen.h"
+#include "overworld.h"
+#include "palette.h"
+#include "pokemon.h"
+#include "random.h"
+#include "script.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "songs.h"
-#include "text.h"
-#include "text_window.h"
#include "string_util.h"
#include "strings2.h"
-#include "menu.h"
-#include "naming_screen.h"
+#include "task.h"
+#include "text.h"
+#include "text_window.h"
#include "trig.h"
-#include "rng.h"
#include "trade.h"
-extern u8 ewram[];
extern struct SpriteTemplate gUnknown_02024E8C;
struct EggHatchData
@@ -47,7 +48,6 @@ extern const struct SpriteSheet sUnknown_0820A3B8;
extern const struct SpritePalette sUnknown_0820A3C0;
bool8 GetSetPokedexFlag(u16 nationalNum, u8 caseID);
-u8* GetMonNick(struct Pokemon* mon, u8* dst);
u8 sav1_map_get_name(void);
const struct CompressedSpritePalette* GetMonSpritePalStruct(struct Pokemon* mon); //gets pokemon palette address
void sub_8080990(void);
@@ -391,7 +391,7 @@ _08042B42:\n\
bool8 sub_8042B4C(void)
{
- return sub_8042ABC(&gSaveBlock1.daycareData, gSpecialVar_0x8004);
+ return sub_8042ABC(&gSaveBlock1.daycare, gSpecialVar_0x8004);
}
static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID)
@@ -416,7 +416,7 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES);
u32 pid = GetMonData(mon, MON_DATA_PERSONALITY);
- HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset,(u32)(&ewram[0]), gUnknown_081FAF4C[2 * a0 + 1], species, pid);
+ HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, ewram0_6, gUnknown_081FAF4C[2 * a0 + 1], species, pid);
LoadCompressedObjectPalette(GetMonSpritePalStruct(mon));
}
break;
@@ -460,7 +460,7 @@ static void CB2_EggHatch_0(void)
{
case 0:
REG_DISPCNT = 0;
- gEggHatchData = (struct EggHatchData*)(&ewram[0x18000]);
+ gEggHatchData = eEggHatchData;
gEggHatchData->eggPartyID = gSpecialVar_0x8004;
gEggHatchData->eggShardVelocityID = 0;
ResetTasks();
@@ -479,8 +479,8 @@ static void CB2_EggHatch_0(void)
break;
case 2:
LZDecompressVram(&gUnknown_08D00000, (void*)(VRAM));
- CpuSet(&gUnknown_08D00524, &ewram[0], 0x800);
- DmaCopy16(3, &ewram[0], (void*)(VRAM + 0x2800), 0x500);
+ CpuSet(&gUnknown_08D00524, ewram0_7, 0x800);
+ DmaCopy16(3, ewram0_7, (void*)(VRAM + 0x2800), 0x500);
LoadCompressedPalette(&gUnknown_08D004E0, 0, 0x20);
gMain.state++;
break;
@@ -669,16 +669,16 @@ static void CB2_EggHatch_1(void)
static void SpriteCB_Egg_0(struct Sprite* sprite)
{
- if (++sprite->data0 > 20)
+ if (++sprite->data[0] > 20)
{
sprite->callback = SpriteCB_Egg_1;
- sprite->data0 = 0;
+ sprite->data[0] = 0;
}
else
{
- sprite->data1 = (sprite->data1 + 20) & 0xFF;
- sprite->pos2.x = Sin(sprite->data1, 1);
- if (sprite->data0 == 15)
+ sprite->data[1] = (sprite->data[1] + 20) & 0xFF;
+ sprite->pos2.x = Sin(sprite->data[1], 1);
+ if (sprite->data[0] == 15)
{
PlaySE(SE_BOWA);
StartSpriteAnim(sprite, 1);
@@ -689,19 +689,19 @@ static void SpriteCB_Egg_0(struct Sprite* sprite)
static void SpriteCB_Egg_1(struct Sprite* sprite)
{
- if (++sprite->data2 > 30)
+ if (++sprite->data[2] > 30)
{
- if (++sprite->data0 > 20)
+ if (++sprite->data[0] > 20)
{
sprite->callback = SpriteCB_Egg_2;
- sprite->data0 = 0;
- sprite->data2 = 0;
+ sprite->data[0] = 0;
+ sprite->data[2] = 0;
}
else
{
- sprite->data1 = (sprite->data1 + 20) & 0xFF;
- sprite->pos2.x = Sin(sprite->data1, 2);
- if (sprite->data0 == 15)
+ sprite->data[1] = (sprite->data[1] + 20) & 0xFF;
+ sprite->pos2.x = Sin(sprite->data[1], 2);
+ if (sprite->data[0] == 15)
{
PlaySE(SE_BOWA);
StartSpriteAnim(sprite, 2);
@@ -712,30 +712,30 @@ static void SpriteCB_Egg_1(struct Sprite* sprite)
static void SpriteCB_Egg_2(struct Sprite* sprite)
{
- if (++sprite->data2 > 30)
+ if (++sprite->data[2] > 30)
{
- if (++sprite->data0 > 38)
+ if (++sprite->data[0] > 38)
{
u16 species;
sprite->callback = SpriteCB_Egg_3;
- sprite->data0 = 0;
+ sprite->data[0] = 0;
species = GetMonData(&gPlayerParty[gEggHatchData->eggPartyID], MON_DATA_SPECIES);
gSprites[gEggHatchData->pokeSpriteID].pos2.x = 0;
gSprites[gEggHatchData->pokeSpriteID].pos2.y = gMonFrontPicCoords[species].y_offset;
}
else
{
- sprite->data1 = (sprite->data1 + 20) & 0xFF;
- sprite->pos2.x = Sin(sprite->data1, 2);
- if (sprite->data0 == 15)
+ sprite->data[1] = (sprite->data[1] + 20) & 0xFF;
+ sprite->pos2.x = Sin(sprite->data[1], 2);
+ if (sprite->data[0] == 15)
{
PlaySE(SE_BOWA);
StartSpriteAnim(sprite, 2);
CreateRandomEggShardSprite();
CreateRandomEggShardSprite();
}
- if (sprite->data0 == 30)
+ if (sprite->data[0] == 30)
PlaySE(SE_BOWA);
}
}
@@ -743,60 +743,60 @@ static void SpriteCB_Egg_2(struct Sprite* sprite)
static void SpriteCB_Egg_3(struct Sprite* sprite)
{
- if (++sprite->data0 > 50)
+ if (++sprite->data[0] > 50)
{
sprite->callback = SpriteCB_Egg_4;
- sprite->data0 = 0;
+ sprite->data[0] = 0;
}
}
static void SpriteCB_Egg_4(struct Sprite* sprite)
{
s16 i;
- if (sprite->data0 == 0)
+ if (sprite->data[0] == 0)
BeginNormalPaletteFade(-1, -1, 0, 0x10, 0xFFFF);
- if (sprite->data0 < 4u)
+ if (sprite->data[0] < 4u)
{
for (i = 0; i <= 3; i++)
CreateRandomEggShardSprite();
}
- sprite->data0++;
+ sprite->data[0]++;
if (!gPaletteFade.active)
{
PlaySE(SE_TAMAGO);
sprite->invisible = 1;
sprite->callback = SpriteCB_Egg_5;
- sprite->data0 = 0;
+ sprite->data[0] = 0;
}
}
static void SpriteCB_Egg_5(struct Sprite* sprite)
{
- if (sprite->data0 == 0)
+ if (sprite->data[0] == 0)
{
gSprites[gEggHatchData->pokeSpriteID].invisible = 0;
StartSpriteAffineAnim(&gSprites[gEggHatchData->pokeSpriteID], 1);
}
- if (sprite->data0 == 8)
+ if (sprite->data[0] == 8)
BeginNormalPaletteFade(-1, -1, 0x10, 0, 0xFFFF);
- if (sprite->data0 <= 9)
+ if (sprite->data[0] <= 9)
gSprites[gEggHatchData->pokeSpriteID].pos1.y -= 1;
- if (sprite->data0 > 40)
+ if (sprite->data[0] > 40)
sprite->callback = SpriteCallbackDummy;
- sprite->data0++;
+ sprite->data[0]++;
}
static void SpriteCB_EggShard(struct Sprite* sprite)
{
- sprite->data4 += sprite->data1;
- sprite->data5 += sprite->data2;
+ sprite->data[4] += sprite->data[1];
+ sprite->data[5] += sprite->data[2];
- sprite->pos2.x = sprite->data4 / 256;
- sprite->pos2.y = sprite->data5 / 256;
+ sprite->pos2.x = sprite->data[4] / 256;
+ sprite->pos2.y = sprite->data[5] / 256;
- sprite->data2 += sprite->data3;
+ sprite->data[2] += sprite->data[3];
- if (sprite->pos1.y + sprite->pos2.y > sprite->pos1.y + 20 && sprite->data2 > 0)
+ if (sprite->pos1.y + sprite->pos2.y > sprite->pos1.y + 20 && sprite->data[2] > 0)
DestroySprite(sprite);
}
@@ -840,9 +840,9 @@ static void CreateRandomEggShardSprite(void)
static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex)
{
u8 spriteID = CreateSprite(&sSpriteTemplate_820A418, x, y, 4);
- gSprites[spriteID].data1 = data1;
- gSprites[spriteID].data2 = data2;
- gSprites[spriteID].data3 = data3;
+ gSprites[spriteID].data[1] = data1;
+ gSprites[spriteID].data[2] = data2;
+ gSprites[spriteID].data[3] = data3;
StartSpriteAnim(&gSprites[spriteID], spriteAnimIndex);
}
diff --git a/src/scene/evolution_graphics.c b/src/scene/evolution_graphics.c
index 1fd5bf8fa..b9ef5b402 100644
--- a/src/scene/evolution_graphics.c
+++ b/src/scene/evolution_graphics.c
@@ -2,11 +2,11 @@
#include "evolution_graphics.h"
#include "sprite.h"
#include "trig.h"
-#include "rng.h"
+#include "random.h"
#include "decompress.h"
#include "task.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "palette.h"
// this file's functions
@@ -115,18 +115,18 @@ static void SpriteCB_PreEvoSparkleSet1(struct Sprite* sprite)
{
u8 matrixNum;
- sprite->pos1.y = 88 - (sprite->data7 * sprite->data7) / 80;
- sprite->pos2.y = Sin((u8)(sprite->data6), sprite->data5) / 4;
- sprite->pos2.x = Cos((u8)(sprite->data6), sprite->data5);
- sprite->data6 += 4;
- if (sprite->data7 & 1)
- sprite->data5--;
- sprite->data7++;
+ sprite->pos1.y = 88 - (sprite->data[7] * sprite->data[7]) / 80;
+ sprite->pos2.y = Sin((u8)(sprite->data[6]), sprite->data[5]) / 4;
+ sprite->pos2.x = Cos((u8)(sprite->data[6]), sprite->data[5]);
+ sprite->data[6] += 4;
+ if (sprite->data[7] & 1)
+ sprite->data[5]--;
+ sprite->data[7]++;
if (sprite->pos2.y > 0)
sprite->subpriority = 1;
else
sprite->subpriority = 20;
- matrixNum = sprite->data5 / 4 + 20;
+ matrixNum = sprite->data[5] / 4 + 20;
if (matrixNum > 31)
matrixNum = 31;
sprite->oam.matrixNum = matrixNum;
@@ -140,9 +140,9 @@ static void CreatePreEvoSparkleSet1(u8 arg0)
u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 88, 0);
if (spriteID != MAX_SPRITES)
{
- gSprites[spriteID].data5 = 48;
- gSprites[spriteID].data6 = arg0;
- gSprites[spriteID].data7 = 0;
+ gSprites[spriteID].data[5] = 48;
+ gSprites[spriteID].data[6] = arg0;
+ gSprites[spriteID].data[7] = 0;
gSprites[spriteID].oam.affineMode = 1;
gSprites[spriteID].oam.matrixNum = 31;
gSprites[spriteID].callback = SpriteCB_PreEvoSparkleSet1;
@@ -153,11 +153,11 @@ static void SpriteCB_PreEvoSparkleSet2(struct Sprite* sprite)
{
if (sprite->pos1.y < 88)
{
- sprite->pos1.y = 8 + (sprite->data7 * sprite->data7) / 5;
- sprite->pos2.y = Sin((u8)(sprite->data6), sprite->data5) / 4;
- sprite->pos2.x = Cos((u8)(sprite->data6), sprite->data5);
- sprite->data5 = 8 + Sin((u8)(sprite->data7 * 4), 40);
- sprite->data7++;
+ sprite->pos1.y = 8 + (sprite->data[7] * sprite->data[7]) / 5;
+ sprite->pos2.y = Sin((u8)(sprite->data[6]), sprite->data[5]) / 4;
+ sprite->pos2.x = Cos((u8)(sprite->data[6]), sprite->data[5]);
+ sprite->data[5] = 8 + Sin((u8)(sprite->data[7] * 4), 40);
+ sprite->data[7]++;
}
else
DestroySprite(sprite);
@@ -168,9 +168,9 @@ static void CreatePreEvoSparkleSet2(u8 arg0)
u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 8, 0);
if (spriteID != MAX_SPRITES)
{
- gSprites[spriteID].data5 = 8;
- gSprites[spriteID].data6 = arg0;
- gSprites[spriteID].data7 = 0;
+ gSprites[spriteID].data[5] = 8;
+ gSprites[spriteID].data[6] = arg0;
+ gSprites[spriteID].data[7] = 0;
gSprites[spriteID].oam.affineMode = 1;
gSprites[spriteID].oam.matrixNum = 25;
gSprites[spriteID].subpriority = 1;
@@ -180,12 +180,12 @@ static void CreatePreEvoSparkleSet2(u8 arg0)
static void SpriteCB_PostEvoSparkleSet1(struct Sprite* sprite)
{
- if (sprite->data5 > 8)
+ if (sprite->data[5] > 8)
{
- sprite->pos2.y = Sin((u8)(sprite->data6), sprite->data5);
- sprite->pos2.x = Cos((u8)(sprite->data6), sprite->data5);
- sprite->data5 -= sprite->data3;
- sprite->data6 += 4;
+ sprite->pos2.y = Sin((u8)(sprite->data[6]), sprite->data[5]);
+ sprite->pos2.x = Cos((u8)(sprite->data[6]), sprite->data[5]);
+ sprite->data[5] -= sprite->data[3];
+ sprite->data[6] += 4;
}
else
DestroySprite(sprite);
@@ -196,10 +196,10 @@ static void CreatePostEvoSparkleSet1(u8 arg0, u8 arg1)
u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 56, 0);
if (spriteID != MAX_SPRITES)
{
- gSprites[spriteID].data3 = arg1;
- gSprites[spriteID].data5 = 120;
- gSprites[spriteID].data6 = arg0;
- gSprites[spriteID].data7 = 0;
+ gSprites[spriteID].data[3] = arg1;
+ gSprites[spriteID].data[5] = 120;
+ gSprites[spriteID].data[6] = arg0;
+ gSprites[spriteID].data[7] = 0;
gSprites[spriteID].oam.affineMode = 1;
gSprites[spriteID].oam.matrixNum = 31;
gSprites[spriteID].subpriority = 1;
@@ -209,29 +209,29 @@ static void CreatePostEvoSparkleSet1(u8 arg0, u8 arg1)
static void SpriteCB_PostEvoSparkleSet2(struct Sprite* sprite)
{
- if (!(sprite->data7 & 3))
+ if (!(sprite->data[7] & 3))
sprite->pos1.y++;
- if (sprite->data6 < 128)
+ if (sprite->data[6] < 128)
{
u8 matrixNum;
- sprite->pos2.y = -Sin((u8)(sprite->data6), sprite->data5);
- sprite->pos1.x = 120 + (sprite->data3 * sprite->data7) / 3;
- sprite->data6++;
- matrixNum = 31 - (sprite->data6 * 12 / 128);
- if (sprite->data6 > 64)
+ sprite->pos2.y = -Sin((u8)(sprite->data[6]), sprite->data[5]);
+ sprite->pos1.x = 120 + (sprite->data[3] * sprite->data[7]) / 3;
+ sprite->data[6]++;
+ matrixNum = 31 - (sprite->data[6] * 12 / 128);
+ if (sprite->data[6] > 64)
sprite->subpriority = 1;
else
{
sprite->invisible = 0;
sprite->subpriority = 20;
- if (sprite->data6 > 112 && sprite->data6 & 1)
+ if (sprite->data[6] > 112 && sprite->data[6] & 1)
sprite->invisible = 1;
}
if (matrixNum < 20)
matrixNum = 20;
sprite->oam.matrixNum = matrixNum;
- sprite->data7++;
+ sprite->data[7]++;
}
else
DestroySprite(sprite);
@@ -242,9 +242,9 @@ static void CreatePostEvoSparkleSet2(u8 arg0)
u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 56, 0);
if (spriteID != MAX_SPRITES)
{
- gSprites[spriteID].data3 = 3 - (Random() % 7);
- gSprites[spriteID].data5 = 48 + (Random() & 0x3F);
- gSprites[spriteID].data7 = 0;
+ gSprites[spriteID].data[3] = 3 - (Random() % 7);
+ gSprites[spriteID].data[5] = 48 + (Random() & 0x3F);
+ gSprites[spriteID].data[7] = 0;
gSprites[spriteID].oam.affineMode = 1;
gSprites[spriteID].oam.matrixNum = 31;
gSprites[spriteID].subpriority = 20;
diff --git a/src/scene/evolution_scene.c b/src/scene/evolution_scene.c
index 24168dc56..e0b42e1c7 100644
--- a/src/scene/evolution_scene.c
+++ b/src/scene/evolution_scene.c
@@ -16,14 +16,15 @@
#include "trade.h"
#include "menu.h"
#include "pokedex.h"
-#include "species.h"
+#include "constants/species.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "overworld.h"
#include "battle_message.h"
#include "pokemon_summary_screen.h"
#include "menu_cursor.h"
#include "strings2.h"
+#include "ewram.h"
struct EvoInfo
{
@@ -55,8 +56,6 @@ struct EvoInfo
u8 unkA0C4; // 0x201E8C4
};
-#define sEvoInfo ((*(struct EvoInfo*)(ewram + 0x14800)))
-
void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies);
void sub_8024CEC(void);
void sub_8023A80(void);
@@ -78,7 +77,6 @@ extern u8 gBattleTerrain;
extern u8 gReservedSpritePaletteCount;
extern u16 gMoveToLearn;
extern struct SpriteTemplate gUnknown_02024E8C;
-extern u8 gUnk_2009000[]; // won't match if I 'ewram' it
extern bool8 gAffineAnimsDisabled;
extern u8 gDisplayedStringBattle[];
extern u8 gBattleTextBuff2[];
@@ -87,9 +85,9 @@ extern u8 gBattleCommunication[];
#define sEvoCursorPos gBattleCommunication[1] // when learning a new move
#define sEvoGraphicsTaskID gBattleCommunication[2]
-extern const u8 gUnknown_08400C4A[];
-extern const u8 gUnknown_08400C60[];
-extern const u8 gUnknown_08400C8D[];
+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[];
@@ -133,7 +131,7 @@ static void CB2_BeginEvolutionScene(void)
#define tLearnsFirstMove data[6]
#define tLearnMoveState data[8]
#define tData9 data[9]
-#define tData10 data[10]
+#define tdata10 data[10]
#define tEvoWasStopped data[11]
#define tPartyID data[12]
@@ -276,7 +274,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo,
gTasks[ID].tEvoWasStopped = FALSE;
gTasks[ID].tPartyID = partyID;
- memcpy(gUnk_2009000, &gPlttBufferUnfaded[0x20], 0x60);
+ memcpy(ewram9000_hack, &gPlttBufferUnfaded[0x20], 0x60);
REG_DISPCNT = DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP;
SetHBlankCallback(EvoDummyFunc);
@@ -559,7 +557,7 @@ static void Task_EvolutionScene(u8 taskID)
case 1: // print 'whoa, poke is evolving!!!' msg
if (!gPaletteFade.active)
{
- StringExpandPlaceholders(gStringVar4, gUnknown_08400C4A);
+ StringExpandPlaceholders(gStringVar4, BattleText_StartEvo);
sub_8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15);
gTasks[taskID].tState++;
}
@@ -639,7 +637,7 @@ static void Task_EvolutionScene(u8 taskID)
{
m4aMPlayAllStop();
PlayCry1(gTasks[taskID].tPostEvoSpecies, 0);
- memcpy(&gPlttBufferUnfaded[0x20], gUnk_2009000, 0x60);
+ memcpy(&gPlttBufferUnfaded[0x20], ewram9000_hack, 0x60);
BeginNormalPaletteFade(0x1C, 0, 0x10, 0, 0);
gTasks[taskID].tState++;
}
@@ -647,7 +645,7 @@ static void Task_EvolutionScene(u8 taskID)
case 13: // congratulations string and rename prompt
if (IsCryFinished() && !gPaletteFade.active)
{
- StringExpandPlaceholders(gStringVar4, gUnknown_08400C60);
+ StringExpandPlaceholders(gStringVar4, BattleText_FinishEvo);
sub_8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15);
PlayBGM(BGM_FANFA5);
gTasks[taskID].tState++;
@@ -716,7 +714,7 @@ static void Task_EvolutionScene(u8 taskID)
case 18: // after the cry, print the string 'WHOA IT DID NOT EVOLVE!!!'
if (IsCryFinished())
{
- StringExpandPlaceholders(gStringVar4, gUnknown_08400C8D);
+ StringExpandPlaceholders(gStringVar4, BattleText_StopEvo);
sub_8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15);
gTasks[taskID].tEvoWasStopped = TRUE;
gTasks[taskID].tState = 14;
@@ -765,7 +763,7 @@ static void Task_EvolutionScene(u8 taskID)
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[6]);
sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gTasks[taskID].tData9 = 5;
- gTasks[taskID].tData10 = 9;
+ gTasks[taskID].tdata10 = 9;
gTasks[taskID].tLearnMoveState++;
}
case 3:
@@ -799,7 +797,7 @@ static void Task_EvolutionScene(u8 taskID)
sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
PlaySE(SE_SELECT);
if (sEvoCursorPos != 0)
- gTasks[taskID].tLearnMoveState = gTasks[taskID].tData10;
+ gTasks[taskID].tLearnMoveState = gTasks[taskID].tdata10;
else
{
gTasks[taskID].tLearnMoveState = gTasks[taskID].tData9;
@@ -813,13 +811,13 @@ static void Task_EvolutionScene(u8 taskID)
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[292]);
sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
PlaySE(SE_SELECT);
- gTasks[taskID].tLearnMoveState = gTasks[taskID].tData10;
+ gTasks[taskID].tLearnMoveState = gTasks[taskID].tdata10;
}
break;
case 5:
if (!gPaletteFade.active)
{
- sub_809D9F0(gPlayerParty, gTasks[taskID].tPartyID,
+ ShowSelectMovePokemonSummaryScreen(gPlayerParty, gTasks[taskID].tPartyID,
gPlayerPartyCount - 1, CB2_EvolutionSceneLoadGraphics,
gMoveToLearn);
gTasks[taskID].tLearnMoveState++;
@@ -876,7 +874,7 @@ static void Task_EvolutionScene(u8 taskID)
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[8]);
sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gTasks[taskID].tData9 = 10;
- gTasks[taskID].tData10 = 0;
+ gTasks[taskID].tdata10 = 0;
gTasks[taskID].tLearnMoveState = 3;
break;
case 10:
@@ -901,7 +899,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
switch (gTasks[taskID].tState)
{
case 0:
- StringExpandPlaceholders(gStringVar4, gUnknown_08400C4A);
+ StringExpandPlaceholders(gStringVar4, BattleText_StartEvo);
sub_8002EB0(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tState++;
break;
@@ -981,7 +979,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
if (IsSEPlaying())
{
PlayCry1(gTasks[taskID].tPostEvoSpecies, 0);
- memcpy(&gPlttBufferUnfaded[0x20], gUnk_2009000, 0x60);
+ memcpy(&gPlttBufferUnfaded[0x20], ewram9000_hack, 0x60);
BeginNormalPaletteFade(1, 0, 0x10, 0, 0);
gTasks[taskID].tState++;
}
@@ -989,7 +987,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
case 12:
if (IsCryFinished() && !gPaletteFade.active)
{
- StringExpandPlaceholders(gStringVar4, gUnknown_08400C60);
+ StringExpandPlaceholders(gStringVar4, BattleText_FinishEvo);
sub_8002EB0(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
PlayFanfare(BGM_FANFA5);
gTasks[taskID].tState++;
@@ -1079,7 +1077,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[6]);
sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tData9 = 5;
- gTasks[taskID].tData10 = 9;
+ gTasks[taskID].tdata10 = 9;
gTasks[taskID].tLearnMoveState++;
}
case 3:
@@ -1118,7 +1116,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
PlaySE(SE_SELECT);
if (sEvoCursorPos != 0)
- gTasks[taskID].tLearnMoveState = gTasks[taskID].tData10;
+ gTasks[taskID].tLearnMoveState = gTasks[taskID].tdata10;
else
{
gTasks[taskID].tLearnMoveState = gTasks[taskID].tData9;
@@ -1133,13 +1131,13 @@ static void Task_TradeEvolutionScene(u8 taskID)
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[292]);
sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
PlaySE(SE_SELECT);
- gTasks[taskID].tLearnMoveState = gTasks[taskID].tData10;
+ gTasks[taskID].tLearnMoveState = gTasks[taskID].tdata10;
}
break;
case 5:
if (!gPaletteFade.active)
{
- sub_809D9F0(gPlayerParty, gTasks[taskID].tPartyID,
+ ShowSelectMovePokemonSummaryScreen(gPlayerParty, gTasks[taskID].tPartyID,
gPlayerPartyCount - 1, CB2_TradeEvolutionSceneLoadGraphics,
gMoveToLearn);
gTasks[taskID].tLearnMoveState++;
@@ -1196,7 +1194,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[8]);
sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tData9 = 10;
- gTasks[taskID].tData10 = 0;
+ gTasks[taskID].tdata10 = 0;
gTasks[taskID].tLearnMoveState = 3;
break;
case 10:
@@ -1522,7 +1520,7 @@ __attribute__((naked))
void unref_sub_8113B50()
{
asm(".syntax unified\n\
- push {r4-r7,lr}\n\
+ push {r4-r7,lr}\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
@@ -1536,7 +1534,7 @@ void unref_sub_8113B50()
str r1, [sp, 0x10]\n\
movs r2, 0\n\
str r2, [sp, 0x8]\n\
- ldr r3, _08113C60 @ =0x02014800\n\
+ ldr r3, _08113C60 @ =gSharedMem + 0x14800\n\
mov r12, r3\n\
ldr r4, _08113C64 @ =0x000018c4\n\
add r4, r12\n\
@@ -1553,7 +1551,7 @@ _08113B7C:\n\
adds r0, r3, 0x4\n\
adds r0, r1, r0\n\
strb r2, [r0]\n\
- ldr r4, _08113C6C @ =0x02014844\n\
+ ldr r4, _08113C6C @ =gSharedMem + 0x14844\n\
adds r0, r1, r4\n\
strb r2, [r0]\n\
movs r6, 0\n\
@@ -1564,7 +1562,7 @@ _08113B7C:\n\
_08113B9C:\n\
mov r0, r9\n\
adds r1, r6, r0\n\
- ldr r5, _08113C70 @ =0x020158c4\n\
+ ldr r5, _08113C70 @ =gSharedMem + 0x158C4\n\
adds r0, r1, r5\n\
strb r2, [r0]\n\
mov r5, r10\n\
@@ -1573,7 +1571,7 @@ _08113B9C:\n\
mov r5, r8\n\
adds r0, r1, r5\n\
strb r2, [r0]\n\
- ldr r5, _08113C74 @ =0x020170c4\n\
+ ldr r5, _08113C74 @ =gSharedMem + 0x170C4\n\
adds r0, r1, r5\n\
strb r2, [r0]\n\
adds r7, r3, 0\n\
@@ -1654,7 +1652,7 @@ _08113C4A:\n\
asrs r0, r6, 1\n\
lsls r0, 2\n\
add r0, r10\n\
- ldr r1, _08113C98 @ =0x020188c4\n\
+ ldr r1, _08113C98 @ =gSharedMem + 0x188C4\n\
adds r0, r1\n\
str r2, [r0]\n\
cmp r3, 0\n\
@@ -1663,12 +1661,12 @@ _08113C4A:\n\
beq _08113CC6\n\
b _08113CF4\n\
.align 2, 0\n\
-_08113C60: .4byte 0x02014800\n\
+_08113C60: .4byte gSharedMem + 0x14800\n\
_08113C64: .4byte 0x000018c4\n\
_08113C68: .4byte 0x000020c4\n\
-_08113C6C: .4byte 0x02014844\n\
-_08113C70: .4byte 0x020158c4\n\
-_08113C74: .4byte 0x020170c4\n\
+_08113C6C: .4byte gSharedMem + 0x14844\n\
+_08113C70: .4byte gSharedMem + 0x158C4\n\
+_08113C74: .4byte gSharedMem + 0x170C4\n\
_08113C78: .4byte 0x000008c4\n\
_08113C7C: .4byte 0x000030c4\n\
_08113C80: .4byte 0x000038c4\n\
@@ -1677,7 +1675,7 @@ _08113C88: .4byte 0x000070c4\n\
_08113C8C: .4byte 0x000080c4\n\
_08113C90: .4byte 0x000090c4\n\
_08113C94: .4byte 0x0000a0c4\n\
-_08113C98: .4byte 0x020188c4\n\
+_08113C98: .4byte gSharedMem + 0x188C4\n\
_08113C9C:\n\
movs r0, 0x1\n\
ands r0, r6\n\
@@ -1784,7 +1782,7 @@ _08113D4A:\n\
mov r8, r2\n\
movs r3, 0\n\
str r3, [sp, 0x8]\n\
- ldr r0, _08113D84 @ =0x02014844\n\
+ ldr r0, _08113D84 @ =gSharedMem + 0x14844\n\
movs r4, 0x82\n\
lsls r4, 6\n\
adds r4, r0\n\
@@ -1811,7 +1809,7 @@ _08113D78:\n\
beq _08113DB4\n\
b _08113DE4\n\
.align 2, 0\n\
-_08113D84: .4byte 0x02014844\n\
+_08113D84: .4byte gSharedMem + 0x14844\n\
_08113D88:\n\
adds r0, r6, 0\n\
mov r1, r9\n\
@@ -1917,9 +1915,9 @@ _08113E28:\n\
str r1, [sp, 0x8]\n\
_08113E3A:\n\
ldr r3, [sp, 0x8]\n\
- ldr r4, _08113EBC @ =0x02014804\n\
+ ldr r4, _08113EBC @ =gSharedMem + 0x14804\n\
adds r2, r3, r4\n\
- ldr r5, _08113EC0 @ =0x02014844\n\
+ ldr r5, _08113EC0 @ =gSharedMem + 0x14844\n\
adds r1, r3, r5\n\
ldrb r0, [r2]\n\
adds r3, 0x1\n\
@@ -1934,7 +1932,7 @@ _08113E52:\n\
ldrb r2, [r2]\n\
cmp r0, r2\n\
bge _08113F54\n\
- ldr r0, _08113EC4 @ =0x02014800\n\
+ ldr r0, _08113EC4 @ =gSharedMem + 0x14800\n\
adds r0, 0x4\n\
ldr r1, [sp, 0x8]\n\
adds r0, r1, r0\n\
@@ -1945,7 +1943,7 @@ _08113E66:\n\
str r2, [sp, 0x14]\n\
movs r6, 0\n\
ldr r3, [sp, 0x8]\n\
- ldr r4, _08113EC0 @ =0x02014844\n\
+ ldr r4, _08113EC0 @ =gSharedMem + 0x14844\n\
adds r0, r3, r4\n\
ldr r5, [sp, 0xC]\n\
adds r5, 0x1\n\
@@ -1953,18 +1951,18 @@ _08113E66:\n\
ldrb r0, [r0]\n\
cmp r6, r0\n\
bge _08113F3E\n\
- ldr r0, _08113EC4 @ =0x02014800\n\
+ ldr r0, _08113EC4 @ =gSharedMem + 0x14800\n\
mov r10, r0\n\
lsls r0, r3, 5\n\
ldr r2, [sp, 0xC]\n\
adds r1, r2, r0\n\
mov r9, r0\n\
- ldr r0, _08113EC4 @ =0x02014800\n\
+ ldr r0, _08113EC4 @ =gSharedMem + 0x14800\n\
adds r0, 0xC4\n\
mov r3, r9\n\
adds r7, r3, r0\n\
mov r5, r9\n\
- ldr r4, _08113EC4 @ =0x02014800\n\
+ ldr r4, _08113EC4 @ =gSharedMem + 0x14800\n\
ldr r2, _08113EC8 @ =0x000010c4\n\
adds r0, r4, r2\n\
adds r1, r0\n\
@@ -1984,9 +1982,9 @@ _08113EA4:\n\
ldrb r0, [r0]\n\
b _08113ED6\n\
.align 2, 0\n\
-_08113EBC: .4byte 0x02014804\n\
-_08113EC0: .4byte 0x02014844\n\
-_08113EC4: .4byte 0x02014800\n\
+_08113EBC: .4byte gSharedMem + 0x14804\n\
+_08113EC0: .4byte gSharedMem + 0x14844\n\
+_08113EC4: .4byte gSharedMem + 0x14800\n\
_08113EC8: .4byte 0x000010c4\n\
_08113ECC: .4byte 0x000020c4\n\
_08113ED0:\n\
@@ -2004,7 +2002,7 @@ _08113ED6:\n\
add r0, r10\n\
adds r2, r5, r0\n\
ldrb r0, [r4]\n\
- ldr r1, _08113F04 @ =0x02014800\n\
+ ldr r1, _08113F04 @ =gSharedMem + 0x14800\n\
mov r12, r1\n\
ldrb r1, [r2]\n\
cmp r0, r1\n\
@@ -2015,7 +2013,7 @@ _08113ED6:\n\
.align 2, 0\n\
_08113EFC: .4byte 0x000018c4\n\
_08113F00: .4byte 0x000028c4\n\
-_08113F04: .4byte 0x02014800\n\
+_08113F04: .4byte gSharedMem + 0x14800\n\
_08113F08:\n\
ldrb r1, [r2]\n\
ldrb r0, [r4]\n\
@@ -2041,7 +2039,7 @@ _08113F2C:\n\
adds r5, 0x1\n\
adds r6, 0x1\n\
ldr r3, [sp, 0x8]\n\
- ldr r4, _08114054 @ =0x02014844\n\
+ ldr r4, _08114054 @ =gSharedMem + 0x14844\n\
adds r0, r3, r4\n\
ldrb r0, [r0]\n\
cmp r6, r0\n\
@@ -2059,9 +2057,9 @@ _08113F3E:\n\
blt _08113E66\n\
_08113F54:\n\
movs r6, 0\n\
- ldr r2, _08114058 @ =0x02014800\n\
+ ldr r2, _08114058 @ =gSharedMem + 0x14800\n\
ldr r1, [sp, 0x8]\n\
- ldr r3, _08114054 @ =0x02014844\n\
+ ldr r3, _08114054 @ =gSharedMem + 0x14844\n\
adds r0, r1, r3\n\
adds r4, r2, 0\n\
mov r12, r4\n\
@@ -2092,15 +2090,15 @@ _08113F6E:\n\
bl sub_811430C\n\
_08113F94:\n\
adds r6, 0x1\n\
- ldr r2, _08114058 @ =0x02014800\n\
+ ldr r2, _08114058 @ =gSharedMem + 0x14800\n\
ldrb r5, [r4]\n\
cmp r6, r5\n\
blt _08113F6E\n\
_08113F9E:\n\
ldr r0, [sp, 0x8]\n\
- ldr r1, _0811405C @ =0x02014804\n\
+ ldr r1, _0811405C @ =gSharedMem + 0x14804\n\
adds r2, r0, r1\n\
- ldr r3, _08114054 @ =0x02014844\n\
+ ldr r3, _08114054 @ =gSharedMem + 0x14844\n\
adds r1, r0, r3\n\
ldrb r0, [r2]\n\
ldrb r1, [r1]\n\
@@ -2122,12 +2120,12 @@ _08113FBA:\n\
blt _08113FBA\n\
_08113FCC:\n\
ldr r0, [sp, 0x8]\n\
- ldr r1, _0811405C @ =0x02014804\n\
+ ldr r1, _0811405C @ =gSharedMem + 0x14804\n\
adds r2, r0, r1\n\
- ldr r3, _08114054 @ =0x02014844\n\
+ ldr r3, _08114054 @ =gSharedMem + 0x14844\n\
adds r1, r0, r3\n\
ldrb r0, [r2]\n\
- ldr r4, _08114058 @ =0x02014800\n\
+ ldr r4, _08114058 @ =gSharedMem + 0x14800\n\
ldrb r5, [r1]\n\
cmp r0, r5\n\
bhi _08113FE2\n\
@@ -2167,16 +2165,16 @@ _08114004:\n\
ldr r2, [sp, 0x24]\n\
adds r1, r2\n\
mov r10, r1\n\
- ldr r0, _08114058 @ =0x02014800\n\
+ ldr r0, _08114058 @ =gSharedMem + 0x14800\n\
adds r0, 0xC4\n\
adds r2, r0\n\
mov r8, r2\n\
ldr r7, [sp, 0x24]\n\
- ldr r3, _08114058 @ =0x02014800\n\
+ ldr r3, _08114058 @ =gSharedMem + 0x14800\n\
ldr r4, _08114060 @ =0x000010c4\n\
adds r0, r3, r4\n\
adds r5, r7, r0\n\
- ldr r0, _08114064 @ =0x020168c4\n\
+ ldr r0, _08114064 @ =gSharedMem + 0x168C4\n\
add r0, r10\n\
mov r12, r0\n\
ldrb r1, [r0]\n\
@@ -2192,22 +2190,22 @@ _0811403E:\n\
b _0811406E\n\
.align 2, 0\n\
_08114050: .4byte 0x000008c4\n\
-_08114054: .4byte 0x02014844\n\
-_08114058: .4byte 0x02014800\n\
-_0811405C: .4byte 0x02014804\n\
+_08114054: .4byte gSharedMem + 0x14844\n\
+_08114058: .4byte gSharedMem + 0x14800\n\
+_0811405C: .4byte gSharedMem + 0x14804\n\
_08114060: .4byte 0x000010c4\n\
-_08114064: .4byte 0x020168c4\n\
+_08114064: .4byte gSharedMem + 0x168C4\n\
_08114068:\n\
mov r4, r12\n\
ldrb r1, [r4]\n\
ldrb r0, [r5]\n\
_0811406E:\n\
subs r3, r1, r0\n\
- ldr r1, _0811408C @ =0x02014800\n\
+ ldr r1, _0811408C @ =gSharedMem + 0x14800\n\
ldr r2, _08114090 @ =0x000018c4\n\
adds r0, r1, r2\n\
adds r4, r7, r0\n\
- ldr r2, _08114094 @ =0x020170c4\n\
+ ldr r2, _08114094 @ =gSharedMem + 0x170C4\n\
add r2, r10\n\
ldrb r0, [r4]\n\
ldrb r1, [r2]\n\
@@ -2217,9 +2215,9 @@ _0811406E:\n\
ldrb r0, [r2]\n\
b _0811409C\n\
.align 2, 0\n\
-_0811408C: .4byte 0x02014800\n\
+_0811408C: .4byte gSharedMem + 0x14800\n\
_08114090: .4byte 0x000018c4\n\
-_08114094: .4byte 0x020170c4\n\
+_08114094: .4byte gSharedMem + 0x170C4\n\
_08114098:\n\
ldrb r1, [r2]\n\
ldrb r0, [r4]\n\
@@ -2248,25 +2246,25 @@ _081140B2:\n\
_081140C4:\n\
ldr r3, [sp, 0xC]\n\
add r3, r9\n\
- ldr r2, _08114164 @ =0x02014800\n\
+ ldr r2, _08114164 @ =gSharedMem + 0x14800\n\
ldr r4, _08114168 @ =0x000030c4\n\
adds r1, r2, r4\n\
adds r1, r3, r1\n\
ldr r2, [sp, 0x10]\n\
add r2, r9\n\
- ldr r5, _0811416C @ =0x020168c4\n\
+ ldr r5, _0811416C @ =gSharedMem + 0x168C4\n\
adds r0, r2, r5\n\
ldrb r0, [r0]\n\
strb r0, [r1]\n\
- ldr r0, _08114164 @ =0x02014800\n\
+ ldr r0, _08114164 @ =gSharedMem + 0x14800\n\
ldr r4, _08114170 @ =0x000038c4\n\
adds r1, r0, r4\n\
adds r1, r3, r1\n\
- ldr r5, _08114174 @ =0x020170c4\n\
+ ldr r5, _08114174 @ =gSharedMem + 0x170C4\n\
adds r2, r5\n\
ldrb r0, [r2]\n\
strb r0, [r1]\n\
- ldr r0, _08114164 @ =0x02014800\n\
+ ldr r0, _08114164 @ =gSharedMem + 0x14800\n\
adds r0, 0xC4\n\
adds r3, r0\n\
movs r0, 0x1\n\
@@ -2280,9 +2278,9 @@ _081140C4:\n\
b _08114004\n\
_08114104:\n\
movs r6, 0\n\
- ldr r4, _08114164 @ =0x02014800\n\
+ ldr r4, _08114164 @ =gSharedMem + 0x14800\n\
ldr r2, [sp, 0x8]\n\
- ldr r3, _08114178 @ =0x02014804\n\
+ ldr r3, _08114178 @ =gSharedMem + 0x14804\n\
adds r0, r2, r3\n\
ldrb r0, [r0]\n\
cmp r6, r0\n\
@@ -2327,12 +2325,12 @@ _0811411E:\n\
bl sub_81141F0\n\
b _081141B4\n\
.align 2, 0\n\
-_08114164: .4byte 0x02014800\n\
+_08114164: .4byte gSharedMem + 0x14800\n\
_08114168: .4byte 0x000030c4\n\
-_0811416C: .4byte 0x020168c4\n\
+_0811416C: .4byte gSharedMem + 0x168C4\n\
_08114170: .4byte 0x000038c4\n\
-_08114174: .4byte 0x020170c4\n\
-_08114178: .4byte 0x02014804\n\
+_08114174: .4byte gSharedMem + 0x170C4\n\
+_08114178: .4byte gSharedMem + 0x14804\n\
_0811417C: .4byte 0x000020c4\n\
_08114180: .4byte 0x000028c4\n\
_08114184:\n\
@@ -2361,9 +2359,9 @@ _08114184:\n\
bl sub_81141F0\n\
_081141B4:\n\
adds r6, 0x1\n\
- ldr r4, _081141E8 @ =0x02014800\n\
+ ldr r4, _081141E8 @ =gSharedMem + 0x14800\n\
ldr r1, [sp, 0x8]\n\
- ldr r2, _081141EC @ =0x02014804\n\
+ ldr r2, _081141EC @ =gSharedMem + 0x14804\n\
adds r0, r1, r2\n\
ldrb r0, [r0]\n\
cmp r6, r0\n\
@@ -2386,8 +2384,8 @@ _081141CE:\n\
.align 2, 0\n\
_081141E0: .4byte 0x000010c4\n\
_081141E4: .4byte 0x000018c4\n\
-_081141E8: .4byte 0x02014800\n\
-_081141EC: .4byte 0x02014804\n\
+_081141E8: .4byte gSharedMem + 0x14800\n\
+_081141EC: .4byte gSharedMem + 0x14804\n\
.syntax divided");
}
@@ -2455,7 +2453,7 @@ void unref_sub_81143CC()
sub sp, 0x14\n\
movs r0, 0x1\n\
str r0, [sp, 0x4]\n\
- ldr r0, _08114408 @ =0x02014800\n\
+ ldr r0, _08114408 @ =gSharedMem + 0x14800\n\
ldr r2, _0811440C @ =0x0000a0c4\n\
adds r1, r0, r2\n\
ldrb r3, [r1]\n\
@@ -2478,7 +2476,7 @@ _081143F2:\n\
str r1, [sp, 0x8]\n\
bl _08114D84\n\
.align 2, 0\n\
-_08114408: .4byte 0x02014800\n\
+_08114408: .4byte gSharedMem + 0x14800\n\
_0811440C: .4byte 0x0000a0c4\n\
_08114410:\n\
ldr r5, [sp]\n\
@@ -2585,7 +2583,7 @@ _081144EC: .4byte 0x000020c4\n\
_081144F0:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r4, _08114568 @ =0x02014800\n\
+ ldr r4, _08114568 @ =gSharedMem + 0x14800\n\
lsls r0, r3, 1\n\
ldr r5, [sp]\n\
lsls r1, r5, 6\n\
@@ -2645,7 +2643,7 @@ _08114548:\n\
blt _0811453E\n\
b _081148D2\n\
.align 2, 0\n\
-_08114568: .4byte 0x02014800\n\
+_08114568: .4byte gSharedMem + 0x14800\n\
_0811456C: .4byte 0x000060c4\n\
_08114570: .4byte 0x000080c4\n\
_08114574: .4byte 0x000030c4\n\
@@ -2719,7 +2717,7 @@ _081145FC: .4byte 0x000020c4\n\
_08114600:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r4, _08114678 @ =0x02014800\n\
+ ldr r4, _08114678 @ =gSharedMem + 0x14800\n\
lsls r0, r3, 1\n\
ldr r5, [sp]\n\
lsls r1, r5, 6\n\
@@ -2779,7 +2777,7 @@ _08114658:\n\
blt _0811464E\n\
b _081148D2\n\
.align 2, 0\n\
-_08114678: .4byte 0x02014800\n\
+_08114678: .4byte gSharedMem + 0x14800\n\
_0811467C: .4byte 0x000060c4\n\
_08114680: .4byte 0x000080c4\n\
_08114684: .4byte 0x000030c4\n\
@@ -2787,7 +2785,7 @@ _08114688: .4byte 0x000020c4\n\
_0811468C:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r5, _081146C0 @ =0x02014800\n\
+ ldr r5, _081146C0 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r4, r3, r0\n\
ldr r1, _081146C4 @ =0x000030c4\n\
@@ -2812,12 +2810,12 @@ _081146B4:\n\
strb r1, [r0]\n\
b _081148D2\n\
.align 2, 0\n\
-_081146C0: .4byte 0x02014800\n\
+_081146C0: .4byte gSharedMem + 0x14800\n\
_081146C4: .4byte 0x000030c4\n\
_081146C8:\n\
movs r4, 0\n\
str r4, [sp, 0x4]\n\
- ldr r5, _081146FC @ =0x02014800\n\
+ ldr r5, _081146FC @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r4, r3, r0\n\
ldr r1, _08114700 @ =0x000030c4\n\
@@ -2842,12 +2840,12 @@ _081146F0:\n\
strb r1, [r0]\n\
b _081148D2\n\
.align 2, 0\n\
-_081146FC: .4byte 0x02014800\n\
+_081146FC: .4byte gSharedMem + 0x14800\n\
_08114700: .4byte 0x000030c4\n\
_08114704:\n\
movs r4, 0\n\
str r4, [sp, 0x4]\n\
- ldr r5, _08114738 @ =0x02014800\n\
+ ldr r5, _08114738 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r4, r3, r0\n\
ldr r1, _0811473C @ =0x000030c4\n\
@@ -2872,12 +2870,12 @@ _0811472C:\n\
strb r1, [r0]\n\
b _081148D2\n\
.align 2, 0\n\
-_08114738: .4byte 0x02014800\n\
+_08114738: .4byte gSharedMem + 0x14800\n\
_0811473C: .4byte 0x000030c4\n\
_08114740:\n\
movs r4, 0\n\
str r4, [sp, 0x4]\n\
- ldr r5, _08114774 @ =0x02014800\n\
+ ldr r5, _08114774 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r4, r3, r0\n\
ldr r1, _08114778 @ =0x000030c4\n\
@@ -2902,12 +2900,12 @@ _08114768:\n\
strb r1, [r0]\n\
b _081148D2\n\
.align 2, 0\n\
-_08114774: .4byte 0x02014800\n\
+_08114774: .4byte gSharedMem + 0x14800\n\
_08114778: .4byte 0x000030c4\n\
_0811477C:\n\
movs r4, 0\n\
str r4, [sp, 0x4]\n\
- ldr r6, _081147B4 @ =0x02014800\n\
+ ldr r6, _081147B4 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r5, r3, r0\n\
ldr r1, _081147B8 @ =0x000030c4\n\
@@ -2933,7 +2931,7 @@ _0811477C:\n\
strb r4, [r0]\n\
b _08114844\n\
.align 2, 0\n\
-_081147B4: .4byte 0x02014800\n\
+_081147B4: .4byte gSharedMem + 0x14800\n\
_081147B8: .4byte 0x000030c4\n\
_081147BC: .4byte 0x000020c4\n\
_081147C0:\n\
@@ -2948,7 +2946,7 @@ _081147C0:\n\
_081147D0:\n\
movs r1, 0\n\
str r1, [sp, 0x4]\n\
- ldr r6, _08114804 @ =0x02014800\n\
+ ldr r6, _08114804 @ =gSharedMem + 0x14800\n\
mov r2, r8\n\
adds r5, r3, r2\n\
ldr r0, _08114808 @ =0x000030c4\n\
@@ -2972,13 +2970,13 @@ _081147D0:\n\
movs r1, 0x2\n\
b _08114842\n\
.align 2, 0\n\
-_08114804: .4byte 0x02014800\n\
+_08114804: .4byte gSharedMem + 0x14800\n\
_08114808: .4byte 0x000030c4\n\
_0811480C: .4byte 0x000020c4\n\
_08114810:\n\
movs r0, 0\n\
str r0, [sp, 0x4]\n\
- ldr r6, _0811484C @ =0x02014800\n\
+ ldr r6, _0811484C @ =gSharedMem + 0x14800\n\
mov r1, r8\n\
adds r5, r3, r1\n\
ldr r2, _08114850 @ =0x000030c4\n\
@@ -3007,13 +3005,13 @@ _08114844:\n\
mov r10, r5\n\
b _081148D2\n\
.align 2, 0\n\
-_0811484C: .4byte 0x02014800\n\
+_0811484C: .4byte gSharedMem + 0x14800\n\
_08114850: .4byte 0x000030c4\n\
_08114854: .4byte 0x000020c4\n\
_08114858:\n\
movs r0, 0\n\
str r0, [sp, 0x4]\n\
- ldr r6, _08114894 @ =0x02014800\n\
+ ldr r6, _08114894 @ =gSharedMem + 0x14800\n\
mov r1, r8\n\
adds r5, r3, r1\n\
ldr r2, _08114898 @ =0x000030c4\n\
@@ -3042,7 +3040,7 @@ _08114882:\n\
mov r10, r4\n\
b _081148D2\n\
.align 2, 0\n\
-_08114894: .4byte 0x02014800\n\
+_08114894: .4byte gSharedMem + 0x14800\n\
_08114898: .4byte 0x000030c4\n\
_0811489C: .4byte 0x000020c4\n\
_081148A0:\n\
@@ -3075,7 +3073,7 @@ _081148C4:\n\
adds r2, r3, 0x1\n\
mov r10, r2\n\
_081148D2:\n\
- ldr r0, _081148F4 @ =0x02014800\n\
+ ldr r0, _081148F4 @ =gSharedMem + 0x14800\n\
mov r4, r8\n\
adds r1, r3, r4\n\
ldr r5, _081148F8 @ =0x000008c4\n\
@@ -3093,7 +3091,7 @@ _081148E8:\n\
ldr r0, [r0]\n\
mov pc, r0\n\
.align 2, 0\n\
-_081148F4: .4byte 0x02014800\n\
+_081148F4: .4byte gSharedMem + 0x14800\n\
_081148F8: .4byte 0x000008c4\n\
_081148FC: .4byte _08114900\n\
.align 2, 0\n\
@@ -3179,7 +3177,7 @@ _081149B4: .4byte 0x000028c4\n\
_081149B8:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r4, _08114A28 @ =0x02014800\n\
+ ldr r4, _08114A28 @ =gSharedMem + 0x14800\n\
lsls r0, r3, 1\n\
ldr r5, [sp]\n\
lsls r1, r5, 6\n\
@@ -3235,7 +3233,7 @@ _08114A0C:\n\
blt _08114A02\n\
b _08114D76\n\
.align 2, 0\n\
-_08114A28: .4byte 0x02014800\n\
+_08114A28: .4byte gSharedMem + 0x14800\n\
_08114A2C: .4byte 0x000070c4\n\
_08114A30: .4byte 0x000090c4\n\
_08114A34: .4byte 0x000038c4\n\
@@ -3308,7 +3306,7 @@ _08114ABC: .4byte 0x000028c4\n\
_08114AC0:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r4, _08114B30 @ =0x02014800\n\
+ ldr r4, _08114B30 @ =gSharedMem + 0x14800\n\
lsls r0, r3, 1\n\
ldr r5, [sp]\n\
lsls r1, r5, 6\n\
@@ -3364,7 +3362,7 @@ _08114B14:\n\
blt _08114B0A\n\
b _08114D76\n\
.align 2, 0\n\
-_08114B30: .4byte 0x02014800\n\
+_08114B30: .4byte gSharedMem + 0x14800\n\
_08114B34: .4byte 0x000070c4\n\
_08114B38: .4byte 0x000090c4\n\
_08114B3C: .4byte 0x000038c4\n\
@@ -3372,7 +3370,7 @@ _08114B40: .4byte 0x000028c4\n\
_08114B44:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r5, _08114B70 @ =0x02014800\n\
+ ldr r5, _08114B70 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r4, r3, r0\n\
ldr r1, _08114B74 @ =0x000038c4\n\
@@ -3392,13 +3390,13 @@ _08114B64:\n\
movs r1, 0x9\n\
b _08114D74\n\
.align 2, 0\n\
-_08114B70: .4byte 0x02014800\n\
+_08114B70: .4byte gSharedMem + 0x14800\n\
_08114B74: .4byte 0x000038c4\n\
_08114B78: .4byte 0x000008c4\n\
_08114B7C:\n\
movs r4, 0\n\
str r4, [sp, 0x4]\n\
- ldr r5, _08114BA8 @ =0x02014800\n\
+ ldr r5, _08114BA8 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r4, r3, r0\n\
ldr r1, _08114BAC @ =0x000038c4\n\
@@ -3418,13 +3416,13 @@ _08114B9C:\n\
movs r1, 0xA\n\
b _08114D74\n\
.align 2, 0\n\
-_08114BA8: .4byte 0x02014800\n\
+_08114BA8: .4byte gSharedMem + 0x14800\n\
_08114BAC: .4byte 0x000038c4\n\
_08114BB0: .4byte 0x000008c4\n\
_08114BB4:\n\
movs r4, 0\n\
str r4, [sp, 0x4]\n\
- ldr r5, _08114BE0 @ =0x02014800\n\
+ ldr r5, _08114BE0 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r4, r3, r0\n\
ldr r1, _08114BE4 @ =0x000038c4\n\
@@ -3444,13 +3442,13 @@ _08114BD4:\n\
movs r1, 0xB\n\
b _08114D74\n\
.align 2, 0\n\
-_08114BE0: .4byte 0x02014800\n\
+_08114BE0: .4byte gSharedMem + 0x14800\n\
_08114BE4: .4byte 0x000038c4\n\
_08114BE8: .4byte 0x000008c4\n\
_08114BEC:\n\
movs r4, 0\n\
str r4, [sp, 0x4]\n\
- ldr r5, _08114C18 @ =0x02014800\n\
+ ldr r5, _08114C18 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r4, r3, r0\n\
ldr r1, _08114C1C @ =0x000038c4\n\
@@ -3470,13 +3468,13 @@ _08114C0C:\n\
movs r1, 0xC\n\
b _08114D74\n\
.align 2, 0\n\
-_08114C18: .4byte 0x02014800\n\
+_08114C18: .4byte gSharedMem + 0x14800\n\
_08114C1C: .4byte 0x000038c4\n\
_08114C20: .4byte 0x000008c4\n\
_08114C24:\n\
movs r4, 0\n\
str r4, [sp, 0x4]\n\
- ldr r6, _08114C58 @ =0x02014800\n\
+ ldr r6, _08114C58 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r5, r3, r0\n\
ldr r1, _08114C5C @ =0x000038c4\n\
@@ -3500,7 +3498,7 @@ _08114C24:\n\
strb r5, [r0]\n\
b _08114D76\n\
.align 2, 0\n\
-_08114C58: .4byte 0x02014800\n\
+_08114C58: .4byte gSharedMem + 0x14800\n\
_08114C5C: .4byte 0x000038c4\n\
_08114C60: .4byte 0x000028c4\n\
_08114C64: .4byte 0x000008c4\n\
@@ -3515,7 +3513,7 @@ _08114C74: .4byte 0x000008c4\n\
_08114C78:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r6, _08114CA8 @ =0x02014800\n\
+ ldr r6, _08114CA8 @ =gSharedMem + 0x14800\n\
mov r4, r8\n\
adds r5, r3, r4\n\
ldr r0, _08114CAC @ =0x000038c4\n\
@@ -3537,14 +3535,14 @@ _08114C78:\n\
movs r1, 0x2\n\
b _08114D74\n\
.align 2, 0\n\
-_08114CA8: .4byte 0x02014800\n\
+_08114CA8: .4byte gSharedMem + 0x14800\n\
_08114CAC: .4byte 0x000038c4\n\
_08114CB0: .4byte 0x000028c4\n\
_08114CB4: .4byte 0x000008c4\n\
_08114CB8:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r6, _08114CE8 @ =0x02014800\n\
+ ldr r6, _08114CE8 @ =gSharedMem + 0x14800\n\
mov r4, r8\n\
adds r5, r3, r4\n\
ldr r0, _08114CEC @ =0x000038c4\n\
@@ -3566,14 +3564,14 @@ _08114CB8:\n\
movs r1, 0x3\n\
b _08114D74\n\
.align 2, 0\n\
-_08114CE8: .4byte 0x02014800\n\
+_08114CE8: .4byte gSharedMem + 0x14800\n\
_08114CEC: .4byte 0x000038c4\n\
_08114CF0: .4byte 0x000028c4\n\
_08114CF4: .4byte 0x000008c4\n\
_08114CF8:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r6, _08114D2C @ =0x02014800\n\
+ ldr r6, _08114D2C @ =gSharedMem + 0x14800\n\
mov r4, r8\n\
adds r5, r3, r4\n\
ldr r0, _08114D30 @ =0x000038c4\n\
@@ -3598,7 +3596,7 @@ _08114D1E:\n\
strb r4, [r0]\n\
b _08114D76\n\
.align 2, 0\n\
-_08114D2C: .4byte 0x02014800\n\
+_08114D2C: .4byte gSharedMem + 0x14800\n\
_08114D30: .4byte 0x000038c4\n\
_08114D34: .4byte 0x000028c4\n\
_08114D38: .4byte 0x000008c4\n\
@@ -3635,7 +3633,7 @@ _08114D74:\n\
strb r1, [r0]\n\
_08114D76:\n\
mov r3, r10\n\
- ldr r2, _08114DB0 @ =0x02014800\n\
+ ldr r2, _08114DB0 @ =gSharedMem + 0x14800\n\
adds r0, r2, 0\n\
adds r0, 0x84\n\
ldr r4, [sp]\n\
@@ -3664,7 +3662,7 @@ _08114D9A:\n\
bx r1\n\
.align 2, 0\n\
_08114DAC: .4byte 0x000008c4\n\
-_08114DB0: .4byte 0x02014800\n\
+_08114DB0: .4byte gSharedMem + 0x14800\n\
.syntax divided");
}
@@ -3703,7 +3701,7 @@ void sub_8114E48()
adds r4, r0, 0\n\
lsls r1, 24\n\
lsrs r6, r1, 24\n\
- ldr r1, _08114E6C @ =0x02014800\n\
+ ldr r1, _08114E6C @ =gSharedMem + 0x14800\n\
ldr r2, _08114E70 @ =0x0000a0c4\n\
adds r0, r1, r2\n\
ldrb r0, [r0]\n\
@@ -3719,7 +3717,7 @@ _08114E60:\n\
movs r1, 0x1\n\
b _08114EA6\n\
.align 2, 0\n\
-_08114E6C: .4byte 0x02014800\n\
+_08114E6C: .4byte gSharedMem + 0x14800\n\
_08114E70: .4byte 0x0000a0c4\n\
_08114E74:\n\
subs r0, r4, 0x1\n\
@@ -3831,7 +3829,7 @@ _08114F26:\n\
beq _08114F7C\n\
subs r0, r4, 0x1\n\
lsls r5, r0, 7\n\
- ldr r0, _08114F68 @ =0x020188c4\n\
+ ldr r0, _08114F68 @ =gSharedMem + 0x188C4\n\
mov r12, r0\n\
_08114F42:\n\
asrs r0, r3, 1\n\
@@ -3854,7 +3852,7 @@ _08114F5E:\n\
b _08114FCA\n\
.align 2, 0\n\
_08114F64: .4byte 0x000008c4\n\
-_08114F68: .4byte 0x020188c4\n\
+_08114F68: .4byte gSharedMem + 0x188C4\n\
_08114F6C:\n\
ldrb r1, [r1]\n\
movs r0, 0xF\n\
@@ -3874,7 +3872,7 @@ _08114F7C:\n\
beq _08114FC8\n\
adds r0, r4, 0x1\n\
lsls r5, r0, 7\n\
- ldr r6, _08114FB0 @ =0x020188c4\n\
+ ldr r6, _08114FB0 @ =gSharedMem + 0x188C4\n\
adds r2, r1, 0\n\
_08114F90:\n\
asrs r0, r3, 1\n\
@@ -3893,7 +3891,7 @@ _08114F90:\n\
beq _08114FBE\n\
b _08114F5E\n\
.align 2, 0\n\
-_08114FB0: .4byte 0x020188c4\n\
+_08114FB0: .4byte gSharedMem + 0x188C4\n\
_08114FB4:\n\
ldrb r1, [r1]\n\
movs r0, 0xF\n\
diff --git a/src/scene/hall_of_fame.c b/src/scene/hall_of_fame.c
index 6f7df576b..1751ee99c 100644
--- a/src/scene/hall_of_fame.c
+++ b/src/scene/hall_of_fame.c
@@ -3,24 +3,24 @@
#include "task.h"
#include "palette.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "pokemon.h"
#include "text.h"
#include "strings.h"
#include "string_util.h"
#include "menu.h"
#include "save.h"
-#include "species.h"
+#include "constants/species.h"
#include "overworld.h"
#include "m4a.h"
#include "data2.h"
#include "decompress.h"
-#include "rng.h"
+#include "random.h"
#include "trig.h"
+#include "ewram.h"
static EWRAM_DATA u32 sUnknown_0203931C = 0;
-extern u8 ewram[];
extern bool8 gUnknown_02039324; // has hall of fame records
extern void (*gGameContinueCallback)(void);
extern struct MusicPlayerInfo gMPlay_BGM;
@@ -156,69 +156,69 @@ static const struct OamData sOamData_840B598 =
void* const gUnknown_0840B5A0[] =
{
- &ewram[0x08000],
- &ewram[0x0A000],
- &ewram[0x0C000],
- &ewram[0x0E000],
- &ewram[0x10000],
- &ewram[0x14000],
- &ewram[0x18000]
+ ewram8000,
+ ewramA000,
+ ewramC000,
+ ewramE000,
+ ewram10000,
+ ewram14000,
+ ewram18000_2
};
static const struct SpriteFrameImage sSpriteImageTable_840B5BC[] =
{
- {&ewram[0x8000], 0x800},
- {&ewram[0x8800], 0x800},
- {&ewram[0x9000], 0x800},
- {&ewram[0x9800], 0x800}
+ {ewram8000, 0x800},
+ {ewram8800, 0x800},
+ {ewram9000, 0x800},
+ {ewram9800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B5DC[] =
{
- {&ewram[0xA000], 0x800},
- {&ewram[0xA800], 0x800},
- {&ewram[0xB000], 0x800},
- {&ewram[0xB800], 0x800}
+ {ewramA000, 0x800},
+ {ewramA800, 0x800},
+ {ewramB000, 0x800},
+ {ewramB800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B5FC[] =
{
- {&ewram[0xC000], 0x800},
- {&ewram[0xC800], 0x800},
- {&ewram[0xD000], 0x800},
- {&ewram[0xD800], 0x800}
+ {ewramC000, 0x800},
+ {ewramC800, 0x800},
+ {ewramD000, 0x800},
+ {ewramD800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B61C[] =
{
- {&ewram[0xE000], 0x800},
- {&ewram[0xE800], 0x800},
- {&ewram[0xF000], 0x800},
- {&ewram[0xF800], 0x800}
+ {ewramE000, 0x800},
+ {ewramE800, 0x800},
+ {ewramF000, 0x800},
+ {ewramF800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B63C[] =
{
- {&ewram[0x10000], 0x800},
- {&ewram[0x10800], 0x800},
- {&ewram[0x11000], 0x800},
- {&ewram[0x11800], 0x800}
+ {ewram10000, 0x800},
+ {ewram10800, 0x800},
+ {ewram11000, 0x800},
+ {ewram11800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B65C[] =
{
- {&ewram[0x14000], 0x800},
- {&ewram[0x14800], 0x800},
- {&ewram[0x15000], 0x800},
- {&ewram[0x15800], 0x800}
+ {ewram14000, 0x800},
+ {ewram14800, 0x800},
+ {ewram15000, 0x800},
+ {ewram15800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B67C[] =
{
- {&ewram[0x18000], 0x800},
- {&ewram[0x18800], 0x800},
- {&ewram[0x19000], 0x800},
- {&ewram[0x19800], 0x800}
+ {ewram18000_2, 0x800},
+ {ewram18800, 0x800},
+ {ewram19000, 0x800},
+ {ewram19800, 0x800}
};
static const struct SpriteFrameImage* const sUnknown_0840B69C[7] =
@@ -486,7 +486,7 @@ static void sub_8141FC4(void)
static void sub_8141FF8(u8 taskID)
{
u16 i, j;
- struct HallofFameMons* fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ struct HallofFameMons* fameMons = eHallOfFameMons1;
gTasks[taskID].tPokesNumber = 0; // valid pokes
for (i = 0; i < 6; i++)
@@ -530,13 +530,13 @@ static void sub_8141FF8(u8 taskID)
static void sub_814217C(u8 taskID)
{
u16 i;
- struct HallofFameMons* fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
- struct HallofFameMons* lastSavedTeam = (struct HallofFameMons*)(&ewram[0x1E000]);
+ struct HallofFameMons* fameMons = eHallOfFameMons1;
+ struct HallofFameMons* lastSavedTeam = eHallOfFameMons2;
if (gUnknown_02039324 == FALSE)
{
for (i = 0; i < 0x2000; i++)
- ewram[i + 0x1E000] = 0;
+ ewram1E000(i) = 0;
}
else
sub_8125EC8(3);
@@ -548,8 +548,8 @@ static void sub_814217C(u8 taskID)
}
if (i >= HALL_OF_FAME_MAX_TEAMS)
{
- struct HallofFameMons* r5 = (struct HallofFameMons*)(&ewram[0x1E000]);
- struct HallofFameMons* r6 = (struct HallofFameMons*)(&ewram[0x1E000]);
+ struct HallofFameMons* r5 = eHallOfFameMons2;
+ struct HallofFameMons* r6 = eHallOfFameMons2;
r5++;
for (i = 0; i < HALL_OF_FAME_MAX_TEAMS - 1; i++, r6++, r5++)
{
@@ -592,7 +592,7 @@ static void sub_8142320(u8 taskID)
u8 spriteID;
s16 xPos, yPos, field4, field6;
- struct HallofFameMons* fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ struct HallofFameMons* fameMons = eHallOfFameMons1;
u16 currPokeID = gTasks[taskID].tDisplayedPoke;
struct HallofFameMon* currMon = &fameMons->mons[currPokeID];
@@ -612,9 +612,9 @@ static void sub_8142320(u8 taskID)
}
spriteID = HallOfFame_LoadPokemonPic(currMon->species, xPos, yPos, currPokeID, currMon->tid, currMon->personality);
- gSprites[spriteID].data1 = field4;
- gSprites[spriteID].data2 = field6;
- gSprites[spriteID].data0 = 0;
+ gSprites[spriteID].data[1] = field4;
+ gSprites[spriteID].data[2] = field6;
+ gSprites[spriteID].data[0] = 0;
gSprites[spriteID].callback = sub_81435DC;
gTasks[taskID].tMonSpriteID(currPokeID) = spriteID;
MenuZeroFillWindowRect(0, 14, 29, 19);
@@ -623,11 +623,11 @@ static void sub_8142320(u8 taskID)
static void sub_8142404(u8 taskID)
{
- struct HallofFameMons* fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ struct HallofFameMons* fameMons = eHallOfFameMons1;
u16 currPokeID = gTasks[taskID].tDisplayedPoke;
struct HallofFameMon* currMon = &fameMons->mons[currPokeID];
- if (gSprites[gTasks[taskID].tMonSpriteID(currPokeID)].data0 != 0)
+ if (gSprites[gTasks[taskID].tMonSpriteID(currPokeID)].data[0] != 0)
{
if (currMon->species != SPECIES_EGG)
PlayCry1(currMon->species, 0);
@@ -639,7 +639,7 @@ static void sub_8142404(u8 taskID)
static void sub_8142484(u8 taskID)
{
- struct HallofFameMons* fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ struct HallofFameMons* fameMons = eHallOfFameMons1;
u16 currPokeID = gTasks[taskID].tDisplayedPoke;
struct HallofFameMon* currMon = &fameMons->mons[currPokeID];
@@ -808,7 +808,7 @@ void sub_81428CC(void)
REG_BLDY = 0;
sub_81435B8();
- fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ fameMons = eHallOfFameMons1;
fameMons->mons[0] = sDummyFameMon;
sub_80C5CD4(fameMons);
@@ -847,7 +847,7 @@ static void sub_8142A28(u8 taskID)
u16 *vram1, *vram2;
u16 i;
- struct HallofFameMons* savedTeams = (struct HallofFameMons*)(&ewram[0x1E000]);
+ struct HallofFameMons* savedTeams = eHallOfFameMons2;
for (i = 0; i < HALL_OF_FAME_MAX_TEAMS; i++, savedTeams++)
{
if (savedTeams->mons[0].species == 0)
@@ -872,7 +872,7 @@ static void sub_8142A28(u8 taskID)
static void sub_8142B04(u8 taskID)
{
- struct HallofFameMons* savedTeams = (struct HallofFameMons*)(&ewram[0x1E000]);
+ struct HallofFameMons* savedTeams = eHallOfFameMons2;
struct HallofFameMon* currMon;
u16 i;
u8* stringPtr;
@@ -937,7 +937,7 @@ static void sub_8142B04(u8 taskID)
static void sub_8142CC8(u8 taskID)
{
- struct HallofFameMons* savedTeams = (struct HallofFameMons*)(&ewram[0x1E000]);
+ struct HallofFameMons* savedTeams = eHallOfFameMons2;
struct HallofFameMon* currMon;
u16 i;
u16 currMonID;
@@ -1025,7 +1025,7 @@ static void sub_8142F78(u8 taskID)
struct HallofFameMons* fameMons;
CpuSet(gPlttBufferFaded, gPlttBufferUnfaded, 0x200);
- fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ fameMons = eHallOfFameMons1;
fameMons->mons[0] = sDummyFameMon;
sub_80C5E38(fameMons);
gTasks[taskID].func = sub_8142FCC;
@@ -1258,7 +1258,7 @@ static void sub_81433E0(void)
*((u16*)(VRAM + 0x3000) + i) = 2;
}
- offsetWrite4 = (u32)(&ewram[0]);
+ offsetWrite4 = ewram0_6;
size4 = 0x4000;
while (TRUE)
{
@@ -1299,22 +1299,22 @@ static void sub_81435B8(void)
static void sub_81435DC(struct Sprite* sprite)
{
u32 spritePos = *(u32*)(&sprite->pos1);
- u32 dataPos = *(u32*)(&sprite->data1);
+ u32 dataPos = *(u32*)(&sprite->data[1]);
if (spritePos != dataPos)
{
- if (sprite->pos1.x < sprite->data1)
+ if (sprite->pos1.x < sprite->data[1])
sprite->pos1.x += 15;
- if (sprite->pos1.x > sprite->data1)
+ if (sprite->pos1.x > sprite->data[1])
sprite->pos1.x -= 15;
- if (sprite->pos1.y < sprite->data2)
+ if (sprite->pos1.y < sprite->data[2])
sprite->pos1.y += 10;
- if (sprite->pos1.y > sprite->data2)
+ if (sprite->pos1.y > sprite->data[2])
sprite->pos1.y -= 10;
}
else
{
- sprite->data0 = 1;
+ sprite->data[0] = 1;
sprite->callback = SpriteCB_HallOfFame_Dummy;
}
}
@@ -1381,13 +1381,13 @@ static void sub_814386C(struct Sprite* sprite)
u8 tableID;
sprite->pos2.y++;
- sprite->pos2.y += sprite->data1;
+ sprite->pos2.y += sprite->data[1];
- tableID = sprite->data0;
+ tableID = sprite->data[0];
rand = (Random() % 4) + 8;
sprite->pos2.x = rand * gSineTable[tableID] / 256;
- sprite->data0 += 4;
+ sprite->data[0] += 4;
}
}
@@ -1405,9 +1405,9 @@ static bool8 sub_81438C4(void)
StartSpriteAnim(sprite, Random() % 17);
if (Random() & 3)
- sprite->data1 = 0;
+ sprite->data[1] = 0;
else
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 0;
}
diff --git a/src/scene/intro.c b/src/scene/intro.c
index dd7cc858c..9e334d06b 100644
--- a/src/scene/intro.c
+++ b/src/scene/intro.c
@@ -11,15 +11,16 @@
#include "main.h"
#include "new_game.h"
#include "palette.h"
-#include "rng.h"
+#include "random.h"
#include "save.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "species.h"
+#include "constants/species.h"
#include "task.h"
#include "title_screen.h"
#include "trig.h"
#include "unknown_task.h"
+#include "ewram.h"
extern struct SpriteTemplate gUnknown_02024E8C;
extern u16 gUnknown_02039358;
@@ -765,10 +766,14 @@ const struct SpritePalette gIntro3MiscPal_Table[] =
{gIntro3Misc2Palette, 2004},
{NULL},
};
-const u32 unusedData = 0x02000000;
+
+// Game Freak probably used the raw address here.
+// Treating this like a u8 * causes the compiler
+// to remove it at link time.
+const u32 unusedSharedMemPtr = (u32)gSharedMem;
static void MainCB2_EndIntro(void);
-static void Task_IntroLoadPart1Graphics(u8);
+void Task_IntroLoadPart1Graphics(u8);
static void Task_IntroFadeIn(u8);
static void Task_IntroWaterDrops(u8);
static void Task_IntroScrollDownAndShowEon(u8);
@@ -938,7 +943,7 @@ void CB2_InitCopyrightScreenAfterTitleScreen(void)
SetUpCopyrightScreen();
}
-static void Task_IntroLoadPart1Graphics(u8 taskId)
+void Task_IntroLoadPart1Graphics(u8 taskId)
{
SetVBlankCallback(NULL);
gUnknown_02039318 = Random() & 1;
@@ -990,11 +995,11 @@ static void Task_IntroWaterDrops(u8 taskId)
{
//start moving rock
if (gIntroFrameCounter == 76)
- gSprites[gTasks[taskId].data[0]].data0 = 1;
+ gSprites[gTasks[taskId].data[0]].data[0] = 1;
//drop rock
if (gIntroFrameCounter == 251)
- gSprites[gTasks[taskId].data[0]].data0 = 2;
+ gSprites[gTasks[taskId].data[0]].data[0] = 2;
if (gIntroFrameCounter == 368)
CreateWaterDrop(48, 0, 0x400, 5, 0x70, TRUE);
@@ -1129,17 +1134,17 @@ static void Task_IntroHandleBikeAndEonMovement(u8 taskId)
gTasks[taskId].func = Task_IntroWaitToSetupPart3;
}
if (gIntroFrameCounter == 1109)
- gSprites[gTasks[taskId].data[1]].data0 = 1;
+ gSprites[gTasks[taskId].data[1]].data[0] = 1;
if (gIntroFrameCounter == 1214)
- gSprites[gTasks[taskId].data[1]].data0 = 0;
+ gSprites[gTasks[taskId].data[1]].data[0] = 0;
if (gIntroFrameCounter == 1394)
- gSprites[gTasks[taskId].data[2]].data0 = 1;
+ gSprites[gTasks[taskId].data[2]].data[0] = 1;
if (gIntroFrameCounter == 1398)
- gSprites[gTasks[taskId].data[1]].data0 = 2;
+ gSprites[gTasks[taskId].data[1]].data[0] = 2;
if (gIntroFrameCounter == 1586)
- gSprites[gTasks[taskId].data[1]].data0 = 3;
+ gSprites[gTasks[taskId].data[1]].data[0] = 3;
if (gIntroFrameCounter == 1727)
- gSprites[gTasks[taskId].data[1]].data0 = 4;
+ gSprites[gTasks[taskId].data[1]].data[0] = 4;
//TODO: Clean this up
a = (((u16)gTasks[taskId].data[3] << 16) >> 18) & 0x7F;
@@ -1207,7 +1212,7 @@ static void Task_IntroWaitToSetupPart3DoubleFight(u8 taskId)
gTasks[taskId].func = Task_IntroLoadPart3Streaks;
}
-extern u8 unk_2000000[][32];
+//extern u8 gSharedMem[][32];
static void Task_IntroLoadPart3Streaks(u8 taskId)
{
@@ -1217,12 +1222,12 @@ static void Task_IntroLoadPart3Streaks(u8 taskId)
intro_reset_and_hide_bgs();
for (i = 0; i < 32; i++)
{
- unk_2000000[0][i] = 0;
- unk_2000000[1][i] = 17;
- unk_2000000[2][i] = 34;
+ ewram0arr[0][i] = 0;
+ ewram0arr[1][i] = 17;
+ ewram0arr[2][i] = 34;
}
vram = (void *)VRAM;
- DmaCopy16(3, unk_2000000, vram, 0x60);
+ DmaCopy16(3, gSharedMem, vram, 0x60);
for (i = 0; i < 0x280; i++)
((u16 *)(VRAM + 0x3000))[i] = 0xF001;
for (i = 0; i < 0x80; i++)
@@ -1309,15 +1314,15 @@ static void Task_IntroPokemonBattle(u8 taskId)
{
spriteId = sub_813CE88(SPECIES_SHARPEDO, 0xF0, 0xA0, 5, 1);
gSprites[spriteId].callback = sub_813DB9C;
- gSprites[spriteId].data1 = 1;
- gSprites[spriteId].data2 = 0;
+ gSprites[spriteId].data[1] = 1;
+ gSprites[spriteId].data[2] = 0;
}
if (gIntroFrameCounter == 152)
{
spriteId = sub_813CE88(SPECIES_DUSKULL, 0, 0xA0, 4, 1);
gSprites[spriteId].callback = sub_813DB9C;
- gSprites[spriteId].data1 = 2;
- gSprites[spriteId].data2 = 1;
+ gSprites[spriteId].data[1] = 2;
+ gSprites[spriteId].data[2] = 1;
}
if (gIntroFrameCounter == 219)
{
@@ -1329,12 +1334,12 @@ static void Task_IntroPokemonBattle(u8 taskId)
if (gIntroFrameCounter == 304)
{
gTasks[gTasks[taskId].data[15]].data[0] = 4;
- gSprites[gTasks[taskId].data[1]].data0 = 2;
+ gSprites[gTasks[taskId].data[1]].data[0] = 2;
}
if (gIntroFrameCounter == 384)
{
gTasks[gTasks[taskId].data[15]].data[0] = 0;
- gSprites[gTasks[taskId].data[1]].data0 = 4;
+ gSprites[gTasks[taskId].data[1]].data[0] = 4;
}
if (gIntroFrameCounter == 400)
{
@@ -1342,11 +1347,11 @@ static void Task_IntroPokemonBattle(u8 taskId)
}
if (gIntroFrameCounter == 432)
{
- gSprites[gTasks[taskId].data[1]].data0 = 5;
+ gSprites[gTasks[taskId].data[1]].data[0] = 5;
}
if (gIntroFrameCounter == 462)
{
- gSprites[gTasks[taskId].data[1]].data0 = 6;
+ gSprites[gTasks[taskId].data[1]].data[0] = 6;
gTasks[gTasks[taskId].data[15]].data[0] = 2;
}
if (gIntroFrameCounter == 463)
@@ -1366,8 +1371,8 @@ static void Task_IntroPokemonBattle(u8 taskId)
}
if (gIntroFrameCounter == 623)
{
- gSprites[gTasks[taskId].data[2]].data0 = 2;
- gSprites[gTasks[taskId].data[3]].data0 = 2;
+ gSprites[gTasks[taskId].data[2]].data[0] = 2;
+ gSprites[gTasks[taskId].data[3]].data[0] = 2;
gTasks[gTasks[taskId].data[15]].data[0] = 3;
}
if (gIntroFrameCounter == 624)
@@ -1388,17 +1393,17 @@ static void Task_IntroPokemonBattle(u8 taskId)
if (gIntroFrameCounter == 776)
{
gUnknown_0203931A = 1;
- gSprites[gTasks[taskId].data[4]].data0 = 2;
- gSprites[gTasks[taskId].data[5]].data0 = 2;
+ gSprites[gTasks[taskId].data[4]].data[0] = 2;
+ gSprites[gTasks[taskId].data[5]].data[0] = 2;
gTasks[gTasks[taskId].data[15]].data[0] = 0;
}
if (gIntroFrameCounter == 781)
{
sub_813D084(2);
- gSprites[gTasks[taskId].data[2]].data0 = 3;
- gSprites[gTasks[taskId].data[3]].data0 = 3;
- gSprites[gTasks[taskId].data[4]].data0 = 3;
- gSprites[gTasks[taskId].data[5]].data0 = 3;
+ gSprites[gTasks[taskId].data[2]].data[0] = 3;
+ gSprites[gTasks[taskId].data[3]].data[0] = 3;
+ gSprites[gTasks[taskId].data[4]].data[0] = 3;
+ gSprites[gTasks[taskId].data[5]].data[0] = 3;
spriteId = CreateSprite(&gSpriteTemplate_840B1F4, 0x78, 0x50, 15);
gSprites[spriteId].invisible = 1;
}
@@ -1833,18 +1838,18 @@ static void sub_813D0CC(struct Sprite *sprite)
{
u8 r0;
- if (sprite->data2 >= 192)
+ if (sprite->data[2] >= 192)
{
- if (sprite->data3 != 0)
+ if (sprite->data[3] != 0)
{
- sprite->data3--;
+ sprite->data[3]--;
}
else
{
sprite->invisible = FALSE;
- SetOamMatrix(sprite->data1, sprite->data2, 0, 0, sprite->data2);
- sprite->data2 = (sprite->data2 * 95) / 100;
- r0 = (sprite->data2 - 192) / 128 + 9;
+ SetOamMatrix(sprite->data[1], sprite->data[2], 0, 0, sprite->data[2]);
+ sprite->data[2] = (sprite->data[2] * 95) / 100;
+ r0 = (sprite->data[2] - 192) / 128 + 9;
if (r0 > 15)
r0 = 15;
sprite->oam.paletteNum = r0;
@@ -1858,14 +1863,14 @@ static void sub_813D0CC(struct Sprite *sprite)
static void sub_813D158(struct Sprite *sprite)
{
- if (gSprites[sprite->data7].data7 != 0)
+ if (gSprites[sprite->data[7]].data[7] != 0)
{
sprite->invisible = TRUE;
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
StartSpriteAnim(sprite, 3);
- sprite->data2 = 1024;
- sprite->data3 = 8 * (sprite->data1 & 3);
+ sprite->data[2] = 1024;
+ sprite->data[3] = 8 * (sprite->data[1] & 3);
sprite->callback = sub_813D0CC;
sprite->oam.shape = 1;
sprite->oam.size = 3;
@@ -1873,16 +1878,16 @@ static void sub_813D158(struct Sprite *sprite)
}
else
{
- sprite->pos2.x = gSprites[sprite->data7].pos2.x;
- sprite->pos2.y = gSprites[sprite->data7].pos2.y;
- sprite->pos1.x = gSprites[sprite->data7].pos1.x;
- sprite->pos1.y = gSprites[sprite->data7].pos1.y;
+ sprite->pos2.x = gSprites[sprite->data[7]].pos2.x;
+ sprite->pos2.y = gSprites[sprite->data[7]].pos2.y;
+ sprite->pos1.x = gSprites[sprite->data[7]].pos1.x;
+ sprite->pos1.y = gSprites[sprite->data[7]].pos1.y;
}
}
static void sub_813D208(struct Sprite *sprite)
{
- if (sprite->data0 != 0)
+ if (sprite->data[0] != 0)
sprite->callback = sub_813D220;
}
@@ -1894,7 +1899,7 @@ static void sub_813D220(struct Sprite *sprite)
sprite->pos2.y = 0;
sprite->pos1.x += 4;
sprite->pos2.x = -4;
- sprite->data4 = 128;
+ sprite->data[4] = 128;
sprite->callback = sub_813D368;
}
else
@@ -1912,58 +1917,58 @@ static void sub_813D220(struct Sprite *sprite)
s16 var4;
s16 temp;
- data4 = sprite->data4;
+ data4 = sprite->data[4];
sin1 = gSineTable[(u8)data4];
sin2 = gSineTable[(u8)(data4 + 64)];
- sprite->data4 += 2;
+ sprite->data[4] += 2;
sprite->pos2.y = sin1 / 32;
sprite->pos1.x--;
if (sprite->pos1.x & 1)
sprite->pos1.y++;
temp = -sin2 / 16;
- data2 = sprite->data2;
- data3 = sprite->data3;
+ data2 = sprite->data[2];
+ data3 = sprite->data[3];
sin3 = gSineTable[(u8)(temp - 16)];
sin4 = gSineTable[(u8)(temp + 48)];
var1 = sin4 * data2 / 256;
var2 = -sin3 * data3 / 256;
var3 = sin3 * data2 / 256;
var4 = sin4 * data3 / 256;
- SetOamMatrix(sprite->data1, data2, 0, 0, data3);
- SetOamMatrix(sprite->data1 + 1, var1, var3, var2, var4);
- SetOamMatrix(sprite->data1 + 2, var1, var3, var2 * 2, var4 * 2);
+ SetOamMatrix(sprite->data[1], data2, 0, 0, data3);
+ SetOamMatrix(sprite->data[1] + 1, var1, var3, var2, var4);
+ SetOamMatrix(sprite->data[1] + 2, var1, var3, var2 * 2, var4 * 2);
}
}
static void sub_813D368(struct Sprite *sprite)
{
- SetOamMatrix(sprite->data1, sprite->data6 + 64, 0, 0, sprite->data6 + 64);
- SetOamMatrix(sprite->data1 + 1, sprite->data6 + 64, 0, 0, sprite->data6 + 64);
- SetOamMatrix(sprite->data1 + 2, sprite->data6 + 64, 0, 0, sprite->data6 + 64);
- if (sprite->data4 != 64)
+ SetOamMatrix(sprite->data[1], sprite->data[6] + 64, 0, 0, sprite->data[6] + 64);
+ SetOamMatrix(sprite->data[1] + 1, sprite->data[6] + 64, 0, 0, sprite->data[6] + 64);
+ SetOamMatrix(sprite->data[1] + 2, sprite->data[6] + 64, 0, 0, sprite->data[6] + 64);
+ if (sprite->data[4] != 64)
{
u16 data4;
- sprite->data4 -= 8;
- data4 = sprite->data4;
+ sprite->data[4] -= 8;
+ data4 = sprite->data[4];
sprite->pos2.x = gSineTable[(u8)(data4 + 64)] / 64;
sprite->pos2.y = gSineTable[(u8)data4] / 64;
}
else
{
- sprite->data4 = 0;
+ sprite->data[4] = 0;
sprite->callback = sub_813D414;
}
}
static void sub_813D414(struct Sprite *sprite)
{
- if (sprite->data0 != 2)
+ if (sprite->data[0] != 2)
{
s16 r2;
- sprite->data4 += 8;
- r2 = gSineTable[(u8)sprite->data4] / 16 + 64;
+ sprite->data[4] += 8;
+ r2 = gSineTable[(u8)sprite->data[4]] / 16 + 64;
sprite->pos2.x = gSineTable[(u8)(r2 + 64)] / 64;
sprite->pos2.y = gSineTable[(u8)r2] / 64;
}
@@ -1975,19 +1980,19 @@ static void sub_813D414(struct Sprite *sprite)
static void SpriteCB_WaterDropFall(struct Sprite *sprite)
{
- if (sprite->pos1.y < sprite->data5)
+ if (sprite->pos1.y < sprite->data[5])
{
sprite->pos1.y += 4;
}
else
{
- sprite->data7 = 1;
+ sprite->data[7] = 1;
sprite->invisible = TRUE;
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
StartSpriteAnim(sprite, 3);
- sprite->data2 = 1024;
- sprite->data3 = 8 * (sprite->data1 & 3);
+ sprite->data[2] = 1024;
+ sprite->data[3] = 8 * (sprite->data[1] & 3);
sprite->callback = sub_813D0CC;
sprite->oam.shape = 1;
sprite->oam.size = 3;
@@ -1998,19 +2003,19 @@ static void SpriteCB_WaterDropFall(struct Sprite *sprite)
//Duplicate function
static void SpriteCB_WaterDropFall_2(struct Sprite *sprite)
{
- if (sprite->pos1.y < sprite->data5)
+ if (sprite->pos1.y < sprite->data[5])
{
sprite->pos1.y += 4;
}
else
{
- sprite->data7 = 1;
+ sprite->data[7] = 1;
sprite->invisible = TRUE;
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
StartSpriteAnim(sprite, 3);
- sprite->data2 = 1024;
- sprite->data3 = 8 * (sprite->data1 & 3);
+ sprite->data[2] = 1024;
+ sprite->data[3] = 8 * (sprite->data[1] & 3);
sprite->callback = sub_813D0CC;
sprite->oam.shape = 1;
sprite->oam.size = 3;
@@ -2024,13 +2029,13 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately)
u8 oldSpriteId;
spriteId = CreateSprite(&gSpriteTemplate_840AE20, x, y, 0);
- gSprites[spriteId].data0 = 0;
- gSprites[spriteId].data7 = 0;
- gSprites[spriteId].data1 = d;
- gSprites[spriteId].data2 = c;
- gSprites[spriteId].data3 = c;
- gSprites[spriteId].data5 = e;
- gSprites[spriteId].data6 = c;
+ gSprites[spriteId].data[0] = 0;
+ gSprites[spriteId].data[7] = 0;
+ gSprites[spriteId].data[1] = d;
+ gSprites[spriteId].data[2] = c;
+ gSprites[spriteId].data[3] = c;
+ gSprites[spriteId].data[5] = e;
+ gSprites[spriteId].data[6] = c;
gSprites[spriteId].oam.affineMode = 3;
gSprites[spriteId].oam.matrixNum = d;
CalcCenterToCornerVec(&gSprites[spriteId], 0, 2, 2);
@@ -2042,16 +2047,16 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately)
oldSpriteId = spriteId;
spriteId = CreateSprite(&gSpriteTemplate_840AE20, x, y, 0);
- gSprites[spriteId].data7 = oldSpriteId;
- gSprites[spriteId].data1 = d + 1;
+ gSprites[spriteId].data[7] = oldSpriteId;
+ gSprites[spriteId].data[1] = d + 1;
gSprites[spriteId].oam.affineMode = 3;
gSprites[spriteId].oam.matrixNum = d + 1;
CalcCenterToCornerVec(&gSprites[spriteId], 0, 2, 2);
gSprites[spriteId].callback = sub_813D158;
spriteId = CreateSprite(&gSpriteTemplate_840AE20, x, y, 0);
- gSprites[spriteId].data7 = oldSpriteId;
- gSprites[spriteId].data1 = d + 2;
+ gSprites[spriteId].data[7] = oldSpriteId;
+ gSprites[spriteId].data[1] = d + 2;
StartSpriteAnim(&gSprites[spriteId], 1);
gSprites[spriteId].oam.affineMode = 3;
gSprites[spriteId].oam.matrixNum = d + 2;
@@ -2067,7 +2072,7 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately)
static void sub_813D788(struct Sprite *sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
StartSpriteAnimIfDifferent(sprite, 0);
@@ -2119,7 +2124,7 @@ static void sub_813D788(struct Sprite *sprite)
static void sub_813D880(struct Sprite *sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
break;
@@ -2127,30 +2132,30 @@ static void sub_813D880(struct Sprite *sprite)
if (sprite->pos2.x + sprite->pos1.x < 304)
sprite->pos2.x += 8;
else
- sprite->data0 = 2;
+ sprite->data[0] = 2;
break;
case 2:
if (sprite->pos2.x + sprite->pos1.x > 120)
sprite->pos2.x -= 1;
else
- sprite->data0 = 3;
+ sprite->data[0] = 3;
break;
case 3:
if (sprite->pos2.x > 0)
sprite->pos2.x -= 2;
break;
}
- sprite->pos2.y = Sin((u8)sprite->data1, 8) - gUnknown_0203935A;
- sprite->data1 += 4;
+ sprite->pos2.y = Sin((u8)sprite->data[1], 8) - gUnknown_0203935A;
+ sprite->data[1] += 4;
}
static void sub_813D908(struct Sprite *sprite)
{
- if (gTasks[sprite->data0].data[0] == 0)
+ if (gTasks[sprite->data[0]].data[0] == 0)
{
sprite->invisible = TRUE;
}
- else if (gTasks[sprite->data0].data[0] != 4)
+ else if (gTasks[sprite->data[0]].data[0] != 4)
{
sprite->invisible = FALSE;
}
@@ -2168,17 +2173,17 @@ static u8 CreateGameFreakLogo(s16 a, s16 b, u8 c)
for (i = 0; i < 9; i++)
{
spriteId = CreateSprite(&gSpriteTemplate_840AF94, gUnknown_0840AF50[i][1] + a, b - 4, 0);
- gSprites[spriteId].data0 = c;
+ gSprites[spriteId].data[0] = c;
StartSpriteAnim(&gSprites[spriteId], gUnknown_0840AF50[i][0]);
}
for (i = 0; i < 8; i++)
{
spriteId = CreateSprite(&gSpriteTemplate_840AFAC, gUnknown_0840AF74[i][1] + a, b + 12, 0);
- gSprites[spriteId].data0 = c;
+ gSprites[spriteId].data[0] = c;
StartSpriteAnim(&gSprites[spriteId], gUnknown_0840AF74[i][0]);
}
spriteId = CreateSprite(&gSpriteTemplate_840AFC4, 120, b - 4, 0);
- gSprites[spriteId].data0 = c;
+ gSprites[spriteId].data[0] = c;
return spriteId;
}
@@ -2186,9 +2191,9 @@ static u8 CreateGameFreakLogo(s16 a, s16 b, u8 c)
#ifdef NONMATCHING
static void sub_813DA64(struct Sprite *sprite)
{
- sprite->data7++;
+ sprite->data[7]++;
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
default:
@@ -2196,10 +2201,10 @@ static void sub_813DA64(struct Sprite *sprite)
sprite->oam.matrixNum = 1;
CalcCenterToCornerVec(sprite, 1, 3, 3);
sprite->invisible = FALSE;
- sprite->data0 = 1;
- sprite->data1 = 128;
- sprite->data2 = -24;
- sprite->data3 = 0;
+ sprite->data[0] = 1;
+ sprite->data[1] = 128;
+ sprite->data[2] = -24;
+ sprite->data[3] = 0;
break;
case 1:
{
@@ -2211,33 +2216,33 @@ static void sub_813DA64(struct Sprite *sprite)
s16 r2;
//_0813DAC0
- if (sprite->data3 < 0x50)
+ if (sprite->data[3] < 0x50)
{
- sprite->pos2.y = -Sin((u8)sprite->data3, 0x78);
- sprite->pos2.x = -Sin((u8)sprite->data3, 0x8C);
- if (sprite->data3 > 64)
+ sprite->pos2.y = -Sin((u8)sprite->data[3], 0x78);
+ sprite->pos2.x = -Sin((u8)sprite->data[3], 0x8C);
+ if (sprite->data[3] > 64)
sprite->oam.priority = 3;
}
//_0813DAF8
- r3 = gSineTable[(u8)sprite->data2];
- sin1 = gSineTable[(u8)(sprite->data2 + 64)];
- r6 = sin1 * sprite->data1 / 256;
- foo = sin1 * sprite->data1 / 256;
- r5 = -r3 * sprite->data1 / 256;
- r2 = r3 * sprite->data1 / 256;
+ r3 = gSineTable[(u8)sprite->data[2]];
+ sin1 = gSineTable[(u8)(sprite->data[2] + 64)];
+ r6 = sin1 * sprite->data[1] / 256;
+ foo = sin1 * sprite->data[1] / 256;
+ r5 = -r3 * sprite->data[1] / 256;
+ r2 = r3 * sprite->data[1] / 256;
SetOamMatrix(1, r6, r2, r5, foo);
- if (sprite->data1 < 0x100)
- sprite->data1 += 8;
+ if (sprite->data[1] < 0x100)
+ sprite->data[1] += 8;
else
- sprite->data1 += 32;
- if (sprite->data2 < 0x18)
- sprite->data2 += 1;
- if (sprite->data3 < 64)
- sprite->data3 += 2;
- else if (!(sprite->data7 & 3))
- sprite->data3 += 1;
+ sprite->data[1] += 32;
+ if (sprite->data[2] < 0x18)
+ sprite->data[2] += 1;
+ if (sprite->data[3] < 64)
+ sprite->data[3] += 2;
+ else if (!(sprite->data[7] & 3))
+ sprite->data[3] += 1;
break;
}
}
@@ -2418,72 +2423,72 @@ _0813DB94:\n\
static void sub_813DB9C(struct Sprite *sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
default:
- if (sprite->data2 != 0)
+ if (sprite->data[2] != 0)
sprite->hFlip = TRUE;
else
sprite->hFlip = FALSE;
- sprite->data0 = 1;
+ sprite->data[0] = 1;
//fall through
case 1:
if (sprite->pos1.y > 96)
{
sprite->pos1.y -= 4;
- if (sprite->data2 != 0)
+ if (sprite->data[2] != 0)
sprite->pos1.x += 2;
else
sprite->pos1.x -= 2;
}
else
{
- sprite->data0++;
- sprite->data3 = 8;
+ sprite->data[0]++;
+ sprite->data[3] = 8;
}
break;
case 2:
- if (sprite->data3 != 0)
+ if (sprite->data[3] != 0)
{
- sprite->data3--;
+ sprite->data[3]--;
}
else
{
- sprite->data0++;
- sprite->data3 = 0; //redundant?
+ sprite->data[0]++;
+ sprite->data[3] = 0; //redundant?
}
break;
case 3:
sprite->oam.affineMode = 3;
- sprite->oam.matrixNum = sprite->data1;
+ sprite->oam.matrixNum = sprite->data[1];
CalcCenterToCornerVec(sprite, 0, 3, 3);
- if (sprite->data2 != 0)
- SetOamMatrix(sprite->data1, -256, 0, 0, 256);
+ if (sprite->data[2] != 0)
+ SetOamMatrix(sprite->data[1], -256, 0, 0, 256);
else
- SetOamMatrix(sprite->data1, 256, 0, 0, 256);
- sprite->data0++;
- sprite->data4 = 0;
+ SetOamMatrix(sprite->data[1], 256, 0, 0, 256);
+ sprite->data[0]++;
+ sprite->data[4] = 0;
break;
case 4:
- sprite->data4++;
+ sprite->data[4]++;
if (sprite->pos1.y + sprite->pos2.y > -32
&& sprite->pos1.x + sprite->pos2.x > -64)
{
u16 r2;
- sprite->pos2.y = -(sprite->data4 * sprite->data4) / 8;
- if (sprite->data2 != 0)
- sprite->pos2.x += sprite->data4;
+ sprite->pos2.y = -(sprite->data[4] * sprite->data[4]) / 8;
+ if (sprite->data[2] != 0)
+ sprite->pos2.x += sprite->data[4];
else
- sprite->pos2.x -= sprite->data4;
- if (sprite->data3 < 128)
- sprite->data3 += 8;
- r2 = 256 - sprite->data3;
- if (sprite->data2 != 0)
- SetOamMatrix(sprite->data1, -r2, 0, 0, r2);
+ sprite->pos2.x -= sprite->data[4];
+ if (sprite->data[3] < 128)
+ sprite->data[3] += 8;
+ r2 = 256 - sprite->data[3];
+ if (sprite->data[2] != 0)
+ SetOamMatrix(sprite->data[1], -r2, 0, 0, r2);
else
- SetOamMatrix(sprite->data1, r2, 0, 0, r2);
+ SetOamMatrix(sprite->data[1], r2, 0, 0, r2);
}
else
{
@@ -2494,50 +2499,50 @@ static void sub_813DB9C(struct Sprite *sprite)
static void sub_813DD58(struct Sprite *sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
default:
sprite->invisible = FALSE;
sprite->oam.affineMode = 1;
- sprite->oam.matrixNum = sprite->data1;
- sprite->data3 = 2048;
- sprite->data0 = 1;
+ sprite->oam.matrixNum = sprite->data[1];
+ sprite->data[3] = 2048;
+ sprite->data[0] = 1;
//fall through
case 1:
- if (sprite->data3 > 256)
+ if (sprite->data[3] > 256)
{
- sprite->data3 -= 128;
- if (sprite->data2 != 0)
- SetOamMatrix(sprite->data1, -sprite->data3, 0, 0, sprite->data3);
+ sprite->data[3] -= 128;
+ if (sprite->data[2] != 0)
+ SetOamMatrix(sprite->data[1], -sprite->data[3], 0, 0, sprite->data[3]);
else
- SetOamMatrix(sprite->data1, sprite->data3, 0, 0, sprite->data3);
+ SetOamMatrix(sprite->data[1], sprite->data[3], 0, 0, sprite->data[3]);
}
else
{
- if (sprite->data2 != 0)
- SetOamMatrix(sprite->data1, -256, 0, 0, 256);
+ if (sprite->data[2] != 0)
+ SetOamMatrix(sprite->data[1], -256, 0, 0, 256);
else
- SetOamMatrix(sprite->data1, 256, 0, 0, 256);
- sprite->data0++;
+ SetOamMatrix(sprite->data[1], 256, 0, 0, 256);
+ sprite->data[0]++;
}
break;
case 2:
break;
case 3:
- sprite->data4++;
- sprite->pos2.y = sprite->data4 * sprite->data4 / 32;
- if (sprite->data2 != 0)
- sprite->pos2.x = sprite->data4 / 4;
+ sprite->data[4]++;
+ sprite->pos2.y = sprite->data[4] * sprite->data[4] / 32;
+ if (sprite->data[2] != 0)
+ sprite->pos2.x = sprite->data[4] / 4;
else
- sprite->pos2.x = -(sprite->data4 / 4);
+ sprite->pos2.x = -(sprite->data[4] / 4);
break;
}
}
static void sub_813DE70(struct Sprite *sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
default:
@@ -2548,24 +2553,24 @@ static void sub_813DE70(struct Sprite *sprite)
else
{
StartSpriteAnim(sprite, 1);
- sprite->data6 = CreateSprite(&gSpriteTemplate_840B084, 16, 104, 100);
- sprite->data7 = CreateSprite(&gSpriteTemplate_840B084, 12, 106, 101);
- sprite->data0 = 1;
+ sprite->data[6] = CreateSprite(&gSpriteTemplate_840B084, 16, 104, 100);
+ sprite->data[7] = CreateSprite(&gSpriteTemplate_840B084, 12, 106, 101);
+ sprite->data[0] = 1;
}
break;
case 1:
break;
case 2:
StartSpriteAnim(sprite, 2);
- gSprites[sprite->data6].data0 = 1;
- gSprites[sprite->data7].data0 = 2;
- sprite->data0++;
+ gSprites[sprite->data[6]].data[0] = 1;
+ gSprites[sprite->data[7]].data[0] = 2;
+ sprite->data[0]++;
break;
case 3:
if (sprite->pos1.y > 160)
{
sprite->invisible = 1;
- sprite->data0 = 1;
+ sprite->data[0] = 1;
}
else
{
@@ -2577,37 +2582,37 @@ static void sub_813DE70(struct Sprite *sprite)
{
s16 r4, r5;
- r5 = gSprites[sprite->data6].pos1.x + gSprites[sprite->data6].pos2.x;
- r4 = gSprites[sprite->data6].pos1.y + gSprites[sprite->data6].pos2.y;
- DestroySprite(&gSprites[sprite->data6]);
- sprite->data6 = sub_813CE88(SPECIES_TORCHIC, r5, r4, 2, 1);
- gSprites[sprite->data6].callback = sub_813DD58;
- gSprites[sprite->data6].invisible = TRUE;
- gSprites[sprite->data6].data1 = 1;
- gSprites[sprite->data6].data2 = 1;
+ r5 = gSprites[sprite->data[6]].pos1.x + gSprites[sprite->data[6]].pos2.x;
+ r4 = gSprites[sprite->data[6]].pos1.y + gSprites[sprite->data[6]].pos2.y;
+ DestroySprite(&gSprites[sprite->data[6]]);
+ sprite->data[6] = sub_813CE88(SPECIES_TORCHIC, r5, r4, 2, 1);
+ gSprites[sprite->data[6]].callback = sub_813DD58;
+ gSprites[sprite->data[6]].invisible = TRUE;
+ gSprites[sprite->data[6]].data[1] = 1;
+ gSprites[sprite->data[6]].data[2] = 1;
sub_813E580(r5, r4);
- r5 = gSprites[sprite->data7].pos1.x + gSprites[sprite->data7].pos2.x;
- r4 = gSprites[sprite->data7].pos1.y + gSprites[sprite->data7].pos2.y;
- DestroySprite(&gSprites[sprite->data7]);
- sprite->data7 = sub_813CE88(SPECIES_MUDKIP, r5, r4, 3, 1);
- gSprites[sprite->data7].callback = sub_813DD58;
- gSprites[sprite->data7].invisible = TRUE;
- gSprites[sprite->data7].data1 = 2;
- gSprites[sprite->data7].data2 = 0;
+ r5 = gSprites[sprite->data[7]].pos1.x + gSprites[sprite->data[7]].pos2.x;
+ r4 = gSprites[sprite->data[7]].pos1.y + gSprites[sprite->data[7]].pos2.y;
+ DestroySprite(&gSprites[sprite->data[7]]);
+ sprite->data[7] = sub_813CE88(SPECIES_MUDKIP, r5, r4, 3, 1);
+ gSprites[sprite->data[7]].callback = sub_813DD58;
+ gSprites[sprite->data[7]].invisible = TRUE;
+ gSprites[sprite->data[7]].data[1] = 2;
+ gSprites[sprite->data[7]].data[2] = 0;
sub_813E580(r5, r4);
BeginNormalPaletteFade(0xFF0000, 0, 16, 16, RGB(31, 23, 31));
- sprite->data0 = 1;
+ sprite->data[0] = 1;
break;
}
case 5:
- gSprites[sprite->data6].data0 = 3;
- gSprites[sprite->data7].data0 = 3;
+ gSprites[sprite->data[6]].data[0] = 3;
+ gSprites[sprite->data[7]].data[0] = 3;
break;
case 6:
- DestroySprite(&gSprites[sprite->data6]);
- DestroySprite(&gSprites[sprite->data7]);
+ DestroySprite(&gSprites[sprite->data[6]]);
+ DestroySprite(&gSprites[sprite->data[7]]);
DestroySprite(sprite);
break;
}
@@ -2615,7 +2620,7 @@ static void sub_813DE70(struct Sprite *sprite)
static void sub_813E10C(struct Sprite *sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
default:
@@ -2626,20 +2631,20 @@ static void sub_813E10C(struct Sprite *sprite)
}
else
{
- sprite->data6 = sprite->pos1.x;
- sprite->data7 = sprite->pos1.y;
+ sprite->data[6] = sprite->pos1.x;
+ sprite->data[7] = sprite->pos1.y;
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- sprite->data0 = 1;
- sprite->data1 = 0;
+ sprite->data[0] = 1;
+ sprite->data[1] = 0;
}
break;
case 1:
- if (!(sprite->data1 & 1))
+ if (!(sprite->data[1] & 1))
{
- if (sprite->data1 & 2)
+ if (sprite->data[1] & 2)
{
sprite->pos2.x = -1;
sprite->pos2.y = 1;
@@ -2650,18 +2655,18 @@ static void sub_813E10C(struct Sprite *sprite)
sprite->pos2.y = 0;
}
}
- sprite->data1++;
+ sprite->data[1]++;
break;
case 2:
sprite->invisible = TRUE;
- sprite->pos1.x = sprite->data6;
- sprite->pos1.y = sprite->data7;
+ sprite->pos1.x = sprite->data[6];
+ sprite->pos1.y = sprite->data[7];
sprite->pos2.x = 0;
sprite->pos2.y = 0;
break;
case 3:
sprite->invisible = FALSE;
- sprite->data1++;
+ sprite->data[1]++;
//fall through
case 4:
if (sprite->pos2.x > -56)
@@ -2675,7 +2680,7 @@ static void sub_813E10C(struct Sprite *sprite)
sprite->pos1.y += sprite->pos2.y;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- sprite->data0 = 1;
+ sprite->data[0] = 1;
}
break;
}
@@ -2683,7 +2688,7 @@ static void sub_813E10C(struct Sprite *sprite)
static void sub_813E210(struct Sprite *sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
default:
@@ -2694,20 +2699,20 @@ static void sub_813E210(struct Sprite *sprite)
}
else
{
- sprite->data6 = sprite->pos1.x;
- sprite->data7 = sprite->pos1.y;
+ sprite->data[6] = sprite->pos1.x;
+ sprite->data[7] = sprite->pos1.y;
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- sprite->data0 = 1;
- sprite->data1 = 0;
+ sprite->data[0] = 1;
+ sprite->data[1] = 0;
}
break;
case 1:
- if (!(sprite->data1 & 1))
+ if (!(sprite->data[1] & 1))
{
- if (sprite->data1 & 2)
+ if (sprite->data[1] & 2)
{
sprite->pos2.x = 1;
sprite->pos2.y = -1;
@@ -2718,18 +2723,18 @@ static void sub_813E210(struct Sprite *sprite)
sprite->pos2.y = 0;
}
}
- sprite->data1++;
+ sprite->data[1]++;
break;
case 2:
sprite->invisible = TRUE;
- sprite->pos1.x = sprite->data6;
- sprite->pos1.y = sprite->data7;
+ sprite->pos1.x = sprite->data[6];
+ sprite->pos1.y = sprite->data[7];
sprite->pos2.x = 0;
sprite->pos2.y = 0;
break;
case 3:
sprite->invisible = FALSE;
- sprite->data1++;
+ sprite->data[1]++;
//fall through
case 4:
if (sprite->pos2.x < 56)
@@ -2743,7 +2748,7 @@ static void sub_813E210(struct Sprite *sprite)
sprite->pos1.y += sprite->pos2.y;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- sprite->data0 = 1;
+ sprite->data[0] = 1;
}
break;
}
@@ -2753,8 +2758,8 @@ static void sub_813E30C(struct Sprite *sprite)
{
u16 r4, r1;
- sprite->data7++;
- switch (sprite->data0)
+ sprite->data[7]++;
+ switch (sprite->data[0])
{
case 0:
default:
@@ -2762,43 +2767,43 @@ static void sub_813E30C(struct Sprite *sprite)
case 1:
sprite->oam.affineMode = 1;
sprite->oam.matrixNum = 1;
- sprite->data0 = 10;
- sprite->data4 = 36;
+ sprite->data[0] = 10;
+ sprite->data[4] = 36;
//fall through
case 10:
if (sprite->pos1.x <= 144)
{
sprite->pos1.x += 4;
sprite->pos1.y -= 1;
- sprite->pos2.y = -Sin((u8)sprite->data2, 24);
- sprite->data2 += 4;
+ sprite->pos2.y = -Sin((u8)sprite->data[2], 24);
+ sprite->data[2] += 4;
}
- sprite->data3 -= sprite->data4;
- if ((sprite->data7 & 1) && sprite->data4 != 0)
- sprite->data4--;
- r4 = gSineTable[(u8)sprite->data3];
- r1 = gSineTable[(u8)(sprite->data3 + 64)];
+ sprite->data[3] -= sprite->data[4];
+ if ((sprite->data[7] & 1) && sprite->data[4] != 0)
+ sprite->data[4]--;
+ r4 = gSineTable[(u8)sprite->data[3]];
+ r1 = gSineTable[(u8)(sprite->data[3] + 64)];
SetOamMatrix(1, r1, r4, -r4, r1);
break;
case 2:
sprite->oam.affineMode = 1;
sprite->oam.matrixNum = 2;
- sprite->data0 = 20;
- sprite->data4 = 36;
+ sprite->data[0] = 20;
+ sprite->data[4] = 36;
//fall through
case 20:
if (sprite->pos1.x <= 96)
{
sprite->pos1.x += 3;
sprite->pos1.y -= 1;
- sprite->pos2.y = -Sin((u8)sprite->data2, 24);
- sprite->data2 += 4;
+ sprite->pos2.y = -Sin((u8)sprite->data[2], 24);
+ sprite->data[2] += 4;
}
- sprite->data3 -= sprite->data4;
- if ((sprite->data7 & 1) && sprite->data4 != 0)
- sprite->data4--;
- r4 = gSineTable[(u8)sprite->data3];
- r1 = gSineTable[(u8)(sprite->data3 + 64)];
+ sprite->data[3] -= sprite->data[4];
+ if ((sprite->data[7] & 1) && sprite->data[4] != 0)
+ sprite->data[4]--;
+ r4 = gSineTable[(u8)sprite->data[3]];
+ r1 = gSineTable[(u8)(sprite->data[3] + 64)];
SetOamMatrix(2, r1, r4, -r4, r1);
break;
}
@@ -2810,27 +2815,27 @@ static void sub_813E4B8(struct Sprite *sprite)
u16 r2;
u16 r1;
- sprite->data7++;
- if (sprite->data7 & 1)
+ sprite->data[7]++;
+ if (sprite->data[7] & 1)
sprite->invisible = FALSE;
else
sprite->invisible = TRUE;
- if (sprite->data2 >= 64)
+ if (sprite->data[2] >= 64)
{
DestroySprite(sprite);
return;
}
- sprite->data2 += 2;
- r4 = Sin((u8)sprite->data2, 40);
- sprite->pos2.x = Cos((u8)(sprite->data0 * 32), r4);
- sprite->pos2.y = Sin((u8)(sprite->data0 * 32), r4);
- if (sprite->data0 == 0)
- {
- sprite->data3 -= sprite->data1;
- if ((sprite->data7 & 1) && sprite->data1 != 0)
- sprite->data1--;
- r2 = gSineTable[(u8)sprite->data3];
- r1 = gSineTable[(u8)(sprite->data3 + 64)];
+ sprite->data[2] += 2;
+ r4 = Sin((u8)sprite->data[2], 40);
+ sprite->pos2.x = Cos((u8)(sprite->data[0] * 32), r4);
+ sprite->pos2.y = Sin((u8)(sprite->data[0] * 32), r4);
+ if (sprite->data[0] == 0)
+ {
+ sprite->data[3] -= sprite->data[1];
+ if ((sprite->data[7] & 1) && sprite->data[1] != 0)
+ sprite->data[1]--;
+ r2 = gSineTable[(u8)sprite->data[3]];
+ r1 = gSineTable[(u8)(sprite->data[3] + 64)];
SetOamMatrix(16, r1, r2, -r2, r1);
}
}
@@ -2845,8 +2850,8 @@ static void sub_813E580(u16 x, u16 y)
spriteId = CreateSprite(&gSpriteTemplate_840B0B0, x, y, 0);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.matrixNum = 16;
- gSprites[spriteId].data0 = i;
- gSprites[spriteId].data1 = 32;
+ gSprites[spriteId].data[0] = i;
+ gSprites[spriteId].data[1] = 32;
}
}
@@ -2858,16 +2863,16 @@ static void sub_813E5E0(struct Sprite *sprite)
}
else
{
- sprite->invisible = gSprites[sprite->data0].invisible;
- if (sprite->data7 < 12)
- sprite->data7++;
- sprite->data6 += 4;
- sprite->pos1.x = sprite->data4 + gSineTable[(u8)(sprite->data3 + 64)] * sprite->data6 / 256;
+ sprite->invisible = gSprites[sprite->data[0]].invisible;
+ if (sprite->data[7] < 12)
+ sprite->data[7]++;
+ sprite->data[6] += 4;
+ sprite->pos1.x = sprite->data[4] + gSineTable[(u8)(sprite->data[3] + 64)] * sprite->data[6] / 256;
//This useless '+ 0' is needed to make the asm match
- sprite->pos1.y = sprite->data5 + gSineTable[(u8)(sprite->data3 + 0)] * sprite->data6 / 256;
- sprite->pos2.y = gSineTable[(u8)(sprite->data1 + 0)] * sprite->data7 / 256;
- sprite->data1 += 16;
- if (sprite->pos1.y > sprite->data2)
+ sprite->pos1.y = sprite->data[5] + gSineTable[(u8)(sprite->data[3] + 0)] * sprite->data[6] / 256;
+ sprite->pos2.y = gSineTable[(u8)(sprite->data[1] + 0)] * sprite->data[7] / 256;
+ sprite->data[1] += 16;
+ if (sprite->pos1.y > sprite->data[2])
DestroySprite(sprite);
}
}
@@ -2885,15 +2890,15 @@ static void sub_813E6C0(struct Sprite *sprite)
}
else
{
- sprite->data7++;
+ sprite->data[7]++;
sprite->invisible = TRUE;
- if (gSprites[sprite->data0].data0 == 1 && !(sprite->data7 & 3))
+ if (gSprites[sprite->data[0]].data[0] == 1 && !(sprite->data[7] & 3))
{
- var1 = sprite->data1 + gSprites[sprite->data0].pos1.x;
- var2 = sprite->data2 + gSprites[sprite->data0].pos1.y;
+ var1 = sprite->data[1] + gSprites[sprite->data[0]].pos1.x;
+ var2 = sprite->data[2] + gSprites[sprite->data[0]].pos1.y;
for (i = 0; i < 3; i++)
{
- u8 r3 = gSprites[sprite->data0].subpriority - 1;
+ u8 r3 = gSprites[sprite->data[0]].subpriority - 1;
//Make redundant copies of these variables to get the asm to match
s16 _var1 = var1;
s16 _var2 = var2;
@@ -2901,13 +2906,13 @@ static void sub_813E6C0(struct Sprite *sprite)
spriteId = CreateSprite(&gSpriteTemplate_840B0DC, _var1, _var2, r3);
if (spriteId != 64)
{
- gSprites[spriteId].data0 = sprite->data0;
- gSprites[spriteId].data1 = (((sprite->data7 >> 2) & 7) << 5) + i * 85;
- gSprites[spriteId].data2 = sprite->data3;
- gSprites[spriteId].data3 = 104;
- gSprites[spriteId].data4 = var1;
- gSprites[spriteId].data5 = var2;
- gSprites[spriteId].data6 = 0;
+ gSprites[spriteId].data[0] = sprite->data[0];
+ gSprites[spriteId].data[1] = (((sprite->data[7] >> 2) & 7) << 5) + i * 85;
+ gSprites[spriteId].data[2] = sprite->data[3];
+ gSprites[spriteId].data[3] = 104;
+ gSprites[spriteId].data[4] = var1;
+ gSprites[spriteId].data[5] = var2;
+ gSprites[spriteId].data[6] = 0;
}
}
}
@@ -2921,10 +2926,10 @@ static void sub_813E7C0(u8 a)
spriteId = CreateSprite(&gSpriteTemplate_840B0F4, 0, 0, 0);
if (spriteId != 64)
{
- gSprites[spriteId].data0 = a;
- gSprites[spriteId].data1 = -12;
- gSprites[spriteId].data2 = 0;
- gSprites[spriteId].data3 = 136;
+ gSprites[spriteId].data[0] = a;
+ gSprites[spriteId].data[1] = -12;
+ gSprites[spriteId].data[2] = 0;
+ gSprites[spriteId].data[3] = 136;
}
}
@@ -2936,20 +2941,20 @@ static void sub_813E804(struct Sprite *sprite)
}
else
{
- sprite->invisible = gSprites[sprite->data0].invisible;
- sprite->data7++;
- if (sprite->data3 < 40)
- sprite->data3 += 2;
+ sprite->invisible = gSprites[sprite->data[0]].invisible;
+ sprite->data[7]++;
+ if (sprite->data[3] < 40)
+ sprite->data[3] += 2;
//This useless '+ 0' is needed to make the asm match
- sprite->pos1.x = gSprites[sprite->data0].pos1.x + gSprites[sprite->data0].pos2.x + gSineTable[(u8)(sprite->data1 + 64)] * sprite->data3 / 256;
- sprite->pos1.y = gSprites[sprite->data0].pos1.y + gSprites[sprite->data0].pos2.y + gSineTable[(u8)(sprite->data1 + 0)] * sprite->data3 / 512;
- sprite->data1 += 2;
- sprite->pos2.y = gSineTable[(u8)(sprite->data2 + 0)] / 32;
- sprite->data2 += 8;
- if ((sprite->data1 & 0xFF) < 128)
- sprite->subpriority = gSprites[sprite->data0].subpriority - 1;
+ sprite->pos1.x = gSprites[sprite->data[0]].pos1.x + gSprites[sprite->data[0]].pos2.x + gSineTable[(u8)(sprite->data[1] + 64)] * sprite->data[3] / 256;
+ sprite->pos1.y = gSprites[sprite->data[0]].pos1.y + gSprites[sprite->data[0]].pos2.y + gSineTable[(u8)(sprite->data[1] + 0)] * sprite->data[3] / 512;
+ sprite->data[1] += 2;
+ sprite->pos2.y = gSineTable[(u8)(sprite->data[2] + 0)] / 32;
+ sprite->data[2] += 8;
+ if ((sprite->data[1] & 0xFF) < 128)
+ sprite->subpriority = gSprites[sprite->data[0]].subpriority - 1;
else
- sprite->subpriority = gSprites[sprite->data0].subpriority + 1;
+ sprite->subpriority = gSprites[sprite->data[0]].subpriority + 1;
}
}
@@ -2963,8 +2968,8 @@ static void sub_813E930(u8 a)
spriteId = CreateSprite(&gSpriteTemplate_840B124, gSprites[a].pos1.x, gSprites[a].pos1.y, 0);
if (spriteId != 64)
{
- gSprites[spriteId].data0 = a;
- gSprites[spriteId].data1 = i * 32;
+ gSprites[spriteId].data[0] = a;
+ gSprites[spriteId].data[1] = i * 32;
}
}
}
@@ -2980,17 +2985,17 @@ static void sub_813E980(struct Sprite *sprite)
u8 r0;
u16 matrixNum;
- sprite->invisible = gSprites[sprite->data0].invisible;
- sprite->data7++;
- sprite->data6 += 8;
- sprite->pos1.x = sprite->data4 + gSineTable[(u8)(sprite->data3 + 64)] * sprite->data6 / 256;
- sprite->pos1.y = sprite->data5 + gSineTable[(u8)(sprite->data3 + 0)] * sprite->data6 / 256;
- r0 = sprite->data6 / 16;
+ sprite->invisible = gSprites[sprite->data[0]].invisible;
+ sprite->data[7]++;
+ sprite->data[6] += 8;
+ sprite->pos1.x = sprite->data[4] + gSineTable[(u8)(sprite->data[3] + 64)] * sprite->data[6] / 256;
+ sprite->pos1.y = sprite->data[5] + gSineTable[(u8)(sprite->data[3] + 0)] * sprite->data[6] / 256;
+ r0 = sprite->data[6] / 16;
if (r0 > 9)
r0 = 9;
matrixNum = (r0 + 18) & 31;
sprite->oam.matrixNum = matrixNum;
- if (sprite->data6 > 160)
+ if (sprite->data[6] > 160)
DestroySprite(sprite);
}
}
@@ -3007,26 +3012,26 @@ static void sub_813EA60(struct Sprite *sprite)
}
else
{
- sprite->data7++;
+ sprite->data[7]++;
sprite->invisible = TRUE;
- if (gSprites[sprite->data0].data0 == 1)
+ if (gSprites[sprite->data[0]].data[0] == 1)
{
- r6 = (sprite->data7 & 1);
+ r6 = (sprite->data[7] & 1);
if (!r6)
{
- r1 = sprite->data1 + gSprites[sprite->data0].pos1.x;
- r2 = sprite->data2 + gSprites[sprite->data0].pos1.y;
- spriteId = CreateSprite(&gSpriteTemplate_840B150, r1, r2, gSprites[sprite->data0].subpriority + 1);
+ r1 = sprite->data[1] + gSprites[sprite->data[0]].pos1.x;
+ r2 = sprite->data[2] + gSprites[sprite->data[0]].pos1.y;
+ spriteId = CreateSprite(&gSpriteTemplate_840B150, r1, r2, gSprites[sprite->data[0]].subpriority + 1);
if (spriteId != 64)
{
gSprites[spriteId].oam.affineMode = 3;
gSprites[spriteId].oam.matrixNum = 18;
CalcCenterToCornerVec(&gSprites[spriteId], 0, 1, 3);
- gSprites[spriteId].data0 = sprite->data0;
- gSprites[spriteId].data3 = gUnknown_0840B168[(sprite->data7 >> 1) & 7];
- gSprites[spriteId].data4 = r1;
- gSprites[spriteId].data5 = r2;
- gSprites[spriteId].data6 = r6;
+ gSprites[spriteId].data[0] = sprite->data[0];
+ gSprites[spriteId].data[3] = gUnknown_0840B168[(sprite->data[7] >> 1) & 7];
+ gSprites[spriteId].data[4] = r1;
+ gSprites[spriteId].data[5] = r2;
+ gSprites[spriteId].data[6] = r6;
}
}
}
@@ -3041,10 +3046,10 @@ static void InitIntroTorchicAttackAnim(u8 a)
spriteId = CreateSprite(&gSpriteTemplate_840B170, 0, 0, 0);
if (spriteId != 64)
{
- gSprites[spriteId].data0 = a;
- gSprites[spriteId].data1 = 0;
- gSprites[spriteId].data2 = 8;
- gSprites[spriteId].data3 = 24;
+ gSprites[spriteId].data[0] = a;
+ gSprites[spriteId].data[1] = 0;
+ gSprites[spriteId].data[2] = 8;
+ gSprites[spriteId].data[3] = 24;
}
for (i = 0; i < 10; i++)
{
@@ -3060,14 +3065,14 @@ static void sub_813EBBC(struct Sprite *sprite)
}
else
{
- sprite->invisible = gSprites[sprite->data0].invisible;
- sprite->data7 += 1;
- sprite->data6 += 8;
- sprite->pos1.x = sprite->data4 + gSineTable[(u8)(sprite->data3 + 64)] * sprite->data6 / 256;
- sprite->pos1.y = sprite->data5 + gSineTable[(u8)(sprite->data3 + 0)] * sprite->data6 / 256;
- sprite->pos2.y = gSineTable[(u8)(sprite->data1 + 0)] / 64;
- sprite->data1 += 16;
- if (sprite->pos1.y < sprite->data2)
+ sprite->invisible = gSprites[sprite->data[0]].invisible;
+ sprite->data[7] += 1;
+ sprite->data[6] += 8;
+ sprite->pos1.x = sprite->data[4] + gSineTable[(u8)(sprite->data[3] + 64)] * sprite->data[6] / 256;
+ sprite->pos1.y = sprite->data[5] + gSineTable[(u8)(sprite->data[3] + 0)] * sprite->data[6] / 256;
+ sprite->pos2.y = gSineTable[(u8)(sprite->data[1] + 0)] / 64;
+ sprite->data[1] += 16;
+ if (sprite->pos1.y < sprite->data[2])
DestroySprite(sprite);
}
}
@@ -3085,34 +3090,34 @@ static void sub_813EC90(struct Sprite *sprite)
}
else
{
- sprite->data7++;
+ sprite->data[7]++;
sprite->invisible = TRUE;
- if (gSprites[sprite->data0].data0 == 1)
+ if (gSprites[sprite->data[0]].data[0] == 1)
{
- r6 = sprite->data7 & 1;
+ r6 = sprite->data[7] & 1;
if (!r6)
{
- r1 = sprite->data1 + gSprites[sprite->data0].pos1.x;
- r2 = sprite->data2 + gSprites[sprite->data0].pos1.y;
- spriteId = CreateSprite(&gSpriteTemplate_840B1B0, r1, r2, gSprites[sprite->data0].subpriority + 1);
+ r1 = sprite->data[1] + gSprites[sprite->data[0]].pos1.x;
+ r2 = sprite->data[2] + gSprites[sprite->data[0]].pos1.y;
+ spriteId = CreateSprite(&gSpriteTemplate_840B1B0, r1, r2, gSprites[sprite->data[0]].subpriority + 1);
if (spriteId != 64)
{
gSprites[spriteId].oam.affineMode = 3;
gSprites[spriteId].oam.matrixNum = 17;
CalcCenterToCornerVec(&gSprites[spriteId], 0, 1, 3);
- gSprites[spriteId].data0 = sprite->data0;
- gSprites[spriteId].data1 = ((sprite->data7 >> 2) & 7) << 5;
- gSprites[spriteId].data2 = sprite->data3;
- gSprites[spriteId].data3 = 232;
- gSprites[spriteId].data4 = r1;
- gSprites[spriteId].data5 = r2;
- gSprites[spriteId].data6 = r6;
+ gSprites[spriteId].data[0] = sprite->data[0];
+ gSprites[spriteId].data[1] = ((sprite->data[7] >> 2) & 7) << 5;
+ gSprites[spriteId].data[2] = sprite->data[3];
+ gSprites[spriteId].data[3] = 232;
+ gSprites[spriteId].data[4] = r1;
+ gSprites[spriteId].data[5] = r2;
+ gSprites[spriteId].data[6] = r6;
}
}
- if (sprite->data6 < 112)
- sprite->data6 += 4;
+ if (sprite->data[6] < 112)
+ sprite->data[6] += 4;
}
- foo = 256 - gSineTable[(u8)sprite->data6] / 2;
+ foo = 256 - gSineTable[(u8)sprite->data[6]] / 2;
SetOamMatrix(17, foo, 0, 0, foo);
}
}
@@ -3124,10 +3129,10 @@ static void InitIntroMudkipAttackAnim(u8 a)
spriteId = CreateSprite(&gSpriteTemplate_840B1C8, 0, 0, 0);
if (spriteId != 64)
{
- gSprites[spriteId].data0 = a;
- gSprites[spriteId].data1 = 0;
- gSprites[spriteId].data2 = 12;
- gSprites[spriteId].data3 = 24;
+ gSprites[spriteId].data[0] = a;
+ gSprites[spriteId].data[1] = 0;
+ gSprites[spriteId].data[2] = 12;
+ gSprites[spriteId].data[3] = 24;
}
}
@@ -3136,8 +3141,8 @@ static void sub_813EDFC(struct Sprite *sprite)
u16 foo;
//I'm not sure why a switch statement was used here.
- //if (sprite->data0 != 1) would have been more appropriate.
- switch (sprite->data0)
+ //if (sprite->data[0] != 1) would have been more appropriate.
+ switch (sprite->data[0])
{
case 0:
default:
@@ -3145,23 +3150,23 @@ static void sub_813EDFC(struct Sprite *sprite)
sprite->oam.affineMode = 3;
sprite->oam.matrixNum = 18;
CalcCenterToCornerVec(sprite, 0, 3, 3);
- sprite->data1 = 0;
- sprite->data0 = 1;
+ sprite->data[1] = 0;
+ sprite->data[0] = 1;
//fall through
case 1:
break;
}
- sprite->data7++;
- if (sprite->data7 & 1)
+ sprite->data[7]++;
+ if (sprite->data[7] & 1)
{
sprite->invisible = TRUE;
}
else
{
sprite->invisible = FALSE;
- if (sprite->data1 < 64)
- sprite->data1++;
+ if (sprite->data[1] < 64)
+ sprite->data[1]++;
}
- foo = 256 - gSineTable[(u8)sprite->data1] / 2;
+ foo = 256 - gSineTable[(u8)sprite->data[1]] / 2;
SetOamMatrix(18, foo, 0, 0, foo);
}
diff --git a/src/scene/intro_credits_graphics.c b/src/scene/intro_credits_graphics.c
index cd0589af8..05c67696a 100755
--- a/src/scene/intro_credits_graphics.c
+++ b/src/scene/intro_credits_graphics.c
@@ -11,11 +11,11 @@
#include "main.h"
#include "new_game.h"
#include "palette.h"
-#include "rng.h"
+#include "random.h"
#include "save.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "species.h"
+#include "constants/species.h"
#include "task.h"
#include "title_screen.h"
#include "trig.h"
@@ -418,11 +418,11 @@ void sub_814910C(struct Sprite *sprite)
}
else
{
- s32 var = ((sprite->pos1.x << 16) | (u16)sprite->data2) + (u16)sprite->data1;
+ s32 var = ((sprite->pos1.x << 16) | (u16)sprite->data[2]) + (u16)sprite->data[1];
sprite->pos1.x = var >> 16;
- sprite->data2 = var;
+ sprite->data[2] = var;
if (sprite->pos1.x > 255) sprite->pos1.x = 0xFFE0;
- if (sprite->data0)
+ if (sprite->data[0])
{
sprite->pos2.y = -(gUnknown_02039358 + gUnknown_0203935A);
}
@@ -447,9 +447,9 @@ void sub_8149174(u8 a, struct UnknownStruct1 *b, const union AnimCmd *const *c,
gSprites[sprite].oam.paletteNum = 0;
gSprites[sprite].anims = c;
StartSpriteAnim(&gSprites[sprite], b[i].var0_0);
- gSprites[sprite].data0 = a;
- gSprites[sprite].data1 = b[i].var4;
- gSprites[sprite].data2 = 0;
+ gSprites[sprite].data[0] = a;
+ gSprites[sprite].data[1] = b[i].var4;
+ gSprites[sprite].data[2] = 0;
}
}
@@ -474,11 +474,11 @@ void nullsub_82()
void sub_81492A0(struct Sprite* sprite)
{
- sprite->invisible = gSprites[sprite->data0].invisible;
- sprite->pos1.x = gSprites[sprite->data0].pos1.x;
- sprite->pos1.y = gSprites[sprite->data0].pos1.y + 8;
- sprite->pos2.x = gSprites[sprite->data0].pos2.x;
- sprite->pos2.y = gSprites[sprite->data0].pos2.y;
+ sprite->invisible = gSprites[sprite->data[0]].invisible;
+ sprite->pos1.x = gSprites[sprite->data[0]].pos1.x;
+ sprite->pos1.y = gSprites[sprite->data[0]].pos1.y + 8;
+ sprite->pos2.x = gSprites[sprite->data[0]].pos2.x;
+ sprite->pos2.y = gSprites[sprite->data[0]].pos2.y;
}
@@ -487,7 +487,7 @@ u8 intro_create_brendan_sprite(s16 a, s16 b)
{
u8 sprite = CreateSprite(&gSpriteTemplate_8416CDC, a, b, 0);
u8 brendan = CreateSprite(&gSpriteTemplate_Brendan, a, b + 8, 1);
- gSprites[brendan].data0 = sprite;
+ gSprites[brendan].data[0] = sprite;
return sprite;
}
@@ -495,7 +495,7 @@ u8 intro_create_may_sprite(s16 a, s16 b)
{
u8 sprite = CreateSprite(&gSpriteTemplate_8416CF4, a, b, 0);
u8 may = CreateSprite(&gSpriteTemplate_May, a, b + 8, 1);
- gSprites[may].data0 = sprite;
+ gSprites[may].data[0] = sprite;
return sprite;
}
@@ -505,17 +505,17 @@ void nullsub_83()
void sub_81493C4(struct Sprite* sprite)
{
- sprite->invisible = gSprites[sprite->data0].invisible;
- sprite->pos1.y = gSprites[sprite->data0].pos1.y;
- sprite->pos2.x = gSprites[sprite->data0].pos2.x;
- sprite->pos2.y = gSprites[sprite->data0].pos2.y;
+ sprite->invisible = gSprites[sprite->data[0]].invisible;
+ sprite->pos1.y = gSprites[sprite->data[0]].pos1.y;
+ sprite->pos2.x = gSprites[sprite->data[0]].pos2.x;
+ sprite->pos2.y = gSprites[sprite->data[0]].pos2.y;
}
u8 intro_create_latios_sprite(s16 a, s16 b)
{
u8 sprite = CreateSprite(&gSpriteTemplate_8416D7C, a - 32, b, 2);
u8 latios = CreateSprite(&gSpriteTemplate_8416D7C, a + 32, b, 2);
- gSprites[latios].data0 = sprite;
+ gSprites[latios].data[0] = sprite;
StartSpriteAnim(&gSprites[latios], 1);
gSprites[latios].callback = &sub_81493C4;
return sprite;
@@ -525,7 +525,7 @@ u8 intro_create_latias_sprite(s16 a, s16 b)
{
u8 sprite = CreateSprite(&gSpriteTemplate_8416D94, a - 32, b, 2);
u8 latios = CreateSprite(&gSpriteTemplate_8416D94, a + 32, b, 2);
- gSprites[latios].data0 = sprite;
+ gSprites[latios].data[0] = sprite;
StartSpriteAnim(&gSprites[latios], 1);
gSprites[latios].callback = &sub_81493C4;
return sprite;
diff --git a/src/scene/new_game.c b/src/scene/new_game.c
index 6ab21c544..ee042a0de 100644
--- a/src/scene/new_game.c
+++ b/src/scene/new_game.c
@@ -18,7 +18,7 @@
#include "pokedex.h"
#include "pokemon_size_record.h"
#include "pokemon_storage_system.h"
-#include "rng.h"
+#include "random.h"
#include "roamer.h"
#include "overworld.h"
#include "rtc.h"
@@ -92,9 +92,9 @@ void sub_8052DA8(void)
gSaveBlock1.sbStruct.unkSB1.sb1_2EFC_struct[i] = gUnknown_08216604;
}
-void sub_8052DE4(void)
+void ZeroBattleTowerData(void)
{
- CpuFill32(0, &gSaveBlock2.filler_A8, sizeof(gSaveBlock2.filler_A8));
+ CpuFill32(0, &gSaveBlock2.battleTower, sizeof(gSaveBlock2.battleTower));
}
void WarpToTruck(void)
@@ -127,7 +127,7 @@ void NewGameInitData(void)
ZeroPlayerPartyMons();
ZeroEnemyPartyMons();
ResetPokedex();
- sub_8052DE4();
+ ZeroBattleTowerData();
memset(&gSaveBlock1, 0, sizeof(gSaveBlock1));
ClearMailData();
gSaveBlock2.specialSaveWarp = 0;
diff --git a/src/scene/title_screen.c b/src/scene/title_screen.c
index 2503b0654..f158500fe 100644
--- a/src/scene/title_screen.c
+++ b/src/scene/title_screen.c
@@ -360,7 +360,7 @@ static void UpdateLegendaryMarkingColor(u8);
void SpriteCallback_VersionBannerLeft(struct Sprite *sprite)
{
- struct Task *task = &gTasks[sprite->data1];
+ struct Task *task = &gTasks[sprite->data[1]];
if (task->data[1] != 0)
{
@@ -384,7 +384,7 @@ void SpriteCallback_VersionBannerLeft(struct Sprite *sprite)
void SpriteCallback_VersionBannerRight(struct Sprite *sprite)
{
- struct Task *task = &gTasks[sprite->data1];
+ struct Task *task = &gTasks[sprite->data[1]];
if (task->data[1] != 0)
{
@@ -405,11 +405,11 @@ void SpriteCallback_VersionBannerRight(struct Sprite *sprite)
void SpriteCallback_PressStartCopyrightBanner(struct Sprite *sprite)
{
- if (sprite->data0 == 1)
+ if (sprite->data[0] == 1)
{
- sprite->data1++;
+ sprite->data[1]++;
//Alternate between hidden and shown every 16th frame
- if (sprite->data1 & 16)
+ if (sprite->data[1] & 16)
sprite->invisible = FALSE;
else
sprite->invisible = TRUE;
@@ -429,7 +429,7 @@ static void CreatePressStartBanner(s16 x, s16 y)
{
spriteId = CreateSprite(&sStartCopyrightBannerSpriteTemplate, x, y, 0);
StartSpriteAnim(&gSprites[spriteId], i);
- gSprites[spriteId].data0 = 1;
+ gSprites[spriteId].data[0] = 1;
}
}
#elif GERMAN
@@ -554,27 +554,27 @@ void SpriteCallback_PokemonLogoShine(struct Sprite *sprite)
{
if (gTasks[gUnknown_0202F7E4].data[1] == 0 && sprite->pos1.x < 272)
{
- if (sprite->data0) //Flash background
+ if (sprite->data[0]) //Flash background
{
u16 backgroundColor;
if (sprite->pos1.x < DISPLAY_WIDTH / 2)
{
//Brighten background color
- if (sprite->data1 < 31)
- sprite->data1++;
- if (sprite->data1 < 31)
- sprite->data1++;
+ if (sprite->data[1] < 31)
+ sprite->data[1]++;
+ if (sprite->data[1] < 31)
+ sprite->data[1]++;
}
else
{
//Darken background color
- if (sprite->data1 != 0)
- sprite->data1--;
- if (sprite->data1 != 0)
- sprite->data1--;
+ if (sprite->data[1] != 0)
+ sprite->data[1]--;
+ if (sprite->data[1] != 0)
+ sprite->data[1]--;
}
- backgroundColor = _RGB(sprite->data1, sprite->data1, sprite->data1);
+ backgroundColor = _RGB(sprite->data[1], sprite->data[1], sprite->data[1]);
gPlttBufferFaded[0] = backgroundColor;
gPlttBufferFaded[PLTT_BUFFER_INDEX] = backgroundColor;
}
@@ -593,7 +593,7 @@ static void StartPokemonLogoShine(bool8 flashBackground)
u8 spriteId = CreateSprite(&sPokemonLogoShineSpriteTemplate, 0, 68, 0);
gSprites[spriteId].oam.objMode = 2;
- gSprites[spriteId].data0 = flashBackground;
+ gSprites[spriteId].data[0] = flashBackground;
}
static void VBlankCB(void)
@@ -758,12 +758,12 @@ static void Task_TitleScreenPhase1(u8 taskId)
//Create left side of version banner
spriteId = CreateSprite(&sVersionBannerLeftSpriteTemplate, VERSION_BANNER_LEFT_X, VERSION_BANNER_Y, 0);
gSprites[spriteId].invisible = TRUE;
- gSprites[spriteId].data1 = taskId;
+ gSprites[spriteId].data[1] = taskId;
//Create right side of version banner
spriteId = CreateSprite(&sVersionBannerRightSpriteTemplate, VERSION_BANNER_RIGHT_X, VERSION_BANNER_Y, 0);
gSprites[spriteId].invisible = TRUE;
- gSprites[spriteId].data1 = taskId;
+ gSprites[spriteId].data[1] = taskId;
gTasks[taskId].data[5] = 88;
gTasks[taskId].tCounter = 144;
diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c
index f98293a90..3ac2dc7a7 100644
--- a/src/script_pokemon_util_80C4BF0.c
+++ b/src/script_pokemon_util_80C4BF0.c
@@ -10,18 +10,19 @@
#include "debug.h"
#include "decompress.h"
#include "event_data.h"
-#include "items.h"
+#include "constants/items.h"
#include "link.h"
#include "load_save.h"
#include "main.h"
#include "menu.h"
#include "pokedex.h"
#include "pokemon.h"
-#include "rng.h"
+#include "random.h"
#include "overworld.h"
#include "script_pokemon_80C4.h"
-#include "species.h"
+#include "constants/species.h"
#include "task.h"
+#include "ewram.h"
#define CONTEST_ENTRY_PIC_LEFT 10
#define CONTEST_ENTRY_PIC_TOP 3
@@ -37,9 +38,9 @@ extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
extern u16 gSpecialVar_0x8006;
-extern u16 gScriptContestCategory;
-extern u16 gScriptContestRank;
-extern u16 gScriptResult;
+extern u16 gSpecialVar_ContestCategory;
+extern u16 gSpecialVar_ContestRank;
+extern u16 gSpecialVar_Result;
extern u32 gUnknown_03005D28;
@@ -90,7 +91,7 @@ void sub_80C4C78(void)
u16 var;
u16 returnVar;
- switch(gScriptContestCategory)
+ switch(gSpecialVar_ContestCategory)
{
case 0:
var = 8;
@@ -126,7 +127,7 @@ void sub_80C4CEC(void)
void sub_80C4CF8(void)
{
if(!gUnknown_02038690[gContestPlayerMonIndex]
- && gScriptContestRank == 3
+ && gSpecialVar_ContestRank == 3
&& (s16)gUnknown_02038678[gContestPlayerMonIndex] >= 800)
{
gSpecialVar_0x8004 = 1;
@@ -387,7 +388,7 @@ bool8 GiveMonArtistRibbon(void)
if(ribbon == FALSE
&& gUnknown_02038690[gContestPlayerMonIndex] == 0
- && gScriptContestRank == 3
+ && gSpecialVar_ContestRank == 3
&& (s16)gUnknown_02038678[gContestPlayerMonIndex] >= 800)
{
ribbon = TRUE;
@@ -487,9 +488,9 @@ void sub_80C5190(u8 taskId)
void ScriptGetMultiplayerId(void)
{
if(gIsLinkContest & 1)
- gScriptResult = GetMultiplayerId();
+ gSpecialVar_Result = GetMultiplayerId();
else
- gScriptResult = 4;
+ gSpecialVar_Result = 4;
}
void ScriptRandom(void)
@@ -501,11 +502,11 @@ void ScriptRandom(void)
{
gUnknown_03005D28 = 1103515245 * gUnknown_03005D28 + 24691;
random = gUnknown_03005D28 >> 16;
- scriptPtr = &gScriptResult;
+ scriptPtr = &gSpecialVar_Result;
}
else
{
- scriptPtr = &gScriptResult;
+ scriptPtr = &gSpecialVar_Result;
random = Random();
}
*scriptPtr = random % *scriptPtr;
@@ -572,7 +573,7 @@ u8 ScriptGiveEgg(u16 species)
struct Pokemon mon;
u8 isEgg;
- sub_8042044(&mon, species, 1);
+ CreateEgg(&mon, species, TRUE);
isEgg = TRUE;
SetMonData(&mon, MON_DATA_IS_EGG, &isEgg);
@@ -586,13 +587,13 @@ void CheckForAlivePartyMons(void)
switch(var)
{
case 1:
- gScriptResult = var;
+ gSpecialVar_Result = var;
break;
case 0:
- gScriptResult = var;
+ gSpecialVar_Result = var;
break;
case 2:
- gScriptResult = var;
+ gSpecialVar_Result = var;
break;
}
}
@@ -656,10 +657,10 @@ void sub_80C5580(void)
switch(var)
{
case 0:
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
break;
default:
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
break;
}
@@ -680,11 +681,11 @@ void SetBattleTowerPlayerParty(void)
{
case 0: // player quit battle tower?
LoadPlayerParty();
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
break;
default: // load battle tower.
ReducePlayerPartyToThree();
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
break;
}
diff --git a/src/script_pokemon_util_80F99CC.c b/src/script_pokemon_util_80F99CC.c
index e303d5173..33e7620f7 100644
--- a/src/script_pokemon_util_80F99CC.c
+++ b/src/script_pokemon_util_80F99CC.c
@@ -12,17 +12,18 @@
#include "overworld.h"
#include "script.h"
#include "script_pokemon_80F9.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
#include "string_util.h"
#include "task.h"
#include "text.h"
+#include "ewram.h"
extern u8 gPlayerPartyCount;
extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
extern u8 gUnknown_02038694;
-extern u16 gScriptResult;
+extern u16 gSpecialVar_Result;
extern void (*gFieldCallback)(void);
@@ -271,8 +272,8 @@ void HandleMoveTutorPartyMenu(u8 var)
void sub_80F9EEC(void)
{
- sub_809D9F0(&gPlayerParty[0], gSpecialVar_0x8004, gPlayerPartyCount - 1, c2_exit_to_overworld_2_switch, 0);
- unk_2018000.unk8 = 3;
+ ShowSelectMovePokemonSummaryScreen(&gPlayerParty[0], gSpecialVar_0x8004, gPlayerPartyCount - 1, c2_exit_to_overworld_2_switch, 0);
+ UNK_2018000_STRUCT.unk8 = 3;
gFieldCallback = sub_8080990;
}
@@ -280,11 +281,11 @@ void ScrSpecial_CountPokemonMoves(void) // count pokemon moves
{
u8 i;
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
for (i = 0; i < 4; i++) // checks MOVE1-MOVE4
if (GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_MOVE1 + i))
- gScriptResult++;
+ gSpecialVar_Result++;
}
void ScrSpecial_GetPokemonNicknameAndMoveName(void)
@@ -436,8 +437,8 @@ void sub_80FA0DC(void)
void sub_80FA148(void)
{
struct Pokemon *party = &gPlayerParty[gSpecialVar_0x8004];
- gScriptResult = 0;
+ gSpecialVar_Result = 0;
if (GetMonData(party, MON_DATA_IS_EGG))
- gScriptResult = 1;
+ gSpecialVar_Result = 1;
}
diff --git a/src/strings.c b/src/strings.c
index 6c8dce9d6..06bbadb8f 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -409,7 +409,7 @@ const u8 OtherText_Switch[] = _("SWITCH");
const u8 OtherText_PokeInfo[] = _("POKéMON INFO");
const u8 OtherText_PokeSkills[] = _("POKéMON SKILLS");
const u8 OtherText_BattleMoves[] = _("BATTLE MOVES");
-const u8 OtherText_ContestMoves[] = _("C0NTEST MOVES"); // why the l33t 0, that's stupid
+const u8 OtherText_ContestMoves[] = _("C0NTEST MOVES"); // The "O" in "CONTEST" is actually a 0.
const u8 OtherText_Info[] = _("INFO");
const u8 gOtherText_EggLongTime[] = _("It looks like this EGG will\ntake a long time to hatch.");
diff --git a/src/unknown_task.c b/src/unknown_task.c
index 5ec7fa6bc..0cc59fc66 100644
--- a/src/unknown_task.c
+++ b/src/unknown_task.c
@@ -4,20 +4,6 @@
#include "trig.h"
#include "unknown_task.h"
-struct UnknownStruct1
-{
- void *src[2];
- volatile void *dest;
- u32 unkC;
- void (*unk10)(void);
- u8 srcBank;
- u8 unk15;
- u8 unk16;
- u8 unk17;
- u8 taskId;
- u8 filler19[0x7];
-};
-
static void sub_80896F4(void);
static void sub_8089714(void);
@@ -32,7 +18,7 @@ extern u16 gUnknown_030042C0;
extern u8 gUnknown_0202FFA4;
-extern struct UnknownStruct1 gUnknown_03004DC0;
+extern struct UnknownTaskStruct2 gUnknown_03004DC0;
extern u16 gUnknown_03004DE0[][0x3C0];
diff --git a/sym_bss.txt b/sym_bss.txt
index 4f6d9c95b..6587c2c39 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -26,7 +26,7 @@
.include "src/field/tv.o"
.include "src/battle/battle_anim_80CA710.o"
.include "src/field/easy_chat.o"
- .include "src/field/pokenav.o"
+ .include "src/pokenav_before.o"
.include "src/field/mauville_man.o"
.include "src/field/menu_helpers.o"
.include "src/scene/contest_painting.o"
diff --git a/sym_common.txt b/sym_common.txt
index b1d99f58b..e271074d4 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -105,7 +105,7 @@ gUnknown_0300434C: @ 300434C
.space 0x4
.include "pokemon/pokemon_1.o"
- .include "engine/rng.o"
+ .include "engine/random.o"
.include "scene/egg_hatch.o"
.include "engine/load_save.o"
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 94388dfd6..14ac9e6a9 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -350,7 +350,7 @@ gPartyMenuType: @ 202E8FA
@ field_weather
.align 2
-gUnknown_0202F7E8: @ 202F7E8
+gWeather: @ 202F7E8
.space 0x200
gUnknown_0202F9E8: @ 202F9E8
@@ -494,10 +494,10 @@ gIsLinkContest: @ 203869A
gUnknown_0203869B: @ 203869B
.space 0x1
-gScriptContestCategory: @ 203869C
+gSpecialVar_ContestCategory: @ 203869C
.space 0x2
-gScriptContestRank: @ 203869E
+gSpecialVar_ContestRank: @ 203869E
.space 0x2
.include "src/field/shop.o"
diff --git a/tools/gbagfx/convert_png.c b/tools/gbagfx/convert_png.c
index 37904318c..cdfa39a7a 100644
--- a/tools/gbagfx/convert_png.c
+++ b/tools/gbagfx/convert_png.c
@@ -45,6 +45,40 @@ static FILE *PngReadOpen(char *path, png_structp *pngStruct, png_infop *pngInfo)
return fp;
}
+static unsigned char *ConvertBitDepth(unsigned char *src, int srcBitDepth, int destBitDepth, int numPixels)
+{
+ // Round the number of bits up to the next 8 and divide by 8 to get the number of bytes.
+ int srcSize = ((numPixels * srcBitDepth + 7) & ~7) / 8;
+ int destSize = ((numPixels * destBitDepth + 7) & ~7) / 8;
+ unsigned char *output = calloc(destSize, 1);
+ unsigned char *dest = output;
+ int i;
+ int j;
+ int destBit = 8 - destBitDepth;
+
+ for (i = 0; i < srcSize; i++)
+ {
+ unsigned char srcByte = src[i];
+
+ for (j = 8 - srcBitDepth; j >= 0; j -= srcBitDepth)
+ {
+ unsigned char pixel = (srcByte >> j) % (1 << srcBitDepth);
+
+ if (pixel >= (1 << destBitDepth))
+ FATAL_ERROR("Image exceeds the maximum color value for a %ibpp image.\n", destBitDepth);
+ *dest |= pixel << destBit;
+ destBit -= destBitDepth;
+ if (destBit < 0)
+ {
+ dest++;
+ destBit = 8 - destBitDepth;
+ }
+ }
+ }
+
+ return output;
+}
+
void ReadPng(char *path, struct Image *image)
{
png_structp png_ptr;
@@ -54,9 +88,6 @@ void ReadPng(char *path, struct Image *image)
int bit_depth = png_get_bit_depth(png_ptr, info_ptr);
- if (bit_depth != image->bitDepth)
- FATAL_ERROR("\"%s\" has a bit depth of %d, but the expected bit depth is %d.\n", path, bit_depth, image->bitDepth);
-
int color_type = png_get_color_type(png_ptr, info_ptr);
if (color_type != PNG_COLOR_TYPE_GRAY && color_type != PNG_COLOR_TYPE_PALETTE)
@@ -93,6 +124,17 @@ void ReadPng(char *path, struct Image *image)
free(row_pointers);
fclose(fp);
+
+ if (bit_depth != image->bitDepth)
+ {
+ unsigned char *src = image->pixels;
+
+ if (bit_depth != 1 && bit_depth != 2 && bit_depth != 4 && bit_depth != 8)
+ FATAL_ERROR("Bit depth of image must be 1, 2, 4, or 8.\n");
+ image->pixels = ConvertBitDepth(image->pixels, bit_depth, image->bitDepth, image->width * image->height);
+ free(src);
+ image->bitDepth = bit_depth;
+ }
}
void ReadPngPalette(char *path, struct Palette *palette)
diff --git a/tools/preproc/c_file.cpp b/tools/preproc/c_file.cpp
index 5bfdee086..24b3453e8 100644
--- a/tools/preproc/c_file.cpp
+++ b/tools/preproc/c_file.cpp
@@ -139,6 +139,7 @@ bool CFile::ConsumeNewline()
{
m_pos += 2;
m_lineNum++;
+ std::putchar('\n');
return true;
}
@@ -146,6 +147,7 @@ bool CFile::ConsumeNewline()
{
m_pos++;
m_lineNum++;
+ std::putchar('\n');
return true;
}
diff --git a/tools/preproc/preproc.cpp b/tools/preproc/preproc.cpp
index 8320a2d27..c9c6042df 100644
--- a/tools/preproc/preproc.cpp
+++ b/tools/preproc/preproc.cpp
@@ -89,8 +89,8 @@ void PreprocAsmFile(std::string filename)
if (globalLabel.length() != 0)
{
- std::printf("\t.global %s\n", globalLabel.c_str());
- std::printf("%s:\n", globalLabel.c_str());
+ const char *s = globalLabel.c_str();
+ std::printf("%s: ; .global %s\n", s, s);
}
else
{
diff --git a/tools/scaninc/c_file.cpp b/tools/scaninc/c_file.cpp
index c55ca9a8c..f7acc833f 100644
--- a/tools/scaninc/c_file.cpp
+++ b/tools/scaninc/c_file.cpp
@@ -136,10 +136,10 @@ bool CFile::ConsumeComment()
m_pos += 2;
while (m_buffer[m_pos] != '*' && m_buffer[m_pos + 1] != '/')
{
+ if (m_buffer[m_pos] == 0)
+ return false;
if (!ConsumeNewline())
- {
m_pos++;
- }
}
m_pos += 2;
return true;
@@ -149,6 +149,8 @@ bool CFile::ConsumeComment()
m_pos += 2;
while (!ConsumeNewline())
{
+ if (m_buffer[m_pos] == 0)
+ return false;
m_pos++;
}
return true;