summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgolem galvanize <golemgalvanize@github.com>2018-10-17 20:03:31 -0400
committergolem galvanize <golemgalvanize@github.com>2018-10-17 20:03:31 -0400
commit2c6d634acdf7bd22fb7e5c4933ff2e13712d2ec3 (patch)
tree9d51a6c1c07da6946022fe5867e34300bd71493d
parent65a0c48eec7d2184478841d232d1fb3c3350fa37 (diff)
parentf67bbbdaaa905833f1c2a315624128aafef9a4cb (diff)
Merge branch 'master' of https://github.com/pret/pokeemerald into decompile_party_menu
-rw-r--r--asm/battle_frontier_2.s3782
-rw-r--r--asm/battle_tower.s30
-rw-r--r--asm/cable_club.s2842
-rw-r--r--asm/field_control_avatar.s2512
-rw-r--r--asm/field_effect_helpers.s4603
-rw-r--r--asm/field_player_avatar.s6
-rw-r--r--asm/party_menu.s2
-rw-r--r--asm/script_pokemon_util_80F87D8.s6
-rw-r--r--asm/shop.s1434
-rw-r--r--asm/trainer_card.s12
-rw-r--r--common_syms/field_control_avatar.txt1
-rw-r--r--data/battle_frontier_2.s523
-rw-r--r--data/cable_club.s16
-rw-r--r--data/event_scripts.s3021
-rw-r--r--data/field_effect_helpers.s27
-rw-r--r--data/field_effect_scripts.s52
-rw-r--r--data/maps/AbandonedShip_Rooms2_1F/events.inc4
-rw-r--r--data/maps/BattleFrontier_BattleArenaLobby/events.inc4
-rw-r--r--data/maps/BattleFrontier_BattleDomeBattleRoom/events.inc8
-rw-r--r--data/maps/BattleFrontier_BattleDomeLobby/events.inc2
-rw-r--r--data/maps/BattleFrontier_BattlePalaceBattleRoom/events.inc2
-rw-r--r--data/maps/BattleFrontier_BattlePalaceCorridor/events.inc2
-rw-r--r--data/maps/BattleFrontier_BattlePalaceLobby/events.inc6
-rw-r--r--data/maps/BattleFrontier_BattlePikeCorridor/events.inc2
-rw-r--r--data/maps/BattleFrontier_BattlePikeLobby/events.inc4
-rw-r--r--data/maps/BattleFrontier_BattlePikeRandomRoom2/events.inc2
-rw-r--r--data/maps/BattleFrontier_BattlePikeThreePathRoom/events.inc4
-rw-r--r--data/maps/BattleFrontier_BattlePointExchangeServiceCorner/events.inc6
-rw-r--r--data/maps/BattleFrontier_BattlePyramidEmptySquare/events.inc2
-rw-r--r--data/maps/BattleFrontier_BattlePyramidLobby/events.inc2
-rw-r--r--data/maps/BattleFrontier_BattleTowerLobby/events.inc6
-rw-r--r--data/maps/BattleFrontier_BattleTowerLobby/scripts.inc6
-rw-r--r--data/maps/BattleFrontier_Lounge1/events.inc2
-rw-r--r--data/maps/BattleFrontier_Lounge3/events.inc6
-rw-r--r--data/maps/BattleFrontier_Lounge4/events.inc4
-rw-r--r--data/maps/BattleFrontier_Lounge5/events.inc4
-rw-r--r--data/maps/BattleFrontier_Lounge7/events.inc4
-rw-r--r--data/maps/BattleFrontier_Lounge8/events.inc6
-rw-r--r--data/maps/BattleFrontier_Mart/events.inc4
-rw-r--r--data/maps/BattleFrontier_OutsideEast/events.inc20
-rw-r--r--data/maps/BattleFrontier_OutsideWest/events.inc18
-rw-r--r--data/maps/BattleFrontier_PokemonCenter_1F/events.inc2
-rw-r--r--data/maps/BattleFrontier_RankingHall/events.inc2
-rw-r--r--data/maps/BattlePyramidSquare01/events.inc4
-rw-r--r--data/maps/BattlePyramidSquare02/events.inc4
-rw-r--r--data/maps/BattlePyramidSquare03/events.inc4
-rw-r--r--data/maps/BattlePyramidSquare04/events.inc4
-rw-r--r--data/maps/BattlePyramidSquare07/events.inc8
-rw-r--r--data/maps/BattlePyramidSquare08/events.inc8
-rw-r--r--data/maps/BattlePyramidSquare09/events.inc8
-rw-r--r--data/maps/BattlePyramidSquare11/events.inc8
-rw-r--r--data/maps/BattlePyramidSquare14/events.inc8
-rw-r--r--data/maps/BattlePyramidSquare15/events.inc8
-rw-r--r--data/maps/BattlePyramidSquare16/events.inc8
-rw-r--r--data/maps/DewfordTown/events.inc4
-rw-r--r--data/maps/DewfordTown_Hall/events.inc8
-rw-r--r--data/maps/DewfordTown_House1/events.inc2
-rw-r--r--data/maps/DewfordTown_House2/events.inc2
-rw-r--r--data/maps/DewfordTown_PokemonCenter_1F/events.inc4
-rw-r--r--data/maps/EverGrandeCity_PokemonCenter_1F/events.inc4
-rw-r--r--data/maps/EverGrandeCity_PokemonLeague_1F/events.inc4
-rw-r--r--data/maps/FallarborTown/events.inc2
-rw-r--r--data/maps/FallarborTown_BattleTentLobby/events.inc2
-rw-r--r--data/maps/FallarborTown_House1/events.inc2
-rw-r--r--data/maps/FallarborTown_Mart/events.inc4
-rw-r--r--data/maps/FallarborTown_PokemonCenter_1F/events.inc4
-rw-r--r--data/maps/FortreeCity/events.inc6
-rw-r--r--data/maps/FortreeCity_DecorationShop/events.inc2
-rw-r--r--data/maps/FortreeCity_Gym/events.inc8
-rw-r--r--data/maps/FortreeCity_House1/events.inc4
-rw-r--r--data/maps/FortreeCity_House2/events.inc4
-rw-r--r--data/maps/FortreeCity_House4/events.inc2
-rw-r--r--data/maps/FortreeCity_House5/events.inc2
-rw-r--r--data/maps/FortreeCity_Mart/events.inc2
-rw-r--r--data/maps/FortreeCity_PokemonCenter_1F/events.inc2
-rw-r--r--data/maps/LavaridgeTown/events.inc10
-rw-r--r--data/maps/LavaridgeTown_Gym_1F/events.inc6
-rw-r--r--data/maps/LavaridgeTown_Gym_B1F/events.inc6
-rw-r--r--data/maps/LavaridgeTown_HerbShop/events.inc6
-rw-r--r--data/maps/LavaridgeTown_House/events.inc4
-rw-r--r--data/maps/LavaridgeTown_Mart/events.inc4
-rw-r--r--data/maps/LavaridgeTown_PokemonCenter_1F/events.inc2
-rw-r--r--data/maps/LilycoveCity/events.inc12
-rw-r--r--data/maps/LilycoveCity_ContestHall/events.inc28
-rw-r--r--data/maps/LilycoveCity_ContestLobby/events.inc20
-rw-r--r--data/maps/LilycoveCity_CoveLilyMotel_2F/events.inc8
-rw-r--r--data/maps/LilycoveCity_DepartmentStoreRooftop/events.inc4
-rw-r--r--data/maps/LilycoveCity_DepartmentStore_1F/events.inc6
-rw-r--r--data/maps/LilycoveCity_DepartmentStore_2F/events.inc6
-rw-r--r--data/maps/LilycoveCity_DepartmentStore_3F/events.inc8
-rw-r--r--data/maps/LilycoveCity_DepartmentStore_4F/events.inc6
-rw-r--r--data/maps/LilycoveCity_DepartmentStore_5F/events.inc14
-rw-r--r--data/maps/LilycoveCity_Harbor/events.inc2
-rw-r--r--data/maps/LilycoveCity_House1/events.inc2
-rw-r--r--data/maps/LilycoveCity_House3/events.inc10
-rw-r--r--data/maps/LilycoveCity_House4/events.inc2
-rw-r--r--data/maps/LilycoveCity_LilycoveMuseum_1F/events.inc6
-rw-r--r--data/maps/LilycoveCity_LilycoveMuseum_2F/events.inc4
-rw-r--r--data/maps/LilycoveCity_MoveDeletersHouse/events.inc2
-rw-r--r--data/maps/LilycoveCity_PokemonTrainerFanClub/events.inc12
-rw-r--r--data/maps/LinkContestRoom1/events.inc2
-rw-r--r--data/maps/LittlerootTown/events.inc2
-rw-r--r--data/maps/LittlerootTown_BrendansHouse_1F/events.inc8
-rw-r--r--data/maps/LittlerootTown_BrendansHouse_2F/events.inc2
-rw-r--r--data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc2
-rw-r--r--data/maps/LittlerootTown_MaysHouse_1F/events.inc8
-rw-r--r--data/maps/LittlerootTown_MaysHouse_2F/events.inc2
-rw-r--r--data/maps/LittlerootTown_MaysHouse_2F/scripts.inc2
-rw-r--r--data/maps/MauvilleCity/events.inc6
-rw-r--r--data/maps/MauvilleCity_BikeShop/events.inc2
-rw-r--r--data/maps/MauvilleCity_GameCorner/events.inc10
-rw-r--r--data/maps/MauvilleCity_Gym/events.inc4
-rw-r--r--data/maps/MauvilleCity_House2/events.inc2
-rw-r--r--data/maps/MauvilleCity_Mart/events.inc4
-rw-r--r--data/maps/MauvilleCity_PokemonCenter_1F/events.inc2
-rw-r--r--data/maps/MeteorFalls_1F_2R/events.inc6
-rw-r--r--data/maps/MossdeepCity/events.inc6
-rw-r--r--data/maps/MossdeepCity_GameCorner_1F/events.inc4
-rw-r--r--data/maps/MossdeepCity_House1/events.inc2
-rw-r--r--data/maps/MossdeepCity_House2/events.inc4
-rw-r--r--data/maps/MossdeepCity_House4/events.inc4
-rw-r--r--data/maps/MossdeepCity_Mart/events.inc2
-rw-r--r--data/maps/MossdeepCity_PokemonCenter_1F/events.inc2
-rw-r--r--data/maps/MossdeepCity_PokemonCenter_2F/events.inc2
-rw-r--r--data/maps/MossdeepCity_SpaceCenter_1F/events.inc6
-rw-r--r--data/maps/MossdeepCity_SpaceCenter_2F/events.inc2
-rw-r--r--data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc2
-rw-r--r--data/maps/MossdeepCity_StevensHouse/events.inc2
-rw-r--r--data/maps/MtChimney/events.inc4
-rw-r--r--data/maps/MtPyre_1F/events.inc6
-rw-r--r--data/maps/MtPyre_2F/events.inc6
-rw-r--r--data/maps/MtPyre_3F/events.inc2
-rw-r--r--data/maps/MtPyre_Summit/events.inc4
-rw-r--r--data/maps/OldaleTown_House1/events.inc2
-rw-r--r--data/maps/OldaleTown_House2/events.inc2
-rw-r--r--data/maps/OldaleTown_Mart/events.inc2
-rw-r--r--data/maps/PacifidlogTown/events.inc2
-rw-r--r--data/maps/PacifidlogTown_House1/events.inc4
-rw-r--r--data/maps/PacifidlogTown_House3/events.inc2
-rw-r--r--data/maps/PacifidlogTown_House4/events.inc4
-rw-r--r--data/maps/PacifidlogTown_House5/events.inc2
-rw-r--r--data/maps/PacifidlogTown_PokemonCenter_1F/events.inc4
-rw-r--r--data/maps/PetalburgCity/events.inc4
-rw-r--r--data/maps/PetalburgCity_Gym/events.inc16
-rw-r--r--data/maps/PetalburgCity_House1/events.inc2
-rw-r--r--data/maps/PetalburgCity_House2/events.inc2
-rw-r--r--data/maps/PetalburgCity_Mart/events.inc2
-rw-r--r--data/maps/PetalburgCity_PokemonCenter_1F/events.inc4
-rw-r--r--data/maps/PetalburgCity_WallysHouse/events.inc4
-rw-r--r--data/maps/RecordCorner/events.inc2
-rw-r--r--data/maps/Route102/events.inc2
-rw-r--r--data/maps/Route103/events.inc12
-rw-r--r--data/maps/Route104/events.inc16
-rw-r--r--data/maps/Route104_MrBrineysHouse/events.inc2
-rw-r--r--data/maps/Route104_PrettyPetalFlowerShop/events.inc2
-rw-r--r--data/maps/Route105/events.inc2
-rw-r--r--data/maps/Route108/events.inc2
-rw-r--r--data/maps/Route109/events.inc14
-rw-r--r--data/maps/Route109_SeashoreHouse/events.inc2
-rw-r--r--data/maps/Route110/events.inc10
-rw-r--r--data/maps/Route110_TrickHousePuzzle6/events.inc2
-rw-r--r--data/maps/Route110_TrickHousePuzzle8/events.inc6
-rw-r--r--data/maps/Route111/events.inc16
-rw-r--r--data/maps/Route111_OldLadysRestStop/events.inc2
-rw-r--r--data/maps/Route111_WinstrateFamilysHouse/events.inc4
-rw-r--r--data/maps/Route112/events.inc4
-rw-r--r--data/maps/Route113/events.inc14
-rw-r--r--data/maps/Route113_GlassWorkshop/events.inc2
-rw-r--r--data/maps/Route114/events.inc4
-rw-r--r--data/maps/Route114_FossilManiacsHouse/events.inc2
-rw-r--r--data/maps/Route114_LanettesHouse/events.inc2
-rw-r--r--data/maps/Route115/events.inc6
-rw-r--r--data/maps/Route116/events.inc4
-rw-r--r--data/maps/Route116_TunnelersRestHouse/events.inc6
-rw-r--r--data/maps/Route117/events.inc8
-rw-r--r--data/maps/Route117_PokemonDayCare/events.inc2
-rw-r--r--data/maps/Route118/events.inc8
-rw-r--r--data/maps/Route119/events.inc16
-rw-r--r--data/maps/Route119_House/events.inc2
-rw-r--r--data/maps/Route119_WeatherInstitute_1F/events.inc6
-rw-r--r--data/maps/Route119_WeatherInstitute_2F/events.inc4
-rw-r--r--data/maps/Route120/events.inc16
-rw-r--r--data/maps/Route121/events.inc12
-rw-r--r--data/maps/Route123/events.inc22
-rw-r--r--data/maps/Route123_BerryMastersHouse/events.inc4
-rw-r--r--data/maps/Route124_DivingTreasureHuntersHouse/events.inc2
-rw-r--r--data/maps/Route125/events.inc4
-rw-r--r--data/maps/Route127/events.inc4
-rw-r--r--data/maps/Route128/events.inc4
-rw-r--r--data/maps/Route132/events.inc8
-rw-r--r--data/maps/Route133/events.inc8
-rw-r--r--data/maps/Route134/events.inc6
-rw-r--r--data/maps/RustboroCity/events.inc16
-rw-r--r--data/maps/RustboroCity_CuttersHouse/events.inc2
-rw-r--r--data/maps/RustboroCity_DevonCorp_1F/events.inc6
-rw-r--r--data/maps/RustboroCity_Flat1_1F/events.inc4
-rw-r--r--data/maps/RustboroCity_Flat1_2F/events.inc4
-rw-r--r--data/maps/RustboroCity_Flat2_1F/events.inc2
-rw-r--r--data/maps/RustboroCity_Flat2_2F/events.inc4
-rw-r--r--data/maps/RustboroCity_Flat2_3F/events.inc2
-rw-r--r--data/maps/RustboroCity_House2/events.inc4
-rw-r--r--data/maps/RustboroCity_House3/events.inc4
-rw-r--r--data/maps/RustboroCity_Mart/events.inc2
-rw-r--r--data/maps/RustboroCity_PokemonSchool/events.inc6
-rw-r--r--data/maps/RusturfTunnel/events.inc4
-rw-r--r--data/maps/SSTidalCorridor/events.inc2
-rw-r--r--data/maps/SSTidalRooms/events.inc10
-rw-r--r--data/maps/SafariZone_North/events.inc2
-rw-r--r--data/maps/SafariZone_South/events.inc2
-rw-r--r--data/maps/SafariZone_Southeast/events.inc4
-rw-r--r--data/maps/SafariZone_Southwest/events.inc2
-rw-r--r--data/maps/ShoalCave_LowTideEntranceRoom/events.inc2
-rw-r--r--data/maps/SingleBattleColosseum/events.inc2
-rw-r--r--data/maps/SlateportCity/events.inc20
-rw-r--r--data/maps/SlateportCity_BattleTentLobby/events.inc4
-rw-r--r--data/maps/SlateportCity_House1/events.inc2
-rw-r--r--data/maps/SlateportCity_House2/events.inc2
-rw-r--r--data/maps/SlateportCity_Mart/events.inc2
-rw-r--r--data/maps/SlateportCity_OceanicMuseum_1F/events.inc6
-rw-r--r--data/maps/SlateportCity_OceanicMuseum_2F/events.inc6
-rw-r--r--data/maps/SlateportCity_PokemonCenter_1F/events.inc2
-rw-r--r--data/maps/SlateportCity_PokemonFanClub/events.inc6
-rw-r--r--data/maps/SlateportCity_SternsShipyard_1F/events.inc2
-rw-r--r--data/maps/SootopolisCity/events.inc8
-rw-r--r--data/maps/SootopolisCity/scripts.inc2
-rw-r--r--data/maps/SootopolisCity_Gym_B1F/events.inc8
-rw-r--r--data/maps/SootopolisCity_House2/events.inc2
-rw-r--r--data/maps/SootopolisCity_House3/events.inc2
-rw-r--r--data/maps/SootopolisCity_House4/events.inc2
-rw-r--r--data/maps/SootopolisCity_House6/events.inc2
-rw-r--r--data/maps/SootopolisCity_House7/events.inc4
-rw-r--r--data/maps/SootopolisCity_MysteryEventsHouse_1F/events.inc2
-rw-r--r--data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc2
-rw-r--r--data/maps/SootopolisCity_PokemonCenter_1F/events.inc2
-rw-r--r--data/maps/TradeCenter/events.inc2
-rw-r--r--data/maps/TrainerHill_Entrance/events.inc2
-rw-r--r--data/maps/VerdanturfTown/events.inc2
-rw-r--r--data/maps/VerdanturfTown_BattleTentBattleRoom/events.inc2
-rw-r--r--data/maps/VerdanturfTown_BattleTentCorridor/events.inc2
-rw-r--r--data/maps/VerdanturfTown_BattleTentLobby/events.inc4
-rw-r--r--data/maps/VerdanturfTown_FriendshipRatersHouse/events.inc2
-rw-r--r--data/maps/VerdanturfTown_House/events.inc4
-rw-r--r--data/maps/VerdanturfTown_Mart/events.inc2
-rw-r--r--data/maps/VerdanturfTown_PokemonCenter_1F/events.inc4
-rw-r--r--data/maps/VerdanturfTown_WandasHouse/events.inc6
-rw-r--r--data/maps/VictoryRoad_1F/events.inc10
-rw-r--r--data/maps/VictoryRoad_B1F/events.inc10
-rw-r--r--data/maps/VictoryRoad_B2F/events.inc12
-rw-r--r--data/scripts/apprentice.inc2869
-rw-r--r--data/scripts/cable_club.inc30
-rw-r--r--data/scripts/day_care.inc2
-rw-r--r--data/scripts/field_move_scripts.inc8
-rw-r--r--data/scripts/secret_power_tm.inc4
-rw-r--r--data/scripts/tv.inc2
-rw-r--r--data/shop.s5
-rw-r--r--data/specials.inc6
-rw-r--r--graphics/event_objects/pics/people/contest_judge.png (renamed from graphics/event_objects/pics/people/contest_old_man.png)bin756 -> 756 bytes
-rw-r--r--graphics/event_objects/pics/people/devon_employee.png (renamed from graphics/event_objects/pics/people/man_7.png)bin716 -> 716 bytes
-rw-r--r--graphics/event_objects/pics/people/expert_f.png (renamed from graphics/event_objects/pics/people/old_woman_1.png)bin602 -> 602 bytes
-rw-r--r--graphics/event_objects/pics/people/expert_m.png (renamed from graphics/event_objects/pics/people/old_man_1.png)bin657 -> 657 bytes
-rw-r--r--graphics/event_objects/pics/people/gameboy_kid.png (renamed from graphics/event_objects/pics/people/boy_5.png)bin401 -> 401 bytes
-rw-r--r--graphics/event_objects/pics/people/link_receptionist.png (renamed from graphics/event_objects/pics/people/woman_6.png)bin709 -> 709 bytes
-rw-r--r--graphics/event_objects/pics/people/little_boy.png (renamed from graphics/event_objects/pics/people/little_boy_2.png)bin442 -> 442 bytes
-rw-r--r--graphics/event_objects/pics/people/little_girl.png (renamed from graphics/event_objects/pics/people/little_girl_2.png)bin478 -> 478 bytes
-rw-r--r--graphics/event_objects/pics/people/man_3.pngbin784 -> 742 bytes
-rw-r--r--graphics/event_objects/pics/people/man_4.pngbin742 -> 704 bytes
-rw-r--r--graphics/event_objects/pics/people/man_5.pngbin704 -> 741 bytes
-rw-r--r--graphics/event_objects/pics/people/man_6.pngbin741 -> 0 bytes
-rw-r--r--graphics/event_objects/pics/people/ninja_boy.png (renamed from graphics/event_objects/pics/people/little_boy_1.png)bin446 -> 446 bytes
-rw-r--r--graphics/event_objects/pics/people/old_man.png (renamed from graphics/event_objects/pics/people/old_man_2.png)bin469 -> 469 bytes
-rw-r--r--graphics/event_objects/pics/people/old_woman.png (renamed from graphics/event_objects/pics/people/old_woman_2.png)bin638 -> 638 bytes
-rw-r--r--graphics/event_objects/pics/people/pokefan_f.pngbin0 -> 756 bytes
-rw-r--r--graphics/event_objects/pics/people/pokefan_m.pngbin0 -> 784 bytes
-rw-r--r--graphics/event_objects/pics/people/rich_boy.png (renamed from graphics/event_objects/pics/people/boy_4.png)bin759 -> 759 bytes
-rw-r--r--graphics/event_objects/pics/people/twin.png (renamed from graphics/event_objects/pics/people/little_girl_1.png)bin496 -> 496 bytes
-rw-r--r--graphics/event_objects/pics/people/woman_2.pngbin756 -> 774 bytes
-rw-r--r--graphics/event_objects/pics/people/woman_3.pngbin774 -> 701 bytes
-rw-r--r--graphics/event_objects/pics/people/woman_4.pngbin701 -> 736 bytes
-rw-r--r--graphics/event_objects/pics/people/woman_5.pngbin736 -> 830 bytes
-rw-r--r--graphics/event_objects/pics/people/woman_7.pngbin830 -> 0 bytes
-rw-r--r--include/apprentice.h24
-rw-r--r--include/battle.h168
-rw-r--r--include/battle_frontier_1.h6
-rw-r--r--include/battle_frontier_2.h1
-rw-r--r--include/battle_pyramid_bag.h2
-rw-r--r--include/blend_palette.h6
-rw-r--r--include/cable_club.h1
-rw-r--r--include/constants/apprentice.h22
-rw-r--r--include/constants/event_objects.h46
-rw-r--r--include/constants/flags.h2
-rw-r--r--include/daycare.h2
-rw-r--r--include/event_object_movement.h16
-rw-r--r--include/event_scripts.h4
-rw-r--r--include/field_control_avatar.h40
-rw-r--r--include/field_effect_helpers.h36
-rw-r--r--include/field_message_box.h10
-rw-r--r--include/field_player_avatar.h3
-rw-r--r--include/field_poison.h2
-rw-r--r--include/field_screen.h4
-rw-r--r--include/field_specials.h10
-rw-r--r--include/field_weather.h2
-rw-r--r--include/fldeff_80F9BCC.h2
-rw-r--r--include/global.fieldmap.h16
-rw-r--r--include/global.h60
-rw-r--r--include/item_menu.h2
-rw-r--r--include/link.h11
-rw-r--r--include/malloc.h1
-rw-r--r--include/menu.h3
-rw-r--r--include/metatile_behavior.h10
-rw-r--r--include/overworld.h3
-rw-r--r--include/palette.h2
-rw-r--r--include/party_menu.h4
-rw-r--r--include/pokemon.h71
-rw-r--r--include/pokenav.h8
-rw-r--r--include/rom6.h2
-rw-r--r--include/rom_8011DC0.h2
-rw-r--r--include/rom_81BE66C.h12
-rw-r--r--include/rotating_gate.h2
-rw-r--r--include/script.h4
-rw-r--r--include/script_menu.h1
-rw-r--r--include/script_pokemon_util_80F87D8.h1
-rw-r--r--include/secret_base.h6
-rw-r--r--include/shop.h36
-rw-r--r--include/string_util.h2
-rw-r--r--include/strings.h17
-rw-r--r--include/text.h1
-rw-r--r--include/trainer_card.h9
-rw-r--r--include/tv.h1
-rw-r--r--include/util.h1
-rw-r--r--ld_script.txt123
-rw-r--r--songs.mk165
-rw-r--r--sound/song_table.inc34
-rw-r--r--sound/songs/midi/se_a.midbin0 -> 75 bytes
-rw-r--r--sound/songs/midi/se_ban.midbin0 -> 148 bytes
-rw-r--r--sound/songs/midi/se_basabasa.midbin0 -> 266 bytes
-rw-r--r--sound/songs/midi/se_bidoro.midbin0 -> 135 bytes
-rw-r--r--sound/songs/midi/se_boo.midbin0 -> 91 bytes
-rw-r--r--sound/songs/midi/se_bowa.midbin0 -> 86 bytes
-rw-r--r--sound/songs/midi/se_bowa2.midbin0 -> 181 bytes
-rw-r--r--sound/songs/midi/se_bt_start.midbin0 -> 334 bytes
-rw-r--r--sound/songs/midi/se_c_gaji.midbin0 -> 80 bytes
-rw-r--r--sound/songs/midi/se_c_maku_d.midbin0 -> 195 bytes
-rw-r--r--sound/songs/midi/se_c_maku_u.midbin0 -> 195 bytes
-rw-r--r--sound/songs/midi/se_c_pasi.midbin0 -> 86 bytes
-rw-r--r--sound/songs/midi/se_c_pikon.midbin0 -> 112 bytes
-rw-r--r--sound/songs/midi/se_c_syu.midbin0 -> 112 bytes
-rw-r--r--sound/songs/midi/se_card.midbin0 -> 184 bytes
-rw-r--r--sound/songs/midi/se_curtain.midbin0 -> 427 bytes
-rw-r--r--sound/songs/midi/se_curtain1.midbin0 -> 418 bytes
-rw-r--r--sound/songs/midi/se_dansa.midbin0 -> 83 bytes
-rw-r--r--sound/songs/midi/se_daugi.midbin0 -> 149 bytes
-rw-r--r--sound/songs/midi/se_dendou.midbin0 -> 703 bytes
-rw-r--r--sound/songs/midi/se_doku.midbin0 -> 107 bytes
-rw-r--r--sound/songs/midi/se_door.midbin0 -> 76 bytes
-rw-r--r--sound/songs/midi/se_e.midbin0 -> 75 bytes
-rw-r--r--sound/songs/midi/se_elebeta.midbin0 -> 104 bytes
-rw-r--r--sound/songs/midi/se_esuka.midbin0 -> 174 bytes
-rw-r--r--sound/songs/midi/se_exp.midbin0 -> 621 bytes
-rw-r--r--sound/songs/midi/se_expmax.midbin0 -> 138 bytes
-rw-r--r--sound/songs/midi/se_fu_zaku.midbin0 -> 124 bytes
-rw-r--r--sound/songs/midi/se_fu_zaku2.midbin0 -> 92 bytes
-rw-r--r--sound/songs/midi/se_fu_zuzuzu.midbin0 -> 140 bytes
-rw-r--r--sound/songs/midi/se_fuusen1.midbin0 -> 118 bytes
-rw-r--r--sound/songs/midi/se_fuusen2.midbin0 -> 110 bytes
-rw-r--r--sound/songs/midi/se_fuusen3.midbin0 -> 142 bytes
-rw-r--r--sound/songs/midi/se_hantei1.midbin0 -> 105 bytes
-rw-r--r--sound/songs/midi/se_hantei2.midbin0 -> 143 bytes
-rw-r--r--sound/songs/midi/se_hashi.midbin0 -> 86 bytes
-rw-r--r--sound/songs/midi/se_hazure.midbin0 -> 99 bytes
-rw-r--r--sound/songs/midi/se_hi_turun.midbin0 -> 132 bytes
-rw-r--r--sound/songs/midi/se_hinsi.midbin0 -> 106 bytes
-rw-r--r--sound/songs/midi/se_i.midbin0 -> 75 bytes
-rw-r--r--sound/songs/midi/se_jido_doa.midbin0 -> 72 bytes
-rw-r--r--sound/songs/midi/se_jihanki.midbin0 -> 88 bytes
-rw-r--r--sound/songs/midi/se_jite_pyoko.midbin0 -> 83 bytes
-rw-r--r--sound/songs/midi/se_jitensya.midbin0 -> 68 bytes
-rw-r--r--sound/songs/midi/se_jyuni.midbin0 -> 267 bytes
-rw-r--r--sound/songs/midi/se_kaidan.midbin0 -> 124 bytes
-rw-r--r--sound/songs/midi/se_kaifuku.midbin0 -> 91 bytes
-rw-r--r--sound/songs/midi/se_ki_gasyan.midbin0 -> 152 bytes
-rw-r--r--sound/songs/midi/se_kon.midbin0 -> 103 bytes
-rw-r--r--sound/songs/midi/se_kon2.midbin0 -> 103 bytes
-rw-r--r--sound/songs/midi/se_kon3.midbin0 -> 103 bytes
-rw-r--r--sound/songs/midi/se_kon4.midbin0 -> 103 bytes
-rw-r--r--sound/songs/midi/se_kouka_h.midbin0 -> 271 bytes
-rw-r--r--sound/songs/midi/se_kouka_l.midbin0 -> 103 bytes
-rw-r--r--sound/songs/midi/se_kouka_m.midbin0 -> 123 bytes
-rw-r--r--sound/songs/se_a.s45
-rw-r--r--sound/songs/se_ban.s70
-rw-r--r--sound/songs/se_basabasa.s123
-rw-r--r--sound/songs/se_bidoro.s61
-rw-r--r--sound/songs/se_boo.s47
-rw-r--r--sound/songs/se_bowa.s45
-rw-r--r--sound/songs/se_bowa2.s83
-rw-r--r--sound/songs/se_bt_start.s212
-rw-r--r--sound/songs/se_c_gaji.s44
-rw-r--r--sound/songs/se_c_maku_d.s95
-rw-r--r--sound/songs/se_c_maku_u.s95
-rw-r--r--sound/songs/se_c_pasi.s45
-rw-r--r--sound/songs/se_c_pikon.s54
-rw-r--r--sound/songs/se_c_syu.s54
-rw-r--r--sound/songs/se_card.s84
-rw-r--r--sound/songs/se_curtain.s166
-rw-r--r--sound/songs/se_curtain1.s168
-rw-r--r--sound/songs/se_dansa.s46
-rw-r--r--sound/songs/se_daugi.s80
-rw-r--r--sound/songs/se_dendou.s197
-rw-r--r--sound/songs/se_doku.s50
-rw-r--r--sound/songs/se_door.s42
-rw-r--r--sound/songs/se_e.s45
-rw-r--r--sound/songs/se_elebeta.s71
-rw-r--r--sound/songs/se_esuka.s93
-rw-r--r--sound/songs/se_exp.s333
-rw-r--r--sound/songs/se_expmax.s76
-rw-r--r--sound/songs/se_fu_zaku.s54
-rw-r--r--sound/songs/se_fu_zaku2.s48
-rw-r--r--sound/songs/se_fu_zuzuzu.s73
-rw-r--r--sound/songs/se_fuusen1.s53
-rw-r--r--sound/songs/se_fuusen2.s52
-rw-r--r--sound/songs/se_fuusen3.s60
-rw-r--r--sound/songs/se_hantei1.s58
-rw-r--r--sound/songs/se_hantei2.s70
-rw-r--r--sound/songs/se_hashi.s46
-rw-r--r--sound/songs/se_hazure.s55
-rw-r--r--sound/songs/se_hi_turun.s62
-rw-r--r--sound/songs/se_hinsi.s50
-rw-r--r--sound/songs/se_i.s45
-rw-r--r--sound/songs/se_jido_doa.s41
-rw-r--r--sound/songs/se_jihanki.s46
-rw-r--r--sound/songs/se_jite_pyoko.s45
-rw-r--r--sound/songs/se_jitensya.s40
-rw-r--r--sound/songs/se_jyuni.s127
-rw-r--r--sound/songs/se_kaidan.s61
-rw-r--r--sound/songs/se_kaifuku.s46
-rw-r--r--sound/songs/se_ki_gasyan.s76
-rw-r--r--sound/songs/se_kon.s53
-rw-r--r--sound/songs/se_kon2.s53
-rw-r--r--sound/songs/se_kon3.s53
-rw-r--r--sound/songs/se_kon4.s53
-rw-r--r--sound/songs/se_kouka_h.s105
-rw-r--r--sound/songs/se_kouka_l.s56
-rw-r--r--sound/songs/se_kouka_m.s82
-rw-r--r--spritesheet_rules.mk40
-rw-r--r--src/apprentice.c2380
-rw-r--r--src/battle_ai_script_commands.c4
-rw-r--r--src/battle_ai_switch_items.c2
-rw-r--r--src/battle_anim_80A5C6C.c3
-rw-r--r--src/battle_anim_80A9C70.c2
-rw-r--r--src/battle_controller_player.c2
-rw-r--r--src/battle_controller_player_partner.c2
-rw-r--r--src/battle_controllers.c2
-rw-r--r--src/battle_dome.c4
-rw-r--r--src/battle_factory.c2
-rw-r--r--src/battle_gfx_sfx_util.c1
-rw-r--r--src/battle_interface.c2
-rw-r--r--src/battle_main.c78
-rw-r--r--src/battle_pyramid_bag.c12
-rw-r--r--src/battle_script_commands.c84
-rw-r--r--src/battle_setup.c12
-rw-r--r--src/battle_transition.c2
-rw-r--r--src/battle_tv.c2
-rw-r--r--src/battle_util.c38
-rw-r--r--src/berry.c6
-rw-r--r--src/blend_palette.c19
-rw-r--r--src/cable_club.c1299
-rw-r--r--src/contest.c1
-rwxr-xr-xsrc/data/field_event_obj/event_object_graphics.h40
-rwxr-xr-xsrc/data/field_event_obj/event_object_graphics_info.h44
-rwxr-xr-xsrc/data/field_event_obj/event_object_graphics_info_pointers.h80
-rwxr-xr-xsrc/data/field_event_obj/event_object_pic_tables.h428
-rwxr-xr-xsrc/data/field_event_obj/field_effect_objects.h40
-rw-r--r--src/data/pokemon/experience_tables.h2
-rw-r--r--src/daycare.c6
-rw-r--r--src/easy_chat.c2
-rw-r--r--src/event_object_movement.c15
-rw-r--r--src/evolution_scene.c2
-rw-r--r--src/field_control_avatar.c1058
-rwxr-xr-xsrc/field_effect_helpers.c1776
-rwxr-xr-xsrc/field_message_box.c2
-rw-r--r--src/field_player_avatar.c4
-rw-r--r--src/field_poison.c2
-rw-r--r--src/field_specials.c2
-rw-r--r--src/field_tasks.c4
-rw-r--r--src/fldeff_cut.c15
-rw-r--r--src/fldeff_sweetscent.c2
-rw-r--r--src/hall_of_fame.c2
-rw-r--r--src/intro.c2
-rwxr-xr-xsrc/item_menu.c3
-rwxr-xr-xsrc/item_use.c4
-rw-r--r--src/metatile_behavior.c8
-rw-r--r--src/money.c3
-rw-r--r--src/mystery_event_menu.c2
-rw-r--r--src/new_game.c4
-rw-r--r--src/overworld.c14
-rw-r--r--src/palette.c2
-rw-r--r--src/pokeblock_feed.c2
-rw-r--r--src/pokemon.c33
-rw-r--r--src/pokemon_animation.c2
-rw-r--r--src/pokemon_summary_screen.c4
-rw-r--r--src/record_mixing.c48
-rw-r--r--src/rom_8011DC0.c6
-rw-r--r--src/scrcmd.c6
-rw-r--r--src/script.c6
-rw-r--r--src/secret_base.c8
-rwxr-xr-xsrc/shop.c679
-rw-r--r--src/start_menu.c4
-rw-r--r--src/string_util.c104
-rw-r--r--src/task.c4
-rw-r--r--src/text.c68
-rw-r--r--src/tileset_anims.c2
-rw-r--r--src/tv.c2
-rw-r--r--src/util.c18
-rw-r--r--sym_common.txt4
-rw-r--r--sym_ewram.txt13
514 files changed, 12138 insertions, 24609 deletions
diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s
index 4df690e59..3f6591927 100644
--- a/asm/battle_frontier_2.s
+++ b/asm/battle_frontier_2.s
@@ -5,3778 +5,6 @@
.text
- thumb_func_start sub_819F99C
-sub_819F99C: @ 819F99C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r1, [r2]
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDE
- ldrb r1, [r1]
- movs r6, 0
- adds r7, r2, 0
- ldr r0, =gStringVar1
- mov r8, r0
- cmp r1, 0
- beq _0819F9DC
-_0819F9C2:
- adds r0, r1, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r1, r0, 24
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r1, 0
- beq _0819F9DC
- cmp r6, 0x3
- bls _0819F9C2
-_0819F9DC:
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r1, [r7]
- adds r1, r4, r1
- movs r0, 0x8A
- lsls r0, 1
- adds r1, r0
- mov r0, r8
- bl StringCopy7
- ldr r0, [r7]
- adds r0, r4
- ldr r1, =0x0000011b
- adds r0, r1
- ldrb r1, [r0]
- mov r0, r8
- bl ConvertInternationalString
- ldr r0, =gStringVar2
- ldr r1, [r7]
- adds r1, r4
- adds r1, 0xDE
- ldrb r1, [r1]
- movs r2, 0x1
- adds r3, r6, 0
- bl ConvertIntToDecimalStringN
- ldr r1, =gUnknown_08611330
- ldr r0, [r7]
- adds r0, r4
- adds r0, 0xDC
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r0, 25
- adds r0, r1
- ldr r1, [r0]
- ldr r0, =gStringVar4
- bl StringExpandPlaceholders
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F99C
-
- thumb_func_start sub_819FA50
-sub_819FA50: @ 819FA50
- push {lr}
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_819FA50
-
- thumb_func_start sub_819FA5C
-sub_819FA5C: @ 819FA5C
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r2, 0
- adds r4, r3, 0
- adds r4, 0x28
- ldr r0, =0x0000ffff
- adds r5, r0, 0
-_0819FA6A:
- lsls r0, r2, 1
- adds r0, r4, r0
- ldrh r1, [r0]
- orrs r1, r5
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0819FA6A
- adds r1, r3, 0
- adds r1, 0x38
- movs r0, 0xFF
- strb r0, [r1]
- ldrb r1, [r3]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819FA5C
-
- thumb_func_start sub_819FAA0
-sub_819FAA0: @ 819FAA0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- adds r1, 0xB2
- ldrb r2, [r1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- movs r0, 0
- mov r12, r0
- adds r5, r3, 0
- mov r8, r0
- ldr r1, =0x0000ffff
- mov r10, r1
-_0819FAC6:
- movs r2, 0
- mov r3, r12
- lsls r7, r3, 4
- movs r4, 0x1
- add r4, r12
- mov r9, r4
- adds r0, r7, r3
- lsls r3, r0, 2
-_0819FAD6:
- ldr r1, [r5]
- lsls r0, r2, 1
- adds r0, r3
- movs r4, 0x82
- lsls r4, 1
- adds r1, r4
- adds r1, r0
- ldrh r0, [r1]
- mov r4, r10
- orrs r0, r4
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0819FAD6
- ldr r2, [r5]
- mov r0, r12
- adds r3, r7, r0
- lsls r3, 2
- adds r2, r3
- adds r2, 0xDC
- ldrb r1, [r2]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2]
- ldr r0, [r5]
- adds r0, r3
- movs r1, 0x8A
- lsls r1, 1
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xDC
- ldrb r2, [r1]
- movs r0, 0x61
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, r3
- adds r0, 0xDE
- mov r4, r8
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, r3
- adds r0, 0xDD
- strb r4, [r0]
- movs r2, 0
- ldr r6, =gSaveBlock2Ptr
- movs r4, 0x88
- lsls r4, 1
-_0819FB48:
- ldr r0, [r6]
- adds r1, r2, r3
- adds r0, r4
- adds r0, r1
- mov r1, r8
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _0819FB48
- ldr r0, [r5]
- mov r3, r12
- adds r2, r7, r3
- lsls r2, 2
- adds r0, r2
- ldr r4, =gGameLanguage
- ldrb r1, [r4]
- ldr r3, =0x0000011b
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r5]
- movs r4, 0x8E
- lsls r4, 1
- adds r0, r4
- adds r0, r2
- mov r1, r8
- str r1, [r0]
- mov r3, r9
- lsls r0, r3, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0x3
- bls _0819FAC6
- bl sub_81A087C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819FAA0
-
- thumb_func_start sub_819FBB0
-sub_819FBB0: @ 819FBB0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB1
- ldrb r0, [r0]
- movs r1, 0x3
- ands r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- .pool
- thumb_func_end sub_819FBB0
-
- thumb_func_start sub_819FBC8
-sub_819FBC8: @ 819FBC8
- push {r4,r5,lr}
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- adds r0, 0xDE
- ldrb r0, [r0]
- cmp r0, 0
- bne _0819FC10
- adds r4, r2, 0
- ldr r5, =gUnknown_08611548
-_0819FBDA:
- bl Random
- ldr r2, [r4]
- lsls r0, 16
- movs r1, 0xE0
- lsls r1, 11
- ands r1, r0
- lsrs r1, 16
- adds r1, r5
- ldrb r0, [r1]
- adds r2, 0xB0
- strb r0, [r2]
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0xB0
- adds r0, 0xDC
- ldrb r0, [r0]
- lsls r0, 27
- ldrb r1, [r1]
- lsrs r0, 27
- cmp r1, r0
- beq _0819FBDA
- b _0819FC38
- .pool
-_0819FC10:
- adds r4, r2, 0
-_0819FC12:
- bl Random
- ldr r2, [r4]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- adds r2, 0xB0
- strb r0, [r2]
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0xB0
- adds r0, 0xDC
- ldrb r0, [r0]
- lsls r0, 27
- ldrb r1, [r1]
- lsrs r0, 27
- cmp r1, r0
- beq _0819FC12
-_0819FC38:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_819FBC8
-
- thumb_func_start sub_819FC40
-sub_819FC40: @ 819FC40
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r2, [r1]
- adds r2, 0xB1
- movs r1, 0x3
- ands r0, r1
- ldrb r3, [r2]
- subs r1, 0x7
- ands r1, r3
- orrs r1, r0
- strb r1, [r2]
- bx lr
- .pool
- thumb_func_end sub_819FC40
-
- thumb_func_start sub_819FC60
-sub_819FC60: @ 819FC60
- push {r4-r7,lr}
- sub sp, 0xC
- movs r5, 0
-_0819FC66:
- mov r1, sp
- adds r0, r1, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0819FC66
- movs r5, 0
-_0819FC78:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- mov r7, sp
- adds r2, r7, r4
- ldrb r3, [r2]
- adds r1, r7, r0
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x31
- bls _0819FC78
- movs r5, 0
- ldr r6, =gSaveBlock2Ptr
- movs r4, 0xF
-_0819FCBC:
- ldr r3, [r6]
- adds r3, 0xB4
- adds r3, r5
- lsls r2, r5, 1
- mov r1, sp
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 4
- adds r2, 0x1
- mov r7, sp
- adds r0, r7, r2
- ldrb r2, [r0]
- adds r0, r4, 0
- ands r0, r2
- orrs r1, r0
- strb r1, [r3]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _0819FCBC
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819FC60
-
- thumb_func_start sub_819FCF8
-sub_819FCF8: @ 819FCF8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- cmp r0, 0x2
- bne _0819FD4C
- ldr r6, =gUnknown_030062EC
-_0819FD06:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- movs r2, 0
- ldr r1, [r6]
- lsls r0, r5, 2
- adds r0, r5
- lsls r4, r0, 1
- adds r1, 0x2
-_0819FD26:
- lsls r0, r2, 1
- adds r0, r4
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _0819FD38
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_0819FD38:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _0819FD26
- cmp r3, 0x3
- bhi _0819FD06
- b _0819FD5A
- .pool
-_0819FD4C:
- cmp r0, 0x1
- bne _0819FD5A
- ldrb r0, [r2]
- adds r1, r0
- ldrb r5, [r1]
- adds r0, 0x1
- strb r0, [r2]
-_0819FD5A:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_819FCF8
-
- thumb_func_start sub_819FD64
-sub_819FD64: @ 819FD64
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- movs r5, 0
- mov r0, sp
- adds r0, 0xC
- str r0, [sp, 0x14]
- mov r1, sp
- adds r1, 0x10
- str r1, [sp, 0x18]
- adds r1, r0, 0
-_0819FD80:
- adds r0, r1, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _0819FD80
- movs r5, 0
- ldr r6, [sp, 0x14]
-_0819FD92:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r4, r0, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- adds r2, r6, r4
- ldrb r3, [r2]
- adds r1, r6, r0
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0819FD92
- movs r5, 0
- ldr r2, =gUnknown_086114D3
-_0819FDD0:
- mov r4, sp
- adds r1, r4, r5
- adds r0, r5, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0819FDD0
- movs r5, 0
-_0819FDE6:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r4, r0, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- mov r6, sp
- adds r2, r6, r4
- ldrb r3, [r2]
- adds r1, r6, r0
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x31
- bls _0819FDE6
- ldr r4, =gUnknown_030062EC
- movs r0, 0x30
- bl AllocZeroed
- str r0, [r4]
- movs r1, 0
- strb r1, [r0]
- movs r5, 0
- movs r2, 0x4
-_0819FE34:
- movs r3, 0
-_0819FE36:
- ldr r0, [r4]
- lsls r1, r3, 2
- adds r1, r3
- adds r1, r5, r1
- adds r0, 0x20
- adds r0, r1
- strb r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x2
- bls _0819FE36
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _0819FE34
- movs r0, 0
- ldr r7, [sp, 0x18]
- strb r0, [r7]
- movs r5, 0
-_0819FE60:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- lsls r4, r5, 2
- adds r3, r4
- mov r1, sp
- adds r6, r1, r5
- ldrb r0, [r6]
- adds r3, 0xB8
- movs r2, 0x3
- ands r2, r0
- ldrb r0, [r3]
- movs r7, 0x4
- negs r7, r7
- adds r1, r7, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- ldrb r0, [r6]
- adds r5, 0x1
- str r5, [sp, 0x1C]
- mov r8, r4
- cmp r0, 0x3
- beq _0819FF62
- ldrb r0, [r6]
- ldr r1, [sp, 0x14]
- ldr r2, [sp, 0x18]
- bl sub_819FCF8
- ldr r1, =gSaveBlock2Ptr
- ldr r3, [r1]
- add r3, r8
- adds r3, 0xB8
- movs r2, 0x3
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r3]
- movs r4, 0xD
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- add r0, r8
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r7, r0, 30
- ldrb r0, [r6]
- cmp r0, 0x2
- bne _0819FF62
- lsls r0, r7, 2
- adds r0, r7
- mov r10, r0
- ldr r0, =gUnknown_030062EC
- mov r9, r0
-_0819FED2:
- bl Random
- lsls r0, 16
- lsrs r4, r0, 16
- movs r1, 0x3
- ands r4, r1
- movs r3, 0
- mov r6, r9
- ldr r2, [r6]
- ldrb r0, [r2]
- adds r1, r0, 0x1
- lsls r5, r7, 2
- cmp r3, r1
- bge _0819FF12
- adds r2, 0x20
- mov r6, r10
- adds r0, r2, r6
- ldrb r0, [r0]
- cmp r0, r4
- beq _0819FF12
- adds r6, r1, 0
- adds r1, r5, r7
-_0819FEFE:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r6
- bge _0819FF12
- adds r0, r3, r1
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, r4
- bne _0819FEFE
-_0819FF12:
- mov r1, r9
- ldr r0, [r1]
- ldrb r0, [r0]
- adds r0, 0x1
- ldr r1, =gUnknown_030062EC
- cmp r3, r0
- bne _0819FED2
- ldr r0, [r1]
- orrs r5, r7
- ldrb r2, [r0]
- adds r1, r5, r2
- adds r0, 0x20
- adds r0, r1
- strb r4, [r0]
- ldr r6, =gSaveBlock2Ptr
- ldr r2, [r6]
- add r2, r8
- adds r2, 0xB8
- movs r7, 0x3
- ands r4, r7
- lsls r3, r4, 4
- ldrb r0, [r2]
- movs r4, 0x31
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- ldr r0, [r6]
- add r0, r8
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r0, 30
- bl sub_819FF98
- ldr r1, [r6]
- add r1, r8
- adds r1, 0xBA
- strh r0, [r1]
-_0819FF62:
- ldr r6, [sp, 0x1C]
- lsls r0, r6, 24
- lsrs r5, r0, 24
- cmp r5, 0x8
- bhi _0819FF6E
- b _0819FE60
-_0819FF6E:
- ldr r4, =gUnknown_030062EC
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819FD64
-
- thumb_func_start sub_819FF98
-sub_819FF98: @ 819FF98
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0xC]
- movs r7, 0
- ldr r1, [sp]
- cmp r1, 0x2
- bhi _0819FFE0
- ldr r2, =gSaveBlock2Ptr
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0xB4
- ldr r3, [sp]
- adds r0, r3
- ldrb r4, [r0]
- adds r1, 0xB2
- ldrb r0, [r1]
- lsls r0, 29
- lsrs r0, 29
- asrs r0, r3
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- asrs r4, r0
- movs r0, 0xF
- ands r4, r0
- b _0819FFE4
- .pool
-_0819FFE0:
- movs r4, 0
- ldr r2, =gSaveBlock2Ptr
-_0819FFE4:
- ldr r3, =gUnknown_08610970
- lsls r1, r4, 1
- ldr r4, [r2]
- adds r0, r4, 0
- adds r0, 0xB0
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0
- adds r3, 0x34
- adds r1, r3
- ldrh r1, [r1]
- str r1, [sp, 0x8]
- ldr r1, =gLevelUpLearnsets
- ldr r2, [sp, 0x8]
- lsls r0, r2, 2
- adds r0, r1
- ldr r6, [r0]
- movs r3, 0
- adds r4, 0xB1
- ldrb r1, [r4]
- movs r0, 0x3
- ands r0, r1
- movs r5, 0x3C
- cmp r0, 0x1
- bne _081A001A
- movs r5, 0x32
-_081A001A:
- ldrh r1, [r6]
- ldr r4, =0x0000ffff
- cmp r1, r4
- beq _081A004C
- movs r2, 0xFE
- lsls r2, 8
- adds r0, r2, 0
- ands r0, r1
- lsls r1, r5, 9
- cmp r0, r1
- bgt _081A004C
- adds r5, r2, 0
- adds r2, r1, 0
-_081A0034:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 1
- adds r0, r6
- ldrh r1, [r0]
- cmp r1, r4
- beq _081A004C
- adds r0, r5, 0
- ands r0, r1
- cmp r0, r2
- ble _081A0034
-_081A004C:
- adds r5, r3, 0
- movs r3, 0
- str r3, [sp, 0x4]
-_081A0052:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081A0068
- ldr r0, [sp, 0xC]
- cmp r0, 0x1
- bne _081A00E0
-_081A0068:
- ldr r1, =0x000001ff
- mov r8, r1
-_081A006C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3A
- bl __umodsi3
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, [sp, 0x8]
- adds r1, r4, 0
- bl CanSpeciesLearnTMHM
- adds r2, r0, 0
- cmp r2, 0
- beq _081A006C
- ldr r2, =0x00000121
- adds r0, r4, r2
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r7, r0, 16
- movs r2, 0x1
- cmp r5, 0x4
- bhi _081A00BC
- movs r3, 0
- b _081A00C6
- .pool
-_081A00BC:
- subs r0, r5, 0x4
- b _081A00C2
-_081A00C0:
- adds r0, r3, 0x1
-_081A00C2:
- lsls r0, 24
- lsrs r3, r0, 24
-_081A00C6:
- cmp r3, r5
- bcs _081A00DA
- lsls r0, r3, 1
- adds r0, r6
- ldrh r0, [r0]
- mov r1, r8
- ands r0, r1
- cmp r0, r7
- bne _081A00C0
- movs r2, 0
-_081A00DA:
- cmp r2, 0x1
- bne _081A006C
- b _081A0146
-_081A00E0:
- cmp r5, 0x4
- bhi _081A00EA
- movs r2, 0x1
- str r2, [sp, 0xC]
- b _081A0168
-_081A00EA:
- subs r4, r5, 0x4
- ldr r3, =0x000001ff
- mov r10, r3
- mov r8, r3
- lsls r0, r4, 24
- mov r9, r0
-_081A00F6:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 24
- lsrs r0, 23
- adds r0, r6
- ldrh r0, [r0]
- mov r7, r8
- ands r7, r0
- movs r2, 0x1
- mov r1, r9
- lsrs r3, r1, 24
- cmp r3, r5
- bcs _081A0142
- lsls r0, r3, 1
- adds r0, r6
- ldrh r1, [r0]
- mov r0, r8
- b _081A013A
- .pool
-_081A0128:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r5
- bcs _081A0142
- lsls r0, r3, 1
- adds r0, r6
- ldrh r0, [r0]
- mov r1, r10
-_081A013A:
- ands r0, r1
- cmp r0, r7
- bne _081A0128
- movs r2, 0
-_081A0142:
- cmp r2, 0x1
- bne _081A00F6
-_081A0146:
- ldr r0, [sp]
- adds r1, r7, 0
- bl sub_81A0194
- lsls r0, 24
- cmp r0, 0
- beq _081A0168
- ldr r0, =gUnknown_08611370
- adds r0, r7, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _081A0170
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
-_081A0168:
- ldr r2, [sp, 0x4]
- cmp r2, 0x4
- bhi _081A0170
- b _081A0052
-_081A0170:
- ldr r0, =gUnknown_030062EC
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r7, 0
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_819FF98
-
- thumb_func_start sub_81A0194
-sub_81A0194: @ 81A0194
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- movs r3, 0
- ldr r0, =gUnknown_030062EC
- mov r12, r0
- ldr r2, [r0]
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r6, r0, 1
- adds r2, 0x2
- adds r7, r1, 0
-_081A01B0:
- lsls r0, r3, 1
- adds r0, r6
- adds r0, r2, r0
- ldrh r0, [r0]
- cmp r0, r5
- bne _081A01C4
- movs r0, 0
- b _081A01E2
- .pool
-_081A01C4:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x4
- bls _081A01B0
- mov r2, r12
- ldr r1, [r2]
- adds r0, r7, r4
- ldrb r2, [r1]
- adds r0, r2
- lsls r0, 1
- adds r1, 0x2
- adds r1, r0
- strh r5, [r1]
- movs r0, 0x1
-_081A01E2:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81A0194
-
- thumb_func_start sub_81A01E8
-sub_81A01E8: @ 81A01E8
- push {r4-r7,lr}
- mov r12, r1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- movs r4, 0x3C
- cmp r0, 0x1
- bne _081A0204
- movs r4, 0x32
-_081A0204:
- ldr r1, =gLevelUpLearnsets
- lsls r0, r2, 2
- adds r0, r1
- ldr r6, [r0]
- movs r5, 0
- ldrh r1, [r6]
- ldr r3, =0x0000ffff
- cmp r1, r3
- beq _081A0240
- movs r2, 0xFE
- lsls r2, 8
- adds r0, r2, 0
- ands r0, r1
- lsls r1, r4, 9
- cmp r0, r1
- bgt _081A0240
- adds r4, r2, 0
- adds r2, r1, 0
-_081A0228:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 1
- adds r0, r6
- ldrh r1, [r0]
- cmp r1, r3
- beq _081A0240
- adds r0, r4, 0
- ands r0, r1
- cmp r0, r2
- ble _081A0228
-_081A0240:
- adds r4, r5, 0
- cmp r4, 0x4
- bls _081A0248
- movs r4, 0x4
-_081A0248:
- movs r2, 0
- cmp r2, r4
- bcs _081A026C
- ldr r7, =0x000001ff
-_081A0250:
- lsls r3, r2, 1
- add r3, r12
- adds r2, 0x1
- subs r0, r5, r2
- lsls r0, 1
- adds r0, r6
- ldrh r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- strh r0, [r3]
- lsls r2, 24
- lsrs r2, 24
- cmp r2, r4
- bcc _081A0250
-_081A026C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A01E8
-
- thumb_func_start sub_81A0284
-sub_81A0284: @ 81A0284
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r2, [r1]
- adds r0, r2, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- adds r7, r1, 0
- cmp r0, 0x2
- bhi _081A02B8
- movs r0, 0
- b _081A037C
- .pool
-_081A02B8:
- movs r4, 0
- movs r3, 0
- adds r0, r2, 0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- ldr r1, =gUnknown_08610970
- mov r12, r1
- lsls r6, 1
- lsls r5, 1
- mov r9, r5
- cmp r0, 0
- beq _081A02F4
- adds r2, r7, 0
-_081A02D4:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x8
- bhi _081A02F4
- ldr r0, [r2]
- lsls r1, r3, 2
- adds r0, r1
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bne _081A02D4
-_081A02F4:
- ldr r0, [r7]
- adds r0, 0xB0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r6, r0
- mov r1, r12
- adds r1, 0x34
- adds r0, r1
- ldrh r0, [r0]
- mov r1, sp
- bl sub_81A01E8
- movs r3, 0
- cmp r3, r4
- bcs _081A0376
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- cmp r3, r0
- bge _081A0376
- adds r6, r7, 0
- adds r5, r1, 0
-_081A032A:
- lsls r0, r3, 2
- adds r2, r5, r0
- adds r0, r2, 0
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 30
- lsrs r0, 30
- cmp r0, 0x2
- bne _081A035C
- lsls r0, r1, 28
- lsrs r0, 30
- cmp r0, r8
- bne _081A035C
- lsrs r0, r1, 6
- cmp r0, 0
- beq _081A035C
- lsls r0, r1, 26
- lsrs r0, 30
- lsls r0, 1
- mov r7, sp
- adds r1, r7, r0
- adds r0, r2, 0
- adds r0, 0xBA
- ldrh r0, [r0]
- strh r0, [r1]
-_081A035C:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r4
- bcs _081A0376
- ldr r0, [r6]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- cmp r3, r0
- blt _081A032A
-_081A0376:
- mov r0, sp
- add r0, r9
- ldrh r0, [r0]
-_081A037C:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A0284
-
- thumb_func_start sub_81A0390
-sub_81A0390: @ 81A0390
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r5, 0
- ldr r7, =gSaveBlock2Ptr
- adds r6, r7, 0
- movs r4, 0
-_081A03A6:
- ldr r0, [r6]
- lsls r2, r5, 1
- adds r2, r5
- lsls r2, 2
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0xE0
- strh r4, [r1]
- adds r0, 0xEA
- strh r4, [r0]
- movs r3, 0
-_081A03BC:
- ldr r0, [r6]
- lsls r1, r3, 1
- adds r1, r2
- adds r0, 0xE2
- adds r0, r1
- strh r4, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _081A03BC
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081A03A6
- ldr r0, [r7]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsrs r3, r0, 6
- movs r5, 0
-_081A03E6:
- lsls r0, r3, 2
- mov r1, sp
- adds r2, r1, r0
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, 0xE0
- ldr r1, [r7]
- adds r1, r0
- str r1, [r2]
- adds r0, r3, 0x1
- movs r1, 0x3
- bl __modsi3
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081A03E6
- movs r5, 0
- ldr r7, =gSaveBlock2Ptr
- ldr r6, =gUnknown_08610970+0x34
-_081A0416:
- ldr r0, [r7]
- mov r12, r0
- adds r0, 0xB4
- adds r0, r5
- ldrb r2, [r0]
- mov r0, r12
- adds r0, 0xB2
- ldrb r0, [r0]
- lsls r0, 29
- lsrs r0, 29
- asrs r0, r5
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- asrs r2, r0
- movs r0, 0xF
- ands r2, r0
- lsls r0, r5, 2
- mov r1, sp
- adds r3, r1, r0
- ldr r4, [r3]
- lsls r2, 1
- mov r0, r12
- adds r0, 0xB0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r2, r0
- adds r2, r6
- ldrh r0, [r2]
- strh r0, [r4]
- ldr r1, [r3]
- ldrh r0, [r1]
- adds r1, 0x2
- bl sub_81A01E8
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081A0416
- movs r5, 0
- cmp r5, r8
- bcs _081A04D6
- ldr r7, =gSaveBlock2Ptr
-_081A0470:
- ldr r1, [r7]
- lsls r0, r5, 2
- adds r4, r1, r0
- adds r0, r4, 0
- adds r0, 0xB8
- ldrb r2, [r0]
- lsls r0, r2, 30
- lsrs r1, r0, 30
- lsls r0, r2, 28
- lsrs r3, r0, 30
- adds r6, r3, 0
- cmp r1, 0x1
- bne _081A04A8
- lsrs r0, r2, 6
- cmp r0, 0
- beq _081A04CC
- lsls r0, r3, 2
- add r0, sp
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0xBA
- ldrh r0, [r0]
- strh r0, [r1, 0xA]
- b _081A04CC
- .pool
-_081A04A8:
- cmp r1, 0x2
- bne _081A04CC
- lsls r0, r2, 24
- lsrs r0, 30
- cmp r0, 0
- beq _081A04CC
- lsls r2, 26
- lsrs r2, 30
- lsls r0, r6, 2
- add r0, sp
- ldr r1, [r0]
- lsls r2, 1
- adds r1, 0x2
- adds r1, r2
- adds r0, r4, 0
- adds r0, 0xBA
- ldrh r0, [r0]
- strh r0, [r1]
-_081A04CC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r8
- bcc _081A0470
-_081A04D6:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81A0390
-
- thumb_func_start sub_81A04E4
-sub_81A04E4: @ 81A04E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- movs r7, 0x2
- cmp r0, 0x6
- bls _081A04FC
- b _081A064C
-_081A04FC:
- lsls r0, 2
- ldr r1, =_081A050C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A050C:
- .4byte _081A0528
- .4byte _081A0540
- .4byte _081A05B4
- .4byte _081A05F4
- .4byte _081A061C
- .4byte _081A064C
- .4byte _081A0634
-_081A0528:
- movs r0, 0x12
- mov r10, r0
- movs r6, 0x8
- ldr r0, =gText_Lv50
- str r0, [sp, 0xC]
- ldr r0, =gText_OpenLevel
- str r0, [sp, 0x10]
- b _081A0652
- .pool
-_081A0540:
- movs r7, 0x3
- movs r1, 0x12
- mov r10, r1
- movs r6, 0x6
- movs r4, 0
- ldr r0, =gSpeciesNames
- mov r9, r0
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- movs r1, 0xB2
- adds r1, r3
- mov r12, r1
- adds r5, r3, 0
- adds r5, 0xB0
- ldr r0, =gUnknown_08610970+0x34
- mov r8, r0
-_081A0560:
- adds r0, r3, 0
- adds r0, 0xB4
- adds r0, r4
- ldrb r2, [r0]
- mov r1, r12
- ldrb r0, [r1]
- lsls r0, 29
- lsrs r0, 29
- asrs r0, r4
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- asrs r2, r0
- movs r0, 0xF
- ands r2, r0
- lsls r2, 1
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r2, r0
- add r2, r8
- ldrh r1, [r2]
- lsls r0, r4, 2
- mov r2, sp
- adds r2, r0
- adds r2, 0xC
- movs r0, 0xB
- muls r0, r1
- add r0, r9
- str r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081A0560
- b _081A0652
- .pool
-_081A05B4:
- movs r0, 0x12
- mov r10, r0
- movs r6, 0x8
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- cmp r0, 0x2
- bls _081A05CC
- b _081A06FA
-_081A05CC:
- ldr r0, =gUnknown_030062F0
- ldr r3, [r0]
- ldrh r0, [r3, 0x2]
- movs r2, 0xB
- muls r0, r2
- ldr r1, =gSpeciesNames
- adds r0, r1
- str r0, [sp, 0x10]
- ldrh r0, [r3]
- muls r0, r2
- adds r0, r1
- str r0, [sp, 0xC]
- b _081A0652
- .pool
-_081A05F4:
- movs r1, 0x11
- mov r10, r1
- movs r6, 0x8
- ldr r0, =gUnknown_030062F0
- ldr r3, [r0]
- ldrh r0, [r3, 0x4]
- movs r2, 0xD
- muls r0, r2
- ldr r1, =gMoveNames
- adds r0, r1
- str r0, [sp, 0xC]
- ldrh r0, [r3, 0x6]
- muls r0, r2
- adds r0, r1
- str r0, [sp, 0x10]
- b _081A0652
- .pool
-_081A061C:
- movs r0, 0x12
- mov r10, r0
- movs r6, 0x8
- ldr r0, =gText_Give
- str r0, [sp, 0xC]
- ldr r0, =gText_NoNeed
- str r0, [sp, 0x10]
- b _081A0652
- .pool
-_081A0634:
- movs r1, 0x14
- mov r10, r1
- movs r6, 0x8
- ldr r0, =gText_Yes
- str r0, [sp, 0xC]
- ldr r0, =gText_No
- str r0, [sp, 0x10]
- b _081A0652
- .pool
-_081A064C:
- movs r0, 0
- mov r10, r0
- movs r6, 0
-_081A0652:
- movs r5, 0
- movs r4, 0
- lsls r1, r7, 25
- mov r8, r1
- cmp r4, r7
- bcs _081A067E
-_081A065E:
- lsls r0, r4, 2
- add r0, sp
- adds r0, 0xC
- ldr r1, [r0]
- movs r0, 0x1
- movs r2, 0
- bl GetStringWidth
- cmp r0, r5
- ble _081A0674
- adds r5, r0, 0
-_081A0674:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r7
- bcc _081A065E
-_081A067E:
- adds r0, r5, 0
- bl convert_pixel_width_to_tile_width
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r10
- adds r1, r4, 0
- bl sub_80E2D5C
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- mov r0, r8
- lsrs r3, r0, 24
- mov r0, r10
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_81A0784
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- movs r4, 0
- cmp r4, r7
- bcs _081A06E6
-_081A06B8:
- lsls r0, r4, 2
- add r0, sp
- adds r0, 0xC
- ldr r2, [r0]
- lsls r0, r4, 4
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r5, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r7
- bcc _081A06B8
-_081A06E6:
- adds r0, r5, 0
- adds r1, r7, 0
- movs r2, 0
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- movs r0, 0x1
- adds r1, r7, 0
- adds r2, r5, 0
- bl sub_81A0804
-_081A06FA:
- 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_81A04E4
-
- thumb_func_start sub_81A070C
-sub_81A070C: @ 81A070C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081A0730
- bl Menu_ProcessInputNoWrapAround
- b _081A0734
- .pool
-_081A0730:
- bl ProcessMenuInput
-_081A0734:
- lsls r0, 24
- lsrs r0, 24
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _081A0778
- adds r0, 0x1
- cmp r1, r0
- bne _081A0764
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081A0778
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gSpecialVar_Result
- movs r0, 0x7F
- strh r0, [r1]
- b _081A0768
- .pool
-_081A0764:
- ldr r0, =gSpecialVar_Result
- strh r1, [r0]
-_081A0768:
- ldrb r0, [r4, 0xC]
- bl sub_81A07E8
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_081A0778:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A070C
-
- thumb_func_start sub_81A0784
-sub_81A0784: @ 81A0784
- push {r4,r5,lr}
- sub sp, 0x20
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsls r5, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x80
- lsls r0, 17
- adds r4, r0
- lsrs r4, 24
- adds r5, r0
- lsrs r5, 24
- str r2, [sp]
- str r3, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- movs r0, 0x64
- str r0, [sp, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl CreateWindowTemplate
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- add r0, sp, 0x18
- bl AddWindow
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- adds r0, r4, 0
- add sp, 0x20
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81A0784
-
- thumb_func_start sub_81A07E8
-sub_81A07E8: @ 81A07E8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8198070
- adds r0, r4, 0
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81A07E8
-
- thumb_func_start sub_81A0804
-sub_81A0804: @ 81A0804
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, =sub_81A070C
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- strh r4, [r1, 0x10]
- cmp r5, 0x3
- bls _081A0840
- movs r0, 0x1
- b _081A0842
- .pool
-_081A0840:
- movs r0, 0
-_081A0842:
- strh r0, [r1, 0x12]
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x14]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0804
-
- thumb_func_start sub_81A085C
-sub_81A085C: @ 81A085C
- push {lr}
- ldr r1, =gUnknown_086114E0
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A085C
-
- thumb_func_start sub_81A087C
-sub_81A087C: @ 81A087C
- push {r4-r7,lr}
- bl sub_819FBC8
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- adds r1, 0xB1
- ldrb r2, [r1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r3]
- adds r1, 0xB1
- ldrb r2, [r1]
- movs r0, 0x3D
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r3]
- adds r1, 0xB1
- ldrb r2, [r1]
- movs r0, 0x3F
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r3]
- adds r1, 0xB2
- ldrb r2, [r1]
- movs r0, 0x8
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- movs r4, 0
- movs r1, 0
-_081A08BE:
- ldr r0, [r3]
- adds r0, 0xB4
- adds r0, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081A08BE
- movs r4, 0
- ldr r5, =gSaveBlock2Ptr
- movs r0, 0x4
- negs r0, r0
- mov r12, r0
- movs r7, 0xD
- negs r7, r7
- movs r6, 0x31
- negs r6, r6
-_081A08E2:
- ldr r1, [r5]
- lsls r3, r4, 2
- adds r1, r3
- adds r1, 0xB8
- ldrb r2, [r1]
- mov r0, r12
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xB8
- ldrb r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xB8
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xB8
- ldrb r2, [r1]
- movs r0, 0x3F
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, r3
- adds r0, 0xBA
- movs r1, 0
- strh r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bls _081A08E2
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A087C
-
- thumb_func_start sub_81A093C
-sub_81A093C: @ 81A093C
- push {lr}
- bl sub_819FBB0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _081A0954
- ldr r0, =gSpecialVar_Result
- strh r1, [r0]
- b _081A095A
- .pool
-_081A0954:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
-_081A095A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A093C
-
- thumb_func_start sub_81A0964
-sub_81A0964: @ 81A0964
- push {lr}
- ldr r0, =gSpecialVar_0x8005
- ldrb r0, [r0]
- bl sub_819FC40
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0964
-
- thumb_func_start sub_81A0978
-sub_81A0978: @ 81A0978
- push {lr}
- bl sub_819FBC8
- pop {r0}
- bx r0
- thumb_func_end sub_81A0978
-
- thumb_func_start sub_81A0984
-sub_81A0984: @ 81A0984
- push {lr}
- bl sub_819FD64
- pop {r0}
- bx r0
- thumb_func_end sub_81A0984
-
- thumb_func_start sub_81A0990
-sub_81A0990: @ 81A0990
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- adds r2, 0xB1
- ldrb r3, [r2]
- lsls r1, r3, 26
- lsrs r1, 28
- adds r1, 0x1
- movs r0, 0xF
- ands r1, r0
- lsls r1, 2
- movs r0, 0x3D
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_81A0990
-
- thumb_func_start sub_81A09B4
-sub_81A09B4: @ 81A09B4
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A09B4
-
- thumb_func_start sub_81A09D0
-sub_81A09D0: @ 81A09D0
- push {lr}
- ldr r3, =gSaveBlock2Ptr
- ldr r0, [r3]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r1, r0, 0x3
- cmp r1, 0
- bge _081A09F4
- ldr r1, =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
- b _081A0A1C
- .pool
-_081A09F4:
- ldr r2, =gSpecialVar_Result
- cmp r1, 0x8
- ble _081A09FE
- movs r0, 0x1
- strh r0, [r2]
-_081A09FE:
- ldr r0, [r3]
- lsls r1, 2
- adds r0, r1
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bne _081A0A18
- movs r0, 0x1
- b _081A0A1A
- .pool
-_081A0A18:
- movs r0, 0
-_081A0A1A:
- strh r0, [r2]
-_081A0A1C:
- pop {r0}
- bx r0
- thumb_func_end sub_81A09D0
-
- thumb_func_start sub_81A0A20
-sub_81A0A20: @ 81A0A20
- push {lr}
- ldr r0, =gSpecialVar_0x8005
- ldrb r0, [r0]
- bl sub_81A04E4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0A20
-
- thumb_func_start sub_81A0A34
-sub_81A0A34: @ 81A0A34
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl RunTextPrintersAndIsPrinter0Active
- lsls r0, 16
- cmp r0, 0
- bne _081A0A68
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A0A64
- ldr r0, =EnableBothScriptContexts
- bl sub_81A172C
- b _081A0A68
- .pool
-_081A0A64:
- bl EnableBothScriptContexts
-_081A0A68:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81A0A34
-
- thumb_func_start sub_81A0A70
-sub_81A0A70: @ 81A0A70
- push {lr}
- ldr r1, =gSpecialVar_0x8006
- ldrh r0, [r1]
- cmp r0, 0x6
- bne _081A0A94
- ldr r1, =gUnknown_08610FF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- b _081A0C66
- .pool
-_081A0A94:
- cmp r0, 0x7
- bne _081A0AB0
- ldr r1, =gUnknown_08610FF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- b _081A0C66
- .pool
-_081A0AB0:
- cmp r0, 0x8
- bne _081A0ACC
- ldr r1, =gUnknown_086111B0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- b _081A0C66
- .pool
-_081A0ACC:
- cmp r0, 0x9
- bne _081A0AE8
- ldr r1, =gUnknown_086111B0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- b _081A0C66
- .pool
-_081A0AE8:
- cmp r0, 0x4
- bne _081A0B04
- ldr r1, =gUnknown_08611230
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- b _081A0C66
- .pool
-_081A0B04:
- cmp r0, 0x5
- bne _081A0B20
- ldr r1, =gUnknown_08611230
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- b _081A0C66
- .pool
-_081A0B20:
- cmp r0, 0xA
- bne _081A0B40
- ldr r2, =gUnknown_08611070
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- b _081A0BD6
- .pool
-_081A0B40:
- cmp r0, 0xB
- bne _081A0B5C
- ldr r1, =gUnknown_086112B0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- b _081A0C66
- .pool
-_081A0B5C:
- cmp r0, 0xC
- bne _081A0B7C
- ldr r2, =gUnknown_08611070
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0xC
- b _081A0BD6
- .pool
-_081A0B7C:
- cmp r0, 0xD
- bne _081A0B9C
- ldr r2, =gUnknown_08611070
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- b _081A0BD6
- .pool
-_081A0B9C:
- ldrh r0, [r1]
- cmp r0, 0x10
- bne _081A0BC0
- ldr r2, =gUnknown_08611070
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x10
- b _081A0BD6
- .pool
-_081A0BC0:
- cmp r0, 0xE
- bne _081A0BE4
- ldr r2, =gUnknown_08611070
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
-_081A0BD6:
- adds r0, r2
- ldr r1, [r0]
- b _081A0C7A
- .pool
-_081A0BE4:
- cmp r0, 0xF
- bne _081A0C00
- ldr r1, =gUnknown_086112B0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- b _081A0C66
- .pool
-_081A0C00:
- cmp r0, 0
- bne _081A0C1C
- ldr r1, =gUnknown_08610EF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 4
- b _081A0C66
- .pool
-_081A0C1C:
- cmp r0, 0x1
- bne _081A0C38
- ldr r1, =gUnknown_08610EF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 4
- adds r1, 0x4
- b _081A0C66
- .pool
-_081A0C38:
- cmp r0, 0x2
- bne _081A0C54
- ldr r1, =gUnknown_08610EF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 4
- adds r1, 0x8
- b _081A0C66
- .pool
-_081A0C54:
- cmp r0, 0x3
- bne _081A0C74
- ldr r1, =gUnknown_08610EF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 4
- adds r1, 0xC
-_081A0C66:
- adds r0, r1
- ldr r1, [r0]
- b _081A0C7A
- .pool
-_081A0C74:
- bl EnableBothScriptContexts
- b _081A0C8E
-_081A0C7A:
- ldr r0, =gStringVar4
- bl StringExpandPlaceholders
- movs r0, 0x1
- bl AddTextPrinterForMessage
- ldr r0, =sub_81A0A34
- movs r1, 0x1
- bl CreateTask
-_081A0C8E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0A70
-
- thumb_func_start sub_81A0C9C
-sub_81A0C9C: @ 81A0C9C
- push {lr}
- bl ScriptContext2_Enable
- bl FreezeEventObjects
- bl sub_808B864
- bl sub_808BCF4
- movs r0, 0
- movs r1, 0x1
- bl NewMenuHelpers_DrawDialogueFrame
- bl sub_81A0A70
- pop {r0}
- bx r0
- thumb_func_end sub_81A0C9C
-
- thumb_func_start sub_81A0CC0
-sub_81A0CC0: @ 81A0CC0
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r1, r0, 26
- lsrs r0, r1, 28
- cmp r0, 0x2
- bhi _081A0CE4
- ldr r1, =gSpecialVar_Result
- movs r0, 0x2
- b _081A0D34
- .pool
-_081A0CE4:
- lsrs r0, r1, 28
- cmp r0, 0xB
- bhi _081A0D30
- lsrs r0, r1, 28
- subs r0, 0x3
- lsls r0, 2
- adds r0, r2, r0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x2
- beq _081A0D18
- cmp r0, 0x2
- bgt _081A0D08
- cmp r0, 0x1
- beq _081A0D0E
- b _081A0D30
-_081A0D08:
- cmp r0, 0x3
- beq _081A0D24
- b _081A0D30
-_081A0D0E:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x4
- b _081A0D34
- .pool
-_081A0D18:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x3
- b _081A0D34
- .pool
-_081A0D24:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- b _081A0D34
- .pool
-_081A0D30:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x5
-_081A0D34:
- strh r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0CC0
-
- thumb_func_start sub_81A0D40
-sub_81A0D40: @ 81A0D40
- push {r4,lr}
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A0D6E
- ldr r4, =gSpecialVar_0x8006
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- adds r2, 0xB2
- ldrb r3, [r2]
- lsls r0, r3, 29
- lsrs r0, 29
- movs r1, 0x1
- ldrb r4, [r4]
- lsls r1, r4
- orrs r1, r0
- movs r0, 0x7
- ands r1, r0
- movs r0, 0x8
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
-_081A0D6E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0D40
-
- thumb_func_start sub_81A0D80
-sub_81A0D80: @ 81A0D80
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r1, r0, 26
- lsrs r0, r1, 28
- cmp r0, 0x2
- bls _081A0DCE
- subs r0, 0x3
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A0DC0
- lsls r2, 2
- adds r2, r3, r2
- adds r2, 0xB8
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- b _081A0DCE
- .pool
-_081A0DC0:
- lsls r0, r2, 2
- adds r0, r3, r0
- adds r0, 0xB8
- ldrb r2, [r0]
- movs r1, 0x3F
- ands r1, r2
- strb r1, [r0]
-_081A0DCE:
- pop {r0}
- bx r0
- thumb_func_end sub_81A0D80
-
- thumb_func_start sub_81A0DD4
-sub_81A0DD4: @ 81A0DD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- movs r2, 0
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- ldr r3, =gUnknown_030062F0
- mov r9, r3
- cmp r0, 0
- beq _081A0E14
- adds r3, r1, 0
-_081A0DF4:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x8
- bhi _081A0E14
- ldr r0, [r3]
- lsls r1, r2, 2
- adds r0, r1
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bne _081A0DF4
-_081A0E14:
- mov r4, r9
- movs r0, 0x8
- bl AllocZeroed
- adds r7, r0, 0
- str r7, [r4]
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x2
- bne _081A0E88
- ldr r0, =gSaveBlock2Ptr
- ldr r5, [r0]
- adds r6, r5, 0
- adds r6, 0xB1
- ldrb r0, [r6]
- lsls r1, r0, 26
- lsrs r0, r1, 28
- cmp r0, 0x2
- bls _081A0E3C
- b _081A0FCE
-_081A0E3C:
- adds r2, r5, 0
- adds r2, 0xB4
- adds r0, r2, r0
- ldrb r0, [r0]
- lsrs r4, r0, 4
- ldr r3, =gUnknown_08610970
- lsls r1, r4, 1
- adds r5, 0xB0
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0
- adds r3, 0x34
- adds r1, r3
- ldrh r0, [r1]
- strh r0, [r7, 0x2]
- ldrb r0, [r6]
- lsls r0, 26
- lsrs r0, 28
- adds r2, r0
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- lsls r0, 1
- ldrb r1, [r5]
- muls r1, r4
- adds r0, r1
- adds r0, r3
- b _081A0FCA
- .pool
-_081A0E88:
- cmp r0, 0x3
- bne _081A0F54
- ldr r0, =gSaveBlock2Ptr
- mov r8, r0
- ldr r5, [r0]
- movs r1, 0xB1
- adds r1, r5
- mov r12, r1
- ldrb r0, [r1]
- lsls r2, r0, 26
- lsrs r0, r2, 28
- cmp r0, 0x2
- bhi _081A0EA4
- b _081A0FCE
-_081A0EA4:
- adds r1, r0, 0
- adds r0, r6, 0x3
- cmp r1, r0
- blt _081A0EAE
- b _081A0FCE
-_081A0EAE:
- adds r0, r1, 0
- subs r0, 0x3
- lsls r0, 2
- adds r0, r5, r0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x2
- beq _081A0EC4
- b _081A0FCE
-_081A0EC4:
- adds r0, r1, 0
- subs r0, 0x3
- lsls r0, 2
- adds r0, r5, r0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r6, r0, 30
- adds r0, r5, 0
- adds r0, 0xB2
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 29
- asrs r1, r6
- movs r0, 0x1
- ands r1, r0
- adds r0, r5, 0
- adds r0, 0xB4
- adds r0, r6
- ldrb r4, [r0]
- lsls r1, 2
- asrs r4, r1
- movs r0, 0xF
- ands r4, r0
- ldr r2, =gUnknown_08610970
- lsls r1, r4, 1
- adds r0, r5, 0
- adds r0, 0xB0
- ldrb r3, [r0]
- movs r0, 0x58
- muls r0, r3
- adds r1, r0
- adds r2, 0x34
- adds r1, r2
- ldrh r0, [r1]
- strh r0, [r7]
- mov r3, r12
- ldrb r0, [r3]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r0, r5, r0
- adds r0, 0xB8
- ldrb r2, [r0]
- lsls r2, 26
- lsrs r2, 30
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_81A0284
- mov r1, r9
- ldr r2, [r1]
- strh r0, [r2, 0x4]
- mov r3, r8
- ldr r1, [r3]
- adds r0, r1, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r1, r0
- adds r1, 0xBA
- ldrh r0, [r1]
- strh r0, [r2, 0x6]
- b _081A0FCE
- .pool
-_081A0F54:
- cmp r0, 0x4
- bne _081A0FCE
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r2, r0, 26
- lsrs r0, r2, 28
- cmp r0, 0x2
- bls _081A0FCE
- adds r1, r0, 0
- adds r0, r6, 0x3
- cmp r1, r0
- bge _081A0FCE
- adds r0, r1, 0
- subs r0, 0x3
- lsls r0, 2
- adds r0, r3, r0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _081A0FCE
- adds r0, r1, 0
- subs r0, 0x3
- lsls r0, 2
- adds r0, r3, r0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r6, r0, 30
- adds r0, r3, 0
- adds r0, 0xB2
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 29
- asrs r1, r6
- movs r0, 0x1
- ands r1, r0
- adds r0, r3, 0
- adds r0, 0xB4
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, 2
- asrs r0, r1
- movs r1, 0xF
- ands r0, r1
- ldr r2, =gUnknown_08610970
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0xB0
- ldrb r3, [r1]
- movs r1, 0x58
- muls r1, r3
- adds r0, r1
- adds r2, 0x34
- adds r0, r2
-_081A0FCA:
- ldrh r0, [r0]
- strh r0, [r7]
-_081A0FCE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0DD4
-
- thumb_func_start sub_81A0FE4
-sub_81A0FE4: @ 81A0FE4
- push {r4,lr}
- ldr r4, =gUnknown_030062F0
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0FE4
-
- thumb_func_start sub_81A0FFC
-sub_81A0FFC: @ 81A0FFC
- push {r4-r6,lr}
- sub sp, 0x10
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _081A1028
- cmp r0, 0x1
- bgt _081A1018
- cmp r0, 0
- beq _081A101E
- b _081A11E6
- .pool
-_081A1018:
- cmp r0, 0x2
- beq _081A1030
- b _081A11E6
-_081A101E:
- ldr r5, =gStringVar1
- b _081A1032
- .pool
-_081A1028:
- ldr r5, =gStringVar2
- b _081A1032
- .pool
-_081A1030:
- ldr r5, =gStringVar3
-_081A1032:
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0x9
- bls _081A103C
- b _081A11E6
-_081A103C:
- lsls r0, 2
- ldr r1, =_081A1054
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A1054:
- .4byte _081A107C
- .4byte _081A1094
- .4byte _081A10AC
- .4byte _081A10C4
- .4byte _081A10DC
- .4byte _081A10F4
- .4byte _081A1118
- .4byte _081A1164
- .4byte _081A1140
- .4byte _081A1184
-_081A107C:
- ldr r0, =gUnknown_030062F0
- ldr r0, [r0]
- ldrh r1, [r0]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- b _081A1174
- .pool
-_081A1094:
- ldr r0, =gUnknown_030062F0
- ldr r0, [r0]
- ldrh r1, [r0, 0x2]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- b _081A1174
- .pool
-_081A10AC:
- ldr r0, =gUnknown_030062F0
- ldr r0, [r0]
- ldrh r1, [r0]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- b _081A1174
- .pool
-_081A10C4:
- ldr r0, =gUnknown_030062F0
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- movs r0, 0xD
- muls r1, r0
- ldr r0, =gMoveNames
- adds r1, r0
- b _081A1174
- .pool
-_081A10DC:
- ldr r0, =gUnknown_030062F0
- ldr r0, [r0]
- ldrh r1, [r0, 0x6]
- movs r0, 0xD
- muls r1, r0
- ldr r0, =gMoveNames
- adds r1, r0
- b _081A1174
- .pool
-_081A10F4:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r1, r0
- adds r1, 0xBA
- ldrh r0, [r1]
- bl ItemId_GetName
- adds r1, r0, 0
- b _081A1174
- .pool
-_081A1118:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_81A1650
- adds r1, r0, 0
- mov r0, sp
- movs r2, 0x2
- bl TVShowConvertInternationalString
- adds r0, r5, 0
- mov r1, sp
- bl StringCopy
- b _081A11E6
- .pool
-_081A1140:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _081A115C
- ldr r1, =gText_Lv50
- b _081A1174
- .pool
-_081A115C:
- ldr r1, =gText_OpenLevel
- b _081A1174
- .pool
-_081A1164:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0x82
- lsls r1, 1
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
- ldr r1, =gStringVar4
-_081A1174:
- adds r0, r5, 0
- bl StringCopy
- b _081A11E6
- .pool
-_081A1184:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- adds r1, r3, 0
- adds r1, 0xB1
- ldrb r1, [r1]
- lsls r4, r1, 24
- lsrs r1, r4, 30
- adds r6, r0, 0
- cmp r1, 0x2
- bhi _081A11C0
- adds r0, r3, 0
- adds r0, 0xB4
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r3, 0
- adds r0, 0xB2
- ldrb r0, [r0]
- lsls r0, 29
- lsrs r0, 29
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- asrs r2, r0
- movs r0, 0xF
- ands r2, r0
- b _081A11C2
- .pool
-_081A11C0:
- movs r2, 0
-_081A11C2:
- ldr r3, =gUnknown_08610970
- lsls r1, r2, 1
- ldr r0, [r6]
- adds r0, 0xB0
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0
- adds r3, 0x34
- adds r1, r3
- ldrh r1, [r1]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r5, 0
- bl StringCopy
-_081A11E6:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0FFC
-
- thumb_func_start sub_81A11F8
-sub_81A11F8: @ 81A11F8
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =gSpecialVar_0x8005
- ldrb r1, [r0]
- adds r2, 0xB1
- lsls r1, 6
- ldrb r3, [r2]
- movs r0, 0x3F
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_81A11F8
-
- thumb_func_start sub_81A1218
-sub_81A1218: @ 81A1218
- push {lr}
- bl sub_81AAC28
- pop {r0}
- bx r0
- thumb_func_end sub_81A1218
-
- thumb_func_start sub_81A1224
-sub_81A1224: @ 81A1224
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r1, =gSaveBlock2Ptr
- ldr r3, [r1]
- adds r0, r3, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- adds r7, r1, 0
- cmp r0, 0x2
- bhi _081A1242
- b _081A1362
-_081A1242:
- movs r5, 0
- movs r2, 0
- adds r0, r3, 0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- ldr r1, =gSpecialVar_0x8005
- mov r12, r1
- ldr r1, =gSpecialVar_Result
- mov r8, r1
- cmp r0, 0
- beq _081A127C
- adds r3, r7, 0
-_081A125C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x8
- bhi _081A127C
- ldr r0, [r3]
- lsls r1, r2, 2
- adds r0, r1
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bne _081A125C
-_081A127C:
- movs r4, 0
- cmp r4, r5
- bcs _081A1322
- ldr r0, [r7]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- cmp r4, r0
- bge _081A1322
- adds r6, r7, 0
- mov r9, r4
-_081A1296:
- ldr r3, [r6]
- lsls r0, r4, 2
- adds r2, r3, r0
- adds r0, r2, 0
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _081A1308
- lsrs r0, r1, 6
- cmp r0, 0
- beq _081A1308
- adds r0, r2, 0
- adds r0, 0xBA
- ldrh r0, [r0]
- mov r2, r12
- ldrh r2, [r2]
- cmp r0, r2
- bne _081A1308
- adds r0, r3, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r0, r3, r0
- adds r0, 0xB8
- ldrb r2, [r0]
- movs r1, 0x3F
- ands r1, r2
- strb r1, [r0]
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r1, r0
- mov r2, r12
- ldrh r0, [r2]
- adds r1, 0xBA
- strh r0, [r1]
- mov r1, r9
- mov r0, r8
- strh r1, [r0]
- b _081A1362
- .pool
-_081A1308:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcs _081A1322
- ldr r0, [r6]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- cmp r4, r0
- blt _081A1296
-_081A1322:
- ldr r2, [r7]
- adds r0, r2, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r2, r0
- adds r2, 0xB8
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r1, r0
- mov r2, r12
- ldrh r0, [r2]
- adds r1, 0xBA
- strh r0, [r1]
- movs r0, 0x1
- mov r1, r8
- strh r0, [r1]
-_081A1362:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81A1224
-
- thumb_func_start sub_81A1370
-sub_81A1370: @ 81A1370
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- movs r2, 0x8A
- lsls r2, 1
- adds r1, r2
- ldrb r1, [r1]
- adds r4, r0, 0
- cmp r1, 0xFF
- beq _081A1422
- movs r5, 0
-_081A138E:
- ldr r1, [r4]
- adds r2, r5, 0x1
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r3, r1, r0
- movs r5, 0x8A
- lsls r5, 1
- adds r0, r3, r5
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081A13B8
- adds r0, r3, 0
- adds r0, 0xDC
- adds r1, 0xDC
- movs r2, 0x44
- bl memcpy
- b _081A1422
- .pool
-_081A13B8:
- adds r5, r2, 0
- cmp r5, 0x2
- ble _081A138E
- ldr r0, =0x0000ffff
- mov r10, r0
- movs r2, 0x1
- negs r2, r2
- mov r9, r2
- movs r5, 0x1
- ldr r7, =gSaveBlock2Ptr
- movs r0, 0x90
- lsls r0, 1
- mov r8, r0
- movs r6, 0x44
-_081A13D4:
- ldr r0, [r7]
- add r0, r8
- adds r0, 0x34
- bl ReadUnalignedWord
- adds r4, r0, 0
- ldr r0, [r7]
- adds r0, 0xA
- bl ReadUnalignedWord
- cmp r4, r0
- bne _081A13FC
- ldr r0, [r7]
- adds r0, r6
- adds r0, 0xDE
- ldrb r0, [r0]
- cmp r0, r10
- bge _081A13FC
- mov r10, r0
- mov r9, r5
-_081A13FC:
- movs r2, 0x44
- add r8, r2
- adds r6, 0x44
- adds r5, 0x1
- cmp r5, 0x3
- ble _081A13D4
- mov r5, r9
- cmp r5, 0
- ble _081A1422
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- lsls r0, r5, 4
- add r0, r9
- lsls r0, 2
- adds r0, r1, r0
- adds r0, 0xDC
- adds r1, 0xDC
- bl memcpy
-_081A1422:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1370
-
- thumb_func_start sub_81A1438
-sub_81A1438: @ 81A1438
- push {r4,r5,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0xB0
- ldrb r0, [r0]
- adds r2, 0xDC
- movs r1, 0x1F
- ands r1, r0
- ldrb r3, [r2]
- movs r0, 0x20
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0xB1
- ldrb r1, [r0]
- lsls r1, 30
- adds r2, 0xDC
- lsrs r1, 25
- ldrb r3, [r2]
- movs r0, 0x61
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- movs r2, 0
- ldr r0, [r4]
- b _081A148C
- .pool
-_081A147C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x8
- bhi _081A1496
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r0, r1
-_081A148C:
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bne _081A147C
-_081A1496:
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- adds r0, 0xDD
- strb r2, [r0]
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0xDE
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _081A14AE
- adds r0, 0x1
- strb r0, [r1]
-_081A14AE:
- ldr r0, [r4]
- adds r0, 0xDD
- ldrb r0, [r0]
- bl sub_81A0390
- movs r2, 0
- adds r3, r4, 0
- movs r4, 0x88
- lsls r4, 1
- adds r5, r3, 0
-_081A14C2:
- ldr r0, [r3]
- adds r1, r0, r4
- adds r1, r2
- adds r0, 0xA
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _081A14C2
- ldr r1, [r5]
- movs r2, 0x8A
- lsls r2, 1
- adds r0, r1, r2
- bl StringCopy
- ldr r1, [r5]
- ldr r0, =gGameLanguage
- ldrb r0, [r0]
- ldr r2, =0x0000011b
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0xDC
- bl sub_8165AE8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1438
-
- thumb_func_start sub_81A150C
-sub_81A150C: @ 81A150C
- push {lr}
- ldr r2, =gUnknown_08610970
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xDC
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x32
- ldrb r2, [r0]
- movs r1, 0
- ldr r3, =gUnknown_085DCEDC
- ldrb r0, [r3]
- cmp r0, r2
- beq _081A1542
-_081A1530:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1D
- bhi _081A1542
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081A1530
-_081A1542:
- cmp r1, 0x1E
- beq _081A1568
- ldr r0, =gUnknown_085DCF0E
- adds r0, r1, r0
- ldrb r1, [r0]
- ldr r0, =0x00004010
- bl VarSet
- b _081A1594
- .pool
-_081A1568:
- movs r1, 0
- ldr r3, =gUnknown_085DCEFA
- ldrb r0, [r3]
- cmp r0, r2
- beq _081A1584
-_081A1572:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bhi _081A1584
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081A1572
-_081A1584:
- cmp r1, 0x14
- beq _081A1594
- ldr r0, =gUnknown_085DCF2C
- adds r0, r1, r0
- ldrb r1, [r0]
- ldr r0, =0x00004010
- bl VarSet
-_081A1594:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A150C
-
- thumb_func_start sub_81A15A4
-sub_81A15A4: @ 81A15A4
- push {lr}
- ldr r2, =gUnknown_08610970
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x32
- ldrb r2, [r0]
- movs r1, 0
- ldr r3, =gUnknown_085DCEDC
- ldrb r0, [r3]
- cmp r0, r2
- beq _081A15D6
-_081A15C4:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1D
- bhi _081A15D6
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081A15C4
-_081A15D6:
- cmp r1, 0x1E
- beq _081A15FC
- ldr r0, =gUnknown_085DCF0E
- adds r0, r1, r0
- ldrb r1, [r0]
- ldr r0, =0x00004010
- bl VarSet
- b _081A1628
- .pool
-_081A15FC:
- movs r1, 0
- ldr r3, =gUnknown_085DCEFA
- ldrb r0, [r3]
- cmp r0, r2
- beq _081A1618
-_081A1606:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bhi _081A1618
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081A1606
-_081A1618:
- cmp r1, 0x14
- beq _081A1628
- ldr r0, =gUnknown_085DCF2C
- adds r0, r1, r0
- ldrb r1, [r0]
- ldr r0, =0x00004010
- bl VarSet
-_081A1628:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A15A4
-
- thumb_func_start sub_81A1638
-sub_81A1638: @ 81A1638
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A1638
-
- thumb_func_start sub_81A1644
-sub_81A1644: @ 81A1644
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A1644
-
- thumb_func_start sub_81A1650
-sub_81A1650: @ 81A1650
- push {lr}
- movs r2, 0x58
- muls r2, r0
- ldr r0, =gUnknown_08610970
- adds r2, r0
- subs r0, r1, 0x1
- cmp r0, 0x6
- bhi _081A16AC
- lsls r0, 2
- ldr r1, =_081A1674
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A1674:
- .4byte _081A1690
- .4byte _081A1694
- .4byte _081A169A
- .4byte _081A16A0
- .4byte _081A16A6
- .4byte _081A16AC
- .4byte _081A16AC
-_081A1690:
- adds r0, r2, 0
- b _081A16B0
-_081A1694:
- adds r0, r2, 0
- adds r0, 0x8
- b _081A16B0
-_081A169A:
- adds r0, r2, 0
- adds r0, 0x10
- b _081A16B0
-_081A16A0:
- adds r0, r2, 0
- adds r0, 0x18
- b _081A16B0
-_081A16A6:
- adds r0, r2, 0
- adds r0, 0x20
- b _081A16B0
-_081A16AC:
- adds r0, r2, 0
- adds r0, 0x28
-_081A16B0:
- pop {r1}
- bx r1
- thumb_func_end sub_81A1650
-
- thumb_func_start sub_81A16B4
-sub_81A16B4: @ 81A16B4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081A16CE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081A16D4
-_081A16CE:
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
-_081A16D4:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A16B4
-
- thumb_func_start sub_81A16DC
-sub_81A16DC: @ 81A16DC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081A16F6
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081A1718
-_081A16F6:
- ldr r2, =gUnknown_030062F4
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- movs r3, 0xA
- ldrsh r0, [r0, r3]
- lsls r0, 16
- orrs r1, r0
- str r1, [r2]
- bl _call_via_r1
- adds r0, r4, 0
- bl DestroyTask
-_081A1718:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A16DC
-
- thumb_func_start sub_81A172C
-sub_81A172C: @ 81A172C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =sub_81A16DC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- lsrs r4, 16
- strh r4, [r1, 0xA]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A172C
-
- thumb_func_start sub_81A175C
-sub_81A175C: @ 81A175C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =sub_81A16B4
- adds r0, r4, 0
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- adds r2, r5, 0
- bl SetTaskFuncWithFollowupFunc
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A175C
thumb_func_start sub_81A1780
sub_81A1780: @ 81A1780
@@ -4152,7 +380,7 @@ _081A1AEA:
cmp r3, r0
blt _081A1AEA
_081A1B00:
- bl sub_80F94E8
+ bl ReducePlayerPartyToThree
pop {r4-r7}
pop {r0}
bx r0
@@ -7392,7 +3620,7 @@ _081A3758:
adds r0, 0x70
lsls r0, 24
lsrs r0, 24
- bl sub_819F99C
+ bl CopyFriendsApprenticeChallengeText
b _081A38F8
_081A3766:
movs r0, 0xFA
@@ -7533,7 +3761,7 @@ _081A38A8:
lsrs r3, r0, 24
movs r0, 0x58
muls r0, r3
- ldr r1, =gUnknown_08610970+0x4A
+ ldr r1, =gApprentices+0x4A
_081A38C4:
adds r0, r1
bl ConvertBattleFrontierTrainerSpeechToString
@@ -7554,7 +3782,7 @@ _081A38D4:
lsrs r3, r0, 27
movs r0, 0x58
muls r0, r3
- ldr r1, =gUnknown_08610970+0x4A
+ ldr r1, =gApprentices+0x4A
adds r0, r1
bl ConvertBattleFrontierTrainerSpeechToString
_081A38F8:
@@ -17008,7 +13236,7 @@ _081A87EC:
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
- ldr r1, =gBattleScripting + 0x14
+ ldr r1, =gPlayerParty - 100
adds r0, r1
ldr r1, =0x00000e12
adds r3, r1
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index 2312b63bd..ae01e0b5e 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -576,7 +576,7 @@ _0816266C:
b _081626BA
.pool
_08162698:
- ldr r3, =gUnknown_08610970
+ ldr r3, =gApprentices
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, =0xfffffe70
@@ -747,7 +747,7 @@ _081627E8:
b _08162836
.pool
_08162814:
- ldr r3, =gUnknown_08610970
+ ldr r3, =gApprentices
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, =0xfffffe70
@@ -1161,7 +1161,7 @@ _08162B64:
cmp r0, 0
bne _08162BB0
ldr r4, =gFacilityClassToPicIndex
- ldr r3, =gUnknown_08610970
+ ldr r3, =gApprentices
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, =0xfffffe70
@@ -1184,7 +1184,7 @@ _08162B64:
.pool
_08162BB0:
ldr r5, =gFacilityClassToPicIndex
- ldr r4, =gUnknown_08610970
+ ldr r4, =gApprentices
bl sub_81864A8
lsls r0, 24
lsrs r0, 24
@@ -1301,7 +1301,7 @@ _08162CBC:
cmp r0, 0
beq _08162CF4
ldr r5, =gFacilityClassToTrainerClass
- ldr r4, =gUnknown_08610970
+ ldr r4, =gApprentices
bl sub_81864A8
lsls r0, 24
lsrs r0, 24
@@ -1316,7 +1316,7 @@ _08162CBC:
.pool
_08162CF4:
ldr r4, =gFacilityClassToTrainerClass
- ldr r3, =gUnknown_08610970
+ ldr r3, =gApprentices
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, =0xfffffe70
@@ -1407,7 +1407,7 @@ _08162DC0:
ands r0, r1
cmp r0, 0
beq _08162DE8
- ldr r4, =gUnknown_08610970
+ ldr r4, =gApprentices
bl sub_81864A8
lsls r0, 24
lsrs r0, 24
@@ -1417,7 +1417,7 @@ _08162DC0:
b _08162E08
.pool
_08162DE8:
- ldr r3, =gUnknown_08610970
+ ldr r3, =gApprentices
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, =0xfffffe70
@@ -1578,7 +1578,7 @@ _08162F24:
_08162F3E:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_81A1650
+ bl GetApprenticeNameInLanguage
adds r1, r0, 0
adds r0, r6, 0
adds r2, r4, 0
@@ -1648,7 +1648,7 @@ _08162FC0:
b _0816300E
.pool
_08162FEC:
- ldr r3, =gUnknown_08610970
+ ldr r3, =gApprentices
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, =0xfffffe70
@@ -1927,7 +1927,7 @@ _08163230:
ldr r1, [r6]
adds r1, r5
lsrs r2, r4, 24
- bl sub_8068528
+ bl CreateApprenticeMon
movs r2, 0x80
lsls r2, 17
adds r4, r2
@@ -2831,7 +2831,7 @@ _0816399C:
adds r0, 0x70
lsls r0, 24
lsrs r0, 24
- bl sub_819F99C
+ bl CopyFriendsApprenticeChallengeText
_081639A8:
pop {r0}
bx r0
@@ -3475,7 +3475,7 @@ _08163FCC:
adds r1, r0, 0
movs r0, 0x64
muls r0, r1
- ldr r1, =gBattleScripting + 0x14
+ ldr r1, =gPlayerParty - 100
adds r0, r1
movs r1, 0x2C
muls r1, r4
@@ -6295,7 +6295,7 @@ _08165812:
adds r0, r5
ldrb r2, [r0]
adds r0, r4, 0
- bl sub_8068528
+ bl CreateApprenticeMon
movs r3, 0xC8
lsls r3, 1
adds r0, r7, r3
@@ -6690,7 +6690,7 @@ _08165B10:
adds r1, 0x1
cmp r1, 0x10
bls _08165B10
- bl sub_819FA5C
+ bl ResetApprenticeStruct
pop {r0}
bx r0
thumb_func_end sub_8165B08
diff --git a/asm/cable_club.s b/asm/cable_club.s
deleted file mode 100644
index 6f4917a19..000000000
--- a/asm/cable_club.s
+++ /dev/null
@@ -1,2842 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80B236C
-sub_80B236C: @ 80B236C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r4, =sub_80B2634
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080B23A0
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r6, [r1, 0xA]
- strh r5, [r1, 0xC]
-_080B23A0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B236C
-
- thumb_func_start sub_80B23B0
-sub_80B23B0: @ 80B23B0
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, =gStringVar1
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldr r5, =gStringVar4
- ldr r1, =gText_XPLink
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- adds r1, r5, 0
- movs r2, 0x58
- bl GetStringCenterAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- adds r2, r5, 0
- bl AddTextPrinterParameterized
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B23B0
-
- thumb_func_start sub_80B241C
-sub_80B241C: @ 80B241C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl sub_819746C
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B241C
-
- thumb_func_start sub_80B243C
-sub_80B243C: @ 80B243C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r5, r0
- beq _080B2472
- cmp r5, 0x1
- bhi _080B2468
- ldrh r0, [r4, 0xA]
- bl sub_80B241C
- b _080B2470
- .pool
-_080B2468:
- ldrh r0, [r4, 0xA]
- adds r1, r5, 0
- bl sub_80B23B0
-_080B2470:
- strh r5, [r4, 0x6]
-_080B2472:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B243C
-
- thumb_func_start sub_80B2478
-sub_80B2478: @ 80B2478
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl GetLinkPlayerDataExchangeStatusTimed
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x6
- bhi _080B24F0
- lsls r0, 2
- ldr r1, =_080B24A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080B24A0:
- .4byte _080B24BC
- .4byte _080B24F0
- .4byte _080B24C0
- .4byte _080B24C4
- .4byte _080B24C8
- .4byte _080B24CC
- .4byte _080B24EC
-_080B24BC:
- movs r0, 0x1
- b _080B24F2
-_080B24C0:
- movs r0, 0x3
- b _080B24F2
-_080B24C4:
- movs r0, 0x7
- b _080B24F2
-_080B24C8:
- movs r0, 0x9
- b _080B24F2
-_080B24CC:
- ldr r4, =gStringVar1
- bl GetLinkPlayerCount_2
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- movs r0, 0x4
- b _080B24F2
- .pool
-_080B24EC:
- movs r0, 0xA
- b _080B24F2
-_080B24F0:
- movs r0, 0
-_080B24F2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B2478
-
- thumb_func_start sub_80B24F8
-sub_80B24F8: @ 80B24F8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl HasLinkErrorOccurred
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B250E
- movs r0, 0
- b _080B251E
-_080B250E:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80B2D2C
- str r0, [r1]
- movs r0, 0x1
-_080B251E:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B24F8
-
- thumb_func_start sub_80B252C
-sub_80B252C: @ 80B252C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B2570
- bl IsLinkConnectionEstablished
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080B2570
- ldr r0, =gLinkType
- strh r1, [r0]
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80B2CEC
- str r1, [r0]
- movs r0, 0x1
- b _080B2572
- .pool
-_080B2570:
- movs r0, 0
-_080B2572:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B252C
-
- thumb_func_start sub_80B2578
-sub_80B2578: @ 80B2578
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsLinkConnectionEstablished
- lsls r0, 24
- cmp r0, 0
- beq _080B258E
- movs r0, 0x1
- bl SetSuppressLinkErrorMessage
-_080B258E:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080B25A4
- movs r0, 0
- b _080B25BA
- .pool
-_080B25A4:
- ldr r1, =gLinkType
- movs r0, 0
- strh r0, [r1]
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80B2CEC
- str r1, [r0]
- movs r0, 0x1
-_080B25BA:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B2578
-
- thumb_func_start sub_80B25CC
-sub_80B25CC: @ 80B25CC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl GetSioMultiSI
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B25E2
- movs r0, 0
- b _080B25F2
-_080B25E2:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80B2D2C
- str r0, [r1]
- movs r0, 0x1
-_080B25F2:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B25CC
-
- thumb_func_start sub_80B2600
-sub_80B2600: @ 80B2600
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080B262A
- movs r0, 0x2
- bl sub_800A4D8
- adds r0, r4, 0
- bl DestroyTask
-_080B262A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2600
-
- thumb_func_start sub_80B2634
-sub_80B2634: @ 80B2634
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- movs r3, 0
- ldrsh r2, [r4, r3]
- cmp r2, 0
- bne _080B266C
- bl OpenLinkTimed
- bl sub_800AB98
- bl ResetLinkPlayers
- ldr r0, =gUnknown_08550594
- bl AddWindow
- strh r0, [r4, 0xA]
- b _080B2678
- .pool
-_080B266C:
- cmp r2, 0x9
- ble _080B2678
- subs r0, 0x8
- adds r0, r1, r0
- ldr r1, =sub_80B2688
- str r1, [r0]
-_080B2678:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2634
-
- thumb_func_start sub_80B2688
-sub_80B2688: @ 80B2688
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl sub_80B252C
- cmp r0, 0x1
- beq _080B26FC
- adds r0, r4, 0
- bl sub_80B2578
- cmp r0, 0x1
- beq _080B26FC
- cmp r5, 0x1
- bls _080B26FC
- movs r0, 0x1
- bl SetSuppressLinkErrorMessage
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0
- strh r0, [r4, 0xE]
- bl IsLinkMaster
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B26EC
- movs r0, 0x15
- bl PlaySE
- ldr r0, =OldaleTown_PokemonCenter_2F_Text_2780B3
- bl ShowFieldAutoScrollMessage
- ldr r0, =sub_80B270C
- b _080B26FA
- .pool
-_080B26EC:
- movs r0, 0x16
- bl PlaySE
- ldr r0, =OldaleTown_PokemonCenter_2F_Text_278131
- bl ShowFieldAutoScrollMessage
- ldr r0, =sub_80B2918
-_080B26FA:
- str r0, [r4]
-_080B26FC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2688
-
- thumb_func_start sub_80B270C
-sub_80B270C: @ 80B270C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80B252C
- cmp r0, 0x1
- beq _080B274C
- adds r0, r4, 0
- bl sub_80B25CC
- cmp r0, 0x1
- beq _080B274C
- adds r0, r4, 0
- bl sub_80B24F8
- cmp r0, 0x1
- beq _080B274C
- bl textbox_any_visible
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080B274C
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0xE]
- ldr r0, =sub_80B275C
- str r0, [r1]
-_080B274C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B270C
-
- thumb_func_start sub_80B275C
-sub_80B275C: @ 80B275C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- mov r8, r0
- ldr r0, =gTasks + 0x8
- mov r9, r0
- mov r7, r8
- add r7, r9
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl sub_80B252C
- cmp r0, 0x1
- beq _080B27E4
- adds r0, r4, 0
- bl sub_80B25CC
- cmp r0, 0x1
- beq _080B27E4
- adds r0, r4, 0
- bl sub_80B24F8
- cmp r0, 0x1
- beq _080B27E4
- adds r6, r5, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80B243C
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B27E4
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r5, r0
- blt _080B27E4
- adds r0, r6, 0
- bl sub_800AA04
- ldrh r0, [r7, 0xA]
- bl sub_80B241C
- ldr r0, =gStringVar1
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r0, =OldaleTown_PokemonCenter_2F_Text_2780F2
- bl ShowFieldAutoScrollMessage
- mov r0, r9
- subs r0, 0x8
- add r0, r8
- ldr r1, =sub_80B2804
- str r1, [r0]
-_080B27E4:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B275C
-
- thumb_func_start sub_80B2804
-sub_80B2804: @ 80B2804
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r5, 0
- bl sub_80B252C
- cmp r0, 0x1
- beq _080B2898
- adds r0, r5, 0
- bl sub_80B25CC
- cmp r0, 0x1
- beq _080B2898
- adds r0, r5, 0
- bl sub_80B24F8
- cmp r0, 0x1
- beq _080B2898
- bl textbox_any_visible
- lsls r0, 24
- cmp r0, 0
- bne _080B2898
- bl sub_800AA48
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080B2852
- ldr r0, =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B2878
-_080B2852:
- ldr r0, =OldaleTown_PokemonCenter_2F_Text_2780B3
- bl ShowFieldAutoScrollMessage
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80B270C
- str r1, [r0]
- b _080B2898
- .pool
-_080B2878:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B2898
- movs r0, 0x5
- bl PlaySE
- bl sub_800A620
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80B28A8
- str r0, [r1]
-_080B2898:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2804
-
- thumb_func_start sub_80B28A8
-sub_80B28A8: @ 80B28A8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrb r7, [r5, 0xA]
- ldrb r6, [r5, 0xC]
- adds r0, r4, 0
- bl sub_80B24F8
- cmp r0, 0x1
- beq _080B290A
- adds r0, r4, 0
- bl sub_80B2D6C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B290A
- bl GetLinkPlayerCount_2
- adds r4, r0, 0
- bl sub_800AA48
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080B28F4
- ldr r0, =sub_80B2D2C
- b _080B2908
- .pool
-_080B28F4:
- ldr r4, =gSpecialVar_Result
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80B2478
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- beq _080B290A
- ldr r0, =sub_80B2A08
-_080B2908:
- str r0, [r5]
-_080B290A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B28A8
-
- thumb_func_start sub_80B2918
-sub_80B2918: @ 80B2918
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r7, r0, r1
- ldrb r6, [r7, 0xA]
- ldrb r5, [r7, 0xC]
- adds r0, r4, 0
- bl sub_80B252C
- cmp r0, 0x1
- beq _080B29E6
- adds r0, r4, 0
- bl sub_80B24F8
- cmp r0, 0x1
- beq _080B29E6
- ldr r4, =gSpecialVar_Result
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_80B2478
- adds r1, r0, 0
- strh r1, [r4]
- lsls r0, r1, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _080B29E6
- subs r0, r1, 0x3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080B297C
- bl sub_800AC34
- bl HideFieldMessageBox
- ldr r0, =sub_80B2CB0
- b _080B29E4
- .pool
-_080B297C:
- cmp r2, 0x7
- beq _080B2984
- cmp r2, 0x9
- bne _080B2994
-_080B2984:
- bl CloseLink
- bl HideFieldMessageBox
- ldr r0, =sub_80B2CB0
- b _080B29E4
- .pool
-_080B2994:
- bl GetLinkPlayerCount_2
- ldr r4, =gFieldLinkPlayerCount
- strb r0, [r4]
- bl GetMultiplayerId
- ldr r1, =gUnknown_03005DB4
- strb r0, [r1]
- ldrb r0, [r4]
- bl sub_800AA04
- ldr r4, =gBlockSendBuffer
- adds r0, r4, 0
- bl sub_80C30A4
- ldr r0, =gUnknown_0203CEF8
- mov r8, r0
- ldrb r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, =gBattleScripting + 0x14
- adds r0, r5
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r1, r4, 0
- adds r1, 0x54
- strh r0, [r1]
- mov r1, r8
- ldrb r0, [r1, 0x1]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, 0x56
- strh r0, [r4]
- ldr r0, =sub_80B2C30
-_080B29E4:
- str r0, [r7]
-_080B29E6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2918
-
- thumb_func_start sub_80B2A08
-sub_80B2A08: @ 80B2A08
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r7, 0
- bl sub_80B24F8
- cmp r0, 0x1
- beq _080B2ACE
- ldr r0, =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0x4
- bne _080B2A38
- bl Link_AnyPartnersPlayingRubyOrSapphire
- cmp r0, 0
- bne _080B2A4A
- bl sub_800AC34
- b _080B2A4E
- .pool
-_080B2A38:
- cmp r0, 0x3
- bne _080B2A42
- bl sub_800AC34
- b _080B2A4E
-_080B2A42:
- cmp r0, 0x7
- beq _080B2A4A
- cmp r0, 0x9
- bne _080B2A6C
-_080B2A4A:
- bl CloseLink
-_080B2A4E:
- bl HideFieldMessageBox
- ldr r0, =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80B2CB0
- str r0, [r1]
- b _080B2ACE
- .pool
-_080B2A6C:
- bl GetLinkPlayerCount_2
- ldr r4, =gFieldLinkPlayerCount
- strb r0, [r4]
- bl GetMultiplayerId
- ldr r1, =gUnknown_03005DB4
- strb r0, [r1]
- ldrb r0, [r4]
- bl sub_800AA04
- ldr r4, =gBlockSendBuffer
- adds r0, r4, 0
- bl sub_80C30A4
- ldr r0, =gUnknown_0203CEF8
- mov r8, r0
- ldrb r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, =gBattleScripting + 0x14
- adds r0, r5
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r1, r4, 0
- adds r1, 0x54
- strh r0, [r1]
- mov r1, r8
- ldrb r0, [r1, 0x1]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, 0x56
- strh r0, [r4]
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80B2C30
- str r1, [r0]
- movs r0, 0x2
- bl sub_800A4D8
-_080B2ACE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2A08
-
- thumb_func_start sub_80B2AF4
-sub_80B2AF4: @ 80B2AF4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- str r0, [sp]
- str r1, [sp, 0x4]
- movs r2, 0
- movs r7, 0
- ldr r1, =gStringVar1
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, =gStringVar2
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1]
- movs r1, 0
- movs r0, 0xB
- mov r10, r0
- ldr r0, =gSpeciesNames
- mov r9, r0
-_080B2B20:
- lsls r0, r1, 1
- adds r1, 0x1
- mov r8, r1
- ldr r1, [sp]
- adds r4, r0, r1
- ldr r5, [sp, 0x4]
- movs r6, 0x1
-_080B2B2E:
- ldrh r0, [r4]
- ldrh r1, [r5]
- cmp r0, r1
- bne _080B2B5E
- cmp r7, 0
- bne _080B2B48
- mov r1, r10
- muls r1, r0
- add r1, r9
- ldr r0, =gStringVar1
- bl StringCopy
- movs r2, 0x1
-_080B2B48:
- cmp r7, 0x1
- bne _080B2B5C
- ldrh r0, [r4]
- mov r1, r10
- muls r1, r0
- add r1, r9
- ldr r0, =gStringVar2
- bl StringCopy
- movs r2, 0x1
-_080B2B5C:
- adds r7, 0x1
-_080B2B5E:
- adds r5, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _080B2B2E
- mov r1, r8
- cmp r1, 0x1
- ble _080B2B20
- ldr r0, =gSpecialVar_0x8005
- strh r7, [r0]
- adds r0, r2, 0
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B2AF4
-
- thumb_func_start task_map_chg_seq_0807EC34
-task_map_chg_seq_0807EC34: @ 80B2B94
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, =gTrainerCards
- ldrh r0, [r5]
- cmp r0, 0x1
- bne _080B2C10
- ldr r0, =gLinkType
- ldrh r2, [r0]
- ldr r0, =0x00002266
- cmp r2, r0
- beq _080B2BB2
- adds r0, 0x11
- cmp r2, r0
- bne _080B2BEC
-_080B2BB2:
- adds r0, r1, 0
- adds r0, 0x54
- adds r1, 0xB8
- bl sub_80B2AF4
- cmp r0, 0
- beq _080B2BEC
- movs r0, 0xB
- strh r0, [r5]
- bl sub_800AC34
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80B2CB0
- str r1, [r0]
- b _080B2C22
- .pool
-_080B2BEC:
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x12]
- bl sub_80B241C
- bl EnableBothScriptContexts
- lsls r0, r4, 24
- lsrs r0, 24
- bl DestroyTask
- b _080B2C22
- .pool
-_080B2C10:
- bl sub_800AC34
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80B2CB0
- str r0, [r1]
-_080B2C22:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_map_chg_seq_0807EC34
-
- thumb_func_start sub_80B2C30
-sub_80B2C30: @ 80B2C30
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80B24F8
- cmp r0, 0x1
- beq _080B2C9C
- bl GetBlockReceivedStatus
- adds r4, r0, 0
- bl sub_800A9A8
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080B2C9C
- movs r4, 0
- ldr r6, =gLinkPlayers
- b _080B2C7E
- .pool
-_080B2C5C:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gTrainerCards
- adds r0, r1
- lsls r1, r4, 8
- ldr r2, =gBlockRecvBuffer
- adds r1, r2
- lsls r2, r4, 3
- subs r2, r4
- lsls r2, 2
- adds r2, r6
- ldrb r2, [r2]
- bl sub_80C3120
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080B2C7E:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _080B2C5C
- movs r0, 0
- bl SetSuppressLinkErrorMessage
- bl ResetBlockReceivedFlags
- ldr r0, =gSpecialVar_Result
- adds r1, r5, 0
- bl task_map_chg_seq_0807EC34
-_080B2C9C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2C30
-
- thumb_func_start sub_80B2CB0
-sub_80B2CB0: @ 80B2CB0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B2CDE
- ldr r0, =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x12]
- bl sub_80B241C
- bl EnableBothScriptContexts
- ldrb r0, [r4, 0x12]
- bl RemoveWindow
- adds r0, r5, 0
- bl DestroyTask
-_080B2CDE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2CB0
-
- thumb_func_start sub_80B2CEC
-sub_80B2CEC: @ 80B2CEC
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, =gSpecialVar_Result
- movs r0, 0x5
- strh r0, [r1]
- ldr r0, =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x12]
- bl sub_80B241C
- bl sub_8098374
- ldrb r0, [r4, 0x12]
- bl RemoveWindow
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2CEC
-
- thumb_func_start sub_80B2D2C
-sub_80B2D2C: @ 80B2D2C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, =gSpecialVar_Result
- movs r0, 0x6
- strh r0, [r1]
- ldr r0, =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x12]
- bl sub_80B241C
- ldrb r0, [r4, 0x12]
- bl RemoveWindow
- bl HideFieldMessageBox
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2D2C
-
- thumb_func_start sub_80B2D6C
-sub_80B2D6C: @ 80B2D6C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r0, [r2, 0x10]
- adds r0, 0x1
- strh r0, [r2, 0x10]
- lsls r0, 16
- movs r1, 0x96
- lsls r1, 18
- cmp r0, r1
- bgt _080B2D94
- movs r0, 0
- b _080B2D9A
- .pool
-_080B2D94:
- ldr r0, =sub_80B2D2C
- str r0, [r2]
- movs r0, 0x1
-_080B2D9A:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B2D6C
-
- thumb_func_start sub_80B2DA4
-sub_80B2DA4: @ 80B2DA4
- push {r4,lr}
- movs r3, 0x2
- movs r2, 0x2
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x2
- beq _080B2DDC
- cmp r0, 0x2
- bgt _080B2DC0
- cmp r0, 0x1
- beq _080B2DCA
- b _080B2E34
- .pool
-_080B2DC0:
- cmp r0, 0x5
- beq _080B2DEC
- cmp r0, 0x9
- beq _080B2E00
- b _080B2E34
-_080B2DCA:
- movs r3, 0x2
- ldr r1, =gLinkType
- ldr r4, =0x00002233
- b _080B2E30
- .pool
-_080B2DDC:
- movs r3, 0x2
- ldr r1, =gLinkType
- ldr r4, =0x00002244
- b _080B2E30
- .pool
-_080B2DEC:
- movs r3, 0x4
- movs r2, 0x4
- ldr r1, =gLinkType
- ldr r4, =0x00002255
- b _080B2E30
- .pool
-_080B2E00:
- movs r3, 0x2
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080B2E2C
- ldr r1, =gLinkType
- ldr r4, =0x00002266
- b _080B2E30
- .pool
-_080B2E2C:
- ldr r1, =gLinkType
- ldr r4, =0x00002277
-_080B2E30:
- adds r0, r4, 0
- strh r0, [r1]
-_080B2E34:
- adds r0, r3, 0
- adds r1, r2, 0
- bl sub_80B236C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2DA4
-
- thumb_func_start sub_80B2E4C
-sub_80B2E4C: @ 80B2E4C
- push {lr}
- ldr r1, =gLinkType
- ldr r2, =0x00001133
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, =gBattleTypeFlags
- movs r0, 0
- str r0, [r1]
- movs r0, 0x2
- movs r1, 0x2
- bl sub_80B236C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2E4C
-
- thumb_func_start sub_80B2E74
-sub_80B2E74: @ 80B2E74
- push {lr}
- ldr r1, =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
- ldr r1, =gLinkType
- ldr r2, =0x00003311
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, =gBattleTypeFlags
- movs r0, 0
- str r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- bl sub_80B236C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2E74
-
- thumb_func_start sub_80B2EA8
-sub_80B2EA8: @ 80B2EA8
- push {r4,lr}
- ldr r4, =sub_80B2EE4
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _080B2ED4
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
-_080B2ED4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2EA8
-
- thumb_func_start sub_80B2EE4
-sub_80B2EE4: @ 80B2EE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080B2F0C
- cmp r0, 0x1
- beq _080B2FB4
- b _080B2FC6
- .pool
-_080B2F0C:
- ldr r0, =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _080B2FA8
- movs r7, 0
- movs r0, 0
- mov r8, r0
- mov r9, r0
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r7, r5
- bge _080B2F74
- ldr r0, =gLinkPlayers
- ldrb r2, [r0]
- ldrh r3, [r0, 0x1A]
- subs r1, r2, 0x1
- mov r12, r0
- cmp r1, 0x1
- bhi _080B2F4A
- b _080B2F6E
- .pool
-_080B2F44:
- movs r1, 0x1
- mov r8, r1
- b _080B2F56
-_080B2F4A:
- cmp r2, 0x3
- bne _080B2F56
- cmp r3, 0x1
- bne _080B2F56
- movs r0, 0x1
- mov r9, r0
-_080B2F56:
- adds r4, 0x1
- cmp r4, r5
- bge _080B2F74
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0]
- ldrh r3, [r0, 0x1A]
- subs r0, r2, 0x1
- cmp r0, 0x1
- bhi _080B2F4A
-_080B2F6E:
- cmp r3, 0x1
- bne _080B2F44
- movs r7, 0x1
-_080B2F74:
- mov r1, r8
- cmp r1, 0
- beq _080B2F82
- mov r0, r9
- cmp r0, 0
- beq _080B2F82
- movs r7, 0x1
-_080B2F82:
- cmp r7, 0
- beq _080B2FA8
- ldr r1, =gSpecialVar_Result
- movs r0, 0xC
- strh r0, [r1]
- bl sub_800AD10
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x8]
- b _080B2FC6
- .pool
-_080B2FA8:
- bl EnableBothScriptContexts
- adds r0, r6, 0
- bl DestroyTask
- b _080B2FC6
-_080B2FB4:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B2FC6
- bl EnableBothScriptContexts
- adds r0, r6, 0
- bl DestroyTask
-_080B2FC6:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2EE4
-
- thumb_func_start sub_80B2FD8
-sub_80B2FD8: @ 80B2FD8
- push {lr}
- ldr r1, =gLinkType
- ldr r2, =0x00004411
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, =gBattleTypeFlags
- movs r0, 0
- str r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- bl sub_80B236C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2FD8
-
- thumb_func_start sub_80B3000
-sub_80B3000: @ 80B3000
- push {lr}
- ldr r1, =gLinkType
- ldr r2, =0x00006601
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, =gBattleTypeFlags
- movs r0, 0
- str r0, [r1]
- movs r0, 0x4
- movs r1, 0x4
- bl sub_80B236C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3000
-
- thumb_func_start sub_80B3028
-sub_80B3028: @ 80B3028
- push {lr}
- ldr r1, =gLinkType
- ldr r2, =0x00006602
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, =gBattleTypeFlags
- movs r0, 0
- str r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- bl sub_80B236C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3028
-
- thumb_func_start sub_80B3050
-sub_80B3050: @ 80B3050
- push {lr}
- ldr r0, =sub_80B3144
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _080B3068
- movs r0, 0xFF
- b _080B3134
- .pool
-_080B3068:
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x8
- bhi _080B3128
- lsls r0, 2
- ldr r1, =_080B3084
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080B3084:
- .4byte _080B30A8
- .4byte _080B30B8
- .4byte _080B3110
- .4byte _080B3120
- .4byte _080B30C8
- .4byte _080B3128
- .4byte _080B3128
- .4byte _080B3128
- .4byte _080B30D8
-_080B30A8:
- ldr r1, =gLinkType
- ldr r2, =0x00002233
- b _080B3124
- .pool
-_080B30B8:
- ldr r1, =gLinkType
- ldr r2, =0x00002244
- b _080B3124
- .pool
-_080B30C8:
- ldr r1, =gLinkType
- ldr r2, =0x00002255
- b _080B3124
- .pool
-_080B30D8:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080B3100
- ldr r1, =gLinkType
- ldr r2, =0x00002266
- b _080B3124
- .pool
-_080B3100:
- ldr r1, =gLinkType
- ldr r2, =0x00002277
- b _080B3124
- .pool
-_080B3110:
- ldr r1, =gLinkType
- ldr r2, =0x00001111
- b _080B3124
- .pool
-_080B3120:
- ldr r1, =gLinkType
- ldr r2, =0x00003322
-_080B3124:
- adds r0, r2, 0
- strh r0, [r1]
-_080B3128:
- ldr r0, =sub_80B3144
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
-_080B3134:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B3050
-
- thumb_func_start sub_80B3144
-sub_80B3144: @ 80B3144
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- movs r3, 0
- ldrsh r2, [r4, r3]
- cmp r2, 0
- bne _080B3178
- bl OpenLink
- bl ResetLinkPlayers
- ldr r0, =task00_08081A90
- movs r1, 0x50
- bl CreateTask
- b _080B3184
- .pool
-_080B3178:
- cmp r2, 0x9
- ble _080B3184
- subs r0, 0x8
- adds r0, r1, r0
- ldr r1, =sub_80B3194
- str r1, [r0]
-_080B3184:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3144
-
- thumb_func_start sub_80B3194
-sub_80B3194: @ 80B3194
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _080B31DA
- bl IsLinkMaster
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B31CC
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80B31E8
- b _080B31D8
- .pool
-_080B31CC:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80B3220
-_080B31D8:
- str r0, [r1]
-_080B31DA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3194
-
- thumb_func_start sub_80B31E8
-sub_80B31E8: @ 80B31E8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_800AA48
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080B3212
- bl sub_800A620
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80B3220
- str r0, [r1]
-_080B3212:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B31E8
-
- thumb_func_start sub_80B3220
-sub_80B3220: @ 80B3220
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080B3248
- bl IsLinkPlayerDataExchangeComplete
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B3248
- bl sub_800AB18
- bl sub_8009F18
- adds r0, r4, 0
- bl DestroyTask
-_080B3248:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3220
-
- thumb_func_start sub_80B3254
-sub_80B3254: @ 80B3254
- push {lr}
- bl SaveGame
- pop {r0}
- bx r0
- thumb_func_end sub_80B3254
-
- thumb_func_start sub_80B3260
-sub_80B3260: @ 80B3260
- push {lr}
- cmp r0, 0x2
- beq _080B3284
- cmp r0, 0x2
- bgt _080B3270
- cmp r0, 0x1
- beq _080B327A
- b _080B32A6
-_080B3270:
- cmp r0, 0x5
- beq _080B3290
- cmp r0, 0x9
- beq _080B32A0
- b _080B32A6
-_080B327A:
- ldr r1, =gBattleTypeFlags
- movs r0, 0xA
- b _080B32A4
- .pool
-_080B3284:
- ldr r1, =gBattleTypeFlags
- movs r0, 0xB
- b _080B32A4
- .pool
-_080B3290:
- bl sub_80F94E8
- ldr r1, =gBattleTypeFlags
- movs r0, 0x4B
- b _080B32A4
- .pool
-_080B32A0:
- ldr r1, =gBattleTypeFlags
- ldr r0, =0x0000014b
-_080B32A4:
- str r0, [r1]
-_080B32A6:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3260
-
- thumb_func_start sub_80B32B4
-sub_80B32B4: @ 80B32B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bhi _080B33A0
- lsls r0, 2
- ldr r1, =_080B32E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080B32E0:
- .4byte _080B32F8
- .4byte _080B3318
- .4byte _080B3328
- .4byte _080B3338
- .4byte _080B333E
- .4byte _080B3354
-_080B32F8:
- movs r0, 0x1
- movs r1, 0
- bl FadeScreen
- ldr r1, =gLinkType
- ldr r2, =0x00002211
- adds r0, r2, 0
- strh r0, [r1]
- bl ClearLinkCallback_2
- b _080B3346
- .pool
-_080B3318:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- b _080B3342
- .pool
-_080B3328:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080B33A0
- b _080B3346
-_080B3338:
- bl sub_800AC34
- b _080B3346
-_080B333E:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
-_080B3342:
- cmp r0, 0
- bne _080B33A0
-_080B3346:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B33A0
- .pool
-_080B3354:
- ldr r0, =gLinkPlayers
- ldr r0, [r0, 0x4]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B3370
- ldr r0, =0x000001dd
- bl PlayMapChosenOrBattleBGM
- b _080B3378
- .pool
-_080B3370:
- movs r0, 0xEE
- lsls r0, 1
- bl PlayMapChosenOrBattleBGM
-_080B3378:
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl sub_80B3260
- bl overworld_free_bg_tilemaps
- ldr r1, =gTrainerBattleOpponent_A
- movs r2, 0x80
- lsls r2, 4
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, =CB2_InitBattle
- bl SetMainCallback2
- ldr r1, =gMain
- ldr r0, =sub_80B360C
- str r0, [r1, 0x8]
- adds r0, r5, 0
- bl DestroyTask
-_080B33A0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B32B4
-
- thumb_func_start sub_80B33BC
-sub_80B33BC: @ 80B33BC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r6, r0, r1
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x7
- bls _080B33D6
- b _080B3532
-_080B33D6:
- lsls r0, 2
- ldr r1, =_080B33E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080B33E8:
- .4byte _080B3408
- .4byte _080B342C
- .4byte _080B3444
- .4byte _080B3458
- .4byte _080B34B0
- .4byte _080B34C4
- .4byte _080B34CE
- .4byte _080B34DE
-_080B3408:
- movs r0, 0x1
- movs r1, 0
- bl FadeScreen
- ldr r0, =gLinkType
- ldr r2, =0x00002211
- adds r1, r2, 0
- strh r1, [r0]
- bl ClearLinkCallback_2
- movs r0, 0x1
- strh r0, [r6]
- b _080B3532
- .pool
-_080B342C:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080B343A
- b _080B3532
-_080B343A:
- movs r0, 0x2
- strh r0, [r6]
- b _080B3532
- .pool
-_080B3444:
- ldr r1, =gLocalLinkPlayer
- movs r0, 0
- movs r2, 0x1C
- bl SendBlock
- movs r0, 0x3
- strh r0, [r6]
- b _080B3532
- .pool
-_080B3458:
- bl GetBlockReceivedStatus
- adds r4, r0, 0
- bl sub_800A9D8
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080B3532
- movs r4, 0
- ldr r5, =gLinkPlayers
- b _080B349A
- .pool
-_080B3474:
- lsls r1, r4, 8
- ldr r2, =gBlockRecvBuffer
- adds r0, r5, 0
- adds r1, r2
- ldm r1!, {r2,r3,r7}
- stm r0!, {r2,r3,r7}
- ldm r1!, {r2,r3,r7}
- stm r0!, {r2,r3,r7}
- ldr r1, [r1]
- str r1, [r0]
- adds r0, r5, 0
- bl sub_800B524
- lsls r0, r4, 24
- lsrs r0, 24
- bl ResetBlockReceivedFlag
- adds r5, 0x1C
- adds r4, 0x1
-_080B349A:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- blt _080B3474
- movs r0, 0x4
- strh r0, [r6]
- b _080B3532
- .pool
-_080B34B0:
- ldrh r0, [r6, 0x2]
- adds r0, 0x1
- strh r0, [r6, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080B3532
- movs r0, 0x5
- strh r0, [r6]
- b _080B3532
-_080B34C4:
- bl sub_800ADF8
- movs r0, 0x6
- strh r0, [r6]
- b _080B3532
-_080B34CE:
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- beq _080B3532
- movs r0, 0x7
- strh r0, [r6]
- b _080B3532
-_080B34DE:
- ldr r0, =gLinkPlayers
- ldr r0, [r0, 0x4]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B34FC
- ldr r0, =0x000001dd
- bl PlayMapChosenOrBattleBGM
- b _080B3504
- .pool
-_080B34FC:
- movs r0, 0xEE
- lsls r0, 1
- bl PlayMapChosenOrBattleBGM
-_080B3504:
- ldr r1, =gLinkPlayers
- ldr r0, =0x00002211
- str r0, [r1, 0x14]
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl sub_80B3260
- bl overworld_free_bg_tilemaps
- ldr r1, =gTrainerBattleOpponent_A
- movs r3, 0x80
- lsls r3, 4
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, =CB2_InitBattle
- bl SetMainCallback2
- ldr r1, =gMain
- ldr r0, =sub_80B360C
- str r0, [r1, 0x8]
- adds r0, r4, 0
- bl DestroyTask
-_080B3532:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B33BC
-
- thumb_func_start sub_80B3554
-sub_80B3554: @ 80B3554
- push {r4,lr}
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080B35E0
- cmp r0, 0x1
- bgt _080B3574
- cmp r0, 0
- beq _080B357A
- b _080B35FE
- .pool
-_080B3574:
- cmp r0, 0x2
- beq _080B35F8
- b _080B35FE
-_080B357A:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r3, r0, 24
- movs r4, 0
- movs r2, 0
- cmp r4, r3
- bge _080B35AC
- ldr r1, =gLinkPlayers
- ldrb r0, [r1]
- subs r0, 0x4
- cmp r0, 0x1
- bls _080B35B0
-_080B3594:
- adds r2, 0x1
- cmp r2, r3
- bge _080B35AC
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x4
- cmp r0, 0x1
- bhi _080B3594
- movs r4, 0x1
-_080B35AC:
- cmp r4, 0
- beq _080B35C8
-_080B35B0:
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- b _080B35FE
- .pool
-_080B35C8:
- bl sub_800AC34
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _080B35FE
- .pool
-_080B35E0:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B35FE
- ldr r0, =CB2_ReturnToField
- bl SetMainCallback2
- b _080B35FE
- .pool
-_080B35F8:
- ldr r0, =CB2_ReturnToField
- bl SetMainCallback2
-_080B35FE:
- bl RunTasks
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3554
-
- thumb_func_start sub_80B360C
-sub_80B360C: @ 80B360C
- push {r4,r5,lr}
- ldr r2, =gBattleTypeFlags
- ldr r0, [r2]
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- bl Overworld_ResetMapMusic
- bl LoadPlayerParty
- bl SavePlayerBag
- bl sub_813BF10
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080B36B2
- ldr r0, =gUnknown_03005DB4
- ldrb r0, [r0]
- movs r5, 0x1
- eors r0, r5
- bl UpdatePlayerLinkBattleRecords
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B36B2
- ldr r0, =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080B3670
- cmp r0, 0x2
- beq _080B3694
- b _080B36B2
- .pool
-_080B3670:
- ldr r4, =gLinkPlayers
- bl GetMultiplayerId
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r4, 0x4
- adds r1, r4
- ldr r1, [r1]
- movs r0, 0
- bl sub_801B990
- b _080B36B2
- .pool
-_080B3694:
- ldr r4, =gLinkPlayers
- bl GetMultiplayerId
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r4, 0x4
- adds r1, r4
- ldr r1, [r1]
- movs r0, 0x1
- bl sub_801B990
-_080B36B2:
- bl InUnionRoom
- cmp r0, 0x1
- bne _080B36CC
- ldr r1, =gMain
- ldr r0, =sub_80B3554
- b _080B36D0
- .pool
-_080B36CC:
- ldr r1, =gMain
- ldr r0, =c2_8056854
-_080B36D0:
- str r0, [r1, 0x8]
- ldr r0, =sub_80A0514
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B360C
-
- thumb_func_start sub_80B36EC
-sub_80B36EC: @ 80B36EC
- push {lr}
- ldr r0, =gSpecialVar_0x8004
- ldrh r1, [r0]
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080B3706
- adds r0, r1, 0
- cmp r0, 0x5
- beq _080B3706
- cmp r0, 0x9
- bne _080B370E
-_080B3706:
- bl LoadPlayerParty
- bl SavePlayerBag
-_080B370E:
- movs r0, 0x7F
- bl copy_saved_warp2_bank_and_enter_x_to_warp1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B36EC
-
- thumb_func_start sub_80B371C
-sub_80B371C: @ 80B371C
- push {lr}
- bl sub_80872B0
- pop {r0}
- bx r0
- thumb_func_end sub_80B371C
-
- thumb_func_start sub_80B3728
-sub_80B3728: @ 80B3728
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080B376C
- cmp r0, 0x1
- bgt _080B3750
- cmp r0, 0
- beq _080B375A
- b _080B37CC
- .pool
-_080B3750:
- cmp r0, 0x2
- beq _080B378C
- cmp r0, 0x3
- beq _080B37B8
- b _080B37CC
-_080B375A:
- ldr r0, =OldaleTown_PokemonCenter_2F_Text_278091
- bl ShowFieldMessage
- movs r0, 0x1
- strh r0, [r5, 0x8]
- b _080B37CC
- .pool
-_080B376C:
- bl IsFieldMessageBoxHidden
- lsls r0, 24
- cmp r0, 0
- beq _080B37CC
- bl sub_8087288
- ldr r0, =gSpecialVar_0x8005
- ldrb r0, [r0]
- bl sub_8009628
- movs r0, 0x2
- strh r0, [r5, 0x8]
- b _080B37CC
- .pool
-_080B378C:
- bl sub_8087214
- cmp r0, 0x1
- beq _080B379E
- cmp r0, 0x1
- bcc _080B37CC
- cmp r0, 0x2
- beq _080B37B2
- b _080B37CC
-_080B379E:
- bl HideFieldMessageBox
- movs r0, 0
- strh r0, [r5, 0x8]
- bl sub_80872C4
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
- b _080B37CC
-_080B37B2:
- movs r0, 0x3
- strh r0, [r5, 0x8]
- b _080B37CC
-_080B37B8:
- bl sub_808729C
- movs r0, 0x1
- bl sub_8197AE8
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B37CC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B3728
-
- thumb_func_start sub_80B37D4
-sub_80B37D4: @ 80B37D4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =sub_80B3728
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- adds r2, r5, 0
- bl SetTaskFuncWithFollowupFunc
- bl ScriptContext1_Stop
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B37D4
-
- thumb_func_start sub_80B37FC
-sub_80B37FC: @ 80B37FC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080B3840
- cmp r0, 0x1
- bgt _080B3824
- cmp r0, 0
- beq _080B382E
- b _080B3884
- .pool
-_080B3824:
- cmp r0, 0x2
- beq _080B3854
- cmp r0, 0x3
- beq _080B3870
- b _080B3884
-_080B382E:
- bl ScriptContext2_Enable
- movs r0, 0x1
- movs r1, 0
- bl FadeScreen
- bl ClearLinkCallback_2
- b _080B3864
-_080B3840:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B3884
- b _080B3864
- .pool
-_080B3854:
- ldr r1, =gUnknown_02032298
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- bl m4aMPlayAllStop
- bl sub_800AC34
-_080B3864:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B3884
- .pool
-_080B3870:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B3884
- ldr r0, =sub_80773AC
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_080B3884:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B37FC
-
- thumb_func_start sub_80B3894
-sub_80B3894: @ 80B3894
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080B38D8
- cmp r0, 0x1
- bgt _080B38BC
- cmp r0, 0
- beq _080B38C6
- b _080B391C
- .pool
-_080B38BC:
- cmp r0, 0x2
- beq _080B38EC
- cmp r0, 0x3
- beq _080B3908
- b _080B391C
-_080B38C6:
- bl ScriptContext2_Enable
- movs r0, 0x1
- movs r1, 0
- bl FadeScreen
- bl Rfu_set_zero
- b _080B38FC
-_080B38D8:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B391C
- b _080B38FC
- .pool
-_080B38EC:
- ldr r1, =gUnknown_02032298
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- bl m4aMPlayAllStop
- bl sub_800ADF8
-_080B38FC:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080B391C
- .pool
-_080B3908:
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- beq _080B391C
- bl sub_8013F78
- adds r0, r5, 0
- bl DestroyTask
-_080B391C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B3894
-
- thumb_func_start sub_80B3924
-sub_80B3924: @ 80B3924
- push {lr}
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B3940
- ldr r0, =sub_80B3894
- bl sub_80B37D4
- b _080B3946
- .pool
-_080B3940:
- ldr r0, =sub_80B37FC
- bl sub_80B37D4
-_080B3946:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3924
-
- thumb_func_start sub_80B3950
-sub_80B3950: @ 80B3950
- push {lr}
- ldr r0, =sub_80B37FC
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3950
-
- thumb_func_start nullsub_37
-nullsub_37: @ 80B3964
- bx lr
- thumb_func_end nullsub_37
-
- thumb_func_start sub_80B3968
-sub_80B3968: @ 80B3968
- push {lr}
- ldr r1, =gLinkType
- ldr r2, =0x00002211
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B3994
- ldr r0, =sub_80B33BC
- bl sub_80B37D4
- b _080B399A
- .pool
-_080B3994:
- ldr r0, =sub_80B32B4
- bl sub_80B37D4
-_080B399A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3968
-
- thumb_func_start sub_80B39A4
-sub_80B39A4: @ 80B39A4
- push {lr}
- ldr r0, =sub_80B3728
- movs r1, 0x50
- bl CreateTask
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B39A4
-
- thumb_func_start sp02A_crash_sound
-sp02A_crash_sound: @ 80B39BC
- push {lr}
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r1, =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl sub_80C4E74
- pop {r0}
- bx r0
- .pool
- thumb_func_end sp02A_crash_sound
-
- thumb_func_start sub_80B39D4
-sub_80B39D4: @ 80B39D4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gSpecialVar_0x8006
- strh r4, [r0]
- ldr r0, =gStringVar1
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- ldr r2, =gLinkPlayers + 8
- adds r1, r2
- bl StringCopy
- adds r0, r4, 0
- bl sub_80C4904
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080B3A28
- ldr r0, =gStringVar2
- ldr r2, =gUnknown_0855059C
- subs r1, 0x1
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- movs r0, 0x1
- b _080B3A2A
- .pool
-_080B3A28:
- movs r0, 0
-_080B3A2A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B39D4
-
- thumb_func_start task00_08081A90
-task00_08081A90: @ 80B3A30
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- movs r0, 0x96
- lsls r0, 17
- cmp r1, r0
- ble _080B3A62
- bl CloseLink
- ldr r0, =CB2_LinkError
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_080B3A62:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B3AA6
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B3AA0
- bl sub_800AA60
- lsls r0, 24
- cmp r0, 0
- bne _080B3A86
- bl CloseLink
- ldr r0, =CB2_LinkError
- bl SetMainCallback2
-_080B3A86:
- adds r0, r4, 0
- bl DestroyTask
- b _080B3AA6
- .pool
-_080B3AA0:
- adds r0, r5, 0
- bl DestroyTask
-_080B3AA6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end task00_08081A90
-
- thumb_func_start sub_80B3AAC
-sub_80B3AAC: @ 80B3AAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B3AC4
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_080B3AC4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3AAC
-
- thumb_func_start sub_80B3AD0
-sub_80B3AD0: @ 80B3AD0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_800AC34
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80B3AAC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3AD0
-
- thumb_func_start sub_80B3AF8
-sub_80B3AF8: @ 80B3AF8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080B3B54
- cmp r0, 0x1
- bgt _080B3B20
- cmp r0, 0
- beq _080B3B2A
- b _080B3BB8
- .pool
-_080B3B20:
- cmp r0, 0x2
- beq _080B3B68
- cmp r0, 0x3
- beq _080B3B9E
- b _080B3BB8
-_080B3B2A:
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B3B40
- adds r0, r4, 0
- bl DestroyTask
- b _080B3BB8
- .pool
-_080B3B40:
- bl OpenLink
- ldr r0, =task00_08081A90
- movs r1, 0x1
- bl CreateTask
- b _080B3B96
- .pool
-_080B3B54:
- ldrh r0, [r5, 0x2]
- adds r0, 0x1
- strh r0, [r5, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- ble _080B3BB8
- movs r0, 0
- strh r0, [r5, 0x2]
- b _080B3B96
-_080B3B68:
- bl GetLinkPlayerCount_2
- adds r4, r0, 0
- bl sub_800AA48
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bcc _080B3BB8
- bl IsLinkMaster
- lsls r0, 24
- cmp r0, 0
- beq _080B3B96
- ldrh r0, [r5, 0x2]
- adds r0, 0x1
- strh r0, [r5, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080B3BB8
- bl sub_800A620
-_080B3B96:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _080B3BB8
-_080B3B9E:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080B3BB8
- bl IsLinkPlayerDataExchangeComplete
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B3BB8
- adds r0, r4, 0
- bl DestroyTask
-_080B3BB8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3AF8
-
- thumb_func_start sub_80B3BC4
-sub_80B3BC4: @ 80B3BC4
- push {lr}
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B3BD6
- ldr r1, =gLinkType
- ldr r2, =0x00002288
- adds r0, r2, 0
- strh r0, [r1]
-_080B3BD6:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3BC4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
deleted file mode 100644
index c299d6633..000000000
--- a/asm/field_control_avatar.s
+++ /dev/null
@@ -1,2512 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start FieldClearPlayerInput
-FieldClearPlayerInput: @ 809BEDC
- push {r4,r5,lr}
- movs r1, 0x2
- negs r1, r1
- movs r3, 0x3
- negs r3, r3
- movs r4, 0x5
- negs r4, r4
- movs r5, 0x9
- negs r5, r5
- movs r2, 0
- strb r2, [r0]
- ldrb r2, [r0, 0x1]
- ands r1, r2
- ands r1, r3
- ands r1, r4
- ands r1, r5
- strb r1, [r0, 0x1]
- movs r1, 0
- strb r1, [r0, 0x2]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldClearPlayerInput
-
- thumb_func_start FieldGetPlayerInput
-@ void FieldGetPlayerInput(overworld_input_data *input_data, char buttons_new, char buttons_held)
-FieldGetPlayerInput: @ 809BF08
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r0, =gPlayerAvatar
- ldrb r6, [r0, 0x3]
- ldrb r0, [r0, 0x2]
- mov r9, r0
- bl cur_mapdata_block_role_at_player_pos
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsForcedMovementTile
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r6, 0x2
- bne _0809BF3C
- cmp r7, 0
- beq _0809BF40
-_0809BF3C:
- cmp r6, 0
- bne _0809BFA2
-_0809BF40:
- bl GetPlayerSpeed
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _0809BF8C
- movs r0, 0x8
- ands r0, r5
- cmp r0, 0
- beq _0809BF5C
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
-_0809BF5C:
- movs r0, 0x4
- ands r0, r5
- cmp r0, 0
- beq _0809BF6C
- ldrb r0, [r4]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4]
-_0809BF6C:
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _0809BF7C
- ldrb r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
-_0809BF7C:
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _0809BF8C
- ldrb r0, [r4]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4]
-_0809BF8C:
- movs r0, 0xF0
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _0809BFA2
- ldrb r0, [r4]
- movs r1, 0x10
- orrs r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4]
-_0809BFA2:
- cmp r7, 0
- bne _0809BFC8
- cmp r6, 0x2
- bne _0809BFB8
- mov r0, r9
- cmp r0, 0x2
- bne _0809BFB8
- ldrb r0, [r4]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4]
-_0809BFB8:
- cmp r7, 0
- bne _0809BFC8
- cmp r6, 0x2
- bne _0809BFC8
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
-_0809BFC8:
- movs r0, 0x40
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _0809BFDC
- movs r0, 0x2
- b _0809C004
- .pool
-_0809BFDC:
- movs r0, 0x80
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _0809BFEA
- movs r0, 0x1
- b _0809C004
-_0809BFEA:
- movs r0, 0x20
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _0809BFF8
- movs r0, 0x3
- b _0809C004
-_0809BFF8:
- movs r0, 0x10
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _0809C006
- movs r0, 0x4
-_0809C004:
- strb r0, [r4, 0x2]
-_0809C006:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end FieldGetPlayerInput
-
- thumb_func_start sub_809C014
-@ int sub_809C014(overworld_input_data *input_data)
-sub_809C014: @ 809C014
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r0, =gSpecialVar_LastTalked
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gSelectedEventObject
- strb r1, [r0]
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r6, r0, 24
- mov r4, sp
- mov r0, sp
- bl player_get_pos_to_and_height
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r4, r0, 16
- bl CheckForTrainersWantingBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C14E
- bl mapheader_run_first_tag2_script_list_match
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C14E
- ldrb r1, [r5]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809C070
- bl sub_809C89C
- cmp r0, 0x1
- beq _0809C14E
-_0809C070:
- ldrb r1, [r5]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809C096
- movs r0, 0x5
- bl IncrementGameStat
- bl increment_var_x4026_on_birth_island_modulo_100
- mov r0, sp
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_809C8DC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C14E
-_0809C096:
- ldrb r1, [r5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809C0AE
- adds r0, r4, 0
- bl is_it_battle_time_3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C14E
-_0809C0AE:
- ldrb r1, [r5]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0809C0D0
- ldrb r0, [r5, 0x2]
- cmp r0, r6
- bne _0809C0D0
- mov r0, sp
- adds r1, r4, 0
- adds r2, r6, 0
- bl mapheader_run_first_tag2_script_list_match_conditionally
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C14E
-_0809C0D0:
- mov r4, sp
- mov r0, sp
- bl player_get_next_pos_and_height
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C106
- mov r0, sp
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_809C1FC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C14E
-_0809C106:
- ldrb r1, [r5]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0809C128
- ldrb r0, [r5, 0x2]
- cmp r0, r6
- bne _0809C128
- mov r0, sp
- adds r1, r4, 0
- adds r2, r6, 0
- bl map_warp_consider_2_to_inside
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C14E
-_0809C128:
- ldrb r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C13A
- bl sub_809C868
- cmp r0, 0x1
- beq _0809C14E
-_0809C13A:
- ldrb r1, [r5]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809C15C
- movs r0, 0x6
- bl PlaySE
- bl ShowStartMenu
-_0809C14E:
- movs r0, 0x1
- b _0809C172
- .pool
-_0809C15C:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0809C170
- bl UseRegisteredKeyItemOnField
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C14E
-_0809C170:
- movs r0, 0
-_0809C172:
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809C014
-
- thumb_func_start player_get_pos_to_and_height
-player_get_pos_to_and_height: @ 809C17C
- push {r4,lr}
- adds r4, r0, 0
- adds r1, r4, 0x2
- bl PlayerGetDestCoords
- bl PlayerGetZCoord
- strb r0, [r4, 0x4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end player_get_pos_to_and_height
-
- thumb_func_start player_get_next_pos_and_height
-player_get_next_pos_and_height: @ 809C194
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r1, r5, 0x2
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0809C1C6
- bl PlayerGetZCoord
-_0809C1C6:
- strb r0, [r5, 0x4]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end player_get_next_pos_and_height
-
- thumb_func_start cur_mapdata_block_role_at_player_pos
-cur_mapdata_block_role_at_player_pos: @ 809C1D0
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end cur_mapdata_block_role_at_player_pos
-
- thumb_func_start sub_809C1FC
-sub_809C1FC: @ 809C1FC
- push {r4,lr}
- lsls r2, 24
- lsrs r2, 24
- lsls r1, 24
- lsrs r1, 24
- bl TryGetScriptOnPressingA
- adds r4, r0, 0
- cmp r4, 0
- bne _0809C214
- movs r0, 0
- b _0809C24C
-_0809C214:
- ldr r0, =gUnknown_081F860D
- cmp r4, r0
- beq _0809C244
- ldr r0, =gUnknown_081F9553
- cmp r4, r0
- beq _0809C244
- ldr r0, =gUnknown_0823B4BB
- cmp r4, r0
- beq _0809C244
- ldr r0, =gUnknown_0823B589
- cmp r4, r0
- beq _0809C244
- ldr r0, =EventScript_2766A2
- cmp r4, r0
- beq _0809C244
- ldr r0, =EventScript_2766A6
- cmp r4, r0
- beq _0809C244
- ldr r0, =EventScript_271D92
- cmp r4, r0
- beq _0809C244
- movs r0, 0x5
- bl PlaySE
-_0809C244:
- adds r0, r4, 0
- bl ScriptContext1_SetupScript
- movs r0, 0x1
-_0809C24C:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809C1FC
-
- thumb_func_start TryGetScriptOnPressingA
-TryGetScriptOnPressingA: @ 809C270
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- mov r8, r5
- lsls r2, 24
- lsrs r4, r2, 24
- adds r7, r4, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl TryGetEventObjectScript
- cmp r0, 0
- bne _0809C2BC
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl TryGetInvisibleEventObjectScript
- cmp r0, 0
- bne _0809C2BC
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl TryGetMetatileBehaviorScript
- cmp r0, 0
- bne _0809C2BC
- adds r0, r6, 0
- mov r1, r8
- adds r2, r7, 0
- bl TryGetFieldMoveScript
- cmp r0, 0
- bne _0809C2BC
- movs r0, 0
-_0809C2BC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end TryGetScriptOnPressingA
-
- thumb_func_start sub_809C2C8
-sub_809C2C8: @ 809C2C8
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r2, 24
- lsrs r6, r2, 24
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsCounter
- lsls r0, 24
- cmp r0, 0
- bne _0809C2F0
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- b _0809C30E
-_0809C2F0:
- ldr r1, =gDirectionToVectors
- lsls r2, r6, 3
- adds r0, r2, r1
- ldr r3, [r0]
- ldrh r0, [r4]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- adds r1, 0x4
- adds r2, r1
- ldr r2, [r2]
- ldrh r1, [r4, 0x2]
- adds r1, r2
- lsls r1, 16
- lsrs r1, 16
-_0809C30E:
- ldrb r2, [r4, 0x4]
- bl GetEventObjectIdByXYZ
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x10
- beq _0809C32E
- ldr r1, =gEventObjects
- lsls r2, r3, 3
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- adds r5, r1, 0
- cmp r0, 0xFF
- bne _0809C33C
-_0809C32E:
- movs r0, 0
- b _0809C36E
- .pool
-_0809C33C:
- movs r4, 0
- ldr r1, =gLinkPlayerEventObjects
-_0809C340:
- ldrb r0, [r1]
- cmp r0, 0x1
- bne _0809C34C
- ldrb r0, [r1, 0x2]
- cmp r0, r3
- beq _0809C32E
-_0809C34C:
- adds r1, 0x4
- adds r4, 0x1
- cmp r4, 0x3
- ble _0809C340
- ldr r0, =gSelectedEventObject
- strb r3, [r0]
- ldr r1, =gSpecialVar_LastTalked
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x8]
- strh r0, [r1]
- ldr r0, =gSpecialVar_Facing
- strh r6, [r0]
- adds r0, r3, 0
- bl GetEventObjectScriptPointerByEventObjectId
-_0809C36E:
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809C2C8
-
- thumb_func_start TryGetEventObjectScript
-TryGetEventObjectScript: @ 809C384
- push {r4-r7,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- ldrh r0, [r5]
- ldrh r1, [r5, 0x2]
- ldrb r2, [r5, 0x4]
- bl GetEventObjectIdByXYZ
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x10
- beq _0809C3B4
- ldr r1, =gEventObjects
- lsls r2, r4, 3
- adds r0, r2, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- adds r3, r1, 0
- cmp r0, 0xFF
- bne _0809C40C
-_0809C3B4:
- adds r0, r6, 0
- bl MetatileBehavior_IsCounter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C400
- ldr r1, =gDirectionToVectors
- lsls r2, r7, 3
- adds r0, r2, r1
- ldr r3, [r0]
- ldrh r0, [r5]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- adds r1, 0x4
- adds r2, r1
- ldr r2, [r2]
- ldrh r1, [r5, 0x2]
- adds r1, r2
- lsls r1, 16
- lsrs r1, 16
- ldrb r2, [r5, 0x4]
- bl GetEventObjectIdByXYZ
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x10
- beq _0809C400
- ldr r1, =gEventObjects
- lsls r2, r4, 3
- adds r0, r2, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- adds r3, r1, 0
- cmp r0, 0xFF
- bne _0809C40C
-_0809C400:
- movs r0, 0
- b _0809C44E
- .pool
-_0809C40C:
- ldr r0, =gSelectedEventObject
- strb r4, [r0]
- ldr r1, =gSpecialVar_LastTalked
- adds r0, r2, r4
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x8]
- strh r0, [r1]
- ldr r0, =gSpecialVar_Facing
- strh r7, [r0]
- bl InTrainerHill
- cmp r0, 0x1
- bne _0809C43C
- bl sub_81D62AC
- b _0809C442
- .pool
-_0809C43C:
- adds r0, r4, 0
- bl GetEventObjectScriptPointerByEventObjectId
-_0809C442:
- adds r1, r0, 0
- ldr r0, =gSpecialVar_LastTalked
- ldrb r0, [r0]
- bl GetRamScript
- adds r1, r0, 0
-_0809C44E:
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end TryGetEventObjectScript
-
- thumb_func_start TryGetInvisibleEventObjectScript
-@ signed int TryGetInvisibleEventObjectScript(int a1, int a2, u8 playerFacingDirection)
-TryGetInvisibleEventObjectScript: @ 809C458
- push {r4,r5,lr}
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r4, =gMapHeader
- ldrh r1, [r0]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r0, 0x2]
- subs r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r3, [r0, 0x4]
- adds r0, r4, 0
- bl FindInvisibleEventObjectByPosition
- cmp r0, 0
- beq _0809C4CC
- ldr r2, [r0, 0x8]
- cmp r2, 0
- bne _0809C490
- ldr r0, =EventScript_TestSignpostMsg
- b _0809C532
- .pool
-_0809C490:
- ldrb r0, [r0, 0x5]
- cmp r0, 0x8
- bhi _0809C530
- lsls r0, 2
- ldr r1, =_0809C4A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0809C4A4:
- .4byte _0809C530
- .4byte _0809C4C8
- .4byte _0809C4D0
- .4byte _0809C4D6
- .4byte _0809C4DC
- .4byte _0809C4E2
- .4byte _0809C4E2
- .4byte _0809C4E2
- .4byte _0809C510
-_0809C4C8:
- cmp r5, 0x2
- beq _0809C530
-_0809C4CC:
- movs r0, 0
- b _0809C532
-_0809C4D0:
- cmp r5, 0x1
- beq _0809C530
- b _0809C4CC
-_0809C4D6:
- cmp r5, 0x4
- beq _0809C530
- b _0809C4CC
-_0809C4DC:
- cmp r5, 0x3
- beq _0809C530
- b _0809C4CC
-_0809C4E2:
- ldr r1, =gSpecialVar_0x8004
- lsrs r0, r2, 16
- movs r3, 0xFA
- lsls r3, 1
- adds r0, r3
- strh r0, [r1]
- ldr r0, =gSpecialVar_0x8005
- strh r2, [r0]
- ldrh r0, [r1]
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C4CC
- ldr r0, =EventScript_271CB7
- b _0809C532
- .pool
-_0809C510:
- cmp r5, 0x2
- bne _0809C4CC
- ldr r0, =gSpecialVar_0x8004
- strh r2, [r0]
- bl sub_80E9680
- lsls r0, 24
- cmp r0, 0
- beq _0809C4CC
- ldr r0, =EventScript_2759F1
- b _0809C532
- .pool
-_0809C530:
- adds r0, r2, 0
-_0809C532:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end TryGetInvisibleEventObjectScript
-
- thumb_func_start TryGetMetatileBehaviorScript
-TryGetMetatileBehaviorScript: @ 809C538
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl MetatileBehavior_IsPlayerFacingTVScreen
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C55C
- ldr r0, =EventScript_27EE0B
- b _0809C7E4
- .pool
-_0809C55C:
- adds r0, r5, 0
- bl MetatileBehavior_IsPC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C574
- ldr r0, =EventScript_271D92
- b _0809C7E4
- .pool
-_0809C574:
- adds r0, r5, 0
- bl MetatileBehavior_IsClosedSootopolisGymDoor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C58C
- ldr r0, =SootopolisCity_EventScript_1E615D
- b _0809C7E4
- .pool
-_0809C58C:
- adds r0, r5, 0
- bl MetatileBehavior_IsUnknownClosedDoor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C5A4
- ldr r0, =SkyPillar_Outside_EventScript_2393F9
- b _0809C7E4
- .pool
-_0809C5A4:
- adds r0, r5, 0
- bl MetatileBehavior_IsCableBoxResults1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C5B4
- b _0809C6E4
-_0809C5B4:
- adds r0, r5, 0
- bl MetatileBehavior_IsPokeblockFeeder
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C5CC
- ldr r0, =EventScript_2A4BAC
- b _0809C7E4
- .pool
-_0809C5CC:
- adds r0, r5, 0
- bl MetatileBehavior_IsTrickHousePuzzleDoor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C5E4
- ldr r0, =Route110_TrickHouseEntrance_EventScript_26A22A
- b _0809C7E4
- .pool
-_0809C5E4:
- adds r0, r5, 0
- bl MetatileBehavior_IsRegionMap
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C5FC
- ldr r0, =EventScript_27208F
- b _0809C7E4
- .pool
-_0809C5FC:
- adds r0, r5, 0
- bl MetatileBehavior_IsRunningShoesInstruction
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C614
- ldr r0, =EventScript_292DE5
- b _0809C7E4
- .pool
-_0809C614:
- adds r0, r5, 0
- bl MetatileBehavior_IsPictureBookShelf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C62C
- ldr r0, =EventScript_2725CE
- b _0809C7E4
- .pool
-_0809C62C:
- adds r0, r5, 0
- bl MetatileBehavior_IsBookShelf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C644
- ldr r0, =EventScript_2725D7
- b _0809C7E4
- .pool
-_0809C644:
- adds r0, r5, 0
- bl MetatileBehavior_IsPokeCenterBookShelf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C65C
- ldr r0, =EventScript_2725E0
- b _0809C7E4
- .pool
-_0809C65C:
- adds r0, r5, 0
- bl MetatileBehavior_IsVase
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C674
- ldr r0, =EventScript_2725E9
- b _0809C7E4
- .pool
-_0809C674:
- adds r0, r5, 0
- bl MetatileBehavior_IsTrashCan
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C68C
- ldr r0, =EventScript_2725F2
- b _0809C7E4
- .pool
-_0809C68C:
- adds r0, r5, 0
- bl MetatileBehavior_IsShopShelf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C6A4
- ldr r0, =EventScript_2725FB
- b _0809C7E4
- .pool
-_0809C6A4:
- adds r0, r5, 0
- bl MetatileBehavior_IsBlueprint
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C6BC
- ldr r0, =EventScript_272604
- b _0809C7E4
- .pool
-_0809C6BC:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MetatileBehavior_IsPlayerFacingWirelessBoxResults
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C6D4
- ldr r0, =OldaleTown_PokemonCenter_2F_EventScript_277B8A
- b _0809C7E4
- .pool
-_0809C6D4:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MetatileBehavior_IsCableBoxResults2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C6EC
-_0809C6E4:
- ldr r0, =gUnknown_08277365
- b _0809C7E4
- .pool
-_0809C6EC:
- adds r0, r5, 0
- bl MetatileBehavior_IsQuestionnaire
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C704
- ldr r0, =EventScript_27381B
- b _0809C7E4
- .pool
-_0809C704:
- adds r0, r5, 0
- bl MetatileBehavior_IsTrainerHillTimer
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C71C
- ldr r0, =TrainerHill_1F_EventScript_2C8393
- b _0809C7E4
- .pool
-_0809C71C:
- movs r4, 0x4
- ldrsb r4, [r6, r4]
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _0809C7D0
- adds r0, r5, 0
- bl MetatileBehavior_IsSecretBasePC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C74C
- ldr r0, =gUnknown_0823B4BB
- b _0809C7E4
- .pool
-_0809C74C:
- adds r0, r5, 0
- bl MetatileBehavior_IsSecretBaseRegisterPC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C764
- ldr r0, =gUnknown_0823B589
- b _0809C7E4
- .pool
-_0809C764:
- adds r0, r5, 0
- bl MetatileBehavior_IsSecretBaseSandOrnament
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C77C
- ldr r0, =gUnknown_0823B684
- b _0809C7E4
- .pool
-_0809C77C:
- adds r0, r5, 0
- bl MetatileBehavior_IsSecretBaseTvOrShield
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C794
- ldr r0, =gUnknown_0823B68C
- b _0809C7E4
- .pool
-_0809C794:
- adds r0, r5, 0
- bl MetatileBehavior_IsMB_C6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C7A8
- bl sub_80EB56C
- b _0809C7E2
-_0809C7A8:
- adds r0, r5, 0
- bl MetatileBehavior_IsLargeMatCenter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C7BC
- bl sub_80EB9E0
- b _0809C7E2
-_0809C7BC:
- adds r0, r5, 0
- bl MetatileBehavior_IsSecretBaseLargeMatEdge
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C7E2
- bl sub_80EBB28
- b _0809C7E2
-_0809C7D0:
- adds r0, r5, 0
- bl MetatileBehavior_IsSecretBasePoster
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C7E2
- bl sub_80EB498
-_0809C7E2:
- movs r0, 0
-_0809C7E4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end TryGetMetatileBehaviorScript
-
- thumb_func_start TryGetFieldMoveScript
-TryGetFieldMoveScript: @ 809C7EC
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, =0x0000086b
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C824
- bl PartyHasMonWithSurf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C824
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C824
- ldr r0, =EventScript_271EA0
- b _0809C862
- .pool
-_0809C824:
- adds r0, r4, 0
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C860
- ldr r0, =0x0000086e
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C858
- bl IsPlayerSurfingNorth
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C858
- ldr r0, =EventScript_290A49
- b _0809C862
- .pool
-_0809C858:
- ldr r0, =EventScript_290A83
- b _0809C862
- .pool
-_0809C860:
- movs r0, 0
-_0809C862:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end TryGetFieldMoveScript
-
- thumb_func_start sub_809C868
-sub_809C868: @ 809C868
- push {lr}
- ldr r0, =0x0000086d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0809C894
- bl sub_809D1E8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809C894
- ldr r0, =EventScript_290B0F
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _0809C896
- .pool
-_0809C894:
- movs r0, 0
-_0809C896:
- pop {r1}
- bx r1
- thumb_func_end sub_809C868
-
- thumb_func_start sub_809C89C
-sub_809C89C: @ 809C89C
- push {lr}
- ldr r0, =0x0000086d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0809C8D4
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x5
- bne _0809C8D4
- bl sub_809D1E8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C8D4
- ldr r0, =EventScript_290B5A
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _0809C8D6
- .pool
-_0809C8D4:
- movs r0, 0
-_0809C8D6:
- pop {r1}
- bx r1
- thumb_func_end sub_809C89C
-
- thumb_func_start sub_809C8DC
-sub_809C8DC: @ 809C8DC
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r6, r4, 0
- bl mapheader_trigger_activate_at__run_now
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C92E
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809CC9C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C92E
- adds r0, r4, 0
- bl sub_809C96C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C92E
- adds r0, r6, 0
- bl per_step_scripts
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C92E
- bl UpdateRepelCounter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C92E
- movs r0, 0
- b _0809C930
-_0809C92E:
- movs r0, 0x1
-_0809C930:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809C8DC
-
- thumb_func_start mapheader_trigger_activate_at__run_now
-mapheader_trigger_activate_at__run_now: @ 809C938
- push {r4,lr}
- ldr r4, =gMapHeader
- ldrh r1, [r0]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r0, 0x2]
- subs r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r3, [r0, 0x4]
- adds r0, r4, 0
- bl mapheader_trigger_activate_at
- cmp r0, 0
- beq _0809C964
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _0809C966
- .pool
-_0809C964:
- movs r0, 0
-_0809C966:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end mapheader_trigger_activate_at__run_now
-
- thumb_func_start sub_809C96C
-sub_809C96C: @ 809C96C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsCrackedFloorHole
- lsls r0, 24
- cmp r0, 0
- beq _0809C988
- ldr r0, =gUnknown_082A8337
- b _0809C996
- .pool
-_0809C988:
- adds r0, r4, 0
- bl MetatileBehavior_IsBattlePyramidWarp
- lsls r0, 24
- cmp r0, 0
- beq _0809C9A4
- ldr r0, =BattleFrontier_BattlePyramidEmptySquare_EventScript_252BE8
-_0809C996:
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _0809C9EA
- .pool
-_0809C9A4:
- adds r0, r4, 0
- bl MetatileBehavior_IsSecretBaseGlitterMat
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C9B8
- bl sub_80FA9D0
- b _0809C9E8
-_0809C9B8:
- adds r0, r4, 0
- bl MetatileBehavior_IsSecretBaseSoundMat
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C9E8
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- asrs r0, 16
- bl sub_80FA970
-_0809C9E8:
- movs r0, 0
-_0809C9EA:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809C96C
-
- thumb_func_start per_step_scripts
-per_step_scripts: @ 809C9F4
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl InUnionRoom
- cmp r0, 0x1
- bne _0809CA04
- b _0809CB24
-_0809CA04:
- bl IncrementRematchStepCounter
- bl AdjustFriendship_step
- bl sub_81D4998
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0809CAF8
- lsls r0, r4, 24
- lsrs r0, 24
- bl MetatileBehavior_IsForcedMovementTile
- lsls r0, 24
- cmp r0, 0
- bne _0809CAF8
- bl overworld_poison_step
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CA48
- ldr r0, =EventScript_2736BC
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CA48:
- bl DoEggActions_CheckHatch
- lsls r0, 24
- cmp r0, 0
- beq _0809CA64
- movs r0, 0xD
- bl IncrementGameStat
- ldr r0, =Route117_PokemonDayCare_EventScript_291FC0
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CA64:
- bl sub_813B3B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CA7C
- ldr r0, =gUnknown_08273D1F
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CA7C:
- bl ShouldDoBrailleRegicePuzzle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CA94
- ldr r0, =IslandCave_EventScript_238EAF
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CA94:
- bl is_tile_that_overrides_player_control
- cmp r0, 0x1
- bne _0809CAA8
- ldr r0, =MauvilleCity_EventScript_1DF7BA
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CAA8:
- bl sub_8138120
- cmp r0, 0x1
- bne _0809CABC
- ldr r0, =Route119_EventScript_1F49EC
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CABC:
- bl sub_8138168
- cmp r0, 0x1
- bne _0809CAD0
- ldr r0, =LittlerootTown_ProfessorBirchsLab_EventScript_1FA4D6
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CAD0:
- bl sub_81381B0
- cmp r0, 0x1
- bne _0809CAE4
- ldr r0, =RustboroCity_Gym_EventScript_21307B
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CAE4:
- bl sub_81381F8
- cmp r0, 0x1
- bne _0809CAF8
- ldr r0, =MossdeepCity_SpaceCenter_2F_EventScript_224175
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CAF8:
- bl SafariZoneTakeStep
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CB28
- movs r0, 0x1
- bl CountSSTidalStep
- cmp r0, 0x1
- bne _0809CB1C
- ldr r0, =SSTidalCorridor_EventScript_23C050
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CB1C:
- bl sub_8196034
- cmp r0, 0
- bne _0809CB28
-_0809CB24:
- movs r0, 0
- b _0809CB2A
-_0809CB28:
- movs r0, 0x1
-_0809CB2A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end per_step_scripts
-
- thumb_func_start sub_809CB30
-sub_809CB30: @ 809CB30
- push {lr}
- ldr r0, =0x0000402a
- movs r1, 0
- bl VarSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809CB30
-
- thumb_func_start AdjustFriendship_step
-AdjustFriendship_step: @ 809CB44
- push {r4,r5,lr}
- ldr r0, =0x0000402a
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- ldrh r1, [r0]
- movs r2, 0x7F
- ands r1, r2
- strh r1, [r0]
- cmp r1, 0
- bne _0809CB72
- ldr r5, =gPlayerParty
- movs r4, 0x5
-_0809CB62:
- adds r0, r5, 0
- movs r1, 0x5
- bl AdjustFriendship
- adds r5, 0x64
- subs r4, 0x1
- cmp r4, 0
- bge _0809CB62
-_0809CB72:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AdjustFriendship_step
-
- thumb_func_start ResetPoisonStepCounter
-ResetPoisonStepCounter: @ 809CB80
- push {lr}
- ldr r0, =0x0000402b
- movs r1, 0
- bl VarSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end ResetPoisonStepCounter
-
- thumb_func_start overworld_poison_step
-overworld_poison_step: @ 809CB94
- push {lr}
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x9
- beq _0809CBD4
- ldr r0, =0x0000402b
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- ldrh r1, [r0]
- movs r2, 0x3
- ands r1, r2
- strh r1, [r0]
- cmp r1, 0
- bne _0809CBD4
- bl overworld_poison
- cmp r0, 0x1
- beq _0809CBD4
- cmp r0, 0x1
- ble _0809CBD4
- cmp r0, 0x2
- bne _0809CBD4
- movs r0, 0x1
- b _0809CBD6
- .pool
-_0809CBD4:
- movs r0, 0
-_0809CBD6:
- pop {r1}
- bx r1
- thumb_func_end overworld_poison_step
-
- thumb_func_start prev_quest_postbuffer_cursor_backup_reset
-prev_quest_postbuffer_cursor_backup_reset: @ 809CBDC
- ldr r1, =gUnknown_020375D4
- movs r0, 0
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end prev_quest_postbuffer_cursor_backup_reset
-
- thumb_func_start is_it_battle_time_3
-is_it_battle_time_3: @ 809CBE8
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, r4, 0
- ldr r6, =gUnknown_020375D4
- ldrb r0, [r6]
- cmp r0, 0x3
- bhi _0809CC0C
- adds r0, 0x1
- strb r0, [r6]
- ldr r0, =gUnknown_020375D6
- strh r4, [r0]
- movs r0, 0
- b _0809CC30
- .pool
-_0809CC0C:
- ldr r5, =gUnknown_020375D6
- ldrh r1, [r5]
- adds r0, r4, 0
- bl StandardWildEncounter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CC28
- strh r4, [r5]
- movs r0, 0
- b _0809CC30
- .pool
-_0809CC28:
- movs r0, 0
- strb r0, [r6]
- strh r7, [r5]
- movs r0, 0x1
-_0809CC30:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end is_it_battle_time_3
-
- thumb_func_start mapheader_run_first_tag2_script_list_match_conditionally
-mapheader_run_first_tag2_script_list_match_conditionally: @ 809CC38
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gMapHeader
- mov r8, r0
- adds r1, r7, 0
- bl map_warp_check_packed
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl is_non_stair_warp_tile
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CC90
- lsls r0, r6, 24
- asrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _0809CC90
- bl StoreInitialPlayerAvatarState
- mov r0, r8
- adds r1, r4, 0
- adds r2, r7, 0
- bl sub_809CEB0
- bl sub_80AF734
- movs r0, 0x1
- b _0809CC92
- .pool
-_0809CC90:
- movs r0, 0
-_0809CC92:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end mapheader_run_first_tag2_script_list_match_conditionally
-
- thumb_func_start sub_809CC9C
-sub_809CC9C: @ 809CC9C
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r7, =gMapHeader
- adds r0, r7, 0
- adds r1, r6, 0
- bl map_warp_check_packed
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _0809CD8A
- adds r0, r5, 0
- bl is_warp_tile
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CD8A
- bl StoreInitialPlayerAvatarState
- adds r0, r7, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_809CEB0
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsEscalator
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CCF8
- adds r0, r4, 0
- bl sub_80AF80C
- movs r0, 0x1
- b _0809CD8C
- .pool
-_0809CCF8:
- adds r0, r4, 0
- bl MetatileBehavior_IsLavaridgeB1FWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CD0E
- bl sub_80AF828
- movs r0, 0x1
- b _0809CD8C
-_0809CD0E:
- adds r0, r4, 0
- bl MetatileBehavior_IsLavaridge1FWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CD24
- bl sub_80AF838
- movs r0, 0x1
- b _0809CD8C
-_0809CD24:
- adds r0, r4, 0
- bl MetatileBehavior_IsAquaHideoutWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CD3A
- bl sub_80AF848
- movs r0, 0x1
- b _0809CD8C
-_0809CD3A:
- adds r0, r4, 0
- bl MetatileBehavior_IsWarpOrBridge
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CD50
- bl sub_80B0268
- movs r0, 0x1
- b _0809CD8C
-_0809CD50:
- adds r0, r4, 0
- bl MetatileBehavior_IsMtPyreHole
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CD6C
- ldr r0, =gUnknown_082A8350
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _0809CD8C
- .pool
-_0809CD6C:
- adds r0, r4, 0
- bl MetatileBehavior_IsMossdeepGymWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CD82
- bl sub_80AF87C
- movs r0, 0x1
- b _0809CD8C
-_0809CD82:
- bl sub_80AF734
- movs r0, 0x1
- b _0809CD8C
-_0809CD8A:
- movs r0, 0
-_0809CD8C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809CC9C
-
- thumb_func_start is_warp_tile
-is_warp_tile: @ 809CD94
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsWarpDoor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsLadder
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsEscalator
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsNonAnimDoor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsLavaridgeB1FWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsLavaridge1FWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsAquaHideoutWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsMtPyreHole
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsMossdeepGymWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsWarpOrBridge
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- movs r0, 0
- b _0809CE2C
-_0809CE2A:
- movs r0, 0x1
-_0809CE2C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end is_warp_tile
-
- thumb_func_start is_non_stair_warp_tile
-is_non_stair_warp_tile: @ 809CE34
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x2
- beq _0809CE58
- cmp r1, 0x2
- bgt _0809CE4E
- cmp r1, 0x1
- beq _0809CE62
- b _0809CE84
-_0809CE4E:
- cmp r2, 0x3
- beq _0809CE6C
- cmp r2, 0x4
- beq _0809CE76
- b _0809CE84
-_0809CE58:
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsNorthArrowWarp
- b _0809CE7E
-_0809CE62:
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsSouthArrowWarp
- b _0809CE7E
-_0809CE6C:
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsWestArrowWarp
- b _0809CE7E
-_0809CE76:
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsEastArrowWarp
-_0809CE7E:
- lsls r0, 24
- lsrs r0, 24
- b _0809CE86
-_0809CE84:
- movs r0, 0
-_0809CE86:
- pop {r1}
- bx r1
- thumb_func_end is_non_stair_warp_tile
-
- thumb_func_start map_warp_check_packed
-map_warp_check_packed: @ 809CE8C
- push {lr}
- adds r3, r1, 0
- ldrh r1, [r3]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r3, 0x2]
- subs r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r3, [r3, 0x4]
- bl map_warp_check
- lsls r0, 24
- asrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end map_warp_check_packed
-
- thumb_func_start sub_809CEB0
-sub_809CEB0: @ 809CEB0
- push {r4-r7,lr}
- adds r7, r2, 0
- lsls r1, 24
- lsrs r4, r1, 24
- bl GetCurrentTrainerHillMapId
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- cmp r5, 0
- beq _0809CF00
- bl sub_81D6490
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bne _0809CEF0
- lsls r0, r4, 24
- adds r4, r0, 0
- cmp r4, 0
- bne _0809CEE8
- ldr r0, =gMapHeader
- ldr r0, [r0, 0x4]
- ldr r5, [r0, 0x8]
- b _0809CF0E
- .pool
-_0809CEE8:
- bl sub_81D6120
- adds r5, r0, 0
- b _0809CF0E
-_0809CEF0:
- cmp r6, 0x5
- bne _0809CF00
- lsls r4, 24
- lsrs r0, r4, 24
- bl sub_81D6134
- adds r5, r0, 0
- b _0809CF0E
-_0809CF00:
- ldr r0, =gMapHeader
- ldr r0, [r0, 0x4]
- lsls r2, r4, 24
- asrs r1, r2, 21
- ldr r0, [r0, 0x8]
- adds r5, r0, r1
- adds r4, r2, 0
-_0809CF0E:
- ldrb r0, [r5, 0x6]
- cmp r0, 0x7F
- bne _0809CF20
- ldrb r0, [r5, 0x5]
- bl copy_saved_warp2_bank_and_enter_x_to_warp1
- b _0809CF6E
- .pool
-_0809CF20:
- movs r0, 0x7
- ldrsb r0, [r5, r0]
- movs r1, 0x6
- ldrsb r1, [r5, r1]
- movs r2, 0x5
- ldrsb r2, [r5, r2]
- bl warp1_set_2
- movs r1, 0
- ldrsh r0, [r7, r1]
- movs r2, 0x2
- ldrsh r1, [r7, r2]
- bl sub_8084D5C
- ldrb r0, [r5, 0x7]
- ldrb r1, [r5, 0x6]
- bl Overworld_GetMapHeaderByGroupAndId
- ldr r1, [r0, 0x4]
- ldrb r0, [r5, 0x5]
- ldr r1, [r1, 0x8]
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x6]
- cmp r0, 0x7F
- bne _0809CF6E
- asrs r3, r4, 24
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0, 0x5]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- ldrb r2, [r2, 0x5]
- lsls r2, 24
- asrs r2, 24
- bl saved_warp2_set
-_0809CF6E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809CEB0
-
- thumb_func_start map_warp_consider_2_to_inside
-map_warp_consider_2_to_inside: @ 809CF78
- push {r4-r7,lr}
- adds r5, r0, 0
- lsls r1, 16
- lsrs r0, r1, 16
- adds r7, r0, 0
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0x2
- bne _0809CFFC
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsOpenSecretBaseDoor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CFB0
- ldr r0, =gMapHeader
- ldr r1, [r0, 0x4]
- adds r0, r5, 0
- bl sub_80E9668
- movs r0, 0x1
- b _0809CFFE
- .pool
-_0809CFB0:
- adds r0, r4, 0
- bl MetatileBehavior_IsWarpDoor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CFFC
- ldr r6, =gMapHeader
- adds r0, r6, 0
- adds r1, r5, 0
- bl map_warp_check_packed
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _0809CFFC
- adds r0, r7, 0
- bl is_warp_tile
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CFFC
- bl StoreInitialPlayerAvatarState
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_809CEB0
- bl sub_80AF7D0
- movs r0, 0x1
- b _0809CFFE
- .pool
-_0809CFFC:
- movs r0, 0
-_0809CFFE:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end map_warp_consider_2_to_inside
-
- thumb_func_start map_warp_check
-map_warp_check: @ 809D004
- push {r4-r6,lr}
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- lsls r3, 24
- lsrs r4, r3, 24
- ldr r0, [r0, 0x4]
- ldr r1, [r0, 0x8]
- ldrb r3, [r0, 0x1]
- movs r2, 0
- cmp r2, r3
- bge _0809D042
-_0809D01E:
- ldrh r0, [r1]
- cmp r0, r6
- bne _0809D03A
- ldrh r0, [r1, 0x2]
- cmp r0, r5
- bne _0809D03A
- ldrb r0, [r1, 0x4]
- cmp r0, r4
- beq _0809D034
- cmp r0, 0
- bne _0809D03A
-_0809D034:
- lsls r0, r2, 24
- asrs r0, 24
- b _0809D046
-_0809D03A:
- adds r2, 0x1
- adds r1, 0x8
- cmp r2, r3
- blt _0809D01E
-_0809D042:
- movs r0, 0x1
- negs r0, r0
-_0809D046:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end map_warp_check
-
- thumb_func_start trigger_activate
-trigger_activate: @ 809D04C
- push {r4,lr}
- adds r4, r0, 0
- cmp r4, 0
- beq _0809D082
- ldr r1, [r4, 0xC]
- cmp r1, 0
- bne _0809D062
- ldrb r0, [r4, 0x6]
- bl DoCoordEventWeather
- b _0809D082
-_0809D062:
- ldrh r0, [r4, 0x6]
- cmp r0, 0
- beq _0809D07C
- ldrh r0, [r4, 0x6]
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r4, 0x8]
- cmp r0, r1
- bne _0809D082
- ldr r0, [r4, 0xC]
- b _0809D084
-_0809D07C:
- adds r0, r1, 0
- bl ScriptContext2_RunNewScript
-_0809D082:
- movs r0, 0
-_0809D084:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end trigger_activate
-
- thumb_func_start mapheader_trigger_activate_at
-mapheader_trigger_activate_at: @ 809D08C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- ldr r0, [r0, 0x4]
- ldr r1, [r0, 0xC]
- ldrb r7, [r0, 0x2]
- movs r6, 0
- cmp r6, r7
- bge _0809D0E2
- adds r5, r1, 0
- adds r4, r5, 0
-_0809D0B8:
- ldrh r0, [r4]
- cmp r0, r10
- bne _0809D0D8
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- bne _0809D0D8
- ldrb r0, [r4, 0x4]
- cmp r0, r8
- beq _0809D0CE
- cmp r0, 0
- bne _0809D0D8
-_0809D0CE:
- adds r0, r5, 0
- bl trigger_activate
- cmp r0, 0
- bne _0809D0E4
-_0809D0D8:
- adds r4, 0x10
- adds r5, 0x10
- adds r6, 0x1
- cmp r6, r7
- blt _0809D0B8
-_0809D0E2:
- movs r0, 0
-_0809D0E4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end mapheader_trigger_activate_at
-
- thumb_func_start sub_809D0F4
-sub_809D0F4: @ 809D0F4
- push {r4,lr}
- ldr r4, =gMapHeader
- ldrh r1, [r0]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r0, 0x2]
- subs r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r3, [r0, 0x4]
- adds r0, r4, 0
- bl mapheader_trigger_activate_at
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809D0F4
-
- thumb_func_start FindInvisibleEventObjectByPosition
-@ int FindInvisibleEventObjectByPosition(struct mapheader *mapHeader, u16 x, u16 y, u8 elevation)
-FindInvisibleEventObjectByPosition: @ 809D11C
- push {r4-r7,lr}
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r6, r2, 16
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r0, [r0, 0x4]
- ldr r4, [r0, 0x10]
- ldrb r3, [r0, 0x3]
- movs r2, 0
- cmp r2, r3
- bcs _0809D162
-_0809D136:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r4
- ldrh r0, [r1]
- cmp r0, r7
- bne _0809D158
- ldrh r0, [r1, 0x2]
- cmp r0, r6
- bne _0809D158
- ldrb r0, [r1, 0x4]
- cmp r0, r5
- beq _0809D154
- cmp r0, 0
- bne _0809D158
-_0809D154:
- adds r0, r1, 0
- b _0809D164
-_0809D158:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r3
- bcc _0809D136
-_0809D162:
- movs r0, 0
-_0809D164:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end FindInvisibleEventObjectByPosition
-
- thumb_func_start dive_warp
-dive_warp: @ 809D16C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x5
- bne _0809D1A4
- lsls r0, r5, 24
- lsrs r0, 24
- bl MetatileBehavior_IsUnableToEmerge
- lsls r0, 24
- cmp r0, 0
- bne _0809D1A4
- ldrh r0, [r4]
- subs r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4, 0x2]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- bl SetDiveWarpEmerge
- b _0809D1C8
- .pool
-_0809D1A4:
- lsls r0, r5, 24
- lsrs r0, 24
- bl MetatileBehavior_IsDiveable
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809D1E0
- ldrh r0, [r4]
- subs r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4, 0x2]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- bl SetDiveWarpDive
-_0809D1C8:
- lsls r0, 24
- cmp r0, 0
- beq _0809D1E0
- bl StoreInitialPlayerAvatarState
- bl sp13E_warp_to_last_warp
- movs r0, 0xE9
- bl PlaySE
- movs r0, 0x1
- b _0809D1E2
-_0809D1E0:
- movs r0, 0
-_0809D1E2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end dive_warp
-
- thumb_func_start sub_809D1E8
-sub_809D1E8: @ 809D1E8
- push {r4,r5,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x5
- bne _0809D244
- adds r0, r5, 0
- bl MetatileBehavior_IsUnableToEmerge
- lsls r0, 24
- cmp r0, 0
- bne _0809D244
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- bl SetDiveWarpEmerge
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809D274
- movs r0, 0x1
- b _0809D276
- .pool
-_0809D244:
- adds r0, r5, 0
- bl MetatileBehavior_IsDiveable
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809D274
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- bl SetDiveWarpDive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809D274
- movs r0, 0x2
- b _0809D276
-_0809D274:
- movs r0, 0
-_0809D276:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809D1E8
-
- thumb_func_start GetEventObjectScriptPointerForComparison
-@ u8 *GetEventObjectScriptPointerForComparison()
-GetEventObjectScriptPointerForComparison: @ 809D280
- push {r4,r5,lr}
- sub sp, 0x8
- bl GetPlayerMovementDirection
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r5, sp
- mov r0, sp
- bl player_get_next_pos_and_height
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- adds r2, r4, 0
- bl TryGetEventObjectScript
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetEventObjectScriptPointerForComparison
-
- thumb_func_start sub_809D2BC
-sub_809D2BC: @ 809D2BC
- push {r4,lr}
- sub sp, 0x8
- bl GetPlayerMovementDirection
- mov r4, sp
- mov r0, sp
- bl player_get_pos_to_and_height
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- ldr r4, =gMapHeader
- adds r0, r4, 0
- mov r1, sp
- bl map_warp_check_packed
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r4, 0
- mov r2, sp
- bl sub_809CEB0
- movs r0, 0
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809D2BC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
deleted file mode 100644
index 9a019f60c..000000000
--- a/asm/field_effect_helpers.s
+++ /dev/null
@@ -1,4603 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start SetUpReflection
-SetUpReflection: @ 8153ED4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r5, r2, 24
- lsrs r5, 24
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x22
- ldrsh r2, [r4, r0]
- adds r0, r4, 0
- movs r3, 0x98
- bl CreateCopySpriteAt
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, =gSprites
- adds r7, r1, r0
- ldr r0, =objc_reflection_maybe
- str r0, [r7, 0x1C]
- ldrb r1, [r7, 0x5]
- movs r0, 0xC
- orrs r1, r0
- strb r1, [r7, 0x5]
- ldr r2, =gReflectionEffectPaletteMap
- lsrs r0, r1, 4
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 4
- movs r2, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x5]
- movs r1, 0x3F
- adds r1, r7
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0x40
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- ldr r0, =gDummySpriteAnimTable
- str r0, [r7, 0x8]
- adds r0, r7, 0
- movs r1, 0
- bl StartSpriteAnim
- ldr r0, =gDummySpriteAffineAnimTable
- str r0, [r7, 0x10]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x8
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- adds r2, r7, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x2E]
- strh r0, [r7, 0x2E]
- ldrb r0, [r6, 0x8]
- strh r0, [r7, 0x30]
- strh r5, [r7, 0x3C]
- adds r0, r6, 0
- adds r1, r7, 0
- bl npc_pal_op
- cmp r5, 0
- bne _08153F7A
- ldrb r0, [r7, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strb r1, [r7, 0x1]
-_08153F7A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetUpReflection
-
- thumb_func_start sub_8153F98
-sub_8153F98: @ 8153F98
- push {lr}
- ldrb r0, [r0, 0x5]
- bl GetEventObjectGraphicsInfo
- ldrh r0, [r0, 0xA]
- subs r0, 0x2
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_8153F98
-
- thumb_func_start npc_pal_op
-@ void npc_pal_op(struct npc_state *npcState, struct obj *obj)
-npc_pal_op: @ 8153FAC
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, =gUnknown_085CDC38
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrb r0, [r5, 0x5]
- bl GetEventObjectGraphicsInfo
- ldrb r1, [r0, 0xC]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08154008
- ldrb r0, [r5, 0x1F]
- bl MetatileBehavior_GetBridgeSth
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08153FEE
- ldrb r0, [r5, 0x1E]
- bl MetatileBehavior_GetBridgeSth
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08154008
-_08153FEE:
- subs r0, 0x1
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r0, r5, 0
- bl npc_pal_op_A
- b _08154012
- .pool
-_08154008:
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r0, r5, 0
- bl npc_pal_op_B
-_08154012:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end npc_pal_op
-
- thumb_func_start npc_pal_op_B
-@ void npc_pal_op_B(void *a1, u8 slot)
-npc_pal_op_B: @ 815401C
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldrb r0, [r0, 0x5]
- bl GetEventObjectGraphicsInfo
- adds r2, r0, 0
- ldrh r1, [r2, 0x4]
- ldr r0, =0x000011ff
- cmp r1, r0
- beq _08154070
- ldrb r0, [r2, 0xC]
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0
- bne _0815404C
- ldrh r0, [r2, 0x2]
- adds r1, r4, 0
- bl LoadPlayerObjectReflectionPalette
- b _0815406A
- .pool
-_0815404C:
- cmp r1, 0xA
- bne _0815405A
- ldrh r0, [r2, 0x2]
- adds r1, r4, 0
- bl LoadSpecialObjectReflectionPalette
- b _0815406A
-_0815405A:
- adds r0, r4, 0
- bl GetObjectPaletteTag
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl PatchObjectPalette
-_0815406A:
- adds r0, r4, 0
- bl UpdateSpritePaletteWithWeather
-_08154070:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end npc_pal_op_B
-
- thumb_func_start npc_pal_op_A
-npc_pal_op_A: @ 8154078
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldrb r0, [r0, 0x5]
- bl GetEventObjectGraphicsInfo
- adds r2, r0, 0
- ldrh r1, [r2, 0x4]
- ldr r0, =0x000011ff
- cmp r1, r0
- beq _0815409C
- adds r0, r1, 0
- adds r1, r4, 0
- bl PatchObjectPalette
- adds r0, r4, 0
- bl UpdateSpritePaletteWithWeather
-_0815409C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end npc_pal_op_A
-
- thumb_func_start objc_reflection_maybe
-@ void objc_reflection_maybe(struct obj *object)
-objc_reflection_maybe: @ 81540A8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r7, r0, r1
- ldrb r1, [r7, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r5, r0, r1
- ldr r0, [r7]
- ldr r1, =0x00020001
- ands r0, r1
- cmp r0, r1
- bne _081540E0
- ldrb r1, [r7, 0x8]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _081540FC
-_081540E0:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- b _08154214
- .pool
-_081540FC:
- ldr r1, =gReflectionEffectPaletteMap
- ldrb r0, [r5, 0x5]
- lsrs r0, 4
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 4
- ldrb r2, [r4, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldrb r1, [r5, 0x1]
- lsrs r1, 6
- lsls r1, 6
- ldrb r2, [r4, 0x1]
- movs r3, 0x3F
- adds r0, r3, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r5, 0x3]
- lsrs r0, 6
- lsls r0, 6
- ldrb r2, [r4, 0x3]
- adds r1, r3, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x3]
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- movs r2, 0x10
- orrs r0, r2
- lsls r0, 1
- subs r2, 0x4F
- mov r9, r2
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x3]
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- ldrh r2, [r4, 0x4]
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, [r5, 0x18]
- str r0, [r4, 0x18]
- adds r0, r5, 0
- adds r0, 0x42
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 26
- adds r2, r4, 0
- adds r2, 0x42
- ands r3, r0
- ldrb r1, [r2]
- movs r0, 0x40
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- movs r0, 0x3E
- adds r0, r5
- mov r8, r0
- ldrb r0, [r0]
- adds r6, r4, 0
- adds r6, 0x3E
- movs r1, 0x4
- ands r1, r0
- ldrb r2, [r6]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- ldrh r0, [r5, 0x20]
- strh r0, [r4, 0x20]
- adds r0, r7, 0
- bl sub_8153F98
- ldrh r1, [r5, 0x22]
- adds r0, r1
- ldrh r1, [r4, 0x32]
- adds r1, r0
- strh r1, [r4, 0x22]
- adds r0, r5, 0
- adds r0, 0x28
- ldrb r1, [r0]
- adds r0, r4, 0
- adds r0, 0x28
- strb r1, [r0]
- adds r0, r5, 0
- adds r0, 0x29
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x29
- strb r0, [r1]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x2
- ands r0, r1
- ldrb r1, [r6]
- movs r2, 0x3
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r6]
- ldrb r0, [r7, 0x3]
- lsls r0, 28
- cmp r0, 0
- bge _081541EE
- movs r0, 0x4
- orrs r2, r0
- strb r2, [r6]
-_081541EE:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08154214
- ldrb r0, [r4, 0x3]
- mov r2, r9
- ands r2, r0
- strb r2, [r4, 0x3]
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08154214
- movs r1, 0x2
- adds r0, r2, 0
- orrs r0, r1
- strb r0, [r4, 0x3]
-_08154214:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end objc_reflection_maybe
-
- thumb_func_start sub_8154228
-sub_8154228: @ 8154228
- push {r4,lr}
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x20]
- movs r1, 0
- movs r2, 0
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r0, 0x40
- beq _08154266
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, =gSprites
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- orrs r0, r3
- strb r0, [r1]
-_08154266:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154228
-
- thumb_func_start objid_set_invisible
-objid_set_invisible: @ 8154278
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end objid_set_invisible
-
- thumb_func_start sub_8154298
-sub_8154298: @ 8154298
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 16
- lsrs r7, r2, 16
- lsls r3, 16
- lsrs r6, r3, 16
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, =gSprites
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _081542E2
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- lsls r0, r7, 16
- asrs r0, 16
- cmp r1, r0
- bne _081542E2
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- lsls r0, r6, 16
- asrs r0, 16
- cmp r1, r0
- beq _0815432E
-_081542E2:
- lsls r0, r7, 16
- asrs r0, 16
- lsls r1, r6, 16
- asrs r1, 16
- mov r4, sp
- adds r4, 0x2
- mov r2, sp
- adds r3, r4, 0
- bl sub_8093038
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, =gSprites
- adds r2, r0, r1
- mov r0, sp
- ldrh r0, [r0]
- adds r0, 0x8
- strh r0, [r2, 0x20]
- ldrh r0, [r4]
- adds r0, 0x8
- strh r0, [r2, 0x22]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- strh r7, [r2, 0x2E]
- strh r6, [r2, 0x30]
- mov r1, r8
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
-_0815432E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8154298
-
- thumb_func_start oei_shadow
-oei_shadow: @ 8154340
- push {r4,r5,lr}
- ldr r5, =gFieldEffectArguments
- ldrb r0, [r5]
- ldrb r1, [r5, 0x4]
- ldrb r2, [r5, 0x8]
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gEventObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x5]
- bl GetEventObjectGraphicsInfo
- adds r4, r0, 0
- ldr r2, =gFieldEffectObjectTemplatePointers
- ldr r1, =gUnknown_085CDC3E
- ldrb r0, [r4, 0xC]
- lsls r0, 26
- lsrs r0, 30
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- movs r3, 0x94
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _081543C4
- ldr r0, =gSprites
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldr r0, [r5]
- strh r0, [r2, 0x2E]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r5, 0x8]
- strh r0, [r2, 0x32]
- ldrh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 17
- ldr r3, =gUnknown_085CDC42
- ldrb r0, [r4, 0xC]
- lsls r0, 26
- lsrs r0, 30
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r2, 0x34]
-_081543C4:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end oei_shadow
-
- thumb_func_start oamc_shadow
-oamc_shadow: @ 81543E4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _08154412
- adds r0, r5, 0
- movs r1, 0x3
- bl FieldEffectStop
- b _08154498
-_08154412:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r4, r0, r1
- ldrb r0, [r4, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, =gSprites
- adds r1, r0
- ldrb r0, [r1, 0x5]
- movs r2, 0xC
- ands r2, r0
- ldrb r3, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r5, 0x5]
- ldrh r0, [r1, 0x20]
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x34]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldr r0, [r4]
- ldr r1, =0x00400001
- ands r0, r1
- cmp r0, r1
- bne _08154490
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsPokeGrass
- lsls r0, 24
- cmp r0, 0
- bne _08154490
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08154490
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08154490
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsReflective
- lsls r0, 24
- cmp r0, 0
- bne _08154490
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsReflective
- lsls r0, 24
- cmp r0, 0
- beq _08154498
-_08154490:
- adds r0, r5, 0
- movs r1, 0x3
- bl FieldEffectStop
-_08154498:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end oamc_shadow
-
- thumb_func_start oei_grass_normal
-oei_grass_normal: @ 81544AC
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, =gFieldEffectArguments
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x10]
- 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 r1, r0, 24
- cmp r1, 0x40
- beq _08154538
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r3, r0, r1
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x3
- ldrb r1, [r5, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r0, [r5, 0x8]
- strh r0, [r3, 0x2E]
- ldr r0, [r5]
- strh r0, [r3, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r3, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r3, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r3, 0x36]
- ldr r0, [r5, 0x18]
- strh r0, [r3, 0x38]
- ldr r0, [r5, 0x1C]
- cmp r0, 0
- beq _08154538
- adds r0, r3, 0
- movs r1, 0x4
- bl SeekSpriteAnim
-_08154538:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end oei_grass_normal
-
- thumb_func_start unc_grass_normal
-unc_grass_normal: @ 8154550
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- lsrs r4, r0, 8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, =gCamera
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0815459C
- ldr r0, =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, r4
- bne _08154582
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r0, r7
- beq _0815459C
-_08154582:
- ldr r1, [r3, 0x4]
- ldrh r0, [r5, 0x30]
- subs r0, r1
- strh r0, [r5, 0x30]
- ldr r1, [r3, 0x8]
- ldrh r0, [r5, 0x32]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrb r1, [r2, 0x5]
- lsls r1, 8
- ldrb r0, [r2, 0x4]
- orrs r0, r1
- strh r0, [r5, 0x38]
-_0815459C:
- ldrh r0, [r5, 0x34]
- lsrs r1, r0, 8
- mov r8, r1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r0, [r5, 0x36]
- lsls r0, 24
- lsrs r7, r0, 24
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r8
- adds r1, r4, 0
- adds r2, r7, 0
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _081545F0
- adds r0, r6, 0
- bl MetatileBehavior_IsTallGrass
- lsls r0, 24
- cmp r0, 0
- beq _081545F0
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08154604
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08154604
-_081545F0:
- adds r0, r5, 0
- movs r1, 0x4
- bl FieldEffectStop
- b _08154648
- .pool
-_08154604:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r2, r0, r1
- ldr r0, [r2, 0x10]
- ldr r1, [r5, 0x30]
- cmp r0, r1
- beq _08154624
- ldr r0, [r2, 0x14]
- cmp r0, r1
- beq _08154624
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_08154624:
- movs r6, 0
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0
- bne _08154632
- movs r6, 0x4
-_08154632:
- adds r0, r5, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_81561FC
-_08154648:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end unc_grass_normal
-
- thumb_func_start sub_8154658
-sub_8154658: @ 8154658
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x28]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081546B4
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xC
- strh r0, [r2, 0x30]
-_081546B4:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154658
-
- thumb_func_start sub_81546C8
-sub_81546C8: @ 81546C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r5, 0
- ldr r0, =gSprites
- mov r8, r0
- lsls r3, 16
- asrs r3, 16
- lsls r4, 16
- asrs r4, 16
-_081546EC:
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- mov r1, r8
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _08154740
- ldr r1, [r2, 0x1C]
- ldr r0, =unc_grass_normal
- cmp r1, r0
- bne _08154740
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r3, r0
- bne _08154740
- movs r1, 0x32
- ldrsh r0, [r2, r1]
- cmp r4, r0
- bne _08154740
- ldrh r1, [r2, 0x34]
- lsrs r0, r1, 8
- cmp r12, r0
- bne _08154740
- movs r0, 0xFF
- ands r0, r1
- cmp r7, r0
- bne _08154740
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r6, r0
- bne _08154740
- adds r0, r5, 0
- b _0815474C
- .pool
-_08154740:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3F
- bls _081546EC
- movs r0, 0x40
-_0815474C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81546C8
-
- thumb_func_start sub_8154758
-sub_8154758: @ 8154758
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, =gFieldEffectArguments
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x3C]
- 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 r1, r0, 24
- cmp r1, 0x40
- beq _081547E8
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r4, r0, r1
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r5, 0x8]
- bl ZCoordToPriority
- 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 r0, [r5, 0x8]
- strh r0, [r4, 0x2E]
- ldr r0, [r5]
- strh r0, [r4, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r4, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r4, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r4, 0x36]
- ldr r0, [r5, 0x18]
- strh r0, [r4, 0x38]
- ldr r0, [r5, 0x1C]
- cmp r0, 0
- beq _081547E8
- adds r0, r4, 0
- movs r1, 0x6
- bl SeekSpriteAnim
-_081547E8:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154758
-
- thumb_func_start unc_grass_tall
-unc_grass_tall: @ 8154800
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- lsrs r7, r0, 8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, =gCamera
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0815484C
- ldr r0, =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, r7
- bne _08154832
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r0, r6
- beq _0815484C
-_08154832:
- ldr r1, [r3, 0x4]
- ldrh r0, [r5, 0x30]
- subs r0, r1
- strh r0, [r5, 0x30]
- ldr r1, [r3, 0x8]
- ldrh r0, [r5, 0x32]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrb r1, [r2, 0x5]
- lsls r1, 8
- ldrb r0, [r2, 0x4]
- orrs r0, r1
- strh r0, [r5, 0x38]
-_0815484C:
- ldrh r0, [r5, 0x34]
- lsrs r1, r0, 8
- mov r8, r1
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r5, 0x36]
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _081548A0
- adds r0, r4, 0
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _081548A0
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081548B4
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081548B4
-_081548A0:
- adds r0, r5, 0
- movs r1, 0x11
- bl FieldEffectStop
- b _081548EA
- .pool
-_081548B4:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r2, r0, r1
- ldr r0, [r2, 0x10]
- ldr r1, [r5, 0x30]
- cmp r0, r1
- beq _081548D4
- ldr r0, [r2, 0x14]
- cmp r0, r1
- beq _081548D4
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_081548D4:
- adds r0, r5, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- movs r2, 0
- bl sub_81561FC
-_081548EA:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end unc_grass_tall
-
- thumb_func_start sub_81548FC
-sub_81548FC: @ 81548FC
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x40]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08154958
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0x12
- strh r0, [r2, 0x30]
-_08154958:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81548FC
-
- thumb_func_start sub_815496C
-sub_815496C: @ 815496C
- push {r4-r6,lr}
- ldr r6, =gFieldEffectArguments
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gEventObjects
- adds r5, r1, r0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x78]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081549F8
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r4, =gSprites
- adds r2, r4
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r6]
- strh r0, [r2, 0x2E]
- ldr r0, [r6, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r6, 0x8]
- strh r0, [r2, 0x32]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r2, 0x34]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x36]
-_081549F8:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_815496C
-
- thumb_func_start sub_8154A10
-sub_8154A10: @ 8154A10
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08154A4E
- ldr r5, =gEventObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x2]
- lsls r0, 29
- cmp r0, 0
- blt _08154A5C
-_08154A4E:
- adds r0, r4, 0
- movs r1, 0x29
- bl FieldEffectStop
- b _08154AF2
- .pool
-_08154A5C:
- ldrb r0, [r1, 0x5]
- bl GetEventObjectGraphicsInfo
- mov r8, r0
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r6, r0, r1
- ldrh r5, [r6, 0x22]
- ldrh r7, [r6, 0x20]
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08154A98
- lsls r0, r5, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _08154AB2
-_08154A98:
- strh r7, [r4, 0x34]
- strh r5, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08154AB2
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_08154AB2:
- strh r7, [r4, 0x20]
- strh r5, [r4, 0x22]
- mov r1, r8
- ldrh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 17
- subs r0, 0x8
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r0, [r6, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r0, r6, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- adds r0, r4, 0
- bl UpdateEventObjectSpriteVisibility
-_08154AF2:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8154A10
-
- thumb_func_start sub_8154B04
-sub_8154B04: @ 8154B04
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x2C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08154B62
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0xD
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_08154B62:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154B04
-
- thumb_func_start sub_8154B78
-sub_8154B78: @ 8154B78
- push {r4,r5,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x5C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- adds r5, r1, 0
- cmp r1, 0x40
- beq _08154BD8
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x18
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_08154BD8:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154B78
-
- thumb_func_start sub_8154BEC
-sub_8154BEC: @ 8154BEC
- push {r4,r5,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x6C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- adds r5, r1, 0
- cmp r1, 0x40
- beq _08154C4C
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x23
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_08154C4C:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154BEC
-
- thumb_func_start sub_8154C60
-sub_8154C60: @ 8154C60
- push {lr}
- ldr r2, =gUnknown_085CDC4C
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8154C60
-
- thumb_func_start sub_8154C7C
-sub_8154C7C: @ 8154C7C
- 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, 0x28
- ble _08154C92
- movs r0, 0x1
- strh r0, [r1, 0x2E]
-_08154C92:
- adds r0, r1, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
- pop {r0}
- bx r0
- thumb_func_end sub_8154C7C
-
- thumb_func_start sub_8154CA0
-sub_8154CA0: @ 8154CA0
- push {r4,lr}
- adds r4, r0, 0
- 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]
- ldrb r1, [r3]
- lsls r1, 29
- lsrs r1, 31
- adds r0, r4, 0
- bl UpdateEventObjectSpriteVisibility
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x38
- ble _08154CE4
- ldrh r1, [r4, 0x3C]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldEffectStop
-_08154CE4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8154CA0
-
- thumb_func_start sub_8154CEC
-sub_8154CEC: @ 8154CEC
- push {r4-r6,lr}
- ldr r6, =gFieldEffectArguments
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gEventObjects
- adds r5, r1, r0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x34]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _08154D76
- ldrb r0, [r5, 0x5]
- bl GetEventObjectGraphicsInfo
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- ldr r4, =gSprites
- adds r3, r4
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r1, [r1]
- movs r2, 0x2
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- ldrb r2, [r5, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r4, [r3, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- orrs r1, r2
- strb r1, [r3, 0x5]
- ldr r1, [r6]
- strh r1, [r3, 0x2E]
- ldr r1, [r6, 0x4]
- strh r1, [r3, 0x30]
- ldr r1, [r6, 0x8]
- strh r1, [r3, 0x32]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- subs r0, 0x4
- strh r0, [r3, 0x26]
- movs r0, 0x46
- bl PlaySE
-_08154D76:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154CEC
-
- thumb_func_start sub_8154D90
-sub_8154D90: @ 8154D90
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08154DC0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _08154DCA
-_08154DC0:
- adds r0, r4, 0
- movs r1, 0xF
- bl FieldEffectStop
- b _08154E0A
-_08154DCA:
- ldr r3, =gSprites
- ldr r2, =gEventObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x20]
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
-_08154E0A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8154D90
-
- thumb_func_start sub_8154E1C
-sub_8154E1C: @ 8154E1C
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x38]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08154E78
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0x10
- strh r0, [r2, 0x30]
-_08154E78:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154E1C
-
- thumb_func_start oei_water_drop_tall
-oei_water_drop_tall: @ 8154E8C
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x30]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08154EE8
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xE
- strh r0, [r2, 0x30]
-_08154EE8:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end oei_water_drop_tall
-
- thumb_func_start sub_8154EFC
-sub_8154EFC: @ 8154EFC
- push {r4-r7,lr}
- ldr r7, =gFieldEffectArguments
- ldrb r0, [r7]
- ldrb r1, [r7, 0x4]
- ldrb r2, [r7, 0x8]
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gEventObjects
- adds r6, r1, r0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x34]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _08154F92
- ldrb r0, [r6, 0x5]
- bl GetEventObjectGraphicsInfo
- adds r4, r0, 0
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r3, =gSprites
- adds r0, r3
- ldr r1, =sub_8154FB4
- str r1, [r0, 0x1C]
- adds r5, r0, 0
- adds r5, 0x3E
- ldrb r1, [r5]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r5]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, [r7]
- strh r1, [r0, 0x2E]
- ldr r1, [r7, 0x4]
- strh r1, [r0, 0x30]
- ldr r1, [r7, 0x8]
- strh r1, [r0, 0x32]
- ldr r1, =0x0000ffff
- strh r1, [r0, 0x34]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x36]
- ldrh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 17
- subs r1, 0x4
- strh r1, [r0, 0x26]
- movs r1, 0x1
- bl StartSpriteAnim
-_08154F92:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154EFC
-
- thumb_func_start sub_8154FB4
-sub_8154FB4: @ 8154FB4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08154FEE
- ldr r2, =gEventObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r2
- ldrb r0, [r5, 0x2]
- lsls r0, 28
- cmp r0, 0
- blt _08154FFC
-_08154FEE:
- adds r0, r4, 0
- movs r1, 0x22
- bl FieldEffectStop
- b _08155046
- .pool
-_08154FFC:
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- ldrh r1, [r0, 0x20]
- strh r1, [r4, 0x20]
- ldrh r1, [r0, 0x22]
- strh r1, [r4, 0x22]
- adds r0, 0x43
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
- ldr r1, [r5, 0x10]
- ldr r0, [r4, 0x34]
- cmp r1, r0
- beq _08155046
- ldrh r0, [r5, 0x10]
- strh r0, [r4, 0x34]
- ldrh r0, [r5, 0x12]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _08155046
- movs r0, 0x46
- bl PlaySE
-_08155046:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8154FB4
-
- thumb_func_start oei_ripples
-oei_ripples: @ 8155054
- push {r4,lr}
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x14]
- ldr r4, =gFieldEffectArguments
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081550A0
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x5
- strh r0, [r2, 0x2E]
-_081550A0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end oei_ripples
-
- thumb_func_start sub_81550B4
-sub_81550B4: @ 81550B4
- push {r4-r6,lr}
- ldr r6, =gFieldEffectArguments
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gEventObjects
- adds r5, r1, r0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x7C]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08155140
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r4, =gSprites
- adds r2, r4
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r6]
- strh r0, [r2, 0x2E]
- ldr r0, [r6, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r6, 0x8]
- strh r0, [r2, 0x32]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r2, 0x34]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x36]
-_08155140:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81550B4
-
- thumb_func_start sub_8155158
-sub_8155158: @ 8155158
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08155192
- ldr r5, =gEventObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x2]
- lsls r0, 26
- cmp r0, 0
- blt _081551A0
-_08155192:
- adds r0, r4, 0
- movs r1, 0x2A
- bl FieldEffectStop
- b _081551E4
- .pool
-_081551A0:
- ldrb r0, [r1, 0x5]
- bl GetEventObjectGraphicsInfo
- mov r1, sp
- ldrb r2, [r1]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, =gSprites
- adds r1, r2
- ldrh r2, [r1, 0x20]
- strh r2, [r4, 0x20]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- ldrh r2, [r1, 0x22]
- adds r0, r2
- subs r0, 0x8
- strh r0, [r4, 0x22]
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
-_081551E4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155158
-
- thumb_func_start sub_81551F0
-sub_81551F0: @ 81551F0
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x44]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08155248
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x13
- strh r0, [r2, 0x2E]
-_08155248:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81551F0
-
- thumb_func_start sub_815525C
-sub_815525C: @ 815525C
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x48]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081552B4
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x14
- strh r0, [r2, 0x2E]
-_081552B4:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_815525C
-
- thumb_func_start sub_81552C8
-sub_81552C8: @ 81552C8
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x4C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08155320
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x15
- strh r0, [r2, 0x2E]
-_08155320:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81552C8
-
- thumb_func_start sub_8155334
-sub_8155334: @ 8155334
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x50]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0815538C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x16
- strh r0, [r2, 0x2E]
-_0815538C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8155334
-
- thumb_func_start ash
-ash: @ 81553A0
- push {r4,lr}
- lsls r2, 16
- lsrs r2, 16
- ldr r4, =gFieldEffectArguments
- lsls r0, 16
- asrs r0, 16
- str r0, [r4]
- lsls r1, 16
- asrs r1, 16
- str r1, [r4, 0x4]
- movs r0, 0x52
- str r0, [r4, 0x8]
- movs r0, 0x1
- str r0, [r4, 0xC]
- str r2, [r4, 0x10]
- lsls r3, 16
- asrs r3, 16
- str r3, [r4, 0x14]
- movs r0, 0x7
- bl FieldEffectStart
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ash
-
- thumb_func_start oei_ash
-oei_ash: @ 81553D4
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, =gFieldEffectArguments
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x18]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- ldrb r3, [r5, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0815544A
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r5, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r5]
- strh r0, [r2, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r2, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r2, 0x36]
-_0815544A:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end oei_ash
-
- thumb_func_start sub_8155460
-sub_8155460: @ 8155460
- push {lr}
- ldr r2, =gUnknown_085CDC54
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155460
-
- thumb_func_start sub_815547C
-sub_815547C: @ 815547C
- 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]
- subs r2, 0x12
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x36]
- subs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _081554A6
- movs r0, 0x1
- strh r0, [r3, 0x2E]
-_081554A6:
- pop {r0}
- bx r0
- thumb_func_end sub_815547C
-
- thumb_func_start sub_81554AC
-sub_81554AC: @ 81554AC
- 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]
- subs r2, 0x12
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- ldrh r2, [r4, 0x34]
- bl MapGridSetMetatileIdAt
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- ldr r2, =gEventObjects
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x2
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81554AC
-
- thumb_func_start sub_815550C
-sub_815550C: @ 815550C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0815552C
- adds r0, r4, 0
- movs r1, 0x7
- bl FieldEffectStop
-_0815552C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815550C
-
- thumb_func_start sub_8155534
-sub_8155534: @ 8155534
- push {r4,r5,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x1C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x96
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- cmp r0, 0x40
- beq _0815558E
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, =gSprites
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r1, 0x32]
- ldr r0, =0x0000ffff
- strh r0, [r1, 0x34]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1, 0x3A]
- strh r0, [r1, 0x3C]
-_0815558E:
- movs r0, 0x8
- bl FieldEffectActiveListRemove
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8155534
-
- thumb_func_start sub_81555AC
-sub_81555AC: @ 81555AC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrh r0, [r2, 0x2E]
- movs r3, 0x10
- negs r3, r3
- ands r3, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 24
- orrs r0, r3
- strh r0, [r2, 0x2E]
- bx lr
- .pool
- thumb_func_end sub_81555AC
-
- thumb_func_start sub_81555D8
-sub_81555D8: @ 81555D8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrh r0, [r2, 0x2E]
- movs r3, 0xF1
- negs r3, r3
- ands r3, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 20
- orrs r3, r0
- strh r3, [r2, 0x2E]
- bx lr
- .pool
- thumb_func_end sub_81555D8
-
- thumb_func_start sub_8155604
-sub_8155604: @ 8155604
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r4, =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r4
- ldrh r0, [r3, 0x2E]
- ldr r4, =0xfffff0ff
- ands r4, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 16
- orrs r4, r0
- strh r4, [r3, 0x2E]
- strh r2, [r3, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155604
-
- thumb_func_start sub_8155638
-sub_8155638: @ 8155638
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF
- ands r0, r1
- bx lr
- thumb_func_end sub_8155638
-
- thumb_func_start sub_8155640
-sub_8155640: @ 8155640
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF0
- ands r0, r1
- lsrs r0, 4
- bx lr
- thumb_func_end sub_8155640
-
- thumb_func_start sub_815564C
-sub_815564C: @ 815564C
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF0
- lsls r0, 4
- ands r0, r1
- lsrs r0, 8
- bx lr
- thumb_func_end sub_815564C
-
- thumb_func_start sub_8155658
-sub_8155658: @ 8155658
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gEventObjects
- adds r4, r0
- ldrb r0, [r4, 0x4]
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- ldr r0, =gSprites
- adds r5, r0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_81556B0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_81556E8
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_815577C
- ldrb r0, [r5, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r2, [r6, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155658
-
- thumb_func_start sub_81556B0
-sub_81556B0: @ 81556B0
- push {r4,r5,lr}
- sub sp, 0xC
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, =gUnknown_085CDC60
- mov r0, sp
- movs r2, 0x9
- bl memcpy
- adds r0, r4, 0
- bl sub_8155640
- lsls r0, 24
- cmp r0, 0
- bne _081556DC
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- add r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl StartSpriteAnimIfDifferent
-_081556DC:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81556B0
-
- thumb_func_start sub_81556E8
-sub_81556E8: @ 81556E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r1, 0
- ldrh r2, [r0, 0x10]
- mov r1, sp
- strh r2, [r1]
- ldrh r1, [r0, 0x12]
- mov r0, sp
- adds r0, 0x2
- strh r1, [r0]
- movs r2, 0x26
- ldrsh r3, [r4, r2]
- mov r8, r0
- cmp r3, 0
- bne _08155770
- mov r0, sp
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r5, 0x3A
- ldrsh r0, [r4, r5]
- cmp r2, r0
- bne _08155724
- lsls r0, r1, 16
- asrs r0, 16
- movs r5, 0x3C
- ldrsh r1, [r4, r5]
- cmp r0, r1
- beq _08155770
-_08155724:
- strh r3, [r4, 0x38]
- strh r2, [r4, 0x3A]
- mov r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- strh r0, [r4, 0x3C]
- movs r5, 0x1
- mov r7, r8
- mov r6, sp
-_08155736:
- adds r0, r5, 0
- mov r1, sp
- adds r2, r7, 0
- bl MoveCoords
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0815575C
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _08155770
-_0815575C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4, 0x3A]
- strh r0, [r6]
- ldrh r0, [r4, 0x3C]
- mov r1, r8
- strh r0, [r1]
- cmp r5, 0x4
- bls _08155736
-_08155770:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81556E8
-
- thumb_func_start sub_815577C
-sub_815577C: @ 815577C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r4, r2, 0
- ldr r1, =gUnknown_085CDC6A
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- bl sub_8155638
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- cmp r2, 0
- beq _081557F6
- ldrh r1, [r4, 0x36]
- adds r1, 0x1
- strh r1, [r4, 0x36]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _081557BC
- ldrh r0, [r4, 0x34]
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
-_081557BC:
- ldrh r1, [r4, 0x36]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _081557CC
- ldrh r0, [r4, 0x34]
- negs r0, r0
- strh r0, [r4, 0x34]
-_081557CC:
- cmp r2, 0x2
- beq _081557F6
- adds r0, r4, 0
- bl sub_815564C
- lsls r0, 24
- cmp r0, 0
- bne _081557E4
- ldrh r0, [r4, 0x26]
- b _081557EA
- .pool
-_081557E4:
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x30]
- adds r0, r3
-_081557EA:
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x20]
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
-_081557F6:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815577C
-
- thumb_func_start sub_8155800
-sub_8155800: @ 8155800
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gDummySpriteTemplate
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r1, =gSprites
- adds r2, r1
- ldr r1, =sub_8155850
- str r1, [r2, 0x1C]
- movs r1, 0x3E
- adds r1, r2
- mov r12, r1
- ldrb r1, [r1]
- movs r3, 0x4
- orrs r1, r3
- mov r3, r12
- strb r1, [r3]
- strh r4, [r2, 0x2E]
- movs r1, 0x1
- strh r1, [r2, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8155800
-
- thumb_func_start sub_8155850
-sub_8155850: @ 8155850
- push {lr}
- adds r2, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r3, r0, r1
- ldrh r1, [r2, 0x32]
- adds r0, r1, 0x1
- strh r0, [r2, 0x32]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08155878
- ldrh r0, [r2, 0x30]
- ldrh r1, [r3, 0x26]
- adds r0, r1
- strh r0, [r3, 0x26]
-_08155878:
- ldrh r1, [r2, 0x32]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _08155888
- ldrh r0, [r2, 0x30]
- negs r0, r0
- strh r0, [r2, 0x30]
-_08155888:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155850
-
- thumb_func_start sub_8155890
-sub_8155890: @ 8155890
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x24]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081558EC
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xA
- strh r0, [r2, 0x30]
-_081558EC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8155890
-
- thumb_func_start sub_8155900
-sub_8155900: @ 8155900
- push {r4-r7,lr}
- ldr r7, =gFieldEffectArguments
- ldrb r0, [r7]
- ldrb r1, [r7, 0x4]
- ldrb r2, [r7, 0x8]
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gEventObjects
- adds r6, r1, r0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x74]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _081559A4
- ldrb r0, [r6, 0x5]
- bl GetEventObjectGraphicsInfo
- adds r5, r0, 0
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, [r7]
- strh r1, [r0, 0x2E]
- ldr r1, [r7, 0x4]
- strh r1, [r0, 0x30]
- ldr r1, [r7, 0x8]
- strh r1, [r0, 0x32]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x20]
- strh r1, [r0, 0x34]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x36]
- ldrh r1, [r5, 0xA]
- lsls r1, 16
- asrs r1, 17
- subs r1, 0x2
- strh r1, [r0, 0x26]
- movs r1, 0x2
- bl SeekSpriteAnim
-_081559A4:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8155900
-
- thumb_func_start sub_81559BC
-sub_81559BC: @ 81559BC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _081559F6
- ldr r2, =gEventObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrb r0, [r1, 0x2]
- lsls r0, 27
- cmp r0, 0
- blt _08155A04
-_081559F6:
- adds r0, r4, 0
- movs r1, 0x27
- bl FieldEffectStop
- b _08155A76
- .pool
-_08155A04:
- ldr r2, =gSprites
- ldrb r1, [r1, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r5, [r0, 0x22]
- ldrh r6, [r0, 0x20]
- movs r2, 0x20
- ldrsh r1, [r0, r2]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08155A2C
- lsls r0, r5, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _08155A46
-_08155A2C:
- strh r6, [r4, 0x34]
- strh r5, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08155A46
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_08155A46:
- strh r6, [r4, 0x20]
- strh r5, [r4, 0x22]
- ldr r3, =gSprites
- ldr r2, =gEventObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x43
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
-_08155A76:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81559BC
-
- thumb_func_start sub_8155A88
-sub_8155A88: @ 8155A88
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- adds r0, 0x88
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08155AD8
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, =gSprites
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x5]
-_08155AD8:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8155A88
-
- thumb_func_start sub_8155AEC
-sub_8155AEC: @ 8155AEC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, r0
- strh r1, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
- ldrh r1, [r4, 0x3E]
- ldr r0, =0x00001004
- ands r0, r1
- cmp r0, 0
- beq _08155B20
- adds r0, r4, 0
- movs r1, 0x35
- bl FieldEffectStop
-_08155B20:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155AEC
-
- thumb_func_start sub_8155B2C
-sub_8155B2C: @ 8155B2C
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x4
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x58]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08155B8C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x50
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x17
- strh r0, [r2, 0x2E]
-_08155B8C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8155B2C
-
- thumb_func_start ShowTreeDisguiseFieldEffect
-@ u8 ShowTreeDisguiseFieldEffect()
-ShowTreeDisguiseFieldEffect: @ 8155BA0
- push {lr}
- movs r0, 0x1C
- movs r1, 0x18
- movs r2, 0x4
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end ShowTreeDisguiseFieldEffect
-
- thumb_func_start ShowMountainDisguiseFieldEffect
-@ u8 ShowMountainDisguiseFieldEffect()
-ShowMountainDisguiseFieldEffect: @ 8155BB0
- push {lr}
- movs r0, 0x1D
- movs r1, 0x19
- movs r2, 0x3
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end ShowMountainDisguiseFieldEffect
-
- thumb_func_start ShowSandDisguiseFieldEffect
-@ u8 ShowSandDisguiseFieldEffect()
-ShowSandDisguiseFieldEffect: @ 8155BC0
- push {lr}
- movs r0, 0x24
- movs r1, 0x1C
- movs r2, 0x2
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end ShowSandDisguiseFieldEffect
-
- thumb_func_start ShowDisguiseFieldEffect
-@ u8 ShowDisguiseFieldEffect(u8 fieldEffectId, u8 fieldEffectObjectId, u8 paletteSlot)
-ShowDisguiseFieldEffect: @ 8155BD0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- mov r8, r4
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r5, =gFieldEffectArguments
- ldrb r0, [r5]
- ldrb r1, [r5, 0x4]
- ldrb r2, [r5, 0x8]
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _08155C08
- adds r0, r4, 0
- bl FieldEffectActiveListRemove
- movs r0, 0x40
- b _08155C74
- .pool
-_08155C08:
- ldr r1, =gFieldEffectObjectTemplatePointers
- lsls r0, r6, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- mov r1, sp
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08155C70
- mov r0, sp
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- movs r0, 0x3E
- adds r0, r2
- mov r12, r0
- ldrb r3, [r0]
- lsls r1, r3, 30
- lsrs r1, 31
- adds r1, 0x1
- movs r0, 0x1
- ands r1, r0
- lsls r1, 1
- movs r0, 0x3
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- lsls r3, r7, 4
- ldrb r1, [r2, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0x5]
- mov r0, r8
- strh r0, [r2, 0x30]
- ldr r0, [r5]
- strh r0, [r2, 0x32]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x34]
- ldr r0, [r5, 0x8]
- strh r0, [r2, 0x36]
-_08155C70:
- mov r0, sp
- ldrb r0, [r0]
-_08155C74:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ShowDisguiseFieldEffect
-
- thumb_func_start sub_8155C88
-sub_8155C88: @ 8155C88
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x34]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5, 0x36]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _08155CB8
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldEffectStop
-_08155CB8:
- ldr r4, =gEventObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- bl GetEventObjectGraphicsInfo
- mov r1, sp
- ldrb r2, [r1]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- ldr r1, =gSprites
- adds r2, r1
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r3, 0x3E
- adds r3, r5
- mov r12, r3
- movs r3, 0x4
- ands r3, r1
- mov r1, r12
- ldrb r4, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r4
- orrs r1, r3
- mov r3, r12
- strb r1, [r3]
- ldrh r1, [r2, 0x20]
- strh r1, [r5, 0x20]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- ldrh r1, [r2, 0x22]
- adds r0, r1
- subs r0, 0x10
- strh r0, [r5, 0x22]
- adds r2, 0x43
- ldrb r0, [r2]
- subs r0, 0x1
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- bne _08155D38
- adds r0, r1, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_08155D38:
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- ldrh r2, [r5, 0x2E]
- cmp r0, 0x2
- bne _08155D54
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08155D54
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_08155D54:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _08155D68
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldEffectStop
-_08155D68:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155C88
-
- thumb_func_start sub_8155D78
-sub_8155D78: @ 8155D78
- push {lr}
- adds r1, r0, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08155D96
- ldr r2, =gSprites
- ldrb r1, [r1, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2E]
- adds r1, 0x1
- strh r1, [r0, 0x2E]
-_08155D96:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155D78
-
- thumb_func_start sub_8155DA0
-sub_8155DA0: @ 8155DA0
- push {lr}
- adds r2, r0, 0
- adds r2, 0x21
- ldrb r1, [r2]
- cmp r1, 0x2
- beq _08155DD6
- cmp r1, 0
- beq _08155DD6
- ldrb r1, [r0, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r1, r0, r1
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _08155DCC
- movs r0, 0
- b _08155DD8
- .pool
-_08155DCC:
- movs r0, 0x2
- strb r0, [r2]
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
-_08155DD6:
- movs r0, 0x1
-_08155DD8:
- pop {r1}
- bx r1
- thumb_func_end sub_8155DA0
-
- thumb_func_start sub_8155DDC
-sub_8155DDC: @ 8155DDC
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- ldr r0, [r4, 0x4]
- adds r0, 0x7
- str r0, [r4, 0x4]
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- adds r0, 0x8C
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _08155E3C
- ldr r0, =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- movs r0, 0x3
- ldrb r2, [r4, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
-_08155E3C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8155DDC
-
- thumb_func_start sub_8155E50
-sub_8155E50: @ 8155E50
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _08155E84
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08155E7C
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
-_08155E7C:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08155E9A
-_08155E84:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x22
- ble _08155E9A
- adds r0, r2, 0
- movs r1, 0x36
- bl FieldEffectStop
-_08155E9A:
- pop {r0}
- bx r0
- thumb_func_end sub_8155E50
-
- thumb_func_start sub_8155EA0
-sub_8155EA0: @ 8155EA0
- movs r1, 0
- strh r1, [r0, 0x3A]
- strh r1, [r0, 0x3C]
- bx lr
- thumb_func_end sub_8155EA0
-
- thumb_func_start sub_8155EA8
-sub_8155EA8: @ 8155EA8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r6, 0
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08155EDE
- cmp r0, 0x1
- bgt _08155EC0
- cmp r0, 0
- beq _08155ECA
- b _08155F42
-_08155EC0:
- cmp r0, 0x2
- beq _08155F06
- cmp r0, 0x3
- beq _08155F1A
- b _08155F42
-_08155ECA:
- movs r2, 0x3A
- ldrsh r0, [r5, r2]
- bl sub_809773C
- ldrh r1, [r5, 0x24]
- adds r0, r1
- strh r0, [r5, 0x24]
- movs r2, 0x3A
- ldrsh r0, [r5, r2]
- b _08155F38
-_08155EDE:
- ldrh r0, [r5, 0x3A]
- movs r4, 0x47
- subs r0, r4, r0
- lsls r0, 16
- asrs r0, 16
- bl sub_809773C
- ldrh r1, [r5, 0x24]
- subs r1, r0
- strh r1, [r5, 0x24]
- ldrh r0, [r5, 0x3A]
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- bl sub_8097728
- ldrh r2, [r5, 0x26]
- adds r0, r2
- b _08155F40
-_08155F06:
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- bl sub_809773C
- ldrh r1, [r5, 0x24]
- subs r1, r0
- strh r1, [r5, 0x24]
- movs r2, 0x3A
- ldrsh r0, [r5, r2]
- b _08155F38
-_08155F1A:
- ldrh r0, [r5, 0x3A]
- movs r4, 0x47
- subs r0, r4, r0
- lsls r0, 16
- asrs r0, 16
- bl sub_809773C
- ldrh r2, [r5, 0x24]
- adds r0, r2
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x3A]
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
-_08155F38:
- bl sub_8097728
- ldrh r1, [r5, 0x26]
- adds r0, r1
-_08155F40:
- strh r0, [r5, 0x26]
-_08155F42:
- ldrh r1, [r5, 0x24]
- negs r1, r1
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x10
- bl SetGpuReg
- ldrh r0, [r5, 0x3A]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x48
- bne _08155F68
- strh r1, [r5, 0x3A]
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
-_08155F68:
- movs r2, 0x3C
- ldrsh r0, [r5, r2]
- cmp r0, 0x4
- bne _08155F76
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- movs r6, 0x1
-_08155F76:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8155EA8
-
- thumb_func_start sub_8155F80
-sub_8155F80: @ 8155F80
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x8
- bls _08155F8E
- b _08156156
-_08155F8E:
- lsls r0, 2
- ldr r1, =_08155F9C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08155F9C:
- .4byte _08155FC0
- .4byte _08156034
- .4byte _0815606C
- .4byte _08156090
- .4byte _081560C0
- .4byte _081560D4
- .4byte _081560E0
- .4byte _0815610E
- .4byte _08156120
-_08155FC0:
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- movs r1, 0x3
- bl __divsi3
- movs r1, 0x78
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x12
- bl SetGpuReg
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- cmp r0, 0x60
- bne _08156016
- movs r1, 0
- ldr r4, =0x0600f800
- mov r12, r4
- ldr r0, =0x0000bff4
- adds r7, r0, 0
-_08155FEA:
- movs r2, 0xC
- lsls r0, r1, 1
- adds r3, r1, 0x1
- lsls r6, r1, 5
- adds r0, r1
- lsls r4, r0, 1
-_08155FF6:
- adds r0, r6, r2
- lsls r0, 1
- add r0, r12
- adds r1, r2, r7
- adds r1, r4, r1
- adds r1, 0x1
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x11
- bls _08155FF6
- lsls r0, r3, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _08155FEA
-_08156016:
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- ldr r0, =0x00000137
- cmp r1, r0
- bgt _08156022
- b _08156156
-_08156022:
- movs r1, 0
- movs r0, 0x1
- b _0815611A
- .pool
-_08156034:
- ldr r4, =gSineTable
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- asrs r0, 15
- adds r0, r4
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 18
- ldrh r4, [r5, 0x36]
- adds r0, r4
- movs r1, 0
- strh r0, [r5, 0x22]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0xBD
- bne _08156156
- movs r0, 0x2
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x38]
- strh r1, [r5, 0x2E]
- b _08156156
- .pool
-_0815606C:
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- cmp r0, 0x3C
- bne _0815607E
- ldrh r0, [r5, 0x38]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0x38]
- strh r1, [r5, 0x2E]
-_0815607E:
- movs r4, 0x38
- ldrsh r0, [r5, r4]
- cmp r0, 0x7
- bne _08156156
- movs r0, 0
- strh r0, [r5, 0x38]
- movs r0, 0x3
- strh r0, [r5, 0x32]
- b _08156156
-_08156090:
- ldrh r2, [r5, 0x26]
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- adds r3, r2, 0
- cmp r1, 0
- bne _081560A4
- strh r1, [r5, 0x2E]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
-_081560A4:
- movs r4, 0x2E
- ldrsh r0, [r5, r4]
- cmp r0, 0x5
- bne _08156156
- movs r0, 0
- strh r0, [r5, 0x2E]
- cmp r1, 0
- ble _081560BA
- subs r0, r3, 0x1
- strh r0, [r5, 0x26]
- b _08156156
-_081560BA:
- adds r0, r2, 0x1
- strh r0, [r5, 0x26]
- b _08156156
-_081560C0:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x3C
- bne _08156156
- movs r1, 0
- movs r0, 0x5
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x2E]
- strh r1, [r5, 0x38]
- b _08156156
-_081560D4:
- adds r0, r5, 0
- bl sub_8155EA0
- movs r1, 0
- movs r0, 0x6
- b _0815611A
-_081560E0:
- adds r0, r5, 0
- bl sub_8155EA8
- lsls r0, 24
- cmp r0, 0
- beq _08156156
- movs r1, 0
- strh r1, [r5, 0x2E]
- ldrh r0, [r5, 0x38]
- adds r0, 0x1
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bgt _08156106
- adds r0, r5, 0
- bl sub_8155EA0
- b _08156156
-_08156106:
- strh r1, [r5, 0x38]
- movs r0, 0x7
- strh r0, [r5, 0x32]
- b _08156156
-_0815610E:
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x1E
- bne _08156156
- movs r1, 0
- movs r0, 0x8
-_0815611A:
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x2E]
- b _08156156
-_08156120:
- movs r1, 0
- ldr r6, =0x0600f800
- movs r4, 0
-_08156126:
- movs r2, 0xC
- adds r3, r1, 0x1
- lsls r1, 5
-_0815612C:
- adds r0, r1, r2
- lsls r0, 1
- adds r0, r6
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x11
- bls _0815612C
- lsls r0, r3, 24
- lsrs r1, r0, 24
- cmp r1, 0xE
- bls _08156126
- movs r0, 0x12
- movs r1, 0
- bl SetGpuReg
- adds r0, r5, 0
- movs r1, 0x40
- bl FieldEffectStop
-_08156156:
- movs r3, 0x32
- ldrsh r0, [r5, r3]
- cmp r0, 0x1
- bne _08156184
- ldrh r1, [r5, 0x30]
- movs r0, 0x7
- ands r0, r1
- adds r2, r1, 0
- cmp r0, 0
- bne _08156172
- ldrh r0, [r5, 0x34]
- ldrh r4, [r5, 0x26]
- adds r0, r4
- strh r0, [r5, 0x26]
-_08156172:
- movs r0, 0xF
- ands r0, r2
- cmp r0, 0
- bne _08156180
- ldrh r0, [r5, 0x34]
- negs r0, r0
- strh r0, [r5, 0x34]
-_08156180:
- adds r0, r1, 0x1
- strh r0, [r5, 0x30]
-_08156184:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155F80
-
- thumb_func_start sub_8156194
-sub_8156194: @ 8156194
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081561B2
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldEffectStop
- b _081561C8
-_081561B2:
- adds r0, r4, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0
- bl SetObjectSubpriorityByZCoord
-_081561C8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8156194
-
- thumb_func_start sub_81561D0
-sub_81561D0: @ 81561D0
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081561EE
- ldrh r1, [r2, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl FieldEffectStop
- b _081561F6
-_081561EE:
- adds r0, r2, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
-_081561F6:
- pop {r0}
- bx r0
- thumb_func_end sub_81561D0
-
- thumb_func_start sub_81561FC
-sub_81561FC: @ 81561FC
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r0, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, 0
- bl SetObjectSubpriorityByZCoord
- movs r7, 0
-_08156212:
- lsls r0, r7, 3
- adds r0, r7
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r4, r0, r1
- ldrb r0, [r4]
- lsls r0, 31
- cmp r0, 0
- beq _081562B4
- ldrb r0, [r4, 0x5]
- bl GetEventObjectGraphicsInfo
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r5, r0, r1
- adds r0, r6, 0
- adds r0, 0x28
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldrh r0, [r6, 0x20]
- adds r1, r0, r2
- subs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x20
- ldrsh r2, [r5, r0]
- cmp r1, r2
- bge _081562B4
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r2
- ble _081562B4
- adds r0, r5, 0
- adds r0, 0x29
- movs r3, 0
- ldrsb r3, [r0, r3]
- ldrh r2, [r5, 0x22]
- adds r2, r3
- ldrh r4, [r5, 0x22]
- adds r0, r6, 0
- adds r0, 0x29
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrh r0, [r6, 0x22]
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- adds r3, r0, r3
- lsls r2, 16
- asrs r2, 16
- lsls r3, 16
- asrs r3, 16
- cmp r2, r3
- blt _0815628C
- cmp r2, r0
- bge _081562B4
-_0815628C:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r3
- ble _081562B4
- adds r2, r6, 0
- adds r2, 0x43
- adds r0, r5, 0
- adds r0, 0x43
- ldrb r1, [r0]
- ldrb r0, [r2]
- cmp r0, r1
- bhi _081562B4
- adds r0, r1, 0x2
- strb r0, [r2]
- b _081562BE
- .pool
-_081562B4:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _08156212
-_081562BE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81561FC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index 0abbf014f..c7b3a0486 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -1793,7 +1793,7 @@ InitPlayerAvatar: @ 808BFE0
movs r1, 0x1
orrs r0, r1
strb r0, [r4, 0x2]
- bl sub_8154228
+ bl CreateWarpArrowSprite
strb r0, [r4, 0x1B]
adds r0, r4, 0
mov r1, r9
@@ -2080,7 +2080,7 @@ _0808C2A2:
movs r1, 0
ldrsh r3, [r7, r1]
adds r1, r6, 0
- bl sub_8154298
+ bl ShowWarpArrowSprite
b _0808C302
.pool
_0808C2E8:
@@ -2095,7 +2095,7 @@ _0808C2E8:
cmp r1, 0x3
ble _0808C2A2
ldrb r0, [r5, 0x1B]
- bl objid_set_invisible
+ bl SetSpriteInvisible
_0808C302:
add sp, 0x4
pop {r3,r4}
diff --git a/asm/party_menu.s b/asm/party_menu.s
index f5ed314ce..e5540e171 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -7846,7 +7846,7 @@ sub_81B5958: @ 81B5958
thumb_func_start sub_81B5974
sub_81B5974: @ 81B5974
push {lr}
- bl sub_809D1E8
+ bl TrySetDiveWarp
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s
index b7388b41b..1202473ee 100644
--- a/asm/script_pokemon_util_80F87D8.s
+++ b/asm/script_pokemon_util_80F87D8.s
@@ -1606,8 +1606,8 @@ _080F94D6:
.pool
thumb_func_end sub_80F94B8
- thumb_func_start sub_80F94E8
-sub_80F94E8: @ 80F94E8
+ thumb_func_start ReducePlayerPartyToThree
+ReducePlayerPartyToThree: @ 80F94E8
push {r4-r7,lr}
sub sp, 0x198
add r0, sp, 0x190
@@ -1662,6 +1662,6 @@ _080F9538:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80F94E8
+ thumb_func_end ReducePlayerPartyToThree
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/shop.s b/asm/shop.s
index 807237389..56658c4ff 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -5,1404 +5,6 @@
.text
- thumb_func_start CreateShopMenu
-@ s8 CreateShopMenu(s8 type)
-CreateShopMenu: @ 80DFA78
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- ldr r5, =gUnknown_02039F60
- strb r4, [r5, 0xF]
- cmp r4, 0
- bne _080DFACC
- ldr r0, =gUnknown_08589A38
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r4, =gUnknown_08589A10
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMaxWidthInMenuTable
- lsls r0, 24
- ldr r2, =0x00ffffff
- ldr r1, [sp]
- ands r1, r2
- orrs r1, r0
- str r1, [sp]
- mov r0, sp
- bl AddWindow
- strb r0, [r5, 0xE]
- str r4, [r5, 0x4]
- movs r5, 0x3
- b _080DFAF8
- .pool
-_080DFACC:
- ldr r0, =gUnknown_08589A38
- ldr r1, [r0, 0xC]
- ldr r0, [r0, 0x8]
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- ldr r4, =gUnknown_08589A28
- adds r0, r4, 0
- movs r1, 0x2
- bl GetMaxWidthInMenuTable
- lsls r0, 24
- ldr r2, =0x00ffffff
- ldr r1, [sp, 0x8]
- ands r1, r2
- orrs r1, r0
- str r1, [sp, 0x8]
- add r0, sp, 0x8
- bl AddWindow
- strb r0, [r5, 0xE]
- str r4, [r5, 0x4]
- movs r5, 0x2
-_080DFAF8:
- ldr r4, =gUnknown_02039F60
- ldrb r0, [r4, 0xE]
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldrb r0, [r4, 0xE]
- ldr r2, [r4, 0x4]
- adds r1, r5, 0
- bl PrintMenuTable
- ldrb r0, [r4, 0xE]
- adds r1, r5, 0
- movs r2, 0
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- ldrb r0, [r4, 0xE]
- bl PutWindowTilemap
- ldrb r0, [r4, 0xE]
- movs r1, 0x1
- bl CopyWindowToVram
- ldr r0, =Task_ShopMenu
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x10
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end CreateShopMenu
-
- thumb_func_start SetShopMenuCallback
-@ void SetShopMenuCallback()
-SetShopMenuCallback: @ 80DFB4C
- ldr r1, =gUnknown_02039F60
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end SetShopMenuCallback
-
- thumb_func_start SetShopItemsForSale
-@ int SetShopItemsForSale(s16 *itemsForSale)
-SetShopItemsForSale: @ 80DFB58
- push {lr}
- adds r1, r0, 0
- movs r2, 0
- ldr r3, =gUnknown_02039F60
- str r1, [r3, 0x8]
- strh r2, [r3, 0xC]
- ldrh r0, [r1]
- cmp r0, 0
- beq _080DFB80
-_080DFB6A:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _080DFB6A
-_080DFB80:
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetShopItemsForSale
-
- thumb_func_start Task_ShopMenu
-@ void Task_ShopMenu(u8 taskId)
-Task_ShopMenu: @ 80DFB88
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl Menu_ProcessInputNoWrapAround
- lsls r0, 24
- asrs r2, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r2, r0
- beq _080DFBC4
- adds r0, 0x1
- cmp r2, r0
- bne _080DFBB4
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl HandleShopMenuQuit
- b _080DFBC4
-_080DFBB4:
- ldr r0, =gUnknown_02039F60
- ldr r1, [r0, 0x4]
- lsls r0, r2, 3
- adds r0, r1
- ldr r1, [r0, 0x4]
- adds r0, r5, 0
- bl _call_via_r1
-_080DFBC4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_ShopMenu
-
- thumb_func_start HandleShopMenuBuy
-@ void HandleShopMenuBuy(u8 taskId)
-HandleShopMenuBuy: @ 80DFBD0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, =gTasks + 0x8
- adds r4, r1, r2
- ldr r3, =CB2_InitBuyMenu
- lsrs r0, r3, 16
- strh r0, [r4, 0x10]
- strh r3, [r4, 0x12]
- subs r2, 0x8
- adds r1, r2
- ldr r0, =Task_GoToBuyOrSellMenu
- str r0, [r1]
- movs r0, 0x1
- movs r1, 0
- bl FadeScreen
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end HandleShopMenuBuy
-
- thumb_func_start HandleShopMenuSell
-@ void HandleShopMenuSell(u8 taskId)
-HandleShopMenuSell: @ 80DFC0C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, =gTasks + 0x8
- adds r4, r1, r2
- ldr r3, =CB2_GoToSellMenu
- lsrs r0, r3, 16
- strh r0, [r4, 0x10]
- strh r3, [r4, 0x12]
- subs r2, 0x8
- adds r1, r2
- ldr r0, =Task_GoToBuyOrSellMenu
- str r0, [r1]
- movs r0, 0x1
- movs r1, 0
- bl FadeScreen
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end HandleShopMenuSell
-
- thumb_func_start CB2_ExitSellMenu
-@ int CB2_ExitSellMenu()
-CB2_ExitSellMenu: @ 80DFC48
- push {lr}
- ldr r0, =gFieldCallback
- ldr r1, =MapPostLoadHook_ExitBuyOrSellMenu
- str r1, [r0]
- ldr r0, =CB2_ReturnToField
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end CB2_ExitSellMenu
-
- thumb_func_start HandleShopMenuQuit
-@ void HandleShopMenuQuit(u8 taskId)
-HandleShopMenuQuit: @ 80DFC68
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, =gUnknown_02039F60
- ldrb r0, [r5, 0xE]
- movs r1, 0x2
- bl sub_8198070
- ldrb r0, [r5, 0xE]
- bl RemoveWindow
- bl SaveRecordedItemPurchasesForTVShow
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- ldr r5, [r5]
- cmp r5, 0
- beq _080DFC98
- bl _call_via_r5
-_080DFC98:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end HandleShopMenuQuit
-
- thumb_func_start Task_GoToBuyOrSellMenu
-@ int Task_GoToBuyOrSellMenu(u8 taskId)
-Task_GoToBuyOrSellMenu: @ 80DFCA4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080DFCD2
- adds r0, r2, 0
- bl DestroyTask
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- ldrh r1, [r4, 0x12]
- orrs r0, r1
- bl SetMainCallback2
-_080DFCD2:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_GoToBuyOrSellMenu
-
- thumb_func_start MapPostLoadHook_ExitBuyOrSellMenu
-@ void MapPostLoadHook_ExitBuyOrSellMenu()
-MapPostLoadHook_ExitBuyOrSellMenu: @ 80DFCE0
- push {lr}
- bl pal_fill_black
- ldr r0, =Task_ExitSellMenu
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end MapPostLoadHook_ExitBuyOrSellMenu
-
- thumb_func_start Task_ExitSellMenu
-@ void Task_ExitSellMenu(u8 taskId)
-Task_ExitSellMenu: @ 80DFCF8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl IsWeatherNotFadingIn
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DFD36
- ldr r0, =gUnknown_02039F60
- ldrb r0, [r0, 0xF]
- cmp r0, 0x2
- bne _080DFD2C
- ldr r1, =gText_CanIHelpWithAnythingElse
- ldr r2, =ReturnToShopMenuAfterExitingSellMenu
- adds r0, r4, 0
- bl DisplayItemMessageOnField
- b _080DFD36
- .pool
-_080DFD2C:
- ldr r1, =gText_AnythingElseICanHelp
- ldr r2, =ReturnToShopMenuAfterExitingSellMenu
- adds r0, r5, 0
- bl DisplayItemMessageOnField
-_080DFD36:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_ExitSellMenu
-
- thumb_func_start ReturnToShopMenuAfterExitingSellMenu
-@ void ReturnToShopMenuAfterExitingSellMenu(u8 taskId)
-ReturnToShopMenuAfterExitingSellMenu: @ 80DFD44
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_02039F60
- ldrb r0, [r0, 0xF]
- bl CreateShopMenu
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ReturnToShopMenuAfterExitingSellMenu
-
- thumb_func_start CB2_BuyMenu
-@ void CB2_BuyMenu()
-CB2_BuyMenu: @ 80DFD64
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end CB2_BuyMenu
-
- thumb_func_start VBlankCB_BuyMenu
-@ void VBlankCB_BuyMenu()
-VBlankCB_BuyMenu: @ 80DFD80
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end VBlankCB_BuyMenu
-
- thumb_func_start CB2_InitBuyMenu
-@ void CB2_InitBuyMenu()
-CB2_InitBuyMenu: @ 80DFD94
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r5, r0, r1
- ldrb r4, [r5]
- cmp r4, 0
- beq _080DFE20
- cmp r4, 0x1
- bne _080DFDAC
- b _080DFEE4
-_080DFDAC:
- bl BuyMenuDrawGraphics
- bl BuyMenuAddScrollIndicatorArrows
- ldr r0, =Task_BuyMenu
- movs r1, 0x8
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gMultiuseListMenuTemplate
- movs r1, 0
- movs r2, 0
- bl ListMenuInit
- ldr r2, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r1, 0x16]
- movs r4, 0x1
- negs r4, r4
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- str r5, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, =VBlankCB_BuyMenu
- bl SetVBlankCallback
- ldr r0, =CB2_BuyMenu
- bl SetMainCallback2
- b _080DFEF4
- .pool
-_080DFE20:
- bl SetVBlankHBlankCallbacksToNull
- str r4, [sp, 0x8]
- movs r1, 0xE0
- lsls r1, 19
- ldr r2, =0x01000100
- add r0, sp, 0x8
- bl CpuFastSet
- bl ScanlineEffect_Stop
- bl reset_temp_tile_data_buffers
- bl FreeAllSpritePalettes
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl clear_scheduled_bg_copies_to_vram
- ldr r4, =gUnknown_02039F70
- ldr r0, =0x000020b0
- bl AllocZeroed
- str r0, [r4]
- ldr r1, =0x0000200b
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, =0x0000200d
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, =0x0000200e
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- bl BuyMenuBuildListMenuTemplate
- bl BuyMenuInitBgs
- movs r4, 0x20
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- bl BuyMenuInitWindows
- bl BuyMenuDecompressBgGraphics
- b _080DFEEE
- .pool
-_080DFEE4:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- bne _080DFEF4
-_080DFEEE:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_080DFEF4:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end CB2_InitBuyMenu
-
- thumb_func_start BuyMenuFreeMemory
-@ void BuyMenuFreeMemory()
-BuyMenuFreeMemory: @ 80DFEFC
- push {lr}
- ldr r0, =gUnknown_02039F70
- ldr r0, [r0]
- bl Free
- ldr r0, =gUnknown_02039F74
- ldr r0, [r0]
- bl Free
- ldr r0, =gUnknown_02039F78
- ldr r0, [r0]
- bl Free
- bl FreeAllWindowBuffers
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuFreeMemory
-
- thumb_func_start BuyMenuBuildListMenuTemplate
-@ void BuyMenuBuildListMenuTemplate()
-BuyMenuBuildListMenuTemplate: @ 80DFF2C
- push {r4-r7,lr}
- ldr r7, =gUnknown_02039F74
- ldr r4, =gUnknown_02039F60
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- lsls r0, 3
- bl Alloc
- str r0, [r7]
- ldr r5, =gUnknown_02039F78
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- lsls r0, 4
- bl Alloc
- str r0, [r5]
- movs r6, 0
- ldrh r0, [r4, 0xC]
- cmp r6, r0
- bcs _080DFF78
-_080DFF54:
- lsls r1, r6, 3
- ldr r0, [r7]
- adds r0, r1
- ldr r2, [r4, 0x8]
- lsls r1, r6, 1
- adds r1, r2
- ldrh r1, [r1]
- lsls r3, r6, 4
- ldr r2, [r5]
- adds r2, r3
- bl BuyMenuSetListEntry
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldrh r2, [r4, 0xC]
- cmp r6, r2
- bcc _080DFF54
-_080DFF78:
- ldr r4, =gUnknown_02039F78
- lsls r5, r6, 4
- ldr r0, [r4]
- adds r0, r5
- ldr r1, =gText_Cancel2
- bl StringCopy
- ldr r2, =gUnknown_02039F74
- ldr r0, [r2]
- lsls r1, r6, 3
- adds r1, r0
- ldr r0, [r4]
- adds r0, r5
- str r0, [r1]
- movs r0, 0x2
- negs r0, r0
- str r0, [r1, 0x4]
- ldr r3, =gMultiuseListMenuTemplate
- adds r1, r3, 0
- ldr r0, =gUnknown_08589A48
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldr r0, [r2]
- str r0, [r3]
- ldr r0, =gUnknown_02039F60
- ldrh r0, [r0, 0xC]
- adds r1, r0, 0x1
- strh r1, [r3, 0xC]
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, 0x8
- bls _080DFFDC
- movs r0, 0x8
- strh r0, [r3, 0xE]
- b _080DFFDE
- .pool
-_080DFFDC:
- strh r1, [r3, 0xE]
-_080DFFDE:
- ldr r0, =gUnknown_02039F70
- ldr r0, [r0]
- ldr r1, =gMultiuseListMenuTemplate
- ldrh r1, [r1, 0xE]
- ldr r2, =0x00002004
- adds r0, r2
- strh r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuBuildListMenuTemplate
-
- thumb_func_start BuyMenuSetListEntry
-@ void BuyMenuSetListEntry(struct ListMenuEntry *entry, u16 code, u8 *str)
-BuyMenuSetListEntry: @ 80E0000
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r2, 0
- lsls r1, 16
- lsrs r4, r1, 16
- ldr r0, =gUnknown_02039F60
- ldrb r0, [r0, 0xF]
- cmp r0, 0
- bne _080E0020
- adds r0, r4, 0
- adds r1, r5, 0
- bl CopyItemName
- b _080E002C
- .pool
-_080E0020:
- lsls r1, r4, 5
- ldr r0, =gDecorations + 1
- adds r1, r0
- adds r0, r5, 0
- bl StringCopy
-_080E002C:
- str r5, [r6]
- str r4, [r6, 0x4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuSetListEntry
-
- thumb_func_start BuyMenuPrintItemDescriptionAndShowItemIcon
-@ void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 menuEntryCode, bool8 isInitialSelection, struct ListMenu *listMenu)
-BuyMenuPrintItemDescriptionAndShowItemIcon: @ 80E003C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- beq _080E0054
- movs r0, 0x5
- bl PlaySE
-_080E0054:
- movs r0, 0x2
- negs r0, r0
- cmp r7, r0
- beq _080E0078
- lsls r4, r7, 16
- lsrs r0, r4, 16
- ldr r1, =gUnknown_02039F70
- ldr r1, [r1]
- ldr r2, =0x0000200c
- adds r1, r2
- ldrb r1, [r1]
- bl BuyMenuAddItemIcon
- b _080E008A
- .pool
-_080E0078:
- ldr r0, =0x0000ffff
- ldr r1, =gUnknown_02039F70
- ldr r1, [r1]
- ldr r2, =0x0000200c
- adds r1, r2
- ldrb r1, [r1]
- bl BuyMenuAddItemIcon
- lsls r4, r7, 16
-_080E008A:
- lsrs r4, 16
- mov r8, r4
- ldr r6, =gUnknown_02039F70
- ldr r0, [r6]
- ldr r5, =0x0000200c
- adds r0, r5
- ldrb r0, [r0]
- movs r4, 0x1
- adds r1, r4, 0
- eors r1, r0
- mov r0, r8
- bl BuyMenuRemoveItemIcon
- ldr r1, [r6]
- adds r1, r5
- ldrb r0, [r1]
- eors r0, r4
- strb r0, [r1]
- movs r0, 0x2
- negs r0, r0
- cmp r7, r0
- beq _080E00E8
- ldr r0, =gUnknown_02039F60
- ldrb r0, [r0, 0xF]
- cmp r0, 0
- bne _080E00D8
- mov r0, r8
- bl ItemId_GetDescription
- adds r4, r0, 0
- b _080E00EA
- .pool
-_080E00D8:
- ldr r0, =gDecorations
- lsls r1, r7, 5
- adds r0, 0x18
- adds r1, r0
- ldr r4, [r1]
- b _080E00EA
- .pool
-_080E00E8:
- ldr r4, =gText_QuitShopping
-_080E00EA:
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x2
- adds r1, r4, 0
- movs r2, 0x3
- movs r3, 0x1
- bl BuyMenuPrint
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuPrintItemDescriptionAndShowItemIcon
-
- thumb_func_start BuyMenuPrintPriceInList
-@ void BuyMenuPrintPriceInList(u8 windowId, s32 menuEntryCode, u8 y)
-BuyMenuPrintPriceInList: @ 80E0114
- push {r4-r7,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, 24
- lsrs r7, r2, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080E01AC
- ldr r0, =gUnknown_02039F60
- ldrb r0, [r0, 0xF]
- cmp r0, 0
- bne _080E0164
- ldr r5, =gStringVar1
- lsls r0, r1, 16
- lsrs r0, 16
- bl ItemId_GetPrice
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPriceReduction
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- asrs r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- b _080E0176
- .pool
-_080E0164:
- ldr r0, =gStringVar1
- ldr r2, =gDecorations
- lsls r1, 5
- adds r1, r2
- ldrh r1, [r1, 0x14]
- movs r2, 0
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
-_080E0176:
- ldr r4, =gStringVar4
- ldr r1, =gText_PokedollarVar1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x7
- adds r1, r4, 0
- movs r2, 0x78
- bl GetStringRightAlignXOffset
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- ldr r0, =gUnknown_08589AB3
- str r0, [sp, 0x8]
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0xC]
- str r4, [sp, 0x10]
- adds r0, r6, 0
- movs r1, 0x7
- adds r3, r7, 0
- bl AddTextPrinterParameterized4
-_080E01AC:
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuPrintPriceInList
-
- thumb_func_start BuyMenuAddScrollIndicatorArrows
-@ void BuyMenuAddScrollIndicatorArrows()
-BuyMenuAddScrollIndicatorArrows: @ 80E01C8
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r5, =gUnknown_02039F70
- ldr r2, [r5]
- ldr r4, =0x0000200b
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080E0206
- ldr r0, =gUnknown_02039F60
- ldrh r1, [r0, 0xC]
- adds r0, r1, 0x1
- cmp r0, 0x8
- ble _080E0206
- subs r0, r1, 0x7
- str r0, [sp]
- ldr r0, =0x00000834
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- ldr r1, =0x00002008
- adds r0, r2, r1
- str r0, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0xAC
- movs r2, 0xC
- movs r3, 0x94
- bl AddScrollIndicatorArrowPairParameterized
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1]
-_080E0206:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuAddScrollIndicatorArrows
-
- thumb_func_start BuyMenuRemoveScrollIndicatorArrows
-@ void BuyMenuRemoveScrollIndicatorArrows()
-BuyMenuRemoveScrollIndicatorArrows: @ 80E0224
- push {r4,lr}
- ldr r4, =gUnknown_02039F70
- ldr r0, [r4]
- ldr r2, =0x0000200b
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _080E0242
- bl RemoveScrollIndicatorArrowPair
- ldr r0, [r4]
- ldr r1, =0x0000200b
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
-_080E0242:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuRemoveScrollIndicatorArrows
-
- thumb_func_start BuyMenuPrintCursor
-@ void BuyMenuPrintCursor(u8 taskId, u8 colorSetId)
-BuyMenuPrintCursor: @ 80E0250
- push {r4,lr}
- sub sp, 0x8
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- bl ListMenuGetYCoordForPrintingArrowCursor
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r1, =gText_SelectorArrow2
- movs r0, 0
- str r0, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- bl BuyMenuPrint
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuPrintCursor
-
- thumb_func_start BuyMenuAddItemIcon
-@ void BuyMenuAddItemIcon(u16 id, u8 iconSlot)
-BuyMenuAddItemIcon: @ 80E0284
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r0, =gUnknown_02039F70
- ldr r4, =0x0000200d
- adds r1, r3, r4
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080E0310
- ldr r0, =gUnknown_02039F60
- ldrb r0, [r0, 0xF]
- cmp r0, 0
- beq _080E02AE
- ldr r0, =0x0000ffff
- cmp r2, r0
- bne _080E02F0
-_080E02AE:
- ldr r0, =0x0000083e
- adds r1, r3, r0
- adds r0, r1, 0
- bl AddItemIconSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080E0310
- strb r2, [r4]
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x18
- strh r1, [r0, 0x24]
- movs r1, 0x58
- strh r1, [r0, 0x26]
- b _080E0310
- .pool
-_080E02F0:
- lsls r0, r2, 24
- lsrs r0, 24
- ldr r2, =0x0000083e
- adds r1, r3, r2
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0x14
- movs r2, 0x54
- movs r3, 0x1
- bl AddDecorationIconObject
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080E0310
- strb r2, [r4]
-_080E0310:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuAddItemIcon
-
- thumb_func_start BuyMenuRemoveItemIcon
-@ void BuyMenuRemoveItemIcon(u16 id, u8 iconSlot)
-BuyMenuRemoveItemIcon: @ 80E031C
- push {r4,r5,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, =gUnknown_02039F70
- ldr r2, =0x0000200d
- adds r1, r4, r2
- ldr r0, [r0]
- adds r5, r0, r1
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _080E0356
- ldr r0, =0x0000083e
- adds r4, r0
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- movs r0, 0xFF
- strb r0, [r5]
-_080E0356:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuRemoveItemIcon
-
- thumb_func_start BuyMenuInitBgs
-@ void BuyMenuInitBgs()
-BuyMenuInitBgs: @ 80E036C
- push {r4,lr}
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_08589A60
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- ldr r4, =gUnknown_02039F70
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 4
- adds r1, r0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- movs r0, 0xC0
- lsls r0, 5
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 5
- adds r1, r0
- movs r0, 0x3
- bl SetBgTilemapBuffer
- movs r0, 0x10
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x12
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x16
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x18
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1A
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1E
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuInitBgs
-
- thumb_func_start BuyMenuDecompressBgGraphics
-@ void BuyMenuDecompressBgGraphics()
-BuyMenuDecompressBgGraphics: @ 80E0424
- push {lr}
- sub sp, 0x4
- ldr r1, =gBuyMenuFrame_Gfx
- movs r2, 0xE8
- lsls r2, 2
- ldr r3, =0x000003e3
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- bl decompress_and_copy_tile_data_to_vram
- ldr r0, =gBuyMenuFrame_Tilemap
- ldr r1, =gUnknown_02039F70
- ldr r1, [r1]
- bl LZDecompressWram
- ldr r0, =gMenuMoneyPal
- movs r1, 0xC0
- movs r2, 0x20
- bl LoadCompressedPalette
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuDecompressBgGraphics
-
- thumb_func_start BuyMenuInitWindows
-@ void BuyMenuInitWindows()
-BuyMenuInitWindows: @ 80E0468
- push {lr}
- ldr r0, =gUnknown_08589A70
- bl InitWindows
- bl DeactivateAllTextPrinters
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xD0
- bl LoadUserWindowBorderGfx
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xE0
- bl LoadMessageBoxGfx
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x2
- bl PutWindowTilemap
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuInitWindows
-
- thumb_func_start BuyMenuPrint
-@ void BuyMenuPrint(u8 windowId, u8 *str, u8 x, u8 y, u8 speed, u8 colorSetId)
-BuyMenuPrint: @ 80E04A4
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r6, [sp, 0x24]
- ldr r5, [sp, 0x28]
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- lsls r4, r5, 1
- adds r4, r5
- ldr r5, =gUnknown_08589AB0
- adds r4, r5
- str r4, [sp, 0x8]
- lsls r6, 24
- asrs r6, 24
- str r6, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r1, 0x1
- bl AddTextPrinterParameterized4
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuPrint
-
- thumb_func_start BuyMenuDisplayMessage
-@ void BuyMenuDisplayMessage(u8 taskId, u8 *str, void ( *callback)(u8 taskId))
-BuyMenuDisplayMessage: @ 80E04E8
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- bl GetPlayerTextSpeed
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- str r1, [sp]
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- str r6, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0x5
- movs r2, 0xA
- movs r3, 0xE
- bl DisplayMessageAndContinueTask
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end BuyMenuDisplayMessage
-
- thumb_func_start BuyMenuDrawGraphics
-@ void BuyMenuDrawGraphics()
-BuyMenuDrawGraphics: @ 80E0524
- push {lr}
- bl BuyMenuDrawMapGraphics
- bl BuyMenuCopyMenuBgToBg1TilemapBuffer
- movs r0, 0x13
- movs r1, 0xB
- bl AddMoneyLabelObject
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- bl GetMoney
- adds r3, r0, 0
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xD
- bl PrintMoneyAmountInMoneyBoxWithBorder
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuDrawGraphics
-
- thumb_func_start BuyMenuDrawMapGraphics
-@ void BuyMenuDrawMapGraphics()
-BuyMenuDrawMapGraphics: @ 80E0570
- push {lr}
- bl BuyMenuCollectEventObjectData
- bl BuyMenuDrawEventObjects
- bl BuyMenuDrawMapBg
- pop {r0}
- bx r0
- thumb_func_end BuyMenuDrawMapGraphics
-
- thumb_func_start BuyMenuDrawMapBg
-@ void BuyMenuDrawMapBg()
-BuyMenuDrawMapBg: @ 80E0584
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, =gMapHeader
- ldr r0, [r0]
- mov r9, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r1, sp
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x4
- strh r0, [r1]
- ldrh r0, [r4]
- subs r0, 0x4
- strh r0, [r4]
- movs r1, 0
- mov r10, r4
-_080E05B6:
- movs r4, 0
- lsls r7, r1, 16
- asrs r0, r7, 16
- mov r8, r0
-_080E05BE:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsls r4, 16
- asrs r5, r4, 16
- adds r0, r5
- mov r2, r10
- movs r3, 0
- ldrsh r1, [r2, r3]
- add r1, r8
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r5, 0
- mov r1, r8
- bl BuyMenuCheckForOverlapWithMenuBg
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E0608
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, r5
- mov r2, r10
- movs r3, 0
- ldrsh r1, [r2, r3]
- add r1, r8
- bl MapGridGetMetatileLayerTypeAt
- lsls r0, 24
- lsrs r5, r0, 24
- b _080E060A
- .pool
-_080E0608:
- movs r5, 0x1
-_080E060A:
- ldr r0, =0x000001ff
- cmp r6, r0
- bhi _080E062C
- asrs r0, r4, 16
- mov r2, r9
- ldr r1, [r2, 0x10]
- lsls r3, r6, 4
- ldr r2, [r1, 0xC]
- adds r2, r3
- asrs r1, r7, 16
- adds r3, r5, 0
- bl BuyMenuDrawMapMetatile
- b _080E0644
- .pool
-_080E062C:
- asrs r0, r4, 16
- mov r3, r9
- ldr r2, [r3, 0x14]
- ldr r3, =0xfffffe00
- adds r1, r6, r3
- lsls r1, 4
- ldr r2, [r2, 0xC]
- adds r2, r1
- asrs r1, r7, 16
- adds r3, r5, 0
- bl BuyMenuDrawMapMetatile
-_080E0644:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r4, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0xE
- ble _080E05BE
- adds r0, r7, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _080E05B6
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuDrawMapBg
-
thumb_func_start BuyMenuDrawMapMetatile
@ void BuyMenuDrawMapMetatile(u16 x, u16 y, u16 *src, u8 metatileLayerType)
BuyMenuDrawMapMetatile: @ 80E0670
@@ -1427,7 +29,7 @@ _080E0690:
beq _080E06F8
b _080E0728
_080E0696:
- ldr r6, =gUnknown_02039F70
+ ldr r6, =gShopDataPtr
ldr r0, [r6]
movs r2, 0xC0
lsls r2, 5
@@ -1446,7 +48,7 @@ _080E0696:
b _080E06E2
.pool
_080E06C0:
- ldr r6, =gUnknown_02039F70
+ ldr r6, =gShopDataPtr
ldr r0, [r6]
movs r2, 0x80
lsls r2, 5
@@ -1472,7 +74,7 @@ _080E06E2:
b _080E0728
.pool
_080E06F8:
- ldr r6, =gUnknown_02039F70
+ ldr r6, =gShopDataPtr
ldr r0, [r6]
movs r2, 0x80
lsls r2, 5
@@ -1542,7 +144,7 @@ BuyMenuCollectEventObjectData: @ 80E075C
adds r1, r4, 0
bl GetXYCoordsOneStepInFrontOfPlayer
movs r7, 0
- ldr r5, =gUnknown_02039F70
+ ldr r5, =gShopDataPtr
ldr r3, =0x00002010
movs r2, 0x10
_080E0780:
@@ -1560,7 +162,7 @@ _080E0780:
bls _080E0780
movs r7, 0
str r4, [sp, 0x8]
- ldr r1, =gUnknown_02039F70
+ ldr r1, =gShopDataPtr
mov r9, r1
mov r2, sp
str r2, [sp, 0x4]
@@ -1728,7 +330,7 @@ BuyMenuDrawEventObjects: @ 80E08F0
push {r5-r7}
sub sp, 0x4
movs r7, 0
- ldr r0, =gUnknown_02039F70
+ ldr r0, =gShopDataPtr
mov r8, r0
ldr r1, =gEventObjects
mov r10, r1
@@ -1883,7 +485,7 @@ _080E0A3A:
@ void BuyMenuCopyMenuBgToBg1TilemapBuffer()
BuyMenuCopyMenuBgToBg1TilemapBuffer: @ 80E0A40
push {r4-r6,lr}
- ldr r0, =gUnknown_02039F70
+ ldr r0, =gShopDataPtr
ldr r0, [r0]
movs r1, 0x80
lsls r1, 4
@@ -1921,7 +523,7 @@ _080E0A6A:
@ bool8 BuyMenuCheckForOverlapWithMenuBg(u16 x, u16 y)
BuyMenuCheckForOverlapWithMenuBg: @ 80E0A88
push {lr}
- ldr r2, =gUnknown_02039F70
+ ldr r2, =gShopDataPtr
ldr r2, [r2]
lsls r0, 1
lsls r1, 6
@@ -1979,7 +581,7 @@ _080E0AEA:
bl ListMenuHandleInputGetItemId
adds r5, r0, 0
ldrb r0, [r4, 0xE]
- ldr r7, =gUnknown_02039F70
+ ldr r7, =gShopDataPtr
ldr r2, [r7]
ldr r3, =0x00002008
adds r1, r2, r3
@@ -2011,7 +613,7 @@ _080E0B32:
ldrb r0, [r4, 0xE]
movs r1, 0x2
bl BuyMenuPrintCursor
- ldr r0, =gUnknown_02039F60
+ ldr r0, =gMartInfo
ldrb r0, [r0, 0xF]
cmp r0, 0
bne _080E0B80
@@ -2049,7 +651,7 @@ _080E0B92:
movs r1, 0x92
lsls r1, 3
adds r0, r1
- ldr r2, =gUnknown_02039F70
+ ldr r2, =gShopDataPtr
mov r8, r2
ldr r1, [r2]
movs r7, 0x80
@@ -2065,7 +667,7 @@ _080E0B92:
b _080E0C28
.pool
_080E0BD0:
- ldr r4, =gUnknown_02039F60
+ ldr r4, =gMartInfo
ldrb r0, [r4, 0xF]
cmp r0, 0
bne _080E0C38
@@ -2199,7 +801,7 @@ Task_BuyHowManyDialogueInit: @ 80E0CA4
lsls r1, 3
adds r0, r1
bl GetMoney
- ldr r1, =gUnknown_02039F70
+ ldr r1, =gShopDataPtr
ldr r4, [r1]
movs r2, 0x80
lsls r2, 6
@@ -2248,7 +850,7 @@ Task_BuyHowManyDialogueHandleInput: @ 80E0D88
ldr r1, =gTasks + 0x8
adds r5, r0, r1
adds r0, r5, 0x2
- ldr r7, =gUnknown_02039F70
+ ldr r7, =gShopDataPtr
ldr r1, [r7]
ldr r2, =0x0000200a
adds r1, r2
@@ -2389,7 +991,7 @@ BuyMenuTryMakePurchase: @ 80E0EDC
adds r4, r0, r1
movs r0, 0x1
bl PutWindowTilemap
- ldr r6, =gUnknown_02039F60
+ ldr r6, =gMartInfo
ldrb r0, [r6, 0xF]
cmp r0, 0
bne _080E0F40
@@ -2459,7 +1061,7 @@ BuyMenuSubtractMoney: @ 80E0F88
movs r4, 0x92
lsls r4, 3
adds r0, r4
- ldr r1, =gUnknown_02039F70
+ ldr r1, =gShopDataPtr
ldr r1, [r1]
movs r2, 0x80
lsls r2, 6
@@ -2475,7 +1077,7 @@ BuyMenuSubtractMoney: @ 80E0F88
movs r0, 0
movs r2, 0
bl PrintMoneyAmountInMoneyBox
- ldr r0, =gUnknown_02039F60
+ ldr r0, =gMartInfo
ldrb r0, [r0, 0xF]
cmp r0, 0
bne _080E0FF0
@@ -2623,7 +1225,7 @@ BuyMenuPrintItemQuantityAndPrice: @ 80E10EC
movs r0, 0x4
movs r1, 0x11
bl FillWindowPixelBuffer
- ldr r0, =gUnknown_02039F70
+ ldr r0, =gShopDataPtr
ldr r0, [r0]
movs r1, 0x80
lsls r1, 6
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
index 2c38140c6..e0cb5e21e 100644
--- a/asm/trainer_card.s
+++ b/asm/trainer_card.s
@@ -1141,8 +1141,8 @@ _080C308C:
.pool
thumb_func_end sub_80C3020
- thumb_func_start sub_80C30A4
-sub_80C30A4: @ 80C30A4
+ thumb_func_start TrainerCard_GenerateCardForPlayer
+TrainerCard_GenerateCardForPlayer: @ 80C30A4
push {r4,lr}
adds r4, r0, 0
movs r1, 0
@@ -1197,7 +1197,7 @@ _080C3108:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80C30A4
+ thumb_func_end TrainerCard_GenerateCardForPlayer
thumb_func_start sub_80C3120
sub_80C3120: @ 80C3120
@@ -4558,8 +4558,8 @@ _080C4E44:
.pool
thumb_func_end sub_80C4DDC
- thumb_func_start sub_80C4E74
-sub_80C4E74: @ 80C4E74
+ thumb_func_start TrainerCard_ShowLinkCard
+TrainerCard_ShowLinkCard: @ 80C4E74
push {r4-r6,lr}
adds r4, r0, 0
adds r6, r1, 0
@@ -4600,7 +4600,7 @@ sub_80C4E74: @ 80C4E74
pop {r0}
bx r0
.pool
- thumb_func_end sub_80C4E74
+ thumb_func_end TrainerCard_ShowLinkCard
thumb_func_start sub_80C4EE4
sub_80C4EE4: @ 80C4EE4
diff --git a/common_syms/field_control_avatar.txt b/common_syms/field_control_avatar.txt
new file mode 100644
index 000000000..0f336a407
--- /dev/null
+++ b/common_syms/field_control_avatar.txt
@@ -0,0 +1 @@
+gSelectedEventObject
diff --git a/data/battle_frontier_2.s b/data/battle_frontier_2.s
index dc38826a7..51b62461d 100644
--- a/data/battle_frontier_2.s
+++ b/data/battle_frontier_2.s
@@ -6,529 +6,6 @@
.section .rodata
-
- .align 2 @ struct, eight bytes x6 for names in different languages, then 0x28 more bytes of data
-gUnknown_08610970:: @ 8610970
- .string "サダヒロ$", 8
- .string "ALANN$", 8
- .string "ALAIN$", 8
- .string "ADELFO$", 8
- .string "CLAUS$", 8
- .string "TEO$", 8
- .byte 0xC9, 0xBD
- .2byte 0x43
- .2byte SPECIES_BEAUTIFLY, SPECIES_DUSTOX, SPECIES_ILLUMISE, SPECIES_SHIFTRY, SPECIES_BRELOOM, SPECIES_NINJASK, SPECIES_SHEDINJA, SPECIES_PINSIR, SPECIES_HERACROSS, SPECIES_VOLBEAT, 0
- .byte 0x1D, 8, 0x3e, 20, 0, 12, 1, 10, 0x30, 6, 0x44, 20, 0, 0
- .string "ヒロオ$", 8
- .string "LIONEL$", 8
- .string "LIONEL$", 8
- .string "CAIO$", 8
- .string "LUDWIG$", 8
- .string "LEO$", 8
- .byte 0x9, 0xCF
- .2byte 0x2B
- .2byte SPECIES_SWELLOW, SPECIES_SWALOT, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_TORKOAL, SPECIES_HARIYAMA, SPECIES_MIGHTYENA, SPECIES_LUDICOLO, SPECIES_CRAWDAUNT, SPECIES_WHISCASH, 1
- .byte 0x38, 12, 1, 10, 0x30, 6, 6, 10, 0x20, 0x10, 0x13, 0x22, 0, 0
- .string "ケイジ$", 8
- .string "SONNY$", 8
- .string "HERVE$", 8
- .string "FEDRO$", 8
- .string "WENZEL$", 8
- .string "SANTI$", 8
- .byte 0x34, 0x2E
- .2byte 0x26
- .2byte SPECIES_LINOONE, SPECIES_MIGHTYENA, SPECIES_WHISCASH, SPECIES_ZANGOOSE, SPECIES_SEVIPER, SPECIES_NINETALES, SPECIES_KECLEON, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_MACHAMP, 2
- .byte 1, 10, 10, 0x16, 0x15, 14, 0x30, 6, 0x3b, 12, 0x4, 12, 0, 0
- .string "ユラ$", 8
- .string "LAYLA$", 8
- .string "LAYLA$", 8
- .string "ASTRID$", 8
- .string "SONJA$", 8
- .string "LOLA$", 8
- .byte 0xEF, 0x84
- .2byte 0x47
- .2byte SPECIES_SWALOT, SPECIES_XATU, SPECIES_ALTARIA, SPECIES_GOLDUCK, SPECIES_FLYGON, SPECIES_ALAKAZAM, SPECIES_GARDEVOIR, SPECIES_WAILORD, SPECIES_GRUMPIG, SPECIES_MIGHTYENA, 3
- .byte 11, 16, 15, 0x1e, 0x39, 16, 0x21, 0x14, 0x3, 12, 0xff, 0xff, 0, 0
- .string "ヨウカ$", 8
- .string "MACY$", 8
- .string "AMELIE$", 8
- .string "CLEO$", 8
- .string "MARIA$", 8
- .string "ELISA$", 8
- .byte 0x43, 0x1E
- .2byte 0x27
- .2byte SPECIES_WIGGLYTUFF, SPECIES_LINOONE, SPECIES_KINGDRA, SPECIES_DELCATTY, SPECIES_RAICHU, SPECIES_FEAROW, SPECIES_STARMIE, SPECIES_MEDICHAM, SPECIES_SHIFTRY, SPECIES_BEAUTIFLY, 4
- .byte 15, 0x1e, 0x14, 16, 6, 16, 15, 0x28, 0x1c, 0x1c, 0x13, 0x1c, 0, 0
- .string "ヤスシ$", 8
- .string "DONTE$", 8
- .string "BRAHIM$", 8
- .string "GLAUCO$", 8
- .string "JOSEF$", 8
- .string "ROQUE$", 8
- .byte 0x9F, 0x37
- .2byte 0x30
- .2byte SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_AGGRON, SPECIES_MAGNETON, SPECIES_MACHAMP, SPECIES_ARMALDO, SPECIES_HERACROSS, SPECIES_NOSEPASS, SPECIES_EXPLOUD, SPECIES_MIGHTYENA, 5
- .byte 0x29, 0x0A, 0x08, 0x14, 0x2F, 0x10, 0x38, 0x16, 0x20, 0x08, 0x00, 0x0C, 0x00, 0
- .string "ミサオ$", 8
- .string "AMIRA$", 8
- .string "LAURE$", 8
- .string "DAFNE$", 8
- .string "AMELIE$", 8
- .string "LARA$", 8
- .byte 0x55, 0xF5
- .2byte 0x31
- .2byte SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_MAGNETON, SPECIES_MEDICHAM, SPECIES_MIGHTYENA, SPECIES_GLALIE, SPECIES_GOLEM, SPECIES_ELECTRODE, SPECIES_PELIPPER, SPECIES_SHARPEDO, 6
- .byte 0x0B, 0x0C, 0x3E, 0x12, 0x00, 0x0C, 0x31, 0x0A, 0x30, 0x14, 0x00, 0x0C, 0x00, 0x00
- .string "カズサ$", 8
- .string "KALI$", 8
- .string "JODIE$", 8
- .string "ILENIA$", 8
- .string "KARO$", 8
- .string "ELSA$", 8
- .byte 0x26, 0x8D
- .2byte 0x14
- .2byte SPECIES_NINETALES, SPECIES_ALAKAZAM, SPECIES_SCEPTILE, SPECIES_SALAMENCE, SPECIES_GOLDUCK, SPECIES_MAWILE, SPECIES_WEEZING, SPECIES_LANTURN, SPECIES_GARDEVOIR, SPECIES_MILOTIC, 7
- .byte 0x06, 0x0A, 0x20, 0x06, 0x1F, 0x0A, 0x02, 0x0A, 0x03, 0x0C, 0xFF, 0xFF, 0x00, 0x00
- .string "スミレ$", 8
- .string "ANNIE$", 8
- .string "ANNIE$", 8
- .string "IMELDA$", 8
- .string "INES$", 8
- .string "ROSA$", 8
- .byte 0xC, 0x80
- .2byte 0xD
- .2byte SPECIES_SCEPTILE, SPECIES_VILEPLUME, SPECIES_BELLOSSOM, SPECIES_ROSELIA, SPECIES_CORSOLA, SPECIES_FLYGON, SPECIES_BRELOOM, SPECIES_MILOTIC, SPECIES_ALTARIA, SPECIES_CRADILY, 8
- .byte 0x22, 0x1E, 0x33, 0x04, 0x0E, 0x02, 0x02, 0x0A, 0x1E, 0x10, 0x00, 0x0C, 0x00, 0x00
- .string "アキノリ$", 8
- .string "DILLEN$", 8
- .string "RENE$", 8
- .string "INDRO$", 8
- .string "DETLEF$", 8
- .string "PEDRO$", 8
- .byte 0x9f, 0x46
- .2byte 0
- .2byte SPECIES_SKARMORY, SPECIES_GOLEM, SPECIES_BLAZIKEN, SPECIES_CAMERUPT, SPECIES_DONPHAN, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_TROPIUS, SPECIES_SOLROCK, SPECIES_RHYDON, 9
- .byte 0x3D, 0x0A, 0x11, 0x10, 0x1E, 0x0E, 0x1C, 0x20, 0x04, 0x0C, 0xFF, 0xFF, 0x00, 0x00
- .string "トウゾウ$", 8
- .string "DALLAS$", 8
- .string "BRUNO$", 8
- .string "LEARCO$", 8
- .string "ANSGAR$", 8
- .string "MANOLO$", 8
- .byte 0xFC, 0x71
- .2byte 0x2D
- .2byte SPECIES_SEAKING, SPECIES_STARMIE, SPECIES_GOLDUCK, SPECIES_TENTACRUEL, SPECIES_OCTILLERY, SPECIES_GOREBYSS, SPECIES_GLALIE, SPECIES_WAILORD, SPECIES_SHARPEDO, SPECIES_KINGDRA, 10
- .byte 0x05, 0x0A, 0x06, 0x06, 0x0E, 0x16, 0x14, 0x0A, 0x00, 0x0C, 0xFF, 0xFF, 0x00, 0x00
- .string "セイヤ$", 8
- .string "FRANK$", 8
- .string "FRANK$", 8
- .string "OLINDO$", 8
- .string "FRANK$", 8
- .string "MAURO$", 8
- .byte 0x9E, 0xA3
- .2byte 0x3A
- .2byte SPECIES_QUAGSIRE, SPECIES_STARMIE, SPECIES_PELIPPER, SPECIES_CRAWDAUNT, SPECIES_WAILORD, SPECIES_GYARADOS, SPECIES_SWAMPERT, SPECIES_LANTURN, SPECIES_WHISCASH, SPECIES_SHUCKLE, 11
- .byte 0x0E, 0x28, 0x3D, 0x10, 0x0F, 0x24, 0x14, 0x0A, 0x23, 0x1E, 0x24, 0x10, 0x00, 0x00
- .string "リュウジ$", 8
- .string "LAMONT$", 8
- .string "XAV$", 8
- .string "ORFEO$", 8
- .string "JÜRGEN$", 8
- .string "JORGE$", 8
- .byte 0x90, 0xE5
- .2byte 0x19
- .2byte SPECIES_ABSOL, SPECIES_CROBAT, SPECIES_EXPLOUD, SPECIES_MAGNETON, SPECIES_SHARPEDO, SPECIES_MANECTRIC, SPECIES_METAGROSS, SPECIES_ELECTRODE, SPECIES_NOSEPASS, SPECIES_WEEZING, 12
- .byte 0x20, 0x10, 0x2E, 0x06, 0x0B, 0x10, 0x22, 0x1E, 0x0F, 0x1E, 0x0B, 0x10, 0x00, 0x00
- .string "カツアキ$", 8
- .string "TYRESE$", 8
- .string "ANDY$", 8
- .string "PARIDE$", 8
- .string "DAVID$", 8
- .string "CHICHO$", 8
- .byte 0x18, 0xD0
- .2byte 10
- .2byte SPECIES_BLAZIKEN, SPECIES_GOLEM, SPECIES_MACHAMP, SPECIES_RHYDON, SPECIES_HARIYAMA, SPECIES_AGGRON, SPECIES_MEDICHAM, SPECIES_ZANGOOSE, SPECIES_VIGOROTH, SPECIES_SLAKING, 13
- .byte 0x29, 0x0A, 0x3A, 0x06, 0x15, 0x0E, 0x35, 0x14, 0x34, 0x10, 0x1E, 0x06, 0x00, 0x00
- .string "トシミツ$", 8
- .string "DANTE$", 8
- .string "DANTE$", 8
- .string "RAOUL$", 8
- .string "LOTHAR$", 8
- .string "PABLO$", 8
- .byte 0x75, 0xBC
- .2byte 14
- .2byte SPECIES_SCEPTILE, SPECIES_SANDSLASH, SPECIES_FLYGON, SPECIES_CLAYDOL, SPECIES_ARMALDO, SPECIES_CROBAT, SPECIES_CRADILY, SPECIES_SOLROCK, SPECIES_LUNATONE, SPECIES_GOLEM, 14
- .byte 0x01, 0x0A, 0x17, 0x10, 0x43, 0x12, 0x22, 0x1E, 0x0B, 0x10, 0x0F, 0x28, 0x00, 0x00
- .string "ローウェン$", 8
- .string "ARTURO$", 8
- .string "ARTURO$", 8
- .string "ROMOLO$", 8
- .string "BRIAN$", 8
- .string "ARTURO$", 8
- .byte 0x2, 0xFA
- .2byte 0x20
- .2byte SPECIES_ABSOL, SPECIES_MIGHTYENA, SPECIES_ALAKAZAM, SPECIES_BANETTE, SPECIES_NINETALES, SPECIES_CLAYDOL, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_WALREIN, SPECIES_DUSCLOPS, 15
- .byte 0x0F, 0x1E, 0x04, 0x14, 0x2F, 0x10, 0x06, 0x10, 0x20, 0x10, 0x03, 0x0E, 0x00, 0x00
-
- .align 2
-gUnknown_08610EF0:: @ 8610EF0
- .4byte gText_082B7229
- .4byte gText_082B731C
- .4byte gText_082B735B
- .4byte gText_082B7423
- .4byte gText_082B74C1
- .4byte gText_082B756F
- .4byte gText_082B75B2
- .4byte gText_082B763F
- .4byte gText_082B76AC
- .4byte gText_082B7772
- .4byte gText_082B77CE
- .4byte gText_082B7871
- .4byte gText_082B78D4
- .4byte gText_082B7B1A
- .4byte gText_082B7C13
- .4byte gText_082B7D18
- .4byte gText_082B7DD4
- .4byte gText_082B7EE5
- .4byte gText_082B7F35
- .4byte gText_082B7FE8
- .4byte gText_082B8087
- .4byte gText_082B822B
- .4byte gText_082B8286
- .4byte gText_082B8356
- .4byte gText_082B83CE
- .4byte gText_082B84FC
- .4byte gText_082B8559
- .4byte gText_082B8656
- .4byte gText_082B86EA
- .4byte gText_082B87DA
- .4byte gText_082B887C
- .4byte gText_082B8957
- .4byte gText_082B89C6
- .4byte gText_082B8ACF
- .4byte gText_082B8B66
- .4byte gText_082B8C20
- .4byte gText_082B8CAA
- .4byte gText_082B8DD3
- .4byte gText_082B8E24
- .4byte gText_082B8ED5
- .4byte gText_082B8F45
- .4byte gText_082B905F
- .4byte gText_082B910E
- .4byte gText_082B9204
- .4byte gText_082B929C
- .4byte gText_082B9438
- .4byte gText_082B9488
- .4byte gText_082B9564
- .4byte gText_082B95D8
- .4byte gText_082B9763
- .4byte gText_082B97E5
- .4byte gText_082B989A
- .4byte gText_082B992D
- .4byte gText_082B9A84
- .4byte gText_082B9AB9
- .4byte gText_082B9B76
- .4byte gText_082B9BF2
- .4byte gText_082B9D83
- .4byte gText_082B9DF9
- .4byte gText_082B9EAA
- .4byte gText_082B9F55
- .4byte gText_082BA084
- .4byte gText_082BA11D
- .4byte gText_082BA1F3
-
- .align 2
-gUnknown_08610FF0:: @ 8610FF0
- .4byte gText_082BE50D
- .4byte gText_082BE5F5
- .4byte gText_082BE679
- .4byte gText_082BE71E
- .4byte gText_082BE762
- .4byte gText_082BE7F8
- .4byte gText_082BE850
- .4byte gText_082BE99C
- .4byte gText_082BEA1B
- .4byte gText_082BEAE9
- .4byte gText_082BEB72
- .4byte gText_082BEC8E
- .4byte gText_082BED16
- .4byte gText_082BEE29
- .4byte gText_082BEEB4
- .4byte gText_082BEFE2
- .4byte gText_082BF04E
- .4byte gText_082BF11D
- .4byte gText_082BF1A8
- .4byte gText_082BF268
- .4byte gText_082BF2D1
- .4byte gText_082BF3CF
- .4byte gText_082BF46A
- .4byte gText_082BF551
- .4byte gText_082BF5C3
- .4byte gText_082BF6E5
- .4byte gText_082BF773
- .4byte gText_082BF869
- .4byte gText_082BF8DD
- .4byte gText_082BF9BA
- .4byte gText_082BFA5A
- .4byte gText_082BFB4E
-
- .align 2
-gUnknown_08611070:: @ 8611070
- .4byte gText_082BA2A3
- .4byte gText_082BA34E
- .4byte gText_082BA380
- .4byte gText_082BA3D2
- .4byte gText_082BA448
- .4byte gText_082BA4D3
- .4byte gText_082BA58C
- .4byte gText_082BA5BF
- .4byte gText_082BA5F3
- .4byte gText_082BA635
- .4byte gText_082BA6E6
- .4byte gText_082BA742
- .4byte gText_082BA770
- .4byte gText_082BA78F
- .4byte gText_082BA7D8
- .4byte gText_082BA867
- .4byte gText_082BA96B
- .4byte gText_082BA9B7
- .4byte gText_082BAA1B
- .4byte gText_082BAA81
- .4byte gText_082BAB22
- .4byte gText_082BAC43
- .4byte gText_082BAC78
- .4byte gText_082BAD17
- .4byte gText_082BADB6
- .4byte gText_082BAE36
- .4byte gText_082BAF4E
- .4byte gText_082BAF8F
- .4byte gText_082BAFDB
- .4byte gText_082BB05F
- .4byte gText_082BB0D4
- .4byte gText_082BB18C
- .4byte gText_082BB1CE
- .4byte gText_082BB242
- .4byte gText_082BB2D9
- .4byte gText_082BB370
- .4byte gText_082BB4C3
- .4byte gText_082BB4FB
- .4byte gText_082BB575
- .4byte gText_082BB5E1
- .4byte gText_082BB656
- .4byte gText_082BB6E5
- .4byte gText_082BB72C
- .4byte gText_082BB7A2
- .4byte gText_082BB84A
- .4byte gText_082BB8CD
- .4byte gText_082BB970
- .4byte gText_082BB9AE
- .4byte gText_082BBA05
- .4byte gText_082BBA6C
- .4byte gText_082BBB01
- .4byte gText_082BBC1C
- .4byte gText_082BBC4B
- .4byte gText_082BBCF6
- .4byte gText_082BBD90
- .4byte gText_082BBE0B
- .4byte gText_082BBEE5
- .4byte gText_082BBF25
- .4byte gText_082BBFA4
- .4byte gText_082BC024
- .4byte gText_082BC0C8
- .4byte gText_082BC213
- .4byte gText_082BC247
- .4byte gText_082BC2DD
- .4byte gText_082BC373
- .4byte gText_082BC40E
- .4byte gText_082BC514
- .4byte gText_082BC555
- .4byte gText_082BC5CE
- .4byte gText_082BC666
- .4byte gText_082BC714
- .4byte gText_082BC808
- .4byte gText_082BC84D
- .4byte gText_082BC8EA
- .4byte gText_082BC984
- .4byte gText_082BCA4D
- .4byte gText_082BCB75
- .4byte gText_082BCBA6
- .4byte gText_082BCBFC
- .4byte gText_082BCCA4
-
- .align 2
-gUnknown_086111B0:: @ 86111B0
- .4byte gText_082BFBF2
- .4byte gText_082BFCAE
- .4byte gText_082BFD26
- .4byte gText_082BFDB1
- .4byte gText_082BFE24
- .4byte gText_082BFEAD
- .4byte gText_082BFF0A
- .4byte gText_082C0032
- .4byte gText_082C0090
- .4byte gText_082C016E
- .4byte gText_082C01F7
- .4byte gText_082C034C
- .4byte gText_082C03CA
- .4byte gText_082C046E
- .4byte gText_082C04F9
- .4byte gText_082C0598
- .4byte gText_082C0602
- .4byte gText_082C06D8
- .4byte gText_082C074A
- .4byte gText_082C0809
- .4byte gText_082C086E
- .4byte gText_082C0982
- .4byte gText_082C0A1D
- .4byte gText_082C0AFD
- .4byte gText_082C0B6F
- .4byte gText_082C0C7D
- .4byte gText_082C0D0B
- .4byte gText_082C0DFE
- .4byte gText_082C0E71
- .4byte gText_082C0F6D
- .4byte gText_082C1003
- .4byte gText_082C1122
-
- .align 2
-gUnknown_08611230:: @ 8611230
- .4byte gText_082BCD68
- .4byte gText_082BCE64
- .4byte gText_082BCEF2
- .4byte gText_082BCF61
- .4byte gText_082BCFA1
- .4byte gText_082BD03C
- .4byte gText_082BD06D
- .4byte gText_082BD18A
- .4byte gText_082BD222
- .4byte gText_082BD325
- .4byte gText_082BD3B1
- .4byte gText_082BD493
- .4byte gText_082BD51C
- .4byte gText_082BD609
- .4byte gText_082BD697
- .4byte gText_082BD797
- .4byte gText_082BD806
- .4byte gText_082BD8F5
- .4byte gText_082BD9BE
- .4byte gText_082BDAE1
- .4byte gText_082BDB4E
- .4byte gText_082BDC6B
- .4byte gText_082BDD0D
- .4byte gText_082BDDEC
- .4byte gText_082BDE68
- .4byte gText_082BDF4D
- .4byte gText_082BDFD8
- .4byte gText_082BE0FD
- .4byte gText_082BE189
- .4byte gText_082BE2A5
- .4byte gText_082BE33E
- .4byte gText_082BE46C
-
- .align 2
-gUnknown_086112B0:: @ 86112B0
- .4byte gText_082C11D1
- .4byte gText_082C12D5
- .4byte gText_082C13AB
- .4byte gText_082C1444
- .4byte gText_082C1501
- .4byte gText_082C15B6
- .4byte gText_082C165E
- .4byte gText_082C174F
- .4byte gText_082C1862
- .4byte gText_082C19A0
- .4byte gText_082C1A76
- .4byte gText_082C1C16
- .4byte gText_082C1CF5
- .4byte gText_082C1DC1
- .4byte gText_082C1EDC
- .4byte gText_082C1FEC
- .4byte gText_082C20D1
- .4byte gText_082C21FF
- .4byte gText_082C231C
- .4byte gText_082C2407
- .4byte gText_082C24B5
- .4byte gText_082C25B1
- .4byte gText_082C2707
- .4byte gText_082C27D4
- .4byte gText_082C28D6
- .4byte gText_082C2A0B
- .4byte gText_082C2B50
- .4byte gText_082C2C77
- .4byte gText_082C2D67
- .4byte gText_082C2E41
- .4byte gText_082C2EF5
- .4byte gText_082C3023
-
- .align 2
-gUnknown_08611330:: @ 8611330
- .4byte gText_082B6EA5
- .4byte gText_082B6EEC
- .4byte gText_082B6F16
- .4byte gText_082B6F4C
- .4byte gText_082B6F92
- .4byte gText_082B6FC9
- .4byte gText_082B700C
- .4byte gText_082B703A
- .4byte gText_082B706A
- .4byte gText_082B709C
- .4byte gText_082B70CC
- .4byte gText_082B710A
- .4byte gText_082B714D
- .4byte gText_082B7185
- .4byte gText_082B71C1
- .4byte gText_082B71F9
-
-gUnknown_08611370:: @ 8611370
- .byte 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00
- .byte 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01
- .byte 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01
- .byte 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01
- .byte 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01
- .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
- .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01
- .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
- .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
- .byte 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
- .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01
- .byte 0x01, 0x01, 0x01
-
-gUnknown_086114D3:: @ 86114D3
- .byte 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_086114E0:: @ 86114E0
- .4byte sub_81A093C
- .4byte sub_81A0964
- .4byte sub_81A0978
- .4byte sub_819FC60
- .4byte sub_81A0984
- .4byte sub_81A0990
- .4byte sub_81A09D0
- .4byte sub_81A0A20
- .4byte sub_81A0C9C
- .4byte sub_81A087C
- .4byte sub_81A1638
- .4byte sub_81A0CC0
- .4byte sub_81A09B4
- .4byte sub_81A0D40
- .4byte sub_81A0DD4
- .4byte sub_81A0FE4
- .4byte sub_81A0FFC
- .4byte sub_81A0D80
- .4byte sub_81A11F8
- .4byte sub_81A1218
- .4byte sub_81A1224
- .4byte sub_81A1438
- .4byte sub_81A150C
- .4byte sub_81A15A4
- .4byte sub_81A1644
- .4byte sub_81A1370
-
- .align 2
-gUnknown_08611548:: @ 8611548
- .byte 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09
-
.align 2
gUnknown_08611550:: @ 8611550
.byte 0x23, 0x46, 0x23, 0x01, 0x04, 0x09, 0x05, 0x00, 0x15, 0x2a, 0x15, 0x01, 0x1c, 0x38, 0x1c, 0x01, 0x15, 0x2a, 0x15, 0x01, 0x1c, 0x8c, 0x38, 0x01, 0x15, 0x46, 0x23, 0x00
diff --git a/data/cable_club.s b/data/cable_club.s
deleted file mode 100644
index f62b0b90a..000000000
--- a/data/cable_club.s
+++ /dev/null
@@ -1,16 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
- .align 2, 0
-
- .align 2
-gUnknown_08550594:: @ 8550594
- window_template 0x00, 0x10, 0x0b, 0x0b, 0x02, 0x0f, 0x0125
-
- .align 2
-gUnknown_0855059C:: @ 855059C
- .4byte gText_BronzeCard
- .4byte gText_CopperCard
- .4byte gText_SilverCard
- .4byte gText_GoldCard
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 56658a994..77c0f44cc 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -431,7 +431,7 @@ gStdScripts_End:: @ 81DC2CC
.include "data/maps/SecretBase_YellowCave3/scripts.inc"
.include "data/maps/SecretBase_YellowCave4/scripts.inc"
-gUnknown_0823B4BB:: @ 823B4BB
+EventScript_SecretBasePC:: @ 823B4BB
lockall
playse 2
message Text_276805
@@ -492,7 +492,7 @@ EventScript_23B585:: @ 823B585
special sub_80E9C88
end
-gUnknown_0823B589:: @ 823B589
+EventScript_RecordMixingSecretBasePC:: @ 823B589
lockall
message Text_276805
playse 2
@@ -581,13 +581,13 @@ EventScript_23B680:: @ 823B680
special sub_80EBB28
end
-gUnknown_0823B684:: @ 823B684
+EventScript_SecretBaseSandOrnament:: @ 823B684
special sub_80EBE7C
dofieldeffect 52
waitstate
end
-gUnknown_0823B68C:: @ 823B68C
+EventScript_SecretBaseShieldOrToyTV:: @ 823B68C
special sub_80FAC78
compare VAR_RESULT, 0
goto_eq EventScript_23B6BC
@@ -1685,7 +1685,7 @@ EventScript_271CA1:: @ 8271CA1
setvar VAR_RESULT, 0
return
-EventScript_271CB7:: @ 8271CB7
+EventScript_HiddenItemScript:: @ 8271CB7
lockall
waitse
giveitem VAR_0x8005, 1
@@ -1761,7 +1761,7 @@ EventScript_271D89:: @ 8271D89
release
end
-EventScript_271D92:: @ 8271D92
+EventScript_PC:: @ 8271D92
lockall
setvar VAR_0x8004, 0
special DoPCTurnOnEffect
@@ -1902,7 +1902,7 @@ Route109_EventScript_271E95:: @ 8271E95
setvar VAR_0x4096, 0
return
-EventScript_271EA0:: @ 8271EA0
+EventScript_UseSurf:: @ 8271EA0
checkpartymove MOVE_SURF
compare VAR_RESULT, 6
goto_eq EventScript_271ED6
@@ -2201,7 +2201,7 @@ SSTidalRooms_EventScript_272083:: @ 8272083
fadescreen 0
return
-EventScript_27208F:: @ 827208F
+EventScript_RegionMap:: @ 827208F
lockall
msgbox LittlerootTown_BrendansHouse_2F_Text_1F8820, 4
fadescreen 1
@@ -3074,31 +3074,31 @@ Movement_2725CB:: @ 82725CB
walk_up
step_end
-EventScript_2725CE:: @ 82725CE
+EventScript_PictureBookShelf:: @ 82725CE
msgbox Text_2A81E5, 3
end
-EventScript_2725D7:: @ 82725D7
+EventScript_BookShelf:: @ 82725D7
msgbox Text_2A820D, 3
end
-EventScript_2725E0:: @ 82725E0
+EventScript_PokemonCenterBookshelf:: @ 82725E0
msgbox Text_2A8232, 3
end
-EventScript_2725E9:: @ 82725E9
+EventScript_Vase:: @ 82725E9
msgbox Text_2A8276, 3
end
-EventScript_2725F2:: @ 82725F2
+EventScript_TrashCan:: @ 82725F2
msgbox Text_2A82B3, 3
end
-EventScript_2725FB:: @ 82725FB
+EventScript_ShopShelf:: @ 82725FB
msgbox Text_2A82BF, 3
end
-EventScript_272604:: @ 8272604
+EventScript_Blueprint:: @ 8272604
msgbox Text_2A82F7, 3
end
@@ -3322,7 +3322,7 @@ EventScript_2736B3:: @ 82736B3
msgbox gUnknown_08272C98, 3
end
-EventScript_2736BC:: @ 82736BC
+EventScript_Poison:: @ 82736BC
lockall
special sub_80F972C
waitstate
@@ -3565,7 +3565,7 @@ RustboroCity_DevonCorp_2F_EventScript_273811:: @ 8273811
release
end
-EventScript_27381B:: @ 827381B
+EventScript_Questionnaire:: @ 827381B
lockall
msgbox gUnknown_0827339F, 5
compare VAR_RESULT, 0
@@ -5859,7 +5859,7 @@ EventScript_2926F8:: @ 82926F8
.include "data/scripts/players_house.inc"
-EventScript_292DE5:: @ 8292DE5
+EventScript_RunningShoesManual:: @ 8292DE5
msgbox LittlerootTown_BrendansHouse_1F_Text_1F7F66, 3
end
@@ -6010,7 +6010,7 @@ MirageTower_3F_MapScript2_2A8327: @ 82A8327
MtPyre_2F_MapScript2_2A8327: @ 82A8327
SkyPillar_2F_MapScript2_2A8327: @ 82A8327
SkyPillar_4F_MapScript2_2A8327: @ 82A8327
- map_script_2 VAR_ICE_STEP_COUNT, 0, gUnknown_082A8337
+ map_script_2 VAR_ICE_STEP_COUNT, 0, EventScript_FallDownHole
.2byte 0
GraniteCave_B1F_MapScript1_2A8331: @ 82A8331
@@ -6020,7 +6020,7 @@ MtPyre_2F_MapScript1_2A8331: @ 82A8331
copyvar VAR_ICE_STEP_COUNT, 0x1
end
-gUnknown_082A8337:: @ 82A8337
+EventScript_FallDownHole:: @ 82A8337
lockall
delay 20
applymovement 255, GraniteCave_B1F_Movement_2A8369
@@ -9853,2983 +9853,8 @@ gText_MrStone_Pokenav_2B67ED:: @ 82B67ED
.string "Hm! You must come visit us at DEVON\n"
.string "sometime!$"
-BattleFrontier_BattleTowerLobby_EventScript_2B688D:: @ 82B688D
- lock
- faceplayer
- setvar VAR_0x8004, 0
- special sub_81A085C
- compare VAR_RESULT, 0
- goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6900
- setvar VAR_0x8004, 10
- special sub_81A085C
- compare VAR_0x8004, 0
- goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B68BE
- checkflag FLAG_0x934
- goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6E90
-
-BattleFrontier_BattleTowerLobby_EventScript_2B68BE:: @ 82B68BE
- setvar VAR_0x8004, 11
- special sub_81A085C
- compare VAR_RESULT, 2
- goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B69D3
- compare VAR_RESULT, 4
- goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6ACF
- compare VAR_RESULT, 3
- goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6C77
- compare VAR_RESULT, 1
- goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6D5C
- compare VAR_RESULT, 5
- goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6DD4
- release
- releaseall
- end
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6900:: @ 82B6900
- setvar VAR_0x8004, 16
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 6
- special sub_81A085C
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 0
- special sub_81A085C
- waitstate
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6925:: @ 82B6925
- setvar VAR_0x8004, 7
- setvar VAR_0x8005, 6
- special sub_81A085C
- waitstate
- compare VAR_RESULT, 1
- goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B69BB
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 2
- special sub_81A085C
- waitstate
- setvar VAR_0x8004, 7
- setvar VAR_0x8005, 0
- special sub_81A085C
- waitstate
- setvar VAR_0x8004, 1
- setorcopyvar VAR_0x8005, VAR_RESULT
- addvar VAR_0x8005, 1
- special sub_81A085C
- setvar VAR_0x8004, 3
- special sub_81A085C
- setvar VAR_0x8004, 16
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 8
- special sub_81A085C
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 1
- setvar VAR_0x8006, 3
- special sub_81A085C
- waitstate
- call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D
- release
- releaseall
- switch VAR_FACING
- case 2, BattleFrontier_BattleTowerLobby_EventScript_2B6E54
- goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72
- end
-
-BattleFrontier_BattleTowerLobby_EventScript_2B69BB:: @ 82B69BB
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 1
- special sub_81A085C
- waitstate
- goto BattleFrontier_BattleTowerLobby_EventScript_2B6925
-
-BattleFrontier_BattleTowerLobby_EventScript_2B69D3:: @ 82B69D3
- setvar VAR_0x8004, 14
- setvar VAR_0x8005, 2
- special sub_81A085C
- setvar VAR_0x8004, 16
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 0
- special sub_81A085C
- setvar VAR_0x8004, 16
- setvar VAR_0x8005, 1
- setvar VAR_0x8006, 1
- special sub_81A085C
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 6
- special sub_81A085C
- waitstate
- setvar VAR_0x8004, 7
- setvar VAR_0x8005, 2
- special sub_81A085C
- waitstate
- copyvar VAR_0x8005, VAR_RESULT
- compare VAR_0x8005, 0
- call_if 1, BattleFrontier_BattleTowerLobby_EventScript_2B6ABA
- compare VAR_0x8005, 1
- call_if 1, BattleFrontier_BattleTowerLobby_EventScript_2B6AC0
- setvar VAR_0x8004, 12
- special sub_81A085C
- copyvar VAR_0x8006, VAR_RESULT
- setvar VAR_0x8004, 13
- special sub_81A085C
- setvar VAR_0x8004, 5
- special sub_81A085C
- setvar VAR_0x8004, 12
- special sub_81A085C
- compare VAR_RESULT, 3
- call_if 1, BattleFrontier_BattleTowerLobby_EventScript_2B6AC6
- setvar VAR_0x8004, 16
- setvar VAR_0x8005, 0
- copyvar VAR_0x8006, VAR_0x8007
- special sub_81A085C
- setvar VAR_0x8004, 15
- special sub_81A085C
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 1
- setvar VAR_0x8006, 7
- special sub_81A085C
- waitstate
- call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D
- release
- releaseall
- switch VAR_FACING
- case 2, BattleFrontier_BattleTowerLobby_EventScript_2B6E54
- goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72
- end
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6ABA:: @ 82B6ABA
- setvar VAR_0x8007, 0
- return
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6AC0:: @ 82B6AC0
- setvar VAR_0x8007, 1
- return
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6AC6:: @ 82B6AC6
- setvar VAR_0x8004, 4
- special sub_81A085C
- return
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6ACF:: @ 82B6ACF
- setvar VAR_0x8004, 14
- setvar VAR_0x8005, 4
- special sub_81A085C
- setvar VAR_0x8004, 16
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 2
- special sub_81A085C
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 1
- setvar VAR_0x8006, 10
- special sub_81A085C
- waitstate
- setvar VAR_0x8004, 15
- special sub_81A085C
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6B09:: @ 82B6B09
- fadescreen 1
- setvar VAR_RESULT, 0
- setvar VAR_0x8004, 19
- special sub_81A085C
- waitstate
- compare VAR_RESULT, 0
- goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B81
- setvar VAR_0x8004, 20
- special sub_81A085C
- compare VAR_RESULT, 0
- goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6C0C
- setvar VAR_0x8004, 16
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 5
- special sub_81A085C
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 1
- setvar VAR_0x8006, 12
- special sub_81A085C
- waitstate
- setvar VAR_0x8004, 5
- special sub_81A085C
- call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D
- release
- releaseall
- switch VAR_FACING
- case 2, BattleFrontier_BattleTowerLobby_EventScript_2B6E54
- goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72
- end
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6B81:: @ 82B6B81
- setvar VAR_0x8004, 14
- setvar VAR_0x8005, 4
- special sub_81A085C
- setvar VAR_0x8004, 16
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 2
- special sub_81A085C
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 13
- special sub_81A085C
- waitstate
- setvar VAR_0x8004, 7
- setvar VAR_0x8005, 4
- special sub_81A085C
- waitstate
- setvar VAR_0x8004, 15
- special sub_81A085C
- compare VAR_RESULT, 0
- goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B09
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6BD4:: @ 82B6BD4
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 1
- setvar VAR_0x8006, 14
- special sub_81A085C
- waitstate
- setvar VAR_0x8004, 5
- special sub_81A085C
- call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D
- release
- releaseall
- switch VAR_FACING
- case 2, BattleFrontier_BattleTowerLobby_EventScript_2B6E54
- goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72
- end
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6C0C:: @ 82B6C0C
- setvar VAR_0x8004, 14
- setvar VAR_0x8005, 4
- special sub_81A085C
- setvar VAR_0x8004, 16
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 5
- special sub_81A085C
- setvar VAR_0x8004, 16
- setvar VAR_0x8005, 1
- setvar VAR_0x8006, 2
- special sub_81A085C
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 16
- special sub_81A085C
- waitstate
- setvar VAR_0x8004, 7
- setvar VAR_0x8005, 4
- special sub_81A085C
- waitstate
- setvar VAR_0x8004, 15
- special sub_81A085C
- compare VAR_RESULT, 0
- goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B09
- goto BattleFrontier_BattleTowerLobby_EventScript_2B6BD4
- end
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6C77:: @ 82B6C77
- setvar VAR_0x8004, 14
- setvar VAR_0x8005, 3
- special sub_81A085C
- setvar VAR_0x8004, 16
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 2
- special sub_81A085C
- setvar VAR_0x8004, 16
- setvar VAR_0x8005, 1
- setvar VAR_0x8006, 3
- special sub_81A085C
- setvar VAR_0x8004, 16
- setvar VAR_0x8005, 2
- setvar VAR_0x8006, 4
- special sub_81A085C
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 8
- special sub_81A085C
- waitstate
- setvar VAR_0x8004, 7
- setvar VAR_0x8005, 3
- special sub_81A085C
- waitstate
- copyvar VAR_0x8005, VAR_RESULT
- compare VAR_0x8005, 0
- call_if 1, BattleFrontier_BattleTowerLobby_EventScript_2B6D50
- compare VAR_0x8005, 1
- call_if 1, BattleFrontier_BattleTowerLobby_EventScript_2B6D56
- setvar VAR_0x8004, 17
- special sub_81A085C
- setvar VAR_0x8004, 5
- special sub_81A085C
- setvar VAR_0x8004, 16
- setvar VAR_0x8005, 0
- copyvar VAR_0x8006, VAR_0x8007
- special sub_81A085C
- setvar VAR_0x8004, 15
- special sub_81A085C
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 1
- setvar VAR_0x8006, 9
- special sub_81A085C
- waitstate
- call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D
- release
- releaseall
- switch VAR_FACING
- case 2, BattleFrontier_BattleTowerLobby_EventScript_2B6E54
- goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72
- end
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6D50:: @ 82B6D50
- setvar VAR_0x8007, 3
- return
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6D56:: @ 82B6D56
- setvar VAR_0x8007, 4
- return
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6D5C:: @ 82B6D5C
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 4
- special sub_81A085C
- waitstate
- setvar VAR_0x8004, 7
- setvar VAR_0x8005, 1
- special sub_81A085C
- waitstate
- copyvar VAR_0x8005, VAR_RESULT
- setvar VAR_0x8004, 18
- special sub_81A085C
- setvar VAR_0x8004, 5
- special sub_81A085C
- setvar VAR_0x8004, 16
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 9
- special sub_81A085C
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 1
- setvar VAR_0x8006, 5
- special sub_81A085C
- waitstate
- call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D
- release
- releaseall
- switch VAR_FACING
- case 2, BattleFrontier_BattleTowerLobby_EventScript_2B6E54
- goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72
- end
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6DD4:: @ 82B6DD4
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 1
- setvar VAR_0x8006, 11
- special sub_81A085C
- waitstate
- setvar VAR_0x8004, 25
- special sub_81A085C
- setvar VAR_0x8004, 19
- call BattleFrontier_BattleTowerLobby_EventScript_271E7C
- lock
- faceplayer
- setvar VAR_0x8004, 21
- special sub_81A085C
- setvar VAR_0x8004, 16
- setvar VAR_0x8005, 0
- setvar VAR_0x8006, 7
- special sub_81A085C
- setvar VAR_0x8004, 8
- setvar VAR_0x8005, 1
- setvar VAR_0x8006, 15
- special sub_81A085C
- waitstate
- setvar VAR_0x8004, 9
- special sub_81A085C
- call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D
- release
- releaseall
- switch VAR_FACING
- case 2, BattleFrontier_BattleTowerLobby_EventScript_2B6E54
- goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72
- end
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6E4D:: @ 82B6E4D
- setflag FLAG_0x2BD
- setflag FLAG_0x934
- return
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6E54:: @ 82B6E54
- setvar VAR_0x8004, 24
- special sub_81A085C
- compare VAR_0x8004, 0
- goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6E93
- applymovement 6, BattleFrontier_BattleTowerLobby_Movement_2B6E94
- waitmovement 0
- end
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6E72:: @ 82B6E72
- setvar VAR_0x8004, 24
- special sub_81A085C
- compare VAR_0x8004, 0
- goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6E93
- applymovement 6, BattleFrontier_BattleTowerLobby_Movement_2B6E95
- waitmovement 0
- end
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6E90:: @ 82B6E90
- release
- releaseall
- end
-
-BattleFrontier_BattleTowerLobby_EventScript_2B6E93:: @ 82B6E93
- end
-
-BattleFrontier_BattleTowerLobby_Movement_2B6E94: @ 82B6E94
- walk_fast_right
-
-BattleFrontier_BattleTowerLobby_Movement_2B6E95: @ 82B6E95
- walk_fast_down
- walk_fast_down
- walk_fast_right
- walk_fast_right
- walk_fast_right
- walk_fast_right
- walk_fast_right
- walk_fast_right
- walk_fast_right
- walk_fast_right
- walk_fast_right
- set_invisible
- slide_down
- slide_down
- slide_down
- step_end
-
-gText_082B6EA5:: @ 82B6EA5
- .string "Um, I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice.\n"
- .string "Snivel… This tension is getting to me…$"
-
-gText_082B6EEC:: @ 82B6EEC
- .string "I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice!\n"
- .string "Here we come!$"
-
-gText_082B6F16:: @ 82B6F16
- .string "I’m the no. {STR_VAR_2} apprentice of {STR_VAR_1}!\n"
- .string "Accept my challenge!$"
-
-gText_082B6F4C:: @ 82B6F4C
- .string "Um… I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice…\n"
- .string "Do you think someone like me can win?$"
-
-gText_082B6F92:: @ 82B6F92
- .string "I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice!\n"
- .string "I’ll let you challenge me!$"
-
-gText_082B6FC9:: @ 82B6FC9
- .string "I’m horribly busy, but I also happen\n"
- .string "to be {STR_VAR_1}’s no. {STR_VAR_2} apprentice.$"
-
-gText_082B700C:: @ 82B700C
- .string "I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice.\n"
- .string "Glad to meet you!$"
-
-gText_082B703A:: @ 82B703A
- .string "I serve as {STR_VAR_1}’s no. {STR_VAR_2} apprentice.\n"
- .string "May I begin?$"
-
-gText_082B706A:: @ 82B706A
- .string "Eek! I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice!\n"
- .string "I’ll do my best!$"
-
-gText_082B709C:: @ 82B709C
- .string "Yeehaw! I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice!\n"
- .string "Put ’em up!$"
-
-gText_082B70CC:: @ 82B70CC
- .string "I’m {STR_VAR_1}’s 1,000th apprentice!\n"
- .string "Actually, I’m no. {STR_VAR_2}! Here goes!$"
-
-gText_082B710A:: @ 82B710A
- .string "Yeah, I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice!\n"
- .string "Let’s get rockin’ and a-rollin’!$"
-
-gText_082B714D:: @ 82B714D
- .string "Yippee-yahoo! I’m what you call\n"
- .string "{STR_VAR_1}’s no. {STR_VAR_2} apprentice!$"
-
-gText_082B7185:: @ 82B7185
- .string "Cough! I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice.\n"
- .string "Good to meet you! Cough!$"
-
-gText_082B71C1:: @ 82B71C1
- .string "This is nerve-racking…\n"
- .string "I’m the no. {STR_VAR_2} apprentice of {STR_VAR_1}.$"
-
-gText_082B71F9:: @ 82B71F9
- .string "I am {STR_VAR_1}’s no. {STR_VAR_2} apprentice,\n"
- .string "and that’s no lie.$"
-
-gText_082B7229:: @ 82B7229
- .string "Are you… {PLAYER}?\n"
- .string "Oh! Sniff…sob…\p"
- .string "Oh! S-sorry…\n"
- .string "I’m so nervous, I can’t help crying…\p"
- .string "I’m {STR_VAR_1}, and I really look up\n"
- .string "to you, {PLAYER}.\p"
- .string "I… I had this dream of one day meeting\n"
- .string "you and asking you about POKéMON.\p"
- .string "Please, please, {PLAYER}!\n"
- .string "Please teach me about POKéMON!$"
-
-gText_082B731C:: @ 82B731C
- .string "Oh… B-but…\n"
- .string "Snivel… Waaaaaaah!\p"
- .string "Please!\n"
- .string "I’m begging you, please!$"
-
-gText_082B735B:: @ 82B735B
- .string "Oh, really? You will?\n"
- .string "Awesome! Wicked! Awoooh!\p"
- .string "Oh… I’m sorry…\n"
- .string "I’m so happy, I’m crying…\p"
- .string "Um… Then please tell me!\n"
- .string "It’s about the BATTLE TOWER.\p"
- .string "Which would be better for me: Level 50\n"
- .string "or the Open Level?$"
-
-gText_082B7423:: @ 82B7423
- .string "{STR_VAR_1}?\n"
- .string "Waaaaah!\p"
- .string "Oh! I’m so sorry!\n"
- .string "You’ve made me happy by choosing\l"
- .string "the level for me, and it’s made me cry…\p"
- .string "Snivel…\n"
- .string "Thank you so much!\l"
- .string "Please talk with me again!$"
-
-gText_082B74C1:: @ 82B74C1
- .string "Wowee! You’re {PLAYER}, aren’t you?\n"
- .string "You’re awesomely strong, aren’t you?\p"
- .string "I’m {STR_VAR_1}!\n"
- .string "I just became a TRAINER!\p"
- .string "Please, {PLAYER}!\n"
- .string "Can you be my teacher and tell me\l"
- .string "lots about being a TRAINER?$"
-
-gText_082B756F:: @ 82B756F
- .string "Aww, why?\n"
- .string "Oh, please? Pretty please?\l"
- .string "Please be my teacher, please!$"
-
-gText_082B75B2:: @ 82B75B2
- .string "Yay! Great!\p"
- .string "The first thing I wanted to ask you is\n"
- .string "about the BATTLE TOWER!\p"
- .string "The Level 50 and Open Level Rooms…\n"
- .string "Which would be perfect for me?$"
-
-gText_082B763F:: @ 82B763F
- .string "{STR_VAR_1}, huh? That’s true!\n"
- .string "I’ll do my best there!\p"
- .string "If we meet here again, please teach\n"
- .string "me something else, teacher!$"
-
-gText_082B76AC:: @ 82B76AC
- .string "Um… Are you {PLAYER}?\n"
- .string "My name is {STR_VAR_1}.\p"
- .string "I want to become a POKéMON TRAINER,\n"
- .string "but I don’t know what to do…\p"
- .string "So I thought maybe I could ask you for\n"
- .string "advice because you’re so famous.\p"
- .string "{PLAYER}, could you give me advice?$"
-
-gText_082B7772:: @ 82B7772
- .string "Oh, but…\p"
- .string "I sincerely want to become a POKéMON\n"
- .string "TRAINER!\p"
- .string "Please, can you answer my questions?$"
-
-gText_082B77CE:: @ 82B77CE
- .string "Thank you!\n"
- .string "Here’s my first question right away!\p"
- .string "The BATTLE TOWER has two levels,\n"
- .string "Level 50 and Open Level, right?\p"
- .string "Which level do you think is more\n"
- .string "suitable for me?$"
-
-gText_082B7871:: @ 82B7871
- .string "Oh, the {STR_VAR_1} challenge?\n"
- .string "Understood!\p"
- .string "If I have another question, I’ll come\n"
- .string "back here for your advice!$"
-
-gText_082B78D4:: @ 82B78D4
- .string "Oh? Huh? You’re…\n"
- .string "No, that can’t be true.\p"
- .string "There isn’t any way that someone\n"
- .string "like me could meet {PLAYER}.\p"
- .string "…You really are {PLAYER}?\n"
- .string "I can’t believe I’m talking to you!\p"
- .string "When something this good happens,\n"
- .string "only terrible things will happen to me\l"
- .string "now, I just know it…\p"
- .string "…I’m sorry…\n"
- .string "I’m… {STR_VAR_1}…\p"
- .string "There isn’t anything special about\n"
- .string "me that I can be proud of…\p"
- .string "I shouldn’t even say anything about\n"
- .string "myself because you’ll forget…\p"
- .string "I had this dream that if I ever met\n"
- .string "you, {PLAYER}, that maybe I could ask\l"
- .string "you for advice as a TRAINER.\p"
- .string "But I don’t think you would agree\n"
- .string "to that.\p"
- .string "…Or will you be so kind as to give\n"
- .string "me advice?$"
-
-gText_082B7B1A:: @ 82B7B1A
- .string "I knew it…\p"
- .string "It had to happen because I’m such\n"
- .string "a really boring nobody…\p"
- .string "But I thought just maybe…\n"
- .string "You won’t reconsider, will you?\p"
- .string "But I can’t give up just like that.\n"
- .string "I’ll ask you while I’m still lucky!\p"
- .string "Please, will you be so kind as to give\n"
- .string "me advice?$"
-
-gText_082B7C13:: @ 82B7C13
- .string "Really? I can’t believe it!\n"
- .string "I can’t believe you’ll advise me!\l"
- .string "I… I’m so happy…\p"
- .string "What I want to ask you is really\n"
- .string "trivial, but I can’t decide…\p"
- .string "At the BATTLE TOWER, they let you\n"
- .string "choose Level 50 or Open Level.\p"
- .string "Which course do you think even I may\n"
- .string "have a chance at?$"
-
-gText_082B7D18:: @ 82B7D18
- .string "{STR_VAR_1}? Okay!\n"
- .string "But do you really think someone like\l"
- .string "me would have a chance?\p"
- .string "I’ll do my best, even though I don’t\n"
- .string "think it will work.\p"
- .string "Thank you very much for spending\n"
- .string "time with someone like me.$"
-
-gText_082B7DD4:: @ 82B7DD4
- .string "Oh! You’re {PLAYER}{STRING 5}, aren’t you?\p"
- .string "I’ve heard that you’re tough at\n"
- .string "POKéMON!\p"
- .string "I’m {STR_VAR_1}!\n"
- .string "I’ll be your friend!\p"
- .string "Did you know?\p"
- .string "You can’t win at the BATTLE FRONTIER\n"
- .string "if all you know is what they teach at\l"
- .string "the TRAINER’S SCHOOL.\p"
- .string "I’m willing to listen to your advice.\n"
- .string "You’ll agree, of course?$"
-
-gText_082B7EE5:: @ 82B7EE5
- .string "Huh? Why are you refusing me?\n"
- .string "It’s me who’s asking you!\l"
- .string "You have to reconsider!$"
-
-gText_082B7F35:: @ 82B7F35
- .string "Okay, so there is this something.\n"
- .string "I want you to decide it for me.\p"
- .string "You know that the BATTLE TOWER has\n"
- .string "Level 50 and Open Level Rooms?\p"
- .string "Which do you think would be good\n"
- .string "for me, {PLAYER}{STRING 5}?$"
-
-gText_082B7FE8:: @ 82B7FE8
- .string "Okay, {STR_VAR_1} is suitable for me?\n"
- .string "Thank you!\p"
- .string "Knowing that you made the decision,\n"
- .string "{PLAYER}{STRING 5}, I won’t be so upset if\l"
- .string "I lose.\p"
- .string "Okay, I’ll look to you for advice again.\n"
- .string "Bye!$"
-
-gText_082B8087:: @ 82B8087
- .string "Oh, hi, there! {PLAYER}{STRING 5}!\n"
- .string "I know you because you’re famous!\l"
- .string "Call me {STR_VAR_1}! Glad to meet you!\p"
- .string "I’m a TRIATHLETE, so I keep myself\n"
- .string "fit even while I raise POKéMON.\p"
- .string "I’m also involved with other things\n"
- .string "like work, napping, ballroom dancing…\p"
- .string "Being this busy, it’s not so easy for\n"
- .string "me to become a decent TRAINER.\p"
- .string "So, I have a proposition!\p"
- .string "There must be a reason why we met.\n"
- .string "So, {PLAYER}{STRING 5}, how about sharing your\l"
- .string "wisdom with me every so often?$"
-
-gText_082B822B:: @ 82B822B
- .string "Oh, but, please?\n"
- .string "A guy like me needs someone like\l"
- .string "you, {PLAYER}{STRING 5}!\p"
- .string "Honestly, I need your advice!$"
-
-gText_082B8286:: @ 82B8286
- .string "Thank you! That’s more like it!\n"
- .string "So, let’s start with an easy one!\p"
- .string "You know about the BATTLE TOWER’s\n"
- .string "two courses, right?\l"
- .string "You know, Level 50 and Open Level.\p"
- .string "Me being a busy guy, which one should\n"
- .string "I gear up for?$"
-
-gText_082B8356:: @ 82B8356
- .string "{STR_VAR_1}, huh? Okay, gotcha.\n"
- .string "I’ll find time somehow and give it a go!\p"
- .string "…Whoops, I’d better go to work!\n"
- .string "Thanks! See you around!$"
-
-gText_082B83CE:: @ 82B83CE
- .string "No way! Uh-uh!\n"
- .string "Are you maybe the real {PLAYER}?\p"
- .string "A-hah! Awesome! I’m {STR_VAR_1},\n"
- .string "so pleased to meet you!\p"
- .string "{PLAYER}, you’re very strong,\n"
- .string "aren’t you?\p"
- .string "Everyone’s talking about you!\p"
- .string "Oh! I just had this great idea!\n"
- .string "I’ll get advice off you, {PLAYER}!\l"
- .string "I’m sure it will make me tougher!\p"
- .string "Isn’t it a great idea?\n"
- .string "Please, I want your advice!$"
-
-gText_082B84FC:: @ 82B84FC
- .string "Ahahaha, you can pretend to be mean,\n"
- .string "but you can’t fool me!\l"
- .string "You really mean okay, don’t you?$"
-
-gText_082B8559:: @ 82B8559
- .string "Yay! I knew you’d have a big heart,\n"
- .string "{PLAYER}!\p"
- .string "What should I ask you first?\n"
- .string "…Oh, I thought of something!\p"
- .string "Drum roll, please!\n"
- .string "The question I have is…\p"
- .string "If I were to take a BATTLE TOWER\n"
- .string "challenge, which way should I go?\p"
- .string "Level 50 or Open Level?\n"
- .string "Which suits me more?$"
-
-gText_082B8656:: @ 82B8656
- .string "Oh-oh-oh!\n"
- .string "{STR_VAR_1}, you say!\l"
- .string "Thank you for a totally cool reply!\p"
- .string "I guess that’s about all I wanted\n"
- .string "to ask you today.\p"
- .string "Let’s meet here again, okay?\n"
- .string "Thanks!$"
-
-gText_082B86EA:: @ 82B86EA
- .string "I beg your pardon, but…\n"
- .string "Are you {PLAYER}?\p"
- .string "I’m {STR_VAR_1}, and I am delighted to\n"
- .string "make your acquaintance.\p"
- .string "I have long been an admirer\n"
- .string "of yours…\p"
- .string "… … … … … …\p"
- .string "Um… I hope you don’t find this\n"
- .string "request too much of a burden, but…\p"
- .string "May I become your apprentice,\n"
- .string "{PLAYER}?$"
-
-gText_082B87DA:: @ 82B87DA
- .string "Oh…!\p"
- .string "… … … … … …\n"
- .string "… … … … … …\p"
- .string "…I must have fainted from shock.\n"
- .string "I’m sorry, I must have misheard you.\p"
- .string "Please! Please say that you will\n"
- .string "accept me as your apprentice!$"
-
-gText_082B887C:: @ 82B887C
- .string "Oh… I’m delighted!\p"
- .string "I don’t wish to waste your time,\n"
- .string "so please advise me on this.\p"
- .string "I plan to take a BATTLE TOWER\n"
- .string "challenge soon.\p"
- .string "However, there are two levels…\p"
- .string "Which would be most suitable for me?\n"
- .string "Level 50 or Open Level?$"
-
-gText_082B8957:: @ 82B8957
- .string "{STR_VAR_1} is your choice!\n"
- .string "I see. I will do my best!\p"
- .string "Thank you, {PLAYER}.\n"
- .string "I hope I can count on you again.\l"
- .string "Please take care!$"
-
-gText_082B89C6:: @ 82B89C6
- .string "Eek! Eek! {PLAYER}!\n"
- .string "You spoke to me!\l"
- .string "I… I’m overjoyed!\p"
- .string "Me! My name is {STR_VAR_1}!\n"
- .string "I just became a TRAINER!\p"
- .string "I’m delighted I met you, {PLAYER},\n"
- .string "the big name in POKéMON circles!\p"
- .string "Oh-oh-oh, I know!\n"
- .string "May I ask a huge favor, {PLAYER}?\p"
- .string "Please take me in as your apprentice!\n"
- .string "I want to learn from you!$"
-
-gText_082B8ACF:: @ 82B8ACF
- .string "Waaaah!\n"
- .string "{PLAYER} turned me down…\l"
- .string "It… It’s an invaluable experience!\p"
- .string "{PLAYER}, please! I want to hear\n"
- .string "an affirmative answer this time!\p"
- .string "I beg you for your guidance!$"
-
-gText_082B8B66:: @ 82B8B66
- .string "Hieeeeh! {PLAYER} said yes!\n"
- .string "{PLAYER} said yes!\p"
- .string "I won’t be able to sleep tonight…\n"
- .string "Thank you ever so much!\p"
- .string "Then, here’s my question!\p"
- .string "At the BATTLE TOWER, what is right\n"
- .string "for me, Level 50 or Open Level?$"
-
-gText_082B8C20:: @ 82B8C20
- .string "{STR_VAR_1}! Perfectly understood!\n"
- .string "I understand perfectly!\l"
- .string "I’m deliriously delighted!\p"
- .string "I hope you’ll be willing to teach me\n"
- .string "some more another time.$"
-
-gText_082B8CAA:: @ 82B8CAA
- .string "Whoa! Could you be…\n"
- .string "Might you be… {PLAYER}{STRING 5}?!\l"
- .string "That strong and famous TRAINER?\l"
- .string "Well, hello, aren’t I just the luckiest!\p"
- .string "Hello, the name’s {STR_VAR_1}!\p"
- .string "I’ve been on the lookout for\n"
- .string "a POKéMON teacher.\p"
- .string "And with impeccably good timing,\n"
- .string "along came you, {PLAYER}{STRING 5}!\p"
- .string "So, there you have it, {PLAYER}{STRING 5}!\n"
- .string "Let me apprentice under you!$"
-
-gText_082B8DD3:: @ 82B8DD3
- .string "Gwaaaah!\n"
- .string "You’re quite cool and tough…\p"
- .string "Don’t be that way, please.\n"
- .string "I’m asking you!$"
-
-gText_082B8E24:: @ 82B8E24
- .string "Oh, yeah! That’s a solid reply!\n"
- .string "Excellent, I might add!\p"
- .string "So how about a first piece of advice\n"
- .string "on the BATTLE TOWER?\p"
- .string "If I were to go, what would be better?\n"
- .string "Level 50 or Open Level?$"
-
-gText_082B8ED5:: @ 82B8ED5
- .string "Uh-huh, {STR_VAR_1} it is!\n"
- .string "OK, A-OK!\l"
- .string "I’ll go show my mettle, like, jam!\p"
- .string "All right, I’ll look to you as my mentor!\n"
- .string "Adios!$"
-
-gText_082B8F45:: @ 82B8F45
- .string "Oh, hey, {PLAYER}{STRING 5}, right?\n"
- .string "The police were looking for you!\p"
- .string "… … …\n"
- .string "Of course I’m lying!\p"
- .string "Me, I’m {STR_VAR_1}. Despite the way\n"
- .string "I look, I’m the POKéMON CHAMPION!\l"
- .string "…That’s a lie, too!\p"
- .string "This is no lie, though.\n"
- .string "I’m not very good at battling.\p"
- .string "So, how about you becoming my master\n"
- .string "about all things POKéMON?$"
-
-gText_082B905F:: @ 82B905F
- .string "If you’re going to act cold like that,\n"
- .string "I’ll show you what I’ll do!\p"
- .string "Waaah! Waaah! Waaah!\n"
- .string "Hiccup!\p"
- .string "Hahaha, that was my FAKE TEARS!\p"
- .string "Come on, will you please be\n"
- .string "my POKéMON master?$"
-
-gText_082B910E:: @ 82B910E
- .string "Yippee!\n"
- .string "I’ll buy you a boat for that!\p"
- .string "Of course I’m lying again!\n"
- .string "But… Thank you, master!\p"
- .string "You know how there’s Level 50 and\n"
- .string "Open Level at the BATTLE TOWER?\p"
- .string "I’m having trouble deciding which\n"
- .string "level I should challenge…\p"
- .string "Can you decide for me, master?$"
-
-gText_082B9204:: @ 82B9204
- .string "Okay, so {STR_VAR_1} is better!\n"
- .string "I’ll go to the other level, then!\p"
- .string "Just kidding!\n"
- .string "I’ll obey your teaching, master!\p"
- .string "Thanks, master!\n"
- .string "I hope you’ll keep teaching me!$"
-
-gText_082B929C:: @ 82B929C
- .string "A-H-O-Y!\n"
- .string "And that spells ahoy, and it means hi!\p"
- .string "I’m {STR_VAR_1}, the rappin’ SAILOR\n"
- .string "am I!\p"
- .string "Your turn now, tell me a little about\n"
- .string "yourself, give it a try!\p"
- .string "Uh-huh, uh-huh!\n"
- .string "{PLAYER}{STRING 5}’s your name,\l"
- .string "and POKéMON’s your game!\p"
- .string "And you’re at a delicate age\n"
- .string "when all the world’s your stage!\p"
- .string "Anyway, I just want to say,\n"
- .string "that you’re the tenth TRAINER\l"
- .string "I’ve spoken to today.\p"
- .string "Let’s make that a celebration!\n"
- .string "Become my mentor for commemoration!$"
-
-gText_082B9438:: @ 82B9438
- .string "But!\n"
- .string "You have to work with me!\p"
- .string "Don’t be such a tease!\n"
- .string "Become my mentor, please!$"
-
-gText_082B9488:: @ 82B9488
- .string "That’s it!\n"
- .string "{PLAYER}, you’ve got the spirit!\p"
- .string "So here’s my first question\n"
- .string "that begs your suggestion!\p"
- .string "It’s about the BATTLE TOWER,\n"
- .string "and it hinges on my power!\p"
- .string "Level 50 and Open Level there be,\n"
- .string "which is the one that’s good for me?$"
-
-gText_082B9564:: @ 82B9564
- .string "Okay, {STR_VAR_1} it is, you say!\n"
- .string "I’ll go and take it on my way!\p"
- .string "If it’s advice I ever need,\n"
- .string "{PLAYER}, your word I’ll always heed!$"
-
-gText_082B95D8:: @ 82B95D8
- .string "Say, hey, aren’t you {PLAYER}?\n"
- .string "What should I do? Talk to you?\l"
- .string "Why not? I’m already talking to you!\p"
- .string "{PLAYER}, are you surprised at me?\n"
- .string "I’d better tell you who I happen to be!\p"
- .string "{STR_VAR_1} is what you can call me.\n"
- .string "The brightest star in guitardom,\l"
- .string "that’s me!\p"
- .string "Are you receiving me?\n"
- .string "You are receiving me!\p"
- .string "My luck’s at its best,\n"
- .string "I’ll hit you with a request!\p"
- .string "{PLAYER}, let me be your underling!\n"
- .string "I want you to teach me everything!$"
-
-gText_082B9763:: @ 82B9763
- .string "You’re turning me down, then?\n"
- .string "I’ll just have to ask you again!\p"
- .string "{PLAYER}, I beg to be your underling!\n"
- .string "I need you to teach me everything!$"
-
-gText_082B97E5:: @ 82B97E5
- .string "Lucky, yeah, woohoo!\n"
- .string "Should I pop a question to you?\p"
- .string "Since we’re near the BATTLE TOWER,\n"
- .string "how about a question about its power?\p"
- .string "Of the choices you see,\n"
- .string "which is the right one for me?$"
-
-gText_082B989A:: @ 82B989A
- .string "If {STR_VAR_1} is what you suggest,\n"
- .string "it must be the very best!\p"
- .string "Well, {PLAYER}, I have to roam free,\n"
- .string "but don’t you forget about me.\p"
- .string "See you again, my smart friend!$"
-
-gText_082B992D:: @ 82B992D
- .string "Oh, hi! You there!\n"
- .string "Can I get you to massage my shoulder?\p"
- .string "…Yes, there! That’s it!\n"
- .string "Ouch, ouch! Oooh, that feels great!\p"
- .string "My name’s {STR_VAR_1}.\n"
- .string "I take karate training, but my body’s\l"
- .string "not built to take the abuse…\p"
- .string "I decided I’ll battle POKéMON and\n"
- .string "toughen myself up.\p"
- .string "You’re {PLAYER}{STRING 5}, aren’t you?\n"
- .string "The POKéMON LEAGUE CHAMP?\p"
- .string "Listen, can I get you to give me\n"
- .string "advice?$"
-
-gText_082B9A84:: @ 82B9A84
- .string "Oh, why?\p"
- .string "I won’t be a big bother, I promise!\n"
- .string "Please?$"
-
-gText_082B9AB9:: @ 82B9AB9
- .string "Thank you. Mighty good of you!\n"
- .string "…Cough! Cough!\p"
- .string "Oogh, I have to toughen up quick…\p"
- .string "I’ll be heading off to the BATTLE TOWER\n"
- .string "right away, but what would be better\l"
- .string "for me? Level 50 or Open Level?$"
-
-gText_082B9B76:: @ 82B9B76
- .string "Hm, all right. That’s {STR_VAR_1}.\n"
- .string "I’ll go there right away.\p"
- .string "I hope I can keep hitting you up for\n"
- .string "help--after all, you’re my mentor!$"
-
-gText_082B9BF2:: @ 82B9BF2
- .string "Er… Um…\n"
- .string "{PLAYER}{STRING 5}…?\p"
- .string "Please, don’t look at me that way.\n"
- .string "You’re making me all self-conscious.\p"
- .string "I… I’m {STR_VAR_1}.\p"
- .string "I’m really embarrassed to say this,\n"
- .string "but I explore ancient ruins and such.\p"
- .string "I’m even more embarrassed to admit\n"
- .string "I’m interested in the BATTLE FRONTIER.\p"
- .string "{PLAYER}{STRING 5}, you have a reputation as\n"
- .string "a tough TRAINER…\p"
- .string "It’s hard for me to say this,\n"
- .string "but I want to ask something.\p"
- .string "Could you become my teacher and\n"
- .string "give me advice?$"
-
-gText_082B9D83:: @ 82B9D83
- .string "Please don’t brush me off like this!\n"
- .string "I can’t live with the humiliation.\p"
- .string "Please become my teacher!\n"
- .string "I need your advice!$"
-
-gText_082B9DF9:: @ 82B9DF9
- .string "Th-thank you…\p"
- .string "But please don’t look at me like that.\n"
- .string "It makes me all flustered.\p"
- .string "Please, answer me without looking\n"
- .string "at my eyes.\p"
- .string "At the BATTLE TOWER…\n"
- .string "Which level should I attempt?$"
-
-gText_082B9EAA:: @ 82B9EAA
- .string "Oh… Okay!\n"
- .string "I’ll try my hand at that.\p"
- .string "I hope I can make a valiant challenge\n"
- .string "without getting all flustered…\p"
- .string "Thank you, {PLAYER}{STRING 5}.\n"
- .string "If we meet again, I hope you will be\l"
- .string "as helpful.$"
-
-gText_082B9F55:: @ 82B9F55
- .string "Hm? You appear to be {PLAYER}{STRING 5}…\n"
- .string "But are you really real?\p"
- .string "You may call me {STR_VAR_1}.\p"
- .string "I have been toying with the idea of\n"
- .string "apprenticing under a strong TRAINER.\p"
- .string "So, I must say I’m lucky you came along!\n"
- .string "…You really are {PLAYER}{STRING 5}, yes?\p"
- .string "No, no, if you are real, it’s fine.\n"
- .string "I merely want you to recognize me\l"
- .string "as your apprentice.$"
-
-gText_082BA084:: @ 82BA084
- .string "Oh?\n"
- .string "But what would compel you to refuse?\p"
- .string "I apologize for being skeptical about\n"
- .string "your identity.\p"
- .string "Please accept my apology and\n"
- .string "accept me as your apprentice.$"
-
-gText_082BA11D:: @ 82BA11D
- .string "You really are accepting me?\n"
- .string "I don’t wish to celebrate prematurely.\p"
- .string "If it is true, I apologize.\n"
- .string "But now, I need your advice.\p"
- .string "If I were to enter the BATTLE TOWER,\n"
- .string "what would be worthy of me?\l"
- .string "Level 50 or Open Level?$"
-
-gText_082BA1F3:: @ 82BA1F3
- .string "{STR_VAR_1}?\n"
- .string "Are you certain?\p"
- .string "I see. If that’s the case, that’s fine.\n"
- .string "I thank you for your time.\p"
- .string "I realize I can annoy, but it delights\n"
- .string "me that you have accepted me.\p"
- .string "Let us meet again!$"
-
-gText_082BA2A3:: @ 82BA2A3
- .string "Sigh… Sob…\n"
- .string "Oh, {PLAYER}!\p"
- .string "I’m all tangled up in a dilemma\n"
- .string "that I can’t decide.\p"
- .string "I can’t decide what I should make\n"
- .string "my {STR_VAR_1} hold.\p"
- .string "Please tell me, {PLAYER}.\n"
- .string "What item should I make it hold?$"
-
-gText_082BA34E:: @ 82BA34E
- .string "Oh, really? I shouldn’t make\n"
- .string "my {STR_VAR_1} hold anything?$"
-
-gText_082BA380:: @ 82BA380
- .string "Oh, okay! I’m delighted it’s settled!\n"
- .string "Awesome! Wicked! Awoooh!\p"
- .string "Thank you so much!$"
-
-gText_082BA3D2:: @ 82BA3D2
- .string "Oh, I’m so glad…\n"
- .string "I think I have that {STR_VAR_1}, too.\p"
- .string "I’m delighted it’s settled!\n"
- .string "Awesome! Wicked! Awoooh!\p"
- .string "Thank you so much!$"
-
-gText_082BA448:: @ 82BA448
- .string "Waaaah! Please don’t be mean!\p"
- .string "That item {STR_VAR_1} was already\n"
- .string "recommended to me before, sob…\p"
- .string "Or do you mean I shouldn’t make\n"
- .string "my {STR_VAR_2} hold anything?$"
-
-gText_082BA4D3:: @ 82BA4D3
- .string "Yay! It’s {PLAYER}!\n"
- .string "Great! I wanted to ask you something!\p"
- .string "Do you make your POKéMON hold items?\n"
- .string "I want to make mine hold items, but…\p"
- .string "What item would be good for\n"
- .string "{STR_VAR_1} to hold?\p"
- .string "What do you think?$"
-
-gText_082BA58C:: @ 82BA58C
- .string "Huh? You mean my {STR_VAR_1} doesn’t\n"
- .string "have to hold anything?$"
-
-gText_082BA5BF:: @ 82BA5BF
- .string "Oh, I get it! I’ll do that!\n"
- .string "Thanks for teaching me!$"
-
-gText_082BA5F3:: @ 82BA5F3
- .string "Oh, wow! One {STR_VAR_1}, huh?\n"
- .string "Okay, I’ll do that!\p"
- .string "Thanks for teaching me!$"
-
-gText_082BA635:: @ 82BA635
- .string "Oh, uh, no, that’s not what I meant.\n"
- .string "I want to know about a different item\l"
- .string "than the ones I already know.\p"
- .string "Or do you mean that my POKéMON doesn’t\n"
- .string "have to hold anything this time?$"
-
-gText_082BA6E6:: @ 82BA6E6
- .string "{PLAYER}, hello!\n"
- .string "It’s about my {STR_VAR_1}…\p"
- .string "I want to make it hold a good item.\n"
- .string "What would be good for it?$"
-
-gText_082BA742:: @ 82BA742
- .string "Oh, then my {STR_VAR_1} doesn’t have\n"
- .string "to hold anything?$"
-
-gText_082BA770:: @ 82BA770
- .string "Okay, I got it!\n"
- .string "See you again!$"
-
-gText_082BA78F:: @ 82BA78F
- .string "Oh, the item {STR_VAR_1}?\n"
- .string "Understood!\p"
- .string "I’ll do my best to find one!\n"
- .string "See you again!$"
-
-gText_082BA7D8:: @ 82BA7D8
- .string "Somebody taught me about\n"
- .string "the {STR_VAR_1} already.\p"
- .string "I want my POKéMON to hold a different\n"
- .string "kind of item.\p"
- .string "Or do you think {STR_VAR_2} doesn’t\n"
- .string "have to hold anything?$"
-
-gText_082BA867:: @ 82BA867
- .string "Hello, {PLAYER}…\n"
- .string "I’m sorry to disturb you, but I have\l"
- .string "something else I wanted to ask you.\p"
- .string "I don’t think I’m good enough to win\n"
- .string "matches on my own, so I’m thinking of\l"
- .string "making my {STR_VAR_1} hold an item.\p"
- .string "But I don’t know what would be good.\p"
- .string "{PLAYER}, please, could you decide\n"
- .string "for me?$"
-
-gText_082BA96B:: @ 82BA96B
- .string "A POKéMON belonging to someone like me\n"
- .string "would be better off without an item?$"
-
-gText_082BA9B7:: @ 82BA9B7
- .string "I understand…\n"
- .string "You’re saying I shouldn’t rely on items.\l"
- .string "I’ll do my best not to!\p"
- .string "Thank you very much!$"
-
-gText_082BAA1B:: @ 82BAA1B
- .string "The item {STR_VAR_1}, okay.\n"
- .string "I’m not sure if I can get one…\l"
- .string "No! I’ll do my best to get it.\p"
- .string "Thank you very much!$"
-
-gText_082BAA81:: @ 82BAA81
- .string "Oh, but…\n"
- .string "I think I’ve heard about that before…\p"
- .string "Is it maybe because I haven’t handled\n"
- .string "the item {STR_VAR_1} very well?\p"
- .string "Or do you mean I shouldn’t make\n"
- .string "my {STR_VAR_2} hold anything?$"
-
-gText_082BAB22:: @ 82BAB22
- .string "Oh, {PLAYER}{STRING 5}.\n"
- .string "There’s something I wanted to ask you.\p"
- .string "You know how you decided which\n"
- .string "POKéMON I should have for me?\p"
- .string "But I never asked you what item\n"
- .string "it should be holding.\p"
- .string "Since you already gave me advice,\n"
- .string "how about seeing this to the end?\p"
- .string "What would be good? I want to make\n"
- .string "my {STR_VAR_1} hold something.$"
-
-gText_082BAC43:: @ 82BAC43
- .string "Oh! So my {STR_VAR_1} should do\n"
- .string "the best it can empty-handed?$"
-
-gText_082BAC78:: @ 82BAC78
- .string "If you think that’s best, I’ll do that.\p"
- .string "Knowing that you made the decision,\n"
- .string "{PLAYER}{STRING 5}, I won’t be so upset if\l"
- .string "I lose.\p"
- .string "Okay, I’ll look to you for advice again.\n"
- .string "Bye!$"
-
-gText_082BAD17:: @ 82BAD17
- .string "The item {STR_VAR_1}, huh?\n"
- .string "Not bad. I’ll use it!\p"
- .string "Knowing that you made the decision,\n"
- .string "{PLAYER}{STRING 5}, I won’t be so upset if\l"
- .string "I lose.\p"
- .string "Okay, I’ll look to you for advice again.\n"
- .string "Bye!$"
-
-gText_082BADB6:: @ 82BADB6
- .string "Huh? What are you saying?\n"
- .string "You told me about the {STR_VAR_1}\l"
- .string "already before.\p"
- .string "Or do you mean my {STR_VAR_2} should\n"
- .string "do the best it can empty-handed?$"
-
-gText_082BAE36:: @ 82BAE36
- .string "Yo, {PLAYER}{STRING 5}!\p"
- .string "We’re both busy, but we seem to run\n"
- .string "into each other often anyway!\p"
- .string "Today I have to do some walking,\n"
- .string "cleaning, and brushing.\p"
- .string "I haven’t even had the time to buy\n"
- .string "my precious {STR_VAR_1} anything.\p"
- .string "I don’t have any time, so how about\n"
- .string "giving me advice on what I should make\l"
- .string "my {STR_VAR_1} hold?$"
-
-gText_082BAF4E:: @ 82BAF4E
- .string "Oh, so me being a busy guy, you say\n"
- .string "my {STR_VAR_1} doesn’t need anything?$"
-
-gText_082BAF8F:: @ 82BAF8F
- .string "Okay, gotcha.\n"
- .string "I won’t need any time for that.\p"
- .string "Thanks today!\n"
- .string "See you around!$"
-
-gText_082BAFDB:: @ 82BAFDB
- .string "Okay, gotcha.\n"
- .string "I’ll find time somehow and find\l"
- .string "that {STR_VAR_1} you recommended.\p"
- .string "I’m glad I met a good mentor in you.\n"
- .string "Thanks! See you around!$"
-
-gText_082BB05F:: @ 82BB05F
- .string "Huh? I already know about\n"
- .string "that {STR_VAR_1}.\p"
- .string "Oh, right, I get it.\n"
- .string "So me being a busy guy, you say\l"
- .string "my {STR_VAR_2} doesn’t need anything?$"
-
-gText_082BB0D4:: @ 82BB0D4
- .string "Hiya, {PLAYER}! It’s me!\n"
- .string "I need to tap your mind again today.\l"
- .string "Please, I need your advice!\p"
- .string "Drum roll, please!\n"
- .string "The question I have is…\p"
- .string "If I want to make my {STR_VAR_1} hold\n"
- .string "an item, what should it be?$"
-
-gText_082BB18C:: @ 82BB18C
- .string "Is that right? My {STR_VAR_1} doesn’t\n"
- .string "need to hold an item, you’re saying.$"
-
-gText_082BB1CE:: @ 82BB1CE
- .string "Okay, that’s what I’ll do!\p"
- .string "I guess that’s about all I wanted\n"
- .string "to ask you today.\p"
- .string "Let’s meet here again, okay?\n"
- .string "Thanks!$"
-
-gText_082BB242:: @ 82BB242
- .string "Uh-huh! One {STR_VAR_1}.\n"
- .string "What a cool choice!\l"
- .string "I’ll definitely try that!\p"
- .string "I guess that’s about all I wanted\n"
- .string "to ask you today.\p"
- .string "Let’s meet here again, okay?\n"
- .string "Thanks!$"
-
-gText_082BB2D9:: @ 82BB2D9
- .string "Ahahah! That’s silly!\n"
- .string "You already told me about that\l"
- .string "{STR_VAR_1} before!\p"
- .string "Are you feeling okay, {PLAYER}?\p"
- .string "Oh, wait! My {STR_VAR_2} doesn’t\n"
- .string "need to hold an item, you’re saying.$"
-
-gText_082BB370:: @ 82BB370
- .string "Hello, {PLAYER}. I hope you’ve been\n"
- .string "keeping well.\p"
- .string "May I approach you for advice?\p"
- .string "In a recent battle, my opponent\n"
- .string "seemed to have given his POKéMON\l"
- .string "an item to hold.\p"
- .string "As a result, I was defeated…\p"
- .string "I don’t wish to be left behind.\n"
- .string "I would like to make my {STR_VAR_1}\l"
- .string "hold an item, too.\p"
- .string "It would please me if you could decide\n"
- .string "what would be right for my POKéMON…$"
-
-gText_082BB4C3:: @ 82BB4C3
- .string "In other words… My POKéMON has\n"
- .string "no need to hold an item?$"
-
-gText_082BB4FB:: @ 82BB4FB
- .string "I understand clearly now!\n"
- .string "I will keep trying like this.\p"
- .string "Thank you, {PLAYER}.\n"
- .string "I hope I can count on you again.\l"
- .string "Please take care!$"
-
-gText_082BB575:: @ 82BB575
- .string "One {STR_VAR_1} it is!\n"
- .string "I will order it right away.\p"
- .string "Thank you, {PLAYER}.\n"
- .string "I hope I can count on you again.\l"
- .string "Please take care!$"
-
-gText_082BB5E1:: @ 82BB5E1
- .string "You’ve already told me about that,\n"
- .string "and I already have it.\p"
- .string "Or are you saying… My POKéMON has\n"
- .string "no need to hold an item?$"
-
-gText_082BB656:: @ 82BB656
- .string "Eek! {PLAYER}!\n"
- .string "I… I’m overjoyed to see you again!\p"
- .string "Oh-oh-oh! There’s something I just\n"
- .string "had to ask you, {PLAYER}!\p"
- .string "Please decide what my {STR_VAR_1}\n"
- .string "should be holding!$"
-
-gText_082BB6E5:: @ 82BB6E5
- .string "Oh, wow! I didn’t expect that answer!\n"
- .string "So, a hold item isn’t necessary?$"
-
-gText_082BB72C:: @ 82BB72C
- .string "Perfectly understood!\n"
- .string "I’ll keep at this without an item!\p"
- .string "I hope you’ll be willing to teach me\n"
- .string "some more another time.$"
-
-gText_082BB7A2:: @ 82BB7A2
- .string "{STR_VAR_1}! I’ll use that!\p"
- .string "Um… Could it be, {PLAYER}, you also\n"
- .string "make your POKéMON hold that item?\p"
- .string "I’ll be sure to get it!\n"
- .string "I hope you’ll be willing to teach me\l"
- .string "some more another time.$"
-
-gText_082BB84A:: @ 82BB84A
- .string "Oh? You recommended that\n"
- .string "{STR_VAR_1} before, too.\p"
- .string "Or is it the best thing to hold?\n"
- .string "Or do you mean that my {STR_VAR_2}\l"
- .string "doesn’t need anything to hold?$"
-
-gText_082BB8CD:: @ 82BB8CD
- .string "Hola!\n"
- .string "My maestro, {PLAYER}{STRING 5}!\p"
- .string "I want to hit you up for advice on\n"
- .string "POKéMON tools.\p"
- .string "What do you think would be good for\n"
- .string "my {STR_VAR_1} to hold?\p"
- .string "Don’t be shy now.\n"
- .string "Let’s blurt it out!$"
-
-gText_082BB970:: @ 82BB970
- .string "Oh? So, you’re saying my {STR_VAR_1}\n"
- .string "can win without holding any item?$"
-
-gText_082BB9AE:: @ 82BB9AE
- .string "Si, bueno!\n"
- .string "I’ll give it my best shot, like, slam!\p"
- .string "All right, thanks, as always!\n"
- .string "Adios!$"
-
-gText_082BBA05:: @ 82BBA05
- .string "Uh-huh, that’s one {STR_VAR_1}?\n"
- .string "Si, bueno!\l"
- .string "I’ll go find me one, like, bam!\p"
- .string "All right, thanks, as always!\n"
- .string "Adios!$"
-
-gText_082BBA6C:: @ 82BBA6C
- .string "No, no! You already told me about\n"
- .string "that {STR_VAR_1} thing before.\p"
- .string "Oh, now wait just one minute here…\n"
- .string "So, you’re saying my {STR_VAR_2}\l"
- .string "can win without holding any item?$"
-
-gText_082BBB01:: @ 82BBB01
- .string "{PLAYER}{STRING 5}, something unbelievable\n"
- .string "has happened!\p"
- .string "I woke up this morning, and my POKéMON\n"
- .string "had 10 NUGGETS!\p"
- .string "Of course I’m lying!\n"
- .string "Wahahaha!\p"
- .string "This is no lie, though.\n"
- .string "I’m not very good at thinking about\l"
- .string "what items POKéMON should hold.\p"
- .string "So, how about deciding for me what\n"
- .string "my {STR_VAR_1} should hold, master?$"
-
-gText_082BBC1C:: @ 82BBC1C
- .string "What’s that mean?\n"
- .string "Don’t make it hold anything?$"
-
-gText_082BBC4B:: @ 82BBC4B
- .string "Okay, so it shouldn’t hold anything.\n"
- .string "Then, I’d better get something for it!\p"
- .string "Just kidding!\n"
- .string "I’ll obey your teaching, master!\p"
- .string "Thanks, master!\n"
- .string "I hope you’ll keep teaching me!$"
-
-gText_082BBCF6:: @ 82BBCF6
- .string "Okay, so it’s one {STR_VAR_1}!\n"
- .string "I’ll make it hold anything but that!\p"
- .string "Just kidding!\n"
- .string "I’ll obey your teaching, master!\p"
- .string "Thanks, master!\n"
- .string "I hope you’ll keep teaching me!$"
-
-gText_082BBD90:: @ 82BBD90
- .string "Um, you told me about that before,\n"
- .string "didn’t you?\p"
- .string "Isn’t there something else?\p"
- .string "Or do you mean, don’t make\n"
- .string "my {STR_VAR_2} hold anything?$"
-
-gText_082BBE0B:: @ 82BBE0B
- .string "A-H-O-Y!\n"
- .string "And that spells ahoy!\p"
- .string "The rappin’ SAILOR am I!\n"
- .string "I present to you a question\l"
- .string "that’s pretty fly!\p"
- .string "It’s an item question\n"
- .string "that begs your suggestion!\p"
- .string "My {STR_VAR_1} needs an item to hold,\n"
- .string "What should it be, if I may be bold?$"
-
-gText_082BBEE5:: @ 82BBEE5
- .string "Is that right?\n"
- .string "My {STR_VAR_1} doesn’t need to be\l"
- .string "holding anything tight?$"
-
-gText_082BBF25:: @ 82BBF25
- .string "Okay, I hear you, sure I do!\n"
- .string "My POKéMON will go empty-handed, too!\p"
- .string "If it’s advice I ever need,\n"
- .string "{PLAYER}, your word I’ll always heed!$"
-
-gText_082BBFA4:: @ 82BBFA4
- .string "Okay, one {STR_VAR_1},\n"
- .string "that’s what I’ll use.\l"
- .string "I was right to make you choose!\p"
- .string "If it’s advice I ever need,\n"
- .string "{PLAYER}, your word I’ll always heed!$"
-
-gText_082BC024:: @ 82BC024
- .string "Okay, one {STR_VAR_1}, you say?\n"
- .string "You told me that the other day.\l"
- .string "I need a new idea, a brand new way.\p"
- .string "Or, what, is that right?\n"
- .string "My POKéMON doesn’t need to hold\l"
- .string "anything tight?$"
-
-gText_082BC0C8:: @ 82BC0C8
- .string "Say, hey, {PLAYER}!\n"
- .string "I found you again today!\p"
- .string "What should I do? Get your advice?\n"
- .string "Why not? I’m already talking to you!\p"
- .string "{PLAYER}, are you getting sick of me?\n"
- .string "Nah, no way, that can’t be.\p"
- .string "Will you hear me out?\n"
- .string "I’m looking for advice--that’s what\l"
- .string "I’m talking about.\p"
- .string "It’s about a hold item for\n"
- .string "my {STR_VAR_1} that’d be good.\l"
- .string "My indecision is making me brood.$"
-
-gText_082BC213:: @ 82BC213
- .string "My {STR_VAR_1} needs nothing?\n"
- .string "Doesn’t need to hold anything?$"
-
-gText_082BC247:: @ 82BC247
- .string "If holding nothing is the best,\n"
- .string "I’ll do as you suggest!\p"
- .string "Well, {PLAYER}, I have to roam free,\n"
- .string "but don’t you forget about me.\p"
- .string "See you again, my smart friend!$"
-
-gText_082BC2DD:: @ 82BC2DD
- .string "If holding that {STR_VAR_1} is\n"
- .string "the best, I’ll do as you suggest!\p"
- .string "Well, {PLAYER}, I have to roam free,\n"
- .string "but don’t you forget about me.\p"
- .string "See you again, my smart friend!$"
-
-gText_082BC373:: @ 82BC373
- .string "Haven’t I heard about that\n"
- .string "{STR_VAR_1} before?\l"
- .string "I’m certain I have, that’s for sure!\p"
- .string "I need a new something!\n"
- .string "Or, my {STR_VAR_2} needs nothing?\l"
- .string "Doesn’t need to hold anything?$"
-
-gText_082BC40E:: @ 82BC40E
- .string "Gwah! Ouch! {PLAYER}{STRING 5}, my arm’s broken!\n"
- .string "Don’t touch it, please!\p"
- .string "I must’ve broken it while I was trying\n"
- .string "out different hold items with my posse\l"
- .string "of POKéMON.\p"
- .string "So, things being this way,\n"
- .string "I need you to decide for me.\p"
- .string "{PLAYER}{STRING 5}, what do you think would be\n"
- .string "good for my {STR_VAR_1} to hold?$"
-
-gText_082BC514:: @ 82BC514
- .string "Ouch…\p"
- .string "So your suggestion is my {STR_VAR_1}\n"
- .string "doesn’t have to hold anything?$"
-
-gText_082BC555:: @ 82BC555
- .string "Hm, all right. That would be easier\n"
- .string "for me, the way things are now.\p"
- .string "I hope I can keep hitting you up\n"
- .string "for help like this.$"
-
-gText_082BC5CE:: @ 82BC5CE
- .string "Hm, all right. That’s one {STR_VAR_1}.\n"
- .string "My POKéMON’s arm is fine, so I’ll make\l"
- .string "it hold that item right away.\p"
- .string "I hope I can keep hitting you up\n"
- .string "for help like this.$"
-
-gText_082BC666:: @ 82BC666
- .string "No, no, you told me about that\n"
- .string "{STR_VAR_1} before, remember?\p"
- .string "How about telling me something\n"
- .string "even better?\p"
- .string "Oh, wait a second.\n"
- .string "So your suggestion is my {STR_VAR_2}\l"
- .string "doesn’t have to hold anything?$"
-
-gText_082BC714:: @ 82BC714
- .string "Er… Um…\n"
- .string "{PLAYER}{STRING 5}…\p"
- .string "Please, don’t look at me that way.\n"
- .string "My POKéMON don’t have anything.\p"
- .string "I… I’m really embarrassed about this,\n"
- .string "but I really need your advice.\p"
- .string "I can’t decide what hold item would\n"
- .string "make my {STR_VAR_1} strong.\p"
- .string "{PLAYER}{STRING 5}, what do you think would\n"
- .string "be good?$"
-
-gText_082BC808:: @ 82BC808
- .string "Oh… Then, you think it would be better\n"
- .string "if my {STR_VAR_1} didn’t have an item?$"
-
-gText_082BC84D:: @ 82BC84D
- .string "Oh… Okay!\n"
- .string "I’ll go without an item.\p"
- .string "This is nerve-racking, though.\n"
- .string "Wouldn’t it be too cool?\p"
- .string "Thank you, {PLAYER}{STRING 5}.\n"
- .string "If we meet again, I hope you will be\l"
- .string "as helpful.$"
-
-gText_082BC8EA:: @ 82BC8EA
- .string "Oh… Okay!\n"
- .string "I’ll go with that {STR_VAR_1}.\p"
- .string "This is nerve-racking, though.\n"
- .string "Wouldn’t it be too cool?\p"
- .string "Thank you, {PLAYER}{STRING 5}.\n"
- .string "If we meet again, I hope you will be\l"
- .string "as helpful.$"
-
-gText_082BC984:: @ 82BC984
- .string "B-but I already heard about that.\p"
- .string "Please don’t brush me off like this!\n"
- .string "I can’t live with the humiliation.\p"
- .string "Oh… Am I jumping to conclusions?\n"
- .string "Do you think it would be better if\l"
- .string "my {STR_VAR_2} didn’t have an item?$"
-
-gText_082BCA4D:: @ 82BCA4D
- .string "Hm? You appear to be {PLAYER}{STRING 5}…\n"
- .string "But are you really?\l"
- .string "Perhaps you’re a twin?\p"
- .string "Oh, no, no, no, don’t worry!\n"
- .string "If you really are {PLAYER}, please\l"
- .string "forget about my rudeness.\p"
- .string "What I would like is some more of\n"
- .string "your fine advice.\p"
- .string "I have here my {STR_VAR_1} that I wish\n"
- .string "to make hold a convenient item.\p"
- .string "What would be worthy of it?$"
-
-gText_082BCB75:: @ 82BCB75
- .string "It’s better if it held nothing?\n"
- .string "Are you certain?$"
-
-gText_082BCBA6:: @ 82BCBA6
- .string "I see. If that’s the case, that’s fine.\n"
- .string "I thank you for your time.\p"
- .string "Let us meet again!$"
-
-gText_082BCBFC:: @ 82BCBFC
- .string "One {STR_VAR_1}?\n"
- .string "Are you certain?\p"
- .string "I see. If that’s the case, that’s fine.\n"
- .string "I thank you for your time.\p"
- .string "I do hope my POKéMON will be able to\n"
- .string "put it to good use.\p"
- .string "Let us meet again!$"
-
-gText_082BCCA4:: @ 82BCCA4
- .string "No, no, wait a minute.\n"
- .string "I believe you taught me that before.\p"
- .string "I would like you to recommend\n"
- .string "something different this time.\p"
- .string "Perhaps you’re suggesting that\n"
- .string "my {STR_VAR_2} should hold nothing?\l"
- .string "Are you certain?$"
-
-gText_082BCD68:: @ 82BCD68
- .string "Waah, {PLAYER}!\n"
- .string "I have a dilemma, sob…\p"
- .string "I want to begin battling other people,\n"
- .string "but I don’t know what to do.\p"
- .string "How should I line up my POKéMON\n"
- .string "so they’ll be at their strongest?\p"
- .string "Please tell me, {PLAYER}.\n"
- .string "If you were me, which of these POKéMON\l"
- .string "would you send out first?$"
-
-gText_082BCE64:: @ 82BCE64
- .string "My {STR_VAR_1} should go first?\n"
- .string "Waaaaah!\p"
- .string "Oh! I’m so sorry!\n"
- .string "You’ve made me happy by choosing\l"
- .string "my first POKéMON, and it’s made me cry…\p"
- .string "Thank you so much!$"
-
-gText_082BCEF2:: @ 82BCEF2
- .string "Yay! It’s {PLAYER}!\n"
- .string "Great! I wanted to ask you something!\p"
- .string "Um, of my POKéMON, which do you\n"
- .string "think should go out first?$"
-
-gText_082BCF61:: @ 82BCF61
- .string "My {STR_VAR_1}? That’s true.\n"
- .string "Okay, I’ll do that!\p"
- .string "Thanks for teaching me!$"
-
-gText_082BCFA1:: @ 82BCFA1
- .string "{PLAYER}, hello!\p"
- .string "I think, in a battle, it’s very important\n"
- .string "which POKéMON comes out first.\p"
- .string "Out of the POKéMON that I have,\n"
- .string "which would be good to send out first?$"
-
-gText_082BD03C:: @ 82BD03C
- .string "My {STR_VAR_1} goes first?\n"
- .string "Okay, I got it!\p"
- .string "See you again!$"
-
-gText_082BD06D:: @ 82BD06D
- .string "Hello, {PLAYER}…\n"
- .string "I’m sorry to disturb you again with\l"
- .string "another question.\p"
- .string "I have so little confidence, I don’t\n"
- .string "know what I’d do without you, {PLAYER}.\p"
- .string "It may be a waste of time for me to\n"
- .string "even worry about it, but I just can’t\l"
- .string "decide something…\p"
- .string "Which of my POKéMON should I send\n"
- .string "out first in a battle?$"
-
-gText_082BD18A:: @ 82BD18A
- .string "My {STR_VAR_1}?\n"
- .string "Understood!\p"
- .string "I can’t believe that you would bother\n"
- .string "to answer my questions so often!\p"
- .string "I’m so grateful that you would even\n"
- .string "speak with me… Thank you!$"
-
-gText_082BD222:: @ 82BD222
- .string "Oh, {PLAYER}{STRING 5}! It’s me!\n"
- .string "I’m so glad to see you because I have\l"
- .string "this little problem.\p"
- .string "I can’t decide how my POKéMON should\n"
- .string "be lined up. Could you decide for me?\p"
- .string "Oh, you don’t need to decide the whole\n"
- .string "party right now.\p"
- .string "How about deciding just the first\n"
- .string "POKéMON for me?$"
-
-gText_082BD325:: @ 82BD325
- .string "My {STR_VAR_1}? That’s great!\p"
- .string "Knowing that you made the decision,\n"
- .string "{PLAYER}{STRING 5}, I won’t be so upset if\l"
- .string "I lose.\p"
- .string "Okay, I’ll look to you for advice again.\n"
- .string "Bye!$"
-
-gText_082BD3B1:: @ 82BD3B1
- .string "Hi, my teacher {PLAYER}{STRING 5}!\n"
- .string "I’m busy again today!\p"
- .string "I have to do some cycling, shopping,\n"
- .string "and humming.\p"
- .string "I haven’t even had the time to decide\n"
- .string "how to line up my POKéMON team.\p"
- .string "So, how about checking out my team?\n"
- .string "Which one should go first?$"
-
-gText_082BD493:: @ 82BD493
- .string "Okay, gotcha.\n"
- .string "I have enough time at least to put\l"
- .string "my {STR_VAR_1} at the head of the line!\p"
- .string "Whoops, my girlfriend’s waiting!\n"
- .string "Thanks! See you around!$"
-
-gText_082BD51C:: @ 82BD51C
- .string "Yoohoo! Hiya, {PLAYER}!\n"
- .string "You always walk around looking tough!\p"
- .string "Listen, I need something from you\n"
- .string "again! It’s the usual thing!\p"
- .string "Drum roll, please!\n"
- .string "The question I have is about my team.\p"
- .string "Which POKéMON of mine should be first\n"
- .string "to go out in a battle?$"
-
-gText_082BD609:: @ 82BD609
- .string "Hmhm!\n"
- .string "My {STR_VAR_1}, you say!\l"
- .string "Thanks for a most cool answer!\p"
- .string "I guess that’s about all I wanted\n"
- .string "to ask you today.\p"
- .string "Let’s meet here again, okay?\n"
- .string "Thanks!$"
-
-gText_082BD697:: @ 82BD697
- .string "Thank you so much for stopping to\n"
- .string "chat with me, {PLAYER}.\p"
- .string "I know I’m taking advantage of your\n"
- .string "kindness, but may I ask for advice?\p"
- .string "I would like you to decide on the order\n"
- .string "of my POKéMON team.\p"
- .string "It would please me if you could decide\n"
- .string "which POKéMON should come first.$"
-
-gText_082BD797:: @ 82BD797
- .string "My {STR_VAR_1} it is!\n"
- .string "I will put it first right away!\p"
- .string "Thank you, {PLAYER}.\n"
- .string "I hope I can count on you again.\l"
- .string "Please take care!$"
-
-gText_082BD806:: @ 82BD806
- .string "Eek! {PLAYER}!\n"
- .string "I… I’m overjoyed to see you again!\p"
- .string "My POKéMON have become much\n"
- .string "stronger!\p"
- .string "But I don’t always win. It seems to\n"
- .string "depend on which POKéMON goes first.\p"
- .string "{PLAYER}, please, I need your help!\p"
- .string "Please decide which of my POKéMON\n"
- .string "should go out first!$"
-
-gText_082BD8F5:: @ 82BD8F5
- .string "Sigh… I’m overwhelmed with happiness…\p"
- .string "It’s like a dream having you decide\n"
- .string "for me, {PLAYER}.\p"
- .string "But perfectly understood!\n"
- .string "I will go with my {STR_VAR_1} first!\p"
- .string "I hope you’ll be willing to teach me\n"
- .string "some more another time.$"
-
-gText_082BD9BE:: @ 82BD9BE
- .string "Hello, hello!\n"
- .string "My mentor, {PLAYER}{STRING 5}!\l"
- .string "Hit me with your sage advice today!\p"
- .string "You see, I pulled together a team of\n"
- .string "three POKéMON. So far so good.\p"
- .string "But the team’s battling order’s not\n"
- .string "settled yet.\p"
- .string "This is where you come in, {PLAYER}{STRING 5}!\n"
- .string "You decide which POKéMON leads off!\p"
- .string "Don’t be shy now.\n"
- .string "Let’s blurt it out!$"
-
-gText_082BDAE1:: @ 82BDAE1
- .string "Uh-huh, my {STR_VAR_1} leads off!\n"
- .string "OK, A-OK!\l"
- .string "I’ll reorder the lineup, like, wham!\p"
- .string "All right, thanks, as always!\n"
- .string "Adios!$"
-
-gText_082BDB4E:: @ 82BDB4E
- .string "{PLAYER}{STRING 5}, listen!\n"
- .string "It’s a crisis!\p"
- .string "My POKéMON, all three of them, go into\n"
- .string "battle at once!\p"
- .string "Of course that’s impossible!\n"
- .string "Wahahaha!\p"
- .string "This is no lie, though.\n"
- .string "I’m not very good at thinking about\l"
- .string "how I should line up my POKéMON.\p"
- .string "So, how about deciding for me which\n"
- .string "POKéMON should go first, master?$"
-
-gText_082BDC6B:: @ 82BDC6B
- .string "Okay, so it’s my {STR_VAR_1} you chose?\n"
- .string "I’ll let any but that one go first!\p"
- .string "Just kidding!\n"
- .string "I’ll obey your teaching, master!\p"
- .string "Thanks, master!\n"
- .string "I hope you’ll keep teaching me!$"
-
-gText_082BDD0D:: @ 82BDD0D
- .string "A-H-O-Y!\n"
- .string "And that spells ahoy!\p"
- .string "The rappin’ SAILOR am I!\n"
- .string "I present to you a question\l"
- .string "that’s pretty fly!\p"
- .string "It’s a team lineup question\n"
- .string "that begs your suggestion!\p"
- .string "Out of this lot, which should go first\n"
- .string "as the first on the spot?$"
-
-gText_082BDDEC:: @ 82BDDEC
- .string "Okay, I hear you, sure I do!\n"
- .string "I’ll switch them up, that I’ll do!\p"
- .string "If it’s advice I ever need,\n"
- .string "{PLAYER}, your word I’ll always heed!$"
-
-gText_082BDE68:: @ 82BDE68
- .string "Yahoo, {PLAYER}!\n"
- .string "How do you do?\p"
- .string "What should I do? Go ahead and ask?\n"
- .string "Uh-huh, I have something to ask!\l"
- .string "Are you receiving me?\l"
- .string "You are receiving me!\p"
- .string "You have to decide, which of my\n"
- .string "POKéMON is the first to ride!\l"
- .string "Into battle, I mean to say.$"
-
-gText_082BDF4D:: @ 82BDF4D
- .string "My {STR_VAR_1}? Yes!\n"
- .string "That’ll do, there’s no distress!\p"
- .string "Well, {PLAYER}, I have to roam free,\n"
- .string "but don’t you forget about me.\p"
- .string "See you again, my smart friend!$"
-
-gText_082BDFD8:: @ 82BDFD8
- .string "…Oof…ooch… {PLAYER}{STRING 5}…\n"
- .string "My stomach’s hurting all of a sudden…\p"
- .string "…It’s getting better now…\p"
- .string "I must’ve worried myself sick racking\n"
- .string "my brains on how I should line up\l"
- .string "my posse of POKéMON.\p"
- .string "So, things being this way,\n"
- .string "I need you to decide for me.\p"
- .string "{PLAYER}{STRING 5}, which of my POKéMON should\n"
- .string "go first? So I’d win, I mean.$"
-
-gText_082BE0FD:: @ 82BE0FD
- .string "Hm, all right.\n"
- .string "My {STR_VAR_1} goes first.\p"
- .string "I’ll fix the lineup like that after\n"
- .string "I have my supper.\p"
- .string "I hope I can keep hitting you up\n"
- .string "for help like this.$"
-
-gText_082BE189:: @ 82BE189
- .string "Er… Um…\n"
- .string "{PLAYER}{STRING 5}?\p"
- .string "Please, don’t look at me that way.\n"
- .string "You’re making me feel all flustered.\p"
- .string "Um…\n"
- .string "I really need your advice.\p"
- .string "It makes me bashful to say this,\n"
- .string "but I chose my 3-POKéMON team.\l"
- .string "I can’t decide on the order, though.\p"
- .string "Which POKéMON should I send out first\n"
- .string "so I at least look capable?$"
-
-gText_082BE2A5:: @ 82BE2A5
- .string "Oh… Okay!\n"
- .string "I’ll lead with my {STR_VAR_1}.\p"
- .string "I hope I can do my best without\n"
- .string "getting all flustered.\p"
- .string "Thank you, {PLAYER}{STRING 5}.\n"
- .string "If we meet again, I hope you will be\l"
- .string "as helpful.$"
-
-gText_082BE33E:: @ 82BE33E
- .string "Hm? You appear to be {PLAYER}{STRING 5}…\n"
- .string "But are you really?\l"
- .string "Perhaps you’re a clever look-alike?\p"
- .string "Oh, no, no, no, don’t worry!\n"
- .string "If you really are {PLAYER}, please\l"
- .string "forget about my rudeness.\p"
- .string "What I would like is your fine advice.\p"
- .string "I have here my POKéMON team.\n"
- .string "I would like you to tell me which one\l"
- .string "should go first in a battle.$"
-
-gText_082BE46C:: @ 82BE46C
- .string "My {STR_VAR_1}…\n"
- .string "You aren’t pulling my leg?\p"
- .string "I see. If that’s the case, that’s fine.\n"
- .string "I thank you for your time.\p"
- .string "I am as you see, but I shall do\n"
- .string "my best.\p"
- .string "Let us meet again!$"
-
-gText_082BE50D:: @ 82BE50D
- .string "Snivel…\n"
- .string "Oh, {PLAYER}!\p"
- .string "What perfect timing!\n"
- .string "There’s something I just can’t decide…\p"
- .string "I can’t decide which POKéMON I should\n"
- .string "be using.\p"
- .string "I can’t decide between the POKéMON\n"
- .string "{STR_VAR_1} and {STR_VAR_2}…\p"
- .string "{PLAYER}, which do you think will give\n"
- .string "even me a chance at winning?$"
-
-gText_082BE5F5:: @ 82BE5F5
- .string "Snivel… I… I understand!\n"
- .string "Oh! I’m so sorry!\l"
- .string "You’ve made me so happy, I’m crying…\p"
- .string "I’ll do my best to catch one\n"
- .string "{STR_VAR_1}!\p"
- .string "Thank you so much!$"
-
-gText_082BE679:: @ 82BE679
- .string "Yay! It’s {PLAYER}!\n"
- .string "Yay, you came at the right time, too!\l"
- .string "I need your advice again!\p"
- .string "Um, I’m all mixed up--should I use\n"
- .string "my {STR_VAR_1} or {STR_VAR_2}…\p"
- .string "Which do you think I should raise,\n"
- .string "{PLAYER}?$"
-
-gText_082BE71E:: @ 82BE71E
- .string "Oh, so my {STR_VAR_1} is better!\n"
- .string "Okay, I’ll do that!\p"
- .string "Thanks for teaching me!$"
-
-gText_082BE762:: @ 82BE762
- .string "{PLAYER}, hello!\n"
- .string "I have a question I wanted to ask.\p"
- .string "I’m in a dilemma over whether I should\n"
- .string "raise one {STR_VAR_1} or {STR_VAR_2}.\p"
- .string "Which POKéMON do you think will\n"
- .string "be stronger?$"
-
-gText_082BE7F8:: @ 82BE7F8
- .string "{STR_VAR_1} is your choice?\n"
- .string "Okay, I got it!\p"
- .string "I’ll go catch a strong {STR_VAR_1}\n"
- .string "right away!\p"
- .string "See you again!$"
-
-gText_082BE850:: @ 82BE850
- .string "Hello, {PLAYER}…\p"
- .string "Um, you’ve probably already forgotten\n"
- .string "about someone like me…\p"
- .string "…But that doesn’t matter if you\n"
- .string "could give me advice…\p"
- .string "I can’t decide on the one kind of\n"
- .string "POKéMON I should raise…\p"
- .string "I’ve narrowed the field to the POKéMON\n"
- .string "{STR_VAR_1} and {STR_VAR_2}, but that’s\l"
- .string "where I became stuck…\p"
- .string "{PLAYER}, you probably don’t want to\n"
- .string "bother, but please decide for me.$"
-
-gText_082BE99C:: @ 82BE99C
- .string "But will a wild {STR_VAR_1} even pay\n"
- .string "attention to me?\p"
- .string "I will try!\p"
- .string "But will I even be able to catch one…\n"
- .string "No! I’ll do my best!\p"
- .string "Thank you!$"
-
-gText_082BEA1B:: @ 82BEA1B
- .string "Oh, {PLAYER}{STRING 5}! I’m so glad to see you!\n"
- .string "I was about to go looking for you!\p"
- .string "Can you decide what kind of POKéMON\n"
- .string "I should use?\p"
- .string "For instance…\n"
- .string "How about the POKéMON {STR_VAR_1}\l"
- .string "and {STR_VAR_2}?\p"
- .string "Which one do you think would be\n"
- .string "better?$"
-
-gText_082BEAE9:: @ 82BEAE9
- .string "{STR_VAR_1}? That’s great!\p"
- .string "Knowing that you made the decision,\n"
- .string "{PLAYER}{STRING 5}, I won’t be so upset if\l"
- .string "I lose.\p"
- .string "Okay, I’ll look to you for advice again.\n"
- .string "Bye!$"
-
-gText_082BEB72:: @ 82BEB72
- .string "If it isn’t {PLAYER}{STRING 5}! How’s it going?\n"
- .string "I’m busy again as always!\p"
- .string "I want to do good with POKéMON, too,\n"
- .string "but I haven’t been able to decide\l"
- .string "which POKéMON I should use.\p"
- .string "You know how {STR_VAR_1} look strong?\n"
- .string "But {STR_VAR_2} are tough to ignore.\p"
- .string "{PLAYER}{STRING 5}, give me some of your good\n"
- .string "advice! Which one’d be good for me?$"
-
-gText_082BEC8E:: @ 82BEC8E
- .string "Okay, gotcha.\n"
- .string "I’ll find time somehow and catch me\l"
- .string "that {STR_VAR_1} you recommended.\p"
- .string "I’m glad I met a good mentor in you.\n"
- .string "Thanks! See you around!$"
-
-gText_082BED16:: @ 82BED16
- .string "Oh!\n"
- .string "Yay, it’s {PLAYER}!\p"
- .string "I didn’t waste any time boasting to\n"
- .string "my friends about meeting you!\p"
- .string "I need to tap your mind again today.\n"
- .string "It’s an easy one for you!\p"
- .string "Drum roll, please!\n"
- .string "The question I have is…\p"
- .string "If I were to raise a POKéMON,\n"
- .string "and the choices were one {STR_VAR_1}\l"
- .string "or {STR_VAR_2}, which should it be?$"
-
-gText_082BEE29:: @ 82BEE29
- .string "Ahhh!\n"
- .string "{STR_VAR_1}, you say!\l"
- .string "Thanks for a most cool answer!\p"
- .string "I guess that’s about all I wanted\n"
- .string "to ask you today.\p"
- .string "Let’s meet here again, okay?\n"
- .string "Thanks!$"
-
-gText_082BEEB4:: @ 82BEEB4
- .string "Oh, is it you, {PLAYER}?\n"
- .string "I’m delighted to see you again!\p"
- .string "Ever since I became your apprentice,\n"
- .string "my confidence has been blooming.\p"
- .string "I think I’m ready to raise a POKéMON\n"
- .string "of my own!\p"
- .string "{PLAYER}, may I impose on you to choose\n"
- .string "which POKéMON I should raise?\p"
- .string "The choices are the POKéMON\n"
- .string "{STR_VAR_1} or {STR_VAR_2}…\l"
- .string "Which POKéMON is right for me?$"
-
-gText_082BEFE2:: @ 82BEFE2
- .string "One {STR_VAR_1} it is!\n"
- .string "I will find one right away!\p"
- .string "Thank you, {PLAYER}.\n"
- .string "I hope I can count on you again.\l"
- .string "Please take care!$"
-
-gText_082BF04E:: @ 82BF04E
- .string "Eek! {PLAYER}! I met you again!\n"
- .string "I… I’m overjoyed!\p"
- .string "Oh-oh-oh, I know!\n"
- .string "I shouldn’t pass up this opportunity!\p"
- .string "May I ask a huge favor, {PLAYER}?\n"
- .string "Please choose a POKéMON for me!\p"
- .string "Please decide which would be better,\n"
- .string "{STR_VAR_1} or {STR_VAR_2}!$"
-
-gText_082BF11D:: @ 82BF11D
- .string "Wow! You decided for me!\n"
- .string "One {STR_VAR_1} is what I’ll raise to\l"
- .string "the best of my ability.\p"
- .string "I hope you’ll be willing to teach me\n"
- .string "some more another time.$"
-
-gText_082BF1A8:: @ 82BF1A8
- .string "Hey, hey!\n"
- .string "My mentor, {PLAYER}{STRING 5}!\p"
- .string "Hello, I’ve been looking for you\n"
- .string "for some more of your sage advice!\p"
- .string "Which kind of POKéMON would be right\n"
- .string "for me, one {STR_VAR_1} or {STR_VAR_2}?\p"
- .string "Don’t be shy now.\n"
- .string "Let’s blurt it out!$"
-
-gText_082BF268:: @ 82BF268
- .string "Uh-huh, one {STR_VAR_1} it is!\n"
- .string "OK, A-OK!\l"
- .string "I’ll get one in a BALL, like, cram!\p"
- .string "All right, thanks, as always!\n"
- .string "Adios!$"
-
-gText_082BF2D1:: @ 82BF2D1
- .string "{PLAYER}{STRING 5}, listen! Big news!\n"
- .string "I caught a mirage POKéMON!\p"
- .string "Of course I’m lying!\n"
- .string "Wahahaha!\p"
- .string "This is no lie, though.\n"
- .string "I’m not very good at catching\l"
- .string "POKéMON.\p"
- .string "So, how about deciding for me which\n"
- .string "kind of POKéMON I should catch,\l"
- .string "master?\p"
- .string "Which would be better?\n"
- .string "{STR_VAR_1} or {STR_VAR_2}?$"
-
-gText_082BF3CF:: @ 82BF3CF
- .string "Okay, so it’s {STR_VAR_1} you chose?\n"
- .string "I’ll grab the other kind, then!\p"
- .string "Just kidding!\n"
- .string "I’ll obey your teaching, master!\p"
- .string "Thanks, master!\n"
- .string "I hope you’ll keep teaching me!$"
-
-gText_082BF46A:: @ 82BF46A
- .string "A-H-O-Y!\n"
- .string "And that spells ahoy!\p"
- .string "The rappin’ SAILOR am I!\n"
- .string "Surely you remember who am I?\p"
- .string "Today, I have a POKéMON question\n"
- .string "that begs your suggestion!\p"
- .string "I have the choice between this\n"
- .string "{STR_VAR_1} and {STR_VAR_2}, you see.\l"
- .string "Which is the one to catch for me?$"
-
-gText_082BF551:: @ 82BF551
- .string "{STR_VAR_1}, you say, hey, hey!\n"
- .string "I’ll go get me one right away!\p"
- .string "If it’s advice I ever need,\n"
- .string "{PLAYER}, your word I’ll always heed!$"
-
-gText_082BF5C3:: @ 82BF5C3
- .string "Oh, wow, if it isn’t {PLAYER}!\p"
- .string "What should I do? Get your advice?\n"
- .string "Why not? I’m already talking to you!\p"
- .string "It’s been a long time. Let me break\n"
- .string "the ice. I’m also looking for advice!\l"
- .string "Are you receiving me?\l"
- .string "You are receiving me!\p"
- .string "My POKéMON--which should I use?\n"
- .string "It’s either {STR_VAR_1} or {STR_VAR_2}.\l"
- .string "Which do you choose?$"
-
-gText_082BF6E5:: @ 82BF6E5
- .string "If that {STR_VAR_1} is the best,\n"
- .string "I’ll do as you suggest!\p"
- .string "Well, {PLAYER}, I have to roam free,\n"
- .string "but don’t you forget about me.\p"
- .string "See you again, my smart friend!$"
-
-gText_082BF773:: @ 82BF773
- .string "Oh, hi, {PLAYER}{STRING 5}…\n"
- .string "I have this horrible headache…\p"
- .string "I must’ve worried too much about\n"
- .string "the kind of POKéMON I should raise.\p"
- .string "So, things being this way,\n"
- .string "I need you to decide for me.\p"
- .string "{PLAYER}{STRING 5}, if I had to choose between\n"
- .string "the POKéMON {STR_VAR_1} and\l"
- .string "{STR_VAR_2}, which should it be?$"
-
-gText_082BF869:: @ 82BF869
- .string "Hm, one {STR_VAR_1}, all right.\n"
- .string "I’ll go look for one when I get better.\p"
- .string "I hope I can keep hitting you up\n"
- .string "for help like this.$"
-
-gText_082BF8DD:: @ 82BF8DD
- .string "Er… Um…\n"
- .string "{PLAYER}{STRING 5}…?\p"
- .string "Please, don’t look at me that way.\n"
- .string "I’m getting all flustered…\l"
- .string "I… I need your advice.\p"
- .string "I… I’m really embarrassed, but I can’t\n"
- .string "decide which POKéMON to use.\p"
- .string "If the choices were {STR_VAR_1} or\n"
- .string "{STR_VAR_2}, which would be better?$"
-
-gText_082BF9BA:: @ 82BF9BA
- .string "Oh… Okay!\n"
- .string "I’ll do my best with one {STR_VAR_1}.\p"
- .string "I hope I can do my best without\n"
- .string "getting all flustered.\p"
- .string "Thank you, {PLAYER}{STRING 5}.\n"
- .string "If we meet again, I hope you will be\l"
- .string "as helpful.$"
-
-gText_082BFA5A:: @ 82BFA5A
- .string "Hm? You appear to be {PLAYER}{STRING 5}…\n"
- .string "But are you really real?\p"
- .string "No, no, if you are real, it’s fine.\n"
- .string "Incidentally, I would like to obtain\l"
- .string "your advice.\p"
- .string "It’s about the POKéMON I am to use.\p"
- .string "If the choices are the POKéMON\n"
- .string "{STR_VAR_1} and {STR_VAR_2}, which is\l"
- .string "more worthy of me?$"
-
-gText_082BFB4E:: @ 82BFB4E
- .string "{STR_VAR_1}?\n"
- .string "Are you certain?\p"
- .string "I see. If that’s the case, that’s fine.\n"
- .string "I thank you for your time.\p"
- .string "I do hope it is something even I can\n"
- .string "handle with aplomb.\p"
- .string "Let us meet again!$"
-
-gText_082BFBF2:: @ 82BFBF2
- .string "Waaah! Oh, {PLAYER}!\n"
- .string "Snivel… Hiccup…\p"
- .string "I have a dilemma!\n"
- .string "I can’t decide on a move for\l"
- .string "my {STR_VAR_1}…\p"
- .string "Please, please, {PLAYER}.\n"
- .string "Can you decide for me?\p"
- .string "For my {STR_VAR_1}, which move would\n"
- .string "be the better choice: {STR_VAR_2}\l"
- .string "or {STR_VAR_3}?$"
-
-gText_082BFCAE:: @ 82BFCAE
- .string "{STR_VAR_1}?\n"
- .string "Waaaaah!\p"
- .string "Oh! I’m so sorry, {PLAYER}!\n"
- .string "You’ve made me so happy by deciding\l"
- .string "the move, I’m crying…\p"
- .string "Snivel…\n"
- .string "Thank you so much!$"
-
-gText_082BFD26:: @ 82BFD26
- .string "Yay! Hi, {PLAYER}!\n"
- .string "I need your advice again!\p"
- .string "I want to teach my {STR_VAR_1}\n"
- .string "a cool move.\p"
- .string "I like either of the moves\n"
- .string "{STR_VAR_2} or {STR_VAR_3}.\l"
- .string "What’s your recommendation?$"
-
-gText_082BFDB1:: @ 82BFDB1
- .string "{STR_VAR_1} is better? I guess so!\n"
- .string "Okay, I’ll go with that!\p"
- .string "If we meet here again, please teach\n"
- .string "me something else, teacher!$"
-
-gText_082BFE24:: @ 82BFE24
- .string "{PLAYER}, hello!\n"
- .string "It’s about my {STR_VAR_1}, but I’m\l"
- .string "worried about its moves.\p"
- .string "You see, it’s the moves {STR_VAR_2}\n"
- .string "and {STR_VAR_3}.\p"
- .string "Which is stronger and better for\n"
- .string "my {STR_VAR_1}?$"
-
-gText_082BFEAD:: @ 82BFEAD
- .string "{STR_VAR_1} is your choice?\n"
- .string "Okay, I got it!\p"
- .string "I’ll go teach {STR_VAR_1} to\n"
- .string "my POKéMON right away!\p"
- .string "See you again!$"
-
-gText_082BFF0A:: @ 82BFF0A
- .string "Ohhh, {PLAYER}…\n"
- .string "I’m hopeless, no, really!\p"
- .string "I’ve decided to raise a POKéMON,\n"
- .string "but now I can’t even decide what\l"
- .string "move I should let it learn…\p"
- .string "I know that it doesn’t mean anything\n"
- .string "to you, {PLAYER}.\p"
- .string "But it means a lot to me…\p"
- .string "Please, {PLAYER}, could you choose\n"
- .string "a move for my {STR_VAR_1}?\p"
- .string "If you could even choose between\n"
- .string "{STR_VAR_2} and {STR_VAR_3}…$"
-
-gText_082C0032:: @ 82C0032
- .string "I understand!\p"
- .string "But will it even be willing to learn\n"
- .string "{STR_VAR_1} for me…\l"
- .string "No! I’ll do my best!\p"
- .string "Thank you!$"
-
-gText_082C0090:: @ 82C0090
- .string "Oh, {PLAYER}{STRING 5}!\n"
- .string "I was just hoping to see you, too!\p"
- .string "I was wondering what move would\n"
- .string "be suitable for my {STR_VAR_1}.\p"
- .string "I can’t decide, so can you decide\n"
- .string "for me instead?\p"
- .string "For instance… How about the moves\n"
- .string "{STR_VAR_2} and {STR_VAR_3}?\l"
- .string "Which one would be better?$"
-
-gText_082C016E:: @ 82C016E
- .string "{STR_VAR_1}? That’s great!\p"
- .string "Knowing that you made the decision,\n"
- .string "{PLAYER}{STRING 5}, I won’t be so upset if\l"
- .string "I lose.\p"
- .string "Okay, I’ll look to you for advice again.\n"
- .string "Bye!$"
-
-gText_082C01F7:: @ 82C01F7
- .string "How could things be this busy?\n"
- .string "Hey, if it isn’t {PLAYER}{STRING 5}!\l"
- .string "How’s it going?\p"
- .string "Since I got up this morning, I’ve done\n"
- .string "my jogging, swimming, and cooking!\p"
- .string "You wouldn’t believe how busy I am!\p"
- .string "I can’t even decide what move\n"
- .string "my {STR_VAR_1} should learn!\p"
- .string "{STR_VAR_2} looks good, huh?\n"
- .string "But {STR_VAR_3}’s also decent.\p"
- .string "{PLAYER}{STRING 5}, give me some of your good\n"
- .string "advice! Which move’d be good for me?$"
-
-gText_082C034C:: @ 82C034C
- .string "Okay, gotcha.\n"
- .string "I’ll make room in my schedule and\l"
- .string "teach that move.\p"
- .string "I’m glad I met a good mentor in you.\n"
- .string "Thanks! See you around!$"
-
-gText_082C03CA:: @ 82C03CA
- .string "Oh! Lucky!\n"
- .string "I met you again, {PLAYER}!\l"
- .string "I need to tap your mind again today.\p"
- .string "Drum roll, please!\n"
- .string "The question I have is…\p"
- .string "For my {STR_VAR_1}, which is the move\n"
- .string "best suited, {STR_VAR_2} or\l"
- .string "{STR_VAR_3}?$"
-
-gText_082C046E:: @ 82C046E
- .string "Ahhh!\n"
- .string "{STR_VAR_1}, you say!\l"
- .string "Thanks for a most cool answer!\p"
- .string "I guess that’s about all I wanted\n"
- .string "to ask you today.\p"
- .string "Let’s meet here again, okay?\n"
- .string "Thanks!$"
-
-gText_082C04F9:: @ 82C04F9
- .string "Oh, hello, {PLAYER}.\n"
- .string "I trust you’ve been well?\p"
- .string "I have to seek your advice again.\n"
- .string "It’s about my dearest {STR_VAR_1}.\p"
- .string "What would be the ideal move for\n"
- .string "my lovable {STR_VAR_1}?\l"
- .string "{STR_VAR_2} or {STR_VAR_3}?$"
-
-gText_082C0598:: @ 82C0598
- .string "{STR_VAR_1} it is!\n"
- .string "I will teach that right away!\p"
- .string "Thank you, {PLAYER}.\n"
- .string "I hope I can count on you again.\l"
- .string "Please take care!$"
-
-gText_082C0602:: @ 82C0602
- .string "Eek! {PLAYER}! I met you again!\n"
- .string "I… I’m overjoyed!\p"
- .string "Whenever I’m in need, you’re always\n"
- .string "there for me, {PLAYER}!\p"
- .string "Today, I want you to recommend\n"
- .string "a move for me!\p"
- .string "Please choose a move for\n"
- .string "my {STR_VAR_1}!\p"
- .string "Which move would be better,\n"
- .string "{STR_VAR_2} or {STR_VAR_3}?$"
-
-gText_082C06D8:: @ 82C06D8
- .string "Oh-oh-oh! Thank you!\n"
- .string "{STR_VAR_1} is it!\l"
- .string "Perfectly understood!\p"
- .string "I hope you’ll be willing to teach me\n"
- .string "some more another time.$"
-
-gText_082C074A:: @ 82C074A
- .string "Hola, {PLAYER}{STRING 5}, bueno!\n"
- .string "I’m hoping for some more of\l"
- .string "your sage advice today!\p"
- .string "What would be the best move for\n"
- .string "my {STR_VAR_1}?\p"
- .string "It should be something that’ll\n"
- .string "let me win just like that!\p"
- .string "Would it be {STR_VAR_2}?\n"
- .string "Or {STR_VAR_3}?$"
-
-gText_082C0809:: @ 82C0809
- .string "Uh-huh, {STR_VAR_1} it is!\n"
- .string "Si, bueno!\l"
- .string "I’ll get it taught, like, ka-blam!\p"
- .string "All right, thanks, as always!\n"
- .string "Adios!$"
-
-gText_082C086E:: @ 82C086E
- .string "{PLAYER}{STRING 5}, it’s completely wild!\p"
- .string "My POKéMON!\n"
- .string "It learned six moves!\p"
- .string "Of course I’m lying!\n"
- .string "Wahahaha!\p"
- .string "This is no lie, though.\n"
- .string "I’m not very good at choosing moves\l"
- .string "for my POKéMON.\p"
- .string "So, how about deciding for me which\n"
- .string "kind of move I should teach?\p"
- .string "{STR_VAR_2} or {STR_VAR_3}--which\n"
- .string "would go with my {STR_VAR_1} best?$"
-
-gText_082C0982:: @ 82C0982
- .string "Okay, so it’s {STR_VAR_1} you chose?\n"
- .string "I’ll choose another move, then!\p"
- .string "Just kidding!\n"
- .string "I’ll obey your teaching, master!\p"
- .string "Thanks, master!\n"
- .string "I hope you’ll keep teaching me!$"
-
-gText_082C0A1D:: @ 82C0A1D
- .string "A-H-O-Y!\n"
- .string "And that spells ahoy!\p"
- .string "The rappin’ SAILOR am I!\n"
- .string "I’m always with it, don’t ask me why.\p"
- .string "Today, I have a move question\n"
- .string "that begs your suggestion!\p"
- .string "{STR_VAR_2} and {STR_VAR_3} are\n"
- .string "the moves. What would be the best\l"
- .string "for my {STR_VAR_1} so it grooves?$"
-
-gText_082C0AFD:: @ 82C0AFD
- .string "{STR_VAR_1}, you say, hey, hey!\n"
- .string "I’ll go teach that right away!\p"
- .string "If it’s advice I ever need,\n"
- .string "{PLAYER}, your word I’ll always heed!$"
-
-gText_082C0B6F:: @ 82C0B6F
- .string "Oh, yeahah, if it isn’t {PLAYER}!\p"
- .string "What should I do? Get your advice?\n"
- .string "Why not? I’m already talking to you!\p"
- .string "{PLAYER}, are you surprised by me?\n"
- .string "I want your advice, can’t you see?\p"
- .string "Are you receiving me?\n"
- .string "You are receiving me!\p"
- .string "My {STR_VAR_1}--what should it use?\n"
- .string "It’s {STR_VAR_2} or {STR_VAR_3},\l"
- .string "what do you choose?$"
-
-gText_082C0C7D:: @ 82C0C7D
- .string "If that {STR_VAR_1} is the best,\n"
- .string "I’ll do as you suggest!\p"
- .string "Well, {PLAYER}, I have to roam free,\n"
- .string "but don’t you forget about me.\p"
- .string "See you again, my smart friend!$"
-
-gText_082C0D0B:: @ 82C0D0B
- .string "Gahack! Gaah! Oh, {PLAYER}{STRING 5}…\n"
- .string "I have this lousy cold, I do…\p"
- .string "I want to pick a move for my POKéMON,\n"
- .string "but I’m not up to it…\p"
- .string "So, things being this way,\n"
- .string "I need you to decide for me.\p"
- .string "{PLAYER}{STRING 5}, if I had to choose between\n"
- .string "{STR_VAR_2} and {STR_VAR_3} for\l"
- .string "my {STR_VAR_1}, which would it be?$"
-
-gText_082C0DFE:: @ 82C0DFE
- .string "Hm, {STR_VAR_1}, all right. Cough!\n"
- .string "I’ll go teach it when I get better.\p"
- .string "I hope I can keep hitting you up\n"
- .string "for help like this.$"
-
-gText_082C0E71:: @ 82C0E71
- .string "Er… Um…\n"
- .string "{PLAYER}{STRING 5}…?\p"
- .string "Please, don’t look at me that way.\n"
- .string "I’m getting all flustered…\l"
- .string "I… I need your advice.\p"
- .string "I… I’m really embarrassed, but I can’t\n"
- .string "decide what move I should teach\l"
- .string "my POKéMON.\p"
- .string "It’s for my {STR_VAR_1}.\n"
- .string "If the choices were {STR_VAR_2} or\l"
- .string "{STR_VAR_3}, which would be better?$"
-
-gText_082C0F6D:: @ 82C0F6D
- .string "Oh… Okay!\n"
- .string "I’ll try that {STR_VAR_1}.\p"
- .string "I hope I can teach that move…\n"
- .string "This is so nerve-racking…\p"
- .string "Thank you, {PLAYER}{STRING 5}.\n"
- .string "If we meet again, I hope you will be\l"
- .string "as helpful.$"
-
-gText_082C1003:: @ 82C1003
- .string "Hm? You appear to be {PLAYER}{STRING 5}…\n"
- .string "But are you really real?\p"
- .string "Perhaps you’re one of those popular\n"
- .string "mimics?\p"
- .string "No, no, if you are real, it’s fine.\n"
- .string "No need to be upset, I assure you!\p"
- .string "Incidentally, I would like to obtain\n"
- .string "your advice.\p"
- .string "It’s about my {STR_VAR_1}.\p"
- .string "Which move would be better for it to\n"
- .string "use, {STR_VAR_2} or {STR_VAR_3}?$"
-
-gText_082C1122:: @ 82C1122
- .string "{STR_VAR_1}?\n"
- .string "There’s no question about that?\p"
- .string "I see. If that’s the case, that’s fine.\n"
- .string "I thank you for your time.\p"
- .string "I do hope it is something even\n"
- .string "my POKéMON can learn.\p"
- .string "Let us meet again!$"
-
-gText_082C11D1:: @ 82C11D1
- .string "Oh… {PLAYER}?\n"
- .string "It is {PLAYER}!\l"
- .string "Oh! Sniff…sob… Please, listen!\p"
- .string "I… When I battle, I get so nervous,\n"
- .string "I can’t help crying even if I win…\p"
- .string "I wish I could say something cool\n"
- .string "when I win…\p"
- .string "Please, please, {PLAYER}!\n"
- .string "Could you maybe teach me something\l"
- .string "cool to say when I win so I don’t cry?$"
-
-gText_082C12D5:: @ 82C12D5
- .string "{STR_VAR_1}\p"
- .string "Awesome! Wicked! Awoooh!\n"
- .string "It’s really cool!\p"
- .string "Oh… I’m sorry…\n"
- .string "I’m so happy, I’m crying…\p"
- .string "Snivel… {PLAYER}!\n"
- .string "Thank you so much for everything!\p"
- .string "I will battle the best I can for\n"
- .string "your sake, {PLAYER}!\p"
- .string "{PLAYER}…\n"
- .string "Next time… We should battle!$"
-
-gText_082C13AB:: @ 82C13AB
- .string "Yay! It’s {PLAYER}! Hello!\n"
- .string "I wanted to ask you something!\p"
- .string "I want to say something cool when\n"
- .string "I win a match.\p"
- .string "Do you have a cool saying that\n"
- .string "you could recommend?$"
-
-gText_082C1444:: @ 82C1444
- .string "{STR_VAR_1}\p"
- .string "Oh, wow! That is so cool!\n"
- .string "Okay, I’ll say that!\p"
- .string "Thanks for teaching me all this time!\n"
- .string "I’m going to do the best I can\l"
- .string "wherever I go from now on!\p"
- .string "When we meet again, it’ll be for\n"
- .string "a battle!$"
-
-gText_082C1501:: @ 82C1501
- .string "{PLAYER}, hello!\p"
- .string "My POKéMON and I are ready for\n"
- .string "anything, except for one thing.\p"
- .string "I think it would be good if I had\n"
- .string "something to shout when I win.\p"
- .string "Could you think up something good\n"
- .string "to say?$"
-
-gText_082C15B6:: @ 82C15B6
- .string "{STR_VAR_1}\p"
- .string "…Cool!\n"
- .string "I will use that!\p"
- .string "I’m going out to battle all over\n"
- .string "the place.\p"
- .string "Who knows, I may even get to battle\n"
- .string "you one day, {PLAYER}.\p"
- .string "Next time, let’s meet at a place\n"
- .string "of battle!$"
-
-gText_082C165E:: @ 82C165E
- .string "Hello, {PLAYER}…\n"
- .string "I’m sorry to bug you, but I’m hopeless…\p"
- .string "Even when…\n"
- .string "Even when I win, I don’t have anything\l"
- .string "special to say…\p"
- .string "I know that it doesn’t mean anything\n"
- .string "to you, {PLAYER}.\p"
- .string "But it means a lot to me…\p"
- .string "Please, {PLAYER}, what should I say\n"
- .string "if I win a battle?$"
-
-gText_082C174F:: @ 82C174F
- .string "{STR_VAR_1}\p"
- .string "That’s inspired…\p"
- .string "Uh… Is it okay for someone like me\n"
- .string "to even say that?\p"
- .string "No! I’ll do my best!\p"
- .string "{PLAYER}, thank you so much for\n"
- .string "putting up with me for so long…\p"
- .string "I promise to do my best from now on.\p"
- .string "I’m sure you’ll quickly forget about\n"
- .string "someone like me, but let’s meet\l"
- .string "somewhere again!$"
-
-gText_082C1862:: @ 82C1862
- .string "Oh, {PLAYER}{STRING 5}.\n"
- .string "There’s something I want you to hear.\p"
- .string "I know that I don’t always sound\n"
- .string "nice or polite…\p"
- .string "When I win a battle, I think I come\n"
- .string "across as being arrogant.\p"
- .string "I don’t want people to dislike me,\n"
- .string "so I want to say something nice to\l"
- .string "someone I beat.\p"
- .string "But I can’t think of anything good!\n"
- .string "Could you think something up for me?$"
-
-gText_082C19A0:: @ 82C19A0
- .string "{STR_VAR_1}\p"
- .string "Not bad!\n"
- .string "Yup, that’s what I’ll go with!\p"
- .string "I’m going to hit the road and do what\n"
- .string "I can with what you taught me in\l"
- .string "my head and heart.\p"
- .string "I’m sorry that I’ve been so pushy\n"
- .string "with you!\p"
- .string "Next time, we battle, okay?\n"
- .string "See you!$"
-
-gText_082C1A76:: @ 82C1A76
- .string "Oh, I can’t get over how busy I am!\n"
- .string "Oh, hey, I was looking for you, {PLAYER}{STRING 5}.\p"
- .string "Are you well as usual?\n"
- .string "Things haven’t changed for me at all.\p"
- .string "I’ve got running, fighting, and mapping\n"
- .string "to do. Why am I so busy?\p"
- .string "But even though I’m busy, it’d be rude\n"
- .string "to just turn on my heels and walk away\l"
- .string "from a win without saying a word.\p"
- .string "So, what would be a cool saying to\n"
- .string "underline my coolness when I’m done\l"
- .string "and walking away? {PLAYER}{STRING 5}, help me!$"
-
-gText_082C1C16:: @ 82C1C16
- .string "{STR_VAR_1}\p"
- .string "Okay, gotcha.\n"
- .string "I can find time to say that!\p"
- .string "Honestly, I’m glad I met a good mentor\n"
- .string "like you.\p"
- .string "I’m going to make time somehow so\n"
- .string "I can get into battling.\p"
- .string "Thanks for everything, {PLAYER}{STRING 5}!\n"
- .string "We have to battle, you and me, one day!$"
-
-gText_082C1CF5:: @ 82C1CF5
- .string "I lucked out again!\n"
- .string "{PLAYER}! Am I glad to see you!\l"
- .string "Like usual, I need your advice!\p"
- .string "Drum roll, please!\n"
- .string "The last question I have is…\p"
- .string "If I win a battle and want to end\n"
- .string "it with a cool flourish, what\l"
- .string "should I say?$"
-
-gText_082C1DC1:: @ 82C1DC1
- .string "{STR_VAR_1}\p"
- .string "That… That’s fabulous!\n"
- .string "It’s dignified and cool! I claim it!\p"
- .string "…Listen, I think I’m getting decent\n"
- .string "at this, huh?\p"
- .string "So, I’m thinking of challenging other\n"
- .string "TRAINERS from now on.\p"
- .string "{PLAYER}, your advice really helped me.\p"
- .string "Maybe one day, there’ll be a time when\n"
- .string "we battle!\p"
- .string "Thank you for everything!$"
-
-gText_082C1EDC:: @ 82C1EDC
- .string "Oh, {PLAYER}.\n"
- .string "I’m so glad I met you!\p"
- .string "I no longer have any concerns with\n"
- .string "regard to my POKéMON.\p"
- .string "It’s myself that worries me…\p"
- .string "Do you know how a TRAINER says\n"
- .string "a few things upon winning a battle?\p"
- .string "Definitely, I wish I could do that,\n"
- .string "too!\p"
- .string "Please, what should I say when\n"
- .string "I win a battle?$"
-
-gText_082C1FEC:: @ 82C1FEC
- .string "{STR_VAR_1}\p"
- .string "Ah! That saying! It refreshes me\n"
- .string "and makes me feel reborn!\p"
- .string "I must use that right away!\p"
- .string "And now, I must take my leave,\n"
- .string "{PLAYER}…\p"
- .string "I will go out to battle many others,\n"
- .string "but never will I forget your teachings.\p"
- .string "Perhaps one day…\n"
- .string "Farewell!$"
-
-gText_082C20D1:: @ 82C20D1
- .string "Eek! I spotted {PLAYER}!\n"
- .string "I… I’m overjoyed to see you!\p"
- .string "Oh-oh-oh! There’s something I just\n"
- .string "had to ask you!\p"
- .string "A little while ago, I won a battle.\n"
- .string "That part was giddying!\p"
- .string "But it made me so overjoyed that\n"
- .string "I choked up and couldn’t say a thing!\p"
- .string "So now, {PLAYER}, please, I want you to\n"
- .string "think up an exit line for when I win!$"
-
-gText_082C21FF:: @ 82C21FF
- .string "{STR_VAR_1}\p"
- .string "Waaaaah!\n"
- .string "I’m going to say that?!\l"
- .string "I… I’m delirious with joy!\p"
- .string "Th-th-thank you!\n"
- .string "I have nothing left to regret now!\p"
- .string "I’m going to travel now and battle\n"
- .string "all sorts of people.\p"
- .string "Everything, I owe it to you, {PLAYER}.\n"
- .string "Really, really, thank you!\p"
- .string "I’ve got to go now, but let’s meet\n"
- .string "in battle one day!$"
-
-gText_082C231C:: @ 82C231C
- .string "Hola, bueno!\n"
- .string "{PLAYER}{STRING 5}!\p"
- .string "You know, I’m getting the itch to roam\n"
- .string "and battle where I may.\p"
- .string "But before I do, I want your advice\n"
- .string "once again, please!\p"
- .string "If I were to win a battle, what would\n"
- .string "be a good boast I could say to my\l"
- .string "fallen TRAINER opponent?$"
-
-gText_082C2407:: @ 82C2407
- .string "{STR_VAR_1}\p"
- .string "Uh-huh, that’s sweet!\n"
- .string "Si, bueno!\l"
- .string "I’ll try saying that, like, ham!\p"
- .string "And now, it’s time to say good-bye!\n"
- .string "Thanks for all sorts of things!\p"
- .string "Give me a battle one day, OK?\n"
- .string "Adios!$"
-
-gText_082C24B5:: @ 82C24B5
- .string "{PLAYER}{STRING 5}, there’s big trouble!\p"
- .string "When I win a battle, I brag about it\n"
- .string "for an hour at least!\p"
- .string "Of course I’m lying!\n"
- .string "Wahahaha!\p"
- .string "This is no lie, though.\n"
- .string "I’m not very good at chatting.\p"
- .string "So, how about deciding for me what\n"
- .string "I should say after winning a battle,\l"
- .string "master?$"
-
-gText_082C25B1:: @ 82C25B1
- .string "{STR_VAR_1}\p"
- .string "That’s what I should say, huh?\n"
- .string "Then, I’ll stay away from that!\p"
- .string "Just kidding!\n"
- .string "I’ll obey your teaching, master!\p"
- .string "Thanks for teaching me all this time,\n"
- .string "master!\p"
- .string "I’m finally understanding what being\n"
- .string "a TRAINER is about.\p"
- .string "I’m going to go out and win battles\n"
- .string "against any TRAINER.\p"
- .string "Maybe it’ll be you one day, master!\p"
- .string "That’s all!\n"
- .string "Farewell, my master!$"
-
-gText_082C2707:: @ 82C2707
- .string "A-H-O-Y!\n"
- .string "And that spells ahoy!\p"
- .string "The rappin’ SAILOR am I!\n"
- .string "This will be my last question,\l"
- .string "don’t you cry!\p"
- .string "It’s a saying question\n"
- .string "that begs your suggestion!\p"
- .string "If I win a match, what can I say\n"
- .string "in a real cool way?$"
-
-gText_082C27D4:: @ 82C27D4
- .string "{STR_VAR_1}\p"
- .string "Perfect! That’s what I’ll use.\n"
- .string "I was right to make you choose!\p"
- .string "And now, I think it’d be best,\n"
- .string "if I were to fly the nest!\p"
- .string "Thanks for all you taught me.\n"
- .string "I’ll be off on a battle spree!\p"
- .string "B-O-N-V-O-Y-A-G-E!\n"
- .string "And that spells bon voyage,\l"
- .string "to you this is my homage!$"
-
-gText_082C28D6:: @ 82C28D6
- .string "Oh, yeah, {PLAYER}!\n"
- .string "I found you again today!\p"
- .string "What should I do? Ask you again?\n"
- .string "Why not? I’m already asking you!\p"
- .string "Anyways, {PLAYER}…\n"
- .string "Are you receiving me?\l"
- .string "You are receiving me!\l"
- .string "I need some more advice for me!\p"
- .string "It’s about what I should yell.\n"
- .string "Something cool to holler when\l"
- .string "a battle ends well.\p"
- .string "Come on, I wanna hear you say it!$"
-
-gText_082C2A0B:: @ 82C2A0B
- .string "{STR_VAR_1}\p"
- .string "All right, all right!\n"
- .string "I’ll use that because it’s so tight!\p"
- .string "I’m out of things to ask you.\n"
- .string "Waving bye is all that’s left to do.\p"
- .string "But maybe one day we’ll meet, with one\n"
- .string "destined to go down in defeat.\p"
- .string "But, it really is time to say farewell.\p"
- .string "Well, {PLAYER}, I have to roam free,\n"
- .string "but don’t you forget about me!\p"
- .string "Take care, {PLAYER}!\n"
- .string "Love ya!$"
-
-gText_082C2B50:: @ 82C2B50
- .string "{PLAYER}{STRING 5}, I’m finished…\n"
- .string "My nose won’t stop dripping…\p"
- .string "I was trying to think up something\n"
- .string "cool to say when I win a battle.\p"
- .string "It inspired me so much, it made me cry,\n"
- .string "and now my nose won’t stop running…\p"
- .string "So, things being this way,\n"
- .string "I need you to decide for me, {PLAYER}{STRING 5}.\p"
- .string "When I win a battle,\n"
- .string "what should I say?$"
-
-gText_082C2C77:: @ 82C2C77
- .string "{STR_VAR_1}\p"
- .string "… … …That’s good.\n"
- .string "No, it’s awe inspiring!\l"
- .string "It’s bringing fresh tears to my eyes!\p"
- .string "But in spite of my tears and runny\n"
- .string "nose, I will use that saying!\p"
- .string "I’m plumb out of things to ask you,\n"
- .string "{PLAYER}{STRING 5}.\p"
- .string "From now on, we’re rivals!\n"
- .string "Thanks for everything!$"
-
-gText_082C2D67:: @ 82C2D67
- .string "Er… Um…\n"
- .string "{PLAYER}{STRING 5}…\p"
- .string "Please, don’t look at me that way.\n"
- .string "You’re making me all nervous.\p"
- .string "I… I need your advice again.\n"
- .string "I’ll make it my last, though…\p"
- .string "It’s really embarrassing to ask,\n"
- .string "but what if I win a battle?\l"
- .string "What should I say?$"
-
-gText_082C2E41:: @ 82C2E41
- .string "{STR_VAR_1}\p"
- .string "Oh… Okay!\n"
- .string "I’ll try to say that!\l"
- .string "I might be too nervous to say it…\p"
- .string "Thank you, {PLAYER}{STRING 5}.\n"
- .string "I have to say good-bye now.\p"
- .string "I’ll obey all that you’ve taught me,\n"
- .string "{PLAYER}{STRING 5}, and do the best I can.$"
-
-gText_082C2EF5:: @ 82C2EF5
- .string "Hm? You appear to be {PLAYER}{STRING 5}…\n"
- .string "But are you really?\l"
- .string "Perhaps a clever {PLAYER} DOLL?\p"
- .string "Oh, no, no, no, don’t worry!\n"
- .string "If you really are real, please\l"
- .string "forget about my rudeness.\p"
- .string "No need to be so angry. All I wish for\n"
- .string "is more of your fine advice.\p"
- .string "It concerns a saying.\p"
- .string "More precisely, what should I say\n"
- .string "if I win a battle?$"
-
-gText_082C3023:: @ 82C3023
- .string "{STR_VAR_1}\p"
- .string "… … … … … …\n"
- .string "When I win a match…\p"
- .string "{STR_VAR_1}\p"
- .string "…Are you serious?\p"
- .string "I see. If you are serious, that’s fine.\n"
- .string "I thank you for your time.\p"
- .string "I do hope even I will be able to\n"
- .string "put that saying to good use.\p"
- .string "I seem to have run dry on what advice\n"
- .string "I need.\p"
- .string "I do believe it’s high time I bid you\n"
- .string "farewell and strike out on my own.\p"
- .string "Thank you, my mentor!\n"
- .string "I apologize for my skepticism!$"
-
+ .include "data/scripts/apprentice.inc"
+
gBattleDomeOpponentPotential1::
.string "The best candidate to be a champ!$"
@@ -14666,7 +11691,7 @@ TrainerHill_Roof_MapScript2_2C8381: @ 82C8381
map_script_2 VAR_TEMP_1, 1, TrainerHill_1F_EventScript_2C83DF
.2byte 0
-TrainerHill_1F_EventScript_2C8393:: @ 82C8393
+EventScript_TrainerHillTimer:: @ 82C8393
lockall
setvar VAR_0x8004, 7
special sp194_trainer_tower
diff --git a/data/field_effect_helpers.s b/data/field_effect_helpers.s
index 63fc1580e..e49592659 100644
--- a/data/field_effect_helpers.s
+++ b/data/field_effect_helpers.s
@@ -2,31 +2,10 @@
.include "constants/constants.inc"
.section .rodata
-
-gUnknown_085CDC38:: @ 85CDC38
- .2byte 12, 28, 44
-
-gUnknown_085CDC3E:: @ 85CDC3E
- .byte 0x00, 0x01, 0x02, 0x03
-
-gUnknown_085CDC42:: @ 85CDC42
- .2byte 0x0004, 0x0004, 0x0004, 0x0010, 0x0000
-
-gUnknown_085CDC4C:: @ 85CDC4C
- .4byte sub_8154C7C
- .4byte sub_8154CA0
-
-gUnknown_085CDC54:: @ 85CDC54
- .4byte sub_815547C
- .4byte sub_81554AC
- .4byte sub_815550C
-
-gUnknown_085CDC60:: @ 85CDC60
- .byte 0, 0, 1, 2, 3, 0, 0, 1, 1
- .byte 0
+
+ .align 1
-gUnknown_085CDC6A:: @ 85CDC6A
- .2byte 3, 7
+gUnknown_085CDC6E:: @ 85CDC6E
@the following might be unref, not sure
.byte 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x02, 0x01, 0x02, 0x02, 0x01, 0x02, 0x02, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00
diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s
index c0c74496f..eab655877 100644
--- a/data/field_effect_scripts.s
+++ b/data/field_effect_scripts.s
@@ -86,15 +86,15 @@ gFieldEffectScript_UseCutOnTree:: @ 82DBAEC
field_eff_end
gFieldEffectScript_Shadow:: @ 82DBAF2
- field_eff_callnative oei_shadow
+ field_eff_callnative FldEff_Shadow
field_eff_end
gFieldEffectScript_TallGrass:: @ 82DBAF8
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, oei_grass_normal
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_TallGrass
field_eff_end
gFieldEffectScript_Ripple:: @ 82DBB02
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, oei_ripples
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Ripple
field_eff_end
gFieldEffectScript_FieldMoveShowMon:: @ 82DBB0C
@@ -102,11 +102,11 @@ gFieldEffectScript_FieldMoveShowMon:: @ 82DBB0C
field_eff_end
gFieldEffectScript_Ash:: @ 82DBB12
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, oei_ash
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Ash
field_eff_end
gFieldEffectScript_SurfBlob:: @ 82DBB1C
- field_eff_callnative sub_8155534
+ field_eff_callnative FldEff_SurfBlob
field_eff_end
gFieldEffectScript_UseSurf:: @ 82DBB22
@@ -114,7 +114,7 @@ gFieldEffectScript_UseSurf:: @ 82DBB22
field_eff_end
gFieldEffectScript_GroundImpactDust:: @ 82DBB28
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8155890
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Dust
field_eff_end
gFieldEffectScript_Unknown11:: @ 82DBB32
@@ -122,55 +122,55 @@ gFieldEffectScript_Unknown11:: @ 82DBB32
field_eff_end
gFieldEffectScript_BikeHopTallGrass:: @ 82DBB38
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, sub_8154658
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_JumpTallGrass
field_eff_end
gFieldEffectScript_SandFootprints:: @ 82DBB42
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8154B04
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_SandFootprints
field_eff_end
gFieldEffectScript_BikeHopBigSplash:: @ 82DBB4C
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, oei_water_drop_tall
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_JumpBigSplash
field_eff_end
gFieldEffectScript_Splash:: @ 82DBB56
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8154CEC
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Splash
field_eff_end
gFieldEffectScript_BikeHopSmallSplash:: @ 82DBB60
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8154E1C
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_JumpSmallSplash
field_eff_end
gFieldEffectScript_LongGrass:: @ 82DBB6A
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, sub_8154758
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_LongGrass
field_eff_end
gFieldEffectScript_Unknown18:: @ 82DBB74
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, sub_81548FC
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_JumpLongGrass
field_eff_end
gFieldEffectScript_Unknown19:: @ 82DBB7E
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, sub_81551F0
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Unknown19
field_eff_end
gFieldEffectScript_Unknown20:: @ 82DBB88
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, sub_815525C
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Unknown20
field_eff_end
gFieldEffectScript_Unknown21:: @ 82DBB92
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_81552C8
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Unknown21
field_eff_end
gFieldEffectScript_Unknown22:: @ 82DBB9C
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8155334
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Unknown22
field_eff_end
gFieldEffectScript_BerryTreeGrowthSparkle:: @ 82DBBA6
- field_eff_callnative sub_8155B2C
+ field_eff_callnative FldEff_BerryTreeGrowthSparkle
field_eff_end
gFieldEffectScript_DeepSandFootprints:: @ 82DBBAC
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8154B78
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_DeepSandFootprints
field_eff_end
gFieldEffectScript_Unknown25:: @ 82DBBB6
@@ -211,11 +211,11 @@ gFieldEffectScript_QuestionMarkIcon:: @ 82DBBEF
field_eff_end
gFieldEffectScript_FeetInFlowingWater:: @ 82DBBF5
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8154EFC
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_FeetInFlowingWater
field_eff_end
gFieldEffectScript_BikeTireTracks:: @ 82DBBFF
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8154BEC
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_BikeTireTracks
field_eff_end
gFieldEffectScript_SandDisguisePlaceholder:: @ 82DBC09
@@ -235,15 +235,15 @@ gFieldEffectScript_Unknown38:: @ 82DBC1B
field_eff_end
gFieldEffectScript_Unknown39:: @ 82DBC21
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8155900
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_SandPile
field_eff_end
gFieldEffectScript_ShortGrass:: @ 82DBC2B
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, sub_815496C
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_ShortGrass
field_eff_end
gFieldEffectScript_HotSpringsWater:: @ 82DBC35
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, sub_81550B4
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_HotSpringsWater
field_eff_end
gFieldEffectScript_Unknown43:: @ 82DBC3F
@@ -288,11 +288,11 @@ gFieldEffectScript_Unknown52:: @ 82DBC86
field_eff_end
gFieldEffectScript_Bubbles:: @ 82DBC90
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8155A88
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Bubbles
field_eff_end
gFieldEffectScript_Unknown54:: @ 82DBC9A
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo3, sub_8155DDC
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo3, FldEff_Sparkle
field_eff_end
gFieldEffectScript_Unknown55:: @ 82DBCA4
diff --git a/data/maps/AbandonedShip_Rooms2_1F/events.inc b/data/maps/AbandonedShip_Rooms2_1F/events.inc
index 50debde1b..34fdb9fd7 100644
--- a/data/maps/AbandonedShip_Rooms2_1F/events.inc
+++ b/data/maps/AbandonedShip_Rooms2_1F/events.inc
@@ -1,6 +1,6 @@
AbandonedShip_Rooms2_1F_EventObjects: @ 85369B8
- object_event 1, EVENT_OBJ_GFX_MAN_5, 0, 7, 13, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, AbandonedShip_Rooms2_1F_EventScript_2380A7, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_5, 0, 6, 13, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, AbandonedShip_Rooms2_1F_EventScript_23810B, 0
+ object_event 1, EVENT_OBJ_GFX_MAN_4, 0, 7, 13, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, AbandonedShip_Rooms2_1F_EventScript_2380A7, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_4, 0, 6, 13, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, AbandonedShip_Rooms2_1F_EventScript_23810B, 0
object_event 3, EVENT_OBJ_GFX_ITEM_BALL, 0, 4, 4, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, AbandonedShip_Rooms2_1F_EventScript_291261, 1099
object_event 4, EVENT_OBJ_GFX_HIKER, 0, 3, 2, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 3, AbandonedShip_Rooms2_1F_EventScript_238186, 0
object_event 5, EVENT_OBJ_GFX_TUBER_F, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 3, AbandonedShip_Rooms2_1F_EventScript_23816F, 0
diff --git a/data/maps/BattleFrontier_BattleArenaLobby/events.inc b/data/maps/BattleFrontier_BattleArenaLobby/events.inc
index 20233160e..e20bec9c3 100644
--- a/data/maps/BattleFrontier_BattleArenaLobby/events.inc
+++ b/data/maps/BattleFrontier_BattleArenaLobby/events.inc
@@ -1,7 +1,7 @@
BattleFrontier_BattleArenaLobby_EventObjects: @ 853C814
object_event 1, EVENT_OBJ_GFX_BLACK_BELT, 0, 7, 7, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_BattleArenaLobby_EventScript_255DF4, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_7, 0, 2, 10, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattleArenaLobby_EventScript_2560C1, 0
- object_event 3, EVENT_OBJ_GFX_MAN_6, 0, 14, 11, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_BattleArenaLobby_EventScript_2560AF, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_5, 0, 2, 10, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattleArenaLobby_EventScript_2560C1, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_5, 0, 14, 11, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_BattleArenaLobby_EventScript_2560AF, 0
object_event 4, EVENT_OBJ_GFX_CAMPER, 0, 14, 12, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_BattleArenaLobby_EventScript_2560B8, 0
object_event 5, EVENT_OBJ_GFX_YOUNGSTER, 0, 14, 10, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_BattleArenaLobby_EventScript_2560A6, 0
diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/events.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/events.inc
index d33a3103c..63ceb7484 100644
--- a/data/maps/BattleFrontier_BattleDomeBattleRoom/events.inc
+++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/events.inc
@@ -1,18 +1,18 @@
BattleFrontier_BattleDomeBattleRoom_EventObjects: @ 853C1C4
object_event 1, EVENT_OBJ_GFX_REPORTER_M, 0, 5, 4, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
- object_event 2, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 7, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
+ object_event 2, EVENT_OBJ_GFX_TWIN, 0, 7, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
object_event 3, EVENT_OBJ_GFX_BOY_1, 0, 9, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
object_event 4, EVENT_OBJ_GFX_BOY_2, 0, 11, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
- object_event 5, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 16, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
+ object_event 5, EVENT_OBJ_GFX_NINJA_BOY, 0, 16, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
object_event 6, EVENT_OBJ_GFX_MAN_1, 0, 4, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
- object_event 7, EVENT_OBJ_GFX_OLD_MAN_1, 0, 16, 1, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
+ object_event 7, EVENT_OBJ_GFX_EXPERT_M, 0, 16, 1, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
object_event 8, EVENT_OBJ_GFX_CAMPER, 0, 8, 1, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
object_event 9, EVENT_OBJ_GFX_MAN_2, 0, 0, 4, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
object_event 10, EVENT_OBJ_GFX_FAT_MAN, 0, 12, 1, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
object_event 11, EVENT_OBJ_GFX_GIRL_2, 0, 13, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
object_event 12, EVENT_OBJ_GFX_GIRL_1, 0, 10, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
object_event 13, EVENT_OBJ_GFX_TRADER, 0, 4, 9, 4, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, 0x0, 0
- object_event 14, EVENT_OBJ_GFX_WOMAN_4, 0, 14, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
+ object_event 14, EVENT_OBJ_GFX_WOMAN_3, 0, 14, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
object_event 15, EVENT_OBJ_GFX_HIPSTER, 0, 11, 6, 0, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, 0x0, 0
BattleFrontier_BattleDomeBattleRoom_MapEvents:: @ 853C32C
diff --git a/data/maps/BattleFrontier_BattleDomeLobby/events.inc b/data/maps/BattleFrontier_BattleDomeLobby/events.inc
index c24a47301..cce01feda 100644
--- a/data/maps/BattleFrontier_BattleDomeLobby/events.inc
+++ b/data/maps/BattleFrontier_BattleDomeLobby/events.inc
@@ -1,6 +1,6 @@
BattleFrontier_BattleDomeLobby_EventObjects: @ 853C068
object_event 1, EVENT_OBJ_GFX_TEALA, 0, 5, 10, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_BattleDomeLobby_EventScript_249A35, 0
- object_event 2, EVENT_OBJ_GFX_MAN_4, 0, 1, 11, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattleDomeLobby_EventScript_249E10, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_3, 0, 1, 11, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattleDomeLobby_EventScript_249E10, 0
object_event 3, EVENT_OBJ_GFX_LASS, 0, 14, 14, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattleDomeLobby_EventScript_249DFE, 0
object_event 4, EVENT_OBJ_GFX_FAT_MAN, 0, 18, 14, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattleDomeLobby_EventScript_249E07, 0
object_event 5, EVENT_OBJ_GFX_MANIAC, 0, 8, 14, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattleDomeLobby_EventScript_249DED, 0
diff --git a/data/maps/BattleFrontier_BattlePalaceBattleRoom/events.inc b/data/maps/BattleFrontier_BattlePalaceBattleRoom/events.inc
index 4c84a209f..29818b1d6 100644
--- a/data/maps/BattleFrontier_BattlePalaceBattleRoom/events.inc
+++ b/data/maps/BattleFrontier_BattlePalaceBattleRoom/events.inc
@@ -1,7 +1,7 @@
BattleFrontier_BattlePalaceBattleRoom_EventObjects: @ 853C4FC
object_event 1, EVENT_OBJ_GFX_TRADER, 0, 1, 9, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, 0x0, 0
object_event 2, EVENT_OBJ_GFX_HIPSTER, 0, 13, 1, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
- object_event 3, EVENT_OBJ_GFX_OLD_MAN_1, 0, 1, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, 0x0, 0
+ object_event 3, EVENT_OBJ_GFX_EXPERT_M, 0, 1, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, 0x0, 0
object_event 4, EVENT_OBJ_GFX_DUSCLOPS, 0, 13, 1, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
object_event 5, EVENT_OBJ_GFX_AZURILL, 0, 13, 1, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
diff --git a/data/maps/BattleFrontier_BattlePalaceCorridor/events.inc b/data/maps/BattleFrontier_BattlePalaceCorridor/events.inc
index bf06dcf34..66e844665 100644
--- a/data/maps/BattleFrontier_BattlePalaceCorridor/events.inc
+++ b/data/maps/BattleFrontier_BattlePalaceCorridor/events.inc
@@ -1,5 +1,5 @@
BattleFrontier_BattlePalaceCorridor_EventObjects: @ 853C420
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_1, 0, 8, 12, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, 0x0, 0
+ object_event 1, EVENT_OBJ_GFX_EXPERT_M, 0, 8, 12, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, 0x0, 0
object_event 2, EVENT_OBJ_GFX_AZURILL, 0, 3, 5, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 0, 0, 0, 0x0, 0
object_event 3, EVENT_OBJ_GFX_KIRLIA, 0, 12, 6, 0, MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT, 0, 2, 0, 0, 0x0, 0
object_event 4, EVENT_OBJ_GFX_PIKACHU, 0, 15, 5, 0, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, 0x0, 0
diff --git a/data/maps/BattleFrontier_BattlePalaceLobby/events.inc b/data/maps/BattleFrontier_BattlePalaceLobby/events.inc
index 5dae24a71..632bfdf10 100644
--- a/data/maps/BattleFrontier_BattlePalaceLobby/events.inc
+++ b/data/maps/BattleFrontier_BattlePalaceLobby/events.inc
@@ -1,10 +1,10 @@
BattleFrontier_BattlePalaceLobby_EventObjects: @ 853C340
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_1, 0, 5, 6, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_BattlePalaceLobby_EventScript_24D944, 0
+ object_event 1, EVENT_OBJ_GFX_EXPERT_M, 0, 5, 6, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_BattlePalaceLobby_EventScript_24D944, 0
object_event 2, EVENT_OBJ_GFX_BLACK_BELT, 0, 11, 8, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePalaceLobby_EventScript_24DC82, 0
object_event 3, EVENT_OBJ_GFX_MANIAC, 0, 24, 5, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_BattlePalaceLobby_EventScript_24DC9D, 0
- object_event 4, EVENT_OBJ_GFX_MAN_4, 0, 18, 10, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePalaceLobby_EventScript_24DC8B, 0
+ object_event 4, EVENT_OBJ_GFX_MAN_3, 0, 18, 10, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePalaceLobby_EventScript_24DC8B, 0
object_event 5, EVENT_OBJ_GFX_BEAUTY, 0, 2, 10, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePalaceLobby_EventScript_24DC94, 0
- object_event 6, EVENT_OBJ_GFX_OLD_MAN_1, 0, 19, 6, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_BattlePalaceLobby_EventScript_24D956, 0
+ object_event 6, EVENT_OBJ_GFX_EXPERT_M, 0, 19, 6, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_BattlePalaceLobby_EventScript_24D956, 0
BattleFrontier_BattlePalaceLobby_MapWarps: @ 853C3D0
warp_def 12, 11, 0, 2, MAP_BATTLE_FRONTIER_OUTSIDE_EAST
diff --git a/data/maps/BattleFrontier_BattlePikeCorridor/events.inc b/data/maps/BattleFrontier_BattlePikeCorridor/events.inc
index 8734e4dc8..b34916f49 100644
--- a/data/maps/BattleFrontier_BattlePikeCorridor/events.inc
+++ b/data/maps/BattleFrontier_BattlePikeCorridor/events.inc
@@ -1,5 +1,5 @@
BattleFrontier_BattlePikeCorridor_EventObjects: @ 853CC54
- object_event 1, EVENT_OBJ_GFX_WOMAN_6, 0, 6, 6, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
+ object_event 1, EVENT_OBJ_GFX_LINK_RECEPTIONIST, 0, 6, 6, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
BattleFrontier_BattlePikeCorridor_MapEvents:: @ 853CC6C
map_events BattleFrontier_BattlePikeCorridor_EventObjects, 0x0, 0x0, 0x0
diff --git a/data/maps/BattleFrontier_BattlePikeLobby/events.inc b/data/maps/BattleFrontier_BattlePikeLobby/events.inc
index 1020cef3c..495d52257 100644
--- a/data/maps/BattleFrontier_BattlePikeLobby/events.inc
+++ b/data/maps/BattleFrontier_BattlePikeLobby/events.inc
@@ -1,7 +1,7 @@
BattleFrontier_BattlePikeLobby_EventObjects: @ 853CBB0
- object_event 1, EVENT_OBJ_GFX_WOMAN_6, 0, 5, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_BattlePikeLobby_EventScript_25B868, 0
+ object_event 1, EVENT_OBJ_GFX_LINK_RECEPTIONIST, 0, 5, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_BattlePikeLobby_EventScript_25B868, 0
object_event 2, EVENT_OBJ_GFX_HIKER, 0, 10, 9, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, BattleFrontier_BattlePikeLobby_EventScript_25BAAB, 0
- object_event 3, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 0, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_BattlePikeLobby_EventScript_25BAB4, 0
+ object_event 3, EVENT_OBJ_GFX_TWIN, 0, 0, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_BattlePikeLobby_EventScript_25BAB4, 0
object_event 4, EVENT_OBJ_GFX_BEAUTY, 0, 8, 9, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePikeLobby_EventScript_25BABD, 0
BattleFrontier_BattlePikeLobby_MapWarps: @ 853CC10
diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom2/events.inc b/data/maps/BattleFrontier_BattlePikeRandomRoom2/events.inc
index 3ce444a53..41a58ad3b 100644
--- a/data/maps/BattleFrontier_BattlePikeRandomRoom2/events.inc
+++ b/data/maps/BattleFrontier_BattlePikeRandomRoom2/events.inc
@@ -1,5 +1,5 @@
BattleFrontier_BattlePikeRandomRoom2_EventObjects: @ 853CE08
- object_event 1, EVENT_OBJ_GFX_WOMAN_6, 0, 2, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
+ object_event 1, EVENT_OBJ_GFX_LINK_RECEPTIONIST, 0, 2, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
BattleFrontier_BattlePikeRandomRoom2_MapEvents:: @ 853CE20
map_events BattleFrontier_BattlePikeRandomRoom2_EventObjects, 0x0, 0x0, 0x0
diff --git a/data/maps/BattleFrontier_BattlePikeThreePathRoom/events.inc b/data/maps/BattleFrontier_BattlePikeThreePathRoom/events.inc
index dbc3584a6..2fc9e9d6c 100644
--- a/data/maps/BattleFrontier_BattlePikeThreePathRoom/events.inc
+++ b/data/maps/BattleFrontier_BattlePikeThreePathRoom/events.inc
@@ -1,6 +1,6 @@
BattleFrontier_BattlePikeThreePathRoom_EventObjects: @ 853CC80
- object_event 1, EVENT_OBJ_GFX_WOMAN_6, 0, 4, 10, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C908, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_6, 0, 8, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CABB, 0
+ object_event 1, EVENT_OBJ_GFX_LINK_RECEPTIONIST, 0, 4, 10, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C908, 0
+ object_event 2, EVENT_OBJ_GFX_LINK_RECEPTIONIST, 0, 8, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CABB, 0
BattleFrontier_BattlePikeThreePathRoom_MapCoordEvents: @ 853CCB0
coord_event 2, 3, 3, VAR_TEMP_1, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F4E
diff --git a/data/maps/BattleFrontier_BattlePointExchangeServiceCorner/events.inc b/data/maps/BattleFrontier_BattlePointExchangeServiceCorner/events.inc
index 2945034bc..225961050 100644
--- a/data/maps/BattleFrontier_BattlePointExchangeServiceCorner/events.inc
+++ b/data/maps/BattleFrontier_BattlePointExchangeServiceCorner/events.inc
@@ -1,9 +1,9 @@
BattleFrontier_BattlePointExchangeServiceCorner_EventObjects: @ 853D018
object_event 1, EVENT_OBJ_GFX_TEALA, 0, 4, 4, 0, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F173, 0
- object_event 2, EVENT_OBJ_GFX_BOY_4, 0, 0, 5, 0, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F7E8, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_2, 0, 0, 4, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F7DD, 0
+ object_event 2, EVENT_OBJ_GFX_RICH_BOY, 0, 0, 5, 0, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F7E8, 0
+ object_event 3, EVENT_OBJ_GFX_POKEFAN_F, 0, 0, 4, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F7DD, 0
object_event 4, EVENT_OBJ_GFX_SAILOR, 0, 14, 6, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F7D4, 0
- object_event 5, EVENT_OBJ_GFX_MAN_6, 0, 1, 9, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F7CB, 0
+ object_event 5, EVENT_OBJ_GFX_MAN_5, 0, 1, 9, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F7CB, 0
object_event 6, EVENT_OBJ_GFX_TEALA, 0, 5, 5, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F37C, 0
object_event 7, EVENT_OBJ_GFX_TEALA, 0, 9, 5, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F49F, 0
object_event 8, EVENT_OBJ_GFX_TEALA, 0, 10, 4, 0, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F5F0, 0
diff --git a/data/maps/BattleFrontier_BattlePyramidEmptySquare/events.inc b/data/maps/BattleFrontier_BattlePyramidEmptySquare/events.inc
index 3e66eec7d..f9604d8d1 100644
--- a/data/maps/BattleFrontier_BattlePyramidEmptySquare/events.inc
+++ b/data/maps/BattleFrontier_BattlePyramidEmptySquare/events.inc
@@ -1,5 +1,5 @@
BattleFrontier_BattlePyramidEmptySquare_EventObjects: @ 853C62C
- object_event 1, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 0, 0, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
+ object_event 1, EVENT_OBJ_GFX_NINJA_BOY, 0, 0, 0, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
object_event 2, EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 0, 1, 0, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, 0x0, 0
object_event 3, EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 0, 2, 0, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, 0x0, 0
object_event 4, EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 0, 3, 0, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, 0x0, 0
diff --git a/data/maps/BattleFrontier_BattlePyramidLobby/events.inc b/data/maps/BattleFrontier_BattlePyramidLobby/events.inc
index 521577c4c..b70958fec 100644
--- a/data/maps/BattleFrontier_BattlePyramidLobby/events.inc
+++ b/data/maps/BattleFrontier_BattlePyramidLobby/events.inc
@@ -1,7 +1,7 @@
BattleFrontier_BattlePyramidLobby_EventObjects: @ 853C598
object_event 1, EVENT_OBJ_GFX_HIKER, 0, 7, 12, 4, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_BattlePyramidLobby_EventScript_2508B1, 0
object_event 2, EVENT_OBJ_GFX_HEX_MANIAC, 0, 14, 13, 4, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_BattlePyramidLobby_EventScript_250ACE, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_4, 0, 2, 15, 4, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidLobby_EventScript_250E83, 0
+ object_event 3, EVENT_OBJ_GFX_WOMAN_3, 0, 2, 15, 4, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidLobby_EventScript_250E83, 0
object_event 4, EVENT_OBJ_GFX_FAT_MAN, 0, 12, 16, 4, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidLobby_EventScript_250E8C, 0
BattleFrontier_BattlePyramidLobby_MapWarps: @ 853C5F8
diff --git a/data/maps/BattleFrontier_BattleTowerLobby/events.inc b/data/maps/BattleFrontier_BattleTowerLobby/events.inc
index 73bdeeb2b..0961aa403 100644
--- a/data/maps/BattleFrontier_BattleTowerLobby/events.inc
+++ b/data/maps/BattleFrontier_BattleTowerLobby/events.inc
@@ -1,10 +1,10 @@
BattleFrontier_BattleTowerLobby_EventObjects: @ 853B638
object_event 1, EVENT_OBJ_GFX_TEALA, 0, 6, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_23E936, 0
- object_event 2, EVENT_OBJ_GFX_MAN_5, 0, 23, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_23EEE7, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_7, 0, 17, 8, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_23EFB5, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_4, 0, 23, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_23EEE7, 0
+ object_event 3, EVENT_OBJ_GFX_WOMAN_5, 0, 17, 8, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_23EFB5, 0
object_event 4, EVENT_OBJ_GFX_BOY_1, 0, 15, 9, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_23EFBE, 0
object_event 5, EVENT_OBJ_GFX_REPORTER_F, 0, 11, 9, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_28CB96, 918
- object_event 6, EVENT_OBJ_GFX_HIPSTER, 0, 1, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_2B688D, 701
+ object_event 6, EVENT_OBJ_GFX_HIPSTER, 0, 1, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, EventScript_Apprentice, 701
object_event 7, EVENT_OBJ_GFX_TEALA, 0, 10, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_23EA9F, 0
object_event 8, EVENT_OBJ_GFX_TEALA, 0, 14, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_23EC08, 0
object_event 9, EVENT_OBJ_GFX_TEALA, 0, 18, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_23ED74, 0
diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
index 2b07b7ea4..73c56351f 100644
--- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
@@ -12,7 +12,7 @@ BattleFrontier_BattleTowerLobby_MapScript1_23E690: @ 823E690
BattleFrontier_BattleTowerLobby_MapScript1_23E694: @ 823E694
call BattleFrontier_BattleTowerLobby_EventScript_28CC84
setvar VAR_0x8004, 10
- special sub_81A085C
+ special CallApprenticeFunction
compare VAR_0x8004, 0
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23E6B5
checkflag FLAG_0x934
@@ -21,7 +21,7 @@ BattleFrontier_BattleTowerLobby_MapScript1_23E694: @ 823E694
BattleFrontier_BattleTowerLobby_EventScript_23E6B5:: @ 823E6B5
clearflag FLAG_0x2BD
setvar VAR_0x8004, 23
- special sub_81A085C
+ special CallApprenticeFunction
BattleFrontier_BattleTowerLobby_EventScript_23E6C0:: @ 823E6C0
end
@@ -929,7 +929,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F2B7:: @ 823F2B7
BattleFrontier_BattleTowerLobby_EventScript_23F2C5:: @ 823F2C5
setvar VAR_0x8004, 9
- message OldaleTown_PokemonCenter_2F_Text_278091
+ message gText_PleaseWaitForLink
waitmessage
setvar VAR_0x8005, 0
special sub_80B2DA4
diff --git a/data/maps/BattleFrontier_Lounge1/events.inc b/data/maps/BattleFrontier_Lounge1/events.inc
index 1303c3c33..78ef44109 100644
--- a/data/maps/BattleFrontier_Lounge1/events.inc
+++ b/data/maps/BattleFrontier_Lounge1/events.inc
@@ -1,5 +1,5 @@
BattleFrontier_Lounge1_EventObjects: @ 853CFB4
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_2, 0, 0, 6, 0, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, BattleFrontier_Lounge1_EventScript_25E775, 0
+ object_event 1, EVENT_OBJ_GFX_OLD_MAN, 0, 0, 6, 0, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, BattleFrontier_Lounge1_EventScript_25E775, 0
object_event 2, EVENT_OBJ_GFX_BOY_3, 0, 7, 6, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 2, 0, 0, BattleFrontier_Lounge1_EventScript_25E94D, 0
object_event 3, EVENT_OBJ_GFX_BOY_2, 0, 5, 4, 0, MOVEMENT_TYPE_WANDER_AROUND, 2, 1, 0, 0, BattleFrontier_Lounge1_EventScript_25E956, 0
diff --git a/data/maps/BattleFrontier_Lounge3/events.inc b/data/maps/BattleFrontier_Lounge3/events.inc
index 75f04250c..bce1dfa35 100644
--- a/data/maps/BattleFrontier_Lounge3/events.inc
+++ b/data/maps/BattleFrontier_Lounge3/events.inc
@@ -1,9 +1,9 @@
BattleFrontier_Lounge3_EventObjects: @ 853D1B8
object_event 1, EVENT_OBJ_GFX_HIKER, 0, 4, 6, 0, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, BattleFrontier_Lounge3_EventScript_261D83, 0
object_event 2, EVENT_OBJ_GFX_FAT_MAN, 0, 4, 4, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_Lounge3_EventScript_261FE1, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_3, 0, 3, 5, 0, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, BattleFrontier_Lounge3_EventScript_261FC1, 0
- object_event 4, EVENT_OBJ_GFX_WOMAN_2, 0, 5, 5, 0, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_Lounge3_EventScript_261FD1, 0
- object_event 5, EVENT_OBJ_GFX_MAN_4, 0, 0, 6, 0, MOVEMENT_TYPE_WANDER_AROUND, 0, 3, 0, 0, BattleFrontier_Lounge3_EventScript_261FB8, 0
+ object_event 3, EVENT_OBJ_GFX_WOMAN_2, 0, 3, 5, 0, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, BattleFrontier_Lounge3_EventScript_261FC1, 0
+ object_event 4, EVENT_OBJ_GFX_POKEFAN_F, 0, 5, 5, 0, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_Lounge3_EventScript_261FD1, 0
+ object_event 5, EVENT_OBJ_GFX_MAN_3, 0, 0, 6, 0, MOVEMENT_TYPE_WANDER_AROUND, 0, 3, 0, 0, BattleFrontier_Lounge3_EventScript_261FB8, 0
BattleFrontier_Lounge3_MapWarps: @ 853D230
warp_def 4, 9, 0, 9, MAP_BATTLE_FRONTIER_OUTSIDE_EAST
diff --git a/data/maps/BattleFrontier_Lounge4/events.inc b/data/maps/BattleFrontier_Lounge4/events.inc
index c0dfbcf3e..8b86bebc7 100644
--- a/data/maps/BattleFrontier_Lounge4/events.inc
+++ b/data/maps/BattleFrontier_Lounge4/events.inc
@@ -1,7 +1,7 @@
BattleFrontier_Lounge4_EventObjects: @ 853D24C
- object_event 1, EVENT_OBJ_GFX_WOMAN_4, 0, 4, 4, 0, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, BattleFrontier_Lounge4_EventScript_26358D, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 4, 4, 0, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, BattleFrontier_Lounge4_EventScript_26358D, 0
object_event 2, EVENT_OBJ_GFX_COOK, 0, 6, 6, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_Lounge4_EventScript_263596, 0
- object_event 3, EVENT_OBJ_GFX_MAN_4, 0, 0, 5, 0, MOVEMENT_TYPE_FACE_RIGHT, 2, 1, 0, 0, BattleFrontier_Lounge4_EventScript_26359F, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_3, 0, 0, 5, 0, MOVEMENT_TYPE_FACE_RIGHT, 2, 1, 0, 0, BattleFrontier_Lounge4_EventScript_26359F, 0
BattleFrontier_Lounge4_MapWarps: @ 853D294
warp_def 4, 9, 0, 6, MAP_BATTLE_FRONTIER_OUTSIDE_WEST
diff --git a/data/maps/BattleFrontier_Lounge5/events.inc b/data/maps/BattleFrontier_Lounge5/events.inc
index 798deb1c2..216a72473 100644
--- a/data/maps/BattleFrontier_Lounge5/events.inc
+++ b/data/maps/BattleFrontier_Lounge5/events.inc
@@ -1,8 +1,8 @@
BattleFrontier_Lounge5_EventObjects: @ 853D2EC
- object_event 1, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 12, 4, 4, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_Lounge5_EventScript_2645C6, 0
+ object_event 1, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 12, 4, 4, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_Lounge5_EventScript_2645C6, 0
object_event 2, EVENT_OBJ_GFX_GENTLEMAN, 0, 0, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, BattleFrontier_Lounge5_EventScript_264617, 0
object_event 3, EVENT_OBJ_GFX_BLACK_BELT, 0, 6, 5, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_Lounge5_EventScript_264620, 0
- object_event 4, EVENT_OBJ_GFX_LITTLE_BOY_2, 0, 11, 7, 0, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_Lounge5_EventScript_264629, 0
+ object_event 4, EVENT_OBJ_GFX_LITTLE_BOY, 0, 11, 7, 0, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_Lounge5_EventScript_264629, 0
BattleFrontier_Lounge5_MapWarps: @ 853D34C
warp_def 1, 7, 0, 7, MAP_BATTLE_FRONTIER_OUTSIDE_EAST
diff --git a/data/maps/BattleFrontier_Lounge7/events.inc b/data/maps/BattleFrontier_Lounge7/events.inc
index 901ac6641..de4aef12a 100644
--- a/data/maps/BattleFrontier_Lounge7/events.inc
+++ b/data/maps/BattleFrontier_Lounge7/events.inc
@@ -1,7 +1,7 @@
BattleFrontier_Lounge7_EventObjects: @ 853D3A4
object_event 1, EVENT_OBJ_GFX_SAILOR, 0, 0, 7, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_Lounge7_EventScript_2656DB, 0
- object_event 2, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 2, 5, 0, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, BattleFrontier_Lounge7_EventScript_265255, 0
- object_event 3, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 6, 5, 0, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_Lounge7_EventScript_265445, 0
+ object_event 2, EVENT_OBJ_GFX_EXPERT_F, 0, 2, 5, 0, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, BattleFrontier_Lounge7_EventScript_265255, 0
+ object_event 3, EVENT_OBJ_GFX_EXPERT_F, 0, 6, 5, 0, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_Lounge7_EventScript_265445, 0
object_event 4, EVENT_OBJ_GFX_GENTLEMAN, 0, 8, 3, 0, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_Lounge7_EventScript_2656E4, 0
BattleFrontier_Lounge7_MapWarps: @ 853D404
diff --git a/data/maps/BattleFrontier_Lounge8/events.inc b/data/maps/BattleFrontier_Lounge8/events.inc
index 92d27d765..c8edc68aa 100644
--- a/data/maps/BattleFrontier_Lounge8/events.inc
+++ b/data/maps/BattleFrontier_Lounge8/events.inc
@@ -1,7 +1,7 @@
BattleFrontier_Lounge8_EventObjects: @ 853D4BC
- object_event 1, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 4, 5, 0, MOVEMENT_TYPE_WANDER_AROUND, 2, 2, 0, 0, BattleFrontier_Lounge8_EventScript_2676DC, 0
- object_event 2, EVENT_OBJ_GFX_MAN_4, 0, 8, 7, 0, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_Lounge8_EventScript_2676CA, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_7, 0, 8, 4, 0, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_Lounge8_EventScript_2676D3, 0
+ object_event 1, EVENT_OBJ_GFX_NINJA_BOY, 0, 4, 5, 0, MOVEMENT_TYPE_WANDER_AROUND, 2, 2, 0, 0, BattleFrontier_Lounge8_EventScript_2676DC, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_3, 0, 8, 7, 0, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_Lounge8_EventScript_2676CA, 0
+ object_event 3, EVENT_OBJ_GFX_WOMAN_5, 0, 8, 4, 0, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_Lounge8_EventScript_2676D3, 0
BattleFrontier_Lounge8_MapWarps: @ 853D504
warp_def 4, 9, 0, 10, MAP_BATTLE_FRONTIER_OUTSIDE_EAST
diff --git a/data/maps/BattleFrontier_Mart/events.inc b/data/maps/BattleFrontier_Mart/events.inc
index 3ca67e038..9e57319f0 100644
--- a/data/maps/BattleFrontier_Mart/events.inc
+++ b/data/maps/BattleFrontier_Mart/events.inc
@@ -1,7 +1,7 @@
BattleFrontier_Mart_EventObjects: @ 853D68C
object_event 1, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, BattleFrontier_Mart_EventScript_267ACC, 0
- object_event 2, EVENT_OBJ_GFX_OLD_WOMAN_2, 0, 5, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, BattleFrontier_Mart_EventScript_267B0B, 0
- object_event 3, EVENT_OBJ_GFX_OLD_MAN_2, 0, 5, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, BattleFrontier_Mart_EventScript_267B02, 0
+ object_event 2, EVENT_OBJ_GFX_OLD_WOMAN, 0, 5, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, BattleFrontier_Mart_EventScript_267B0B, 0
+ object_event 3, EVENT_OBJ_GFX_OLD_MAN, 0, 5, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, BattleFrontier_Mart_EventScript_267B02, 0
object_event 4, EVENT_OBJ_GFX_BOY_2, 0, 8, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, BattleFrontier_Mart_EventScript_267B20, 0
BattleFrontier_Mart_MapWarps: @ 853D6EC
diff --git a/data/maps/BattleFrontier_OutsideEast/events.inc b/data/maps/BattleFrontier_OutsideEast/events.inc
index 526c53971..dab98712a 100644
--- a/data/maps/BattleFrontier_OutsideEast/events.inc
+++ b/data/maps/BattleFrontier_OutsideEast/events.inc
@@ -1,28 +1,28 @@
BattleFrontier_OutsideEast_EventObjects: @ 853BB10
- object_event 1, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 20, 17, 0, MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT, 3, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242C67, 0
- object_event 2, EVENT_OBJ_GFX_MAN_4, 0, 42, 15, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 3, 0, 0, BattleFrontier_OutsideEast_EventScript_242C70, 0
+ object_event 1, EVENT_OBJ_GFX_NINJA_BOY, 0, 20, 17, 0, MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT, 3, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242C67, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_3, 0, 42, 15, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 3, 0, 0, BattleFrontier_OutsideEast_EventScript_242C70, 0
object_event 3, EVENT_OBJ_GFX_HIKER, 0, 53, 6, 0, MOVEMENT_TYPE_FACE_DOWN, 2, 0, 0, 0, BattleFrontier_OutsideEast_EventScript_242C79, 0
object_event 4, EVENT_OBJ_GFX_HEX_MANIAC, 0, 54, 16, 0, MOVEMENT_TYPE_WANDER_AROUND, 2, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242C82, 0
object_event 5, EVENT_OBJ_GFX_BLACK_BELT, 0, 37, 32, 0, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, BattleFrontier_OutsideEast_EventScript_242C8B, 0
object_event 6, EVENT_OBJ_GFX_COOK, 0, 41, 56, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242C94, 0
- object_event 7, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 8, 46, 0, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242CBB, 0
+ object_event 7, EVENT_OBJ_GFX_EXPERT_F, 0, 8, 46, 0, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242CBB, 0
object_event 8, EVENT_OBJ_GFX_RUNNING_TRIATHLETE_M, 0, 34, 41, 0, MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT, 3, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242CE1, 0
- object_event 9, EVENT_OBJ_GFX_BOY_4, 0, 45, 47, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242CB2, 0
+ object_event 9, EVENT_OBJ_GFX_RICH_BOY, 0, 45, 47, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242CB2, 0
object_event 10, EVENT_OBJ_GFX_CYCLING_TRIATHLETE_F, 0, 59, 35, 0, MOVEMENT_TYPE_WALK_DOWN_AND_UP, 1, 6, 0, 0, BattleFrontier_OutsideEast_EventScript_242CC4, 0
- object_event 11, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 18, 40, 0, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242CCD, 0
+ object_event 11, EVENT_OBJ_GFX_TWIN, 0, 18, 40, 0, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242CCD, 0
object_event 12, EVENT_OBJ_GFX_MAN_1, 0, 17, 40, 0, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242CD6, 0
object_event 13, EVENT_OBJ_GFX_ZIGZAGOON_2, 0, 40, 56, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242C9F, 0
object_event 14, EVENT_OBJ_GFX_SUDOWOODO, 0, 54, 62, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242CEA, 842
object_event 15, EVENT_OBJ_GFX_MANIAC, 0, 42, 34, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242D79, 0
object_event 16, EVENT_OBJ_GFX_GIRL_3, 0, 51, 53, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242D82, 0
object_event 17, EVENT_OBJ_GFX_PSYCHIC_M, 0, 62, 18, 0, MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT, 2, 6, 0, 0, BattleFrontier_OutsideEast_EventScript_242D8B, 0
- object_event 18, EVENT_OBJ_GFX_MAN_4, 0, 11, 21, 0, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242D94, 0
- object_event 19, EVENT_OBJ_GFX_WOMAN_7, 0, 10, 21, 0, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242D9D, 0
- object_event 20, EVENT_OBJ_GFX_WOMAN_7, 0, 16, 30, 0, MOVEMENT_TYPE_WANDER_AROUND, 3, 2, 0, 0, BattleFrontier_OutsideEast_EventScript_242DA6, 0
+ object_event 18, EVENT_OBJ_GFX_MAN_3, 0, 11, 21, 0, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242D94, 0
+ object_event 19, EVENT_OBJ_GFX_WOMAN_5, 0, 10, 21, 0, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242D9D, 0
+ object_event 20, EVENT_OBJ_GFX_WOMAN_5, 0, 16, 30, 0, MOVEMENT_TYPE_WANDER_AROUND, 3, 2, 0, 0, BattleFrontier_OutsideEast_EventScript_242DA6, 0
object_event 21, EVENT_OBJ_GFX_BLACK_BELT, 0, 33, 14, 0, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, BattleFrontier_OutsideEast_EventScript_242DAF, 0
object_event 22, EVENT_OBJ_GFX_MANIAC, 0, 54, 31, 0, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242DB8, 0
- object_event 23, EVENT_OBJ_GFX_WOMAN_5, 0, 54, 32, 0, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242DC3, 0
- object_event 24, EVENT_OBJ_GFX_OLD_WOMAN_2, 0, 58, 55, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242DE9, 0
+ object_event 23, EVENT_OBJ_GFX_WOMAN_4, 0, 54, 32, 0, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242DC3, 0
+ object_event 24, EVENT_OBJ_GFX_OLD_WOMAN, 0, 58, 55, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242DE9, 0
object_event 25, EVENT_OBJ_GFX_GENTLEMAN, 0, 48, 41, 0, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242DE0, 0
object_event 26, EVENT_OBJ_GFX_CAMPER, 0, 29, 14, 0, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, BattleFrontier_OutsideEast_EventScript_242E08, 0
diff --git a/data/maps/BattleFrontier_OutsideWest/events.inc b/data/maps/BattleFrontier_OutsideWest/events.inc
index 8095b6d6c..de372832f 100644
--- a/data/maps/BattleFrontier_OutsideWest/events.inc
+++ b/data/maps/BattleFrontier_OutsideWest/events.inc
@@ -2,27 +2,27 @@ BattleFrontier_OutsideWest_EventObjects: @ 853B350
object_event 1, EVENT_OBJ_GFX_BOY_2, 0, 26, 38, 0, MOVEMENT_TYPE_WANDER_AROUND, 2, 2, 0, 0, BattleFrontier_OutsideWest_EventScript_23D50F, 0
object_event 2, EVENT_OBJ_GFX_SS_TIDAL, 0, 20, 70, 0, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, 0x0, 0
object_event 3, EVENT_OBJ_GFX_BEAUTY, 0, 19, 68, 0, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D3F0, 0
- object_event 4, EVENT_OBJ_GFX_OLD_MAN_1, 0, 26, 20, 0, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 8, 0, 0, 0, BattleFrontier_OutsideWest_EventScript_23D68B, 0
- object_event 5, EVENT_OBJ_GFX_MAN_4, 0, 27, 30, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 3, 0, 0, BattleFrontier_OutsideWest_EventScript_23D52D, 0
- object_event 6, EVENT_OBJ_GFX_WOMAN_7, 0, 33, 41, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D69D, 0
+ object_event 4, EVENT_OBJ_GFX_EXPERT_M, 0, 26, 20, 0, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 8, 0, 0, 0, BattleFrontier_OutsideWest_EventScript_23D68B, 0
+ object_event 5, EVENT_OBJ_GFX_MAN_3, 0, 27, 30, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 3, 0, 0, BattleFrontier_OutsideWest_EventScript_23D52D, 0
+ object_event 6, EVENT_OBJ_GFX_WOMAN_5, 0, 33, 41, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D69D, 0
object_event 7, EVENT_OBJ_GFX_FAT_MAN, 0, 28, 43, 0, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 3, 0, 0, BattleFrontier_OutsideWest_EventScript_23D6A6, 0
object_event 8, EVENT_OBJ_GFX_GENTLEMAN, 0, 17, 20, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D679, 0
object_event 9, EVENT_OBJ_GFX_MANIAC, 0, 13, 44, 0, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D536, 0
object_event 10, EVENT_OBJ_GFX_MANIAC, 0, 14, 44, 0, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D53D, 0
- object_event 11, EVENT_OBJ_GFX_MAN_6, 0, 23, 47, 0, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 2, 2, 0, 0, BattleFrontier_OutsideWest_EventScript_23D694, 0
+ object_event 11, EVENT_OBJ_GFX_MAN_5, 0, 23, 47, 0, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 2, 2, 0, 0, BattleFrontier_OutsideWest_EventScript_23D694, 0
object_event 12, EVENT_OBJ_GFX_GIRL_1, 0, 38, 27, 0, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D5C6, 0
- object_event 13, EVENT_OBJ_GFX_WOMAN_4, 0, 45, 18, 0, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 1, 3, 0, 0, BattleFrontier_OutsideWest_EventScript_23D635, 0
+ object_event 13, EVENT_OBJ_GFX_WOMAN_3, 0, 45, 18, 0, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 1, 3, 0, 0, BattleFrontier_OutsideWest_EventScript_23D635, 0
object_event 14, EVENT_OBJ_GFX_CAMPER, 0, 9, 47, 0, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 2, 0, 0, BattleFrontier_OutsideWest_EventScript_23D57F, 0
object_event 15, EVENT_OBJ_GFX_LASS, 0, 35, 5, 0, MOVEMENT_TYPE_WANDER_AROUND, 2, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D682, 0
object_event 16, EVENT_OBJ_GFX_MAN_2, 0, 11, 66, 0, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_249E19, 0
object_event 17, EVENT_OBJ_GFX_FISHERMAN, 0, 31, 31, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D667, 0
object_event 18, EVENT_OBJ_GFX_FISHERMAN, 0, 42, 48, 0, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D518, 0
object_event 19, EVENT_OBJ_GFX_FAT_MAN, 0, 38, 22, 0, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 3, 0, 0, BattleFrontier_OutsideWest_EventScript_23D6AF, 0
- object_event 20, EVENT_OBJ_GFX_WOMAN_3, 0, 12, 9, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D6B8, 0
+ object_event 20, EVENT_OBJ_GFX_WOMAN_2, 0, 12, 9, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D6B8, 0
object_event 21, EVENT_OBJ_GFX_BOY_1, 0, 12, 10, 0, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D6C3, 0
- object_event 22, EVENT_OBJ_GFX_OLD_MAN_2, 0, 11, 10, 0, MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D6CE, 0
- object_event 23, EVENT_OBJ_GFX_MAN_5, 0, 8, 5, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D6D7, 0
- object_event 24, EVENT_OBJ_GFX_WOMAN_2, 0, 4, 26, 0, MOVEMENT_TYPE_ROTATE_CLOCKWISE, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D6EE, 0
+ object_event 22, EVENT_OBJ_GFX_OLD_MAN, 0, 11, 10, 0, MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D6CE, 0
+ object_event 23, EVENT_OBJ_GFX_MAN_4, 0, 8, 5, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D6D7, 0
+ object_event 24, EVENT_OBJ_GFX_POKEFAN_F, 0, 4, 26, 0, MOVEMENT_TYPE_ROTATE_CLOCKWISE, 1, 1, 0, 0, BattleFrontier_OutsideWest_EventScript_23D6EE, 0
BattleFrontier_OutsideWest_MapWarps: @ 853B590
warp_def 42, 27, 0, 0, MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY
diff --git a/data/maps/BattleFrontier_PokemonCenter_1F/events.inc b/data/maps/BattleFrontier_PokemonCenter_1F/events.inc
index cf0215573..5f2782f0f 100644
--- a/data/maps/BattleFrontier_PokemonCenter_1F/events.inc
+++ b/data/maps/BattleFrontier_PokemonCenter_1F/events.inc
@@ -1,7 +1,7 @@
BattleFrontier_PokemonCenter_1F_EventObjects: @ 853D55C
object_event 1, EVENT_OBJ_GFX_NURSE, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, BattleFrontier_PokemonCenter_1F_EventScript_267908, 0
object_event 2, EVENT_OBJ_GFX_SCHOOL_KID_M, 0, 4, 5, 3, MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT, 1, 0, 0, 0, BattleFrontier_PokemonCenter_1F_EventScript_267916, 0
- object_event 3, EVENT_OBJ_GFX_MAN_4, 0, 11, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 0, 0, 0, BattleFrontier_PokemonCenter_1F_EventScript_26791F, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_3, 0, 11, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 0, 0, 0, BattleFrontier_PokemonCenter_1F_EventScript_26791F, 0
object_event 4, EVENT_OBJ_GFX_PICNICKER, 0, 2, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 0, 0, 0, BattleFrontier_PokemonCenter_1F_EventScript_267928, 0
object_event 5, EVENT_OBJ_GFX_SKITTY, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 0, 0, 0, BattleFrontier_PokemonCenter_1F_EventScript_267931, 0
diff --git a/data/maps/BattleFrontier_RankingHall/events.inc b/data/maps/BattleFrontier_RankingHall/events.inc
index 33069e0ca..abec40c17 100644
--- a/data/maps/BattleFrontier_RankingHall/events.inc
+++ b/data/maps/BattleFrontier_RankingHall/events.inc
@@ -1,6 +1,6 @@
BattleFrontier_RankingHall_EventObjects: @ 853CEB8
object_event 1, EVENT_OBJ_GFX_TEALA, 0, 24, 13, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_RankingHall_EventScript_25E52F, 0
- object_event 2, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 4, 10, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_RankingHall_EventScript_25E54A, 0
+ object_event 2, EVENT_OBJ_GFX_NINJA_BOY, 0, 4, 10, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_RankingHall_EventScript_25E54A, 0
object_event 3, EVENT_OBJ_GFX_BOY_3, 0, 44, 11, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_RankingHall_EventScript_25E573, 0
BattleFrontier_RankingHall_MapWarps: @ 853CF00
diff --git a/data/maps/BattlePyramidSquare01/events.inc b/data/maps/BattlePyramidSquare01/events.inc
index bd6b45b82..cf5cfc1af 100644
--- a/data/maps/BattlePyramidSquare01/events.inc
+++ b/data/maps/BattlePyramidSquare01/events.inc
@@ -1,7 +1,7 @@
BattlePyramidSquare01_EventObjects: @ 853A460
- object_event 1, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 2, 3, 4, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 3, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 1, EVENT_OBJ_GFX_NINJA_BOY, 0, 2, 3, 4, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 3, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 2, EVENT_OBJ_GFX_GIRL_3, 0, 5, 3, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 3, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 3, EVENT_OBJ_GFX_BOY_4, 0, 2, 6, 4, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 3, EVENT_OBJ_GFX_RICH_BOY, 0, 2, 6, 4, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 4, EVENT_OBJ_GFX_BOY_2, 0, 6, 6, 4, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 5, EVENT_OBJ_GFX_ITEM_BALL, 0, 4, 1, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 6, EVENT_OBJ_GFX_ITEM_BALL, 0, 7, 4, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
diff --git a/data/maps/BattlePyramidSquare02/events.inc b/data/maps/BattlePyramidSquare02/events.inc
index 67f235026..ad621d684 100644
--- a/data/maps/BattlePyramidSquare02/events.inc
+++ b/data/maps/BattlePyramidSquare02/events.inc
@@ -1,8 +1,8 @@
BattlePyramidSquare02_EventObjects: @ 853A51C
object_event 1, EVENT_OBJ_GFX_BOY_3, 0, 2, 1, 4, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 5, 6, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 2, EVENT_OBJ_GFX_POKEFAN_F, 0, 5, 6, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 3, EVENT_OBJ_GFX_FAT_MAN, 0, 2, 6, 4, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 4, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 5, 1, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 4, EVENT_OBJ_GFX_TWIN, 0, 5, 1, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 5, EVENT_OBJ_GFX_ITEM_BALL, 0, 6, 5, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 6, EVENT_OBJ_GFX_ITEM_BALL, 0, 7, 0, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 7, EVENT_OBJ_GFX_ITEM_BALL, 0, 0, 2, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
diff --git a/data/maps/BattlePyramidSquare03/events.inc b/data/maps/BattlePyramidSquare03/events.inc
index 1f38240c5..8eb81b96a 100644
--- a/data/maps/BattlePyramidSquare03/events.inc
+++ b/data/maps/BattlePyramidSquare03/events.inc
@@ -1,8 +1,8 @@
BattlePyramidSquare03_EventObjects: @ 853A5D8
object_event 1, EVENT_OBJ_GFX_BOY_1, 0, 2, 1, 4, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 2, EVENT_OBJ_GFX_LITTLE_BOY_2, 0, 6, 1, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 2, EVENT_OBJ_GFX_LITTLE_BOY, 0, 6, 1, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 3, EVENT_OBJ_GFX_FISHERMAN, 0, 6, 4, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 3, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 4, EVENT_OBJ_GFX_MAN_4, 0, 3, 4, 4, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 4, EVENT_OBJ_GFX_MAN_3, 0, 3, 4, 4, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 5, EVENT_OBJ_GFX_ITEM_BALL, 0, 4, 2, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 6, EVENT_OBJ_GFX_ITEM_BALL, 0, 0, 3, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 7, EVENT_OBJ_GFX_ITEM_BALL, 0, 2, 7, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
diff --git a/data/maps/BattlePyramidSquare04/events.inc b/data/maps/BattlePyramidSquare04/events.inc
index f44a6e14c..79caf09ff 100644
--- a/data/maps/BattlePyramidSquare04/events.inc
+++ b/data/maps/BattlePyramidSquare04/events.inc
@@ -1,7 +1,7 @@
BattlePyramidSquare04_EventObjects: @ 853A694
- object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 7, 2, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 7, 2, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 2, EVENT_OBJ_GFX_GIRL_1, 0, 7, 7, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 3, EVENT_OBJ_GFX_BOY_4, 0, 1, 4, 4, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 3, EVENT_OBJ_GFX_RICH_BOY, 0, 1, 4, 4, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 4, EVENT_OBJ_GFX_GIRL_3, 0, 6, 4, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 5, EVENT_OBJ_GFX_ITEM_BALL, 0, 2, 6, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 6, EVENT_OBJ_GFX_ITEM_BALL, 0, 5, 3, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
diff --git a/data/maps/BattlePyramidSquare07/events.inc b/data/maps/BattlePyramidSquare07/events.inc
index 2891e92df..8d63fc4e1 100644
--- a/data/maps/BattlePyramidSquare07/events.inc
+++ b/data/maps/BattlePyramidSquare07/events.inc
@@ -1,8 +1,8 @@
BattlePyramidSquare07_EventObjects: @ 853A8C8
- object_event 1, EVENT_OBJ_GFX_LITTLE_BOY_2, 0, 0, 6, 4, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 2, EVENT_OBJ_GFX_LITTLE_BOY_2, 0, 4, 0, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 3, EVENT_OBJ_GFX_LITTLE_BOY_2, 0, 6, 0, 4, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 3, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 4, EVENT_OBJ_GFX_LITTLE_BOY_2, 0, 4, 4, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 1, EVENT_OBJ_GFX_LITTLE_BOY, 0, 0, 6, 4, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 2, EVENT_OBJ_GFX_LITTLE_BOY, 0, 4, 0, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 3, EVENT_OBJ_GFX_LITTLE_BOY, 0, 6, 0, 4, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 3, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 4, EVENT_OBJ_GFX_LITTLE_BOY, 0, 4, 4, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 5, EVENT_OBJ_GFX_ITEM_BALL, 0, 7, 4, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 6, EVENT_OBJ_GFX_ITEM_BALL, 0, 1, 1, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 7, EVENT_OBJ_GFX_ITEM_BALL, 0, 3, 7, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
diff --git a/data/maps/BattlePyramidSquare08/events.inc b/data/maps/BattlePyramidSquare08/events.inc
index f095c3972..77ed5da6b 100644
--- a/data/maps/BattlePyramidSquare08/events.inc
+++ b/data/maps/BattlePyramidSquare08/events.inc
@@ -1,8 +1,8 @@
BattlePyramidSquare08_EventObjects: @ 853A984
- object_event 1, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 1, 2, 4, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 2, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 6, 5, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 3, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 1, 5, 4, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 4, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 6, 2, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 1, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 1, 2, 4, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 2, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 6, 5, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 3, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 1, 5, 4, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 4, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 6, 2, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 5, EVENT_OBJ_GFX_ITEM_BALL, 0, 4, 3, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 6, EVENT_OBJ_GFX_ITEM_BALL, 0, 3, 6, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 7, EVENT_OBJ_GFX_ITEM_BALL, 0, 1, 0, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
diff --git a/data/maps/BattlePyramidSquare09/events.inc b/data/maps/BattlePyramidSquare09/events.inc
index 265b9b1b6..0fd84a8c5 100644
--- a/data/maps/BattlePyramidSquare09/events.inc
+++ b/data/maps/BattlePyramidSquare09/events.inc
@@ -1,8 +1,8 @@
BattlePyramidSquare09_EventObjects: @ 853AA40
- object_event 1, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 3, 0, 4, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 2, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 6, 4, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 3, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 6, 0, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 4, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 3, 5, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 1, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 3, 0, 4, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 2, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 6, 4, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 3, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 6, 0, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 4, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 3, 5, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 5, EVENT_OBJ_GFX_ITEM_BALL, 0, 7, 0, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 6, EVENT_OBJ_GFX_ITEM_BALL, 0, 1, 0, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 7, EVENT_OBJ_GFX_ITEM_BALL, 0, 1, 6, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
diff --git a/data/maps/BattlePyramidSquare11/events.inc b/data/maps/BattlePyramidSquare11/events.inc
index 6210faa6f..e90e691e5 100644
--- a/data/maps/BattlePyramidSquare11/events.inc
+++ b/data/maps/BattlePyramidSquare11/events.inc
@@ -1,8 +1,8 @@
BattlePyramidSquare11_EventObjects: @ 853ABB8
- object_event 1, EVENT_OBJ_GFX_BOY_4, 0, 3, 2, 4, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 2, EVENT_OBJ_GFX_BOY_4, 0, 3, 6, 4, MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 3, EVENT_OBJ_GFX_BOY_4, 0, 6, 4, 4, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 3, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 4, EVENT_OBJ_GFX_BOY_4, 0, 6, 7, 4, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 3, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 1, EVENT_OBJ_GFX_RICH_BOY, 0, 3, 2, 4, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 2, EVENT_OBJ_GFX_RICH_BOY, 0, 3, 6, 4, MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 3, EVENT_OBJ_GFX_RICH_BOY, 0, 6, 4, 4, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 3, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 4, EVENT_OBJ_GFX_RICH_BOY, 0, 6, 7, 4, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 3, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 5, EVENT_OBJ_GFX_ITEM_BALL, 0, 6, 2, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 6, EVENT_OBJ_GFX_ITEM_BALL, 0, 1, 2, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 7, EVENT_OBJ_GFX_ITEM_BALL, 0, 1, 5, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
diff --git a/data/maps/BattlePyramidSquare14/events.inc b/data/maps/BattlePyramidSquare14/events.inc
index 48b98a361..f2d28d456 100644
--- a/data/maps/BattlePyramidSquare14/events.inc
+++ b/data/maps/BattlePyramidSquare14/events.inc
@@ -1,8 +1,8 @@
BattlePyramidSquare14_EventObjects: @ 853ADEC
- object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 7, 1, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 7, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 1, 1, 4, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_2, 0, 6, 5, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 4, EVENT_OBJ_GFX_WOMAN_2, 0, 0, 5, 4, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 1, 1, 1, 7, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 1, EVENT_OBJ_GFX_POKEFAN_F, 0, 7, 1, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 7, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 2, EVENT_OBJ_GFX_POKEFAN_F, 0, 1, 1, 4, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 3, EVENT_OBJ_GFX_POKEFAN_F, 0, 6, 5, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 4, EVENT_OBJ_GFX_POKEFAN_F, 0, 0, 5, 4, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 1, 1, 1, 7, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 5, EVENT_OBJ_GFX_ITEM_BALL, 0, 5, 3, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 6, EVENT_OBJ_GFX_ITEM_BALL, 0, 0, 7, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 7, EVENT_OBJ_GFX_ITEM_BALL, 0, 7, 5, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
diff --git a/data/maps/BattlePyramidSquare15/events.inc b/data/maps/BattlePyramidSquare15/events.inc
index 50d0addf2..2556030e3 100644
--- a/data/maps/BattlePyramidSquare15/events.inc
+++ b/data/maps/BattlePyramidSquare15/events.inc
@@ -1,8 +1,8 @@
BattlePyramidSquare15_EventObjects: @ 853AEA8
- object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 2, 5, 4, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 2, 1, 4, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_2, 0, 6, 4, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 4, EVENT_OBJ_GFX_WOMAN_2, 0, 6, 0, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 1, EVENT_OBJ_GFX_POKEFAN_F, 0, 2, 5, 4, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 1, 1, 1, 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 2, EVENT_OBJ_GFX_POKEFAN_F, 0, 2, 1, 4, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 3, EVENT_OBJ_GFX_POKEFAN_F, 0, 6, 4, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 4, EVENT_OBJ_GFX_POKEFAN_F, 0, 6, 0, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 4, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 5, EVENT_OBJ_GFX_ITEM_BALL, 0, 0, 7, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 6, EVENT_OBJ_GFX_ITEM_BALL, 0, 7, 5, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 7, EVENT_OBJ_GFX_ITEM_BALL, 0, 1, 2, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
diff --git a/data/maps/BattlePyramidSquare16/events.inc b/data/maps/BattlePyramidSquare16/events.inc
index 84bb566c2..e08cb110e 100644
--- a/data/maps/BattlePyramidSquare16/events.inc
+++ b/data/maps/BattlePyramidSquare16/events.inc
@@ -1,8 +1,8 @@
BattlePyramidSquare16_EventObjects: @ 853AF64
- object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 0, 6, 4, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 1, 0, 0, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_2, 0, 6, 7, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
- object_event 4, EVENT_OBJ_GFX_WOMAN_2, 0, 6, 0, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 1, EVENT_OBJ_GFX_POKEFAN_F, 0, 0, 6, 4, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 2, EVENT_OBJ_GFX_POKEFAN_F, 0, 1, 0, 0, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 3, EVENT_OBJ_GFX_POKEFAN_F, 0, 6, 7, 4, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
+ object_event 4, EVENT_OBJ_GFX_POKEFAN_F, 0, 6, 0, 4, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 6, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F, 0
object_event 5, EVENT_OBJ_GFX_ITEM_BALL, 0, 0, 7, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 6, EVENT_OBJ_GFX_ITEM_BALL, 0, 7, 7, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
object_event 7, EVENT_OBJ_GFX_ITEM_BALL, 0, 5, 2, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A, 0
diff --git a/data/maps/DewfordTown/events.inc b/data/maps/DewfordTown/events.inc
index fadd3b282..aa637587c 100644
--- a/data/maps/DewfordTown/events.inc
+++ b/data/maps/DewfordTown/events.inc
@@ -1,6 +1,6 @@
DewfordTown_EventObjects: @ 8527964
- object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 7, 12, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, DewfordTown_EventScript_1E95B1, 0
- object_event 2, EVENT_OBJ_GFX_OLD_MAN_1, 0, 12, 9, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 1, 0, 3, DewfordTown_EventScript_1E9511, 740
+ object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 7, 12, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, DewfordTown_EventScript_1E95B1, 0
+ object_event 2, EVENT_OBJ_GFX_EXPERT_M, 0, 12, 9, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 1, 0, 3, DewfordTown_EventScript_1E9511, 740
object_event 3, EVENT_OBJ_GFX_FISHERMAN, 0, 12, 14, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, DewfordTown_EventScript_1E95D5, 0
object_event 4, EVENT_OBJ_GFX_MR_BRINEYS_BOAT, 0, 12, 8, 1, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, 0x0, 743
object_event 5, EVENT_OBJ_GFX_BOY_1, 0, 1, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, DewfordTown_EventScript_1E9922, 0
diff --git a/data/maps/DewfordTown_Hall/events.inc b/data/maps/DewfordTown_Hall/events.inc
index cd6fb5e8f..3f150c6f6 100644
--- a/data/maps/DewfordTown_Hall/events.inc
+++ b/data/maps/DewfordTown_Hall/events.inc
@@ -1,10 +1,10 @@
DewfordTown_Hall_EventObjects: @ 852DC48
object_event 1, EVENT_OBJ_GFX_GIRL_2, 0, 4, 6, 0, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, DewfordTown_Hall_EventScript_1FD4D0, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_3, 0, 1, 5, 0, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, DewfordTown_Hall_EventScript_1FD4F9, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 1, 5, 0, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, DewfordTown_Hall_EventScript_1FD4F9, 0
object_event 3, EVENT_OBJ_GFX_MAN_1, 0, 5, 4, 0, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, DewfordTown_Hall_EventScript_1FD50A, 0
- object_event 4, EVENT_OBJ_GFX_OLD_MAN_1, 0, 9, 3, 0, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, DewfordTown_Hall_EventScript_1FD547, 0
- object_event 5, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 5, 2, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, DewfordTown_Hall_EventScript_1FD563, 0
- object_event 6, EVENT_OBJ_GFX_LITTLE_BOY_2, 0, 14, 7, 0, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, DewfordTown_Hall_EventScript_1FD57F, 0
+ object_event 4, EVENT_OBJ_GFX_EXPERT_M, 0, 9, 3, 0, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, DewfordTown_Hall_EventScript_1FD547, 0
+ object_event 5, EVENT_OBJ_GFX_TWIN, 0, 5, 2, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, DewfordTown_Hall_EventScript_1FD563, 0
+ object_event 6, EVENT_OBJ_GFX_LITTLE_BOY, 0, 14, 7, 0, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, DewfordTown_Hall_EventScript_1FD57F, 0
object_event 7, EVENT_OBJ_GFX_SCHOOL_KID_M, 0, 12, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, DewfordTown_Hall_EventScript_1FD62F, 0
object_event 8, EVENT_OBJ_GFX_PSYCHIC_M, 0, 15, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, DewfordTown_Hall_EventScript_1FD63B, 0
object_event 9, EVENT_OBJ_GFX_MANIAC, 0, 8, 6, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, DewfordTown_Hall_EventScript_1FD7DA, 940
diff --git a/data/maps/DewfordTown_House1/events.inc b/data/maps/DewfordTown_House1/events.inc
index 72a8dc305..53d72959c 100644
--- a/data/maps/DewfordTown_House1/events.inc
+++ b/data/maps/DewfordTown_House1/events.inc
@@ -1,5 +1,5 @@
DewfordTown_House1_EventObjects: @ 852D9C8
- object_event 1, EVENT_OBJ_GFX_WOMAN_4, 0, 6, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, DewfordTown_House1_EventScript_1FC3D7, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 6, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, DewfordTown_House1_EventScript_1FC3D7, 0
object_event 2, EVENT_OBJ_GFX_MAN_1, 0, 3, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, DewfordTown_House1_EventScript_1FC3CE, 0
object_event 3, EVENT_OBJ_GFX_ZIGZAGOON_2, 0, 4, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 3, 1, 0, 0, DewfordTown_House1_EventScript_1FC3E0, 0
diff --git a/data/maps/DewfordTown_House2/events.inc b/data/maps/DewfordTown_House2/events.inc
index 9c03f4ce4..039ebac7c 100644
--- a/data/maps/DewfordTown_House2/events.inc
+++ b/data/maps/DewfordTown_House2/events.inc
@@ -1,5 +1,5 @@
DewfordTown_House2_EventObjects: @ 852DD5C
- object_event 1, EVENT_OBJ_GFX_MAN_4, 0, 6, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, DewfordTown_House2_EventScript_1FE22E, 0
+ object_event 1, EVENT_OBJ_GFX_MAN_3, 0, 6, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, DewfordTown_House2_EventScript_1FE22E, 0
object_event 2, EVENT_OBJ_GFX_BOY_2, 0, 2, 3, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, DewfordTown_House2_EventScript_1FE271, 0
DewfordTown_House2_MapWarps: @ 852DD8C
diff --git a/data/maps/DewfordTown_PokemonCenter_1F/events.inc b/data/maps/DewfordTown_PokemonCenter_1F/events.inc
index 2e43a2239..830b6fd9b 100644
--- a/data/maps/DewfordTown_PokemonCenter_1F/events.inc
+++ b/data/maps/DewfordTown_PokemonCenter_1F/events.inc
@@ -1,7 +1,7 @@
DewfordTown_PokemonCenter_1F_EventObjects: @ 852DA34
object_event 1, EVENT_OBJ_GFX_NURSE, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, DewfordTown_PokemonCenter_1F_EventScript_1FC537, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 10, 6, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, DewfordTown_PokemonCenter_1F_EventScript_1FC545, 0
- object_event 3, EVENT_OBJ_GFX_MAN_4, 0, 5, 5, 0, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 2, 1, 0, 0, DewfordTown_PokemonCenter_1F_EventScript_1FC54E, 0
+ object_event 2, EVENT_OBJ_GFX_POKEFAN_F, 0, 10, 6, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, DewfordTown_PokemonCenter_1F_EventScript_1FC545, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_3, 0, 5, 5, 0, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 2, 1, 0, 0, DewfordTown_PokemonCenter_1F_EventScript_1FC54E, 0
DewfordTown_PokemonCenter_1F_MapWarps: @ 852DA7C
warp_def 7, 8, 3, 1, MAP_DEWFORD_TOWN
diff --git a/data/maps/EverGrandeCity_PokemonCenter_1F/events.inc b/data/maps/EverGrandeCity_PokemonCenter_1F/events.inc
index 7e90c35c7..f6fa3987f 100644
--- a/data/maps/EverGrandeCity_PokemonCenter_1F/events.inc
+++ b/data/maps/EverGrandeCity_PokemonCenter_1F/events.inc
@@ -1,7 +1,7 @@
EverGrandeCity_PokemonCenter_1F_EventObjects: @ 8533930
object_event 1, EVENT_OBJ_GFX_NURSE, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, EverGrandeCity_PokemonCenter_1F_EventScript_229A59, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_7, 0, 5, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, EverGrandeCity_PokemonCenter_1F_EventScript_229A67, 0
- object_event 3, EVENT_OBJ_GFX_OLD_MAN_1, 0, 10, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, EverGrandeCity_PokemonCenter_1F_EventScript_229A70, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_5, 0, 5, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, EverGrandeCity_PokemonCenter_1F_EventScript_229A67, 0
+ object_event 3, EVENT_OBJ_GFX_EXPERT_M, 0, 10, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, EverGrandeCity_PokemonCenter_1F_EventScript_229A70, 0
object_event 4, EVENT_OBJ_GFX_SCOTT, 0, 9, 4, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, EverGrandeCity_PokemonCenter_1F_EventScript_229A79, 793
EverGrandeCity_PokemonCenter_1F_MapWarps: @ 8533990
diff --git a/data/maps/EverGrandeCity_PokemonLeague_1F/events.inc b/data/maps/EverGrandeCity_PokemonLeague_1F/events.inc
index c04a0f30d..dcda8722c 100644
--- a/data/maps/EverGrandeCity_PokemonLeague_1F/events.inc
+++ b/data/maps/EverGrandeCity_PokemonLeague_1F/events.inc
@@ -1,8 +1,8 @@
EverGrandeCity_PokemonLeague_1F_EventObjects: @ 8533860
object_event 1, EVENT_OBJ_GFX_NURSE, 0, 3, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, EverGrandeCity_PokemonLeague_1F_EventScript_2295FC, 0
object_event 2, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 16, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, EverGrandeCity_PokemonLeague_1F_EventScript_22960A, 0
- object_event 3, EVENT_OBJ_GFX_MAN_4, 0, 8, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, EverGrandeCity_PokemonLeague_1F_EventScript_229636, 0
- object_event 4, EVENT_OBJ_GFX_MAN_4, 0, 11, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, EverGrandeCity_PokemonLeague_1F_EventScript_229636, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_3, 0, 8, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, EverGrandeCity_PokemonLeague_1F_EventScript_229636, 0
+ object_event 4, EVENT_OBJ_GFX_MAN_3, 0, 11, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, EverGrandeCity_PokemonLeague_1F_EventScript_229636, 0
EverGrandeCity_PokemonLeague_1F_MapWarps: @ 85338C0
warp_def 9, 11, 3, 0, MAP_EVER_GRANDE_CITY
diff --git a/data/maps/FallarborTown/events.inc b/data/maps/FallarborTown/events.inc
index fae6f714e..b2246ad5a 100644
--- a/data/maps/FallarborTown/events.inc
+++ b/data/maps/FallarborTown/events.inc
@@ -1,6 +1,6 @@
FallarborTown_EventObjects: @ 8527BE0
object_event 1, EVENT_OBJ_GFX_GIRL_1, 0, 8, 11, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 1, 0, 0, FallarborTown_EventScript_1EB22B, 0
- object_event 2, EVENT_OBJ_GFX_OLD_MAN_1, 0, 11, 9, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, FallarborTown_EventScript_1EB20C, 0
+ object_event 2, EVENT_OBJ_GFX_EXPERT_M, 0, 11, 9, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, FallarborTown_EventScript_1EB20C, 0
object_event 3, EVENT_OBJ_GFX_GENTLEMAN, 0, 11, 15, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 1, 1, 0, 0, FallarborTown_EventScript_1EB234, 0
object_event 4, EVENT_OBJ_GFX_AZURILL, 0, 8, 12, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 0, 0, 0, FallarborTown_EventScript_1EB23D, 907
diff --git a/data/maps/FallarborTown_BattleTentLobby/events.inc b/data/maps/FallarborTown_BattleTentLobby/events.inc
index cdf9c79b9..937a15f27 100644
--- a/data/maps/FallarborTown_BattleTentLobby/events.inc
+++ b/data/maps/FallarborTown_BattleTentLobby/events.inc
@@ -1,7 +1,7 @@
FallarborTown_BattleTentLobby_EventObjects: @ 852E370
object_event 1, EVENT_OBJ_GFX_BLACK_BELT, 0, 6, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, FallarborTown_BattleTentLobby_EventScript_200001, 0
object_event 2, EVENT_OBJ_GFX_HIKER, 0, 1, 5, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 1, 0, 0, FallarborTown_BattleTentLobby_EventScript_20020D, 0
- object_event 3, EVENT_OBJ_GFX_LITTLE_BOY_2, 0, 12, 6, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 1, 1, 0, 0, FallarborTown_BattleTentLobby_EventScript_200216, 0
+ object_event 3, EVENT_OBJ_GFX_LITTLE_BOY, 0, 12, 6, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 1, 1, 0, 0, FallarborTown_BattleTentLobby_EventScript_200216, 0
object_event 4, EVENT_OBJ_GFX_LASS, 0, 10, 9, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, FallarborTown_BattleTentLobby_EventScript_20021F, 0
object_event 5, EVENT_OBJ_GFX_SCOTT, 0, 0, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, FallarborTown_BattleTentLobby_EventScript_200228, 767
diff --git a/data/maps/FallarborTown_House1/events.inc b/data/maps/FallarborTown_House1/events.inc
index 8f16a7869..972ba61b6 100644
--- a/data/maps/FallarborTown_House1/events.inc
+++ b/data/maps/FallarborTown_House1/events.inc
@@ -1,6 +1,6 @@
FallarborTown_House1_EventObjects: @ 852E5B8
object_event 1, EVENT_OBJ_GFX_SCIENTIST_1, 0, 6, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, FallarborTown_House1_EventScript_200F13, 928
- object_event 2, EVENT_OBJ_GFX_WOMAN_3, 0, 5, 6, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, FallarborTown_House1_EventScript_200FBC, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 5, 6, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, FallarborTown_House1_EventScript_200FBC, 0
FallarborTown_House1_MapWarps: @ 852E5E8
warp_def 3, 8, 0, 3, MAP_FALLARBOR_TOWN
diff --git a/data/maps/FallarborTown_Mart/events.inc b/data/maps/FallarborTown_Mart/events.inc
index f2ec25c13..41bc31894 100644
--- a/data/maps/FallarborTown_Mart/events.inc
+++ b/data/maps/FallarborTown_Mart/events.inc
@@ -1,7 +1,7 @@
FallarborTown_Mart_EventObjects: @ 852E2D4
object_event 1, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, FallarborTown_Mart_EventScript_1FFCBF, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_3, 0, 5, 3, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, FallarborTown_Mart_EventScript_1FFCF4, 0
- object_event 3, EVENT_OBJ_GFX_MAN_3, 0, 9, 6, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, FallarborTown_Mart_EventScript_1FFCFD, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 5, 3, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, FallarborTown_Mart_EventScript_1FFCF4, 0
+ object_event 3, EVENT_OBJ_GFX_POKEFAN_M, 0, 9, 6, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, FallarborTown_Mart_EventScript_1FFCFD, 0
object_event 4, EVENT_OBJ_GFX_SKITTY, 0, 2, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, FallarborTown_Mart_EventScript_1FFD06, 0
object_event 5, EVENT_OBJ_GFX_GIRL_2, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, FallarborTown_Mart_EventScript_2C80B6, 0
diff --git a/data/maps/FallarborTown_PokemonCenter_1F/events.inc b/data/maps/FallarborTown_PokemonCenter_1F/events.inc
index fffc618eb..12b7f850e 100644
--- a/data/maps/FallarborTown_PokemonCenter_1F/events.inc
+++ b/data/maps/FallarborTown_PokemonCenter_1F/events.inc
@@ -1,8 +1,8 @@
FallarborTown_PokemonCenter_1F_EventObjects: @ 852E4A0
object_event 1, EVENT_OBJ_GFX_NURSE, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, FallarborTown_PokemonCenter_1F_EventScript_200BE1, 0
object_event 2, EVENT_OBJ_GFX_GIRL_3, 0, 10, 6, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, FallarborTown_PokemonCenter_1F_EventScript_200BEF, 0
- object_event 3, EVENT_OBJ_GFX_OLD_MAN_1, 0, 2, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, FallarborTown_PokemonCenter_1F_EventScript_200BF8, 0
- object_event 4, EVENT_OBJ_GFX_WOMAN_3, 0, 10, 2, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, FallarborTown_PokemonCenter_1F_EventScript_200C01, 871
+ object_event 3, EVENT_OBJ_GFX_EXPERT_M, 0, 2, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, FallarborTown_PokemonCenter_1F_EventScript_200BF8, 0
+ object_event 4, EVENT_OBJ_GFX_WOMAN_2, 0, 10, 2, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, FallarborTown_PokemonCenter_1F_EventScript_200C01, 871
FallarborTown_PokemonCenter_1F_MapWarps: @ 852E500
warp_def 7, 8, 3, 2, MAP_FALLARBOR_TOWN
diff --git a/data/maps/FortreeCity/events.inc b/data/maps/FortreeCity/events.inc
index 914c4901c..d0cede5fc 100644
--- a/data/maps/FortreeCity/events.inc
+++ b/data/maps/FortreeCity/events.inc
@@ -1,10 +1,10 @@
FortreeCity_EventObjects: @ 8526B9C
object_event 1, EVENT_OBJ_GFX_MAN_2, 0, 31, 3, 4, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, FortreeCity_EventScript_1E25B6, 0
object_event 2, EVENT_OBJ_GFX_GIRL_1, 0, 32, 16, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, FortreeCity_EventScript_1E25DE, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_7, 0, 32, 10, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, FortreeCity_EventScript_1E25BF, 0
+ object_event 3, EVENT_OBJ_GFX_WOMAN_5, 0, 32, 10, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, FortreeCity_EventScript_1E25BF, 0
object_event 4, EVENT_OBJ_GFX_BOY_1, 0, 11, 14, 4, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, FortreeCity_EventScript_1E25F0, 0
- object_event 5, EVENT_OBJ_GFX_OLD_MAN_2, 0, 8, 10, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, FortreeCity_EventScript_1E25E7, 0
- object_event 6, EVENT_OBJ_GFX_BOY_5, 0, 9, 16, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, FortreeCity_EventScript_1E25F9, 0
+ object_event 5, EVENT_OBJ_GFX_OLD_MAN, 0, 8, 10, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, FortreeCity_EventScript_1E25E7, 0
+ object_event 6, EVENT_OBJ_GFX_GAMEBOY_KID, 0, 9, 16, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, FortreeCity_EventScript_1E25F9, 0
object_event 7, EVENT_OBJ_GFX_KECLEON_1, 0, 25, 8, 3, MOVEMENT_TYPE_INVISIBLE, 1, 1, 0, 0, FortreeCity_EventScript_1E2614, 969
FortreeCity_MapWarps: @ 8526C44
diff --git a/data/maps/FortreeCity_DecorationShop/events.inc b/data/maps/FortreeCity_DecorationShop/events.inc
index 22abe3103..2c5a0d21e 100644
--- a/data/maps/FortreeCity_DecorationShop/events.inc
+++ b/data/maps/FortreeCity_DecorationShop/events.inc
@@ -1,5 +1,5 @@
FortreeCity_DecorationShop_EventObjects: @ 85310B0
- object_event 1, EVENT_OBJ_GFX_MAN_3, 0, 6, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, FortreeCity_DecorationShop_EventScript_21800E, 0
+ object_event 1, EVENT_OBJ_GFX_POKEFAN_M, 0, 6, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, FortreeCity_DecorationShop_EventScript_21800E, 0
object_event 2, EVENT_OBJ_GFX_GIRL_3, 0, 0, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, FortreeCity_DecorationShop_EventScript_218017, 0
object_event 3, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 1, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, FortreeCity_DecorationShop_EventScript_218020, 0
object_event 4, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 6, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, FortreeCity_DecorationShop_EventScript_21804C, 0
diff --git a/data/maps/FortreeCity_Gym/events.inc b/data/maps/FortreeCity_Gym/events.inc
index 5cc222c4e..307d35cc7 100644
--- a/data/maps/FortreeCity_Gym/events.inc
+++ b/data/maps/FortreeCity_Gym/events.inc
@@ -1,12 +1,12 @@
FortreeCity_Gym_EventObjects: @ 8530C98
object_event 1, EVENT_OBJ_GFX_WINONA, 0, 15, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, FortreeCity_Gym_EventScript_2165C8, 0
- object_event 2, EVENT_OBJ_GFX_MAN_6, 0, 4, 14, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 3, FortreeCity_Gym_EventScript_2166A8, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_5, 0, 4, 14, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 3, FortreeCity_Gym_EventScript_2166A8, 0
object_event 3, EVENT_OBJ_GFX_CAMPER, 0, 10, 10, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 2, FortreeCity_Gym_EventScript_2166D6, 0
object_event 4, EVENT_OBJ_GFX_PICNICKER, 0, 5, 17, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 1, FortreeCity_Gym_EventScript_2166ED, 0
- object_event 5, EVENT_OBJ_GFX_MAN_6, 0, 9, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 2, FortreeCity_Gym_EventScript_2166BF, 0
+ object_event 5, EVENT_OBJ_GFX_MAN_5, 0, 9, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 2, FortreeCity_Gym_EventScript_2166BF, 0
object_event 6, EVENT_OBJ_GFX_MAN_2, 0, 15, 21, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, FortreeCity_Gym_EventScript_216732, 0
- object_event 7, EVENT_OBJ_GFX_MAN_6, 0, 4, 23, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 1, FortreeCity_Gym_EventScript_216704, 0
- object_event 8, EVENT_OBJ_GFX_MAN_6, 0, 1, 10, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 3, FortreeCity_Gym_EventScript_21671B, 0
+ object_event 7, EVENT_OBJ_GFX_MAN_5, 0, 4, 23, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 1, FortreeCity_Gym_EventScript_216704, 0
+ object_event 8, EVENT_OBJ_GFX_MAN_5, 0, 1, 10, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 3, FortreeCity_Gym_EventScript_21671B, 0
FortreeCity_Gym_MapWarps: @ 8530D58
warp_def 15, 24, 0, 2, MAP_FORTREE_CITY
diff --git a/data/maps/FortreeCity_House1/events.inc b/data/maps/FortreeCity_House1/events.inc
index 35ed2acaf..45b2a902a 100644
--- a/data/maps/FortreeCity_House1/events.inc
+++ b/data/maps/FortreeCity_House1/events.inc
@@ -1,7 +1,7 @@
FortreeCity_House1_EventObjects: @ 8530C2C
- object_event 1, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, FortreeCity_House1_EventScript_2162BB, 0
+ object_event 1, EVENT_OBJ_GFX_NINJA_BOY, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, FortreeCity_House1_EventScript_2162BB, 0
object_event 2, EVENT_OBJ_GFX_ZIGZAGOON_2, 0, 2, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, FortreeCity_House1_EventScript_216368, 0
- object_event 3, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 7, 4, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, FortreeCity_House1_EventScript_21635F, 0
+ object_event 3, EVENT_OBJ_GFX_EXPERT_F, 0, 7, 4, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, FortreeCity_House1_EventScript_21635F, 0
FortreeCity_House1_MapWarps: @ 8530C74
warp_def 3, 5, 0, 1, MAP_FORTREE_CITY
diff --git a/data/maps/FortreeCity_House2/events.inc b/data/maps/FortreeCity_House2/events.inc
index 43bc1fdfc..f9a5c11ab 100644
--- a/data/maps/FortreeCity_House2/events.inc
+++ b/data/maps/FortreeCity_House2/events.inc
@@ -1,6 +1,6 @@
FortreeCity_House2_EventObjects: @ 8530F30
- object_event 1, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 2, 3, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, FortreeCity_House2_EventScript_2177CB, 0
- object_event 2, EVENT_OBJ_GFX_OLD_MAN_1, 0, 6, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 0, 0, 0, FortreeCity_House2_EventScript_2C811E, 0
+ object_event 1, EVENT_OBJ_GFX_EXPERT_F, 0, 2, 3, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, FortreeCity_House2_EventScript_2177CB, 0
+ object_event 2, EVENT_OBJ_GFX_EXPERT_M, 0, 6, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 0, 0, 0, FortreeCity_House2_EventScript_2C811E, 0
FortreeCity_House2_MapWarps: @ 8530F60
warp_def 3, 5, 0, 4, MAP_FORTREE_CITY
diff --git a/data/maps/FortreeCity_House4/events.inc b/data/maps/FortreeCity_House4/events.inc
index c038066e4..2a7842d5e 100644
--- a/data/maps/FortreeCity_House4/events.inc
+++ b/data/maps/FortreeCity_House4/events.inc
@@ -1,5 +1,5 @@
FortreeCity_House4_EventObjects: @ 8530FD8
- object_event 1, EVENT_OBJ_GFX_WOMAN_5, 0, 6, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, FortreeCity_House4_EventScript_217C81, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_4, 0, 6, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, FortreeCity_House4_EventScript_217C81, 0
object_event 2, EVENT_OBJ_GFX_BOY_3, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, FortreeCity_House4_EventScript_217C8A, 0
object_event 3, EVENT_OBJ_GFX_WINGULL, 0, 2, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, FortreeCity_House4_EventScript_217D20, 933
diff --git a/data/maps/FortreeCity_House5/events.inc b/data/maps/FortreeCity_House5/events.inc
index 0c716961a..8db01a8d0 100644
--- a/data/maps/FortreeCity_House5/events.inc
+++ b/data/maps/FortreeCity_House5/events.inc
@@ -1,5 +1,5 @@
FortreeCity_House5_EventObjects: @ 8531044
- object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 6, 4, 3, MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT, 0, 0, 0, 0, FortreeCity_House5_EventScript_217EF2, 0
+ object_event 1, EVENT_OBJ_GFX_POKEFAN_F, 0, 6, 4, 3, MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT, 0, 0, 0, 0, FortreeCity_House5_EventScript_217EF2, 0
object_event 2, EVENT_OBJ_GFX_ZIGZAGOON_2, 0, 6, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, FortreeCity_House5_EventScript_217F04, 0
object_event 3, EVENT_OBJ_GFX_MAN_1, 0, 2, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, FortreeCity_House5_EventScript_217EFB, 0
diff --git a/data/maps/FortreeCity_Mart/events.inc b/data/maps/FortreeCity_Mart/events.inc
index 5335df01d..e41280e89 100644
--- a/data/maps/FortreeCity_Mart/events.inc
+++ b/data/maps/FortreeCity_Mart/events.inc
@@ -1,6 +1,6 @@
FortreeCity_Mart_EventObjects: @ 8530EAC
object_event 1, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, FortreeCity_Mart_EventScript_217666, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_3, 0, 9, 3, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, FortreeCity_Mart_EventScript_217698, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 9, 3, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, FortreeCity_Mart_EventScript_217698, 0
object_event 3, EVENT_OBJ_GFX_GIRL_3, 0, 8, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, FortreeCity_Mart_EventScript_2176A1, 0
object_event 4, EVENT_OBJ_GFX_BOY_2, 0, 5, 6, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, FortreeCity_Mart_EventScript_2176AA, 0
diff --git a/data/maps/FortreeCity_PokemonCenter_1F/events.inc b/data/maps/FortreeCity_PokemonCenter_1F/events.inc
index e63b6eabb..f43cb4063 100644
--- a/data/maps/FortreeCity_PokemonCenter_1F/events.inc
+++ b/data/maps/FortreeCity_PokemonCenter_1F/events.inc
@@ -1,7 +1,7 @@
FortreeCity_PokemonCenter_1F_EventObjects: @ 8530D94
object_event 1, EVENT_OBJ_GFX_NURSE, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, FortreeCity_PokemonCenter_1F_EventScript_2173E7, 0
object_event 2, EVENT_OBJ_GFX_GENTLEMAN, 0, 4, 7, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, FortreeCity_PokemonCenter_1F_EventScript_2173F5, 0
- object_event 3, EVENT_OBJ_GFX_MAN_4, 0, 8, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, FortreeCity_PokemonCenter_1F_EventScript_2173FE, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_3, 0, 8, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, FortreeCity_PokemonCenter_1F_EventScript_2173FE, 0
object_event 4, EVENT_OBJ_GFX_BOY_3, 0, 2, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, FortreeCity_PokemonCenter_1F_EventScript_217407, 0
FortreeCity_PokemonCenter_1F_MapWarps: @ 8530DF4
diff --git a/data/maps/LavaridgeTown/events.inc b/data/maps/LavaridgeTown/events.inc
index 184bed05e..1d4b1239a 100644
--- a/data/maps/LavaridgeTown/events.inc
+++ b/data/maps/LavaridgeTown/events.inc
@@ -1,13 +1,13 @@
LavaridgeTown_EventObjects: @ 8527A54
- object_event 1, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 8, 7, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LavaridgeTown_EventScript_1EA73B, 0
- object_event 2, EVENT_OBJ_GFX_OLD_MAN_1, 0, 5, 1, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LavaridgeTown_EventScript_1EA70E, 0
- object_event 3, EVENT_OBJ_GFX_OLD_MAN_2, 0, 5, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LavaridgeTown_EventScript_1EA717, 0
- object_event 4, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 10, 13, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 2, 0, 0, LavaridgeTown_EventScript_1EA720, 0
+ object_event 1, EVENT_OBJ_GFX_EXPERT_F, 0, 8, 7, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LavaridgeTown_EventScript_1EA73B, 0
+ object_event 2, EVENT_OBJ_GFX_EXPERT_M, 0, 5, 1, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LavaridgeTown_EventScript_1EA70E, 0
+ object_event 3, EVENT_OBJ_GFX_OLD_MAN, 0, 5, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LavaridgeTown_EventScript_1EA717, 0
+ object_event 4, EVENT_OBJ_GFX_TWIN, 0, 10, 13, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 2, 0, 0, LavaridgeTown_EventScript_1EA720, 0
object_event 5, EVENT_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 0, 0, 0, 0, LavaridgeTown_EventScript_1EA729, 0
object_event 6, EVENT_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN, 0, 5, 4, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 0, 0, 0, 0, LavaridgeTown_EventScript_1EA732, 0
object_event 7, EVENT_OBJ_GFX_GIDDY, 0, 6, 16, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, 0x0, 930
object_event 8, EVENT_OBJ_GFX_HIPSTER, 0, 12, 15, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, 0x0, 929
- object_event 9, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 4, 7, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LavaridgeTown_EventScript_1EA744, 0
+ object_event 9, EVENT_OBJ_GFX_EXPERT_F, 0, 4, 7, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LavaridgeTown_EventScript_1EA744, 0
LavaridgeTown_MapWarps: @ 8527B2C
warp_def 12, 15, 0, 0, MAP_LAVARIDGE_TOWN_HERB_SHOP
diff --git a/data/maps/LavaridgeTown_Gym_1F/events.inc b/data/maps/LavaridgeTown_Gym_1F/events.inc
index d8aa6daa4..ee1cf057f 100644
--- a/data/maps/LavaridgeTown_Gym_1F/events.inc
+++ b/data/maps/LavaridgeTown_Gym_1F/events.inc
@@ -1,8 +1,8 @@
LavaridgeTown_Gym_1F_EventObjects: @ 852DE1C
object_event 1, EVENT_OBJ_GFX_FLANNERY, 0, 13, 9, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LavaridgeTown_Gym_1F_EventScript_1FE78C, 0
- object_event 2, EVENT_OBJ_GFX_MAN_6, 0, 3, 14, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 3, 1, LavaridgeTown_Gym_1F_EventScript_1FE87F, 0
- object_event 3, EVENT_OBJ_GFX_MAN_4, 0, 2, 15, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 3, 1, LavaridgeTown_Gym_1F_EventScript_1FE900, 0
- object_event 4, EVENT_OBJ_GFX_MAN_6, 0, 3, 10, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 3, 1, LavaridgeTown_Gym_1F_EventScript_1FE8AF, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_5, 0, 3, 14, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 3, 1, LavaridgeTown_Gym_1F_EventScript_1FE87F, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_3, 0, 2, 15, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 3, 1, LavaridgeTown_Gym_1F_EventScript_1FE900, 0
+ object_event 4, EVENT_OBJ_GFX_MAN_5, 0, 3, 10, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 3, 1, LavaridgeTown_Gym_1F_EventScript_1FE8AF, 0
object_event 5, EVENT_OBJ_GFX_GIRL_3, 0, 5, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 3, 1, LavaridgeTown_Gym_1F_EventScript_1FE8E5, 0
object_event 6, EVENT_OBJ_GFX_MAN_2, 0, 12, 16, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LavaridgeTown_Gym_1F_EventScript_1FE96C, 0
diff --git a/data/maps/LavaridgeTown_Gym_B1F/events.inc b/data/maps/LavaridgeTown_Gym_B1F/events.inc
index cccd9cb14..337bfd761 100644
--- a/data/maps/LavaridgeTown_Gym_B1F/events.inc
+++ b/data/maps/LavaridgeTown_Gym_B1F/events.inc
@@ -1,7 +1,7 @@
LavaridgeTown_Gym_B1F_EventObjects: @ 852DFA8
- object_event 1, EVENT_OBJ_GFX_MAN_6, 0, 4, 18, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 3, 1, LavaridgeTown_Gym_B1F_EventScript_1FE91B, 0
- object_event 2, EVENT_OBJ_GFX_MAN_6, 0, 3, 6, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 3, 1, LavaridgeTown_Gym_B1F_EventScript_1FE8CA, 0
- object_event 3, EVENT_OBJ_GFX_MAN_6, 0, 13, 17, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 3, 1, LavaridgeTown_Gym_B1F_EventScript_1FE936, 0
+ object_event 1, EVENT_OBJ_GFX_MAN_5, 0, 4, 18, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 3, 1, LavaridgeTown_Gym_B1F_EventScript_1FE91B, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_5, 0, 3, 6, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 3, 1, LavaridgeTown_Gym_B1F_EventScript_1FE8CA, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_5, 0, 13, 17, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 3, 1, LavaridgeTown_Gym_B1F_EventScript_1FE936, 0
object_event 4, EVENT_OBJ_GFX_HIKER, 0, 4, 16, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 3, 1, LavaridgeTown_Gym_B1F_EventScript_1FE951, 0
LavaridgeTown_Gym_B1F_MapWarps: @ 852E008
diff --git a/data/maps/LavaridgeTown_HerbShop/events.inc b/data/maps/LavaridgeTown_HerbShop/events.inc
index 8a80c4f75..f8602d872 100644
--- a/data/maps/LavaridgeTown_HerbShop/events.inc
+++ b/data/maps/LavaridgeTown_HerbShop/events.inc
@@ -1,7 +1,7 @@
LavaridgeTown_HerbShop_EventObjects: @ 852DDB0
- object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 3, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LavaridgeTown_HerbShop_EventScript_1FE4D7, 0
- object_event 2, EVENT_OBJ_GFX_OLD_MAN_2, 0, 7, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, LavaridgeTown_HerbShop_EventScript_1FE505, 0
- object_event 3, EVENT_OBJ_GFX_OLD_MAN_1, 0, 9, 3, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 1, 0, 0, LavaridgeTown_HerbShop_EventScript_1FE4FC, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 3, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LavaridgeTown_HerbShop_EventScript_1FE4D7, 0
+ object_event 2, EVENT_OBJ_GFX_OLD_MAN, 0, 7, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, LavaridgeTown_HerbShop_EventScript_1FE505, 0
+ object_event 3, EVENT_OBJ_GFX_EXPERT_M, 0, 9, 3, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 1, 0, 0, LavaridgeTown_HerbShop_EventScript_1FE4FC, 0
LavaridgeTown_HerbShop_MapWarps: @ 852DDF8
warp_def 3, 7, 0, 0, MAP_LAVARIDGE_TOWN
diff --git a/data/maps/LavaridgeTown_House/events.inc b/data/maps/LavaridgeTown_House/events.inc
index 85a9d859e..0a44e6e8d 100644
--- a/data/maps/LavaridgeTown_House/events.inc
+++ b/data/maps/LavaridgeTown_House/events.inc
@@ -1,7 +1,7 @@
LavaridgeTown_House_EventObjects: @ 852E0DC
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_2, 0, 2, 3, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, LavaridgeTown_House_EventScript_1FF912, 0
+ object_event 1, EVENT_OBJ_GFX_OLD_MAN, 0, 2, 3, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, LavaridgeTown_House_EventScript_1FF912, 0
object_event 2, EVENT_OBJ_GFX_ZIGZAGOON_2, 0, 6, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, LavaridgeTown_House_EventScript_1FF91B, 0
- object_event 3, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 8, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LavaridgeTown_House_EventScript_2C804E, 0
+ object_event 3, EVENT_OBJ_GFX_NINJA_BOY, 0, 8, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LavaridgeTown_House_EventScript_2C804E, 0
LavaridgeTown_House_MapWarps: @ 852E124
warp_def 3, 7, 0, 4, MAP_LAVARIDGE_TOWN
diff --git a/data/maps/LavaridgeTown_Mart/events.inc b/data/maps/LavaridgeTown_Mart/events.inc
index a5537f9ca..8534faa7b 100644
--- a/data/maps/LavaridgeTown_Mart/events.inc
+++ b/data/maps/LavaridgeTown_Mart/events.inc
@@ -1,7 +1,7 @@
LavaridgeTown_Mart_EventObjects: @ 852E148
object_event 1, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LavaridgeTown_Mart_EventScript_1FF9CE, 0
- object_event 2, EVENT_OBJ_GFX_OLD_MAN_1, 0, 4, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LavaridgeTown_Mart_EventScript_1FF9FE, 0
- object_event 3, EVENT_OBJ_GFX_OLD_WOMAN_2, 0, 9, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LavaridgeTown_Mart_EventScript_1FFA07, 0
+ object_event 2, EVENT_OBJ_GFX_EXPERT_M, 0, 4, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LavaridgeTown_Mart_EventScript_1FF9FE, 0
+ object_event 3, EVENT_OBJ_GFX_OLD_WOMAN, 0, 9, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LavaridgeTown_Mart_EventScript_1FFA07, 0
LavaridgeTown_Mart_MapWarps: @ 852E190
warp_def 3, 7, 0, 2, MAP_LAVARIDGE_TOWN
diff --git a/data/maps/LavaridgeTown_PokemonCenter_1F/events.inc b/data/maps/LavaridgeTown_PokemonCenter_1F/events.inc
index 1586553f2..bf7246caa 100644
--- a/data/maps/LavaridgeTown_PokemonCenter_1F/events.inc
+++ b/data/maps/LavaridgeTown_PokemonCenter_1F/events.inc
@@ -1,7 +1,7 @@
LavaridgeTown_PokemonCenter_1F_EventObjects: @ 852E1B4
object_event 1, EVENT_OBJ_GFX_NURSE, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LavaridgeTown_PokemonCenter_1F_EventScript_1FFB0E, 0
object_event 2, EVENT_OBJ_GFX_YOUNGSTER, 0, 11, 8, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LavaridgeTown_PokemonCenter_1F_EventScript_1FFB1C, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_4, 0, 10, 6, 0, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LavaridgeTown_PokemonCenter_1F_EventScript_1FFB25, 0
+ object_event 3, EVENT_OBJ_GFX_WOMAN_3, 0, 10, 6, 0, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LavaridgeTown_PokemonCenter_1F_EventScript_1FFB25, 0
object_event 4, EVENT_OBJ_GFX_GENTLEMAN, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LavaridgeTown_PokemonCenter_1F_EventScript_1FFB2E, 0
LavaridgeTown_PokemonCenter_1F_MapWarps: @ 852E214
diff --git a/data/maps/LilycoveCity/events.inc b/data/maps/LilycoveCity/events.inc
index 240de9cd4..427f49201 100644
--- a/data/maps/LilycoveCity/events.inc
+++ b/data/maps/LilycoveCity/events.inc
@@ -2,12 +2,12 @@ LilycoveCity_EventObjects: @ 8526CE8
object_event 1, EVENT_OBJ_GFX_SAILOR, 0, 32, 20, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, LilycoveCity_EventScript_1E2C53, 0
object_event 2, EVENT_OBJ_GFX_GIRL_1, 0, 15, 18, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_EventScript_1E2C2B, 0
object_event 3, EVENT_OBJ_GFX_MAN_1, 0, 28, 28, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, LilycoveCity_EventScript_1E2C22, 0
- object_event 4, EVENT_OBJ_GFX_BOY_4, 0, 21, 15, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_EventScript_1E2C4A, 0
+ object_event 4, EVENT_OBJ_GFX_RICH_BOY, 0, 21, 15, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_EventScript_1E2C4A, 0
object_event 5, EVENT_OBJ_GFX_MAN_2, 0, 16, 9, 5, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, LilycoveCity_EventScript_1E2C91, 0
- object_event 6, EVENT_OBJ_GFX_WOMAN_3, 0, 35, 27, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_EventScript_1E2C72, 0
- object_event 7, EVENT_OBJ_GFX_OLD_MAN_1, 0, 35, 37, 5, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_EventScript_1E2C9A, 0
- object_event 8, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 34, 37, 5, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_EventScript_1E2CA3, 0
- object_event 9, EVENT_OBJ_GFX_OLD_MAN_1, 0, 57, 17, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, LilycoveCity_EventScript_1E2CAC, 0
+ object_event 6, EVENT_OBJ_GFX_WOMAN_2, 0, 35, 27, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_EventScript_1E2C72, 0
+ object_event 7, EVENT_OBJ_GFX_EXPERT_M, 0, 35, 37, 5, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_EventScript_1E2C9A, 0
+ object_event 8, EVENT_OBJ_GFX_EXPERT_F, 0, 34, 37, 5, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_EventScript_1E2CA3, 0
+ object_event 9, EVENT_OBJ_GFX_EXPERT_M, 0, 57, 17, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, LilycoveCity_EventScript_1E2CAC, 0
object_event 10, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 73, 15, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_EventScript_1E2D7D, 852
object_event 11, EVENT_OBJ_GFX_ITEM_BALL, 0, 61, 36, 5, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, LilycoveCity_EventScript_2910E8, 1042
object_event 12, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 43, 18, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, LilycoveCity_EventScript_1E2DD5, 852
@@ -17,7 +17,7 @@ LilycoveCity_EventObjects: @ 8526CE8
object_event 16, EVENT_OBJ_GFX_GENTLEMAN, 0, 50, 7, 5, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_EventScript_1E2BD8, 0
object_event 17, EVENT_OBJ_GFX_HIPSTER, 0, 27, 7, 5, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_EventScript_1E2DDE, 971
object_event 18, EVENT_OBJ_GFX_SCHOOL_KID_M, 0, 16, 23, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, LilycoveCity_EventScript_1E302D, 0
- object_event 19, EVENT_OBJ_GFX_WOMAN_4, 0, 41, 25, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, LilycoveCity_EventScript_1E2CEE, 0
+ object_event 19, EVENT_OBJ_GFX_WOMAN_3, 0, 41, 25, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, LilycoveCity_EventScript_1E2CEE, 0
object_event 20, EVENT_OBJ_GFX_MAN_2, 0, 40, 25, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, LilycoveCity_EventScript_1E2CDD, 0
object_event 21, EVENT_OBJ_GFX_SAILOR, 0, 16, 34, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_EventScript_1E2CCB, 0
object_event 22, EVENT_OBJ_GFX_FAT_MAN, 0, 16, 35, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, LilycoveCity_EventScript_1E2CD4, 0
diff --git a/data/maps/LilycoveCity_ContestHall/events.inc b/data/maps/LilycoveCity_ContestHall/events.inc
index 751bc0fc7..61d1cd63a 100644
--- a/data/maps/LilycoveCity_ContestHall/events.inc
+++ b/data/maps/LilycoveCity_ContestHall/events.inc
@@ -2,34 +2,34 @@ LilycoveCity_ContestHall_EventObjects: @ 8531850
object_event 1, EVENT_OBJ_GFX_BOY_1, 0, 30, 30, 3, MOVEMENT_TYPE_WANDER_AROUND, 4, 4, 0, 0, LilycoveCity_ContestHall_EventScript_21B485, 0
object_event 2, EVENT_OBJ_GFX_BOY_3, 0, 11, 7, 3, MOVEMENT_TYPE_WANDER_AROUND, 3, 3, 0, 0, LilycoveCity_ContestHall_EventScript_21B48E, 0
object_event 3, EVENT_OBJ_GFX_GIRL_3, 0, 40, 8, 3, MOVEMENT_TYPE_WANDER_AROUND, 2, 2, 0, 0, LilycoveCity_ContestHall_EventScript_21B497, 0
- object_event 4, EVENT_OBJ_GFX_WOMAN_4, 0, 12, 22, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B4A9, 0
+ object_event 4, EVENT_OBJ_GFX_WOMAN_3, 0, 12, 22, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B4A9, 0
object_event 5, EVENT_OBJ_GFX_CONTEST_JUDGE, 0, 15, 22, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B4C0, 0
object_event 6, EVENT_OBJ_GFX_BLACK_BELT, 0, 10, 25, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B4D7, 0
- object_event 7, EVENT_OBJ_GFX_OLD_MAN_1, 0, 12, 25, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B4EE, 0
+ object_event 7, EVENT_OBJ_GFX_EXPERT_M, 0, 12, 25, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B4EE, 0
object_event 8, EVENT_OBJ_GFX_MANIAC, 0, 14, 25, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B505, 0
- object_event 9, EVENT_OBJ_GFX_WOMAN_6, 0, 16, 25, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B51C, 0
- object_event 10, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 8, 24, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B533, 0
- object_event 11, EVENT_OBJ_GFX_WOMAN_7, 0, 18, 24, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B56A, 0
+ object_event 9, EVENT_OBJ_GFX_LINK_RECEPTIONIST, 0, 16, 25, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B51C, 0
+ object_event 10, EVENT_OBJ_GFX_EXPERT_F, 0, 8, 24, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B533, 0
+ object_event 11, EVENT_OBJ_GFX_WOMAN_5, 0, 18, 24, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B56A, 0
object_event 12, EVENT_OBJ_GFX_BOY_1, 0, 8, 22, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B53C, 0
- object_event 13, EVENT_OBJ_GFX_WOMAN_4, 0, 24, 10, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B581, 0
+ object_event 13, EVENT_OBJ_GFX_WOMAN_3, 0, 24, 10, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B581, 0
object_event 14, EVENT_OBJ_GFX_CONTEST_JUDGE, 0, 27, 10, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B598, 0
- object_event 15, EVENT_OBJ_GFX_WOMAN_5, 0, 22, 13, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B5AF, 0
- object_event 16, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 24, 13, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B5C6, 0
+ object_event 15, EVENT_OBJ_GFX_WOMAN_4, 0, 22, 13, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B5AF, 0
+ object_event 16, EVENT_OBJ_GFX_TWIN, 0, 24, 13, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B5C6, 0
object_event 17, EVENT_OBJ_GFX_PSYCHIC_M, 0, 26, 13, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B5DD, 0
- object_event 18, EVENT_OBJ_GFX_WOMAN_2, 0, 28, 13, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B5F4, 0
- object_event 19, EVENT_OBJ_GFX_WOMAN_3, 0, 20, 10, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B60B, 0
+ object_event 18, EVENT_OBJ_GFX_POKEFAN_F, 0, 28, 13, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B5F4, 0
+ object_event 19, EVENT_OBJ_GFX_WOMAN_2, 0, 20, 10, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B60B, 0
object_event 20, EVENT_OBJ_GFX_WOMAN_1, 0, 30, 11, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B639, 0
object_event 21, EVENT_OBJ_GFX_MAN_1, 0, 26, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B622, 0
object_event 22, EVENT_OBJ_GFX_CAMPER, 0, 13, 20, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B553, 0
- object_event 23, EVENT_OBJ_GFX_WOMAN_4, 0, 36, 22, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B650, 0
+ object_event 23, EVENT_OBJ_GFX_WOMAN_3, 0, 36, 22, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B650, 0
object_event 24, EVENT_OBJ_GFX_CONTEST_JUDGE, 0, 39, 22, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B667, 0
object_event 25, EVENT_OBJ_GFX_BOY_2, 0, 34, 25, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B67E, 0
object_event 26, EVENT_OBJ_GFX_GIRL_2, 0, 36, 25, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B695, 0
object_event 27, EVENT_OBJ_GFX_BOY_3, 0, 38, 25, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B6AC, 0
- object_event 28, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 40, 25, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B6C3, 0
- object_event 29, EVENT_OBJ_GFX_WOMAN_3, 0, 32, 23, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B6DA, 0
+ object_event 28, EVENT_OBJ_GFX_EXPERT_F, 0, 40, 25, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B6C3, 0
+ object_event 29, EVENT_OBJ_GFX_WOMAN_2, 0, 32, 23, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B6DA, 0
object_event 30, EVENT_OBJ_GFX_MAN_1, 0, 37, 20, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B71C, 0
- object_event 31, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 42, 24, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B705, 0
+ object_event 31, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 42, 24, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_ContestHall_EventScript_21B705, 0
object_event 32, EVENT_OBJ_GFX_SAILOR, 0, 23, 26, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_ContestHall_EventScript_21B4A0, 0
LilycoveCity_ContestHall_MapWarps: @ 8531B50
diff --git a/data/maps/LilycoveCity_ContestLobby/events.inc b/data/maps/LilycoveCity_ContestLobby/events.inc
index be94bfb7b..636e0db5a 100644
--- a/data/maps/LilycoveCity_ContestLobby/events.inc
+++ b/data/maps/LilycoveCity_ContestLobby/events.inc
@@ -1,29 +1,29 @@
LilycoveCity_ContestLobby_EventObjects: @ 8531534
object_event 1, EVENT_OBJ_GFX_TEALA, 0, 14, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A554, 0
object_event 2, EVENT_OBJ_GFX_TEALA, 0, 15, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A806, 0
- object_event 3, EVENT_OBJ_GFX_MAN_5, 0, 26, 9, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_293FA2, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_4, 0, 26, 9, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_293FA2, 0
object_event 4, EVENT_OBJ_GFX_ARTIST, 0, 9, 1, 0, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, 0x0, 774
object_event 5, EVENT_OBJ_GFX_BLACK_BELT, 0, 18, 8, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A708, 0
object_event 6, EVENT_OBJ_GFX_GIRL_2, 0, 4, 9, 3, MOVEMENT_TYPE_WANDER_AROUND, 2, 2, 0, 0, LilycoveCity_ContestLobby_EventScript_21A711, 0
object_event 7, EVENT_OBJ_GFX_ARTIST, 0, 3, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A71A, 0
object_event 8, EVENT_OBJ_GFX_REPORTER_M, 0, 13, 10, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_28CA59, 802
object_event 9, EVENT_OBJ_GFX_BOY_1, 0, 23, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_21A768, 0
- object_event 10, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 28, 9, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_293FB4, 0
+ object_event 10, EVENT_OBJ_GFX_TWIN, 0, 28, 9, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_293FB4, 0
object_event 11, EVENT_OBJ_GFX_ARTIST, 0, 21, 1, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, 0x0, 895
object_event 12, EVENT_OBJ_GFX_FISHERMAN, 0, 5, 6, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A72C, 0
object_event 13, EVENT_OBJ_GFX_FAT_MAN, 0, 0, 8, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_21A723, 0
- object_event 14, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 8, 7, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A735, 0
- object_event 15, EVENT_OBJ_GFX_WOMAN_2, 0, 22, 9, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_293FAB, 0
- object_event 16, EVENT_OBJ_GFX_OLD_MAN_1, 0, 26, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_293FBD, 873
+ object_event 14, EVENT_OBJ_GFX_NINJA_BOY, 0, 8, 7, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A735, 0
+ object_event 15, EVENT_OBJ_GFX_POKEFAN_F, 0, 22, 9, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_293FAB, 0
+ object_event 16, EVENT_OBJ_GFX_EXPERT_M, 0, 26, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_293FBD, 873
object_event 17, EVENT_OBJ_GFX_GIRL_1, 0, 24, 9, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_ContestLobby_EventScript_21A771, 0
- object_event 18, EVENT_OBJ_GFX_MAN_6, 0, 27, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A7B3, 832
+ object_event 18, EVENT_OBJ_GFX_MAN_5, 0, 27, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A7B3, 832
object_event 19, EVENT_OBJ_GFX_CAMPER, 0, 28, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A7BE, 832
- object_event 20, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 28, 7, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A7C9, 832
+ object_event 20, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 28, 7, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A7C9, 832
object_event 21, EVENT_OBJ_GFX_SCIENTIST_2, 0, 26, 7, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A7D9, 832
object_event 22, EVENT_OBJ_GFX_WOMAN_1, 0, 27, 7, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A7E9, 832
- object_event 23, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 26, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A7A8, 832
- object_event 24, EVENT_OBJ_GFX_OLD_MAN_2, 0, 26, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A798, 832
- object_event 25, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 9, 10, 3, MOVEMENT_TYPE_FACE_RIGHT, 2, 2, 0, 0, LilycoveCity_ContestLobby_EventScript_21ACF1, 0
+ object_event 23, EVENT_OBJ_GFX_NINJA_BOY, 0, 26, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A7A8, 832
+ object_event 24, EVENT_OBJ_GFX_OLD_MAN, 0, 26, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, LilycoveCity_ContestLobby_EventScript_21A798, 832
+ object_event 25, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 9, 10, 3, MOVEMENT_TYPE_FACE_RIGHT, 2, 2, 0, 0, LilycoveCity_ContestLobby_EventScript_21ACF1, 0
LilycoveCity_ContestLobby_MapWarps: @ 853178C
warp_def 14, 11, 0, 4, MAP_LILYCOVE_CITY
diff --git a/data/maps/LilycoveCity_CoveLilyMotel_2F/events.inc b/data/maps/LilycoveCity_CoveLilyMotel_2F/events.inc
index c0869f319..810fe5af9 100644
--- a/data/maps/LilycoveCity_CoveLilyMotel_2F/events.inc
+++ b/data/maps/LilycoveCity_CoveLilyMotel_2F/events.inc
@@ -1,10 +1,10 @@
LilycoveCity_CoveLilyMotel_2F_EventObjects: @ 8531188
- object_event 1, EVENT_OBJ_GFX_MAN_4, 0, 4, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_2186D3, 925
+ object_event 1, EVENT_OBJ_GFX_MAN_3, 0, 4, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_2186D3, 925
object_event 2, EVENT_OBJ_GFX_SCIENTIST_1, 0, 1, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_218729, 925
object_event 3, EVENT_OBJ_GFX_FAT_MAN, 0, 7, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_218732, 925
- object_event 4, EVENT_OBJ_GFX_MAN_5, 0, 10, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_218720, 925
- object_event 5, EVENT_OBJ_GFX_BOY_5, 0, 7, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_218744, 925
- object_event 6, EVENT_OBJ_GFX_WOMAN_3, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_21873B, 925
+ object_event 4, EVENT_OBJ_GFX_MAN_4, 0, 10, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_218720, 925
+ object_event 5, EVENT_OBJ_GFX_GAMEBOY_KID, 0, 7, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_218744, 925
+ object_event 6, EVENT_OBJ_GFX_WOMAN_2, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_21873B, 925
object_event 7, EVENT_OBJ_GFX_SCOTT, 0, 1, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_CoveLilyMotel_2F_EventScript_21874D, 787
LilycoveCity_CoveLilyMotel_2F_MapWarps: @ 8531230
diff --git a/data/maps/LilycoveCity_DepartmentStoreRooftop/events.inc b/data/maps/LilycoveCity_DepartmentStoreRooftop/events.inc
index 279772204..5d0b88445 100644
--- a/data/maps/LilycoveCity_DepartmentStoreRooftop/events.inc
+++ b/data/maps/LilycoveCity_DepartmentStoreRooftop/events.inc
@@ -1,8 +1,8 @@
LilycoveCity_DepartmentStoreRooftop_EventObjects: @ 853241C
object_event 1, EVENT_OBJ_GFX_MAN_2, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_DepartmentStoreRooftop_EventScript_220268, 0
- object_event 2, EVENT_OBJ_GFX_MAN_4, 0, 7, 5, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, LilycoveCity_DepartmentStoreRooftop_EventScript_22028C, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_3, 0, 7, 5, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, LilycoveCity_DepartmentStoreRooftop_EventScript_22028C, 0
object_event 3, EVENT_OBJ_GFX_ROOFTOP_SALE_WOMAN, 0, 6, 1, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_DepartmentStoreRooftop_EventScript_22022F, 962
- object_event 4, EVENT_OBJ_GFX_WOMAN_4, 0, 15, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 0, 0, 0, LilycoveCity_DepartmentStoreRooftop_EventScript_2C8186, 0
+ object_event 4, EVENT_OBJ_GFX_WOMAN_3, 0, 15, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 0, 0, 0, LilycoveCity_DepartmentStoreRooftop_EventScript_2C8186, 0
LilycoveCity_DepartmentStoreRooftop_MapWarps: @ 853247C
warp_def 13, 3, 0, 2, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F
diff --git a/data/maps/LilycoveCity_DepartmentStore_1F/events.inc b/data/maps/LilycoveCity_DepartmentStore_1F/events.inc
index b2771391b..dfd7cc46d 100644
--- a/data/maps/LilycoveCity_DepartmentStore_1F/events.inc
+++ b/data/maps/LilycoveCity_DepartmentStore_1F/events.inc
@@ -1,9 +1,9 @@
LilycoveCity_DepartmentStore_1F_EventObjects: @ 853208C
object_event 1, EVENT_OBJ_GFX_BEAUTY, 0, 8, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_DepartmentStore_1F_EventScript_21F693, 0
object_event 2, EVENT_OBJ_GFX_BEAUTY, 0, 10, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_DepartmentStore_1F_EventScript_21F69C, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_2, 0, 14, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_1F_EventScript_21F82F, 0
- object_event 4, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 4, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_1F_EventScript_21F838, 0
- object_event 5, EVENT_OBJ_GFX_MAN_3, 0, 3, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_1F_EventScript_21F841, 0
+ object_event 3, EVENT_OBJ_GFX_POKEFAN_F, 0, 14, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_1F_EventScript_21F82F, 0
+ object_event 4, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 4, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_1F_EventScript_21F838, 0
+ object_event 5, EVENT_OBJ_GFX_POKEFAN_M, 0, 3, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_1F_EventScript_21F841, 0
object_event 6, EVENT_OBJ_GFX_AZUMARILL, 0, 2, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_1F_EventScript_21F84A, 0
LilycoveCity_DepartmentStore_1F_MapWarps: @ 853211C
diff --git a/data/maps/LilycoveCity_DepartmentStore_2F/events.inc b/data/maps/LilycoveCity_DepartmentStore_2F/events.inc
index 11fd1c403..9e7d5514e 100644
--- a/data/maps/LilycoveCity_DepartmentStore_2F/events.inc
+++ b/data/maps/LilycoveCity_DepartmentStore_2F/events.inc
@@ -1,9 +1,9 @@
LilycoveCity_DepartmentStore_2F_EventObjects: @ 853215C
object_event 1, EVENT_OBJ_GFX_COOK, 0, 8, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_DepartmentStore_2F_EventScript_21FB2D, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 0, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_2F_EventScript_21FB36, 0
+ object_event 2, EVENT_OBJ_GFX_POKEFAN_F, 0, 0, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_2F_EventScript_21FB36, 0
object_event 3, EVENT_OBJ_GFX_SAILOR, 0, 13, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_2F_EventScript_21FB3F, 0
- object_event 4, EVENT_OBJ_GFX_WOMAN_4, 0, 10, 6, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_DepartmentStore_2F_EventScript_21FB7A, 0
- object_event 5, EVENT_OBJ_GFX_WOMAN_4, 0, 7, 6, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_DepartmentStore_2F_EventScript_21FB48, 0
+ object_event 4, EVENT_OBJ_GFX_WOMAN_3, 0, 10, 6, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_DepartmentStore_2F_EventScript_21FB7A, 0
+ object_event 5, EVENT_OBJ_GFX_WOMAN_3, 0, 7, 6, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_DepartmentStore_2F_EventScript_21FB48, 0
LilycoveCity_DepartmentStore_2F_MapWarps: @ 85321D4
warp_def 16, 1, 0, 2, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F
diff --git a/data/maps/LilycoveCity_DepartmentStore_3F/events.inc b/data/maps/LilycoveCity_DepartmentStore_3F/events.inc
index 7042a1483..84796fad4 100644
--- a/data/maps/LilycoveCity_DepartmentStore_3F/events.inc
+++ b/data/maps/LilycoveCity_DepartmentStore_3F/events.inc
@@ -1,9 +1,9 @@
LilycoveCity_DepartmentStore_3F_EventObjects: @ 8532200
object_event 1, EVENT_OBJ_GFX_RUNNING_TRIATHLETE_M, 0, 0, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_3F_EventScript_21FCB6, 0
- object_event 2, EVENT_OBJ_GFX_MAN_3, 0, 7, 7, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_3F_EventScript_21FCBF, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_7, 0, 13, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_3F_EventScript_21FCC8, 0
- object_event 4, EVENT_OBJ_GFX_WOMAN_4, 0, 8, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_DepartmentStore_3F_EventScript_21FC65, 0
- object_event 5, EVENT_OBJ_GFX_WOMAN_4, 0, 10, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_DepartmentStore_3F_EventScript_21FC8C, 0
+ object_event 2, EVENT_OBJ_GFX_POKEFAN_M, 0, 7, 7, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_3F_EventScript_21FCBF, 0
+ object_event 3, EVENT_OBJ_GFX_WOMAN_5, 0, 13, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_3F_EventScript_21FCC8, 0
+ object_event 4, EVENT_OBJ_GFX_WOMAN_3, 0, 8, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_DepartmentStore_3F_EventScript_21FC65, 0
+ object_event 5, EVENT_OBJ_GFX_WOMAN_3, 0, 10, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_DepartmentStore_3F_EventScript_21FC8C, 0
LilycoveCity_DepartmentStore_3F_MapWarps: @ 8532278
warp_def 13, 1, 0, 1, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F
diff --git a/data/maps/LilycoveCity_DepartmentStore_4F/events.inc b/data/maps/LilycoveCity_DepartmentStore_4F/events.inc
index 8fe1ec45e..7b39c9194 100644
--- a/data/maps/LilycoveCity_DepartmentStore_4F/events.inc
+++ b/data/maps/LilycoveCity_DepartmentStore_4F/events.inc
@@ -1,9 +1,9 @@
LilycoveCity_DepartmentStore_4F_EventObjects: @ 85322A4
object_event 1, EVENT_OBJ_GFX_GENTLEMAN, 0, 0, 2, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_4F_EventScript_21FDEB, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_3, 0, 6, 2, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_4F_EventScript_21FDF4, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 6, 2, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_4F_EventScript_21FDF4, 0
object_event 3, EVENT_OBJ_GFX_YOUNGSTER, 0, 13, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_4F_EventScript_21FDFD, 0
- object_event 4, EVENT_OBJ_GFX_WOMAN_4, 0, 7, 6, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_DepartmentStore_4F_EventScript_21FE06, 0
- object_event 5, EVENT_OBJ_GFX_WOMAN_4, 0, 9, 6, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_DepartmentStore_4F_EventScript_21FE2C, 0
+ object_event 4, EVENT_OBJ_GFX_WOMAN_3, 0, 7, 6, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_DepartmentStore_4F_EventScript_21FE06, 0
+ object_event 5, EVENT_OBJ_GFX_WOMAN_3, 0, 9, 6, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_DepartmentStore_4F_EventScript_21FE2C, 0
LilycoveCity_DepartmentStore_4F_MapWarps: @ 853231C
warp_def 16, 1, 0, 1, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F
diff --git a/data/maps/LilycoveCity_DepartmentStore_5F/events.inc b/data/maps/LilycoveCity_DepartmentStore_5F/events.inc
index 9b56742a2..2118c33e8 100644
--- a/data/maps/LilycoveCity_DepartmentStore_5F/events.inc
+++ b/data/maps/LilycoveCity_DepartmentStore_5F/events.inc
@@ -1,11 +1,11 @@
LilycoveCity_DepartmentStore_5F_EventObjects: @ 8532348
- object_event 1, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 1, 6, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_5F_EventScript_2200BC, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 7, 7, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 0, 0, LilycoveCity_DepartmentStore_5F_EventScript_22006C, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_4, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_DepartmentStore_5F_EventScript_21FFA6, 0
- object_event 4, EVENT_OBJ_GFX_WOMAN_4, 0, 9, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_DepartmentStore_5F_EventScript_21FFDC, 0
- object_event 5, EVENT_OBJ_GFX_WOMAN_4, 0, 15, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_DepartmentStore_5F_EventScript_22000A, 0
- object_event 6, EVENT_OBJ_GFX_WOMAN_4, 0, 17, 6, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_DepartmentStore_5F_EventScript_22003A, 0
- object_event 7, EVENT_OBJ_GFX_WOMAN_3, 0, 9, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, LilycoveCity_DepartmentStore_5F_EventScript_220075, 0
+ object_event 1, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 1, 6, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_DepartmentStore_5F_EventScript_2200BC, 0
+ object_event 2, EVENT_OBJ_GFX_POKEFAN_F, 0, 7, 7, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 0, 0, LilycoveCity_DepartmentStore_5F_EventScript_22006C, 0
+ object_event 3, EVENT_OBJ_GFX_WOMAN_3, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_DepartmentStore_5F_EventScript_21FFA6, 0
+ object_event 4, EVENT_OBJ_GFX_WOMAN_3, 0, 9, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_DepartmentStore_5F_EventScript_21FFDC, 0
+ object_event 5, EVENT_OBJ_GFX_WOMAN_3, 0, 15, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_DepartmentStore_5F_EventScript_22000A, 0
+ object_event 6, EVENT_OBJ_GFX_WOMAN_3, 0, 17, 6, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_DepartmentStore_5F_EventScript_22003A, 0
+ object_event 7, EVENT_OBJ_GFX_WOMAN_2, 0, 9, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, LilycoveCity_DepartmentStore_5F_EventScript_220075, 0
LilycoveCity_DepartmentStore_5F_MapWarps: @ 85323F0
warp_def 13, 1, 0, 1, MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F
diff --git a/data/maps/LilycoveCity_Harbor/events.inc b/data/maps/LilycoveCity_Harbor/events.inc
index 6a157a1ad..7828d58a4 100644
--- a/data/maps/LilycoveCity_Harbor/events.inc
+++ b/data/maps/LilycoveCity_Harbor/events.inc
@@ -3,7 +3,7 @@ LilycoveCity_Harbor_EventObjects: @ 8531E1C
object_event 2, EVENT_OBJ_GFX_SS_TIDAL, 0, 8, 9, 1, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, 0x0, 861
object_event 3, EVENT_OBJ_GFX_SAILOR, 0, 3, 13, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_Harbor_EventScript_21E637, 0
object_event 4, EVENT_OBJ_GFX_SAILOR, 0, 8, 10, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, 0x0, 909
- object_event 5, EVENT_OBJ_GFX_OLD_MAN_1, 0, 8, 10, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 748
+ object_event 5, EVENT_OBJ_GFX_EXPERT_M, 0, 8, 10, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 748
LilycoveCity_Harbor_MapWarps: @ 8531E94
warp_def 11, 14, 0, 12, MAP_LILYCOVE_CITY
diff --git a/data/maps/LilycoveCity_House1/events.inc b/data/maps/LilycoveCity_House1/events.inc
index d5768e01c..392336e02 100644
--- a/data/maps/LilycoveCity_House1/events.inc
+++ b/data/maps/LilycoveCity_House1/events.inc
@@ -1,5 +1,5 @@
LilycoveCity_House1_EventObjects: @ 8531EF4
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_1, 0, 4, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, LilycoveCity_House1_EventScript_21ECCE, 0
+ object_event 1, EVENT_OBJ_GFX_EXPERT_M, 0, 4, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, LilycoveCity_House1_EventScript_21ECCE, 0
object_event 2, EVENT_OBJ_GFX_KECLEON_1, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_House1_EventScript_21ECD7, 0
LilycoveCity_House1_MapWarps: @ 8531F24
diff --git a/data/maps/LilycoveCity_House3/events.inc b/data/maps/LilycoveCity_House3/events.inc
index 89f48e9f3..363e62132 100644
--- a/data/maps/LilycoveCity_House3/events.inc
+++ b/data/maps/LilycoveCity_House3/events.inc
@@ -1,9 +1,9 @@
LilycoveCity_House3_EventObjects: @ 8531F84
- object_event 1, EVENT_OBJ_GFX_BOY_5, 0, 3, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_House3_EventScript_21EF3D, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 7, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_House3_EventScript_21EE4B, 0
- object_event 3, EVENT_OBJ_GFX_BOY_5, 0, 1, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_House3_EventScript_21EED5, 0
- object_event 4, EVENT_OBJ_GFX_BOY_5, 0, 2, 5, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, LilycoveCity_House3_EventScript_21EF09, 0
- object_event 5, EVENT_OBJ_GFX_BOY_5, 0, 2, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_House3_EventScript_21EEA1, 0
+ object_event 1, EVENT_OBJ_GFX_GAMEBOY_KID, 0, 3, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_House3_EventScript_21EF3D, 0
+ object_event 2, EVENT_OBJ_GFX_POKEFAN_F, 0, 7, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_House3_EventScript_21EE4B, 0
+ object_event 3, EVENT_OBJ_GFX_GAMEBOY_KID, 0, 1, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_House3_EventScript_21EED5, 0
+ object_event 4, EVENT_OBJ_GFX_GAMEBOY_KID, 0, 2, 5, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, LilycoveCity_House3_EventScript_21EF09, 0
+ object_event 5, EVENT_OBJ_GFX_GAMEBOY_KID, 0, 2, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_House3_EventScript_21EEA1, 0
object_event 6, EVENT_OBJ_GFX_MAN_1, 0, 7, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, LilycoveCity_House3_EventScript_21EE8A, 0
LilycoveCity_House3_MapWarps: @ 8532014
diff --git a/data/maps/LilycoveCity_House4/events.inc b/data/maps/LilycoveCity_House4/events.inc
index 6e447bf9c..d14a5c82b 100644
--- a/data/maps/LilycoveCity_House4/events.inc
+++ b/data/maps/LilycoveCity_House4/events.inc
@@ -1,5 +1,5 @@
LilycoveCity_House4_EventObjects: @ 8532038
- object_event 1, EVENT_OBJ_GFX_MAN_5, 0, 1, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_House4_EventScript_21F5B5, 0
+ object_event 1, EVENT_OBJ_GFX_MAN_4, 0, 1, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_House4_EventScript_21F5B5, 0
object_event 2, EVENT_OBJ_GFX_MAN_1, 0, 7, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_House4_EventScript_21F5BE, 0
LilycoveCity_House4_MapWarps: @ 8532068
diff --git a/data/maps/LilycoveCity_LilycoveMuseum_1F/events.inc b/data/maps/LilycoveCity_LilycoveMuseum_1F/events.inc
index f24ede1b9..ea9606936 100644
--- a/data/maps/LilycoveCity_LilycoveMuseum_1F/events.inc
+++ b/data/maps/LilycoveCity_LilycoveMuseum_1F/events.inc
@@ -3,9 +3,9 @@ LilycoveCity_LilycoveMuseum_1F_EventObjects: @ 853124C
object_event 2, EVENT_OBJ_GFX_GENTLEMAN, 0, 16, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_218CC2, 775
object_event 3, EVENT_OBJ_GFX_SCHOOL_KID_M, 0, 13, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_218DF5, 0
object_event 4, EVENT_OBJ_GFX_ARTIST, 0, 13, 10, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 2, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_218DFE, 0
- object_event 5, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 2, 8, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_218E07, 0
- object_event 6, EVENT_OBJ_GFX_WOMAN_5, 0, 3, 8, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_218E10, 0
- object_event 7, EVENT_OBJ_GFX_WOMAN_3, 0, 11, 3, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_218E19, 776
+ object_event 5, EVENT_OBJ_GFX_NINJA_BOY, 0, 2, 8, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_218E07, 0
+ object_event 6, EVENT_OBJ_GFX_WOMAN_4, 0, 3, 8, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_218E10, 0
+ object_event 7, EVENT_OBJ_GFX_WOMAN_2, 0, 11, 3, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_218E19, 776
object_event 8, EVENT_OBJ_GFX_ARTIST, 0, 19, 3, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_218E2B, 779
object_event 9, EVENT_OBJ_GFX_FAT_MAN, 0, 2, 2, 3, MOVEMENT_TYPE_WANDER_AROUND, 2, 2, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_218E42, 780
object_event 10, EVENT_OBJ_GFX_PSYCHIC_M, 0, 6, 2, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_218E22, 778
diff --git a/data/maps/LilycoveCity_LilycoveMuseum_2F/events.inc b/data/maps/LilycoveCity_LilycoveMuseum_2F/events.inc
index d88bae478..ce4a6e169 100644
--- a/data/maps/LilycoveCity_LilycoveMuseum_2F/events.inc
+++ b/data/maps/LilycoveCity_LilycoveMuseum_2F/events.inc
@@ -1,8 +1,8 @@
LilycoveCity_LilycoveMuseum_2F_EventObjects: @ 8531428
object_event 1, EVENT_OBJ_GFX_GENTLEMAN, 0, 10, 8, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_LilycoveMuseum_2F_EventScript_219866, 0
object_event 2, EVENT_OBJ_GFX_GIRL_2, 0, 19, 10, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_LilycoveMuseum_2F_EventScript_21998A, 777
- object_event 3, EVENT_OBJ_GFX_OLD_MAN_1, 0, 7, 3, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_LilycoveMuseum_2F_EventScript_219993, 780
- object_event 4, EVENT_OBJ_GFX_BOY_4, 0, 14, 6, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_LilycoveMuseum_2F_EventScript_21999C, 780
+ object_event 3, EVENT_OBJ_GFX_EXPERT_M, 0, 7, 3, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_LilycoveMuseum_2F_EventScript_219993, 780
+ object_event 4, EVENT_OBJ_GFX_RICH_BOY, 0, 14, 6, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, LilycoveCity_LilycoveMuseum_2F_EventScript_21999C, 780
LilycoveCity_LilycoveMuseum_2F_MapWarps: @ 8531488
warp_def 13, 1, 0, 2, MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F
diff --git a/data/maps/LilycoveCity_MoveDeletersHouse/events.inc b/data/maps/LilycoveCity_MoveDeletersHouse/events.inc
index a1be3924f..100ee364c 100644
--- a/data/maps/LilycoveCity_MoveDeletersHouse/events.inc
+++ b/data/maps/LilycoveCity_MoveDeletersHouse/events.inc
@@ -1,5 +1,5 @@
LilycoveCity_MoveDeletersHouse_EventObjects: @ 8531EB8
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_1, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_MoveDeletersHouse_EventScript_21EA0B, 0
+ object_event 1, EVENT_OBJ_GFX_EXPERT_M, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_MoveDeletersHouse_EventScript_21EA0B, 0
LilycoveCity_MoveDeletersHouse_MapWarps: @ 8531ED0
warp_def 3, 7, 0, 7, MAP_LILYCOVE_CITY
diff --git a/data/maps/LilycoveCity_PokemonTrainerFanClub/events.inc b/data/maps/LilycoveCity_PokemonTrainerFanClub/events.inc
index be478e45c..7ba16fbb9 100644
--- a/data/maps/LilycoveCity_PokemonTrainerFanClub/events.inc
+++ b/data/maps/LilycoveCity_PokemonTrainerFanClub/events.inc
@@ -1,12 +1,12 @@
LilycoveCity_PokemonTrainerFanClub_EventObjects: @ 8531D20
object_event 1, EVENT_OBJ_GFX_LASS, 0, 3, 11, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_21CA8E, 0
- object_event 2, EVENT_OBJ_GFX_MAN_5, 0, 8, 10, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_21CA17, 0
- object_event 3, EVENT_OBJ_GFX_MAN_3, 0, 6, 11, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_21CB05, 0
- object_event 4, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 5, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_21CB7C, 0
- object_event 5, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 7, 11, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_21CBF3, 791
+ object_event 2, EVENT_OBJ_GFX_MAN_4, 0, 8, 10, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_21CA17, 0
+ object_event 3, EVENT_OBJ_GFX_POKEFAN_M, 0, 6, 11, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_21CB05, 0
+ object_event 4, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 5, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_21CB7C, 0
+ object_event 5, EVENT_OBJ_GFX_NINJA_BOY, 0, 7, 11, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_21CBF3, 791
object_event 6, EVENT_OBJ_GFX_BOY_2, 0, 1, 9, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_21CC55, 790
- object_event 7, EVENT_OBJ_GFX_WOMAN_4, 0, 3, 10, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_21CCB7, 792
- object_event 8, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 10, 10, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_21CD19, 789
+ object_event 7, EVENT_OBJ_GFX_WOMAN_3, 0, 3, 10, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_21CCB7, 792
+ object_event 8, EVENT_OBJ_GFX_EXPERT_F, 0, 10, 10, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_21CD19, 789
object_event 9, EVENT_OBJ_GFX_BOY_1, 0, 11, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_21CD7B, 730
LilycoveCity_PokemonTrainerFanClub_MapWarps: @ 8531DF8
diff --git a/data/maps/LinkContestRoom1/events.inc b/data/maps/LinkContestRoom1/events.inc
index c87a35486..72fe038ff 100644
--- a/data/maps/LinkContestRoom1/events.inc
+++ b/data/maps/LinkContestRoom1/events.inc
@@ -1,5 +1,5 @@
LinkContestRoom1_EventObjects: @ 8539EFC
- object_event 1, EVENT_OBJ_GFX_WOMAN_4, 0, 6, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, 0x0, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 6, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, 0x0, 0
object_event 2, EVENT_OBJ_GFX_CONTEST_JUDGE, 0, 7, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, 0x0, 0
object_event 3, EVENT_OBJ_GFX_HIPSTER, 0, 4, 7, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, 0x0, 0
object_event 4, EVENT_OBJ_GFX_TRADER, 0, 6, 7, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, 0x0, 0
diff --git a/data/maps/LittlerootTown/events.inc b/data/maps/LittlerootTown/events.inc
index b6e7c3cf9..89057d387 100644
--- a/data/maps/LittlerootTown/events.inc
+++ b/data/maps/LittlerootTown/events.inc
@@ -1,5 +1,5 @@
LittlerootTown_EventObjects: @ 85276A8
- object_event 1, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 16, 10, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 2, 0, 0, LittlerootTown_EventScript_1E8034, 0
+ object_event 1, EVENT_OBJ_GFX_TWIN, 0, 16, 10, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 2, 0, 0, LittlerootTown_EventScript_1E8034, 0
object_event 2, EVENT_OBJ_GFX_FAT_MAN, 0, 12, 13, 3, MOVEMENT_TYPE_WANDER_AROUND, 2, 1, 0, 0, LittlerootTown_EventScript_1E8022, 868
object_event 3, EVENT_OBJ_GFX_BOY_2, 0, 14, 17, 3, MOVEMENT_TYPE_WANDER_AROUND, 2, 1, 0, 0, LittlerootTown_EventScript_1E802B, 0
object_event 4, EVENT_OBJ_GFX_MOM, 0, 5, 8, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, LittlerootTown_EventScript_1E863D, 752
diff --git a/data/maps/LittlerootTown_BrendansHouse_1F/events.inc b/data/maps/LittlerootTown_BrendansHouse_1F/events.inc
index 57538339f..abe7a5bc8 100644
--- a/data/maps/LittlerootTown_BrendansHouse_1F/events.inc
+++ b/data/maps/LittlerootTown_BrendansHouse_1F/events.inc
@@ -1,10 +1,10 @@
LittlerootTown_BrendansHouse_1F_EventObjects: @ 852D08C
object_event 1, EVENT_OBJ_GFX_MOM, 0, 2, 6, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_2929C5, 758
- object_event 2, EVENT_OBJ_GFX_VIGAROTH_CARRYING_BOX, 0, 1, 3, 3, MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT, 3, 0, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_292ACD, 755
- object_event 3, EVENT_OBJ_GFX_VIGAROTH_FACING_AWAY, 0, 4, 5, 3, MOVEMENT_TYPE_WALK_IN_PLACE_UP, 0, 0, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_292ABA, 754
- object_event 4, EVENT_OBJ_GFX_WOMAN_5, 0, 2, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_1F89F3, 784
+ object_event 2, EVENT_OBJ_GFX_VIGOROTH_CARRYING_BOX, 0, 1, 3, 3, MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT, 3, 0, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_292ACD, 755
+ object_event 3, EVENT_OBJ_GFX_VIGOROTH_FACING_AWAY, 0, 4, 5, 3, MOVEMENT_TYPE_WALK_IN_PLACE_UP, 0, 0, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_292ABA, 754
+ object_event 4, EVENT_OBJ_GFX_WOMAN_4, 0, 2, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_1F89F3, 784
object_event 5, EVENT_OBJ_GFX_NORMAN, 0, 5, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, 0x0, 734
- object_event 6, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 1, 5, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 1, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_1F8A3D, 735
+ object_event 6, EVENT_OBJ_GFX_NINJA_BOY, 0, 1, 5, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 1, 0, 0, LittlerootTown_BrendansHouse_1F_EventScript_1F8A3D, 735
object_event 7, EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 0, 8, 8, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, 0x0, 745
LittlerootTown_BrendansHouse_1F_MapWarps: @ 852D134
diff --git a/data/maps/LittlerootTown_BrendansHouse_2F/events.inc b/data/maps/LittlerootTown_BrendansHouse_2F/events.inc
index 815acaa82..8ea295cdf 100644
--- a/data/maps/LittlerootTown_BrendansHouse_2F/events.inc
+++ b/data/maps/LittlerootTown_BrendansHouse_2F/events.inc
@@ -20,7 +20,7 @@ LittlerootTown_BrendansHouse_2F_MapWarps: @ 852D320
warp_def 7, 1, 0, 2, MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F
LittlerootTown_BrendansHouse_2F_MapBGEvents: @ 852D328
- bg_event 0, 1, 0, BG_EVENT_PLAYER_FACING_NORTH, gUnknown_081F860D
+ bg_event 0, 1, 0, BG_EVENT_PLAYER_FACING_NORTH, EventScript_PlayerPCMale
bg_event 1, 1, 0, BG_EVENT_PLAYER_FACING_ANY, LittlerootTown_BrendansHouse_2F_EventScript_1F8656
bg_event 5, 1, 0, BG_EVENT_PLAYER_FACING_ANY, LittlerootTown_BrendansHouse_2F_EventScript_292781
bg_event 3, 1, 0, BG_EVENT_PLAYER_FACING_ANY, LittlerootTown_BrendansHouse_2F_EventScript_1F865F
diff --git a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc
index 429c933fc..2382305bb 100644
--- a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc
+++ b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc
@@ -245,7 +245,7 @@ LittlerootTown_BrendansHouse_2F_Movement_1F8609: @ 81F8609
walk_in_place_fastest_left
step_end
-gUnknown_081F860D:: @ 81F860D
+EventScript_PlayerPCMale:: @ 81F860D
lockall
checkplayergender
compare VAR_RESULT, 0
diff --git a/data/maps/LittlerootTown_MaysHouse_1F/events.inc b/data/maps/LittlerootTown_MaysHouse_1F/events.inc
index fda8175bb..69fb6af63 100644
--- a/data/maps/LittlerootTown_MaysHouse_1F/events.inc
+++ b/data/maps/LittlerootTown_MaysHouse_1F/events.inc
@@ -1,10 +1,10 @@
LittlerootTown_MaysHouse_1F_EventObjects: @ 852D36C
object_event 1, EVENT_OBJ_GFX_MOM, 0, 8, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_2929C5, 759
- object_event 2, EVENT_OBJ_GFX_VIGAROTH_FACING_AWAY, 0, 6, 5, 3, MOVEMENT_TYPE_WALK_IN_PLACE_UP, 0, 0, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_292ABA, 754
- object_event 3, EVENT_OBJ_GFX_VIGAROTH_CARRYING_BOX, 0, 9, 3, 3, MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT, 3, 0, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_292ACD, 755
- object_event 4, EVENT_OBJ_GFX_WOMAN_5, 0, 8, 7, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_1F89F3, 785
+ object_event 2, EVENT_OBJ_GFX_VIGOROTH_FACING_AWAY, 0, 6, 5, 3, MOVEMENT_TYPE_WALK_IN_PLACE_UP, 0, 0, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_292ABA, 754
+ object_event 3, EVENT_OBJ_GFX_VIGOROTH_CARRYING_BOX, 0, 9, 3, 3, MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT, 3, 0, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_292ACD, 755
+ object_event 4, EVENT_OBJ_GFX_WOMAN_4, 0, 8, 7, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_1F89F3, 785
object_event 5, EVENT_OBJ_GFX_NORMAN, 0, 5, 6, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, 0x0, 734
- object_event 6, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 9, 5, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 1, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_1F8A3D, 736
+ object_event 6, EVENT_OBJ_GFX_NINJA_BOY, 0, 9, 5, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 1, 0, 0, LittlerootTown_MaysHouse_1F_EventScript_1F8A3D, 736
object_event 7, EVENT_OBJ_GFX_RIVAL_MAY_NORMAL, 0, 2, 8, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, 0x0, 746
LittlerootTown_MaysHouse_1F_MapWarps: @ 852D414
diff --git a/data/maps/LittlerootTown_MaysHouse_2F/events.inc b/data/maps/LittlerootTown_MaysHouse_2F/events.inc
index 6d541e1e3..a9d7001b7 100644
--- a/data/maps/LittlerootTown_MaysHouse_2F/events.inc
+++ b/data/maps/LittlerootTown_MaysHouse_2F/events.inc
@@ -23,7 +23,7 @@ LittlerootTown_MaysHouse_2F_MapBGEvents: @ 852D608
bg_event 5, 1, 0, BG_EVENT_PLAYER_FACING_ANY, LittlerootTown_MaysHouse_2F_EventScript_1F865F
bg_event 7, 1, 0, BG_EVENT_PLAYER_FACING_ANY, LittlerootTown_MaysHouse_2F_EventScript_1F8656
bg_event 3, 1, 0, BG_EVENT_PLAYER_FACING_ANY, LittlerootTown_MaysHouse_2F_EventScript_29278D
- bg_event 8, 1, 0, BG_EVENT_PLAYER_FACING_ANY, gUnknown_081F9553
+ bg_event 8, 1, 0, BG_EVENT_PLAYER_FACING_ANY, EventScript_PlayerPCFemale
LittlerootTown_MaysHouse_2F_MapEvents:: @ 852D638
map_events LittlerootTown_MaysHouse_2F_EventObjects, LittlerootTown_MaysHouse_2F_MapWarps, 0x0, LittlerootTown_MaysHouse_2F_MapBGEvents
diff --git a/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc b/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc
index 5501f5ad5..14e269445 100644
--- a/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc
+++ b/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc
@@ -301,7 +301,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_1F954A:: @ 81F954A
msgbox LittlerootTown_BrendansHouse_2F_Text_1F9BE7, 4
return
-gUnknown_081F9553:: @ 81F9553
+EventScript_PlayerPCFemale:: @ 81F9553
lockall
checkplayergender
compare VAR_RESULT, 0
diff --git a/data/maps/MauvilleCity/events.inc b/data/maps/MauvilleCity/events.inc
index 5b2d9927c..17ae4a327 100644
--- a/data/maps/MauvilleCity/events.inc
+++ b/data/maps/MauvilleCity/events.inc
@@ -1,11 +1,11 @@
MauvilleCity_EventObjects: @ 852662C
object_event 1, EVENT_OBJ_GFX_BOY_3, 0, 29, 16, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 1, 0, 0, MauvilleCity_EventScript_1DF3B3, 0
- object_event 2, EVENT_OBJ_GFX_BOY_4, 0, 24, 10, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, MauvilleCity_EventScript_1DF3CE, 0
+ object_event 2, EVENT_OBJ_GFX_RICH_BOY, 0, 24, 10, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, MauvilleCity_EventScript_1DF3CE, 0
object_event 3, EVENT_OBJ_GFX_MANIAC, 0, 14, 11, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, MauvilleCity_EventScript_1DF3BC, 0
- object_event 4, EVENT_OBJ_GFX_WOMAN_5, 0, 18, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, MauvilleCity_EventScript_1DF3C5, 0
+ object_event 4, EVENT_OBJ_GFX_WOMAN_4, 0, 18, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, MauvilleCity_EventScript_1DF3C5, 0
object_event 5, EVENT_OBJ_GFX_SCHOOL_KID_M, 0, 17, 14, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MauvilleCity_EventScript_1DF3FB, 0
object_event 6, EVENT_OBJ_GFX_WALLY, 0, 8, 6, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, MauvilleCity_EventScript_1DF452, 804
- object_event 7, EVENT_OBJ_GFX_MAN_3, 0, 9, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MauvilleCity_EventScript_1DF41D, 805
+ object_event 7, EVENT_OBJ_GFX_POKEFAN_M, 0, 9, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MauvilleCity_EventScript_1DF41D, 805
object_event 8, EVENT_OBJ_GFX_WATTSON, 0, 29, 9, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, MauvilleCity_EventScript_1DF73A, 912
object_event 9, EVENT_OBJ_GFX_ITEM_BALL, 0, 28, 19, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, MauvilleCity_EventScript_2910CE, 1116
object_event 10, EVENT_OBJ_GFX_FAT_MAN, 0, 13, 7, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MauvilleCity_EventScript_2C7F7E, 0
diff --git a/data/maps/MauvilleCity_BikeShop/events.inc b/data/maps/MauvilleCity_BikeShop/events.inc
index 7befd0f73..bae187003 100644
--- a/data/maps/MauvilleCity_BikeShop/events.inc
+++ b/data/maps/MauvilleCity_BikeShop/events.inc
@@ -1,6 +1,6 @@
MauvilleCity_BikeShop_EventObjects: @ 852FE80
object_event 1, EVENT_OBJ_GFX_MAN_2, 0, 2, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MauvilleCity_BikeShop_EventScript_20EBBC, 0
- object_event 2, EVENT_OBJ_GFX_MAN_6, 0, 7, 6, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, MauvilleCity_BikeShop_EventScript_20ED31, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_5, 0, 7, 6, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, MauvilleCity_BikeShop_EventScript_20ED31, 0
MauvilleCity_BikeShop_MapWarps: @ 852FEB0
warp_def 3, 8, 0, 2, MAP_MAUVILLE_CITY
diff --git a/data/maps/MauvilleCity_GameCorner/events.inc b/data/maps/MauvilleCity_GameCorner/events.inc
index 79b436489..0fac26b5d 100644
--- a/data/maps/MauvilleCity_GameCorner/events.inc
+++ b/data/maps/MauvilleCity_GameCorner/events.inc
@@ -1,16 +1,16 @@
MauvilleCity_GameCorner_EventObjects: @ 852FF28
- object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 12, 7, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MauvilleCity_GameCorner_EventScript_210125, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 12, 7, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MauvilleCity_GameCorner_EventScript_210125, 0
object_event 2, EVENT_OBJ_GFX_GENTLEMAN, 0, 16, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MauvilleCity_GameCorner_EventScript_21012E, 0
object_event 3, EVENT_OBJ_GFX_BEAUTY, 0, 11, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MauvilleCity_GameCorner_EventScript_20FBB9, 0
object_event 4, EVENT_OBJ_GFX_BEAUTY, 0, 14, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MauvilleCity_GameCorner_EventScript_20FCF1, 0
object_event 5, EVENT_OBJ_GFX_GIRL_2, 0, 7, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MauvilleCity_GameCorner_EventScript_210137, 0
- object_event 6, EVENT_OBJ_GFX_MAN_3, 0, 19, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MauvilleCity_GameCorner_EventScript_21021D, 0
- object_event 7, EVENT_OBJ_GFX_OLD_MAN_2, 0, 20, 8, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MauvilleCity_GameCorner_EventScript_210279, 0
+ object_event 6, EVENT_OBJ_GFX_POKEFAN_M, 0, 19, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MauvilleCity_GameCorner_EventScript_21021D, 0
+ object_event 7, EVENT_OBJ_GFX_OLD_MAN, 0, 20, 8, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MauvilleCity_GameCorner_EventScript_210279, 0
object_event 8, EVENT_OBJ_GFX_COOK, 0, 6, 8, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, MauvilleCity_GameCorner_EventScript_210289, 0
object_event 9, EVENT_OBJ_GFX_BEAUTY, 0, 13, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, MauvilleCity_GameCorner_EventScript_20FE9F, 0
- object_event 10, EVENT_OBJ_GFX_MAN_4, 0, 1, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, MauvilleCity_GameCorner_EventScript_210299, 0
+ object_event 10, EVENT_OBJ_GFX_MAN_3, 0, 1, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, MauvilleCity_GameCorner_EventScript_210299, 0
object_event 11, EVENT_OBJ_GFX_MANIAC, 0, 9, 8, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, MauvilleCity_GameCorner_EventScript_2102B6, 0
- object_event 12, EVENT_OBJ_GFX_WOMAN_7, 0, 4, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, MauvilleCity_GameCorner_EventScript_2102C6, 0
+ object_event 12, EVENT_OBJ_GFX_WOMAN_5, 0, 4, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, MauvilleCity_GameCorner_EventScript_2102C6, 0
MauvilleCity_GameCorner_MapWarps: @ 8530048
warp_def 11, 10, 3, 5, MAP_MAUVILLE_CITY
diff --git a/data/maps/MauvilleCity_Gym/events.inc b/data/maps/MauvilleCity_Gym/events.inc
index cb126faef..84e6f7eff 100644
--- a/data/maps/MauvilleCity_Gym/events.inc
+++ b/data/maps/MauvilleCity_Gym/events.inc
@@ -1,9 +1,9 @@
MauvilleCity_Gym_EventObjects: @ 852FD5C
object_event 1, EVENT_OBJ_GFX_WATTSON, 0, 5, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MauvilleCity_Gym_EventScript_20DEEB, 913
- object_event 2, EVENT_OBJ_GFX_MAN_6, 0, 7, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, MauvilleCity_Gym_EventScript_20E0D0, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_5, 0, 7, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, MauvilleCity_Gym_EventScript_20E0D0, 0
object_event 3, EVENT_OBJ_GFX_GIRL_3, 0, 1, 16, 0, MOVEMENT_TYPE_FACE_UP, 0, 0, 1, 2, MauvilleCity_Gym_EventScript_20E0FE, 0
object_event 4, EVENT_OBJ_GFX_YOUNGSTER, 0, 5, 10, 0, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 2, MauvilleCity_Gym_EventScript_20E0E7, 0
- object_event 5, EVENT_OBJ_GFX_MAN_6, 0, 1, 13, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 2, MauvilleCity_Gym_EventScript_20E0B9, 0
+ object_event 5, EVENT_OBJ_GFX_MAN_5, 0, 1, 13, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 2, MauvilleCity_Gym_EventScript_20E0B9, 0
object_event 6, EVENT_OBJ_GFX_MAN_2, 0, 7, 20, 0, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MauvilleCity_Gym_EventScript_20E12C, 0
object_event 7, EVENT_OBJ_GFX_MANIAC, 0, 7, 10, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 1, MauvilleCity_Gym_EventScript_20E115, 0
diff --git a/data/maps/MauvilleCity_House2/events.inc b/data/maps/MauvilleCity_House2/events.inc
index 3ac497bbc..fae511bb3 100644
--- a/data/maps/MauvilleCity_House2/events.inc
+++ b/data/maps/MauvilleCity_House2/events.inc
@@ -1,5 +1,5 @@
MauvilleCity_House2_EventObjects: @ 853018C
- object_event 1, EVENT_OBJ_GFX_WOMAN_4, 0, 4, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MauvilleCity_House2_EventScript_210C5D, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 4, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MauvilleCity_House2_EventScript_210C5D, 0
MauvilleCity_House2_MapWarps: @ 85301A4
warp_def 3, 8, 0, 6, MAP_MAUVILLE_CITY
diff --git a/data/maps/MauvilleCity_Mart/events.inc b/data/maps/MauvilleCity_Mart/events.inc
index 5e96dcfd3..0d32a0e2c 100644
--- a/data/maps/MauvilleCity_Mart/events.inc
+++ b/data/maps/MauvilleCity_Mart/events.inc
@@ -1,7 +1,7 @@
MauvilleCity_Mart_EventObjects: @ 8530310
object_event 1, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, MauvilleCity_Mart_EventScript_2110E6, 0
- object_event 2, EVENT_OBJ_GFX_OLD_MAN_1, 0, 5, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, MauvilleCity_Mart_EventScript_21111C, 0
- object_event 3, EVENT_OBJ_GFX_MAN_4, 0, 5, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, MauvilleCity_Mart_EventScript_211125, 0
+ object_event 2, EVENT_OBJ_GFX_EXPERT_M, 0, 5, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, MauvilleCity_Mart_EventScript_21111C, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_3, 0, 5, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, MauvilleCity_Mart_EventScript_211125, 0
MauvilleCity_Mart_MapWarps: @ 8530358
warp_def 3, 7, 0, 3, MAP_MAUVILLE_CITY
diff --git a/data/maps/MauvilleCity_PokemonCenter_1F/events.inc b/data/maps/MauvilleCity_PokemonCenter_1F/events.inc
index 4000ead3e..f83ab5e45 100644
--- a/data/maps/MauvilleCity_PokemonCenter_1F/events.inc
+++ b/data/maps/MauvilleCity_PokemonCenter_1F/events.inc
@@ -2,7 +2,7 @@ MauvilleCity_PokemonCenter_1F_EventObjects: @ 85301C8
object_event 1, EVENT_OBJ_GFX_NURSE, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MauvilleCity_PokemonCenter_1F_EventScript_210E78, 0
object_event 2, EVENT_OBJ_GFX_HIPSTER, 0, 2, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 0, 0, 0, MauvilleCity_PokemonCenter_1F_EventScript_28E066, 0
object_event 3, EVENT_OBJ_GFX_WOMAN_1, 0, 8, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, MauvilleCity_PokemonCenter_1F_EventScript_210E86, 0
- object_event 4, EVENT_OBJ_GFX_WOMAN_7, 0, 11, 4, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, MauvilleCity_PokemonCenter_1F_EventScript_210E8F, 0
+ object_event 4, EVENT_OBJ_GFX_WOMAN_5, 0, 11, 4, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, MauvilleCity_PokemonCenter_1F_EventScript_210E8F, 0
object_event 5, EVENT_OBJ_GFX_YOUNGSTER, 0, 2, 8, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, MauvilleCity_PokemonCenter_1F_EventScript_210E98, 0
MauvilleCity_PokemonCenter_1F_MapWarps: @ 8530240
diff --git a/data/maps/MeteorFalls_1F_2R/events.inc b/data/maps/MeteorFalls_1F_2R/events.inc
index 1e8e1f093..d9a15cbcb 100644
--- a/data/maps/MeteorFalls_1F_2R/events.inc
+++ b/data/maps/MeteorFalls_1F_2R/events.inc
@@ -1,7 +1,7 @@
MeteorFalls_1F_2R_EventObjects: @ 85340C4
- object_event 1, EVENT_OBJ_GFX_MAN_4, 0, 13, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, MeteorFalls_1F_2R_EventScript_22C4DE, 0
- object_event 2, EVENT_OBJ_GFX_OLD_MAN_1, 0, 6, 12, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, MeteorFalls_1F_2R_EventScript_22C540, 0
- object_event 3, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 7, 12, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, MeteorFalls_1F_2R_EventScript_22C5A4, 0
+ object_event 1, EVENT_OBJ_GFX_MAN_3, 0, 13, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, MeteorFalls_1F_2R_EventScript_22C4DE, 0
+ object_event 2, EVENT_OBJ_GFX_EXPERT_M, 0, 6, 12, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, MeteorFalls_1F_2R_EventScript_22C540, 0
+ object_event 3, EVENT_OBJ_GFX_EXPERT_F, 0, 7, 12, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, MeteorFalls_1F_2R_EventScript_22C5A4, 0
MeteorFalls_1F_2R_MapWarps: @ 853410C
warp_def 10, 29, 3, 2, MAP_METEOR_FALLS_1F_1R
diff --git a/data/maps/MossdeepCity/events.inc b/data/maps/MossdeepCity/events.inc
index 0413b1be4..fead88f9b 100644
--- a/data/maps/MossdeepCity/events.inc
+++ b/data/maps/MossdeepCity/events.inc
@@ -1,8 +1,8 @@
MossdeepCity_EventObjects: @ 8527018
object_event 1, EVENT_OBJ_GFX_SAILOR, 0, 38, 12, 5, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, MossdeepCity_EventScript_1E4AD1, 0
- object_event 2, EVENT_OBJ_GFX_OLD_MAN_1, 0, 50, 34, 5, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, MossdeepCity_EventScript_1E4AF9, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_2, 0, 32, 12, 5, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, MossdeepCity_EventScript_1E4AB2, 0
- object_event 4, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 26, 21, 5, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, MossdeepCity_EventScript_1E4AF0, 0
+ object_event 2, EVENT_OBJ_GFX_EXPERT_M, 0, 50, 34, 5, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, MossdeepCity_EventScript_1E4AF9, 0
+ object_event 3, EVENT_OBJ_GFX_POKEFAN_F, 0, 32, 12, 5, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, MossdeepCity_EventScript_1E4AB2, 0
+ object_event 4, EVENT_OBJ_GFX_NINJA_BOY, 0, 26, 21, 5, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, MossdeepCity_EventScript_1E4AF0, 0
object_event 5, EVENT_OBJ_GFX_GIRL_1, 0, 45, 18, 7, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MossdeepCity_EventScript_1E4B02, 0
object_event 6, EVENT_OBJ_GFX_ITEM_BALL, 0, 62, 35, 5, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, MossdeepCity_EventScript_2910F5, 1043
object_event 7, EVENT_OBJ_GFX_MAN_1, 0, 55, 5, 7, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, MossdeepCity_EventScript_1E4C10, 0
diff --git a/data/maps/MossdeepCity_GameCorner_1F/events.inc b/data/maps/MossdeepCity_GameCorner_1F/events.inc
index 4186ec9ca..2f96c458f 100644
--- a/data/maps/MossdeepCity_GameCorner_1F/events.inc
+++ b/data/maps/MossdeepCity_GameCorner_1F/events.inc
@@ -1,6 +1,6 @@
MossdeepCity_GameCorner_1F_EventObjects: @ 8532F40
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_1, 0, 6, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MossdeepCity_GameCorner_1F_EventScript_224B54, 0
- object_event 2, EVENT_OBJ_GFX_MAN_5, 0, 4, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MossdeepCity_GameCorner_1F_EventScript_224B4B, 0
+ object_event 1, EVENT_OBJ_GFX_EXPERT_M, 0, 6, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MossdeepCity_GameCorner_1F_EventScript_224B54, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_4, 0, 4, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MossdeepCity_GameCorner_1F_EventScript_224B4B, 0
MossdeepCity_GameCorner_1F_MapWarps: @ 8532F70
warp_def 5, 9, 0, 9, MAP_MOSSDEEP_CITY
diff --git a/data/maps/MossdeepCity_House1/events.inc b/data/maps/MossdeepCity_House1/events.inc
index 00e7a12fc..4ccf90558 100644
--- a/data/maps/MossdeepCity_House1/events.inc
+++ b/data/maps/MossdeepCity_House1/events.inc
@@ -1,6 +1,6 @@
MossdeepCity_House1_EventObjects: @ 8532978
object_event 1, EVENT_OBJ_GFX_BLACK_BELT, 0, 3, 3, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 1, 1, 0, 0, MossdeepCity_House1_EventScript_221FD6, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_3, 0, 7, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MossdeepCity_House1_EventScript_222006, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 7, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MossdeepCity_House1_EventScript_222006, 0
MossdeepCity_House1_MapWarps: @ 85329A8
warp_def 3, 7, 0, 0, MAP_MOSSDEEP_CITY
diff --git a/data/maps/MossdeepCity_House2/events.inc b/data/maps/MossdeepCity_House2/events.inc
index b38d1bf8d..001039dfc 100644
--- a/data/maps/MossdeepCity_House2/events.inc
+++ b/data/maps/MossdeepCity_House2/events.inc
@@ -1,6 +1,6 @@
MossdeepCity_House2_EventObjects: @ 85329CC
- object_event 1, EVENT_OBJ_GFX_MAN_5, 0, 6, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MossdeepCity_House2_EventScript_2220DF, 0
- object_event 2, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MossdeepCity_House2_EventScript_2220E8, 0
+ object_event 1, EVENT_OBJ_GFX_MAN_4, 0, 6, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MossdeepCity_House2_EventScript_2220DF, 0
+ object_event 2, EVENT_OBJ_GFX_TWIN, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MossdeepCity_House2_EventScript_2220E8, 0
object_event 3, EVENT_OBJ_GFX_WINGULL, 0, 4, 5, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, MossdeepCity_House2_EventScript_2220F1, 934
MossdeepCity_House2_MapWarps: @ 8532A14
diff --git a/data/maps/MossdeepCity_House4/events.inc b/data/maps/MossdeepCity_House4/events.inc
index 048bd5ffd..5e33f871f 100644
--- a/data/maps/MossdeepCity_House4/events.inc
+++ b/data/maps/MossdeepCity_House4/events.inc
@@ -1,6 +1,6 @@
MossdeepCity_House4_EventObjects: @ 8532CAC
- object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 3, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MossdeepCity_House4_EventScript_222DD8, 0
- object_event 2, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 6, 6, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, MossdeepCity_House4_EventScript_222DF7, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 3, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MossdeepCity_House4_EventScript_222DD8, 0
+ object_event 2, EVENT_OBJ_GFX_NINJA_BOY, 0, 6, 6, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, MossdeepCity_House4_EventScript_222DF7, 0
object_event 3, EVENT_OBJ_GFX_SKITTY, 0, 2, 4, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, MossdeepCity_House4_EventScript_222E1E, 0
MossdeepCity_House4_MapWarps: @ 8532CF4
diff --git a/data/maps/MossdeepCity_Mart/events.inc b/data/maps/MossdeepCity_Mart/events.inc
index 9fb1f674a..d452187d1 100644
--- a/data/maps/MossdeepCity_Mart/events.inc
+++ b/data/maps/MossdeepCity_Mart/events.inc
@@ -1,6 +1,6 @@
MossdeepCity_Mart_EventObjects: @ 8532B50
object_event 1, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, MossdeepCity_Mart_EventScript_2223C8, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_7, 0, 1, 5, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, MossdeepCity_Mart_EventScript_2223F6, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_5, 0, 1, 5, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, MossdeepCity_Mart_EventScript_2223F6, 0
object_event 3, EVENT_OBJ_GFX_BOY_2, 0, 8, 3, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, MossdeepCity_Mart_EventScript_2223FF, 0
object_event 4, EVENT_OBJ_GFX_SAILOR, 0, 5, 3, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, MossdeepCity_Mart_EventScript_222408, 0
diff --git a/data/maps/MossdeepCity_PokemonCenter_1F/events.inc b/data/maps/MossdeepCity_PokemonCenter_1F/events.inc
index ed26d83cb..5e48096c9 100644
--- a/data/maps/MossdeepCity_PokemonCenter_1F/events.inc
+++ b/data/maps/MossdeepCity_PokemonCenter_1F/events.inc
@@ -1,6 +1,6 @@
MossdeepCity_PokemonCenter_1F_EventObjects: @ 8532A38
object_event 1, EVENT_OBJ_GFX_NURSE, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MossdeepCity_PokemonCenter_1F_EventScript_22224E, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_3, 0, 8, 4, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, MossdeepCity_PokemonCenter_1F_EventScript_22225C, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 8, 4, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, MossdeepCity_PokemonCenter_1F_EventScript_22225C, 0
object_event 3, EVENT_OBJ_GFX_GIRL_1, 0, 3, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, MossdeepCity_PokemonCenter_1F_EventScript_222265, 0
MossdeepCity_PokemonCenter_1F_MapWarps: @ 8532A80
diff --git a/data/maps/MossdeepCity_PokemonCenter_2F/events.inc b/data/maps/MossdeepCity_PokemonCenter_2F/events.inc
index e13367153..1641be959 100644
--- a/data/maps/MossdeepCity_PokemonCenter_2F/events.inc
+++ b/data/maps/MossdeepCity_PokemonCenter_2F/events.inc
@@ -3,7 +3,7 @@ MossdeepCity_PokemonCenter_2F_EventObjects: @ 8532AAC
object_event 2, EVENT_OBJ_GFX_TEALA, 0, 2, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, MossdeepCity_PokemonCenter_2F_EventScript_273761, 0
object_event 3, EVENT_OBJ_GFX_TEALA, 0, 10, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, MossdeepCity_PokemonCenter_2F_EventScript_273767, 0
object_event 4, EVENT_OBJ_GFX_MYSTERY_GIFT_MAN, 0, 1, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, MossdeepCity_PokemonCenter_2F_EventScript_276B03, 702
- object_event 5, EVENT_OBJ_GFX_WOMAN_7, 0, 11, 7, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 1, 0, 0, MossdeepCity_PokemonCenter_2F_EventScript_22235B, 0
+ object_event 5, EVENT_OBJ_GFX_WOMAN_5, 0, 11, 7, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 1, 0, 0, MossdeepCity_PokemonCenter_2F_EventScript_22235B, 0
MossdeepCity_PokemonCenter_2F_MapWarps: @ 8532B24
warp_def 1, 6, 4, 2, MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F
diff --git a/data/maps/MossdeepCity_SpaceCenter_1F/events.inc b/data/maps/MossdeepCity_SpaceCenter_1F/events.inc
index fe1d4fcf8..c45f433f2 100644
--- a/data/maps/MossdeepCity_SpaceCenter_1F/events.inc
+++ b/data/maps/MossdeepCity_SpaceCenter_1F/events.inc
@@ -2,13 +2,13 @@ MossdeepCity_SpaceCenter_1F_EventObjects: @ 8532D18
object_event 1, EVENT_OBJ_GFX_SCIENTIST_1, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, MossdeepCity_SpaceCenter_1F_EventScript_222FD8, 0
object_event 2, EVENT_OBJ_GFX_SCIENTIST_1, 0, 2, 2, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, MossdeepCity_SpaceCenter_1F_EventScript_223063, 0
object_event 3, EVENT_OBJ_GFX_SAILOR, 0, 6, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MossdeepCity_SpaceCenter_1F_EventScript_22308E, 0
- object_event 4, EVENT_OBJ_GFX_OLD_MAN_2, 0, 10, 2, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, MossdeepCity_SpaceCenter_1F_EventScript_223168, 0
- object_event 5, EVENT_OBJ_GFX_WOMAN_5, 0, 14, 7, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 1, 1, 0, 0, MossdeepCity_SpaceCenter_1F_EventScript_22312D, 0
+ object_event 4, EVENT_OBJ_GFX_OLD_MAN, 0, 10, 2, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, MossdeepCity_SpaceCenter_1F_EventScript_223168, 0
+ object_event 5, EVENT_OBJ_GFX_WOMAN_4, 0, 14, 7, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 1, 1, 0, 0, MossdeepCity_SpaceCenter_1F_EventScript_22312D, 0
object_event 6, EVENT_OBJ_GFX_MAGMA_MEMBER_F, 0, 12, 9, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 2, MossdeepCity_SpaceCenter_1F_EventScript_2231DA, 756
object_event 7, EVENT_OBJ_GFX_MAGMA_MEMBER_M, 0, 11, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 2, MossdeepCity_SpaceCenter_1F_EventScript_2231F1, 756
object_event 8, EVENT_OBJ_GFX_MAGMA_MEMBER_M, 0, 10, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 2, MossdeepCity_SpaceCenter_1F_EventScript_223208, 756
object_event 9, EVENT_OBJ_GFX_MAGMA_MEMBER_M, 0, 13, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 0, MossdeepCity_SpaceCenter_1F_EventScript_22321F, 756
- object_event 10, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 2, 5, 0, MOVEMENT_TYPE_INVISIBLE, 1, 1, 0, 0, MossdeepCity_SpaceCenter_1F_EventScript_2231CF, 737
+ object_event 10, EVENT_OBJ_GFX_NINJA_BOY, 0, 2, 5, 0, MOVEMENT_TYPE_INVISIBLE, 1, 1, 0, 0, MossdeepCity_SpaceCenter_1F_EventScript_2231CF, 737
object_event 11, EVENT_OBJ_GFX_STEVEN, 0, 1, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, MossdeepCity_SpaceCenter_1F_EventScript_2231B9, 753
MossdeepCity_SpaceCenter_1F_MapWarps: @ 8532E20
diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/events.inc b/data/maps/MossdeepCity_SpaceCenter_2F/events.inc
index b1e7373da..02b771bf6 100644
--- a/data/maps/MossdeepCity_SpaceCenter_2F/events.inc
+++ b/data/maps/MossdeepCity_SpaceCenter_2F/events.inc
@@ -1,5 +1,5 @@
MossdeepCity_SpaceCenter_2F_EventObjects: @ 8532E4C
- object_event 1, EVENT_OBJ_GFX_BOY_4, 0, 6, 2, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, MossdeepCity_SpaceCenter_2F_EventScript_223F03, 0
+ object_event 1, EVENT_OBJ_GFX_RICH_BOY, 0, 6, 2, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, MossdeepCity_SpaceCenter_2F_EventScript_223F03, 0
object_event 2, EVENT_OBJ_GFX_GENTLEMAN, 0, 11, 8, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, MossdeepCity_SpaceCenter_2F_EventScript_223EC8, 0
object_event 3, EVENT_OBJ_GFX_SCIENTIST_1, 0, 5, 6, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, MossdeepCity_SpaceCenter_2F_EventScript_223E8D, 0
object_event 4, EVENT_OBJ_GFX_STEVEN, 0, 1, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, MossdeepCity_SpaceCenter_2F_EventScript_223F7A, 863
diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc
index 0052f09aa..36bfc422a 100644
--- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc
+++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc
@@ -260,7 +260,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_22400C:: @ 822400C
goto MossdeepCity_SpaceCenter_2F_EventScript_223FDA
MossdeepCity_SpaceCenter_2F_EventScript_224032:: @ 8224032
- special sub_80F94E8
+ special ReducePlayerPartyToThree
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
special sub_81A1780
diff --git a/data/maps/MossdeepCity_StevensHouse/events.inc b/data/maps/MossdeepCity_StevensHouse/events.inc
index 66e00b1f4..208ec7db0 100644
--- a/data/maps/MossdeepCity_StevensHouse/events.inc
+++ b/data/maps/MossdeepCity_StevensHouse/events.inc
@@ -1,7 +1,7 @@
MossdeepCity_StevensHouse_EventObjects: @ 8532C10
object_event 1, EVENT_OBJ_GFX_STEVEN, 0, 9, 6, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, MossdeepCity_StevensHouse_EventScript_222912, 967
object_event 2, EVENT_OBJ_GFX_ITEM_BALL, 0, 4, 3, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, MossdeepCity_StevensHouse_EventScript_222841, 968
- object_event 3, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 6, 4, 3, MOVEMENT_TYPE_INVISIBLE, 1, 1, 0, 0, MossdeepCity_StevensHouse_EventScript_22291B, 727
+ object_event 3, EVENT_OBJ_GFX_NINJA_BOY, 0, 6, 4, 3, MOVEMENT_TYPE_INVISIBLE, 1, 1, 0, 0, MossdeepCity_StevensHouse_EventScript_22291B, 727
MossdeepCity_StevensHouse_MapWarps: @ 8532C58
warp_def 3, 7, 0, 6, MAP_MOSSDEEP_CITY
diff --git a/data/maps/MtChimney/events.inc b/data/maps/MtChimney/events.inc
index 03806a854..343f6a203 100644
--- a/data/maps/MtChimney/events.inc
+++ b/data/maps/MtChimney/events.inc
@@ -7,7 +7,7 @@ MtChimney_EventObjects: @ 85347C8
object_event 6, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 19, 39, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, MtChimney_EventScript_22F05C, 926
object_event 7, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 29, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, MtChimney_EventScript_22F053, 926
object_event 8, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 31, 12, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MtChimney_EventScript_22F065, 926
- object_event 9, EVENT_OBJ_GFX_OLD_WOMAN_2, 0, 19, 39, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, MtChimney_EventScript_22EEF3, 994
+ object_event 9, EVENT_OBJ_GFX_OLD_WOMAN, 0, 19, 39, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, MtChimney_EventScript_22EEF3, 994
object_event 10, EVENT_OBJ_GFX_MAGMA_MEMBER_M, 0, 22, 39, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, MtChimney_EventScript_22F0C9, 927
object_event 11, EVENT_OBJ_GFX_POOCHYENA, 0, 23, 19, 3, MOVEMENT_TYPE_RUN_IN_PLACE_LEFT, 0, 0, 0, 0, MtChimney_EventScript_22F0DB, 926
object_event 12, EVENT_OBJ_GFX_POOCHYENA, 0, 23, 18, 3, MOVEMENT_TYPE_WALK_IN_PLACE_DOWN, 0, 0, 0, 0, MtChimney_EventScript_22F0D2, 927
@@ -23,7 +23,7 @@ MtChimney_EventObjects: @ 85347C8
object_event 22, EVENT_OBJ_GFX_MAGMA_MEMBER_M, 0, 9, 16, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 3, MtChimney_EventScript_22F085, 927
object_event 23, EVENT_OBJ_GFX_POOCHYENA, 0, 20, 39, 3, MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT, 0, 0, 0, 0, MtChimney_EventScript_22F0DB, 926
object_event 24, EVENT_OBJ_GFX_POOCHYENA, 0, 21, 39, 3, MOVEMENT_TYPE_WALK_IN_PLACE_LEFT, 0, 0, 0, 0, MtChimney_EventScript_22F0D2, 927
- object_event 25, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 16, 18, 3, MOVEMENT_TYPE_FACE_DOWN_AND_UP, 0, 0, 1, 3, MtChimney_EventScript_22F14A, 877
+ object_event 25, EVENT_OBJ_GFX_EXPERT_F, 0, 16, 18, 3, MOVEMENT_TYPE_FACE_DOWN_AND_UP, 0, 0, 1, 3, MtChimney_EventScript_22F14A, 877
object_event 26, EVENT_OBJ_GFX_BEAUTY, 0, 14, 7, 3, MOVEMENT_TYPE_JOG_IN_PLACE_LEFT, 0, 0, 1, 6, MtChimney_EventScript_22F1AC, 877
object_event 27, EVENT_OBJ_GFX_BEAUTY, 0, 29, 7, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 3, MtChimney_EventScript_22F1C3, 877
object_event 28, EVENT_OBJ_GFX_BEAUTY, 0, 27, 17, 3, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 1, 1, 1, 3, MtChimney_EventScript_22F1DA, 877
diff --git a/data/maps/MtPyre_1F/events.inc b/data/maps/MtPyre_1F/events.inc
index 179a6a538..5fd821541 100644
--- a/data/maps/MtPyre_1F/events.inc
+++ b/data/maps/MtPyre_1F/events.inc
@@ -1,7 +1,7 @@
MtPyre_1F_EventObjects: @ 8534D64
- object_event 1, EVENT_OBJ_GFX_OLD_WOMAN_2, 0, 21, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, MtPyre_1F_EventScript_230F3F, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 17, 8, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, MtPyre_1F_EventScript_230F78, 0
- object_event 3, EVENT_OBJ_GFX_MAN_5, 0, 13, 10, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, MtPyre_1F_EventScript_230F81, 0
+ object_event 1, EVENT_OBJ_GFX_OLD_WOMAN, 0, 21, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, MtPyre_1F_EventScript_230F3F, 0
+ object_event 2, EVENT_OBJ_GFX_POKEFAN_F, 0, 17, 8, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, MtPyre_1F_EventScript_230F78, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_4, 0, 13, 10, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, MtPyre_1F_EventScript_230F81, 0
MtPyre_1F_MapWarps: @ 8534DAC
warp_def 17, 18, 3, 0, MAP_ROUTE122
diff --git a/data/maps/MtPyre_2F/events.inc b/data/maps/MtPyre_2F/events.inc
index 6c334ac0c..c025089e3 100644
--- a/data/maps/MtPyre_2F/events.inc
+++ b/data/maps/MtPyre_2F/events.inc
@@ -2,9 +2,9 @@ MtPyre_2F_EventObjects: @ 8534DF0
object_event 1, EVENT_OBJ_GFX_MANIAC, 0, 3, 6, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 2, MtPyre_2F_EventScript_231128, 0
object_event 2, EVENT_OBJ_GFX_ITEM_BALL, 0, 0, 10, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, MtPyre_2F_EventScript_2912FD, 1129
object_event 3, EVENT_OBJ_GFX_WOMAN_1, 0, 9, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, MtPyre_2F_EventScript_231116, 0
- object_event 4, EVENT_OBJ_GFX_MAN_3, 0, 12, 10, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, MtPyre_2F_EventScript_23111F, 0
- object_event 5, EVENT_OBJ_GFX_WOMAN_5, 0, 2, 9, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, MtPyre_2F_EventScript_23115A, 0
- object_event 6, EVENT_OBJ_GFX_MAN_5, 0, 3, 9, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, MtPyre_2F_EventScript_23113F, 0
+ object_event 4, EVENT_OBJ_GFX_POKEFAN_M, 0, 12, 10, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, MtPyre_2F_EventScript_23111F, 0
+ object_event 5, EVENT_OBJ_GFX_WOMAN_4, 0, 2, 9, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, MtPyre_2F_EventScript_23115A, 0
+ object_event 6, EVENT_OBJ_GFX_MAN_4, 0, 3, 9, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, MtPyre_2F_EventScript_23113F, 0
object_event 7, EVENT_OBJ_GFX_BLACK_BELT, 0, 6, 9, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 2, MtPyre_2F_EventScript_23118C, 0
object_event 8, EVENT_OBJ_GFX_HEX_MANIAC, 0, 6, 6, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 2, MtPyre_2F_EventScript_231175, 0
diff --git a/data/maps/MtPyre_3F/events.inc b/data/maps/MtPyre_3F/events.inc
index ed9caf9f3..8d841d828 100644
--- a/data/maps/MtPyre_3F/events.inc
+++ b/data/maps/MtPyre_3F/events.inc
@@ -2,7 +2,7 @@ MtPyre_3F_EventObjects: @ 8534EEC
object_event 1, EVENT_OBJ_GFX_PSYCHIC_M, 0, 1, 4, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 4, MtPyre_3F_EventScript_231753, 0
object_event 2, EVENT_OBJ_GFX_LASS, 0, 11, 4, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 4, MtPyre_3F_EventScript_23176A, 0
object_event 3, EVENT_OBJ_GFX_ITEM_BALL, 0, 0, 7, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, MtPyre_3F_EventScript_29130A, 1120
- object_event 4, EVENT_OBJ_GFX_WOMAN_3, 0, 6, 4, 3, MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT, 1, 1, 1, 4, MtPyre_3F_EventScript_231781, 0
+ object_event 4, EVENT_OBJ_GFX_WOMAN_2, 0, 6, 4, 3, MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT, 1, 1, 1, 4, MtPyre_3F_EventScript_231781, 0
MtPyre_3F_MapWarps: @ 8534F4C
warp_def 10, 1, 3, 1, MAP_MT_PYRE_2F
diff --git a/data/maps/MtPyre_Summit/events.inc b/data/maps/MtPyre_Summit/events.inc
index 669625c41..554eaa75e 100644
--- a/data/maps/MtPyre_Summit/events.inc
+++ b/data/maps/MtPyre_Summit/events.inc
@@ -1,7 +1,7 @@
MtPyre_Summit_EventObjects: @ 85351A0
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_2, 0, 22, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MtPyre_Summit_EventScript_23213C, 0
+ object_event 1, EVENT_OBJ_GFX_OLD_MAN, 0, 22, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MtPyre_Summit_EventScript_23213C, 0
object_event 2, EVENT_OBJ_GFX_ARCHIE, 0, 23, 6, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, 0x0, 916
- object_event 3, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 23, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MtPyre_Summit_EventScript_2321A2, 0
+ object_event 3, EVENT_OBJ_GFX_EXPERT_F, 0, 23, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, MtPyre_Summit_EventScript_2321A2, 0
object_event 4, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 21, 15, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 3, MtPyre_Summit_EventScript_2323FD, 917
object_event 5, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 25, 18, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 3, MtPyre_Summit_EventScript_232414, 917
object_event 6, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 21, 11, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 3, MtPyre_Summit_EventScript_23242B, 917
diff --git a/data/maps/OldaleTown_House1/events.inc b/data/maps/OldaleTown_House1/events.inc
index 4933604d4..7183f9293 100644
--- a/data/maps/OldaleTown_House1/events.inc
+++ b/data/maps/OldaleTown_House1/events.inc
@@ -1,5 +1,5 @@
OldaleTown_House1_EventObjects: @ 852D7B4
- object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 6, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, OldaleTown_House1_EventScript_1FBE86, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 6, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, OldaleTown_House1_EventScript_1FBE86, 0
OldaleTown_House1_MapWarps: @ 852D7CC
warp_def 3, 8, 0, 0, MAP_OLDALE_TOWN
diff --git a/data/maps/OldaleTown_House2/events.inc b/data/maps/OldaleTown_House2/events.inc
index a57b07c26..7e94a2356 100644
--- a/data/maps/OldaleTown_House2/events.inc
+++ b/data/maps/OldaleTown_House2/events.inc
@@ -1,5 +1,5 @@
OldaleTown_House2_EventObjects: @ 852D7F0
- object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, OldaleTown_House2_EventScript_1FBF5B, 0
+ object_event 1, EVENT_OBJ_GFX_POKEFAN_F, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, OldaleTown_House2_EventScript_1FBF5B, 0
object_event 2, EVENT_OBJ_GFX_SCHOOL_KID_M, 0, 7, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, OldaleTown_House2_EventScript_1FBF64, 0
OldaleTown_House2_MapWarps: @ 852D820
diff --git a/data/maps/OldaleTown_Mart/events.inc b/data/maps/OldaleTown_Mart/events.inc
index 73adf3718..22b308364 100644
--- a/data/maps/OldaleTown_Mart/events.inc
+++ b/data/maps/OldaleTown_Mart/events.inc
@@ -1,6 +1,6 @@
OldaleTown_Mart_EventObjects: @ 852D95C
object_event 1, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, OldaleTown_Mart_EventScript_1FC240, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_7, 0, 5, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, OldaleTown_Mart_EventScript_1FC28A, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_5, 0, 5, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, OldaleTown_Mart_EventScript_1FC28A, 0
object_event 3, EVENT_OBJ_GFX_BOY_1, 0, 9, 4, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, OldaleTown_Mart_EventScript_1FC2A9, 0
OldaleTown_Mart_MapWarps: @ 852D9A4
diff --git a/data/maps/PacifidlogTown/events.inc b/data/maps/PacifidlogTown/events.inc
index a601c8381..f73c1d14a 100644
--- a/data/maps/PacifidlogTown/events.inc
+++ b/data/maps/PacifidlogTown/events.inc
@@ -1,7 +1,7 @@
PacifidlogTown_EventObjects: @ 8527DE8
object_event 1, EVENT_OBJ_GFX_GIRL_1, 0, 10, 23, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, PacifidlogTown_EventScript_1EBACC, 0
object_event 2, EVENT_OBJ_GFX_FISHERMAN, 0, 11, 14, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, PacifidlogTown_EventScript_1EBAD5, 0
- object_event 3, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 9, 16, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PacifidlogTown_EventScript_1EBAC3, 0
+ object_event 3, EVENT_OBJ_GFX_NINJA_BOY, 0, 9, 16, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PacifidlogTown_EventScript_1EBAC3, 0
PacifidlogTown_MapWarps: @ 8527E30
warp_def 8, 15, 0, 0, MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F
diff --git a/data/maps/PacifidlogTown_House1/events.inc b/data/maps/PacifidlogTown_House1/events.inc
index 4bc239ea6..ac082b74a 100644
--- a/data/maps/PacifidlogTown_House1/events.inc
+++ b/data/maps/PacifidlogTown_House1/events.inc
@@ -1,6 +1,6 @@
PacifidlogTown_House1_EventObjects: @ 852EBA0
- object_event 1, EVENT_OBJ_GFX_MAN_6, 0, 3, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PacifidlogTown_House1_EventScript_20365D, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_5, 0, 6, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, PacifidlogTown_House1_EventScript_203666, 0
+ object_event 1, EVENT_OBJ_GFX_MAN_5, 0, 3, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PacifidlogTown_House1_EventScript_20365D, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_4, 0, 6, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, PacifidlogTown_House1_EventScript_203666, 0
PacifidlogTown_House1_MapWarps: @ 852EBD0
warp_def 4, 8, 0, 1, MAP_PACIFIDLOG_TOWN
diff --git a/data/maps/PacifidlogTown_House3/events.inc b/data/maps/PacifidlogTown_House3/events.inc
index bdf1aae10..30460329a 100644
--- a/data/maps/PacifidlogTown_House3/events.inc
+++ b/data/maps/PacifidlogTown_House3/events.inc
@@ -1,6 +1,6 @@
PacifidlogTown_House3_EventObjects: @ 852EC60
object_event 1, EVENT_OBJ_GFX_GIRL_2, 0, 3, 5, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 0, 0, 0, 0, PacifidlogTown_House3_EventScript_203CB5, 0
- object_event 2, EVENT_OBJ_GFX_MAN_4, 0, 4, 2, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, PacifidlogTown_House3_EventScript_203C11, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_3, 0, 4, 2, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, PacifidlogTown_House3_EventScript_203C11, 0
PacifidlogTown_House3_MapWarps: @ 852EC90
warp_def 4, 8, 0, 3, MAP_PACIFIDLOG_TOWN
diff --git a/data/maps/PacifidlogTown_House4/events.inc b/data/maps/PacifidlogTown_House4/events.inc
index bcd3dc6e9..740cc4ba3 100644
--- a/data/maps/PacifidlogTown_House4/events.inc
+++ b/data/maps/PacifidlogTown_House4/events.inc
@@ -1,6 +1,6 @@
PacifidlogTown_House4_EventObjects: @ 852ECB4
- object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 3, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PacifidlogTown_House4_EventScript_203F55, 0
- object_event 2, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 7, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, PacifidlogTown_House4_EventScript_203F4C, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 3, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PacifidlogTown_House4_EventScript_203F55, 0
+ object_event 2, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 7, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, PacifidlogTown_House4_EventScript_203F4C, 0
object_event 3, EVENT_OBJ_GFX_BOY_1, 0, 7, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, PacifidlogTown_House4_EventScript_203F5E, 0
PacifidlogTown_House4_MapWarps: @ 852ECFC
diff --git a/data/maps/PacifidlogTown_House5/events.inc b/data/maps/PacifidlogTown_House5/events.inc
index f039b7694..8d7f0b0c0 100644
--- a/data/maps/PacifidlogTown_House5/events.inc
+++ b/data/maps/PacifidlogTown_House5/events.inc
@@ -1,5 +1,5 @@
PacifidlogTown_House5_EventObjects: @ 852ED20
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_1, 0, 9, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, PacifidlogTown_House5_EventScript_204111, 0
+ object_event 1, EVENT_OBJ_GFX_EXPERT_M, 0, 9, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, PacifidlogTown_House5_EventScript_204111, 0
object_event 2, EVENT_OBJ_GFX_GENTLEMAN, 0, 3, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, PacifidlogTown_House5_EventScript_204137, 0
PacifidlogTown_House5_MapWarps: @ 852ED50
diff --git a/data/maps/PacifidlogTown_PokemonCenter_1F/events.inc b/data/maps/PacifidlogTown_PokemonCenter_1F/events.inc
index 8040086f8..80c8a8c71 100644
--- a/data/maps/PacifidlogTown_PokemonCenter_1F/events.inc
+++ b/data/maps/PacifidlogTown_PokemonCenter_1F/events.inc
@@ -1,9 +1,9 @@
PacifidlogTown_PokemonCenter_1F_EventObjects: @ 852EA70
object_event 1, EVENT_OBJ_GFX_NURSE, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PacifidlogTown_PokemonCenter_1F_EventScript_2034B6, 0
- object_event 2, EVENT_OBJ_GFX_OLD_MAN_2, 0, 10, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, PacifidlogTown_PokemonCenter_1F_EventScript_2034D6, 0
+ object_event 2, EVENT_OBJ_GFX_OLD_MAN, 0, 10, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, PacifidlogTown_PokemonCenter_1F_EventScript_2034D6, 0
object_event 3, EVENT_OBJ_GFX_GIRL_2, 0, 2, 2, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, PacifidlogTown_PokemonCenter_1F_EventScript_2034C4, 0
object_event 4, EVENT_OBJ_GFX_WOMAN_1, 0, 4, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, PacifidlogTown_PokemonCenter_1F_EventScript_2034CD, 0
- object_event 5, EVENT_OBJ_GFX_MAN_6, 0, 12, 8, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, PacifidlogTown_PokemonCenter_1F_EventScript_2C82BE, 0
+ object_event 5, EVENT_OBJ_GFX_MAN_5, 0, 12, 8, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, PacifidlogTown_PokemonCenter_1F_EventScript_2C82BE, 0
PacifidlogTown_PokemonCenter_1F_MapWarps: @ 852EAE8
warp_def 7, 8, 3, 0, MAP_PACIFIDLOG_TOWN
diff --git a/data/maps/PetalburgCity/events.inc b/data/maps/PetalburgCity/events.inc
index b3fd71d2c..3e85ad434 100644
--- a/data/maps/PetalburgCity/events.inc
+++ b/data/maps/PetalburgCity/events.inc
@@ -1,9 +1,9 @@
PetalburgCity_EventObjects: @ 8525FD0
- object_event 1, EVENT_OBJ_GFX_WOMAN_5, 0, 16, 18, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, PetalburgCity_EventScript_1DC3FD, 728
+ object_event 1, EVENT_OBJ_GFX_WOMAN_4, 0, 16, 18, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, PetalburgCity_EventScript_1DC3FD, 728
object_event 2, EVENT_OBJ_GFX_WALLY, 0, 15, 10, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, 0x0, 726
object_event 3, EVENT_OBJ_GFX_BOY_1, 0, 8, 22, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PetalburgCity_EventScript_1DC3E6, 0
object_event 4, EVENT_OBJ_GFX_GENTLEMAN, 0, 20, 10, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, PetalburgCity_EventScript_1DC488, 0
- object_event 5, EVENT_OBJ_GFX_MAN_3, 0, 15, 10, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, 0x0, 830
+ object_event 5, EVENT_OBJ_GFX_POKEFAN_M, 0, 15, 10, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, 0x0, 830
object_event 6, EVENT_OBJ_GFX_ITEM_BALL, 0, 19, 2, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, PetalburgCity_EventScript_2910B4, 1039
object_event 7, EVENT_OBJ_GFX_ITEM_BALL, 0, 3, 28, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, PetalburgCity_EventScript_2910C1, 1040
object_event 8, EVENT_OBJ_GFX_BOY_2, 0, 12, 15, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, PetalburgCity_EventScript_1DC82E, 0
diff --git a/data/maps/PetalburgCity_Gym/events.inc b/data/maps/PetalburgCity_Gym/events.inc
index 209c789a0..42a0a8fc7 100644
--- a/data/maps/PetalburgCity_Gym/events.inc
+++ b/data/maps/PetalburgCity_Gym/events.inc
@@ -1,15 +1,15 @@
PetalburgCity_Gym_EventObjects: @ 852EDC8
object_event 1, EVENT_OBJ_GFX_NORMAN, 0, 4, 2, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PetalburgCity_Gym_EventScript_2049F1, 772
- object_event 2, EVENT_OBJ_GFX_WOMAN_7, 0, 4, 94, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, PetalburgCity_Gym_EventScript_2054AA, 0
- object_event 3, EVENT_OBJ_GFX_MAN_4, 0, 4, 81, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, PetalburgCity_Gym_EventScript_2053BA, 0
- object_event 4, EVENT_OBJ_GFX_MAN_4, 0, 4, 42, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, PetalburgCity_Gym_EventScript_2053F6, 0
- object_event 5, EVENT_OBJ_GFX_WOMAN_7, 0, 4, 55, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, PetalburgCity_Gym_EventScript_2054E6, 0
- object_event 6, EVENT_OBJ_GFX_MAN_4, 0, 4, 68, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, PetalburgCity_Gym_EventScript_205432, 0
- object_event 7, EVENT_OBJ_GFX_WOMAN_7, 0, 4, 16, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, PetalburgCity_Gym_EventScript_205522, 0
- object_event 8, EVENT_OBJ_GFX_MAN_4, 0, 4, 29, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, PetalburgCity_Gym_EventScript_20546E, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_5, 0, 4, 94, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, PetalburgCity_Gym_EventScript_2054AA, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_3, 0, 4, 81, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, PetalburgCity_Gym_EventScript_2053BA, 0
+ object_event 4, EVENT_OBJ_GFX_MAN_3, 0, 4, 42, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, PetalburgCity_Gym_EventScript_2053F6, 0
+ object_event 5, EVENT_OBJ_GFX_WOMAN_5, 0, 4, 55, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, PetalburgCity_Gym_EventScript_2054E6, 0
+ object_event 6, EVENT_OBJ_GFX_MAN_3, 0, 4, 68, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, PetalburgCity_Gym_EventScript_205432, 0
+ object_event 7, EVENT_OBJ_GFX_WOMAN_5, 0, 4, 16, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, PetalburgCity_Gym_EventScript_205522, 0
+ object_event 8, EVENT_OBJ_GFX_MAN_3, 0, 4, 29, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, PetalburgCity_Gym_EventScript_20546E, 0
object_event 9, EVENT_OBJ_GFX_MAN_2, 0, 3, 109, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PetalburgCity_Gym_EventScript_20574F, 781
object_event 10, EVENT_OBJ_GFX_WALLY, 0, 4, 111, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, 0x0, 866
- object_event 11, EVENT_OBJ_GFX_MAN_3, 0, 1, 7, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, 0x0, 824
+ object_event 11, EVENT_OBJ_GFX_POKEFAN_M, 0, 1, 7, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, 0x0, 824
PetalburgCity_Gym_MapWarps: @ 852EED0
warp_def 4, 111, 3, 2, MAP_PETALBURG_CITY
diff --git a/data/maps/PetalburgCity_House1/events.inc b/data/maps/PetalburgCity_House1/events.inc
index 4688eefe6..bcb91e637 100644
--- a/data/maps/PetalburgCity_House1/events.inc
+++ b/data/maps/PetalburgCity_House1/events.inc
@@ -1,6 +1,6 @@
PetalburgCity_House1_EventObjects: @ 852F0BC
object_event 1, EVENT_OBJ_GFX_GIRL_1, 0, 7, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 2, 2, 0, 0, PetalburgCity_House1_EventScript_2077A3, 0
- object_event 2, EVENT_OBJ_GFX_OLD_MAN_1, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PetalburgCity_House1_EventScript_20779A, 0
+ object_event 2, EVENT_OBJ_GFX_EXPERT_M, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PetalburgCity_House1_EventScript_20779A, 0
PetalburgCity_House1_MapWarps: @ 852F0EC
warp_def 3, 8, 0, 0, MAP_PETALBURG_CITY
diff --git a/data/maps/PetalburgCity_House2/events.inc b/data/maps/PetalburgCity_House2/events.inc
index 17f9001e2..660f1efe3 100644
--- a/data/maps/PetalburgCity_House2/events.inc
+++ b/data/maps/PetalburgCity_House2/events.inc
@@ -1,5 +1,5 @@
PetalburgCity_House2_EventObjects: @ 852F110
- object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 2, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, PetalburgCity_House2_EventScript_2078F3, 0
+ object_event 1, EVENT_OBJ_GFX_POKEFAN_F, 0, 2, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, PetalburgCity_House2_EventScript_2078F3, 0
object_event 2, EVENT_OBJ_GFX_SCHOOL_KID_M, 0, 7, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PetalburgCity_House2_EventScript_2078FC, 0
PetalburgCity_House2_MapWarps: @ 852F140
diff --git a/data/maps/PetalburgCity_Mart/events.inc b/data/maps/PetalburgCity_Mart/events.inc
index 88d99918d..b79aa5cb0 100644
--- a/data/maps/PetalburgCity_Mart/events.inc
+++ b/data/maps/PetalburgCity_Mart/events.inc
@@ -2,7 +2,7 @@ PetalburgCity_Mart_EventObjects: @ 852F294
object_event 1, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, PetalburgCity_Mart_EventScript_207D69, 0
object_event 2, EVENT_OBJ_GFX_MAN_1, 0, 9, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, PetalburgCity_Mart_EventScript_207DE8, 0
object_event 3, EVENT_OBJ_GFX_BOY_1, 0, 6, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PetalburgCity_Mart_EventScript_207DDF, 0
- object_event 4, EVENT_OBJ_GFX_WOMAN_3, 0, 5, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, PetalburgCity_Mart_EventScript_207DD6, 0
+ object_event 4, EVENT_OBJ_GFX_WOMAN_2, 0, 5, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, PetalburgCity_Mart_EventScript_207DD6, 0
PetalburgCity_Mart_MapWarps: @ 852F2F4
warp_def 3, 7, 0, 5, MAP_PETALBURG_CITY
diff --git a/data/maps/PetalburgCity_PokemonCenter_1F/events.inc b/data/maps/PetalburgCity_PokemonCenter_1F/events.inc
index 509ed0094..8a1de856d 100644
--- a/data/maps/PetalburgCity_PokemonCenter_1F/events.inc
+++ b/data/maps/PetalburgCity_PokemonCenter_1F/events.inc
@@ -1,9 +1,9 @@
PetalburgCity_PokemonCenter_1F_EventObjects: @ 852F164
object_event 1, EVENT_OBJ_GFX_NURSE, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PetalburgCity_PokemonCenter_1F_EventScript_2079FC, 0
- object_event 2, EVENT_OBJ_GFX_MAN_5, 0, 11, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PetalburgCity_PokemonCenter_1F_EventScript_291539, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_4, 0, 11, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PetalburgCity_PokemonCenter_1F_EventScript_291539, 0
object_event 3, EVENT_OBJ_GFX_FAT_MAN, 0, 2, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, PetalburgCity_PokemonCenter_1F_EventScript_207A0A, 0
object_event 4, EVENT_OBJ_GFX_YOUNGSTER, 0, 9, 6, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, PetalburgCity_PokemonCenter_1F_EventScript_207A13, 0
- object_event 5, EVENT_OBJ_GFX_WOMAN_7, 0, 5, 4, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, PetalburgCity_PokemonCenter_1F_EventScript_207A1C, 0
+ object_event 5, EVENT_OBJ_GFX_WOMAN_5, 0, 5, 4, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, PetalburgCity_PokemonCenter_1F_EventScript_207A1C, 0
PetalburgCity_PokemonCenter_1F_MapWarps: @ 852F1DC
warp_def 7, 8, 3, 3, MAP_PETALBURG_CITY
diff --git a/data/maps/PetalburgCity_WallysHouse/events.inc b/data/maps/PetalburgCity_WallysHouse/events.inc
index cc43ca814..e30f3a487 100644
--- a/data/maps/PetalburgCity_WallysHouse/events.inc
+++ b/data/maps/PetalburgCity_WallysHouse/events.inc
@@ -1,6 +1,6 @@
PetalburgCity_WallysHouse_EventObjects: @ 852ED74
- object_event 1, EVENT_OBJ_GFX_MAN_3, 0, 3, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, PetalburgCity_WallysHouse_EventScript_204278, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_5, 0, 7, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, PetalburgCity_WallysHouse_EventScript_2042C0, 0
+ object_event 1, EVENT_OBJ_GFX_POKEFAN_M, 0, 3, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, PetalburgCity_WallysHouse_EventScript_204278, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_4, 0, 7, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, PetalburgCity_WallysHouse_EventScript_2042C0, 0
PetalburgCity_WallysHouse_MapWarps: @ 852EDA4
warp_def 3, 7, 0, 1, MAP_PETALBURG_CITY
diff --git a/data/maps/RecordCorner/events.inc b/data/maps/RecordCorner/events.inc
index 8e1916a5a..06c6588a9 100644
--- a/data/maps/RecordCorner/events.inc
+++ b/data/maps/RecordCorner/events.inc
@@ -1,5 +1,5 @@
RecordCorner_EventObjects: @ 8539DFC
- object_event 1, EVENT_OBJ_GFX_WOMAN_6, 0, 10, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, RecordCorner_EventScript_2774C6, 0
+ object_event 1, EVENT_OBJ_GFX_LINK_RECEPTIONIST, 0, 10, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, RecordCorner_EventScript_2774C6, 0
RecordCorner_MapWarps: @ 8539E14
warp_def 8, 9, 3, 127, MAP_NONE
diff --git a/data/maps/Route102/events.inc b/data/maps/Route102/events.inc
index 58a0bf64b..1c660cda4 100644
--- a/data/maps/Route102/events.inc
+++ b/data/maps/Route102/events.inc
@@ -1,5 +1,5 @@
Route102_EventObjects: @ 8527FD8
- object_event 1, EVENT_OBJ_GFX_LITTLE_BOY_2, 0, 18, 11, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route102_EventScript_1EC0E1, 0
+ object_event 1, EVENT_OBJ_GFX_LITTLE_BOY, 0, 18, 11, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route102_EventScript_1EC0E1, 0
object_event 2, EVENT_OBJ_GFX_YOUNGSTER, 0, 33, 14, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 3, Route102_EventScript_1EC105, 0
object_event 3, EVENT_OBJ_GFX_BUG_CATCHER, 0, 25, 15, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 1, 2, Route102_EventScript_1EC1B3, 0
object_event 4, EVENT_OBJ_GFX_LASS, 0, 8, 7, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 0, 0, 1, 3, Route102_EventScript_1EC1CA, 0
diff --git a/data/maps/Route103/events.inc b/data/maps/Route103/events.inc
index 6581eb582..f11191970 100644
--- a/data/maps/Route103/events.inc
+++ b/data/maps/Route103/events.inc
@@ -1,21 +1,21 @@
Route103_EventObjects: @ 85280DC
- object_event 1, EVENT_OBJ_GFX_MAN_4, 0, 49, 12, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, Route103_EventScript_1EC5E2, 0
+ object_event 1, EVENT_OBJ_GFX_MAN_3, 0, 49, 12, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, Route103_EventScript_1EC5E2, 0
object_event 2, EVENT_OBJ_GFX_HIPSTER, 0, 10, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, Route103_EventScript_1EC3C1, 723
- object_event 3, EVENT_OBJ_GFX_WOMAN_3, 0, 71, 11, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 0, 0, 1, 3, Route103_EventScript_1EC5F4, 0
- object_event 4, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 65, 12, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, Route103_EventScript_1EC66E, 0
- object_event 5, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 64, 12, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, Route103_EventScript_1EC60B, 0
+ object_event 3, EVENT_OBJ_GFX_WOMAN_2, 0, 71, 11, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 0, 0, 1, 3, Route103_EventScript_1EC5F4, 0
+ object_event 4, EVENT_OBJ_GFX_TWIN, 0, 65, 12, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, Route103_EventScript_1EC66E, 0
+ object_event 5, EVENT_OBJ_GFX_TWIN, 0, 64, 12, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, Route103_EventScript_1EC60B, 0
object_event 6, EVENT_OBJ_GFX_FISHERMAN, 0, 50, 8, 3, MOVEMENT_TYPE_WALK_DOWN_AND_UP, 0, 1, 1, 3, Route103_EventScript_1EC6D1, 0
object_event 7, EVENT_OBJ_GFX_BERRY_TREE, 0, 58, 5, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 5, BerryTreeScript, 0
object_event 8, EVENT_OBJ_GFX_BERRY_TREE, 0, 59, 5, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 6, BerryTreeScript, 0
object_event 9, EVENT_OBJ_GFX_BERRY_TREE, 0, 60, 5, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 7, BerryTreeScript, 0
object_event 10, EVENT_OBJ_GFX_BOY_1, 0, 20, 10, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 2, 0, 0, Route103_EventScript_1EC5D9, 0
object_event 11, EVENT_OBJ_GFX_PROF_BIRCH, 0, 7, 3, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route103_EventScript_272141, 898
- object_event 12, EVENT_OBJ_GFX_MAN_3, 0, 56, 13, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 5, Route103_EventScript_1EC6E8, 0
+ object_event 12, EVENT_OBJ_GFX_POKEFAN_M, 0, 56, 13, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 5, Route103_EventScript_1EC6E8, 0
object_event 13, EVENT_OBJ_GFX_ITEM_BALL, 0, 50, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route103_EventScript_290CE5, 1114
object_event 14, EVENT_OBJ_GFX_CUTTABLE_TREE, 0, 67, 7, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route103_EventScript_2906BB, 18
object_event 15, EVENT_OBJ_GFX_CUTTABLE_TREE, 0, 72, 8, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route103_EventScript_2906BB, 19
object_event 16, EVENT_OBJ_GFX_BLACK_BELT, 0, 67, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 2, Route103_EventScript_1EC761, 0
- object_event 17, EVENT_OBJ_GFX_MAN_6, 0, 67, 9, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 2, Route103_EventScript_1EC74A, 0
+ object_event 17, EVENT_OBJ_GFX_MAN_5, 0, 67, 9, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 2, Route103_EventScript_1EC74A, 0
object_event 18, EVENT_OBJ_GFX_SWIMMER_F, 0, 36, 6, 1, MOVEMENT_TYPE_WALK_DOWN_AND_UP, 1, 3, 1, 5, Route103_EventScript_1EC78F, 0
object_event 19, EVENT_OBJ_GFX_SWIMMER_M, 0, 36, 13, 1, MOVEMENT_TYPE_WALK_UP_AND_DOWN, 1, 3, 1, 5, Route103_EventScript_1EC778, 0
object_event 20, EVENT_OBJ_GFX_ITEM_BALL, 0, 64, 7, 0, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route103_EventScript_290CF2, 1137
diff --git a/data/maps/Route104/events.inc b/data/maps/Route104/events.inc
index 497ec2dec..94642fbba 100644
--- a/data/maps/Route104/events.inc
+++ b/data/maps/Route104/events.inc
@@ -3,10 +3,10 @@ Route104_EventObjects: @ 85282E4
object_event 2, EVENT_OBJ_GFX_GIRL_2, 0, 25, 49, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route104_EventScript_1ED006, 0
object_event 3, EVENT_OBJ_GFX_LASS, 0, 31, 24, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 7, Route104_EventScript_1ED38D, 0
object_event 4, EVENT_OBJ_GFX_BOY_1, 0, 27, 63, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, Route104_EventScript_1ED045, 0
- object_event 5, EVENT_OBJ_GFX_WOMAN_3, 0, 30, 50, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route104_EventScript_1ED04E, 0
+ object_event 5, EVENT_OBJ_GFX_WOMAN_2, 0, 30, 50, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route104_EventScript_1ED04E, 0
object_event 6, EVENT_OBJ_GFX_GIRL_3, 0, 28, 74, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, Route104_EventScript_1ED090, 0
object_event 7, EVENT_OBJ_GFX_MR_BRINEYS_BOAT, 0, 12, 54, 1, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, 0x0, 742
- object_event 8, EVENT_OBJ_GFX_OLD_MAN_1, 0, 12, 51, 4, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, 0x0, 738
+ object_event 8, EVENT_OBJ_GFX_EXPERT_M, 0, 12, 51, 4, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, 0x0, 738
object_event 9, EVENT_OBJ_GFX_FISHERMAN, 0, 29, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, Route104_EventScript_1ED35F, 0
object_event 10, EVENT_OBJ_GFX_BERRY_TREE, 0, 34, 6, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 8, BerryTreeScript, 0
object_event 11, EVENT_OBJ_GFX_BERRY_TREE, 0, 35, 6, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 9, BerryTreeScript, 0
@@ -14,17 +14,17 @@ Route104_EventObjects: @ 85282E4
object_event 13, EVENT_OBJ_GFX_BERRY_TREE, 0, 22, 41, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 11, BerryTreeScript, 0
object_event 14, EVENT_OBJ_GFX_BERRY_TREE, 0, 23, 41, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 12, BerryTreeScript, 0
object_event 15, EVENT_OBJ_GFX_BERRY_TREE, 0, 24, 41, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 13, BerryTreeScript, 0
- object_event 16, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 37, 8, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, Route104_EventScript_1ECF8C, 0
+ object_event 16, EVENT_OBJ_GFX_EXPERT_F, 0, 37, 8, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, Route104_EventScript_1ECF8C, 0
object_event 17, EVENT_OBJ_GFX_BERRY_TREE, 0, 3, 22, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 3, BerryTreeScript, 0
object_event 18, EVENT_OBJ_GFX_BERRY_TREE, 0, 3, 23, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 4, BerryTreeScript, 0
object_event 19, EVENT_OBJ_GFX_BERRY_TREE, 0, 3, 24, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 75, BerryTreeScript, 0
object_event 20, EVENT_OBJ_GFX_BERRY_TREE, 0, 3, 25, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 76, BerryTreeScript, 0
object_event 21, EVENT_OBJ_GFX_ITEM_BALL, 0, 39, 15, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route104_EventScript_290CFF, 1002
- object_event 22, EVENT_OBJ_GFX_WOMAN_7, 0, 8, 19, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, Route104_EventScript_1ECFCD, 906
- object_event 23, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 27, 15, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, Route104_EventScript_1ED597, 0
- object_event 24, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 28, 15, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, Route104_EventScript_1ED5B6, 0
- object_event 25, EVENT_OBJ_GFX_BOY_4, 0, 21, 25, 3, MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE, 0, 0, 1, 3, Route104_EventScript_1ED43B, 0
- object_event 26, EVENT_OBJ_GFX_WOMAN_3, 0, 11, 44, 3, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 0, 0, 1, 3, Route104_EventScript_1ED4E9, 0
+ object_event 22, EVENT_OBJ_GFX_WOMAN_5, 0, 8, 19, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, Route104_EventScript_1ECFCD, 906
+ object_event 23, EVENT_OBJ_GFX_TWIN, 0, 27, 15, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, Route104_EventScript_1ED597, 0
+ object_event 24, EVENT_OBJ_GFX_TWIN, 0, 28, 15, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, Route104_EventScript_1ED5B6, 0
+ object_event 25, EVENT_OBJ_GFX_RICH_BOY, 0, 21, 25, 3, MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE, 0, 0, 1, 3, Route104_EventScript_1ED43B, 0
+ object_event 26, EVENT_OBJ_GFX_WOMAN_2, 0, 11, 44, 3, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 0, 0, 1, 3, Route104_EventScript_1ED4E9, 0
object_event 27, EVENT_OBJ_GFX_ITEM_BALL, 0, 29, 53, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route104_EventScript_290D0C, 1057
object_event 28, EVENT_OBJ_GFX_YOUNGSTER, 0, 18, 67, 3, MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT, 5, 6, 1, 2, Route104_EventScript_1ED376, 0
object_event 29, EVENT_OBJ_GFX_ITEM_BALL, 0, 37, 22, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route104_EventScript_290D19, 1115
diff --git a/data/maps/Route104_MrBrineysHouse/events.inc b/data/maps/Route104_MrBrineysHouse/events.inc
index 6410f02fc..d6422508c 100644
--- a/data/maps/Route104_MrBrineysHouse/events.inc
+++ b/data/maps/Route104_MrBrineysHouse/events.inc
@@ -1,5 +1,5 @@
Route104_MrBrineysHouse_EventObjects: @ 8533AD4
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_1, 0, 5, 3, 3, MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT, 3, 3, 0, 0, Route104_MrBrineysHouse_EventScript_229D67, 739
+ object_event 1, EVENT_OBJ_GFX_EXPERT_M, 0, 5, 3, 3, MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT, 3, 3, 0, 0, Route104_MrBrineysHouse_EventScript_229D67, 739
object_event 2, EVENT_OBJ_GFX_WINGULL, 0, 6, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 3, 3, 0, 0, Route104_MrBrineysHouse_EventScript_229E5D, 881
Route104_MrBrineysHouse_MapWarps: @ 8533B04
diff --git a/data/maps/Route104_PrettyPetalFlowerShop/events.inc b/data/maps/Route104_PrettyPetalFlowerShop/events.inc
index 3d622f106..52e57efc7 100644
--- a/data/maps/Route104_PrettyPetalFlowerShop/events.inc
+++ b/data/maps/Route104_PrettyPetalFlowerShop/events.inc
@@ -1,5 +1,5 @@
Route104_PrettyPetalFlowerShop_EventObjects: @ 8533B28
- object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 0, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, Route104_PrettyPetalFlowerShop_EventScript_22A373, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 0, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, Route104_PrettyPetalFlowerShop_EventScript_22A373, 0
object_event 2, EVENT_OBJ_GFX_GIRL_3, 0, 7, 3, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, Route104_PrettyPetalFlowerShop_EventScript_22A40C, 0
object_event 3, EVENT_OBJ_GFX_GIRL_1, 0, 11, 6, 4, MOVEMENT_TYPE_WANDER_AROUND, 2, 2, 0, 0, Route104_PrettyPetalFlowerShop_EventScript_22A442, 0
diff --git a/data/maps/Route105/events.inc b/data/maps/Route105/events.inc
index aa9b9b420..d11bb8cab 100644
--- a/data/maps/Route105/events.inc
+++ b/data/maps/Route105/events.inc
@@ -5,7 +5,7 @@ Route105_EventObjects: @ 85286F0
object_event 4, EVENT_OBJ_GFX_SWIMMER_F, 0, 19, 9, 1, MOVEMENT_TYPE_ROTATE_CLOCKWISE, 0, 5, 1, 3, Route105_EventScript_1EE2A6, 0
object_event 5, EVENT_OBJ_GFX_ITEM_BALL, 0, 8, 73, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route105_EventScript_290D33, 1003
object_event 6, EVENT_OBJ_GFX_HIKER, 0, 17, 48, 3, MOVEMENT_TYPE_WALK_DOWN_AND_UP, 0, 7, 1, 3, Route105_EventScript_1EE24A, 0
- object_event 7, EVENT_OBJ_GFX_MAN_6, 0, 4, 54, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 2, 1, 2, Route105_EventScript_1EE2BD, 0
+ object_event 7, EVENT_OBJ_GFX_MAN_5, 0, 4, 54, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 2, 1, 2, Route105_EventScript_1EE2BD, 0
object_event 8, EVENT_OBJ_GFX_HIKER, 0, 4, 58, 3, MOVEMENT_TYPE_FACE_UP, 0, 2, 1, 4, Route105_EventScript_1EE2D4, 0
Route105_MapWarps: @ 85287B0
diff --git a/data/maps/Route108/events.inc b/data/maps/Route108/events.inc
index e18cf16d0..a92fe680d 100644
--- a/data/maps/Route108/events.inc
+++ b/data/maps/Route108/events.inc
@@ -3,7 +3,7 @@ Route108_EventObjects: @ 8528964
object_event 2, EVENT_OBJ_GFX_SWIMMER_F, 0, 35, 12, 1, MOVEMENT_TYPE_FACE_DOWN_AND_UP, 1, 1, 1, 3, Route108_EventScript_1EE6B8, 0
object_event 3, EVENT_OBJ_GFX_SWIMMER_M, 0, 13, 13, 1, MOVEMENT_TYPE_ROTATE_CLOCKWISE, 0, 0, 1, 3, Route108_EventScript_1EE6A1, 0
object_event 4, EVENT_OBJ_GFX_SWIMMER_F, 0, 8, 7, 1, MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT, 6, 0, 1, 3, Route108_EventScript_1EE6CF, 0
- object_event 5, EVENT_OBJ_GFX_WOMAN_7, 0, 41, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 1, Route108_EventScript_1EE6E6, 0
+ object_event 5, EVENT_OBJ_GFX_WOMAN_5, 0, 41, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 1, Route108_EventScript_1EE6E6, 0
object_event 6, EVENT_OBJ_GFX_SAILOR, 0, 43, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 1, Route108_EventScript_1EE6FD, 0
object_event 7, EVENT_OBJ_GFX_ITEM_BALL, 0, 42, 4, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route108_EventScript_290D4D, 1139
diff --git a/data/maps/Route109/events.inc b/data/maps/Route109/events.inc
index f74e1ceab..e74aa5dfa 100644
--- a/data/maps/Route109/events.inc
+++ b/data/maps/Route109/events.inc
@@ -1,28 +1,28 @@
Route109_EventObjects: @ 8528A34
object_event 1, EVENT_OBJ_GFX_MR_BRINEYS_BOAT, 0, 21, 26, 1, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, 0x0, 744
- object_event 2, EVENT_OBJ_GFX_OLD_MAN_1, 0, 21, 24, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, Route109_EventScript_1EE910, 741
+ object_event 2, EVENT_OBJ_GFX_EXPERT_M, 0, 21, 24, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, Route109_EventScript_1EE910, 741
object_event 3, EVENT_OBJ_GFX_SWIMMER_M, 0, 12, 36, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 5, Route109_EventScript_1EEA3D, 0
object_event 4, EVENT_OBJ_GFX_SWIMMER_F, 0, 25, 39, 1, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 0, 0, 1, 5, Route109_EventScript_1EEA54, 0
object_event 5, EVENT_OBJ_GFX_SAILOR, 0, 15, 17, 4, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, Route109_EventScript_1EEA6B, 0
object_event 6, EVENT_OBJ_GFX_SAILOR, 0, 24, 13, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 6, Route109_EventScript_1EEA82, 0
object_event 7, EVENT_OBJ_GFX_TUBER_M, 0, 19, 10, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 3, Route109_EventScript_1EEA99, 0
object_event 8, EVENT_OBJ_GFX_TUBER_F, 0, 22, 7, 3, MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT, 0, 0, 1, 4, Route109_EventScript_1EEAFB, 0
- object_event 9, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 11, 6, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route109_EventScript_1EE995, 0
+ object_event 9, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 11, 6, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route109_EventScript_1EE995, 0
object_event 10, EVENT_OBJ_GFX_ITEM_BALL, 0, 27, 46, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route109_EventScript_290D5A, 1005
object_event 11, EVENT_OBJ_GFX_TUBER_F, 0, 29, 32, 3, MOVEMENT_TYPE_FACE_DOWN_AND_UP, 0, 0, 1, 3, Route109_EventScript_1EEB74, 0
object_event 12, EVENT_OBJ_GFX_TUBER_F, 0, 28, 31, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 0, 0, 1, 3, Route109_EventScript_1EEB5D, 0
object_event 13, EVENT_OBJ_GFX_FISHERMAN, 0, 21, 56, 0, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 3, Route109_EventScript_1EEB8B, 0
object_event 14, EVENT_OBJ_GFX_TUBER_M, 0, 24, 18, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, Route109_EventScript_1EE99E, 0
object_event 15, EVENT_OBJ_GFX_TUBER_F, 0, 25, 18, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, Route109_EventScript_1EE9B5, 0
- object_event 16, EVENT_OBJ_GFX_WOMAN_2, 0, 30, 32, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, Route109_EventScript_1EEA06, 0
- object_event 17, EVENT_OBJ_GFX_WOMAN_5, 0, 8, 41, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, Route109_EventScript_1EEBBD, 0
- object_event 18, EVENT_OBJ_GFX_MAN_5, 0, 9, 41, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, Route109_EventScript_1EEBA2, 0
- object_event 19, EVENT_OBJ_GFX_OLD_MAN_2, 0, 33, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route109_EventScript_1EEA0F, 0
+ object_event 16, EVENT_OBJ_GFX_POKEFAN_F, 0, 30, 32, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, Route109_EventScript_1EEA06, 0
+ object_event 17, EVENT_OBJ_GFX_WOMAN_4, 0, 8, 41, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, Route109_EventScript_1EEBBD, 0
+ object_event 18, EVENT_OBJ_GFX_MAN_4, 0, 9, 41, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, Route109_EventScript_1EEBA2, 0
+ object_event 19, EVENT_OBJ_GFX_OLD_MAN, 0, 33, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route109_EventScript_1EEA0F, 0
object_event 20, EVENT_OBJ_GFX_ZIGZAGOON_2, 0, 32, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route109_EventScript_1EEA18, 0
object_event 21, EVENT_OBJ_GFX_TUBER_F, 0, 17, 13, 3, MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT, 1, 1, 1, 6, Route109_EventScript_1EEBEF, 0
object_event 22, EVENT_OBJ_GFX_TUBER_M, 0, 27, 7, 3, MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT, 1, 1, 1, 4, Route109_EventScript_1EEBD8, 0
object_event 23, EVENT_OBJ_GFX_ITEM_BALL, 0, 25, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route109_EventScript_290D67, 1140
- object_event 24, EVENT_OBJ_GFX_MAN_6, 0, 17, 56, 3, MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT, 1, 1, 1, 3, Route109_EventScript_1EEC06, 0
+ object_event 24, EVENT_OBJ_GFX_MAN_5, 0, 17, 56, 3, MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT, 1, 1, 1, 3, Route109_EventScript_1EEC06, 0
Route109_MapWarps: @ 8528C74
warp_def 12, 5, 0, 0, MAP_ROUTE109_SEASHORE_HOUSE
diff --git a/data/maps/Route109_SeashoreHouse/events.inc b/data/maps/Route109_SeashoreHouse/events.inc
index 9c12bd582..0632596a9 100644
--- a/data/maps/Route109_SeashoreHouse/events.inc
+++ b/data/maps/Route109_SeashoreHouse/events.inc
@@ -1,5 +1,5 @@
Route109_SeashoreHouse_EventObjects: @ 853DDE8
- object_event 1, EVENT_OBJ_GFX_MAN_3, 0, 6, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route109_SeashoreHouse_EventScript_2693FE, 0
+ object_event 1, EVENT_OBJ_GFX_POKEFAN_M, 0, 6, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route109_SeashoreHouse_EventScript_2693FE, 0
object_event 2, EVENT_OBJ_GFX_SAILOR, 0, 2, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 2, Route109_SeashoreHouse_EventScript_2694E2, 0
object_event 3, EVENT_OBJ_GFX_TUBER_M, 0, 14, 9, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 2, Route109_SeashoreHouse_EventScript_269518, 0
object_event 4, EVENT_OBJ_GFX_BEAUTY, 0, 10, 5, 3, MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT, 0, 0, 1, 2, Route109_SeashoreHouse_EventScript_2694FD, 0
diff --git a/data/maps/Route110/events.inc b/data/maps/Route110/events.inc
index f4875cc6c..c767f91d3 100644
--- a/data/maps/Route110/events.inc
+++ b/data/maps/Route110/events.inc
@@ -1,9 +1,9 @@
Route110_EventObjects: @ 8528CF0
object_event 1, EVENT_OBJ_GFX_CAMPER, 0, 17, 90, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route110_EventScript_1EF338, 0
object_event 2, EVENT_OBJ_GFX_CYCLING_TRIATHLETE_M, 0, 29, 79, 4, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route110_EventScript_1EF32F, 0
- object_event 3, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 14, 69, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, Route110_EventScript_1EF326, 0
+ object_event 3, EVENT_OBJ_GFX_EXPERT_F, 0, 14, 69, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, Route110_EventScript_1EF326, 0
object_event 4, EVENT_OBJ_GFX_CYCLING_TRIATHLETE_M, 0, 9, 57, 4, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route110_EventScript_1EF314, 0
- object_event 5, EVENT_OBJ_GFX_OLD_MAN_1, 0, 10, 11, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route110_EventScript_1EF31D, 0
+ object_event 5, EVENT_OBJ_GFX_EXPERT_M, 0, 10, 11, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route110_EventScript_1EF31D, 0
object_event 6, EVENT_OBJ_GFX_CYCLING_TRIATHLETE_F, 0, 27, 24, 4, MOVEMENT_TYPE_WANDER_AROUND, 1, 3, 0, 0, Route110_EventScript_1EF30B, 0
object_event 7, EVENT_OBJ_GFX_BOY_3, 0, 15, 7, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route110_EventScript_1EF302, 0
object_event 8, EVENT_OBJ_GFX_CYCLING_TRIATHLETE_F, 0, 16, 73, 4, MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT, 2, 14, 1, 3, Route110_EventScript_1EF529, 0
@@ -29,10 +29,10 @@ Route110_EventObjects: @ 8528CF0
object_event 28, EVENT_OBJ_GFX_HIPSTER, 0, 34, 54, 3, MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT, 0, 0, 0, 0, 0x0, 919
object_event 29, EVENT_OBJ_GFX_GIDDY, 0, 34, 54, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, 0x0, 922
object_event 30, EVENT_OBJ_GFX_YOUNGSTER, 0, 33, 69, 3, MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT, 0, 0, 1, 3, Route110_EventScript_1EF604, 0
- object_event 31, EVENT_OBJ_GFX_WOMAN_2, 0, 10, 76, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 2, Route110_EventScript_1EF5A2, 0
- object_event 32, EVENT_OBJ_GFX_MAN_3, 0, 7, 76, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 2, Route110_EventScript_1EF61C, 0
+ object_event 31, EVENT_OBJ_GFX_POKEFAN_F, 0, 10, 76, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 2, Route110_EventScript_1EF5A2, 0
+ object_event 32, EVENT_OBJ_GFX_POKEFAN_M, 0, 7, 76, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 2, Route110_EventScript_1EF61C, 0
object_event 33, EVENT_OBJ_GFX_CYCLING_TRIATHLETE_F, 0, 10, 39, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 6, Route110_EventScript_1EF64A, 0
- object_event 34, EVENT_OBJ_GFX_MAN_6, 0, 36, 40, 3, MOVEMENT_TYPE_WALK_IN_PLACE_LEFT, 1, 1, 1, 3, Route110_EventScript_1EF633, 0
+ object_event 34, EVENT_OBJ_GFX_MAN_5, 0, 36, 40, 3, MOVEMENT_TYPE_WALK_IN_PLACE_LEFT, 1, 1, 1, 3, Route110_EventScript_1EF633, 0
object_event 35, EVENT_OBJ_GFX_ITEM_BALL, 0, 6, 38, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route110_EventScript_290D8E, 1141
object_event 36, EVENT_OBJ_GFX_PROF_BIRCH, 0, 9, 79, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, 0x0, 837
diff --git a/data/maps/Route110_TrickHousePuzzle6/events.inc b/data/maps/Route110_TrickHousePuzzle6/events.inc
index df3ef829a..72fc4fbc6 100644
--- a/data/maps/Route110_TrickHousePuzzle6/events.inc
+++ b/data/maps/Route110_TrickHousePuzzle6/events.inc
@@ -1,6 +1,6 @@
Route110_TrickHousePuzzle6_EventObjects: @ 853E6D0
object_event 1, EVENT_OBJ_GFX_PICNICKER, 0, 7, 9, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 1, Route110_TrickHousePuzzle6_EventScript_26DDE1, 0
- object_event 2, EVENT_OBJ_GFX_MAN_6, 0, 11, 10, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 3, Route110_TrickHousePuzzle6_EventScript_26DDF8, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_5, 0, 11, 10, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 3, Route110_TrickHousePuzzle6_EventScript_26DDF8, 0
object_event 3, EVENT_OBJ_GFX_CAMPER, 0, 4, 5, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 1, 1, Route110_TrickHousePuzzle6_EventScript_26DE0F, 0
object_event 4, EVENT_OBJ_GFX_ITEM_BALL, 0, 11, 21, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route110_TrickHousePuzzle6_EventScript_29145C, 1067
diff --git a/data/maps/Route110_TrickHousePuzzle8/events.inc b/data/maps/Route110_TrickHousePuzzle8/events.inc
index a5d4c0f8a..8dff961ac 100644
--- a/data/maps/Route110_TrickHousePuzzle8/events.inc
+++ b/data/maps/Route110_TrickHousePuzzle8/events.inc
@@ -1,7 +1,7 @@
Route110_TrickHousePuzzle8_EventObjects: @ 853E908
- object_event 1, EVENT_OBJ_GFX_MAN_4, 0, 1, 10, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 1, 1, Route110_TrickHousePuzzle8_EventScript_26E81F, 0
- object_event 2, EVENT_OBJ_GFX_MAN_4, 0, 4, 2, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 1, Route110_TrickHousePuzzle8_EventScript_26E84D, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_7, 0, 8, 17, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 1, Route110_TrickHousePuzzle8_EventScript_26E836, 0
+ object_event 1, EVENT_OBJ_GFX_MAN_3, 0, 1, 10, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 1, 1, Route110_TrickHousePuzzle8_EventScript_26E81F, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_3, 0, 4, 2, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 1, Route110_TrickHousePuzzle8_EventScript_26E84D, 0
+ object_event 3, EVENT_OBJ_GFX_WOMAN_5, 0, 8, 17, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 1, Route110_TrickHousePuzzle8_EventScript_26E836, 0
object_event 4, EVENT_OBJ_GFX_ITEM_BALL, 0, 2, 2, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route110_TrickHousePuzzle8_EventScript_291476, 1069
Route110_TrickHousePuzzle8_MapWarps: @ 853E968
diff --git a/data/maps/Route111/events.inc b/data/maps/Route111/events.inc
index cd11e1ef2..93767ff41 100644
--- a/data/maps/Route111/events.inc
+++ b/data/maps/Route111/events.inc
@@ -1,12 +1,12 @@
Route111_EventObjects: @ 85291F0
object_event 1, EVENT_OBJ_GFX_MAN_1, 0, 13, 114, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route111_EventScript_1F0FC5, 768
- object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 13, 113, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, 0x0, 769
+ object_event 2, EVENT_OBJ_GFX_POKEFAN_F, 0, 13, 113, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, 0x0, 769
object_event 3, EVENT_OBJ_GFX_LASS, 0, 13, 113, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 0, 0, 0, 0x0, 770
- object_event 4, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 13, 113, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, 0x0, 771
+ object_event 4, EVENT_OBJ_GFX_EXPERT_F, 0, 13, 113, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, 0x0, 771
object_event 5, EVENT_OBJ_GFX_PICNICKER, 0, 28, 51, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 0, 0, 1, 3, Route111_EventScript_1F121B, 0
object_event 6, EVENT_OBJ_GFX_BERRY_TREE, 0, 22, 5, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 19, BerryTreeScript, 0
object_event 7, EVENT_OBJ_GFX_BERRY_TREE, 0, 23, 5, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 20, BerryTreeScript, 0
- object_event 8, EVENT_OBJ_GFX_MAN_4, 0, 8, 91, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route111_EventScript_1F1189, 0
+ object_event 8, EVENT_OBJ_GFX_MAN_3, 0, 8, 91, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route111_EventScript_1F1189, 0
object_event 9, EVENT_OBJ_GFX_CAMPER, 0, 29, 37, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 0, 0, 1, 3, Route111_EventScript_1F1204, 0
object_event 10, EVENT_OBJ_GFX_HIKER, 0, 27, 69, 3, MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT, 2, 2, 1, 2, Route111_EventScript_1F1260, 0
object_event 11, EVENT_OBJ_GFX_CAMPER, 0, 21, 47, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 4, Route111_EventScript_1F1232, 0
@@ -29,14 +29,14 @@ Route111_EventObjects: @ 85291F0
object_event 28, EVENT_OBJ_GFX_PICNICKER, 0, 10, 82, 3, MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT, 0, 0, 1, 2, Route111_EventScript_1F12D9, 0
object_event 29, EVENT_OBJ_GFX_CAMPER, 0, 11, 71, 3, MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT, 0, 0, 1, 3, Route111_EventScript_1F12C2, 0
object_event 30, EVENT_OBJ_GFX_BLACK_BELT, 0, 32, 29, 3, MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT, 1, 0, 1, 2, Route111_EventScript_1F12F0, 0
- object_event 31, EVENT_OBJ_GFX_WOMAN_7, 0, 11, 11, 3, MOVEMENT_TYPE_FACE_UP, 4, 0, 1, 4, Route111_EventScript_1F1369, 0
- object_event 32, EVENT_OBJ_GFX_MAN_4, 0, 9, 27, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 0, 0, 1, 3, Route111_EventScript_1F1307, 0
+ object_event 31, EVENT_OBJ_GFX_WOMAN_5, 0, 11, 11, 3, MOVEMENT_TYPE_FACE_UP, 4, 0, 1, 4, Route111_EventScript_1F1369, 0
+ object_event 32, EVENT_OBJ_GFX_MAN_3, 0, 9, 27, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 0, 0, 1, 3, Route111_EventScript_1F1307, 0
object_event 33, EVENT_OBJ_GFX_BOY_1, 0, 13, 20, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, Route111_EventScript_2765FF, 960
- object_event 34, EVENT_OBJ_GFX_MAN_5, 0, 20, 114, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route111_EventScript_1F1192, 0
+ object_event 34, EVENT_OBJ_GFX_MAN_4, 0, 20, 114, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route111_EventScript_1F1192, 0
object_event 35, EVENT_OBJ_GFX_CAMPER, 0, 26, 132, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 5, Route111_EventScript_1F13F9, 0
- object_event 36, EVENT_OBJ_GFX_WOMAN_3, 0, 20, 132, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 5, Route111_EventScript_1F1410, 0
+ object_event 36, EVENT_OBJ_GFX_WOMAN_2, 0, 20, 132, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 5, Route111_EventScript_1F1410, 0
object_event 37, EVENT_OBJ_GFX_PICNICKER, 0, 19, 121, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 2, Route111_EventScript_1F13E2, 0
- object_event 38, EVENT_OBJ_GFX_MAN_6, 0, 16, 119, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 3, Route111_EventScript_1F13CB, 0
+ object_event 38, EVENT_OBJ_GFX_MAN_5, 0, 16, 119, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 3, Route111_EventScript_1F13CB, 0
object_event 39, EVENT_OBJ_GFX_HIKER, 0, 29, 77, 3, MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT, 1, 1, 1, 7, Route111_EventScript_1F143E, 0
object_event 40, EVENT_OBJ_GFX_PICNICKER, 0, 22, 77, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 6, Route111_EventScript_1F1427, 0
object_event 41, EVENT_OBJ_GFX_CAMPER, 0, 37, 77, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 7, Route111_EventScript_1F1455, 0
diff --git a/data/maps/Route111_OldLadysRestStop/events.inc b/data/maps/Route111_OldLadysRestStop/events.inc
index 16f480460..973837871 100644
--- a/data/maps/Route111_OldLadysRestStop/events.inc
+++ b/data/maps/Route111_OldLadysRestStop/events.inc
@@ -1,5 +1,5 @@
Route111_OldLadysRestStop_EventObjects: @ 8533C18
- object_event 1, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 6, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, Route111_OldLadysRestStop_EventScript_22A920, 0
+ object_event 1, EVENT_OBJ_GFX_EXPERT_F, 0, 6, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, Route111_OldLadysRestStop_EventScript_22A920, 0
Route111_OldLadysRestStop_MapWarps: @ 8533C30
warp_def 3, 7, 0, 2, MAP_ROUTE111
diff --git a/data/maps/Route111_WinstrateFamilysHouse/events.inc b/data/maps/Route111_WinstrateFamilysHouse/events.inc
index e2c0a2fa5..edaf85eb4 100644
--- a/data/maps/Route111_WinstrateFamilysHouse/events.inc
+++ b/data/maps/Route111_WinstrateFamilysHouse/events.inc
@@ -1,8 +1,8 @@
Route111_WinstrateFamilysHouse_EventObjects: @ 8533B94
object_event 1, EVENT_OBJ_GFX_LASS, 0, 7, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, Route111_WinstrateFamilysHouse_EventScript_22A4E8, 0
object_event 2, EVENT_OBJ_GFX_MAN_1, 0, 4, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, Route111_WinstrateFamilysHouse_EventScript_22A48D, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_2, 0, 7, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 0, 0, 0, Route111_WinstrateFamilysHouse_EventScript_22A4A2, 0
- object_event 4, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, Route111_WinstrateFamilysHouse_EventScript_22A4FD, 0
+ object_event 3, EVENT_OBJ_GFX_POKEFAN_F, 0, 7, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 0, 0, 0, Route111_WinstrateFamilysHouse_EventScript_22A4A2, 0
+ object_event 4, EVENT_OBJ_GFX_EXPERT_F, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, Route111_WinstrateFamilysHouse_EventScript_22A4FD, 0
Route111_WinstrateFamilysHouse_MapWarps: @ 8533BF4
warp_def 3, 7, 0, 0, MAP_ROUTE111
diff --git a/data/maps/Route112/events.inc b/data/maps/Route112/events.inc
index d61286928..123385208 100644
--- a/data/maps/Route112/events.inc
+++ b/data/maps/Route112/events.inc
@@ -11,8 +11,8 @@ Route112_EventObjects: @ 8529974
object_event 10, EVENT_OBJ_GFX_BERRY_TREE, 0, 30, 6, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 21, BerryTreeScript, 0
object_event 11, EVENT_OBJ_GFX_HIKER, 0, 8, 50, 3, MOVEMENT_TYPE_WALK_DOWN_AND_UP, 0, 3, 0, 0, Route112_EventScript_1F1E61, 0
object_event 12, EVENT_OBJ_GFX_ITEM_BALL, 0, 14, 43, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route112_EventScript_290DCF, 1011
- object_event 13, EVENT_OBJ_GFX_MAN_6, 0, 31, 7, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 3, Route112_EventScript_1F1F11, 0
- object_event 14, EVENT_OBJ_GFX_WOMAN_3, 0, 31, 11, 3, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 3, Route112_EventScript_1F1F28, 0
+ object_event 13, EVENT_OBJ_GFX_MAN_5, 0, 31, 7, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 3, Route112_EventScript_1F1F11, 0
+ object_event 14, EVENT_OBJ_GFX_WOMAN_2, 0, 31, 11, 3, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 3, Route112_EventScript_1F1F28, 0
Route112_MapWarps: @ 8529AC4
warp_def 28, 27, 0, 0, MAP_ROUTE112_CABLE_CAR_STATION
diff --git a/data/maps/Route113/events.inc b/data/maps/Route113/events.inc
index 7af1afea7..21bae5dc6 100644
--- a/data/maps/Route113/events.inc
+++ b/data/maps/Route113/events.inc
@@ -1,20 +1,20 @@
Route113_EventObjects: @ 8529B2C
- object_event 1, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 66, 12, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, Route113_EventScript_1F2193, 0
+ object_event 1, EVENT_OBJ_GFX_NINJA_BOY, 0, 66, 12, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, Route113_EventScript_1F2193, 0
object_event 2, EVENT_OBJ_GFX_GENTLEMAN, 0, 36, 10, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, Route113_EventScript_1F218A, 0
object_event 3, EVENT_OBJ_GFX_YOUNGSTER, 0, 62, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 3, Route113_EventScript_1F21C0, 0
object_event 4, EVENT_OBJ_GFX_YOUNGSTER, 0, 21, 11, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 0, 0, 1, 3, Route113_EventScript_1F21D7, 0
- object_event 5, EVENT_OBJ_GFX_WOMAN_7, 0, 51, 11, 3, MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE, 0, 0, 1, 2, Route113_EventScript_1F21EE, 0
+ object_event 5, EVENT_OBJ_GFX_WOMAN_5, 0, 51, 11, 3, MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE, 0, 0, 1, 2, Route113_EventScript_1F21EE, 0
object_event 6, EVENT_OBJ_GFX_ITEM_BALL, 0, 53, 7, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route113_EventScript_290DDC, 1012
object_event 7, EVENT_OBJ_GFX_ITEM_BALL, 0, 79, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route113_EventScript_290DE9, 1013
- object_event 8, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 29, 6, 3, MOVEMENT_TYPE_HIDDEN, 0, 0, 3, 1, Route113_EventScript_1F2250, 0
- object_event 9, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 71, 2, 3, MOVEMENT_TYPE_HIDDEN, 0, 0, 3, 1, Route113_EventScript_1F22B2, 0
- object_event 10, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 45, 6, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, Route113_EventScript_1F22C9, 0
- object_event 11, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 46, 6, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, Route113_EventScript_1F22E4, 0
+ object_event 8, EVENT_OBJ_GFX_NINJA_BOY, 0, 29, 6, 3, MOVEMENT_TYPE_HIDDEN, 0, 0, 3, 1, Route113_EventScript_1F2250, 0
+ object_event 9, EVENT_OBJ_GFX_NINJA_BOY, 0, 71, 2, 3, MOVEMENT_TYPE_HIDDEN, 0, 0, 3, 1, Route113_EventScript_1F22B2, 0
+ object_event 10, EVENT_OBJ_GFX_TWIN, 0, 45, 6, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, Route113_EventScript_1F22C9, 0
+ object_event 11, EVENT_OBJ_GFX_TWIN, 0, 46, 6, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, Route113_EventScript_1F22E4, 0
object_event 12, EVENT_OBJ_GFX_ITEM_BALL, 0, 15, 15, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route113_EventScript_290DF6, 1143
object_event 13, EVENT_OBJ_GFX_MANIAC, 0, 75, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 4, Route113_EventScript_1F2344, 0
object_event 14, EVENT_OBJ_GFX_CAMPER, 0, 71, 4, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 1, Route113_EventScript_1F232D, 0
object_event 15, EVENT_OBJ_GFX_PICNICKER, 0, 7, 6, 3, MOVEMENT_TYPE_WALK_DOWN_AND_UP, 1, 3, 1, 6, Route113_EventScript_1F22FF, 0
- object_event 16, EVENT_OBJ_GFX_MAN_6, 0, 7, 13, 3, MOVEMENT_TYPE_WALK_UP_AND_DOWN, 1, 3, 1, 6, Route113_EventScript_1F2316, 0
+ object_event 16, EVENT_OBJ_GFX_MAN_5, 0, 7, 13, 3, MOVEMENT_TYPE_WALK_UP_AND_DOWN, 1, 3, 1, 6, Route113_EventScript_1F2316, 0
Route113_MapWarps: @ 8529CAC
warp_def 33, 5, 0, 0, MAP_ROUTE113_GLASS_WORKSHOP
diff --git a/data/maps/Route113_GlassWorkshop/events.inc b/data/maps/Route113_GlassWorkshop/events.inc
index 352f1fabb..d6f9c0d4b 100644
--- a/data/maps/Route113_GlassWorkshop/events.inc
+++ b/data/maps/Route113_GlassWorkshop/events.inc
@@ -1,6 +1,6 @@
Route113_GlassWorkshop_EventObjects: @ 853EA78
object_event 1, EVENT_OBJ_GFX_MAN_1, 0, 2, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route113_GlassWorkshop_EventScript_26ED1E, 0
- object_event 2, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 5, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route113_GlassWorkshop_EventScript_26F194, 0
+ object_event 2, EVENT_OBJ_GFX_NINJA_BOY, 0, 5, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route113_GlassWorkshop_EventScript_26F194, 0
Route113_GlassWorkshop_MapWarps: @ 853EAA8
warp_def 3, 8, 0, 0, MAP_ROUTE113
diff --git a/data/maps/Route114/events.inc b/data/maps/Route114/events.inc
index 70cabb8c5..910d5e004 100644
--- a/data/maps/Route114/events.inc
+++ b/data/maps/Route114/events.inc
@@ -12,10 +12,10 @@ Route114_EventObjects: @ 8529E68
object_event 11, EVENT_OBJ_GFX_BREAKABLE_ROCK, 0, 12, 43, 4, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route114_EventScript_2907A6, 17
object_event 12, EVENT_OBJ_GFX_GENTLEMAN, 0, 19, 11, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, Route114_EventScript_1F25D1, 0
object_event 13, EVENT_OBJ_GFX_POOCHYENA, 0, 19, 12, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, Route114_EventScript_1F2612, 0
- object_event 14, EVENT_OBJ_GFX_MAN_5, 0, 27, 42, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, Route114_EventScript_1F2582, 0
+ object_event 14, EVENT_OBJ_GFX_MAN_4, 0, 27, 42, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, Route114_EventScript_1F2582, 0
object_event 15, EVENT_OBJ_GFX_FISHERMAN, 0, 25, 6, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, Route114_EventScript_1F2777, 0
object_event 16, EVENT_OBJ_GFX_FISHERMAN, 0, 19, 26, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 0, Route114_EventScript_1F2760, 0
- object_event 17, EVENT_OBJ_GFX_MAN_6, 0, 30, 58, 5, MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE, 0, 0, 1, 3, Route114_EventScript_1F26FE, 0
+ object_event 17, EVENT_OBJ_GFX_MAN_5, 0, 30, 58, 5, MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE, 0, 0, 1, 3, Route114_EventScript_1F26FE, 0
object_event 18, EVENT_OBJ_GFX_BREAKABLE_ROCK, 0, 29, 53, 5, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route114_EventScript_2907A6, 18
object_event 19, EVENT_OBJ_GFX_BREAKABLE_ROCK, 0, 30, 54, 5, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route114_EventScript_2907A6, 19
object_event 20, EVENT_OBJ_GFX_BREAKABLE_ROCK, 0, 22, 69, 7, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route114_EventScript_2907A6, 20
diff --git a/data/maps/Route114_FossilManiacsHouse/events.inc b/data/maps/Route114_FossilManiacsHouse/events.inc
index 0a707820e..9c4579c1d 100644
--- a/data/maps/Route114_FossilManiacsHouse/events.inc
+++ b/data/maps/Route114_FossilManiacsHouse/events.inc
@@ -1,5 +1,5 @@
Route114_FossilManiacsHouse_EventObjects: @ 8533CFC
- object_event 1, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 3, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, Route114_FossilManiacsHouse_EventScript_22AD3A, 0
+ object_event 1, EVENT_OBJ_GFX_NINJA_BOY, 0, 3, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, Route114_FossilManiacsHouse_EventScript_22AD3A, 0
Route114_FossilManiacsHouse_MapWarps: @ 8533D14
warp_def 4, 7, 0, 1, MAP_ROUTE114
diff --git a/data/maps/Route114_LanettesHouse/events.inc b/data/maps/Route114_LanettesHouse/events.inc
index 47bd391fb..15b016bba 100644
--- a/data/maps/Route114_LanettesHouse/events.inc
+++ b/data/maps/Route114_LanettesHouse/events.inc
@@ -1,5 +1,5 @@
Route114_LanettesHouse_EventObjects: @ 8533DD4
- object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 5, 4, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route114_LanettesHouse_EventScript_22B2D2, 870
+ object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 5, 4, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route114_LanettesHouse_EventScript_22B2D2, 870
Route114_LanettesHouse_MapWarps: @ 8533DEC
warp_def 5, 7, 0, 2, MAP_ROUTE114
diff --git a/data/maps/Route115/events.inc b/data/maps/Route115/events.inc
index 36888bd7a..c79c836ea 100644
--- a/data/maps/Route115/events.inc
+++ b/data/maps/Route115/events.inc
@@ -1,6 +1,6 @@
Route115_EventObjects: @ 852A1BC
- object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 18, 68, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route115_EventScript_1F2973, 0
- object_event 2, EVENT_OBJ_GFX_OLD_MAN_1, 0, 5, 15, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 6, Route115_EventScript_1F298E, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 18, 68, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route115_EventScript_1F2973, 0
+ object_event 2, EVENT_OBJ_GFX_EXPERT_M, 0, 5, 15, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 6, Route115_EventScript_1F298E, 0
object_event 3, EVENT_OBJ_GFX_BLACK_BELT, 0, 27, 53, 3, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 4, Route115_EventScript_1F2A07, 0
object_event 4, EVENT_OBJ_GFX_BERRY_TREE, 0, 12, 5, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 69, BerryTreeScript, 0
object_event 5, EVENT_OBJ_GFX_BERRY_TREE, 0, 13, 5, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 70, BerryTreeScript, 0
@@ -16,7 +16,7 @@ Route115_EventObjects: @ 852A1BC
object_event 15, EVENT_OBJ_GFX_BREAKABLE_ROCK, 0, 29, 50, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route115_EventScript_2907A6, 17
object_event 16, EVENT_OBJ_GFX_ITEM_BALL, 0, 31, 56, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route115_EventScript_290E51, 1118
object_event 17, EVENT_OBJ_GFX_RUNNING_TRIATHLETE_F, 0, 10, 15, 3, MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT, 3, 3, 1, 2, Route115_EventScript_1F2AE2, 0
- object_event 18, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 11, 12, 3, MOVEMENT_TYPE_TREE_DISGUISE, 1, 1, 1, 3, Route115_EventScript_1F2AF9, 0
+ object_event 18, EVENT_OBJ_GFX_NINJA_BOY, 0, 11, 12, 3, MOVEMENT_TYPE_TREE_DISGUISE, 1, 1, 1, 3, Route115_EventScript_1F2AF9, 0
object_event 19, EVENT_OBJ_GFX_GIRL_3, 0, 15, 7, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 4, Route115_EventScript_1F2B27, 0
object_event 20, EVENT_OBJ_GFX_LASS, 0, 10, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 4, Route115_EventScript_1F2B10, 0
object_event 21, EVENT_OBJ_GFX_LASS, 0, 28, 62, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 4, Route115_EventScript_1F2B3E, 0
diff --git a/data/maps/Route116/events.inc b/data/maps/Route116/events.inc
index d81cf31ee..f967ebbba 100644
--- a/data/maps/Route116/events.inc
+++ b/data/maps/Route116/events.inc
@@ -9,7 +9,7 @@ Route116_EventObjects: @ 852A4B8
object_event 8, EVENT_OBJ_GFX_ITEM_BALL, 0, 10, 17, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route116_EventScript_290E92, 1020
object_event 9, EVENT_OBJ_GFX_BERRY_TREE, 0, 20, 2, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 66, BerryTreeScript, 0
object_event 10, EVENT_OBJ_GFX_BERRY_TREE, 0, 21, 2, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 67, BerryTreeScript, 0
- object_event 11, EVENT_OBJ_GFX_OLD_MAN_1, 0, 46, 9, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route116_EventScript_1F2D84, 891
+ object_event 11, EVENT_OBJ_GFX_EXPERT_M, 0, 46, 9, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route116_EventScript_1F2D84, 891
object_event 12, EVENT_OBJ_GFX_CUTTABLE_TREE, 0, 28, 11, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route116_EventScript_2906BB, 19
object_event 13, EVENT_OBJ_GFX_HIKER, 0, 36, 17, 3, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 0, 0, 1, 3, Route116_EventScript_1F2F65, 0
object_event 14, EVENT_OBJ_GFX_CUTTABLE_TREE, 0, 24, 9, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route116_EventScript_2906BB, 20
@@ -21,7 +21,7 @@ Route116_EventObjects: @ 852A4B8
object_event 20, EVENT_OBJ_GFX_ITEM_BALL, 0, 55, 12, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route116_EventScript_290E78, 1001
object_event 21, EVENT_OBJ_GFX_BLACK_BELT, 0, 38, 9, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, Route116_EventScript_1F2C70, 894
object_event 22, EVENT_OBJ_GFX_MANIAC, 0, 74, 13, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route116_EventScript_1F2DB6, 813
- object_event 23, EVENT_OBJ_GFX_WOMAN_3, 0, 33, 8, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 1, 1, Route116_EventScript_1F3041, 0
+ object_event 23, EVENT_OBJ_GFX_WOMAN_2, 0, 33, 8, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 1, 1, Route116_EventScript_1F3041, 0
object_event 24, EVENT_OBJ_GFX_BOY_2, 0, 33, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 2, Route116_EventScript_1F3058, 0
object_event 25, EVENT_OBJ_GFX_ITEM_BALL, 0, 34, 7, 0, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route116_EventScript_290EAC, 1146
object_event 26, EVENT_OBJ_GFX_CUTTABLE_TREE, 0, 30, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route116_EventScript_2906BB, 21
diff --git a/data/maps/Route116_TunnelersRestHouse/events.inc b/data/maps/Route116_TunnelersRestHouse/events.inc
index 896949ae8..32a4dc0ea 100644
--- a/data/maps/Route116_TunnelersRestHouse/events.inc
+++ b/data/maps/Route116_TunnelersRestHouse/events.inc
@@ -1,7 +1,7 @@
Route116_TunnelersRestHouse_EventObjects: @ 8533E34
- object_event 1, EVENT_OBJ_GFX_MAN_3, 0, 6, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, Route116_TunnelersRestHouse_EventScript_22B85A, 0
- object_event 2, EVENT_OBJ_GFX_MAN_3, 0, 3, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route116_TunnelersRestHouse_EventScript_22B86C, 0
- object_event 3, EVENT_OBJ_GFX_MAN_3, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_UP, 1, 0, 0, 0, Route116_TunnelersRestHouse_EventScript_22B863, 0
+ object_event 1, EVENT_OBJ_GFX_POKEFAN_M, 0, 6, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, Route116_TunnelersRestHouse_EventScript_22B85A, 0
+ object_event 2, EVENT_OBJ_GFX_POKEFAN_M, 0, 3, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route116_TunnelersRestHouse_EventScript_22B86C, 0
+ object_event 3, EVENT_OBJ_GFX_POKEFAN_M, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_UP, 1, 0, 0, 0, Route116_TunnelersRestHouse_EventScript_22B863, 0
Route116_TunnelersRestHouse_MapWarps: @ 8533E7C
warp_def 4, 8, 0, 1, MAP_ROUTE116
diff --git a/data/maps/Route117/events.inc b/data/maps/Route117/events.inc
index ffdb9984f..0a1e6bead 100644
--- a/data/maps/Route117/events.inc
+++ b/data/maps/Route117/events.inc
@@ -1,14 +1,14 @@
Route117_EventObjects: @ 852A828
object_event 1, EVENT_OBJ_GFX_WOMAN_1, 0, 13, 13, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route117_EventScript_1F399A, 0
- object_event 2, EVENT_OBJ_GFX_LITTLE_BOY_2, 0, 25, 5, 3, MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP, 2, 2, 0, 0, Route117_EventScript_1F39A3, 0
- object_event 3, EVENT_OBJ_GFX_OLD_MAN_2, 0, 47, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route117_EventScript_291C18, 0
+ object_event 2, EVENT_OBJ_GFX_LITTLE_BOY, 0, 25, 5, 3, MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP, 2, 2, 0, 0, Route117_EventScript_1F39A3, 0
+ object_event 3, EVENT_OBJ_GFX_OLD_MAN, 0, 47, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route117_EventScript_291C18, 0
object_event 4, EVENT_OBJ_GFX_ZIGZAGOON_2, 0, 33, 3, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, 0x0, 0
object_event 5, EVENT_OBJ_GFX_KECLEON_1, 0, 39, 4, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, 0x0, 0
object_event 6, EVENT_OBJ_GFX_AZUMARILL, 0, 42, 2, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, 0x0, 0
object_event 7, EVENT_OBJ_GFX_PIKACHU, 0, 49, 2, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, 0x0, 0
object_event 8, EVENT_OBJ_GFX_RUNNING_TRIATHLETE_M, 0, 38, 16, 3, MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT, 8, 0, 1, 4, Route117_EventScript_1F3A94, 0
- object_event 9, EVENT_OBJ_GFX_WOMAN_3, 0, 8, 10, 3, MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE, 0, 0, 1, 3, Route117_EventScript_1F3A32, 0
- object_event 10, EVENT_OBJ_GFX_MAN_5, 0, 33, 11, 3, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 0, 0, 1, 4, Route117_EventScript_1F39D0, 0
+ object_event 9, EVENT_OBJ_GFX_WOMAN_2, 0, 8, 10, 3, MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE, 0, 0, 1, 3, Route117_EventScript_1F3A32, 0
+ object_event 10, EVENT_OBJ_GFX_MAN_4, 0, 33, 11, 3, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 0, 0, 1, 4, Route117_EventScript_1F39D0, 0
object_event 11, EVENT_OBJ_GFX_BERRY_TREE, 0, 41, 13, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 29, BerryTreeScript, 0
object_event 12, EVENT_OBJ_GFX_BERRY_TREE, 0, 42, 13, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 28, BerryTreeScript, 0
object_event 13, EVENT_OBJ_GFX_BERRY_TREE, 0, 43, 13, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 27, BerryTreeScript, 0
diff --git a/data/maps/Route117_PokemonDayCare/events.inc b/data/maps/Route117_PokemonDayCare/events.inc
index a1a8e3673..37a9db0f2 100644
--- a/data/maps/Route117_PokemonDayCare/events.inc
+++ b/data/maps/Route117_PokemonDayCare/events.inc
@@ -1,5 +1,5 @@
Route117_PokemonDayCare_EventObjects: @ 8533EA0
- object_event 1, EVENT_OBJ_GFX_OLD_WOMAN_2, 0, 2, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route117_PokemonDayCare_EventScript_291D11, 0
+ object_event 1, EVENT_OBJ_GFX_OLD_WOMAN, 0, 2, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route117_PokemonDayCare_EventScript_291D11, 0
Route117_PokemonDayCare_MapWarps: @ 8533EB8
warp_def 2, 8, 0, 0, MAP_ROUTE117
diff --git a/data/maps/Route118/events.inc b/data/maps/Route118/events.inc
index b24e21f44..19d36d602 100644
--- a/data/maps/Route118/events.inc
+++ b/data/maps/Route118/events.inc
@@ -2,7 +2,7 @@ Route118_EventObjects: @ 852AAB4
object_event 1, EVENT_OBJ_GFX_BERRY_TREE, 0, 35, 5, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 31, BerryTreeScript, 0
object_event 2, EVENT_OBJ_GFX_BERRY_TREE, 0, 36, 5, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 32, BerryTreeScript, 0
object_event 3, EVENT_OBJ_GFX_BERRY_TREE, 0, 37, 5, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 33, BerryTreeScript, 0
- object_event 4, EVENT_OBJ_GFX_MAN_6, 0, 64, 10, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 3, Route118_EventScript_1F4079, 0
+ object_event 4, EVENT_OBJ_GFX_MAN_5, 0, 64, 10, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 3, Route118_EventScript_1F4079, 0
object_event 5, EVENT_OBJ_GFX_REPORTER_F, 0, 33, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route118_EventScript_28CE16, 797
object_event 6, EVENT_OBJ_GFX_CAMERAMAN, 0, 34, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route118_EventScript_28CE36, 797
object_event 7, EVENT_OBJ_GFX_GIRL_2, 0, 12, 10, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route118_EventScript_1F3E73, 0
@@ -12,11 +12,11 @@ Route118_EventObjects: @ 852AAB4
object_event 11, EVENT_OBJ_GFX_CAMERAMAN, 0, 34, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route118_EventScript_28CF36, 904
object_event 12, EVENT_OBJ_GFX_CUTTABLE_TREE, 0, 38, 8, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route118_EventScript_2906BB, 17
object_event 13, EVENT_OBJ_GFX_FISHERMAN, 0, 28, 8, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, Route118_EventScript_1F3E14, 0
- object_event 14, EVENT_OBJ_GFX_WOMAN_3, 0, 7, 12, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 1, 4, Route118_EventScript_1F3F87, 0
+ object_event 14, EVENT_OBJ_GFX_WOMAN_2, 0, 7, 12, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 1, 4, Route118_EventScript_1F3F87, 0
object_event 15, EVENT_OBJ_GFX_FISHERMAN, 0, 14, 14, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 0, Route118_EventScript_1F4000, 0
- object_event 16, EVENT_OBJ_GFX_MAN_6, 0, 56, 7, 3, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 0, 0, 1, 3, Route118_EventScript_1F4090, 0
+ object_event 16, EVENT_OBJ_GFX_MAN_5, 0, 56, 7, 3, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 0, 0, 1, 3, Route118_EventScript_1F4090, 0
object_event 17, EVENT_OBJ_GFX_FISHERMAN, 0, 39, 15, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 1, 2, Route118_EventScript_1F3FE9, 0
- object_event 18, EVENT_OBJ_GFX_MAN_6, 0, 17, 11, 3, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 3, Route118_EventScript_1F4017, 0
+ object_event 18, EVENT_OBJ_GFX_MAN_5, 0, 17, 11, 3, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 1, 1, 1, 3, Route118_EventScript_1F4017, 0
object_event 19, EVENT_OBJ_GFX_STEVEN, 0, 44, 7, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 966
object_event 20, EVENT_OBJ_GFX_ITEM_BALL, 0, 69, 7, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route118_EventScript_290ED3, 1121
object_event 21, EVENT_OBJ_GFX_YOUNGSTER, 0, 7, 7, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 4, Route118_EventScript_1F40A7, 0
diff --git a/data/maps/Route119/events.inc b/data/maps/Route119/events.inc
index 587b60904..1abed81eb 100644
--- a/data/maps/Route119/events.inc
+++ b/data/maps/Route119/events.inc
@@ -10,10 +10,10 @@ Route119_EventObjects: @ 852AD6C
object_event 9, EVENT_OBJ_GFX_PICNICKER, 0, 35, 83, 4, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 2, Route119_EventScript_1F4872, 0
object_event 10, EVENT_OBJ_GFX_BUG_CATCHER, 0, 34, 122, 3, MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS, 0, 0, 1, 1, Route119_EventScript_1F47CB, 0
object_event 11, EVENT_OBJ_GFX_BUG_CATCHER, 0, 17, 128, 3, MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS, 0, 0, 1, 1, Route119_EventScript_1F47F9, 0
- object_event 12, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 28, 14, 3, MOVEMENT_TYPE_TREE_DISGUISE, 0, 0, 1, 1, Route119_EventScript_1F4902, 0
- object_event 13, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 19, 49, 3, MOVEMENT_TYPE_MOUNTAIN_DISGUISE, 0, 0, 1, 3, Route119_EventScript_1F4919, 0
- object_event 14, EVENT_OBJ_GFX_MAN_6, 0, 10, 50, 4, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 3, Route119_EventScript_1F48D4, 0
- object_event 15, EVENT_OBJ_GFX_MAN_6, 0, 8, 63, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 5, Route119_EventScript_1F48EB, 0
+ object_event 12, EVENT_OBJ_GFX_NINJA_BOY, 0, 28, 14, 3, MOVEMENT_TYPE_TREE_DISGUISE, 0, 0, 1, 1, Route119_EventScript_1F4902, 0
+ object_event 13, EVENT_OBJ_GFX_NINJA_BOY, 0, 19, 49, 3, MOVEMENT_TYPE_MOUNTAIN_DISGUISE, 0, 0, 1, 3, Route119_EventScript_1F4919, 0
+ object_event 14, EVENT_OBJ_GFX_MAN_5, 0, 10, 50, 4, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 3, Route119_EventScript_1F48D4, 0
+ object_event 15, EVENT_OBJ_GFX_MAN_5, 0, 8, 63, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 5, Route119_EventScript_1F48EB, 0
object_event 16, EVENT_OBJ_GFX_HIPSTER, 0, 25, 32, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, 0x0, 851
object_event 17, EVENT_OBJ_GFX_ITEM_BALL, 0, 12, 121, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route119_EventScript_290EE0, 1024
object_event 18, EVENT_OBJ_GFX_ITEM_BALL, 0, 4, 96, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route119_EventScript_290EED, 1025
@@ -32,13 +32,13 @@ Route119_EventObjects: @ 852AD6C
object_event 31, EVENT_OBJ_GFX_CYCLING_TRIATHLETE_M, 0, 19, 133, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 2, 1, 0, 0, Route119_EventScript_1F476B, 0
object_event 32, EVENT_OBJ_GFX_ITEM_BALL, 0, 3, 56, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route119_EventScript_290F2E, 1106
object_event 33, EVENT_OBJ_GFX_BOY_2, 0, 35, 93, 4, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route119_EventScript_1F49DA, 0
- object_event 34, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 29, 6, 3, MOVEMENT_TYPE_TREE_DISGUISE, 1, 1, 1, 3, Route119_EventScript_1F4930, 0
+ object_event 34, EVENT_OBJ_GFX_NINJA_BOY, 0, 29, 6, 3, MOVEMENT_TYPE_TREE_DISGUISE, 1, 1, 1, 3, Route119_EventScript_1F4930, 0
object_event 35, EVENT_OBJ_GFX_KECLEON_1, 0, 31, 6, 3, MOVEMENT_TYPE_INVISIBLE, 1, 1, 0, 0, Route119_EventScript_27231C, 989
object_event 36, EVENT_OBJ_GFX_KECLEON_1, 0, 25, 15, 3, MOVEMENT_TYPE_INVISIBLE, 1, 1, 0, 0, Route119_EventScript_272329, 990
object_event 37, EVENT_OBJ_GFX_FISHERMAN, 0, 13, 104, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 0, Route119_EventScript_1F4947, 0
- object_event 38, EVENT_OBJ_GFX_WOMAN_3, 0, 8, 68, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 5, Route119_EventScript_1F498C, 0
- object_event 39, EVENT_OBJ_GFX_MAN_6, 0, 16, 52, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 3, Route119_EventScript_1F4975, 0
- object_event 40, EVENT_OBJ_GFX_MAN_6, 0, 32, 15, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 4, Route119_EventScript_1F495E, 0
+ object_event 38, EVENT_OBJ_GFX_WOMAN_2, 0, 8, 68, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 5, Route119_EventScript_1F498C, 0
+ object_event 39, EVENT_OBJ_GFX_MAN_5, 0, 16, 52, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 3, Route119_EventScript_1F4975, 0
+ object_event 40, EVENT_OBJ_GFX_MAN_5, 0, 32, 15, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 4, Route119_EventScript_1F495E, 0
object_event 41, EVENT_OBJ_GFX_ITEM_BALL, 0, 19, 5, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route119_EventScript_291399, 1134
object_event 42, EVENT_OBJ_GFX_ITEM_BALL, 0, 24, 42, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route119_EventScript_290F3B, 1147
object_event 43, EVENT_OBJ_GFX_SCOTT, 0, 28, 25, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, 0x0, 786
diff --git a/data/maps/Route119_House/events.inc b/data/maps/Route119_House/events.inc
index ebae9a0fc..aff8116a7 100644
--- a/data/maps/Route119_House/events.inc
+++ b/data/maps/Route119_House/events.inc
@@ -1,5 +1,5 @@
Route119_House_EventObjects: @ 853ECD0
- object_event 1, EVENT_OBJ_GFX_WOMAN_5, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route119_House_EventScript_270966, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_4, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route119_House_EventScript_270966, 0
object_event 2, EVENT_OBJ_GFX_WINGULL, 0, 1, 6, 3, MOVEMENT_TYPE_WANDER_AROUND, 2, 2, 0, 0, Route119_House_EventScript_27096F, 0
object_event 3, EVENT_OBJ_GFX_WINGULL, 0, 0, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 3, 1, 0, 0, Route119_House_EventScript_27096F, 0
object_event 4, EVENT_OBJ_GFX_WINGULL, 0, 2, 2, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route119_House_EventScript_27096F, 0
diff --git a/data/maps/Route119_WeatherInstitute_1F/events.inc b/data/maps/Route119_WeatherInstitute_1F/events.inc
index 01a93f7e6..a46081332 100644
--- a/data/maps/Route119_WeatherInstitute_1F/events.inc
+++ b/data/maps/Route119_WeatherInstitute_1F/events.inc
@@ -1,9 +1,9 @@
Route119_WeatherInstitute_1F_EventObjects: @ 853EB20
object_event 1, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 15, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 3, Route119_WeatherInstitute_1F_EventScript_26FB29, 890
object_event 2, EVENT_OBJ_GFX_AQUA_MEMBER_F, 0, 10, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 2, Route119_WeatherInstitute_1F_EventScript_26FB40, 890
- object_event 3, EVENT_OBJ_GFX_MAN_5, 0, 5, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route119_WeatherInstitute_1F_EventScript_26FB0F, 892
- object_event 4, EVENT_OBJ_GFX_MAN_5, 0, 2, 11, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 0, 0, 0, Route119_WeatherInstitute_1F_EventScript_26FAC8, 892
- object_event 5, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 14, 11, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route119_WeatherInstitute_1F_EventScript_26FAA4, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_4, 0, 5, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route119_WeatherInstitute_1F_EventScript_26FB0F, 892
+ object_event 4, EVENT_OBJ_GFX_MAN_4, 0, 2, 11, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 0, 0, 0, Route119_WeatherInstitute_1F_EventScript_26FAC8, 892
+ object_event 5, EVENT_OBJ_GFX_NINJA_BOY, 0, 14, 11, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, Route119_WeatherInstitute_1F_EventScript_26FAA4, 0
Route119_WeatherInstitute_1F_MapWarps: @ 853EB98
warp_def 9, 12, 0, 0, MAP_ROUTE119
diff --git a/data/maps/Route119_WeatherInstitute_2F/events.inc b/data/maps/Route119_WeatherInstitute_2F/events.inc
index d3389f615..ae7f8b9fc 100644
--- a/data/maps/Route119_WeatherInstitute_2F/events.inc
+++ b/data/maps/Route119_WeatherInstitute_2F/events.inc
@@ -2,9 +2,9 @@ Route119_WeatherInstitute_2F_EventObjects: @ 853EBF4
object_event 1, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 15, 6, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 4, Route119_WeatherInstitute_2F_EventScript_26FF7F, 890
object_event 2, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 10, 8, 3, MOVEMENT_TYPE_FACE_DOWN_AND_UP, 0, 0, 1, 2, Route119_WeatherInstitute_2F_EventScript_26FF96, 890
object_event 3, EVENT_OBJ_GFX_AQUA_MEMBER_F, 0, 4, 6, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 0, Route119_WeatherInstitute_2F_EventScript_26FFAD, 890
- object_event 4, EVENT_OBJ_GFX_MAN_5, 0, 0, 6, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, 0x0, 893
+ object_event 4, EVENT_OBJ_GFX_MAN_4, 0, 0, 6, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, 0x0, 893
object_event 5, EVENT_OBJ_GFX_SCIENTIST_1, 0, 18, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 2, 1, 0, 0, Route119_WeatherInstitute_2F_EventScript_27018B, 0
- object_event 6, EVENT_OBJ_GFX_MAN_5, 0, 1, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, 0x0, 893
+ object_event 6, EVENT_OBJ_GFX_MAN_4, 0, 1, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, 0x0, 893
object_event 7, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 16, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, 0x0, 992
object_event 8, EVENT_OBJ_GFX_AQUA_MEMBER_F, 0, 19, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 3, Route119_WeatherInstitute_2F_EventScript_26FF68, 890
diff --git a/data/maps/Route120/events.inc b/data/maps/Route120/events.inc
index 97ae62fe6..717e75055 100644
--- a/data/maps/Route120/events.inc
+++ b/data/maps/Route120/events.inc
@@ -9,8 +9,8 @@ Route120_EventObjects: @ 852B3F8
object_event 8, EVENT_OBJ_GFX_BERRY_TREE, 0, 9, 92, 5, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 40, BerryTreeScript, 0
object_event 9, EVENT_OBJ_GFX_BERRY_TREE, 0, 10, 92, 5, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 41, BerryTreeScript, 0
object_event 10, EVENT_OBJ_GFX_BERRY_TREE, 0, 11, 92, 5, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 42, BerryTreeScript, 0
- object_event 11, EVENT_OBJ_GFX_MAN_6, 0, 5, 22, 3, MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT, 0, 0, 1, 3, Route120_EventScript_1F57D7, 0
- object_event 12, EVENT_OBJ_GFX_MAN_6, 0, 32, 14, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 3, Route120_EventScript_1F57EE, 0
+ object_event 11, EVENT_OBJ_GFX_MAN_5, 0, 5, 22, 3, MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT, 0, 0, 1, 3, Route120_EventScript_1F57D7, 0
+ object_event 12, EVENT_OBJ_GFX_MAN_5, 0, 32, 14, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 3, Route120_EventScript_1F57EE, 0
object_event 13, EVENT_OBJ_GFX_CAMPER, 0, 27, 51, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 7, Route120_EventScript_1F5850, 0
object_event 14, EVENT_OBJ_GFX_PICNICKER, 0, 36, 45, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 2, Route120_EventScript_1F5867, 0
object_event 15, EVENT_OBJ_GFX_MANIAC, 0, 19, 80, 5, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 0, 0, 1, 3, Route120_EventScript_1F587E, 0
@@ -22,18 +22,18 @@ Route120_EventObjects: @ 852B3F8
object_event 21, EVENT_OBJ_GFX_CUTTABLE_TREE, 0, 35, 32, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route120_EventScript_2906BB, 17
object_event 22, EVENT_OBJ_GFX_ITEM_BALL, 0, 7, 89, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route120_EventScript_290F55, 1031
object_event 23, EVENT_OBJ_GFX_BEAUTY, 0, 14, 92, 5, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, Route120_EventScript_1F5527, 0
- object_event 24, EVENT_OBJ_GFX_WOMAN_7, 0, 31, 37, 3, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 0, 0, 1, 4, Route120_EventScript_1F58E0, 0
+ object_event 24, EVENT_OBJ_GFX_WOMAN_5, 0, 31, 37, 3, MOVEMENT_TYPE_FACE_UP_AND_LEFT, 0, 0, 1, 4, Route120_EventScript_1F58E0, 0
object_event 25, EVENT_OBJ_GFX_HIKER, 0, 9, 60, 3, MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT, 0, 0, 1, 4, Route120_EventScript_1F58F7, 0
- object_event 26, EVENT_OBJ_GFX_WOMAN_7, 0, 16, 6, 3, MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE, 0, 0, 1, 4, Route120_EventScript_1F590E, 0
- object_event 27, EVENT_OBJ_GFX_WOMAN_7, 0, 18, 34, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 3, Route120_EventScript_1F5925, 0
+ object_event 26, EVENT_OBJ_GFX_WOMAN_5, 0, 16, 6, 3, MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE, 0, 0, 1, 4, Route120_EventScript_1F590E, 0
+ object_event 27, EVENT_OBJ_GFX_WOMAN_5, 0, 18, 34, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 3, Route120_EventScript_1F5925, 0
object_event 28, EVENT_OBJ_GFX_ITEM_BALL, 0, 22, 13, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route120_EventScript_290F6F, 1108
object_event 29, EVENT_OBJ_GFX_ITEM_BALL, 0, 23, 82, 5, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route120_EventScript_290F62, 1107
object_event 30, EVENT_OBJ_GFX_KECLEON_1, 0, 12, 16, 4, MOVEMENT_TYPE_INVISIBLE, 1, 1, 0, 0, Route120_EventScript_1F57BC, 970
object_event 31, EVENT_OBJ_GFX_STEVEN, 0, 13, 15, 4, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, Route120_EventScript_1F5641, 972
object_event 32, EVENT_OBJ_GFX_CUTTABLE_TREE, 0, 20, 1, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route120_EventScript_2906BB, 20
object_event 33, EVENT_OBJ_GFX_CUTTABLE_TREE, 0, 15, 1, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route120_EventScript_2906BB, 18
- object_event 34, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 10, 72, 3, MOVEMENT_TYPE_MOUNTAIN_DISGUISE, 1, 1, 1, 3, Route120_EventScript_1F593C, 0
- object_event 35, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 19, 28, 3, MOVEMENT_TYPE_TREE_DISGUISE, 1, 1, 1, 3, Route120_EventScript_1F5953, 0
+ object_event 34, EVENT_OBJ_GFX_NINJA_BOY, 0, 10, 72, 3, MOVEMENT_TYPE_MOUNTAIN_DISGUISE, 1, 1, 1, 3, Route120_EventScript_1F593C, 0
+ object_event 35, EVENT_OBJ_GFX_NINJA_BOY, 0, 19, 28, 3, MOVEMENT_TYPE_TREE_DISGUISE, 1, 1, 1, 3, Route120_EventScript_1F5953, 0
object_event 36, EVENT_OBJ_GFX_KECLEON_2, 0, 12, 16, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 981
object_event 37, EVENT_OBJ_GFX_KECLEON_1, 0, 20, 11, 3, MOVEMENT_TYPE_INVISIBLE, 1, 1, 0, 0, Route120_EventScript_2722DB, 982
object_event 38, EVENT_OBJ_GFX_KECLEON_1, 0, 27, 2, 3, MOVEMENT_TYPE_INVISIBLE, 1, 1, 0, 0, Route120_EventScript_2722E8, 985
@@ -41,7 +41,7 @@ Route120_EventObjects: @ 852B3F8
object_event 40, EVENT_OBJ_GFX_KECLEON_1, 0, 7, 51, 3, MOVEMENT_TYPE_INVISIBLE, 1, 1, 0, 0, Route120_EventScript_27230F, 988
object_event 41, EVENT_OBJ_GFX_KECLEON_1, 0, 19, 48, 3, MOVEMENT_TYPE_INVISIBLE, 1, 1, 0, 0, Route120_EventScript_272302, 987
object_event 42, EVENT_OBJ_GFX_GIRL_3, 0, 19, 32, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 3, Route120_EventScript_1F5981, 0
- object_event 43, EVENT_OBJ_GFX_MAN_4, 0, 14, 34, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 3, Route120_EventScript_1F596A, 0
+ object_event 43, EVENT_OBJ_GFX_MAN_3, 0, 14, 34, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 3, Route120_EventScript_1F596A, 0
object_event 44, EVENT_OBJ_GFX_ITEM_BALL, 0, 24, 33, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route120_EventScript_290F7C, 1148
Route120_MapWarps: @ 852B818
diff --git a/data/maps/Route121/events.inc b/data/maps/Route121/events.inc
index 03f86df42..b252be7a0 100644
--- a/data/maps/Route121/events.inc
+++ b/data/maps/Route121/events.inc
@@ -1,5 +1,5 @@
Route121_EventObjects: @ 852BA14
- object_event 1, EVENT_OBJ_GFX_WOMAN_4, 0, 29, 14, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, Route121_EventScript_1F5DFD, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 29, 14, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, Route121_EventScript_1F5DFD, 0
object_event 2, EVENT_OBJ_GFX_BERRY_TREE, 0, 14, 2, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 47, BerryTreeScript, 0
object_event 3, EVENT_OBJ_GFX_BERRY_TREE, 0, 15, 2, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 48, BerryTreeScript, 0
object_event 4, EVENT_OBJ_GFX_BERRY_TREE, 0, 16, 2, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 49, BerryTreeScript, 0
@@ -15,17 +15,17 @@ Route121_EventObjects: @ 852BA14
object_event 14, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 31, 7, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, 0x0, 914
object_event 15, EVENT_OBJ_GFX_CUTTABLE_TREE, 0, 32, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route121_EventScript_2906BB, 17
object_event 16, EVENT_OBJ_GFX_CUTTABLE_TREE, 0, 65, 4, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route121_EventScript_2906BB, 18
- object_event 17, EVENT_OBJ_GFX_WOMAN_2, 0, 63, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 4, Route121_EventScript_1F5E74, 0
+ object_event 17, EVENT_OBJ_GFX_POKEFAN_F, 0, 63, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 4, Route121_EventScript_1F5E74, 0
object_event 18, EVENT_OBJ_GFX_GENTLEMAN, 0, 55, 8, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 3, Route121_EventScript_1F5E8B, 0
object_event 19, EVENT_OBJ_GFX_HEX_MANIAC, 0, 11, 11, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 1, 4, Route121_EventScript_1F5EED, 0
object_event 20, EVENT_OBJ_GFX_BEAUTY, 0, 22, 5, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 0, 0, 1, 4, Route121_EventScript_1F5F3A, 0
object_event 21, EVENT_OBJ_GFX_ITEM_BALL, 0, 55, 10, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route121_EventScript_290F89, 1103
object_event 22, EVENT_OBJ_GFX_CUTTABLE_TREE, 0, 26, 12, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route121_EventScript_2906BB, 19
object_event 23, EVENT_OBJ_GFX_MANIAC, 0, 11, 6, 3, MOVEMENT_TYPE_WALK_DOWN_AND_UP, 1, 4, 1, 3, Route121_EventScript_1F5F9C, 0
- object_event 24, EVENT_OBJ_GFX_MAN_5, 0, 59, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 4, Route121_EventScript_1F5FB3, 0
- object_event 25, EVENT_OBJ_GFX_WOMAN_3, 0, 59, 13, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 4, Route121_EventScript_1F5FCA, 0
- object_event 26, EVENT_OBJ_GFX_MAN_4, 0, 65, 9, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 6, Route121_EventScript_1F5FE1, 0
- object_event 27, EVENT_OBJ_GFX_WOMAN_7, 0, 72, 9, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 6, Route121_EventScript_1F5FF8, 0
+ object_event 24, EVENT_OBJ_GFX_MAN_4, 0, 59, 8, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 4, Route121_EventScript_1F5FB3, 0
+ object_event 25, EVENT_OBJ_GFX_WOMAN_2, 0, 59, 13, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 4, Route121_EventScript_1F5FCA, 0
+ object_event 26, EVENT_OBJ_GFX_MAN_3, 0, 65, 9, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 6, Route121_EventScript_1F5FE1, 0
+ object_event 27, EVENT_OBJ_GFX_WOMAN_5, 0, 72, 9, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 6, Route121_EventScript_1F5FF8, 0
object_event 28, EVENT_OBJ_GFX_ITEM_BALL, 0, 60, 10, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route121_EventScript_290F96, 1149
object_event 29, EVENT_OBJ_GFX_ITEM_BALL, 0, 38, 13, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route121_EventScript_290FA3, 1150
diff --git a/data/maps/Route123/events.inc b/data/maps/Route123/events.inc
index 3f17c6c3d..c1a7e57f8 100644
--- a/data/maps/Route123/events.inc
+++ b/data/maps/Route123/events.inc
@@ -6,8 +6,8 @@ Route123_EventObjects: @ 852BDBC
object_event 5, EVENT_OBJ_GFX_BERRY_TREE, 0, 81, 1, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 62, BerryTreeScript, 0
object_event 6, EVENT_OBJ_GFX_BERRY_TREE, 0, 82, 1, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 63, BerryTreeScript, 0
object_event 7, EVENT_OBJ_GFX_BERRY_TREE, 0, 83, 1, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 64, BerryTreeScript, 0
- object_event 8, EVENT_OBJ_GFX_WOMAN_7, 0, 70, 12, 3, MOVEMENT_TYPE_ROTATE_CLOCKWISE, 0, 0, 1, 1, Route123_EventScript_1F61C5, 0
- object_event 9, EVENT_OBJ_GFX_MAN_4, 0, 58, 7, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 0, 0, 1, 2, Route123_EventScript_1F61DC, 0
+ object_event 8, EVENT_OBJ_GFX_WOMAN_5, 0, 70, 12, 3, MOVEMENT_TYPE_ROTATE_CLOCKWISE, 0, 0, 1, 1, Route123_EventScript_1F61C5, 0
+ object_event 9, EVENT_OBJ_GFX_MAN_3, 0, 58, 7, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 0, 0, 1, 2, Route123_EventScript_1F61DC, 0
object_event 10, EVENT_OBJ_GFX_BERRY_TREE, 0, 14, 5, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 65, BerryTreeScript, 0
object_event 11, EVENT_OBJ_GFX_BERRY_TREE, 0, 15, 5, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 72, BerryTreeScript, 0
object_event 12, EVENT_OBJ_GFX_BERRY_TREE, 0, 17, 5, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 73, BerryTreeScript, 0
@@ -24,22 +24,22 @@ Route123_EventObjects: @ 852BDBC
object_event 23, EVENT_OBJ_GFX_BERRY_TREE, 0, 109, 13, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 87, BerryTreeScript, 0
object_event 24, EVENT_OBJ_GFX_BERRY_TREE, 0, 110, 13, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 88, BerryTreeScript, 0
object_event 25, EVENT_OBJ_GFX_BERRY_TREE, 0, 111, 13, 3, MOVEMENT_TYPE_BERRY_TREE_GROWTH, 0, 0, 0, 89, BerryTreeScript, 0
- object_event 26, EVENT_OBJ_GFX_WOMAN_3, 0, 18, 9, 3, MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE, 0, 0, 1, 2, Route123_EventScript_1F61F3, 0
- object_event 27, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 38, 13, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, Route123_EventScript_1F62E9, 0
- object_event 28, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 37, 13, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, Route123_EventScript_1F62CE, 0
+ object_event 26, EVENT_OBJ_GFX_WOMAN_2, 0, 18, 9, 3, MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE, 0, 0, 1, 2, Route123_EventScript_1F61F3, 0
+ object_event 27, EVENT_OBJ_GFX_TWIN, 0, 38, 13, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, Route123_EventScript_1F62E9, 0
+ object_event 28, EVENT_OBJ_GFX_TWIN, 0, 37, 13, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, Route123_EventScript_1F62CE, 0
object_event 29, EVENT_OBJ_GFX_PSYCHIC_M, 0, 138, 12, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 7, Route123_EventScript_1F620A, 0
object_event 30, EVENT_OBJ_GFX_LASS, 0, 49, 16, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, Route123_EventScript_1F626C, 0
object_event 31, EVENT_OBJ_GFX_HEX_MANIAC, 0, 87, 12, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 4, Route123_EventScript_1F6304, 0
object_event 32, EVENT_OBJ_GFX_ITEM_BALL, 0, 27, 18, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route123_EventScript_290FBD, 1104
object_event 33, EVENT_OBJ_GFX_ITEM_BALL, 0, 75, 9, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route123_EventScript_290FCA, 1109
- object_event 34, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 138, 14, 3, MOVEMENT_TYPE_TREE_DISGUISE, 1, 1, 1, 1, Route123_EventScript_1F6377, 0
- object_event 35, EVENT_OBJ_GFX_WOMAN_3, 0, 138, 16, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 1, Route123_EventScript_1F6360, 0
+ object_event 34, EVENT_OBJ_GFX_NINJA_BOY, 0, 138, 14, 3, MOVEMENT_TYPE_TREE_DISGUISE, 1, 1, 1, 1, Route123_EventScript_1F6377, 0
+ object_event 35, EVENT_OBJ_GFX_WOMAN_2, 0, 138, 16, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 1, Route123_EventScript_1F6360, 0
object_event 36, EVENT_OBJ_GFX_MANIAC, 0, 87, 17, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 4, Route123_EventScript_1F6349, 0
- object_event 37, EVENT_OBJ_GFX_MAN_6, 0, 66, 16, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 2, Route123_EventScript_1F63BC, 0
- object_event 38, EVENT_OBJ_GFX_MAN_6, 0, 66, 19, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 2, Route123_EventScript_1F6332, 0
- object_event 39, EVENT_OBJ_GFX_OLD_MAN_1, 0, 49, 19, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 2, Route123_EventScript_1F631B, 0
+ object_event 37, EVENT_OBJ_GFX_MAN_5, 0, 66, 16, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 2, Route123_EventScript_1F63BC, 0
+ object_event 38, EVENT_OBJ_GFX_MAN_5, 0, 66, 19, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 2, Route123_EventScript_1F6332, 0
+ object_event 39, EVENT_OBJ_GFX_EXPERT_M, 0, 49, 19, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 2, Route123_EventScript_1F631B, 0
object_event 40, EVENT_OBJ_GFX_ITEM_BALL, 0, 43, 15, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route123_EventScript_290FD7, 1152
- object_event 41, EVENT_OBJ_GFX_WOMAN_7, 0, 14, 16, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 3, Route123_EventScript_1F638E, 0
+ object_event 41, EVENT_OBJ_GFX_WOMAN_5, 0, 14, 16, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 3, Route123_EventScript_1F638E, 0
object_event 42, EVENT_OBJ_GFX_YOUNGSTER, 0, 14, 12, 3, MOVEMENT_TYPE_WALK_DOWN_AND_UP, 1, 3, 1, 3, Route123_EventScript_1F63A5, 0
object_event 43, EVENT_OBJ_GFX_ITEM_BALL, 0, 57, 16, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route123_EventScript_290FE4, 1153
diff --git a/data/maps/Route123_BerryMastersHouse/events.inc b/data/maps/Route123_BerryMastersHouse/events.inc
index c848f341b..3462054cb 100644
--- a/data/maps/Route123_BerryMastersHouse/events.inc
+++ b/data/maps/Route123_BerryMastersHouse/events.inc
@@ -1,6 +1,6 @@
Route123_BerryMastersHouse_EventObjects: @ 853EACC
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_1, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route123_BerryMastersHouse_EventScript_26F845, 0
- object_event 2, EVENT_OBJ_GFX_OLD_WOMAN_2, 0, 7, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route123_BerryMastersHouse_EventScript_26F8C0, 0
+ object_event 1, EVENT_OBJ_GFX_EXPERT_M, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route123_BerryMastersHouse_EventScript_26F845, 0
+ object_event 2, EVENT_OBJ_GFX_OLD_WOMAN, 0, 7, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, Route123_BerryMastersHouse_EventScript_26F8C0, 0
Route123_BerryMastersHouse_MapWarps: @ 853EAFC
warp_def 3, 7, 0, 0, MAP_ROUTE123
diff --git a/data/maps/Route124_DivingTreasureHuntersHouse/events.inc b/data/maps/Route124_DivingTreasureHuntersHouse/events.inc
index f76468efe..30dffed32 100644
--- a/data/maps/Route124_DivingTreasureHuntersHouse/events.inc
+++ b/data/maps/Route124_DivingTreasureHuntersHouse/events.inc
@@ -1,5 +1,5 @@
Route124_DivingTreasureHuntersHouse_EventObjects: @ 853ED9C
- object_event 1, EVENT_OBJ_GFX_MAN_6, 0, 5, 4, 0, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_270A32, 0
+ object_event 1, EVENT_OBJ_GFX_MAN_5, 0, 5, 4, 0, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_270A32, 0
Route124_DivingTreasureHuntersHouse_MapWarps: @ 853EDB4
warp_def 3, 8, 0, 0, MAP_ROUTE124
diff --git a/data/maps/Route125/events.inc b/data/maps/Route125/events.inc
index b8ced006c..2a408aec6 100644
--- a/data/maps/Route125/events.inc
+++ b/data/maps/Route125/events.inc
@@ -6,8 +6,8 @@ Route125_EventObjects: @ 852C50C
object_event 5, EVENT_OBJ_GFX_SAILOR, 0, 21, 30, 3, MOVEMENT_TYPE_FACE_DOWN_AND_UP, 0, 0, 1, 2, Route125_EventScript_1F6800, 0
object_event 6, EVENT_OBJ_GFX_LASS, 0, 17, 19, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, Route125_EventScript_1F6862, 0
object_event 7, EVENT_OBJ_GFX_LASS, 0, 18, 19, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 1, Route125_EventScript_1F687D, 0
- object_event 8, EVENT_OBJ_GFX_MAN_6, 0, 43, 19, 3, MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT, 2, 1, 1, 3, Route125_EventScript_1F6898, 0
- object_event 9, EVENT_OBJ_GFX_OLD_MAN_1, 0, 48, 19, 3, MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT, 2, 1, 1, 3, Route125_EventScript_1F68AF, 0
+ object_event 8, EVENT_OBJ_GFX_MAN_5, 0, 43, 19, 3, MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT, 2, 1, 1, 3, Route125_EventScript_1F6898, 0
+ object_event 9, EVENT_OBJ_GFX_EXPERT_M, 0, 48, 19, 3, MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT, 2, 1, 1, 3, Route125_EventScript_1F68AF, 0
object_event 10, EVENT_OBJ_GFX_ITEM_BALL, 0, 46, 17, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route125_EventScript_291018, 1154
Route125_MapWarps: @ 852C5FC
diff --git a/data/maps/Route127/events.inc b/data/maps/Route127/events.inc
index 6a7c07b9b..bb434202b 100644
--- a/data/maps/Route127/events.inc
+++ b/data/maps/Route127/events.inc
@@ -6,9 +6,9 @@ Route127_EventObjects: @ 852C734
object_event 5, EVENT_OBJ_GFX_FISHERMAN, 0, 42, 21, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 0, Route127_EventScript_1F6A63, 0
object_event 6, EVENT_OBJ_GFX_FISHERMAN, 0, 64, 19, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 0, Route127_EventScript_1F6A91, 0
object_event 7, EVENT_OBJ_GFX_FISHERMAN, 0, 54, 14, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 0, Route127_EventScript_1F6A7A, 0
- object_event 8, EVENT_OBJ_GFX_MAN_6, 0, 15, 23, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 2, Route127_EventScript_1F6AA8, 0
+ object_event 8, EVENT_OBJ_GFX_MAN_5, 0, 15, 23, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 2, Route127_EventScript_1F6AA8, 0
object_event 9, EVENT_OBJ_GFX_BLACK_BELT, 0, 63, 63, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 1, 3, Route127_EventScript_1F6AD6, 0
- object_event 10, EVENT_OBJ_GFX_WOMAN_7, 0, 12, 23, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 2, Route127_EventScript_1F6ABF, 0
+ object_event 10, EVENT_OBJ_GFX_WOMAN_5, 0, 12, 23, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 2, Route127_EventScript_1F6ABF, 0
object_event 11, EVENT_OBJ_GFX_ITEM_BALL, 0, 13, 20, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route127_EventScript_29104C, 1155
Route127_MapBGEvents: @ 852C83C
diff --git a/data/maps/Route128/events.inc b/data/maps/Route128/events.inc
index 02d28acfd..5c0b82cee 100644
--- a/data/maps/Route128/events.inc
+++ b/data/maps/Route128/events.inc
@@ -5,8 +5,8 @@ Route128_EventObjects: @ 852C88C
object_event 4, EVENT_OBJ_GFX_ARCHIE, 0, 37, 22, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, 0x0, 944
object_event 5, EVENT_OBJ_GFX_MAXIE, 0, 38, 21, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, 0x0, 945
object_event 6, EVENT_OBJ_GFX_FISHERMAN, 0, 63, 28, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 0, Route128_EventScript_1F6DB0, 0
- object_event 7, EVENT_OBJ_GFX_MAN_4, 0, 47, 9, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 3, Route128_EventScript_1F6D99, 0
- object_event 8, EVENT_OBJ_GFX_WOMAN_7, 0, 24, 8, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 3, Route128_EventScript_1F6D82, 0
+ object_event 7, EVENT_OBJ_GFX_MAN_3, 0, 47, 9, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 3, Route128_EventScript_1F6D99, 0
+ object_event 8, EVENT_OBJ_GFX_WOMAN_5, 0, 24, 8, 3, MOVEMENT_TYPE_FACE_DOWN_AND_LEFT, 1, 1, 1, 3, Route128_EventScript_1F6D82, 0
object_event 9, EVENT_OBJ_GFX_SWIMMER_F, 0, 101, 29, 1, MOVEMENT_TYPE_WALK_UP_AND_DOWN, 1, 3, 1, 4, Route128_EventScript_1F6DDE, 0
object_event 10, EVENT_OBJ_GFX_SWIMMER_M, 0, 101, 22, 1, MOVEMENT_TYPE_WALK_DOWN_AND_UP, 1, 3, 1, 4, Route128_EventScript_1F6DC7, 0
diff --git a/data/maps/Route132/events.inc b/data/maps/Route132/events.inc
index 7d62fb306..817d7b038 100644
--- a/data/maps/Route132/events.inc
+++ b/data/maps/Route132/events.inc
@@ -4,10 +4,10 @@ Route132_EventObjects: @ 852CB90
object_event 3, EVENT_OBJ_GFX_ITEM_BALL, 0, 10, 11, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route132_EventScript_291059, 1036
object_event 4, EVENT_OBJ_GFX_BLACK_BELT, 0, 9, 15, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 4, Route132_EventScript_1F752F, 0
object_event 5, EVENT_OBJ_GFX_FISHERMAN, 0, 49, 28, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 1, Route132_EventScript_1F7518, 0
- object_event 6, EVENT_OBJ_GFX_OLD_MAN_1, 0, 33, 26, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 4, Route132_EventScript_1F7546, 0
- object_event 7, EVENT_OBJ_GFX_WOMAN_7, 0, 33, 31, 3, MOVEMENT_TYPE_WALK_UP_AND_DOWN, 1, 4, 1, 4, Route132_EventScript_1F755D, 0
- object_event 8, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 21, 30, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 4, Route132_EventScript_1F758B, 0
- object_event 9, EVENT_OBJ_GFX_MAN_4, 0, 21, 25, 3, MOVEMENT_TYPE_WALK_DOWN_AND_UP, 1, 4, 1, 4, Route132_EventScript_1F7574, 0
+ object_event 6, EVENT_OBJ_GFX_EXPERT_M, 0, 33, 26, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 4, Route132_EventScript_1F7546, 0
+ object_event 7, EVENT_OBJ_GFX_WOMAN_5, 0, 33, 31, 3, MOVEMENT_TYPE_WALK_UP_AND_DOWN, 1, 4, 1, 4, Route132_EventScript_1F755D, 0
+ object_event 8, EVENT_OBJ_GFX_EXPERT_F, 0, 21, 30, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 4, Route132_EventScript_1F758B, 0
+ object_event 9, EVENT_OBJ_GFX_MAN_3, 0, 21, 25, 3, MOVEMENT_TYPE_WALK_DOWN_AND_UP, 1, 4, 1, 4, Route132_EventScript_1F7574, 0
object_event 10, EVENT_OBJ_GFX_ITEM_BALL, 0, 20, 27, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route132_EventScript_291066, 1156
Route132_MapEvents:: @ 852CC80
diff --git a/data/maps/Route133/events.inc b/data/maps/Route133/events.inc
index ba1ac2ac0..b1cbb4bb1 100644
--- a/data/maps/Route133/events.inc
+++ b/data/maps/Route133/events.inc
@@ -4,10 +4,10 @@ Route133_EventObjects: @ 852CC94
object_event 3, EVENT_OBJ_GFX_SWIMMER_F, 0, 68, 28, 1, MOVEMENT_TYPE_WALK_DOWN_AND_UP, 0, 2, 1, 3, Route133_EventScript_1F75BA, 0
object_event 4, EVENT_OBJ_GFX_ITEM_BALL, 0, 53, 12, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route133_EventScript_291073, 1037
object_event 5, EVENT_OBJ_GFX_ITEM_BALL, 0, 8, 10, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, Route133_EventScript_291080, 1038
- object_event 6, EVENT_OBJ_GFX_MAN_6, 0, 7, 14, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 2, Route133_EventScript_1F75FF, 0
- object_event 7, EVENT_OBJ_GFX_MAN_4, 0, 37, 15, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 0, 0, 1, 4, Route133_EventScript_1F75E8, 0
- object_event 8, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 56, 11, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 3, Route133_EventScript_1F7616, 0
- object_event 9, EVENT_OBJ_GFX_OLD_MAN_1, 0, 56, 15, 3, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 1, 1, 1, 3, Route133_EventScript_1F762D, 0
+ object_event 6, EVENT_OBJ_GFX_MAN_5, 0, 7, 14, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 2, Route133_EventScript_1F75FF, 0
+ object_event 7, EVENT_OBJ_GFX_MAN_3, 0, 37, 15, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 0, 0, 1, 4, Route133_EventScript_1F75E8, 0
+ object_event 8, EVENT_OBJ_GFX_EXPERT_F, 0, 56, 11, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 3, Route133_EventScript_1F7616, 0
+ object_event 9, EVENT_OBJ_GFX_EXPERT_M, 0, 56, 15, 3, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 1, 1, 1, 3, Route133_EventScript_1F762D, 0
object_event 10, EVENT_OBJ_GFX_ITEM_BALL, 0, 48, 28, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, Route133_EventScript_29108D, 1157
Route133_MapEvents:: @ 852CD84
diff --git a/data/maps/Route134/events.inc b/data/maps/Route134/events.inc
index 03339b081..4201b8068 100644
--- a/data/maps/Route134/events.inc
+++ b/data/maps/Route134/events.inc
@@ -1,10 +1,10 @@
Route134_EventObjects: @ 852CD98
object_event 1, EVENT_OBJ_GFX_SWIMMER_M, 0, 49, 9, 1, MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT, 3, 5, 1, 2, Route134_EventScript_1F7653, 0
object_event 2, EVENT_OBJ_GFX_SWIMMER_F, 0, 58, 7, 1, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 1, 3, Route134_EventScript_1F766A, 0
- object_event 3, EVENT_OBJ_GFX_MAN_4, 0, 41, 23, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 2, Route134_EventScript_1F7698, 0
- object_event 4, EVENT_OBJ_GFX_MAN_6, 0, 24, 23, 3, MOVEMENT_TYPE_WALK_DOWN_AND_UP, 0, 3, 1, 6, Route134_EventScript_1F7681, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_3, 0, 41, 23, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 2, Route134_EventScript_1F7698, 0
+ object_event 4, EVENT_OBJ_GFX_MAN_5, 0, 24, 23, 3, MOVEMENT_TYPE_WALK_DOWN_AND_UP, 0, 3, 1, 6, Route134_EventScript_1F7681, 0
object_event 5, EVENT_OBJ_GFX_BLACK_BELT, 0, 49, 16, 3, MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT, 6, 0, 1, 5, Route134_EventScript_1F76AF, 0
- object_event 6, EVENT_OBJ_GFX_WOMAN_7, 0, 43, 23, 1, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 2, Route134_EventScript_1F76F4, 0
+ object_event 6, EVENT_OBJ_GFX_WOMAN_5, 0, 43, 23, 1, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 2, Route134_EventScript_1F76F4, 0
object_event 7, EVENT_OBJ_GFX_SAILOR, 0, 24, 30, 3, MOVEMENT_TYPE_WALK_UP_AND_DOWN, 0, 3, 1, 6, Route134_EventScript_1F770B, 0
object_event 8, EVENT_OBJ_GFX_GIRL_3, 0, 50, 16, 3, MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT, 6, 0, 1, 5, Route134_EventScript_1F76DD, 0
object_event 9, EVENT_OBJ_GFX_SAILOR, 0, 63, 14, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 1, 1, 1, 3, Route134_EventScript_1F76C6, 0
diff --git a/data/maps/RustboroCity/events.inc b/data/maps/RustboroCity/events.inc
index 4471d06e0..2f14304ba 100644
--- a/data/maps/RustboroCity/events.inc
+++ b/data/maps/RustboroCity/events.inc
@@ -1,17 +1,17 @@
RustboroCity_EventObjects: @ 85267E0
- object_event 1, EVENT_OBJ_GFX_WOMAN_7, 0, 22, 34, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, RustboroCity_EventScript_1E088A, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_5, 0, 22, 34, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, RustboroCity_EventScript_1E088A, 0
object_event 2, EVENT_OBJ_GFX_FAT_MAN, 0, 19, 13, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, RustboroCity_EventScript_1E085F, 0
- object_event 3, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 25, 37, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, RustboroCity_EventScript_1E08DA, 0
- object_event 4, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 21, 46, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, RustboroCity_EventScript_1E08D1, 0
+ object_event 3, EVENT_OBJ_GFX_NINJA_BOY, 0, 25, 37, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, RustboroCity_EventScript_1E08DA, 0
+ object_event 4, EVENT_OBJ_GFX_TWIN, 0, 21, 46, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, RustboroCity_EventScript_1E08D1, 0
object_event 5, EVENT_OBJ_GFX_BOY_2, 0, 12, 45, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, RustboroCity_EventScript_1E08B2, 0
- object_event 6, EVENT_OBJ_GFX_MAN_4, 0, 26, 23, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, RustboroCity_EventScript_1E0893, 0
- object_event 7, EVENT_OBJ_GFX_LITTLE_BOY_2, 0, 24, 51, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, RustboroCity_EventScript_1E0922, 0
- object_event 8, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 25, 51, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, RustboroCity_EventScript_1E0938, 0
+ object_event 6, EVENT_OBJ_GFX_MAN_3, 0, 26, 23, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, RustboroCity_EventScript_1E0893, 0
+ object_event 7, EVENT_OBJ_GFX_LITTLE_BOY, 0, 24, 51, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, RustboroCity_EventScript_1E0922, 0
+ object_event 8, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 25, 51, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, RustboroCity_EventScript_1E0938, 0
object_event 9, EVENT_OBJ_GFX_MAN_2, 0, 30, 10, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, RustboroCity_EventScript_1E0ADD, 732
object_event 10, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 13, 21, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, 0x0, 731
- object_event 11, EVENT_OBJ_GFX_MAN_7, 0, 13, 34, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, RustboroCity_EventScript_1E087E, 0
+ object_event 11, EVENT_OBJ_GFX_DEVON_EMPLOYEE, 0, 13, 34, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, RustboroCity_EventScript_1E087E, 0
object_event 12, EVENT_OBJ_GFX_ITEM_BALL, 0, 36, 51, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, RustboroCity_EventScript_2910DB, 1041
- object_event 13, EVENT_OBJ_GFX_MAN_5, 0, 19, 27, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 1, 0, 0, RustboroCity_EventScript_1E094E, 0
+ object_event 13, EVENT_OBJ_GFX_MAN_4, 0, 19, 27, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 1, 0, 0, RustboroCity_EventScript_1E094E, 0
object_event 14, EVENT_OBJ_GFX_HIPSTER, 0, 16, 50, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, RustboroCity_EventScript_1E0DB8, 814
object_event 15, EVENT_OBJ_GFX_SCIENTIST_1, 0, 11, 15, 0, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, 0x0, 844
object_event 16, EVENT_OBJ_GFX_BOY_1, 0, 31, 36, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 1, 0, 0, RustboroCity_EventScript_1E1236, 0
diff --git a/data/maps/RustboroCity_CuttersHouse/events.inc b/data/maps/RustboroCity_CuttersHouse/events.inc
index 6657c9305..71e57a143 100644
--- a/data/maps/RustboroCity_CuttersHouse/events.inc
+++ b/data/maps/RustboroCity_CuttersHouse/events.inc
@@ -1,5 +1,5 @@
RustboroCity_CuttersHouse_EventObjects: @ 8530A1C
- object_event 1, EVENT_OBJ_GFX_MAN_3, 0, 7, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, RustboroCity_CuttersHouse_EventScript_215BD4, 0
+ object_event 1, EVENT_OBJ_GFX_POKEFAN_M, 0, 7, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, RustboroCity_CuttersHouse_EventScript_215BD4, 0
object_event 2, EVENT_OBJ_GFX_LASS, 0, 9, 2, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, RustboroCity_CuttersHouse_EventScript_215C0A, 0
RustboroCity_CuttersHouse_MapWarps: @ 8530A4C
diff --git a/data/maps/RustboroCity_DevonCorp_1F/events.inc b/data/maps/RustboroCity_DevonCorp_1F/events.inc
index baef1be49..f0d54df77 100644
--- a/data/maps/RustboroCity_DevonCorp_1F/events.inc
+++ b/data/maps/RustboroCity_DevonCorp_1F/events.inc
@@ -1,7 +1,7 @@
RustboroCity_DevonCorp_1F_EventObjects: @ 853037C
- object_event 1, EVENT_OBJ_GFX_MAN_7, 0, 2, 6, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, RustboroCity_DevonCorp_1F_EventScript_211261, 0
- object_event 2, EVENT_OBJ_GFX_MAN_7, 0, 15, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 2, 1, 0, 0, RustboroCity_DevonCorp_1F_EventScript_211293, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_4, 0, 5, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, RustboroCity_DevonCorp_1F_EventScript_2112CE, 0
+ object_event 1, EVENT_OBJ_GFX_DEVON_EMPLOYEE, 0, 2, 6, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, RustboroCity_DevonCorp_1F_EventScript_211261, 0
+ object_event 2, EVENT_OBJ_GFX_DEVON_EMPLOYEE, 0, 15, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 2, 1, 0, 0, RustboroCity_DevonCorp_1F_EventScript_211293, 0
+ object_event 3, EVENT_OBJ_GFX_WOMAN_3, 0, 5, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, RustboroCity_DevonCorp_1F_EventScript_2112CE, 0
RustboroCity_DevonCorp_1F_MapWarps: @ 85303C4
warp_def 5, 8, 0, 5, MAP_RUSTBORO_CITY
diff --git a/data/maps/RustboroCity_Flat1_1F/events.inc b/data/maps/RustboroCity_Flat1_1F/events.inc
index d52b495eb..b606a30db 100644
--- a/data/maps/RustboroCity_Flat1_1F/events.inc
+++ b/data/maps/RustboroCity_Flat1_1F/events.inc
@@ -1,6 +1,6 @@
RustboroCity_Flat1_1F_EventObjects: @ 8530890
- object_event 1, EVENT_OBJ_GFX_MAN_4, 0, 9, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, RustboroCity_Flat1_1F_EventScript_2150CE, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_7, 0, 12, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, RustboroCity_Flat1_1F_EventScript_2150D7, 0
+ object_event 1, EVENT_OBJ_GFX_MAN_3, 0, 9, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, RustboroCity_Flat1_1F_EventScript_2150CE, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_5, 0, 12, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, RustboroCity_Flat1_1F_EventScript_2150D7, 0
RustboroCity_Flat1_1F_MapWarps: @ 85308C0
warp_def 6, 7, 0, 1, MAP_RUSTBORO_CITY
diff --git a/data/maps/RustboroCity_Flat1_2F/events.inc b/data/maps/RustboroCity_Flat1_2F/events.inc
index 13ebbbc0d..9d3aace61 100644
--- a/data/maps/RustboroCity_Flat1_2F/events.inc
+++ b/data/maps/RustboroCity_Flat1_2F/events.inc
@@ -1,6 +1,6 @@
RustboroCity_Flat1_2F_EventObjects: @ 85308EC
- object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 4, 6, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 3, 1, 0, 0, RustboroCity_Flat1_2F_EventScript_21523D, 0
- object_event 2, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 9, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
+ object_event 1, EVENT_OBJ_GFX_POKEFAN_F, 0, 4, 6, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 3, 1, 0, 0, RustboroCity_Flat1_2F_EventScript_21523D, 0
+ object_event 2, EVENT_OBJ_GFX_TWIN, 0, 9, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
object_event 3, EVENT_OBJ_GFX_SKITTY_DOLL, 0, 9, 4, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, RustboroCity_Flat1_2F_EventScript_215246, 0
object_event 4, EVENT_OBJ_GFX_TREECKO_DOLL, 0, 10, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, RustboroCity_Flat1_2F_EventScript_215246, 0
object_event 5, EVENT_OBJ_GFX_TORCHIC_DOLL, 0, 10, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, RustboroCity_Flat1_2F_EventScript_215246, 0
diff --git a/data/maps/RustboroCity_Flat2_1F/events.inc b/data/maps/RustboroCity_Flat2_1F/events.inc
index 16c79649a..c35574261 100644
--- a/data/maps/RustboroCity_Flat2_1F/events.inc
+++ b/data/maps/RustboroCity_Flat2_1F/events.inc
@@ -1,6 +1,6 @@
RustboroCity_Flat2_1F_EventObjects: @ 8530AC4
object_event 1, EVENT_OBJ_GFX_SKITTY, 0, 11, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, RustboroCity_Flat2_1F_EventScript_215F80, 0
- object_event 2, EVENT_OBJ_GFX_OLD_WOMAN_2, 0, 8, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, RustboroCity_Flat2_1F_EventScript_215F77, 0
+ object_event 2, EVENT_OBJ_GFX_OLD_WOMAN, 0, 8, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, RustboroCity_Flat2_1F_EventScript_215F77, 0
RustboroCity_Flat2_1F_MapWarps: @ 8530AF4
warp_def 2, 8, 0, 10, MAP_RUSTBORO_CITY
diff --git a/data/maps/RustboroCity_Flat2_2F/events.inc b/data/maps/RustboroCity_Flat2_2F/events.inc
index 559c6e6e0..60423b5d6 100644
--- a/data/maps/RustboroCity_Flat2_2F/events.inc
+++ b/data/maps/RustboroCity_Flat2_2F/events.inc
@@ -1,6 +1,6 @@
RustboroCity_Flat2_2F_EventObjects: @ 8530B20
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_2, 0, 11, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, RustboroCity_Flat2_2F_EventScript_215FD8, 0
- object_event 2, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 7, 3, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 2, 0, 0, 0, RustboroCity_Flat2_2F_EventScript_215FE1, 0
+ object_event 1, EVENT_OBJ_GFX_OLD_MAN, 0, 11, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, RustboroCity_Flat2_2F_EventScript_215FD8, 0
+ object_event 2, EVENT_OBJ_GFX_NINJA_BOY, 0, 7, 3, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 2, 0, 0, 0, RustboroCity_Flat2_2F_EventScript_215FE1, 0
RustboroCity_Flat2_2F_MapWarps: @ 8530B50
warp_def 3, 1, 0, 2, MAP_RUSTBORO_CITY_FLAT2_1F
diff --git a/data/maps/RustboroCity_Flat2_3F/events.inc b/data/maps/RustboroCity_Flat2_3F/events.inc
index 71d03ddb1..9ab4727f3 100644
--- a/data/maps/RustboroCity_Flat2_3F/events.inc
+++ b/data/maps/RustboroCity_Flat2_3F/events.inc
@@ -1,5 +1,5 @@
RustboroCity_Flat2_3F_EventObjects: @ 8530B74
- object_event 1, EVENT_OBJ_GFX_MAN_7, 0, 7, 3, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 2, 0, 0, 0, RustboroCity_Flat2_3F_EventScript_216117, 0
+ object_event 1, EVENT_OBJ_GFX_DEVON_EMPLOYEE, 0, 7, 3, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 2, 0, 0, 0, RustboroCity_Flat2_3F_EventScript_216117, 0
object_event 2, EVENT_OBJ_GFX_WOMAN_1, 0, 12, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, RustboroCity_Flat2_3F_EventScript_216120, 0
RustboroCity_Flat2_3F_MapWarps: @ 8530BA4
diff --git a/data/maps/RustboroCity_House2/events.inc b/data/maps/RustboroCity_House2/events.inc
index 5c5ab205e..2f8d4b2bf 100644
--- a/data/maps/RustboroCity_House2/events.inc
+++ b/data/maps/RustboroCity_House2/events.inc
@@ -1,6 +1,6 @@
RustboroCity_House2_EventObjects: @ 8530A70
- object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, RustboroCity_House2_EventScript_215EB4, 0
- object_event 2, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 4, 5, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, RustboroCity_House2_EventScript_215EBD, 0
+ object_event 1, EVENT_OBJ_GFX_POKEFAN_F, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, RustboroCity_House2_EventScript_215EB4, 0
+ object_event 2, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 4, 5, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, RustboroCity_House2_EventScript_215EBD, 0
RustboroCity_House2_MapWarps: @ 8530AA0
warp_def 5, 8, 0, 9, MAP_RUSTBORO_CITY
diff --git a/data/maps/RustboroCity_House3/events.inc b/data/maps/RustboroCity_House3/events.inc
index 2fc6a6233..95198b27c 100644
--- a/data/maps/RustboroCity_House3/events.inc
+++ b/data/maps/RustboroCity_House3/events.inc
@@ -1,6 +1,6 @@
RustboroCity_House3_EventObjects: @ 8530BC0
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_2, 0, 4, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, RustboroCity_House3_EventScript_216191, 0
- object_event 2, EVENT_OBJ_GFX_OLD_WOMAN_2, 0, 7, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, RustboroCity_House3_EventScript_21619A, 0
+ object_event 1, EVENT_OBJ_GFX_OLD_MAN, 0, 4, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, RustboroCity_House3_EventScript_216191, 0
+ object_event 2, EVENT_OBJ_GFX_OLD_WOMAN, 0, 7, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, RustboroCity_House3_EventScript_21619A, 0
object_event 3, EVENT_OBJ_GFX_PIKACHU, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, RustboroCity_House3_EventScript_2161A3, 0
RustboroCity_House3_MapWarps: @ 8530C08
diff --git a/data/maps/RustboroCity_Mart/events.inc b/data/maps/RustboroCity_Mart/events.inc
index 683ed5ff7..8d65c367d 100644
--- a/data/maps/RustboroCity_Mart/events.inc
+++ b/data/maps/RustboroCity_Mart/events.inc
@@ -1,7 +1,7 @@
RustboroCity_Mart_EventObjects: @ 853080C
object_event 1, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, RustboroCity_Mart_EventScript_214F06, 0
object_event 2, EVENT_OBJ_GFX_BOY_1, 0, 2, 5, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, RustboroCity_Mart_EventScript_214F7D, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_2, 0, 8, 4, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, RustboroCity_Mart_EventScript_214F74, 0
+ object_event 3, EVENT_OBJ_GFX_POKEFAN_F, 0, 8, 4, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, RustboroCity_Mart_EventScript_214F74, 0
object_event 4, EVENT_OBJ_GFX_BUG_CATCHER, 0, 8, 2, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, RustboroCity_Mart_EventScript_214F86, 0
RustboroCity_Mart_MapWarps: @ 853086C
diff --git a/data/maps/RustboroCity_PokemonSchool/events.inc b/data/maps/RustboroCity_PokemonSchool/events.inc
index 84548b44a..d32f8ad46 100644
--- a/data/maps/RustboroCity_PokemonSchool/events.inc
+++ b/data/maps/RustboroCity_PokemonSchool/events.inc
@@ -1,7 +1,7 @@
RustboroCity_PokemonSchool_EventObjects: @ 85305EC
- object_event 1, EVENT_OBJ_GFX_BOY_5, 0, 8, 6, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, RustboroCity_PokemonSchool_EventScript_213F5F, 0
- object_event 2, EVENT_OBJ_GFX_BOY_5, 0, 9, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, RustboroCity_PokemonSchool_EventScript_213F68, 0
- object_event 3, EVENT_OBJ_GFX_BOY_4, 0, 3, 8, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, RustboroCity_PokemonSchool_EventScript_213F71, 0
+ object_event 1, EVENT_OBJ_GFX_GAMEBOY_KID, 0, 8, 6, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, RustboroCity_PokemonSchool_EventScript_213F5F, 0
+ object_event 2, EVENT_OBJ_GFX_GAMEBOY_KID, 0, 9, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, RustboroCity_PokemonSchool_EventScript_213F68, 0
+ object_event 3, EVENT_OBJ_GFX_RICH_BOY, 0, 3, 8, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, RustboroCity_PokemonSchool_EventScript_213F71, 0
object_event 4, EVENT_OBJ_GFX_LASS, 0, 10, 8, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, RustboroCity_PokemonSchool_EventScript_213F7A, 0
object_event 5, EVENT_OBJ_GFX_SCHOOL_KID_M, 0, 3, 6, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, RustboroCity_PokemonSchool_EventScript_213F83, 0
object_event 6, EVENT_OBJ_GFX_GENTLEMAN, 0, 5, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, RustboroCity_PokemonSchool_EventScript_213F95, 0
diff --git a/data/maps/RusturfTunnel/events.inc b/data/maps/RusturfTunnel/events.inc
index 77b6f7a61..5d3f3c8be 100644
--- a/data/maps/RusturfTunnel/events.inc
+++ b/data/maps/RusturfTunnel/events.inc
@@ -3,12 +3,12 @@ RusturfTunnel_EventObjects: @ 85341C4
object_event 2, EVENT_OBJ_GFX_BREAKABLE_ROCK, 0, 24, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, RusturfTunnel_EventScript_2907A6, 931
object_event 3, EVENT_OBJ_GFX_ITEM_BALL, 0, 3, 1, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, RusturfTunnel_EventScript_291136, 1048
object_event 4, EVENT_OBJ_GFX_ITEM_BALL, 0, 30, 2, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, RusturfTunnel_EventScript_291143, 1049
- object_event 5, EVENT_OBJ_GFX_OLD_MAN_1, 0, 5, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, 0x0, 879
+ object_event 5, EVENT_OBJ_GFX_EXPERT_M, 0, 5, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, 0x0, 879
object_event 6, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 14, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, RusturfTunnel_EventScript_22D0C2, 878
object_event 7, EVENT_OBJ_GFX_WINGULL, 0, 14, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, RusturfTunnel_EventScript_22D0AF, 880
object_event 8, EVENT_OBJ_GFX_BREAKABLE_ROCK, 0, 24, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, RusturfTunnel_EventScript_2907A6, 932
object_event 9, EVENT_OBJ_GFX_HIKER, 0, 32, 13, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 3, RusturfTunnel_EventScript_22D1B1, 0
- object_event 10, EVENT_OBJ_GFX_WOMAN_3, 0, 25, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, RusturfTunnel_EventScript_22CE5F, 983
+ object_event 10, EVENT_OBJ_GFX_WOMAN_2, 0, 25, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, RusturfTunnel_EventScript_22CE5F, 983
RusturfTunnel_MapWarps: @ 85342B4
warp_def 4, 10, 3, 0, MAP_ROUTE116
diff --git a/data/maps/SSTidalCorridor/events.inc b/data/maps/SSTidalCorridor/events.inc
index 8494f36e5..6ed455cad 100644
--- a/data/maps/SSTidalCorridor/events.inc
+++ b/data/maps/SSTidalCorridor/events.inc
@@ -1,7 +1,7 @@
SSTidalCorridor_EventObjects: @ 853A158
object_event 1, EVENT_OBJ_GFX_SAILOR, 0, 1, 11, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, SSTidalCorridor_EventScript_23C119, 0
object_event 2, EVENT_OBJ_GFX_SAILOR, 0, 16, 7, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 2, 0, 0, SSTidalCorridor_EventScript_23C1A3, 0
- object_event 3, EVENT_OBJ_GFX_OLD_MAN_1, 0, 9, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, SSTidalCorridor_EventScript_23C0D9, 950
+ object_event 3, EVENT_OBJ_GFX_EXPERT_M, 0, 9, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, SSTidalCorridor_EventScript_23C0D9, 950
object_event 4, EVENT_OBJ_GFX_WINGULL, 0, 7, 2, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SSTidalCorridor_EventScript_23C0E2, 950
object_event 5, EVENT_OBJ_GFX_SCOTT, 0, 9, 10, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, 0x0, 810
diff --git a/data/maps/SSTidalRooms/events.inc b/data/maps/SSTidalRooms/events.inc
index 5ef669f48..cca2bc821 100644
--- a/data/maps/SSTidalRooms/events.inc
+++ b/data/maps/SSTidalRooms/events.inc
@@ -1,11 +1,11 @@
SSTidalRooms_EventObjects: @ 853A314
- object_event 1, EVENT_OBJ_GFX_MAN_3, 0, 4, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 0, SSTidalRooms_EventScript_23CA49, 0
+ object_event 1, EVENT_OBJ_GFX_POKEFAN_M, 0, 4, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 0, SSTidalRooms_EventScript_23CA49, 0
object_event 2, EVENT_OBJ_GFX_GENTLEMAN, 0, 34, 11, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 3, SSTidalRooms_EventScript_23CA60, 0
object_event 3, EVENT_OBJ_GFX_GENTLEMAN, 0, 21, 5, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 0, SSTidalRooms_EventScript_23CA77, 0
- object_event 4, EVENT_OBJ_GFX_MAN_5, 0, 5, 14, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, SSTidalRooms_EventScript_23CA8E, 0
- object_event 5, EVENT_OBJ_GFX_WOMAN_5, 0, 4, 14, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, SSTidalRooms_EventScript_23CAA9, 0
- object_event 6, EVENT_OBJ_GFX_BOY_4, 0, 22, 11, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 3, SSTidalRooms_EventScript_23CAC4, 0
- object_event 7, EVENT_OBJ_GFX_WOMAN_3, 0, 15, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 0, SSTidalRooms_EventScript_23CADB, 0
+ object_event 4, EVENT_OBJ_GFX_MAN_4, 0, 5, 14, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, SSTidalRooms_EventScript_23CA8E, 0
+ object_event 5, EVENT_OBJ_GFX_WOMAN_4, 0, 4, 14, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 1, SSTidalRooms_EventScript_23CAA9, 0
+ object_event 6, EVENT_OBJ_GFX_RICH_BOY, 0, 22, 11, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 3, SSTidalRooms_EventScript_23CAC4, 0
+ object_event 7, EVENT_OBJ_GFX_WOMAN_2, 0, 15, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 0, SSTidalRooms_EventScript_23CADB, 0
object_event 8, EVENT_OBJ_GFX_MANIAC, 0, 28, 5, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, SSTidalRooms_EventScript_23C9F2, 951
SSTidalRooms_MapWarps: @ 853A3D4
diff --git a/data/maps/SafariZone_North/events.inc b/data/maps/SafariZone_North/events.inc
index 1057b4ecd..11e4b2e28 100644
--- a/data/maps/SafariZone_North/events.inc
+++ b/data/maps/SafariZone_North/events.inc
@@ -1,6 +1,6 @@
SafariZone_North_EventObjects: @ 853B160
object_event 1, EVENT_OBJ_GFX_FISHERMAN, 0, 22, 9, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SafariZone_North_EventScript_23D254, 0
- object_event 2, EVENT_OBJ_GFX_MAN_5, 0, 6, 29, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SafariZone_North_EventScript_23D25D, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_4, 0, 6, 29, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SafariZone_North_EventScript_23D25D, 0
object_event 3, EVENT_OBJ_GFX_BREAKABLE_ROCK, 0, 25, 10, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SafariZone_North_EventScript_2907A6, 17
object_event 4, EVENT_OBJ_GFX_BREAKABLE_ROCK, 0, 25, 13, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SafariZone_North_EventScript_2907A6, 18
object_event 5, EVENT_OBJ_GFX_BREAKABLE_ROCK, 0, 28, 14, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SafariZone_North_EventScript_2907A6, 19
diff --git a/data/maps/SafariZone_South/events.inc b/data/maps/SafariZone_South/events.inc
index 01a016f02..21626d410 100644
--- a/data/maps/SafariZone_South/events.inc
+++ b/data/maps/SafariZone_South/events.inc
@@ -1,7 +1,7 @@
SafariZone_South_EventObjects: @ 853B2A4
object_event 1, EVENT_OBJ_GFX_CAMPER, 0, 32, 34, 4, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SafariZone_South_EventScript_23D2E5, 0
object_event 2, EVENT_OBJ_GFX_BOY_1, 0, 26, 28, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SafariZone_South_EventScript_23D2CA, 0
- object_event 3, EVENT_OBJ_GFX_MAN_5, 0, 16, 6, 5, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SafariZone_South_EventScript_23D2D3, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_4, 0, 16, 6, 5, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SafariZone_South_EventScript_23D2D3, 0
object_event 4, EVENT_OBJ_GFX_YOUNGSTER, 0, 15, 31, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SafariZone_South_EventScript_23D2DC, 0
object_event 5, EVENT_OBJ_GFX_CAMPER, 0, 36, 16, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, SafariZone_South_EventScript_23D390, 717
object_event 6, EVENT_OBJ_GFX_CAMPER, 0, 36, 17, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, SafariZone_South_EventScript_23D3A2, 717
diff --git a/data/maps/SafariZone_Southeast/events.inc b/data/maps/SafariZone_Southeast/events.inc
index 3ba71ee8e..d1be808cc 100644
--- a/data/maps/SafariZone_Southeast/events.inc
+++ b/data/maps/SafariZone_Southeast/events.inc
@@ -1,7 +1,7 @@
SafariZone_Southeast_EventObjects: @ 853BA6C
- object_event 1, EVENT_OBJ_GFX_BOY_4, 0, 7, 7, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SafariZone_Southeast_EventScript_23D3BD, 0
+ object_event 1, EVENT_OBJ_GFX_RICH_BOY, 0, 7, 7, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SafariZone_Southeast_EventScript_23D3BD, 0
object_event 2, EVENT_OBJ_GFX_FAT_MAN, 0, 20, 30, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SafariZone_Southeast_EventScript_23D3B4, 0
- object_event 3, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 8, 26, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SafariZone_Southeast_EventScript_23D3AB, 0
+ object_event 3, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 8, 26, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SafariZone_Southeast_EventScript_23D3AB, 0
object_event 4, EVENT_OBJ_GFX_ITEM_BALL, 0, 31, 15, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SafariZone_Southeast_EventScript_2912F0, 1170
object_event 5, EVENT_OBJ_GFX_CAMPER, 0, 12, 16, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, SafariZone_Southeast_EventScript_23D399, 747
diff --git a/data/maps/SafariZone_Southwest/events.inc b/data/maps/SafariZone_Southwest/events.inc
index 468a0013d..f4750621d 100644
--- a/data/maps/SafariZone_Southwest/events.inc
+++ b/data/maps/SafariZone_Southwest/events.inc
@@ -1,5 +1,5 @@
SafariZone_Southwest_EventObjects: @ 853B24C
- object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 22, 9, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SafariZone_Southwest_EventScript_23D267, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 22, 9, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SafariZone_Southwest_EventScript_23D267, 0
object_event 2, EVENT_OBJ_GFX_ITEM_BALL, 0, 0, 37, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SafariZone_Southwest_EventScript_2912D6, 1131
SafariZone_Southwest_MapWarps: @ 853B27C
diff --git a/data/maps/ShoalCave_LowTideEntranceRoom/events.inc b/data/maps/ShoalCave_LowTideEntranceRoom/events.inc
index 614c009c1..875bed2fb 100644
--- a/data/maps/ShoalCave_LowTideEntranceRoom/events.inc
+++ b/data/maps/ShoalCave_LowTideEntranceRoom/events.inc
@@ -1,6 +1,6 @@
ShoalCave_LowTideEntranceRoom_EventObjects: @ 853627C
object_event 1, EVENT_OBJ_GFX_ITEM_BALL, 0, 30, 3, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, ShoalCave_LowTideEntranceRoom_EventScript_2913C0, 1081
- object_event 2, EVENT_OBJ_GFX_OLD_MAN_1, 0, 18, 15, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, ShoalCave_LowTideEntranceRoom_EventScript_236DD9, 0
+ object_event 2, EVENT_OBJ_GFX_EXPERT_M, 0, 18, 15, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, ShoalCave_LowTideEntranceRoom_EventScript_236DD9, 0
ShoalCave_LowTideEntranceRoom_MapWarps: @ 85362AC
warp_def 20, 30, 3, 0, MAP_ROUTE125
diff --git a/data/maps/SingleBattleColosseum/events.inc b/data/maps/SingleBattleColosseum/events.inc
index c0bcde1ba..b43b505bd 100644
--- a/data/maps/SingleBattleColosseum/events.inc
+++ b/data/maps/SingleBattleColosseum/events.inc
@@ -1,5 +1,5 @@
SingleBattleColosseum_EventObjects: @ 8539D44
- object_event 1, EVENT_OBJ_GFX_WOMAN_6, 0, 9, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, SingleBattleColosseum_EventScript_2774A6, 0
+ object_event 1, EVENT_OBJ_GFX_LINK_RECEPTIONIST, 0, 9, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, SingleBattleColosseum_EventScript_2774A6, 0
SingleBattleColosseum_MapWarps: @ 8539D5C
warp_def 6, 8, 3, 127, MAP_NONE
diff --git a/data/maps/SlateportCity/events.inc b/data/maps/SlateportCity/events.inc
index 8b74573b7..841de657e 100644
--- a/data/maps/SlateportCity/events.inc
+++ b/data/maps/SlateportCity/events.inc
@@ -1,29 +1,29 @@
SlateportCity_EventObjects: @ 85261CC
object_event 1, EVENT_OBJ_GFX_FAT_MAN, 0, 21, 11, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SlateportCity_EventScript_1DCED9, 0
object_event 2, EVENT_OBJ_GFX_MAN_1, 0, 34, 29, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, SlateportCity_EventScript_1DCEF6, 0
- object_event 3, EVENT_OBJ_GFX_BOY_4, 0, 5, 13, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 2, 0, 0, SlateportCity_EventScript_1DCEB8, 0
- object_event 4, EVENT_OBJ_GFX_WOMAN_5, 0, 26, 29, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, SlateportCity_EventScript_1DCF17, 0
+ object_event 3, EVENT_OBJ_GFX_RICH_BOY, 0, 5, 13, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 2, 0, 0, SlateportCity_EventScript_1DCEB8, 0
+ object_event 4, EVENT_OBJ_GFX_WOMAN_4, 0, 26, 29, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, SlateportCity_EventScript_1DCF17, 0
object_event 5, EVENT_OBJ_GFX_AQUA_MEMBER_F, 0, 31, 27, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, SlateportCity_EventScript_1DD009, 882
object_event 6, EVENT_OBJ_GFX_COOK, 0, 5, 43, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SlateportCity_EventScript_1DCE42, 0
- object_event 7, EVENT_OBJ_GFX_OLD_WOMAN_2, 0, 20, 37, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SlateportCity_EventScript_1DCE63, 0
+ object_event 7, EVENT_OBJ_GFX_OLD_WOMAN, 0, 20, 37, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SlateportCity_EventScript_1DCE63, 0
object_event 8, EVENT_OBJ_GFX_GIRL_1, 0, 8, 42, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SlateportCity_EventScript_1DCE84, 0
object_event 9, EVENT_OBJ_GFX_CAMERAMAN, 0, 29, 13, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, SlateportCity_EventScript_1DD353, 835
object_event 10, EVENT_OBJ_GFX_REPORTER_F, 0, 28, 14, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, SlateportCity_EventScript_1DD35C, 835
object_event 11, EVENT_OBJ_GFX_SCIENTIST_1, 0, 28, 13, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, SlateportCity_EventScript_1DD1F8, 840
object_event 12, EVENT_OBJ_GFX_SAILOR, 0, 37, 41, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, SlateportCity_EventScript_1DCFE5, 0
object_event 13, EVENT_OBJ_GFX_SAILOR, 0, 28, 46, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, SlateportCity_EventScript_1DCFEE, 0
- object_event 14, EVENT_OBJ_GFX_WOMAN_2, 0, 9, 50, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, SlateportCity_EventScript_1DCFF7, 0
- object_event 15, EVENT_OBJ_GFX_MAN_4, 0, 16, 46, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SlateportCity_EventScript_1DD000, 0
+ object_event 14, EVENT_OBJ_GFX_POKEFAN_F, 0, 9, 50, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, SlateportCity_EventScript_1DCFF7, 0
+ object_event 15, EVENT_OBJ_GFX_MAN_3, 0, 16, 46, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SlateportCity_EventScript_1DD000, 0
object_event 16, EVENT_OBJ_GFX_MANIAC, 0, 8, 24, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, SlateportCity_EventScript_1DCFBB, 0
- object_event 17, EVENT_OBJ_GFX_WOMAN_7, 0, 15, 31, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, SlateportCity_EventScript_1DCFDC, 0
+ object_event 17, EVENT_OBJ_GFX_WOMAN_5, 0, 15, 31, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, SlateportCity_EventScript_1DCFDC, 0
object_event 18, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 30, 27, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, SlateportCity_EventScript_1DD020, 882
object_event 19, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 29, 27, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, SlateportCity_EventScript_1DD037, 882
object_event 20, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 6, 38, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, SlateportCity_EventScript_1DD198, 0
object_event 21, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 5, 51, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SlateportCity_EventScript_1DD16A, 0
- object_event 22, EVENT_OBJ_GFX_MAN_6, 0, 34, 51, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SlateportCity_EventScript_1DD365, 0
- object_event 23, EVENT_OBJ_GFX_WOMAN_7, 0, 4, 47, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SlateportCity_EventScript_1DCDE4, 0
+ object_event 22, EVENT_OBJ_GFX_MAN_5, 0, 34, 51, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SlateportCity_EventScript_1DD365, 0
+ object_event 23, EVENT_OBJ_GFX_WOMAN_5, 0, 4, 47, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SlateportCity_EventScript_1DCDE4, 0
object_event 24, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 11, 47, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, SlateportCity_EventScript_1DD1D8, 948
- object_event 25, EVENT_OBJ_GFX_MAN_3, 0, 5, 47, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, SlateportCity_EventScript_1DCDBD, 0
+ object_event 25, EVENT_OBJ_GFX_POKEFAN_M, 0, 5, 47, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, SlateportCity_EventScript_1DCDBD, 0
object_event 26, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 22, 27, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, SlateportCity_EventScript_1DD04E, 882
object_event 27, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 23, 27, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, SlateportCity_EventScript_1DD065, 882
object_event 28, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 24, 27, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, SlateportCity_EventScript_1DD07C, 882
@@ -32,7 +32,7 @@ SlateportCity_EventObjects: @ 85261CC
object_event 31, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 26, 27, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, SlateportCity_EventScript_1DD0C1, 882
object_event 32, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 28, 27, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, SlateportCity_EventScript_1DD14A, 882
object_event 33, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 25, 27, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, SlateportCity_EventScript_1DD153, 882
- object_event 34, EVENT_OBJ_GFX_WOMAN_2, 0, 11, 37, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 2, 0, 0, SlateportCity_EventScript_1DD36E, 0
+ object_event 34, EVENT_OBJ_GFX_POKEFAN_F, 0, 11, 37, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 2, 0, 0, SlateportCity_EventScript_1DD36E, 0
object_event 35, EVENT_OBJ_GFX_SCOTT, 0, 10, 12, 0, MOVEMENT_TYPE_FACE_DOWN, 1, 2, 0, 0, 0x0, 749
SlateportCity_MapWarps: @ 8526514
diff --git a/data/maps/SlateportCity_BattleTentLobby/events.inc b/data/maps/SlateportCity_BattleTentLobby/events.inc
index c5c60ba6d..3eadecd27 100644
--- a/data/maps/SlateportCity_BattleTentLobby/events.inc
+++ b/data/maps/SlateportCity_BattleTentLobby/events.inc
@@ -1,9 +1,9 @@
SlateportCity_BattleTentLobby_EventObjects: @ 852F408
object_event 1, EVENT_OBJ_GFX_SCIENTIST_1, 0, 6, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, SlateportCity_BattleTentLobby_EventScript_2088AA, 0
object_event 2, EVENT_OBJ_GFX_SAILOR, 0, 1, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SlateportCity_BattleTentLobby_EventScript_208A3D, 0
- object_event 3, EVENT_OBJ_GFX_MAN_4, 0, 3, 7, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, SlateportCity_BattleTentLobby_EventScript_208A7E, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_3, 0, 3, 7, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, SlateportCity_BattleTentLobby_EventScript_208A7E, 0
object_event 4, EVENT_OBJ_GFX_GIRL_1, 0, 1, 8, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SlateportCity_BattleTentLobby_EventScript_208A87, 0
- object_event 5, EVENT_OBJ_GFX_WOMAN_3, 0, 11, 8, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, SlateportCity_BattleTentLobby_EventScript_208A90, 0
+ object_event 5, EVENT_OBJ_GFX_WOMAN_2, 0, 11, 8, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, SlateportCity_BattleTentLobby_EventScript_208A90, 0
SlateportCity_BattleTentLobby_MapWarps: @ 852F480
warp_def 6, 9, 0, 3, MAP_SLATEPORT_CITY
diff --git a/data/maps/SlateportCity_House1/events.inc b/data/maps/SlateportCity_House1/events.inc
index 713ff1dd5..9917c0a24 100644
--- a/data/maps/SlateportCity_House1/events.inc
+++ b/data/maps/SlateportCity_House1/events.inc
@@ -1,5 +1,5 @@
SlateportCity_House1_EventObjects: @ 852F538
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_1, 0, 7, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SlateportCity_House1_EventScript_209AA5, 0
+ object_event 1, EVENT_OBJ_GFX_EXPERT_M, 0, 7, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SlateportCity_House1_EventScript_209AA5, 0
SlateportCity_House1_MapWarps: @ 852F550
warp_def 3, 7, 0, 6, MAP_SLATEPORT_CITY
diff --git a/data/maps/SlateportCity_House2/events.inc b/data/maps/SlateportCity_House2/events.inc
index daa627c06..2dfffdaec 100644
--- a/data/maps/SlateportCity_House2/events.inc
+++ b/data/maps/SlateportCity_House2/events.inc
@@ -1,5 +1,5 @@
SlateportCity_House2_EventObjects: @ 852FB9C
- object_event 1, EVENT_OBJ_GFX_MAN_3, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, SlateportCity_House2_EventScript_20D9AF, 0
+ object_event 1, EVENT_OBJ_GFX_POKEFAN_M, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, SlateportCity_House2_EventScript_20D9AF, 0
object_event 2, EVENT_OBJ_GFX_GIRL_3, 0, 7, 4, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, SlateportCity_House2_EventScript_20D9B8, 0
SlateportCity_House2_MapWarps: @ 852FBCC
diff --git a/data/maps/SlateportCity_Mart/events.inc b/data/maps/SlateportCity_Mart/events.inc
index da5f668e0..9cc5b9829 100644
--- a/data/maps/SlateportCity_Mart/events.inc
+++ b/data/maps/SlateportCity_Mart/events.inc
@@ -1,7 +1,7 @@
SlateportCity_Mart_EventObjects: @ 852FCF0
object_event 1, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, SlateportCity_Mart_EventScript_20DC49, 0
object_event 2, EVENT_OBJ_GFX_BLACK_BELT, 0, 4, 2, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, SlateportCity_Mart_EventScript_20DC76, 0
- object_event 3, EVENT_OBJ_GFX_MAN_4, 0, 5, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, SlateportCity_Mart_EventScript_20DC7F, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_3, 0, 5, 5, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, SlateportCity_Mart_EventScript_20DC7F, 0
SlateportCity_Mart_MapWarps: @ 852FD38
warp_def 3, 7, 0, 1, MAP_SLATEPORT_CITY
diff --git a/data/maps/SlateportCity_OceanicMuseum_1F/events.inc b/data/maps/SlateportCity_OceanicMuseum_1F/events.inc
index 256b2ee1c..8e3a7879f 100644
--- a/data/maps/SlateportCity_OceanicMuseum_1F/events.inc
+++ b/data/maps/SlateportCity_OceanicMuseum_1F/events.inc
@@ -7,10 +7,10 @@ SlateportCity_OceanicMuseum_1F_EventObjects: @ 852F670
object_event 6, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 14, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_20AE71, 883
object_event 7, EVENT_OBJ_GFX_BEAUTY, 0, 12, 7, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_20AD96, 0
object_event 8, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 8, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_20AE7A, 883
- object_event 9, EVENT_OBJ_GFX_WOMAN_7, 0, 4, 2, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_20AED4, 961
+ object_event 9, EVENT_OBJ_GFX_WOMAN_5, 0, 4, 2, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_20AED4, 961
object_event 10, EVENT_OBJ_GFX_MANIAC, 0, 10, 2, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_20AEDD, 961
- object_event 11, EVENT_OBJ_GFX_MAN_3, 0, 17, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_20AEE6, 961
- object_event 12, EVENT_OBJ_GFX_LITTLE_GIRL_2, 0, 18, 8, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_20AEEF, 961
+ object_event 11, EVENT_OBJ_GFX_POKEFAN_M, 0, 17, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_20AEE6, 961
+ object_event 12, EVENT_OBJ_GFX_LITTLE_GIRL, 0, 18, 8, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_20AEEF, 961
object_event 13, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 9, 4, 3, MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT, 1, 1, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_20AEF8, 965
object_event 14, EVENT_OBJ_GFX_REPORTER_M, 0, 7, 4, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SlateportCity_OceanicMuseum_1F_EventScript_28C883, 961
diff --git a/data/maps/SlateportCity_OceanicMuseum_2F/events.inc b/data/maps/SlateportCity_OceanicMuseum_2F/events.inc
index 7b407d5d2..3ca657bb6 100644
--- a/data/maps/SlateportCity_OceanicMuseum_2F/events.inc
+++ b/data/maps/SlateportCity_OceanicMuseum_2F/events.inc
@@ -3,9 +3,9 @@ SlateportCity_OceanicMuseum_2F_EventObjects: @ 852F8A8
object_event 2, EVENT_OBJ_GFX_ARCHIE, 0, 6, 1, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, 0x0, 886
object_event 3, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 6, 1, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, 0x0, 884
object_event 4, EVENT_OBJ_GFX_AQUA_MEMBER_M, 0, 6, 1, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, 0x0, 885
- object_event 5, EVENT_OBJ_GFX_OLD_MAN_2, 0, 12, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, SlateportCity_OceanicMuseum_2F_EventScript_20BD64, 961
- object_event 6, EVENT_OBJ_GFX_WOMAN_2, 0, 9, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SlateportCity_OceanicMuseum_2F_EventScript_20BD6D, 961
- object_event 7, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, SlateportCity_OceanicMuseum_2F_EventScript_20BD76, 961
+ object_event 5, EVENT_OBJ_GFX_OLD_MAN, 0, 12, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, SlateportCity_OceanicMuseum_2F_EventScript_20BD64, 961
+ object_event 6, EVENT_OBJ_GFX_POKEFAN_F, 0, 9, 6, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SlateportCity_OceanicMuseum_2F_EventScript_20BD6D, 961
+ object_event 7, EVENT_OBJ_GFX_NINJA_BOY, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, SlateportCity_OceanicMuseum_2F_EventScript_20BD76, 961
SlateportCity_OceanicMuseum_2F_MapWarps: @ 852F950
warp_def 6, 1, 0, 2, MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F
diff --git a/data/maps/SlateportCity_PokemonCenter_1F/events.inc b/data/maps/SlateportCity_PokemonCenter_1F/events.inc
index 32328d255..f5409bdf0 100644
--- a/data/maps/SlateportCity_PokemonCenter_1F/events.inc
+++ b/data/maps/SlateportCity_PokemonCenter_1F/events.inc
@@ -1,7 +1,7 @@
SlateportCity_PokemonCenter_1F_EventObjects: @ 852FBF0
object_event 1, EVENT_OBJ_GFX_NURSE, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SlateportCity_PokemonCenter_1F_EventScript_20DAD3, 0
object_event 2, EVENT_OBJ_GFX_SAILOR, 0, 2, 3, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SlateportCity_PokemonCenter_1F_EventScript_20DAE1, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_7, 0, 10, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, SlateportCity_PokemonCenter_1F_EventScript_20DAEA, 0
+ object_event 3, EVENT_OBJ_GFX_WOMAN_5, 0, 10, 7, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, SlateportCity_PokemonCenter_1F_EventScript_20DAEA, 0
SlateportCity_PokemonCenter_1F_MapWarps: @ 852FC38
warp_def 7, 8, 3, 0, MAP_SLATEPORT_CITY
diff --git a/data/maps/SlateportCity_PokemonFanClub/events.inc b/data/maps/SlateportCity_PokemonFanClub/events.inc
index d6a0ac4e1..74b2a6acf 100644
--- a/data/maps/SlateportCity_PokemonFanClub/events.inc
+++ b/data/maps/SlateportCity_PokemonFanClub/events.inc
@@ -1,13 +1,13 @@
SlateportCity_PokemonFanClub_EventObjects: @ 852F574
object_event 1, EVENT_OBJ_GFX_MAN_1, 0, 11, 4, 0, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SlateportCity_PokemonFanClub_EventScript_20A1E8, 0
- object_event 2, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 1, 5, 0, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, SlateportCity_PokemonFanClub_EventScript_20A1F1, 0
+ object_event 2, EVENT_OBJ_GFX_TWIN, 0, 1, 5, 0, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, SlateportCity_PokemonFanClub_EventScript_20A1F1, 0
object_event 3, EVENT_OBJ_GFX_REPORTER_F, 0, 11, 5, 0, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, SlateportCity_PokemonFanClub_EventScript_28C943, 0
- object_event 4, EVENT_OBJ_GFX_WOMAN_5, 0, 6, 2, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, SlateportCity_PokemonFanClub_EventScript_20A17E, 0
+ object_event 4, EVENT_OBJ_GFX_WOMAN_4, 0, 6, 2, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, SlateportCity_PokemonFanClub_EventScript_20A17E, 0
object_event 5, EVENT_OBJ_GFX_GENTLEMAN, 0, 6, 5, 4, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SlateportCity_PokemonFanClub_EventScript_209E96, 0
object_event 6, EVENT_OBJ_GFX_ZIGZAGOON_2, 0, 3, 9, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SlateportCity_PokemonFanClub_EventScript_20A20D, 0
object_event 7, EVENT_OBJ_GFX_SKITTY, 0, 8, 3, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SlateportCity_PokemonFanClub_EventScript_20A1FA, 0
object_event 8, EVENT_OBJ_GFX_AZUMARILL, 0, 10, 8, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SlateportCity_PokemonFanClub_EventScript_20A220, 0
- object_event 9, EVENT_OBJ_GFX_MAN_5, 0, 11, 8, 0, MOVEMENT_TYPE_FACE_LEFT, 0, 1, 0, 0, SlateportCity_PokemonFanClub_EventScript_2C7F16, 0
+ object_event 9, EVENT_OBJ_GFX_MAN_4, 0, 11, 8, 0, MOVEMENT_TYPE_FACE_LEFT, 0, 1, 0, 0, SlateportCity_PokemonFanClub_EventScript_2C7F16, 0
SlateportCity_PokemonFanClub_MapWarps: @ 852F64C
warp_def 6, 10, 0, 4, MAP_SLATEPORT_CITY
diff --git a/data/maps/SlateportCity_SternsShipyard_1F/events.inc b/data/maps/SlateportCity_SternsShipyard_1F/events.inc
index 19886500f..107a00ee0 100644
--- a/data/maps/SlateportCity_SternsShipyard_1F/events.inc
+++ b/data/maps/SlateportCity_SternsShipyard_1F/events.inc
@@ -2,7 +2,7 @@ SlateportCity_SternsShipyard_1F_EventObjects: @ 852F318
object_event 1, EVENT_OBJ_GFX_MAN_1, 0, 5, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SlateportCity_SternsShipyard_1F_EventScript_207F40, 0
object_event 2, EVENT_OBJ_GFX_SCIENTIST_1, 0, 10, 7, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, SlateportCity_SternsShipyard_1F_EventScript_207FED, 0
object_event 3, EVENT_OBJ_GFX_SCIENTIST_1, 0, 18, 8, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, SlateportCity_SternsShipyard_1F_EventScript_207FF6, 0
- object_event 4, EVENT_OBJ_GFX_OLD_MAN_1, 0, 12, 11, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 2, 0, 0, SlateportCity_SternsShipyard_1F_EventScript_207FFF, 869
+ object_event 4, EVENT_OBJ_GFX_EXPERT_M, 0, 12, 11, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 2, 0, 0, SlateportCity_SternsShipyard_1F_EventScript_207FFF, 869
SlateportCity_SternsShipyard_1F_MapWarps: @ 852F378
warp_def 2, 14, 0, 2, MAP_SLATEPORT_CITY
diff --git a/data/maps/SootopolisCity/events.inc b/data/maps/SootopolisCity/events.inc
index 7361ccc21..52dcb8f53 100644
--- a/data/maps/SootopolisCity/events.inc
+++ b/data/maps/SootopolisCity/events.inc
@@ -1,12 +1,12 @@
SootopolisCity_EventObjects: @ 8527314
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_1, 0, 31, 18, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SootopolisCity_EventScript_1E5E8D, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_5, 0, 47, 33, 0, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, SootopolisCity_EventScript_1E5FE2, 854
+ object_event 1, EVENT_OBJ_GFX_EXPERT_M, 0, 31, 18, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SootopolisCity_EventScript_1E5E8D, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_4, 0, 47, 33, 0, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, SootopolisCity_EventScript_1E5FE2, 854
object_event 3, EVENT_OBJ_GFX_GIRL_2, 0, 9, 43, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, SootopolisCity_EventScript_1E5ED8, 0
- object_event 4, EVENT_OBJ_GFX_LITTLE_BOY_1, 0, 51, 14, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SootopolisCity_EventScript_1E608E, 0
+ object_event 4, EVENT_OBJ_GFX_NINJA_BOY, 0, 51, 14, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SootopolisCity_EventScript_1E608E, 0
object_event 5, EVENT_OBJ_GFX_BOY_1, 0, 43, 26, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, SootopolisCity_EventScript_1E60E3, 0
object_event 6, EVENT_OBJ_GFX_MAN_1, 0, 26, 4, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, SootopolisCity_EventScript_1E6017, 839
object_event 7, EVENT_OBJ_GFX_STEVEN, 0, 20, 36, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, SootopolisCity_EventScript_1E6166, 973
- object_event 8, EVENT_OBJ_GFX_WOMAN_7, 0, 49, 34, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 1, 1, 0, 0, SootopolisCity_EventScript_1E6038, 0
+ object_event 8, EVENT_OBJ_GFX_WOMAN_5, 0, 49, 34, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 1, 1, 0, 0, SootopolisCity_EventScript_1E6038, 0
object_event 9, EVENT_OBJ_GFX_GROUDON_3, 0, 28, 44, 0, MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT, 1, 1, 0, 0, 0x0, 998
object_event 10, EVENT_OBJ_GFX_KYOGRE_3, 0, 34, 44, 1, MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT, 1, 1, 0, 0, 0x0, 997
object_event 11, EVENT_OBJ_GFX_RAYQUAZA_2, 0, 31, 41, 1, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, 0x0, 996
diff --git a/data/maps/SootopolisCity/scripts.inc b/data/maps/SootopolisCity/scripts.inc
index 5de8c7d12..06ceba8c0 100644
--- a/data/maps/SootopolisCity/scripts.inc
+++ b/data/maps/SootopolisCity/scripts.inc
@@ -927,7 +927,7 @@ SootopolisCity_EventScript_1E6154:: @ 81E6154
msgbox SootopolisCity_Text_1E65C8, 3
end
-SootopolisCity_EventScript_1E615D:: @ 81E615D
+EventScript_ClosedSootopolisDoor:: @ 81E615D
msgbox SootopolisCity_Text_1E6604, 3
end
diff --git a/data/maps/SootopolisCity_Gym_B1F/events.inc b/data/maps/SootopolisCity_Gym_B1F/events.inc
index 9f747bc4a..0ca0287ad 100644
--- a/data/maps/SootopolisCity_Gym_B1F/events.inc
+++ b/data/maps/SootopolisCity_Gym_B1F/events.inc
@@ -1,14 +1,14 @@
SootopolisCity_Gym_B1F_EventObjects: @ 8533068
object_event 1, EVENT_OBJ_GFX_LASS, 0, 7, 17, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 1, SootopolisCity_Gym_B1F_EventScript_225C8B, 0
object_event 2, EVENT_OBJ_GFX_BEAUTY, 0, 9, 19, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 1, SootopolisCity_Gym_B1F_EventScript_225CD0, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_3, 0, 12, 7, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 1, SootopolisCity_Gym_B1F_EventScript_225CB9, 0
+ object_event 3, EVENT_OBJ_GFX_WOMAN_2, 0, 12, 7, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 1, SootopolisCity_Gym_B1F_EventScript_225CB9, 0
object_event 4, EVENT_OBJ_GFX_BEAUTY, 0, 11, 9, 0, MOVEMENT_TYPE_FACE_UP, 0, 0, 1, 5, SootopolisCity_Gym_B1F_EventScript_225CE7, 0
object_event 5, EVENT_OBJ_GFX_BEAUTY, 0, 5, 6, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 4, SootopolisCity_Gym_B1F_EventScript_225D15, 0
- object_event 6, EVENT_OBJ_GFX_WOMAN_2, 0, 7, 8, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 2, SootopolisCity_Gym_B1F_EventScript_225D2C, 0
+ object_event 6, EVENT_OBJ_GFX_POKEFAN_F, 0, 7, 8, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 2, SootopolisCity_Gym_B1F_EventScript_225D2C, 0
object_event 7, EVENT_OBJ_GFX_LASS, 0, 4, 8, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 1, 2, SootopolisCity_Gym_B1F_EventScript_225CA2, 0
object_event 8, EVENT_OBJ_GFX_BEAUTY, 0, 9, 7, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 3, SootopolisCity_Gym_B1F_EventScript_225CFE, 0
- object_event 9, EVENT_OBJ_GFX_WOMAN_3, 0, 6, 13, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 3, SootopolisCity_Gym_B1F_EventScript_225D5A, 0
- object_event 10, EVENT_OBJ_GFX_WOMAN_2, 0, 10, 13, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 3, SootopolisCity_Gym_B1F_EventScript_225D43, 0
+ object_event 9, EVENT_OBJ_GFX_WOMAN_2, 0, 6, 13, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 3, SootopolisCity_Gym_B1F_EventScript_225D5A, 0
+ object_event 10, EVENT_OBJ_GFX_POKEFAN_F, 0, 10, 13, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 3, SootopolisCity_Gym_B1F_EventScript_225D43, 0
SootopolisCity_Gym_B1F_MapWarps: @ 8533158
warp_def 11, 22, 3, 2, MAP_SOOTOPOLIS_CITY_GYM_1F
diff --git a/data/maps/SootopolisCity_House2/events.inc b/data/maps/SootopolisCity_House2/events.inc
index a8885190e..509eeb46f 100644
--- a/data/maps/SootopolisCity_House2/events.inc
+++ b/data/maps/SootopolisCity_House2/events.inc
@@ -1,5 +1,5 @@
SootopolisCity_House2_EventObjects: @ 853334C
- object_event 1, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 3, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, SootopolisCity_House2_EventScript_226A77, 0
+ object_event 1, EVENT_OBJ_GFX_EXPERT_F, 0, 3, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, SootopolisCity_House2_EventScript_226A77, 0
SootopolisCity_House2_MapWarps: @ 8533364
warp_def 3, 6, 0, 5, MAP_SOOTOPOLIS_CITY
diff --git a/data/maps/SootopolisCity_House3/events.inc b/data/maps/SootopolisCity_House3/events.inc
index 9f5cc781e..5a91765c5 100644
--- a/data/maps/SootopolisCity_House3/events.inc
+++ b/data/maps/SootopolisCity_House3/events.inc
@@ -1,5 +1,5 @@
SootopolisCity_House3_EventObjects: @ 8533388
- object_event 1, EVENT_OBJ_GFX_WOMAN_5, 0, 2, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SootopolisCity_House3_EventScript_226B72, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_4, 0, 2, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SootopolisCity_House3_EventScript_226B72, 0
object_event 2, EVENT_OBJ_GFX_GIRL_2, 0, 6, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SootopolisCity_House3_EventScript_226B9B, 0
SootopolisCity_House3_MapWarps: @ 85333B8
diff --git a/data/maps/SootopolisCity_House4/events.inc b/data/maps/SootopolisCity_House4/events.inc
index d9948d5be..3bd0aed0e 100644
--- a/data/maps/SootopolisCity_House4/events.inc
+++ b/data/maps/SootopolisCity_House4/events.inc
@@ -1,6 +1,6 @@
SootopolisCity_House4_EventObjects: @ 85333DC
object_event 1, EVENT_OBJ_GFX_MAN_1, 0, 2, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, SootopolisCity_House4_EventScript_226D16, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_5, 0, 5, 2, 3, MOVEMENT_TYPE_FACE_UP, 1, 2, 0, 0, SootopolisCity_House4_EventScript_226D1F, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_4, 0, 5, 2, 3, MOVEMENT_TYPE_FACE_UP, 1, 2, 0, 0, SootopolisCity_House4_EventScript_226D1F, 0
object_event 3, EVENT_OBJ_GFX_AZUMARILL, 0, 2, 3, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, SootopolisCity_House4_EventScript_226D28, 0
SootopolisCity_House4_MapWarps: @ 8533424
diff --git a/data/maps/SootopolisCity_House6/events.inc b/data/maps/SootopolisCity_House6/events.inc
index 4ca7e5745..40fd1d0a7 100644
--- a/data/maps/SootopolisCity_House6/events.inc
+++ b/data/maps/SootopolisCity_House6/events.inc
@@ -1,5 +1,5 @@
SootopolisCity_House6_EventObjects: @ 853349C
- object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 4, 3, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SootopolisCity_House6_EventScript_226F5C, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 4, 3, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SootopolisCity_House6_EventScript_226F5C, 0
SootopolisCity_House6_MapWarps: @ 85334B4
warp_def 3, 6, 0, 9, MAP_SOOTOPOLIS_CITY
diff --git a/data/maps/SootopolisCity_House7/events.inc b/data/maps/SootopolisCity_House7/events.inc
index 76a198f6e..d2f4e1ff2 100644
--- a/data/maps/SootopolisCity_House7/events.inc
+++ b/data/maps/SootopolisCity_House7/events.inc
@@ -1,6 +1,6 @@
SootopolisCity_House7_EventObjects: @ 85334D8
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_2, 0, 5, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, SootopolisCity_House7_EventScript_2270CC, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_2, 0, 1, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SootopolisCity_House7_EventScript_2270D5, 0
+ object_event 1, EVENT_OBJ_GFX_OLD_MAN, 0, 5, 3, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, SootopolisCity_House7_EventScript_2270CC, 0
+ object_event 2, EVENT_OBJ_GFX_POKEFAN_F, 0, 1, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SootopolisCity_House7_EventScript_2270D5, 0
SootopolisCity_House7_MapWarps: @ 8533508
warp_def 3, 6, 0, 10, MAP_SOOTOPOLIS_CITY
diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/events.inc b/data/maps/SootopolisCity_MysteryEventsHouse_1F/events.inc
index 4eb796671..65a265578 100644
--- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/events.inc
+++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/events.inc
@@ -1,5 +1,5 @@
SootopolisCity_MysteryEventsHouse_1F_EventObjects: @ 8533598
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_2, 0, 6, 4, 0, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, SootopolisCity_MysteryEventsHouse_1F_EventScript_227A24, 0
+ object_event 1, EVENT_OBJ_GFX_OLD_MAN, 0, 6, 4, 0, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, SootopolisCity_MysteryEventsHouse_1F_EventScript_227A24, 0
SootopolisCity_MysteryEventsHouse_1F_MapWarps: @ 85335B0
warp_def 3, 7, 0, 12, MAP_SOOTOPOLIS_CITY
diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc
index 652ac791a..36d0edd3a 100644
--- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc
+++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc
@@ -106,7 +106,7 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_227A58:: @ 8227A58
compare VAR_RESULT, 0
goto_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_227AE2
special SavePlayerParty
- special sub_80F94E8
+ special ReducePlayerPartyToThree
msgbox SootopolisCity_MysteryEventsHouse_1F_Text_227D21, 4
closemessage
compare VAR_FACING, 2
diff --git a/data/maps/SootopolisCity_PokemonCenter_1F/events.inc b/data/maps/SootopolisCity_PokemonCenter_1F/events.inc
index 4ca22d1f8..b5a221dad 100644
--- a/data/maps/SootopolisCity_PokemonCenter_1F/events.inc
+++ b/data/maps/SootopolisCity_PokemonCenter_1F/events.inc
@@ -1,7 +1,7 @@
SootopolisCity_PokemonCenter_1F_EventObjects: @ 8533174
object_event 1, EVENT_OBJ_GFX_NURSE, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, SootopolisCity_PokemonCenter_1F_EventScript_226500, 0
object_event 2, EVENT_OBJ_GFX_GENTLEMAN, 0, 12, 4, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SootopolisCity_PokemonCenter_1F_EventScript_22650E, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_7, 0, 4, 7, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, SootopolisCity_PokemonCenter_1F_EventScript_226538, 0
+ object_event 3, EVENT_OBJ_GFX_WOMAN_5, 0, 4, 7, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, SootopolisCity_PokemonCenter_1F_EventScript_226538, 0
object_event 4, EVENT_OBJ_GFX_WOMAN_1, 0, 2, 3, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, SootopolisCity_PokemonCenter_1F_EventScript_2C8256, 0
SootopolisCity_PokemonCenter_1F_MapWarps: @ 85331D4
diff --git a/data/maps/TradeCenter/events.inc b/data/maps/TradeCenter/events.inc
index e1f2e2bea..8991b6aab 100644
--- a/data/maps/TradeCenter/events.inc
+++ b/data/maps/TradeCenter/events.inc
@@ -1,5 +1,5 @@
TradeCenter_EventObjects: @ 8539DA0
- object_event 1, EVENT_OBJ_GFX_WOMAN_6, 0, 9, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, TradeCenter_EventScript_2774B6, 0
+ object_event 1, EVENT_OBJ_GFX_LINK_RECEPTIONIST, 0, 9, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, TradeCenter_EventScript_2774B6, 0
TradeCenter_MapWarps: @ 8539DB8
warp_def 5, 8, 3, 127, MAP_NONE
diff --git a/data/maps/TrainerHill_Entrance/events.inc b/data/maps/TrainerHill_Entrance/events.inc
index ae11a879e..30817defc 100644
--- a/data/maps/TrainerHill_Entrance/events.inc
+++ b/data/maps/TrainerHill_Entrance/events.inc
@@ -3,7 +3,7 @@ TrainerHill_Entrance_EventObjects: @ 853D874
object_event 2, EVENT_OBJ_GFX_NURSE, 0, 4, 9, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, TrainerHill_Entrance_EventScript_2681EF, 0
object_event 3, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 14, 9, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, TrainerHill_Entrance_EventScript_2683C7, 0
object_event 4, EVENT_OBJ_GFX_GIRL_3, 0, 5, 14, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, TrainerHill_Entrance_EventScript_2683AC, 0
- object_event 5, EVENT_OBJ_GFX_MAN_4, 0, 14, 15, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, TrainerHill_Entrance_EventScript_268391, 0
+ object_event 5, EVENT_OBJ_GFX_MAN_3, 0, 14, 15, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, TrainerHill_Entrance_EventScript_268391, 0
TrainerHill_Entrance_MapWarps: @ 853D8EC
warp_def 9, 16, 3, 4, MAP_ROUTE111
diff --git a/data/maps/VerdanturfTown/events.inc b/data/maps/VerdanturfTown/events.inc
index f87467d19..971ad87c4 100644
--- a/data/maps/VerdanturfTown/events.inc
+++ b/data/maps/VerdanturfTown/events.inc
@@ -1,6 +1,6 @@
VerdanturfTown_EventObjects: @ 8527CDC
object_event 1, EVENT_OBJ_GFX_MAN_2, 0, 4, 17, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, VerdanturfTown_EventScript_1EB5A8, 0
- object_event 2, EVENT_OBJ_GFX_LITTLE_GIRL_1, 0, 9, 2, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 0, 0, 0, VerdanturfTown_EventScript_1EB575, 0
+ object_event 2, EVENT_OBJ_GFX_TWIN, 0, 9, 2, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 0, 0, 0, VerdanturfTown_EventScript_1EB575, 0
object_event 3, EVENT_OBJ_GFX_BOY_1, 0, 7, 11, 3, MOVEMENT_TYPE_WANDER_UP_AND_DOWN, 0, 1, 0, 0, VerdanturfTown_EventScript_1EB5BA, 0
object_event 4, EVENT_OBJ_GFX_CAMPER, 0, 7, 6, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, VerdanturfTown_EventScript_1EB5B1, 0
diff --git a/data/maps/VerdanturfTown_BattleTentBattleRoom/events.inc b/data/maps/VerdanturfTown_BattleTentBattleRoom/events.inc
index 616c0db5e..8992f7fc5 100644
--- a/data/maps/VerdanturfTown_BattleTentBattleRoom/events.inc
+++ b/data/maps/VerdanturfTown_BattleTentBattleRoom/events.inc
@@ -1,7 +1,7 @@
VerdanturfTown_BattleTentBattleRoom_EventObjects: @ 852E734
object_event 1, EVENT_OBJ_GFX_TRADER, 0, 2, 8, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, 0x0, 0
object_event 2, EVENT_OBJ_GFX_HIPSTER, 0, 11, 1, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, 0x0, 0
- object_event 3, EVENT_OBJ_GFX_OLD_MAN_1, 0, 2, 4, 0, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, 0x0, 0
+ object_event 3, EVENT_OBJ_GFX_EXPERT_M, 0, 2, 4, 0, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, 0x0, 0
VerdanturfTown_BattleTentBattleRoom_MapEvents:: @ 852E77C
map_events VerdanturfTown_BattleTentBattleRoom_EventObjects, 0x0, 0x0, 0x0
diff --git a/data/maps/VerdanturfTown_BattleTentCorridor/events.inc b/data/maps/VerdanturfTown_BattleTentCorridor/events.inc
index c66173836..d0ca880ef 100644
--- a/data/maps/VerdanturfTown_BattleTentCorridor/events.inc
+++ b/data/maps/VerdanturfTown_BattleTentCorridor/events.inc
@@ -1,5 +1,5 @@
VerdanturfTown_BattleTentCorridor_EventObjects: @ 852E708
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_1, 0, 2, 6, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, 0x0, 0
+ object_event 1, EVENT_OBJ_GFX_EXPERT_M, 0, 2, 6, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 0, 0, 0x0, 0
VerdanturfTown_BattleTentCorridor_MapEvents:: @ 852E720
map_events VerdanturfTown_BattleTentCorridor_EventObjects, 0x0, 0x0, 0x0
diff --git a/data/maps/VerdanturfTown_BattleTentLobby/events.inc b/data/maps/VerdanturfTown_BattleTentLobby/events.inc
index 1c4bafba9..1da591d59 100644
--- a/data/maps/VerdanturfTown_BattleTentLobby/events.inc
+++ b/data/maps/VerdanturfTown_BattleTentLobby/events.inc
@@ -1,10 +1,10 @@
VerdanturfTown_BattleTentLobby_EventObjects: @ 852E648
- object_event 1, EVENT_OBJ_GFX_OLD_MAN_1, 0, 6, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, VerdanturfTown_BattleTentLobby_EventScript_201873, 0
+ object_event 1, EVENT_OBJ_GFX_EXPERT_M, 0, 6, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, VerdanturfTown_BattleTentLobby_EventScript_201873, 0
object_event 2, EVENT_OBJ_GFX_GIRL_1, 0, 0, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, VerdanturfTown_BattleTentLobby_EventScript_201A7B, 0
object_event 3, EVENT_OBJ_GFX_BOY_3, 0, 9, 7, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, VerdanturfTown_BattleTentLobby_EventScript_201ABC, 0
object_event 4, EVENT_OBJ_GFX_BOY_2, 0, 1, 8, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 0, 0, VerdanturfTown_BattleTentLobby_EventScript_201AC5, 0
object_event 5, EVENT_OBJ_GFX_SCOTT, 0, 12, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, VerdanturfTown_BattleTentLobby_EventScript_201AD0, 766
- object_event 6, EVENT_OBJ_GFX_LITTLE_BOY_2, 0, 2, 8, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, VerdanturfTown_BattleTentLobby_EventScript_201AF7, 0
+ object_event 6, EVENT_OBJ_GFX_LITTLE_BOY, 0, 2, 8, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, VerdanturfTown_BattleTentLobby_EventScript_201AF7, 0
VerdanturfTown_BattleTentLobby_MapWarps: @ 852E6D8
warp_def 6, 9, 0, 0, MAP_VERDANTURF_TOWN
diff --git a/data/maps/VerdanturfTown_FriendshipRatersHouse/events.inc b/data/maps/VerdanturfTown_FriendshipRatersHouse/events.inc
index fa3e09561..990bcd1f6 100644
--- a/data/maps/VerdanturfTown_FriendshipRatersHouse/events.inc
+++ b/data/maps/VerdanturfTown_FriendshipRatersHouse/events.inc
@@ -1,5 +1,5 @@
VerdanturfTown_FriendshipRatersHouse_EventObjects: @ 852E9C8
- object_event 1, EVENT_OBJ_GFX_WOMAN_3, 0, 3, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, VerdanturfTown_FriendshipRatersHouse_EventScript_203031, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_2, 0, 3, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, VerdanturfTown_FriendshipRatersHouse_EventScript_203031, 0
object_event 2, EVENT_OBJ_GFX_PIKACHU, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, VerdanturfTown_FriendshipRatersHouse_EventScript_2030DA, 0
VerdanturfTown_FriendshipRatersHouse_MapWarps: @ 852E9F8
diff --git a/data/maps/VerdanturfTown_House/events.inc b/data/maps/VerdanturfTown_House/events.inc
index 5de382052..d714aa8a0 100644
--- a/data/maps/VerdanturfTown_House/events.inc
+++ b/data/maps/VerdanturfTown_House/events.inc
@@ -1,6 +1,6 @@
VerdanturfTown_House_EventObjects: @ 852EA1C
- object_event 1, EVENT_OBJ_GFX_WOMAN_7, 0, 4, 5, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, VerdanturfTown_House_EventScript_20335F, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_7, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, VerdanturfTown_House_EventScript_203368, 0
+ object_event 1, EVENT_OBJ_GFX_WOMAN_5, 0, 4, 5, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, VerdanturfTown_House_EventScript_20335F, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_5, 0, 4, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, VerdanturfTown_House_EventScript_203368, 0
VerdanturfTown_House_MapWarps: @ 852EA4C
warp_def 3, 8, 0, 6, MAP_VERDANTURF_TOWN
diff --git a/data/maps/VerdanturfTown_Mart/events.inc b/data/maps/VerdanturfTown_Mart/events.inc
index 5bdbce786..9ae237dc8 100644
--- a/data/maps/VerdanturfTown_Mart/events.inc
+++ b/data/maps/VerdanturfTown_Mart/events.inc
@@ -1,7 +1,7 @@
VerdanturfTown_Mart_EventObjects: @ 852E790
object_event 1, EVENT_OBJ_GFX_MART_EMPLOYEE, 0, 1, 3, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, VerdanturfTown_Mart_EventScript_202587, 0
object_event 2, EVENT_OBJ_GFX_BOY_2, 0, 5, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, VerdanturfTown_Mart_EventScript_2025BA, 0
- object_event 3, EVENT_OBJ_GFX_OLD_WOMAN_1, 0, 8, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, VerdanturfTown_Mart_EventScript_2025C3, 0
+ object_event 3, EVENT_OBJ_GFX_EXPERT_F, 0, 8, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, VerdanturfTown_Mart_EventScript_2025C3, 0
object_event 4, EVENT_OBJ_GFX_LASS, 0, 3, 2, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 0, 0, VerdanturfTown_Mart_EventScript_2025CC, 0
VerdanturfTown_Mart_MapWarps: @ 852E7F0
diff --git a/data/maps/VerdanturfTown_PokemonCenter_1F/events.inc b/data/maps/VerdanturfTown_PokemonCenter_1F/events.inc
index 3faee7bda..246270361 100644
--- a/data/maps/VerdanturfTown_PokemonCenter_1F/events.inc
+++ b/data/maps/VerdanturfTown_PokemonCenter_1F/events.inc
@@ -1,8 +1,8 @@
VerdanturfTown_PokemonCenter_1F_EventObjects: @ 852E814
object_event 1, EVENT_OBJ_GFX_NURSE, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, VerdanturfTown_PokemonCenter_1F_EventScript_20273A, 0
object_event 2, EVENT_OBJ_GFX_GENTLEMAN, 0, 4, 5, 3, MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT, 1, 0, 0, 0, VerdanturfTown_PokemonCenter_1F_EventScript_202748, 0
- object_event 3, EVENT_OBJ_GFX_OLD_MAN_1, 0, 12, 2, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, VerdanturfTown_PokemonCenter_1F_EventScript_202751, 0
- object_event 4, EVENT_OBJ_GFX_LITTLE_BOY_2, 0, 10, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 0, 0, 0, VerdanturfTown_PokemonCenter_1F_EventScript_2C7FE6, 0
+ object_event 3, EVENT_OBJ_GFX_EXPERT_M, 0, 12, 2, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 0, 0, VerdanturfTown_PokemonCenter_1F_EventScript_202751, 0
+ object_event 4, EVENT_OBJ_GFX_LITTLE_BOY, 0, 10, 6, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 0, 0, 0, VerdanturfTown_PokemonCenter_1F_EventScript_2C7FE6, 0
VerdanturfTown_PokemonCenter_1F_MapWarps: @ 852E874
warp_def 7, 8, 3, 2, MAP_VERDANTURF_TOWN
diff --git a/data/maps/VerdanturfTown_WandasHouse/events.inc b/data/maps/VerdanturfTown_WandasHouse/events.inc
index e55967bd7..5f0fd0b3c 100644
--- a/data/maps/VerdanturfTown_WandasHouse/events.inc
+++ b/data/maps/VerdanturfTown_WandasHouse/events.inc
@@ -1,9 +1,9 @@
VerdanturfTown_WandasHouse_EventObjects: @ 852E92C
object_event 1, EVENT_OBJ_GFX_WALLY, 0, 14, 5, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, VerdanturfTown_WandasHouse_EventScript_2028BF, 806
object_event 2, EVENT_OBJ_GFX_BLACK_BELT, 0, 5, 4, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, VerdanturfTown_WandasHouse_EventScript_202913, 808
- object_event 3, EVENT_OBJ_GFX_MAN_3, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, VerdanturfTown_WandasHouse_EventScript_2028E1, 809
- object_event 4, EVENT_OBJ_GFX_WOMAN_2, 0, 2, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, VerdanturfTown_WandasHouse_EventScript_20294E, 0
- object_event 5, EVENT_OBJ_GFX_WOMAN_3, 0, 5, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, VerdanturfTown_WandasHouse_EventScript_20291C, 984
+ object_event 3, EVENT_OBJ_GFX_POKEFAN_M, 0, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, VerdanturfTown_WandasHouse_EventScript_2028E1, 809
+ object_event 4, EVENT_OBJ_GFX_POKEFAN_F, 0, 2, 4, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, VerdanturfTown_WandasHouse_EventScript_20294E, 0
+ object_event 5, EVENT_OBJ_GFX_WOMAN_2, 0, 5, 5, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 0, 0, VerdanturfTown_WandasHouse_EventScript_20291C, 984
VerdanturfTown_WandasHouse_MapWarps: @ 852E9A4
warp_def 7, 7, 0, 3, MAP_VERDANTURF_TOWN
diff --git a/data/maps/VictoryRoad_1F/events.inc b/data/maps/VictoryRoad_1F/events.inc
index 3df6ff6b0..f162a9d80 100644
--- a/data/maps/VictoryRoad_1F/events.inc
+++ b/data/maps/VictoryRoad_1F/events.inc
@@ -1,13 +1,13 @@
VictoryRoad_1F_EventObjects: @ 8535E04
- object_event 1, EVENT_OBJ_GFX_MAN_4, 0, 33, 22, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 3, VictoryRoad_1F_EventScript_235E73, 0
- object_event 2, EVENT_OBJ_GFX_WOMAN_7, 0, 6, 15, 4, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 4, VictoryRoad_1F_EventScript_235EA1, 0
- object_event 3, EVENT_OBJ_GFX_MAN_4, 0, 27, 34, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 0, 0, 1, 3, VictoryRoad_1F_EventScript_235E8A, 0
+ object_event 1, EVENT_OBJ_GFX_MAN_3, 0, 33, 22, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 1, 3, VictoryRoad_1F_EventScript_235E73, 0
+ object_event 2, EVENT_OBJ_GFX_WOMAN_5, 0, 6, 15, 4, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 4, VictoryRoad_1F_EventScript_235EA1, 0
+ object_event 3, EVENT_OBJ_GFX_MAN_3, 0, 27, 34, 3, MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT, 0, 0, 1, 3, VictoryRoad_1F_EventScript_235E8A, 0
object_event 4, EVENT_OBJ_GFX_WALLY, 0, 12, 25, 4, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, VictoryRoad_1F_EventScript_235E2C, 858
object_event 5, EVENT_OBJ_GFX_ITEM_BALL, 0, 40, 26, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, VictoryRoad_1F_EventScript_291483, 1084
object_event 6, EVENT_OBJ_GFX_ITEM_BALL, 0, 37, 39, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, VictoryRoad_1F_EventScript_291490, 1085
object_event 7, EVENT_OBJ_GFX_WALLY, 0, 31, 9, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, VictoryRoad_1F_EventScript_235E35, 751
- object_event 8, EVENT_OBJ_GFX_WOMAN_7, 0, 29, 17, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 2, VictoryRoad_1F_EventScript_235ECF, 0
- object_event 9, EVENT_OBJ_GFX_MAN_4, 0, 32, 17, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 2, VictoryRoad_1F_EventScript_235EB8, 0
+ object_event 8, EVENT_OBJ_GFX_WOMAN_5, 0, 29, 17, 3, MOVEMENT_TYPE_FACE_RIGHT, 1, 1, 1, 2, VictoryRoad_1F_EventScript_235ECF, 0
+ object_event 9, EVENT_OBJ_GFX_MAN_3, 0, 32, 17, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 2, VictoryRoad_1F_EventScript_235EB8, 0
VictoryRoad_1F_MapWarps: @ 8535EDC
warp_def 15, 40, 3, 2, MAP_EVER_GRANDE_CITY
diff --git a/data/maps/VictoryRoad_B1F/events.inc b/data/maps/VictoryRoad_B1F/events.inc
index f96b0d4bc..14d400fec 100644
--- a/data/maps/VictoryRoad_B1F/events.inc
+++ b/data/maps/VictoryRoad_B1F/events.inc
@@ -12,14 +12,14 @@ VictoryRoad_B1F_EventObjects: @ 8535F44
object_event 11, EVENT_OBJ_GFX_BREAKABLE_ROCK, 0, 20, 25, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, VictoryRoad_B1F_EventScript_2907A6, 28
object_event 12, EVENT_OBJ_GFX_BREAKABLE_ROCK, 0, 21, 26, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, VictoryRoad_B1F_EventScript_2907A6, 29
object_event 13, EVENT_OBJ_GFX_PUSHABLE_BOULDER, 0, 34, 4, 3, MOVEMENT_TYPE_LOOK_AROUND, 0, 0, 0, 0, VictoryRoad_B1F_EventScript_2908BA, 31
- object_event 14, EVENT_OBJ_GFX_MAN_4, 0, 37, 12, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 3, VictoryRoad_B1F_EventScript_2364E5, 0
- object_event 15, EVENT_OBJ_GFX_WOMAN_7, 0, 26, 16, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 1, 4, VictoryRoad_B1F_EventScript_2364FC, 0
- object_event 16, EVENT_OBJ_GFX_WOMAN_7, 0, 5, 21, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 2, VictoryRoad_B1F_EventScript_236513, 0
+ object_event 14, EVENT_OBJ_GFX_MAN_3, 0, 37, 12, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 3, VictoryRoad_B1F_EventScript_2364E5, 0
+ object_event 15, EVENT_OBJ_GFX_WOMAN_5, 0, 26, 16, 3, MOVEMENT_TYPE_FACE_UP, 0, 0, 1, 4, VictoryRoad_B1F_EventScript_2364FC, 0
+ object_event 16, EVENT_OBJ_GFX_WOMAN_5, 0, 5, 21, 3, MOVEMENT_TYPE_FACE_LEFT, 0, 0, 1, 2, VictoryRoad_B1F_EventScript_236513, 0
object_event 17, EVENT_OBJ_GFX_BREAKABLE_ROCK, 0, 34, 3, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, VictoryRoad_B1F_EventScript_2907A6, 21
object_event 18, EVENT_OBJ_GFX_ITEM_BALL, 0, 42, 8, 4, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, VictoryRoad_B1F_EventScript_29149D, 1086
object_event 19, EVENT_OBJ_GFX_ITEM_BALL, 0, 32, 3, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, VictoryRoad_B1F_EventScript_2914AA, 1087
- object_event 20, EVENT_OBJ_GFX_MAN_4, 0, 14, 16, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 4, VictoryRoad_B1F_EventScript_23652A, 0
- object_event 21, EVENT_OBJ_GFX_WOMAN_7, 0, 14, 20, 3, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 1, 1, 1, 3, VictoryRoad_B1F_EventScript_236541, 0
+ object_event 20, EVENT_OBJ_GFX_MAN_3, 0, 14, 16, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 4, VictoryRoad_B1F_EventScript_23652A, 0
+ object_event 21, EVENT_OBJ_GFX_WOMAN_5, 0, 14, 20, 3, MOVEMENT_TYPE_FACE_UP_AND_RIGHT, 1, 1, 1, 3, VictoryRoad_B1F_EventScript_236541, 0
VictoryRoad_B1F_MapWarps: @ 853613C
warp_def 30, 25, 3, 0, MAP_VICTORY_ROAD_B2F
diff --git a/data/maps/VictoryRoad_B2F/events.inc b/data/maps/VictoryRoad_B2F/events.inc
index bcd5747f7..17d878215 100644
--- a/data/maps/VictoryRoad_B2F/events.inc
+++ b/data/maps/VictoryRoad_B2F/events.inc
@@ -1,11 +1,11 @@
VictoryRoad_B2F_EventObjects: @ 8536188
- object_event 1, EVENT_OBJ_GFX_MAN_4, 0, 15, 6, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 2, VictoryRoad_B2F_EventScript_2368D5, 0
- object_event 2, EVENT_OBJ_GFX_MAN_4, 0, 43, 14, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 4, VictoryRoad_B2F_EventScript_2368EC, 0
- object_event 3, EVENT_OBJ_GFX_WOMAN_7, 0, 2, 17, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 2, VictoryRoad_B2F_EventScript_236903, 0
- object_event 4, EVENT_OBJ_GFX_WOMAN_7, 0, 35, 22, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 2, VictoryRoad_B2F_EventScript_23691A, 0
+ object_event 1, EVENT_OBJ_GFX_MAN_3, 0, 15, 6, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 2, VictoryRoad_B2F_EventScript_2368D5, 0
+ object_event 2, EVENT_OBJ_GFX_MAN_3, 0, 43, 14, 3, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 4, VictoryRoad_B2F_EventScript_2368EC, 0
+ object_event 3, EVENT_OBJ_GFX_WOMAN_5, 0, 2, 17, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 2, VictoryRoad_B2F_EventScript_236903, 0
+ object_event 4, EVENT_OBJ_GFX_WOMAN_5, 0, 35, 22, 3, MOVEMENT_TYPE_FACE_LEFT, 1, 1, 1, 2, VictoryRoad_B2F_EventScript_23691A, 0
object_event 5, EVENT_OBJ_GFX_ITEM_BALL, 0, 13, 8, 3, MOVEMENT_TYPE_LOOK_AROUND, 1, 1, 0, 0, VictoryRoad_B2F_EventScript_2914B7, 1088
- object_event 6, EVENT_OBJ_GFX_WOMAN_7, 0, 25, 18, 4, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 2, VictoryRoad_B2F_EventScript_236948, 0
- object_event 7, EVENT_OBJ_GFX_MAN_4, 0, 25, 21, 4, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 2, VictoryRoad_B2F_EventScript_236931, 0
+ object_event 6, EVENT_OBJ_GFX_WOMAN_5, 0, 25, 18, 4, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 1, 2, VictoryRoad_B2F_EventScript_236948, 0
+ object_event 7, EVENT_OBJ_GFX_MAN_3, 0, 25, 21, 4, MOVEMENT_TYPE_FACE_UP, 1, 1, 1, 2, VictoryRoad_B2F_EventScript_236931, 0
VictoryRoad_B2F_MapWarps: @ 8536230
warp_def 30, 25, 3, 0, MAP_VICTORY_ROAD_B1F
diff --git a/data/scripts/apprentice.inc b/data/scripts/apprentice.inc
new file mode 100644
index 000000000..a644008d0
--- /dev/null
+++ b/data/scripts/apprentice.inc
@@ -0,0 +1,2869 @@
+#include "constants/apprentice.h"
+
+.macro apprentice_msg waitbuttonpress which
+setvar VAR_0x8004, 8
+setvar VAR_0x8005, \waitbuttonpress
+setvar VAR_0x8006, \which
+special CallApprenticeFunction
+waitstate
+.endm
+
+.macro apprentice_buff whichstringvar tobuff
+setvar VAR_0x8004, 16
+setvar VAR_0x8005, \whichstringvar
+setvar VAR_0x8006, \tobuff
+special CallApprenticeFunction
+.endm
+
+.macro apprentice_menu which
+setvar VAR_0x8004, 7
+setvar VAR_0x8005, \which
+special CallApprenticeFunction
+waitstate
+.endm
+
+EventScript_Apprentice:: @ 82B688D
+ lock
+ faceplayer
+ setvar VAR_0x8004, 0
+ special CallApprenticeFunction
+ compare VAR_RESULT, 0
+ goto_eq Script_Apprentice_FirstMeeting
+ setvar VAR_0x8004, 10
+ special CallApprenticeFunction
+ compare VAR_0x8004, 0
+ goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B68BE
+ checkflag FLAG_0x934
+ goto_eq Script_Apprentice_ReleaseAndEnd
+
+BattleFrontier_BattleTowerLobby_EventScript_2B68BE:
+ setvar VAR_0x8004, 11
+ special CallApprenticeFunction
+ compare VAR_RESULT, 2
+ goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B69D3
+ compare VAR_RESULT, 4
+ goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6ACF
+ compare VAR_RESULT, 3
+ goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6C77
+ compare VAR_RESULT, 1
+ goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6D5C
+ compare VAR_RESULT, 5
+ goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6DD4
+ release
+ releaseall
+ end
+
+Script_Apprentice_FirstMeeting:
+ apprentice_buff 0, APPRENTICE_BUFF_NAME
+ apprentice_msg FALSE, 0
+
+Script_Apprentice_FirstMeetingNag:
+ apprentice_menu APPRENTICE_ASK_YES_NO
+ compare VAR_RESULT, 1
+ goto_eq Script_Apprentice_FirstMeetingAskAgain
+ apprentice_msg FALSE, 2
+ apprentice_menu APPRENTICE_ASK_WHICH_LEVEL
+ setvar VAR_0x8004, 1
+ setorcopyvar VAR_0x8005, VAR_RESULT
+ addvar VAR_0x8005, 1
+ special CallApprenticeFunction
+ setvar VAR_0x8004, 3
+ special CallApprenticeFunction
+ apprentice_buff 0, APPRENTICE_BUFF_LEVEL
+ apprentice_msg TRUE, 3
+ call Script_Apprentice_SetLeavingFlags
+ release
+ releaseall
+ switch VAR_FACING
+ case 2, Script_Apprentice_LeaveGoRight
+ goto Script_Apprentice_Leave
+ end
+
+Script_Apprentice_FirstMeetingAskAgain:
+ apprentice_msg FALSE, 1
+ goto Script_Apprentice_FirstMeetingNag
+
+BattleFrontier_BattleTowerLobby_EventScript_2B69D3:
+ setvar VAR_0x8004, 14
+ setvar VAR_0x8005, 2
+ special CallApprenticeFunction
+ apprentice_buff 0, APPRENTICE_BUFF_SPECIES1
+ apprentice_buff 1, APPRENTICE_BUFF_SPECIES2
+ apprentice_msg FALSE, 6
+ apprentice_menu APPRENTICE_ASK_2SPECIES
+ copyvar VAR_0x8005, VAR_RESULT
+ compare VAR_0x8005, 0
+ call_if 1, BattleFrontier_BattleTowerLobby_EventScript_2B6ABA
+ compare VAR_0x8005, 1
+ call_if 1, BattleFrontier_BattleTowerLobby_EventScript_2B6AC0
+ setvar VAR_0x8004, 12
+ special CallApprenticeFunction
+ copyvar VAR_0x8006, VAR_RESULT
+ setvar VAR_0x8004, 13
+ special CallApprenticeFunction
+ setvar VAR_0x8004, 5
+ special CallApprenticeFunction
+ setvar VAR_0x8004, 12
+ special CallApprenticeFunction
+ compare VAR_RESULT, 3
+ call_if 1, BattleFrontier_BattleTowerLobby_EventScript_2B6AC6
+ setvar VAR_0x8004, 16
+ setvar VAR_0x8005, 0
+ copyvar VAR_0x8006, VAR_0x8007
+ special CallApprenticeFunction
+ setvar VAR_0x8004, 15
+ special CallApprenticeFunction
+ apprentice_msg TRUE, 7
+ call Script_Apprentice_SetLeavingFlags
+ release
+ releaseall
+ switch VAR_FACING
+ case 2, Script_Apprentice_LeaveGoRight
+ goto Script_Apprentice_Leave
+ end
+
+BattleFrontier_BattleTowerLobby_EventScript_2B6ABA:
+ setvar VAR_0x8007, 0
+ return
+
+BattleFrontier_BattleTowerLobby_EventScript_2B6AC0:
+ setvar VAR_0x8007, 1
+ return
+
+BattleFrontier_BattleTowerLobby_EventScript_2B6AC6:
+ setvar VAR_0x8004, 4
+ special CallApprenticeFunction
+ return
+
+BattleFrontier_BattleTowerLobby_EventScript_2B6ACF:
+ setvar VAR_0x8004, 14
+ setvar VAR_0x8005, 4
+ special CallApprenticeFunction
+ apprentice_buff 0, APPRENTICE_BUFF_SPECIES3
+ apprentice_msg TRUE, 10
+ setvar VAR_0x8004, 15
+ special CallApprenticeFunction
+
+BattleFrontier_BattleTowerLobby_EventScript_2B6B09:
+ fadescreen 1
+ setvar VAR_RESULT, 0
+ setvar VAR_0x8004, 19
+ special CallApprenticeFunction
+ waitstate
+ compare VAR_RESULT, 0
+ goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B81
+ setvar VAR_0x8004, 20
+ special CallApprenticeFunction
+ compare VAR_RESULT, 0
+ goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6C0C
+ apprentice_buff 0, APPRENTICE_BUFF_ITEM
+ apprentice_msg TRUE, 12
+ setvar VAR_0x8004, 5
+ special CallApprenticeFunction
+ call Script_Apprentice_SetLeavingFlags
+ release
+ releaseall
+ switch VAR_FACING
+ case 2, Script_Apprentice_LeaveGoRight
+ goto Script_Apprentice_Leave
+ end
+
+BattleFrontier_BattleTowerLobby_EventScript_2B6B81:
+ setvar VAR_0x8004, 14
+ setvar VAR_0x8005, 4
+ special CallApprenticeFunction
+ apprentice_buff 0, APPRENTICE_BUFF_SPECIES3
+ apprentice_msg FALSE, 13
+ apprentice_menu APPRENTICE_ASK_GIVE
+ setvar VAR_0x8004, 15
+ special CallApprenticeFunction
+ compare VAR_RESULT, 0
+ goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B09
+
+BattleFrontier_BattleTowerLobby_EventScript_2B6BD4:
+ apprentice_msg TRUE, 14
+ setvar VAR_0x8004, 5
+ special CallApprenticeFunction
+ call Script_Apprentice_SetLeavingFlags
+ release
+ releaseall
+ switch VAR_FACING
+ case 2, Script_Apprentice_LeaveGoRight
+ goto Script_Apprentice_Leave
+ end
+
+BattleFrontier_BattleTowerLobby_EventScript_2B6C0C:
+ setvar VAR_0x8004, 14
+ setvar VAR_0x8005, 4
+ special CallApprenticeFunction
+ apprentice_buff 0, APPRENTICE_BUFF_ITEM
+ apprentice_buff 1, APPRENTICE_BUFF_SPECIES3
+ apprentice_msg FALSE, 16
+ apprentice_menu APPRENTICE_ASK_GIVE
+ setvar VAR_0x8004, 15
+ special CallApprenticeFunction
+ compare VAR_RESULT, 0
+ goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B09
+ goto BattleFrontier_BattleTowerLobby_EventScript_2B6BD4
+ end
+
+BattleFrontier_BattleTowerLobby_EventScript_2B6C77:
+ setvar VAR_0x8004, 14
+ setvar VAR_0x8005, 3
+ special CallApprenticeFunction
+ apprentice_buff 0, APPRENTICE_BUFF_SPECIES3
+ apprentice_buff 1, APPRENTICE_BUFF_MOVE1
+ apprentice_buff 2, APPRENTICE_BUFF_MOVE2
+ apprentice_msg FALSE, 8
+ apprentice_menu APPRENTICE_ASK_MOVES
+ copyvar VAR_0x8005, VAR_RESULT
+ compare VAR_0x8005, 0
+ call_if 1, BattleFrontier_BattleTowerLobby_EventScript_2B6D50
+ compare VAR_0x8005, 1
+ call_if 1, BattleFrontier_BattleTowerLobby_EventScript_2B6D56
+ setvar VAR_0x8004, 17
+ special CallApprenticeFunction
+ setvar VAR_0x8004, 5
+ special CallApprenticeFunction
+ setvar VAR_0x8004, 16
+ setvar VAR_0x8005, 0
+ copyvar VAR_0x8006, VAR_0x8007
+ special CallApprenticeFunction
+ setvar VAR_0x8004, 15
+ special CallApprenticeFunction
+ apprentice_msg TRUE, 9
+ call Script_Apprentice_SetLeavingFlags
+ release
+ releaseall
+ switch VAR_FACING
+ case 2, Script_Apprentice_LeaveGoRight
+ goto Script_Apprentice_Leave
+ end
+
+BattleFrontier_BattleTowerLobby_EventScript_2B6D50:
+ setvar VAR_0x8007, 3
+ return
+
+BattleFrontier_BattleTowerLobby_EventScript_2B6D56:
+ setvar VAR_0x8007, 4
+ return
+
+BattleFrontier_BattleTowerLobby_EventScript_2B6D5C:
+ apprentice_msg FALSE, 4
+ apprentice_menu APPRENTICE_ASK_3SPECIES
+ copyvar VAR_0x8005, VAR_RESULT
+ setvar VAR_0x8004, 18
+ special CallApprenticeFunction
+ setvar VAR_0x8004, 5
+ special CallApprenticeFunction
+ apprentice_buff 0, APPRENTICE_BUFF_SPECIES4
+ apprentice_msg TRUE, 5
+ call Script_Apprentice_SetLeavingFlags
+ release
+ releaseall
+ switch VAR_FACING
+ case 2, Script_Apprentice_LeaveGoRight
+ goto Script_Apprentice_Leave
+ end
+
+BattleFrontier_BattleTowerLobby_EventScript_2B6DD4:
+ apprentice_msg TRUE, 11
+ setvar VAR_0x8004, 25
+ special CallApprenticeFunction
+ setvar VAR_0x8004, 19
+ call BattleFrontier_BattleTowerLobby_EventScript_271E7C
+ lock
+ faceplayer
+ setvar VAR_0x8004, 21
+ special CallApprenticeFunction
+ apprentice_buff 0, APPRENTICE_BUFF_EASY_CHAT
+ apprentice_msg TRUE, 15
+ setvar VAR_0x8004, 9
+ special CallApprenticeFunction
+ call Script_Apprentice_SetLeavingFlags
+ release
+ releaseall
+ switch VAR_FACING
+ case 2, Script_Apprentice_LeaveGoRight
+ goto Script_Apprentice_Leave
+ end
+
+Script_Apprentice_SetLeavingFlags:
+ setflag FLAG_0x2BD
+ setflag FLAG_0x934
+ return
+
+Script_Apprentice_LeaveGoRight:
+ setvar VAR_0x8004, 24
+ special CallApprenticeFunction
+ compare VAR_0x8004, 0
+ goto_eq Script_Apprentice_End
+ applymovement 6, BattleFrontier_BattleTowerLobby_Movement_2B6E94
+ waitmovement 0
+ end
+
+Script_Apprentice_Leave:
+ setvar VAR_0x8004, 24
+ special CallApprenticeFunction
+ compare VAR_0x8004, 0
+ goto_eq Script_Apprentice_End
+ applymovement 6, BattleFrontier_BattleTowerLobby_Movement_2B6E95
+ waitmovement 0
+ end
+
+Script_Apprentice_ReleaseAndEnd:
+ release
+ releaseall
+ end
+
+Script_Apprentice_End:
+ end
+
+BattleFrontier_BattleTowerLobby_Movement_2B6E94: @ 82B6E94
+ walk_fast_right
+
+BattleFrontier_BattleTowerLobby_Movement_2B6E95: @ 82B6E95
+ walk_fast_down
+ walk_fast_down
+ walk_fast_right
+ walk_fast_right
+ walk_fast_right
+ walk_fast_right
+ walk_fast_right
+ walk_fast_right
+ walk_fast_right
+ walk_fast_right
+ walk_fast_right
+ set_invisible
+ slide_down
+ slide_down
+ slide_down
+ step_end
+
+gText_082B6EA5:: @ 82B6EA5
+ .string "Um, I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice.\n"
+ .string "Snivel… This tension is getting to me…$"
+
+gText_082B6EEC:: @ 82B6EEC
+ .string "I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice!\n"
+ .string "Here we come!$"
+
+gText_082B6F16:: @ 82B6F16
+ .string "I’m the no. {STR_VAR_2} apprentice of {STR_VAR_1}!\n"
+ .string "Accept my challenge!$"
+
+gText_082B6F4C:: @ 82B6F4C
+ .string "Um… I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice…\n"
+ .string "Do you think someone like me can win?$"
+
+gText_082B6F92:: @ 82B6F92
+ .string "I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice!\n"
+ .string "I’ll let you challenge me!$"
+
+gText_082B6FC9:: @ 82B6FC9
+ .string "I’m horribly busy, but I also happen\n"
+ .string "to be {STR_VAR_1}’s no. {STR_VAR_2} apprentice.$"
+
+gText_082B700C:: @ 82B700C
+ .string "I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice.\n"
+ .string "Glad to meet you!$"
+
+gText_082B703A:: @ 82B703A
+ .string "I serve as {STR_VAR_1}’s no. {STR_VAR_2} apprentice.\n"
+ .string "May I begin?$"
+
+gText_082B706A:: @ 82B706A
+ .string "Eek! I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice!\n"
+ .string "I’ll do my best!$"
+
+gText_082B709C:: @ 82B709C
+ .string "Yeehaw! I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice!\n"
+ .string "Put ’em up!$"
+
+gText_082B70CC:: @ 82B70CC
+ .string "I’m {STR_VAR_1}’s 1,000th apprentice!\n"
+ .string "Actually, I’m no. {STR_VAR_2}! Here goes!$"
+
+gText_082B710A:: @ 82B710A
+ .string "Yeah, I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice!\n"
+ .string "Let’s get rockin’ and a-rollin’!$"
+
+gText_082B714D:: @ 82B714D
+ .string "Yippee-yahoo! I’m what you call\n"
+ .string "{STR_VAR_1}’s no. {STR_VAR_2} apprentice!$"
+
+gText_082B7185:: @ 82B7185
+ .string "Cough! I’m {STR_VAR_1}’s no. {STR_VAR_2} apprentice.\n"
+ .string "Good to meet you! Cough!$"
+
+gText_082B71C1:: @ 82B71C1
+ .string "This is nerve-racking…\n"
+ .string "I’m the no. {STR_VAR_2} apprentice of {STR_VAR_1}.$"
+
+gText_082B71F9:: @ 82B71F9
+ .string "I am {STR_VAR_1}’s no. {STR_VAR_2} apprentice,\n"
+ .string "and that’s no lie.$"
+
+gText_082B7229:: @ 82B7229
+ .string "Are you… {PLAYER}?\n"
+ .string "Oh! Sniff…sob…\p"
+ .string "Oh! S-sorry…\n"
+ .string "I’m so nervous, I can’t help crying…\p"
+ .string "I’m {STR_VAR_1}, and I really look up\n"
+ .string "to you, {PLAYER}.\p"
+ .string "I… I had this dream of one day meeting\n"
+ .string "you and asking you about POKéMON.\p"
+ .string "Please, please, {PLAYER}!\n"
+ .string "Please teach me about POKéMON!$"
+
+gText_082B731C:: @ 82B731C
+ .string "Oh… B-but…\n"
+ .string "Snivel… Waaaaaaah!\p"
+ .string "Please!\n"
+ .string "I’m begging you, please!$"
+
+gText_082B735B:: @ 82B735B
+ .string "Oh, really? You will?\n"
+ .string "Awesome! Wicked! Awoooh!\p"
+ .string "Oh… I’m sorry…\n"
+ .string "I’m so happy, I’m crying…\p"
+ .string "Um… Then please tell me!\n"
+ .string "It’s about the BATTLE TOWER.\p"
+ .string "Which would be better for me: Level 50\n"
+ .string "or the Open Level?$"
+
+gText_082B7423:: @ 82B7423
+ .string "{STR_VAR_1}?\n"
+ .string "Waaaaah!\p"
+ .string "Oh! I’m so sorry!\n"
+ .string "You’ve made me happy by choosing\l"
+ .string "the level for me, and it’s made me cry…\p"
+ .string "Snivel…\n"
+ .string "Thank you so much!\l"
+ .string "Please talk with me again!$"
+
+gText_082B74C1:: @ 82B74C1
+ .string "Wowee! You’re {PLAYER}, aren’t you?\n"
+ .string "You’re awesomely strong, aren’t you?\p"
+ .string "I’m {STR_VAR_1}!\n"
+ .string "I just became a TRAINER!\p"
+ .string "Please, {PLAYER}!\n"
+ .string "Can you be my teacher and tell me\l"
+ .string "lots about being a TRAINER?$"
+
+gText_082B756F:: @ 82B756F
+ .string "Aww, why?\n"
+ .string "Oh, please? Pretty please?\l"
+ .string "Please be my teacher, please!$"
+
+gText_082B75B2:: @ 82B75B2
+ .string "Yay! Great!\p"
+ .string "The first thing I wanted to ask you is\n"
+ .string "about the BATTLE TOWER!\p"
+ .string "The Level 50 and Open Level Rooms…\n"
+ .string "Which would be perfect for me?$"
+
+gText_082B763F:: @ 82B763F
+ .string "{STR_VAR_1}, huh? That’s true!\n"
+ .string "I’ll do my best there!\p"
+ .string "If we meet here again, please teach\n"
+ .string "me something else, teacher!$"
+
+gText_082B76AC:: @ 82B76AC
+ .string "Um… Are you {PLAYER}?\n"
+ .string "My name is {STR_VAR_1}.\p"
+ .string "I want to become a POKéMON TRAINER,\n"
+ .string "but I don’t know what to do…\p"
+ .string "So I thought maybe I could ask you for\n"
+ .string "advice because you’re so famous.\p"
+ .string "{PLAYER}, could you give me advice?$"
+
+gText_082B7772:: @ 82B7772
+ .string "Oh, but…\p"
+ .string "I sincerely want to become a POKéMON\n"
+ .string "TRAINER!\p"
+ .string "Please, can you answer my questions?$"
+
+gText_082B77CE:: @ 82B77CE
+ .string "Thank you!\n"
+ .string "Here’s my first question right away!\p"
+ .string "The BATTLE TOWER has two levels,\n"
+ .string "Level 50 and Open Level, right?\p"
+ .string "Which level do you think is more\n"
+ .string "suitable for me?$"
+
+gText_082B7871:: @ 82B7871
+ .string "Oh, the {STR_VAR_1} challenge?\n"
+ .string "Understood!\p"
+ .string "If I have another question, I’ll come\n"
+ .string "back here for your advice!$"
+
+gText_082B78D4:: @ 82B78D4
+ .string "Oh? Huh? You’re…\n"
+ .string "No, that can’t be true.\p"
+ .string "There isn’t any way that someone\n"
+ .string "like me could meet {PLAYER}.\p"
+ .string "…You really are {PLAYER}?\n"
+ .string "I can’t believe I’m talking to you!\p"
+ .string "When something this good happens,\n"
+ .string "only terrible things will happen to me\l"
+ .string "now, I just know it…\p"
+ .string "…I’m sorry…\n"
+ .string "I’m… {STR_VAR_1}…\p"
+ .string "There isn’t anything special about\n"
+ .string "me that I can be proud of…\p"
+ .string "I shouldn’t even say anything about\n"
+ .string "myself because you’ll forget…\p"
+ .string "I had this dream that if I ever met\n"
+ .string "you, {PLAYER}, that maybe I could ask\l"
+ .string "you for advice as a TRAINER.\p"
+ .string "But I don’t think you would agree\n"
+ .string "to that.\p"
+ .string "…Or will you be so kind as to give\n"
+ .string "me advice?$"
+
+gText_082B7B1A:: @ 82B7B1A
+ .string "I knew it…\p"
+ .string "It had to happen because I’m such\n"
+ .string "a really boring nobody…\p"
+ .string "But I thought just maybe…\n"
+ .string "You won’t reconsider, will you?\p"
+ .string "But I can’t give up just like that.\n"
+ .string "I’ll ask you while I’m still lucky!\p"
+ .string "Please, will you be so kind as to give\n"
+ .string "me advice?$"
+
+gText_082B7C13:: @ 82B7C13
+ .string "Really? I can’t believe it!\n"
+ .string "I can’t believe you’ll advise me!\l"
+ .string "I… I’m so happy…\p"
+ .string "What I want to ask you is really\n"
+ .string "trivial, but I can’t decide…\p"
+ .string "At the BATTLE TOWER, they let you\n"
+ .string "choose Level 50 or Open Level.\p"
+ .string "Which course do you think even I may\n"
+ .string "have a chance at?$"
+
+gText_082B7D18:: @ 82B7D18
+ .string "{STR_VAR_1}? Okay!\n"
+ .string "But do you really think someone like\l"
+ .string "me would have a chance?\p"
+ .string "I’ll do my best, even though I don’t\n"
+ .string "think it will work.\p"
+ .string "Thank you very much for spending\n"
+ .string "time with someone like me.$"
+
+gText_082B7DD4:: @ 82B7DD4
+ .string "Oh! You’re {PLAYER}{STRING 5}, aren’t you?\p"
+ .string "I’ve heard that you’re tough at\n"
+ .string "POKéMON!\p"
+ .string "I’m {STR_VAR_1}!\n"
+ .string "I’ll be your friend!\p"
+ .string "Did you know?\p"
+ .string "You can’t win at the BATTLE FRONTIER\n"
+ .string "if all you know is what they teach at\l"
+ .string "the TRAINER’S SCHOOL.\p"
+ .string "I’m willing to listen to your advice.\n"
+ .string "You’ll agree, of course?$"
+
+gText_082B7EE5:: @ 82B7EE5
+ .string "Huh? Why are you refusing me?\n"
+ .string "It’s me who’s asking you!\l"
+ .string "You have to reconsider!$"
+
+gText_082B7F35:: @ 82B7F35
+ .string "Okay, so there is this something.\n"
+ .string "I want you to decide it for me.\p"
+ .string "You know that the BATTLE TOWER has\n"
+ .string "Level 50 and Open Level Rooms?\p"
+ .string "Which do you think would be good\n"
+ .string "for me, {PLAYER}{STRING 5}?$"
+
+gText_082B7FE8:: @ 82B7FE8
+ .string "Okay, {STR_VAR_1} is suitable for me?\n"
+ .string "Thank you!\p"
+ .string "Knowing that you made the decision,\n"
+ .string "{PLAYER}{STRING 5}, I won’t be so upset if\l"
+ .string "I lose.\p"
+ .string "Okay, I’ll look to you for advice again.\n"
+ .string "Bye!$"
+
+gText_082B8087:: @ 82B8087
+ .string "Oh, hi, there! {PLAYER}{STRING 5}!\n"
+ .string "I know you because you’re famous!\l"
+ .string "Call me {STR_VAR_1}! Glad to meet you!\p"
+ .string "I’m a TRIATHLETE, so I keep myself\n"
+ .string "fit even while I raise POKéMON.\p"
+ .string "I’m also involved with other things\n"
+ .string "like work, napping, ballroom dancing…\p"
+ .string "Being this busy, it’s not so easy for\n"
+ .string "me to become a decent TRAINER.\p"
+ .string "So, I have a proposition!\p"
+ .string "There must be a reason why we met.\n"
+ .string "So, {PLAYER}{STRING 5}, how about sharing your\l"
+ .string "wisdom with me every so often?$"
+
+gText_082B822B:: @ 82B822B
+ .string "Oh, but, please?\n"
+ .string "A guy like me needs someone like\l"
+ .string "you, {PLAYER}{STRING 5}!\p"
+ .string "Honestly, I need your advice!$"
+
+gText_082B8286:: @ 82B8286
+ .string "Thank you! That’s more like it!\n"
+ .string "So, let’s start with an easy one!\p"
+ .string "You know about the BATTLE TOWER’s\n"
+ .string "two courses, right?\l"
+ .string "You know, Level 50 and Open Level.\p"
+ .string "Me being a busy guy, which one should\n"
+ .string "I gear up for?$"
+
+gText_082B8356:: @ 82B8356
+ .string "{STR_VAR_1}, huh? Okay, gotcha.\n"
+ .string "I’ll find time somehow and give it a go!\p"
+ .string "…Whoops, I’d better go to work!\n"
+ .string "Thanks! See you around!$"
+
+gText_082B83CE:: @ 82B83CE
+ .string "No way! Uh-uh!\n"
+ .string "Are you maybe the real {PLAYER}?\p"
+ .string "A-hah! Awesome! I’m {STR_VAR_1},\n"
+ .string "so pleased to meet you!\p"
+ .string "{PLAYER}, you’re very strong,\n"
+ .string "aren’t you?\p"
+ .string "Everyone’s talking about you!\p"
+ .string "Oh! I just had this great idea!\n"
+ .string "I’ll get advice off you, {PLAYER}!\l"
+ .string "I’m sure it will make me tougher!\p"
+ .string "Isn’t it a great idea?\n"
+ .string "Please, I want your advice!$"
+
+gText_082B84FC:: @ 82B84FC
+ .string "Ahahaha, you can pretend to be mean,\n"
+ .string "but you can’t fool me!\l"
+ .string "You really mean okay, don’t you?$"
+
+gText_082B8559:: @ 82B8559
+ .string "Yay! I knew you’d have a big heart,\n"
+ .string "{PLAYER}!\p"
+ .string "What should I ask you first?\n"
+ .string "…Oh, I thought of something!\p"
+ .string "Drum roll, please!\n"
+ .string "The question I have is…\p"
+ .string "If I were to take a BATTLE TOWER\n"
+ .string "challenge, which way should I go?\p"
+ .string "Level 50 or Open Level?\n"
+ .string "Which suits me more?$"
+
+gText_082B8656:: @ 82B8656
+ .string "Oh-oh-oh!\n"
+ .string "{STR_VAR_1}, you say!\l"
+ .string "Thank you for a totally cool reply!\p"
+ .string "I guess that’s about all I wanted\n"
+ .string "to ask you today.\p"
+ .string "Let’s meet here again, okay?\n"
+ .string "Thanks!$"
+
+gText_082B86EA:: @ 82B86EA
+ .string "I beg your pardon, but…\n"
+ .string "Are you {PLAYER}?\p"
+ .string "I’m {STR_VAR_1}, and I am delighted to\n"
+ .string "make your acquaintance.\p"
+ .string "I have long been an admirer\n"
+ .string "of yours…\p"
+ .string "… … … … … …\p"
+ .string "Um… I hope you don’t find this\n"
+ .string "request too much of a burden, but…\p"
+ .string "May I become your apprentice,\n"
+ .string "{PLAYER}?$"
+
+gText_082B87DA:: @ 82B87DA
+ .string "Oh…!\p"
+ .string "… … … … … …\n"
+ .string "… … … … … …\p"
+ .string "…I must have fainted from shock.\n"
+ .string "I’m sorry, I must have misheard you.\p"
+ .string "Please! Please say that you will\n"
+ .string "accept me as your apprentice!$"
+
+gText_082B887C:: @ 82B887C
+ .string "Oh… I’m delighted!\p"
+ .string "I don’t wish to waste your time,\n"
+ .string "so please advise me on this.\p"
+ .string "I plan to take a BATTLE TOWER\n"
+ .string "challenge soon.\p"
+ .string "However, there are two levels…\p"
+ .string "Which would be most suitable for me?\n"
+ .string "Level 50 or Open Level?$"
+
+gText_082B8957:: @ 82B8957
+ .string "{STR_VAR_1} is your choice!\n"
+ .string "I see. I will do my best!\p"
+ .string "Thank you, {PLAYER}.\n"
+ .string "I hope I can count on you again.\l"
+ .string "Please take care!$"
+
+gText_082B89C6:: @ 82B89C6
+ .string "Eek! Eek! {PLAYER}!\n"
+ .string "You spoke to me!\l"
+ .string "I… I’m overjoyed!\p"
+ .string "Me! My name is {STR_VAR_1}!\n"
+ .string "I just became a TRAINER!\p"
+ .string "I’m delighted I met you, {PLAYER},\n"
+ .string "the big name in POKéMON circles!\p"
+ .string "Oh-oh-oh, I know!\n"
+ .string "May I ask a huge favor, {PLAYER}?\p"
+ .string "Please take me in as your apprentice!\n"
+ .string "I want to learn from you!$"
+
+gText_082B8ACF:: @ 82B8ACF
+ .string "Waaaah!\n"
+ .string "{PLAYER} turned me down…\l"
+ .string "It… It’s an invaluable experience!\p"
+ .string "{PLAYER}, please! I want to hear\n"
+ .string "an affirmative answer this time!\p"
+ .string "I beg you for your guidance!$"
+
+gText_082B8B66:: @ 82B8B66
+ .string "Hieeeeh! {PLAYER} said yes!\n"
+ .string "{PLAYER} said yes!\p"
+ .string "I won’t be able to sleep tonight…\n"
+ .string "Thank you ever so much!\p"
+ .string "Then, here’s my question!\p"
+ .string "At the BATTLE TOWER, what is right\n"
+ .string "for me, Level 50 or Open Level?$"
+
+gText_082B8C20:: @ 82B8C20
+ .string "{STR_VAR_1}! Perfectly understood!\n"
+ .string "I understand perfectly!\l"
+ .string "I’m deliriously delighted!\p"
+ .string "I hope you’ll be willing to teach me\n"
+ .string "some more another time.$"
+
+gText_082B8CAA:: @ 82B8CAA
+ .string "Whoa! Could you be…\n"
+ .string "Might you be… {PLAYER}{STRING 5}?!\l"
+ .string "That strong and famous TRAINER?\l"
+ .string "Well, hello, aren’t I just the luckiest!\p"
+ .string "Hello, the name’s {STR_VAR_1}!\p"
+ .string "I’ve been on the lookout for\n"
+ .string "a POKéMON teacher.\p"
+ .string "And with impeccably good timing,\n"
+ .string "along came you, {PLAYER}{STRING 5}!\p"
+ .string "So, there you have it, {PLAYER}{STRING 5}!\n"
+ .string "Let me apprentice under you!$"
+
+gText_082B8DD3:: @ 82B8DD3
+ .string "Gwaaaah!\n"
+ .string "You’re quite cool and tough…\p"
+ .string "Don’t be that way, please.\n"
+ .string "I’m asking you!$"
+
+gText_082B8E24:: @ 82B8E24
+ .string "Oh, yeah! That’s a solid reply!\n"
+ .string "Excellent, I might add!\p"
+ .string "So how about a first piece of advice\n"
+ .string "on the BATTLE TOWER?\p"
+ .string "If I were to go, what would be better?\n"
+ .string "Level 50 or Open Level?$"
+
+gText_082B8ED5:: @ 82B8ED5
+ .string "Uh-huh, {STR_VAR_1} it is!\n"
+ .string "OK, A-OK!\l"
+ .string "I’ll go show my mettle, like, jam!\p"
+ .string "All right, I’ll look to you as my mentor!\n"
+ .string "Adios!$"
+
+gText_082B8F45:: @ 82B8F45
+ .string "Oh, hey, {PLAYER}{STRING 5}, right?\n"
+ .string "The police were looking for you!\p"
+ .string "… … …\n"
+ .string "Of course I’m lying!\p"
+ .string "Me, I’m {STR_VAR_1}. Despite the way\n"
+ .string "I look, I’m the POKéMON CHAMPION!\l"
+ .string "…That’s a lie, too!\p"
+ .string "This is no lie, though.\n"
+ .string "I’m not very good at battling.\p"
+ .string "So, how about you becoming my master\n"
+ .string "about all things POKéMON?$"
+
+gText_082B905F:: @ 82B905F
+ .string "If you’re going to act cold like that,\n"
+ .string "I’ll show you what I’ll do!\p"
+ .string "Waaah! Waaah! Waaah!\n"
+ .string "Hiccup!\p"
+ .string "Hahaha, that was my FAKE TEARS!\p"
+ .string "Come on, will you please be\n"
+ .string "my POKéMON master?$"
+
+gText_082B910E:: @ 82B910E
+ .string "Yippee!\n"
+ .string "I’ll buy you a boat for that!\p"
+ .string "Of course I’m lying again!\n"
+ .string "But… Thank you, master!\p"
+ .string "You know how there’s Level 50 and\n"
+ .string "Open Level at the BATTLE TOWER?\p"
+ .string "I’m having trouble deciding which\n"
+ .string "level I should challenge…\p"
+ .string "Can you decide for me, master?$"
+
+gText_082B9204:: @ 82B9204
+ .string "Okay, so {STR_VAR_1} is better!\n"
+ .string "I’ll go to the other level, then!\p"
+ .string "Just kidding!\n"
+ .string "I’ll obey your teaching, master!\p"
+ .string "Thanks, master!\n"
+ .string "I hope you’ll keep teaching me!$"
+
+gText_082B929C:: @ 82B929C
+ .string "A-H-O-Y!\n"
+ .string "And that spells ahoy, and it means hi!\p"
+ .string "I’m {STR_VAR_1}, the rappin’ SAILOR\n"
+ .string "am I!\p"
+ .string "Your turn now, tell me a little about\n"
+ .string "yourself, give it a try!\p"
+ .string "Uh-huh, uh-huh!\n"
+ .string "{PLAYER}{STRING 5}’s your name,\l"
+ .string "and POKéMON’s your game!\p"
+ .string "And you’re at a delicate age\n"
+ .string "when all the world’s your stage!\p"
+ .string "Anyway, I just want to say,\n"
+ .string "that you’re the tenth TRAINER\l"
+ .string "I’ve spoken to today.\p"
+ .string "Let’s make that a celebration!\n"
+ .string "Become my mentor for commemoration!$"
+
+gText_082B9438:: @ 82B9438
+ .string "But!\n"
+ .string "You have to work with me!\p"
+ .string "Don’t be such a tease!\n"
+ .string "Become my mentor, please!$"
+
+gText_082B9488:: @ 82B9488
+ .string "That’s it!\n"
+ .string "{PLAYER}, you’ve got the spirit!\p"
+ .string "So here’s my first question\n"
+ .string "that begs your suggestion!\p"
+ .string "It’s about the BATTLE TOWER,\n"
+ .string "and it hinges on my power!\p"
+ .string "Level 50 and Open Level there be,\n"
+ .string "which is the one that’s good for me?$"
+
+gText_082B9564:: @ 82B9564
+ .string "Okay, {STR_VAR_1} it is, you say!\n"
+ .string "I’ll go and take it on my way!\p"
+ .string "If it’s advice I ever need,\n"
+ .string "{PLAYER}, your word I’ll always heed!$"
+
+gText_082B95D8:: @ 82B95D8
+ .string "Say, hey, aren’t you {PLAYER}?\n"
+ .string "What should I do? Talk to you?\l"
+ .string "Why not? I’m already talking to you!\p"
+ .string "{PLAYER}, are you surprised at me?\n"
+ .string "I’d better tell you who I happen to be!\p"
+ .string "{STR_VAR_1} is what you can call me.\n"
+ .string "The brightest star in guitardom,\l"
+ .string "that’s me!\p"
+ .string "Are you receiving me?\n"
+ .string "You are receiving me!\p"
+ .string "My luck’s at its best,\n"
+ .string "I’ll hit you with a request!\p"
+ .string "{PLAYER}, let me be your underling!\n"
+ .string "I want you to teach me everything!$"
+
+gText_082B9763:: @ 82B9763
+ .string "You’re turning me down, then?\n"
+ .string "I’ll just have to ask you again!\p"
+ .string "{PLAYER}, I beg to be your underling!\n"
+ .string "I need you to teach me everything!$"
+
+gText_082B97E5:: @ 82B97E5
+ .string "Lucky, yeah, woohoo!\n"
+ .string "Should I pop a question to you?\p"
+ .string "Since we’re near the BATTLE TOWER,\n"
+ .string "how about a question about its power?\p"
+ .string "Of the choices you see,\n"
+ .string "which is the right one for me?$"
+
+gText_082B989A:: @ 82B989A
+ .string "If {STR_VAR_1} is what you suggest,\n"
+ .string "it must be the very best!\p"
+ .string "Well, {PLAYER}, I have to roam free,\n"
+ .string "but don’t you forget about me.\p"
+ .string "See you again, my smart friend!$"
+
+gText_082B992D:: @ 82B992D
+ .string "Oh, hi! You there!\n"
+ .string "Can I get you to massage my shoulder?\p"
+ .string "…Yes, there! That’s it!\n"
+ .string "Ouch, ouch! Oooh, that feels great!\p"
+ .string "My name’s {STR_VAR_1}.\n"
+ .string "I take karate training, but my body’s\l"
+ .string "not built to take the abuse…\p"
+ .string "I decided I’ll battle POKéMON and\n"
+ .string "toughen myself up.\p"
+ .string "You’re {PLAYER}{STRING 5}, aren’t you?\n"
+ .string "The POKéMON LEAGUE CHAMP?\p"
+ .string "Listen, can I get you to give me\n"
+ .string "advice?$"
+
+gText_082B9A84:: @ 82B9A84
+ .string "Oh, why?\p"
+ .string "I won’t be a big bother, I promise!\n"
+ .string "Please?$"
+
+gText_082B9AB9:: @ 82B9AB9
+ .string "Thank you. Mighty good of you!\n"
+ .string "…Cough! Cough!\p"
+ .string "Oogh, I have to toughen up quick…\p"
+ .string "I’ll be heading off to the BATTLE TOWER\n"
+ .string "right away, but what would be better\l"
+ .string "for me? Level 50 or Open Level?$"
+
+gText_082B9B76:: @ 82B9B76
+ .string "Hm, all right. That’s {STR_VAR_1}.\n"
+ .string "I’ll go there right away.\p"
+ .string "I hope I can keep hitting you up for\n"
+ .string "help--after all, you’re my mentor!$"
+
+gText_082B9BF2:: @ 82B9BF2
+ .string "Er… Um…\n"
+ .string "{PLAYER}{STRING 5}…?\p"
+ .string "Please, don’t look at me that way.\n"
+ .string "You’re making me all self-conscious.\p"
+ .string "I… I’m {STR_VAR_1}.\p"
+ .string "I’m really embarrassed to say this,\n"
+ .string "but I explore ancient ruins and such.\p"
+ .string "I’m even more embarrassed to admit\n"
+ .string "I’m interested in the BATTLE FRONTIER.\p"
+ .string "{PLAYER}{STRING 5}, you have a reputation as\n"
+ .string "a tough TRAINER…\p"
+ .string "It’s hard for me to say this,\n"
+ .string "but I want to ask something.\p"
+ .string "Could you become my teacher and\n"
+ .string "give me advice?$"
+
+gText_082B9D83:: @ 82B9D83
+ .string "Please don’t brush me off like this!\n"
+ .string "I can’t live with the humiliation.\p"
+ .string "Please become my teacher!\n"
+ .string "I need your advice!$"
+
+gText_082B9DF9:: @ 82B9DF9
+ .string "Th-thank you…\p"
+ .string "But please don’t look at me like that.\n"
+ .string "It makes me all flustered.\p"
+ .string "Please, answer me without looking\n"
+ .string "at my eyes.\p"
+ .string "At the BATTLE TOWER…\n"
+ .string "Which level should I attempt?$"
+
+gText_082B9EAA:: @ 82B9EAA
+ .string "Oh… Okay!\n"
+ .string "I’ll try my hand at that.\p"
+ .string "I hope I can make a valiant challenge\n"
+ .string "without getting all flustered…\p"
+ .string "Thank you, {PLAYER}{STRING 5}.\n"
+ .string "If we meet again, I hope you will be\l"
+ .string "as helpful.$"
+
+gText_082B9F55:: @ 82B9F55
+ .string "Hm? You appear to be {PLAYER}{STRING 5}…\n"
+ .string "But are you really real?\p"
+ .string "You may call me {STR_VAR_1}.\p"
+ .string "I have been toying with the idea of\n"
+ .string "apprenticing under a strong TRAINER.\p"
+ .string "So, I must say I’m lucky you came along!\n"
+ .string "…You really are {PLAYER}{STRING 5}, yes?\p"
+ .string "No, no, if you are real, it’s fine.\n"
+ .string "I merely want you to recognize me\l"
+ .string "as your apprentice.$"
+
+gText_082BA084:: @ 82BA084
+ .string "Oh?\n"
+ .string "But what would compel you to refuse?\p"
+ .string "I apologize for being skeptical about\n"
+ .string "your identity.\p"
+ .string "Please accept my apology and\n"
+ .string "accept me as your apprentice.$"
+
+gText_082BA11D:: @ 82BA11D
+ .string "You really are accepting me?\n"
+ .string "I don’t wish to celebrate prematurely.\p"
+ .string "If it is true, I apologize.\n"
+ .string "But now, I need your advice.\p"
+ .string "If I were to enter the BATTLE TOWER,\n"
+ .string "what would be worthy of me?\l"
+ .string "Level 50 or Open Level?$"
+
+gText_082BA1F3:: @ 82BA1F3
+ .string "{STR_VAR_1}?\n"
+ .string "Are you certain?\p"
+ .string "I see. If that’s the case, that’s fine.\n"
+ .string "I thank you for your time.\p"
+ .string "I realize I can annoy, but it delights\n"
+ .string "me that you have accepted me.\p"
+ .string "Let us meet again!$"
+
+gText_082BA2A3:: @ 82BA2A3
+ .string "Sigh… Sob…\n"
+ .string "Oh, {PLAYER}!\p"
+ .string "I’m all tangled up in a dilemma\n"
+ .string "that I can’t decide.\p"
+ .string "I can’t decide what I should make\n"
+ .string "my {STR_VAR_1} hold.\p"
+ .string "Please tell me, {PLAYER}.\n"
+ .string "What item should I make it hold?$"
+
+gText_082BA34E:: @ 82BA34E
+ .string "Oh, really? I shouldn’t make\n"
+ .string "my {STR_VAR_1} hold anything?$"
+
+gText_082BA380:: @ 82BA380
+ .string "Oh, okay! I’m delighted it’s settled!\n"
+ .string "Awesome! Wicked! Awoooh!\p"
+ .string "Thank you so much!$"
+
+gText_082BA3D2:: @ 82BA3D2
+ .string "Oh, I’m so glad…\n"
+ .string "I think I have that {STR_VAR_1}, too.\p"
+ .string "I’m delighted it’s settled!\n"
+ .string "Awesome! Wicked! Awoooh!\p"
+ .string "Thank you so much!$"
+
+gText_082BA448:: @ 82BA448
+ .string "Waaaah! Please don’t be mean!\p"
+ .string "That item {STR_VAR_1} was already\n"
+ .string "recommended to me before, sob…\p"
+ .string "Or do you mean I shouldn’t make\n"
+ .string "my {STR_VAR_2} hold anything?$"
+
+gText_082BA4D3:: @ 82BA4D3
+ .string "Yay! It’s {PLAYER}!\n"
+ .string "Great! I wanted to ask you something!\p"
+ .string "Do you make your POKéMON hold items?\n"
+ .string "I want to make mine hold items, but…\p"
+ .string "What item would be good for\n"
+ .string "{STR_VAR_1} to hold?\p"
+ .string "What do you think?$"
+
+gText_082BA58C:: @ 82BA58C
+ .string "Huh? You mean my {STR_VAR_1} doesn’t\n"
+ .string "have to hold anything?$"
+
+gText_082BA5BF:: @ 82BA5BF
+ .string "Oh, I get it! I’ll do that!\n"
+ .string "Thanks for teaching me!$"
+
+gText_082BA5F3:: @ 82BA5F3
+ .string "Oh, wow! One {STR_VAR_1}, huh?\n"
+ .string "Okay, I’ll do that!\p"
+ .string "Thanks for teaching me!$"
+
+gText_082BA635:: @ 82BA635
+ .string "Oh, uh, no, that’s not what I meant.\n"
+ .string "I want to know about a different item\l"
+ .string "than the ones I already know.\p"
+ .string "Or do you mean that my POKéMON doesn’t\n"
+ .string "have to hold anything this time?$"
+
+gText_082BA6E6:: @ 82BA6E6
+ .string "{PLAYER}, hello!\n"
+ .string "It’s about my {STR_VAR_1}…\p"
+ .string "I want to make it hold a good item.\n"
+ .string "What would be good for it?$"
+
+gText_082BA742:: @ 82BA742
+ .string "Oh, then my {STR_VAR_1} doesn’t have\n"
+ .string "to hold anything?$"
+
+gText_082BA770:: @ 82BA770
+ .string "Okay, I got it!\n"
+ .string "See you again!$"
+
+gText_082BA78F:: @ 82BA78F
+ .string "Oh, the item {STR_VAR_1}?\n"
+ .string "Understood!\p"
+ .string "I’ll do my best to find one!\n"
+ .string "See you again!$"
+
+gText_082BA7D8:: @ 82BA7D8
+ .string "Somebody taught me about\n"
+ .string "the {STR_VAR_1} already.\p"
+ .string "I want my POKéMON to hold a different\n"
+ .string "kind of item.\p"
+ .string "Or do you think {STR_VAR_2} doesn’t\n"
+ .string "have to hold anything?$"
+
+gText_082BA867:: @ 82BA867
+ .string "Hello, {PLAYER}…\n"
+ .string "I’m sorry to disturb you, but I have\l"
+ .string "something else I wanted to ask you.\p"
+ .string "I don’t think I’m good enough to win\n"
+ .string "matches on my own, so I’m thinking of\l"
+ .string "making my {STR_VAR_1} hold an item.\p"
+ .string "But I don’t know what would be good.\p"
+ .string "{PLAYER}, please, could you decide\n"
+ .string "for me?$"
+
+gText_082BA96B:: @ 82BA96B
+ .string "A POKéMON belonging to someone like me\n"
+ .string "would be better off without an item?$"
+
+gText_082BA9B7:: @ 82BA9B7
+ .string "I understand…\n"
+ .string "You’re saying I shouldn’t rely on items.\l"
+ .string "I’ll do my best not to!\p"
+ .string "Thank you very much!$"
+
+gText_082BAA1B:: @ 82BAA1B
+ .string "The item {STR_VAR_1}, okay.\n"
+ .string "I’m not sure if I can get one…\l"
+ .string "No! I’ll do my best to get it.\p"
+ .string "Thank you very much!$"
+
+gText_082BAA81:: @ 82BAA81
+ .string "Oh, but…\n"
+ .string "I think I’ve heard about that before…\p"
+ .string "Is it maybe because I haven’t handled\n"
+ .string "the item {STR_VAR_1} very well?\p"
+ .string "Or do you mean I shouldn’t make\n"
+ .string "my {STR_VAR_2} hold anything?$"
+
+gText_082BAB22:: @ 82BAB22
+ .string "Oh, {PLAYER}{STRING 5}.\n"
+ .string "There’s something I wanted to ask you.\p"
+ .string "You know how you decided which\n"
+ .string "POKéMON I should have for me?\p"
+ .string "But I never asked you what item\n"
+ .string "it should be holding.\p"
+ .string "Since you already gave me advice,\n"
+ .string "how about seeing this to the end?\p"
+ .string "What would be good? I want to make\n"
+ .string "my {STR_VAR_1} hold something.$"
+
+gText_082BAC43:: @ 82BAC43
+ .string "Oh! So my {STR_VAR_1} should do\n"
+ .string "the best it can empty-handed?$"
+
+gText_082BAC78:: @ 82BAC78
+ .string "If you think that’s best, I’ll do that.\p"
+ .string "Knowing that you made the decision,\n"
+ .string "{PLAYER}{STRING 5}, I won’t be so upset if\l"
+ .string "I lose.\p"
+ .string "Okay, I’ll look to you for advice again.\n"
+ .string "Bye!$"
+
+gText_082BAD17:: @ 82BAD17
+ .string "The item {STR_VAR_1}, huh?\n"
+ .string "Not bad. I’ll use it!\p"
+ .string "Knowing that you made the decision,\n"
+ .string "{PLAYER}{STRING 5}, I won’t be so upset if\l"
+ .string "I lose.\p"
+ .string "Okay, I’ll look to you for advice again.\n"
+ .string "Bye!$"
+
+gText_082BADB6:: @ 82BADB6
+ .string "Huh? What are you saying?\n"
+ .string "You told me about the {STR_VAR_1}\l"
+ .string "already before.\p"
+ .string "Or do you mean my {STR_VAR_2} should\n"
+ .string "do the best it can empty-handed?$"
+
+gText_082BAE36:: @ 82BAE36
+ .string "Yo, {PLAYER}{STRING 5}!\p"
+ .string "We’re both busy, but we seem to run\n"
+ .string "into each other often anyway!\p"
+ .string "Today I have to do some walking,\n"
+ .string "cleaning, and brushing.\p"
+ .string "I haven’t even had the time to buy\n"
+ .string "my precious {STR_VAR_1} anything.\p"
+ .string "I don’t have any time, so how about\n"
+ .string "giving me advice on what I should make\l"
+ .string "my {STR_VAR_1} hold?$"
+
+gText_082BAF4E:: @ 82BAF4E
+ .string "Oh, so me being a busy guy, you say\n"
+ .string "my {STR_VAR_1} doesn’t need anything?$"
+
+gText_082BAF8F:: @ 82BAF8F
+ .string "Okay, gotcha.\n"
+ .string "I won’t need any time for that.\p"
+ .string "Thanks today!\n"
+ .string "See you around!$"
+
+gText_082BAFDB:: @ 82BAFDB
+ .string "Okay, gotcha.\n"
+ .string "I’ll find time somehow and find\l"
+ .string "that {STR_VAR_1} you recommended.\p"
+ .string "I’m glad I met a good mentor in you.\n"
+ .string "Thanks! See you around!$"
+
+gText_082BB05F:: @ 82BB05F
+ .string "Huh? I already know about\n"
+ .string "that {STR_VAR_1}.\p"
+ .string "Oh, right, I get it.\n"
+ .string "So me being a busy guy, you say\l"
+ .string "my {STR_VAR_2} doesn’t need anything?$"
+
+gText_082BB0D4:: @ 82BB0D4
+ .string "Hiya, {PLAYER}! It’s me!\n"
+ .string "I need to tap your mind again today.\l"
+ .string "Please, I need your advice!\p"
+ .string "Drum roll, please!\n"
+ .string "The question I have is…\p"
+ .string "If I want to make my {STR_VAR_1} hold\n"
+ .string "an item, what should it be?$"
+
+gText_082BB18C:: @ 82BB18C
+ .string "Is that right? My {STR_VAR_1} doesn’t\n"
+ .string "need to hold an item, you’re saying.$"
+
+gText_082BB1CE:: @ 82BB1CE
+ .string "Okay, that’s what I’ll do!\p"
+ .string "I guess that’s about all I wanted\n"
+ .string "to ask you today.\p"
+ .string "Let’s meet here again, okay?\n"
+ .string "Thanks!$"
+
+gText_082BB242:: @ 82BB242
+ .string "Uh-huh! One {STR_VAR_1}.\n"
+ .string "What a cool choice!\l"
+ .string "I’ll definitely try that!\p"
+ .string "I guess that’s about all I wanted\n"
+ .string "to ask you today.\p"
+ .string "Let’s meet here again, okay?\n"
+ .string "Thanks!$"
+
+gText_082BB2D9:: @ 82BB2D9
+ .string "Ahahah! That’s silly!\n"
+ .string "You already told me about that\l"
+ .string "{STR_VAR_1} before!\p"
+ .string "Are you feeling okay, {PLAYER}?\p"
+ .string "Oh, wait! My {STR_VAR_2} doesn’t\n"
+ .string "need to hold an item, you’re saying.$"
+
+gText_082BB370:: @ 82BB370
+ .string "Hello, {PLAYER}. I hope you’ve been\n"
+ .string "keeping well.\p"
+ .string "May I approach you for advice?\p"
+ .string "In a recent battle, my opponent\n"
+ .string "seemed to have given his POKéMON\l"
+ .string "an item to hold.\p"
+ .string "As a result, I was defeated…\p"
+ .string "I don’t wish to be left behind.\n"
+ .string "I would like to make my {STR_VAR_1}\l"
+ .string "hold an item, too.\p"
+ .string "It would please me if you could decide\n"
+ .string "what would be right for my POKéMON…$"
+
+gText_082BB4C3:: @ 82BB4C3
+ .string "In other words… My POKéMON has\n"
+ .string "no need to hold an item?$"
+
+gText_082BB4FB:: @ 82BB4FB
+ .string "I understand clearly now!\n"
+ .string "I will keep trying like this.\p"
+ .string "Thank you, {PLAYER}.\n"
+ .string "I hope I can count on you again.\l"
+ .string "Please take care!$"
+
+gText_082BB575:: @ 82BB575
+ .string "One {STR_VAR_1} it is!\n"
+ .string "I will order it right away.\p"
+ .string "Thank you, {PLAYER}.\n"
+ .string "I hope I can count on you again.\l"
+ .string "Please take care!$"
+
+gText_082BB5E1:: @ 82BB5E1
+ .string "You’ve already told me about that,\n"
+ .string "and I already have it.\p"
+ .string "Or are you saying… My POKéMON has\n"
+ .string "no need to hold an item?$"
+
+gText_082BB656:: @ 82BB656
+ .string "Eek! {PLAYER}!\n"
+ .string "I… I’m overjoyed to see you again!\p"
+ .string "Oh-oh-oh! There’s something I just\n"
+ .string "had to ask you, {PLAYER}!\p"
+ .string "Please decide what my {STR_VAR_1}\n"
+ .string "should be holding!$"
+
+gText_082BB6E5:: @ 82BB6E5
+ .string "Oh, wow! I didn’t expect that answer!\n"
+ .string "So, a hold item isn’t necessary?$"
+
+gText_082BB72C:: @ 82BB72C
+ .string "Perfectly understood!\n"
+ .string "I’ll keep at this without an item!\p"
+ .string "I hope you’ll be willing to teach me\n"
+ .string "some more another time.$"
+
+gText_082BB7A2:: @ 82BB7A2
+ .string "{STR_VAR_1}! I’ll use that!\p"
+ .string "Um… Could it be, {PLAYER}, you also\n"
+ .string "make your POKéMON hold that item?\p"
+ .string "I’ll be sure to get it!\n"
+ .string "I hope you’ll be willing to teach me\l"
+ .string "some more another time.$"
+
+gText_082BB84A:: @ 82BB84A
+ .string "Oh? You recommended that\n"
+ .string "{STR_VAR_1} before, too.\p"
+ .string "Or is it the best thing to hold?\n"
+ .string "Or do you mean that my {STR_VAR_2}\l"
+ .string "doesn’t need anything to hold?$"
+
+gText_082BB8CD:: @ 82BB8CD
+ .string "Hola!\n"
+ .string "My maestro, {PLAYER}{STRING 5}!\p"
+ .string "I want to hit you up for advice on\n"
+ .string "POKéMON tools.\p"
+ .string "What do you think would be good for\n"
+ .string "my {STR_VAR_1} to hold?\p"
+ .string "Don’t be shy now.\n"
+ .string "Let’s blurt it out!$"
+
+gText_082BB970:: @ 82BB970
+ .string "Oh? So, you’re saying my {STR_VAR_1}\n"
+ .string "can win without holding any item?$"
+
+gText_082BB9AE:: @ 82BB9AE
+ .string "Si, bueno!\n"
+ .string "I’ll give it my best shot, like, slam!\p"
+ .string "All right, thanks, as always!\n"
+ .string "Adios!$"
+
+gText_082BBA05:: @ 82BBA05
+ .string "Uh-huh, that’s one {STR_VAR_1}?\n"
+ .string "Si, bueno!\l"
+ .string "I’ll go find me one, like, bam!\p"
+ .string "All right, thanks, as always!\n"
+ .string "Adios!$"
+
+gText_082BBA6C:: @ 82BBA6C
+ .string "No, no! You already told me about\n"
+ .string "that {STR_VAR_1} thing before.\p"
+ .string "Oh, now wait just one minute here…\n"
+ .string "So, you’re saying my {STR_VAR_2}\l"
+ .string "can win without holding any item?$"
+
+gText_082BBB01:: @ 82BBB01
+ .string "{PLAYER}{STRING 5}, something unbelievable\n"
+ .string "has happened!\p"
+ .string "I woke up this morning, and my POKéMON\n"
+ .string "had 10 NUGGETS!\p"
+ .string "Of course I’m lying!\n"
+ .string "Wahahaha!\p"
+ .string "This is no lie, though.\n"
+ .string "I’m not very good at thinking about\l"
+ .string "what items POKéMON should hold.\p"
+ .string "So, how about deciding for me what\n"
+ .string "my {STR_VAR_1} should hold, master?$"
+
+gText_082BBC1C:: @ 82BBC1C
+ .string "What’s that mean?\n"
+ .string "Don’t make it hold anything?$"
+
+gText_082BBC4B:: @ 82BBC4B
+ .string "Okay, so it shouldn’t hold anything.\n"
+ .string "Then, I’d better get something for it!\p"
+ .string "Just kidding!\n"
+ .string "I’ll obey your teaching, master!\p"
+ .string "Thanks, master!\n"
+ .string "I hope you’ll keep teaching me!$"
+
+gText_082BBCF6:: @ 82BBCF6
+ .string "Okay, so it’s one {STR_VAR_1}!\n"
+ .string "I’ll make it hold anything but that!\p"
+ .string "Just kidding!\n"
+ .string "I’ll obey your teaching, master!\p"
+ .string "Thanks, master!\n"
+ .string "I hope you’ll keep teaching me!$"
+
+gText_082BBD90:: @ 82BBD90
+ .string "Um, you told me about that before,\n"
+ .string "didn’t you?\p"
+ .string "Isn’t there something else?\p"
+ .string "Or do you mean, don’t make\n"
+ .string "my {STR_VAR_2} hold anything?$"
+
+gText_082BBE0B:: @ 82BBE0B
+ .string "A-H-O-Y!\n"
+ .string "And that spells ahoy!\p"
+ .string "The rappin’ SAILOR am I!\n"
+ .string "I present to you a question\l"
+ .string "that’s pretty fly!\p"
+ .string "It’s an item question\n"
+ .string "that begs your suggestion!\p"
+ .string "My {STR_VAR_1} needs an item to hold,\n"
+ .string "What should it be, if I may be bold?$"
+
+gText_082BBEE5:: @ 82BBEE5
+ .string "Is that right?\n"
+ .string "My {STR_VAR_1} doesn’t need to be\l"
+ .string "holding anything tight?$"
+
+gText_082BBF25:: @ 82BBF25
+ .string "Okay, I hear you, sure I do!\n"
+ .string "My POKéMON will go empty-handed, too!\p"
+ .string "If it’s advice I ever need,\n"
+ .string "{PLAYER}, your word I’ll always heed!$"
+
+gText_082BBFA4:: @ 82BBFA4
+ .string "Okay, one {STR_VAR_1},\n"
+ .string "that’s what I’ll use.\l"
+ .string "I was right to make you choose!\p"
+ .string "If it’s advice I ever need,\n"
+ .string "{PLAYER}, your word I’ll always heed!$"
+
+gText_082BC024:: @ 82BC024
+ .string "Okay, one {STR_VAR_1}, you say?\n"
+ .string "You told me that the other day.\l"
+ .string "I need a new idea, a brand new way.\p"
+ .string "Or, what, is that right?\n"
+ .string "My POKéMON doesn’t need to hold\l"
+ .string "anything tight?$"
+
+gText_082BC0C8:: @ 82BC0C8
+ .string "Say, hey, {PLAYER}!\n"
+ .string "I found you again today!\p"
+ .string "What should I do? Get your advice?\n"
+ .string "Why not? I’m already talking to you!\p"
+ .string "{PLAYER}, are you getting sick of me?\n"
+ .string "Nah, no way, that can’t be.\p"
+ .string "Will you hear me out?\n"
+ .string "I’m looking for advice--that’s what\l"
+ .string "I’m talking about.\p"
+ .string "It’s about a hold item for\n"
+ .string "my {STR_VAR_1} that’d be good.\l"
+ .string "My indecision is making me brood.$"
+
+gText_082BC213:: @ 82BC213
+ .string "My {STR_VAR_1} needs nothing?\n"
+ .string "Doesn’t need to hold anything?$"
+
+gText_082BC247:: @ 82BC247
+ .string "If holding nothing is the best,\n"
+ .string "I’ll do as you suggest!\p"
+ .string "Well, {PLAYER}, I have to roam free,\n"
+ .string "but don’t you forget about me.\p"
+ .string "See you again, my smart friend!$"
+
+gText_082BC2DD:: @ 82BC2DD
+ .string "If holding that {STR_VAR_1} is\n"
+ .string "the best, I’ll do as you suggest!\p"
+ .string "Well, {PLAYER}, I have to roam free,\n"
+ .string "but don’t you forget about me.\p"
+ .string "See you again, my smart friend!$"
+
+gText_082BC373:: @ 82BC373
+ .string "Haven’t I heard about that\n"
+ .string "{STR_VAR_1} before?\l"
+ .string "I’m certain I have, that’s for sure!\p"
+ .string "I need a new something!\n"
+ .string "Or, my {STR_VAR_2} needs nothing?\l"
+ .string "Doesn’t need to hold anything?$"
+
+gText_082BC40E:: @ 82BC40E
+ .string "Gwah! Ouch! {PLAYER}{STRING 5}, my arm’s broken!\n"
+ .string "Don’t touch it, please!\p"
+ .string "I must’ve broken it while I was trying\n"
+ .string "out different hold items with my posse\l"
+ .string "of POKéMON.\p"
+ .string "So, things being this way,\n"
+ .string "I need you to decide for me.\p"
+ .string "{PLAYER}{STRING 5}, what do you think would be\n"
+ .string "good for my {STR_VAR_1} to hold?$"
+
+gText_082BC514:: @ 82BC514
+ .string "Ouch…\p"
+ .string "So your suggestion is my {STR_VAR_1}\n"
+ .string "doesn’t have to hold anything?$"
+
+gText_082BC555:: @ 82BC555
+ .string "Hm, all right. That would be easier\n"
+ .string "for me, the way things are now.\p"
+ .string "I hope I can keep hitting you up\n"
+ .string "for help like this.$"
+
+gText_082BC5CE:: @ 82BC5CE
+ .string "Hm, all right. That’s one {STR_VAR_1}.\n"
+ .string "My POKéMON’s arm is fine, so I’ll make\l"
+ .string "it hold that item right away.\p"
+ .string "I hope I can keep hitting you up\n"
+ .string "for help like this.$"
+
+gText_082BC666:: @ 82BC666
+ .string "No, no, you told me about that\n"
+ .string "{STR_VAR_1} before, remember?\p"
+ .string "How about telling me something\n"
+ .string "even better?\p"
+ .string "Oh, wait a second.\n"
+ .string "So your suggestion is my {STR_VAR_2}\l"
+ .string "doesn’t have to hold anything?$"
+
+gText_082BC714:: @ 82BC714
+ .string "Er… Um…\n"
+ .string "{PLAYER}{STRING 5}…\p"
+ .string "Please, don’t look at me that way.\n"
+ .string "My POKéMON don’t have anything.\p"
+ .string "I… I’m really embarrassed about this,\n"
+ .string "but I really need your advice.\p"
+ .string "I can’t decide what hold item would\n"
+ .string "make my {STR_VAR_1} strong.\p"
+ .string "{PLAYER}{STRING 5}, what do you think would\n"
+ .string "be good?$"
+
+gText_082BC808:: @ 82BC808
+ .string "Oh… Then, you think it would be better\n"
+ .string "if my {STR_VAR_1} didn’t have an item?$"
+
+gText_082BC84D:: @ 82BC84D
+ .string "Oh… Okay!\n"
+ .string "I’ll go without an item.\p"
+ .string "This is nerve-racking, though.\n"
+ .string "Wouldn’t it be too cool?\p"
+ .string "Thank you, {PLAYER}{STRING 5}.\n"
+ .string "If we meet again, I hope you will be\l"
+ .string "as helpful.$"
+
+gText_082BC8EA:: @ 82BC8EA
+ .string "Oh… Okay!\n"
+ .string "I’ll go with that {STR_VAR_1}.\p"
+ .string "This is nerve-racking, though.\n"
+ .string "Wouldn’t it be too cool?\p"
+ .string "Thank you, {PLAYER}{STRING 5}.\n"
+ .string "If we meet again, I hope you will be\l"
+ .string "as helpful.$"
+
+gText_082BC984:: @ 82BC984
+ .string "B-but I already heard about that.\p"
+ .string "Please don’t brush me off like this!\n"
+ .string "I can’t live with the humiliation.\p"
+ .string "Oh… Am I jumping to conclusions?\n"
+ .string "Do you think it would be better if\l"
+ .string "my {STR_VAR_2} didn’t have an item?$"
+
+gText_082BCA4D:: @ 82BCA4D
+ .string "Hm? You appear to be {PLAYER}{STRING 5}…\n"
+ .string "But are you really?\l"
+ .string "Perhaps you’re a twin?\p"
+ .string "Oh, no, no, no, don’t worry!\n"
+ .string "If you really are {PLAYER}, please\l"
+ .string "forget about my rudeness.\p"
+ .string "What I would like is some more of\n"
+ .string "your fine advice.\p"
+ .string "I have here my {STR_VAR_1} that I wish\n"
+ .string "to make hold a convenient item.\p"
+ .string "What would be worthy of it?$"
+
+gText_082BCB75:: @ 82BCB75
+ .string "It’s better if it held nothing?\n"
+ .string "Are you certain?$"
+
+gText_082BCBA6:: @ 82BCBA6
+ .string "I see. If that’s the case, that’s fine.\n"
+ .string "I thank you for your time.\p"
+ .string "Let us meet again!$"
+
+gText_082BCBFC:: @ 82BCBFC
+ .string "One {STR_VAR_1}?\n"
+ .string "Are you certain?\p"
+ .string "I see. If that’s the case, that’s fine.\n"
+ .string "I thank you for your time.\p"
+ .string "I do hope my POKéMON will be able to\n"
+ .string "put it to good use.\p"
+ .string "Let us meet again!$"
+
+gText_082BCCA4:: @ 82BCCA4
+ .string "No, no, wait a minute.\n"
+ .string "I believe you taught me that before.\p"
+ .string "I would like you to recommend\n"
+ .string "something different this time.\p"
+ .string "Perhaps you’re suggesting that\n"
+ .string "my {STR_VAR_2} should hold nothing?\l"
+ .string "Are you certain?$"
+
+gText_082BCD68:: @ 82BCD68
+ .string "Waah, {PLAYER}!\n"
+ .string "I have a dilemma, sob…\p"
+ .string "I want to begin battling other people,\n"
+ .string "but I don’t know what to do.\p"
+ .string "How should I line up my POKéMON\n"
+ .string "so they’ll be at their strongest?\p"
+ .string "Please tell me, {PLAYER}.\n"
+ .string "If you were me, which of these POKéMON\l"
+ .string "would you send out first?$"
+
+gText_082BCE64:: @ 82BCE64
+ .string "My {STR_VAR_1} should go first?\n"
+ .string "Waaaaah!\p"
+ .string "Oh! I’m so sorry!\n"
+ .string "You’ve made me happy by choosing\l"
+ .string "my first POKéMON, and it’s made me cry…\p"
+ .string "Thank you so much!$"
+
+gText_082BCEF2:: @ 82BCEF2
+ .string "Yay! It’s {PLAYER}!\n"
+ .string "Great! I wanted to ask you something!\p"
+ .string "Um, of my POKéMON, which do you\n"
+ .string "think should go out first?$"
+
+gText_082BCF61:: @ 82BCF61
+ .string "My {STR_VAR_1}? That’s true.\n"
+ .string "Okay, I’ll do that!\p"
+ .string "Thanks for teaching me!$"
+
+gText_082BCFA1:: @ 82BCFA1
+ .string "{PLAYER}, hello!\p"
+ .string "I think, in a battle, it’s very important\n"
+ .string "which POKéMON comes out first.\p"
+ .string "Out of the POKéMON that I have,\n"
+ .string "which would be good to send out first?$"
+
+gText_082BD03C:: @ 82BD03C
+ .string "My {STR_VAR_1} goes first?\n"
+ .string "Okay, I got it!\p"
+ .string "See you again!$"
+
+gText_082BD06D:: @ 82BD06D
+ .string "Hello, {PLAYER}…\n"
+ .string "I’m sorry to disturb you again with\l"
+ .string "another question.\p"
+ .string "I have so little confidence, I don’t\n"
+ .string "know what I’d do without you, {PLAYER}.\p"
+ .string "It may be a waste of time for me to\n"
+ .string "even worry about it, but I just can’t\l"
+ .string "decide something…\p"
+ .string "Which of my POKéMON should I send\n"
+ .string "out first in a battle?$"
+
+gText_082BD18A:: @ 82BD18A
+ .string "My {STR_VAR_1}?\n"
+ .string "Understood!\p"
+ .string "I can’t believe that you would bother\n"
+ .string "to answer my questions so often!\p"
+ .string "I’m so grateful that you would even\n"
+ .string "speak with me… Thank you!$"
+
+gText_082BD222:: @ 82BD222
+ .string "Oh, {PLAYER}{STRING 5}! It’s me!\n"
+ .string "I’m so glad to see you because I have\l"
+ .string "this little problem.\p"
+ .string "I can’t decide how my POKéMON should\n"
+ .string "be lined up. Could you decide for me?\p"
+ .string "Oh, you don’t need to decide the whole\n"
+ .string "party right now.\p"
+ .string "How about deciding just the first\n"
+ .string "POKéMON for me?$"
+
+gText_082BD325:: @ 82BD325
+ .string "My {STR_VAR_1}? That’s great!\p"
+ .string "Knowing that you made the decision,\n"
+ .string "{PLAYER}{STRING 5}, I won’t be so upset if\l"
+ .string "I lose.\p"
+ .string "Okay, I’ll look to you for advice again.\n"
+ .string "Bye!$"
+
+gText_082BD3B1:: @ 82BD3B1
+ .string "Hi, my teacher {PLAYER}{STRING 5}!\n"
+ .string "I’m busy again today!\p"
+ .string "I have to do some cycling, shopping,\n"
+ .string "and humming.\p"
+ .string "I haven’t even had the time to decide\n"
+ .string "how to line up my POKéMON team.\p"
+ .string "So, how about checking out my team?\n"
+ .string "Which one should go first?$"
+
+gText_082BD493:: @ 82BD493
+ .string "Okay, gotcha.\n"
+ .string "I have enough time at least to put\l"
+ .string "my {STR_VAR_1} at the head of the line!\p"
+ .string "Whoops, my girlfriend’s waiting!\n"
+ .string "Thanks! See you around!$"
+
+gText_082BD51C:: @ 82BD51C
+ .string "Yoohoo! Hiya, {PLAYER}!\n"
+ .string "You always walk around looking tough!\p"
+ .string "Listen, I need something from you\n"
+ .string "again! It’s the usual thing!\p"
+ .string "Drum roll, please!\n"
+ .string "The question I have is about my team.\p"
+ .string "Which POKéMON of mine should be first\n"
+ .string "to go out in a battle?$"
+
+gText_082BD609:: @ 82BD609
+ .string "Hmhm!\n"
+ .string "My {STR_VAR_1}, you say!\l"
+ .string "Thanks for a most cool answer!\p"
+ .string "I guess that’s about all I wanted\n"
+ .string "to ask you today.\p"
+ .string "Let’s meet here again, okay?\n"
+ .string "Thanks!$"
+
+gText_082BD697:: @ 82BD697
+ .string "Thank you so much for stopping to\n"
+ .string "chat with me, {PLAYER}.\p"
+ .string "I know I’m taking advantage of your\n"
+ .string "kindness, but may I ask for advice?\p"
+ .string "I would like you to decide on the order\n"
+ .string "of my POKéMON team.\p"
+ .string "It would please me if you could decide\n"
+ .string "which POKéMON should come first.$"
+
+gText_082BD797:: @ 82BD797
+ .string "My {STR_VAR_1} it is!\n"
+ .string "I will put it first right away!\p"
+ .string "Thank you, {PLAYER}.\n"
+ .string "I hope I can count on you again.\l"
+ .string "Please take care!$"
+
+gText_082BD806:: @ 82BD806
+ .string "Eek! {PLAYER}!\n"
+ .string "I… I’m overjoyed to see you again!\p"
+ .string "My POKéMON have become much\n"
+ .string "stronger!\p"
+ .string "But I don’t always win. It seems to\n"
+ .string "depend on which POKéMON goes first.\p"
+ .string "{PLAYER}, please, I need your help!\p"
+ .string "Please decide which of my POKéMON\n"
+ .string "should go out first!$"
+
+gText_082BD8F5:: @ 82BD8F5
+ .string "Sigh… I’m overwhelmed with happiness…\p"
+ .string "It’s like a dream having you decide\n"
+ .string "for me, {PLAYER}.\p"
+ .string "But perfectly understood!\n"
+ .string "I will go with my {STR_VAR_1} first!\p"
+ .string "I hope you’ll be willing to teach me\n"
+ .string "some more another time.$"
+
+gText_082BD9BE:: @ 82BD9BE
+ .string "Hello, hello!\n"
+ .string "My mentor, {PLAYER}{STRING 5}!\l"
+ .string "Hit me with your sage advice today!\p"
+ .string "You see, I pulled together a team of\n"
+ .string "three POKéMON. So far so good.\p"
+ .string "But the team’s battling order’s not\n"
+ .string "settled yet.\p"
+ .string "This is where you come in, {PLAYER}{STRING 5}!\n"
+ .string "You decide which POKéMON leads off!\p"
+ .string "Don’t be shy now.\n"
+ .string "Let’s blurt it out!$"
+
+gText_082BDAE1:: @ 82BDAE1
+ .string "Uh-huh, my {STR_VAR_1} leads off!\n"
+ .string "OK, A-OK!\l"
+ .string "I’ll reorder the lineup, like, wham!\p"
+ .string "All right, thanks, as always!\n"
+ .string "Adios!$"
+
+gText_082BDB4E:: @ 82BDB4E
+ .string "{PLAYER}{STRING 5}, listen!\n"
+ .string "It’s a crisis!\p"
+ .string "My POKéMON, all three of them, go into\n"
+ .string "battle at once!\p"
+ .string "Of course that’s impossible!\n"
+ .string "Wahahaha!\p"
+ .string "This is no lie, though.\n"
+ .string "I’m not very good at thinking about\l"
+ .string "how I should line up my POKéMON.\p"
+ .string "So, how about deciding for me which\n"
+ .string "POKéMON should go first, master?$"
+
+gText_082BDC6B:: @ 82BDC6B
+ .string "Okay, so it’s my {STR_VAR_1} you chose?\n"
+ .string "I’ll let any but that one go first!\p"
+ .string "Just kidding!\n"
+ .string "I’ll obey your teaching, master!\p"
+ .string "Thanks, master!\n"
+ .string "I hope you’ll keep teaching me!$"
+
+gText_082BDD0D:: @ 82BDD0D
+ .string "A-H-O-Y!\n"
+ .string "And that spells ahoy!\p"
+ .string "The rappin’ SAILOR am I!\n"
+ .string "I present to you a question\l"
+ .string "that’s pretty fly!\p"
+ .string "It’s a team lineup question\n"
+ .string "that begs your suggestion!\p"
+ .string "Out of this lot, which should go first\n"
+ .string "as the first on the spot?$"
+
+gText_082BDDEC:: @ 82BDDEC
+ .string "Okay, I hear you, sure I do!\n"
+ .string "I’ll switch them up, that I’ll do!\p"
+ .string "If it’s advice I ever need,\n"
+ .string "{PLAYER}, your word I’ll always heed!$"
+
+gText_082BDE68:: @ 82BDE68
+ .string "Yahoo, {PLAYER}!\n"
+ .string "How do you do?\p"
+ .string "What should I do? Go ahead and ask?\n"
+ .string "Uh-huh, I have something to ask!\l"
+ .string "Are you receiving me?\l"
+ .string "You are receiving me!\p"
+ .string "You have to decide, which of my\n"
+ .string "POKéMON is the first to ride!\l"
+ .string "Into battle, I mean to say.$"
+
+gText_082BDF4D:: @ 82BDF4D
+ .string "My {STR_VAR_1}? Yes!\n"
+ .string "That’ll do, there’s no distress!\p"
+ .string "Well, {PLAYER}, I have to roam free,\n"
+ .string "but don’t you forget about me.\p"
+ .string "See you again, my smart friend!$"
+
+gText_082BDFD8:: @ 82BDFD8
+ .string "…Oof…ooch… {PLAYER}{STRING 5}…\n"
+ .string "My stomach’s hurting all of a sudden…\p"
+ .string "…It’s getting better now…\p"
+ .string "I must’ve worried myself sick racking\n"
+ .string "my brains on how I should line up\l"
+ .string "my posse of POKéMON.\p"
+ .string "So, things being this way,\n"
+ .string "I need you to decide for me.\p"
+ .string "{PLAYER}{STRING 5}, which of my POKéMON should\n"
+ .string "go first? So I’d win, I mean.$"
+
+gText_082BE0FD:: @ 82BE0FD
+ .string "Hm, all right.\n"
+ .string "My {STR_VAR_1} goes first.\p"
+ .string "I’ll fix the lineup like that after\n"
+ .string "I have my supper.\p"
+ .string "I hope I can keep hitting you up\n"
+ .string "for help like this.$"
+
+gText_082BE189:: @ 82BE189
+ .string "Er… Um…\n"
+ .string "{PLAYER}{STRING 5}?\p"
+ .string "Please, don’t look at me that way.\n"
+ .string "You’re making me feel all flustered.\p"
+ .string "Um…\n"
+ .string "I really need your advice.\p"
+ .string "It makes me bashful to say this,\n"
+ .string "but I chose my 3-POKéMON team.\l"
+ .string "I can’t decide on the order, though.\p"
+ .string "Which POKéMON should I send out first\n"
+ .string "so I at least look capable?$"
+
+gText_082BE2A5:: @ 82BE2A5
+ .string "Oh… Okay!\n"
+ .string "I’ll lead with my {STR_VAR_1}.\p"
+ .string "I hope I can do my best without\n"
+ .string "getting all flustered.\p"
+ .string "Thank you, {PLAYER}{STRING 5}.\n"
+ .string "If we meet again, I hope you will be\l"
+ .string "as helpful.$"
+
+gText_082BE33E:: @ 82BE33E
+ .string "Hm? You appear to be {PLAYER}{STRING 5}…\n"
+ .string "But are you really?\l"
+ .string "Perhaps you’re a clever look-alike?\p"
+ .string "Oh, no, no, no, don’t worry!\n"
+ .string "If you really are {PLAYER}, please\l"
+ .string "forget about my rudeness.\p"
+ .string "What I would like is your fine advice.\p"
+ .string "I have here my POKéMON team.\n"
+ .string "I would like you to tell me which one\l"
+ .string "should go first in a battle.$"
+
+gText_082BE46C:: @ 82BE46C
+ .string "My {STR_VAR_1}…\n"
+ .string "You aren’t pulling my leg?\p"
+ .string "I see. If that’s the case, that’s fine.\n"
+ .string "I thank you for your time.\p"
+ .string "I am as you see, but I shall do\n"
+ .string "my best.\p"
+ .string "Let us meet again!$"
+
+gText_082BE50D:: @ 82BE50D
+ .string "Snivel…\n"
+ .string "Oh, {PLAYER}!\p"
+ .string "What perfect timing!\n"
+ .string "There’s something I just can’t decide…\p"
+ .string "I can’t decide which POKéMON I should\n"
+ .string "be using.\p"
+ .string "I can’t decide between the POKéMON\n"
+ .string "{STR_VAR_1} and {STR_VAR_2}…\p"
+ .string "{PLAYER}, which do you think will give\n"
+ .string "even me a chance at winning?$"
+
+gText_082BE5F5:: @ 82BE5F5
+ .string "Snivel… I… I understand!\n"
+ .string "Oh! I’m so sorry!\l"
+ .string "You’ve made me so happy, I’m crying…\p"
+ .string "I’ll do my best to catch one\n"
+ .string "{STR_VAR_1}!\p"
+ .string "Thank you so much!$"
+
+gText_082BE679:: @ 82BE679
+ .string "Yay! It’s {PLAYER}!\n"
+ .string "Yay, you came at the right time, too!\l"
+ .string "I need your advice again!\p"
+ .string "Um, I’m all mixed up--should I use\n"
+ .string "my {STR_VAR_1} or {STR_VAR_2}…\p"
+ .string "Which do you think I should raise,\n"
+ .string "{PLAYER}?$"
+
+gText_082BE71E:: @ 82BE71E
+ .string "Oh, so my {STR_VAR_1} is better!\n"
+ .string "Okay, I’ll do that!\p"
+ .string "Thanks for teaching me!$"
+
+gText_082BE762:: @ 82BE762
+ .string "{PLAYER}, hello!\n"
+ .string "I have a question I wanted to ask.\p"
+ .string "I’m in a dilemma over whether I should\n"
+ .string "raise one {STR_VAR_1} or {STR_VAR_2}.\p"
+ .string "Which POKéMON do you think will\n"
+ .string "be stronger?$"
+
+gText_082BE7F8:: @ 82BE7F8
+ .string "{STR_VAR_1} is your choice?\n"
+ .string "Okay, I got it!\p"
+ .string "I’ll go catch a strong {STR_VAR_1}\n"
+ .string "right away!\p"
+ .string "See you again!$"
+
+gText_082BE850:: @ 82BE850
+ .string "Hello, {PLAYER}…\p"
+ .string "Um, you’ve probably already forgotten\n"
+ .string "about someone like me…\p"
+ .string "…But that doesn’t matter if you\n"
+ .string "could give me advice…\p"
+ .string "I can’t decide on the one kind of\n"
+ .string "POKéMON I should raise…\p"
+ .string "I’ve narrowed the field to the POKéMON\n"
+ .string "{STR_VAR_1} and {STR_VAR_2}, but that’s\l"
+ .string "where I became stuck…\p"
+ .string "{PLAYER}, you probably don’t want to\n"
+ .string "bother, but please decide for me.$"
+
+gText_082BE99C:: @ 82BE99C
+ .string "But will a wild {STR_VAR_1} even pay\n"
+ .string "attention to me?\p"
+ .string "I will try!\p"
+ .string "But will I even be able to catch one…\n"
+ .string "No! I’ll do my best!\p"
+ .string "Thank you!$"
+
+gText_082BEA1B:: @ 82BEA1B
+ .string "Oh, {PLAYER}{STRING 5}! I’m so glad to see you!\n"
+ .string "I was about to go looking for you!\p"
+ .string "Can you decide what kind of POKéMON\n"
+ .string "I should use?\p"
+ .string "For instance…\n"
+ .string "How about the POKéMON {STR_VAR_1}\l"
+ .string "and {STR_VAR_2}?\p"
+ .string "Which one do you think would be\n"
+ .string "better?$"
+
+gText_082BEAE9:: @ 82BEAE9
+ .string "{STR_VAR_1}? That’s great!\p"
+ .string "Knowing that you made the decision,\n"
+ .string "{PLAYER}{STRING 5}, I won’t be so upset if\l"
+ .string "I lose.\p"
+ .string "Okay, I’ll look to you for advice again.\n"
+ .string "Bye!$"
+
+gText_082BEB72:: @ 82BEB72
+ .string "If it isn’t {PLAYER}{STRING 5}! How’s it going?\n"
+ .string "I’m busy again as always!\p"
+ .string "I want to do good with POKéMON, too,\n"
+ .string "but I haven’t been able to decide\l"
+ .string "which POKéMON I should use.\p"
+ .string "You know how {STR_VAR_1} look strong?\n"
+ .string "But {STR_VAR_2} are tough to ignore.\p"
+ .string "{PLAYER}{STRING 5}, give me some of your good\n"
+ .string "advice! Which one’d be good for me?$"
+
+gText_082BEC8E:: @ 82BEC8E
+ .string "Okay, gotcha.\n"
+ .string "I’ll find time somehow and catch me\l"
+ .string "that {STR_VAR_1} you recommended.\p"
+ .string "I’m glad I met a good mentor in you.\n"
+ .string "Thanks! See you around!$"
+
+gText_082BED16:: @ 82BED16
+ .string "Oh!\n"
+ .string "Yay, it’s {PLAYER}!\p"
+ .string "I didn’t waste any time boasting to\n"
+ .string "my friends about meeting you!\p"
+ .string "I need to tap your mind again today.\n"
+ .string "It’s an easy one for you!\p"
+ .string "Drum roll, please!\n"
+ .string "The question I have is…\p"
+ .string "If I were to raise a POKéMON,\n"
+ .string "and the choices were one {STR_VAR_1}\l"
+ .string "or {STR_VAR_2}, which should it be?$"
+
+gText_082BEE29:: @ 82BEE29
+ .string "Ahhh!\n"
+ .string "{STR_VAR_1}, you say!\l"
+ .string "Thanks for a most cool answer!\p"
+ .string "I guess that’s about all I wanted\n"
+ .string "to ask you today.\p"
+ .string "Let’s meet here again, okay?\n"
+ .string "Thanks!$"
+
+gText_082BEEB4:: @ 82BEEB4
+ .string "Oh, is it you, {PLAYER}?\n"
+ .string "I’m delighted to see you again!\p"
+ .string "Ever since I became your apprentice,\n"
+ .string "my confidence has been blooming.\p"
+ .string "I think I’m ready to raise a POKéMON\n"
+ .string "of my own!\p"
+ .string "{PLAYER}, may I impose on you to choose\n"
+ .string "which POKéMON I should raise?\p"
+ .string "The choices are the POKéMON\n"
+ .string "{STR_VAR_1} or {STR_VAR_2}…\l"
+ .string "Which POKéMON is right for me?$"
+
+gText_082BEFE2:: @ 82BEFE2
+ .string "One {STR_VAR_1} it is!\n"
+ .string "I will find one right away!\p"
+ .string "Thank you, {PLAYER}.\n"
+ .string "I hope I can count on you again.\l"
+ .string "Please take care!$"
+
+gText_082BF04E:: @ 82BF04E
+ .string "Eek! {PLAYER}! I met you again!\n"
+ .string "I… I’m overjoyed!\p"
+ .string "Oh-oh-oh, I know!\n"
+ .string "I shouldn’t pass up this opportunity!\p"
+ .string "May I ask a huge favor, {PLAYER}?\n"
+ .string "Please choose a POKéMON for me!\p"
+ .string "Please decide which would be better,\n"
+ .string "{STR_VAR_1} or {STR_VAR_2}!$"
+
+gText_082BF11D:: @ 82BF11D
+ .string "Wow! You decided for me!\n"
+ .string "One {STR_VAR_1} is what I’ll raise to\l"
+ .string "the best of my ability.\p"
+ .string "I hope you’ll be willing to teach me\n"
+ .string "some more another time.$"
+
+gText_082BF1A8:: @ 82BF1A8
+ .string "Hey, hey!\n"
+ .string "My mentor, {PLAYER}{STRING 5}!\p"
+ .string "Hello, I’ve been looking for you\n"
+ .string "for some more of your sage advice!\p"
+ .string "Which kind of POKéMON would be right\n"
+ .string "for me, one {STR_VAR_1} or {STR_VAR_2}?\p"
+ .string "Don’t be shy now.\n"
+ .string "Let’s blurt it out!$"
+
+gText_082BF268:: @ 82BF268
+ .string "Uh-huh, one {STR_VAR_1} it is!\n"
+ .string "OK, A-OK!\l"
+ .string "I’ll get one in a BALL, like, cram!\p"
+ .string "All right, thanks, as always!\n"
+ .string "Adios!$"
+
+gText_082BF2D1:: @ 82BF2D1
+ .string "{PLAYER}{STRING 5}, listen! Big news!\n"
+ .string "I caught a mirage POKéMON!\p"
+ .string "Of course I’m lying!\n"
+ .string "Wahahaha!\p"
+ .string "This is no lie, though.\n"
+ .string "I’m not very good at catching\l"
+ .string "POKéMON.\p"
+ .string "So, how about deciding for me which\n"
+ .string "kind of POKéMON I should catch,\l"
+ .string "master?\p"
+ .string "Which would be better?\n"
+ .string "{STR_VAR_1} or {STR_VAR_2}?$"
+
+gText_082BF3CF:: @ 82BF3CF
+ .string "Okay, so it’s {STR_VAR_1} you chose?\n"
+ .string "I’ll grab the other kind, then!\p"
+ .string "Just kidding!\n"
+ .string "I’ll obey your teaching, master!\p"
+ .string "Thanks, master!\n"
+ .string "I hope you’ll keep teaching me!$"
+
+gText_082BF46A:: @ 82BF46A
+ .string "A-H-O-Y!\n"
+ .string "And that spells ahoy!\p"
+ .string "The rappin’ SAILOR am I!\n"
+ .string "Surely you remember who am I?\p"
+ .string "Today, I have a POKéMON question\n"
+ .string "that begs your suggestion!\p"
+ .string "I have the choice between this\n"
+ .string "{STR_VAR_1} and {STR_VAR_2}, you see.\l"
+ .string "Which is the one to catch for me?$"
+
+gText_082BF551:: @ 82BF551
+ .string "{STR_VAR_1}, you say, hey, hey!\n"
+ .string "I’ll go get me one right away!\p"
+ .string "If it’s advice I ever need,\n"
+ .string "{PLAYER}, your word I’ll always heed!$"
+
+gText_082BF5C3:: @ 82BF5C3
+ .string "Oh, wow, if it isn’t {PLAYER}!\p"
+ .string "What should I do? Get your advice?\n"
+ .string "Why not? I’m already talking to you!\p"
+ .string "It’s been a long time. Let me break\n"
+ .string "the ice. I’m also looking for advice!\l"
+ .string "Are you receiving me?\l"
+ .string "You are receiving me!\p"
+ .string "My POKéMON--which should I use?\n"
+ .string "It’s either {STR_VAR_1} or {STR_VAR_2}.\l"
+ .string "Which do you choose?$"
+
+gText_082BF6E5:: @ 82BF6E5
+ .string "If that {STR_VAR_1} is the best,\n"
+ .string "I’ll do as you suggest!\p"
+ .string "Well, {PLAYER}, I have to roam free,\n"
+ .string "but don’t you forget about me.\p"
+ .string "See you again, my smart friend!$"
+
+gText_082BF773:: @ 82BF773
+ .string "Oh, hi, {PLAYER}{STRING 5}…\n"
+ .string "I have this horrible headache…\p"
+ .string "I must’ve worried too much about\n"
+ .string "the kind of POKéMON I should raise.\p"
+ .string "So, things being this way,\n"
+ .string "I need you to decide for me.\p"
+ .string "{PLAYER}{STRING 5}, if I had to choose between\n"
+ .string "the POKéMON {STR_VAR_1} and\l"
+ .string "{STR_VAR_2}, which should it be?$"
+
+gText_082BF869:: @ 82BF869
+ .string "Hm, one {STR_VAR_1}, all right.\n"
+ .string "I’ll go look for one when I get better.\p"
+ .string "I hope I can keep hitting you up\n"
+ .string "for help like this.$"
+
+gText_082BF8DD:: @ 82BF8DD
+ .string "Er… Um…\n"
+ .string "{PLAYER}{STRING 5}…?\p"
+ .string "Please, don’t look at me that way.\n"
+ .string "I’m getting all flustered…\l"
+ .string "I… I need your advice.\p"
+ .string "I… I’m really embarrassed, but I can’t\n"
+ .string "decide which POKéMON to use.\p"
+ .string "If the choices were {STR_VAR_1} or\n"
+ .string "{STR_VAR_2}, which would be better?$"
+
+gText_082BF9BA:: @ 82BF9BA
+ .string "Oh… Okay!\n"
+ .string "I’ll do my best with one {STR_VAR_1}.\p"
+ .string "I hope I can do my best without\n"
+ .string "getting all flustered.\p"
+ .string "Thank you, {PLAYER}{STRING 5}.\n"
+ .string "If we meet again, I hope you will be\l"
+ .string "as helpful.$"
+
+gText_082BFA5A:: @ 82BFA5A
+ .string "Hm? You appear to be {PLAYER}{STRING 5}…\n"
+ .string "But are you really real?\p"
+ .string "No, no, if you are real, it’s fine.\n"
+ .string "Incidentally, I would like to obtain\l"
+ .string "your advice.\p"
+ .string "It’s about the POKéMON I am to use.\p"
+ .string "If the choices are the POKéMON\n"
+ .string "{STR_VAR_1} and {STR_VAR_2}, which is\l"
+ .string "more worthy of me?$"
+
+gText_082BFB4E:: @ 82BFB4E
+ .string "{STR_VAR_1}?\n"
+ .string "Are you certain?\p"
+ .string "I see. If that’s the case, that’s fine.\n"
+ .string "I thank you for your time.\p"
+ .string "I do hope it is something even I can\n"
+ .string "handle with aplomb.\p"
+ .string "Let us meet again!$"
+
+gText_082BFBF2:: @ 82BFBF2
+ .string "Waaah! Oh, {PLAYER}!\n"
+ .string "Snivel… Hiccup…\p"
+ .string "I have a dilemma!\n"
+ .string "I can’t decide on a move for\l"
+ .string "my {STR_VAR_1}…\p"
+ .string "Please, please, {PLAYER}.\n"
+ .string "Can you decide for me?\p"
+ .string "For my {STR_VAR_1}, which move would\n"
+ .string "be the better choice: {STR_VAR_2}\l"
+ .string "or {STR_VAR_3}?$"
+
+gText_082BFCAE:: @ 82BFCAE
+ .string "{STR_VAR_1}?\n"
+ .string "Waaaaah!\p"
+ .string "Oh! I’m so sorry, {PLAYER}!\n"
+ .string "You’ve made me so happy by deciding\l"
+ .string "the move, I’m crying…\p"
+ .string "Snivel…\n"
+ .string "Thank you so much!$"
+
+gText_082BFD26:: @ 82BFD26
+ .string "Yay! Hi, {PLAYER}!\n"
+ .string "I need your advice again!\p"
+ .string "I want to teach my {STR_VAR_1}\n"
+ .string "a cool move.\p"
+ .string "I like either of the moves\n"
+ .string "{STR_VAR_2} or {STR_VAR_3}.\l"
+ .string "What’s your recommendation?$"
+
+gText_082BFDB1:: @ 82BFDB1
+ .string "{STR_VAR_1} is better? I guess so!\n"
+ .string "Okay, I’ll go with that!\p"
+ .string "If we meet here again, please teach\n"
+ .string "me something else, teacher!$"
+
+gText_082BFE24:: @ 82BFE24
+ .string "{PLAYER}, hello!\n"
+ .string "It’s about my {STR_VAR_1}, but I’m\l"
+ .string "worried about its moves.\p"
+ .string "You see, it’s the moves {STR_VAR_2}\n"
+ .string "and {STR_VAR_3}.\p"
+ .string "Which is stronger and better for\n"
+ .string "my {STR_VAR_1}?$"
+
+gText_082BFEAD:: @ 82BFEAD
+ .string "{STR_VAR_1} is your choice?\n"
+ .string "Okay, I got it!\p"
+ .string "I’ll go teach {STR_VAR_1} to\n"
+ .string "my POKéMON right away!\p"
+ .string "See you again!$"
+
+gText_082BFF0A:: @ 82BFF0A
+ .string "Ohhh, {PLAYER}…\n"
+ .string "I’m hopeless, no, really!\p"
+ .string "I’ve decided to raise a POKéMON,\n"
+ .string "but now I can’t even decide what\l"
+ .string "move I should let it learn…\p"
+ .string "I know that it doesn’t mean anything\n"
+ .string "to you, {PLAYER}.\p"
+ .string "But it means a lot to me…\p"
+ .string "Please, {PLAYER}, could you choose\n"
+ .string "a move for my {STR_VAR_1}?\p"
+ .string "If you could even choose between\n"
+ .string "{STR_VAR_2} and {STR_VAR_3}…$"
+
+gText_082C0032:: @ 82C0032
+ .string "I understand!\p"
+ .string "But will it even be willing to learn\n"
+ .string "{STR_VAR_1} for me…\l"
+ .string "No! I’ll do my best!\p"
+ .string "Thank you!$"
+
+gText_082C0090:: @ 82C0090
+ .string "Oh, {PLAYER}{STRING 5}!\n"
+ .string "I was just hoping to see you, too!\p"
+ .string "I was wondering what move would\n"
+ .string "be suitable for my {STR_VAR_1}.\p"
+ .string "I can’t decide, so can you decide\n"
+ .string "for me instead?\p"
+ .string "For instance… How about the moves\n"
+ .string "{STR_VAR_2} and {STR_VAR_3}?\l"
+ .string "Which one would be better?$"
+
+gText_082C016E:: @ 82C016E
+ .string "{STR_VAR_1}? That’s great!\p"
+ .string "Knowing that you made the decision,\n"
+ .string "{PLAYER}{STRING 5}, I won’t be so upset if\l"
+ .string "I lose.\p"
+ .string "Okay, I’ll look to you for advice again.\n"
+ .string "Bye!$"
+
+gText_082C01F7:: @ 82C01F7
+ .string "How could things be this busy?\n"
+ .string "Hey, if it isn’t {PLAYER}{STRING 5}!\l"
+ .string "How’s it going?\p"
+ .string "Since I got up this morning, I’ve done\n"
+ .string "my jogging, swimming, and cooking!\p"
+ .string "You wouldn’t believe how busy I am!\p"
+ .string "I can’t even decide what move\n"
+ .string "my {STR_VAR_1} should learn!\p"
+ .string "{STR_VAR_2} looks good, huh?\n"
+ .string "But {STR_VAR_3}’s also decent.\p"
+ .string "{PLAYER}{STRING 5}, give me some of your good\n"
+ .string "advice! Which move’d be good for me?$"
+
+gText_082C034C:: @ 82C034C
+ .string "Okay, gotcha.\n"
+ .string "I’ll make room in my schedule and\l"
+ .string "teach that move.\p"
+ .string "I’m glad I met a good mentor in you.\n"
+ .string "Thanks! See you around!$"
+
+gText_082C03CA:: @ 82C03CA
+ .string "Oh! Lucky!\n"
+ .string "I met you again, {PLAYER}!\l"
+ .string "I need to tap your mind again today.\p"
+ .string "Drum roll, please!\n"
+ .string "The question I have is…\p"
+ .string "For my {STR_VAR_1}, which is the move\n"
+ .string "best suited, {STR_VAR_2} or\l"
+ .string "{STR_VAR_3}?$"
+
+gText_082C046E:: @ 82C046E
+ .string "Ahhh!\n"
+ .string "{STR_VAR_1}, you say!\l"
+ .string "Thanks for a most cool answer!\p"
+ .string "I guess that’s about all I wanted\n"
+ .string "to ask you today.\p"
+ .string "Let’s meet here again, okay?\n"
+ .string "Thanks!$"
+
+gText_082C04F9:: @ 82C04F9
+ .string "Oh, hello, {PLAYER}.\n"
+ .string "I trust you’ve been well?\p"
+ .string "I have to seek your advice again.\n"
+ .string "It’s about my dearest {STR_VAR_1}.\p"
+ .string "What would be the ideal move for\n"
+ .string "my lovable {STR_VAR_1}?\l"
+ .string "{STR_VAR_2} or {STR_VAR_3}?$"
+
+gText_082C0598:: @ 82C0598
+ .string "{STR_VAR_1} it is!\n"
+ .string "I will teach that right away!\p"
+ .string "Thank you, {PLAYER}.\n"
+ .string "I hope I can count on you again.\l"
+ .string "Please take care!$"
+
+gText_082C0602:: @ 82C0602
+ .string "Eek! {PLAYER}! I met you again!\n"
+ .string "I… I’m overjoyed!\p"
+ .string "Whenever I’m in need, you’re always\n"
+ .string "there for me, {PLAYER}!\p"
+ .string "Today, I want you to recommend\n"
+ .string "a move for me!\p"
+ .string "Please choose a move for\n"
+ .string "my {STR_VAR_1}!\p"
+ .string "Which move would be better,\n"
+ .string "{STR_VAR_2} or {STR_VAR_3}?$"
+
+gText_082C06D8:: @ 82C06D8
+ .string "Oh-oh-oh! Thank you!\n"
+ .string "{STR_VAR_1} is it!\l"
+ .string "Perfectly understood!\p"
+ .string "I hope you’ll be willing to teach me\n"
+ .string "some more another time.$"
+
+gText_082C074A:: @ 82C074A
+ .string "Hola, {PLAYER}{STRING 5}, bueno!\n"
+ .string "I’m hoping for some more of\l"
+ .string "your sage advice today!\p"
+ .string "What would be the best move for\n"
+ .string "my {STR_VAR_1}?\p"
+ .string "It should be something that’ll\n"
+ .string "let me win just like that!\p"
+ .string "Would it be {STR_VAR_2}?\n"
+ .string "Or {STR_VAR_3}?$"
+
+gText_082C0809:: @ 82C0809
+ .string "Uh-huh, {STR_VAR_1} it is!\n"
+ .string "Si, bueno!\l"
+ .string "I’ll get it taught, like, ka-blam!\p"
+ .string "All right, thanks, as always!\n"
+ .string "Adios!$"
+
+gText_082C086E:: @ 82C086E
+ .string "{PLAYER}{STRING 5}, it’s completely wild!\p"
+ .string "My POKéMON!\n"
+ .string "It learned six moves!\p"
+ .string "Of course I’m lying!\n"
+ .string "Wahahaha!\p"
+ .string "This is no lie, though.\n"
+ .string "I’m not very good at choosing moves\l"
+ .string "for my POKéMON.\p"
+ .string "So, how about deciding for me which\n"
+ .string "kind of move I should teach?\p"
+ .string "{STR_VAR_2} or {STR_VAR_3}--which\n"
+ .string "would go with my {STR_VAR_1} best?$"
+
+gText_082C0982:: @ 82C0982
+ .string "Okay, so it’s {STR_VAR_1} you chose?\n"
+ .string "I’ll choose another move, then!\p"
+ .string "Just kidding!\n"
+ .string "I’ll obey your teaching, master!\p"
+ .string "Thanks, master!\n"
+ .string "I hope you’ll keep teaching me!$"
+
+gText_082C0A1D:: @ 82C0A1D
+ .string "A-H-O-Y!\n"
+ .string "And that spells ahoy!\p"
+ .string "The rappin’ SAILOR am I!\n"
+ .string "I’m always with it, don’t ask me why.\p"
+ .string "Today, I have a move question\n"
+ .string "that begs your suggestion!\p"
+ .string "{STR_VAR_2} and {STR_VAR_3} are\n"
+ .string "the moves. What would be the best\l"
+ .string "for my {STR_VAR_1} so it grooves?$"
+
+gText_082C0AFD:: @ 82C0AFD
+ .string "{STR_VAR_1}, you say, hey, hey!\n"
+ .string "I’ll go teach that right away!\p"
+ .string "If it’s advice I ever need,\n"
+ .string "{PLAYER}, your word I’ll always heed!$"
+
+gText_082C0B6F:: @ 82C0B6F
+ .string "Oh, yeahah, if it isn’t {PLAYER}!\p"
+ .string "What should I do? Get your advice?\n"
+ .string "Why not? I’m already talking to you!\p"
+ .string "{PLAYER}, are you surprised by me?\n"
+ .string "I want your advice, can’t you see?\p"
+ .string "Are you receiving me?\n"
+ .string "You are receiving me!\p"
+ .string "My {STR_VAR_1}--what should it use?\n"
+ .string "It’s {STR_VAR_2} or {STR_VAR_3},\l"
+ .string "what do you choose?$"
+
+gText_082C0C7D:: @ 82C0C7D
+ .string "If that {STR_VAR_1} is the best,\n"
+ .string "I’ll do as you suggest!\p"
+ .string "Well, {PLAYER}, I have to roam free,\n"
+ .string "but don’t you forget about me.\p"
+ .string "See you again, my smart friend!$"
+
+gText_082C0D0B:: @ 82C0D0B
+ .string "Gahack! Gaah! Oh, {PLAYER}{STRING 5}…\n"
+ .string "I have this lousy cold, I do…\p"
+ .string "I want to pick a move for my POKéMON,\n"
+ .string "but I’m not up to it…\p"
+ .string "So, things being this way,\n"
+ .string "I need you to decide for me.\p"
+ .string "{PLAYER}{STRING 5}, if I had to choose between\n"
+ .string "{STR_VAR_2} and {STR_VAR_3} for\l"
+ .string "my {STR_VAR_1}, which would it be?$"
+
+gText_082C0DFE:: @ 82C0DFE
+ .string "Hm, {STR_VAR_1}, all right. Cough!\n"
+ .string "I’ll go teach it when I get better.\p"
+ .string "I hope I can keep hitting you up\n"
+ .string "for help like this.$"
+
+gText_082C0E71:: @ 82C0E71
+ .string "Er… Um…\n"
+ .string "{PLAYER}{STRING 5}…?\p"
+ .string "Please, don’t look at me that way.\n"
+ .string "I’m getting all flustered…\l"
+ .string "I… I need your advice.\p"
+ .string "I… I’m really embarrassed, but I can’t\n"
+ .string "decide what move I should teach\l"
+ .string "my POKéMON.\p"
+ .string "It’s for my {STR_VAR_1}.\n"
+ .string "If the choices were {STR_VAR_2} or\l"
+ .string "{STR_VAR_3}, which would be better?$"
+
+gText_082C0F6D:: @ 82C0F6D
+ .string "Oh… Okay!\n"
+ .string "I’ll try that {STR_VAR_1}.\p"
+ .string "I hope I can teach that move…\n"
+ .string "This is so nerve-racking…\p"
+ .string "Thank you, {PLAYER}{STRING 5}.\n"
+ .string "If we meet again, I hope you will be\l"
+ .string "as helpful.$"
+
+gText_082C1003:: @ 82C1003
+ .string "Hm? You appear to be {PLAYER}{STRING 5}…\n"
+ .string "But are you really real?\p"
+ .string "Perhaps you’re one of those popular\n"
+ .string "mimics?\p"
+ .string "No, no, if you are real, it’s fine.\n"
+ .string "No need to be upset, I assure you!\p"
+ .string "Incidentally, I would like to obtain\n"
+ .string "your advice.\p"
+ .string "It’s about my {STR_VAR_1}.\p"
+ .string "Which move would be better for it to\n"
+ .string "use, {STR_VAR_2} or {STR_VAR_3}?$"
+
+gText_082C1122:: @ 82C1122
+ .string "{STR_VAR_1}?\n"
+ .string "There’s no question about that?\p"
+ .string "I see. If that’s the case, that’s fine.\n"
+ .string "I thank you for your time.\p"
+ .string "I do hope it is something even\n"
+ .string "my POKéMON can learn.\p"
+ .string "Let us meet again!$"
+
+gText_082C11D1:: @ 82C11D1
+ .string "Oh… {PLAYER}?\n"
+ .string "It is {PLAYER}!\l"
+ .string "Oh! Sniff…sob… Please, listen!\p"
+ .string "I… When I battle, I get so nervous,\n"
+ .string "I can’t help crying even if I win…\p"
+ .string "I wish I could say something cool\n"
+ .string "when I win…\p"
+ .string "Please, please, {PLAYER}!\n"
+ .string "Could you maybe teach me something\l"
+ .string "cool to say when I win so I don’t cry?$"
+
+gText_082C12D5:: @ 82C12D5
+ .string "{STR_VAR_1}\p"
+ .string "Awesome! Wicked! Awoooh!\n"
+ .string "It’s really cool!\p"
+ .string "Oh… I’m sorry…\n"
+ .string "I’m so happy, I’m crying…\p"
+ .string "Snivel… {PLAYER}!\n"
+ .string "Thank you so much for everything!\p"
+ .string "I will battle the best I can for\n"
+ .string "your sake, {PLAYER}!\p"
+ .string "{PLAYER}…\n"
+ .string "Next time… We should battle!$"
+
+gText_082C13AB:: @ 82C13AB
+ .string "Yay! It’s {PLAYER}! Hello!\n"
+ .string "I wanted to ask you something!\p"
+ .string "I want to say something cool when\n"
+ .string "I win a match.\p"
+ .string "Do you have a cool saying that\n"
+ .string "you could recommend?$"
+
+gText_082C1444:: @ 82C1444
+ .string "{STR_VAR_1}\p"
+ .string "Oh, wow! That is so cool!\n"
+ .string "Okay, I’ll say that!\p"
+ .string "Thanks for teaching me all this time!\n"
+ .string "I’m going to do the best I can\l"
+ .string "wherever I go from now on!\p"
+ .string "When we meet again, it’ll be for\n"
+ .string "a battle!$"
+
+gText_082C1501:: @ 82C1501
+ .string "{PLAYER}, hello!\p"
+ .string "My POKéMON and I are ready for\n"
+ .string "anything, except for one thing.\p"
+ .string "I think it would be good if I had\n"
+ .string "something to shout when I win.\p"
+ .string "Could you think up something good\n"
+ .string "to say?$"
+
+gText_082C15B6:: @ 82C15B6
+ .string "{STR_VAR_1}\p"
+ .string "…Cool!\n"
+ .string "I will use that!\p"
+ .string "I’m going out to battle all over\n"
+ .string "the place.\p"
+ .string "Who knows, I may even get to battle\n"
+ .string "you one day, {PLAYER}.\p"
+ .string "Next time, let’s meet at a place\n"
+ .string "of battle!$"
+
+gText_082C165E:: @ 82C165E
+ .string "Hello, {PLAYER}…\n"
+ .string "I’m sorry to bug you, but I’m hopeless…\p"
+ .string "Even when…\n"
+ .string "Even when I win, I don’t have anything\l"
+ .string "special to say…\p"
+ .string "I know that it doesn’t mean anything\n"
+ .string "to you, {PLAYER}.\p"
+ .string "But it means a lot to me…\p"
+ .string "Please, {PLAYER}, what should I say\n"
+ .string "if I win a battle?$"
+
+gText_082C174F:: @ 82C174F
+ .string "{STR_VAR_1}\p"
+ .string "That’s inspired…\p"
+ .string "Uh… Is it okay for someone like me\n"
+ .string "to even say that?\p"
+ .string "No! I’ll do my best!\p"
+ .string "{PLAYER}, thank you so much for\n"
+ .string "putting up with me for so long…\p"
+ .string "I promise to do my best from now on.\p"
+ .string "I’m sure you’ll quickly forget about\n"
+ .string "someone like me, but let’s meet\l"
+ .string "somewhere again!$"
+
+gText_082C1862:: @ 82C1862
+ .string "Oh, {PLAYER}{STRING 5}.\n"
+ .string "There’s something I want you to hear.\p"
+ .string "I know that I don’t always sound\n"
+ .string "nice or polite…\p"
+ .string "When I win a battle, I think I come\n"
+ .string "across as being arrogant.\p"
+ .string "I don’t want people to dislike me,\n"
+ .string "so I want to say something nice to\l"
+ .string "someone I beat.\p"
+ .string "But I can’t think of anything good!\n"
+ .string "Could you think something up for me?$"
+
+gText_082C19A0:: @ 82C19A0
+ .string "{STR_VAR_1}\p"
+ .string "Not bad!\n"
+ .string "Yup, that’s what I’ll go with!\p"
+ .string "I’m going to hit the road and do what\n"
+ .string "I can with what you taught me in\l"
+ .string "my head and heart.\p"
+ .string "I’m sorry that I’ve been so pushy\n"
+ .string "with you!\p"
+ .string "Next time, we battle, okay?\n"
+ .string "See you!$"
+
+gText_082C1A76:: @ 82C1A76
+ .string "Oh, I can’t get over how busy I am!\n"
+ .string "Oh, hey, I was looking for you, {PLAYER}{STRING 5}.\p"
+ .string "Are you well as usual?\n"
+ .string "Things haven’t changed for me at all.\p"
+ .string "I’ve got running, fighting, and mapping\n"
+ .string "to do. Why am I so busy?\p"
+ .string "But even though I’m busy, it’d be rude\n"
+ .string "to just turn on my heels and walk away\l"
+ .string "from a win without saying a word.\p"
+ .string "So, what would be a cool saying to\n"
+ .string "underline my coolness when I’m done\l"
+ .string "and walking away? {PLAYER}{STRING 5}, help me!$"
+
+gText_082C1C16:: @ 82C1C16
+ .string "{STR_VAR_1}\p"
+ .string "Okay, gotcha.\n"
+ .string "I can find time to say that!\p"
+ .string "Honestly, I’m glad I met a good mentor\n"
+ .string "like you.\p"
+ .string "I’m going to make time somehow so\n"
+ .string "I can get into battling.\p"
+ .string "Thanks for everything, {PLAYER}{STRING 5}!\n"
+ .string "We have to battle, you and me, one day!$"
+
+gText_082C1CF5:: @ 82C1CF5
+ .string "I lucked out again!\n"
+ .string "{PLAYER}! Am I glad to see you!\l"
+ .string "Like usual, I need your advice!\p"
+ .string "Drum roll, please!\n"
+ .string "The last question I have is…\p"
+ .string "If I win a battle and want to end\n"
+ .string "it with a cool flourish, what\l"
+ .string "should I say?$"
+
+gText_082C1DC1:: @ 82C1DC1
+ .string "{STR_VAR_1}\p"
+ .string "That… That’s fabulous!\n"
+ .string "It’s dignified and cool! I claim it!\p"
+ .string "…Listen, I think I’m getting decent\n"
+ .string "at this, huh?\p"
+ .string "So, I’m thinking of challenging other\n"
+ .string "TRAINERS from now on.\p"
+ .string "{PLAYER}, your advice really helped me.\p"
+ .string "Maybe one day, there’ll be a time when\n"
+ .string "we battle!\p"
+ .string "Thank you for everything!$"
+
+gText_082C1EDC:: @ 82C1EDC
+ .string "Oh, {PLAYER}.\n"
+ .string "I’m so glad I met you!\p"
+ .string "I no longer have any concerns with\n"
+ .string "regard to my POKéMON.\p"
+ .string "It’s myself that worries me…\p"
+ .string "Do you know how a TRAINER says\n"
+ .string "a few things upon winning a battle?\p"
+ .string "Definitely, I wish I could do that,\n"
+ .string "too!\p"
+ .string "Please, what should I say when\n"
+ .string "I win a battle?$"
+
+gText_082C1FEC:: @ 82C1FEC
+ .string "{STR_VAR_1}\p"
+ .string "Ah! That saying! It refreshes me\n"
+ .string "and makes me feel reborn!\p"
+ .string "I must use that right away!\p"
+ .string "And now, I must take my leave,\n"
+ .string "{PLAYER}…\p"
+ .string "I will go out to battle many others,\n"
+ .string "but never will I forget your teachings.\p"
+ .string "Perhaps one day…\n"
+ .string "Farewell!$"
+
+gText_082C20D1:: @ 82C20D1
+ .string "Eek! I spotted {PLAYER}!\n"
+ .string "I… I’m overjoyed to see you!\p"
+ .string "Oh-oh-oh! There’s something I just\n"
+ .string "had to ask you!\p"
+ .string "A little while ago, I won a battle.\n"
+ .string "That part was giddying!\p"
+ .string "But it made me so overjoyed that\n"
+ .string "I choked up and couldn’t say a thing!\p"
+ .string "So now, {PLAYER}, please, I want you to\n"
+ .string "think up an exit line for when I win!$"
+
+gText_082C21FF:: @ 82C21FF
+ .string "{STR_VAR_1}\p"
+ .string "Waaaaah!\n"
+ .string "I’m going to say that?!\l"
+ .string "I… I’m delirious with joy!\p"
+ .string "Th-th-thank you!\n"
+ .string "I have nothing left to regret now!\p"
+ .string "I’m going to travel now and battle\n"
+ .string "all sorts of people.\p"
+ .string "Everything, I owe it to you, {PLAYER}.\n"
+ .string "Really, really, thank you!\p"
+ .string "I’ve got to go now, but let’s meet\n"
+ .string "in battle one day!$"
+
+gText_082C231C:: @ 82C231C
+ .string "Hola, bueno!\n"
+ .string "{PLAYER}{STRING 5}!\p"
+ .string "You know, I’m getting the itch to roam\n"
+ .string "and battle where I may.\p"
+ .string "But before I do, I want your advice\n"
+ .string "once again, please!\p"
+ .string "If I were to win a battle, what would\n"
+ .string "be a good boast I could say to my\l"
+ .string "fallen TRAINER opponent?$"
+
+gText_082C2407:: @ 82C2407
+ .string "{STR_VAR_1}\p"
+ .string "Uh-huh, that’s sweet!\n"
+ .string "Si, bueno!\l"
+ .string "I’ll try saying that, like, ham!\p"
+ .string "And now, it’s time to say good-bye!\n"
+ .string "Thanks for all sorts of things!\p"
+ .string "Give me a battle one day, OK?\n"
+ .string "Adios!$"
+
+gText_082C24B5:: @ 82C24B5
+ .string "{PLAYER}{STRING 5}, there’s big trouble!\p"
+ .string "When I win a battle, I brag about it\n"
+ .string "for an hour at least!\p"
+ .string "Of course I’m lying!\n"
+ .string "Wahahaha!\p"
+ .string "This is no lie, though.\n"
+ .string "I’m not very good at chatting.\p"
+ .string "So, how about deciding for me what\n"
+ .string "I should say after winning a battle,\l"
+ .string "master?$"
+
+gText_082C25B1:: @ 82C25B1
+ .string "{STR_VAR_1}\p"
+ .string "That’s what I should say, huh?\n"
+ .string "Then, I’ll stay away from that!\p"
+ .string "Just kidding!\n"
+ .string "I’ll obey your teaching, master!\p"
+ .string "Thanks for teaching me all this time,\n"
+ .string "master!\p"
+ .string "I’m finally understanding what being\n"
+ .string "a TRAINER is about.\p"
+ .string "I’m going to go out and win battles\n"
+ .string "against any TRAINER.\p"
+ .string "Maybe it’ll be you one day, master!\p"
+ .string "That’s all!\n"
+ .string "Farewell, my master!$"
+
+gText_082C2707:: @ 82C2707
+ .string "A-H-O-Y!\n"
+ .string "And that spells ahoy!\p"
+ .string "The rappin’ SAILOR am I!\n"
+ .string "This will be my last question,\l"
+ .string "don’t you cry!\p"
+ .string "It’s a saying question\n"
+ .string "that begs your suggestion!\p"
+ .string "If I win a match, what can I say\n"
+ .string "in a real cool way?$"
+
+gText_082C27D4:: @ 82C27D4
+ .string "{STR_VAR_1}\p"
+ .string "Perfect! That’s what I’ll use.\n"
+ .string "I was right to make you choose!\p"
+ .string "And now, I think it’d be best,\n"
+ .string "if I were to fly the nest!\p"
+ .string "Thanks for all you taught me.\n"
+ .string "I’ll be off on a battle spree!\p"
+ .string "B-O-N-V-O-Y-A-G-E!\n"
+ .string "And that spells bon voyage,\l"
+ .string "to you this is my homage!$"
+
+gText_082C28D6:: @ 82C28D6
+ .string "Oh, yeah, {PLAYER}!\n"
+ .string "I found you again today!\p"
+ .string "What should I do? Ask you again?\n"
+ .string "Why not? I’m already asking you!\p"
+ .string "Anyways, {PLAYER}…\n"
+ .string "Are you receiving me?\l"
+ .string "You are receiving me!\l"
+ .string "I need some more advice for me!\p"
+ .string "It’s about what I should yell.\n"
+ .string "Something cool to holler when\l"
+ .string "a battle ends well.\p"
+ .string "Come on, I wanna hear you say it!$"
+
+gText_082C2A0B:: @ 82C2A0B
+ .string "{STR_VAR_1}\p"
+ .string "All right, all right!\n"
+ .string "I’ll use that because it’s so tight!\p"
+ .string "I’m out of things to ask you.\n"
+ .string "Waving bye is all that’s left to do.\p"
+ .string "But maybe one day we’ll meet, with one\n"
+ .string "destined to go down in defeat.\p"
+ .string "But, it really is time to say farewell.\p"
+ .string "Well, {PLAYER}, I have to roam free,\n"
+ .string "but don’t you forget about me!\p"
+ .string "Take care, {PLAYER}!\n"
+ .string "Love ya!$"
+
+gText_082C2B50:: @ 82C2B50
+ .string "{PLAYER}{STRING 5}, I’m finished…\n"
+ .string "My nose won’t stop dripping…\p"
+ .string "I was trying to think up something\n"
+ .string "cool to say when I win a battle.\p"
+ .string "It inspired me so much, it made me cry,\n"
+ .string "and now my nose won’t stop running…\p"
+ .string "So, things being this way,\n"
+ .string "I need you to decide for me, {PLAYER}{STRING 5}.\p"
+ .string "When I win a battle,\n"
+ .string "what should I say?$"
+
+gText_082C2C77:: @ 82C2C77
+ .string "{STR_VAR_1}\p"
+ .string "… … …That’s good.\n"
+ .string "No, it’s awe inspiring!\l"
+ .string "It’s bringing fresh tears to my eyes!\p"
+ .string "But in spite of my tears and runny\n"
+ .string "nose, I will use that saying!\p"
+ .string "I’m plumb out of things to ask you,\n"
+ .string "{PLAYER}{STRING 5}.\p"
+ .string "From now on, we’re rivals!\n"
+ .string "Thanks for everything!$"
+
+gText_082C2D67:: @ 82C2D67
+ .string "Er… Um…\n"
+ .string "{PLAYER}{STRING 5}…\p"
+ .string "Please, don’t look at me that way.\n"
+ .string "You’re making me all nervous.\p"
+ .string "I… I need your advice again.\n"
+ .string "I’ll make it my last, though…\p"
+ .string "It’s really embarrassing to ask,\n"
+ .string "but what if I win a battle?\l"
+ .string "What should I say?$"
+
+gText_082C2E41:: @ 82C2E41
+ .string "{STR_VAR_1}\p"
+ .string "Oh… Okay!\n"
+ .string "I’ll try to say that!\l"
+ .string "I might be too nervous to say it…\p"
+ .string "Thank you, {PLAYER}{STRING 5}.\n"
+ .string "I have to say good-bye now.\p"
+ .string "I’ll obey all that you’ve taught me,\n"
+ .string "{PLAYER}{STRING 5}, and do the best I can.$"
+
+gText_082C2EF5:: @ 82C2EF5
+ .string "Hm? You appear to be {PLAYER}{STRING 5}…\n"
+ .string "But are you really?\l"
+ .string "Perhaps a clever {PLAYER} DOLL?\p"
+ .string "Oh, no, no, no, don’t worry!\n"
+ .string "If you really are real, please\l"
+ .string "forget about my rudeness.\p"
+ .string "No need to be so angry. All I wish for\n"
+ .string "is more of your fine advice.\p"
+ .string "It concerns a saying.\p"
+ .string "More precisely, what should I say\n"
+ .string "if I win a battle?$"
+
+gText_082C3023:: @ 82C3023
+ .string "{STR_VAR_1}\p"
+ .string "… … … … … …\n"
+ .string "When I win a match…\p"
+ .string "{STR_VAR_1}\p"
+ .string "…Are you serious?\p"
+ .string "I see. If you are serious, that’s fine.\n"
+ .string "I thank you for your time.\p"
+ .string "I do hope even I will be able to\n"
+ .string "put that saying to good use.\p"
+ .string "I seem to have run dry on what advice\n"
+ .string "I need.\p"
+ .string "I do believe it’s high time I bid you\n"
+ .string "farewell and strike out on my own.\p"
+ .string "Thank you, my mentor!\n"
+ .string "I apologize for my skepticism!$"
diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc
index 96e36dcf9..ce3dea170 100644
--- a/data/scripts/cable_club.inc
+++ b/data/scripts/cable_club.inc
@@ -430,7 +430,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276F60:: @ 8276F60
call OldaleTown_PokemonCenter_2F_EventScript_27134F
compare VAR_RESULT, 0
goto_eq OldaleTown_PokemonCenter_2F_EventScript_2772EC
- message OldaleTown_PokemonCenter_2F_Text_278091
+ message gText_PleaseWaitForLink
waitmessage
special sub_80B2DA4
waitstate
@@ -474,7 +474,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276FBD:: @ 8276FBD
release
compare VAR_0x8004, 5
goto_eq OldaleTown_PokemonCenter_2F_EventScript_277036
- special sub_809D2BC
+ special SetCableClubWarp
warp MAP_SINGLE_BATTLE_COLOSSEUM, 255, 6, 8
special sub_80AF948
waitstate
@@ -486,7 +486,7 @@ OldaleTown_PokemonCenter_2F_EventScript_27702B:: @ 827702B
return
OldaleTown_PokemonCenter_2F_EventScript_277036:: @ 8277036
- special sub_809D2BC
+ special SetCableClubWarp
warp MAP_DOUBLE_BATTLE_COLOSSEUM, 255, 5, 8
special sub_80AF948
waitstate
@@ -532,7 +532,7 @@ OldaleTown_PokemonCenter_2F_EventScript_2770B2:: @ 82770B2
call OldaleTown_PokemonCenter_2F_EventScript_27134F
compare VAR_RESULT, 0
goto_eq OldaleTown_PokemonCenter_2F_EventScript_2772EC
- message OldaleTown_PokemonCenter_2F_Text_278091
+ message gText_PleaseWaitForLink
waitmessage
special sub_80B2E4C
waitstate
@@ -576,7 +576,7 @@ OldaleTown_PokemonCenter_2F_EventScript_27713A:: @ 827713A
closedoor 9, 1
waitdooranim
release
- special sub_809D2BC
+ special SetCableClubWarp
setwarp MAP_TRADE_CENTER, 255, 5, 8
special sub_80AF948
waitstate
@@ -607,7 +607,7 @@ OldaleTown_PokemonCenter_2F_EventScript_2771DB:: @ 82771DB
call OldaleTown_PokemonCenter_2F_EventScript_27134F
compare VAR_RESULT, 0
goto_eq OldaleTown_PokemonCenter_2F_EventScript_2772EC
- message OldaleTown_PokemonCenter_2F_Text_278091
+ message gText_PleaseWaitForLink
waitmessage
special sub_80B2E74
waitstate
@@ -651,7 +651,7 @@ OldaleTown_PokemonCenter_2F_EventScript_27724C:: @ 827724C
closedoor 9, 1
waitdooranim
release
- special sub_809D2BC
+ special SetCableClubWarp
setwarp MAP_RECORD_CORNER, 255, 8, 9
special sub_80AF948
waitstate
@@ -702,7 +702,7 @@ MossdeepCity_GameCorner_1F_EventScript_2772F9:: @ 82772F9
end
OldaleTown_PokemonCenter_2F_EventScript_277306:: @ 8277306
- special sub_809D2BC
+ special SetCableClubWarp
special sub_80AF948
waitstate
end
@@ -784,7 +784,7 @@ MossdeepCity_GameCorner_1F_Movement_277360: @ 8277360
walk_up
step_end
-gUnknown_08277365:: @ 8277365
+EventScript_CableBoxResults:: @ 8277365
lockall
setvar VAR_0x8004, 0
special ShowLinkBattleRecords
@@ -1050,7 +1050,7 @@ OldaleTown_PokemonCenter_2F_EventScript_27759F:: @ 827759F
closedoor 5, 1
waitdooranim
special sub_8018090
- special sub_809D2BC
+ special SetCableClubWarp
warpteleport2 MAP_UNION_ROOM, 255, 7, 11
waitstate
special UnionRoomSpecial
@@ -1392,7 +1392,7 @@ OldaleTown_PokemonCenter_2F_EventScript_277B3A:: @ 8277B3A
waitstate
end
-OldaleTown_PokemonCenter_2F_EventScript_277B8A:: @ 8277B8A
+EventScript_WirelessBoxResults:: @ 8277B8A
lockall
checkflag FLAG_SYS_POKEDEX_GET
goto_if 0, OldaleTown_PokemonCenter_2F_EventScript_27733F
@@ -1675,21 +1675,21 @@ OldaleTown_PokemonCenter_2F_Text_278061: @ 8278061
.string "A POKéMON holding the {STR_VAR_1}\n"
.string "BERRY can’t be traded.$"
-OldaleTown_PokemonCenter_2F_Text_278091:: @ 8278091
+gText_PleaseWaitForLink:: @ 8278091
.string "Please wait.\n"
.string "… … B Button: Cancel$"
-OldaleTown_PokemonCenter_2F_Text_2780B3:: @ 82780B3
+gText_ConfirmLinkWhenPlayersReady:: @ 82780B3
.string "When all players are ready…\n"
.string "A Button: Confirm\l"
.string "B Button: Cancel$"
-OldaleTown_PokemonCenter_2F_Text_2780F2:: @ 82780F2
+gText_ConfirmStartLinkWithXPlayers:: @ 82780F2
.string "Start link with {STR_VAR_1} players.\n"
.string "A Button: Confirm\l"
.string "B Button: Cancel$"
-OldaleTown_PokemonCenter_2F_Text_278131:: @ 8278131
+gText_AwaitingLinkup:: @ 8278131
.string "Awaiting linkup…\n"
.string "… … B Button: Cancel$"
diff --git a/data/scripts/day_care.inc b/data/scripts/day_care.inc
index d9b8a89ac..7b306a261 100644
--- a/data/scripts/day_care.inc
+++ b/data/scripts/day_care.inc
@@ -289,7 +289,7 @@ Route117_PokemonDayCare_EventScript_291F95:: @ 8291F95
release
end
-Route117_PokemonDayCare_EventScript_291FC0:: @ 8291FC0
+EventScript_EggHatch:: @ 8291FC0
lockall
msgbox Text_292668, 4
special EggHatch
diff --git a/data/scripts/field_move_scripts.inc b/data/scripts/field_move_scripts.inc
index d0936b9c1..aba6bec97 100644
--- a/data/scripts/field_move_scripts.inc
+++ b/data/scripts/field_move_scripts.inc
@@ -223,7 +223,7 @@ FieryPath_Text_290A16: @ 8290A16
.string "STRENGTH made it possible to move\n"
.string "boulders around.$"
-EventScript_290A49:: @ 8290A49
+EventScript_UseWaterfall:: @ 8290A49
lockall
checkpartymove MOVE_WATERFALL
compare VAR_RESULT, 6
@@ -237,7 +237,7 @@ EventScript_290A49:: @ 8290A49
dofieldeffect 43
goto EventScript_290A8C
-EventScript_290A83:: @ 8290A83
+EventScript_CannotUseWaterfall:: @ 8290A83
lockall
EventScript_290A84:: @ 8290A84
@@ -258,7 +258,7 @@ Text_290AC3: @ 8290AC3
Text_290AFC: @ 8290AFC
.string "{STR_VAR_1} used WATERFALL.$"
-EventScript_290B0F:: @ 8290B0F
+EventScript_UseDive:: @ 8290B0F
lockall
checkpartymove MOVE_DIVE
compare VAR_RESULT, 6
@@ -283,7 +283,7 @@ EventScript_290B58:: @ 8290B58
releaseall
end
-EventScript_290B5A:: @ 8290B5A
+EventScript_UseDiveUnderwater:: @ 8290B5A
lockall
checkpartymove MOVE_DIVE
compare VAR_RESULT, 6
diff --git a/data/scripts/secret_power_tm.inc b/data/scripts/secret_power_tm.inc
index 76a4ee8f1..33e7f2e5b 100644
--- a/data/scripts/secret_power_tm.inc
+++ b/data/scripts/secret_power_tm.inc
@@ -104,10 +104,10 @@ Route111_Movement_276696: @ 8276696
walk_down
step_end
-EventScript_2766A2:: @ 82766A2
+EventScript_SecretPower1:: @ 82766A2
special sub_80EB290
end
-EventScript_2766A6:: @ 82766A6
+EventScript_SecretPower2:: @ 82766A6
special sub_80EB2C8
end
diff --git a/data/scripts/tv.inc b/data/scripts/tv.inc
index 8d1ac83eb..2292e9984 100644
--- a/data/scripts/tv.inc
+++ b/data/scripts/tv.inc
@@ -1,4 +1,4 @@
-EventScript_27EE0B:: @ 827EE0B
+EventScript_TV:: @ 827EE0B
lockall
incrementgamestat 44
special ResetTVShowState
diff --git a/data/shop.s b/data/shop.s
index 58f294e6b..45ecbb585 100644
--- a/data/shop.s
+++ b/data/shop.s
@@ -53,9 +53,10 @@ gUnknown_08589AA8:: @ 8589AA8
gUnknown_08589AB0:: @ 8589AB0
.byte 1, 2, 3
+ .byte 0, 2, 3
+ .byte 0, 3, 2
-gUnknown_08589AB3:: @ 8589AB3
- .byte 0, 2, 3, 0, 3, 2, 0
+ .align 1
gUnknown_08589ABA:: @ 8589ABA
.2byte 0x284, 0x282, 0x280
diff --git a/data/specials.inc b/data/specials.inc
index 5d31c425f..cec36932a 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -9,7 +9,7 @@
.align 2
gSpecials:: @ 81DBA64
def_special HealPlayerParty
- def_special sub_809D2BC
+ def_special SetCableClubWarp
def_special sub_80AF948
def_special sub_80AF9F8
def_special sub_80B36EC
@@ -259,7 +259,7 @@ gSpecials:: @ 81DBA64
def_special sub_80F9490
def_special ValidateEReaderTrainer
def_special GetBestBattleTowerStreak
- def_special sub_80F94E8
+ def_special ReducePlayerPartyToThree
def_special BedroomPC
def_special PlayerPC
def_special FieldShowRegionMap
@@ -415,7 +415,7 @@ gSpecials:: @ 81DBA64
def_special sub_818E990
def_special PutLilycoveContestLadyShowOnTheAir
def_special sub_813B880
- def_special sub_81A085C
+ def_special CallApprenticeFunction
def_special ShouldTryGetTrainerScript
def_special ShowMapNamePopup
def_special ShowMapNamePopup
diff --git a/graphics/event_objects/pics/people/contest_old_man.png b/graphics/event_objects/pics/people/contest_judge.png
index 919230cb7..919230cb7 100644
--- a/graphics/event_objects/pics/people/contest_old_man.png
+++ b/graphics/event_objects/pics/people/contest_judge.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/man_7.png b/graphics/event_objects/pics/people/devon_employee.png
index 106bc58b3..106bc58b3 100644
--- a/graphics/event_objects/pics/people/man_7.png
+++ b/graphics/event_objects/pics/people/devon_employee.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/old_woman_1.png b/graphics/event_objects/pics/people/expert_f.png
index a0d852cd4..a0d852cd4 100644
--- a/graphics/event_objects/pics/people/old_woman_1.png
+++ b/graphics/event_objects/pics/people/expert_f.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/old_man_1.png b/graphics/event_objects/pics/people/expert_m.png
index 6bd5afc44..6bd5afc44 100644
--- a/graphics/event_objects/pics/people/old_man_1.png
+++ b/graphics/event_objects/pics/people/expert_m.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/boy_5.png b/graphics/event_objects/pics/people/gameboy_kid.png
index b0b742651..b0b742651 100644
--- a/graphics/event_objects/pics/people/boy_5.png
+++ b/graphics/event_objects/pics/people/gameboy_kid.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/woman_6.png b/graphics/event_objects/pics/people/link_receptionist.png
index 2ffdd5af6..2ffdd5af6 100644
--- a/graphics/event_objects/pics/people/woman_6.png
+++ b/graphics/event_objects/pics/people/link_receptionist.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/little_boy_2.png b/graphics/event_objects/pics/people/little_boy.png
index 1b62a36d0..1b62a36d0 100644
--- a/graphics/event_objects/pics/people/little_boy_2.png
+++ b/graphics/event_objects/pics/people/little_boy.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/little_girl_2.png b/graphics/event_objects/pics/people/little_girl.png
index 2540d84af..2540d84af 100644
--- a/graphics/event_objects/pics/people/little_girl_2.png
+++ b/graphics/event_objects/pics/people/little_girl.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/man_3.png b/graphics/event_objects/pics/people/man_3.png
index a41a1ee9b..05a87d4dd 100644
--- a/graphics/event_objects/pics/people/man_3.png
+++ b/graphics/event_objects/pics/people/man_3.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/man_4.png b/graphics/event_objects/pics/people/man_4.png
index 05a87d4dd..234d67924 100644
--- a/graphics/event_objects/pics/people/man_4.png
+++ b/graphics/event_objects/pics/people/man_4.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/man_5.png b/graphics/event_objects/pics/people/man_5.png
index 234d67924..f86aff0e4 100644
--- a/graphics/event_objects/pics/people/man_5.png
+++ b/graphics/event_objects/pics/people/man_5.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/man_6.png b/graphics/event_objects/pics/people/man_6.png
deleted file mode 100644
index f86aff0e4..000000000
--- a/graphics/event_objects/pics/people/man_6.png
+++ /dev/null
Binary files differ
diff --git a/graphics/event_objects/pics/people/little_boy_1.png b/graphics/event_objects/pics/people/ninja_boy.png
index ce4f3e92c..ce4f3e92c 100644
--- a/graphics/event_objects/pics/people/little_boy_1.png
+++ b/graphics/event_objects/pics/people/ninja_boy.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/old_man_2.png b/graphics/event_objects/pics/people/old_man.png
index fe2a77c6e..fe2a77c6e 100644
--- a/graphics/event_objects/pics/people/old_man_2.png
+++ b/graphics/event_objects/pics/people/old_man.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/old_woman_2.png b/graphics/event_objects/pics/people/old_woman.png
index 84a5ba801..84a5ba801 100644
--- a/graphics/event_objects/pics/people/old_woman_2.png
+++ b/graphics/event_objects/pics/people/old_woman.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/pokefan_f.png b/graphics/event_objects/pics/people/pokefan_f.png
new file mode 100644
index 000000000..c97fc3507
--- /dev/null
+++ b/graphics/event_objects/pics/people/pokefan_f.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/pokefan_m.png b/graphics/event_objects/pics/people/pokefan_m.png
new file mode 100644
index 000000000..a41a1ee9b
--- /dev/null
+++ b/graphics/event_objects/pics/people/pokefan_m.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/boy_4.png b/graphics/event_objects/pics/people/rich_boy.png
index 6536d2c23..6536d2c23 100644
--- a/graphics/event_objects/pics/people/boy_4.png
+++ b/graphics/event_objects/pics/people/rich_boy.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/little_girl_1.png b/graphics/event_objects/pics/people/twin.png
index 5ce59ea1b..5ce59ea1b 100644
--- a/graphics/event_objects/pics/people/little_girl_1.png
+++ b/graphics/event_objects/pics/people/twin.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/woman_2.png b/graphics/event_objects/pics/people/woman_2.png
index c97fc3507..8d35b1653 100644
--- a/graphics/event_objects/pics/people/woman_2.png
+++ b/graphics/event_objects/pics/people/woman_2.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/woman_3.png b/graphics/event_objects/pics/people/woman_3.png
index 8d35b1653..2a29acae3 100644
--- a/graphics/event_objects/pics/people/woman_3.png
+++ b/graphics/event_objects/pics/people/woman_3.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/woman_4.png b/graphics/event_objects/pics/people/woman_4.png
index 2a29acae3..95dfc76da 100644
--- a/graphics/event_objects/pics/people/woman_4.png
+++ b/graphics/event_objects/pics/people/woman_4.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/woman_5.png b/graphics/event_objects/pics/people/woman_5.png
index 95dfc76da..a7750dc4c 100644
--- a/graphics/event_objects/pics/people/woman_5.png
+++ b/graphics/event_objects/pics/people/woman_5.png
Binary files differ
diff --git a/graphics/event_objects/pics/people/woman_7.png b/graphics/event_objects/pics/people/woman_7.png
deleted file mode 100644
index a7750dc4c..000000000
--- a/graphics/event_objects/pics/people/woman_7.png
+++ /dev/null
Binary files differ
diff --git a/include/apprentice.h b/include/apprentice.h
new file mode 100644
index 000000000..ca0b04800
--- /dev/null
+++ b/include/apprentice.h
@@ -0,0 +1,24 @@
+#ifndef GUARD_APPRENTICE_H
+#define GUARD_APPRENTICE_H
+
+#define APPRENTICE_SPECIES_COUNT 10
+
+struct ApprenticeTrainer
+{
+ u8 name[6][PLAYER_NAME_LENGTH + 1]; // For all six languages.
+ u16 otId;
+ u8 facilityClass;
+ u16 species[APPRENTICE_SPECIES_COUNT];
+ u8 rest[14];
+};
+
+extern const struct ApprenticeTrainer gApprentices[];
+
+void CopyFriendsApprenticeChallengeText(u8 saveblockApprenticeId);
+void Apprentice_EnableBothScriptContexts(void);
+void ResetApprenticeStruct(struct Apprentice *apprentice);
+void ResetAllApprenticeData(void);
+void CallApprenticeFunction(void);
+const u8 *GetApprenticeNameInLanguage(u32 apprenticeId, s32 language);
+
+#endif // GUARD_APPRENTICE_H
diff --git a/include/battle.h b/include/battle.h
index 3e638c6ef..87aa2a45b 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -27,8 +27,8 @@
#define B_ACTION_SAFARI_POKEBLOCK 6
#define B_ACTION_SAFARI_GO_NEAR 7
#define B_ACTION_SAFARI_RUN 8
+#define B_ACTION_WALLY_THROW 9
// The exact purposes of these are unclear
-#define B_ACTION_WALLY_THROW 9
#define B_ACTION_EXEC_SCRIPT 10 // when executing an action
#define B_ACTION_CANCEL_PARTNER 12 // when choosing an action
#define B_ACTION_FINISHED 12 // when executing an action
@@ -128,42 +128,40 @@ struct UnknownFlags
struct DisableStruct
{
- /*0x00*/ u32 transformedMonPersonality;
- /*0x04*/ u16 disabledMove;
- /*0x06*/ u16 encoredMove;
- /*0x08*/ u8 protectUses;
- /*0x09*/ u8 stockpileCounter;
- /*0x0A*/ u8 substituteHP;
- /*0x0B*/ u8 disableTimer1:4;
- /*0x0B*/ u8 disableTimer2:4;
- /*0x0C*/ u8 encoredMovePos;
- /*0x0D*/ u8 unkD;
- /*0x0E*/ u8 encoreTimer1:4;
- /*0x0E*/ u8 encoreTimer2:4;
- /*0x0F*/ u8 perishSongTimer1:4;
- /*0x0F*/ u8 perishSongTimer2:4;
- /*0x10*/ u8 furyCutterCounter;
- /*0x11*/ u8 rolloutCounter1:4;
- /*0x11*/ u8 rolloutCounter2:4;
- /*0x12*/ u8 chargeTimer1:4;
- /*0x12*/ u8 chargeTimer2:4;
- /*0x13*/ u8 tauntTimer1:4;
- /*0x13*/ u8 tauntTimer2:4;
- /*0x14*/ u8 battlerPreventingEscape;
- /*0x15*/ u8 battlerWithSureHit;
- /*0x16*/ u8 isFirstTurn;
- /*0x17*/ u8 unk17;
- /*0x18*/ u8 truantCounter:1;
- /*0x18*/ u8 truantUnknownBit:1;
- /*0x18*/ u8 unk18_a_2:2;
- /*0x18*/ u8 unk18_b:4;
- /*0x19*/ u8 rechargeCounter;
- /*0x1A*/ u8 unk1A[2];
+ u32 transformedMonPersonality;
+ u16 disabledMove;
+ u16 encoredMove;
+ u8 protectUses;
+ u8 stockpileCounter;
+ u8 substituteHP;
+ u8 disableTimer:4;
+ u8 disableTimerStartValue:4;
+ u8 encoredMovePos;
+ u8 filler_D; // Unused field.
+ u8 encoreTimer:4;
+ u8 encoreTimerStartValue:4;
+ u8 perishSongTimer:4;
+ u8 perishSongTimerStartValue:4;
+ u8 furyCutterCounter;
+ u8 rolloutTimer:4;
+ u8 rolloutTimerStartValue:4;
+ u8 chargeTimer:4;
+ u8 chargeTimerStartValue:4;
+ u8 tauntTimer:4;
+ u8 tauntTimer2:4;
+ u8 battlerPreventingEscape;
+ u8 battlerWithSureHit;
+ u8 isFirstTurn;
+ u8 unk17;
+ u8 truantCounter:1;
+ u8 truantUnknownBit:1;
+ u8 unk18_a_2:2;
+ u8 unk18_b:4;
+ u8 rechargeTimer;
};
struct ProtectStruct
{
- /* field_0 */
u32 protected:1;
u32 endured:1;
u32 noValidMoves:1;
@@ -172,67 +170,54 @@ struct ProtectStruct
u32 stealMove:1;
u32 flag0Unknown:1;
u32 prlzImmobility:1;
- /* field_1 */
u32 confusionSelfDmg:1;
u32 targetNotAffected:1;
u32 chargingTurn:1;
- u32 fleeFlag:2; // for RunAway and Smoke Ball
+ u32 fleeFlag:2; // For RunAway and Smoke Ball.
u32 usedImprisionedMove:1;
u32 loveImmobility:1;
u32 usedDisabledMove:1;
- /* field_2 */
- u32 usedTauntedMove:1; // 0x1
- u32 flag2Unknown:1; // 0x2
- u32 flinchImmobility:1; // 0x4
- u32 notFirstStrike:1; // 0x8
- u32 flag_x10:1; // 0x10
- u32 flag_x20:1; // 0x20
- u32 flag_x40:1; // 0x40
- u32 flag_x80:1; // 0x80
- /* field_3 */
- u32 field3:8;
-
- /* field_4 */ u32 physicalDmg;
- /* field_8 */ u32 specialDmg;
- /* field_C */ u8 physicalBattlerId;
- /* field_D */ u8 specialBattlerId;
- /* field_E */ u16 fieldE;
+ u32 usedTauntedMove:1;
+ u32 flag2Unknown:1;
+ u32 flinchImmobility:1;
+ u32 notFirstStrike:1;
+ u32 flag_x10:1;
+ u32 physicalDmg;
+ u32 specialDmg;
+ u8 physicalBattlerId;
+ u8 specialBattlerId;
};
struct SpecialStatus
{
- u8 statLowered:1; // 0x1
- u8 lightningRodRedirected:1; // 0x2
- u8 restoredBattlerSprite: 1; // 0x4
- u8 intimidatedMon:1; // 0x8
- u8 traced:1; // 0x10
- u8 flag20:1;
+ u8 statLowered:1;
+ u8 lightningRodRedirected:1;
+ u8 restoredBattlerSprite: 1;
+ u8 intimidatedMon:1;
+ u8 traced:1;
+ u8 ppNotAffectedByPressure:1;
u8 flag40:1;
u8 focusBanded:1;
- u8 field1[3];
s32 dmg;
s32 physicalDmg;
s32 specialDmg;
u8 physicalBattlerId;
u8 specialBattlerId;
- u8 field12;
- u8 field13;
};
struct SideTimer
{
- /*0x00*/ u8 reflectTimer;
- /*0x01*/ u8 reflectBattlerId;
- /*0x02*/ u8 lightscreenTimer;
- /*0x03*/ u8 lightscreenBattlerId;
- /*0x04*/ u8 mistTimer;
- /*0x05*/ u8 mistBattlerId;
- /*0x06*/ u8 safeguardTimer;
- /*0x07*/ u8 safeguardBattlerId;
- /*0x08*/ u8 followmeTimer;
- /*0x09*/ u8 followmeTarget;
- /*0x0A*/ u8 spikesAmount;
- /*0x0B*/ u8 fieldB;
+ u8 reflectTimer;
+ u8 reflectBattlerId;
+ u8 lightscreenTimer;
+ u8 lightscreenBattlerId;
+ u8 mistTimer;
+ u8 mistBattlerId;
+ u8 safeguardTimer;
+ u8 safeguardBattlerId;
+ u8 followmeTimer;
+ u8 followmeTarget;
+ u8 spikesAmount;
};
struct WishFutureKnock
@@ -244,7 +229,7 @@ struct WishFutureKnock
u8 wishCounter[MAX_BATTLERS_COUNT];
u8 wishMonId[MAX_BATTLERS_COUNT];
u8 weatherDuration;
- u8 knockedOffPokes[2];
+ u8 knockedOffMons[2]; // Each battler is represented by a bit. The array entry is dependent on the battler's side.
};
struct AI_ThinkingStruct
@@ -317,7 +302,7 @@ struct BattleResults
u8 playerSwitchesCounter; // 0x2
u8 unk3; // 0x3
u8 unk4; // 0x4
- u8 unk5_0:1; // 0x5
+ u8 playerMonWasDamaged:1; // 0x5
u8 usedMasterBall:1; // 0x5
u8 caughtMonBall:4; // 0x5
u8 shinyWildMon:1; // 0x5
@@ -428,22 +413,14 @@ struct BattleStruct
u8 turnEffectsBattlerId;
u8 filler2;
u8 turnCountersTracker;
- u8 wrappedMove[8]; // ask gamefreak why they declared it that way
- u8 moveTarget[4];
+ u8 wrappedMove[MAX_BATTLERS_COUNT * 2]; // Leftover from Ruby's ewram access.
+ u8 moveTarget[MAX_BATTLERS_COUNT];
u8 expGetterMonId;
u8 field_11;
u8 wildVictorySong;
u8 dynamicMoveType;
- u8 wrappedBy[4];
- u16 assistPossibleMoves[5 * 4]; // 5 mons, each of them knowing 4 moves
- u8 field_40;
- u8 field_41;
- u8 field_42;
- u8 field_43;
- u8 field_44;
- u8 field_45;
- u8 field_46;
- u8 field_47;
+ u8 wrappedBy[MAX_BATTLERS_COUNT];
+ u16 assistPossibleMoves[PARTY_SIZE * 4]; // Each of mons can know max 4 moves.
u8 focusPunchBattlerId;
u8 battlerPreventingSwitchout;
u8 moneyMultiplier;
@@ -451,7 +428,6 @@ struct BattleStruct
u8 switchInAbilitiesCounter;
u8 faintedActionsState;
u8 faintedActionsBattlerId;
- u8 field_4F;
u16 expValue;
u8 field_52;
u8 sentInPokes;
@@ -460,7 +436,7 @@ struct BattleStruct
u8 monToSwitchIntoId[MAX_BATTLERS_COUNT];
u8 field_60[4][3];
u8 runTries;
- u8 caughtMonNick[11];
+ u8 caughtMonNick[POKEMON_NAME_LENGTH + 1];
u8 field_78;
u8 safariGoNearCounter;
u8 safariPkblThrowCounter;
@@ -487,15 +463,7 @@ struct BattleStruct
u8 wallyMovesState;
u8 wallyWaitFrames;
u8 wallyMoveFrames;
- u8 mirrorMoves[8]; // ask gamefreak why they declared it that way
- u8 field_A0;
- u8 field_A1;
- u8 field_A2;
- u8 field_A3;
- u8 field_A4;
- u8 field_A5;
- u8 field_A6;
- u8 field_A7;
+ u8 lastTakenMove[MAX_BATTLERS_COUNT * 2 * 2]; // Last move that a battler was hit with. This field seems to erroneously take 16 bytes instead of 8.
u16 hpOnSwitchout[2];
u32 savedBattleTypeFlags;
u8 abilityPreventingSwitchout;
@@ -504,7 +472,7 @@ struct BattleStruct
bool8 anyMonHasTransformed;
void (*savedCallback)(void);
u16 usedHeldItems[MAX_BATTLERS_COUNT];
- u8 chosenItem[4]; // why is this an u8?
+ u8 chosenItem[MAX_BATTLERS_COUNT]; // why is this an u8?
u8 AI_itemType[2];
u8 AI_itemFlags[2];
u16 choicedMove[MAX_BATTLERS_COUNT];
@@ -515,7 +483,7 @@ struct BattleStruct
u8 turnSideTracker;
u8 fillerDC[0xDF-0xDC];
u8 field_DF;
- u8 mirrorMoveArrays[32];
+ u8 lastTakenMoveFrom[MAX_BATTLERS_COUNT * MAX_BATTLERS_COUNT * 2]; // a 3-D array [target][attacker][byte]
u16 castformPalette[MAX_BATTLERS_COUNT][16];
u8 field_180;
u8 field_181;
diff --git a/include/battle_frontier_1.h b/include/battle_frontier_1.h
new file mode 100644
index 000000000..bc777914a
--- /dev/null
+++ b/include/battle_frontier_1.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_BATTLE_FRONTIER_1_H
+#define GUARD_BATTLE_FRONTIER_1_H
+
+bool32 sub_8196034(void);
+
+#endif // GUARD_BATTLE_FRONTIER_1_H
diff --git a/include/battle_frontier_2.h b/include/battle_frontier_2.h
index d032f9f74..573053f10 100644
--- a/include/battle_frontier_2.h
+++ b/include/battle_frontier_2.h
@@ -11,7 +11,6 @@ void sub_81A895C(void);
u16 sub_81A89A0(u8);
void sub_81A8AF8(void);
bool8 InBattlePike(void);
-void sub_819FA50(void);
void sub_81AA078(u16*, u8);
void sub_81A4C30(void);
bool8 sub_81A6BF4(void);
diff --git a/include/battle_pyramid_bag.h b/include/battle_pyramid_bag.h
index 5d5d8ccfa..2301b0aa0 100644
--- a/include/battle_pyramid_bag.h
+++ b/include/battle_pyramid_bag.h
@@ -11,7 +11,7 @@ struct PyramidBagResources
u8 windowIds[5];
u8 unk814;
u8 unk815;
- u8 scrollArrowSpriteId;
+ u8 scrollIndicatorsTaskId;
const u8 *menuActionIds;
u8 filler81C[0x820 - 0x81C];
u8 menuActionsCount;
diff --git a/include/blend_palette.h b/include/blend_palette.h
deleted file mode 100644
index a00847bc3..000000000
--- a/include/blend_palette.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef GUARD_BLEND_PALETTE_H
-#define GUARD_BLEND_PALETTE_H
-
-void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor);
-
-#endif // GUARD_BLEND_PALETTE_H
diff --git a/include/cable_club.h b/include/cable_club.h
index 8be376721..ebdc82b46 100644
--- a/include/cable_club.h
+++ b/include/cable_club.h
@@ -14,5 +14,6 @@ u8 sub_80B3050(void);
void sub_80B360C(void);
bool32 sub_80B2AF4(u16 *arg0, u16 *arg1);
void sub_80B3AF8(u8 taskId);
+void task00_08081A90(u8 taskId);
#endif //GUARD_CABLE_CLUB_H
diff --git a/include/constants/apprentice.h b/include/constants/apprentice.h
new file mode 100644
index 000000000..9db58bb8e
--- /dev/null
+++ b/include/constants/apprentice.h
@@ -0,0 +1,22 @@
+#ifndef GUARD_CONSTANTS_APPRENTICE_H
+#define GUARD_CONSTANTS_APPRENTICE_H
+
+#define APPRENTICE_ASK_WHICH_LEVEL 0
+#define APPRENTICE_ASK_3SPECIES 1
+#define APPRENTICE_ASK_2SPECIES 2
+#define APPRENTICE_ASK_MOVES 3
+#define APPRENTICE_ASK_GIVE 4
+#define APPRENTICE_ASK_YES_NO 6
+
+#define APPRENTICE_BUFF_SPECIES1 0
+#define APPRENTICE_BUFF_SPECIES2 1
+#define APPRENTICE_BUFF_SPECIES3 2
+#define APPRENTICE_BUFF_MOVE1 3
+#define APPRENTICE_BUFF_MOVE2 4
+#define APPRENTICE_BUFF_ITEM 5
+#define APPRENTICE_BUFF_NAME 6
+#define APPRENTICE_BUFF_EASY_CHAT 7
+#define APPRENTICE_BUFF_LEVEL 8
+#define APPRENTICE_BUFF_SPECIES4 9
+
+#endif // GUARD_CONSTANTS_APPRENTICE_H
diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h
index d04f0a1f9..4967c814d 100644
--- a/include/constants/event_objects.h
+++ b/include/constants/event_objects.h
@@ -6,36 +6,36 @@
#define EVENT_OBJ_GFX_BRENDAN_SURFING 2
#define EVENT_OBJ_GFX_BRENDAN_FIELD_MOVE 3
#define EVENT_OBJ_GFX_QUINTY_PLUMP 4
-#define EVENT_OBJ_GFX_LITTLE_BOY_1 5
-#define EVENT_OBJ_GFX_LITTLE_GIRL_1 6
+#define EVENT_OBJ_GFX_NINJA_BOY 5
+#define EVENT_OBJ_GFX_TWIN 6
#define EVENT_OBJ_GFX_BOY_1 7
#define EVENT_OBJ_GFX_GIRL_1 8
#define EVENT_OBJ_GFX_BOY_2 9
#define EVENT_OBJ_GFX_GIRL_2 10
-#define EVENT_OBJ_GFX_LITTLE_BOY_2 11
-#define EVENT_OBJ_GFX_LITTLE_GIRL_2 12
+#define EVENT_OBJ_GFX_LITTLE_BOY 11
+#define EVENT_OBJ_GFX_LITTLE_GIRL 12
#define EVENT_OBJ_GFX_BOY_3 13
#define EVENT_OBJ_GFX_GIRL_3 14
-#define EVENT_OBJ_GFX_BOY_4 15
+#define EVENT_OBJ_GFX_RICH_BOY 15
#define EVENT_OBJ_GFX_WOMAN_1 16
#define EVENT_OBJ_GFX_FAT_MAN 17
-#define EVENT_OBJ_GFX_WOMAN_2 18
+#define EVENT_OBJ_GFX_POKEFAN_F 18
#define EVENT_OBJ_GFX_MAN_1 19
-#define EVENT_OBJ_GFX_WOMAN_3 20
-#define EVENT_OBJ_GFX_OLD_MAN_1 21
-#define EVENT_OBJ_GFX_OLD_WOMAN_1 22
+#define EVENT_OBJ_GFX_WOMAN_2 20
+#define EVENT_OBJ_GFX_EXPERT_M 21
+#define EVENT_OBJ_GFX_EXPERT_F 22
#define EVENT_OBJ_GFX_MAN_2 23
-#define EVENT_OBJ_GFX_WOMAN_4 24
-#define EVENT_OBJ_GFX_MAN_3 25
-#define EVENT_OBJ_GFX_WOMAN_5 26
+#define EVENT_OBJ_GFX_WOMAN_3 24
+#define EVENT_OBJ_GFX_POKEFAN_M 25
+#define EVENT_OBJ_GFX_WOMAN_4 26
#define EVENT_OBJ_GFX_COOK 27
-#define EVENT_OBJ_GFX_WOMAN_6 28
-#define EVENT_OBJ_GFX_OLD_MAN_2 29
-#define EVENT_OBJ_GFX_OLD_WOMAN_2 30
+#define EVENT_OBJ_GFX_LINK_RECEPTIONIST 28
+#define EVENT_OBJ_GFX_OLD_MAN 29
+#define EVENT_OBJ_GFX_OLD_WOMAN 30
#define EVENT_OBJ_GFX_CAMPER 31
#define EVENT_OBJ_GFX_PICNICKER 32
-#define EVENT_OBJ_GFX_MAN_4 33
-#define EVENT_OBJ_GFX_WOMAN_7 34
+#define EVENT_OBJ_GFX_MAN_3 33
+#define EVENT_OBJ_GFX_WOMAN_5 34
#define EVENT_OBJ_GFX_YOUNGSTER 35
#define EVENT_OBJ_GFX_BUG_CATCHER 36
#define EVENT_OBJ_GFX_PSYCHIC_M 37
@@ -66,8 +66,8 @@
#define EVENT_OBJ_GFX_BERRY_TREE_LATE_STAGES 62
#define EVENT_OBJ_GFX_BRENDAN_ACRO_BIKE 63
#define EVENT_OBJ_GFX_PROF_BIRCH 64
-#define EVENT_OBJ_GFX_MAN_5 65
-#define EVENT_OBJ_GFX_MAN_6 66
+#define EVENT_OBJ_GFX_MAN_4 65
+#define EVENT_OBJ_GFX_MAN_5 66
#define EVENT_OBJ_GFX_REPORTER_M 67
#define EVENT_OBJ_GFX_REPORTER_F 68
#define EVENT_OBJ_GFX_BARD 69
@@ -96,8 +96,8 @@
#define EVENT_OBJ_GFX_MAY_SURFING 92
#define EVENT_OBJ_GFX_MAY_FIELD_MOVE 93
#define EVENT_OBJ_GFX_TRUCK 94
-#define EVENT_OBJ_GFX_VIGAROTH_CARRYING_BOX 95
-#define EVENT_OBJ_GFX_VIGAROTH_FACING_AWAY 96
+#define EVENT_OBJ_GFX_VIGOROTH_CARRYING_BOX 95
+#define EVENT_OBJ_GFX_VIGOROTH_FACING_AWAY 96
#define EVENT_OBJ_GFX_BIRCHS_BAG 97
#define EVENT_OBJ_GFX_ZIGZAGOON_1 98
#define EVENT_OBJ_GFX_ARTIST 99
@@ -117,7 +117,7 @@
#define EVENT_OBJ_GFX_MOVING_BOX 113
#define EVENT_OBJ_GFX_CABLE_CAR 114
#define EVENT_OBJ_GFX_SCIENTIST_2 115
-#define EVENT_OBJ_GFX_MAN_7 116
+#define EVENT_OBJ_GFX_DEVON_EMPLOYEE 116
#define EVENT_OBJ_GFX_AQUA_MEMBER_M 117
#define EVENT_OBJ_GFX_AQUA_MEMBER_F 118
#define EVENT_OBJ_GFX_MAGMA_MEMBER_M 119
@@ -190,7 +190,7 @@
#define EVENT_OBJ_GFX_BIG_REGISTEEL_DOLL 186
#define EVENT_OBJ_GFX_LATIAS 187
#define EVENT_OBJ_GFX_LATIOS 188
-#define EVENT_OBJ_GFX_BOY_5 189
+#define EVENT_OBJ_GFX_GAMEBOY_KID 189
#define EVENT_OBJ_GFX_CONTEST_JUDGE 190
#define EVENT_OBJ_GFX_BRENDAN_WATERING 191
#define EVENT_OBJ_GFX_MAY_WATERING 192
diff --git a/include/constants/flags.h b/include/constants/flags.h
index a74dffccf..ff403a299 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -501,7 +501,7 @@
#define FLAG_0x1F1 0x1F1
#define FLAG_0x1F2 0x1F2
#define FLAG_0x1F3 0x1F3
-#define FLAG_0x1F4 0x1F4
+#define FLAG_HIDDEN_ITEMS_START 0x1F4
#define FLAG_0x1F5 0x1F5
#define FLAG_0x1F6 0x1F6
#define FLAG_0x1F7 0x1F7
diff --git a/include/daycare.h b/include/daycare.h
index 7db44e024..ecd875865 100644
--- a/include/daycare.h
+++ b/include/daycare.h
@@ -15,7 +15,7 @@ void TriggerPendingDaycareEgg(void);
void RejectEggFromDayCare(void);
void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation);
void GiveEggFromDaycare(void);
-bool8 DoEggActions_CheckHatch(void);
+bool8 ShouldEggHatch(void);
u16 GetSelectedMonNickAndSpecies(void);
void GetDaycareMonNicknames(void);
u8 GetDaycareState(void);
diff --git a/include/event_object_movement.h b/include/event_object_movement.h
index d43dd78ea..ddccfe39b 100644
--- a/include/event_object_movement.h
+++ b/include/event_object_movement.h
@@ -80,6 +80,7 @@ struct LockedAnimEventObjects
};
extern const struct SpriteFrameImage gEventObjectPicTable_PechaBerryTree[];
+extern const u8 gReflectionEffectPaletteMap[];
void sub_808D438(void);
u8 GetMoveDirectionAnimNum(u8);
@@ -101,17 +102,17 @@ void sub_80930E0(s16 *, s16 *, s16, s16);
void EventObjectClearHeldMovement(struct EventObject *);
void EventObjectClearHeldMovementIfActive(struct EventObject *);
void TrySpawnEventObjects(s16, s16);
-u8 sprite_new(u8, u8, s16, s16, u8, u8);
-u8 AddPseudoEventObject(u16, void (*)(struct Sprite *), s16, s16, u8);
+u8 sprite_new(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction);
+u8 AddPseudoEventObject(u16, void (*)(struct Sprite *), s16 x, s16 y, u8 subpriority);
u8 show_sprite(u8, u8, u8);
-u8 SpawnSpecialEventObjectParameterized(u8, u8, u8, s16, s16, u8);
+u8 SpawnSpecialEventObjectParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 z);
u8 SpawnSpecialEventObject(struct EventObjectTemplate *);
void sub_8093038(s16, s16, s16 *, s16 *);
void CameraObjectReset1(void);
-void EventObjectSetGraphicsId(struct EventObject *, u8);
+void EventObjectSetGraphicsId(struct EventObject *, u8 graphicsId);
void EventObjectTurn(struct EventObject *, u8);
void EventObjectTurnByLocalIdAndMap(u8, u8, u8, u8);
-const struct EventObjectGraphicsInfo *GetEventObjectGraphicsInfo(u8);
+const struct EventObjectGraphicsInfo *GetEventObjectGraphicsInfo(u8 graphicsId);
void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
void FreeAndReserveObjectSpritePalettes(void);
void sub_808E82C(u8, u8, u8, s16, s16);
@@ -189,6 +190,10 @@ u8 GetMoveDirectionFasterAnimNum(u8);
u8 GetMoveDirectionFastestAnimNum(u8);
u8 GetLedgeJumpDirection(s16, s16, u8);
void CameraObjectSetFollowedObjectId(u8 objectId);
+u16 GetObjectPaletteTag(u8 palSlot);
+void UpdateEventObjectSpriteVisibility(struct Sprite *sprite, bool8 invisible);
+s16 sub_809773C(s16 a1);
+s16 sub_8097728(s16 a1);
void MovementType_None(struct Sprite *);
void MovementType_LookAround(struct Sprite *);
@@ -249,6 +254,7 @@ u8 GetSlideMovementAction(u32);
u8 GetJumpInPlaceMovementAction(u32);
u8 GetJumpMovementAction(u32);
u8 GetJump2MovementAction(u32);
+u8 CreateCopySpriteAt(struct Sprite *sprite, s16 x, s16 y, u8 subpriority);
u8 MovementType_WanderAround_Step0(struct EventObject *, struct Sprite *);
u8 MovementType_WanderAround_Step1(struct EventObject *, struct Sprite *);
diff --git a/include/event_scripts.h b/include/event_scripts.h
index 4f85156aa..5b8b74d8b 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -19,8 +19,8 @@ extern const u8 EventScript_TryDoDoubleTrainerBattle[];
extern const u8 EventScript_271362[];
extern const u8 EventScript_TryDoDoubleRematchBattle[];
extern const u8 EventScript_2713D1[];
-extern const u8 EventScript_2766A2[];
-extern const u8 EventScript_2766A6[];
+extern const u8 EventScript_SecretPower1[];
+extern const u8 EventScript_SecretPower2[];
extern const u8 gTVBravoTrainerText00[];
diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h
index 0ff1834ca..536f218a3 100644
--- a/include/field_control_avatar.h
+++ b/include/field_control_avatar.h
@@ -3,22 +3,22 @@
struct FieldInput
{
- u8 pressedAButton:1;
- u8 input_field_0_1:1;
- u8 pressedStartButton:1;
- u8 pressedSelectButton:1;
- u8 input_field_0_4:1;
- u8 input_field_0_5:1;
- u8 input_field_0_6:1;
- u8 pressedBButton:1;
- u8 input_field_1_0:1;
- u8 input_field_1_1:1;
- u8 input_field_1_2:1;
- u8 input_field_1_3:1;
- u8 input_field_1_4:1;
- u8 input_field_1_5:1;
- u8 input_field_1_6:1;
- u8 input_field_1_7:1;
+ bool8 pressedAButton:1;
+ bool8 checkStandardWildEncounter:1;
+ bool8 pressedStartButton:1;
+ bool8 pressedSelectButton:1;
+ bool8 input_field_0_4:1;
+ bool8 input_field_0_5:1;
+ bool8 tookStep:1;
+ bool8 pressedBButton:1;
+ bool8 input_field_1_0:1;
+ bool8 input_field_1_1:1;
+ bool8 input_field_1_2:1;
+ bool8 input_field_1_3:1;
+ bool8 input_field_1_4:1;
+ bool8 input_field_1_5:1;
+ bool8 input_field_1_6:1;
+ bool8 input_field_1_7:1;
u8 dpadDirection;
u8 input_field_3;
};
@@ -28,15 +28,15 @@ void FieldGetPlayerInput(struct FieldInput *pStruct, u16 keys, u16 heldKeys);
int sub_809C014(struct FieldInput *pStruct);
u8 *sub_80682A8(struct MapPosition *, u8, u8);
void overworld_poison_timer_set(void);
-void prev_quest_postbuffer_cursor_backup_reset(void);
+void RestartWildEncounterImmunitySteps(void);
u8 *sub_8068E24(struct MapPosition *);
-u8 *GetEventObjectScriptPointerPlayerFacing(void);
-bool8 mapheader_trigger_activate_at__run_now(struct MapPosition *);
+const u8 *GetEventObjectScriptPointerPlayerFacing(void);
bool8 sub_8068870(u16 a);
bool8 sub_8068894(void);
bool8 sub_8068A64(struct MapPosition *, u16);
u8 sub_8068F18(void);
bool8 dive_warp(struct MapPosition *position, u16 b);
-void sub_809D2BC(void);
+int SetCableClubWarp(void);
+u8 TrySetDiveWarp(void);
#endif // GUARD_FIELDCONTROLAVATAR_H
diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h
index 547f515eb..9c354159b 100644
--- a/include/field_effect_helpers.h
+++ b/include/field_effect_helpers.h
@@ -1,7 +1,3 @@
-//
-// Created by scott on 9/7/2017.
-//
-
#ifndef GUARD_FIELD_EFFECT_HELPERS_H
#define GUARD_FIELD_EFFECT_HELPERS_H
@@ -10,29 +6,29 @@
// Exported RAM declarations
// Exported ROM declarations
-u8 sub_8154228(void);
+u8 CreateWarpArrowSprite(void);
bool8 sub_8155DA0(struct EventObject *);
void sub_8155D78(struct EventObject *);
void sub_81555AC(u8, u8);
-void ash(s16, s16, u16, s16);
+void StartAshFieldEffect(s16, s16, u16, s16);
void SetUpReflection(struct EventObject*, struct Sprite*, u8);
u32 StartFieldEffectForEventObject(u8, struct EventObject*);
-u8 sub_81546C8(u8, u8, u8, s16, s16);
+u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
void sub_8155F80(struct Sprite*);
-void oamc_shadow(struct Sprite*);
-void unc_grass_normal(struct Sprite*);
+void UpdateShadowFieldEffect(struct Sprite*);
+void UpdateTallGrassFieldEffect(struct Sprite*);
void sub_81561D0(struct Sprite*);
-void sub_8155460(struct Sprite*);
-void sub_8155658(struct Sprite*);
+void UpdateAshFieldEffect(struct Sprite*);
+void UpdateSurfBlobFieldEffect(struct Sprite*);
void sub_8156194(struct Sprite*);
-void sub_8154C60(struct Sprite*);
-void sub_8154D90(struct Sprite*);
-void unc_grass_tall(struct Sprite*);
-void sub_81559BC(struct Sprite*);
-void sub_8155C88(struct Sprite*);
-void sub_8154A10(struct Sprite*);
-void sub_8155158(struct Sprite*);
-void sub_8155AEC(struct Sprite*);
-void sub_8155E50(struct Sprite*);
+void UpdateFootprintsTireTracksFieldEffect(struct Sprite*);
+void UpdateSplashFieldEffect(struct Sprite*);
+void UpdateLongGrassFieldEffect(struct Sprite*);
+void UpdateSandPileFieldEffect(struct Sprite*);
+void UpdateDisguiseFieldEffect(struct Sprite*);
+void UpdateShortGrassFieldEffect(struct Sprite*);
+void UpdateHotSpringsWaterFieldEffect(struct Sprite*);
+void UpdateBubblesFieldEffect(struct Sprite*);
+void UpdateSparkleFieldEffect(struct Sprite*);
#endif //GUARD_FIELD_EFFECT_HELPERS_H
diff --git a/include/field_message_box.h b/include/field_message_box.h
index 432c9078b..e3deee4d6 100644
--- a/include/field_message_box.h
+++ b/include/field_message_box.h
@@ -1,10 +1,20 @@
#ifndef GUARD_FIELD_MESSAGE_BOX_H
#define GUARD_FIELD_MESSAGE_BOX_H
+enum
+{
+ FIELD_MESSAGE_BOX_HIDDEN,
+ FIELD_MESSAGE_BOX_UNUSED,
+ FIELD_MESSAGE_BOX_NORMAL,
+ FIELD_MESSAGE_BOX_AUTO_SCROLL,
+};
+
bool8 ShowFieldMessage(const u8 *message);
bool8 sub_8098238(const u8 *message);
bool8 ShowFieldAutoScrollMessage(const u8 *message);
void HideFieldMessageBox(void);
bool8 IsFieldMessageBoxHidden(void);
+u8 GetFieldMessageBoxMode(void);
+void sub_8098374(void);
#endif // GUARD_FIELD_MESSAGE_BOX_H
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index b11b5e21a..ee2cbb3c8 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -44,6 +44,9 @@ u8 GetPlayerAvatarGraphicsIdByCurrentState(void);
void SetPlayerAvatarStateMask(u8 a);
u8 GetPlayerAvatarGraphicsIdByStateId(u8 a);
u8 GetJumpSpecialMovementAction(u32);
+bool8 PartyHasMonWithSurf(void);
+bool8 IsPlayerFacingSurfableFishableWater(void);
+bool8 IsPlayerSurfingNorth(void);
bool8 ForcedMovement_None(void);
bool8 ForcedMovement_Slip(void);
diff --git a/include/field_poison.h b/include/field_poison.h
index d1a4c823b..6a1ba17f2 100644
--- a/include/field_poison.h
+++ b/include/field_poison.h
@@ -14,6 +14,6 @@ enum {
};
void sub_80F972C(void);
-unsigned int overworld_poison(void);
+int DoPoisonFieldEffect(void);
#endif //GUARD_FIELD_POISON_H
diff --git a/include/field_screen.h b/include/field_screen.h
index bf1502405..021d2b9e9 100644
--- a/include/field_screen.h
+++ b/include/field_screen.h
@@ -16,5 +16,9 @@ void sub_80AC3E4(void);
void PreservePaletteInWeather(u8);
void sub_80AF128(void);
void sub_80AB104(u8);
+void sub_80AF80C(u8);
+void sub_80AF828(void);
+void sub_80AF838(void);
+void sub_80B0268(void);
#endif //GUARD_FIELD_SCREEN_H
diff --git a/include/field_specials.h b/include/field_specials.h
index c1f70a399..0e2daf9c3 100644
--- a/include/field_specials.h
+++ b/include/field_specials.h
@@ -5,5 +5,15 @@ u8 GetLeadMonIndex(void);
u8 sub_813B260(void);
u16 get_unknown_box_id(void);
bool8 InMultiBattleRoom(void);
+void sub_813BF10(void);
+void increment_var_x4026_on_birth_island_modulo_100(void);
+bool8 sub_813B3B0(void);
+bool8 ShouldDoBrailleRegicePuzzle(void);
+bool32 is_tile_that_overrides_player_control(void);
+bool32 sub_8138120(void);
+bool32 sub_8138168(void);
+bool32 sub_81381B0(void);
+bool32 sub_81381F8(void);
+bool32 CountSSTidalStep(u16 delta);
#endif // GUARD_FIELD_SPECIALS_H
diff --git a/include/field_weather.h b/include/field_weather.h
index 7ad8d21e7..a48361b8a 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -155,7 +155,7 @@ void sub_80AEDBC(void);
void SetSav1WeatherFromCurrMapHeader(void);
// ...
void DoCurrentWeather(void);
-void sub_8080750();
+void sub_8080750(void);
bool8 IsWeatherNotFadingIn(void);
bool8 IsWeatherChangeComplete(void);
diff --git a/include/fldeff_80F9BCC.h b/include/fldeff_80F9BCC.h
index ba775cd6d..87a20d290 100644
--- a/include/fldeff_80F9BCC.h
+++ b/include/fldeff_80F9BCC.h
@@ -12,6 +12,8 @@ void sub_80FA794(s16 x, s16 y);
void CreateRecordMixingSprite(void);
void DestroyRecordMixingSprite(void);
void overworld_poison_effect(void);
+void sub_80FA970(s16);
+void sub_80FA9D0(void);
bool8 sub_80FADE4(u16, u8);
#endif //GUARD_FLDEFF_80F9BCC_H
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index 4bec8e0c7..66d5b5e4c 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -63,17 +63,16 @@ struct EventObjectTemplate
struct WarpEvent
{
s16 x, y;
- s8 warpId;
- u8 mapGroup;
+ u8 elevation;
+ u8 warpId;
u8 mapNum;
- u8 unk7;
+ u8 mapGroup;
};
struct CoordEvent
{
s16 x, y;
- u8 unk4;
- u8 filler_5;
+ u8 elevation;
u16 trigger;
u16 index;
u8 filler_A[0x2];
@@ -83,16 +82,15 @@ struct CoordEvent
struct BgEvent
{
u16 x, y;
- u8 unk4;
+ u8 elevation;
u8 kind;
- // 0x2 padding for the union beginning.
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;
- // hidden item type probably
+ // hidden item type
struct {
- u8 filler6[0x2];
+ u16 item;
u16 hiddenItemId; // flag offset to determine flag lookup
} hiddenItem;
diff --git a/include/global.h b/include/global.h
index 9ae892b5c..027065481 100644
--- a/include/global.h
+++ b/include/global.h
@@ -61,8 +61,6 @@
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) >= (b) ? (a) : (b))
-#define HEAP_SIZE 0x1C000
-
extern u8 gStringVar1[];
extern u8 gStringVar2[];
extern u8 gStringVar3[];
@@ -178,12 +176,14 @@ enum
OPTIONS_BATTLE_STYLE_SET
};
-struct Coords8 {
+struct Coords8
+{
s8 x;
s8 y;
};
-struct UCoords8 {
+struct UCoords8
+{
u8 x;
u8 y;
};
@@ -295,11 +295,25 @@ struct UnknownSaveBlock2Struct
u8 field_EB;
}; // sizeof = 0xEC
-struct UnkRecordMixingStruct
+struct ApprenticeMon
{
- u8 field_0[0x34];
+ u16 species;
+ u16 moves[4];
+ u16 item;
+};
+
+struct Apprentice
+{
+ u8 id:5;
+ u8 lvlMode:2; // + 1
+ u8 field_1;
+ u8 number;
+ struct ApprenticeMon monData[3];
+ u16 easyChatWords[6];
u8 playerId[4];
- u8 field_38[10];
+ u8 playerName[PLAYER_NAME_LENGTH];
+ u8 language;
+ u32 unk40;
};
struct UnknownPokemonStruct
@@ -466,6 +480,28 @@ struct BattleFrontier
/*0xEFC*/ struct FrontierMonData field_EFC[3];
};
+struct Sav2_B8
+{
+ u8 unk0_0:2;
+ u8 unk0_1:2;
+ u8 unk0_2:2;
+ u8 unk0_3:2;
+ u16 unk2;
+};
+
+struct PlayersApprentice
+{
+ /*0xB0*/ u8 id;
+ /*0xB1*/ u8 activeLvlMode:2; // +1, 0 means not active
+ /*0xB1*/ u8 field_B1_1:4;
+ /*0xB1*/ u8 field_B1_2:2;
+ /*0xB2*/ u8 field_B2_0:3;
+ /*0xB2*/ u8 field_B2_1:2;
+ /*0xB3*/ u8 field_B3;
+ /*0xB4*/ u8 monIds[3];
+ /*0xB8*/ struct Sav2_B8 field_B8[9];
+};
+
struct SaveBlock2
{
/*0x00*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
@@ -489,14 +525,8 @@ struct SaveBlock2
/*0xA0*/ struct Time lastBerryTreeUpdate;
/*0xA8*/ u32 field_A8;
/*0xAC*/ u32 encryptionKey;
-
- // TODO: fix and verify labels
- /*0xB0*/ u8 field_B0;
- /*0xB1*/ u8 field_B1;
- /*0xB2*/ u8 field_B2_0:3;
- /*0xB2*/ u8 field_B2_1:2;
- /*0xB3*/ u8 field_B3[0x29];
- /*0xDC*/ struct UnkRecordMixingStruct field_DC[4];
+ /*0xB0*/ struct PlayersApprentice playerApprentice;
+ /*0xDC*/ struct Apprentice apprentices[4];
/*0x1EC*/ struct BerryCrush berryCrush;
/*0x1FC*/ struct PokemonJumpResults pokeJump;
/*0x20C*/ struct BerryPickingResults berryPick;
diff --git a/include/item_menu.h b/include/item_menu.h
index 8a474bc0f..b80d0628e 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -54,8 +54,10 @@ extern u16 gSpecialVar_ItemId;
void sub_81AAC14(void);
void sub_81AAC50(void);
void sub_81AAC70(void);
+void sub_81AAC28(void);
void bag_menu_mail_related(void);
void CB2_BagMenuFromStartMenu(void);
u8 sub_81ABB2C(u8 pocketId);
+bool8 UseRegisteredKeyItemOnField(void);
#endif //GUARD_item_menu_H
diff --git a/include/link.h b/include/link.h
index 9561728bd..f12f0990f 100644
--- a/include/link.h
+++ b/include/link.h
@@ -97,7 +97,8 @@ enum
EXCHANGE_IN_PROGRESS,
EXCHANGE_STAT_4,
EXCHANGE_STAT_5,
- EXCHANGE_STAT_6
+ EXCHANGE_STAT_6,
+ EXCHANGE_STAT_7
};
enum
@@ -258,6 +259,8 @@ void sub_800AF18(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, u8 un
void sub_800B348(void);
void sub_800B3A4(u32 who);
bool32 sub_800A07C(void);
+void sub_800AB98(void);
+void sub_800AA04(u8 a0);
extern u16 gLinkPartnersHeldKeys[6];
extern u32 gLinkDebugSeed;
@@ -292,6 +295,7 @@ extern u32 gFiller_0300315c;
extern u32 gFiller_03004138;
extern u32 gFiller_0300413C;
extern u32 gFiller_03003080;
+extern struct LinkPlayer gLocalLinkPlayer;
bool32 Link_AnyPartnersPlayingRubyOrSapphire(void);
bool32 sub_800A03C(void);
@@ -302,5 +306,10 @@ bool8 sub_800A4D8(u8 a0);
u8 sub_800A9D8(void);
u8 sub_800A0C8(s32, s32);
u16 *sub_801B058(void);
+u8 sub_800A9A8(void);
+void sub_800AD10(void);
+void sub_800AB18(void);
+void sub_8009F18(void);
+bool8 sub_800AA60(void);
#endif // GUARD_LINK_H
diff --git a/include/malloc.h b/include/malloc.h
index 6efa8fbef..c215f56c0 100644
--- a/include/malloc.h
+++ b/include/malloc.h
@@ -13,6 +13,7 @@
}
extern u8 gHeap[];
+
void *Alloc(u32 size);
void *AllocZeroed(u32 size);
void Free(void *pointer);
diff --git a/include/menu.h b/include/menu.h
index cddab0870..d105eb5ec 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -50,7 +50,7 @@ void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
void reset_temp_tile_data_buffers(void);
void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, u16 offset, u8 mode);
bool8 free_temp_tile_data_buffers_if_possible(void);
-struct WindowTemplate CreateWindowTemplate(u8, u8, u8, u8, u8, u8, u16);
+struct WindowTemplate CreateWindowTemplate(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock);
void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, int size, u16 offset, u8 mode);
s8 Menu_ProcessInputNoWrap_(void);
@@ -87,5 +87,6 @@ void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 left
void sub_8199C30(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette);
void sub_8199D3C(void *ptr, int delta, int width, int height, bool32 is8BPP);
void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyToVram);
+void sub_8197AE8(bool8 copyToVram);
#endif // GUARD_MENU_H
diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h
index edffc711f..8301a22f2 100644
--- a/include/metatile_behavior.h
+++ b/include/metatile_behavior.h
@@ -50,7 +50,7 @@ bool8 MetatileBehavior_IsSecretBaseCave(u8);
bool8 MetatileBehavior_IsSecretBaseTree(u8);
bool8 MetatileBehavior_IsSecretBaseShrub(u8);
bool8 MetatileBehavior_IsSecretBasePC(u8);
-bool8 MetatileBehavior_IsSecretBaseRegisterPC(u8);
+bool8 MetatileBehavior_IsRecordMixingSecretBasePC(u8);
bool8 MetatileBehavior_IsMB_B2(u8);
bool8 MetatileBehavior_IsBlockDecoration(u8);
bool8 MetatileBehavior_IsSecretBaseImpassable(u8);
@@ -67,7 +67,7 @@ bool8 MetatileBehavior_IsSecretBaseBreakableDoor(u8);
bool8 MetatileBehavior_IsSecretBaseSoundMat(u8);
bool8 MetatileBehavior_IsSecretBaseGlitterMat(u8);
bool8 MetatileBehavior_IsSecretBaseSandOrnament(u8);
-bool8 MetatileBehavior_IsSecretBaseTvOrShield(u8);
+bool8 MetatileBehavior_IsSecretBaseShieldOrToyTV(u8);
bool8 MetatileBehavior_IsPlayerRoomPCOn(u8);
bool8 MetatileBehavior_HasRipples(u8);
bool8 MetatileBehavior_IsPuddle(u8);
@@ -106,14 +106,14 @@ bool8 MetatileBehavior_IsPacifilogHorizontalLog2(u8);
bool8 MetatileBehavior_IsPacifidlogLog(u8);
bool8 MetatileBehavior_IsTrickHousePuzzleDoor(u8);
bool8 MetatileBehavior_IsRegionMap(u8);
-bool8 MetatileBehavior_IsClosedSootopolisGymDoor(u8);
+bool8 MetatileBehavior_IsClosedSootopolisDoor(u8);
bool8 MetatileBehavior_IsUnknownClosedDoor(u8);
bool8 MetatileBehavior_IsRoulette(u8);
bool8 MetatileBehavior_IsPokeblockFeeder(u8);
bool8 MetatileBehavior_IsSecretBaseJumpMat(u8);
bool8 MetatileBehavior_IsSecretBaseSpinMat(u8);
bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8);
-bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8);
+bool8 MetatileBehavior_IsLavaridge1FWarp(u8);
bool8 MetatileBehavior_IsAquaHideoutWarp(u8);
bool8 MetatileBehavior_IsWarpOrBridge(u8);
bool8 MetatileBehavior_IsMossdeepGymWarp(u8);
@@ -130,7 +130,7 @@ bool8 MetatileBehavior_IsHorizontalRail(u8);
bool8 MetatileBehavior_IsSeaweed(u8);
bool8 MetatileBehavior_IsRunningDisallowed(u8);
bool8 MetatileBehavior_IsCuttableGrass(u8);
-bool8 MetatileBehavior_IsRunningShoesInstruction(u8);
+bool8 MetatileBehavior_IsRunningShoesManual(u8);
bool8 MetatileBehavior_IsPictureBookShelf(u8);
bool8 MetatileBehavior_IsBookShelf(u8);
bool8 MetatileBehavior_IsPokeCenterBookShelf(u8);
diff --git a/include/overworld.h b/include/overworld.h
index f6856ab0c..3dce20ab2 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -25,6 +25,9 @@ extern u16 *gBGTilemapBuffers3;
extern void (*gFieldCallback)(void);
+extern u8 gUnknown_03005DB4;
+extern u8 gFieldLinkPlayerCount;
+
// Exported ROM declarations
extern const struct UCoords32 gDirectionToVectors[];
diff --git a/include/palette.h b/include/palette.h
index d14fa1fcd..c14e9f453 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -55,7 +55,7 @@ bool8 unref_sub_8073D3C(u32, u8, u8, u8, u16);
void unref_sub_8073D84(u8, u32 *);
void ResetPaletteStructByUid(u16);
void ResetPaletteStruct(u8);
-void ResetPaletteFadeControl();
+void ResetPaletteFadeControl(void);
void unref_sub_8074168(u16);
void unref_sub_8074194(u16);
void InvertPlttBuffer(u32);
diff --git a/include/party_menu.h b/include/party_menu.h
index a0a8bdbe6..0103099e4 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -55,8 +55,8 @@ void sub_81B1370(u8 taskId);
void display_pokemon_menu_message(u32 windowId);
void sub_81B1F18(u8 taskId, u8 pokemonIdx, s8 a, s16 hp, TaskFunc func);
void sub_81B1B5C(void *a, u8 b);
-u8 sub_81B1BD4();
-void sub_81B8448();
+u8 sub_81B1BD4(void);
+void sub_81B8448(void);
void sub_81B8518(u8 unused);
u8 sub_81B1360(void);
void sub_81B8904(u8 arg0, void (*callback)(void));
diff --git a/include/pokemon.h b/include/pokemon.h
index 9eddd8155..8259e7d34 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -94,6 +94,8 @@
#define MON_DATA_SPATK2 87
#define MON_DATA_SPDEF2 88
+#define MAX_LEVEL 100
+
#define OT_ID_RANDOM_NO_SHINY 2
#define OT_ID_PRESET 1
#define OT_ID_PLAYER_ID 0
@@ -110,10 +112,47 @@
#define MON_FEMALE 0xFE
#define MON_GENDERLESS 0xFF
+#define TYPE_NORMAL 0x00
+#define TYPE_FIGHTING 0x01
+#define TYPE_FLYING 0x02
+#define TYPE_POISON 0x03
+#define TYPE_GROUND 0x04
+#define TYPE_ROCK 0x05
+#define TYPE_BUG 0x06
+#define TYPE_GHOST 0x07
+#define TYPE_STEEL 0x08
+#define TYPE_MYSTERY 0x09
+#define TYPE_FIRE 0x0a
+#define TYPE_WATER 0x0b
+#define TYPE_GRASS 0x0c
+#define TYPE_ELECTRIC 0x0d
+#define TYPE_PSYCHIC 0x0e
+#define TYPE_ICE 0x0f
+#define TYPE_DRAGON 0x10
+#define TYPE_DARK 0x11
+
+#define FRIENDSHIP_EVENT_GROW_LEVEL 0x0
+#define FRIENDSHIP_EVENT_VITAMIN 0x1 // unused
+#define FRIENDSHIP_EVENT_BATTLE_ITEM 0x2 // unused
+#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 0x3
+#define FRIENDSHIP_EVENT_LEARN_TMHM 0x4
+#define FRIENDSHIP_EVENT_WALKING 0x5
+#define FRIENDSHIP_EVENT_FAINT_SMALL 0x6
+#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 0x7
+#define FRIENDSHIP_EVENT_FAINT_LARGE 0x8
+
+#define STATUS_PRIMARY_NONE 0x0
+#define STATUS_PRIMARY_POISON 0x1
+#define STATUS_PRIMARY_PARALYSIS 0x2
+#define STATUS_PRIMARY_SLEEP 0x3
+#define STATUS_PRIMARY_FREEZE 0x4
+#define STATUS_PRIMARY_BURN 0x5
+#define STATUS_PRIMARY_POKERUS 0x6
+#define STATUS_PRIMARY_FAINTED 0x7
+
#define MAX_TOTAL_EVS 510
#define NUM_STATS 6
#define UNOWN_FORM_COUNT 28
-#define MAX_MON_LEVEL 100
struct PokemonSubstruct0
{
@@ -240,32 +279,6 @@ struct PokemonStorage
/*0x83C2*/ u8 boxWallpapers[14];
};
-struct UnknownPokemonSubStruct2
-{
- u16 species;
- u16 moves[4];
- u16 item;
-};
-
-struct UnknownPokemonStruct2
-{
- u8 field_0_0 : 5;
- u8 field_0_1 : 2;
- u8 field_1;
- u8 field_2;
- u8 field_3;
- struct UnknownPokemonSubStruct2 mons[3];
- u8 field_28[23];
- u8 language;
-};
-
-struct UnknownPokemonStruct3
-{
- u8 field_0[48];
- u16 field_30;
- u8 field_32[38];
-};
-
struct Unknown_806F160_Struct
{
u8 field_0_0:4;
@@ -447,7 +460,7 @@ extern const u8 gFacilityClassToTrainerClass[];
extern const struct BaseStats gBaseStats[];
extern const u8 *const gItemEffectTable[];
extern const struct Evolution gEvolutionTable[][EVOS_PER_MON];
-extern const u32 gExperienceTables[][MAX_MON_LEVEL + 1];
+extern const u32 gExperienceTables[][MAX_LEVEL + 1];
extern const u16 *const gLevelUpLearnsets[];
extern const u8 gUnknown_08329D22[];
extern const u8 gUnknown_08329D26[];
@@ -472,7 +485,7 @@ void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u
void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 evSpread);
void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src);
void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lvl50);
-void sub_8068528(struct Pokemon *mon, const struct UnknownPokemonStruct2 *src, u8 monId);
+void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 monId);
void CreateMonWithEVSpreadPersonalityOTID(struct Pokemon *mon, u16 species, u8 level, u8 nature, u8 fixedIV, u8 evSpread, u32 otId);
void sub_80686FC(struct Pokemon *mon, struct UnknownPokemonStruct *dest);
void CreateObedientMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId);
diff --git a/include/pokenav.h b/include/pokenav.h
index b595e2be9..1fde8aa44 100644
--- a/include/pokenav.h
+++ b/include/pokenav.h
@@ -28,5 +28,13 @@ u16 sub_81D2C3C(void);
void sub_81D2C50(void);
u8 sub_81D28C8(const struct ListMenuItem *items, u16 numChoices);
void sub_81D2824(u16);
+bool32 InTrainerHill(void);
+bool8 EventObjectIsFarawayIslandMew(struct EventObject *);
+u32 sub_81D427C(void);
+void sub_81D4998(void);
+u8 GetCurrentTrainerHillMapId(void);
+u8 sub_81D6490(void);
+const struct WarpEvent *sub_81D6120(void);
+const struct WarpEvent *sub_81D6134(u8);
#endif //GUARD_POKENAV_H
diff --git a/include/rom6.h b/include/rom6.h
index 96c3b3ca2..8b133e56e 100644
--- a/include/rom6.h
+++ b/include/rom6.h
@@ -12,7 +12,7 @@ void UpdateFrontierManiac(u16 days);
void UpdateFrontierGambler(u16 days);
void SetShoalItemFlag(u16 days);
-bool8 CheckObjectGraphicsInFrontOfPlayer(u8);
+bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId);
u8 oei_task_add(void);
#endif //GUARD_ROM6_H
diff --git a/include/rom_8011DC0.h b/include/rom_8011DC0.h
index f71e5d97d..b6ca0e248 100644
--- a/include/rom_8011DC0.h
+++ b/include/rom_8011DC0.h
@@ -9,5 +9,7 @@
void sub_8018438(void);
u16 mevent_081445C0(u8);
+void sub_801B990(u32, u32);
+u8 sub_8013F78(void);
#endif //GUARD_rom_8011DC0_H
diff --git a/include/rom_81BE66C.h b/include/rom_81BE66C.h
deleted file mode 100644
index 900daf4e7..000000000
--- a/include/rom_81BE66C.h
+++ /dev/null
@@ -1,12 +0,0 @@
-//
-// Created by Scott Norton on 9/6/17.
-//
-
-#ifndef GUARD_ROM_81BE66C_H
-#define GUARD_ROM_81BE66C_H
-
-bool32 InTrainerHill(void);
-bool8 EventObjectIsFarawayIslandMew(struct EventObject *);
-u32 sub_81D427C(void);
-
-#endif //GUARD_ROM_81BE66C_H
diff --git a/include/rotating_gate.h b/include/rotating_gate.h
index 2ae26aa5b..fd86a6b04 100644
--- a/include/rotating_gate.h
+++ b/include/rotating_gate.h
@@ -2,7 +2,7 @@
#define GUARD_ROTATING_GATE_H
void RotatingGatePuzzleCameraUpdate(s16, s16);
-void RotatingGate_InitPuzzleAndGraphics();
+void RotatingGate_InitPuzzleAndGraphics(void);
u32 CheckForRotatingGatePuzzleCollision(u8, s16, s16);
bool32 CheckForRotatingGatePuzzleCollisionWithoutAnimation(u8, s16, s16);
diff --git a/include/script.h b/include/script.h
index 2b5f8c2ce..755ff19a3 100644
--- a/include/script.h
+++ b/include/script.h
@@ -55,8 +55,8 @@ bool8 mapheader_run_first_tag2_script_list_match(void);
void mapheader_run_first_tag4_script_list_match(void);
u32 CalculateRamScriptChecksum(void);
void ClearRamScript(void);
-bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId);
-u8 *GetRamScript(u8 objectId, u8 *script);
+bool8 InitRamScript(const u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId);
+const u8 *GetRamScript(u8 objectId, const u8 *script);
bool32 sub_80991F8(void);
u8 *sub_8099244(void);
void sub_80992A0(u8 *script, u16 scriptSize);
diff --git a/include/script_menu.h b/include/script_menu.h
index c50bef00f..8870e80b9 100644
--- a/include/script_menu.h
+++ b/include/script_menu.h
@@ -13,5 +13,6 @@ s32 convert_pixel_width_to_tile_width(s32);
u8 CreateWindowFromRect(u8, u8, u8, u8);
void sub_80E2A78(u8);
u32 display_text_and_get_width(const u8*, u32);
+u8 sub_80E2D5C(u8 arg0, u8 tileWidth);
#endif //GUARD_SCRIPT_MENU_H
diff --git a/include/script_pokemon_util_80F87D8.h b/include/script_pokemon_util_80F87D8.h
index 555b3428b..68aec7eb6 100644
--- a/include/script_pokemon_util_80F87D8.h
+++ b/include/script_pokemon_util_80F87D8.h
@@ -3,5 +3,6 @@
#define GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H
u16 sub_80F903C(void);
+void ReducePlayerPartyToThree(void);
#endif // GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H
diff --git a/include/secret_base.h b/include/secret_base.h
index c20533698..4fa0d0c4a 100644
--- a/include/secret_base.h
+++ b/include/secret_base.h
@@ -16,5 +16,11 @@ void sub_80E8EE0(struct MapEvents const *events);
void sub_80E9238(u8 flagIn);
bool8 CurrentMapIsSecretBase(void);
void sub_80EA3E4(u8 taskId);
+bool8 sub_80E9680(void);
+void sub_80EB498(void);
+void sub_80EB56C(void);
+void sub_80EB9E0(void);
+void sub_80EBB28(void);
+void sub_80E9668(const struct MapPosition *position, const struct MapEvents *events);
#endif //GUARD_SECRET_BASE_H
diff --git a/include/shop.h b/include/shop.h
index 9b14a672e..067b8fee4 100644
--- a/include/shop.h
+++ b/include/shop.h
@@ -3,6 +3,42 @@
extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3];
+enum
+{
+ MART_TYPE_0, // normal mart
+ MART_TYPE_1,
+ MART_TYPE_2,
+};
+
+struct MartInfo
+{
+ /*0x0*/ void (* callback) (void);
+ /*0x4*/ const struct MenuAction *menuActions;
+ /*0x8*/ const u16 *itemList;
+ /*0xC*/ u16 itemCount;
+ /*0xE*/ u8 windowId;
+ /*0xF*/ u8 martType;
+};
+
+struct BuyMenuLabel
+{
+ u8 label[16];
+};
+
+struct ShopData
+{
+ /*0x0000*/ u8 tilemapBuffers[4][0x800];
+ /*0x2000*/ u8 filler2000[0x4];
+ /*0x2004*/ u16 unk2004;
+ /*0x2006*/ u8 filler2006[0x2];
+ /*0x2008*/ u16 unk2008;
+ /*0x200A*/ u8 filler200A;
+ /*0x200B*/ u8 scrollIndicatorsTaskId;
+ /*0x200C*/ u8 unk200C;
+ /*0x200D*/ u8 unk200D[2];
+ /*0x200F*/ u8 filler200F[0xA1];
+};
+
void CreatePokemartMenu(const u16 *);
void CreateDecorationShop1Menu(const u16 *);
void CreateDecorationShop2Menu(const u16 *);
diff --git a/include/string_util.h b/include/string_util.h
index f26646082..7b685fcea 100644
--- a/include/string_util.h
+++ b/include/string_util.h
@@ -24,7 +24,7 @@ u8 *ConvertUIntToDecimalStringN(u8 *dest, u32 value, enum StringConvertMode mode
u8 *ConvertIntToHexStringN(u8 *dest, s32 value, enum StringConvertMode mode, u8 n);
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/strings.h b/include/strings.h
index e72360563..4ea33635b 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -151,8 +151,6 @@ extern const u8 gMenuText_Confirm[];
extern const u8 gMenuText_Show[];
extern const u8 gMenuText_Give2[];
-extern const u8 gText_Cancel2[];
-
extern const u8 gText_WithdrawPokemon[];
extern const u8 gText_WithdrawMonDescription[];
extern const u8 gText_DepositPokemon[];
@@ -843,4 +841,19 @@ extern const u8 gText_TwoDashes[];
extern const u8 *const gReturnToXStringsTable2[];
+extern const u8 gText_XPLink[];
+extern const u8 gText_ConfirmLinkWhenPlayersReady[];
+extern const u8 gText_ConfirmStartLinkWithXPlayers[];
+extern const u8 gText_AwaitingLinkup[];
+extern const u8 gText_PleaseWaitForLink[];
+extern const u8 gText_BronzeCard[];
+extern const u8 gText_CopperCard[];
+extern const u8 gText_SilverCard[];
+extern const u8 gText_GoldCard[];
+
+extern const u8 gText_CanIHelpWithAnythingElse[];
+extern const u8 gText_AnythingElseICanHelp[];
+extern const u8 gText_QuitShopping[];
+extern const u8 gText_PokedollarVar1[];
+
#endif //GUARD_STRINGS_H
diff --git a/include/text.h b/include/text.h
index e2120efa3..f677f2ced 100644
--- a/include/text.h
+++ b/include/text.h
@@ -76,6 +76,7 @@
#define CHAR_y 0xED
#define CHAR_z 0xEE
#define CHAR_SPECIAL_F7 0xF7
+#define CHAR_SPECIAL_F8 0xF8
#define CHAR_SPECIAL_F9 0xF9
#define CHAR_COLON 0xF0
#define CHAR_PROMPT_SCROLL 0xFA // waits for button press and scrolls dialog
diff --git a/include/trainer_card.h b/include/trainer_card.h
index af603444f..d80a5fa52 100644
--- a/include/trainer_card.h
+++ b/include/trainer_card.h
@@ -27,13 +27,16 @@ struct TrainerCard
/*0x24*/ u32 money;
/*0x28*/ u16 var_28[4];
/*0x30*/ u8 playerName[8];
- /*0x38*/ u8 emeraldAddedUnknownFields[0x64-0x38];
+ /*0x38*/ u8 emeraldAddedUnknownFields[0x54-0x38];
+ /*0x54*/ u16 monSpecies[2];
+ /*0x58*/ u8 emeraldAddedUnknownFields2[0x64-0x58];
};
extern struct TrainerCard gTrainerCards[4];
void sub_80C3120(struct TrainerCard *arg0, u16 *arg1, u8 gameVersion);
-void sub_80C4E74(u8 arg0, void (*callback)(void));
-void sub_80C30A4(u16 *arg0);
+void TrainerCard_ShowLinkCard(u8 arg0, void (*callback)(void));
+void TrainerCard_GenerateCardForPlayer(struct TrainerCard *);
+u8 sub_80C4904(u8);
#endif // GUARD_TRAINER_CARD_H
diff --git a/include/tv.h b/include/tv.h
index 7a938f888..4f1d7730f 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -50,5 +50,6 @@ void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, u16 move, u16 speciesPlaye
void BravoTrainerPokemonProfile_BeforeInterview1(u16 move);
void UpdateTVScreensOnMap(int, int);
void TV_PrintIntToStringVar(u8 varIdx, int value);
+void SaveRecordedItemPurchasesForTVShow(void);
#endif //GUARD_TV_H
diff --git a/include/util.h b/include/util.h
index 63887b13f..997c8f713 100644
--- a/include/util.h
+++ b/include/util.h
@@ -13,5 +13,6 @@ int CountTrailingZeroBits(u32 value);
u16 CalcCRC16(u8 *data, s32 length);
u16 CalcCRC16WithTable(u8 *data, u32 length);
u32 CalcByteArraySum(const u8* data, u32 length);
+void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor);
#endif // GUARD_UTIL_H
diff --git a/ld_script.txt b/ld_script.txt
index 9dc6efaa6..407df435a 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -76,7 +76,6 @@ SECTIONS {
src/trig.o(.text);
src/random.o(.text);
src/util.o(.text);
- src/blend_palette.o(.text);
src/daycare.o(.text);
src/egg_hatch.o(.text);
src/battle_interface.o(.text);
@@ -100,7 +99,7 @@ SECTIONS {
src/text_window.o(.text);
src/script.o(.text);
src/scrcmd.o(.text);
- asm/field_control_avatar.o(.text);
+ src/field_control_avatar.o(.text);
src/event_data.o(.text);
src/coord_event_weather.o(.text);
src/field_tasks.o(.text);
@@ -118,7 +117,7 @@ SECTIONS {
src/title_screen.o(.text);
asm/field_screen.o(.text);
src/battle_setup.o(.text);
- asm/cable_club.o(.text);
+ src/cable_club.o(.text);
src/trainer_see.o(.text);
src/wild_encounter.o(.text);
src/field_effect.o(.text);
@@ -138,6 +137,7 @@ SECTIONS {
src/item.o(.text);
src/contest.o(.text);
asm/contest.o(.text);
+ src/shop.o(.text);
asm/shop.o(.text);
src/berry.o(.text);
asm/script_menu.o(.text);
@@ -201,7 +201,7 @@ SECTIONS {
src/rom_81520A8.o(.text);
src/save.o(.text);
src/mystery_event_script.o(.text);
- asm/field_effect_helpers.o(.text);
+ src/field_effect_helpers.o(.text);
src/contest_ai.o(.text);
src/battle_anim_sound_tasks.o(.text);
src/battle_controller_safari.o(.text);
@@ -247,6 +247,7 @@ SECTIONS {
asm/battle_frontier_1.o(.text);
src/menu.o(.text);
src/battle_factory.o(.text);
+ src/apprentice.o(.text);
asm/battle_frontier_2.o(.text);
src/item_menu.o(.text);
src/list_menu.o(.text);
@@ -428,7 +429,7 @@ SECTIONS {
src/title_screen.o(.rodata);
data/field_screen.o(.rodata);
src/battle_setup.o(.rodata);
- data/cable_club.o(.rodata);
+ src/cable_club.o(.rodata);
src/trainer_see.o(.rodata);
src/wild_encounter.o(.rodata);
src/field_effect.o(.rodata);
@@ -492,6 +493,7 @@ SECTIONS {
src/battle_message.o(.rodata);
data/cable_car.o(.rodata);
src/save.o(.rodata);
+ src/field_effect_helpers.o(.rodata);
data/field_effect_helpers.o(.rodata);
src/contest_ai.o(.rodata);
src/battle_controller_safari.o(.rodata);
@@ -530,6 +532,7 @@ SECTIONS {
data/battle_frontier_1.o(.rodata);
src/menu.o(.rodata);
src/battle_factory.o(.rodata);
+ src/apprentice.o(.rodata);
data/battle_frontier_2.o(.rodata);
src/item_menu.o(.rodata);
src/list_menu.o(.rodata);
@@ -566,65 +569,65 @@ SECTIONS {
ALIGN(4)
{
sound/songs/midi/mus_dummy.o(.rodata);
- sound/songs/se_kaifuku.o(.rodata);
+ sound/songs/midi/se_kaifuku.o(.rodata);
sound/songs/se_pc_login.o(.rodata);
sound/songs/se_pc_off.o(.rodata);
sound/songs/se_pc_on.o(.rodata);
sound/songs/se_select.o(.rodata);
sound/songs/se_win_open.o(.rodata);
sound/songs/se_wall_hit.o(.rodata);
- sound/songs/se_door.o(.rodata);
- sound/songs/se_kaidan.o(.rodata);
- sound/songs/se_dansa.o(.rodata);
- sound/songs/se_jitensya.o(.rodata);
- sound/songs/se_kouka_l.o(.rodata);
- sound/songs/se_kouka_m.o(.rodata);
- sound/songs/se_kouka_h.o(.rodata);
- sound/songs/se_bowa2.o(.rodata);
+ sound/songs/midi/se_door.o(.rodata);
+ sound/songs/midi/se_kaidan.o(.rodata);
+ sound/songs/midi/se_dansa.o(.rodata);
+ sound/songs/midi/se_jitensya.o(.rodata);
+ sound/songs/midi/se_kouka_l.o(.rodata);
+ sound/songs/midi/se_kouka_m.o(.rodata);
+ sound/songs/midi/se_kouka_h.o(.rodata);
+ sound/songs/midi/se_bowa2.o(.rodata);
sound/songs/se_poke_dead.o(.rodata);
sound/songs/se_nigeru.o(.rodata);
- sound/songs/se_jido_doa.o(.rodata);
+ sound/songs/midi/se_jido_doa.o(.rodata);
sound/songs/se_naminori.o(.rodata);
- sound/songs/se_ban.o(.rodata);
+ sound/songs/midi/se_ban.o(.rodata);
sound/songs/se_pin.o(.rodata);
- sound/songs/se_boo.o(.rodata);
- sound/songs/se_bowa.o(.rodata);
- sound/songs/se_jyuni.o(.rodata);
- sound/songs/se_a.o(.rodata);
- sound/songs/se_i.o(.rodata);
+ sound/songs/midi/se_boo.o(.rodata);
+ sound/songs/midi/se_bowa.o(.rodata);
+ sound/songs/midi/se_jyuni.o(.rodata);
+ sound/songs/midi/se_a.o(.rodata);
+ sound/songs/midi/se_i.o(.rodata);
sound/songs/se_u.o(.rodata);
- sound/songs/se_e.o(.rodata);
+ sound/songs/midi/se_e.o(.rodata);
sound/songs/se_o.o(.rodata);
sound/songs/se_n.o(.rodata);
sound/songs/se_seikai.o(.rodata);
- sound/songs/se_hazure.o(.rodata);
- sound/songs/se_exp.o(.rodata);
- sound/songs/se_jite_pyoko.o(.rodata);
+ sound/songs/midi/se_hazure.o(.rodata);
+ sound/songs/midi/se_exp.o(.rodata);
+ sound/songs/midi/se_jite_pyoko.o(.rodata);
sound/songs/se_mu_pachi.o(.rodata);
sound/songs/se_tk_kasya.o(.rodata);
- sound/songs/se_fu_zaku.o(.rodata);
- sound/songs/se_fu_zaku2.o(.rodata);
- sound/songs/se_fu_zuzuzu.o(.rodata);
+ sound/songs/midi/se_fu_zaku.o(.rodata);
+ sound/songs/midi/se_fu_zaku2.o(.rodata);
+ sound/songs/midi/se_fu_zuzuzu.o(.rodata);
sound/songs/se_ru_gashin.o(.rodata);
sound/songs/se_ru_gasyan.o(.rodata);
sound/songs/se_ru_bari.o(.rodata);
sound/songs/se_ru_hyuu.o(.rodata);
- sound/songs/se_ki_gasyan.o(.rodata);
+ sound/songs/midi/se_ki_gasyan.o(.rodata);
sound/songs/se_tk_warpin.o(.rodata);
sound/songs/se_tk_warpout.o(.rodata);
sound/songs/se_tu_saa.o(.rodata);
- sound/songs/se_hi_turun.o(.rodata);
+ sound/songs/midi/se_hi_turun.o(.rodata);
sound/songs/se_track_move.o(.rodata);
sound/songs/se_track_stop.o(.rodata);
sound/songs/se_track_haiki.o(.rodata);
sound/songs/se_track_door.o(.rodata);
sound/songs/se_moter.o(.rodata);
- sound/songs/se_card.o(.rodata);
+ sound/songs/midi/se_card.o(.rodata);
sound/songs/se_save.o(.rodata);
- sound/songs/se_kon.o(.rodata);
- sound/songs/se_kon2.o(.rodata);
- sound/songs/se_kon3.o(.rodata);
- sound/songs/se_kon4.o(.rodata);
+ sound/songs/midi/se_kon.o(.rodata);
+ sound/songs/midi/se_kon2.o(.rodata);
+ sound/songs/midi/se_kon3.o(.rodata);
+ sound/songs/midi/se_kon4.o(.rodata);
sound/songs/se_suikomu.o(.rodata);
sound/songs/se_nageru.o(.rodata);
sound/songs/se_toy_c.o(.rodata);
@@ -636,16 +639,16 @@ SECTIONS {
sound/songs/se_toy_b.o(.rodata);
sound/songs/se_toy_c1.o(.rodata);
sound/songs/se_mizu.o(.rodata);
- sound/songs/se_hashi.o(.rodata);
- sound/songs/se_daugi.o(.rodata);
+ sound/songs/midi/se_hashi.o(.rodata);
+ sound/songs/midi/se_daugi.o(.rodata);
sound/songs/se_pinpon.o(.rodata);
- sound/songs/se_fuusen1.o(.rodata);
- sound/songs/se_fuusen2.o(.rodata);
- sound/songs/se_fuusen3.o(.rodata);
+ sound/songs/midi/se_fuusen1.o(.rodata);
+ sound/songs/midi/se_fuusen2.o(.rodata);
+ sound/songs/midi/se_fuusen3.o(.rodata);
sound/songs/se_toy_kabe.o(.rodata);
sound/songs/se_toy_dango.o(.rodata);
- sound/songs/se_doku.o(.rodata);
- sound/songs/se_esuka.o(.rodata);
+ sound/songs/midi/se_doku.o(.rodata);
+ sound/songs/midi/se_esuka.o(.rodata);
sound/songs/se_t_ame.o(.rodata);
sound/songs/se_t_ame_e.o(.rodata);
sound/songs/se_t_ooame.o(.rodata);
@@ -654,24 +657,24 @@ SECTIONS {
sound/songs/se_t_koame_e.o(.rodata);
sound/songs/se_t_kami.o(.rodata);
sound/songs/se_t_kami2.o(.rodata);
- sound/songs/se_elebeta.o(.rodata);
- sound/songs/se_hinsi.o(.rodata);
- sound/songs/se_expmax.o(.rodata);
+ sound/songs/midi/se_elebeta.o(.rodata);
+ sound/songs/midi/se_hinsi.o(.rodata);
+ sound/songs/midi/se_expmax.o(.rodata);
sound/songs/se_tamakoro.o(.rodata);
sound/songs/se_tamakoro_e.o(.rodata);
- sound/songs/se_basabasa.o(.rodata);
+ sound/songs/midi/se_basabasa.o(.rodata);
sound/songs/se_regi.o(.rodata);
- sound/songs/se_c_gaji.o(.rodata);
- sound/songs/se_c_maku_u.o(.rodata);
- sound/songs/se_c_maku_d.o(.rodata);
- sound/songs/se_c_pasi.o(.rodata);
- sound/songs/se_c_syu.o(.rodata);
- sound/songs/se_c_pikon.o(.rodata);
+ sound/songs/midi/se_c_gaji.o(.rodata);
+ sound/songs/midi/se_c_maku_u.o(.rodata);
+ sound/songs/midi/se_c_maku_d.o(.rodata);
+ sound/songs/midi/se_c_pasi.o(.rodata);
+ sound/songs/midi/se_c_syu.o(.rodata);
+ sound/songs/midi/se_c_pikon.o(.rodata);
sound/songs/se_reapoke.o(.rodata);
sound/songs/se_op_basyu.o(.rodata);
- sound/songs/se_bt_start.o(.rodata);
- sound/songs/se_dendou.o(.rodata);
- sound/songs/se_jihanki.o(.rodata);
+ sound/songs/midi/se_bt_start.o(.rodata);
+ sound/songs/midi/se_dendou.o(.rodata);
+ sound/songs/midi/se_jihanki.o(.rodata);
sound/songs/se_tama.o(.rodata);
sound/songs/se_z_scroll.o(.rodata);
sound/songs/se_z_page.o(.rodata);
@@ -682,7 +685,7 @@ SECTIONS {
sound/songs/se_tb_start.o(.rodata);
sound/songs/se_tb_kon.o(.rodata);
sound/songs/se_tb_kara.o(.rodata);
- sound/songs/se_bidoro.o(.rodata);
+ sound/songs/midi/se_bidoro.o(.rodata);
sound/songs/se_w085.o(.rodata);
sound/songs/se_w085b.o(.rodata);
sound/songs/se_w231.o(.rodata);
@@ -830,10 +833,10 @@ SECTIONS {
sound/songs/se_rg_nawamiss.o(.rodata);
sound/songs/se_toreeye.o(.rodata);
sound/songs/se_toreoff.o(.rodata);
- sound/songs/se_hantei1.o(.rodata);
- sound/songs/se_hantei2.o(.rodata);
- sound/songs/se_curtain.o(.rodata);
- sound/songs/se_curtain1.o(.rodata);
+ sound/songs/midi/se_hantei1.o(.rodata);
+ sound/songs/midi/se_hantei2.o(.rodata);
+ sound/songs/midi/se_curtain.o(.rodata);
+ sound/songs/midi/se_curtain1.o(.rodata);
sound/songs/se_ussoki.o(.rodata);
sound/songs/midi/mus_tetsuji.o(.rodata);
sound/songs/midi/mus_field13.o(.rodata);
diff --git a/songs.mk b/songs.mk
index fb0d6b504..dd65ffce7 100644
--- a/songs.mk
+++ b/songs.mk
@@ -786,5 +786,170 @@ $(MID_SUBDIR)/ph_trap_held.s: %.s: %.mid
$(MID_SUBDIR)/ph_trap_solo.s: %.s: %.mid
$(MID) $< $@ -E -G130 -P4
+$(MID_SUBDIR)/se_a.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P4
+
+$(MID_SUBDIR)/se_ban.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4
+
+$(MID_SUBDIR)/se_basabasa.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P5
+
+$(MID_SUBDIR)/se_bidoro.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P5
+
+$(MID_SUBDIR)/se_boo.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P4
+
+$(MID_SUBDIR)/se_bowa.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V070 -P4
+
+$(MID_SUBDIR)/se_bowa2.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5
+
+$(MID_SUBDIR)/se_bt_start.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P5
+
+$(MID_SUBDIR)/se_c_gaji.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P5
+
+$(MID_SUBDIR)/se_c_maku_d.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V070 -P5
+
+$(MID_SUBDIR)/se_c_maku_u.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V070 -P5
+
+$(MID_SUBDIR)/se_c_pasi.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P5
+
+$(MID_SUBDIR)/se_c_pikon.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P5
+
+$(MID_SUBDIR)/se_c_syu.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P5
+
+$(MID_SUBDIR)/se_card.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P4
+
+$(MID_SUBDIR)/se_curtain.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5
+
+$(MID_SUBDIR)/se_curtain1.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5
+
+$(MID_SUBDIR)/se_dansa.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P4
+
+$(MID_SUBDIR)/se_daugi.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P5
+
+$(MID_SUBDIR)/se_dendou.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P5
+
+$(MID_SUBDIR)/se_doku.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5
+
+$(MID_SUBDIR)/se_door.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V080 -P5
+
+$(MID_SUBDIR)/se_e.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4
+
+$(MID_SUBDIR)/se_elebeta.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4
+
+$(MID_SUBDIR)/se_esuka.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4
+
+$(MID_SUBDIR)/se_exp.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V080 -P5
+
+$(MID_SUBDIR)/se_expmax.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V094 -P5
+
+$(MID_SUBDIR)/se_fu_zaku.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V120 -P4
+
+$(MID_SUBDIR)/se_fu_zaku2.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P4
+
+$(MID_SUBDIR)/se_fu_zuzuzu.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -P4
+
+$(MID_SUBDIR)/se_fuusen1.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4
+
+$(MID_SUBDIR)/se_fuusen2.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4
+
+$(MID_SUBDIR)/se_fuusen3.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4
+
+$(MID_SUBDIR)/se_hantei1.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5
+
+$(MID_SUBDIR)/se_hantei2.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5
+
+$(MID_SUBDIR)/se_hashi.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P4
+
+$(MID_SUBDIR)/se_hazure.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V120 -P4
+
+$(MID_SUBDIR)/se_hi_turun.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4
+
+$(MID_SUBDIR)/se_hinsi.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P3
+
+$(MID_SUBDIR)/se_i.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4
+
+$(MID_SUBDIR)/se_jido_doa.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P4
+
+$(MID_SUBDIR)/se_jihanki.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4
+
+$(MID_SUBDIR)/se_jite_pyoko.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P4
+
+$(MID_SUBDIR)/se_jitensya.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4
+
+$(MID_SUBDIR)/se_jyuni.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P4
+
+$(MID_SUBDIR)/se_kaidan.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V120 -P5
+
+$(MID_SUBDIR)/se_kaifuku.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5
+
+$(MID_SUBDIR)/se_ki_gasyan.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4
+
+$(MID_SUBDIR)/se_kon.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4
+
+$(MID_SUBDIR)/se_kon2.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4
+
+$(MID_SUBDIR)/se_kon3.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4
+
+$(MID_SUBDIR)/se_kon4.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4
+
+$(MID_SUBDIR)/se_kouka_h.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5
+
+$(MID_SUBDIR)/se_kouka_l.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5
+
+$(MID_SUBDIR)/se_kouka_m.s: %.s: %.mid
+ $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5
+
$(MID_SUBDIR)/se_z_search.s: %.s: %.mid
$(MID) $< $@ -E -R$(STD_REVERB) -G127 -P5
diff --git a/sound/song_table.inc b/sound/song_table.inc
index 624cabe53..5b5813ab2 100644
--- a/sound/song_table.inc
+++ b/sound/song_table.inc
@@ -25,7 +25,7 @@ gSongTable:: @ 86B49F0
song se_pin, 1, 1 @ Exclamation Bubble
song se_boo, 1, 1 @ Contest Jam
song se_bowa, 1, 1 @ Giving Poké Ball to Nurse, Poké Ball Wiggle
- song se_jyuni, 2, 2 @ Places in Contest Appearing
+ song se_jyuni, 2, 2 @ Contest - Rankings Revealed
song se_a, 1, 1 @ Bard A
song se_i, 1, 1 @ Bard I
song se_u, 1, 1 @ Bard U
@@ -40,7 +40,7 @@ gSongTable:: @ 86B49F0
song se_tk_kasya, 1, 1 @ Mossdeep Gym/Trick House Switch
song se_fu_zaku, 1, 1
song se_fu_zaku2, 1, 1
- song se_fu_zuzuzu, 1, 1 @ Lavaridge Gym Warp
+ song se_fu_zuzuzu, 1, 1 @ Lavaridge Gym - Warp
song se_ru_gashin, 1, 1 @ Sootopolis Gym - Stairs Appear
song se_ru_gasyan, 1, 1 @ Sootopolis Gym - Ice Breaking
song se_ru_bari, 1, 1 @ Sootopolis Gym - Walking on Ice
@@ -49,7 +49,7 @@ gSongTable:: @ 86B49F0
song se_tk_warpin, 1, 1 @ Warp In
song se_tk_warpout, 1, 1 @ Warp Out
song se_tu_saa, 1, 1 @ Repel
- song se_hi_turun, 1, 1 @ Moving Obstacle in Fortree Gym
+ song se_hi_turun, 1, 1 @ Fortree Gym - Obstacle
song se_track_move, 1, 1 @ Moving Truck
song se_track_stop, 1, 1 @ Moving Truck Stop
song se_track_haiki, 2, 2 @ Moving Truck Unload
@@ -72,15 +72,15 @@ gSongTable:: @ 86B49F0
song se_toy_b, 2, 2 @ Note B
song se_toy_c1, 2, 2 @ Note High C
song se_mizu, 2, 2 @ Puddle
- song se_hashi, 2, 2 @ Boardwalk
- song se_daugi, 1, 1 @ Slots Credits
+ song se_hashi, 2, 2 @ Fortree Walkways
+ song se_daugi, 1, 1 @ Slots - Credits
song se_pinpon, 1, 1 @ Ding-dong!
song se_fuusen1, 2, 2 @ Red Balloon
song se_fuusen2, 2, 2 @ Blue Balloon
song se_fuusen3, 2, 2 @ Yellow Balloon
song se_toy_kabe, 2, 2 @ Breakable Door
song se_toy_dango, 2, 2 @ Mud Ball
- song se_doku, 1, 1 @ Overworld Poison Damage
+ song se_doku, 1, 1 @ Overworld - Poison Damage
song se_esuka, 1, 1 @ Escalator
song se_t_ame, 3, 3 @ Rain
song se_t_ame_e, 3, 3 @ Rain Stop
@@ -95,14 +95,14 @@ gSongTable:: @ 86B49F0
song se_expmax, 1, 1 @ Exp. Max
song se_tamakoro, 2, 2 @ Roulette Ball
song se_tamakoro_e, 2, 2 @ Roulette Ball 2
- song se_basabasa, 1, 1
+ song se_basabasa, 1, 1 @ Wing Attack
song se_regi, 1, 1 @ Cash Register
- song se_c_gaji, 1, 1 @ Contest Hearts
- song se_c_maku_u, 1, 1 @ Contest Curtain rise
- song se_c_maku_d, 1, 1 @ Contest Curtain fall
- song se_c_pasi, 1, 1
- song se_c_syu, 1, 1
- song se_c_pikon, 1, 1 @ Pokémon Appears in Contest
+ song se_c_gaji, 1, 1 @ Contest - Hearts
+ song se_c_maku_u, 1, 1 @ Contest - Curtain Rises
+ song se_c_maku_d, 1, 1 @ Contest - Curtain Falls
+ song se_c_pasi, 1, 1 @ Contest - Inflict Status
+ song se_c_syu, 1, 1 @ Contest - Pokémon Switches Out
+ song se_c_pikon, 1, 1 @ Contest - Pokémon Switches In
song se_reapoke, 1, 1 @ Shiny Pokémon
song se_op_basyu, 1, 1 @ Opening Movie -> Title Screen whoosh
song se_bt_start, 1, 1 @ Battle Mugshot whoosh
@@ -266,10 +266,10 @@ gSongTable:: @ 86B49F0
song se_rg_nawamiss, 1, 1
song se_toreeye, 1, 1 @ Trainer's Eye Call
song se_toreoff, 1, 1 @ Trainer's Eye Hang Up
- song se_hantei1, 1, 1 @ Battle Arena Time's Up 1
- song se_hantei2, 1, 1 @ Battle Arena Time's Up 2
- song se_curtain, 1, 1 @ Battle Pike Curtain Open
- song se_curtain1, 1, 1 @ Battle Pike Curtain Close
+ song se_hantei1, 1, 1 @ Battle Arena - Judgment 1
+ song se_hantei2, 1, 1 @ Battle Arena - Judgment 2
+ song se_curtain, 1, 1 @ Battle Pike - Curtain Opens
+ song se_curtain1, 1, 1 @ Battle Pike - Curtain Closes
song se_ussoki, 1, 1 @ Sudowoodo
song dummy_song_header, 0, 0
song dummy_song_header, 0, 0
diff --git a/sound/songs/midi/se_a.mid b/sound/songs/midi/se_a.mid
new file mode 100644
index 000000000..e44a27926
--- /dev/null
+++ b/sound/songs/midi/se_a.mid
Binary files differ
diff --git a/sound/songs/midi/se_ban.mid b/sound/songs/midi/se_ban.mid
new file mode 100644
index 000000000..0722a1c36
--- /dev/null
+++ b/sound/songs/midi/se_ban.mid
Binary files differ
diff --git a/sound/songs/midi/se_basabasa.mid b/sound/songs/midi/se_basabasa.mid
new file mode 100644
index 000000000..7a965abf5
--- /dev/null
+++ b/sound/songs/midi/se_basabasa.mid
Binary files differ
diff --git a/sound/songs/midi/se_bidoro.mid b/sound/songs/midi/se_bidoro.mid
new file mode 100644
index 000000000..a0b639ba4
--- /dev/null
+++ b/sound/songs/midi/se_bidoro.mid
Binary files differ
diff --git a/sound/songs/midi/se_boo.mid b/sound/songs/midi/se_boo.mid
new file mode 100644
index 000000000..89eb130b9
--- /dev/null
+++ b/sound/songs/midi/se_boo.mid
Binary files differ
diff --git a/sound/songs/midi/se_bowa.mid b/sound/songs/midi/se_bowa.mid
new file mode 100644
index 000000000..684ea618c
--- /dev/null
+++ b/sound/songs/midi/se_bowa.mid
Binary files differ
diff --git a/sound/songs/midi/se_bowa2.mid b/sound/songs/midi/se_bowa2.mid
new file mode 100644
index 000000000..669bed700
--- /dev/null
+++ b/sound/songs/midi/se_bowa2.mid
Binary files differ
diff --git a/sound/songs/midi/se_bt_start.mid b/sound/songs/midi/se_bt_start.mid
new file mode 100644
index 000000000..8c13783e9
--- /dev/null
+++ b/sound/songs/midi/se_bt_start.mid
Binary files differ
diff --git a/sound/songs/midi/se_c_gaji.mid b/sound/songs/midi/se_c_gaji.mid
new file mode 100644
index 000000000..94b6389b7
--- /dev/null
+++ b/sound/songs/midi/se_c_gaji.mid
Binary files differ
diff --git a/sound/songs/midi/se_c_maku_d.mid b/sound/songs/midi/se_c_maku_d.mid
new file mode 100644
index 000000000..04e2bfb11
--- /dev/null
+++ b/sound/songs/midi/se_c_maku_d.mid
Binary files differ
diff --git a/sound/songs/midi/se_c_maku_u.mid b/sound/songs/midi/se_c_maku_u.mid
new file mode 100644
index 000000000..109f92322
--- /dev/null
+++ b/sound/songs/midi/se_c_maku_u.mid
Binary files differ
diff --git a/sound/songs/midi/se_c_pasi.mid b/sound/songs/midi/se_c_pasi.mid
new file mode 100644
index 000000000..eea9c5707
--- /dev/null
+++ b/sound/songs/midi/se_c_pasi.mid
Binary files differ
diff --git a/sound/songs/midi/se_c_pikon.mid b/sound/songs/midi/se_c_pikon.mid
new file mode 100644
index 000000000..718a61443
--- /dev/null
+++ b/sound/songs/midi/se_c_pikon.mid
Binary files differ
diff --git a/sound/songs/midi/se_c_syu.mid b/sound/songs/midi/se_c_syu.mid
new file mode 100644
index 000000000..3766d5f51
--- /dev/null
+++ b/sound/songs/midi/se_c_syu.mid
Binary files differ
diff --git a/sound/songs/midi/se_card.mid b/sound/songs/midi/se_card.mid
new file mode 100644
index 000000000..a6832a85f
--- /dev/null
+++ b/sound/songs/midi/se_card.mid
Binary files differ
diff --git a/sound/songs/midi/se_curtain.mid b/sound/songs/midi/se_curtain.mid
new file mode 100644
index 000000000..88c684318
--- /dev/null
+++ b/sound/songs/midi/se_curtain.mid
Binary files differ
diff --git a/sound/songs/midi/se_curtain1.mid b/sound/songs/midi/se_curtain1.mid
new file mode 100644
index 000000000..0a40e158e
--- /dev/null
+++ b/sound/songs/midi/se_curtain1.mid
Binary files differ
diff --git a/sound/songs/midi/se_dansa.mid b/sound/songs/midi/se_dansa.mid
new file mode 100644
index 000000000..61eae0318
--- /dev/null
+++ b/sound/songs/midi/se_dansa.mid
Binary files differ
diff --git a/sound/songs/midi/se_daugi.mid b/sound/songs/midi/se_daugi.mid
new file mode 100644
index 000000000..9b6538a70
--- /dev/null
+++ b/sound/songs/midi/se_daugi.mid
Binary files differ
diff --git a/sound/songs/midi/se_dendou.mid b/sound/songs/midi/se_dendou.mid
new file mode 100644
index 000000000..4ab2a2212
--- /dev/null
+++ b/sound/songs/midi/se_dendou.mid
Binary files differ
diff --git a/sound/songs/midi/se_doku.mid b/sound/songs/midi/se_doku.mid
new file mode 100644
index 000000000..83841203a
--- /dev/null
+++ b/sound/songs/midi/se_doku.mid
Binary files differ
diff --git a/sound/songs/midi/se_door.mid b/sound/songs/midi/se_door.mid
new file mode 100644
index 000000000..004889e93
--- /dev/null
+++ b/sound/songs/midi/se_door.mid
Binary files differ
diff --git a/sound/songs/midi/se_e.mid b/sound/songs/midi/se_e.mid
new file mode 100644
index 000000000..79485cbc9
--- /dev/null
+++ b/sound/songs/midi/se_e.mid
Binary files differ
diff --git a/sound/songs/midi/se_elebeta.mid b/sound/songs/midi/se_elebeta.mid
new file mode 100644
index 000000000..66ee5fd1f
--- /dev/null
+++ b/sound/songs/midi/se_elebeta.mid
Binary files differ
diff --git a/sound/songs/midi/se_esuka.mid b/sound/songs/midi/se_esuka.mid
new file mode 100644
index 000000000..6a9e22a5b
--- /dev/null
+++ b/sound/songs/midi/se_esuka.mid
Binary files differ
diff --git a/sound/songs/midi/se_exp.mid b/sound/songs/midi/se_exp.mid
new file mode 100644
index 000000000..fa75616b5
--- /dev/null
+++ b/sound/songs/midi/se_exp.mid
Binary files differ
diff --git a/sound/songs/midi/se_expmax.mid b/sound/songs/midi/se_expmax.mid
new file mode 100644
index 000000000..8772e915e
--- /dev/null
+++ b/sound/songs/midi/se_expmax.mid
Binary files differ
diff --git a/sound/songs/midi/se_fu_zaku.mid b/sound/songs/midi/se_fu_zaku.mid
new file mode 100644
index 000000000..dbdb6383b
--- /dev/null
+++ b/sound/songs/midi/se_fu_zaku.mid
Binary files differ
diff --git a/sound/songs/midi/se_fu_zaku2.mid b/sound/songs/midi/se_fu_zaku2.mid
new file mode 100644
index 000000000..3fc903844
--- /dev/null
+++ b/sound/songs/midi/se_fu_zaku2.mid
Binary files differ
diff --git a/sound/songs/midi/se_fu_zuzuzu.mid b/sound/songs/midi/se_fu_zuzuzu.mid
new file mode 100644
index 000000000..962113ad3
--- /dev/null
+++ b/sound/songs/midi/se_fu_zuzuzu.mid
Binary files differ
diff --git a/sound/songs/midi/se_fuusen1.mid b/sound/songs/midi/se_fuusen1.mid
new file mode 100644
index 000000000..d22679a86
--- /dev/null
+++ b/sound/songs/midi/se_fuusen1.mid
Binary files differ
diff --git a/sound/songs/midi/se_fuusen2.mid b/sound/songs/midi/se_fuusen2.mid
new file mode 100644
index 000000000..4efc1a525
--- /dev/null
+++ b/sound/songs/midi/se_fuusen2.mid
Binary files differ
diff --git a/sound/songs/midi/se_fuusen3.mid b/sound/songs/midi/se_fuusen3.mid
new file mode 100644
index 000000000..ae40e0008
--- /dev/null
+++ b/sound/songs/midi/se_fuusen3.mid
Binary files differ
diff --git a/sound/songs/midi/se_hantei1.mid b/sound/songs/midi/se_hantei1.mid
new file mode 100644
index 000000000..1f2855420
--- /dev/null
+++ b/sound/songs/midi/se_hantei1.mid
Binary files differ
diff --git a/sound/songs/midi/se_hantei2.mid b/sound/songs/midi/se_hantei2.mid
new file mode 100644
index 000000000..06698dde9
--- /dev/null
+++ b/sound/songs/midi/se_hantei2.mid
Binary files differ
diff --git a/sound/songs/midi/se_hashi.mid b/sound/songs/midi/se_hashi.mid
new file mode 100644
index 000000000..fdd772c18
--- /dev/null
+++ b/sound/songs/midi/se_hashi.mid
Binary files differ
diff --git a/sound/songs/midi/se_hazure.mid b/sound/songs/midi/se_hazure.mid
new file mode 100644
index 000000000..c3c52f88f
--- /dev/null
+++ b/sound/songs/midi/se_hazure.mid
Binary files differ
diff --git a/sound/songs/midi/se_hi_turun.mid b/sound/songs/midi/se_hi_turun.mid
new file mode 100644
index 000000000..2a09f6c55
--- /dev/null
+++ b/sound/songs/midi/se_hi_turun.mid
Binary files differ
diff --git a/sound/songs/midi/se_hinsi.mid b/sound/songs/midi/se_hinsi.mid
new file mode 100644
index 000000000..3676a4a04
--- /dev/null
+++ b/sound/songs/midi/se_hinsi.mid
Binary files differ
diff --git a/sound/songs/midi/se_i.mid b/sound/songs/midi/se_i.mid
new file mode 100644
index 000000000..df7278dfd
--- /dev/null
+++ b/sound/songs/midi/se_i.mid
Binary files differ
diff --git a/sound/songs/midi/se_jido_doa.mid b/sound/songs/midi/se_jido_doa.mid
new file mode 100644
index 000000000..62fa8c911
--- /dev/null
+++ b/sound/songs/midi/se_jido_doa.mid
Binary files differ
diff --git a/sound/songs/midi/se_jihanki.mid b/sound/songs/midi/se_jihanki.mid
new file mode 100644
index 000000000..ac6436d72
--- /dev/null
+++ b/sound/songs/midi/se_jihanki.mid
Binary files differ
diff --git a/sound/songs/midi/se_jite_pyoko.mid b/sound/songs/midi/se_jite_pyoko.mid
new file mode 100644
index 000000000..013be8590
--- /dev/null
+++ b/sound/songs/midi/se_jite_pyoko.mid
Binary files differ
diff --git a/sound/songs/midi/se_jitensya.mid b/sound/songs/midi/se_jitensya.mid
new file mode 100644
index 000000000..9d5de6cbd
--- /dev/null
+++ b/sound/songs/midi/se_jitensya.mid
Binary files differ
diff --git a/sound/songs/midi/se_jyuni.mid b/sound/songs/midi/se_jyuni.mid
new file mode 100644
index 000000000..f68a31e46
--- /dev/null
+++ b/sound/songs/midi/se_jyuni.mid
Binary files differ
diff --git a/sound/songs/midi/se_kaidan.mid b/sound/songs/midi/se_kaidan.mid
new file mode 100644
index 000000000..575307d86
--- /dev/null
+++ b/sound/songs/midi/se_kaidan.mid
Binary files differ
diff --git a/sound/songs/midi/se_kaifuku.mid b/sound/songs/midi/se_kaifuku.mid
new file mode 100644
index 000000000..4375a705d
--- /dev/null
+++ b/sound/songs/midi/se_kaifuku.mid
Binary files differ
diff --git a/sound/songs/midi/se_ki_gasyan.mid b/sound/songs/midi/se_ki_gasyan.mid
new file mode 100644
index 000000000..8a57132d9
--- /dev/null
+++ b/sound/songs/midi/se_ki_gasyan.mid
Binary files differ
diff --git a/sound/songs/midi/se_kon.mid b/sound/songs/midi/se_kon.mid
new file mode 100644
index 000000000..438d4b047
--- /dev/null
+++ b/sound/songs/midi/se_kon.mid
Binary files differ
diff --git a/sound/songs/midi/se_kon2.mid b/sound/songs/midi/se_kon2.mid
new file mode 100644
index 000000000..961d82642
--- /dev/null
+++ b/sound/songs/midi/se_kon2.mid
Binary files differ
diff --git a/sound/songs/midi/se_kon3.mid b/sound/songs/midi/se_kon3.mid
new file mode 100644
index 000000000..fc35f1931
--- /dev/null
+++ b/sound/songs/midi/se_kon3.mid
Binary files differ
diff --git a/sound/songs/midi/se_kon4.mid b/sound/songs/midi/se_kon4.mid
new file mode 100644
index 000000000..b0f5561b9
--- /dev/null
+++ b/sound/songs/midi/se_kon4.mid
Binary files differ
diff --git a/sound/songs/midi/se_kouka_h.mid b/sound/songs/midi/se_kouka_h.mid
new file mode 100644
index 000000000..e70b12901
--- /dev/null
+++ b/sound/songs/midi/se_kouka_h.mid
Binary files differ
diff --git a/sound/songs/midi/se_kouka_l.mid b/sound/songs/midi/se_kouka_l.mid
new file mode 100644
index 000000000..34aafbb18
--- /dev/null
+++ b/sound/songs/midi/se_kouka_l.mid
Binary files differ
diff --git a/sound/songs/midi/se_kouka_m.mid b/sound/songs/midi/se_kouka_m.mid
new file mode 100644
index 000000000..d98bd0027
--- /dev/null
+++ b/sound/songs/midi/se_kouka_m.mid
Binary files differ
diff --git a/sound/songs/se_a.s b/sound/songs/se_a.s
deleted file mode 100644
index 860a9aa27..000000000
--- a/sound/songs/se_a.s
+++ /dev/null
@@ -1,45 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_a_grp, voicegroup128
- .equ se_a_pri, 4
- .equ se_a_rev, reverb_set+50
- .equ se_a_mvl, 127
- .equ se_a_key, 0
- .equ se_a_tbs, 1
- .equ se_a_exg, 0
- .equ se_a_cmp, 1
-
- .section .rodata
- .global se_a
- .align 2
-
-@********************** Track 1 **********************@
-
-se_a_1:
- .byte KEYSH , se_a_key+0
- .byte TEMPO , 240*se_a_tbs/2
- .byte VOICE , 122
- .byte BENDR , 12
- .byte VOL , 95*se_a_mvl/mxv
- .byte BEND , c_v+0
- .byte N72 , Cn3 , v127
- .byte W24
- .byte W24
- .byte W24
- .byte W24
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_a:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_a_pri @ Priority
- .byte se_a_rev @ Reverb.
-
- .word se_a_grp
-
- .word se_a_1
-
- .end
diff --git a/sound/songs/se_ban.s b/sound/songs/se_ban.s
deleted file mode 100644
index c4e39b5cd..000000000
--- a/sound/songs/se_ban.s
+++ /dev/null
@@ -1,70 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_ban_grp, voicegroup128
- .equ se_ban_pri, 4
- .equ se_ban_rev, reverb_set+50
- .equ se_ban_mvl, 127
- .equ se_ban_key, 0
- .equ se_ban_tbs, 1
- .equ se_ban_exg, 0
- .equ se_ban_cmp, 1
-
- .section .rodata
- .global se_ban
- .align 2
-
-@********************** Track 1 **********************@
-
-se_ban_1:
- .byte KEYSH , se_ban_key+0
- .byte TEMPO , 240*se_ban_tbs/2
- .byte VOICE , 2
- .byte BENDR , 12
- .byte VOL , 110*se_ban_mvl/mxv
- .byte BEND , c_v+0
- .byte N03 , En2 , v127
- .byte W03
- .byte Dn2
- .byte W03
- .byte N06 , Gn1
- .byte W06
- .byte N60 , An2
- .byte W12
- .byte W24
- .byte VOL , 94*se_ban_mvl/mxv
- .byte BEND , c_v-5
- .byte W03
- .byte VOL , 81*se_ban_mvl/mxv
- .byte W03
- .byte 71*se_ban_mvl/mxv
- .byte BEND , c_v-12
- .byte W03
- .byte VOL , 47*se_ban_mvl/mxv
- .byte W03
- .byte 32*se_ban_mvl/mxv
- .byte BEND , c_v-19
- .byte W03
- .byte VOL , 20*se_ban_mvl/mxv
- .byte W03
- .byte 7*se_ban_mvl/mxv
- .byte BEND , c_v-28
- .byte W03
- .byte VOL , 0*se_ban_mvl/mxv
- .byte BEND , c_v-37
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_ban:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_ban_pri @ Priority
- .byte se_ban_rev @ Reverb.
-
- .word se_ban_grp
-
- .word se_ban_1
-
- .end
diff --git a/sound/songs/se_basabasa.s b/sound/songs/se_basabasa.s
deleted file mode 100644
index bf1ee14ca..000000000
--- a/sound/songs/se_basabasa.s
+++ /dev/null
@@ -1,123 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_basabasa_grp, voicegroup128
- .equ se_basabasa_pri, 5
- .equ se_basabasa_rev, reverb_set+50
- .equ se_basabasa_mvl, 127
- .equ se_basabasa_key, 0
- .equ se_basabasa_tbs, 1
- .equ se_basabasa_exg, 0
- .equ se_basabasa_cmp, 1
-
- .section .rodata
- .global se_basabasa
- .align 2
-
-@********************** Track 1 **********************@
-
-se_basabasa_1:
- .byte KEYSH , se_basabasa_key+0
-se_basabasa_1_B1:
- .byte TEMPO , 220*se_basabasa_tbs/2
- .byte VOICE , 2
- .byte BENDR , 12
- .byte PAN , c_v+0
- .byte VOL , 40*se_basabasa_mvl/mxv
- .byte BEND , c_v-32
- .byte N07 , An1 , v127
- .byte W01
- .byte VOL , 52*se_basabasa_mvl/mxv
- .byte PAN , c_v+10
- .byte BEND , c_v-16
- .byte W01
- .byte VOL , 68*se_basabasa_mvl/mxv
- .byte PAN , c_v+0
- .byte BEND , c_v+0
- .byte W01
- .byte VOL , 82*se_basabasa_mvl/mxv
- .byte PAN , c_v-9
- .byte BEND , c_v+17
- .byte W01
- .byte VOL , 105*se_basabasa_mvl/mxv
- .byte PAN , c_v+0
- .byte BEND , c_v+37
- .byte W02
- .byte PAN , c_v+10
- .byte BEND , c_v+63
- .byte W03
- .byte PAN , c_v+0
- .byte W01
- .byte VOL , 40*se_basabasa_mvl/mxv
- .byte PAN , c_v+10
- .byte BEND , c_v+1
- .byte N06
- .byte W02
- .byte VOL , 52*se_basabasa_mvl/mxv
- .byte PAN , c_v+0
- .byte BEND , c_v+38
- .byte W01
- .byte VOL , 79*se_basabasa_mvl/mxv
- .byte PAN , c_v-9
- .byte BEND , c_v+48
- .byte W01
- .byte VOL , 105*se_basabasa_mvl/mxv
- .byte PAN , c_v+0
- .byte BEND , c_v+63
- .byte W10
- .byte W12
- .byte W12
- .byte GOTO
- .word se_basabasa_1_B1
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_basabasa_2:
- .byte KEYSH , se_basabasa_key+0
-se_basabasa_2_B1:
- .byte VOICE , 27
- .byte PAN , c_v+0
- .byte VOL , 52*se_basabasa_mvl/mxv
- .byte N07 , Gn2 , v040
- .byte W01
- .byte VOL , 69*se_basabasa_mvl/mxv
- .byte W01
- .byte 83*se_basabasa_mvl/mxv
- .byte W01
- .byte 105*se_basabasa_mvl/mxv
- .byte W01
- .byte 67*se_basabasa_mvl/mxv
- .byte W02
- .byte 23*se_basabasa_mvl/mxv
- .byte W04
- .byte VOICE , 25
- .byte VOL , 52*se_basabasa_mvl/mxv
- .byte N06 , Gs4
- .byte W02
- .byte VOL , 81*se_basabasa_mvl/mxv
- .byte W01
- .byte 105*se_basabasa_mvl/mxv
- .byte W02
- .byte 52*se_basabasa_mvl/mxv
- .byte W09
- .byte W12
- .byte W12
- .byte GOTO
- .word se_basabasa_2_B1
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_basabasa:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_basabasa_pri @ Priority
- .byte se_basabasa_rev @ Reverb.
-
- .word se_basabasa_grp
-
- .word se_basabasa_1
- .word se_basabasa_2
-
- .end
diff --git a/sound/songs/se_bidoro.s b/sound/songs/se_bidoro.s
deleted file mode 100644
index 6130a39a2..000000000
--- a/sound/songs/se_bidoro.s
+++ /dev/null
@@ -1,61 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_bidoro_grp, voicegroup128
- .equ se_bidoro_pri, 5
- .equ se_bidoro_rev, reverb_set+50
- .equ se_bidoro_mvl, 127
- .equ se_bidoro_key, 0
- .equ se_bidoro_tbs, 1
- .equ se_bidoro_exg, 0
- .equ se_bidoro_cmp, 1
-
- .section .rodata
- .global se_bidoro
- .align 2
-
-@********************** Track 1 **********************@
-
-se_bidoro_1:
- .byte KEYSH , se_bidoro_key+0
- .byte TEMPO , 120*se_bidoro_tbs/2
- .byte VOICE , 28
- .byte VOL , 26*se_bidoro_mvl/mxv
- .byte BENDR , 8
- .byte BEND , c_v+0
- .byte N01 , En3 , v116
- .byte W01
- .byte VOL , 105*se_bidoro_mvl/mxv
- .byte BEND , c_v-4
- .byte N01 , Bn2
- .byte W01
- .byte BEND , c_v+3
- .byte N01 , Cn3
- .byte W04
- .byte W04
- .byte BEND , c_v+0
- .byte N04 , Bn3
- .byte W02
- .byte VOL , 26*se_bidoro_mvl/mxv
- .byte BEND , c_v-7
- .byte W01
- .byte VOL , 105*se_bidoro_mvl/mxv
- .byte BEND , c_v-13
- .byte W01
- .byte c_v-23
- .byte W04
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_bidoro:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_bidoro_pri @ Priority
- .byte se_bidoro_rev @ Reverb.
-
- .word se_bidoro_grp
-
- .word se_bidoro_1
-
- .end
diff --git a/sound/songs/se_boo.s b/sound/songs/se_boo.s
deleted file mode 100644
index c6bb1cb06..000000000
--- a/sound/songs/se_boo.s
+++ /dev/null
@@ -1,47 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_boo_grp, voicegroup127
- .equ se_boo_pri, 4
- .equ se_boo_rev, reverb_set+50
- .equ se_boo_mvl, 127
- .equ se_boo_key, 0
- .equ se_boo_tbs, 1
- .equ se_boo_exg, 0
- .equ se_boo_cmp, 1
-
- .section .rodata
- .global se_boo
- .align 2
-
-@********************** Track 1 **********************@
-
-se_boo_1:
- .byte KEYSH , se_boo_key+0
- .byte TEMPO , 100*se_boo_tbs/2
- .byte VOICE , 5
- .byte BENDR , 12
- .byte VOL , 110*se_boo_mvl/mxv
- .byte BEND , c_v+0
- .byte N03 , Cn3 , v127
- .byte W03
- .byte Cn2 , v112
- .byte W03
- .byte W03
- .byte Cn2 , v024
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_boo:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_boo_pri @ Priority
- .byte se_boo_rev @ Reverb.
-
- .word se_boo_grp
-
- .word se_boo_1
-
- .end
diff --git a/sound/songs/se_bowa.s b/sound/songs/se_bowa.s
deleted file mode 100644
index 93b84265b..000000000
--- a/sound/songs/se_bowa.s
+++ /dev/null
@@ -1,45 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_bowa_grp, voicegroup127
- .equ se_bowa_pri, 4
- .equ se_bowa_rev, reverb_set+50
- .equ se_bowa_mvl, 127
- .equ se_bowa_key, 0
- .equ se_bowa_tbs, 1
- .equ se_bowa_exg, 0
- .equ se_bowa_cmp, 1
-
- .section .rodata
- .global se_bowa
- .align 2
-
-@********************** Track 1 **********************@
-
-se_bowa_1:
- .byte KEYSH , se_bowa_key+0
- .byte TEMPO , 128*se_bowa_tbs/2
- .byte VOICE , 7
- .byte BENDR , 12
- .byte VOL , 70*se_bowa_mvl/mxv
- .byte BEND , c_v+2
- .byte N04 , Fn2 , v127
- .byte W04
- .byte N01 , Dn3
- .byte W02
- .byte VOICE , 8
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_bowa:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_bowa_pri @ Priority
- .byte se_bowa_rev @ Reverb.
-
- .word se_bowa_grp
-
- .word se_bowa_1
-
- .end
diff --git a/sound/songs/se_bowa2.s b/sound/songs/se_bowa2.s
deleted file mode 100644
index 571c45291..000000000
--- a/sound/songs/se_bowa2.s
+++ /dev/null
@@ -1,83 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_bowa2_grp, voicegroup127
- .equ se_bowa2_pri, 5
- .equ se_bowa2_rev, reverb_set+50
- .equ se_bowa2_mvl, 127
- .equ se_bowa2_key, 0
- .equ se_bowa2_tbs, 1
- .equ se_bowa2_exg, 0
- .equ se_bowa2_cmp, 1
-
- .section .rodata
- .global se_bowa2
- .align 2
-
-@********************** Track 1 **********************@
-
-se_bowa2_1:
- .byte KEYSH , se_bowa2_key+0
- .byte TEMPO , 90*se_bowa2_tbs/2
- .byte VOICE , 86
- .byte VOL , 100*se_bowa2_mvl/mxv
- .byte BEND , c_v+0
- .byte N02 , Gn1 , v100
- .byte W03
- .byte N05 , Fn2
- .byte W03
- .byte W03
- .byte N06 , Fn2 , v052
- .byte W03
- .byte W03
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_bowa2_2:
- .byte KEYSH , se_bowa2_key+0
- .byte VOICE , 0
- .byte VOL , 100*se_bowa2_mvl/mxv
- .byte BENDR , 12
- .byte BEND , c_v+0
- .byte N03 , Gn3 , v052
- .byte W03
- .byte Cn2 , v112
- .byte W03
- .byte W03
- .byte Cn1 , v092
- .byte W03
- .byte W03
- .byte FINE
-
-@********************** Track 3 **********************@
-
-se_bowa2_3:
- .byte KEYSH , se_bowa2_key+0
- .byte VOICE , 124
- .byte VOL , 100*se_bowa2_mvl/mxv
- .byte N03 , Gn3 , v052
- .byte W03
- .byte N06 , Gs4
- .byte W03
- .byte W03
- .byte Gs4 , v020
- .byte W03
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_bowa2:
- .byte 3 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_bowa2_pri @ Priority
- .byte se_bowa2_rev @ Reverb.
-
- .word se_bowa2_grp
-
- .word se_bowa2_1
- .word se_bowa2_2
- .word se_bowa2_3
-
- .end
diff --git a/sound/songs/se_bt_start.s b/sound/songs/se_bt_start.s
deleted file mode 100644
index c0c30550b..000000000
--- a/sound/songs/se_bt_start.s
+++ /dev/null
@@ -1,212 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_bt_start_grp, voicegroup128
- .equ se_bt_start_pri, 5
- .equ se_bt_start_rev, reverb_set+50
- .equ se_bt_start_mvl, 127
- .equ se_bt_start_key, 0
- .equ se_bt_start_tbs, 1
- .equ se_bt_start_exg, 0
- .equ se_bt_start_cmp, 1
-
- .section .rodata
- .global se_bt_start
- .align 2
-
-@********************** Track 1 **********************@
-
-se_bt_start_1:
- .byte KEYSH , se_bt_start_key+0
- .byte TEMPO , 110*se_bt_start_tbs/2
- .byte VOICE , 66
- .byte BENDR , 12
- .byte VOL , 90*se_bt_start_mvl/mxv
- .byte PAN , c_v+0
- .byte BEND , c_v+0
- .byte N90 , Gs3 , v040
- .byte W06
- .byte W06
- .byte BEND , c_v+1
- .byte W04
- .byte c_v+3
- .byte W02
- .byte W04
- .byte c_v+5
- .byte W02
- .byte W04
- .byte c_v+8
- .byte W02
- .byte W03
- .byte c_v+11
- .byte W03
- .byte W03
- .byte c_v+18
- .byte W03
- .byte W02
- .byte c_v+24
- .byte W04
- .byte c_v+30
- .byte W02
- .byte c_v+38
- .byte W02
- .byte c_v+43
- .byte W02
- .byte W01
- .byte c_v+56
- .byte W02
- .byte c_v+63
- .byte W03
- .byte W03
- .byte VOL , 83*se_bt_start_mvl/mxv
- .byte W03
- .byte 75*se_bt_start_mvl/mxv
- .byte W04
- .byte 68*se_bt_start_mvl/mxv
- .byte W02
- .byte W01
- .byte 55*se_bt_start_mvl/mxv
- .byte W04
- .byte 42*se_bt_start_mvl/mxv
- .byte W01
- .byte W03
- .byte 29*se_bt_start_mvl/mxv
- .byte W03
- .byte 17*se_bt_start_mvl/mxv
- .byte W03
- .byte 8*se_bt_start_mvl/mxv
- .byte W03
- .byte W06
- .byte W06
- .byte W06
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_bt_start_2:
- .byte KEYSH , se_bt_start_key+0
- .byte VOICE , 2
- .byte VOL , 14*se_bt_start_mvl/mxv
- .byte PAN , c_v-1
- .byte BEND , c_v+0
- .byte TIE , Gn3 , v100
- .byte W01
- .byte VOL , 19*se_bt_start_mvl/mxv
- .byte W01
- .byte 30*se_bt_start_mvl/mxv
- .byte W02
- .byte 37*se_bt_start_mvl/mxv
- .byte W02
- .byte W02
- .byte 44*se_bt_start_mvl/mxv
- .byte W04
- .byte 49*se_bt_start_mvl/mxv
- .byte W04
- .byte 53*se_bt_start_mvl/mxv
- .byte W02
- .byte W03
- .byte 58*se_bt_start_mvl/mxv
- .byte W03
- .byte W02
- .byte 64*se_bt_start_mvl/mxv
- .byte W04
- .byte 68*se_bt_start_mvl/mxv
- .byte W03
- .byte 74*se_bt_start_mvl/mxv
- .byte W03
- .byte W01
- .byte BEND , c_v+1
- .byte W01
- .byte VOL , 81*se_bt_start_mvl/mxv
- .byte W04
- .byte BEND , c_v+2
- .byte W01
- .byte VOL , 90*se_bt_start_mvl/mxv
- .byte W03
- .byte BEND , c_v+4
- .byte W02
- .byte W03
- .byte c_v+5
- .byte W03
- .byte W01
- .byte c_v+6
- .byte W03
- .byte c_v+6
- .byte W02
- .byte W02
- .byte c_v+8
- .byte W02
- .byte c_v+10
- .byte W02
- .byte W01
- .byte c_v+14
- .byte W02
- .byte c_v+17
- .byte W03
- .byte c_v+24
- .byte W02
- .byte c_v+30
- .byte W01
- .byte c_v+41
- .byte W01
- .byte c_v+46
- .byte W02
- .byte c_v+55
- .byte W01
- .byte c_v+60
- .byte W01
- .byte c_v+63
- .byte W01
- .byte VOL , 87*se_bt_start_mvl/mxv
- .byte W03
- .byte 85*se_bt_start_mvl/mxv
- .byte PAN , c_v-4
- .byte W02
- .byte VOL , 78*se_bt_start_mvl/mxv
- .byte PAN , c_v+4
- .byte W02
- .byte VOL , 75*se_bt_start_mvl/mxv
- .byte PAN , c_v-6
- .byte W02
- .byte W01
- .byte VOL , 69*se_bt_start_mvl/mxv
- .byte PAN , c_v+6
- .byte W02
- .byte VOL , 59*se_bt_start_mvl/mxv
- .byte PAN , c_v-20
- .byte W03
- .byte VOL , 49*se_bt_start_mvl/mxv
- .byte PAN , c_v+22
- .byte W02
- .byte VOL , 41*se_bt_start_mvl/mxv
- .byte PAN , c_v-37
- .byte W02
- .byte VOL , 30*se_bt_start_mvl/mxv
- .byte PAN , c_v+37
- .byte W02
- .byte W01
- .byte VOL , 19*se_bt_start_mvl/mxv
- .byte PAN , c_v-48
- .byte W02
- .byte VOL , 10*se_bt_start_mvl/mxv
- .byte PAN , c_v+48
- .byte W01
- .byte VOL , 4*se_bt_start_mvl/mxv
- .byte W02
- .byte EOT
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_bt_start:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_bt_start_pri @ Priority
- .byte se_bt_start_rev @ Reverb.
-
- .word se_bt_start_grp
-
- .word se_bt_start_1
- .word se_bt_start_2
-
- .end
diff --git a/sound/songs/se_c_gaji.s b/sound/songs/se_c_gaji.s
deleted file mode 100644
index 38217dbe5..000000000
--- a/sound/songs/se_c_gaji.s
+++ /dev/null
@@ -1,44 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_c_gaji_grp, voicegroup128
- .equ se_c_gaji_pri, 5
- .equ se_c_gaji_rev, reverb_set+50
- .equ se_c_gaji_mvl, 127
- .equ se_c_gaji_key, 0
- .equ se_c_gaji_tbs, 1
- .equ se_c_gaji_exg, 0
- .equ se_c_gaji_cmp, 1
-
- .section .rodata
- .global se_c_gaji
- .align 2
-
-@********************** Track 1 **********************@
-
-se_c_gaji_1:
- .byte KEYSH , se_c_gaji_key+0
- .byte TEMPO , 150*se_c_gaji_tbs/2
- .byte VOICE , 14
- .byte VOL , 90*se_c_gaji_mvl/mxv
- .byte BEND , c_v-7
- .byte N02 , Cn5 , v112
- .byte W02
- .byte N09 , Gn4
- .byte W04
- .byte W06
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_c_gaji:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_c_gaji_pri @ Priority
- .byte se_c_gaji_rev @ Reverb.
-
- .word se_c_gaji_grp
-
- .word se_c_gaji_1
-
- .end
diff --git a/sound/songs/se_c_maku_d.s b/sound/songs/se_c_maku_d.s
deleted file mode 100644
index f97673f07..000000000
--- a/sound/songs/se_c_maku_d.s
+++ /dev/null
@@ -1,95 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_c_maku_d_grp, voicegroup128
- .equ se_c_maku_d_pri, 5
- .equ se_c_maku_d_rev, reverb_set+50
- .equ se_c_maku_d_mvl, 127
- .equ se_c_maku_d_key, 0
- .equ se_c_maku_d_tbs, 1
- .equ se_c_maku_d_exg, 0
- .equ se_c_maku_d_cmp, 1
-
- .section .rodata
- .global se_c_maku_d
- .align 2
-
-@********************** Track 1 **********************@
-
-se_c_maku_d_1:
- .byte KEYSH , se_c_maku_d_key+0
- .byte TEMPO , 150*se_c_maku_d_tbs/2
- .byte VOICE , 25
- .byte VOL , 12*se_c_maku_d_mvl/mxv
- .byte BEND , c_v+0
- .byte N12 , Gs4 , v060
- .byte W01
- .byte VOL , 22*se_c_maku_d_mvl/mxv
- .byte W01
- .byte 33*se_c_maku_d_mvl/mxv
- .byte W01
- .byte 46*se_c_maku_d_mvl/mxv
- .byte W01
- .byte 58*se_c_maku_d_mvl/mxv
- .byte W02
- .byte 70*se_c_maku_d_mvl/mxv
- .byte W02
- .byte 60*se_c_maku_d_mvl/mxv
- .byte W01
- .byte 42*se_c_maku_d_mvl/mxv
- .byte W01
- .byte 22*se_c_maku_d_mvl/mxv
- .byte W02
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_c_maku_d_2:
- .byte KEYSH , se_c_maku_d_key+0
- .byte VOICE , 15
- .byte VOL , 12*se_c_maku_d_mvl/mxv
- .byte BEND , c_v+0
- .byte N12 , Fn3 , v100
- .byte W01
- .byte VOL , 22*se_c_maku_d_mvl/mxv
- .byte BEND , c_v-4
- .byte W01
- .byte VOL , 33*se_c_maku_d_mvl/mxv
- .byte BEND , c_v-7
- .byte W01
- .byte VOL , 46*se_c_maku_d_mvl/mxv
- .byte BEND , c_v-10
- .byte W01
- .byte VOL , 58*se_c_maku_d_mvl/mxv
- .byte BEND , c_v-15
- .byte W02
- .byte VOL , 70*se_c_maku_d_mvl/mxv
- .byte BEND , c_v-23
- .byte W01
- .byte c_v-31
- .byte W01
- .byte VOL , 60*se_c_maku_d_mvl/mxv
- .byte BEND , c_v-39
- .byte W01
- .byte VOL , 42*se_c_maku_d_mvl/mxv
- .byte BEND , c_v-48
- .byte W01
- .byte VOL , 22*se_c_maku_d_mvl/mxv
- .byte BEND , c_v-55
- .byte W02
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_c_maku_d:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_c_maku_d_pri @ Priority
- .byte se_c_maku_d_rev @ Reverb.
-
- .word se_c_maku_d_grp
-
- .word se_c_maku_d_1
- .word se_c_maku_d_2
-
- .end
diff --git a/sound/songs/se_c_maku_u.s b/sound/songs/se_c_maku_u.s
deleted file mode 100644
index fa0ef3f0d..000000000
--- a/sound/songs/se_c_maku_u.s
+++ /dev/null
@@ -1,95 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_c_maku_u_grp, voicegroup128
- .equ se_c_maku_u_pri, 5
- .equ se_c_maku_u_rev, reverb_set+50
- .equ se_c_maku_u_mvl, 127
- .equ se_c_maku_u_key, 0
- .equ se_c_maku_u_tbs, 1
- .equ se_c_maku_u_exg, 0
- .equ se_c_maku_u_cmp, 1
-
- .section .rodata
- .global se_c_maku_u
- .align 2
-
-@********************** Track 1 **********************@
-
-se_c_maku_u_1:
- .byte KEYSH , se_c_maku_u_key+0
- .byte TEMPO , 150*se_c_maku_u_tbs/2
- .byte VOICE , 25
- .byte VOL , 12*se_c_maku_u_mvl/mxv
- .byte BEND , c_v+0
- .byte N12 , Gs4 , v060
- .byte W01
- .byte VOL , 22*se_c_maku_u_mvl/mxv
- .byte W01
- .byte 33*se_c_maku_u_mvl/mxv
- .byte W01
- .byte 46*se_c_maku_u_mvl/mxv
- .byte W01
- .byte 58*se_c_maku_u_mvl/mxv
- .byte W02
- .byte 70*se_c_maku_u_mvl/mxv
- .byte W02
- .byte 60*se_c_maku_u_mvl/mxv
- .byte W01
- .byte 42*se_c_maku_u_mvl/mxv
- .byte W01
- .byte 22*se_c_maku_u_mvl/mxv
- .byte W02
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_c_maku_u_2:
- .byte KEYSH , se_c_maku_u_key+0
- .byte VOICE , 15
- .byte VOL , 12*se_c_maku_u_mvl/mxv
- .byte BEND , c_v+0
- .byte N12 , Fn3 , v100
- .byte W01
- .byte VOL , 22*se_c_maku_u_mvl/mxv
- .byte BEND , c_v+3
- .byte W01
- .byte VOL , 33*se_c_maku_u_mvl/mxv
- .byte BEND , c_v+6
- .byte W01
- .byte VOL , 46*se_c_maku_u_mvl/mxv
- .byte BEND , c_v+9
- .byte W01
- .byte VOL , 58*se_c_maku_u_mvl/mxv
- .byte BEND , c_v+12
- .byte W02
- .byte VOL , 70*se_c_maku_u_mvl/mxv
- .byte BEND , c_v+17
- .byte W01
- .byte c_v+20
- .byte W01
- .byte VOL , 60*se_c_maku_u_mvl/mxv
- .byte BEND , c_v+25
- .byte W01
- .byte VOL , 42*se_c_maku_u_mvl/mxv
- .byte BEND , c_v+32
- .byte W01
- .byte VOL , 22*se_c_maku_u_mvl/mxv
- .byte BEND , c_v+38
- .byte W02
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_c_maku_u:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_c_maku_u_pri @ Priority
- .byte se_c_maku_u_rev @ Reverb.
-
- .word se_c_maku_u_grp
-
- .word se_c_maku_u_1
- .word se_c_maku_u_2
-
- .end
diff --git a/sound/songs/se_c_pasi.s b/sound/songs/se_c_pasi.s
deleted file mode 100644
index 02da29a6d..000000000
--- a/sound/songs/se_c_pasi.s
+++ /dev/null
@@ -1,45 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_c_pasi_grp, voicegroup128
- .equ se_c_pasi_pri, 5
- .equ se_c_pasi_rev, reverb_set+50
- .equ se_c_pasi_mvl, 127
- .equ se_c_pasi_key, 0
- .equ se_c_pasi_tbs, 1
- .equ se_c_pasi_exg, 0
- .equ se_c_pasi_cmp, 1
-
- .section .rodata
- .global se_c_pasi
- .align 2
-
-@********************** Track 1 **********************@
-
-se_c_pasi_1:
- .byte KEYSH , se_c_pasi_key+0
- .byte TEMPO , 150*se_c_pasi_tbs/2
- .byte VOICE , 2
- .byte BENDR , 12
- .byte VOL , 110*se_c_pasi_mvl/mxv
- .byte PAN , c_v+0
- .byte BEND , c_v+0
- .byte N02 , Gn3 , v112
- .byte W04
- .byte Gn4 , v064
- .byte W02
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_c_pasi:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_c_pasi_pri @ Priority
- .byte se_c_pasi_rev @ Reverb.
-
- .word se_c_pasi_grp
-
- .word se_c_pasi_1
-
- .end
diff --git a/sound/songs/se_c_pikon.s b/sound/songs/se_c_pikon.s
deleted file mode 100644
index 1e91ed760..000000000
--- a/sound/songs/se_c_pikon.s
+++ /dev/null
@@ -1,54 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_c_pikon_grp, voicegroup128
- .equ se_c_pikon_pri, 5
- .equ se_c_pikon_rev, reverb_set+50
- .equ se_c_pikon_mvl, 127
- .equ se_c_pikon_key, 0
- .equ se_c_pikon_tbs, 1
- .equ se_c_pikon_exg, 0
- .equ se_c_pikon_cmp, 1
-
- .section .rodata
- .global se_c_pikon
- .align 2
-
-@********************** Track 1 **********************@
-
-se_c_pikon_1:
- .byte KEYSH , se_c_pikon_key+0
- .byte TEMPO , 150*se_c_pikon_tbs/2
- .byte VOICE , 14
- .byte VOL , 90*se_c_pikon_mvl/mxv
- .byte BEND , c_v-7
- .byte N02 , Cn5 , v112
- .byte W02
- .byte Cn6
- .byte W04
- .byte W01
- .byte Cn6 , v060
- .byte W05
- .byte W02
- .byte Cn5 , v112
- .byte W02
- .byte Cn6
- .byte W02
- .byte W03
- .byte Cn6 , v060
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_c_pikon:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_c_pikon_pri @ Priority
- .byte se_c_pikon_rev @ Reverb.
-
- .word se_c_pikon_grp
-
- .word se_c_pikon_1
-
- .end
diff --git a/sound/songs/se_c_syu.s b/sound/songs/se_c_syu.s
deleted file mode 100644
index c4d051397..000000000
--- a/sound/songs/se_c_syu.s
+++ /dev/null
@@ -1,54 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_c_syu_grp, voicegroup128
- .equ se_c_syu_pri, 5
- .equ se_c_syu_rev, reverb_set+50
- .equ se_c_syu_mvl, 127
- .equ se_c_syu_key, 0
- .equ se_c_syu_tbs, 1
- .equ se_c_syu_exg, 0
- .equ se_c_syu_cmp, 1
-
- .section .rodata
- .global se_c_syu
- .align 2
-
-@********************** Track 1 **********************@
-
-se_c_syu_1:
- .byte KEYSH , se_c_syu_key+0
- .byte TEMPO , 150*se_c_syu_tbs/2
- .byte VOICE , 36
- .byte VOL , 49*se_c_syu_mvl/mxv
- .byte BEND , c_v-64
- .byte N03 , Cn6 , v112
- .byte W01
- .byte VOL , 68*se_c_syu_mvl/mxv
- .byte BEND , c_v-1
- .byte W01
- .byte VOL , 90*se_c_syu_mvl/mxv
- .byte BEND , c_v+63
- .byte W01
- .byte VOL , 69*se_c_syu_mvl/mxv
- .byte BEND , c_v+0
- .byte N02 , Cn6 , v040
- .byte W01
- .byte VOL , 90*se_c_syu_mvl/mxv
- .byte BEND , c_v+63
- .byte W02
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_c_syu:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_c_syu_pri @ Priority
- .byte se_c_syu_rev @ Reverb.
-
- .word se_c_syu_grp
-
- .word se_c_syu_1
-
- .end
diff --git a/sound/songs/se_card.s b/sound/songs/se_card.s
deleted file mode 100644
index 703e516d5..000000000
--- a/sound/songs/se_card.s
+++ /dev/null
@@ -1,84 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_card_grp, voicegroup127
- .equ se_card_pri, 4
- .equ se_card_rev, reverb_set+50
- .equ se_card_mvl, 127
- .equ se_card_key, 0
- .equ se_card_tbs, 1
- .equ se_card_exg, 0
- .equ se_card_cmp, 1
-
- .section .rodata
- .global se_card
- .align 2
-
-@********************** Track 1 **********************@
-
-se_card_1:
- .byte KEYSH , se_card_key+0
- .byte TEMPO , 180*se_card_tbs/2
- .byte VOICE , 2
- .byte BENDR , 12
- .byte VOL , 37*se_card_mvl/mxv
- .byte BEND , c_v+63
- .byte N02 , Gn3 , v044
- .byte W01
- .byte VOL , 73*se_card_mvl/mxv
- .byte W01
- .byte 100*se_card_mvl/mxv
- .byte N01 , Gn4
- .byte W02
- .byte N30 , Cn4 , v127
- .byte W02
- .byte BEND , c_v+59
- .byte W01
- .byte VOL , 3*se_card_mvl/mxv
- .byte W01
- .byte 25*se_card_mvl/mxv
- .byte W01
- .byte 56*se_card_mvl/mxv
- .byte BEND , c_v+55
- .byte W01
- .byte VOL , 77*se_card_mvl/mxv
- .byte W02
- .byte 100*se_card_mvl/mxv
- .byte BEND , c_v+46
- .byte W03
- .byte VOL , 92*se_card_mvl/mxv
- .byte BEND , c_v+37
- .byte W03
- .byte VOL , 79*se_card_mvl/mxv
- .byte BEND , c_v+28
- .byte W03
- .byte VOL , 66*se_card_mvl/mxv
- .byte BEND , c_v+20
- .byte W03
- .byte VOL , 52*se_card_mvl/mxv
- .byte BEND , c_v+11
- .byte W03
- .byte VOL , 38*se_card_mvl/mxv
- .byte BEND , c_v+2
- .byte W03
- .byte VOL , 25*se_card_mvl/mxv
- .byte BEND , c_v-7
- .byte W03
- .byte VOL , 11*se_card_mvl/mxv
- .byte BEND , c_v-16
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_card:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_card_pri @ Priority
- .byte se_card_rev @ Reverb.
-
- .word se_card_grp
-
- .word se_card_1
-
- .end
diff --git a/sound/songs/se_curtain.s b/sound/songs/se_curtain.s
deleted file mode 100644
index e15fe4742..000000000
--- a/sound/songs/se_curtain.s
+++ /dev/null
@@ -1,166 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_curtain_grp, voicegroup129
- .equ se_curtain_pri, 5
- .equ se_curtain_rev, reverb_set+50
- .equ se_curtain_mvl, 127
- .equ se_curtain_key, 0
- .equ se_curtain_tbs, 1
- .equ se_curtain_exg, 0
- .equ se_curtain_cmp, 1
-
- .section .rodata
- .global se_curtain
- .align 2
-
-@********************** Track 1 **********************@
-
-se_curtain_1:
- .byte KEYSH , se_curtain_key+0
- .byte TEMPO , 98*se_curtain_tbs/2
- .byte PAN , c_v+0
- .byte VOL , 127*se_curtain_mvl/mxv
- .byte W19
- .byte TEMPO , 112*se_curtain_tbs/2
- .byte VOICE , 38
- .byte MOD , 2
- .byte N04 , Gs1 , v120
- .byte W02
- .byte MOD , 7
- .byte W03
- .byte 1
- .byte N04 , Cn2
- .byte W02
- .byte MOD , 7
- .byte W02
- .byte 1
- .byte N04 , En2
- .byte W03
- .byte MOD , 7
- .byte W02
- .byte 1
- .byte N04 , Gs2
- .byte W03
- .byte MOD , 7
- .byte W02
- .byte 1
- .byte N04 , Cn3
- .byte W02
- .byte MOD , 7
- .byte W03
- .byte 1
- .byte N04 , Ds3
- .byte W02
- .byte MOD , 7
- .byte W03
- .byte 1
- .byte N04 , En3 , v096
- .byte W02
- .byte MOD , 7
- .byte W02
- .byte PAN , c_v-62
- .byte MOD , 1
- .byte N04 , En4 , v032
- .byte W03
- .byte MOD , 7
- .byte W02
- .byte PAN , c_v+63
- .byte MOD , 1
- .byte N04 , En3 , v048
- .byte W03
- .byte MOD , 7
- .byte W02
- .byte PAN , c_v-62
- .byte MOD , 1
- .byte N04 , En4 , v012
- .byte W02
- .byte MOD , 7
- .byte W03
- .byte PAN , c_v+63
- .byte MOD , 1
- .byte N04 , En3 , v032
- .byte W02
- .byte MOD , 7
- .byte W03
- .byte PAN , c_v-62
- .byte MOD , 1
- .byte N04 , En4 , v008
- .byte W02
- .byte MOD , 7
- .byte W02
- .byte 2
- .byte W03
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_curtain_2:
- .byte KEYSH , se_curtain_key+0
- .byte PAN , c_v+0
- .byte VOL , 112*se_curtain_mvl/mxv
- .byte W19
- .byte VOICE , 100
- .byte W12
- .byte W07
- .byte N04 , Cn4 , v112
- .byte W05
- .byte As4
- .byte W07
- .byte Gs5 , v064
- .byte W05
- .byte Ds6 , v048
- .byte W07
- .byte Gn6 , v032
- .byte W05
- .byte W12
- .byte FINE
-
-@********************** Track 3 **********************@
-
-se_curtain_3:
- .byte KEYSH , se_curtain_key+0
- .byte VOICE , 125
- .byte LFOS , 44
- .byte XCMD , xIECV , 18
- .byte xIECV , 16
- .byte BENDR , 12
- .byte MOD , 2
- .byte VOL , 86*se_curtain_mvl/mxv
- .byte BEND , c_v-57
- .byte N09 , Cn5 , v064
- .byte W01
- .byte BEND , c_v-45
- .byte W01
- .byte c_v-30
- .byte W01
- .byte c_v-18
- .byte W01
- .byte c_v-11
- .byte W02
- .byte c_v+0
- .byte W03
- .byte N01 , Gn5 , v096
- .byte W10
- .byte W12
- .byte W12
- .byte W12
- .byte W12
- .byte W12
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_curtain:
- .byte 3 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_curtain_pri @ Priority
- .byte se_curtain_rev @ Reverb.
-
- .word se_curtain_grp
-
- .word se_curtain_1
- .word se_curtain_2
- .word se_curtain_3
-
- .end
diff --git a/sound/songs/se_curtain1.s b/sound/songs/se_curtain1.s
deleted file mode 100644
index 40e97ba13..000000000
--- a/sound/songs/se_curtain1.s
+++ /dev/null
@@ -1,168 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_curtain1_grp, voicegroup129
- .equ se_curtain1_pri, 5
- .equ se_curtain1_rev, reverb_set+50
- .equ se_curtain1_mvl, 127
- .equ se_curtain1_key, 0
- .equ se_curtain1_tbs, 1
- .equ se_curtain1_exg, 0
- .equ se_curtain1_cmp, 1
-
- .section .rodata
- .global se_curtain1
- .align 2
-
-@********************** Track 1 **********************@
-
-se_curtain1_1:
- .byte VOL , 127*se_curtain1_mvl/mxv
- .byte KEYSH , se_curtain1_key+0
- .byte TEMPO , 112*se_curtain1_tbs/2
- .byte VOICE , 38
- .byte MOD , 2
- .byte N04 , Gs1 , v120
- .byte W02
- .byte MOD , 7
- .byte W02
- .byte 1
- .byte N04 , Cn2
- .byte W03
- .byte MOD , 7
- .byte W02
- .byte 1
- .byte N04 , En2
- .byte W03
- .byte MOD , 7
- .byte W02
- .byte 1
- .byte N04 , Gs2
- .byte W02
- .byte MOD , 7
- .byte W03
- .byte 1
- .byte N04 , Cn3
- .byte W02
- .byte MOD , 7
- .byte W03
- .byte 1
- .byte N04 , Ds3
- .byte W02
- .byte MOD , 7
- .byte W02
- .byte 1
- .byte N04 , En3 , v096
- .byte W03
- .byte MOD , 7
- .byte W02
- .byte PAN , c_v-62
- .byte MOD , 1
- .byte N04 , En4 , v032
- .byte W03
- .byte MOD , 7
- .byte W02
- .byte PAN , c_v+63
- .byte MOD , 1
- .byte N04 , En3 , v048
- .byte W02
- .byte MOD , 7
- .byte W03
- .byte PAN , c_v-62
- .byte MOD , 1
- .byte N04 , En4 , v012
- .byte W02
- .byte MOD , 7
- .byte W03
- .byte PAN , c_v+63
- .byte MOD , 1
- .byte N04 , En3 , v032
- .byte W02
- .byte MOD , 7
- .byte W02
- .byte PAN , c_v-62
- .byte MOD , 1
- .byte N04 , En4 , v008
- .byte W03
- .byte MOD , 7
- .byte W02
- .byte 2
- .byte W03
- .byte TEMPO , 98*se_curtain1_tbs/2
- .byte PAN , c_v+0
- .byte VOL , 127*se_curtain1_mvl/mxv
- .byte W12
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_curtain1_2:
- .byte VOL , 127*se_curtain1_mvl/mxv
- .byte KEYSH , se_curtain1_key+0
- .byte VOICE , 100
- .byte W12
- .byte W07
- .byte N04 , Cn4 , v112
- .byte W05
- .byte As4
- .byte W07
- .byte Gs5 , v064
- .byte W05
- .byte Ds6 , v048
- .byte W07
- .byte Gn6 , v032
- .byte W05
- .byte W12
- .byte PAN , c_v+0
- .byte VOL , 112*se_curtain1_mvl/mxv
- .byte W12
- .byte FINE
-
-@********************** Track 3 **********************@
-
-se_curtain1_3:
- .byte KEYSH , se_curtain1_key+0
- .byte W12
- .byte W12
- .byte W12
- .byte W12
- .byte W12
- .byte VOICE , 125
- .byte LFOS , 44
- .byte XCMD , xIECV , 18
- .byte xIECV , 16
- .byte BENDR , 12
- .byte MOD , 2
- .byte VOL , 86*se_curtain1_mvl/mxv
- .byte BEND , c_v-57
- .byte N09 , Cn5 , v064
- .byte W01
- .byte BEND , c_v-45
- .byte W01
- .byte c_v-30
- .byte W01
- .byte c_v-18
- .byte W01
- .byte c_v-11
- .byte W02
- .byte c_v+0
- .byte W03
- .byte N01 , Gn5 , v096
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_curtain1:
- .byte 3 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_curtain1_pri @ Priority
- .byte se_curtain1_rev @ Reverb.
-
- .word se_curtain1_grp
-
- .word se_curtain1_1
- .word se_curtain1_2
- .word se_curtain1_3
-
- .end
diff --git a/sound/songs/se_dansa.s b/sound/songs/se_dansa.s
deleted file mode 100644
index ccd7c4742..000000000
--- a/sound/songs/se_dansa.s
+++ /dev/null
@@ -1,46 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_dansa_grp, voicegroup127
- .equ se_dansa_pri, 4
- .equ se_dansa_rev, reverb_set+50
- .equ se_dansa_mvl, 127
- .equ se_dansa_key, 0
- .equ se_dansa_tbs, 1
- .equ se_dansa_exg, 0
- .equ se_dansa_cmp, 1
-
- .section .rodata
- .global se_dansa
- .align 2
-
-@********************** Track 1 **********************@
-
-se_dansa_1:
- .byte KEYSH , se_dansa_key+0
- .byte TEMPO , 120*se_dansa_tbs/2
- .byte VOICE , 85
- .byte VOL , 100*se_dansa_mvl/mxv
- .byte BEND , c_v-6
- .byte N02 , Ds2 , v052
- .byte W02
- .byte VOICE , 86
- .byte N06 , Gn3 , v092
- .byte W01
- .byte W03
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_dansa:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_dansa_pri @ Priority
- .byte se_dansa_rev @ Reverb.
-
- .word se_dansa_grp
-
- .word se_dansa_1
-
- .end
diff --git a/sound/songs/se_daugi.s b/sound/songs/se_daugi.s
deleted file mode 100644
index 88793920d..000000000
--- a/sound/songs/se_daugi.s
+++ /dev/null
@@ -1,80 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_daugi_grp, voicegroup127
- .equ se_daugi_pri, 5
- .equ se_daugi_rev, reverb_set+50
- .equ se_daugi_mvl, 127
- .equ se_daugi_key, 0
- .equ se_daugi_tbs, 1
- .equ se_daugi_exg, 0
- .equ se_daugi_cmp, 1
-
- .section .rodata
- .global se_daugi
- .align 2
-
-@********************** Track 1 **********************@
-
-se_daugi_1:
- .byte KEYSH , se_daugi_key+0
- .byte TEMPO , 128*se_daugi_tbs/2
- .byte VOICE , 89
- .byte BENDR , 12
- .byte VOL , 90*se_daugi_mvl/mxv
- .byte BEND , c_v-1
- .byte N03 , Fs2 , v127
- .byte W03
- .byte N01 , Ds3
- .byte W03
- .byte VOICE , 6
- .byte N03 , Gs3 , v100
- .byte W03
- .byte W01
- .byte N18 , Fn5 , v072
- .byte W02
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_daugi_2:
- .byte KEYSH , se_daugi_key+0
- .byte VOICE , 14
- .byte VOL , 90*se_daugi_mvl/mxv
- .byte BEND , c_v-8
- .byte N03 , Gs3 , v100
- .byte W03
- .byte W03
- .byte Gs3 , v060
- .byte W03
- .byte W01
- .byte N18 , Fn5
- .byte W02
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_daugi:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_daugi_pri @ Priority
- .byte se_daugi_rev @ Reverb.
-
- .word se_daugi_grp
-
- .word se_daugi_1
- .word se_daugi_2
-
- .end
diff --git a/sound/songs/se_dendou.s b/sound/songs/se_dendou.s
deleted file mode 100644
index 4fda6d338..000000000
--- a/sound/songs/se_dendou.s
+++ /dev/null
@@ -1,197 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_dendou_grp, voicegroup128
- .equ se_dendou_pri, 5
- .equ se_dendou_rev, reverb_set+50
- .equ se_dendou_mvl, 127
- .equ se_dendou_key, 0
- .equ se_dendou_tbs, 1
- .equ se_dendou_exg, 0
- .equ se_dendou_cmp, 1
-
- .section .rodata
- .global se_dendou
- .align 2
-
-@********************** Track 1 **********************@
-
-se_dendou_1:
- .byte KEYSH , se_dendou_key+0
- .byte TEMPO , 150*se_dendou_tbs/2
- .byte VOICE , 60
- .byte BENDR , 12
- .byte VOL , 25*se_dendou_mvl/mxv
- .byte PAN , c_v+0
- .byte BEND , c_v+0
- .byte TIE , Bn2 , v127
- .byte W01
- .byte PAN , c_v+2
- .byte W01
- .byte c_v+5
- .byte W01
- .byte VOL , 34*se_dendou_mvl/mxv
- .byte W01
- .byte PAN , c_v+2
- .byte W02
- .byte c_v+0
- .byte W01
- .byte VOL , 46*se_dendou_mvl/mxv
- .byte PAN , c_v-2
- .byte W01
- .byte c_v-4
- .byte W02
- .byte VOL , 56*se_dendou_mvl/mxv
- .byte PAN , c_v-2
- .byte W02
- .byte c_v+0
- .byte W01
- .byte c_v+2
- .byte W01
- .byte c_v+5
- .byte W01
- .byte VOL , 70*se_dendou_mvl/mxv
- .byte W01
- .byte PAN , c_v+2
- .byte W02
- .byte c_v+0
- .byte W01
- .byte VOL , 80*se_dendou_mvl/mxv
- .byte PAN , c_v-2
- .byte W01
- .byte c_v-4
- .byte W02
- .byte VOL , 88*se_dendou_mvl/mxv
- .byte PAN , c_v-2
- .byte W02
- .byte c_v+0
- .byte W01
- .byte c_v+2
- .byte W01
- .byte VOL , 96*se_dendou_mvl/mxv
- .byte PAN , c_v+5
- .byte W02
- .byte c_v+2
- .byte W02
- .byte VOL , 100*se_dendou_mvl/mxv
- .byte PAN , c_v+0
- .byte W01
- .byte c_v-2
- .byte W01
- .byte c_v-4
- .byte W02
- .byte c_v-2
- .byte W02
-se_dendou_1_000:
- .byte PAN , c_v+0
- .byte W01
- .byte c_v+2
- .byte W01
- .byte c_v+5
- .byte W02
- .byte c_v+2
- .byte W02
- .byte c_v+0
- .byte W01
- .byte c_v-2
- .byte W01
- .byte c_v-4
- .byte W02
- .byte c_v-2
- .byte W02
- .byte PEND
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte PATT
- .word se_dendou_1_000
- .byte VOL , 96*se_dendou_mvl/mxv
- .byte PAN , c_v+0
- .byte W01
- .byte c_v+2
- .byte W01
- .byte c_v+5
- .byte W01
- .byte VOL , 92*se_dendou_mvl/mxv
- .byte W01
- .byte PAN , c_v+2
- .byte W02
- .byte c_v+0
- .byte W01
- .byte VOL , 84*se_dendou_mvl/mxv
- .byte PAN , c_v-2
- .byte W01
- .byte c_v-4
- .byte W02
- .byte VOL , 72*se_dendou_mvl/mxv
- .byte PAN , c_v-2
- .byte W02
- .byte c_v+0
- .byte W01
- .byte c_v+2
- .byte W01
- .byte VOL , 63*se_dendou_mvl/mxv
- .byte PAN , c_v+5
- .byte W02
- .byte VOL , 52*se_dendou_mvl/mxv
- .byte PAN , c_v+2
- .byte W02
- .byte c_v+0
- .byte W01
- .byte VOL , 37*se_dendou_mvl/mxv
- .byte PAN , c_v-2
- .byte W01
- .byte c_v-4
- .byte W01
- .byte VOL , 22*se_dendou_mvl/mxv
- .byte W01
- .byte 12*se_dendou_mvl/mxv
- .byte PAN , c_v-2
- .byte W02
- .byte EOT , Bn2
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_dendou:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_dendou_pri @ Priority
- .byte se_dendou_rev @ Reverb.
-
- .word se_dendou_grp
-
- .word se_dendou_1
-
- .end
diff --git a/sound/songs/se_doku.s b/sound/songs/se_doku.s
deleted file mode 100644
index 90b84b2fb..000000000
--- a/sound/songs/se_doku.s
+++ /dev/null
@@ -1,50 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_doku_grp, voicegroup127
- .equ se_doku_pri, 5
- .equ se_doku_rev, reverb_set+50
- .equ se_doku_mvl, 127
- .equ se_doku_key, 0
- .equ se_doku_tbs, 1
- .equ se_doku_exg, 0
- .equ se_doku_cmp, 1
-
- .section .rodata
- .global se_doku
- .align 2
-
-@********************** Track 1 **********************@
-
-se_doku_1:
- .byte KEYSH , se_doku_key+0
- .byte TEMPO , 150*se_doku_tbs/2
- .byte VOICE , 16
- .byte BENDR , 12
- .byte VOL , 110*se_doku_mvl/mxv
- .byte BEND , c_v+0
- .byte N02 , Ds3 , v100
- .byte W04
- .byte N02
- .byte W05
- .byte N02
- .byte W05
- .byte N02
- .byte W05
- .byte N02
- .byte W05
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_doku:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_doku_pri @ Priority
- .byte se_doku_rev @ Reverb.
-
- .word se_doku_grp
-
- .word se_doku_1
-
- .end
diff --git a/sound/songs/se_door.s b/sound/songs/se_door.s
deleted file mode 100644
index e4b23dddd..000000000
--- a/sound/songs/se_door.s
+++ /dev/null
@@ -1,42 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_door_grp, voicegroup127
- .equ se_door_pri, 5
- .equ se_door_rev, reverb_set+50
- .equ se_door_mvl, 127
- .equ se_door_key, 0
- .equ se_door_tbs, 1
- .equ se_door_exg, 0
- .equ se_door_cmp, 1
-
- .section .rodata
- .global se_door
- .align 2
-
-@********************** Track 1 **********************@
-
-se_door_1:
- .byte KEYSH , se_door_key+0
- .byte TEMPO , 110*se_door_tbs/2
- .byte VOICE , 127
- .byte VOL , 80*se_door_mvl/mxv
- .byte N03 , Dn3 , v127
- .byte W06
- .byte N12 , Fs3
- .byte W18
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_door:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_door_pri @ Priority
- .byte se_door_rev @ Reverb.
-
- .word se_door_grp
-
- .word se_door_1
-
- .end
diff --git a/sound/songs/se_e.s b/sound/songs/se_e.s
deleted file mode 100644
index aa9b91844..000000000
--- a/sound/songs/se_e.s
+++ /dev/null
@@ -1,45 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_e_grp, voicegroup128
- .equ se_e_pri, 4
- .equ se_e_rev, reverb_set+50
- .equ se_e_mvl, 127
- .equ se_e_key, 0
- .equ se_e_tbs, 1
- .equ se_e_exg, 0
- .equ se_e_cmp, 1
-
- .section .rodata
- .global se_e
- .align 2
-
-@********************** Track 1 **********************@
-
-se_e_1:
- .byte KEYSH , se_e_key+0
- .byte TEMPO , 240*se_e_tbs/2
- .byte VOICE , 125
- .byte BENDR , 12
- .byte VOL , 120*se_e_mvl/mxv
- .byte BEND , c_v+0
- .byte N72 , Cn3 , v127
- .byte W24
- .byte W24
- .byte W24
- .byte W24
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_e:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_e_pri @ Priority
- .byte se_e_rev @ Reverb.
-
- .word se_e_grp
-
- .word se_e_1
-
- .end
diff --git a/sound/songs/se_elebeta.s b/sound/songs/se_elebeta.s
deleted file mode 100644
index ad19476d5..000000000
--- a/sound/songs/se_elebeta.s
+++ /dev/null
@@ -1,71 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_elebeta_grp, voicegroup128
- .equ se_elebeta_pri, 4
- .equ se_elebeta_rev, reverb_set+50
- .equ se_elebeta_mvl, 127
- .equ se_elebeta_key, 0
- .equ se_elebeta_tbs, 1
- .equ se_elebeta_exg, 0
- .equ se_elebeta_cmp, 1
-
- .section .rodata
- .global se_elebeta
- .align 2
-
-@********************** Track 1 **********************@
-
-se_elebeta_1:
- .byte KEYSH , se_elebeta_key+0
- .byte TEMPO , 150*se_elebeta_tbs/2
- .byte VOICE , 38
- .byte BENDR , 2
- .byte VOL , 100*se_elebeta_mvl/mxv
- .byte BEND , c_v+0
- .byte TIE , Fs4 , v080
- .byte W24
- .byte W24
- .byte W24
- .byte W24
- .byte W24
- .byte W24
- .byte W24
- .byte W24
- .byte W24
- .byte EOT
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_elebeta_2:
- .byte KEYSH , se_elebeta_key+0
- .byte VOICE , 27
- .byte VOL , 100*se_elebeta_mvl/mxv
- .byte TIE , Fn3 , v032
- .byte W24
- .byte W24
- .byte W24
- .byte W24
- .byte W24
- .byte W24
- .byte W24
- .byte W24
- .byte W24
- .byte EOT
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_elebeta:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_elebeta_pri @ Priority
- .byte se_elebeta_rev @ Reverb.
-
- .word se_elebeta_grp
-
- .word se_elebeta_1
- .word se_elebeta_2
-
- .end
diff --git a/sound/songs/se_esuka.s b/sound/songs/se_esuka.s
deleted file mode 100644
index 88e88fcd3..000000000
--- a/sound/songs/se_esuka.s
+++ /dev/null
@@ -1,93 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_esuka_grp, voicegroup128
- .equ se_esuka_pri, 4
- .equ se_esuka_rev, reverb_set+50
- .equ se_esuka_mvl, 127
- .equ se_esuka_key, 0
- .equ se_esuka_tbs, 1
- .equ se_esuka_exg, 0
- .equ se_esuka_cmp, 1
-
- .section .rodata
- .global se_esuka
- .align 2
-
-@********************** Track 1 **********************@
-
-se_esuka_1:
- .byte KEYSH , se_esuka_key+0
- .byte TEMPO , 150*se_esuka_tbs/2
- .byte VOICE , 38
- .byte BENDR , 2
- .byte VOL , 51*se_esuka_mvl/mxv
- .byte BEND , c_v-32
- .byte TIE , En5 , v080
- .byte W01
- .byte BEND , c_v-26
- .byte W01
- .byte VOL , 56*se_esuka_mvl/mxv
- .byte W01
- .byte BEND , c_v-21
- .byte W01
- .byte VOL , 62*se_esuka_mvl/mxv
- .byte W02
- .byte BEND , c_v-15
- .byte W01
- .byte VOL , 69*se_esuka_mvl/mxv
- .byte W01
- .byte BEND , c_v-7
- .byte W01
- .byte VOL , 75*se_esuka_mvl/mxv
- .byte W01
- .byte BEND , c_v+0
- .byte W02
- .byte VOL , 85*se_esuka_mvl/mxv
- .byte W02
- .byte 92*se_esuka_mvl/mxv
- .byte W02
- .byte 100*se_esuka_mvl/mxv
- .byte W08
- .byte W24
- .byte W24
- .byte W24
- .byte W03
- .byte 96*se_esuka_mvl/mxv
- .byte W03
- .byte 88*se_esuka_mvl/mxv
- .byte W03
- .byte 81*se_esuka_mvl/mxv
- .byte BEND , c_v-5
- .byte W03
- .byte VOL , 74*se_esuka_mvl/mxv
- .byte BEND , c_v-8
- .byte W02
- .byte VOL , 62*se_esuka_mvl/mxv
- .byte BEND , c_v-12
- .byte W02
- .byte VOL , 49*se_esuka_mvl/mxv
- .byte BEND , c_v-21
- .byte W03
- .byte VOL , 39*se_esuka_mvl/mxv
- .byte BEND , c_v-26
- .byte W02
- .byte VOL , 25*se_esuka_mvl/mxv
- .byte BEND , c_v-32
- .byte W03
- .byte EOT
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_esuka:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_esuka_pri @ Priority
- .byte se_esuka_rev @ Reverb.
-
- .word se_esuka_grp
-
- .word se_esuka_1
-
- .end
diff --git a/sound/songs/se_exp.s b/sound/songs/se_exp.s
deleted file mode 100644
index f58767b8f..000000000
--- a/sound/songs/se_exp.s
+++ /dev/null
@@ -1,333 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_exp_grp, voicegroup127
- .equ se_exp_pri, 5
- .equ se_exp_rev, reverb_set+50
- .equ se_exp_mvl, 127
- .equ se_exp_key, 0
- .equ se_exp_tbs, 1
- .equ se_exp_exg, 0
- .equ se_exp_cmp, 1
-
- .section .rodata
- .global se_exp
- .align 2
-
-@********************** Track 1 **********************@
-
-se_exp_1:
- .byte KEYSH , se_exp_key+0
- .byte TEMPO , 240*se_exp_tbs/2
- .byte VOICE , 19
- .byte BENDR , 26
- .byte VOL , 80*se_exp_mvl/mxv
- .byte PAN , c_v+0
- .byte BEND , c_v+0
- .byte TIE , Fn3 , v112
- .byte W01
- .byte BEND , c_v+8
- .byte W01
- .byte c_v+16
- .byte W01
- .byte c_v+22
- .byte W01
- .byte c_v+31
- .byte W02
- .byte c_v+38
- .byte W01
- .byte VOL , 71*se_exp_mvl/mxv
- .byte BEND , c_v+8
- .byte W01
- .byte c_v+16
- .byte W01
- .byte c_v+22
- .byte W01
- .byte c_v+31
- .byte W02
- .byte c_v+38
- .byte W01
- .byte c_v+15
- .byte W01
- .byte VOL , 50*se_exp_mvl/mxv
- .byte BEND , c_v+1
- .byte W01
- .byte c_v+0
- .byte W01
- .byte c_v+0
- .byte W02
- .byte c_v+3
- .byte W01
- .byte VOL , 51*se_exp_mvl/mxv
- .byte BEND , c_v+3
- .byte W01
- .byte c_v+2
- .byte W01
- .byte c_v+5
- .byte W01
- .byte c_v+4
- .byte W02
- .byte VOL , 52*se_exp_mvl/mxv
- .byte BEND , c_v+4
- .byte W01
- .byte c_v+7
- .byte W01
- .byte c_v+6
- .byte W01
- .byte c_v+5
- .byte W01
- .byte VOL , 52*se_exp_mvl/mxv
- .byte BEND , c_v+8
- .byte W02
- .byte c_v+8
- .byte W01
- .byte c_v+7
- .byte W01
- .byte c_v+10
- .byte W01
- .byte VOL , 54*se_exp_mvl/mxv
- .byte BEND , c_v+10
- .byte W01
- .byte c_v+9
- .byte W02
- .byte c_v+12
- .byte W01
- .byte c_v+12
- .byte W01
- .byte VOL , 55*se_exp_mvl/mxv
- .byte BEND , c_v+11
- .byte W01
- .byte c_v+14
- .byte W01
- .byte c_v+13
- .byte W02
- .byte c_v+12
- .byte W01
- .byte VOL , 56*se_exp_mvl/mxv
- .byte BEND , c_v+16
- .byte W01
- .byte c_v+15
- .byte W01
- .byte c_v+14
- .byte W01
- .byte c_v+17
- .byte W02
- .byte VOL , 57*se_exp_mvl/mxv
- .byte BEND , c_v+17
- .byte W01
- .byte c_v+16
- .byte W01
- .byte c_v+20
- .byte W01
- .byte c_v+19
- .byte W01
- .byte VOL , 57*se_exp_mvl/mxv
- .byte BEND , c_v+19
- .byte W02
- .byte c_v+21
- .byte W01
- .byte c_v+20
- .byte W01
- .byte c_v+20
- .byte W01
- .byte VOL , 59*se_exp_mvl/mxv
- .byte BEND , c_v+23
- .byte W01
- .byte c_v+22
- .byte W02
- .byte c_v+21
- .byte W01
- .byte c_v+25
- .byte W01
- .byte VOL , 60*se_exp_mvl/mxv
- .byte BEND , c_v+24
- .byte W01
- .byte c_v+23
- .byte W01
- .byte c_v+26
- .byte W02
- .byte c_v+25
- .byte W01
- .byte VOL , 61*se_exp_mvl/mxv
- .byte BEND , c_v+24
- .byte W01
- .byte c_v+28
- .byte W01
- .byte c_v+27
- .byte W01
- .byte c_v+26
- .byte W02
- .byte VOL , 62*se_exp_mvl/mxv
- .byte BEND , c_v+30
- .byte W01
- .byte c_v+29
- .byte W01
- .byte c_v+28
- .byte W01
- .byte c_v+32
- .byte W01
- .byte VOL , 62*se_exp_mvl/mxv
- .byte BEND , c_v+30
- .byte W02
- .byte c_v+30
- .byte W01
- .byte c_v+33
- .byte W01
- .byte c_v+32
- .byte W01
- .byte VOL , 64*se_exp_mvl/mxv
- .byte BEND , c_v+31
- .byte W01
- .byte c_v+35
- .byte W02
- .byte c_v+34
- .byte W01
- .byte c_v+33
- .byte W01
- .byte VOL , 65*se_exp_mvl/mxv
- .byte BEND , c_v+37
- .byte W01
- .byte c_v+36
- .byte W01
- .byte c_v+35
- .byte W02
- .byte c_v+39
- .byte W01
- .byte VOL , 66*se_exp_mvl/mxv
- .byte BEND , c_v+38
- .byte W01
- .byte c_v+37
- .byte W01
- .byte c_v+40
- .byte W01
- .byte c_v+39
- .byte W02
- .byte VOL , 67*se_exp_mvl/mxv
- .byte BEND , c_v+38
- .byte W01
- .byte c_v+42
- .byte W01
- .byte c_v+41
- .byte W01
- .byte c_v+40
- .byte W01
- .byte VOL , 68*se_exp_mvl/mxv
- .byte BEND , c_v+44
- .byte W02
- .byte c_v+43
- .byte W01
- .byte c_v+42
- .byte W01
- .byte c_v+46
- .byte W01
- .byte VOL , 69*se_exp_mvl/mxv
- .byte BEND , c_v+45
- .byte W01
- .byte c_v+44
- .byte W02
- .byte c_v+48
- .byte W01
- .byte c_v+46
- .byte W01
- .byte VOL , 70*se_exp_mvl/mxv
- .byte BEND , c_v+45
- .byte W01
- .byte c_v+49
- .byte W01
- .byte c_v+48
- .byte W02
- .byte c_v+48
- .byte W01
- .byte VOL , 71*se_exp_mvl/mxv
- .byte BEND , c_v+51
- .byte W01
- .byte c_v+50
- .byte W01
- .byte c_v+49
- .byte W01
- .byte c_v+53
- .byte W02
- .byte VOL , 72*se_exp_mvl/mxv
- .byte BEND , c_v+52
- .byte W01
- .byte c_v+51
- .byte W01
- .byte c_v+55
- .byte W01
- .byte c_v+53
- .byte W01
- .byte VOL , 73*se_exp_mvl/mxv
- .byte BEND , c_v+52
- .byte W02
- .byte c_v+56
- .byte W01
- .byte c_v+55
- .byte W01
- .byte c_v+54
- .byte W01
- .byte VOL , 74*se_exp_mvl/mxv
- .byte BEND , c_v+58
- .byte W01
- .byte c_v+57
- .byte W02
- .byte c_v+56
- .byte W01
- .byte c_v+59
- .byte W01
- .byte VOL , 75*se_exp_mvl/mxv
- .byte BEND , c_v+59
- .byte W01
- .byte c_v+58
- .byte W01
- .byte c_v+62
- .byte W02
- .byte c_v+61
- .byte W01
- .byte VOL , 76*se_exp_mvl/mxv
- .byte BEND , c_v+60
- .byte W01
- .byte c_v+63
- .byte W01
- .byte c_v+62
- .byte W01
- .byte c_v+61
- .byte W02
- .byte VOL , 77*se_exp_mvl/mxv
- .byte BEND , c_v+63
- .byte W01
- .byte c_v+62
- .byte W01
- .byte c_v+61
- .byte W01
- .byte c_v+63
- .byte W01
- .byte VOL , 78*se_exp_mvl/mxv
- .byte BEND , c_v+62
- .byte W02
- .byte c_v+61
- .byte W01
- .byte c_v+63
- .byte W01
- .byte c_v+62
- .byte W01
- .byte VOL , 79*se_exp_mvl/mxv
- .byte BEND , c_v+61
- .byte W01
- .byte c_v+63
- .byte W02
- .byte EOT
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_exp:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_exp_pri @ Priority
- .byte se_exp_rev @ Reverb.
-
- .word se_exp_grp
-
- .word se_exp_1
-
- .end
diff --git a/sound/songs/se_expmax.s b/sound/songs/se_expmax.s
deleted file mode 100644
index a3a8478b2..000000000
--- a/sound/songs/se_expmax.s
+++ /dev/null
@@ -1,76 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_expmax_grp, voicegroup128
- .equ se_expmax_pri, 5
- .equ se_expmax_rev, reverb_set+50
- .equ se_expmax_mvl, 127
- .equ se_expmax_key, 0
- .equ se_expmax_tbs, 1
- .equ se_expmax_exg, 0
- .equ se_expmax_cmp, 1
-
- .section .rodata
- .global se_expmax
- .align 2
-
-@********************** Track 1 **********************@
-
-se_expmax_1:
- .byte KEYSH , se_expmax_key+0
- .byte TEMPO , 150*se_expmax_tbs/2
- .byte VOICE , 46
- .byte VOL , 94*se_expmax_mvl/mxv
- .byte BENDR , 2
- .byte LFOS , 40
- .byte PAN , c_v+0
- .byte BEND , c_v+15
- .byte N06 , An5 , v112
- .byte W01
- .byte N15 , En6 , v104
- .byte W02
- .byte W01
- .byte MOD , 5
- .byte W02
- .byte W03
- .byte W03
- .byte W03
- .byte W01
- .byte 0
- .byte W02
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_expmax_2:
- .byte KEYSH , se_expmax_key+0
- .byte VOICE , 53
- .byte BENDR , 2
- .byte VOL , 43*se_expmax_mvl/mxv
- .byte PAN , c_v+0
- .byte BEND , c_v+15
- .byte N06 , An4 , v108
- .byte W01
- .byte N12 , Cs6 , v104
- .byte W02
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_expmax:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_expmax_pri @ Priority
- .byte se_expmax_rev @ Reverb.
-
- .word se_expmax_grp
-
- .word se_expmax_1
- .word se_expmax_2
-
- .end
diff --git a/sound/songs/se_fu_zaku.s b/sound/songs/se_fu_zaku.s
deleted file mode 100644
index b494653ee..000000000
--- a/sound/songs/se_fu_zaku.s
+++ /dev/null
@@ -1,54 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_fu_zaku_grp, voicegroup127
- .equ se_fu_zaku_pri, 4
- .equ se_fu_zaku_rev, reverb_set+50
- .equ se_fu_zaku_mvl, 127
- .equ se_fu_zaku_key, 0
- .equ se_fu_zaku_tbs, 1
- .equ se_fu_zaku_exg, 0
- .equ se_fu_zaku_cmp, 1
-
- .section .rodata
- .global se_fu_zaku
- .align 2
-
-@********************** Track 1 **********************@
-
-se_fu_zaku_1:
- .byte KEYSH , se_fu_zaku_key+0
- .byte TEMPO , 150*se_fu_zaku_tbs/2
- .byte VOICE , 126
- .byte VOL , 120*se_fu_zaku_mvl/mxv
- .byte N01 , Cn3 , v068
- .byte W01
- .byte En3 , v064
- .byte W01
- .byte Gn3
- .byte W03
- .byte N02 , An2 , v048
- .byte W08
- .byte N01 , Cn3 , v068
- .byte W01
- .byte En3 , v064
- .byte W01
- .byte Gn3
- .byte W03
- .byte N02 , An2 , v048
- .byte W06
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_fu_zaku:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_fu_zaku_pri @ Priority
- .byte se_fu_zaku_rev @ Reverb.
-
- .word se_fu_zaku_grp
-
- .word se_fu_zaku_1
-
- .end
diff --git a/sound/songs/se_fu_zaku2.s b/sound/songs/se_fu_zaku2.s
deleted file mode 100644
index 0ef523654..000000000
--- a/sound/songs/se_fu_zaku2.s
+++ /dev/null
@@ -1,48 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_fu_zaku2_grp, voicegroup127
- .equ se_fu_zaku2_pri, 4
- .equ se_fu_zaku2_rev, reverb_set+50
- .equ se_fu_zaku2_mvl, 127
- .equ se_fu_zaku2_key, 0
- .equ se_fu_zaku2_tbs, 1
- .equ se_fu_zaku2_exg, 0
- .equ se_fu_zaku2_cmp, 1
-
- .section .rodata
- .global se_fu_zaku2
- .align 2
-
-@********************** Track 1 **********************@
-
-se_fu_zaku2_1:
- .byte KEYSH , se_fu_zaku2_key+0
- .byte TEMPO , 150*se_fu_zaku2_tbs/2
- .byte VOICE , 126
- .byte VOL , 110*se_fu_zaku2_mvl/mxv
- .byte N01 , An2 , v112
- .byte W01
- .byte En3
- .byte W01
- .byte Gn3
- .byte W01
- .byte W02
- .byte N02 , Cn3 , v092
- .byte W01
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_fu_zaku2:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_fu_zaku2_pri @ Priority
- .byte se_fu_zaku2_rev @ Reverb.
-
- .word se_fu_zaku2_grp
-
- .word se_fu_zaku2_1
-
- .end
diff --git a/sound/songs/se_fu_zuzuzu.s b/sound/songs/se_fu_zuzuzu.s
deleted file mode 100644
index b0df814d0..000000000
--- a/sound/songs/se_fu_zuzuzu.s
+++ /dev/null
@@ -1,73 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_fu_zuzuzu_grp, voicegroup127
- .equ se_fu_zuzuzu_pri, 4
- .equ se_fu_zuzuzu_rev, reverb_set+50
- .equ se_fu_zuzuzu_mvl, 127
- .equ se_fu_zuzuzu_key, 0
- .equ se_fu_zuzuzu_tbs, 1
- .equ se_fu_zuzuzu_exg, 0
- .equ se_fu_zuzuzu_cmp, 1
-
- .section .rodata
- .global se_fu_zuzuzu
- .align 2
-
-@********************** Track 1 **********************@
-
-se_fu_zuzuzu_1:
- .byte KEYSH , se_fu_zuzuzu_key+0
- .byte TEMPO , 120*se_fu_zuzuzu_tbs/2
- .byte VOICE , 126
- .byte VOL , 127*se_fu_zuzuzu_mvl/mxv
- .byte N08 , An2 , v112
- .byte W03
- .byte W03
- .byte W02
- .byte N01 , Gs2
- .byte W01
- .byte W01
- .byte N08 , An2 , v096
- .byte W02
- .byte W03
- .byte W03
- .byte W01
- .byte N01 , Gs2 , v092
- .byte W01
- .byte N08 , An2 , v080
- .byte W01
- .byte W03
- .byte W03
- .byte W02
- .byte N01 , Gs2 , v076
- .byte W01
- .byte N08 , An2 , v064
- .byte W03
- .byte W03
- .byte W03
- .byte N01 , Gs2 , v060
- .byte W02
- .byte N09 , An2 , v048
- .byte W01
- .byte W03
- .byte W03
- .byte W02
- .byte N01 , Gs2 , v040
- .byte W01
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_fu_zuzuzu:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_fu_zuzuzu_pri @ Priority
- .byte se_fu_zuzuzu_rev @ Reverb.
-
- .word se_fu_zuzuzu_grp
-
- .word se_fu_zuzuzu_1
-
- .end
diff --git a/sound/songs/se_fuusen1.s b/sound/songs/se_fuusen1.s
deleted file mode 100644
index 458b010c6..000000000
--- a/sound/songs/se_fuusen1.s
+++ /dev/null
@@ -1,53 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_fuusen1_grp, voicegroup128
- .equ se_fuusen1_pri, 4
- .equ se_fuusen1_rev, reverb_set+50
- .equ se_fuusen1_mvl, 127
- .equ se_fuusen1_key, 0
- .equ se_fuusen1_tbs, 1
- .equ se_fuusen1_exg, 0
- .equ se_fuusen1_cmp, 1
-
- .section .rodata
- .global se_fuusen1
- .align 2
-
-@********************** Track 1 **********************@
-
-se_fuusen1_1:
- .byte KEYSH , se_fuusen1_key+0
- .byte TEMPO , 240*se_fuusen1_tbs/2
- .byte VOICE , 2
- .byte BENDR , 12
- .byte VOL , 105*se_fuusen1_mvl/mxv
- .byte BEND , c_v+0
- .byte N06 , Cn4 , v127
- .byte W06
- .byte VOICE , 23
- .byte N02 , Cn3 , v112
- .byte W07
- .byte N01 , Cn4
- .byte W05
- .byte Cn3 , v100
- .byte W02
- .byte Gn3 , v092
- .byte W02
- .byte Cn3 , v072
- .byte W02
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_fuusen1:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_fuusen1_pri @ Priority
- .byte se_fuusen1_rev @ Reverb.
-
- .word se_fuusen1_grp
-
- .word se_fuusen1_1
-
- .end
diff --git a/sound/songs/se_fuusen2.s b/sound/songs/se_fuusen2.s
deleted file mode 100644
index 065b91adf..000000000
--- a/sound/songs/se_fuusen2.s
+++ /dev/null
@@ -1,52 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_fuusen2_grp, voicegroup128
- .equ se_fuusen2_pri, 4
- .equ se_fuusen2_rev, reverb_set+50
- .equ se_fuusen2_mvl, 127
- .equ se_fuusen2_key, 0
- .equ se_fuusen2_tbs, 1
- .equ se_fuusen2_exg, 0
- .equ se_fuusen2_cmp, 1
-
- .section .rodata
- .global se_fuusen2
- .align 2
-
-@********************** Track 1 **********************@
-
-se_fuusen2_1:
- .byte KEYSH , se_fuusen2_key+0
- .byte TEMPO , 240*se_fuusen2_tbs/2
- .byte VOICE , 2
- .byte BENDR , 12
- .byte VOL , 105*se_fuusen2_mvl/mxv
- .byte BEND , c_v+0
- .byte N03 , Gn4 , v127
- .byte W04
- .byte N01 , Gn4 , v112
- .byte W02
- .byte W02
- .byte Gs3 , v052
- .byte W04
- .byte VOICE , 23
- .byte N02 , Fn3 , v112
- .byte W04
- .byte N01 , Cn4 , v072
- .byte W02
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_fuusen2:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_fuusen2_pri @ Priority
- .byte se_fuusen2_rev @ Reverb.
-
- .word se_fuusen2_grp
-
- .word se_fuusen2_1
-
- .end
diff --git a/sound/songs/se_fuusen3.s b/sound/songs/se_fuusen3.s
deleted file mode 100644
index 0756c9618..000000000
--- a/sound/songs/se_fuusen3.s
+++ /dev/null
@@ -1,60 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_fuusen3_grp, voicegroup128
- .equ se_fuusen3_pri, 4
- .equ se_fuusen3_rev, reverb_set+50
- .equ se_fuusen3_mvl, 127
- .equ se_fuusen3_key, 0
- .equ se_fuusen3_tbs, 1
- .equ se_fuusen3_exg, 0
- .equ se_fuusen3_cmp, 1
-
- .section .rodata
- .global se_fuusen3
- .align 2
-
-@********************** Track 1 **********************@
-
-se_fuusen3_1:
- .byte KEYSH , se_fuusen3_key+0
- .byte TEMPO , 240*se_fuusen3_tbs/2
- .byte VOICE , 2
- .byte BENDR , 12
- .byte VOL , 105*se_fuusen3_mvl/mxv
- .byte BEND , c_v+0
- .byte N02 , Fn3 , v127
- .byte W02
- .byte N01 , Cn4 , v112
- .byte W02
- .byte N03 , Fn3 , v052
- .byte W02
- .byte W02
- .byte VOICE , 23
- .byte N01 , En4 , v092
- .byte W01
- .byte Cn5
- .byte W03
- .byte Gn3
- .byte W01
- .byte En4
- .byte W02
- .byte En3 , v048
- .byte W01
- .byte Bn3
- .byte W02
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_fuusen3:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_fuusen3_pri @ Priority
- .byte se_fuusen3_rev @ Reverb.
-
- .word se_fuusen3_grp
-
- .word se_fuusen3_1
-
- .end
diff --git a/sound/songs/se_hantei1.s b/sound/songs/se_hantei1.s
deleted file mode 100644
index 5ef302ee6..000000000
--- a/sound/songs/se_hantei1.s
+++ /dev/null
@@ -1,58 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_hantei1_grp, voicegroup129
- .equ se_hantei1_pri, 5
- .equ se_hantei1_rev, reverb_set+50
- .equ se_hantei1_mvl, 127
- .equ se_hantei1_key, 0
- .equ se_hantei1_tbs, 1
- .equ se_hantei1_exg, 0
- .equ se_hantei1_cmp, 1
-
- .section .rodata
- .global se_hantei1
- .align 2
-
-@********************** Track 1 **********************@
-
-se_hantei1_1:
- .byte KEYSH , se_hantei1_key+0
- .byte TEMPO , 92*se_hantei1_tbs/2
- .byte VOICE , 116
- .byte VOL , 127*se_hantei1_mvl/mxv
- .byte PAN , c_v-62
- .byte N32 , Fn3 , v127
- .byte W12
- .byte W12
- .byte W12
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_hantei1_2:
- .byte KEYSH , se_hantei1_key+0
- .byte VOICE , 117
- .byte VOL , 127*se_hantei1_mvl/mxv
- .byte PAN , c_v+63
- .byte BEND , c_v+1
- .byte N32 , An3 , v100
- .byte W12
- .byte W12
- .byte W12
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_hantei1:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_hantei1_pri @ Priority
- .byte se_hantei1_rev @ Reverb.
-
- .word se_hantei1_grp
-
- .word se_hantei1_1
- .word se_hantei1_2
-
- .end
diff --git a/sound/songs/se_hantei2.s b/sound/songs/se_hantei2.s
deleted file mode 100644
index a10a14f41..000000000
--- a/sound/songs/se_hantei2.s
+++ /dev/null
@@ -1,70 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_hantei2_grp, voicegroup129
- .equ se_hantei2_pri, 5
- .equ se_hantei2_rev, reverb_set+50
- .equ se_hantei2_mvl, 127
- .equ se_hantei2_key, 0
- .equ se_hantei2_tbs, 1
- .equ se_hantei2_exg, 0
- .equ se_hantei2_cmp, 1
-
- .section .rodata
- .global se_hantei2
- .align 2
-
-@********************** Track 1 **********************@
-
-se_hantei2_1:
- .byte KEYSH , se_hantei2_key+0
- .byte TEMPO , 92*se_hantei2_tbs/2
- .byte VOICE , 116
- .byte VOL , 127*se_hantei2_mvl/mxv
- .byte PAN , c_v-62
- .byte N04 , Fn3 , v127
- .byte W04
- .byte VOICE , 10
- .byte N04 , Cn3
- .byte W05
- .byte VOICE , 116
- .byte N32 , Fn3
- .byte W03
- .byte W12
- .byte W12
- .byte W12
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_hantei2_2:
- .byte KEYSH , se_hantei2_key+0
- .byte VOICE , 117
- .byte VOL , 127*se_hantei2_mvl/mxv
- .byte PAN , c_v+63
- .byte BEND , c_v+1
- .byte N04 , Gn3 , v100
- .byte W04
- .byte Dn3
- .byte W05
- .byte N32 , Gn3
- .byte W03
- .byte W12
- .byte W12
- .byte W12
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_hantei2:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_hantei2_pri @ Priority
- .byte se_hantei2_rev @ Reverb.
-
- .word se_hantei2_grp
-
- .word se_hantei2_1
- .word se_hantei2_2
-
- .end
diff --git a/sound/songs/se_hashi.s b/sound/songs/se_hashi.s
deleted file mode 100644
index ba2ed43ce..000000000
--- a/sound/songs/se_hashi.s
+++ /dev/null
@@ -1,46 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_hashi_grp, voicegroup128
- .equ se_hashi_pri, 4
- .equ se_hashi_rev, reverb_set+50
- .equ se_hashi_mvl, 127
- .equ se_hashi_key, 0
- .equ se_hashi_tbs, 1
- .equ se_hashi_exg, 0
- .equ se_hashi_cmp, 1
-
- .section .rodata
- .global se_hashi
- .align 2
-
-@********************** Track 1 **********************@
-
-se_hashi_1:
- .byte KEYSH , se_hashi_key+0
- .byte TEMPO , 150*se_hashi_tbs/2
- .byte VOICE , 26
- .byte BENDR , 12
- .byte PAN , c_v+0
- .byte VOL , 95*se_hashi_mvl/mxv
- .byte BEND , c_v+0
- .byte N01 , Cn3 , v127
- .byte W03
- .byte W03
- .byte Gn3
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_hashi:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_hashi_pri @ Priority
- .byte se_hashi_rev @ Reverb.
-
- .word se_hashi_grp
-
- .word se_hashi_1
-
- .end
diff --git a/sound/songs/se_hazure.s b/sound/songs/se_hazure.s
deleted file mode 100644
index 9bd29f6b5..000000000
--- a/sound/songs/se_hazure.s
+++ /dev/null
@@ -1,55 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_hazure_grp, voicegroup127
- .equ se_hazure_pri, 4
- .equ se_hazure_rev, reverb_set+50
- .equ se_hazure_mvl, 127
- .equ se_hazure_key, 0
- .equ se_hazure_tbs, 1
- .equ se_hazure_exg, 0
- .equ se_hazure_cmp, 1
-
- .section .rodata
- .global se_hazure
- .align 2
-
-@********************** Track 1 **********************@
-
-se_hazure_1:
- .byte KEYSH , se_hazure_key+0
- .byte TEMPO , 240*se_hazure_tbs/2
- .byte VOICE , 92
- .byte BENDR , 12
- .byte VOL , 120*se_hazure_mvl/mxv
- .byte BEND , c_v+0
- .byte N03 , Cn2 , v127
- .byte W03
- .byte Cn2 , v020
- .byte W03
- .byte N18 , Cn2 , v127
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte N09 , Cn2 , v020
- .byte W03
- .byte W03
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_hazure:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_hazure_pri @ Priority
- .byte se_hazure_rev @ Reverb.
-
- .word se_hazure_grp
-
- .word se_hazure_1
-
- .end
diff --git a/sound/songs/se_hi_turun.s b/sound/songs/se_hi_turun.s
deleted file mode 100644
index ab51f35cd..000000000
--- a/sound/songs/se_hi_turun.s
+++ /dev/null
@@ -1,62 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_hi_turun_grp, voicegroup128
- .equ se_hi_turun_pri, 4
- .equ se_hi_turun_rev, reverb_set+50
- .equ se_hi_turun_mvl, 127
- .equ se_hi_turun_key, 0
- .equ se_hi_turun_tbs, 1
- .equ se_hi_turun_exg, 0
- .equ se_hi_turun_cmp, 1
-
- .section .rodata
- .global se_hi_turun
- .align 2
-
-@********************** Track 1 **********************@
-
-se_hi_turun_1:
- .byte KEYSH , se_hi_turun_key+0
- .byte TEMPO , 220*se_hi_turun_tbs/2
- .byte VOICE , 9
- .byte VOL , 90*se_hi_turun_mvl/mxv
- .byte BEND , c_v+0
- .byte N03 , Gn4 , v112
- .byte W03
- .byte Dn4
- .byte W03
- .byte Gn4
- .byte W03
- .byte N21 , Gn5
- .byte W03
- .byte W03
- .byte VOL , 81*se_hi_turun_mvl/mxv
- .byte BEND , c_v+6
- .byte W03
- .byte VOL , 72*se_hi_turun_mvl/mxv
- .byte BEND , c_v+20
- .byte W03
- .byte VOL , 46*se_hi_turun_mvl/mxv
- .byte BEND , c_v+37
- .byte W03
- .byte VOL , 24*se_hi_turun_mvl/mxv
- .byte BEND , c_v+63
- .byte W03
- .byte VOL , 7*se_hi_turun_mvl/mxv
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_hi_turun:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_hi_turun_pri @ Priority
- .byte se_hi_turun_rev @ Reverb.
-
- .word se_hi_turun_grp
-
- .word se_hi_turun_1
-
- .end
diff --git a/sound/songs/se_hinsi.s b/sound/songs/se_hinsi.s
deleted file mode 100644
index 3c16f2f1b..000000000
--- a/sound/songs/se_hinsi.s
+++ /dev/null
@@ -1,50 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_hinsi_grp, voicegroup127
- .equ se_hinsi_pri, 3
- .equ se_hinsi_rev, reverb_set+50
- .equ se_hinsi_mvl, 127
- .equ se_hinsi_key, 0
- .equ se_hinsi_tbs, 1
- .equ se_hinsi_exg, 0
- .equ se_hinsi_cmp, 1
-
- .section .rodata
- .global se_hinsi
- .align 2
-
-@********************** Track 1 **********************@
-
-se_hinsi_1:
- .byte KEYSH , se_hinsi_key+0
-se_hinsi_1_B1:
- .byte TEMPO , 150*se_hinsi_tbs/2
- .byte VOICE , 15
- .byte XCMD , xIECV , 10
- .byte xIECL , 8
- .byte VOL , 100*se_hinsi_mvl/mxv
- .byte BEND , c_v+17
- .byte N12 , Dn4 , v080
- .byte W12
- .byte BEND , c_v+31
- .byte N12 , An3
- .byte W12
- .byte W12
- .byte GOTO
- .word se_hinsi_1_B1
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_hinsi:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_hinsi_pri @ Priority
- .byte se_hinsi_rev @ Reverb.
-
- .word se_hinsi_grp
-
- .word se_hinsi_1
-
- .end
diff --git a/sound/songs/se_i.s b/sound/songs/se_i.s
deleted file mode 100644
index fdb4ff5c4..000000000
--- a/sound/songs/se_i.s
+++ /dev/null
@@ -1,45 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_i_grp, voicegroup128
- .equ se_i_pri, 4
- .equ se_i_rev, reverb_set+50
- .equ se_i_mvl, 127
- .equ se_i_key, 0
- .equ se_i_tbs, 1
- .equ se_i_exg, 0
- .equ se_i_cmp, 1
-
- .section .rodata
- .global se_i
- .align 2
-
-@********************** Track 1 **********************@
-
-se_i_1:
- .byte KEYSH , se_i_key+0
- .byte TEMPO , 240*se_i_tbs/2
- .byte VOICE , 123
- .byte BENDR , 12
- .byte VOL , 120*se_i_mvl/mxv
- .byte BEND , c_v+0
- .byte N72 , Cn3 , v127
- .byte W24
- .byte W24
- .byte W24
- .byte W24
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_i:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_i_pri @ Priority
- .byte se_i_rev @ Reverb.
-
- .word se_i_grp
-
- .word se_i_1
-
- .end
diff --git a/sound/songs/se_jido_doa.s b/sound/songs/se_jido_doa.s
deleted file mode 100644
index 60a1e4a47..000000000
--- a/sound/songs/se_jido_doa.s
+++ /dev/null
@@ -1,41 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_jido_doa_grp, voicegroup128
- .equ se_jido_doa_pri, 4
- .equ se_jido_doa_rev, reverb_set+50
- .equ se_jido_doa_mvl, 127
- .equ se_jido_doa_key, 0
- .equ se_jido_doa_tbs, 1
- .equ se_jido_doa_exg, 0
- .equ se_jido_doa_cmp, 1
-
- .section .rodata
- .global se_jido_doa
- .align 2
-
-@********************** Track 1 **********************@
-
-se_jido_doa_1:
- .byte KEYSH , se_jido_doa_key+0
- .byte TEMPO , 120*se_jido_doa_tbs/2
- .byte VOICE , 1
- .byte VOL , 95*se_jido_doa_mvl/mxv
- .byte N12 , Cn2 , v127
- .byte W12
- .byte VOL , 0*se_jido_doa_mvl/mxv
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_jido_doa:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_jido_doa_pri @ Priority
- .byte se_jido_doa_rev @ Reverb.
-
- .word se_jido_doa_grp
-
- .word se_jido_doa_1
-
- .end
diff --git a/sound/songs/se_jihanki.s b/sound/songs/se_jihanki.s
deleted file mode 100644
index 931dd5b64..000000000
--- a/sound/songs/se_jihanki.s
+++ /dev/null
@@ -1,46 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_jihanki_grp, voicegroup128
- .equ se_jihanki_pri, 4
- .equ se_jihanki_rev, reverb_set+50
- .equ se_jihanki_mvl, 127
- .equ se_jihanki_key, 0
- .equ se_jihanki_tbs, 1
- .equ se_jihanki_exg, 0
- .equ se_jihanki_cmp, 1
-
- .section .rodata
- .global se_jihanki
- .align 2
-
-@********************** Track 1 **********************@
-
-se_jihanki_1:
- .byte KEYSH , se_jihanki_key+0
- .byte TEMPO , 150*se_jihanki_tbs/2
- .byte VOICE , 8
- .byte VOL , 110*se_jihanki_mvl/mxv
- .byte BEND , c_v+0
- .byte N01 , Cn4 , v092
- .byte W03
- .byte Cn5
- .byte W03
- .byte W03
- .byte N02 , En3 , v127
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_jihanki:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_jihanki_pri @ Priority
- .byte se_jihanki_rev @ Reverb.
-
- .word se_jihanki_grp
-
- .word se_jihanki_1
-
- .end
diff --git a/sound/songs/se_jite_pyoko.s b/sound/songs/se_jite_pyoko.s
deleted file mode 100644
index 36dbcf83b..000000000
--- a/sound/songs/se_jite_pyoko.s
+++ /dev/null
@@ -1,45 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_jite_pyoko_grp, voicegroup127
- .equ se_jite_pyoko_pri, 4
- .equ se_jite_pyoko_rev, reverb_set+50
- .equ se_jite_pyoko_mvl, 127
- .equ se_jite_pyoko_key, 0
- .equ se_jite_pyoko_tbs, 1
- .equ se_jite_pyoko_exg, 0
- .equ se_jite_pyoko_cmp, 1
-
- .section .rodata
- .global se_jite_pyoko
- .align 2
-
-@********************** Track 1 **********************@
-
-se_jite_pyoko_1:
- .byte KEYSH , se_jite_pyoko_key+0
- .byte TEMPO , 180*se_jite_pyoko_tbs/2
- .byte VOICE , 85
- .byte VOL , 90*se_jite_pyoko_mvl/mxv
- .byte BEND , c_v-6
- .byte N02 , Cn3 , v080
- .byte W02
- .byte VOICE , 86
- .byte N03 , Cn4 , v127
- .byte W01
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_jite_pyoko:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_jite_pyoko_pri @ Priority
- .byte se_jite_pyoko_rev @ Reverb.
-
- .word se_jite_pyoko_grp
-
- .word se_jite_pyoko_1
-
- .end
diff --git a/sound/songs/se_jitensya.s b/sound/songs/se_jitensya.s
deleted file mode 100644
index da5d37007..000000000
--- a/sound/songs/se_jitensya.s
+++ /dev/null
@@ -1,40 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_jitensya_grp, voicegroup128
- .equ se_jitensya_pri, 4
- .equ se_jitensya_rev, reverb_set+50
- .equ se_jitensya_mvl, 127
- .equ se_jitensya_key, 0
- .equ se_jitensya_tbs, 1
- .equ se_jitensya_exg, 0
- .equ se_jitensya_cmp, 1
-
- .section .rodata
- .global se_jitensya
- .align 2
-
-@********************** Track 1 **********************@
-
-se_jitensya_1:
- .byte KEYSH , se_jitensya_key+0
- .byte TEMPO , 120*se_jitensya_tbs/2
- .byte VOICE , 0
- .byte VOL , 90*se_jitensya_mvl/mxv
- .byte N96 , Cn3 , v127
- .byte W96
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_jitensya:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_jitensya_pri @ Priority
- .byte se_jitensya_rev @ Reverb.
-
- .word se_jitensya_grp
-
- .word se_jitensya_1
-
- .end
diff --git a/sound/songs/se_jyuni.s b/sound/songs/se_jyuni.s
deleted file mode 100644
index 1267e7f35..000000000
--- a/sound/songs/se_jyuni.s
+++ /dev/null
@@ -1,127 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_jyuni_grp, voicegroup127
- .equ se_jyuni_pri, 4
- .equ se_jyuni_rev, reverb_set+50
- .equ se_jyuni_mvl, 127
- .equ se_jyuni_key, 0
- .equ se_jyuni_tbs, 1
- .equ se_jyuni_exg, 0
- .equ se_jyuni_cmp, 1
-
- .section .rodata
- .global se_jyuni
- .align 2
-
-@********************** Track 1 **********************@
-
-se_jyuni_1:
- .byte KEYSH , se_jyuni_key+0
- .byte TEMPO , 144*se_jyuni_tbs/2
- .byte VOICE , 48
- .byte PAN , c_v+1
- .byte VOL , 110*se_jyuni_mvl/mxv
- .byte N06 , Cn3 , v060
- .byte W06
- .byte N13 , Gn3
- .byte W06
- .byte W01
- .byte VOL , 105*se_jyuni_mvl/mxv
- .byte W01
- .byte 100*se_jyuni_mvl/mxv
- .byte W01
- .byte 89*se_jyuni_mvl/mxv
- .byte W01
- .byte 72*se_jyuni_mvl/mxv
- .byte W02
- .byte 55*se_jyuni_mvl/mxv
- .byte W01
- .byte 38*se_jyuni_mvl/mxv
- .byte W01
- .byte 22*se_jyuni_mvl/mxv
- .byte W01
- .byte 110*se_jyuni_mvl/mxv
- .byte N12 , Gn3 , v032
- .byte W03
- .byte W01
- .byte VOL , 100*se_jyuni_mvl/mxv
- .byte W01
- .byte 91*se_jyuni_mvl/mxv
- .byte W01
- .byte 75*se_jyuni_mvl/mxv
- .byte W01
- .byte 43*se_jyuni_mvl/mxv
- .byte W02
- .byte 24*se_jyuni_mvl/mxv
- .byte W01
- .byte 9*se_jyuni_mvl/mxv
- .byte W05
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_jyuni_2:
- .byte KEYSH , se_jyuni_key+0
- .byte VOICE , 80
- .byte VOL , 110*se_jyuni_mvl/mxv
- .byte PAN , c_v+0
- .byte N06 , Cn3 , v060
- .byte W06
- .byte N13 , Gn3
- .byte W06
- .byte W09
- .byte PAN , c_v-48
- .byte N12 , Gn3 , v032
- .byte W03
- .byte W12
- .byte FINE
-
-@********************** Track 3 **********************@
-
-se_jyuni_3:
- .byte KEYSH , se_jyuni_key+0
- .byte VOICE , 81
- .byte VOL , 110*se_jyuni_mvl/mxv
- .byte PAN , c_v+0
- .byte N06 , Gn2 , v060
- .byte W06
- .byte N13 , Cn3
- .byte W06
- .byte W09
- .byte PAN , c_v+48
- .byte N12 , Cn3 , v032
- .byte W03
- .byte W12
- .byte FINE
-
-@********************** Track 4 **********************@
-
-se_jyuni_4:
- .byte KEYSH , se_jyuni_key+0
- .byte VOICE , 47
- .byte VOL , 110*se_jyuni_mvl/mxv
- .byte N06 , Gn1 , v127
- .byte W06
- .byte N13 , Cn2
- .byte W06
- .byte W12
- .byte W12
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_jyuni:
- .byte 4 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_jyuni_pri @ Priority
- .byte se_jyuni_rev @ Reverb.
-
- .word se_jyuni_grp
-
- .word se_jyuni_1
- .word se_jyuni_2
- .word se_jyuni_3
- .word se_jyuni_4
-
- .end
diff --git a/sound/songs/se_kaidan.s b/sound/songs/se_kaidan.s
deleted file mode 100644
index 3563c4062..000000000
--- a/sound/songs/se_kaidan.s
+++ /dev/null
@@ -1,61 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_kaidan_grp, voicegroup127
- .equ se_kaidan_pri, 5
- .equ se_kaidan_rev, reverb_set+50
- .equ se_kaidan_mvl, 127
- .equ se_kaidan_key, 0
- .equ se_kaidan_tbs, 1
- .equ se_kaidan_exg, 0
- .equ se_kaidan_cmp, 1
-
- .section .rodata
- .global se_kaidan
- .align 2
-
-@********************** Track 1 **********************@
-
-se_kaidan_1:
- .byte KEYSH , se_kaidan_key+0
- .byte TEMPO , 120*se_kaidan_tbs/2
- .byte VOICE , 126
- .byte VOL , 120*se_kaidan_mvl/mxv
- .byte N02 , An2 , v068
- .byte W02
- .byte Cn3 , v127
- .byte W01
- .byte W01
- .byte En4 , v068
- .byte W02
- .byte W03
- .byte W03
- .byte An2
- .byte W02
- .byte Cn3 , v100
- .byte W01
- .byte W01
- .byte En4 , v068
- .byte W02
- .byte W03
- .byte W03
- .byte An2 , v032
- .byte W02
- .byte Cn3 , v052
- .byte W01
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_kaidan:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_kaidan_pri @ Priority
- .byte se_kaidan_rev @ Reverb.
-
- .word se_kaidan_grp
-
- .word se_kaidan_1
-
- .end
diff --git a/sound/songs/se_kaifuku.s b/sound/songs/se_kaifuku.s
deleted file mode 100644
index ecaf63c92..000000000
--- a/sound/songs/se_kaifuku.s
+++ /dev/null
@@ -1,46 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_kaifuku_grp, voicegroup127
- .equ se_kaifuku_pri, 5
- .equ se_kaifuku_rev, reverb_set+50
- .equ se_kaifuku_mvl, 127
- .equ se_kaifuku_key, 0
- .equ se_kaifuku_tbs, 1
- .equ se_kaifuku_exg, 0
- .equ se_kaifuku_cmp, 1
-
- .section .rodata
- .global se_kaifuku
- .align 2
-
-@********************** Track 1 **********************@
-
-se_kaifuku_1:
- .byte KEYSH , se_kaifuku_key+0
- .byte TEMPO , 132*se_kaifuku_tbs/2
- .byte VOICE , 91
- .byte VOL , 100*se_kaifuku_mvl/mxv
- .byte BEND , c_v-6
- .byte N02 , Cn3 , v112
- .byte W04
- .byte N02
- .byte W04
- .byte VOICE , 90
- .byte N15
- .byte W16
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_kaifuku:
- .byte 1 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_kaifuku_pri @ Priority
- .byte se_kaifuku_rev @ Reverb.
-
- .word se_kaifuku_grp
-
- .word se_kaifuku_1
-
- .end
diff --git a/sound/songs/se_ki_gasyan.s b/sound/songs/se_ki_gasyan.s
deleted file mode 100644
index 11bcfbf45..000000000
--- a/sound/songs/se_ki_gasyan.s
+++ /dev/null
@@ -1,76 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_ki_gasyan_grp, voicegroup128
- .equ se_ki_gasyan_pri, 4
- .equ se_ki_gasyan_rev, reverb_set+50
- .equ se_ki_gasyan_mvl, 127
- .equ se_ki_gasyan_key, 0
- .equ se_ki_gasyan_tbs, 1
- .equ se_ki_gasyan_exg, 0
- .equ se_ki_gasyan_cmp, 1
-
- .section .rodata
- .global se_ki_gasyan
- .align 2
-
-@********************** Track 1 **********************@
-
-se_ki_gasyan_1:
- .byte KEYSH , se_ki_gasyan_key+0
- .byte TEMPO , 150*se_ki_gasyan_tbs/2
- .byte VOICE , 8
- .byte VOL , 100*se_ki_gasyan_mvl/mxv
- .byte BEND , c_v+0
- .byte N01 , Cn3 , v127
- .byte W02
- .byte N02 , Gn2
- .byte W04
- .byte N17 , Cn3
- .byte W06
- .byte VOL , 98*se_ki_gasyan_mvl/mxv
- .byte W01
- .byte 91*se_ki_gasyan_mvl/mxv
- .byte W01
- .byte 81*se_ki_gasyan_mvl/mxv
- .byte W02
- .byte 75*se_ki_gasyan_mvl/mxv
- .byte W01
- .byte 60*se_ki_gasyan_mvl/mxv
- .byte W01
- .byte 42*se_ki_gasyan_mvl/mxv
- .byte W01
- .byte 25*se_ki_gasyan_mvl/mxv
- .byte W02
- .byte 10*se_ki_gasyan_mvl/mxv
- .byte W03
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_ki_gasyan_2:
- .byte VOL , 100*se_ki_gasyan_mvl/mxv
- .byte KEYSH , se_ki_gasyan_key+0
- .byte VOICE , 4
- .byte N01 , Cn3 , v064
- .byte W02
- .byte N02
- .byte W04
- .byte N02
- .byte W18
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_ki_gasyan:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_ki_gasyan_pri @ Priority
- .byte se_ki_gasyan_rev @ Reverb.
-
- .word se_ki_gasyan_grp
-
- .word se_ki_gasyan_1
- .word se_ki_gasyan_2
-
- .end
diff --git a/sound/songs/se_kon.s b/sound/songs/se_kon.s
deleted file mode 100644
index 45a59f4d9..000000000
--- a/sound/songs/se_kon.s
+++ /dev/null
@@ -1,53 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_kon_grp, voicegroup128
- .equ se_kon_pri, 4
- .equ se_kon_rev, reverb_set+50
- .equ se_kon_mvl, 127
- .equ se_kon_key, 0
- .equ se_kon_tbs, 1
- .equ se_kon_exg, 0
- .equ se_kon_cmp, 1
-
- .section .rodata
- .global se_kon
- .align 2
-
-@********************** Track 1 **********************@
-
-se_kon_1:
- .byte KEYSH , se_kon_key+0
- .byte TEMPO , 150*se_kon_tbs/2
- .byte VOICE , 16
- .byte VOL , 100*se_kon_mvl/mxv
- .byte BEND , c_v+1
- .byte N12 , Fn4 , v112
- .byte W12
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_kon_2:
- .byte KEYSH , se_kon_key+0
- .byte VOICE , 17
- .byte VOL , 100*se_kon_mvl/mxv
- .byte BEND , c_v+0
- .byte N09 , Fn4 , v100
- .byte W12
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_kon:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_kon_pri @ Priority
- .byte se_kon_rev @ Reverb.
-
- .word se_kon_grp
-
- .word se_kon_1
- .word se_kon_2
-
- .end
diff --git a/sound/songs/se_kon2.s b/sound/songs/se_kon2.s
deleted file mode 100644
index 127532686..000000000
--- a/sound/songs/se_kon2.s
+++ /dev/null
@@ -1,53 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_kon2_grp, voicegroup128
- .equ se_kon2_pri, 4
- .equ se_kon2_rev, reverb_set+50
- .equ se_kon2_mvl, 127
- .equ se_kon2_key, 0
- .equ se_kon2_tbs, 1
- .equ se_kon2_exg, 0
- .equ se_kon2_cmp, 1
-
- .section .rodata
- .global se_kon2
- .align 2
-
-@********************** Track 1 **********************@
-
-se_kon2_1:
- .byte KEYSH , se_kon2_key+0
- .byte TEMPO , 150*se_kon2_tbs/2
- .byte VOICE , 16
- .byte VOL , 100*se_kon2_mvl/mxv
- .byte BEND , c_v+1
- .byte N12 , Fn4 , v100
- .byte W12
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_kon2_2:
- .byte KEYSH , se_kon2_key+0
- .byte VOICE , 17
- .byte VOL , 100*se_kon2_mvl/mxv
- .byte BEND , c_v+0
- .byte N09 , Fn4 , v088
- .byte W12
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_kon2:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_kon2_pri @ Priority
- .byte se_kon2_rev @ Reverb.
-
- .word se_kon2_grp
-
- .word se_kon2_1
- .word se_kon2_2
-
- .end
diff --git a/sound/songs/se_kon3.s b/sound/songs/se_kon3.s
deleted file mode 100644
index 4e5ee26fa..000000000
--- a/sound/songs/se_kon3.s
+++ /dev/null
@@ -1,53 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_kon3_grp, voicegroup128
- .equ se_kon3_pri, 4
- .equ se_kon3_rev, reverb_set+50
- .equ se_kon3_mvl, 127
- .equ se_kon3_key, 0
- .equ se_kon3_tbs, 1
- .equ se_kon3_exg, 0
- .equ se_kon3_cmp, 1
-
- .section .rodata
- .global se_kon3
- .align 2
-
-@********************** Track 1 **********************@
-
-se_kon3_1:
- .byte KEYSH , se_kon3_key+0
- .byte TEMPO , 150*se_kon3_tbs/2
- .byte VOICE , 16
- .byte VOL , 100*se_kon3_mvl/mxv
- .byte BEND , c_v+1
- .byte N12 , Fn4 , v088
- .byte W12
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_kon3_2:
- .byte KEYSH , se_kon3_key+0
- .byte VOICE , 17
- .byte VOL , 100*se_kon3_mvl/mxv
- .byte BEND , c_v+0
- .byte N09 , Fn4 , v072
- .byte W12
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_kon3:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_kon3_pri @ Priority
- .byte se_kon3_rev @ Reverb.
-
- .word se_kon3_grp
-
- .word se_kon3_1
- .word se_kon3_2
-
- .end
diff --git a/sound/songs/se_kon4.s b/sound/songs/se_kon4.s
deleted file mode 100644
index 4dfe81e34..000000000
--- a/sound/songs/se_kon4.s
+++ /dev/null
@@ -1,53 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_kon4_grp, voicegroup128
- .equ se_kon4_pri, 4
- .equ se_kon4_rev, reverb_set+50
- .equ se_kon4_mvl, 127
- .equ se_kon4_key, 0
- .equ se_kon4_tbs, 1
- .equ se_kon4_exg, 0
- .equ se_kon4_cmp, 1
-
- .section .rodata
- .global se_kon4
- .align 2
-
-@********************** Track 1 **********************@
-
-se_kon4_1:
- .byte KEYSH , se_kon4_key+0
- .byte TEMPO , 150*se_kon4_tbs/2
- .byte VOICE , 16
- .byte VOL , 100*se_kon4_mvl/mxv
- .byte BEND , c_v+1
- .byte N12 , Fn4 , v076
- .byte W12
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_kon4_2:
- .byte KEYSH , se_kon4_key+0
- .byte VOICE , 17
- .byte VOL , 100*se_kon4_mvl/mxv
- .byte BEND , c_v+0
- .byte N09 , Fn4 , v056
- .byte W12
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_kon4:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_kon4_pri @ Priority
- .byte se_kon4_rev @ Reverb.
-
- .word se_kon4_grp
-
- .word se_kon4_1
- .word se_kon4_2
-
- .end
diff --git a/sound/songs/se_kouka_h.s b/sound/songs/se_kouka_h.s
deleted file mode 100644
index 955d3c077..000000000
--- a/sound/songs/se_kouka_h.s
+++ /dev/null
@@ -1,105 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_kouka_h_grp, voicegroup127
- .equ se_kouka_h_pri, 5
- .equ se_kouka_h_rev, reverb_set+50
- .equ se_kouka_h_mvl, 127
- .equ se_kouka_h_key, 0
- .equ se_kouka_h_tbs, 1
- .equ se_kouka_h_exg, 0
- .equ se_kouka_h_cmp, 1
-
- .section .rodata
- .global se_kouka_h
- .align 2
-
-@********************** Track 1 **********************@
-
-se_kouka_h_1:
- .byte KEYSH , se_kouka_h_key+0
- .byte TEMPO , 90*se_kouka_h_tbs/2
- .byte VOICE , 125
- .byte VOL , 110*se_kouka_h_mvl/mxv
- .byte N03 , Cn3 , v100
- .byte W03
- .byte An2
- .byte W03
- .byte Cn3
- .byte W03
- .byte N06 , Gn3 , v072
- .byte W03
- .byte W03
- .byte N03 , Cn3 , v052
- .byte W03
- .byte N06 , Gn3 , v048
- .byte W03
- .byte W03
- .byte N03 , Cn3 , v028
- .byte W03
- .byte N06 , Gn3
- .byte W03
- .byte W03
- .byte N03 , Cn3
- .byte W03
- .byte N06 , Gn3
- .byte W03
- .byte W03
- .byte N03 , Cn3 , v012
- .byte W03
- .byte N06 , Gn3
- .byte W03
- .byte W03
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_kouka_h_2:
- .byte KEYSH , se_kouka_h_key+0
- .byte VOICE , 0
- .byte VOL , 110*se_kouka_h_mvl/mxv
- .byte N03 , Cn4 , v127
- .byte W03
- .byte Cn3
- .byte W03
- .byte Cn4
- .byte W03
- .byte N06 , Gn3 , v088
- .byte W03
- .byte W03
- .byte N03 , Cn3 , v064
- .byte W03
- .byte N06 , Gn3
- .byte W03
- .byte W03
- .byte N03 , Cn3 , v044
- .byte W03
- .byte N06 , Gn3
- .byte W03
- .byte W03
- .byte N03 , Cn3 , v028
- .byte W03
- .byte N06 , Gn3
- .byte W03
- .byte W03
- .byte N03 , Cn3 , v012
- .byte W03
- .byte N06 , Gn3
- .byte W03
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_kouka_h:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_kouka_h_pri @ Priority
- .byte se_kouka_h_rev @ Reverb.
-
- .word se_kouka_h_grp
-
- .word se_kouka_h_1
- .word se_kouka_h_2
-
- .end
diff --git a/sound/songs/se_kouka_l.s b/sound/songs/se_kouka_l.s
deleted file mode 100644
index f00241b69..000000000
--- a/sound/songs/se_kouka_l.s
+++ /dev/null
@@ -1,56 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_kouka_l_grp, voicegroup127
- .equ se_kouka_l_pri, 5
- .equ se_kouka_l_rev, reverb_set+50
- .equ se_kouka_l_mvl, 127
- .equ se_kouka_l_key, 0
- .equ se_kouka_l_tbs, 1
- .equ se_kouka_l_exg, 0
- .equ se_kouka_l_cmp, 1
-
- .section .rodata
- .global se_kouka_l
- .align 2
-
-@********************** Track 1 **********************@
-
-se_kouka_l_1:
- .byte KEYSH , se_kouka_l_key+0
- .byte TEMPO , 90*se_kouka_l_tbs/2
- .byte VOICE , 127
- .byte VOL , 110*se_kouka_l_mvl/mxv
- .byte N03 , Gn2 , v100
- .byte W03
- .byte N06 , As2
- .byte W03
- .byte W03
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_kouka_l_2:
- .byte KEYSH , se_kouka_l_key+0
- .byte VOICE , 0
- .byte VOL , 110*se_kouka_l_mvl/mxv
- .byte N09 , As1 , v127
- .byte W03
- .byte W03
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_kouka_l:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_kouka_l_pri @ Priority
- .byte se_kouka_l_rev @ Reverb.
-
- .word se_kouka_l_grp
-
- .word se_kouka_l_1
- .word se_kouka_l_2
-
- .end
diff --git a/sound/songs/se_kouka_m.s b/sound/songs/se_kouka_m.s
deleted file mode 100644
index b285c1566..000000000
--- a/sound/songs/se_kouka_m.s
+++ /dev/null
@@ -1,82 +0,0 @@
- .include "MPlayDef.s"
-
- .equ se_kouka_m_grp, voicegroup127
- .equ se_kouka_m_pri, 5
- .equ se_kouka_m_rev, reverb_set+50
- .equ se_kouka_m_mvl, 127
- .equ se_kouka_m_key, 0
- .equ se_kouka_m_tbs, 1
- .equ se_kouka_m_exg, 0
- .equ se_kouka_m_cmp, 1
-
- .section .rodata
- .global se_kouka_m
- .align 2
-
-@********************** Track 1 **********************@
-
-se_kouka_m_1:
- .byte KEYSH , se_kouka_m_key+0
- .byte TEMPO , 90*se_kouka_m_tbs/2
- .byte VOICE , 125
- .byte VOL , 110*se_kouka_m_mvl/mxv
- .byte BEND , c_v+0
- .byte N03 , As2 , v100
- .byte W03
- .byte BEND , c_v-33
- .byte N36 , Ds3
- .byte W03
- .byte BEND , c_v+0
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte FINE
-
-@********************** Track 2 **********************@
-
-se_kouka_m_2:
- .byte KEYSH , se_kouka_m_key+0
- .byte VOICE , 0
- .byte VOL , 110*se_kouka_m_mvl/mxv
- .byte N03 , Cn3 , v127
- .byte W03
- .byte N18
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte W03
- .byte FINE
-
-@******************************************************@
- .align 2
-
-se_kouka_m:
- .byte 2 @ NumTrks
- .byte 0 @ NumBlks
- .byte se_kouka_m_pri @ Priority
- .byte se_kouka_m_rev @ Reverb.
-
- .word se_kouka_m_grp
-
- .word se_kouka_m_1
- .word se_kouka_m_2
-
- .end
diff --git a/spritesheet_rules.mk b/spritesheet_rules.mk
index 2f5bfe608..6e49a0a66 100644
--- a/spritesheet_rules.mk
+++ b/spritesheet_rules.mk
@@ -171,10 +171,10 @@ $(EVENTOBJGFXDIR)/people/boy_2.4bpp: %.4bpp: %.png
$(EVENTOBJGFXDIR)/people/boy_3.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
-$(EVENTOBJGFXDIR)/people/boy_4.4bpp: %.4bpp: %.png
+$(EVENTOBJGFXDIR)/people/rich_boy.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
-$(EVENTOBJGFXDIR)/people/boy_5.4bpp: %.4bpp: %.png
+$(EVENTOBJGFXDIR)/people/gameboy_kid.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
$(EVENTOBJGFXDIR)/people/bug_catcher.4bpp: %.4bpp: %.png
@@ -186,7 +186,7 @@ $(EVENTOBJGFXDIR)/people/cameraman.4bpp: %.4bpp: %.png
$(EVENTOBJGFXDIR)/people/camper.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
-$(EVENTOBJGFXDIR)/people/contest_old_man.4bpp: %.4bpp: %.png
+$(EVENTOBJGFXDIR)/people/contest_judge.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
$(EVENTOBJGFXDIR)/people/cook.4bpp: %.4bpp: %.png
@@ -231,16 +231,16 @@ $(EVENTOBJGFXDIR)/people/lass.4bpp: %.4bpp: %.png
$(EVENTOBJGFXDIR)/people/leaf.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
-$(EVENTOBJGFXDIR)/people/little_boy_1.4bpp: %.4bpp: %.png
+$(EVENTOBJGFXDIR)/people/ninja_boy.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 2
-$(EVENTOBJGFXDIR)/people/little_boy_2.4bpp: %.4bpp: %.png
+$(EVENTOBJGFXDIR)/people/little_boy.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 2
-$(EVENTOBJGFXDIR)/people/little_girl_1.4bpp: %.4bpp: %.png
+$(EVENTOBJGFXDIR)/people/twin.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
-$(EVENTOBJGFXDIR)/people/little_girl_2.4bpp: %.4bpp: %.png
+$(EVENTOBJGFXDIR)/people/little_girl.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 2
$(EVENTOBJGFXDIR)/people/man_1.4bpp: %.4bpp: %.png
@@ -249,6 +249,9 @@ $(EVENTOBJGFXDIR)/people/man_1.4bpp: %.4bpp: %.png
$(EVENTOBJGFXDIR)/people/man_2.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
+$(EVENTOBJGFXDIR)/people/pokefan_m.4bpp: %.4bpp: %.png
+ $(GFX) $< $@ -mwidth 2 -mheight 4
+
$(EVENTOBJGFXDIR)/people/man_3.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
@@ -258,10 +261,7 @@ $(EVENTOBJGFXDIR)/people/man_4.4bpp: %.4bpp: %.png
$(EVENTOBJGFXDIR)/people/man_5.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
-$(EVENTOBJGFXDIR)/people/man_6.4bpp: %.4bpp: %.png
- $(GFX) $< $@ -mwidth 2 -mheight 4
-
-$(EVENTOBJGFXDIR)/people/man_7.4bpp: %.4bpp: %.png
+$(EVENTOBJGFXDIR)/people/devon_employee.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
$(EVENTOBJGFXDIR)/people/maniac.4bpp: %.4bpp: %.png
@@ -285,16 +285,16 @@ $(EVENTOBJGFXDIR)/people/mystery_event_deliveryman.4bpp: %.4bpp: %.png
$(EVENTOBJGFXDIR)/people/nurse.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
-$(EVENTOBJGFXDIR)/people/old_man_1.4bpp: %.4bpp: %.png
+$(EVENTOBJGFXDIR)/people/expert_m.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
-$(EVENTOBJGFXDIR)/people/old_man_2.4bpp: %.4bpp: %.png
+$(EVENTOBJGFXDIR)/people/old_man.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
-$(EVENTOBJGFXDIR)/people/old_woman_1.4bpp: %.4bpp: %.png
+$(EVENTOBJGFXDIR)/people/expert_f.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
-$(EVENTOBJGFXDIR)/people/old_woman_2.4bpp: %.4bpp: %.png
+$(EVENTOBJGFXDIR)/people/old_woman.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
$(EVENTOBJGFXDIR)/people/picnicker.4bpp: %.4bpp: %.png
@@ -381,6 +381,9 @@ $(EVENTOBJGFXDIR)/people/wally.4bpp: %.4bpp: %.png
$(EVENTOBJGFXDIR)/people/woman_1.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
+$(EVENTOBJGFXDIR)/people/pokefan_f.4bpp: %.4bpp: %.png
+ $(GFX) $< $@ -mwidth 2 -mheight 4
+
$(EVENTOBJGFXDIR)/people/woman_2.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
@@ -390,13 +393,10 @@ $(EVENTOBJGFXDIR)/people/woman_3.4bpp: %.4bpp: %.png
$(EVENTOBJGFXDIR)/people/woman_4.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
-$(EVENTOBJGFXDIR)/people/woman_5.4bpp: %.4bpp: %.png
+$(EVENTOBJGFXDIR)/people/link_receptionist.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
-$(EVENTOBJGFXDIR)/people/woman_6.4bpp: %.4bpp: %.png
- $(GFX) $< $@ -mwidth 2 -mheight 4
-
-$(EVENTOBJGFXDIR)/people/woman_7.4bpp: %.4bpp: %.png
+$(EVENTOBJGFXDIR)/people/woman_5.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
$(EVENTOBJGFXDIR)/people/youngster.4bpp: %.4bpp: %.png
diff --git a/src/apprentice.c b/src/apprentice.c
new file mode 100644
index 000000000..f2a8aa9c0
--- /dev/null
+++ b/src/apprentice.c
@@ -0,0 +1,2380 @@
+#include "global.h"
+#include "apprentice.h"
+#include "battle_tower.h"
+#include "data2.h"
+#include "event_data.h"
+#include "event_object_movement.h"
+#include "field_player_avatar.h"
+#include "international_string_util.h"
+#include "item.h"
+#include "item_menu.h"
+#include "main.h"
+#include "malloc.h"
+#include "menu.h"
+#include "new_game.h"
+#include "party_menu.h"
+#include "random.h"
+#include "script.h"
+#include "script_menu.h"
+#include "sound.h"
+#include "string_util.h"
+#include "strings.h"
+#include "task.h"
+#include "text.h"
+#include "constants/apprentice.h"
+#include "constants/items.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+#include "constants/moves.h"
+
+#define PLAYER_APPRENTICE gSaveBlock2Ptr->playerApprentice
+
+struct Unk030062ECStruct
+{
+ u8 unk0;
+ u16 unk2[3][5];
+ u8 unk20[3][5];
+};
+
+struct Unk030062F0Struct
+{
+ u16 unk0;
+ u16 unk2;
+ u16 unk4;
+ u16 unk6;
+};
+
+// data/scripts/apprentice.inc
+extern const u8 gText_082B7229[];
+extern const u8 gText_082B731C[];
+extern const u8 gText_082B735B[];
+extern const u8 gText_082B7423[];
+extern const u8 gText_082B74C1[];
+extern const u8 gText_082B756F[];
+extern const u8 gText_082B75B2[];
+extern const u8 gText_082B763F[];
+extern const u8 gText_082B76AC[];
+extern const u8 gText_082B7772[];
+extern const u8 gText_082B77CE[];
+extern const u8 gText_082B7871[];
+extern const u8 gText_082B78D4[];
+extern const u8 gText_082B7B1A[];
+extern const u8 gText_082B7C13[];
+extern const u8 gText_082B7D18[];
+extern const u8 gText_082B7DD4[];
+extern const u8 gText_082B7EE5[];
+extern const u8 gText_082B7F35[];
+extern const u8 gText_082B7FE8[];
+extern const u8 gText_082B8087[];
+extern const u8 gText_082B822B[];
+extern const u8 gText_082B8286[];
+extern const u8 gText_082B8356[];
+extern const u8 gText_082B83CE[];
+extern const u8 gText_082B84FC[];
+extern const u8 gText_082B8559[];
+extern const u8 gText_082B8656[];
+extern const u8 gText_082B86EA[];
+extern const u8 gText_082B87DA[];
+extern const u8 gText_082B887C[];
+extern const u8 gText_082B8957[];
+extern const u8 gText_082B89C6[];
+extern const u8 gText_082B8ACF[];
+extern const u8 gText_082B8B66[];
+extern const u8 gText_082B8C20[];
+extern const u8 gText_082B8CAA[];
+extern const u8 gText_082B8DD3[];
+extern const u8 gText_082B8E24[];
+extern const u8 gText_082B8ED5[];
+extern const u8 gText_082B8F45[];
+extern const u8 gText_082B905F[];
+extern const u8 gText_082B910E[];
+extern const u8 gText_082B9204[];
+extern const u8 gText_082B929C[];
+extern const u8 gText_082B9438[];
+extern const u8 gText_082B9488[];
+extern const u8 gText_082B9564[];
+extern const u8 gText_082B95D8[];
+extern const u8 gText_082B9763[];
+extern const u8 gText_082B97E5[];
+extern const u8 gText_082B989A[];
+extern const u8 gText_082B992D[];
+extern const u8 gText_082B9A84[];
+extern const u8 gText_082B9AB9[];
+extern const u8 gText_082B9B76[];
+extern const u8 gText_082B9BF2[];
+extern const u8 gText_082B9D83[];
+extern const u8 gText_082B9DF9[];
+extern const u8 gText_082B9EAA[];
+extern const u8 gText_082B9F55[];
+extern const u8 gText_082BA084[];
+extern const u8 gText_082BA11D[];
+extern const u8 gText_082BA1F3[];
+
+extern const u8 gText_082BE50D[];
+extern const u8 gText_082BE5F5[];
+extern const u8 gText_082BE679[];
+extern const u8 gText_082BE71E[];
+extern const u8 gText_082BE762[];
+extern const u8 gText_082BE7F8[];
+extern const u8 gText_082BE850[];
+extern const u8 gText_082BE99C[];
+extern const u8 gText_082BEA1B[];
+extern const u8 gText_082BEAE9[];
+extern const u8 gText_082BEB72[];
+extern const u8 gText_082BEC8E[];
+extern const u8 gText_082BED16[];
+extern const u8 gText_082BEE29[];
+extern const u8 gText_082BEEB4[];
+extern const u8 gText_082BEFE2[];
+extern const u8 gText_082BF04E[];
+extern const u8 gText_082BF11D[];
+extern const u8 gText_082BF1A8[];
+extern const u8 gText_082BF268[];
+extern const u8 gText_082BF2D1[];
+extern const u8 gText_082BF3CF[];
+extern const u8 gText_082BF46A[];
+extern const u8 gText_082BF551[];
+extern const u8 gText_082BF5C3[];
+extern const u8 gText_082BF6E5[];
+extern const u8 gText_082BF773[];
+extern const u8 gText_082BF869[];
+extern const u8 gText_082BF8DD[];
+extern const u8 gText_082BF9BA[];
+extern const u8 gText_082BFA5A[];
+extern const u8 gText_082BFB4E[];
+
+extern const u8 gText_082BA2A3[];
+extern const u8 gText_082BA34E[];
+extern const u8 gText_082BA380[];
+extern const u8 gText_082BA3D2[];
+extern const u8 gText_082BA448[];
+extern const u8 gText_082BA4D3[];
+extern const u8 gText_082BA58C[];
+extern const u8 gText_082BA5BF[];
+extern const u8 gText_082BA5F3[];
+extern const u8 gText_082BA635[];
+extern const u8 gText_082BA6E6[];
+extern const u8 gText_082BA742[];
+extern const u8 gText_082BA770[];
+extern const u8 gText_082BA78F[];
+extern const u8 gText_082BA7D8[];
+extern const u8 gText_082BA867[];
+extern const u8 gText_082BA96B[];
+extern const u8 gText_082BA9B7[];
+extern const u8 gText_082BAA1B[];
+extern const u8 gText_082BAA81[];
+extern const u8 gText_082BAB22[];
+extern const u8 gText_082BAC43[];
+extern const u8 gText_082BAC78[];
+extern const u8 gText_082BAD17[];
+extern const u8 gText_082BADB6[];
+extern const u8 gText_082BAE36[];
+extern const u8 gText_082BAF4E[];
+extern const u8 gText_082BAF8F[];
+extern const u8 gText_082BAFDB[];
+extern const u8 gText_082BB05F[];
+extern const u8 gText_082BB0D4[];
+extern const u8 gText_082BB18C[];
+extern const u8 gText_082BB1CE[];
+extern const u8 gText_082BB242[];
+extern const u8 gText_082BB2D9[];
+extern const u8 gText_082BB370[];
+extern const u8 gText_082BB4C3[];
+extern const u8 gText_082BB4FB[];
+extern const u8 gText_082BB575[];
+extern const u8 gText_082BB5E1[];
+extern const u8 gText_082BB656[];
+extern const u8 gText_082BB6E5[];
+extern const u8 gText_082BB72C[];
+extern const u8 gText_082BB7A2[];
+extern const u8 gText_082BB84A[];
+extern const u8 gText_082BB8CD[];
+extern const u8 gText_082BB970[];
+extern const u8 gText_082BB9AE[];
+extern const u8 gText_082BBA05[];
+extern const u8 gText_082BBA6C[];
+extern const u8 gText_082BBB01[];
+extern const u8 gText_082BBC1C[];
+extern const u8 gText_082BBC4B[];
+extern const u8 gText_082BBCF6[];
+extern const u8 gText_082BBD90[];
+extern const u8 gText_082BBE0B[];
+extern const u8 gText_082BBEE5[];
+extern const u8 gText_082BBF25[];
+extern const u8 gText_082BBFA4[];
+extern const u8 gText_082BC024[];
+extern const u8 gText_082BC0C8[];
+extern const u8 gText_082BC213[];
+extern const u8 gText_082BC247[];
+extern const u8 gText_082BC2DD[];
+extern const u8 gText_082BC373[];
+extern const u8 gText_082BC40E[];
+extern const u8 gText_082BC514[];
+extern const u8 gText_082BC555[];
+extern const u8 gText_082BC5CE[];
+extern const u8 gText_082BC666[];
+extern const u8 gText_082BC714[];
+extern const u8 gText_082BC808[];
+extern const u8 gText_082BC84D[];
+extern const u8 gText_082BC8EA[];
+extern const u8 gText_082BC984[];
+extern const u8 gText_082BCA4D[];
+extern const u8 gText_082BCB75[];
+extern const u8 gText_082BCBA6[];
+extern const u8 gText_082BCBFC[];
+extern const u8 gText_082BCCA4[];
+
+extern const u8 gText_082BFBF2[];
+extern const u8 gText_082BFCAE[];
+extern const u8 gText_082BFD26[];
+extern const u8 gText_082BFDB1[];
+extern const u8 gText_082BFE24[];
+extern const u8 gText_082BFEAD[];
+extern const u8 gText_082BFF0A[];
+extern const u8 gText_082C0032[];
+extern const u8 gText_082C0090[];
+extern const u8 gText_082C016E[];
+extern const u8 gText_082C01F7[];
+extern const u8 gText_082C034C[];
+extern const u8 gText_082C03CA[];
+extern const u8 gText_082C046E[];
+extern const u8 gText_082C04F9[];
+extern const u8 gText_082C0598[];
+extern const u8 gText_082C0602[];
+extern const u8 gText_082C06D8[];
+extern const u8 gText_082C074A[];
+extern const u8 gText_082C0809[];
+extern const u8 gText_082C086E[];
+extern const u8 gText_082C0982[];
+extern const u8 gText_082C0A1D[];
+extern const u8 gText_082C0AFD[];
+extern const u8 gText_082C0B6F[];
+extern const u8 gText_082C0C7D[];
+extern const u8 gText_082C0D0B[];
+extern const u8 gText_082C0DFE[];
+extern const u8 gText_082C0E71[];
+extern const u8 gText_082C0F6D[];
+extern const u8 gText_082C1003[];
+extern const u8 gText_082C1122[];
+
+extern const u8 gText_082BCD68[];
+extern const u8 gText_082BCE64[];
+extern const u8 gText_082BCEF2[];
+extern const u8 gText_082BCF61[];
+extern const u8 gText_082BCFA1[];
+extern const u8 gText_082BD03C[];
+extern const u8 gText_082BD06D[];
+extern const u8 gText_082BD18A[];
+extern const u8 gText_082BD222[];
+extern const u8 gText_082BD325[];
+extern const u8 gText_082BD3B1[];
+extern const u8 gText_082BD493[];
+extern const u8 gText_082BD51C[];
+extern const u8 gText_082BD609[];
+extern const u8 gText_082BD697[];
+extern const u8 gText_082BD797[];
+extern const u8 gText_082BD806[];
+extern const u8 gText_082BD8F5[];
+extern const u8 gText_082BD9BE[];
+extern const u8 gText_082BDAE1[];
+extern const u8 gText_082BDB4E[];
+extern const u8 gText_082BDC6B[];
+extern const u8 gText_082BDD0D[];
+extern const u8 gText_082BDDEC[];
+extern const u8 gText_082BDE68[];
+extern const u8 gText_082BDF4D[];
+extern const u8 gText_082BDFD8[];
+extern const u8 gText_082BE0FD[];
+extern const u8 gText_082BE189[];
+extern const u8 gText_082BE2A5[];
+extern const u8 gText_082BE33E[];
+extern const u8 gText_082BE46C[];
+
+extern const u8 gText_082C11D1[];
+extern const u8 gText_082C12D5[];
+extern const u8 gText_082C13AB[];
+extern const u8 gText_082C1444[];
+extern const u8 gText_082C1501[];
+extern const u8 gText_082C15B6[];
+extern const u8 gText_082C165E[];
+extern const u8 gText_082C174F[];
+extern const u8 gText_082C1862[];
+extern const u8 gText_082C19A0[];
+extern const u8 gText_082C1A76[];
+extern const u8 gText_082C1C16[];
+extern const u8 gText_082C1CF5[];
+extern const u8 gText_082C1DC1[];
+extern const u8 gText_082C1EDC[];
+extern const u8 gText_082C1FEC[];
+extern const u8 gText_082C20D1[];
+extern const u8 gText_082C21FF[];
+extern const u8 gText_082C231C[];
+extern const u8 gText_082C2407[];
+extern const u8 gText_082C24B5[];
+extern const u8 gText_082C25B1[];
+extern const u8 gText_082C2707[];
+extern const u8 gText_082C27D4[];
+extern const u8 gText_082C28D6[];
+extern const u8 gText_082C2A0B[];
+extern const u8 gText_082C2B50[];
+extern const u8 gText_082C2C77[];
+extern const u8 gText_082C2D67[];
+extern const u8 gText_082C2E41[];
+extern const u8 gText_082C2EF5[];
+extern const u8 gText_082C3023[];
+
+extern const u8 gText_082B6EA5[];
+extern const u8 gText_082B6EEC[];
+extern const u8 gText_082B6F16[];
+extern const u8 gText_082B6F4C[];
+extern const u8 gText_082B6F92[];
+extern const u8 gText_082B6FC9[];
+extern const u8 gText_082B700C[];
+extern const u8 gText_082B703A[];
+extern const u8 gText_082B706A[];
+extern const u8 gText_082B709C[];
+extern const u8 gText_082B70CC[];
+extern const u8 gText_082B710A[];
+extern const u8 gText_082B714D[];
+extern const u8 gText_082B7185[];
+extern const u8 gText_082B71C1[];
+extern const u8 gText_082B71F9[];
+
+extern struct Unk030062ECStruct *gUnknown_030062EC;
+extern struct Unk030062F0Struct *gUnknown_030062F0;
+extern void (*gUnknown_030062F4)(void);
+
+extern void sub_8165AE8(struct Apprentice *);
+
+extern const u8 gUnknown_085DCEDC[];
+extern const u8 gUnknown_085DCF0E[];
+extern const u8 gUnknown_085DCEFA[];
+extern const u8 gUnknown_085DCF2C[];
+
+// This file's functions.
+static u16 sub_819FF98(u8 arg0);
+static bool8 sub_81A0194(u8 arg0, u16 moveId);
+static void CreateChooseAnswerTask(bool8 noBButton, u8 itemsCount, u8 windowId);
+static u8 CreateAndShowWindow(u8 left, u8 top, u8 width, u8 height);
+static void RemoveAndHideWindow(u8 windowId);
+static void ExecuteFuncAfterButtonPress(void (*func)(void));
+
+static void Script_IsPlayersApprenticeActive(void);
+static void Script_SetPlayersApprenticeLvlMode(void);
+static void sub_81A0978(void);
+static void sub_819FC60(void);
+static void sub_81A0984(void);
+static void sub_81A0990(void);
+static void sub_81A09D0(void);
+static void Script_CreateApprenticeMenu(void);
+static void Script_PrintMessage(void);
+static void Script_ResetPlayerApprentice(void);
+static void sub_81A1638(void);
+static void sub_81A0CC0(void);
+static void sub_81A09B4(void);
+static void sub_81A0D40(void);
+static void sub_81A0DD4(void);
+static void sub_81A0FE4(void);
+static void sub_81A0FFC(void);
+static void sub_81A0D80(void);
+static void sub_81A11F8(void);
+static void sub_81A1218(void);
+static void sub_81A1224(void);
+static void sub_81A1438(void);
+static void sub_81A150C(void);
+static void sub_81A15A4(void);
+static void sub_81A1644(void);
+static void sub_81A1370(void);
+
+// rodata
+
+const struct ApprenticeTrainer gApprentices[] =
+{
+ {
+ .name = {_("サダヒロ"), _("ALANN"), _("ALAIN"), _("ADELFO"), _("CLAUS"), _("TEO")},
+ .otId = 0xBDC9,
+ .facilityClass = 0x43,
+ .species = {SPECIES_BEAUTIFLY, SPECIES_DUSTOX, SPECIES_ILLUMISE, SPECIES_SHIFTRY, SPECIES_BRELOOM, SPECIES_NINJASK, SPECIES_SHEDINJA, SPECIES_PINSIR, SPECIES_HERACROSS, SPECIES_VOLBEAT},
+ .rest = {0, 0, 0x1D, 8, 0x3e, 20, 0, 12, 1, 10, 0x30, 6, 0x44, 20},
+ },
+ {
+ .name = {_("ヒロオ"), _("LIONEL"), _("LIONEL"), _("CAIO"), _("LUDWIG"), _("LEO")},
+ .otId = 0xCF09,
+ .facilityClass = 0x2B,
+ .species = {SPECIES_SWELLOW, SPECIES_SWALOT, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_TORKOAL, SPECIES_HARIYAMA, SPECIES_MIGHTYENA, SPECIES_LUDICOLO, SPECIES_CRAWDAUNT, SPECIES_WHISCASH},
+ .rest = {1, 0, 0x38, 12, 1, 10, 0x30, 6, 6, 10, 0x20, 0x10, 0x13, 0x22},
+ },
+ {
+ .name = {_("ケイジ"), _("SONNY"), _("HERVE"), _("FEDRO"), _("WENZEL"), _("SANTI")},
+ .otId = 0x2E34,
+ .facilityClass = 0x26,
+ .species = {SPECIES_LINOONE, SPECIES_MIGHTYENA, SPECIES_WHISCASH, SPECIES_ZANGOOSE, SPECIES_SEVIPER, SPECIES_NINETALES, SPECIES_KECLEON, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_MACHAMP},
+ .rest = {2, 0, 1, 10, 10, 0x16, 0x15, 14, 0x30, 6, 0x3b, 12, 0x4, 12},
+ },
+ {
+ .name = {_("ユラ"), _("LAYLA"), _("LAYLA"), _("ASTRID"), _("SONJA"), _("LOLA")},
+ .otId = 0x84EF,
+ .facilityClass = 0x47,
+ .species = {SPECIES_SWALOT, SPECIES_XATU, SPECIES_ALTARIA, SPECIES_GOLDUCK, SPECIES_FLYGON, SPECIES_ALAKAZAM, SPECIES_GARDEVOIR, SPECIES_WAILORD, SPECIES_GRUMPIG, SPECIES_MIGHTYENA},
+ .rest = {3, 0, 11, 16, 15, 0x1e, 0x39, 16, 0x21, 0x14, 0x3, 12, 0xff, 0xff},
+ },
+ {
+ .name = {_("ヨウカ"), _("MACY"), _("AMELIE"), _("CLEO"), _("MARIA"), _("ELISA")},
+ .otId = 0x1E43,
+ .facilityClass = 0x27,
+ .species = {SPECIES_WIGGLYTUFF, SPECIES_LINOONE, SPECIES_KINGDRA, SPECIES_DELCATTY, SPECIES_RAICHU, SPECIES_FEAROW, SPECIES_STARMIE, SPECIES_MEDICHAM, SPECIES_SHIFTRY, SPECIES_BEAUTIFLY},
+ .rest = {4, 0, 15, 0x1e, 0x14, 16, 6, 16, 15, 0x28, 0x1c, 0x1c, 0x13, 0x1c},
+ },
+ {
+ .name = {_("ヤスシ"), _("DONTE"), _("BRAHIM"), _("GLAUCO"), _("JOSEF"), _("ROQUE")},
+ .otId = 0x379F,
+ .facilityClass = 0x30,
+ .species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_AGGRON, SPECIES_MAGNETON, SPECIES_MACHAMP, SPECIES_ARMALDO, SPECIES_HERACROSS, SPECIES_NOSEPASS, SPECIES_EXPLOUD, SPECIES_MIGHTYENA},
+ .rest = {5, 0, 0x29, 0x0A, 0x08, 0x14, 0x2F, 0x10, 0x38, 0x16, 0x20, 0x08, 0x00, 0x0C},
+ },
+ {
+ .name = {_("ミサオ"), _("AMIRA"), _("LAURE"), _("DAFNE"), _("AMELIE"), _("LARA")},
+ .otId = 0xF555,
+ .facilityClass = 0x31,
+ .species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_MAGNETON, SPECIES_MEDICHAM, SPECIES_MIGHTYENA, SPECIES_GLALIE, SPECIES_GOLEM, SPECIES_ELECTRODE, SPECIES_PELIPPER, SPECIES_SHARPEDO},
+ .rest = {6, 0, 0x0B, 0x0C, 0x3E, 0x12, 0x00, 0x0C, 0x31, 0x0A, 0x30, 0x14, 0x00, 0x0C},
+ },
+ {
+ .name = {_("カズサ"), _("KALI"), _("JODIE"), _("ILENIA"), _("KARO"), _("ELSA")},
+ .otId = 0x8D26,
+ .facilityClass = 0x14,
+ .species = {SPECIES_NINETALES, SPECIES_ALAKAZAM, SPECIES_SCEPTILE, SPECIES_SALAMENCE, SPECIES_GOLDUCK, SPECIES_MAWILE, SPECIES_WEEZING, SPECIES_LANTURN, SPECIES_GARDEVOIR, SPECIES_MILOTIC},
+ .rest = {7, 0, 0x06, 0x0A, 0x20, 0x06, 0x1F, 0x0A, 0x02, 0x0A, 0x03, 0x0C, 0xFF, 0xFF},
+ },
+ {
+ .name = {_("スミレ"), _("ANNIE"), _("ANNIE"), _("IMELDA"), _("INES"), _("ROSA")},
+ .otId = 0x800C,
+ .facilityClass = 0xD,
+ .species = {SPECIES_SCEPTILE, SPECIES_VILEPLUME, SPECIES_BELLOSSOM, SPECIES_ROSELIA, SPECIES_CORSOLA, SPECIES_FLYGON, SPECIES_BRELOOM, SPECIES_MILOTIC, SPECIES_ALTARIA, SPECIES_CRADILY},
+ .rest = {8, 0, 0x22, 0x1E, 0x33, 0x04, 0x0E, 0x02, 0x02, 0x0A, 0x1E, 0x10, 0x00, 0x0C},
+ },
+ {
+ .name = {_("アキノリ"), _("DILLEN"), _("RENE"), _("INDRO"), _("DETLEF"), _("PEDRO")},
+ .otId = 0x469f,
+ .facilityClass = 0,
+ .species = {SPECIES_SKARMORY, SPECIES_GOLEM, SPECIES_BLAZIKEN, SPECIES_CAMERUPT, SPECIES_DONPHAN, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_TROPIUS, SPECIES_SOLROCK, SPECIES_RHYDON},
+ .rest = {9, 0, 0x3D, 0x0A, 0x11, 0x10, 0x1E, 0x0E, 0x1C, 0x20, 0x04, 0x0C, 0xFF, 0xFF},
+ },
+ {
+ .name = {_("トウゾウ"), _("DALLAS"), _("BRUNO"), _("LEARCO"), _("ANSGAR"), _("MANOLO")},
+ .otId = 0x71FC,
+ .facilityClass = 0x2D,
+ .species = {SPECIES_SEAKING, SPECIES_STARMIE, SPECIES_GOLDUCK, SPECIES_TENTACRUEL, SPECIES_OCTILLERY, SPECIES_GOREBYSS, SPECIES_GLALIE, SPECIES_WAILORD, SPECIES_SHARPEDO, SPECIES_KINGDRA},
+ .rest = {10, 0, 0x05, 0x0A, 0x06, 0x06, 0x0E, 0x16, 0x14, 0x0A, 0x00, 0x0C, 0xFF, 0xFF},
+ },
+ {
+ .name = {_("セイヤ"), _("FRANK"), _("FRANK"), _("OLINDO"), _("FRANK"), _("MAURO")},
+ .otId = 0xA39E,
+ .facilityClass = 0x3A,
+ .species = {SPECIES_QUAGSIRE, SPECIES_STARMIE, SPECIES_PELIPPER, SPECIES_CRAWDAUNT, SPECIES_WAILORD, SPECIES_GYARADOS, SPECIES_SWAMPERT, SPECIES_LANTURN, SPECIES_WHISCASH, SPECIES_SHUCKLE},
+ .rest = {11, 0, 0x0E, 0x28, 0x3D, 0x10, 0x0F, 0x24, 0x14, 0x0A, 0x23, 0x1E, 0x24, 0x10},
+ },
+ {
+ .name = {_("リュウジ"), _("LAMONT"), _("XAV"), _("ORFEO"), _("JÜRGEN"), _("JORGE")},
+ .otId = 0xE590,
+ .facilityClass = 0x19,
+ .species = {SPECIES_ABSOL, SPECIES_CROBAT, SPECIES_EXPLOUD, SPECIES_MAGNETON, SPECIES_SHARPEDO, SPECIES_MANECTRIC, SPECIES_METAGROSS, SPECIES_ELECTRODE, SPECIES_NOSEPASS, SPECIES_WEEZING},
+ .rest = {12, 0, 0x20, 0x10, 0x2E, 0x06, 0x0B, 0x10, 0x22, 0x1E, 0x0F, 0x1E, 0x0B, 0x10},
+ },
+ {
+ .name = {_("カツアキ"), _("TYRESE"), _("ANDY"), _("PARIDE"), _("DAVID"), _("CHICHO")},
+ .otId = 0xD018,
+ .facilityClass = 10,
+ .species = {SPECIES_BLAZIKEN, SPECIES_GOLEM, SPECIES_MACHAMP, SPECIES_RHYDON, SPECIES_HARIYAMA, SPECIES_AGGRON, SPECIES_MEDICHAM, SPECIES_ZANGOOSE, SPECIES_VIGOROTH, SPECIES_SLAKING},
+ .rest = {13, 0, 0x29, 0x0A, 0x3A, 0x06, 0x15, 0x0E, 0x35, 0x14, 0x34, 0x10, 0x1E, 0x06},
+ },
+ {
+ .name = {_("トシミツ"), _("DANTE"), _("DANTE"), _("RAOUL"), _("LOTHAR"), _("PABLO")},
+ .otId = 0xBC75,
+ .facilityClass = 14,
+ .species = {SPECIES_SCEPTILE, SPECIES_SANDSLASH, SPECIES_FLYGON, SPECIES_CLAYDOL, SPECIES_ARMALDO, SPECIES_CROBAT, SPECIES_CRADILY, SPECIES_SOLROCK, SPECIES_LUNATONE, SPECIES_GOLEM},
+ .rest = {14, 0, 0x01, 0x0A, 0x17, 0x10, 0x43, 0x12, 0x22, 0x1E, 0x0B, 0x10, 0x0F, 0x28},
+ },
+ {
+ .name = {_("ローウェン"), _("ARTURO"), _("ARTURO"), _("ROMOLO"), _("BRIAN"), _("ARTURO")},
+ .otId = 0xFA02,
+ .facilityClass = 0x20,
+ .species = {SPECIES_ABSOL, SPECIES_MIGHTYENA, SPECIES_ALAKAZAM, SPECIES_BANETTE, SPECIES_NINETALES, SPECIES_CLAYDOL, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_WALREIN, SPECIES_DUSCLOPS},
+ .rest = {15, 0, 0x0F, 0x1E, 0x04, 0x14, 0x2F, 0x10, 0x06, 0x10, 0x20, 0x10, 0x03, 0x0E},
+ },
+};
+
+static const u8 *const gUnknown_08610EF0[][4] =
+{
+ {gText_082B7229, gText_082B731C, gText_082B735B, gText_082B7423},
+ {gText_082B74C1, gText_082B756F, gText_082B75B2, gText_082B763F},
+ {gText_082B76AC, gText_082B7772, gText_082B77CE, gText_082B7871},
+ {gText_082B78D4, gText_082B7B1A, gText_082B7C13, gText_082B7D18},
+ {gText_082B7DD4, gText_082B7EE5, gText_082B7F35, gText_082B7FE8},
+ {gText_082B8087, gText_082B822B, gText_082B8286, gText_082B8356},
+ {gText_082B83CE, gText_082B84FC, gText_082B8559, gText_082B8656},
+ {gText_082B86EA, gText_082B87DA, gText_082B887C, gText_082B8957},
+ {gText_082B89C6, gText_082B8ACF, gText_082B8B66, gText_082B8C20},
+ {gText_082B8CAA, gText_082B8DD3, gText_082B8E24, gText_082B8ED5},
+ {gText_082B8F45, gText_082B905F, gText_082B910E, gText_082B9204},
+ {gText_082B929C, gText_082B9438, gText_082B9488, gText_082B9564},
+ {gText_082B95D8, gText_082B9763, gText_082B97E5, gText_082B989A},
+ {gText_082B992D, gText_082B9A84, gText_082B9AB9, gText_082B9B76},
+ {gText_082B9BF2, gText_082B9D83, gText_082B9DF9, gText_082B9EAA},
+ {gText_082B9F55, gText_082BA084, gText_082BA11D, gText_082BA1F3},
+};
+
+static const u8 *const gUnknown_08610FF0[][2] =
+{
+ {gText_082BE50D, gText_082BE5F5},
+ {gText_082BE679, gText_082BE71E},
+ {gText_082BE762, gText_082BE7F8},
+ {gText_082BE850, gText_082BE99C},
+ {gText_082BEA1B, gText_082BEAE9},
+ {gText_082BEB72, gText_082BEC8E},
+ {gText_082BED16, gText_082BEE29},
+ {gText_082BEEB4, gText_082BEFE2},
+ {gText_082BF04E, gText_082BF11D},
+ {gText_082BF1A8, gText_082BF268},
+ {gText_082BF2D1, gText_082BF3CF},
+ {gText_082BF46A, gText_082BF551},
+ {gText_082BF5C3, gText_082BF6E5},
+ {gText_082BF773, gText_082BF869},
+ {gText_082BF8DD, gText_082BF9BA},
+ {gText_082BFA5A, gText_082BFB4E},
+};
+
+static const u8 *const gUnknown_08611070[][5] =
+{
+ {gText_082BA2A3, gText_082BA34E, gText_082BA380, gText_082BA3D2, gText_082BA448},
+ {gText_082BA4D3, gText_082BA58C, gText_082BA5BF, gText_082BA5F3, gText_082BA635},
+ {gText_082BA6E6, gText_082BA742, gText_082BA770, gText_082BA78F, gText_082BA7D8},
+ {gText_082BA867, gText_082BA96B, gText_082BA9B7, gText_082BAA1B, gText_082BAA81},
+ {gText_082BAB22, gText_082BAC43, gText_082BAC78, gText_082BAD17, gText_082BADB6},
+ {gText_082BAE36, gText_082BAF4E, gText_082BAF8F, gText_082BAFDB, gText_082BB05F},
+ {gText_082BB0D4, gText_082BB18C, gText_082BB1CE, gText_082BB242, gText_082BB2D9},
+ {gText_082BB370, gText_082BB4C3, gText_082BB4FB, gText_082BB575, gText_082BB5E1},
+ {gText_082BB656, gText_082BB6E5, gText_082BB72C, gText_082BB7A2, gText_082BB84A},
+ {gText_082BB8CD, gText_082BB970, gText_082BB9AE, gText_082BBA05, gText_082BBA6C},
+ {gText_082BBB01, gText_082BBC1C, gText_082BBC4B, gText_082BBCF6, gText_082BBD90},
+ {gText_082BBE0B, gText_082BBEE5, gText_082BBF25, gText_082BBFA4, gText_082BC024},
+ {gText_082BC0C8, gText_082BC213, gText_082BC247, gText_082BC2DD, gText_082BC373},
+ {gText_082BC40E, gText_082BC514, gText_082BC555, gText_082BC5CE, gText_082BC666},
+ {gText_082BC714, gText_082BC808, gText_082BC84D, gText_082BC8EA, gText_082BC984},
+ {gText_082BCA4D, gText_082BCB75, gText_082BCBA6, gText_082BCBFC, gText_082BCCA4},
+};
+
+static const u8 *const gUnknown_086111B0[][2] =
+{
+ {gText_082BFBF2, gText_082BFCAE},
+ {gText_082BFD26, gText_082BFDB1},
+ {gText_082BFE24, gText_082BFEAD},
+ {gText_082BFF0A, gText_082C0032},
+ {gText_082C0090, gText_082C016E},
+ {gText_082C01F7, gText_082C034C},
+ {gText_082C03CA, gText_082C046E},
+ {gText_082C04F9, gText_082C0598},
+ {gText_082C0602, gText_082C06D8},
+ {gText_082C074A, gText_082C0809},
+ {gText_082C086E, gText_082C0982},
+ {gText_082C0A1D, gText_082C0AFD},
+ {gText_082C0B6F, gText_082C0C7D},
+ {gText_082C0D0B, gText_082C0DFE},
+ {gText_082C0E71, gText_082C0F6D},
+ {gText_082C1003, gText_082C1122},
+};
+
+static const u8 *const gUnknown_08611230[][2] =
+{
+ {gText_082BCD68, gText_082BCE64},
+ {gText_082BCEF2, gText_082BCF61},
+ {gText_082BCFA1, gText_082BD03C},
+ {gText_082BD06D, gText_082BD18A},
+ {gText_082BD222, gText_082BD325},
+ {gText_082BD3B1, gText_082BD493},
+ {gText_082BD51C, gText_082BD609},
+ {gText_082BD697, gText_082BD797},
+ {gText_082BD806, gText_082BD8F5},
+ {gText_082BD9BE, gText_082BDAE1},
+ {gText_082BDB4E, gText_082BDC6B},
+ {gText_082BDD0D, gText_082BDDEC},
+ {gText_082BDE68, gText_082BDF4D},
+ {gText_082BDFD8, gText_082BE0FD},
+ {gText_082BE189, gText_082BE2A5},
+ {gText_082BE33E, gText_082BE46C},
+};
+
+static const u8 *const gUnknown_086112B0[][2] =
+{
+ {gText_082C11D1, gText_082C12D5},
+ {gText_082C13AB, gText_082C1444},
+ {gText_082C1501, gText_082C15B6},
+ {gText_082C165E, gText_082C174F},
+ {gText_082C1862, gText_082C19A0},
+ {gText_082C1A76, gText_082C1C16},
+ {gText_082C1CF5, gText_082C1DC1},
+ {gText_082C1EDC, gText_082C1FEC},
+ {gText_082C20D1, gText_082C21FF},
+ {gText_082C231C, gText_082C2407},
+ {gText_082C24B5, gText_082C25B1},
+ {gText_082C2707, gText_082C27D4},
+ {gText_082C28D6, gText_082C2A0B},
+ {gText_082C2B50, gText_082C2C77},
+ {gText_082C2D67, gText_082C2E41},
+ {gText_082C2EF5, gText_082C3023},
+};
+
+static const u8 *const gUnknown_08611330[] =
+{
+ gText_082B6EA5,
+ gText_082B6EEC,
+ gText_082B6F16,
+ gText_082B6F4C,
+ gText_082B6F92,
+ gText_082B6FC9,
+ gText_082B700C,
+ gText_082B703A,
+ gText_082B706A,
+ gText_082B709C,
+ gText_082B70CC,
+ gText_082B710A,
+ gText_082B714D,
+ gText_082B7185,
+ gText_082B71C1,
+ gText_082B71F9,
+};
+
+static const bool8 gUnknown_08611370[MOVES_COUNT] =
+{
+ [MOVE_NONE] = FALSE,
+ [MOVE_POUND] = FALSE,
+ [MOVE_KARATE_CHOP] = TRUE,
+ [MOVE_DOUBLE_SLAP] = TRUE,
+ [MOVE_COMET_PUNCH] = FALSE,
+ [MOVE_MEGA_PUNCH] = TRUE,
+ [MOVE_PAY_DAY] = FALSE,
+ [MOVE_FIRE_PUNCH] = TRUE,
+ [MOVE_ICE_PUNCH] = TRUE,
+ [MOVE_THUNDER_PUNCH] = TRUE,
+ [MOVE_SCRATCH] = FALSE,
+ [MOVE_VICE_GRIP] = FALSE,
+ [MOVE_GUILLOTINE] = TRUE,
+ [MOVE_RAZOR_WIND] = FALSE,
+ [MOVE_SWORDS_DANCE] = TRUE,
+ [MOVE_CUT] = FALSE,
+ [MOVE_GUST] = FALSE,
+ [MOVE_WING_ATTACK] = FALSE,
+ [MOVE_WHIRLWIND] = TRUE,
+ [MOVE_FLY] = TRUE,
+ [MOVE_BIND] = TRUE,
+ [MOVE_SLAM] = TRUE,
+ [MOVE_VINE_WHIP] = FALSE,
+ [MOVE_STOMP] = TRUE,
+ [MOVE_DOUBLE_KICK] = TRUE,
+ [MOVE_MEGA_KICK] = TRUE,
+ [MOVE_JUMP_KICK] = TRUE,
+ [MOVE_ROLLING_KICK] = TRUE,
+ [MOVE_SAND_ATTACK] = TRUE,
+ [MOVE_HEADBUTT] = TRUE,
+ [MOVE_HORN_ATTACK] = FALSE,
+ [MOVE_FURY_ATTACK] = FALSE,
+ [MOVE_HORN_DRILL] = TRUE,
+ [MOVE_TACKLE] = FALSE,
+ [MOVE_BODY_SLAM] = TRUE,
+ [MOVE_WRAP] = TRUE,
+ [MOVE_TAKE_DOWN] = TRUE,
+ [MOVE_THRASH] = TRUE,
+ [MOVE_DOUBLE_EDGE] = TRUE,
+ [MOVE_TAIL_WHIP] = FALSE,
+ [MOVE_POISON_STING] = FALSE,
+ [MOVE_TWINEEDLE] = TRUE,
+ [MOVE_PIN_MISSILE] = FALSE,
+ [MOVE_LEER] = FALSE,
+ [MOVE_BITE] = TRUE,
+ [MOVE_GROWL] = FALSE,
+ [MOVE_ROAR] = TRUE,
+ [MOVE_SING] = TRUE,
+ [MOVE_SUPERSONIC] = TRUE,
+ [MOVE_SONIC_BOOM] = TRUE,
+ [MOVE_DISABLE] = TRUE,
+ [MOVE_ACID] = FALSE,
+ [MOVE_EMBER] = FALSE,
+ [MOVE_FLAMETHROWER] = TRUE,
+ [MOVE_MIST] = TRUE,
+ [MOVE_WATER_GUN] = FALSE,
+ [MOVE_HYDRO_PUMP] = TRUE,
+ [MOVE_SURF] = TRUE,
+ [MOVE_ICE_BEAM] = TRUE,
+ [MOVE_BLIZZARD] = TRUE,
+ [MOVE_PSYBEAM] = TRUE,
+ [MOVE_BUBBLE_BEAM] = FALSE,
+ [MOVE_AURORA_BEAM] = FALSE,
+ [MOVE_HYPER_BEAM] = TRUE,
+ [MOVE_PECK] = FALSE,
+ [MOVE_DRILL_PECK] = TRUE,
+ [MOVE_SUBMISSION] = TRUE,
+ [MOVE_LOW_KICK] = TRUE,
+ [MOVE_COUNTER] = TRUE,
+ [MOVE_SEISMIC_TOSS] = TRUE,
+ [MOVE_STRENGTH] = TRUE,
+ [MOVE_ABSORB] = FALSE,
+ [MOVE_MEGA_DRAIN] = FALSE,
+ [MOVE_LEECH_SEED] = TRUE,
+ [MOVE_GROWTH] = TRUE,
+ [MOVE_RAZOR_LEAF] = TRUE,
+ [MOVE_SOLAR_BEAM] = TRUE,
+ [MOVE_POISON_POWDER] = TRUE,
+ [MOVE_STUN_SPORE] = TRUE,
+ [MOVE_SLEEP_POWDER] = TRUE,
+ [MOVE_PETAL_DANCE] = TRUE,
+ [MOVE_STRING_SHOT] = FALSE,
+ [MOVE_DRAGON_RAGE] = TRUE,
+ [MOVE_FIRE_SPIN] = TRUE,
+ [MOVE_THUNDER_SHOCK] = FALSE,
+ [MOVE_THUNDERBOLT] = TRUE,
+ [MOVE_THUNDER_WAVE] = TRUE,
+ [MOVE_THUNDER] = TRUE,
+ [MOVE_ROCK_THROW] = FALSE,
+ [MOVE_EARTHQUAKE] = TRUE,
+ [MOVE_FISSURE] = TRUE,
+ [MOVE_DIG] = TRUE,
+ [MOVE_TOXIC] = TRUE,
+ [MOVE_CONFUSION] = FALSE,
+ [MOVE_PSYCHIC] = TRUE,
+ [MOVE_HYPNOSIS] = TRUE,
+ [MOVE_MEDITATE] = TRUE,
+ [MOVE_AGILITY] = TRUE,
+ [MOVE_QUICK_ATTACK] = TRUE,
+ [MOVE_RAGE] = FALSE,
+ [MOVE_TELEPORT] = FALSE,
+ [MOVE_NIGHT_SHADE] = TRUE,
+ [MOVE_MIMIC] = TRUE,
+ [MOVE_SCREECH] = TRUE,
+ [MOVE_DOUBLE_TEAM] = TRUE,
+ [MOVE_RECOVER] = TRUE,
+ [MOVE_HARDEN] = TRUE,
+ [MOVE_MINIMIZE] = TRUE,
+ [MOVE_SMOKESCREEN] = TRUE,
+ [MOVE_CONFUSE_RAY] = TRUE,
+ [MOVE_WITHDRAW] = TRUE,
+ [MOVE_DEFENSE_CURL] = TRUE,
+ [MOVE_BARRIER] = TRUE,
+ [MOVE_LIGHT_SCREEN] = TRUE,
+ [MOVE_HAZE] = TRUE,
+ [MOVE_REFLECT] = TRUE,
+ [MOVE_FOCUS_ENERGY] = TRUE,
+ [MOVE_BIDE] = FALSE,
+ [MOVE_METRONOME] = TRUE,
+ [MOVE_MIRROR_MOVE] = TRUE,
+ [MOVE_SELF_DESTRUCT] = TRUE,
+ [MOVE_EGG_BOMB] = TRUE,
+ [MOVE_LICK] = TRUE,
+ [MOVE_SMOG] = FALSE,
+ [MOVE_SLUDGE] = FALSE,
+ [MOVE_BONE_CLUB] = FALSE,
+ [MOVE_FIRE_BLAST] = TRUE,
+ [MOVE_WATERFALL] = TRUE,
+ [MOVE_CLAMP] = TRUE,
+ [MOVE_SWIFT] = TRUE,
+ [MOVE_SKULL_BASH] = TRUE,
+ [MOVE_SPIKE_CANNON] = FALSE,
+ [MOVE_CONSTRICT] = FALSE,
+ [MOVE_AMNESIA] = TRUE,
+ [MOVE_KINESIS] = TRUE,
+ [MOVE_SOFT_BOILED] = TRUE,
+ [MOVE_HI_JUMP_KICK] = TRUE,
+ [MOVE_GLARE] = TRUE,
+ [MOVE_DREAM_EATER] = TRUE,
+ [MOVE_POISON_GAS] = FALSE,
+ [MOVE_BARRAGE] = FALSE,
+ [MOVE_LEECH_LIFE] = FALSE,
+ [MOVE_LOVELY_KISS] = TRUE,
+ [MOVE_SKY_ATTACK] = TRUE,
+ [MOVE_TRANSFORM] = TRUE,
+ [MOVE_BUBBLE] = FALSE,
+ [MOVE_DIZZY_PUNCH] = TRUE,
+ [MOVE_SPORE] = TRUE,
+ [MOVE_FLASH] = TRUE,
+ [MOVE_PSYWAVE] = TRUE,
+ [MOVE_SPLASH] = FALSE,
+ [MOVE_ACID_ARMOR] = TRUE,
+ [MOVE_CRABHAMMER] = TRUE,
+ [MOVE_EXPLOSION] = TRUE,
+ [MOVE_FURY_SWIPES] = FALSE,
+ [MOVE_BONEMERANG] = TRUE,
+ [MOVE_REST] = TRUE,
+ [MOVE_ROCK_SLIDE] = TRUE,
+ [MOVE_HYPER_FANG] = TRUE,
+ [MOVE_SHARPEN] = TRUE,
+ [MOVE_CONVERSION] = TRUE,
+ [MOVE_TRI_ATTACK] = TRUE,
+ [MOVE_SUPER_FANG] = TRUE,
+ [MOVE_SLASH] = TRUE,
+ [MOVE_SUBSTITUTE] = TRUE,
+ [MOVE_STRUGGLE] = TRUE,
+ [MOVE_SKETCH] = TRUE,
+ [MOVE_TRIPLE_KICK] = TRUE,
+ [MOVE_THIEF] = TRUE,
+ [MOVE_SPIDER_WEB] = TRUE,
+ [MOVE_MIND_READER] = TRUE,
+ [MOVE_NIGHTMARE] = TRUE,
+ [MOVE_FLAME_WHEEL] = FALSE,
+ [MOVE_SNORE] = TRUE,
+ [MOVE_CURSE] = TRUE,
+ [MOVE_FLAIL] = TRUE,
+ [MOVE_CONVERSION_2] = TRUE,
+ [MOVE_AEROBLAST] = TRUE,
+ [MOVE_COTTON_SPORE] = TRUE,
+ [MOVE_REVERSAL] = TRUE,
+ [MOVE_SPITE] = TRUE,
+ [MOVE_POWDER_SNOW] = FALSE,
+ [MOVE_PROTECT] = TRUE,
+ [MOVE_MACH_PUNCH] = TRUE,
+ [MOVE_SCARY_FACE] = TRUE,
+ [MOVE_FAINT_ATTACK] = TRUE,
+ [MOVE_SWEET_KISS] = TRUE,
+ [MOVE_BELLY_DRUM] = TRUE,
+ [MOVE_SLUDGE_BOMB] = TRUE,
+ [MOVE_MUD_SLAP] = TRUE,
+ [MOVE_OCTAZOOKA] = TRUE,
+ [MOVE_SPIKES] = TRUE,
+ [MOVE_ZAP_CANNON] = TRUE,
+ [MOVE_FORESIGHT] = TRUE,
+ [MOVE_DESTINY_BOND] = TRUE,
+ [MOVE_PERISH_SONG] = TRUE,
+ [MOVE_ICY_WIND] = TRUE,
+ [MOVE_DETECT] = TRUE,
+ [MOVE_BONE_RUSH] = FALSE,
+ [MOVE_LOCK_ON] = TRUE,
+ [MOVE_OUTRAGE] = TRUE,
+ [MOVE_SANDSTORM] = TRUE,
+ [MOVE_GIGA_DRAIN] = TRUE,
+ [MOVE_ENDURE] = TRUE,
+ [MOVE_CHARM] = TRUE,
+ [MOVE_ROLLOUT] = TRUE,
+ [MOVE_FALSE_SWIPE] = TRUE,
+ [MOVE_SWAGGER] = TRUE,
+ [MOVE_MILK_DRINK] = TRUE,
+ [MOVE_SPARK] = FALSE,
+ [MOVE_FURY_CUTTER] = TRUE,
+ [MOVE_STEEL_WING] = TRUE,
+ [MOVE_MEAN_LOOK] = TRUE,
+ [MOVE_ATTRACT] = TRUE,
+ [MOVE_SLEEP_TALK] = TRUE,
+ [MOVE_HEAL_BELL] = TRUE,
+ [MOVE_RETURN] = TRUE,
+ [MOVE_PRESENT] = TRUE,
+ [MOVE_FRUSTRATION] = TRUE,
+ [MOVE_SAFEGUARD] = TRUE,
+ [MOVE_PAIN_SPLIT] = TRUE,
+ [MOVE_SACRED_FIRE] = TRUE,
+ [MOVE_MAGNITUDE] = FALSE,
+ [MOVE_DYNAMIC_PUNCH] = TRUE,
+ [MOVE_MEGAHORN] = TRUE,
+ [MOVE_DRAGON_BREATH] = TRUE,
+ [MOVE_BATON_PASS] = TRUE,
+ [MOVE_ENCORE] = TRUE,
+ [MOVE_PURSUIT] = TRUE,
+ [MOVE_RAPID_SPIN] = TRUE,
+ [MOVE_SWEET_SCENT] = TRUE,
+ [MOVE_IRON_TAIL] = TRUE,
+ [MOVE_METAL_CLAW] = TRUE,
+ [MOVE_VITAL_THROW] = TRUE,
+ [MOVE_MORNING_SUN] = TRUE,
+ [MOVE_SYNTHESIS] = TRUE,
+ [MOVE_MOONLIGHT] = TRUE,
+ [MOVE_HIDDEN_POWER] = TRUE,
+ [MOVE_CROSS_CHOP] = TRUE,
+ [MOVE_TWISTER] = FALSE,
+ [MOVE_RAIN_DANCE] = TRUE,
+ [MOVE_SUNNY_DAY] = TRUE,
+ [MOVE_CRUNCH] = TRUE,
+ [MOVE_MIRROR_COAT] = TRUE,
+ [MOVE_PSYCH_UP] = TRUE,
+ [MOVE_EXTREME_SPEED] = TRUE,
+ [MOVE_ANCIENT_POWER] = TRUE,
+ [MOVE_SHADOW_BALL] = TRUE,
+ [MOVE_FUTURE_SIGHT] = TRUE,
+ [MOVE_ROCK_SMASH] = TRUE,
+ [MOVE_WHIRLPOOL] = TRUE,
+ [MOVE_BEAT_UP] = TRUE,
+ [MOVE_FAKE_OUT] = TRUE,
+ [MOVE_UPROAR] = TRUE,
+ [MOVE_STOCKPILE] = TRUE,
+ [MOVE_SPIT_UP] = TRUE,
+ [MOVE_SWALLOW] = TRUE,
+ [MOVE_HEAT_WAVE] = TRUE,
+ [MOVE_HAIL] = TRUE,
+ [MOVE_TORMENT] = TRUE,
+ [MOVE_FLATTER] = TRUE,
+ [MOVE_WILL_O_WISP] = TRUE,
+ [MOVE_MEMENTO] = TRUE,
+ [MOVE_FACADE] = TRUE,
+ [MOVE_FOCUS_PUNCH] = TRUE,
+ [MOVE_SMELLING_SALT] = TRUE,
+ [MOVE_FOLLOW_ME] = TRUE,
+ [MOVE_NATURE_POWER] = TRUE,
+ [MOVE_CHARGE] = TRUE,
+ [MOVE_TAUNT] = TRUE,
+ [MOVE_HELPING_HAND] = TRUE,
+ [MOVE_TRICK] = TRUE,
+ [MOVE_ROLE_PLAY] = TRUE,
+ [MOVE_WISH] = TRUE,
+ [MOVE_ASSIST] = TRUE,
+ [MOVE_INGRAIN] = TRUE,
+ [MOVE_SUPERPOWER] = TRUE,
+ [MOVE_MAGIC_COAT] = TRUE,
+ [MOVE_RECYCLE] = TRUE,
+ [MOVE_REVENGE] = TRUE,
+ [MOVE_BRICK_BREAK] = TRUE,
+ [MOVE_YAWN] = TRUE,
+ [MOVE_KNOCK_OFF] = TRUE,
+ [MOVE_ENDEAVOR] = TRUE,
+ [MOVE_ERUPTION] = TRUE,
+ [MOVE_SKILL_SWAP] = TRUE,
+ [MOVE_IMPRISON] = TRUE,
+ [MOVE_REFRESH] = TRUE,
+ [MOVE_GRUDGE] = TRUE,
+ [MOVE_SNATCH] = TRUE,
+ [MOVE_SECRET_POWER] = TRUE,
+ [MOVE_DIVE] = TRUE,
+ [MOVE_ARM_THRUST] = FALSE,
+ [MOVE_CAMOUFLAGE] = TRUE,
+ [MOVE_TAIL_GLOW] = TRUE,
+ [MOVE_LUSTER_PURGE] = TRUE,
+ [MOVE_MIST_BALL] = TRUE,
+ [MOVE_FEATHER_DANCE] = TRUE,
+ [MOVE_TEETER_DANCE] = TRUE,
+ [MOVE_BLAZE_KICK] = TRUE,
+ [MOVE_MUD_SPORT] = TRUE,
+ [MOVE_ICE_BALL] = FALSE,
+ [MOVE_NEEDLE_ARM] = TRUE,
+ [MOVE_SLACK_OFF] = TRUE,
+ [MOVE_HYPER_VOICE] = TRUE,
+ [MOVE_POISON_FANG] = FALSE,
+ [MOVE_CRUSH_CLAW] = TRUE,
+ [MOVE_BLAST_BURN] = TRUE,
+ [MOVE_HYDRO_CANNON] = TRUE,
+ [MOVE_METEOR_MASH] = TRUE,
+ [MOVE_ASTONISH] = TRUE,
+ [MOVE_WEATHER_BALL] = TRUE,
+ [MOVE_AROMATHERAPY] = TRUE,
+ [MOVE_FAKE_TEARS] = TRUE,
+ [MOVE_AIR_CUTTER] = TRUE,
+ [MOVE_OVERHEAT] = TRUE,
+ [MOVE_ODOR_SLEUTH] = TRUE,
+ [MOVE_ROCK_TOMB] = TRUE,
+ [MOVE_SILVER_WIND] = TRUE,
+ [MOVE_METAL_SOUND] = TRUE,
+ [MOVE_GRASS_WHISTLE] = TRUE,
+ [MOVE_TICKLE] = TRUE,
+ [MOVE_COSMIC_POWER] = TRUE,
+ [MOVE_WATER_SPOUT] = TRUE,
+ [MOVE_SIGNAL_BEAM] = TRUE,
+ [MOVE_SHADOW_PUNCH] = TRUE,
+ [MOVE_EXTRASENSORY] = TRUE,
+ [MOVE_SKY_UPPERCUT] = TRUE,
+ [MOVE_SAND_TOMB] = TRUE,
+ [MOVE_SHEER_COLD] = TRUE,
+ [MOVE_MUDDY_WATER] = TRUE,
+ [MOVE_BULLET_SEED] = FALSE,
+ [MOVE_AERIAL_ACE] = TRUE,
+ [MOVE_ICICLE_SPEAR] = FALSE,
+ [MOVE_IRON_DEFENSE] = TRUE,
+ [MOVE_BLOCK] = TRUE,
+ [MOVE_HOWL] = TRUE,
+ [MOVE_DRAGON_CLAW] = TRUE,
+ [MOVE_FRENZY_PLANT] = TRUE,
+ [MOVE_BULK_UP] = TRUE,
+ [MOVE_BOUNCE] = TRUE,
+ [MOVE_MUD_SHOT] = FALSE,
+ [MOVE_POISON_TAIL] = TRUE,
+ [MOVE_COVET] = TRUE,
+ [MOVE_VOLT_TACKLE] = TRUE,
+ [MOVE_MAGICAL_LEAF] = TRUE,
+ [MOVE_WATER_SPORT] = TRUE,
+ [MOVE_CALM_MIND] = TRUE,
+ [MOVE_LEAF_BLADE] = TRUE,
+ [MOVE_DRAGON_DANCE] = TRUE,
+ [MOVE_ROCK_BLAST] = FALSE,
+ [MOVE_SHOCK_WAVE] = TRUE,
+ [MOVE_WATER_PULSE] = TRUE,
+ [MOVE_DOOM_DESIRE] = TRUE,
+ [MOVE_PSYCHO_BOOST] = TRUE,
+};
+
+static const u8 gUnknown_086114D3[] = {0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00};
+
+static void (* const sApprenticeFunctions[])(void) =
+{
+ Script_IsPlayersApprenticeActive,
+ Script_SetPlayersApprenticeLvlMode,
+ sub_81A0978,
+ sub_819FC60,
+ sub_81A0984,
+ sub_81A0990,
+ sub_81A09D0,
+ Script_CreateApprenticeMenu,
+ Script_PrintMessage,
+ Script_ResetPlayerApprentice,
+ sub_81A1638,
+ sub_81A0CC0,
+ sub_81A09B4,
+ sub_81A0D40,
+ sub_81A0DD4,
+ sub_81A0FE4,
+ sub_81A0FFC,
+ sub_81A0D80,
+ sub_81A11F8,
+ sub_81A1218,
+ sub_81A1224,
+ sub_81A1438,
+ sub_81A150C,
+ sub_81A15A4,
+ sub_81A1644,
+ sub_81A1370,
+};
+
+static const u8 gUnknown_08611548[8] = {0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09};
+
+// text
+extern const u8 gText_Give[];
+extern const u8 gText_NoNeed[];
+extern const u8 gText_Yes[];
+extern const u8 gText_No[];
+
+void CopyFriendsApprenticeChallengeText(u8 saveblockApprenticeId)
+{
+ u8 i, var;
+ const u8 *str;
+
+ var = gSaveBlock2Ptr->apprentices[saveblockApprenticeId].number;
+ for (i = 0; var != 0 && i < 4; var /= 10, i++)
+ ;
+
+ StringCopy7(gStringVar1, gSaveBlock2Ptr->apprentices[saveblockApprenticeId].playerName);
+ ConvertInternationalString(gStringVar1, gSaveBlock2Ptr->apprentices[saveblockApprenticeId].language);
+ ConvertIntToDecimalStringN(gStringVar2, gSaveBlock2Ptr->apprentices[saveblockApprenticeId].number, STR_CONV_MODE_RIGHT_ALIGN, i);
+ str = gUnknown_08611330[gSaveBlock2Ptr->apprentices[saveblockApprenticeId].id];
+ StringExpandPlaceholders(gStringVar4, str);
+}
+
+void Apprentice_EnableBothScriptContexts(void)
+{
+ EnableBothScriptContexts();
+}
+
+void ResetApprenticeStruct(struct Apprentice *apprentice)
+{
+ u8 i;
+
+ for (i = 0; i < 6; i++)
+ apprentice->easyChatWords[i] |= 0xFFFF;
+
+ apprentice->playerName[0] = EOS;
+ apprentice->id = 16;
+}
+
+void ResetAllApprenticeData(void)
+{
+ u8 i, j;
+
+ PLAYER_APPRENTICE.field_B2_1 = 0;
+ for (i = 0; i < 4; i++)
+ {
+ for (j = 0; j < 6; j++)
+ gSaveBlock2Ptr->apprentices[i].easyChatWords[j] |= 0xFFFF;
+ gSaveBlock2Ptr->apprentices[i].id = 16;
+ gSaveBlock2Ptr->apprentices[i].playerName[0] = EOS;
+ gSaveBlock2Ptr->apprentices[i].lvlMode = 0;
+ gSaveBlock2Ptr->apprentices[i].number = 0;
+ gSaveBlock2Ptr->apprentices[i].field_1 = 0;
+ for (j = 0; j < 4; j++)
+ gSaveBlock2Ptr->apprentices[i].playerId[j] = 0;
+ gSaveBlock2Ptr->apprentices[i].language = gGameLanguage;
+ gSaveBlock2Ptr->apprentices[i].unk40 = 0;
+ }
+
+ Script_ResetPlayerApprentice();
+}
+
+static bool8 IsPlayersApprenticeActive(void)
+{
+ return (PLAYER_APPRENTICE.activeLvlMode != 0);
+}
+
+static void sub_819FBC8(void)
+{
+ if (gSaveBlock2Ptr->apprentices[0].number == 0)
+ {
+ do
+ {
+ PLAYER_APPRENTICE.id = gUnknown_08611548[Random() % ARRAY_COUNT(gUnknown_08611548)];
+ } while (PLAYER_APPRENTICE.id == gSaveBlock2Ptr->apprentices[0].id);
+ }
+ else
+ {
+ do
+ {
+ PLAYER_APPRENTICE.id = Random() % 16;
+ } while (PLAYER_APPRENTICE.id == gSaveBlock2Ptr->apprentices[0].id);
+ }
+}
+
+static void SetPlayersApprenticeLvlMode(u8 mode)
+{
+ PLAYER_APPRENTICE.activeLvlMode = mode;
+}
+
+static void sub_819FC60(void)
+{
+ u8 array[APPRENTICE_SPECIES_COUNT];
+ u8 i;
+
+ for (i = 0; i < ARRAY_COUNT(array); i++)
+ array[i] = i;
+
+ for (i = 0; i < 50; i++)
+ {
+ u8 temp;
+ u8 var1 = Random() % ARRAY_COUNT(array);
+ u8 var2 = Random() % ARRAY_COUNT(array);
+ SWAP(array[var1], array[var2], temp);
+ }
+
+ for (i = 0; i < 3; i++)
+ PLAYER_APPRENTICE.monIds[i] = ((array[i * 2] & 0xF) << 4) | ((array[i * 2 + 1]) & 0xF);
+}
+
+static u8 sub_819FCF8(u8 val, u8 *arg1, u8 *arg2)
+{
+ u8 i, count;
+ u8 ret = 0;
+
+ if (val == 2)
+ {
+ do
+ {
+ ret = Random() % 3;
+ for (count = 0, i = 0; i < 5; i++)
+ {
+ if (gUnknown_030062EC->unk2[ret][i] != 0)
+ count++;
+ }
+ } while (count > 3);
+ }
+ else if (val == 1)
+ {
+ ret = arg1[*arg2];
+ (*arg2)++;
+ }
+
+ return ret;
+}
+
+static void sub_819FD64(void)
+{
+ u8 sp_0[10];
+ u8 sp_C[3];
+ u8 sp_10;
+ u8 i, j;
+ u8 rand1, rand2;
+ u8 id;
+
+ for (i = 0; i < 3; i++)
+ sp_C[i] = i;
+ for (i = 0; i < 10; i++)
+ {
+ u8 temp;
+ rand1 = Random() % ARRAY_COUNT(sp_C);
+ rand2 = Random() % ARRAY_COUNT(sp_C);
+ SWAP(sp_C[rand1], sp_C[rand2], temp);
+ }
+
+ for (i = 0; i < 10; i++)
+ sp_0[i] = gUnknown_086114D3[i];
+ for (i = 0; i < 50; i++)
+ {
+ u8 temp;
+ rand1 = Random() % ARRAY_COUNT(sp_0);
+ rand2 = Random() % ARRAY_COUNT(sp_0);
+ SWAP(sp_0[rand1], sp_0[rand2], temp);
+ }
+
+ gUnknown_030062EC = AllocZeroed(sizeof(*gUnknown_030062EC));
+ gUnknown_030062EC->unk0 = 0;
+ for (i = 0; i < 5; i++)
+ {
+ for (j = 0; j < 3; j++)
+ gUnknown_030062EC->unk20[j][i] = 4;
+ }
+
+ sp_10 = 0;
+ for (i = 0; i < 9; i++)
+ {
+ PLAYER_APPRENTICE.field_B8[i].unk0_0 = sp_0[i];
+ if (sp_0[i] != 3)
+ {
+ PLAYER_APPRENTICE.field_B8[i].unk0_1 = sub_819FCF8(sp_0[i], sp_C, &sp_10);
+ id = PLAYER_APPRENTICE.field_B8[i].unk0_1;
+ if (sp_0[i] == 2)
+ {
+ do
+ {
+ rand1 = Random() % 4;
+ for (j = 0; j < gUnknown_030062EC->unk0 + 1; j++)
+ {
+ if (gUnknown_030062EC->unk20[id][j] == rand1)
+ break;
+ }
+ } while (j != gUnknown_030062EC->unk0 + 1);
+
+ gUnknown_030062EC->unk20[id][gUnknown_030062EC->unk0] = rand1;
+ PLAYER_APPRENTICE.field_B8[i].unk0_2 = rand1;
+ PLAYER_APPRENTICE.field_B8[i].unk2 = sub_819FF98(PLAYER_APPRENTICE.field_B8[i].unk0_1);
+ }
+ }
+ }
+
+ FREE_AND_SET_NULL(gUnknown_030062EC);
+}
+
+// No idea why a do-while loop is needed, but it will not match without it.
+
+#define APPRENTICE_SPECIES_ID(speciesArrId, monId) speciesArrId = (PLAYER_APPRENTICE.monIds[monId] >> \
+ (((PLAYER_APPRENTICE.field_B2_0 >> monId) & 1) << 2)) & 0xF; \
+ do {} while (0)
+
+// Why the need to have two macros do the exact thing differently?
+#define APPRENTICE_SPECIES_ID_2(speciesArrId, monId) { u8 a0 = ((PLAYER_APPRENTICE.field_B2_0 >> monId) & 1);\
+ speciesArrId = PLAYER_APPRENTICE.monIds[monId]; \
+ speciesArrId = ((speciesArrId) >> (a0 << 2)) & 0xF; \
+ }
+
+static u16 sub_819FF98(u8 arg0)
+{
+ u8 i, j;
+ u8 id;
+ u8 knownMovesCount;
+ u16 species;
+ const u16 *learnset;
+ bool32 var_24 = FALSE;
+ u16 moveId = 0;
+ bool32 valid;
+ u8 level;
+
+ if (arg0 < 3)
+ {
+ APPRENTICE_SPECIES_ID(id, arg0);
+ }
+ else
+ {
+ id = 0;
+ }
+
+ species = gApprentices[PLAYER_APPRENTICE.id].species[id];
+ learnset = gLevelUpLearnsets[species];
+ j = 0;
+ if (PLAYER_APPRENTICE.activeLvlMode == 1)
+ level = 50;
+ else
+ level = 60;
+
+ for (j = 0; learnset[j] != 0xFFFF; j++)
+ {
+ if ((learnset[j] & 0xFE00) > (level << 9))
+ break;
+ }
+
+ knownMovesCount = j;
+ i = 0;
+ while (i < 5)
+ {
+ if (Random() % 2 == 0 || var_24 == TRUE)
+ {
+ do
+ {
+ do
+ {
+ id = Random() % (NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES);
+ valid = CanSpeciesLearnTMHM(species, id);
+ }
+ while (!valid);
+
+ moveId = ItemIdToBattleMoveId(ITEM_TM01 + id);
+ valid = TRUE;
+
+ if (knownMovesCount < 5)
+ j = 0;
+ else
+ j = knownMovesCount - 4;
+
+ for (; j < knownMovesCount; j++)
+ {
+ if ((learnset[j] & 0x1FF) == moveId)
+ {
+ valid = FALSE;
+ break;
+ }
+ }
+ } while (valid != TRUE);
+ }
+ else
+ {
+ if (knownMovesCount < 5)
+ {
+ var_24 = TRUE;
+ continue;
+ }
+ else
+ {
+ do
+ {
+ u8 learnsetId = Random() % (knownMovesCount - 4);
+ moveId = learnset[learnsetId] & 0x1FF;
+ valid = TRUE;
+ for (j = knownMovesCount - 4; j < knownMovesCount; j++)
+ {
+ if ((learnset[j] & 0x1FF) == moveId)
+ {
+ valid = FALSE;
+ break;
+ }
+ }
+ } while (valid != TRUE);
+ }
+ }
+
+ if (sub_81A0194(arg0, moveId))
+ {
+ if (gUnknown_08611370[moveId])
+ break;
+ i++;
+ }
+ }
+
+ gUnknown_030062EC->unk0++;
+ return moveId;
+}
+
+static bool8 sub_81A0194(u8 arg0, u16 moveId)
+{
+ u8 i;
+
+ for (i = 0; i < 5; i++)
+ {
+ if (gUnknown_030062EC->unk2[arg0][i] == moveId)
+ return FALSE;
+ }
+
+ gUnknown_030062EC->unk2[arg0][gUnknown_030062EC->unk0] = moveId;
+ return TRUE;
+}
+
+static void GetLatestLearnedMoves(u16 species, u16 *moves)
+{
+ u8 i, j;
+ u8 level, knownMovesCount;
+ const u16 *learnset;
+
+ if (PLAYER_APPRENTICE.activeLvlMode == 1)
+ level = 50;
+ else
+ level = 60;
+
+ learnset = gLevelUpLearnsets[species];
+ for (i = 0; learnset[i] != 0xFFFF; i++)
+ {
+ if ((learnset[i] & 0xFE00) > (level << 9))
+ break;
+ }
+
+ knownMovesCount = i;
+ if (knownMovesCount > 4)
+ knownMovesCount = 4;
+
+ for (j = 0; j < knownMovesCount; j++)
+ moves[j] = learnset[(i - 1) - j] & 0x1FF;
+}
+
+static u16 sub_81A0284(u8 arg0, u8 speciesTableId, u8 arg2)
+{
+ u16 moves[4];
+ u8 i, count;
+
+ if (PLAYER_APPRENTICE.field_B1_1 < 3)
+ return 0;
+
+ count = 0;
+ for (i = 0; i < 9; i++)
+ {
+ if (PLAYER_APPRENTICE.field_B8[i].unk0_0 == 0)
+ break;
+ count++;
+ }
+
+ GetLatestLearnedMoves(gApprentices[PLAYER_APPRENTICE.id].species[speciesTableId], moves);
+ for (i = 0; i < count && i < PLAYER_APPRENTICE.field_B1_1 - 3; i++)
+ {
+ if (PLAYER_APPRENTICE.field_B8[i].unk0_0 == 2
+ && PLAYER_APPRENTICE.field_B8[i].unk0_1 == arg0
+ && PLAYER_APPRENTICE.field_B8[i].unk0_3 != 0)
+ {
+ moves[PLAYER_APPRENTICE.field_B8[i].unk0_2] = PLAYER_APPRENTICE.field_B8[i].unk2;
+ }
+ }
+
+ return moves[arg2];
+}
+
+static void sub_81A0390(u8 arg0)
+{
+ struct ApprenticeMon *apprenticeMons[3];
+ u8 i, j;
+ u32 speciesTableId;
+
+ for (i = 0; i < 3; i++)
+ {
+ gSaveBlock2Ptr->apprentices[0].monData[i].species = 0;
+ gSaveBlock2Ptr->apprentices[0].monData[i].item = 0;
+ for (j = 0; j < 4; j++)
+ gSaveBlock2Ptr->apprentices[0].monData[i].moves[j] = 0;
+ }
+
+ j = PLAYER_APPRENTICE.field_B1_2;
+ for (i = 0; i < 3; i++)
+ {
+ apprenticeMons[j] = &gSaveBlock2Ptr->apprentices[0].monData[i];
+ j = (j + 1) % 3;
+ }
+
+ for (i = 0; i < 3; i++)
+ {
+ APPRENTICE_SPECIES_ID(speciesTableId, i);
+ apprenticeMons[i]->species = gApprentices[PLAYER_APPRENTICE.id].species[speciesTableId];
+ GetLatestLearnedMoves(apprenticeMons[i]->species, apprenticeMons[i]->moves);
+ }
+
+ for (i = 0; i < arg0; i++)
+ {
+ u8 var1 = PLAYER_APPRENTICE.field_B8[i].unk0_0;
+ u8 monId = PLAYER_APPRENTICE.field_B8[i].unk0_1;
+ if (var1 == 1)
+ {
+ if (PLAYER_APPRENTICE.field_B8[i].unk0_3 != 0)
+ apprenticeMons[monId]->item = PLAYER_APPRENTICE.field_B8[i].unk2;
+ }
+ else if (var1 == 2)
+ {
+ if (PLAYER_APPRENTICE.field_B8[i].unk0_3 != 0)
+ {
+ u32 moveSlot = PLAYER_APPRENTICE.field_B8[i].unk0_2;
+ apprenticeMons[monId]->moves[moveSlot] = PLAYER_APPRENTICE.field_B8[i].unk2;
+ }
+ }
+ }
+}
+
+static void CreateMenuWithAnswers(u8 arg0)
+{
+ u8 i;
+ u8 windowId;
+ const u8 *strings[3];
+ u8 count = 2;
+ u8 width;
+ u8 left;
+ u8 top;
+ s32 pixelWidth;
+
+ switch (arg0)
+ {
+ case APPRENTICE_ASK_WHICH_LEVEL:
+ left = 0x12;
+ top = 8;
+ strings[0] = gText_Lv50;
+ strings[1] = gText_OpenLevel;
+ break;
+ case APPRENTICE_ASK_3SPECIES:
+ count = 3;
+ left = 0x12;
+ top = 6;
+ for (i = 0; i < 3; i++)
+ {
+ u16 species;
+ u32 speciesTableId;
+
+ APPRENTICE_SPECIES_ID(speciesTableId, i);
+ species = gApprentices[PLAYER_APPRENTICE.id].species[speciesTableId];
+ strings[i] = gSpeciesNames[species];
+ }
+ break;
+ case APPRENTICE_ASK_2SPECIES:
+ left = 0x12;
+ top = 8;
+ if (PLAYER_APPRENTICE.field_B1_1 > 2)
+ return;
+ strings[1] = gSpeciesNames[gUnknown_030062F0->unk2];
+ strings[0] = gSpeciesNames[gUnknown_030062F0->unk0];
+ break;
+ case APPRENTICE_ASK_MOVES:
+ left = 0x11;
+ top = 8;
+ strings[0] = gMoveNames[gUnknown_030062F0->unk4];
+ strings[1] = gMoveNames[gUnknown_030062F0->unk6];
+ break;
+ case APPRENTICE_ASK_GIVE:
+ left = 0x12;
+ top = 8;
+ strings[0] = gText_Give;
+ strings[1] = gText_NoNeed;
+ break;
+ case APPRENTICE_ASK_YES_NO:
+ left = 0x14;
+ top = 8;
+ strings[0] = gText_Yes;
+ strings[1] = gText_No;
+ break;
+ default:
+ left = 0;
+ top = 0;
+ break;
+ }
+
+ pixelWidth = 0;
+ for (i = 0; i < count; i++)
+ {
+ s32 width = GetStringWidth(1, strings[i], 0);
+ if (width > pixelWidth)
+ pixelWidth = width;
+ }
+
+ width = convert_pixel_width_to_tile_width(pixelWidth);
+ left = sub_80E2D5C(left, width);
+ windowId = CreateAndShowWindow(left, top, width, count * 2);
+ SetStandardWindowBorderStyle(windowId, 0);
+
+ for (i = 0; i < count; i++)
+ AddTextPrinterParameterized(windowId, 1, strings[i], 8, (i * 16) + 1, TEXT_SPEED_FF, NULL);
+
+ InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, count, 0);
+ CreateChooseAnswerTask(TRUE, count, windowId);
+}
+
+#define tNoBButton data[4]
+#define tWrapAround data[5]
+#define tWindowId data[6]
+
+static void Task_ChooseAnswer(u8 taskId)
+{
+ s8 input;
+ s16 *data = gTasks[taskId].data;
+
+ if (!tWrapAround)
+ input = Menu_ProcessInputNoWrapAround();
+ else
+ input = ProcessMenuInput();
+
+ switch (input)
+ {
+ case MENU_NOTHING_CHOSEN:
+ return;
+ case MENU_B_PRESSED:
+ if (tNoBButton)
+ return;
+
+ PlaySE(SE_SELECT);
+ gSpecialVar_Result = 0x7F;
+ break;
+ default:
+ gSpecialVar_Result = input;
+ break;
+ }
+
+ RemoveAndHideWindow(tWindowId);
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+}
+
+static u8 CreateAndShowWindow(u8 left, u8 top, u8 width, u8 height)
+{
+ u8 windowId;
+ struct WindowTemplate winTemplate = CreateWindowTemplate(0, left + 1, top + 1, width, height, 15, 100);
+
+ windowId = AddWindow(&winTemplate);
+ PutWindowTilemap(windowId);
+ CopyWindowToVram(windowId, 3);
+ return windowId;
+}
+
+static void RemoveAndHideWindow(u8 windowId)
+{
+ sub_8198070(windowId, TRUE);
+ RemoveWindow(windowId);
+}
+
+static void CreateChooseAnswerTask(bool8 noBButton, u8 itemsCount, u8 windowId)
+{
+ u8 taskId = CreateTask(Task_ChooseAnswer, 80);
+ gTasks[taskId].tNoBButton = noBButton;
+
+ if (itemsCount > 3)
+ gTasks[taskId].tWrapAround = TRUE;
+ else
+ gTasks[taskId].tWrapAround = FALSE;
+
+ gTasks[taskId].tWindowId = windowId;
+}
+
+#undef tNoBButton
+#undef tWrapAround
+#undef tWindowId
+
+void CallApprenticeFunction(void)
+{
+ sApprenticeFunctions[gSpecialVar_0x8004]();
+}
+
+static void Script_ResetPlayerApprentice(void)
+{
+ u8 i;
+
+ sub_819FBC8();
+ PLAYER_APPRENTICE.activeLvlMode = 0;
+ PLAYER_APPRENTICE.field_B1_1 = 0;
+ PLAYER_APPRENTICE.field_B1_2 = 0;
+ PLAYER_APPRENTICE.field_B2_0 = 0;
+
+ for (i = 0; i < 3; i++)
+ PLAYER_APPRENTICE.monIds[i] = 0;
+
+ for (i = 0; i < 9; i++)
+ {
+ PLAYER_APPRENTICE.field_B8[i].unk0_0 = 0;
+ PLAYER_APPRENTICE.field_B8[i].unk0_1 = 0;
+ PLAYER_APPRENTICE.field_B8[i].unk0_2 = 0;
+ PLAYER_APPRENTICE.field_B8[i].unk0_3 = 0;
+ PLAYER_APPRENTICE.field_B8[i].unk2 = 0;
+ }
+}
+
+static void Script_IsPlayersApprenticeActive(void)
+{
+ if (!IsPlayersApprenticeActive())
+ gSpecialVar_Result = FALSE;
+ else
+ gSpecialVar_Result = TRUE;
+}
+
+static void Script_SetPlayersApprenticeLvlMode(void)
+{
+ SetPlayersApprenticeLvlMode(gSpecialVar_0x8005);
+}
+
+static void sub_81A0978(void)
+{
+ sub_819FBC8();
+}
+
+static void sub_81A0984(void)
+{
+ sub_819FD64();
+}
+
+static void sub_81A0990(void)
+{
+ PLAYER_APPRENTICE.field_B1_1++;
+}
+
+static void sub_81A09B4(void)
+{
+ gSpecialVar_Result = PLAYER_APPRENTICE.field_B1_1;
+}
+
+static void sub_81A09D0(void)
+{
+ s32 var = PLAYER_APPRENTICE.field_B1_1 - 3;
+ if (var < 0)
+ {
+ gSpecialVar_Result = FALSE;
+ }
+ else
+ {
+ if (var > 8)
+ gSpecialVar_Result = TRUE;
+
+ if (!PLAYER_APPRENTICE.field_B8[var].unk0_0)
+ gSpecialVar_Result = TRUE;
+ else
+ gSpecialVar_Result = FALSE;
+ }
+}
+
+static void Script_CreateApprenticeMenu(void)
+{
+ CreateMenuWithAnswers(gSpecialVar_0x8005);
+}
+
+static void Task_WaitForPrintingMessage(u8 taskId)
+{
+ if (!RunTextPrintersAndIsPrinter0Active())
+ {
+ DestroyTask(taskId);
+ if (gSpecialVar_0x8005)
+ ExecuteFuncAfterButtonPress(EnableBothScriptContexts);
+ else
+ EnableBothScriptContexts();
+ }
+}
+
+static void PrintMessage(void)
+{
+ const u8 *string;
+
+ if (gSpecialVar_0x8006 == 6)
+ {
+ string = gUnknown_08610FF0[PLAYER_APPRENTICE.id][0];
+ }
+ else if (gSpecialVar_0x8006 == 7)
+ {
+ string = gUnknown_08610FF0[PLAYER_APPRENTICE.id][1];
+ }
+ else if (gSpecialVar_0x8006 == 8)
+ {
+ string = gUnknown_086111B0[PLAYER_APPRENTICE.id][0];
+ }
+ else if (gSpecialVar_0x8006 == 9)
+ {
+ string = gUnknown_086111B0[PLAYER_APPRENTICE.id][1];
+ }
+ else if (gSpecialVar_0x8006 == 4)
+ {
+ string = gUnknown_08611230[PLAYER_APPRENTICE.id][0];
+ }
+ else if (gSpecialVar_0x8006 == 5)
+ {
+ string = gUnknown_08611230[PLAYER_APPRENTICE.id][1];
+ }
+ else if (gSpecialVar_0x8006 == 10)
+ {
+ string = gUnknown_08611070[PLAYER_APPRENTICE.id][0];
+ }
+ else if (gSpecialVar_0x8006 == 11)
+ {
+ string = gUnknown_086112B0[PLAYER_APPRENTICE.id][0];
+ }
+ else if (gSpecialVar_0x8006 == 12)
+ {
+ string = gUnknown_08611070[PLAYER_APPRENTICE.id][3];
+ }
+ else if (gSpecialVar_0x8006 == 13)
+ {
+ string = gUnknown_08611070[PLAYER_APPRENTICE.id][1];
+ }
+ else if (gSpecialVar_0x8006 == 16)
+ {
+ string = gUnknown_08611070[PLAYER_APPRENTICE.id][4];
+ }
+ else if (gSpecialVar_0x8006 == 14)
+ {
+ string = gUnknown_08611070[PLAYER_APPRENTICE.id][2];
+ }
+ else if (gSpecialVar_0x8006 == 15)
+ {
+ string = gUnknown_086112B0[PLAYER_APPRENTICE.id][1];
+ }
+ else if (gSpecialVar_0x8006 == 0)
+ {
+ string = gUnknown_08610EF0[PLAYER_APPRENTICE.id][0];
+ }
+ else if (gSpecialVar_0x8006 == 1)
+ {
+ string = gUnknown_08610EF0[PLAYER_APPRENTICE.id][1];
+ }
+ else if (gSpecialVar_0x8006 == 2)
+ {
+ string = gUnknown_08610EF0[PLAYER_APPRENTICE.id][2];
+ }
+ else if (gSpecialVar_0x8006 == 3)
+ {
+ string = gUnknown_08610EF0[PLAYER_APPRENTICE.id][3];
+ }
+ else
+ {
+ EnableBothScriptContexts();
+ return;
+ }
+
+ StringExpandPlaceholders(gStringVar4, string);
+ AddTextPrinterForMessage(TRUE);
+ CreateTask(Task_WaitForPrintingMessage, 1);
+}
+
+static void Script_PrintMessage(void)
+{
+ ScriptContext2_Enable();
+ FreezeEventObjects();
+ sub_808B864();
+ sub_808BCF4();
+ NewMenuHelpers_DrawDialogueFrame(0, 1);
+ PrintMessage();
+}
+
+static void sub_81A0CC0(void)
+{
+ if (PLAYER_APPRENTICE.field_B1_1 < 3)
+ {
+ gSpecialVar_Result = 2;
+ }
+ else if (PLAYER_APPRENTICE.field_B1_1 > 11)
+ {
+ gSpecialVar_Result = 5;
+ }
+ else
+ {
+ s32 id = PLAYER_APPRENTICE.field_B1_1 - 3;
+ switch (PLAYER_APPRENTICE.field_B8[id].unk0_0)
+ {
+ case 1:
+ gSpecialVar_Result = 4;
+ break;
+ case 2:
+ gSpecialVar_Result = 3;
+ break;
+ case 3:
+ gSpecialVar_Result = 1;
+ break;
+ default:
+ gSpecialVar_Result = 5;
+ break;
+ }
+ }
+}
+
+static void sub_81A0D40(void)
+{
+ if (gSpecialVar_0x8005)
+ {
+ u8 bitNo = gSpecialVar_0x8006;
+ PLAYER_APPRENTICE.field_B2_0 |= 1 << bitNo;
+ }
+}
+
+static void sub_81A0D80(void)
+{
+ if (PLAYER_APPRENTICE.field_B1_1 >= 3)
+ {
+ u8 id = PLAYER_APPRENTICE.field_B1_1 - 3;
+ if (gSpecialVar_0x8005)
+ PLAYER_APPRENTICE.field_B8[id].unk0_3 = 1;
+ else
+ PLAYER_APPRENTICE.field_B8[id].unk0_3 = 0;
+ }
+}
+
+static void sub_81A0DD4(void)
+{
+ u8 i;
+ u8 count = 0;
+ u8 id1, id2;
+
+ for (i = 0; i < 9 && PLAYER_APPRENTICE.field_B8[i].unk0_0; count++, i++)
+ ;
+
+ gUnknown_030062F0 = AllocZeroed(sizeof(*gUnknown_030062F0));
+ if (gSpecialVar_0x8005 == 2)
+ {
+ if (PLAYER_APPRENTICE.field_B1_1 < 3)
+ {
+ id1 = PLAYER_APPRENTICE.monIds[PLAYER_APPRENTICE.field_B1_1] >> 4;
+ gUnknown_030062F0->unk2 = gApprentices[PLAYER_APPRENTICE.id].species[id1];
+
+ id2 = PLAYER_APPRENTICE.monIds[PLAYER_APPRENTICE.field_B1_1] & 0xF;
+ gUnknown_030062F0->unk0 = gApprentices[PLAYER_APPRENTICE.id].species[id2];
+ }
+ }
+ else if (gSpecialVar_0x8005 == 3)
+ {
+ if (PLAYER_APPRENTICE.field_B1_1 >= 3
+ && PLAYER_APPRENTICE.field_B1_1 < count + 3
+ && PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_0 == 2)
+ {
+ count = PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_1;
+ APPRENTICE_SPECIES_ID_2(id1, count);
+ gUnknown_030062F0->unk0 = gApprentices[PLAYER_APPRENTICE.id].species[id1];
+ gUnknown_030062F0->unk4 = sub_81A0284(count, id1, PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_2);
+ gUnknown_030062F0->unk6 = PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk2;
+ }
+ }
+ else if (gSpecialVar_0x8005 == 4)
+ {
+ if (PLAYER_APPRENTICE.field_B1_1 >= 3
+ && PLAYER_APPRENTICE.field_B1_1 < count + 3
+ && PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_0 == 1)
+ {
+ count = PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_1;
+ APPRENTICE_SPECIES_ID_2(id2, count);
+ gUnknown_030062F0->unk0 = gApprentices[PLAYER_APPRENTICE.id].species[id2];
+ }
+ }
+}
+
+static void sub_81A0FE4(void)
+{
+ FREE_AND_SET_NULL(gUnknown_030062F0);
+}
+
+static void sub_81A0FFC(void)
+{
+ u8 *stringDst;
+ u8 text[16];
+ u32 speciesArrayId;
+
+ switch (gSpecialVar_0x8005)
+ {
+ case 0:
+ stringDst = gStringVar1;
+ break;
+ case 1:
+ stringDst = gStringVar2;
+ break;
+ case 2:
+ stringDst = gStringVar3;
+ break;
+ default:
+ return;
+ }
+
+ switch (gSpecialVar_0x8006)
+ {
+ case APPRENTICE_BUFF_SPECIES1:
+ StringCopy(stringDst, gSpeciesNames[gUnknown_030062F0->unk0]);
+ break;
+ case APPRENTICE_BUFF_SPECIES2:
+ StringCopy(stringDst, gSpeciesNames[gUnknown_030062F0->unk2]);
+ break;
+ case APPRENTICE_BUFF_SPECIES3:
+ StringCopy(stringDst, gSpeciesNames[gUnknown_030062F0->unk0]);
+ break;
+ case APPRENTICE_BUFF_MOVE1:
+ StringCopy(stringDst, gMoveNames[gUnknown_030062F0->unk4]);
+ break;
+ case APPRENTICE_BUFF_MOVE2:
+ StringCopy(stringDst, gMoveNames[gUnknown_030062F0->unk6]);
+ break;
+ case APPRENTICE_BUFF_ITEM:
+ StringCopy(stringDst, ItemId_GetName(PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk2));
+ break;
+ case APPRENTICE_BUFF_NAME:
+ TVShowConvertInternationalString(text, GetApprenticeNameInLanguage(PLAYER_APPRENTICE.id, LANGUAGE_ENGLISH), LANGUAGE_ENGLISH);
+ StringCopy(stringDst, text);
+ break;
+ case APPRENTICE_BUFF_LEVEL:
+ if (PLAYER_APPRENTICE.activeLvlMode == 1)
+ StringCopy(stringDst, gText_Lv50);
+ else
+ StringCopy(stringDst, gText_OpenLevel);
+ break;
+ case APPRENTICE_BUFF_EASY_CHAT:
+ ConvertBattleFrontierTrainerSpeechToString(gSaveBlock2Ptr->apprentices[0].easyChatWords);
+ StringCopy(stringDst, gStringVar4);
+ break;
+ case APPRENTICE_BUFF_SPECIES4:
+ if (PLAYER_APPRENTICE.field_B1_2 < 3)
+ {
+ APPRENTICE_SPECIES_ID(speciesArrayId, PLAYER_APPRENTICE.field_B1_2);
+ }
+ else
+ {
+ speciesArrayId = 0;
+ }
+ StringCopy(stringDst, gSpeciesNames[gApprentices[PLAYER_APPRENTICE.id].species[speciesArrayId]]);
+ break;
+ }
+}
+
+static void sub_81A11F8(void)
+{
+ PLAYER_APPRENTICE.field_B1_2 = gSpecialVar_0x8005;
+}
+
+static void sub_81A1218(void)
+{
+ sub_81AAC28();
+}
+
+#ifdef NONMATCHING
+static void sub_81A1224(void)
+{
+ u8 count;
+ u8 i, j;
+
+ if (PLAYER_APPRENTICE.field_B1_1 < 3)
+ return;
+
+ count = 0;
+ for (j = 0; j < 9 && PLAYER_APPRENTICE.field_B8[j].unk0_0; count++, j++)
+ ;
+
+ for (i = 0; i < count && i < PLAYER_APPRENTICE.field_B1_1 - 3; i++)
+ {
+ if (PLAYER_APPRENTICE.field_B8[i].unk0_0 == 1
+ && PLAYER_APPRENTICE.field_B8[i].unk0_3
+ && PLAYER_APPRENTICE.field_B8[i].unk2 == gSpecialVar_0x8005)
+ {
+ PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_3 = 0;
+ PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk2 = gSpecialVar_0x8005;
+ gSpecialVar_Result = i;
+ return;
+ }
+ }
+
+ PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_3 = 1;
+ PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk2 = gSpecialVar_0x8005;
+ gSpecialVar_Result = 1;
+}
+#else
+NAKED
+static void sub_81A1224(void)
+{
+ asm_unified("\n\
+ push {r4-r7,lr}\n\
+ mov r7, r9\n\
+ mov r6, r8\n\
+ push {r6,r7}\n\
+ ldr r1, =gSaveBlock2Ptr\n\
+ ldr r3, [r1]\n\
+ adds r0, r3, 0\n\
+ adds r0, 0xB1\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 26\n\
+ lsrs r0, 28\n\
+ adds r7, r1, 0\n\
+ cmp r0, 0x2\n\
+ bhi _081A1242\n\
+ b _081A1362\n\
+_081A1242:\n\
+ movs r5, 0\n\
+ movs r2, 0\n\
+ adds r0, r3, 0\n\
+ adds r0, 0xB8\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 30\n\
+ ldr r1, =gSpecialVar_0x8005\n\
+ mov r12, r1\n\
+ ldr r1, =gSpecialVar_Result\n\
+ mov r8, r1\n\
+ cmp r0, 0\n\
+ beq _081A127C\n\
+ adds r3, r7, 0\n\
+_081A125C:\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ adds r0, r2, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r2, r0, 24\n\
+ cmp r2, 0x8\n\
+ bhi _081A127C\n\
+ ldr r0, [r3]\n\
+ lsls r1, r2, 2\n\
+ adds r0, r1\n\
+ adds r0, 0xB8\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 30\n\
+ cmp r0, 0\n\
+ bne _081A125C\n\
+_081A127C:\n\
+ movs r4, 0\n\
+ cmp r4, r5\n\
+ bcs _081A1322\n\
+ ldr r0, [r7]\n\
+ adds r0, 0xB1\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 26\n\
+ lsrs r0, 28\n\
+ subs r0, 0x3\n\
+ cmp r4, r0\n\
+ bge _081A1322\n\
+ adds r6, r7, 0\n\
+ mov r9, r4\n\
+_081A1296:\n\
+ ldr r3, [r6]\n\
+ lsls r0, r4, 2\n\
+ adds r2, r3, r0\n\
+ adds r0, r2, 0\n\
+ adds r0, 0xB8\n\
+ ldrb r1, [r0]\n\
+ lsls r0, r1, 30\n\
+ lsrs r0, 30\n\
+ cmp r0, 0x1\n\
+ bne _081A1308\n\
+ lsrs r0, r1, 6\n\
+ cmp r0, 0\n\
+ beq _081A1308\n\
+ adds r0, r2, 0\n\
+ adds r0, 0xBA\n\
+ ldrh r0, [r0]\n\
+ mov r2, r12\n\
+ ldrh r2, [r2]\n\
+ cmp r0, r2\n\
+ bne _081A1308\n\
+ adds r0, r3, 0\n\
+ adds r0, 0xB1\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 26\n\
+ lsrs r0, 28\n\
+ subs r0, 0x3\n\
+ lsls r0, 2\n\
+ adds r0, r3, r0\n\
+ adds r0, 0xB8\n\
+ ldrb r2, [r0]\n\
+ movs r1, 0x3F\n\
+ ands r1, r2\n\
+ strb r1, [r0]\n\
+ ldr r1, [r6]\n\
+ adds r0, r1, 0\n\
+ adds r0, 0xB1\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 26\n\
+ lsrs r0, 28\n\
+ subs r0, 0x3\n\
+ lsls r0, 2\n\
+ adds r1, r0\n\
+ mov r2, r12\n\
+ ldrh r0, [r2]\n\
+ adds r1, 0xBA\n\
+ strh r0, [r1]\n\
+ mov r1, r9\n\
+ mov r0, r8\n\
+ strh r1, [r0]\n\
+ b _081A1362\n\
+ .pool\n\
+_081A1308:\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, r5\n\
+ bcs _081A1322\n\
+ ldr r0, [r6]\n\
+ adds r0, 0xB1\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 26\n\
+ lsrs r0, 28\n\
+ subs r0, 0x3\n\
+ cmp r4, r0\n\
+ blt _081A1296\n\
+_081A1322:\n\
+ ldr r2, [r7]\n\
+ adds r0, r2, 0\n\
+ adds r0, 0xB1\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 26\n\
+ lsrs r0, 28\n\
+ subs r0, 0x3\n\
+ lsls r0, 2\n\
+ adds r2, r0\n\
+ adds r2, 0xB8\n\
+ ldrb r1, [r2]\n\
+ movs r0, 0x3F\n\
+ ands r0, r1\n\
+ movs r1, 0x40\n\
+ orrs r0, r1\n\
+ strb r0, [r2]\n\
+ ldr r1, [r7]\n\
+ adds r0, r1, 0\n\
+ adds r0, 0xB1\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 26\n\
+ lsrs r0, 28\n\
+ subs r0, 0x3\n\
+ lsls r0, 2\n\
+ adds r1, r0\n\
+ mov r2, r12\n\
+ ldrh r0, [r2]\n\
+ adds r1, 0xBA\n\
+ strh r0, [r1]\n\
+ movs r0, 0x1\n\
+ mov r1, r8\n\
+ strh r0, [r1]\n\
+_081A1362:\n\
+ pop {r3,r4}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+");
+}
+#endif // NONMATCHING
+
+static void sub_81A1370(void)
+{
+ s32 i;
+ s32 r10;
+ s32 r9;
+
+ if (gSaveBlock2Ptr->apprentices[0].playerName[0] == EOS)
+ return;
+
+ for (i = 0; i < 3; i++)
+ {
+ if (gSaveBlock2Ptr->apprentices[i + 1].playerName[0] == EOS)
+ {
+ gSaveBlock2Ptr->apprentices[i + 1] = gSaveBlock2Ptr->apprentices[0];
+ return;
+ }
+ }
+
+ r10 = 0xFFFF;
+ r9 = -1;
+ for (i = 1; i < 4; i++)
+ {
+ if (ReadUnalignedWord(gSaveBlock2Ptr->apprentices[i].playerId) == ReadUnalignedWord(gSaveBlock2Ptr->playerTrainerId)
+ && gSaveBlock2Ptr->apprentices[i].number < r10)
+ {
+ r10 = gSaveBlock2Ptr->apprentices[i].number;
+ r9 = i;
+ }
+ }
+
+ if (r9 > 0)
+ gSaveBlock2Ptr->apprentices[r9] = gSaveBlock2Ptr->apprentices[0];
+}
+
+static void sub_81A1438(void)
+{
+ u8 i;
+
+ gSaveBlock2Ptr->apprentices[0].id = PLAYER_APPRENTICE.id;
+ gSaveBlock2Ptr->apprentices[0].lvlMode = PLAYER_APPRENTICE.activeLvlMode;
+
+ for (i = 0; i < 9 && PLAYER_APPRENTICE.field_B8[i].unk0_0; i++)
+ ;
+
+ gSaveBlock2Ptr->apprentices[0].field_1 = i;
+ if (gSaveBlock2Ptr->apprentices[0].number < 255)
+ gSaveBlock2Ptr->apprentices[0].number++;
+
+ sub_81A0390(gSaveBlock2Ptr->apprentices[0].field_1);
+ for (i = 0; i < 4; i++)
+ gSaveBlock2Ptr->apprentices[0].playerId[i] = gSaveBlock2Ptr->playerTrainerId[i];
+
+ StringCopy(gSaveBlock2Ptr->apprentices[0].playerName, gSaveBlock2Ptr->playerName);
+ gSaveBlock2Ptr->apprentices[0].language = gGameLanguage;
+ sub_8165AE8(&gSaveBlock2Ptr->apprentices[0]);
+}
+
+static void sub_81A150C(void)
+{
+ u8 i;
+ u8 mapObjectGfxId;
+ u8 class = gApprentices[gSaveBlock2Ptr->apprentices[0].id].facilityClass;
+
+ for (i = 0; i < 30 && gUnknown_085DCEDC[i] != class; i++)
+ ;
+
+ if (i != 30)
+ {
+ mapObjectGfxId = gUnknown_085DCF0E[i];
+ VarSet(VAR_OBJ_GFX_ID_0, mapObjectGfxId);
+ }
+ else
+ {
+ for (i = 0; i < 20 && gUnknown_085DCEFA[i] != class; i++)
+ ;
+
+ if (i != 20)
+ {
+ mapObjectGfxId = gUnknown_085DCF2C[i];
+ VarSet(VAR_OBJ_GFX_ID_0, mapObjectGfxId);
+ }
+ }
+}
+
+static void sub_81A15A4(void)
+{
+ u8 i;
+ u8 mapObjectGfxId;
+ u8 class = gApprentices[PLAYER_APPRENTICE.id].facilityClass;
+
+ for (i = 0; i < 30 && gUnknown_085DCEDC[i] != class; i++)
+ ;
+
+ if (i != 30)
+ {
+ mapObjectGfxId = gUnknown_085DCF0E[i];
+ VarSet(VAR_OBJ_GFX_ID_0, mapObjectGfxId);
+ }
+ else
+ {
+ for (i = 0; i < 20 && gUnknown_085DCEFA[i] != class; i++)
+ ;
+
+ if (i != 20)
+ {
+ mapObjectGfxId = gUnknown_085DCF2C[i];
+ VarSet(VAR_OBJ_GFX_ID_0, mapObjectGfxId);
+ }
+ }
+}
+
+static void sub_81A1638(void)
+{
+ gSpecialVar_0x8004 = 1;
+}
+
+static void sub_81A1644(void)
+{
+ gSpecialVar_0x8004 = 1;
+}
+
+const u8 *GetApprenticeNameInLanguage(u32 apprenticeId, s32 language)
+{
+ const struct ApprenticeTrainer *apprentice = &gApprentices[apprenticeId];
+
+ switch (language)
+ {
+ case LANGUAGE_JAPANESE:
+ return apprentice->name[0];
+ case LANGUAGE_ENGLISH:
+ return apprentice->name[1];
+ case LANGUAGE_FRENCH:
+ return apprentice->name[2];
+ case LANGUAGE_ITALIAN:
+ return apprentice->name[3];
+ case LANGUAGE_GERMAN:
+ return apprentice->name[4];
+ case LANGUAGE_SPANISH:
+ default:
+ return apprentice->name[5];
+ }
+}
+
+static void sub_81A16B4(u8 taskId)
+{
+ if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON)
+ SwitchTaskToFollowupFunc(taskId);
+}
+
+static void Task_ExecuteFuncAfterButtonPress(u8 taskId)
+{
+ if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON)
+ {
+ gUnknown_030062F4 = (void*)(u32)(((u16)gTasks[taskId].data[0] | (gTasks[taskId].data[1] << 0x10)));
+ gUnknown_030062F4();
+ DestroyTask(taskId);
+ }
+}
+
+static void ExecuteFuncAfterButtonPress(void (*func)(void))
+{
+ u8 taskId = CreateTask(Task_ExecuteFuncAfterButtonPress, 1);
+ gTasks[taskId].data[0] = (u32)(func);
+ gTasks[taskId].data[1] = (u32)(func) >> 16;
+}
+
+static void sub_81A175C(TaskFunc taskFunc)
+{
+ u8 taskId = CreateTask(sub_81A16B4, 1);
+ SetTaskFuncWithFollowupFunc(taskId, sub_81A16B4, taskFunc);
+}
diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c
index 1201a855a..e89d308f5 100644
--- a/src/battle_ai_script_commands.c
+++ b/src/battle_ai_script_commands.c
@@ -2191,7 +2191,7 @@ static void BattleAICmd_if_level_cond(void)
static void BattleAICmd_if_target_taunted(void)
{
- if (gDisableStructs[gBattlerTarget].tauntTimer1 != 0)
+ if (gDisableStructs[gBattlerTarget].tauntTimer != 0)
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
@@ -2199,7 +2199,7 @@ static void BattleAICmd_if_target_taunted(void)
static void BattleAICmd_if_target_not_taunted(void)
{
- if (gDisableStructs[gBattlerTarget].tauntTimer1 == 0)
+ if (gDisableStructs[gBattlerTarget].tauntTimer == 0)
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c
index a105e7edf..40fffd6e5 100644
--- a/src/battle_ai_switch_items.c
+++ b/src/battle_ai_switch_items.c
@@ -17,7 +17,7 @@ static bool8 ShouldUseItem(void);
static bool8 ShouldSwitchIfPerishSong(void)
{
if (gStatuses3[gActiveBattler] & STATUS3_PERISH_SONG
- && gDisableStructs[gActiveBattler].perishSongTimer1 == 0)
+ && gDisableStructs[gActiveBattler].perishSongTimer == 0)
{
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = PARTY_SIZE;
BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0);
diff --git a/src/battle_anim_80A5C6C.c b/src/battle_anim_80A5C6C.c
index f4a4946c3..ebe1718b7 100644
--- a/src/battle_anim_80A5C6C.c
+++ b/src/battle_anim_80A5C6C.c
@@ -3,7 +3,6 @@
#include "constants/species.h"
#include "battle.h"
#include "battle_anim.h"
-#include "blend_palette.h"
#include "contest.h"
#include "data2.h"
#include "decompress.h"
@@ -861,7 +860,7 @@ bool8 IsBattlerSpritePresent(u8 battlerId)
return FALSE;
}
-bool8 IsDoubleBattle()
+bool8 IsDoubleBattle(void)
{
return IS_DOUBLE_BATTLE();
}
diff --git a/src/battle_anim_80A9C70.c b/src/battle_anim_80A9C70.c
index 1f8a53993..9b9218b1c 100644
--- a/src/battle_anim_80A9C70.c
+++ b/src/battle_anim_80A9C70.c
@@ -3,7 +3,7 @@
#include "battle_anim.h"
#include "constants/battle_anim.h"
#include "constants/rgb.h"
-#include "blend_palette.h"
+#include "util.h"
#include "decompress.h"
#include "palette.h"
#include "sprite.h"
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index 57a4efa9f..02479a1be 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -2710,7 +2710,7 @@ static void PlayerHandleExpUpdate(void)
{
u8 monId = gBattleBufferA[gActiveBattler][1];
- if (GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL) >= MAX_MON_LEVEL)
+ if (GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL) >= MAX_LEVEL)
{
PlayerBufferExecCompleted();
}
diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c
index 7795c5656..c72847bd2 100644
--- a/src/battle_controller_player_partner.c
+++ b/src/battle_controller_player_partner.c
@@ -1597,7 +1597,7 @@ static void PlayerPartnerHandleExpUpdate(void)
{
u8 monId = gBattleBufferA[gActiveBattler][1];
- if (GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL) >= MAX_MON_LEVEL)
+ if (GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL) >= MAX_LEVEL)
{
PlayerPartnerBufferExecCompleted();
}
diff --git a/src/battle_controllers.c b/src/battle_controllers.c
index 63154ae8b..56ff34528 100644
--- a/src/battle_controllers.c
+++ b/src/battle_controllers.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "battle.h"
#include "battle_controllers.h"
+#include "cable_club.h"
#include "link.h"
#include "task.h"
#include "battle_ai_script_commands.h"
@@ -18,7 +19,6 @@ extern u8 gUnknown_02022D0A;
static EWRAM_DATA u8 sBattleBuffersTransferData[0x100] = {};
-extern void task00_08081A90(u8 taskId); // cable_club
extern void sub_81B8D64(u8 battlerId, u8 arg1); // party_menu
// this file's funcionts
diff --git a/src/battle_dome.c b/src/battle_dome.c
index 82384b43a..8de1c058c 100644
--- a/src/battle_dome.c
+++ b/src/battle_dome.c
@@ -68,7 +68,7 @@ extern bool8 sub_81A3610(void);
extern u16 sub_81A4FF0(u8);
extern u8 GetFrontierTrainerFrontSpriteId(u16);
extern u8 GetFrontierOpponentClass(u16);
-extern void sub_80F94E8(void);
+extern void ReducePlayerPartyToThree(void);
extern u8 gUnknown_0203CEF8[];
extern u16 gBattle_BG0_X;
@@ -6132,7 +6132,7 @@ static void sub_8194E44(void)
static void sub_8194EB4(void)
{
- sub_80F94E8();
+ ReducePlayerPartyToThree();
}
static void sub_8194EC0(void)
diff --git a/src/battle_factory.c b/src/battle_factory.c
index 36c5ed2e8..2c8ab1052 100644
--- a/src/battle_factory.c
+++ b/src/battle_factory.c
@@ -20,7 +20,7 @@
#include "pokemon_summary_screen.h"
#include "sound.h"
#include "pokedex.h"
-#include "blend_palette.h"
+#include "util.h"
#include "trainer_pokemon_sprites.h"
#include "constants/battle_frontier.h"
#include "constants/songs.h"
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c
index 80e1574a4..05958395d 100644
--- a/src/battle_gfx_sfx_util.c
+++ b/src/battle_gfx_sfx_util.c
@@ -19,7 +19,6 @@
#include "decompress.h"
#include "data2.h"
#include "palette.h"
-#include "blend_palette.h"
#include "contest.h"
#include "constants/songs.h"
#include "constants/rgb.h"
diff --git a/src/battle_interface.c b/src/battle_interface.c
index d2750bf9d..691e760a8 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -2341,7 +2341,7 @@ static void MoveBattleBarGraphically(u8 battlerId, u8 whichBar)
&gBattleSpritesDataPtr->battleBars[battlerId].currValue,
array, B_EXPBAR_PIXELS / 8);
level = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_LEVEL);
- if (level == MAX_MON_LEVEL)
+ if (level == MAX_LEVEL)
{
for (i = 0; i < 8; i++)
array[i] = 0;
diff --git a/src/battle_main.c b/src/battle_main.c
index 8f5d39055..80ee5c425 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -3061,14 +3061,14 @@ static void BattleStartClearSetData(void)
for (i = 0; i < 8; i++)
{
- *((u8 *)gBattleStruct->mirrorMoves + i) = 0;
+ *((u8 *)gBattleStruct->lastTakenMove + i) = 0;
*((u8 *)gBattleStruct->usedHeldItems + i) = 0;
*((u8 *)gBattleStruct->choicedMove + i) = 0;
*((u8 *)gBattleStruct->changedItems + i) = 0;
- *(i + 0 * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(i + 1 * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(i + 2 * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(i + 3 * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
+ *(i + 0 * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(i + 1 * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(i + 2 * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(i + 3 * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
}
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
@@ -3153,8 +3153,8 @@ void SwitchInClearSetData(void)
{
gDisableStructs[gActiveBattler].substituteHP = disableStructCopy.substituteHP;
gDisableStructs[gActiveBattler].battlerWithSureHit = disableStructCopy.battlerWithSureHit;
- gDisableStructs[gActiveBattler].perishSongTimer1 = disableStructCopy.perishSongTimer1;
- gDisableStructs[gActiveBattler].perishSongTimer2 = disableStructCopy.perishSongTimer2;
+ gDisableStructs[gActiveBattler].perishSongTimer = disableStructCopy.perishSongTimer;
+ gDisableStructs[gActiveBattler].perishSongTimerStartValue = disableStructCopy.perishSongTimerStartValue;
gDisableStructs[gActiveBattler].battlerPreventingEscape = disableStructCopy.battlerPreventingEscape;
}
@@ -3168,16 +3168,16 @@ void SwitchInClearSetData(void)
gLastPrintedMoves[gActiveBattler] = 0;
gLastHitBy[gActiveBattler] = 0xFF;
- *(gBattleStruct->mirrorMoves + gActiveBattler * 2 + 0) = 0;
- *(gBattleStruct->mirrorMoves + gActiveBattler * 2 + 1) = 0;
- *(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
- *(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
- *(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
- *(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
+ *(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 0) = 0;
+ *(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 1) = 0;
+ *(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ *(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ *(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ *(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
gBattleStruct->field_92 &= ~(gBitTable[gActiveBattler]);
@@ -3185,11 +3185,11 @@ void SwitchInClearSetData(void)
{
if (i != gActiveBattler && GetBattlerSide(i) != GetBattlerSide(gActiveBattler))
{
- *(gBattleStruct->mirrorMoves + i * 2 + 0) = 0;
- *(gBattleStruct->mirrorMoves + i * 2 + 1) = 0;
+ *(gBattleStruct->lastTakenMove + i * 2 + 0) = 0;
+ *(gBattleStruct->lastTakenMove + i * 2 + 1) = 0;
}
- *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
+ *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
}
*(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBattler]) + 0) = 0;
@@ -3263,16 +3263,16 @@ void FaintClearSetData(void)
*(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBattler]) + 0) = 0;
*(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBattler]) + 1) = 0;
- *(gBattleStruct->mirrorMoves + gActiveBattler * 2 + 0) = 0;
- *(gBattleStruct->mirrorMoves + gActiveBattler * 2 + 1) = 0;
- *(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
- *(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
- *(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
- *(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
+ *(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 0) = 0;
+ *(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 1) = 0;
+ *(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ *(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ *(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ *(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
gBattleStruct->field_92 &= ~(gBitTable[gActiveBattler]);
@@ -3280,11 +3280,11 @@ void FaintClearSetData(void)
{
if (i != gActiveBattler && GetBattlerSide(i) != GetBattlerSide(gActiveBattler))
{
- *(gBattleStruct->mirrorMoves + i * 2 + 0) = 0;
- *(gBattleStruct->mirrorMoves + i * 2 + 1) = 0;
+ *(gBattleStruct->lastTakenMove + i * 2 + 0) = 0;
+ *(gBattleStruct->lastTakenMove + i * 2 + 1) = 0;
}
- *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
+ *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
}
gBattleResources->flags->flags[gActiveBattler] = 0;
@@ -4879,10 +4879,10 @@ static void TurnValuesCleanUp(bool8 var0)
if (gDisableStructs[gActiveBattler].isFirstTurn)
gDisableStructs[gActiveBattler].isFirstTurn--;
- if (gDisableStructs[gActiveBattler].rechargeCounter)
+ if (gDisableStructs[gActiveBattler].rechargeTimer)
{
- gDisableStructs[gActiveBattler].rechargeCounter--;
- if (gDisableStructs[gActiveBattler].rechargeCounter == 0)
+ gDisableStructs[gActiveBattler].rechargeTimer--;
+ if (gDisableStructs[gActiveBattler].rechargeTimer == 0)
gBattleMons[gActiveBattler].status2 &= ~(STATUS2_RECHARGE);
}
}
@@ -5318,7 +5318,7 @@ static void HandleAction_UseMove(void)
gCurrentMove = gChosenMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos];
gDisableStructs[gBattlerAttacker].encoredMove = MOVE_NONE;
gDisableStructs[gBattlerAttacker].encoredMovePos = 0;
- gDisableStructs[gBattlerAttacker].encoreTimer1 = 0;
+ gDisableStructs[gBattlerAttacker].encoreTimer = 0;
*(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(gCurrentMove, 0);
}
else if (gBattleMons[gBattlerAttacker].moves[gCurrMovePos] != gChosenMoveByBattler[gBattlerAttacker])
diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c
index 74a4d3f83..e8ff7cce7 100644
--- a/src/battle_pyramid_bag.c
+++ b/src/battle_pyramid_bag.c
@@ -396,7 +396,7 @@ void sub_81C4F98(u8 a0, void (*callback)(void))
gPyramidBagResources->callback2 = NULL;
gPyramidBagResources->unk814 = 0xFF;
- gPyramidBagResources->scrollArrowSpriteId = 0xFF;
+ gPyramidBagResources->scrollIndicatorsTaskId = 0xFF;
memset(gPyramidBagResources->itemsSpriteIds, 0xFF, sizeof(gPyramidBagResources->itemsSpriteIds));
memset(gPyramidBagResources->windowIds, 0xFF, sizeof(gPyramidBagResources->windowIds));
@@ -664,16 +664,16 @@ static void PrintItemDescription(s32 listMenuId)
static void AddScrollArrow(void)
{
- if (gPyramidBagResources->scrollArrowSpriteId == 0xFF)
- gPyramidBagResources->scrollArrowSpriteId = AddScrollIndicatorArrowPairParameterized(2, 172, 12, 148, gPyramidBagResources->listMenuCount - gPyramidBagResources->listMenuMaxShown, 0xB5E, 0xB5E, &gPyramidBagCursorData.scrollPosition);
+ if (gPyramidBagResources->scrollIndicatorsTaskId == 0xFF)
+ gPyramidBagResources->scrollIndicatorsTaskId = AddScrollIndicatorArrowPairParameterized(2, 172, 12, 148, gPyramidBagResources->listMenuCount - gPyramidBagResources->listMenuMaxShown, 0xB5E, 0xB5E, &gPyramidBagCursorData.scrollPosition);
}
static void RemoveScrollArrow(void)
{
- if (gPyramidBagResources->scrollArrowSpriteId != 0xFF)
+ if (gPyramidBagResources->scrollIndicatorsTaskId != 0xFF)
{
- RemoveScrollIndicatorArrowPair(gPyramidBagResources->scrollArrowSpriteId);
- gPyramidBagResources->scrollArrowSpriteId = 0xFF;
+ RemoveScrollIndicatorArrowPair(gPyramidBagResources->scrollIndicatorsTaskId);
+ gPyramidBagResources->scrollIndicatorsTaskId = 0xFF;
}
}
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 0422c11e3..33d86924f 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -1229,7 +1229,7 @@ static void atk03_ppreduce(void)
if (gBattleControllerExecFlags)
return;
- if (!gSpecialStatuses[gBattlerAttacker].flag20)
+ if (!gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure)
{
switch (gBattleMoves[gCurrentMove].target)
{
@@ -1858,7 +1858,7 @@ static void atk0B_healthbarupdate(void)
MarkBattlerForControllerExec(gActiveBattler);
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleMoveDamage > 0)
- gBattleResults.unk5_0 = 1;
+ gBattleResults.playerMonWasDamaged = TRUE;
}
}
@@ -2730,7 +2730,7 @@ void SetMoveEffect(bool8 primary, u8 certain)
break;
case MOVE_EFFECT_RECHARGE:
gBattleMons[gEffectBattler].status2 |= STATUS2_RECHARGE;
- gDisableStructs[gEffectBattler].rechargeCounter = 2;
+ gDisableStructs[gEffectBattler].rechargeTimer = 2;
gLockedMoves[gEffectBattler] = gCurrentMove;
gBattlescriptCurrInstr++;
break;
@@ -2763,7 +2763,7 @@ void SetMoveEffect(bool8 primary, u8 certain)
| BATTLE_TYPE_LINK
| BATTLE_TYPE_x2000000
| BATTLE_TYPE_SECRET_BASE))
- && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]]))
+ && (gWishFutureKnock.knockedOffMons[side] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]]))
{
gBattlescriptCurrInstr++;
}
@@ -2885,7 +2885,7 @@ void SetMoveEffect(bool8 primary, u8 certain)
gLastUsedItem = gBattleMons[gEffectBattler].item;
gBattleMons[gEffectBattler].item = 0;
- gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlerPartyIndexes[gEffectBattler]];
+ gWishFutureKnock.knockedOffMons[side] |= gBitTable[gBattlerPartyIndexes[gEffectBattler]];
BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_KnockedOff;
@@ -3347,7 +3347,7 @@ static void atk23_getexp(void)
gBattleScripting.atk23_state = 5;
gBattleMoveDamage = 0; // used for exp
}
- else if (GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL) == MAX_MON_LEVEL)
+ else if (GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL) == MAX_LEVEL)
{
*(&gBattleStruct->sentInPokes) >>= 1;
gBattleScripting.atk23_state = 5;
@@ -3382,17 +3382,17 @@ static void atk23_getexp(void)
// check if the pokemon doesn't belong to the player
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gBattleStruct->expGetterMonId >= 3)
{
- i = 0x149;
+ i = STRINGID_EMPTYSTRING4;
}
else
{
gBattleMoveDamage = (gBattleMoveDamage * 150) / 100;
- i = 0x14A;
+ i = STRINGID_ABOOSTED;
}
}
else
{
- i = 0x149;
+ i = STRINGID_EMPTYSTRING4;
}
// get exp getter battlerId
@@ -3430,7 +3430,7 @@ static void atk23_getexp(void)
if (gBattleControllerExecFlags == 0)
{
gBattleBufferB[gBattleStruct->expGetterBattlerId][0] = 0;
- if (GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HP) && GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL) != MAX_MON_LEVEL)
+ if (GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HP) && GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL) != MAX_LEVEL)
{
gBattleResources->statsBeforeLvlUp->hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_MAX_HP);
gBattleResources->statsBeforeLvlUp->atk = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_ATK);
@@ -4752,16 +4752,16 @@ static void atk49_moveend(void)
{
u8 target, attacker;
- *(gBattleStruct->mirrorMoves + gBattlerTarget * 2 + 0) = gChosenMove;
- *(gBattleStruct->mirrorMoves + gBattlerTarget * 2 + 1) = gChosenMove >> 8;
+ *(gBattleStruct->lastTakenMove + gBattlerTarget * 2 + 0) = gChosenMove;
+ *(gBattleStruct->lastTakenMove + gBattlerTarget * 2 + 1) = gChosenMove >> 8;
target = gBattlerTarget;
attacker = gBattlerAttacker;
- *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = gChosenMove;
+ *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = gChosenMove;
target = gBattlerTarget;
attacker = gBattlerAttacker;
- *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = gChosenMove >> 8;
+ *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = gChosenMove >> 8;
}
gBattleScripting.atk49_state++;
break;
@@ -4948,7 +4948,7 @@ static void atk4D_switchindataupdate(void)
// check knocked off item
i = GetBattlerSide(gActiveBattler);
- if (gWishFutureKnock.knockedOffPokes[i] & gBitTable[gBattlerPartyIndexes[gActiveBattler]])
+ if (gWishFutureKnock.knockedOffMons[i] & gBitTable[gBattlerPartyIndexes[gActiveBattler]])
{
gBattleMons[gActiveBattler].item = 0;
}
@@ -6937,8 +6937,8 @@ static void atk7C_trymirrormove(void)
{
if (i != gBattlerAttacker)
{
- move = *(i * 2 + gBattlerAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0)
- | (*(i * 2 + gBattlerAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) << 8);
+ move = *(i * 2 + gBattlerAttacker * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0)
+ | (*(i * 2 + gBattlerAttacker * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) << 8);
if (move != 0 && move != 0xFFFF)
{
@@ -6948,8 +6948,8 @@ static void atk7C_trymirrormove(void)
}
}
- move = *(gBattleStruct->mirrorMoves + gBattlerAttacker * 2 + 0)
- | (*(gBattleStruct->mirrorMoves + gBattlerAttacker * 2 + 1) << 8);
+ move = *(gBattleStruct->lastTakenMove + gBattlerAttacker * 2 + 0)
+ | (*(gBattleStruct->lastTakenMove + gBattlerAttacker * 2 + 1) << 8);
if (move != 0 && move != 0xFFFF)
{
@@ -6968,7 +6968,7 @@ static void atk7C_trymirrormove(void)
}
else
{
- gSpecialStatuses[gBattlerAttacker].flag20 = 1;
+ gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1;
gBattlescriptCurrInstr++;
}
}
@@ -8033,7 +8033,7 @@ static void atk9B_transformdataexecution(void)
gBattleMons[gBattlerAttacker].status2 |= STATUS2_TRANSFORMED;
gDisableStructs[gBattlerAttacker].disabledMove = 0;
- gDisableStructs[gBattlerAttacker].disableTimer1 = 0;
+ gDisableStructs[gBattlerAttacker].disableTimer = 0;
gDisableStructs[gBattlerAttacker].transformedMonPersonality = gBattleMons[gBattlerTarget].personality;
gDisableStructs[gBattlerAttacker].unk18_b = 0;
@@ -8207,7 +8207,7 @@ static void atkA1_counterdamagecalculator(void)
}
else
{
- gSpecialStatuses[gBattlerAttacker].flag20 = 1;
+ gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1;
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -8230,7 +8230,7 @@ static void atkA2_mirrorcoatdamagecalculator(void) // a copy of atkA1 with the p
}
else
{
- gSpecialStatuses[gBattlerAttacker].flag20 = 1;
+ gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1;
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -8250,8 +8250,8 @@ static void atkA3_disablelastusedattack(void)
PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerTarget].moves[i])
gDisableStructs[gBattlerTarget].disabledMove = gBattleMons[gBattlerTarget].moves[i];
- gDisableStructs[gBattlerTarget].disableTimer1 = (Random() & 3) + 2;
- gDisableStructs[gBattlerTarget].disableTimer2 = gDisableStructs[gBattlerTarget].disableTimer1; // used to save the random amount of turns?
+ gDisableStructs[gBattlerTarget].disableTimer = (Random() & 3) + 2;
+ gDisableStructs[gBattlerTarget].disableTimerStartValue = gDisableStructs[gBattlerTarget].disableTimer; // used to save the random amount of turns?
gBattlescriptCurrInstr += 5;
}
else
@@ -8282,8 +8282,8 @@ static void atkA4_trysetencore(void)
{
gDisableStructs[gBattlerTarget].encoredMove = gBattleMons[gBattlerTarget].moves[i];
gDisableStructs[gBattlerTarget].encoredMovePos = i;
- gDisableStructs[gBattlerTarget].encoreTimer1 = (Random() & 3) + 3;
- gDisableStructs[gBattlerTarget].encoreTimer2 = gDisableStructs[gBattlerTarget].encoreTimer1;
+ gDisableStructs[gBattlerTarget].encoreTimer = (Random() & 3) + 3;
+ gDisableStructs[gBattlerTarget].encoreTimerStartValue = gDisableStructs[gBattlerTarget].encoreTimer;
gBattlescriptCurrInstr += 5;
}
else
@@ -8727,7 +8727,7 @@ static void atkB0_trysetspikes(void)
if (gSideTimers[targetSide].spikesAmount == 3)
{
- gSpecialStatuses[gBattlerAttacker].flag20 = 1;
+ gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1;
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
@@ -8759,8 +8759,8 @@ static void atkB2_trysetperishsong(void)
else
{
gStatuses3[i] |= STATUS3_PERISH_SONG;
- gDisableStructs[i].perishSongTimer1 = 3;
- gDisableStructs[i].perishSongTimer2 = 3;
+ gDisableStructs[i].perishSongTimer = 3;
+ gDisableStructs[i].perishSongTimerStartValue = 3;
}
}
@@ -8785,19 +8785,19 @@ static void atkB3_rolloutdamagecalculation(void)
if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) // first hit
{
- gDisableStructs[gBattlerAttacker].rolloutCounter1 = 5;
- gDisableStructs[gBattlerAttacker].rolloutCounter2 = 5;
+ gDisableStructs[gBattlerAttacker].rolloutTimer = 5;
+ gDisableStructs[gBattlerAttacker].rolloutTimerStartValue = 5;
gBattleMons[gBattlerAttacker].status2 |= STATUS2_MULTIPLETURNS;
gLockedMoves[gBattlerAttacker] = gCurrentMove;
}
- if (--gDisableStructs[gBattlerAttacker].rolloutCounter1 == 0) // last hit
+ if (--gDisableStructs[gBattlerAttacker].rolloutTimer == 0) // last hit
{
gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_MULTIPLETURNS);
}
gDynamicBasePower = gBattleMoves[gCurrentMove].power;
- for (i = 1; i < (5 - gDisableStructs[gBattlerAttacker].rolloutCounter1); i++)
+ for (i = 1; i < (5 - gDisableStructs[gBattlerAttacker].rolloutTimer); i++)
gDynamicBasePower *= 2;
if (gBattleMons[gBattlerAttacker].status2 & STATUS2_DEFENSE_CURL)
@@ -9320,8 +9320,8 @@ static void atkCA_setforcedtarget(void) // follow me
static void atkCB_setcharge(void)
{
gStatuses3[gBattlerAttacker] |= STATUS3_CHARGED_UP;
- gDisableStructs[gBattlerAttacker].chargeTimer1 = 2;
- gDisableStructs[gBattlerAttacker].chargeTimer2 = 2;
+ gDisableStructs[gBattlerAttacker].chargeTimer = 2;
+ gDisableStructs[gBattlerAttacker].chargeTimerStartValue = 2;
gBattlescriptCurrInstr++;
}
@@ -9373,9 +9373,9 @@ static void atkCF_jumpifnodamage(void)
static void atkD0_settaunt(void)
{
- if (gDisableStructs[gBattlerTarget].tauntTimer1 == 0)
+ if (gDisableStructs[gBattlerTarget].tauntTimer == 0)
{
- gDisableStructs[gBattlerTarget].tauntTimer1 = 2;
+ gDisableStructs[gBattlerTarget].tauntTimer = 2;
gDisableStructs[gBattlerTarget].tauntTimer2 = 2;
gBattlescriptCurrInstr += 5;
}
@@ -9427,8 +9427,8 @@ static void atkD2_tryswapitems(void) // trick
| BATTLE_TYPE_FRONTIER
| BATTLE_TYPE_SECRET_BASE
| BATTLE_TYPE_x2000000))
- && (gWishFutureKnock.knockedOffPokes[sideAttacker] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]]
- || gWishFutureKnock.knockedOffPokes[sideTarget] & gBitTable[gBattlerPartyIndexes[gBattlerTarget]]))
+ && (gWishFutureKnock.knockedOffMons[sideAttacker] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]]
+ || gWishFutureKnock.knockedOffMons[sideTarget] & gBitTable[gBattlerPartyIndexes[gBattlerTarget]]))
{
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
@@ -9751,7 +9751,7 @@ static void atkDE_asistattackselect(void)
static void atkDF_trysetmagiccoat(void)
{
gBattlerTarget = gBattlerAttacker;
- gSpecialStatuses[gBattlerAttacker].flag20 = 1;
+ gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1;
if (gCurrentTurnActionNumber == gBattlersCount - 1) // moves last turn
{
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
@@ -9765,7 +9765,7 @@ static void atkDF_trysetmagiccoat(void)
static void atkE0_trysetsnatch(void) // snatch
{
- gSpecialStatuses[gBattlerAttacker].flag20 = 1;
+ gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1;
if (gCurrentTurnActionNumber == gBattlersCount - 1) // moves last turn
{
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
diff --git a/src/battle_setup.c b/src/battle_setup.c
index f9fab3d17..db173a38e 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -56,8 +56,8 @@ extern bool8 InBattlePyramid(void);
extern bool8 InBattlePike(void);
extern bool32 InTrainerHill(void);
extern bool32 FieldPoisonEffectIsRunning(void);
-extern void prev_quest_postbuffer_cursor_backup_reset(void);
-extern void ResetPoisonStepCounter(void);
+extern void RestartWildEncounterImmunitySteps(void);
+extern void ClearPoisonStepCounter(void);
extern void sub_81BE72C(void);
extern void sub_808BCF4(void);
extern void sub_80EECC8(void);
@@ -354,8 +354,8 @@ static void Task_BattleStart(u8 taskId)
{
overworld_free_bg_tilemaps();
SetMainCallback2(CB2_InitBattle);
- prev_quest_postbuffer_cursor_backup_reset();
- ResetPoisonStepCounter();
+ RestartWildEncounterImmunitySteps();
+ ClearPoisonStepCounter();
DestroyTask(taskId);
}
break;
@@ -921,8 +921,8 @@ static void CB2_StartFirstBattle(void)
gMain.savedCallback = CB2_EndFirstBattle;
FreeAllWindowBuffers();
SetMainCallback2(CB2_InitBattle);
- prev_quest_postbuffer_cursor_backup_reset();
- ResetPoisonStepCounter();
+ RestartWildEncounterImmunitySteps();
+ ClearPoisonStepCounter();
IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
IncrementGameStat(GAME_STAT_WILD_BATTLES);
sub_80EECC8();
diff --git a/src/battle_transition.c b/src/battle_transition.c
index d1d92cb50..fc8c0eeee 100644
--- a/src/battle_transition.c
+++ b/src/battle_transition.c
@@ -19,7 +19,7 @@
#include "gpu_regs.h"
#include "decompress.h"
#include "bg.h"
-#include "blend_palette.h"
+#include "util.h"
struct TransitionData
{
diff --git a/src/battle_tv.c b/src/battle_tv.c
index 6f9ee414e..535046fd1 100644
--- a/src/battle_tv.c
+++ b/src/battle_tv.c
@@ -659,7 +659,7 @@ void BattleTv_SetDataBasedOnMove(u16 move, u16 weatherFlags, struct DisableStruc
tvPtr->side[atkSide].usedMoveSlot = moveSlot;
AddMovePoints(0, moveSlot, gBattleMoves[move].effect, 0);
AddPointsBasedOnWeather(weatherFlags, move, moveSlot);
- if (disableStructPtr->chargeTimer1 != 0)
+ if (disableStructPtr->chargeTimer != 0)
AddMovePoints(7, move, moveSlot, 0);
if (move == MOVE_WISH)
diff --git a/src/battle_util.c b/src/battle_util.c
index 79ce180ee..1aaffc053 100644
--- a/src/battle_util.c
+++ b/src/battle_util.c
@@ -216,7 +216,7 @@ void CancelMultiTurnMoves(u8 battler)
gStatuses3[battler] &= ~(STATUS3_SEMI_INVULNERABLE);
- gDisableStructs[battler].rolloutCounter1 = 0;
+ gDisableStructs[battler].rolloutTimer = 0;
gDisableStructs[battler].furyCutterCounter = 0;
}
@@ -345,7 +345,7 @@ u8 TrySetCantSelectMoveBattleScript(void)
}
}
- if (gDisableStructs[gActiveBattler].tauntTimer1 != 0 && gBattleMoves[move].power == 0)
+ if (gDisableStructs[gActiveBattler].tauntTimer != 0 && gBattleMoves[move].power == 0)
{
gCurrentMove = move;
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
@@ -436,11 +436,11 @@ u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u8 check)
unusableMoves |= gBitTable[i];
if (gBattleMons[battlerId].moves[i] == gLastMoves[battlerId] && check & MOVE_LIMITATION_TORMENTED && gBattleMons[battlerId].status2 & STATUS2_TORMENT)
unusableMoves |= gBitTable[i];
- if (gDisableStructs[battlerId].tauntTimer1 && check & MOVE_LIMITATION_TAUNT && gBattleMoves[gBattleMons[battlerId].moves[i]].power == 0)
+ if (gDisableStructs[battlerId].tauntTimer && check & MOVE_LIMITATION_TAUNT && gBattleMoves[gBattleMons[battlerId].moves[i]].power == 0)
unusableMoves |= gBitTable[i];
if (GetImprisonedMovesCount(battlerId, gBattleMons[battlerId].moves[i]) && check & MOVE_LIMITATION_IMPRISION)
unusableMoves |= gBitTable[i];
- if (gDisableStructs[battlerId].encoreTimer1 && gDisableStructs[battlerId].encoredMove != gBattleMons[battlerId].moves[i])
+ if (gDisableStructs[battlerId].encoreTimer && gDisableStructs[battlerId].encoredMove != gBattleMons[battlerId].moves[i])
unusableMoves |= gBitTable[i];
if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != 0 && *choicedMove != 0xFFFF && *choicedMove != gBattleMons[battlerId].moves[i])
unusableMoves |= gBitTable[i];
@@ -1018,7 +1018,7 @@ u8 DoBattlerEndTurnEffects(void)
gBattleStruct->turnEffectsTracker++;
break;
case ENDTURN_DISABLE: // disable
- if (gDisableStructs[gActiveBattler].disableTimer1 != 0)
+ if (gDisableStructs[gActiveBattler].disableTimer != 0)
{
s32 i;
for (i = 0; i < 4; i++)
@@ -1029,9 +1029,9 @@ u8 DoBattlerEndTurnEffects(void)
if (i == 4) // pokemon does not have the disabled move anymore
{
gDisableStructs[gActiveBattler].disabledMove = 0;
- gDisableStructs[gActiveBattler].disableTimer1 = 0;
+ gDisableStructs[gActiveBattler].disableTimer = 0;
}
- else if (--gDisableStructs[gActiveBattler].disableTimer1 == 0) // disable ends
+ else if (--gDisableStructs[gActiveBattler].disableTimer == 0) // disable ends
{
gDisableStructs[gActiveBattler].disabledMove = 0;
BattleScriptExecute(BattleScript_DisabledNoMore);
@@ -1041,18 +1041,18 @@ u8 DoBattlerEndTurnEffects(void)
gBattleStruct->turnEffectsTracker++;
break;
case ENDTURN_ENCORE: // encore
- if (gDisableStructs[gActiveBattler].encoreTimer1 != 0)
+ if (gDisableStructs[gActiveBattler].encoreTimer != 0)
{
if (gBattleMons[gActiveBattler].moves[gDisableStructs[gActiveBattler].encoredMovePos] != gDisableStructs[gActiveBattler].encoredMove) // pokemon does not have the encored move anymore
{
gDisableStructs[gActiveBattler].encoredMove = 0;
- gDisableStructs[gActiveBattler].encoreTimer1 = 0;
+ gDisableStructs[gActiveBattler].encoreTimer = 0;
}
- else if (--gDisableStructs[gActiveBattler].encoreTimer1 == 0
+ else if (--gDisableStructs[gActiveBattler].encoreTimer == 0
|| gBattleMons[gActiveBattler].pp[gDisableStructs[gActiveBattler].encoredMovePos] == 0)
{
gDisableStructs[gActiveBattler].encoredMove = 0;
- gDisableStructs[gActiveBattler].encoreTimer1 = 0;
+ gDisableStructs[gActiveBattler].encoreTimer = 0;
BattleScriptExecute(BattleScript_EncoredNoMore);
effect++;
}
@@ -1065,13 +1065,13 @@ u8 DoBattlerEndTurnEffects(void)
gBattleStruct->turnEffectsTracker++;
break;
case ENDTURN_CHARGE: // charge
- if (gDisableStructs[gActiveBattler].chargeTimer1 && --gDisableStructs[gActiveBattler].chargeTimer1 == 0)
+ if (gDisableStructs[gActiveBattler].chargeTimer && --gDisableStructs[gActiveBattler].chargeTimer == 0)
gStatuses3[gActiveBattler] &= ~STATUS3_CHARGED_UP;
gBattleStruct->turnEffectsTracker++;
break;
case ENDTURN_TAUNT: // taunt
- if (gDisableStructs[gActiveBattler].tauntTimer1)
- gDisableStructs[gActiveBattler].tauntTimer1--;
+ if (gDisableStructs[gActiveBattler].tauntTimer)
+ gDisableStructs[gActiveBattler].tauntTimer--;
gBattleStruct->turnEffectsTracker++;
break;
case ENDTURN_YAWN: // yawn
@@ -1167,8 +1167,8 @@ bool8 HandleWishPerishSongOnTurnEnd(void)
gBattleStruct->wishPerishSongBattlerId++;
if (gStatuses3[gActiveBattler] & STATUS3_PERISH_SONG)
{
- PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gActiveBattler].perishSongTimer1);
- if (gDisableStructs[gActiveBattler].perishSongTimer1 == 0)
+ PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gActiveBattler].perishSongTimer);
+ if (gDisableStructs[gActiveBattler].perishSongTimer == 0)
{
gStatuses3[gActiveBattler] &= ~STATUS3_PERISH_SONG;
gBattleMoveDamage = gBattleMons[gActiveBattler].hp;
@@ -1176,7 +1176,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void)
}
else
{
- gDisableStructs[gActiveBattler].perishSongTimer1--;
+ gDisableStructs[gActiveBattler].perishSongTimer--;
gBattlescriptCurrInstr = BattleScript_PerishSongCountGoesDown;
}
BattleScriptExecute(gBattlescriptCurrInstr);
@@ -1420,7 +1420,7 @@ u8 AtkCanceller_UnableToUseMove(void)
if (gBattleMons[gBattlerAttacker].status2 & STATUS2_RECHARGE)
{
gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_RECHARGE);
- gDisableStructs[gBattlerAttacker].rechargeCounter = 0;
+ gDisableStructs[gBattlerAttacker].rechargeTimer = 0;
CancelMultiTurnMoves(gBattlerAttacker);
gBattlescriptCurrInstr = BattleScript_MoveUsedMustRecharge;
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
@@ -1453,7 +1453,7 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattleStruct->atkCancellerTracker++;
break;
case CANCELLER_TAUNTED: // taunt
- if (gDisableStructs[gBattlerAttacker].tauntTimer1 && gBattleMoves[gCurrentMove].power == 0)
+ if (gDisableStructs[gBattlerAttacker].tauntTimer && gBattleMoves[gCurrentMove].power == 0)
{
gProtectStructs[gBattlerAttacker].usedTauntedMove = 1;
CancelMultiTurnMoves(gBattlerAttacker);
diff --git a/src/berry.c b/src/berry.c
index ea216b61c..66cf91409 100644
--- a/src/berry.c
+++ b/src/berry.c
@@ -11,7 +11,7 @@
extern u8 EventObjectGetBerryTreeId(u8 eventObjectId);
extern void sub_8092EF0(u8 mapId, u8 mapNumber, u8 mapGroup);
extern void CB2_ChooseBerry(void);
-extern const u8* GetEventObjectScriptPointerForComparison(void);
+extern const u8* GetEventObjectScriptPointerPlayerFacing(void);
extern bool8 IsBerryTreeSparkling(u8, u8, u8);
extern u16 gSpecialVar_ItemId;
@@ -930,7 +930,7 @@ bool32 EventObjectInteractionWaterBerryTree(void)
bool8 IsPlayerFacingPlantedBerryTree(void)
{
- if (GetEventObjectScriptPointerForComparison() == BerryTreeScript
+ if (GetEventObjectScriptPointerPlayerFacing() == BerryTreeScript
&& GetStageByBerryTreeId(EventObjectGetBerryTreeId(gSelectedEventObject)) == 0)
return TRUE;
else
@@ -939,7 +939,7 @@ bool8 IsPlayerFacingPlantedBerryTree(void)
bool8 TryToWaterBerryTree(void)
{
- if (GetEventObjectScriptPointerForComparison() != BerryTreeScript)
+ if (GetEventObjectScriptPointerPlayerFacing() != BerryTreeScript)
return FALSE;
else
return EventObjectInteractionWaterBerryTree();
diff --git a/src/blend_palette.c b/src/blend_palette.c
deleted file mode 100644
index c9503388f..000000000
--- a/src/blend_palette.c
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "global.h"
-#include "palette.h"
-
-void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor)
-{
- u16 i;
- for (i = 0; i < numEntries; i++)
- {
- u16 index = i + palOffset;
- struct PlttData *data1 = (struct PlttData *)&gPlttBufferUnfaded[index];
- s8 r = data1->r;
- s8 g = data1->g;
- s8 b = data1->b;
- struct PlttData *data2 = (struct PlttData *)&blendColor;
- gPlttBufferFaded[index] = ((r + (((data2->r - r) * coeff) >> 4)) << 0)
- | ((g + (((data2->g - g) * coeff) >> 4)) << 5)
- | ((b + (((data2->b - b) * coeff) >> 4)) << 10);
- }
-}
diff --git a/src/cable_club.c b/src/cable_club.c
new file mode 100644
index 000000000..c54df5f24
--- /dev/null
+++ b/src/cable_club.c
@@ -0,0 +1,1299 @@
+#include "global.h"
+#include "main.h"
+#include "battle.h"
+#include "battle_records.h"
+#include "battle_setup.h"
+#include "cable_club.h"
+#include "data2.h"
+#include "event_data.h"
+#include "field_message_box.h"
+#include "field_specials.h"
+#include "field_weather.h"
+#include "international_string_util.h"
+#include "link.h"
+#include "link_rfu.h"
+#include "load_save.h"
+#include "m4a.h"
+#include "menu.h"
+#include "overworld.h"
+#include "palette.h"
+#include "rom_8011DC0.h"
+#include "script.h"
+#include "script_pokemon_util_80F87D8.h"
+#include "sound.h"
+#include "start_menu.h"
+#include "string_util.h"
+#include "strings.h"
+#include "task.h"
+#include "trade.h"
+#include "trainer_card.h"
+#include "window.h"
+#include "constants/songs.h"
+
+extern u8 gUnknown_02032298[2];
+extern u8 gUnknown_0203CEF8[];
+
+static const struct WindowTemplate gUnknown_08550594 = {
+ .priority = 0,
+ .tilemapLeft = 16,
+ .tilemapTop = 11,
+ .width = 11,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 0x0125,
+};
+static const u8 *const gTrainerCardColorNames[] = {
+ gText_BronzeCard,
+ gText_CopperCard,
+ gText_SilverCard,
+ gText_GoldCard
+};
+
+static void sub_80B2634(u8 taskId);
+static void sub_80B2688(u8 taskId);
+static void sub_80B270C(u8 taskId);
+static void sub_80B275C(u8 taskId);
+static void sub_80B2804(u8 taskId);
+static void sub_80B28A8(u8 taskId);
+static void sub_80B2918(u8 taskId);
+static void sub_80B2A08(u8 taskId);
+static void sub_80B2C30(u8 taskId);
+static void sub_80B2CB0(u8 taskId);
+static void sub_80B2CEC(u8 taskId);
+static void sub_80B2D2C(u8 taskId);
+static bool8 sub_80B2D6C(u8 taskId);
+static void sub_80B2EE4(u8 taskId);
+static void sub_80B3144(u8 taskId);
+static void sub_80B3194(u8 taskId);
+static void sub_80B31E8(u8 taskId);
+static void sub_80B3220(u8 taskId);
+
+static void sub_80B236C(u8 arg0, u8 arg1)
+{
+ if (FindTaskIdByFunc(sub_80B2634) == 0xFF)
+ {
+ u8 taskId1;
+
+ taskId1 = CreateTask(sub_80B2634, 80);
+ gTasks[taskId1].data[1] = arg0;
+ gTasks[taskId1].data[2] = arg1;
+ }
+}
+
+static void sub_80B23B0(u16 windowId, u32 value)
+{
+ u8 xPos;
+
+ ConvertIntToDecimalStringN(gStringVar1, value, STR_CONV_MODE_LEFT_ALIGN, 1);
+ SetStandardWindowBorderStyle(windowId, 0);
+ StringExpandPlaceholders(gStringVar4, gText_XPLink);
+ xPos = GetStringCenterAlignXOffset(1, gStringVar4, 88);
+ AddTextPrinterParameterized(windowId, 1, gStringVar4, xPos, 1, 0xFF, NULL);
+ CopyWindowToVram(windowId, 3);
+}
+
+static void sub_80B241C(u16 windowId)
+{
+ sub_819746C(windowId, FALSE);
+ CopyWindowToVram(windowId, 3);
+}
+
+static void sub_80B243C(u8 taskId, u8 arg1)
+{
+ s16 *data = gTasks[taskId].data;
+
+ if (arg1 != data[3])
+ {
+ if (arg1 <= 1)
+ sub_80B241C(data[5]);
+ else
+ sub_80B23B0(data[5], arg1);
+ data[3] = arg1;
+ }
+}
+
+static u32 sub_80B2478(u8 lower, u8 upper)
+{
+ int playerCount;
+
+ switch (GetLinkPlayerDataExchangeStatusTimed(lower, upper))
+ {
+ case EXCHANGE_COMPLETE:
+ return 1;
+ case EXCHANGE_IN_PROGRESS:
+ return 3;
+ case EXCHANGE_STAT_4:
+ return 7;
+ case EXCHANGE_STAT_5:
+ return 9;
+ case EXCHANGE_STAT_6:
+ ConvertIntToDecimalStringN(gStringVar1, GetLinkPlayerCount_2(), STR_CONV_MODE_LEFT_ALIGN, 1);
+ return 4;
+ case EXCHANGE_STAT_7:
+ return 10;
+ case EXCHANGE_TIMED_OUT:
+ default:
+ return 0;
+ }
+}
+
+static bool32 sub_80B24F8(u8 taskId)
+{
+ if (HasLinkErrorOccurred() == TRUE)
+ {
+ gTasks[taskId].func = sub_80B2D2C;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool32 sub_80B252C(u8 taskId)
+{
+ if ((gMain.newKeys & B_BUTTON)
+ && IsLinkConnectionEstablished() == FALSE)
+ {
+ gLinkType = 0;
+ gTasks[taskId].func = sub_80B2CEC;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool32 sub_80B2578(u8 taskId)
+{
+ if (IsLinkConnectionEstablished())
+ SetSuppressLinkErrorMessage(TRUE);
+
+ if (gMain.newKeys & B_BUTTON)
+ {
+ gLinkType = 0;
+ gTasks[taskId].func = sub_80B2CEC;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool32 sub_80B25CC(u8 taskId)
+{
+ if (GetSioMultiSI() == 1)
+ {
+ gTasks[taskId].func = sub_80B2D2C;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void sub_80B2600(u8 taskId)
+{
+ gTasks[taskId].data[0]++;
+ if (gTasks[taskId].data[0] == 10)
+ {
+ sub_800A4D8(2);
+ DestroyTask(taskId);
+ }
+}
+
+static void sub_80B2634(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ if (data[0] == 0)
+ {
+ OpenLinkTimed();
+ sub_800AB98();
+ ResetLinkPlayers();
+ data[5] = AddWindow(&gUnknown_08550594);
+ }
+ else if (data[0] > 9)
+ {
+ gTasks[taskId].func = sub_80B2688;
+ }
+ data[0]++;
+}
+
+static void sub_80B2688(u8 taskId)
+{
+ u32 playerCount = GetLinkPlayerCount_2();
+
+ if (sub_80B252C(taskId) == TRUE
+ || sub_80B2578(taskId) == TRUE
+ || playerCount < 2)
+ return;
+
+ SetSuppressLinkErrorMessage(TRUE);
+ gTasks[taskId].data[3] = 0;
+ if (IsLinkMaster() == TRUE)
+ {
+ PlaySE(SE_PIN);
+ ShowFieldAutoScrollMessage(gText_ConfirmLinkWhenPlayersReady);
+ gTasks[taskId].func = sub_80B270C;
+ }
+ else
+ {
+ PlaySE(SE_BOO);
+ ShowFieldAutoScrollMessage(gText_AwaitingLinkup);
+ gTasks[taskId].func = sub_80B2918;
+ }
+}
+
+static void sub_80B270C(u8 taskId)
+{
+ if (sub_80B252C(taskId) == TRUE
+ || sub_80B25CC(taskId) == TRUE
+ || sub_80B24F8(taskId) == TRUE)
+ return;
+
+ if (GetFieldMessageBoxMode() == FIELD_MESSAGE_BOX_HIDDEN)
+ {
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].func = sub_80B275C;
+ }
+}
+
+static void sub_80B275C(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ s32 linkPlayerCount = GetLinkPlayerCount_2();
+
+ if (sub_80B252C(taskId) == TRUE
+ || sub_80B25CC(taskId) == TRUE
+ || sub_80B24F8(taskId) == TRUE)
+ return;
+
+ sub_80B243C(taskId, linkPlayerCount);
+
+ if (!(gMain.newKeys & A_BUTTON))
+ return;
+
+ if (linkPlayerCount < data[1])
+ return;
+
+ sub_800AA04(linkPlayerCount);
+ sub_80B241C(data[5]);
+ ConvertIntToDecimalStringN(gStringVar1, linkPlayerCount, STR_CONV_MODE_LEFT_ALIGN, 1);
+ ShowFieldAutoScrollMessage(gText_ConfirmStartLinkWithXPlayers);
+ gTasks[taskId].func = sub_80B2804;
+}
+
+static void sub_80B2804(u8 taskId)
+{
+ if (sub_80B252C(taskId) == TRUE
+ || sub_80B25CC(taskId) == TRUE
+ || sub_80B24F8(taskId) == TRUE)
+ return;
+
+ if (GetFieldMessageBoxMode() == FIELD_MESSAGE_BOX_HIDDEN)
+ {
+ if (sub_800AA48() != GetLinkPlayerCount_2())
+ {
+ ShowFieldAutoScrollMessage(gText_ConfirmLinkWhenPlayersReady);
+ gTasks[taskId].func = sub_80B270C;
+ }
+ else if (gMain.heldKeys & B_BUTTON)
+ {
+ ShowFieldAutoScrollMessage(gText_ConfirmLinkWhenPlayersReady);
+ gTasks[taskId].func = sub_80B270C;
+ }
+ else if (gMain.heldKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_800A620();
+ gTasks[taskId].func = sub_80B28A8;
+ }
+ }
+}
+
+static void sub_80B28A8(u8 taskId)
+{
+ u8 local1 = gTasks[taskId].data[1];
+ u8 local2 = gTasks[taskId].data[2];
+
+ if (sub_80B24F8(taskId) == TRUE
+ || sub_80B2D6C(taskId) == TRUE)
+ return;
+
+ if (GetLinkPlayerCount_2() != sub_800AA48())
+ {
+ gTasks[taskId].func = sub_80B2D2C;
+ }
+ else
+ {
+ gSpecialVar_Result = sub_80B2478(local1, local2);
+ if (gSpecialVar_Result != 0)
+ gTasks[taskId].func = sub_80B2A08;
+ }
+}
+
+static void sub_80B2918(u8 taskId)
+{
+ u8 local1, local2;
+ struct TrainerCard *card;
+
+ local1 = gTasks[taskId].data[1];
+ local2 = gTasks[taskId].data[2];
+
+ if (sub_80B252C(taskId) == TRUE
+ || sub_80B24F8(taskId) == TRUE)
+ return;
+
+ gSpecialVar_Result = sub_80B2478(local1, local2);
+ if (gSpecialVar_Result == 0)
+ return;
+ if (gSpecialVar_Result == 3 || gSpecialVar_Result == 4)
+ {
+ sub_800AC34();
+ HideFieldMessageBox();
+ gTasks[taskId].func = sub_80B2CB0;
+ }
+ else if (gSpecialVar_Result == 7 || gSpecialVar_Result == 9)
+ {
+ CloseLink();
+ HideFieldMessageBox();
+ gTasks[taskId].func = sub_80B2CB0;
+ }
+ else
+ {
+ gFieldLinkPlayerCount = GetLinkPlayerCount_2();
+ gUnknown_03005DB4 = GetMultiplayerId();
+ sub_800AA04(gFieldLinkPlayerCount);
+ card = (struct TrainerCard *)gBlockSendBuffer;
+ TrainerCard_GenerateCardForPlayer(card);
+ card->monSpecies[0] = GetMonData(&gPlayerParty[gUnknown_0203CEF8[0] - 1], MON_DATA_SPECIES, NULL);
+ card->monSpecies[1] = GetMonData(&gPlayerParty[gUnknown_0203CEF8[1] - 1], MON_DATA_SPECIES, NULL);
+ gTasks[taskId].func = sub_80B2C30;
+ }
+}
+
+static void sub_80B2A08(u8 taskId)
+{
+ struct TrainerCard *card;
+
+ if (sub_80B24F8(taskId) == TRUE)
+ return;
+
+ if (gSpecialVar_Result == 4)
+ {
+ if (!Link_AnyPartnersPlayingRubyOrSapphire())
+ {
+ sub_800AC34();
+ HideFieldMessageBox();
+ gTasks[taskId].func = sub_80B2CB0;
+ }
+ else
+ {
+ CloseLink();
+ HideFieldMessageBox();
+ gTasks[taskId].func = sub_80B2CB0;
+ }
+ }
+ else if (gSpecialVar_Result == 3)
+ {
+ sub_800AC34();
+ HideFieldMessageBox();
+ gTasks[taskId].func = sub_80B2CB0;
+ }
+ else if (gSpecialVar_Result == 7 || gSpecialVar_Result == 9)
+ {
+ CloseLink();
+ HideFieldMessageBox();
+ gTasks[taskId].func = sub_80B2CB0;
+ }
+ else
+ {
+ gFieldLinkPlayerCount = GetLinkPlayerCount_2();
+ gUnknown_03005DB4 = GetMultiplayerId();
+ sub_800AA04(gFieldLinkPlayerCount);
+ card = (struct TrainerCard *)gBlockSendBuffer;
+ TrainerCard_GenerateCardForPlayer(card);
+ card->monSpecies[0] = GetMonData(&gPlayerParty[gUnknown_0203CEF8[0] - 1], MON_DATA_SPECIES, NULL);
+ card->monSpecies[1] = GetMonData(&gPlayerParty[gUnknown_0203CEF8[1] - 1], MON_DATA_SPECIES, NULL);
+ gTasks[taskId].func = sub_80B2C30;
+ sub_800A4D8(2);
+ }
+}
+
+bool32 sub_80B2AF4(u16 *arg0, u16 *arg1)
+{
+ int i;
+ int j;
+ bool32 result = FALSE;
+ int k = 0;
+
+ gStringVar1[0] = EOS;
+ gStringVar2[0] = EOS;
+
+ for (i = 0; i < 2; i++)
+ {
+ for (j = 0; j < 2; j++)
+ {
+ if (arg0[i] == arg1[j])
+ {
+ if (k == 0)
+ {
+ StringCopy(gStringVar1, gSpeciesNames[arg0[i]]);
+ result = TRUE;
+ }
+
+ if (k == 1)
+ {
+ StringCopy(gStringVar2, gSpeciesNames[arg0[i]]);
+ result = TRUE;
+ }
+
+ k++;
+ }
+ }
+ }
+
+ gSpecialVar_0x8005 = k;
+
+ return result;
+}
+
+static void task_map_chg_seq_0807EC34(u16 *a0, u32 taskId)
+{
+ struct TrainerCard *trainerCards = gTrainerCards;
+
+ if (*a0 == 1)
+ {
+ if (gLinkType == 0x2266 || gLinkType == 0x2277)
+ {
+ if (sub_80B2AF4(trainerCards[0].monSpecies, trainerCards[1].monSpecies))
+ {
+ *a0 = 11;
+ sub_800AC34();
+ gTasks[taskId].func = sub_80B2CB0;
+ }
+ else
+ {
+ sub_80B241C(gTasks[taskId].data[5]);
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ }
+ }
+ else
+ {
+ sub_80B241C(gTasks[taskId].data[5]);
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ }
+ }
+ else
+ {
+ sub_800AC34();
+ gTasks[taskId].func = sub_80B2CB0;
+ }
+}
+
+static void sub_80B2C30(u8 taskId)
+{
+ u8 index;
+ struct TrainerCard *trainerCards;
+
+ if (sub_80B24F8(taskId) == TRUE)
+ return;
+
+ if (GetBlockReceivedStatus() != sub_800A9A8())
+ return;
+
+ for (index = 0; index < GetLinkPlayerCount(); index++)
+ {
+ sub_80C3120(&gTrainerCards[index], gBlockRecvBuffer[index], gLinkPlayers[index].version);
+ }
+
+ SetSuppressLinkErrorMessage(FALSE);
+ ResetBlockReceivedFlags();
+ task_map_chg_seq_0807EC34(&gSpecialVar_Result, taskId);
+}
+
+static void sub_80B2CB0(u8 taskId)
+{
+ if (gReceivedRemoteLinkPlayers == FALSE)
+ {
+ sub_80B241C(gTasks[taskId].data[5]);
+ EnableBothScriptContexts();
+ RemoveWindow(gTasks[taskId].data[5]);
+ DestroyTask(taskId);
+ }
+}
+
+static void sub_80B2CEC(u8 taskId)
+{
+ gSpecialVar_Result = 5;
+ sub_80B241C(gTasks[taskId].data[5]);
+ sub_8098374();
+ RemoveWindow(gTasks[taskId].data[5]);
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+}
+
+static void sub_80B2D2C(u8 taskId)
+{
+ gSpecialVar_Result = 6;
+ sub_80B241C(gTasks[taskId].data[5]);
+ RemoveWindow(gTasks[taskId].data[5]);
+ HideFieldMessageBox();
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+}
+
+static bool8 sub_80B2D6C(u8 taskId)
+{
+ gTasks[taskId].data[4]++;
+ if (gTasks[taskId].data[4] > 600)
+ {
+ gTasks[taskId].func = sub_80B2D2C;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void sub_80B2DA4(u8 arg0)
+{
+ u8 r3 = 2;
+ u8 r2 = 2;
+
+ switch (gSpecialVar_0x8004)
+ {
+ case 1:
+ r3 = 2;
+ gLinkType = 0x2233;
+ break;
+ case 2:
+ r3 = 2;
+ gLinkType = 0x2244;
+ break;
+ case 5:
+ r3 = 4;
+ r2 = 4;
+ gLinkType = 0x2255;
+ break;
+ case 9:
+ r3 = 2;
+ if (gSaveBlock2Ptr->frontier.lvlMode == 0)
+ {
+ gLinkType = 0x2266;
+ }
+ else
+ {
+ gLinkType = 0x2277;
+ }
+ break;
+ }
+
+ sub_80B236C(r3, r2);
+}
+
+void sub_80B2E4C(void)
+{
+ gLinkType = 0x1133;
+ gBattleTypeFlags = 0;
+ sub_80B236C(2, 2);
+}
+
+void sub_80B2E74(void)
+{
+ gSpecialVar_Result = 0;
+ gLinkType = 0x3311;
+ gBattleTypeFlags = 0;
+ sub_80B236C(2, 4);
+}
+
+void sub_80B2EA8(void)
+{
+ u32 taskId = FindTaskIdByFunc(sub_80B2EE4);
+
+ if (taskId == 0xFF)
+ {
+ taskId = CreateTask(sub_80B2EE4, 80);
+ gTasks[taskId].data[0] = 0;
+ }
+}
+
+static void sub_80B2EE4(u8 taskId)
+{
+ int playerCount;
+ int i;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (gSpecialVar_Result == 1)
+ {
+ bool32 unk = FALSE;
+ bool32 isEnglishRSLinked = FALSE;
+ bool32 isJapaneseEmeraldLinked = FALSE;
+
+ playerCount = GetLinkPlayerCount();
+ for (i = 0; i < playerCount; i++)
+ {
+ u32 version = (u8)gLinkPlayers[i].version;
+ u32 language = gLinkPlayers[i].language;
+
+ if (version == VERSION_RUBY || version == VERSION_SAPPHIRE)
+ {
+ if (language == LANGUAGE_JAPANESE)
+ {
+ unk = TRUE;
+ break;
+ }
+ else
+ {
+ isEnglishRSLinked = TRUE;
+ }
+ }
+ else if (version == VERSION_EMERALD)
+ {
+ if (language == LANGUAGE_JAPANESE)
+ {
+ isJapaneseEmeraldLinked = TRUE;
+ }
+ }
+ }
+
+ if (isEnglishRSLinked && isJapaneseEmeraldLinked)
+ {
+ unk = TRUE;
+ }
+
+ if (unk)
+ {
+ gSpecialVar_Result = 12;
+ sub_800AD10();
+ gTasks[taskId].data[0] = 1;
+ return;
+ }
+ }
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ break;
+ case 1:
+ if (gReceivedRemoteLinkPlayers == FALSE)
+ {
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+void sub_80B2FD8(void)
+{
+ gLinkType = 0x4411;
+ gBattleTypeFlags = 0;
+ sub_80B236C(2, 4);
+}
+
+void sub_80B3000(void)
+{
+ gLinkType = 0x6601;
+ gBattleTypeFlags = 0;
+ sub_80B236C(4, 4);
+}
+
+void sub_80B3028(void)
+{
+ gLinkType = 0x6602;
+ gBattleTypeFlags = 0;
+ sub_80B236C(2, 4);
+}
+
+u8 sub_80B3050(void)
+{
+ if (FuncIsActiveTask(sub_80B3144) != FALSE)
+ return 0xFF;
+
+ switch (gSpecialVar_0x8004)
+ {
+ case 1:
+ gLinkType = 0x2233;
+ break;
+ case 2:
+ gLinkType = 0x2244;
+ break;
+ case 5:
+ gLinkType = 0x2255;
+ break;
+ case 9:
+ if (gSaveBlock2Ptr->frontier.lvlMode == 0)
+ {
+ gLinkType = 0x2266;
+ }
+ else
+ {
+ gLinkType = 0x2277;
+ }
+ break;
+ case 3:
+ gLinkType = 0x1111;
+ break;
+ case 4:
+ gLinkType = 0x3322;
+ break;
+ }
+
+ return CreateTask(sub_80B3144, 80);
+}
+
+static void sub_80B3144(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ if (data[0] == 0)
+ {
+ OpenLink();
+ ResetLinkPlayers();
+ CreateTask(task00_08081A90, 80);
+ }
+ else if (data[0] >= 10)
+ {
+ gTasks[taskId].func = sub_80B3194;
+ }
+ data[0]++;
+}
+
+static void sub_80B3194(u8 taskId)
+{
+ if (GetLinkPlayerCount_2() >= 2)
+ {
+ if (IsLinkMaster() == TRUE)
+ gTasks[taskId].func = sub_80B31E8;
+ else
+ gTasks[taskId].func = sub_80B3220;
+ }
+}
+
+static void sub_80B31E8(u8 taskId)
+{
+ if (sub_800AA48() == GetLinkPlayerCount_2())
+ {
+ sub_800A620();
+ gTasks[taskId].func = sub_80B3220;
+ }
+}
+
+static void sub_80B3220(u8 taskId)
+{
+ if (gReceivedRemoteLinkPlayers == TRUE
+ && IsLinkPlayerDataExchangeComplete() == TRUE)
+ {
+ sub_800AB18();
+ sub_8009F18();
+ DestroyTask(taskId);
+ }
+}
+
+void sub_80B3254(void)
+{
+ SaveGame();
+}
+
+static void sub_80B3260(int a0)
+{
+ switch (a0)
+ {
+ case 1:
+ gBattleTypeFlags = BATTLE_TYPE_LINK | BATTLE_TYPE_TRAINER;
+ break;
+ case 2:
+ gBattleTypeFlags = BATTLE_TYPE_DOUBLE | BATTLE_TYPE_LINK | BATTLE_TYPE_TRAINER;
+ break;
+ case 5:
+ ReducePlayerPartyToThree();
+ gBattleTypeFlags = BATTLE_TYPE_DOUBLE | BATTLE_TYPE_LINK | BATTLE_TYPE_TRAINER | BATTLE_TYPE_MULTI;
+ break;
+ case 9:
+ gBattleTypeFlags = BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOUBLE | BATTLE_TYPE_LINK | BATTLE_TYPE_TRAINER | BATTLE_TYPE_MULTI;
+ break;
+ }
+}
+
+static void sub_80B32B4(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ FadeScreen(1, 0);
+ gLinkType = 0x2211;
+ ClearLinkCallback_2();
+ task->data[0]++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ task->data[0]++;
+ break;
+ case 2:
+ task->data[1]++;
+ if (task->data[1] > 20)
+ task->data[0]++;
+ break;
+ case 3:
+ sub_800AC34();
+ task->data[0]++;
+ break;
+ case 4:
+ if (!gReceivedRemoteLinkPlayers)
+ task->data[0]++;
+ break;
+ case 5:
+ if (gLinkPlayers[0].trainerId & 1)
+ PlayMapChosenOrBattleBGM(MUS_BATTLE32);
+ else
+ PlayMapChosenOrBattleBGM(MUS_BATTLE20);
+
+ sub_80B3260(gSpecialVar_0x8004);
+ overworld_free_bg_tilemaps();
+ gTrainerBattleOpponent_A = 0x800;
+ SetMainCallback2(CB2_InitBattle);
+ gMain.savedCallback = sub_80B360C;
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+static void sub_80B33BC(u8 taskId)
+{
+ int i;
+ s16* data = gTasks[taskId].data;
+
+ switch (data[0])
+ {
+ case 0:
+ FadeScreen(1, 0);
+ gLinkType = 0x2211;
+ ClearLinkCallback_2();
+ data[0] = 1;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ data[0] = 2;
+ break;
+ case 2:
+ SendBlock(0, &gLocalLinkPlayer, sizeof(gLocalLinkPlayer));
+ data[0] = 3;
+ break;
+ case 3:
+ if (GetBlockReceivedStatus() == sub_800A9D8())
+ {
+ for (i = 0; i < GetLinkPlayerCount(); i++)
+ {
+ struct LinkPlayer *player = (struct LinkPlayer *)gBlockRecvBuffer[i];
+ gLinkPlayers[i] = *player;
+ sub_800B524(&gLinkPlayers[i]);
+ ResetBlockReceivedFlag(i);
+ }
+ data[0] = 4;
+ }
+ break;
+ case 4:
+ data[1]++;
+ if (data[1] > 20)
+ data[0] = 5;
+ break;
+ case 5:
+ sub_800ADF8();
+ data[0] = 6;
+ break;
+ case 6:
+ if (sub_800A520())
+ {
+ data[0] = 7;
+ }
+ break;
+ case 7:
+ if (gLinkPlayers[0].trainerId & 1)
+ PlayMapChosenOrBattleBGM(MUS_BATTLE32);
+ else
+ PlayMapChosenOrBattleBGM(MUS_BATTLE20);
+
+ gLinkPlayers[0].linkType = 0x2211;
+ sub_80B3260(gSpecialVar_0x8004);
+ overworld_free_bg_tilemaps();
+ gTrainerBattleOpponent_A = 0x800;
+ SetMainCallback2(CB2_InitBattle);
+ gMain.savedCallback = sub_80B360C;
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+static void sub_80B3554(void)
+{
+ u8 playerCount;
+ int i;
+ bool32 r4;
+
+ switch (gMain.state)
+ {
+ case 0:
+ playerCount = GetLinkPlayerCount();
+ r4 = FALSE;
+ for (i = 0; i < playerCount; i++)
+ {
+ u32 version = (u8)gLinkPlayers[i].version;
+ if (version == VERSION_FIRE_RED || version == VERSION_LEAF_GREEN)
+ {
+ r4 = TRUE;
+ break;
+ }
+ }
+
+ if (r4)
+ {
+ gMain.state = 2;
+ }
+ else
+ {
+ sub_800AC34();
+ gMain.state = 1;
+ }
+ break;
+ case 1:
+ if (gReceivedRemoteLinkPlayers == FALSE)
+ {
+ SetMainCallback2(CB2_ReturnToField);
+ }
+ break;
+ case 2:
+ SetMainCallback2(CB2_ReturnToField);
+ break;
+ }
+ RunTasks();
+}
+
+void sub_80B360C(void)
+{
+ gBattleTypeFlags &= ~BATTLE_TYPE_20;
+ Overworld_ResetMapMusic();
+ LoadPlayerParty();
+ SavePlayerBag();
+ sub_813BF10();
+
+ if (gSpecialVar_0x8004 == 1 || gSpecialVar_0x8004 == 2)
+ {
+ UpdatePlayerLinkBattleRecords(gUnknown_03005DB4 ^ 1);
+ if (gWirelessCommType)
+ {
+ switch (gBattleOutcome)
+ {
+ case B_OUTCOME_WON:
+ sub_801B990(0, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId);
+ break;
+ case B_OUTCOME_LOST:
+ sub_801B990(1, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId);
+ break;
+ }
+ }
+ }
+
+ if (InUnionRoom() == TRUE)
+ {
+ gMain.savedCallback = sub_80B3554;
+ }
+ else
+ {
+ gMain.savedCallback = c2_8056854;
+ }
+
+ SetMainCallback2(sub_80A0514);
+}
+
+void sub_80B36EC(void)
+{
+ if (gSpecialVar_0x8004 == 1 || gSpecialVar_0x8004 == 2 || gSpecialVar_0x8004 == 5 || gSpecialVar_0x8004 == 9)
+ {
+ LoadPlayerParty();
+ SavePlayerBag();
+ }
+ copy_saved_warp2_bank_and_enter_x_to_warp1(0x7F);
+}
+
+void sub_80B371C(void)
+{
+ sub_80872B0();
+}
+
+static void sub_80B3728(u8 taskId)
+{
+ struct Task* task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ ShowFieldMessage(gText_PleaseWaitForLink);
+ task->data[0] = 1;
+ break;
+ case 1:
+ if (IsFieldMessageBoxHidden())
+ {
+ sub_8087288();
+ sub_8009628(gSpecialVar_0x8005);
+ task->data[0] = 2;
+ }
+ break;
+ case 2:
+ switch (sub_8087214())
+ {
+ case 0:
+ break;
+ case 1:
+ HideFieldMessageBox();
+ task->data[0] = 0;
+ sub_80872C4();
+ SwitchTaskToFollowupFunc(taskId);
+ break;
+ case 2:
+ task->data[0] = 3;
+ break;
+ }
+ break;
+ case 3:
+ sub_808729C();
+ sub_8197AE8(TRUE);
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ break;
+ }
+}
+
+void sub_80B37D4(TaskFunc followupFunc)
+{
+ u8 taskId = CreateTask(sub_80B3728, 80);
+ SetTaskFuncWithFollowupFunc(taskId, sub_80B3728, followupFunc);
+ ScriptContext1_Stop();
+}
+
+static void sub_80B37FC(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ ScriptContext2_Enable();
+ FadeScreen(1, 0);
+ ClearLinkCallback_2();
+ task->data[0]++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ task->data[0]++;
+ break;
+ case 2:
+ gUnknown_02032298[0] = 0;
+ gUnknown_02032298[1] = 0;
+ m4aMPlayAllStop();
+ sub_800AC34();
+ task->data[0]++;
+ break;
+ case 3:
+ if (!gReceivedRemoteLinkPlayers)
+ {
+ SetMainCallback2(sub_80773AC);
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+static void sub_80B3894(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (data[0])
+ {
+ case 0:
+ ScriptContext2_Enable();
+ FadeScreen(1, 0);
+ Rfu_set_zero();
+ data[0]++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ data[0]++;
+ break;
+ case 2:
+ gUnknown_02032298[0] = 0;
+ gUnknown_02032298[1] = 0;
+ m4aMPlayAllStop();
+ sub_800ADF8();
+ data[0]++;
+ break;
+ case 3:
+ if (sub_800A520())
+ {
+ sub_8013F78();
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+void sub_80B3924(void)
+{
+ if (gWirelessCommType != 0)
+ {
+ sub_80B37D4(sub_80B3894);
+ }
+ else
+ {
+ sub_80B37D4(sub_80B37FC);
+ }
+}
+
+static void sub_80B3950(void)
+{
+ CreateTask(sub_80B37FC, 80);
+}
+
+void nullsub_37(void)
+{
+
+}
+
+void sub_80B3968(void)
+{
+ gLinkType = 0x2211;
+
+ if (gWirelessCommType != 0)
+ {
+ sub_80B37D4(sub_80B33BC);
+ }
+ else
+ {
+ sub_80B37D4(sub_80B32B4);
+ }
+}
+
+static void sub_80B39A4(void)
+{
+ u8 taskId = CreateTask(sub_80B3728, 80);
+ ScriptContext1_Stop();
+}
+
+void sp02A_crash_sound(void)
+{
+ TrainerCard_ShowLinkCard(gSpecialVar_0x8006, CB2_ReturnToFieldContinueScriptPlayMapMusic);
+}
+
+bool32 sub_80B39D4(u8 linkPlayerIndex)
+{
+ u32 trainerCardColorIndex;
+
+ gSpecialVar_0x8006 = linkPlayerIndex;
+ StringCopy(gStringVar1, gLinkPlayers[linkPlayerIndex].name);
+
+ trainerCardColorIndex = sub_80C4904(linkPlayerIndex);
+ if (trainerCardColorIndex == 0)
+ return FALSE;
+
+ StringCopy(gStringVar2, gTrainerCardColorNames[trainerCardColorIndex - 1]);
+ return TRUE;
+}
+
+void task00_08081A90(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ task->data[0]++;
+ if (task->data[0] > 300)
+ {
+ CloseLink();
+ SetMainCallback2(CB2_LinkError);
+ DestroyTask(taskId);
+ }
+
+ if (gReceivedRemoteLinkPlayers)
+ {
+ if (gWirelessCommType == 0)
+ {
+ if (!sub_800AA60())
+ {
+ CloseLink();
+ SetMainCallback2(CB2_LinkError);
+ }
+ DestroyTask(taskId);
+ }
+ else
+ {
+ DestroyTask(taskId);
+ }
+ }
+}
+
+static void sub_80B3AAC(u8 taskId)
+{
+ if (!gReceivedRemoteLinkPlayers)
+ {
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ }
+}
+
+static void sub_80B3AD0(u8 taskId)
+{
+ sub_800AC34();
+ gTasks[taskId].func = sub_80B3AAC;
+}
+
+void sub_80B3AF8(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (data[0])
+ {
+ case 0:
+ if (gWirelessCommType != 0)
+ {
+ DestroyTask(taskId);
+ }
+ else
+ {
+ OpenLink();
+ CreateTask(task00_08081A90, 1);
+ data[0]++;
+ }
+ break;
+ case 1:
+ if (++data[1] > 11)
+ {
+ data[1] = 0;
+ data[0]++;
+ }
+ break;
+ case 2:
+ if (GetLinkPlayerCount_2() >= sub_800AA48())
+ {
+ if (IsLinkMaster())
+ {
+ if (++data[1] > 30)
+ {
+ sub_800A620();
+ data[0]++;
+ }
+ }
+ else
+ {
+ data[0]++;
+ }
+ }
+ break;
+ case 3:
+ if (gReceivedRemoteLinkPlayers == TRUE && IsLinkPlayerDataExchangeComplete() == TRUE)
+ {
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+void sub_80B3BC4(void)
+{
+ if (gWirelessCommType == 0)
+ {
+ gLinkType = 0x2288;
+ }
+}
diff --git a/src/contest.c b/src/contest.c
index 8eacc89c3..473f77f9c 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -10,7 +10,6 @@
#include "constants/flags.h"
#include "battle.h"
#include "battle_anim.h"
-#include "blend_palette.h"
#include "contest.h"
#include "data2.h"
#include "decompress.h"
diff --git a/src/data/field_event_obj/event_object_graphics.h b/src/data/field_event_obj/event_object_graphics.h
index a99d5a779..4b65e694f 100755
--- a/src/data/field_event_obj/event_object_graphics.h
+++ b/src/data/field_event_obj/event_object_graphics.h
@@ -71,36 +71,36 @@ const u16 gEventObjectPalette4[] = INCBIN_U16("graphics/event_objects/palettes/f
const u16 gEventObjectPalette5[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_05.gbapal");
const u16 gEventObjectPalette6[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_06.gbapal");
const u16 gEventObjectPalette7[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_07.gbapal");
-const u32 gEventObjectPic_LittleBoy1[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_1.4bpp");
-const u32 gEventObjectPic_LittleGirl1[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_1.4bpp");
+const u32 gEventObjectPic_NinjaBoy[] = INCBIN_U32("graphics/event_objects/pics/people/ninja_boy.4bpp");
+const u32 gEventObjectPic_Twin[] = INCBIN_U32("graphics/event_objects/pics/people/twin.4bpp");
const u32 gEventObjectPic_Boy1[] = INCBIN_U32("graphics/event_objects/pics/people/boy_1.4bpp");
const u32 gEventObjectPic_Girl1[] = INCBIN_U32("graphics/event_objects/pics/people/girl_1.4bpp");
const u32 gEventObjectPic_Boy2[] = INCBIN_U32("graphics/event_objects/pics/people/boy_2.4bpp");
const u32 gEventObjectPic_Girl2[] = INCBIN_U32("graphics/event_objects/pics/people/girl_2.4bpp");
-const u32 gEventObjectPic_LittleBoy2[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_2.4bpp");
-const u32 gEventObjectPic_LittleGirl2[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_2.4bpp");
+const u32 gEventObjectPic_LittleBoy[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy.4bpp");
+const u32 gEventObjectPic_LittleGirl[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl.4bpp");
const u32 gEventObjectPic_Boy3[] = INCBIN_U32("graphics/event_objects/pics/people/boy_3.4bpp");
const u32 gEventObjectPic_Girl3[] = INCBIN_U32("graphics/event_objects/pics/people/girl_3.4bpp");
-const u32 gEventObjectPic_Boy4[] = INCBIN_U32("graphics/event_objects/pics/people/boy_4.4bpp");
+const u32 gEventObjectPic_RichBoy[] = INCBIN_U32("graphics/event_objects/pics/people/rich_boy.4bpp");
const u32 gEventObjectPic_Woman1[] = INCBIN_U32("graphics/event_objects/pics/people/woman_1.4bpp");
const u32 gEventObjectPic_FatMan[] = INCBIN_U32("graphics/event_objects/pics/people/fat_man.4bpp");
-const u32 gEventObjectPic_Woman2[] = INCBIN_U32("graphics/event_objects/pics/people/woman_2.4bpp");
+const u32 gEventObjectPic_PokefanF[] = INCBIN_U32("graphics/event_objects/pics/people/pokefan_f.4bpp");
const u32 gEventObjectPic_Man1[] = INCBIN_U32("graphics/event_objects/pics/people/man_1.4bpp");
-const u32 gEventObjectPic_Woman3[] = INCBIN_U32("graphics/event_objects/pics/people/woman_3.4bpp");
-const u32 gEventObjectPic_OldMan1[] = INCBIN_U32("graphics/event_objects/pics/people/old_man_1.4bpp");
-const u32 gEventObjectPic_OldWoman1[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_1.4bpp");
+const u32 gEventObjectPic_Woman2[] = INCBIN_U32("graphics/event_objects/pics/people/woman_2.4bpp");
+const u32 gEventObjectPic_ExpertM[] = INCBIN_U32("graphics/event_objects/pics/people/expert_m.4bpp");
+const u32 gEventObjectPic_ExpertF[] = INCBIN_U32("graphics/event_objects/pics/people/expert_f.4bpp");
const u32 gEventObjectPic_Man2[] = INCBIN_U32("graphics/event_objects/pics/people/man_2.4bpp");
+const u32 gEventObjectPic_Woman3[] = INCBIN_U32("graphics/event_objects/pics/people/woman_3.4bpp");
+const u32 gEventObjectPic_PokefanM[] = INCBIN_U32("graphics/event_objects/pics/people/pokefan_m.4bpp");
const u32 gEventObjectPic_Woman4[] = INCBIN_U32("graphics/event_objects/pics/people/woman_4.4bpp");
-const u32 gEventObjectPic_Man3[] = INCBIN_U32("graphics/event_objects/pics/people/man_3.4bpp");
-const u32 gEventObjectPic_Woman5[] = INCBIN_U32("graphics/event_objects/pics/people/woman_5.4bpp");
const u32 gEventObjectPic_Cook[] = INCBIN_U32("graphics/event_objects/pics/people/cook.4bpp");
-const u32 gEventObjectPic_Woman6[] = INCBIN_U32("graphics/event_objects/pics/people/woman_6.4bpp");
-const u32 gEventObjectPic_OldMan2[] = INCBIN_U32("graphics/event_objects/pics/people/old_man_2.4bpp");
-const u32 gEventObjectPic_OldWoman2[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_2.4bpp");
+const u32 gEventObjectPic_LinkReceptionist[] = INCBIN_U32("graphics/event_objects/pics/people/link_receptionist.4bpp");
+const u32 gEventObjectPic_OldMan[] = INCBIN_U32("graphics/event_objects/pics/people/old_man.4bpp");
+const u32 gEventObjectPic_OldWoman[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman.4bpp");
const u32 gEventObjectPic_Camper[] = INCBIN_U32("graphics/event_objects/pics/people/camper.4bpp");
const u32 gEventObjectPic_Picnicker[] = INCBIN_U32("graphics/event_objects/pics/people/picnicker.4bpp");
-const u32 gEventObjectPic_Man4[] = INCBIN_U32("graphics/event_objects/pics/people/man_4.4bpp");
-const u32 gEventObjectPic_Woman7[] = INCBIN_U32("graphics/event_objects/pics/people/woman_7.4bpp");
+const u32 gEventObjectPic_Man3[] = INCBIN_U32("graphics/event_objects/pics/people/man_3.4bpp");
+const u32 gEventObjectPic_Woman5[] = INCBIN_U32("graphics/event_objects/pics/people/woman_5.4bpp");
const u32 gEventObjectPic_Youngster[] = INCBIN_U32("graphics/event_objects/pics/people/youngster.4bpp");
const u32 gEventObjectPic_BugCatcher[] = INCBIN_U32("graphics/event_objects/pics/people/bug_catcher.4bpp");
const u32 gEventObjectPic_PsychicM[] = INCBIN_U32("graphics/event_objects/pics/people/psychic_m.4bpp");
@@ -124,8 +124,8 @@ const u32 gEventObjectPic_TuberM[] = INCBIN_U32("graphics/event_objects/pics/peo
const u32 gEventObjectPic_Hiker[] = INCBIN_U32("graphics/event_objects/pics/people/hiker.4bpp");
const u32 gEventObjectPic_CyclingTriathleteM[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_m.4bpp");
const u32 gEventObjectPic_CyclingTriathleteF[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_f.4bpp");
+const u32 gEventObjectPic_Man4[] = INCBIN_U32("graphics/event_objects/pics/people/man_4.4bpp");
const u32 gEventObjectPic_Man5[] = INCBIN_U32("graphics/event_objects/pics/people/man_5.4bpp");
-const u32 gEventObjectPic_Man6[] = INCBIN_U32("graphics/event_objects/pics/people/man_6.4bpp");
const u32 gEventObjectPic_Nurse[] = INCBIN_U32("graphics/event_objects/pics/people/nurse.4bpp");
const u32 gEventObjectPic_ItemBall[] = INCBIN_U32("graphics/event_objects/pics/misc/item_ball.4bpp");
const u32 gEventObjectPic_ProfBirch[] = INCBIN_U32("graphics/event_objects/pics/people/prof_birch.4bpp");
@@ -139,7 +139,7 @@ const u32 gEventObjectPic_Teala[] = INCBIN_U32("graphics/event_objects/pics/peop
const u32 gEventObjectPic_Artist[] = INCBIN_U32("graphics/event_objects/pics/people/artist.4bpp");
const u32 gEventObjectPic_Cameraman[] = INCBIN_U32("graphics/event_objects/pics/people/cameraman.4bpp");
const u32 gEventObjectPic_Scientist2[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_2.4bpp");
-const u32 gEventObjectPic_Man7[] = INCBIN_U32("graphics/event_objects/pics/people/man_7.4bpp");
+const u32 gEventObjectPic_DevonEmployee[] = INCBIN_U32("graphics/event_objects/pics/people/devon_employee.4bpp");
const u32 gEventObjectPic_AquaMemberM[] = INCBIN_U32("graphics/event_objects/pics/people/team_aqua/aqua_member_m.4bpp");
const u32 gEventObjectPic_AquaMemberF[] = INCBIN_U32("graphics/event_objects/pics/people/team_aqua/aqua_member_f.4bpp");
const u32 gEventObjectPic_MagmaMemberM[] = INCBIN_U32("graphics/event_objects/pics/people/team_magma/magma_member_m.4bpp");
@@ -162,8 +162,8 @@ const u32 gEventObjectPic_Wally[] = INCBIN_U32("graphics/event_objects/pics/peop
const u32 gEventObjectPic_RubySapphireLittleBoy[] = INCBIN_U32("graphics/event_objects/pics/people/rs_little_boy.4bpp");
const u32 gEventObjectPic_HotSpringsOldWoman[] = INCBIN_U32("graphics/event_objects/pics/people/hot_springs_old_woman.4bpp");
const u32 gEventObjectPic_LatiasLatios[] = INCBIN_U32("graphics/event_objects/pics/pokemon/latias_latios.4bpp");
-const u32 gEventObjectPic_Boy5[] = INCBIN_U32("graphics/event_objects/pics/people/boy_5.4bpp");
-const u32 gEventObjectPic_ContestOldMan[] = INCBIN_U32("graphics/event_objects/pics/people/contest_old_man.4bpp");
+const u32 gEventObjectPic_GameboyKid[] = INCBIN_U32("graphics/event_objects/pics/people/gameboy_kid.4bpp");
+const u32 gEventObjectPic_ContestJudge[] = INCBIN_U32("graphics/event_objects/pics/people/contest_judge.4bpp");
const u32 gEventObjectPic_Archie[] = INCBIN_U32("graphics/event_objects/pics/people/team_aqua/archie.4bpp");
const u32 gEventObjectPic_Maxie[] = INCBIN_U32("graphics/event_objects/pics/people/team_magma/maxie.4bpp");
const u32 gEventObjectPic_Kyogre[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kyogre.4bpp");
diff --git a/src/data/field_event_obj/event_object_graphics_info.h b/src/data/field_event_obj/event_object_graphics_info.h
index fd8bb78ce..ebc324b08 100755
--- a/src/data/field_event_obj/event_object_graphics_info.h
+++ b/src/data/field_event_obj/event_object_graphics_info.h
@@ -7,36 +7,36 @@ const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanAcroBike =
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanSurfing = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Surfing, gEventObjectPicTable_BrendanSurfing, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanFieldMove = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_FieldMove, gEventObjectPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_QuintyPlump = {0xFFFF, EVENT_OBJ_PAL_TAG_12, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_L, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_QuintyPlump, gEventObjectPicTable_QuintyPlump, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleBoy1 = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LittleBoy1, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleGirl1 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LittleGirl1, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_NinjaBoy = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_NinjaBoy, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Twin = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Twin, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy1 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Boy1, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Girl1 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Girl1, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy2 = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Boy2, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Girl2 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Girl2, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleBoy2 = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LittleBoy2, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleGirl2 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LittleGirl2, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleBoy = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LittleBoy, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleGirl = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LittleGirl, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy3 = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Boy3, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Girl3 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Girl3, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy4 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Boy4, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RichBoy = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_RichBoy, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman1 = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman1, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_FatMan = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_FatMan, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman2 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman2, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_PokefanF = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_PokefanF, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man1 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man1, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman3 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman3, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldMan1 = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_OldMan1, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldWoman1 = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_OldWoman1, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman2 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman2, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ExpertM = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_ExpertM, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ExpertF = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_ExpertF, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man2 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man2, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman4 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman4, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man3 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man3, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman5 = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman5, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman3 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman3, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_PokefanM = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_PokefanM, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman4 = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman4, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Cook = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Cook, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman6 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman6, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldMan2 = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_OldMan2, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldWoman2 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_OldWoman2, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LinkReceptionist = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LinkReceptionist, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldMan = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_OldMan, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldWoman = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_OldWoman, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Camper = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Camper, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Picnicker = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Picnicker, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man4 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man4, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman7 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman7, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man3 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man3, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman5 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman5, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Youngster = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Youngster, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BugCatcher = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_BugCatcher, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_PsychicM = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_PsychicM, gDummySpriteAffineAnimTable};
@@ -66,8 +66,8 @@ const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BerryTree = {0xFFF
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BerryTreeEarlyStages = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_BerryTree, gEventObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BerryTreeLateStages = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_BerryTree, gEventObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ProfBirch = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_ProfBirch, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man5 = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man5, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man6 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man6, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man4 = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man4, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man5 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man5, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ReporterM = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_ReporterM, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ReporterF = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_ReporterF, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Bard = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable};
@@ -118,7 +118,7 @@ const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayUnderwater = {0
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MovingBox = {0xFFFF, EVENT_OBJ_PAL_TAG_19, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 10, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_MovingBox, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_CableCar = {0xFFFF, EVENT_OBJ_PAL_TAG_20, EVENT_OBJ_PAL_TAG_NONE, 2048, 64, 64, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_64x64, gEventObjectSpriteOamTables_64x64, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_CableCar, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Scientist2 = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Scientist2, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man7 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man7, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_DevonEmployee = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_DevonEmployee, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_AquaMemberM = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_AquaMemberM, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_AquaMemberF = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_AquaMemberF, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MagmaMemberM = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MagmaMemberM, gDummySpriteAffineAnimTable};
@@ -191,8 +191,8 @@ const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigRegiceDoll = {0
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigRegisteelDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigRegisteelDoll, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Latias = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LatiasLatios, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Latios = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LatiasLatios, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy5 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Boy5, gDummySpriteAffineAnimTable};
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ContestOldMan = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_ContestOldMan, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_GameboyKid = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_GameboyKid, gDummySpriteAffineAnimTable};
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ContestJudge = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_ContestJudge, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanWatering = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_BrendanWatering, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayWatering = {0xFFFF, EVENT_OBJ_PAL_TAG_17, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MayWatering, gDummySpriteAffineAnimTable};
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanDecorating = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BrendanDecorating, gDummySpriteAffineAnimTable};
diff --git a/src/data/field_event_obj/event_object_graphics_info_pointers.h b/src/data/field_event_obj/event_object_graphics_info_pointers.h
index c0ca57b60..3f726e30e 100755
--- a/src/data/field_event_obj/event_object_graphics_info_pointers.h
+++ b/src/data/field_event_obj/event_object_graphics_info_pointers.h
@@ -6,36 +6,36 @@ const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanMachBike;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanSurfing;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanFieldMove;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_QuintyPlump;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleBoy1;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleGirl1;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_NinjaBoy;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Twin;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy1;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Girl1;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy2;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Girl2;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleBoy2;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleGirl2;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleBoy;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleGirl;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy3;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Girl3;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy4;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RichBoy;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman1;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_FatMan;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman2;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_PokefanF;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man1;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman3;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldMan1;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldWoman1;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman2;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ExpertM;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ExpertF;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man2;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman3;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_PokefanM;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman4;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man3;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman5;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Cook;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman6;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldMan2;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldWoman2;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LinkReceptionist;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldMan;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldWoman;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Camper;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Picnicker;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man4;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman7;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man3;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman5;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Youngster;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BugCatcher;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_PsychicM;
@@ -66,8 +66,8 @@ const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BerryTreeEarlyStag
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BerryTreeLateStages;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanAcroBike;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ProfBirch;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man4;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man5;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man6;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ReporterM;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ReporterF;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Bard;
@@ -117,7 +117,7 @@ const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayUnderwater;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MovingBox;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_CableCar;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Scientist2;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man7;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_DevonEmployee;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_AquaMemberM;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_AquaMemberF;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MagmaMemberM;
@@ -190,8 +190,8 @@ const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigRegiceDoll;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigRegisteelDoll;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Latias;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Latios;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy5;
-const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ContestOldMan;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_GameboyKid;
+const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ContestJudge;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanWatering;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayWatering;
const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanDecorating;
@@ -255,36 +255,36 @@ const struct EventObjectGraphicsInfo *const gEventObjectGraphicsInfoPointers[] =
&gEventObjectGraphicsInfo_BrendanSurfing,
&gEventObjectGraphicsInfo_BrendanFieldMove,
&gEventObjectGraphicsInfo_QuintyPlump,
- &gEventObjectGraphicsInfo_LittleBoy1,
- &gEventObjectGraphicsInfo_LittleGirl1,
+ &gEventObjectGraphicsInfo_NinjaBoy,
+ &gEventObjectGraphicsInfo_Twin,
&gEventObjectGraphicsInfo_Boy1,
&gEventObjectGraphicsInfo_Girl1,
&gEventObjectGraphicsInfo_Boy2,
&gEventObjectGraphicsInfo_Girl2,
- &gEventObjectGraphicsInfo_LittleBoy2,
- &gEventObjectGraphicsInfo_LittleGirl2,
+ &gEventObjectGraphicsInfo_LittleBoy,
+ &gEventObjectGraphicsInfo_LittleGirl,
&gEventObjectGraphicsInfo_Boy3,
&gEventObjectGraphicsInfo_Girl3,
- &gEventObjectGraphicsInfo_Boy4,
+ &gEventObjectGraphicsInfo_RichBoy,
&gEventObjectGraphicsInfo_Woman1,
&gEventObjectGraphicsInfo_FatMan,
- &gEventObjectGraphicsInfo_Woman2,
+ &gEventObjectGraphicsInfo_PokefanF,
&gEventObjectGraphicsInfo_Man1,
- &gEventObjectGraphicsInfo_Woman3,
- &gEventObjectGraphicsInfo_OldMan1,
- &gEventObjectGraphicsInfo_OldWoman1,
+ &gEventObjectGraphicsInfo_Woman2,
+ &gEventObjectGraphicsInfo_ExpertM,
+ &gEventObjectGraphicsInfo_ExpertF,
&gEventObjectGraphicsInfo_Man2,
+ &gEventObjectGraphicsInfo_Woman3,
+ &gEventObjectGraphicsInfo_PokefanM,
&gEventObjectGraphicsInfo_Woman4,
- &gEventObjectGraphicsInfo_Man3,
- &gEventObjectGraphicsInfo_Woman5,
&gEventObjectGraphicsInfo_Cook,
- &gEventObjectGraphicsInfo_Woman6,
- &gEventObjectGraphicsInfo_OldMan2,
- &gEventObjectGraphicsInfo_OldWoman2,
+ &gEventObjectGraphicsInfo_LinkReceptionist,
+ &gEventObjectGraphicsInfo_OldMan,
+ &gEventObjectGraphicsInfo_OldWoman,
&gEventObjectGraphicsInfo_Camper,
&gEventObjectGraphicsInfo_Picnicker,
- &gEventObjectGraphicsInfo_Man4,
- &gEventObjectGraphicsInfo_Woman7,
+ &gEventObjectGraphicsInfo_Man3,
+ &gEventObjectGraphicsInfo_Woman5,
&gEventObjectGraphicsInfo_Youngster,
&gEventObjectGraphicsInfo_BugCatcher,
&gEventObjectGraphicsInfo_PsychicM,
@@ -315,8 +315,8 @@ const struct EventObjectGraphicsInfo *const gEventObjectGraphicsInfoPointers[] =
&gEventObjectGraphicsInfo_BerryTreeLateStages,
&gEventObjectGraphicsInfo_BrendanAcroBike,
&gEventObjectGraphicsInfo_ProfBirch,
+ &gEventObjectGraphicsInfo_Man4,
&gEventObjectGraphicsInfo_Man5,
- &gEventObjectGraphicsInfo_Man6,
&gEventObjectGraphicsInfo_ReporterM,
&gEventObjectGraphicsInfo_ReporterF,
&gEventObjectGraphicsInfo_Bard,
@@ -366,7 +366,7 @@ const struct EventObjectGraphicsInfo *const gEventObjectGraphicsInfoPointers[] =
&gEventObjectGraphicsInfo_MovingBox,
&gEventObjectGraphicsInfo_CableCar,
&gEventObjectGraphicsInfo_Scientist2,
- &gEventObjectGraphicsInfo_Man7,
+ &gEventObjectGraphicsInfo_DevonEmployee,
&gEventObjectGraphicsInfo_AquaMemberM,
&gEventObjectGraphicsInfo_AquaMemberF,
&gEventObjectGraphicsInfo_MagmaMemberM,
@@ -439,8 +439,8 @@ const struct EventObjectGraphicsInfo *const gEventObjectGraphicsInfoPointers[] =
&gEventObjectGraphicsInfo_BigRegisteelDoll,
&gEventObjectGraphicsInfo_Latias,
&gEventObjectGraphicsInfo_Latios,
- &gEventObjectGraphicsInfo_Boy5,
- &gEventObjectGraphicsInfo_ContestOldMan,
+ &gEventObjectGraphicsInfo_GameboyKid,
+ &gEventObjectGraphicsInfo_ContestJudge,
&gEventObjectGraphicsInfo_BrendanWatering,
&gEventObjectGraphicsInfo_MayWatering,
&gEventObjectGraphicsInfo_BrendanDecorating,
diff --git a/src/data/field_event_obj/event_object_pic_tables.h b/src/data/field_event_obj/event_object_pic_tables.h
index 40a6ad61c..bd1ad1a25 100755
--- a/src/data/field_event_obj/event_object_pic_tables.h
+++ b/src/data/field_event_obj/event_object_pic_tables.h
@@ -109,28 +109,28 @@ const struct SpriteFrameImage gEventObjectPicTable_QuintyPlump[] = {
overworld_frame(gEventObjectPic_QuintyPlump, 4, 4, 6),
};
-const struct SpriteFrameImage gEventObjectPicTable_LittleBoy1[] = {
- overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 0),
- overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 1),
- overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 2),
- overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 3),
- overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 4),
- overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 5),
- overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 6),
- overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 7),
- overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 8),
-};
-
-const struct SpriteFrameImage gEventObjectPicTable_LittleGirl1[] = {
- overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 0),
- overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 1),
- overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 2),
- overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 3),
- overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 4),
- overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 5),
- overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 6),
- overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 7),
- overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 8),
+const struct SpriteFrameImage gEventObjectPicTable_NinjaBoy[] = {
+ overworld_frame(gEventObjectPic_NinjaBoy, 2, 2, 0),
+ overworld_frame(gEventObjectPic_NinjaBoy, 2, 2, 1),
+ overworld_frame(gEventObjectPic_NinjaBoy, 2, 2, 2),
+ overworld_frame(gEventObjectPic_NinjaBoy, 2, 2, 3),
+ overworld_frame(gEventObjectPic_NinjaBoy, 2, 2, 4),
+ overworld_frame(gEventObjectPic_NinjaBoy, 2, 2, 5),
+ overworld_frame(gEventObjectPic_NinjaBoy, 2, 2, 6),
+ overworld_frame(gEventObjectPic_NinjaBoy, 2, 2, 7),
+ overworld_frame(gEventObjectPic_NinjaBoy, 2, 2, 8),
+};
+
+const struct SpriteFrameImage gEventObjectPicTable_Twin[] = {
+ overworld_frame(gEventObjectPic_Twin, 2, 4, 0),
+ overworld_frame(gEventObjectPic_Twin, 2, 4, 1),
+ overworld_frame(gEventObjectPic_Twin, 2, 4, 2),
+ overworld_frame(gEventObjectPic_Twin, 2, 4, 3),
+ overworld_frame(gEventObjectPic_Twin, 2, 4, 4),
+ overworld_frame(gEventObjectPic_Twin, 2, 4, 5),
+ overworld_frame(gEventObjectPic_Twin, 2, 4, 6),
+ overworld_frame(gEventObjectPic_Twin, 2, 4, 7),
+ overworld_frame(gEventObjectPic_Twin, 2, 4, 8),
};
const struct SpriteFrameImage gEventObjectPicTable_Boy1[] = {
@@ -181,28 +181,28 @@ const struct SpriteFrameImage gEventObjectPicTable_Girl2[] = {
overworld_frame(gEventObjectPic_Girl2, 2, 4, 8),
};
-const struct SpriteFrameImage gEventObjectPicTable_LittleBoy2[] = {
- overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 0),
- overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 1),
- overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 2),
- overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 3),
- overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 4),
- overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 5),
- overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 6),
- overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 7),
- overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 8),
+const struct SpriteFrameImage gEventObjectPicTable_LittleBoy[] = {
+ overworld_frame(gEventObjectPic_LittleBoy, 2, 2, 0),
+ overworld_frame(gEventObjectPic_LittleBoy, 2, 2, 1),
+ overworld_frame(gEventObjectPic_LittleBoy, 2, 2, 2),
+ overworld_frame(gEventObjectPic_LittleBoy, 2, 2, 3),
+ overworld_frame(gEventObjectPic_LittleBoy, 2, 2, 4),
+ overworld_frame(gEventObjectPic_LittleBoy, 2, 2, 5),
+ overworld_frame(gEventObjectPic_LittleBoy, 2, 2, 6),
+ overworld_frame(gEventObjectPic_LittleBoy, 2, 2, 7),
+ overworld_frame(gEventObjectPic_LittleBoy, 2, 2, 8),
};
-const struct SpriteFrameImage gEventObjectPicTable_LittleGirl2[] = {
- overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 0),
- overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 1),
- overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 2),
- overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 3),
- overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 4),
- overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 5),
- overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 6),
- overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 7),
- overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 8),
+const struct SpriteFrameImage gEventObjectPicTable_LittleGirl[] = {
+ overworld_frame(gEventObjectPic_LittleGirl, 2, 2, 0),
+ overworld_frame(gEventObjectPic_LittleGirl, 2, 2, 1),
+ overworld_frame(gEventObjectPic_LittleGirl, 2, 2, 2),
+ overworld_frame(gEventObjectPic_LittleGirl, 2, 2, 3),
+ overworld_frame(gEventObjectPic_LittleGirl, 2, 2, 4),
+ overworld_frame(gEventObjectPic_LittleGirl, 2, 2, 5),
+ overworld_frame(gEventObjectPic_LittleGirl, 2, 2, 6),
+ overworld_frame(gEventObjectPic_LittleGirl, 2, 2, 7),
+ overworld_frame(gEventObjectPic_LittleGirl, 2, 2, 8),
};
const struct SpriteFrameImage gEventObjectPicTable_Boy3[] = {
@@ -229,16 +229,16 @@ const struct SpriteFrameImage gEventObjectPicTable_Girl3[] = {
overworld_frame(gEventObjectPic_Girl3, 2, 4, 8),
};
-const struct SpriteFrameImage gEventObjectPicTable_Boy4[] = {
- overworld_frame(gEventObjectPic_Boy4, 2, 4, 0),
- overworld_frame(gEventObjectPic_Boy4, 2, 4, 1),
- overworld_frame(gEventObjectPic_Boy4, 2, 4, 2),
- overworld_frame(gEventObjectPic_Boy4, 2, 4, 3),
- overworld_frame(gEventObjectPic_Boy4, 2, 4, 4),
- overworld_frame(gEventObjectPic_Boy4, 2, 4, 5),
- overworld_frame(gEventObjectPic_Boy4, 2, 4, 6),
- overworld_frame(gEventObjectPic_Boy4, 2, 4, 7),
- overworld_frame(gEventObjectPic_Boy4, 2, 4, 8),
+const struct SpriteFrameImage gEventObjectPicTable_RichBoy[] = {
+ overworld_frame(gEventObjectPic_RichBoy, 2, 4, 0),
+ overworld_frame(gEventObjectPic_RichBoy, 2, 4, 1),
+ overworld_frame(gEventObjectPic_RichBoy, 2, 4, 2),
+ overworld_frame(gEventObjectPic_RichBoy, 2, 4, 3),
+ overworld_frame(gEventObjectPic_RichBoy, 2, 4, 4),
+ overworld_frame(gEventObjectPic_RichBoy, 2, 4, 5),
+ overworld_frame(gEventObjectPic_RichBoy, 2, 4, 6),
+ overworld_frame(gEventObjectPic_RichBoy, 2, 4, 7),
+ overworld_frame(gEventObjectPic_RichBoy, 2, 4, 8),
};
const struct SpriteFrameImage gEventObjectPicTable_Woman1[] = {
@@ -265,16 +265,16 @@ const struct SpriteFrameImage gEventObjectPicTable_FatMan[] = {
overworld_frame(gEventObjectPic_FatMan, 2, 4, 8),
};
-const struct SpriteFrameImage gEventObjectPicTable_Woman2[] = {
- overworld_frame(gEventObjectPic_Woman2, 2, 4, 0),
- overworld_frame(gEventObjectPic_Woman2, 2, 4, 1),
- overworld_frame(gEventObjectPic_Woman2, 2, 4, 2),
- overworld_frame(gEventObjectPic_Woman2, 2, 4, 3),
- overworld_frame(gEventObjectPic_Woman2, 2, 4, 4),
- overworld_frame(gEventObjectPic_Woman2, 2, 4, 5),
- overworld_frame(gEventObjectPic_Woman2, 2, 4, 6),
- overworld_frame(gEventObjectPic_Woman2, 2, 4, 7),
- overworld_frame(gEventObjectPic_Woman2, 2, 4, 8),
+const struct SpriteFrameImage gEventObjectPicTable_PokefanF[] = {
+ overworld_frame(gEventObjectPic_PokefanF, 2, 4, 0),
+ overworld_frame(gEventObjectPic_PokefanF, 2, 4, 1),
+ overworld_frame(gEventObjectPic_PokefanF, 2, 4, 2),
+ overworld_frame(gEventObjectPic_PokefanF, 2, 4, 3),
+ overworld_frame(gEventObjectPic_PokefanF, 2, 4, 4),
+ overworld_frame(gEventObjectPic_PokefanF, 2, 4, 5),
+ overworld_frame(gEventObjectPic_PokefanF, 2, 4, 6),
+ overworld_frame(gEventObjectPic_PokefanF, 2, 4, 7),
+ overworld_frame(gEventObjectPic_PokefanF, 2, 4, 8),
};
const struct SpriteFrameImage gEventObjectPicTable_Man1[] = {
@@ -289,40 +289,40 @@ const struct SpriteFrameImage gEventObjectPicTable_Man1[] = {
overworld_frame(gEventObjectPic_Man1, 2, 4, 8),
};
-const struct SpriteFrameImage gEventObjectPicTable_Woman3[] = {
- overworld_frame(gEventObjectPic_Woman3, 2, 4, 0),
- overworld_frame(gEventObjectPic_Woman3, 2, 4, 1),
- overworld_frame(gEventObjectPic_Woman3, 2, 4, 2),
- overworld_frame(gEventObjectPic_Woman3, 2, 4, 3),
- overworld_frame(gEventObjectPic_Woman3, 2, 4, 4),
- overworld_frame(gEventObjectPic_Woman3, 2, 4, 5),
- overworld_frame(gEventObjectPic_Woman3, 2, 4, 6),
- overworld_frame(gEventObjectPic_Woman3, 2, 4, 7),
- overworld_frame(gEventObjectPic_Woman3, 2, 4, 8),
+const struct SpriteFrameImage gEventObjectPicTable_Woman2[] = {
+ overworld_frame(gEventObjectPic_Woman2, 2, 4, 0),
+ overworld_frame(gEventObjectPic_Woman2, 2, 4, 1),
+ overworld_frame(gEventObjectPic_Woman2, 2, 4, 2),
+ overworld_frame(gEventObjectPic_Woman2, 2, 4, 3),
+ overworld_frame(gEventObjectPic_Woman2, 2, 4, 4),
+ overworld_frame(gEventObjectPic_Woman2, 2, 4, 5),
+ overworld_frame(gEventObjectPic_Woman2, 2, 4, 6),
+ overworld_frame(gEventObjectPic_Woman2, 2, 4, 7),
+ overworld_frame(gEventObjectPic_Woman2, 2, 4, 8),
};
-const struct SpriteFrameImage gEventObjectPicTable_OldMan1[] = {
- overworld_frame(gEventObjectPic_OldMan1, 2, 4, 0),
- overworld_frame(gEventObjectPic_OldMan1, 2, 4, 1),
- overworld_frame(gEventObjectPic_OldMan1, 2, 4, 2),
- overworld_frame(gEventObjectPic_OldMan1, 2, 4, 3),
- overworld_frame(gEventObjectPic_OldMan1, 2, 4, 4),
- overworld_frame(gEventObjectPic_OldMan1, 2, 4, 5),
- overworld_frame(gEventObjectPic_OldMan1, 2, 4, 6),
- overworld_frame(gEventObjectPic_OldMan1, 2, 4, 7),
- overworld_frame(gEventObjectPic_OldMan1, 2, 4, 8),
+const struct SpriteFrameImage gEventObjectPicTable_ExpertM[] = {
+ overworld_frame(gEventObjectPic_ExpertM, 2, 4, 0),
+ overworld_frame(gEventObjectPic_ExpertM, 2, 4, 1),
+ overworld_frame(gEventObjectPic_ExpertM, 2, 4, 2),
+ overworld_frame(gEventObjectPic_ExpertM, 2, 4, 3),
+ overworld_frame(gEventObjectPic_ExpertM, 2, 4, 4),
+ overworld_frame(gEventObjectPic_ExpertM, 2, 4, 5),
+ overworld_frame(gEventObjectPic_ExpertM, 2, 4, 6),
+ overworld_frame(gEventObjectPic_ExpertM, 2, 4, 7),
+ overworld_frame(gEventObjectPic_ExpertM, 2, 4, 8),
};
-const struct SpriteFrameImage gEventObjectPicTable_OldWoman1[] = {
- overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 0),
- overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 1),
- overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 2),
- overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 3),
- overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 4),
- overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 5),
- overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 6),
- overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 7),
- overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 8),
+const struct SpriteFrameImage gEventObjectPicTable_ExpertF[] = {
+ overworld_frame(gEventObjectPic_ExpertF, 2, 4, 0),
+ overworld_frame(gEventObjectPic_ExpertF, 2, 4, 1),
+ overworld_frame(gEventObjectPic_ExpertF, 2, 4, 2),
+ overworld_frame(gEventObjectPic_ExpertF, 2, 4, 3),
+ overworld_frame(gEventObjectPic_ExpertF, 2, 4, 4),
+ overworld_frame(gEventObjectPic_ExpertF, 2, 4, 5),
+ overworld_frame(gEventObjectPic_ExpertF, 2, 4, 6),
+ overworld_frame(gEventObjectPic_ExpertF, 2, 4, 7),
+ overworld_frame(gEventObjectPic_ExpertF, 2, 4, 8),
};
const struct SpriteFrameImage gEventObjectPicTable_Man2[] = {
@@ -337,6 +337,30 @@ const struct SpriteFrameImage gEventObjectPicTable_Man2[] = {
overworld_frame(gEventObjectPic_Man2, 2, 4, 8),
};
+const struct SpriteFrameImage gEventObjectPicTable_Woman3[] = {
+ overworld_frame(gEventObjectPic_Woman3, 2, 4, 0),
+ overworld_frame(gEventObjectPic_Woman3, 2, 4, 1),
+ overworld_frame(gEventObjectPic_Woman3, 2, 4, 2),
+ overworld_frame(gEventObjectPic_Woman3, 2, 4, 3),
+ overworld_frame(gEventObjectPic_Woman3, 2, 4, 4),
+ overworld_frame(gEventObjectPic_Woman3, 2, 4, 5),
+ overworld_frame(gEventObjectPic_Woman3, 2, 4, 6),
+ overworld_frame(gEventObjectPic_Woman3, 2, 4, 7),
+ overworld_frame(gEventObjectPic_Woman3, 2, 4, 8),
+};
+
+const struct SpriteFrameImage gEventObjectPicTable_PokefanM[] = {
+ overworld_frame(gEventObjectPic_PokefanM, 2, 4, 0),
+ overworld_frame(gEventObjectPic_PokefanM, 2, 4, 1),
+ overworld_frame(gEventObjectPic_PokefanM, 2, 4, 2),
+ overworld_frame(gEventObjectPic_PokefanM, 2, 4, 3),
+ overworld_frame(gEventObjectPic_PokefanM, 2, 4, 4),
+ overworld_frame(gEventObjectPic_PokefanM, 2, 4, 5),
+ overworld_frame(gEventObjectPic_PokefanM, 2, 4, 6),
+ overworld_frame(gEventObjectPic_PokefanM, 2, 4, 7),
+ overworld_frame(gEventObjectPic_PokefanM, 2, 4, 8),
+};
+
const struct SpriteFrameImage gEventObjectPicTable_Woman4[] = {
overworld_frame(gEventObjectPic_Woman4, 2, 4, 0),
overworld_frame(gEventObjectPic_Woman4, 2, 4, 1),
@@ -349,30 +373,6 @@ const struct SpriteFrameImage gEventObjectPicTable_Woman4[] = {
overworld_frame(gEventObjectPic_Woman4, 2, 4, 8),
};
-const struct SpriteFrameImage gEventObjectPicTable_Man3[] = {
- overworld_frame(gEventObjectPic_Man3, 2, 4, 0),
- overworld_frame(gEventObjectPic_Man3, 2, 4, 1),
- overworld_frame(gEventObjectPic_Man3, 2, 4, 2),
- overworld_frame(gEventObjectPic_Man3, 2, 4, 3),
- overworld_frame(gEventObjectPic_Man3, 2, 4, 4),
- overworld_frame(gEventObjectPic_Man3, 2, 4, 5),
- overworld_frame(gEventObjectPic_Man3, 2, 4, 6),
- overworld_frame(gEventObjectPic_Man3, 2, 4, 7),
- overworld_frame(gEventObjectPic_Man3, 2, 4, 8),
-};
-
-const struct SpriteFrameImage gEventObjectPicTable_Woman5[] = {
- overworld_frame(gEventObjectPic_Woman5, 2, 4, 0),
- overworld_frame(gEventObjectPic_Woman5, 2, 4, 1),
- overworld_frame(gEventObjectPic_Woman5, 2, 4, 2),
- overworld_frame(gEventObjectPic_Woman5, 2, 4, 3),
- overworld_frame(gEventObjectPic_Woman5, 2, 4, 4),
- overworld_frame(gEventObjectPic_Woman5, 2, 4, 5),
- overworld_frame(gEventObjectPic_Woman5, 2, 4, 6),
- overworld_frame(gEventObjectPic_Woman5, 2, 4, 7),
- overworld_frame(gEventObjectPic_Woman5, 2, 4, 8),
-};
-
const struct SpriteFrameImage gEventObjectPicTable_Cook[] = {
overworld_frame(gEventObjectPic_Cook, 2, 4, 0),
overworld_frame(gEventObjectPic_Cook, 2, 4, 1),
@@ -385,40 +385,40 @@ const struct SpriteFrameImage gEventObjectPicTable_Cook[] = {
overworld_frame(gEventObjectPic_Cook, 2, 4, 2),
};
-const struct SpriteFrameImage gEventObjectPicTable_Woman6[] = {
- overworld_frame(gEventObjectPic_Woman6, 2, 4, 0),
- overworld_frame(gEventObjectPic_Woman6, 2, 4, 1),
- overworld_frame(gEventObjectPic_Woman6, 2, 4, 2),
- overworld_frame(gEventObjectPic_Woman6, 2, 4, 3),
- overworld_frame(gEventObjectPic_Woman6, 2, 4, 4),
- overworld_frame(gEventObjectPic_Woman6, 2, 4, 5),
- overworld_frame(gEventObjectPic_Woman6, 2, 4, 6),
- overworld_frame(gEventObjectPic_Woman6, 2, 4, 7),
- overworld_frame(gEventObjectPic_Woman6, 2, 4, 8),
-};
-
-const struct SpriteFrameImage gEventObjectPicTable_OldMan2[] = {
- overworld_frame(gEventObjectPic_OldMan2, 2, 4, 0),
- overworld_frame(gEventObjectPic_OldMan2, 2, 4, 1),
- overworld_frame(gEventObjectPic_OldMan2, 2, 4, 2),
- overworld_frame(gEventObjectPic_OldMan2, 2, 4, 0),
- overworld_frame(gEventObjectPic_OldMan2, 2, 4, 0),
- overworld_frame(gEventObjectPic_OldMan2, 2, 4, 1),
- overworld_frame(gEventObjectPic_OldMan2, 2, 4, 1),
- overworld_frame(gEventObjectPic_OldMan2, 2, 4, 2),
- overworld_frame(gEventObjectPic_OldMan2, 2, 4, 2),
-};
-
-const struct SpriteFrameImage gEventObjectPicTable_OldWoman2[] = {
- overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 0),
- overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 1),
- overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 2),
- overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 3),
- overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 4),
- overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 5),
- overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 6),
- overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 7),
- overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 8),
+const struct SpriteFrameImage gEventObjectPicTable_LinkReceptionist[] = {
+ overworld_frame(gEventObjectPic_LinkReceptionist, 2, 4, 0),
+ overworld_frame(gEventObjectPic_LinkReceptionist, 2, 4, 1),
+ overworld_frame(gEventObjectPic_LinkReceptionist, 2, 4, 2),
+ overworld_frame(gEventObjectPic_LinkReceptionist, 2, 4, 3),
+ overworld_frame(gEventObjectPic_LinkReceptionist, 2, 4, 4),
+ overworld_frame(gEventObjectPic_LinkReceptionist, 2, 4, 5),
+ overworld_frame(gEventObjectPic_LinkReceptionist, 2, 4, 6),
+ overworld_frame(gEventObjectPic_LinkReceptionist, 2, 4, 7),
+ overworld_frame(gEventObjectPic_LinkReceptionist, 2, 4, 8),
+};
+
+const struct SpriteFrameImage gEventObjectPicTable_OldMan[] = {
+ overworld_frame(gEventObjectPic_OldMan, 2, 4, 0),
+ overworld_frame(gEventObjectPic_OldMan, 2, 4, 1),
+ overworld_frame(gEventObjectPic_OldMan, 2, 4, 2),
+ overworld_frame(gEventObjectPic_OldMan, 2, 4, 0),
+ overworld_frame(gEventObjectPic_OldMan, 2, 4, 0),
+ overworld_frame(gEventObjectPic_OldMan, 2, 4, 1),
+ overworld_frame(gEventObjectPic_OldMan, 2, 4, 1),
+ overworld_frame(gEventObjectPic_OldMan, 2, 4, 2),
+ overworld_frame(gEventObjectPic_OldMan, 2, 4, 2),
+};
+
+const struct SpriteFrameImage gEventObjectPicTable_OldWoman[] = {
+ overworld_frame(gEventObjectPic_OldWoman, 2, 4, 0),
+ overworld_frame(gEventObjectPic_OldWoman, 2, 4, 1),
+ overworld_frame(gEventObjectPic_OldWoman, 2, 4, 2),
+ overworld_frame(gEventObjectPic_OldWoman, 2, 4, 3),
+ overworld_frame(gEventObjectPic_OldWoman, 2, 4, 4),
+ overworld_frame(gEventObjectPic_OldWoman, 2, 4, 5),
+ overworld_frame(gEventObjectPic_OldWoman, 2, 4, 6),
+ overworld_frame(gEventObjectPic_OldWoman, 2, 4, 7),
+ overworld_frame(gEventObjectPic_OldWoman, 2, 4, 8),
};
const struct SpriteFrameImage gEventObjectPicTable_Camper[] = {
@@ -445,28 +445,28 @@ const struct SpriteFrameImage gEventObjectPicTable_Picnicker[] = {
overworld_frame(gEventObjectPic_Picnicker, 2, 4, 8),
};
-const struct SpriteFrameImage gEventObjectPicTable_Man4[] = {
- overworld_frame(gEventObjectPic_Man4, 2, 4, 0),
- overworld_frame(gEventObjectPic_Man4, 2, 4, 1),
- overworld_frame(gEventObjectPic_Man4, 2, 4, 2),
- overworld_frame(gEventObjectPic_Man4, 2, 4, 3),
- overworld_frame(gEventObjectPic_Man4, 2, 4, 4),
- overworld_frame(gEventObjectPic_Man4, 2, 4, 5),
- overworld_frame(gEventObjectPic_Man4, 2, 4, 6),
- overworld_frame(gEventObjectPic_Man4, 2, 4, 7),
- overworld_frame(gEventObjectPic_Man4, 2, 4, 8),
+const struct SpriteFrameImage gEventObjectPicTable_Man3[] = {
+ overworld_frame(gEventObjectPic_Man3, 2, 4, 0),
+ overworld_frame(gEventObjectPic_Man3, 2, 4, 1),
+ overworld_frame(gEventObjectPic_Man3, 2, 4, 2),
+ overworld_frame(gEventObjectPic_Man3, 2, 4, 3),
+ overworld_frame(gEventObjectPic_Man3, 2, 4, 4),
+ overworld_frame(gEventObjectPic_Man3, 2, 4, 5),
+ overworld_frame(gEventObjectPic_Man3, 2, 4, 6),
+ overworld_frame(gEventObjectPic_Man3, 2, 4, 7),
+ overworld_frame(gEventObjectPic_Man3, 2, 4, 8),
};
-const struct SpriteFrameImage gEventObjectPicTable_Woman7[] = {
- overworld_frame(gEventObjectPic_Woman7, 2, 4, 0),
- overworld_frame(gEventObjectPic_Woman7, 2, 4, 1),
- overworld_frame(gEventObjectPic_Woman7, 2, 4, 2),
- overworld_frame(gEventObjectPic_Woman7, 2, 4, 3),
- overworld_frame(gEventObjectPic_Woman7, 2, 4, 4),
- overworld_frame(gEventObjectPic_Woman7, 2, 4, 5),
- overworld_frame(gEventObjectPic_Woman7, 2, 4, 6),
- overworld_frame(gEventObjectPic_Woman7, 2, 4, 7),
- overworld_frame(gEventObjectPic_Woman7, 2, 4, 8),
+const struct SpriteFrameImage gEventObjectPicTable_Woman5[] = {
+ overworld_frame(gEventObjectPic_Woman5, 2, 4, 0),
+ overworld_frame(gEventObjectPic_Woman5, 2, 4, 1),
+ overworld_frame(gEventObjectPic_Woman5, 2, 4, 2),
+ overworld_frame(gEventObjectPic_Woman5, 2, 4, 3),
+ overworld_frame(gEventObjectPic_Woman5, 2, 4, 4),
+ overworld_frame(gEventObjectPic_Woman5, 2, 4, 5),
+ overworld_frame(gEventObjectPic_Woman5, 2, 4, 6),
+ overworld_frame(gEventObjectPic_Woman5, 2, 4, 7),
+ overworld_frame(gEventObjectPic_Woman5, 2, 4, 8),
};
const struct SpriteFrameImage gEventObjectPicTable_Youngster[] = {
@@ -762,6 +762,18 @@ const struct SpriteFrameImage gEventObjectPicTable_ProfBirch[] = {
overworld_frame(gEventObjectPic_ProfBirch, 2, 4, 8),
};
+const struct SpriteFrameImage gEventObjectPicTable_Man4[] = {
+ overworld_frame(gEventObjectPic_Man4, 2, 4, 0),
+ overworld_frame(gEventObjectPic_Man4, 2, 4, 1),
+ overworld_frame(gEventObjectPic_Man4, 2, 4, 2),
+ overworld_frame(gEventObjectPic_Man4, 2, 4, 3),
+ overworld_frame(gEventObjectPic_Man4, 2, 4, 4),
+ overworld_frame(gEventObjectPic_Man4, 2, 4, 5),
+ overworld_frame(gEventObjectPic_Man4, 2, 4, 6),
+ overworld_frame(gEventObjectPic_Man4, 2, 4, 7),
+ overworld_frame(gEventObjectPic_Man4, 2, 4, 8),
+};
+
const struct SpriteFrameImage gEventObjectPicTable_Man5[] = {
overworld_frame(gEventObjectPic_Man5, 2, 4, 0),
overworld_frame(gEventObjectPic_Man5, 2, 4, 1),
@@ -774,18 +786,6 @@ const struct SpriteFrameImage gEventObjectPicTable_Man5[] = {
overworld_frame(gEventObjectPic_Man5, 2, 4, 8),
};
-const struct SpriteFrameImage gEventObjectPicTable_Man6[] = {
- overworld_frame(gEventObjectPic_Man6, 2, 4, 0),
- overworld_frame(gEventObjectPic_Man6, 2, 4, 1),
- overworld_frame(gEventObjectPic_Man6, 2, 4, 2),
- overworld_frame(gEventObjectPic_Man6, 2, 4, 3),
- overworld_frame(gEventObjectPic_Man6, 2, 4, 4),
- overworld_frame(gEventObjectPic_Man6, 2, 4, 5),
- overworld_frame(gEventObjectPic_Man6, 2, 4, 6),
- overworld_frame(gEventObjectPic_Man6, 2, 4, 7),
- overworld_frame(gEventObjectPic_Man6, 2, 4, 8),
-};
-
const struct SpriteFrameImage gEventObjectPicTable_ReporterM[] = {
overworld_frame(gEventObjectPic_ReporterM, 2, 4, 0),
overworld_frame(gEventObjectPic_ReporterM, 2, 4, 1),
@@ -1122,16 +1122,16 @@ const struct SpriteFrameImage gEventObjectPicTable_Scientist2[] = {
overworld_frame(gEventObjectPic_Scientist2, 2, 4, 8),
};
-const struct SpriteFrameImage gEventObjectPicTable_Man7[] = {
- overworld_frame(gEventObjectPic_Man7, 2, 4, 0),
- overworld_frame(gEventObjectPic_Man7, 2, 4, 1),
- overworld_frame(gEventObjectPic_Man7, 2, 4, 2),
- overworld_frame(gEventObjectPic_Man7, 2, 4, 3),
- overworld_frame(gEventObjectPic_Man7, 2, 4, 4),
- overworld_frame(gEventObjectPic_Man7, 2, 4, 5),
- overworld_frame(gEventObjectPic_Man7, 2, 4, 6),
- overworld_frame(gEventObjectPic_Man7, 2, 4, 7),
- overworld_frame(gEventObjectPic_Man7, 2, 4, 8),
+const struct SpriteFrameImage gEventObjectPicTable_DevonEmployee[] = {
+ overworld_frame(gEventObjectPic_DevonEmployee, 2, 4, 0),
+ overworld_frame(gEventObjectPic_DevonEmployee, 2, 4, 1),
+ overworld_frame(gEventObjectPic_DevonEmployee, 2, 4, 2),
+ overworld_frame(gEventObjectPic_DevonEmployee, 2, 4, 3),
+ overworld_frame(gEventObjectPic_DevonEmployee, 2, 4, 4),
+ overworld_frame(gEventObjectPic_DevonEmployee, 2, 4, 5),
+ overworld_frame(gEventObjectPic_DevonEmployee, 2, 4, 6),
+ overworld_frame(gEventObjectPic_DevonEmployee, 2, 4, 7),
+ overworld_frame(gEventObjectPic_DevonEmployee, 2, 4, 8),
};
const struct SpriteFrameImage gEventObjectPicTable_AquaMemberM[] = {
@@ -1632,28 +1632,28 @@ const struct SpriteFrameImage gEventObjectPicTable_LatiasLatios[] = {
overworld_frame(gEventObjectPic_LatiasLatios, 4, 4, 2),
};
-const struct SpriteFrameImage gEventObjectPicTable_Boy5[] = {
- overworld_frame(gEventObjectPic_Boy5, 2, 4, 0),
- overworld_frame(gEventObjectPic_Boy5, 2, 4, 1),
- overworld_frame(gEventObjectPic_Boy5, 2, 4, 2),
- overworld_frame(gEventObjectPic_Boy5, 2, 4, 0),
- overworld_frame(gEventObjectPic_Boy5, 2, 4, 0),
- overworld_frame(gEventObjectPic_Boy5, 2, 4, 1),
- overworld_frame(gEventObjectPic_Boy5, 2, 4, 1),
- overworld_frame(gEventObjectPic_Boy5, 2, 4, 2),
- overworld_frame(gEventObjectPic_Boy5, 2, 4, 2),
-};
-
-const struct SpriteFrameImage gEventObjectPicTable_ContestOldMan[] = {
- overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 0),
- overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 1),
- overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 2),
- overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 3),
- overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 4),
- overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 5),
- overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 6),
- overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 7),
- overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 8),
+const struct SpriteFrameImage gEventObjectPicTable_GameboyKid[] = {
+ overworld_frame(gEventObjectPic_GameboyKid, 2, 4, 0),
+ overworld_frame(gEventObjectPic_GameboyKid, 2, 4, 1),
+ overworld_frame(gEventObjectPic_GameboyKid, 2, 4, 2),
+ overworld_frame(gEventObjectPic_GameboyKid, 2, 4, 0),
+ overworld_frame(gEventObjectPic_GameboyKid, 2, 4, 0),
+ overworld_frame(gEventObjectPic_GameboyKid, 2, 4, 1),
+ overworld_frame(gEventObjectPic_GameboyKid, 2, 4, 1),
+ overworld_frame(gEventObjectPic_GameboyKid, 2, 4, 2),
+ overworld_frame(gEventObjectPic_GameboyKid, 2, 4, 2),
+};
+
+const struct SpriteFrameImage gEventObjectPicTable_ContestJudge[] = {
+ overworld_frame(gEventObjectPic_ContestJudge, 2, 4, 0),
+ overworld_frame(gEventObjectPic_ContestJudge, 2, 4, 1),
+ overworld_frame(gEventObjectPic_ContestJudge, 2, 4, 2),
+ overworld_frame(gEventObjectPic_ContestJudge, 2, 4, 3),
+ overworld_frame(gEventObjectPic_ContestJudge, 2, 4, 4),
+ overworld_frame(gEventObjectPic_ContestJudge, 2, 4, 5),
+ overworld_frame(gEventObjectPic_ContestJudge, 2, 4, 6),
+ overworld_frame(gEventObjectPic_ContestJudge, 2, 4, 7),
+ overworld_frame(gEventObjectPic_ContestJudge, 2, 4, 8),
};
const struct SpriteFrameImage gEventObjectPicTable_BrendanWatering[] = {
diff --git a/src/data/field_event_obj/field_effect_objects.h b/src/data/field_event_obj/field_effect_objects.h
index 15fc73343..33fe66fe2 100755
--- a/src/data/field_event_obj/field_effect_objects.h
+++ b/src/data/field_event_obj/field_effect_objects.h
@@ -32,13 +32,13 @@ const struct SpriteFrameImage gFieldEffectObjectPicTable_ShadowExtraLarge[] = {
obj_frame_tiles(gFieldEffectObjectPic_ShadowExtraLarge),
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_8x8, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowSmall, gDummySpriteAffineAnimTable, oamc_shadow};
+const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_8x8, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowSmall, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect};
-const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowMedium = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowMedium, gDummySpriteAffineAnimTable, oamc_shadow};
+const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowMedium = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowMedium, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect};
-const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_32x8, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowLarge, gDummySpriteAffineAnimTable, oamc_shadow};
+const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_32x8, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowLarge, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect};
-const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_64x32, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowExtraLarge, gDummySpriteAffineAnimTable, oamc_shadow};
+const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_64x32, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowExtraLarge, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_TallGrass[] = {
overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 0),
@@ -63,7 +63,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_TallGrass[] =
gFieldEffectObjectImageAnim_850CA84,
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_TallGrass = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_TallGrass, gFieldEffectObjectPicTable_TallGrass, gDummySpriteAffineAnimTable, unc_grass_normal};
+const struct SpriteTemplate gFieldEffectObjectTemplate_TallGrass = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_TallGrass, gFieldEffectObjectPicTable_TallGrass, gDummySpriteAffineAnimTable, UpdateTallGrassFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_Ripple[] = {
overworld_frame(gFieldEffectObjectPic_Ripple, 2, 2, 0),
@@ -116,7 +116,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Ash[] =
gFieldEffectObjectImageAnim_850CB48,
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_Ash = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Ash, gFieldEffectObjectPicTable_Ash, gDummySpriteAffineAnimTable, sub_8155460};
+const struct SpriteTemplate gFieldEffectObjectTemplate_Ash = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Ash, gFieldEffectObjectPicTable_Ash, gDummySpriteAffineAnimTable, UpdateAshFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_SurfBlob[] = {
overworld_frame(gFieldEffectObjectPic_SurfBlob, 4, 4, 0),
@@ -156,7 +156,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_SurfBlob[] =
gFieldEffectObjectImageAnim_850CBAC,
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_32x32, gFieldEffectObjectImageAnimTable_SurfBlob, gFieldEffectObjectPicTable_SurfBlob, gDummySpriteAffineAnimTable, sub_8155658};
+const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_32x32, gFieldEffectObjectImageAnimTable_SurfBlob, gFieldEffectObjectPicTable_SurfBlob, gDummySpriteAffineAnimTable, UpdateSurfBlobFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_Arrow[] = {
overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 0),
@@ -289,7 +289,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_SandFootprints[] =
gFieldEffectObjectImageAnim_850CD30,
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_SandFootprints, gFieldEffectObjectPicTable_SandFootprints, gDummySpriteAffineAnimTable, sub_8154C60};
+const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_SandFootprints, gFieldEffectObjectPicTable_SandFootprints, gDummySpriteAffineAnimTable, UpdateFootprintsTireTracksFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_DeepSandFootprints[] = {
overworld_frame(gFieldEffectObjectPic_DeepSandFootprints, 2, 2, 0),
@@ -329,7 +329,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_DeepSandFootprints[]
gFieldEffectObjectImageAnim_850CD8C,
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_DeepSandFootprints, gFieldEffectObjectPicTable_DeepSandFootprints, gDummySpriteAffineAnimTable, sub_8154C60};
+const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_DeepSandFootprints, gFieldEffectObjectPicTable_DeepSandFootprints, gDummySpriteAffineAnimTable, UpdateFootprintsTireTracksFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeTireTracks[] = {
overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 0),
@@ -399,7 +399,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeTireTracks[] =
gFieldEffectObjectImageAnim_850CE18,
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_BikeTireTracks, gFieldEffectObjectPicTable_BikeTireTracks, gDummySpriteAffineAnimTable, sub_8154C60};
+const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_BikeTireTracks, gFieldEffectObjectPicTable_BikeTireTracks, gDummySpriteAffineAnimTable, UpdateFootprintsTireTracksFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopBigSplash[] = {
overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 0),
@@ -455,7 +455,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Splash[] =
gFieldEffectObjectImageAnim_850CEC8,
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_Splash = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_Splash, gFieldEffectObjectPicTable_Splash, gDummySpriteAffineAnimTable, sub_8154D90};
+const struct SpriteTemplate gFieldEffectObjectTemplate_Splash = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_Splash, gFieldEffectObjectPicTable_Splash, gDummySpriteAffineAnimTable, UpdateSplashFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopSmallSplash[] = {
overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 2, 1, 0),
@@ -502,7 +502,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_LongGrass[] =
gFieldEffectObjectImageAnim_850CF70,
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_LongGrass, gFieldEffectObjectPicTable_LongGrass, gDummySpriteAffineAnimTable, unc_grass_tall};
+const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_LongGrass, gFieldEffectObjectPicTable_LongGrass, gDummySpriteAffineAnimTable, UpdateLongGrassFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown16[] = {
overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 0),
@@ -631,7 +631,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown29[] =
gFieldEffectObjectImageAnim_850D160,
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown29 = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_Unknown29, gFieldEffectObjectPicTable_Unknown29, gDummySpriteAffineAnimTable, sub_81559BC};
+const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown29 = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_Unknown29, gFieldEffectObjectPicTable_Unknown29, gDummySpriteAffineAnimTable, UpdateSandPileFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown20[] = {
overworld_frame(gFieldEffectObjectPic_Unknown20, 2, 2, 0),
@@ -769,7 +769,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_TreeDisguise[] =
gFieldEffectObjectImageAnim_850D384,
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_TreeDisguise, gFieldEffectObjectPicTable_TreeDisguise, gDummySpriteAffineAnimTable, sub_8155C88};
+const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_TreeDisguise, gFieldEffectObjectPicTable_TreeDisguise, gDummySpriteAffineAnimTable, UpdateDisguiseFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_MountainDisguise[] = {
overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 0),
@@ -805,7 +805,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_MountainDisguise[] =
gFieldEffectObjectImageAnim_850D404,
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_MountainDisguise, gFieldEffectObjectPicTable_MountainDisguise, gDummySpriteAffineAnimTable, sub_8155C88};
+const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_MountainDisguise, gFieldEffectObjectPicTable_MountainDisguise, gDummySpriteAffineAnimTable, UpdateDisguiseFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_SandDisguisePlaceholder[] = {
overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 0),
@@ -817,7 +817,7 @@ const struct SpriteFrameImage gFieldEffectObjectPicTable_SandDisguisePlaceholder
overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 6),
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_SandDisguisePlaceholder = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_TreeDisguise, gFieldEffectObjectPicTable_SandDisguisePlaceholder, gDummySpriteAffineAnimTable, sub_8155C88};
+const struct SpriteTemplate gFieldEffectObjectTemplate_SandDisguisePlaceholder = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_TreeDisguise, gFieldEffectObjectPicTable_SandDisguisePlaceholder, gDummySpriteAffineAnimTable, UpdateDisguiseFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_Bird[] = {
obj_frame_tiles(gFieldEffectObjectPic_Bird),
@@ -853,7 +853,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_ShortGrass[] =
gFieldEffectObjectImageAnim_850D4D0,
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_ShortGrass = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_ShortGrass, gFieldEffectObjectPicTable_ShortGrass, gDummySpriteAffineAnimTable, sub_8154A10};
+const struct SpriteTemplate gFieldEffectObjectTemplate_ShortGrass = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_ShortGrass, gFieldEffectObjectPicTable_ShortGrass, gDummySpriteAffineAnimTable, UpdateShortGrassFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_HotSpringsWater[] = {
obj_frame_tiles(gFieldEffectObjectPic_HotSpringsWater),
@@ -870,7 +870,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_HotSpringsWater[] =
gFieldEffectObjectImageAnim_850D500,
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_HotSpringsWater, gFieldEffectObjectPicTable_HotSpringsWater, gDummySpriteAffineAnimTable, sub_8155158};
+const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_HotSpringsWater, gFieldEffectObjectPicTable_HotSpringsWater, gDummySpriteAffineAnimTable, UpdateHotSpringsWaterFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_JumpOutOfAsh[] = {
overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 2, 2, 0),
@@ -953,7 +953,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Bubbles[] =
gFieldEffectObjectImageAnim_850D624,
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_Bubbles, gFieldEffectObjectPicTable_Bubbles, gDummySpriteAffineAnimTable, sub_8155AEC};
+const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_Bubbles, gFieldEffectObjectPicTable_Bubbles, gDummySpriteAffineAnimTable, UpdateBubblesFieldEffect};
const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown35[] = {
overworld_frame(gFieldEffectObjectPic_Unknown35, 2, 2, 0),
@@ -973,7 +973,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown35[] =
gFieldEffectObjectImageAnim_850D674,
};
-const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown35 = {0xFFFF, 0x100F, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown35, gFieldEffectObjectPicTable_Unknown35, gDummySpriteAffineAnimTable, sub_8155E50};
+const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown35 = {0xFFFF, 0x100F, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown35, gFieldEffectObjectPicTable_Unknown35, gDummySpriteAffineAnimTable, UpdateSparkleFieldEffect};
const struct SpritePalette gFieldEffectObjectPaletteInfo3 = {gFieldEffectObjectPalette3, 0x100F};
diff --git a/src/data/pokemon/experience_tables.h b/src/data/pokemon/experience_tables.h
index 58474b6f1..9fd5a2fae 100644
--- a/src/data/pokemon/experience_tables.h
+++ b/src/data/pokemon/experience_tables.h
@@ -18,7 +18,7 @@
:(n <= 36) ? ((n + 14) * CUBE(n) / 50) \
: (((n / 2) + 32) * CUBE(n) / 50)
-const u32 gExperienceTables[][MAX_MON_LEVEL + 1] =
+const u32 gExperienceTables[][MAX_LEVEL + 1] =
{
{ // Medium Fast
0, // 0
diff --git a/src/daycare.c b/src/daycare.c
index 934cdea43..c80a8b743 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -241,7 +241,7 @@ static void ApplyDaycareExperience(struct Pokemon *mon)
bool8 firstMove;
u16 learnedMove;
- for (i = 0; i < MAX_MON_LEVEL; i++)
+ 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))
@@ -278,7 +278,7 @@ static u16 TakeSelectedPokemonFromDaycare(struct DaycareMon *daycareMon)
species = GetBoxMonData(&daycareMon->mon, MON_DATA_SPECIES);
BoxMonToMon(&daycareMon->mon, &pokemon);
- if (GetMonData(&pokemon, MON_DATA_LEVEL) != MAX_MON_LEVEL)
+ if (GetMonData(&pokemon, MON_DATA_LEVEL) != MAX_LEVEL)
{
experience = GetMonData(&pokemon, MON_DATA_EXP) + daycareMon->steps;
SetMonData(&pokemon, MON_DATA_EXP, &experience);
@@ -949,7 +949,7 @@ static bool8 _DoEggActions_CheckHatch(struct DayCare *daycare)
return FALSE; // no hatching
}
-bool8 DoEggActions_CheckHatch(void)
+bool8 ShouldEggHatch(void)
{
return _DoEggActions_CheckHatch(&gSaveBlock1Ptr->daycare);
}
diff --git a/src/easy_chat.c b/src/easy_chat.c
index fbf4c0e70..7d25d1430 100644
--- a/src/easy_chat.c
+++ b/src/easy_chat.c
@@ -352,7 +352,7 @@ void easy_chat_input_maybe(void)
words = &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014;
break;
case 19:
- words = (u16 *)&gSaveBlock2Ptr->field_DC[0].field_0[0x28];
+ words = gSaveBlock2Ptr->apprentices[0].easyChatWords;
break;
case 20:
words = sub_801B058();
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index 0714cf3b0..57f72b284 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -17,7 +17,6 @@
#include "pokenav.h"
#include "random.h"
#include "rom_818CFC8.h"
-#include "rom_81BE66C.h"
#include "sprite.h"
#include "trainer_see.h"
#include "util.h"
@@ -1868,7 +1867,7 @@ static void sub_808E1B8(u8 eventObjectId, s16 x, s16 y)
if (eventObject->movementType == 0x0b)
{
SetPlayerAvatarEventObjectIdAndObjectId(eventObjectId, spriteId);
- eventObject->warpArrowSpriteId = sub_8154228();
+ eventObject->warpArrowSpriteId = CreateWarpArrowSprite();
}
if (subspriteTables != NULL)
{
@@ -2024,7 +2023,7 @@ const struct EventObjectGraphicsInfo *GetEventObjectGraphicsInfo(u8 graphicsId)
}
if (graphicsId >= NUM_OBJECT_GRAPHICS_INFO)
{
- graphicsId = EVENT_OBJ_GFX_LITTLE_BOY_1;
+ graphicsId = EVENT_OBJ_GFX_NINJA_BOY;
}
return gEventObjectGraphicsInfoPointers[graphicsId];
}
@@ -2638,10 +2637,10 @@ void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat)
switch (decorCat)
{
case DECORCAT_DOLL:
- OverrideMovementTypeForEventObject(&gEventObjects[eventObjectId], EventScript_2766A2);
+ OverrideMovementTypeForEventObject(&gEventObjects[eventObjectId], EventScript_SecretPower1);
break;
case DECORCAT_CUSHION:
- OverrideMovementTypeForEventObject(&gEventObjects[eventObjectId], EventScript_2766A6);
+ OverrideMovementTypeForEventObject(&gEventObjects[eventObjectId], EventScript_SecretPower2);
break;
}
}
@@ -8206,7 +8205,7 @@ void GroundEffect_JumpOnTallGrass(struct EventObject *eventObj, struct Sprite *s
gFieldEffectArguments[3] = 2;
FieldEffectStart(FLDEFF_JUMP_TALL_GRASS);
- spriteId = sub_81546C8(
+ spriteId = FindTallGrassFieldEffectSpriteId(
eventObj->localId, eventObj->mapNum, eventObj->mapGroup, eventObj->currentCoords.x, eventObj->currentCoords.y);
if (spriteId == MAX_SPRITES)
@@ -8843,14 +8842,14 @@ void sub_8097B78(u8 var1, u8 var2)
StartSpriteAnim(&gSprites[spriteId], GetFaceDirectionAnimNum(var2));
}
-void sub_8097BB4(u8 var1, u8 var2)
+void sub_8097BB4(u8 var1, u8 graphicsId)
{
int spriteId = sub_8097B2C(var1);
if(spriteId != MAX_SPRITES)
{
struct Sprite *sprite = &gSprites[spriteId];
- const struct EventObjectGraphicsInfo *gfxInfo = GetEventObjectGraphicsInfo(var2);
+ const struct EventObjectGraphicsInfo *gfxInfo = GetEventObjectGraphicsInfo(graphicsId);
u16 tileNum = sprite->oam.tileNum;
sprite->oam = *gfxInfo->oam;
diff --git a/src/evolution_scene.c b/src/evolution_scene.c
index 91ac90b1b..c00aaeb15 100644
--- a/src/evolution_scene.c
+++ b/src/evolution_scene.c
@@ -25,7 +25,7 @@
#include "gpu_regs.h"
#include "bg.h"
#include "link.h"
-#include "blend_palette.h"
+#include "util.h"
#include "trig.h"
struct EvoInfo
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
new file mode 100644
index 000000000..fef403c04
--- /dev/null
+++ b/src/field_control_avatar.c
@@ -0,0 +1,1058 @@
+#include "global.h"
+#include "battle_setup.h"
+#include "battle_frontier_1.h"
+#include "bike.h"
+#include "coord_event_weather.h"
+#include "daycare.h"
+#include "event_data.h"
+#include "event_object_movement.h"
+#include "fieldmap.h"
+#include "field_control_avatar.h"
+#include "field_fadetransition.h"
+#include "field_player_avatar.h"
+#include "field_poison.h"
+#include "field_screen.h"
+#include "field_specials.h"
+#include "fldeff_80F9BCC.h"
+#include "item_menu.h"
+#include "link.h"
+#include "metatile_behavior.h"
+#include "overworld.h"
+#include "pokemon.h"
+#include "pokenav.h"
+#include "safari_zone.h"
+#include "script.h"
+#include "secret_base.h"
+#include "sound.h"
+#include "start_menu.h"
+#include "trainer_see.h"
+#include "wild_encounter.h"
+#include "constants/bg_event_constants.h"
+#include "constants/map_types.h"
+#include "constants/songs.h"
+
+static EWRAM_DATA u8 sWildEncounterImmunitySteps = 0;
+static EWRAM_DATA u16 sPreviousPlayerMetatileBehavior = 0;
+
+u8 gSelectedEventObject;
+
+//scripts
+extern const u8 EventScript_PlayerPCMale[];
+extern const u8 EventScript_PlayerPCFemale[];
+extern const u8 EventScript_SecretBasePC[];
+extern const u8 EventScript_RecordMixingSecretBasePC[];
+extern const u8 EventScript_SecretPower1[];
+extern const u8 EventScript_SecretPower2[];
+extern const u8 EventScript_PC[];
+extern const u8 EventScript_TestSignpostMsg[];
+extern const u8 EventScript_HiddenItemScript[];
+extern const u8 EventScript_2759F1[];
+extern const u8 EventScript_TV[];
+extern const u8 EventScript_ClosedSootopolisDoor[];
+extern const u8 SkyPillar_Outside_EventScript_2393F9[];
+extern const u8 EventScript_CableBoxResults[];
+extern const u8 EventScript_2A4BAC[];
+extern const u8 Route110_TrickHouseEntrance_EventScript_26A22A[];
+extern const u8 EventScript_RegionMap[];
+extern const u8 EventScript_RunningShoesManual[];
+extern const u8 EventScript_PictureBookShelf[];
+extern const u8 EventScript_BookShelf[];
+extern const u8 EventScript_PokemonCenterBookshelf[];
+extern const u8 EventScript_Vase[];
+extern const u8 EventScript_TrashCan[];
+extern const u8 EventScript_ShopShelf[];
+extern const u8 EventScript_Blueprint[];
+extern const u8 EventScript_WirelessBoxResults[];
+extern const u8 EventScript_CableBoxResults[];
+extern const u8 EventScript_Questionnaire[];
+extern const u8 EventScript_TrainerHillTimer[];
+extern const u8 EventScript_SecretBaseSandOrnament[];
+extern const u8 EventScript_SecretBaseShieldOrToyTV[];
+extern const u8 EventScript_UseSurf[];
+extern const u8 EventScript_UseWaterfall[];
+extern const u8 EventScript_CannotUseWaterfall[];
+extern const u8 EventScript_UseDive[];
+extern const u8 EventScript_UseDiveUnderwater[];
+extern const u8 EventScript_FallDownHole[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252BE8[];
+extern const u8 EventScript_Poison[];
+extern const u8 EventScript_EggHatch[];
+extern const u8 gUnknown_08273D1F[];
+extern const u8 IslandCave_EventScript_238EAF[];
+extern const u8 MauvilleCity_EventScript_1DF7BA[];
+extern const u8 Route119_EventScript_1F49EC[];
+extern const u8 LittlerootTown_ProfessorBirchsLab_EventScript_1FA4D6[];
+extern const u8 RustboroCity_Gym_EventScript_21307B[];
+extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_224175[];
+extern const u8 SSTidalCorridor_EventScript_23C050[];
+extern const u8 gUnknown_082A8350[];
+
+static void GetPlayerPosition(struct MapPosition *);
+static void GetInFrontOfPlayerPosition(struct MapPosition *);
+static u16 GetPlayerCurMetatileBehavior(int);
+static bool8 TryStartInteractionScript(struct MapPosition*, u16, u8);
+static const u8 *GetInteractionScript(struct MapPosition*, u8, u8);
+static const u8 *GetInteractedEventObjectScript(struct MapPosition *, u8, u8);
+static const u8 *GetInteractedBackgroundEventScript(struct MapPosition *, u8, u8);
+static const u8 *GetInteractedMetatileScript(struct MapPosition *, u8, u8);
+static const u8 *GetInteractedWaterScript(struct MapPosition *, u8, u8);
+static bool32 TrySetupDiveDownScript(void);
+static bool32 TrySetupDiveEmergeScript(void);
+static bool8 TryStartStepBasedScript(struct MapPosition *, u16, u16);
+static bool8 CheckStandardWildEncounter(u16);
+static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *, u16, u8);
+static bool8 IsWarpMetatileBehavior(u16);
+static bool8 IsArrowWarpMetatileBehavior(u16, u8);
+static s8 GetWarpEventAtMapPosition(struct MapHeader *, struct MapPosition *);
+static void sub_809CEB0(struct MapHeader *, s8, struct MapPosition *);
+static bool8 map_warp_consider_2_to_inside(struct MapPosition *, u16, u8);
+static s8 GetWarpEventAtPosition(struct MapHeader *, u16, u16, u8);
+static u8 *GetCoordEventScriptAtPosition(struct MapHeader *, u16, u16, u8);
+static struct BgEvent *GetBackgroundEventAtPosition(struct MapHeader *, u16, u16, u8);
+static bool8 TryStartCoordEventScript(struct MapPosition *);
+static bool8 TryStartWarpEventScript(struct MapPosition *, u16);
+static bool8 TryStartMiscWalkingScripts(u16);
+static bool8 TryStartStepCountScript(u16);
+static void UpdateHappinessStepCounter(void);
+static bool8 UpdatePoisonStepCounter(void);
+
+void FieldClearPlayerInput(struct FieldInput *input)
+{
+ input->pressedAButton = FALSE;
+ input->checkStandardWildEncounter = FALSE;
+ input->pressedStartButton = FALSE;
+ input->pressedSelectButton = FALSE;
+ input->input_field_0_4 = FALSE;
+ input->input_field_0_5 = FALSE;
+ input->tookStep = FALSE;
+ input->pressedBButton = FALSE;
+ input->input_field_1_0 = FALSE;
+ input->input_field_1_1 = FALSE;
+ input->input_field_1_2 = FALSE;
+ input->input_field_1_3 = FALSE;
+ input->dpadDirection = 0;
+}
+
+void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys)
+{
+ u8 tileTransitionState = gPlayerAvatar.tileTransitionState;
+ u8 runningState = gPlayerAvatar.runningState;
+ bool8 forcedMove = MetatileBehavior_IsForcedMovementTile(GetPlayerCurMetatileBehavior(runningState));
+
+ if ((tileTransitionState == T_TILE_CENTER && forcedMove == FALSE) || tileTransitionState == T_NOT_MOVING)
+ {
+ if (GetPlayerSpeed() != 4)
+ {
+ if (newKeys & START_BUTTON)
+ input->pressedStartButton = TRUE;
+ if (newKeys & SELECT_BUTTON)
+ input->pressedSelectButton = TRUE;
+ if (newKeys & A_BUTTON)
+ input->pressedAButton = TRUE;
+ if (newKeys & B_BUTTON)
+ input->pressedBButton = TRUE;
+ }
+
+ if (heldKeys & (DPAD_UP | DPAD_DOWN | DPAD_LEFT | DPAD_RIGHT))
+ {
+ input->input_field_0_4 = TRUE;
+ input->input_field_0_5 = TRUE;
+ }
+ }
+
+ if (forcedMove == FALSE)
+ {
+ if (tileTransitionState == T_TILE_CENTER && runningState == MOVING)
+ input->tookStep = TRUE;
+ if (forcedMove == FALSE && tileTransitionState == T_TILE_CENTER)
+ input->checkStandardWildEncounter = TRUE;
+ }
+
+ if (heldKeys & DPAD_UP)
+ input->dpadDirection = DIR_NORTH;
+ else if (heldKeys & DPAD_DOWN)
+ input->dpadDirection = DIR_SOUTH;
+ else if (heldKeys & DPAD_LEFT)
+ input->dpadDirection = DIR_WEST;
+ else if (heldKeys & DPAD_RIGHT)
+ input->dpadDirection = DIR_EAST;
+}
+
+int sub_809C014(struct FieldInput *input)
+{
+ struct MapPosition position;
+ u8 playerDirection;
+ u16 metatileBehavior;
+
+ gSpecialVar_LastTalked = 0;
+ gSelectedEventObject = 0;
+
+ playerDirection = GetPlayerFacingDirection();
+ GetPlayerPosition(&position);
+ metatileBehavior = MapGridGetMetatileBehaviorAt(position.x, position.y);
+
+ if (CheckForTrainersWantingBattle() == TRUE)
+ return TRUE;
+
+ if (mapheader_run_first_tag2_script_list_match() == 1)
+ return TRUE;
+
+ if (input->pressedBButton && TrySetupDiveEmergeScript() == TRUE)
+ return TRUE;
+ if (input->tookStep)
+ {
+ IncrementGameStat(GAME_STAT_STEPS);
+ increment_var_x4026_on_birth_island_modulo_100();
+ if (TryStartStepBasedScript(&position, metatileBehavior, playerDirection) == TRUE)
+ return TRUE;
+ }
+ if (input->checkStandardWildEncounter && CheckStandardWildEncounter(metatileBehavior) == TRUE)
+ return TRUE;
+ if (input->input_field_0_4 && input->dpadDirection == playerDirection)
+ {
+ if (mapheader_run_first_tag2_script_list_match_conditionally(&position, metatileBehavior, playerDirection) == TRUE)
+ return TRUE;
+ }
+
+ GetInFrontOfPlayerPosition(&position);
+ metatileBehavior = MapGridGetMetatileBehaviorAt(position.x, position.y);
+ if (input->pressedAButton && TryStartInteractionScript(&position, metatileBehavior, playerDirection) == TRUE)
+ return TRUE;
+
+ if (input->input_field_0_5 && input->dpadDirection == playerDirection)
+ {
+ if (map_warp_consider_2_to_inside(&position, metatileBehavior, playerDirection) == TRUE)
+ return TRUE;
+ }
+ if (input->pressedAButton && TrySetupDiveDownScript() == TRUE)
+ return TRUE;
+ if (input->pressedStartButton)
+ {
+ PlaySE(SE_WIN_OPEN);
+ ShowStartMenu();
+ return TRUE;
+ }
+ if (input->pressedSelectButton && UseRegisteredKeyItemOnField() == TRUE)
+ return TRUE;
+
+ return FALSE;
+}
+
+static void GetPlayerPosition(struct MapPosition *position)
+{
+ PlayerGetDestCoords(&position->x, &position->y);
+ position->height = PlayerGetZCoord();
+}
+
+static void GetInFrontOfPlayerPosition(struct MapPosition *position)
+{
+ s16 x, y;
+
+ GetXYCoordsOneStepInFrontOfPlayer(&position->x, &position->y);
+ PlayerGetDestCoords(&x, &y);
+ if (MapGridGetZCoordAt(x, y) != 0)
+ position->height = PlayerGetZCoord();
+ else
+ position->height = 0;
+}
+
+static u16 GetPlayerCurMetatileBehavior(int runningState)
+{
+ s16 x, y;
+
+ PlayerGetDestCoords(&x, &y);
+ return MapGridGetMetatileBehaviorAt(x, y);
+}
+
+static bool8 TryStartInteractionScript(struct MapPosition *position, u16 metatileBehavior, u8 direction)
+{
+ const u8 *script = GetInteractionScript(position, metatileBehavior, direction);
+ if (script == NULL)
+ return FALSE;
+
+ // Don't play interaction sound for certain scripts.
+ if (script != EventScript_PlayerPCMale
+ && script != EventScript_PlayerPCFemale
+ && script != EventScript_SecretBasePC
+ && script != EventScript_RecordMixingSecretBasePC
+ && script != EventScript_SecretPower1
+ && script != EventScript_SecretPower2
+ && script != EventScript_PC)
+ PlaySE(SE_SELECT);
+
+ ScriptContext1_SetupScript(script);
+ return TRUE;
+}
+
+static const u8 *GetInteractionScript(struct MapPosition *position, u8 metatileBehavior, u8 direction)
+{
+ const u8 *script = GetInteractedEventObjectScript(position, metatileBehavior, direction);
+ if (script != NULL)
+ return script;
+
+ script = GetInteractedBackgroundEventScript(position, metatileBehavior, direction);
+ if (script != NULL)
+ return script;
+
+ script = GetInteractedMetatileScript(position, metatileBehavior, direction);
+ if (script != NULL)
+ return script;
+
+ script = GetInteractedWaterScript(position, metatileBehavior, direction);
+ if (script != NULL)
+ return script;
+
+ return NULL;
+}
+
+const u8 *GetInteractedLinkPlayerScript(struct MapPosition *position, u8 metatileBehavior, u8 direction)
+{
+ u8 eventObjectId;
+ s32 i;
+
+ if (!MetatileBehavior_IsCounter(MapGridGetMetatileBehaviorAt(position->x, position->y)))
+ eventObjectId = GetEventObjectIdByXYZ(position->x, position->y, position->height);
+ else
+ eventObjectId = GetEventObjectIdByXYZ(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->height);
+
+ if (eventObjectId == 16 || gEventObjects[eventObjectId].localId == 0xFF)
+ return NULL;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (gLinkPlayerEventObjects[i].active == TRUE && gLinkPlayerEventObjects[i].eventObjId == eventObjectId)
+ return NULL;
+ }
+
+ gSelectedEventObject = eventObjectId;
+ gSpecialVar_LastTalked = gEventObjects[eventObjectId].localId;
+ gSpecialVar_Facing = direction;
+ return GetEventObjectScriptPointerByEventObjectId(eventObjectId);
+}
+
+static const u8 *GetInteractedEventObjectScript(struct MapPosition *position, u8 metatileBehavior, u8 direction)
+{
+ u8 eventObjectId;
+ const u8 *script;
+
+ eventObjectId = GetEventObjectIdByXYZ(position->x, position->y, position->height);
+ if (eventObjectId == 16 || gEventObjects[eventObjectId].localId == 0xFF)
+ {
+ if (MetatileBehavior_IsCounter(metatileBehavior) != TRUE)
+ return NULL;
+
+ // Look for an event object on the other side of the counter.
+ eventObjectId = GetEventObjectIdByXYZ(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->height);
+ if (eventObjectId == 16 || gEventObjects[eventObjectId].localId == 0xFF)
+ return NULL;
+ }
+
+ gSelectedEventObject = eventObjectId;
+ gSpecialVar_LastTalked = gEventObjects[eventObjectId].localId;
+ gSpecialVar_Facing = direction;
+
+ if (InTrainerHill() == TRUE)
+ {
+ script = sub_81D62AC();
+ }
+ else
+ {
+ script = GetEventObjectScriptPointerByEventObjectId(eventObjectId);
+ }
+ script = GetRamScript(gSpecialVar_LastTalked, script);
+ return script;
+}
+
+static const u8 *GetInteractedBackgroundEventScript(struct MapPosition *position, u8 metatileBehavior, u8 direction)
+{
+ struct BgEvent *bgEvent = GetBackgroundEventAtPosition(&gMapHeader, position->x - 7, position->y - 7, position->height);
+
+ if (bgEvent == NULL)
+ return NULL;
+ if (bgEvent->bgUnion.script == NULL)
+ return EventScript_TestSignpostMsg;
+
+ switch (bgEvent->kind)
+ {
+ case BG_EVENT_PLAYER_FACING_ANY:
+ default:
+ return bgEvent->bgUnion.script;
+ case BG_EVENT_PLAYER_FACING_NORTH:
+ if (direction != DIR_NORTH)
+ return NULL;
+ break;
+ case BG_EVENT_PLAYER_FACING_SOUTH:
+ if (direction != DIR_SOUTH)
+ return NULL;
+ break;
+ case BG_EVENT_PLAYER_FACING_EAST:
+ if (direction != DIR_EAST)
+ return NULL;
+ break;
+ case BG_EVENT_PLAYER_FACING_WEST:
+ if (direction != DIR_WEST)
+ return NULL;
+ break;
+ case 5:
+ case 6:
+ case BG_EVENT_HIDDEN_ITEM:
+ gSpecialVar_0x8004 = ((u32)bgEvent->bgUnion.script >> 16) + FLAG_HIDDEN_ITEMS_START;
+ gSpecialVar_0x8005 = (u32)bgEvent->bgUnion.script;
+ if (FlagGet(gSpecialVar_0x8004) == TRUE)
+ return NULL;
+ return EventScript_HiddenItemScript;
+ case BG_EVENT_SECRET_BASE:
+ if (direction == DIR_NORTH)
+ {
+ gSpecialVar_0x8004 = bgEvent->bgUnion.secretBaseId;
+ if (sub_80E9680())
+ return EventScript_2759F1;
+ }
+ return NULL;
+ }
+
+ return bgEvent->bgUnion.script;
+}
+
+static const u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 metatileBehavior, u8 direction)
+{
+ s8 height;
+
+ if (MetatileBehavior_IsPlayerFacingTVScreen(metatileBehavior, direction) == TRUE)
+ return EventScript_TV;
+ if (MetatileBehavior_IsPC(metatileBehavior) == TRUE)
+ return EventScript_PC;
+ if (MetatileBehavior_IsClosedSootopolisDoor(metatileBehavior) == TRUE)
+ return EventScript_ClosedSootopolisDoor;
+ if (MetatileBehavior_IsUnknownClosedDoor(metatileBehavior) == TRUE)
+ return SkyPillar_Outside_EventScript_2393F9;
+ if (MetatileBehavior_IsCableBoxResults1(metatileBehavior) == TRUE)
+ return EventScript_CableBoxResults;
+ if (MetatileBehavior_IsPokeblockFeeder(metatileBehavior) == TRUE)
+ return EventScript_2A4BAC;
+ if (MetatileBehavior_IsTrickHousePuzzleDoor(metatileBehavior) == TRUE)
+ return Route110_TrickHouseEntrance_EventScript_26A22A;
+ if (MetatileBehavior_IsRegionMap(metatileBehavior) == TRUE)
+ return EventScript_RegionMap;
+ if (MetatileBehavior_IsRunningShoesManual(metatileBehavior) == TRUE)
+ return EventScript_RunningShoesManual;
+ if (MetatileBehavior_IsPictureBookShelf(metatileBehavior) == TRUE)
+ return EventScript_PictureBookShelf;
+ if (MetatileBehavior_IsBookShelf(metatileBehavior) == TRUE)
+ return EventScript_BookShelf;
+ if (MetatileBehavior_IsPokeCenterBookShelf(metatileBehavior) == TRUE)
+ return EventScript_PokemonCenterBookshelf;
+ if (MetatileBehavior_IsVase(metatileBehavior) == TRUE)
+ return EventScript_Vase;
+ if (MetatileBehavior_IsTrashCan(metatileBehavior) == TRUE)
+ return EventScript_TrashCan;
+ if (MetatileBehavior_IsShopShelf(metatileBehavior) == TRUE)
+ return EventScript_ShopShelf;
+ if (MetatileBehavior_IsBlueprint(metatileBehavior) == TRUE)
+ return EventScript_Blueprint;
+ if (MetatileBehavior_IsPlayerFacingWirelessBoxResults(metatileBehavior, direction) == TRUE)
+ return EventScript_WirelessBoxResults;
+ if (MetatileBehavior_IsCableBoxResults2(metatileBehavior, direction) == TRUE)
+ return EventScript_CableBoxResults;
+ if (MetatileBehavior_IsQuestionnaire(metatileBehavior) == TRUE)
+ return EventScript_Questionnaire;
+ if (MetatileBehavior_IsTrainerHillTimer(metatileBehavior) == TRUE)
+ return EventScript_TrainerHillTimer;
+
+ height = position->height;
+ if (height == MapGridGetZCoordAt(position->x, position->y))
+ {
+ if (MetatileBehavior_IsSecretBasePC(metatileBehavior) == TRUE)
+ return EventScript_SecretBasePC;
+ if (MetatileBehavior_IsRecordMixingSecretBasePC(metatileBehavior) == TRUE)
+ return EventScript_RecordMixingSecretBasePC;
+ if (MetatileBehavior_IsSecretBaseSandOrnament(metatileBehavior) == TRUE)
+ return EventScript_SecretBaseSandOrnament;
+ if (MetatileBehavior_IsSecretBaseShieldOrToyTV(metatileBehavior) == TRUE)
+ return EventScript_SecretBaseShieldOrToyTV;
+ if (MetatileBehavior_IsMB_C6(metatileBehavior) == TRUE)
+ {
+ sub_80EB56C();
+ return NULL;
+ }
+ if (MetatileBehavior_IsLargeMatCenter(metatileBehavior) == TRUE)
+ {
+ sub_80EB9E0();
+ return NULL;
+ }
+ if (MetatileBehavior_IsSecretBaseLargeMatEdge(metatileBehavior) == TRUE)
+ {
+ sub_80EBB28();
+ return NULL;
+ }
+ }
+ else if (MetatileBehavior_IsSecretBasePoster(metatileBehavior) == TRUE)
+ {
+ sub_80EB498();
+ return NULL;
+ }
+
+ return NULL;
+}
+
+static const u8 *GetInteractedWaterScript(struct MapPosition *unused1, u8 metatileBehavior, u8 direction)
+{
+ if (FlagGet(FLAG_BADGE05_GET) == TRUE && PartyHasMonWithSurf() == TRUE && IsPlayerFacingSurfableFishableWater() == TRUE)
+ return EventScript_UseSurf;
+
+ if (MetatileBehavior_IsWaterfall(metatileBehavior) == TRUE)
+ {
+ if (FlagGet(FLAG_BADGE08_GET) == TRUE && IsPlayerSurfingNorth() == TRUE)
+ return EventScript_UseWaterfall;
+ else
+ return EventScript_CannotUseWaterfall;
+ }
+ return NULL;
+}
+
+static bool32 TrySetupDiveDownScript(void)
+{
+ if (FlagGet(FLAG_BADGE07_GET) && TrySetDiveWarp() == 2)
+ {
+ ScriptContext1_SetupScript(EventScript_UseDive);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool32 TrySetupDiveEmergeScript(void)
+{
+ if (FlagGet(FLAG_BADGE07_GET) && gMapHeader.mapType == MAP_TYPE_UNDERWATER && TrySetDiveWarp() == 1)
+ {
+ ScriptContext1_SetupScript(EventScript_UseDiveUnderwater);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 TryStartStepBasedScript(struct MapPosition *position, u16 metatileBehavior, u16 direction)
+{
+ if (TryStartCoordEventScript(position) == TRUE)
+ return TRUE;
+ if (TryStartWarpEventScript(position, metatileBehavior) == TRUE)
+ return TRUE;
+ if (TryStartMiscWalkingScripts(metatileBehavior) == TRUE)
+ return TRUE;
+ if (TryStartStepCountScript(metatileBehavior) == TRUE)
+ return TRUE;
+ if (UpdateRepelCounter() == TRUE)
+ return TRUE;
+ return FALSE;
+}
+
+static bool8 TryStartCoordEventScript(struct MapPosition *position)
+{
+ u8 *script = GetCoordEventScriptAtPosition(&gMapHeader, position->x - 7, position->y - 7, position->height);
+
+ if (script == NULL)
+ return FALSE;
+ ScriptContext1_SetupScript(script);
+ return TRUE;
+}
+
+static bool8 TryStartMiscWalkingScripts(u16 metatileBehavior)
+{
+ s16 x;
+ s16 y;
+
+ if (MetatileBehavior_IsCrackedFloorHole(metatileBehavior))
+ {
+ ScriptContext1_SetupScript(EventScript_FallDownHole);
+ return TRUE;
+ }
+ else if (MetatileBehavior_IsBattlePyramidWarp(metatileBehavior))
+ {
+ ScriptContext1_SetupScript(BattleFrontier_BattlePyramidEmptySquare_EventScript_252BE8);
+ return TRUE;
+ }
+ else if (MetatileBehavior_IsSecretBaseGlitterMat(metatileBehavior) == TRUE)
+ {
+ sub_80FA9D0();
+ return FALSE;
+ }
+ else if (MetatileBehavior_IsSecretBaseSoundMat(metatileBehavior) == TRUE)
+ {
+ PlayerGetDestCoords(&x, &y);
+ sub_80FA970(MapGridGetMetatileIdAt(x, y));
+ return FALSE;
+ }
+ return FALSE;
+}
+
+static bool8 TryStartStepCountScript(u16 metatileBehavior)
+{
+ if (InUnionRoom() == TRUE)
+ {
+ return FALSE;
+ }
+
+ IncrementRematchStepCounter();
+ UpdateHappinessStepCounter();
+ sub_81D4998();
+
+ if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_6) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior))
+ {
+ if (UpdatePoisonStepCounter() == TRUE)
+ {
+ ScriptContext1_SetupScript(EventScript_Poison);
+ return TRUE;
+ }
+ if (ShouldEggHatch())
+ {
+ IncrementGameStat(GAME_STAT_HATCHED_EGGS);
+ ScriptContext1_SetupScript(EventScript_EggHatch);
+ return TRUE;
+ }
+ if (sub_813B3B0() == TRUE)
+ {
+ ScriptContext1_SetupScript(gUnknown_08273D1F);
+ return TRUE;
+ }
+ if (ShouldDoBrailleRegicePuzzle() == TRUE)
+ {
+ ScriptContext1_SetupScript(IslandCave_EventScript_238EAF);
+ return TRUE;
+ }
+ if (is_tile_that_overrides_player_control() == TRUE)
+ {
+ ScriptContext1_SetupScript(MauvilleCity_EventScript_1DF7BA);
+ return TRUE;
+ }
+ if (sub_8138120() == TRUE)
+ {
+ ScriptContext1_SetupScript(Route119_EventScript_1F49EC);
+ return TRUE;
+ }
+ if (sub_8138168() == TRUE)
+ {
+ ScriptContext1_SetupScript(LittlerootTown_ProfessorBirchsLab_EventScript_1FA4D6);
+ return TRUE;
+ }
+ if (sub_81381B0() == TRUE)
+ {
+ ScriptContext1_SetupScript(RustboroCity_Gym_EventScript_21307B);
+ return TRUE;
+ }
+ if (sub_81381F8() == TRUE)
+ {
+ ScriptContext1_SetupScript(MossdeepCity_SpaceCenter_2F_EventScript_224175);
+ return TRUE;
+ }
+ }
+
+ if (SafariZoneTakeStep() == TRUE)
+ return TRUE;
+ if (CountSSTidalStep(1) == TRUE)
+ {
+ ScriptContext1_SetupScript(SSTidalCorridor_EventScript_23C050);
+ return TRUE;
+ }
+ if (sub_8196034())
+ return TRUE;
+ return FALSE;
+}
+
+void Unref_ClearHappinessStepCounter(void)
+{
+ VarSet(VAR_HAPPINESS_STEP_COUNTER, 0);
+}
+
+static void UpdateHappinessStepCounter(void)
+{
+ u16 *ptr = GetVarPointer(VAR_HAPPINESS_STEP_COUNTER);
+ int i;
+
+ (*ptr)++;
+ (*ptr) %= 128;
+ if (*ptr == 0)
+ {
+ struct Pokemon *mon = gPlayerParty;
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ AdjustFriendship(mon, FRIENDSHIP_EVENT_WALKING);
+ mon++;
+ }
+ }
+}
+
+void ClearPoisonStepCounter(void)
+{
+ VarSet(VAR_POISON_STEP_COUNTER, 0);
+}
+
+static bool8 UpdatePoisonStepCounter(void)
+{
+ u16 *ptr;
+
+ if (gMapHeader.mapType != MAP_TYPE_SECRET_BASE)
+ {
+ ptr = GetVarPointer(VAR_POISON_STEP_COUNTER);
+ (*ptr)++;
+ (*ptr) %= 4;
+ if (*ptr == 0)
+ {
+ switch (DoPoisonFieldEffect())
+ {
+ case 0:
+ return FALSE;
+ case 1:
+ return FALSE;
+ case 2:
+ return TRUE;
+ }
+ }
+ }
+ return FALSE;
+}
+
+void RestartWildEncounterImmunitySteps(void)
+{
+ // Starts at 0 and counts up to 4 steps.
+ sWildEncounterImmunitySteps = 0;
+}
+
+static bool8 CheckStandardWildEncounter(u16 metatileBehavior)
+{
+ if (sWildEncounterImmunitySteps < 4)
+ {
+ sWildEncounterImmunitySteps++;
+ sPreviousPlayerMetatileBehavior = metatileBehavior;
+ return FALSE;
+ }
+
+ if (StandardWildEncounter(metatileBehavior, sPreviousPlayerMetatileBehavior) == TRUE)
+ {
+ sWildEncounterImmunitySteps = 0;
+ sPreviousPlayerMetatileBehavior = metatileBehavior;
+ return TRUE;
+ }
+
+ sPreviousPlayerMetatileBehavior = metatileBehavior;
+ return FALSE;
+}
+
+static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *position, u16 metatileBehavior, u8 direction)
+{
+ s8 warpEventId = GetWarpEventAtMapPosition(&gMapHeader, position);
+
+ if (IsArrowWarpMetatileBehavior(metatileBehavior, direction) == TRUE && warpEventId != -1)
+ {
+ StoreInitialPlayerAvatarState();
+ sub_809CEB0(&gMapHeader, warpEventId, position);
+ sub_80AF734();
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 TryStartWarpEventScript(struct MapPosition *position, u16 metatileBehavior)
+{
+ s8 warpEventId = GetWarpEventAtMapPosition(&gMapHeader, position);
+
+ if (warpEventId != -1 && IsWarpMetatileBehavior(metatileBehavior) == TRUE)
+ {
+ StoreInitialPlayerAvatarState();
+ sub_809CEB0(&gMapHeader, warpEventId, position);
+ if (MetatileBehavior_IsEscalator(metatileBehavior) == TRUE)
+ {
+ sub_80AF80C(metatileBehavior);
+ return TRUE;
+ }
+ if (MetatileBehavior_IsLavaridgeB1FWarp(metatileBehavior) == TRUE)
+ {
+ sub_80AF828();
+ return TRUE;
+ }
+ if (MetatileBehavior_IsLavaridge1FWarp(metatileBehavior) == TRUE)
+ {
+ sub_80AF838();
+ return TRUE;
+ }
+ if (MetatileBehavior_IsAquaHideoutWarp(metatileBehavior) == TRUE)
+ {
+ sub_80AF848();
+ return TRUE;
+ }
+ if (MetatileBehavior_IsWarpOrBridge(metatileBehavior) == TRUE)
+ {
+ sub_80B0268();
+ return TRUE;
+ }
+ if (MetatileBehavior_IsMtPyreHole(metatileBehavior) == TRUE)
+ {
+ ScriptContext1_SetupScript(gUnknown_082A8350);
+ return TRUE;
+ }
+ if (MetatileBehavior_IsMossdeepGymWarp(metatileBehavior) == TRUE)
+ {
+ sub_80AF87C();
+ return TRUE;
+ }
+ sub_80AF734();
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 IsWarpMetatileBehavior(u16 metatileBehavior)
+{
+ if (MetatileBehavior_IsWarpDoor(metatileBehavior) != TRUE
+ && MetatileBehavior_IsLadder(metatileBehavior) != TRUE
+ && MetatileBehavior_IsEscalator(metatileBehavior) != TRUE
+ && MetatileBehavior_IsNonAnimDoor(metatileBehavior) != TRUE
+ && MetatileBehavior_IsLavaridgeB1FWarp(metatileBehavior) != TRUE
+ && MetatileBehavior_IsLavaridge1FWarp(metatileBehavior) != TRUE
+ && MetatileBehavior_IsAquaHideoutWarp(metatileBehavior) != TRUE
+ && MetatileBehavior_IsMtPyreHole(metatileBehavior) != TRUE
+ && MetatileBehavior_IsMossdeepGymWarp(metatileBehavior) != TRUE
+ && MetatileBehavior_IsWarpOrBridge(metatileBehavior) != TRUE)
+ return FALSE;
+ return TRUE;
+}
+
+static bool8 IsArrowWarpMetatileBehavior(u16 metatileBehavior, u8 direction)
+{
+ switch (direction)
+ {
+ case DIR_NORTH:
+ return MetatileBehavior_IsNorthArrowWarp(metatileBehavior);
+ case DIR_SOUTH:
+ return MetatileBehavior_IsSouthArrowWarp(metatileBehavior);
+ case DIR_WEST:
+ return MetatileBehavior_IsWestArrowWarp(metatileBehavior);
+ case DIR_EAST:
+ return MetatileBehavior_IsEastArrowWarp(metatileBehavior);
+ }
+ return FALSE;
+}
+
+static s8 GetWarpEventAtMapPosition(struct MapHeader *mapHeader, struct MapPosition *position)
+{
+ return GetWarpEventAtPosition(mapHeader, position->x - 7, position->y - 7, position->height);
+}
+
+static void sub_809CEB0(struct MapHeader *unused, s8 warpEventId, struct MapPosition *position)
+{
+ const struct WarpEvent *warpEvent;
+
+ u8 trainerHillMapId = GetCurrentTrainerHillMapId();
+
+ if (trainerHillMapId)
+ {
+ if (trainerHillMapId == sub_81D6490())
+ {
+ if (warpEventId == 0)
+ {
+ warpEvent = &gMapHeader.events->warps[0];
+ }
+ else
+ {
+ warpEvent = sub_81D6120();
+ }
+ }
+ else if (trainerHillMapId == 5)
+ {
+ warpEvent = sub_81D6134(warpEventId);
+ }
+ else
+ {
+ warpEvent = &gMapHeader.events->warps[warpEventId];
+ }
+ }
+ else
+ {
+ warpEvent = &gMapHeader.events->warps[warpEventId];
+ }
+
+ if (warpEvent->mapNum == 0x7F)
+ {
+ copy_saved_warp2_bank_and_enter_x_to_warp1(warpEvent->warpId);
+ }
+ else
+ {
+ const struct MapHeader *mapHeader;
+
+ warp1_set_2(warpEvent->mapGroup, warpEvent->mapNum, warpEvent->warpId);
+ sub_8084D5C(position->x, position->y);
+ mapHeader = Overworld_GetMapHeaderByGroupAndId(warpEvent->mapGroup, warpEvent->mapNum);
+ if (mapHeader->events->warps[warpEvent->warpId].mapNum == 0x7F)
+ saved_warp2_set(mapHeader->events->warps[warpEventId].warpId, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, warpEventId);
+ }
+}
+
+static bool8 map_warp_consider_2_to_inside(struct MapPosition *position, u16 metatileBehavior, u8 direction)
+{
+ s8 warpEventId;
+
+ if (direction == DIR_NORTH)
+ {
+ if (MetatileBehavior_IsOpenSecretBaseDoor(metatileBehavior) == TRUE)
+ {
+ sub_80E9668(position, gMapHeader.events);
+ return TRUE;
+ }
+ if (MetatileBehavior_IsWarpDoor(metatileBehavior) == TRUE)
+ {
+ warpEventId = GetWarpEventAtMapPosition(&gMapHeader, position);
+ if (warpEventId != -1 && IsWarpMetatileBehavior(metatileBehavior) == TRUE)
+ {
+ StoreInitialPlayerAvatarState();
+ sub_809CEB0(&gMapHeader, warpEventId, position);
+ sub_80AF7D0();
+ return TRUE;
+ }
+ }
+ }
+ return FALSE;
+}
+
+static s8 GetWarpEventAtPosition(struct MapHeader *mapHeader, u16 x, u16 y, u8 elevation)
+{
+ s32 i;
+ struct WarpEvent *warpEvent = mapHeader->events->warps;
+ u8 warpCount = mapHeader->events->warpCount;
+
+ for (i = 0; i < warpCount; i++, warpEvent++)
+ {
+ if ((u16)warpEvent->x == x && (u16)warpEvent->y == y)
+ {
+ if (warpEvent->elevation == elevation || warpEvent->elevation == 0)
+ return i;
+ }
+ }
+ return -1;
+}
+
+static u8 *TryRunCoordEventScript(struct CoordEvent *coordEvent)
+{
+ if (coordEvent != NULL)
+ {
+ if (coordEvent->script == NULL)
+ {
+ DoCoordEventWeather(coordEvent->trigger);
+ return NULL;
+ }
+ if (coordEvent->trigger == 0)
+ {
+ ScriptContext2_RunNewScript(coordEvent->script);
+ return NULL;
+ }
+ if (VarGet(coordEvent->trigger) == (u8)coordEvent->index)
+ return coordEvent->script;
+ }
+ return NULL;
+}
+
+static u8 *GetCoordEventScriptAtPosition(struct MapHeader *mapHeader, u16 x, u16 y, u8 elevation)
+{
+ s32 i;
+ struct CoordEvent *coordEvents = mapHeader->events->coordEvents;
+ u8 coordEventCount = mapHeader->events->coordEventCount;
+
+ for (i = 0; i < coordEventCount; i++)
+ {
+ if ((u16)coordEvents[i].x == x && (u16)coordEvents[i].y == y)
+ {
+ if (coordEvents[i].elevation == elevation || coordEvents[i].elevation == 0)
+ {
+ u8 *script = TryRunCoordEventScript(&coordEvents[i]);
+ if (script != NULL)
+ return script;
+ }
+ }
+ }
+ return NULL;
+}
+
+u8 *GetCoordEventScriptAtMapPosition(struct MapPosition *position)
+{
+ return GetCoordEventScriptAtPosition(&gMapHeader, position->x - 7, position->y - 7, position->height);
+}
+
+static struct BgEvent *GetBackgroundEventAtPosition(struct MapHeader *mapHeader, u16 x, u16 y, u8 elevation)
+{
+ u8 i;
+ struct BgEvent *bgEvents = mapHeader->events->bgEvents;
+ u8 bgEventCount = mapHeader->events->bgEventCount;
+
+ for (i = 0; i < bgEventCount; i++)
+ {
+ if ((u16)bgEvents[i].x == x && (u16)bgEvents[i].y == y)
+ {
+ if (bgEvents[i].elevation == elevation || bgEvents[i].elevation == 0)
+ return &bgEvents[i];
+ }
+ }
+ return NULL;
+}
+
+bool8 dive_warp(struct MapPosition *position, u16 metatileBehavior)
+{
+ if (gMapHeader.mapType == MAP_TYPE_UNDERWATER && !MetatileBehavior_IsUnableToEmerge(metatileBehavior))
+ {
+ if (SetDiveWarpEmerge(position->x - 7, position->y - 7))
+ {
+ StoreInitialPlayerAvatarState();
+ sp13E_warp_to_last_warp();
+ PlaySE(SE_W291);
+ return TRUE;
+ }
+ }
+ else if (MetatileBehavior_IsDiveable(metatileBehavior) == TRUE)
+ {
+ if (SetDiveWarpDive(position->x - 7, position->y - 7))
+ {
+ StoreInitialPlayerAvatarState();
+ sp13E_warp_to_last_warp();
+ PlaySE(SE_W291);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+u8 TrySetDiveWarp(void)
+{
+ s16 x, y;
+ u8 metatileBehavior;
+
+ PlayerGetDestCoords(&x, &y);
+ metatileBehavior = MapGridGetMetatileBehaviorAt(x, y);
+ if (gMapHeader.mapType == MAP_TYPE_UNDERWATER && !MetatileBehavior_IsUnableToEmerge(metatileBehavior))
+ {
+ if (SetDiveWarpEmerge(x - 7, y - 7) == TRUE)
+ return 1;
+ }
+ else if (MetatileBehavior_IsDiveable(metatileBehavior) == TRUE)
+ {
+ if (SetDiveWarpDive(x - 7, y - 7) == TRUE)
+ return 2;
+ }
+ return 0;
+}
+
+const u8 *GetEventObjectScriptPointerPlayerFacing(void)
+{
+ u8 direction;
+ struct MapPosition position;
+
+ direction = GetPlayerMovementDirection();
+ GetInFrontOfPlayerPosition(&position);
+ return GetInteractedEventObjectScript(&position, MapGridGetMetatileBehaviorAt(position.x, position.y), direction);
+}
+
+int SetCableClubWarp(void)
+{
+ struct MapPosition position;
+
+ GetPlayerMovementDirection(); //unnecessary
+ GetPlayerPosition(&position);
+ MapGridGetMetatileBehaviorAt(position.x, position.y); //unnecessary
+ sub_809CEB0(&gMapHeader, GetWarpEventAtMapPosition(&gMapHeader, &position), &position);
+ return 0;
+}
diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c
new file mode 100755
index 000000000..3534e0a71
--- /dev/null
+++ b/src/field_effect_helpers.c
@@ -0,0 +1,1776 @@
+#include "global.h"
+#include "event_object_movement.h"
+#include "field_camera.h"
+#include "field_effect.h"
+#include "field_effect_helpers.h"
+#include "field_weather.h"
+#include "fieldmap.h"
+#include "gpu_regs.h"
+#include "metatile_behavior.h"
+#include "sound.h"
+#include "sprite.h"
+#include "trig.h"
+#include "constants/songs.h"
+
+#define EVENT_OBJ_PAL_TAG_NONE 0x11FF // duplicate of define in event_object_movement.c
+
+void UpdateObjectReflectionSprite(struct Sprite *);
+void LoadObjectReflectionPalette(struct EventObject *eventObject, struct Sprite *sprite);
+void LoadObjectHighBridgeReflectionPalette(struct EventObject *, u8);
+void LoadObjectRegularReflectionPalette(struct EventObject *, u8);
+void sub_81561FC(struct Sprite *, u8, u8);
+void FadeFootprintsTireTracks_Step0(struct Sprite *);
+void FadeFootprintsTireTracks_Step1(struct Sprite *);
+void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *);
+void UpdateAshFieldEffect_Step0(struct Sprite *);
+void UpdateAshFieldEffect_Step1(struct Sprite *);
+void UpdateAshFieldEffect_Step2(struct Sprite *);
+void sub_81556B0(struct EventObject *, struct Sprite *);
+void sub_81556E8(struct EventObject *, struct Sprite *);
+void sub_815577C(struct EventObject *, struct Sprite *, struct Sprite *);
+void sub_8155850(struct Sprite *);
+u32 ShowDisguiseFieldEffect(u8, u8, u8);
+
+void SetUpReflection(struct EventObject *eventObject, struct Sprite *sprite, bool8 stillReflection)
+{
+ struct Sprite *reflectionSprite;
+
+ reflectionSprite = &gSprites[CreateCopySpriteAt(sprite, sprite->pos1.x, sprite->pos1.y, 0x98)];
+ reflectionSprite->callback = UpdateObjectReflectionSprite;
+ reflectionSprite->oam.priority = 3;
+ reflectionSprite->oam.paletteNum = gReflectionEffectPaletteMap[reflectionSprite->oam.paletteNum];
+ reflectionSprite->usingSheet = TRUE;
+ reflectionSprite->anims = gDummySpriteAnimTable;
+ StartSpriteAnim(reflectionSprite, 0);
+ reflectionSprite->affineAnims = gDummySpriteAffineAnimTable;
+ reflectionSprite->affineAnimBeginning = TRUE;
+ reflectionSprite->subspriteMode = SUBSPRITES_OFF;
+ reflectionSprite->data[0] = sprite->data[0];
+ reflectionSprite->data[1] = eventObject->localId;
+ reflectionSprite->data[7] = stillReflection;
+ LoadObjectReflectionPalette(eventObject, reflectionSprite);
+
+ if (!stillReflection)
+ reflectionSprite->oam.affineMode = ST_OAM_AFFINE_NORMAL;
+}
+
+static s16 GetReflectionVerticalOffset(struct EventObject *eventObject)
+{
+ return GetEventObjectGraphicsInfo(eventObject->graphicsId)->height - 2;
+}
+
+void LoadObjectReflectionPalette(struct EventObject *eventObject, struct Sprite *sprite)
+{
+ u8 bridgeType;
+ u16 bridgeReflectionVerticalOffsets[] = { 12, 28, 44 };
+ sprite->data[2] = 0;
+ if (!GetEventObjectGraphicsInfo(eventObject->graphicsId)->disableReflectionPaletteLoad && ((bridgeType = MetatileBehavior_GetBridgeSth(eventObject->previousMetatileBehavior)) || (bridgeType = MetatileBehavior_GetBridgeSth(eventObject->currentMetatileBehavior))))
+ {
+ sprite->data[2] = bridgeReflectionVerticalOffsets[bridgeType - 1];
+ LoadObjectHighBridgeReflectionPalette(eventObject, sprite->oam.paletteNum);
+ }
+ else
+ {
+ LoadObjectRegularReflectionPalette(eventObject, sprite->oam.paletteNum);
+ }
+}
+
+void LoadObjectRegularReflectionPalette(struct EventObject *eventObject, u8 paletteIndex)
+{
+ const struct EventObjectGraphicsInfo *graphicsInfo;
+
+ graphicsInfo = GetEventObjectGraphicsInfo(eventObject->graphicsId);
+ if (graphicsInfo->paletteTag2 != EVENT_OBJ_PAL_TAG_NONE)
+ {
+ if (graphicsInfo->paletteSlot == 0)
+ {
+ LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag1, paletteIndex);
+ }
+ else if (graphicsInfo->paletteSlot == 10)
+ {
+ LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, paletteIndex);
+ }
+ else
+ {
+ PatchObjectPalette(GetObjectPaletteTag(paletteIndex), paletteIndex);
+ }
+ UpdateSpritePaletteWithWeather(paletteIndex);
+ }
+}
+
+// When walking on a bridge high above water (Route 120), the reflection is a solid dark blue color.
+// This is so the sprite blends in with the dark water metatile underneath the bridge.
+void LoadObjectHighBridgeReflectionPalette(struct EventObject *eventObject, u8 paletteNum)
+{
+ const struct EventObjectGraphicsInfo *graphicsInfo;
+
+ graphicsInfo = GetEventObjectGraphicsInfo(eventObject->graphicsId);
+ if (graphicsInfo->paletteTag2 != EVENT_OBJ_PAL_TAG_NONE)
+ {
+ PatchObjectPalette(graphicsInfo->paletteTag2, paletteNum);
+ UpdateSpritePaletteWithWeather(paletteNum);
+ }
+}
+
+void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite)
+{
+ struct EventObject *eventObject;
+ struct Sprite *mainSprite;
+
+ eventObject = &gEventObjects[reflectionSprite->data[0]];
+ mainSprite = &gSprites[eventObject->spriteId];
+ if (!eventObject->active || !eventObject->hasReflection || eventObject->localId != reflectionSprite->data[1])
+ {
+ reflectionSprite->inUse = FALSE;
+ }
+ else
+ {
+ reflectionSprite->oam.paletteNum = gReflectionEffectPaletteMap[mainSprite->oam.paletteNum];
+ reflectionSprite->oam.shape = mainSprite->oam.shape;
+ reflectionSprite->oam.size = mainSprite->oam.size;
+ reflectionSprite->oam.matrixNum = mainSprite->oam.matrixNum | 0x10;
+ reflectionSprite->oam.tileNum = mainSprite->oam.tileNum;
+ reflectionSprite->subspriteTables = mainSprite->subspriteTables;
+ reflectionSprite->subspriteTableNum = mainSprite->subspriteTableNum;
+ reflectionSprite->invisible = mainSprite->invisible;
+ reflectionSprite->pos1.x = mainSprite->pos1.x;
+ // reflectionSprite->data[2] holds an additional vertical offset, used by the high bridges on Route 120
+ reflectionSprite->pos1.y = mainSprite->pos1.y + GetReflectionVerticalOffset(eventObject) + reflectionSprite->data[2];
+ reflectionSprite->centerToCornerVecX = mainSprite->centerToCornerVecX;
+ reflectionSprite->centerToCornerVecY = mainSprite->centerToCornerVecY;
+ reflectionSprite->pos2.x = mainSprite->pos2.x;
+ reflectionSprite->pos2.y = -mainSprite->pos2.y;
+ reflectionSprite->coordOffsetEnabled = mainSprite->coordOffsetEnabled;
+
+ if (eventObject->unk3_3 == TRUE)
+ reflectionSprite->invisible = TRUE;
+
+ // Check if the reflection is not still.
+ if (reflectionSprite->data[7] == FALSE)
+ {
+ // Sets the reflection sprite's rot/scale matrix to the appropriate
+ // matrix based on whether or not the main sprite is horizontally flipped.
+ // If the sprite is facing to the east, then it is flipped, and its matrixNum is 8.
+ reflectionSprite->oam.matrixNum = 0;
+ if (mainSprite->oam.matrixNum & 0x8)
+ reflectionSprite->oam.matrixNum = 1;
+ }
+ }
+}
+
+extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
+
+u8 CreateWarpArrowSprite(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[8], 0, 0, 0x52);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->oam.priority = 1;
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->invisible = TRUE;
+ }
+ return spriteId;
+}
+
+void SetSpriteInvisible(u8 spriteId)
+{
+ gSprites[spriteId].invisible = TRUE;
+}
+
+void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y)
+{
+ s16 x2;
+ s16 y2;
+ struct Sprite *sprite;
+
+ sprite = &gSprites[spriteId];
+ if (sprite->invisible || sprite->data[0] != x || sprite->data[1] != y)
+ {
+ sub_8093038(x, y, &x2, &y2);
+ sprite = &gSprites[spriteId];
+ sprite->pos1.x = x2 + 8;
+ sprite->pos1.y = y2 + 8;
+ sprite->invisible = FALSE;
+ sprite->data[0] = x;
+ sprite->data[1] = y;
+ StartSpriteAnim(sprite, direction - 1);
+ }
+}
+
+const u8 gShadowEffectTemplateIds[] = {
+ 0,
+ 1,
+ 2,
+ 3
+};
+
+const u16 gShadowVerticalOffsets[] = {
+ 4,
+ 4,
+ 4,
+ 16
+};
+
+u32 FldEff_Shadow(void)
+{
+ u8 eventObjectId;
+ const struct EventObjectGraphicsInfo *graphicsInfo;
+ u8 spriteId;
+
+ eventObjectId = GetEventObjectIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ graphicsInfo = GetEventObjectGraphicsInfo(gEventObjects[eventObjectId].graphicsId);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[gShadowEffectTemplateIds[graphicsInfo->shadowSize]], 0, 0, 0x94);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].coordOffsetEnabled = TRUE;
+ 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) - gShadowVerticalOffsets[graphicsInfo->shadowSize];
+ }
+ return 0;
+}
+
+void UpdateShadowFieldEffect(struct Sprite *sprite)
+{
+ u8 eventObjectId;
+ struct EventObject *eventObject;
+ struct Sprite *linkedSprite;
+
+ if (TryGetEventObjectIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &eventObjectId))
+ {
+ FieldEffectStop(sprite, FLDEFF_SHADOW);
+ }
+ else
+ {
+ eventObject = &gEventObjects[eventObjectId];
+ linkedSprite = &gSprites[eventObject->spriteId];
+ sprite->oam.priority = linkedSprite->oam.priority;
+ sprite->pos1.x = linkedSprite->pos1.x;
+ sprite->pos1.y = linkedSprite->pos1.y + sprite->data[3];
+ if (!eventObject->active || !eventObject->hasShadow
+ || MetatileBehavior_IsPokeGrass(eventObject->currentMetatileBehavior)
+ || MetatileBehavior_IsSurfableWaterOrUnderwater(eventObject->currentMetatileBehavior)
+ || MetatileBehavior_IsSurfableWaterOrUnderwater(eventObject->previousMetatileBehavior)
+ || MetatileBehavior_IsReflective(eventObject->currentMetatileBehavior)
+ || MetatileBehavior_IsReflective(eventObject->previousMetatileBehavior))
+ {
+ FieldEffectStop(sprite, FLDEFF_SHADOW);
+ }
+ }
+}
+
+u32 FldEff_TallGrass(void)
+{
+ s16 x;
+ s16 y;
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ x = gFieldEffectArguments[0];
+ y = gFieldEffectArguments[1];
+ sub_80930E0(&x, &y, 8, 8);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[4], x, y, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gFieldEffectArguments[3];
+ 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);
+ }
+ }
+ return 0;
+}
+
+void UpdateTallGrassFieldEffect(struct Sprite *sprite)
+{
+ u8 mapNum;
+ u8 mapGroup;
+ u8 metatileBehavior;
+ u8 localId;
+ u8 eventObjectId;
+ struct EventObject *eventObject;
+
+ mapNum = sprite->data[5] >> 8;
+ mapGroup = sprite->data[5];
+ if (gCamera.active && (gSaveBlock1Ptr->location.mapNum != mapNum || gSaveBlock1Ptr->location.mapGroup != mapGroup))
+ {
+ sprite->data[1] -= gCamera.x;
+ sprite->data[2] -= gCamera.y;
+ sprite->data[5] = ((u8)gSaveBlock1Ptr->location.mapNum << 8) | (u8)gSaveBlock1Ptr->location.mapGroup;
+ }
+ localId = sprite->data[3] >> 8;
+ mapNum = sprite->data[3];
+ mapGroup = sprite->data[4];
+ metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->data[1], sprite->data[2]);
+ if (TryGetEventObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &eventObjectId) || !MetatileBehavior_IsTallGrass(metatileBehavior) || (sprite->data[7] && sprite->animEnded))
+ {
+ FieldEffectStop(sprite, FLDEFF_TALL_GRASS);
+ }
+ else
+ {
+ eventObject = &gEventObjects[eventObjectId];
+ if ((eventObject->currentCoords.x != sprite->data[1] || eventObject->currentCoords.y != sprite->data[2]) && (eventObject->previousCoords.x != sprite->data[1] || eventObject->previousCoords.y != sprite->data[2]))
+ sprite->data[7] = TRUE;
+
+ metatileBehavior = 0;
+ if (sprite->animCmdIndex == 0)
+ metatileBehavior = 4;
+
+ UpdateEventObjectSpriteVisibility(sprite, 0);
+ sub_81561FC(sprite, sprite->data[0], metatileBehavior);
+ }
+}
+
+u32 FldEff_JumpTallGrass(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[10], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gFieldEffectArguments[3];
+ sprite->data[0] = gFieldEffectArguments[2];
+ sprite->data[1] = 12;
+ }
+ return 0;
+}
+
+u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y)
+{
+ struct Sprite *sprite;
+ u8 i;
+
+ for (i = 0; i < MAX_SPRITES; i ++)
+ {
+ if (gSprites[i].inUse)
+ {
+ sprite = &gSprites[i];
+ if (sprite->callback == UpdateTallGrassFieldEffect && (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;
+ }
+ }
+
+ return MAX_SPRITES;
+}
+
+u32 FldEff_LongGrass(void)
+{
+ s16 x;
+ s16 y;
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ x = gFieldEffectArguments[0];
+ y = gFieldEffectArguments[1];
+ sub_80930E0(&x, &y, 8, 8);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = ZCoordToPriority(gFieldEffectArguments[2]);
+ 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);
+ }
+ }
+ return 0;
+}
+
+void UpdateLongGrassFieldEffect(struct Sprite *sprite)
+{
+ u8 mapNum;
+ u8 mapGroup;
+ u8 metatileBehavior;
+ u8 localId;
+ u8 eventObjectId;
+ struct EventObject *eventObject;
+
+ mapNum = sprite->data[5] >> 8;
+ mapGroup = sprite->data[5];
+ if (gCamera.active && (gSaveBlock1Ptr->location.mapNum != mapNum || gSaveBlock1Ptr->location.mapGroup != mapGroup))
+ {
+ sprite->data[1] -= gCamera.x;
+ sprite->data[2] -= gCamera.y;
+ sprite->data[5] = ((u8)gSaveBlock1Ptr->location.mapNum << 8) | (u8)gSaveBlock1Ptr->location.mapGroup;
+ }
+ localId = sprite->data[3] >> 8;
+ mapNum = sprite->data[3];
+ mapGroup = sprite->data[4];
+ metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->data[1], sprite->data[2]);
+ if (TryGetEventObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &eventObjectId) || !MetatileBehavior_IsLongGrass(metatileBehavior) || (sprite->data[7] && sprite->animEnded))
+ {
+ FieldEffectStop(sprite, FLDEFF_LONG_GRASS);
+ }
+ else
+ {
+ eventObject = &gEventObjects[eventObjectId];
+ if ((eventObject->currentCoords.x != sprite->data[1] || eventObject->currentCoords.y != sprite->data[2]) && (eventObject->previousCoords.x != sprite->data[1] || eventObject->previousCoords.y != sprite->data[2]))
+ {
+ sprite->data[7] = TRUE;
+ }
+ UpdateEventObjectSpriteVisibility(sprite, 0);
+ sub_81561FC(sprite, sprite->data[0], 0);
+ }
+}
+
+u32 FldEff_JumpLongGrass(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[16], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gFieldEffectArguments[3];
+ sprite->data[0] = gFieldEffectArguments[2];
+ sprite->data[1] = 18;
+ }
+ return 0;
+}
+
+u32 FldEff_ShortGrass(void)
+{
+ u8 eventObjectId;
+ struct EventObject *eventObject;
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ eventObjectId = GetEventObjectIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ eventObject = &gEventObjects[eventObjectId];
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[30], 0, 0, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &(gSprites[spriteId]);
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gSprites[eventObject->spriteId].oam.priority;
+ sprite->data[0] = gFieldEffectArguments[0];
+ sprite->data[1] = gFieldEffectArguments[1];
+ sprite->data[2] = gFieldEffectArguments[2];
+ sprite->data[3] = gSprites[eventObject->spriteId].pos1.x;
+ sprite->data[4] = gSprites[eventObject->spriteId].pos1.y;
+ }
+ return 0;
+}
+
+void UpdateShortGrassFieldEffect(struct Sprite *sprite)
+{
+ u8 eventObjectId;
+ s16 x;
+ s16 y;
+ const struct EventObjectGraphicsInfo *graphicsInfo;
+ struct Sprite *linkedSprite;
+
+ if (TryGetEventObjectIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &eventObjectId) || !gEventObjects[eventObjectId].inShortGrass)
+ {
+ FieldEffectStop(sprite, FLDEFF_SHORT_GRASS);
+ }
+ else
+ {
+ graphicsInfo = GetEventObjectGraphicsInfo(gEventObjects[eventObjectId].graphicsId);
+ linkedSprite = &gSprites[gEventObjects[eventObjectId].spriteId];
+ y = linkedSprite->pos1.y;
+ x = linkedSprite->pos1.x;
+ if (x != sprite->data[3] || y != sprite->data[4])
+ {
+ sprite->data[3] = x;
+ sprite->data[4] = y;
+ if (sprite->animEnded)
+ {
+ StartSpriteAnim(sprite, 0);
+ }
+ }
+ sprite->pos1.x = x;
+ sprite->pos1.y = y;
+ sprite->pos2.y = (graphicsInfo->height >> 1) - 8;
+ sprite->subpriority = linkedSprite->subpriority - 1;
+ sprite->oam.priority = linkedSprite->oam.priority;
+ UpdateEventObjectSpriteVisibility(sprite, linkedSprite->invisible);
+ }
+}
+
+u32 FldEff_SandFootprints(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[11], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gFieldEffectArguments[3];
+ sprite->data[7] = FLDEFF_SAND_FOOTPRINTS;
+ StartSpriteAnim(sprite, gFieldEffectArguments[4]);
+ }
+ return 0;
+}
+
+u32 FldEff_DeepSandFootprints(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[23], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gFieldEffectArguments[3];
+ sprite->data[7] = FLDEFF_DEEP_SAND_FOOTPRINTS;
+ StartSpriteAnim(sprite, gFieldEffectArguments[4]);
+ }
+ return spriteId;
+}
+
+u32 FldEff_BikeTireTracks(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[27], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gFieldEffectArguments[3];
+ sprite->data[7] = FLDEFF_BIKE_TIRE_TRACKS;
+ StartSpriteAnim(sprite, gFieldEffectArguments[4]);
+ }
+ return spriteId;
+}
+
+void (*const gFadeFootprintsTireTracksFuncs[])(struct Sprite *) = {
+ FadeFootprintsTireTracks_Step0,
+ FadeFootprintsTireTracks_Step1
+};
+
+void UpdateFootprintsTireTracksFieldEffect(struct Sprite *sprite)
+{
+ gFadeFootprintsTireTracksFuncs[sprite->data[0]](sprite);
+}
+
+void FadeFootprintsTireTracks_Step0(struct Sprite *sprite)
+{
+ // Wait 40 frames before the flickering starts.
+ if (++sprite->data[1] > 40)
+ sprite->data[0] = 1;
+
+ UpdateEventObjectSpriteVisibility(sprite, FALSE);
+}
+
+void FadeFootprintsTireTracks_Step1(struct Sprite *sprite)
+{
+ sprite->invisible ^= 1;
+ sprite->data[1]++;
+ UpdateEventObjectSpriteVisibility(sprite, sprite->invisible);
+ if (sprite->data[1] > 56)
+ {
+ FieldEffectStop(sprite, sprite->data[7]);
+ }
+}
+
+u32 FldEff_Splash(void)
+{
+ u8 eventObjectId;
+ struct EventObject *eventObject;
+ u8 spriteId;
+ struct Sprite *sprite;
+ const struct EventObjectGraphicsInfo *graphicsInfo;
+ struct Sprite *linkedSprite;
+
+ eventObjectId = GetEventObjectIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ eventObject = &gEventObjects[eventObjectId];
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[13], 0, 0, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ graphicsInfo = GetEventObjectGraphicsInfo(eventObject->graphicsId);
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ linkedSprite = &gSprites[eventObject->spriteId];
+ sprite->oam.priority = linkedSprite->oam.priority;
+ 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);
+ }
+ return 0;
+}
+
+void UpdateSplashFieldEffect(struct Sprite *sprite)
+{
+ u8 eventObjectId;
+
+ if (sprite->animEnded || TryGetEventObjectIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &eventObjectId))
+ {
+ FieldEffectStop(sprite, FLDEFF_SPLASH);
+ }
+ else
+ {
+ sprite->pos1.x = gSprites[gEventObjects[eventObjectId].spriteId].pos1.x;
+ sprite->pos1.y = gSprites[gEventObjects[eventObjectId].spriteId].pos1.y;
+ UpdateEventObjectSpriteVisibility(sprite, FALSE);
+ }
+}
+
+u32 FldEff_JumpSmallSplash(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[14], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gFieldEffectArguments[3];
+ sprite->data[0] = gFieldEffectArguments[2];
+ sprite->data[1] = FLDEFF_JUMP_SMALL_SPLASH;
+ }
+ return 0;
+}
+
+u32 FldEff_JumpBigSplash(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[12], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gFieldEffectArguments[3];
+ sprite->data[0] = gFieldEffectArguments[2];
+ sprite->data[1] = FLDEFF_JUMP_BIG_SPLASH;
+ }
+ return 0;
+}
+
+u32 FldEff_FeetInFlowingWater(void)
+{
+ u8 eventObjectId;
+ struct EventObject *eventObject;
+ u8 spriteId;
+ struct Sprite *sprite;
+ const struct EventObjectGraphicsInfo *graphicsInfo;
+
+ eventObjectId = GetEventObjectIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ eventObject = &gEventObjects[eventObjectId];
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[13], 0, 0, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ graphicsInfo = GetEventObjectGraphicsInfo(eventObject->graphicsId);
+ sprite = &gSprites[spriteId];
+ sprite->callback = UpdateFeetInFlowingWaterFieldEffect;
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gSprites[eventObject->spriteId].oam.priority;
+ 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);
+ }
+ return 0;
+}
+
+void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *sprite)
+{
+ u8 eventObjectId;
+ struct Sprite *linkedSprite;
+ struct EventObject *eventObject;
+
+ if (TryGetEventObjectIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &eventObjectId) || !gEventObjects[eventObjectId].inShallowFlowingWater)
+ {
+ FieldEffectStop(sprite, FLDEFF_FEET_IN_FLOWING_WATER);
+ }
+ else
+ {
+ eventObject = &gEventObjects[eventObjectId];
+ linkedSprite = &gSprites[eventObject->spriteId];
+ sprite->pos1.x = linkedSprite->pos1.x;
+ sprite->pos1.y = linkedSprite->pos1.y;
+ sprite->subpriority = linkedSprite->subpriority;
+ UpdateEventObjectSpriteVisibility(sprite, FALSE);
+ if (eventObject->currentCoords.x != sprite->data[3] || eventObject->currentCoords.y != sprite->data[4])
+ {
+ sprite->data[3] = eventObject->currentCoords.x;
+ sprite->data[4] = eventObject->currentCoords.y;
+ if (!sprite->invisible)
+ {
+ PlaySE(SE_MIZU);
+ }
+ }
+ }
+}
+
+u32 FldEff_Ripple(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[5], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gFieldEffectArguments[3];
+ sprite->data[0] = FLDEFF_RIPPLE;
+ }
+ return 0;
+}
+
+u32 FldEff_HotSpringsWater(void)
+{
+ u8 eventObjectId;
+ struct EventObject *eventObject;
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ eventObjectId = GetEventObjectIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ eventObject = &gEventObjects[eventObjectId];
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[31], 0, 0, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gSprites[eventObject->spriteId].oam.priority;
+ sprite->data[0] = gFieldEffectArguments[0];
+ sprite->data[1] = gFieldEffectArguments[1];
+ sprite->data[2] = gFieldEffectArguments[2];
+ sprite->data[3] = gSprites[eventObject->spriteId].pos1.x;
+ sprite->data[4] = gSprites[eventObject->spriteId].pos1.y;
+ }
+ return 0;
+}
+
+void UpdateHotSpringsWaterFieldEffect(struct Sprite *sprite)
+{
+ u8 eventObjectId;
+ const struct EventObjectGraphicsInfo *graphicsInfo;
+ struct Sprite *linkedSprite;
+
+ if (TryGetEventObjectIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &eventObjectId) || !gEventObjects[eventObjectId].inHotSprings)
+ {
+ FieldEffectStop(sprite, FLDEFF_HOT_SPRINGS_WATER);
+ }
+ else
+ {
+ graphicsInfo = GetEventObjectGraphicsInfo(gEventObjects[eventObjectId].graphicsId);
+ linkedSprite = &gSprites[gEventObjects[eventObjectId].spriteId];
+ sprite->pos1.x = linkedSprite->pos1.x;
+ sprite->pos1.y = (graphicsInfo->height >> 1) + linkedSprite->pos1.y - 8;
+ sprite->subpriority = linkedSprite->subpriority - 1;
+ UpdateEventObjectSpriteVisibility(sprite, FALSE);
+ }
+}
+
+u32 FldEff_Unknown19(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[17], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gFieldEffectArguments[3];
+ sprite->data[0] = FLDEFF_UNKNOWN_19;
+ }
+ return 0;
+}
+
+u32 FldEff_Unknown20(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[18], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gFieldEffectArguments[3];
+ sprite->data[0] = FLDEFF_UNKNOWN_20;
+ }
+ return 0;
+}
+
+u32 FldEff_Unknown21(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[19], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gFieldEffectArguments[3];
+ sprite->data[0] = FLDEFF_UNKNOWN_21;
+ }
+ return 0;
+}
+
+u32 FldEff_Unknown22(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[20], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gFieldEffectArguments[3];
+ sprite->data[0] = FLDEFF_UNKNOWN_22;
+ }
+ return 0;
+}
+
+void StartAshFieldEffect(s16 x, s16 y, u16 c, s16 d)
+{
+ gFieldEffectArguments[0] = x;
+ gFieldEffectArguments[1] = y;
+ gFieldEffectArguments[2] = 0x52;
+ gFieldEffectArguments[3] = 1;
+ gFieldEffectArguments[4] = c;
+ gFieldEffectArguments[5] = d;
+ FieldEffectStart(FLDEFF_ASH);
+}
+
+u32 FldEff_Ash(void)
+{
+ s16 x;
+ s16 y;
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ x = gFieldEffectArguments[0];
+ y = gFieldEffectArguments[1];
+ sub_80930E0(&x, &y, 8, 8);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[6], x, y, gFieldEffectArguments[2]);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gFieldEffectArguments[3];
+ sprite->data[1] = gFieldEffectArguments[0];
+ sprite->data[2] = gFieldEffectArguments[1];
+ sprite->data[3] = gFieldEffectArguments[4];
+ sprite->data[4] = gFieldEffectArguments[5];
+ }
+ return 0;
+}
+
+void (*const gAshFieldEffectFuncs[])(struct Sprite *) = {
+ UpdateAshFieldEffect_Step0,
+ UpdateAshFieldEffect_Step1,
+ UpdateAshFieldEffect_Step2
+};
+
+void UpdateAshFieldEffect(struct Sprite *sprite)
+{
+ gAshFieldEffectFuncs[sprite->data[0]](sprite);
+}
+
+void UpdateAshFieldEffect_Step0(struct Sprite *sprite)
+{
+ sprite->invisible = TRUE;
+ sprite->animPaused = TRUE;
+ if (--sprite->data[4] == 0)
+ sprite->data[0] = 1;
+}
+
+void UpdateAshFieldEffect_Step1(struct Sprite *sprite)
+{
+ sprite->invisible = FALSE;
+ sprite->animPaused = FALSE;
+ MapGridSetMetatileIdAt(sprite->data[1], sprite->data[2], sprite->data[3]);
+ CurrentMapDrawMetatileAt(sprite->data[1], sprite->data[2]);
+ gEventObjects[gPlayerAvatar.eventObjectId].triggerGroundEffectsOnMove = TRUE;
+ sprite->data[0] = 2;
+}
+
+void UpdateAshFieldEffect_Step2(struct Sprite *sprite)
+{
+ UpdateEventObjectSpriteVisibility(sprite, FALSE);
+ if (sprite->animEnded)
+ FieldEffectStop(sprite, FLDEFF_ASH);
+}
+
+u32 FldEff_SurfBlob(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[7], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x96);
+ if (spriteId !=MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.paletteNum = 0;
+ sprite->data[2] = gFieldEffectArguments[2];
+ sprite->data[3] = -1;
+ sprite->data[6] = -1;
+ sprite->data[7] = -1;
+ }
+ FieldEffectActiveListRemove(FLDEFF_SURF_BLOB);
+ return spriteId;
+}
+
+void sub_81555AC(u8 spriteId, u8 value)
+{
+ gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF) | (value & 0xF);
+}
+
+void sub_81555D8(u8 spriteId, u8 value)
+{
+ gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF0) | ((value & 0xF) << 4);
+}
+
+void sub_8155604(u8 spriteId, u8 value, s16 data1)
+{
+ gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF00) | ((value & 0xF) << 8);
+ gSprites[spriteId].data[1] = data1;
+}
+
+u8 sub_8155638(struct Sprite *sprite)
+{
+ return sprite->data[0] & 0xF;
+}
+
+u8 sub_8155640(struct Sprite *sprite)
+{
+ return (sprite->data[0] & 0xF0) >> 4;
+}
+
+u8 sub_815564C(struct Sprite *sprite)
+{
+ return (sprite->data[0] & 0xF00) >> 8;
+}
+
+void UpdateSurfBlobFieldEffect(struct Sprite *sprite)
+{
+ struct EventObject *eventObject;
+ struct Sprite *linkedSprite;
+
+ eventObject = &gEventObjects[sprite->data[2]];
+ linkedSprite = &gSprites[eventObject->spriteId];
+ sub_81556B0(eventObject, sprite);
+ sub_81556E8(eventObject, sprite);
+ sub_815577C(eventObject, linkedSprite, sprite);
+ sprite->oam.priority = linkedSprite->oam.priority;
+}
+
+void sub_81556B0(struct EventObject *eventObject, struct Sprite *sprite)
+{
+ u8 surfBlobDirectionAnims[] = {
+ 0, // DIR_NONE
+ 0, // DIR_SOUTH
+ 1, // DIR_NORTH
+ 2, // DIR_WEST
+ 3, // DIR_EAST
+ 0,
+ 0,
+ 1,
+ 1,
+ };
+
+ if (sub_8155640(sprite) == 0)
+ StartSpriteAnimIfDifferent(sprite, surfBlobDirectionAnims[eventObject->movementDirection]);
+}
+
+#ifdef NONMATCHING
+void sub_81556E8(struct EventObject *eventObject, struct Sprite *sprite)
+{
+ s16 x;
+ s16 y;
+ u8 i;
+
+ x = eventObject->currentCoords.x;
+ y = eventObject->currentCoords.y;
+ if (sprite->pos2.y == 0 && (x != sprite->data[6] || y != sprite->data[7]))
+ {
+ 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->data[5] ++;
+ break;
+ }
+ }
+ }
+}
+#else
+NAKED void sub_81556E8(struct EventObject *eventObject, struct Sprite *sprite)
+{
+ asm_unified("push {r4-r7,lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ sub sp, 0x4\n\
+ adds r4, r1, 0\n\
+ ldrh r2, [r0, 0x10]\n\
+ mov r1, sp\n\
+ strh r2, [r1]\n\
+ ldrh r1, [r0, 0x12]\n\
+ mov r0, sp\n\
+ adds r0, 0x2\n\
+ strh r1, [r0]\n\
+ movs r2, 0x26\n\
+ ldrsh r3, [r4, r2]\n\
+ mov r8, r0\n\
+ cmp r3, 0\n\
+ bne _08155770\n\
+ mov r0, sp\n\
+ movs r5, 0\n\
+ ldrsh r2, [r0, r5]\n\
+ movs r5, 0x3A\n\
+ ldrsh r0, [r4, r5]\n\
+ cmp r2, r0\n\
+ bne _08155724\n\
+ lsls r0, r1, 16\n\
+ asrs r0, 16\n\
+ movs r5, 0x3C\n\
+ ldrsh r1, [r4, r5]\n\
+ cmp r0, r1\n\
+ beq _08155770\n\
+_08155724:\n\
+ strh r3, [r4, 0x38]\n\
+ strh r2, [r4, 0x3A]\n\
+ mov r1, r8\n\
+ movs r2, 0\n\
+ ldrsh r0, [r1, r2]\n\
+ strh r0, [r4, 0x3C]\n\
+ movs r5, 0x1\n\
+ mov r7, r8\n\
+ mov r6, sp\n\
+_08155736:\n\
+ adds r0, r5, 0\n\
+ mov r1, sp\n\
+ adds r2, r7, 0\n\
+ bl MoveCoords\n\
+ movs r1, 0\n\
+ ldrsh r0, [r6, r1]\n\
+ movs r2, 0\n\
+ ldrsh r1, [r7, r2]\n\
+ bl MapGridGetZCoordAt\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x3\n\
+ bne _0815575C\n\
+ ldrh r0, [r4, 0x38]\n\
+ adds r0, 0x1\n\
+ strh r0, [r4, 0x38]\n\
+ b _08155770\n\
+_0815575C:\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ ldrh r0, [r4, 0x3A]\n\
+ strh r0, [r6]\n\
+ ldrh r0, [r4, 0x3C]\n\
+ mov r1, r8\n\
+ strh r0, [r1]\n\
+ cmp r5, 0x4\n\
+ bls _08155736\n\
+_08155770:\n\
+ add sp, 0x4\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0");
+}
+#endif
+
+void sub_815577C(struct EventObject *eventObject, struct Sprite *linkedSprite, struct Sprite *sprite)
+{
+ u16 unk_085CDC6A[] = {3, 7};
+ u8 v0 = sub_8155638(sprite);
+ if (v0 != 0)
+ {
+ if (((u16)(++ sprite->data[4]) & unk_085CDC6A[sprite->data[5]]) == 0)
+ {
+ sprite->pos2.y += sprite->data[3];
+ }
+ if ((sprite->data[4] & 0x0F) == 0)
+ {
+ sprite->data[3] = -sprite->data[3];
+ }
+ if (v0 != 2)
+ {
+ if (sub_815564C(sprite) == 0)
+ linkedSprite->pos2.y = sprite->pos2.y;
+ else
+ linkedSprite->pos2.y = sprite->data[1] + sprite->pos2.y;
+ sprite->pos1.x = linkedSprite->pos1.x;
+ sprite->pos1.y = linkedSprite->pos1.y + 8;
+ }
+ }
+}
+
+u8 sub_8155800(u8 oldSpriteId)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ spriteId = CreateSpriteAtEnd(&gDummySpriteTemplate, 0, 0, -1);
+ sprite = &gSprites[spriteId];
+ sprite->callback = sub_8155850;
+ sprite->invisible = TRUE;
+ sprite->data[0] = oldSpriteId;
+ sprite->data[1] = 1;
+ return spriteId;
+}
+
+void sub_8155850(struct Sprite *sprite)
+{
+ struct Sprite *oldSprite;
+
+ oldSprite = &gSprites[sprite->data[0]];
+ if (((sprite->data[2]++) & 0x03) == 0)
+ {
+ oldSprite->pos2.y += sprite->data[1];
+ }
+ if ((sprite->data[2] & 0x0F) == 0)
+ {
+ sprite->data[1] = -sprite->data[1];
+ }
+}
+
+u32 FldEff_Dust(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[9], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gFieldEffectArguments[3];
+ sprite->data[0] = gFieldEffectArguments[2];
+ sprite->data[1] = 10;
+ }
+ return 0;
+}
+
+u32 FldEff_SandPile(void)
+{
+ u8 eventObjectId;
+ struct EventObject *eventObject;
+ u8 spriteId;
+ struct Sprite *sprite;
+ const struct EventObjectGraphicsInfo *graphicsInfo;
+
+ eventObjectId = GetEventObjectIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ eventObject = &gEventObjects[eventObjectId];
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[29], 0, 0, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ graphicsInfo = GetEventObjectGraphicsInfo(eventObject->graphicsId);
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gSprites[eventObject->spriteId].oam.priority;
+ sprite->data[0] = gFieldEffectArguments[0];
+ sprite->data[1] = gFieldEffectArguments[1];
+ sprite->data[2] = gFieldEffectArguments[2];
+ sprite->data[3] = gSprites[eventObject->spriteId].pos1.x;
+ sprite->data[4] = gSprites[eventObject->spriteId].pos1.y;
+ sprite->pos2.y = (graphicsInfo->height >> 1) - 2;
+ SeekSpriteAnim(sprite, 2);
+ }
+ return 0;
+}
+
+void UpdateSandPileFieldEffect(struct Sprite *sprite)
+{
+ u8 eventObjectId;
+ s16 x;
+ s16 y;
+
+ if (TryGetEventObjectIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &eventObjectId) || !gEventObjects[eventObjectId].inSandPile)
+ {
+ FieldEffectStop(sprite, FLDEFF_SAND_PILE);
+ }
+ else
+ {
+ y = gSprites[gEventObjects[eventObjectId].spriteId].pos1.y;
+ x = gSprites[gEventObjects[eventObjectId].spriteId].pos1.x;
+ if (x != sprite->data[3] || y != sprite->data[4])
+ {
+ sprite->data[3] = x;
+ sprite->data[4] = y;
+ if (sprite->animEnded)
+ {
+ StartSpriteAnim(sprite, 0);
+ }
+ }
+ sprite->pos1.x = x;
+ sprite->pos1.y = y;
+ sprite->subpriority = gSprites[gEventObjects[eventObjectId].spriteId].subpriority;
+ UpdateEventObjectSpriteVisibility(sprite, FALSE);
+ }
+}
+
+u32 FldEff_Bubbles(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[34], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = 1;
+ }
+ return 0;
+}
+
+void UpdateBubblesFieldEffect(struct Sprite *sprite)
+{
+ sprite->data[0] += 0x80;
+ sprite->data[0] &= 0x100;
+ sprite->pos1.y -= sprite->data[0] >> 8;
+ UpdateEventObjectSpriteVisibility(sprite, FALSE);
+ if (sprite->invisible || sprite->animEnded)
+ {
+ FieldEffectStop(sprite, FLDEFF_BUBBLES);
+ }
+}
+
+u32 FldEff_BerryTreeGrowthSparkle(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 4);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[22], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gFieldEffectArguments[3];
+ sprite->oam.paletteNum = 5;
+ sprite->data[0] = FLDEFF_BERRY_TREE_GROWTH_SPARKLE;
+ }
+ return 0;
+}
+
+u32 ShowTreeDisguiseFieldEffect(void)
+{
+ return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, 24, 4);
+}
+
+
+u32 ShowMountainDisguiseFieldEffect(void)
+{
+ return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, 25, 3);
+}
+
+
+u32 ShowSandDisguiseFieldEffect(void)
+{
+ return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, 28, 2);
+}
+
+u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx, u8 paletteNum)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ if (TryGetEventObjectIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2], &spriteId))
+ {
+ FieldEffectActiveListRemove(fldEff);
+ return MAX_SPRITES;
+ }
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[templateIdx], 0, 0, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled ++;
+ sprite->oam.paletteNum = paletteNum;
+ sprite->data[1] = fldEff;
+ sprite->data[2] = gFieldEffectArguments[0];
+ sprite->data[3] = gFieldEffectArguments[1];
+ sprite->data[4] = gFieldEffectArguments[2];
+ }
+ return spriteId;
+}
+
+void UpdateDisguiseFieldEffect(struct Sprite *sprite)
+{
+ u8 eventObjectId;
+ const struct EventObjectGraphicsInfo *graphicsInfo;
+ struct Sprite *linkedSprite;
+
+ if (TryGetEventObjectIdByLocalIdAndMap(sprite->data[2], sprite->data[3], sprite->data[4], &eventObjectId))
+ {
+ FieldEffectStop(sprite, sprite->data[1]);
+ }
+
+ graphicsInfo = GetEventObjectGraphicsInfo(gEventObjects[eventObjectId].graphicsId);
+ linkedSprite = &gSprites[gEventObjects[eventObjectId].spriteId];
+ sprite->invisible = linkedSprite->invisible;
+ sprite->pos1.x = linkedSprite->pos1.x;
+ sprite->pos1.y = (graphicsInfo->height >> 1) + linkedSprite->pos1.y - 16;
+ sprite->subpriority = linkedSprite->subpriority - 1;
+ if (sprite->data[0] == 1)
+ {
+ sprite->data[0] ++;
+ StartSpriteAnim(sprite, 1);
+ }
+ if (sprite->data[0] == 2 && sprite->animEnded)
+ {
+ sprite->data[7] = 1;
+ }
+ if (sprite->data[0] == 3)
+ {
+ FieldEffectStop(sprite, sprite->data[1]);
+ }
+}
+
+void sub_8155D78(struct EventObject *eventObject)
+{
+ if (eventObject->directionSequenceIndex == 1)
+ {
+ gSprites[eventObject->fieldEffectSpriteId].data[0]++;
+ }
+}
+
+bool8 sub_8155DA0(struct EventObject *eventObject)
+{
+ struct Sprite *sprite;
+
+ if (eventObject->directionSequenceIndex == 2)
+ {
+ return TRUE;
+ }
+ if (eventObject->directionSequenceIndex == 0)
+ {
+ return TRUE;
+ }
+ sprite = &gSprites[eventObject->fieldEffectSpriteId];
+ if (sprite->data[7])
+ {
+ eventObject->directionSequenceIndex = 2;
+ sprite->data[0]++;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+u32 FldEff_Sparkle(void)
+{
+ u8 spriteId;
+
+ gFieldEffectArguments[0] += 7;
+ gFieldEffectArguments[1] += 7;
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[35], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].oam.priority = gFieldEffectArguments[2];
+ gSprites[spriteId].coordOffsetEnabled = TRUE;
+ }
+ return 0;
+}
+
+void UpdateSparkleFieldEffect(struct Sprite *sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ if (sprite->animEnded)
+ {
+ sprite->invisible = TRUE;
+ sprite->data[0]++;
+ }
+
+ if (sprite->data[0] == 0)
+ return;
+ }
+
+ if (++sprite->data[1] > 34)
+ FieldEffectStop(sprite, FLDEFF_SPARKLE);
+}
+
+void sub_8155EA0(struct Sprite *sprite)
+{
+ sprite->data[6] = 0;
+ sprite->data[7] = 0;
+}
+
+bool8 sub_8155EA8(struct Sprite *sprite)
+{
+ bool8 returnBool = FALSE;
+
+ switch (sprite->data[7])
+ {
+ case 0:
+ sprite->pos2.x += sub_809773C(sprite->data[6]);
+ sprite->pos2.y += sub_8097728(sprite->data[6]);
+ break;
+ case 1:
+ sprite->pos2.x -= sub_809773C(0x47 - sprite->data[6]);
+ sprite->pos2.y += sub_8097728(0x47 - sprite->data[6]);
+ break;
+ case 2:
+ sprite->pos2.x -= sub_809773C(sprite->data[6]);
+ sprite->pos2.y += sub_8097728(sprite->data[6]);
+ break;
+ case 3:
+ sprite->pos2.x += sub_809773C(0x47 - sprite->data[6]);
+ sprite->pos2.y += sub_8097728(0x47 - sprite->data[6]);
+ break;
+ }
+
+ SetGpuReg(REG_OFFSET_BG0HOFS, -sprite->pos2.x);
+ if (++sprite->data[6] == 72)
+ {
+ sprite->data[6] = 0;
+ sprite->data[7]++;
+ }
+ if (sprite->data[7] == 4)
+ {
+ sprite->pos2.y = 0;
+ sprite->pos2.x = 0;
+ returnBool = TRUE;
+ }
+
+ return returnBool;
+}
+
+void sub_8155F80(struct Sprite *sprite)
+{
+ u8 i, j;
+
+ switch (sprite->data[2])
+ {
+ case 0:
+ SetGpuReg(REG_OFFSET_BG0VOFS, 0x78 - (sprite->data[0] / 3));
+ if (sprite->data[0] == 0x60)
+ {
+ for (i = 0; i < 3; i++)
+ {
+ for (j = 12; j < 18; j++)
+ {
+ ((u16*)(VRAM + 0xF800))[i * 32 + j] = 0xBFF4 + i * 6 + j + 1;
+ }
+ }
+ }
+ if (sprite->data[0] > 0x137)
+ {
+ sprite->data[2] = 1;
+ sprite->data[0] = 0;
+ }
+ break;
+ case 1:
+ sprite->pos1.y = (gSineTable[sprite->data[0] / 3] >> 2) + sprite->data[4];
+ if (sprite->data[0] == 0xBD)
+ {
+ sprite->data[2] = 2;
+ sprite->data[5] = 0;
+ sprite->data[0] = 0;
+ }
+ break;
+ case 2:
+ if (sprite->data[0] == 0x3C)
+ {
+ sprite->data[5]++;
+ sprite->data[0] = 0;
+ }
+ if (sprite->data[5] == 7)
+ {
+ sprite->data[5] = 0;
+ sprite->data[2] = 3;
+ }
+ break;
+ case 3:
+ if (sprite->pos2.y == 0)
+ {
+ sprite->data[0] = 0;
+ sprite->data[2]++;
+ }
+ if (sprite->data[0] == 5)
+ {
+ sprite->data[0] = 0;
+ if (sprite->pos2.y > 0)
+ sprite->pos2.y--;
+ else
+ sprite->pos2.y++;
+ }
+ break;
+ case 4:
+ if (sprite->data[0] == 0x3C)
+ {
+ sprite->data[2] = 5;
+ sprite->data[0] = 0;
+ sprite->data[5] = 0;
+ }
+ break;
+ case 5:
+ sub_8155EA0(sprite);
+ sprite->data[2] = 6;
+ sprite->data[0] = 0;
+ break;
+ case 6:
+ if (sub_8155EA8(sprite))
+ {
+ sprite->data[0] = 0;
+ if (++sprite->data[5] <= 2)
+ {
+ sub_8155EA0(sprite);
+ }
+ else
+ {
+ sprite->data[5] = 0;
+ sprite->data[2] = 7;
+ }
+ }
+ break;
+ case 7:
+ if (sprite->data[0] == 0x1E)
+ {
+ sprite->data[2] = 8;
+ sprite->data[0] = 0;
+ }
+ break;
+ case 8:
+ for (i = 0; i < 15; i++)
+ {
+ for (j = 12; j < 18; j++)
+ {
+ ((u16*)(VRAM + 0xF800))[i * 32 + j] = 0;
+ }
+ }
+ SetGpuReg(REG_OFFSET_BG0VOFS, 0);
+ FieldEffectStop(sprite, FLDEFF_64);
+ break;
+ }
+
+ if (sprite->data[2] == 1)
+ {
+ if ((sprite->data[1] & 7) == 0)
+ sprite->pos2.y += sprite->data[3];
+ if ((sprite->data[1] & 15) == 0)
+ sprite->data[3] = -sprite->data[3];
+ sprite->data[1]++;
+ }
+
+ sprite->data[0]++;
+}
+
+void sub_8156194(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
+ {
+ FieldEffectStop(sprite, sprite->data[1]);
+ }
+ else
+ {
+ UpdateEventObjectSpriteVisibility(sprite, FALSE);
+ SetObjectSubpriorityByZCoord(sprite->data[0], sprite, 0);
+ }
+}
+
+void sub_81561D0(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
+ FieldEffectStop(sprite, sprite->data[0]);
+ else
+ UpdateEventObjectSpriteVisibility(sprite, FALSE);
+}
+
+#ifdef NONMATCHING
+void sub_81561FC(struct Sprite *sprite /*r6*/, u8 z, u8 offset)
+{
+ u8 i;
+ s16 xlo;
+ s16 xhi;
+ s16 lx;
+ s16 lyhi;
+ s16 ly;
+ s16 ylo;
+ s16 yhi;
+ struct EventObject *eventObject; // r4
+ const struct EventObjectGraphicsInfo *graphicsInfo; // destroyed
+ struct Sprite *linkedSprite; // r5
+
+ SetObjectSubpriorityByZCoord(z, sprite, offset);
+ for (i = 0; i < 16; i ++)
+ {
+ eventObject = &gEventObjects[i];
+ if (eventObject->active)
+ {
+ graphicsInfo = GetEventObjectGraphicsInfo(eventObject->graphicsId);
+ linkedSprite = &gSprites[eventObject->spriteId];
+ xhi = sprite->pos1.x + sprite->centerToCornerVecX;
+ xlo = sprite->pos1.x - sprite->centerToCornerVecX;
+ lx = linkedSprite->pos1.x;
+ if (xhi < lx && xlo > lx)
+ {
+ lyhi = linkedSprite->pos1.y + linkedSprite->centerToCornerVecY;
+ ly = linkedSprite->pos1.y;
+ ylo = sprite->pos1.y - sprite->centerToCornerVecY;
+ yhi = ylo + linkedSprite->centerToCornerVecY;
+ if ((lyhi < yhi || lyhi < ylo) && ly > yhi)
+ {
+ if (sprite->subpriority <= linkedSprite->subpriority)
+ {
+ sprite->subpriority = linkedSprite->subpriority + 2;
+ break;
+ }
+ }
+ }
+ }
+ }
+}
+#else
+NAKED void sub_81561FC(struct Sprite *sprite /*r6*/, u8 z, u8 offset)
+{
+ asm_unified("push {r4-r7,lr}\n\
+ adds r6, r0, 0\n\
+ adds r0, r1, 0\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ lsls r2, 24\n\
+ lsrs r2, 24\n\
+ adds r1, r6, 0\n\
+ bl SetObjectSubpriorityByZCoord\n\
+ movs r7, 0\n\
+_08156212:\n\
+ lsls r0, r7, 3\n\
+ adds r0, r7\n\
+ lsls r0, 2\n\
+ ldr r1, =gEventObjects\n\
+ adds r4, r0, r1\n\
+ ldrb r0, [r4]\n\
+ lsls r0, 31\n\
+ cmp r0, 0\n\
+ beq _081562B4\n\
+ ldrb r0, [r4, 0x5]\n\
+ bl GetEventObjectGraphicsInfo\n\
+ ldrb r1, [r4, 0x4]\n\
+ lsls r0, r1, 4\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ ldr r1, =gSprites\n\
+ adds r5, r0, r1\n\
+ adds r0, r6, 0\n\
+ adds r0, 0x28\n\
+ movs r2, 0\n\
+ ldrsb r2, [r0, r2]\n\
+ ldrh r0, [r6, 0x20]\n\
+ adds r1, r0, r2\n\
+ subs r0, r2\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+ lsls r1, 16\n\
+ asrs r1, 16\n\
+ movs r0, 0x20\n\
+ ldrsh r2, [r5, r0]\n\
+ cmp r1, r2\n\
+ bge _081562B4\n\
+ lsls r0, r4, 16\n\
+ asrs r0, 16\n\
+ cmp r0, r2\n\
+ ble _081562B4\n\
+ adds r0, r5, 0\n\
+ adds r0, 0x29\n\
+ movs r3, 0\n\
+ ldrsb r3, [r0, r3]\n\
+ ldrh r2, [r5, 0x22]\n\
+ adds r2, r3\n\
+ ldrh r4, [r5, 0x22]\n\
+ adds r0, r6, 0\n\
+ adds r0, 0x29\n\
+ movs r1, 0\n\
+ ldrsb r1, [r0, r1]\n\
+ ldrh r0, [r6, 0x22]\n\
+ subs r0, r1\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ adds r3, r0, r3\n\
+ lsls r2, 16\n\
+ asrs r2, 16\n\
+ lsls r3, 16\n\
+ asrs r3, 16\n\
+ cmp r2, r3\n\
+ blt _0815628C\n\
+ cmp r2, r0\n\
+ bge _081562B4\n\
+_0815628C:\n\
+ lsls r0, r4, 16\n\
+ asrs r0, 16\n\
+ cmp r0, r3\n\
+ ble _081562B4\n\
+ adds r2, r6, 0\n\
+ adds r2, 0x43\n\
+ adds r0, r5, 0\n\
+ adds r0, 0x43\n\
+ ldrb r1, [r0]\n\
+ ldrb r0, [r2]\n\
+ cmp r0, r1\n\
+ bhi _081562B4\n\
+ adds r0, r1, 0x2\n\
+ strb r0, [r2]\n\
+ b _081562BE\n\
+ .pool\n\
+_081562B4:\n\
+ adds r0, r7, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r7, r0, 24\n\
+ cmp r7, 0xF\n\
+ bls _08156212\n\
+_081562BE:\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0");
+}
+#endif
diff --git a/src/field_message_box.c b/src/field_message_box.c
index 19859ec0f..f45b6607d 100755
--- a/src/field_message_box.c
+++ b/src/field_message_box.c
@@ -131,7 +131,7 @@ void HideFieldMessageBox(void)
gUnknown_020375BC = 0;
}
-u8 textbox_any_visible(void)
+u8 GetFieldMessageBoxMode(void)
{
return gUnknown_020375BC;
}
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c
index fd315dd98..b9cf7d102 100644
--- a/src/field_player_avatar.c
+++ b/src/field_player_avatar.c
@@ -285,7 +285,7 @@ void MovementType_Player(struct Sprite *sprite)
UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, EventObjectCB2_NoMovement2);
}
-static u8 EventObjectCB2_NoMovement2()
+static u8 EventObjectCB2_NoMovement2(void)
{
return 0;
}
@@ -375,7 +375,7 @@ static void PlayerAllowForcedMovementIfMovingSameDirection(void)
gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_5;
}
-static bool8 TryDoMetatileBehaviorForcedMovement()
+static bool8 TryDoMetatileBehaviorForcedMovement(void)
{
return gUnknown_08497444[GetForcedMovementByMetatileBehavior()]();
}
diff --git a/src/field_poison.c b/src/field_poison.c
index 98819c450..6a519d90c 100644
--- a/src/field_poison.c
+++ b/src/field_poison.c
@@ -111,7 +111,7 @@ void sub_80F972C(void)
ScriptContext1_Stop();
}
-unsigned int overworld_poison(void)
+int DoPoisonFieldEffect(void)
{
int i;
unsigned int hp;
diff --git a/src/field_specials.c b/src/field_specials.c
index 113979375..fcef56f14 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -3668,7 +3668,7 @@ bool32 sub_813B374(void)
}
}
-bool32 sub_813B3B0(void)
+bool8 sub_813B3B0(void)
{
static const u8 gUnknown_085B3410[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c };
diff --git a/src/field_tasks.c b/src/field_tasks.c
index fc57585e5..5fb23f536 100644
--- a/src/field_tasks.c
+++ b/src/field_tasks.c
@@ -627,11 +627,11 @@ static void PerStepCallback_8069F64(u8 taskId)
{
if (MapGridGetMetatileIdAt(x, y) == 0x20a)
{
- ash(x, y, 0x212, 4);
+ StartAshFieldEffect(x, y, 0x212, 4);
}
else
{
- ash(x, y, 0x206, 4);
+ StartAshFieldEffect(x, y, 0x206, 4);
}
if (CheckBagHasItem(ITEM_SOOT_SACK, 1))
{
diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c
index 9de954e80..5a9181789 100644
--- a/src/fldeff_cut.c
+++ b/src/fldeff_cut.c
@@ -1,26 +1,25 @@
#include "global.h"
-#include "fldeff_cut.h"
+#include "event_obj_lock.h"
+#include "event_object_movement.h"
#include "field_camera.h"
#include "field_effect.h"
-#include "event_object_movement.h"
#include "field_player_avatar.h"
#include "fieldmap.h"
-#include "event_obj_lock.h"
+#include "fldeff_cut.h"
+#include "malloc.h"
#include "metatile_behavior.h"
-#include "party_menu.h"
#include "overworld.h"
+#include "party_menu.h"
+#include "rom6.h"
#include "script.h"
#include "sound.h"
#include "sprite.h"
#include "task.h"
#include "trig.h"
-#include "malloc.h"
+#include "constants/abilities.h"
#include "constants/event_objects.h"
#include "constants/songs.h"
-#include "constants/abilities.h"
-extern bool8 CheckObjectGraphicsInFrontOfPlayer(u8);
-extern u8 oei_task_add(void);
extern void ScriptUnfreezeEventObjects(void);
extern bool8 IsMewPlayingHideAndSeek(void);
diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c
index 14da87eb3..f592ed532 100644
--- a/src/fldeff_sweetscent.c
+++ b/src/fldeff_sweetscent.c
@@ -35,7 +35,7 @@ void hm2_sweet_scent(void)
gFieldEffectArguments[0] = GetCursorSelectionMonId();
}
-bool8 FldEff_SweetScent()
+bool8 FldEff_SweetScent(void)
{
u8 taskId;
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index 2b0904672..f2975e739 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -17,7 +17,7 @@
#include "bg.h"
#include "constants/species.h"
#include "constants/game_stat.h"
-#include "blend_palette.h"
+#include "util.h"
#include "string_util.h"
#include "m4a.h"
#include "international_string_util.h"
diff --git a/src/intro.c b/src/intro.c
index e1d61242c..fe5c012b0 100644
--- a/src/intro.c
+++ b/src/intro.c
@@ -22,7 +22,7 @@
#include "graphics.h"
#include "sound.h"
#include "constants/species.h"
-#include "blend_palette.h"
+#include "util.h"
#include "title_screen.h"
#include "constants/rgb.h"
#include "constants/battle_anim.h"
diff --git a/src/item_menu.c b/src/item_menu.c
index 0cdedec97..bb619cac8 100755
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -46,6 +46,7 @@
#include "text_window.h"
#include "menu_helpers.h"
#include "window.h"
+#include "apprentice.h"
void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)());
void CB2_Bag(void);
@@ -2203,7 +2204,7 @@ void unknown_ItemMenu_Show(u8 taskId)
void bag_menu_leave_maybe_3(void)
{
- gFieldCallback = sub_819FA50;
+ gFieldCallback = Apprentice_EnableBothScriptContexts;
SetMainCallback2(CB2_ReturnToField);
}
diff --git a/src/item_use.c b/src/item_use.c
index 601c2b81b..133dd844f 100755
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -203,7 +203,7 @@ u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId)
return 0;
}
-void sub_80FD254()
+void sub_80FD254(void)
{
struct MailStruct mail;
mail.itemId = gSpecialVar_ItemId;
@@ -249,7 +249,7 @@ void ItemUseOnFieldCB_Bike(u8 taskId)
DestroyTask(taskId);
}
-bool32 CanFish()
+bool32 CanFish(void)
{
s16 x, y;
u16 tileBehavior;
diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c
index 5a7d4ae83..dd594f075 100644
--- a/src/metatile_behavior.c
+++ b/src/metatile_behavior.c
@@ -679,7 +679,7 @@ bool8 MetatileBehavior_IsSecretBasePC(u8 metatileBehavior)
return FALSE;
}
-bool8 MetatileBehavior_IsSecretBaseRegisterPC(u8 metatileBehavior)
+bool8 MetatileBehavior_IsRecordMixingSecretBasePC(u8 metatileBehavior)
{
if (metatileBehavior == MB_SECRET_BASE_REGISTER_PC)
return TRUE;
@@ -815,7 +815,7 @@ bool8 MetatileBehavior_IsSecretBaseSandOrnament(u8 metatileBehavior)
return FALSE;
}
-bool8 MetatileBehavior_IsSecretBaseTvOrShield(u8 metatileBehavior)
+bool8 MetatileBehavior_IsSecretBaseShieldOrToyTV(u8 metatileBehavior)
{
if (metatileBehavior == MB_SECRET_BASE_TV_SHIELD)
return TRUE;
@@ -1164,7 +1164,7 @@ bool8 MetatileBehavior_IsRegionMap(u8 metatileBehavior)
return FALSE;
}
-bool8 MetatileBehavior_IsClosedSootopolisGymDoor(u8 metatileBehavior)
+bool8 MetatileBehavior_IsClosedSootopolisDoor(u8 metatileBehavior)
{
if (metatileBehavior == MB_CLOSED_SOOTOPOLIS_DOOR)
return TRUE;
@@ -1365,7 +1365,7 @@ bool8 MetatileBehavior_IsCuttableGrass(u8 metatileBehavior)
return FALSE;
}
-bool8 MetatileBehavior_IsRunningShoesInstruction(u8 metatileBehavior)
+bool8 MetatileBehavior_IsRunningShoesManual(u8 metatileBehavior)
{
if (metatileBehavior == MB_RUNNING_SHOES_INSTRUCTION)
return TRUE;
diff --git a/src/money.c b/src/money.c
index 7b78dda92..dcc6afa2c 100644
--- a/src/money.c
+++ b/src/money.c
@@ -6,10 +6,9 @@
#include "menu.h"
#include "window.h"
#include "sprite.h"
+#include "strings.h"
#include "decompress.h"
-extern const u8 gText_PokedollarVar1[];
-
extern const u8 gMenuMoneyGfx[];
extern const u8 gMenuMoneyPal[];
diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c
index 8dcb960b7..7e09a4d70 100644
--- a/src/mystery_event_menu.c
+++ b/src/mystery_event_menu.c
@@ -151,7 +151,7 @@ static void CB2_MysteryEventMenu(void)
if (!IsTextPrinterActive(0))
{
gMain.state++;
- gLinkType = 21761;
+ gLinkType = 0x5501;
OpenLink();
}
break;
diff --git a/src/new_game.c b/src/new_game.c
index 36c028ce8..127e48c35 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -25,6 +25,7 @@
#include "battle_records.h"
#include "item.h"
#include "pokedex.h"
+#include "apprentice.h"
extern u8 gDifferentSaveFile;
extern u16 gSaveFileStatus;
@@ -44,7 +45,6 @@ extern void NewGameInitPCItems(void);
extern void ClearDecorationInventories(void);
extern void ResetFanClub(void);
extern void copy_strings_to_sav1(void);
-extern void sub_819FAA0(void);
extern void sub_81A4B14(void);
extern void sub_8195E10(void);
extern void sub_801AFD8(void);
@@ -203,7 +203,7 @@ void NewGameInitData(void)
ResetMiniGamesResults();
copy_strings_to_sav1();
SetLilycoveLady();
- sub_819FAA0();
+ ResetAllApprenticeData();
sub_81A4B14();
sub_8195E10();
sub_801AFD8();
diff --git a/src/overworld.c b/src/overworld.c
index 683679218..94c3f8328 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -107,7 +107,7 @@ extern void sub_80A0A2C(void);
extern void not_trainer_hill_battle_pyramid(void);
extern void apply_map_tileset2_palette(const struct MapLayout *);
extern void copy_map_tileset2_to_vram_2(const struct MapLayout *);
-extern void prev_quest_postbuffer_cursor_backup_reset(void);
+extern void RestartWildEncounterImmunitySteps(void);
extern void ShowMapNamePopup(void);
extern bool32 InTrainerHill(void);
extern bool32 sub_808651C(void);
@@ -164,8 +164,8 @@ extern bool32 sub_8009F3C(void);
extern void sub_8010198(void);
extern u32 sub_800B4DC(void);
extern bool32 sub_80B39D4(u8);
-extern const u8* sub_809C2C8(struct MapPosition *a1, u8, u8);
-extern u8 *sub_809D0F4(void*);
+extern const u8* GetInteractedLinkPlayerScript(struct MapPosition *a1, u8, u8);
+extern u8 *GetCoordEventScriptAtMapPosition(void*);
extern u8 sub_808BD6C(u8);
extern u8 sub_808BD7C(u8);
extern void UpdateEventObjectSpriteVisibility(struct Sprite*, u8);
@@ -827,7 +827,7 @@ void mliX_load_map(u8 mapGroup, u8 mapNum)
TrySetMapSaveWarpStatus();
ClearTempFieldEventData();
ResetCyclingRoadChallengeData();
- prev_quest_postbuffer_cursor_backup_reset();
+ RestartWildEncounterImmunitySteps();
TryUpdateRandomTrainerRematches(mapGroup, mapNum);
DoTimeBasedEvents();
SetSav1WeatherFromCurrMapHeader();
@@ -876,7 +876,7 @@ static void mli0_load_map(u32 a1)
TrySetMapSaveWarpStatus();
ClearTempFieldEventData();
ResetCyclingRoadChallengeData();
- prev_quest_postbuffer_cursor_backup_reset();
+ RestartWildEncounterImmunitySteps();
TryUpdateRandomTrainerRematches(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum);
if (a1 != 1)
DoTimeBasedEvents();
@@ -2706,7 +2706,7 @@ static u8 *sub_8087370(struct UnkStruct_8054FF8 *a1)
{
if (a1->c != 2)
return 0;
- return sub_809D0F4(&a1->sub);
+ return GetCoordEventScriptAtMapPosition(&a1->sub);
}
static bool32 sub_8087388(struct UnkStruct_8054FF8 *a1)
@@ -2747,7 +2747,7 @@ static const u8 *sub_80873B4(struct UnkStruct_8054FF8 *a1)
return EventScript_TradeRoom_ReadTrainerCard2;
}
- return sub_809C2C8(&unkStruct, a1->field_C, a1->d);
+ return GetInteractedLinkPlayerScript(&unkStruct, a1->field_C, a1->d);
}
static u16 sub_8087480(const u8 *script)
diff --git a/src/palette.c b/src/palette.c
index fd4ad32ad..1e92f4bba 100644
--- a/src/palette.c
+++ b/src/palette.c
@@ -1,6 +1,6 @@
#include "global.h"
-#include "blend_palette.h"
#include "palette.h"
+#include "util.h"
#include "decompress.h"
#include "gpu_regs.h"
#include "task.h"
diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c
index 1449d4a00..10f7d34d8 100644
--- a/src/pokeblock_feed.c
+++ b/src/pokeblock_feed.c
@@ -6,7 +6,7 @@
#include "menu.h"
#include "malloc.h"
#include "pokemon.h"
-#include "blend_palette.h"
+#include "util.h"
#include "main.h"
#include "menu_helpers.h"
#include "bg.h"
diff --git a/src/pokemon.c b/src/pokemon.c
index 8e2e3b764..7227d28cb 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -35,6 +35,7 @@
#include "pokenav.h"
#include "pokemon_storage_system.h"
#include "recorded_battle.h"
+#include "apprentice.h"
struct SpeciesItem
{
@@ -69,7 +70,6 @@ extern const union AnimCmd *const *const gMonAnimationsSpriteAnimsPtrTable[];
extern const union AnimCmd *const *const gTrainerBackAnimsPtrTable[];
extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[];
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
-extern const struct UnknownPokemonStruct3 gUnknown_08610970[];
extern const struct CompressedSpritePalette gMonPaletteTable[];
extern const struct CompressedSpritePalette gMonShinyPaletteTable[];
extern const u8 gTrainerClassNames[][13];
@@ -80,7 +80,6 @@ extern u8 StorageGetCurrentBox(void);
extern void set_unknown_box_id(u8);
extern void sub_803FA70(u8 battlerId);
extern u8 sav1_map_get_name(void);
-extern const u8 *sub_81A1650(u8, u8 language);
extern u8 GetFrontierEnemyMonLevel(u8);
extern bool8 InBattlePyramid(void);
extern bool8 InBattlePike(void);
@@ -2873,27 +2872,27 @@ void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lv
CalculateMonStats(mon);
}
-void sub_8068528(struct Pokemon *mon, const struct UnknownPokemonStruct2 *src, u8 monId)
+void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 monId)
{
s32 i;
u16 evAmount;
u8 language;
- u32 otId = gUnknown_08610970[src->field_0_0].field_30;
- u32 personality = ((gUnknown_08610970[src->field_0_0].field_30 >> 8) | ((gUnknown_08610970[src->field_0_0].field_30 & 0xFF) << 8))
- + src->mons[monId].species + src->field_2;
+ u32 otId = gApprentices[src->id].otId;
+ u32 personality = ((gApprentices[src->id].otId >> 8) | ((gApprentices[src->id].otId & 0xFF) << 8))
+ + src->monData[monId].species + src->number;
CreateMon(mon,
- src->mons[monId].species,
- GetFrontierEnemyMonLevel(src->field_0_1 - 1),
+ src->monData[monId].species,
+ GetFrontierEnemyMonLevel(src->lvlMode - 1),
0x1F,
TRUE,
personality,
TRUE,
otId);
- SetMonData(mon, MON_DATA_HELD_ITEM, &src->mons[monId].item);
+ SetMonData(mon, MON_DATA_HELD_ITEM, &src->monData[monId].item);
for (i = 0; i < 4; i++)
- SetMonMoveSlot(mon, src->mons[monId].moves[i], i);
+ SetMonMoveSlot(mon, src->monData[monId].moves[i], i);
evAmount = MAX_TOTAL_EVS / NUM_STATS;
for (i = 0; i < NUM_STATS; i++)
@@ -2901,7 +2900,7 @@ void sub_8068528(struct Pokemon *mon, const struct UnknownPokemonStruct2 *src, u
language = src->language;
SetMonData(mon, MON_DATA_LANGUAGE, &language);
- SetMonData(mon, MON_DATA_OT_NAME, sub_81A1650(src->field_0_0, language));
+ SetMonData(mon, MON_DATA_OT_NAME, GetApprenticeNameInLanguage(src->id, language));
CalculateMonStats(mon);
}
@@ -3252,7 +3251,7 @@ u8 GetLevelFromMonExp(struct Pokemon *mon)
u32 exp = GetMonData(mon, MON_DATA_EXP, NULL);
s32 level = 1;
- while (level <= MAX_MON_LEVEL && gExperienceTables[gBaseStats[species].growthRate][level] <= exp)
+ while (level <= MAX_LEVEL && gExperienceTables[gBaseStats[species].growthRate][level] <= exp)
level++;
return level - 1;
@@ -3264,7 +3263,7 @@ u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon)
u32 exp = GetBoxMonData(boxMon, MON_DATA_EXP, NULL);
s32 level = 1;
- while (level <= MAX_MON_LEVEL && gExperienceTables[gBaseStats[species].growthRate][level] <= exp)
+ while (level <= MAX_LEVEL && gExperienceTables[gBaseStats[species].growthRate][level] <= exp)
level++;
return level - 1;
@@ -5146,7 +5145,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
retVal = FALSE;
}
if ((itemEffect[cmdIndex] & 0x40) // raise level
- && GetMonData(mon, MON_DATA_LEVEL, NULL) != MAX_MON_LEVEL)
+ && GetMonData(mon, MON_DATA_LEVEL, NULL) != MAX_LEVEL)
{
dataUnsigned = gExperienceTables[gBaseStats[GetMonData(mon, MON_DATA_SPECIES, NULL)].growthRate][GetMonData(mon, MON_DATA_LEVEL, NULL) + 1];
SetMonData(mon, MON_DATA_EXP, &dataUnsigned);
@@ -6431,12 +6430,12 @@ bool8 TryIncrementMonLevel(struct Pokemon *mon)
u16 species = GetMonData(mon, MON_DATA_SPECIES, 0);
u8 nextLevel = GetMonData(mon, MON_DATA_LEVEL, 0) + 1;
u32 expPoints = GetMonData(mon, MON_DATA_EXP, 0);
- if (expPoints > gExperienceTables[gBaseStats[species].growthRate][MAX_MON_LEVEL])
+ if (expPoints > gExperienceTables[gBaseStats[species].growthRate][MAX_LEVEL])
{
- expPoints = gExperienceTables[gBaseStats[species].growthRate][MAX_MON_LEVEL];
+ expPoints = gExperienceTables[gBaseStats[species].growthRate][MAX_LEVEL];
SetMonData(mon, MON_DATA_EXP, &expPoints);
}
- if (nextLevel > MAX_MON_LEVEL || expPoints < gExperienceTables[gBaseStats[species].growthRate][nextLevel])
+ if (nextLevel > MAX_LEVEL || expPoints < gExperienceTables[gBaseStats[species].growthRate][nextLevel])
{
return FALSE;
}
diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c
index e75f2eeba..6734fce06 100644
--- a/src/pokemon_animation.c
+++ b/src/pokemon_animation.c
@@ -4,7 +4,7 @@
#include "pokemon_animation.h"
#include "trig.h"
#include "task.h"
-#include "blend_palette.h"
+#include "util.h"
#include "constants/rgb.h"
struct UnkAnimStruct
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index df596749e..db2a07909 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -2533,7 +2533,7 @@ static void DrawExperienceProgressBar(struct Pokemon *unused)
u16 *r9;
u8 i;
- if (summary->level < MAX_MON_LEVEL)
+ if (summary->level < MAX_LEVEL)
{
u32 expBetweenLevels = gExperienceTables[gBaseStats[summary->species].growthRate][summary->level + 1] - gExperienceTables[gBaseStats[summary->species].growthRate][summary->level];
u32 expSinceLastLevel = summary->exp - gExperienceTables[gBaseStats[summary->species].growthRate][summary->level];
@@ -3349,7 +3349,7 @@ static void PrintExpPointsNextLevel(void)
offset = GetStringRightAlignXOffset(1, gStringVar1, 42) + 2;
SummaryScreen_PrintTextOnWindow(windowId, gStringVar1, offset, 1, 0, 0);
- if (sum->level < MAX_MON_LEVEL)
+ if (sum->level < MAX_LEVEL)
expToNextLevel = gExperienceTables[gBaseStats[sum->species].growthRate][sum->level + 1] - sum->exp;
else
expToNextLevel = 0;
diff --git a/src/record_mixing.c b/src/record_mixing.c
index 6c6f69fa8..4c3c3d03c 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -83,7 +83,7 @@ struct PlayerRecordsEmerald
/* 0x1124 */ struct EmeraldBattleTowerRecord battleTowerRecord;
/* 0x1210 */ u16 unk_1210;
/* 0x1214 */ LilycoveLady lilycoveLady;
- /* 0x1254 */ struct UnkRecordMixingStruct unk_1254[2];
+ /* 0x1254 */ struct Apprentice apprentice[2];
/* 0x12dc */ struct UnkRecordMixingStruct2 unk_12dc;
/* 0x1434 */ u8 field_1434[0x10];
}; // 0x1444
@@ -134,8 +134,8 @@ static void sub_80E7B2C(const u8 *);
static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *, size_t, u8, TVShow *);
static void sub_80E7F68(u16 *item, u8 which);
static void sub_80E7FF8(u8 taskId);
-static void sub_80E8110(struct UnkRecordMixingStruct *arg0, struct UnkRecordMixingStruct *arg1);
-static void sub_80E8468(struct UnkRecordMixingStruct *arg0, size_t arg1, u32 arg2);
+static void sub_80E8110(struct Apprentice *arg0, struct Apprentice *arg1);
+static void ReceiveApprenticeData(struct Apprentice *arg0, size_t arg1, u32 arg2);
static void sub_80E89AC(struct UnkRecordMixingStruct2 *arg0, size_t arg1, u32 arg2);
static void sub_80E89F8(struct RecordMixingDayCareMail *dst);
static void SanitizeDayCareMailForRuby(struct RecordMixingDayCareMail *src);
@@ -199,7 +199,7 @@ static void SetSrcLookupPointers(void)
gUnknown_03001148 = &gUnknown_02039F9C;
sBattleTowerSave = &gSaveBlock2Ptr->frontier.battleTower;
sLilycoveLadySave = &gSaveBlock1Ptr->lilycoveLady;
- gUnknown_03001154 = gSaveBlock2Ptr->field_DC;
+ gUnknown_03001154 = gSaveBlock2Ptr->apprentices;
sBattleTowerSave_Duplicate = &gSaveBlock2Ptr->frontier.battleTower;
}
@@ -265,7 +265,7 @@ static void PrepareExchangePacket(void)
if (GetMultiplayerId() == 0)
sSentRecord->emerald.unk_1210 = GetRecordMixingGift();
- sub_80E8110(sSentRecord->emerald.unk_1254, gUnknown_03001154);
+ sub_80E8110(sSentRecord->emerald.apprentice, gUnknown_03001154);
sub_80E8260(&sSentRecord->emerald.unk_12dc);
}
}
@@ -298,7 +298,7 @@ static void ReceiveExchangePacket(u32 which)
ReceiveBattleTowerData(&sReceivedRecords->emerald.battleTowerRecord, sizeof(struct PlayerRecordsEmerald), which);
sub_80E7F68(&sReceivedRecords->emerald.unk_1210, which);
ReceiveLilycoveLadyData(&sReceivedRecords->emerald.lilycoveLady, sizeof(struct PlayerRecordsEmerald), which);
- sub_80E8468(sReceivedRecords->emerald.unk_1254, sizeof(struct PlayerRecordsEmerald), (u8) which);
+ ReceiveApprenticeData(sReceivedRecords->emerald.apprentice, sizeof(struct PlayerRecordsEmerald), (u8) which);
sub_80E89AC(&sReceivedRecords->emerald.unk_12dc, sizeof(struct PlayerRecordsEmerald), (u8) which);
}
}
@@ -1551,13 +1551,13 @@ static void sub_80E7FF8(u8 taskId)
// New Emerald functions
-static void sub_80E8110(struct UnkRecordMixingStruct *dst, struct UnkRecordMixingStruct *src)
+static void sub_80E8110(struct Apprentice *dst, struct Apprentice *src)
{
s32 i, id;
s32 var_2C, var_28, var_24, r8;
- dst[0].field_38[0] = 0xFF;
- dst[1].field_38[0] = 0xFF;
+ dst[0].playerName[0] = EOS;
+ dst[1].playerName[0] = EOS;
dst[0] = src[0];
@@ -1567,8 +1567,8 @@ static void sub_80E8110(struct UnkRecordMixingStruct *dst, struct UnkRecordMixin
r8 = 0;
for (i = 0; i < 2; i++)
{
- id = ((i + gSaveBlock2Ptr->field_B2_1) % 3) + 1;
- if (src[id].field_38[0] != 0xFF)
+ id = ((i + gSaveBlock2Ptr->playerApprentice.field_B2_1) % 3) + 1;
+ if (src[id].playerName[0] != EOS)
{
if (ReadUnalignedWord(src[id].playerId) != ReadUnalignedWord(gSaveBlock2Ptr->playerTrainerId))
{
@@ -1597,11 +1597,11 @@ static void sub_80E8110(struct UnkRecordMixingStruct *dst, struct UnkRecordMixin
case 2:
if (Random2() > 0x3333)
{
- dst[1] = src[gSaveBlock2Ptr->field_B2_1 + 1];
+ dst[1] = src[gSaveBlock2Ptr->playerApprentice.field_B2_1 + 1];
}
else
{
- dst[1] = src[((gSaveBlock2Ptr->field_B2_1 + 1) % 3 + 1)];
+ dst[1] = src[((gSaveBlock2Ptr->playerApprentice.field_B2_1 + 1) % 3 + 1)];
}
break;
}
@@ -1646,14 +1646,14 @@ void sub_80E8260(struct UnkRecordMixingStruct2 *dst)
}
}
-static bool32 sub_80E841C(struct UnkRecordMixingStruct *arg0, struct UnkRecordMixingStruct *arg1)
+static bool32 sub_80E841C(struct Apprentice *arg0, struct Apprentice *arg1)
{
s32 i;
for (i = 0; i < 4; i++)
{
if (ReadUnalignedWord(arg0->playerId) == ReadUnalignedWord(arg1[i].playerId)
- && arg0->field_0[2] == arg1[i].field_0[2])
+ && arg0->number == arg1[i].number)
{
return TRUE;
}
@@ -1662,10 +1662,10 @@ static bool32 sub_80E841C(struct UnkRecordMixingStruct *arg0, struct UnkRecordMi
return FALSE;
}
-static void sub_80E8468(struct UnkRecordMixingStruct *arg0, size_t arg1, u32 arg2)
+static void ReceiveApprenticeData(struct Apprentice *arg0, size_t arg1, u32 arg2)
{
s32 i, r7, r8;
- struct UnkRecordMixingStruct *structPtr;
+ struct Apprentice *structPtr;
u32 mixIndices[4];
u32 structId;
@@ -1675,7 +1675,7 @@ static void sub_80E8468(struct UnkRecordMixingStruct *arg0, size_t arg1, u32 arg
r8 = 0;
for (i = 0; i < 2; i++)
{
- if (structPtr[i].field_38[0] != 0xFF && !sub_80E841C(&structPtr[i], gSaveBlock2Ptr->field_DC))
+ if (structPtr[i].playerName[0] != EOS && !sub_80E841C(&structPtr[i], &gSaveBlock2Ptr->apprentices[0]))
{
r7++;
r8 = i;
@@ -1685,17 +1685,17 @@ static void sub_80E8468(struct UnkRecordMixingStruct *arg0, size_t arg1, u32 arg
switch (r7)
{
case 1:
- structId = gSaveBlock2Ptr->field_B2_1 + 1;
- gSaveBlock2Ptr->field_DC[structId] = structPtr[r8];
- gSaveBlock2Ptr->field_B2_1 = (gSaveBlock2Ptr->field_B2_1 + 1) % 3;
+ structId = gSaveBlock2Ptr->playerApprentice.field_B2_1 + 1;
+ gSaveBlock2Ptr->apprentices[structId] = structPtr[r8];
+ gSaveBlock2Ptr->playerApprentice.field_B2_1 = (gSaveBlock2Ptr->playerApprentice.field_B2_1 + 1) % 3;
break;
case 2:
for (i = 0; i < 2; i++)
{
- structId = ((i ^ 1) + gSaveBlock2Ptr->field_B2_1) % 3 + 1;
- gSaveBlock2Ptr->field_DC[structId] = structPtr[i];
+ structId = ((i ^ 1) + gSaveBlock2Ptr->playerApprentice.field_B2_1) % 3 + 1;
+ gSaveBlock2Ptr->apprentices[structId] = structPtr[i];
}
- gSaveBlock2Ptr->field_B2_1 = (gSaveBlock2Ptr->field_B2_1 + 2) % 3;
+ gSaveBlock2Ptr->playerApprentice.field_B2_1 = (gSaveBlock2Ptr->playerApprentice.field_B2_1 + 2) % 3;
break;
}
}
diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c
index 56c31f89f..bf16a20fc 100644
--- a/src/rom_8011DC0.c
+++ b/src/rom_8011DC0.c
@@ -1609,7 +1609,7 @@ void sub_80141A4(void)
break;
case 1:
if (!FuncIsActiveTask(sub_80140E0))
- sub_80C4E74(GetMultiplayerId() ^ 1, CB2_ReturnToField);
+ TrainerCard_ShowLinkCard(GetMultiplayerId() ^ 1, CB2_ReturnToField);
break;
}
@@ -1646,7 +1646,7 @@ void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4)
VarSet(VAR_0x4087, arg4);
gFieldLinkPlayerCount = GetLinkPlayerCount();
gUnknown_03005DB4 = GetMultiplayerId();
- sub_809D2BC();
+ SetCableClubWarp();
Overworld_SetWarpDestination(mapGroup, mapNum, -1, x, y);
WarpIntoMap();
}
@@ -1675,7 +1675,7 @@ void sub_80143E4(void *arg0, bool32 arg1)
{
u16 *argAsU16Ptr = arg0;
- sub_80C30A4(argAsU16Ptr);
+ TrainerCard_GenerateCardForPlayer((struct TrainerCard *)argAsU16Ptr);
if (arg1)
argAsU16Ptr[48] = sub_801B39C();
else
diff --git a/src/scrcmd.c b/src/scrcmd.c
index acaf78576..fa3e21996 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -52,7 +52,7 @@
typedef u16 (*SpecialFunc)(void);
typedef void (*NativeFunc)(void);
-extern u32 gUnknown_020375C0;
+extern const u8 *gUnknown_020375C0;
static EWRAM_DATA u32 gUnknown_020375C4 = 0;
static EWRAM_DATA u16 sPauseCounter = 0;
@@ -284,7 +284,7 @@ bool8 ScrCmd_callstd_if(struct ScriptContext *ctx)
bool8 ScrCmd_gotoram(struct ScriptContext *ctx)
{
- ScriptJump(ctx, (const u8 *)gUnknown_020375C0);
+ ScriptJump(ctx, gUnknown_020375C0);
return FALSE;
}
@@ -2223,7 +2223,7 @@ bool8 ScrCmd_cmdCF(struct ScriptContext *ctx)
if (v1)
{
- ((u8*)gUnknown_020375C0) = ctx->scriptPtr;
+ gUnknown_020375C0 = ctx->scriptPtr;
ScriptJump(ctx, v1);
}
return FALSE;
diff --git a/src/script.c b/src/script.c
index 8c868128b..c61ae7183 100644
--- a/src/script.c
+++ b/src/script.c
@@ -5,7 +5,7 @@
#define RAM_SCRIPT_MAGIC 51
-extern u8* gUnknown_020375C0;
+extern const u8* gUnknown_020375C0;
extern bool32 sub_801B27C(void);
@@ -344,7 +344,7 @@ void ClearRamScript(void)
CpuFill32(0, &gSaveBlock1Ptr->ramScript, sizeof(struct RamScript));
}
-bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId)
+bool8 InitRamScript(const u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId)
{
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
@@ -362,7 +362,7 @@ bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objec
return TRUE;
}
-u8 *GetRamScript(u8 objectId, u8 *script)
+const u8 *GetRamScript(u8 objectId, const u8 *script)
{
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
gUnknown_020375C0 = NULL;
diff --git a/src/secret_base.c b/src/secret_base.c
index 441bdef04..a684f3982 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -596,13 +596,13 @@ void sub_80E95D4(void)
VarSet(VAR_OBJ_GFX_ID_F, gUnknown_0858D060[sub_80EA20C(VarGet(VAR_0x4054))]);
}
-void sub_80E9608(struct Coords16 *coords, struct MapEvents *events)
+void sub_80E9608(const struct MapPosition *position, const struct MapEvents *events)
{
s16 bgEventIdx;
for (bgEventIdx = 0; bgEventIdx < events->bgEventCount; bgEventIdx ++)
{
- if (events->bgEvents[bgEventIdx].kind == BG_EVENT_SECRET_BASE && coords->x == events->bgEvents[bgEventIdx].x + 7 && coords->y == events->bgEvents[bgEventIdx].y + 7)
+ if (events->bgEvents[bgEventIdx].kind == BG_EVENT_SECRET_BASE && position->x == events->bgEvents[bgEventIdx].x + 7 && position->y == events->bgEvents[bgEventIdx].y + 7)
{
sCurSecretBaseId = events->bgEvents[bgEventIdx].bgUnion.secretBaseId;
break;
@@ -610,9 +610,9 @@ void sub_80E9608(struct Coords16 *coords, struct MapEvents *events)
}
}
-void sub_80E9668(struct Coords16 *coords, struct MapEvents *events)
+void sub_80E9668(const struct MapPosition *position, const struct MapEvents *events)
{
- sub_80E9608(coords, events);
+ sub_80E9608(position, events);
sub_80E8B6C();
ScriptContext1_SetupScript(EventScript_275BB7);
}
diff --git a/src/shop.c b/src/shop.c
new file mode 100755
index 000000000..26151171a
--- /dev/null
+++ b/src/shop.c
@@ -0,0 +1,679 @@
+#include "global.h"
+#include "bg.h"
+#include "decompress.h"
+#include "decoration.h"
+#include "field_player_avatar.h"
+#include "field_screen.h"
+#include "field_weather.h"
+#include "fieldmap.h"
+#include "gpu_regs.h"
+#include "international_string_util.h"
+#include "item.h"
+#include "item_icon.h"
+#include "list_menu.h"
+#include "main.h"
+#include "malloc.h"
+#include "menu.h"
+#include "menu_helpers.h"
+#include "money.h"
+#include "overworld.h"
+#include "palette.h"
+#include "scanline_effect.h"
+#include "script.h"
+#include "shop.h"
+#include "sound.h"
+#include "sprite.h"
+#include "string_util.h"
+#include "strings.h"
+#include "text_window.h"
+#include "tv.h"
+#include "constants/rgb.h"
+#include "constants/songs.h"
+
+extern struct ShopData *gShopDataPtr;
+extern struct ListMenuItem *gUnknown_02039F74;
+extern u8 (*gUnknown_02039F78)[16];
+extern struct MartInfo gMartInfo;
+
+extern const struct WindowTemplate gUnknown_08589A38[2];
+extern const struct MenuAction gUnknown_08589A10[3];
+extern const struct MenuAction gUnknown_08589A28[2];
+extern const struct ListMenuTemplate gUnknown_08589A48;
+extern const struct BgTemplate gUnknown_08589A60[4];
+extern const u8 gBuyMenuFrame_Gfx[];
+extern const u8 gBuyMenuFrame_Tilemap[];
+extern const u16 gMenuMoneyPal[];
+extern const struct WindowTemplate gUnknown_08589A70[];
+extern u8 gUnknown_08589AB0[][3];
+
+static void Task_ShopMenu(u8 taskId);
+void HandleShopMenuQuit(u8 taskId);
+void CB2_InitBuyMenu(void);
+static void Task_GoToBuyOrSellMenu(u8 taskId);
+void CB2_GoToSellMenu(void);
+void MapPostLoadHook_ExitBuyOrSellMenu(void);
+void Task_ExitSellMenu(u8 taskId);
+void ReturnToShopMenuAfterExitingSellMenu(u8 taskId);
+void BuyMenuDrawGraphics(void);
+void BuyMenuAddScrollIndicatorArrows(void);
+void Task_BuyMenu(u8 taskId);
+void BuyMenuBuildListMenuTemplate(void);
+void BuyMenuInitBgs(void);
+void BuyMenuInitWindows(void);
+void BuyMenuDecompressBgGraphics(void);
+void BuyMenuSetListEntry(struct ListMenuItem*, u16, u8*);
+void BuyMenuAddItemIcon(u16, u8);
+void BuyMenuRemoveItemIcon(u16, u8);
+void BuyMenuPrint(u8 windowId, const u8 *text, u8 x, u8 y, s8 speed, u8 colorSet);
+void BuyMenuDrawMapGraphics(void);
+void BuyMenuCopyMenuBgToBg1TilemapBuffer(void);
+void BuyMenuCollectEventObjectData(void);
+void BuyMenuDrawEventObjects(void);
+void BuyMenuDrawMapBg(void);
+bool8 BuyMenuCheckForOverlapWithMenuBg(u16, u16);
+void BuyMenuDrawMapMetatile(s16, s16, u16*, u8);
+
+
+/*static*/ u8 CreateShopMenu(u8 martType)
+{
+ int numMenuItems;
+
+ ScriptContext2_Enable();
+ gMartInfo.martType = martType;
+
+ if (martType == MART_TYPE_0)
+ {
+ struct WindowTemplate winTemplate;
+ winTemplate = gUnknown_08589A38[0];
+ winTemplate.width = GetMaxWidthInMenuTable(gUnknown_08589A10, ARRAY_COUNT(gUnknown_08589A10));
+ gMartInfo.windowId = AddWindow(&winTemplate);
+ gMartInfo.menuActions = gUnknown_08589A10;
+ numMenuItems = ARRAY_COUNT(gUnknown_08589A10);
+ }
+ else
+ {
+ struct WindowTemplate winTemplate;
+ winTemplate = gUnknown_08589A38[1];
+ winTemplate.width = GetMaxWidthInMenuTable(gUnknown_08589A28, ARRAY_COUNT(gUnknown_08589A28));
+ gMartInfo.windowId = AddWindow(&winTemplate);
+ gMartInfo.menuActions = gUnknown_08589A28;
+ numMenuItems = ARRAY_COUNT(gUnknown_08589A28);
+ }
+
+ SetStandardWindowBorderStyle(gMartInfo.windowId, 0);
+ PrintMenuTable(gMartInfo.windowId, numMenuItems, gMartInfo.menuActions);
+ InitMenuInUpperLeftCornerPlaySoundWhenAPressed(gMartInfo.windowId, numMenuItems, 0);
+ PutWindowTilemap(gMartInfo.windowId);
+ CopyWindowToVram(gMartInfo.windowId, 1);
+
+ return CreateTask(Task_ShopMenu, 8);
+}
+
+/*static*/ void SetShopMenuCallback(void (* callback)(void))
+{
+ gMartInfo.callback = callback;
+}
+
+/*static*/ void SetShopItemsForSale(const u16 *items)
+{
+ u16 i = 0;
+
+ gMartInfo.itemList = items;
+ gMartInfo.itemCount = 0;
+
+ while (gMartInfo.itemList[i])
+ {
+ gMartInfo.itemCount++;
+ i++;
+ }
+}
+
+static void Task_ShopMenu(u8 taskId)
+{
+ s8 inputCode = Menu_ProcessInputNoWrapAround();
+ switch (inputCode)
+ {
+ case -2:
+ break;
+ case -1:
+ PlaySE(SE_SELECT);
+ HandleShopMenuQuit(taskId);
+ break;
+ default:
+ gMartInfo.menuActions[inputCode].func.void_u8(taskId);
+ break;
+ }
+}
+
+void HandleShopMenuBuy(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+ taskData[8] = (u32)CB2_InitBuyMenu >> 16;
+ taskData[9] = (u32)CB2_InitBuyMenu;
+ gTasks[taskId].func = Task_GoToBuyOrSellMenu;
+ FadeScreen(1, 0);
+}
+
+void HandleShopMenuSell(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+ taskData[8] = (u32)CB2_GoToSellMenu >> 16;
+ taskData[9] = (u32)CB2_GoToSellMenu;
+ gTasks[taskId].func = Task_GoToBuyOrSellMenu;
+ FadeScreen(1, 0);
+}
+
+void CB2_ExitSellMenu(void)
+{
+ gFieldCallback = MapPostLoadHook_ExitBuyOrSellMenu;
+ SetMainCallback2(CB2_ReturnToField);
+}
+
+/*static*/ void HandleShopMenuQuit(u8 taskId)
+{
+ sub_8198070(gMartInfo.windowId, 2);
+ RemoveWindow(gMartInfo.windowId);
+ SaveRecordedItemPurchasesForTVShow();
+ ScriptContext2_Disable();
+ DestroyTask(taskId);
+
+ if (gMartInfo.callback)
+ gMartInfo.callback();
+}
+
+static void Task_GoToBuyOrSellMenu(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+ if (!gPaletteFade.active)
+ {
+ DestroyTask(taskId);
+ SetMainCallback2((void *)((u16)taskData[8] << 16 | (u16)taskData[9]));
+ }
+}
+
+void MapPostLoadHook_ExitBuyOrSellMenu(void)
+{
+ pal_fill_black();
+ CreateTask(Task_ExitSellMenu, 8);
+}
+
+void Task_ExitSellMenu(u8 taskId)
+{
+ if (IsWeatherNotFadingIn() == TRUE)
+ {
+ if (gMartInfo.martType == MART_TYPE_2)
+ DisplayItemMessageOnField(taskId, gText_CanIHelpWithAnythingElse, ReturnToShopMenuAfterExitingSellMenu);
+ else
+ DisplayItemMessageOnField(taskId, gText_AnythingElseICanHelp, ReturnToShopMenuAfterExitingSellMenu);
+ }
+}
+
+void ReturnToShopMenuAfterExitingSellMenu(u8 taskId)
+{
+ CreateShopMenu(gMartInfo.martType);
+ DestroyTask(taskId);
+}
+
+void CB2_BuyMenu(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ do_scheduled_bg_tilemap_copies_to_vram();
+ UpdatePaletteFade();
+}
+
+void VBlankCB_BuyMenu(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+void CB2_InitBuyMenu(void)
+{
+ u8 taskId;
+
+ switch (gMain.state)
+ {
+ case 0:
+ SetVBlankHBlankCallbacksToNull();
+ CpuFastFill(0, (void *)OAM, 0x400);
+ ScanlineEffect_Stop();
+ reset_temp_tile_data_buffers();
+ FreeAllSpritePalettes();
+ ResetPaletteFade();
+ ResetSpriteData();
+ ResetTasks();
+ clear_scheduled_bg_copies_to_vram();
+ gShopDataPtr = AllocZeroed(sizeof(struct ShopData));
+ gShopDataPtr->scrollIndicatorsTaskId = 0xFF;
+ gShopDataPtr->unk200D[0] = -1;
+ gShopDataPtr->unk200D[1] = -1;
+ BuyMenuBuildListMenuTemplate();
+ BuyMenuInitBgs();
+ FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20);
+ FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 0x20, 0x20);
+ FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 0x20, 0x20);
+ FillBgTilemapBufferRect_Palette0(3, 0, 0, 0, 0x20, 0x20);
+ BuyMenuInitWindows();
+ BuyMenuDecompressBgGraphics();
+ gMain.state++;
+ break;
+ case 1:
+ if (!free_temp_tile_data_buffers_if_possible())
+ gMain.state++;
+ break;
+ default:
+ BuyMenuDrawGraphics();
+ BuyMenuAddScrollIndicatorArrows();
+ taskId = CreateTask(Task_BuyMenu, 8);
+ gTasks[taskId].data[7] = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
+ BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
+ SetVBlankCallback(VBlankCB_BuyMenu);
+ SetMainCallback2(CB2_BuyMenu);
+ break;
+ }
+}
+
+void BuyMenuFreeMemory(void)
+{
+ Free(gShopDataPtr);
+ Free(gUnknown_02039F74);
+ Free(gUnknown_02039F78);
+ FreeAllWindowBuffers();
+}
+
+void BuyMenuBuildListMenuTemplate(void)
+{
+ u16 i;
+ u16 itemCount;
+
+ gUnknown_02039F74 = Alloc((gMartInfo.itemCount + 1) * sizeof(*gUnknown_02039F74));
+ gUnknown_02039F78 = Alloc((gMartInfo.itemCount + 1) * sizeof(*gUnknown_02039F78));
+ for (i = 0; i < gMartInfo.itemCount; i++)
+ BuyMenuSetListEntry(&gUnknown_02039F74[i], gMartInfo.itemList[i], gUnknown_02039F78[i]);
+
+ StringCopy(gUnknown_02039F78[i], gText_Cancel2);
+ gUnknown_02039F74[i].name = gUnknown_02039F78[i];
+ gUnknown_02039F74[i].id = -2;
+
+ gMultiuseListMenuTemplate = gUnknown_08589A48;
+ gMultiuseListMenuTemplate.items = gUnknown_02039F74;
+ gMultiuseListMenuTemplate.totalItems = gMartInfo.itemCount + 1;
+ if (gMultiuseListMenuTemplate.totalItems > 8)
+ gMultiuseListMenuTemplate.maxShowed = 8;
+ else
+ gMultiuseListMenuTemplate.maxShowed = gMultiuseListMenuTemplate.totalItems;
+
+ gShopDataPtr->unk2004 = gMultiuseListMenuTemplate.maxShowed;
+}
+
+void BuyMenuSetListEntry(struct ListMenuItem *menuItem, u16 item, u8 *name)
+{
+ if (gMartInfo.martType == MART_TYPE_0)
+ CopyItemName(item, name);
+ else
+ StringCopy(name, gDecorations[item].name);
+
+ menuItem->name = name;
+ menuItem->id = item;
+}
+
+void BuyMenuPrintItemDescriptionAndShowItemIcon(int item, bool8 onInit, struct ListMenu *list)
+{
+ const u8 *description;
+ if (onInit != TRUE)
+ PlaySE(SE_SELECT);
+
+ if (item != -2)
+ BuyMenuAddItemIcon(item, gShopDataPtr->unk200C);
+ else
+ BuyMenuAddItemIcon(-1, gShopDataPtr->unk200C);
+
+ BuyMenuRemoveItemIcon(item, gShopDataPtr->unk200C ^ 1);
+ gShopDataPtr->unk200C ^= 1;
+ if (item != -2)
+ {
+ if (gMartInfo.martType == MART_TYPE_0)
+ description = ItemId_GetDescription(item);
+ else
+ description = gDecorations[item].description;
+ }
+ else
+ {
+ description = gText_QuitShopping;
+ }
+
+ FillWindowPixelBuffer(2, 0);
+ BuyMenuPrint(2, description, 3, 1, 0, 0);
+}
+
+void BuyMenuPrintPriceInList(u8 windowId, int item, u8 y)
+{
+ u8 x;
+
+ if (item != -2)
+ {
+ if (gMartInfo.martType == MART_TYPE_0)
+ {
+ ConvertIntToDecimalStringN(
+ gStringVar1,
+ ItemId_GetPrice(item) >> GetPriceReduction(1),
+ STR_CONV_MODE_LEFT_ALIGN,
+ 5);
+ }
+ else
+ {
+ ConvertIntToDecimalStringN(
+ gStringVar1,
+ gDecorations[item].price,
+ STR_CONV_MODE_LEFT_ALIGN,
+ 5);
+ }
+
+ StringExpandPlaceholders(gStringVar4, gText_PokedollarVar1);
+ x = GetStringRightAlignXOffset(7, gStringVar4, 0x78);
+ AddTextPrinterParameterized4(windowId, 7, x, y, 0, 0, gUnknown_08589AB0[1], -1, gStringVar4);
+ }
+}
+
+void BuyMenuAddScrollIndicatorArrows(void)
+{
+ if (gShopDataPtr->scrollIndicatorsTaskId == 0xFF && gMartInfo.itemCount + 1 > 8)
+ {
+ gShopDataPtr->scrollIndicatorsTaskId = AddScrollIndicatorArrowPairParameterized(
+ SCROLL_ARROW_UP,
+ 0xAC,
+ 0xC,
+ 0x94,
+ gMartInfo.itemCount - 7,
+ 0x834,
+ 0x834,
+ &gShopDataPtr->unk2008);
+ }
+}
+
+void BuyMenuRemoveScrollIndicatorArrows(void)
+{
+ if (gShopDataPtr->scrollIndicatorsTaskId != 0xFF)
+ {
+ RemoveScrollIndicatorArrowPair(gShopDataPtr->scrollIndicatorsTaskId);
+ gShopDataPtr->scrollIndicatorsTaskId = 0xFF;
+ }
+}
+
+void BuyMenuPrintCursor(u8 scrollIndicatorsTaskId, u8 colorSet)
+{
+ u8 y = ListMenuGetYCoordForPrintingArrowCursor(scrollIndicatorsTaskId);
+ BuyMenuPrint(1, gText_SelectorArrow2, 0, y, 0, colorSet);
+}
+
+void BuyMenuAddItemIcon(u16 item, u8 iconSlot)
+{
+ u8 spriteId;
+ u8 *spriteIdPtr = &gShopDataPtr->unk200D[iconSlot];
+ if (*spriteIdPtr != 0xFF)
+ return;
+
+ if (gMartInfo.martType == MART_TYPE_0 || item == 0xFFFF)
+ {
+ spriteId = AddItemIconSprite(iconSlot + 0x83E, iconSlot + 0x83E, item);
+ if (spriteId != MAX_SPRITES)
+ {
+ *spriteIdPtr = spriteId;
+ gSprites[spriteId].pos2.x = 24;
+ gSprites[spriteId].pos2.y = 88;
+ }
+ }
+ else
+ {
+ spriteId = AddDecorationIconObject(item, 20, 84, 1, iconSlot + 0x83E, iconSlot + 0x83E);
+ if (spriteId != MAX_SPRITES)
+ *spriteIdPtr = spriteId;
+ }
+}
+
+void BuyMenuRemoveItemIcon(u16 item, u8 iconSlot)
+{
+ u8 *spriteIdPtr = &gShopDataPtr->unk200D[iconSlot];
+ if (*spriteIdPtr == 0xFF)
+ return;
+
+ FreeSpriteTilesByTag(iconSlot + 0x83E);
+ FreeSpritePaletteByTag(iconSlot + 0x83E);
+ DestroySprite(&gSprites[*spriteIdPtr]);
+ *spriteIdPtr = 0xFF;
+}
+
+void BuyMenuInitBgs(void)
+{
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, gUnknown_08589A60, ARRAY_COUNT(gUnknown_08589A60));
+ SetBgTilemapBuffer(1, gShopDataPtr->tilemapBuffers[1]);
+ SetBgTilemapBuffer(2, gShopDataPtr->tilemapBuffers[3]);
+ SetBgTilemapBuffer(3, gShopDataPtr->tilemapBuffers[2]);
+ SetGpuReg(REG_OFFSET_BG0HOFS, 0);
+ SetGpuReg(REG_OFFSET_BG0VOFS, 0);
+ SetGpuReg(REG_OFFSET_BG1HOFS, 0);
+ SetGpuReg(REG_OFFSET_BG1VOFS, 0);
+ SetGpuReg(REG_OFFSET_BG2HOFS, 0);
+ SetGpuReg(REG_OFFSET_BG2VOFS, 0);
+ SetGpuReg(REG_OFFSET_BG3HOFS, 0);
+ SetGpuReg(REG_OFFSET_BG3VOFS, 0);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ ShowBg(3);
+}
+
+void BuyMenuDecompressBgGraphics(void)
+{
+ decompress_and_copy_tile_data_to_vram(1, gBuyMenuFrame_Gfx, 0x3A0, 0x3E3, 0);
+ LZDecompressWram(gBuyMenuFrame_Tilemap, gShopDataPtr->tilemapBuffers[0]);
+ LoadCompressedPalette(gMenuMoneyPal, 0xC0, 0x20);
+}
+
+void BuyMenuInitWindows(void)
+{
+ InitWindows(gUnknown_08589A70);
+ DeactivateAllTextPrinters();
+ LoadUserWindowBorderGfx(0, 1, 0xD0);
+ LoadMessageBoxGfx(0, 0xA, 0xE0);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ PutWindowTilemap(2);
+}
+
+void BuyMenuPrint(u8 windowId, const u8 *text, u8 x, u8 y, s8 speed, u8 colorSet)
+{
+ AddTextPrinterParameterized4(windowId, 1, x, y, 0, 0, gUnknown_08589AB0[colorSet], speed, text);
+}
+
+void BuyMenuDisplayMessage(u8 taskId, const u8 *text, TaskFunc callback)
+{
+ DisplayMessageAndContinueTask(taskId, 5, 10, 14, 1, GetPlayerTextSpeed(), text, callback);
+ schedule_bg_copy_tilemap_to_vram(0);
+}
+
+void BuyMenuDrawGraphics(void)
+{
+ BuyMenuDrawMapGraphics();
+ BuyMenuCopyMenuBgToBg1TilemapBuffer();
+ AddMoneyLabelObject(19, 11);
+ PrintMoneyAmountInMoneyBoxWithBorder(0, 1, 13, GetMoney(&gSaveBlock1Ptr->money));
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ schedule_bg_copy_tilemap_to_vram(2);
+ schedule_bg_copy_tilemap_to_vram(3);
+}
+
+void BuyMenuDrawMapGraphics(void)
+{
+ BuyMenuCollectEventObjectData();
+ BuyMenuDrawEventObjects();
+ BuyMenuDrawMapBg();
+}
+
+#ifdef NONMATCHING
+// functionally equivalent, but couldn't get the loop variables using the
+// stack correctly. Might be related to the tileset metatiles type.
+void BuyMenuDrawMapBg(void)
+{
+ s16 i;
+ s16 j;
+ s16 x;
+ s16 y;
+ const struct MapLayout *mapLayout;
+ u16 metatile, metatileLayerType;
+
+ mapLayout = gMapHeader.mapLayout;
+ GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
+ x -= 4;
+ y -= 4;
+
+ for (j = 0; j < 10; j++)
+ {
+ for (i = 0; i < 15; i++)
+ {
+ metatile = MapGridGetMetatileIdAt(x + i, y + j);
+ if (BuyMenuCheckForOverlapWithMenuBg(i, j) == TRUE)
+ metatileLayerType = MapGridGetMetatileLayerTypeAt(x + i, y + j);
+ else
+ metatileLayerType = 1;
+
+ if (metatile < 0x200)
+ {
+ BuyMenuDrawMapMetatile(i, j, (u16*)mapLayout->primaryTileset->metatiles + metatile * 8, metatileLayerType);
+ }
+ else
+ {
+ BuyMenuDrawMapMetatile(i, j, (u16*)mapLayout->secondaryTileset->metatiles + ((metatile - 0x200) * 8), metatileLayerType);
+ }
+ }
+ }
+}
+#else
+NAKED
+void BuyMenuDrawMapBg(void)
+{
+ asm_unified("\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x4\n\
+ ldr r0, =gMapHeader\n\
+ ldr r0, [r0]\n\
+ mov r9, r0\n\
+ mov r4, sp\n\
+ adds r4, 0x2\n\
+ mov r0, sp\n\
+ adds r1, r4, 0\n\
+ bl GetXYCoordsOneStepInFrontOfPlayer\n\
+ mov r1, sp\n\
+ mov r0, sp\n\
+ ldrh r0, [r0]\n\
+ subs r0, 0x4\n\
+ strh r0, [r1]\n\
+ ldrh r0, [r4]\n\
+ subs r0, 0x4\n\
+ strh r0, [r4]\n\
+ movs r1, 0\n\
+ mov r10, r4\n\
+_080E05B6:\n\
+ movs r4, 0\n\
+ lsls r7, r1, 16\n\
+ asrs r0, r7, 16\n\
+ mov r8, r0\n\
+_080E05BE:\n\
+ mov r0, sp\n\
+ movs r1, 0\n\
+ ldrsh r0, [r0, r1]\n\
+ lsls r4, 16\n\
+ asrs r5, r4, 16\n\
+ adds r0, r5\n\
+ mov r2, r10\n\
+ movs r3, 0\n\
+ ldrsh r1, [r2, r3]\n\
+ add r1, r8\n\
+ bl MapGridGetMetatileIdAt\n\
+ lsls r0, 16\n\
+ lsrs r6, r0, 16\n\
+ adds r0, r5, 0\n\
+ mov r1, r8\n\
+ bl BuyMenuCheckForOverlapWithMenuBg\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x1\n\
+ bne _080E0608\n\
+ mov r0, sp\n\
+ movs r1, 0\n\
+ ldrsh r0, [r0, r1]\n\
+ adds r0, r5\n\
+ mov r2, r10\n\
+ movs r3, 0\n\
+ ldrsh r1, [r2, r3]\n\
+ add r1, r8\n\
+ bl MapGridGetMetatileLayerTypeAt\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ b _080E060A\n\
+ .pool\n\
+_080E0608:\n\
+ movs r5, 0x1\n\
+_080E060A:\n\
+ ldr r0, =0x000001ff\n\
+ cmp r6, r0\n\
+ bhi _080E062C\n\
+ asrs r0, r4, 16\n\
+ mov r2, r9\n\
+ ldr r1, [r2, 0x10]\n\
+ lsls r3, r6, 4\n\
+ ldr r2, [r1, 0xC]\n\
+ adds r2, r3\n\
+ asrs r1, r7, 16\n\
+ adds r3, r5, 0\n\
+ bl BuyMenuDrawMapMetatile\n\
+ b _080E0644\n\
+ .pool\n\
+_080E062C:\n\
+ asrs r0, r4, 16\n\
+ mov r3, r9\n\
+ ldr r2, [r3, 0x14]\n\
+ ldr r3, =0xfffffe00\n\
+ adds r1, r6, r3\n\
+ lsls r1, 4\n\
+ ldr r2, [r2, 0xC]\n\
+ adds r2, r1\n\
+ asrs r1, r7, 16\n\
+ adds r3, r5, 0\n\
+ bl BuyMenuDrawMapMetatile\n\
+_080E0644:\n\
+ movs r1, 0x80\n\
+ lsls r1, 9\n\
+ adds r0, r4, r1\n\
+ lsrs r4, r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0xE\n\
+ ble _080E05BE\n\
+ adds r0, r7, r1\n\
+ lsrs r1, r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x9\n\
+ ble _080E05B6\n\
+ add sp, 0x4\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool");
+}
+#endif // NONMATCHING
diff --git a/src/start_menu.c b/src/start_menu.c
index 9d10aeaa4..dcb2c4154 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -88,7 +88,7 @@ extern void CB2_PartyMenuFromStartMenu(void);
extern void CB2_PokeNav(void);
extern void sub_80C4DDC(void (*)(void));
extern void sub_80C51C4(void (*)(void));
-extern void sub_80C4E74(u8, void (*)(void));
+extern void TrainerCard_ShowLinkCard(u8, void (*)(void));
extern void ScriptUnfreezeEventObjects(void);
extern void sub_81A9EC8(void);
extern void save_serialize_map(void);
@@ -750,7 +750,7 @@ static bool8 StartMenuLinkModePlayerNameCallback(void)
{
play_some_sound();
overworld_free_bg_tilemaps();
- sub_80C4E74(gUnknown_03005DB4, CB2_ReturnToFieldWithOpenMenu);
+ TrainerCard_ShowLinkCard(gUnknown_03005DB4, CB2_ReturnToFieldWithOpenMenu);
return TRUE;
}
diff --git a/src/string_util.c b/src/string_util.c
index ea50ba5a5..3fbf79d87 100644
--- a/src/string_util.c
+++ b/src/string_util.c
@@ -20,20 +20,20 @@ static const s32 sPowersOfTen[] =
1000000000,
};
-extern u8 gExpandedPlaceholder_Empty[];
-extern u8 gExpandedPlaceholder_Kun[];
-extern u8 gExpandedPlaceholder_Chan[];
-extern u8 gExpandedPlaceholder_Sapphire[];
-extern u8 gExpandedPlaceholder_Ruby[];
-extern u8 gExpandedPlaceholder_Emerald[];
-extern u8 gExpandedPlaceholder_Aqua[];
-extern u8 gExpandedPlaceholder_Magma[];
-extern u8 gExpandedPlaceholder_Archie[];
-extern u8 gExpandedPlaceholder_Maxie[];
-extern u8 gExpandedPlaceholder_Kyogre[];
-extern u8 gExpandedPlaceholder_Groudon[];
-extern u8 gExpandedPlaceholder_Brendan[];
-extern u8 gExpandedPlaceholder_May[];
+extern const u8 gExpandedPlaceholder_Empty[];
+extern const u8 gExpandedPlaceholder_Kun[];
+extern const u8 gExpandedPlaceholder_Chan[];
+extern const u8 gExpandedPlaceholder_Sapphire[];
+extern const u8 gExpandedPlaceholder_Ruby[];
+extern const u8 gExpandedPlaceholder_Emerald[];
+extern const u8 gExpandedPlaceholder_Aqua[];
+extern const u8 gExpandedPlaceholder_Magma[];
+extern const u8 gExpandedPlaceholder_Archie[];
+extern const u8 gExpandedPlaceholder_Maxie[];
+extern const u8 gExpandedPlaceholder_Kyogre[];
+extern const u8 gExpandedPlaceholder_Groudon[];
+extern const u8 gExpandedPlaceholder_Brendan[];
+extern const u8 gExpandedPlaceholder_May[];
u8 *StringCopy10(u8 *dest, const u8 *src)
{
@@ -348,7 +348,7 @@ u8 *StringExpandPlaceholders(u8 *dest, const u8 *src)
{
u8 c = *src++;
u8 placeholderId;
- u8 *expandedString;
+ const u8 *expandedString;
switch (c)
{
@@ -383,9 +383,9 @@ u8 *StringExpandPlaceholders(u8 *dest, const u8 *src)
case EOS:
*dest = EOS;
return dest;
- case 0xFA:
- case 0xFB:
- case 0xFE:
+ case CHAR_PROMPT_SCROLL:
+ case CHAR_PROMPT_CLEAR:
+ case CHAR_NEWLINE:
default:
*dest++ = c;
}
@@ -394,8 +394,8 @@ u8 *StringExpandPlaceholders(u8 *dest, const u8 *src)
u8 *StringBraille(u8 *dest, const u8 *src)
{
- u8 setBrailleFont[] = { 0xFC, 0x06, 0x06, 0xFF };
- u8 gotoLine2[] = { 0xFE, 0xFC, 0x0E, 0x02, 0xFF };
+ u8 setBrailleFont[] = { EXT_CTRL_CODE_BEGIN, 0x06, 0x06, EOS };
+ u8 gotoLine2[] = { CHAR_NEWLINE, EXT_CTRL_CODE_BEGIN, 0x0E, 0x02, EOS };
dest = StringCopy(dest, setBrailleFont);
@@ -408,7 +408,7 @@ u8 *StringBraille(u8 *dest, const u8 *src)
case EOS:
*dest = c;
return dest;
- case 0xFE:
+ case CHAR_NEWLINE:
dest = StringCopy(dest, gotoLine2);
break;
default:
@@ -419,32 +419,32 @@ 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 gSaveBlock2Ptr->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 (gSaveBlock2Ptr->playerGender == MALE)
return gExpandedPlaceholder_Kun;
@@ -452,7 +452,7 @@ static u8 *ExpandPlaceholder_KunChan(void)
return gExpandedPlaceholder_Chan;
}
-static u8 *ExpandPlaceholder_RivalName(void)
+static const u8 *ExpandPlaceholder_RivalName(void)
{
if (gSaveBlock2Ptr->playerGender == MALE)
return gExpandedPlaceholder_May;
@@ -460,44 +460,44 @@ static u8 *ExpandPlaceholder_RivalName(void)
return gExpandedPlaceholder_Brendan;
}
-static u8 *ExpandPlaceholder_Version(void)
+static const u8 *ExpandPlaceholder_Version(void)
{
return gExpandedPlaceholder_Emerald;
}
-static u8 *ExpandPlaceholder_Aqua(void)
+static const u8 *ExpandPlaceholder_Aqua(void)
{
return gExpandedPlaceholder_Aqua;
}
-static u8 *ExpandPlaceholder_Magma(void)
+static const u8 *ExpandPlaceholder_Magma(void)
{
return gExpandedPlaceholder_Magma;
}
-static u8 *ExpandPlaceholder_Archie(void)
+static const u8 *ExpandPlaceholder_Archie(void)
{
return gExpandedPlaceholder_Archie;
}
-static u8 *ExpandPlaceholder_Maxie(void)
+static const u8 *ExpandPlaceholder_Maxie(void)
{
return gExpandedPlaceholder_Maxie;
}
-static u8 *ExpandPlaceholder_Kyogre(void)
+static const u8 *ExpandPlaceholder_Kyogre(void)
{
return gExpandedPlaceholder_Kyogre;
}
-static u8 *ExpandPlaceholder_Groudon(void)
+static const u8 *ExpandPlaceholder_Groudon(void)
{
return gExpandedPlaceholder_Groudon;
}
-u8 *GetExpandedPlaceholder(u32 id)
+const u8 *GetExpandedPlaceholder(u32 id)
{
- typedef u8 *(*ExpandPlaceholderFunc)(void);
+ typedef const u8 *(*ExpandPlaceholderFunc)(void);
static const ExpandPlaceholderFunc funcs[] =
{
@@ -574,7 +574,7 @@ u8 *StringCopyN_Multibyte(u8 *dest, u8 *src, u32 n)
else
{
*dest++ = *src++;
- if (*(src - 1) == 0xF9)
+ if (*(src - 1) == CHAR_SPECIAL_F9)
*dest++ = *src++;
}
}
@@ -589,7 +589,7 @@ u32 StringLength_Multibyte(u8 *str)
while (*str != EOS)
{
- if (*str == 0xF9)
+ if (*str == CHAR_SPECIAL_F9)
str++;
str++;
length++;
@@ -600,7 +600,7 @@ u32 StringLength_Multibyte(u8 *str)
u8 *WriteColorChangeControlCode(u8 *dest, u32 colorType, u8 color)
{
- *dest = 0xFC;
+ *dest = EXT_CTRL_CODE_BEGIN;
dest++;
switch (colorType)
@@ -630,7 +630,7 @@ bool32 IsStringJapanese(u8 *str)
while (*str != EOS)
{
if (*str <= 0xA0)
- if (*str != 0)
+ if (*str != CHAR_SPACE)
return TRUE;
str++;
}
@@ -645,7 +645,7 @@ bool32 sub_800924C(u8 *str, s32 n)
for (i = 0; *str != EOS && i < n; i++)
{
if (*str <= 0xA0)
- if (*str != 0)
+ if (*str != CHAR_SPACE)
return TRUE;
str++;
}
@@ -692,7 +692,7 @@ u8 GetExtCtrlCodeLength(u8 code)
static const u8 *SkipExtCtrlCode(const u8 *s)
{
- while (*s == 0xFC)
+ while (*s == EXT_CTRL_CODE_BEGIN)
{
s++;
s += GetExtCtrlCodeLength(*s);
@@ -716,11 +716,11 @@ s32 StringCompareWithoutExtCtrlCodes(const u8 *str1, const u8 *str2)
if (*str1 < *str2)
{
retVal = -1;
- if (*str2 == 0xFF)
+ if (*str2 == EOS)
retVal = 1;
}
- if (*str1 == 0xFF)
+ if (*str1 == EOS)
return retVal;
str1++;
@@ -729,7 +729,7 @@ s32 StringCompareWithoutExtCtrlCodes(const u8 *str1, const u8 *str2)
retVal = 1;
- if (*str1 == 0xFF)
+ if (*str1 == EOS)
retVal = -1;
return retVal;
@@ -743,9 +743,9 @@ void ConvertInternationalString(u8 *s, u8 language)
StripExtCtrlCodes(s);
i = StringLength(s);
- s[i++] = 0xFC;
+ s[i++] = EXT_CTRL_CODE_BEGIN;
s[i++] = 22;
- s[i++] = 0xFF;
+ s[i++] = EOS;
i--;
@@ -755,7 +755,7 @@ void ConvertInternationalString(u8 *s, u8 language)
i--;
}
- s[0] = 0xFC;
+ s[0] = EXT_CTRL_CODE_BEGIN;
s[1] = 21;
}
}
@@ -764,9 +764,9 @@ void StripExtCtrlCodes(u8 *str)
{
u16 srcIndex = 0;
u16 destIndex = 0;
- while (str[srcIndex] != 0xFF)
+ while (str[srcIndex] != EOS)
{
- if (str[srcIndex] == 0xFC)
+ if (str[srcIndex] == EXT_CTRL_CODE_BEGIN)
{
srcIndex++;
srcIndex += GetExtCtrlCodeLength(str[srcIndex]);
@@ -776,5 +776,5 @@ void StripExtCtrlCodes(u8 *str)
str[destIndex++] = str[srcIndex++];
}
}
- str[destIndex] = 0xFF;
+ str[destIndex] = EOS;
}
diff --git a/src/task.c b/src/task.c
index fafa7c70d..f067e21b4 100644
--- a/src/task.c
+++ b/src/task.c
@@ -7,7 +7,7 @@
struct Task gTasks[NUM_TASKS];
static void InsertTask(u8 newTaskId);
-static u8 FindFirstActiveTask();
+static u8 FindFirstActiveTask(void);
void ResetTasks(void)
{
@@ -124,7 +124,7 @@ void RunTasks(void)
}
}
-static u8 FindFirstActiveTask()
+static u8 FindFirstActiveTask(void)
{
u8 taskId;
diff --git a/src/text.c b/src/text.c
index e5a9feed8..ec0d26ab1 100644
--- a/src/text.c
+++ b/src/text.c
@@ -3095,13 +3095,13 @@ u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing)
temp = strLocal[strPos++];
switch (temp)
{
- case 0xFE:
- case 0xFF:
+ case CHAR_NEWLINE:
+ case EOS:
lineWidths[line] = width;
width = 0;
line++;
break;
- case 0xFC:
+ case EXT_CTRL_CODE_BEGIN:
temp2 = strLocal[strPos++];
switch (temp2)
{
@@ -3135,21 +3135,21 @@ u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing)
break;
}
break;
- case 0xF7:
- case 0xFD:
+ case CHAR_SPECIAL_F7:
+ case PLACEHOLDER_BEGIN:
++strPos;
break;
- case 0xFA:
- case 0xFB:
+ case CHAR_PROMPT_SCROLL:
+ case CHAR_PROMPT_CLEAR:
break;
- case 0xF8:
- case 0xF9:
+ case CHAR_SPECIAL_F8:
+ case CHAR_SPECIAL_F9:
++strPos;
default:
++width;
break;
}
- } while (temp != 0xFF);
+ } while (temp != EOS);
for (width = 0, strPos = 0; strPos < 8; ++strPos)
{
@@ -3201,16 +3201,16 @@ u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
lineWidth = 0;
bufferPointer = 0;
- while (*str != 0xFF)
+ while (*str != EOS)
{
switch (*str)
{
- case 0xFE:
+ case CHAR_NEWLINE:
if (lineWidth > width)
width = lineWidth;
lineWidth = 0;
break;
- case 0xFD:
+ case PLACEHOLDER_BEGIN:
switch (*++str)
{
case 0x2:
@@ -3225,10 +3225,10 @@ u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
default:
return 0;
}
- case 0xF7:
+ case CHAR_SPECIAL_F7:
if (bufferPointer == NULL)
bufferPointer = DynamicPlaceholderTextUtil_GetPlaceholderPtr(*++str);
- while (*bufferPointer != 0xFF)
+ while (*bufferPointer != EOS)
{
glyphWidth = func(*bufferPointer++, isJapanese);
if (minGlyphWidth > 0)
@@ -3240,13 +3240,13 @@ u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
else
{
lineWidth += glyphWidth;
- if (isJapanese && str[1] != 0xFF)
+ if (isJapanese && str[1] != EOS)
lineWidth += localLetterSpacing;
}
}
bufferPointer = 0;
break;
- case 0xFC:
+ case EXT_CTRL_CODE_BEGIN:
switch (*++str)
{
case 0x4:
@@ -3299,9 +3299,9 @@ u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
break;
}
break;
- case 0xF8:
- case 0xF9:
- if (*str == 0xF9)
+ case CHAR_SPECIAL_F8:
+ case CHAR_SPECIAL_F9:
+ if (*str == CHAR_SPECIAL_F9)
glyphWidth = func(*++str | 0x100, isJapanese);
else
glyphWidth = GetKeypadIconWidth(*++str);
@@ -3315,12 +3315,12 @@ u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
else
{
lineWidth += glyphWidth;
- if (isJapanese && str[1] != 0xFF)
+ if (isJapanese && str[1] != EOS)
lineWidth += localLetterSpacing;
}
break;
- case 0xFA:
- case 0xFB:
+ case CHAR_PROMPT_SCROLL:
+ case CHAR_PROMPT_CLEAR:
break;
default:
glyphWidth = func(*str, isJapanese);
@@ -3333,7 +3333,7 @@ u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
else
{
lineWidth += glyphWidth;
- if (isJapanese && str[1] != 0xFF)
+ if (isJapanese && str[1] != EOS)
lineWidth += localLetterSpacing;
}
break;
@@ -3372,7 +3372,7 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str)
temp = strLocal[strPos++];
switch (temp)
{
- case 0xFC:
+ case EXT_CTRL_CODE_BEGIN:
temp2 = strLocal[strPos++];
switch (temp2)
{
@@ -3421,16 +3421,16 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str)
continue;
}
break;
- case 0xF7:
- case 0xF8:
- case 0xF9:
- case 0xFD:
+ case CHAR_SPECIAL_F7:
+ case CHAR_SPECIAL_F8:
+ case CHAR_SPECIAL_F9:
+ case PLACEHOLDER_BEGIN:
++strPos;
break;
- case 0xFA:
- case 0xFB:
- case 0xFE:
- case 0xFF:
+ case CHAR_PROMPT_SCROLL:
+ case CHAR_PROMPT_CLEAR:
+ case CHAR_NEWLINE:
+ case EOS:
break;
default:
switch (fontId)
@@ -3450,7 +3450,7 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str)
break;
}
}
- while (temp != 0xFF);
+ while (temp != EOS);
RestoreTextColors(&colorBackup[0], &colorBackup[1], &colorBackup[2]);
return 1;
diff --git a/src/tileset_anims.c b/src/tileset_anims.c
index 454a2e435..f7c3cd482 100644
--- a/src/tileset_anims.c
+++ b/src/tileset_anims.c
@@ -1,7 +1,7 @@
// Includes
#include "global.h"
#include "palette.h"
-#include "blend_palette.h"
+#include "util.h"
#include "battle_transition.h"
#include "task.h"
#include "battle_transition.h"
diff --git a/src/tv.c b/src/tv.c
index d09e72abc..af1102c2d 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -936,7 +936,7 @@ void GabbyAndTyBeforeInterview(void)
{
gSaveBlock1Ptr->gabbyAndTyData.battleNum ++;
}
- gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn = gBattleResults.unk5_0;
+ gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn = gBattleResults.playerMonWasDamaged;
if (gBattleResults.playerFaintCounter != 0)
{
gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon = TRUE;
diff --git a/src/util.c b/src/util.c
index 9c8766a97..47112774a 100644
--- a/src/util.c
+++ b/src/util.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "util.h"
#include "sprite.h"
+#include "palette.h"
const u32 gBitTable[] =
{
@@ -258,3 +259,20 @@ u32 CalcByteArraySum(const u8* data, u32 length)
sum += data[i];
return sum;
}
+
+void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor)
+{
+ u16 i;
+ for (i = 0; i < numEntries; i++)
+ {
+ u16 index = i + palOffset;
+ struct PlttData *data1 = (struct PlttData *)&gPlttBufferUnfaded[index];
+ s8 r = data1->r;
+ s8 g = data1->g;
+ s8 b = data1->b;
+ struct PlttData *data2 = (struct PlttData *)&blendColor;
+ gPlttBufferFaded[index] = ((r + (((data2->r - r) * coeff) >> 4)) << 0)
+ | ((g + (((data2->g - g) * coeff) >> 4)) << 5)
+ | ((b + (((data2->b - b) * coeff) >> 4)) << 10);
+ }
+}
diff --git a/sym_common.txt b/sym_common.txt
index 282ef7f72..70c6e4871 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -26,9 +26,7 @@ gBGTilemapBuffers3: @ 3005DA4
.include "overworld.o"
.include "fieldmap.o"
.include "field_camera.o"
-
-gSelectedEventObject: @ 3005DF0
- .space 0x4
+ .include "field_control_avatar.o"
gMenuCallback: @ 3005DF4
.space 0x4
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 08a834057..7219e38c1 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -234,14 +234,7 @@ gUnknown_020375C0: @ 20375C0
.space 0x4
.include "src/scrcmd.o"
-
- .align 2
-gUnknown_020375D4: @ 20375D4
- .space 0x2
-
-gUnknown_020375D6: @ 20375D6
- .space 0x2
-
+ .include "src/field_control_avatar.o"
.include "src/event_data.o"
.include "src/start_menu.o"
.include "src/tileset_anims.o"
@@ -380,10 +373,10 @@ gUnknown_02039F5C: @ 2039F5C
gUnknown_02039F5D: @ 2039F5D
.space 0x3
-gUnknown_02039F60: @ 2039F60
+gMartInfo: @ 2039F60
.space 0x10
-gUnknown_02039F70: @ 2039F70
+gShopDataPtr: @ 2039F70
.space 0x4
gUnknown_02039F74: @ 2039F74